Skip to content

Commit aff65da

Browse files
Ian Campbelldavem330
authored andcommitted
net: ipv4: convert to SKB frag APIs
Signed-off-by: Ian Campbell <[email protected]> Cc: "David S. Miller" <[email protected]> Cc: Alexey Kuznetsov <[email protected]> Cc: "Pekka Savola (ipv6)" <[email protected]> Cc: James Morris <[email protected]> Cc: Hideaki YOSHIFUJI <[email protected]> Cc: Patrick McHardy <[email protected]> Cc: [email protected] Signed-off-by: David S. Miller <[email protected]>
1 parent ea2ab69 commit aff65da

File tree

4 files changed

+8
-6
lines changed

4 files changed

+8
-6
lines changed

net/ipv4/inet_lro.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,7 @@ static struct sk_buff *__lro_proc_segment(struct net_lro_mgr *lro_mgr,
433433
if (!lro_mgr->get_frag_header ||
434434
lro_mgr->get_frag_header(frags, (void *)&mac_hdr, (void *)&iph,
435435
(void *)&tcph, &flags, priv)) {
436-
mac_hdr = page_address(frags->page) + frags->page_offset;
436+
mac_hdr = skb_frag_address(frags);
437437
goto out1;
438438
}
439439

net/ipv4/ip_output.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -989,13 +989,13 @@ static int __ip_append_data(struct sock *sk,
989989
if (page && (left = PAGE_SIZE - off) > 0) {
990990
if (copy >= left)
991991
copy = left;
992-
if (page != frag->page) {
992+
if (page != skb_frag_page(frag)) {
993993
if (i == MAX_SKB_FRAGS) {
994994
err = -EMSGSIZE;
995995
goto error;
996996
}
997-
get_page(page);
998997
skb_fill_page_desc(skb, i, page, off, 0);
998+
skb_frag_ref(skb, i);
999999
frag = &skb_shinfo(skb)->frags[i];
10001000
}
10011001
} else if (i < MAX_SKB_FRAGS) {
@@ -1015,7 +1015,8 @@ static int __ip_append_data(struct sock *sk,
10151015
err = -EMSGSIZE;
10161016
goto error;
10171017
}
1018-
if (getfrag(from, page_address(frag->page)+frag->page_offset+frag->size, offset, copy, skb->len, skb) < 0) {
1018+
if (getfrag(from, skb_frag_address(frag)+frag->size,
1019+
offset, copy, skb->len, skb) < 0) {
10191020
err = -EFAULT;
10201021
goto error;
10211022
}

net/ipv4/tcp.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3035,7 +3035,8 @@ int tcp_md5_hash_skb_data(struct tcp_md5sig_pool *hp,
30353035

30363036
for (i = 0; i < shi->nr_frags; ++i) {
30373037
const struct skb_frag_struct *f = &shi->frags[i];
3038-
sg_set_page(&sg, f->page, f->size, f->page_offset);
3038+
struct page *page = skb_frag_page(f);
3039+
sg_set_page(&sg, page, f->size, f->page_offset);
30393040
if (crypto_hash_update(desc, &sg, f->size))
30403041
return 1;
30413042
}

net/ipv4/tcp_output.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1095,7 +1095,7 @@ static void __pskb_trim_head(struct sk_buff *skb, int len)
10951095
k = 0;
10961096
for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
10971097
if (skb_shinfo(skb)->frags[i].size <= eat) {
1098-
put_page(skb_shinfo(skb)->frags[i].page);
1098+
skb_frag_unref(skb, i);
10991099
eat -= skb_shinfo(skb)->frags[i].size;
11001100
} else {
11011101
skb_shinfo(skb)->frags[k] = skb_shinfo(skb)->frags[i];

0 commit comments

Comments
 (0)