mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 12:52:29 -04:00
dpaa2-switch: create a separate dpaa2_switch_port_fdb_event() function
Create a separate dpaa2_switch_port_fdb_event() function that will only handle the FDB related events. With this change, the dpaa2_switch_port_event() notifier handler can be written in a way that it's easier to follow. Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Link: https://patch.msgid.link/20260629112309.154328-5-ioana.ciornei@nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
committed by
Paolo Abeni
parent
900c915030
commit
da7ec6b81b
@@ -2337,21 +2337,18 @@ static void dpaa2_switch_event_work(struct work_struct *work)
|
||||
dev_put(dev);
|
||||
}
|
||||
|
||||
/* Called under rcu_read_lock() */
|
||||
static int dpaa2_switch_port_event(struct notifier_block *nb,
|
||||
unsigned long event, void *ptr)
|
||||
static int dpaa2_switch_port_fdb_event(struct notifier_block *nb,
|
||||
unsigned long event, void *ptr)
|
||||
{
|
||||
struct net_device *dev = switchdev_notifier_info_to_dev(ptr);
|
||||
struct ethsw_port_priv *port_priv = netdev_priv(dev);
|
||||
struct ethsw_switchdev_event_work *switchdev_work;
|
||||
struct switchdev_notifier_fdb_info *fdb_info = ptr;
|
||||
struct ethsw_core *ethsw = port_priv->ethsw_data;
|
||||
|
||||
if (event == SWITCHDEV_PORT_ATTR_SET)
|
||||
return dpaa2_switch_port_attr_set_event(dev, ptr);
|
||||
struct ethsw_core *ethsw;
|
||||
|
||||
if (!dpaa2_switch_port_dev_check(dev))
|
||||
return NOTIFY_DONE;
|
||||
ethsw = port_priv->ethsw_data;
|
||||
|
||||
switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC);
|
||||
if (!switchdev_work)
|
||||
@@ -2390,6 +2387,23 @@ static int dpaa2_switch_port_event(struct notifier_block *nb,
|
||||
return NOTIFY_BAD;
|
||||
}
|
||||
|
||||
/* Called under rcu_read_lock() */
|
||||
static int dpaa2_switch_port_event(struct notifier_block *nb,
|
||||
unsigned long event, void *ptr)
|
||||
{
|
||||
struct net_device *dev = switchdev_notifier_info_to_dev(ptr);
|
||||
|
||||
switch (event) {
|
||||
case SWITCHDEV_PORT_ATTR_SET:
|
||||
return dpaa2_switch_port_attr_set_event(dev, ptr);
|
||||
case SWITCHDEV_FDB_ADD_TO_DEVICE:
|
||||
case SWITCHDEV_FDB_DEL_TO_DEVICE:
|
||||
return dpaa2_switch_port_fdb_event(nb, event, ptr);
|
||||
default:
|
||||
return NOTIFY_DONE;
|
||||
}
|
||||
}
|
||||
|
||||
static int dpaa2_switch_port_obj_event(unsigned long event,
|
||||
struct net_device *netdev,
|
||||
struct switchdev_notifier_port_obj_info *port_obj_info)
|
||||
|
||||
Reference in New Issue
Block a user