RE: [EXTERNAL] [PATCH net-next v2 1/3] net: prestera: ignore duplicate RIF destruction events
Elad Nachman <[email protected]> Thu, 30 Jul 2026 17:49:36 +0000
| Newsgroups | org.kernel.vger.linux-wireless,org.kernel.vger.linux-kernel,org.kernel.vger.netdev |
|---|---|
| Message-ID | <CH0PR18MB4244230A2BE15899162DBBE2DBC92@CH0PR18MB4244.namprd18.prod.outlook.com> |
> > > From: Yuyang Huang <[email protected]> > Sent: Saturday, July 11, 2026 3:54 AM > To: Yuyang Huang <[email protected]> > Cc: David S. Miller <[email protected]>; Andrew Lunn <[email protected]>; David Ahern <[email protected]>; Elad Nachman <[email protected]>; Eric Dumazet <[email protected]>; Ido Schimmel <[email protected]>; Jakub Kicinski <[email protected]>; Johannes Berg <[email protected]>; Paolo Abeni <[email protected]>; Simon Horman <[email protected]>; [email protected]; [email protected]; [email protected]; Kuniyuki Iwashima <[email protected]> > Subject: [EXTERNAL] [PATCH net-next v2 1/3] net: prestera: ignore duplicate RIF destruction events > > During address teardown, the inetaddr notifier may be called multiple > times for the same interface. Ignore NETDEV_DOWN events if the RIF has > already been destroyed, rather than returning -EEXIST, which aborts the > notifier chain. > > Cc: Ido Schimmel <mailto:[email protected]> > Cc: Kuniyuki Iwashima <mailto:[email protected]> > Signed-off-by: Yuyang Huang <mailto:[email protected]> > --- > drivers/net/ethernet/marvell/prestera/prestera_router.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/ethernet/marvell/prestera/prestera_router.c b/drivers/net/ethernet/marvell/prestera/prestera_router.c > index b036b173a308..0c4f462baa6e 100644 > --- a/drivers/net/ethernet/marvell/prestera/prestera_router.c > +++ b/drivers/net/ethernet/marvell/prestera/prestera_router.c > @@ -1302,10 +1302,8 @@ static int __prestera_inetaddr_port_event(struct net_device *port_dev, > dev_hold(port_dev); > break; > case NETDEV_DOWN: > - if (!re) { > - NL_SET_ERR_MSG_MOD(extack, "Can't find RIF"); > - return -EEXIST; > - } > + if (!re) > + return 0; > prestera_rif_entry_destroy(port->sw, re); > dev_put(port_dev); > break; > -- > 2.55.0.795.g602f6c329a-goog > Acked-by: Elad Nachman <[email protected]>