diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2012-03-24 00:59:33 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-03-25 19:29:58 +0200 |
commit | 50269e19ad990e79eeda101fc6df80cffd5d4831 (patch) | |
tree | 903d80ba1b1fc0eb15e122a8c12a72f72e7ed2de /net/core/skbuff.c | |
parent | gianfar: Fix possible overrun and simplify interrupt name field creation (diff) | |
download | linux-50269e19ad990e79eeda101fc6df80cffd5d4831.tar.xz linux-50269e19ad990e79eeda101fc6df80cffd5d4831.zip |
net: add a truesize parameter to skb_add_rx_frag()
skb_add_rx_frag() API is misleading.
Network skbs built with this helper can use uncharged kernel memory and
eventually stress/crash machine in OOM.
Add a 'truesize' parameter and then fix drivers in followup patches.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/skbuff.c')
-rw-r--r-- | net/core/skbuff.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 6eb656acdfe5..a690cae91cdd 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -321,12 +321,12 @@ struct sk_buff *__netdev_alloc_skb(struct net_device *dev, EXPORT_SYMBOL(__netdev_alloc_skb); void skb_add_rx_frag(struct sk_buff *skb, int i, struct page *page, int off, - int size) + int size, unsigned int truesize) { skb_fill_page_desc(skb, i, page, off, size); skb->len += size; skb->data_len += size; - skb->truesize += size; + skb->truesize += truesize; } EXPORT_SYMBOL(skb_add_rx_frag); |