From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> The msft_opcode shall only be changed while at the setup stage otherwise it can possible cause problems where different opcodes are used while running. Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> --- v2: Fix typos: s/extention/extension/g include/net/bluetooth/hci_core.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h index dd8840e70e25..eb5d4ea88c3a 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h @@ -1272,11 +1272,15 @@ int hci_recv_diag(struct hci_dev *hdev, struct sk_buff *skb); __printf(2, 3) void hci_set_hw_info(struct hci_dev *hdev, const char *fmt, ...); __printf(2, 3) void hci_set_fw_info(struct hci_dev *hdev, const char *fmt, ...); -static inline void hci_set_msft_opcode(struct hci_dev *hdev, __u16 opcode) +static inline int hci_set_msft_opcode(struct hci_dev *hdev, __u16 opcode) { + if (!hci_dev_test_flag(hdev, HCI_SETUP)) + return -EPERM; + #if IS_ENABLED(CONFIG_BT_MSFTEXT) hdev->msft_opcode = opcode; #endif + return 0; } static inline void hci_set_aosp_capable(struct hci_dev *hdev) -- 2.31.1