powerpc: set ARCH_KMALLOC_MINALIGN if CONFIG_NOT_COHERENT_CACHE=y
From: Dale Farnsworth <hidden>
Date: 2006-03-03 20:16:09
From: Dale Farnsworth <redacted> Ensure that buffers returned by kmalloc do not share a cache line with other data when doing non-cache-coherent I/O. Signed-off-by: Dale Farnsworth <redacted> --- Without this patch, when CONFIG_SLAB_DEBUG=y, the buffer allocated by kmalloc shares a cache line with the redzone1 area. This can cause false messages of this type: slab error in cache_free_debugcheck(): cache `size-2048': double free, or memory outside object was overwritten We could work around it in each driver, but ARCH_KMALLOC_MINALIGN is provided for this purpose, so use it. include/asm-powerpc/cache.h | 4 ++++ 1 file changed, 4 insertions(+) Index: linux-2.6-mv643xx_enet/include/asm-powerpc/cache.h ===================================================================
--- linux-2.6-mv643xx_enet.orig/include/asm-powerpc/cache.h
+++ linux-2.6-mv643xx_enet/include/asm-powerpc/cache.h@@ -20,6 +20,10 @@ #define SMP_CACHE_BYTES L1_CACHE_BYTES +#ifdef CONFIG_NOT_COHERENT_CACHE +#define ARCH_KMALLOC_MINALIGN L1_CACHE_BYTES +#endif + #if defined(__powerpc64__) && !defined(__ASSEMBLY__) struct ppc64_caches { u32 dsize; /* L1 d-cache size */