Lines Matching refs:nsim_dev
84 struct nsim_dev *nsim_dev = file->private_data; in nsim_dev_take_snapshot_write() local
90 devlink = priv_to_devlink(nsim_dev); in nsim_dev_take_snapshot_write()
102 err = devlink_region_snapshot_create(nsim_dev->dummy_region, in nsim_dev_take_snapshot_write()
125 struct nsim_dev *nsim_dev = file->private_data; in nsim_dev_trap_fa_cookie_read() local
131 spin_lock(&nsim_dev->fa_cookie_lock); in nsim_dev_trap_fa_cookie_read()
132 fa_cookie = nsim_dev->fa_cookie; in nsim_dev_trap_fa_cookie_read()
144 spin_unlock(&nsim_dev->fa_cookie_lock); in nsim_dev_trap_fa_cookie_read()
152 spin_unlock(&nsim_dev->fa_cookie_lock); in nsim_dev_trap_fa_cookie_read()
160 struct nsim_dev *nsim_dev = file->private_data; in nsim_dev_trap_fa_cookie_write() local
192 spin_lock(&nsim_dev->fa_cookie_lock); in nsim_dev_trap_fa_cookie_write()
193 kfree(nsim_dev->fa_cookie); in nsim_dev_trap_fa_cookie_write()
194 nsim_dev->fa_cookie = fa_cookie; in nsim_dev_trap_fa_cookie_write()
195 spin_unlock(&nsim_dev->fa_cookie_lock); in nsim_dev_trap_fa_cookie_write()
222 static int nsim_dev_debugfs_init(struct nsim_dev *nsim_dev) in nsim_dev_debugfs_init() argument
227 sprintf(dev_ddir_name, DRV_NAME "%u", nsim_dev->nsim_bus_dev->dev.id); in nsim_dev_debugfs_init()
228 nsim_dev->ddir = debugfs_create_dir(dev_ddir_name, nsim_dev_ddir); in nsim_dev_debugfs_init()
229 if (IS_ERR(nsim_dev->ddir)) in nsim_dev_debugfs_init()
230 return PTR_ERR(nsim_dev->ddir); in nsim_dev_debugfs_init()
231 nsim_dev->ports_ddir = debugfs_create_dir("ports", nsim_dev->ddir); in nsim_dev_debugfs_init()
232 if (IS_ERR(nsim_dev->ports_ddir)) in nsim_dev_debugfs_init()
233 return PTR_ERR(nsim_dev->ports_ddir); in nsim_dev_debugfs_init()
234 debugfs_create_bool("fw_update_status", 0600, nsim_dev->ddir, in nsim_dev_debugfs_init()
235 &nsim_dev->fw_update_status); in nsim_dev_debugfs_init()
236 debugfs_create_u32("fw_update_overwrite_mask", 0600, nsim_dev->ddir, in nsim_dev_debugfs_init()
237 &nsim_dev->fw_update_overwrite_mask); in nsim_dev_debugfs_init()
238 debugfs_create_u32("max_macs", 0600, nsim_dev->ddir, in nsim_dev_debugfs_init()
239 &nsim_dev->max_macs); in nsim_dev_debugfs_init()
240 debugfs_create_bool("test1", 0600, nsim_dev->ddir, in nsim_dev_debugfs_init()
241 &nsim_dev->test1); in nsim_dev_debugfs_init()
242 nsim_dev->take_snapshot = debugfs_create_file("take_snapshot", in nsim_dev_debugfs_init()
244 nsim_dev->ddir, in nsim_dev_debugfs_init()
245 nsim_dev, in nsim_dev_debugfs_init()
247 debugfs_create_bool("dont_allow_reload", 0600, nsim_dev->ddir, in nsim_dev_debugfs_init()
248 &nsim_dev->dont_allow_reload); in nsim_dev_debugfs_init()
249 debugfs_create_bool("fail_reload", 0600, nsim_dev->ddir, in nsim_dev_debugfs_init()
250 &nsim_dev->fail_reload); in nsim_dev_debugfs_init()
251 debugfs_create_file("trap_flow_action_cookie", 0600, nsim_dev->ddir, in nsim_dev_debugfs_init()
252 nsim_dev, &nsim_dev_trap_fa_cookie_fops); in nsim_dev_debugfs_init()
254 nsim_dev->ddir, in nsim_dev_debugfs_init()
255 &nsim_dev->fail_trap_group_set); in nsim_dev_debugfs_init()
257 nsim_dev->ddir, in nsim_dev_debugfs_init()
258 &nsim_dev->fail_trap_policer_set); in nsim_dev_debugfs_init()
260 nsim_dev->ddir, in nsim_dev_debugfs_init()
261 &nsim_dev->fail_trap_policer_counter_get); in nsim_dev_debugfs_init()
262 nsim_dev->max_vfs = debugfs_create_file("max_vfs", in nsim_dev_debugfs_init()
264 nsim_dev->ddir, in nsim_dev_debugfs_init()
265 nsim_dev->nsim_bus_dev, in nsim_dev_debugfs_init()
267 nsim_dev->nodes_ddir = debugfs_create_dir("rate_nodes", nsim_dev->ddir); in nsim_dev_debugfs_init()
268 if (IS_ERR(nsim_dev->nodes_ddir)) { in nsim_dev_debugfs_init()
269 err = PTR_ERR(nsim_dev->nodes_ddir); in nsim_dev_debugfs_init()
273 nsim_dev->ddir, in nsim_dev_debugfs_init()
274 &nsim_dev->fail_trap_drop_counter_get); in nsim_dev_debugfs_init()
275 nsim_udp_tunnels_debugfs_create(nsim_dev); in nsim_dev_debugfs_init()
279 debugfs_remove_recursive(nsim_dev->ports_ddir); in nsim_dev_debugfs_init()
280 debugfs_remove_recursive(nsim_dev->ddir); in nsim_dev_debugfs_init()
284 static void nsim_dev_debugfs_exit(struct nsim_dev *nsim_dev) in nsim_dev_debugfs_exit() argument
286 debugfs_remove_recursive(nsim_dev->nodes_ddir); in nsim_dev_debugfs_exit()
287 debugfs_remove_recursive(nsim_dev->ports_ddir); in nsim_dev_debugfs_exit()
288 debugfs_remove_recursive(nsim_dev->ddir); in nsim_dev_debugfs_exit()
312 static int nsim_dev_port_debugfs_init(struct nsim_dev *nsim_dev, in nsim_dev_port_debugfs_init() argument
315 struct nsim_bus_dev *nsim_bus_dev = nsim_dev->nsim_bus_dev; in nsim_dev_port_debugfs_init()
322 nsim_dev->ports_ddir); in nsim_dev_port_debugfs_init()
436 static void nsim_devlink_set_params_init_values(struct nsim_dev *nsim_dev, in nsim_devlink_set_params_init_values() argument
441 value.vu32 = nsim_dev->max_macs; in nsim_devlink_set_params_init_values()
445 value.vbool = nsim_dev->test1; in nsim_devlink_set_params_init_values()
453 struct nsim_dev *nsim_dev = devlink_priv(devlink); in nsim_devlink_param_load_driverinit_values() local
461 nsim_dev->max_macs = saved_value.vu32; in nsim_devlink_param_load_driverinit_values()
466 nsim_dev->test1 = saved_value.vbool; in nsim_devlink_param_load_driverinit_values()
477 static int nsim_dev_dummy_region_init(struct nsim_dev *nsim_dev, in nsim_dev_dummy_region_init() argument
480 nsim_dev->dummy_region = in nsim_dev_dummy_region_init()
484 return PTR_ERR_OR_ZERO(nsim_dev->dummy_region); in nsim_dev_dummy_region_init()
487 static void nsim_dev_dummy_region_exit(struct nsim_dev *nsim_dev) in nsim_dev_dummy_region_exit() argument
489 devlink_region_destroy(nsim_dev->dummy_region); in nsim_dev_dummy_region_exit()
493 int nsim_esw_legacy_enable(struct nsim_dev *nsim_dev, struct netlink_ext_ack *extack) in nsim_esw_legacy_enable() argument
495 struct devlink *devlink = priv_to_devlink(nsim_dev); in nsim_esw_legacy_enable()
499 mutex_lock(&nsim_dev->port_list_lock); in nsim_esw_legacy_enable()
500 list_for_each_entry_safe(nsim_dev_port, tmp, &nsim_dev->port_list, list) in nsim_esw_legacy_enable()
503 mutex_unlock(&nsim_dev->port_list_lock); in nsim_esw_legacy_enable()
504 nsim_dev->esw_mode = DEVLINK_ESWITCH_MODE_LEGACY; in nsim_esw_legacy_enable()
508 int nsim_esw_switchdev_enable(struct nsim_dev *nsim_dev, struct netlink_ext_ack *extack) in nsim_esw_switchdev_enable() argument
510 struct nsim_bus_dev *nsim_bus_dev = nsim_dev->nsim_bus_dev; in nsim_esw_switchdev_enable()
521 nsim_dev->esw_mode = DEVLINK_ESWITCH_MODE_SWITCHDEV; in nsim_esw_switchdev_enable()
533 struct nsim_dev *nsim_dev = devlink_priv(devlink); in nsim_devlink_eswitch_mode_set() local
536 mutex_lock(&nsim_dev->nsim_bus_dev->vfs_lock); in nsim_devlink_eswitch_mode_set()
537 if (mode == nsim_dev->esw_mode) in nsim_devlink_eswitch_mode_set()
541 err = nsim_esw_legacy_enable(nsim_dev, extack); in nsim_devlink_eswitch_mode_set()
543 err = nsim_esw_switchdev_enable(nsim_dev, extack); in nsim_devlink_eswitch_mode_set()
548 mutex_unlock(&nsim_dev->nsim_bus_dev->vfs_lock); in nsim_devlink_eswitch_mode_set()
554 struct nsim_dev *nsim_dev = devlink_priv(devlink); in nsim_devlink_eswitch_mode_get() local
556 *mode = nsim_dev->esw_mode; in nsim_devlink_eswitch_mode_get()
570 struct nsim_dev *nsim_dev; member
700 struct nsim_dev *nsim_dev = nsim_dev_port->ns->nsim_dev; in nsim_dev_trap_report() local
701 struct devlink *devlink = priv_to_devlink(nsim_dev); in nsim_dev_trap_report()
705 nsim_trap_data = nsim_dev->trap_data; in nsim_dev_trap_report()
732 spin_lock_bh(&nsim_dev->fa_cookie_lock); in nsim_dev_trap_report()
733 fa_cookie = has_fa_cookie ? nsim_dev->fa_cookie : NULL; in nsim_dev_trap_report()
736 spin_unlock_bh(&nsim_dev->fa_cookie_lock); in nsim_dev_trap_report()
748 struct nsim_dev *nsim_dev; in nsim_dev_trap_report_work() local
752 nsim_dev = nsim_trap_data->nsim_dev; in nsim_dev_trap_report_work()
757 mutex_lock(&nsim_dev->port_list_lock); in nsim_dev_trap_report_work()
758 list_for_each_entry(nsim_dev_port, &nsim_dev->port_list, list) { in nsim_dev_trap_report_work()
764 mutex_unlock(&nsim_dev->port_list_lock); in nsim_dev_trap_report_work()
766 schedule_delayed_work(&nsim_dev->trap_data->trap_report_dw, in nsim_dev_trap_report_work()
773 struct nsim_dev *nsim_dev = devlink_priv(devlink); in nsim_dev_traps_init() local
802 nsim_trap_data->nsim_dev = nsim_dev; in nsim_dev_traps_init()
803 nsim_dev->trap_data = nsim_trap_data; in nsim_dev_traps_init()
820 INIT_DELAYED_WORK(&nsim_dev->trap_data->trap_report_dw, in nsim_dev_traps_init()
822 schedule_delayed_work(&nsim_dev->trap_data->trap_report_dw, in nsim_dev_traps_init()
844 struct nsim_dev *nsim_dev = devlink_priv(devlink); in nsim_dev_traps_exit() local
846 cancel_delayed_work_sync(&nsim_dev->trap_data->trap_report_dw); in nsim_dev_traps_exit()
853 kfree(nsim_dev->trap_data->trap_policers_cnt_arr); in nsim_dev_traps_exit()
854 kfree(nsim_dev->trap_data->trap_items_arr); in nsim_dev_traps_exit()
855 kfree(nsim_dev->trap_data); in nsim_dev_traps_exit()
858 static int nsim_dev_reload_create(struct nsim_dev *nsim_dev,
860 static void nsim_dev_reload_destroy(struct nsim_dev *nsim_dev);
866 struct nsim_dev *nsim_dev = devlink_priv(devlink); in nsim_dev_reload_down() local
869 nsim_bus_dev = nsim_dev->nsim_bus_dev; in nsim_dev_reload_down()
873 if (nsim_dev->dont_allow_reload) { in nsim_dev_reload_down()
883 nsim_dev_reload_destroy(nsim_dev); in nsim_dev_reload_down()
892 struct nsim_dev *nsim_dev = devlink_priv(devlink); in nsim_dev_reload_up() local
896 nsim_bus_dev = nsim_dev->nsim_bus_dev; in nsim_dev_reload_up()
900 if (nsim_dev->fail_reload) { in nsim_dev_reload_up()
910 ret = nsim_dev_reload_create(nsim_dev, extack); in nsim_dev_reload_up()
930 struct nsim_dev *nsim_dev = devlink_priv(devlink); in nsim_dev_flash_update() local
933 if ((params->overwrite_mask & ~nsim_dev->fw_update_overwrite_mask) != 0) in nsim_dev_flash_update()
936 if (nsim_dev->fw_update_status) { in nsim_dev_flash_update()
943 if (nsim_dev->fw_update_status) in nsim_dev_flash_update()
951 if (nsim_dev->fw_update_status) { in nsim_dev_flash_update()
966 nsim_dev_trap_item_lookup(struct nsim_dev *nsim_dev, u16 trap_id) in nsim_dev_trap_item_lookup() argument
968 struct nsim_trap_data *nsim_trap_data = nsim_dev->trap_data; in nsim_dev_trap_item_lookup()
983 struct nsim_dev *nsim_dev = devlink_priv(devlink); in nsim_dev_devlink_trap_init() local
986 nsim_trap_item = nsim_dev_trap_item_lookup(nsim_dev, trap->id); in nsim_dev_devlink_trap_init()
1002 struct nsim_dev *nsim_dev = devlink_priv(devlink); in nsim_dev_devlink_trap_action_set() local
1005 nsim_trap_item = nsim_dev_trap_item_lookup(nsim_dev, trap->id); in nsim_dev_devlink_trap_action_set()
1009 spin_lock(&nsim_dev->trap_data->trap_lock); in nsim_dev_devlink_trap_action_set()
1011 spin_unlock(&nsim_dev->trap_data->trap_lock); in nsim_dev_devlink_trap_action_set()
1022 struct nsim_dev *nsim_dev = devlink_priv(devlink); in nsim_dev_devlink_trap_group_set() local
1024 if (nsim_dev->fail_trap_group_set) in nsim_dev_devlink_trap_group_set()
1036 struct nsim_dev *nsim_dev = devlink_priv(devlink); in nsim_dev_devlink_trap_policer_set() local
1038 if (nsim_dev->fail_trap_policer_set) { in nsim_dev_devlink_trap_policer_set()
1051 struct nsim_dev *nsim_dev = devlink_priv(devlink); in nsim_dev_devlink_trap_policer_counter_get() local
1054 if (nsim_dev->fail_trap_policer_counter_get) in nsim_dev_devlink_trap_policer_counter_get()
1057 cnt = &nsim_dev->trap_data->trap_policers_cnt_arr[policer->id - 1]; in nsim_dev_devlink_trap_policer_counter_get()
1163 struct nsim_dev *nsim_dev = devlink_priv(node->devlink); in nsim_rate_node_new() local
1166 if (!nsim_esw_mode_is_switchdev(nsim_dev)) { in nsim_rate_node_new()
1175 nsim_node->ddir = debugfs_create_dir(node->name, nsim_dev->nodes_ddir); in nsim_rate_node_new()
1232 struct nsim_dev *nsim_dev = devlink_priv(devlink); in nsim_dev_devlink_trap_drop_counter_get() local
1235 if (nsim_dev->fail_trap_drop_counter_get) in nsim_dev_devlink_trap_drop_counter_get()
1238 cnt = &nsim_dev->trap_data->trap_pkt_cnt; in nsim_dev_devlink_trap_drop_counter_get()
1273 static int __nsim_dev_port_add(struct nsim_dev *nsim_dev, enum nsim_dev_port_type type, in __nsim_dev_port_add() argument
1276 struct nsim_bus_dev *nsim_bus_dev = nsim_dev->nsim_bus_dev; in __nsim_dev_port_add()
1300 memcpy(attrs.switch_id.id, nsim_dev->switch_id.id, nsim_dev->switch_id.id_len); in __nsim_dev_port_add()
1301 attrs.switch_id.id_len = nsim_dev->switch_id.id_len; in __nsim_dev_port_add()
1303 err = devlink_port_register(priv_to_devlink(nsim_dev), devlink_port, in __nsim_dev_port_add()
1308 err = nsim_dev_port_debugfs_init(nsim_dev, nsim_dev_port); in __nsim_dev_port_add()
1312 nsim_dev_port->ns = nsim_create(nsim_dev, nsim_dev_port); in __nsim_dev_port_add()
1326 list_add(&nsim_dev_port->list, &nsim_dev->port_list); in __nsim_dev_port_add()
1355 static void nsim_dev_port_del_all(struct nsim_dev *nsim_dev) in nsim_dev_port_del_all() argument
1359 mutex_lock(&nsim_dev->port_list_lock); in nsim_dev_port_del_all()
1361 &nsim_dev->port_list, list) in nsim_dev_port_del_all()
1363 mutex_unlock(&nsim_dev->port_list_lock); in nsim_dev_port_del_all()
1366 static int nsim_dev_port_add_all(struct nsim_dev *nsim_dev, in nsim_dev_port_add_all() argument
1372 err = __nsim_dev_port_add(nsim_dev, NSIM_DEV_PORT_TYPE_PF, i); in nsim_dev_port_add_all()
1379 nsim_dev_port_del_all(nsim_dev); in nsim_dev_port_add_all()
1383 static int nsim_dev_reload_create(struct nsim_dev *nsim_dev, in nsim_dev_reload_create() argument
1386 struct nsim_bus_dev *nsim_bus_dev = nsim_dev->nsim_bus_dev; in nsim_dev_reload_create()
1390 devlink = priv_to_devlink(nsim_dev); in nsim_dev_reload_create()
1391 nsim_dev = devlink_priv(devlink); in nsim_dev_reload_create()
1392 INIT_LIST_HEAD(&nsim_dev->port_list); in nsim_dev_reload_create()
1393 mutex_init(&nsim_dev->port_list_lock); in nsim_dev_reload_create()
1394 nsim_dev->fw_update_status = true; in nsim_dev_reload_create()
1395 nsim_dev->fw_update_overwrite_mask = 0; in nsim_dev_reload_create()
1399 err = nsim_dev_dummy_region_init(nsim_dev, devlink); in nsim_dev_reload_create()
1407 nsim_dev->fib_data = nsim_fib_create(devlink, extack); in nsim_dev_reload_create()
1408 if (IS_ERR(nsim_dev->fib_data)) { in nsim_dev_reload_create()
1409 err = PTR_ERR(nsim_dev->fib_data); in nsim_dev_reload_create()
1413 err = nsim_dev_health_init(nsim_dev, devlink); in nsim_dev_reload_create()
1417 err = nsim_dev_psample_init(nsim_dev); in nsim_dev_reload_create()
1421 err = nsim_dev_port_add_all(nsim_dev, nsim_bus_dev->port_count); in nsim_dev_reload_create()
1425 nsim_dev->take_snapshot = debugfs_create_file("take_snapshot", in nsim_dev_reload_create()
1427 nsim_dev->ddir, in nsim_dev_reload_create()
1428 nsim_dev, in nsim_dev_reload_create()
1433 nsim_dev_psample_exit(nsim_dev); in nsim_dev_reload_create()
1435 nsim_dev_health_exit(nsim_dev); in nsim_dev_reload_create()
1437 nsim_fib_destroy(devlink, nsim_dev->fib_data); in nsim_dev_reload_create()
1441 nsim_dev_dummy_region_exit(nsim_dev); in nsim_dev_reload_create()
1447 struct nsim_dev *nsim_dev; in nsim_dev_probe() local
1451 devlink = devlink_alloc_ns(&nsim_dev_devlink_ops, sizeof(*nsim_dev), in nsim_dev_probe()
1455 nsim_dev = devlink_priv(devlink); in nsim_dev_probe()
1456 nsim_dev->nsim_bus_dev = nsim_bus_dev; in nsim_dev_probe()
1457 nsim_dev->switch_id.id_len = sizeof(nsim_dev->switch_id.id); in nsim_dev_probe()
1458 get_random_bytes(nsim_dev->switch_id.id, nsim_dev->switch_id.id_len); in nsim_dev_probe()
1459 INIT_LIST_HEAD(&nsim_dev->port_list); in nsim_dev_probe()
1460 mutex_init(&nsim_dev->port_list_lock); in nsim_dev_probe()
1461 nsim_dev->fw_update_status = true; in nsim_dev_probe()
1462 nsim_dev->fw_update_overwrite_mask = 0; in nsim_dev_probe()
1463 nsim_dev->max_macs = NSIM_DEV_MAX_MACS_DEFAULT; in nsim_dev_probe()
1464 nsim_dev->test1 = NSIM_DEV_TEST1_DEFAULT; in nsim_dev_probe()
1465 spin_lock_init(&nsim_dev->fa_cookie_lock); in nsim_dev_probe()
1467 dev_set_drvdata(&nsim_bus_dev->dev, nsim_dev); in nsim_dev_probe()
1481 nsim_devlink_set_params_init_values(nsim_dev, devlink); in nsim_dev_probe()
1483 err = nsim_dev_dummy_region_init(nsim_dev, devlink); in nsim_dev_probe()
1491 err = nsim_dev_debugfs_init(nsim_dev); in nsim_dev_probe()
1495 nsim_dev->fib_data = nsim_fib_create(devlink, NULL); in nsim_dev_probe()
1496 if (IS_ERR(nsim_dev->fib_data)) { in nsim_dev_probe()
1497 err = PTR_ERR(nsim_dev->fib_data); in nsim_dev_probe()
1501 err = nsim_dev_health_init(nsim_dev, devlink); in nsim_dev_probe()
1505 err = nsim_bpf_dev_init(nsim_dev); in nsim_dev_probe()
1509 err = nsim_dev_psample_init(nsim_dev); in nsim_dev_probe()
1513 err = nsim_dev_port_add_all(nsim_dev, nsim_bus_dev->port_count); in nsim_dev_probe()
1519 nsim_dev->esw_mode = DEVLINK_ESWITCH_MODE_LEGACY; in nsim_dev_probe()
1523 nsim_dev_psample_exit(nsim_dev); in nsim_dev_probe()
1525 nsim_bpf_dev_exit(nsim_dev); in nsim_dev_probe()
1527 nsim_dev_health_exit(nsim_dev); in nsim_dev_probe()
1529 nsim_fib_destroy(devlink, nsim_dev->fib_data); in nsim_dev_probe()
1531 nsim_dev_debugfs_exit(nsim_dev); in nsim_dev_probe()
1535 nsim_dev_dummy_region_exit(nsim_dev); in nsim_dev_probe()
1548 static void nsim_dev_reload_destroy(struct nsim_dev *nsim_dev) in nsim_dev_reload_destroy() argument
1550 struct devlink *devlink = priv_to_devlink(nsim_dev); in nsim_dev_reload_destroy()
1554 debugfs_remove(nsim_dev->take_snapshot); in nsim_dev_reload_destroy()
1556 mutex_lock(&nsim_dev->nsim_bus_dev->vfs_lock); in nsim_dev_reload_destroy()
1557 if (nsim_dev->nsim_bus_dev->num_vfs) in nsim_dev_reload_destroy()
1558 nsim_bus_dev_vfs_disable(nsim_dev->nsim_bus_dev); in nsim_dev_reload_destroy()
1559 mutex_unlock(&nsim_dev->nsim_bus_dev->vfs_lock); in nsim_dev_reload_destroy()
1561 nsim_dev_port_del_all(nsim_dev); in nsim_dev_reload_destroy()
1562 nsim_dev_psample_exit(nsim_dev); in nsim_dev_reload_destroy()
1563 nsim_dev_health_exit(nsim_dev); in nsim_dev_reload_destroy()
1564 nsim_fib_destroy(devlink, nsim_dev->fib_data); in nsim_dev_reload_destroy()
1566 nsim_dev_dummy_region_exit(nsim_dev); in nsim_dev_reload_destroy()
1567 mutex_destroy(&nsim_dev->port_list_lock); in nsim_dev_reload_destroy()
1572 struct nsim_dev *nsim_dev = dev_get_drvdata(&nsim_bus_dev->dev); in nsim_dev_remove() local
1573 struct devlink *devlink = priv_to_devlink(nsim_dev); in nsim_dev_remove()
1577 nsim_dev_reload_destroy(nsim_dev); in nsim_dev_remove()
1579 nsim_bpf_dev_exit(nsim_dev); in nsim_dev_remove()
1580 nsim_dev_debugfs_exit(nsim_dev); in nsim_dev_remove()
1589 __nsim_dev_port_lookup(struct nsim_dev *nsim_dev, enum nsim_dev_port_type type, in __nsim_dev_port_lookup() argument
1595 list_for_each_entry(nsim_dev_port, &nsim_dev->port_list, list) in __nsim_dev_port_lookup()
1604 struct nsim_dev *nsim_dev = dev_get_drvdata(&nsim_bus_dev->dev); in nsim_dev_port_add() local
1607 mutex_lock(&nsim_dev->port_list_lock); in nsim_dev_port_add()
1608 if (__nsim_dev_port_lookup(nsim_dev, type, port_index)) in nsim_dev_port_add()
1611 err = __nsim_dev_port_add(nsim_dev, type, port_index); in nsim_dev_port_add()
1612 mutex_unlock(&nsim_dev->port_list_lock); in nsim_dev_port_add()
1619 struct nsim_dev *nsim_dev = dev_get_drvdata(&nsim_bus_dev->dev); in nsim_dev_port_del() local
1623 mutex_lock(&nsim_dev->port_list_lock); in nsim_dev_port_del()
1624 nsim_dev_port = __nsim_dev_port_lookup(nsim_dev, type, port_index); in nsim_dev_port_del()
1629 mutex_unlock(&nsim_dev->port_list_lock); in nsim_dev_port_del()