diff options
author | Larry Woodman <lwoodman@redhat.com> | 2006-11-09 11:05:38 +0100 |
---|---|---|
committer | Adrian Bunk <bunk@stusta.de> | 2006-11-09 11:05:38 +0100 |
commit | 4504530e9f7310af00f79807029659c32fda90a1 (patch) | |
tree | 7469553d827d70ed1bfeab0bb5c0bd89ea6ed8fc | |
parent | 5f61e927c7c47e696f7fe18ae3e7ea32a42e1d24 (diff) | |
download | lwn-4504530e9f7310af00f79807029659c32fda90a1.tar.gz lwn-4504530e9f7310af00f79807029659c32fda90a1.zip |
[NET]: __alloc_pages() failures reported due to fragmentation
We have seen a couple of __alloc_pages() failures due to
fragmentation, there is plenty of free memory but no large order pages
available. I think the problem is in sock_alloc_send_pskb(), the
gfp_mask includes __GFP_REPEAT but its never used/passed to the page
allocator. Shouldnt the gfp_mask be passed to alloc_skb() ?
Signed-off-by: Larry Woodman <lwoodman@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
-rw-r--r-- | net/core/sock.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/core/sock.c b/net/core/sock.c index 5621198f18ec..1eeed40162f2 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -961,7 +961,7 @@ static struct sk_buff *sock_alloc_send_pskb(struct sock *sk, goto failure; if (atomic_read(&sk->sk_wmem_alloc) < sk->sk_sndbuf) { - skb = alloc_skb(header_len, sk->sk_allocation); + skb = alloc_skb(header_len, gfp_mask); if (skb) { int npages; int i; |