Re: [PATCH] FRV: Specify the minimum slab/kmalloc alignment

From: Andrew Morton
Date: Wed May 28 2008 - 15:16:46 EST


On Wed, 28 May 2008 16:49:01 +0100
David Howells <dhowells@xxxxxxxxxx> wrote:

> David Howells <dhowells@xxxxxxxxxx> wrote:
>
> > +#define ARCH_KMALLOC_MINALIGN (sizeof(long) * 2)
> > +#define ARCH_SLAB_MINALIGN (sizeof(long) * 2)
>
> This doesn't work if SLAB is selected and slab debugging is enabled as these
> are passed to the preprocessor.
>

So.. like this?

From: David Howells <dhowells@xxxxxxxxxx>

Specify the minimum slab/kmalloc alignment to be 8 bytes. This fixes a
crash when SLOB is selected as the memory allocator. The FRV arch needs
this so that it can use the load- and store-double instructions without
faulting. By default SLOB sets the minimum to be 4 bytes.

We need to use literal constants here as slab evaluates these within cpp.

Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
Cc: Pekka Enberg <penberg@xxxxxxxxxxxxxx>
Cc: Matt Mackall <mpm@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

include/asm-frv/mem-layout.h | 7 +++++++
1 file changed, 7 insertions(+)

diff -puN include/asm-frv/mem-layout.h~frv-specify-the-minimum-slab-kmalloc-alignment include/asm-frv/mem-layout.h
--- a/include/asm-frv/mem-layout.h~frv-specify-the-minimum-slab-kmalloc-alignment
+++ a/include/asm-frv/mem-layout.h
@@ -31,6 +31,13 @@

#define PAGE_MASK (~(PAGE_SIZE-1))

+/*
+ * the slab must be aligned such that load- and store-double instructions don't
+ * fault if used
+ */
+#define ARCH_KMALLOC_MINALIGN 8 /* (sizeof(long) * 2) */
+#define ARCH_SLAB_MINALIGN 8 /* (sizeof(long) * 2) */
+
/*****************************************************************************/
/*
* virtual memory layout from kernel's point of view
_

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/