Lines Matching refs:swdev
40 struct prestera_switchdev *swdev; member
267 prestera_bridge_create(struct prestera_switchdev *swdev, struct net_device *dev) in prestera_bridge_create() argument
274 if (vlan_enabled && swdev->bridge_8021q_exists) { in prestera_bridge_create()
284 swdev->bridge_8021q_exists = true; in prestera_bridge_create()
286 err = prestera_hw_bridge_create(swdev->sw, &bridge_id); in prestera_bridge_create()
296 bridge->swdev = swdev; in prestera_bridge_create()
301 list_add(&bridge->head, &swdev->bridge_list); in prestera_bridge_create()
308 struct prestera_switchdev *swdev = bridge->swdev; in prestera_bridge_destroy() local
313 swdev->bridge_8021q_exists = false; in prestera_bridge_destroy()
315 prestera_hw_bridge_delete(swdev->sw, bridge->bridge_id); in prestera_bridge_destroy()
328 struct prestera_bridge *prestera_bridge_by_dev(struct prestera_switchdev *swdev, in prestera_bridge_by_dev() argument
333 list_for_each_entry(bridge, &swdev->bridge_list, head) in prestera_bridge_by_dev()
373 prestera_bridge_port_by_dev(struct prestera_switchdev *swdev, in prestera_bridge_port_by_dev() argument
382 bridge = prestera_bridge_by_dev(swdev, br_dev); in prestera_bridge_port_by_dev()
486 struct prestera_switchdev *swdev = port->sw->swdev; in prestera_bridge_port_join() local
491 bridge = prestera_bridge_by_dev(swdev, br_dev); in prestera_bridge_port_join()
493 bridge = prestera_bridge_create(swdev, br_dev); in prestera_bridge_port_join()
576 struct prestera_switchdev *swdev = port->sw->swdev; in prestera_bridge_port_leave() local
580 bridge = prestera_bridge_by_dev(swdev, br_dev); in prestera_bridge_port_leave()
610 br_port = prestera_bridge_port_by_dev(port->sw->swdev, dev); in prestera_port_attr_br_flags_set()
651 bridge = prestera_bridge_by_dev(sw->swdev, dev); in prestera_port_attr_br_vlan_set()
688 br_port = prestera_bridge_port_by_dev(port->sw->swdev, dev); in prestera_port_attr_stp_state_set()
781 br_port = prestera_bridge_port_by_dev(sw->swdev, port->dev); in prestera_port_fdb_set()
1040 br_port = prestera_bridge_port_by_dev(sw->swdev, port->dev); in prestera_port_vlans_add()
1079 br_port = prestera_bridge_port_by_dev(sw->swdev, port->dev); in prestera_port_vlans_del()
1206 static int prestera_switchdev_handler_init(struct prestera_switchdev *swdev) in prestera_switchdev_handler_init() argument
1210 swdev->swdev_nb.notifier_call = prestera_switchdev_event; in prestera_switchdev_handler_init()
1211 err = register_switchdev_notifier(&swdev->swdev_nb); in prestera_switchdev_handler_init()
1215 swdev->swdev_nb_blk.notifier_call = prestera_switchdev_blk_event; in prestera_switchdev_handler_init()
1216 err = register_switchdev_blocking_notifier(&swdev->swdev_nb_blk); in prestera_switchdev_handler_init()
1223 unregister_switchdev_notifier(&swdev->swdev_nb); in prestera_switchdev_handler_init()
1229 static void prestera_switchdev_handler_fini(struct prestera_switchdev *swdev) in prestera_switchdev_handler_fini() argument
1231 unregister_switchdev_blocking_notifier(&swdev->swdev_nb_blk); in prestera_switchdev_handler_fini()
1232 unregister_switchdev_notifier(&swdev->swdev_nb); in prestera_switchdev_handler_fini()
1237 struct prestera_switchdev *swdev; in prestera_switchdev_init() local
1240 swdev = kzalloc(sizeof(*swdev), GFP_KERNEL); in prestera_switchdev_init()
1241 if (!swdev) in prestera_switchdev_init()
1244 sw->swdev = swdev; in prestera_switchdev_init()
1245 swdev->sw = sw; in prestera_switchdev_init()
1247 INIT_LIST_HEAD(&swdev->bridge_list); in prestera_switchdev_init()
1255 err = prestera_switchdev_handler_init(swdev); in prestera_switchdev_init()
1269 kfree(swdev); in prestera_switchdev_init()
1276 struct prestera_switchdev *swdev = sw->swdev; in prestera_switchdev_fini() local
1279 prestera_switchdev_handler_fini(swdev); in prestera_switchdev_fini()
1281 kfree(swdev); in prestera_switchdev_fini()