• Viacheslav Dubeyko's avatar
    scsi: qla2xxx: Fix failure message in qlt_disable_vha() · 6b3d16f9
    Viacheslav Dubeyko authored
    The following sequence of commands result in an incorrect failure message
    being printed:
    
    echo 0x7fffffff > /sys/module/qla2xxx/parameters/logging
    modprobe target_core_mod
    modprobe tcm_qla2xxx
    mkdir /sys/kernel/config/target/qla2xxx
    mkdir /sys/kernel/config/target/qla2xxx/<port-name>
    mkdir /sys/kernel/config/target/qla2xxx/<port-name>/tpgt_1
    echo 1 > /sys/kernel/config/target/qla2xxx/<port-name>/tpgt_1/enable
    echo 0 > /sys/kernel/config/target/qla2xxx/<port-name>/tpgt_1/enable
    
    qla2xxx [0001:00:02.0]-e881:1: qla2x00_wait_for_hba_online() failed
    
    The reason of this message is the QLA_FUNCTION_FAILED code that
    qla2x00_wait_for_hba_online() returns. However, qlt_disable_vha() expects
    that adapter is offlined and QLA_FUNCTION_FAILED informs about the offline
    state of the adapter.
    
    The qla2x00_abort_isp() function finishes the execution at the point of
    checking the adapter's mode (for example, qla_tgt_mode_enabled()) because
    of the qlt_disable_vha() calls qlt_clear_mode() method. It means that
    qla2x00_abort_isp() keeps vha->flags.online is equal to zero. Finally,
    qla2x00_wait_for_hba_online() checks the state of this flag and returns
    QLA_FUNCTION_FAILED error code.
    
    This patch changes the failure message which informs about adapter's
    offline state.
    
    Link: https://lore.kernel.org/r/3cd0bbf3599c53b0c2a7184582d705d8b8052c8b.camel@yadro.comReviewed-by: default avatarRoman Bolshakov <r.bolshakov@yadro.com>
    Reviewed-by: default avatarHimanshu Madhani <himanshu.madhani@oracle.com>
    Signed-off-by: default avatarViacheslav Dubeyko <v.dubeiko@yadro.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    6b3d16f9
qla_target.c 196 KB