freebsd-dev/sys/dev/isp
Will Andrews 35d002dc8f Fix SCSI status byte reporting on 4Gb and 8Gb Qlogic boards.
The newer boards don't have the response field that indicates
whether the SCSI status byte is present.  You have to just look to
see whether it is non-zero.

The code was looking to see whether the sense length was valid
before propagating the SCSI status byte (and sense information) up
the stack.  With a status like Reservation Conflict, there is no
sense information, only the SCSI status byte.  So it wasn't getting
correctly returned.

isp.c:
	In isp_intr(), if we are on a 2400 or 2500 type board and
	get a response, look at the actual contents of the
	SCSI status value and set the RQSF_GOT_STATUS flag
	accordingly so that return any SCSI status value we get.  The
	RQSF_GOT_SENSE flag will get set later on if there is
	actual sense information returned.

Submitted by:	ken
MFC after:	1 week
Sponsored by:	Spectra Logic
MFSpectraBSD:	1112791 on 2015/01/15
2015-01-21 20:32:36 +00:00
..
DriverManual.txt
Hardware.txt
isp_freebsd.c Force commit to record the correct log for r277513. 2015-01-21 20:27:11 +00:00
isp_freebsd.h Fix Fibre Channel Command Reference Number handling in the isp(4) driver. 2015-01-08 17:41:28 +00:00
isp_ioctl.h
isp_library.c Make isp_find_pdb_by_*() search for targets in portdb in reverse order. 2014-11-26 12:25:00 +00:00
isp_library.h
isp_pci.c Add missing calls to bus_dmamap_unload() when freeing static DMA 2014-06-13 18:20:44 +00:00
isp_sbus.c
isp_stds.h
isp_target.c
isp_target.h
isp.c Fix SCSI status byte reporting on 4Gb and 8Gb Qlogic boards. 2015-01-21 20:32:36 +00:00
ispmbox.h Use the C99 flexible array construct to denote a variable amount of 2014-10-13 16:23:58 +00:00
ispreg.h
ispvar.h Close a race in the isp(4) driver that caused devices to disappear 2015-01-08 17:51:12 +00:00