)]}'
{
  "commit": "c9af6db4c11ccc6c3e7f19bbc15d54023956f97c",
  "tree": "c596e747d8940b848931ac31701e245a6c0efaf6",
  "parents": [
    "b8fa4100350432504df438014e2e5e9c1bbb6325"
  ],
  "author": {
    "name": "Pravin B Shelar",
    "email": "pshelar@nicira.com",
    "time": "Mon Feb 11 09:27:41 2013 +0000"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Wed Feb 13 13:30:10 2013 -0500"
  },
  "message": "net: Fix possible wrong checksum generation.\n\nPatch cef401de7be8c4e (net: fix possible wrong checksum\ngeneration) fixed wrong checksum calculation but it broke TSO by\ndefining new GSO type but not a netdev feature for that type.\nnet_gso_ok() would not allow hardware checksum/segmentation\noffload of such packets without the feature.\n\nFollowing patch fixes TSO and wrong checksum. This patch uses\nsame logic that Eric Dumazet used. Patch introduces new flag\nSKBTX_SHARED_FRAG if at least one frag can be modified by\nthe user. but SKBTX_SHARED_FRAG flag is kept in skb shared\ninfo tx_flags rather than gso_type.\n\ntx_flags is better compared to gso_type since we can have skb with\nshared frag without gso packet. It does not link SHARED_FRAG to\nGSO, So there is no need to define netdev feature for this.\n\nSigned-off-by: Pravin B Shelar \u003cpshelar@nicira.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b181dfb3d6d600362235f7be38703a6827530f96",
      "old_mode": 33188,
      "old_path": "drivers/net/macvtap.c",
      "new_id": "97243011d3192e43ceb3b42d149ac6f8e4ddb6e6",
      "new_mode": 33188,
      "new_path": "drivers/net/macvtap.c"
    },
    {
      "type": "modify",
      "old_id": "b1038c0e2240d9ef8d6697b01c2b70b61e6128cb",
      "old_mode": 33188,
      "old_path": "drivers/net/tun.c",
      "new_id": "b6f45c5d84d52575e70679556b78b663534cfe08",
      "new_mode": 33188,
      "new_path": "drivers/net/tun.c"
    },
    {
      "type": "modify",
      "old_id": "381a2d8d8a81f97444bb48b3abec073280b6f271",
      "old_mode": 33188,
      "old_path": "drivers/net/virtio_net.c",
      "new_id": "192c91c8e7994ef60cd742bd187c61ecfbf626e6",
      "new_mode": 33188,
      "new_path": "drivers/net/virtio_net.c"
    },
    {
      "type": "modify",
      "old_id": "d7573c37a51d51c803b734559c335572e9b40989",
      "old_mode": 33188,
      "old_path": "include/linux/skbuff.h",
      "new_id": "9da99520ccd5f609039dfdc4f3cca31adbe06e17",
      "new_mode": 33188,
      "new_path": "include/linux/skbuff.h"
    },
    {
      "type": "modify",
      "old_id": "21a22cce6e5350e7e9397f3a66d8708746e204ed",
      "old_mode": 33188,
      "old_path": "net/core/skbuff.c",
      "new_id": "6c1ad09f8796db3f2a211c3cf777f8e24cab4874",
      "new_mode": 33188,
      "new_path": "net/core/skbuff.c"
    },
    {
      "type": "modify",
      "old_id": "1aec92bf80189aad7bb940502c3d7a77b5978738",
      "old_mode": 33188,
      "old_path": "net/ipv4/af_inet.c",
      "new_id": "e6e5d85063367b17db05130fa10fe613039f8fce",
      "new_mode": 33188,
      "new_path": "net/ipv4/af_inet.c"
    },
    {
      "type": "modify",
      "old_id": "3e98ed2bff55d7328aae7209ecbda4f78445c87a",
      "old_mode": 33188,
      "old_path": "net/ipv4/ip_output.c",
      "new_id": "5e12dca7b3dd4914af0f1f0e333c59f6547968f8",
      "new_mode": 33188,
      "new_path": "net/ipv4/ip_output.c"
    },
    {
      "type": "modify",
      "old_id": "801b07b796f01a78b8bc0beeaae71eb1bca0d26c",
      "old_mode": 33188,
      "old_path": "net/ipv4/tcp.c",
      "new_id": "1f0bedb8622f04bedd775412b9ab9023f948f48d",
      "new_mode": 33188,
      "new_path": "net/ipv4/tcp.c"
    },
    {
      "type": "modify",
      "old_id": "d9bfaea34322e023496cb557408ae70049439d82",
      "old_mode": 33188,
      "old_path": "net/ipv4/tcp_input.c",
      "new_id": "a759e19496d2f57f508db27f21ab73b2b320523a",
      "new_mode": 33188,
      "new_path": "net/ipv4/tcp_input.c"
    },
    {
      "type": "modify",
      "old_id": "564bf89d9fd39e8cf33f72eaca36f7bc4696bdbf",
      "old_mode": 33188,
      "old_path": "net/ipv4/tcp_output.c",
      "new_id": "6182d90e97b0fde55b533e3d53f78aa9136b6731",
      "new_mode": 33188,
      "new_path": "net/ipv4/tcp_output.c"
    },
    {
      "type": "modify",
      "old_id": "d141fc32a2eab7c41557488000e5811620ef799f",
      "old_mode": 33188,
      "old_path": "net/ipv6/ip6_offload.c",
      "new_id": "f26f0da7f095763050d891e2543105c3f996320e",
      "new_mode": 33188,
      "new_path": "net/ipv6/ip6_offload.c"
    }
  ]
}
