kref debugging cannot detect kref_put() with unreferenced object, when the structure including kref is allocated by slab and slab debugging config is enabled. Because use-after-free poisoning make kref counter signed value. So this patch prevents it by changing poisoning pattern. Signed-off-by: Akinobu Mita CC: Matt Mackall CC: Manfred Spraul CC: Pekka J Enberg mm/slab.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Index: 2.6-git/mm/slab.c =================================================================== --- 2.6-git.orig/mm/slab.c +++ 2.6-git/mm/slab.c @@ -503,9 +503,9 @@ struct kmem_cache { #define RED_ACTIVE 0x170FC2A5UL /* when obj is active */ /* ...and for poisoning */ -#define POISON_INUSE 0x5a /* for use-uninitialised poisoning */ -#define POISON_FREE 0x6b /* for use-after-free poisoning */ -#define POISON_END 0xa5 /* end-byte of poisoning */ +#define POISON_INUSE 0xa5 /* for use-uninitialised poisoning */ +#define POISON_FREE 0xb6 /* for use-after-free poisoning */ +#define POISON_END 0xab /* end-byte of poisoning */ /* * memory layout of objects: --