Strange. I merely changed the two "char" to "u8". I wonder how the tab became spaces. Anyway, sorry about that, resending soon. On 22 July 2016 at 17:59, Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx> wrote: > Hello. > > > On 7/22/2016 2:29 AM, tom.ty89@xxxxxxxxx wrote: > >> From: Tom Yan <tom.ty89@xxxxxxxxx> >> >> ata_mselect_*() would initialize a char array for storing a copy of >> the current mode page. However, char could be signed char. In that >> case, bytes larger than 127 would be converted to negative number. >> >> For example, 0xff from def_control_mpage[] would become -1. This >> prevented ata_mselect_control() from working at all, since when it >> did the read-only bits check, there would always be a mismatch. >> >> Signed-off-by: Tom Yan <tom.ty89@xxxxxxxxx> >> >> diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c >> index 4a4e6f1..a28e2ea94 100644 >> --- a/drivers/ata/libata-scsi.c >> +++ b/drivers/ata/libata-scsi.c >> @@ -3610,7 +3610,7 @@ static int ata_mselect_caching(struct ata_queued_cmd >> *qc, >> { >> struct ata_taskfile *tf = &qc->tf; >> struct ata_device *dev = qc->dev; >> - char mpage[CACHE_MPAGE_LEN]; >> + u8 mpage[CACHE_MPAGE_LEN]; >> u8 wce, mask; >> int i; >> >> @@ -3668,7 +3668,7 @@ static int ata_mselect_control(struct ata_queued_cmd >> *qc, >> const u8 *buf, int len, u16 *fp) >> { >> struct ata_device *dev = qc->dev; >> - char mpage[CONTROL_MPAGE_LEN]; >> + u8 mpage[CONTROL_MPAGE_LEN]; > > > Indent with tabs please, as above. > > [...] > > MBR, Sergei > -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html