Lines Matching refs:switchdev_work
3415 switchdev_work, in mlxsw_sp_switchdev_bridge_vxlan_fdb_event()
3420 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_bridge_vxlan_fdb_event()
3425 fdb_info = &switchdev_work->fdb_info; in mlxsw_sp_switchdev_bridge_vxlan_fdb_event()
3433 switch (switchdev_work->event) { in mlxsw_sp_switchdev_bridge_vxlan_fdb_event()
3463 switchdev_work) in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3466 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3473 if (switchdev_work->event != SWITCHDEV_FDB_ADD_TO_DEVICE && in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3474 switchdev_work->event != SWITCHDEV_FDB_DEL_TO_DEVICE) in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3477 if (switchdev_work->event == SWITCHDEV_FDB_ADD_TO_DEVICE && in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3478 (!switchdev_work->fdb_info.added_by_user || in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3479 switchdev_work->fdb_info.is_local)) in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3497 switchdev_work->fdb_info.vid); in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3505 mlxsw_sp_switchdev_bridge_vxlan_fdb_event(mlxsw_sp, switchdev_work, fid, in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3514 struct mlxsw_sp_switchdev_event_work *switchdev_work = in mlxsw_sp_switchdev_bridge_fdb_event_work() local
3516 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_bridge_fdb_event_work()
3523 mlxsw_sp_switchdev_bridge_nve_fdb_event(switchdev_work); in mlxsw_sp_switchdev_bridge_fdb_event_work()
3531 switch (switchdev_work->event) { in mlxsw_sp_switchdev_bridge_fdb_event_work()
3533 fdb_info = &switchdev_work->fdb_info; in mlxsw_sp_switchdev_bridge_fdb_event_work()
3544 fdb_info = &switchdev_work->fdb_info; in mlxsw_sp_switchdev_bridge_fdb_event_work()
3559 kfree(switchdev_work->fdb_info.addr); in mlxsw_sp_switchdev_bridge_fdb_event_work()
3560 netdev_put(dev, &switchdev_work->dev_tracker); in mlxsw_sp_switchdev_bridge_fdb_event_work()
3561 kfree(switchdev_work); in mlxsw_sp_switchdev_bridge_fdb_event_work()
3567 switchdev_work) in mlxsw_sp_switchdev_vxlan_fdb_add()
3571 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_vxlan_fdb_add()
3579 vxlan_fdb_info = &switchdev_work->vxlan_fdb_info; in mlxsw_sp_switchdev_vxlan_fdb_add()
3639 switchdev_work) in mlxsw_sp_switchdev_vxlan_fdb_del()
3643 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_vxlan_fdb_del()
3650 vxlan_fdb_info = &switchdev_work->vxlan_fdb_info; in mlxsw_sp_switchdev_vxlan_fdb_del()
3684 struct mlxsw_sp_switchdev_event_work *switchdev_work = in mlxsw_sp_switchdev_vxlan_fdb_event_work() local
3686 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3703 switch (switchdev_work->event) { in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3705 mlxsw_sp_switchdev_vxlan_fdb_add(mlxsw_sp, switchdev_work); in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3708 mlxsw_sp_switchdev_vxlan_fdb_del(mlxsw_sp, switchdev_work); in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3714 netdev_put(dev, &switchdev_work->dev_tracker); in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3715 kfree(switchdev_work); in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3720 switchdev_work, in mlxsw_sp_switchdev_vxlan_work_prepare()
3723 struct vxlan_dev *vxlan = netdev_priv(switchdev_work->dev); in mlxsw_sp_switchdev_vxlan_work_prepare()
3755 switchdev_work->vxlan_fdb_info = *vxlan_fdb_info; in mlxsw_sp_switchdev_vxlan_work_prepare()
3765 struct mlxsw_sp_switchdev_event_work *switchdev_work; in mlxsw_sp_switchdev_event() local
3787 switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC); in mlxsw_sp_switchdev_event()
3788 if (!switchdev_work) in mlxsw_sp_switchdev_event()
3791 switchdev_work->dev = dev; in mlxsw_sp_switchdev_event()
3792 switchdev_work->event = event; in mlxsw_sp_switchdev_event()
3802 INIT_WORK(&switchdev_work->work, in mlxsw_sp_switchdev_event()
3804 memcpy(&switchdev_work->fdb_info, ptr, in mlxsw_sp_switchdev_event()
3805 sizeof(switchdev_work->fdb_info)); in mlxsw_sp_switchdev_event()
3806 switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC); in mlxsw_sp_switchdev_event()
3807 if (!switchdev_work->fdb_info.addr) in mlxsw_sp_switchdev_event()
3809 ether_addr_copy((u8 *)switchdev_work->fdb_info.addr, in mlxsw_sp_switchdev_event()
3815 netdev_hold(dev, &switchdev_work->dev_tracker, GFP_ATOMIC); in mlxsw_sp_switchdev_event()
3819 INIT_WORK(&switchdev_work->work, in mlxsw_sp_switchdev_event()
3821 err = mlxsw_sp_switchdev_vxlan_work_prepare(switchdev_work, in mlxsw_sp_switchdev_event()
3825 netdev_hold(dev, &switchdev_work->dev_tracker, GFP_ATOMIC); in mlxsw_sp_switchdev_event()
3828 kfree(switchdev_work); in mlxsw_sp_switchdev_event()
3832 mlxsw_core_schedule_work(&switchdev_work->work); in mlxsw_sp_switchdev_event()
3838 kfree(switchdev_work); in mlxsw_sp_switchdev_event()