* [PATCH] [OMAPZOOM]DSPBRIDGE bug in Bridge exit cleanup @ 2009-03-23 18:49 ` Kanigeri, Hari 2009-03-24 10:04 ` Ameya Palande 0 siblings, 1 reply; 5+ messages in thread From: Kanigeri, Hari @ 2009-03-23 18:49 UTC (permalink / raw) To: linux-omap [-- Attachment #1: Type: text/plain, Size: 1335 bytes --] 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-kanigeri2@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 #2: 0001-OMAPZOOM-DSPBRIDGE-bug-in-Bridge-exit-cleanup.patch --] [-- Type: application/octet-stream, Size: 1522 bytes --] From 13b9355dcccd6184a4240d49868087ddaa782142 Mon Sep 17 00:00:00 2001 From: Hari Kanigeri <kanigeri@Matrix.(none)> Date: Mon, 23 Mar 2009 10:04:53 -0600 Subject: [PATCH] [OMAPZOOM]DSPBRIDGE bug in Bridge exit cleanup 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-kanigeri2@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 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] [OMAPZOOM]DSPBRIDGE bug in Bridge exit cleanup 2009-03-23 18:49 ` [PATCH] [OMAPZOOM]DSPBRIDGE bug in Bridge exit cleanup Kanigeri, Hari @ 2009-03-24 10:04 ` Ameya Palande 2009-03-24 11:48 ` Kanigeri, Hari 0 siblings, 1 reply; 5+ messages in thread From: Ameya Palande @ 2009-03-24 10:04 UTC (permalink / raw) To: Kanigeri, Hari; +Cc: linux-omap Hi Hari, On Mon, Mar 23, 2009 at 8:49 PM, Kanigeri, Hari <h-kanigeri2@ti.com> wrote: > DRV_RemoveProcContext((struct DRV_OBJECT *)hDrvObject, > pCtxtclosed, (void *)pCtxtclosed->pid); I am trying to understand this patch. I see that pCtxtclosed is passed to DRV_RemoveProcContext() function but it is not used anywhere inside it. I was expecting to see a statement there which should free its memory. Any pointers? Cheers, Ameya. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [PATCH] [OMAPZOOM]DSPBRIDGE bug in Bridge exit cleanup 2009-03-24 10:04 ` Ameya Palande @ 2009-03-24 11:48 ` Kanigeri, Hari 2009-03-24 11:55 ` Ameya Palande 0 siblings, 1 reply; 5+ messages in thread From: Kanigeri, Hari @ 2009-03-24 11:48 UTC (permalink / raw) To: Ameya Palande; +Cc: linux-omap Hi Amey, > I am trying to understand this patch. > I see that pCtxtclosed is passed to DRV_RemoveProcContext() function > but it is not used anywhere inside it. I was expecting to see a > statement there which should free its memory. This pointer is getting freed indirectly through the pCtxt2 pointer. The call to the function "DRV_GetProcContext((u32)hProcess, hDRVObject, &pCtxt2, NULL, 0)" returns pCtxt2, which is same as pCtxtclosed that is passed to this function. In a way, the call to DRV_GetProcContext is kind of redundant, but I think it is present here to provide the support to extract the Process Context when only the PID is passed in. Thank you, Best regards, Hari > -----Original Message----- > From: Ameya Palande [mailto:2ameya@gmail.com] > Sent: Tuesday, March 24, 2009 5:05 AM > To: Kanigeri, Hari > Cc: linux-omap@vger.kernel.org > Subject: Re: [PATCH] [OMAPZOOM]DSPBRIDGE bug in Bridge exit cleanup > > Hi Hari, > > On Mon, Mar 23, 2009 at 8:49 PM, Kanigeri, Hari <h-kanigeri2@ti.com> > wrote: > > DRV_RemoveProcContext((struct DRV_OBJECT *)hDrvObject, > > pCtxtclosed, (void *)pCtxtclosed- > >pid); > > I am trying to understand this patch. > I see that pCtxtclosed is passed to DRV_RemoveProcContext() function > but it is not used anywhere inside it. I was expecting to see a > statement there which should free its memory. > > Any pointers? > > Cheers, > Ameya. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] [OMAPZOOM]DSPBRIDGE bug in Bridge exit cleanup 2009-03-24 11:48 ` Kanigeri, Hari @ 2009-03-24 11:55 ` Ameya Palande 2009-03-24 11:58 ` Kanigeri, Hari 0 siblings, 1 reply; 5+ messages in thread From: Ameya Palande @ 2009-03-24 11:55 UTC (permalink / raw) To: ext Kanigeri, Hari; +Cc: Ameya Palande, linux-omap Hi Hari, ext Kanigeri, Hari wrote: > Hi Amey, > >> I am trying to understand this patch. >> I see that pCtxtclosed is passed to DRV_RemoveProcContext() function >> but it is not used anywhere inside it. I was expecting to see a >> statement there which should free its memory. > > This pointer is getting freed indirectly through the pCtxt2 pointer. The call to the function "DRV_GetProcContext((u32)hProcess, hDRVObject, &pCtxt2, NULL, 0)" returns pCtxt2, which is same as pCtxtclosed that is passed to this function. > In a way, the call to DRV_GetProcContext is kind of redundant, but I think it is present here to provide the support to extract the Process Context when only the PID is passed in. Thanks for the explanation :) Is there any need to pass "HANDLE hPCtxt" to DRV_RemoveProcContext() function? Cheers, Ameya. ^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [PATCH] [OMAPZOOM]DSPBRIDGE bug in Bridge exit cleanup 2009-03-24 11:55 ` Ameya Palande @ 2009-03-24 11:58 ` Kanigeri, Hari 0 siblings, 0 replies; 5+ messages in thread From: Kanigeri, Hari @ 2009-03-24 11:58 UTC (permalink / raw) To: Ameya Palande; +Cc: Ameya Palande, linux-omap Ameya, > Is there any need to pass "HANDLE hPCtxt" to DRV_RemoveProcContext() > function? > -- It should work even if you don't pass the hPCtxt. This function requires some rework to avoid this confusion. Thanks for bringing up this question. Thank you, Best regards, Hari > -----Original Message----- > From: Ameya Palande [mailto:ameya.palande@nokia.com] > Sent: Tuesday, March 24, 2009 6:56 AM > To: Kanigeri, Hari > Cc: Ameya Palande; linux-omap@vger.kernel.org > Subject: Re: [PATCH] [OMAPZOOM]DSPBRIDGE bug in Bridge exit cleanup > > Hi Hari, > > ext Kanigeri, Hari wrote: > > Hi Amey, > > > >> I am trying to understand this patch. > >> I see that pCtxtclosed is passed to DRV_RemoveProcContext() function > >> but it is not used anywhere inside it. I was expecting to see a > >> statement there which should free its memory. > > > > This pointer is getting freed indirectly through the pCtxt2 pointer. The > call to the function "DRV_GetProcContext((u32)hProcess, hDRVObject, > &pCtxt2, NULL, 0)" returns pCtxt2, which is same as pCtxtclosed that is > passed to this function. > > In a way, the call to DRV_GetProcContext is kind of redundant, but I > think it is present here to provide the support to extract the Process > Context when only the PID is passed in. > > Thanks for the explanation :) > Is there any need to pass "HANDLE hPCtxt" to DRV_RemoveProcContext() > function? > > Cheers, > Ameya. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-03-24 11:58 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <Acmr6BM18BJBh1pxS8i5e+utnLzXGw==> 2009-03-23 18:49 ` [PATCH] [OMAPZOOM]DSPBRIDGE bug in Bridge exit cleanup Kanigeri, Hari 2009-03-24 10:04 ` Ameya Palande 2009-03-24 11:48 ` Kanigeri, Hari 2009-03-24 11:55 ` Ameya Palande 2009-03-24 11:58 ` Kanigeri, Hari
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).