Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cdba5281 authored by Marcel Holtmann's avatar Marcel Holtmann Committed by Johan Hedberg
Browse files

Bluetooth: Restrict SSP setting changes to BR/EDR enabled controllers



Only when BR/EDR is supported and enabled, allow changing of the SSP
setting. Just checking if the hardware supports SSP is not enough
since it might be the case that BR/EDR is disabled.

In the case that BR/EDR is disabled, but SSP supported by the
controller the not supported error message is now returned.

Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
parent 3b166295
Loading
Loading
Loading
Loading
+5 −1
Original line number Original line Diff line number Diff line
@@ -1296,11 +1296,15 @@ static int set_ssp(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
{
{
	struct mgmt_mode *cp = data;
	struct mgmt_mode *cp = data;
	struct pending_cmd *cmd;
	struct pending_cmd *cmd;
	u8 val;
	u8 val, status;
	int err;
	int err;


	BT_DBG("request for %s", hdev->name);
	BT_DBG("request for %s", hdev->name);


	status = mgmt_bredr_support(hdev);
	if (status)
		return cmd_status(sk, hdev->id, MGMT_OP_SET_SSP, status);

	if (!lmp_ssp_capable(hdev))
	if (!lmp_ssp_capable(hdev))
		return cmd_status(sk, hdev->id, MGMT_OP_SET_SSP,
		return cmd_status(sk, hdev->id, MGMT_OP_SET_SSP,
				  MGMT_STATUS_NOT_SUPPORTED);
				  MGMT_STATUS_NOT_SUPPORTED);