From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Filipe Manana <fdmanana@suse.com>,
Josef Bacik <josef@toxicpanda.com>,
David Sterba <dsterba@suse.com>
Subject: [PATCH 5.4 082/129] btrfs: allocate scrub workqueues outside of locks
Date: Tue, 8 Sep 2020 17:25:23 +0200 [thread overview]
Message-ID: <20200908152233.793191583@linuxfoundation.org> (raw)
In-Reply-To: <20200908152229.689878733@linuxfoundation.org>
From: Josef Bacik <josef@toxicpanda.com>
commit e89c4a9c8e6ce3a84cab4f342687d3fbbb1234eb upstream.
I got the following lockdep splat while testing:
======================================================
WARNING: possible circular locking dependency detected
5.8.0-rc7-00172-g021118712e59 #932 Not tainted
------------------------------------------------------
btrfs/229626 is trying to acquire lock:
ffffffff828513f0 (cpu_hotplug_lock){++++}-{0:0}, at: alloc_workqueue+0x378/0x450
but task is already holding lock:
ffff889dd3889518 (&fs_info->scrub_lock){+.+.}-{3:3}, at: btrfs_scrub_dev+0x11c/0x630
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #7 (&fs_info->scrub_lock){+.+.}-{3:3}:
__mutex_lock+0x9f/0x930
btrfs_scrub_dev+0x11c/0x630
btrfs_dev_replace_by_ioctl.cold.21+0x10a/0x1d4
btrfs_ioctl+0x2799/0x30a0
ksys_ioctl+0x83/0xc0
__x64_sys_ioctl+0x16/0x20
do_syscall_64+0x50/0x90
entry_SYSCALL_64_after_hwframe+0x44/0xa9
-> #6 (&fs_devs->device_list_mutex){+.+.}-{3:3}:
__mutex_lock+0x9f/0x930
btrfs_run_dev_stats+0x49/0x480
commit_cowonly_roots+0xb5/0x2a0
btrfs_commit_transaction+0x516/0xa60
sync_filesystem+0x6b/0x90
generic_shutdown_super+0x22/0x100
kill_anon_super+0xe/0x30
btrfs_kill_super+0x12/0x20
deactivate_locked_super+0x29/0x60
cleanup_mnt+0xb8/0x140
task_work_run+0x6d/0xb0
__prepare_exit_to_usermode+0x1cc/0x1e0
do_syscall_64+0x5c/0x90
entry_SYSCALL_64_after_hwframe+0x44/0xa9
-> #5 (&fs_info->tree_log_mutex){+.+.}-{3:3}:
__mutex_lock+0x9f/0x930
btrfs_commit_transaction+0x4bb/0xa60
sync_filesystem+0x6b/0x90
generic_shutdown_super+0x22/0x100
kill_anon_super+0xe/0x30
btrfs_kill_super+0x12/0x20
deactivate_locked_super+0x29/0x60
cleanup_mnt+0xb8/0x140
task_work_run+0x6d/0xb0
__prepare_exit_to_usermode+0x1cc/0x1e0
do_syscall_64+0x5c/0x90
entry_SYSCALL_64_after_hwframe+0x44/0xa9
-> #4 (&fs_info->reloc_mutex){+.+.}-{3:3}:
__mutex_lock+0x9f/0x930
btrfs_record_root_in_trans+0x43/0x70
start_transaction+0xd1/0x5d0
btrfs_dirty_inode+0x42/0xd0
touch_atime+0xa1/0xd0
btrfs_file_mmap+0x3f/0x60
mmap_region+0x3a4/0x640
do_mmap+0x376/0x580
vm_mmap_pgoff+0xd5/0x120
ksys_mmap_pgoff+0x193/0x230
do_syscall_64+0x50/0x90
entry_SYSCALL_64_after_hwframe+0x44/0xa9
-> #3 (&mm->mmap_lock#2){++++}-{3:3}:
__might_fault+0x68/0x90
_copy_to_user+0x1e/0x80
perf_read+0x141/0x2c0
vfs_read+0xad/0x1b0
ksys_read+0x5f/0xe0
do_syscall_64+0x50/0x90
entry_SYSCALL_64_after_hwframe+0x44/0xa9
-> #2 (&cpuctx_mutex){+.+.}-{3:3}:
__mutex_lock+0x9f/0x930
perf_event_init_cpu+0x88/0x150
perf_event_init+0x1db/0x20b
start_kernel+0x3ae/0x53c
secondary_startup_64+0xa4/0xb0
-> #1 (pmus_lock){+.+.}-{3:3}:
__mutex_lock+0x9f/0x930
perf_event_init_cpu+0x4f/0x150
cpuhp_invoke_callback+0xb1/0x900
_cpu_up.constprop.26+0x9f/0x130
cpu_up+0x7b/0xc0
bringup_nonboot_cpus+0x4f/0x60
smp_init+0x26/0x71
kernel_init_freeable+0x110/0x258
kernel_init+0xa/0x103
ret_from_fork+0x1f/0x30
-> #0 (cpu_hotplug_lock){++++}-{0:0}:
__lock_acquire+0x1272/0x2310
lock_acquire+0x9e/0x360
cpus_read_lock+0x39/0xb0
alloc_workqueue+0x378/0x450
__btrfs_alloc_workqueue+0x15d/0x200
btrfs_alloc_workqueue+0x51/0x160
scrub_workers_get+0x5a/0x170
btrfs_scrub_dev+0x18c/0x630
btrfs_dev_replace_by_ioctl.cold.21+0x10a/0x1d4
btrfs_ioctl+0x2799/0x30a0
ksys_ioctl+0x83/0xc0
__x64_sys_ioctl+0x16/0x20
do_syscall_64+0x50/0x90
entry_SYSCALL_64_after_hwframe+0x44/0xa9
other info that might help us debug this:
Chain exists of:
cpu_hotplug_lock --> &fs_devs->device_list_mutex --> &fs_info->scrub_lock
Possible unsafe locking scenario:
CPU0 CPU1
---- ----
lock(&fs_info->scrub_lock);
lock(&fs_devs->device_list_mutex);
lock(&fs_info->scrub_lock);
lock(cpu_hotplug_lock);
*** DEADLOCK ***
2 locks held by btrfs/229626:
#0: ffff88bfe8bb86e0 (&fs_devs->device_list_mutex){+.+.}-{3:3}, at: btrfs_scrub_dev+0xbd/0x630
#1: ffff889dd3889518 (&fs_info->scrub_lock){+.+.}-{3:3}, at: btrfs_scrub_dev+0x11c/0x630
stack backtrace:
CPU: 15 PID: 229626 Comm: btrfs Kdump: loaded Not tainted 5.8.0-rc7-00172-g021118712e59 #932
Hardware name: Quanta Tioga Pass Single Side 01-0030993006/Tioga Pass Single Side, BIOS F08_3A18 12/20/2018
Call Trace:
dump_stack+0x78/0xa0
check_noncircular+0x165/0x180
__lock_acquire+0x1272/0x2310
lock_acquire+0x9e/0x360
? alloc_workqueue+0x378/0x450
cpus_read_lock+0x39/0xb0
? alloc_workqueue+0x378/0x450
alloc_workqueue+0x378/0x450
? rcu_read_lock_sched_held+0x52/0x80
__btrfs_alloc_workqueue+0x15d/0x200
btrfs_alloc_workqueue+0x51/0x160
scrub_workers_get+0x5a/0x170
btrfs_scrub_dev+0x18c/0x630
? start_transaction+0xd1/0x5d0
btrfs_dev_replace_by_ioctl.cold.21+0x10a/0x1d4
btrfs_ioctl+0x2799/0x30a0
? do_sigaction+0x102/0x250
? lockdep_hardirqs_on_prepare+0xca/0x160
? _raw_spin_unlock_irq+0x24/0x30
? trace_hardirqs_on+0x1c/0xe0
? _raw_spin_unlock_irq+0x24/0x30
? do_sigaction+0x102/0x250
? ksys_ioctl+0x83/0xc0
ksys_ioctl+0x83/0xc0
__x64_sys_ioctl+0x16/0x20
do_syscall_64+0x50/0x90
entry_SYSCALL_64_after_hwframe+0x44/0xa9
This happens because we're allocating the scrub workqueues under the
scrub and device list mutex, which brings in a whole host of other
dependencies.
Because the work queue allocation is done with GFP_KERNEL, it can
trigger reclaim, which can lead to a transaction commit, which in turns
needs the device_list_mutex, it can lead to a deadlock. A different
problem for which this fix is a solution.
Fix this by moving the actual allocation outside of the
scrub lock, and then only take the lock once we're ready to actually
assign them to the fs_info. We'll now have to cleanup the workqueues in
a few more places, so I've added a helper to do the refcount dance to
safely free the workqueues.
CC: stable@vger.kernel.org # 5.4+
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/btrfs/scrub.c | 122 +++++++++++++++++++++++++++++++------------------------
1 file changed, 70 insertions(+), 52 deletions(-)
--- a/fs/btrfs/scrub.c
+++ b/fs/btrfs/scrub.c
@@ -3742,50 +3742,84 @@ static noinline_for_stack int scrub_supe
return 0;
}
+static void scrub_workers_put(struct btrfs_fs_info *fs_info)
+{
+ if (refcount_dec_and_mutex_lock(&fs_info->scrub_workers_refcnt,
+ &fs_info->scrub_lock)) {
+ struct btrfs_workqueue *scrub_workers = NULL;
+ struct btrfs_workqueue *scrub_wr_comp = NULL;
+ struct btrfs_workqueue *scrub_parity = NULL;
+
+ scrub_workers = fs_info->scrub_workers;
+ scrub_wr_comp = fs_info->scrub_wr_completion_workers;
+ scrub_parity = fs_info->scrub_parity_workers;
+
+ fs_info->scrub_workers = NULL;
+ fs_info->scrub_wr_completion_workers = NULL;
+ fs_info->scrub_parity_workers = NULL;
+ mutex_unlock(&fs_info->scrub_lock);
+
+ btrfs_destroy_workqueue(scrub_workers);
+ btrfs_destroy_workqueue(scrub_wr_comp);
+ btrfs_destroy_workqueue(scrub_parity);
+ }
+}
+
/*
* get a reference count on fs_info->scrub_workers. start worker if necessary
*/
static noinline_for_stack int scrub_workers_get(struct btrfs_fs_info *fs_info,
int is_dev_replace)
{
+ struct btrfs_workqueue *scrub_workers = NULL;
+ struct btrfs_workqueue *scrub_wr_comp = NULL;
+ struct btrfs_workqueue *scrub_parity = NULL;
unsigned int flags = WQ_FREEZABLE | WQ_UNBOUND;
int max_active = fs_info->thread_pool_size;
+ int ret = -ENOMEM;
- lockdep_assert_held(&fs_info->scrub_lock);
+ if (refcount_inc_not_zero(&fs_info->scrub_workers_refcnt))
+ return 0;
- if (refcount_read(&fs_info->scrub_workers_refcnt) == 0) {
- ASSERT(fs_info->scrub_workers == NULL);
- fs_info->scrub_workers = btrfs_alloc_workqueue(fs_info, "scrub",
- flags, is_dev_replace ? 1 : max_active, 4);
- if (!fs_info->scrub_workers)
- goto fail_scrub_workers;
-
- ASSERT(fs_info->scrub_wr_completion_workers == NULL);
- fs_info->scrub_wr_completion_workers =
- btrfs_alloc_workqueue(fs_info, "scrubwrc", flags,
- max_active, 2);
- if (!fs_info->scrub_wr_completion_workers)
- goto fail_scrub_wr_completion_workers;
+ scrub_workers = btrfs_alloc_workqueue(fs_info, "scrub", flags,
+ is_dev_replace ? 1 : max_active, 4);
+ if (!scrub_workers)
+ goto fail_scrub_workers;
- ASSERT(fs_info->scrub_parity_workers == NULL);
- fs_info->scrub_parity_workers =
- btrfs_alloc_workqueue(fs_info, "scrubparity", flags,
+ scrub_wr_comp = btrfs_alloc_workqueue(fs_info, "scrubwrc", flags,
max_active, 2);
- if (!fs_info->scrub_parity_workers)
- goto fail_scrub_parity_workers;
+ if (!scrub_wr_comp)
+ goto fail_scrub_wr_completion_workers;
+ scrub_parity = btrfs_alloc_workqueue(fs_info, "scrubparity", flags,
+ max_active, 2);
+ if (!scrub_parity)
+ goto fail_scrub_parity_workers;
+
+ mutex_lock(&fs_info->scrub_lock);
+ if (refcount_read(&fs_info->scrub_workers_refcnt) == 0) {
+ ASSERT(fs_info->scrub_workers == NULL &&
+ fs_info->scrub_wr_completion_workers == NULL &&
+ fs_info->scrub_parity_workers == NULL);
+ fs_info->scrub_workers = scrub_workers;
+ fs_info->scrub_wr_completion_workers = scrub_wr_comp;
+ fs_info->scrub_parity_workers = scrub_parity;
refcount_set(&fs_info->scrub_workers_refcnt, 1);
- } else {
- refcount_inc(&fs_info->scrub_workers_refcnt);
+ mutex_unlock(&fs_info->scrub_lock);
+ return 0;
}
- return 0;
+ /* Other thread raced in and created the workers for us */
+ refcount_inc(&fs_info->scrub_workers_refcnt);
+ mutex_unlock(&fs_info->scrub_lock);
+ ret = 0;
+ btrfs_destroy_workqueue(scrub_parity);
fail_scrub_parity_workers:
- btrfs_destroy_workqueue(fs_info->scrub_wr_completion_workers);
+ btrfs_destroy_workqueue(scrub_wr_comp);
fail_scrub_wr_completion_workers:
- btrfs_destroy_workqueue(fs_info->scrub_workers);
+ btrfs_destroy_workqueue(scrub_workers);
fail_scrub_workers:
- return -ENOMEM;
+ return ret;
}
int btrfs_scrub_dev(struct btrfs_fs_info *fs_info, u64 devid, u64 start,
@@ -3796,9 +3830,6 @@ int btrfs_scrub_dev(struct btrfs_fs_info
int ret;
struct btrfs_device *dev;
unsigned int nofs_flag;
- struct btrfs_workqueue *scrub_workers = NULL;
- struct btrfs_workqueue *scrub_wr_comp = NULL;
- struct btrfs_workqueue *scrub_parity = NULL;
if (btrfs_fs_closing(fs_info))
return -EAGAIN;
@@ -3845,13 +3876,17 @@ int btrfs_scrub_dev(struct btrfs_fs_info
if (IS_ERR(sctx))
return PTR_ERR(sctx);
+ ret = scrub_workers_get(fs_info, is_dev_replace);
+ if (ret)
+ goto out_free_ctx;
+
mutex_lock(&fs_info->fs_devices->device_list_mutex);
dev = btrfs_find_device(fs_info->fs_devices, devid, NULL, NULL, true);
if (!dev || (test_bit(BTRFS_DEV_STATE_MISSING, &dev->dev_state) &&
!is_dev_replace)) {
mutex_unlock(&fs_info->fs_devices->device_list_mutex);
ret = -ENODEV;
- goto out_free_ctx;
+ goto out;
}
if (!is_dev_replace && !readonly &&
@@ -3860,7 +3895,7 @@ int btrfs_scrub_dev(struct btrfs_fs_info
btrfs_err_in_rcu(fs_info, "scrub: device %s is not writable",
rcu_str_deref(dev->name));
ret = -EROFS;
- goto out_free_ctx;
+ goto out;
}
mutex_lock(&fs_info->scrub_lock);
@@ -3869,7 +3904,7 @@ int btrfs_scrub_dev(struct btrfs_fs_info
mutex_unlock(&fs_info->scrub_lock);
mutex_unlock(&fs_info->fs_devices->device_list_mutex);
ret = -EIO;
- goto out_free_ctx;
+ goto out;
}
down_read(&fs_info->dev_replace.rwsem);
@@ -3880,17 +3915,10 @@ int btrfs_scrub_dev(struct btrfs_fs_info
mutex_unlock(&fs_info->scrub_lock);
mutex_unlock(&fs_info->fs_devices->device_list_mutex);
ret = -EINPROGRESS;
- goto out_free_ctx;
+ goto out;
}
up_read(&fs_info->dev_replace.rwsem);
- ret = scrub_workers_get(fs_info, is_dev_replace);
- if (ret) {
- mutex_unlock(&fs_info->scrub_lock);
- mutex_unlock(&fs_info->fs_devices->device_list_mutex);
- goto out_free_ctx;
- }
-
sctx->readonly = readonly;
dev->scrub_ctx = sctx;
mutex_unlock(&fs_info->fs_devices->device_list_mutex);
@@ -3943,24 +3971,14 @@ int btrfs_scrub_dev(struct btrfs_fs_info
mutex_lock(&fs_info->scrub_lock);
dev->scrub_ctx = NULL;
- if (refcount_dec_and_test(&fs_info->scrub_workers_refcnt)) {
- scrub_workers = fs_info->scrub_workers;
- scrub_wr_comp = fs_info->scrub_wr_completion_workers;
- scrub_parity = fs_info->scrub_parity_workers;
-
- fs_info->scrub_workers = NULL;
- fs_info->scrub_wr_completion_workers = NULL;
- fs_info->scrub_parity_workers = NULL;
- }
mutex_unlock(&fs_info->scrub_lock);
- btrfs_destroy_workqueue(scrub_workers);
- btrfs_destroy_workqueue(scrub_wr_comp);
- btrfs_destroy_workqueue(scrub_parity);
+ scrub_workers_put(fs_info);
scrub_put_ctx(sctx);
return ret;
-
+out:
+ scrub_workers_put(fs_info);
out_free_ctx:
scrub_free_ctx(sctx);
next prev parent reply other threads:[~2020-09-08 19:10 UTC|newest]
Thread overview: 138+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-08 15:24 [PATCH 5.4 000/129] 5.4.64-rc1 review Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 001/129] HID: quirks: Always poll three more Lenovo PixArt mice Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 002/129] drm/msm/dpu: Fix scale params in plane validation Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 003/129] tty: serial: qcom_geni_serial: Drop __init from qcom_geni_console_setup Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 004/129] drm/msm: add shutdown support for display platform_driver Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 005/129] hwmon: (applesmc) check status earlier Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 006/129] nvmet: Disable keep-alive timer when kato is cleared to 0h Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 007/129] drm/msm: enable vblank during atomic commits Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 008/129] habanalabs: validate FW file size Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 009/129] habanalabs: check correct vmalloc return code Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 010/129] drm/msm/a6xx: fix gmu start on newer firmware Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 011/129] ceph: dont allow setlease on cephfs Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 012/129] drm/omap: fix incorrect lock state Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 013/129] cpuidle: Fixup IRQ state Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 014/129] nbd: restore default timeout when setting it to zero Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 015/129] s390: dont trace preemption in percpu macros Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 016/129] drm/amd/display: Reject overlay plane configurations in multi-display scenarios Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 017/129] drivers: gpu: amd: Initialize amdgpu_dm_backlight_caps object to 0 in amdgpu_dm_update_backlight_caps Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 018/129] drm/amd/display: Retry AUX write when fail occurs Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 019/129] drm/amd/display: Fix memleak in amdgpu_dm_mode_config_init Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 020/129] xen/xenbus: Fix granting of vmallocd memory Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 021/129] fsldma: fix very broken 32-bit ppc ioread64 functionality Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 022/129] dmaengine: of-dma: Fix of_dma_router_xlates of_dma_xlate handling Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 023/129] batman-adv: Avoid uninitialized chaddr when handling DHCP Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 024/129] batman-adv: Fix own OGM check in aggregated OGMs Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 025/129] batman-adv: bla: use netif_rx_ni when not in interrupt context Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 026/129] dmaengine: at_hdmac: check return value of of_find_device_by_node() in at_dma_xlate() Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 027/129] rxrpc: Keep the ACK serial in a var in rxrpc_input_ack() Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 028/129] rxrpc: Make rxrpc_kernel_get_srtt() indicate validity Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 029/129] MIPS: mm: BMIPS5000 has inclusive physical caches Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 030/129] MIPS: BMIPS: Also call bmips_cpu_setup() for secondary cores Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 031/129] mmc: sdhci-acpi: Fix HS400 tuning for AMDI0040 Greg Kroah-Hartman
[not found] ` <CAHQZ30B5JzOwUhiyLsbbYpFJdWQeH6vR3Ze-Gtr5-BCnw1AVBw@mail.gmail.com>
2020-09-08 17:35 ` Greg Kroah-Hartman
2020-09-08 19:54 ` Raul Rangel
2020-09-08 15:24 ` [PATCH 5.4 032/129] netfilter: nf_tables: add NFTA_SET_USERDATA if not null Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 033/129] netfilter: nf_tables: incorrect enum nft_list_attributes definition Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 034/129] netfilter: nf_tables: fix destination register zeroing Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 035/129] net: hns: Fix memleak in hns_nic_dev_probe Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 036/129] net: systemport: Fix memleak in bcm_sysport_probe Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 037/129] ravb: Fixed to be able to unload modules Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 038/129] net: arc_emac: Fix memleak in arc_mdio_probe Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 039/129] dmaengine: pl330: Fix burst length if burst size is smaller than bus width Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 040/129] gtp: add GTPA_LINK info to msg sent to userspace Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 041/129] net: ethernet: ti: cpsw: fix clean up of vlan mc entries for host port Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 042/129] bnxt_en: Dont query FW when netif_running() is false Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 043/129] bnxt_en: Check for zero dir entries in NVRAM Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 044/129] bnxt_en: Fix PCI AER error recovery flow Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 045/129] bnxt_en: Fix possible crash in bnxt_fw_reset_task() Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 046/129] bnxt_en: fix HWRM error when querying VF temperature Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 047/129] xfs: fix boundary test in xfs_attr_shortform_verify Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 048/129] bnxt: dont enable NAPI until rings are ready Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 049/129] media: vicodec: add missing v4l2_ctrl_request_hdl_put() Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 050/129] media: cedrus: Add " Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 051/129] selftests/bpf: Fix massive output from test_maps Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 052/129] net: dsa: mt7530: fix advertising unsupported 1000baseT_Half Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 053/129] netfilter: nfnetlink: nfnetlink_unicast() reports EAGAIN instead of ENOBUFS Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 054/129] nvmet-fc: Fix a missed _irqsave version of spin_lock in nvmet_fc_fod_op_done() Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 055/129] nvme: fix controller instance leak Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 056/129] cxgb4: fix thermal zone device registration Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 057/129] perf tools: Correct SNOOPX field offset Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.4 058/129] net: ethernet: mlx4: Fix memory allocation in mlx4_buddy_init() Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 059/129] fix regression in "epoll: Keep a reference on files added to the check list" Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 060/129] net: gemini: Fix another missing clk_disable_unprepare() in probe Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 061/129] drm/radeon: Prefer lower feedback dividers Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 062/129] MIPS: add missing MSACSR and upper MSA initialization Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 063/129] xfs: fix xfs_bmap_validate_extent_raw when checking attr fork of rt files Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 064/129] perf jevents: Fix suspicious code in fixregex() Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 065/129] tg3: Fix soft lockup when tg3_reset_task() fails Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 066/129] x86, fakenuma: Fix invalid starting node ID Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 067/129] iommu/vt-d: Serialize IOMMU GCMD register modifications Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 068/129] thermal: ti-soc-thermal: Fix bogus thermal shutdowns for omap4430 Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 069/129] thermal: qcom-spmi-temp-alarm: Dont suppress negative temp Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 070/129] iommu/amd: Restore IRTE.RemapEn bit after programming IRTE Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 071/129] net/packet: fix overflow in tpacket_rcv Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 072/129] include/linux/log2.h: add missing () around n in roundup_pow_of_two() Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 073/129] vfio/type1: Support faulting PFNMAP vmas Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 074/129] vfio-pci: Fault mmaps to enable vma tracking Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 075/129] vfio-pci: Invalidate mmaps and block MMIO access on disabled memory Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 076/129] iommu/vt-d: Handle 36bit addressing for x86-32 Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 077/129] tracing/kprobes, x86/ptrace: Fix regs argument order for i386 Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 078/129] ext2: dont update mtime on COW faults Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 079/129] xfs: " Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 080/129] ARC: perf: dont bail setup if pct irq missing in device-tree Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 081/129] btrfs: drop path before adding new uuid tree entry Greg Kroah-Hartman
2020-09-08 15:25 ` Greg Kroah-Hartman [this message]
2020-09-08 15:25 ` [PATCH 5.4 083/129] btrfs: set the correct lockdep class for new nodes Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 084/129] btrfs: set the lockdep class for log tree extent buffers Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 085/129] btrfs: tree-checker: fix the error message for transid error Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 086/129] net: core: use listified Rx for GRO_NORMAL in napi_gro_receive() Greg Kroah-Hartman
2020-09-08 21:35 ` Edward Cree
2020-09-09 6:37 ` Greg Kroah-Hartman
[not found] ` <CGME20200909063710epcas2p340688acd14fad9e0fe53a66d06fd14a7@epcms2p4>
[not found] ` <20200909072101epcms2p457639b69a22434d140c01aeecd3ef46e@epcms2p4>
2020-09-09 8:50 ` Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 087/129] btrfs: fix potential deadlock in the search ioctl Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 088/129] Revert "net: dsa: microchip: set the correct number of ports" Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 089/129] Revert "ALSA: hda: Add support for Loongson 7A1000 controller" Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 090/129] ALSA: ca0106: fix error code handling Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 091/129] ALSA: usb-audio: Add implicit feedback quirk for UR22C Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 092/129] ALSA: pcm: oss: Remove superfluous WARN_ON() for mulaw sanity check Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 093/129] ALSA: hda/hdmi: always check pin power status in i915 pin fixup Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 094/129] ALSA: firewire-digi00x: exclude Avid Adrenaline from detection Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 095/129] ALSA: hda - Fix silent audio output and corrupted input on MSI X570-A PRO Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 096/129] ALSA; firewire-tascam: exclude Tascam FE-8 from detection Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 097/129] ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion NT950XCJ-X716A Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 098/129] ALSA: hda/realtek - Improved routing for Thinkpad X1 7th/8th Gen Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 099/129] arm64: dts: mt7622: add reset node for mmc device Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 100/129] mmc: mediatek: add optional module reset property Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 101/129] mmc: dt-bindings: Add resets/reset-names for Mediatek MMC bindings Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 102/129] mmc: cqhci: Add cqhci_deactivate() Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 103/129] mmc: sdhci-pci: Fix SDHCI_RESET_ALL for CQHCI for Intel GLK-based controllers Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 104/129] media: rc: do not access device via sysfs after rc_unregister_device() Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 105/129] media: rc: uevent sysfs file races with rc_unregister_device() Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 106/129] affs: fix basic permission bits to actually work Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 107/129] block: allow for_each_bvec to support zero len bvec Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 108/129] block: ensure bdi->io_pages is always initialized Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 109/129] libata: implement ATA_HORKAGE_MAX_TRIM_128M and apply to Sandisks Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 110/129] blk-iocost: ioc_pd_free() shouldnt assume irq disabled Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 111/129] dmaengine: dw-edma: Fix scatter-gather address calculation Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 112/129] drm/amd/pm: avoid false alarm due to confusing softwareshutdowntemp setting Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 113/129] dm writecache: handle DAX to partitions on persistent memory correctly Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 114/129] dm mpath: fix racey management of PG initialization Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 115/129] dm integrity: fix error reporting in bitmap mode after creation Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 116/129] dm crypt: Initialize crypto wait structures Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 117/129] dm cache metadata: Avoid returning cmd->bm wild pointer on error Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.4 118/129] dm thin " Greg Kroah-Hartman
2020-09-08 15:26 ` [PATCH 5.4 119/129] dm thin metadata: Fix use-after-free in dm_bm_set_read_only Greg Kroah-Hartman
2020-09-08 15:26 ` [PATCH 5.4 120/129] mm: slub: fix conversion of freelist_corrupted() Greg Kroah-Hartman
2020-09-08 15:26 ` [PATCH 5.4 121/129] mm: madvise: fix vma user-after-free Greg Kroah-Hartman
2020-09-08 15:26 ` [PATCH 5.4 122/129] vfio/pci: Fix SR-IOV VF handling with MMIO blocking Greg Kroah-Hartman
2020-09-08 15:26 ` [PATCH 5.4 123/129] perf record: Correct the help info of option "--no-bpf-event" Greg Kroah-Hartman
2020-09-08 15:26 ` [PATCH 5.4 124/129] sdhci: tegra: Add missing TMCLK for data timeout Greg Kroah-Hartman
2020-09-08 15:26 ` [PATCH 5.4 125/129] checkpatch: fix the usage of capture group ( ... ) Greg Kroah-Hartman
2020-09-08 15:26 ` [PATCH 5.4 126/129] mm/hugetlb: fix a race between hugetlb sysctl handlers Greg Kroah-Hartman
2020-09-08 15:26 ` [PATCH 5.4 127/129] mm/khugepaged.c: fix khugepageds request size in collapse_file Greg Kroah-Hartman
2020-09-08 15:26 ` [PATCH 5.4 128/129] cfg80211: regulatory: reject invalid hints Greg Kroah-Hartman
2020-09-08 15:26 ` [PATCH 5.4 129/129] net: usb: Fix uninit-was-stored issue in asix_read_phy_addr() Greg Kroah-Hartman
2020-09-09 1:41 ` [PATCH 5.4 000/129] 5.4.64-rc1 review Shuah Khan
2020-09-09 5:49 ` Naresh Kamboju
2020-09-09 16:40 ` Guenter Roeck
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=20200908152233.793191583@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=dsterba@suse.com \
--cc=fdmanana@suse.com \
--cc=josef@toxicpanda.com \
--cc=linux-kernel@vger.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
Powered by JetHome