summaryrefslogtreecommitdiff
path: root/drivers/mxc/gpu-viv/hal/os/linux
diff options
context:
space:
mode:
authorXianzhong <xianzhong.li@nxp.com>2018-09-08 05:43:08 +0800
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:33:54 +0800
commit70b88529efdc022ac76a43c2a0318f941ecb0059 (patch)
tree95035b656984980ee386e206a44b29c08d56af1c /drivers/mxc/gpu-viv/hal/os/linux
parent4c2ce6336e91794523dc1c8e998eb895c61c18c1 (diff)
MGS-4151-24 [#imx-1166] merge debugfs fix for kernel panic
CL172719 fix debugfs bugs and kernel panic fix ARTPEC7-31 cherry-pick patch: 6.2.4.p3-0106-CL172719-fix-debugfs-bugs-and-kernel-panic-fix-ARTPE Signed-off-by: Xianzhong <xianzhong.li@nxp.com> (cherry picked from commit a8bff203ae6b83a301af6b946f990b7d373ace77)
Diffstat (limited to 'drivers/mxc/gpu-viv/hal/os/linux')
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.c
index 1bb68fcd6c88..885eec644bb0 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.c
@@ -371,7 +371,7 @@ _ReadFromNode (
{
kfree(Node->temp);
- if ( ( retval = kmalloc ( sizeof (char ) * remaining , GFP_KERNEL ) ) == NULL )
+ if ( ( retval = kmalloc ( sizeof (char ) * remaining , GFP_ATOMIC ) ) == NULL )
return NULL;
Node->temp = retval;
@@ -518,22 +518,23 @@ _DebugFSPrint (
{
char buffer[MAX_LINE_SIZE] ;
int len ;
- ssize_t res=0;
+ ssize_t res = 0;
- len = vsnprintf ( buffer , sizeof (buffer ) , Message , *( va_list * ) Arguments ) ;
-
- buffer[len] = '\0' ;
-
- /* Add end-of-line if missing. */
- if ( buffer[len - 1] != '\n' )
+ if ( gc_dbgfs.currentNode )
{
- buffer[len ++] = '\n' ;
- buffer[len] = '\0' ;
- }
+ len = vsnprintf ( buffer , sizeof (buffer ) , Message , *( va_list * ) Arguments ) ;
- res = _AppendString ( gc_dbgfs.currentNode , buffer , len ) ;
+ buffer[len] = '\0' ;
+ /* Add end-of-line if missing. */
+ if ( buffer[len - 1] != '\n' )
+ {
+ buffer[len ++] = '\n' ;
+ buffer[len] = '\0' ;
+ }
- wake_up_interruptible ( gcmkNODE_READQ ( gc_dbgfs.currentNode ) ) ; /* blocked in read*/
+ res = _AppendString ( gc_dbgfs.currentNode , buffer , len ) ;
+ wake_up_interruptible ( gcmkNODE_READQ ( gc_dbgfs.currentNode ) ) ; /* blocked in read*/
+ }
return res;
}
@@ -958,7 +959,7 @@ gckDEBUGFS_Print (
...
)
{
- ssize_t _debugfs_res;
+ ssize_t _debugfs_res = 0;
gcmkDEBUGFS_PRINT ( _GetArgumentSize ( Message ) , Message ) ;
return _debugfs_res;
}