1. 27 10月, 2012 1 次提交
    • R
      qla2xxx: Update target lookup session tables when a target session changes · c8292d1d
      Roland Dreier 提交于
      It is possible for the target code to change the loop_id or s_id of a
      target session in reaction to an FC fabric change.  However, the
      session structures are stored in tables that are indexed by these two
      keys, and if we just change the session structure but leave the
      pointers to it in the old places in the table, havoc can ensue.  For
      example, a new session might come along that should go in the old slot
      in the table and overwrite the old session pointer.
      
      To handle this, add a new tgt_ops->update_sess() method that also
      updates the "by loop_id" and "by s_id" lookup tables when a session
      changes, so that the keys where a session pointer is stored in these
      tables always matches the keys in the session structure itself.
      
      (nab: Drop unnecessary double inversion with FCF_CONF_COMP_SUPPORTED
            usage)
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      Cc: Chad Dupuis <chad.dupuis@qlogic.com>
      Cc: Arun Easi <arun.easi@qlogic.com>
      Cc: Saurav Kashyap <saurav.kashyap@qlogic.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      c8292d1d
  2. 23 9月, 2012 1 次提交
  3. 21 8月, 2012 1 次提交
    • T
      workqueue: deprecate flush[_delayed]_work_sync() · 43829731
      Tejun Heo 提交于
      flush[_delayed]_work_sync() are now spurious.  Mark them deprecated
      and convert all users to flush[_delayed]_work().
      
      If you're cc'd and wondering what's going on: Now all workqueues are
      non-reentrant and the regular flushes guarantee that the work item is
      not pending or running on any CPU on return, so there's no reason to
      use the sync flushes at all and they're going away.
      
      This patch doesn't make any functional difference.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Ian Campbell <ian.campbell@citrix.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Mattia Dongili <malattia@linux.it>
      Cc: Kent Yoder <key@linux.vnet.ibm.com>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Jiri Kosina <jkosina@suse.cz>
      Cc: Karsten Keil <isdn@linux-pingi.de>
      Cc: Bryan Wu <bryan.wu@canonical.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Alasdair Kergon <agk@redhat.com>
      Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: linux-wireless@vger.kernel.org
      Cc: Anton Vorontsov <cbou@mail.ru>
      Cc: Sangbeom Kim <sbkim73@samsung.com>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Eric Van Hensbergen <ericvh@gmail.com>
      Cc: Takashi Iwai <tiwai@suse.de>
      Cc: Steven Whitehouse <swhiteho@redhat.com>
      Cc: Petr Vandrovec <petr@vandrovec.name>
      Cc: Mark Fasheh <mfasheh@suse.com>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Avi Kivity <avi@redhat.com> 
      43829731
  4. 17 7月, 2012 2 次提交
  5. 07 7月, 2012 1 次提交
    • A
      qla2xxx: print the right array elements in qlt_async_event · 4f1d0f19
      Alan Cox 提交于
      Based upon Alan's patch from Coverity scan id 793583, these debug
      messages in qlt_async_event() should be starting from byte 0, which is
      always the Asynchronous Event Status Code from the parent switch statement.
      
      Also, rename reason_code -> login_code following the language used in
      2500 FW spec for Port Database Changed (0x8014) -> Port Database Changed
      Event Mailbox Register for mailbox[2].
      Signed-off-by: NAlan Cox <alan@linux.intel.com>
      Cc: Chad Dupuis <chad.dupuis@qlogic.com>
      Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      4f1d0f19
  6. 13 6月, 2012 3 次提交
  7. 22 5月, 2012 1 次提交
    • N
      [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series · 2d70c103
      Nicholas Bellinger 提交于
      Add LLD target mode for >= 24xx series HW.  This code was originally based on
      external qla2x00t module based on 8.02.01-k4, and has been refactored to
      push the bulk of code into mainline qla2xxx.ko LLD -> qla_target.c.
      
      The implementation uses internal workqueues for I/O context submission
      into tcm_qla2xxx code, and includes the struct qla_tgt_func_tmpl API for
      external interaction to allow qla2xxx LDD to function without direct
      target-core dependencies:
      
      It also enables qla_target.c usage within existing qla2xxx LLD code.
      This includes:
      
      *) Addition of target mode specific members to existing data
      structures in qla_def.h and struct qla_hw_data->tgt_ops using
      qla_target.h:struct qla_tgt_func_tmpl
      
      *) Addition of struct qla_tgt_func_tmpl and direct calls into
      qla_target.c logic w/ qlt_* prefixed functions.
      
      *) Addition of qla_iocb.c:qla2x00_req_pkt() for ring processing, and
      qla2x00_issue_marker() for handling request/response queue processing
      for target mode operation
      
      *) Addition of various qla_tgt_mode_enabled() logic checks in
      qla24xx_nvram_config(), qla2x00_initialize_adapter(), qla2x00_rff_id(),
      qla2x00_abort_isp(), qla24xx_modify_vp_config(), and
      qla2x00_vp_abort_isp().
      
      By default the new qlini_mode module parameter is setting initiator-mode
      to 'enabled' in order for 'modprobe qla2xxx' to continue to function as
      expected in initiator only mode.  Enabling target-mode operation will
      currently require a:
      
          modprobe qla2xxx qlini_mode="disabled"
      
      in order to explictly disabled initiator mode and allow target-mode
      to be enabled via tcm_qla2xxx configfs fabric callers.
      
      (nab: Convert to qlini_mode='enabled' by default in qla_target.c)
      (joern: Remove loop_id from qla_tgt_make_local_sess() arguments +
              Remove unused s_id + fix s_id endianness bug +
              simplify qla_tgt_abort_work)
      (gerard: fix section __exit mismatch in qla_tgt_exit)
      (arun: Capture ATIO queue during firmware dump + Send SCR in target mode +
             Target mode review comments)
      (roland: Don't create duplicate target sessions to address tearing down
               ACLs with IO in flight + Add missing call to qlt_fc_port_deleted
      	 call during qla2x00_schedule_rport_del timeout)
      Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org>
      Signed-off-by: NChad Dupuis <chad.dupuis@qlogic.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      2d70c103