linux-kernel.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, Filipe Manana <fdmanana@suse.com>,
	Josef Bacik <josef@toxicpanda.com>,
	David Sterba <dsterba@suse.com>
Subject: [PATCH 5.8 127/186] btrfs: allocate scrub workqueues outside of locks
Date: Tue,  8 Sep 2020 17:24:29 +0200	[thread overview]
Message-ID: <20200908152247.791287315@linuxfoundation.org> (raw)
In-Reply-To: <20200908152241.646390211@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
@@ -3783,50 +3783,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,
@@ -3837,9 +3871,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;
@@ -3886,13 +3917,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 &&
@@ -3901,7 +3936,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);
@@ -3910,7 +3945,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);
@@ -3921,17 +3956,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);
@@ -3984,24 +4012,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);
 



  parent reply	other threads:[~2020-09-08 19:24 UTC|newest]

Thread overview: 198+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-08 15:22 [PATCH 5.8 000/186] 5.8.8-rc1 review Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 001/186] hwmon: (pmbus/isl68137) remove READ_TEMPERATURE_1 telemetry for RAA228228 Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 002/186] HID: quirks: Always poll three more Lenovo PixArt mice Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 003/186] drm/msm/dpu: Fix reservation failures in modeset Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 004/186] drm/msm/dpu: Fix scale params in plane validation Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 005/186] drm/msm/dpu: fix unitialized variable error Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 006/186] tty: serial: qcom_geni_serial: Drop __init from qcom_geni_console_setup Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 007/186] drm/msm: add shutdown support for display platform_driver Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 008/186] hwmon: (applesmc) check status earlier Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 009/186] nvmet: Disable keep-alive timer when kato is cleared to 0h Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 010/186] drm/msm: enable vblank during atomic commits Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 011/186] habanalabs: unmap PCI bars upon iATU failure Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 012/186] habanalabs: validate packet id during CB parse Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 013/186] habanalabs: set clock gating according to mask Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 014/186] habanalabs: proper handling of alloc size in coresight Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 015/186] habanalabs: set max power according to card type Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 016/186] habanalabs: validate FW file size Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 017/186] habanalabs: check correct vmalloc return code Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 018/186] drm/msm/a6xx: fix gmu start on newer firmware Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 019/186] gfs2: add some much needed cleanup for log flushes that fail Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 020/186] hv_utils: return error if host timesysnc update is stale Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 021/186] hv_utils: drain the timesync packets on onchannelcallback Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 022/186] ceph: dont allow setlease on cephfs Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 023/186] i2c: iproc: Fix shifting 31 bits Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 024/186] drm/omap: fix incorrect lock state Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 025/186] irqchip/ingenic: Leave parent IRQ unmasked on suspend Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 026/186] cpuidle: Fixup IRQ state Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 027/186] nbd: restore default timeout when setting it to zero Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 028/186] s390: dont trace preemption in percpu macros Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 029/186] drm/amd/display: should check error using DC_OK Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 030/186] drm/amd/display: Reject overlay plane configurations in multi-display scenarios Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 031/186] drivers: gpu: amd: Initialize amdgpu_dm_backlight_caps object to 0 in amdgpu_dm_update_backlight_caps Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 032/186] drm/amd/display: Revert HDCP disable sequence change Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 033/186] drm/amd/display: Fix passive dongle mistaken as active dongle in EDID emulation Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 034/186] drm/amd/display: Keep current gain when ABM disable immediately Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 035/186] drm/amd/display: Retry AUX write when fail occurs Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 036/186] drm/amd/display: Fix memleak in amdgpu_dm_mode_config_init Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 037/186] xen/xenbus: Fix granting of vmallocd memory Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 038/186] fsldma: fix very broken 32-bit ppc ioread64 functionality Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 039/186] dmaengine: of-dma: Fix of_dma_router_xlates of_dma_xlate handling Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 040/186] batman-adv: Avoid uninitialized chaddr when handling DHCP Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 041/186] batman-adv: Fix own OGM check in aggregated OGMs Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 042/186] batman-adv: bla: use netif_rx_ni when not in interrupt context Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 043/186] dmaengine: at_hdmac: check return value of of_find_device_by_node() in at_dma_xlate() Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 044/186] dmaengine: at_hdmac: add missing put_device() call " Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 045/186] dmaengine: at_hdmac: add missing kfree() " Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 046/186] rxrpc: Keep the ACK serial in a var in rxrpc_input_ack() Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 047/186] rxrpc: Fix loss of RTT samples due to interposed ACK Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 048/186] rxrpc: Make rxrpc_kernel_get_srtt() indicate validity Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 049/186] MIPS: mm: BMIPS5000 has inclusive physical caches Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 050/186] MIPS: BMIPS: Also call bmips_cpu_setup() for secondary cores Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 051/186] mmc: sdhci-acpi: Fix HS400 tuning for AMDI0040 Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 052/186] perf sched timehist: Fix use of CPU list with summary option Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 053/186] perf top: Skip side-band event setup if HAVE_LIBBPF_SUPPORT is not set Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 054/186] netfilter: nf_tables: add NFTA_SET_USERDATA if not null Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 055/186] netfilter: nf_tables: incorrect enum nft_list_attributes definition Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 056/186] netfilter: nf_tables: fix destination register zeroing Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 057/186] net: hns: Fix memleak in hns_nic_dev_probe Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 058/186] net: systemport: Fix memleak in bcm_sysport_probe Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 059/186] ravb: Fixed to be able to unload modules Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 060/186] net: arc_emac: Fix memleak in arc_mdio_probe Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 061/186] bpf: Fix a buffer out-of-bound access when filling raw_tp link_info Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 062/186] dmaengine: pl330: Fix burst length if burst size is smaller than bus width Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 063/186] dmaengine: ti: k3-udma: Fix the TR initialization for prep_slave_sg Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 064/186] gtp: add GTPA_LINK info to msg sent to userspace Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 065/186] net: ethernet: ti: cpsw: fix clean up of vlan mc entries for host port Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 066/186] net: ethernet: ti: cpsw_new: " Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 067/186] bnxt_en: Dont query FW when netif_running() is false Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 068/186] bnxt_en: Check for zero dir entries in NVRAM Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 069/186] bnxt_en: Fix ethtool -S statitics with XDP or TCs enabled Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 070/186] bnxt_en: Fix PCI AER error recovery flow Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 071/186] bnxt_en: Fix possible crash in bnxt_fw_reset_task() Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 072/186] bnxt_en: fix HWRM error when querying VF temperature Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 073/186] xfs: finish dfops on every insert range shift iteration Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 074/186] xfs: fix boundary test in xfs_attr_shortform_verify Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 075/186] bnxt: dont enable NAPI until rings are ready Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 076/186] media: vicodec: add missing v4l2_ctrl_request_hdl_put() Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 077/186] media: cedrus: Add " Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 078/186] net: ethernet: ti: cpsw_new: fix error handling in cpsw_ndo_vlan_rx_kill_vid() Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 079/186] media: i2c: imx214: select V4L2_FWNODE Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 080/186] selftests/bpf: Fix massive output from test_maps Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 081/186] net: dsa: mt7530: fix advertising unsupported 1000baseT_Half Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 082/186] netfilter: nfnetlink: nfnetlink_unicast() reports EAGAIN instead of ENOBUFS Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 083/186] nvmet-fc: Fix a missed _irqsave version of spin_lock in nvmet_fc_fod_op_done() Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 084/186] nvme: fix controller instance leak Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 085/186] netfilter: conntrack: do not auto-delete clash entries on reply Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 086/186] opp: Dont drop reference for an OPP table that was never parsed Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 087/186] cxgb4: fix thermal zone device registration Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 088/186] net: ethernet: ti: am65-cpsw: fix rmii 100Mbit link mode Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 089/186] MIPS: perf: Fix wrong check condition of Loongson event IDs Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 090/186] block: fix locking in bdev_del_partition Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 091/186] perf top/report: Fix infinite loop in the TUI for grouped events Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 092/186] perf cs-etm: Fix corrupt data after perf inject from Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 093/186] perf intel-pt: " Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 094/186] perf tools: Correct SNOOPX field offset Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 095/186] net: ethernet: mlx4: Fix memory allocation in mlx4_buddy_init() Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 096/186] fix regression in "epoll: Keep a reference on files added to the check list" Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 097/186] net: bcmgenet: fix mask check in bcmgenet_validate_flow() Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 098/186] net: gemini: Fix another missing clk_disable_unprepare() in probe Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 099/186] nfp: flower: fix ABI mismatch between driver and firmware Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 100/186] net: dp83867: Fix WoL SecureOn password Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 101/186] drm/radeon: Prefer lower feedback dividers Greg Kroah-Hartman
2020-09-09 11:15   ` Christian König
2020-09-09 11:24     ` Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 102/186] MIPS: add missing MSACSR and upper MSA initialization Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 103/186] MIPS: SNI: Fix SCSI interrupt Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 104/186] xfs: fix xfs_bmap_validate_extent_raw when checking attr fork of rt files Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 105/186] perf jevents: Fix suspicious code in fixregex() Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 106/186] perf stat: Turn off summary for interval mode by default Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 107/186] perf bench: The do_run_multi_threaded() function must use IS_ERR(perf_session__new()) Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 108/186] tg3: Fix soft lockup when tg3_reset_task() fails Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 109/186] x86, fakenuma: Fix invalid starting node ID Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 110/186] iommu/vt-d: Serialize IOMMU GCMD register modifications Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 111/186] thermal: ti-soc-thermal: Fix bogus thermal shutdowns for omap4430 Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 112/186] thermal: qcom-spmi-temp-alarm: Dont suppress negative temp Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 113/186] iommu/amd: Restore IRTE.RemapEn bit after programming IRTE Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 114/186] iommu/amd: Use cmpxchg_double() when updating 128-bit IRTE Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 115/186] net/packet: fix overflow in tpacket_rcv Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 116/186] include/linux/log2.h: add missing () around n in roundup_pow_of_two() Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 117/186] iommu/vt-d: Handle 36bit addressing for x86-32 Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 118/186] tracing/kprobes, x86/ptrace: Fix regs argument order for i386 Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 119/186] x86/entry: Fix AC assertion Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 120/186] x86/debug: Allow a single level of #DB recursion Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 121/186] ext2: dont update mtime on COW faults Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 122/186] xfs: " Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 123/186] ARC: perf: dont bail setup if pct irq missing in device-tree Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 124/186] arc: fix memory initialization for systems with two memory banks Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 125/186] btrfs: drop path before adding new uuid tree entry Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 126/186] btrfs: fix potential deadlock in the search ioctl Greg Kroah-Hartman
2020-09-08 15:24 ` Greg Kroah-Hartman [this message]
2020-09-08 15:24 ` [PATCH 5.8 128/186] btrfs: set the correct lockdep class for new nodes Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 129/186] btrfs: set the lockdep class for log tree extent buffers Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 130/186] btrfs: block-group: fix free-space bitmap threshold Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 131/186] btrfs: tree-checker: fix the error message for transid error Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 132/186] Bluetooth: Return NOTIFY_DONE for hci_suspend_notifier Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 133/186] x86/mm/32: Bring back vmalloc faulting on x86_32 Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 134/186] Revert "ALSA: hda: Add support for Loongson 7A1000 controller" Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 135/186] ALSA: ca0106: fix error code handling Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 136/186] ALSA: usb-audio: Add basic capture support for Pioneer DJ DJM-250MK2 Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 137/186] ALSA: usb-audio: Add implicit feedback quirk for UR22C Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 138/186] ALSA: pcm: oss: Remove superfluous WARN_ON() for mulaw sanity check Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 139/186] ALSA: hda/hdmi: always check pin power status in i915 pin fixup Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 140/186] ALSA: firewire-digi00x: exclude Avid Adrenaline from detection Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 141/186] ALSA: hda - Fix silent audio output and corrupted input on MSI X570-A PRO Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 142/186] ALSA; firewire-tascam: exclude Tascam FE-8 from detection Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 143/186] ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion NT950XCJ-X716A Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 144/186] ALSA: hda/realtek - Improved routing for Thinkpad X1 7th/8th Gen Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 145/186] arm64: dts: mt7622: add reset node for mmc device Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 146/186] mmc: mediatek: add optional module reset property Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 147/186] mmc: dt-bindings: Add resets/reset-names for Mediatek MMC bindings Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 148/186] mmc: sdhci-pci: Fix SDHCI_RESET_ALL for CQHCI for Intel GLK-based controllers Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 149/186] media: rc: do not access device via sysfs after rc_unregister_device() Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 150/186] media: rc: uevent sysfs file races with rc_unregister_device() Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 151/186] affs: fix basic permission bits to actually work Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 152/186] block: allow for_each_bvec to support zero len bvec Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 153/186] block: ensure bdi->io_pages is always initialized Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 154/186] io_uring: set table->files[i] to NULL when io_sqe_file_register failed Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 155/186] io_uring: fix removing the wrong file in __io_sqe_files_update() Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 156/186] s390: fix GENERIC_LOCKBREAK dependency typo in Kconfig Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 157/186] libata: implement ATA_HORKAGE_MAX_TRIM_128M and apply to Sandisks Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 158/186] mips/oprofile: Fix fallthrough placement Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 159/186] blk-iocost: ioc_pd_free() shouldnt assume irq disabled Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 160/186] blk-stat: make q->stats->lock irqsafe Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 161/186] dmaengine: dw-edma: Fix scatter-gather address calculation Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 162/186] drm/i915: Fix sha_text population code Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 163/186] drm/amd/pm: avoid false alarm due to confusing softwareshutdowntemp setting Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 164/186] drm/amdgpu: Specify get_argument function for ci_smu_funcs Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 165/186] dm writecache: handle DAX to partitions on persistent memory correctly Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 166/186] dm mpath: fix racey management of PG initialization Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 167/186] dm integrity: fix error reporting in bitmap mode after creation Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 168/186] dm crypt: Initialize crypto wait structures Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 169/186] dm cache metadata: Avoid returning cmd->bm wild pointer on error Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 170/186] dm thin " Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 171/186] dm thin metadata: Fix use-after-free in dm_bm_set_read_only Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 172/186] mm: slub: fix conversion of freelist_corrupted() Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 173/186] mm: track page table modifications in __apply_to_page_range() Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 174/186] mm: madvise: fix vma user-after-free Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 175/186] mm/rmap: fixup copying of soft dirty and uffd ptes Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 176/186] io_uring: no read/write-retry on -EAGAIN error and O_NONBLOCK marked file Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 177/186] perf record: Correct the help info of option "--no-bpf-event" Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 178/186] kconfig: streamline_config.pl: check defined(ENV variable) before using it Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 179/186] sdhci: tegra: Add missing TMCLK for data timeout Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 180/186] checkpatch: fix the usage of capture group ( ... ) Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 181/186] mm/migrate: fixup setting UFFD_WP flag Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 182/186] mm/hugetlb: try preferred node first when alloc gigantic page from cma Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 183/186] mm/hugetlb: fix a race between hugetlb sysctl handlers Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 184/186] mm/khugepaged.c: fix khugepageds request size in collapse_file Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 185/186] cfg80211: regulatory: reject invalid hints Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 186/186] net: usb: Fix uninit-was-stored issue in asix_read_phy_addr() Greg Kroah-Hartman
2020-09-09  1:39 ` [PATCH 5.8 000/186] 5.8.8-rc1 review Shuah Khan
2020-09-09 18:00   ` Greg Kroah-Hartman
2020-09-09  5:48 ` Naresh Kamboju
2020-09-09 18:00   ` Greg Kroah-Hartman
2020-09-09 16:47 ` Guenter Roeck
2020-09-09 18:01   ` Greg Kroah-Hartman
2020-09-09 18:22     ` Guenter Roeck
2020-09-10  6:36       ` Geert Uytterhoeven
2020-09-10 13:47         ` 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=20200908152247.791287315@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;
as well as URLs for NNTP newsgroup(s).