)]}'
{
  "log": [
    {
      "commit": "3c834b6f41fa21a48389b13c3bf63aa8df1d7080",
      "tree": "126447276497510f44277e8442715e103e2cb85a",
      "parents": [
        "515d01f7726b9ba4838787d247115e1b259e1cc7",
        "8078db789a92b10ff6e2d713231b5367e014c53b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 14:49:12 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 14:49:12 2013 -0800"
      },
      "message": "Merge tag \u0027virtio-next-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux\n\nPull virtio updates from Rusty Russell:\n \"All trivial, thanks to the stuff which didn\u0027t quite make it time\"\n\n* tag \u0027virtio-next-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:\n  virtio_console: Initialize guest_connected\u003dtrue for rproc_serial\n  virtio: use module_virtio_driver.\n  virtio: Add module driver macro for virtio drivers.\n  virtio_console: Use virtio device index to generate port name\n  virtio: make pci_device_id const\n  virtio: make config_ops const\n  virtio-mmio: fix wrong comment about register offset\n  virtio_console: Let unconnected rproc device receive data.\n"
    },
    {
      "commit": "b2a17029c29bb6f7dec580feffa715b9fcf51e42",
      "tree": "2db568a277276ca7d4bf49ce57935827ae6ee1ff",
      "parents": [
        "6e105e0593055dc4aae21df7bca3868045754148"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Feb 13 16:59:28 2013 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Feb 13 17:00:37 2013 +1030"
      },
      "message": "virtio: use module_virtio_driver.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "35cdc9eb65837687bdfc9ea1d2515eb03ea5048a",
      "tree": "7e3450f90b28cd70614b6b19db1209282493e01c",
      "parents": [
        "9350393239153c4a98cbed4d69b9ed81e37d5e74"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Feb 10 15:57:39 2013 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Feb 11 15:32:18 2013 +1030"
      },
      "message": "virtio: make pci_device_id const\n\nUse DEVICE_TABLE macro which also makes table const.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "9350393239153c4a98cbed4d69b9ed81e37d5e74",
      "tree": "180ddb2f2968721c52ed9b5917378aff00c7b7f6",
      "parents": [
        "0d34cc2d6d904e2d0160e42734bccc1cb391cec0"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Feb 10 15:57:38 2013 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Feb 11 15:32:17 2013 +1030"
      },
      "message": "virtio: make config_ops const\n\nIt is just a table of function pointers, make it const for cleanliness and security\nreasons.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "0d34cc2d6d904e2d0160e42734bccc1cb391cec0",
      "tree": "2c4d910400687a4f7d6c3926ad11800e1fba0fdc",
      "parents": [
        "1f8051876a194d7f7fe7834d9853f240d6b4b9ab"
      ],
      "author": {
        "name": "Ryota Ozaki",
        "email": "ozaki.ryota@gmail.com",
        "time": "Mon Feb 04 10:35:30 2013 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Feb 04 10:37:01 2013 +1030"
      },
      "message": "virtio-mmio: fix wrong comment about register offset\n\nThe register offset of InterruptACK is 0x064, not 0x060.\nFix it.\n\nSigned-off-by: Ryota Ozaki \u003cozaki.ryota@gmail.com\u003e\nReviewed-by: Wanlong Gao \u003cgaowanlong@cn.fujitsu.com\u003e\nAcked-by: Pawel Moll \u003cpawel.moll@arm.com\u003e\nCC: Jiri Kosina \u003ctrivial@kernel.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d72c5a8c8c57cb7b9b20b5d3cd0a39deb51ba78b",
      "tree": "e82095466800aad3243007af18b55de77b1dcdc9",
      "parents": [
        "bffb0ed1078b60cd13601db716dcc81cafef2056"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Tue Oct 02 11:19:07 2012 -0700"
      },
      "committer": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Fri Jan 11 11:39:04 2013 -0800"
      },
      "message": "drivers/virtio: remove depends on CONFIG_EXPERIMENTAL\n\nThe CONFIG_EXPERIMENTAL config item has not carried much meaning for a\nwhile now and is almost always enabled by default. As agreed during the\nLinux kernel summit, remove it from any \"depends on\" lines in Kconfigs.\n\nCC: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCC: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "8590dbc79a0ff5d7ab16b2b1743684c241ae3c65",
      "tree": "0d7483f5cbeee5954d112197e76f452890ad6b01",
      "parents": [
        "6dfb6715b58a9d184188188779f9f8f27e558042"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Dec 21 13:05:30 2012 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jan 03 15:57:01 2013 -0800"
      },
      "message": "Drivers: virtio: remove __dev* attributes.\n\nCONFIG_HOTPLUG is going away as an option.  As a result, the __dev*\nmarkings need to be removed.\n\nThis change removes the use of __devinit, __devexit_p, and __devexit\nfrom these drivers.\n\nBased on patches originally written by Bill Pemberton, but redone by me\nin order to handle some of the coding style issues better, by hand.\n\nCc: Bill Pemberton \u003cwfp5p@virginia.edu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "b7dfde956daee23f4439d0c8562a5e38b43e79d9",
      "tree": "2ed71fb5c5eac6957fd1e1ad0a67be6c3282167a",
      "parents": [
        "03c850ec327c42a97e44c448b75983e12da417d9",
        "1b6370463e88b0c1c317de16d7b962acc1dab4f2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 08:37:04 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 08:37:05 2012 -0800"
      },
      "message": "Merge tag \u0027virtio-next-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux\n\nPull virtio update from Rusty Russell:\n \"Some nice cleanups, and even a patch my wife did as a \"live\" demo for\n  Latinoware 2012.\n\n  There\u0027s a slightly non-trivial merge in virtio-net, as we cleaned up\n  the virtio add_buf interface while DaveM accepted the mq virtio-net\n  patches.\"\n\n* tag \u0027virtio-next-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (27 commits)\n  virtio_console: Add support for remoteproc serial\n  virtio_console: Merge struct buffer_token into struct port_buffer\n  virtio: add drv_to_virtio to make code clearly\n  virtio: use dev_to_virtio wrapper in virtio\n  virtio-mmio: Fix irq parsing in command line parameter\n  virtio_console: Free buffers from out-queue upon close\n  virtio: Convert dev_printk(KERN_\u003cLEVEL\u003e to dev_\u003clevel\u003e(\n  virtio_console: Use kmalloc instead of kzalloc\n  virtio_console: Free buffer if splice fails\n  virtio: tools: make it clear that virtqueue_add_buf() no longer returns \u003e 0\n  virtio: scsi: make it clear that virtqueue_add_buf() no longer returns \u003e 0\n  virtio: rpmsg: make it clear that virtqueue_add_buf() no longer returns \u003e 0\n  virtio: net: make it clear that virtqueue_add_buf() no longer returns \u003e 0\n  virtio: console: make it clear that virtqueue_add_buf() no longer returns \u003e 0\n  virtio: make virtqueue_add_buf() returning 0 on success, not capacity.\n  virtio: console: don\u0027t rely on virtqueue_add_buf() returning capacity.\n  virtio_net: don\u0027t rely on virtqueue_add_buf() returning capacity.\n  virtio-net: remove unused skb_vnet_hdr-\u003enum_sg field\n  virtio-net: correct capacity math on ring full\n  virtio: move queue_index and num_free fields into core struct virtqueue.\n  ...\n"
    },
    {
      "commit": "9a2bdcc85d28506d4e5d4a9618fb133a3f40945d",
      "tree": "ac571e092d7542a5c5121d25b5f8f02cdfbb7a41",
      "parents": [
        "9bffdca8c64a72ac54c47a552734ab457bc720d4"
      ],
      "author": {
        "name": "Wanlong Gao",
        "email": "gaowanlong@cn.fujitsu.com",
        "time": "Mon Dec 10 16:38:33 2012 +0800"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 18 15:20:43 2012 +1030"
      },
      "message": "virtio: add drv_to_virtio to make code clearly\n\nAdd drv_to_virtio wrapper to get virtio_driver from device_driver.\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nSigned-off-by: Wanlong Gao \u003cgaowanlong@cn.fujitsu.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "9bffdca8c64a72ac54c47a552734ab457bc720d4",
      "tree": "c009f6f19b689ceac28122a2ea7109b4fccada95",
      "parents": [
        "40f9938c4c69183c5ceaca74b77aff636cc79623"
      ],
      "author": {
        "name": "Wanlong Gao",
        "email": "gaowanlong@cn.fujitsu.com",
        "time": "Tue Dec 11 11:04:50 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 18 15:20:42 2012 +1030"
      },
      "message": "virtio: use dev_to_virtio wrapper in virtio\n\nUse dev_to_virtio wrapper in virtio to make code clearly.\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nSigned-off-by: Wanlong Gao \u003cgaowanlong@cn.fujitsu.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "40f9938c4c69183c5ceaca74b77aff636cc79623",
      "tree": "94393c100ead39d57c4567cb9eca81fe859d72ee",
      "parents": [
        "eb34f12b509823571e88b791ae2088280943894f"
      ],
      "author": {
        "name": "Pawel Moll",
        "email": "pawel.moll@arm.com",
        "time": "Thu Nov 22 12:30:24 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 18 15:20:41 2012 +1030"
      },
      "message": "virtio-mmio: Fix irq parsing in command line parameter\n\nWhen the resource_size_t is 64-bit long, the sscanf() on\nthe virtio device command line paramter string may return\nwrong value because its format was defined as \"%u\". Fixed\nby using an intermediate local value of a known length.\n\nAlso added cleaned up the resource creation and added extra\ncomments to make the parameters parsing easier to follow.\n\nReported-by: Lee Jones \u003clee.jones@linaro.org\u003e\nSigned-off-by: Pawel Moll \u003cpawel.moll@arm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "800ba5eabf13485fecbf468f6b2999608413d176",
      "tree": "3c7cc21de8896fbbf874824f92b9353f9b6141af",
      "parents": [
        "0127f6855e643c6b8fd5fbe3b5fa23c9d26cd237"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Oct 31 09:27:22 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 18 15:20:40 2012 +1030"
      },
      "message": "virtio: Convert dev_printk(KERN_\u003cLEVEL\u003e to dev_\u003clevel\u003e(\n\ndev_\u003clevel\u003e calls take less code than dev_printk(KERN_\u003cLEVEL\u003e\nand reducing object size is good.\nConvert if (printk_ratelimit()) dev_printk to dev_\u003clevel\u003e_ratelimited.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "98e8c6bc66048db6f921ccd5b24f0e09804cfcca",
      "tree": "42ba3a2f6e3ce22741c6a970ca99b7beab0ffbbb",
      "parents": [
        "49e86f16866fbf8e3c9a6b0770eb6f3c167f4b72"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 16 23:56:15 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 18 15:20:34 2012 +1030"
      },
      "message": "virtio: make virtqueue_add_buf() returning 0 on success, not capacity.\n\nNow noone relies on this behavior, we simplify virtqueue_add_buf() so it\nreturn 0 or -errno.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\n"
    },
    {
      "commit": "06ca287dbac9cc19d04ac2901b8c4882c03795ff",
      "tree": "37574b40e4b18070fe92e88f722035159aa341fb",
      "parents": [
        "1ce6853aa0f8e1cc3ae811a85d50cde6ad0ef735"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 16 23:56:14 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 18 15:20:31 2012 +1030"
      },
      "message": "virtio: move queue_index and num_free fields into core struct virtqueue.\n\nThey\u0027re generic concepts, so hoist them.  This also avoids accessor\nfunctions (though kept around for merge with DaveM\u0027s net tree).\n\nThis goes even further than Jason Wang\u0027s 17bb6d4088 patch\n(\"virtio-ring: move queue_index to vring_virtqueue\") which moved the\nqueue_index from the specific transport.\n\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "1ce6853aa0f8e1cc3ae811a85d50cde6ad0ef735",
      "tree": "8b9562a60b6de855b18ad0b413cbbae3374a73bc",
      "parents": [
        "681f206611aaec4fc8be93d609148e02c704b91d"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yongjun_wei@trendmicro.com.cn",
        "time": "Tue Oct 16 23:56:13 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 18 15:20:30 2012 +1030"
      },
      "message": "virtio-pci: use module_pci_driver to simplify the code\n\nUse the module_pci_driver() macro to make the code simpler\nby eliminating module_init and module_exit calls.\n\ndpatch engine is used to auto generate this patch.\n(https://github.com/weiyj/dpatch)\n\nSigned-off-by: Wei Yongjun \u003cyongjun_wei@trendmicro.com.cn\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e22504296d4f64fbbbd741602ab47ee874649c18",
      "tree": "a21e72dfae575091beb338aaedc939a3777e8828",
      "parents": [
        "bf6bddf1924eaebf2beb85e4249a89dd16d4eed6"
      ],
      "author": {
        "name": "Rafael Aquini",
        "email": "aquini@redhat.com",
        "time": "Tue Dec 11 16:02:45 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:27 2012 -0800"
      },
      "message": "virtio_balloon: introduce migration primitives to balloon pages\n\nMemory fragmentation introduced by ballooning might reduce significantly\nthe number of 2MB contiguous memory blocks that can be used within a guest,\nthus imposing performance penalties associated with the reduced number of\ntransparent huge pages that could be used by the guest workload.\n\nBesides making balloon pages movable at allocation time and introducing\nthe necessary primitives to perform balloon page migration/compaction,\nthis patch also introduces the following locking scheme, in order to\nenhance the syncronization methods for accessing elements of struct\nvirtio_balloon, thus providing protection against concurrent access\nintroduced by parallel memory migration threads.\n\n - balloon_lock (mutex) : synchronizes the access demand to elements of\n                          struct virtio_balloon and its queue operations;\n\n[yongjun_wei@trendmicro.com.cn: fix missing unlock on error in fill_balloon()]\n[akpm@linux-foundation.org: avoid having multiple return points in fill_balloon()]\n[akpm@linux-foundation.org: fix printk warning]Signed-off-by: Rafael Aquini \u003caquini@redhat.com\u003e\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nSigned-off-by: Wei Yongjun \u003cyongjun_wei@trendmicro.com.cn\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "237242bddc99041e15a4ca51b8439657cadaff17",
      "tree": "a506fe81ea564d15ed2544d5bb477bc58405603f",
      "parents": [
        "f6a79af8f3701b5a0df431a76adee212616154dc"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Fri Nov 09 14:54:12 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Nov 09 14:54:24 2012 +1030"
      },
      "message": "virtio: Don\u0027t access index after unregister.\n\nVirtio wants to release used indices after the corresponding\nvirtio device has been unregistered. However, virtio does not\nhold an extra reference, giving up its last reference with\ndevice_unregister(), making accessing dev-\u003eindex afterwards\ninvalid.\n\nI actually saw problems when testing my (not-yet-merged)\nvirtio-ccw code:\n\n- device_add virtio-net,id\u003dxxx\n-\u003e creates device virtio\u003cn\u003e with n\u003e0\n\n- device_del xxx\n-\u003e deletes virtio\u003cn\u003e, but calls ida_simple_remove with an\n   index of 0\n\n- device_add virtio-net,id\u003dxxx\n-\u003e tries to add virtio0, which is still in use...\n\nSo let\u0027s save the index we want to release before calling\ndevice_unregister().\n\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nAcked-by: Sjur Brændeland \u003csjur.brandeland@stericsson.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b92b1b89a33c172c075edccf6afb0edc41d851fd",
      "tree": "b7ca705150cfa459c4daa7f0c04874839490c291",
      "parents": [
        "b9cdc88df8e63e81c723b82c286fc97f5d0dc325"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Fri Oct 19 14:03:33 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 22 18:19:49 2012 +1030"
      },
      "message": "virtio: force vring descriptors to be allocated from lowmem\n\nVirtio devices may attempt to add descriptors to a virtqueue from atomic\ncontext using GFP_ATOMIC allocation. This is problematic because such\nallocations can fall outside of the lowmem mapping, causing virt_to_phys\nto report bogus physical addresses which are subsequently passed to\nuserspace via the buffers for the virtual device.\n\nThis patch masks out __GFP_HIGH and __GFP_HIGHMEM from the requested\nflags when allocating descriptors for a virtqueue. If an atomic\nallocation is requested and later fails, we will return -ENOSPC which\nwill be handled by the driver.\n\nCc: stable@kernel.org\nCc: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d78b519f6b945aef6202bbb5b56f928572e15165",
      "tree": "b055dd93fb446914a908ebec0829ce89df9b53c0",
      "parents": [
        "3850d29fc40f3494a3e9c3aac45b6afe53526449"
      ],
      "author": {
        "name": "Brian Foley",
        "email": "brian.foley@arm.com",
        "time": "Mon Sep 24 14:33:42 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 28 15:05:16 2012 +0930"
      },
      "message": "virtio_mmio: Don\u0027t attempt to create empty virtqueues\n\nIf a virtio device reports a QueueNumMax of 0, vring_new_virtqueue()\ndoesn\u0027t check this, and thanks to an unsigned (i \u003c num - 1) loop\nguard, scribbles over memory when initialising the free list.\n\nAvoid by not trying to create zero-descriptor queues, as there\u0027s no\nway to do any I/O with one.\n\nSigned-off-by: Brian Foley \u003cbrian.foley@arm.com\u003e\nSigned-off-by: Pawel Moll \u003cpawel.moll@arm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3850d29fc40f3494a3e9c3aac45b6afe53526449",
      "tree": "b80c5c7819de0bfc2a75a55939568f3784ed5dbf",
      "parents": [
        "74a74b376c997645b32a4fdf8e76705a00ae097a"
      ],
      "author": {
        "name": "Brian Foley",
        "email": "brian.foley@arm.com",
        "time": "Mon Sep 24 14:33:41 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 28 15:05:16 2012 +0930"
      },
      "message": "virtio_mmio: fix off by one error allocating queue\n\nvm_setup_vq fails to allow VirtQueues needing only 2 pages of\nstorage, as it should. Found with a kernel using 64kB pages, but\ncan be provoked if a virtio device reports QueueNumMax where the\ndescriptor table and available ring fit in one page, and the used\nring on the second (\u003c\u003d 227 descriptors with 4kB pages and \u003c\u003d 3640\nwith 64kB pages.)\n\nSigned-off-by: Brian Foley \u003cbrian.foley@arm.com\u003e\nSigned-off-by: Pawel Moll \u003cpawel.moll@arm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "74a74b376c997645b32a4fdf8e76705a00ae097a",
      "tree": "f84ebd0e06017135dc657e9133401db4bca57941",
      "parents": [
        "5543a6ac31eb4bfd8d938db6b234ce833d14e04e"
      ],
      "author": {
        "name": "Peter Senna Tschudin",
        "email": "peter.senna@gmail.com",
        "time": "Mon Sep 17 19:31:17 2012 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 28 15:05:16 2012 +0930"
      },
      "message": "drivers/virtio/virtio_pci.c: fix error return code\n\nConvert a nonnegative error return code to a negative one, as returned\nelsewhere in the function.\n\nA simplified version of the semantic match that finds this problem is as\nfollows: (http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n(\nif@p1 (\\(ret \u003c 0\\|ret !\u003d 0\\))\n { ... return ret; }\n|\nret@p1 \u003d 0\n)\n... when !\u003d ret \u003d e1\n    when !\u003d \u0026ret\n*if(...)\n{\n  ... when !\u003d ret \u003d e2\n      when forall\n return ret;\n}\n// \u003c/smpl\u003e\n\nSigned-off-by: Peter Senna Tschudin \u003cpeter.senna@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "5543a6ac31eb4bfd8d938db6b234ce833d14e04e",
      "tree": "df471800d5701f2c0db0d2a1d4659fbb0549473e",
      "parents": [
        "eccbb05a64fef867362ff05b5d266757e3c82b36"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Fri Sep 28 15:05:16 2012 +0930"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 28 15:05:16 2012 +0930"
      },
      "message": "virtio: don\u0027t crash when device is buggy\n\nBecause of a sanity check in virtio_dev_remove, a buggy device can crash\nkernel.  And in case of rproc it\u0027s userspace so it\u0027s not a good idea.\nWe are unloading a driver so how bad can it be?\nBe less aggressive in handling this error: if it\u0027s a driver bug,\nwarning once should be enough.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "eccbb05a64fef867362ff05b5d266757e3c82b36",
      "tree": "e4cca0e3a865f8bd529e1085046483dcb9c5c8b8",
      "parents": [
        "387daf1716da579fc1d198414d890967cd624a5b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 28 15:05:15 2012 +0930"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 28 15:05:15 2012 +0930"
      },
      "message": "virtio: remove CONFIG_VIRTIO_RING\n\nEveryone who selects VIRTIO is also made to select VIRTIO_RING; just make\nthem synonymous, since we removed the indirection layer some time ago.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "387daf1716da579fc1d198414d890967cd624a5b",
      "tree": "b71404a6c541061fa1e08d015c0c8a7f0ab80d76",
      "parents": [
        "6457f126c888b3481fdae6f702e616cd0c79646e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 28 15:05:15 2012 +0930"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 28 15:05:15 2012 +0930"
      },
      "message": "virtio: add help to CONFIG_VIRTIO option.\n\nTrying to enable a virtio driver (eg CONFIG_VIRTIO_BLK) is painful\nbecause it depends on CONFIG_VIRTIO.  CONFIG_VIRTIO doesn\u0027t tell you\nhow to turn it on (it\u0027s selected from anything which provides a virtio\nbus).\n\nThis patch at least adds some documentation, visible in menuconfig, as\na hint.\n\nReported-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "6457f126c888b3481fdae6f702e616cd0c79646e",
      "tree": "eae794db0b3983d2a901ecf6471eda6e3f9ff26f",
      "parents": [
        "75a0a52be3c27b58654fbed2c8f2ff401482b9a4"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Wed Sep 05 21:47:45 2012 +0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 28 15:05:15 2012 +0930"
      },
      "message": "virtio: support reserved vqs\n\nvirtio network device multiqueue support reserves\nvq 3 for future use (useful both for future extensions and to make it\npretty - this way receive vqs have even and transmit - odd numbers).\nMake it possible to skip initialization for\nspecific vq numbers by specifying NULL for name.\nDocument this usage as well as (existing) NULL callback.\n\nDrivers using this not coded up yet, so I simply tested\nwith virtio-pci and verified that this patch does\nnot break existing drivers.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "75a0a52be3c27b58654fbed2c8f2ff401482b9a4",
      "tree": "01c2815aa913b714f4d11869d56941717737646e",
      "parents": [
        "17bb6d40880d4178f5f8a75900ed8c9ff47d3fb2"
      ],
      "author": {
        "name": "Jason Wang",
        "email": "jasowang@redhat.com",
        "time": "Tue Aug 28 13:54:14 2012 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 28 15:05:15 2012 +0930"
      },
      "message": "virtio: introduce an API to set affinity for a virtqueue\n\nSometimes, virtio device need to configure irq affinity hint to maximize the\nperformance. Instead of just exposing the irq of a virtqueue, this patch\nintroduce an API to set the affinity for a virtqueue.\n\nThe api is best-effort, the affinity hint may not be set as expected due to\nplatform support, irq sharing or irq type. Currently, only pci method were\nimplemented and we set the affinity according to:\n\n- if device uses INTX, we just ignore the request\n- if device has per vq vector, we force the affinity hint\n- if the virtqueues share MSI, make the affinity OR over all affinities\n  requested\n\nSigned-off-by: Jason Wang \u003cjasowang@redhat.com\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "17bb6d40880d4178f5f8a75900ed8c9ff47d3fb2",
      "tree": "f9888385b33c144f909eff14713a328dc72296f2",
      "parents": [
        "7a23eb28fa645f1f0c2ec38274c11bc78c50c047"
      ],
      "author": {
        "name": "Jason Wang",
        "email": "jasowang@redhat.com",
        "time": "Tue Aug 28 13:54:13 2012 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 28 15:05:15 2012 +0930"
      },
      "message": "virtio-ring: move queue_index to vring_virtqueue\n\nInstead of storing the queue index in transport-specific virtio structs,\nthis patch moves them to vring_virtqueue and introduces an helper to get\nthe value.  This lets drivers simplify their management and tracing of\nvirtqueues.\n\nSigned-off-by: Jason Wang \u003cjasowang@redhat.com\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "7a23eb28fa645f1f0c2ec38274c11bc78c50c047",
      "tree": "5ba0bdb63393b330b212143f5ea2075b517f6114",
      "parents": [
        "04679f34c141a0591e525d392929efc249440a7c"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 28 15:05:14 2012 +0930"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 28 15:05:14 2012 +0930"
      },
      "message": "virtio_balloon: not EXPERIMENTAL any more.\n\nIt is not experimental in any vaguely-sane sense.\n\nReported-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "04679f34c141a0591e525d392929efc249440a7c",
      "tree": "2aba7250686e6080b7fbf1b8d83ef8b70ea7d7e8",
      "parents": [
        "f22cf8eb485260ac6e32a614121d44998d83a69a"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Fri Sep 28 15:05:14 2012 +0930"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 28 15:05:14 2012 +0930"
      },
      "message": "virtio-balloon: dependency fix\n\nDevices should depend on virtio, not select it.  It\u0027s supposed to be\nselected by the particular driver, e.g. VIRTIO_PCI.\nMake balloon depend on VIRTIO and EXPERIMENTAL\n(to match description).\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "59057fbc37178f10a196ab7ec170b80273f75a47",
      "tree": "79b85034672f27cf605d90736c8f1a75ac2c0656",
      "parents": [
        "0b1017aab197271a78169fde3d7e487bb721997c"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Wed Jul 11 21:22:16 2012 +0000"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Fri Jul 20 08:59:03 2012 +0100"
      },
      "message": "[SCSI] virtio-scsi: Add vdrv-\u003escan for post VIRTIO_CONFIG_S_DRIVER_OK LUN scanning\n\nThis patch changes virtio-scsi to use a new virtio_driver-\u003escan() callback\nso that scsi_scan_host() can be properly invoked once virtio_dev_probe() has\nset add_status(dev, VIRTIO_CONFIG_S_DRIVER_OK) to signal active virtio-ring\noperation, instead of from within virtscsi_probe().\n\nThis fixes a bug where SCSI LUN scanning for both virtio-scsi-raw and\nvirtio-scsi/tcm_vhost setups was happening before VIRTIO_CONFIG_S_DRIVER_OK\nhad been set, causing VIRTIO_SCSI_S_BAD_TARGET to occur.  This fixes a bug\nwith virtio-scsi/tcm_vhost where LUN scan was not detecting LUNs.\n\nTested with virtio-scsi-raw + virtio-scsi/tcm_vhost w/ IBLOCK on 3.5-rc2 code.\n\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\nAcked-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "9c378abc5c0c6fc8e3acf5968924d274503819b3",
      "tree": "a818c1e2cda775a8f52e11d35ae8f9b02cfd2522",
      "parents": [
        "02edf6abe01610a5fb379df442de3c837ad99467"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Mon Jul 02 10:33:08 2012 +0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 09 09:07:22 2012 +0930"
      },
      "message": "virtio-balloon: fix add/get API use\n\nSince ee7cd8981e15bcb365fc762afe3fc47b8242f630 \u0027virtio: expose added\ndescriptors immediately.\u0027, in virtio balloon virtqueue_get_buf might\nnow run concurrently with virtqueue_kick.  I audited both and this\nseems safe in practice but this is not guaranteed by the API.\nAdditionally, a spurious interrupt might in theory make\nvirtqueue_get_buf run in parallel with virtqueue_add_buf, which is\nracy.\n\nWhile we might try to protect against spurious callbacks it\u0027s\neasier to fix the driver: balloon seems to be the only one\n(mis)using the API like this, so let\u0027s just fix balloon.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (removed unused var)\n"
    },
    {
      "commit": "81a054ce0b469b66c88e9da6403082759c64bf73",
      "tree": "4736df1e0d7c7d9143a1e6dbbfe8947d8079f934",
      "parents": [
        "f65ca1dc6a8c81c6bd72297d4399ec5f4c1f3a01"
      ],
      "author": {
        "name": "Pawel Moll",
        "email": "pawel.moll@arm.com",
        "time": "Wed May 09 18:30:16 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue May 22 12:16:15 2012 +0930"
      },
      "message": "virtio-mmio: Devices parameter parsing\n\nThis patch adds an option to instantiate guest virtio-mmio devices\nbasing on a kernel command line (or module) parameter, for example:\n\n\tvirtio_mmio.devices\u003d0x100@0x100b0000:48\n\nSigned-off-by: Pawel Moll \u003cpawel.moll@arm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "90e03207f468e84258270ad07095ef50f925c17d",
      "tree": "b0a32e83e72f07064b9ae7156ec2bdc501734b6d",
      "parents": [
        "c877bab5072c8f461397949babbac10e348ae70d"
      ],
      "author": {
        "name": "Asias He",
        "email": "asias@redhat.com",
        "time": "Thu May 03 10:20:51 2012 +0800"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue May 22 12:16:12 2012 +0930"
      },
      "message": "virtio: Use ida to allocate virtio index\n\nCurrent index allocation in virtio is based on a monotonically\nincreasing variable \"index\". This means we\u0027ll run out of numbers\nafter a while. E.g. someone crazy doing this in host side.\n\nwhile(1) {\n\thot-plug a virtio device\n\thot-unplug the virito devcie\n}\n\nSigned-off-by: Asias He \u003casias@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "c877bab5072c8f461397949babbac10e348ae70d",
      "tree": "65d5850e949fd6b1f304f28af51cc8ca0ae84d64",
      "parents": [
        "c45b4166d9eaed612fa29acb041662aa4ceb2712"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Fri Apr 27 00:45:57 2012 +0530"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue May 22 12:16:11 2012 +0930"
      },
      "message": "virtio: balloon: separate out common code between remove and freeze functions\n\nThe remove and freeze functions have a lot of shared code; put it into a\ncommon function that gets called by both.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "c45b4166d9eaed612fa29acb041662aa4ceb2712",
      "tree": "4edd4520a2ae2c8f75ac90273621bc07b6369c66",
      "parents": [
        "991ad9ec39bd3ecaf08cfb7ea3ef7ae9148e5068"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Fri Apr 27 00:45:55 2012 +0530"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue May 22 12:16:11 2012 +0930"
      },
      "message": "virtio: balloon: drop restore_common()\n\nrestore_common() was used when there were different thaw and freeze PM\ncallbacks implemented.  We removed thaw in commit\nf38f8387cbdc4138a492ce9f2a5f04fd3cd3cf33.\n\nrestore_common() can be removed and virtballoon_restore() can itself do\nthe restore ops.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b8ae0eb320b38415da94a41f75e9f99e0aaff06c",
      "tree": "0e0d05059f13a1a67796c60274951bab2e0a0b2c",
      "parents": [
        "fa8b66ccd2d200b64496cfedcce90bf54fe7d6e9"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Fri Apr 27 00:45:56 2012 +0530"
      },
      "committer": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu May 17 12:14:34 2012 +0300"
      },
      "message": "virtio: balloon: let host know of updated balloon size before module removal\n\nWhen the balloon module is removed, we deflate the balloon, reclaiming\nall the pages that were given to the host.  However, we don\u0027t update the\nconfig values for the new balloon size, resulting in the host showing\noutdated balloon values.\n\nThe size update is done after each leak and fill operation, only the\nmodule removal case was left out.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\n"
    },
    {
      "commit": "3ccc9372ed0fab33d20f10be3c1efd5776ff5913",
      "tree": "c0e0422269e8d340906848e4993d268b8d4170ad",
      "parents": [
        "1a87228f5f1d316002c7c161316f5524592be766"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu Apr 12 16:38:00 2012 +0300"
      },
      "committer": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Sun Apr 15 11:51:06 2012 +0300"
      },
      "message": "virtio_balloon: fix handling of PAGE_SIZE !\u003d 4k\n\nAs reported by David Gibson, current code handles PAGE_SIZE !\u003d 4k\ncompletely wrong which can lead to guest memory corruption errors:\n\n- page_to_balloon_pfn is wrong: e.g. on system with 64K page size\n it gives the same pfn value for 16 different pages.\n\n- we also need to convert back to linux pfns when we free.\n\n- for each linux page we need to tell host about multiple balloon\n  pages, but code only adds one pfn to the array.\n\nThis patch fixes all that, tested with a 64k ppc64 kernel.\n\nReported-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nTested-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\n"
    },
    {
      "commit": "1a87228f5f1d316002c7c161316f5524592be766",
      "tree": "3c852fe87074cdc40a3435e3c18233be3b3f23e3",
      "parents": [
        "c0aa3e0916d7e531e69b02e426f7162dfb1c6c0f"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Thu Apr 12 15:36:34 2012 +1000"
      },
      "committer": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Sun Apr 15 11:51:05 2012 +0300"
      },
      "message": "virtio_balloon: Fix endian bug\n\nAlthough virtio config space fields are usually in guest-native endian,\nthe spec for the virtio balloon device explicitly states that both fields\nin its config space are little-endian.\n\nHowever, the current virtio_balloon driver does not have a suitable endian\nswap for the \u0027num_pages\u0027 field, although it does have one for the \u0027actual\u0027\nfield.  This patch corrects the bug, adding sparse annotation while we\u0027re\nat it.\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\n"
    },
    {
      "commit": "f878d0be229ab129bc4b224191f217106a4b0bc1",
      "tree": "8cf8de049cc777be1e55a2d868289b45a1e8b9cf",
      "parents": [
        "04c2322bee841121cfdd7f284e1d4274e9e60e33"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Thu Mar 29 12:58:05 2012 +0530"
      },
      "committer": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Sat Mar 31 08:09:51 2012 +0530"
      },
      "message": "virtio-pci: switch to PM ops macro to initialise PM functions\n\nUse the SET_SYSTEM_SLEEP_PM_OPS macro to initialise the suspend/resume\nfunctions in the new PM API.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\n"
    },
    {
      "commit": "04c2322bee841121cfdd7f284e1d4274e9e60e33",
      "tree": "b1968224ab84bef66adba00d7480d4b449a0c946",
      "parents": [
        "0517fdd156c46c23501451158c6b0ff9fb7236d1"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Thu Mar 29 12:51:41 2012 +0530"
      },
      "committer": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Sat Mar 31 08:09:51 2012 +0530"
      },
      "message": "virtio-pci: S3 support\n\nThere\u0027s no difference in supporting S3 and S4 for virtio devices: the\nvqs have to be re-created as the device has to be assumed to be reset at\nrestore-time.  Since S4 already handles this situation, we can directly\nuse the same code and callbacks for S3 support.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\n"
    },
    {
      "commit": "0517fdd156c46c23501451158c6b0ff9fb7236d1",
      "tree": "8699ac4ba7b4d6dbe01e187293db6c53d0eddb33",
      "parents": [
        "f38f8387cbdc4138a492ce9f2a5f04fd3cd3cf33"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Thu Mar 29 12:54:43 2012 +0530"
      },
      "committer": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Sat Mar 31 08:09:51 2012 +0530"
      },
      "message": "virtio-pci: drop restore_common()\n\nrestore_common() was shared between restore and thaw callbacks.  With\nthaw gone, we don\u0027t need restore_common() anymore.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\n"
    },
    {
      "commit": "f38f8387cbdc4138a492ce9f2a5f04fd3cd3cf33",
      "tree": "037dfe639de15cbf6be59182872531a23cc20398",
      "parents": [
        "e47d854e57698d3be4579d2118f6057f9f12a17c"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Thu Mar 29 12:50:20 2012 +0530"
      },
      "committer": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Sat Mar 31 08:09:50 2012 +0530"
      },
      "message": "virtio: drop thaw PM operation\n\nThe thaw operation was used by the balloon driver, but after the last\ncommit there\u0027s no reason to have separate thaw and restore callbacks.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\n"
    },
    {
      "commit": "e47d854e57698d3be4579d2118f6057f9f12a17c",
      "tree": "7f4eb44f957135d3237a9c3b092698bd81b8d8a8",
      "parents": [
        "fa2a4519cb6ad94224eb56a1341fff570fd44ea1"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Thu Mar 29 12:48:19 2012 +0530"
      },
      "committer": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Sat Mar 31 08:09:50 2012 +0530"
      },
      "message": "virtio: balloon: Allow stats update after restore from S4\n\nThere\u0027s no reason stats update after restore can\u0027t work.  If a host\nrequested for stats, and before servicing the request, the guest entered\nS4, upon restore, the stats request can still be processed and sent off\nto the host.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\n"
    },
    {
      "commit": "9ffc93f203c18a70623f21950f1dd473c9ec48cd",
      "tree": "1eb3536ae183b0bfbf7f5152a6fe4f430ae881c2",
      "parents": [
        "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Remove all #inclusions of asm/system.h\n\nRemove all #inclusions of asm/system.h preparatory to splitting and killing\nit.  Performed with the following command:\n\nperl -p -i -e \u0027s!^#\\s*include\\s*\u003casm/system[.]h\u003e.*\\n!!\u0027 `grep -Irl \u0027^#\\s*include\\s*\u003casm/system[.]h\u003e\u0027 *`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "4eb05d562ea1ea34ff607aa877aefbf05b21c140",
      "tree": "ac0d2afc54f208fce7c91a4f0c3704d95e5d9561",
      "parents": [
        "5ffca28a4ac7abb8a254fafe6bd03b2f83667df7"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Wed Feb 29 17:42:51 2012 +0530"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Mar 01 09:28:41 2012 +1030"
      },
      "message": "virtio: balloon: leak / fill balloon across S4\n\ncommit e562966dbaf49e7804097cd991e5d3a8934fc148 added support for S4 to\nthe balloon driver.  The freeze function did nothing to free the pages,\nsince reclaiming the pages from the host to immediately give them back\n(if S4 was successful) seemed wasteful.  Also, if S4 wasn\u0027t successful,\nthe guest would have to re-fill the balloon.  On restore, the pages were\nsupposed to be marked freed and the free page counters were incremented\nto reflect the balloon was totally deflated.\n\nHowever, this wasn\u0027t done right.  The pages that were earlier taken away\nfrom the guest during a balloon inflation operation were just shown as\nused pages after a successful restore from S4.  Just a fancy way of\nleaking lots of memory.\n\nInstead of trying that, just leak the balloon on freeze and fill it on\nrestore/thaw paths.  This works properly now.  The optimisation to not\nleak can be added later on after a bit of refactoring of the code.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "a72caae21803b74e04e2afda5e035f149d4ea118",
      "tree": "680a59aa70e790a3735ae054be5888c0892ecb41",
      "parents": [
        "4dbc5d9f4f791df8a5879f4a655f517adc7f56d1"
      ],
      "author": {
        "name": "Jason Wang",
        "email": "jasowang@redhat.com",
        "time": "Fri Jan 20 16:17:08 2012 +0800"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jan 28 08:10:23 2012 +1030"
      },
      "message": "virtio: correct the memory barrier in virtqueue_kick_prepare()\n\nUse virtio_mb() to make sure the available index to be exposed before\nchecking the the avail event. Otherwise we may get stale value of\navail event in guest and never kick the host after.\n\nNote: this fixes a bug introduced by ee7cd8981e15bcb365fc762afe3fc47b8242f630.\n\nSigned-off-by: Jason Wang \u003cjasowang@redhat.com\u003e\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "4dbc5d9f4f791df8a5879f4a655f517adc7f56d1",
      "tree": "19c8c31c0f1097887d6fcfea19c1ae30e5a2e5e5",
      "parents": [
        "74ea15d909b31158f9b63190a95b52bc05586d4b"
      ],
      "author": {
        "name": "Jason Wang",
        "email": "jasowang@redhat.com",
        "time": "Fri Jan 20 16:16:59 2012 +0800"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jan 28 08:10:22 2012 +1030"
      },
      "message": "virtio: fix typos of memory barriers\n\nNote: this fixes a bug introduced recently in\n7b21e34fd1c272e3a8c3846168f2f6287a4cd72b.\n\nSigned-off-by: Jason Wang \u003cjasowang@redhat.com\u003e\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e562966dbaf49e7804097cd991e5d3a8934fc148",
      "tree": "08d1b0bda7ddf76d9cce26c1a340ac86de541033",
      "parents": [
        "be91c33dd15eff6b0dffc60cee4c8042e75493d2"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Thu Dec 22 16:58:35 2011 +0530"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:47 2012 +1030"
      },
      "message": "virtio: balloon: Add freeze, restore handlers to support S4\n\nHandling balloon hibernate / restore is tricky.  If the balloon was\ninflated before going into the hibernation state, upon resume, the host\nwill not have any memory of that.  Any pages that were passed on to the\nhost earlier would most likely be invalid, and the host will have to\nre-balloon to the previous value to get in the pre-hibernate state.\n\nSo the only sane thing for the guest to do here is to discard all the\npages that were put in the balloon.  When to discard the pages is the\nnext question.\n\nOne solution is to deflate the balloon just before writing the image to\nthe disk (in the freeze() PM callback).  However, asking for pages from\nthe host just to discard them immediately after seems wasteful of\nresources.  Hence, it makes sense to do this by just fudging our\ncounters soon after wakeup.  This means we don\u0027t deflate the balloon\nbefore sleep, and also don\u0027t put unnecessary pressure on the host.\n\nThis also helps in the thaw case: if the freeze fails for whatever\nreason, the balloon should continue to remain in the inflated state.\nThis was tested by issuing \u0027swapoff -a\u0027 and trying to go into the S4\nstate.  That fails, and the balloon stays inflated, as expected.  Both\nthe host and the guest are happy.\n\nFinally, in the restore() callback, we empty the list of pages that were\npreviously given off to the host, add the appropriate number of pages to\nthe totalram_pages counter, reset the num_pages counter to 0, and\nall is fine.\n\nAs a last step, delete the vqs on the freeze callback to prepare for\nhibernation, and re-create them in the restore and thaw callbacks to\nresume normal operation.\n\nThe kthread doesn\u0027t race with any operations here, since it\u0027s frozen\nbefore the freeze() call and is thawed after the thaw() and restore()\ncallbacks, so we\u0027re safe with that.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "be91c33dd15eff6b0dffc60cee4c8042e75493d2",
      "tree": "0e7738cfa3a30e00ef4ac7a6d87ad5f50e469dc1",
      "parents": [
        "0741bcb5584f9e2390ae6261573c4de8314999f2"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Thu Dec 22 16:58:34 2011 +0530"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:46 2012 +1030"
      },
      "message": "virtio: balloon: Move vq initialization into separate function\n\nThe probe and PM restore functions will share this code.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "f0fe6f11503fa9880867554350ac5d3092c47251",
      "tree": "0f95d79a528809e169a742afeafddd041d275181",
      "parents": [
        "d077536386595309060dda57e7b7474c501a589b"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Thu Dec 22 16:58:26 2011 +0530"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:44 2012 +1030"
      },
      "message": "virtio: pci: add PM notification handlers for restore, freeze, thaw, poweroff\n\nHandle thaw, restore and freeze notifications from the PM core.  Expose\nthese to individual virtio drivers that can quiesce and resume vq\noperations.  For drivers not implementing the thaw() method, use the\nrestore method instead.\n\nThese functions also save device-specific data so that the device can be\nput in pre-suspend state after resume, and disable and enable the PCI\ndevice in the freeze and resume functions, respectively.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d077536386595309060dda57e7b7474c501a589b",
      "tree": "f1da57ea2c6c11057985d317738787661336cf25",
      "parents": [
        "4678d6f970c2f7c0cbfefc0cc666432d153b321b"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Thu Dec 22 16:58:25 2011 +0530"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:44 2012 +1030"
      },
      "message": "virtio: pci: switch to new PM API\n\nThe older PM API doesn\u0027t have a way to get notifications on hibernate\nevents.  Switch to the newer one that gives us those notifications.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e93300b1afc7cd4fe1e741ceaf06714d060e88b8",
      "tree": "060bb46e8d7b570fa08df94aef1cf4cc3620f8c5",
      "parents": [
        "ee7cd8981e15bcb365fc762afe3fc47b8242f630"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:43 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:43 2012 +1030"
      },
      "message": "virtio: add debugging if driver doesn\u0027t kick.\n\nUnder the existing #ifdef DEBUG, check that they don\u0027t have more than\n1/10 of a second between an add_buf() and a\nvirtqueue_notify()/virtqueue_kick_prepare() call.\n\nWe could get false positives on a really busy system, but good for\ndevelopment.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ee7cd8981e15bcb365fc762afe3fc47b8242f630",
      "tree": "dd680789368f78aae6fcfb521fe55d868eff3b5f",
      "parents": [
        "3b720b8c865098c49c1570b6b5c7832bcfa6e6c2"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:43 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:43 2012 +1030"
      },
      "message": "virtio: expose added descriptors immediately.\n\nA virtio driver does virtqueue_add_buf() multiple times before finally\ncalling virtqueue_kick(); previously we only exposed the added buffers\nin the virtqueue_kick() call.  This means we don\u0027t need a memory\nbarrier in virtqueue_add_buf(), but it reduces concurrency as the\ndevice (ie. host) can\u0027t see the buffers until the kick.\n\nIn the unusual (but now possible) case where a driver does add_buf()\nand get_buf() without doing a kick, we do need to insert one before\nour counter wraps.  Otherwise we could wrap num_added, and later on\nnot realize that we have passed the marker where we should have\nkicked.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3b720b8c865098c49c1570b6b5c7832bcfa6e6c2",
      "tree": "7580908e53fb78ddc20945075d7f25408a6325fb",
      "parents": [
        "41f0377f73039ca6fe97a469d1941a89cd9757f1"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:43 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:43 2012 +1030"
      },
      "message": "virtio: avoid modulus operation.\n\nSince we know vq-\u003evring.num is a power of 2, modulus is lazy (it\u0027s asserted\nin vring_new_virtqueue()).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "41f0377f73039ca6fe97a469d1941a89cd9757f1",
      "tree": "380814eb3ad8092069c784539b5b88f8a9506240",
      "parents": [
        "f96fde41f7f9af6cf20f6a1919f5d9670f84d574"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:43 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:43 2012 +1030"
      },
      "message": "virtio: support unlocked queue kick\n\nBased on patch by Christoph for virtio_blk speedup:\n\n\tSplit virtqueue_kick to be able to do the actual notification\n\toutside the lock protecting the virtqueue.  This patch was\n\toriginally done by Stefan Hajnoczi, but I can\u0027t find the\n\toriginal one anymore and had to recreated it from memory.\n\tPointers to the original or corrections for the commit message\n\tare welcome.\n\nStefan\u0027s patch was here:\n\n\thttps://github.com/stefanha/linux/commit/a6d06644e3a58e57a774e77d7dc34c4a5a2e7496\n\thttp://www.spinics.net/lists/linux-virtualization/msg14616.html\n\nThird time\u0027s the charm!\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "f96fde41f7f9af6cf20f6a1919f5d9670f84d574",
      "tree": "14b8a0343b255989ac8ba0ea34e18dca419723df",
      "parents": [
        "5dfc17628d57f9e62043ed0cba03a6e3eb019a78"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:42 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:42 2012 +1030"
      },
      "message": "virtio: rename virtqueue_add_buf_gfp to virtqueue_add_buf\n\nRemove wrapper functions. This makes the allocation type explicit in\nall callers; I used GPF_KERNEL where it seemed obvious, left it at\nGFP_ATOMIC otherwise.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "5dfc17628d57f9e62043ed0cba03a6e3eb019a78",
      "tree": "a488dd3ea081166342904224db3cf039758f23d4",
      "parents": [
        "1e214a5c1a7e901fc8e98ad6ef84f11005f9ee9d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:42 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:42 2012 +1030"
      },
      "message": "virtio: document functions better.\n\nThe old documentation is left over from when we used a structure with\nstrategy pointers.\n\nAnd move the documentation to the C file as per kernel practice.\nThough I disagree...\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "1e214a5c1a7e901fc8e98ad6ef84f11005f9ee9d",
      "tree": "a1d22d7ac078947df76a863aec10e7a20d95f2cd",
      "parents": [
        "7b21e34fd1c272e3a8c3846168f2f6287a4cd72b"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "levinsasha928@gmail.com",
        "time": "Thu Nov 03 10:20:04 2011 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:42 2012 +1030"
      },
      "message": "virtio-balloon: Trivial cleanups\n\nTrivial changes to remove forgotten junk, format comments, and correct names.\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nCc: virtualization@lists.linux-foundation.org\nSigned-off-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "7b21e34fd1c272e3a8c3846168f2f6287a4cd72b",
      "tree": "0f94c9f834f5b7cd8ba87168df892ed17b09cb8f",
      "parents": [
        "e343a895a9f342f239c5e3c5ffc6c0b1707e6244"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:42 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:42 2012 +1030"
      },
      "message": "virtio: harsher barriers for rpmsg.\n\nWe were cheating with our barriers; using the smp ones rather than the\nreal device ones.  That was fine, until rpmsg came along, which is\nused to talk to a real device (a non-SMP CPU).\n\nUnfortunately, just putting back the real barriers (reverting\nd57ed95d) causes a performance regression on virtio-pci.  In\nparticular, Amos reports netbench\u0027s TCP_RR over virtio_net CPU\nutilization increased up to 35% while throughput went down by up to\n14%.\n\nBy comparison, this branch is in the noise.\n\nReference: https://lkml.org/lkml/2011/12/11/22\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b3613118eb30a589d971e4eccbbb2a1314f5dfd4",
      "tree": "868c1ee59e1b5c19a4f2e43716400d0001a994e5",
      "parents": [
        "7505afe28c16a8d386624930a018d0052c75d687",
        "5983fe2b29df5885880d7fa3b91aca306c7564ef"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 02 13:49:21 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 02 13:49:21 2011 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n"
    },
    {
      "commit": "e6af578c5305be693a1bc7f4dc7b51dd82d41425",
      "tree": "7276a130a2d2eddf84660ec2573298e26611a442",
      "parents": [
        "fe1a7fe2c4456679b3402f04268bdfafca7b127a"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu Nov 17 17:41:15 2011 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Nov 24 13:04:48 2011 +1030"
      },
      "message": "virtio-pci: make reset operation safer\n\nvirtio pci device reset actually just does an I/O\nwrite, which in PCI is really posted, that is it\ncan complete on CPU before the device has received it.\n\nFurther, interrupts might have been pending on\nanother CPU, so device callback might get invoked after reset.\n\nThis conflicts with how drivers use reset, which is typically:\n\treset\n\tunregister\na callback running after reset completed can race with\nunregister, potentially leading to use after free bugs.\n\nFix by flushing out the write, and flushing pending interrupts.\n\nThis assumes that device is never reset from\nits vq/config callbacks, or in parallel with being\nadded/removed, document this assumption.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "fe1a7fe2c4456679b3402f04268bdfafca7b127a",
      "tree": "e792020a75a1cd7b2b8d4d41aae7c223d1ade046",
      "parents": [
        "bd20817f733ceb0291e0449106307ffc939006ba"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "levinsasha928@gmail.com",
        "time": "Tue Nov 15 16:17:18 2011 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Nov 24 13:04:47 2011 +1030"
      },
      "message": "virtio-mmio: Correct the name of the guest features selector\n\nGuest features selector spelling mistake.\n\nCc: Pawel Moll \u003cpawel.moll@arm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: virtualization@lists.linux-foundation.org\nSigned-off-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "bd20817f733ceb0291e0449106307ffc939006ba",
      "tree": "90a46ae383c5f79c054f91fb6828c2a23c1a193c",
      "parents": [
        "b4bbb02934e4511d9083f15c23e90703482e84ad"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue Nov 15 10:13:24 2011 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Nov 24 13:04:47 2011 +1030"
      },
      "message": "virtio: add HAS_IOMEM dependency to MMIO platform bus driver\n\nFix this compile error on s390:\n\n  CC [M]  drivers/virtio/virtio_mmio.o\ndrivers/virtio/virtio_mmio.c: In function \u0027vm_get_features\u0027:\ndrivers/virtio/virtio_mmio.c:107:2: error: implicit declaration of function \u0027writel\u0027\n\nCc: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: Pawel Moll \u003cpawel.moll@arm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "efd0bf97deeddd9ba53daabfc470a1399c6b0b2d",
      "tree": "eec56da5fbc796bac7c67f1990a18f5e0a304059",
      "parents": [
        "f8a15af093b19b86d56933c8757cee298d0f32a8",
        "6fe4c6d466e95d31164f14b1ac4aefb51f0f4f82"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 21 13:50:33 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 21 13:50:33 2011 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nThe forcedeth changes had a conflict with the conversion over\nto atomic u64 statistics in net-next.\n\nThe libertas cfg.c code had a conflict with the bss reference\ncounting fix by John Linville in net-next.\n\nConflicts:\n\tdrivers/net/ethernet/nvidia/forcedeth.c\n\tdrivers/net/wireless/libertas/cfg.c\n"
    },
    {
      "commit": "66846048f55c6c05a4c46c2daabb773173f8f28d",
      "tree": "21fdef9bb249056f7f334e67fbbc05a61b0cf9ce",
      "parents": [
        "64882709ef07f3eae29c7afc5aa8b84d12733a72"
      ],
      "author": {
        "name": "Rick Jones",
        "email": "rick.jones2@hp.com",
        "time": "Mon Nov 14 14:17:08 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 16 17:26:46 2011 -0500"
      },
      "message": "enable virtio_net to return bus_info in ethtool -i consistent with emulated NICs\n\nAdd a new .bus_name to virtio_config_ops then modify virtio_net to\ncall through to it in an ethtool .get_drvinfo routine to report\nbus_info in ethtool -i output which is consistent with other\nemulated NICs and the output of lspci.\n\nSigned-off-by: Rick Jones \u003crick.jones2@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "72103bd1285211440621f2c46f4fce377584de54",
      "tree": "5bde795c7150c0802fb5a9c9e8603580e6febeae",
      "parents": [
        "1ea6b8f48918282bdca0b32a34095504ee65bab5"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Mon Nov 07 18:37:05 2011 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Nov 14 11:16:26 2011 +1030"
      },
      "message": "virtio-pci: fix use after free\n\nCommit 31a3ddda166cda86d2b5111e09ba4bda5239fae6 introduced\na use after free in virtio-pci. The main issue is\nthat the release method signals removal of the virtio device,\nwhile remove signals removal of the pci device.\n\nFor example, on driver removal or hot-unplug,\nvirtio_pci_release_dev is called before virtio_pci_remove.\nWe then might get a crash as virtio_pci_remove tries to use the\ndevice freed by virtio_pci_release_dev.\n\nWe allocate/free all resources together with the\npci device, so we can leave the release method empty.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nAcked-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "32aaeffbd4a7457bf2f7448b33b5946ff2a960eb",
      "tree": "faf7ad871d87176423ff9ed1d1ba4d9c688fc23f",
      "parents": [
        "208bca0860406d16398145ddd950036a737c3c9d",
        "67b84999b1a8b1af5625b1eabe92146c5eb42932"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "message": "Merge branch \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\n* \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)\n  Revert \"tracing: Include module.h in define_trace.h\"\n  irq: don\u0027t put module.h into irq.h for tracking irqgen modules.\n  bluetooth: macroize two small inlines to avoid module.h\n  ip_vs.h: fix implicit use of module_get/module_put from module.h\n  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence\n  include: replace linux/module.h with \"struct module\" wherever possible\n  include: convert various register fcns to macros to avoid include chaining\n  crypto.h: remove unused crypto_tfm_alg_modname() inline\n  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE\n  pm_runtime.h: explicitly requires notifier.h\n  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h\n  miscdevice.h: fix up implicit use of lists and types\n  stop_machine.h: fix implicit use of smp.h for smp_processor_id\n  of: fix implicit use of errno.h in include/linux/of.h\n  of_platform.h: delete needless include \u003clinux/module.h\u003e\n  acpi: remove module.h include from platform/aclinux.h\n  miscdevice.h: delete unnecessary inclusion of module.h\n  device_cgroup.h: delete needless include \u003clinux/module.h\u003e\n  net: sch_generic remove redundant use of \u003clinux/module.h\u003e\n  net: inet_timewait_sock doesnt need \u003clinux/module.h\u003e\n  ...\n\nFix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in\n - drivers/media/dvb/frontends/dibx000_common.c\n - drivers/media/video/{mt9m111.c,ov6650.c}\n - drivers/mfd/ab3550-core.c\n - include/linux/dmaengine.h\n"
    },
    {
      "commit": "edfd52e6367270c90f3fd7cc302b375ffa89f91e",
      "tree": "1a847022a6ee87524461ecd2427e7f23acab48ce",
      "parents": [
        "005b20a8e0f587a46a00910ba4507bb9f6da70ea"
      ],
      "author": {
        "name": "Pawel Moll",
        "email": "pawel.moll@arm.com",
        "time": "Mon Oct 24 14:07:03 2011 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Nov 02 11:41:01 2011 +1030"
      },
      "message": "virtio: Add platform bus driver for memory mapped virtio device\n\nThis patch, based on virtio PCI driver, adds support for memory\nmapped (platform) virtio device. This should allow environments\nlike qemu to use virtio-based block \u0026 network devices even on\nplatforms without PCI support.\n\nOne can define and register a platform device which resources\nwill describe memory mapped control registers and \"mailbox\"\ninterrupt. Such device can be also instantiated using the Device\nTree node with compatible property equal \"virtio,mmio\".\n\nCc: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nCc: Michael S.Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Pawel Moll \u003cpawel.moll@arm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "005b20a8e0f587a46a00910ba4507bb9f6da70ea",
      "tree": "b15122f5bcbb4f574286c9fea3251339caa5b5e2",
      "parents": [
        "5e38483b350405542c8080134408fd8897394ba2"
      ],
      "author": {
        "name": "Krishna Kumar",
        "email": "krkumar2@in.ibm.com",
        "time": "Wed Oct 05 11:08:59 2011 +0530"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Nov 02 11:41:01 2011 +1030"
      },
      "message": "virtio: Dont add \"config\" to list for !per_vq_vector\n\nFor the MSI but non-per_vq_vector case, the config/change vq\nalso gets added to the list of vqs that need to process the\nMSI interrupt. This is not needed as config has it\u0027s own\nhandler (vp_config_changed). In any case, vring_interrupt()\nfinds nothing needs to be done on this vq.\n\nI tested this patch by testing the \"Fallback:\" and \"Finally\nfall back\" cases in vp_find_vqs(). Please review.\n\nSigned-off-by: Krishna Kumar \u003ckrkumar2@in.ibm.com\u003e\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b5a2c4f1996d1d258ac10897e0bbb57c6904a735",
      "tree": "c9f577fb362f4416192792062191f6801f6be145",
      "parents": [
        "39a0e33da0189c99ed3cea6945cda1bc9f4b7b83"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Jul 03 16:20:30 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:32:14 2011 -0400"
      },
      "message": "virtio: Add module.h to drivers/virtio users.\n\nUp to now, the module.h header was as hard to keep out as\nsunlight.  But we are cleaning that up.  Fix the virtio users\nwho simply expect module.h to be there in every C file.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "8f9f4668b37bcc877156dd525a856055735c8d24",
      "tree": "a9d0a7cc6729884564f5d2bfb8edbdcc678b3f1c",
      "parents": [
        "ca35a0ef85e8ed6df6d5ab01fb6c3530cca0c469"
      ],
      "author": {
        "name": "Rick Jones",
        "email": "rick.jones2@hp.com",
        "time": "Wed Oct 19 08:10:59 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 24 02:07:21 2011 -0400"
      },
      "message": "Add ethtool -g support to virtio_net\n\nAdd support for reporting ring sizes via ethtool -g to the virtio_net\ndriver.\n\nSigned-off-by: Rick Jones \u003crick.jones2@hp.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e72542191cbba4cf7fda21cb22e26b42d7415daf",
      "tree": "95fc296d2d0d8c9b52183bd664b4ea0b662bb866",
      "parents": [
        "bbd9d6f7fbb0305c9a592bf05a32e87eb364a4ff"
      ],
      "author": {
        "name": "Ohad Ben-Cohen",
        "email": "ohad@wizery.com",
        "time": "Tue Jul 05 17:06:14 2011 +0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jul 23 16:20:30 2011 +0930"
      },
      "message": "virtio: expose for non-virtualization users too\n\nvirtio has been so far used only in the context of virtualization,\nand the virtio Kconfig was sourced directly by the relevant arch\nKconfigs when VIRTUALIZATION was selected.\n\nNow that we start using virtio for inter-processor communications,\nwe need to source the virtio Kconfig outside of the virtualization\nscope too.\n\nMoreover, some architectures might use virtio for both virtualization\nand inter-processor communications, so directly sourcing virtio\nmight yield unexpected results due to conflicting selections.\n\nThe simple solution offered by this patch is to always source virtio\u0027s\nKconfig in drivers/Kconfig, and remove it from the appropriate arch\nKconfigs. Additionally, a virtio menu entry has been added so virtio\ndrivers don\u0027t show up in the general drivers menu.\n\nThis way anyone can use virtio, though it\u0027s arguably less accessible\n(and neat!) for virtualization users now.\n\nNote: some architectures (mips and sh) seem to have a VIRTUALIZATION\nmenu merely for sourcing virtio\u0027s Kconfig, so that menu is removed too.\n\nSigned-off-by: Ohad Ben-Cohen \u003cohad@wizery.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "7ab358c23cbf15cea08129cd722d1ce77433a94d",
      "tree": "713d38823efda30222230314bcae26b919782f16",
      "parents": [
        "4423fe40b03f32b11e72ecfa03077e702e55d5a9"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Fri May 20 02:11:14 2011 +0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon May 30 11:14:16 2011 +0930"
      },
      "message": "virtio: add api for delayed callbacks\n\nAdd an API that tells the other side that callbacks\nshould be delayed until a lot of work has been done.\nImplement using the new event_idx feature.\n\nNote: it might seem advantageous to let the drivers\nask for a callback after a specific capacity has\nbeen reached. However, as a single head can\nfree many entries in the descriptor table,\nwe don\u0027t really have a clue about capacity\nuntil get_buf is called. The API is the simplest\nto implement at the moment, we\u0027ll see what kind of\nhints drivers can pass when there\u0027s more than one\nuser of the feature.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "a5c262c5fd83ece01bd649fb08416c501d4c59d7",
      "tree": "295ddc61d59236b6521f5587e2e78ccb8da5d97a",
      "parents": [
        "bf7035bf20563a6cadcb9e870406e7b21daf5e30"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Fri May 20 02:10:44 2011 +0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon May 30 11:14:15 2011 +0930"
      },
      "message": "virtio_ring: support event idx feature\n\nSupport for the new event idx feature:\n1. When enabling interrupts, publish the current avail index\n   value to the host to get interrupts on the next update.\n2. Use the new avail_event feature to reduce the number\n   of exits from the guest.\n\nSimple test with the simulator:\n\n[virtio]# time ./virtio_test\nspurious wakeus: 0x7\n\nreal    0m0.169s\nuser    0m0.140s\nsys     0m0.019s\n[virtio]# time ./virtio_test --no-event-idx\nspurious wakeus: 0x11\n\nreal    0m0.649s\nuser    0m0.295s\nsys     0m0.335s\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "bf50e69f63d21091e525185c3ae761412be0ba72",
      "tree": "fc88d1e774ae03e680b2fddc265404ee628b8545",
      "parents": [
        "177dbd95637a52b9118aca757d5856ec3995d3e7"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave@linux.vnet.ibm.com",
        "time": "Thu Apr 07 10:43:25 2011 -0700"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon May 30 11:14:13 2011 +0930"
      },
      "message": "virtio balloon: kill tell-host-first logic\n\nThe virtio balloon driver has a VIRTIO_BALLOON_F_MUST_TELL_HOST\nfeature bit.  Whenever the bit is set, the guest kernel must\nalways tell the host before we free pages back to the allocator.\nWithout this feature, we might free a page (and have another\nuser touch it) while the hypervisor is unprepared for it.\n\nBut, if the bit is _not_ set, we are under no obligation to\nreverse the order; we\u0027re under no obligation to do _anything_.\nAs of now, qemu-kvm defines the bit, but doesn\u0027t set it.\n\nThis patch makes the \"tell host first\" logic the only case.  This\nshould make everybody happy, and reduce the amount of untested or\nuntestable code in the kernel.\n\nThis _also_ means that we don\u0027t have to preserve a pfn list\nafter the pages are freed, which should let us get rid of some\ntemporary storage (vb-\u003epfns) eventually.\n\nSigned-off-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "31a3ddda166cda86d2b5111e09ba4bda5239fae6",
      "tree": "9cd6af0a5a7b59b4452db2fa84545ce782c4006b",
      "parents": [
        "b3258ff1d6086bd2b9eeb556844a868ad7d49bc8"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Mon Mar 14 17:45:02 2011 +0530"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Apr 21 22:57:00 2011 +0930"
      },
      "message": "virtio_pci: Prevent double-free of pci regions after device hot-unplug\n\nIn the case where a virtio-console port is in use (opened by a program)\nand a virtio-console device is removed, the port is kept around but all\nthe virtio-related state is assumed to be gone.\n\nWhen the port is finally released (close() called), we call\ndevice_destroy() on the port\u0027s device.  This results in the parent\ndevice\u0027s structures to be freed as well.  This includes the PCI regions\nfor the virtio-console PCI device.\n\nOnce this is done, however, virtio_pci_release_dev() kicks in, as the\nlast ref to the virtio device is now gone, and attempts to do\n\n     pci_iounmap(pci_dev, vp_dev-\u003eioaddr);\n     pci_release_regions(pci_dev);\n     pci_disable_device(pci_dev);\n\nwhich results in a double-free warning.\n\nMove the code that releases regions, etc., to the virtio_pci_remove()\nfunction, and all that\u0027s now left in release_dev is the final freeing of\nthe vp_dev.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b3258ff1d6086bd2b9eeb556844a868ad7d49bc8",
      "tree": "2c9dde005804227038c997a983ded7e46951ca64",
      "parents": [
        "584f79046780e10cb24367a691f8c28398a00e84"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Wed Mar 16 19:12:10 2011 +0530"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Apr 21 22:57:00 2011 +0930"
      },
      "message": "virtio: Decrement avail idx on buffer detach\n\nWhen detaching a buffer from a vq, the avail.idx value should be\ndecremented as well.\n\nThis was noticed by hot-unplugging a virtio console port and then\nplugging in a new one on the same number (re-using the vqs which were\njust \u0027disowned\u0027).  qemu reported\n\n   \u0027Guest moved used index from 0 to 256\u0027\n\nwhen any IO was attempted on the new port.\n\nCC: stable@kernel.org\nReported-by: juzhang \u003cjuzhang@redhat.com\u003e\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "8b3bb3ecf1934ac4a7005ad9017de1127e2fbd2f",
      "tree": "62ccde0eb73a77801b329391aff75be4c96da8eb",
      "parents": [
        "2b8216e6354e7666a2718d4b891c8e8d7fcded27"
      ],
      "author": {
        "name": "Milton Miller",
        "email": "miltonm@bga.com",
        "time": "Fri Jan 07 02:55:06 2011 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 20 21:37:30 2011 +1030"
      },
      "message": "virtio: remove virtio-pci root device\n\nWe sometimes need to map between the virtio device and\nthe given pci device. One such use is OS installer that\ngets the boot pci device from BIOS and needs to\nfind the relevant block device. Since it can\u0027t,\ninstallation fails.\n\nInstead of creating a top-level devices/virtio-pci\ndirectory, create each device under the corresponding\npci device node.  Symlinks to all virtio-pci\ndevices can be found under the pci driver link in\nbus/pci/drivers/virtio-pci/devices, and all virtio\ndevices under drivers/bus/virtio/devices.\n\nSigned-off-by: Milton Miller \u003cmiltonm@bga.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nTested-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nAcked-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nTested-by: \"Daniel P. Berrange\" \u003cberrange@redhat.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "be6528b2e58d92ef2ffed6f130e2d42bb85dbf29",
      "tree": "b16de122d65f8f2891748e76f94bc117dfaaa396",
      "parents": [
        "22e132ff2645aab1e1a25c45e9544a39ae1dc106"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Nov 09 22:20:29 2010 -0800"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Nov 24 15:21:12 2010 +1030"
      },
      "message": "virtio: fix format of sysfs driver/vendor files\n\nThe sysfs files for virtio produce the wrong format and are missing\nthe required newline. The output for virtio bus vendor/device should\nhave the same format as the corresponding entries for PCI devices.\n\nAlthough this technically changes the ABI for sysfs, these files were\nbroken to start with!\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "7ae4b866f86f9ab7b99484b56dd303a860ad1cc9",
      "tree": "247cd281bdf2e892180ff3407377d0a212c30016",
      "parents": [
        "dfd62d1d84d83f9421792c78bcf72de9bc2bb603"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu Nov 04 14:24:24 2010 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Nov 24 15:21:11 2010 +1030"
      },
      "message": "virtio: return correct capacity to users\n\nWe can\u0027t rely on indirect buffers for capacity\ncalculations because they need a memory allocation\nwhich might fail.  In particular, virtio_net can get\ninto this situation under stress, and it drops packets\nand performs badly.\n\nSo return the number of buffers we can guarantee users.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReported-By: Krishna Kumar2 \u003ckrkumar2@in.ibm.com\u003e\n"
    },
    {
      "commit": "1fe9b6fef11771461e69ecd1bc8935a1c7c90cb5",
      "tree": "3ecc82deed99dc11c67d64bfea2737fc68d769d3",
      "parents": [
        "2e65a2075cc740b485ab203430bdf3459d5551b6"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Mon Jul 26 16:55:30 2010 +0930"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 26 08:05:31 2010 -0700"
      },
      "message": "virtio: fix oops on OOM\n\nvirtio ring was changed to return an error code on OOM,\nbut one caller was missed and still checks for vq-\u003evring.num.\nThe fix is just to check for \u003c0 error code.\n\nLong term it might make sense to change goto add_head to\njust return an error on oom instead, but let\u0027s apply\na minimal fix for 2.6.35.\n\nReported-by: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nTested-by: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: stable@kernel.org # .34.x\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b03214d559471359e2a85ae256686381d0672f29",
      "tree": "b2c5d617304bffc8dd4917ecef251ec109eb3b8b",
      "parents": [
        "686d363786a53ed28ee875b84ef24e6d5126ef6f"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Wed Jun 23 22:49:06 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jun 23 22:49:07 2010 +0930"
      },
      "message": "virtio-pci: disable msi at startup\n\nvirtio-pci resets the device at startup by writing to the status\nregister, but this does not clear the pci config space,\nspecifically msi enable status which affects register\nlayout.\n\nThis breaks things like kdump when they try to use e.g. virtio-blk.\n\nFix by forcing msi off at startup. Since pci.c already has\na routine to do this, we export and use it instead of duplicating code.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nTested-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nCc: linux-pci@vger.kernel.org\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "686d363786a53ed28ee875b84ef24e6d5126ef6f",
      "tree": "c97b5c5961df1f051e42a59dcb9ee1884d8f3086",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu Jun 10 18:16:11 2010 +0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Jun 23 22:49:06 2010 +0930"
      },
      "message": "virtio: return ENOMEM on out of memory\n\nadd_buf returns ring size on out of memory,\nthis is not what devices expect.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nAcked-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: stable@kernel.org # .34.x\n"
    },
    {
      "commit": "1756ac3d3c41341297ea25b818b7fce505bb2a9a",
      "tree": "96382220afbb82fd5c576c4c08b3c3e13282851f",
      "parents": [
        "98edb6ca4174f17a64890a02f44c211c8b44fb3c",
        "0643e4c6e4fd67778fa886a89e6ec2320e0ff4d3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:22:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:22:52 2010 -0700"
      },
      "message": "Merge branch \u0027virtio\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* \u0027virtio\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus: (27 commits)\n  drivers/char: Eliminate use after free\n  virtio: console: Accept console size along with resize control message\n  virtio: console: Store each console\u0027s size in the console structure\n  virtio: console: Resize console port 0 on config intr only if multiport is off\n  virtio: console: Add support for nonblocking write()s\n  virtio: console: Rename wait_is_over() to will_read_block()\n  virtio: console: Don\u0027t always create a port 0 if using multiport\n  virtio: console: Use a control message to add ports\n  virtio: console: Move code around for future patches\n  virtio: console: Remove config work handler\n  virtio: console: Don\u0027t call hvc_remove() on unplugging console ports\n  virtio: console: Return -EPIPE to hvc_console if we lost the connection\n  virtio: console: Let host know of port or device add failures\n  virtio: console: Add a __send_control_msg() that can send messages without a valid port\n  virtio: Revert \"virtio: disable multiport console support.\"\n  virtio: add_buf_gfp\n  trans_virtio: use virtqueue_xxx wrappers\n  virtio-rng: use virtqueue_xxx wrappers\n  virtio_ring: remove a level of indirection\n  virtio_net: use virtqueue_xxx wrappers\n  ...\n\nFix up conflicts in drivers/net/virtio_net.c due to new virtqueue_xxx\nwrappers changes conflicting with some other cleanups.\n"
    },
    {
      "commit": "bbd603efb4238cf78083c00f0a81adfa8994aa33",
      "tree": "3980961f9dbf08e748b3c2de56caf43dec21aa76",
      "parents": [
        "dc3f5e68f846eec38fb31d78f0b6e83633ad375e"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu Apr 29 17:26:37 2010 +0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed May 19 22:15:46 2010 +0930"
      },
      "message": "virtio: add_buf_gfp\n\nAdd an add_buf variant that gets gfp parameter. Use that\nto allocate indirect buffers.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "7c5e9ed0c84e7d70d887878574590638d5572659",
      "tree": "c929c367c6854f021b787fa99fc56d37f64d9bc0",
      "parents": [
        "1915a712f210f0b63d10bc4f875e8e66aac7a2c4"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Mon Apr 12 16:19:07 2010 +0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed May 19 22:15:43 2010 +0930"
      },
      "message": "virtio_ring: remove a level of indirection\n\nWe have a single virtqueue_ops implementation,\nand it seems unlikely we\u0027ll get another one\nat this point. So let\u0027s remove an unnecessary\nlevel of indirection: it would be very easy to\nre-add it if another implementation surfaces.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "946cfe0e05664543b22ed674fff3764f41a372c7",
      "tree": "ecab9338ebd5eccf3befbf1325b3705cbf3bbc75",
      "parents": [
        "316f25f5b3d547ce892d370f99f08a27276896ff"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Mon Apr 12 16:18:28 2010 +0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed May 19 22:15:41 2010 +0930"
      },
      "message": "virtio_balloon: use virtqueue_xxx wrappers\n\nSwitch virtio_balloon to new virtqueue_xxx wrappers.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "6c9468e9eb1252eaefd94ce7f06e1be9b0b641b1",
      "tree": "797676a336b050bfa1ef879377c07e541b9075d6",
      "parents": [
        "4cb3ca7cd7e2cae8d1daf5345ec99a1e8502cf3f",
        "c81eddb0e3728661d1585fbc564449c94165cc36"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 23 02:08:44 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 23 02:08:44 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "61fb06cc8e68906fb29d67bd5b6c2d50a95fc9e5",
      "tree": "0019a4794e8060f9c71a4cf6d6a712e204f3e5a7",
      "parents": [
        "b7b6cf005b59ff5a4dba10338954c3dcfc75ef7b"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Apr 22 12:22:34 2010 +0930"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 22 07:34:05 2010 -0700"
      },
      "message": "virtio: Fix GFP flags passed from the virtio balloon driver\n\nThe virtio balloon driver can dig into the reservation pools of the OS\nto satisfy a balloon request.  This is not advisable and other balloon\ndrivers (drivers/xen/balloon.c) avoid this as well.\n\nThe patch also adds changes to avoid printing a warning if allocation\nfails, since we retry after sometime anyway.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: kvm \u003ckvm@vger.kernel.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\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": "88393161210493e317ae391696ee8ef463cb3c23",
      "tree": "6ec81a50d0e8174b415d83948b48cbabd7e54ddb",
      "parents": [
        "932fb06b0898f5883200f1da2e00075f0d70ba9c"
      ],
      "author": {
        "name": "Thomas Weber",
        "email": "swirl@gmx.li",
        "time": "Tue Mar 16 11:47:56 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Mar 16 11:47:56 2010 +0100"
      },
      "message": "Fix typos in comments\n\n[Ss]ytem \u003d\u003e [Ss]ystem\nudpate \u003d\u003e update\nparamters \u003d\u003e parameters\norginal \u003d\u003e original\n\nSigned-off-by: Thomas Weber \u003cswirl@gmx.li\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "bc505f373979692d51a86d40925f77a8b09d17b9",
      "tree": "9a40aee54a4010af3eb0209db49f1193d4e45511",
      "parents": [
        "3119815912a220bdac943dfbdfee640414c0c611"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Sun Nov 29 17:52:00 2009 +0200"
      },
      "committer": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Tue Mar 02 13:41:14 2010 +0200"
      },
      "message": "virtio: set pci bus master enable bit\n\nAs all virtio devices perform DMA, we\nmust enable bus mastering for them to be\nspec compliant.\n\nThis patch fixes hotplug of virtio devices\nwith Linux guests and qemu 0.11-0.12.\n\nTested-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\n"
    },
    {
      "commit": "3119815912a220bdac943dfbdfee640414c0c611",
      "tree": "e8a6923ba0da89d7bb3cc9fd698f8c32a4a2f8ae",
      "parents": [
        "847f9c606cad121cebf984639e3eeee1c4db82f8"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu Feb 25 19:08:55 2010 +0200"
      },
      "committer": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Sun Feb 28 20:39:11 2010 +0200"
      },
      "message": "virtio: fix out of range array access\n\nI have observed the following error on virtio-net module unload:\n\n------------[ cut here ]------------\nWARNING: at kernel/irq/manage.c:858 __free_irq+0xa0/0x14c()\nHardware name: Bochs\nTrying to free already-free IRQ 0\nModules linked in: virtio_net(-) virtio_blk virtio_pci virtio_ring\nvirtio af_packet e1000 shpchp aacraid uhci_hcd ohci_hcd ehci_hcd [last\nunloaded: scsi_wait_scan]\nPid: 1957, comm: rmmod Not tainted 2.6.33-rc8-vhost #24\nCall Trace:\n [\u003cffffffff8103e195\u003e] warn_slowpath_common+0x7c/0x94\n [\u003cffffffff8103e204\u003e] warn_slowpath_fmt+0x41/0x43\n [\u003cffffffff810a7a36\u003e] ? __free_pages+0x5a/0x70\n [\u003cffffffff8107cc00\u003e] __free_irq+0xa0/0x14c\n [\u003cffffffff8107cceb\u003e] free_irq+0x3f/0x65\n [\u003cffffffffa0081424\u003e] vp_del_vqs+0x81/0xb1 [virtio_pci]\n [\u003cffffffffa0091d29\u003e] virtnet_remove+0xda/0x10b [virtio_net]\n [\u003cffffffffa0075200\u003e] virtio_dev_remove+0x22/0x4a [virtio]\n [\u003cffffffff812709ee\u003e] __device_release_driver+0x66/0xac\n [\u003cffffffff81270ab7\u003e] driver_detach+0x83/0xa9\n [\u003cffffffff8126fc66\u003e] bus_remove_driver+0x91/0xb4\n [\u003cffffffff81270fcf\u003e] driver_unregister+0x6c/0x74\n [\u003cffffffffa0075418\u003e] unregister_virtio_driver+0xe/0x10 [virtio]\n [\u003cffffffffa0091c4d\u003e] fini+0x15/0x17 [virtio_net]\n [\u003cffffffff8106997b\u003e] sys_delete_module+0x1c3/0x230\n [\u003cffffffff81007465\u003e] ? old_ich_force_enable_hpet+0x117/0x164\n [\u003cffffffff813bb720\u003e] ? do_page_fault+0x29c/0x2cc\n [\u003cffffffff81028e58\u003e] sysenter_dispatch+0x7/0x27\n---[ end trace 15e88e4c576cc62b ]---\n\nThe bug is in virtio-pci: we use msix_vector as array index to get irq\nentry, but some vqs do not have a dedicated vector so this causes an out\nof bounds access.  By chance, we seem to often get 0 value, which\nresults in this error.\n\nFix by verifying that vector is legal before using it as index.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nAcked-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nAcked-by: Shirley Ma \u003cxma@us.ibm.com\u003e\nAcked-by: Amit Shah \u003camit.shah@redhat.com\u003e\n"
    },
    {
      "commit": "3b8706240ee6084ccb46e53cd3a554356b7eeec8",
      "tree": "213051dfce6ddf5eb09d89ead56214372d200338",
      "parents": [
        "c021eac4148c16bf53baa0dd14e8ebee6f39dab5"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Fri Feb 12 10:32:14 2010 +0530"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Feb 24 14:22:29 2010 +1030"
      },
      "message": "virtio: Initialize vq-\u003edata entries to NULL\n\nvq operations depend on vq-\u003edata[i] being NULL to figure out if the vq\nentry is in use (since the previous patch).\n\nWe have to initialize them to NULL to ensure we don\u0027t work with junk\ndata and trigger false BUG_ONs.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Shirley Ma \u003cxma@us.ibm.com\u003e\n"
    },
    {
      "commit": "c021eac4148c16bf53baa0dd14e8ebee6f39dab5",
      "tree": "558db2ede74488606614d6e7e277f9914e38fbc1",
      "parents": [
        "69740c8ba878f58bc3c71f74618fc2cd1da990da"
      ],
      "author": {
        "name": "Shirley Ma",
        "email": "mashirle@us.ibm.com",
        "time": "Mon Jan 18 19:15:23 2010 +0530"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Feb 24 14:22:27 2010 +1030"
      },
      "message": "virtio: Add ability to detach unused buffers from vrings\n\nThere\u0027s currently no way for a virtio driver to ask for unused\nbuffers, so it has to keep a list itself to reclaim them at shutdown.\nThis is redundant, since virtio_ring stores that information.  So\nadd a new hook to do this.\n\nSigned-off-by: Shirley Ma \u003cxma@us.ibm.com\u003e\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d57ed95da483418e8b0433da693c9168dd0a2df6",
      "tree": "0eb215813f3066bf634a395d02cf4aab3ba94fc6",
      "parents": [
        "97a545ab6ce922a0f868d192718a48a0091ebc5e"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu Jan 28 00:42:23 2010 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Feb 24 14:22:25 2010 +1030"
      },
      "message": "virtio: use smp_XX barriers on SMP\n\nvirtio is communicating with a virtual \"device\" that actually runs on\nanother host processor. Thus SMP barriers can be used to control\nmemory access ordering.\n\nWhere possible, we should use SMP barriers which are more lightweight than\nmandatory barriers, because mandatory barriers also control MMIO effects on\naccesses through relaxed memory I/O windows (which virtio does not use)\n(compare specifically smp_rmb and rmb on x86_64).\n\nWe can\u0027t just use smp_mb and friends though, because\nwe must force memory ordering even if guest is UP since host could be\nrunning on another CPU, but SMP barriers are defined to barrier() in\nthat configuration. So, for UP fall back to mandatory barriers instead.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "97a545ab6ce922a0f868d192718a48a0091ebc5e",
      "tree": "1593d2a0f0ff19c4deb731d6079997e79989c8b1",
      "parents": [
        "28ff4ef71795fe6f6c0cc06a04911c9ca09c2c11"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Feb 24 14:22:22 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Feb 24 14:22:24 2010 +1030"
      },
      "message": "virtio: remove bogus barriers from DEBUG version of virtio_ring.c\n\nWith DEBUG defined, we add an -\u003ein_use flag to detect if the caller\ninvokes two virtio methods in parallel.  The barriers attempt to ensure\ntimely update of the -\u003ein_use flag.\n\nBut they\u0027re voodoo: if we need these barriers it implies that the\ncalling code doesn\u0027t have sufficient synchronization to ensure the\ncode paths aren\u0027t invoked at the same time anyway, and we want to\ndetect it.\n\nAlso, adding barriers changes timing, so turning on debug has more\nchance of hiding real problems.\n\nThanks to MST for drawing my attention to this code...\n\nCC: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "169c246a30808588436794e96a97c61a01af9bed",
      "tree": "cce7c1e1ca52687f711a18f46ea741841f43ea34",
      "parents": [
        "1f34c71afe5115e77a49c4e67720a66e27053e54"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Feb 24 14:22:14 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Feb 24 14:22:17 2010 +1030"
      },
      "message": "virtio: fix balloon without VIRTIO_BALLOON_F_STATS_VQ\n\nWhen running under qemu-kvm-0.11.0:\n\n\tBUG: unable to handle kernel paging request at 56e58955\n\t...\n\tProcess vballoon (pid: 1297, ti\u003dc7976000 task\u003dc70a6ca0 task.ti\u003dc7\n\t...\n\tCall Trace:\n\t [\u003cc88253a3\u003e] ? balloon+0x1b3/0x440 [virtio_balloon]\n\t [\u003cc041c2d7\u003e] ? schedule+0x327/0x9d0\n\t [\u003cc88251f0\u003e] ? balloon+0x0/0x440 [virtio_balloon]\n\t [\u003cc014a2d4\u003e] ? kthread+0x74/0x80\n\t [\u003cc014a260\u003e] ? kthread+0x0/0x80\n\t [\u003cc0103b36\u003e] ? kernel_thread_helper+0x6/0x30\n\nneed_stats_update should be zero-initialized.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\n"
    },
    {
      "commit": "1f34c71afe5115e77a49c4e67720a66e27053e54",
      "tree": "f6481c9a5fbafffd2bd8cbf17274fdc75ffc94b7",
      "parents": [
        "9564e138b1f6eb137f7149772438d3f3fb3277dd"
      ],
      "author": {
        "name": "Adam Litke",
        "email": "agl@us.ibm.com",
        "time": "Thu Dec 10 16:35:15 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Feb 24 14:22:14 2010 +1030"
      },
      "message": "virtio: Fix scheduling while atomic in virtio_balloon stats\n\nThis is a fix for my earlier patch: \"virtio: Add memory statistics reporting to\nthe balloon driver (V4)\".\n\nI discovered that all_vm_events() can sleep and therefore stats collection\ncannot be done in interrupt context.  One solution is to handle the interrupt\nby noting that stats need to be collected and waking the existing vballoon\nkthread which will complete the work via stats_handle_request().  Rusty, is\nthis a saner way of doing business?\n\nThere is one issue that I would like a broader opinion on.  In stats_request, I\nupdate vb-\u003eneed_stats_update and then wake up the kthread.  The kthread uses\nvb-\u003eneed_stats_update as a condition variable.  Do I need a memory barrier\nbetween the update and wake_up to ensure that my kthread sees the correct\nvalue?  My testing suggests that it is not needed but I would like some\nconfirmation from the experts.\n\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nTo: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Anthony Liguori \u003caliguori@linux.vnet.ibm.com\u003e\nCc: linux-kernel@vger.kernel.org\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "9564e138b1f6eb137f7149772438d3f3fb3277dd",
      "tree": "2e53562c2b7ab7051d448b8f81766dc61ad524b5",
      "parents": [
        "1f08b833ddbdb1c8e81c4b1053c2ebb7b89cb437"
      ],
      "author": {
        "name": "Adam Litke",
        "email": "agl@us.ibm.com",
        "time": "Mon Nov 30 10:14:15 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Feb 24 14:22:08 2010 +1030"
      },
      "message": "virtio: Add memory statistics reporting to the balloon driver (V4)\n\nChanges since V3:\n - Do not do endian conversions as they will be done in the host\n - Report stats that reference a quantity of memory in bytes\n - Minor coding style updates\n\nChanges since V2:\n - Increase stat field size to 64 bits\n - Report all sizes in kb (not pages)\n - Drop anon_pages stat and fix endianness conversion\n\nChanges since V1:\n - Use a virtqueue instead of the device config space\n\nWhen using ballooning to manage overcommitted memory on a host, a system for\nguests to communicate their memory usage to the host can provide information\nthat will minimize the impact of ballooning on the guests.  The current method\nemploys a daemon running in each guest that communicates memory statistics to a\nhost daemon at a specified time interval.  The host daemon aggregates this\ninformation and inflates and/or deflates balloons according to the level of\nhost memory pressure.  This approach is effective but overly complex since a\ndaemon must be installed inside each guest and coordinated to communicate with\nthe host.  A simpler approach is to collect memory statistics in the virtio\nballoon driver and communicate them directly to the hypervisor.\n\nThis patch enables the guest-side support by adding stats collection and\nreporting to the virtio balloon driver.\n\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Anthony Liguori \u003canthony@codemonkey.ws\u003e\nCc: virtualization@lists.linux-foundation.org\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (minor fixes)\n"
    }
  ],
  "next": "1f08b833ddbdb1c8e81c4b1053c2ebb7b89cb437"
}
