Re: [Bugme-new] [Bug 9721] New: wake on lan fails with sky2 module
From: Andrew Morton <akpm@linux-foundation.org>
Date: 2008-01-13 19:27:45
Also in:
linux-acpi
Subsystem:
networking drivers, the rest · Maintainers:
Andrew Lunn, "David S. Miller", Eric Dumazet, Jakub Kicinski, Paolo Abeni, Linus Torvalds
On Sun, 13 Jan 2008 16:08:38 +0100 supersud501 [off-list ref] wrote:
supersud501 wrote:quoted
Rafael J. Wysocki wrote:quoted
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 [off-list ref]
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 [off-list ref]
Signed-off-by: Jeff Garzik [off-list ref]
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?