)]}'
{
  "commit": "6dd9a7c73761a8a5f5475d5cfdc15368a0f4c06d",
  "tree": "cb685e370cc1cb2dec39b29500bdd22fd1814596",
  "parents": [
    "7b668357810ecb5fdda4418689d50f5d95aea6a8"
  ],
  "author": {
    "name": "Youquan Song",
    "email": "youquan.song@intel.com",
    "time": "Wed May 25 19:13:49 2011 +0100"
  },
  "committer": {
    "name": "David Woodhouse",
    "email": "David.Woodhouse@intel.com",
    "time": "Wed Jun 01 12:26:35 2011 +0100"
  },
  "message": "intel-iommu: Enable super page (2MiB, 1GiB, etc.) support\n\nThere are no externally-visible changes with this. In the loop in the\ninternal __domain_mapping() function, we simply detect if we are mapping:\n  - size \u003e\u003d 2MiB, and\n  - virtual address aligned to 2MiB, and\n  - physical address aligned to 2MiB, and\n  - on hardware that supports superpages.\n\n(and likewise for larger superpages).\n\nWe automatically use a superpage for such mappings. We never have to\nworry about *breaking* superpages, since we trust that we will always\n*unmap* the same range that was mapped. So all we need to do is ensure\nthat dma_pte_clear_range() will also cope with superpages.\n\nAdjust pfn_to_dma_pte() to take a superpage \u0027level\u0027 as an argument, so\nit can return a PTE at the appropriate level rather than always\nextending the page tables all the way down to level 1. Again, this is\nsimplified by the fact that we should never encounter existing small\npages when we\u0027re creating a mapping; any old mapping that used the same\nvirtual range will have been entirely removed and its obsolete page\ntables freed.\n\nProvide an \u0027intel_iommu\u003dsp_off\u0027 argument on the command line as a\nchicken bit. Not that it should ever be required.\n\n\u003d\u003d\n\nThe original commit seen in the iommu-2.6.git was Youquan\u0027s\nimplementation (and completion) of my own half-baked code which I\u0027d\ntyped into an email. Followed by half a dozen subsequent \u0027fixes\u0027.\n\nI\u0027ve taken the unusual step of rewriting history and collapsing the\noriginal commits in order to keep the main history simpler, and make\nlife easier for the people who are going to have to backport this to\nolder kernels. And also so I can give it a more coherent commit comment\nwhich (hopefully) gives a better explanation of what\u0027s going on.\n\nThe original sequence of commits leading to identical code was:\n\nYouquan Song (3):\n      intel-iommu: super page support\n      intel-iommu: Fix superpage alignment calculation error\n      intel-iommu: Fix superpage level calculation error in dma_pfn_level_pte()\n\nDavid Woodhouse (4):\n      intel-iommu: Precalculate superpage support for dmar_domain\n      intel-iommu: Fix hardware_largepage_caps()\n      intel-iommu: Fix inappropriate use of superpages in __domain_mapping()\n      intel-iommu: Fix phys_pfn in __domain_mapping for sglist pages\n\nSigned-off-by: Youquan Song \u003cyouquan.song@intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cc85a927819070bef71e5802204b0f07cfb76973",
      "old_mode": 33188,
      "old_path": "Documentation/kernel-parameters.txt",
      "new_id": "d005487c1a22ca571aff8852fb0d042a29e058e9",
      "new_mode": 33188,
      "new_path": "Documentation/kernel-parameters.txt"
    },
    {
      "type": "modify",
      "old_id": "395f253c0494b641652b0e126adb798ebee0e6df",
      "old_mode": 33188,
      "old_path": "drivers/pci/intel-iommu.c",
      "new_id": "e6fe1994f9d348d6c78688f6c2ec9d9cfbf32468",
      "new_mode": 33188,
      "new_path": "drivers/pci/intel-iommu.c"
    },
    {
      "type": "modify",
      "old_id": "5619f8522738b44f3318392da050e7ef9f246020",
      "old_mode": 33188,
      "old_path": "include/linux/dma_remapping.h",
      "new_id": "bbd8661b34736f80e392f05d8b0fcdeff5fdf067",
      "new_mode": 33188,
      "new_path": "include/linux/dma_remapping.h"
    }
  ]
}
