Take three. This time, I gave up on the dynamic support of fscache, preferring
to always have it compiled in and wired up as a dependency. There's clearly
some intended ability to do dynamic dispatch in the makefiles here (see, e.g.,
the handling of CONFIG_OF), but I couldn't make it work for me here. I think I
have all the requisite calls to subroutines, too.
I have a second patch below which turns on fscache support in the other exposed
network filesystems, namely NFS and CIFS, now that it's exposed.
Cheers,
--nwf;
diff --git a/package/kernel/linux/modules/crypto.mk
b/package/kernel/linux/modules/crypto.mk
index dbeffa7..0df2fbc 100644
--- a/package/kernel/linux/modules/crypto.mk
+++ b/package/kernel/linux/modules/crypto.mk
@@ -277,6 +277,17 @@ endef
$(eval $(call KernelPackage,crypto-cbc))
+define KernelPackage/crypto-pcbc
+ TITLE:=Propagating Cipher Block Chaining CryptoAPI module
+ DEPENDS:=+kmod-crypto-manager
+ KCONFIG:=CONFIG_CRYPTO_PCBC
+ FILES:=$(LINUX_DIR)/crypto/pcbc.ko
+ AUTOLOAD:=$(call AutoLoad,09,pcbc)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-pcbc))
+
define KernelPackage/crypto-crc32c
TITLE:=CRC32c CRC module
DEPENDS:=+kmod-crypto-hash
@@ -312,6 +323,16 @@ endef
$(eval $(call KernelPackage,crypto-deflate))
+define KernelPackage/crypto-fcrypt
+ TITLE:=FCRYPT cipher CryptoAPI module
+ KCONFIG:=CONFIG_CRYPTO_FCRYPT
+ FILES:=$(LINUX_DIR)/crypto/fcrypt.ko
+ AUTOLOAD:=$(call AutoLoad,09,fcrypt)
+ $(call AddDepends/crypto)
+endef
+
+$(eval $(call KernelPackage,crypto-fcrypt))
+
define KernelPackage/crypto-ecb
TITLE:=Electronic CodeBook CryptoAPI module
DEPENDS:=+kmod-crypto-manager
@@ -429,7 +450,6 @@ define KernelPackage/crypto-misc
$(if $(call kernel_patchver_ge,3.7),$(LINUX_DIR)/crypto/cast_common.ko)
\
$(LINUX_DIR)/crypto/cast5$(cast56_mod_suffix).ko \
$(LINUX_DIR)/crypto/cast6$(cast56_mod_suffix).ko \
- $(LINUX_DIR)/crypto/fcrypt.ko \
$(LINUX_DIR)/crypto/khazad.ko \
$(LINUX_DIR)/crypto/sha512_generic.ko \
$(LINUX_DIR)/crypto/tea.ko \
diff --git a/package/kernel/linux/modules/fs.mk
b/package/kernel/linux/modules/fs.mk
index cd27e4a..5faaf37 100644
--- a/package/kernel/linux/modules/fs.mk
+++ b/package/kernel/linux/modules/fs.mk
@@ -7,6 +7,43 @@
FS_MENU:=Filesystems
+define KernelPackage/fs-fscache
+ SUBMENU:=$(FS_MENU)
+ TITLE:=General filesystem local cache manager
+ DEPENDS:=
+ KCONFIG:=\
+ CONFIG_FSCACHE=m \
+ CONFIG_FSCACHE_STATS=y \
+ CONFIG_FSCACHE_HISTOGRAM=n \
+ CONFIG_FSCACHE_DEBUG=n \
+ CONFIG_FSCACHE_OBJECT_LIST=n \
+ CONFIG_CACHEFILES=y \
+ CONFIG_CACHEFILES_DEBUG=n \
+ CONFIG_CACHEFILES_HISTOGRAM=n
+ FILES:=$(LINUX_DIR)/fs/fscache/fscache.ko
+ AUTOLOAD:=$(call AutoLoad,29,fscache)
+endef
+
+$(eval $(call KernelPackage,fs-fscache))
+
+define KernelPackage/fs-afs
+ SUBMENU:=$(FS_MENU)
+ TITLE:=Andrew FileSystem client
+ DEPENDS:=+kmod-rxrpc +kmod-dnsresolver +kmod-fs-fscache
+ KCONFIG:=\
+ CONFIG_AFS_FS=m \
+ CONFIG_AFS_DEBUG=n \
+ CONFIG_AFS_FSCACHE=y
+ FILES:=$(LINUX_DIR)/fs/afs/kafs.ko
+ AUTOLOAD:=$(call AutoLoad,30,kafs)
+endef
+
+define KernelPackage/fs-afs/description
+ Kernel module for Andrew FileSystem client support
+endef
+
+$(eval $(call KernelPackage,fs-afs))
+
define KernelPackage/fs-autofs4
SUBMENU:=$(FS_MENU)
TITLE:=AUTOFS4 filesystem support
diff --git a/package/kernel/linux/modules/netsupport.mk
b/package/kernel/linux/modules/netsupport.mk
index 6f61630..fc85e22 100644
--- a/package/kernel/linux/modules/netsupport.mk
+++ b/package/kernel/linux/modules/netsupport.mk
@@ -938,3 +938,32 @@ endef
$(eval $(call KernelPackage,slip))
+define KernelPackage/dnsresolver
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=In-kernel DNS Resolver
+ KCONFIG:= CONFIG_DNS_RESOLVER
+ FILES:=$(LINUX_DIR)/net/dns_resolver/dns_resolver.ko
+ AUTOLOAD:=$(call AutoLoad,30,dns_resolver)
+endef
+
+$(eval $(call KernelPackage,dnsresolver))
+
+define KernelPackage/rxrpc
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=AF_RXRPC support
+ KCONFIG:= \
+ CONFIG_AF_RXRPC \
+ CONFIG_RXKAD=m \
+ CONFIG_AF_RXRPC_DEBUG=n
+ FILES:= \
+ $(LINUX_DIR)/net/rxrpc/af-rxrpc.ko \
+ $(LINUX_DIR)/net/rxrpc/rxkad.ko
+ AUTOLOAD:=$(call AutoLoad,30,rxkad af-rxrpc)
+ DEPENDS:=+kmod-crypto-core +kmod-crypto-manager +kmod-crypto-pcbc
+kmod-crypto-fcrypt
+endef
+
+define KernelPackage/rxrpc/description
+ Kernel support for AF_RXRPC; required for AFS client
+endef
+
+$(eval $(call KernelPackage,rxrpc))
diff --git a/package/kernel/linux/modules/fs.mk
b/package/kernel/linux/modules/fs.mk
index 5faaf37..dc8873b 100644
--- a/package/kernel/linux/modules/fs.mk
+++ b/package/kernel/linux/modules/fs.mk
@@ -85,11 +85,13 @@ define KernelPackage/fs-cifs
KCONFIG:= \
CONFIG_CIFS \
CONFIG_CIFS_DFS_UPCALL=n \
- CONFIG_CIFS_UPCALL=n
+ CONFIG_CIFS_UPCALL=n \
+ CONFIG_CIFS_FSCACHE=y
FILES:=$(LINUX_DIR)/fs/cifs/cifs.ko
AUTOLOAD:=$(call AutoLoad,30,cifs)
$(call AddDepends/nls)
DEPENDS+= \
+ +kmod-fs-fscache \
+kmod-crypto-arc4 \
+kmod-crypto-hmac \
+kmod-crypto-md5 \
@@ -257,11 +259,12 @@ $(eval $(call KernelPackage,fs-msdos))
define KernelPackage/fs-nfs
SUBMENU:=$(FS_MENU)
TITLE:=NFS filesystem support
- DEPENDS:=+kmod-fs-nfs-common
+ DEPENDS:=+kmod-fs-nfs-common +kmod-fs-fscache
KCONFIG:= \
CONFIG_NFS_FS \
CONFIG_NFS_USE_LEGACY_DNS=n \
- CONFIG_NFS_USE_NEW_IDMAPPER=n
+ CONFIG_NFS_USE_NEW_IDMAPPER=n \
+ CONFIG_NFS_FSCACHE=y
ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.6.0)),1)
FILES:= \
$(LINUX_DIR)/fs/nfs/nfs.ko \
Cheers,
--nwf;