freebsd-dev/sys/dev/mps
Warner Losh e35816c1c9 mpr/mps: Fix a race in diagnostic reset
There's a small race in freezing the simq when performing a diagnostic
reset. During this time, a transaction can slip through and encounter
the target id of 0. If we're still in diagnostic reset when we detect
this, return a CAM_DEVICE_NOT_THERE status. Instead, freeze the queue
and return a requeue status, similar to what we do when we're resetting
a target and a transaction get here. The race is unavoidable due to
separate locks for queue and SIM, but easy enough to detect and make
harmless.

Sponsored by:		Netflix
Reviewed by:		scottl, mav
Differential Revision:	https://reviews.freebsd.org/D34017
2022-01-25 19:15:46 -07:00
..
mpi mps: clean up empty lines in .c and .h files 2020-09-01 22:07:00 +00:00
mps_config.c mps: clean up empty lines in .c and .h files 2020-09-01 22:07:00 +00:00
mps_ioctl.h mps: clean up empty lines in .c and .h files 2020-09-01 22:07:00 +00:00
mps_mapping.c mpr/mps(4): Make device mapping some more robust. 2021-04-23 23:36:51 -04:00
mps_mapping.h mps: clean up empty lines in .c and .h files 2020-09-01 22:07:00 +00:00
mps_pci.c Refine the busdma template interface. Provide tools for filling in fields 2020-09-14 05:58:12 +00:00
mps_sas_lsi.c Fix "set but not used" warnings in the mps driver. 2021-11-25 03:23:02 +00:00
mps_sas.c mpr/mps: Fix a race in diagnostic reset 2022-01-25 19:15:46 -07:00
mps_sas.h mpr/mps: Remove write-only flag and callout 2022-01-24 13:21:09 -07:00
mps_table.c Fix "set but not used" warnings in the mps driver. 2021-11-25 03:23:02 +00:00
mps_table.h
mps_user.c mpr, mps: Fix an off-by-one bug in the BTDH_MAPPING ioctl 2021-01-08 13:32:05 -05:00
mps.c mps/mpr: Relax doorbell polling precision. 2022-01-07 21:34:49 -05:00
mpsvar.h Fix mpr(4) and mps(4) state transitions and a use-after-free panic. 2021-06-03 13:46:11 -06:00