x86: early_ioremap_init(), use __fix_to_virt(), because we are sure it's safe
authorWang Chen <wangchen@cn.fujitsu.com>
Wed, 25 Mar 2009 13:07:11 +0000 (14:07 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 25 Mar 2009 13:07:11 +0000 (14:07 +0100)
commit9f4f25c86ff2233dd98d4bd6968afb1ca66558a0
treef9d29becb0f2158bb3abe55f3e8e4c987b54ff7f
parent29219683c46cb89edf5c58418b5305b14646d030
x86: early_ioremap_init(), use __fix_to_virt(), because we are sure it's safe

Tetsuo Handa reported this link bug:

 |  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

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 fails on old gcc. (Tetsuo used gcc 3.3)

We can use __fix_to_vir() instead, because we know it's safe and
don't need link time error reporting.

Reported-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com>
Cc: sfr@canb.auug.org.au
LKML-Reference: <49C9FFEA.7060908@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/mm/ioremap.c