1. 06 Oct, 2016 3 commits
    • Parav Pandit's avatar
      IB/{rxe,core,rdmavt}: Fix kernel crash for reg MR · d9703650
      Parav Pandit authored
      This patch fixes below kernel crash on memory registration for rxe
      and other transport drivers which has dma_ops extension.
      
      IB/core invokes ib_map_sg_attrs() in generic manner with dma attributes
      which is used by mlx5 and mthca adapters.  However in doing so it
      ignored honoring dma_ops extension of software based transports for
      sg map/unmap operation.  This results in calling dma_map_sg_attrs of
      hardware virtual device resulting in crash for null reference.
      
      We extend the core to support sg_map/unmap_attrs and transport drivers
      to implement those dma_ops callback functions.
      
      Verified usign perftest applications.
      
      BUG: unable to handle kernel NULL pointer dereference at           (null)
      IP: [<ffffffff81032a75>] check_addr+0x35/0x60
      ...
      Call Trace:
       [<ffffffff81032b39>] ? nommu_map_sg+0x99/0xd0
       [<ffffffffa02b31c6>] ib_umem_get+0x3d6/0x470 [ib_core]
       [<ffffffffa01cc329>] rxe_mem_init_user+0x49/0x270 [rdma_rxe]
       [<ffffffffa01c793a>] ? rxe_add_index+0xca/0x100 [rdma_rxe]
       [<ffffffffa01c995f>] rxe_reg_user_mr+0x9f/0x130 [rdma_rxe]
       [<ffffffffa00419fe>] ib_uverbs_reg_mr+0x14e/0x2c0 [ib_uverbs]
       [<ffffffffa003d3ab>] ib_uverbs_write+0x15b/0x3b0 [ib_uverbs]
       [<ffffffff811e92a6>] ? mem_cgroup_commit_charge+0x76/0xe0
       [<ffffffff811af0a9>] ? page_add_new_anon_rmap+0x89/0xc0
       [<ffffffff8117e6c9>] ? lru_cache_add_active_or_unevictable+0x39/0xc0
       [<ffffffff811f0da8>] __vfs_write+0x28/0x120
       [<ffffffff811f1239>] ? rw_verify_area+0x49/0xb0
       [<ffffffff811f1492>] vfs_write+0xb2/0x1b0
       [<ffffffff811f27d6>] SyS_write+0x46/0xa0
       [<ffffffff814f7d32>] entry_SYSCALL_64_fastpath+0x1a/0xa4
      Signed-off-by: default avatarParav Pandit <pandit.parav@gmail.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      d9703650
    • Parav Pandit's avatar
      IB/rxe: Fix sending out loopback packet on netdev interface. · ffae955d
      Parav Pandit authored
      Both prepare4 and prepare6 sets loopback mask in pkt_info structure
      instance of skb.  The xmit_packet and other requester side functions
      use a pkt_info struct from the stack without the proper mask.  This
      results in sending out the packet to the actual netdev device and
      loopback functionality is broken.
      
      Modify prepare() to pass its correctly marked pkt_info struct to
      prepare4() and prepare6() instead of them using SKB_TO_PKT(skb) and
      getting an incorrectly set mask.
      
      Verified with perftest applications.
      Signed-off-by: default avatarParav Pandit <pandit.parav@gmail.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      ffae955d
    • Parav Pandit's avatar
      IB/rxe: Avoid scheduling tasklet for userspace QP · 063af595
      Parav Pandit authored
      This patch avoids scheduing tasklet for WQE and protocol processing
      for user space QP. It performs the task in calling process context.
      
      To improve code readability kernel specific post_send handling moved to
      post_send_kernel() function.
      Signed-off-by: default avatarParav Pandit <pandit.parav@gmail.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      063af595
  2. 03 Oct, 2016 1 commit
  3. 02 Oct, 2016 34 commits
  4. 16 Sep, 2016 2 commits