lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <20230424173602.GA27649@unreal> Date: Mon, 24 Apr 2023 20:36:02 +0300 From: Leon Romanovsky <leon@...nel.org> To: Victor Nogueira <victor@...atatu.com> Cc: davem@...emloft.net, edumazet@...gle.com, kuba@...nel.org, pabeni@...hat.com, netdev@...r.kernel.org, jhs@...atatu.com, xiyou.wangcong@...il.com, jiri@...nulli.us, kernel@...atatu.com Subject: Re: [PATCH net v2] net/sched: act_mirred: Add carrier check On Mon, Apr 24, 2023 at 05:08:32PM +0000, Victor Nogueira wrote: > There are cases where the device is adminstratively UP, but operationally > down. For example, we have a physical device (Nvidia ConnectX-6 Dx, 25Gbps) > who's cable was pulled out, here is its ip link output: > > 5: ens2f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000 > link/ether b8:ce:f6:4b:68:35 brd ff:ff:ff:ff:ff:ff > altname enp179s0f1np1 > > As you can see, it's administratively UP but operationally down. > In this case, sending a packet to this port caused a nasty kernel hang (so > nasty that we were unable to capture it). Aborting a transmit based on > operational status (in addition to administrative status) fixes the issue. > > Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") > Please no blank line between tags. > Acked-by: Jamal Hadi Salim <jhs@...atatu.com> > Signed-off-by: Victor Nogueira <victor@...atatu.com> > --- > net/sched/act_mirred.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) It will be great to have changelog to see the changes between versions. Thanks > > diff --git a/net/sched/act_mirred.c b/net/sched/act_mirred.c > index ec43764e92e7..0a711c184c29 100644 > --- a/net/sched/act_mirred.c > +++ b/net/sched/act_mirred.c > @@ -264,7 +264,7 @@ TC_INDIRECT_SCOPE int tcf_mirred_act(struct sk_buff *skb, > goto out; > } > > - if (unlikely(!(dev->flags & IFF_UP))) { > + if (unlikely(!(dev->flags & IFF_UP)) || !netif_carrier_ok(dev)) { > net_notice_ratelimited("tc mirred to Houston: device %s is down\n", > dev->name); > goto out; > -- > 2.25.1 >
Powered by blists - more mailing lists