+# XXX: added workarounds for modules renamed in 2.6 series:
+# - aes > aes_generic (2.6.24)
+# - blkcipher -> crypto_blkcipher (2.6.25)
+# - des > des_generic (2.6.24)
+# - sha1 > sha1_generic (2.6.24)
+# - sha256 > sha256_generic (2.6.24)
+# - sha512 > sha512_generic (2.6.26)
+ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.24)),1)
+ CRYPTO_GENERIC:=_generic
+ AES_SUFFIX:=$(CRYPTO_GENERIC)
+ DES_SUFFIX:=$(CRYPTO_GENERIC)
+ SHA1_SUFFIX:=$(CRYPTO_GENERIC)
+ SHA256_SUFFIX:=$(CRYPTO_GENERIC)
+endif
+ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.25)),1)
+ CRYPTO_PREFIX:=crypto_
+ BLKCIPHER_PREFIX:=$(CRYPTO_PREFIX)
+endif
+ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.26)),1)
+ SHA512_SUFFIX:=$(CRYPTO_GENERIC)
+endif
+AEAD_CONF:=AEAD
+MANAGER_CONF:=MANAGER
+BLKCIPHER_CONF:=BLKCIPHER
+HASH_CONF:=HASH
+ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.30)),1)
+ CRYPTO_MODULE_PCOMPRESS:=PCOMP=pcompress
+ AEAD_CONF:=AEAD2
+ MANAGER_CONF:=MANAGER2
+ BLKCIPHER_CONF:=BLKCIPHER2
+ HASH_CONF:=HASH2
+endif
+
+CRYPTO_MODULES = \
+ ALGAPI=crypto_algapi \
+ $(AEAD_CONF)=aead \
+ $(CRYPTO_MODULE_PCOMPRESS) \
+ $(BLKCIPHER_CONF)=$(BLKCIPHER_PREFIX)blkcipher \
+ $(HASH_CONF)=crypto_hash \
+ $(MANAGER_CONF)=cryptomgr \
+ CBC=cbc \
+ ECB=ecb \
+ DEFLATE=deflate
+
+crypto_confvar=CONFIG_CRYPTO_$(word 1,$(subst =,$(space),$(1)))
+crypto_file=$(if $(findstring y,$($(call crypto_confvar,$(1)))),,$(LINUX_DIR)/crypto/$(word 2,$(subst =,$(space),$(1))).$(LINUX_KMOD_SUFFIX))
+crypto_name=$(if $(findstring y,$($(call crypto_confvar,$(1)))),,$(word 2,$(subst =,$(space),$(1))))
+
+# XXX: added CONFIG_CRYPTO_HMAC to KCONFIG so that CONFIG_CRYPTO_HASH is
+# always set, even if no hash modules are selected