slab: fix generic PAGE_POISONING conflict with SLAB_RED_ZONE
authorRon Lee <ron@debian.org>
Thu, 21 May 2009 19:28:22 +0000 (04:58 +0930)
committerPekka Enberg <penberg@cs.helsinki.fi>
Fri, 22 May 2009 08:01:12 +0000 (11:01 +0300)
commit6746136520cd0827320a83e62d0a023a5a433650
tree2e57aef24fbb8e8531aad10061245ec4bddda6f9
parent45d447406a19cbfd42720f066f156f4eb9d68801
slab: fix generic PAGE_POISONING conflict with SLAB_RED_ZONE

A generic page poisoning mechanism was added with commit:
 6a11f75b6a17b5d9ac5025f8d048382fd1f47377
which destructively poisons full pages with a bitpattern.

On arches where PAGE_POISONING is used, this conflicts with the slab
redzone checking enabled by DEBUG_SLAB, scribbling bits all over its
magic words and making it complain about that quite emphatically.

On x86 (and I presume at present all the other arches which set
ARCH_SUPPORTS_DEBUG_PAGEALLOC too), the kernel_map_pages() operation
is non destructive so it can coexist with the other DEBUG_SLAB
mechanisms just fine.

This patch favours the expensive full page destruction test for
cases where there is a collision and it is explicitly selected.

Signed-off-by: Ron Lee <ron@debian.org>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
mm/slab.c