Hi,

Acked-by: Fernando Guzman Lugo <[email protected]>

-----Original Message-----
From: Ameya Palande [mailto:[email protected]] 
Sent: Monday, August 10, 2009 8:22 PM
To: [email protected]
Cc: [email protected]; Ramirez Luna, Omar; Guzman Lugo, Fernando; Moogi, 
Suyog; [email protected]; Ramos Falcon, Ernesto
Subject: [PATCH 06/13] DSPBRIDGE: Use pr_ctxt in PROC_Detach

Signed-off-by: Ameya Palande <[email protected]>
---
 arch/arm/plat-omap/include/dspbridge/proc.h |    3 ++-
 drivers/dsp/bridge/pmgr/wcd.c               |    2 +-
 drivers/dsp/bridge/rmgr/drv_interface.c     |    4 ++--
 drivers/dsp/bridge/rmgr/proc.c              |   24 ++++++------------------
 4 files changed, 11 insertions(+), 22 deletions(-)

diff --git a/arch/arm/plat-omap/include/dspbridge/proc.h 
b/arch/arm/plat-omap/include/dspbridge/proc.h
index 1737761..f5b0c50 100644
--- a/arch/arm/plat-omap/include/dspbridge/proc.h
+++ b/arch/arm/plat-omap/include/dspbridge/proc.h
@@ -163,7 +163,8 @@
  *  Ensures:
  *      PROC Object is destroyed.
  */
-       extern DSP_STATUS PROC_Detach(DSP_HPROCESSOR hProcessor);
+       extern DSP_STATUS PROC_Detach(DSP_HPROCESSOR hProcessor,
+                       struct PROCESS_CONTEXT *pr_ctxt);
 
 /*
  *  ======== PROC_EnumNodes ========
diff --git a/drivers/dsp/bridge/pmgr/wcd.c b/drivers/dsp/bridge/pmgr/wcd.c
index ddb2aea..4f902a3 100644
--- a/drivers/dsp/bridge/pmgr/wcd.c
+++ b/drivers/dsp/bridge/pmgr/wcd.c
@@ -744,7 +744,7 @@ u32 PROCWRAP_Detach(union Trapped_Args *args, void *pr_ctxt)
        GT_1trace(WCD_debugMask, GT_ENTER,
                 "PROCWRAP_Detach: entered args\n0x%x "
                 "hProceesor \n", args->ARGS_PROC_DETACH.hProcessor);
-       retVal = PROC_Detach(args->ARGS_PROC_DETACH.hProcessor);
+       retVal = PROC_Detach(args->ARGS_PROC_DETACH.hProcessor, pr_ctxt);
 
        return retVal;
 }
diff --git a/drivers/dsp/bridge/rmgr/drv_interface.c 
b/drivers/dsp/bridge/rmgr/drv_interface.c
index 9ac7f19..7d4a6ea 100644
--- a/drivers/dsp/bridge/rmgr/drv_interface.c
+++ b/drivers/dsp/bridge/rmgr/drv_interface.c
@@ -474,7 +474,7 @@ static int __devexit omap34xx_bridge_remove(struct 
platform_device *pdev)
                GT_1trace(driverTrace, GT_5CLASS, "***Cleanup of "
                         "process***%d\n", pCtxtclosed->pid);
                DRV_RemoveAllResources(pCtxtclosed);
-               PROC_Detach(pCtxtclosed->hProcessor);
+               PROC_Detach(pCtxtclosed->hProcessor, pCtxtclosed);
                pTmp = pCtxtclosed->next;
                DRV_RemoveProcContext((struct DRV_OBJECT *)hDrvObject,
                                     pCtxtclosed, (void *)pCtxtclosed->pid);
@@ -619,7 +619,7 @@ static int bridge_release(struct inode *ip, struct file 
*filp)
                if (DSP_SUCCEEDED(dsp_status)) {
                        flush_signals(current);
                        DRV_RemoveAllResources(pr_ctxt);
-                       PROC_Detach(pr_ctxt->hProcessor);
+                       PROC_Detach(pr_ctxt->hProcessor, pr_ctxt);
                        DRV_RemoveProcContext((struct DRV_OBJECT *)hDrvObject,
                                        pr_ctxt, (void *)pr_ctxt->pid);
                } else {
diff --git a/drivers/dsp/bridge/rmgr/proc.c b/drivers/dsp/bridge/rmgr/proc.c
index c475436..323054f 100644
--- a/drivers/dsp/bridge/rmgr/proc.c
+++ b/drivers/dsp/bridge/rmgr/proc.c
@@ -220,7 +220,8 @@ DSP_STATUS PROC_CleanupAllResources(void)
                                 "***Cleanup of "
                                 "process***%d\n", pCtxtclosed->pid);
                        if (pCtxtclosed->hProcessor)
-                               PROC_Detach(pCtxtclosed->hProcessor);
+                               PROC_Detach(pCtxtclosed->hProcessor,
+                                               pCtxtclosed);
                }
                pCtxtclosed = pCtxtclosed->next;
        }
@@ -604,32 +605,19 @@ DSP_STATUS PROC_Ctrl(DSP_HPROCESSOR hProcessor, u32 dwCmd,
  *      Destroys the  Processor Object. Removes the notification from the Dev
  *      List.
  */
-DSP_STATUS PROC_Detach(DSP_HPROCESSOR hProcessor)
+DSP_STATUS PROC_Detach(DSP_HPROCESSOR hProcessor,
+               struct PROCESS_CONTEXT *pr_ctxt)
 {
        DSP_STATUS status = DSP_SOK;
        struct PROC_OBJECT *pProcObject = (struct PROC_OBJECT *)hProcessor;
-#ifndef RES_CLEANUP_DISABLE
-       HANDLE hDRVObject;
-       u32 hProcess;
-       DSP_STATUS res_status = DSP_SOK;
-       struct PROCESS_CONTEXT   *pPctxt = NULL;
-#endif
        DBC_Require(cRefs > 0);
        GT_1trace(PROC_DebugMask, GT_ENTER, "Entered PROC_Detach, args:\n\t"
                 "hProcessor:  0x%x\n", hProcessor);
 
        if (MEM_IsValidHandle(pProcObject, PROC_SIGNATURE)) {
 #ifndef RES_CLEANUP_DISABLE
-               /* Return PID instead of process handle */
-               hProcess = pProcObject->hProcess;
-               res_status = CFG_GetObject((u32 *)&hDRVObject, REG_DRV_OBJECT);
-               if (DSP_SUCCEEDED(res_status)) {
-                       DRV_GetProcContext(hProcess,
-                               (struct DRV_OBJECT *)hDRVObject, &pPctxt,
-                                        NULL, 0);
-                       if (pPctxt != NULL)
-                               pPctxt->hProcessor = NULL;
-               }
+               if (pr_ctxt != NULL)
+                       pr_ctxt->hProcessor = NULL;
 #endif
                /* Notify the Client */
                NTFY_Notify(pProcObject->hNtfy, DSP_PROCESSORDETACH);
-- 
1.6.2.4


--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to