diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2011-10-18 17:00:24 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-10-19 03:10:46 -0400 |
commit | 9e903e085262ffbf1fc44a17ac06058aca03524a (patch) | |
tree | 4acefc97ba38c1733474d25c0b2053b56af97db1 /net/ipv4/tcp.c | |
parent | dd767856a36e00b631d65ebc4bb81b19915532d6 (diff) |
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>
Diffstat (limited to 'net/ipv4/tcp.c')
-rw-r--r-- | net/ipv4/tcp.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 4c0da24fb649..132be081cd00 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c | |||
@@ -813,7 +813,7 @@ new_segment: | |||
813 | goto wait_for_memory; | 813 | goto wait_for_memory; |
814 | 814 | ||
815 | if (can_coalesce) { | 815 | if (can_coalesce) { |
816 | skb_shinfo(skb)->frags[i - 1].size += copy; | 816 | skb_frag_size_add(&skb_shinfo(skb)->frags[i - 1], copy); |
817 | } else { | 817 | } else { |
818 | get_page(page); | 818 | get_page(page); |
819 | skb_fill_page_desc(skb, i, page, offset, copy); | 819 | skb_fill_page_desc(skb, i, page, offset, copy); |
@@ -1058,8 +1058,7 @@ new_segment: | |||
1058 | 1058 | ||
1059 | /* Update the skb. */ | 1059 | /* Update the skb. */ |
1060 | if (merge) { | 1060 | if (merge) { |
1061 | skb_shinfo(skb)->frags[i - 1].size += | 1061 | skb_frag_size_add(&skb_shinfo(skb)->frags[i - 1], copy); |
1062 | copy; | ||
1063 | } else { | 1062 | } else { |
1064 | skb_fill_page_desc(skb, i, page, off, copy); | 1063 | skb_fill_page_desc(skb, i, page, off, copy); |
1065 | if (TCP_PAGE(sk)) { | 1064 | if (TCP_PAGE(sk)) { |
@@ -3031,8 +3030,8 @@ int tcp_md5_hash_skb_data(struct tcp_md5sig_pool *hp, | |||
3031 | for (i = 0; i < shi->nr_frags; ++i) { | 3030 | for (i = 0; i < shi->nr_frags; ++i) { |
3032 | const struct skb_frag_struct *f = &shi->frags[i]; | 3031 | const struct skb_frag_struct *f = &shi->frags[i]; |
3033 | struct page *page = skb_frag_page(f); | 3032 | struct page *page = skb_frag_page(f); |
3034 | sg_set_page(&sg, page, f->size, f->page_offset); | 3033 | sg_set_page(&sg, page, skb_frag_size(f), f->page_offset); |
3035 | if (crypto_hash_update(desc, &sg, f->size)) | 3034 | if (crypto_hash_update(desc, &sg, skb_frag_size(f))) |
3036 | return 1; | 3035 | return 1; |
3037 | } | 3036 | } |
3038 | 3037 | ||