nsim_bus_dev 21 drivers/net/netdevsim/bus.c static struct nsim_bus_dev *to_nsim_bus_dev(struct device *dev) nsim_bus_dev 23 drivers/net/netdevsim/bus.c return container_of(dev, struct nsim_bus_dev, dev); nsim_bus_dev 26 drivers/net/netdevsim/bus.c static int nsim_bus_dev_vfs_enable(struct nsim_bus_dev *nsim_bus_dev, nsim_bus_dev 29 drivers/net/netdevsim/bus.c nsim_bus_dev->vfconfigs = kcalloc(num_vfs, nsim_bus_dev 32 drivers/net/netdevsim/bus.c if (!nsim_bus_dev->vfconfigs) nsim_bus_dev 34 drivers/net/netdevsim/bus.c nsim_bus_dev->num_vfs = num_vfs; nsim_bus_dev 39 drivers/net/netdevsim/bus.c static void nsim_bus_dev_vfs_disable(struct nsim_bus_dev *nsim_bus_dev) nsim_bus_dev 41 drivers/net/netdevsim/bus.c kfree(nsim_bus_dev->vfconfigs); nsim_bus_dev 42 drivers/net/netdevsim/bus.c nsim_bus_dev->vfconfigs = NULL; nsim_bus_dev 43 drivers/net/netdevsim/bus.c nsim_bus_dev->num_vfs = 0; nsim_bus_dev 50 drivers/net/netdevsim/bus.c struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); nsim_bus_dev 59 drivers/net/netdevsim/bus.c if (nsim_bus_dev->num_vfs == num_vfs) nsim_bus_dev 61 drivers/net/netdevsim/bus.c if (nsim_bus_dev->num_vfs && num_vfs) { nsim_bus_dev 67 drivers/net/netdevsim/bus.c ret = nsim_bus_dev_vfs_enable(nsim_bus_dev, num_vfs); nsim_bus_dev 71 drivers/net/netdevsim/bus.c nsim_bus_dev_vfs_disable(nsim_bus_dev); nsim_bus_dev 85 drivers/net/netdevsim/bus.c struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); nsim_bus_dev 87 drivers/net/netdevsim/bus.c return sprintf(buf, "%u\n", nsim_bus_dev->num_vfs); nsim_bus_dev 98 drivers/net/netdevsim/bus.c struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); nsim_bus_dev 105 drivers/net/netdevsim/bus.c ret = nsim_dev_port_add(nsim_bus_dev, port_index); nsim_bus_dev 115 drivers/net/netdevsim/bus.c struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); nsim_bus_dev 122 drivers/net/netdevsim/bus.c ret = nsim_dev_port_del(nsim_bus_dev, port_index); nsim_bus_dev 146 drivers/net/netdevsim/bus.c struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); nsim_bus_dev 148 drivers/net/netdevsim/bus.c nsim_bus_dev_vfs_disable(nsim_bus_dev); nsim_bus_dev 156 drivers/net/netdevsim/bus.c static struct nsim_bus_dev * nsim_bus_dev 162 drivers/net/netdevsim/bus.c struct nsim_bus_dev *nsim_bus_dev; nsim_bus_dev 182 drivers/net/netdevsim/bus.c nsim_bus_dev = nsim_bus_dev_new(id, port_count); nsim_bus_dev 183 drivers/net/netdevsim/bus.c if (IS_ERR(nsim_bus_dev)) nsim_bus_dev 184 drivers/net/netdevsim/bus.c return PTR_ERR(nsim_bus_dev); nsim_bus_dev 187 drivers/net/netdevsim/bus.c list_add_tail(&nsim_bus_dev->list, &nsim_bus_dev_list); nsim_bus_dev 194 drivers/net/netdevsim/bus.c static void nsim_bus_dev_del(struct nsim_bus_dev *nsim_bus_dev); nsim_bus_dev 199 drivers/net/netdevsim/bus.c struct nsim_bus_dev *nsim_bus_dev, *tmp; nsim_bus_dev 218 drivers/net/netdevsim/bus.c list_for_each_entry_safe(nsim_bus_dev, tmp, &nsim_bus_dev_list, list) { nsim_bus_dev 219 drivers/net/netdevsim/bus.c if (nsim_bus_dev->dev.id != id) nsim_bus_dev 221 drivers/net/netdevsim/bus.c list_del(&nsim_bus_dev->list); nsim_bus_dev 222 drivers/net/netdevsim/bus.c nsim_bus_dev_del(nsim_bus_dev); nsim_bus_dev 240 drivers/net/netdevsim/bus.c struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); nsim_bus_dev 242 drivers/net/netdevsim/bus.c return nsim_dev_probe(nsim_bus_dev); nsim_bus_dev 247 drivers/net/netdevsim/bus.c struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); nsim_bus_dev 249 drivers/net/netdevsim/bus.c nsim_dev_remove(nsim_bus_dev); nsim_bus_dev 255 drivers/net/netdevsim/bus.c struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); nsim_bus_dev 257 drivers/net/netdevsim/bus.c return nsim_bus_dev->num_vfs; nsim_bus_dev 269 drivers/net/netdevsim/bus.c static struct nsim_bus_dev * nsim_bus_dev 272 drivers/net/netdevsim/bus.c struct nsim_bus_dev *nsim_bus_dev; nsim_bus_dev 275 drivers/net/netdevsim/bus.c nsim_bus_dev = kzalloc(sizeof(*nsim_bus_dev), GFP_KERNEL); nsim_bus_dev 276 drivers/net/netdevsim/bus.c if (!nsim_bus_dev) nsim_bus_dev 282 drivers/net/netdevsim/bus.c nsim_bus_dev->dev.id = err; nsim_bus_dev 283 drivers/net/netdevsim/bus.c nsim_bus_dev->dev.bus = &nsim_bus; nsim_bus_dev 284 drivers/net/netdevsim/bus.c nsim_bus_dev->dev.type = &nsim_bus_dev_type; nsim_bus_dev 285 drivers/net/netdevsim/bus.c nsim_bus_dev->port_count = port_count; nsim_bus_dev 287 drivers/net/netdevsim/bus.c err = device_register(&nsim_bus_dev->dev); nsim_bus_dev 290 drivers/net/netdevsim/bus.c return nsim_bus_dev; nsim_bus_dev 293 drivers/net/netdevsim/bus.c ida_free(&nsim_bus_dev_ids, nsim_bus_dev->dev.id); nsim_bus_dev 295 drivers/net/netdevsim/bus.c kfree(nsim_bus_dev); nsim_bus_dev 299 drivers/net/netdevsim/bus.c static void nsim_bus_dev_del(struct nsim_bus_dev *nsim_bus_dev) nsim_bus_dev 301 drivers/net/netdevsim/bus.c device_unregister(&nsim_bus_dev->dev); nsim_bus_dev 302 drivers/net/netdevsim/bus.c ida_free(&nsim_bus_dev_ids, nsim_bus_dev->dev.id); nsim_bus_dev 303 drivers/net/netdevsim/bus.c kfree(nsim_bus_dev); nsim_bus_dev 331 drivers/net/netdevsim/bus.c struct nsim_bus_dev *nsim_bus_dev, *tmp; nsim_bus_dev 334 drivers/net/netdevsim/bus.c list_for_each_entry_safe(nsim_bus_dev, tmp, &nsim_bus_dev_list, list) { nsim_bus_dev 335 drivers/net/netdevsim/bus.c list_del(&nsim_bus_dev->list); nsim_bus_dev 336 drivers/net/netdevsim/bus.c nsim_bus_dev_del(nsim_bus_dev); nsim_bus_dev 78 drivers/net/netdevsim/dev.c sprintf(dev_ddir_name, DRV_NAME "%u", nsim_dev->nsim_bus_dev->dev.id); nsim_bus_dev 115 drivers/net/netdevsim/dev.c nsim_dev->nsim_bus_dev->dev.id); nsim_bus_dev 661 drivers/net/netdevsim/dev.c nsim_dev_create(struct nsim_bus_dev *nsim_bus_dev, unsigned int port_count) nsim_bus_dev 671 drivers/net/netdevsim/dev.c nsim_dev->nsim_bus_dev = nsim_bus_dev; nsim_bus_dev 684 drivers/net/netdevsim/dev.c err = devlink_register(devlink, &nsim_bus_dev->dev); nsim_bus_dev 818 drivers/net/netdevsim/dev.c int nsim_dev_probe(struct nsim_bus_dev *nsim_bus_dev) nsim_bus_dev 824 drivers/net/netdevsim/dev.c nsim_dev = nsim_dev_create(nsim_bus_dev, nsim_bus_dev->port_count); nsim_bus_dev 827 drivers/net/netdevsim/dev.c dev_set_drvdata(&nsim_bus_dev->dev, nsim_dev); nsim_bus_dev 830 drivers/net/netdevsim/dev.c for (i = 0; i < nsim_bus_dev->port_count; i++) { nsim_bus_dev 845 drivers/net/netdevsim/dev.c void nsim_dev_remove(struct nsim_bus_dev *nsim_bus_dev) nsim_bus_dev 847 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev = dev_get_drvdata(&nsim_bus_dev->dev); nsim_bus_dev 864 drivers/net/netdevsim/dev.c int nsim_dev_port_add(struct nsim_bus_dev *nsim_bus_dev, nsim_bus_dev 867 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev = dev_get_drvdata(&nsim_bus_dev->dev); nsim_bus_dev 879 drivers/net/netdevsim/dev.c int nsim_dev_port_del(struct nsim_bus_dev *nsim_bus_dev, nsim_bus_dev 882 drivers/net/netdevsim/dev.c struct nsim_dev *nsim_dev = dev_get_drvdata(&nsim_bus_dev->dev); nsim_bus_dev 84 drivers/net/netdevsim/netdev.c struct nsim_bus_dev *nsim_bus_dev = ns->nsim_bus_dev; nsim_bus_dev 87 drivers/net/netdevsim/netdev.c if (vf >= nsim_bus_dev->num_vfs || is_multicast_ether_addr(mac)) nsim_bus_dev 89 drivers/net/netdevsim/netdev.c memcpy(nsim_bus_dev->vfconfigs[vf].vf_mac, mac, ETH_ALEN); nsim_bus_dev 98 drivers/net/netdevsim/netdev.c struct nsim_bus_dev *nsim_bus_dev = ns->nsim_bus_dev; nsim_bus_dev 100 drivers/net/netdevsim/netdev.c if (vf >= nsim_bus_dev->num_vfs || vlan > 4095 || qos > 7) nsim_bus_dev 103 drivers/net/netdevsim/netdev.c nsim_bus_dev->vfconfigs[vf].vlan = vlan; nsim_bus_dev 104 drivers/net/netdevsim/netdev.c nsim_bus_dev->vfconfigs[vf].qos = qos; nsim_bus_dev 105 drivers/net/netdevsim/netdev.c nsim_bus_dev->vfconfigs[vf].vlan_proto = vlan_proto; nsim_bus_dev 113 drivers/net/netdevsim/netdev.c struct nsim_bus_dev *nsim_bus_dev = ns->nsim_bus_dev; nsim_bus_dev 115 drivers/net/netdevsim/netdev.c if (vf >= nsim_bus_dev->num_vfs) nsim_bus_dev 118 drivers/net/netdevsim/netdev.c nsim_bus_dev->vfconfigs[vf].min_tx_rate = min; nsim_bus_dev 119 drivers/net/netdevsim/netdev.c nsim_bus_dev->vfconfigs[vf].max_tx_rate = max; nsim_bus_dev 127 drivers/net/netdevsim/netdev.c struct nsim_bus_dev *nsim_bus_dev = ns->nsim_bus_dev; nsim_bus_dev 129 drivers/net/netdevsim/netdev.c if (vf >= nsim_bus_dev->num_vfs) nsim_bus_dev 131 drivers/net/netdevsim/netdev.c nsim_bus_dev->vfconfigs[vf].spoofchk_enabled = val; nsim_bus_dev 139 drivers/net/netdevsim/netdev.c struct nsim_bus_dev *nsim_bus_dev = ns->nsim_bus_dev; nsim_bus_dev 141 drivers/net/netdevsim/netdev.c if (vf >= nsim_bus_dev->num_vfs) nsim_bus_dev 143 drivers/net/netdevsim/netdev.c nsim_bus_dev->vfconfigs[vf].rss_query_enabled = val; nsim_bus_dev 151 drivers/net/netdevsim/netdev.c struct nsim_bus_dev *nsim_bus_dev = ns->nsim_bus_dev; nsim_bus_dev 153 drivers/net/netdevsim/netdev.c if (vf >= nsim_bus_dev->num_vfs) nsim_bus_dev 155 drivers/net/netdevsim/netdev.c nsim_bus_dev->vfconfigs[vf].trusted = val; nsim_bus_dev 164 drivers/net/netdevsim/netdev.c struct nsim_bus_dev *nsim_bus_dev = ns->nsim_bus_dev; nsim_bus_dev 166 drivers/net/netdevsim/netdev.c if (vf >= nsim_bus_dev->num_vfs) nsim_bus_dev 170 drivers/net/netdevsim/netdev.c ivi->linkstate = nsim_bus_dev->vfconfigs[vf].link_state; nsim_bus_dev 171 drivers/net/netdevsim/netdev.c ivi->min_tx_rate = nsim_bus_dev->vfconfigs[vf].min_tx_rate; nsim_bus_dev 172 drivers/net/netdevsim/netdev.c ivi->max_tx_rate = nsim_bus_dev->vfconfigs[vf].max_tx_rate; nsim_bus_dev 173 drivers/net/netdevsim/netdev.c ivi->vlan = nsim_bus_dev->vfconfigs[vf].vlan; nsim_bus_dev 174 drivers/net/netdevsim/netdev.c ivi->vlan_proto = nsim_bus_dev->vfconfigs[vf].vlan_proto; nsim_bus_dev 175 drivers/net/netdevsim/netdev.c ivi->qos = nsim_bus_dev->vfconfigs[vf].qos; nsim_bus_dev 176 drivers/net/netdevsim/netdev.c memcpy(&ivi->mac, nsim_bus_dev->vfconfigs[vf].vf_mac, ETH_ALEN); nsim_bus_dev 177 drivers/net/netdevsim/netdev.c ivi->spoofchk = nsim_bus_dev->vfconfigs[vf].spoofchk_enabled; nsim_bus_dev 178 drivers/net/netdevsim/netdev.c ivi->trusted = nsim_bus_dev->vfconfigs[vf].trusted; nsim_bus_dev 179 drivers/net/netdevsim/netdev.c ivi->rss_query_en = nsim_bus_dev->vfconfigs[vf].rss_query_enabled; nsim_bus_dev 187 drivers/net/netdevsim/netdev.c struct nsim_bus_dev *nsim_bus_dev = ns->nsim_bus_dev; nsim_bus_dev 189 drivers/net/netdevsim/netdev.c if (vf >= nsim_bus_dev->num_vfs) nsim_bus_dev 201 drivers/net/netdevsim/netdev.c nsim_bus_dev->vfconfigs[vf].link_state = state; nsim_bus_dev 297 drivers/net/netdevsim/netdev.c ns->nsim_bus_dev = nsim_dev->nsim_bus_dev; nsim_bus_dev 298 drivers/net/netdevsim/netdev.c SET_NETDEV_DEV(dev, &ns->nsim_bus_dev->dev); nsim_bus_dev 60 drivers/net/netdevsim/netdevsim.h struct nsim_bus_dev *nsim_bus_dev; nsim_bus_dev 146 drivers/net/netdevsim/netdevsim.h struct nsim_bus_dev *nsim_bus_dev; nsim_bus_dev 169 drivers/net/netdevsim/netdevsim.h int nsim_dev_probe(struct nsim_bus_dev *nsim_bus_dev); nsim_bus_dev 170 drivers/net/netdevsim/netdevsim.h void nsim_dev_remove(struct nsim_bus_dev *nsim_bus_dev); nsim_bus_dev 171 drivers/net/netdevsim/netdevsim.h int nsim_dev_port_add(struct nsim_bus_dev *nsim_bus_dev, nsim_bus_dev 173 drivers/net/netdevsim/netdevsim.h int nsim_dev_port_del(struct nsim_bus_dev *nsim_bus_dev,