stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Dick Kennedy <dick.kennedy@broadcom.com>,
	James Smart <james.smart@broadcom.com>,
	Hannes Reinecke <hare@suse.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	Sasha Levin <alexander.levin@microsoft.com>
Subject: [PATCH 4.15 081/128] scsi: lpfc: Fix crash during driver unload with running nvme traffic
Date: Fri, 16 Mar 2018 16:23:42 +0100	[thread overview]
Message-ID: <20180316152340.674900786@linuxfoundation.org> (raw)
In-Reply-To: <20180316152336.199007505@linuxfoundation.org>

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

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

From: James Smart <jsmart2021@gmail.com>


[ Upstream commit 3386f4bdd243ad5a9094d390297602543abe9902 ]

When the driver is unloading, the nvme transport could be in the process
of submitting new requests, will send abort requests to terminate
associations, or may make LS-related requests.  The driver's abort and
request entry points currently is ignorant of the unloading state and is
starting the requests even though the infrastructure to complete them
continues to teardown.

Change the entry points for new requests to check whether unloading and
if so, reject the requests. Abort routines check unloading, and if so,
noop the request. An abort is noop'd as the teardown paths are already
aborting/terminating the io outstanding at the time the teardown
initiated.

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/scsi/lpfc/lpfc_nvme.c  |   14 ++++++++++++++
 drivers/scsi/lpfc/lpfc_nvmet.c |   11 +++++++++++
 2 files changed, 25 insertions(+)

--- a/drivers/scsi/lpfc/lpfc_nvme.c
+++ b/drivers/scsi/lpfc/lpfc_nvme.c
@@ -419,6 +419,9 @@ lpfc_nvme_ls_req(struct nvme_fc_local_po
 	if (vport->load_flag & FC_UNLOADING)
 		return -ENODEV;
 
+	if (vport->load_flag & FC_UNLOADING)
+		return -ENODEV;
+
 	ndlp = lpfc_findnode_did(vport, pnvme_rport->port_id);
 	if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) {
 		lpfc_printf_vlog(vport, KERN_ERR, LOG_NODE | LOG_NVME_IOERR,
@@ -534,6 +537,9 @@ lpfc_nvme_ls_abort(struct nvme_fc_local_
 	vport = lport->vport;
 	phba = vport->phba;
 
+	if (vport->load_flag & FC_UNLOADING)
+		return;
+
 	ndlp = lpfc_findnode_did(vport, pnvme_rport->port_id);
 	if (!ndlp) {
 		lpfc_printf_vlog(vport, KERN_ERR, LOG_NVME_ABTS,
@@ -1260,6 +1266,11 @@ lpfc_nvme_fcp_io_submit(struct nvme_fc_l
 		goto out_fail;
 	}
 
+	if (vport->load_flag & FC_UNLOADING) {
+		ret = -ENODEV;
+		goto out_fail;
+	}
+
 	/* Validate pointers. */
 	if (!pnvme_lport || !pnvme_rport || !freqpriv) {
 		lpfc_printf_vlog(vport, KERN_INFO, LOG_NVME_IOERR | LOG_NODE,
@@ -1487,6 +1498,9 @@ lpfc_nvme_fcp_abort(struct nvme_fc_local
 	vport = lport->vport;
 	phba = vport->phba;
 
+	if (vport->load_flag & FC_UNLOADING)
+		return;
+
 	/* Announce entry to new IO submit field. */
 	lpfc_printf_vlog(vport, KERN_INFO, LOG_NVME_ABTS,
 			 "6002 Abort Request to rport DID x%06x "
--- a/drivers/scsi/lpfc/lpfc_nvmet.c
+++ b/drivers/scsi/lpfc/lpfc_nvmet.c
@@ -635,6 +635,9 @@ lpfc_nvmet_xmt_ls_rsp(struct nvmet_fc_ta
 	if (phba->pport->load_flag & FC_UNLOADING)
 		return -ENODEV;
 
+	if (phba->pport->load_flag & FC_UNLOADING)
+		return -ENODEV;
+
 	lpfc_printf_log(phba, KERN_INFO, LOG_NVME_DISC,
 			"6023 NVMET LS rsp oxid x%x\n", ctxp->oxid);
 
@@ -721,6 +724,11 @@ lpfc_nvmet_xmt_fcp_op(struct nvmet_fc_ta
 		goto aerr;
 	}
 
+	if (phba->pport->load_flag & FC_UNLOADING) {
+		rc = -ENODEV;
+		goto aerr;
+	}
+
 #ifdef CONFIG_SCSI_LPFC_DEBUG_FS
 	if (ctxp->ts_cmd_nvme) {
 		if (rsp->op == NVMET_FCOP_RSP)
@@ -822,6 +830,9 @@ lpfc_nvmet_xmt_fcp_abort(struct nvmet_fc
 
 	if (phba->pport->load_flag & FC_UNLOADING)
 		return;
+
+	if (phba->pport->load_flag & FC_UNLOADING)
+		return;
 
 	lpfc_printf_log(phba, KERN_INFO, LOG_NVME_ABTS,
 			"6103 NVMET Abort op: oxri x%x flg x%x ste %d\n",

  parent reply	other threads:[~2018-03-16 15:23 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-16 15:22 [PATCH 4.15 000/128] 4.15.11-stable review Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 001/128] x86: Treat R_X86_64_PLT32 as R_X86_64_PC32 Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 002/128] ASoC: sun4i-i2s: Fix RX slot number of SUN8I Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 003/128] ASoC: sgtl5000: Fix suspend/resume Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 004/128] ASoC: wm_adsp: For TLV controls only register TLV get/set Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 005/128] ASoC: rt5651: Fix regcache sync errors on resume Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 006/128] usb: host: xhci-rcar: add support for r8a77965 Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 007/128] xhci: Fix front USB ports on ASUS PRIME B350M-A Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 008/128] xhci: fix endpoint context tracer output Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 009/128] serial: sh-sci: prevent lockup on full TTY buffers Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 010/128] tty/serial: atmel: add new version check for usart Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 011/128] uas: fix comparison for error code Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 012/128] staging: comedi: fix comedi_nsamples_left Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 013/128] staging: android: ashmem: Fix lockdep issue during llseek Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 014/128] scsi: sd_zbc: Fix potential memory leak Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 015/128] USB: storage: Add JMicron bridge 152d:2567 to unusual_devs.h Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 016/128] usbip: vudc: fix null pointer dereference on udc->lock Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 017/128] usb: quirks: add control message delay for 1b1c:1b20 Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 018/128] usb: usbmon: Read text within supplied buffer size Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 019/128] usb: gadget: f_fs: Fix use-after-free in ffs_fs_kill_sb() Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 020/128] usb: dwc3: Fix lock-up on ID change during system suspend/resume Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 021/128] serial: 8250_pci: Add Brainboxes UC-260 4 port serial device Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 022/128] serial: core: mark port as initialized in autoconfig Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 023/128] earlycon: add reg-offset to physical address before mapping Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 024/128] dm mpath: fix passing integrity data Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 025/128] [PATCH] Revert "btrfs: use proper endianness accessors for super_copy" Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 026/128] gfs2: Clean up {lookup,fillup}_metapath Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 027/128] gfs2: Fixes to "Implement iomap for block_map" (2) Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 028/128] drm/panel: rpi-touchscreen: propagate errors in rpi_touchscreen_i2c_read() Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 029/128] spi: imx: Fix failure path leak on GPIO request error correctly Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 030/128] HID: multitouch: Only look at non touch fields in first packet of a frame Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 031/128] KVM: PPC: Book3S HV: Avoid shifts by negative amounts Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 035/128] KVM: PPC: Book3S HV: Fix typo in kvmppc_hv_get_dirty_log_radix() Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 036/128] HID: elo: clear BTN_LEFT mapping Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 037/128] iwlwifi: mvm: rs: dont override the rate history in the search cycle Greg Kroah-Hartman
2018-03-16 15:22 ` [PATCH 4.15 038/128] ARM: dts: koelsch: Move cec_clock to root node Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 039/128] clk: meson: gxbb: fix wrong clock for SARADC/SANA Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 040/128] ARM: dts: exynos: Correct Trats2 panel reset line Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 041/128] drm/amdgpu: fix get_max_engine_clock_in_mhz Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 042/128] staging: rtl8822be: fix missing null check on dev_alloc_skb return Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 043/128] typec: tcpm: fusb302: Resolve out of order messaging events Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 046/128] sched: Stop switched_to_rt() from sending IPIs to offline CPUs Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 047/128] sched: Stop resched_cpu() " Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 048/128] crypto: chelsio - Fix an error code in chcr_hash_dma_map() Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 049/128] crypto: ecc - Fix NULL pointer deref. on no default_rng Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 051/128] crypto: cavium - fix memory leak on info Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 052/128] test_firmware: fix setting old custom fw path back on exit Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 054/128] net: ieee802154: adf7242: Fix bug if defined DEBUG Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 055/128] rtc: brcmstb-waketimer: fix error handling in brcmstb_waketmr_probe() Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 056/128] perf report: Fix -D output for user metadata events Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 057/128] net: xfrm: allow clearing socket xfrm policies Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 058/128] gpiolib: dont allow OPEN_DRAIN & OPEN_SOURCE flags simultaneously Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 059/128] mtd: nand: fix interpretation of NAND_CMD_NONE in nand_command[_lp]() Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 060/128] net: thunderx: Set max queue count taking XDP_TX into account Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 061/128] ARM: dts: am335x-pepper: Fix the audio CODECs reset pin Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 062/128] ARM: dts: omap3-n900: " Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 063/128] mtd: nand: ifc: update bufnum mask for ver >= 2.0.0 Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 064/128] userns: Dont fail follow_automount based on s_user_ns Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 065/128] xfrm: Fix xfrm_replay_overflow_offload_esn Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 066/128] leds: pm8058: Silence pointer to integer size warning Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 067/128] bpf: fix stack state printing in verifier log Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 068/128] clk: ti: clkctrl: add support for retrying failed init Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 069/128] power: supply: sbs-message: double left shift bug in sbsm_select() Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 070/128] power: supply: ab8500_charger: Fix an error handling path Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 071/128] power: supply: ab8500_charger: Bail out in case of error in ab8500_charger_init_hw_registers() Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 072/128] drm/etnaviv: make THERMAL selectable Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 074/128] iio: health: max30102: Add power enable parameter to get_temp function Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 075/128] ath10k: update tdls teardown state to target Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 076/128] cpufreq: Fix governor module removal race Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 077/128] dmaengine: bcm2835-dma: Use vchan_terminate_vdesc() instead of desc_free Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 078/128] dmaengine: amba-pl08x: " Greg Kroah-Hartman
2018-03-16 15:23 ` Greg Kroah-Hartman [this message]
2018-03-16 15:23 ` [PATCH 4.15 082/128] scsi: ses: dont ask for diagnostic pages repeatedly during probe Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 083/128] pwm: stmpe: Fix wrong register offset for hwpwm=2 case Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 084/128] drm/sun4i: Fix format mask in DE2 driver Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 085/128] pinctrl: sh-pfc: r8a7791: Add can_clk function Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 086/128] pinctrl: sh-pfc: r8a7795-es1: Fix MOD_SEL1 bit[25:24] to 0x3 when using STP_ISEN_1_D Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 087/128] perf annotate: Fix unnecessary memory allocation for s390x Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 088/128] perf annotate: Fix objdump comment parsing for Intel mov dissassembly Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 089/128] iwlwifi: mvm: avoid dumping assert log when device is stopped Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 090/128] drm/amdgpu:fix virtual dce bug Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 092/128] bnxt_en: Uninitialized variable in bnxt_tc_parse_actions() Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 093/128] clk: qcom: msm8916: fix mnd_width for codec_digcodec Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 094/128] mwifiex: cfg80211: do not change virtual interface during scan processing Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 095/128] ath10k: fix invalid STS_CAP_OFFSET_MASK Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 097/128] spi: sun6i: disable/unprepare clocks on remove Greg Kroah-Hartman
2018-03-16 15:23 ` [PATCH 4.15 098/128] bnxt_en: Dont print "Link speed -1 no longer supported" messages Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 099/128] scsi: core: scsi_get_device_flags_keyed(): Always return device flags Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 100/128] scsi: devinfo: apply to HP XP the same flags as Hitachi VSP Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 101/128] scsi: dh: add new rdac devices Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 102/128] clk: renesas: r8a77970: Add LVDS clock Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 103/128] staging: fsl-dpaa2/eth: Fix access to FAS field Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 104/128] media: vsp1: Prevent suspending and resuming DRM pipelines Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 105/128] dm raid: fix raid set size revalidation Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 106/128] media: cpia2: Fix a couple off by one bugs Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 107/128] media: davinci: vpif_capture: add NULL check on devm_kzalloc return value Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 108/128] virtio_net: Disable interrupts if napi_complete_done rescheduled napi Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 109/128] net: sched: drop qdisc_reset from dev_graft_qdisc Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 110/128] veth: set peer GSO values Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 111/128] drm/amdkfd: Fix memory leaks in kfd topology Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 112/128] powerpc/modules: Dont try to restore r2 after a sibling call Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 113/128] powerpc/64: Dont trace irqs-off at interrupt return to soft-disabled context Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 114/128] arm64: dts: renesas: salvator-common: Add EthernetAVB PHY reset Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 115/128] agp/intel: Flush all chipset writes after updating the GGTT Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 116/128] mac80211_hwsim: enforce PS_MANUAL_POLL to be set after PS_ENABLED Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 117/128] mac80211: remove BUG() when interface type is invalid Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 119/128] ASoC: nuc900: Fix a loop timeout test Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 120/128] mmc: mmc_test: Ensure command queue is disabled for testing Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 121/128] Fix misannotated out-of-line _copy_to_user() Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 122/128] ipvlan: add L2 check for packets arriving via virtual devices Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 123/128] rcutorture/configinit: Fix build directory error message Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 124/128] locking/locktorture: Fix num reader/writer corner cases Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 125/128] ima: relax requiring a file signature for new files with zero length Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 126/128] IB/mlx5: revisit -Wmaybe-uninitialized warning Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 127/128] dmaengine: qcom_hidma: check pending interrupts Greg Kroah-Hartman
2018-03-16 15:24 ` [PATCH 4.15 128/128] drm/i915/glk: Disable Guc and HuC on GLK Greg Kroah-Hartman
2018-03-16 19:36 ` [PATCH 4.15 000/128] 4.15.11-stable review Naresh Kamboju
2018-03-18 10:26   ` Greg Kroah-Hartman
2018-03-17 14:48 ` Guenter Roeck
2018-03-18 10:26   ` Greg Kroah-Hartman
2018-03-18 10:25 ` Greg Kroah-Hartman
2018-03-18 11:15   ` Greg Kroah-Hartman
2018-03-18 22:41     ` Guenter Roeck
2018-03-19  3:39     ` Dan Rue
2018-03-19  5:36       ` Guenter Roeck
2018-03-19  7:39         ` Greg Kroah-Hartman
2018-03-19  8:29     ` Dan Rue

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=20180316152340.674900786@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=alexander.levin@microsoft.com \
    --cc=dick.kennedy@broadcom.com \
    --cc=hare@suse.com \
    --cc=james.smart@broadcom.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --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).