public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Daniel Jordan <daniel.m.jordan@oracle.com>,
	Alan Stern <stern@rowland.harvard.edu>,
	Andi Kleen <ak@linux.intel.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Omar Sandoval <osandov@fb.com>,
	Paul McKenney <paulmck@linux.vnet.ibm.com>,
	Shaohua Li <shli@kernel.org>,
	Stephen Rothwell <sfr@canb.auug.org.au>,
	Tejun Heo <tj@kernel.org>, Will Deacon <will.deacon@arm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Sasha Levin <sashal@kernel.org>,
	linux-mm@kvack.org
Subject: [PATCH AUTOSEL 4.19 024/192] mm, swap: bounds check swap_info array accesses to avoid NULL derefs
Date: Wed, 27 Mar 2019 14:07:36 -0400	[thread overview]
Message-ID: <20190327181025.13507-24-sashal@kernel.org> (raw)
In-Reply-To: <20190327181025.13507-1-sashal@kernel.org>

From: Daniel Jordan <daniel.m.jordan@oracle.com>

[ Upstream commit c10d38cc8d3e43f946b6c2bf4602c86791587f30 ]

Dan Carpenter reports a potential NULL dereference in
get_swap_page_of_type:

  Smatch complains that the NULL checks on "si" aren't consistent.  This
  seems like a real bug because we have not ensured that the type is
  valid and so "si" can be NULL.

Add the missing check for NULL, taking care to use a read barrier to
ensure CPU1 observes CPU0's updates in the correct order:

     CPU0                           CPU1
     alloc_swap_info()              if (type >= nr_swapfiles)
       swap_info[type] = p              /* handle invalid entry */
       smp_wmb()                    smp_rmb()
       ++nr_swapfiles               p = swap_info[type]

Without smp_rmb, CPU1 might observe CPU0's write to nr_swapfiles before
CPU0's write to swap_info[type] and read NULL from swap_info[type].

Ying Huang noticed other places in swapfile.c don't order these reads
properly.  Introduce swap_type_to_swap_info to encourage correct usage.

Use READ_ONCE and WRITE_ONCE to follow the Linux Kernel Memory Model
(see tools/memory-model/Documentation/explanation.txt).

This ordering need not be enforced in places where swap_lock is held
(e.g.  si_swapinfo) because swap_lock serializes updates to nr_swapfiles
and the swap_info array.

Link: http://lkml.kernel.org/r/20190131024410.29859-1-daniel.m.jordan@oracle.com
Fixes: ec8acf20afb8 ("swap: add per-partition lock for swapfile")
Signed-off-by: Daniel Jordan <daniel.m.jordan@oracle.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Suggested-by: "Huang, Ying" <ying.huang@intel.com>
Reviewed-by: Andrea Parri <andrea.parri@amarulasolutions.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Omar Sandoval <osandov@fb.com>
Cc: Paul McKenney <paulmck@linux.vnet.ibm.com>
Cc: Shaohua Li <shli@kernel.org>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Tejun Heo <tj@kernel.org>
Cc: Will Deacon <will.deacon@arm.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>
---
 mm/swapfile.c | 51 +++++++++++++++++++++++++++++----------------------
 1 file changed, 29 insertions(+), 22 deletions(-)

diff --git a/mm/swapfile.c b/mm/swapfile.c
index 340ef3177686..0047dcaf9369 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -98,6 +98,15 @@ static atomic_t proc_poll_event = ATOMIC_INIT(0);
 
 atomic_t nr_rotate_swap = ATOMIC_INIT(0);
 
+static struct swap_info_struct *swap_type_to_swap_info(int type)
+{
+	if (type >= READ_ONCE(nr_swapfiles))
+		return NULL;
+
+	smp_rmb();	/* Pairs with smp_wmb in alloc_swap_info. */
+	return READ_ONCE(swap_info[type]);
+}
+
 static inline unsigned char swap_count(unsigned char ent)
 {
 	return ent & ~SWAP_HAS_CACHE;	/* may include COUNT_CONTINUED flag */
@@ -1030,12 +1039,14 @@ int get_swap_pages(int n_goal, swp_entry_t swp_entries[], int entry_size)
 /* The only caller of this function is now suspend routine */
 swp_entry_t get_swap_page_of_type(int type)
 {
-	struct swap_info_struct *si;
+	struct swap_info_struct *si = swap_type_to_swap_info(type);
 	pgoff_t offset;
 
-	si = swap_info[type];
+	if (!si)
+		goto fail;
+
 	spin_lock(&si->lock);
-	if (si && (si->flags & SWP_WRITEOK)) {
+	if (si->flags & SWP_WRITEOK) {
 		atomic_long_dec(&nr_swap_pages);
 		/* This is called for allocating swap entry, not cache */
 		offset = scan_swap_map(si, 1);
@@ -1046,6 +1057,7 @@ swp_entry_t get_swap_page_of_type(int type)
 		atomic_long_inc(&nr_swap_pages);
 	}
 	spin_unlock(&si->lock);
+fail:
 	return (swp_entry_t) {0};
 }
 
@@ -1057,9 +1069,9 @@ static struct swap_info_struct *__swap_info_get(swp_entry_t entry)
 	if (!entry.val)
 		goto out;
 	type = swp_type(entry);
-	if (type >= nr_swapfiles)
+	p = swap_type_to_swap_info(type);
+	if (!p)
 		goto bad_nofile;
-	p = swap_info[type];
 	if (!(p->flags & SWP_USED))
 		goto bad_device;
 	offset = swp_offset(entry);
@@ -1708,10 +1720,9 @@ int swap_type_of(dev_t device, sector_t offset, struct block_device **bdev_p)
 sector_t swapdev_block(int type, pgoff_t offset)
 {
 	struct block_device *bdev;
+	struct swap_info_struct *si = swap_type_to_swap_info(type);
 
-	if ((unsigned int)type >= nr_swapfiles)
-		return 0;
-	if (!(swap_info[type]->flags & SWP_WRITEOK))
+	if (!si || !(si->flags & SWP_WRITEOK))
 		return 0;
 	return map_swap_entry(swp_entry(type, offset), &bdev);
 }
@@ -2269,7 +2280,7 @@ static sector_t map_swap_entry(swp_entry_t entry, struct block_device **bdev)
 	struct swap_extent *se;
 	pgoff_t offset;
 
-	sis = swap_info[swp_type(entry)];
+	sis = swp_swap_info(entry);
 	*bdev = sis->bdev;
 
 	offset = swp_offset(entry);
@@ -2707,9 +2718,7 @@ static void *swap_start(struct seq_file *swap, loff_t *pos)
 	if (!l)
 		return SEQ_START_TOKEN;
 
-	for (type = 0; type < nr_swapfiles; type++) {
-		smp_rmb();	/* read nr_swapfiles before swap_info[type] */
-		si = swap_info[type];
+	for (type = 0; (si = swap_type_to_swap_info(type)); type++) {
 		if (!(si->flags & SWP_USED) || !si->swap_map)
 			continue;
 		if (!--l)
@@ -2729,9 +2738,7 @@ static void *swap_next(struct seq_file *swap, void *v, loff_t *pos)
 	else
 		type = si->type + 1;
 
-	for (; type < nr_swapfiles; type++) {
-		smp_rmb();	/* read nr_swapfiles before swap_info[type] */
-		si = swap_info[type];
+	for (; (si = swap_type_to_swap_info(type)); type++) {
 		if (!(si->flags & SWP_USED) || !si->swap_map)
 			continue;
 		++*pos;
@@ -2838,14 +2845,14 @@ static struct swap_info_struct *alloc_swap_info(void)
 	}
 	if (type >= nr_swapfiles) {
 		p->type = type;
-		swap_info[type] = p;
+		WRITE_ONCE(swap_info[type], p);
 		/*
 		 * Write swap_info[type] before nr_swapfiles, in case a
 		 * racing procfs swap_start() or swap_next() is reading them.
 		 * (We never shrink nr_swapfiles, we never free this entry.)
 		 */
 		smp_wmb();
-		nr_swapfiles++;
+		WRITE_ONCE(nr_swapfiles, nr_swapfiles + 1);
 	} else {
 		kvfree(p);
 		p = swap_info[type];
@@ -3365,7 +3372,7 @@ static int __swap_duplicate(swp_entry_t entry, unsigned char usage)
 {
 	struct swap_info_struct *p;
 	struct swap_cluster_info *ci;
-	unsigned long offset, type;
+	unsigned long offset;
 	unsigned char count;
 	unsigned char has_cache;
 	int err = -EINVAL;
@@ -3373,10 +3380,10 @@ static int __swap_duplicate(swp_entry_t entry, unsigned char usage)
 	if (non_swap_entry(entry))
 		goto out;
 
-	type = swp_type(entry);
-	if (type >= nr_swapfiles)
+	p = swp_swap_info(entry);
+	if (!p)
 		goto bad_file;
-	p = swap_info[type];
+
 	offset = swp_offset(entry);
 	if (unlikely(offset >= p->max))
 		goto out;
@@ -3473,7 +3480,7 @@ int swapcache_prepare(swp_entry_t entry)
 
 struct swap_info_struct *swp_swap_info(swp_entry_t entry)
 {
-	return swap_info[swp_type(entry)];
+	return swap_type_to_swap_info(swp_type(entry));
 }
 
 struct swap_info_struct *page_swap_info(struct page *page)
-- 
2.19.1


  parent reply	other threads:[~2019-03-27 19:10 UTC|newest]

Thread overview: 192+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-27 18:07 [PATCH AUTOSEL 4.19 001/192] CIFS: fix POSIX lock leak and invalid ptr deref Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 002/192] h8300: use cc-cross-prefix instead of hardcoding h8300-unknown-linux- Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 003/192] f2fs: fix to adapt small inline xattr space in __find_inline_xattr() Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 004/192] f2fs: fix to avoid deadlock in f2fs_read_inline_dir() Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 005/192] f2fs: fix to avoid deadlock of atomic file operations Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 006/192] i2c: sis630: correct format strings Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 007/192] tracing: kdb: Fix ftdump to not sleep Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 008/192] net/mlx5: Avoid panic when setting vport rate Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 009/192] net/mlx5: Avoid panic when setting vport mac, getting vport config Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 010/192] gpio: gpio-omap: fix level interrupt idling Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 011/192] include/linux/relay.h: fix percpu annotation in struct rchan Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 012/192] sysctl: handle overflow for file-max Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 013/192] net: stmmac: Avoid sometimes uninitialized Clang warnings Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 014/192] enic: fix build warning without CONFIG_CPUMASK_OFFSTACK Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 015/192] libbpf: force fixdep compilation at the start of the build Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 016/192] scsi: hisi_sas: Set PHY linkrate when disconnected Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 017/192] scsi: hisi_sas: Fix a timeout race of driver internal and SMP IO Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 018/192] iio: adc: fix warning in Qualcomm PM8xxx HK/XOADC driver Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 019/192] x86/hyperv: Fix kernel panic when kexec on HyperV Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 020/192] perf c2c: Fix c2c report for empty numa node Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 021/192] mm/sparse: fix a bad comparison Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 022/192] mm/cma.c: cma_declare_contiguous: correct err handling Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 023/192] mm/page_ext.c: fix an imbalance with kmemleak Sasha Levin
2019-03-27 18:07 ` Sasha Levin [this message]
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 025/192] mm,oom: don't kill global init via memory.oom.group Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 026/192] memcg: killed threads should not invoke memcg OOM killer Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 027/192] mm, mempolicy: fix uninit memory access Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 028/192] mm/vmalloc.c: fix kernel BUG at mm/vmalloc.c:512! Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 029/192] mm/slab.c: kmemleak no scan alien caches Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 030/192] ocfs2: fix a panic problem caused by o2cb_ctl Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 031/192] f2fs: do not use mutex lock in atomic context Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 032/192] f2fs: fix to data block override node segment by mistake Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 033/192] fs/file.c: initialize init_files.resize_wait Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 034/192] page_poison: play nicely with KASAN Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 035/192] cifs: use correct format characters Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 036/192] dm thin: add sanity checks to thin-pool and external snapshot creation Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 037/192] f2fs: fix to check inline_xattr_size boundary correctly Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 038/192] cifs: Accept validate negotiate if server return NT_STATUS_NOT_SUPPORTED Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 039/192] cifs: Fix NULL pointer dereference of devname Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 040/192] fs: Make splice() and tee() take into account O_NONBLOCK flag on pipes Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 041/192] netfilter: nf_tables: check the result of dereferencing base_chain->stats Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 042/192] netfilter: conntrack: tcp: only close if RST matches exact sequence Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 043/192] jbd2: fix invalid descriptor block checksum Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 044/192] fs: fix guard_bio_eod to check for real EOD errors Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 045/192] tools lib traceevent: Fix buffer overflow in arg_eval Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 046/192] PCI/PME: Fix hotplug/sysfs remove deadlock in pcie_pme_remove() Sasha Levin
2019-03-27 18:07 ` [PATCH AUTOSEL 4.19 047/192] wil6210: check null pointer in _wil_cfg80211_merge_extra_ies Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 048/192] mt76: fix a leaked reference by adding a missing of_node_put Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 049/192] crypto: crypto4xx - add missing of_node_put after of_device_is_available Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 050/192] crypto: cavium/zip - fix collision with generic cra_driver_name Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 051/192] usb: chipidea: Grab the (legacy) USB PHY by phandle first Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 052/192] powerpc/powernv/ioda: Fix locked_vm counting for memory used by IOMMU tables Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 053/192] scsi: core: replace GFP_ATOMIC with GFP_KERNEL in scsi_scan.c Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 054/192] kbuild: invoke syncconfig if include/config/auto.conf.cmd is missing Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 055/192] powerpc/xmon: Fix opcode being uninitialized in print_insn_powerpc Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 056/192] coresight: etm4x: Add support to enable ETMv4.2 Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 057/192] serial: 8250_pxa: honor the port number from devicetree Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 058/192] ARM: 8840/1: use a raw_spinlock_t in unwind Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 059/192] iommu/io-pgtable-arm-v7s: Only kmemleak_ignore L2 tables Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 060/192] powerpc/hugetlb: Handle mmap_min_addr correctly in get_unmapped_area callback Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 061/192] btrfs: qgroup: Make qgroup async transaction commit more aggressive Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 062/192] mmc: omap: fix the maximum timeout setting Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 063/192] net: dsa: mv88e6xxx: Add lockdep classes to fix false positive splat Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 064/192] e1000e: Fix -Wformat-truncation warnings Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 065/192] mlxsw: spectrum: Avoid " Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 066/192] platform/x86: ideapad-laptop: Fix no_hw_rfkill_list for Lenovo RESCUER R720-15IKBN Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 067/192] platform/mellanox: mlxreg-hotplug: Fix KASAN warning Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 068/192] loop: set GENHD_FL_NO_PART_SCAN after blkdev_reread_part() Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 069/192] IB/mlx4: Increase the timeout for CM cache Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 070/192] clk: fractional-divider: check parent rate only if flag is set Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 071/192] perf annotate: Fix getting source line failure Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 072/192] ASoC: qcom: Fix of-node refcount unbalance in apq8016_sbc_parse_of() Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 073/192] ASoC: qcom: Fix of-node refcount unbalance in qcom_snd_parse_of() Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 074/192] cpufreq: acpi-cpufreq: Report if CPU doesn't support boost technologies Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 075/192] efi: cper: Fix possible out-of-bounds access Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 076/192] s390/ism: ignore some errors during deregistration Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 077/192] scsi: megaraid_sas: return error when create DMA pool failed Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 078/192] scsi: fcoe: make use of fip_mode enum complete Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 079/192] drm/amd/display: Clear stream->mode_changed after commit Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 080/192] perf test: Fix failure of 'evsel-tp-sched' test on s390 Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 081/192] mwifiex: don't advertise IBSS features without FW support Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 082/192] perf report: Don't shadow inlined symbol with different addr range Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 083/192] SoC: imx-sgtl5000: add missing put_device() Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 084/192] media: ov7740: fix runtime pm initialization Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 085/192] media: sh_veu: Correct return type for mem2mem buffer helpers Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 086/192] media: s5p-jpeg: " Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 087/192] media: rockchip/rga: " Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 088/192] media: s5p-g2d: " Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 089/192] media: mx2_emmaprp: " Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 090/192] media: mtk-jpeg: " Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 091/192] mt76: usb: do not run mt76u_queues_deinit twice Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 092/192] Bluetooth: hci_ldisc: Initialize hci_dev before open() Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 093/192] xen/gntdev: Do not destroy context while dma-bufs are in use Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 094/192] vfs: fix preadv64v2 and pwritev64v2 compat syscalls with offset == -1 Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 095/192] HID: intel-ish-hid: avoid binding wrong ishtp_cl_device Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 096/192] cgroup, rstat: Don't flush subtree root unless necessary Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 097/192] jbd2: fix race when writing superblock Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 098/192] leds: lp55xx: fix null deref on firmware load failure Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 099/192] perf report: Add s390 diagnosic sampling descriptor size Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 100/192] iwlwifi: pcie: fix emergency path Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 101/192] ACPI / video: Refactor and fix dmi_is_desktop() Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 102/192] drm: allow render capable master with DRM_AUTH ioctls Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 103/192] selftests: skip seccomp get_metadata test if not real root Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 104/192] kprobes: Prohibit probing on bsearch() Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 105/192] kprobes: Prohibit probing on RCU debug routine Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 106/192] netfilter: conntrack: fix cloned unconfirmed skb->_nfct race in __nf_conntrack_confirm Sasha Levin
2019-03-27 18:08 ` [PATCH AUTOSEL 4.19 107/192] ARM: 8833/1: Ensure that NEON code always compiles with Clang Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 108/192] ARM: dts: meson8b: fix the Ethernet data line signals in eth_rgmii_pins Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 109/192] ALSA: PCM: check if ops are defined before suspending PCM Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 110/192] ath10k: fix shadow register implementation for WCN3990 Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 111/192] usb: f_fs: Avoid crash due to out-of-scope stack ptr access Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 112/192] sched/topology: Fix percpu data types in struct sd_data & struct s_data Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 113/192] bcache: fix input overflow to cache set sysfs file io_error_halflife Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 114/192] bcache: fix input overflow to sequential_cutoff Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 115/192] bcache: fix potential div-zero error of writeback_rate_i_term_inverse Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 116/192] bcache: improve sysfs_strtoul_clamp() Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 117/192] genirq: Avoid summation loops for /proc/stat Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 118/192] net: marvell: mvpp2: fix stuck in-band SGMII negotiation Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 119/192] iw_cxgb4: fix srqidx leak during connection abort Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 120/192] net: phy: consider latched link-down status in polling mode Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 121/192] fbdev: fbmem: fix memory access if logo is bigger than the screen Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 122/192] cdrom: Fix race condition in cdrom_sysctl_register Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 123/192] drm: rcar-du: add missing of_node_put Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 124/192] drm/amd/display: Don't re-program planes for DPMS changes Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 125/192] drm/amd/display: Disconnect mpcc when changing tg Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 126/192] perf/aux: Make perf_event accessible to setup_aux() Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 127/192] e1000e: fix cyclic resets at link up with active tx Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 128/192] e1000e: Exclude device from suspend direct complete optimization Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 129/192] platform/x86: intel_pmc_core: Fix PCH IP sts reading Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 130/192] i2c: of: Try to find an I2C adapter matching the parent Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 131/192] staging: spi: mt7621: Add return code check on device_reset() Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 132/192] iwlwifi: mvm: fix RFH config command with >=10 CPUs Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 133/192] ASoC: fsl-asoc-card: fix object reference leaks in fsl_asoc_card_probe Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 134/192] sched/debug: Initialize sd_sysctl_cpus if !CONFIG_CPUMASK_OFFSTACK Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 135/192] locking/lockdep: Add debug_locks check in __lock_downgrade() Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 136/192] efi/memattr: Don't bail on zero VA if it equals the region's PA Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 137/192] sched/core: Use READ_ONCE()/WRITE_ONCE() in move_queued_task()/task_rq_lock() Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 138/192] drm/vkms: Bugfix extra vblank frame Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 139/192] ARM: dts: lpc32xx: Remove leading 0x and 0s from bindings notation Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 140/192] efi/arm/arm64: Allow SetVirtualAddressMap() to be omitted Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 141/192] soc: qcom: gsbi: Fix error handling in gsbi_probe() Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 142/192] mt7601u: bump supported EEPROM version Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 143/192] ARM: 8830/1: NOMMU: Toggle only bits in EXC_RETURN we are really care of Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 144/192] ARM: avoid Cortex-A9 livelock on tight dmb loops Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 145/192] block, bfq: fix in-service-queue check for queue merging Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 146/192] bpf: fix missing prototype warnings Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 147/192] selftests/bpf: skip verifier tests for unsupported program types Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 148/192] powerpc/64s: Clear on-stack exception marker upon exception return Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 149/192] cgroup/pids: turn cgroup_subsys->free() into cgroup_subsys->release() to fix the accounting Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 150/192] backlight: pwm_bl: Use gpiod_get_value_cansleep() to get initial state Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 151/192] tty: increase the default flip buffer limit to 2*640K Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 152/192] powerpc/pseries: Perform full re-add of CPU for topology update post-migration Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 153/192] drm/amd/display: Enable vblank interrupt during CRC capture Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 154/192] ALSA: dice: add support for Solid State Logic Duende Classic/Mini Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 155/192] usb: dwc3: gadget: Fix OTG events when gadget driver isn't loaded Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 156/192] platform/x86: intel-hid: Missing power button release on some Dell models Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 157/192] perf script python: Use PyBytes for attr in trace-event-python Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 158/192] perf script python: Add trace_context extension module to sys.modules Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 159/192] media: mt9m111: set initial frame size other than 0x0 Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 160/192] hwrng: virtio - Avoid repeated init of completion Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 161/192] soc/tegra: fuse: Fix illegal free of IO base address Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 162/192] HID: intel-ish: ipc: handle PIMR before ish_wakeup also clear PISR busy_clear bit Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 163/192] Bluetooth: Verify that l2cap_get_conf_opt provides large enough buffer Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 164/192] f2fs: UBSAN: set boolean value iostat_enable correctly Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 165/192] hpet: Fix missing '=' character in the __setup() code of hpet_mmap_enable Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 166/192] Bluetooth: hci_uart: Check if socket buffer is ERR_PTR in h4_recv_buf() Sasha Levin
2019-03-27 18:09 ` [PATCH AUTOSEL 4.19 167/192] cpu/hotplug: Mute hotplug lockdep during init Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 168/192] dmaengine: imx-dma: fix warning comparison of distinct pointer types Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 169/192] dmaengine: qcom_hidma: assign channel cookie correctly Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 170/192] dmaengine: qcom_hidma: initialize tx flags in hidma_prep_dma_* Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 171/192] netfilter: physdev: relax br_netfilter dependency Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 172/192] media: rcar-vin: Allow independent VIN link enablement Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 173/192] media: s5p-jpeg: Check for fmt_ver_flag when doing fmt enumeration Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 174/192] regulator: act8865: Fix act8600_sudcdc_voltage_ranges setting Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 175/192] pinctrl: meson: meson8b: add the eth_rxd2 and eth_rxd3 pins Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 176/192] drm: Auto-set allow_fb_modifiers when given modifiers at plane init Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 177/192] drm/nouveau: Stop using drm_crtc_force_disable Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 178/192] x86/build: Specify elf_i386 linker emulation explicitly for i386 objects Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 179/192] selinux: do not override context on context mounts Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 180/192] brcmfmac: Use firmware_request_nowarn for the clm_blob Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 181/192] wlcore: Fix memory leak in case wl12xx_fetch_firmware failure Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 182/192] x86/build: Mark per-CPU symbols as absolute explicitly for LLD Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 183/192] drm/fb-helper: fix leaks in error path of drm_fb_helper_fbdev_setup Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 184/192] clk: meson: clean-up clock registration Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 185/192] clk: rockchip: fix frac settings of GPLL clock for rk3328 Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 186/192] dmaengine: tegra: avoid overflow of byte tracking Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 187/192] Input: soc_button_array - fix mapping of the 5th GPIO in a PNP0C40 device Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 188/192] drm: Reorder set_property_atomic to avoid returning with an active ww_ctx Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 189/192] drm/dp/mst: Configure no_stop_bit correctly for remote i2c xfers Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 190/192] net: stmmac: Avoid one more sometimes uninitialized Clang warning Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 191/192] ACPI / video: Extend chassis-type detection with a "Lunch Box" check Sasha Levin
2019-03-27 18:10 ` [PATCH AUTOSEL 4.19 192/192] bcache: fix potential div-zero error of writeback_rate_p_term_inverse Sasha Levin

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=20190327181025.13507-24-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=ak@linux.intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=daniel.m.jordan@oracle.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=osandov@fb.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=sfr@canb.auug.org.au \
    --cc=shli@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=stern@rowland.harvard.edu \
    --cc=tj@kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=will.deacon@arm.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