public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Iulia Tanasescu <iulia.tanasescu@nxp.com>,
	Luiz Augusto von Dentz <luiz.von.dentz@intel.com>,
	Sasha Levin <sashal@kernel.org>,
	marcel@holtmann.org, johan.hedberg@gmail.com,
	luiz.dentz@gmail.com, linux-bluetooth@vger.kernel.org
Subject: [PATCH AUTOSEL 6.7 097/108] Bluetooth: ISO: Avoid creating child socket if PA sync is terminating
Date: Tue, 16 Jan 2024 14:40:03 -0500	[thread overview]
Message-ID: <20240116194225.250921-97-sashal@kernel.org> (raw)
In-Reply-To: <20240116194225.250921-1-sashal@kernel.org>

From: Iulia Tanasescu <iulia.tanasescu@nxp.com>

[ Upstream commit 9f150019f176078144b02c4b9b9dbe7fd5a2fcc3 ]

When a PA sync socket is closed, the associated hcon is also unlinked
and cleaned up. If there are no other hcons marked with the
HCI_CONN_PA_SYNC flag, HCI_OP_LE_PA_TERM_SYNC is sent to controller.

Between the time of the command and the moment PA sync is terminated
in controller, residual BIGInfo reports might continue to come.
This causes a new PA sync hcon to be added, and a new socket to be
notified to user space.

This commit fixs this by adding a flag on a Broadcast listening
socket to mark when the PA sync child has been closed.

This flag is checked when BIGInfo reports are indicated in
iso_connect_ind, to avoid recreating a hcon and socket if
residual reports arrive before PA sync is terminated.

Signed-off-by: Iulia Tanasescu <iulia.tanasescu@nxp.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 net/bluetooth/iso.c | 51 ++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 48 insertions(+), 3 deletions(-)

diff --git a/net/bluetooth/iso.c b/net/bluetooth/iso.c
index 07b80e97aead..fd81289fd3e5 100644
--- a/net/bluetooth/iso.c
+++ b/net/bluetooth/iso.c
@@ -54,6 +54,7 @@ static void iso_sock_kill(struct sock *sk);
 enum {
 	BT_SK_BIG_SYNC,
 	BT_SK_PA_SYNC,
+	BT_SK_PA_SYNC_TERM,
 };
 
 struct iso_pinfo {
@@ -82,6 +83,11 @@ static bool iso_match_sid(struct sock *sk, void *data);
 static bool iso_match_sync_handle(struct sock *sk, void *data);
 static void iso_sock_disconn(struct sock *sk);
 
+typedef bool (*iso_sock_match_t)(struct sock *sk, void *data);
+
+static struct sock *iso_get_sock_listen(bdaddr_t *src, bdaddr_t *dst,
+					iso_sock_match_t match, void *data);
+
 /* ---- ISO timers ---- */
 #define ISO_CONN_TIMEOUT	(HZ * 40)
 #define ISO_DISCONN_TIMEOUT	(HZ * 2)
@@ -190,10 +196,21 @@ static void iso_chan_del(struct sock *sk, int err)
 	sock_set_flag(sk, SOCK_ZAPPED);
 }
 
+static bool iso_match_conn_sync_handle(struct sock *sk, void *data)
+{
+	struct hci_conn *hcon = data;
+
+	if (test_bit(BT_SK_PA_SYNC, &iso_pi(sk)->flags))
+		return false;
+
+	return hcon->sync_handle == iso_pi(sk)->sync_handle;
+}
+
 static void iso_conn_del(struct hci_conn *hcon, int err)
 {
 	struct iso_conn *conn = hcon->iso_data;
 	struct sock *sk;
+	struct sock *parent;
 
 	if (!conn)
 		return;
@@ -209,6 +226,25 @@ static void iso_conn_del(struct hci_conn *hcon, int err)
 
 	if (sk) {
 		lock_sock(sk);
+
+		/* While a PA sync hcon is in the process of closing,
+		 * mark parent socket with a flag, so that any residual
+		 * BIGInfo adv reports that arrive before PA sync is
+		 * terminated are not processed anymore.
+		 */
+		if (test_bit(BT_SK_PA_SYNC, &iso_pi(sk)->flags)) {
+			parent = iso_get_sock_listen(&hcon->src,
+						     &hcon->dst,
+						     iso_match_conn_sync_handle,
+						     hcon);
+
+			if (parent) {
+				set_bit(BT_SK_PA_SYNC_TERM,
+					&iso_pi(parent)->flags);
+				sock_put(parent);
+			}
+		}
+
 		iso_sock_clear_timer(sk);
 		iso_chan_del(sk, err);
 		release_sock(sk);
@@ -545,8 +581,6 @@ static struct sock *__iso_get_sock_listen_by_sid(bdaddr_t *ba, bdaddr_t *bc,
 	return NULL;
 }
 
-typedef bool (*iso_sock_match_t)(struct sock *sk, void *data);
-
 /* Find socket listening:
  * source bdaddr (Unicast)
  * destination bdaddr (Broadcast only)
@@ -1759,9 +1793,20 @@ int iso_connect_ind(struct hci_dev *hdev, bdaddr_t *bdaddr, __u8 *flags)
 		/* Try to get PA sync listening socket, if it exists */
 		sk = iso_get_sock_listen(&hdev->bdaddr, bdaddr,
 						iso_match_pa_sync_flag, NULL);
-		if (!sk)
+
+		if (!sk) {
 			sk = iso_get_sock_listen(&hdev->bdaddr, bdaddr,
 						 iso_match_sync_handle, ev2);
+
+			/* If PA Sync is in process of terminating,
+			 * do not handle any more BIGInfo adv reports.
+			 */
+
+			if (sk && test_bit(BT_SK_PA_SYNC_TERM,
+					   &iso_pi(sk)->flags))
+				return lm;
+		}
+
 		if (sk) {
 			int err;
 
-- 
2.43.0


  parent reply	other threads:[~2024-01-16 19:46 UTC|newest]

Thread overview: 125+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-16 19:38 [PATCH AUTOSEL 6.7 001/108] wifi: rtw89: fix timeout calculation in rtw89_roc_end() Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 002/108] wifi: rt2x00: restart beacon queue when hardware reset Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 003/108] selftests/bpf: fix RELEASE=1 build for tc_opts Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 004/108] selftests/bpf: satisfy compiler by having explicit return in btf test Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 005/108] libbpf: Fix potential uninitialized tail padding with LIBBPF_OPTS_RESET Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 006/108] selftests/bpf: Fix pyperf180 compilation failure with clang18 Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 007/108] wifi: rt2x00: correct wrong BBP register in RxDCOC calibration Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 008/108] selftests/bpf: Fix issues in setup_classid_environment() Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 009/108] ARM: dts: qcom: strip prefix from PMIC files Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 010/108] ARM: dts: qcom: apq8064: fix PMIC node labels Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 011/108] ARM: dts: qcom: mdm9615: " Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 012/108] ARM: dts: qcom: msm8660: " Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 013/108] ARM: dts: qcom: msm8960: " Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 014/108] soc: xilinx: Fix for call trace due to the usage of smp_processor_id() Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 015/108] soc: xilinx: fix unhandled SGI warning message Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 016/108] scsi: lpfc: Fix possible file string name overflow when updating firmware Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 017/108] ARM: dts: samsung: exynos4: fix camera unit addresses/ranges Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 018/108] ARM: dts: samsung: s5pv210: " Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 019/108] net: phy: micrel: fix ts_info value in case of no phc Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 020/108] PCI: Add no PM reset quirk for NVIDIA Spectrum devices Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 021/108] r8169: improve RTL8411b phy-down fixup Sasha Levin
2024-01-17  1:43   ` Jakub Kicinski
2024-01-17 10:30     ` Mirsad Todorovac
2024-01-17 11:10       ` Heiner Kallweit
2024-01-17 13:44       ` Andrew Lunn
2024-01-17 16:35         ` Mirsad Todorovac
2024-01-17 17:04           ` Andrew Lunn
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 022/108] bonding: return -ENOMEM instead of BUG in alb_upper_dev_walk Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 023/108] net: usb: ax88179_178a: avoid two consecutive device resets Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 024/108] wifi: ieee80211: fix PV1 frame control field name Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 025/108] scsi: mpi3mr: Add support for SAS5116 PCI IDs Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 026/108] scsi: mpi3mr: Add PCI checks where SAS5116 diverges from SAS4116 Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 027/108] scsi: arcmsr: Support new PCI device IDs 1883 and 1886 Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 028/108] ARM: dts: imx7d: Fix coresight funnel ports Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 029/108] ARM: dts: imx7s: Fix lcdif compatible Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 030/108] ARM: dts: imx7s: Fix nand-controller #size-cells Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 031/108] bpf: Fix a few selftest failures due to llvm18 change Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 032/108] wifi: ath9k: Fix potential array-index-out-of-bounds read in ath9k_htc_txstatus() Sasha Levin
2024-01-16 19:38 ` [PATCH AUTOSEL 6.7 033/108] wifi: ath11k: fix race due to setting ATH11K_FLAG_EXT_IRQ_ENABLED too early Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 034/108] wifi: rtw89: fix not entering PS mode after AP stops Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 035/108] wifi: rtw89: fix misbehavior of TX beacon in concurrent mode Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 036/108] bnxt_en: Add 5760X (P7) PCI IDs Sasha Levin
2024-01-16 19:47   ` Michael Chan
2024-01-30 21:44     ` Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 037/108] bpf: Check rcu_read_lock_trace_held() before calling bpf map helpers Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 038/108] bpf: Add map and need_defer parameters to .map_fd_put_ptr() Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 039/108] bpf: Set need_defer as false when clearing fd array during map free Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 040/108] wifi: ath12k: fix and enable AP mode for WCN7850 Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 041/108] scsi: libfc: Don't schedule abort twice Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 042/108] scsi: libfc: Fix up timeout error in fc_fcp_rec_error() Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 043/108] net: mvmdio: Avoid excessive sleeps in polled mode Sasha Levin
2024-01-17  1:42   ` Jakub Kicinski
2024-01-17  1:54     ` Andrew Lunn
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 044/108] usb: typec: ucsi: fix UCSI on buggy Qualcomm devices Sasha Levin
2024-01-17  8:04   ` Johan Hovold
2024-01-17 12:17     ` Dmitry Baryshkov
2024-01-17 12:51       ` Johan Hovold
2024-01-17 16:04       ` Greg KH
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 045/108] arm64: dts: qcom: sm8550: fix soundwire controllers node name Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 046/108] arm64: dts: qcom: sm8450: " Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 047/108] arm64: dts: qcom: sm8350: Fix remoteproc interrupt type Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 048/108] wifi: mt76: connac: fix EHT phy mode check Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 049/108] wifi: mt76: mt7996: add PCI IDs for mt7992 Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 050/108] net: wangxun: fix changing mac failed when running Sasha Levin
2024-01-17  1:39   ` Jakub Kicinski
2024-01-30 22:51     ` Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 051/108] bpf: Guard stack limits against 32bit overflow Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 052/108] bpf: Set uattr->batch.count as zero before batched update or deletion Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 053/108] wifi: wfx: fix possible NULL pointer dereference in wfx_set_mfp_ap() Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 054/108] wifi: ath12k: fix the issue that the multicast/broadcast indicator is not read correctly for WCN7850 Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 055/108] ARM: dts: rockchip: fix rk3036 hdmi ports node Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 056/108] ARM: dts: imx25/27-eukrea: Fix RTC node name Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 057/108] ARM: dts: imx: Use flash@0,0 pattern Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 058/108] ARM: dts: imx27: Fix sram node Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 059/108] ARM: dts: imx1: " Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 060/108] net: phy: at803x: fix passing the wrong reference for config_intr Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 061/108] ionic: pass opcode to devcmd_wait Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 062/108] ionic: bypass firmware cmds when stuck in reset Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 063/108] block/rnbd-srv: Check for unlikely string overflow Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 064/108] arm64: zynqmp: Move fixed clock to / for kv260 Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 065/108] arm64: zynqmp: Fix clock node name in kv260 cards Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 066/108] selftests/bpf: fix compiler warnings in RELEASE=1 mode Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 067/108] ARM: dts: imx25: Fix the iim compatible string Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 068/108] ARM: dts: imx25/27: Pass timing0 Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 069/108] ARM: dts: imx27-apf27dev: Fix LED name Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 070/108] ARM: dts: imx23-sansa: Use preferred i2c-gpios properties Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 071/108] ARM: dts: imx23/28: Fix the DMA controller node name Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 072/108] scsi: lpfc: Reinitialize an NPIV's VMID data structures after FDISC Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 073/108] scsi: lpfc: Move determination of vmid_flag after VMID reinitialization completes Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 074/108] scsi: hisi_sas: Set .phy_attached before notifing phyup event HISI_PHYE_PHY_UP_PM Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 075/108] ice: fix ICE_AQ_VSI_Q_OPT_RSS_* register values Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 076/108] net: atlantic: eliminate double free in error handling logic Sasha Levin
2024-01-17  1:38   ` Jakub Kicinski
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 077/108] net: dsa: mv88e6xxx: Fix mv88e6352_serdes_get_stats error path Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 078/108] ARM: dts: marvell: Fix some common switch mistakes Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 079/108] ARM64: " Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 080/108] block: prevent an integer overflow in bvec_try_merge_hw_page Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 081/108] md: Whenassemble the array, consult the superblock of the freshest device Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 082/108] cfi: Add CFI_NOSEAL() Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 083/108] x86/cfi,bpf: Fix bpf_exception_cb() signature Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 084/108] arm64: dts: qcom: msm8996: Fix 'in-ports' is a required property Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 085/108] arm64: dts: qcom: msm8998: Fix 'out-ports' " Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 086/108] arm64: dts: qcom: Fix coresight warnings in in-ports and out-ports Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 087/108] intel: add bit macro includes where needed Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 088/108] ice: fix pre-shifted bit usage Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 089/108] arm64: dts: amlogic: fix format for s4 uart node Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 090/108] wifi: rtl8xxxu: Add additional USB IDs for RTL8192EU devices Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 091/108] wifi: rtw89: coex: Fix wrong Wi-Fi role info and FDDT parameter members Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 092/108] libbpf: Fix NULL pointer dereference in bpf_object__collect_prog_relos Sasha Levin
2024-01-16 19:39 ` [PATCH AUTOSEL 6.7 093/108] wifi: rtlwifi: add calculate_bit_shift() Sasha Levin
2024-01-16 19:40 ` [PATCH AUTOSEL 6.7 094/108] wifi: rtlwifi: rtl8723{be,ae}: using calculate_bit_shift() Sasha Levin
2024-01-16 19:40 ` [PATCH AUTOSEL 6.7 095/108] wifi: cfg80211: free beacon_ies when overridden from hidden BSS Sasha Levin
2024-01-16 19:40 ` [PATCH AUTOSEL 6.7 096/108] Bluetooth: qca: Set both WIDEBAND_SPEECH and LE_STATES quirks for QCA2066 Sasha Levin
2024-01-16 19:40 ` Sasha Levin [this message]
2024-01-16 19:40 ` [PATCH AUTOSEL 6.7 098/108] Bluetooth: hci_sync: fix BR/EDR wakeup bug Sasha Levin
2024-01-16 19:40 ` [PATCH AUTOSEL 6.7 099/108] Bluetooth: L2CAP: Fix possible multiple reject send Sasha Levin
2024-01-16 19:40 ` [PATCH AUTOSEL 6.7 100/108] net/smc: disable SEID on non-s390 archs where virtual ISM may be used Sasha Levin
2024-01-16 19:40 ` [PATCH AUTOSEL 6.7 101/108] bridge: cfm: fix enum typo in br_cc_ccm_tx_parse Sasha Levin
2024-01-16 19:40 ` [PATCH AUTOSEL 6.7 102/108] arm64: dts: sprd: Add clock reference for pll2 on UMS512 Sasha Levin
2024-01-16 19:40 ` [PATCH AUTOSEL 6.7 103/108] arm64: dts: sprd: Change UMS512 idle-state nodename to match bindings Sasha Levin
2024-01-16 19:40 ` [PATCH AUTOSEL 6.7 104/108] i40e: Fix VF disable behavior to block all traffic Sasha Levin
2024-01-16 19:40 ` [PATCH AUTOSEL 6.7 105/108] octeontx2-af: Fix max NPC MCAM entry check while validating ref_entry Sasha Levin
2024-01-16 19:40 ` [PATCH AUTOSEL 6.7 106/108] net: kcm: fix direct access to bv_len Sasha Levin
2024-01-16 19:40 ` [PATCH AUTOSEL 6.7 107/108] net: dsa: qca8k: put MDIO bus OF node on qca8k_mdio_register() failure Sasha Levin
2024-01-16 19:40 ` [PATCH AUTOSEL 6.7 108/108] ARM: dts: usr8200: Fix phy registers 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=20240116194225.250921-97-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=iulia.tanasescu@nxp.com \
    --cc=johan.hedberg@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luiz.dentz@gmail.com \
    --cc=luiz.von.dentz@intel.com \
    --cc=marcel@holtmann.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