Messages in this thread | | | From | Geert Uytterhoeven <> | Date | Mon, 14 Sep 2020 09:40:12 +0200 | Subject | Re: [PATCH] Revert "net: linkwatch: add check for netdevice being present to linkwatch_do_dev" |
| |
Hi David,
CC bridge
On Sun, Sep 13, 2020 at 3:34 AM David Miller <davem@davemloft.net> wrote: > From: Geert Uytterhoeven <geert@linux-m68k.org> > Date: Sat, 12 Sep 2020 14:33:59 +0200 > > > "dev" is not the bridge device, but the physical Ethernet interface, which > > may already be suspended during s2ram. > > Hmmm, ok. > > Looking more deeply NETDEV_CHANGE causes br_port_carrier_check() to run which > exits early if netif_running() is false, which is going to be true if > netif_device_present() is false: > > *notified = false; > if (!netif_running(br->dev)) > return; > > The only other work the bridge notifier does is: > > if (event != NETDEV_UNREGISTER) > br_vlan_port_event(p, event); > > and: > > /* Events that may cause spanning tree to refresh */ > if (!notified && (event == NETDEV_CHANGEADDR || event == NETDEV_UP || > event == NETDEV_CHANGE || event == NETDEV_DOWN)) > br_ifinfo_notify(RTM_NEWLINK, NULL, p); > > So some vlan stuff, and emitting a netlink message to any available > listeners. > > Should we really do all of this for a device which is not even > present? > > This whole situation seems completely illogical. The device is > useless, it logically has no link or other state that can be managed > or used, while it is not present. > > So all of these bridge operations should only happen when the device > transitions back to present again.
Thanks for your analysis! I'd like to defer this to the bridge people (CC).
Gr{oetje,eeting}s,
Geert
-- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
| |