linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v6] Bluetooth: Fix SSR (SubSystem Restart) fail when BT_EN is pulled up by hw
@ 2025-08-21 11:50 Shuai Zhang
  2025-08-21 12:07 ` Dmitry Baryshkov
  2025-08-21 12:43 ` [v6] " bluez.test.bot
  0 siblings, 2 replies; 5+ messages in thread
From: Shuai Zhang @ 2025-08-21 11:50 UTC (permalink / raw)
  To: linux-bluetooth, linux-arm-msm; +Cc: quic_bt, Shuai Zhang

When the host actively triggers SSR and collects coredump data,
the Bluetooth stack sends a reset command to the controller. However, due
to the inability to clear the QCA_SSR_TRIGGERED and QCA_IBS_DISABLED bits,
the reset command times out.

To address this, this patch clears the QCA_SSR_TRIGGERED and
QCA_IBS_DISABLED flags and adds a 50ms delay after SSR, but only when
HCI_QUIRK_NON_PERSISTENT_SETUP is not set. This ensures the controller
completes the SSR process when BT_EN is always high due to hardware.

For the purpose of HCI_QUIRK_NON_PERSISTENT_SETUP, please refer to
the comment in `include/net/bluetooth/hci.h`.

The HCI_QUIRK_NON_PERSISTENT_SETUP quirk is associated with BT_EN,
and its presence can be used to determine whether BT_EN is defined in DTS.

After SSR, host will not download the firmware, causing
controller to remain in the IBS_WAKE state. Host needs
to synchronize with the controller to maintain proper operation.

Multiple triggers of SSR only first generate coredump file,
due to memcoredump_flag no clear.

add clear coredump flag when ssr completed.

When the SSR duration exceeds 2 seconds, it triggers
host tx_idle_timeout, which sets host TX state to sleep. due to the
hardware pulling up bt_en, the firmware is not downloaded after the SSR.
As a result, the controller does not enter sleep mode. Consequently,
when the host sends a command afterward, it sends 0xFD to the controller,
but the controller does not respond, leading to a command timeout.

So reset tx_idle_timer after SSR to prevent host enter TX IBS_Sleep mode.

Signed-off-by: Shuai Zhang <quic_shuaz@quicinc.com>
---
 drivers/bluetooth/hci_qca.c | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index 4e56782b0..9dc59b002 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -1653,6 +1653,39 @@ static void qca_hw_error(struct hci_dev *hdev, u8 code)
 		skb_queue_purge(&qca->rx_memdump_q);
 	}
 
+	/*
+	 * If the BT chip's bt_en pin is connected to a 3.3V power supply via
+	 * hardware and always stays high, driver cannot control the bt_en pin.
+	 * As a result, during SSR (SubSystem Restart), QCA_SSR_TRIGGERED and
+	 * QCA_IBS_DISABLED flags cannot be cleared, which leads to a reset
+	 * command timeout.
+	 * Add an msleep delay to ensure controller completes the SSR process.
+	 *
+	 * Host will not download the firmware after SSR, controller to remain
+	 * in the IBS_WAKE state, and the host needs to synchronize with it
+	 *
+	 * Since the bluetooth chip has been reset, clear the memdump state.
+	 */
+	if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
+		/*
+		 * When the SSR (SubSystem Restart) duration exceeds 2 seconds,
+		 * it triggers host tx_idle_delay, which sets host TX state
+		 * to sleep. Reset tx_idle_timer after SSR to prevent
+		 * host enter TX IBS_Sleep mode.
+		 */
+		mod_timer(&qca->tx_idle_timer, jiffies +
+				  msecs_to_jiffies(qca->tx_idle_delay));
+
+		/* Controller reset completion time is 50ms */
+		msleep(50);
+
+		clear_bit(QCA_SSR_TRIGGERED, &qca->flags);
+		clear_bit(QCA_IBS_DISABLED, &qca->flags);
+
+		qca->tx_ibs_state = HCI_IBS_TX_AWAKE;
+		qca->memdump_state = QCA_MEMDUMP_IDLE;
+	}
+
 	clear_bit(QCA_HW_ERROR_EVENT, &qca->flags);
 }
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v6] Bluetooth: Fix SSR (SubSystem Restart) fail when BT_EN is pulled up by hw
  2025-08-21 11:50 [PATCH v6] Bluetooth: Fix SSR (SubSystem Restart) fail when BT_EN is pulled up by hw Shuai Zhang
@ 2025-08-21 12:07 ` Dmitry Baryshkov
  2025-08-21 12:14   ` Shuai Zhang
  2025-08-21 12:43 ` [v6] " bluez.test.bot
  1 sibling, 1 reply; 5+ messages in thread
From: Dmitry Baryshkov @ 2025-08-21 12:07 UTC (permalink / raw)
  To: Shuai Zhang; +Cc: linux-bluetooth, linux-arm-msm, quic_bt

On Thu, Aug 21, 2025 at 07:50:01PM +0800, Shuai Zhang wrote:
> When the host actively triggers SSR and collects coredump data,
> the Bluetooth stack sends a reset command to the controller. However, due
> to the inability to clear the QCA_SSR_TRIGGERED and QCA_IBS_DISABLED bits,
> the reset command times out.
> 
> To address this, this patch clears the QCA_SSR_TRIGGERED and
> QCA_IBS_DISABLED flags and adds a 50ms delay after SSR, but only when
> HCI_QUIRK_NON_PERSISTENT_SETUP is not set. This ensures the controller
> completes the SSR process when BT_EN is always high due to hardware.
> 
> For the purpose of HCI_QUIRK_NON_PERSISTENT_SETUP, please refer to
> the comment in `include/net/bluetooth/hci.h`.
> 
> The HCI_QUIRK_NON_PERSISTENT_SETUP quirk is associated with BT_EN,
> and its presence can be used to determine whether BT_EN is defined in DTS.
> 
> After SSR, host will not download the firmware, causing
> controller to remain in the IBS_WAKE state. Host needs
> to synchronize with the controller to maintain proper operation.
> 
> Multiple triggers of SSR only first generate coredump file,
> due to memcoredump_flag no clear.
> 
> add clear coredump flag when ssr completed.
> 
> When the SSR duration exceeds 2 seconds, it triggers
> host tx_idle_timeout, which sets host TX state to sleep. due to the
> hardware pulling up bt_en, the firmware is not downloaded after the SSR.
> As a result, the controller does not enter sleep mode. Consequently,
> when the host sends a command afterward, it sends 0xFD to the controller,
> but the controller does not respond, leading to a command timeout.
> 
> So reset tx_idle_timer after SSR to prevent host enter TX IBS_Sleep mode.
> 
> Signed-off-by: Shuai Zhang <quic_shuaz@quicinc.com>
> ---
>  drivers/bluetooth/hci_qca.c | 33 +++++++++++++++++++++++++++++++++
>  1 file changed, 33 insertions(+)
> 
> diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
> index 4e56782b0..9dc59b002 100644
> --- a/drivers/bluetooth/hci_qca.c
> +++ b/drivers/bluetooth/hci_qca.c
> @@ -1653,6 +1653,39 @@ static void qca_hw_error(struct hci_dev *hdev, u8 code)
>  		skb_queue_purge(&qca->rx_memdump_q);
>  	}
>  
> +	/*
> +	 * If the BT chip's bt_en pin is connected to a 3.3V power supply via
> +	 * hardware and always stays high, driver cannot control the bt_en pin.
> +	 * As a result, during SSR (SubSystem Restart), QCA_SSR_TRIGGERED and
> +	 * QCA_IBS_DISABLED flags cannot be cleared, which leads to a reset
> +	 * command timeout.
> +	 * Add an msleep delay to ensure controller completes the SSR process.
> +	 *
> +	 * Host will not download the firmware after SSR, controller to remain
> +	 * in the IBS_WAKE state, and the host needs to synchronize with it
> +	 *
> +	 * Since the bluetooth chip has been reset, clear the memdump state.
> +	 */
> +	if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {

Why are you posting patches that don't even build? Which kernel version
was used for developing this patch?

> +		/*
> +		 * When the SSR (SubSystem Restart) duration exceeds 2 seconds,
> +		 * it triggers host tx_idle_delay, which sets host TX state
> +		 * to sleep. Reset tx_idle_timer after SSR to prevent
> +		 * host enter TX IBS_Sleep mode.
> +		 */
> +		mod_timer(&qca->tx_idle_timer, jiffies +
> +				  msecs_to_jiffies(qca->tx_idle_delay));
> +
> +		/* Controller reset completion time is 50ms */
> +		msleep(50);
> +
> +		clear_bit(QCA_SSR_TRIGGERED, &qca->flags);
> +		clear_bit(QCA_IBS_DISABLED, &qca->flags);
> +
> +		qca->tx_ibs_state = HCI_IBS_TX_AWAKE;
> +		qca->memdump_state = QCA_MEMDUMP_IDLE;
> +	}
> +
>  	clear_bit(QCA_HW_ERROR_EVENT, &qca->flags);
>  }
>  
> -- 
> 2.34.1
> 

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v6] Bluetooth: Fix SSR (SubSystem Restart) fail when BT_EN is pulled up by hw
  2025-08-21 12:07 ` Dmitry Baryshkov
@ 2025-08-21 12:14   ` Shuai Zhang
  0 siblings, 0 replies; 5+ messages in thread
From: Shuai Zhang @ 2025-08-21 12:14 UTC (permalink / raw)
  To: Dmitry Baryshkov; +Cc: linux-bluetooth, linux-arm-msm, quic_bt

Hi Dmitry

On 8/21/2025 8:07 PM, Dmitry Baryshkov wrote:
> On Thu, Aug 21, 2025 at 07:50:01PM +0800, Shuai Zhang wrote:
>> When the host actively triggers SSR and collects coredump data,
>> the Bluetooth stack sends a reset command to the controller. However, due
>> to the inability to clear the QCA_SSR_TRIGGERED and QCA_IBS_DISABLED bits,
>> the reset command times out.
>>
>> To address this, this patch clears the QCA_SSR_TRIGGERED and
>> QCA_IBS_DISABLED flags and adds a 50ms delay after SSR, but only when
>> HCI_QUIRK_NON_PERSISTENT_SETUP is not set. This ensures the controller
>> completes the SSR process when BT_EN is always high due to hardware.
>>
>> For the purpose of HCI_QUIRK_NON_PERSISTENT_SETUP, please refer to
>> the comment in `include/net/bluetooth/hci.h`.
>>
>> The HCI_QUIRK_NON_PERSISTENT_SETUP quirk is associated with BT_EN,
>> and its presence can be used to determine whether BT_EN is defined in DTS.
>>
>> After SSR, host will not download the firmware, causing
>> controller to remain in the IBS_WAKE state. Host needs
>> to synchronize with the controller to maintain proper operation.
>>
>> Multiple triggers of SSR only first generate coredump file,
>> due to memcoredump_flag no clear.
>>
>> add clear coredump flag when ssr completed.
>>
>> When the SSR duration exceeds 2 seconds, it triggers
>> host tx_idle_timeout, which sets host TX state to sleep. due to the
>> hardware pulling up bt_en, the firmware is not downloaded after the SSR.
>> As a result, the controller does not enter sleep mode. Consequently,
>> when the host sends a command afterward, it sends 0xFD to the controller,
>> but the controller does not respond, leading to a command timeout.
>>
>> So reset tx_idle_timer after SSR to prevent host enter TX IBS_Sleep mode.
>>
>> Signed-off-by: Shuai Zhang <quic_shuaz@quicinc.com>
>> ---
>>  drivers/bluetooth/hci_qca.c | 33 +++++++++++++++++++++++++++++++++
>>  1 file changed, 33 insertions(+)
>>
>> diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
>> index 4e56782b0..9dc59b002 100644
>> --- a/drivers/bluetooth/hci_qca.c
>> +++ b/drivers/bluetooth/hci_qca.c
>> @@ -1653,6 +1653,39 @@ static void qca_hw_error(struct hci_dev *hdev, u8 code)
>>  		skb_queue_purge(&qca->rx_memdump_q);
>>  	}
>>  
>> +	/*
>> +	 * If the BT chip's bt_en pin is connected to a 3.3V power supply via
>> +	 * hardware and always stays high, driver cannot control the bt_en pin.
>> +	 * As a result, during SSR (SubSystem Restart), QCA_SSR_TRIGGERED and
>> +	 * QCA_IBS_DISABLED flags cannot be cleared, which leads to a reset
>> +	 * command timeout.
>> +	 * Add an msleep delay to ensure controller completes the SSR process.
>> +	 *
>> +	 * Host will not download the firmware after SSR, controller to remain
>> +	 * in the IBS_WAKE state, and the host needs to synchronize with it
>> +	 *
>> +	 * Since the bluetooth chip has been reset, clear the memdump state.
>> +	 */
>> +	if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
> 
> Why are you posting patches that don't even build? Which kernel version
> was used for developing this patch?

Sorry, due to my oversight, I used a newly created branch. 
I will cherry-pick the patch to the linux-next master branch.

> 
>> +		/*
>> +		 * When the SSR (SubSystem Restart) duration exceeds 2 seconds,
>> +		 * it triggers host tx_idle_delay, which sets host TX state
>> +		 * to sleep. Reset tx_idle_timer after SSR to prevent
>> +		 * host enter TX IBS_Sleep mode.
>> +		 */
>> +		mod_timer(&qca->tx_idle_timer, jiffies +
>> +				  msecs_to_jiffies(qca->tx_idle_delay));
>> +
>> +		/* Controller reset completion time is 50ms */
>> +		msleep(50);
>> +
>> +		clear_bit(QCA_SSR_TRIGGERED, &qca->flags);
>> +		clear_bit(QCA_IBS_DISABLED, &qca->flags);
>> +
>> +		qca->tx_ibs_state = HCI_IBS_TX_AWAKE;
>> +		qca->memdump_state = QCA_MEMDUMP_IDLE;
>> +	}
>> +
>>  	clear_bit(QCA_HW_ERROR_EVENT, &qca->flags);
>>  }
>>  
>> -- 
>> 2.34.1
>>
> 
BR,
Shuai


^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [v6] Bluetooth: Fix SSR (SubSystem Restart) fail when BT_EN is pulled up by hw
  2025-08-21 11:50 [PATCH v6] Bluetooth: Fix SSR (SubSystem Restart) fail when BT_EN is pulled up by hw Shuai Zhang
  2025-08-21 12:07 ` Dmitry Baryshkov
@ 2025-08-21 12:43 ` bluez.test.bot
  1 sibling, 0 replies; 5+ messages in thread
From: bluez.test.bot @ 2025-08-21 12:43 UTC (permalink / raw)
  To: linux-bluetooth, quic_shuaz

[-- Attachment #1: Type: text/plain, Size: 24726 bytes --]

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=993996

---Test result---

Test Summary:
CheckPatch                    PENDING   0.36 seconds
GitLint                       PENDING   0.51 seconds
SubjectPrefix                 PASS      0.08 seconds
BuildKernel                   FAIL      19.81 seconds
CheckAllWarning               FAIL      22.39 seconds
CheckSparse                   FAIL      24.49 seconds
BuildKernel32                 FAIL      20.26 seconds
TestRunnerSetup               FAIL      459.86 seconds
TestRunner_l2cap-tester       FAIL      0.10 seconds
TestRunner_iso-tester         FAIL      0.10 seconds
TestRunner_bnep-tester        FAIL      0.10 seconds
TestRunner_mgmt-tester        FAIL      0.10 seconds
TestRunner_rfcomm-tester      FAIL      0.10 seconds
TestRunner_sco-tester         FAIL      0.10 seconds
TestRunner_ioctl-tester       FAIL      0.10 seconds
TestRunner_mesh-tester        FAIL      0.10 seconds
TestRunner_smp-tester         FAIL      0.10 seconds
TestRunner_userchan-tester    FAIL      0.12 seconds
IncrementalBuild              PENDING   0.62 seconds

Details
##############################
Test: CheckPatch - PENDING
Desc: Run checkpatch.pl script
Output:

##############################
Test: GitLint - PENDING
Desc: Run gitlint
Output:

##############################
Test: BuildKernel - FAIL
Desc: Build Kernel for Bluetooth
Output:

In file included from ./include/linux/kernel.h:23,
                 from drivers/bluetooth/hci_qca.c:18:
drivers/bluetooth/hci_qca.c: In function ‘qca_hw_error’:
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:44:37: note: in definition of macro ‘bitop’
   44 |    __builtin_constant_p((uintptr_t)(addr) != (uintptr_t)NULL) && \
      |                                     ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:45:16: note: in definition of macro ‘bitop’
   45 |    (uintptr_t)(addr) != (uintptr_t)NULL &&   \
      |                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:46:50: note: in definition of macro ‘bitop’
   46 |    __builtin_constant_p(*(const unsigned long *)(addr))) ? \
      |                                                  ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:17: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                 ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:32: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
make[4]: *** [scripts/Makefile.build:287: drivers/bluetooth/hci_qca.o] Error 1
make[3]: *** [scripts/Makefile.build:554: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:554: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/github/workspace/src/src/Makefile:2003: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2
##############################
Test: CheckAllWarning - FAIL
Desc: Run linux kernel with all warning enabled
Output:

In file included from ./include/linux/kernel.h:23,
                 from drivers/bluetooth/hci_qca.c:18:
drivers/bluetooth/hci_qca.c: In function ‘qca_hw_error’:
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:44:37: note: in definition of macro ‘bitop’
   44 |    __builtin_constant_p((uintptr_t)(addr) != (uintptr_t)NULL) && \
      |                                     ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:45:16: note: in definition of macro ‘bitop’
   45 |    (uintptr_t)(addr) != (uintptr_t)NULL &&   \
      |                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:46:50: note: in definition of macro ‘bitop’
   46 |    __builtin_constant_p(*(const unsigned long *)(addr))) ? \
      |                                                  ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:17: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                 ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:32: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
make[4]: *** [scripts/Makefile.build:287: drivers/bluetooth/hci_qca.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:554: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:554: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/github/workspace/src/src/Makefile:2003: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2
##############################
Test: CheckSparse - FAIL
Desc: Run sparse tool with linux kernel
Output:

net/bluetooth/af_bluetooth.c:248:25: warning: context imbalance in 'bt_accept_enqueue' - different lock contexts for basic block
net/bluetooth/hci_core.c:85:9: warning: context imbalance in '__hci_dev_get' - different lock contexts for basic block
net/bluetooth/hci_core.c: note: in included file (through include/linux/notifier.h, include/linux/memory_hotplug.h, include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, include/linux/radix-tree.h, ...):
./include/linux/srcu.h:400:9: warning: context imbalance in 'hci_dev_put_srcu' - unexpected unlock
In file included from ./include/linux/kernel.h:23,
                 from drivers/bluetooth/hci_qca.c:18:
drivers/bluetooth/hci_qca.c: In function ‘qca_hw_error’:
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:44:37: note: in definition of macro ‘bitop’
   44 |    __builtin_constant_p((uintptr_t)(addr) != (uintptr_t)NULL) && \
      |                                     ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:45:16: note: in definition of macro ‘bitop’
   45 |    (uintptr_t)(addr) != (uintptr_t)NULL &&   \
      |                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:46:50: note: in definition of macro ‘bitop’
   46 |    __builtin_constant_p(*(const unsigned long *)(addr))) ? \
      |                                                  ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:17: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                 ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:32: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
make[4]: *** [scripts/Makefile.build:287: drivers/bluetooth/hci_qca.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:554: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:554: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
net/bluetooth/hci_event.c: note: in included file (through include/net/bluetooth/hci_core.h):
./include/net/bluetooth/hci.h:2658:47: warning: array of flexible structures
./include/net/bluetooth/hci.h:2744:43: warning: array of flexible structures
net/bluetooth/hci_codec.c: note: in included file:
./include/net/bluetooth/hci_core.h:153:35: warning: array of flexible structures
net/bluetooth/sco.c: note: in included file:
./include/net/bluetooth/hci_core.h:153:35: warning: array of flexible structures
make[1]: *** [/github/workspace/src/src/Makefile:2003: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2
##############################
Test: BuildKernel32 - FAIL
Desc: Build 32bit Kernel for Bluetooth
Output:

In file included from ./include/linux/kernel.h:23,
                 from drivers/bluetooth/hci_qca.c:18:
drivers/bluetooth/hci_qca.c: In function ‘qca_hw_error’:
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:44:37: note: in definition of macro ‘bitop’
   44 |    __builtin_constant_p((uintptr_t)(addr) != (uintptr_t)NULL) && \
      |                                     ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:45:16: note: in definition of macro ‘bitop’
   45 |    (uintptr_t)(addr) != (uintptr_t)NULL &&   \
      |                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:46:50: note: in definition of macro ‘bitop’
   46 |    __builtin_constant_p(*(const unsigned long *)(addr))) ? \
      |                                                  ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:17: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                 ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:32: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
make[4]: *** [scripts/Makefile.build:287: drivers/bluetooth/hci_qca.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:554: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:554: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/github/workspace/src/src/Makefile:2003: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2
##############################
Test: TestRunnerSetup - FAIL
Desc: Setup kernel and bluez for test-runner
Output:
Kernel: 
In file included from ./include/linux/kernel.h:23,
                 from drivers/bluetooth/hci_qca.c:18:
drivers/bluetooth/hci_qca.c: In function ‘qca_hw_error’:
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:44:37: note: in definition of macro ‘bitop’
   44 |    __builtin_constant_p((uintptr_t)(addr) != (uintptr_t)NULL) && \
      |                                     ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:45:16: note: in definition of macro ‘bitop’
   45 |    (uintptr_t)(addr) != (uintptr_t)NULL &&   \
      |                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:46:50: note: in definition of macro ‘bitop’
   46 |    __builtin_constant_p(*(const unsigned long *)(addr))) ? \
      |                                                  ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:17: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                 ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:32: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
make[4]: *** [scripts/Makefile.build:287: drivers/bluetooth/hci_qca.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:554: drivers/bluetooth] Error 2
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [scripts/Makefile.build:554: drivers] Error 2
make[1]: *** [/github/workspace/src/src/Makefile:2003: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2
##############################
Test: TestRunner_l2cap-tester - FAIL
Desc: Run l2cap-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_iso-tester - FAIL
Desc: Run iso-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_bnep-tester - FAIL
Desc: Run bnep-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_mgmt-tester - FAIL
Desc: Run mgmt-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_rfcomm-tester - FAIL
Desc: Run rfcomm-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_sco-tester - FAIL
Desc: Run sco-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_ioctl-tester - FAIL
Desc: Run ioctl-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_mesh-tester - FAIL
Desc: Run mesh-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_smp-tester - FAIL
Desc: Run smp-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_userchan-tester - FAIL
Desc: Run userchan-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: IncrementalBuild - PENDING
Desc: Incremental build with the patches in the series
Output:



---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [v6] Bluetooth: Fix SSR (SubSystem Restart) fail when BT_EN is pulled up by hw
  2025-08-21 12:16 [PATCH v6] " Shuai Zhang
@ 2025-08-21 12:44 ` bluez.test.bot
  0 siblings, 0 replies; 5+ messages in thread
From: bluez.test.bot @ 2025-08-21 12:44 UTC (permalink / raw)
  To: linux-bluetooth, quic_shuaz

[-- Attachment #1: Type: text/plain, Size: 24636 bytes --]

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=994005

---Test result---

Test Summary:
CheckPatch                    PENDING   0.36 seconds
GitLint                       PENDING   0.24 seconds
SubjectPrefix                 PASS      0.12 seconds
BuildKernel                   FAIL      19.92 seconds
CheckAllWarning               FAIL      22.28 seconds
CheckSparse                   FAIL      24.53 seconds
BuildKernel32                 FAIL      19.76 seconds
TestRunnerSetup               FAIL      461.74 seconds
TestRunner_l2cap-tester       FAIL      0.14 seconds
TestRunner_iso-tester         FAIL      0.13 seconds
TestRunner_bnep-tester        FAIL      0.13 seconds
TestRunner_mgmt-tester        FAIL      0.13 seconds
TestRunner_rfcomm-tester      FAIL      0.13 seconds
TestRunner_sco-tester         FAIL      0.13 seconds
TestRunner_ioctl-tester       FAIL      0.13 seconds
TestRunner_mesh-tester        FAIL      0.13 seconds
TestRunner_smp-tester         FAIL      0.13 seconds
TestRunner_userchan-tester    FAIL      0.13 seconds
IncrementalBuild              PENDING   0.72 seconds

Details
##############################
Test: CheckPatch - PENDING
Desc: Run checkpatch.pl script
Output:

##############################
Test: GitLint - PENDING
Desc: Run gitlint
Output:

##############################
Test: BuildKernel - FAIL
Desc: Build Kernel for Bluetooth
Output:

In file included from ./include/linux/kernel.h:23,
                 from drivers/bluetooth/hci_qca.c:18:
drivers/bluetooth/hci_qca.c: In function ‘qca_hw_error’:
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:44:37: note: in definition of macro ‘bitop’
   44 |    __builtin_constant_p((uintptr_t)(addr) != (uintptr_t)NULL) && \
      |                                     ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:45:16: note: in definition of macro ‘bitop’
   45 |    (uintptr_t)(addr) != (uintptr_t)NULL &&   \
      |                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:46:50: note: in definition of macro ‘bitop’
   46 |    __builtin_constant_p(*(const unsigned long *)(addr))) ? \
      |                                                  ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:17: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                 ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:32: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
make[4]: *** [scripts/Makefile.build:287: drivers/bluetooth/hci_qca.o] Error 1
make[3]: *** [scripts/Makefile.build:554: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:554: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/github/workspace/src/src/Makefile:2003: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2
##############################
Test: CheckAllWarning - FAIL
Desc: Run linux kernel with all warning enabled
Output:

In file included from ./include/linux/kernel.h:23,
                 from drivers/bluetooth/hci_qca.c:18:
drivers/bluetooth/hci_qca.c: In function ‘qca_hw_error’:
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:44:37: note: in definition of macro ‘bitop’
   44 |    __builtin_constant_p((uintptr_t)(addr) != (uintptr_t)NULL) && \
      |                                     ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:45:16: note: in definition of macro ‘bitop’
   45 |    (uintptr_t)(addr) != (uintptr_t)NULL &&   \
      |                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:46:50: note: in definition of macro ‘bitop’
   46 |    __builtin_constant_p(*(const unsigned long *)(addr))) ? \
      |                                                  ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:17: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                 ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:32: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
make[4]: *** [scripts/Makefile.build:287: drivers/bluetooth/hci_qca.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:554: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:554: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/github/workspace/src/src/Makefile:2003: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2
##############################
Test: CheckSparse - FAIL
Desc: Run sparse tool with linux kernel
Output:

net/bluetooth/af_bluetooth.c:248:25: warning: context imbalance in 'bt_accept_enqueue' - different lock contexts for basic block
net/bluetooth/hci_core.c:85:9: warning: context imbalance in '__hci_dev_get' - different lock contexts for basic block
net/bluetooth/hci_core.c: note: in included file (through include/linux/notifier.h, include/linux/memory_hotplug.h, include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, include/linux/radix-tree.h, ...):
./include/linux/srcu.h:400:9: warning: context imbalance in 'hci_dev_put_srcu' - unexpected unlock
In file included from ./include/linux/kernel.h:23,
                 from drivers/bluetooth/hci_qca.c:18:
drivers/bluetooth/hci_qca.c: In function ‘qca_hw_error’:
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:44:37: note: in definition of macro ‘bitop’
   44 |    __builtin_constant_p((uintptr_t)(addr) != (uintptr_t)NULL) && \
      |                                     ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:45:16: note: in definition of macro ‘bitop’
   45 |    (uintptr_t)(addr) != (uintptr_t)NULL &&   \
      |                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:46:50: note: in definition of macro ‘bitop’
   46 |    __builtin_constant_p(*(const unsigned long *)(addr))) ? \
      |                                                  ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:17: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                 ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:32: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
make[4]: *** [scripts/Makefile.build:287: drivers/bluetooth/hci_qca.o] Error 1
make[3]: *** [scripts/Makefile.build:554: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:554: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
net/bluetooth/hci_event.c: note: in included file (through include/net/bluetooth/hci_core.h):
./include/net/bluetooth/hci.h:2658:47: warning: array of flexible structures
./include/net/bluetooth/hci.h:2744:43: warning: array of flexible structures
net/bluetooth/hci_codec.c: note: in included file:
./include/net/bluetooth/hci_core.h:153:35: warning: array of flexible structures
net/bluetooth/sco.c: note: in included file:
./include/net/bluetooth/hci_core.h:153:35: warning: array of flexible structures
make[1]: *** [/github/workspace/src/src/Makefile:2003: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2
##############################
Test: BuildKernel32 - FAIL
Desc: Build 32bit Kernel for Bluetooth
Output:

In file included from ./include/linux/kernel.h:23,
                 from drivers/bluetooth/hci_qca.c:18:
drivers/bluetooth/hci_qca.c: In function ‘qca_hw_error’:
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:44:37: note: in definition of macro ‘bitop’
   44 |    __builtin_constant_p((uintptr_t)(addr) != (uintptr_t)NULL) && \
      |                                     ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:45:16: note: in definition of macro ‘bitop’
   45 |    (uintptr_t)(addr) != (uintptr_t)NULL &&   \
      |                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:46:50: note: in definition of macro ‘bitop’
   46 |    __builtin_constant_p(*(const unsigned long *)(addr))) ? \
      |                                                  ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:17: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                 ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:32: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
make[4]: *** [scripts/Makefile.build:287: drivers/bluetooth/hci_qca.o] Error 1
make[3]: *** [scripts/Makefile.build:554: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:554: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/github/workspace/src/src/Makefile:2003: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2
##############################
Test: TestRunnerSetup - FAIL
Desc: Setup kernel and bluez for test-runner
Output:
Kernel: 
In file included from ./include/linux/kernel.h:23,
                 from drivers/bluetooth/hci_qca.c:18:
drivers/bluetooth/hci_qca.c: In function ‘qca_hw_error’:
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:44:37: note: in definition of macro ‘bitop’
   44 |    __builtin_constant_p((uintptr_t)(addr) != (uintptr_t)NULL) && \
      |                                     ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:45:16: note: in definition of macro ‘bitop’
   45 |    (uintptr_t)(addr) != (uintptr_t)NULL &&   \
      |                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:46:50: note: in definition of macro ‘bitop’
   46 |    __builtin_constant_p(*(const unsigned long *)(addr))) ? \
      |                                                  ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:17: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                 ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
drivers/bluetooth/hci_qca.c:1669:53: error: ‘struct hci_dev’ has no member named ‘quirks’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |                                                     ^~
./include/linux/bitops.h:47:32: note: in definition of macro ‘bitop’
   47 |   const##op(nr, addr) : op(nr, addr))
      |                                ^~~~
drivers/bluetooth/hci_qca.c:1669:7: note: in expansion of macro ‘test_bit’
 1669 |  if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
      |       ^~~~~~~~
make[4]: *** [scripts/Makefile.build:287: drivers/bluetooth/hci_qca.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:554: drivers/bluetooth] Error 2
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [scripts/Makefile.build:554: drivers] Error 2
make[1]: *** [/github/workspace/src/src/Makefile:2003: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2
##############################
Test: TestRunner_l2cap-tester - FAIL
Desc: Run l2cap-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_iso-tester - FAIL
Desc: Run iso-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_bnep-tester - FAIL
Desc: Run bnep-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_mgmt-tester - FAIL
Desc: Run mgmt-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_rfcomm-tester - FAIL
Desc: Run rfcomm-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_sco-tester - FAIL
Desc: Run sco-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_ioctl-tester - FAIL
Desc: Run ioctl-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_mesh-tester - FAIL
Desc: Run mesh-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_smp-tester - FAIL
Desc: Run smp-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: TestRunner_userchan-tester - FAIL
Desc: Run userchan-tester with test-runner
Output:

Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
##############################
Test: IncrementalBuild - PENDING
Desc: Incremental build with the patches in the series
Output:



---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-08-21 12:44 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-21 11:50 [PATCH v6] Bluetooth: Fix SSR (SubSystem Restart) fail when BT_EN is pulled up by hw Shuai Zhang
2025-08-21 12:07 ` Dmitry Baryshkov
2025-08-21 12:14   ` Shuai Zhang
2025-08-21 12:43 ` [v6] " bluez.test.bot
  -- strict thread matches above, loose matches on Subject: below --
2025-08-21 12:16 [PATCH v6] " Shuai Zhang
2025-08-21 12:44 ` [v6] " bluez.test.bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).