• Jörn Engel's avatar
    qla_target: remove qlt_check_fcport_exist · 08234e3a
    Jörn Engel authored
    Comment from original 2012 patch:
      In all our testing this function has never returned true.  However, the
      dropping of hardware_lock necessary to call this function seems to cause
      a use-after-free we manage to hit rather frequently.  Given this
      cost-benefit ratio, I'm willing to remove some 100 lines of code.
    
    And since the same problem exists around shutdown_sess and put_sess,
    this patch changes them from taking the hardware_lock to requiring the
    hardware_lock to be taken.  In most cases the caller already had the
    lock and had to drop it for the called method to reacquire it.  At best
    that hurts performance and in rare instances it causes races with fatal
    consequences.
    
    We dropped the original 2012 patch when upgrading our kernel and it took
    us nearly half a year to discover we still need it.
    
    (nab: Fix qla_tgt_sess reference in tcm_qla2xxx_put_sess)
    Signed-off-by: default avatarJoern Engel <joern@logfs.org>
    Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
    Cc: Chad Dupuis <chad.dupuis@qlogic.com>
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    08234e3a
tcm_qla2xxx.c 54.6 KB