On Tue, 2021-10-05 at 09:56 +0530, Kiran K wrote: > Intel Read Verision(TLV) data is parsed into a local structure > variable > and it contains a field for bd address. Bd address is returned only > in > bootloader mode and hence bd address in TLV structure needs to be > validated > only if controller is present in boot loader mode. > Reviewed-by: Tedd Ho-Jeong An <tedd.an@xxxxxxxxx> > Signed-off-by: Kiran K <kiran.k@xxxxxxxxx> > --- > drivers/bluetooth/btintel.c | 19 +++++++++++-------- > 1 file changed, 11 insertions(+), 8 deletions(-) > > diff --git a/drivers/bluetooth/btintel.c > b/drivers/bluetooth/btintel.c > index 9359bff47296..d1703cc99705 100644 > --- a/drivers/bluetooth/btintel.c > +++ b/drivers/bluetooth/btintel.c > @@ -2081,14 +2081,16 @@ static int > btintel_prepare_fw_download_tlv(struct hci_dev *hdev, > if (ver->img_type == 0x03) { > btintel_clear_flag(hdev, INTEL_BOOTLOADER); > btintel_check_bdaddr(hdev); > - } > - > - /* If the OTP has no valid Bluetooth device address, then there > will > - * also be no valid address for the operational firmware. > - */ > - if (!bacmp(&ver->otp_bd_addr, BDADDR_ANY)) { > - bt_dev_info(hdev, "No device address configured"); > - set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); > + } else { > + /* > + * Check for valid bd address in boot loader mode. > Device > + * will be marked as unconfigured if empty bd address > is > + * found. > + */ > + if (!bacmp(&ver->otp_bd_addr, BDADDR_ANY)) { > + bt_dev_info(hdev, "No device address > configured"); > + set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev- > >quirks); > + } > } > > btintel_get_fw_name_tlv(ver, fwname, sizeof(fwname), "sfi"); > @@ -2466,6 +2468,7 @@ static int btintel_setup_combined(struct > hci_dev *hdev) > goto exit_error; > } > > + memset(&ver_tlv, 0, sizeof(ver_tlv)); > /* For TLV type device, parse the tlv data */ > err = btintel_parse_version_tlv(hdev, &ver_tlv, skb); > if (err) {