Lines Matching refs:switchdev_work
3276 switchdev_work, in mlxsw_sp_switchdev_bridge_vxlan_fdb_event()
3281 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_bridge_vxlan_fdb_event()
3286 fdb_info = &switchdev_work->fdb_info; in mlxsw_sp_switchdev_bridge_vxlan_fdb_event()
3294 switch (switchdev_work->event) { in mlxsw_sp_switchdev_bridge_vxlan_fdb_event()
3324 switchdev_work) in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3327 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3334 if (switchdev_work->event != SWITCHDEV_FDB_ADD_TO_DEVICE && in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3335 switchdev_work->event != SWITCHDEV_FDB_DEL_TO_DEVICE) in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3338 if (switchdev_work->event == SWITCHDEV_FDB_ADD_TO_DEVICE && in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3339 (!switchdev_work->fdb_info.added_by_user || in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3340 switchdev_work->fdb_info.is_local)) in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3358 switchdev_work->fdb_info.vid); in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3366 mlxsw_sp_switchdev_bridge_vxlan_fdb_event(mlxsw_sp, switchdev_work, fid, in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3375 struct mlxsw_sp_switchdev_event_work *switchdev_work = in mlxsw_sp_switchdev_bridge_fdb_event_work() local
3377 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_bridge_fdb_event_work()
3384 mlxsw_sp_switchdev_bridge_nve_fdb_event(switchdev_work); in mlxsw_sp_switchdev_bridge_fdb_event_work()
3392 switch (switchdev_work->event) { in mlxsw_sp_switchdev_bridge_fdb_event_work()
3394 fdb_info = &switchdev_work->fdb_info; in mlxsw_sp_switchdev_bridge_fdb_event_work()
3405 fdb_info = &switchdev_work->fdb_info; in mlxsw_sp_switchdev_bridge_fdb_event_work()
3420 kfree(switchdev_work->fdb_info.addr); in mlxsw_sp_switchdev_bridge_fdb_event_work()
3421 kfree(switchdev_work); in mlxsw_sp_switchdev_bridge_fdb_event_work()
3428 switchdev_work) in mlxsw_sp_switchdev_vxlan_fdb_add()
3432 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_vxlan_fdb_add()
3441 vxlan_fdb_info = &switchdev_work->vxlan_fdb_info; in mlxsw_sp_switchdev_vxlan_fdb_add()
3501 switchdev_work) in mlxsw_sp_switchdev_vxlan_fdb_del()
3505 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_vxlan_fdb_del()
3513 vxlan_fdb_info = &switchdev_work->vxlan_fdb_info; in mlxsw_sp_switchdev_vxlan_fdb_del()
3547 struct mlxsw_sp_switchdev_event_work *switchdev_work = in mlxsw_sp_switchdev_vxlan_fdb_event_work() local
3549 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3566 switch (switchdev_work->event) { in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3568 mlxsw_sp_switchdev_vxlan_fdb_add(mlxsw_sp, switchdev_work); in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3571 mlxsw_sp_switchdev_vxlan_fdb_del(mlxsw_sp, switchdev_work); in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3577 kfree(switchdev_work); in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3583 switchdev_work, in mlxsw_sp_switchdev_vxlan_work_prepare()
3586 struct vxlan_dev *vxlan = netdev_priv(switchdev_work->dev); in mlxsw_sp_switchdev_vxlan_work_prepare()
3618 switchdev_work->vxlan_fdb_info = *vxlan_fdb_info; in mlxsw_sp_switchdev_vxlan_work_prepare()
3628 struct mlxsw_sp_switchdev_event_work *switchdev_work; in mlxsw_sp_switchdev_event() local
3650 switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC); in mlxsw_sp_switchdev_event()
3651 if (!switchdev_work) in mlxsw_sp_switchdev_event()
3654 switchdev_work->dev = dev; in mlxsw_sp_switchdev_event()
3655 switchdev_work->event = event; in mlxsw_sp_switchdev_event()
3665 INIT_WORK(&switchdev_work->work, in mlxsw_sp_switchdev_event()
3667 memcpy(&switchdev_work->fdb_info, ptr, in mlxsw_sp_switchdev_event()
3668 sizeof(switchdev_work->fdb_info)); in mlxsw_sp_switchdev_event()
3669 switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC); in mlxsw_sp_switchdev_event()
3670 if (!switchdev_work->fdb_info.addr) in mlxsw_sp_switchdev_event()
3672 ether_addr_copy((u8 *)switchdev_work->fdb_info.addr, in mlxsw_sp_switchdev_event()
3682 INIT_WORK(&switchdev_work->work, in mlxsw_sp_switchdev_event()
3684 err = mlxsw_sp_switchdev_vxlan_work_prepare(switchdev_work, in mlxsw_sp_switchdev_event()
3691 kfree(switchdev_work); in mlxsw_sp_switchdev_event()
3695 mlxsw_core_schedule_work(&switchdev_work->work); in mlxsw_sp_switchdev_event()
3701 kfree(switchdev_work); in mlxsw_sp_switchdev_event()