Re: d451564 breakage

From: Ingo Molnar
Date: Fri Nov 13 2009 - 17:50:33 EST



* Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:

> 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?

Yeah, that would be the simplest - and all of this will go away with
Peter's stacked kmaps.

Ingo
--
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/