Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Bluetooth: ISO: Fix not updating BIS sender source address

The source address for a BIS sender/Broadcast Source shall be updated
with the advertisement address since in case privacy is enabled it may
use an RPA rather than an identity address.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

+19
+19
net/bluetooth/iso.c
··· 2034 2034 BT_DBG("conn %p", conn); 2035 2035 2036 2036 if (sk) { 2037 + /* Attempt to update source address in case of BIS Sender if 2038 + * the advertisement is using a random address. 2039 + */ 2040 + if (conn->hcon->type == BIS_LINK && 2041 + conn->hcon->role == HCI_ROLE_MASTER && 2042 + !bacmp(&conn->hcon->dst, BDADDR_ANY)) { 2043 + struct hci_conn *bis = conn->hcon; 2044 + struct adv_info *adv; 2045 + 2046 + adv = hci_find_adv_instance(bis->hdev, 2047 + bis->iso_qos.bcast.bis); 2048 + if (adv && bacmp(&adv->random_addr, BDADDR_ANY)) { 2049 + lock_sock(sk); 2050 + iso_pi(sk)->src_type = BDADDR_LE_RANDOM; 2051 + bacpy(&iso_pi(sk)->src, &adv->random_addr); 2052 + release_sock(sk); 2053 + } 2054 + } 2055 + 2037 2056 iso_sock_ready(conn->sk); 2038 2057 } else { 2039 2058 hcon = conn->hcon;