From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Javed Hasan <jhasan@marvell.com>,
"Martin K . Petersen" <martin.petersen@oracle.com>,
Sasha Levin <sashal@kernel.org>,
linux-scsi@vger.kernel.org
Subject: [PATCH AUTOSEL 5.13 102/108] scsi: qedf: Add check to synchronize abort and flush
Date: Wed, 14 Jul 2021 15:37:54 -0400 [thread overview]
Message-ID: <20210714193800.52097-102-sashal@kernel.org> (raw)
In-Reply-To: <20210714193800.52097-1-sashal@kernel.org>
From: Javed Hasan <jhasan@marvell.com>
[ Upstream commit df99446d5c2a63dc6e6920c8090da0e9da6539d5 ]
A race condition was observed between qedf_cleanup_fcport() and
qedf_process_error_detect()->qedf_initiate_abts():
[2069091.203145] BUG: unable to handle kernel NULL pointer dereference at 0000000000000030
[2069091.213100] IP: [<ffffffffc0666cc6>] qedf_process_error_detect+0x96/0x130 [qedf]
[2069091.223391] PGD 1943049067 PUD 194304e067 PMD 0
[2069091.233420] Oops: 0000 [#1] SMP
[2069091.361820] CPU: 1 PID: 14751 Comm: kworker/1:46 Kdump: loaded Tainted: P OE ------------ 3.10.0-1160.25.1.el7.x86_64 #1
[2069091.388474] Hardware name: HPE Synergy 480 Gen10/Synergy 480 Gen10 Compute Module, BIOS I42 04/08/2020
[2069091.402148] Workqueue: qedf_io_wq qedf_fp_io_handler [qedf]
[2069091.415780] task: ffff9bb9f5190000 ti: ffff9bacaef9c000 task.ti: ffff9bacaef9c000
[2069091.429590] RIP: 0010:[<ffffffffc0666cc6>] [<ffffffffc0666cc6>] qedf_process_error_detect+0x96/0x130 [qedf]
[2069091.443666] RSP: 0018:ffff9bacaef9fdb8 EFLAGS: 00010246
[2069091.457692] RAX: 0000000000000000 RBX: ffff9bbbbbfb18a0 RCX: ffffffffc0672310
[2069091.471997] RDX: 00000000000005de RSI: ffffffffc066e7f0 RDI: ffff9beb3f4538d8
[2069091.486130] RBP: ffff9bacaef9fdd8 R08: 0000000000006000 R09: 0000000000006000
[2069091.500321] R10: 0000000000001551 R11: ffffb582996ffff8 R12: ffffb5829b39cc18
[2069091.514779] R13: ffff9badab380c28 R14: ffffd5827f643900 R15: 0000000000000040
[2069091.529472] FS: 0000000000000000(0000) GS:ffff9beb3f440000(0000) knlGS:0000000000000000
[2069091.543926] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[2069091.558942] CR2: 0000000000000030 CR3: 000000193b9a2000 CR4: 00000000007607e0
[2069091.573424] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[2069091.587876] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[2069091.602007] PKRU: 00000000
[2069091.616010] Call Trace:
[2069091.629902] [<ffffffffc0663969>] qedf_process_cqe+0x109/0x2e0 [qedf]
[2069091.643941] [<ffffffffc0663b66>] qedf_fp_io_handler+0x26/0x60 [qedf]
[2069091.657948] [<ffffffff85ebddcf>] process_one_work+0x17f/0x440
[2069091.672111] [<ffffffff85ebeee6>] worker_thread+0x126/0x3c0
[2069091.686057] [<ffffffff85ebedc0>] ? manage_workers.isra.26+0x2a0/0x2a0
[2069091.700033] [<ffffffff85ec5da1>] kthread+0xd1/0xe0
[2069091.713891] [<ffffffff85ec5cd0>] ? insert_kthread_work+0x40/0x40
Add check in qedf_process_error_detect(). When flush is active, let the
cmds be completed from the cleanup contex.
Link: https://lore.kernel.org/r/20210624171802.598-1-jhasan@marvell.com
Signed-off-by: Javed Hasan <jhasan@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/scsi/qedf/qedf_io.c | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/drivers/scsi/qedf/qedf_io.c b/drivers/scsi/qedf/qedf_io.c
index 4869ef813dc4..63f99f4eeed9 100644
--- a/drivers/scsi/qedf/qedf_io.c
+++ b/drivers/scsi/qedf/qedf_io.c
@@ -1520,9 +1520,19 @@ void qedf_process_error_detect(struct qedf_ctx *qedf, struct fcoe_cqe *cqe,
{
int rval;
+ if (io_req == NULL) {
+ QEDF_INFO(NULL, QEDF_LOG_IO, "io_req is NULL.\n");
+ return;
+ }
+
+ if (io_req->fcport == NULL) {
+ QEDF_INFO(NULL, QEDF_LOG_IO, "fcport is NULL.\n");
+ return;
+ }
+
if (!cqe) {
QEDF_INFO(&qedf->dbg_ctx, QEDF_LOG_IO,
- "cqe is NULL for io_req %p\n", io_req);
+ "cqe is NULL for io_req %p\n", io_req);
return;
}
@@ -1538,6 +1548,16 @@ void qedf_process_error_detect(struct qedf_ctx *qedf, struct fcoe_cqe *cqe,
le32_to_cpu(cqe->cqe_info.err_info.rx_buf_off),
le32_to_cpu(cqe->cqe_info.err_info.rx_id));
+ /* When flush is active, let the cmds be flushed out from the cleanup context */
+ if (test_bit(QEDF_RPORT_IN_TARGET_RESET, &io_req->fcport->flags) ||
+ (test_bit(QEDF_RPORT_IN_LUN_RESET, &io_req->fcport->flags) &&
+ io_req->sc_cmd->device->lun == (u64)io_req->fcport->lun_reset_lun)) {
+ QEDF_ERR(&qedf->dbg_ctx,
+ "Dropping EQE for xid=0x%x as fcport is flushing",
+ io_req->xid);
+ return;
+ }
+
if (qedf->stop_io_on_error) {
qedf_stop_all_io(qedf);
return;
--
2.30.2
next prev parent reply other threads:[~2021-07-14 19:43 UTC|newest]
Thread overview: 111+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-14 19:36 [PATCH AUTOSEL 5.13 001/108] ARM: dts: gemini: rename mdio to the right name Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 002/108] ARM: dts: gemini: add device_type on pci Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 003/108] ARM: dts: rockchip: Fix thermal sensor cells o rk322x Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 004/108] ARM: dts: rockchip: fix pinctrl sleep nodename for rk3036-kylin and rk3288 Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 005/108] arm64: dts: rockchip: Use only supported PCIe link speed on rk3399 Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 006/108] arm64: dts: rockchip: fix pinctrl sleep nodename for rk3399.dtsi Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 007/108] ARM: dts: rockchip: Fix the timer clocks order Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 008/108] ARM: dts: rockchip: Fix IOMMU nodes properties on rk322x Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 009/108] ARM: dts: rockchip: Fix power-controller node names for rk3066a Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 010/108] ARM: dts: rockchip: Fix power-controller node names for rk3188 Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 011/108] ARM: dts: rockchip: Fix power-controller node names for rk3288 Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 012/108] arm64: dts: rockchip: Fix power-controller node names for px30 Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 013/108] arm64: dts: rockchip: Fix power-controller node names for rk3328 Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 014/108] arm64: dts: rockchip: Fix power-controller node names for rk3399 Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 015/108] reset: ti-syscon: fix to_ti_syscon_reset_data macro Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 016/108] ARM: dts: BCM5301X: Fix NAND nodes names Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 017/108] ARM: brcmstb: dts: fix " Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 018/108] ARM: Cygnus: " Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 019/108] ARM: NSP: " Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 020/108] ARM: dts: BCM63xx: Fix " Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 021/108] ARM: dts: Hurricane 2: " Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 022/108] ARM: dts: BCM5301X: Fix pinmux subnodes names Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 023/108] soc: bcm: brcmstb: remove unused variable 'brcmstb_machine_match' Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 024/108] ARM: dts: imx25-pinfunc: Fix gpio function name for pads GPIO_[A-F] Sasha Levin
2021-07-14 20:35 ` Uwe Kleine-König
2021-07-14 20:59 ` Sasha Levin
2021-07-15 7:16 ` Uwe Kleine-König
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 025/108] ARM: dts: exynos: align Broadcom WiFi with dtschema Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 026/108] soc: mediatek: add missing MODULE_DEVICE_TABLE Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 027/108] ARM: dts: imx6: phyFLEX: Fix UART hardware flow control Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 028/108] ARM: imx: pm-imx5: Fix references to imx5_cpu_suspend_info Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 029/108] arm64: dts: rockchip: fix regulator-gpio states array Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 030/108] ARM: dts: ux500: Fix interrupt cells Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 031/108] ARM: dts: ux500: Rename gpio-controller node Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 032/108] ARM: dts: ux500: Fix orientation of accelerometer Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 033/108] ARM: dts: ux500: Fix some compatible strings Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 034/108] ARM: dts: imx6dl-riotboard: configure PHY clock and set proper EEE value Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 035/108] ARM: dts: ux500: Fix orientation of Janice accelerometer Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 036/108] rtc: mxc_v2: add missing MODULE_DEVICE_TABLE Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 037/108] arm64: dts: renesas: beacon: Fix USB extal reference Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 038/108] arm64: dts: renesas: beacon: Fix USB ref clock references Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 039/108] kbuild: sink stdout from cmd for silent build Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 040/108] ARM: dts: am335x: align GPIO hog names with dt-schema Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 041/108] ARM: dts: am437x: align gpio " Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 042/108] ARM: dts: omap3: " Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 043/108] ARM: dts: omap5-board-common: " Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 044/108] ARM: dts: dra7x-evm: Align GPIO " Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 045/108] ARM: dts: am57xx-cl-som-am57x: fix ti,no-reset-on-init flag for gpios Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 046/108] ARM: dts: am437x-gp-evm: " Sasha Levin
2021-07-14 19:36 ` [PATCH AUTOSEL 5.13 047/108] ARM: dts: am335x: " Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 048/108] ARM: dts: OMAP2+: Replace underscores in sub-mailbox node names Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 049/108] arm64: tegra: Add PMU node for Tegra194 Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 050/108] arm64: dts: ti: k3-am654x/j721e/j7200-common-proc-board: Fix MCU_RGMII1_TXC direction Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 051/108] ARM: tegra: wm8903: Fix polarity of headphones-detection GPIO in device-trees Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 052/108] ARM: tegra: nexus7: Correct 3v3 regulator GPIO of PM269 variant Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 053/108] arm64: dts: qcom: sm8350: fix the node unit addresses Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 054/108] arm64: dts: qcom: msm8996: Make CPUCC actually probe (and work) Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 055/108] arm64: dts: qcom: sm8250: fix display nodes Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 056/108] arm64: dts: qcom: sc7180: Move rmtfs memory region Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 057/108] ARM: dts: stm32: Remove extra size-cells on dhcom-pdk2 Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 058/108] ARM: dts: stm32: Fix touchscreen node " Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 059/108] ARM: dts: stm32: fix stm32mp157c-odyssey card detect pin Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 060/108] ARM: dts: stm32: fix gpio-keys node on STM32 MCU boards Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 061/108] ARM: dts: stm32: fix RCC node name on stm32f429 MCU Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 062/108] ARM: dts: stm32: fix timer nodes on STM32 MCU to prevent warnings Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 063/108] memory: tegra: Fix compilation warnings on 64bit platforms Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 064/108] firmware: arm_scmi: Add SMCCC discovery dependency in Kconfig Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 065/108] firmware: arm_scmi: Fix the build when CONFIG_MAILBOX is not selected Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 066/108] ARM: dts: aspeed: Everest: Fix cable card PCA chips Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 067/108] ARM: dts: bcm283x: Fix up MMC node names Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 068/108] ARM: dts: bcm283x: Fix up GPIO LED " Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 069/108] i3c: master: svc: drop free_irq of devm_request_irq allocated irq Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 070/108] arm64: dts: juno: Update SCPI nodes as per the YAML schema Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 071/108] ARM: dts: rockchip: fix supply properties in io-domains nodes Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 072/108] ARM: dts: stm32: fix i2c node name on stm32f746 to prevent warnings Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 073/108] ARM: dts: stm32: move stmmac axi config in ethernet node on stm32mp15 Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 074/108] ARM: dts: stm32: fix ltdc pinctrl on microdev2.0-of7 Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 075/108] ARM: dts: stm32: fix the Odyssey SoM eMMC VQMMC supply Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 076/108] ARM: dts: stm32: Drop unused linux,wakeup from touchscreen node on DHCOM SoM Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 077/108] ARM: dts: stm32: Rename eth@N to ethernet@N " Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 078/108] ARM: dts: stm32: Rename spi-flash/mx66l51235l@N to flash@N " Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 079/108] ARM: dts: stm32: fix stpmic node for stm32mp1 boards Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 080/108] arm64: dts: qcom: sc7180: Add wakeup delay for adau codec Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 081/108] ARM: OMAP2+: Block suspend for am3 and am4 if PM is not configured Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 082/108] soc/tegra: fuse: Fix Tegra234-only builds Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 083/108] firmware: tegra: bpmp: " Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 084/108] arm64: dts: rockchip: Update RK3399 PCI host bridge window to 32-bit address memory Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 085/108] arm64: dts: ls208xa: remove bus-num from dspi node Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 086/108] arm64: dts: imx8mn-beacon-som: Assign PMIC clock Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 087/108] arm64: dts: imx8mq: assign PCIe clocks Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 088/108] arm64: dts: imx8: conn: fix enet clock setting Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 089/108] thermal/core: Correct function name thermal_zone_device_unregister() Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 090/108] thermal/drivers/rcar_gen3_thermal: Do not shadow rcar_gen3_ths_tj_1 Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 091/108] thermal/drivers/imx_sc: Add missing of_node_put for loop iteration Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 092/108] thermal/drivers/sprd: " Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 093/108] arm64: dts: qcom: sm8250: Fix pcie2_lane unit address Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 094/108] arm64: dts: qcom: sm8150: Disable Adreno and modem by default Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 095/108] kbuild: mkcompile_h: consider timestamp if KBUILD_BUILD_TIMESTAMP is set Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 096/108] arch/arm64/boot/dts/marvell: fix NAND partitioning scheme Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 097/108] rtc: max77686: Do not enforce (incorrect) interrupt trigger type Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 098/108] scsi: aic7xxx: Fix unintentional sign extension issue on left shift of u8 Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 099/108] scsi: libsas: Add LUN number check in .slave_alloc callback Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 100/108] scsi: be2iscsi: Fix some missing space in some messages Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 101/108] scsi: libfc: Fix array index out of bound exception Sasha Levin
2021-07-14 19:37 ` Sasha Levin [this message]
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 103/108] sched/fair: Fix CFS bandwidth hrtimer expiry type Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 104/108] perf/x86/intel/uncore: Clean up error handling path of iio mapping Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 105/108] thermal/core/thermal_of: Stop zone device before unregistering it Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 106/108] s390/traps: do not test MONITOR CALL without CONFIG_BUG Sasha Levin
2021-07-14 19:37 ` [PATCH AUTOSEL 5.13 107/108] s390: introduce proper type handling call_on_stack() macro Sasha Levin
2021-07-14 19:38 ` [PATCH AUTOSEL 5.13 108/108] cifs: prevent NULL deref in cifs_compose_mount_options() Sasha Levin
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=20210714193800.52097-102-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=jhasan@marvell.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@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).