Bluetooth: MGMT: Fix not checking if BT_HS is enabled

commit b560a208cda0297fef6ff85bbfd58a8f0a52a543 upstream.

This checks if BT_HS is enabled relecting it on MGMT_SETTING_HS instead
of always reporting it as supported.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Luiz Augusto von Dentz 2020-08-06 11:17:14 -07:00 committed by Greg Kroah-Hartman
parent 360f80e342
commit 7b2e80606a

View file

@ -756,7 +756,8 @@ static u32 get_supported_settings(struct hci_dev *hdev)
if (lmp_ssp_capable(hdev)) { if (lmp_ssp_capable(hdev)) {
settings |= MGMT_SETTING_SSP; settings |= MGMT_SETTING_SSP;
settings |= MGMT_SETTING_HS; if (IS_ENABLED(CONFIG_BT_HS))
settings |= MGMT_SETTING_HS;
} }
if (lmp_sc_capable(hdev)) if (lmp_sc_capable(hdev))
@ -1771,6 +1772,10 @@ static int set_hs(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
BT_DBG("request for %s", hdev->name); BT_DBG("request for %s", hdev->name);
if (!IS_ENABLED(CONFIG_BT_HS))
return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS,
MGMT_STATUS_NOT_SUPPORTED);
status = mgmt_bredr_support(hdev); status = mgmt_bredr_support(hdev);
if (status) if (status)
return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, status); return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, status);