Re: [syzbot ci] Re: net: move netdev_compute_master_upper_features to ndo_set_features
Paolo Abeni <[email protected]>
| Newsgroups | gmane.linux.network.bridge,gmane.linux.kernel,gmane.linux.network |
|---|---|
| Message-ID | <[email protected]> |
On 3/12/26 4:58 PM, Sabrina Dubroca wrote: > 2026-03-12, 14:34:44 +0000, Hangbin Liu wrote: >> On Thu, Mar 12, 2026 at 12:13:52PM +0100, Sabrina Dubroca wrote: >>> Proper fix (so that the notification we're sending during >>> upper_dev_link has full linkinfo) would be to move >>> netdev_upper_dev_link() to after macsec_changelink_common() and fix up >>> the error handling. I don't see anything in macsec_add_dev or >>> macsec_changelink_common that needs the device to be linked. But >> >> If we move the netdev_upper_dev_link() after macsec_changelink_common(), >> we will not goto nla_put_failure via default, right? > > Yes. > >>> anyway it doesn't make sense for macsec_fill_info to return -EMSGSIZE >>> on invalid data, so the "bandaid" should be included as well. >>> >>> Should this be part of this series (either just the "bandaid" or the >>> "proper fix"+bandaid), since we never saw a problem before? >> >> Since macsec need the "bandaid" fix either way. How about you post the >> "bandaid" fix to net. And I include the "proper fix" in this series for >> net-next? > > But I don't think it's needed in net. Am I missing a codepath (before > your series) where macsec_fill_info could be called for the new device > before macsec_newlink returns? If not, it doesn't really qualify as a > fix, that's why I was asking Paolo. FWIW, I don't see a codepath calling into rtmsg_ifinfo_build_skb() before device initialization, so I would be fine targeting net-next with the EMSGSIZE-related change. Side note, it looks like that the WARN() in the rnnetlink code here helped identifying a real problem and correctly returning 0 when the key_len is not yet initialized will silence it forever, what about preserving a warning for this kind of race? something alike: --- diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c index f6cad0746a02..82974d4fa3f6 100644 --- a/drivers/net/macsec.c +++ b/drivers/net/macsec.c @@ -4337,7 +4337,8 @@ static int macsec_fill_info(struct sk_buff *skb, csid = secy->xpn ? MACSEC_CIPHER_ID_GCM_AES_XPN_256 : MACSEC_CIPHER_ID_GCM_AES_256; break; default: - goto nla_put_failure; + WARN_ON_ONCE(1); + return 0; }