mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 09:13:38 +00:00
dma: mv_xor: add missing free_irq() call
Even though the driver cannot be unloaded at the moment, it is still good to properly free the IRQ handlers in the channel removal function. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
b503fa0199
commit
88eb92cb4d
@ -1082,6 +1082,8 @@ static int mv_xor_channel_remove(struct mv_xor_chan *mv_chan)
|
|||||||
list_del(&chan->device_node);
|
list_del(&chan->device_node);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free_irq(mv_chan->irq, mv_chan);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1101,6 +1103,7 @@ mv_xor_channel_add(struct mv_xor_device *xordev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
mv_chan->idx = idx;
|
mv_chan->idx = idx;
|
||||||
|
mv_chan->irq = irq;
|
||||||
|
|
||||||
dma_dev = &mv_chan->dmadev;
|
dma_dev = &mv_chan->dmadev;
|
||||||
|
|
||||||
@ -1147,7 +1150,7 @@ mv_xor_channel_add(struct mv_xor_device *xordev,
|
|||||||
/* clear errors before enabling interrupts */
|
/* clear errors before enabling interrupts */
|
||||||
mv_xor_device_clear_err_status(mv_chan);
|
mv_xor_device_clear_err_status(mv_chan);
|
||||||
|
|
||||||
ret = devm_request_irq(&pdev->dev, irq,
|
ret = devm_request_irq(&pdev->dev, mv_chan->irq,
|
||||||
mv_xor_interrupt_handler,
|
mv_xor_interrupt_handler,
|
||||||
0, dev_name(&pdev->dev), mv_chan);
|
0, dev_name(&pdev->dev), mv_chan);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -81,6 +81,7 @@ struct mv_xor_chan {
|
|||||||
spinlock_t lock; /* protects the descriptor slot pool */
|
spinlock_t lock; /* protects the descriptor slot pool */
|
||||||
void __iomem *mmr_base;
|
void __iomem *mmr_base;
|
||||||
unsigned int idx;
|
unsigned int idx;
|
||||||
|
int irq;
|
||||||
enum dma_transaction_type current_type;
|
enum dma_transaction_type current_type;
|
||||||
struct list_head chain;
|
struct list_head chain;
|
||||||
struct list_head completed_slots;
|
struct list_head completed_slots;
|
||||||
|
Loading…
Reference in New Issue
Block a user