Lines Matching refs:switchdev_work
368 struct am65_cpsw_switchdev_event_work *switchdev_work = in am65_cpsw_switchdev_event_work() local
370 struct am65_cpsw_port *port = switchdev_work->port; in am65_cpsw_switchdev_event_work()
376 switch (switchdev_work->event) { in am65_cpsw_switchdev_event_work()
378 fdb = &switchdev_work->fdb_info; in am65_cpsw_switchdev_event_work()
394 fdb = &switchdev_work->fdb_info; in am65_cpsw_switchdev_event_work()
413 kfree(switchdev_work->fdb_info.addr); in am65_cpsw_switchdev_event_work()
414 kfree(switchdev_work); in am65_cpsw_switchdev_event_work()
423 struct am65_cpsw_switchdev_event_work *switchdev_work; in am65_cpsw_switchdev_event() local
438 switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC); in am65_cpsw_switchdev_event()
439 if (WARN_ON(!switchdev_work)) in am65_cpsw_switchdev_event()
442 INIT_WORK(&switchdev_work->work, am65_cpsw_switchdev_event_work); in am65_cpsw_switchdev_event()
443 switchdev_work->port = port; in am65_cpsw_switchdev_event()
444 switchdev_work->event = event; in am65_cpsw_switchdev_event()
449 memcpy(&switchdev_work->fdb_info, ptr, in am65_cpsw_switchdev_event()
450 sizeof(switchdev_work->fdb_info)); in am65_cpsw_switchdev_event()
451 switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC); in am65_cpsw_switchdev_event()
452 if (!switchdev_work->fdb_info.addr) in am65_cpsw_switchdev_event()
454 ether_addr_copy((u8 *)switchdev_work->fdb_info.addr, in am65_cpsw_switchdev_event()
459 kfree(switchdev_work); in am65_cpsw_switchdev_event()
463 queue_work(system_long_wq, &switchdev_work->work); in am65_cpsw_switchdev_event()
468 kfree(switchdev_work); in am65_cpsw_switchdev_event()