diff mbox

mempool: add missing include

Message ID 3302342.cNyRUGN06P@wuerfel (mailing list archive)
State New, archived
Headers show

Commit Message

Arnd Bergmann April 9, 2015, 9:46 a.m. UTC
This is a fix^3 for the mempool poisoning patch, which introduces
a compile-time error on some ARM randconfig builds:

mm/mempool.c: In function 'check_element':
mm/mempool.c:65:16: error: implicit declaration of function 'kmap_atomic' [-Werror=implicit-function-declaration]
   void *addr = kmap_atomic((struct page *)element);

The problem is clearly the missing declaration, and including
linux/highmem.h fixes it.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: a3db5a8463b0db ("mm, mempool: poison elements backed by page allocator fix fix")

Comments

David Rientjes April 9, 2015, 7:31 p.m. UTC | #1
On Thu, 9 Apr 2015, Arnd Bergmann wrote:

> This is a fix^3 for the mempool poisoning patch, which introduces
> a compile-time error on some ARM randconfig builds:
> 
> mm/mempool.c: In function 'check_element':
> mm/mempool.c:65:16: error: implicit declaration of function 'kmap_atomic' [-Werror=implicit-function-declaration]
>    void *addr = kmap_atomic((struct page *)element);
> 
> The problem is clearly the missing declaration, and including
> linux/highmem.h fixes it.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Fixes: a3db5a8463b0db ("mm, mempool: poison elements backed by page allocator fix fix")

Acked-by: David Rientjes <rientjes@google.com>

Thanks!  Can you confirm that this is because CONFIG_BLOCK is disabled and 
not something else?
Arnd Bergmann April 9, 2015, 9:14 p.m. UTC | #2
On Thursday 09 April 2015 12:31:05 David Rientjes wrote:
> On Thu, 9 Apr 2015, Arnd Bergmann wrote:
> 
> > This is a fix^3 for the mempool poisoning patch, which introduces
> > a compile-time error on some ARM randconfig builds:
> > 
> > mm/mempool.c: In function 'check_element':
> > mm/mempool.c:65:16: error: implicit declaration of function 'kmap_atomic' [-Werror=implicit-function-declaration]
> >    void *addr = kmap_atomic((struct page *)element);
> > 
> > The problem is clearly the missing declaration, and including
> > linux/highmem.h fixes it.
> > 
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > Fixes: a3db5a8463b0db ("mm, mempool: poison elements backed by page allocator fix fix")
> 
> Acked-by: David Rientjes <rientjes@google.com>
> 
> Thanks!  Can you confirm that this is because CONFIG_BLOCK is disabled and 
> not something else?

Unfortunately I've lost the information which build was responsible
for this error (normally I keep it, but my script failed here because the
same config introduced two new regressions). CONFIG_BLOCK sounds plausible
here.

If necessary, I can repeat the last few hundred builds without this
patch to find out what it was.

	Arnd
David Rientjes April 9, 2015, 11:12 p.m. UTC | #3
On Thu, 9 Apr 2015, Arnd Bergmann wrote:

> > > This is a fix^3 for the mempool poisoning patch, which introduces
> > > a compile-time error on some ARM randconfig builds:
> > > 
> > > mm/mempool.c: In function 'check_element':
> > > mm/mempool.c:65:16: error: implicit declaration of function 'kmap_atomic' [-Werror=implicit-function-declaration]
> > >    void *addr = kmap_atomic((struct page *)element);
> > > 
> > > The problem is clearly the missing declaration, and including
> > > linux/highmem.h fixes it.
> > > 
> > > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > > Fixes: a3db5a8463b0db ("mm, mempool: poison elements backed by page allocator fix fix")
> > 
> > Acked-by: David Rientjes <rientjes@google.com>
> > 
> > Thanks!  Can you confirm that this is because CONFIG_BLOCK is disabled and 
> > not something else?
> 
> Unfortunately I've lost the information which build was responsible
> for this error (normally I keep it, but my script failed here because the
> same config introduced two new regressions). CONFIG_BLOCK sounds plausible
> here.
> 
> If necessary, I can repeat the last few hundred builds without this
> patch to find out what it was.
> 

Ok, thanks.  The only reason I ask is because if this is CONFIG_BLOCK then 
it shouldn't be arm specific and nothing else has reported it.  I'll do a 
randconfig loop with my arm cross-compiler and see if I can find any other 
issues.
Jim Davis April 9, 2015, 11:22 p.m. UTC | #4
On Thu, Apr 9, 2015 at 4:12 PM, David Rientjes <rientjes@google.com> wrote:
> On Thu, 9 Apr 2015, Arnd Bergmann wrote:
>
>> > > This is a fix^3 for the mempool poisoning patch, which introduces
>> > > a compile-time error on some ARM randconfig builds:
>> > >
>> > > mm/mempool.c: In function 'check_element':
>> > > mm/mempool.c:65:16: error: implicit declaration of function 'kmap_atomic' [-Werror=implicit-function-declaration]
>> > >    void *addr = kmap_atomic((struct page *)element);
>> > >
>> > > The problem is clearly the missing declaration, and including
>> > > linux/highmem.h fixes it.
>> > >
>> > > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>> > > Fixes: a3db5a8463b0db ("mm, mempool: poison elements backed by page allocator fix fix")
>> >
>> > Acked-by: David Rientjes <rientjes@google.com>
>> >
>> > Thanks!  Can you confirm that this is because CONFIG_BLOCK is disabled and
>> > not something else?
>>
>> Unfortunately I've lost the information which build was responsible
>> for this error (normally I keep it, but my script failed here because the
>> same config introduced two new regressions). CONFIG_BLOCK sounds plausible
>> here.
>>
>> If necessary, I can repeat the last few hundred builds without this
>> patch to find out what it was.
>>
>
> Ok, thanks.  The only reason I ask is because if this is CONFIG_BLOCK then
> it shouldn't be arm specific and nothing else has reported it.

The random configuration file included in
http://marc.info/?l=linux-mm&m=142851035816974&w=2 doesn't have
CONFIG_BLOCK set.  That build failure was on an x86_32 system.
diff mbox

Patch

diff --git a/mm/mempool.c b/mm/mempool.c
index 05ad55e61264..5e7c4a871391 100644
--- a/mm/mempool.c
+++ b/mm/mempool.c
@@ -12,6 +12,7 @@ 
 #include <linux/mm.h>
 #include <linux/slab.h>
 #include <linux/kasan.h>
+#include <linux/highmem.h>
 #include <linux/kmemleak.h>
 #include <linux/export.h>
 #include <linux/mempool.h>