)]}'
{
  "commit": "7752d5cfe3d11ca0bb9c673ec38bd78ba6578f8e",
  "tree": "280c5accec5ac0d9821ef9d7e3e095f9df87f8c5",
  "parents": [
    "c3bf9bc243092c53946fd6d8ebd6dc2f4e572d48"
  ],
  "author": {
    "name": "Robert Hancock",
    "email": "hancockr@shaw.ca",
    "time": "Fri Feb 15 01:27:20 2008 -0800"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Sat Apr 26 23:41:03 2008 +0200"
  },
  "message": "x86: validate against acpi motherboard resources\n\nThis path adds validation of the MMCONFIG table against the ACPI reserved\nmotherboard resources.  If the MMCONFIG table is found to be reserved in\nACPI, we don\u0027t bother checking the E820 table.  The PCI Express firmware\nspec apparently tells BIOS developers that reservation in ACPI is required\nand E820 reservation is optional, so checking against ACPI first makes\nsense.  Many BIOSes don\u0027t reserve the MMCONFIG region in E820 even though\nit is perfectly functional, the existing check needlessly disables MMCONFIG\nin these cases.\n\nIn order to do this, MMCONFIG setup has been split into two phases.  If PCI\nconfiguration type 1 is not available then MMCONFIG is enabled early as\nbefore.  Otherwise, it is enabled later after the ACPI interpreter is\nenabled, since we need to be able to execute control methods in order to\ncheck the ACPI reserved resources.  Presently this is just triggered off\nthe end of ACPI interpreter initialization.\n\nThere are a few other behavioral changes here:\n\n- Validate all MMCONFIG configurations provided, not just the first one.\n\n- Validate the entire required length of each configuration according to\n  the provided ending bus number is reserved, not just the minimum required\n  allocation.\n\n- Validate that the area is reserved even if we read it from the chipset\n  directly and not from the MCFG table.  This catches the case where the\n  BIOS didn\u0027t set the location properly in the chipset and has mapped it\n  over other things it shouldn\u0027t have.\n\nThis also cleans up the MMCONFIG initialization functions so that they\nsimply do nothing if MMCONFIG is not compiled in.\n\nBased on an original patch by Rajesh Shah from Intel.\n\n[akpm@linux-foundation.org: many fixes and cleanups]\nSigned-off-by: Robert Hancock \u003chancockr@shaw.ca\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Rajesh Shah \u003crajesh.shah@intel.com\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3de9f9ba2da6aed8be73921f3f416ed8af444a49",
      "old_mode": 33188,
      "old_path": "arch/x86/pci/init.c",
      "new_id": "2080b04b3bcc18791ebacc78e39ff5bb165180ad",
      "new_mode": 33188,
      "new_path": "arch/x86/pci/init.c"
    },
    {
      "type": "modify",
      "old_id": "8d54df4dfaad551518bcbf77cbe0be20d0f36562",
      "old_mode": 33188,
      "old_path": "arch/x86/pci/mmconfig-shared.c",
      "new_id": "498e35ee428e07bff625ad250d02d4dacabd5309",
      "new_mode": 33188,
      "new_path": "arch/x86/pci/mmconfig-shared.c"
    },
    {
      "type": "modify",
      "old_id": "c4bddaeff6194400539bad30890c528c20e9bf3f",
      "old_mode": 33188,
      "old_path": "arch/x86/pci/pci.h",
      "new_id": "28b9b72ce7c7fd868bad184a66462594e822f616",
      "new_mode": 33188,
      "new_path": "arch/x86/pci/pci.h"
    },
    {
      "type": "modify",
      "old_id": "2d1955c118337fae68004ccaf3f7d3f3238b9cba",
      "old_mode": 33188,
      "old_path": "drivers/acpi/bus.c",
      "new_id": "a6dbcf4d9ef57dcdfa93ecc045e51fd60a4b20d1",
      "new_mode": 33188,
      "new_path": "drivers/acpi/bus.c"
    },
    {
      "type": "modify",
      "old_id": "292491324b010f1184b48241bbc066f9377c8800",
      "old_mode": 33188,
      "old_path": "include/linux/pci.h",
      "new_id": "43a4f9cae67d354295cf7634aff9cbd012274f5b",
      "new_mode": 33188,
      "new_path": "include/linux/pci.h"
    }
  ]
}
