diff options
author | Eric Dumazet <edumazet@google.com> | 2013-10-30 13:10:44 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-11-03 23:19:00 -0500 |
commit | 74d332c13b2148ae934ea94dac1745ae92efe8e5 (patch) | |
tree | 4f8f287774deaba28fa4c85d085d587ae7515aaf /net/core/net-sysfs.c | |
parent | b397f99921827e114d7f5600447e172a99c50165 (diff) | |
download | linux-74d332c13b2148ae934ea94dac1745ae92efe8e5.tar.bz2 |
net: extend net_device allocation to vmalloc()
Joby Poriyath provided a xen-netback patch to reduce the size of
xenvif structure as some netdev allocation could fail under
memory pressure/fragmentation.
This patch is handling the problem at the core level, allowing
any netdev structures to use vmalloc() if kmalloc() failed.
As vmalloc() adds overhead on a critical network path, add __GFP_REPEAT
to kzalloc() flags to do this fallback only when really needed.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Joby Poriyath <joby.poriyath@citrix.com>
Cc: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/net-sysfs.c')
-rw-r--r-- | net/core/net-sysfs.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c index d954b56b4e47..d03f2c9750fa 100644 --- a/net/core/net-sysfs.c +++ b/net/core/net-sysfs.c @@ -1263,7 +1263,7 @@ static void netdev_release(struct device *d) BUG_ON(dev->reg_state != NETREG_RELEASED); kfree(dev->ifalias); - kfree((char *)dev - dev->padded); + netdev_freemem(dev); } static const void *net_namespace(struct device *d) |