Skip to content

Commit 1b06e99

Browse files
cooldavidgregkh
authored andcommitted
jme: Do not enable NIC WoL functions on S0
commit 0772a99b818079e628a1da122ac7ee023faed83e upstream. Otherwise it might be back on resume right after going to suspend in some hardware. Reported-by: Diego Viola <diego.viola@gmail.com> Signed-off-by: Guo-Fu Tseng <cooldavid@cooldavid.org> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent c565897 commit 1b06e99

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

  • drivers/net/ethernet

drivers/net/ethernet/jme.c

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -270,11 +270,17 @@ jme_reset_mac_processor(struct jme_adapter *jme)
270270
}
271271

272272
static inline void
273-
jme_clear_pm(struct jme_adapter *jme)
273+
jme_clear_pm_enable_wol(struct jme_adapter *jme)
274274
{
275275
jwrite32(jme, JME_PMCS, PMCS_STMASK | jme->reg_pmcs);
276276
}
277277

278+
static inline void
279+
jme_clear_pm_disable_wol(struct jme_adapter *jme)
280+
{
281+
jwrite32(jme, JME_PMCS, PMCS_STMASK);
282+
}
283+
278284
static int
279285
jme_reload_eeprom(struct jme_adapter *jme)
280286
{
@@ -1853,7 +1859,7 @@ jme_open(struct net_device *netdev)
18531859
struct jme_adapter *jme = netdev_priv(netdev);
18541860
int rc;
18551861

1856-
jme_clear_pm(jme);
1862+
jme_clear_pm_disable_wol(jme);
18571863
JME_NAPI_ENABLE(jme);
18581864

18591865
tasklet_init(&jme->linkch_task, jme_link_change_tasklet,
@@ -1929,7 +1935,7 @@ jme_powersave_phy(struct jme_adapter *jme)
19291935
jme_set_100m_half(jme);
19301936
if (jme->reg_pmcs & (PMCS_LFEN | PMCS_LREN))
19311937
jme_wait_link(jme);
1932-
jme_clear_pm(jme);
1938+
jme_clear_pm_enable_wol(jme);
19331939
} else {
19341940
jme_phy_off(jme);
19351941
}
@@ -2646,7 +2652,6 @@ jme_set_wol(struct net_device *netdev,
26462652
if (wol->wolopts & WAKE_MAGIC)
26472653
jme->reg_pmcs |= PMCS_MFEN;
26482654

2649-
jwrite32(jme, JME_PMCS, jme->reg_pmcs);
26502655
device_set_wakeup_enable(&jme->pdev->dev, !!(jme->reg_pmcs));
26512656

26522657
return 0;
@@ -3172,7 +3177,7 @@ jme_init_one(struct pci_dev *pdev,
31723177
jme->mii_if.mdio_read = jme_mdio_read;
31733178
jme->mii_if.mdio_write = jme_mdio_write;
31743179

3175-
jme_clear_pm(jme);
3180+
jme_clear_pm_disable_wol(jme);
31763181
device_set_wakeup_enable(&pdev->dev, true);
31773182

31783183
jme_set_phyfifo_5level(jme);
@@ -3304,7 +3309,7 @@ jme_resume(struct device *dev)
33043309
if (!netif_running(netdev))
33053310
return 0;
33063311

3307-
jme_clear_pm(jme);
3312+
jme_clear_pm_disable_wol(jme);
33083313
jme_phy_on(jme);
33093314
if (test_bit(JME_FLAG_SSET, &jme->flags))
33103315
jme_set_settings(netdev, &jme->old_ecmd);

0 commit comments

Comments
 (0)