Lines Matching refs:switchdev_work
3236 switchdev_work, in mlxsw_sp_switchdev_bridge_vxlan_fdb_event()
3241 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_bridge_vxlan_fdb_event()
3246 fdb_info = &switchdev_work->fdb_info; in mlxsw_sp_switchdev_bridge_vxlan_fdb_event()
3254 switch (switchdev_work->event) { in mlxsw_sp_switchdev_bridge_vxlan_fdb_event()
3284 switchdev_work) in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3287 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3294 if (switchdev_work->event != SWITCHDEV_FDB_ADD_TO_DEVICE && in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3295 switchdev_work->event != SWITCHDEV_FDB_DEL_TO_DEVICE) in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3298 if (switchdev_work->event == SWITCHDEV_FDB_ADD_TO_DEVICE && in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3299 (!switchdev_work->fdb_info.added_by_user || in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3300 switchdev_work->fdb_info.is_local)) in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3318 switchdev_work->fdb_info.vid); in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3326 mlxsw_sp_switchdev_bridge_vxlan_fdb_event(mlxsw_sp, switchdev_work, fid, in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3335 struct mlxsw_sp_switchdev_event_work *switchdev_work = in mlxsw_sp_switchdev_bridge_fdb_event_work() local
3337 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_bridge_fdb_event_work()
3344 mlxsw_sp_switchdev_bridge_nve_fdb_event(switchdev_work); in mlxsw_sp_switchdev_bridge_fdb_event_work()
3352 switch (switchdev_work->event) { in mlxsw_sp_switchdev_bridge_fdb_event_work()
3354 fdb_info = &switchdev_work->fdb_info; in mlxsw_sp_switchdev_bridge_fdb_event_work()
3365 fdb_info = &switchdev_work->fdb_info; in mlxsw_sp_switchdev_bridge_fdb_event_work()
3380 kfree(switchdev_work->fdb_info.addr); in mlxsw_sp_switchdev_bridge_fdb_event_work()
3381 kfree(switchdev_work); in mlxsw_sp_switchdev_bridge_fdb_event_work()
3388 switchdev_work) in mlxsw_sp_switchdev_vxlan_fdb_add()
3392 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_vxlan_fdb_add()
3401 vxlan_fdb_info = &switchdev_work->vxlan_fdb_info; in mlxsw_sp_switchdev_vxlan_fdb_add()
3460 switchdev_work) in mlxsw_sp_switchdev_vxlan_fdb_del()
3464 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_vxlan_fdb_del()
3472 vxlan_fdb_info = &switchdev_work->vxlan_fdb_info; in mlxsw_sp_switchdev_vxlan_fdb_del()
3505 struct mlxsw_sp_switchdev_event_work *switchdev_work = in mlxsw_sp_switchdev_vxlan_fdb_event_work() local
3507 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3524 switch (switchdev_work->event) { in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3526 mlxsw_sp_switchdev_vxlan_fdb_add(mlxsw_sp, switchdev_work); in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3529 mlxsw_sp_switchdev_vxlan_fdb_del(mlxsw_sp, switchdev_work); in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3535 kfree(switchdev_work); in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3541 switchdev_work, in mlxsw_sp_switchdev_vxlan_work_prepare()
3544 struct vxlan_dev *vxlan = netdev_priv(switchdev_work->dev); in mlxsw_sp_switchdev_vxlan_work_prepare()
3576 switchdev_work->vxlan_fdb_info = *vxlan_fdb_info; in mlxsw_sp_switchdev_vxlan_work_prepare()
3586 struct mlxsw_sp_switchdev_event_work *switchdev_work; in mlxsw_sp_switchdev_event() local
3608 switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC); in mlxsw_sp_switchdev_event()
3609 if (!switchdev_work) in mlxsw_sp_switchdev_event()
3612 switchdev_work->dev = dev; in mlxsw_sp_switchdev_event()
3613 switchdev_work->event = event; in mlxsw_sp_switchdev_event()
3623 INIT_WORK(&switchdev_work->work, in mlxsw_sp_switchdev_event()
3625 memcpy(&switchdev_work->fdb_info, ptr, in mlxsw_sp_switchdev_event()
3626 sizeof(switchdev_work->fdb_info)); in mlxsw_sp_switchdev_event()
3627 switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC); in mlxsw_sp_switchdev_event()
3628 if (!switchdev_work->fdb_info.addr) in mlxsw_sp_switchdev_event()
3630 ether_addr_copy((u8 *)switchdev_work->fdb_info.addr, in mlxsw_sp_switchdev_event()
3640 INIT_WORK(&switchdev_work->work, in mlxsw_sp_switchdev_event()
3642 err = mlxsw_sp_switchdev_vxlan_work_prepare(switchdev_work, in mlxsw_sp_switchdev_event()
3649 kfree(switchdev_work); in mlxsw_sp_switchdev_event()
3653 mlxsw_core_schedule_work(&switchdev_work->work); in mlxsw_sp_switchdev_event()
3659 kfree(switchdev_work); in mlxsw_sp_switchdev_event()