Subject: Re: [Bugme-new] [Bug 9721] New: wake on lan fails with sky2 module

From: Andrew Morton <[email-masked]>
Date: Sun, 13 Jan 2008 11:27:12 -0800

On Sun, 13 Jan 2008 16:08:38 +0100 supersud501 <[email-masked]> wrote:

> 
> 
> supersud501 wrote:
> > 
> > 
> > Rafael J. Wysocki wrote:
> > 
> >>
> >> Since it seems to be 100% reproducible, it would be very helpful if 
> >> you could
> >> use git-bisect to identify the offending commit.
> >>
> > 
> > allright, bisect found the offending commit, here's what i've done:
> > 
> > first i started bisect with the following command (since i assumed it is 
> > a net-driver problem):
> > 
> > git-bisect start 'v2.6.24-rc6' 'v2.6.23' '--' 'drivers/net/'
> > 
> > after building many kernels and saying good/bad if wol worked/didn't 
> > work etc. it identified the following commit:
> > 
> > # bad: [ac93a3946b676025fa55356180e8321639744b31] sky2: enable PCI 
> > config writes
> > 
> > and refs/bisect/bad gives:
> > 
> > 14:16:53 /usr/src/linux-2.6/.git # cat refs/bisect/bad
> > ac93a3946b676025fa55356180e8321639744b31
> > 
> > 
> > need some more info?
> > 
> 
> i just checked it: commented out the passage of the commit in kernel 
> 2.6.24-rc7-git4 and compiled it: wol WORKS. so this one line is causing 
> my wol-disturbance...
> 
> 

So simply reverting this:

commit ac93a3946b676025fa55356180e8321639744b31
Author: Stephen Hemminger <[email-masked]>
Date:   Mon Nov 5 15:52:08 2007 -0800

    sky2: enable PCI config writes
    
    On some boards, PCI configuration space access is turned off by default.
    The 2.6.24 driver doesn't turn it on, and should have.
    
    Signed-off-by: Stephen Hemminger <[email-masked]>
    Signed-off-by: Jeff Garzik <[email-masked]>

diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index c27c7d6..4f41a94 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -2791,6 +2791,9 @@ static void sky2_reset(struct sky2_hw *hw)
 	sky2_write8(hw, B0_CTST, CS_RST_SET);
 	sky2_write8(hw, B0_CTST, CS_RST_CLR);
 
+	/* allow writes to PCI config */
+	sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_ON);
+
 	/* clear PCI errors, if any */
 	pci_read_config_word(pdev, PCI_STATUS, &status);
 	status |= PCI_STATUS_ERROR_BITS;

fixes this regression?

If so, we should revert that change.

> but i noticed another "bug" on 2.6.24-rc7-git with sky2: dmesg shows a 
> lot of lines every 5 seconds:
> 
> [...]
> [  357.400462] sky2 0000:02:00.0: error interrupt status=0xc0000000
> [  362.442039] printk: 41 messages suppressed.
> [  362.442043] sky2 0000:02:00.0: error interrupt status=0x80000000
> [  367.439151] printk: 18 messages suppressed.
> [  367.439156] sky2 0000:02:00.0: error interrupt status=0x80000000
> [  372.436267] printk: 30 messages suppressed.
> [  372.436271] sky2 0000:02:00.0: error interrupt status=0x80000000
> [  377.350236] printk: 19 messages suppressed.
> [...]
> 
> since i do not notice any errors (yet) i'll wait till next rc, maybe it 
> will be gone then...

That's not good.  is this new behaviour?