freebsd-dev/sys/dev/mpr
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
mpr_config.c
mpr_ioctl.h
mpr_mapping.c mpr/mps(4): Make device mapping some more robust. 2021-04-23 23:36:51 -04:00
mpr_mapping.h
mpr_pci.c
mpr_sas_lsi.c Fix "set but not used" warnings in the mpr driver. This fixes a minor 2021-11-25 03:28:29 +00:00
mpr_sas.c mpr/mps: Fix a race in diagnostic reset 2022-01-25 19:15:46 -07:00
mpr_sas.h mpr/mps: Remove write-only flag and callout 2022-01-24 13:21:09 -07:00
mpr_table.c Fix "set but not used" warnings in the mpr driver. This fixes a minor 2021-11-25 03:28:29 +00:00
mpr_table.h
mpr_user.c
mpr.c mps/mpr: Relax doorbell polling precision. 2022-01-07 21:34:49 -05:00
mprvar.h mpr(4): Handle mprsas_alloc_tm() errors on device removal. 2021-08-20 10:03:32 -04:00