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>,
	stable@kernel.org
Subject: [PATCH 5.5 091/150] ext4: fix potential race between online resizing and write operations
Date: Thu, 27 Feb 2020 14:37:08 +0100	[thread overview]
Message-ID: <20200227132246.245702469@linuxfoundation.org> (raw)
In-Reply-To: <20200227132232.815448360@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
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ext4/balloc.c |   14 +++++++++++---
 fs/ext4/ext4.h   |   20 +++++++++++++++++++-
 fs/ext4/resize.c |   55 ++++++++++++++++++++++++++++++++++++++++++++-----------
 fs/ext4/super.c  |   33 +++++++++++++++++++++++----------
 4 files changed, 97 insertions(+), 25 deletions(-)

--- a/fs/ext4/balloc.c
+++ b/fs/ext4/balloc.c
@@ -270,6 +270,7 @@ struct ext4_group_desc * ext4_get_group_
 	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,"
@@ -280,7 +281,14 @@ struct ext4_group_desc * ext4_get_group_
 
 	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);
@@ -288,10 +296,10 @@ struct ext4_group_desc * ext4_get_group_
 	}
 
 	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;
 }
 
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -1401,7 +1401,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;
@@ -1575,6 +1575,23 @@ static inline int ext4_valid_inum(struct
 }
 
 /*
+ * 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
  */
 enum {
@@ -2669,6 +2686,7 @@ extern int ext4_generic_delete_entry(han
 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,
--- 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);
@@ -542,8 +569,8 @@ static int setup_new_flex_group_blocks(s
 				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);
@@ -861,13 +888,15 @@ static int add_new_gdb(handle_t *handle,
 	}
 	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);
@@ -911,9 +940,11 @@ static int add_new_gdb_meta_bg(struct su
 		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");
@@ -924,9 +955,9 @@ static int add_new_gdb_meta_bg(struct su
 		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;
 }
 
@@ -1190,7 +1221,8 @@ static int ext4_add_new_descs(handle_t *
 		 * 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);
 
@@ -1272,7 +1304,7 @@ static int ext4_setup_new_descs(handle_t
 		/*
 		 * 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));
@@ -1499,7 +1531,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,
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -970,6 +970,7 @@ static void ext4_put_super(struct super_
 {
 	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;
 
@@ -1000,9 +1001,12 @@ static void ext4_put_super(struct super_
 	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);
@@ -3589,7 +3593,7 @@ static int ext4_fill_super(struct super_
 {
 	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;
@@ -4245,9 +4249,10 @@ static int ext4_fill_super(struct super_
 			goto failed_mount;
 		}
 	}
-	sbi->s_group_desc = kvmalloc_array(db_count,
-					   sizeof(struct buffer_head *),
-					   GFP_KERNEL);
+	rcu_assign_pointer(sbi->s_group_desc,
+			   kvmalloc_array(db_count,
+					  sizeof(struct buffer_head *),
+					  GFP_KERNEL));
 	if (sbi->s_group_desc == NULL) {
 		ext4_msg(sb, KERN_ERR, "not enough memory");
 		ret = -ENOMEM;
@@ -4263,14 +4268,19 @@ static int ext4_fill_super(struct super_
 	}
 
 	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)) {
@@ -4672,9 +4682,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);



  parent reply	other threads:[~2020-02-27 14:16 UTC|newest]

Thread overview: 168+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-27 13:35 [PATCH 5.5 000/150] 5.5.7-stable review Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 001/150] iommu/qcom: Fix bogus detach logic Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 002/150] iommu/vt-d: Add attach_deferred() helper Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 003/150] iommu/vt-d: Move deferred device attachment into helper function Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 004/150] iommu/vt-d: Do deferred attachment in iommu_need_mapping() Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 005/150] iommu/vt-d: Remove deferred_attach_domain() Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 006/150] iommu/vt-d: Simplify check in identity_mapping() Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 007/150] ALSA: hda: Use scnprintf() for printing texts for sysfs/procfs Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 008/150] ALSA: hda/realtek - Apply quirk for MSI GP63, too Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 009/150] ALSA: hda/realtek - Apply quirk for yet another MSI laptop Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 010/150] ASoC: codec2codec: avoid invalid/double-free of pcm runtime Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 011/150] ASoC: sun8i-codec: Fix setting DAI data format Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 012/150] tpm: Revert tpm_tis_spi_mod.ko to tpm_tis_spi.ko Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 013/150] tpm: Initialize crypto_id of allocated_banks to HASH_ALGO__LAST Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 014/150] ecryptfs: fix a memory leak bug in parse_tag_1_packet() Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 015/150] ecryptfs: fix a memory leak bug in ecryptfs_init_messaging() Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 016/150] Btrfs: fix race between shrinking truncate and fiemap Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 017/150] btrfs: dont set path->leave_spinning for truncate Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 018/150] btrfs: handle logged extent failure properly Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 019/150] thunderbolt: Prevent crash if non-active NVMem file is read Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 020/150] USB: misc: iowarrior: add support for 2 OEMed devices Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 021/150] USB: misc: iowarrior: add support for the 28 and 28L devices Greg Kroah-Hartman
2020-02-27 13:35 ` [PATCH 5.5 022/150] USB: misc: iowarrior: add support for the 100 device Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 023/150] floppy: check FDC index for errors before assigning it Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 024/150] USB: serial: ch341: fix receiver regression Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 025/150] vt: fix scrollback flushing on background consoles Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 026/150] vt: selection, handle pending signals in paste_selection Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 027/150] vt: selection, close sel_buffer race Greg Kroah-Hartman
2020-02-28  6:54   ` Jiri Slaby
2020-02-28 11:46     ` Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 028/150] vt: vt_ioctl: fix race in VT_RESIZEX Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 029/150] staging: android: ashmem: Disallow ashmem memory from being remapped Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 030/150] staging: vt6656: fix sign of rx_dbm to bb_pre_ed_rssi Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 031/150] xhci: Force Maximum Packet size for Full-speed bulk devices to valid range Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 032/150] xhci: fix runtime pm enabling for quirky Intel hosts Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 033/150] xhci: apply XHCI_PME_STUCK_QUIRK to Intel Comet Lake platforms Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 034/150] xhci: Fix memory leak when caching protocol extended capability PSI tables - take 2 Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 035/150] USB: core: add endpoint-blacklist quirk Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 036/150] USB: quirks: blacklist duplicate ep on Sound Devices USBPre2 Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 037/150] usb: uas: fix a plug & unplug racing Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 038/150] USB: Fix novation SourceControl XL after suspend Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 039/150] USB: hub: Dont record a connect-change event during reset-resume Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 040/150] USB: hub: Fix the broken detection of USB3 device in SMSC hub Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 041/150] usb: dwc2: Fix SET/CLEAR_FEATURE and GET_STATUS flows Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 042/150] usb: dwc3: gadget: Check for IOC/LST bit in TRB->ctrl fields Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 043/150] usb: dwc3: debug: fix string position formatting mixup with ret and len Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 044/150] scsi: Revert "target/core: Inline transport_lun_remove_cmd()" Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 045/150] staging: rtl8188eu: Fix potential security hole Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 046/150] staging: rtl8188eu: Fix potential overuse of kernel memory Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 047/150] staging: rtl8723bs: Fix potential security hole Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 048/150] staging: rtl8723bs: Fix potential overuse of kernel memory Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 049/150] hwmon: (acpi_power_meter) Fix lockdep splat Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 050/150] drm/panfrost: perfcnt: Reserve/use the AS attached to the perfcnt MMU context Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 051/150] powerpc/8xx: Fix clearing of bits 20-23 in ITLB miss Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 052/150] powerpc/eeh: Fix deadlock handling dead PHB Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 053/150] powerpc/tm: Fix clearing MSR[TS] in current when reclaiming on signal delivery Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 054/150] powerpc/entry: Fix an #if which should be an #ifdef in entry_32.S Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 055/150] powerpc/hugetlb: Fix 512k hugepages on 8xx with 16k page size Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 056/150] powerpc/hugetlb: Fix 8M hugepages on 8xx Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 057/150] arm64: memory: Add missing brackets to untagged_addr() macro Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 058/150] jbd2: fix ocfs2 corrupt when clearing block group bits Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 059/150] x86/ima: use correct identifier for SetupMode variable Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 060/150] x86/mce/amd: Publish the bank pointer only after setup has succeeded Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 061/150] x86/mce/amd: Fix kobject lifetime Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 062/150] x86/cpu/amd: Enable the fixed Instructions Retired counter IRPERF Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 063/150] MIPS: ingenic: DTS: Fix watchdog nodes Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 064/150] serial: 8250: Check UPF_IRQ_SHARED in advance Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 065/150] tty/serial: atmel: manage shutdown in case of RS485 or ISO7816 mode Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 066/150] tty: serial: imx: setup the correct sg entry for tx dma Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 067/150] tty: serial: qcom_geni_serial: Fix RX cancel command failure Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 068/150] serdev: ttyport: restore client ops on deregistration Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 069/150] MAINTAINERS: Update drm/i915 bug filing URL Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 070/150] fsi: aspeed: add unspecified HAS_IOMEM dependency Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 071/150] ACPI: PM: s2idle: Check fixed wakeup events in acpi_s2idle_wake() Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 072/150] Revert "ipc,sem: remove uneeded sem_undo_list lock usage in exit_sem()" Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 073/150] mm/memcontrol.c: lost css_put in memcg_expand_shrinker_maps() Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 074/150] nvme-multipath: Fix memory leak with ana_log_buf Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 075/150] genirq/irqdomain: Make sure all irq domain flags are distinct Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 076/150] mm/vmscan.c: dont round up scan size for online memory cgroup Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 077/150] mm/sparsemem: pfn_to_page is not valid yet on SPARSEMEM Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 078/150] lib/stackdepot.c: fix global out-of-bounds in stack_slabs Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 079/150] mm: Avoid creating virtual address aliases in brk()/mmap()/mremap() Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 080/150] drm/amdgpu/soc15: fix xclk for raven Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 081/150] drm/amdgpu/gfx9: disable gfxoff when reading rlc clock Greg Kroah-Hartman
2020-02-27 13:36 ` [PATCH 5.5 082/150] drm/amdgpu/gfx10: " Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 083/150] drm/nouveau/kms/gv100-: Re-set LUT after clearing for modesets Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 084/150] drm/i915: Wean off drm_pci_alloc/drm_pci_free Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 085/150] drm/i915: Update drm/i915 bug filing URL Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 086/150] sched/psi: Fix OOB write when writing 0 bytes to PSI files Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 087/150] KVM: nVMX: Dont emulate instructions in guest mode Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 088/150] KVM: x86: dont notify userspace IOAPIC on edge-triggered interrupt EOI Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 089/150] ext4: fix a data race in EXT4_I(inode)->i_disksize Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 090/150] ext4: add cond_resched() to __ext4_find_entry() Greg Kroah-Hartman
2020-02-27 13:37 ` Greg Kroah-Hartman [this message]
2020-02-27 13:37 ` [PATCH 5.5 092/150] ext4: fix potential race between s_group_info online resizing and access Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 093/150] ext4: fix potential race between s_flex_groups " Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 094/150] ext4: fix mount failure with quota configured as module Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 095/150] ext4: rename s_journal_flag_rwsem to s_writepages_rwsem Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 096/150] ext4: fix race between writepages and enabling EXT4_EXTENTS_FL Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 097/150] drm/i915/execlists: Always force a context reload when rewinding RING_TAIL Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 098/150] KVM: nVMX: Refactor IO bitmap checks into helper function Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 099/150] KVM: nVMX: Check IO instruction VM-exit conditions Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 100/150] KVM: nVMX: clear PIN_BASED_POSTED_INTR from nested pinbased_ctls only when apicv is globally disabled Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 101/150] KVM: nVMX: handle nested posted interrupts when apicv is disabled for L1 Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 102/150] KVM: apic: avoid calculating pending eoi from an uninitialized val Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 103/150] crypto: chacha20poly1305 - prevent integer overflow on large input Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 104/150] btrfs: destroy qgroup extent records on transaction abort Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 105/150] btrfs: fix bytes_may_use underflow in prealloc error condtition Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 106/150] btrfs: reset fs_root to NULL on error in open_ctree Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 107/150] btrfs: do not check delayed items are empty for single transaction cleanup Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 108/150] Btrfs: fix btrfs_wait_ordered_range() so that it waits for all ordered extents Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 109/150] Btrfs: fix deadlock during fast fsync when logging prealloc extents beyond eof Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 110/150] Revert "dmaengine: imx-sdma: Fix memory leak" Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 111/150] drm/i915/selftests: Add a mock i915_vma to the mock_ring Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 112/150] drm/i915/gvt: more locking for ppgtt mm LRU list Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 113/150] ice: Remove possible null dereference Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 114/150] drm/bridge: tc358767: fix poll timeouts Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 115/150] drm/i915/gem: Require per-engine reset support for non-persistent contexts Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 116/150] drm/i915/gt: Protect defer_request() from new waiters Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 117/150] drm/i915/ehl: Update port clock voltage level requirements Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 118/150] drm/msm/dpu: fix BGR565 vs RGB565 confusion Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 119/150] scsi: Revert "RDMA/isert: Fix a recently introduced regression related to logout" Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 120/150] scsi: Revert "target: iscsi: Wait for all commands to finish before freeing a session" Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 121/150] usb: gadget: composite: Fix bMaxPower for SuperSpeedPlus Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 122/150] usb: dwc2: Fix in ISOC request length checking Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 123/150] staging: rtl8723bs: fix copy of overlapping memory Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 124/150] staging: greybus: use after free in gb_audio_manager_remove_all() Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 125/150] ASoC: atmel: fix atmel_ssc_set_audio link failure Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 126/150] ASoC: fsl_sai: Fix exiting path on probing failure Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 127/150] ecryptfs: replace BUG_ON with error handling code Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 128/150] iommu/vt-d: Fix compile warning from intel-svm.h Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 129/150] crypto: rename sm3-256 to sm3 in hash_algo_name Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 130/150] genirq/proc: Reject invalid affinity masks (again) Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 131/150] bpf, offload: Replace bitwise AND by logical AND in bpf_prog_offload_info_fill Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 132/150] arm64: lse: Fix LSE atomics with LLVM Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 133/150] scripts/get_maintainer.pl: deprioritize old Fixes: addresses Greg Kroah-Hartman
2020-02-27 15:20   ` Joe Perches
2020-02-27 16:18     ` Dan Carpenter
2020-02-27 18:50       ` Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 134/150] io_uring: prevent sq_thread from spinning when it should stop Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 135/150] io_uring: fix __io_iopoll_check deadlock in io_sq_thread Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 136/150] dma-direct: relax addressability checks in dma_direct_supported Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 137/150] ALSA: rawmidi: Avoid bit fields for state flags Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 138/150] ALSA: seq: Avoid concurrent access to queue flags Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 139/150] ALSA: seq: Fix concurrent access to queue current tick/time Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 140/150] netfilter: xt_hashlimit: limit the max size of hashtable Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 141/150] rxrpc: Fix call RCU cleanup using non-bh-safe locks Greg Kroah-Hartman
2020-02-27 13:37 ` [PATCH 5.5 142/150] ata: ahci: Add shutdown to freeze hardware resources of ahci Greg Kroah-Hartman
2020-02-27 13:38 ` [PATCH 5.5 143/150] xen: Enable interrupts when calling _cond_resched() Greg Kroah-Hartman
2020-02-27 13:38 ` [PATCH 5.5 144/150] net/mlx5e: Reset RQ doorbell counter before moving RQ state from RST to RDY Greg Kroah-Hartman
2020-02-27 13:38 ` [PATCH 5.5 145/150] net/mlx5: Fix sleep while atomic in mlx5_eswitch_get_vepa Greg Kroah-Hartman
2020-02-27 13:38 ` [PATCH 5.5 146/150] net/mlx5e: Dont clear the whole vf config when switching modes Greg Kroah-Hartman
2020-02-27 13:38 ` [PATCH 5.5 147/150] net/mlx5e: Fix crash in recovery flow without devlink reporter Greg Kroah-Hartman
2020-02-27 13:38 ` [PATCH 5.5 148/150] s390/kaslr: Fix casts in get_random Greg Kroah-Hartman
2020-02-27 13:38 ` [PATCH 5.5 149/150] s390/mm: Explicitly compare PAGE_DEFAULT_KEY against zero in storage_key_init_range Greg Kroah-Hartman
2020-02-27 13:38 ` [PATCH 5.5 150/150] bpf: Selftests build error in sockmap_basic.c Greg Kroah-Hartman
     [not found] ` <20200227132232.815448360-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>
2020-02-27 18:53   ` [PATCH 5.5 000/150] 5.5.7-stable review Jon Hunter
2020-02-27 18:53     ` Jon Hunter
     [not found]     ` <7cb3b57b-6a56-7b64-c572-a6f77e7f43b4-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2020-02-28 13:51       ` Greg Kroah-Hartman
2020-02-28 13:51         ` Greg Kroah-Hartman
2020-02-27 22:35 ` Guenter Roeck
2020-02-28  3:35 ` shuah
2020-02-28 13:16   ` Greg Kroah-Hartman
2020-02-28  3:50 ` Naresh Kamboju
2020-02-28 15:12   ` Greg Kroah-Hartman
2020-02-28 12:06 ` Andre Tomt
2020-02-28 12:22   ` Greg Kroah-Hartman
2020-02-28 14:38     ` Andre Tomt

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=20200227132246.245702469@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.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.