Эх сурвалжийг харах

xfrm: make xfrm_algo.c a module

By making this a standalone config option (auto-selected as needed),
selecting CRYPTO from here rather than from XFRM (which is boolean)
allows the core crypto code to become a module again even when XFRM=y.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Jan Beulich 13 жил өмнө
parent
commit
7e15252498

+ 2 - 2
net/ipv4/Kconfig

@@ -312,7 +312,7 @@ config SYN_COOKIES
 
 
 config INET_AH
 config INET_AH
 	tristate "IP: AH transformation"
 	tristate "IP: AH transformation"
-	select XFRM
+	select XFRM_ALGO
 	select CRYPTO
 	select CRYPTO
 	select CRYPTO_HMAC
 	select CRYPTO_HMAC
 	select CRYPTO_MD5
 	select CRYPTO_MD5
@@ -324,7 +324,7 @@ config INET_AH
 
 
 config INET_ESP
 config INET_ESP
 	tristate "IP: ESP transformation"
 	tristate "IP: ESP transformation"
-	select XFRM
+	select XFRM_ALGO
 	select CRYPTO
 	select CRYPTO
 	select CRYPTO_AUTHENC
 	select CRYPTO_AUTHENC
 	select CRYPTO_HMAC
 	select CRYPTO_HMAC

+ 2 - 2
net/ipv6/Kconfig

@@ -69,7 +69,7 @@ config IPV6_OPTIMISTIC_DAD
 
 
 config INET6_AH
 config INET6_AH
 	tristate "IPv6: AH transformation"
 	tristate "IPv6: AH transformation"
-	select XFRM
+	select XFRM_ALGO
 	select CRYPTO
 	select CRYPTO
 	select CRYPTO_HMAC
 	select CRYPTO_HMAC
 	select CRYPTO_MD5
 	select CRYPTO_MD5
@@ -81,7 +81,7 @@ config INET6_AH
 
 
 config INET6_ESP
 config INET6_ESP
 	tristate "IPv6: ESP transformation"
 	tristate "IPv6: ESP transformation"
-	select XFRM
+	select XFRM_ALGO
 	select CRYPTO
 	select CRYPTO
 	select CRYPTO_AUTHENC
 	select CRYPTO_AUTHENC
 	select CRYPTO_HMAC
 	select CRYPTO_HMAC

+ 9 - 4
net/xfrm/Kconfig

@@ -3,12 +3,17 @@
 #
 #
 config XFRM
 config XFRM
        bool
        bool
-       select CRYPTO
        depends on NET
        depends on NET
 
 
+config XFRM_ALGO
+	tristate
+	select XFRM
+	select CRYPTO
+
 config XFRM_USER
 config XFRM_USER
 	tristate "Transformation user configuration interface"
 	tristate "Transformation user configuration interface"
-	depends on INET && XFRM
+	depends on INET
+	select XFRM_ALGO
 	---help---
 	---help---
 	  Support for Transformation(XFRM) user configuration interface
 	  Support for Transformation(XFRM) user configuration interface
 	  like IPsec used by native Linux tools.
 	  like IPsec used by native Linux tools.
@@ -48,13 +53,13 @@ config XFRM_STATISTICS
 
 
 config XFRM_IPCOMP
 config XFRM_IPCOMP
 	tristate
 	tristate
-	select XFRM
+	select XFRM_ALGO
 	select CRYPTO
 	select CRYPTO
 	select CRYPTO_DEFLATE
 	select CRYPTO_DEFLATE
 
 
 config NET_KEY
 config NET_KEY
 	tristate "PF_KEY sockets"
 	tristate "PF_KEY sockets"
-	select XFRM
+	select XFRM_ALGO
 	---help---
 	---help---
 	  PF_KEYv2 socket family, compatible to KAME ones.
 	  PF_KEYv2 socket family, compatible to KAME ones.
 	  They are required if you are going to use IPsec tools ported
 	  They are required if you are going to use IPsec tools ported

+ 2 - 1
net/xfrm/Makefile

@@ -3,8 +3,9 @@
 #
 #
 
 
 obj-$(CONFIG_XFRM) := xfrm_policy.o xfrm_state.o xfrm_hash.o \
 obj-$(CONFIG_XFRM) := xfrm_policy.o xfrm_state.o xfrm_hash.o \
-		      xfrm_input.o xfrm_output.o xfrm_algo.o \
+		      xfrm_input.o xfrm_output.o \
 		      xfrm_sysctl.o xfrm_replay.o
 		      xfrm_sysctl.o xfrm_replay.o
 obj-$(CONFIG_XFRM_STATISTICS) += xfrm_proc.o
 obj-$(CONFIG_XFRM_STATISTICS) += xfrm_proc.o
+obj-$(CONFIG_XFRM_ALGO) += xfrm_algo.o
 obj-$(CONFIG_XFRM_USER) += xfrm_user.o
 obj-$(CONFIG_XFRM_USER) += xfrm_user.o
 obj-$(CONFIG_XFRM_IPCOMP) += xfrm_ipcomp.o
 obj-$(CONFIG_XFRM_IPCOMP) += xfrm_ipcomp.o

+ 2 - 0
net/xfrm/xfrm_algo.c

@@ -752,3 +752,5 @@ void *pskb_put(struct sk_buff *skb, struct sk_buff *tail, int len)
 }
 }
 EXPORT_SYMBOL_GPL(pskb_put);
 EXPORT_SYMBOL_GPL(pskb_put);
 #endif
 #endif
+
+MODULE_LICENSE("GPL");