Message ID | 1372123520-18287-1-git-send-email-wedsonaf@gmail.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
From: Wedson Almeida Filho <wedsonaf@gmail.com> Date: Mon, 24 Jun 2013 18:25:20 -0700 > Callers of skb_seq_read() are currently forced to call skb_abort_seq_read() > even when consuming all the data because the last call to skb_seq_read (the > one that returns 0 to indicate the end) fails to unmap the last fragment page. > > With this patch callers will be allowed to traverse the SKB data by calling > skb_prepare_seq_read() once and repeatedly calling skb_seq_read() as originally > intended (and documented in the original commit 677e90eda - "[NET]: Zerocopy > sequential reading of skb data"), that is, only call skb_abort_seq_read() if > the sequential read is actually aborted. > > Signed-off-by: Wedson Almeida Filho <wedsonaf@gmail.com> This patch doesn't even come close to applying to the net-next tree, please respin this patch properly and resubmit. Thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Jun 25, 2013 at 4:20 PM, David Miller <davem@davemloft.net> wrote: > This patch doesn't even come close to applying to the net-next tree, > please respin this patch properly and resubmit. Where can I pull the net-next tree from? git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git? Thanks -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
>> This patch doesn't even come close to applying to the net-next tree, >> please respin this patch properly and resubmit. > > Where can I pull the net-next tree from? > git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git? David, would you mind clarifying where I can find net-next? The only one I could find was the one I mention above and it already has my patch in it (though with the previous comment). Thanks -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Wedson Almeida Filho <wedsonaf@gmail.com> Date: Thu, 27 Jun 2013 15:03:40 -0700 >>> This patch doesn't even come close to applying to the net-next tree, >>> please respin this patch properly and resubmit. >> >> Where can I pull the net-next tree from? >> git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git? > > David, would you mind clarifying where I can find net-next? The only > one I could find was the one I mention above and it already has my > patch in it (though with the previous comment). Yes that is where my net-next tree is, as clearly stated the "NETWORKING [GENERAL]" sercion of the MAINTAINERS file. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Jun 27, 2013 at 4:22 PM, David Miller <davem@davemloft.net> wrote: >> David, would you mind clarifying where I can find net-next? The only >> one I could find was the one I mention above and it already has my >> patch in it (though with the previous comment). > > Yes that is where my net-next tree is, as clearly stated the > "NETWORKING [GENERAL]" sercion of the MAINTAINERS file. Ok, thanks for the info, now I know where the definitive answer is. Anyway, why are you asking me to respin this patch? If I do it based on this tree, there will be no changes in it. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Wedson Almeida Filho <wedsonaf@gmail.com> Date: Thu, 27 Jun 2013 17:35:15 -0700 > On Thu, Jun 27, 2013 at 4:22 PM, David Miller <davem@davemloft.net> wrote: > >>> David, would you mind clarifying where I can find net-next? The only >>> one I could find was the one I mention above and it already has my >>> patch in it (though with the previous comment). >> >> Yes that is where my net-next tree is, as clearly stated the >> "NETWORKING [GENERAL]" sercion of the MAINTAINERS file. > > Ok, thanks for the info, now I know where the definitive answer is. > > Anyway, why are you asking me to respin this patch? If I do it based > on this tree, there will be no changes in it. Nevermind then. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/scsi/libiscsi_tcp.c b/drivers/scsi/libiscsi_tcp.c index 552e8a2..448eae8 100644 --- a/drivers/scsi/libiscsi_tcp.c +++ b/drivers/scsi/libiscsi_tcp.c @@ -906,7 +906,6 @@ int iscsi_tcp_recv_skb(struct iscsi_conn *conn, struct sk_buff *skb, ISCSI_DBG_TCP(conn, "no more data avail. Consumed %d\n", consumed); *status = ISCSI_TCP_SKB_DONE; - skb_abort_seq_read(&seq); goto skb_done; } BUG_ON(segment->copied >= segment->size); diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c index 51aafd6..08125f3 100644 --- a/net/batman-adv/main.c +++ b/net/batman-adv/main.c @@ -473,7 +473,6 @@ __be32 batadv_skb_crc32(struct sk_buff *skb, u8 *payload_ptr) crc = crc32c(crc, data, len); consumed += len; } - skb_abort_seq_read(&st); return htonl(crc); } diff --git a/net/core/skbuff.c b/net/core/skbuff.c index cfd777b..26ea1cf 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -2554,8 +2554,13 @@ unsigned int skb_seq_read(unsigned int consumed, const u8 **data, unsigned int block_limit, abs_offset = consumed + st->lower_offset; skb_frag_t *frag; - if (unlikely(abs_offset >= st->upper_offset)) + if (unlikely(abs_offset >= st->upper_offset)) { + if (st->frag_data) { + kunmap_atomic(st->frag_data); + st->frag_data = NULL; + } return 0; + } next_skb: block_limit = skb_headlen(st->cur_skb) + st->stepped_offset;
Callers of skb_seq_read() are currently forced to call skb_abort_seq_read() even when consuming all the data because the last call to skb_seq_read (the one that returns 0 to indicate the end) fails to unmap the last fragment page. With this patch callers will be allowed to traverse the SKB data by calling skb_prepare_seq_read() once and repeatedly calling skb_seq_read() as originally intended (and documented in the original commit 677e90eda - "[NET]: Zerocopy sequential reading of skb data"), that is, only call skb_abort_seq_read() if the sequential read is actually aborted. Signed-off-by: Wedson Almeida Filho <wedsonaf@gmail.com> --- drivers/scsi/libiscsi_tcp.c | 1 - net/batman-adv/main.c | 1 - net/core/skbuff.c | 7 ++++++- 3 files changed, 6 insertions(+), 3 deletions(-)