1. 06 Apr, 2012 1 commit
  2. 10 Mar, 2012 1 commit
  3. 14 Dec, 2011 1 commit
  4. 05 Dec, 2011 1 commit
  5. 23 Oct, 2011 1 commit
  6. 10 Oct, 2011 1 commit
  7. 16 Sep, 2011 1 commit
  8. 15 Sep, 2011 1 commit
  9. 22 Aug, 2011 2 commits
    • Roland Dreier's avatar
      target: Convert acl_node_lock to be IRQ-disabling · 28638887
      Roland Dreier authored
      
      
      With qla2xxx, acl_node_lock is taken inside qla2xxx's hardware_lock,
      which is taken in hardirq context.  This means acl_node_lock must become
      an IRQ-disabling lock; in particular this fixes lockdep warnings along
      the lines of
      
          ======================================================
          [ INFO: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected ]
      
           (&(&se_tpg->acl_node_lock)->rlock){+.....}, at: [<ffffffffa026f872>] transport_deregister_session+0x92/0x140 [target_core_mod]
      
          and this task is already holding:
           (&(&ha->hardware_lock)->rlock){-.-...}, at: [<ffffffffa017c5e7>] qla_tgt_stop_phase1+0x57/0x2c0 [qla2xxx]
          which would create a new lock dependency:
           (&(&ha->hardware_lock)->rlock){-.-...} -> (&(&se_tpg->acl_node_lock)->rlock){+.....}
      
          but this new dependency connects a HARDIRQ-irq-safe lock:
           (&(&ha->hardware_lock)->rlock){-.-...}
      
          to a HARDIRQ-irq-unsafe lock:
           (&(&se_tpg->acl_node_lock)->rlock){+.....}
      
      Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      28638887
    • Roland Dreier's avatar
      tcm_fc: init/exit functions should not be protected by "#ifdef MODULE" · 4e0f0529
      Roland Dreier authored
      
      
      There's no need for the #ifdef protection when building into the kernel,
      and in fact we need the module_init() for the initialization function to
      be called.
      
      Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      4e0f0529
  10. 22 Jul, 2011 6 commits
    • Andy Grover's avatar
      target: Follow up core updates from AGrover and HCH (round 4) · 6708bb27
      Andy Grover authored
      
      
      This patch contains the squashed version of forth round series cleanups
      from Andy and Christoph following the post heavy lifting in the preceeding:
      'Eliminate usage of struct se_mem' and 'Make all control CDBs scatter-gather'
      changes.  This also includes a conversion of target core and the v3.0
      mainline fabric modules (loopback and tcm_fc) to use pr_debug and the
      CONFIG_DYNAMIC_DEBUG infrastructure!
      
      These have been squashed into this third and final round for v3.1.
      
      target: Remove ifdeffed code in t_g_process_write
      target: Remove direct ramdisk code
      target: Rename task_sg_num to task_sg_nents
      target: Remove custom debug macros for pr_debug. Use pr_err().
      target: Remove custom debug macros in mainline fabrics
      target: Set WSNZ=1 in block limits VPD. Abort if WRITE_SAME sectors = 0
      target: Remove transport do_se_mem_map callback
      target: Further simplify transport_free_pages
      target: Redo task allocation return value handling
      target: Remove extra parentheses
      target: change alloc_task call to take *cdb, not *cmd
      
      (nab: Fix bogus struct file assignments in fd_do_readv and fd_do_writev)
      
      Signed-off-by: default avatarAndy Grover <agrover@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      6708bb27
    • Nicholas Bellinger's avatar
      tcm_fc: Convert to wake_up_process and schedule_timeout_interruptible · 2be18149
      Nicholas Bellinger authored
      
      
      This patch converts ft_queue_cmd() to use wake_up_process() and
      ft_thread() to use schedule_timeout_interruptible(MAX_SCHEDULE_TIMEOUT)
      instead of wait_event_interruptible().  This fixes a potential race with
      the wait_event_interruptible() conditional with qobj->queue_cnt in
      ft_thread().
      
      This patch also drops the unnecessary set_user_nice(current, -20) in
      ft_thread(), and drops extra () around two if (!(acl)) conditionals in
      tfc_conf.c.
      
      Reported-by: default avatarChristoph Hellwig <hch@infradead.org>
      Signed-off-by: default avatarNicholas A. Bellinger <nab@linux-iscsi.org>
      2be18149
    • Christoph Hellwig's avatar
      target: merge release_cmd methods · 35462975
      Christoph Hellwig authored
      
      
      The release_cmd_to_pool and release_cmd_direct methods are always the same.
      Merge them into a single release_cmd method, and clean up the fallout.
      
      (nab: fix breakage in transport_generic_free_cmd() parameter build breakage
       in drivers/target/tcm_fc/tfc_cmd.c)
      
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      35462975
    • Christoph Hellwig's avatar
    • Andy Grover's avatar
      target: More core cleanups from AGrover (round 2) · 5951146d
      Andy Grover authored
      
      
      This patch contains the squashed version of second round of target core
      cleanups and simplifications and Andy and Co.   It also contains a handful
      of fixes to address bugs the original series and other minor cleanups.
      
      Here is the condensed shortlog:
      
      target: Remove unneeded casts to void*
      target: Rename get_lun_for_{cmd,tmr} to lookup_{cmd,tmr}_lun
      target: Make t_task a member of se_cmd, not a pointer
      target: Handle functions returning "-2"
      target: Use cmd->se_dev over cmd->se_lun->lun_se_dev
      target: Embed qr in struct se_cmd
      target: Replace embedded struct se_queue_req with a list_head
      target: Rename list_heads that are nodes in struct se_cmd to "*_node"
      target: Fold transport_device_setup_cmd() into lookup_{tmr,cmd}_lun()
      target: Make t_mem_list and t_mem_list_bidi members of t_task
      target: Add comment & cleanup transport_map_sg_to_mem()
      target: Remove unneeded checks in transport_free_pages()
      
      (Roland: Fix se_queue_req removal leftovers OOPs)
      (nab: Fix transport_lookup_tmr_lun failure case)
      (nab: Fix list_empty(&cmd->t_task.t_mem_bidi_list) inversion bugs)
      
      Signed-off-by: default avatarAndy Grover <agrover@redhat.com>
      Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      5951146d
    • Andy Grover's avatar
      target: Core cleanups from AGrover (round 1) · e3d6f909
      Andy Grover authored
      
      
      This patch contains the squashed version of a number of cleanups and
      minor fixes from Andy's initial series (round 1) for target core this
      past spring.  The condensed log looks like:
      
      target: use errno values instead of returning -1 for everything
      target: Rename transport_calc_sg_num to transport_init_task_sg
      target: Fix leak in error path in transport_init_task_sg
      target/pscsi: Remove pscsi_get_sh() usage
      target: Make two runtime checks into WARN_ONs
      target: Remove hba queue depth and convert to spin_lock_irq usage
      target: dev->dev_status_queue_obj is unused
      target: Make struct se_queue_req.cmd type struct se_cmd *
      target: Remove __transport_get_qr_from_queue()
      target: Rename se_dev->g_se_dev_list to se_dev_node
      target: Remove struct se_global
      target: Simplify scsi mib index table code
      target: Make dev_queue_obj a member of se_device instead of a pointer
      target: remove extraneous returns at end of void functions
      target: Ensure transport_dump_vpd_ident_type returns null-terminated str
      target: Function pointers don't need to use '&' to be assigned
      target: Fix comment in __transport_execute_tasks()
      target: Misc style cleanups
      target: rename struct pr_reservation_template to pr_reservation
      target: Remove #defines that just perform indirection
      target: Inline transport_get_task_from_execute_queue()
      target: Minor header comment fixes
      
      Signed-off-by: default avatarAndy Grover <agrover@redhat.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      e3d6f909
  11. 20 Jun, 2011 1 commit
  12. 27 May, 2011 1 commit
  13. 24 May, 2011 1 commit
  14. 17 May, 2011 1 commit
    • Kiran Patil's avatar
      [SCSI] tcm_fc: Adding FC_FC4 provider (tcm_fc) for FCoE target (TCM - target core) support · 3699d92a
      Kiran Patil authored
      
      
      This is a comprehensive patch for FC-FC4 provider. tcm_fc is a FC-FC4
      provider which glues target core (TCM) with Fiber channel library
      (libfc). tcm_fc uses existing FC4 provider hooks from Fiber channel
      library. This Fiber channel library is used by FCoE (transport - FC
      over Ethernet) protocol driver as well.
      
      Combination of modules such as Fiber channel library, tcm_fc, TCM
      target core, and FCoE protocol driver enables functional FCoE target.
      
      This patch includes initial commit for tcm_fc plus additional
      enhancement, bug fixes.
      
      This tcm_fc module essentially contains 3 entry points such as "prli",
      "prlo", "recv".  When process login request (ELS_PRLI) request is
      received, Fiber channel library (libfc) module calls passive providers
      (FC-FC4, tcm_fc) (if any registered) "prli" function. Likewise when
      LOGO request is received, "prlo" function of passive provider is
      invoked by libfc.  For all other request (e.g. any read/write, task
      management, LUN inquiry commands), "recv" function of passiver
      provider is invoked by libfc. Those passive providers "prli, prlo,
      recv" functions interact with TCM target core for requested operation.
      
      This module was primarily developed by "Joe Eykholt" and there were
      significant contributions from the people listed under signed-off.
      
      Signed-off-by: default avatarJoe Eykholt <jeykholt@cisco.com>
      Signed-off-by: default avatarNicholas A. Bellinger <nab@linux-iscsi.org>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarYi Zou <yi.zou@intel.com>
      Signed-off-by: default avatarKiran Patil <kiran.patil@intel.com>
      
      Acked-by: default avatarRobert Love <robert.w.love@intel.com>
      Signed-off-by: default avatarJames Bottomley <jbottomley@parallels.com>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
      3699d92a