linux/drivers/scsi/libsas
Jason Yan 93bdbd06b1 scsi: libsas: Use new workqueue to run sas event and disco event
Now all libsas works are queued to scsi host workqueue, include sas
event work post by LLDD and sas discovery work, and a sas hotplug flow
may be divided into several works, e.g libsas receive a
PORTE_BYTES_DMAED event, currently we process it as following steps:

sas_form_port  --- run in work in shost workq
	sas_discover_domain  --- run in another work in shost workq
		...
		sas_probe_devices  --- run in new work in shost workq
We found during hot-add a device, libsas may need run several
works in same workqueue to add device in system, the process is
not atomic, it may interrupt by other sas event works, like
PHYE_LOSS_OF_SIGNAL.

This patch is preparation of execute libsas sas event in sync. We need
to use different workqueue to run sas event and disco event. Otherwise
the work will be blocked for waiting another chained work in the same
workqueue.

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
CC: John Garry <john.garry@huawei.com>
CC: Johannes Thumshirn <jthumshirn@suse.de>
CC: Ewan Milne <emilne@redhat.com>
CC: Christoph Hellwig <hch@lst.de>
CC: Tomas Henzl <thenzl@redhat.com>
CC: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Jason Yan <yanaijie@huawei.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2018-01-08 21:59:28 -05:00
..
Kconfig scsi: scsi_transport_sas: switch to bsg-lib for SMP passthrough 2017-08-29 21:51:45 -04:00
Makefile
sas_ata.c scsi: libsas: Annotate fall-through in a switch statement 2017-08-25 17:08:08 -04:00
sas_discover.c scsi: libsas: Use new workqueue to run sas event and disco event 2018-01-08 21:59:28 -05:00
sas_dump.c scsi: libsas: kill useless ha_event and do some cleanup 2017-09-15 21:32:58 -04:00
sas_dump.h scsi: libsas: kill useless ha_event and do some cleanup 2017-09-15 21:32:58 -04:00
sas_event.c scsi: libsas: Use new workqueue to run sas event and disco event 2018-01-08 21:59:28 -05:00
sas_expander.c scsi: libsas: initialize sas_phy status according to response of DISCOVER 2018-01-08 21:43:05 -05:00
sas_host_smp.c scsi: scsi_transport_sas: switch to bsg-lib for SMP passthrough 2017-08-29 21:51:45 -04:00
sas_init.c scsi: libsas: Use new workqueue to run sas event and disco event 2018-01-08 21:59:28 -05:00
sas_internal.h scsi: libsas: Use dynamic alloced work to avoid sas event lost 2018-01-08 21:59:28 -05:00
sas_phy.c scsi: libsas: shut down the PHY if events reached the threshold 2018-01-08 21:59:28 -05:00
sas_port.c scsi: libsas: Use dynamic alloced work to avoid sas event lost 2018-01-08 21:59:28 -05:00
sas_scsi_host.c scsi: libsas: remove private hex2bin() implementation 2018-01-03 22:40:52 -05:00
sas_task.c