YONETANI Tomokazu wrote:
While looking around, I found that AcpiEnterSleepStateS4Bios() has similar spin loop at the bottom, but with a call to AcpiOsStall() (== DELAY()) before AcpiGetRegister(). So I tried adding it to AcpiEnterSleepState() too, and to my amazement, the problem went away. I tried several ten times of suspending and waking up the laptop, but I'm no longer able to reproduce it. My question, though, is why why just a DELAY() makes any difference (ISTR making gd_spinlocks_wr volatile didn't solve the problem).
I still can't resume with this patch. It hangs after acpi_cmbat0: initialized (or so). However, with some modifications before i managed to get it to panic within fork1()/vm_page_insert(), so I guess that's further down the road. Not sure what I changed so that I could reproduce this... When the system hangs, the keyboard is dead as well, so I can't break to ddb or such. cheers simon -- Serve - BSD +++ RENT this banner advert +++ ASCII Ribbon /"\ Work - Mac +++ space for low €€€ NOW!1 +++ Campaign \ / Party Enjoy Relax | http://dragonflybsd.org Against HTML \ Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \
