Lines Matching refs:nsim_bus_dev
21 static struct nsim_bus_dev *to_nsim_bus_dev(struct device *dev) in to_nsim_bus_dev()
23 return container_of(dev, struct nsim_bus_dev, dev); in to_nsim_bus_dev()
30 struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); in nsim_bus_dev_numvfs_store() local
41 ret = nsim_drv_configure_vfs(nsim_bus_dev, num_vfs); in nsim_bus_dev_numvfs_store()
51 struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); in nsim_bus_dev_numvfs_show() local
53 return sprintf(buf, "%u\n", nsim_bus_dev->num_vfs); in nsim_bus_dev_numvfs_show()
64 struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); in new_port_store() local
69 if (!smp_load_acquire(&nsim_bus_dev->init)) in new_port_store()
75 ret = nsim_drv_port_add(nsim_bus_dev, NSIM_DEV_PORT_TYPE_PF, port_index); in new_port_store()
85 struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); in del_port_store() local
90 if (!smp_load_acquire(&nsim_bus_dev->init)) in del_port_store()
96 ret = nsim_drv_port_del(nsim_bus_dev, NSIM_DEV_PORT_TYPE_PF, port_index); in del_port_store()
120 struct nsim_bus_dev *nsim_bus_dev; in nsim_bus_dev_release() local
122 nsim_bus_dev = container_of(dev, struct nsim_bus_dev, dev); in nsim_bus_dev_release()
123 kfree(nsim_bus_dev); in nsim_bus_dev_release()
131 static struct nsim_bus_dev *
138 struct nsim_bus_dev *nsim_bus_dev; in new_device_store() local
167 nsim_bus_dev = nsim_bus_dev_new(id, port_count, num_queues); in new_device_store()
168 if (IS_ERR(nsim_bus_dev)) { in new_device_store()
169 err = PTR_ERR(nsim_bus_dev); in new_device_store()
174 smp_store_release(&nsim_bus_dev->init, true); in new_device_store()
176 list_add_tail(&nsim_bus_dev->list, &nsim_bus_dev_list); in new_device_store()
186 static void nsim_bus_dev_del(struct nsim_bus_dev *nsim_bus_dev);
191 struct nsim_bus_dev *nsim_bus_dev, *tmp; in del_device_store() local
215 list_for_each_entry_safe(nsim_bus_dev, tmp, &nsim_bus_dev_list, list) { in del_device_store()
216 if (nsim_bus_dev->dev.id != id) in del_device_store()
218 list_del(&nsim_bus_dev->list); in del_device_store()
219 nsim_bus_dev_del(nsim_bus_dev); in del_device_store()
237 struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); in nsim_bus_probe() local
239 return nsim_drv_probe(nsim_bus_dev); in nsim_bus_probe()
244 struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); in nsim_bus_remove() local
246 nsim_drv_remove(nsim_bus_dev); in nsim_bus_remove()
251 struct nsim_bus_dev *nsim_bus_dev = to_nsim_bus_dev(dev); in nsim_num_vf() local
253 return nsim_bus_dev->num_vfs; in nsim_num_vf()
267 static struct nsim_bus_dev *
270 struct nsim_bus_dev *nsim_bus_dev; in nsim_bus_dev_new() local
273 nsim_bus_dev = kzalloc(sizeof(*nsim_bus_dev), GFP_KERNEL); in nsim_bus_dev_new()
274 if (!nsim_bus_dev) in nsim_bus_dev_new()
280 nsim_bus_dev->dev.id = err; in nsim_bus_dev_new()
281 nsim_bus_dev->dev.bus = &nsim_bus; in nsim_bus_dev_new()
282 nsim_bus_dev->dev.type = &nsim_bus_dev_type; in nsim_bus_dev_new()
283 nsim_bus_dev->port_count = port_count; in nsim_bus_dev_new()
284 nsim_bus_dev->num_queues = num_queues; in nsim_bus_dev_new()
285 nsim_bus_dev->initial_net = current->nsproxy->net_ns; in nsim_bus_dev_new()
286 nsim_bus_dev->max_vfs = NSIM_BUS_DEV_MAX_VFS; in nsim_bus_dev_new()
288 smp_store_release(&nsim_bus_dev->init, false); in nsim_bus_dev_new()
290 err = device_register(&nsim_bus_dev->dev); in nsim_bus_dev_new()
294 return nsim_bus_dev; in nsim_bus_dev_new()
297 ida_free(&nsim_bus_dev_ids, nsim_bus_dev->dev.id); in nsim_bus_dev_new()
298 put_device(&nsim_bus_dev->dev); in nsim_bus_dev_new()
299 nsim_bus_dev = NULL; in nsim_bus_dev_new()
301 kfree(nsim_bus_dev); in nsim_bus_dev_new()
305 static void nsim_bus_dev_del(struct nsim_bus_dev *nsim_bus_dev) in nsim_bus_dev_del() argument
308 smp_store_release(&nsim_bus_dev->init, false); in nsim_bus_dev_del()
309 ida_free(&nsim_bus_dev_ids, nsim_bus_dev->dev.id); in nsim_bus_dev_del()
310 device_unregister(&nsim_bus_dev->dev); in nsim_bus_dev_del()
340 struct nsim_bus_dev *nsim_bus_dev, *tmp; in nsim_bus_exit() local
346 list_for_each_entry_safe(nsim_bus_dev, tmp, &nsim_bus_dev_list, list) { in nsim_bus_exit()
347 list_del(&nsim_bus_dev->list); in nsim_bus_exit()
348 nsim_bus_dev_del(nsim_bus_dev); in nsim_bus_exit()