Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 88eb92cb authored by Thomas Petazzoni's avatar Thomas Petazzoni
Browse files

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: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent b503fa01
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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;
}

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

@@ -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)
+1 −0
Original line number Diff line number Diff line
@@ -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;