Hi Kiran, > 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. > > 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)); this change is not described in the commit message. Why is that now out of a sudden needed? Regards Marcel