)]}'
{
  "commit": "afbc1e994ddcf3b6fe2dc928ee8dc31a5d0c3118",
  "tree": "95ccefc1b49aa275d06c39f9bd386a7d2ceb7d6a",
  "parents": [
    "04439694ea82fed62a97fd474147966381201954"
  ],
  "author": {
    "name": "Heiko Carstens",
    "email": "heiko.carstens@de.ibm.com",
    "time": "Mon Mar 26 20:42:39 2007 +0200"
  },
  "committer": {
    "name": "Heiko Carstens",
    "email": "heiko.carstens@de.ibm.com",
    "time": "Mon Mar 26 20:43:46 2007 +0200"
  },
  "message": "[S390] Fix TCP/UDP pseudo header checksum computation.\n\ngit commit f994aae1bd8e4813d59a2ed64d17585fe42d03fc changed the\nfunction declaration of csum_tcpudp_nofold. Argument types were\nchanged from unsigned long to __be32 (unsigned int). Therefore we\nlost the implicit type conversion that zeroed the upper half of the\nregisters that are used to pass parameters. Since the inline assembly\nrelied on this we ended up adding random values and wrong checksums\nwere created.\nShowed only up on machines with more than 4GB since gcc produced code\nwhere the registers that are used to pass \u0027saddr\u0027 and \u0027daddr\u0027 previously\ncontained addresses before calling this function.\nFix this by using 32 bit arithmetics and convert code to C, since gcc\nproduces better code than these hand-optimized versions.\n\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0a3cd7ec84510128181f14db0a10fcccd141e8d2",
      "old_mode": 33188,
      "old_path": "include/asm-s390/checksum.h",
      "new_id": "d5a8e7c1477cb51996abed9e9b2f7d65b9c5d06a",
      "new_mode": 33188,
      "new_path": "include/asm-s390/checksum.h"
    }
  ]
}
