Re: 2.6.29-rc3: tg3 dead after resume
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2009-01-30 23:58:14
Also in:
lkml
On Fri, 30 Jan 2009, Parag Warudkar wrote:
Totally worth having this problem from a "getting an opportunity to understand" standpoint. This confirms my long standing suspicion that bugs in Linux kernel are merely a handiwork of few clever people to get more people to understand and contribute :)
Heh. I wish. But if that's the end result, we've done something good.
Any how here is the pre-suspend lspci -vvxxx output followed by diff -u -
Bingo.
quoted hunk ↗ jump to hunk
diff -u lspci-pre-suspend lspci-post-suspend--- lspci-pre-suspend 2009-01-30 18:19:50.752275695 -0500 +++ lspci-post-suspend 2009-01-30 18:20:52.629779008 -0500 00:1c.0 PCI bridge: Intel Corporation 631xESB/632xESB/3100 Chipset PCI Express Root Port 1 (rev 09) - Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ + Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Bus: primary=00, secondary=0e, subordinate=0e, sec-latency=0
We've disabled IO and MEM behind this bridge - the one that bridges to secondary bus 0x0e. And your tg3 device? It's at 0000:0e:00.0. Yeah. Exactly the bus that we've disabled IO and MEM for. In other words, it was never your tg3 suspend/resume that was buggy. It was the suspend/resume for the PCI-E port driver. In fact, I think it's _exactly_ the issue I just emailed out about. I bet Rafael can whip up a patch in a minute. I have too much of a headache right now to look at my screen for a while, so I'll take a break. Linus