On Wed, Apr 1, 2009 at 4:13 PM, Ameya Palande <2ameya@xxxxxxxxx> wrote: > > Hi Artem, > > On Wed, Apr 1, 2009 at 10:04 AM, Artem Bityutskiy <dedekind@xxxxxxxxx> wrote: >> >> Artem Bityutskiy wrote: >>> >>> Ameya Palande wrote: >>>> >>>> diff --git a/drivers/dsp/bridge/wmd/tiomap3430.c b/drivers/dsp/bridge/wmd/tiomap3430.c >>>> index 1fca3e5..b489da1 100644 >>>> --- a/drivers/dsp/bridge/wmd/tiomap3430.c >>>> +++ b/drivers/dsp/bridge/wmd/tiomap3430.c >>>> @@ -2034,26 +2034,27 @@ static DSP_STATUS PteSet(struct PgTableAttrs *pt, u32 pa, u32 va, >>>> if (pfn_valid(__phys_to_pfn(patemp))) { >>>> pg = phys_to_page(patemp); >>>> get_page(pg); >>>> + if (page_count(pg) <= 1) { >>>> + printk(KERN_EMERG "DSPBRIDGE:MAP " >>>> + "function: COUNT 0 FOR PA " >>>> + "0x%x\n", patemp); >>>> + printk(KERN_EMERG "Bad page state" >>>> + "in process '%s'\n" >>>> + "page:%p flags:0x%0*lx " >>>> + "mapping:%p mapcount:%d " >>>> + "count:%d\n" >>>> + "Trying to fix it up, but " >>>> + "a reboot is needed\n" >>>> + "Backtrace:\n", >>>> + current->comm, pg, >>>> + (int)(2*sizeof(unsigned long)), >> >> Why do you need this (int) cast? Thiere is a %zd modifyer. >>>> >>>> + (unsigned long)pg->flags, >> >> What for do you have to cast here? > > I have attached a new patch which should take care of the ugly code. > > Cheers, > Ameya. Sorry about the last message. This one is in plain text. Cheers, Ameya.
From 5b889f8c43c0d3af47cd4ed532a10beec863e370 Mon Sep 17 00:00:00 2001 From: Ameya Palande <ameya.palande@xxxxxxxxx> Date: Wed, 1 Apr 2009 16:05:13 +0300 Subject: [PATCH] [PATCH] DSPBRIDGE: Fix module build warnings From: Ameya Palande <ameya.palande@xxxxxxxxx> Signed-off-by: Ameya Palande <ameya.palande@xxxxxxxxx> --- drivers/dsp/bridge/rmgr/drv_interface.c | 6 ------ drivers/dsp/bridge/rmgr/node.c | 2 +- drivers/dsp/bridge/wmd/tiomap3430.c | 30 ++++++++++++------------------ 3 files changed, 13 insertions(+), 25 deletions(-) diff --git a/drivers/dsp/bridge/rmgr/drv_interface.c b/drivers/dsp/bridge/rmgr/drv_interface.c index 350e1b5..981354a 100755 --- a/drivers/dsp/bridge/rmgr/drv_interface.c +++ b/drivers/dsp/bridge/rmgr/drv_interface.c @@ -685,12 +685,6 @@ static int bridge_release(struct inode *ip, struct file *filp) return status; } -static void bridge_free(struct device *dev) -{ - /* nothing to Free */ -} - - /* This function provides IO interface to the bridge driver. */ static int bridge_ioctl(struct inode *ip, struct file *filp, unsigned int code, unsigned long args) diff --git a/drivers/dsp/bridge/rmgr/node.c b/drivers/dsp/bridge/rmgr/node.c index 51b4b12..178b802 100644 --- a/drivers/dsp/bridge/rmgr/node.c +++ b/drivers/dsp/bridge/rmgr/node.c @@ -3471,7 +3471,7 @@ static DSP_STATUS GetRMSFxns(struct NODE_MGR *hNodeMgr) } } } -func_end: + return status; } diff --git a/drivers/dsp/bridge/wmd/tiomap3430.c b/drivers/dsp/bridge/wmd/tiomap3430.c index 1fca3e5..9a535d0 100644 --- a/drivers/dsp/bridge/wmd/tiomap3430.c +++ b/drivers/dsp/bridge/wmd/tiomap3430.c @@ -2034,24 +2034,8 @@ static DSP_STATUS PteSet(struct PgTableAttrs *pt, u32 pa, u32 va, if (pfn_valid(__phys_to_pfn(patemp))) { pg = phys_to_page(patemp); get_page(pg); - } - if (page_count(pg) <= 1) { - printk(KERN_EMERG "DSPBRIDGE:MAP function: " - "COUNT 0 FOR PA 0x%x\n", patemp); - printk(KERN_EMERG "Bad page state" - KERN_EMERG "in process '%s'\n" - KERN_EMERG "page:%p flags:0x%0*lx " - KERN_EMERG "mapping:%p mapcount:%d " - KERN_EMERG "count:%d\n" - KERN_EMERG "Trying to fix it up, but " - KERN_EMERG "a reboot is needed\n" - KERN_EMERG "Backtrace:\n", - current->comm, pg, - (int)(2*sizeof(unsigned long)), - (unsigned long)pg->flags, pg->mapping, - page_mapcount(pg), page_count(pg)); - dump_stack(); - BUG_ON(1); + if (page_count(pg) <= 1) + goto pg_cnt_err_out; } patemp += HW_PAGE_SIZE_4KB; @@ -2126,6 +2110,16 @@ static DSP_STATUS PteSet(struct PgTableAttrs *pt, u32 pa, u32 va, } DBG_Trace(DBG_ENTER, "< PteSet status %x\n", status); return status; + +pg_cnt_err_out: + pr_emerg("DSPBRIDGE:MAP function: COUNT 0 FOR PA 0x%x\n", patemp); + pr_emerg("Bad page state in process '%s'\n page:%p flags:%lx " + "mapping:%p mapcount:%d count:%d\n", + current->comm, pg, pg->flags, + pg->mapping, page_mapcount(pg), page_count(pg)); + pr_emerg("Backtrace:\n"); + dump_stack(); + BUG_ON(1); } /* Memory map kernel VA -- memory allocated with vmalloc */ -- 1.6.2.1