Re: d451564 breakage

From: Andrew Morton
Date: Fri Nov 13 2009 - 14:55:48 EST


On Fri, 13 Nov 2009 15:11:19 +0000
Russell King <rmk@xxxxxxxxxxxxxxxx> wrote:

> Change:
>
> highmem: Fix debug_kmap_atomic() to also handle KM_IRQ_PTE, KM_NMI, and KM_NMI_PTE
>
> Appears to break ARM:
>
> mm/highmem.c: In function ___debug_kmap_atomic___:
> mm/highmem.c:436: error: ___KM_NMI___ undeclared (first use in this function)
> mm/highmem.c:436: error: (Each undeclared identifier is reported only once
> mm/highmem.c:436: error: for each function it appears in.)
> mm/highmem.c:436: error: ___KM_NMI_PTE___ undeclared (first use in this function)
> mm/highmem.c:443: error: ___KM_IRQ_PTE___ undeclared (first use in this function)
> make[2]: *** [mm/highmem.o] Error 1
> make[1]: *** [mm] Error 2
>
> I'd prefer not to have to add these definitions just so that highmem
> debugging can work for two reasons:
>
> 1. either we allocate mappings for these which will never be used, which
> unnecessarily wastes precious virtual memory space.
>
> 2. we define them to be some other KM_* value and hope that they never
> get used. If they do get used, we'll never know by way of compiler
> error but could result in silent data corruption.
>
> The only sane alternative I can see would be to define these as KM_TYPE_NR
> and either ensure that kmap_atomic() always fails for out-of-bounds kmap
> types (more preferable to catch problems but has a performance impact) or
> we have the kmap debugging detect this as well.
>
> Any preferences?

Could we do something nasty with ifdefs?

In arch header:
#define KM_NMI KM_NMI


In generic code:
#ifdef KM_NMI
<stuff which references KM_NMI>
#endif

or similar?
--
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/