1. 31 8月, 2015 14 次提交
  2. 15 7月, 2015 2 次提交
  3. 13 6月, 2015 1 次提交
  4. 28 5月, 2015 1 次提交
    • L
      kernel/params: constify struct kernel_param_ops uses · 9c27847d
      Luis R. Rodriguez 提交于
      Most code already uses consts for the struct kernel_param_ops,
      sweep the kernel for the last offending stragglers. Other than
      include/linux/moduleparam.h and kernel/params.c all other changes
      were generated with the following Coccinelle SmPL patch. Merge
      conflicts between trees can be handled with Coccinelle.
      
      In the future git could get Coccinelle merge support to deal with
      patch --> fail --> grammar --> Coccinelle --> new patch conflicts
      automatically for us on patches where the grammar is available and
      the patch is of high confidence. Consider this a feature request.
      
      Test compiled on x86_64 against:
      
      	* allnoconfig
      	* allmodconfig
      	* allyesconfig
      
      @ const_found @
      identifier ops;
      @@
      
      const struct kernel_param_ops ops = {
      };
      
      @ const_not_found depends on !const_found @
      identifier ops;
      @@
      
      -struct kernel_param_ops ops = {
      +const struct kernel_param_ops ops = {
      };
      
      Generated-by: Coccinelle SmPL
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Junio C Hamano <gitster@pobox.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: cocci@systeme.lip6.fr
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NLuis R. Rodriguez <mcgrof@suse.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      9c27847d
  5. 19 5月, 2015 10 次提交
  6. 16 4月, 2015 1 次提交
  7. 16 12月, 2014 1 次提交
  8. 04 12月, 2014 1 次提交
  9. 24 11月, 2014 3 次提交
  10. 12 11月, 2014 6 次提交
    • B
      IB/srp: Fix a race condition triggered by destroying a queue pair · 7dad6b2e
      Bart Van Assche 提交于
      At least LID reassignment can trigger a race condition in the SRP
      initiator driver, namely the receive completion handler trying to
      post a request on a QP during or after QP destruction and before
      the CQ's have been destroyed. Avoid this race by modifying a QP
      into the error state and by waiting until all receive completions
      have been processed before destroying a QP.
      Reported-by: NMax Gurtuvoy <maxg@mellanox.com>
      Signed-off-by: NBart Van Assche <bvanassche@acm.org>
      Reviewed-by: NSagi Grimberg <sagig@mellanox.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      7dad6b2e
    • B
      IB/srp: Add multichannel support · d92c0da7
      Bart Van Assche 提交于
      Improve performance by using multiple RDMA/RC channels per SCSI
      host for communication with an SRP target. About the
      implementation:
      - Introduce a loop over all channels in the code that uses
        target->ch.
      - Set the SRP_MULTICHAN_MULTI flag during login for the creation
        of the second and subsequent channels.
      - RDMA completion vectors are chosen such that RDMA completion
        interrupts are handled by the CPU socket that submitted the I/O
        request. As one can see in this patch it has been assumed if a
        system contains n CPU sockets and m RDMA completion vectors
        have been assigned to an RDMA HCA that IRQ affinity has been
        configured such that completion vectors [i*m/n..(i+1)*m/n) are
        bound to CPU socket i with 0 <= i < n.
      - Modify srp_free_ch_ib() and srp_free_req_data() such that it
        becomes safe to invoke these functions after the corresponding
        allocation function failed.
      - Add a ch_count sysfs attribute per target port.
      Signed-off-by: NBart Van Assche <bvanassche@acm.org>
      Reviewed-by: NSagi Grimberg <sagig@mellanox.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      d92c0da7
    • B
      IB/srp: Use block layer tags · 77f2c1a4
      Bart Van Assche 提交于
      Since the block layer already contains functionality to assign
      a tag to each request, use that functionality instead of
      reimplementing that functionality in the SRP initiator driver.
      This change makes the free_reqs list superfluous. Hence remove
      that list.
      
      [hch: updated to use .use_blk_tags instead scsi_activate_tcq]
      Signed-off-by: NBart Van Assche <bvanassche@acm.org>
      Reviewed-by: NSagi Grimberg <sagig@mellanox.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      77f2c1a4
    • B
      IB/srp: Separate target and channel variables · 509c07bc
      Bart Van Assche 提交于
      Changes in this patch:
      - Move channel variables into a new structure (struct srp_rdma_ch).
      - Add an srp_target_port pointer, 'lock' and 'comp_vector' members
        in struct srp_rdma_ch.
      - Add code to initialize these three new member variables.
      - Many boring "target->" into "ch->" changes.
      - The cm_id and completion handler context pointers are now of type
        srp_rdma_ch * instead of srp_target_port *.
      - Three kzalloc(a * b, f) calls have been changed into kcalloc(a, b, f)
        to avoid that this patch would trigger a checkpatch warning.
      - Two casts from u64 into unsigned long long have been left out
        because these are superfluous. Since considerable time u64 is
        defined as unsigned long long for all architectures supported by
        the Linux kernel.
      Signed-off-by: NBart Van Assche <bvanassche@acm.org>
      Acked-by: NSagi Grimberg <sagig@mellanox.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      509c07bc
    • B
      IB/srp: Introduce two new srp_target_port member variables · 747fe000
      Bart Van Assche 提交于
      Introduce the srp_target_port member variables 'sgid' and 'pkey'.
      Change the type of 'orig_dgid' from __be16[8] into union ib_gid.
      This patch does not change any functionality but makes the
      "Separate target and channel variables" patch easier to verify.
      Signed-off-by: NBart Van Assche <bvanassche@acm.org>
      Reviewed-by: NSagi Grimberg <sagig@mellanox.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      747fe000
    • B
      IB/srp: Avoid that I/O hangs due to a cable pull during LUN scanning · 34aa654e
      Bart Van Assche 提交于
      If a cable is pulled during LUN scanning it can happen that the
      SRP rport and the SCSI host have been created but no LUNs have been
      added to the SCSI host. Since multipathd only sends SCSI commands
      to a SCSI target if one or more SCSI devices are present and since
      there is no keepalive mechanism for IB queue pairs this means that
      after a LUN scan failed and after a reconnect has succeeded no
      data will be sent over the QP and hence that a subsequent cable
      pull will not be detected. Avoid this by not creating an rport or
      SCSI host if a cable is pulled during a SCSI LUN scan.
      
      Note: so far the above behavior has only been observed with the
      kernel module parameter ch_count set to a value >= 2.
      Signed-off-by: NBart Van Assche <bvanassche@acm.org>
      Reviewed-by: NSagi Grimberg <sagig@mellanox.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      34aa654e