Searched hist:"5211 e6e6c671f0d4b1e1a1023384d20227d8ee65" (Results 1 – 1 of 1) sorted by relevance
/linux/mm/ |
H A D | vmalloc.c | diff 5211e6e6c671f0d4b1e1a1023384d20227d8ee65 Sun Oct 29 13:46:55 CET 2006 Giridhar Pemmasani <pgiri@yahoo.com> [PATCH] Fix GFP_HIGHMEM slab panic
As reported by Martin J. Bligh <mbligh@google.com>, we let through some non-slab bits to slab allocation through __get_vm_area_node when doing a vmalloc.
I haven't been able to reproduce this, although I understand why it happens: vmalloc allocates memory with
GFP_KERNEL | __GFP_HIGHMEM
and commit 52fd24ca1db3a741f144bbc229beefe044202cac resulted in the same flags are passed down to cache_alloc_refill, causing the BUG. The following patch fixes it.
Note that when calling kmalloc_node, I am masking off __GFP_HIGHMEM with GFP_LEVEL_MASK, whereas __vmalloc_area_node does the same with
~(__GFP_HIGHMEM | __GFP_ZERO).
IMHO, using GFP_LEVEL_MASK is preferable, but either should fix this problem.
Signed-off-by: Giridhar Pemmasani (pgiri@yahoo.com) Cc: Martin J. Bligh <mbligh@google.com> Cc: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|