Lines Matching refs:switchdev_work
98 struct icssm_sw_event_work *switchdev_work = in icssm_sw_event_work() local
100 struct prueth_emac *emac = switchdev_work->emac; in icssm_sw_event_work()
111 switch (switchdev_work->event) { in icssm_sw_event_work()
113 fdb = &switchdev_work->fdb_info; in icssm_sw_event_work()
128 fdb = &switchdev_work->fdb_info; in icssm_sw_event_work()
145 netdev_put(emac->ndev, &switchdev_work->ndev_tracker); in icssm_sw_event_work()
146 kfree(switchdev_work->fdb_info.addr); in icssm_sw_event_work()
147 kfree(switchdev_work); in icssm_sw_event_work()
157 struct icssm_sw_event_work *switchdev_work; in icssm_prueth_sw_switchdev_event() local
170 switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC); in icssm_prueth_sw_switchdev_event()
171 if (WARN_ON(!switchdev_work)) in icssm_prueth_sw_switchdev_event()
174 INIT_WORK(&switchdev_work->work, icssm_sw_event_work); in icssm_prueth_sw_switchdev_event()
175 switchdev_work->emac = emac; in icssm_prueth_sw_switchdev_event()
176 switchdev_work->event = event; in icssm_prueth_sw_switchdev_event()
181 memcpy(&switchdev_work->fdb_info, ptr, in icssm_prueth_sw_switchdev_event()
182 sizeof(switchdev_work->fdb_info)); in icssm_prueth_sw_switchdev_event()
183 switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC); in icssm_prueth_sw_switchdev_event()
184 if (!switchdev_work->fdb_info.addr) in icssm_prueth_sw_switchdev_event()
186 ether_addr_copy((u8 *)switchdev_work->fdb_info.addr, in icssm_prueth_sw_switchdev_event()
188 netdev_hold(ndev, &switchdev_work->ndev_tracker, GFP_ATOMIC); in icssm_prueth_sw_switchdev_event()
191 kfree(switchdev_work); in icssm_prueth_sw_switchdev_event()
195 queue_work(system_long_wq, &switchdev_work->work); in icssm_prueth_sw_switchdev_event()
200 kfree(switchdev_work); in icssm_prueth_sw_switchdev_event()