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, "Huang, Ying" <ying.huang@intel.com>,
	"Andrea Parri" <andrea.parri@amarulasolutions.com>,
	"Andrea Arcangeli" <aarcange@redhat.com>,
	"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
	"Daniel Jordan" <daniel.m.jordan@oracle.com>,
	"Michal Hocko" <mhocko@suse.com>,
	"Minchan Kim" <minchan@kernel.org>,
	"Johannes Weiner" <hannes@cmpxchg.org>,
	"Tim Chen" <tim.c.chen@linux.intel.com>,
	"Mel Gorman" <mgorman@techsingularity.net>,
	"Jérôme Glisse" <jglisse@redhat.com>,
	"Yang Shi" <yang.shi@linux.alibaba.com>,
	"David Rientjes" <rientjes@google.com>,
	"Rik van Riel" <riel@redhat.com>, "Jan Kara" <jack@suse.cz>,
	"Dave Jiang" <dave.jiang@intel.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	"Sasha Levin" <sashal@kernel.org>,
	"Hugh Dickins" <hughd@google.com>
Subject: [PATCH 5.2 165/215] mm, swap: fix race between swapoff and some swap operations
Date: Mon, 29 Jul 2019 21:22:41 +0200	[thread overview]
Message-ID: <20190729190808.410288648@linuxfoundation.org> (raw)
In-Reply-To: <20190729190739.971253303@linuxfoundation.org>

[ Upstream commit eb085574a7526c4375965c5fbf7e5b0c19cdd336 ]

When swapin is performed, after getting the swap entry information from
the page table, system will swap in the swap entry, without any lock held
to prevent the swap device from being swapoff.  This may cause the race
like below,

CPU 1				CPU 2
-----				-----
				do_swap_page
				  swapin_readahead
				    __read_swap_cache_async
swapoff				      swapcache_prepare
  p->swap_map = NULL		        __swap_duplicate
					  p->swap_map[?] /* !!! NULL pointer access */

Because swapoff is usually done when system shutdown only, the race may
not hit many people in practice.  But it is still a race need to be fixed.

To fix the race, get_swap_device() is added to check whether the specified
swap entry is valid in its swap device.  If so, it will keep the swap
entry valid via preventing the swap device from being swapoff, until
put_swap_device() is called.

Because swapoff() is very rare code path, to make the normal path runs as
fast as possible, rcu_read_lock/unlock() and synchronize_rcu() instead of
reference count is used to implement get/put_swap_device().  >From
get_swap_device() to put_swap_device(), RCU reader side is locked, so
synchronize_rcu() in swapoff() will wait until put_swap_device() is
called.

In addition to swap_map, cluster_info, etc.  data structure in the struct
swap_info_struct, the swap cache radix tree will be freed after swapoff,
so this patch fixes the race between swap cache looking up and swapoff
too.

Races between some other swap cache usages and swapoff are fixed too via
calling synchronize_rcu() between clearing PageSwapCache() and freeing
swap cache data structure.

Another possible method to fix this is to use preempt_off() +
stop_machine() to prevent the swap device from being swapoff when its data
structure is being accessed.  The overhead in hot-path of both methods is
similar.  The advantages of RCU based method are,

1. stop_machine() may disturb the normal execution code path on other
   CPUs.

2. File cache uses RCU to protect its radix tree.  If the similar
   mechanism is used for swap cache too, it is easier to share code
   between them.

3. RCU is used to protect swap cache in total_swapcache_pages() and
   exit_swap_address_space() already.  The two mechanisms can be
   merged to simplify the logic.

Link: http://lkml.kernel.org/r/20190522015423.14418-1-ying.huang@intel.com
Fixes: 235b62176712 ("mm/swap: add cluster lock")
Signed-off-by: "Huang, Ying" <ying.huang@intel.com>
Reviewed-by: Andrea Parri <andrea.parri@amarulasolutions.com>
Not-nacked-by: Hugh Dickins <hughd@google.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Daniel Jordan <daniel.m.jordan@oracle.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Tim Chen <tim.c.chen@linux.intel.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Jérôme Glisse <jglisse@redhat.com>
Cc: Yang Shi <yang.shi@linux.alibaba.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/linux/swap.h |  13 +++-
 mm/memory.c          |   2 +-
 mm/swap_state.c      |  16 ++++-
 mm/swapfile.c        | 154 ++++++++++++++++++++++++++++++++++---------
 4 files changed, 146 insertions(+), 39 deletions(-)

diff --git a/include/linux/swap.h b/include/linux/swap.h
index 4bfb5c4ac108..6358a6185634 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -175,8 +175,9 @@ enum {
 	SWP_PAGE_DISCARD = (1 << 10),	/* freed swap page-cluster discards */
 	SWP_STABLE_WRITES = (1 << 11),	/* no overwrite PG_writeback pages */
 	SWP_SYNCHRONOUS_IO = (1 << 12),	/* synchronous IO is efficient */
+	SWP_VALID	= (1 << 13),	/* swap is valid to be operated on? */
 					/* add others here before... */
-	SWP_SCANNING	= (1 << 13),	/* refcount in scan_swap_map */
+	SWP_SCANNING	= (1 << 14),	/* refcount in scan_swap_map */
 };
 
 #define SWAP_CLUSTER_MAX 32UL
@@ -460,7 +461,7 @@ extern unsigned int count_swap_pages(int, int);
 extern sector_t map_swap_page(struct page *, struct block_device **);
 extern sector_t swapdev_block(int, pgoff_t);
 extern int page_swapcount(struct page *);
-extern int __swap_count(struct swap_info_struct *si, swp_entry_t entry);
+extern int __swap_count(swp_entry_t entry);
 extern int __swp_swapcount(swp_entry_t entry);
 extern int swp_swapcount(swp_entry_t entry);
 extern struct swap_info_struct *page_swap_info(struct page *);
@@ -470,6 +471,12 @@ extern int try_to_free_swap(struct page *);
 struct backing_dev_info;
 extern int init_swap_address_space(unsigned int type, unsigned long nr_pages);
 extern void exit_swap_address_space(unsigned int type);
+extern struct swap_info_struct *get_swap_device(swp_entry_t entry);
+
+static inline void put_swap_device(struct swap_info_struct *si)
+{
+	rcu_read_unlock();
+}
 
 #else /* CONFIG_SWAP */
 
@@ -576,7 +583,7 @@ static inline int page_swapcount(struct page *page)
 	return 0;
 }
 
-static inline int __swap_count(struct swap_info_struct *si, swp_entry_t entry)
+static inline int __swap_count(swp_entry_t entry)
 {
 	return 0;
 }
diff --git a/mm/memory.c b/mm/memory.c
index 9a4401d21e94..b0efc69b2634 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -2807,7 +2807,7 @@ vm_fault_t do_swap_page(struct vm_fault *vmf)
 		struct swap_info_struct *si = swp_swap_info(entry);
 
 		if (si->flags & SWP_SYNCHRONOUS_IO &&
-				__swap_count(si, entry) == 1) {
+				__swap_count(entry) == 1) {
 			/* skip swapcache */
 			page = alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma,
 							vmf->address);
diff --git a/mm/swap_state.c b/mm/swap_state.c
index 85245fdec8d9..61453f1faf72 100644
--- a/mm/swap_state.c
+++ b/mm/swap_state.c
@@ -310,8 +310,13 @@ struct page *lookup_swap_cache(swp_entry_t entry, struct vm_area_struct *vma,
 			       unsigned long addr)
 {
 	struct page *page;
+	struct swap_info_struct *si;
 
+	si = get_swap_device(entry);
+	if (!si)
+		return NULL;
 	page = find_get_page(swap_address_space(entry), swp_offset(entry));
+	put_swap_device(si);
 
 	INC_CACHE_INFO(find_total);
 	if (page) {
@@ -354,8 +359,8 @@ struct page *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
 			struct vm_area_struct *vma, unsigned long addr,
 			bool *new_page_allocated)
 {
-	struct page *found_page, *new_page = NULL;
-	struct address_space *swapper_space = swap_address_space(entry);
+	struct page *found_page = NULL, *new_page = NULL;
+	struct swap_info_struct *si;
 	int err;
 	*new_page_allocated = false;
 
@@ -365,7 +370,12 @@ struct page *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
 		 * called after lookup_swap_cache() failed, re-calling
 		 * that would confuse statistics.
 		 */
-		found_page = find_get_page(swapper_space, swp_offset(entry));
+		si = get_swap_device(entry);
+		if (!si)
+			break;
+		found_page = find_get_page(swap_address_space(entry),
+					   swp_offset(entry));
+		put_swap_device(si);
 		if (found_page)
 			break;
 
diff --git a/mm/swapfile.c b/mm/swapfile.c
index 596ac98051c5..dbab16ddefa6 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -1079,12 +1079,11 @@ swp_entry_t get_swap_page_of_type(int type)
 static struct swap_info_struct *__swap_info_get(swp_entry_t entry)
 {
 	struct swap_info_struct *p;
-	unsigned long offset, type;
+	unsigned long offset;
 
 	if (!entry.val)
 		goto out;
-	type = swp_type(entry);
-	p = swap_type_to_swap_info(type);
+	p = swp_swap_info(entry);
 	if (!p)
 		goto bad_nofile;
 	if (!(p->flags & SWP_USED))
@@ -1187,6 +1186,69 @@ static unsigned char __swap_entry_free_locked(struct swap_info_struct *p,
 	return usage;
 }
 
+/*
+ * Check whether swap entry is valid in the swap device.  If so,
+ * return pointer to swap_info_struct, and keep the swap entry valid
+ * via preventing the swap device from being swapoff, until
+ * put_swap_device() is called.  Otherwise return NULL.
+ *
+ * The entirety of the RCU read critical section must come before the
+ * return from or after the call to synchronize_rcu() in
+ * enable_swap_info() or swapoff().  So if "si->flags & SWP_VALID" is
+ * true, the si->map, si->cluster_info, etc. must be valid in the
+ * critical section.
+ *
+ * Notice that swapoff or swapoff+swapon can still happen before the
+ * rcu_read_lock() in get_swap_device() or after the rcu_read_unlock()
+ * in put_swap_device() if there isn't any other way to prevent
+ * swapoff, such as page lock, page table lock, etc.  The caller must
+ * be prepared for that.  For example, the following situation is
+ * possible.
+ *
+ *   CPU1				CPU2
+ *   do_swap_page()
+ *     ...				swapoff+swapon
+ *     __read_swap_cache_async()
+ *       swapcache_prepare()
+ *         __swap_duplicate()
+ *           // check swap_map
+ *     // verify PTE not changed
+ *
+ * In __swap_duplicate(), the swap_map need to be checked before
+ * changing partly because the specified swap entry may be for another
+ * swap device which has been swapoff.  And in do_swap_page(), after
+ * the page is read from the swap device, the PTE is verified not
+ * changed with the page table locked to check whether the swap device
+ * has been swapoff or swapoff+swapon.
+ */
+struct swap_info_struct *get_swap_device(swp_entry_t entry)
+{
+	struct swap_info_struct *si;
+	unsigned long offset;
+
+	if (!entry.val)
+		goto out;
+	si = swp_swap_info(entry);
+	if (!si)
+		goto bad_nofile;
+
+	rcu_read_lock();
+	if (!(si->flags & SWP_VALID))
+		goto unlock_out;
+	offset = swp_offset(entry);
+	if (offset >= si->max)
+		goto unlock_out;
+
+	return si;
+bad_nofile:
+	pr_err("%s: %s%08lx\n", __func__, Bad_file, entry.val);
+out:
+	return NULL;
+unlock_out:
+	rcu_read_unlock();
+	return NULL;
+}
+
 static unsigned char __swap_entry_free(struct swap_info_struct *p,
 				       swp_entry_t entry, unsigned char usage)
 {
@@ -1358,11 +1420,18 @@ int page_swapcount(struct page *page)
 	return count;
 }
 
-int __swap_count(struct swap_info_struct *si, swp_entry_t entry)
+int __swap_count(swp_entry_t entry)
 {
+	struct swap_info_struct *si;
 	pgoff_t offset = swp_offset(entry);
+	int count = 0;
 
-	return swap_count(si->swap_map[offset]);
+	si = get_swap_device(entry);
+	if (si) {
+		count = swap_count(si->swap_map[offset]);
+		put_swap_device(si);
+	}
+	return count;
 }
 
 static int swap_swapcount(struct swap_info_struct *si, swp_entry_t entry)
@@ -1387,9 +1456,11 @@ int __swp_swapcount(swp_entry_t entry)
 	int count = 0;
 	struct swap_info_struct *si;
 
-	si = __swap_info_get(entry);
-	if (si)
+	si = get_swap_device(entry);
+	if (si) {
 		count = swap_swapcount(si, entry);
+		put_swap_device(si);
+	}
 	return count;
 }
 
@@ -2335,9 +2406,9 @@ static int swap_node(struct swap_info_struct *p)
 	return bdev ? bdev->bd_disk->node_id : NUMA_NO_NODE;
 }
 
-static void _enable_swap_info(struct swap_info_struct *p, int prio,
-				unsigned char *swap_map,
-				struct swap_cluster_info *cluster_info)
+static void setup_swap_info(struct swap_info_struct *p, int prio,
+			    unsigned char *swap_map,
+			    struct swap_cluster_info *cluster_info)
 {
 	int i;
 
@@ -2362,7 +2433,11 @@ static void _enable_swap_info(struct swap_info_struct *p, int prio,
 	}
 	p->swap_map = swap_map;
 	p->cluster_info = cluster_info;
-	p->flags |= SWP_WRITEOK;
+}
+
+static void _enable_swap_info(struct swap_info_struct *p)
+{
+	p->flags |= SWP_WRITEOK | SWP_VALID;
 	atomic_long_add(p->pages, &nr_swap_pages);
 	total_swap_pages += p->pages;
 
@@ -2389,7 +2464,17 @@ static void enable_swap_info(struct swap_info_struct *p, int prio,
 	frontswap_init(p->type, frontswap_map);
 	spin_lock(&swap_lock);
 	spin_lock(&p->lock);
-	 _enable_swap_info(p, prio, swap_map, cluster_info);
+	setup_swap_info(p, prio, swap_map, cluster_info);
+	spin_unlock(&p->lock);
+	spin_unlock(&swap_lock);
+	/*
+	 * Guarantee swap_map, cluster_info, etc. fields are valid
+	 * between get/put_swap_device() if SWP_VALID bit is set
+	 */
+	synchronize_rcu();
+	spin_lock(&swap_lock);
+	spin_lock(&p->lock);
+	_enable_swap_info(p);
 	spin_unlock(&p->lock);
 	spin_unlock(&swap_lock);
 }
@@ -2398,7 +2483,8 @@ static void reinsert_swap_info(struct swap_info_struct *p)
 {
 	spin_lock(&swap_lock);
 	spin_lock(&p->lock);
-	_enable_swap_info(p, p->prio, p->swap_map, p->cluster_info);
+	setup_swap_info(p, p->prio, p->swap_map, p->cluster_info);
+	_enable_swap_info(p);
 	spin_unlock(&p->lock);
 	spin_unlock(&swap_lock);
 }
@@ -2501,6 +2587,17 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile)
 
 	reenable_swap_slots_cache_unlock();
 
+	spin_lock(&swap_lock);
+	spin_lock(&p->lock);
+	p->flags &= ~SWP_VALID;		/* mark swap device as invalid */
+	spin_unlock(&p->lock);
+	spin_unlock(&swap_lock);
+	/*
+	 * wait for swap operations protected by get/put_swap_device()
+	 * to complete
+	 */
+	synchronize_rcu();
+
 	flush_work(&p->discard_work);
 
 	destroy_swap_extents(p);
@@ -3265,17 +3362,11 @@ static int __swap_duplicate(swp_entry_t entry, unsigned char usage)
 	unsigned char has_cache;
 	int err = -EINVAL;
 
-	if (non_swap_entry(entry))
-		goto out;
-
-	p = swp_swap_info(entry);
+	p = get_swap_device(entry);
 	if (!p)
-		goto bad_file;
-
-	offset = swp_offset(entry);
-	if (unlikely(offset >= p->max))
 		goto out;
 
+	offset = swp_offset(entry);
 	ci = lock_cluster_or_swap_info(p, offset);
 
 	count = p->swap_map[offset];
@@ -3321,11 +3412,9 @@ static int __swap_duplicate(swp_entry_t entry, unsigned char usage)
 unlock_out:
 	unlock_cluster_or_swap_info(p, ci);
 out:
+	if (p)
+		put_swap_device(p);
 	return err;
-
-bad_file:
-	pr_err("swap_dup: %s%08lx\n", Bad_file, entry.val);
-	goto out;
 }
 
 /*
@@ -3417,6 +3506,7 @@ int add_swap_count_continuation(swp_entry_t entry, gfp_t gfp_mask)
 	struct page *list_page;
 	pgoff_t offset;
 	unsigned char count;
+	int ret = 0;
 
 	/*
 	 * When debugging, it's easier to use __GFP_ZERO here; but it's better
@@ -3424,15 +3514,15 @@ int add_swap_count_continuation(swp_entry_t entry, gfp_t gfp_mask)
 	 */
 	page = alloc_page(gfp_mask | __GFP_HIGHMEM);
 
-	si = swap_info_get(entry);
+	si = get_swap_device(entry);
 	if (!si) {
 		/*
 		 * An acceptable race has occurred since the failing
-		 * __swap_duplicate(): the swap entry has been freed,
-		 * perhaps even the whole swap_map cleared for swapoff.
+		 * __swap_duplicate(): the swap device may be swapoff
 		 */
 		goto outer;
 	}
+	spin_lock(&si->lock);
 
 	offset = swp_offset(entry);
 
@@ -3450,9 +3540,8 @@ int add_swap_count_continuation(swp_entry_t entry, gfp_t gfp_mask)
 	}
 
 	if (!page) {
-		unlock_cluster(ci);
-		spin_unlock(&si->lock);
-		return -ENOMEM;
+		ret = -ENOMEM;
+		goto out;
 	}
 
 	/*
@@ -3504,10 +3593,11 @@ int add_swap_count_continuation(swp_entry_t entry, gfp_t gfp_mask)
 out:
 	unlock_cluster(ci);
 	spin_unlock(&si->lock);
+	put_swap_device(si);
 outer:
 	if (page)
 		__free_page(page);
-	return 0;
+	return ret;
 }
 
 /*
-- 
2.20.1




  parent reply	other threads:[~2019-07-29 19:58 UTC|newest]

Thread overview: 232+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-29 19:19 [PATCH 5.2 000/215] 5.2.5-stable review Greg Kroah-Hartman
2019-07-29 19:19 ` [PATCH 5.2 001/215] regulator: 88pm800: fix warning same module names Greg Kroah-Hartman
2019-07-29 19:19 ` [PATCH 5.2 002/215] media: drivers: media: coda: " Greg Kroah-Hartman
2019-07-29 19:19 ` [PATCH 5.2 003/215] btrfs: shut up bogus -Wmaybe-uninitialized warning Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 004/215] drm/lima: handle shared irq case for lima_pp_bcast_irq_handler Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 005/215] drm/panel: simple: Fix panel_simple_dsi_probe Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 006/215] iio: adc: stm32-dfsdm: manage the get_irq error case Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 007/215] iio: adc: stm32-dfsdm: missing error case during probe Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 008/215] drm/virtio: set seqno for dma-fence Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 009/215] staging: kpc2000: added missing clean-up to probe_core_uio Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 010/215] ipmi_si: fix unexpected driver unregister warning Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 011/215] staging: vt6656: use meaningful error code during buffer allocation Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 012/215] drm/bochs: Fix connector leak during driver unload Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 013/215] usb: core: hub: Disable hub-initiated U1/U2 Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 014/215] tty: max310x: Fix invalid baudrate divisors calculator Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 015/215] pinctrl: rockchip: fix leaked of_node references Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 016/215] tty: serial: cpm_uart - fix init when SMC is relocated Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 017/215] f2fs: fix to check layout on last valid checkpoint park Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 018/215] drm/msm/a6xx: Check for ERR or NULL before iounmap Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 019/215] ipmi_ssif: fix unexpected driver unregister warning Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 020/215] drm/amd/display: Fill prescale_params->scale for RGB565 Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 021/215] drm/amd/display: fix multi display seamless boot case Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 022/215] drm/msm/a6xx: Avoid freeing gmu resources multiple times Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 023/215] drm/amd/display: Disable cursor when offscreen in negative direction Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 024/215] drm/amd/display: Fill plane attrs only for valid pxl format Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 025/215] drm/amdgpu: Reserve shared fence for eviction fence Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 026/215] f2fs: fix to avoid deadloop if data_flush is on Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 027/215] drm/amdgpu/sriov: Need to initialize the HDP_NONSURFACE_BAStE Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 028/215] drm/amd/display: Disable ABM before destroy ABM struct Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 029/215] drm/amdkfd: Fix a potential memory leak Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 030/215] drm/amdkfd: Fix sdma queue map issue Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 031/215] drm/edid: Fix a missing-check bug in drm_load_edid_firmware() Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 032/215] tools: PCI: Fix broken pcitest compilation Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 033/215] PCI: Return error if cannot probe VF Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 034/215] staging: kpc2000: report error status to spi core Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 035/215] drm/bridge: tc358767: read display_props in get_modes() Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 036/215] drm/bridge: sii902x: pixel clock unit is 10kHz instead of 1kHz Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 037/215] drm/amd/display: Reset planes for color management changes Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 038/215] drm/amd/display: CS_TFM_1D only applied post EOTF Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 039/215] drm/amd/display: Increase Backlight Gain Step Size Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 040/215] f2fs: Fix accounting for unusable blocks Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 041/215] f2fs: Lower threshold for disable_cp_again Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 042/215] gpu: host1x: Increase maximum DMA segment size Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 043/215] drm/crc-debugfs: User irqsafe spinlock in drm_crtc_add_crc_entry Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 044/215] drm/crc-debugfs: Also sprinkle irqrestore over early exits Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 045/215] drm/vkms: Forward timer right after drm_crtc_handle_vblank Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 046/215] i2c: nvidia-gpu: resume ccgx i2c client Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 047/215] mm/hmm: fix use after free with struct hmm in the mmu notifiers Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 048/215] drm/omap: dont check dispc timings for DSI Greg Kroah-Hartman
2019-07-30 11:37   ` Pavel Machek
2019-07-30 14:14     ` Sebastian Reichel
2019-07-29 19:20 ` [PATCH 5.2 049/215] memstick: Fix error cleanup path of memstick_init Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 050/215] tty/serial: digicolor: Fix digicolor-usart already registered warning Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 051/215] tty: serial: msm_serial: avoid system lockup condition Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 052/215] serial: 8250: Fix TX interrupt handling condition Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 053/215] PCI: endpoint: Allocate enough space for fixed size BAR Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 054/215] drm/amd/display: Always allocate initial connector state state Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 055/215] drm/amd/display: Update link rate from DPCD 10 Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 056/215] drm/virtio: Add memory barriers for capset cache Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 057/215] drm/amd/display: set link->dongle_max_pix_clk to 0 on a disconnect Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 058/215] phy: renesas: rcar-gen2: Fix memory leak at error paths Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 059/215] drm/amd/display: fix compilation error Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 060/215] sunhv: Fix device naming inconsistency between sunhv_console and sunhv_reg Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 061/215] drm/bridge: tfp410: fix use of cancel_delayed_work_sync Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 062/215] powerpc/pseries/mobility: prevent cpu hotplug during DT update Greg Kroah-Hartman
2019-07-29 19:20 ` [PATCH 5.2 063/215] dma-remap: Avoid de-referencing NULL atomic_pool Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 064/215] drm/rockchip: Properly adjust to a true clock in adjusted_mode Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 065/215] platform/x86: asus-wmi: Increase input buffer size of WMI methods Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 066/215] iio: adxl372: fix iio_triggered_buffer_{pre,post}enable positions Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 067/215] serial: imx: fix locking in set_termios() Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 068/215] serial: uartps: Use the same dynamic major number for all ports Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 069/215] tty: serial_core: Set port active bit in uart_port_activate Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 070/215] usb: gadget: Zero ffs_io_data Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 071/215] usb: dwc3: Fix core validation in probe, move after clocks are enabled Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 072/215] kvm: vmx: fix limit checking in get_vmx_mem_address() Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 073/215] mmc: sdhci: sdhci-pci-o2micro: Check if controller supports 8-bit width Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 074/215] KVM: nVMX: Intercept VMWRITEs to GUEST_{CS,SS}_AR_BYTES Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 075/215] kvm: vmx: segment limit check: use access length Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 076/215] drm/msm/adreno: Ensure that the zap shader region is big enough Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 077/215] powerpc/pci/of: Fix OF flags parsing for 64bit BARs Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 078/215] drm/msm: Depopulate platform on probe failure Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 079/215] serial: mctrl_gpio: Check if GPIO property exisits before requesting it Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 080/215] phy: renesas: rcar-gen3-usb2: fix imbalance powered flag Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 081/215] PCI: sysfs: Ignore lockdep for remove attribute Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 082/215] i2c: stm32f7: fix the get_irq error cases Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 083/215] net/ipv4: fib_trie: Avoid cryptic ternary expressions Greg Kroah-Hartman
2019-07-29 20:54   ` Matthias Kaehlcke
2019-07-29 20:57     ` Matthias Kaehlcke
2019-07-29 21:01       ` Nick Desaulniers
2019-07-30 17:59         ` Sasha Levin
2019-07-29 19:21 ` [PATCH 5.2 084/215] kbuild: Add -Werror=unknown-warning-option to CLANG_FLAGS Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 085/215] genksyms: Teach parser about 128-bit built-in types Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 086/215] phy: meson-g12a-usb3-pcie: disable locking for cr_regmap Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 087/215] PCI: xilinx-nwl: Fix Multi MSI data programming Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 088/215] iio: iio-utils: Fix possible incorrect mask calculation Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 089/215] dt-bindings: backlight: lm3630a: correct schema validation Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 090/215] powerpc/cacheflush: fix variable set but not used Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 091/215] powerpc/xmon: Fix disabling tracing while in xmon Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 092/215] powerpc/rtas: retry when cpu offline races with suspend/migration Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 093/215] fixdep: check return value of printf() and putchar() Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 094/215] recordmcount: Fix spurious mcount entries on powerpc Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 095/215] mfd: cros_ec: Register cros_ec_lid_angle driver when presented Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 096/215] mfd: madera: Add missing of table registration Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 097/215] mfd: core: Set fwnode for created devices Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 098/215] mfd: arizona: Fix undefined behavior Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 099/215] mfd: hi655x-pmic: Fix missing return value check for devm_regmap_init_mmio_clk Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 100/215] mm/swap: fix release_pages() when releasing devmap pages Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 101/215] um: Silence lockdep complaint about mmap_sem Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 102/215] f2fs: fix is_idle() check for discard type Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 103/215] powerpc: silence a -Wcast-function-type warning in dawr_write_file_bool Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 104/215] powerpc/4xx/uic: clear pending interrupt after irq type/pol change Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 105/215] powerpc/mm: mark more tlb functions as __always_inline Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 106/215] RDMA/i40iw: Set queue pair state when being queried Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 107/215] serial: sh-sci: Terminate TX DMA during buffer flushing Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 108/215] serial: sh-sci: Fix TX DMA buffer flushing and workqueue races Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 109/215] IB/mlx5: Fixed reporting counters on 2nd port for Dual port RoCE Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 110/215] powerpc/mm: Handle page table allocation failures Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 111/215] IB/ipoib: Add child to parent list only if device initialized Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 112/215] arm64: assembler: Switch ESB-instruction with a vanilla nop if !ARM64_HAS_RAS Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 113/215] KVM: nVMX: Stash L1s CR3 in vmcs01.GUEST_CR3 on nested entry w/o EPT Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 114/215] PCI: mobiveil: Fix PCI base address in MEM/IO outbound windows Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 115/215] PCI: mobiveil: Fix the Class Code field Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 116/215] kallsyms: exclude kasan local symbols on s390 Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 117/215] PCI: mobiveil: Initialize Primary/Secondary/Subordinate bus numbers Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 118/215] PCI: mobiveil: Use the 1st inbound window for MEM inbound transactions Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 119/215] perf test mmap-thread-lookup: Initialize variable to suppress memory sanitizer warning Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 120/215] perf stat: Fix use-after-freed pointer detected by the smatch tool Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 121/215] rseq/selftests: Fix Thumb mode build failure on arm32 Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 122/215] perf top: Fix potential NULL pointer dereference detected by the smatch tool Greg Kroah-Hartman
2019-07-29 19:21 ` [PATCH 5.2 123/215] perf trace: Fix potential NULL pointer dereference found " Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 124/215] perf session: " Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 125/215] perf map: Fix potential NULL pointer dereference found by " Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 126/215] perf annotate: Fix dereferencing freed memory found by the " Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 127/215] perf hists browser: Fix potential NULL pointer dereference " Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 128/215] RDMA/rxe: Fill in wc byte_len with IB_WC_RECV_RDMA_WITH_IMM Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 129/215] PCI: dwc: pci-dra7xx: Fix compilation when !CONFIG_GPIOLIB Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 130/215] perf intel-bts: Fix potential NULL pointer dereference found by the smatch tool Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 131/215] RDMA/core: Fix race when resolving IP address Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 132/215] nvme-pci: check for NULL return from pci_alloc_p2pmem() Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 133/215] nvme-pci: limit max_hw_sectors based on the DMA max mapping size Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 134/215] nvme-tcp: dont use sendpage for SLAB pages Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 135/215] io_uring: fix io_sq_thread_stop running in front of io_sq_thread Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 136/215] nvme-tcp: set the STABLE_WRITES flag when data digests are enabled Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 137/215] powerpc/irq: Dont WARN continuously in arch_local_irq_restore() Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 138/215] powerpc/boot: add {get, put}_unaligned_be32 to xz_config.h Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 139/215] block: init flush rq ref count to 1 Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 140/215] rds: Accept peer connection reject messages due to incompatible version Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 141/215] f2fs: fix to avoid long latency during umount Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 142/215] f2fs: avoid out-of-range memory access Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 143/215] mailbox: handle failed named mailbox channel request Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 144/215] dlm: check if workqueues are NULL before flushing/destroying Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 145/215] powerpc/eeh: Handle hugepages in ioremap space Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 146/215] platform/x86: Fix PCENGINES_APU2 Kconfig warning Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 147/215] block/bio-integrity: fix a memory leak bug Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 148/215] nvme: fix NULL deref for fabrics options Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 149/215] sh: prevent warnings when using iounmap Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 150/215] mm/kmemleak.c: fix check for softirq context Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 151/215] 9p: pass the correct prototype to read_cache_page Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 152/215] mm/mincore.c: fix race between swapoff and mincore Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 153/215] mm/gup.c: mark undo_dev_pagemap as __maybe_unused Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 154/215] mm/gup.c: remove some BUG_ONs from get_gate_page() Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 155/215] memcg, fsnotify: no oom-kill for remote memcg charging Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 156/215] mm/mmu_notifier: use hlist_add_head_rcu() Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 157/215] proc: use down_read_killable mmap_sem for /proc/pid/smaps_rollup Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 158/215] proc: use down_read_killable mmap_sem for /proc/pid/pagemap Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 159/215] proc: use down_read_killable mmap_sem for /proc/pid/clear_refs Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 160/215] proc: use down_read_killable mmap_sem for /proc/pid/map_files Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 161/215] cxgb4: reduce kernel stack usage in cudbg_collect_mem_region() Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 162/215] proc: use down_read_killable mmap_sem for /proc/pid/maps Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 163/215] locking/lockdep: Fix lock used or unused stats error Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 164/215] mm: use down_read_killable for locking mmap_sem in access_remote_vm Greg Kroah-Hartman
2019-07-29 19:22 ` Greg Kroah-Hartman [this message]
2019-07-29 19:22 ` [PATCH 5.2 166/215] locking/lockdep: Hide unused class variable Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 167/215] xhci: Fix crash if scatter gather is used with Immediate Data Transfer (IDT) Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 168/215] usb-storage: Add a limitation for blk_queue_max_hw_sectors() Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 169/215] usb: wusbcore: fix unbalanced get/put cluster_id Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 170/215] usb: pci-quirks: Correct AMD PLL quirk detection Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 171/215] Revert "usb: usb251xb: Add US lanes inversion dts-bindings" Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 172/215] Revert "usb: usb251xb: Add US port lanes inversion property" Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 173/215] usb: usb251xb: Reallow swap-dx-lanes to apply to the upstream port Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 174/215] KVM: X86: Fix fpu state crash in kvm guest Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 175/215] KVM: PPC: Book3S HV: Always save guest pmu for guest capable of nesting Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 176/215] KVM: PPC: Book3S HV: Save and restore guest visible PSSCR bits on pseries Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 177/215] KVM: PPC: Book3S HV: XIVE: fix rollback when kvmppc_xive_create fails Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 178/215] media: videodev2.h: change V4L2_PIX_FMT_BGRA444 define: fourcc was already in use Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 179/215] btrfs: inode: Dont compress if NODATASUM or NODATACOW set Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 180/215] selinux: check sidtab limit before adding a new entry Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 181/215] x86/sysfb_efi: Add quirks for some devices with swapped width and height Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 182/215] x86/speculation/mds: Apply more accurate check on hypervisor platform Greg Kroah-Hartman
2019-07-29 19:22 ` [PATCH 5.2 183/215] x86/stacktrace: Prevent access_ok() warnings in arch_stack_walk_user() Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 184/215] binder: Set end of SG buffer area properly Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 185/215] binder: prevent transactions to context manager from its own process Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 186/215] fpga-manager: altera-ps-spi: Fix build error Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 187/215] mei: me: add mule creek canyon (EHL) device ids Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 188/215] eeprom: make older eeprom drivers select NVMEM_SYSFS Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 189/215] hpet: Fix division by zero in hpet_time_div() Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 190/215] drm/panel: Add support for Armadeus ST0700 Adapt Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 191/215] ALSA: ac97: Fix double free of ac97_codec_device Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 192/215] ALSA: line6: Fix wrong altsetting for LINE6_PODHD500_1 Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 193/215] ALSA: pcm: Fix refcount_inc() on zero usage Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 194/215] ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 195/215] ALSA: hda - Add a conexant codec entry to let mute led work Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 196/215] powerpc/dma: Fix invalid DMA mmap behavior Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 197/215] powerpc/xive: Fix loop exit-condition in xive_find_target_in_mask() Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 198/215] powerpc/mm: Limit rma_size to 1TB when running without HV mode Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 199/215] powerpc/tm: Fix oops on sigreturn on systems without TM Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 200/215] powerpc/pmu: Set pmcregs_in_use in paca when running as LPAR Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 201/215] io_uring: fix the sequence comparison in io_sequence_defer Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 202/215] iommu/vt-d: Dont queue_iova() if there is no flush queue Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 203/215] iommu/iova: Remove stale cached32_node Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 204/215] iommu/iova: Fix compilation error with !CONFIG_IOMMU_IOVA Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 205/215] drivers/base: Introduce kill_device() Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 206/215] libnvdimm/bus: Prevent duplicate device_unregister() calls Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 207/215] libnvdimm/region: Register badblocks before namespaces Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 208/215] libnvdimm/bus: Stop holding nvdimm_bus_list_mutex over __nd_ioctl() Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 209/215] structleak: disable STRUCTLEAK_BYREF in combination with KASAN_STACK Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 210/215] drm/i915: Make the semaphore saturation mask global Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 211/215] access: avoid the RCU grace period for the temporary subjective credentials Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 212/215] io_uring: add a memory barrier before atomic_read Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 213/215] io_uring: ensure ->list is initialized for poll commands Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 214/215] io_uring: fix counter inc/dec mismatch in async_list Greg Kroah-Hartman
2019-07-29 19:23 ` [PATCH 5.2 215/215] io_uring: dont use iov_iter_advance() for fixed buffers Greg Kroah-Hartman
2019-07-30  3:34 ` [PATCH 5.2 000/215] 5.2.5-stable review kernelci.org bot
2019-07-30  9:18 ` Naresh Kamboju
2019-07-30  9:25   ` Greg Kroah-Hartman
2019-07-30 14:01 ` shuah
2019-07-30 14:06   ` Greg Kroah-Hartman
2019-07-30 18:43 ` Guenter Roeck
2019-07-30 18:49   ` Greg Kroah-Hartman
2019-07-31  5:30 ` Kelsey Skunberg
2019-07-31  9:36 ` Jon Hunter
2019-07-31  9:50   ` 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=20190729190808.410288648@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=andrea.parri@amarulasolutions.com \
    --cc=daniel.m.jordan@oracle.com \
    --cc=dave.jiang@intel.com \
    --cc=hannes@cmpxchg.org \
    --cc=hughd@google.com \
    --cc=jack@suse.cz \
    --cc=jglisse@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mgorman@techsingularity.net \
    --cc=mhocko@suse.com \
    --cc=minchan@kernel.org \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=riel@redhat.com \
    --cc=rientjes@google.com \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=tim.c.chen@linux.intel.com \
    --cc=torvalds@linux-foundation.org \
    --cc=yang.shi@linux.alibaba.com \
    --cc=ying.huang@intel.com \
    /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).