Hi Luiz,
Code was checking if random_addr and hdev->rpa match without first
checking if the RPA has not been set (BDADDR_ANY), furthermore it was
clearing HCI_RPA_EXPIRED before the command completes and the RPA is
actually programmed which in case of failure would leave the expired
RPA still set.
Since advertising instance have a similar problem the clearing of
HCI_RPA_EXPIRED has been moved to hci_event.c after checking the random
address is in fact the hdev->rap and then proceed to set the expire
timeout.
Signed-off-by: Luiz Augusto von Dentz <redacted>
---
include/net/bluetooth/hci_core.h | 4 ++
net/bluetooth/hci_event.c | 32 +++++++++----
net/bluetooth/hci_request.c | 81 ++++++++++++++------------------
3 files changed, 61 insertions(+), 56 deletions(-)
patch has been applied to bluetooth-next tree.
Regards
Marcel