Commit 6f59f991 authored by Luiz Augusto von Dentz's avatar Luiz Augusto von Dentz Committed by Marcel Holtmann
Browse files

Bluetooth: MGMT: Use hci_dev_test_and_{set,clear}_flag



This make use of hci_dev_test_and_{set,clear}_flag instead of doing 2
operations in a row.

Fixes: cbbdfa6f ("Bluetooth: Enable controller RPA resolution using Experimental feature")
Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent 801b4c02
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -4041,10 +4041,10 @@ static int set_zero_key_func(struct sock *sk, struct hci_dev *hdev,
#endif

	if (hdev && use_ll_privacy(hdev) && !hdev_is_powered(hdev)) {
		bool changed = hci_dev_test_flag(hdev, HCI_ENABLE_LL_PRIVACY);

		hci_dev_clear_flag(hdev, HCI_ENABLE_LL_PRIVACY);
		bool changed;

		changed = hci_dev_test_and_clear_flag(hdev,
						      HCI_ENABLE_LL_PRIVACY);
		if (changed)
			exp_ll_privacy_feature_changed(false, hdev, sk);
	}
@@ -4139,15 +4139,15 @@ static int set_rpa_resolution_func(struct sock *sk, struct hci_dev *hdev,
	val = !!cp->param[0];

	if (val) {
		changed = !hci_dev_test_flag(hdev, HCI_ENABLE_LL_PRIVACY);
		hci_dev_set_flag(hdev, HCI_ENABLE_LL_PRIVACY);
		changed = !hci_dev_test_and_set_flag(hdev,
						     HCI_ENABLE_LL_PRIVACY);
		hci_dev_clear_flag(hdev, HCI_ADVERTISING);

		/* Enable LL privacy + supported settings changed */
		flags = BIT(0) | BIT(1);
	} else {
		changed = hci_dev_test_flag(hdev, HCI_ENABLE_LL_PRIVACY);
		hci_dev_clear_flag(hdev, HCI_ENABLE_LL_PRIVACY);
		changed = hci_dev_test_and_clear_flag(hdev,
						      HCI_ENABLE_LL_PRIVACY);

		/* Disable LL privacy + supported settings changed */
		flags = BIT(1);