)]}'
{
  "commit": "334a023ee50997b45ffb8fbcc8bc875519040aac",
  "tree": "32b5cf29e932d4bba4a7856bebb1213bbef58923",
  "parents": [
    "f3926e4c2a4b53c25a998de168d4eef6d0360369"
  ],
  "author": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Sun May 21 15:25:46 2017 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Sun May 21 15:25:46 2017 -0700"
  },
  "message": "Clean up x86 unsafe_get/put_user() type handling\n\nAl noticed that unsafe_put_user() had type problems, and fixed them in\ncommit a7cc722fff0b (\"fix unsafe_put_user()\"), which made me look more\nat those functions.\n\nIt turns out that unsafe_get_user() had a type issue too: it limited the\nlargest size of the type it could handle to \"unsigned long\".  Which is\nfine with the current users, but doesn\u0027t match our existing normal\nget_user() semantics, which can also handle \"u64\" even when that does\nnot fit in a long.\n\nWhile at it, also clean up the type cast in unsafe_put_user().  We\nactually want to just make it an assignment to the expected type of the\npointer, because we actually do want warnings from types that don\u0027t\nconvert silently.  And it makes the code more readable by not having\nthat one very long and complex line.\n\n[ This patch might become stable material if we ever end up back-porting\n  any new users of the unsafe uaccess code, but as things stand now this\n  doesn\u0027t matter for any current existing uses. ]\n\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d9668c3beb5b4943de4f9610454890ceaa5b1e39",
      "old_mode": 33188,
      "old_path": "arch/x86/include/asm/uaccess.h",
      "new_id": "fc1eb64fdfffdee1887660f454af2d7b13a7ad8e",
      "new_mode": 33188,
      "new_path": "arch/x86/include/asm/uaccess.h"
    }
  ]
}
