|
@@ -86,7 +86,9 @@ int bcmgenet_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
|
|
|
/* Flag the device and relevant IRQ as wakeup capable */
|
|
|
if (wol->wolopts) {
|
|
|
device_set_wakeup_enable(kdev, 1);
|
|
|
- enable_irq_wake(priv->wol_irq);
|
|
|
+ /* Avoid unbalanced enable_irq_wake calls */
|
|
|
+ if (priv->wol_irq_disabled)
|
|
|
+ enable_irq_wake(priv->wol_irq);
|
|
|
priv->wol_irq_disabled = false;
|
|
|
} else {
|
|
|
device_set_wakeup_enable(kdev, 0);
|