Commit 69387403 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe

sx8: use blk_mq_alloc_disk and blk_cleanup_disk

Use blk_mq_alloc_disk and blk_cleanup_disk to simplify the gendisk and
request_queue allocation.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Link: https://lore.kernel.org/r/20210602065345.355274-25-hch@lst.deSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 2c6ee0ae
...@@ -1343,32 +1343,25 @@ static int carm_init_disk(struct carm_host *host, unsigned int port_no) ...@@ -1343,32 +1343,25 @@ static int carm_init_disk(struct carm_host *host, unsigned int port_no)
{ {
struct carm_port *port = &host->port[port_no]; struct carm_port *port = &host->port[port_no];
struct gendisk *disk; struct gendisk *disk;
struct request_queue *q;
port->host = host; port->host = host;
port->port_no = port_no; port->port_no = port_no;
disk = alloc_disk(CARM_MINORS_PER_MAJOR); disk = blk_mq_alloc_disk(&host->tag_set, port);
if (!disk) if (IS_ERR(disk))
return -ENOMEM; return PTR_ERR(disk);
port->disk = disk; port->disk = disk;
sprintf(disk->disk_name, DRV_NAME "/%u", sprintf(disk->disk_name, DRV_NAME "/%u",
(unsigned int)host->id * CARM_MAX_PORTS + port_no); (unsigned int)host->id * CARM_MAX_PORTS + port_no);
disk->major = host->major; disk->major = host->major;
disk->first_minor = port_no * CARM_MINORS_PER_MAJOR; disk->first_minor = port_no * CARM_MINORS_PER_MAJOR;
disk->minors = CARM_MINORS_PER_MAJOR;
disk->fops = &carm_bd_ops; disk->fops = &carm_bd_ops;
disk->private_data = port; disk->private_data = port;
q = blk_mq_init_queue(&host->tag_set); blk_queue_max_segments(disk->queue, CARM_MAX_REQ_SG);
if (IS_ERR(q)) blk_queue_segment_boundary(disk->queue, CARM_SG_BOUNDARY);
return PTR_ERR(q);
blk_queue_max_segments(q, CARM_MAX_REQ_SG);
blk_queue_segment_boundary(q, CARM_SG_BOUNDARY);
q->queuedata = port;
disk->queue = q;
return 0; return 0;
} }
...@@ -1382,9 +1375,7 @@ static void carm_free_disk(struct carm_host *host, unsigned int port_no) ...@@ -1382,9 +1375,7 @@ static void carm_free_disk(struct carm_host *host, unsigned int port_no)
if (disk->flags & GENHD_FL_UP) if (disk->flags & GENHD_FL_UP)
del_gendisk(disk); del_gendisk(disk);
if (disk->queue) blk_cleanup_disk(disk);
blk_cleanup_queue(disk->queue);
put_disk(disk);
} }
static int carm_init_shm(struct carm_host *host) static int carm_init_shm(struct carm_host *host)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment