diff options
author | NĂcolas F. R. A. Prado <nfraprado@collabora.com> | 2024-11-01 17:17:29 -0400 |
---|---|---|
committer | Paolo Abeni <pabeni@redhat.com> | 2024-11-07 10:04:13 +0100 |
commit | 25d70702142ac2115e75e01a0a985c6ea1d78033 (patch) | |
tree | 53785fb6d79689f3543176f3666966a2bb7d97a0 | |
parent | 1f26339b2ed63d1e8e18a18674fb73a392f3660e (diff) | |
download | linux-25d70702142ac2115e75e01a0a985c6ea1d78033.tar.gz linux-25d70702142ac2115e75e01a0a985c6ea1d78033.tar.bz2 linux-25d70702142ac2115e75e01a0a985c6ea1d78033.zip |
net: stmmac: Fix unbalanced IRQ wake disable warning on single irq case
Commit a23aa0404218 ("net: stmmac: ethtool: Fixed calltrace caused by
unbalanced disable_irq_wake calls") introduced checks to prevent
unbalanced enable and disable IRQ wake calls. However it only
initialized the auxiliary variable on one of the paths,
stmmac_request_irq_multi_msi(), missing the other,
stmmac_request_irq_single().
Add the same initialization on stmmac_request_irq_single() to prevent
"Unbalanced IRQ <x> wake disable" warnings from being printed the first
time disable_irq_wake() is called on platforms that run on that code
path.
Fixes: a23aa0404218 ("net: stmmac: ethtool: Fixed calltrace caused by unbalanced disable_irq_wake calls")
Signed-off-by: NĂcolas F. R. A. Prado <nfraprado@collabora.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20241101-stmmac-unbalanced-wake-single-fix-v1-1-5952524c97f0@collabora.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
-rw-r--r-- | drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 208dbc68aaf9..7bf275f127c9 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -3780,6 +3780,7 @@ static int stmmac_request_irq_single(struct net_device *dev) /* Request the Wake IRQ in case of another line * is used for WoL */ + priv->wol_irq_disabled = true; if (priv->wol_irq > 0 && priv->wol_irq != dev->irq) { ret = request_irq(priv->wol_irq, stmmac_interrupt, IRQF_SHARED, dev->name, dev); |