1. 01 4月, 2015 1 次提交
  2. 17 2月, 2015 1 次提交
  3. 13 1月, 2015 3 次提交
  4. 27 3月, 2014 3 次提交
  5. 01 2月, 2013 1 次提交
  6. 14 5月, 2009 1 次提交
  7. 11 10月, 2008 1 次提交
  8. 20 4月, 2007 1 次提交
    • D
      [MIPS] Fix wrong checksum for split TCP packets on 64-bit MIPS · 1d464c26
      Dave Johnson 提交于
      I've traced down an off-by-one TCP checksum calculation error under
      the following conditions:
      
      1) The TCP code needs to split a full-sized packet due to a reduced
         MSS (typically due to the addition of TCP options mid-stream like
         SACK).
         _AND_
      2) The checksum of the 2nd fragment is larger than the checksum of the
         original packet.  After subtraction this results in a checksum for
         the 1st fragment with bits 16..31 set to 1. (this is ok)
         _AND_
      3) The checksum of the 1st fragment's TCP header plus the previously
         32bit checksum of the 1st fragment DOES NOT cause a 32bit overflow
         when added together.  This results in a checksum of the TCP header
         plus TCP data that still has the upper 16 bits as 1's.
         _THEN_
      4) The TCP+data checksum is added to the checksum of the pseudo IP
         header with csum_tcpudp_nofold() incorrectly (the bug).
          
      The problem is the checksum of the TCP+data is passed to
      csum_tcpudp_nofold() as an 32bit unsigned value, however the assembly
      code acts on it as if it is a 64bit unsigned value.
      
      This causes an incorrect 32->64bit extension if the sum has bit 31
      set.  The resulting checksum is off by one.
          
      This problems is data and TCP header dependent due to #2 and #3
      above so it doesn't occur on every TCP packet split.
      Signed-off-by: NDave Johnson <djohnson+linux-mips@sw.starentnetworks.com>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      1d464c26
  9. 25 1月, 2007 1 次提交
    • A
      [MIPS] Fix wrong checksum calculation on 64-bit MIPS · 66218da2
      Atsushi Nemoto 提交于
      The commit 8e3d8433 ([NET]: MIPS
      checksum annotations and cleanups) broke 64-bit MIPS.
      
      The problem is the commit replaces some unsigned long with __be32.  On
      64bit MIPS, a __be32 (i.e. unsigned int) value is represented as a
      sign-extented 32-bit value in a 64-bit argument register.  So the
      address 192.168.0.1 (0xc0a80001) is passed as 0xffffffffc0a80001 to
      csum_tcpudp_nofold() but the asm code in the function expects
      0x00000000c0a80001, therefore it returns a wrong checksum.  Explicit
      cast to unsigned long is needed to drop high 32bit.
      Signed-off-by: NAtsushi Nemoto <anemo@mba.ocn.ne.jp>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      66218da2
  10. 09 1月, 2007 1 次提交
  11. 03 12月, 2006 1 次提交
  12. 26 4月, 2006 1 次提交
  13. 30 10月, 2005 3 次提交
  14. 05 9月, 2005 1 次提交
  15. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4