mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
For parallel SCSI, let us now do status with the final CTIO. For the 1080,
I was hanging after sending a xfer CTIO and a status CTIO for a non-discon INQUIRY- the xfer CTIO was returned as completed OK, but the status CTIO was dropped on the floor. All the fields looked good. I don't know why it got dropped. But allowing status to go back with data xfer seemed to work. I also noticed that with a non-disconnecting command that the firmware handle in the ATIO is zero- this leads me to believe that the f/w really can only handle one CTIO at a time in the discon case, and it had no idea what to do with the second (status) CTIO.
This commit is contained in:
parent
290dc24b4d
commit
b72b15696c
1 changed files with 4 additions and 1 deletions
|
|
@ -1090,11 +1090,14 @@ tdma_mk(void *arg, bus_dma_segment_t *dm_segs, int nseg, int error)
|
|||
*/
|
||||
scsi_status = cto->ct_scsi_status;
|
||||
|
||||
#if 0
|
||||
sflags |= CT_NODATA;
|
||||
/*
|
||||
* We can't do a status at the same time as a data CTIO, so
|
||||
* we need to synthesize an extra CTIO at this level.
|
||||
*/
|
||||
nctios++;
|
||||
#endif
|
||||
} else {
|
||||
sflags = scsi_status = resid = 0;
|
||||
}
|
||||
|
|
@ -1169,7 +1172,7 @@ tdma_mk(void *arg, bus_dma_segment_t *dm_segs, int nseg, int error)
|
|||
|
||||
if (send_status) {
|
||||
cto->ct_scsi_status = scsi_status;
|
||||
cto->ct_flags |= sflags | CT_NO_DATA;;
|
||||
cto->ct_flags |= sflags;
|
||||
cto->ct_resid = resid;
|
||||
}
|
||||
if (send_status) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue