)]}'
{
  "commit": "da32dac101263fb5b155407507c548e3ac2a6a2a",
  "tree": "fdb5fa8e874fdbe59878481b128b026719045523",
  "parents": [
    "bb4093deb259ea9c92415796a6a139e35272f8a8"
  ],
  "author": {
    "name": "Rusty Russell",
    "email": "rusty@rustcorp.com.au",
    "time": "Thu Dec 16 17:03:15 2010 -0600"
  },
  "committer": {
    "name": "Rusty Russell",
    "email": "rusty@rustcorp.com.au",
    "time": "Thu Dec 16 17:03:15 2010 +1030"
  },
  "message": "lguest: populate initial_page_table\n\nTwo x86 patches broke lguest:\n1) v2.6.35-492-g72d7c3b, which changed x86 to use the memblock allocator.\n\nIn lguest, the host places linear page tables at the top of mem, which\nused to be enough to get us up to the swapper_pg_dir page tables.  With\nthe first patch, the direct mapping tables used that memory:\n\nBefore: kernel direct mapping tables up to 4000000 @ 7000-1a000\nAfter: kernel direct mapping tables up to 4000000 @ 3fed000-4000000\n\nI initially fixed this by lying about the amount of memory we had, so\nthe kernel wouldn\u0027t blatt the lguest boot pagetables (yuk!), but then...\n\n2) v2.6.36-rc8-54-gb40827f, which made x86 boot use initial_page_table.\n\nThis was initialized in a part of head_32.S which isn\u0027t executed by\nlguest; it is then copied into swapper_pg_dir.  So we have to initialize\nit; and anyway we switch to it before we blatt the old tables, so that\nfixes the previous damage as well.\n\nFor the moment, I cut \u0026 pasted the code into lguest\u0027s boot code, but\nnext merge window I will merge them.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nTo: x86@kernel.org\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bcece91dd3116a14fa58af5c5216dbce20daa3e5",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/head_32.S",
      "new_id": "f0bea76f6ea591f29f1eedad35fa7d3205f8fa45",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/head_32.S"
    },
    {
      "type": "modify",
      "old_id": "24e49737df7a286d6b5396538395d220591a1064",
      "old_mode": 33188,
      "old_path": "arch/x86/lguest/boot.c",
      "new_id": "4996cf5f73a07db446c2fe3e1c9fe7070662b741",
      "new_mode": 33188,
      "new_path": "arch/x86/lguest/boot.c"
    },
    {
      "type": "modify",
      "old_id": "4f420c2f2d5534ea4ac5af20292e25c4346c3cda",
      "old_mode": 33188,
      "old_path": "arch/x86/lguest/i386_head.S",
      "new_id": "e7d5382ef26344534b0883a11d02b19a82d4a9cd",
      "new_mode": 33188,
      "new_path": "arch/x86/lguest/i386_head.S"
    }
  ]
}
