2015-04-09 09:47:32

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] mempool: add missing include

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 <[email protected]>
Fixes: a3db5a8463b0db ("mm, mempool: poison elements backed by page allocator fix fix")

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>


2015-04-09 19:31:11

by David Rientjes

[permalink] [raw]
Subject: Re: [PATCH] mempool: add missing include

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 <[email protected]>
> Fixes: a3db5a8463b0db ("mm, mempool: poison elements backed by page allocator fix fix")

Acked-by: David Rientjes <[email protected]>

Thanks! Can you confirm that this is because CONFIG_BLOCK is disabled and
not something else?

2015-04-09 21:14:26

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] mempool: add missing include

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 <[email protected]>
> > Fixes: a3db5a8463b0db ("mm, mempool: poison elements backed by page allocator fix fix")
>
> Acked-by: David Rientjes <[email protected]>
>
> 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

2015-04-09 23:12:16

by David Rientjes

[permalink] [raw]
Subject: Re: [PATCH] mempool: add missing include

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 <[email protected]>
> > > Fixes: a3db5a8463b0db ("mm, mempool: poison elements backed by page allocator fix fix")
> >
> > Acked-by: David Rientjes <[email protected]>
> >
> > 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.

2015-04-09 23:22:45

by Jim Davis

[permalink] [raw]
Subject: Re: [PATCH] mempool: add missing include

On Thu, Apr 9, 2015 at 4:12 PM, David Rientjes <[email protected]> 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 <[email protected]>
>> > > Fixes: a3db5a8463b0db ("mm, mempool: poison elements backed by page allocator fix fix")
>> >
>> > Acked-by: David Rientjes <[email protected]>
>> >
>> > 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.