From eaadc5c4f97b91f76d2481b03102e68c8ef3c744 Mon Sep 17 00:00:00 2001
From: Jonas Gorski <jogo@openwrt.org>
Date: Thu, 18 Jul 2013 13:08:33 +0000
Subject: [PATCH] kernel: move xor into its own package

xor.ko is needed by btrfs in 3.10+, so split it out into its own
package. Make it hidden as it does not provide any functionality on its
own.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 37395
---
 package/kernel/linux/modules/block.mk |  8 +++-----
 package/kernel/linux/modules/lib.mk   | 16 ++++++++++++++++
 2 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/package/kernel/linux/modules/block.mk b/package/kernel/linux/modules/block.mk
index e522276162..b688084637 100644
--- a/package/kernel/linux/modules/block.mk
+++ b/package/kernel/linux/modules/block.mk
@@ -306,10 +306,9 @@ $(eval $(call KernelPackage,md-raid10))
 
 
 define KernelPackage/md-raid456
-$(call KernelPackage/md/Depends,+kmod-lib-raid6)
+$(call KernelPackage/md/Depends,+kmod-lib-raid6 +kmod-lib-xor)
   TITLE:=RAID Level 456 Driver
   KCONFIG:= \
-       CONFIG_XOR_BLOCKS \
        CONFIG_ASYNC_CORE \
        CONFIG_ASYNC_MEMCPY \
        CONFIG_ASYNC_XOR \
@@ -319,14 +318,13 @@ $(call KernelPackage/md/Depends,+kmod-lib-raid6)
        CONFIG_MD_RAID456 \
        CONFIG_MULTICORE_RAID456=n
   FILES:= \
-	$(LINUX_DIR)/crypto/xor.ko \
 	$(LINUX_DIR)/crypto/async_tx/async_tx.ko \
 	$(LINUX_DIR)/crypto/async_tx/async_memcpy.ko \
 	$(LINUX_DIR)/crypto/async_tx/async_xor.ko \
 	$(LINUX_DIR)/crypto/async_tx/async_pq.ko \
 	$(LINUX_DIR)/crypto/async_tx/async_raid6_recov.ko \
-	$(LINUX_DIR)/drivers/md/raid456.ko \
-  AUTOLOAD:=$(call AutoLoad,28, xor async_tx async_memcpy async_xor async_pq async_raid6_recov raid456)
+	$(LINUX_DIR)/drivers/md/raid456.ko
+  AUTOLOAD:=$(call AutoLoad,28, async_tx async_memcpy async_xor async_pq async_raid6_recov raid456)
 endef
 
 define KernelPackage/md-raid456/description
diff --git a/package/kernel/linux/modules/lib.mk b/package/kernel/linux/modules/lib.mk
index 095edb1a58..39a928a02b 100644
--- a/package/kernel/linux/modules/lib.mk
+++ b/package/kernel/linux/modules/lib.mk
@@ -133,6 +133,22 @@ endef
 $(eval $(call KernelPackage,lib-raid6))
 
 
+define KernelPackage/lib-xor
+  SUBMENU:=$(LIB_MENU)
+  TITLE:=XOR blocks algorithm support
+  HIDDEN:=1
+  KCONFIG:=CONFIG_XOR_BLOCKS
+  FILES:=$(LINUX_DIR)/crypto/xor.ko
+  AUTOLOAD:=$(call AutoLoad,20,xor,1)
+endef
+
+define KernelPackage/lib-xor/description
+ Kernel module for XOR blocks algorithms.
+endef
+
+$(eval $(call KernelPackage,lib-xor))
+
+
 define KernelPackage/lib-textsearch
 SUBMENU:=$(LIB_MENU)
   TITLE:=Textsearch support
-- 
2.30.2