mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
net: dsa: add switch notifier
Add a notifier block per DSA switch, registered against a notifier head in the switch fabric they belong to. This infrastructure will allow to propagate fabric-wide events such as port bridging, VLAN configuration, etc. If a DSA switch driver cares about cross-chip configuration, such events can be caught. Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c5d35cb32c
commit
f515f192ab
6 changed files with 77 additions and 0 deletions
|
@ -294,6 +294,10 @@ static int dsa_ds_apply(struct dsa_switch_tree *dst, struct dsa_switch *ds)
|
|||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = dsa_switch_register_notifier(ds);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
if (ds->ops->set_addr) {
|
||||
err = ds->ops->set_addr(ds, dst->master_netdev->dev_addr);
|
||||
if (err < 0)
|
||||
|
@ -364,6 +368,8 @@ static void dsa_ds_unapply(struct dsa_switch_tree *dst, struct dsa_switch *ds)
|
|||
|
||||
if (ds->slave_mii_bus && ds->ops->phy_read)
|
||||
mdiobus_unregister(ds->slave_mii_bus);
|
||||
|
||||
dsa_switch_unregister_notifier(ds);
|
||||
}
|
||||
|
||||
static int dsa_dst_apply(struct dsa_switch_tree *dst)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue