linux/drivers
Ming Lei e823407f7b pm / runtime: introduce pm_runtime_set_memalloc_noio()
Introduce the flag memalloc_noio in 'struct dev_pm_info' to help PM core
to teach mm not allocating memory with GFP_KERNEL flag for avoiding
probable deadlock.

As explained in the comment, any GFP_KERNEL allocation inside
runtime_resume() or runtime_suspend() on any one of device in the path
from one block or network device to the root device in the device tree
may cause deadlock, the introduced pm_runtime_set_memalloc_noio() sets
or clears the flag on device in the path recursively.

Signed-off-by: Ming Lei <ming.lei@canonical.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Oliver Neukum <oneukum@suse.de>
Cc: Jiri Kosina <jiri.kosina@suse.com>
Cc: Mel Gorman <mel@csn.ul.ie>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Greg KH <greg@kroah.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: David Decotigny <david.decotigny@google.com>
Cc: Tom Herbert <therbert@google.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-02-23 17:50:16 -08:00
..
accessibility
acpi acpi, memory-hotplug: parse SRAT before memblock is ready 2013-02-23 17:50:14 -08:00
amba
ata Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2013-02-21 17:54:03 -08:00
atm
auxdisplay
base pm / runtime: introduce pm_runtime_set_memalloc_noio() 2013-02-23 17:50:16 -08:00
bcma
block Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
bluetooth Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-02-21 17:40:58 -08:00
bus
cdrom
char Char/Misc driver patches for 3.9-rc1 2013-02-21 13:57:13 -08:00
clk arm-soc: device tree conversions 2013-02-21 15:38:49 -08:00
clocksource arm-soc: virtualization changes 2013-02-21 15:40:16 -08:00
connector
cpufreq arm-soc: driver specific changes 2013-02-21 15:12:18 -08:00
cpuidle arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
crypto
dca
devfreq
dio
dma arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
edac Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
eisa
extcon Char/Misc driver patches for 3.9-rc1 2013-02-21 13:57:13 -08:00
firewire Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-02-21 17:40:58 -08:00
firmware memory-hotplug: remove /sys/firmware/memmap/X sysfs 2013-02-23 17:50:12 -08:00
gpio Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2013-02-21 17:54:03 -08:00
gpu Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-02-21 17:40:58 -08:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2013-02-21 17:41:38 -08:00
hsi
hv Char/Misc driver patches for 3.9-rc1 2013-02-21 13:57:13 -08:00
hwmon
hwspinlock
i2c arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
ide Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-02-21 17:40:58 -08:00
idle Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
iio Staging tree update for 3.9-rc1 2013-02-21 12:11:44 -08:00
infiniband Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-02-21 17:40:58 -08:00
input arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
iommu Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
ipack Char/Misc driver patches for 3.9-rc1 2013-02-21 13:57:13 -08:00
irqchip arm-soc: cleanups 2013-02-21 14:58:40 -08:00
isdn Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-02-21 17:40:58 -08:00
leds
lguest tty/serial patches for 3.9-rc1 2013-02-21 13:41:04 -08:00
macintosh
mailbox
md drivers/md/persistent-data/dm-transaction-manager.c: rename HASH_SIZE 2013-02-23 17:50:08 -08:00
media Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2013-02-21 17:54:03 -08:00
memory
memstick
message
mfd arm-soc: driver specific changes 2013-02-21 15:12:18 -08:00
misc Char/Misc driver patches for 3.9-rc1 2013-02-21 13:57:13 -08:00
mmc Char/Misc driver patches for 3.9-rc1 2013-02-21 13:57:13 -08:00
mtd arm-soc: device tree conversions 2013-02-21 15:38:49 -08:00
net Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2013-02-21 17:54:03 -08:00
nfc
ntb
nubus
of Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-02-21 17:40:58 -08:00
oprofile
parisc
parport Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2013-02-21 17:54:03 -08:00
pci Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2013-02-21 17:54:03 -08:00
pcmcia Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-02-21 17:40:58 -08:00
pinctrl arm-soc: device tree conversions 2013-02-21 15:38:49 -08:00
platform Staging tree update for 3.9-rc1 2013-02-21 12:11:44 -08:00
pnp
power Staging tree update for 3.9-rc1 2013-02-21 12:11:44 -08:00
pps
ps3
ptp
pwm
rapidio
regulator
remoteproc arm-soc: multiplatform support 2013-02-21 15:20:41 -08:00
rpmsg Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-02-21 17:40:58 -08:00
rtc Merge branch 'akpm' (incoming from Andrew) 2013-02-21 17:38:49 -08:00
s390 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2013-02-21 17:54:03 -08:00
sbus
scsi Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-02-21 17:40:58 -08:00
sfi
sh
sn
spi arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
ssb
staging Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-02-21 17:40:58 -08:00
target Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-02-21 17:40:58 -08:00
tc
thermal
tty Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2013-02-21 17:54:03 -08:00
uio
usb arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
uwb
vfio
vhost Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
video Merge branch 'akpm' (incoming from Andrew) 2013-02-21 17:38:49 -08:00
virt
virtio
vlynq
vme
w1 Char/Misc driver patches for 3.9-rc1 2013-02-21 13:57:13 -08:00
watchdog
xen Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-02-21 18:06:55 -08:00
zorro
Kconfig Char/Misc driver patches for 3.9-rc1 2013-02-21 13:57:13 -08:00
Makefile Char/Misc driver patches for 3.9-rc1 2013-02-21 13:57:13 -08:00