Subject: Re: Kernel oops on setting sky2 interfaces down

From: Stephen Hemminger <[email-masked]>
Date: Tue, 4 Aug 2009 16:08:05 -0700

On Wed, 05 Aug 2009 00:59:43 +0200
Rene Mayrhofer <[email-masked]> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Rene Mayrhofer wrote:
> > Nonetheless, the current unmodified version from netdev git solves the
> > oops in sky2. 
> Actually, it doesn't. I managed to run networking restart twice without
> an oops (with the netdev git version of sky2.c), but after generating
> some minor traffic and trying to restart again, I still get this oops:
> 
> [~]# /etc/init.d/networking restart
> Reconfiguring network interfaces...[  844.000236] sky2 0000:01:00.0:
> error interrupt status=0xffffffff
> 
> [  844.007309] sky2 0000:01:00.0: PCI hardware error (0xffff)
> 
> [  844.013657] sky2 0000:01:00.0: PCI Express error (0xffffffff)

There is something about the hardware on your system that causes
the Marvell chip to not be present on the bus after the steps taken
in sky2_down.  Is there something unique about how it is wired to
the PCI express bus?

The sky2 driver has to handle the rare case of dual port board, so
in sky2_down in only shuts off part of the chip. Driver turns off the PHY
and stops receiver/transmitter.  It could be the power control bits
on your hardware turn off more than just the PHY. Or perhaps,
most systems have a low power input to keep chip alive for Wake On
Lan and that isn't present on your system. 

Maybe an option to not power down phy would be the simplest fix.

--