Re: 2.6.18-rc1-mm1 oops on x86_64

Christoph Lameter
2006-07-10T17:22:21Z

On Mon, 10 Jul 2006, Christoph Lameter wrote:

> Hmm.. What this should be then is
>
> VM_BUG_ON(gfp_flags & __GFP_WAIT

Wrong.

> +#ifdef CONFIG_HIGHMEM
> VM_BUG_ON((gfp_flags & (__GFP_WAIT | __GFP_HIGHMEM)) == __GFP_HIGHMEM);

> +#else
> + VM_BUG_ON((gfp_flags & __GFP_WAIT);

We would have to drop these two. sigh.

> +#endif

Disregard the earlier stuff. Sigh.

Index: linux-2.6.17-mm6/mm/page_alloc.c
===================================================================
--- linux-2.6.17-mm6.orig/mm/page_alloc.c 2006-07-07 16:51:50.430063305 -0700
+++ linux-2.6.17-mm6/mm/page_alloc.c 2006-07-10 10:21:32.507743432 -0700
@@ -255,7 +255,9 @@ static inline void prep_zero_page(struct
{
int i;

+#ifdef CONFIG_HIGHMEM
VM_BUG_ON((gfp_flags & (__GFP_WAIT | __GFP_HIGHMEM)) == __GFP_HIGHMEM);
+#endif
/*
* clear_highpage() will use KM_USER0, so it's a bug to use __GFP_ZERO
* and __GFP_HIGHMEM from hard or soft interrupt context.