29 May, 2016

2 commits

  • Pull SCSI target updates from Nicholas Bellinger:
    "Here are the outstanding target pending updates for v4.7-rc1.

    The highlights this round include:

    - Allow external PR/ALUA metadata path be defined at runtime via top
    level configfs attribute (Lee)
    - Fix target session shutdown bug for ib_srpt multi-channel (hch)
    - Make TFO close_session() and shutdown_session() optional (hch)
    - Drop se_sess->sess_kref + convert tcm_qla2xxx to internal kref
    (hch)
    - Add tcm_qla2xxx endpoint attribute for basic FC jammer (Laurence)
    - Refactor iscsi-target RX/TX PDU encode/decode into common code
    (Varun)
    - Extend iscsit_transport with xmit_pdu, release_cmd, get_rx_pdu,
    validate_parameters, and get_r2t_ttt for generic ISO offload
    (Varun)
    - Initial merge of cxgb iscsi-segment offload target driver (Varun)

    The bulk of the changes are Chelsio's new driver, along with a number
    of iscsi-target common code improvements made by Varun + Co along the
    way"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (29 commits)
    iscsi-target: Fix early sk_data_ready LOGIN_FLAGS_READY race
    cxgbit: Use type ISCSI_CXGBIT + cxgbit tpg_np attribute
    iscsi-target: Convert transport drivers to signal rdma_shutdown
    iscsi-target: Make iscsi_tpg_np driver show/store use generic code
    tcm_qla2xxx Add SCSI command jammer/discard capability
    iscsi-target: graceful disconnect on invalid mapping to iovec
    target: need_to_release is always false, remove redundant check and kfree
    target: remove sess_kref and ->shutdown_session
    iscsi-target: remove usage of ->shutdown_session
    tcm_qla2xxx: introduce a private sess_kref
    target: make close_session optional
    target: make ->shutdown_session optional
    target: remove acl_stop
    target: consolidate and fix session shutdown
    cxgbit: add files for cxgbit.ko
    iscsi-target: export symbols
    iscsi-target: call complete on conn_logout_comp
    iscsi-target: clear tx_thread_active
    iscsi-target: add new offload transport type
    iscsi-target: use conn_transport->transport_type in text rsp
    ...

    Linus Torvalds
     
  • Pull more rdma updates from Doug Ledford:
    "This is the second group of code for the 4.7 merge window. It looks
    large, but only in one sense. I'll get to that in a minute. The list
    of changes here breaks down as follows:

    - Dynamic counter infrastructure in the IB drivers

    This is a sysfs based code to allow free form access to the
    hardware counters RDMA devices might support so drivers don't need
    to code this up repeatedly themselves

    - SendOnlyFullMember multicast support

    - IB router support

    - A couple misc fixes

    - The big item on the list: hfi1 driver updates, plus moving the hfi1
    driver out of staging

    There was a group of 15 patches in the hfi1 list that I thought I had
    in the first pull request but they weren't. So that added to the
    length of the hfi1 section here.

    As far as these go, everything but the hfi1 is pretty straight
    forward.

    The hfi1 is, if you recall, the driver that Al had complaints about
    how it used the write/writev interfaces in an overloaded fashion. The
    write portion of their interface behaved like the write handler in the
    IB stack proper and did bi-directional communications. The writev
    interface, on the other hand, only accepts SDMA request structures.
    The completions for those structures are sent back via an entirely
    different event mechanism.

    With the security patch, we put security checks on the write
    interface, however, we also knew they would be going away soon. Now,
    we've converted the write handler in the hfi1 driver to use ioctls
    from the IB reserved magic area for its bidirectional communications.
    With that change, Intel has addressed all of the items originally on
    their TODO when they went into staging (as well as many items added to
    the list later).

    As such, I moved them out, and since they were the last item in the
    staging/rdma directory, and I don't have immediate plans to use the
    staging area again, I removed the staging/rdma area.

    Because of the move out of staging, as well as a series of 5 patches
    in the hfi1 driver that removed code people thought should be done in
    a different way and was optional to begin with (a snoop debug
    interface, an eeprom driver for an eeprom connected directory to their
    hfi1 chip and not via an i2c bus, and a few other things like that),
    the line count, especially the removal count, is high"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (56 commits)
    staging/rdma: Remove the entire rdma subdirectory of staging
    IB/core: Make device counter infrastructure dynamic
    IB/hfi1: Fix pio map initialization
    IB/hfi1: Correct 8051 link parameter settings
    IB/hfi1: Update pkey table properly after link down or FM start
    IB/rdamvt: Fix rdmavt s_ack_queue sizing
    IB/rdmavt: Max atomic value should be a u8
    IB/hfi1: Fix hard lockup due to not using save/restore spin lock
    IB/hfi1: Add tracing support for send with invalidate opcode
    IB/hfi1, qib: Add ieth to the packet header definitions
    IB/hfi1: Move driver out of staging
    IB/hfi1: Do not free hfi1 cdev parent structure early
    IB/hfi1: Add trace message in user IOCTL handling
    IB/hfi1: Remove write(), use ioctl() for user cmds
    IB/hfi1: Add ioctl() interface for user commands
    IB/hfi1: Remove unused user command
    IB/hfi1: Remove snoop/diag interface
    IB/hfi1: Remove EPROM functionality from data device
    IB/hfi1: Remove UI char device
    IB/hfi1: Remove multiple device cdev
    ...

    Linus Torvalds
     

27 May, 2016

9 commits

  • In practice, each RDMA device has a unique set of counters that the
    hardware implements. Having a central set of counters that they must
    all adhere to is limiting and causes many useful counters to not be
    available.

    Therefore we create a dynamic counter registration infrastructure.

    The driver must implement a stats structure allocation routine, in
    which the driver must place the directory name it wants, a list of
    names for all of the counters, an array of u64 counters themselves,
    plus a few generic configuration options.

    We then implement a core routine to create a sysfs file for each
    of the named stats elements, and a core routine to retrieve the
    stats when any of the sysfs attribute files are read.

    To avoid excessive beating on the stats generation routine in the
    drivers, the core code also caches the stats for a short period of
    time so that someone attempting to read all of the stats in a
    given device's directory will not result in a stats generation
    call per file read.

    Future work will attempt to standardize just the shared stats
    elements, and possibly add a method to get the stats via netlink
    in addition to sysfs.

    Signed-off-by: Christoph Lameter
    Signed-off-by: Mark Bloch
    Reviewed-by: Steve Wise
    Signed-off-by: Doug Ledford
    [ Add caching, make structure names more informative, add i40iw support,
    other significant rewrites from the original patch ]

    Christoph Lameter
     
  • Doug Ledford
     
  • The pio map initialization function is off by 1 causing the last
    kernel send context that is allocated to not get mapped into the
    pio map which leads to the last kernel send context not being used
    by any of the qps.

    The send context reserved for VL15 is taken care of by setting the
    scontext variable that is used as the index into the kernel send
    context array to 1 and does not need to be accounted for in the
    kernel send context counting loop as it is currently done.

    Fix the kernel send context counting loop to account for all the
    allocated send contexts and map all of them to the different VLs.

    Reviewed-by: Dennis Dalessandro
    Reviewed-by: Mike Marciniszyn
    Reviewed-by: Jianxin Xiong
    Signed-off-by: Jubin John
    Signed-off-by: Doug Ledford

    Jubin John
     
  • Two 8051 link settings, external device config and tuning method,
    were written in the wrong location and the previous settings were
    not cleared. For both, clear the old value and write the new
    value.

    Fixes: 8ebd4cf1852a ("staging/rdma/hfi1: Add active and optical cable support")
    Reviewed-by: Dennis Dalessandro
    Signed-off-by: Dean Luick
    Signed-off-by: Doug Ledford

    Dean Luick
     
  • When FM is disabled, and the HFI port on the switch is
    changed from MgmtAllowed=YES to MgmtAllowed=NO and the
    link is bounced, FULL_MGMT_P_KEY doesn't get cleared
    from the pkey table. This also occurs when the QSFP
    cable is moved from a switch port with MgmtAllowed=YES
    to a MgmtAllowed=NO port. Clear pkey entry properly.

    Also, when the driver is loaded and the switch port is
    set to MgmtAllowed=NO, FULL_MGMT_P_KEY shouldn't be added
    to pkey table after FM is started. Only set FULL_MGMT_P_KEY
    in the pkey table if switch port is configured to
    MgmtAllowed=YES.

    Reviewed-by: Dean Luick
    Signed-off-by: Sebastian Sanchez
    Signed-off-by: Doug Ledford

    Sebastian Sanchez
     
  • rdmavt allows the driver to specify the size of the ack queue, but
    only uses it for the modify QP limit testing for setting the atomic
    limit value.

    The driver dependent size is now used to size the s_ack_queue ring
    dynamicially.

    Since the driver knows its size, the driver will use its define
    for any ring size dependent code.

    Reviewed-by: Mitko Haralanov
    Signed-off-by: Mike Marciniszyn
    Signed-off-by: Doug Ledford

    Mike Marciniszyn
     
  • Commit b9b06cb6feda
    ("IB/hfi1: Fix missing lock/unlock in verbs drain callback")
    added a spin lock.

    Unfortunately, the new lock code can be called from a base
    level interrupt state, and an interrupt that can get stacked
    will attempt to get the same lock.

    Fix by using the flag save/restore spin lock variation.

    Cc: stable@vger.kernel.org # 4.6+
    Reviewed-by: Sebastian Sanchez
    Signed-off-by: Mike Marciniszyn
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Mike Marciniszyn
     
  • Enable trace generation for packets with the "Send Last with
    Invalidate" and "Send Only with Invalidate" opcodes.

    Reviewed-by: Mike Marciniszyn
    Reviewed-by: Dennis Dalessandro
    Signed-off-by: Jianxin Xiong
    Signed-off-by: Doug Ledford

    Jianxin Xiong
     
  • A new union member "ieth" (Invalidate Extended Transport Header) is
    added to the packet header definition in preparation of supporting
    the send with invalidate opcode.

    Reviewed-by: Mike Marciniszyn
    Reviewed-by: Dennis Dalessandro
    Signed-off-by: Jianxin Xiong
    Signed-off-by: Doug Ledford

    Jianxin Xiong
     

26 May, 2016

10 commits

  • Doug Ledford
     
  • The TODO list for the hfi1 driver was completed during 4.6. In addition
    other objections raised (which are far beyond what was in the TODO list)
    have been addressed as well. It is now time to remove the driver from
    staging and into the drivers/infiniband sub-tree.

    Reviewed-by: Jubin John
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Dennis Dalessandro
     
  • Building the qib driver with gcc version 6.1.0 raises the following
    build warning:
    drivers/infiniband/hw/qib/qib_iba7322.c:1311:39: warning:
    'qib_7322_intr_msgs' defined but not used [-Wunused-const-variable=]
    static const struct qib_hwerror_msgs qib_7322_intr_msgs[] = {
    ^~~~~~~~~~~~~~~~~~
    Remove the unused qib_7322_intr_msgs[]

    Reviewed-by: Dennis Dalessandro
    Reviewed-by: Mike Marciniszyn
    Signed-off-by: Jubin John
    Signed-off-by: Doug Ledford

    Jubin John
     
  • Use kzalloc_node instead of kzalloc for rdmavt memory region segment
    allocation to optimize for performance on NUMA platforms.

    Reviewed-by: Dennis Dalessandro
    Signed-off-by: Jubin John
    Signed-off-by: Doug Ledford

    Jubin John
     
  • The usage of the various vmalloc APIs do not consistently zero memory
    when allocating the swqe. Insure zeroing variants are used.

    Reviewed-by: Mitko Haralanov
    Signed-off-by: Mike Marciniszyn
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Mike Marciniszyn
     
  • In IB networks, and specifically in IPoIB/rdmacm traffic, the device
    address of an IPoIB interface is used as a means to exchange information
    between nodes needed for communication.

    Currently an IPoIB interface will always be created with a device
    address based on its node GUID without a way to change that.

    This change adds the ability to set the device address of an IPoIB
    interface by value. We use the set mac address ndo to do that.

    The flow should be broken down to two:
    1) The GID value is already in the GID table,
    in this case the interface will be able to set carrier up.

    2) The GID value is not yet in the GID table,
    in this case the interface won't try to join the multicast group
    and will wait (listen on GID_CHANGE event) until the GID is inserted.

    In order to track those changes, we add a new flag:
    * IPOIB_FLAG_DEV_ADDR_SET.

    When set, it means the dev_addr is a based on a value in the gid
    table. this bit will be cleared upon a dev_addr change triggered
    by the user and set after validation.

    Per IB spec the port GUID can't change if the module is loaded.
    port GUID is the basis for GID at index 0 which is the basis for
    the default device address of a ipoib interface.

    The issue is that there are devices that don't follow the spec,
    they change the port GUID while HCA is powered on, so in order
    not to break userspace applications. We need to check if the
    user wanted to control the device address and we assume that
    if he sets the device address back to be based on GID index 0,
    he no longer wishs to control it.

    In order to track this, we add an additional flag:
    * IPOIB_FLAG_DEV_ADDR_CTRL

    When setting the device address, there is no validation of the upper
    twelve bytes of the device address (flags, qpn, subnet prefix) as those
    bytes are not under the control of the user.

    Signed-off-by: Mark Bloch
    Reviewed-by: Leon Romanovsky
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Doug Ledford

    Mark Bloch
     
  • Check (via an SA query) if the SM supports the new option for SendOnly
    multicast joins.
    If the SM supports that option it will use the new join state to create
    such multicast group.
    If SendOnlyFullMember is supported, we wouldn't use faked FullMember state
    join for SendOnly MCG, use the correct state if supported.

    This check is performed at every invocation of mcast_restart task, to be
    sure that the driver stays in sync with the current state of the SM.

    Signed-off-by: Erez Shitrit
    Reviewed-by: Leon Romanovsky
    Signed-off-by: Doug Ledford

    Erez Shitrit
     
  • There are four types for MCG, FullMember, NonMember, SendOnlyNonMember,
    and the new added type: SendOnlyFullMember.
    Add support for the new SendOnlyFullMember join state.

    The new type allows host to send join request as sendonly, it will cause the
    group to be created but without getting packets from this multicast back to the
    host.

    Signed-off-by: Erez Shitrit
    Reviewed-by: Leon Romanovsky
    Reviewed-by: Christoph Lameter
    Reviewed-by: Ira Weiny
    Signed-off-by: Doug Ledford

    Erez Shitrit
     
  • New SA query function to return the ClassPortInfo struct from the SA.
    If the SM supports FullMemberSendOnly mode for MCG's, it sets a
    capability bit in the capability_mask2 field of the response.

    Signed-off-by: Erez Shitrit
    Reviewed-by: Leon Romanovsky
    Signed-off-by: Doug Ledford

    Erez Shitrit
     
  • Change struct ib_class_port_info to conform to IB Spec 1.3
    That in order to get specific capability mask from ClassPortInfo mad.

    >From the IB Spec, ClassPortInfo section:
    "CapabilityMask2 Bits 0-26: Additional class-specific capabilities...
    RespTimeValue the rest 5 bits"

    The new struct now has one field for capabilitymask2 (previously was the
    reserved field) and the resp_time field.

    And it fixes up qib and srpt, use of the field repurposed to be used as
    capabilitymask2:
    IB/qib: Change pma_get_classportinfo
    IB/srpt: Adjust the use of ib_class_port_info

    Signed-off-by: Erez Shitrit
    Reviewed-by: Leon Romanovsky
    Reviewed-by: Hal Rosenstock
    Signed-off-by: Doug Ledford

    Erez Shitrit
     

25 May, 2016

5 commits

  • There is an assumption that rdmacm is used only between nodes
    in the same IB subnet, this why ARP resolution can be used to turn
    IP to GID in rdmacm.

    When dealing with IB communication between subnets this assumption
    is no longer valid. ARP resolution will get us the next hop device
    address and not the peer node's device address.

    To solve this issue, we will check user space if it can provide the
    GID of the peer node, and fail if not.

    We add a sequence number to identify each request and fill in the GID
    upon answer from userspace.

    Signed-off-by: Mark Bloch
    Signed-off-by: Doug Ledford

    Mark Bloch
     
  • Move SA ibnl client registration to ib_core module init.
    This will allow us to register a single client to handle
    all RDMA_NL_LS operations and make it SA independent.

    Signed-off-by: Mark Bloch
    Signed-off-by: Doug Ledford

    Mark Bloch
     
  • Consolidate ib_sa into ib_core, this commit eliminates
    ib_sa.ko and makes it part of ib_core.ko

    Signed-off-by: Mark Bloch
    Signed-off-by: Doug Ledford

    Mark Bloch
     
  • Consolidate ib_mad into ib_core, this commit eliminates
    ib_mad.ko and makes it part of ib_core.ko

    Signed-off-by: Mark Bloch
    Signed-off-by: Doug Ledford

    Mark Bloch
     
  • IB address resolution is declared as a module (ib_addr.ko) which loads
    itself before IB core module (ib_core.ko).

    It causes to the scenario where IB netlink which is initialized by IB
    core can't be used by ib_addr.ko.

    In order to solve it, we are converting ib_addr.ko to be part of
    IB core module.

    Signed-off-by: Leon Romanovsky
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Mark Bloch
    Signed-off-by: Doug Ledford

    Leon Romanovsky
     

24 May, 2016

1 commit

  • [ 598.852037] ------------[ cut here ]------------
    [ 598.856698] WARNING: at lib/dma-debug.c:887 check_unmap+0xf8/0x920()
    [ 598.863079] cxgb3 0000:01:00.0: DMA-API: device driver frees DMA memory with different size [device address=0x0000000003310000] [map size=17 bytes] [unmap size=16 bytes]
    [ 598.878265] Modules linked in: xprtrdma ib_isert iscsi_target_mod ib_iser libiscsi scsi_transport_iscsi ib_srpt target_core_mod ib_srp scsi_transport_srp scsi_tgt ib_ipoib rdma_ucm ib_ucm ib_uverbs ib_umad rdma_cm ib_cm iw_cm ib_sa ib_mad kvm_amd kvm ipmi_devintf ipmi_ssif dcdbas pcspkr ipmi_si sg ipmi_msghandler acpi_power_meter amd64_edac_mod shpchp edac_core sp5100_tco k10temp edac_mce_amd i2c_piix4 acpi_cpufreq nfsd auth_rpcgss nfs_acl lockd grace sunrpc ip_tables xfs libcrc32c sd_mod crc_t10dif crct10dif_generic crct10dif_common ata_generic iw_cxgb3 pata_acpi ib_core ib_addr mgag200 syscopyarea sysfillrect sysimgblt i2c_algo_bit drm_kms_helper ttm pata_atiixp drm ahci libahci serio_raw i2c_core cxgb3 libata bnx2 mdio dm_mirror dm_region_hash dm_log dm_mod
    [ 598.946822] CPU: 3 PID: 11820 Comm: cmtime Not tainted 3.10.0-327.el7.x86_64.debug #1
    [ 598.954681] Hardware name: Dell Inc. PowerEdge R415/0GXH08, BIOS 2.0.2 10/22/2012
    [ 598.962193] ffff8808077479a8 000000000381a432 ffff880807747960 ffffffff81700918
    [ 598.969663] ffff880807747998 ffffffff8108b6c0 ffff880807747a80 ffff8808063f55c0
    [ 598.977132] ffffffff833ca850 0000000000000282 ffff88080b1bb800 ffff880807747a00
    [ 598.984602] Call Trace:
    [ 598.987062] [] dump_stack+0x19/0x1b
    [ 598.992224] [] warn_slowpath_common+0x70/0xb0
    [ 598.998254] [] warn_slowpath_fmt+0x5c/0x80
    [ 599.004033] [] check_unmap+0xf8/0x920
    [ 599.009369] [] ? sched_clock+0x9/0x10
    [ 599.014702] [] debug_dma_free_coherent+0x7e/0xa0
    [ 599.021008] [] cxio_destroy_cq+0xcc/0x160 [iw_cxgb3]
    [ 599.027654] [] iwch_destroy_cq+0xf0/0x140 [iw_cxgb3]
    [ 599.034307] [] ib_destroy_cq+0x1e/0x30 [ib_core]
    [ 599.040601] [] ib_uverbs_close+0x302/0x4d0 [ib_uverbs]
    [ 599.047417] [] __fput+0x102/0x310
    [ 599.052401] [] ____fput+0xe/0x10
    [ 599.057297] [] task_work_run+0xb4/0xe0
    [ 599.062719] [] do_exit+0x304/0xc60
    [ 599.067789] [] ? native_sched_clock+0x35/0x80
    [ 599.073820] [] ? sched_clock+0x9/0x10
    [ 599.079153] [] ? _raw_spin_unlock_irq+0x2c/0x50
    [ 599.085358] [] do_group_exit+0x4c/0xc0
    [ 599.090779] [] get_signal_to_deliver+0x2e1/0x960
    [ 599.097071] [] do_signal+0x57/0x6e0
    [ 599.102229] [] ? sysret_signal+0x5/0x4e
    [ 599.107738] [] do_notify_resume+0x5f/0xb0
    [ 599.113418] [] int_signal+0x12/0x17
    [ 599.118576] ---[ end trace 1e4653102e7e7019 ]---
    [ 599.123211] Mapped at:
    [ 599.125577] [] debug_dma_alloc_coherent+0x2b/0x80
    [ 599.131968] [] cxio_create_cq+0xf2/0x1f0 [iw_cxgb3]
    [ 599.139920] [] iwch_create_cq+0x105/0x4e0 [iw_cxgb3]
    [ 599.147895] [] create_cq.constprop.14+0x184/0x2e0 [ib_uverbs]
    [ 599.156649] [] ib_uverbs_create_cq+0x10b/0x140 [ib_uverbs]

    Fixes: b955150ea784 ('RDMA/cxgb3: When a user QP is marked in error, also mark the CQs in error')
    Signed-off-by: Honggang Li
    Reviewed-by: Leon Romanovsky
    Reviewed-by: Steve Wise
    Signed-off-by: Doug Ledford

    Honggang Li
     

21 May, 2016

2 commits

  • Pull rdma updates from Doug Ledford:
    "Primary 4.7 merge window changes

    - Updates to the new Intel X722 iWARP driver
    - Updates to the hfi1 driver
    - Fixes for the iw_cxgb4 driver
    - Misc core fixes
    - Generic RDMA READ/WRITE API addition
    - SRP updates
    - Misc ipoib updates
    - Minor mlx5 updates"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (148 commits)
    IB/mlx5: Fire the CQ completion handler from tasklet
    net/mlx5_core: Use tasklet for user-space CQ completion events
    IB/core: Do not require CAP_NET_ADMIN for packet sniffing
    IB/mlx4: Fix unaligned access in send_reply_to_slave
    IB/mlx5: Report Scatter FCS device capability when supported
    IB/mlx5: Add Scatter FCS support for Raw Packet QP
    IB/core: Add Scatter FCS create flag
    IB/core: Add Raw Scatter FCS device capability
    IB/core: Add extended device capability flags
    i40iw: pass hw_stats by reference rather than by value
    i40iw: Remove unnecessary synchronize_irq() before free_irq()
    i40iw: constify i40iw_vf_cqp_ops structure
    IB/mlx5: Add UARs write-combining and non-cached mapping
    IB/mlx5: Allow mapping the free running counter on PROT_EXEC
    IB/mlx4: Use list_for_each_entry_safe
    IB/SA: Use correct free function
    IB/core: Fix a potential array overrun in CMA and SA agent
    IB/core: Remove unnecessary check in ibnl_rcv_msg
    IB/IWPM: Fix a potential skb leak
    RDMA/nes: replace custom print_hex_dump()
    ...

    Linus Torvalds
     
  • Pull powerpc updates from Michael Ellerman:
    "Highlights:
    - Support for Power ISA 3.0 (Power9) Radix Tree MMU from Aneesh Kumar K.V
    - Live patching support for ppc64le (also merged via livepatching.git)

    Various cleanups & minor fixes from:
    - Aaro Koskinen, Alexey Kardashevskiy, Andrew Donnellan, Aneesh Kumar K.V,
    Chris Smart, Daniel Axtens, Frederic Barrat, Gavin Shan, Ian Munsie,
    Lennart Sorensen, Madhavan Srinivasan, Mahesh Salgaonkar, Markus Elfring,
    Michael Ellerman, Oliver O'Halloran, Paul Gortmaker, Paul Mackerras,
    Rashmica Gupta, Russell Currey, Suraj Jitindar Singh, Thiago Jung
    Bauermann, Valentin Rothberg, Vipin K Parashar.

    General:
    - Update LMB associativity index during DLPAR add/remove from Nathan
    Fontenot
    - Fix branching to OOL handlers in relocatable kernel from Hari Bathini
    - Add support for userspace Power9 copy/paste from Chris Smart
    - Always use STRICT_MM_TYPECHECKS from Michael Ellerman
    - Add mask of possible MMU features from Michael Ellerman

    PCI:
    - Enable pass through of NVLink to guests from Alexey Kardashevskiy
    - Cleanups in preparation for powernv PCI hotplug from Gavin Shan
    - Don't report error in eeh_pe_reset_and_recover() from Gavin Shan
    - Restore initial state in eeh_pe_reset_and_recover() from Gavin Shan
    - Revert "powerpc/eeh: Fix crash in eeh_add_device_early() on Cell"
    from Guilherme G Piccoli
    - Remove the dependency on EEH struct in DDW mechanism from Guilherme
    G Piccoli

    selftests:
    - Test cp_abort during context switch from Chris Smart
    - Add several tests for transactional memory support from Rashmica
    Gupta

    perf:
    - Add support for sampling interrupt register state from Anju T
    - Add support for unwinding perf-stackdump from Chandan Kumar

    cxl:
    - Configure the PSL for two CAPI ports on POWER8NVL from Philippe
    Bergheaud
    - Allow initialization on timebase sync failures from Frederic Barrat
    - Increase timeout for detection of AFU mmio hang from Frederic
    Barrat
    - Handle num_of_processes larger than can fit in the SPA from Ian
    Munsie
    - Ensure PSL interrupt is configured for contexts with no AFU IRQs
    from Ian Munsie
    - Add kernel API to allow a context to operate with relocate disabled
    from Ian Munsie
    - Check periodically the coherent platform function's state from
    Christophe Lombard

    Freescale:
    - Updates from Scott: "Contains 86xx fixes, minor device tree fixes,
    an erratum workaround, and a kconfig dependency fix."

    * tag 'powerpc-4.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (192 commits)
    powerpc/86xx: Fix PCI interrupt map definition
    powerpc/86xx: Move pci1 definition to the include file
    powerpc/fsl: Fix build of the dtb embedded kernel images
    powerpc/fsl: Fix rcpm compatible string
    powerpc/fsl: Remove FSL_SOC dependency from FSL_LBC
    powerpc/fsl-pci: Add a workaround for PCI 5 errata
    powerpc/fsl: Fix SPI compatible on t208xrdb and t1040rdb
    powerpc/powernv/npu: Add PE to PHB's list
    powerpc/powernv: Fix insufficient memory allocation
    powerpc/iommu: Remove the dependency on EEH struct in DDW mechanism
    Revert "powerpc/eeh: Fix crash in eeh_add_device_early() on Cell"
    powerpc/eeh: Drop unnecessary label in eeh_pe_change_owner()
    powerpc/eeh: Ignore handlers in eeh_pe_reset_and_recover()
    powerpc/eeh: Restore initial state in eeh_pe_reset_and_recover()
    powerpc/eeh: Don't report error in eeh_pe_reset_and_recover()
    Revert "powerpc/powernv: Exclude root bus in pnv_pci_reset_secondary_bus()"
    powerpc/powernv/npu: Enable NVLink pass through
    powerpc/powernv/npu: Rework TCE Kill handling
    powerpc/powernv/npu: Add set/unset window helpers
    powerpc/powernv/ioda2: Export debug helper pe_level_printk()
    ...

    Linus Torvalds
     

19 May, 2016

1 commit

  • Pull SCSI updates from James Bottomley:
    "First round of SCSI updates for the 4.6+ merge window.

    This batch includes the usual quota of driver updates (bnx2fc, mp3sas,
    hpsa, ncr5380, lpfc, hisi_sas, snic, aacraid, megaraid_sas). There's
    also a multiqueue update for scsi_debug, assorted bug fixes and a few
    other minor updates (refactor of scsi_sg_pools into generic code, alua
    and VPD updates, and struct timeval conversions)"

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (138 commits)
    mpt3sas: Used "synchronize_irq()"API to synchronize timed-out IO & TMs
    mpt3sas: Set maximum transfer length per IO to 4MB for VDs
    mpt3sas: Updating mpt3sas driver version to 13.100.00.00
    mpt3sas: Fix initial Reference tag field for 4K PI drives.
    mpt3sas: Handle active cable exception event
    mpt3sas: Update MPI header to 2.00.42
    Revert "lpfc: Delete unnecessary checks before the function call mempool_destroy"
    eata_pio: missing break statement
    hpsa: Fix type ZBC conditional checks
    scsi_lib: Decode T10 vendor IDs
    scsi_dh_alua: do not fail for unknown VPD identification
    scsi_debug: use locally assigned naa
    scsi_debug: uuid for lu name
    scsi_debug: vpd and mode page work
    scsi_debug: add multiple queue support
    bfa: fix bfa_fcb_itnim_alloc() error handling
    megaraid_sas: Downgrade two success messages to info
    cxlflash: Fix to resolve dead-lock during EEH recovery
    scsi_debug: rework resp_report_luns
    scsi_debug: use pdt constants
    ...

    Linus Torvalds
     

18 May, 2016

4 commits

  • Previously, mlx5_ib_cq_comp was executed from interrupt context.
    Under heavy load, this could cause the CPU core to be in an interrupt
    context too long.
    Instead of executing the handler from the interrupt context we
    execute it from a much friendly tasklet context.

    Signed-off-by: Matan Barak
    Signed-off-by: Doug Ledford

    Matan Barak
     
  • In the Ethernet/TCP world, CAP_NET_RAW is sufficient to allow a program
    to listen to all incoming packets on a specific interface, and the
    higher CAP_NET_ADMIN is required to set the interface into promiscuous
    mode. We want to emulate that same basic division of privilege in the
    RDMA stack, so when dealing with Raw Ethernet QPs, allow apps with
    CAP_NET_RAW to listen to all incoming flows (and direct them as they see
    fit in their own listen stream). Do not require CAP_NET_ADMIN just to
    listen to traffic already incoming. Reserve CAP_NET_ADMIN if we attempt
    to set promiscuous mode.

    Signed-off-by: Christoph Lameter
    Signed-off-by: Doug Ledford

    Christoph Lameter
     
  • The problem is that the function 'send_reply_to_slave' gets the
    'req_sa_mad' as a pointer whose address is only aliged to 4 bytes
    but is 8 bytes in size. This can result in unaligned access faults
    on certain architectures.

    Sowmini Varadhan pointed to this reply from Dave Miller that say
    that memcpy should not be used to solve alignment issues:
    https://lkml.org/lkml/2015/10/21/352

    Optimization of memcpy to 'ldx' instruction can only happen if the
    compiler knows that the size of the data we are copying is 8 bytes
    and it assumes it is aligned to 8 bytes. If the compiler know the
    type is not aligned to 8 it must not optimize the 8 byte copy.
    Defining the data type as aligned to 4 forces the compiler to treat
    all accesses as though they aren't aligned and avoids the 'ldx'
    optimization.

    Full credit for the idea goes to Jason Gunthorpe
    .

    Signed-off-by: Shamir Rabinovitch
    Signed-off-by: Doug Ledford

    shamir rabinovitch
     
  • Pull trivial tree updates from Jiri Kosina.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (21 commits)
    gitignore: fix wording
    mfd: ab8500-debugfs: fix "between" in printk
    memstick: trivial fix of spelling mistake on management
    cpupowerutils: bench: fix "average"
    treewide: Fix typos in printk
    IB/mlx4: printk fix
    pinctrl: sirf/atlas7: fix printk spelling
    serial: mctrl_gpio: Grammar s/lines GPIOs/line GPIOs/, /sets/set/
    w1: comment spelling s/minmum/minimum/
    Blackfin: comment spelling s/divsor/divisor/
    metag: Fix misspellings in comments.
    ia64: Fix misspellings in comments.
    hexagon: Fix misspellings in comments.
    tools/perf: Fix misspellings in comments.
    cris: Fix misspellings in comments.
    c6x: Fix misspellings in comments.
    blackfin: Fix misspelling of 'register' in comment.
    avr32: Fix misspelling of 'definitions' in comment.
    treewide: Fix typos in printk
    Doc: treewide : Fix typos in DocBook/filesystem.xml
    ...

    Linus Torvalds
     

17 May, 2016

1 commit

  • Instead of special casing the handful of callers that check for
    iser-target rdma verbs specific shutdown, use a simple flag at
    iscsit_transport->rdma_shutdown so each driver can signal this.

    Also, update iscsi-target/tcp + cxgbit to rdma_shutdown = false.

    Cc: Varun Prakash
    Cc: Hariprasad Shenai
    Cc: Christoph Hellwig
    Cc: Sagi Grimberg
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     

14 May, 2016

5 commits