Re: [PATCH] Bluetooth: hci_sync: Fix hci_update_accept_list_sync

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

 



Hi Luiz,

> hci_update_accept_list_sync is returning the filter based on the error
> but that gets overwritten by hci_le_set_addr_resolution_enable_sync
> return instead of using the actual result of the likes of
> hci_le_add_accept_list_sync which was intended.
> 
> Fixes: ad383c2c65a5b ("Bluetooth: hci_sync: Enable advertising when LL privacy is enabled")
> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx>
> ---
> net/bluetooth/hci_sync.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c
> index b66a2271c433..ca51d6138540 100644
> --- a/net/bluetooth/hci_sync.c
> +++ b/net/bluetooth/hci_sync.c
> @@ -1844,7 +1844,7 @@ static u8 hci_update_accept_list_sync(struct hci_dev *hdev)
> 	struct bdaddr_list *b, *t;
> 	u8 num_entries = 0;
> 	bool pend_conn, pend_report;
> -	int err;
> +	int err, ret;
> 
> 	/* Pause advertising if resolving list can be used as controllers are
> 	 * cannot accept resolving list modifications while advertising.
> @@ -1930,6 +1930,8 @@ static u8 hci_update_accept_list_sync(struct hci_dev *hdev)
> 		err = -EINVAL;
> 
> done:
> +	ret = err ? 0x00 : 0x01;
> +
> 	/* Enable address resolution when LL Privacy is enabled. */
> 	err = hci_le_set_addr_resolution_enable_sync(hdev, 0x01);
> 	if (err)
> @@ -1940,7 +1942,7 @@ static u8 hci_update_accept_list_sync(struct hci_dev *hdev)
> 		hci_resume_advertising_sync(hdev);
> 
> 	/* Select filter policy to use accept list */
> -	return err ? 0x00 : 0x01;
> +	return ret;
> }

hmmmmm. I dislike the usage of err and ret together. That makes for some hard to read code (and the return value is u8 and not int).

Maybe doing

	u8 filter_policy = 0x00;

	...

And then

done:
	/* select filter policy to use accept list */
	filter_policy = 0x01;

	...

	return filter_policy;
}

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