Lines Matching refs:bd

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