Merge tag 'mm-nonmm-stable-2024-03-14-09-36' of git://git.kernel.org/pub/scm/linux...
[sfrench/cifs-2.6.git] / drivers / block / sunvdc.c
index 9105d7ec671da214c26c265c7f5468e82f2446a1..5286cb8e0824d11cbe1135c892be1556ce7fee77 100644 (file)
@@ -784,6 +784,14 @@ static const struct blk_mq_ops vdc_mq_ops = {
 
 static int probe_disk(struct vdc_port *port)
 {
+       struct queue_limits lim = {
+               .physical_block_size            = port->vdisk_phys_blksz,
+               .max_hw_sectors                 = port->max_xfer_size,
+               /* Each segment in a request is up to an aligned page in size. */
+               .seg_boundary_mask              = PAGE_SIZE - 1,
+               .max_segment_size               = PAGE_SIZE,
+               .max_segments                   = port->ring_cookies,
+       };
        struct request_queue *q;
        struct gendisk *g;
        int err;
@@ -824,7 +832,7 @@ static int probe_disk(struct vdc_port *port)
        if (err)
                return err;
 
-       g = blk_mq_alloc_disk(&port->tag_set, port);
+       g = blk_mq_alloc_disk(&port->tag_set, &lim, port);
        if (IS_ERR(g)) {
                printk(KERN_ERR PFX "%s: Could not allocate gendisk.\n",
                       port->vio.name);
@@ -835,12 +843,6 @@ static int probe_disk(struct vdc_port *port)
        port->disk = g;
        q = g->queue;
 
-       /* Each segment in a request is up to an aligned page in size. */
-       blk_queue_segment_boundary(q, PAGE_SIZE - 1);
-       blk_queue_max_segment_size(q, PAGE_SIZE);
-
-       blk_queue_max_segments(q, port->ring_cookies);
-       blk_queue_max_hw_sectors(q, port->max_xfer_size);
        g->major = vdc_major;
        g->first_minor = port->vio.vdev->dev_no << PARTITION_SHIFT;
        g->minors = 1 << PARTITION_SHIFT;
@@ -872,8 +874,6 @@ static int probe_disk(struct vdc_port *port)
                }
        }
 
-       blk_queue_physical_block_size(q, port->vdisk_phys_blksz);
-
        pr_info(PFX "%s: %u sectors (%u MB) protocol %d.%d\n",
               g->disk_name,
               port->vdisk_size, (port->vdisk_size >> (20 - 9)),