powerpc: set ARCH_KMALLOC_MINALIGN if CONFIG_NOT_COHERENT_CACHE=y
Dale Farnsworth
dale at farnsworth.org
Sat Mar 4 07:09:28 EST 2006
From: Dale Farnsworth <dale at farnsworth.org>
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 <dale at farnsworth.org>
---
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 */
More information about the Linuxppc-dev
mailing list