mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-08 00:29:36 -04:00
staging: fsl-dpaa2/ethsw: notify switchdev of offloaded entry
Notify switchdev in case the FDB entry was successfully offloaded. This will help users to make the distinction between entries known to the HW switch and those that are held only on the software bridge. Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Link: https://lore.kernel.org/r/1564416712-16946-3-git-send-email-ioana.ciornei@nxp.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
e2724c77ca
commit
b380a4e6e5
@@ -1039,6 +1039,7 @@ static void ethsw_switchdev_event_work(struct work_struct *work)
|
||||
container_of(work, struct ethsw_switchdev_event_work, work);
|
||||
struct net_device *dev = switchdev_work->dev;
|
||||
struct switchdev_notifier_fdb_info *fdb_info;
|
||||
int err;
|
||||
|
||||
rtnl_lock();
|
||||
fdb_info = &switchdev_work->fdb_info;
|
||||
@@ -1046,9 +1047,16 @@ static void ethsw_switchdev_event_work(struct work_struct *work)
|
||||
switch (switchdev_work->event) {
|
||||
case SWITCHDEV_FDB_ADD_TO_DEVICE:
|
||||
if (is_unicast_ether_addr(fdb_info->addr))
|
||||
ethsw_port_fdb_add_uc(netdev_priv(dev), fdb_info->addr);
|
||||
err = ethsw_port_fdb_add_uc(netdev_priv(dev),
|
||||
fdb_info->addr);
|
||||
else
|
||||
ethsw_port_fdb_add_mc(netdev_priv(dev), fdb_info->addr);
|
||||
err = ethsw_port_fdb_add_mc(netdev_priv(dev),
|
||||
fdb_info->addr);
|
||||
if (err)
|
||||
break;
|
||||
fdb_info->offloaded = true;
|
||||
call_switchdev_notifiers(SWITCHDEV_FDB_OFFLOADED, dev,
|
||||
&fdb_info->info, NULL);
|
||||
break;
|
||||
case SWITCHDEV_FDB_DEL_TO_DEVICE:
|
||||
if (is_unicast_ether_addr(fdb_info->addr))
|
||||
|
||||
Reference in New Issue
Block a user