Thread (11 messages) 11 messages, 6 authors, 2025-06-21

Re: [PATCH] scsi: storvsc: set max_segment_size as UINT_MAX explicitly

From: Laurence Oberman <hidden>
Date: 2025-06-21 00:12:21
Also in: linux-scsi

On Tue, 2025-06-17 at 07:02 +0200, Christoph Hellwig wrote:
quoted hunk ↗ jump to hunk
Please try this proper fix instead:
diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
index e021f1106bea..09f5fb5b2fb1 100644
--- a/drivers/scsi/hosts.c
+++ b/drivers/scsi/hosts.c
@@ -473,7 +473,9 @@ struct Scsi_Host *scsi_host_alloc(const struct
scsi_host_template *sht, int priv
        else
                shost->max_sectors = SCSI_DEFAULT_MAX_SECTORS;
 
-       if (sht->max_segment_size)
+       if (sht->virt_boundary_mask)
+               shost->virt_boundary_mask = sht->virt_boundary_mask;
+       else if (sht->max_segment_size)
                shost->max_segment_size = sht->max_segment_size;
        else
                shost->max_segment_size = BLK_MAX_SEGMENT_SIZE;
@@ -492,9 +494,6 @@ struct Scsi_Host *scsi_host_alloc(const struct
scsi_host_template *sht, int priv
        else
                shost->dma_boundary = 0xffffffff;
 
-       if (sht->virt_boundary_mask)
-               shost->virt_boundary_mask = sht->virt_boundary_mask;
-
        device_initialize(&shost->shost_gendev);
        dev_set_name(&shost->shost_gendev, "host%d", shost->host_no);
        shost->shost_gendev.bus = &scsi_bus_type;
Hello

Not sure what you folks will decide as the final fix but Christoph's
patch prevents the REDO corruption as well.
Ran it long enough to know its clean from corruption with this patch
above

Tested-by: Laurence Oberman <redacted>

Thanks vey mauch as always folks

Regards
Laurence



Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help