Bluetooth: hci_bcm: do not mark valid bd_addr as invalid
authorJohan Hovold <johan+linaro@kernel.org>
Fri, 2 Jun 2023 08:19:12 +0000 (10:19 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 29 Jun 2023 17:52:08 +0000 (10:52 -0700)
commit56b7f325db139c9255b1eb1d1e741576d5f8fa34
treeeea23f953f325b833e2ed560576ddb9abe654f40
parent1728137b33c00d5a2b5110ed7aafb42e7c32e4a1
Bluetooth: hci_bcm: do not mark valid bd_addr as invalid

A recent commit restored the original (and still documented) semantics
for the HCI_QUIRK_USE_BDADDR_PROPERTY quirk so that the device address
is considered invalid unless an address is provided by firmware.

This specifically means that this flag must only be set for devices with
invalid addresses, but the Broadcom driver has so far been setting this
flag unconditionally.

Fortunately the driver already checks for invalid addresses during setup
and sets the HCI_QUIRK_INVALID_BDADDR flag. Use this flag to indicate
when the address can be overridden by firmware (long term, this should
probably just always be allowed).

Fixes: 6945795bc81a ("Bluetooth: fix use-bdaddr-property quirk")
Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Link: https://lore.kernel.org/lkml/ecef83c8-497f-4011-607b-a63c24764867@samsung.com
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/bluetooth/hci_bcm.c