mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 10:20:17 -04:00
Merge tag 'for-net-2025-05-30' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
Luiz Augusto von Dentz says: ==================== bluetooth pull request for net: - hci_qca: move the SoC type check to the right place - MGMT: reject malformed HCI_CMD_SYNC commands - btnxpuart: Fix missing devm_request_irq() return value check - L2CAP: Fix not responding with L2CAP_CR_LE_ENCRYPTION * tag 'for-net-2025-05-30' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth: Bluetooth: L2CAP: Fix not responding with L2CAP_CR_LE_ENCRYPTION Bluetooth: hci_qca: move the SoC type check to the right place Bluetooth: btnxpuart: Fix missing devm_request_irq() return value check Bluetooth: MGMT: reject malformed HCI_CMD_SYNC commands ==================== Link: https://patch.msgid.link/20250530174835.405726-1-luiz.dentz@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -533,6 +533,8 @@ static int ps_setup(struct hci_dev *hdev)
|
||||
ps_host_wakeup_irq_handler,
|
||||
IRQF_ONESHOT | IRQF_TRIGGER_FALLING,
|
||||
dev_name(&serdev->dev), nxpdev);
|
||||
if (ret)
|
||||
bt_dev_info(hdev, "error setting wakeup IRQ handler, ignoring\n");
|
||||
disable_irq(psdata->irq_handler);
|
||||
device_init_wakeup(&serdev->dev, true);
|
||||
}
|
||||
|
||||
@@ -2415,14 +2415,14 @@ static int qca_serdev_probe(struct serdev_device *serdev)
|
||||
|
||||
qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable",
|
||||
GPIOD_OUT_LOW);
|
||||
if (IS_ERR(qcadev->bt_en) &&
|
||||
(data->soc_type == QCA_WCN6750 ||
|
||||
data->soc_type == QCA_WCN6855)) {
|
||||
dev_err(&serdev->dev, "failed to acquire BT_EN gpio\n");
|
||||
return PTR_ERR(qcadev->bt_en);
|
||||
}
|
||||
if (IS_ERR(qcadev->bt_en))
|
||||
return dev_err_probe(&serdev->dev,
|
||||
PTR_ERR(qcadev->bt_en),
|
||||
"failed to acquire BT_EN gpio\n");
|
||||
|
||||
if (!qcadev->bt_en)
|
||||
if (!qcadev->bt_en &&
|
||||
(data->soc_type == QCA_WCN6750 ||
|
||||
data->soc_type == QCA_WCN6855))
|
||||
power_ctrl_enabled = false;
|
||||
|
||||
qcadev->sw_ctrl = devm_gpiod_get_optional(&serdev->dev, "swctrl",
|
||||
|
||||
@@ -4870,7 +4870,8 @@ static int l2cap_le_connect_req(struct l2cap_conn *conn,
|
||||
|
||||
if (!smp_sufficient_security(conn->hcon, pchan->sec_level,
|
||||
SMP_ALLOW_STK)) {
|
||||
result = L2CAP_CR_LE_AUTHENTICATION;
|
||||
result = pchan->sec_level == BT_SECURITY_MEDIUM ?
|
||||
L2CAP_CR_LE_ENCRYPTION : L2CAP_CR_LE_AUTHENTICATION;
|
||||
chan = NULL;
|
||||
goto response_unlock;
|
||||
}
|
||||
|
||||
@@ -2566,7 +2566,8 @@ static int mgmt_hci_cmd_sync(struct sock *sk, struct hci_dev *hdev,
|
||||
struct mgmt_pending_cmd *cmd;
|
||||
int err;
|
||||
|
||||
if (len < sizeof(*cp))
|
||||
if (len != (offsetof(struct mgmt_cp_hci_cmd_sync, params) +
|
||||
le16_to_cpu(cp->params_len)))
|
||||
return mgmt_cmd_status(sk, hdev->id, MGMT_OP_HCI_CMD_SYNC,
|
||||
MGMT_STATUS_INVALID_PARAMS);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user