Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma

Pull rdma fixes from Jason Gunthorpe:
"A few small bugs:

- Fix longstanding mlx5 bug where ODP would fail with certain MR
alignments

- cancel work to prevent a hfi1 UAF

- MAINTAINERS update

- UAF, missing mutex_init and an error unwind bug in bnxt_re"

* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
RDMA/bnxt_re: Initialize dpi_tbl_lock mutex
RDMA/bnxt_re: Fix error handling in probe failure path
RDMA/bnxt_re: Properly order ib_device_unalloc() to avoid UAF
MAINTAINERS: Remove maintainer of HiSilicon RoCE
IB/hfi1: Fix possible panic during hotplug remove
RDMA/umem: Set iova in ODP flow

+7 -3
-1
MAINTAINERS
··· 9375 9375 F: include/linux/hisi_acc_qm.h 9376 9376 9377 9377 HISILICON ROCE DRIVER 9378 - M: Haoyue Xu <xuhaoyue1@hisilicon.com> 9379 9378 M: Junxian Huang <huangjunxian6@hisilicon.com> 9380 9379 L: linux-rdma@vger.kernel.org 9381 9380 S: Maintained
+2 -1
drivers/infiniband/core/umem.c
··· 85 85 dma_addr_t mask; 86 86 int i; 87 87 88 + umem->iova = va = virt; 89 + 88 90 if (umem->is_odp) { 89 91 unsigned int page_size = BIT(to_ib_umem_odp(umem)->page_shift); 90 92 ··· 102 100 */ 103 101 pgsz_bitmap &= GENMASK(BITS_PER_LONG - 1, PAGE_SHIFT); 104 102 105 - umem->iova = va = virt; 106 103 /* The best result is the smallest page size that results in the minimum 107 104 * number of required pages. Compute the largest page size that could 108 105 * work based on VA address bits that don't change.
+3 -1
drivers/infiniband/hw/bnxt_re/main.c
··· 1253 1253 1254 1254 rc = bnxt_re_setup_chip_ctx(rdev, wqe_mode); 1255 1255 if (rc) { 1256 + bnxt_unregister_dev(rdev->en_dev); 1257 + clear_bit(BNXT_RE_FLAG_NETDEV_REGISTERED, &rdev->flags); 1256 1258 ibdev_err(&rdev->ibdev, "Failed to get chip context\n"); 1257 1259 return -EINVAL; 1258 1260 } ··· 1528 1526 } 1529 1527 bnxt_re_setup_cc(rdev, false); 1530 1528 ib_unregister_device(&rdev->ibdev); 1531 - ib_dealloc_device(&rdev->ibdev); 1532 1529 bnxt_re_dev_uninit(rdev); 1530 + ib_dealloc_device(&rdev->ibdev); 1533 1531 skip_remove: 1534 1532 mutex_unlock(&bnxt_re_mutex); 1535 1533 }
+1
drivers/infiniband/hw/bnxt_re/qplib_res.c
··· 819 819 } 820 820 821 821 memset((u8 *)dpit->tbl, 0xFF, bytes); 822 + mutex_init(&res->dpi_tbl_lock); 822 823 dpit->priv_db = dpit->ucreg.bar_reg + dpit->ucreg.offset; 823 824 824 825 return 0;
+1
drivers/infiniband/hw/hfi1/chip.c
··· 12307 12307 12308 12308 if (dd->synth_stats_timer.function) 12309 12309 del_timer_sync(&dd->synth_stats_timer); 12310 + cancel_work_sync(&dd->update_cntr_work); 12310 12311 ppd = (struct hfi1_pportdata *)(dd + 1); 12311 12312 for (i = 0; i < dd->num_pports; i++, ppd++) { 12312 12313 kfree(ppd->cntrs);