freebsd-dev/sys/dev/mps
Stephen McConnell f4e69c98fd - No log bit in IOCStatus and endian-safe changes.
Use MPI2_IOCSTATUS_MASK when checking IOCStatus to mask off the log bit, and
make a few more things endian-safe.

- Fix possible use of invalid pointer.

It was possible to use an invalid pointer to get the target ID value. To fix
this, initialize a local Target ID variable to an invalid value and change that
variable to a valid value only if the pointer to the Target ID is not NULL.

- No need to set the MPSSAS_SHUTDOWN flag because it's never used.

- done_ccb pointer can be used if it is NULL.

To prevent this, move check for done_ccb == NULL to before done_ccb is used in
mpssas_stop_unit_done().

- Disks can go missing until a reboot is done in some cases.

This is due to the DevHandle not being released, which causes the Firmware to
not allow that disk to be re-added.

Reviewed by:	ken
Approved by:	re (gjb), ken, scottl, ambrisko (mentors)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D6872
2016-06-20 18:14:51 +00:00
..
mpi
mps_config.c - No log bit in IOCStatus and endian-safe changes. 2016-06-20 18:14:51 +00:00
mps_ioctl.h
mps_mapping.c
mps_mapping.h
mps_pci.c
mps_sas_lsi.c - No log bit in IOCStatus and endian-safe changes. 2016-06-20 18:14:51 +00:00
mps_sas.c - No log bit in IOCStatus and endian-safe changes. 2016-06-20 18:14:51 +00:00
mps_sas.h
mps_table.c
mps_table.h
mps_user.c - No log bit in IOCStatus and endian-safe changes. 2016-06-20 18:14:51 +00:00
mps.c - No log bit in IOCStatus and endian-safe changes. 2016-06-20 18:14:51 +00:00
mpsvar.h - No log bit in IOCStatus and endian-safe changes. 2016-06-20 18:14:51 +00:00