stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Kai-Heng Feng <kai.heng.feng@canonical.com>,
	John Garry <john.garry@huawei.com>, Jens Axboe <axboe@kernel.dk>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 4.4 060/135] libata: Use per port sync for detach
Date: Mon, 29 Jun 2020 11:51:54 -0400	[thread overview]
Message-ID: <20200629155309.2495516-61-sashal@kernel.org> (raw)
In-Reply-To: <20200629155309.2495516-1-sashal@kernel.org>

From: Kai-Heng Feng <kai.heng.feng@canonical.com>

[ Upstream commit b5292111de9bb70cba3489075970889765302136 ]

Commit 130f4caf145c ("libata: Ensure ata_port probe has completed before
detach") may cause system freeze during suspend.

Using async_synchronize_full() in PM callbacks is wrong, since async
callbacks that are already scheduled may wait for not-yet-scheduled
callbacks, causes a circular dependency.

Instead of using big hammer like async_synchronize_full(), use async
cookie to make sure port probe are synced, without affecting other
scheduled PM callbacks.

Fixes: 130f4caf145c ("libata: Ensure ata_port probe has completed before detach")
Suggested-by: John Garry <john.garry@huawei.com>
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Tested-by: John Garry <john.garry@huawei.com>
BugLink: https://bugs.launchpad.net/bugs/1867983
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/ata/libata-core.c | 11 +++++------
 include/linux/libata.h    |  3 +++
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index fc4bf8ff40ead..17cebfe5acc82 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -56,7 +56,6 @@
 #include <linux/workqueue.h>
 #include <linux/scatterlist.h>
 #include <linux/io.h>
-#include <linux/async.h>
 #include <linux/log2.h>
 #include <linux/slab.h>
 #include <linux/glob.h>
@@ -6222,7 +6221,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
 	/* perform each probe asynchronously */
 	for (i = 0; i < host->n_ports; i++) {
 		struct ata_port *ap = host->ports[i];
-		async_schedule(async_port_probe, ap);
+		ap->cookie = async_schedule(async_port_probe, ap);
 	}
 
 	return 0;
@@ -6355,11 +6354,11 @@ void ata_host_detach(struct ata_host *host)
 {
 	int i;
 
-	/* Ensure ata_port probe has completed */
-	async_synchronize_full();
-
-	for (i = 0; i < host->n_ports; i++)
+	for (i = 0; i < host->n_ports; i++) {
+		/* Ensure ata_port probe has completed */
+		async_synchronize_cookie(host->ports[i]->cookie + 1);
 		ata_port_detach(host->ports[i]);
+	}
 
 	/* the host is dead now, dissociate ACPI */
 	ata_acpi_dissociate(host);
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 6428ac4746dee..af561d33221d6 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -38,6 +38,7 @@
 #include <linux/acpi.h>
 #include <linux/cdrom.h>
 #include <linux/sched.h>
+#include <linux/async.h>
 
 /*
  * Define if arch has non-standard setup.  This is a _PCI_ standard
@@ -872,6 +873,8 @@ struct ata_port {
 	struct timer_list	fastdrain_timer;
 	unsigned long		fastdrain_cnt;
 
+	async_cookie_t		cookie;
+
 	int			em_message_type;
 	void			*private_data;
 
-- 
2.25.1


  parent reply	other threads:[~2020-06-29 21:10 UTC|newest]

Thread overview: 140+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-29 15:50 [PATCH 4.4 000/135] 4.4.229-rc1 review Sasha Levin
2020-06-29 15:50 ` [PATCH 4.4 001/135] s390: fix syscall_get_error for compat processes Sasha Levin
2020-06-29 15:50 ` [PATCH 4.4 002/135] clk: sunxi: Fix incorrect usage of round_down() Sasha Levin
2020-06-29 15:50 ` [PATCH 4.4 003/135] i2c: piix4: Detect secondary SMBus controller on AMD AM4 chipsets Sasha Levin
2020-06-29 15:50 ` [PATCH 4.4 004/135] clk: qcom: msm8916: Fix the address location of pll->config_reg Sasha Levin
2020-06-29 15:50 ` [PATCH 4.4 005/135] ALSA: isa/wavefront: prevent out of bounds write in ioctl Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 006/135] scsi: qla2xxx: Fix issue with adapter's stopping state Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 007/135] i2c: pxa: clear all master action bits in i2c_pxa_stop_message() Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 008/135] usblp: poison URBs upon disconnect Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 009/135] ps3disk: use the default segment boundary Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 010/135] vfio/pci: fix memory leaks in alloc_perm_bits() Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 011/135] mfd: wm8994: Fix driver operation if loaded as modules Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 012/135] scsi: lpfc: Fix lpfc_nodelist leak when processing unsolicited event Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 013/135] nfsd: Fix svc_xprt refcnt leak when setup callback client failed Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 014/135] powerpc/crashkernel: Take "mem=" option into account Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 015/135] yam: fix possible memory leak in yam_init_driver Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 016/135] mksysmap: Fix the mismatch of '.L' symbols in System.map Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 017/135] scsi: sr: Fix sr_probe() missing deallocate of device minor Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 018/135] scsi: ibmvscsi: Don't send host info in adapter info MAD after LPM Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 019/135] ALSA: usb-audio: Improve frames size computation Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 020/135] s390/qdio: put thinint indicator after early error Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 021/135] tty: hvc: Fix data abort due to race in hvc_open Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 022/135] staging: sm750fb: add missing case while setting FB_VISUAL Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 023/135] i2c: pxa: fix i2c_pxa_scream_blue_murder() debug output Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 024/135] serial: amba-pl011: Make sure we initialize the port.lock spinlock Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 025/135] drivers: base: Fix NULL pointer exception in __platform_driver_probe() if a driver developer is foolish Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 026/135] PCI/ASPM: Allow ASPM on links to PCIe-to-PCI/PCI-X Bridges Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 027/135] power: supply: smb347-charger: IRQSTAT_D is volatile Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 028/135] scsi: mpt3sas: Fix double free warnings Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 029/135] dlm: remove BUG() before panic() Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 030/135] clk: ti: composite: fix memory leak Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 031/135] tty: n_gsm: Fix SOF skipping Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 032/135] tty: n_gsm: Fix waking up upper tty layer when room available Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 033/135] powerpc/pseries/ras: Fix FWNMI_VALID off by one Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 034/135] powerpc/ps3: Fix kexec shutdown hang Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 035/135] vfio-pci: Mask cap zero Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 036/135] usb/ohci-platform: Fix a warning when hibernating Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 037/135] USB: host: ehci-mxc: Add error handling in ehci_mxc_drv_probe() Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 038/135] tty: n_gsm: Fix bogus i++ in gsm_data_kick Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 039/135] clk: samsung: exynos5433: Add IGNORE_UNUSED flag to sclk_i2s1 Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 040/135] watchdog: da9062: No need to ping manually before setting timeout Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 041/135] usb: dwc2: gadget: move gadget resume after the core is in L0 state Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 042/135] USB: gadget: udc: s3c2410_udc: Remove pointless NULL check in s3c2410_udc_nuke Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 043/135] usb: gadget: lpc32xx_udc: don't dereference ep pointer before null check Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 044/135] usb: gadget: fix potential double-free in m66592_probe Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 045/135] net: sunrpc: Fix off-by-one issues in 'rpc_ntop6' Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 046/135] ASoC: fsl_asrc_dma: Fix dma_chan leak when config DMA channel failed Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 047/135] openrisc: Fix issue with argument clobbering for clone/fork Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 048/135] gfs2: Allow lock_nolock mount to specify jid=X Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 049/135] scsi: iscsi: Fix reference count leak in iscsi_boot_create_kobj Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 050/135] lib/zlib: remove outdated and incorrect pre-increment optimization Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 051/135] include/linux/bitops.h: avoid clang shift-count-overflow warnings Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 052/135] elfnote: mark all .note sections SHF_ALLOC Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 053/135] selftests/net: in timestamping, strncpy needs to preserve null byte Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 054/135] scsi: acornscsi: Fix an error handling path in acornscsi_probe() Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 055/135] usb/xhci-plat: Set PM runtime as active on resume Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 056/135] usb/ehci-platform: " Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 057/135] perf report: Fix NULL pointer dereference in hists__fprintf_nr_sample_events() Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 058/135] bcache: fix potential deadlock problem in btree_gc_coalesce Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 059/135] block: Fix use-after-free in blkdev_get() Sasha Levin
2020-06-29 15:51 ` Sasha Levin [this message]
2020-06-29 15:51 ` [PATCH 4.4 061/135] drm: encoder_slave: fix refcouting error for modules Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 062/135] drm/dp_mst: Reformat drm_dp_check_act_status() a bit Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 063/135] drm/qxl: Use correct notify port address when creating cursor ring Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 064/135] selinux: fix double free Sasha Levin
2020-06-29 15:51 ` [PATCH 4.4 065/135] ext4: fix partial cluster initialization when splitting extent Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 066/135] drm/dp_mst: Increase ACT retry timeout to 3s Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 067/135] sparc64: fix misuses of access_process_vm() in genregs32_[sg]et() Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 068/135] block: nr_sects_write(): Disable preemption on seqcount write Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 069/135] crypto: algboss - don't wait during notifier callback Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 070/135] kprobes: Fix to protect kick_kprobe_optimizer() by kprobe_mutex Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 071/135] powerpc/kprobes: Fixes for kprobe_lookup_name() on BE Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 072/135] x86/kprobes: Avoid kretprobe recursion bug Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 073/135] kretprobe: Prevent triggering kretprobe from within kprobe_flush_task Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 074/135] e1000e: Do not wake up the system via WOL if device wakeup is disabled Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 075/135] sched/rt, net: Use CONFIG_PREEMPTION.patch Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 076/135] net: core: device_rename: Use rwsem instead of a seqcount Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 077/135] net: Revert "pkt_sched: fq: use proper locking in fq_dump_stats()" Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 078/135] scsi: scsi_devinfo: handle non-terminated strings Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 079/135] l2tp: Allow duplicate session creation with UDP Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 080/135] net: sched: export __netdev_watchdog_up() Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 081/135] fix a braino in "sparc32: fix register window handling in genregs32_[gs]et()" Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 082/135] net: fix memleak in register_netdevice() Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 083/135] net: usb: ax88179_178a: fix packet alignment padding Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 084/135] tg3: driver sleeps indefinitely when EEH errors exceed eeh_max_freezes Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 085/135] ip_tunnel: fix use-after-free in ip_tunnel_lookup() Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 086/135] tcp_cubic: fix spurious HYSTART_DELAY exit upon drop in min RTT Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 087/135] ip6_gre: fix use-after-free in ip6gre_tunnel_lookup() Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 088/135] tcp: grow window for OOO packets only for SACK flows Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 089/135] sctp: Don't advertise IPv4 addresses if ipv6only is set on the socket Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 090/135] net: Fix the arp error in some cases Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 091/135] net: Do not clear the sock TX queue in sk_set_socket() Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 092/135] net: core: reduce recursion limit value Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 093/135] mld: fix memory leak in ipv6_mc_destroy_dev() Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 094/135] USB: ohci-sm501: Add missed iounmap() in remove Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 095/135] usb: dwc2: Postponed gadget registration to the udc class driver Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 096/135] usb: add USB_QUIRK_DELAY_INIT for Logitech C922 Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 097/135] PCI: Disable MSI for HiSilicon Hip06/Hip07 Root Ports Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 098/135] USB: ehci: reopen solution for Synopsys HC bug Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 099/135] usb: host: ehci-exynos: Fix error check in exynos_ehci_probe() Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 100/135] ALSA: usb-audio: add quirk for Denon DCD-1500RE Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 101/135] xhci: Fix incorrect EP_STATE_MASK Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 102/135] xhci: Fix enumeration issue when setting max packet size for FS devices Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 103/135] cdc-acm: Add DISABLE_ECHO quirk for Microchip/SMSC chip Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 104/135] ALSA: usb-audio: uac1: Invalidate ctl on interrupt Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 105/135] ALSA: usb-audio: allow clock source validity interrupts Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 106/135] ALSA: usb-audio: Clean up mixer element list traverse Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 107/135] ALSA: usb-audio: Fix OOB access of mixer element list Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 108/135] xhci: Poll for U0 after disabling USB2 LPM Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 109/135] cifs/smb3: Fix data inconsistent when punch hole Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 110/135] cifs/smb3: Fix data inconsistent when zero file range Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 111/135] efi/esrt: Fix reference count leak in esre_create_sysfs_entry Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 112/135] RDMA/mad: Fix possible memory leak in ib_mad_post_receive_mads() Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 113/135] ARM: imx5: add missing put_device() call in imx_suspend_alloc_ocram() Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 114/135] usb: gadget: udc: Potential Oops in error handling code Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 115/135] netfilter: ipset: fix unaligned atomic access Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 116/135] sched/core: Fix PI boosting between RT and DEADLINE tasks Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 117/135] net: alx: fix race condition in alx_remove Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 118/135] kbuild: improve cc-option to clean up all temporary files Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 119/135] blktrace: break out of blktrace setup on concurrent calls Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 120/135] ACPI: sysfs: Fix pm_profile_attr type Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 121/135] KVM: X86: Fix MSR range of APIC registers in X2APIC mode Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 122/135] mm/slab: use memzero_explicit() in kzfree() Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 123/135] ocfs2: load global_inode_alloc Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 124/135] ocfs2: fix value of OCFS2_INVALID_SLOT Sasha Levin
2020-06-29 15:52 ` [PATCH 4.4 125/135] ocfs2: fix panic on nfs server over ocfs2 Sasha Levin
2020-06-29 15:53 ` [PATCH 4.4 126/135] arm64: perf: Report the PC value in REGS_ABI_32 mode Sasha Levin
2020-06-29 15:53 ` [PATCH 4.4 127/135] tracing: Fix event trigger to accept redundant spaces Sasha Levin
2020-06-29 15:53 ` [PATCH 4.4 128/135] drm/radeon: fix fb_div check in ni_init_smc_spll_table() Sasha Levin
2020-06-29 15:53 ` [PATCH 4.4 129/135] sunrpc: fixed rollback in rpc_gssd_dummy_populate() Sasha Levin
2020-06-29 15:53 ` [PATCH 4.4 130/135] SUNRPC: Properly set the @subbuf parameter of xdr_buf_subsegment() Sasha Levin
2020-06-29 15:53 ` [PATCH 4.4 131/135] pNFS/flexfiles: Fix list corruption if the mirror count changes Sasha Levin
2020-06-29 15:53 ` [PATCH 4.4 132/135] NFSv4 fix CLOSE not waiting for direct IO compeletion Sasha Levin
2020-06-29 15:53 ` [PATCH 4.4 133/135] PCI: Disable MSI for HiSilicon Hip06/Hip07 only in Root Port mode Sasha Levin
2020-06-29 15:53 ` [PATCH 4.4 134/135] ALSA: usb-audio: Fix invalid NULL check in snd_emuusb_set_samplerate() Sasha Levin
2020-06-29 15:53 ` [PATCH 4.4 135/135] Linux 4.4.229-rc1 Sasha Levin
2020-06-30  8:17 ` [PATCH 4.4 000/135] 4.4.229-rc1 review Naresh Kamboju
2020-06-30  9:13 ` Jon Hunter
2020-06-30 13:17 ` Chris Paterson
2020-06-30 17:20 ` 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=20200629155309.2495516-61-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=axboe@kernel.dk \
    --cc=john.garry@huawei.com \
    --cc=kai.heng.feng@canonical.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).