stable.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, Suraj Jitindar Singh <surajjs@amazon.com>,
	Theodore Tso <tytso@mit.edu>, Sasha Levin <sashal@kernel.org>,
	stable@kernel.org
Subject: [PATCH 4.14 003/126] ext4: fix potential race between online resizing and write operations
Date: Tue, 10 Mar 2020 13:40:24 +0100	[thread overview]
Message-ID: <20200310124203.908889314@linuxfoundation.org> (raw)
In-Reply-To: <20200310124203.704193207@linuxfoundation.org>

From: Theodore Ts'o <tytso@mit.edu>

commit 1d0c3924a92e69bfa91163bda83c12a994b4d106 upstream.

During an online resize an array of pointers to buffer heads gets
replaced so it can get enlarged.  If there is a racing block
allocation or deallocation which uses the old array, and the old array
has gotten reused this can lead to a GPF or some other random kernel
memory getting modified.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=206443
Link: https://lore.kernel.org/r/20200221053458.730016-2-tytso@mit.edu
Reported-by: Suraj Jitindar Singh <surajjs@amazon.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@kernel.org # 4.14.x
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/ext4/balloc.c | 14 +++++++++---
 fs/ext4/ext4.h   | 20 +++++++++++++++++-
 fs/ext4/resize.c | 55 ++++++++++++++++++++++++++++++++++++++----------
 fs/ext4/super.c  | 31 +++++++++++++++++++--------
 4 files changed, 96 insertions(+), 24 deletions(-)

diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
index 70266a3355dc3..fb38f20f869e7 100644
--- a/fs/ext4/balloc.c
+++ b/fs/ext4/balloc.c
@@ -280,6 +280,7 @@ struct ext4_group_desc * ext4_get_group_desc(struct super_block *sb,
 	ext4_group_t ngroups = ext4_get_groups_count(sb);
 	struct ext4_group_desc *desc;
 	struct ext4_sb_info *sbi = EXT4_SB(sb);
+	struct buffer_head *bh_p;
 
 	if (block_group >= ngroups) {
 		ext4_error(sb, "block_group >= groups_count - block_group = %u,"
@@ -290,7 +291,14 @@ struct ext4_group_desc * ext4_get_group_desc(struct super_block *sb,
 
 	group_desc = block_group >> EXT4_DESC_PER_BLOCK_BITS(sb);
 	offset = block_group & (EXT4_DESC_PER_BLOCK(sb) - 1);
-	if (!sbi->s_group_desc[group_desc]) {
+	bh_p = sbi_array_rcu_deref(sbi, s_group_desc, group_desc);
+	/*
+	 * sbi_array_rcu_deref returns with rcu unlocked, this is ok since
+	 * the pointer being dereferenced won't be dereferenced again. By
+	 * looking at the usage in add_new_gdb() the value isn't modified,
+	 * just the pointer, and so it remains valid.
+	 */
+	if (!bh_p) {
 		ext4_error(sb, "Group descriptor not loaded - "
 			   "block_group = %u, group_desc = %u, desc = %u",
 			   block_group, group_desc, offset);
@@ -298,10 +306,10 @@ struct ext4_group_desc * ext4_get_group_desc(struct super_block *sb,
 	}
 
 	desc = (struct ext4_group_desc *)(
-		(__u8 *)sbi->s_group_desc[group_desc]->b_data +
+		(__u8 *)bh_p->b_data +
 		offset * EXT4_DESC_SIZE(sb));
 	if (bh)
-		*bh = sbi->s_group_desc[group_desc];
+		*bh = bh_p;
 	return desc;
 }
 
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index b162f602c430f..94f4f6d55c1a4 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -1382,7 +1382,7 @@ struct ext4_sb_info {
 	loff_t s_bitmap_maxbytes;	/* max bytes for bitmap files */
 	struct buffer_head * s_sbh;	/* Buffer containing the super block */
 	struct ext4_super_block *s_es;	/* Pointer to the super block in the buffer */
-	struct buffer_head **s_group_desc;
+	struct buffer_head * __rcu *s_group_desc;
 	unsigned int s_mount_opt;
 	unsigned int s_mount_opt2;
 	unsigned int s_mount_flags;
@@ -1556,6 +1556,23 @@ static inline int ext4_valid_inum(struct super_block *sb, unsigned long ino)
 		 ino <= le32_to_cpu(EXT4_SB(sb)->s_es->s_inodes_count));
 }
 
+/*
+ * Returns: sbi->field[index]
+ * Used to access an array element from the following sbi fields which require
+ * rcu protection to avoid dereferencing an invalid pointer due to reassignment
+ * - s_group_desc
+ * - s_group_info
+ * - s_flex_group
+ */
+#define sbi_array_rcu_deref(sbi, field, index)				   \
+({									   \
+	typeof(*((sbi)->field)) _v;					   \
+	rcu_read_lock();						   \
+	_v = ((typeof(_v)*)rcu_dereference((sbi)->field))[index];	   \
+	rcu_read_unlock();						   \
+	_v;								   \
+})
+
 /*
  * Inode dynamic state flags
  */
@@ -2569,6 +2586,7 @@ extern int ext4_generic_delete_entry(handle_t *handle,
 extern bool ext4_empty_dir(struct inode *inode);
 
 /* resize.c */
+extern void ext4_kvfree_array_rcu(void *to_free);
 extern int ext4_group_add(struct super_block *sb,
 				struct ext4_new_group_data *input);
 extern int ext4_group_extend(struct super_block *sb,
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
index 4f7cd78d03647..16e3830da5487 100644
--- a/fs/ext4/resize.c
+++ b/fs/ext4/resize.c
@@ -17,6 +17,33 @@
 
 #include "ext4_jbd2.h"
 
+struct ext4_rcu_ptr {
+	struct rcu_head rcu;
+	void *ptr;
+};
+
+static void ext4_rcu_ptr_callback(struct rcu_head *head)
+{
+	struct ext4_rcu_ptr *ptr;
+
+	ptr = container_of(head, struct ext4_rcu_ptr, rcu);
+	kvfree(ptr->ptr);
+	kfree(ptr);
+}
+
+void ext4_kvfree_array_rcu(void *to_free)
+{
+	struct ext4_rcu_ptr *ptr = kzalloc(sizeof(*ptr), GFP_KERNEL);
+
+	if (ptr) {
+		ptr->ptr = to_free;
+		call_rcu(&ptr->rcu, ext4_rcu_ptr_callback);
+		return;
+	}
+	synchronize_rcu();
+	kvfree(to_free);
+}
+
 int ext4_resize_begin(struct super_block *sb)
 {
 	struct ext4_sb_info *sbi = EXT4_SB(sb);
@@ -545,8 +572,8 @@ static int setup_new_flex_group_blocks(struct super_block *sb,
 				brelse(gdb);
 				goto out;
 			}
-			memcpy(gdb->b_data, sbi->s_group_desc[j]->b_data,
-			       gdb->b_size);
+			memcpy(gdb->b_data, sbi_array_rcu_deref(sbi,
+				s_group_desc, j)->b_data, gdb->b_size);
 			set_buffer_uptodate(gdb);
 
 			err = ext4_handle_dirty_metadata(handle, NULL, gdb);
@@ -854,13 +881,15 @@ static int add_new_gdb(handle_t *handle, struct inode *inode,
 	}
 	brelse(dind);
 
-	o_group_desc = EXT4_SB(sb)->s_group_desc;
+	rcu_read_lock();
+	o_group_desc = rcu_dereference(EXT4_SB(sb)->s_group_desc);
 	memcpy(n_group_desc, o_group_desc,
 	       EXT4_SB(sb)->s_gdb_count * sizeof(struct buffer_head *));
+	rcu_read_unlock();
 	n_group_desc[gdb_num] = gdb_bh;
-	EXT4_SB(sb)->s_group_desc = n_group_desc;
+	rcu_assign_pointer(EXT4_SB(sb)->s_group_desc, n_group_desc);
 	EXT4_SB(sb)->s_gdb_count++;
-	kvfree(o_group_desc);
+	ext4_kvfree_array_rcu(o_group_desc);
 
 	le16_add_cpu(&es->s_reserved_gdt_blocks, -1);
 	err = ext4_handle_dirty_super(handle, sb);
@@ -904,9 +933,11 @@ static int add_new_gdb_meta_bg(struct super_block *sb,
 		return err;
 	}
 
-	o_group_desc = EXT4_SB(sb)->s_group_desc;
+	rcu_read_lock();
+	o_group_desc = rcu_dereference(EXT4_SB(sb)->s_group_desc);
 	memcpy(n_group_desc, o_group_desc,
 	       EXT4_SB(sb)->s_gdb_count * sizeof(struct buffer_head *));
+	rcu_read_unlock();
 	n_group_desc[gdb_num] = gdb_bh;
 
 	BUFFER_TRACE(gdb_bh, "get_write_access");
@@ -917,9 +948,9 @@ static int add_new_gdb_meta_bg(struct super_block *sb,
 		return err;
 	}
 
-	EXT4_SB(sb)->s_group_desc = n_group_desc;
+	rcu_assign_pointer(EXT4_SB(sb)->s_group_desc, n_group_desc);
 	EXT4_SB(sb)->s_gdb_count++;
-	kvfree(o_group_desc);
+	ext4_kvfree_array_rcu(o_group_desc);
 	return err;
 }
 
@@ -1183,7 +1214,8 @@ static int ext4_add_new_descs(handle_t *handle, struct super_block *sb,
 		 * use non-sparse filesystems anymore.  This is already checked above.
 		 */
 		if (gdb_off) {
-			gdb_bh = sbi->s_group_desc[gdb_num];
+			gdb_bh = sbi_array_rcu_deref(sbi, s_group_desc,
+						     gdb_num);
 			BUFFER_TRACE(gdb_bh, "get_write_access");
 			err = ext4_journal_get_write_access(handle, gdb_bh);
 
@@ -1265,7 +1297,7 @@ static int ext4_setup_new_descs(handle_t *handle, struct super_block *sb,
 		/*
 		 * get_write_access() has been called on gdb_bh by ext4_add_new_desc().
 		 */
-		gdb_bh = sbi->s_group_desc[gdb_num];
+		gdb_bh = sbi_array_rcu_deref(sbi, s_group_desc, gdb_num);
 		/* Update group descriptor block for new group */
 		gdp = (struct ext4_group_desc *)(gdb_bh->b_data +
 						 gdb_off * EXT4_DESC_SIZE(sb));
@@ -1492,7 +1524,8 @@ exit_journal:
 		for (; gdb_num <= gdb_num_end; gdb_num++) {
 			struct buffer_head *gdb_bh;
 
-			gdb_bh = sbi->s_group_desc[gdb_num];
+			gdb_bh = sbi_array_rcu_deref(sbi, s_group_desc,
+						     gdb_num);
 			if (old_gdb == gdb_bh->b_blocknr)
 				continue;
 			update_backups(sb, gdb_bh->b_blocknr, gdb_bh->b_data,
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 09b443709bcab..b14a0c5638e70 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -900,6 +900,7 @@ static void ext4_put_super(struct super_block *sb)
 {
 	struct ext4_sb_info *sbi = EXT4_SB(sb);
 	struct ext4_super_block *es = sbi->s_es;
+	struct buffer_head **group_desc;
 	int aborted = 0;
 	int i, err;
 
@@ -931,9 +932,12 @@ static void ext4_put_super(struct super_block *sb)
 	if (!sb_rdonly(sb))
 		ext4_commit_super(sb, 1);
 
+	rcu_read_lock();
+	group_desc = rcu_dereference(sbi->s_group_desc);
 	for (i = 0; i < sbi->s_gdb_count; i++)
-		brelse(sbi->s_group_desc[i]);
-	kvfree(sbi->s_group_desc);
+		brelse(group_desc[i]);
+	kvfree(group_desc);
+	rcu_read_unlock();
 	kvfree(sbi->s_flex_groups);
 	percpu_counter_destroy(&sbi->s_freeclusters_counter);
 	percpu_counter_destroy(&sbi->s_freeinodes_counter);
@@ -3489,7 +3493,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
 {
 	struct dax_device *dax_dev = fs_dax_get_by_bdev(sb->s_bdev);
 	char *orig_data = kstrdup(data, GFP_KERNEL);
-	struct buffer_head *bh;
+	struct buffer_head *bh, **group_desc;
 	struct ext4_super_block *es = NULL;
 	struct ext4_sb_info *sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
 	ext4_fsblk_t block;
@@ -4104,9 +4108,10 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
 			goto failed_mount;
 		}
 	}
-	sbi->s_group_desc = kvmalloc(db_count *
+	rcu_assign_pointer(sbi->s_group_desc,
+			   kvmalloc_array(db_count,
 					  sizeof(struct buffer_head *),
-					  GFP_KERNEL);
+					  GFP_KERNEL));
 	if (sbi->s_group_desc == NULL) {
 		ext4_msg(sb, KERN_ERR, "not enough memory");
 		ret = -ENOMEM;
@@ -4122,14 +4127,19 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
 	}
 
 	for (i = 0; i < db_count; i++) {
+		struct buffer_head *bh;
+
 		block = descriptor_loc(sb, logical_sb_block, i);
-		sbi->s_group_desc[i] = sb_bread_unmovable(sb, block);
-		if (!sbi->s_group_desc[i]) {
+		bh = sb_bread_unmovable(sb, block);
+		if (!bh) {
 			ext4_msg(sb, KERN_ERR,
 			       "can't read group descriptor %d", i);
 			db_count = i;
 			goto failed_mount2;
 		}
+		rcu_read_lock();
+		rcu_dereference(sbi->s_group_desc)[i] = bh;
+		rcu_read_unlock();
 	}
 	sbi->s_gdb_count = db_count;
 	if (!ext4_check_descriptors(sb, logical_sb_block, &first_not_zeroed)) {
@@ -4521,9 +4531,12 @@ failed_mount3:
 	if (sbi->s_mmp_tsk)
 		kthread_stop(sbi->s_mmp_tsk);
 failed_mount2:
+	rcu_read_lock();
+	group_desc = rcu_dereference(sbi->s_group_desc);
 	for (i = 0; i < db_count; i++)
-		brelse(sbi->s_group_desc[i]);
-	kvfree(sbi->s_group_desc);
+		brelse(group_desc[i]);
+	kvfree(group_desc);
+	rcu_read_unlock();
 failed_mount:
 	if (sbi->s_chksum_driver)
 		crypto_free_shash(sbi->s_chksum_driver);
-- 
2.20.1




  parent reply	other threads:[~2020-03-10 13:21 UTC|newest]

Thread overview: 140+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-10 12:40 [PATCH 4.14 000/126] 4.14.173-stable review Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 001/126] iwlwifi: pcie: fix rb_allocator workqueue allocation Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 002/126] netfilter: nf_conntrack: resolve clash for matching conntracks Greg Kroah-Hartman
2020-03-10 12:40 ` Greg Kroah-Hartman [this message]
2020-03-10 12:40 ` [PATCH 4.14 004/126] ext4: fix potential race between s_flex_groups online resizing and access Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 005/126] ext4: fix potential race between s_group_info " Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 006/126] ipmi:ssif: Handle a possible NULL pointer reference Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 007/126] drm/msm: Set dma maximum segment size for mdss Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 008/126] dax: pass NOWAIT flag to iomap_apply Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 009/126] mac80211: consider more elements in parsing CRC Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 010/126] cfg80211: check wiphy driver existence for drvinfo report Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 011/126] qmi_wwan: re-add DW5821e pre-production variant Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 012/126] qmi_wwan: unconditionally reject 2 ep interfaces Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 013/126] net: ena: fix potential crash when rxfh key is NULL Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 014/126] net: ena: fix uses of round_jiffies() Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 015/126] net: ena: add missing ethtool TX timestamping indication Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 016/126] net: ena: fix incorrect default RSS key Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 017/126] net: ena: rss: fix failure to get indirection table Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 018/126] net: ena: rss: store hash function as values and not bits Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 019/126] net: ena: fix incorrectly saving queue numbers when setting RSS indirection table Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 020/126] net: ena: ethtool: use correct value for crc32 hash Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 021/126] net: ena: ena-com.c: prevent NULL pointer dereference Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 022/126] cifs: Fix mode output in debugging statements Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 023/126] cfg80211: add missing policy for NL80211_ATTR_STATUS_CODE Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 024/126] sysrq: Restore original console_loglevel when sysrq disabled Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 025/126] sysrq: Remove duplicated sysrq message Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 026/126] net: fib_rules: Correctly set table field when table number exceeds 8 bits Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 027/126] net: phy: restore mdio regs in the iproc mdio driver Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 028/126] nfc: pn544: Fix occasional HW initialization failure Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 029/126] sctp: move the format error check out of __sctp_sf_do_9_1_abort Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 030/126] ipv6: Fix nlmsg_flags when splitting a multipath route Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 031/126] ipv6: Fix route replacement with dev-only route Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 032/126] qede: Fix race between rdma destroy workqueue and link change event Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 033/126] net: sched: correct flower port blocking Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 034/126] ext4: potential crash on allocation error in ext4_alloc_flex_bg_array() Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 035/126] audit: fix error handling in audit_data_to_entry() Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 036/126] ACPICA: Introduce ACPI_ACCESS_BYTE_WIDTH() macro Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 037/126] ACPI: watchdog: Fix gas->access_width usage Greg Kroah-Hartman
2020-03-10 12:40 ` [PATCH 4.14 038/126] KVM: VMX: check descriptor table exits on instruction emulation Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 039/126] HID: ite: Only bind to keyboard USB interface on Acer SW5-012 keyboard dock Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 040/126] HID: core: fix off-by-one memset in hid_report_raw_event() Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 041/126] HID: core: increase HID report buffer size to 8KiB Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 042/126] tracing: Disable trace_printk() on post poned tests Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 043/126] Revert "PM / devfreq: Modify the device name as devfreq(X) for sysfs" Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 044/126] HID: hiddev: Fix race in in hiddev_disconnect() Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 045/126] MIPS: VPE: Fix a double free and a memory leak in release_vpe() Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 046/126] i2c: altera: Fix potential integer overflow Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 047/126] i2c: jz4780: silence log flood on txabrt Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 048/126] drm/i915/gvt: Separate display reset from ALL_ENGINES reset Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 049/126] usb: charger: assign specific number for enum value Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 050/126] ecryptfs: Fix up bad backport of fe2e082f5da5b4a0a92ae32978f81507ef37ec66 Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 051/126] include/linux/bitops.h: introduce BITS_PER_TYPE Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 052/126] net: netlink: cap max groups which will be considered in netlink_bind() Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 053/126] net: atlantic: fix potential error handling Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 054/126] net: ena: make ena rxfh support ETH_RSS_HASH_NO_CHANGE Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 055/126] namei: only return -ECHILD from follow_dotdot_rcu() Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 056/126] mwifiex: drop most magic numbers from mwifiex_process_tdls_action_frame() Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 057/126] KVM: SVM: Override default MMIO mask if memory encryption is enabled Greg Kroah-Hartman
2020-03-10 18:19   ` Sean Christopherson
2020-03-10 18:42     ` Tom Lendacky
2020-03-10 20:59       ` Tom Lendacky
2020-03-11 13:06         ` Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 058/126] KVM: Check for a bad hva before dropping into the ghc slow path Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 059/126] tuntap: correctly set SOCKWQ_ASYNC_NOSPACE Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 060/126] drivers: net: xgene: Fix the order of the arguments of alloc_etherdev_mqs() Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 061/126] kprobes: Set unoptimized flag after unoptimizing code Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 062/126] perf hists browser: Restore ESC as "Zoom out" of DSO/thread/etc Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 063/126] mm/huge_memory.c: use head to check huge zero page Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 064/126] mm, thp: fix defrag setting if newline is not used Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 065/126] [PATCH] Revert "char/random: silence a lockdep splat with printk()" Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 066/126] audit: always check the netlink payload length in audit_receive_msg() Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 067/126] vhost: Check docket sk_family instead of call getname Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 068/126] x86/mce: Handle varying MCA bank counts Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 069/126] EDAC/amd64: Set grain per DIMM Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 070/126] net: dsa: bcm_sf2: Forcibly configure IMP port for 1Gb/sec Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 071/126] RDMA/core: Fix pkey and port assignment in get_new_pps Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 072/126] RDMA/core: Fix use of logical OR " Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 073/126] kprobes: Fix optimize_kprobe()/unoptimize_kprobe() cancellation logic Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 074/126] serial: ar933x_uart: set UART_CS_{RX,TX}_READY_ORIDE Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 075/126] selftests: fix too long argument Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 076/126] usb: gadget: composite: Support more than 500mA MaxPower Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 077/126] usb: gadget: ffs: ffs_aio_cancel(): Save/restore IRQ flags Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 078/126] usb: gadget: serial: fix Tx stall after buffer overflow Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 079/126] drm/msm/mdp5: rate limit pp done timeout warnings Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 080/126] drm: msm: Fix return type of dsi_mgr_connector_mode_valid for kCFI Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 081/126] drm/msm/dsi: save pll state before dsi host is powered off Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 082/126] net: ks8851-ml: Remove 8-bit bus accessors Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 083/126] net: ks8851-ml: Fix 16-bit data access Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 084/126] net: ks8851-ml: Fix 16-bit IO operation Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 085/126] watchdog: da9062: do not ping the hw during stop() Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 086/126] s390/cio: cio_ignore_proc_seq_next should increase position index Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 087/126] x86/boot/compressed: Dont declare __force_order in kaslr_64.c Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 088/126] nvme: Fix uninitialized-variable warning Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 089/126] x86/xen: Distribute switch variables for initialization Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 090/126] net: thunderx: workaround BGX TX Underflow issue Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 091/126] cifs: dont leak -EAGAIN for stat() during reconnect Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 092/126] usb: storage: Add quirk for Samsung Fit flash Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 093/126] usb: quirks: add NO_LPM quirk for Logitech Screen Share Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 094/126] usb: core: hub: fix unhandled return by employing a void function Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 095/126] usb: core: hub: do error out if usb_autopm_get_interface() fails Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 096/126] usb: core: port: " Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 097/126] vgacon: Fix a UAF in vgacon_invert_region Greg Kroah-Hartman
2020-03-10 12:41 ` [PATCH 4.14 098/126] mm, numa: fix bad pmd by atomically check for pmd_trans_huge when marking page tables prot_numa Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 099/126] fat: fix uninit-memory access for partial initialized inode Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 100/126] arm: dts: dra76x: Fix mmc3 max-frequency Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 101/126] tty:serial:mvebu-uart:fix a wrong return Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 102/126] serial: 8250_exar: add support for ACCES cards Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 103/126] vt: selection, close sel_buffer race Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 104/126] vt: selection, push console lock down Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 105/126] vt: selection, push sel_lock up Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 106/126] x86/pkeys: Manually set X86_FEATURE_OSPKE to preserve existing changes Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 107/126] dmaengine: tegra-apb: Fix use-after-free Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 108/126] dmaengine: tegra-apb: Prevent race conditions of tasklet vs free list Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 109/126] dm cache: fix a crash due to incorrect work item cancelling Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 110/126] ARM: dts: ls1021a: Restore MDIO compatible to gianfar Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 111/126] ASoC: topology: Fix memleak in soc_tplg_link_elems_load() Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 112/126] ASoC: intel: skl: Fix pin debug prints Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 113/126] ASoC: intel: skl: Fix possible buffer overflow in debug outputs Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 114/126] ASoC: pcm: Fix possible buffer overflow in dpcm state sysfs output Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 115/126] ASoC: pcm512x: Fix unbalanced regulator enable call in probe error path Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 116/126] ASoC: dapm: Correct DAPM handling of active widgets during shutdown Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 117/126] RDMA/iwcm: Fix iwcm work deallocation Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 118/126] RMDA/cm: Fix missing ib_cm_destroy_id() in ib_cm_insert_listen() Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 119/126] IB/hfi1, qib: Ensure RCU is locked when accessing list Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 120/126] ARM: imx: build v7_cpu_resume() unconditionally Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 121/126] ARM: dts: imx6dl-colibri-eval-v3: fix sram compatible properties Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 122/126] hwmon: (adt7462) Fix an error return in ADT7462_REG_VOLT() Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 123/126] dmaengine: coh901318: Fix a double lock bug in dma_tc_handle() Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 124/126] powerpc: fix hardware PMU exception bug on PowerVM compatibility mode systems Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 125/126] dm integrity: fix a deadlock due to offloading to an incorrect workqueue Greg Kroah-Hartman
2020-03-10 12:42 ` [PATCH 4.14 126/126] xhci: handle port status events for removed USB3 hcd Greg Kroah-Hartman
2020-03-10 20:07 ` [PATCH 4.14 000/126] 4.14.173-stable review Jon Hunter
2020-03-10 21:26 ` shuah
2020-03-11 13:08   ` Greg Kroah-Hartman
2020-03-13 16:17   ` Naresh Kamboju
2020-03-10 21:58 ` Guenter Roeck
2020-03-11  6:49 ` Naresh Kamboju
2020-03-11 13:11 ` Greg Kroah-Hartman
2020-03-11 19:39   ` shuah
2020-03-12  6:21     ` 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=20200310124203.908889314@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sashal@kernel.org \
    --cc=stable@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=surajjs@amazon.com \
    --cc=tytso@mit.edu \
    /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).