net: add skb frag size accessors
To ease skb->truesize sanitization, its better to be able to localize
all references to skb frags size.
Define accessors : skb_frag_size() to fetch frag size, and
skb_frag_size_{set|add|sub}() to manipulate it.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
dd767856a3
commit
9e903e0852
+24
-4
@@ -150,6 +150,26 @@ struct skb_frag_struct {
|
||||
#endif
|
||||
};
|
||||
|
||||
static inline unsigned int skb_frag_size(const skb_frag_t *frag)
|
||||
{
|
||||
return frag->size;
|
||||
}
|
||||
|
||||
static inline void skb_frag_size_set(skb_frag_t *frag, unsigned int size)
|
||||
{
|
||||
frag->size = size;
|
||||
}
|
||||
|
||||
static inline void skb_frag_size_add(skb_frag_t *frag, int delta)
|
||||
{
|
||||
frag->size += delta;
|
||||
}
|
||||
|
||||
static inline void skb_frag_size_sub(skb_frag_t *frag, int delta)
|
||||
{
|
||||
frag->size -= delta;
|
||||
}
|
||||
|
||||
#define HAVE_HW_TIME_STAMP
|
||||
|
||||
/**
|
||||
@@ -1132,7 +1152,7 @@ static inline int skb_pagelen(const struct sk_buff *skb)
|
||||
int i, len = 0;
|
||||
|
||||
for (i = (int)skb_shinfo(skb)->nr_frags - 1; i >= 0; i--)
|
||||
len += skb_shinfo(skb)->frags[i].size;
|
||||
len += skb_frag_size(&skb_shinfo(skb)->frags[i]);
|
||||
return len + skb_headlen(skb);
|
||||
}
|
||||
|
||||
@@ -1156,7 +1176,7 @@ static inline void __skb_fill_page_desc(struct sk_buff *skb, int i,
|
||||
|
||||
frag->page = page;
|
||||
frag->page_offset = off;
|
||||
frag->size = size;
|
||||
skb_frag_size_set(frag, size);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1907,10 +1927,10 @@ static inline int skb_can_coalesce(struct sk_buff *skb, int i,
|
||||
const struct page *page, int off)
|
||||
{
|
||||
if (i) {
|
||||
struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i - 1];
|
||||
const struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i - 1];
|
||||
|
||||
return page == skb_frag_page(frag) &&
|
||||
off == frag->page_offset + frag->size;
|
||||
off == frag->page_offset + skb_frag_size(frag);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user