On Fri, Jan 28, 2011 at 10:24 AM, Mark Cave-Ayland mark.cave-ayland@siriusit.co.uk wrote:
On 27/01/11 19:05, Olivier DANET wrote:
Signed-off-by: Olivier Danetodanet@caramail.com
diff -rup a/drivers/esp.c b/drivers/esp.c --- a/drivers/esp.c 2011-01-27 15:11:52.000000000 +0100 +++ b/drivers/esp.c 2011-01-27 15:13:34.000000000 +0100 @@ -147,7 +147,7 @@ ob_sd_read_sector(esp_private_t *esp, sd sd->id, offset);
// Setup command = Read(10)
- memset(esp->buffer, 0, 10);
- memset(esp->buffer, 0, 11);
esp->buffer[0] = 0x80; esp->buffer[1] = READ_10;
@@ -159,7 +159,7 @@ ob_sd_read_sector(esp_private_t *esp, sd esp->buffer[8] = 0; esp->buffer[9] = 1;
- if (do_command(esp, sd, 10, sd->bs))
- if (do_command(esp, sd, 11, sd->bs))
return 0;
return 0;
Hi Olivier,
While on the surface the patch looks sensible, it's quite difficult to review this (and your associated QEMU patches) in their current form.
Could you re-submit with an extra description, describing briefly i) what symptoms did you see without the patch, ii) what does this fix with the patch applied, and iii) a document reference which verifies the command length should be 11 instead of 10.
For iii): SCSI-3 Block Commands (SBC), 6.1.5 READ(10): the number of bytes is 10 for the command itself. Before the command there is one byte for IDENTIFY (0x80), defined by SCSI Parallel Interface. Thus 11, like READ_CAPACITY below. INQUIRY is 6+1, defined in SCSI Primary Commands.