Re: [PATCH] xfrm: kconfig: Fix XFRM_OFFLOAD dependency on XFRM

From: Leon Romanovsky
Date: Mon Jul 24 2023 - 14:11:14 EST


On Mon, Jul 24, 2023 at 12:00:44PM +0300, Ilia Lin wrote:
> If XFRM_OFFLOAD is configured, but XFRM is not

How did you do it?

>, it will cause
> compilation error on include xfrm.h:
> C 05:56:39 In file included from /src/linux/kernel_platform/msm-kernel/net/core/sock.c:127:
> C 05:56:39 /src/linux/kernel_platform/msm-kernel/include/net/xfrm.h:1932:30: error: no member named 'xfrm' in 'struct dst_entry'
> C 05:56:39 struct xfrm_state *x = dst->xfrm;
> C 05:56:39 ~~~ ^
>
> Making the XFRM_OFFLOAD select the XFRM.
>
> Fixes: 48e01e001da31 ("ixgbe/ixgbevf: fix XFRM_ALGO dependency")
> Reported-by: Ilia Lin <ilia.lin@xxxxxxxxxx>
> Signed-off-by: Ilia Lin <ilia.lin@xxxxxxxxxx>
> ---
> net/xfrm/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/net/xfrm/Kconfig b/net/xfrm/Kconfig
> index 3adf31a83a79a..3fc2c1bcb5bbe 100644
> --- a/net/xfrm/Kconfig
> +++ b/net/xfrm/Kconfig
> @@ -10,6 +10,7 @@ config XFRM
>
> config XFRM_OFFLOAD
> bool
> + select XFRM

struct dst_entry depends on CONFIG_XFRM and not on CONFIG_XFRM_OFFLOAD,
so it is unclear to me why do you need to add new "select XFRM" line.

26 struct dst_entry {
27 struct net_device *dev;
28 struct dst_ops *ops;
29 unsigned long _metrics;
30 unsigned long expires;
31 #ifdef CONFIG_XFRM
32 struct xfrm_state *xfrm;
33 #else
34 void *__pad1;
35 #endif
36 int

Thanks