)]}'
{
  "commit": "51c739d1f484b2562040a3e496dc8e1670d4e279",
  "tree": "87b12c2330f2951deb1a435367907d15a5d938c3",
  "parents": [
    "07afa040252eb41f91f46f8e538b434a63122999"
  ],
  "author": {
    "name": "David S. Miller",
    "email": "davem@sunset.davemloft.net",
    "time": "Tue Oct 30 21:29:29 2007 -0700"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@sunset.davemloft.net",
    "time": "Tue Oct 30 21:29:29 2007 -0700"
  },
  "message": "[NET]: Fix incorrect sg_mark_end() calls.\n\nThis fixes scatterlist corruptions added by\n\n\tcommit 68e3f5dd4db62619fdbe520d36c9ebf62e672256\n\t[CRYPTO] users: Fix up scatterlist conversion errors\n\nThe issue is that the code calls sg_mark_end() which clobbers the\nsg_page() pointer of the final scatterlist entry.\n\nThe first part fo the fix makes skb_to_sgvec() do __sg_mark_end().\n\nAfter considering all skb_to_sgvec() call sites the most correct\nsolution is to call __sg_mark_end() in skb_to_sgvec() since that is\nwhat all of the callers would end up doing anyways.\n\nI suspect this might have fixed some problems in virtio_net which is\nthe sole non-crypto user of skb_to_sgvec().\n\nOther similar sg_mark_end() cases were converted over to\n__sg_mark_end() as well.\n\nArguably sg_mark_end() is a poorly named function because it doesn\u0027t\njust \"mark\", it clears out the page pointer as a side effect, which is\nwhat led to these bugs in the first place.\n\nThe one remaining plain sg_mark_end() call is in scsi_alloc_sgtable()\nand arguably it could be converted to __sg_mark_end() if only so that\nwe can delete this confusing interface from linux/scatterlist.h\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "573e1724019716767a8d8872d5c290c4337e6999",
      "old_mode": 33188,
      "old_path": "net/core/skbuff.c",
      "new_id": "64b50ff7a41399baeec0d10a44a94e291d9e8607",
      "new_mode": 33188,
      "new_path": "net/core/skbuff.c"
    },
    {
      "type": "modify",
      "old_id": "cad4278025adc83b1b4430c949a3c65fa36f8f9c",
      "old_mode": 33188,
      "old_path": "net/ipv4/esp4.c",
      "new_id": "c31bccb9b526c99d539c1c13a94531f23c982318",
      "new_mode": 33188,
      "new_path": "net/ipv4/esp4.c"
    },
    {
      "type": "modify",
      "old_id": "d3d8d5dfcee3dc593e956042bc198da965f56f17",
      "old_mode": 33188,
      "old_path": "net/ipv4/tcp_ipv4.c",
      "new_id": "eec02b29ffcfb7c71483f8e59816a44c528da02c",
      "new_mode": 33188,
      "new_path": "net/ipv4/tcp_ipv4.c"
    },
    {
      "type": "modify",
      "old_id": "ab17b5e62355f144770d005ede345912f04c186c",
      "old_mode": 33188,
      "old_path": "net/ipv6/esp6.c",
      "new_id": "7db66f10e00d18f80d705fd83459ac5aec43f327",
      "new_mode": 33188,
      "new_path": "net/ipv6/esp6.c"
    },
    {
      "type": "modify",
      "old_id": "f1523b82cac194f603f1b743cdd92ae80d55e3a4",
      "old_mode": 33188,
      "old_path": "net/ipv6/tcp_ipv6.c",
      "new_id": "4b9032880959421be4d8e08780f58efd38cdb726",
      "new_mode": 33188,
      "new_path": "net/ipv6/tcp_ipv6.c"
    },
    {
      "type": "modify",
      "old_id": "eebefb6ef1392fef2c9b47007d141c299ee82b38",
      "old_mode": 33188,
      "old_path": "net/rxrpc/rxkad.c",
      "new_id": "c387cf68a08c6431ef18ff2bd1df36b7b16e2f44",
      "new_mode": 33188,
      "new_path": "net/rxrpc/rxkad.c"
    },
    {
      "type": "modify",
      "old_id": "91cd8f0d1e10772c477d6de98b8268e58e775a51",
      "old_mode": 33188,
      "old_path": "net/sunrpc/auth_gss/gss_krb5_crypto.c",
      "new_id": "ab7cbd6575c45d0c860e599cf27202dee5249c57",
      "new_mode": 33188,
      "new_path": "net/sunrpc/auth_gss/gss_krb5_crypto.c"
    }
  ]
}
