mirror of https://github.com/torvalds/linux.git
This has been broken for months. On resume, we call acpi_pci_link_set() with interrupts off, so we get a warning when we try to do a kmalloc of non atomic memory. The actual allocation is just 2 long's (plus extra byte for some reason I can't fathom), so a simple conversion to GFP_ATOMIC is probably the safest way to fix this. The error looks like this.. Debug: sleeping function called from invalid context at mm/slab.c:2486 in_atomic():0, irqs_disabled():1 [<c0143f6c>] kmem_cache_alloc+0x40/0x56 [<c0206a2e>] acpi_pci_link_set+0x3f/0x17f [<c0206f96>] irqrouter_resume+0x1e/0x3c [<c0239bca>] __sysdev_resume+0x11/0x6b [<c0239e88>] sysdev_resume+0x34/0x52 [<c023de21>] device_power_up+0x5/0xa Signed-off-by: Dave Jones <davej@redhat.com> Cc: "Brown, Len" <len.brown@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> |
||
|---|---|---|
| .. | ||
| dispatcher | ||
| events | ||
| executer | ||
| hardware | ||
| namespace | ||
| parser | ||
| resources | ||
| sleep | ||
| tables | ||
| utilities | ||
| Kconfig | ||
| Makefile | ||
| ac.c | ||
| acpi_memhotplug.c | ||
| asus_acpi.c | ||
| battery.c | ||
| blacklist.c | ||
| bus.c | ||
| button.c | ||
| container.c | ||
| debug.c | ||
| ec.c | ||
| event.c | ||
| fan.c | ||
| glue.c | ||
| hotkey.c | ||
| ibm_acpi.c | ||
| motherboard.c | ||
| numa.c | ||
| osl.c | ||
| pci_bind.c | ||
| pci_irq.c | ||
| pci_link.c | ||
| pci_root.c | ||
| power.c | ||
| processor_core.c | ||
| processor_idle.c | ||
| processor_perflib.c | ||
| processor_thermal.c | ||
| processor_throttling.c | ||
| scan.c | ||
| system.c | ||
| tables.c | ||
| thermal.c | ||
| toshiba_acpi.c | ||
| utils.c | ||
| video.c | ||