[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6b7dda54-bf07-4784-d675-2db26eec3ddf@blackwall.org>
Date: Tue, 11 Oct 2022 12:07:48 +0300
From: Nikolay Aleksandrov <razor@...ckwall.org>
To: Eyal Birger <eyal.birger@...il.com>, idosch@...sch.org,
davem@...emloft.net, edumazet@...gle.com, kuba@...nel.org,
pabeni@...hat.com, steffen.klassert@...unet.com,
herbert@...dor.apana.org.au, dsahern@...nel.org,
contact@...elbtn.com, pablo@...filter.org,
nicolas.dichtel@...nd.com, daniel@...earbox.net
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH ipsec] xfrm: lwtunnel: squelch kernel warning in case XFRM
encap type is not available
On 11/10/2022 11:01, Eyal Birger wrote:
> Ido reported that a kernel warning [1] can be triggered from
> user space when the kernel is compiled with CONFIG_MODULES=y and
> CONFIG_XFRM=n when adding an xfrm encap type route, e.g:
>
> $ ip route add 198.51.100.0/24 dev dummy1 encap xfrm if_id 1
> Error: lwt encapsulation type not supported.
>
> The reason for the warning is that the LWT infrastructure has an
> autoloading feature which is meant only for encap types that don't
> use a net device, which is not the case in xfrm encap.
>
> Mute this warning for xfrm encap as there's no encap module to autoload
> in this case.
>
> [1]
> WARNING: CPU: 3 PID: 2746262 at net/core/lwtunnel.c:57 lwtunnel_valid_encap_type+0x4f/0x120
> [...]
> Call Trace:
> <TASK>
> rtm_to_fib_config+0x211/0x350
> inet_rtm_newroute+0x3a/0xa0
> rtnetlink_rcv_msg+0x154/0x3c0
> netlink_rcv_skb+0x49/0xf0
> netlink_unicast+0x22f/0x350
> netlink_sendmsg+0x208/0x440
> ____sys_sendmsg+0x21f/0x250
> ___sys_sendmsg+0x83/0xd0
> __sys_sendmsg+0x54/0xa0
> do_syscall_64+0x35/0x80
> entry_SYSCALL_64_after_hwframe+0x63/0xcd
>
> Reported-by: Ido Schimmel <idosch@...sch.org>
> Fixes: 2c2493b9da91 ("xfrm: lwtunnel: add lwtunnel support for xfrm interfaces in collect_md mode")
> Signed-off-by: Eyal Birger <eyal.birger@...il.com>
> ---
> net/core/lwtunnel.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/net/core/lwtunnel.c b/net/core/lwtunnel.c
> index 6fac2f0ef074..711cd3b4347a 100644
> --- a/net/core/lwtunnel.c
> +++ b/net/core/lwtunnel.c
> @@ -48,9 +48,11 @@ static const char *lwtunnel_encap_str(enum lwtunnel_encap_types encap_type)
> return "RPL";
> case LWTUNNEL_ENCAP_IOAM6:
> return "IOAM6";
> + case LWTUNNEL_ENCAP_XFRM:
> + /* module autoload not supported for encap type */
> + return NULL;
> case LWTUNNEL_ENCAP_IP6:
> case LWTUNNEL_ENCAP_IP:
> - case LWTUNNEL_ENCAP_XFRM:
> case LWTUNNEL_ENCAP_NONE:
> case __LWTUNNEL_ENCAP_MAX:
> /* should not have got here */
Reviewed-by: Nikolay Aleksandrov <razor@...ckwall.org>
Powered by blists - more mailing lists