1. 04 4月, 2019 2 次提交
    • L
      RDMA/cm: Remove useless zeroing of static global variable · c7252a65
      Leon Romanovsky 提交于
      Static global variables are initialized to zero by C standard,
      there is no need to zero them again.
      Signed-off-by: NLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: NJason Gunthorpe <jgg@mellanox.com>
      c7252a65
    • L
      RDMA/cma: Set proper port number as index · 061ccb52
      Leon Romanovsky 提交于
      Conversion from IDR to XArray missed the fact that idr_alloc() returned
      index as a return value, this index was saved in port variable and used as
      query index later on. This caused to the following error.
      
       BUG: KASAN: use-after-free in cma_check_port+0x86a/0xa20 [rdma_cm]
       Read of size 8 at addr ffff888069fde998 by task ucmatose/387
       CPU: 3 PID: 387 Comm: ucmatose Not tainted 5.1.0-rc2+ #253
       Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.11.0-0-g63451fca13-prebuilt.qemu-project.org 04/01/2014
       Call Trace:
        dump_stack+0x7c/0xc0
        print_address_description+0x6c/0x23c
        ? cma_check_port+0x86a/0xa20 [rdma_cm]
        kasan_report.cold.3+0x1c/0x35
        ? cma_check_port+0x86a/0xa20 [rdma_cm]
        ? cma_check_port+0x86a/0xa20 [rdma_cm]
        cma_check_port+0x86a/0xa20 [rdma_cm]
        rdma_bind_addr+0x11bc/0x1b00 [rdma_cm]
        ? find_held_lock+0x33/0x1c0
        ? cma_ndev_work_handler+0x180/0x180 [rdma_cm]
        ? wait_for_completion+0x3d0/0x3d0
        ucma_bind+0x120/0x160 [rdma_ucm]
        ? ucma_resolve_addr+0x1a0/0x1a0 [rdma_ucm]
        ucma_write+0x1f8/0x2b0 [rdma_ucm]
        ? ucma_open+0x260/0x260 [rdma_ucm]
        vfs_write+0x157/0x460
        ksys_write+0xb8/0x170
        ? __ia32_sys_read+0xb0/0xb0
        ? trace_hardirqs_off_caller+0x5b/0x160
        ? do_syscall_64+0x18/0x3c0
        do_syscall_64+0x95/0x3c0
        entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
        Allocated by task 381:
         __kasan_kmalloc.constprop.5+0xc1/0xd0
         cma_alloc_port+0x4d/0x160 [rdma_cm]
         rdma_bind_addr+0x14e7/0x1b00 [rdma_cm]
         ucma_bind+0x120/0x160 [rdma_ucm]
         ucma_write+0x1f8/0x2b0 [rdma_ucm]
         vfs_write+0x157/0x460
         ksys_write+0xb8/0x170
         do_syscall_64+0x95/0x3c0
         entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
        Freed by task 381:
         __kasan_slab_free+0x12e/0x180
         kfree+0xed/0x290
         rdma_destroy_id+0x6b6/0x9e0 [rdma_cm]
         ucma_close+0x110/0x300 [rdma_ucm]
         __fput+0x25a/0x740
         task_work_run+0x10e/0x190
         do_exit+0x85e/0x29e0
         do_group_exit+0xf0/0x2e0
         get_signal+0x2e0/0x17e0
         do_signal+0x94/0x1570
         exit_to_usermode_loop+0xfa/0x130
         do_syscall_64+0x327/0x3c0
         entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
      Reported-by: <syzbot+2e3e485d5697ea610460@syzkaller.appspotmail.com>
      Reported-by: NRan Rozenstein <ranro@mellanox.com>
      Fixes: 63826753 ("cma: Convert portspace IDRs to XArray")
      Signed-off-by: NLeon Romanovsky <leonro@mellanox.com>
      Reviewed-by: NBart Van Assche <bvanassche@acm.org>
      Tested-by: NBart Van Assche <bvanassche@acm.org>
      Signed-off-by: NJason Gunthorpe <jgg@mellanox.com>
      061ccb52
  2. 02 4月, 2019 5 次提交
  3. 29 3月, 2019 9 次提交
  4. 28 3月, 2019 8 次提交
  5. 27 3月, 2019 1 次提交
  6. 26 3月, 2019 6 次提交
  7. 07 3月, 2019 1 次提交
  8. 05 3月, 2019 1 次提交
  9. 26 2月, 2019 1 次提交
  10. 23 2月, 2019 2 次提交
  11. 22 2月, 2019 2 次提交
    • M
      IB/core: Abort page fault handler silently during owning process exit · 4438ee3f
      Moni Shoua 提交于
      It is possible that during a page fault handling, the process that owns
      the MR is terminating. The indication for it is failure to get the
      task_struct or take reference on the mm_struct. In this case just abort
      the page-fault handler with error but without a warning to the kernel log.
      Signed-off-by: NMoni Shoua <monis@mellanox.com>
      Signed-off-by: NLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: NJason Gunthorpe <jgg@mellanox.com>
      4438ee3f
    • L
      RDMA/uverbs: Store PR pointer before it is overwritten · 25fd08eb
      Leon Romanovsky 提交于
      The IB_MR_REREG_PD command rewrites mr->pd after successful
      rereg_user_mr(), such change causes to lost usecnt information and
      produces the following warning:
      
       WARNING: CPU: 1 PID: 1771 at drivers/infiniband/core/verbs.c:336 ib_dealloc_pd+0x4e/0x60 [ib_core]
       CPU: 1 PID: 1771 Comm: rereg_mr Tainted: G        W  OE 5.0.0-rc7-for-upstream-perf-2019-02-20_14-03-40-34 #1
       Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
       RIP: 0010:ib_dealloc_pd+0x4e/0x60 [ib_core]
       RSP: 0018:ffffc90003923dc0 EFLAGS: 00010286
       RAX: 00000000ffffffff RBX: ffff88821f7f0400 RCX: ffff888236a40c00
       RDX: ffff88821f7f0400 RSI: 0000000000000001 RDI: 0000000000000000
       RBP: 0000000000000001 R08: ffff88835f665d80 R09: ffff8882209c90d8
       R10: ffff88835ec003e0 R11: 0000000000000000 R12: ffff888221680ba0
       R13: ffff888221680b00 R14: 00000000ffffffea R15: ffff88821f53c318
       FS:  00007f70db11e740(0000) GS:ffff88835f640000(0000) knlGS:0000000000000000
       CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
       CR2: 0000000001dfd030 CR3: 000000029d9d8000 CR4: 00000000000006e0
       DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
       DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
       Call Trace:
        uverbs_free_pd+0x2d/0x30 [ib_uverbs]
        destroy_hw_idr_uobject+0x16/0x40 [ib_uverbs]
        uverbs_destroy_uobject+0x28/0x170 [ib_uverbs]
        __uverbs_cleanup_ufile+0x6b/0x90 [ib_uverbs]
        uverbs_destroy_ufile_hw+0x8b/0x110 [ib_uverbs]
        ib_uverbs_close+0x1f/0x80 [ib_uverbs]
        __fput+0xb1/0x220
        task_work_run+0x7f/0xa0
        exit_to_usermode_loop+0x6b/0xb2
        do_syscall_64+0xc5/0x100
        entry_SYSCALL_64_after_hwframe+0x44/0xa9
       RIP: 0033:0x7f70dad00664
      
      Fixes: e278173f ("RDMA/core: Cosmetic change - move member initialization to correct block")
      Signed-off-by: NLeon Romanovsky <leonro@mellanox.com>
      Reviewed-by: NMajd Dibbiny <majd@mellanox.com>
      Signed-off-by: NJason Gunthorpe <jgg@mellanox.com>
      25fd08eb
  12. 20 2月, 2019 2 次提交