Received: by 2002:a05:7412:b995:b0:f9:9502:5bb8 with SMTP id it21csp3279582rdb; Wed, 27 Dec 2023 02:11:00 -0800 (PST) X-Google-Smtp-Source: AGHT+IGGVlsYbmQCef2cQPHUeWPT1n6zsNkRASR9/9UgoBbzWkARp2/s2T5lHo92WRvaZKRodsje X-Received: by 2002:ac8:7e95:0:b0:427:ea08:3a44 with SMTP id w21-20020ac87e95000000b00427ea083a44mr1621056qtj.10.1703671859981; Wed, 27 Dec 2023 02:10:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703671859; cv=none; d=google.com; s=arc-20160816; b=wRJju7iuwghtli6EFu8M3wf5LPkIwiIkz/lMLTsVT7w8olQlJqFCvbX+H0ZlXruNI9 lNkikI01xx3wwis3WJJgNpOYY97xPNK/QsllWZFcM8uA3SSG59rDTerSILQ+yV6AbyUv GxC0kN7oFzF5v6xQ+Kx7dWPpipR6lYRkFpX1DeBGYgGnOK62oE8lorUMMCiRW58cgsf6 JiYaiO5rla/mr817gQfRqqUXvI5IVLamptw6Ua98waqZqBdDYKkkM/v/Xvp6aT7QbrEV rtnZfcCirQmPoozdMcyYUeW4OOTKmgbJvH1TOAecm/d3AQl1khWj0R6+TjfVb5QJZCjj wuWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=FXV/9CTRwRGx6Id56quWsJE8ZuocQj6UkA3IPfNWKu8=; fh=HvX4MXumK0mWi/uecPr6fGFwCMBxb7Yw5+pClJW60y0=; b=V0QMOUkceNXRTwPHfZyRLO0LgIi4/U3NvzXfYM93ruiv2HYWzsBAQLKmFO9cDwr7fJ nC3eLG5Rp9pAtPM2wsZTGElQ29eJUH9P4bMqk+mBUpczTNAeYHG4rg2in64dfq0Xh94E 13V1+FMq8ulzdLTvBeOEpvWtA0Hbd9Q0IwigL3z34HPUvbaZOL/ux03M21X0zPYjAVb8 0bRVmxIEJaH5bRU/NQHCiZkBIwbuKHR52/p5mebMFNSPHQK+InK0lujih2nf+lVYpfS1 LZmfg5Jfx3bwfgVOHHEDd3CVn5haXk6jwobbeoKEsgKayk3v8Rs3xzwr/MoZ7hcl+Mi+ MyPQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=OE5gY3Rg; spf=pass (google.com: domain of linux-kernel+bounces-11948-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-11948-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id t9-20020a05622a148900b00427f03f7168si473459qtx.108.2023.12.27.02.10.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Dec 2023 02:10:59 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-11948-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=OE5gY3Rg; spf=pass (google.com: domain of linux-kernel+bounces-11948-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-11948-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id B4E471C20DBE for ; Wed, 27 Dec 2023 10:10:59 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5AB932D033; Wed, 27 Dec 2023 10:10:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="OE5gY3Rg" X-Original-To: linux-kernel@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 731F42D602; Wed, 27 Dec 2023 10:10:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1F71C433C8; Wed, 27 Dec 2023 10:10:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1703671849; bh=HNX2qe5wIUjgAOE0bih0cYXbYbw77i5qRYAGTFhWf8Q=; h=From:To:Cc:Subject:Date:From; b=OE5gY3RgSNMMNpr/DemitpLvv8B5KUxkea+huKa97KhEilNAbl/OG/gZPSswoI3kl ifwN2LiGgFt8jyQh8hVsCoIrrOOGgiqeJ9ivyZI86fxAmaICglCBVc65vzpPozQdYn YsryqO/D6A6i3egHRr7G52DifE/DihYN9uZqhAIHTY+ESsr/mJvwodvV8HNt60TaF9 dFeWSj4rAgt/QaclFNs1wznkamzzJ3UloOq2NJbzC3F6ILEsWfuPRm8iKBlgwdNTZ+ bn4JmN3Zh0Mr2uaTVg902uWeLcZ93sY9BmqH1AOBDEXTlUvPd7n6xVrSnOLfdlTR5k O5JKLTyyjvyTQ== Received: from johan by xi.lan with local (Exim 4.96.2) (envelope-from ) id 1rIQs7-0002kc-0u; Wed, 27 Dec 2023 11:10:44 +0100 From: Johan Hovold To: Luiz Augusto von Dentz , Marcel Holtmann , Johan Hedberg Cc: Hector Martin , Sven Peter , Alyssa Rosenzweig , asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-bluetooth@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Felix Zhang Subject: [PATCH] Bluetooth: hci_bcm4377: do not mark valid bd_addr as invalid Date: Wed, 27 Dec 2023 11:10:03 +0100 Message-ID: <20231227101003.10534-1-johan+linaro@kernel.org> X-Mailer: git-send-email 2.41.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 BCM4377 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, which can simply be replaced with HCI_QUIRK_USE_BDADDR_PROPERTY to indicate that the default address is invalid but can be overridden by firmware (long term, this should probably just always be allowed). Fixes: 6945795bc81a ("Bluetooth: fix use-bdaddr-property quirk") Cc: stable@vger.kernel.org # 6.5 Reported-by: Felix Zhang Link: https://lore.kernel.org/r/77419ffacc5b4875e920e038332575a2a5bff29f.camel@mrman314.tech/ Signed-off-by: Johan Hovold --- drivers/bluetooth/hci_bcm4377.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/bluetooth/hci_bcm4377.c b/drivers/bluetooth/hci_bcm4377.c index a61757835695..9a7243d5db71 100644 --- a/drivers/bluetooth/hci_bcm4377.c +++ b/drivers/bluetooth/hci_bcm4377.c @@ -1417,7 +1417,7 @@ static int bcm4377_check_bdaddr(struct bcm4377_data *bcm4377) bda = (struct hci_rp_read_bd_addr *)skb->data; if (!bcm4377_is_valid_bdaddr(bcm4377, &bda->bdaddr)) - set_bit(HCI_QUIRK_INVALID_BDADDR, &bcm4377->hdev->quirks); + set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &bcm4377->hdev->quirks); kfree_skb(skb); return 0; @@ -2368,7 +2368,6 @@ static int bcm4377_probe(struct pci_dev *pdev, const struct pci_device_id *id) hdev->set_bdaddr = bcm4377_hci_set_bdaddr; hdev->setup = bcm4377_hci_setup; - set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks); if (bcm4377->hw->broken_mws_transport_config) set_bit(HCI_QUIRK_BROKEN_MWS_TRANSPORT_CONFIG, &hdev->quirks); if (bcm4377->hw->broken_ext_scan) -- 2.41.0