aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/dsa
diff options
context:
space:
mode:
authorVladimir Oltean <vladimir.oltean@nxp.com>2021-01-06 11:51:34 +0200
committerJakub Kicinski <kuba@kernel.org>2021-01-07 15:34:46 -0800
commit5fb4a451a87d8ed3363d28b63a3295399373d6c4 (patch)
treeffa5214a57eb23bc3625e3196504d2edd9743cce /include/linux/dsa
parentnet: dsa: move switchdev event implementation under the same switch/case statement (diff)
downloadwireguard-linux-5fb4a451a87d8ed3363d28b63a3295399373d6c4.tar.xz
wireguard-linux-5fb4a451a87d8ed3363d28b63a3295399373d6c4.zip
net: dsa: exit early in dsa_slave_switchdev_event if we can't program the FDB
Right now, the following would happen for a switch driver that does not implement .port_fdb_add or .port_fdb_del. dsa_slave_switchdev_event returns NOTIFY_OK and schedules: -> dsa_slave_switchdev_event_work -> dsa_port_fdb_add -> dsa_port_notify(DSA_NOTIFIER_FDB_ADD) -> dsa_switch_fdb_add -> if (!ds->ops->port_fdb_add) return -EOPNOTSUPP; -> an error is printed with dev_dbg, and dsa_fdb_offload_notify(switchdev_work) is not called. We can avoid scheduling the worker for nothing and say NOTIFY_DONE. Because we don't call dsa_fdb_offload_notify, the static FDB entry will remain just in the software bridge. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/linux/dsa')
0 files changed, 0 insertions, 0 deletions