The Bridge exit resource cleanup is accessing Process
context pointer after it is freed. Fixed this by holding
the next Process context pointer in a temporary variable.

Signed-off-by: Hari Kanigeri <h-kanige...@ti.com>
---
 drivers/dsp/bridge/rmgr/drv_interface.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/dsp/bridge/rmgr/drv_interface.c 
b/drivers/dsp/bridge/rmgr/drv_interface.c
index a756997..af98600 100644
--- a/drivers/dsp/bridge/rmgr/drv_interface.c
+++ b/drivers/dsp/bridge/rmgr/drv_interface.c
@@ -537,7 +537,7 @@ static void __exit bridge_exit(void)
        DSP_STATUS dsp_status = DSP_SOK;
        HANDLE hDrvObject = NULL;
        struct PROCESS_CONTEXT    *pCtxtclosed = NULL;
-
+       struct PROCESS_CONTEXT    *pTmp = NULL;
        GT_0trace(driverTrace, GT_ENTER, "-> driver_exit\n");
 
 
@@ -551,9 +551,10 @@ static void __exit bridge_exit(void)
                         "process***%d\n", pCtxtclosed->pid);
                DRV_RemoveAllResources(pCtxtclosed);
                PROC_Detach(pCtxtclosed->hProcessor);
+               pTmp =  pCtxtclosed->next;
                DRV_RemoveProcContext((struct DRV_OBJECT *)hDrvObject,
                                     pCtxtclosed, (void *)pCtxtclosed->pid);
-               pCtxtclosed = pCtxtclosed->next;;
+               pCtxtclosed = pTmp;
        }
 func_cont:
 #ifndef CONFIG_DISABLE_BRIDGE_PM
-- 
1.5.4.3


Thank you,
Best regards,
Hari

Attachment: 0001-OMAPZOOM-DSPBRIDGE-bug-in-Bridge-exit-cleanup.patch
Description: 0001-OMAPZOOM-DSPBRIDGE-bug-in-Bridge-exit-cleanup.patch

Reply via email to