nsim_dev 30 drivers/net/netdevsim/bpf.c struct nsim_dev *nsim_dev; nsim_dev 68 drivers/net/netdevsim/bpf.c if (state->nsim_dev->bpf_bind_verifier_delay && !insn_idx) nsim_dev 69 drivers/net/netdevsim/bpf.c msleep(state->nsim_dev->bpf_bind_verifier_delay); nsim_dev 216 drivers/net/netdevsim/bpf.c static int nsim_bpf_create_prog(struct nsim_dev *nsim_dev, nsim_dev 226 drivers/net/netdevsim/bpf.c state->nsim_dev = nsim_dev; nsim_dev 231 drivers/net/netdevsim/bpf.c sprintf(name, "%u", nsim_dev->prog_id_gen++); nsim_dev 232 drivers/net/netdevsim/bpf.c state->ddir = debugfs_create_dir(name, nsim_dev->ddir_bpf_bound_progs); nsim_dev 243 drivers/net/netdevsim/bpf.c list_add_tail(&state->l, &nsim_dev->bpf_bound_progs); nsim_dev 252 drivers/net/netdevsim/bpf.c struct nsim_dev *nsim_dev = nsim_dev 255 drivers/net/netdevsim/bpf.c if (!nsim_dev->bpf_bind_accept) nsim_dev 258 drivers/net/netdevsim/bpf.c return nsim_bpf_create_prog(nsim_dev, prog); nsim_dev 517 drivers/net/netdevsim/bpf.c list_add_tail(&nmap->l, &ns->nsim_dev->bpf_bound_maps); nsim_dev 581 drivers/net/netdevsim/bpf.c int nsim_bpf_dev_init(struct nsim_dev *nsim_dev) nsim_dev 585 drivers/net/netdevsim/bpf.c INIT_LIST_HEAD(&nsim_dev->bpf_bound_progs); nsim_dev 586 drivers/net/netdevsim/bpf.c INIT_LIST_HEAD(&nsim_dev->bpf_bound_maps); nsim_dev 588 drivers/net/netdevsim/bpf.c nsim_dev->ddir_bpf_bound_progs = debugfs_create_dir("bpf_bound_progs", nsim_dev 589 drivers/net/netdevsim/bpf.c nsim_dev->ddir); nsim_dev 590 drivers/net/netdevsim/bpf.c if (IS_ERR_OR_NULL(nsim_dev->ddir_bpf_bound_progs)) nsim_dev 593 drivers/net/netdevsim/bpf.c nsim_dev->bpf_dev = bpf_offload_dev_create(&nsim_bpf_dev_ops, nsim_dev); nsim_dev 594 drivers/net/netdevsim/bpf.c err = PTR_ERR_OR_ZERO(nsim_dev->bpf_dev); nsim_dev 598 drivers/net/netdevsim/bpf.c nsim_dev->bpf_bind_accept = true; nsim_dev 599 drivers/net/netdevsim/bpf.c debugfs_create_bool("bpf_bind_accept", 0600, nsim_dev->ddir, nsim_dev 600 drivers/net/netdevsim/bpf.c &nsim_dev->bpf_bind_accept); nsim_dev 601 drivers/net/netdevsim/bpf.c debugfs_create_u32("bpf_bind_verifier_delay", 0600, nsim_dev->ddir, nsim_dev 602 drivers/net/netdevsim/bpf.c &nsim_dev->bpf_bind_verifier_delay); nsim_dev 606 drivers/net/netdevsim/bpf.c void nsim_bpf_dev_exit(struct nsim_dev *nsim_dev) nsim_dev 608 drivers/net/netdevsim/bpf.c WARN_ON(!list_empty(&nsim_dev->bpf_bound_progs)); nsim_dev 609 drivers/net/netdevsim/bpf.c WARN_ON(!list_empty(&nsim_dev->bpf_bound_maps)); nsim_dev 610 drivers/net/netdevsim/bpf.c bpf_offload_dev_destroy(nsim_dev->bpf_dev); nsim_dev 618 drivers/net/netdevsim/bpf.c err = bpf_offload_dev_netdev_register(ns->nsim_dev->bpf_dev, nsim_dev 650 drivers/net/netdevsim/bpf.c bpf_offload_dev_netdev_unregister(ns->nsim_dev->bpf_dev, ns->netdev); nsim_dev 45 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev = file->private_data; nsim_dev 56 drivers/net/netdevsim/dev.c id = devlink_region_shapshot_id_get(priv_to_devlink(nsim_dev)); nsim_dev 57 drivers/net/netdevsim/dev.c err = devlink_region_snapshot_create(nsim_dev->dummy_region, nsim_dev 74 drivers/net/netdevsim/dev.c static int nsim_dev_debugfs_init(struct nsim_dev *nsim_dev) nsim_dev 78 drivers/net/netdevsim/dev.c sprintf(dev_ddir_name, DRV_NAME "%u", nsim_dev->nsim_bus_dev->dev.id); nsim_dev 79 drivers/net/netdevsim/dev.c nsim_dev->ddir = debugfs_create_dir(dev_ddir_name, nsim_dev_ddir); nsim_dev 80 drivers/net/netdevsim/dev.c if (IS_ERR_OR_NULL(nsim_dev->ddir)) nsim_dev 81 drivers/net/netdevsim/dev.c return PTR_ERR_OR_ZERO(nsim_dev->ddir) ?: -EINVAL; nsim_dev 82 drivers/net/netdevsim/dev.c nsim_dev->ports_ddir = debugfs_create_dir("ports", nsim_dev->ddir); nsim_dev 83 drivers/net/netdevsim/dev.c if (IS_ERR_OR_NULL(nsim_dev->ports_ddir)) nsim_dev 84 drivers/net/netdevsim/dev.c return PTR_ERR_OR_ZERO(nsim_dev->ports_ddir) ?: -EINVAL; nsim_dev 85 drivers/net/netdevsim/dev.c debugfs_create_bool("fw_update_status", 0600, nsim_dev->ddir, nsim_dev 86 drivers/net/netdevsim/dev.c &nsim_dev->fw_update_status); nsim_dev 87 drivers/net/netdevsim/dev.c debugfs_create_u32("max_macs", 0600, nsim_dev->ddir, nsim_dev 88 drivers/net/netdevsim/dev.c &nsim_dev->max_macs); nsim_dev 89 drivers/net/netdevsim/dev.c debugfs_create_bool("test1", 0600, nsim_dev->ddir, nsim_dev 90 drivers/net/netdevsim/dev.c &nsim_dev->test1); nsim_dev 91 drivers/net/netdevsim/dev.c debugfs_create_file("take_snapshot", 0200, nsim_dev->ddir, nsim_dev, nsim_dev 96 drivers/net/netdevsim/dev.c static void nsim_dev_debugfs_exit(struct nsim_dev *nsim_dev) nsim_dev 98 drivers/net/netdevsim/dev.c debugfs_remove_recursive(nsim_dev->ports_ddir); nsim_dev 99 drivers/net/netdevsim/dev.c debugfs_remove_recursive(nsim_dev->ddir); nsim_dev 102 drivers/net/netdevsim/dev.c static int nsim_dev_port_debugfs_init(struct nsim_dev *nsim_dev, nsim_dev 110 drivers/net/netdevsim/dev.c nsim_dev->ports_ddir); nsim_dev 115 drivers/net/netdevsim/dev.c nsim_dev->nsim_bus_dev->dev.id); nsim_dev 261 drivers/net/netdevsim/dev.c static void nsim_devlink_set_params_init_values(struct nsim_dev *nsim_dev, nsim_dev 266 drivers/net/netdevsim/dev.c value.vu32 = nsim_dev->max_macs; nsim_dev 270 drivers/net/netdevsim/dev.c value.vbool = nsim_dev->test1; nsim_dev 278 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev = devlink_priv(devlink); nsim_dev 286 drivers/net/netdevsim/dev.c nsim_dev->max_macs = saved_value.vu32; nsim_dev 291 drivers/net/netdevsim/dev.c nsim_dev->test1 = saved_value.vbool; nsim_dev 296 drivers/net/netdevsim/dev.c static int nsim_dev_dummy_region_init(struct nsim_dev *nsim_dev, nsim_dev 299 drivers/net/netdevsim/dev.c nsim_dev->dummy_region = nsim_dev 303 drivers/net/netdevsim/dev.c return PTR_ERR_OR_ZERO(nsim_dev->dummy_region); nsim_dev 306 drivers/net/netdevsim/dev.c static void nsim_dev_dummy_region_exit(struct nsim_dev *nsim_dev) nsim_dev 308 drivers/net/netdevsim/dev.c devlink_region_destroy(nsim_dev->dummy_region); nsim_dev 319 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev; nsim_dev 408 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev = nsim_dev_port->ns->nsim_dev; nsim_dev 409 drivers/net/netdevsim/dev.c struct devlink *devlink = priv_to_devlink(nsim_dev); nsim_dev 413 drivers/net/netdevsim/dev.c nsim_trap_data = nsim_dev->trap_data; nsim_dev 449 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev; nsim_dev 453 drivers/net/netdevsim/dev.c nsim_dev = nsim_trap_data->nsim_dev; nsim_dev 458 drivers/net/netdevsim/dev.c mutex_lock(&nsim_dev->port_list_lock); nsim_dev 459 drivers/net/netdevsim/dev.c list_for_each_entry(nsim_dev_port, &nsim_dev->port_list, list) { nsim_dev 465 drivers/net/netdevsim/dev.c mutex_unlock(&nsim_dev->port_list_lock); nsim_dev 467 drivers/net/netdevsim/dev.c schedule_delayed_work(&nsim_dev->trap_data->trap_report_dw, nsim_dev 473 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev = devlink_priv(devlink); nsim_dev 494 drivers/net/netdevsim/dev.c nsim_trap_data->nsim_dev = nsim_dev; nsim_dev 495 drivers/net/netdevsim/dev.c nsim_dev->trap_data = nsim_trap_data; nsim_dev 502 drivers/net/netdevsim/dev.c INIT_DELAYED_WORK(&nsim_dev->trap_data->trap_report_dw, nsim_dev 504 drivers/net/netdevsim/dev.c schedule_delayed_work(&nsim_dev->trap_data->trap_report_dw, nsim_dev 518 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev = devlink_priv(devlink); nsim_dev 520 drivers/net/netdevsim/dev.c cancel_delayed_work_sync(&nsim_dev->trap_data->trap_report_dw); nsim_dev 523 drivers/net/netdevsim/dev.c kfree(nsim_dev->trap_data->trap_items_arr); nsim_dev 524 drivers/net/netdevsim/dev.c kfree(nsim_dev->trap_data); nsim_dev 567 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev = devlink_priv(devlink); nsim_dev 570 drivers/net/netdevsim/dev.c if (nsim_dev->fw_update_status) { nsim_dev 578 drivers/net/netdevsim/dev.c if (nsim_dev->fw_update_status) nsim_dev 586 drivers/net/netdevsim/dev.c if (nsim_dev->fw_update_status) { nsim_dev 600 drivers/net/netdevsim/dev.c nsim_dev_trap_item_lookup(struct nsim_dev *nsim_dev, u16 trap_id) nsim_dev 602 drivers/net/netdevsim/dev.c struct nsim_trap_data *nsim_trap_data = nsim_dev->trap_data; nsim_dev 617 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev = devlink_priv(devlink); nsim_dev 620 drivers/net/netdevsim/dev.c nsim_trap_item = nsim_dev_trap_item_lookup(nsim_dev, trap->id); nsim_dev 635 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev = devlink_priv(devlink); nsim_dev 638 drivers/net/netdevsim/dev.c nsim_trap_item = nsim_dev_trap_item_lookup(nsim_dev, trap->id); nsim_dev 642 drivers/net/netdevsim/dev.c spin_lock(&nsim_dev->trap_data->trap_lock); nsim_dev 644 drivers/net/netdevsim/dev.c spin_unlock(&nsim_dev->trap_data->trap_lock); nsim_dev 660 drivers/net/netdevsim/dev.c static struct nsim_dev * nsim_dev 663 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev; nsim_dev 667 drivers/net/netdevsim/dev.c devlink = devlink_alloc(&nsim_dev_devlink_ops, sizeof(*nsim_dev)); nsim_dev 670 drivers/net/netdevsim/dev.c nsim_dev = devlink_priv(devlink); nsim_dev 671 drivers/net/netdevsim/dev.c nsim_dev->nsim_bus_dev = nsim_bus_dev; nsim_dev 672 drivers/net/netdevsim/dev.c nsim_dev->switch_id.id_len = sizeof(nsim_dev->switch_id.id); nsim_dev 673 drivers/net/netdevsim/dev.c get_random_bytes(nsim_dev->switch_id.id, nsim_dev->switch_id.id_len); nsim_dev 674 drivers/net/netdevsim/dev.c INIT_LIST_HEAD(&nsim_dev->port_list); nsim_dev 675 drivers/net/netdevsim/dev.c mutex_init(&nsim_dev->port_list_lock); nsim_dev 676 drivers/net/netdevsim/dev.c nsim_dev->fw_update_status = true; nsim_dev 677 drivers/net/netdevsim/dev.c nsim_dev->max_macs = NSIM_DEV_MAX_MACS_DEFAULT; nsim_dev 678 drivers/net/netdevsim/dev.c nsim_dev->test1 = NSIM_DEV_TEST1_DEFAULT; nsim_dev 692 drivers/net/netdevsim/dev.c nsim_devlink_set_params_init_values(nsim_dev, devlink); nsim_dev 694 drivers/net/netdevsim/dev.c err = nsim_dev_dummy_region_init(nsim_dev, devlink); nsim_dev 702 drivers/net/netdevsim/dev.c err = nsim_dev_debugfs_init(nsim_dev); nsim_dev 706 drivers/net/netdevsim/dev.c err = nsim_bpf_dev_init(nsim_dev); nsim_dev 712 drivers/net/netdevsim/dev.c return nsim_dev; nsim_dev 715 drivers/net/netdevsim/dev.c nsim_dev_debugfs_exit(nsim_dev); nsim_dev 719 drivers/net/netdevsim/dev.c nsim_dev_dummy_region_exit(nsim_dev); nsim_dev 732 drivers/net/netdevsim/dev.c static void nsim_dev_destroy(struct nsim_dev *nsim_dev) nsim_dev 734 drivers/net/netdevsim/dev.c struct devlink *devlink = priv_to_devlink(nsim_dev); nsim_dev 737 drivers/net/netdevsim/dev.c nsim_bpf_dev_exit(nsim_dev); nsim_dev 738 drivers/net/netdevsim/dev.c nsim_dev_debugfs_exit(nsim_dev); nsim_dev 740 drivers/net/netdevsim/dev.c nsim_dev_dummy_region_exit(nsim_dev); nsim_dev 745 drivers/net/netdevsim/dev.c mutex_destroy(&nsim_dev->port_list_lock); nsim_dev 749 drivers/net/netdevsim/dev.c static int __nsim_dev_port_add(struct nsim_dev *nsim_dev, nsim_dev 764 drivers/net/netdevsim/dev.c nsim_dev->switch_id.id, nsim_dev 765 drivers/net/netdevsim/dev.c nsim_dev->switch_id.id_len); nsim_dev 766 drivers/net/netdevsim/dev.c err = devlink_port_register(priv_to_devlink(nsim_dev), devlink_port, nsim_dev 771 drivers/net/netdevsim/dev.c err = nsim_dev_port_debugfs_init(nsim_dev, nsim_dev_port); nsim_dev 775 drivers/net/netdevsim/dev.c nsim_dev_port->ns = nsim_create(nsim_dev, nsim_dev_port); nsim_dev 782 drivers/net/netdevsim/dev.c list_add(&nsim_dev_port->list, &nsim_dev->port_list); nsim_dev 807 drivers/net/netdevsim/dev.c static void nsim_dev_port_del_all(struct nsim_dev *nsim_dev) nsim_dev 811 drivers/net/netdevsim/dev.c mutex_lock(&nsim_dev->port_list_lock); nsim_dev 813 drivers/net/netdevsim/dev.c &nsim_dev->port_list, list) nsim_dev 815 drivers/net/netdevsim/dev.c mutex_unlock(&nsim_dev->port_list_lock); nsim_dev 820 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev; nsim_dev 824 drivers/net/netdevsim/dev.c nsim_dev = nsim_dev_create(nsim_bus_dev, nsim_bus_dev->port_count); nsim_dev 825 drivers/net/netdevsim/dev.c if (IS_ERR(nsim_dev)) nsim_dev 826 drivers/net/netdevsim/dev.c return PTR_ERR(nsim_dev); nsim_dev 827 drivers/net/netdevsim/dev.c dev_set_drvdata(&nsim_bus_dev->dev, nsim_dev); nsim_dev 829 drivers/net/netdevsim/dev.c mutex_lock(&nsim_dev->port_list_lock); nsim_dev 831 drivers/net/netdevsim/dev.c err = __nsim_dev_port_add(nsim_dev, i); nsim_dev 835 drivers/net/netdevsim/dev.c mutex_unlock(&nsim_dev->port_list_lock); nsim_dev 839 drivers/net/netdevsim/dev.c mutex_unlock(&nsim_dev->port_list_lock); nsim_dev 840 drivers/net/netdevsim/dev.c nsim_dev_port_del_all(nsim_dev); nsim_dev 841 drivers/net/netdevsim/dev.c nsim_dev_destroy(nsim_dev); nsim_dev 847 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev = dev_get_drvdata(&nsim_bus_dev->dev); nsim_dev 849 drivers/net/netdevsim/dev.c nsim_dev_port_del_all(nsim_dev); nsim_dev 850 drivers/net/netdevsim/dev.c nsim_dev_destroy(nsim_dev); nsim_dev 854 drivers/net/netdevsim/dev.c __nsim_dev_port_lookup(struct nsim_dev *nsim_dev, unsigned int port_index) nsim_dev 858 drivers/net/netdevsim/dev.c list_for_each_entry(nsim_dev_port, &nsim_dev->port_list, list) nsim_dev 867 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev = dev_get_drvdata(&nsim_bus_dev->dev); nsim_dev 870 drivers/net/netdevsim/dev.c mutex_lock(&nsim_dev->port_list_lock); nsim_dev 871 drivers/net/netdevsim/dev.c if (__nsim_dev_port_lookup(nsim_dev, port_index)) nsim_dev 874 drivers/net/netdevsim/dev.c err = __nsim_dev_port_add(nsim_dev, port_index); nsim_dev 875 drivers/net/netdevsim/dev.c mutex_unlock(&nsim_dev->port_list_lock); nsim_dev 882 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev = dev_get_drvdata(&nsim_bus_dev->dev); nsim_dev 886 drivers/net/netdevsim/dev.c mutex_lock(&nsim_dev->port_list_lock); nsim_dev 887 drivers/net/netdevsim/dev.c nsim_dev_port = __nsim_dev_port_lookup(nsim_dev, port_index); nsim_dev 892 drivers/net/netdevsim/dev.c mutex_unlock(&nsim_dev->port_list_lock); nsim_dev 283 drivers/net/netdevsim/netdev.c nsim_create(struct nsim_dev *nsim_dev, struct nsim_dev_port *nsim_dev_port) nsim_dev 295 drivers/net/netdevsim/netdev.c ns->nsim_dev = nsim_dev; nsim_dev 297 drivers/net/netdevsim/netdev.c ns->nsim_bus_dev = nsim_dev->nsim_bus_dev; nsim_dev 53 drivers/net/netdevsim/netdevsim.h struct nsim_dev *nsim_dev; nsim_dev 78 drivers/net/netdevsim/netdevsim.h nsim_create(struct nsim_dev *nsim_dev, struct nsim_dev_port *nsim_dev_port); nsim_dev 82 drivers/net/netdevsim/netdevsim.h int nsim_bpf_dev_init(struct nsim_dev *nsim_dev); nsim_dev 83 drivers/net/netdevsim/netdevsim.h void nsim_bpf_dev_exit(struct nsim_dev *nsim_dev); nsim_dev 92 drivers/net/netdevsim/netdevsim.h static inline int nsim_bpf_dev_init(struct nsim_dev *nsim_dev) nsim_dev 97 drivers/net/netdevsim/netdevsim.h static inline void nsim_bpf_dev_exit(struct nsim_dev *nsim_dev)