28 Oct, 2013

1 commit

  • Pull SCSI target fixes from Nicholas Bellinger:
    "Here are the outstanding target pending fixes for v3.12-rc7.

    This includes a number of EXTENDED_COPY related fixes as a result of
    Thomas and Doug's continuing testing and feedback.

    Also included is an important vhost/scsi fix that addresses a long
    standing issue where the 'write' parameter for get_user_pages_fast()
    was incorrectly set for virtio-scsi WRITEs -> DMA_TO_DEVICE, and not
    for virtio-scsi READs -> DMA_FROM_DEVICE.

    This resulted in random userspace segfaults and other unpleasantness
    on KVM host, and unfortunately has been an issue since the initial
    merge of vhost/scsi in v3.6. This patch is CC'ed to stable, along
    with two other less critical items"

    * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
    vhost/scsi: Fix incorrect usage of get_user_pages_fast write parameter
    target/pscsi: fix return value check
    target: Fail XCOPY for non matching source + destination block_size
    target: Generate failure for XCOPY I/O with non-zero scsi_status
    target: Add missing XCOPY I/O operation sense_buffer
    iser-target: check device before dereferencing its variable
    target: Return an error for WRITE SAME with ANCHOR==1
    target: Fix assignment of LUN in tracepoints
    target: Reject EXTENDED_COPY when emulate_3pc is disabled
    target: Allow non zero ListID in EXTENDED_COPY parameter list
    target: Make target_do_xcopy failures return INVALID_PARAMETER_LIST

    Linus Torvalds
     

24 Oct, 2013

1 commit


22 Oct, 2013

1 commit

  • The create_flow/destroy_flow uverbs and the associated extensions to
    the user-kernel verbs ABI are under review and are too experimental to
    freeze at this point.

    So userspace is not exposed to experimental features and an uinstable
    ABI, temporarily disable this for v3.12 (with a Kconfig option behind
    staging to reenable it if desired).

    The feature will be enabled after proper cleanup for v3.13.

    Signed-off-by: Yann Droneaud
    Link: http://marc.info/?i=cover.1381351016.git.ydroneaud@opteya.com
    Link: http://marc.info/?i=cover.1381177342.git.ydroneaud@opteya.com

    [ Add a Kconfig option to reenable these verbs. - Roland ]

    Signed-off-by: Roland Dreier

    Yann Droneaud
     

15 Oct, 2013

3 commits

  • Pull infiniband updates from Roland Dreier:
    "Last batch of IB changes for 3.12: many mlx5 hardware driver fixes
    plus one trivial semicolon cleanup"

    * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
    IB: Remove unnecessary semicolons
    IB/mlx5: Ensure proper synchronization accessing memory
    IB/mlx5: Fix alignment of reg umr gather buffers
    IB/mlx5: Fix eq names to display nicely in /proc/interrupts
    mlx5: Fix error code translation from firmware to driver
    IB/mlx5: Fix opt param mask according to firmware spec
    mlx5: Fix opt param mask for sq err to rts transition
    IB/mlx5: Disable atomic operations
    mlx5: Fix layout of struct mlx5_init_seg
    mlx5: Keep polling to reclaim pages while any returned
    IB/mlx5: Avoid async events on invalid port number
    IB/mlx5: Decrease memory consumption of mr caches
    mlx5: Remove checksum on command interface commands
    IB/mlx5: Fix memory leak in mlx5_ib_create_srq
    IB/mlx5: Flush cache workqueue before destroying it
    IB/mlx5: Fix send work queue size calculation

    Linus Torvalds
     
  • Roland Dreier
     
  • These aren't necessary after switch blocks.

    Signed-off-by: Joe Perches
    Signed-off-by: Roland Dreier

    Joe Perches
     

11 Oct, 2013

11 commits


03 Oct, 2013

1 commit

  • The SRP specification requires:

    "Response data shall be provided in any SRP_RSP response that is sent in
    response to an SRP_TSK_MGMT request (see 6.7). The information in the
    RSP_CODE field (see table 24) shall indicate the completion status of
    the task management function."

    So fix this to avoid the SRP initiator interprets task management functions
    that succeeded as failed.

    Signed-off-by: Jack Wang
    Cc: stable@vger.kernel.org # 3.3+
    Signed-off-by: Nicholas Bellinger

    Jack Wang
     

02 Oct, 2013

1 commit

  • This patch fixes a bug where ib_destroy_cm_id() was incorrectly being called
    after srpt_destroy_ch_ib() had destroyed the active QP.

    This would result in the following failed SRP_LOGIN_REQ messages:

    Received SRP_LOGIN_REQ with i_port_id 0x0:0x2590ffff1762bd, t_port_id 0x2c903009f8f40:0x2c903009f8f40 and it_iu_len 260 on port 1 (guid=0xfe80000000000000:0x2c903009f8f41)
    Received SRP_LOGIN_REQ with i_port_id 0x0:0x2590ffff1758f9, t_port_id 0x2c903009f8f40:0x2c903009f8f40 and it_iu_len 260 on port 2 (guid=0xfe80000000000000:0x2c903009f8f42)
    Received SRP_LOGIN_REQ with i_port_id 0x0:0x2590ffff175941, t_port_id 0x2c903009f8f40:0x2c903009f8f40 and it_iu_len 260 on port 2 (guid=0xfe80000000000000:0x2c90300a3cfb2)
    Received SRP_LOGIN_REQ with i_port_id 0x0:0x2590ffff176299, t_port_id 0x2c903009f8f40:0x2c903009f8f40 and it_iu_len 260 on port 1 (guid=0xfe80000000000000:0x2c90300a3cfb1)
    mlx4_core 0000:84:00.0: command 0x19 failed: fw status = 0x9
    rejected SRP_LOGIN_REQ because creating a new RDMA channel failed.
    Received SRP_LOGIN_REQ with i_port_id 0x0:0x2590ffff176299, t_port_id 0x2c903009f8f40:0x2c903009f8f40 and it_iu_len 260 on port 1 (guid=0xfe80000000000000:0x2c90300a3cfb1)
    mlx4_core 0000:84:00.0: command 0x19 failed: fw status = 0x9
    rejected SRP_LOGIN_REQ because creating a new RDMA channel failed.
    Received SRP_LOGIN_REQ with i_port_id 0x0:0x2590ffff176299, t_port_id 0x2c903009f8f40:0x2c903009f8f40 and it_iu_len 260 on port 1 (guid=0xfe80000000000000:0x2c90300a3cfb1)

    Reported-by: Navin Ahuja
    Cc: stable@vger.kernel.org # 3.3+
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     

13 Sep, 2013

2 commits

  • After the last architecture switched to generic hard irqs the config
    options HAVE_GENERIC_HARDIRQS & GENERIC_HARDIRQS and the related code
    for !CONFIG_GENERIC_HARDIRQS can be removed.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • Pull SCSI target updates from Nicholas Bellinger:
    "Lots of activity again this round for I/O performance optimizations
    (per-cpu IDA pre-allocation for vhost + iscsi/target), and the
    addition of new fabric independent features to target-core
    (COMPARE_AND_WRITE + EXTENDED_COPY).

    The main highlights include:

    - Support for iscsi-target login multiplexing across individual
    network portals
    - Generic Per-cpu IDA logic (kent + akpm + clameter)
    - Conversion of vhost to use per-cpu IDA pre-allocation for
    descriptors, SGLs and userspace page pointer list
    - Conversion of iscsi-target + iser-target to use per-cpu IDA
    pre-allocation for descriptors
    - Add support for generic COMPARE_AND_WRITE (AtomicTestandSet)
    emulation for virtual backend drivers
    - Add support for generic EXTENDED_COPY (CopyOffload) emulation for
    virtual backend drivers.
    - Add support for fast memory registration mode to iser-target (Vu)

    The patches to add COMPARE_AND_WRITE and EXTENDED_COPY support are of
    particular significance, which make us the first and only open source
    target to support the full set of VAAI primitives.

    Currently Linux clients are lacking upstream support to actually
    utilize these primitives. However, with server side support now in
    place for folks like MKP + ZAB working on the client, this logic once
    reserved for the highest end of storage arrays, can now be run in VMs
    on their laptops"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (50 commits)
    target/iscsi: Bump versions to v4.1.0
    target: Update copyright ownership/year information to 2013
    iscsi-target: Bump default TCP listen backlog to 256
    target: Fix >= v3.9+ regression in PR APTPL + ALUA metadata write-out
    iscsi-target; Bump default CmdSN Depth to 64
    iscsi-target: Remove unnecessary wait_for_completion in iscsi_get_thread_set
    iscsi-target: Add thread_set->ts_activate_sem + use common deallocate
    iscsi-target: Fix race with thread_pre_handler flush_signals + ISCSI_THREAD_SET_DIE
    target: remove unused including
    iser-target: introduce fast memory registration mode (FRWR)
    iser-target: generalize rdma memory registration and cleanup
    iser-target: move rdma wr processing to a shared function
    target: Enable global EXTENDED_COPY setup/release
    target: Add Third Party Copy (3PC) bit in INQUIRY response
    target: Enable EXTENDED_COPY setup in spc_parse_cdb
    target: Add support for EXTENDED_COPY copy offload emulation
    target: Avoid non-existent tg_pt_gp_mem in target_alua_state_check
    target: Add global device list for EXTENDED_COPY
    target: Make helpers non static for EXTENDED_COPY command setup
    target: Make spc_parse_naa_6h_vendor_specific non static
    ...

    Linus Torvalds
     

11 Sep, 2013

4 commits

  • Update copyright ownership/year information for target-core,
    loopback, iscsi-target, tcm_qla2xx, vhost and iser-target.

    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     
  • This model was introduced in 00f7ec36c "RDMA/core: Add memory
    management extensions support" and works when the IB device
    supports the IB_DEVICE_MEM_MGT_EXTENSIONS capability.

    Upon creating the isert device, ib_isert will test whether the HCA
    supports FRWR. If supported then set the flag and assign
    function pointers that handle fast registration and deregistration
    of appropriate resources (fast_reg descriptors).

    When new connection coming in, ib_isert will check frwr flag and
    create frwr resouces, if fail to do it will switch back to
    old model of using global dma key and turn off the frwr support.

    Registration is done using posting IB_WR_FAST_REG_MR to the QP and
    invalidations using posting IB_WR_LOCAL_INV.

    Signed-off-by: Vu Pham
    Signed-off-by: Nicholas Bellinger

    Vu Pham
     
  • Current driver uses global dma key to register the memory pointed
    by sg list provided by the target core.

    This is the preparation step for adding more methods like fast
    path memory registration, make the reg/unreg calls be function
    pointers.

    Signed-off-by: Vu Pham
    Signed-off-by: Nicholas Bellinger

    Vu Pham
     
  • isert_put_datain() and isert_get_dataout() share a lot of code
    in rdma wr processing, move this common code to a shared function.

    Use isert_unmap_cmd to cleanup for RDMA_READ completion.
    Remove duplicate field in isert_cmd and isert_rdma_wr structs
    Change misc debug messages to track isert_cmd

    Signed-off-by: Sagi Grimberg
    Signed-off-by: Vu Pham
    Signed-off-by: Nicholas Bellinger

    Vu Pham
     

10 Sep, 2013

2 commits

  • This command converts iscsi/isert-target to use allocations based on
    iscsit_transport->priv_size within iscsit_allocate_cmd(), instead of
    using an embedded isert_cmd->iscsi_cmd.

    This includes removing iscsit_transport->alloc_cmd() usage, along
    with updating isert-target code to use iscsit_priv_cmd().

    Also, remove left-over iscsit_transport->release_cmd() usage for
    direct calls to iscsit_release_cmd(), and drop the now unused
    lio_cmd_cache and isert_cmd_cache.

    Cc: Or Gerlitz
    Cc: Kent Overstreet
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     
  • This patch updates iser-target code to support login negotiation
    multi-plexing. This includes only using isert_conn->conn_login_comp
    for the first login request PDU, pushing the subsequent processing
    to iscsi_conn->login_work -> iscsi_target_do_login_rx(), and turning
    isert_get_login_rx() into a NOP.

    v3 changes:
    - Drop unnecessary LOGIN_FLAGS_READ_ACTIVE bit set in
    isert_rx_login_req()

    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     

07 Sep, 2013

1 commit

  • Pull trivial tree from Jiri Kosina:
    "The usual trivial updates all over the tree -- mostly typo fixes and
    documentation updates"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (52 commits)
    doc: Documentation/cputopology.txt fix typo
    treewide: Convert retrun typos to return
    Fix comment typo for init_cma_reserved_pageblock
    Documentation/trace: Correcting and extending tracepoint documentation
    mm/hotplug: fix a typo in Documentation/memory-hotplug.txt
    power: Documentation: Update s2ram link
    doc: fix a typo in Documentation/00-INDEX
    Documentation/printk-formats.txt: No casts needed for u64/s64
    doc: Fix typo "is is" in Documentations
    treewide: Fix printks with 0x%#
    zram: doc fixes
    Documentation/kmemcheck: update kmemcheck documentation
    doc: documentation/hwspinlock.txt fix typo
    PM / Hibernate: add section for resume options
    doc: filesystems : Fix typo in Documentations/filesystems
    scsi/megaraid fixed several typos in comments
    ppc: init_32: Fix error typo "CONFIG_START_KERNEL"
    treewide: Add __GFP_NOWARN to k.alloc calls with v.alloc fallbacks
    page_isolation: Fix a comment typo in test_pages_isolated()
    doc: fix a typo about irq affinity
    ...

    Linus Torvalds
     

06 Sep, 2013

1 commit

  • Pull main batch of InfiniBand/RDMA changes from Roland Dreier:
    - Large ocrdma HW driver update: add "fast register" work requests,
    fixes, cleanups
    - Add receive flow steering support for raw QPs
    - Fix IPoIB neighbour race that leads to crash
    - iSER updates including support for using "fast register" memory
    registration
    - IPv6 support for iWARP
    - XRC transport fixes

    * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (54 commits)
    RDMA/ocrdma: Fix compiler warning about int/pointer size mismatch
    IB/iser: Fix redundant pointer check in dealloc flow
    IB/iser: Fix possible memory leak in iser_create_frwr_pool()
    IB/qib: Move COUNTER_MASK definition within qib_mad.h header guards
    RDMA/ocrdma: Fix passing wrong opcode to modify_srq
    RDMA/ocrdma: Fill PVID in UMC case
    RDMA/ocrdma: Add ABI versioning support
    RDMA/ocrdma: Consider multiple SGES in case of DPP
    RDMA/ocrdma: Fix for displaying proper link speed
    RDMA/ocrdma: Increase STAG array size
    RDMA/ocrdma: Dont use PD 0 for userpace CQ DB
    RDMA/ocrdma: FRMA code cleanup
    RDMA/ocrdma: For ERX2 irrespective of Qid, num_posted offset is 24
    RDMA/ocrdma: Fix to work with even a single MSI-X vector
    RDMA/ocrdma: Remove the MTU check based on Ethernet MTU
    RDMA/ocrdma: Add support for fast register work requests (FRWR)
    RDMA/ocrdma: Create IRD queue fix
    IB/core: Better checking of userspace values for receive flow steering
    IB/mlx4: Add receive flow steering support
    IB/core: Export ib_create/destroy_flow through uverbs
    ...

    Linus Torvalds
     

05 Sep, 2013

1 commit

  • Pull PTR_RET() removal patches from Rusty Russell:
    "PTR_RET() is a weird name, and led to some confusing usage. We ended
    up with PTR_ERR_OR_ZERO(), and replacing or fixing all the usages.

    This has been sitting in linux-next for a whole cycle"

    [ There are still some PTR_RET users scattered about, with some of them
    possibly being new, but most of them existing in Rusty's tree too. We
    have that

    #define PTR_RET(p) PTR_ERR_OR_ZERO(p)

    thing in , so they continue to work for now - Linus ]

    * tag 'PTR_RET-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
    GFS2: Replace PTR_RET with PTR_ERR_OR_ZERO
    Btrfs: volume: Replace PTR_RET with PTR_ERR_OR_ZERO
    drm/cma: Replace PTR_RET with PTR_ERR_OR_ZERO
    sh_veu: Replace PTR_RET with PTR_ERR_OR_ZERO
    dma-buf: Replace PTR_RET with PTR_ERR_OR_ZERO
    drivers/rtc: Replace PTR_RET with PTR_ERR_OR_ZERO
    mm/oom_kill: remove weird use of ERR_PTR()/PTR_ERR().
    staging/zcache: don't use PTR_RET().
    remoteproc: don't use PTR_RET().
    pinctrl: don't use PTR_RET().
    acpi: Replace weird use of PTR_RET.
    s390: Replace weird use of PTR_RET.
    PTR_RET is now PTR_ERR_OR_ZERO(): Replace most.
    PTR_RET is now PTR_ERR_OR_ZERO

    Linus Torvalds
     

04 Sep, 2013

2 commits


03 Sep, 2013

8 commits