mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-02 20:29:20 +00:00
net: switchdev: Replace port attr set SDO with a notification
Drop switchdev_ops.switchdev_port_attr_set. Drop the uses of this field from all clients, which were migrated to use switchdev notification in the previous patches. Add a new function switchdev_port_attr_notify() that sends the switchdev notifications SWITCHDEV_PORT_ATTR_SET and calls the blocking (process) notifier chain. We have one odd case within net/bridge/br_switchdev.c with the SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS attribute identifier that requires executing from atomic context, we deal with that one specifically. Drop __switchdev_port_attr_set() and update switchdev_port_attr_set() likewise. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Reviewed-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
570b68c8dd
commit
d45224d604
2 changed files with 32 additions and 31 deletions
|
@ -67,12 +67,18 @@ int br_switchdev_set_port_flag(struct net_bridge_port *p,
|
|||
.id = SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS,
|
||||
.u.brport_flags = mask,
|
||||
};
|
||||
struct switchdev_notifier_port_attr_info info = {
|
||||
.attr = &attr,
|
||||
};
|
||||
int err;
|
||||
|
||||
if (mask & ~BR_PORT_FLAGS_HW_OFFLOAD)
|
||||
return 0;
|
||||
|
||||
err = switchdev_port_attr_set(p->dev, &attr);
|
||||
/* We run from atomic context here */
|
||||
err = call_switchdev_notifiers(SWITCHDEV_PORT_ATTR_SET, p->dev,
|
||||
&info.info, NULL);
|
||||
err = notifier_to_errno(err);
|
||||
if (err == -EOPNOTSUPP)
|
||||
return 0;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue