Lines Matching refs:nsim_bus_dev
25 static struct nsim_bus_dev *to_nsim_bus_dev(struct device *dev) in to_nsim_bus_dev()
27 return container_of(dev, struct nsim_bus_dev, dev); in to_nsim_bus_dev()
34 struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); in nsim_bus_dev_numvfs_store() local
45 ret = nsim_drv_configure_vfs(nsim_bus_dev, num_vfs); in nsim_bus_dev_numvfs_store()
55 struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); in nsim_bus_dev_numvfs_show() local
57 return sprintf(buf, "%u\n", nsim_bus_dev->num_vfs); in nsim_bus_dev_numvfs_show()
68 struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); in new_port_store() local
75 if (!smp_load_acquire(&nsim_bus_dev->init)) in new_port_store()
96 ret = nsim_drv_port_add(nsim_bus_dev, NSIM_DEV_PORT_TYPE_PF, port_index, in new_port_store()
107 struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); in del_port_store() local
112 if (!smp_load_acquire(&nsim_bus_dev->init)) in del_port_store()
118 ret = nsim_drv_port_del(nsim_bus_dev, NSIM_DEV_PORT_TYPE_PF, port_index); in del_port_store()
142 struct nsim_bus_dev *nsim_bus_dev; in nsim_bus_dev_release() local
144 nsim_bus_dev = container_of(dev, struct nsim_bus_dev, dev); in nsim_bus_dev_release()
145 kfree(nsim_bus_dev); in nsim_bus_dev_release()
155 static struct nsim_bus_dev *
162 struct nsim_bus_dev *nsim_bus_dev; in new_device_store() local
191 nsim_bus_dev = nsim_bus_dev_new(id, port_count, num_queues); in new_device_store()
192 if (IS_ERR(nsim_bus_dev)) { in new_device_store()
193 err = PTR_ERR(nsim_bus_dev); in new_device_store()
199 smp_store_release(&nsim_bus_dev->init, true); in new_device_store()
201 list_add_tail(&nsim_bus_dev->list, &nsim_bus_dev_list); in new_device_store()
211 static void nsim_bus_dev_del(struct nsim_bus_dev *nsim_bus_dev);
216 struct nsim_bus_dev *nsim_bus_dev, *tmp; in del_device_store() local
240 list_for_each_entry_safe(nsim_bus_dev, tmp, &nsim_bus_dev_list, list) { in del_device_store()
241 if (nsim_bus_dev->dev.id != id) in del_device_store()
243 list_del(&nsim_bus_dev->list); in del_device_store()
244 nsim_bus_dev_del(nsim_bus_dev); in del_device_store()
410 struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); in nsim_bus_probe() local
412 return nsim_drv_probe(nsim_bus_dev); in nsim_bus_probe()
417 struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); in nsim_bus_remove() local
419 nsim_drv_remove(nsim_bus_dev); in nsim_bus_remove()
424 struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); in nsim_num_vf() local
426 return nsim_bus_dev->num_vfs; in nsim_num_vf()
440 static struct nsim_bus_dev *
443 struct nsim_bus_dev *nsim_bus_dev; in nsim_bus_dev_new() local
446 nsim_bus_dev = kzalloc(sizeof(*nsim_bus_dev), GFP_KERNEL); in nsim_bus_dev_new()
447 if (!nsim_bus_dev) in nsim_bus_dev_new()
453 nsim_bus_dev->dev.id = err; in nsim_bus_dev_new()
454 nsim_bus_dev->dev.bus = &nsim_bus; in nsim_bus_dev_new()
455 nsim_bus_dev->dev.type = &nsim_bus_dev_type; in nsim_bus_dev_new()
456 nsim_bus_dev->port_count = port_count; in nsim_bus_dev_new()
457 nsim_bus_dev->num_queues = num_queues; in nsim_bus_dev_new()
458 nsim_bus_dev->initial_net = current->nsproxy->net_ns; in nsim_bus_dev_new()
459 nsim_bus_dev->max_vfs = NSIM_BUS_DEV_MAX_VFS; in nsim_bus_dev_new()
461 smp_store_release(&nsim_bus_dev->init, false); in nsim_bus_dev_new()
463 err = device_register(&nsim_bus_dev->dev); in nsim_bus_dev_new()
467 return nsim_bus_dev; in nsim_bus_dev_new()
470 ida_free(&nsim_bus_dev_ids, nsim_bus_dev->dev.id); in nsim_bus_dev_new()
471 put_device(&nsim_bus_dev->dev); in nsim_bus_dev_new()
472 nsim_bus_dev = NULL; in nsim_bus_dev_new()
474 kfree(nsim_bus_dev); in nsim_bus_dev_new()
478 static void nsim_bus_dev_del(struct nsim_bus_dev *nsim_bus_dev) in nsim_bus_dev_del() argument
481 smp_store_release(&nsim_bus_dev->init, false); in nsim_bus_dev_del()
482 ida_free(&nsim_bus_dev_ids, nsim_bus_dev->dev.id); in nsim_bus_dev_del()
483 device_unregister(&nsim_bus_dev->dev); in nsim_bus_dev_del()
514 struct nsim_bus_dev *nsim_bus_dev, *tmp; in nsim_bus_exit() local
522 list_for_each_entry_safe(nsim_bus_dev, tmp, &nsim_bus_dev_list, list) { in nsim_bus_exit()
523 list_del(&nsim_bus_dev->list); in nsim_bus_exit()
524 nsim_bus_dev_del(nsim_bus_dev); in nsim_bus_exit()