Lines Matching refs:switchdev_work
378 struct cpsw_switchdev_event_work *switchdev_work = in cpsw_switchdev_event_work() local
380 struct cpsw_priv *priv = switchdev_work->priv; in cpsw_switchdev_event_work()
386 switch (switchdev_work->event) { in cpsw_switchdev_event_work()
388 fdb = &switchdev_work->fdb_info; in cpsw_switchdev_event_work()
404 fdb = &switchdev_work->fdb_info; in cpsw_switchdev_event_work()
423 kfree(switchdev_work->fdb_info.addr); in cpsw_switchdev_event_work()
424 kfree(switchdev_work); in cpsw_switchdev_event_work()
434 struct cpsw_switchdev_event_work *switchdev_work; in cpsw_switchdev_event() local
448 switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC); in cpsw_switchdev_event()
449 if (WARN_ON(!switchdev_work)) in cpsw_switchdev_event()
452 INIT_WORK(&switchdev_work->work, cpsw_switchdev_event_work); in cpsw_switchdev_event()
453 switchdev_work->priv = priv; in cpsw_switchdev_event()
454 switchdev_work->event = event; in cpsw_switchdev_event()
459 memcpy(&switchdev_work->fdb_info, ptr, in cpsw_switchdev_event()
460 sizeof(switchdev_work->fdb_info)); in cpsw_switchdev_event()
461 switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC); in cpsw_switchdev_event()
462 if (!switchdev_work->fdb_info.addr) in cpsw_switchdev_event()
464 ether_addr_copy((u8 *)switchdev_work->fdb_info.addr, in cpsw_switchdev_event()
469 kfree(switchdev_work); in cpsw_switchdev_event()
473 queue_work(system_long_wq, &switchdev_work->work); in cpsw_switchdev_event()
478 kfree(switchdev_work); in cpsw_switchdev_event()