MGS-3083 [#imx-662] fix kernel build error with kasan config
authorXianzhong <xianzhong.li@nxp.com>
Thu, 13 Jul 2017 02:28:14 +0000 (10:28 +0800)
committerLeonard Crestez <leonard.crestez@nxp.com>
Wed, 17 Apr 2019 23:51:34 +0000 (02:51 +0300)
hal/kernel/gc_hal_kernel_command.c: In function gckCOMMAND_Commit:
hal/kernel/gc_hal_kernel_command.c:2718:1:
error: the frame size of 2288 bytes is larger than 2048 bytes [-Werror=frame-larger-than=]

removed _commandBufferObject instrance, use kmalloc to avoid kasan error.

Date: Jul 13, 2017
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
(cherry picked from commit d8d57e43a24bd02b375d7c6bd633ed236db19337)
(cherry picked from commit 484e3073adf47d27581482f268b01fe5fe219d18)
Signed-off-by: Arulpandiyan Vadivel <arulpandiyan_vadivel@mentor.com>
drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c

index 528860c..2db8e4d 100644 (file)
@@ -1790,7 +1790,6 @@ gckCOMMAND_Commit(
 
 #if !gcdNULL_DRIVER
     gcsCONTEXT_PTR contextBuffer;
-    struct _gcoCMDBUF _commandBufferObject;
     gctPHYS_ADDR_T commandBufferPhysical;
     gctUINT8_PTR commandBufferLogical = gcvNULL;
     gctUINT32 commandBufferAddress = 0;
@@ -1904,7 +1903,8 @@ gckCOMMAND_Commit(
 #else
     if (needCopy)
     {
-        commandBufferObject = &_commandBufferObject;
+        gcmkONERROR(gckOS_Allocate(Command->os, gcmSIZEOF(struct _gcoCMDBUF), &pointer));
+        commandBufferObject = pointer;
 
         gcmkONERROR(gckOS_CopyFromUserData(
             Command->os,
@@ -2587,6 +2587,10 @@ gckCOMMAND_Commit(
 
         commandBufferMapped = gcvFALSE;
     }
+    else if (needCopy)
+    {
+        gcmkONERROR(gckOS_Free(Command->os, commandBufferObject));
+    }
 
     /* Return status. */
     gcmkFOOTER();
@@ -2626,6 +2630,10 @@ OnError:
             commandBufferObject
             ));
     }
+    else if (needCopy)
+    {
+        gcmkVERIFY_OK(gckOS_Free(Command->os, commandBufferObject));
+    }
 
     /* Return status. */
     gcmkFOOTER();