Re: tipc_init(), WARNING: at arch/x86/mm/highmem_32.c:52, [2.6.24-rc4-git5: Reported regressions from 2.6.23]

Pekka Enberg
2007-12-09T08:33:20Z

Hi Linus,

On Dec 8, 2007 7:54 PM, Linus Torvalds <torvalds@linux-foundation.org> wrote:
> diff --git a/mm/slob.c b/mm/slob.c
> index ee2ef8a..773a7aa 100644
> --- a/mm/slob.c
> +++ b/mm/slob.c
> @@ -330,7 +330,7 @@ static void *slob_alloc(size_t size, gfp_t gfp, int align, int node)
>
> /* Not enough space: must allocate a new page */
> if (!b) {
> - b = slob_new_page(gfp, 0, node);
> + b = slob_new_page(gfp & ~__GFP_ZERO, 0, node);
> if (!b)
> return 0;
> sp = (struct slob_page *)virt_to_page(b);
>
> diff --git a/mm/slub.c b/mm/slub.c
> index b9f37cb..9c1d9f3 100644
> --- a/mm/slub.c
> +++ b/mm/slub.c
> @@ -1468,6 +1468,9 @@ static void *__slab_alloc(struct kmem_cache *s,
> void **object;
> struct page *new;
>
> + /* We handle __GFP_ZERO in the caller */
> + gfpflags &= ~__GFP_ZERO;
> +
> if (!c->page)
> goto new_slab;

In case you didn't already merge this:

Reviewed-by: Pekka Enberg <penberg@cs.helsinki.fi>