[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200912.183437.1205152743307947529.davem@davemloft.net>
Date: Sat, 12 Sep 2020 18:34:37 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: geert@...ux-m68k.org
Cc: hkallweit1@...il.com, f.fainelli@...il.com, andrew@...n.ch,
kuba@...nel.org, gaku.inami.xh@...esas.com,
yoshihiro.shimoda.uh@...esas.com, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] Revert "net: linkwatch: add check for netdevice being
present to linkwatch_do_dev"
From: Geert Uytterhoeven <geert@...ux-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.
Powered by blists - more mailing lists