)]}'
{
  "commit": "ce6234b5298902aaec831a67d5f8d9bd2ef5a488",
  "tree": "939c22684e11a4f5f17abb89c4898f016e878e21",
  "parents": [
    "a27fe809b82c5e18932fcceded28d0d1481ce7bb"
  ],
  "author": {
    "name": "Jeremy Fitzhardinge",
    "email": "jeremy@goop.org",
    "time": "Wed May 02 19:27:15 2007 +0200"
  },
  "committer": {
    "name": "Andi Kleen",
    "email": "andi@basil.nowhere.org",
    "time": "Wed May 02 19:27:15 2007 +0200"
  },
  "message": "[PATCH] i386: PARAVIRT: add kmap_atomic_pte for mapping highpte pages\n\nXen and VMI both have special requirements when mapping a highmem pte\npage into the kernel address space.  These can be dealt with by adding\na new kmap_atomic_pte() function for mapping highptes, and hooking it\ninto the paravirt_ops infrastructure.\n\nXen specifically wants to map the pte page RO, so this patch exposes a\nhelper function, kmap_atomic_prot, which maps the page with the\nspecified page protections.\n\nThis also adds a kmap_flush_unused() function to clear out the cached\nkmap mappings.  Xen needs this to clear out any potential stray RW\nmappings of pages which will become part of a pagetable.\n\n[ Zach - vmi.c will need some attention after this patch.  It wasn\u0027t\n  immediately obvious to me what needs to be done. ]\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "13f41b5c887a746e48488518febe3985fce4792a",
      "old_mode": 33188,
      "old_path": "arch/i386/kernel/paravirt.c",
      "new_id": "596f382c641ce0f5cb59f9e5182019a36b35c505",
      "new_mode": 33188,
      "new_path": "arch/i386/kernel/paravirt.c"
    },
    {
      "type": "modify",
      "old_id": "ac70d09df7ee537fc192d4119eb33bc28c0265a2",
      "old_mode": 33188,
      "old_path": "arch/i386/mm/highmem.c",
      "new_id": "a1a21abf742ebc9b4926ab4bf334da2d59cf37c9",
      "new_mode": 33188,
      "new_path": "arch/i386/mm/highmem.c"
    },
    {
      "type": "modify",
      "old_id": "e9a34ebc25d58f5b63391274159dca5683b80c19",
      "old_mode": 33188,
      "old_path": "include/asm-i386/highmem.h",
      "new_id": "13cdcd66fff213dd6515ee0eb1eda411eb71eb73",
      "new_mode": 33188,
      "new_path": "include/asm-i386/highmem.h"
    },
    {
      "type": "modify",
      "old_id": "10f44af76b49ecd011027e372e4e84814e28c26b",
      "old_mode": 33188,
      "old_path": "include/asm-i386/paravirt.h",
      "new_id": "5048b41428fa5524107d8cdf4fa3434ba6f0cb30",
      "new_mode": 33188,
      "new_path": "include/asm-i386/paravirt.h"
    },
    {
      "type": "modify",
      "old_id": "6599f2aa91b75315ff30595ec47d94d7eb9c0353",
      "old_mode": 33188,
      "old_path": "include/asm-i386/pgtable.h",
      "new_id": "befc697821e59f9490db1e1369651aab53f90d57",
      "new_mode": 33188,
      "new_path": "include/asm-i386/pgtable.h"
    },
    {
      "type": "modify",
      "old_id": "645d440807c229c0e5deba21f3ed3260f0416007",
      "old_mode": 33188,
      "old_path": "include/linux/highmem.h",
      "new_id": "bca8e2dfa3559352af7f38dd442dd090bf533ec3",
      "new_mode": 33188,
      "new_path": "include/linux/highmem.h"
    },
    {
      "type": "modify",
      "old_id": "51e1c1995fec1d87a1e8e80d4518008d4ec4f4f1",
      "old_mode": 33188,
      "old_path": "mm/highmem.c",
      "new_id": "be8f8d36a8b9b6919f4d1c36e1b3b3e973b242f1",
      "new_mode": 33188,
      "new_path": "mm/highmem.c"
    }
  ]
}
