From 235e496f1beefd4807665e55196a7b08aca9dbe0 Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Mon, 13 May 2013 21:25:52 +0000 Subject: [PATCH] --- yaml --- r: 376092 b: refs/heads/master c: 54d27fcb338bd9c42d1dfc5a39e18f6f9d373c2e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/ipv4/tcp.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 459839f8471b..f473573d205f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: efee8e8712921279c3a5a687d5b65ee7fde7db89 +refs/heads/master: 54d27fcb338bd9c42d1dfc5a39e18f6f9d373c2e diff --git a/trunk/net/ipv4/tcp.c b/trunk/net/ipv4/tcp.c index dcb116dde216..10c93930abda 100644 --- a/trunk/net/ipv4/tcp.c +++ b/trunk/net/ipv4/tcp.c @@ -3269,8 +3269,11 @@ int tcp_md5_hash_skb_data(struct tcp_md5sig_pool *hp, for (i = 0; i < shi->nr_frags; ++i) { const struct skb_frag_struct *f = &shi->frags[i]; - struct page *page = skb_frag_page(f); - sg_set_page(&sg, page, skb_frag_size(f), f->page_offset); + unsigned int offset = f->page_offset; + struct page *page = skb_frag_page(f) + (offset >> PAGE_SHIFT); + + sg_set_page(&sg, page, skb_frag_size(f), + offset_in_page(offset)); if (crypto_hash_update(desc, &sg, skb_frag_size(f))) return 1; }