• Finn Thain's avatar
    ncr5380: Correctly clear command pointers and lists after bus reset · 1884c283
    Finn Thain authored
    Commands subject to exception handling are to be returned to the scsi
    mid-layer. Make sure that the various command pointers and command lists
    in the low-level driver are correctly cleansed of affected commands.
    
    This fixes some bugs that I accidentally introduced in v4.5-rc1 including
    the removal of INIT_LIST_HEAD for the 'autosense' and 'disconnected'
    command lists, and the possible NULL pointer dereference in
    NCR5380_bus_reset() that was reported by Dan Carpenter.
    
    hostdata->sensing may also point to an affected command so this pointer
    also has to be cleared. The abort handler calls complete_cmd() to take
    care of this; let's have the bus reset handler do the same.
    
    The issue queue may also contain an affected command. If so, remove it.
    This also follows the abort handler logic.
    Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
    Fixes: 62717f53 ("ncr5380: Implement new eh_bus_reset_handler")
    Tested-by: default avatarMichael Schmitz <schmitzmic@gmail.com>
    Cc: <stable@vger.kernel.org> # 4.5
    Signed-off-by: default avatarFinn Thain <fthain@telegraphics.com.au>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    1884c283
atari_NCR5380.c 78.8 KB