James,
could you pick up this fix, please?

Btw., it looks like others where bitten by this one:
https://nazar.karan.org/blob/distro!
parted.git/8780c767126938173f49dfbcd4360813932f7756/SOURCES!
disable-t9020.patch

Thanks,
Martin





Both start_sect and nr_sects in struct partition are __le32 and
require cpu_to_le32() on assignment.

Without this fix tools like fdisk show an invalid partition table
for SCSI devices emulated by scsi_debug on big-endian architectures,
like s390x. Besides a kernel message like this was emitted:

sda: p1 start 536870912 is beyond EOD, enabling native capacity
sda: p1 start 536870912 is beyond EOD, truncated

For verification 'xxd -l 512 /dev/sda' has been used to make sure
that this fix makes scsi_debug generated partition tables on s390x
look like the ones generated on my laptop.

Signed-off-by: Martin Peschke <mpesc...@linux.vnet.ibm.com>
Reviewed-by: Steffen Maier <ma...@linux.vnet.ibm.com>
Acked-by: Douglas Gilbert <dgilb...@interlog.com>

---
 drivers/scsi/scsi_debug.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/scsi/scsi_debug.c
+++ b/drivers/scsi/scsi_debug.c
@@ -2662,8 +2662,8 @@ static void __init sdebug_build_parts(un
                               / sdebug_sectors_per;
                pp->end_sector = (end_sec % sdebug_sectors_per) + 1;
 
-               pp->start_sect = start_sec;
-               pp->nr_sects = end_sec - start_sec + 1;
+               pp->start_sect = cpu_to_le32(start_sec);
+               pp->nr_sects = cpu_to_le32(end_sec - start_sec + 1);
                pp->sys_ind = 0x83;     /* plain Linux partition */
        }
 }


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to