From 5bda78f3f7ecaeb650bb55322f97ac59e907f8c0 Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Thu, 29 Jan 2009 16:07:52 -0800 Subject: [PATCH] --- yaml --- r: 130492 b: refs/heads/master c: 95e3b24cfb4ec0479d2c42f7a1780d68063a542a h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/core/skbuff.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index da799ee0f65d..0dd67998bc6c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e125646ab56b490d0390b158e0afa9cccfc1f897 +refs/heads/master: 95e3b24cfb4ec0479d2c42f7a1780d68063a542a diff --git a/trunk/net/core/skbuff.c b/trunk/net/core/skbuff.c index 2e5f2ca3bdcd..f23fd43539ed 100644 --- a/trunk/net/core/skbuff.c +++ b/trunk/net/core/skbuff.c @@ -2212,10 +2212,10 @@ unsigned int skb_seq_read(unsigned int consumed, const u8 **data, return 0; next_skb: - block_limit = skb_headlen(st->cur_skb); + block_limit = skb_headlen(st->cur_skb) + st->stepped_offset; if (abs_offset < block_limit) { - *data = st->cur_skb->data + abs_offset; + *data = st->cur_skb->data + (abs_offset - st->stepped_offset); return block_limit - abs_offset; } @@ -2257,6 +2257,7 @@ unsigned int skb_seq_read(unsigned int consumed, const u8 **data, } else if (st->root_skb == st->cur_skb && skb_shinfo(st->root_skb)->frag_list) { st->cur_skb = skb_shinfo(st->root_skb)->frag_list; + st->frag_idx = 0; goto next_skb; }