)]}'
{
  "log": [
    {
      "commit": "a16ffe93c46dfca211434d00453ebb695025978b",
      "tree": "2814e24dc4762978874277630de78ddbf6fdd6a1",
      "parents": [
        "b769f579081943f14e0ff03b7b0bd3a11cf14625"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 30 15:09:42 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 30 15:09:43 2008 +1000"
      },
      "message": "lguest: fix ugly \u003cNULL\u003e in /proc/interrupts\n\nBefore:\n\troot@ubuntu:~# cat /proc/interrupts\n\t           CPU0\n\t  1:       1672    lguest-\u003cNULL\u003e    virtio0\n\t  2:          1    lguest-\u003cNULL\u003e    virtio1\n\t  ...\nAfter:\n\troot@ubuntu:~# cat /proc/interrupts\n\t           CPU0\n\t  1:       2889    lguest-level     virtio0\n\t  2:          9    lguest-level     virtio1\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "77bf90ed66116a1fc0e2f0554ecac75a54290cc0",
      "tree": "7b71df7149473be877dfa4488e7e5e154c2cd508",
      "parents": [
        "282bfe21cf0e2af9eac052c89bcc0a5ace80352f"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Mar 03 11:37:23 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 17 17:40:57 2008 +0200"
      },
      "message": "x86: replace remaining __FUNCTION__ occurances\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a6bd8e13034dd7d60b6f14217096efa192d0adc1",
      "tree": "23890908b06eb8357e6ce633d35df1216f5e4213",
      "parents": [
        "e18b094f0faa4889b06a112da17230a10b88c815"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Mar 28 11:05:53 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Mar 28 11:05:54 2008 +1100"
      },
      "message": "lguest: comment documentation update.\n\nTook some cycles to re-read the Lguest Journey end-to-end, fix some\nrot and tighten some phrases.\n\nOnly comments change.  No new jokes, but a couple of recycled old jokes.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "4357bd9453b81e0a41db1dec16e06d74256b7560",
      "tree": "4b23d512d6cbe26ac2b4a0dfaff7e415bd1dab7c",
      "parents": [
        "3fabc55f34b72720e8a10aa442bd3415a211edb3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 11 09:35:57 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 11 09:35:58 2008 +1100"
      },
      "message": "lguest: Revert 1ce70c4fac3c3954bd48c035f448793867592bc0, fix real problem.\n\nAhmed managed to crash the Host in release_pgd(), which cannot be a Guest\nbug, and indeed it wasn\u0027t.\n\nThe bug was that handing a 0 as the address of the toplevel page table\nbeing manipulated can cause the lookup code in find_pgdir() to return\nan uninitialized cache entry (we shadow up to 4 top level page tables\nfor each Guest).\n\nCommit 37cc8d7f963ba2deec29c9b68716944516a3244f introduced this\nbehaviour in the Guest, uncovering the bug.\n\nThe patch which he submitted (which removed the /4 from the index\ncalculation) simply ensured that these high-indexed entries hit the\nearly exit path of guest_set_pmd().  But you get lots of segfaults in\nguest userspace as the PMDs aren\u0027t being updated.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3fabc55f34b72720e8a10aa442bd3415a211edb3",
      "tree": "2ccc469ce6daff4430c04d89b139f3d7ac02aaac",
      "parents": [
        "f14ae652baa3d72ae378f0c06b89cc2c4ef15ff8"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 11 09:35:56 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 11 09:35:57 2008 +1100"
      },
      "message": "lguest: Sanitize the lguest clock.\n\nNow the TSC code handles a zero return from calculate_cpu_khz(),\nlguest can simply pass through the value it gets from the Host: if\nnon-zero, all the normal TSC code applies.\n\nOtherwise (or if the Host really doesn\u0027t support TSC), the clocksource\ncode will fall back to the slower but reasonable lguest clock.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "1ce70c4fac3c3954bd48c035f448793867592bc0",
      "tree": "2e015ab35edf2466fff7d7e2f138bf4624c0e1b1",
      "parents": [
        "db342d216ba9e060d8c5501eefc1d0a789c9e711"
      ],
      "author": {
        "name": "Ahmed S. Darwish",
        "email": "darwish.07@gmail.com",
        "time": "Sun Feb 24 17:55:15 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 26 12:55:49 2008 +0100"
      },
      "message": "x86/lguest: fix pgdir pmd index calculation\n\nHi all,\n\nBeginning from commits close to v2.6.25-rc2, running lguest always oopses\nthe host kernel. Oops is at [1].\n\nBisection led to the following commit:\n\ncommit 37cc8d7f963ba2deec29c9b68716944516a3244f\n\n    x86/early_ioremap: don\u0027t assume we\u0027re using swapper_pg_dir\n\n    At the early stages of boot, before the kernel pagetable has been\n    fully initialized, a Xen kernel will still be running off the\n    Xen-provided pagetables rather than swapper_pg_dir[].  Therefore,\n    readback cr3 to determine the base of the pagetable rather than\n    assuming swapper_pg_dir[].\n\n static inline pmd_t * __init early_ioremap_pmd(unsigned long addr)\n {\n-\tpgd_t *pgd \u003d \u0026swapper_pg_dir[pgd_index(addr)];\n+\t/* Don\u0027t assume we\u0027re using swapper_pg_dir at this point */\n+\tpgd_t *base \u003d __va(read_cr3());\n+\tpgd_t *pgd \u003d \u0026base[pgd_index(addr)];\n \tpud_t *pud \u003d pud_offset(pgd, addr);\n \tpmd_t *pmd \u003d pmd_offset(pud, addr);\n\nTrying to analyze the problem, it seems on the guest side of lguest,\n%cr3 has a different value from \u0026swapper_pg-dir (which\nis AFAIK fine on a pravirt guest):\n\nPutting some debugging messages in early_ioremap_pmd:\n\n/* Appears 3 times */\n[    0.000000] ***************************\n[    0.000000] __va(%cr3) \u003d c0000000, \u0026swapper_pg_dir \u003d c02cc000\n[    0.000000] ***************************\n\nAfter 8 hours of debugging and staring on lguest code, I noticed something\nstrange in paravirt_ops-\u003eset_pmd hypercall invocation:\n\nstatic void lguest_set_pmd(pmd_t *pmdp, pmd_t pmdval)\n{\n\t*pmdp \u003d pmdval;\n\tlazy_hcall(LHCALL_SET_PMD, __pa(pmdp)\u0026PAGE_MASK,\n\t\t   (__pa(pmdp)\u0026(PAGE_SIZE-1))/4, 0);\n}\n\nThe first hcall parameter is global pgdir which looks fine. The second\nparameter is the pmd index in the pgdir which is suspectful.\n\nAFAIK, calculating the index of pmd does not need a divisoin over four.\nRemoving the division made lguest work fine again . Patch is at [2].\n\nI am not sure why the division over four existed in the first place. It\nseems bogus, maybe the Xen patch just made the problem appear ?\n\n[2]: The patch:\n\n[PATCH] lguest: fix pgdir pmd index cacluation\n\nRemove an error in index calculation which leads to removing\na not existing shadow page table (leading to a Null dereference).\n\nSigned-off-by: Ahmed S. Darwish \u003cdarwish.07@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cbc34973709eb41b369c304c075cf2069f847012",
      "tree": "1feb0a08fb30b98cff5a2ecc7b7d2cf40baa42b7",
      "parents": [
        "bfa274e2436fc7ef72ef51c878083647f1cfd429"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Feb 13 13:14:35 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 26 12:55:49 2008 +0100"
      },
      "message": "lguest: include function prototypes\n\nAdded a declaration to asm-x86/lguest.h and moved the extern arrays there\nas well.  As an alternative to including asm/lguest.h directly, an\ninclude could be put in linux/lguest.h\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: \"rusty@rustcorp.com.au\" \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\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": "42d545c9a4c0d3faeab658a40165c3da2dda91b2",
      "tree": "bd7d188d779f9372f5aedd4654804c37bc94447d",
      "parents": [
        "e61bd94a36a9f2c394d75ebe3614fe0a612bcf2d"
      ],
      "author": {
        "name": "Eduardo Pereira Habkost",
        "email": "ehabkost@redhat.com",
        "time": "Wed Jan 30 13:33:32 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:33:32 2008 +0100"
      },
      "message": "x86: remove depends on X86_32 from PARAVIRT \u0026 PARAVIRT_GUEST\n\nWith this, the paravirt_ops code can be enabled on x86_64 also.\n\nEach guest implementation (Xen, VMI, lguest) now depends on X86_32. The\ndependencies can be dropped for each one when they start to support\nx86_64.\n\nSigned-off-by: Eduardo Habkost \u003cehabkost@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "014b15be30c04622d130946ab7c0a9101b523a8a",
      "tree": "9138df88eb59da0021a4ac10c8ce4c66f9a62e13",
      "parents": [
        "18245d5b6e54ca76b60b687e43eb893f9e9dd611"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Wed Jan 30 13:31:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:13 2008 +0100"
      },
      "message": "x86: change write_gdt_entry signature.\n\nThis patch changes the write_gdt_entry function signature.\nInstead of the old \"a\" and \"b\" parameters, it now receives\na pointer to a desc_struct, and the size of the entry being\nhandled. This is because x86_64 can have some 16-byte entries\nas well as 8-byte ones.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nCC: Zachary Amsden \u003czach@vmware.com\u003e\nCC: Jeremy Fitzhardinge \u003cJeremy.Fitzhardinge.citrix.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "8d947344c47a40626730bb80d136d8daac9f2060",
      "tree": "3987eb84706b2f4e968d6838da9d2d1f6888e34e",
      "parents": [
        "010d4f8221cf51a2ab8b037d0149506b397d073f"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Wed Jan 30 13:31:12 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:12 2008 +0100"
      },
      "message": "x86: change write_idt_entry signature\n\nthis patch changes write_idt_entry signature. It now takes a gate_desc\ninstead of the a and b parameters. It will allow it to be later unified\nbetween i386 and x86_64.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nCC: Zachary Amsden \u003czach@vmware.com\u003e\nCC: Jeremy Fitzhardinge \u003cJeremy.Fitzhardinge.citrix.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6b68f01baa810e9f63fbf39e9d5c3ef1d94a966f",
      "tree": "dc7f50673d72677d24dbe9ac8217b832f8d5cb02",
      "parents": [
        "6842ef0e85a9cc1295f3ef933a230f863b01eb0f"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Wed Jan 30 13:31:12 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:12 2008 +0100"
      },
      "message": "x86: unify struct desc_ptr\n\nThis patch unifies struct desc_ptr between i386 and x86_64.\nThey can be expressed in the exact same way in C code, only\nhaving to change the name of one of them. As Xgt_desc_struct\nis ugly and big, this is the one that goes away.\n\nThere\u0027s also a padding field in i386, but it is not really\nneeded in the C structure definition.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\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": "65ea5b0349903585bfed9720fa06f5edb4f1cd25",
      "tree": "6c252228c34416b7e2077f23475de34500c2ab8a",
      "parents": [
        "53756d3722172815f52272b28c6d5d5e9639adde"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Jan 30 13:30:56 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:56 2008 +0100"
      },
      "message": "x86: rename the struct pt_regs members for 32/64-bit consistency\n\nWe have a lot of code which differs only by the naming of specific\nmembers of structures that contain registers.  In order to enable\nadditional unifications, this patch drops the e- or r- size prefix\nfrom the register names in struct pt_regs, and drops the x- prefixes\nfor segment registers on the 32-bit side.\n\nThis patch also performs the equivalent renames in some additional\nplaces that might be candidates for unification in the future.\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": "42e0a9aa5d467188687c6b705412578e53c14af6",
      "tree": "9c9a64a576a4072b816babf0bb81aa5924d2a667",
      "parents": [
        "3c6bb07ac1b4174318606a26f0de8ceb9f6d8133"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jan 30 13:30:15 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:15 2008 +0100"
      },
      "message": "x86: use u32 for some lapic functions\n\nUse u32 so 32 and 64bit have the same interface.\n\nAndrew Morton: xen, lguest build fixes\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\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": "b8415ec34fd63c6260497b2f8aaf3ce7a61eaa8a",
      "tree": "082b4de7df84311281d8ef30473e63ddcb792d11",
      "parents": [
        "fbb43ab03c1fa7587476910d346ee11882b4cc62"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Nov 28 16:22:09 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Nov 29 09:24:55 2007 -0800"
      },
      "message": "lguest: prevent VISWS or VOYAGER randconfigs\n\nKeep lguest from being enabled on VISWS or VOYAGER configs, just as is\nalready done for VMI and XEN.  Otherwise randconfigs with VISWS and LGUEST\nhave this problem:\n\nIn file included from arch/x86/kernel/setup_32.c:61:\ninclude/asm-x86/mach-visws/setup_arch.h:8:1: warning: \"ARCH_SETUP\" redefined\nIn file included from include/asm/msr.h:80,\n                 from include/asm/processor_32.h:17,\n                 from include/asm/processor.h:2,\n                 from include/asm/thread_info_32.h:16,\n                 from include/asm/thread_info.h:2,\n                 from include/linux/thread_info.h:21,\n                 from include/linux/preempt.h:9,\n                 from include/linux/spinlock.h:49,\n                 from include/linux/seqlock.h:29,\n                 from include/linux/time.h:8,\n                 from include/linux/timex.h:57,\n                 from include/linux/sched.h:53,\n                 from arch/x86/kernel/setup_32.c:24:\ninclude/asm/paravirt.h:458:1: warning: this is the location of the previous definition\n\n(and of course, this happens because kconfig does not follow dependencies\nwhen [evil] select is used...)\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.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": "633872b980f55f40a5e7de374f26970e41e2137b",
      "tree": "676e604142f0a536fd54d47da03a67d15bedbf45",
      "parents": [
        "fad23fc78b959dae89768e523c3a6f5edb83bbe9"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Nov 05 21:55:57 2007 +1100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Nov 05 21:55:57 2007 +1100"
      },
      "message": "lguest: tidy up documentation\n\nAfter Adrian Bunk\u0027s \"make async_hcall static\" moved things around, update\ncomments to match (aka \"make Guest\").\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "9b56fdb458b014bdda974b43a3e59721032898bb",
      "tree": "cbbb090021c33ab7fab5500702e4872cac4706b1",
      "parents": [
        "b55d1b1814c52463c11707f53dbdc223e09b2924"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Nov 02 16:43:10 2007 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Nov 05 21:53:29 2007 +1100"
      },
      "message": "lguest: make async_hcall() static\n\nasync_hcall() can become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\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": "4cfe6c3c1c301d3d7a36c9d579597b75ebb8ea13",
      "tree": "2d76112b66c5f45859ebc103e295b907c7030dc6",
      "parents": [
        "7334492b53706964eb055ed8e25e2e3315d7222a"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Oct 25 14:15:09 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Oct 25 14:15:09 2007 +1000"
      },
      "message": "lguest: build fix\n\nFix this error (i386 !SMP build)\n\narch/x86/lguest/boot.c: In function ‘lguest_init’:\narch/x86/lguest/boot.c:1059: error: ‘pm_power_off’ undeclared (first use in this function)\n\nby including linux/pm.h.\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\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": "814a0e5cdfbd384f4bf7a8443f9c3b885f413d58",
      "tree": "4cb82a6ec1db54ce00fbc3700762cd3dc46a0b4e",
      "parents": [
        "1f5a29022ac66bc90cbe2a2162f56e9cd7b393ef"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:29:44 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:57 2007 +1000"
      },
      "message": "Revert lguest magic and use hook in head.S\n\nVersion 2.07 of the boot protocol uses 0x23C for the hardware_subarch\nfield, that for lguest is \"1\".  This allows us to use the standard\nboot entry point rather than the \"GenuineLguest\" string hack.\n\nThe standard entry point also clears the BSS and copies the boot parameters\nand commandline for us, saving more code.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\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": "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": "0a8a69dd77ddbd4513b21363021ecde7e1025502",
      "tree": "ed6d8f0756835390b4c0d9a172422f2e42a65523",
      "parents": [
        "b01d9f2863349b0e041b90c3c86a998ee0fed2b0"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 11:03:40 2007 +1000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 23 15:49:55 2007 +1000"
      },
      "message": "Virtio helper routines for a descriptor ringbuffer implementation\n\nThese helper routines supply most of the virtqueue_ops for hypervisors\nwhich want to use a ring for virtio.  Unlike the previous lguest\nimplementation:\n\n1) The rings are variable sized (2^n-1 elements).\n2) They have an unfortunate limit of 65535 bytes per sg element.\n3) The page numbers are always 64 bit (PAE anyone?)\n4) They no longer place used[] on a separate page, just a separate\n   cacheline.\n5) We do a modulo on a variable.  We could be tricky if we cared.\n6) Interrupts and notifies are suppressed using flags within the rings.\n\nUsers need only get the ring pages and provide a notify hook (KVM\nwants the guest to allocate the rings, lguest does it sanely).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Dor Laor \u003cdor.laor@qumranet.com\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": "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": "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": "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"
    }
  ]
}
