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

From: Leon Romanovsky <[email-masked]>
Date: Mon, 24 Jul 2023 21:11:05 +0300

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 <[email-masked]>
> Signed-off-by: Ilia Lin <[email-masked]>
> ---
>  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