On Dec 21, 2007 3:00 PM, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote: > On Fri, 21 Dec 2007 11:06:49 -0500 "Miles Lane" <miles.lane@xxxxxxxxx> wrote: > > > > > > > > > How do I determine what comes next? > > > > > > > > > > By comparing it with the /proc/iomem from prior to suspending the machine. > > > > > > > The offending information seems to be "90000000-90000fff : Intel Flush Page" > > ah-hah. git-agpgart.patch > > > I hope this helps, > > It does, thanks. > > Dave, a `cat /proc/iomem' crashes after a suspend/resume cycle when it > reaches the intel_private.ifp_resource record. > > > intel_i915_configure() is called on each resume and it calls > intel_i9xx_setup_flush() which zeroes out the already-registered `struct > resource', causing core kernel to oops over a deref of > parent/sibling/child. > > Probably this: > > --- a/drivers/char/agp/intel-agp.c~a > +++ a/drivers/char/agp/intel-agp.c > @@ -883,8 +883,6 @@ static void intel_i965_g33_setup_chipset > static void intel_i9xx_setup_flush(void) > { > /* setup a resource for this object */ > - memset(&intel_private.ifp_resource, 0, sizeof(intel_private.ifp_resource)); > - > intel_private.ifp_resource.name = "Intel Flush Page"; > intel_private.ifp_resource.flags = IORESOURCE_MEM; > > _ > > > will be enough to prevent the crash, but I suspect a bit more than that > will be needed. > I tested with the patch applied, and the stackdump did not occur. However, I notice that the values listed for Intel Page Flush is changed from the pre-suspend values: Before the suspend: 90000000-90000fff : Intel Flush Page After the resume: 00000000-90001000 : Intel Flush Page # patch -p1 < akpm.patch patching file drivers/char/agp/intel-agp.c Hunk #1 succeeded at 891 (offset 8 lines). $ cat /proc/iomem 00000000-0009f7ff : System RAM 0009f800-0009ffff : reserved 000a0000-000bffff : Video RAM area 000c0000-000c7fff : Video ROM 000f0000-000fffff : System ROM 00100000-7f68ffff : System RAM 00100000-0039e4a7 : Kernel code 0039e4a8-004f0983 : Kernel data 00553000-007ecdfb : Kernel bss 7f690000-7f698fff : ACPI Tables 7f699000-7f6fffff : ACPI Non-volatile Storage 7f700000-7fffffff : reserved 88000000-8bffffff : PCI CardBus #05 8c000000-8fffffff : PCI CardBus #05 00000000-90001000 : Intel Flush Page c0000000-cfffffff : 0000:00:02.0 d0000000-d1ffffff : PCI Bus #02 d2000000-d3ffffff : PCI Bus #03 d4000000-d5ffffff : PCI Bus #02 d4000000-d4003fff : 0000:02:00.0 d4000000-d4003fff : sky2 d6000000-d7ffffff : PCI Bus #03 d6000000-d6000fff : 0000:03:00.0 d6000000-d6000fff : iwl3945 d8000000-d80fffff : PCI Bus #04 d8000000-d8003fff : 0000:04:09.1 d8004000-d8004fff : 0000:04:09.2 d8004000-d8004fff : tifm_7xx1 d8005000-d80057ff : 0000:04:09.1 d8005000-d80057ff : ohci1394 d8006000-d8006fff : 0000:04:09.0 d8006000-d8006fff : yenta_socket d8100000-d817ffff : 0000:00:02.0 d8180000-d81fffff : 0000:00:02.1 d8200000-d823ffff : 0000:00:02.0 d8240000-d8243fff : 0000:00:1b.0 d8240000-d8243fff : ICH HD audio d8444000-d84443ff : 0000:00:1d.7 d8444000-d84443ff : ehci_hcd d8444400-d84447ff : 0000:00:1f.2 d8444400-d84447ff : ahci e0000000-efffffff : PCI MMCONFIG 0 e0000000-efffffff : reserved fec00000-fec0ffff : reserved fed00000-fed003ff : HPET 0 fed00000-fed003ff : reserved fed14000-fed19fff : reserved fed1c000-fed8ffff : reserved fee00000-fee00fff : reserved ff000000-ffffffff : reserved _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm