linux_old1/drivers/scsi/isci
Dan Williams 0cf89d1d27 isci: cleanup "starting" state handling
The lldd actively disallows requests in the "starting" state.  Retrying
or holding off commands in this state is sub-optimal:
1/ it adds another state check to the fast path
2/ retrying can cause libsas to give up

However, isci's ->lldd_dev_found() routine already waits for controller
start to complete before allowing further progress.  Checking the
"starting" state in isci_task_execute_task and the isr is redundant and
misleading.  Clean this up and introduce a controller-wide event queue
to start reeling in "completion" proliferation in the driver.

The "stopping" state cleanups are in a similar vein, rely on the the isr
and other paths being precluded from occurring rather than implementing
state checking logic.

Reported-by: Christoph Hellwig <hch@infradead.org>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Edmund Nadolski <edmund.nadolski@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2011-07-03 03:55:27 -07:00
..
core isci: bypass scic_controller_get_handler_methods() 2011-07-03 03:55:27 -07:00
firmware
Makefile
deprecated.c isci: kill SCI_IO_REQUEST_DATA_DIRECTION 2011-07-03 00:36:31 -07:00
events.c isci: remove SCI_INVALID_HANDLE 2011-07-03 00:36:31 -07:00
host.c isci: cleanup "starting" state handling 2011-07-03 03:55:27 -07:00
host.h isci: cleanup "starting" state handling 2011-07-03 03:55:27 -07:00
init.c isci: bypass scic_controller_get_handler_methods() 2011-07-03 03:55:27 -07:00
isci.h isci: bypass scic_controller_get_handler_methods() 2011-07-03 03:55:27 -07:00
phy.c
phy.h
port.c
port.h
remote_device.c isci: cleanup "starting" state handling 2011-07-03 03:55:27 -07:00
remote_device.h
request.c isci: kill SCI_IO_REQUEST_DATA_DIRECTION 2011-07-03 00:36:31 -07:00
request.h isci: kill SCI_IO_REQUEST_DATA_DIRECTION 2011-07-03 00:36:31 -07:00
sata.c
sata.h
sci_environment.h
task.c isci: cleanup "starting" state handling 2011-07-03 03:55:27 -07:00
task.h
timers.c
timers.h