)]}'
{
  "log": [
    {
      "commit": "31f4b46ec6f889533c06537dea96bb0d20fa625b",
      "tree": "2d0f8e0fd534d5c6968fb722075f0f3733ff0ca3",
      "parents": [
        "261f0ce5ccdd17dc240d8453ca5ffc4688b92700"
      ],
      "author": {
        "name": "Ahmed S. Darwish",
        "email": "darwish.07@gmail.com",
        "time": "Sat Feb 09 23:24:09 2008 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 09 23:24:09 2008 +0100"
      },
      "message": "lguest: accept guest _PAGE_PWT page table entries\n\nBeginning from commit 4138cc3418f5, ioremap_nocache() sets the _PAGE_PWT\nflag.\n\nLguest doesn\u0027t accept a guest pte with a _PWT flag and reports a \"bad\npage table entry\" in that case.\n\nAccept guest _PAGE_PWT page table entries.\n\nSigned-off-by: Ahmed S. Darwish \u003cdarwish.07@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "25478445c4a39318acbe08ba8df7945766cbb5b5",
      "tree": "de8a3dec84bb554daf0b53a06bf3b1107e7e8ff6",
      "parents": [
        "50e8a2890ed0eeb7a11ae0c39144fcdd1cad1cf8"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Fri Feb 08 04:20:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:32 2008 -0800"
      },
      "message": "Fix container_of() usage\n\nUsing \"attr\" twice is not OK, because it effectively prohibits such\ncontainer_of() on variables not named \"attr\".\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e5aa7efb27aec7e55b6463fa2c8db594c4226fa",
      "tree": "060a955e711ac224136157a5410e88dcdab965af",
      "parents": [
        "b3369c1fb410fddeb38a404316c861395f6d6ae8"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Feb 04 23:50:03 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Feb 04 23:50:03 2008 +1100"
      },
      "message": "virtio: reset function\n\nA reset function solves three problems:\n\n1) It allows us to renegotiate features, eg. if we want to upgrade a\n   guest driver without rebooting the guest.\n\n2) It gives us a clean way of shutting down virtqueues: after a reset,\n   we know that the buffers won\u0027t be used by the host, and\n\n3) It helps the guest recover from messed-up drivers.\n\nSo we remove the -\u003eshutdown hook, and the only way we now remove\nfeature bits is via reset.\n\nWe leave it to the driver to do the reset before it deletes queues:\nthe balloon driver, for example, needs to chat to the host in its\nremove function.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "18445c4d501b9ab4336f66ef46b092661ddaf336",
      "tree": "9d23185f207d912942890cf047d1d3200806b401",
      "parents": [
        "a586d4f6016f7139d8c26df0e6927131168d3b5b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Feb 04 23:49:57 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Feb 04 23:49:58 2008 +1100"
      },
      "message": "virtio: explicit enable_cb/disable_cb rather than callback return.\n\nIt seems that virtio_net wants to disable callbacks (interrupts) before\ncalling netif_rx_schedule(), so we can\u0027t use the return value to do so.\n\nRename \"restart\" to \"cb_enable\" and introduce \"cb_disable\" hook: callback\nnow returns void, rather than a boolean.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "a586d4f6016f7139d8c26df0e6927131168d3b5b",
      "tree": "1c47e1a6b6b8fb18baa42f32980f29c4ae9cbbdc",
      "parents": [
        "f35d9d8aae08940b7fdd1bb8110619da2ece6b28"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Feb 04 23:49:56 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Feb 04 23:49:57 2008 +1100"
      },
      "message": "virtio: simplify config mechanism.\n\nPreviously we used a type/len pair within the config space, but this\nseems overkill.  We now simply define a structure which represents the\nlayout in the config space: the config space can now only be extended\nat the end.\n\nThe main driver-visible changes:\n1) We indicate what fields are present with an explicit feature bit.\n2) Virtqueues are explicitly numbered, and not in the config space.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e95035c61a4c3dae1aa543a5bf5b39846daca061",
      "tree": "f0977e07936253923239ff1f251192607cc873ab",
      "parents": [
        "24af8cb86973dde9bf8df51bef923fda8718bdb5"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 31 18:00:47 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 31 19:59:44 2008 +1100"
      },
      "message": "lguest: fix mis-merge against hpa\u0027s TSS renaming\n\ndrivers/lguest/x86/core.c: In function ‘copy_in_guest_info’:\ndrivers/lguest/x86/core.c:97: error: ‘struct x86_hw_tss’ has no member named ‘esp1’\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d145c7253c8cb2ed8a75a8839621b0bb8f778820",
      "tree": "fac21920d149a2cddfdfbde65066ff98935a9c57",
      "parents": [
        "44c3b59102e3ecc7a01e9811862633e670595e51",
        "84f12e39c856a8b1ab407f8216ecebaf4204b94d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 31 09:35:32 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 31 09:35:32 2008 +1100"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus: (27 commits)\n  lguest: use __PAGE_KERNEL instead of _PAGE_KERNEL\n  lguest: Use explicit includes rateher than indirect\n  lguest: get rid of lg variable assignments\n  lguest: change gpte_addr header\n  lguest: move changed bitmap to lg_cpu\n  lguest: move last_pages to lg_cpu\n  lguest: change last_guest to last_cpu\n  lguest: change spte_addr header\n  lguest: per-vcpu lguest pgdir management\n  lguest: make pending notifications per-vcpu\n  lguest: makes special fields be per-vcpu\n  lguest: per-vcpu lguest task management\n  lguest: replace lguest_arch with lg_cpu_arch.\n  lguest: make registers per-vcpu\n  lguest: make emulate_insn receive a vcpu struct.\n  lguest: map_switcher_in_guest() per-vcpu\n  lguest: per-vcpu interrupt processing.\n  lguest: per-vcpu lguest timers\n  lguest: make hypercalls use the vcpu struct\n  lguest: make write() operation smp aware\n  ...\n\nManual conflict resolved (maybe even correctly, who knows) in\ndrivers/lguest/x86/core.c\n"
    },
    {
      "commit": "faca62273b602ab482fb7d3d940dbf41ef08b00e",
      "tree": "913fb1c565a2b719b00ae4b745c38cc9b0ebf279",
      "parents": [
        "25149b62d3e6a3e737af39bd4a0b4e97de0811b7"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Jan 30 13:31:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:02 2008 +0100"
      },
      "message": "x86: use generic register name in the thread and tss structures\n\nThis changes size-specific register names (eip/rip, esp/rsp, etc.) to\ngeneric names in the thread and tss structures.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "84f12e39c856a8b1ab407f8216ecebaf4204b94d",
      "tree": "908c7dd63fb65eda3ff660913e9bc28438871e16",
      "parents": [
        "ca94f2bdd1be626361fcfbd474d6b8823ed39f74"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Fri Jan 18 23:59:08 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:19 2008 +1100"
      },
      "message": "lguest: use __PAGE_KERNEL instead of _PAGE_KERNEL\n\nx86_64 don\u0027t expose the intermediate representation with one underline,\n_PAGE_KERNEL, just the double-underlined one.\n\nUse it, to get a common ground between 32 and 64-bit\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ca94f2bdd1be626361fcfbd474d6b8823ed39f74",
      "tree": "9b7f82ce7c2c20a45e1bfb611153d05ac7af2baf",
      "parents": [
        "382ac6b3fbc0ea6a5697fc6caaf7e7de12fa8b96"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Fri Jan 18 23:59:07 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:19 2008 +1100"
      },
      "message": "lguest: Use explicit includes rateher than indirect\n\nexplicitly use ktime.h include\nexplicitly use hrtimer.h include\nexplicitly use sched.h include\n\nThis patch adds headers explicitly to lguest sources file,\nto avoid depending on them being included somewhere else.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "382ac6b3fbc0ea6a5697fc6caaf7e7de12fa8b96",
      "tree": "bdda012251f29775b2e1201f3b2b3e38c4680f42",
      "parents": [
        "934faab464c6a26ed1a226b6cf7111b35405dde1"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Thu Jan 17 19:19:42 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:18 2008 +1100"
      },
      "message": "lguest: get rid of lg variable assignments\n\nWe can save some lines of code by getting rid of\n*lg \u003d cpu... lines of code spread everywhere by now.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "934faab464c6a26ed1a226b6cf7111b35405dde1",
      "tree": "ca920090f0fba7d99865ea865c6746882400dbc4",
      "parents": [
        "ae3749dcd8c31dcfbab14ea28c68a944c93f418f"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Thu Jan 17 19:18:08 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:18 2008 +1100"
      },
      "message": "lguest: change gpte_addr header\n\ngpte_addr() does not depend on any guest information. So we wipe out\nthe lg parameter from it completely.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ae3749dcd8c31dcfbab14ea28c68a944c93f418f",
      "tree": "bdbbe9207bb7c50e9aeb7afc5b5653b79501c03f",
      "parents": [
        "f34f8c5fea079065671163c37d98328cff31980b"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Thu Jan 17 19:14:46 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:17 2008 +1100"
      },
      "message": "lguest: move changed bitmap to lg_cpu\n\nevents represented in the \u0027changed\u0027 bitmap are per-cpu, not per-guest.\nmove it to the lg_cpu structure\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "f34f8c5fea079065671163c37d98328cff31980b",
      "tree": "73a97cb67c1450b21587cbadde7a7dad6c58d46d",
      "parents": [
        "c40a9f4719d36841a2d7ff4fe866dce7bfb454b7"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Thu Jan 17 19:13:26 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:16 2008 +1100"
      },
      "message": "lguest: move last_pages to lg_cpu\n\nin our new model, pages are assigned to a virtual cpu, not to a guest.\nWe move it to the lg_cpu structure.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "c40a9f4719d36841a2d7ff4fe866dce7bfb454b7",
      "tree": "01f6041dd2ef5add1a673e528abc45c2b4570141",
      "parents": [
        "2092aa277b0adfb8f4f47ab8a9ee00aff0ca7ed6"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Thu Jan 17 19:11:20 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:15 2008 +1100"
      },
      "message": "lguest: change last_guest to last_cpu\n\nin our model, a guest does not run in a cpu anymore: a virtual cpu\ndoes. So we change last_guest to last_cpu\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "2092aa277b0adfb8f4f47ab8a9ee00aff0ca7ed6",
      "tree": "c72afde81f7cfba5ed9579d86875614a2646a834",
      "parents": [
        "1713608f280002d9ffc6de89d7de5cf367072d63"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Thu Jan 17 19:09:49 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:15 2008 +1100"
      },
      "message": "lguest: change spte_addr header\n\nspte_addr does not depend on any guest information, so we\nwipe out the lg parameter completely.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "1713608f280002d9ffc6de89d7de5cf367072d63",
      "tree": "332e7bdbe7ccccad408b309a4dd00b706b04082f",
      "parents": [
        "5e232f4f428c4266ba5cdae9f23ba19a0913dcf9"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:37 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:14 2008 +1100"
      },
      "message": "lguest: per-vcpu lguest pgdir management\n\nthis patch makes the pgdir management per-vcpu. The pgdirs pool\nis still guest-wide (although it\u0027ll probably need to grow when we\nare really executing more vcpus), but the pgdidx index is gone,\nsince it makes no sense anymore. Instead, we use a per-vcpu\nindex.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "5e232f4f428c4266ba5cdae9f23ba19a0913dcf9",
      "tree": "591e21cb88959373e495eac7eb8ee2c2865771ae",
      "parents": [
        "4665ac8e28c30c2a015c617c55783c0bf3a49c05"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:36 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:13 2008 +1100"
      },
      "message": "lguest: make pending notifications per-vcpu\n\nthis patch makes the pending_notify field, used to control\npending notifications, per-vcpu, instead of per-guest\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "4665ac8e28c30c2a015c617c55783c0bf3a49c05",
      "tree": "15992d7e693126be7f758e694c8a544306576dfd",
      "parents": [
        "66686c2ab08feb721ca4d98285fba64acdf6017f"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:35 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:13 2008 +1100"
      },
      "message": "lguest: makes special fields be per-vcpu\n\nlguest struct have room for some fields, namely, cr2, ts, esp1\nand ss1, that are not really guest-wide, but rather, vcpu-wide.\n\nThis patch puts it in the vcpu struct\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "66686c2ab08feb721ca4d98285fba64acdf6017f",
      "tree": "bae76c0e0dc78809abc83b8f0dc9f84dca702de0",
      "parents": [
        "fc708b3e407dfd2e12ba9a6cf35bd0bffad1796d"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:34 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:12 2008 +1100"
      },
      "message": "lguest: per-vcpu lguest task management\n\nlguest uses tasks to control its running behaviour (like sending\nbreaks, controlling halted state, etc). In a per-vcpu environment,\neach vcpu will have its own underlying task. So this patch\nmakes the infrastructure for that possible\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "fc708b3e407dfd2e12ba9a6cf35bd0bffad1796d",
      "tree": "e9a6df9c9b8cf4077c98198c3f5d3bc6dc991c0f",
      "parents": [
        "a53a35a8b485b9c16b73e5177bddaa4321971199"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:33 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:11 2008 +1100"
      },
      "message": "lguest: replace lguest_arch with lg_cpu_arch.\n\nThe fields found in lguest_arch are not really per-guest,\nbut per-cpu (gdt, idt, etc). So this patch turns lguest_arch\ninto lg_cpu_arch.\n\nIt makes sense to have a per-guest per-arch struct, but this\ncan be addressed later, when the need arrives.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "a53a35a8b485b9c16b73e5177bddaa4321971199",
      "tree": "8ed96838cb47d1263f63aba6dd6921b3c811f46c",
      "parents": [
        "a3863f68b0d7fe2073c0f4efe534ec87a685c4fa"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:32 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:11 2008 +1100"
      },
      "message": "lguest: make registers per-vcpu\n\nThis is the most obvious per-vcpu field: registers.\n\nSo this patch moves it from struct lguest to struct vcpu,\nand patch the places in which they are used, accordingly\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "a3863f68b0d7fe2073c0f4efe534ec87a685c4fa",
      "tree": "e9fa7b67b7687f3f882e44654bd758671f7accb5",
      "parents": [
        "0c78441cf4dd66f66e23dc085f0cc1e3e8669b96"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:31 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:10 2008 +1100"
      },
      "message": "lguest: make emulate_insn receive a vcpu struct.\n\nemulate_insn() needs to know about current eip, which will be,\nin the future, a per-vcpu thing. So in this patch, the function\nprototype is modified to receive a vcpu struct\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "0c78441cf4dd66f66e23dc085f0cc1e3e8669b96",
      "tree": "33216420c6300df9a345247dc6e0b669ce5b2198",
      "parents": [
        "177e449dc5bd4cf8dc48d66abee61ddf34b126b9"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:30 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:09 2008 +1100"
      },
      "message": "lguest: map_switcher_in_guest() per-vcpu\n\nThe switcher needs to be mapped per-vcpu, because different vcpus\nwill potentially have different page tables (they don\u0027t have to,\nbecause threads will share the same).\n\nSo our first step is the make the function receive a vcpu struct\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "177e449dc5bd4cf8dc48d66abee61ddf34b126b9",
      "tree": "f0aaea9407971d8f6b9ad4e177a834f1be3aa993",
      "parents": [
        "ad8d8f3bc61ec712dd141e1029ae68c47fadc4a7"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:29 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:09 2008 +1100"
      },
      "message": "lguest: per-vcpu interrupt processing.\n\nThis patch adapts interrupt processing for using the vcpu struct.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ad8d8f3bc61ec712dd141e1029ae68c47fadc4a7",
      "tree": "70bd69e85ef7f159a62f4cd8aa2799d8d542b92c",
      "parents": [
        "73044f05a4ac65f2df42753e9566444b9d2a660f"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:28 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:08 2008 +1100"
      },
      "message": "lguest: per-vcpu lguest timers\n\nHere, I introduce per-vcpu timers. With this, we can have\nlocal expiries, needed for accounting time in smp guests\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "73044f05a4ac65f2df42753e9566444b9d2a660f",
      "tree": "80a3e1d1bda31a769554a8c51f8c189ccec0b9f8",
      "parents": [
        "7ea07a1500f05e06ebf0136763c781244f77a2a1"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:27 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:08 2008 +1100"
      },
      "message": "lguest: make hypercalls use the vcpu struct\n\nthis patch changes do_hcall() and do_async_hcall() interfaces (and obviously their\ncallers) to get a vcpu struct. Again, a vcpu services the hypercall, not the whole\nguest\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "7ea07a1500f05e06ebf0136763c781244f77a2a1",
      "tree": "3b0e4f64c87c4d668a49d6f979ed4d5ac0137a4f",
      "parents": [
        "d0953d42c3445a120299fac9ad70e672d77898e9"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:26 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:07 2008 +1100"
      },
      "message": "lguest: make write() operation smp aware\n\nThis patch makes the write() file operation smp aware. Which means, receiving\nthe vcpu_id value through the offset parameter, and being well aware to which\nvcpu we\u0027re talking to.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d0953d42c3445a120299fac9ad70e672d77898e9",
      "tree": "a631abb2c154bec66cec05508423da705d02f35b",
      "parents": [
        "4dcc53da49c2387078fe8ceb7a420d125e027fc6"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:25 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:06 2008 +1100"
      },
      "message": "lguest: per-cpu run guest\n\nThis patch makes the run_guest() routine use the lg_cpu struct.\nThis is required since in a smp guest environment, there\u0027s no\nmore the notion of \"running the guest\", but rather, it is \"running the vcpu\"\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "4dcc53da49c2387078fe8ceb7a420d125e027fc6",
      "tree": "e7c7a270c5e63962c51da0d07f3be9930e7dc3ac",
      "parents": [
        "e3283fa0cc5c4f9bde52339a40da89297e51b481"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:24 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:06 2008 +1100"
      },
      "message": "lguest: initialize vcpu\n\nthis patch initializes the first vcpu in the initialize() routing,\nwhich is responsible for starting the process of putting the guest up.\nright now, as much of the fields are still not per-vcpu, it does not\ndo much.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "badb1e04028e3e029ff9447d4aeb162a84ad68c2",
      "tree": "2de5cc5f3649537fff030e8d2a864ee69d003aee",
      "parents": [
        "ec04b13f67be3c90b38c625f4b8bdfea54c1ff60"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Jan 07 11:05:22 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:04 2008 +1100"
      },
      "message": "lguest: introduce vcpu struct\n\nthis patch introduces a vcpu struct for lguest. In upcoming patches,\nmore and more fields will be moved from the lguest struct to the vcpu\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ec04b13f67be3c90b38c625f4b8bdfea54c1ff60",
      "tree": "7819de21361fdd65487ef75ea9f2b774e4203f83",
      "parents": [
        "5c55841d16dbf7c759fa6fb2ecc5e615b86d17db"
      ],
      "author": {
        "name": "Balaji Rao",
        "email": "balajirrao@gmail.com",
        "time": "Fri Dec 28 14:26:24 2007 +0530"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:04 2008 +1100"
      },
      "message": "lguest: Reboot support\n\nReboot Implemented\n\n(Prevent fd leak, fix style and fix documentation --RR)\n\nSigned-off-by: Balaji Rao \u003cbalajirrao@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "5c55841d16dbf7c759fa6fb2ecc5e615b86d17db",
      "tree": "1ec79bd32aa238448f2a0aa24661cb83ce4cec54",
      "parents": [
        "7ea08093e0ccbad030188ded3cb082d8b8094d35"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Thu Jan 17 22:32:50 2008 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jan 30 22:50:03 2008 +1100"
      },
      "message": "lguest: remove pv_info dependency\n\nCurrently, lguest module can\u0027t be compiled without the PARAVIRT flag being\non. This is a fake dependency, since the module itself shouldn\u0027t need any\nparavirt override. Reason for that is the reference to pv_info structure\nin initial loading tests.\n\nThis patch removes it in favour of a more generic error message.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "86ef5c9a8edd78e6bf92879f32329d89b2d55b5a",
      "tree": "7bf46885326a6fdbb0c3596855408e9a5634dd3a",
      "parents": [
        "d221938c049f4845da13c8593132595a6b9222a8"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "message": "cpu-hotplug: replace lock_cpu_hotplug() with get_online_cpus()\n\nReplace all lock_cpu_hotplug/unlock_cpu_hotplug from the kernel and use\nget_online_cpus and put_online_cpus instead as it highlights the\nrefcount semantics in these operations.\n\nThe new API guarantees protection against the cpu-hotplug operation, but\nit doesn\u0027t guarantee serialized access to any of the local data\nstructures. Hence the changes needs to be reviewed.\n\nIn case of pseries_add_processor/pseries_remove_processor, use\ncpu_maps_update_begin()/cpu_maps_update_done() as we\u0027re modifying the\ncpu_present_map there.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a7da60f41551abb3c520b03d42ec05dd7decfc7f",
      "tree": "3b6dcb67e4c91e329448b45a7db9dae177a78b42",
      "parents": [
        "488288d9f25fbab903bd264bc74f2fad3a7f7a09"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sun Jan 20 11:54:18 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jan 19 21:29:39 2008 -0800"
      },
      "message": "Remove bogus duplicate CONFIG_LGUEST_GUEST entry.\n\nIt was moved to arch/x86/lguest/Kconfig, but I lost the deletion part in a\npatch suffle.  My confused one-liner \"fix\" to turn it on is also reverted:\n84f7466ee20cc094aa38617abfa2f3834871f054\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "84f7466ee20cc094aa38617abfa2f3834871f054",
      "tree": "af2fe79591db7f27db738f9ae491b5bebc0c3811",
      "parents": [
        "03bbe082cffc4533f6557bf23f0c672307067246"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jan 19 07:02:29 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jan 18 14:05:48 2008 -0800"
      },
      "message": "Selecting LGUEST should turn on Guest support, as in 2.6.23.\n\nThere\u0027s currently no way to turn on Lguest guest support; the planned\nKconfig virtualization reorg didn\u0027t get into 2.6.25.\n\nThis was unnoticed because if you already had CONFIG_LGUEST_GUEST\u003dy in\nyour config, it worked.  Too bad about new users...\n\nAlso, the Kconfig help was wrong now the virtio drivers are merged.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74b2553f1d13e60fb27063204bd5b6908a6f8494",
      "tree": "cd35e82d16cf190ccd95362478a598314de639ce",
      "parents": [
        "d1c856e0f1a4c946c6329cff126548ef4288735f"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Nov 19 11:20:42 2007 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Nov 19 11:20:42 2007 +1100"
      },
      "message": "virtio: fix module/device unloading\n\nThe virtio code never hooked through the -\u003eremove callback.  Although\nnoone supports device removal at the moment, this code is already\nneeded for module unloading.\n\nThis of course also revealed bugs in virtio_blk, virtio_net and lguest\nunloading paths.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "43054412db5e5b3eda1eff6c2245ff4257560340",
      "tree": "c83ae671369ba540e6ead43aa8d750c07db016bd",
      "parents": [
        "62ec56524f0eeaa1aa4f7281425fa34d400cdacc"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Nov 14 16:59:00 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:38 2007 -0800"
      },
      "message": "lguest_user.c: fix memory leak\n\nThis patch fixes a memory leak spotted by the Coverity checker.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42b36cc0ce717deeb10030141a43dede763a3ebe",
      "tree": "b2dc48b4f16c5dc59461ad24b027d631edda1da4",
      "parents": [
        "1200e646ae238afc536be70257290eb33fb6e364"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Nov 12 13:39:18 2007 +1100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Nov 12 13:59:40 2007 +1100"
      },
      "message": "virtio: Force use of power-of-two for descriptor ring sizes\n\nThe virtio descriptor rings of size N-1 were nicely set up to be\naligned to an N-byte boundary.  But as Anthony Liguori points out, the\nfree-running indices used by virtio require that the sizes be a power\nof 2, otherwise we get problems on wrap (demonstrated with lguest).\n\nSo we replace the clever \"2^n-1\" scheme with a simple \"align to page\nboundary\" scheme: this means that all virtio rings take at least two\npages, but it\u0027s safer than guessing cache alignment.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e1e72965ec2c02db99b415cd06c17ea90767e3a4",
      "tree": "94e43aac35bdc33220e64f285b72b3b2b787fd57",
      "parents": [
        "568a17ffce2eeceae0cd9fc37e97cbad12f70278"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Oct 25 15:02:50 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Oct 25 15:02:50 2007 +1000"
      },
      "message": "lguest: documentation update\n\nWent through the documentation doing typo and content fixes.  This\npatch contains only comment and whitespace changes.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n\n"
    },
    {
      "commit": "197bff630ae586252d24b3595c54f8f9b712610a",
      "tree": "1ec21fd0b688f9a483a8abe82514a24a467d582d",
      "parents": [
        "25c47bb35355c1e1b2ae325b49441b2c8b201ece"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Oct 25 14:10:30 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Oct 25 14:10:30 2007 +1000"
      },
      "message": "lguest: remove unused \"wake\" element from struct lguest\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n\n"
    },
    {
      "commit": "25c47bb35355c1e1b2ae325b49441b2c8b201ece",
      "tree": "b716ffc014c32fa5f7ba391ad44ee330bdaf72b2",
      "parents": [
        "db24e8c2ef7eceb46818a8c22fc38dea733fe159"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Oct 25 14:09:53 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Oct 25 14:09:53 2007 +1000"
      },
      "message": "lguest: use defines from x86 headers instead of magic numbers\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n\n"
    },
    {
      "commit": "2d37f94a28170ca656438758fca577acb49a7932",
      "tree": "21049219a98d314a2c442293e512b74d879e6270",
      "parents": [
        "56ae43dfe233323683248a5c553bad7160db2fa5"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:24:24 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:56 2007 +1000"
      },
      "message": "generalize lgread_u32/lgwrite_u32.\n\nJes complains that page table code still uses lgread_u32 even though\nit now uses general kernel pte types.  The best thing to do is to\ngeneralize lgread_u32 and lgwrite_u32.\n\nThis means we lose the efficiency of getuser().  We could potentially\nregain it if we used __copy_from_user instead of copy_from_user, but\nI\u0027m not certain that our range check is equivalent to access_ok() on\nall platforms.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Jes Sorensen \u003cjes@sgi.com\u003e\n"
    },
    {
      "commit": "19f1537b7b8a9a82665db3ad8210a9d954d13acd",
      "tree": "793c1f8763350012caa521a55c5778b1c633b7e5",
      "parents": [
        "15045275c32bf6d15d32c2eca8157be9c0ba6e45"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:24:21 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:56 2007 +1000"
      },
      "message": "Lguest support for Virtio\n\nThis makes lguest able to use the virtio devices.\n\nWe change the device descriptor page from a simple array to a variable\nlength \"type, config_len, status, config data...\" format, and\nimplement virtio_config_ops to read from that config data.\n\nWe use the virtio ring implementation for an efficient Guest \u003c-\u003e Host\nvirtqueue mechanism, and the new LHCALL_NOTIFY hypercall to kick the\nhost when it changes.\n\nWe also use LHCALL_NOTIFY on kernel addresses for very very early\nconsole output.  We could have another hypercall, but this hack works\nquite well.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "15045275c32bf6d15d32c2eca8157be9c0ba6e45",
      "tree": "32ef90c875b22cb1bbb94e38f557a690f1c0c6f8",
      "parents": [
        "0ca49ca946409f87a8cd0b14d5acb6dea58de6f3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:24:10 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:55 2007 +1000"
      },
      "message": "Remove old lguest I/O infrrasructure.\n\nThis patch gets rid of the old lguest host I/O infrastructure and\nreplaces it with a single hypercall \"LHCALL_NOTIFY\" which takes an\naddress.\n\nThe main change is the removal of io.c: that mainly did inter-guest\nI/O, which virtio doesn\u0027t yet support.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "0ca49ca946409f87a8cd0b14d5acb6dea58de6f3",
      "tree": "5f5927f1b0bf46998f4132d3628ae4c51e5ccf5a",
      "parents": [
        "0a8a69dd77ddbd4513b21363021ecde7e1025502"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:20:02 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:55 2007 +1000"
      },
      "message": "Remove old lguest bus and drivers.\n\nThis gets rid of the lguest bus, drivers and DMA mechanism, to make\nway for a generic virtio mechanism.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "47436aa4ad054c1c7c8231618e86ebd9305308dc",
      "tree": "a9ba6e0521f9116442144a86e781a3164ec86094",
      "parents": [
        "c18acd73ffc209def08003a1927473096f66c5ad"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:03:36 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:54 2007 +1000"
      },
      "message": "Boot with virtual \u003d\u003d physical to get closer to native Linux.\n\n1) This allows us to get alot closer to booting bzImages.\n\n2) It means we don\u0027t have to know page_offset.\n\n3) The Guest needs to modify the boot pagetables to create the\n   PAGE_OFFSET mapping before jumping to C code.\n\n4) guest_pa() walks the page tables rather than using page_offset.\n\n5) We don\u0027t use page_offset to figure out whether to emulate: it was\n   always kinda quesationable, and won\u0027t work for instructions done\n   before remapping (bzImage unpacking in particular).\n\n6) We still want the kernel address for tlb flushing: have the initial\n   hypercall give us that, too.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "c18acd73ffc209def08003a1927473096f66c5ad",
      "tree": "dd8e292ac8ca90b061b7e37ad6947231ced566e3",
      "parents": [
        "ee3db0f2b6053b65f3b70253f5f810d9a3d67b28"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:03:35 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:53 2007 +1000"
      },
      "message": "Allow guest to specify syscall vector to use.\n\n(Based on Ron Minnich\u0027s LGUEST_PLAN9_SYSCALL patch).\n\nThis patch allows Guests to specify what system call vector they want,\nand we try to reserve it.  We only allow one non-Linux system call\nvector, to try to avoid DoS on the Host.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ee3db0f2b6053b65f3b70253f5f810d9a3d67b28",
      "tree": "cc9b037247b8d8afb75c4d6214428fb0a2dc65f2",
      "parents": [
        "df29f43e650df29456804dabdb2611de914e7c0f"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:03:34 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:53 2007 +1000"
      },
      "message": "Rename \"cr3\" to \"gpgdir\" to avoid x86-specific naming.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "df29f43e650df29456804dabdb2611de914e7c0f",
      "tree": "2f8de4a2f1b7c4141e710123fc86db266f507d83",
      "parents": [
        "47aee45ae3c708ab678e09abfba0efaf6ca0e87a"
      ],
      "author": {
        "name": "Matias Zabaljauregui",
        "email": "matias.zabaljauregui@cern.ch",
        "time": "Mon Oct 22 11:03:33 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:53 2007 +1000"
      },
      "message": "Pagetables to use normal kernel types\n\nThis is my first step in the migration of page_tables.c to the kernel\ntypes and functions/macros (2.6.23-rc3).  Seems to be working OK.\n\nSigned-off-by: Matias Zabaljauregui \u003cmatias.zabaljauregui@cern.ch\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d612cde060a005c1effb13d0f665448a04ce5f67",
      "tree": "e7d77ba966a7c1dad70433b23e6086a1b5e18159",
      "parents": [
        "511801dc31c095b2bfe3bf5c6a370dbe9b042a70"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Oct 22 11:03:32 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:52 2007 +1000"
      },
      "message": "Move register setup into i386_core.c\n\nMove setup_regs() to lguest_arch_setup_regs() in i386_core.c given\nthat this is very architecture specific.\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "511801dc31c095b2bfe3bf5c6a370dbe9b042a70",
      "tree": "fcd0f1111e503f33e39660d3aba55ff5b64ebf56",
      "parents": [
        "b410e7b1499c49513cab18275db8a8ab549d9e09"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Oct 22 11:03:31 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:52 2007 +1000"
      },
      "message": "Change example launcher to use unsigned long not u32\n\nApply Clue 2x4 to lguest userland\u003c-\u003ekernel handling code and the\nlguest launcher. Pointers are not to be passed in u32\u0027s!\n\nBasic rule of thumb: Anything passing u32\u0027s back and forth should be\npassing unsigned longs to be portable to 64 bit archs.\n\nFor those who forgotten already, I repeat: NO POINTERS IN u32!\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b410e7b1499c49513cab18275db8a8ab549d9e09",
      "tree": "8a71fa34660f5ccc9d71677137c5ae211a38bbf2",
      "parents": [
        "cc6d4fbcef328acdc9fa7023e69f39f753f72fe1"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Oct 22 11:03:31 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:52 2007 +1000"
      },
      "message": "Make hypercalls arch-independent.\n\nClean up the hypercall code to make the code in hypercalls.c\narchitecture independent. First process the common hypercalls and\nthen call lguest_arch_do_hcall() if the call hasn\u0027t been handled.\nRename struct hcall_ring to hcall_args.\n\nThis patch requires the previous patch which reorganize the layout of\nstruct lguest_regs on i386 so they match the layout of struct\nhcall_args.\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "cc6d4fbcef328acdc9fa7023e69f39f753f72fe1",
      "tree": "860672e7da1a3516e36dd40f962552451ef0bcf2",
      "parents": [
        "4614a3a3b638dfd7a67d0237944f6a76331af61d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:03:30 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:52 2007 +1000"
      },
      "message": "Introduce \"hcall\" pointer to indicate pending hypercall.\n\nCurrently we look at the \"trapnum\" to see if the Guest wants a\nhypercall.  But once the hypercall is done we have to reset trapnum to\na bogus value, otherwise if we exit to userspace and return, we\u0027d run\nthe same hypercall twice (that was a nasty bug to find!).\n\nThis has two main effects:\n\n1) When Jes\u0027s patch changes the hypercall args to be a generic \"struct\n   hcall_args\" we simply change the type of \"lg-\u003ehcall\".  It\u0027s set by\n   arch code, so if it has to copy args or something it can do so, and\n   point \"hcall\" into lg-\u003earch somewhere.\n\n2) Async hypercalls only get run when an actual hypercall is pending.\n   This simplfies the code a little and is a more logical semantic.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "4614a3a3b638dfd7a67d0237944f6a76331af61d",
      "tree": "8ec25721127eb899b97e46551b1644644ca698ac",
      "parents": [
        "625efab1cd3d4da4634dfe26df6b4005385397e2"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Oct 22 11:03:29 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:51 2007 +1000"
      },
      "message": "Reorder guest saved regs to match hyperall order\n\nMove eax next to ebx/ecx/edx in struct lguest_regs on i386, so they\nwill be located together and allow it to map directly to a struct\nhcall_ring entry (which will be renamed struct hcall_args as in a\nsubsequent patch).\n\nThis is in preparation for making the code hcall code architecture\nindependent.\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "625efab1cd3d4da4634dfe26df6b4005385397e2",
      "tree": "e08cd714edece430ae8a8aef894adfadbccc064a",
      "parents": [
        "56adbe9ddc935600c64635d6a55c260a63c67e4a"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Oct 22 11:03:28 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:51 2007 +1000"
      },
      "message": "Move i386 part of core.c to x86/core.c.\n\nSeparate i386 architecture specific from core.c and move it to\nx86/core.c and add x86/lguest.h header file to match.\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "56adbe9ddc935600c64635d6a55c260a63c67e4a",
      "tree": "061789e573380943f70c20b2d9e8da4042bac0e6",
      "parents": [
        "48245cc0708d49d1d0566b9fa617ad6c5f4c6934"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:03:28 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:51 2007 +1000"
      },
      "message": "Make shadow IDT a complete IDT with 256 entries.\n\nThis simplifies the code a little, in preparation for allowing\nalternate system call vectors in guests (Plan 9 uses 0x40).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "48245cc0708d49d1d0566b9fa617ad6c5f4c6934",
      "tree": "b396fd2d1ab185aab20894570e7e84bd4f656355",
      "parents": [
        "3c6b5bfa3cf3b4057788e08482a468cc3bc00780"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:03:27 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:51 2007 +1000"
      },
      "message": "Remove fixed limit on number of guests, and lguests array.\n\nBack when we had all the Guest state in the switcher, we had a fixed\narray of them.  This is no longer necessary.\n\nIf we switch the network code to using random_ether_addr (46 bits is\nenough to avoid clashes), we can get rid of the concept of \"guest id\"\naltogether.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3c6b5bfa3cf3b4057788e08482a468cc3bc00780",
      "tree": "f0d67890f6f8c9d0840c9b19a483ec06cbf822ef",
      "parents": [
        "6649bb7af6a819b675bfcf22ab704737e905645a"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:03:26 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:50 2007 +1000"
      },
      "message": "Introduce guest mem offset, static link example launcher\n\nIn order to avoid problematic special linking of the Launcher, we give\nthe Host an offset: this means we can use any memory region in the\nLauncher as Guest memory rather than insisting on mmap() at 0.\n\nThe result is quite pleasing: a number of casts are replaced with\nsimple additions.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "1f4e1de4f23e158abf976a76e1d0fce6e39b532a",
      "tree": "273ed888c82023888c5de00b6a36cd885ff47859",
      "parents": [
        "34b8867a034364ca33d0adb3a1c5b9982903c719"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:03:25 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:50 2007 +1000"
      },
      "message": "Rename switcher.S to x86/switcher_32.S\n\nlguest uses a \"switcher\" shim mapped high to bounce between host and\nguest.  As lguest becomes less i386-centric, we separate this code\ninto a subdir.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "34b8867a034364ca33d0adb3a1c5b9982903c719",
      "tree": "7b6385b3985e7bdcca91103d01dea9f707e8b567",
      "parents": [
        "c37ae93d597fc63bae979db76b527dcc7740dc9d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:01:54 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:50 2007 +1000"
      },
      "message": "Move lguest guest support to arch/x86.\n\nLguest has two sides: host support (to launch guests) and guest\nsupport (replacement boot path and paravirt_ops).  This moves the\nguest side to arch/x86/lguest where it\u0027s closer to related code.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "05aa026a62d0fe0b4664a01d1537984b12567e7c",
      "tree": "76fad2d7d091ca2532237ba4a5ddc877348e2a91",
      "parents": [
        "ebac52524df31e7c2fe13ca5bd3438907842f763"
      ],
      "author": {
        "name": "Tony Breeds",
        "email": "tony@bakeyournoodle.com",
        "time": "Mon Oct 22 10:56:25 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:49 2007 +1000"
      },
      "message": "Clocksource is continuous regardless of the state of the host\u0027s TSC.\n\nCurrently lguest will spend a lot of of time waking up the host, as it\ncannot go tickless (if the [host] TSC has been marked unstable). On my\nlaptop I was getting ~40% of wakeups from lguest.\n\nWith this patch applied, my laptop is much happier!\n\nSigned-off-by: Tony Breeds \u003ctony@bakeyournoodle.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ebac52524df31e7c2fe13ca5bd3438907842f763",
      "tree": "42215a0910d06cfdb522a14ec5d9157656a071ab",
      "parents": [
        "b45d8cb054d7677d75176ae22a584fd84e4650e9"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 10:56:24 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:49 2007 +1000"
      },
      "message": "lguest_devices belongs in lguest_bus.c: it\u0027s not i386-specific.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "141341cdae5f1745e3903a6b9732672230b1dd64",
      "tree": "06f2b29fe8d3cd959120af5b366128204c64e03d",
      "parents": [
        "891ff65ff50bb6affdaebb2cda3a4c58a6442b4d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 10:56:22 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:48 2007 +1000"
      },
      "message": "Lguest currently depends on 32-bit x86, not just x86.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "891ff65ff50bb6affdaebb2cda3a4c58a6442b4d",
      "tree": "737603293be49ce612e05fa49ec00a75e1b501a1",
      "parents": [
        "babed5c00225f109d6ebea368ad2deea2abcce32"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Oct 22 10:56:22 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:48 2007 +1000"
      },
      "message": "Use copy_to_user() not put_user for struct timespec\n\nUse copy_to_user() when copying a struct timespec to the guest -\nput_user() cannot handle two long\u0027s in one go on a 64bit arch.\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\n"
    },
    {
      "commit": "25e82eba3a351cc3b263cae765a8786c827e42af",
      "tree": "b6be16254abe3bd9e0d81a25be5fa3edf08a0e6b",
      "parents": [
        "ee8e7cfe9d330d6f1ce0b9b1620d6df5d9cf6b70"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:19:49 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:47 2007 +1000"
      },
      "message": "Remove binfmts.h include from lg.h\n\nIt wasn\u0027t needed since a very early prototype of lguest.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d3d1c4bdf16bd154d9f27f34fca28edca90465eb",
      "tree": "d1f7d0c29af89e1ff23bf56defe54f62b1577681",
      "parents": [
        "0895e91d60ef9bdef426d1ce14bb94bd5875870d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 10:55:21 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:47 2007 +1000"
      },
      "message": "Normalize config options for guest support\n\n1) Group all the \"guest OS\" support options together, under a PARAVIRT_GUEST\n   menu.\n2) Make those options select CONFIG_PARAVIRT, as suggested by Andi.\n3) Make kconfig help titles consistent.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Zach Amsden \u003czach@vmware.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\n"
    },
    {
      "commit": "fb9fc395174138983a49f2da982ed14caabbe741",
      "tree": "5d5d3643ee6853a899205613da272cc343fdc1a4",
      "parents": [
        "0eafaae84e21ac033815cc9f33c3ae889cd7ccfe",
        "ace2e92e193126711cb3a83a3752b2c5b8396950"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 11:10:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 11:10:11 2007 -0700"
      },
      "message": "Merge branch \u0027xen-upstream\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen\n\n* \u0027xen-upstream\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen:\n  xfs: eagerly remove vmap mappings to avoid upsetting Xen\n  xen: add some debug output for failed multicalls\n  xen: fix incorrect vcpu_register_vcpu_info hypercall argument\n  xen: ask the hypervisor how much space it needs reserved\n  xen: lock pte pages while pinning/unpinning\n  xen: deal with stale cr3 values when unpinning pagetables\n  xen: add batch completion callbacks\n  xen: yield to IPI target if necessary\n  Clean up duplicate includes in arch/i386/xen/\n  remove dead code in pgtable_cache_init\n  paravirt: clean up lazy mode handling\n  paravirt: refactor struct paravirt_ops into smaller pv_*_ops\n"
    },
    {
      "commit": "30c826451d3e5bbc6e11bba0e7fee5d2f49d9b75",
      "tree": "61abd11d1703673ff21227d42ed4b07d85dd0290",
      "parents": [
        "2b0460b534f383eca744eb8fff66ec9f57e702b9"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Mon Oct 15 17:13:22 2007 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Tue Oct 16 17:38:31 2007 -0700"
      },
      "message": "[x86] remove uses of magic macros for boot_params access\n\nInstead of using magic macros for boot_params access, simply use the\nboot_params structure.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "8965c1c0950d459d99b8b81dfc1ab02e3d2cfb08",
      "tree": "50ad53453562c7dc50afa866d52345bd6e820bef",
      "parents": [
        "93b1eab3d29e7ea32ee583de3362da84db06ded8"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@xensource.com",
        "time": "Tue Oct 16 11:51:29 2007 -0700"
      },
      "committer": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Tue Oct 16 11:51:29 2007 -0700"
      },
      "message": "paravirt: clean up lazy mode handling\n\nCurrently, the set_lazy_mode pv_op is overloaded with 5 functions:\n 1. enter lazy cpu mode\n 2. leave lazy cpu mode\n 3. enter lazy mmu mode\n 4. leave lazy mmu mode\n 5. flush pending batched operations\n\nThis complicates each paravirt backend, since it needs to deal with\nall the possible state transitions, handling flushing, etc. In\nparticular, flushing is quite distinct from the other 4 functions, and\nseems to just cause complication.\n\nThis patch removes the set_lazy_mode operation, and adds \"enter\" and\n\"leave\" lazy mode operations on mmu_ops and cpu_ops.  All the logic\nassociated with enter and leaving lazy states is now in common code\n(basically BUG_ONs to make sure that no mode is current when entering\na lazy mode, and make sure that the mode is current when leaving).\nAlso, flush is handled in a common way, by simply leaving and\nre-entering the lazy mode.\n\nThe result is that the Xen, lguest and VMI lazy mode implementations\nare much simpler.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Zach Amsden \u003czach@vmware.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Anthony Liguory \u003caliguori@us.ibm.com\u003e\nCc: \"Glauber de Oliveira Costa\" \u003cglommer@gmail.com\u003e\nCc: Jun Nakajima \u003cjun.nakajima@intel.com\u003e\n\n"
    },
    {
      "commit": "93b1eab3d29e7ea32ee583de3362da84db06ded8",
      "tree": "8dc7eb61d4c65a48f9ce21a49e392f4967185cfd",
      "parents": [
        "ab9c232286c2b77be78441c2d8396500b045777e"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@xensource.com",
        "time": "Tue Oct 16 11:51:29 2007 -0700"
      },
      "committer": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Tue Oct 16 11:51:29 2007 -0700"
      },
      "message": "paravirt: refactor struct paravirt_ops into smaller pv_*_ops\n\nThis patch refactors the paravirt_ops structure into groups of\nfunctionally related ops:\n\npv_info - random info, rather than function entrypoints\npv_init_ops - functions used at boot time (some for module_init too)\npv_misc_ops - lazy mode, which didn\u0027t fit well anywhere else\npv_time_ops - time-related functions\npv_cpu_ops - various privileged instruction ops\npv_irq_ops - operations for managing interrupt state\npv_apic_ops - APIC operations\npv_mmu_ops - operations for managing pagetables\n\nThere are several motivations for this:\n\n1. Some of these ops will be general to all x86, and some will be\n   i386/x86-64 specific.  This makes it easier to share common stuff\n   while allowing separate implementations where needed.\n\n2. At the moment we must export all of paravirt_ops, but modules only\n   need selected parts of it.  This allows us to export on a case by case\n   basis (and also choose which export license we want to apply).\n\n3. Functional groupings make things a bit more readable.\n\nStruct paravirt_ops is now only used as a template to generate\npatch-site identifiers, and to extract function pointers for inserting\ninto jmp/calls when patching.  It is only instantiated when needed.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Zach Amsden \u003czach@vmware.com\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Anthony Liguory \u003caliguori@us.ibm.com\u003e\nCc: \"Glauber de Oliveira Costa\" \u003cglommer@gmail.com\u003e\nCc: Jun Nakajima \u003cjun.nakajima@intel.com\u003e\n"
    },
    {
      "commit": "bbbd2bf00bab467cff7b1f418b2cb24c71291f59",
      "tree": "893578ad97344c822cc21197c66b0c998f21644b",
      "parents": [
        "fdfb870f8e34e77567043b388051df14f7d33482"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Sep 24 21:24:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Sep 25 08:51:04 2007 -0700"
      },
      "message": "fix modules oopsing in lguest guests\n\nThe assembly templates for lguest guest patching are in the .init.text\nsection.  This means that modules get patched with \"cc cc cc cc\" or similar\njunk.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c413fecc763e380ec93dc6faf726e7e735ade04e",
      "tree": "deadc5f49c90dbe41081f2ca472a6b03a105de08",
      "parents": [
        "9863b78a1a82347fa1e727bdca0110151a5c4f10"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Sep 11 17:06:37 2007 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Sep 12 12:19:46 2007 -0700"
      },
      "message": "lguest: Fix guest crash when CONFIG_X86_USE_3DNOW\u003dy\n\nOne of the very first things lguest_init() does is a memcpy.  On\nAthlon/Duron/K7 or CyrixIII/VIA-C3 or Geode GX/LX, this tries to use\nMMX.\n\nmemcpy -\u003e _mmx_memcpy -\u003e kernel_fpu_begin -\u003e clts -\u003e paravirt_ops.clts\n\nBut we haven\u0027t set paravirt_ops.clts yet, so we do the native version\nand crash.  The simplest solution is to use __memcpy.\n\nThanks to Michael Rasenberger for the bug report.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8057d763ed7a7365dc3402db0aed7c87d8531ecb",
      "tree": "5a04fee7709eeed4babb70296302b1d49e64b37c",
      "parents": [
        "b07d68b5ca4d55a16fab223d63d5fb36f89ff42f"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 30 06:35:08 2007 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Aug 30 09:58:22 2007 -0700"
      },
      "message": "Fix lguest page-pinning logic (\"lguest: bad stack page 0xc057a000\")\n\nIf the stack pointer is 0xc057a000, then the first stack page is at\n0xc0579000 (the stack pointer is decremented before use).  Not\ncalculating this correctly caused guests with CONFIG_DEBUG_PAGEALLOC\u003dy\nto be killed with a \"bad stack page\" message: the initial kernel stack\nwas just proceeding the .smp_locks section which\nCONFIG_DEBUG_PAGEALLOC marks read-only when freeing.\n\nThanks to Frederik Deweerdt for the bug report!\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "deec5950479b72eff3130dc6f956a87466ed41c6",
      "tree": "d2a862f5da1a756a32550b1707d47a6bb13bb466",
      "parents": [
        "b377fd3982ad957c796758a90e2988401a884241"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Fri Aug 24 00:03:47 2007 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Aug 23 21:23:33 2007 -0700"
      },
      "message": "lguest should depend on CONFIG_FUTEX\n\nIt uses get_futex_key().\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab144f5ec64c42218a555ec1dbde6b60cf2982d6",
      "tree": "e3a4532e1db116e87060c9b18f4cfbf6258fdba3",
      "parents": [
        "d3f3c9346979bfa074c64eac5fc3ed5bba4f40ed"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Fri Aug 10 22:31:03 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Aug 11 15:58:13 2007 -0700"
      },
      "message": "i386: Make patching more robust, fix paravirt issue\n\nCommit 19d36ccdc34f5ed444f8a6af0cbfdb6790eb1177 \"x86: Fix alternatives\nand kprobes to remap write-protected kernel text\" uses code which is\nbeing patched for patching.\n\nIn particular, paravirt_ops does patching in two stages: first it\ncalls paravirt_ops.patch, then it fills any remaining instructions\nwith nop_out().  nop_out calls text_poke() which calls\nlookup_address() which calls pgd_val() (aka paravirt_ops.pgd_val):\nthat call site is one of the places we patch.\n\nIf we always do patching as one single call to text_poke(), we only\nneed make sure we\u0027re not patching the memcpy in text_poke itself.\nThis means the prototype to paravirt_ops.patch needs to change, to\nmarshal the new code into a buffer rather than patching in place as it\ndoes now.  It also means all patching goes through text_poke(), which\nis known to be safe (apply_alternatives is also changed to make a\nsingle patch).\n\nAK: fix compilation on x86-64 (bad rusty!)\nAK: fix boot on x86-64 (sigh)\nAK: merged with other patches\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1a47190a6000d0e75ee4ffa75f3f6b16dd60a0b",
      "tree": "605ecebbdd7fb3d8f507aa74df24bf7da5594148",
      "parents": [
        "cd5bfea278987ebfe60f3ff92a01696b17c4f978"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Fri Aug 10 13:01:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Aug 11 15:47:42 2007 -0700"
      },
      "message": "lguest files should explicitly include asm/paravirt.h\n\nFiles using bits from paravirt.h should explicitly include it rather than\nrelying on it being pulled in by something else.\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0d027c01cd36b8cff727c78d2e40d334ba9895a8",
      "tree": "21dde51409ab83cbb3ce7200393b3a0acb76388d",
      "parents": [
        "37250097e1b730c30da1790e354c0da65e617043"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 09 20:57:13 2007 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Aug 09 08:14:56 2007 -0700"
      },
      "message": "lguest: Fix Malicious Guest GDT Host Crash\n\nIf a Guest makes hypercall which sets a GDT entry to not present, we\ncurrently set any segment registers using that GDT entry to 0.\nUnfortunately, this is not sufficient: there are other ways of\naltering GDT entries which will cause a fault.\n\nThe correct solution to do what Linux does: let them set any GDT value\nthey want and handle the #GP when popping causes a fault.  This has\nthe added benefit of making our Switcher slightly more robust in the\ncase of any other bugs which cause it to fault.\n\nWe kill the Guest if it causes a fault in the Switcher: it\u0027s the\nGuest\u0027s responsibility to make sure it\u0027s not using segments when it\nchanges them.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "37250097e1b730c30da1790e354c0da65e617043",
      "tree": "354c1193eb230ecc27eb1a00d555d8c2bc7fd6e9",
      "parents": [
        "88ffc3505988196ef5cfdc0278ad89025c2a7b1a"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 09 20:52:35 2007 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Aug 09 08:14:56 2007 -0700"
      },
      "message": "Fix non-TSC guest clocksource lockup\n\nlguest uses a host-supplied wallclock-based clocksource when the TSC\nis not reliable.  As this is already in nanoseconds, I naively used a\nmultiplier of 1 and a shift of 0.\n\nBut update_wall_time() in its infinite wisdom decides to adjust the\nclock a little (where does it think it\u0027s getting a more accurate time\nfrom?)\n\nIt will happily tweak the multiplier... to 0, then -1.\n\nSo the \"fix\" is to use a shift of 22 like everyone else, and a\nmultiplier of 1 \u003c\u003c 22.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc1ff43b7002b40686f03269b5011d59965737a4",
      "tree": "26ebc91c043f735a7bf7f9e2367fb920ca38ee43",
      "parents": [
        "bac27d35cbbf7c641efcc75b5330df8717d6db65"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Aug 06 10:48:18 2007 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Aug 06 18:21:15 2007 -0700"
      },
      "message": "Enable lguest drivers in Kconfig\n\nLguest drivers need to default to \"Y\" otherwise they\u0027re never selected\nfor new builds.  (We don\u0027t bother prompting, because they\u0027re less than\n4k combined, and implied by selecting lguest support).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "05ff09706bacc92ccadde3a74289118789581475",
      "tree": "f18f0a1ff1ac43f9f83fa3ee3508005e83259566",
      "parents": [
        "a6ce22a5f61ba838b43763bf1e5be399f9dee4d0"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 30 10:25:22 2007 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 29 17:37:45 2007 -0700"
      },
      "message": "Make lguest compile with CONFIG_BLOCK\u003dn and CONFIG_NET\u003dn\n\nGabriel C reports lguest doesn\u0027t compile with CONFIG_BLOCK\u003dn.  Fix this\nby introducing a config var for the block device, which depends on\nLGUEST \u0026\u0026 BLOCK.  Do the same for the net driver, rather then depending\ngratuitously on CONFIG_NET.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Gabriel C \u003cnix.or.die@googlemail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c8dca5d53f95009d4fff00195bf38f277dc4366",
      "tree": "60cc83cf949d6e598e6dc80dc668aebd42c65540",
      "parents": [
        "a8a11f06973fa63ad692a8f97694cb5eeb70b3f3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jul 27 13:42:52 2007 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jul 28 19:54:33 2007 -0700"
      },
      "message": "Provide timespec to guests rather than jiffies clock.\n\nA non-periodic clock_event_device and the \"jiffies\" clock don\u0027t mix well:\ntick_handle_periodic() can go into an infinite loop.\n\nCurrently lguest guests use the jiffies clock when the TSC is\nunusable.  Instead, make the Host write the current time into the lguest\npage on every interrupt.  This doesn\u0027t cost much but is more precise\nand at least as accurate as the jiffies clock.  It also gets rid of\nthe GET_WALLCLOCK hypercall.\n\nAlso, delay setting sched_clock until our clock is set up, otherwise\nthe early printk timestamps can go backwards (not harmful, just ugly).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a8a11f06973fa63ad692a8f97694cb5eeb70b3f3",
      "tree": "d26b297464d413f7b7d05bc80c76d66743865d2a",
      "parents": [
        "dfbab7540569679a91cf43208eff4ef3f4500a5f"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jul 27 13:35:43 2007 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jul 28 19:53:36 2007 -0700"
      },
      "message": "Fix lguest bzImage loading with CONFIG_RELOCATABLE\u003dy\n\nJason Yeh sent his crashing .config: bzImages made with\nCONFIG_RELOCATABLE\u003dy put the relocs where the BSS is expected, and we\ncrash with unusual results such as:\n\n\tlguest: unhandled trap 14 at 0xc0122ae1 (0xa9)\n\nRelying on BSS being zero was merely laziness on my part, and\nunfortunately, lguest doesn\u0027t go through the normal startup path (which\ndoes this in asm).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f56a384e98aa81065038c4e16f39ed989ccae687",
      "tree": "923bcaabd76a88351fe5e61370143350747a90c4",
      "parents": [
        "f8f0fdcd40449d318f8dc30c1b361b0b7f54134a"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 26 10:41:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 26 11:35:17 2007 -0700"
      },
      "message": "lguest: documentation VII: FIXMEs\n\nDocumentation: The FIXMEs\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f8f0fdcd40449d318f8dc30c1b361b0b7f54134a",
      "tree": "09bdfa13377de602bcd0f363a417a93666115c7e",
      "parents": [
        "bff672e630a015d5b54c8bfb16160b7edc39a57c"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 26 10:41:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 26 11:35:17 2007 -0700"
      },
      "message": "lguest: documentation VI: Switcher\n\nDocumentation: The Switcher\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bff672e630a015d5b54c8bfb16160b7edc39a57c",
      "tree": "3af06baacb76809234a3e71033d14b7ed769dbd8",
      "parents": [
        "dde797899ac17ebb812b7566044124d785e98dc7"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 26 10:41:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 26 11:35:17 2007 -0700"
      },
      "message": "lguest: documentation V: Host\n\nDocumentation: The Host\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dde797899ac17ebb812b7566044124d785e98dc7",
      "tree": "531ae7fd415d267e49acfedbbf4f03cf86e5eac1",
      "parents": [
        "e2c9784325490c878b7f69aeec1bed98b288bd97"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 26 10:41:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 26 11:35:17 2007 -0700"
      },
      "message": "lguest: documentation IV: Launcher\n\nDocumentation: The Launcher\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e2c9784325490c878b7f69aeec1bed98b288bd97",
      "tree": "d474007607c713a30db818107ca0581269f059a2",
      "parents": [
        "b2b47c214f4e85ce3968120d42e8b18eccb4f4e3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 26 10:41:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 26 11:35:17 2007 -0700"
      },
      "message": "lguest: documentation III: Drivers\n\nDocumentation: The Drivers\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2b47c214f4e85ce3968120d42e8b18eccb4f4e3",
      "tree": "f77d6898a769b8e0fcb552207e87f273bdc19f09",
      "parents": [
        "f938d2c892db0d80d144253d4a7b7083efdbedeb"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 26 10:41:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 26 11:35:17 2007 -0700"
      },
      "message": "lguest: documentation II: Guest\n\nDocumentation: The Guest\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f938d2c892db0d80d144253d4a7b7083efdbedeb",
      "tree": "1fbc946a9fb59827001a5d4d5224abe5e624e605",
      "parents": [
        "dfb68689bf3e3d31dc9fb5c2bde5379a4ca9b0ec"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 26 10:41:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 26 11:35:16 2007 -0700"
      },
      "message": "lguest: documentation I: Preparation\n\nThe netfilter code had very good documentation: the Netfilter Hacking HOWTO.\nNoone ever read it.\n\nSo this time I\u0027m trying something different, using a bit of Knuthiness.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "18de5bc4c1f1f1fa5e14f354a7603bd6e9d4e3b6",
      "tree": "cb0ff399fb3f368adecf213318e32a499ada6ff9",
      "parents": [
        "93da56efcf8c6a111f0349f6b7651172d4745ca0"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Jul 21 04:37:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jul 21 17:49:15 2007 -0700"
      },
      "message": "clockevents: fix resume logic\n\nWe need to make sure, that the clockevent devices are resumed, before\nthe tick is resumed. The current resume logic does not guarantee this.\n\nAdd CLOCK_EVT_MODE_RESUME and call the set mode functions of the clock\nevent devices before resuming the tick / oneshot functionality.\n\nFixup the existing users.\n\nThanks to Nigel Cunningham for tracking down a long standing thinko,\nwhich affected the jinxed VAIO.\n\n[akpm@linux-foundation.org: xen build fix]\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d1ca6f13cfedfd127f3be7e447bd6d922806a65",
      "tree": "fb920888bce49f2bfa8c5a239e2c8c55dd9df7bd",
      "parents": [
        "876be9d89e9c8a007577e6372e331042edf4020b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jul 20 22:15:01 2007 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 20 09:05:16 2007 -0700"
      },
      "message": "lguest: override sched_clock\n\nGuests currently use the default scheduler clock: this means they\nalways use jiffies even if TSC is actually available.  It doesn\u0027t make\nany noticeable difference here, but it\u0027s a better thing to do.\n\nAlso remove commented-out asm/sched-clock.h from -mm tree.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "876be9d89e9c8a007577e6372e331042edf4020b",
      "tree": "a6da89d7f91ad5ccd83332b559d6458989889bdd",
      "parents": [
        "e5faff45b381e053c31214713ed783d97f49177b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jul 20 22:12:56 2007 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 20 09:05:16 2007 -0700"
      },
      "message": "lguest: trivial: We now have asm/processor-flags.h, so use it.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e5faff45b381e053c31214713ed783d97f49177b",
      "tree": "0a2b906f9f087b33e4ca9cb892f35f649ab67fb6",
      "parents": [
        "bd6dc742a4b1945861795a66dc27c65365c5f28e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jul 20 22:11:13 2007 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 20 09:05:16 2007 -0700"
      },
      "message": "lguest: fix sense if IF flag on interrupt injection\n\nThe sense of the IF bit is backwards in the host interrupt handling.\n\nThis means we always save \"IF\u003d1\" on the stack when injecting an\ninterrupt.  It turns out this is almost always correct (unless the\nguest is taking a page fault in an interrupt due to an unpopulated\nvmalloc mapping), so went unnoticed.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d14bfe77b8246a45670b7158d3a49bfe55662c7",
      "tree": "582782292e590d156a1f126b8b8bf6e0b6341b90",
      "parents": [
        "25cccecce8e29f92eb5a0445bc97ee01ef2da379"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Jul 20 16:10:24 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jul 20 08:24:49 2007 -0700"
      },
      "message": "Fix lguest misannotation\n\n\tIt\u0027s void __user *, not void * __user...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "709e89266b60eff444fc512400321eb02d2474eb",
      "tree": "39df4acd6e6180186db0b7e04c34237ccdca233b",
      "parents": [
        "6db7016d17b235a24e0c1544c202defa47ae7247"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 19 01:49:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:52 2007 -0700"
      },
      "message": "lguest: the Makefile and Kconfig\n\nThis is the Kconfig and Makefile to allow lguest to actually be\ncompiled.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d7e28ffe6c74416b54345d6004fd0964c115b12c",
      "tree": "844beb4f400d5400098538e0c1e5f12d20a9504a",
      "parents": [
        "07ad157f6e5d228be78acd5cea0291e5d0360398"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 19 01:49:23 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:52 2007 -0700"
      },
      "message": "lguest: the host code\n\nThis is the code for the \"lg.ko\" module, which allows lguest guests to\nbe launched.\n\n[akpm@linux-foundation.org: update for futex-new-private-futexes]\n[akpm@linux-foundation.org: build fix]\n[jmorris@namei.org: lguest: use hrtimers]\n[akpm@linux-foundation.org: x86_64 build fix]\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "07ad157f6e5d228be78acd5cea0291e5d0360398",
      "tree": "87180c2d1aa53857f46d1dc293e08c0fbea0608a",
      "parents": [
        "5992b6dac0d23a2b51a1ccbaf8f1a2e62097b12b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 19 01:49:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:52 2007 -0700"
      },
      "message": "lguest: the guest code\n\nlguest is a simple hypervisor for Linux on Linux.  Unlike kvm it doesn\u0027t need\nVT/SVM hardware.  Unlike Xen it\u0027s simply \"modprobe and go\".  Unlike both, it\u0027s\n5000 lines and self-contained.\n\nPerformance is ok, but not great (-30% on kernel compile).  But given its\nhackability, I expect this to improve, along with the paravirt_ops code which\nit supplies a complete example for.  There\u0027s also a 64-bit version being\nworked on and other craziness.\n\nBut most of all, lguest is awesome fun!  Too much of the kernel is a big ball\nof hair.  lguest is simple enough to dive into and hack, plus has some warts\nwhich scream \"fork me!\".\n\nThis patch:\n\nThis is the code and headers required to make an i386 kernel an lguest guest.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ]
}
