Lines Matching refs:switchdev_work
3389 switchdev_work, in mlxsw_sp_switchdev_bridge_vxlan_fdb_event()
3394 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_bridge_vxlan_fdb_event()
3399 fdb_info = &switchdev_work->fdb_info; in mlxsw_sp_switchdev_bridge_vxlan_fdb_event()
3407 switch (switchdev_work->event) { in mlxsw_sp_switchdev_bridge_vxlan_fdb_event()
3437 switchdev_work) in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3440 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3447 if (switchdev_work->event != SWITCHDEV_FDB_ADD_TO_DEVICE && in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3448 switchdev_work->event != SWITCHDEV_FDB_DEL_TO_DEVICE) in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3451 if (switchdev_work->event == SWITCHDEV_FDB_ADD_TO_DEVICE && in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3452 (!switchdev_work->fdb_info.added_by_user || in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3453 switchdev_work->fdb_info.is_local)) in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3471 switchdev_work->fdb_info.vid); in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3479 mlxsw_sp_switchdev_bridge_vxlan_fdb_event(mlxsw_sp, switchdev_work, fid, in mlxsw_sp_switchdev_bridge_nve_fdb_event()
3488 struct mlxsw_sp_switchdev_event_work *switchdev_work = in mlxsw_sp_switchdev_bridge_fdb_event_work() local
3490 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_bridge_fdb_event_work()
3497 mlxsw_sp_switchdev_bridge_nve_fdb_event(switchdev_work); in mlxsw_sp_switchdev_bridge_fdb_event_work()
3505 switch (switchdev_work->event) { in mlxsw_sp_switchdev_bridge_fdb_event_work()
3507 fdb_info = &switchdev_work->fdb_info; in mlxsw_sp_switchdev_bridge_fdb_event_work()
3518 fdb_info = &switchdev_work->fdb_info; in mlxsw_sp_switchdev_bridge_fdb_event_work()
3533 kfree(switchdev_work->fdb_info.addr); in mlxsw_sp_switchdev_bridge_fdb_event_work()
3534 netdev_put(dev, &switchdev_work->dev_tracker); in mlxsw_sp_switchdev_bridge_fdb_event_work()
3535 kfree(switchdev_work); in mlxsw_sp_switchdev_bridge_fdb_event_work()
3541 switchdev_work) in mlxsw_sp_switchdev_vxlan_fdb_add()
3545 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_vxlan_fdb_add()
3553 vxlan_fdb_info = &switchdev_work->vxlan_fdb_info; in mlxsw_sp_switchdev_vxlan_fdb_add()
3613 switchdev_work) in mlxsw_sp_switchdev_vxlan_fdb_del()
3617 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_vxlan_fdb_del()
3624 vxlan_fdb_info = &switchdev_work->vxlan_fdb_info; in mlxsw_sp_switchdev_vxlan_fdb_del()
3658 struct mlxsw_sp_switchdev_event_work *switchdev_work = in mlxsw_sp_switchdev_vxlan_fdb_event_work() local
3660 struct net_device *dev = switchdev_work->dev; in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3677 switch (switchdev_work->event) { in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3679 mlxsw_sp_switchdev_vxlan_fdb_add(mlxsw_sp, switchdev_work); in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3682 mlxsw_sp_switchdev_vxlan_fdb_del(mlxsw_sp, switchdev_work); in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3688 netdev_put(dev, &switchdev_work->dev_tracker); in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3689 kfree(switchdev_work); in mlxsw_sp_switchdev_vxlan_fdb_event_work()
3694 switchdev_work, in mlxsw_sp_switchdev_vxlan_work_prepare()
3697 struct vxlan_dev *vxlan = netdev_priv(switchdev_work->dev); in mlxsw_sp_switchdev_vxlan_work_prepare()
3729 switchdev_work->vxlan_fdb_info = *vxlan_fdb_info; in mlxsw_sp_switchdev_vxlan_work_prepare()
3739 struct mlxsw_sp_switchdev_event_work *switchdev_work; in mlxsw_sp_switchdev_event() local
3761 switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC); in mlxsw_sp_switchdev_event()
3762 if (!switchdev_work) in mlxsw_sp_switchdev_event()
3765 switchdev_work->dev = dev; in mlxsw_sp_switchdev_event()
3766 switchdev_work->event = event; in mlxsw_sp_switchdev_event()
3776 INIT_WORK(&switchdev_work->work, in mlxsw_sp_switchdev_event()
3778 memcpy(&switchdev_work->fdb_info, ptr, in mlxsw_sp_switchdev_event()
3779 sizeof(switchdev_work->fdb_info)); in mlxsw_sp_switchdev_event()
3780 switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC); in mlxsw_sp_switchdev_event()
3781 if (!switchdev_work->fdb_info.addr) in mlxsw_sp_switchdev_event()
3783 ether_addr_copy((u8 *)switchdev_work->fdb_info.addr, in mlxsw_sp_switchdev_event()
3789 netdev_hold(dev, &switchdev_work->dev_tracker, GFP_ATOMIC); in mlxsw_sp_switchdev_event()
3793 INIT_WORK(&switchdev_work->work, in mlxsw_sp_switchdev_event()
3795 err = mlxsw_sp_switchdev_vxlan_work_prepare(switchdev_work, in mlxsw_sp_switchdev_event()
3799 netdev_hold(dev, &switchdev_work->dev_tracker, GFP_ATOMIC); in mlxsw_sp_switchdev_event()
3802 kfree(switchdev_work); in mlxsw_sp_switchdev_event()
3806 mlxsw_core_schedule_work(&switchdev_work->work); in mlxsw_sp_switchdev_event()
3812 kfree(switchdev_work); in mlxsw_sp_switchdev_event()