ARM: 7835/2: fix modular build of xor_blocks() with NEON enabled
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Mon, 9 Sep 2013 14:08:38 +0000 (15:08 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 9 Sep 2013 14:24:47 +0000 (15:24 +0100)
Commit 0195659 introduced a NEON accelerated version of the xor_blocks()
function, but it needs the changes in this patch to allow it to be built
as a module rather than statically into the kernel.

This patch creates a separate module xor-neon.ko which exports the NEON
inner xor_blocks() functions depended upon by the regular xor.ko if it
is built with CONFIG_KERNEL_MODE_NEON=y

Reported-by: Josh Boyer <jwboyer@fedoraproject.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/lib/Makefile
arch/arm/lib/xor-neon.c

index aaf3a87..bd454b0 100644 (file)
@@ -49,5 +49,5 @@ $(obj)/csumpartialcopyuser.o: $(obj)/csumpartialcopygeneric.S
 ifeq ($(CONFIG_KERNEL_MODE_NEON),y)
   NEON_FLAGS                   := -mfloat-abi=softfp -mfpu=neon
   CFLAGS_xor-neon.o            += $(NEON_FLAGS)
-  lib-$(CONFIG_XOR_BLOCKS)     += xor-neon.o
+  obj-$(CONFIG_XOR_BLOCKS)     += xor-neon.o
 endif
index f485e5a..2c40aea 100644 (file)
@@ -9,6 +9,9 @@
  */
 
 #include <linux/raid/xor.h>
+#include <linux/module.h>
+
+MODULE_LICENSE("GPL");
 
 #ifndef __ARM_NEON__
 #error You should compile this file with '-mfloat-abi=softfp -mfpu=neon'
@@ -40,3 +43,4 @@ struct xor_block_template const xor_block_neon_inner = {
        .do_4   = xor_8regs_4,
        .do_5   = xor_8regs_5,
 };
+EXPORT_SYMBOL(xor_block_neon_inner);