)]}'
{
  "log": [
    {
      "commit": "1d464c26b5625215c4b35fb336c8f3c57d248c2e",
      "tree": "88316e8149c4125dbdb55ff90a4e8d45a024940b",
      "parents": [
        "ba755f8ec80fdbf2b5212622eabf7355464c6327"
      ],
      "author": {
        "name": "Dave Johnson",
        "email": "djohnson+linux-mips@sw.starentnetworks.com",
        "time": "Wed Apr 18 10:39:41 2007 -0400"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Fri Apr 20 14:58:37 2007 +0100"
      },
      "message": "[MIPS] Fix wrong checksum for split TCP packets on 64-bit MIPS\n\nI\u0027ve traced down an off-by-one TCP checksum calculation error under\nthe following conditions:\n\n1) The TCP code needs to split a full-sized packet due to a reduced\n   MSS (typically due to the addition of TCP options mid-stream like\n   SACK).\n   _AND_\n2) The checksum of the 2nd fragment is larger than the checksum of the\n   original packet.  After subtraction this results in a checksum for\n   the 1st fragment with bits 16..31 set to 1. (this is ok)\n   _AND_\n3) The checksum of the 1st fragment\u0027s TCP header plus the previously\n   32bit checksum of the 1st fragment DOES NOT cause a 32bit overflow\n   when added together.  This results in a checksum of the TCP header\n   plus TCP data that still has the upper 16 bits as 1\u0027s.\n   _THEN_\n4) The TCP+data checksum is added to the checksum of the pseudo IP\n   header with csum_tcpudp_nofold() incorrectly (the bug).\n    \nThe problem is the checksum of the TCP+data is passed to\ncsum_tcpudp_nofold() as an 32bit unsigned value, however the assembly\ncode acts on it as if it is a 64bit unsigned value.\n\nThis causes an incorrect 32-\u003e64bit extension if the sum has bit 31\nset.  The resulting checksum is off by one.\n    \nThis problems is data and TCP header dependent due to #2 and #3\nabove so it doesn\u0027t occur on every TCP packet split.\n    \nSigned-off-by: Dave Johnson \u003cdjohnson+linux-mips@sw.starentnetworks.com\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "66218da212bf141532d678a699f5789c78145ab1",
      "tree": "6ba949af13a6f07ceaa7a5e99c71dc513d860849",
      "parents": [
        "9cfdf6f15a2a462b6b328b4c60b252cfc04ec03e"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Wed Jan 24 15:43:34 2007 +0900"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Wed Jan 24 19:23:22 2007 +0000"
      },
      "message": "[MIPS] Fix wrong checksum calculation on 64-bit MIPS\n\nThe commit 8e3d8433d8c22ca6c42cba4a67d300c39aae7822 ([NET]: MIPS\nchecksum annotations and cleanups) broke 64-bit MIPS.\n\nThe problem is the commit replaces some unsigned long with __be32.  On\n64bit MIPS, a __be32 (i.e. unsigned int) value is represented as a\nsign-extented 32-bit value in a 64-bit argument register.  So the\naddress 192.168.0.1 (0xc0a80001) is passed as 0xffffffffc0a80001 to\ncsum_tcpudp_nofold() but the asm code in the function expects\n0x00000000c0a80001, therefore it returns a wrong checksum.  Explicit\ncast to unsigned long is needed to drop high 32bit.\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "f860c90bd6ce22c6a0a352cc16acc74fba3d628e",
      "tree": "fee63d3ff954439d19932beeb0109508a0bc899c",
      "parents": [
        "61e84f99877fa8caaf1be86d51d825406e8d8bc1"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Wed Dec 13 01:22:06 2006 +0900"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Mon Jan 08 21:41:04 2007 +0000"
      },
      "message": "[MIPS] csum_partial and copy in parallel\n\nImplement optimized asm version of csum_partial_copy_nocheck,\ncsum_partial_copy_from_user and csum_and_copy_to_user which can do\ncalculate and copy in parallel, based on memcpy.S.\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "8e3d8433d8c22ca6c42cba4a67d300c39aae7822",
      "tree": "98b59679682536f62fd6a1851985f728aa770cc9",
      "parents": [
        "59ed05a7e891d694a43df96ac613f7e8e164eb95"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Nov 14 21:18:18 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:23:09 2006 -0800"
      },
      "message": "[NET]: MIPS checksum annotations and cleanups.\n\n* sanitize prototypes, annotate\n* kill shift-by-16 in checksum calculations\n* htons-\u003eshift in l-e checksum calculations\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "e97288386a316e3960b758a60ae7cd17b3ee10e7",
      "tree": "5a40713cc8ceec43a9ed0d2f02373a1e5a2d648f",
      "parents": [
        "2cce8263228ac8926d675cfa19e50ca0af9e05e4"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Tue Sep 20 10:56:26 2005 +0000"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Sat Oct 29 19:32:25 2005 +0100"
      },
      "message": "The type of sum in csum_tcpudp_nofold is \"unsigned int\", so when we assign\nto it in an asm() block, and we\u0027re running on a system with 64-bit\nregisters, it is vitally important that we sign extend it correctly before\nreturning to C.  Otherwise the stray high bits will be preserved into\ncsum_fold, and on the SB-1 processor, 32-bit arithmetic on a non\nsign-extended register will yield surprising results.\n    \nThis caused incorrect checksums in some UDP packets for NFS root.  The\nproblem was mild when using a 10.0.1.x IP address, but severe when\nusing 192.168.1.x.\n    \nSigned-off-by: Daniel Jacobowitz \u003cdan@codesourcery.com\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "04988d6fda5c1cc670bd4c4d563b3443cf7ccce7",
      "tree": "dc3ead52d31bb9014f1f8ebea75525364d699b15",
      "parents": [
        "9556ac2fa1b16ec702e200fc558636a09a50f0e0"
      ],
      "author": {
        "name": "Thiemo Seufer",
        "email": "ths@networkno.de",
        "time": "Fri Jul 08 09:17:05 2005 +0000"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Sat Oct 29 19:31:40 2005 +0100"
      },
      "message": "Protect noat assembly with .set push/pop and make it somewhat readable.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Thiemo Seufer \u003cths@networkno.de\u003e\n"
    },
    {
      "commit": "fe00f943e0ef98b4057abcc2940d631a975b43cd",
      "tree": "c036ab8269ac86485130a083330229a01d319557",
      "parents": [
        "14f18b7f7e58de9a34c4b5fd38d5f73f22fba7ac"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Tue Mar 01 19:22:29 2005 +0000"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Sat Oct 29 19:30:50 2005 +0100"
      },
      "message": "Sparseify MIPS.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "875d43e72b5bf22161a81de7554f88eccf8a51ae",
      "tree": "a676fe7298b478b7ee9fe7be9cb07c9a0b928370",
      "parents": [
        "63fb6fd1c86181d9dd9ba0e6e6082799e149b56b"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Sat Sep 03 15:56:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:06 2005 -0700"
      },
      "message": "[PATCH] mips: clean up 32/64-bit configuration\n\nStart cleaning 32-bit vs. 64-bit configuration.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
