vscsi: send the CHECK_CONDITION status down together with autosense data

Submitted by Paolo Bonzini on Aug. 24, 2011, 3:28 p.m.

Details

Message ID 1314199732-25529-1-git-send-email-pbonzini@redhat.com
State New
Headers show

Commit Message

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(-)

Comments

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 hide | download patch | download mbox

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],