Lines Matching refs:switchdev_work

372 	struct am65_cpsw_switchdev_event_work *switchdev_work =  in am65_cpsw_switchdev_event_work()  local
374 struct am65_cpsw_port *port = switchdev_work->port; in am65_cpsw_switchdev_event_work()
380 switch (switchdev_work->event) { in am65_cpsw_switchdev_event_work()
382 fdb = &switchdev_work->fdb_info; in am65_cpsw_switchdev_event_work()
398 fdb = &switchdev_work->fdb_info; in am65_cpsw_switchdev_event_work()
417 kfree(switchdev_work->fdb_info.addr); in am65_cpsw_switchdev_event_work()
418 kfree(switchdev_work); in am65_cpsw_switchdev_event_work()
427 struct am65_cpsw_switchdev_event_work *switchdev_work; in am65_cpsw_switchdev_event() local
442 switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC); in am65_cpsw_switchdev_event()
443 if (WARN_ON(!switchdev_work)) in am65_cpsw_switchdev_event()
446 INIT_WORK(&switchdev_work->work, am65_cpsw_switchdev_event_work); in am65_cpsw_switchdev_event()
447 switchdev_work->port = port; in am65_cpsw_switchdev_event()
448 switchdev_work->event = event; in am65_cpsw_switchdev_event()
453 memcpy(&switchdev_work->fdb_info, ptr, in am65_cpsw_switchdev_event()
454 sizeof(switchdev_work->fdb_info)); in am65_cpsw_switchdev_event()
455 switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC); in am65_cpsw_switchdev_event()
456 if (!switchdev_work->fdb_info.addr) in am65_cpsw_switchdev_event()
458 ether_addr_copy((u8 *)switchdev_work->fdb_info.addr, in am65_cpsw_switchdev_event()
463 kfree(switchdev_work); in am65_cpsw_switchdev_event()
467 queue_work(system_long_wq, &switchdev_work->work); in am65_cpsw_switchdev_event()
472 kfree(switchdev_work); in am65_cpsw_switchdev_event()