All of lore.kernel.org
 help / color / mirror / Atom feed
From: Douglas Gilbert <dgilbert@interlog.com>
To: Martin Peschke <mpeschke@linux.vnet.ibm.com>
Cc: linux-scsi <linux-scsi@vger.kernel.org>
Subject: Re: [PATCH] scsi_debug: Fix endianess in partition table
Date: Tue, 12 Feb 2013 09:45:29 -0500	[thread overview]
Message-ID: <511A5589.1060709@interlog.com> (raw)
In-Reply-To: <1360659837.11990.9.camel@br8ggx07.de.ibm.com>

On 13-02-12 04:03 AM, Martin Peschke wrote:
> On Mon, 2013-02-11 at 18:34 +0100, Martin Peschke wrote:
>> Both start_sect and nr_sects in struct partition are __le32 and
>> require cpu_to_le32() on assignment.
>
> Steffen Maier has pointed me at:
>
> block/partitions/msdos.c:	return
> (sector_t)get_unaligned_le32(&p->start_sect);
>
> Unfortunately, both get_unaligned_le32() and le32_to_cpu() appear to be
> in use for start_sect and nr_sects.
>
> Any one who would argue for changing my patch from cpu_to_le32 to
> put_unaligned_le32()?

No (because I don't know). However since SCSI is big
endian and you are introducing some "le" code then a line
or so of explanation (comments) in your revised patch might
be helpful.


BTW Finding a big endian architecture to test this patch on is
not easy. The openwrt in my router is big endian (MIPS) but
openwrt don't distribute the scsi_debug module :-(

Doug Gilbert

>> 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 <mpeschke@linux.vnet.ibm.com>
>> Reviewed-by: Steffen Maier <maier@linux.vnet.ibm.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 majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>


  reply	other threads:[~2013-02-12 14:45 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-11 17:34 [PATCH] scsi_debug: Fix endianess in partition table Martin Peschke
2013-02-12  9:03 ` Martin Peschke
2013-02-12 14:45   ` Douglas Gilbert [this message]
2013-02-13 15:16     ` Martin Peschke
2013-02-13 20:08 ` Douglas Gilbert
  -- strict thread matches above, loose matches on Subject: below --
2013-02-15 12:30 Martin Peschke

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=511A5589.1060709@interlog.com \
    --to=dgilbert@interlog.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=mpeschke@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.