mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-27 04:54:41 +08:00
octeontx2-af: Fix irq free in rvu teardown
Current devlink code try to free already freed irqs as the
irq_allocate flag is not cleared after free leading to kernel
crash while removing rvu driver. The patch fixes the irq free
sequence and clears the irq_allocate flag on free.
Fixes: 7304ac4567
("octeontx2-af: Add mailbox IRQ and msg handlers")
Signed-off-by: Geetha sowjanya <gakula@marvell.com>
Signed-off-by: Hariprasad Kelam <hkelam@marvell.com>
Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2978878729
commit
ae2619dd4f
@ -2462,8 +2462,10 @@ static void rvu_unregister_interrupts(struct rvu *rvu)
|
||||
INTR_MASK(rvu->hw->total_pfs) & ~1ULL);
|
||||
|
||||
for (irq = 0; irq < rvu->num_vec; irq++) {
|
||||
if (rvu->irq_allocated[irq])
|
||||
if (rvu->irq_allocated[irq]) {
|
||||
free_irq(pci_irq_vector(rvu->pdev, irq), rvu);
|
||||
rvu->irq_allocated[irq] = false;
|
||||
}
|
||||
}
|
||||
|
||||
pci_free_irq_vectors(rvu->pdev);
|
||||
@ -2975,8 +2977,8 @@ static void rvu_remove(struct pci_dev *pdev)
|
||||
struct rvu *rvu = pci_get_drvdata(pdev);
|
||||
|
||||
rvu_dbg_exit(rvu);
|
||||
rvu_unregister_interrupts(rvu);
|
||||
rvu_unregister_dl(rvu);
|
||||
rvu_unregister_interrupts(rvu);
|
||||
rvu_flr_wq_destroy(rvu);
|
||||
rvu_cgx_exit(rvu);
|
||||
rvu_fwdata_exit(rvu);
|
||||
|
Loading…
Reference in New Issue
Block a user