__virt_addr_valid vs virtual percpu areas

From: Jeremy Fitzhardinge
Date: Wed Mar 04 2009 - 17:57:46 EST


On i386, __virt_addr_valid() has the test:

if (system_state != SYSTEM_BOOTING && is_vmalloc_addr((void *) x))
return false;


Why is the vmalloc area a valid virtual address while the system is booting? This is biting me because I need to translate percpu addresses to pfns, but I only bother doing the full pagetable walk if virt_addr_valid() is false (otherwise I just use __pa()).

Removing this test doesn't seem to harm anything at first glance. Is this OK to do in general (and can we quietly set fire to system_state while we're about it)?

Thanks,
J

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/