netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [Regression in 2.6.29] forcedeth doesn't work after resume from hibernation (was: Re: Resume after hibernation regression in 2.6.29)
       [not found]   ` <200903271255.36429.rjw@sisk.pl>
@ 2009-03-27 20:09     ` Rafael J. Wysocki
  2009-03-29  8:03       ` Tvrtko A. Ursulin
  2009-04-03 15:24       ` Ed Swierk
  0 siblings, 2 replies; 11+ messages in thread
From: Rafael J. Wysocki @ 2009-03-27 20:09 UTC (permalink / raw)
  To: Tvrtko A. Ursulin
  Cc: Pavel Machek, linux-pm, kernel list, Tobias Diedrich,
	Ayaz Abdulla, netdev, Ed Swierk, Arthur Jones, Andrew Morton,
	David S. Miller

On Friday 27 March 2009, Rafael J. Wysocki wrote:
> On Friday 27 March 2009, Tvrtko A. Ursulin wrote:
> > On Thursday 26 March 2009 23:08:59 Rafael J. Wysocki wrote:
> > > On Friday 27 March 2009, Tvrtko A. Ursulin wrote:
> > > > On Thursday 26 March 2009 22:38:55 Pavel Machek wrote:
> > > > > On Thu 2009-03-26 22:01:03, Tvrtko A. Ursulin wrote:
> > > > > > On Thursday 26 March 2009 21:35:29 Rafael J. Wysocki wrote:
> > > > > > > On Thursday 26 March 2009, Pavel Machek wrote:
> > > > > > > > On Thu 2009-03-26 20:55:23, Tvrtko A. Ursulin wrote:
> > > > > > > > > On Thursday 26 March 2009 20:18:40 Pavel Machek wrote:
> > > > > > > > > > On Thu 2009-03-26 19:20:32, Tvrtko A. Ursulin wrote:
> > > > > > > > > > > Hi guys,
> > > > > > > > > > > I have been running custom compiled 2.6.28.7 in OpenSUSE
> > > > > > > > > > > 11.1 and using hiberation/resume daily as configured by the
> > > > > > > > > > > distro. Yesterday I upgraded to 2.6.29 (make oldconfig from
> > > > > > > > > > > 2.6.28.7, attached) and after resume networking (at least)
> > > > > > > > > > > does not work. Reboot at this point takes very long because
> > > > > > > > > > > of timeouts on CIFS and whatelse.
> > > > > > > > > > >
> > > > > > > > > > > Below is how /var/log/messagess looks for one cycle
> > > > > > > > > > > (hibernate-resume-reboot) and I am also attaching kernel
> > > > > > > > > > > config and /var/log/pm-suspend.log.
> > > > > > > > > > >
> > > > > > > > > > > You will probably notice evil nvidia.ko in there but don't
> > > > > > > > > > > panic, it all happens without it as well. Tested from
> > > > > > > > > > > runlevel 3 and by running pm-hibernate. After resume from
> > > > > > > > > > > that NIC LEDs were off. I tried /etc/init.d/network restart
> > > > > > > > > > > but that hung so I ^C and tried rmmod forcedeth && modprobe
> > > > > > > > > > > forcedeth && ifup eth0 and after some time network went
> > > > > > > > > > > live again. Haven't had time to test further though, so
> > > > > > > > > > > this is all pretty rough.
> > > > > > > > > >
> > > > > > > > > > Ok, can you try to rmmod forcedeth before hibernation, then
> > > > > > > > > > insmod it after resume?
> > > > > > > > >
> > > > > > > > > Sure, after insmod and /etc/init.d/network start following
> > > > > > > > > resume network was fine. Guess I could kludge that sequence
> > > > > > > > > into pm scripts somehow but would rather avoid that since it
> > > > > > > > > slows down the cycle and would make scripts non-stock.
> > > > > > > >
> > > > > > > > Ok, I guess you need to talk to forcedeth maintainers then...
> > > > > > > > sounds like a forcedeth problem to me.
> > > > > > >
> > > > > > > I have a box with forcedeth somewhere here, I should be able to
> > > > > > > check that in the next few days.
> > > > > >
> > > > > > Not a lot activity in forcedeth.c from 2.6.28 to 2.6.29 so I will CC
> > > > > > two guys who commited changes in that period. Ayaz, Tobias, forcedeth
> > > > > > does not seem to come up after hibernation well for me. Actual
> > > > > > hardware is:
> > > > > >
> > > > > > 00:0f.0 Ethernet controller: nVidia Corporation MCP73 Ethernet (rev
> > > > > > a2)
> > > > > >
> > > > > > Anything more I can do just shout!
> > > > >
> > > > > Actually yes. Testing forcedeth from 2.6.28 in 2.6.29 would be nice
> > > > > way to prove problem is indeed in that module.
> > > >
> > > > Good idea, I had to massage it a bit due to some API changes, but the end
> > > > result is a correct resume which proves that the problem really is in
> > > > forcedeth.
> > >
> > > Well, since you can easily check what commits changed forcedeth between
> > > 2.6.28 and 2.6.29, you can find the one that introduced the problem for
> > > you.

I was able to reproduce the problem and identify the commit that broke the
resume of forcedeth, which turned out to be:

commit cb52deba12f27af90a46d2f8667a64888118a888
Author: Ed Swierk <eswierk@arastra.com>
Date:   Mon Dec 1 12:24:43 2008 +0000

    forcedeth: power down phy when interface is down

    Signed-off-by: Ed Swierk <eswierk@arastra.com>
    Tested-by: Arthur Jones <ajones@riverbed.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

Since I have no slightest idea of what this commit is supposed to achieve,
I can only ask for reverting it.  It reverts cleanly, BTW.

Thanks,
Rafael

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Regression in 2.6.29] forcedeth doesn't work after resume from hibernation (was: Re: Resume after hibernation regression in 2.6.29)
  2009-03-27 20:09     ` [Regression in 2.6.29] forcedeth doesn't work after resume from hibernation (was: Re: Resume after hibernation regression in 2.6.29) Rafael J. Wysocki
@ 2009-03-29  8:03       ` Tvrtko A. Ursulin
  2009-04-03 10:23         ` Tvrtko Ursulin
  2009-04-03 15:24       ` Ed Swierk
  1 sibling, 1 reply; 11+ messages in thread
From: Tvrtko A. Ursulin @ 2009-03-29  8:03 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Pavel Machek, linux-pm, kernel list, Tobias Diedrich,
	Ayaz Abdulla, netdev, Ed Swierk, Arthur Jones, Andrew Morton,
	David S. Miller

On Friday 27 March 2009 20:09:20 Rafael J. Wysocki wrote:
> I was able to reproduce the problem and identify the commit that broke the
> resume of forcedeth, which turned out to be:
>
> commit cb52deba12f27af90a46d2f8667a64888118a888
> Author: Ed Swierk <eswierk@arastra.com>
> Date:   Mon Dec 1 12:24:43 2008 +0000
>
>     forcedeth: power down phy when interface is down
>
>     Signed-off-by: Ed Swierk <eswierk@arastra.com>
>     Tested-by: Arthur Jones <ajones@riverbed.com>
>     Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
>     Signed-off-by: David S. Miller <davem@davemloft.net>
>
> Since I have no slightest idea of what this commit is supposed to achieve,
> I can only ask for reverting it.  It reverts cleanly, BTW.

Reverting this fixes it for me as well.

Thanks for your effort!

Tvrtko

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Regression in 2.6.29] forcedeth doesn't work after resume from hibernation (was: Re: Resume after hibernation regression in 2.6.29)
  2009-03-29  8:03       ` Tvrtko A. Ursulin
@ 2009-04-03 10:23         ` Tvrtko Ursulin
  0 siblings, 0 replies; 11+ messages in thread
From: Tvrtko Ursulin @ 2009-04-03 10:23 UTC (permalink / raw)
  To: Tvrtko A. Ursulin
  Cc: Rafael J. Wysocki, Pavel Machek,
	linux-pm@lists.linux-foundation.org, kernel list, Tobias Diedrich,
	Ayaz Abdulla, netdev@vger.kernel.org, Ed Swierk, Arthur Jones,
	Andrew Morton, David S. Miller, stable

On Sunday 29 March 2009 09:03:57 Tvrtko A. Ursulin wrote:
> On Friday 27 March 2009 20:09:20 Rafael J. Wysocki wrote:
> > I was able to reproduce the problem and identify the commit that broke
> > the resume of forcedeth, which turned out to be:
> >
> > commit cb52deba12f27af90a46d2f8667a64888118a888
> > Author: Ed Swierk <eswierk@arastra.com>
> > Date:   Mon Dec 1 12:24:43 2008 +0000
> >
> >     forcedeth: power down phy when interface is down
> >
> >     Signed-off-by: Ed Swierk <eswierk@arastra.com>
> >     Tested-by: Arthur Jones <ajones@riverbed.com>
> >     Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> >     Signed-off-by: David S. Miller <davem@davemloft.net>
> >
> > Since I have no slightest idea of what this commit is supposed to
> > achieve, I can only ask for reverting it.  It reverts cleanly, BTW.
>
> Reverting this fixes it for me as well.
>
> Thanks for your effort!

Would reverting this be a -stable material?

Tvrtko

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Regression in 2.6.29] forcedeth doesn't work after resume from hibernation (was: Re: Resume after hibernation regression in 2.6.29)
  2009-03-27 20:09     ` [Regression in 2.6.29] forcedeth doesn't work after resume from hibernation (was: Re: Resume after hibernation regression in 2.6.29) Rafael J. Wysocki
  2009-03-29  8:03       ` Tvrtko A. Ursulin
@ 2009-04-03 15:24       ` Ed Swierk
  2009-04-03 17:41         ` Ed Swierk
  1 sibling, 1 reply; 11+ messages in thread
From: Ed Swierk @ 2009-04-03 15:24 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Tvrtko A. Ursulin, Pavel Machek, linux-pm, kernel list,
	Tobias Diedrich, Ayaz Abdulla, netdev, Arthur Jones,
	Andrew Morton, David S. Miller

On Fri, Mar 27, 2009 at 1:09 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> I was able to reproduce the problem and identify the commit that broke the
> resume of forcedeth, which turned out to be:
>
> commit cb52deba12f27af90a46d2f8667a64888118a888
> Author: Ed Swierk <eswierk@arastra.com>
> Date:   Mon Dec 1 12:24:43 2008 +0000
>
>    forcedeth: power down phy when interface is down
>
>    Signed-off-by: Ed Swierk <eswierk@arastra.com>
>    Tested-by: Arthur Jones <ajones@riverbed.com>
>    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
>    Signed-off-by: David S. Miller <davem@davemloft.net>
>
> Since I have no slightest idea of what this commit is supposed to achieve,
> I can only ask for reverting it.  It reverts cleanly, BTW.

The change causes forcedeth to bring down the physical link when an
interface goes down; leaving it up causes the switch at the other end
to think the port is still active, with potentially random speed and
duplex parameters.

It's possible that the forcedeth driver needs to reset autonegotiation
after bringing it up the link again.

Can you please try this on a 2.6.29 kernel that's exhibiting the
symptoms you describe, after resuming the machine from hibernation:

  ethtool -s eth1 autoneg off speed 100 duplex full
  ethtool -s eth1 autoneg on

This should reset autonegotiation manually and bring the link. Let me
know how it goes.

Thanks,
--Ed

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Regression in 2.6.29] forcedeth doesn't work after resume from hibernation (was: Re: Resume after hibernation regression in 2.6.29)
  2009-04-03 15:24       ` Ed Swierk
@ 2009-04-03 17:41         ` Ed Swierk
  2009-04-03 20:26           ` Rafael J. Wysocki
  2009-04-04 13:04           ` Tvrtko A. Ursulin
  0 siblings, 2 replies; 11+ messages in thread
From: Ed Swierk @ 2009-04-03 17:41 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Tvrtko A. Ursulin, Pavel Machek, linux-pm, kernel list,
	Tobias Diedrich, Ayaz Abdulla, netdev, Arthur Jones,
	Andrew Morton, David S. Miller

On Fri, 2009-04-03 at 08:24 -0700, Ed Swierk wrote:
> On Fri, Mar 27, 2009 at 1:09 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > I was able to reproduce the problem and identify the commit that broke the
> > resume of forcedeth, which turned out to be:
> >
> > commit cb52deba12f27af90a46d2f8667a64888118a888
> > Author: Ed Swierk <eswierk@arastra.com>
> > Date:   Mon Dec 1 12:24:43 2008 +0000
> >
> >    forcedeth: power down phy when interface is down
> >
> >    Signed-off-by: Ed Swierk <eswierk@arastra.com>
> >    Tested-by: Arthur Jones <ajones@riverbed.com>
> >    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> >    Signed-off-by: David S. Miller <davem@davemloft.net>
> >
> > Since I have no slightest idea of what this commit is supposed to achieve,
> > I can only ask for reverting it.  It reverts cleanly, BTW.
> 
> The change causes forcedeth to bring down the physical link when an
> interface goes down; leaving it up causes the switch at the other end
> to think the port is still active, with potentially random speed and
> duplex parameters.
> 
> It's possible that the forcedeth driver needs to reset autonegotiation
> after bringing it up the link again.
> 
> Can you please try this on a 2.6.29 kernel that's exhibiting the
> symptoms you describe, after resuming the machine from hibernation:
> 
>   ethtool -s eth1 autoneg off speed 100 duplex full
>   ethtool -s eth1 autoneg on
> 
> This should reset autonegotiation manually and bring the link. Let me
> know how it goes.

Also please try this patch; it fixes the problem on my test system (a
DFI board with an nVidia MCP55).

Signed-off-by: Ed Swierk <eswierk@aristanetworks.com>
--
--- linux-2.6.29.x86_64/drivers/net/forcedeth.c.orig	2009-03-23 16:12:14.000000000 -0700
+++ linux-2.6.29.x86_64/drivers/net/forcedeth.c	2009-04-03 10:11:26.839614710 -0700
@@ -5995,6 +5995,9 @@
 	for (i = 0;i <= np->register_size/sizeof(u32); i++)
 		writel(np->saved_config_space[i], base+i*sizeof(u32));
 
+	/* restore phy state, including autoneg */
+	phy_init(dev);
+
 	netif_device_attach(dev);
 	if (netif_running(dev)) {
 		rc = nv_open(dev);



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Regression in 2.6.29] forcedeth doesn't work after resume from hibernation (was: Re: Resume after hibernation regression in 2.6.29)
  2009-04-03 17:41         ` Ed Swierk
@ 2009-04-03 20:26           ` Rafael J. Wysocki
  2009-04-04 13:04           ` Tvrtko A. Ursulin
  1 sibling, 0 replies; 11+ messages in thread
From: Rafael J. Wysocki @ 2009-04-03 20:26 UTC (permalink / raw)
  To: Tvrtko A. Ursulin
  Cc: Ed Swierk, Pavel Machek, linux-pm, kernel list, Tobias Diedrich,
	Ayaz Abdulla, netdev, Arthur Jones, Andrew Morton,
	David S. Miller

On Friday 03 April 2009, Ed Swierk wrote:
> On Fri, 2009-04-03 at 08:24 -0700, Ed Swierk wrote:
> > On Fri, Mar 27, 2009 at 1:09 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > > I was able to reproduce the problem and identify the commit that broke the
> > > resume of forcedeth, which turned out to be:
> > >
> > > commit cb52deba12f27af90a46d2f8667a64888118a888
> > > Author: Ed Swierk <eswierk@arastra.com>
> > > Date:   Mon Dec 1 12:24:43 2008 +0000
> > >
> > >    forcedeth: power down phy when interface is down
> > >
> > >    Signed-off-by: Ed Swierk <eswierk@arastra.com>
> > >    Tested-by: Arthur Jones <ajones@riverbed.com>
> > >    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> > >    Signed-off-by: David S. Miller <davem@davemloft.net>
> > >
> > > Since I have no slightest idea of what this commit is supposed to achieve,
> > > I can only ask for reverting it.  It reverts cleanly, BTW.
> > 
> > The change causes forcedeth to bring down the physical link when an
> > interface goes down; leaving it up causes the switch at the other end
> > to think the port is still active, with potentially random speed and
> > duplex parameters.
> > 
> > It's possible that the forcedeth driver needs to reset autonegotiation
> > after bringing it up the link again.
> > 
> > Can you please try this on a 2.6.29 kernel that's exhibiting the
> > symptoms you describe, after resuming the machine from hibernation:
> > 
> >   ethtool -s eth1 autoneg off speed 100 duplex full
> >   ethtool -s eth1 autoneg on
> > 
> > This should reset autonegotiation manually and bring the link. Let me
> > know how it goes.
> 
> Also please try this patch; it fixes the problem on my test system (a
> DFI board with an nVidia MCP55).
> 
> Signed-off-by: Ed Swierk <eswierk@aristanetworks.com>
> --
> --- linux-2.6.29.x86_64/drivers/net/forcedeth.c.orig	2009-03-23 16:12:14.000000000 -0700
> +++ linux-2.6.29.x86_64/drivers/net/forcedeth.c	2009-04-03 10:11:26.839614710 -0700
> @@ -5995,6 +5995,9 @@
>  	for (i = 0;i <= np->register_size/sizeof(u32); i++)
>  		writel(np->saved_config_space[i], base+i*sizeof(u32));
>  
> +	/* restore phy state, including autoneg */
> +	phy_init(dev);
> +
>  	netif_device_attach(dev);
>  	if (netif_running(dev)) {
>  		rc = nv_open(dev);

Tvrtko, can you test it, please?  I'll be away from my NVidia box during the
next couple of days.

Thanks,
Rafael

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Regression in 2.6.29] forcedeth doesn't work after resume from hibernation (was: Re: Resume after hibernation regression in 2.6.29)
  2009-04-03 17:41         ` Ed Swierk
  2009-04-03 20:26           ` Rafael J. Wysocki
@ 2009-04-04 13:04           ` Tvrtko A. Ursulin
  2009-04-04 13:07             ` Rafael J. Wysocki
  1 sibling, 1 reply; 11+ messages in thread
From: Tvrtko A. Ursulin @ 2009-04-04 13:04 UTC (permalink / raw)
  To: Ed Swierk
  Cc: Rafael J. Wysocki, Pavel Machek, linux-pm, kernel list,
	Tobias Diedrich, Ayaz Abdulla, netdev, Arthur Jones,
	Andrew Morton, David S. Miller, stable

On Friday 03 April 2009 18:41:12 Ed Swierk wrote:
> On Fri, 2009-04-03 at 08:24 -0700, Ed Swierk wrote:
> > On Fri, Mar 27, 2009 at 1:09 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > > I was able to reproduce the problem and identify the commit that broke
> > > the resume of forcedeth, which turned out to be:
> > >
> > > commit cb52deba12f27af90a46d2f8667a64888118a888
> > > Author: Ed Swierk <eswierk@arastra.com>
> > > Date:   Mon Dec 1 12:24:43 2008 +0000
> > >
> > >    forcedeth: power down phy when interface is down
> > >
> > >    Signed-off-by: Ed Swierk <eswierk@arastra.com>
> > >    Tested-by: Arthur Jones <ajones@riverbed.com>
> > >    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> > >    Signed-off-by: David S. Miller <davem@davemloft.net>
> > >
> > > Since I have no slightest idea of what this commit is supposed to
> > > achieve, I can only ask for reverting it.  It reverts cleanly, BTW.
> >
> > The change causes forcedeth to bring down the physical link when an
> > interface goes down; leaving it up causes the switch at the other end
> > to think the port is still active, with potentially random speed and
> > duplex parameters.
> >
> > It's possible that the forcedeth driver needs to reset autonegotiation
> > after bringing it up the link again.
> >
> > Can you please try this on a 2.6.29 kernel that's exhibiting the
> > symptoms you describe, after resuming the machine from hibernation:
> >
> >   ethtool -s eth1 autoneg off speed 100 duplex full
> >   ethtool -s eth1 autoneg on
> >
> > This should reset autonegotiation manually and bring the link. Let me
> > know how it goes.
>
> Also please try this patch; it fixes the problem on my test system (a
> DFI board with an nVidia MCP55).
>
> Signed-off-by: Ed Swierk <eswierk@aristanetworks.com>
> --
> --- linux-2.6.29.x86_64/drivers/net/forcedeth.c.orig	2009-03-23
> 16:12:14.000000000 -0700 +++
> linux-2.6.29.x86_64/drivers/net/forcedeth.c	2009-04-03 10:11:26.839614710
> -0700 @@ -5995,6 +5995,9 @@
>  	for (i = 0;i <= np->register_size/sizeof(u32); i++)
>  		writel(np->saved_config_space[i], base+i*sizeof(u32));
>
> +	/* restore phy state, including autoneg */
> +	phy_init(dev);
> +
>  	netif_device_attach(dev);
>  	if (netif_running(dev)) {
>  		rc = nv_open(dev);

Works for me on MCP73 as well.

Although NIC LED is still on after hibernation - seems to go off shortly 
before power off and then comes back on. Could be firmware issue I guess, 
this motherboard has always gulped power when off.

Tvrtko

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Regression in 2.6.29] forcedeth doesn't work after resume from hibernation (was: Re: Resume after hibernation regression in 2.6.29)
  2009-04-04 13:04           ` Tvrtko A. Ursulin
@ 2009-04-04 13:07             ` Rafael J. Wysocki
  0 siblings, 0 replies; 11+ messages in thread
From: Rafael J. Wysocki @ 2009-04-04 13:07 UTC (permalink / raw)
  To: Tvrtko A. Ursulin
  Cc: Ed Swierk, Pavel Machek, linux-pm, kernel list, Tobias Diedrich,
	Ayaz Abdulla, netdev, Arthur Jones, Andrew Morton,
	David S. Miller, stable

On Saturday 04 April 2009, Tvrtko A. Ursulin wrote:
> On Friday 03 April 2009 18:41:12 Ed Swierk wrote:
> > On Fri, 2009-04-03 at 08:24 -0700, Ed Swierk wrote:
> > > On Fri, Mar 27, 2009 at 1:09 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > > > I was able to reproduce the problem and identify the commit that broke
> > > > the resume of forcedeth, which turned out to be:
> > > >
> > > > commit cb52deba12f27af90a46d2f8667a64888118a888
> > > > Author: Ed Swierk <eswierk@arastra.com>
> > > > Date:   Mon Dec 1 12:24:43 2008 +0000
> > > >
> > > >    forcedeth: power down phy when interface is down
> > > >
> > > >    Signed-off-by: Ed Swierk <eswierk@arastra.com>
> > > >    Tested-by: Arthur Jones <ajones@riverbed.com>
> > > >    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> > > >    Signed-off-by: David S. Miller <davem@davemloft.net>
> > > >
> > > > Since I have no slightest idea of what this commit is supposed to
> > > > achieve, I can only ask for reverting it.  It reverts cleanly, BTW.
> > >
> > > The change causes forcedeth to bring down the physical link when an
> > > interface goes down; leaving it up causes the switch at the other end
> > > to think the port is still active, with potentially random speed and
> > > duplex parameters.
> > >
> > > It's possible that the forcedeth driver needs to reset autonegotiation
> > > after bringing it up the link again.
> > >
> > > Can you please try this on a 2.6.29 kernel that's exhibiting the
> > > symptoms you describe, after resuming the machine from hibernation:
> > >
> > >   ethtool -s eth1 autoneg off speed 100 duplex full
> > >   ethtool -s eth1 autoneg on
> > >
> > > This should reset autonegotiation manually and bring the link. Let me
> > > know how it goes.
> >
> > Also please try this patch; it fixes the problem on my test system (a
> > DFI board with an nVidia MCP55).
> >
> > Signed-off-by: Ed Swierk <eswierk@aristanetworks.com>
> > --
> > --- linux-2.6.29.x86_64/drivers/net/forcedeth.c.orig	2009-03-23
> > 16:12:14.000000000 -0700 +++
> > linux-2.6.29.x86_64/drivers/net/forcedeth.c	2009-04-03 10:11:26.839614710
> > -0700 @@ -5995,6 +5995,9 @@
> >  	for (i = 0;i <= np->register_size/sizeof(u32); i++)
> >  		writel(np->saved_config_space[i], base+i*sizeof(u32));
> >
> > +	/* restore phy state, including autoneg */
> > +	phy_init(dev);
> > +
> >  	netif_device_attach(dev);
> >  	if (netif_running(dev)) {
> >  		rc = nv_open(dev);
> 
> Works for me on MCP73 as well.

Great, thanks for testing.

I think the patch should go to Linus ASAP and to -stable as a regression fix.

Thanks,
Rafael

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Regression, in, 2.6.29] forcedeth doesn't work after resume from hibernation (was: Re: Resume after hibernation regression in 2.6.29)
@ 2009-04-04 23:54 David Miller
  2009-04-06 14:03 ` Ed Swierk
  0 siblings, 1 reply; 11+ messages in thread
From: David Miller @ 2009-04-04 23:54 UTC (permalink / raw)
  To: eswierk; +Cc: netdev


Please send a version of this patch that actually applies to
Linus's tree, the line numbers et al. are a lot different
now.

I'll backport and submit that to -stable.

Thanks.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Regression, in, 2.6.29] forcedeth doesn't work after resume from hibernation (was: Re: Resume after hibernation regression in 2.6.29)
  2009-04-04 23:54 [Regression, in, 2.6.29] forcedeth doesn't work after resume from hibernation (was: Re: Resume after hibernation regression in 2.6.29) David Miller
@ 2009-04-06 14:03 ` Ed Swierk
  2009-04-07  0:49   ` [Regression, in, 2.6.29] forcedeth doesn't work after resume from hibernation David Miller
  0 siblings, 1 reply; 11+ messages in thread
From: Ed Swierk @ 2009-04-06 14:03 UTC (permalink / raw)
  To: David Miller; +Cc: netdev

On Sat, 2009-04-04 at 16:54 -0700, David Miller wrote:
> Please send a version of this patch that actually applies to
> Linus's tree, the line numbers et al. are a lot different
> now.
> 
> I'll backport and submit that to -stable.
> 
> Thanks.

Reset phy state on resume, fixing a regression caused by powering down
the phy on hibernate.

Signed-off-by: Ed Swierk <eswierk@aristanetworks.com>
---
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index a858c6f..663a7b3 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -6117,6 +6117,9 @@ static int nv_resume(struct pci_dev *pdev)
 
 	pci_write_config_dword(pdev, NV_MSI_PRIV_OFFSET, NV_MSI_PRIV_VALUE);
 
+	/* restore phy state, including autoneg */
+	phy_init(dev);
+
 	netif_device_attach(dev);
 	if (netif_running(dev)) {
 		rc = nv_open(dev);



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [Regression, in, 2.6.29] forcedeth doesn't work after resume from hibernation
  2009-04-06 14:03 ` Ed Swierk
@ 2009-04-07  0:49   ` David Miller
  0 siblings, 0 replies; 11+ messages in thread
From: David Miller @ 2009-04-07  0:49 UTC (permalink / raw)
  To: eswierk; +Cc: netdev

From: Ed Swierk <eswierk@aristanetworks.com>
Date: Mon, 06 Apr 2009 07:03:32 -0700

> Reset phy state on resume, fixing a regression caused by powering down
> the phy on hibernate.
> 
> Signed-off-by: Ed Swierk <eswierk@aristanetworks.com>

Applied, thanks.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2009-04-07  0:49 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-04 23:54 [Regression, in, 2.6.29] forcedeth doesn't work after resume from hibernation (was: Re: Resume after hibernation regression in 2.6.29) David Miller
2009-04-06 14:03 ` Ed Swierk
2009-04-07  0:49   ` [Regression, in, 2.6.29] forcedeth doesn't work after resume from hibernation David Miller
     [not found] <200903261920.32173.tvrtko@ursulin.net>
     [not found] ` <200903270801.46712.tvrtko@ursulin.net>
     [not found]   ` <200903271255.36429.rjw@sisk.pl>
2009-03-27 20:09     ` [Regression in 2.6.29] forcedeth doesn't work after resume from hibernation (was: Re: Resume after hibernation regression in 2.6.29) Rafael J. Wysocki
2009-03-29  8:03       ` Tvrtko A. Ursulin
2009-04-03 10:23         ` Tvrtko Ursulin
2009-04-03 15:24       ` Ed Swierk
2009-04-03 17:41         ` Ed Swierk
2009-04-03 20:26           ` Rafael J. Wysocki
2009-04-04 13:04           ` Tvrtko A. Ursulin
2009-04-04 13:07             ` Rafael J. Wysocki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).