On Wed, Apr 1, 2009 at 4:14 PM, Ameya Palande <2ameya@xxxxxxxxx> wrote: > 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. > This one removes dump_stack() and BUG_ON(). Cheers, Ameya.
From a427ddb9ad83dbb0f8165f9c1bfcc0a5e2fcd3cd 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 | 29 +++++++++++------------------ 3 files changed, 12 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..d94ce66 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,15 @@ 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"); + BUG(); } /* Memory map kernel VA -- memory allocated with vmalloc */ -- 1.6.2.1