Problem: newer kernels (2.6.26.7, 2.6.27) may force parts of the crypto
subsystem into the kernel if there are dependencies on the crypto
subsystem. This breaks the package/kernel/modules/crypto.mk. This fix
checks the kernel .config file to see if the module is already included
in the kernel (CONFIG_CRYPTO_.*=y) and if it is, then it's not added to
the build.

Signed-off-by: Jose Vasconcellos <[EMAIL PROTECTED]>

Index: package/kernel/modules/crypto.mk
===================================================================
--- package/kernel/modules/crypto.mk	(revision 13080)
+++ package/kernel/modules/crypto.mk	(working copy)
@@ -33,6 +33,34 @@
 # XXX: added CONFIG_CRYPTO_HMAC to KCONFIG so that CONFIG_CRYPTO_HASH is 
 # always set, even if no hash modules are selected
 define KernelPackage/crypto-core
+  crypto_modules := $(shell grep \"^CONFIG_CRYPTO_.*=y\" $(LINUX_DIR)/.config)
+  crypto_files :=
+  # remove files that are part of the kernel
+  ifeq (,$(find CONFIG_CRYPTO_ALGAPI,$(crypto_modules))
+    crypto_files += crypto_algapi
+  endif
+  ifeq (,$(find CONFIG_CRYPTO_ALGAPI,$(crypto_modules))
+    crypto_files += crypto_algapi
+  endif
+  ifeq (,$(find CONFIG_CRYPTO_BLKCIPHER,$(crypto_modules))
+    crypto_files += $(BLKCIPHER_PREFIX)blkcipher
+  endif
+  ifeq (,$(find CONFIG_CRYPTO_ECB,$(crypto_modules))
+    crypto_files += ecb
+  endif
+  ifeq (,$(find CONFIG_CRYPTO_CBC,$(crypto_modules))
+    crypto_files += cbc
+  endif
+  ifeq (,$(find CONFIG_CRYPTO_DEFLATE,$(crypto_modules))
+    crypto_files += deflate
+  endif
+  ifeq (,$(find CONFIG_CRYPTO_HASH,$(crypto_modules))
+    crypto_files += crypto_hash
+  endif
+  ifeq (,$(find CONFIG_CRYPTO_MANAGER,$(crypto_modules))
+    crypto_files += cryptomgr
+  endif
+
   SUBMENU:=$(CRYPTO_MENU)
   TITLE:=Core CryptoAPI modules
   KCONFIG:= \
@@ -46,22 +74,8 @@
 	CONFIG_CRYPTO_HMAC \
 	CONFIG_CRYPTO_MANAGER
   FILES:= \
-	$(LINUX_DIR)/crypto/crypto_algapi.$(LINUX_KMOD_SUFFIX) \
-	$(LINUX_DIR)/crypto/$(BLKCIPHER_PREFIX)blkcipher.$(LINUX_KMOD_SUFFIX) \
-	$(LINUX_DIR)/crypto/cbc.$(LINUX_KMOD_SUFFIX) \
-	$(LINUX_DIR)/crypto/deflate.$(LINUX_KMOD_SUFFIX) \
-	$(LINUX_DIR)/crypto/ecb.$(LINUX_KMOD_SUFFIX) \
-	$(LINUX_DIR)/crypto/crypto_hash.$(LINUX_KMOD_SUFFIX) \
-	$(LINUX_DIR)/crypto/cryptomgr.$(LINUX_KMOD_SUFFIX)
-  AUTOLOAD:=$(call AutoLoad,01, \
-	crypto_algapi \
-	cryptomgr \
-	crypto_hash \
-	$(BLKCIPHER_PREFIX)blkcipher \
-	cbc \
-	ecb \
-	deflate \
-  )
+  	$(patsubst %,$(LINUX_DIR)/crypto/%.$(LINUX_KMOD_SUFFIX),$(crypto_files))
+  AUTOLOAD:=$(call AutoLoad,01, $(crypto_files) )
 endef
 
 define KernelPackage/crypto-core/2.4
_______________________________________________
openwrt-devel mailing list
[email protected]
http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to