)]}'
{
  "log": [
    {
      "commit": "091ebf07a2408f9a56634caa0f86d9360e9af23b",
      "tree": "62d3b3424cc1c0dc71b3b750bb1e8e063e658fd3",
      "parents": [
        "5094aeafbbd500509f648e3cd102b053bc7926b3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Apr 14 21:43:54 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Apr 14 21:43:56 2010 +0930"
      },
      "message": "lguest: stop using KVM hypercall mechanism\n\nThis is a partial revert of 4cd8b5e2a159 \"lguest: use KVM hypercalls\";\nwe revert to using (just as questionable but more reliable) int $15 for\nhypercalls.  I didn\u0027t revert the register mapping, so we still use the\nsame calling convention as kvm.\n\nKVM in more recent incarnations stopped injecting a fault when a guest\ntried to use the VMCALL instruction from ring 1, so lguest under kvm\nfails to make hypercalls.  It was nice to share code with our KVM\ncousins, but this was overreach.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Matias Zabaljauregui \u003czabaljauregui@gmail.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "5094aeafbbd500509f648e3cd102b053bc7926b3",
      "tree": "8effa3dcde7c1b34ced9f09c7964acbcd8eb49f1",
      "parents": [
        "2ba3abd8186f24c7fb418927025b4e2120e3a362"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Apr 14 21:43:53 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Apr 14 21:43:54 2010 +0930"
      },
      "message": "lguest: workaround cmpxchg8b_emu by ignoring cli in the guest.\n\nIt\u0027s only used by cmpxchg8b_emu (see db677ffa5f5a for the gory\ndetails), and fixing that to be paravirt aware would be more work than\nsimply ignoring it (and AFAICT only help lguest).  This makes lguest\nwork on machines which have cmpxchg8b, for kernels compiled for older\nprocessors.\n\n(We can\u0027t emulate it properly: the popf which expects to restore interrupts\ndoes not trap).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: virtualization@lists.osdl.org\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "3e27249c84beed1c79d767b350e52ad038db9053",
      "tree": "56fbbd5e952c4b01649c5b4f84dc7ce135cdc6ee",
      "parents": [
        "741f21e811752b440c505bf0149c4d16e9f3160d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jan 04 19:26:14 2010 +1030"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 04 12:33:33 2010 -0800"
      },
      "message": "lguest: fix bug in setting guest GDT entry\n\nWe kill the guest, but then we blatt random stuff.\n\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0316554d3586cbea60592a41391b5def2553d6f",
      "tree": "5e7418f0bacbc68cec5dfd1541e03eb56870aa02",
      "parents": [
        "fb0bbb92d42d5bd0ab224605444efdfed06d6934",
        "51e99be00ce2713cbb841cedc997cafa6e26c7f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (34 commits)\n  m68k: rename global variable vmalloc_end to m68k_vmalloc_end\n  percpu: add missing per_cpu_ptr_to_phys() definition for UP\n  percpu: Fix kdump failure if booted with percpu_alloc\u003dpage\n  percpu: make misc percpu symbols unique\n  percpu: make percpu symbols in ia64 unique\n  percpu: make percpu symbols in powerpc unique\n  percpu: make percpu symbols in x86 unique\n  percpu: make percpu symbols in xen unique\n  percpu: make percpu symbols in cpufreq unique\n  percpu: make percpu symbols in oprofile unique\n  percpu: make percpu symbols in tracer unique\n  percpu: make percpu symbols under kernel/ and mm/ unique\n  percpu: remove some sparse warnings\n  percpu: make alloc_percpu() handle array types\n  vmalloc: fix use of non-existent percpu variable in put_cpu_var()\n  this_cpu: Use this_cpu_xx in trace_functions_graph.c\n  this_cpu: Use this_cpu_xx for ftrace\n  this_cpu: Use this_cpu_xx in nmi handling\n  this_cpu: Use this_cpu operations in RCU\n  this_cpu: Use this_cpu ops for VM statistics\n  ...\n\nFix up trivial (famous last words) global per-cpu naming conflicts in\n\tarch/x86/kvm/svm.c\n\tmm/slab.c\n"
    },
    {
      "commit": "390dfd95c5df1ab3921dd388d11b2aee332c3f2c",
      "tree": "8d12e22961716a0137b9e41ed00e2521b88fecce",
      "parents": [
        "877105cc49f6e6ad32e3d63a214e8f537c0339ef"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 29 22:34:14 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 29 22:34:14 2009 +0900"
      },
      "message": "percpu: make misc percpu symbols unique\n\nThis patch updates misc percpu related symbols such that percpu\nsymbols are unique and don\u0027t clash with local symbols.  This serves\ntwo purposes of decreasing the possibility of global percpu symbol\ncollision and allowing dropping per_cpu__ prefix from percpu symbols.\n\n* drivers/crypto/padlock-aes.c: s/last_cword/paes_last_cword/\n\n* drivers/lguest/x86/core.c: s/last_cpu/lg_last_cpu/\n\n* drivers/s390/net/netiucv.c: rename the variable used in a macro to\n  avoid clashing with percpu symbol\n\n* arch/mn10300/kernel/kprobes.c: replace current_ prefix with cur_ for\n  static variables.  Please note that percpu symbol current_kprobe\n  can\u0027t be changed as it\u0027s used by generic code.\n\nPartly based on Rusty Russell\u0027s \"alloc_percpu: rename percpu vars\nwhich cause name clashes\" patch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Chuck Ebbert \u003ccebbert@redhat.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Koichi Yasutake \u003cyasutake.koichi@jp.panasonic.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: linux390@de.ibm.com\n"
    },
    {
      "commit": "d43c36dc6b357fa1806800f18aa30123c747a6d1",
      "tree": "339ce510073ecbe9b3592008f7dece7b277035ef",
      "parents": [
        "69585dd69e663a40729492c7b52eb82477a2027a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 07 17:09:06 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 11 11:20:58 2009 -0700"
      },
      "message": "headers: remove sched.h from interrupt.h\n\nAfter m68k\u0027s task_thread_info() doesn\u0027t refer to current,\nit\u0027s possible to remove sched.h from interrupt.h and not break m68k!\nMany thanks to Heiko Carstens for allowing this.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "828c09509b9695271bcbdc53e9fc9a6a737148d2",
      "tree": "072ffad6f02db7bf4095e07e2b90247cfa042998",
      "parents": [
        "1c4115e595dec42aa0e81ba47ef46e35b34ed428"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 01 15:43:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 01 16:11:11 2009 -0700"
      },
      "message": "const: constify remaining file_operations\n\n[akpm@linux-foundation.org: fix KVM]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f0918d03ff4b5c94540c71ce889672abdbc2f4a",
      "tree": "ecee710444fb3405da55933501e339e10e4ac880",
      "parents": [
        "4266c97a3ef4604561a22212eb0eab8a3c338971",
        "ca60a42c9be41c07ebcc2ec8c43dd1be53f147bf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:23:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:23:45 2009 -0700"
      },
      "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:\n  lguest: don\u0027t force VIRTIO_F_NOTIFY_ON_EMPTY\n  lguest: cleanup for map_switcher()\n  lguest: use PGDIR_SHIFT for PAE code to allow different PAGE_OFFSET\n  lguest: use set_pte/set_pmd uniformly for real page table entries\n  lguest: move panic notifier registration to its expected place.\n  virtio_blk: add support for cache flush\n  virtio: add virtio IDs file\n  virtio: get rid of redundant VIRTIO_ID_9P definition\n  virtio: make add_buf return capacity remaining\n  virtio_pci: minor MSI-X cleanups\n"
    },
    {
      "commit": "6c189d8312246af776c2587c233d6afcf3714438",
      "tree": "4d1667bf0129d412c9101c48719a9f272880b45b",
      "parents": [
        "fb100d78c04ff6053047625d0368d0d4b1d9912a"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Wed Aug 05 17:42:37 2009 +0800"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Sep 23 22:26:47 2009 +0930"
      },
      "message": "lguest: cleanup for map_switcher()\n\nWe can use alloc_page() instead of get_zeroed_page() and virt_to_page()\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "fb100d78c04ff6053047625d0368d0d4b1d9912a",
      "tree": "bd07302aed54c75cc5c64af2503b29a21014103c",
      "parents": [
        "4c1ea3dd718a1d93a726cb3e66665ac4170dcccd"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Sep 23 22:26:46 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Sep 23 22:26:46 2009 +0930"
      },
      "message": "lguest: use PGDIR_SHIFT for PAE code to allow different PAGE_OFFSET\n\nWe still assume the Guest and Host have the same PAGE_OFFSET settings,\nbut now we don\u0027t assume 0xC0000000.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Matias Zabaljauregui \u003czabaljauregui@gmail.com\u003e\n"
    },
    {
      "commit": "4c1ea3dd718a1d93a726cb3e66665ac4170dcccd",
      "tree": "fc20b6da34016e03faa914743eeaafe489e38443",
      "parents": [
        "cdae0ad5e8ea630017d4cad3923f763c4e6c3127"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Sep 23 22:26:45 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Sep 23 22:26:46 2009 +0930"
      },
      "message": "lguest: use set_pte/set_pmd uniformly for real page table entries\n\nIf we\u0027re building a pte, we can use simple assigment; only use set_pte\netc. when we\u0027re actually going to use that destination as a PTE.  I\ndon\u0027t know that we\u0027ll ever run under Xen, but it\u0027s neater.\n\nAnd use set_pte/set_pmd rather than assuming native_ versions, even\nthough that\u0027s probably true for most people.\n\n(Includes compile fix by Kamalesh Babulal \u003ckamalesh@linux.vnet.ibm.com\u003e)\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Matias Zabaljauregui \u003czabaljauregui@gmail.com\u003e\nCc: Kamalesh Babulal \u003ckamalesh@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "fd589a8f0a13f53a2dd580b1fe170633cf6b095f",
      "tree": "942c50188ca58041b0453189e710eafcfebaea57",
      "parents": [
        "4f37940d64a155c025968118849b596f6aaa8128"
      ],
      "author": {
        "name": "Anand Gadiyar",
        "email": "gadiyar@ti.com",
        "time": "Thu Jul 16 17:13:03 2009 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Sep 21 15:14:55 2009 +0200"
      },
      "message": "trivial: fix typo \"to to\" in multiple files\n\nSigned-off-by: Anand Gadiyar \u003cgadiyar@ti.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "1842f23c05b6a866be831aa60bc8a8731c58ddd0",
      "tree": "8047f21d149b3958b5c4278c1a5601ddce9e0e4b",
      "parents": [
        "a91d74a3c4de8115295ee87350c13a329164aaaf"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 30 16:03:46 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 30 16:03:46 2009 +0930"
      },
      "message": "lguest and virtio: cleanup struct definitions to Linux style.\n\nI\u0027ve been doing this for years, and akpm picked me up on it about 12\nmonths ago.  lguest partly serves as example code, so let\u0027s do it Right.\n\nAlso, remove two unused fields in struct vblk_info in the example launcher.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\n"
    },
    {
      "commit": "a91d74a3c4de8115295ee87350c13a329164aaaf",
      "tree": "02c862fccc9abedf7fc354061e69c4b5fbcce06d",
      "parents": [
        "2e04ef76916d1e29a077ea9d0f2003c8fd86724d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 30 16:03:45 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 30 16:03:46 2009 +0930"
      },
      "message": "lguest: update commentry\n\nEvery so often, after code shuffles, I need to go through and unbitrot\nthe Lguest Journey (see drivers/lguest/README).  Since we now use RCU in\na simple form in one place I took the opportunity to expand that explanation.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Paul McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "2e04ef76916d1e29a077ea9d0f2003c8fd86724d",
      "tree": "2ff8d625d6e467be9f9f1b67a3674cb6e125e970",
      "parents": [
        "e969fed542cae08cb11d666efac4f7c5d624d09f"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 30 16:03:45 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 30 16:03:45 2009 +0930"
      },
      "message": "lguest: fix comment style\n\nI don\u0027t really notice it (except to begrudge the extra vertical\nspace), but Ingo does.  And he pointed out that one excuse of lguest\nis as a teaching tool, it should set a good example.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\n"
    },
    {
      "commit": "f294526279cda8934b0313ebd02184a16ba888c9",
      "tree": "a89b108800b8f8cdcf6a6eae4f69bb10df3ac79c",
      "parents": [
        "658874f05d040ca96eb5ba9b1c30ce0ff287d762"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sun Jul 19 14:46:09 2009 +0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 30 16:03:43 2009 +0930"
      },
      "message": "lguest: dereferencing freed mem in add_eventfd()\n\n\"new\" was freed and then dereferenced.  Also the return value wasn\u0027t being\nused so I modified the caller as well.\n\nCompile tested only.  Found by smatch (http://repo.or.cz/w/smatch.git).\n\nregards,\ndan carpenter\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "27de22d03d6808a82bbe9bd7e3cc75d60132ba9e",
      "tree": "e38eee58015f1d7abb5f5e08c445be08748c266e",
      "parents": [
        "5780888bcac316508eb5f4dd23bbea8b5057647c"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Fri Jul 17 21:47:44 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jul 17 21:47:44 2009 +0930"
      },
      "message": "lguest: remove unnecessary forward struct declaration\n\nWhile fixing lg.h to drop the fwd declaration, I noticed\nthere\u0027s another one ;)\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "133890103b9de08904f909995973e4b5c08a780e",
      "tree": "0cda85a58dafafa0a197cf1a789124203f1e7a88",
      "parents": [
        "f7c2df9b55212d5ec94169a4de11e44c683e0af4"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Tue Jun 30 11:41:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 30 18:55:58 2009 -0700"
      },
      "message": "eventfd: revised interface and cleanups\n\nChange the eventfd interface to de-couple the eventfd memory context, from\nthe file pointer instance.\n\nWithout such change, there is no clean way to racely free handle the\nPOLLHUP event sent when the last instance of the file* goes away.  Also,\nnow the internal eventfd APIs are using the eventfd context instead of the\nfile*.\n\nThis patch is required by KVM\u0027s IRQfd code, which is still under\ndevelopment.\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Gregory Haskins \u003cghaskins@novell.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f3591cfacf2d79c4f42238e46c7d053da8e020d",
      "tree": "f2e9ed7b6b0bc176facaa49846734790023a6b16",
      "parents": [
        "16ffc3eeaa00d513b0076b7b2b96419f28acc912",
        "d1f0132e76a11b05167313c606a853953f416081"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:32:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:32:26 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-lguest\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-lguest: (31 commits)\n  lguest: add support for indirect ring entries\n  lguest: suppress notifications in example Launcher\n  lguest: try to batch interrupts on network receive\n  lguest: avoid sending interrupts to Guest when no activity occurs.\n  lguest: implement deferred interrupts in example Launcher\n  lguest: remove obsolete LHREQ_BREAK call\n  lguest: have example Launcher service all devices in separate threads\n  lguest: use eventfds for device notification\n  eventfd: export eventfd_signal and eventfd_fget for lguest\n  lguest: allow any process to send interrupts\n  lguest: PAE fixes\n  lguest: PAE support\n  lguest: Add support for kvm_hypercall4()\n  lguest: replace hypercall name LHCALL_SET_PMD with LHCALL_SET_PGD\n  lguest: use native_set_* macros, which properly handle 64-bit entries when PAE is activated\n  lguest: map switcher with executable page table entries\n  lguest: fix writev returning short on console output\n  lguest: clean up length-used value in example launcher\n  lguest: Segment selectors are 16-bit long. Fix lg_cpu.ss1 definition.\n  lguest: beyond ARRAY_SIZE of cpu-\u003earch.gdt\n  ...\n"
    },
    {
      "commit": "5dac051bc6030963181b69faddd9e0ad04f85fa8",
      "tree": "4a0456e1d971bbe9f68f4ac13d31716c12fbb618",
      "parents": [
        "659a0e6633567246edcb7bd400c7e2bece9237d9"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:10 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:11 2009 +0930"
      },
      "message": "lguest: remove obsolete LHREQ_BREAK call\n\nWe no longer need an efficient mechanism to force the Guest back into\nhost userspace, as each device is serviced without bothering the main\nGuest process (aka. the Launcher).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "df60aeef4f4fe0645d9a195a7689005520422de5",
      "tree": "3cfa3c4a986436c8accd5f0a57d5a6f70f1b7965",
      "parents": [
        "5718607bb670c721f45f0dbb1cc7d6c64969aab1"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:09 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:10 2009 +0930"
      },
      "message": "lguest: use eventfds for device notification\n\nCurrently, when a Guest wants to perform I/O it calls LHCALL_NOTIFY with\nan address: the main Launcher process returns with this address, and figures\nout what device to run.\n\nA far nicer model is to let processes bind an eventfd to an address: if we\nfind one, we simply signal the eventfd.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\n"
    },
    {
      "commit": "9f155a9b3d5a5444bcc5e049ec2547bb5107150e",
      "tree": "ef8fe2d5a319abb3bb1c89374f9d2fef1b0881c3",
      "parents": [
        "92b4d8df8436cdd74d22a2a5b6b23b9abc737a3e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:08 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:09 2009 +0930"
      },
      "message": "lguest: allow any process to send interrupts\n\nWe currently only allow the Launcher process to send interrupts, but it\nas we already send interrupts from the hrtimer, it\u0027s a simple matter of\nextracting that code into a common set_interrupt routine.\n\nAs we switch to a thread per virtqueue, this avoids a bottleneck through the\nmain Launcher process.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "92b4d8df8436cdd74d22a2a5b6b23b9abc737a3e",
      "tree": "bba0dce08d1fde432f370b7ef2845e0ae195a34d",
      "parents": [
        "acdd0b6292b282c4511897ac2691a47befbf1c6a"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:08 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:08 2009 +0930"
      },
      "message": "lguest: PAE fixes\n\n1) j wasn\u0027t initialized in setup_pagetables, so they weren\u0027t set up for me\n   causing immediate guest crashes.\n\n2) gpte_addr should not re-read the pmd from the Guest.  Especially\n   not BUG_ON() based on the value.  If we ever supported SMP guests,\n   they could trigger that.  And the Launcher could also trigger it\n   (tho currently root-only).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "acdd0b6292b282c4511897ac2691a47befbf1c6a",
      "tree": "1bfcfc32b11d35e99fec5bbf52b19d6ee038f25e",
      "parents": [
        "cefcad1773197523e11e18b669f245e6a8d32058"
      ],
      "author": {
        "name": "Matias Zabaljauregui",
        "email": "zabaljauregui@gmail.com",
        "time": "Fri Jun 12 22:27:07 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:08 2009 +0930"
      },
      "message": "lguest: PAE support\n\nThis version requires that host and guest have the same PAE status.\nNX cap is not offered to the guest, yet.\n\nSigned-off-by: Matias Zabaljauregui \u003czabaljauregui@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ebe0ba84f55950a89cb7af94c7ffc35ee3992f9e",
      "tree": "df1c3373274846b4998ea75c56f347a264b2c8ad",
      "parents": [
        "90603d15fa95605d1d08235b73e220d766f04bb0"
      ],
      "author": {
        "name": "Matias Zabaljauregui",
        "email": "zabaljauregui@gmail.com",
        "time": "Sat May 30 15:48:08 2009 -0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:07 2009 +0930"
      },
      "message": "lguest: replace hypercall name LHCALL_SET_PMD with LHCALL_SET_PGD\n\nreplace LHCALL_SET_PMD with LHCALL_SET_PGD hypercall name\n(That\u0027s really what it is, and the confusion gets worse with PAE support)\n\nSigned-off-by: Matias Zabaljauregui \u003czabaljauregui@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReported-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\n"
    },
    {
      "commit": "90603d15fa95605d1d08235b73e220d766f04bb0",
      "tree": "669b5a41ebdb368e578898409d8a48021074746a",
      "parents": [
        "ed1dc77810159a733240ba6751c1b31023bf8dd7"
      ],
      "author": {
        "name": "Matias Zabaljauregui",
        "email": "zabaljauregui@gmail.com",
        "time": "Fri Jun 12 22:27:06 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:06 2009 +0930"
      },
      "message": "lguest: use native_set_* macros, which properly handle 64-bit entries when PAE is activated\n\nSome cleanups and replace direct assignment with native_set_* macros which properly handle 64-bit entries when PAE is activated\n\nSigned-off-by: Matias Zabaljauregui \u003czabaljauregui@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ed1dc77810159a733240ba6751c1b31023bf8dd7",
      "tree": "d77ed52cd56e2cf3f5eac9d5db22ad1196e694d8",
      "parents": [
        "7b5c806c35f6ff76b2e36a8b5b1513c8a83fcff7"
      ],
      "author": {
        "name": "Matias Zabaljauregui",
        "email": "zabaljauregui@gmail.com",
        "time": "Sat May 30 15:35:49 2009 -0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:06 2009 +0930"
      },
      "message": "lguest: map switcher with executable page table entries\n\nMap switcher with executable page table entries.\n(This bug didn\u0027t matter before PAE and hence NX support -- RR)\n\nSigned-off-by: Matias Zabaljauregui \u003czabaljauregui@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "f086122bb6e885f926f935b1418fca3b293375f0",
      "tree": "21f14d50489380e609ecffb61cdc4f5b2f624694",
      "parents": [
        "81b79b01d057f8c5a378c38d2f738775b972934a"
      ],
      "author": {
        "name": "Matias Zabaljauregui",
        "email": "zabaljauregui@gmail.com",
        "time": "Fri Jun 12 22:27:04 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:04 2009 +0930"
      },
      "message": "lguest: Segment selectors are 16-bit long. Fix lg_cpu.ss1 definition.\n\nIf GDT_ENTRIES were every \u003e 256, this could become a problem.\n\nSigned-off-by: Matias Zabaljauregui \u003czabaljauregui at gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "81b79b01d057f8c5a378c38d2f738775b972934a",
      "tree": "0e2c295109568916e187a65e6d93a3319bbb51a9",
      "parents": [
        "2644f17d6c932929fd68cfec95691490947e0fd1"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Wed May 20 01:45:45 2009 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:04 2009 +0930"
      },
      "message": "lguest: beyond ARRAY_SIZE of cpu-\u003earch.gdt\n\nDo not go beyond ARRAY_SIZE of cpu-\u003earch.gdt\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "a32a8813d0173163ba44d8f9556e0d89fdc4fb46",
      "tree": "fddb6742338047d0219e8c2536cd39b04e643b16",
      "parents": [
        "abd41f037e1a64543000ed73b42f616d04d92700"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:02 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:03 2009 +0930"
      },
      "message": "lguest: improve interrupt handling, speed up stream networking\n\nlguest never checked for pending interrupts when enabling interrupts, and\nthings still worked.  However, it makes a significant difference to TCP\nperformance, so it\u0027s time we fixed it by introducing a pending_irq flag\nand checking it on irq_restore and irq_enable.\n\nThese two routines are now too big to patch into the 8/10 bytes\npatch space, so we drop that code.\n\nNote: The high latency on interrupt delivery had a very curious\neffect: once everything else was optimized, networking without GSO was\nfaster than networking with GSO, since more interrupts were sent and\nhence a greater chance of one getting through to the Guest!\n\nNote2: (Almost) Closing the same loophole for iret doesn\u0027t have any\nmeasurable effect, so I\u0027m leaving that patch for the moment.\n\nBefore:\n\t1GB tcpblast Guest-\u003eHost:\t\t30.7 seconds\n\t1GB tcpblast Guest-\u003eHost (no GSO):\t76.0 seconds\n\nAfter:\n\t1GB tcpblast Guest-\u003eHost:\t\t6.8 seconds\n\t1GB tcpblast Guest-\u003eHost (no GSO):\t27.8 seconds\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "abd41f037e1a64543000ed73b42f616d04d92700",
      "tree": "d9013e66f4d8fc66fc92ce0587f8d126e156b253",
      "parents": [
        "ebf9a5a99c1a464afe0b4dfa64416fc8b273bc5c"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:02 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:02 2009 +0930"
      },
      "message": "lguest: fix race in halt code\n\nWhen the Guest does the LHCALL_HALT hypercall, we go to sleep, expecting\nthat a timer or the Waker will wake_up_process() us.\n\nBut we do it in a stupid way, leaving a classic missing wakeup race.\n\nSo split maybe_do_interrupt() into interrupt_pending() and\ntry_deliver_interrupt(), and check maybe_do_interrupt() and the\n\"break_out\" flag before calling schedule.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "a6c372de6e4b9a8188b66badcee3e3792eccdd26",
      "tree": "b6b67f4cc447cc0ee8ae617bb503ef7d7f6e4958",
      "parents": [
        "b43e352139f51216a8c56b0bd5fc3d4e05c65619"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:01 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:01 2009 +0930"
      },
      "message": "lguest: fix lguest wake on guest clock tick, or fd activity\n\nThe Launcher could be inside the Guest on another CPU; wake_up_process\nwill do nothing because it is \"running\".  kick_process will knock it\nback into our kernel in this case, otherwise we\u0027ll miss it until the\nnext guest exit.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d2a7ddda9ffb1c8961abff6714b0f1eb925c120f",
      "tree": "1090884fd260d042255255467367e4e6b6193e5d",
      "parents": [
        "9499f5e7ed5224c40706f0cec6542a9916bc7606"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Fri Jun 12 22:16:36 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:16:36 2009 +0930"
      },
      "message": "virtio: find_vqs/del_vqs virtio operations\n\nThis replaces find_vq/del_vq with find_vqs/del_vqs virtio operations,\nand updates all drivers. This is needed for MSI support, because MSI\nneeds to know the total number of vectors upfront.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (+ lguest/9p compile fixes)\n"
    },
    {
      "commit": "9499f5e7ed5224c40706f0cec6542a9916bc7606",
      "tree": "3e4e1b36d3d549ea356e88e6e44359a887c6ee01",
      "parents": [
        "ef688e151c00e5d529703be9a04fd506df8bc54e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:16:35 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:16:36 2009 +0930"
      },
      "message": "virtio: add names to virtqueue struct, mapping from devices to queues.\n\nAdd a linked list of all virtqueues for a virtio device: this helps for\ndebugging and is also needed for upcoming interface change.\n\nAlso, add a \"name\" field for clearer debug messages.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "564346224daaa8f7222d7a92cdbb7bafde59ae6e",
      "tree": "d91ddfa810c3d9aaf3b33f00d7ae80bd541b1f4b",
      "parents": [
        "ab2b7ebaad16226c9a5e85c5f384d19fa58a7459"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue May 26 20:54:41 2009 +0930"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 26 12:13:11 2009 -0700"
      },
      "message": "lguest: fix on Intel when KVM loaded (unhandled trap 13)\n\nWhen KVM is loaded, and hence VT set up, the vmcall instruction in an\nlguest guest causes a #GP, not #UD.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a489f0b555b753f9df8ddc24c7e74f657ef7ee7b",
      "tree": "560bd8c56524b658eb0b46e03ef42e262eb5f9b7",
      "parents": [
        "88df781afb788fa588dbf2e77f205214022a8893"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sun Apr 19 23:14:00 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sun Apr 19 23:14:01 2009 +0930"
      },
      "message": "lguest: fix guest crash on non-linear addresses in gdt pvops\n\nFixes guest crash \u0027lguest: bad read address 0x4800000 len 256\u0027\n\nThe new per-cpu allocator ends up handing a non-linear address to\nwrite_gdt_entry.  We do __pa() on it, and hand it to the host, which\nkills us.\n\nI\u0027ve long wanted to make the hypercall \"LOAD_GDT_ENTRY\" to match the IDT\ncode, but had no pressing reason until now.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: lguest@ozlabs.org\n"
    },
    {
      "commit": "88df781afb788fa588dbf2e77f205214022a8893",
      "tree": "b73e2b470a959e60fb5332737c1fca04bb629ba7",
      "parents": [
        "ff54250a0ebab7f90a5f848a0ba63f999830c872"
      ],
      "author": {
        "name": "Matias Zabaljauregui",
        "email": "zabaljauregui@gmail.com",
        "time": "Wed Apr 08 17:58:39 2009 -0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sun Apr 19 23:14:00 2009 +0930"
      },
      "message": "lguest: fix crash on vmlinux images\n\nTypical message: \u0027lguest: unhandled trap 6 at 0x418726 (0x0)\u0027\n\nvmlinux guests were broken by 4cd8b5e2a159f18a1507f1187b44a1acbfa6341b\n\u0027lguest: use KVM hypercalls\u0027, which rewrites guest text from kvm hypercalls\nto trap 31.\n\nThe Launcher mmaps the kernel image.  The Guest executes and\nimmediately faults in the first text page (read-only).  Then it hits a\nhypercall, and we rewrite that hypercall, causing a copy-on-write.\nBut the Guest pagetables still refer to the old page: we fault again,\nbut as Host we see the hypercall already rewritten, and pass the fault\nback to the Guest.  The Guest hasn\u0027t set up an IDT yet, so we kill it.\n\nThis doesn\u0027t happen with bzImages: they unpack themselves and so the\ntext pages are already read-write.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nTested-by: Patrick McHardy \u003ckaber@trash.net\u003e\n"
    },
    {
      "commit": "df1693abc42e34bbc4351e179dbe66c28a94efb8",
      "tree": "b0cec44a3ace1fbc8377c73428daf64848b48907",
      "parents": [
        "4cd8b5e2a159f18a1507f1187b44a1acbfa6341b"
      ],
      "author": {
        "name": "Matias Zabaljauregui",
        "email": "zabaljauregui@gmail.com",
        "time": "Wed Mar 18 13:38:35 2009 -0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 21:55:25 2009 +1030"
      },
      "message": "lguest: use bool instead of int\n\nImpact: clean up\n\nRusty told me, some time ago, that he had become a fan of \"bool\".\nSo, here are some replacements.\n\nSigned-off-by: Matias Zabaljauregui \u003czabaljauregui at gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "4cd8b5e2a159f18a1507f1187b44a1acbfa6341b",
      "tree": "8a774c377e2c798e119af4b3664453c6f0d1d94d",
      "parents": [
        "b7ff99ea53cd16de8f6166c0e98f19a7c6ca67ee"
      ],
      "author": {
        "name": "Matias Zabaljauregui",
        "email": "zabaljauregui@gmail.com",
        "time": "Sat Mar 14 13:37:52 2009 -0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 21:55:24 2009 +1030"
      },
      "message": "lguest: use KVM hypercalls\n\nImpact: cleanup\n\nThis patch allow us to use KVM hypercalls\n\nSigned-off-by: Matias Zabaljauregui \u003czabaljauregui at gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "6afbdd059c27330eccbd85943354f94c2b83a7fe",
      "tree": "5b3becb10a07e84c5fedda8c562f5637c091cc04",
      "parents": [
        "c5f841f1780dad7efb7eca092f60742d47f47d25"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 21:55:23 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 21:55:23 2009 +1030"
      },
      "message": "lguest: fix spurious BUG_ON() on invalid guest stack.\n\nImpact: fix crash on misbehaving guest\n\ngpte_addr() contains a BUG_ON(), insisting that the present flag is\nset.  We need to return before we call it if that isn\u0027t the case.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "6e15cf04860074ad032e88c306bea656bbdd0f22",
      "tree": "c346383bb7563e8d66b2f4a502f875b259c34870",
      "parents": [
        "be0ea69674ed95e1e98cb3687a241badc756d228",
        "60db56422043aaa455ac7f858ce23c273220f9d9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 26 21:39:17 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 27 17:28:43 2009 +0100"
      },
      "message": "Merge branch \u0027core/percpu\u0027 into percpu-cpumask-x86-for-linus-2\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n\tarch/x86/include/asm/fixmap_64.h\n\tarch/x86/include/asm/setup.h\n\tkernel/irq/handle.c\n\nSemantic merge:\n        arch/x86/include/asm/fixmap.h\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6db6a5f3ae2ca6b874b0fd97ae16fdc9b5cdd6cc",
      "tree": "567ab7d3593f6ab63fecfb8c9797fb4efda67ea7",
      "parents": [
        "cbd88c8e6f5cdb8d4b9af01df825305200240382"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 09 10:06:28 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 09 10:06:29 2009 +1030"
      },
      "message": "lguest: fix for CONFIG_SPARSE_IRQ\u003dy\n\nImpact: remove lots of lguest boot WARN_ON() when CONFIG_SPARSE_IRQ\u003dy\n\nWe now need to call irq_to_desc_alloc_cpu() before\nset_irq_chip_and_handler_name(), but we can\u0027t do that from init_IRQ (no\nkmalloc available).\n\nSo do it as we use interrupts instead.  Also means we only alloc for\nirqs we use, which was the intent of CONFIG_SPARSE_IRQ anyway.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\n"
    },
    {
      "commit": "965c7ecaf2e2b083d711a01ab33735a4bdeee1a4",
      "tree": "b83609b1b39195df4711114b520c3dde5c37ea2e",
      "parents": [
        "8425091ff8af2addae118fc510a523b84ce51115"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 22 23:19:12 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 23 00:54:01 2009 +0100"
      },
      "message": "x86: remove the Voyager 32-bit subarch\n\nImpact: remove unused/broken code\n\nThe Voyager subarch last built successfully on the v2.6.26 kernel\nand has been stale since then and does not build on the v2.6.27,\nv2.6.28 and v2.6.29-rc5 kernels.\n\nNo actual users beyond the maintainer reported this breakage.\nPatches were sent and most of the fixes were accepted but the\ndiscussion around how to do a few remaining issues cleanly\nfizzled out with no resolution and the code remained broken.\n\nIn the v2.6.30 x86 tree development cycle 32-bit subarch support\nhas been reworked and removed - and the Voyager code, beyond the\nbuild problems already known, needs serious and significant\nchanges and probably a rewrite to support it.\n\nCONFIG_X86_VOYAGER has been marked BROKEN then. The maintainer has\nbeen notified but no patches have been sent so far to fix it.\n\nWhile all other subarchs have been converted to the new scheme,\nvoyager is still broken. We\u0027d prefer to receive patches which\nclean up the current situation in a constructive way, but even in\ncase of removal there is no obstacle to add that support back\nafter the issues have been sorted out in a mutually acceptable\nfashion.\n\nSo remove this inactive code for now.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "05dfdbbd678ea2b642db73f48b75667a23d15484",
      "tree": "63d4cbf36a1fdf11e77008bd169d02446469cc8b",
      "parents": [
        "b44d49ab0954accefba4c71274ab58abe1c25c52"
      ],
      "author": {
        "name": "Mark Wallis",
        "email": "mwallis@serialmonkey.com",
        "time": "Mon Jan 26 17:32:35 2009 +1100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jan 30 11:34:11 2009 +1030"
      },
      "message": "lguest: Fix a memory leak with the lg object during launcher close\n\nFix a memory leak identified by Rusty Russell during LCA09 by\nkfree\u0027ing the lg object instead of just clearing it when the\nlauncher closes.\n\nSigned-off-by: Mark Wallis \u003cmwallis@serialmonkey.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "72410af921cbc9018da388ca1ddf75880a033ac1",
      "tree": "982abebfcf114149c9ba81bb468a0dd3adf0376b",
      "parents": [
        "18e352e4a73465349711a9324767e1b2453383e2"
      ],
      "author": {
        "name": "Atsushi SAKAI",
        "email": "sakaia@jp.fujitsu.com",
        "time": "Fri Jan 16 20:39:14 2009 +0900"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jan 30 11:34:10 2009 +1030"
      },
      "message": "lguest: typos fix\n\n3 points\n\nlguest_asm.S \u003d\u003e i386_head.S\nLHCALL_BREAK \u003d\u003e LHREQ_BREAK\nperferred    \u003d\u003e preferred\n\nSigned-off-by: Atsushi SAKAI \u003csakaia@jp.fujitsu.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ff8561c4ad09ca38c866436c9d67df2309b7dd40",
      "tree": "7cc96a3fcaf43b1e34dfcffd4d936edf9b596a6a",
      "parents": [
        "63d12556703f17817a46e140704360b29b851bad"
      ],
      "author": {
        "name": "Mark McLoughlin",
        "email": "markmc@redhat.com",
        "time": "Mon Dec 15 12:58:28 2008 +0000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 06 10:44:34 2009 -0800"
      },
      "message": "lguest: do not statically allocate root device\n\nWe shouldn\u0027t be statically allocating the root device object,\nso dynamically allocate it using root_device_register()\ninstead.\n\nSigned-off-by: Mark McLoughlin \u003cmarkmc@redhat.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "b840d79631c882786925303c2b0f4fefc31845ed",
      "tree": "cda60a95d4507fe1321fc285af38982d7eb9693b",
      "parents": [
        "597b0d21626da4e6f09f132442caf0cc2b0eb47c",
        "c3d80000e3a812fe5a200d6bde755fbd7fa65481"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 02 11:44:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 02 11:44:09 2009 -0800"
      },
      "message": "Merge branch \u0027cpus4096-for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027cpus4096-for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (66 commits)\n  x86: export vector_used_by_percpu_irq\n  x86: use logical apicid in x2apic_cluster\u0027s x2apic_cpu_mask_to_apicid_and()\n  sched: nominate preferred wakeup cpu, fix\n  x86: fix lguest used_vectors breakage, -v2\n  x86: fix warning in arch/x86/kernel/io_apic.c\n  sched: fix warning in kernel/sched.c\n  sched: move test_sd_parent() to an SMP section of sched.h\n  sched: add SD_BALANCE_NEWIDLE at MC and CPU level for sched_mc\u003e0\n  sched: activate active load balancing in new idle cpus\n  sched: bias task wakeups to preferred semi-idle packages\n  sched: nominate preferred wakeup cpu\n  sched: favour lower logical cpu number for sched_mc balance\n  sched: framework for sched_mc/smt_power_savings\u003dN\n  sched: convert BALANCE_FOR_xx_POWER to inline functions\n  x86: use possible_cpus\u003dNUM to extend the possible cpus allowed\n  x86: fix cpu_mask_to_apicid_and to include cpu_online_mask\n  x86: update io_apic.c to the new cpumask code\n  x86: Introduce topology_core_cpumask()/topology_thread_cpumask()\n  x86: xen: use smp_call_function_many()\n  x86: use work_on_cpu in x86/kernel/cpu/mcheck/mce_amd_64.c\n  ...\n\nFixed up trivial conflict in kernel/time/tick-sched.c manually\n"
    },
    {
      "commit": "bda53cd510b6777ced652ba279020bb7b414b744",
      "tree": "799b1ec6d9b8be1cdeb4f41789101c3944427e9c",
      "parents": [
        "58a24566449892dda409b9ad92c2e56c76c5670c"
      ],
      "author": {
        "name": "Mark McLoughlin",
        "email": "markmc@redhat.com",
        "time": "Wed Dec 10 17:45:39 2008 +0000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:26:12 2008 +1030"
      },
      "message": "lguest: struct device - replace bus_id with dev_name()\n\nbus_id is gradually being removed, so use dev_name() instead.\n\nSigned-off-by: Mark McLoughlin \u003cmarkmc@redhat.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "58a24566449892dda409b9ad92c2e56c76c5670c",
      "tree": "4dfe2305dfd078c71d949ea8cc6c9cc6e2679494",
      "parents": [
        "be3c5832d51174ef7f21cefd6ad612dabdcb62fd"
      ],
      "author": {
        "name": "Matias Zabaljauregui",
        "email": "zabaljauregui@gmail.com",
        "time": "Mon Sep 29 01:40:07 2008 -0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:26:11 2008 +1030"
      },
      "message": "lguest: move the initial guest page table creation code to the host\n\nThis patch moves the initial guest page table creation code to the host,\nso the launcher keeps working with PAE enabled configs.\n\nSigned-off-by: Matias Zabaljauregui \u003czabaljauregui@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "87c7d57c17ade5024d95b6ca0da249da49b0672a",
      "tree": "2ffeaae5c2e5ed9a72efec6466678fb797c4cdfa",
      "parents": [
        "db40598863e8cbbd11053ad3c8bae89000f603f9"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:26:03 2008 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:26:03 2008 +1030"
      },
      "message": "virtio: hand virtio ring alignment as argument to vring_new_virtqueue\n\nThis allows each virtio user to hand in the alignment appropriate to\ntheir virtio_ring structures.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\n"
    },
    {
      "commit": "2966af73e70dee461c256b5eb877b2ff757f8c82",
      "tree": "5cb8a81e80cb9b513fad015f0dc4d5e5db52fd14",
      "parents": [
        "498af14783935af487d17dbee4ac451783cbc2b7"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:25:58 2008 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:26:02 2008 +1030"
      },
      "message": "virtio: use LGUEST_VRING_ALIGN instead of relying on pagesize\n\nThis doesn\u0027t really matter, since lguest is i386 only at the moment,\nbut we could actually choose a different value.  (lguest doesn\u0027t have\na guarenteed ABI).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b77b881f21b29aa7efa668fde69ee3dc0372ae3f",
      "tree": "a4039161e9bcab3e9c2fd2e2aa70fee16103857b",
      "parents": [
        "a7883dece6ef82097e6bdf19c1d0a20351e06056"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Fri Dec 19 15:23:44 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 23 22:37:28 2008 +0100"
      },
      "message": "x86: fix lguest used_vectors breakage, -v2\n\nImpact: fix lguest, clean up\n\n32-bit lguest used used_vectors to record vectors, but that model of\nallocating vectors changed and got broken, after we changed vector\nallocation to a per_cpu array.\n\nTry enable that for 64bit, and the array is used for all vectors that\nare not managed by vector_irq per_cpu array.\n\nAlso kill system_vectors[], that is now a duplication of the\nused_vectors bitmap.\n\n[ merged in cpus4096 due to io_apic.c cpumask changes. ]\n[ -v2, fix build failure ]\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1dc3e3bcbfe335843ec938bfdddb34d10f4dd278",
      "tree": "8666189f7a285c8e4c6512784dff39971fefa30c",
      "parents": [
        "bf2002967775cbb233876d51ff94e8daa7e77858"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Aug 26 00:19:27 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Aug 26 00:19:28 2008 +1000"
      },
      "message": "lguest: update commentry\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "71a3f4edc11b9dd7af28d003acbbd33496003da1",
      "tree": "b727812682ca9f30169496a30a1e51620f53c7c9",
      "parents": [
        "912985dce45ef18fcdd9f5439fef054e0e22302a"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Aug 12 17:52:53 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Aug 12 17:52:53 2008 +1000"
      },
      "message": "lguest: use get_user_pages_fast() instead of get_user_pages()\n\nUsing a simple page table thrashing program I measure a slight\nimprovement.  The program creates five processes.  Each touches 1000\npages then schedules the next process.  We repeat this 1000 times.  As\nlguest only caches 4 cr3 values, this rebuilds a lot of shadow page\ntables requiring virt-\u003ephys mappings.\n\n\tBefore: 5.93 seconds\n\tAfter: 5.40 seconds\n\n(Counts of slow vs fastpath in this usage are 6092 and 2852462 respectively.)\n\nAnd more importantly for lguest, the code is simpler.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "cf485e566bc4a8098680162e1cc2ac1dfbef8a3c",
      "tree": "89ce628400d628f779b0aedf16b7a033d63de6c5",
      "parents": [
        "28fd6d7f953711fbf67496701be05513052d967d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Jun 09 16:22:48 2008 -0700"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 29 09:58:34 2008 +1000"
      },
      "message": "lguest: use cpu capability accessors\n\nTo support my little make-x86-bitops-use-proper-typechecking projectlet.\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andrea Arcangeli \u003candrea@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "0a707210aa1b8ac40fe781b2a9d0b203b6ebb921",
      "tree": "66926aa4868bff6b78b13f3bdeb2a9e9a57bd20d",
      "parents": [
        "0c12091d82e48dc423fb1f51eb0062c557a084af"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Tue Jul 08 10:29:42 2008 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 29 09:58:32 2008 +1000"
      },
      "message": "lguest: fix switcher_page leak on unload\n\nmap_switcher allocates the array, unmap_switcher has to free it\naccordingly.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "0c12091d82e48dc423fb1f51eb0062c557a084af",
      "tree": "91579abdc22e7bf3784f9fcb59a0f018e7f5366d",
      "parents": [
        "5d006d8d09e82f086ca0baf79a2907f2c1e25af7"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 29 09:58:31 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 29 09:58:31 2008 +1000"
      },
      "message": "lguest: Guest int3 fix\n\nRon Minnich noticed that guest userspace gets a GPF when it tries to int3:\nwe need to copy the privilege level from the guest-supplied IDT to the real\nIDT.  int3 is the only common case where guest userspace expects to invoke\nan interrupt, so that\u0027s the symptom of failing to do this.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e34f87256794b87e7f4a8f1812538be7b7b5214c",
      "tree": "b91ffb6df4ac13ace269bef60ae16a1048b1fa73",
      "parents": [
        "c624896e488ba2bff5ae497782cfb265c8b00646"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jul 25 12:06:13 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jul 25 12:06:14 2008 +1000"
      },
      "message": "virtio: Add transport feature handling stub for virtio_ring.\n\nTo prepare for virtio_ring transport feature bits, hook in a call in\nall the users to manipulate them.  This currently just clears all the\nbits, since it doesn\u0027t understand any features.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "c624896e488ba2bff5ae497782cfb265c8b00646",
      "tree": "714145903ff8c889e9544e8366b2ee2a62234c0c",
      "parents": [
        "dd7c7bc46211785a1aa7d70feb15830f62682b3c"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jul 25 12:06:07 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jul 25 12:06:12 2008 +1000"
      },
      "message": "virtio: Rename set_features to finalize_features\n\nRather than explicitly handing the features to the lower-level, we just\nhand the virtio_device and have it set the features.  This make it clear\nthat it has the chance to manipulate the features of the device at this\npoint (and that all feature negotiation is already done).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "1a781a777b2f6ac46523fe92396215762ced624d",
      "tree": "4f34bb4aade85c0eb364b53d664ec7f6ab959006",
      "parents": [
        "b9d2252c1e44fa83a4e65fdc9eb93db6297c55af",
        "42a2f217a5e324ed5f2373ab1b7a0a15187c4d6c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 15 21:55:59 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 15 21:55:59 2008 +0200"
      },
      "message": "Merge branch \u0027generic-ipi\u0027 into generic-ipi-for-linus\n\nConflicts:\n\n\tarch/powerpc/Kconfig\n\tarch/s390/kernel/time.c\n\tarch/x86/kernel/apic_32.c\n\tarch/x86/kernel/cpu/perfctr-watchdog.c\n\tarch/x86/kernel/i8259_64.c\n\tarch/x86/kernel/ldt.c\n\tarch/x86/kernel/nmi_64.c\n\tarch/x86/kernel/smpboot.c\n\tarch/x86/xen/smp.c\n\tinclude/asm-x86/hw_irq_32.h\n\tinclude/asm-x86/hw_irq_64.h\n\tinclude/asm-x86/mach-default/irq_vectors.h\n\tinclude/asm-x86/mach-voyager/irq_vectors.h\n\tinclude/asm-x86/smp.h\n\tkernel/Makefile\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "15e551d25e5a600c76cb92171357d4cbe2d1bf7a",
      "tree": "8a28438fbed1aba7f57e2527b40c98452258b827",
      "parents": [
        "62fa572f6933038b3d79558812de88702bda176f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 10 17:02:10 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 10 18:55:47 2008 +0200"
      },
      "message": "x86, VisWS: turn into generic arch, eliminate Kconfig specials\n\nremove leftover traces of various VISWS related Kconfig specials.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "15c8b6c1aaaf1c4edd67e2f02e4d8e1bd1a51c0d",
      "tree": "3658f893c2f89ea0be4c6cc08aa11fa54476d0f4",
      "parents": [
        "8691e5a8f691cc2a4fda0651e8d307aaba0e7d68"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 09 09:39:44 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jun 26 11:24:38 2008 +0200"
      },
      "message": "on_each_cpu(): kill unused \u0027retry\u0027 parameter\n\nIt\u0027s not even passed on to smp_call_function() anymore, since that\nwas removed. So kill it.\n\nAcked-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d02859ecb321c8c0f74cb9bbe3f51a59e58822b0",
      "tree": "05dd5bdc55081c0a90bf0afc35c07d0d6e25d015",
      "parents": [
        "a987b16cc6123af2c9414032701bab5f73c54c89",
        "543cf4cb3fe6f6cae3651ba918b9c56200b257d0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 25 12:16:51 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 25 12:16:51 2008 +0200"
      },
      "message": "Merge commit \u0027v2.6.26-rc8\u0027 into x86/xen\n\nConflicts:\n\n\tarch/x86/xen/enlighten.c\n\tarch/x86/xen/mmu.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "54481cf88bc59923ea30f2ca345a73c60155e901",
      "tree": "1965fad9a3a207a619b5506722208f93788210b8",
      "parents": [
        "ffe6e1da86d21d7855495b5a772c93f050258f6e"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Jun 19 09:41:22 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 20 13:26:18 2008 +0200"
      },
      "message": "x86: fix NULL pointer deref in __switch_to\n\nI am able to reproduce the oops reported by Simon in __switch_to() with\nlguest.\n\nMy debug showed that there is at least one lguest specific\nissue (which should be present in 2.6.25 and before aswell) and it got\nexposed with a kernel oops with the recent fpu dynamic allocation patches.\n\nIn addition to the previous possible scenario (with fpu_counter), in the\npresence of lguest, it is possible that the cpu\u0027s TS bit it still set and the\nlguest launcher task\u0027s thread_info has TS_USEDFPU still set.\n\nThis is because of the way the lguest launcher handling the guest\u0027s TS bit.\n(look at lguest_set_ts() in lguest_arch_run_guest()). This can result\nin a DNA fault while doing unlazy_fpu() in __switch_to(). This will\nend up causing a DNA fault in the context of new process thats\ngetting context switched in (as opossed to handling DNA fault in the context\nof lguest launcher/helper process).\n\nThis is wrong in both pre and post 2.6.25 kernels. In the recent\n2.6.26-rc series, this is showing up as NULL pointer dereferences or\nsleeping function called from atomic context(__switch_to()), as\nwe free and dynamically allocate the FPU context for the newly\ncreated threads. Older kernels might show some FPU corruption for processes\nrunning inside of lguest.\n\nWith the appended patch, my test system is running for more than 50 mins\nnow. So atleast some of your oops (hopefully all!) should get fixed.\nPlease give it a try. I will spend more time with this fix tomorrow.\n\nReported-by: Simon Holm Thøgersen \u003codie@cs.aau.dk\u003e\nReported-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "688d22e23ab1caacb2c36c615854294b58f2ea47",
      "tree": "95c8163c0b1f56902f5537bc256d7e5507f56cee",
      "parents": [
        "7e0edc1bc343231029084761ebf59e522902eb49",
        "066519068ad2fbe98c7f45552b1f592903a9c8c8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 16 11:21:27 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 16 11:21:27 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into x86/xen\n"
    },
    {
      "commit": "b769f579081943f14e0ff03b7b0bd3a11cf14625",
      "tree": "026d89b6d937af43af4a692bcf547e032f0c58cc",
      "parents": [
        "5610bd1524332fe7d651eb56cc780e32763a2ac3"
      ],
      "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:42 2008 +1000"
      },
      "message": "virtio: set device index in common code.\n\nAnthony Liguori points out that three different transports use the virtio code,\nbut each one keeps its own counter to set the virtio_device\u0027s index field.  In\ntheory (though not in current practice) this means that names could be\nduplicated, and that risk grows as more transports are created.\n\nSo we move the selection of the unique virtio_device.index into the common code\nin virtio.c, which has the side-benefit of removing duplicate code.\n\nThe only complexity is that lguest and S/390 use the index to uniquely identify\nthe device in case of catastrophic failure before register_virtio_device() is\ncalled: now we use the offset within the descriptor page as a unique identifier\nfor the printks.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Chris Lalancette \u003cclalance@redhat.com\u003e\nCc: Anthony Liguori \u003canthony@codemonkey.ws\u003e\n"
    },
    {
      "commit": "e27810f11340987df123a99eb9ae14c054a55639",
      "tree": "4605228957a1e02cde0d4fa753cc3cbe2f75656c",
      "parents": [
        "0a2ce2ffc358da96792d514c1024b72c52be9cc1"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 30 15:09:40 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 30 15:09:41 2008 +1000"
      },
      "message": "lguest: use ioremap_cache, not ioremap\n\nThanks to Jon Corbet \u0026 LWN.  Only took me a day to join the dots.\n\nHost-\u003eGuest netcat before (with unnecessily large receive buffers):\n1073741824 bytes (1.1 GB) copied, 24.7528 seconds, 43.4 MB/s\n\nAfter:\n1073741824 bytes (1.1 GB) copied, 17.6369 seconds, 60.9 MB/s\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "a15af1c9ea2750a9ff01e51615c45950bad8221b",
      "tree": "b4167c16c23365d016180b20248c724902e0c954",
      "parents": [
        "239d1fc04ed0b58d638096b12a7f6d50269d30c9"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Mon May 26 23:31:06 2008 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 27 10:11:36 2008 +0200"
      },
      "message": "x86/paravirt: add pte_flags to just get pte flags\n\nAdd pte_flags() to extract the flags from a pte.  This is a special\ncase of pte_val() which is only guaranteed to return the pte\u0027s flags\ncorrectly; the page number may be corrupted or missing.\n\nThe intent is to allow paravirt implementations to return pte flags\nwithout having to do any translation of the page number (most notably,\nXen).\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "a007a751d98fe97142e4724a83a4e31ec66b7532",
      "tree": "ab9d1d844688834875359c600982a3c8ae738014",
      "parents": [
        "9f3f746741d917fe3c6c544c7d319d533176d90b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 02 21:50:53 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 02 21:50:54 2008 +1000"
      },
      "message": "lguest: make Launcher see device status updates\n\nThis brings us closer to Real Life, where we\u0027d examine the device\nfeatures once it\u0027s set the DRIVER_OK status bit.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "9f3f746741d917fe3c6c544c7d319d533176d90b",
      "tree": "cc962947595594115c3616960c3772e4175faffb",
      "parents": [
        "24adf12722b4f2800e5b5f0955d57033f0d0c9e5"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 02 21:50:51 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 02 21:50:52 2008 +1000"
      },
      "message": "lguest: remove bogus NULL cpu check\n\nIf lg isn\u0027t NULL, and cpu_id is sane, \u0026lg-\u003ecpus[cpu_id] can\u0027t be NULL.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "24adf12722b4f2800e5b5f0955d57033f0d0c9e5",
      "tree": "3f9aee46f5d5fab937c03732e668735dde7663da",
      "parents": [
        "48e4043d4529523cbc7fa8dd745bd8e2c45ce1d3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 02 21:50:51 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 02 21:50:51 2008 +1000"
      },
      "message": "lguest: avoid using NR_CPUS as a bounds check.\n\nNR_CPUS (being a host number) is an arbitrary limit for the Guest.\nUsing the array size directly (which currently happes to be NR_CPUS)\nis more futureproof.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "c45a6816c19dee67b8f725e6646d428901a6dc24",
      "tree": "096e3263fd14e140685bcc3082394ff15f5aeddb",
      "parents": [
        "72e61eb40b55dd57031ec5971e810649f82b0259"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 02 21:50:50 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 02 21:50:50 2008 +1000"
      },
      "message": "virtio: explicit advertisement of driver features\n\nA recent proposed feature addition to the virtio block driver revealed\nsome flaws in the API: in particular, we assume that feature\nnegotiation is complete once a driver\u0027s probe function returns.\n\nThere is nothing in the API to require this, however, and even I\ndidn\u0027t notice when it was violated.\n\nSo instead, we require the driver to specify what features it supports\nin a table, we can then move the feature negotiation into the virtio\ncore.  The intersection of device and driver features are presented in\na new \u0027features\u0027 bitmap in the struct virtio_device.\n\nNote that this highlights the difference between Linux unsigned-long\nbitmaps where each unsigned long is in native endian, and a\nstraight-forward little-endian array of bytes.\n\nDrivers can still remove feature bits in their probe routine if they\nreally have to.\n\nAPI changes:\n- dev-\u003econfig-\u003efeature() no longer gets and acks a feature.\n- drivers should advertise their features in the \u0027feature_table\u0027 field\n- use virtio_has_feature() for extra sanity when checking feature bits\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d3135846f6c1858dbad6ccb780a42e6c98953e6d",
      "tree": "f1800b9b4b435f86c33385bb4a002239547e3879",
      "parents": [
        "5f090dcb4d4fff373ce7165bce4ba5e87534d50a"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Fri Apr 18 22:16:32 2008 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Fri Apr 18 22:16:32 2008 -0400"
      },
      "message": "drivers: Remove unnecessary inclusions of asm/semaphore.h\n\nNone of these files use any of the functionality promised by\nasm/semaphore.h.  It\u0027s possible that they rely on it dragging in some\nunrelated header file, but I can\u0027t build all these files, so we\u0027ll have\nfix any build failures as they come up.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "74dbf719ed3c49687dab507967ebab9189e91ab0",
      "tree": "01001802b94aa437a5891879fc09e30717a0c407",
      "parents": [
        "53a0c98e117272125183138aefc6b13b4a5f38a1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Mar 29 03:08:28 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 30 14:20:23 2008 -0700"
      },
      "message": "misc __user misannotations (pointless casts to long)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "b488f22d70f1c2451618b9991b9665d2c6b31e2b",
      "tree": "f2d7d91408edced2ee31744c857ae4e7546f974f",
      "parents": [
        "bd6c26900bae19bd51abedfc9a8a281afbba3a06"
      ],
      "author": {
        "name": "Tim Ansell",
        "email": "mithro@mithis.com",
        "time": "Mon Feb 11 18:13:42 2008 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Mar 28 11:05:52 2008 +1100"
      },
      "message": "lguest: Add puppies which where previously missing.\n\nlguest doesn\u0027t have features, it has puppies!\n\nSigned-off-by: Timothy R Ansell \u003cmithro@mithis.com\u003e\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": "f14ae652baa3d72ae378f0c06b89cc2c4ef15ff8",
      "tree": "65dfe2b310103bd6f2c981de2e1d0faecd05805c",
      "parents": [
        "f73d1e6ca6985b43a1871467463cba632fbc624d"
      ],
      "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:56 2008 +1100"
      },
      "message": "lguest: fix __get_vm_area usage.\n\nRobert Bragg\u0027s 5dc331852848a38ca00a2817e5b98a1d0561b116 tightened\n(ie. fixed) the checking in __get_vm_area, and it broke lguest.\n\nlguest should pass the exact \"end\" it wants, not some random constant\n(it was possible previously that it would actually get an address\ndifferent from SWITCHER_ADDR).\n\nAlso, Fabio Checconi pointed out that we should make sure we\u0027re not\nhitting the fixmap area.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Robert Bragg \u003crobert@sixbynine.org\u003e\n"
    },
    {
      "commit": "f73d1e6ca6985b43a1871467463cba632fbc624d",
      "tree": "84b01e87f41bf960c58b6934142da31f6d1638eb",
      "parents": [
        "cdeeeae056a429e729ae9e914fa8142ee45bee93"
      ],
      "author": {
        "name": "Eugene Teo",
        "email": "eugeneteo@kernel.sg",
        "time": "Sat Feb 09 23:53:17 2008 +0800"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 11 09:35:56 2008 +1100"
      },
      "message": "lguest: make sure cpu is initialized before accessing it\n\nIf req is LHREQ_INITIALIZE, and the guest has been initialized before\n(unlikely), it will attempt to access cpu-\u003etsk even though cpu is not yet\ninitialized.\n\nSigned-off-by: Eugene Teo \u003ceugeneteo@kernel.sg\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "fc708b3e407dfd2e12ba9a6cf35bd0bffad1796d"
}
