Lines Matching refs:bcd
284 struct bsg_class_device *bcd; in bsg_get_device() local
290 bcd = idr_find(&bsg_minor_idr, iminor(inode)); in bsg_get_device()
292 if (!bcd) { in bsg_get_device()
297 bd = __bsg_get_device(iminor(inode), bcd->queue); in bsg_get_device()
299 bd = bsg_add_device(inode, bcd->queue, file); in bsg_get_device()
392 struct bsg_class_device *bcd = &q->bsg_dev; in bsg_unregister_queue() local
394 if (!bcd->class_dev) in bsg_unregister_queue()
398 idr_remove(&bsg_minor_idr, bcd->minor); in bsg_unregister_queue()
401 device_unregister(bcd->class_dev); in bsg_unregister_queue()
402 bcd->class_dev = NULL; in bsg_unregister_queue()
410 struct bsg_class_device *bcd; in bsg_register_queue() local
421 bcd = &q->bsg_dev; in bsg_register_queue()
422 memset(bcd, 0, sizeof(*bcd)); in bsg_register_queue()
426 ret = idr_alloc(&bsg_minor_idr, bcd, 0, BSG_MAX_DEVS, GFP_KERNEL); in bsg_register_queue()
435 bcd->minor = ret; in bsg_register_queue()
436 bcd->queue = q; in bsg_register_queue()
437 bcd->ops = ops; in bsg_register_queue()
438 dev = MKDEV(bsg_major, bcd->minor); in bsg_register_queue()
444 bcd->class_dev = class_dev; in bsg_register_queue()
447 ret = sysfs_create_link(&q->kobj, &bcd->class_dev->kobj, "bsg"); in bsg_register_queue()
458 idr_remove(&bsg_minor_idr, bcd->minor); in bsg_register_queue()