)]}'
{
  "commit": "f29192320f22f1617d50a9c790862603eeef64e6",
  "tree": "c496f893ee5d4e8c9636756483411a6ef46c6721",
  "parents": [
    "015c8dd0cb3b380cb4c3930968250c719d1dd303"
  ],
  "author": {
    "name": "Jeremy Fitzhardinge",
    "email": "jeremy@goop.org",
    "time": "Wed Jan 30 13:32:59 2008 +0100"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Wed Jan 30 13:32:59 2008 +0100"
  },
  "message": "x86/pgtable: explain constant sign extension problem\n\nWhen the _PAGE_FOO constants are defined as (1ul \u003c\u003c _PAGE_BIT_FOO), they\nbecome unsigned longs.  In 32-bit PAE mode, these end up being\nimplicitly cast to 64-bit types when used to manipulate a pte, and\nbecause they\u0027re unsigned the top 32-bits are 0, destroying the upper\nbits of the pte.\n\nWhen _PAGE_FOO constants are given a signed integer type, the cast to\n64-bits will sign-extend so that the upper bits are all ones,\npreserving the upper pte bits in manipulations.\n\nExplain this in a prominent place.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a1eeacdf9d8cfd61273f76bc6cbf45770624d0ee",
      "old_mode": 33188,
      "old_path": "include/asm-x86/pgtable.h",
      "new_id": "75a656e6b3f8ba742b2662d85d627ee77468be6e",
      "new_mode": 33188,
      "new_path": "include/asm-x86/pgtable.h"
    }
  ]
}
