Red Hat Bugzilla – Bug 164708
"sleeping function called from invalid context" when resuming from S3 sleep
Last modified: 2015-01-04 17:21:09 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10) Gecko/20050720 Fedora/1.0.6-1.1.fc3 Firefox/1.0.6
Description of problem:
Resuming from S3 sleep, my IBM ThinkPad T30 spits the following message...
Back to C!
Debug: sleeping function called from invalid context at mm/slab.c:2126
I'm using a pretty basic script to make the system suspend... unload USB drivers and some NIC drivers, stopping a few problematic daemons, then time sync and echo -n "mem" >/sys/power/state
I guess the backtrace should speak for itself, but in case you need anything, please let me know!
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Suspend to RAM (at least with IBM ThinkPad T30, i guess others as well)
Actual Results: I see an unexpected stacktrace in the dmesg output
Expected Results: no stacktraces should show up!
This is the same as bug 142598, bug 134905 and bug 140254.
The problem is the irqrouter_resume() is called with interrupts off by the power
management code. See the comment next to sysdev_resume() in drivers/base/sys.c.
irqrouter_resume => acpi_pci_link_resume => acpi_pci_link_set => kmalloc => BOOM!
It could be that the coder just made a typo and used GFP_KERNEL instead of
GFP_ATOMIC, but another possibility is that there are other problems with the
code. I don't understand the code well enough to fix the problem myself.
Same problem here with desktop machine.
I noticed it first just after install a new NIC, and I've had other problems
related to that (card apparently "hanging" after resume) that seem to have been
fixed by kernel updates.
I can add another Debug: ... trace from /var/log/messages and lspci output.
This should be fixed in the errata kernel currently in updates-testing
The FC4 kernel is doing the exact same thing!
I suspect the fix would be easy to copy to the FC4 kernel?
This is from kernel-2.6.13-1.1526_FC4 :
Back to C!
Debug: sleeping function called from invalid context at mm/slab.c:2129
*** This bug has been marked as a duplicate of 154046 ***