From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Zekun Shen <bruceshenzk@gmail.com>,
Kalle Valo <quic_kvalo@quicinc.com>,
Sasha Levin <sashal@kernel.org>,
ath9k-devel@qca.qualcomm.com, kvalo@kernel.org,
davem@davemloft.net, kuba@kernel.org,
linux-wireless@vger.kernel.org, netdev@vger.kernel.org
Subject: [PATCH AUTOSEL 5.10 077/116] ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
Date: Mon, 17 Jan 2022 21:39:28 -0500 [thread overview]
Message-ID: <20220118024007.1950576-77-sashal@kernel.org> (raw)
In-Reply-To: <20220118024007.1950576-1-sashal@kernel.org>
From: Zekun Shen <bruceshenzk@gmail.com>
[ Upstream commit 6ce708f54cc8d73beca213cec66ede5ce100a781 ]
Large pkt_len can lead to out-out-bound memcpy. Current
ath9k_hif_usb_rx_stream allows combining the content of two urb
inputs to one pkt. The first input can indicate the size of the
pkt. Any remaining size is saved in hif_dev->rx_remain_len.
While processing the next input, memcpy is used with rx_remain_len.
4-byte pkt_len can go up to 0xffff, while a single input is 0x4000
maximum in size (MAX_RX_BUF_SIZE). Thus, the patch adds a check for
pkt_len which must not exceed 2 * MAX_RX_BUG_SIZE.
BUG: KASAN: slab-out-of-bounds in ath9k_hif_usb_rx_cb+0x490/0xed7 [ath9k_htc]
Read of size 46393 at addr ffff888018798000 by task kworker/0:1/23
CPU: 0 PID: 23 Comm: kworker/0:1 Not tainted 5.6.0 #63
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
BIOS rel-1.10.2-0-g5f4c7b1-prebuilt.qemu-project.org 04/01/2014
Workqueue: events request_firmware_work_func
Call Trace:
<IRQ>
dump_stack+0x76/0xa0
print_address_description.constprop.0+0x16/0x200
? ath9k_hif_usb_rx_cb+0x490/0xed7 [ath9k_htc]
? ath9k_hif_usb_rx_cb+0x490/0xed7 [ath9k_htc]
__kasan_report.cold+0x37/0x7c
? ath9k_hif_usb_rx_cb+0x490/0xed7 [ath9k_htc]
kasan_report+0xe/0x20
check_memory_region+0x15a/0x1d0
memcpy+0x20/0x50
ath9k_hif_usb_rx_cb+0x490/0xed7 [ath9k_htc]
? hif_usb_mgmt_cb+0x2d9/0x2d9 [ath9k_htc]
? _raw_spin_lock_irqsave+0x7b/0xd0
? _raw_spin_trylock_bh+0x120/0x120
? __usb_unanchor_urb+0x12f/0x210
__usb_hcd_giveback_urb+0x1e4/0x380
usb_giveback_urb_bh+0x241/0x4f0
? __hrtimer_run_queues+0x316/0x740
? __usb_hcd_giveback_urb+0x380/0x380
tasklet_action_common.isra.0+0x135/0x330
__do_softirq+0x18c/0x634
irq_exit+0x114/0x140
smp_apic_timer_interrupt+0xde/0x380
apic_timer_interrupt+0xf/0x20
I found the bug using a custome USBFuzz port. It's a research work
to fuzz USB stack/drivers. I modified it to fuzz ath9k driver only,
providing hand-crafted usb descriptors to QEMU.
After fixing the value of pkt_tag to ATH_USB_RX_STREAM_MODE_TAG in QEMU
emulation, I found the KASAN report. The bug is triggerable whenever
pkt_len is above two MAX_RX_BUG_SIZE. I used the same input that crashes
to test the driver works when applying the patch.
Signed-off-by: Zekun Shen <bruceshenzk@gmail.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/YXsidrRuK6zBJicZ@10-18-43-117.dynapool.wireless.nyu.edu
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/wireless/ath/ath9k/hif_usb.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c
index 860da13bfb6ac..f06eec99de688 100644
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
@@ -590,6 +590,13 @@ static void ath9k_hif_usb_rx_stream(struct hif_device_usb *hif_dev,
return;
}
+ if (pkt_len > 2 * MAX_RX_BUF_SIZE) {
+ dev_err(&hif_dev->udev->dev,
+ "ath9k_htc: invalid pkt_len (%x)\n", pkt_len);
+ RX_STAT_INC(skb_dropped);
+ return;
+ }
+
pad_len = 4 - (pkt_len & 0x3);
if (pad_len == 4)
pad_len = 0;
--
2.34.1
next prev parent reply other threads:[~2022-01-18 3:03 UTC|newest]
Thread overview: 120+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-18 2:38 [PATCH AUTOSEL 5.10 001/116] Bluetooth: Fix debugfs entry leak in hci_register_dev() Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 002/116] fs: dlm: filter user dlm messages for kernel locks Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 003/116] libbpf: Validate that .BTF and .BTF.ext sections contain data Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 004/116] drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 005/116] selftests/bpf: Fix bpf_object leak in skb_ctx selftest Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 006/116] ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 007/116] drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 008/116] drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 009/116] media: atomisp: fix try_fmt logic Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 010/116] media: atomisp: set per-device's default mode Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 011/116] media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 012/116] ARM: shmobile: rcar-gen2: Add missing of_node_put() Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 013/116] batman-adv: allow netlink usage in unprivileged containers Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 014/116] media: atomisp: handle errors at sh_css_create_isp_params() Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 015/116] ath11k: Fix crash caused by uninitialized TX ring Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 016/116] usb: gadget: f_fs: Use stream_open() for endpoint files Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 017/116] drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 018/116] HID: apple: Do not reset quirks when the Fn key is not found Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 019/116] media: b2c2: Add missing check in flexcop_pci_isr: Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 020/116] EDAC/synopsys: Use the quirk for version instead of ddr version Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 021/116] ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 022/116] drm/amd/display: check top_pipe_to_program pointer Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 023/116] drm/amdgpu/display: set vblank_disable_immediate for DC Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 024/116] soc: ti: pruss: fix referenced node in error message Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 025/116] mlxsw: pci: Add shutdown method in PCI driver Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 026/116] drm/bridge: megachips: Ensure both bridges are probed before registration Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 027/116] tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of .shutdown() Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 028/116] gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 029/116] HSI: core: Fix return freed object in hsi_new_client Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 030/116] crypto: jitter - consider 32 LSB for APT Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 031/116] mwifiex: Fix skb_over_panic in mwifiex_usb_recv() Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 032/116] rsi: Fix use-after-free in rsi_rx_done_handler() Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 033/116] rsi: Fix out-of-bounds read in rsi_read_pkt() Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 034/116] ath11k: Avoid NULL ptr access during mgmt tx cleanup Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 035/116] media: venus: avoid calling core_clk_setrate() concurrently during concurrent video sessions Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 036/116] ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present table Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 037/116] ACPI: Change acpi_device_always_present() into acpi_device_override_status() Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 038/116] ACPI / x86: Allow specifying acpi_device_override_status() quirks by path Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 039/116] ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the GPD win Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 040/116] arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 041/116] usb: uhci: add aspeed ast2600 uhci support Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 042/116] floppy: Add max size check for user space request Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 043/116] x86/mm: Flush global TLB when switching to trampoline page-table Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 044/116] drm: rcar-du: Fix CRTC timings when CMM is used Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 045/116] media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 046/116] media: rcar-vin: Update format alignment constraints Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 047/116] media: saa7146: hexium_orion: Fix a NULL pointer dereference in hexium_attach() Sasha Levin
2022-01-18 2:38 ` [PATCH AUTOSEL 5.10 048/116] media: m920x: don't use stack on USB reads Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 049/116] thunderbolt: Runtime PM activate both ends of the device link Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 050/116] iwlwifi: mvm: synchronize with FW after multicast commands Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 051/116] iwlwifi: mvm: avoid clearing a just saved session protection id Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 052/116] net: dsa: ocelot: felix: Remove requirement for PCS in felix devices Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 053/116] ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 054/116] ath10k: Fix tx hanging Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 055/116] net-sysfs: update the queue counts in the unregistration path Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 056/116] net: phy: prefer 1000baseT over 1000baseKX Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 057/116] gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 058/116] selftests/ftrace: make kprobe profile testcase description unique Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 059/116] net: Enable neighbor sysctls that is save for userns root Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 060/116] ath11k: Avoid false DEADLOCK warning reported by lockdep Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 061/116] x86/mce: Allow instrumentation during task work queueing Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 062/116] x86/mce: Mark mce_panic() noinstr Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 063/116] x86/mce: Mark mce_end() noinstr Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 064/116] x86/mce: Mark mce_read_aux() noinstr Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 065/116] net: bonding: debug: avoid printing debug logs when bond is not notifying peers Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 066/116] bpf: Do not WARN in bpf_warn_invalid_xdp_action() Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 067/116] HID: quirks: Allow inverting the absolute X/Y values Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 068/116] media: igorplugusb: receiver overflow should be reported Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 069/116] media: saa7146: hexium_gemini: Fix a NULL pointer dereference in hexium_attach() Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 070/116] mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 071/116] audit: ensure userspace is penalized the same as the kernel when under pressure Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 072/116] arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 073/116] arm64: tegra: Adjust length of CCPLEX cluster MMIO region Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 074/116] PM: runtime: Add safety net to supplier device release Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 075/116] cpufreq: Fix initialization of min and max frequency QoS requests Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 076/116] usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0 Sasha Levin
2022-01-18 2:39 ` Sasha Levin [this message]
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 078/116] rtw88: 8822c: update rx settings to prevent potential hw deadlock Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 079/116] PM: AVS: qcom-cpr: Use div64_ul instead of do_div Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 080/116] iwlwifi: fix leaks/bad data after failed firmware load Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 081/116] iwlwifi: remove module loading failure message Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 082/116] iwlwifi: mvm: Fix calculation of frame length Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 083/116] iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 084/116] um: registers: Rename function names to avoid conflicts and build problems Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 085/116] ath11k: Fix napi related hang Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 086/116] Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 087/116] xfrm: rate limit SA mapping change message to user space Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 088/116] drm/etnaviv: consider completed fence seqno in hang check Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 089/116] jffs2: GC deadlock reading a page that is used in jffs2_write_begin() Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 090/116] ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 091/116] ACPICA: Utilities: Avoid deleting the same object twice in a row Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 092/116] ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R() Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 093/116] ACPICA: Fix wrong interpretation of PCC address Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 094/116] ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5 Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 095/116] drm/amdgpu: fixup bad vram size on gmc v8 Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 096/116] mfd: intel_soc_pmic: Use CPU-id check instead of _HRV check to differentiate variants Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 097/116] amdgpu/pm: Make sysfs pm attributes as read-only for VFs Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 098/116] ACPI: battery: Add the ThinkPad "Not Charging" quirk Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 099/116] btrfs: remove BUG_ON() in find_parent_nodes() Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 100/116] btrfs: remove BUG_ON(!eie) in find_parent_nodes Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 101/116] net: mdio: Demote probed message to debug print Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 102/116] mac80211: allow non-standard VHT MCS-10/11 Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 103/116] dm btree: add a defensive bounds check to insert_at() Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 104/116] dm space map common: add bounds check to sm_ll_lookup_bitmap() Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 105/116] mlxsw: pci: Avoid flow control for EMAD packets Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 106/116] net: phy: marvell: configure RGMII delays for 88E1118 Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 107/116] net: gemini: allow any RGMII interface mode Sasha Levin
2022-01-18 2:39 ` [PATCH AUTOSEL 5.10 108/116] net: dsa: hold rtnl_mutex when calling dsa_master_{setup,teardown} Sasha Levin
2022-01-18 2:40 ` [PATCH AUTOSEL 5.10 109/116] regulator: qcom_smd: Align probe function with rpmh-regulator Sasha Levin
2022-01-18 2:40 ` [PATCH AUTOSEL 5.10 110/116] serial: pl010: Drop CR register reset on set_termios Sasha Levin
2022-01-18 2:40 ` [PATCH AUTOSEL 5.10 111/116] serial: core: Keep mctrl register state and cached copy in sync Sasha Levin
2022-01-18 2:40 ` [PATCH AUTOSEL 5.10 112/116] random: do not throw away excess input to crng_fast_load Sasha Levin
2022-01-18 2:40 ` [PATCH AUTOSEL 5.10 113/116] parisc: Avoid calling faulthandler_disabled() twice Sasha Levin
2022-01-18 2:40 ` [PATCH AUTOSEL 5.10 114/116] scripts: sphinx-pre-install: Fix ctex support on Debian Sasha Levin
2022-01-18 2:40 ` [PATCH AUTOSEL 5.10 115/116] x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs Sasha Levin
2022-01-18 2:40 ` [PATCH AUTOSEL 5.10 116/116] ext4: allow to change s_last_trim_minblks via sysfs Sasha Levin
2022-01-18 9:03 ` Lukas Czerner
2022-01-22 19:22 ` Sasha Levin
2022-01-18 17:13 ` [PATCH AUTOSEL 5.10 001/116] Bluetooth: Fix debugfs entry leak in hci_register_dev() Pavel Machek
2022-01-22 19:25 ` 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=20220118024007.1950576-77-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=ath9k-devel@qca.qualcomm.com \
--cc=bruceshenzk@gmail.com \
--cc=davem@davemloft.net \
--cc=kuba@kernel.org \
--cc=kvalo@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=quic_kvalo@quicinc.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).