Lines Matching refs:switchdev_work
301 struct sparx5_switchdev_event_work *switchdev_work = in sparx5_switchdev_bridge_fdb_event_work() local
303 struct net_device *dev = switchdev_work->dev; in sparx5_switchdev_bridge_fdb_event_work()
313 sparx5 = switchdev_work->sparx5; in sparx5_switchdev_bridge_fdb_event_work()
316 sparx5 = switchdev_work->sparx5; in sparx5_switchdev_bridge_fdb_event_work()
320 fdb_info = &switchdev_work->fdb_info; in sparx5_switchdev_bridge_fdb_event_work()
330 switch (switchdev_work->event) { in sparx5_switchdev_bridge_fdb_event_work()
345 kfree(switchdev_work->fdb_info.addr); in sparx5_switchdev_bridge_fdb_event_work()
346 kfree(switchdev_work); in sparx5_switchdev_bridge_fdb_event_work()
359 struct sparx5_switchdev_event_work *switchdev_work; in sparx5_switchdev_event() local
376 switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC); in sparx5_switchdev_event()
377 if (!switchdev_work) in sparx5_switchdev_event()
380 switchdev_work->dev = dev; in sparx5_switchdev_event()
381 switchdev_work->event = event; in sparx5_switchdev_event()
382 switchdev_work->sparx5 = spx5; in sparx5_switchdev_event()
387 INIT_WORK(&switchdev_work->work, in sparx5_switchdev_event()
389 memcpy(&switchdev_work->fdb_info, ptr, in sparx5_switchdev_event()
390 sizeof(switchdev_work->fdb_info)); in sparx5_switchdev_event()
391 switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC); in sparx5_switchdev_event()
392 if (!switchdev_work->fdb_info.addr) in sparx5_switchdev_event()
395 ether_addr_copy((u8 *)switchdev_work->fdb_info.addr, in sparx5_switchdev_event()
399 sparx5_schedule_work(&switchdev_work->work); in sparx5_switchdev_event()
405 kfree(switchdev_work); in sparx5_switchdev_event()