1. 06 Jul, 2020 11 commits
  2. 03 Jul, 2020 2 commits
  3. 02 Jul, 2020 2 commits
    • Jason Gunthorpe's avatar
      RDMA/core: Fix bogus WARN_ON during ib_unregister_device_queued() · 0cb42c02
      Jason Gunthorpe authored
      ib_unregister_device_queued() can only be used by drivers using the new
      dealloc_device callback flow, and it has a safety WARN_ON to ensure
      drivers are using it properly.
      
      However, if unregister and register are raced there is a special
      destruction path that maintains the uniform error handling semantic of
      'caller does ib_dealloc_device() on failure'. This requires disabling the
      dealloc_device callback which triggers the WARN_ON.
      
      Instead of using NULL to disable the callback use a special function
      pointer so the WARN_ON does not trigger.
      
      Fixes: d0899892 ("RDMA/device: Provide APIs from the core code to help unregistration")
      Link: https://lore.kernel.org/r/0-v1-a36d512e0a99+762-syz_dealloc_driver_jgg@nvidia.com
      Reported-by: syzbot+4088ed905e4ae2b0e13b@syzkaller.appspotmail.com
      Suggested-by: default avatarHillf Danton <hdanton@sina.com>
      Reviewed-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      0cb42c02
    • Jason Gunthorpe's avatar
      RDMA/ipoib: Fix ABBA deadlock with ipoib_reap_ah() · 65936bf2
      Jason Gunthorpe authored
      ipoib_mcast_carrier_on_task() insanely open codes a rtnl_lock() such that
      the only time flush_workqueue() can be called is if it also clears
      IPOIB_FLAG_OPER_UP.
      
      Thus the flush inside ipoib_flush_ah() will deadlock if it gets unlucky
      enough, and lockdep doesn't help us to find it early:
      
                CPU0               CPU1          CPU2
         __ipoib_ib_dev_flush()
            down_read(vlan_rwsem)
      
                               ipoib_vlan_add()
                                 rtnl_trylock()
                                 down_write(vlan_rwsem)
      
      				      ipoib_mcast_carrier_on_task()
      					 while (!rtnl_trylock())
      					      msleep(20);
      
            ipoib_flush_ah()
      	flush_workqueue(priv->wq)
      
      Clean up the ah_reaper related functions and lifecycle to make sense:
      
       - Start/Stop of the reaper should only be done in open/stop NDOs, not in
         any other places
      
       - cancel and flush of the reaper should only happen in the stop NDO.
         cancel is only functional when combined with IPOIB_STOP_REAPER.
      
       - Non-stop places were flushing the AH's just need to flush out dead AH's
         synchronously and ignore the background task completely. It is fully
         locked and harmless to leave running.
      
      Which ultimately fixes the ABBA deadlock by removing the unnecessary
      flush_workqueue() from the problematic place under the vlan_rwsem.
      
      Fixes: efc82eee ("IB/ipoib: No longer use flush as a parameter")
      Link: https://lore.kernel.org/r/20200625174219.290842-1-kamalheib1@gmail.comReported-by: default avatarKamal Heib <kheib@redhat.com>
      Tested-by: default avatarKamal Heib <kheib@redhat.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      65936bf2
  4. 30 Jun, 2020 1 commit
  5. 27 Jun, 2020 3 commits
  6. 24 Jun, 2020 10 commits
  7. 23 Jun, 2020 7 commits
  8. 22 Jun, 2020 4 commits
    • Kamal Heib's avatar
      RDMA/rxe: Remove unused rxe_mem_map_pages · f6b4c11f
      Kamal Heib authored
      This function is not in use - delete it.
      
      Fixes: 8700e3e7 ("Soft RoCE driver")
      Link: https://lore.kernel.org/r/20200622100731.27359-1-kamalheib1@gmail.comSigned-off-by: default avatarKamal Heib <kamalheib1@gmail.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
      f6b4c11f
    • Kamal Heib's avatar
      RDMA/hfi1: Remove hfi1_create_qp declaration · d5fdffe2
      Kamal Heib authored
      The function isn't implemented - delete the declaration.
      
      Link: https://lore.kernel.org/r/20200622094709.12981-1-kamalheib1@gmail.comSigned-off-by: default avatarKamal Heib <kamalheib1@gmail.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
      d5fdffe2
    • Kamal Heib's avatar
      RDMA/ipoib: Return void from ipoib_mcast_stop_thread() · 90cdff90
      Kamal Heib authored
      The return value from ipoib_mcast_stop_thread() is always 0 - change it to
      be void.
      
      Link: https://lore.kernel.org/r/20200622092256.6931-1-kamalheib1@gmail.comSigned-off-by: default avatarKamal Heib <kamalheib1@gmail.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
      90cdff90
    • Colton Lewis's avatar
      RDMA: Correct trivial kernel-doc inconsistencies · 11708142
      Colton Lewis authored
      Silence documentation build warnings by correcting kernel-doc comments.
      
      ./drivers/infiniband/core/verbs.c:1004: warning: Function parameter or member 'uobject' not described in 'ib_create_srq_user'
      ./drivers/infiniband/core/verbs.c:1004: warning: Function parameter or member 'udata' not described in 'ib_create_srq_user'
      ./drivers/infiniband/core/umem_odp.c:161: warning: Function parameter or member 'ops' not described in 'ib_umem_odp_alloc_child'
      ./drivers/infiniband/core/umem_odp.c:225: warning: Function parameter or member 'ops' not described in 'ib_umem_odp_get'
      ./drivers/infiniband/sw/rdmavt/ah.c:104: warning: Excess function parameter 'ah_attr' description in 'rvt_create_ah'
      ./drivers/infiniband/sw/rdmavt/ah.c:104: warning: Excess function parameter 'create_flags' description in 'rvt_create_ah'
      ./drivers/infiniband/ulp/iser/iscsi_iser.h:363: warning: Function parameter or member 'all_list' not described in 'iser_fr_desc'
      ./drivers/infiniband/ulp/iser/iscsi_iser.h:377: warning: Function parameter or member 'all_list' not described in 'iser_fr_pool'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:148: warning: Function parameter or member 'rsvd0' not described in 'opa_vesw_info'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:148: warning: Function parameter or member 'rsvd1' not described in 'opa_vesw_info'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:148: warning: Function parameter or member 'rsvd2' not described in 'opa_vesw_info'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:148: warning: Function parameter or member 'rsvd3' not described in 'opa_vesw_info'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:148: warning: Function parameter or member 'rsvd4' not described in 'opa_vesw_info'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:205: warning: Function parameter or member 'rsvd0' not described in 'opa_per_veswport_info'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:205: warning: Function parameter or member 'rsvd1' not described in 'opa_per_veswport_info'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:205: warning: Function parameter or member 'rsvd2' not described in 'opa_per_veswport_info'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:205: warning: Function parameter or member 'rsvd3' not described in 'opa_per_veswport_info'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:342: warning: Function parameter or member 'reserved' not described in 'opa_veswport_summary_counters'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:394: warning: Function parameter or member 'rsvd0' not described in 'opa_veswport_error_counters'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:394: warning: Function parameter or member 'rsvd1' not described in 'opa_veswport_error_counters'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:394: warning: Function parameter or member 'rsvd2' not described in 'opa_veswport_error_counters'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:394: warning: Function parameter or member 'rsvd3' not described in 'opa_veswport_error_counters'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:394: warning: Function parameter or member 'rsvd4' not described in 'opa_veswport_error_counters'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:394: warning: Function parameter or member 'rsvd5' not described in 'opa_veswport_error_counters'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:394: warning: Function parameter or member 'rsvd6' not described in 'opa_veswport_error_counters'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:394: warning: Function parameter or member 'rsvd7' not described in 'opa_veswport_error_counters'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:394: warning: Function parameter or member 'rsvd8' not described in 'opa_veswport_error_counters'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:394: warning: Function parameter or member 'rsvd9' not described in 'opa_veswport_error_counters'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:460: warning: Function parameter or member 'reserved' not described in 'opa_vnic_vema_mad'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:485: warning: Function parameter or member 'reserved' not described in 'opa_vnic_notice_attr'
      ./drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.h:500: warning: Function parameter or member 'reserved' not described in 'opa_vnic_vema_mad_trap'
      
      Link: https://lore.kernel.org/r/5373936.DvuYhMxLoT@laptop.coltonlewis.nameSigned-off-by: default avatarColton Lewis <colton.w.lewis@protonmail.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
      11708142