Lines Matching refs:bd

45 static unsigned int bsg_timeout(struct bsg_device *bd, struct sg_io_v4 *hdr)  in bsg_timeout()  argument
51 else if (bd->timeout) in bsg_timeout()
52 timeout = bd->timeout; in bsg_timeout()
57 static int bsg_sg_io(struct bsg_device *bd, bool open_for_write, in bsg_sg_io() argument
67 ret = bd->sg_io_fn(bd->queue, &hdr, open_for_write, in bsg_sg_io()
68 bsg_timeout(bd, &hdr)); in bsg_sg_io()
87 static int bsg_get_command_q(struct bsg_device *bd, int __user *uarg) in bsg_get_command_q() argument
89 return put_user(READ_ONCE(bd->max_queue), uarg); in bsg_get_command_q()
92 static int bsg_set_command_q(struct bsg_device *bd, int __user *uarg) in bsg_set_command_q() argument
100 WRITE_ONCE(bd->max_queue, max_queue); in bsg_set_command_q()
106 struct bsg_device *bd = to_bsg_device(file_inode(file)); in bsg_ioctl() local
107 struct request_queue *q = bd->queue; in bsg_ioctl()
117 return bsg_get_command_q(bd, uarg); in bsg_ioctl()
119 return bsg_set_command_q(bd, uarg); in bsg_ioctl()
133 bd->timeout = clock_t_to_jiffies(val); in bsg_ioctl()
136 return jiffies_to_clock_t(bd->timeout); in bsg_ioctl()
138 return put_user(min(bd->reserved_size, queue_max_bytes(q)), in bsg_ioctl()
145 bd->reserved_size = in bsg_ioctl()
151 return bsg_sg_io(bd, file->f_mode & FMODE_WRITE, uarg); in bsg_ioctl()
172 struct bsg_device *bd = container_of(dev, struct bsg_device, device); in bsg_device_release() local
174 ida_free(&bsg_minor_ida, MINOR(bd->device.devt)); in bsg_device_release()
175 kfree(bd); in bsg_device_release()
178 void bsg_unregister_queue(struct bsg_device *bd) in bsg_unregister_queue() argument
180 struct gendisk *disk = bd->queue->disk; in bsg_unregister_queue()
184 cdev_device_del(&bd->cdev, &bd->device); in bsg_unregister_queue()
185 put_device(&bd->device); in bsg_unregister_queue()
192 struct bsg_device *bd; in bsg_register_queue() local
195 bd = kzalloc(sizeof(*bd), GFP_KERNEL); in bsg_register_queue()
196 if (!bd) in bsg_register_queue()
198 bd->max_queue = BSG_DEFAULT_CMDS; in bsg_register_queue()
199 bd->reserved_size = INT_MAX; in bsg_register_queue()
200 bd->queue = q; in bsg_register_queue()
201 bd->sg_io_fn = sg_io_fn; in bsg_register_queue()
207 kfree(bd); in bsg_register_queue()
210 bd->device.devt = MKDEV(bsg_major, ret); in bsg_register_queue()
211 bd->device.class = &bsg_class; in bsg_register_queue()
212 bd->device.parent = parent; in bsg_register_queue()
213 bd->device.release = bsg_device_release; in bsg_register_queue()
214 dev_set_name(&bd->device, "%s", name); in bsg_register_queue()
215 device_initialize(&bd->device); in bsg_register_queue()
217 cdev_init(&bd->cdev, &bsg_fops); in bsg_register_queue()
218 bd->cdev.owner = THIS_MODULE; in bsg_register_queue()
219 ret = cdev_device_add(&bd->cdev, &bd->device); in bsg_register_queue()
224 ret = sysfs_create_link(&q->disk->queue_kobj, &bd->device.kobj, in bsg_register_queue()
230 return bd; in bsg_register_queue()
233 cdev_device_del(&bd->cdev, &bd->device); in bsg_register_queue()
235 put_device(&bd->device); in bsg_register_queue()