microblaze: Fix kmalloc alignment on non-coherent DMA platforms
authorMichal Simek <monstr@monstr.eu>
Mon, 26 Apr 2010 11:49:01 +0000 (13:49 +0200)
committerMichal Simek <monstr@monstr.eu>
Thu, 6 May 2010 09:21:59 +0000 (11:21 +0200)
Based on PowerPC patche 52142e756e9bf6485d3d53596e8aff2e816a7253

PowerPC description:
On platforms doing non-coherent DMA (4xx, 8xx, ...), it's important
that the kmalloc minimum alignment is set to the cache line size, to
avoid sharing cache lines between different objects, so that DMA to
one of the objects doesn't corrupt the other.

Signed-off-by: Michal Simek <monstr@monstr.eu>
arch/microblaze/include/asm/page.h

index 9b12902b9818128c30d1874e23a0d0840d17c2a8..de493f86d28f7884b2adb7a625c0848a38aa6b74 100644 (file)
@@ -31,6 +31,9 @@
 
 #ifndef __ASSEMBLY__
 
+/* MS be sure that SLAB allocates aligned objects */
+#define ARCH_KMALLOC_MINALIGN  L1_CACHE_BYTES
+
 #define PAGE_UP(addr)  (((addr)+((PAGE_SIZE)-1))&(~((PAGE_SIZE)-1)))
 #define PAGE_DOWN(addr)        ((addr)&(~((PAGE_SIZE)-1)))