)]}'
{
  "commit": "e8eff9f4fc6a3b0e88ecf70e4f32fc2b68e26bfc",
  "tree": "45a70e4cfcb9bd48cc92a6aa03edc4d997275f71",
  "parents": [
    "9e5cc54ea086d91a2e4923bb693cc8e5b76c3085"
  ],
  "author": {
    "name": "Xin Long",
    "email": "lucien.xin@gmail.com",
    "time": "Tue Feb 12 18:47:30 2019 +0800"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@linuxfoundation.org",
    "time": "Wed Feb 27 10:08:58 2019 +0100"
  },
  "message": "sctp: call gso_reset_checksum when computing checksum in sctp_gso_segment\n\n[ Upstream commit fc228abc2347e106a44c0e9b29ab70b712c4ca51 ]\n\nJianlin reported a panic when running sctp gso over gre over vlan device:\n\n  [   84.772930] RIP: 0010:do_csum+0x6d/0x170\n  [   84.790605] Call Trace:\n  [   84.791054]  csum_partial+0xd/0x20\n  [   84.791657]  gre_gso_segment+0x2c3/0x390\n  [   84.792364]  inet_gso_segment+0x161/0x3e0\n  [   84.793071]  skb_mac_gso_segment+0xb8/0x120\n  [   84.793846]  __skb_gso_segment+0x7e/0x180\n  [   84.794581]  validate_xmit_skb+0x141/0x2e0\n  [   84.795297]  __dev_queue_xmit+0x258/0x8f0\n  [   84.795949]  ? eth_header+0x26/0xc0\n  [   84.796581]  ip_finish_output2+0x196/0x430\n  [   84.797295]  ? skb_gso_validate_network_len+0x11/0x80\n  [   84.798183]  ? ip_finish_output+0x169/0x270\n  [   84.798875]  ip_output+0x6c/0xe0\n  [   84.799413]  ? ip_append_data.part.50+0xc0/0xc0\n  [   84.800145]  iptunnel_xmit+0x144/0x1c0\n  [   84.800814]  ip_tunnel_xmit+0x62d/0x930 [ip_tunnel]\n  [   84.801699]  gre_tap_xmit+0xac/0xf0 [ip_gre]\n  [   84.802395]  dev_hard_start_xmit+0xa5/0x210\n  [   84.803086]  sch_direct_xmit+0x14f/0x340\n  [   84.803733]  __dev_queue_xmit+0x799/0x8f0\n  [   84.804472]  ip_finish_output2+0x2e0/0x430\n  [   84.805255]  ? skb_gso_validate_network_len+0x11/0x80\n  [   84.806154]  ip_output+0x6c/0xe0\n  [   84.806721]  ? ip_append_data.part.50+0xc0/0xc0\n  [   84.807516]  sctp_packet_transmit+0x716/0xa10 [sctp]\n  [   84.808337]  sctp_outq_flush+0xd7/0x880 [sctp]\n\nIt was caused by SKB_GSO_CB(skb)-\u003ecsum_start not set in sctp_gso_segment.\nsctp_gso_segment() calls skb_segment() with \u0027feature | NETIF_F_HW_CSUM\u0027,\nwhich causes SKB_GSO_CB(skb)-\u003ecsum_start not to be set in skb_segment().\n\nFor TCP/UDP, when feature supports HW_CSUM, CHECKSUM_PARTIAL will be set\nand gso_reset_checksum will be called to set SKB_GSO_CB(skb)-\u003ecsum_start.\n\nSo SCTP should do the same as TCP/UDP, to call gso_reset_checksum() when\ncomputing checksum in sctp_gso_segment.\n\nReported-by: Jianlin Shi \u003cjishi@redhat.com\u003e\nSigned-off-by: Xin Long \u003clucien.xin@gmail.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nAcked-by: Marcelo Ricardo Leitner \u003cmarcelo.leitner@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "123e9f2dc22652ba0e7bf26cd329682b9afefa0c",
      "old_mode": 33188,
      "old_path": "net/sctp/offload.c",
      "new_id": "edfcf16e704c4e02a93a13e2bdd507e91658ba0f",
      "new_mode": 33188,
      "new_path": "net/sctp/offload.c"
    }
  ]
}
