Messages in this thread Patch in this message |  | | | Date | Wed, 25 Mar 2009 17:56:58 +0800 | | From | Wang Chen <> | | Subject | Re: linux-next-20090324: undefined reference to `__this_fixmap_does_not_exist\' |
| |
Wang Chen said the following on 2009-3-25 16:52: > Wang Chen said the following on 2009-3-25 12:58: >> Tetsuo Handa said the following on 2009-3-25 11:24: >>> Hello. >>> >>> I encountered below error. >>> >>> arch/x86/mm/built-in.o(.init.text+0x1831): In function `early_ioremap_init': >>> : undefined reference to `__this_fixmap_does_not_exist' >>> make: *** [.tmp_vmlinux1] Error 1 >>> >>> Config is at http://I-love.SAKURA.ne.jp/tmp/config-2.6.29-next-20090324 >>> >> Tetsuo, I've tried the latest tip, it's OK. >> I can't trigger the same problem as you do. >> So I will try linux-next later. >> > > Tetsuo > > I've "make" tested linux-next-20090324 with your config. > Still can't trigger the error. > It's strange :( >
Maybe we use different gcc versions. Please try following patch.
From: Wang Chen <wangchen@cn.fujitsu.com> Subject: [PATCH] use __fix_to_virt(), because we are sure it's safe
Commit:8827247ffcc9e880cbe4705655065cf011265157 used a variable(which would be optimized to constant) as fix_to_virt()'s parameter. It's depended on gcc's optimization and maybe failed on old gcc.
We can use __fix_to_vir() insteadly, because we know it's safe and don't need link time error reporting.
Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com> Reported-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp> --- ioremap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- arch/x86/mm/ioremap.c.orig 2009-03-25 17:36:01.000000000 +0800 +++ arch/x86/mm/ioremap.c 2009-03-25 17:36:54.000000000 +0800 @@ -523,7 +523,7 @@ void __init early_ioremap_init(void) printk(KERN_INFO "early_ioremap_init()\n"); for (i = 0; i < FIX_BTMAPS_SLOTS; i++) - slot_virt[i] = fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i); + slot_virt[i] = __fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i); pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN)); if (sizeof(bm_pte)) {
|  |