1. 15 Oct, 2017 30 commits
  2. 10 Oct, 2017 4 commits
    • Doug Ledford's avatar
      Merge tag 'mlx5-updates-2017-10-06' of... · 166245dd
      Doug Ledford authored
      Merge tag 'mlx5-updates-2017-10-06' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux into k.o/for-next
      
      Merge Mellanox shared pull request
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      166245dd
    • Colin Ian King's avatar
      IB/core: remove redundant check on prot_sg_cnt · 318a8ab7
      Colin Ian King authored
      prot_sg_cnt cannot be zero as a previous check on ret (from which
      prot_sg_cnt is assigned) returns -ENOMEM if is it zero.  Since
      it cannot be zero we can simplify the code by removing the non
      -zero check on prot_sg_cnt and redundant else statement.
      
      Detected by CoverityScan, COD#1357188 ("Logically dead code")
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      318a8ab7
    • Bart Van Assche's avatar
      IB/core: Simplify sa_path_set_[sd]lid() calls · 9d187177
      Bart Van Assche authored
      Instead of making every caller convert the second argument of
      sa_path_set_slid() and sa_path_set_dlid() to big endian format,
      make these two functions accept LIDs in CPU endian format.
      This patch does not change any functionality.
      Signed-off-by: default avatarBart Van Assche <bart.vanassche@wdc.com>
      Cc: Sean Hefty <sean.hefty@intel.com>
      Cc: Dasaratharaman Chandramouli <dasaratharaman.chandramouli@intel.com>
      Cc: Don Hiatt <don.hiatt@intel.com>
      Cc: Ira Weiny <ira.weiny@intel.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      9d187177
    • Arnd Bergmann's avatar
      infiniband: add MMU dependency for user_mem · 9cc12ad6
      Arnd Bergmann authored
      The infiniband subsystem causes a link failure when the umem
      driver is built on MMU-less systems:
      
      mm/mmu_notifier.o: In function `do_mmu_notifier_register':
      mmu_notifier.c:(.text+0x32): undefined reference to `mm_take_all_locks'
      drivers/infiniband/core/umem.o: In function `ib_umem_get':
      umem.c:(.text+0x132): undefined reference to `can_do_mlock'
      drivers/infiniband/core/umem_odp.o: In function `ib_umem_odp_map_dma_pages':
      umem_odp.c:(.text+0x766): undefined reference to `get_user_pages_remote'
      
      This bug has existed for a while but only become apparent in ARM
      randconfig builds when the dependency on PCI was lifted, as none
      of the ARM-NOMMU targets support PCI at the moment.
      
      We could probably get the umem driver to build by providing an
      alternative implementation 'can_do_mlock()' that returns false
      on NOMMU-systems, but then we'd still have a problem with the
      mmu-notifiers required by CONFIG_INFINIBAND_ON_DEMAND_PAGING,
      so simply forbidding umem with NOMMU seems like the simplest
      workaround.
      
      Fixes: 931bc0d9 ("IB: Move PCI dependency from root KConfig to HW's KConfigs")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      9cc12ad6
  3. 09 Oct, 2017 2 commits
  4. 04 Oct, 2017 4 commits
    • Don Hiatt's avatar
      IB/hfi1: Do not warn on lid conversions for OPA · 4988be58
      Don Hiatt authored
      On OPA devices opa_local_smp_check will receive 32Bit LIDs when the LID
      is Extended. In such cases, it is okay to lose the upper 16 bits of the
      LID as this information is obtained elsewhere. Do not issue a warning
      when calling ib_lid_cpu16() in this case by masking out the upper 16Bits.
      
      [75920.148985] ------------[ cut here ]------------
      [75920.154651] WARNING: CPU: 0 PID: 1718 at ./include/rdma/ib_verbs.h:3788 hfi1_process_mad+0x1c1f/0x1c80 [hfi1]
      [75920.166192] Modules linked in: ib_ipoib hfi1(E) rdmavt(E) rdma_ucm(E) ib_ucm(E) rdma_cm(E) ib_cm(E) iw_cm(E) ib_umad(E) ib_uverbs(E) ib_core(E) libiscsi scsi_transport_iscsi dm_mirror dm_region_hash dm_log dm_mod dax x86_pkg_temp_thermal intel_powerclamp coretemp kvm irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc aesni_intel mei_me ipmi_si iTCO_wdt iTCO_vendor_support crypto_simd ipmi_devintf pcspkr mei sg i2c_i801 glue_helper lpc_ich shpchp ioatdma mfd_core wmi ipmi_msghandler cryptd acpi_power_meter acpi_pad nfsd auth_rpcgss nfs_acl lockd grace sunrpc ip_tables xfs libcrc32c sd_mod mgag200 drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ttm drm igb ptp ahci libahci pps_core crc32c_intel libata dca i2c_algo_bit i2c_core [last unloaded: ib_core]
      [75920.246331] CPU: 0 PID: 1718 Comm: kworker/0:1H Tainted: G        W I E   4.13.0-rc7+ #1
      [75920.255907] Hardware name: Intel Corporation S2600WT2/S2600WT2, BIOS SE5C610.86B.01.01.0008.021120151325 02/11/2015
      [75920.268158] Workqueue: ib-comp-wq ib_cq_poll_work [ib_core]
      [75920.274934] task: ffff88084a718000 task.stack: ffffc9000a424000
      [75920.282123] RIP: 0010:hfi1_process_mad+0x1c1f/0x1c80 [hfi1]
      [75920.288881] RSP: 0018:ffffc9000a427c38 EFLAGS: 00010206
      [75920.295265] RAX: 0000000000010001 RBX: ffff8808361420e8 RCX: ffff880837811d80
      [75920.303784] RDX: 0000000000000002 RSI: 0000000000007fff RDI: ffff880837811d80
      [75920.312302] RBP: ffffc9000a427d38 R08: 0000000000000000 R09: ffff8808361420e8
      [75920.320819] R10: ffff88083841f0e8 R11: ffffc9000a427da8 R12: 0000000000000001
      [75920.329335] R13: ffff880837810000 R14: 0000000000000000 R15: ffff88084f1a4800
      [75920.337849] FS:  0000000000000000(0000) GS:ffff88085f400000(0000) knlGS:0000000000000000
      [75920.347450] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [75920.354405] CR2: 00007f9e4b3d9000 CR3: 0000000001c09000 CR4: 00000000001406f0
      [75920.362947] Call Trace:
      [75920.366257]  ? ib_mad_recv_done+0x258/0x9b0 [ib_core]
      [75920.372457]  ? ib_mad_recv_done+0x258/0x9b0 [ib_core]
      [75920.378652]  ? __kmalloc+0x1df/0x210
      [75920.383229]  ib_mad_recv_done+0x305/0x9b0 [ib_core]
      [75920.389270]  __ib_process_cq+0x5d/0xb0 [ib_core]
      [75920.395032]  ib_cq_poll_work+0x20/0x60 [ib_core]
      [75920.400777]  process_one_work+0x149/0x360
      [75920.405836]  worker_thread+0x4d/0x3c0
      [75920.410505]  kthread+0x109/0x140
      [75920.414681]  ? rescuer_thread+0x380/0x380
      [75920.419731]  ? kthread_park+0x60/0x60
      [75920.424406]  ret_from_fork+0x25/0x30
      [75920.428972] Code: 4c 89 9d 58 ff ff ff 49 89 45 00 66 b8 00 02 49 89 45 08 e8 44 27 89 e0 4c 8b 9d 58 ff ff ff e9 d8 f6 ff ff 0f ff e9 55 e7 ff ff <0f> ff e9 3b e5 ff ff 0f ff 0f 1f 84 00 00 00 00 00 e9 4b e9 ff
      [75921.451269] ---[ end trace cf26df27c9597265 ]---
      
      Fixes: 62ede777 ("Add OPA extended LID support")
      Reviewed-by: default avatarMike Marciniszyn <mike.marciniszyn@intel.com>
      Signed-off-by: default avatarDon Hiatt <don.hiatt@intel.com>
      Signed-off-by: default avatarDennis Dalessandro <dennis.dalessandro@intel.com>
      Reviewed-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      4988be58
    • Don Hiatt's avatar
      IB/core: Do not warn on lid conversions for OPA · 6588e412
      Don Hiatt authored
      On OPA devices the user_mad recv_handler can receive 32Bit LIDs
      (e.g. OPA_PERMISSIVE_LID) and it is okay to lose the upper 16 bits
      of the LID as this information is obtained elsewhere. Do not issue
      a warning when calling ib_lid_be16() in this case by masking out
      the upper 16Bits.
      
      [75667.310846] ------------[ cut here ]------------
      [75667.316447] WARNING: CPU: 0 PID: 1718 at ./include/rdma/ib_verbs.h:3799 recv_handler+0x15a/0x170 [ib_umad]
      [75667.327640] Modules linked in: ib_ipoib hfi1(E) rdmavt(E) rdma_ucm(E) ib_ucm(E) rdma_cm(E) ib_cm(E) iw_cm(E) ib_umad(E) ib_uverbs(E) ib_core(E) libiscsi scsi_transport_iscsi dm_mirror dm_region_hash dm_log dm_mod dax x86_pkg_temp_thermal intel_powerclamp coretemp kvm irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc aesni_intel mei_me ipmi_si iTCO_wdt iTCO_vendor_support crypto_simd ipmi_devintf pcspkr mei sg i2c_i801 glue_helper lpc_ich shpchp ioatdma mfd_core wmi ipmi_msghandler cryptd acpi_power_meter acpi_pad nfsd auth_rpcgss nfs_acl lockd grace sunrpc ip_tables xfs libcrc32c sd_mod mgag200 drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ttm drm igb ptp ahci libahci pps_core crc32c_intel libata dca i2c_algo_bit i2c_core [last unloaded: ib_core]
      [75667.407704] CPU: 0 PID: 1718 Comm: kworker/0:1H Tainted: G        W I E   4.13.0-rc7+ #1
      [75667.417310] Hardware name: Intel Corporation S2600WT2/S2600WT2, BIOS SE5C610.86B.01.01.0008.021120151325 02/11/2015
      [75667.429555] Workqueue: ib-comp-wq ib_cq_poll_work [ib_core]
      [75667.436360] task: ffff88084a718000 task.stack: ffffc9000a424000
      [75667.443549] RIP: 0010:recv_handler+0x15a/0x170 [ib_umad]
      [75667.450090] RSP: 0018:ffffc9000a427ce8 EFLAGS: 00010286
      [75667.456508] RAX: 00000000ffffffff RBX: ffff88085159ce80 RCX: 0000000000000000
      [75667.465094] RDX: ffff88085a47b068 RSI: 0000000000000000 RDI: ffff88085159cf00
      [75667.473668] RBP: ffffc9000a427d38 R08: 000000000001efc0 R09: ffff88085159ce80
      [75667.482228] R10: ffff88085f007480 R11: ffff88084acf20e8 R12: ffff88085a47b020
      [75667.490824] R13: ffff881056842e10 R14: ffff881056840200 R15: ffff88104c8d0800
      [75667.499390] FS:  0000000000000000(0000) GS:ffff88085f400000(0000) knlGS:0000000000000000
      [75667.509028] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [75667.516080] CR2: 00007f9e4b3d9000 CR3: 0000000001c09000 CR4: 00000000001406f0
      [75667.524664] Call Trace:
      [75667.528044]  ? find_mad_agent+0x7c/0x1b0 [ib_core]
      [75667.534031]  ? ib_mark_mad_done+0x73/0xa0 [ib_core]
      [75667.540142]  ib_mad_recv_done+0x423/0x9b0 [ib_core]
      [75667.546215]  __ib_process_cq+0x5d/0xb0 [ib_core]
      [75667.552007]  ib_cq_poll_work+0x20/0x60 [ib_core]
      [75667.557766]  process_one_work+0x149/0x360
      [75667.562844]  worker_thread+0x4d/0x3c0
      [75667.567529]  kthread+0x109/0x140
      [75667.571713]  ? rescuer_thread+0x380/0x380
      [75667.576775]  ? kthread_park+0x60/0x60
      [75667.581447]  ret_from_fork+0x25/0x30
      [75667.586014] Code: 43 4a 0f b6 45 c6 88 43 4b 48 8b 45 b0 48 89 43 4c 48 8b 45 b8 48 89 43 54 8b 45 c0 0f c8 89 43 5c e9 79 ff ff ff e8 16 4e fa e0 <0f> ff e9 42 ff ff ff 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00
      [75667.608323] ---[ end trace cf26df27c9597264 ]---
      
      Fixes: 62ede777 ("Add OPA extended LID support")
      Reviewed-by: default avatarMike Marciniszyn <mike.marciniszyn@intel.com>
      Signed-off-by: default avatarDon Hiatt <don.hiatt@intel.com>
      Signed-off-by: default avatarDennis Dalessandro <dennis.dalessandro@intel.com>
      Reviewed-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      6588e412
    • Sebastian Sanchez's avatar
      IB/rdmavt: Correct issues with read-mostly and send size cache lines · 7ebfc93e
      Sebastian Sanchez authored
      The s_ahgpsn was incorrectly placed in the read-mostly section of the QP
      and the s_curr_size and s_hdrwords are oversized. The misplaced
      s_ahgpsn will cause the read-mostly cachelines to thrash.
      
      Place s_ahgpsn in the send side cache lines and correctly size and
      s_hdrwords and s_cur_size to keep the send side cachelines at the same
      size.
      Reviewed-by: default avatarMike Marciniszyn <mike.marciniszyn@intel.com>
      Signed-off-by: default avatarSebastian Sanchez <sebastian.sanchez@intel.com>
      Signed-off-by: default avatarDennis Dalessandro <dennis.dalessandro@intel.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      7ebfc93e
    • Don Hiatt's avatar
      IB/core: Use __be32 for LIDs in opa_is_extended_lid · a917374e
      Don Hiatt authored
      The LIDs passed to opa_extended_lid are in __be32 format,
      change function signature accordingly.
      
      This fixes the following sparse warnings:
        drivers/infiniband/core/cm.c:1181:60: warning: incorrect type in
      	argument 1 (different ba
        drivers/infiniband/core/cm.c:1182:60: warning: incorrect type in
      	argument 2 (different ba
        drivers/infiniband/core/cm.c:1242:68: warning: incorrect type in
      	argument 1 (different ba
        drivers/infiniband/core/cm.c:1243:68: warning: incorrect type in
      	argument 2 (different ba
        drivers/infiniband/core/cm.c:2922:66: warning: incorrect type in
      	argument 1 (different ba
        drivers/infiniband/core/cm.c:2923:66: warning: incorrect type in
      	argument 2 (different ba
        include/rdma/opa_addr.h:102:14: warning: cast to restricted __be32
      
      Fixes: e92aa00a ("IB/CM: Add OPA Path record support to CM")
      Reviewed-by: default avatarMike Marciniszyn <mike.marciniszyn@intel.com>
      Signed-off-by: default avatarDon Hiatt <don.hiatt@intel.com>
      Signed-off-by: default avatarDennis Dalessandro <dennis.dalessandro@intel.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      a917374e