All of lore.kernel.org
 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 004/126] ext4: fix potential race between s_flex_groups online resizing and access
Date: Tue, 10 Mar 2020 13:40:25 +0100	[thread overview]
Message-ID: <20200310124203.970335899@linuxfoundation.org> (raw)
In-Reply-To: <20200310124203.704193207@linuxfoundation.org>

From: Suraj Jitindar Singh <surajjs@amazon.com>

commit 7c990728b99ed6fbe9c75fc202fce1172d9916da upstream.

During an online resize an array of s_flex_groups structures gets replaced
so it can get enlarged. If there is a concurrent access to the array and
this memory has been reused then this can lead to an invalid memory access.

The s_flex_group array has been converted into an array of pointers rather
than an array of structures. This is to ensure that the information
contained in the structures cannot get out of sync during a resize due to
an accessor updating the value in the old structure after it has been
copied but before the array pointer is updated. Since the structures them-
selves are no longer copied but only the pointers to them this case is
mitigated.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=206443
Link: https://lore.kernel.org/r/20200221053458.730016-4-tytso@mit.edu
Signed-off-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/ext4.h    |  2 +-
 fs/ext4/ialloc.c  | 23 +++++++++------
 fs/ext4/mballoc.c |  9 ++++--
 fs/ext4/resize.c  |  7 +++--
 fs/ext4/super.c   | 72 ++++++++++++++++++++++++++++++++---------------
 5 files changed, 76 insertions(+), 37 deletions(-)

diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 94f4f6d55c1a4..8b55abdd7249a 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -1492,7 +1492,7 @@ struct ext4_sb_info {
 	unsigned int s_extent_max_zeroout_kb;
 
 	unsigned int s_log_groups_per_flex;
-	struct flex_groups *s_flex_groups;
+	struct flex_groups * __rcu *s_flex_groups;
 	ext4_group_t s_flex_groups_allocated;
 
 	/* workqueue for reserved extent conversions (buffered io) */
diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
index 2f46564d3fca9..2a480c0ef1bc1 100644
--- a/fs/ext4/ialloc.c
+++ b/fs/ext4/ialloc.c
@@ -333,11 +333,13 @@ void ext4_free_inode(handle_t *handle, struct inode *inode)
 
 	percpu_counter_inc(&sbi->s_freeinodes_counter);
 	if (sbi->s_log_groups_per_flex) {
-		ext4_group_t f = ext4_flex_group(sbi, block_group);
+		struct flex_groups *fg;
 
-		atomic_inc(&sbi->s_flex_groups[f].free_inodes);
+		fg = sbi_array_rcu_deref(sbi, s_flex_groups,
+					 ext4_flex_group(sbi, block_group));
+		atomic_inc(&fg->free_inodes);
 		if (is_directory)
-			atomic_dec(&sbi->s_flex_groups[f].used_dirs);
+			atomic_dec(&fg->used_dirs);
 	}
 	BUFFER_TRACE(bh2, "call ext4_handle_dirty_metadata");
 	fatal = ext4_handle_dirty_metadata(handle, NULL, bh2);
@@ -378,12 +380,13 @@ static void get_orlov_stats(struct super_block *sb, ext4_group_t g,
 			    int flex_size, struct orlov_stats *stats)
 {
 	struct ext4_group_desc *desc;
-	struct flex_groups *flex_group = EXT4_SB(sb)->s_flex_groups;
 
 	if (flex_size > 1) {
-		stats->free_inodes = atomic_read(&flex_group[g].free_inodes);
-		stats->free_clusters = atomic64_read(&flex_group[g].free_clusters);
-		stats->used_dirs = atomic_read(&flex_group[g].used_dirs);
+		struct flex_groups *fg = sbi_array_rcu_deref(EXT4_SB(sb),
+							     s_flex_groups, g);
+		stats->free_inodes = atomic_read(&fg->free_inodes);
+		stats->free_clusters = atomic64_read(&fg->free_clusters);
+		stats->used_dirs = atomic_read(&fg->used_dirs);
 		return;
 	}
 
@@ -1062,7 +1065,8 @@ got:
 		if (sbi->s_log_groups_per_flex) {
 			ext4_group_t f = ext4_flex_group(sbi, group);
 
-			atomic_inc(&sbi->s_flex_groups[f].used_dirs);
+			atomic_inc(&sbi_array_rcu_deref(sbi, s_flex_groups,
+							f)->used_dirs);
 		}
 	}
 	if (ext4_has_group_desc_csum(sb)) {
@@ -1085,7 +1089,8 @@ got:
 
 	if (sbi->s_log_groups_per_flex) {
 		flex_group = ext4_flex_group(sbi, group);
-		atomic_dec(&sbi->s_flex_groups[flex_group].free_inodes);
+		atomic_dec(&sbi_array_rcu_deref(sbi, s_flex_groups,
+						flex_group)->free_inodes);
 	}
 
 	inode->i_ino = ino + group * EXT4_INODES_PER_GROUP(sb);
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index 3ba9a4ae4eacd..fb865216edb9b 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -3052,7 +3052,8 @@ ext4_mb_mark_diskspace_used(struct ext4_allocation_context *ac,
 		ext4_group_t flex_group = ext4_flex_group(sbi,
 							  ac->ac_b_ex.fe_group);
 		atomic64_sub(ac->ac_b_ex.fe_len,
-			     &sbi->s_flex_groups[flex_group].free_clusters);
+			     &sbi_array_rcu_deref(sbi, s_flex_groups,
+						  flex_group)->free_clusters);
 	}
 
 	err = ext4_handle_dirty_metadata(handle, NULL, bitmap_bh);
@@ -4947,7 +4948,8 @@ do_more:
 	if (sbi->s_log_groups_per_flex) {
 		ext4_group_t flex_group = ext4_flex_group(sbi, block_group);
 		atomic64_add(count_clusters,
-			     &sbi->s_flex_groups[flex_group].free_clusters);
+			     &sbi_array_rcu_deref(sbi, s_flex_groups,
+						  flex_group)->free_clusters);
 	}
 
 	if (!(flags & EXT4_FREE_BLOCKS_NO_QUOT_UPDATE))
@@ -5092,7 +5094,8 @@ int ext4_group_add_blocks(handle_t *handle, struct super_block *sb,
 	if (sbi->s_log_groups_per_flex) {
 		ext4_group_t flex_group = ext4_flex_group(sbi, block_group);
 		atomic64_add(EXT4_NUM_B2C(sbi, blocks_freed),
-			     &sbi->s_flex_groups[flex_group].free_clusters);
+			     &sbi_array_rcu_deref(sbi, s_flex_groups,
+						  flex_group)->free_clusters);
 	}
 
 	ext4_mb_unload_buddy(&e4b);
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
index 16e3830da5487..d42f7471fd5b8 100644
--- a/fs/ext4/resize.c
+++ b/fs/ext4/resize.c
@@ -1425,11 +1425,14 @@ static void ext4_update_super(struct super_block *sb,
 		   percpu_counter_read(&sbi->s_freeclusters_counter));
 	if (ext4_has_feature_flex_bg(sb) && sbi->s_log_groups_per_flex) {
 		ext4_group_t flex_group;
+		struct flex_groups *fg;
+
 		flex_group = ext4_flex_group(sbi, group_data[0].group);
+		fg = sbi_array_rcu_deref(sbi, s_flex_groups, flex_group);
 		atomic64_add(EXT4_NUM_B2C(sbi, free_blocks),
-			     &sbi->s_flex_groups[flex_group].free_clusters);
+			     &fg->free_clusters);
 		atomic_add(EXT4_INODES_PER_GROUP(sb) * flex_gd->count,
-			   &sbi->s_flex_groups[flex_group].free_inodes);
+			   &fg->free_inodes);
 	}
 
 	/*
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index b14a0c5638e70..f1c1c180d2671 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -901,6 +901,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;
+	struct flex_groups **flex_groups;
 	int aborted = 0;
 	int i, err;
 
@@ -937,8 +938,13 @@ static void ext4_put_super(struct super_block *sb)
 	for (i = 0; i < sbi->s_gdb_count; i++)
 		brelse(group_desc[i]);
 	kvfree(group_desc);
+	flex_groups = rcu_dereference(sbi->s_flex_groups);
+	if (flex_groups) {
+		for (i = 0; i < sbi->s_flex_groups_allocated; i++)
+			kvfree(flex_groups[i]);
+		kvfree(flex_groups);
+	}
 	rcu_read_unlock();
-	kvfree(sbi->s_flex_groups);
 	percpu_counter_destroy(&sbi->s_freeclusters_counter);
 	percpu_counter_destroy(&sbi->s_freeinodes_counter);
 	percpu_counter_destroy(&sbi->s_dirs_counter);
@@ -2231,8 +2237,8 @@ done:
 int ext4_alloc_flex_bg_array(struct super_block *sb, ext4_group_t ngroup)
 {
 	struct ext4_sb_info *sbi = EXT4_SB(sb);
-	struct flex_groups *new_groups;
-	int size;
+	struct flex_groups **old_groups, **new_groups;
+	int size, i;
 
 	if (!sbi->s_log_groups_per_flex)
 		return 0;
@@ -2241,22 +2247,37 @@ int ext4_alloc_flex_bg_array(struct super_block *sb, ext4_group_t ngroup)
 	if (size <= sbi->s_flex_groups_allocated)
 		return 0;
 
-	size = roundup_pow_of_two(size * sizeof(struct flex_groups));
-	new_groups = kvzalloc(size, GFP_KERNEL);
+	new_groups = kvzalloc(roundup_pow_of_two(size *
+			      sizeof(*sbi->s_flex_groups)), GFP_KERNEL);
 	if (!new_groups) {
-		ext4_msg(sb, KERN_ERR, "not enough memory for %d flex groups",
-			 size / (int) sizeof(struct flex_groups));
+		ext4_msg(sb, KERN_ERR,
+			 "not enough memory for %d flex group pointers", size);
 		return -ENOMEM;
 	}
-
-	if (sbi->s_flex_groups) {
-		memcpy(new_groups, sbi->s_flex_groups,
-		       (sbi->s_flex_groups_allocated *
-			sizeof(struct flex_groups)));
-		kvfree(sbi->s_flex_groups);
+	for (i = sbi->s_flex_groups_allocated; i < size; i++) {
+		new_groups[i] = kvzalloc(roundup_pow_of_two(
+					 sizeof(struct flex_groups)),
+					 GFP_KERNEL);
+		if (!new_groups[i]) {
+			for (i--; i >= sbi->s_flex_groups_allocated; i--)
+				kvfree(new_groups[i]);
+			kvfree(new_groups);
+			ext4_msg(sb, KERN_ERR,
+				 "not enough memory for %d flex groups", size);
+			return -ENOMEM;
+		}
 	}
-	sbi->s_flex_groups = new_groups;
-	sbi->s_flex_groups_allocated = size / sizeof(struct flex_groups);
+	rcu_read_lock();
+	old_groups = rcu_dereference(sbi->s_flex_groups);
+	if (old_groups)
+		memcpy(new_groups, old_groups,
+		       (sbi->s_flex_groups_allocated *
+			sizeof(struct flex_groups *)));
+	rcu_read_unlock();
+	rcu_assign_pointer(sbi->s_flex_groups, new_groups);
+	sbi->s_flex_groups_allocated = size;
+	if (old_groups)
+		ext4_kvfree_array_rcu(old_groups);
 	return 0;
 }
 
@@ -2264,6 +2285,7 @@ static int ext4_fill_flex_info(struct super_block *sb)
 {
 	struct ext4_sb_info *sbi = EXT4_SB(sb);
 	struct ext4_group_desc *gdp = NULL;
+	struct flex_groups *fg;
 	ext4_group_t flex_group;
 	int i, err;
 
@@ -2281,12 +2303,11 @@ static int ext4_fill_flex_info(struct super_block *sb)
 		gdp = ext4_get_group_desc(sb, i, NULL);
 
 		flex_group = ext4_flex_group(sbi, i);
-		atomic_add(ext4_free_inodes_count(sb, gdp),
-			   &sbi->s_flex_groups[flex_group].free_inodes);
+		fg = sbi_array_rcu_deref(sbi, s_flex_groups, flex_group);
+		atomic_add(ext4_free_inodes_count(sb, gdp), &fg->free_inodes);
 		atomic64_add(ext4_free_group_clusters(sb, gdp),
-			     &sbi->s_flex_groups[flex_group].free_clusters);
-		atomic_add(ext4_used_dirs_count(sb, gdp),
-			   &sbi->s_flex_groups[flex_group].used_dirs);
+			     &fg->free_clusters);
+		atomic_add(ext4_used_dirs_count(sb, gdp), &fg->used_dirs);
 	}
 
 	return 1;
@@ -3496,6 +3517,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
 	struct buffer_head *bh, **group_desc;
 	struct ext4_super_block *es = NULL;
 	struct ext4_sb_info *sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
+	struct flex_groups **flex_groups;
 	ext4_fsblk_t block;
 	ext4_fsblk_t sb_block = get_sb_block(&data);
 	ext4_fsblk_t logical_sb_block;
@@ -4494,8 +4516,14 @@ failed_mount7:
 	ext4_unregister_li_request(sb);
 failed_mount6:
 	ext4_mb_release(sb);
-	if (sbi->s_flex_groups)
-		kvfree(sbi->s_flex_groups);
+	rcu_read_lock();
+	flex_groups = rcu_dereference(sbi->s_flex_groups);
+	if (flex_groups) {
+		for (i = 0; i < sbi->s_flex_groups_allocated; i++)
+			kvfree(flex_groups[i]);
+		kvfree(flex_groups);
+	}
+	rcu_read_unlock();
 	percpu_counter_destroy(&sbi->s_freeclusters_counter);
 	percpu_counter_destroy(&sbi->s_freeinodes_counter);
 	percpu_counter_destroy(&sbi->s_dirs_counter);
-- 
2.20.1




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

Thread overview: 142+ 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 ` [PATCH 4.14 003/126] ext4: fix potential race between online resizing and write operations Greg Kroah-Hartman
2020-03-10 12:40 ` Greg Kroah-Hartman [this message]
2020-03-10 12:40 ` [PATCH 4.14 005/126] ext4: fix potential race between s_group_info online resizing and access 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   ` 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 20:07   ` 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.970335899@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.