Re: [PATCH v3 1/4] Bluetooth: MGMT: Use hci_dev_test_and_{set,clear}_flag

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Luiz,

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

I really Fixes: tags for these.

> 
> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx>
> ---
> v2: Fix marking Device Privacy Flag even when adapter is not capable of
> handling Set Privacy Mode.
> v3: Add patch for using hci_dev_test_and_{set,clear}_flag and split
> changes reworking how HCI_CONN_FLAG_REMOTE_WAKEUP is set and make use of
> bitmap to store the supported flags.
> 
> net/bluetooth/mgmt.c | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
> index f8f74d344297..0f91bf15e260 100644
> --- a/net/bluetooth/mgmt.c
> +++ b/net/bluetooth/mgmt.c
> @@ -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);

Regards

Marcel




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux