Patchwork vscsi: send the CHECK_CONDITION status down together with autosense data

login
register
mail settings
Submitter Paolo Bonzini
Date Aug. 24, 2011, 3:28 p.m.
Message ID <1314199732-25529-1-git-send-email-pbonzini@redhat.com>
Download mbox | patch
Permalink /patch/111378/
State New
Headers show

Comments

Paolo Bonzini - Aug. 24, 2011, 3:28 p.m.
I introduced this bug in commit 05751d3 (vscsi: always use get_sense,
2011-08-03) because at the time there was no way to expose a sense
condition to SLOF and Linux manages to work around the bug.  However,
the bug becomes evident now that SCSI devices also report unit
attention on reset.

SLOF also has problems dealing with unit attention conditions, so
it still will not boot even with this fix (just like OpenBIOS).
IBM folks are aware of their part of the bug. :-)

Reported-by: Thomas Huth <thuth@linux.vnet.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/spapr_vscsi.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
Alexander Graf - Aug. 24, 2011, 9:41 p.m.
On 24.08.2011, at 10:28, Paolo Bonzini wrote:

> I introduced this bug in commit 05751d3 (vscsi: always use get_sense,
> 2011-08-03) because at the time there was no way to expose a sense
> condition to SLOF and Linux manages to work around the bug.  However,
> the bug becomes evident now that SCSI devices also report unit
> attention on reset.
> 
> SLOF also has problems dealing with unit attention conditions, so
> it still will not boot even with this fix (just like OpenBIOS).
> IBM folks are aware of their part of the bug. :-)

David, please ack.


Alex
David Gibson - Aug. 25, 2011, 1:18 a.m.
On Wed, Aug 24, 2011 at 05:28:52PM +0200, Paolo Bonzini wrote:
> I introduced this bug in commit 05751d3 (vscsi: always use get_sense,
> 2011-08-03) because at the time there was no way to expose a sense
> condition to SLOF and Linux manages to work around the bug.  However,
> the bug becomes evident now that SCSI devices also report unit
> attention on reset.
> 
> SLOF also has problems dealing with unit attention conditions, so
> it still will not boot even with this fix (just like OpenBIOS).
> IBM folks are aware of their part of the bug. :-)
> 
> Reported-by: Thomas Huth <thuth@linux.vnet.ibm.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Acked-by: David Gibson <david@gibson.dropbear.id.au>

With both this, and the SLOF update from Thomas, we can boot again.
David Gibson - Aug. 25, 2011, 2:23 a.m.
On Wed, Aug 24, 2011 at 04:41:34PM -0500, Alexander Graf wrote:
> 
> On 24.08.2011, at 10:28, Paolo Bonzini wrote:
> 
> > I introduced this bug in commit 05751d3 (vscsi: always use get_sense,
> > 2011-08-03) because at the time there was no way to expose a sense
> > condition to SLOF and Linux manages to work around the bug.  However,
> > the bug becomes evident now that SCSI devices also report unit
> > attention on reset.
> > 
> > SLOF also has problems dealing with unit attention conditions, so
> > it still will not boot even with this fix (just like OpenBIOS).
> > IBM folks are aware of their part of the bug. :-)
> 
> David, please ack.

Done.

We also need to get the updated SLOF into place, I can't remember how
we sent commits involving binary blobs previously.
Alexander Graf - Aug. 25, 2011, 2:56 a.m.
On 24.08.2011, at 21:23, David Gibson wrote:

> On Wed, Aug 24, 2011 at 04:41:34PM -0500, Alexander Graf wrote:
>> 
>> On 24.08.2011, at 10:28, Paolo Bonzini wrote:
>> 
>>> I introduced this bug in commit 05751d3 (vscsi: always use get_sense,
>>> 2011-08-03) because at the time there was no way to expose a sense
>>> condition to SLOF and Linux manages to work around the bug.  However,
>>> the bug becomes evident now that SCSI devices also report unit
>>> attention on reset.
>>> 
>>> SLOF also has problems dealing with unit attention conditions, so
>>> it still will not boot even with this fix (just like OpenBIOS).
>>> IBM folks are aware of their part of the bug. :-)
>> 
>> David, please ack.
> 
> Done.
> 
> We also need to get the updated SLOF into place, I can't remember how
> we sent commits involving binary blobs previously.

git-format-patch should spit out a git binary diff just fine :)


Alex

Patch

diff --git a/hw/spapr_vscsi.c b/hw/spapr_vscsi.c
index fc9ac6a..ee6f6bf 100644
--- a/hw/spapr_vscsi.c
+++ b/hw/spapr_vscsi.c
@@ -483,7 +483,6 @@  static void vscsi_command_complete(SCSIRequest *sreq, uint32_t status)
     if (status == CHECK_CONDITION) {
         req->senselen = scsi_req_get_sense(req->sreq, req->sense,
                                            sizeof(req->sense));
-        status = 0;
         dprintf("VSCSI: Sense data, %d bytes:\n", len);
         dprintf("       %02x  %02x  %02x  %02x  %02x  %02x  %02x  %02x\n",
                 req->sense[0], req->sense[1], req->sense[2], req->sense[3],