Lines Matching refs:bcd
286 struct bsg_class_device *bcd; in bsg_get_device() local
292 bcd = idr_find(&bsg_minor_idr, iminor(inode)); in bsg_get_device()
294 if (!bcd) { in bsg_get_device()
299 bd = __bsg_get_device(iminor(inode), bcd->queue); in bsg_get_device()
301 bd = bsg_add_device(inode, bcd->queue, file); in bsg_get_device()
397 struct bsg_class_device *bcd = &q->bsg_dev; in bsg_unregister_queue() local
399 if (!bcd->class_dev) in bsg_unregister_queue()
403 idr_remove(&bsg_minor_idr, bcd->minor); in bsg_unregister_queue()
406 device_unregister(bcd->class_dev); in bsg_unregister_queue()
407 bcd->class_dev = NULL; in bsg_unregister_queue()
415 struct bsg_class_device *bcd; in bsg_register_queue() local
426 bcd = &q->bsg_dev; in bsg_register_queue()
427 memset(bcd, 0, sizeof(*bcd)); in bsg_register_queue()
431 ret = idr_alloc(&bsg_minor_idr, bcd, 0, BSG_MAX_DEVS, GFP_KERNEL); in bsg_register_queue()
440 bcd->minor = ret; in bsg_register_queue()
441 bcd->queue = q; in bsg_register_queue()
442 bcd->ops = ops; in bsg_register_queue()
443 dev = MKDEV(bsg_major, bcd->minor); in bsg_register_queue()
449 bcd->class_dev = class_dev; in bsg_register_queue()
452 ret = sysfs_create_link(&q->kobj, &bcd->class_dev->kobj, "bsg"); in bsg_register_queue()
463 idr_remove(&bsg_minor_idr, bcd->minor); in bsg_register_queue()