Skip to content

Commit

Permalink
dma: mv_xor: add missing free_irq() call
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Thomas Petazzoni committed Nov 20, 2012
1 parent b503fa0 commit 88eb92c
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
5 changes: 4 additions & 1 deletion drivers/dma/mv_xor.c
Original file line number Diff line number Diff line change
Expand Up @@ -1082,6 +1082,8 @@ static int mv_xor_channel_remove(struct mv_xor_chan *mv_chan)
list_del(&chan->device_node);
}

free_irq(mv_chan->irq, mv_chan);

return 0;
}

Expand All @@ -1101,6 +1103,7 @@ mv_xor_channel_add(struct mv_xor_device *xordev,
}

mv_chan->idx = idx;
mv_chan->irq = irq;

dma_dev = &mv_chan->dmadev;

Expand Down Expand Up @@ -1147,7 +1150,7 @@ mv_xor_channel_add(struct mv_xor_device *xordev,
/* clear errors before enabling interrupts */
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,
0, dev_name(&pdev->dev), mv_chan);
if (ret)
Expand Down
1 change: 1 addition & 0 deletions drivers/dma/mv_xor.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ struct mv_xor_chan {
spinlock_t lock; /* protects the descriptor slot pool */
void __iomem *mmr_base;
unsigned int idx;
int irq;
enum dma_transaction_type current_type;
struct list_head chain;
struct list_head completed_slots;
Expand Down

0 comments on commit 88eb92c

Please sign in to comment.