diff mbox series

[v3,2/3] Bluetooth: btintel_pcie: Fix irq leak

Message ID 20240517095447.956132-2-kiran.k@intel.com
State Accepted
Commit cb49bd050d310f62fa63f3457c7fc657e8431c78
Headers show
Series [v3,1/3] Bluetooth: btintel_pcie: Print Firmware Sequencer information | expand

Commit Message

K, Kiran May 17, 2024, 9:54 a.m. UTC
Free irq before releasing irq vector.

Fixes: c2b636b3f788 ("Bluetooth: btintel_pcie: Add support for PCIe transport")
Signed-off-by: Kiran <kiran.k@intel.com>
---
 drivers/bluetooth/btintel_pcie.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

K, Kiran May 21, 2024, 12:11 a.m. UTC | #1
Hi Paul,

Thanks for your comments.

>-----Original Message-----
>From: Paul Menzel <pmenzel@molgen.mpg.de>
>Sent: Friday, May 17, 2024 3:42 PM
>To: K, Kiran <kiran.k@intel.com>
>Cc: Srivatsa, Ravishankar <ravishankar.srivatsa@intel.com>; Tumkur Narayan,
>Chethan <chethan.tumkur.narayan@intel.com>; Devegowda, Chandrashekar
><chandrashekar.devegowda@intel.com>; Satija, Vijay <vijay.satija@intel.com>;
>linux-bluetooth@vger.kernel.org
>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 <kiran.k@intel.com>
>
>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
diff mbox series

Patch

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);