public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* link error in today's x86.git
@ 2008-01-17 18:29 Jeremy Fitzhardinge
  0 siblings, 0 replies; only message in thread
From: Jeremy Fitzhardinge @ 2008-01-17 18:29 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Linux Kernel Mailing List

I'm seeing this with the current x86.git:

arch/x86/mm/built-in.o: In function `fix_to_virt': /home/jeremy/hg/xen/paravirt/linux-i386/include2/asm/fixmap_32.h:157: undefined reference to `__this_fixmap_does_not_exist'

It appears to be coming from ioremap_32.c.

I can't see any particular change which would have caused this, but this 
loop in early_ioremap_reset:

	for (idx = FIX_BTMAP_BEGIN; idx <= FIX_BTMAP_END; idx--) {
		addr = fix_to_virt(idx);
		pte = early_ioremap_pte(addr);
		if (!*pte & _PAGE_PRESENT) {
			phys = *pte & PAGE_MASK;
			set_fixmap(idx, phys);
		}
	}

seems incompatible with the test in fix_to_virt:

	/*
	 * this branch gets completely eliminated after inlining,
	 * except when someone tries to use fixaddr indices in an
	 * illegal way. (such as mixing up address types or using
	 * out-of-range indices).
	 *
	 * If it doesn't get removed, the linker will complain
	 * loudly with a reasonably clear error message..
	 */
	if (idx >= __end_of_fixed_addresses)
		__this_fixmap_does_not_exist();

While the compiler could prove that idx is within range here, it seems a 
bit much to require it to.

    J

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-01-17 18:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-17 18:29 link error in today's x86.git Jeremy Fitzhardinge

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox