)]}'
{
  "commit": "ae21ee65e8bc228416bbcc8a1da01c56a847a60c",
  "tree": "cbcd109c764a8fed06f18a0a4bd3d63208405552",
  "parents": [
    "1ccbf5344c3daef046d2323190cc6807c44f1917"
  ],
  "author": {
    "name": "Allen Kay",
    "email": "allen.m.kay@intel.com",
    "time": "Wed Oct 07 10:27:17 2009 -0700"
  },
  "committer": {
    "name": "Jesse Barnes",
    "email": "jbarnes@virtuousgeek.org",
    "time": "Wed Nov 04 08:47:25 2009 -0800"
  },
  "message": "PCI: acs p2p upsteram forwarding enabling\n\nNote: dom0 checking in v4 has been separated out into 2/2.\n\nThis patch enables P2P upstream forwarding in ACS capable PCIe switches.\nIt solves two potential problems in virtualization environment where a PCIe\ndevice is assigned to a guest domain using a HW iommu such as VT-d:\n\n1) Unintentional failure caused by guest physical address programmed\n   into the device\u0027s DMA that happens to match the memory address range\n   of other downstream ports in the same PCIe switch.  This causes the PCI\n   transaction to go to the matching downstream port instead of go to the\n   root complex to get translated by VT-d as it should be.\n\n2) Malicious guest software intentionally attacks another downstream\n   PCIe device by programming the DMA address into the assigned device\n   that matches memory address range of the downstream PCIe port.\n\nWe are in process of implementing device filtering software in KVM/XEN\nmanagement software to allow device assignment of PCIe devices behind a PCIe\nswitch only if it has ACS capability and with the P2P upstream forwarding bits\nenabled.  This patch is intended to work for both KVM and Xen environments.\n\nSigned-off-by: Allen Kay \u003callen.m.kay@intel.com\u003e\nReviewed-by: Mathew Wilcox \u003cwilly@linux.intel.com\u003e\nReviewed-by: Chris Wright \u003cchris@sous-sol.org\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4859669f0ab51e6d4cd7c368fcd31bd66efc8008",
      "old_mode": 33188,
      "old_path": "drivers/pci/pci.c",
      "new_id": "55721822282614982103e168e2b642818e9f0958",
      "new_mode": 33188,
      "new_path": "drivers/pci/pci.c"
    },
    {
      "type": "modify",
      "old_id": "d92d1954a2fb17ea0415772531ee27563ec02da3",
      "old_mode": 33188,
      "old_path": "drivers/pci/pci.h",
      "new_id": "33ed8e0aba1ea25b54c928691e1a03c78b1391f8",
      "new_mode": 33188,
      "new_path": "drivers/pci/pci.h"
    },
    {
      "type": "modify",
      "old_id": "2adb47574d860399eba7efcd9db7f83d09d190cd",
      "old_mode": 33188,
      "old_path": "drivers/pci/probe.c",
      "new_id": "aac5b156a5c5eeba621819f375b9a032dde1cfbb",
      "new_mode": 33188,
      "new_path": "drivers/pci/probe.c"
    },
    {
      "type": "modify",
      "old_id": "dd0bed4f1cf00ffd00f5b2eace8103a25d606432",
      "old_mode": 33188,
      "old_path": "include/linux/pci_regs.h",
      "new_id": "d798770f08cd6b5bfce71091131a7ffae9f02d03",
      "new_mode": 33188,
      "new_path": "include/linux/pci_regs.h"
    }
  ]
}
