linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Jann Horn <jannh@google.com>,
	Jason Gunthorpe <jgg@nvidia.com>, Ira Weiny <ira.weiny@intel.com>,
	Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>,
	Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
Subject: [PATCH 5.9 006/152] IB/hfi1: Ensure correct mm is used at all times
Date: Tue,  1 Dec 2020 09:52:01 +0100	[thread overview]
Message-ID: <20201201084712.667869578@linuxfoundation.org> (raw)
In-Reply-To: <20201201084711.707195422@linuxfoundation.org>

From: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>

commit 3d2a9d642512c21a12d19b9250e7a835dcb41a79 upstream.

Two earlier bug fixes have created a security problem in the hfi1
driver. One fix aimed to solve an issue where current->mm was not valid
when closing the hfi1 cdev. It attempted to do this by saving a cached
value of the current->mm pointer at file open time. This is a problem if
another process with access to the FD calls in via write() or ioctl() to
pin pages via the hfi driver. The other fix tried to solve a use after
free by taking a reference on the mm.

To fix this correctly we use the existing cached value of the mm in the
mmu notifier. Now we can check in the insert, evict, etc. routines that
current->mm matched what the notifier was registered for. If not, then
don't allow access. The register of the mmu notifier will save the mm
pointer.

Since in do_exit() the exit_mm() is called before exit_files(), which
would call our close routine a reference is needed on the mm. We rely on
the mmgrab done by the registration of the notifier, whereas before it was
explicit. The mmu notifier deregistration happens when the user context is
torn down, the creation of which triggered the registration.

Also of note is we do not do any explicit work to protect the interval
tree notifier. It doesn't seem that this is going to be needed since we
aren't actually doing anything with current->mm. The interval tree
notifier stuff still has a FIXME noted from a previous commit that will be
addressed in a follow on patch.

Cc: <stable@vger.kernel.org>
Fixes: e0cf75deab81 ("IB/hfi1: Fix mm_struct use after free")
Fixes: 3faa3d9a308e ("IB/hfi1: Make use of mm consistent")
Link: https://lore.kernel.org/r/20201125210112.104301.51331.stgit@awfm-01.aw.intel.com
Suggested-by: Jann Horn <jannh@google.com>
Reported-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/infiniband/hw/hfi1/file_ops.c     |    4 -
 drivers/infiniband/hw/hfi1/hfi.h          |    2 
 drivers/infiniband/hw/hfi1/mmu_rb.c       |   66 +++++++++++++++---------------
 drivers/infiniband/hw/hfi1/mmu_rb.h       |   16 ++++++-
 drivers/infiniband/hw/hfi1/user_exp_rcv.c |   12 +++--
 drivers/infiniband/hw/hfi1/user_exp_rcv.h |    6 ++
 drivers/infiniband/hw/hfi1/user_sdma.c    |   13 +++--
 drivers/infiniband/hw/hfi1/user_sdma.h    |    7 ++-
 8 files changed, 78 insertions(+), 48 deletions(-)

--- a/drivers/infiniband/hw/hfi1/file_ops.c
+++ b/drivers/infiniband/hw/hfi1/file_ops.c
@@ -1,4 +1,5 @@
 /*
+ * Copyright(c) 2020 Cornelis Networks, Inc.
  * Copyright(c) 2015-2020 Intel Corporation.
  *
  * This file is provided under a dual BSD/GPLv2 license.  When using or
@@ -206,8 +207,6 @@ static int hfi1_file_open(struct inode *
 	spin_lock_init(&fd->tid_lock);
 	spin_lock_init(&fd->invalid_lock);
 	fd->rec_cpu_num = -1; /* no cpu affinity by default */
-	fd->mm = current->mm;
-	mmgrab(fd->mm);
 	fd->dd = dd;
 	fp->private_data = fd;
 	return 0;
@@ -711,7 +710,6 @@ static int hfi1_file_close(struct inode
 
 	deallocate_ctxt(uctxt);
 done:
-	mmdrop(fdata->mm);
 
 	if (atomic_dec_and_test(&dd->user_refcount))
 		complete(&dd->user_comp);
--- a/drivers/infiniband/hw/hfi1/hfi.h
+++ b/drivers/infiniband/hw/hfi1/hfi.h
@@ -1,6 +1,7 @@
 #ifndef _HFI1_KERNEL_H
 #define _HFI1_KERNEL_H
 /*
+ * Copyright(c) 2020 Cornelis Networks, Inc.
  * Copyright(c) 2015-2020 Intel Corporation.
  *
  * This file is provided under a dual BSD/GPLv2 license.  When using or
@@ -1451,7 +1452,6 @@ struct hfi1_filedata {
 	u32 invalid_tid_idx;
 	/* protect invalid_tids array and invalid_tid_idx */
 	spinlock_t invalid_lock;
-	struct mm_struct *mm;
 };
 
 extern struct xarray hfi1_dev_table;
--- a/drivers/infiniband/hw/hfi1/mmu_rb.c
+++ b/drivers/infiniband/hw/hfi1/mmu_rb.c
@@ -1,4 +1,5 @@
 /*
+ * Copyright(c) 2020 Cornelis Networks, Inc.
  * Copyright(c) 2016 - 2017 Intel Corporation.
  *
  * This file is provided under a dual BSD/GPLv2 license.  When using or
@@ -48,23 +49,11 @@
 #include <linux/rculist.h>
 #include <linux/mmu_notifier.h>
 #include <linux/interval_tree_generic.h>
+#include <linux/sched/mm.h>
 
 #include "mmu_rb.h"
 #include "trace.h"
 
-struct mmu_rb_handler {
-	struct mmu_notifier mn;
-	struct rb_root_cached root;
-	void *ops_arg;
-	spinlock_t lock;        /* protect the RB tree */
-	struct mmu_rb_ops *ops;
-	struct mm_struct *mm;
-	struct list_head lru_list;
-	struct work_struct del_work;
-	struct list_head del_list;
-	struct workqueue_struct *wq;
-};
-
 static unsigned long mmu_node_start(struct mmu_rb_node *);
 static unsigned long mmu_node_last(struct mmu_rb_node *);
 static int mmu_notifier_range_start(struct mmu_notifier *,
@@ -92,37 +81,36 @@ static unsigned long mmu_node_last(struc
 	return PAGE_ALIGN(node->addr + node->len) - 1;
 }
 
-int hfi1_mmu_rb_register(void *ops_arg, struct mm_struct *mm,
+int hfi1_mmu_rb_register(void *ops_arg,
 			 struct mmu_rb_ops *ops,
 			 struct workqueue_struct *wq,
 			 struct mmu_rb_handler **handler)
 {
-	struct mmu_rb_handler *handlr;
+	struct mmu_rb_handler *h;
 	int ret;
 
-	handlr = kmalloc(sizeof(*handlr), GFP_KERNEL);
-	if (!handlr)
+	h = kmalloc(sizeof(*h), GFP_KERNEL);
+	if (!h)
 		return -ENOMEM;
 
-	handlr->root = RB_ROOT_CACHED;
-	handlr->ops = ops;
-	handlr->ops_arg = ops_arg;
-	INIT_HLIST_NODE(&handlr->mn.hlist);
-	spin_lock_init(&handlr->lock);
-	handlr->mn.ops = &mn_opts;
-	handlr->mm = mm;
-	INIT_WORK(&handlr->del_work, handle_remove);
-	INIT_LIST_HEAD(&handlr->del_list);
-	INIT_LIST_HEAD(&handlr->lru_list);
-	handlr->wq = wq;
+	h->root = RB_ROOT_CACHED;
+	h->ops = ops;
+	h->ops_arg = ops_arg;
+	INIT_HLIST_NODE(&h->mn.hlist);
+	spin_lock_init(&h->lock);
+	h->mn.ops = &mn_opts;
+	INIT_WORK(&h->del_work, handle_remove);
+	INIT_LIST_HEAD(&h->del_list);
+	INIT_LIST_HEAD(&h->lru_list);
+	h->wq = wq;
 
-	ret = mmu_notifier_register(&handlr->mn, handlr->mm);
+	ret = mmu_notifier_register(&h->mn, current->mm);
 	if (ret) {
-		kfree(handlr);
+		kfree(h);
 		return ret;
 	}
 
-	*handler = handlr;
+	*handler = h;
 	return 0;
 }
 
@@ -134,7 +122,7 @@ void hfi1_mmu_rb_unregister(struct mmu_r
 	struct list_head del_list;
 
 	/* Unregister first so we don't get any more notifications. */
-	mmu_notifier_unregister(&handler->mn, handler->mm);
+	mmu_notifier_unregister(&handler->mn, handler->mn.mm);
 
 	/*
 	 * Make sure the wq delete handler is finished running.  It will not
@@ -166,6 +154,10 @@ int hfi1_mmu_rb_insert(struct mmu_rb_han
 	int ret = 0;
 
 	trace_hfi1_mmu_rb_insert(mnode->addr, mnode->len);
+
+	if (current->mm != handler->mn.mm)
+		return -EPERM;
+
 	spin_lock_irqsave(&handler->lock, flags);
 	node = __mmu_rb_search(handler, mnode->addr, mnode->len);
 	if (node) {
@@ -180,6 +172,7 @@ int hfi1_mmu_rb_insert(struct mmu_rb_han
 		__mmu_int_rb_remove(mnode, &handler->root);
 		list_del(&mnode->list); /* remove from LRU list */
 	}
+	mnode->handler = handler;
 unlock:
 	spin_unlock_irqrestore(&handler->lock, flags);
 	return ret;
@@ -217,6 +210,9 @@ bool hfi1_mmu_rb_remove_unless_exact(str
 	unsigned long flags;
 	bool ret = false;
 
+	if (current->mm != handler->mn.mm)
+		return ret;
+
 	spin_lock_irqsave(&handler->lock, flags);
 	node = __mmu_rb_search(handler, addr, len);
 	if (node) {
@@ -239,6 +235,9 @@ void hfi1_mmu_rb_evict(struct mmu_rb_han
 	unsigned long flags;
 	bool stop = false;
 
+	if (current->mm != handler->mn.mm)
+		return;
+
 	INIT_LIST_HEAD(&del_list);
 
 	spin_lock_irqsave(&handler->lock, flags);
@@ -272,6 +271,9 @@ void hfi1_mmu_rb_remove(struct mmu_rb_ha
 {
 	unsigned long flags;
 
+	if (current->mm != handler->mn.mm)
+		return;
+
 	/* Validity of handler and node pointers has been checked by caller. */
 	trace_hfi1_mmu_rb_remove(node->addr, node->len);
 	spin_lock_irqsave(&handler->lock, flags);
--- a/drivers/infiniband/hw/hfi1/mmu_rb.h
+++ b/drivers/infiniband/hw/hfi1/mmu_rb.h
@@ -1,4 +1,5 @@
 /*
+ * Copyright(c) 2020 Cornelis Networks, Inc.
  * Copyright(c) 2016 Intel Corporation.
  *
  * This file is provided under a dual BSD/GPLv2 license.  When using or
@@ -54,6 +55,7 @@ struct mmu_rb_node {
 	unsigned long len;
 	unsigned long __last;
 	struct rb_node node;
+	struct mmu_rb_handler *handler;
 	struct list_head list;
 };
 
@@ -71,7 +73,19 @@ struct mmu_rb_ops {
 		     void *evict_arg, bool *stop);
 };
 
-int hfi1_mmu_rb_register(void *ops_arg, struct mm_struct *mm,
+struct mmu_rb_handler {
+	struct mmu_notifier mn;
+	struct rb_root_cached root;
+	void *ops_arg;
+	spinlock_t lock;        /* protect the RB tree */
+	struct mmu_rb_ops *ops;
+	struct list_head lru_list;
+	struct work_struct del_work;
+	struct list_head del_list;
+	struct workqueue_struct *wq;
+};
+
+int hfi1_mmu_rb_register(void *ops_arg,
 			 struct mmu_rb_ops *ops,
 			 struct workqueue_struct *wq,
 			 struct mmu_rb_handler **handler);
--- a/drivers/infiniband/hw/hfi1/user_exp_rcv.c
+++ b/drivers/infiniband/hw/hfi1/user_exp_rcv.c
@@ -1,4 +1,5 @@
 /*
+ * Copyright(c) 2020 Cornelis Networks, Inc.
  * Copyright(c) 2015-2018 Intel Corporation.
  *
  * This file is provided under a dual BSD/GPLv2 license.  When using or
@@ -173,15 +174,18 @@ static void unpin_rcv_pages(struct hfi1_
 {
 	struct page **pages;
 	struct hfi1_devdata *dd = fd->uctxt->dd;
+	struct mm_struct *mm;
 
 	if (mapped) {
 		pci_unmap_single(dd->pcidev, node->dma_addr,
 				 node->npages * PAGE_SIZE, PCI_DMA_FROMDEVICE);
 		pages = &node->pages[idx];
+		mm = mm_from_tid_node(node);
 	} else {
 		pages = &tidbuf->pages[idx];
+		mm = current->mm;
 	}
-	hfi1_release_user_pages(fd->mm, pages, npages, mapped);
+	hfi1_release_user_pages(mm, pages, npages, mapped);
 	fd->tid_n_pinned -= npages;
 }
 
@@ -216,12 +220,12 @@ static int pin_rcv_pages(struct hfi1_fil
 	 * pages, accept the amount pinned so far and program only that.
 	 * User space knows how to deal with partially programmed buffers.
 	 */
-	if (!hfi1_can_pin_pages(dd, fd->mm, fd->tid_n_pinned, npages)) {
+	if (!hfi1_can_pin_pages(dd, current->mm, fd->tid_n_pinned, npages)) {
 		kfree(pages);
 		return -ENOMEM;
 	}
 
-	pinned = hfi1_acquire_user_pages(fd->mm, vaddr, npages, true, pages);
+	pinned = hfi1_acquire_user_pages(current->mm, vaddr, npages, true, pages);
 	if (pinned <= 0) {
 		kfree(pages);
 		return pinned;
@@ -756,7 +760,7 @@ static int set_rcvarray_entry(struct hfi
 
 	if (fd->use_mn) {
 		ret = mmu_interval_notifier_insert(
-			&node->notifier, fd->mm,
+			&node->notifier, current->mm,
 			tbuf->vaddr + (pageidx * PAGE_SIZE), npages * PAGE_SIZE,
 			&tid_mn_ops);
 		if (ret)
--- a/drivers/infiniband/hw/hfi1/user_exp_rcv.h
+++ b/drivers/infiniband/hw/hfi1/user_exp_rcv.h
@@ -1,6 +1,7 @@
 #ifndef _HFI1_USER_EXP_RCV_H
 #define _HFI1_USER_EXP_RCV_H
 /*
+ * Copyright(c) 2020 - Cornelis Networks, Inc.
  * Copyright(c) 2015 - 2017 Intel Corporation.
  *
  * This file is provided under a dual BSD/GPLv2 license.  When using or
@@ -95,4 +96,9 @@ int hfi1_user_exp_rcv_clear(struct hfi1_
 int hfi1_user_exp_rcv_invalid(struct hfi1_filedata *fd,
 			      struct hfi1_tid_info *tinfo);
 
+static inline struct mm_struct *mm_from_tid_node(struct tid_rb_node *node)
+{
+	return node->notifier.mm;
+}
+
 #endif /* _HFI1_USER_EXP_RCV_H */
--- a/drivers/infiniband/hw/hfi1/user_sdma.c
+++ b/drivers/infiniband/hw/hfi1/user_sdma.c
@@ -1,4 +1,5 @@
 /*
+ * Copyright(c) 2020 - Cornelis Networks, Inc.
  * Copyright(c) 2015 - 2018 Intel Corporation.
  *
  * This file is provided under a dual BSD/GPLv2 license.  When using or
@@ -188,7 +189,6 @@ int hfi1_user_sdma_alloc_queues(struct h
 	atomic_set(&pq->n_reqs, 0);
 	init_waitqueue_head(&pq->wait);
 	atomic_set(&pq->n_locked, 0);
-	pq->mm = fd->mm;
 
 	iowait_init(&pq->busy, 0, NULL, NULL, defer_packet_queue,
 		    activate_packet_queue, NULL, NULL);
@@ -230,7 +230,7 @@ int hfi1_user_sdma_alloc_queues(struct h
 
 	cq->nentries = hfi1_sdma_comp_ring_size;
 
-	ret = hfi1_mmu_rb_register(pq, pq->mm, &sdma_rb_ops, dd->pport->hfi1_wq,
+	ret = hfi1_mmu_rb_register(pq, &sdma_rb_ops, dd->pport->hfi1_wq,
 				   &pq->handler);
 	if (ret) {
 		dd_dev_err(dd, "Failed to register with MMU %d", ret);
@@ -980,13 +980,13 @@ static int pin_sdma_pages(struct user_sd
 
 	npages -= node->npages;
 retry:
-	if (!hfi1_can_pin_pages(pq->dd, pq->mm,
+	if (!hfi1_can_pin_pages(pq->dd, current->mm,
 				atomic_read(&pq->n_locked), npages)) {
 		cleared = sdma_cache_evict(pq, npages);
 		if (cleared >= npages)
 			goto retry;
 	}
-	pinned = hfi1_acquire_user_pages(pq->mm,
+	pinned = hfi1_acquire_user_pages(current->mm,
 					 ((unsigned long)iovec->iov.iov_base +
 					 (node->npages * PAGE_SIZE)), npages, 0,
 					 pages + node->npages);
@@ -995,7 +995,7 @@ retry:
 		return pinned;
 	}
 	if (pinned != npages) {
-		unpin_vector_pages(pq->mm, pages, node->npages, pinned);
+		unpin_vector_pages(current->mm, pages, node->npages, pinned);
 		return -EFAULT;
 	}
 	kfree(node->pages);
@@ -1008,7 +1008,8 @@ retry:
 static void unpin_sdma_pages(struct sdma_mmu_node *node)
 {
 	if (node->npages) {
-		unpin_vector_pages(node->pq->mm, node->pages, 0, node->npages);
+		unpin_vector_pages(mm_from_sdma_node(node), node->pages, 0,
+				   node->npages);
 		atomic_sub(node->npages, &node->pq->n_locked);
 	}
 }
--- a/drivers/infiniband/hw/hfi1/user_sdma.h
+++ b/drivers/infiniband/hw/hfi1/user_sdma.h
@@ -1,6 +1,7 @@
 #ifndef _HFI1_USER_SDMA_H
 #define _HFI1_USER_SDMA_H
 /*
+ * Copyright(c) 2020 - Cornelis Networks, Inc.
  * Copyright(c) 2015 - 2018 Intel Corporation.
  *
  * This file is provided under a dual BSD/GPLv2 license.  When using or
@@ -133,7 +134,6 @@ struct hfi1_user_sdma_pkt_q {
 	unsigned long unpinned;
 	struct mmu_rb_handler *handler;
 	atomic_t n_locked;
-	struct mm_struct *mm;
 };
 
 struct hfi1_user_sdma_comp_q {
@@ -250,4 +250,9 @@ int hfi1_user_sdma_process_request(struc
 				   struct iovec *iovec, unsigned long dim,
 				   unsigned long *count);
 
+static inline struct mm_struct *mm_from_sdma_node(struct sdma_mmu_node *node)
+{
+	return node->rb.handler->mn.mm;
+}
+
 #endif /* _HFI1_USER_SDMA_H */



  parent reply	other threads:[~2020-12-01  9:20 UTC|newest]

Thread overview: 158+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-01  8:51 [PATCH 5.9 000/152] 5.9.12-rc1 review Greg Kroah-Hartman
2020-12-01  8:51 ` [PATCH 5.9 001/152] io_uring: get an active ref_node from files_data Greg Kroah-Hartman
2020-12-01  8:51 ` [PATCH 5.9 002/152] io_uring: order refnode recycling Greg Kroah-Hartman
2020-12-01  8:51 ` [PATCH 5.9 003/152] spi: bcm-qspi: Fix use-after-free on unbind Greg Kroah-Hartman
2020-12-01  8:51 ` [PATCH 5.9 004/152] spi: bcm2835: " Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 005/152] ipv4: use IS_ENABLED instead of ifdef Greg Kroah-Hartman
2020-12-01  8:52 ` Greg Kroah-Hartman [this message]
2020-12-01  8:52 ` [PATCH 5.9 007/152] RDMA/i40iw: Address an mmap handler exploit in i40iw Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 008/152] btrfs: fix missing delalloc new bit for new delalloc ranges Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 009/152] btrfs: tree-checker: add missing return after error in root_item Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 010/152] btrfs: tree-checker: add missing returns after data_ref alignment checks Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 011/152] btrfs: dont access possibly stale fs_info data for printing duplicate device Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 012/152] btrfs: fix lockdep splat when reading qgroup config on mount Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 013/152] rtc: pcf2127: fix a bug when not specify interrupts property Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 014/152] s390: fix fpu restore in entry.S Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 015/152] mm: fix VM_BUG_ON(PageTail) and BUG_ON(PageWriteback) Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 016/152] smb3: Call cifs reconnect from demultiplex thread Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 017/152] smb3: Avoid Mid pending list corruption Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 018/152] smb3: Handle error case during offload read path Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 019/152] cifs: fix a memleak with modefromsid Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 020/152] powerpc/64s: Fix KVM system reset handling when CONFIG_PPC_PSERIES=y Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 021/152] powerpc/64s/exception: KVM Fix for host DSI being taken in HPT guest MMU context Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 022/152] KVM: PPC: Book3S HV: XIVE: Fix possible oops when accessing ESB page Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 023/152] KVM: arm64: vgic-v3: Drop the reporting of GICR_TYPER.Last for userspace Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 024/152] KVM: x86: handle !lapic_in_kernel case in kvm_cpu_*_extint Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 025/152] KVM: x86: Fix split-irqchip vs interrupt injection window request Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 026/152] iommu/vt-d: Dont read VCCAP register unless it exists Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 027/152] firmware: xilinx: Use hash-table for api feature check Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 028/152] drm/amdgpu: fix SI UVD firmware validate resume fail Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 029/152] io_uring: fix ITER_BVEC check Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 030/152] trace: fix potenial dangerous pointer Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 031/152] arm64: tegra: Correct the UART for Jetson Xavier NX Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 032/152] arm64: tegra: Fix USB_VBUS_EN0 regulator on Jetson TX1 Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 033/152] arm64: pgtable: Fix pte_accessible() Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 034/152] arm64: pgtable: Ensure dirty bit is preserved across pte_wrprotect() Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 035/152] drm/amdgpu: fix a page fault Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 036/152] drm/amdgpu: update golden setting for sienna_cichlid Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 037/152] drm/amd/amdgpu: fix null pointer in runtime pm Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 038/152] drm/amd/display: Avoid HDCP initialization in devices without output Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 039/152] HID: uclogic: Add ID for Trust Flex Design Tablet Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 040/152] HID: ite: Replace ABS_MISC 120/121 events with touchpad on/off keypresses Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 041/152] HID: cypress: Support Varmilo Keyboards media hotkeys Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 042/152] HID: add support for Sega Saturn Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 043/152] Input: i8042 - allow insmod to succeed on devices without an i8042 controller Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 044/152] HID: hid-sensor-hub: Fix issue with devices with no report ID Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 045/152] staging: ralink-gdma: fix kconfig dependency bug for DMA_RALINK Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 046/152] HID: add HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE for Gamevice devices Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 047/152] dmaengine: xilinx_dma: use readl_poll_timeout_atomic variant Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 048/152] x86/xen: dont unbind uninitialized lock_kicker_irq Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 049/152] kunit: fix display of failed expectations for strings Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 050/152] HID: logitech-hidpp: Add HIDPP_CONSUMER_VENDOR_KEYS quirk for the Dinovo Edge Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 051/152] HID: Add Logitech Dinovo Edge battery quirk Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 052/152] proc: dont allow async path resolution of /proc/self components Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 053/152] nvme: free sq/cq dbbuf pointers when dbbuf set fails Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 054/152] io_uring: handle -EOPNOTSUPP on path resolution Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 055/152] net: stmmac: dwmac_lib: enlarge dma reset timeout Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 056/152] vdpasim: fix "mac_pton" undefined error Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 057/152] vhost: add helper to check if a vq has been setup Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 058/152] vhost scsi: alloc cmds per vq instead of session Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 059/152] vhost scsi: fix cmd completion race Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 060/152] cpuidle: tegra: Annotate tegra_pm_set_cpu_in_lp2() with RCU_NONIDLE Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 061/152] dmaengine: pl330: _prep_dma_memcpy: Fix wrong burst size Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 062/152] scsi: libiscsi: Fix NOP race condition Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 063/152] scsi: target: iscsi: Fix cmd abort fabric stop race Greg Kroah-Hartman
2020-12-01  8:52 ` [PATCH 5.9 064/152] lockdep: Put graph lock/unlock under lock_recursion protection Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 065/152] perf/x86: fix sysfs type mismatches Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 066/152] xtensa: uaccess: Add missing __user to strncpy_from_user() prototype Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 067/152] x86/dumpstack: Do not try to access user space code of other tasks Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 068/152] net: dsa: mv88e6xxx: Wait for EEPROM done after HW reset Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 069/152] bus: ti-sysc: Fix reset status check for modules with quirks Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 070/152] bus: ti-sysc: Fix bogus resetdone warning on enable for cpsw Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 071/152] ARM: OMAP2+: Manage MPU state properly for omap_enter_idle_coupled() Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 072/152] phy: tegra: xusb: Fix dangling pointer on probe failure Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 073/152] iwlwifi: mvm: use the HOT_SPOT_CMD to cancel an AUX ROC Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 074/152] iwlwifi: mvm: properly cancel a session protection for P2P Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 075/152] iwlwifi: mvm: write queue_sync_state only for sync Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 076/152] KVM: s390: pv: Mark mm as protected after the set secure parameters and improve cleanup Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 077/152] KVM: s390: remove diag318 reset code Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 078/152] btrfs: qgroup: dont commit transaction when we already hold the handle Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 079/152] batman-adv: set .owner to THIS_MODULE Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 080/152] usb: cdns3: gadget: fix some endian issues Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 081/152] usb: cdns3: gadget: calculate TD_SIZE based on TD Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 082/152] phy: qualcomm: usb: Fix SuperSpeed PHY OF dependency Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 083/152] phy: qualcomm: Fix 28 nm Hi-Speed USB " Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 084/152] arch: pgtable: define MAX_POSSIBLE_PHYSMEM_BITS where needed Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 085/152] bus: ti-sysc: suppress err msg for timers used as clockevent/source Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 086/152] ARM: dts: dra76x: m_can: fix order of clocks Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 087/152] scsi: ufs: Fix race between shutdown and runtime resume flow Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 088/152] bnxt_en: fix error return code in bnxt_init_one() Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 089/152] bnxt_en: fix error return code in bnxt_init_board() Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 090/152] video: hyperv_fb: Fix the cache type when mapping the VRAM Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 091/152] bnxt_en: Release PCI regions when DMA mask setup fails during probe Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 092/152] block/keyslot-manager: prevent crash when num_slots=1 Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 093/152] cxgb4: fix the panic caused by non smac rewrite Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 094/152] dpaa2-eth: select XGMAC_MDIO for MDIO bus support Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 095/152] s390/qeth: make af_iucv TX notification call more robust Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 096/152] s390/qeth: fix af_iucv notification race Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 097/152] s390/qeth: fix tear down of async TX buffers Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 098/152] drm/mediatek: dsi: Modify horizontal front/back porch byte formula Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 099/152] bonding: wait for sysfs kobject destruction before freeing struct slave Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 100/152] ibmvnic: fix call_netdevice_notifiers in do_reset Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 101/152] ibmvnic: notify peers when failover and migration happen Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 102/152] powerpc/64s: Fix allnoconfig build since uaccess flush Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 103/152] iommu: Check return of __iommu_attach_device() Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 104/152] IB/mthca: fix return value of error branch in mthca_init_cq() Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 105/152] i40e: Fix removing driver while bare-metal VFs pass traffic Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 106/152] firmware: xilinx: Fix SD DLL node reset issue Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 107/152] spi: imx: fix the unbalanced spi runtime pm management Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 108/152] io_uring: fix shift-out-of-bounds when round up cq size Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 109/152] aquantia: Remove the build_skb path Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 110/152] nfc: s3fwrn5: use signed integer for parsing GPIO numbers Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 111/152] net: ena: handle bad request id in ena_netdev Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 112/152] net: ena: set initial DMA width to avoid intel iommu issue Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 113/152] net: ena: fix packets addresses for rx_offset feature Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 114/152] ibmvnic: fix NULL pointer dereference in reset_sub_crq_queues Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 115/152] ibmvnic: fix NULL pointer dereference in ibmvic_reset_crq Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 116/152] ibmvnic: enhance resetting status check during module exit Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 117/152] optee: add writeback to valid memory type Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 118/152] x86/tboot: Dont disable swiotlb when iommu is forced on Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 119/152] arm64: tegra: Wrong AON HSP reg property size Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 120/152] efi/efivars: Set generic ops before loading SSDT Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 121/152] efivarfs: revert "fix memory leak in efivarfs_create()" Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 122/152] efi: EFI_EARLYCON should depend on EFI Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 123/152] riscv: Explicitly specify the build id style in vDSO Makefile again Greg Kroah-Hartman
2020-12-01  8:53 ` [PATCH 5.9 124/152] RISC-V: Add missing jump label initialization Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 125/152] RISC-V: fix barrier() use in <vdso/processor.h> Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 126/152] net: stmmac: fix incorrect merge of patch upstream Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 127/152] enetc: Let the hardware auto-advance the taprio base-time of 0 Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 128/152] ptp: clockmatrix: bug fix for idtcm_strverscmp Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 129/152] drm/nouveau: fix relocations applying logic and a double-free Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 130/152] can: gs_usb: fix endianess problem with candleLight firmware Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 131/152] platform/x86: thinkpad_acpi: Send tablet mode switch at wakeup time Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 132/152] platform/x86: toshiba_acpi: Fix the wrong variable assignment Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 133/152] RDMA/hns: Fix wrong field of SRQ number the device supports Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 134/152] RDMA/hns: Fix retry_cnt and rnr_cnt when querying QP Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 135/152] RDMA/hns: Bugfix for memory window mtpt configuration Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 136/152] can: m_can: m_can_open(): remove IRQF_TRIGGER_FALLING from request_threaded_irq()s flags Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 137/152] can: m_can: fix nominal bitiming tseg2 min for version >= 3.1 Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 138/152] perf record: Synthesize cgroup events only if needed Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 139/152] perf stat: Use proper cpu for shadow stats Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 140/152] perf probe: Fix to die_entrypc() returns error correctly Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 141/152] spi: bcm2835aux: Restore err assignment in bcm2835aux_spi_probe Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 142/152] USB: core: Change %pK for __user pointers to %px Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 143/152] usb: gadget: f_midi: Fix memleak in f_midi_alloc Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 144/152] USB: core: Fix regression in Hercules audio card Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 145/152] USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 146/152] usb: gadget: Fix memleak in gadgetfs_fill_super Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 147/152] irqchip/exiu: Fix the index of fwspec for IRQ type Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 148/152] x86/mce: Do not overwrite no_way_out if mce_end() fails Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 149/152] x86/speculation: Fix prctl() when spectre_v2_user={seccomp,prctl},ibpb Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 150/152] x86/resctrl: Remove superfluous kernfs_get() calls to prevent refcount leak Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 151/152] x86/resctrl: Add necessary kernfs_put() " Greg Kroah-Hartman
2020-12-01  8:54 ` [PATCH 5.9 152/152] drm/amdgpu: add rlc iram and dram firmware support Greg Kroah-Hartman
2020-12-01 18:21 ` [PATCH 5.9 000/152] 5.9.12-rc1 review Jeffrin Jose T
2020-12-01 21:40 ` Guenter Roeck
2020-12-02  4:50 ` Naresh Kamboju
2020-12-02 16:57 ` Shuah Khan
2020-12-02 17:46   ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201201084712.667869578@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=dennis.dalessandro@cornelisnetworks.com \
    --cc=ira.weiny@intel.com \
    --cc=jannh@google.com \
    --cc=jgg@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mike.marciniszyn@cornelisnetworks.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).