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,
	Zygo Blaxell <ce3g8jdj@umail.furryterror.org>,
	Filipe Manana <fdmanana@suse.com>,
	David Sterba <dsterba@suse.com>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.4 135/184] btrfs: fix race when picking most recent mod log operation for an old root
Date: Mon, 10 May 2021 12:20:29 +0200	[thread overview]
Message-ID: <20210510101954.582106783@linuxfoundation.org> (raw)
In-Reply-To: <20210510101950.200777181@linuxfoundation.org>

From: Filipe Manana <fdmanana@suse.com>

[ Upstream commit f9690f426b2134cc3e74bfc5d9dfd6a4b2ca5281 ]

Commit dbcc7d57bffc0c ("btrfs: fix race when cloning extent buffer during
rewind of an old root"), fixed a race when we need to rewind the extent
buffer of an old root. It was caused by picking a new mod log operation
for the extent buffer while getting a cloned extent buffer with an outdated
number of items (off by -1), because we cloned the extent buffer without
locking it first.

However there is still another similar race, but in the opposite direction.
The cloned extent buffer has a number of items that does not match the
number of tree mod log operations that are going to be replayed. This is
because right after we got the last (most recent) tree mod log operation to
replay and before locking and cloning the extent buffer, another task adds
a new pointer to the extent buffer, which results in adding a new tree mod
log operation and incrementing the number of items in the extent buffer.
So after cloning we have mismatch between the number of items in the extent
buffer and the number of mod log operations we are going to apply to it.
This results in hitting a BUG_ON() that produces the following stack trace:

   ------------[ cut here ]------------
   kernel BUG at fs/btrfs/tree-mod-log.c:675!
   invalid opcode: 0000 [#1] SMP KASAN PTI
   CPU: 3 PID: 4811 Comm: crawl_1215 Tainted: G        W         5.12.0-7d1efdf501f8-misc-next+ #99
   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014
   RIP: 0010:tree_mod_log_rewind+0x3b1/0x3c0
   Code: 05 48 8d 74 10 (...)
   RSP: 0018:ffffc90001027090 EFLAGS: 00010293
   RAX: 0000000000000000 RBX: ffff8880a8514600 RCX: ffffffffaa9e59b6
   RDX: 0000000000000007 RSI: dffffc0000000000 RDI: ffff8880a851462c
   RBP: ffffc900010270e0 R08: 00000000000000c0 R09: ffffed1004333417
   R10: ffff88802199a0b7 R11: ffffed1004333416 R12: 000000000000000e
   R13: ffff888135af8748 R14: ffff88818766ff00 R15: ffff8880a851462c
   FS:  00007f29acf62700(0000) GS:ffff8881f2200000(0000) knlGS:0000000000000000
   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
   CR2: 00007f0e6013f718 CR3: 000000010d42e003 CR4: 0000000000170ee0
   Call Trace:
    btrfs_get_old_root+0x16a/0x5c0
    ? lock_downgrade+0x400/0x400
    btrfs_search_old_slot+0x192/0x520
    ? btrfs_search_slot+0x1090/0x1090
    ? free_extent_buffer.part.61+0xd7/0x140
    ? free_extent_buffer+0x13/0x20
    resolve_indirect_refs+0x3e9/0xfc0
    ? lock_downgrade+0x400/0x400
    ? __kasan_check_read+0x11/0x20
    ? add_prelim_ref.part.11+0x150/0x150
    ? lock_downgrade+0x400/0x400
    ? __kasan_check_read+0x11/0x20
    ? lock_acquired+0xbb/0x620
    ? __kasan_check_write+0x14/0x20
    ? do_raw_spin_unlock+0xa8/0x140
    ? rb_insert_color+0x340/0x360
    ? prelim_ref_insert+0x12d/0x430
    find_parent_nodes+0x5c3/0x1830
    ? stack_trace_save+0x87/0xb0
    ? resolve_indirect_refs+0xfc0/0xfc0
    ? fs_reclaim_acquire+0x67/0xf0
    ? __kasan_check_read+0x11/0x20
    ? lockdep_hardirqs_on_prepare+0x210/0x210
    ? fs_reclaim_acquire+0x67/0xf0
    ? __kasan_check_read+0x11/0x20
    ? ___might_sleep+0x10f/0x1e0
    ? __kasan_kmalloc+0x9d/0xd0
    ? trace_hardirqs_on+0x55/0x120
    btrfs_find_all_roots_safe+0x142/0x1e0
    ? find_parent_nodes+0x1830/0x1830
    ? trace_hardirqs_on+0x55/0x120
    ? ulist_free+0x1f/0x30
    ? btrfs_inode_flags_to_xflags+0x50/0x50
    iterate_extent_inodes+0x20e/0x580
    ? tree_backref_for_extent+0x230/0x230
    ? release_extent_buffer+0x225/0x280
    ? read_extent_buffer+0xdd/0x110
    ? lock_downgrade+0x400/0x400
    ? __kasan_check_read+0x11/0x20
    ? lock_acquired+0xbb/0x620
    ? __kasan_check_write+0x14/0x20
    ? do_raw_spin_unlock+0xa8/0x140
    ? _raw_spin_unlock+0x22/0x30
    ? release_extent_buffer+0x225/0x280
    iterate_inodes_from_logical+0x129/0x170
    ? iterate_inodes_from_logical+0x129/0x170
    ? btrfs_inode_flags_to_xflags+0x50/0x50
    ? iterate_extent_inodes+0x580/0x580
    ? __vmalloc_node+0x92/0xb0
    ? init_data_container+0x34/0xb0
    ? init_data_container+0x34/0xb0
    ? kvmalloc_node+0x60/0x80
    btrfs_ioctl_logical_to_ino+0x158/0x230
    btrfs_ioctl+0x2038/0x4360
    ? __kasan_check_write+0x14/0x20
    ? mmput+0x3b/0x220
    ? btrfs_ioctl_get_supported_features+0x30/0x30
    ? __kasan_check_read+0x11/0x20
    ? __kasan_check_read+0x11/0x20
    ? lock_release+0xc8/0x650
    ? __might_fault+0x64/0xd0
    ? __kasan_check_read+0x11/0x20
    ? lock_downgrade+0x400/0x400
    ? lockdep_hardirqs_on_prepare+0x210/0x210
    ? lockdep_hardirqs_on_prepare+0x13/0x210
    ? _raw_spin_unlock_irqrestore+0x51/0x63
    ? __kasan_check_read+0x11/0x20
    ? do_vfs_ioctl+0xfc/0x9d0
    ? ioctl_file_clone+0xe0/0xe0
    ? lock_downgrade+0x400/0x400
    ? lockdep_hardirqs_on_prepare+0x210/0x210
    ? __kasan_check_read+0x11/0x20
    ? lock_release+0xc8/0x650
    ? __task_pid_nr_ns+0xd3/0x250
    ? __kasan_check_read+0x11/0x20
    ? __fget_files+0x160/0x230
    ? __fget_light+0xf2/0x110
    __x64_sys_ioctl+0xc3/0x100
    do_syscall_64+0x37/0x80
    entry_SYSCALL_64_after_hwframe+0x44/0xae
   RIP: 0033:0x7f29ae85b427
   Code: 00 00 90 48 8b (...)
   RSP: 002b:00007f29acf5fcf8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
   RAX: ffffffffffffffda RBX: 00007f29acf5ff40 RCX: 00007f29ae85b427
   RDX: 00007f29acf5ff48 RSI: 00000000c038943b RDI: 0000000000000003
   RBP: 0000000001000000 R08: 0000000000000000 R09: 00007f29acf60120
   R10: 00005640d5fc7b00 R11: 0000000000000246 R12: 0000000000000003
   R13: 00007f29acf5ff48 R14: 00007f29acf5ff40 R15: 00007f29acf5fef8
   Modules linked in:
   ---[ end trace 85e5fce078dfbe04 ]---

  (gdb) l *(tree_mod_log_rewind+0x3b1)
  0xffffffff819e5b21 is in tree_mod_log_rewind (fs/btrfs/tree-mod-log.c:675).
  670                      * the modification. As we're going backwards, we do the
  671                      * opposite of each operation here.
  672                      */
  673                     switch (tm->op) {
  674                     case BTRFS_MOD_LOG_KEY_REMOVE_WHILE_FREEING:
  675                             BUG_ON(tm->slot < n);
  676                             fallthrough;
  677                     case BTRFS_MOD_LOG_KEY_REMOVE_WHILE_MOVING:
  678                     case BTRFS_MOD_LOG_KEY_REMOVE:
  679                             btrfs_set_node_key(eb, &tm->key, tm->slot);
  (gdb) quit

The following steps explain in more detail how it happens:

1) We have one tree mod log user (through fiemap or the logical ino ioctl),
   with a sequence number of 1, so we have fs_info->tree_mod_seq == 1.
   This is task A;

2) Another task is at ctree.c:balance_level() and we have eb X currently as
   the root of the tree, and we promote its single child, eb Y, as the new
   root.

   Then, at ctree.c:balance_level(), we call:

      ret = btrfs_tree_mod_log_insert_root(root->node, child, true);

3) At btrfs_tree_mod_log_insert_root() we create a tree mod log operation
   of type BTRFS_MOD_LOG_KEY_REMOVE_WHILE_FREEING, with a ->logical field
   pointing to ebX->start. We only have one item in eb X, so we create
   only one tree mod log operation, and store in the "tm_list" array;

4) Then, still at btrfs_tree_mod_log_insert_root(), we create a tree mod
   log element of operation type BTRFS_MOD_LOG_ROOT_REPLACE, ->logical set
   to ebY->start, ->old_root.logical set to ebX->start, ->old_root.level
   set to the level of eb X and ->generation set to the generation of eb X;

5) Then btrfs_tree_mod_log_insert_root() calls tree_mod_log_free_eb() with
   "tm_list" as argument. After that, tree_mod_log_free_eb() calls
   tree_mod_log_insert(). This inserts the mod log operation of type
   BTRFS_MOD_LOG_KEY_REMOVE_WHILE_FREEING from step 3 into the rbtree
   with a sequence number of 2 (and fs_info->tree_mod_seq set to 2);

6) Then, after inserting the "tm_list" single element into the tree mod
   log rbtree, the BTRFS_MOD_LOG_ROOT_REPLACE element is inserted, which
   gets the sequence number 3 (and fs_info->tree_mod_seq set to 3);

7) Back to ctree.c:balance_level(), we free eb X by calling
   btrfs_free_tree_block() on it. Because eb X was created in the current
   transaction, has no other references and writeback did not happen for
   it, we add it back to the free space cache/tree;

8) Later some other task B allocates the metadata extent from eb X, since
   it is marked as free space in the space cache/tree, and uses it as a
   node for some other btree;

9) The tree mod log user task calls btrfs_search_old_slot(), which calls
   btrfs_get_old_root(), and finally that calls tree_mod_log_oldest_root()
   with time_seq == 1 and eb_root == eb Y;

10) The first iteration of the while loop finds the tree mod log element
    with sequence number 3, for the logical address of eb Y and of type
    BTRFS_MOD_LOG_ROOT_REPLACE;

11) Because the operation type is BTRFS_MOD_LOG_ROOT_REPLACE, we don't
    break out of the loop, and set root_logical to point to
    tm->old_root.logical, which corresponds to the logical address of
    eb X;

12) On the next iteration of the while loop, the call to
    tree_mod_log_search_oldest() returns the smallest tree mod log element
    for the logical address of eb X, which has a sequence number of 2, an
    operation type of BTRFS_MOD_LOG_KEY_REMOVE_WHILE_FREEING and
    corresponds to the old slot 0 of eb X (eb X had only 1 item in it
    before being freed at step 7);

13) We then break out of the while loop and return the tree mod log
    operation of type BTRFS_MOD_LOG_ROOT_REPLACE (eb Y), and not the one
    for slot 0 of eb X, to btrfs_get_old_root();

14) At btrfs_get_old_root(), we process the BTRFS_MOD_LOG_ROOT_REPLACE
    operation and set "logical" to the logical address of eb X, which was
    the old root. We then call tree_mod_log_search() passing it the logical
    address of eb X and time_seq == 1;

15) But before calling tree_mod_log_search(), task B locks eb X, adds a
    key to eb X, which results in adding a tree mod log operation of type
    BTRFS_MOD_LOG_KEY_ADD, with a sequence number of 4, to the tree mod
    log, and increments the number of items in eb X from 0 to 1.
    Now fs_info->tree_mod_seq has a value of 4;

16) Task A then calls tree_mod_log_search(), which returns the most recent
    tree mod log operation for eb X, which is the one just added by task B
    at the previous step, with a sequence number of 4, a type of
    BTRFS_MOD_LOG_KEY_ADD and for slot 0;

17) Before task A locks and clones eb X, task A adds another key to eb X,
    which results in adding a new BTRFS_MOD_LOG_KEY_ADD mod log operation,
    with a sequence number of 5, for slot 1 of eb X, increments the
    number of items in eb X from 1 to 2, and unlocks eb X.
    Now fs_info->tree_mod_seq has a value of 5;

18) Task A then locks eb X and clones it. The clone has a value of 2 for
    the number of items and the pointer "tm" points to the tree mod log
    operation with sequence number 4, not the most recent one with a
    sequence number of 5, so there is mismatch between the number of
    mod log operations that are going to be applied to the cloned version
    of eb X and the number of items in the clone;

19) Task A then calls tree_mod_log_rewind() with the clone of eb X, the
    tree mod log operation with sequence number 4 and a type of
    BTRFS_MOD_LOG_KEY_ADD, and time_seq == 1;

20) At tree_mod_log_rewind(), we set the local variable "n" with a value
    of 2, which is the number of items in the clone of eb X.

    Then in the first iteration of the while loop, we process the mod log
    operation with sequence number 4, which is targeted at slot 0 and has
    a type of BTRFS_MOD_LOG_KEY_ADD. This results in decrementing "n" from
    2 to 1.

    Then we pick the next tree mod log operation for eb X, which is the
    tree mod log operation with a sequence number of 2, a type of
    BTRFS_MOD_LOG_KEY_REMOVE_WHILE_FREEING and for slot 0, it is the one
    added in step 5 to the tree mod log tree.

    We go back to the top of the loop to process this mod log operation,
    and because its slot is 0 and "n" has a value of 1, we hit the BUG_ON:

        (...)
        switch (tm->op) {
        case BTRFS_MOD_LOG_KEY_REMOVE_WHILE_FREEING:
                BUG_ON(tm->slot < n);
                fallthrough;
	(...)

Fix this by checking for a more recent tree mod log operation after locking
and cloning the extent buffer of the old root node, and use it as the first
operation to apply to the cloned extent buffer when rewinding it.

Stable backport notes: due to moved code and renames, in =< 5.11 the
change should be applied to ctree.c:get_old_root.

Reported-by: Zygo Blaxell <ce3g8jdj@umail.furryterror.org>
Link: https://lore.kernel.org/linux-btrfs/20210404040732.GZ32440@hungrycats.org/
Fixes: 834328a8493079 ("Btrfs: tree mod log's old roots could still be part of the tree")
CC: stable@vger.kernel.org # 4.4+
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/btrfs/ctree.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index 35741901f4e0..ab69e3563b12 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -1406,10 +1406,30 @@ get_old_root(struct btrfs_root *root, u64 time_seq)
 				   "failed to read tree block %llu from get_old_root",
 				   logical);
 		} else {
+			struct tree_mod_elem *tm2;
+
 			btrfs_tree_read_lock(old);
 			eb = btrfs_clone_extent_buffer(old);
+			/*
+			 * After the lookup for the most recent tree mod operation
+			 * above and before we locked and cloned the extent buffer
+			 * 'old', a new tree mod log operation may have been added.
+			 * So lookup for a more recent one to make sure the number
+			 * of mod log operations we replay is consistent with the
+			 * number of items we have in the cloned extent buffer,
+			 * otherwise we can hit a BUG_ON when rewinding the extent
+			 * buffer.
+			 */
+			tm2 = tree_mod_log_search(fs_info, logical, time_seq);
 			btrfs_tree_read_unlock(old);
 			free_extent_buffer(old);
+			ASSERT(tm2);
+			ASSERT(tm2 == tm || tm2->seq > tm->seq);
+			if (!tm2 || tm2->seq < tm->seq) {
+				free_extent_buffer(eb);
+				return NULL;
+			}
+			tm = tm2;
 		}
 	} else if (old_root) {
 		eb_root_owner = btrfs_header_owner(eb_root);
-- 
2.30.2




  parent reply	other threads:[~2021-05-10 10:36 UTC|newest]

Thread overview: 202+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-10 10:18 [PATCH 5.4 000/184] 5.4.118-rc1 review Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 001/184] s390/disassembler: increase ebpf disasm buffer size Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 002/184] ACPI: custom_method: fix potential use-after-free issue Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 003/184] ACPI: custom_method: fix a possible memory leak Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 004/184] ftrace: Handle commands when closing set_ftrace_filter file Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 005/184] ARM: 9056/1: decompressor: fix BSS size calculation for LLVM ld.lld Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 006/184] arm64: dts: marvell: armada-37xx: add syscon compatible to NB clk node Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 007/184] arm64: dts: mt8173: fix property typo of phys in dsi node Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 008/184] ecryptfs: fix kernel panic with null dev_name Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 009/184] mtd: spinand: core: add missing MODULE_DEVICE_TABLE() Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 010/184] mtd: rawnand: atmel: Update ecc_stats.corrected counter Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 011/184] erofs: add unsupported inode i_format check Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 012/184] spi: spi-ti-qspi: Free DMA resources Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 013/184] scsi: qla2xxx: Fix crash in qla2xxx_mqueuecommand() Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 014/184] scsi: mpt3sas: Block PCI config access from userspace during reset Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 015/184] mmc: uniphier-sd: Fix an error handling path in uniphier_sd_probe() Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 016/184] mmc: uniphier-sd: Fix a resource leak in the remove function Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 017/184] mmc: sdhci: Check for reset prior to DMA address unmap Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 018/184] mmc: sdhci-pci: Fix initialization of some SD cards for Intel BYT-based controllers Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 019/184] mmc: block: Update ext_csd.cache_ctrl if it was written Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 020/184] mmc: block: Issue a cache flush only when its enabled Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 021/184] mmc: core: Do a power cycle when the CMD11 fails Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 022/184] mmc: core: Set read only for SD cards with permanent write protect bit Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 023/184] mmc: core: Fix hanging on I/O during system suspend for removable cards Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 024/184] modules: mark ref_module static Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 025/184] modules: mark find_symbol static Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 026/184] modules: mark each_symbol_section static Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 027/184] modules: unexport __module_text_address Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 028/184] modules: unexport __module_address Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 029/184] modules: rename the licence field in struct symsearch to license Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 030/184] modules: return licensing information from find_symbol Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 031/184] modules: inherit TAINT_PROPRIETARY_MODULE Greg Kroah-Hartman
2021-06-18  8:57   ` Krzysztof Kozlowski
2021-06-18  8:59     ` Krzysztof Kozlowski
2021-06-18  9:21       ` Greg Kroah-Hartman
2021-06-18  9:07     ` David Laight
2021-06-18  9:19       ` Greg Kroah-Hartman
2021-06-18  9:20         ` Krzysztof Kozlowski
2021-06-18  9:19     ` Greg Kroah-Hartman
2021-06-18  9:22       ` Krzysztof Kozlowski
2021-06-18  9:29         ` Greg Kroah-Hartman
2021-06-18  9:41           ` Krzysztof Kozlowski
2021-05-10 10:18 ` [PATCH 5.4 032/184] irqchip/gic-v3: Do not enable irqs when handling spurious interrups Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 033/184] cifs: Return correct error code from smb2_get_enc_key Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 034/184] btrfs: fix metadata extent leak after failure to create subvolume Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 035/184] intel_th: pci: Add Rocket Lake CPU support Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 036/184] posix-timers: Preserve return value in clock_adjtime32() Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 037/184] fbdev: zero-fill colormap in fbcmap.c Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 038/184] bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 039/184] staging: wimax/i2400m: fix byte-order issue Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 040/184] spi: ath79: always call chipselect function Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 041/184] spi: ath79: remove spi-master setup and cleanup assignment Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 042/184] crypto: api - check for ERR pointers in crypto_destroy_tfm() Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 043/184] crypto: qat - fix unmap invalid dma address Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 044/184] usb: gadget: uvc: add bInterval checking for HS mode Greg Kroah-Hartman
2021-05-10 10:18 ` [PATCH 5.4 045/184] usb: webcam: Invalid size of Processing Unit Descriptor Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 046/184] genirq/matrix: Prevent allocation counter corruption Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 047/184] usb: gadget: f_uac2: validate input parameters Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 048/184] usb: gadget: f_uac1: " Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 049/184] usb: dwc3: gadget: Ignore EP queue requests during bus reset Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 050/184] usb: xhci: Fix port minor revision Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 051/184] PCI: PM: Do not read power state in pci_enable_device_flags() Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 052/184] x86/build: Propagate $(CLANG_FLAGS) to $(REALMODE_FLAGS) Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 053/184] tee: optee: do not check memref size on return from Secure World Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 054/184] perf/arm_pmu_platform: Fix error handling Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 055/184] usb: xhci-mtk: support quirk to disable usb2 lpm Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 056/184] xhci: check control context is valid before dereferencing it Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 057/184] xhci: fix potential array out of bounds with several interrupters Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 058/184] spi: dln2: Fix reference leak to master Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 059/184] spi: omap-100k: " Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 060/184] spi: qup: fix PM reference leak in spi_qup_remove() Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 061/184] usb: musb: fix PM reference leak in musb_irq_work() Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 062/184] usb: core: hub: Fix PM reference leak in usb_port_resume() Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 063/184] tty: n_gsm: check error while registering tty devices Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 064/184] intel_th: Consistency and off-by-one fix Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 065/184] phy: phy-twl4030-usb: Fix possible use-after-free in twl4030_usb_remove() Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 066/184] crypto: stm32/hash - Fix PM reference leak on stm32-hash.c Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 067/184] crypto: stm32/cryp - Fix PM reference leak on stm32-cryp.c Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 068/184] crypto: omap-aes - Fix PM reference leak on omap-aes.c Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 069/184] platform/x86: intel_pmc_core: Dont use global pmcdev in quirks Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 070/184] btrfs: convert logic BUG_ON()s in replace_path to ASSERT()s Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 071/184] drm: Added orientation quirk for OneGX1 Pro Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 072/184] drm/qxl: release shadow on shutdown Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 073/184] drm/amd/display: Check for DSC support instead of ASIC revision Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 074/184] drm/amd/display: Dont optimize bandwidth before disabling planes Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 075/184] scsi: lpfc: Fix incorrect dbde assignment when building target abts wqe Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 076/184] scsi: lpfc: Fix pt2pt connection does not recover after LOGO Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 077/184] scsi: target: pscsi: Fix warning in pscsi_complete_cmd() Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 078/184] media: ite-cir: check for receive overflow Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 079/184] media: drivers: media: pci: sta2x11: fix Kconfig dependency on GPIOLIB Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 080/184] media: imx: capture: Return -EPIPE from __capture_legacy_try_fmt() Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 081/184] power: supply: bq27xxx: fix power_avg for newer ICs Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 082/184] extcon: arizona: Fix some issues when HPDET IRQ fires after the jack has been unplugged Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 083/184] extcon: arizona: Fix various races on driver unbind Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 084/184] media: media/saa7164: fix saa7164_encoder_register() memory leak bugs Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 085/184] media: gspca/sq905.c: fix uninitialized variable Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 086/184] power: supply: Use IRQF_ONESHOT Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 087/184] drm/amdgpu: mask the xgmi number of hops reported from psp to kfd Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 088/184] drm/amdkfd: Fix UBSAN shift-out-of-bounds warning Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 089/184] drm/amdgpu : Fix asic reset regression issue introduce by 8f211fe8ac7c4f Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 090/184] drm/amd/display: Fix UBSAN warning for not a valid value for type _Bool Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 091/184] drm/amd/display: fix dml prefetch validation Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 092/184] scsi: qla2xxx: Always check the return value of qla24xx_get_isp_stats() Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 093/184] drm/vkms: fix misuse of WARN_ON Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 094/184] scsi: qla2xxx: Fix use after free in bsg Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 095/184] mmc: sdhci-pci: Add PCI IDs for Intel LKF Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 096/184] ata: ahci: Disable SXS for Hisilicon Kunpeng920 Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 097/184] scsi: smartpqi: Correct request leakage during reset operations Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 098/184] scsi: smartpqi: Add new PCI IDs Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 099/184] scsi: scsi_dh_alua: Remove check for ASC 24h in alua_rtpg() Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 100/184] media: em28xx: fix memory leak Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 101/184] media: vivid: update EDID Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 102/184] clk: socfpga: arria10: Fix memory leak of socfpga_clk on error return Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 103/184] power: supply: generic-adc-battery: fix possible use-after-free in gab_remove() Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 104/184] power: supply: s3c_adc_battery: fix possible use-after-free in s3c_adc_bat_remove() Greg Kroah-Hartman
2021-05-10 10:19 ` [PATCH 5.4 105/184] media: tc358743: fix possible use-after-free in tc358743_remove() Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 106/184] media: adv7604: fix possible use-after-free in adv76xx_remove() Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 107/184] media: i2c: adv7511-v4l2: fix possible use-after-free in adv7511_remove() Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 108/184] media: i2c: tda1997: Fix possible use-after-free in tda1997x_remove() Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 109/184] media: i2c: adv7842: fix possible use-after-free in adv7842_remove() Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 110/184] media: platform: sti: Fix runtime PM imbalance in regs_show Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 111/184] media: dvb-usb: fix memory leak in dvb_usb_adapter_init Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 112/184] media: gscpa/stv06xx: fix memory leak Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 113/184] sched/fair: Ignore percpu threads for imbalance pulls Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 114/184] drm/msm/mdp5: Configure PP_SYNC_HEIGHT to double the vtotal Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 115/184] drm/msm/mdp5: Do not multiply vclk line count by 100 Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 116/184] drm/amdkfd: Fix cat debugfs hang_hws file causes system crash bug Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 117/184] amdgpu: avoid incorrect %hu format string Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 118/184] drm/amdgpu: fix NULL pointer dereference Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 119/184] scsi: lpfc: Fix crash when a REG_RPI mailbox fails triggering a LOGO response Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 120/184] scsi: lpfc: Fix error handling for mailboxes completed in MBX_POLL mode Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 121/184] scsi: lpfc: Remove unsupported mbox PORT_CAPABILITIES logic Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 122/184] mfd: arizona: Fix rumtime PM imbalance on error Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 123/184] scsi: libfc: Fix a format specifier Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 124/184] s390/archrandom: add parameter check for s390_arch_random_generate Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 125/184] ALSA: emu8000: Fix a use after free in snd_emu8000_create_mixer Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 126/184] ALSA: hda/conexant: Re-order CX5066 quirk table entries Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 127/184] ALSA: sb: Fix two use after free in snd_sb_qsound_build Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 128/184] ALSA: usb-audio: Explicitly set up the clock selector Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 129/184] ALSA: usb-audio: More constifications Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 130/184] ALSA: usb-audio: Add dB range mapping for Sennheiser Communications Headset PC 8 Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 131/184] ALSA: hda/realtek: GA503 use same quirks as GA401 Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 132/184] ALSA: hda/realtek: fix mic boost on Intel NUC 8 Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 133/184] ALSA: hda/realtek: fix static noise on ALC285 Lenovo laptops Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 134/184] ALSA: hda/realtek: Add quirk for Intel Clevo PCx0Dx Greg Kroah-Hartman
2021-05-10 10:20 ` Greg Kroah-Hartman [this message]
2021-05-10 10:20 ` [PATCH 5.4 136/184] arm64/vdso: Discard .note.gnu.property sections in vDSO Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 137/184] Makefile: Move -Wno-unused-but-set-variable out of GCC only block Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 138/184] virtiofs: fix memory leak in virtio_fs_probe() Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 139/184] ubifs: Only check replay with inode type to judge if inode linked Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 140/184] f2fs: fix to avoid out-of-bounds memory access Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 141/184] mlxsw: spectrum_mr: Update egress RIF list before routes action Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 142/184] openvswitch: fix stack OOB read while fragmenting IPv4 packets Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 143/184] ACPI: GTDT: Dont corrupt interrupt mappings on watchdow probe failure Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 144/184] NFS: Dont discard pNFS layout segments that are marked for return Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 145/184] NFSv4: Dont discard segments marked for return in _pnfs_return_layout() Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 146/184] Input: ili210x - add missing negation for touch indication on ili210x Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 147/184] jffs2: Fix kasan slab-out-of-bounds problem Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 148/184] powerpc/eeh: Fix EEH handling for hugepages in ioremap space Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 149/184] powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 150/184] intel_th: pci: Add Alder Lake-M support Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 151/184] tpm: efi: Use local variable for calculating final log size Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 152/184] tpm: vtpm_proxy: Avoid reading host log when using a virtual device Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 153/184] crypto: rng - fix crypto_rng_reset() refcounting when !CRYPTO_STATS Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 154/184] md/raid1: properly indicate failure when ending a failed write request Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 155/184] dm raid: fix inconclusive reshape layout on fast raid4/5/6 table reload sequences Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 156/184] fuse: fix write deadlock Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 157/184] security: commoncap: fix -Wstringop-overread warning Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 158/184] Fix misc new gcc warnings Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 159/184] jffs2: check the validity of dstlen in jffs2_zlib_compress() Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 160/184] Revert 337f13046ff0 ("futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op") Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 161/184] x86/cpu: Initialize MSR_TSC_AUX if RDTSCP *or* RDPID is supported Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 162/184] kbuild: update config_data.gz only when the content of .config is changed Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 163/184] ext4: fix check to prevent false positive report of incorrect used inodes Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 164/184] ext4: do not set SB_ACTIVE in ext4_orphan_cleanup() Greg Kroah-Hartman
2021-05-10 10:20 ` [PATCH 5.4 165/184] ext4: fix error code in ext4_commit_super Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 166/184] media: dvbdev: Fix memory leak in dvb_media_device_free() Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 167/184] media: dvb-usb: Fix use-after-free access Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 168/184] media: dvb-usb: Fix memory leak at error in dvb_usb_device_init() Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 169/184] media: staging/intel-ipu3: Fix memory leak in imu_fmt Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 170/184] media: staging/intel-ipu3: Fix set_fmt error handling Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 171/184] media: staging/intel-ipu3: Fix race condition during set_fmt Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 172/184] usb: gadget: dummy_hcd: fix gpf in gadget_setup Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 173/184] usb: gadget: Fix double free of device descriptor pointers Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 174/184] usb: gadget/function/f_fs string table fix for multiple languages Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 175/184] usb: dwc3: gadget: Fix START_TRANSFER link state check Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 176/184] usb: dwc2: Fix session request interrupt handler Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 177/184] tty: fix memory leak in vc_deallocate Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 178/184] rsi: Use resume_noirq for SDIO Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 179/184] tracing: Map all PIDs to command lines Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 180/184] tracing: Restructure trace_clock_global() to never block Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 181/184] dm persistent data: packed struct should have an aligned() attribute too Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 182/184] dm space map common: fix division bug in sm_ll_find_free_block() Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 183/184] dm integrity: fix missing goto in bitmap_flush_interval error handling Greg Kroah-Hartman
2021-05-10 10:21 ` [PATCH 5.4 184/184] dm rq: fix double free of blk_mq_tag_set in dev remove after table load fails Greg Kroah-Hartman
2021-05-10 12:42 ` [PATCH 5.4 000/184] 5.4.118-rc1 review Jon Hunter
2021-05-10 14:31 ` Florian Fainelli
2021-05-10 22:15 ` Guenter Roeck
2021-05-10 22:15 ` Shuah Khan
2021-05-11  7:32 ` Naresh Kamboju
2021-05-11  9:21 ` Sudip Mukherjee
2021-05-11 12:03 ` Samuel Zou

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=20210510101954.582106783@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=ce3g8jdj@umail.furryterror.org \
    --cc=dsterba@suse.com \
    --cc=fdmanana@suse.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    /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).