mirror of
https://github.com/torvalds/linux.git
synced 2024-11-14 16:12:02 +00:00
net: amd-xgbe: add missed tasklet_kill
The driver does not call tasklet_kill in several places.
Add the calls to fix it.
Fixes: 85b85c8534
("amd-xgbe: Re-issue interrupt if interrupt status not cleared")
Signed-off-by: Jiguang Xiao <jiguang.xiao@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
fec7352117
commit
d530ece70f
@ -1064,6 +1064,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);
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user