gdrom: pass queue_limits to blk_mq_alloc_disk
authorChristoph Hellwig <hch@lst.de>
Thu, 15 Feb 2024 07:02:53 +0000 (08:02 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 19 Feb 2024 23:59:31 +0000 (16:59 -0700)
Pass the few limits gdrom imposes directly to blk_mq_alloc_disk instead
of setting them one at a time.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20240215070300.2200308-11-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/cdrom/gdrom.c

index 1d044779f5e42a9d126a28caaa2c20c53b4c76f2..9398beeb5d1e895b63aa9f1cc5d91439963620b8 100644 (file)
@@ -724,11 +724,6 @@ static void probe_gdrom_setupdisk(void)
 
 static int probe_gdrom_setupqueue(void)
 {
-       blk_queue_logical_block_size(gd.gdrom_rq, GDROM_HARD_SECTOR);
-       /* using DMA so memory will need to be contiguous */
-       blk_queue_max_segments(gd.gdrom_rq, 1);
-       /* set a large max size to get most from DMA */
-       blk_queue_max_segment_size(gd.gdrom_rq, 0x40000);
        gd.disk->queue = gd.gdrom_rq;
        return gdrom_init_dma_mode();
 }
@@ -743,6 +738,13 @@ static const struct blk_mq_ops gdrom_mq_ops = {
  */
 static int probe_gdrom(struct platform_device *devptr)
 {
+       struct queue_limits lim = {
+               .logical_block_size             = GDROM_HARD_SECTOR,
+               /* using DMA so memory will need to be contiguous */
+               .max_segments                   = 1,
+               /* set a large max size to get most from DMA */
+               .max_segment_size               = 0x40000,
+       };
        int err;
 
        /*
@@ -778,7 +780,7 @@ static int probe_gdrom(struct platform_device *devptr)
        if (err)
                goto probe_fail_free_cd_info;
 
-       gd.disk = blk_mq_alloc_disk(&gd.tag_set, NULL, NULL);
+       gd.disk = blk_mq_alloc_disk(&gd.tag_set, &lim, NULL);
        if (IS_ERR(gd.disk)) {
                err = PTR_ERR(gd.disk);
                goto probe_fail_free_tag_set;