Bug 7207

Summary: suspend/resume broken for e1000
Product: Drivers Reporter: Toralf Förster (toralf.foerster)
Component: NetworkAssignee: Jeff Garzik (jgarzik)
Status: CLOSED CODE_FIX    
Severity: normal CC: auke-jan.h.kok, kernel
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.18 Subsystem:
Regression: --- Bisected commit-id:

Description Toralf Förster 2006-09-26 07:21:10 UTC
Most recent kernel where this bug did not occur:2.6.17

I observed at my Thinkpad t41 that after a wakeup from a suspend to mem/disk
pppoe-start failed and I got in my log filegot that message. Restarting the
network (at least: "ifconfig eth0 down; ifconfig eth0 up") solved the problem
but that behaviour is annoying.

The last good commit is acfbc9fde2ec7f304398f6ad7644002e07bf84bc.
The first bad commit is 2db10a081c5c1082d58809a1bcf1a6073f4db160.

The initial bug report can be found here 
https://bugs.gentoo.org/show_bug.cgi?id=146005 the problem was discussed at the
mailing-list e1000-devel@lists.sourceforge.net with Auke Kok
<auke-jan.h.kok@intel.com> in mid of september of this year.
Comment 1 Toralf Förster 2006-10-03 01:07:37 UTC
With kernel git sources 2.6.18-g95f3eff6 at least the output of "$> ethtool -S
eth0" after the resume seems to be more reasonable, before the values were
crappy after suspend/resume. The commit was
95f3eff6997ae4a6754c1d874ec0a414d97c44d1.
Comment 2 Rafael J. Wysocki 2006-10-30 10:20:19 UTC
Can you please test the 2.6.19-rc2-mm2 kernel?
Comment 3 Toralf Förster 2006-10-30 11:13:56 UTC
Tested 2.6.19-rc3-mm1 without success :-(
Comment 4 Toralf Förster 2006-11-10 04:40:48 UTC
solved with:
commit edd106fc8ac1826dbe231b70ce0762db24133e5c
Author: Auke Kok <auke-jan.h.kok@intel.com>
Date:   Mon Nov 6 08:57:12 2006 -0800

    [PATCH] e1000: Fix regression: garbled stats and irq allocation during swsusp

    e1000: Fix suspend/resume powerup and irq allocation

    From: Auke Kok <auke-jan.h.kok@intel.com>

    After 7.0.33/2.6.16, e1000 suspend/resume left the user with an enabled
    device showing garbled statistics and undetermined irq allocation state,
    where `ifconfig eth0 down` would display `trying to free already freed irq`.

    Explicitly free and allocate irq as well as powerup the PHY during resume
    fixes when needed.

    Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
    Signed-off-by: Jeff Garzik <jeff@garzik.org>