[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20091113225015.GC29657@elte.hu>
Date: Fri, 13 Nov 2009 23:50:15 +0100
From: Ingo Molnar <mingo@...e.hu>
To: Andrew Morton <akpm@...ux-foundation.org>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>
Cc: Russell King <rmk@....linux.org.uk>,
Soeren Sandmann Pedersen <sandmann@...hat.com>,
Linux Kernel List <linux-kernel@...r.kernel.org>
Subject: Re: d451564 breakage
* Andrew Morton <akpm@...ux-foundation.org> wrote:
> On Fri, 13 Nov 2009 15:11:19 +0000
> Russell King <rmk@....linux.org.uk> 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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists