]> git.karo-electronics.de Git - karo-tx-linux.git/commit
qla_target: remove qlt_check_fcport_exist
authorJörn Engel <joern@logfs.org>
Wed, 12 Jun 2013 20:27:54 +0000 (16:27 -0400)
committerNicholas Bellinger <nab@linux-iscsi.org>
Fri, 14 Jun 2013 08:13:38 +0000 (01:13 -0700)
commit9185bc59942cf1d47f336dae99301d5b5a62fb47
treef96ba5e5b2ca7531430991c43784efedc43824a2
parentbed5146e96cddfb14630563587518c7939ea48ad
qla_target: remove qlt_check_fcport_exist

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: Joern Engel <joern@logfs.org>
Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
Cc: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/scsi/qla2xxx/qla_target.c
drivers/scsi/qla2xxx/tcm_qla2xxx.c