Messages in this thread | | | Date | Sat, 14 Nov 2009 08:19:19 +0000 | From | Russell King <> | Subject | Re: d451564 breakage |
| |
On Sat, Nov 14, 2009 at 01:21:38AM +0100, Ingo Molnar wrote: > What i was thinking of was a really simple thing in highmem.c (or > rather, in include/linux/highmem.h, after kmap_types.h gets included): > > #ifndef KM_NMI > # define KM_NMI -1 > #endif > #ifndef KM_NMI_PTE > # define KM_NMI_PTE -1 > #endif > > etc.
That means we need to ensure that kmap_atomic() fails when these are used, to avoid kmap_atomic corrupting virtual mappings below the kmap area should one of these be used. That means additional run-time code in all those implementations - I'd much rather leave that to someone else to do.
Alternatively, they could be wrapped with CONFIG_DEBUG_HIGHMEM so they aren't normally visible.
In any case, as I've already pointed out, we still need to add definitions to all places which define these constants. Having them exist as enum constants does not make them visible to the preprocessor.
I don't think it's as simple as you're trying to make it. However, since you seem to have a solid idea which you're trying to get me to implement, maybe it'd just be much simpler and faster if you provided that patch.
-- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of:
| |