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()
574 struct prestera_switchdev *swdev = port->sw->swdev; in prestera_bridge_port_leave() local
578 bridge = prestera_bridge_by_dev(swdev, br_dev); in prestera_bridge_port_leave()
608 br_port = prestera_bridge_port_by_dev(port->sw->swdev, dev); in prestera_port_attr_br_flags_set()
649 bridge = prestera_bridge_by_dev(sw->swdev, dev); in prestera_port_attr_br_vlan_set()
686 br_port = prestera_bridge_port_by_dev(port->sw->swdev, dev); in prestera_port_attr_stp_state_set()
779 br_port = prestera_bridge_port_by_dev(sw->swdev, port->dev); in prestera_port_fdb_set()
1038 br_port = prestera_bridge_port_by_dev(sw->swdev, port->dev); in prestera_port_vlans_add()
1077 br_port = prestera_bridge_port_by_dev(sw->swdev, port->dev); in prestera_port_vlans_del()
1204 static int prestera_switchdev_handler_init(struct prestera_switchdev *swdev) in prestera_switchdev_handler_init() argument
1208 swdev->swdev_nb.notifier_call = prestera_switchdev_event; in prestera_switchdev_handler_init()
1209 err = register_switchdev_notifier(&swdev->swdev_nb); in prestera_switchdev_handler_init()
1213 swdev->swdev_nb_blk.notifier_call = prestera_switchdev_blk_event; in prestera_switchdev_handler_init()
1214 err = register_switchdev_blocking_notifier(&swdev->swdev_nb_blk); in prestera_switchdev_handler_init()
1221 unregister_switchdev_notifier(&swdev->swdev_nb); in prestera_switchdev_handler_init()
1227 static void prestera_switchdev_handler_fini(struct prestera_switchdev *swdev) in prestera_switchdev_handler_fini() argument
1229 unregister_switchdev_blocking_notifier(&swdev->swdev_nb_blk); in prestera_switchdev_handler_fini()
1230 unregister_switchdev_notifier(&swdev->swdev_nb); in prestera_switchdev_handler_fini()
1235 struct prestera_switchdev *swdev; in prestera_switchdev_init() local
1238 swdev = kzalloc(sizeof(*swdev), GFP_KERNEL); in prestera_switchdev_init()
1239 if (!swdev) in prestera_switchdev_init()
1242 sw->swdev = swdev; in prestera_switchdev_init()
1243 swdev->sw = sw; in prestera_switchdev_init()
1245 INIT_LIST_HEAD(&swdev->bridge_list); in prestera_switchdev_init()
1253 err = prestera_switchdev_handler_init(swdev); in prestera_switchdev_init()
1267 kfree(swdev); in prestera_switchdev_init()
1274 struct prestera_switchdev *swdev = sw->swdev; in prestera_switchdev_fini() local
1277 prestera_switchdev_handler_fini(swdev); in prestera_switchdev_fini()
1279 kfree(swdev); in prestera_switchdev_fini()