Skip to content

Commit c123e0d

Browse files
edumazetdavem330
authored andcommitted
net: add truesize debug checks in skb_{add|coalesce}_rx_frag()
It can be time consuming to track driver bugs, that might be detected too late from this confusing warning in skb_try_coalesce() WARN_ON_ONCE(delta < len); Add sanity check in skb_add_rx_frag() and skb_coalesce_rx_frag() to better track bug origin for CONFIG_DEBUG_NET=y builds. Signed-off-by: Eric Dumazet <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 41862d1 commit c123e0d

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

net/core/skbuff.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -847,6 +847,8 @@ EXPORT_SYMBOL(__napi_alloc_skb);
847847
void skb_add_rx_frag(struct sk_buff *skb, int i, struct page *page, int off,
848848
int size, unsigned int truesize)
849849
{
850+
DEBUG_NET_WARN_ON_ONCE(size > truesize);
851+
850852
skb_fill_page_desc(skb, i, page, off, size);
851853
skb->len += size;
852854
skb->data_len += size;
@@ -859,6 +861,8 @@ void skb_coalesce_rx_frag(struct sk_buff *skb, int i, int size,
859861
{
860862
skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
861863

864+
DEBUG_NET_WARN_ON_ONCE(size > truesize);
865+
862866
skb_frag_size_add(frag, size);
863867
skb->len += size;
864868
skb->data_len += size;

0 commit comments

Comments
 (0)