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

Commit 0294286a authored by Jiguang Xiao's avatar Jiguang Xiao Committed by Greg Kroah-Hartman
Browse files

net: amd-xgbe: add missed tasklet_kill



[ Upstream commit d530ece70f16f912e1d1bfeea694246ab78b0a4b ]

The driver does not call tasklet_kill in several places.
Add the calls to fix it.

Fixes: 85b85c85 ("amd-xgbe: Re-issue interrupt if interrupt status not cleared")
Signed-off-by: default avatarJiguang Xiao <jiguang.xiao@windriver.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent d1d912e7
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1140,6 +1140,9 @@ static void xgbe_free_irqs(struct xgbe_prv_data *pdata)

	devm_free_irq(pdata->dev, pdata->dev_irq, pdata);

	tasklet_kill(&pdata->tasklet_dev);
	tasklet_kill(&pdata->tasklet_ecc);

	if (pdata->vdata->ecc_support && (pdata->dev_irq != pdata->ecc_irq))
		devm_free_irq(pdata->dev, pdata->ecc_irq, pdata);

+3 −1
Original line number Diff line number Diff line
@@ -447,8 +447,10 @@ static void xgbe_i2c_stop(struct xgbe_prv_data *pdata)
	xgbe_i2c_disable(pdata);
	xgbe_i2c_clear_all_interrupts(pdata);

	if (pdata->dev_irq != pdata->i2c_irq)
	if (pdata->dev_irq != pdata->i2c_irq) {
		devm_free_irq(pdata->dev, pdata->i2c_irq, pdata);
		tasklet_kill(&pdata->tasklet_i2c);
	}
}

static int xgbe_i2c_start(struct xgbe_prv_data *pdata)
+3 −1
Original line number Diff line number Diff line
@@ -1390,8 +1390,10 @@ static void xgbe_phy_stop(struct xgbe_prv_data *pdata)
	/* Disable auto-negotiation */
	xgbe_an_disable_all(pdata);

	if (pdata->dev_irq != pdata->an_irq)
	if (pdata->dev_irq != pdata->an_irq) {
		devm_free_irq(pdata->dev, pdata->an_irq, pdata);
		tasklet_kill(&pdata->tasklet_an);
	}

	pdata->phy_if.phy_impl.stop(pdata);