• Dan Williams's avatar
    isci: cleanup "starting" state handling · 0cf89d1d
    Dan Williams authored
    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: default avatarChristoph Hellwig <hch@infradead.org>
    Cc: Jeff Garzik <jeff@garzik.org>
    Signed-off-by: default avatarEdmund Nadolski <edmund.nadolski@intel.com>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    0cf89d1d
remote_device.c 20.7 KB