mirror of
https://github.com/opnsense/src.git
synced 2026-06-09 08:43:19 -04:00
hptrr: Better error recovery
This bug and https://www.mail-archive.com/freebsd-stable@freebsd.org/msg124458.html
both have this fix. It turns unknown errors into an autosense failure, which causes
us to grab the sense buffer manually. It also sets a condition that we use to retry
timed out commands that jmg reports as being helpful.
I'm torn on committing it. The code seems fine in terms of fixing
things. But this is a 10-year-old bug with few other bugs and a short CC
list for a driver that might go away in 15 anyway. I'm going to commit
and close the bug, and MFC it in a week, unless someone complains (which
seems unliekly, given the age of this hardware, I susepct most of it is
out of service).
Suggested by: jmg, Scott Long
PR: 191135
MFC After: 1 week
Reviewed by: imp
(cherry picked from commit f52154a204)
This commit is contained in:
parent
0ea2924f81
commit
417e57b476
1 changed files with 2 additions and 2 deletions
|
|
@ -463,7 +463,7 @@ static void os_cmddone(PCOMMAND pCmd)
|
|||
ccb->ccb_h.status = CAM_BUSY;
|
||||
break;
|
||||
default:
|
||||
ccb->ccb_h.status = CAM_SCSI_STATUS_ERROR;
|
||||
ccb->ccb_h.status = CAM_AUTOSENSE_FAIL;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -557,7 +557,7 @@ static void hpt_scsi_io(PVBUS_EXT vbus_ext, union ccb *ccb)
|
|||
ccb->ccb_h.target_id >= osm_max_targets ||
|
||||
(ccb->ccb_h.flags & CAM_CDB_PHYS))
|
||||
{
|
||||
ccb->ccb_h.status = CAM_TID_INVALID;
|
||||
ccb->ccb_h.status = CAM_SEL_TIMEOUT;
|
||||
xpt_done(ccb);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue