lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20260108074353.1027877-1-shuai.zhang@oss.qualcomm.com>
Date: Thu,  8 Jan 2026 15:43:53 +0800
From: Shuai Zhang <shuai.zhang@....qualcomm.com>
To: Marcel Holtmann <marcel@...tmann.org>,
        Luiz Augusto von Dentz <luiz.dentz@...il.com>
Cc: linux-bluetooth@...r.kernel.org, linux-kernel@...r.kernel.org,
        linux-arm-msm@...r.kernel.org, cheng.jiang@....qualcomm.com,
        quic_chezhou@...cinc.com, wei.deng@....qualcomm.com,
        jinwang.li@....qualcomm.com, mengshi.wu@....qualcomm.com,
        shuai.zhang@....qualcomm.com
Subject: [PATCH v1] Bluetooth: btusb: Allow firmware re-download when version matches

Since USB can disconnect at any time, if it disconnects during
the BT firmware download, the BT controller firmware version may still
be updated even without completing the download.

When USB reconnects, the BT host detects the same version as in the
firmware file, which prevents the firmware from being downloaded again.

Therefore, remove the equality check to ensure that after
USB reconnection, the BT host can still download the firmware.

Signed-off-by: Shuai Zhang <shuai.zhang@....qualcomm.com>
---
 drivers/bluetooth/btusb.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 646de80c7..991064a25 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -3503,7 +3503,10 @@ static int btusb_setup_qca_load_rampatch(struct hci_dev *hdev,
 		    "firmware rome 0x%x build 0x%x",
 		    rver_rom, rver_patch, ver_rom, ver_patch);
 
-	if (rver_rom != ver_rom || rver_patch <= ver_patch) {
+	/* Allow rampatch if version is greater than or equal to firmware version.
+	 * Equal versions are acceptable for re-flashing or recovery scenarios.
+	 */
+	if (rver_rom != ver_rom || rver_patch < ver_patch) {
 		bt_dev_err(hdev, "rampatch file version did not match with firmware");
 		err = -EINVAL;
 		goto done;
-- 
2.34.1


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ