]> git.karo-electronics.de Git - karo-tx-linux.git/commit
libsas: enforce eh strategy handlers only in eh context
authorDan Williams <dan.j.williams@intel.com>
Tue, 31 Jan 2012 07:39:11 +0000 (23:39 -0800)
committerDan Williams <dan.j.williams@intel.com>
Fri, 13 Apr 2012 06:20:49 +0000 (23:20 -0700)
commita315604194b4dbd45cf9ff65747f6a29981e5885
tree15e48c753a61a565a44bd0b7c40c7973c9ce637a
parente81dcce46fdbb2c968d7314c2f19da3c2bba24d1
libsas: enforce eh strategy handlers only in eh context

The strategy handlers may be called in places that are problematic for
libsas (i.e. sata resets outside of domain revalidation filtering /
libata link recovery), or problematic for userspace (non-blocking ioctl
to sleeping reset functions).  However, these routines are also called
for eh escalations and recovery of scsi_eh_prep_cmnd(), so permit them
as long as we are running in the host's error handler, otherwise arrange
for them to be triggered in eh_context.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/scsi/libsas/sas_discover.c
drivers/scsi/libsas/sas_init.c
drivers/scsi/libsas/sas_scsi_host.c
include/scsi/libsas.h