• Darrick J. Wong's avatar
    [SCSI] aic94xx: asd_clear_nexus should fail if the cleared task does not complete · 8fdcf86a
    Darrick J. Wong authored
    Every so often, the driver will call asd_clear_nexus to clean out a task.
    It is supposed to be the case that the CLEAR NEXUS does not go on the done
    list until after the task itself has been put on the done list, but for
    some reason this doesn't always happen.  Thus, the
    wait_for_completion_timeout call times out, and we return success.  This
    makes libsas free the task even though the task hasn't completed, leading
    to a BUG_ON message from aic94xx_hwi.c around line 341.  We should return
    failure from asd_clear_nexus so that libsas tries again; at a bare minimum
    it shouldn't be freeing active tasks.  I _think_ this will fix one of
    the SCB timeout crash problems (though I've not been able to reproduce
    it lately...)
    Signed-off-by: default avatarDarrick J. Wong <djwong@us.ibm.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
    8fdcf86a
aic94xx_tmf.c 18.1 KB