1. 01 11月, 2008 1 次提交
  2. 29 10月, 2008 1 次提交
  3. 14 10月, 2008 1 次提交
  4. 08 10月, 2008 1 次提交
  5. 01 10月, 2008 2 次提交
  6. 16 8月, 2008 1 次提交
  7. 30 7月, 2008 1 次提交
  8. 26 7月, 2008 1 次提交
  9. 17 7月, 2008 1 次提交
  10. 15 7月, 2008 2 次提交
    • O
      net: refactor tcp splice receive path to improve readability · 2870c43d
      Octavian Purdila 提交于
      - move all of the details on offsets, lengths and buffers into a
      single function instead of doing these operation from multiple places
      
      - use a bottom up approach: try to avoid details in the high level
      functions, introduce them gradually as we go deeper in the function
      call stack
      
      With helpful feedback from Jarek Poplawski.
      Signed-off-by: NOctavian Purdila <opurdila@ixiacom.com>
      Acked-by: NJarek Poplawski <jarkao2@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2870c43d
    • P
      vlan: Don't store VLAN tag in cb · 6aa895b0
      Patrick McHardy 提交于
      Use a real skb member to store the skb to avoid clashes with qdiscs,
      which are allowed to use the cb area themselves. As currently only real
      devices that consume the skb set the NETIF_F_HW_VLAN_TX flag, no explicit
      invalidation is neccessary.
      
      The new member fills a hole on 64 bit, the skb layout changes from:
      
              __u32                      mark;                 /*   172     4 */
              sk_buff_data_t             transport_header;     /*   176     4 */
              sk_buff_data_t             network_header;       /*   180     4 */
              sk_buff_data_t             mac_header;           /*   184     4 */
              sk_buff_data_t             tail;                 /*   188     4 */
              /* --- cacheline 3 boundary (192 bytes) --- */
              sk_buff_data_t             end;                  /*   192     4 */
      
              /* XXX 4 bytes hole, try to pack */
      
      to
      
              __u32                      mark;                 /*   172     4 */
              __u16                      vlan_tci;             /*   176     2 */
      
              /* XXX 2 bytes hole, try to pack */
      
              sk_buff_data_t             transport_header;     /*   180     4 */
              sk_buff_data_t             network_header;       /*   184     4 */
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6aa895b0
  11. 28 6月, 2008 1 次提交
    • O
      tcp: fix for splice receive when used with software LRO · db43a282
      Octavian Purdila 提交于
      If an skb has nr_frags set to zero but its frag_list is not empty (as
      it can happen if software LRO is enabled), and a previous
      tcp_read_sock has consumed the linear part of the skb, then
      __skb_splice_bits:
      
      (a) incorrectly reports an error and
      
      (b) forgets to update the offset to account for the linear part
      
      Any of the two problems will cause the subsequent __skb_splice_bits
      call (the one that handles the frag_list skbs) to either skip data,
      or, if the unadjusted offset is greater then the size of the next skb
      in the frag_list, make tcp_splice_read loop forever.
      Signed-off-by: NOctavian Purdila <opurdila@ixiacom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      db43a282
  12. 20 6月, 2008 1 次提交
  13. 12 6月, 2008 1 次提交
  14. 05 6月, 2008 1 次提交
  15. 04 5月, 2008 1 次提交
  16. 14 4月, 2008 2 次提交
  17. 29 3月, 2008 2 次提交
  18. 28 3月, 2008 5 次提交
  19. 14 2月, 2008 1 次提交
  20. 13 2月, 2008 1 次提交
  21. 04 2月, 2008 1 次提交
  22. 29 1月, 2008 1 次提交
  23. 09 1月, 2008 1 次提交
    • P
      [NET]: Clone the sk_buff 'iif' field in __skb_clone() · 02f1c89d
      Paul Moore 提交于
      Both NetLabel and SELinux (other LSMs may grow to use it as well) rely
      on the 'iif' field to determine the receiving network interface of
      inbound packets.  Unfortunately, at present this field is not
      preserved across a skb clone operation which can lead to garbage
      values if the cloned skb is sent back through the network stack.  This
      patch corrects this problem by properly copying the 'iif' field in
      __skb_clone() and removing the 'iif' field assignment from
      skb_act_clone() since it is no longer needed.
      
      Also, while we are here, put the assignments in the same order as the
      offsets to reduce cacheline bounces.
      Signed-off-by: NPaul Moore <paul.moore@hp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      02f1c89d
  24. 26 11月, 2007 1 次提交
    • H
      [SKBUFF]: Free old skb properly in skb_morph · 2d4baff8
      Herbert Xu 提交于
      The skb_morph function only freed the data part of the dst skb, but leaked
      the auxiliary data such as the netfilter fields.  This patch fixes this by
      moving the relevant parts from __kfree_skb to skb_release_all and calling
      it in skb_morph.
      
      It also makes kfree_skbmem static since it's no longer called anywhere else
      and it now no longer does skb_release_data.
      
      Thanks to Yasuyuki KOZAKAI for finding this problem and posting a patch for
      it.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      2d4baff8
  25. 02 11月, 2007 1 次提交
    • J
      [SG] Get rid of __sg_mark_end() · c46f2334
      Jens Axboe 提交于
      sg_mark_end() overwrites the page_link information, but all users want
      __sg_mark_end() behaviour where we just set the end bit. That is the most
      natural way to use the sg list, since you'll fill it in and then mark the
      end point.
      
      So change sg_mark_end() to only set the termination bit. Add a sg_magic
      debug check as well, and clear a chain pointer if it is set.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      c46f2334
  26. 31 10月, 2007 1 次提交
    • D
      [NET]: Fix incorrect sg_mark_end() calls. · 51c739d1
      David S. Miller 提交于
      This fixes scatterlist corruptions added by
      
      	commit 68e3f5dd
      	[CRYPTO] users: Fix up scatterlist conversion errors
      
      The issue is that the code calls sg_mark_end() which clobbers the
      sg_page() pointer of the final scatterlist entry.
      
      The first part fo the fix makes skb_to_sgvec() do __sg_mark_end().
      
      After considering all skb_to_sgvec() call sites the most correct
      solution is to call __sg_mark_end() in skb_to_sgvec() since that is
      what all of the callers would end up doing anyways.
      
      I suspect this might have fixed some problems in virtio_net which is
      the sole non-crypto user of skb_to_sgvec().
      
      Other similar sg_mark_end() cases were converted over to
      __sg_mark_end() as well.
      
      Arguably sg_mark_end() is a poorly named function because it doesn't
      just "mark", it clears out the page pointer as a side effect, which is
      what led to these bugs in the first place.
      
      The one remaining plain sg_mark_end() call is in scsi_alloc_sgtable()
      and arguably it could be converted to __sg_mark_end() if only so that
      we can delete this confusing interface from linux/scatterlist.h
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      51c739d1
  27. 26 10月, 2007 1 次提交
  28. 24 10月, 2007 1 次提交
  29. 23 10月, 2007 1 次提交
  30. 16 10月, 2007 3 次提交