# Wake on LAN wakes computer twice

## Small_Penguin

Hi, I've got the following problem with Wake on LAN on Linux 3.4.4:

Steps to reproduce:

1) Send machine to suspend mode (S3)

2) Wake up via WOL

3) Send machine to suspend mode (S3)

4) Machine wakes up immediately after going to suspend

5) Send machine to suspend mode (S3) => machine sleeps

If not waken by WOL but USB event (keystroke), everything's fine.

It seems like some flag is not cleared after wake up. I've tried setting ethtool -s eth0 wol d after 2), but it doesn't help (it is set, see below).

The same setup worked fine with the previous mainboard.

Here is output of ethtool eth0 after step 2:

```
Settings for eth0:

        Supported ports: [ TP ]

        Supported link modes:   10baseT/Half 10baseT/Full 

                                100baseT/Half 100baseT/Full 

                                1000baseT/Half 1000baseT/Full 

        Supported pause frame use: No

        Supports auto-negotiation: Yes

        Advertised link modes:  10baseT/Half 10baseT/Full 

                                100baseT/Half 100baseT/Full 

                                1000baseT/Half 1000baseT/Full 

        Advertised pause frame use: Symmetric

        Advertised auto-negotiation: Yes

        Link partner advertised link modes:  10baseT/Half 10baseT/Full 

                                             100baseT/Half 100baseT/Full 

        Link partner advertised pause frame use: No

        Link partner advertised auto-negotiation: Yes

        Speed: 100Mb/s

        Duplex: Full

        Port: Twisted Pair

        PHYAD: 1

        Transceiver: internal

        Auto-negotiation: on

        MDI-X: on

        Supports Wake-on: g

        Wake-on: d

        Current message level: 0x000000ff (255)

                               drv probe link timer ifdown ifup rx_err tx_err

        Link detected: yes
```

Any idea what could be wrong here?

```

04:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57781 Gigabit Ethernet PCIe (rev 10)

        Subsystem: ASRock Incorporation Device 96b1

        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+

        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-

        Latency: 0, Cache Line Size: 64 bytes

        Interrupt: pin A routed to IRQ 16

        Region 0: Memory at f0010000 (64-bit, prefetchable) [size=64K]

        Region 2: Memory at f0000000 (64-bit, prefetchable) [size=64K]

        Expansion ROM at f7a00000 [disabled] [size=2K]

        Capabilities: [48] Power Management version 3

                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)

                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=1 PME-

        Capabilities: [58] MSI: Enable- Count=1/8 Maskable- 64bit+

                Address: 0000000000000000  Data: 0000

        Capabilities: [a0] MSI-X: Enable+ Count=5 Masked-

                Vector table: BAR=2 offset=00000000

                PBA: BAR=2 offset=00000120

        Capabilities: [ac] Express (v2) Endpoint, MSI 00

                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 <64us

                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-

                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-

                        RlxdOrd- ExtTag- PhantFunc- AuxPwr+ NoSnoop-

                        MaxPayload 128 bytes, MaxReadReq 512 bytes

                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-

                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <2us, L1 <64us

                        ClockPM+ Surprise- LLActRep- BwNot-

                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+

                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-

                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-

                DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR-, OBFF Not Supported

                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled

                LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-

                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-

                         Compliance De-emphasis: -6dB

                LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-

                         EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-

        Capabilities: [100 v1] Advanced Error Reporting

                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-

                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-

                UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-

                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+

                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+

                AERCap: First Error Pointer: 14, GenCap+ CGenEn- ChkCap+ ChkEn-

        Capabilities: [13c v1] Device Serial Number <nulled-out>

        Capabilities: [150 v1] Power Budgeting <?>

        Capabilities: [160 v1] Virtual Channel

                Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1

                Arb:    Fixed- WRR32- WRR64- WRR128-

                Ctrl:   ArbSelect=Fixed

                Status: InProgress-

                VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-

                        Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-

                        Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=01

                        Status: NegoPending- InProgress-

        Kernel driver in use: tg3

```

----------

## diddly

Sorry to wake up an old thread, but did you ever get this solved?  I see a very similar posting (possibly you?) on bbs.archlinux from last fall.  I have the same issue on a MSI H87/G43 mainboard.

----------

## Small_Penguin

No, the issue remains unsolved.

----------

## diddly

May I ask what your mainboard and BIOS are?  At the very least it might help some other users to avoid buggy hw.

----------

## d_leahcim

I had the same problem here with a Shuttle DS61, but adding "acpi=noirq" to the grub command line solved it for me (from http://ubuntuforums.org/showthread.php?t=2188726)

----------

## diddly

Hmm, unfortunately when I tried acpi=noirq, or pci=noacpi, the kernel does not boot (just black screen).

Might be because I'm using an EFI only boot and ACPI is necessary?

----------

## d_leahcim

Unfortunately, I have no experience with EFI boots; it sounds like it might be a bug, though (https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1129511)

For completeness' sake, however, I realized with a fresh install of a second Shuttle DS61 that "acpi=noirq" by itself wasn't enough. On the first machine, I had also installed Realtek's r8168 network driver in my quest to solve the wakeup issues.

----------

## diddly

Hmm, I didn't realize there was an out-of-tree r8168 driver.  I tried it, but same problem.

Then I tried switching to legacy BIOS + grub, and it didn't make any difference.

Then I checked that I was using the latest firmware for the in-kernel r8169 driver, and I am.

Then I removed the other NIC (the off-mainboard one) in case that was somehow interfering, problem still persists.

Then I moved my cards around, on the off-chance that it was 1992 again and that would fix the problem, it didn't.

I've even tried WOL on a different (Intel E100) card and it still does the double wake up, which leads me to believe it is not the r8169 hardware, but the ACPI bios itself.

I tried again, disabling the on-board NIC in the BIOS and the problem is still present.

The funny thing, is I _swear_ it didn't exhibit this behaviour when I first got the motherboard (last June). But I'm only 70% sure of that.

----------

