1. 16 Dec, 2011 2 commits
    • Bart Van Assche's avatar
      ib_srpt: Initial SRP Target merge for v3.3-rc1 · a42d985b
      Bart Van Assche authored
      This patch adds the kernel module ib_srpt SCSI RDMA Protocol (SRP) target
      implementation conforming to the SRP r16a specification for the mainline
      drivers/target infrastructure.
      
      This driver was originally developed by Vu Pham and has been optimized by
      Bart Van Assche and merged into upstream LIO based on his srpt-lio-4.1
      branch here:
      
         https://github.com/bvanassche/srpt-lio/commits/srpt-lio-4.1/
      
      This updated patch also contains the following two changes from
      lio-core-2.6.git/master.  One is to fix a bug with 1 >= task->task_sg[]
      chained mappings in ib_srpt, and the other to convert the configfs control
      plane to reference IB Port GUID and struct srpt_port directly following
      mainline v4.x target_core_fabric_configfs.c convertion for ib_srpt
      to work with rtslib/rtsadmin v2 code.
      
      These seperate patches can be found here:
      
      ib_srpt: Fix bug with chainged SGLs in srpt_map_sg_to_ib_sge
      http://www.risingtidesystems.com/git/?p=lio-core-2.6.git;a=commitdiff;h=ea485147563b6555a97dbf811825fbb586519252
      
      ib_srpt: Convert se_wwn endpoint reference to struct srpt_port->port_wwn
      http://www.risingtidesystems.com/git/?p=lio-core-2.6.git;a=commitdiff;h=4e544a210acb227df1bb4ca5086e65bdf4e648ea
      
      This also includes the following recent v1 -> v2 review changes:
      
      ib_srpt: Fix potential out-of-bounds array access
      ib_srpt: Avoid failed multipart RDMA transfers
      ib_srpt: Fix srpt_alloc_fabric_acl failure case return value
      ib_srpt: Update comments to reference $driver/$port layout
      ib_srpt: Fix sport->port_guid formatting code
      ib_srpt: Remove legacy use_port_guid_in_session_name module parameter
      ib_srpt: Convert srp_max_rdma_size into per port configfs attribute
      ib_srpt: Convert srp_max_rsp_size into per port configfs attribute
      ib_srpt: Convert srpt_sq_size into per port configfs attribute
      
      and v2 -> v3 review changes:
      
      ib_srpt: Fix possible race with srp_sq_size in srpt_create_ch_ib
      ib_srpt: Fix possible race with srp_max_rsp_size in srpt_release_channel_work
      ib_srpt: Fix up MAX_SRPT_RDMA_SIZE define
      ib_srpt: Make srpt_map_sg_to_ib_sge() failure case return -EAGAIN
      ib_srpt: Convert port_guid to use subnet_prefix + interface_id formatting
      ib_srpt: Make srpt_check_stop_free return kref_put status
      ib_srpt: Make compilation with BUG=n proceed`
      ib_srpt: Use new target_core_fabric.h include
      ib_srpt: Check hex2bin() return code to silence build warning
      
      Cc: Bart Van Assche <bvanassche@acm.org>
      Cc: Roland Dreier <roland@purestorage.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Vu Pham <vu@mellanox.com>
      Cc: David Dillow <dillowda@ornl.gov>
      Signed-off-by: default avatarNicholas A. Bellinger <nab@risingtidesystems.com>
      a42d985b
    • Roland Dreier's avatar
      target: Set additional sense length field in sense data · 895f3022
      Roland Dreier authored
      The target code was not setting the additional sense length field in the
      sense data it returned, which meant that at least the Linux stack
      ignored the ASC/ASCQ fields.  For example, without this patch, on a
      tcm_loop device:
      
          # sg_raw -v /dev/sda 2 0 0 0 0 0
      
      gives
      
              cdb to send: 02 00 00 00 00 00
          SCSI Status: Check Condition
      
          Sense Information:
           Fixed format, current;  Sense key: Illegal Request
            Raw sense data (in hex):
                  70 00 05 00 00 00 00 00
      
      while after the patch we correctly get the following (which matches what
      a regular disk returns):
      
              cdb to send: 02 00 00 00 00 00
          SCSI Status: Check Condition
      
          Sense Information:
           Fixed format, current;  Sense key: Illegal Request
           Additional sense: Invalid command operation code
           Raw sense data (in hex):
                  70 00 05 00 00 00 00 0a  00 00 00 00 20 00 00 00
                  00 00
      Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      895f3022
  2. 14 Dec, 2011 25 commits
  3. 09 Dec, 2011 13 commits