1. 12 Sep, 2018 1 commit
  2. 08 May, 2018 1 commit
  3. 21 Mar, 2018 1 commit
  4. 04 Jan, 2018 2 commits
  5. 25 Aug, 2017 2 commits
  6. 11 Jul, 2017 1 commit
  7. 07 Jul, 2017 1 commit
    • Nicholas Bellinger's avatar
      qla2xxx: Fix incorrect tcm_qla2xxx_free_cmd use during TMR ABORT · 5f572526
      Nicholas Bellinger authored
      This patch drops two incorrect usages of tcm_qla2xxx_free_cmd()
      during TMR ABORT within tcm_qla2xxx_handle_data_work() and
      tcm_qla2xxx_aborted_task(), which where attempting to dispatch
      into workqueue context to do tcm_qla2xxx_complete_free() and
      subsequently invoke transport_generic_free_cmd().
      
      This is incorrect because during TMR ABORT target-core will
      drop the outstanding se_cmd->cmd_kref references once it has
      quiesced the se_cmd via transport_wait_for_tasks(), and in
      the case of qla2xxx it should not attempt to do it's own
      transport_generic_free_cmd() once the abort has occured.
      
      As reported by Pascal, this was originally manifesting as a
      BUG_ON(cmd->cmd_in_wq) in qlt_free_cmd() during TMR ABORT,
      with a LIO backend that had sufficently high enough WRITE
      latency to trigger a host side TMR ABORT_TASK.
      
      In addition, for the case in tcm_qla2xxx_write_pending_status()
      and tcm_qla2xxx_handle_data_work() that waits for outstanding
      FCP WRITE data transfer to complete before preceeding with a
      TMR ABORT, avoid se_cmd->t_transport_stop_comp that is already
      used by transport_wait_for_tasks() and use a qla2xxx internal
      struct completion instead.
      Reported-by: default avatarPascal de Bruijn <p.debruijn@unilogic.nl>
      Tested-by: default avatarPascal de Bruijn <p.debruijn@unilogic.nl>
      Acked-by: default avatarHimanshu Madhani <himanshu.madhani@cavium.com>
      Cc: Quinn Tran <quinn.tran@cavium.com>
      Cc: <stable@vger.kernel.org> # 3.10+
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      5f572526
  8. 28 Jun, 2017 8 commits
  9. 13 Jun, 2017 4 commits
  10. 19 Mar, 2017 2 commits
  11. 09 Feb, 2017 8 commits
  12. 17 Jan, 2017 1 commit
  13. 10 May, 2016 1 commit
  14. 11 Mar, 2016 1 commit
  15. 30 Jan, 2016 1 commit
  16. 07 Jan, 2016 4 commits
  17. 24 Jul, 2015 1 commit