public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org,
	Stephen Hemminger <sthemmin@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	"David S. Miller" <davem@davemloft.net>,
	Sasha Levin <alexander.levin@microsoft.com>
Subject: [PATCH 4.14 052/109] hv_netvsc: fix schedule in RCU context
Date: Tue, 16 Oct 2018 19:05:20 +0200	[thread overview]
Message-ID: <20181016170527.773874051@linuxfoundation.org> (raw)
In-Reply-To: <20181016170524.530541524@linuxfoundation.org>

4.14-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Stephen Hemminger <stephen@networkplumber.org>

[ Upstream commit 018349d70f28a78d5343b3660cb66e1667005f8a ]

When netvsc device is removed it can call reschedule in RCU context.
This happens because canceling the subchannel setup work could (in theory)
cause a reschedule when manipulating the timer.

To reproduce, run with lockdep enabled kernel and unbind
a network device from hv_netvsc (via sysfs).

[  160.682011] WARNING: suspicious RCU usage
[  160.707466] 4.19.0-rc3-uio+ #2 Not tainted
[  160.709937] -----------------------------
[  160.712352] ./include/linux/rcupdate.h:302 Illegal context switch in RCU read-side critical section!
[  160.723691]
[  160.723691] other info that might help us debug this:
[  160.723691]
[  160.730955]
[  160.730955] rcu_scheduler_active = 2, debug_locks = 1
[  160.762813] 5 locks held by rebind-eth.sh/1812:
[  160.766851]  #0: 000000008befa37a (sb_writers#6){.+.+}, at: vfs_write+0x184/0x1b0
[  160.773416]  #1: 00000000b097f236 (&of->mutex){+.+.}, at: kernfs_fop_write+0xe2/0x1a0
[  160.783766]  #2: 0000000041ee6889 (kn->count#3){++++}, at: kernfs_fop_write+0xeb/0x1a0
[  160.787465]  #3: 0000000056d92a74 (&dev->mutex){....}, at: device_release_driver_internal+0x39/0x250
[  160.816987]  #4: 0000000030f6031e (rcu_read_lock){....}, at: netvsc_remove+0x1e/0x250 [hv_netvsc]
[  160.828629]
[  160.828629] stack backtrace:
[  160.831966] CPU: 1 PID: 1812 Comm: rebind-eth.sh Not tainted 4.19.0-rc3-uio+ #2
[  160.832952] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v1.0 11/26/2012
[  160.832952] Call Trace:
[  160.832952]  dump_stack+0x85/0xcb
[  160.832952]  ___might_sleep+0x1a3/0x240
[  160.832952]  __flush_work+0x57/0x2e0
[  160.832952]  ? __mutex_lock+0x83/0x990
[  160.832952]  ? __kernfs_remove+0x24f/0x2e0
[  160.832952]  ? __kernfs_remove+0x1b2/0x2e0
[  160.832952]  ? mark_held_locks+0x50/0x80
[  160.832952]  ? get_work_pool+0x90/0x90
[  160.832952]  __cancel_work_timer+0x13c/0x1e0
[  160.832952]  ? netvsc_remove+0x1e/0x250 [hv_netvsc]
[  160.832952]  ? __lock_is_held+0x55/0x90
[  160.832952]  netvsc_remove+0x9a/0x250 [hv_netvsc]
[  160.832952]  vmbus_remove+0x26/0x30
[  160.832952]  device_release_driver_internal+0x18a/0x250
[  160.832952]  unbind_store+0xb4/0x180
[  160.832952]  kernfs_fop_write+0x113/0x1a0
[  160.832952]  __vfs_write+0x36/0x1a0
[  160.832952]  ? rcu_read_lock_sched_held+0x6b/0x80
[  160.832952]  ? rcu_sync_lockdep_assert+0x2e/0x60
[  160.832952]  ? __sb_start_write+0x141/0x1a0
[  160.832952]  ? vfs_write+0x184/0x1b0
[  160.832952]  vfs_write+0xbe/0x1b0
[  160.832952]  ksys_write+0x55/0xc0
[  160.832952]  do_syscall_64+0x60/0x1b0
[  160.832952]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
[  160.832952] RIP: 0033:0x7fe48f4c8154

Resolve this by getting RTNL earlier. This is safe because the subchannel
work queue does trylock on RTNL and will detect the race.

Fixes: 7b2ee50c0cd5 ("hv_netvsc: common detach logic")
Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/hyperv/netvsc_drv.c |    9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

--- a/drivers/net/hyperv/netvsc_drv.c
+++ b/drivers/net/hyperv/netvsc_drv.c
@@ -2110,17 +2110,15 @@ static int netvsc_remove(struct hv_devic
 
 	cancel_delayed_work_sync(&ndev_ctx->dwork);
 
-	rcu_read_lock();
-	nvdev = rcu_dereference(ndev_ctx->nvdev);
-
-	if  (nvdev)
+	rtnl_lock();
+	nvdev = rtnl_dereference(ndev_ctx->nvdev);
+	if (nvdev)
 		cancel_work_sync(&nvdev->subchan_work);
 
 	/*
 	 * Call to the vsc driver to let it know that the device is being
 	 * removed. Also blocks mtu and channel changes.
 	 */
-	rtnl_lock();
 	vf_netdev = rtnl_dereference(ndev_ctx->vf_netdev);
 	if (vf_netdev)
 		netvsc_unregister_vf(vf_netdev);
@@ -2132,7 +2130,6 @@ static int netvsc_remove(struct hv_devic
 	list_del(&ndev_ctx->list);
 
 	rtnl_unlock();
-	rcu_read_unlock();
 
 	hv_set_drvdata(dev, NULL);
 



  parent reply	other threads:[~2018-10-16 17:19 UTC|newest]

Thread overview: 116+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-16 17:04 [PATCH 4.14 000/109] 4.14.77-stable review Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 001/109] bnxt_en: Fix TX timeout during netpoll Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 002/109] bnxt_en: free hwrm resources, if driver probe fails Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 003/109] bonding: avoid possible dead-lock Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 004/109] ip6_tunnel: be careful when accessing the inner header Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 005/109] ip_tunnel: " Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 006/109] ipv4: fix use-after-free in ip_cmsg_recv_dstaddr() Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 007/109] ipv6: take rcu lock in rawv6_send_hdrinc() Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 008/109] net: dsa: bcm_sf2: Call setup during switch resume Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 009/109] net: hns: fix for unmapping problem when SMMU is on Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 010/109] net: ipv4: update fnhe_pmtu when first hops MTU changes Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 011/109] net/ipv6: Display all addresses in output of /proc/net/if_inet6 Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 012/109] netlabel: check for IPV4MASK in addrinfo_get Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 013/109] net: mvpp2: Extract the correct ethtype from the skb for tx csum offload Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 014/109] net: mvpp2: fix a txq_done race condition Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 015/109] net: sched: Add policy validation for tc attributes Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 016/109] net: systemport: Fix wake-up interrupt race during resume Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 017/109] net/usb: cancel pending work when unbinding smsc75xx Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 018/109] qlcnic: fix Tx descriptor corruption on 82xx devices Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 019/109] qmi_wwan: Added support for Gemaltos Cinterion ALASxx WWAN interface Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 020/109] rtnetlink: fix rtnl_fdb_dump() for ndmsg header Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 021/109] rtnl: limit IFLA_NUM_TX_QUEUES and IFLA_NUM_RX_QUEUES to 4096 Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 022/109] sctp: update dst pmtu with the correct daddr Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 023/109] team: Forbid enslaving team device to itself Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 024/109] tipc: fix flow control accounting for implicit connect Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 025/109] udp: Unbreak modules that rely on external __skb_recv_udp() availability Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 026/109] net: stmmac: Fixup the tail addr setting in xmit path Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 027/109] net/packet: fix packet drop as of virtio gso Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 028/109] net: dsa: bcm_sf2: Fix unbind ordering Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 029/109] net/mlx5e: Set vlan masks for all offloaded TC rules Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 030/109] net: aquantia: memory corruption on jumbo frames Greg Kroah-Hartman
2018-10-16 17:04 ` [PATCH 4.14 031/109] net/mlx5: E-Switch, Fix out of bound access when setting vport rate Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 032/109] bonding: pass link-local packets to bonding master also Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 033/109] bonding: fix warning message Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 034/109] nfp: avoid soft lockups under control message storm Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 035/109] bnxt_en: dont try to offload VLAN modify action Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 036/109] net-ethtool: ETHTOOL_GUFO did not and should not require CAP_NET_ADMIN Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 037/109] tcp/dccp: fix lockdep issue when SYN is backlogged Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 038/109] inet: make sure to grab rcu_read_lock before using ireq->ireq_opt Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 039/109] ASoC: rt5514: Fix the issue of the delay volume applied again Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 040/109] ASoC: wm8804: Add ACPI support Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 041/109] ASoC: sigmadsp: safeload should not have lower byte limit Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 042/109] selftests/efivarfs: add required kernel configs Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 043/109] selftests: memory-hotplug: add required configs Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 044/109] ASoC: rsnd: adg: care clock-frequency size Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 045/109] ASoC: rsnd: dont fallback to PIO mode when -EPROBE_DEFER Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 046/109] Bluetooth: hci_ldisc: Free rw_semaphore on close Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 047/109] mfd: omap-usb-host: Fix dts probe of children Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 048/109] scsi: iscsi: target: Dont use stack buffer for scatterlist Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 049/109] scsi: qla2xxx: Fix an endian bug in fcpcmd_is_corrupted() Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 050/109] sound: enable interrupt after dma buffer initialization Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 051/109] sound: dont call skl_init_chip() to reset intel skl soc Greg Kroah-Hartman
2018-10-16 17:05 ` Greg Kroah-Hartman [this message]
2018-10-16 17:05 ` [PATCH 4.14 053/109] stmmac: fix valid numbers of unicast filter entries Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 054/109] net: macb: disable scatter-gather for macb on sama5d3 Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 055/109] ARM: dts: at91: add new compatibility string " Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 056/109] PCI: hv: support reporting serial number as slot information Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 057/109] clk: x86: add "ether_clk" alias for Bay Trail / Cherry Trail Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 058/109] clk: x86: Stop marking clocks as CLK_IS_CRITICAL Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 059/109] x86/kvm/lapic: always disable MMIO interface in x2APIC mode Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 060/109] drm/amdgpu: Fix SDMA HQD destroy error on gfx_v7 Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 061/109] mm/vmstat.c: fix outdated vmstat_text Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 062/109] MIPS: VDSO: Always map near top of user memory Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 063/109] mach64: detect the dot clock divider correctly on sparc Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 064/109] percpu: stop leaking bitmap metadata blocks Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 065/109] perf script python: Fix export-to-postgresql.py occasional failure Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 066/109] perf script python: Fix export-to-sqlite.py sample columns Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 067/109] s390/cio: Fix how vfio-ccw checks pinned pages Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 068/109] dm cache: destroy migration_cache if cache target registration failed Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 069/109] dm: fix report zone remapping to account for partition offset Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 070/109] dm linear: eliminate linear_end_io call if CONFIG_DM_ZONED disabled Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 071/109] dm linear: fix linear_end_io conditional definition Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 072/109] cgroup: Fix dom_cgrp propagation when enabling threaded mode Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 073/109] mmc: block: avoid multiblock reads for the last sector in SPI mode Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 074/109] pinctrl: mcp23s08: fix irq and irqchip setup order Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 075/109] arm64: perf: Reject stand-alone CHAIN events for PMUv3 Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 076/109] mm/thp: fix call to mmu_notifier in set_pmd_migration_entry() v2 Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 077/109] mm: Preserve _PAGE_DEVMAP across mprotect() calls Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 078/109] i2c: i2c-scmi: fix for i2c_smbus_write_block_data Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 079/109] xhci: Dont print a warning when setting link state for disabled ports Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 080/109] mm: introduce NR_INDIRECTLY_RECLAIMABLE_BYTES Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 081/109] mm: treat indirectly reclaimable memory as available in MemAvailable Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 082/109] dcache: account external names as indirectly reclaimable memory Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 083/109] mm: treat indirectly reclaimable memory as free in overcommit logic Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 084/109] mm: dont show nr_indirectly_reclaimable in /proc/vmstat Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 085/109] ARM: add more CPU part numbers for Cortex and Brahma B15 CPUs Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 086/109] ARM: bugs: prepare processor bug infrastructure Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 087/109] ARM: bugs: hook processor bug checking into SMP and suspend paths Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 088/109] ARM: bugs: add support for per-processor bug checking Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 089/109] ARM: spectre: add Kconfig symbol for CPUs vulnerable to Spectre Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 090/109] ARM: spectre-v2: harden branch predictor on context switches Greg Kroah-Hartman
2018-10-16 17:05 ` [PATCH 4.14 091/109] ARM: spectre-v2: add Cortex A8 and A15 validation of the IBE bit Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 092/109] ARM: spectre-v2: harden user aborts in kernel space Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 093/109] ARM: spectre-v2: add firmware based hardening Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 094/109] ARM: spectre-v2: warn about incorrect context switching functions Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 095/109] ARM: KVM: invalidate BTB on guest exit for Cortex-A12/A17 Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 096/109] ARM: KVM: invalidate icache on guest exit for Cortex-A15 Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 097/109] ARM: spectre-v2: KVM: invalidate icache on guest exit for Brahma B15 Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 098/109] ARM: KVM: Add SMCCC_ARCH_WORKAROUND_1 fast handling Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 099/109] ARM: KVM: report support for SMCCC_ARCH_WORKAROUND_1 Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 100/109] ARM: spectre-v1: add speculation barrier (csdb) macros Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 101/109] ARM: spectre-v1: add array_index_mask_nospec() implementation Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 102/109] ARM: spectre-v1: fix syscall entry Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 103/109] ARM: signal: copy registers using __copy_from_user() Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 104/109] ARM: vfp: use __copy_from_user() when restoring VFP state Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 105/109] ARM: oabi-compat: copy semops using __copy_from_user() Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 106/109] ARM: use __inttype() in get_user() Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 107/109] ARM: spectre-v1: use get_user() for __get_user() Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 108/109] ARM: spectre-v1: mitigate user accesses Greg Kroah-Hartman
2018-10-16 17:06 ` [PATCH 4.14 109/109] perf tools: Fix snprint warnings for gcc 8 Greg Kroah-Hartman
2018-10-17  3:56 ` [PATCH 4.14 000/109] 4.14.77-stable review Dan Rue
2018-10-17  7:51   ` Greg Kroah-Hartman
2018-10-17 18:41 ` Shuah Khan
2018-10-17 19:20 ` Guenter Roeck
2018-10-18  6:43 ` Jon Hunter
2018-10-18  7:12   ` Greg Kroah-Hartman

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=20181016170527.773874051@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=alexander.levin@microsoft.com \
    --cc=davem@davemloft.net \
    --cc=haiyangz@microsoft.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=sthemmin@microsoft.com \
    /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