2024-05-17 09:40:35

by K, Kiran

[permalink] [raw]
Subject: [PATCH v3 1/3] Bluetooth: btintel_pcie: Print Firmware Sequencer information

Firmware sequencer (FSEQ) is a common code shared across Bluetooth
and Wifi. Printing FSEQ will help to debug if there is any mismatch
between Bluetooth and Wifi FSEQ.

Make 'btintel_print_fseq_info' public and use it in btintel_pcie.c.

dmesg:

....

[ 5335.695740] Bluetooth: hci0: Device booted in 33872 usecs
[ 5335.695918] Bluetooth: hci0: Found Intel DDC parameters: intel/ibt-0190-0291.ddc
[ 5335.697011] Bluetooth: hci0: Applying Intel DDC parameters completed
[ 5335.697837] Bluetooth: hci0: Firmware timestamp 2024.20 buildtype 0 build 62871
[ 5335.697848] Bluetooth: hci0: Firmware SHA1: 0xeffdce06
[ 5335.698655] Bluetooth: hci0: Fseq status: Success (0x00)
[ 5335.698666] Bluetooth: hci0: Fseq executed: 00.00.04.176
[ 5335.698670] Bluetooth: hci0: Fseq BT Top: 00.00.04.176
[ 5335.750204] Bluetooth: MGMT ver 1.22

Signed-off-by: Kiran <[email protected]>
---
drivers/bluetooth/btintel.c | 3 ++-
drivers/bluetooth/btintel.h | 5 +++++
drivers/bluetooth/btintel_pcie.c | 2 ++
3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c
index 0c855c3ee1c1..2c434ff9c47c 100644
--- a/drivers/bluetooth/btintel.c
+++ b/drivers/bluetooth/btintel.c
@@ -2713,7 +2713,7 @@ void btintel_set_msft_opcode(struct hci_dev *hdev, u8 hw_variant)
}
EXPORT_SYMBOL_GPL(btintel_set_msft_opcode);

-static void btintel_print_fseq_info(struct hci_dev *hdev)
+void btintel_print_fseq_info(struct hci_dev *hdev)
{
struct sk_buff *skb;
u8 *p;
@@ -2825,6 +2825,7 @@ static void btintel_print_fseq_info(struct hci_dev *hdev)

kfree_skb(skb);
}
+EXPORT_SYMBOL_GPL(btintel_print_fseq_info);

static int btintel_setup_combined(struct hci_dev *hdev)
{
diff --git a/drivers/bluetooth/btintel.h b/drivers/bluetooth/btintel.h
index b5fea735e260..9dbad1a7c47c 100644
--- a/drivers/bluetooth/btintel.h
+++ b/drivers/bluetooth/btintel.h
@@ -244,6 +244,7 @@ int btintel_bootloader_setup_tlv(struct hci_dev *hdev,
struct intel_version_tlv *ver);
int btintel_shutdown_combined(struct hci_dev *hdev);
void btintel_hw_error(struct hci_dev *hdev, u8 code);
+void btintel_print_fseq_info(struct hci_dev *hdev);
#else

static inline int btintel_check_bdaddr(struct hci_dev *hdev)
@@ -373,4 +374,8 @@ static inline int btintel_shutdown_combined(struct hci_dev *hdev)
static inline void btintel_hw_error(struct hci_dev *hdev, u8 code)
{
}
+
+static inline void btintel_print_fseq_info(struct hci_dev *hdev)
+{
+}
#endif
diff --git a/drivers/bluetooth/btintel_pcie.c b/drivers/bluetooth/btintel_pcie.c
index 5b6805d87fcf..8d282ee2322c 100644
--- a/drivers/bluetooth/btintel_pcie.c
+++ b/drivers/bluetooth/btintel_pcie.c
@@ -1197,9 +1197,11 @@ static int btintel_pcie_setup(struct hci_dev *hdev)
bt_dev_err(hdev, "Unsupported Intel hw variant (%u)",
INTEL_HW_VARIANT(ver_tlv.cnvi_bt));
err = -EINVAL;
+ goto exit_error;
break;
}

+ btintel_print_fseq_info(hdev);
exit_error:
kfree_skb(skb);

--
2.40.1



2024-05-17 09:40:38

by K, Kiran

[permalink] [raw]
Subject: [PATCH v3 2/3] Bluetooth: btintel_pcie: Fix irq leak

Free irq before releasing irq vector.

Fixes: c2b636b3f788 ("Bluetooth: btintel_pcie: Add support for PCIe transport")
Signed-off-by: Kiran <[email protected]>
---
drivers/bluetooth/btintel_pcie.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/drivers/bluetooth/btintel_pcie.c b/drivers/bluetooth/btintel_pcie.c
index 8d282ee2322c..d8f82e0f6435 100644
--- a/drivers/bluetooth/btintel_pcie.c
+++ b/drivers/bluetooth/btintel_pcie.c
@@ -1329,6 +1329,12 @@ static void btintel_pcie_remove(struct pci_dev *pdev)
data = pci_get_drvdata(pdev);

btintel_pcie_reset_bt(data);
+ for (int i = 0; i < data->alloc_vecs; i++) {
+ struct msix_entry *msix_entry;
+
+ msix_entry = &data->msix_entries[i];
+ free_irq(msix_entry->vector, msix_entry);
+ }

pci_free_irq_vectors(pdev);

--
2.40.1


2024-05-17 09:40:41

by K, Kiran

[permalink] [raw]
Subject: [PATCH v3 3/3] Bluetooth: btintel_pcie: Fix REVERSE_INULL issue reported by coverity

From: Vijay Satija <[email protected]>

check pdata return of skb_pull_data, instead of data.

Fixes: c2b636b3f788 ("Bluetooth: btintel_pcie: Add support for PCIe transport")
Signed-off-by: Vijay Satija <[email protected]>
Signed-off-by: Kiran K <[email protected]>
---
drivers/bluetooth/btintel_pcie.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/bluetooth/btintel_pcie.c b/drivers/bluetooth/btintel_pcie.c
index d8f82e0f6435..58144c82b1cb 100644
--- a/drivers/bluetooth/btintel_pcie.c
+++ b/drivers/bluetooth/btintel_pcie.c
@@ -382,7 +382,7 @@ static int btintel_pcie_recv_frame(struct btintel_pcie_data *data,

/* The first 4 bytes indicates the Intel PCIe specific packet type */
pdata = skb_pull_data(skb, BTINTEL_PCIE_HCI_TYPE_LEN);
- if (!data) {
+ if (!pdata) {
bt_dev_err(hdev, "Corrupted packet received");
ret = -EILSEQ;
goto exit_error;
--
2.40.1


2024-05-17 10:14:58

by Paul Menzel

[permalink] [raw]
Subject: Re: [PATCH v3 2/3] Bluetooth: btintel_pcie: Fix irq leak

Dear Kiran,


Thank you for your patch.

Am 17.05.24 um 11:54 schrieb Kiran K:
> Free irq before releasing irq vector.

Can the leak be detected somehow? How did you detect it?

> Fixes: c2b636b3f788 ("Bluetooth: btintel_pcie: Add support for PCIe transport")
> Signed-off-by: Kiran <[email protected]>

Just a note, that your surname is missing too.

> ---
> drivers/bluetooth/btintel_pcie.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/bluetooth/btintel_pcie.c b/drivers/bluetooth/btintel_pcie.c
> index 8d282ee2322c..d8f82e0f6435 100644
> --- a/drivers/bluetooth/btintel_pcie.c
> +++ b/drivers/bluetooth/btintel_pcie.c
> @@ -1329,6 +1329,12 @@ static void btintel_pcie_remove(struct pci_dev *pdev)
> data = pci_get_drvdata(pdev);
>
> btintel_pcie_reset_bt(data);
> + for (int i = 0; i < data->alloc_vecs; i++) {
> + struct msix_entry *msix_entry;
> +
> + msix_entry = &data->msix_entries[i];
> + free_irq(msix_entry->vector, msix_entry);
> + }
>
> pci_free_irq_vectors(pdev);


Kind regards,

Paul

2024-05-17 10:33:23

by bluez.test.bot

[permalink] [raw]
Subject: RE: [v3,1/3] Bluetooth: btintel_pcie: Print Firmware Sequencer information

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=853931

---Test result---

Test Summary:
CheckPatch FAIL 2.39 seconds
GitLint FAIL 1.10 seconds
SubjectPrefix PASS 0.31 seconds
BuildKernel PASS 29.56 seconds
CheckAllWarning PASS 32.55 seconds
CheckSparse PASS 39.25 seconds
CheckSmatch FAIL 34.92 seconds
BuildKernel32 PASS 28.64 seconds
TestRunnerSetup PASS 521.07 seconds
TestRunner_l2cap-tester PASS 18.43 seconds
TestRunner_iso-tester PASS 32.71 seconds
TestRunner_bnep-tester PASS 4.73 seconds
TestRunner_mgmt-tester PASS 109.65 seconds
TestRunner_rfcomm-tester PASS 7.21 seconds
TestRunner_sco-tester PASS 15.04 seconds
TestRunner_ioctl-tester PASS 7.85 seconds
TestRunner_mesh-tester PASS 5.94 seconds
TestRunner_smp-tester PASS 8.53 seconds
TestRunner_userchan-tester PASS 4.95 seconds
IncrementalBuild PASS 37.34 seconds

Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script
Output:
[v3,1/3] Bluetooth: btintel_pcie: Print Firmware Sequencer information
WARNING: From:/Signed-off-by: email name mismatch: 'From: Kiran K <[email protected]>' != 'Signed-off-by: Kiran <[email protected]>'

total: 0 errors, 1 warnings, 41 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.

/github/workspace/src/src/13666800.patch has style problems, please review.

NOTE: Ignored message types: UNKNOWN_COMMIT_ID

NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.


[v3,2/3] Bluetooth: btintel_pcie: Fix irq leak
WARNING: From:/Signed-off-by: email name mismatch: 'From: Kiran K <[email protected]>' != 'Signed-off-by: Kiran <[email protected]>'

total: 0 errors, 1 warnings, 12 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.

/github/workspace/src/src/13666801.patch has style problems, please review.

NOTE: Ignored message types: UNKNOWN_COMMIT_ID

NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.


##############################
Test: GitLint - FAIL
Desc: Run gitlint
Output:
[v3,1/3] Bluetooth: btintel_pcie: Print Firmware Sequencer information

WARNING: I3 - ignore-body-lines: gitlint will be switching from using Python regex 'match' (match beginning) to 'search' (match anywhere) semantics. Please review your ignore-body-lines.regex option accordingly. To remove this warning, set general.regex-style-search=True. More details: https://jorisroovers.github.io/gitlint/configuration/#regex-style-search
14: B1 Line exceeds max length (83>80): "[ 5335.695918] Bluetooth: hci0: Found Intel DDC parameters: intel/ibt-0190-0291.ddc"
16: B1 Line exceeds max length (82>80): "[ 5335.697837] Bluetooth: hci0: Firmware timestamp 2024.20 buildtype 0 build 62871"
##############################
Test: CheckSmatch - FAIL
Desc: Run smatch tool with source
Output:

Segmentation fault (core dumped)
make[4]: *** [scripts/Makefile.build:244: net/bluetooth/hci_core.o] Error 139
make[4]: *** Deleting file 'net/bluetooth/hci_core.o'
make[3]: *** [scripts/Makefile.build:485: net/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:485: net] Error 2
make[2]: *** Waiting for unfinished jobs....
Segmentation fault (core dumped)
make[4]: *** [scripts/Makefile.build:244: drivers/bluetooth/bcm203x.o] Error 139
make[4]: *** Deleting file 'drivers/bluetooth/bcm203x.o'
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:485: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:485: drivers] Error 2
make[1]: *** [/github/workspace/src/src/Makefile:1919: .] Error 2
make: *** [Makefile:240: __sub-make] Error 2


---
Regards,
Linux Bluetooth

2024-05-20 19:40:49

by patchwork-bot+bluetooth

[permalink] [raw]
Subject: Re: [PATCH v3 1/3] Bluetooth: btintel_pcie: Print Firmware Sequencer information

Hello:

This series was applied to bluetooth/bluetooth-next.git (master)
by Luiz Augusto von Dentz <[email protected]>:

On Fri, 17 May 2024 15:24:45 +0530 you wrote:
> Firmware sequencer (FSEQ) is a common code shared across Bluetooth
> and Wifi. Printing FSEQ will help to debug if there is any mismatch
> between Bluetooth and Wifi FSEQ.
>
> Make 'btintel_print_fseq_info' public and use it in btintel_pcie.c.
>
> dmesg:
>
> [...]

Here is the summary with links:
- [v3,1/3] Bluetooth: btintel_pcie: Print Firmware Sequencer information
https://git.kernel.org/bluetooth/bluetooth-next/c/6197d390371e
- [v3,2/3] Bluetooth: btintel_pcie: Fix irq leak
https://git.kernel.org/bluetooth/bluetooth-next/c/cb49bd050d31
- [v3,3/3] Bluetooth: btintel_pcie: Fix REVERSE_INULL issue reported by coverity
https://git.kernel.org/bluetooth/bluetooth-next/c/637579ef9271

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



2024-05-21 00:11:55

by K, Kiran

[permalink] [raw]
Subject: RE: [PATCH v3 2/3] Bluetooth: btintel_pcie: Fix irq leak

Hi Paul,

Thanks for your comments.

>-----Original Message-----
>From: Paul Menzel <[email protected]>
>Sent: Friday, May 17, 2024 3:42 PM
>To: K, Kiran <[email protected]>
>Cc: Srivatsa, Ravishankar <[email protected]>; Tumkur Narayan,
>Chethan <[email protected]>; Devegowda, Chandrashekar
><[email protected]>; Satija, Vijay <[email protected]>;
>[email protected]
>Subject: Re: [PATCH v3 2/3] Bluetooth: btintel_pcie: Fix irq leak
>
>Dear Kiran,
>
>
>Thank you for your patch.
>
>Am 17.05.24 um 11:54 schrieb Kiran K:
>> Free irq before releasing irq vector.
>
>Can the leak be detected somehow? How did you detect it?

dmesg shows traces about irq leak when the driver is unloaded.

>
>> Fixes: c2b636b3f788 ("Bluetooth: btintel_pcie: Add support for PCIe
>transport")
>> Signed-off-by: Kiran <[email protected]>
>
>Just a note, that your surname is missing too.
Ack.

>
>> ---
>> drivers/bluetooth/btintel_pcie.c | 6 ++++++
>> 1 file changed, 6 insertions(+)
>>
>> diff --git a/drivers/bluetooth/btintel_pcie.c b/drivers/bluetooth/btintel_pcie.c
>> index 8d282ee2322c..d8f82e0f6435 100644
>> --- a/drivers/bluetooth/btintel_pcie.c
>> +++ b/drivers/bluetooth/btintel_pcie.c
>> @@ -1329,6 +1329,12 @@ static void btintel_pcie_remove(struct pci_dev
>*pdev)
>> data = pci_get_drvdata(pdev);
>>
>> btintel_pcie_reset_bt(data);
>> + for (int i = 0; i < data->alloc_vecs; i++) {
>> + struct msix_entry *msix_entry;
>> +
>> + msix_entry = &data->msix_entries[i];
>> + free_irq(msix_entry->vector, msix_entry);
>> + }
>>
>> pci_free_irq_vectors(pdev);
>
>
>Kind regards,
>
>Paul