• Kleber Sacilotto de Souza's avatar
    [SCSI] ipr: fix eeh recovery for 64-bit adapters · a92fa25c
    Kleber Sacilotto de Souza authored
    In some scenarios, an EEH error can take a long time to be detected, since the
    driver issues an MMIO read only after a device reset command times out and we
    try to reset the adapter. This patch adds some code in ipr_cancel_op() to read
    a hardware register so we detect the error earlier in case the op is being
    aborted because of a timeout caused by a frozen adapter slot.
    
    Another problem in such scenarios is that in __ipr_eh_host_reset() we change the
    dump state flag from WAIT_FOR_DUMP to GET_DUMP, and the flag is later changed
    from GET_DUMP to READ_DUMP in ipr_reset_restore_cfg_space(). However, if when
    __ipr_eh_host_reset() is called by the SCSI error handling the function
    ipr_reset_restore_cfg_space() has already been called by the PCI EEH code, we
    end up with the flag in an inconsistent state. This patch also prevents this
    problem.
    Signed-off-by: default avatarKleber Sacilotto de Souza <klebers@linux.vnet.ibm.com>
    Acked-by: default avatarBrian King <brking@linux.vnet.ibm.com>
    Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
    a92fa25c
ipr.c 258 KB