linux/drivers/net/usb
Mel Gorman 0614002bb5 netvm: propagate page->pfmemalloc from skb_alloc_page to skb
The skb->pfmemalloc flag gets set to true iff during the slab allocation
of data in __alloc_skb that the the PFMEMALLOC reserves were used.  If
page splitting is used, it is possible that pages will be allocated from
the PFMEMALLOC reserve without propagating this information to the skb.
This patch propagates page->pfmemalloc from pages allocated for fragments
to the skb.

It works by reintroducing and expanding the skb_alloc_page() API to take
an skb.  If the page was allocated from pfmemalloc reserves, it is
automatically copied.  If the driver allocates the page before the skb, it
should call skb_propagate_pfmemalloc() after the skb is allocated to
ensure the flag is copied properly.

Failure to do so is not critical.  The resulting driver may perform slower
if it is used for swap-over-NBD or swap-over-NFS but it should not result
in failure.

[davem@davemloft.net: API rename and consistency]
Signed-off-by: Mel Gorman <mgorman@suse.de>
Acked-by: David S. Miller <davem@davemloft.net>
Cc: Neil Brown <neilb@suse.de>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Christie <michaelc@cs.wisc.edu>
Cc: Eric B Munson <emunson@mgebm.net>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Christoph Lameter <cl@linux.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-07-31 18:42:46 -07:00
..
Kconfig asix: AX88172A driver depends on phylib 2012-07-19 10:48:07 -07:00
Makefile asix: Add a new driver for the AX88172A 2012-07-16 23:26:23 -07:00
asix.h asix: Add support for programming the EEPROM 2012-07-19 10:48:07 -07:00
asix_common.c asix: Add support for programming the EEPROM 2012-07-19 10:48:07 -07:00
asix_devices.c asix: Add support for programming the EEPROM 2012-07-19 10:48:07 -07:00
ax88172a.c asix: Add support for programming the EEPROM 2012-07-19 10:48:07 -07:00
catc.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
cdc-phonet.c netvm: propagate page->pfmemalloc from skb_alloc_page to skb 2012-07-31 18:42:46 -07:00
cdc_eem.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
cdc_ether.c USB 3.5-rc1 pull request 2012-05-22 15:50:46 -07:00
cdc_ncm.c cdc-ncm: tag Ericsson WWAN devices (eg F5521gw) with FLAG_WWAN 2012-07-24 13:55:38 -07:00
cdc_subset.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
cx82310_eth.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
dm9601.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
gl620a.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
hso.c TTY pull request for 3.5-rc1 2012-05-22 16:12:24 -07:00
int51x1.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
ipheth.c ipheth: add support for iPad 2012-06-25 16:20:41 -07:00
kalmia.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
kaweth.c USB: kaweth.c: use GFP_ATOMIC under spin_lock 2012-07-27 13:45:50 -07:00
lg-vl600.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
mcs7830.c mcs7830: Implement link state detection 2012-06-02 17:09:08 -04:00
net1080.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
pegasus.c usbnet:pegasus: remove usb_get/put_dev in .probe and .disconnect 2012-06-12 18:50:23 -07:00
pegasus.h usb: pegasus: fixed coding style issues 2010-06-30 10:26:16 -07:00
plusb.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
qmi_wwan.c net: qmi_wwan: add ZTE MF821D 2012-07-18 09:40:53 -07:00
rndis_host.c USB 3.5-rc1 pull request 2012-05-22 15:50:46 -07:00
rtl8150.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
sierra_net.c net: sierra_net: device IDs for Aircard 320U++ 2012-06-06 10:40:32 -07:00
smsc75xx.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-07-24 13:34:56 -07:00
smsc75xx.h smsc75xx: replace 0xffff with PHY_INT_SRC_CLEAR_ALL 2012-05-07 23:43:56 -04:00
smsc95xx.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-07-24 13:34:56 -07:00
smsc95xx.h
usbnet.c net: usb: Use eth_random_addr 2012-07-16 22:38:28 -07:00
zaurus.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00