mirror of
https://github.com/torvalds/linux.git
synced 2026-09-25 17:42:03 +02:00
wifi: mwifiex: fix IRQ leak using wrong index in MSI-X error path
mwifiex_pcie_request_irq() registers each MSI-X vector with a per-index
dev_id (&card->msix_ctx[i]). On a request_irq() failure the cleanup loop
"for (j = 0; j < i; j++)" frees msix_entries[j].vector but passes the
failed index's &card->msix_ctx[i] as the dev_id. free_irq() matches on
(irq, dev_id), so it fails to find the action registered with
&card->msix_ctx[j]: the already-requested IRQ j is not freed (leaked) and
free_irq() warns about freeing a non-existent IRQ. Use &card->msix_ctx[j].
Fixes: 99074fc1e6 ("mwifiex: enable pcie MSIx interrupt mode support")
Signed-off-by: Peng Hao <flyingpeng@tencent.com>
Link: https://patch.msgid.link/20260828111531.56723-1-flyingpeng@tencent.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
bbb9a0ab96
commit
a3d722190c
|
|
@ -3068,7 +3068,7 @@ static int mwifiex_pcie_request_irq(struct mwifiex_adapter *adapter)
|
|||
ret);
|
||||
for (j = 0; j < i; j++)
|
||||
free_irq(card->msix_entries[j].vector,
|
||||
&card->msix_ctx[i]);
|
||||
&card->msix_ctx[j]);
|
||||
pci_disable_msix(pdev);
|
||||
} else {
|
||||
mwifiex_dbg(adapter, MSG, "MSIx enabled!");
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user