)]}'
{
  "commit": "2b9c1e152e458af561d193bb97d59bab945e9174",
  "tree": "f4fe0e28fe125b08bdb52d71a1099361c1ed6a8a",
  "parents": [
    "975bf17f4a3fc5eb2256a92457e861b210b04796"
  ],
  "author": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Tue Mar 03 15:10:37 2020 -0500"
  },
  "committer": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Tue Mar 03 15:13:30 2020 -0500"
  },
  "message": "iommu: rewrite device assignment\n\nThis was a mess.  The data structures and connections between processes,\npci_devices, and iommus were all a mess.  The pci device assignment\nwasn\u0027t integrated with the iommu, etc.\n\nThe main thing is that processes now have lists of their iommus, which\nwill make things less painful when we do an IOTLB flush.  It\u0027s still\npainful, but not as bad.\n\nAll of the assignment stuff was changed, so now you call the pci\nfunctions, e.g. pci_assign_device(), which will internally deal with the\niommu.\n\nWhen processes are destroyed, we tear down any assigned device.  In my\ncurrent code, all in-kernel device users hold the pdev qlock.  For\nexample, when #cbdma tries to use the IOAT driver, it qlocks the device.\nI think we\u0027d be OK if the device was unassigned out from under the\ndriver, in that the IOMMU would protect us from any wild writes, but the\nkernel driver would likely get wedged.\n\nI have a bunch of changes to #cbdma, but the easiest thing right now is\nto just not build it briefly.\n\nSigned-off-by: Barret Rhoden \u003cbrho@cs.berkeley.edu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4706fdce48be3019e81cf57e70ce70fd4478f253",
      "old_mode": 33188,
      "old_path": "kern/arch/x86/intel-iommu.h",
      "new_id": "5131e03d667eb12e615592da1f76ff88b52c946a",
      "new_mode": 33188,
      "new_path": "kern/arch/x86/intel-iommu.h"
    },
    {
      "type": "modify",
      "old_id": "a3057d36545b4f614170199cf183660f2b61dfb3",
      "old_mode": 33188,
      "old_path": "kern/arch/x86/pci.c",
      "new_id": "7cc797a76de1ed3f28760d41bf392acf02eec431",
      "new_mode": 33188,
      "new_path": "kern/arch/x86/pci.c"
    },
    {
      "type": "modify",
      "old_id": "90406238abde4a1724633e21afd89c5cfe8996a1",
      "old_mode": 33188,
      "old_path": "kern/arch/x86/pci.h",
      "new_id": "60e0d65e7a694399c367d049d5763fddfe80e827",
      "new_mode": 33188,
      "new_path": "kern/arch/x86/pci.h"
    },
    {
      "type": "modify",
      "old_id": "1c8bbdfcf146160929a71cc4b8525a64e01132f0",
      "old_mode": 33188,
      "old_path": "kern/drivers/dev/Kbuild",
      "new_id": "1b129dfc47a7a1c6681ea35acb52f5490b521ab5",
      "new_mode": 33188,
      "new_path": "kern/drivers/dev/Kbuild"
    },
    {
      "type": "modify",
      "old_id": "6fcb5a4ef108ddd60b3a448edd996f87701add95",
      "old_mode": 33188,
      "old_path": "kern/drivers/dev/iommu.c",
      "new_id": "6644387aabc4faccd9efffeebc5f69d4fa06dbca",
      "new_mode": 33188,
      "new_path": "kern/drivers/dev/iommu.c"
    },
    {
      "type": "modify",
      "old_id": "3689106df68d28afb12bd626a77a165d606cdec9",
      "old_mode": 33188,
      "old_path": "kern/include/env.h",
      "new_id": "4ddd46b131c3dba2edd8b172026cc4599bd43794",
      "new_mode": 33188,
      "new_path": "kern/include/env.h"
    },
    {
      "type": "modify",
      "old_id": "28f0b9fabba868471dc4dc28da18ba2302fe484d",
      "old_mode": 33188,
      "old_path": "kern/src/process.c",
      "new_id": "f02f245381bec50adcb12a6a02eb2929355c77b5",
      "new_mode": 33188,
      "new_path": "kern/src/process.c"
    }
  ]
}
