)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "1f08b833ddbdb1c8e81c4b1053c2ebb7b89cb437",
      "tree": "d6f9a8e468e177ca5ab97c233d827f4698ba8757",
      "parents": [
        "9f3a6284880ceea452903e2043c88d7226736318"
      ],
      "author": {
        "name": "Jamie Lokier",
        "email": "jamie@shareable.org",
        "time": "Fri Jan 08 22:01:43 2010 +0000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Feb 24 14:22:04 2010 +1030"
      },
      "message": "Add __devexit_p around reference to virtio_pci_remove\n\nThis is needed to compile with CONFIG_VIRTIO_PCI\u003dy,\nbecause virtio_pci_remove is marked __devexit.\n\nSigned-off-by: Jamie Lokier \u003cjamie@shareable.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d817cd525589765aa5f6798734e422c867685a58",
      "tree": "bc291ba32d55f79a7a8d499d90e6b9c41b4e1188",
      "parents": [
        "de3fab39348dff18c69a0cd04efee9c276a02f51"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Fri Jan 15 17:01:26 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 12:15:39 2010 -0800"
      },
      "message": "virtio: fix section mismatch warnings\n\nFix fixes the following warnings by renaming the driver structures to be\nsuffixed with _driver.\n\nWARNING: drivers/virtio/virtio_balloon.o(.data+0x88): Section mismatch in reference from the variable virtio_balloon to the function .devexit.text:virtballoon_remove()\n\nWARNING: drivers/char/hw_random/virtio-rng.o(.data+0x88): Section mismatch in reference from the variable virtio_rng to the function .devexit.text:virtrng_remove()\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d61ba95034f1abbdec7729d52c740870a5eddb6",
      "tree": "ec51d4cba4240af6011f4fabfda06a21532761da",
      "parents": [
        "0b22bd0ba0d500ab40e7673c591c594ec5447342"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Sun Oct 25 15:28:53 2009 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Oct 29 08:50:37 2009 +1030"
      },
      "message": "virtio: order used ring after used index read\n\nOn SMP guests, reads from the ring might bypass used index reads. This\ncauses guest crashes because host writes to used index to signal ring\ndata readiness.  Fix this by inserting rmb before used ring reads.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "0b22bd0ba0d500ab40e7673c591c594ec5447342",
      "tree": "09146fc159cc456d79f20f5fb66cbc7bfa8c9871",
      "parents": [
        "964fe080d94db82a3268443e9b9ece4c60246414"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu Oct 22 15:06:06 2009 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Oct 29 08:50:36 2009 +1030"
      },
      "message": "virtio-pci: fix per-vq MSI-X request logic\n\nCommit f68d24082e22ccee3077d11aeb6dc5354f0ca7f1\nin 2.6.32-rc1 broke requesting IRQs for per-VQ MSI-X vectors:\n- vector number was used instead of the vector itself\n- we try to request an IRQ for VQ which does not\n  have a callback handler\n\nThis is a regression that causes warnings in kernel log,\npotentially lower performance as we need to scan vq list,\nand might cause system failure if the interrupt\nrequested is in fact needed by another system.\n\nThis was not noticed earlier because in most cases\nwe were falling back on shared interrupt for all vqs.\n\nThe warnings often look like this:\n\nvirtio-pci 0000:00:03.0: irq 26 for MSI/MSI-X\nvirtio-pci 0000:00:03.0: irq 27 for MSI/MSI-X\nvirtio-pci 0000:00:03.0: irq 28 for MSI/MSI-X\nIRQ handler type mismatch for IRQ 1\ncurrent handler: i8042\nPid: 2400, comm: modprobe Tainted: G        W\n2.6.32-rc3-11952-gf3ed8d8-dirty #1\nCall Trace:\n [\u003cffffffff81072aed\u003e] ? __setup_irq+0x299/0x304\n [\u003cffffffff81072ff3\u003e] ? request_threaded_irq+0x144/0x1c1\n [\u003cffffffff813455af\u003e] ? vring_interrupt+0x0/0x30\n [\u003cffffffff81346598\u003e] ? vp_try_to_find_vqs+0x583/0x5c7\n [\u003cffffffffa0015188\u003e] ? skb_recv_done+0x0/0x34 [virtio_net]\n [\u003cffffffff81346609\u003e] ? vp_find_vqs+0x2d/0x83\n [\u003cffffffff81345d00\u003e] ? vp_get+0x3c/0x4e\n [\u003cffffffffa0016373\u003e] ? virtnet_probe+0x2f1/0x428 [virtio_net]\n [\u003cffffffffa0015188\u003e] ? skb_recv_done+0x0/0x34 [virtio_net]\n [\u003cffffffffa00150d8\u003e] ? skb_xmit_done+0x0/0x39 [virtio_net]\n [\u003cffffffff8110ab92\u003e] ? sysfs_do_create_link+0xcb/0x116\n [\u003cffffffff81345cc2\u003e] ? vp_get_status+0x14/0x16\n [\u003cffffffff81345464\u003e] ? virtio_dev_probe+0xa9/0xc8\n [\u003cffffffff8122b11c\u003e] ? driver_probe_device+0x8d/0x128\n [\u003cffffffff8122b206\u003e] ? __driver_attach+0x4f/0x6f\n [\u003cffffffff8122b1b7\u003e] ? __driver_attach+0x0/0x6f\n [\u003cffffffff8122a9f9\u003e] ? bus_for_each_dev+0x43/0x74\n [\u003cffffffff8122a374\u003e] ? bus_add_driver+0xea/0x22d\n [\u003cffffffff8122b4a3\u003e] ? driver_register+0xa7/0x111\n [\u003cffffffffa001a000\u003e] ? init+0x0/0xc [virtio_net]\n [\u003cffffffff81009051\u003e] ? do_one_initcall+0x50/0x148\n [\u003cffffffff8106e117\u003e] ? sys_init_module+0xc5/0x21a\n [\u003cffffffff8100af02\u003e] ? system_call_fastpath+0x16/0x1b\nvirtio-pci 0000:00:03.0: irq 26 for MSI/MSI-X\nvirtio-pci 0000:00:03.0: irq 27 for MSI/MSI-X\n\nReported-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nReported-by: Shirley Ma \u003cxma@us.ibm.com\u003e\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "1e65175c2c73742495f0e5ca52658539a65825db",
      "tree": "4e6538fa79a04ff5f6666cde1e8b84f7857192a8",
      "parents": [
        "3225beaba05d4f06087593f5e903ce867b6e118a"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Thu Oct 01 10:28:33 2009 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Oct 22 16:39:31 2009 +1030"
      },
      "message": "move virtballoon_remove to .devexit.text\n\nThe function virtballoon_remove is used only wrapped by __devexit_p so\ndefine it using __devexit.\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nAcked-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e95646c3ec33c8ec0693992da4332a6b32eb7e31",
      "tree": "7855767cc4dccdefc4ea64584cc01b64f92176f3",
      "parents": [
        "f8b12e513b953aebf30f8ff7d2de9be7e024dbbe"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Wed Sep 30 11:17:21 2009 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Oct 22 16:39:28 2009 +1030"
      },
      "message": "virtio: let header files include virtio_ids.h\n\nRusty,\n\ncommit 3ca4f5ca73057a617f9444a91022d7127041970a\n    virtio: add virtio IDs file\nmoved all device IDs into a single file. While the change itself is\na very good one, it can break userspace applications. For example\nif a userspace tool wanted to get the ID of virtio_net it used to\ninclude virtio_net.h. This does no longer work, since virtio_net.h\ndoes not include virtio_ids.h.\nThis patch moves all \"#include \u003clinux/virtio_ids.h\u003e\" from the C\nfiles into the header files, making the header files compatible with\nthe old ones.\n\nIn addition, this patch exports virtio_ids.h to userspace.\n\nCC: Fernando Luis Vazquez Cao \u003cfernando@oss.ntt.co.jp\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3ca4f5ca73057a617f9444a91022d7127041970a",
      "tree": "382659da29ad0a2e9878df6c7c4204913ab642e7",
      "parents": [
        "3a20210dc26bbfff3bbb48bb22d2846240b71d8f"
      ],
      "author": {
        "name": "Fernando Luis Vazquez Cao",
        "email": "fernando@oss.ntt.co.jp",
        "time": "Fri Jul 31 15:25:56 2009 +0900"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Sep 23 22:26:32 2009 +0930"
      },
      "message": "virtio: add virtio IDs file\n\nVirtio IDs are spread all over the tree which makes assigning new IDs\nbothersome. Putting them together should make the process less error-prone.\n\nSigned-off-by: Fernando Luis Vazquez Cao \u003cfernando@oss.ntt.co.jp\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3c1b27d5043086a485f8526353ae9fe37bfa1065",
      "tree": "e3b6eda3c66bcd1fc3af6e7fa6e4e3af77459474",
      "parents": [
        "f68d24082e22ccee3077d11aeb6dc5354f0ca7f1"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Sep 23 22:26:31 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Sep 23 22:26:31 2009 +0930"
      },
      "message": "virtio: make add_buf return capacity remaining\n\nThis API change means that virtio_net can tell how much capacity\nremains for buffers.  It\u0027s necessarily fuzzy, since\nVIRTIO_RING_F_INDIRECT_DESC means we can fit any number of descriptors\nin one, *if* we can kmalloc.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Dinesh Subhraveti \u003cdineshs@us.ibm.com\u003e\n"
    },
    {
      "commit": "f68d24082e22ccee3077d11aeb6dc5354f0ca7f1",
      "tree": "22e2ab313dda8217926b0ddf0c760554391ee092",
      "parents": [
        "ebc79c4f8da0f92efa968e0328f32334a2ce80cf"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Sep 23 22:26:29 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Sep 23 22:26:31 2009 +0930"
      },
      "message": "virtio_pci: minor MSI-X cleanups\n\n1) Rename vp_request_vectors to vp_request_msix_vectors, and take\n   non-MSI-X case out to caller.\n2) Comment weird pci_enable_msix API\n3) Rename vp_find_vq to setup_vq.\n4) Fix spaces to tabs\n5) Make nvectors calc internal to vp_try_to_find_vqs()\n6) Rename vector to msix_vector for more clarity.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\n"
    },
    {
      "commit": "e969fed542cae08cb11d666efac4f7c5d624d09f",
      "tree": "7de7cb45ba6b3a28ef0054df71c7dc7676d4af65",
      "parents": [
        "f6c82507030d61e15928d5cad946d3eac1c4a384"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Sun Jul 26 15:48:08 2009 +0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 30 16:03:45 2009 +0930"
      },
      "message": "virtio: refactor find_vqs\n\nThis refactors find_vqs, making it more readable and robust, and fixing\ntwo regressions from 2.6.30:\n- double free_irq causing BUG_ON on device removal\n- probe failure when vq can\u0027t be assigned to msi-x vector\n  (reported on old host kernels)\n\nTested-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "f6c82507030d61e15928d5cad946d3eac1c4a384",
      "tree": "5c0dd65a04424dbcf985a4104a8a244085e2f179",
      "parents": [
        "ff52c3fc7188855ede75d87b022271f0da309e5b"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Sun Jul 26 15:48:01 2009 +0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 30 16:03:44 2009 +0930"
      },
      "message": "virtio: delete vq from list\n\nThis makes delete vq the reverse of find vq.\nThis is required to make it possible to retry find_vqs\nafter a failure, otherwise the list gets corrupted.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ff52c3fc7188855ede75d87b022271f0da309e5b",
      "tree": "e10333755598cfbee6676f75dd87168ecdf2d5ce",
      "parents": [
        "8ef562d112c82ec539775698f8b63ac5ec1bd766"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu Jul 23 14:57:37 2009 +0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 30 16:03:44 2009 +0930"
      },
      "message": "virtio: fix memory leak on device removal\n\nMake vp_free_vectors do the reverse of vq_request_vectors.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "4b892e6582e3a4fe01f623aea386907270d5bf83",
      "tree": "82214468d537c8cf90b1fc0195bf33c688db3bfd",
      "parents": [
        "d9ecdea7ed7467db32ec160f4eca46c279255606"
      ],
      "author": {
        "name": "Mark McLoughlin",
        "email": "markmc@redhat.com",
        "time": "Tue Jul 07 08:26:45 2009 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jul 17 21:47:47 2009 +0930"
      },
      "message": "virtio-pci: correctly unregister root device on error\n\nIf pci_register_driver() fails we\u0027re incorrectly unregistering the root\ndevice with device_unregister() rather than root_device_unregister().\n\nReported-by: Don Zickus \u003cdzickus@redhat.com\u003e\nSigned-off-by: Mark McLoughlin \u003cmarkmc@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e3353853730eb99c56b7b0aed1667d51c0e3699a",
      "tree": "d0da26c34a8ca12a57662830fd698ca6696f3805",
      "parents": [
        "c89e80168ba1ed37627fe03116b0cf8474dcb7e0"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue May 26 15:46:10 2009 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:16:40 2009 +0930"
      },
      "message": "virtio: enhance id_matching for virtio drivers\n\nThis patch allows a virtio driver to use VIRTIO_DEV_ANY_ID for the\ndevice id. This will be used by a test module that can be bound to\nany virtio device.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "c89e80168ba1ed37627fe03116b0cf8474dcb7e0",
      "tree": "3314d284cca77dc81913877d1cf58838186e7e85",
      "parents": [
        "594de1dd6449f79c99e1ba4577ea0e4e06e2b405"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue May 26 15:46:09 2009 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:16:40 2009 +0930"
      },
      "message": "virtio: fix id_matching for virtio drivers\n\nThis bug never appeared, since all current virtio drivers use\nVIRTIO_DEV_ANY_ID for the vendor field. If a real vendor would be used,\nthe check in virtio_id_match is wrong - it returns 0 if\nid-\u003evendor \u003d\u003d dev-\u003eid.vendor.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "9fa29b9df32ba4db055f3977933cd0c1b8fe67cd",
      "tree": "c44177d2d352f74300fe9124decc6462c8804bbe",
      "parents": [
        "ee006b353f1ca8c9a8470b72b462beb011d62e32"
      ],
      "author": {
        "name": "Mark McLoughlin",
        "email": "markmc@redhat.com",
        "time": "Mon May 11 18:11:45 2009 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:16:39 2009 +0930"
      },
      "message": "virtio: indirect ring entries (VIRTIO_RING_F_INDIRECT_DESC)\n\nAdd a new feature flag for indirect ring entries. These are ring\nentries which point to a table of buffer descriptors.\n\nThe idea here is to increase the ring capacity by allowing a larger\neffective ring size whereby the ring size dictates the number of\nrequests that may be outstanding, rather than the size of those\nrequests.\n\nThis should be most effective in the case of block I/O where we can\npotentially benefit by concurrently dispatching a large number of\nlarge requests. Even in the simple case of single segment block\nrequests, this results in a threefold increase in ring capacity.\n\nSigned-off-by: Mark McLoughlin \u003cmarkmc@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "a92892825a122a74ddad1d408fa27132e28b05ae",
      "tree": "c8dad18eb7842a10a33cdf632b5e0a0aa8fdf778",
      "parents": [
        "82af8ce84ed65d2fb6d8c017d3f2bbbf161061fb"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:16:37 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:16:38 2009 +0930"
      },
      "message": "virtio: expose features in sysfs\n\nEach device negotiates feature bits; expose these in sysfs to help\ndiagnostics and debugging.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "82af8ce84ed65d2fb6d8c017d3f2bbbf161061fb",
      "tree": "aed59c86724c7d3f565d1c60b38d25a7bf20985b",
      "parents": [
        "77cf524654a886e0fbbf03b16b44f048deef7b0c"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu May 14 13:55:41 2009 +0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:16:37 2009 +0930"
      },
      "message": "virtio_pci: optional MSI-X support\n\nThis implements optional MSI-X support in virtio_pci.\nMSI-X is used whenever the host supports at least 2 MSI-X\nvectors: 1 for configuration changes and 1 for virtqueues.\nPer-virtqueue vectors are allocated if enough vectors\navailable.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nAcked-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (+ whitespace, style)\n"
    },
    {
      "commit": "77cf524654a886e0fbbf03b16b44f048deef7b0c",
      "tree": "4b55884ceade70463c53517eae382f0412cc317c",
      "parents": [
        "d2a7ddda9ffb1c8961abff6714b0f1eb925c120f"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu May 14 13:55:31 2009 +0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:16:37 2009 +0930"
      },
      "message": "virtio_pci: split up vp_interrupt\n\nThis reorganizes virtio-pci code in vp_interrupt slightly, so that\nit\u0027s easier to add per-vq MSI support on top.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d2a7ddda9ffb1c8961abff6714b0f1eb925c120f",
      "tree": "1090884fd260d042255255467367e4e6b6193e5d",
      "parents": [
        "9499f5e7ed5224c40706f0cec6542a9916bc7606"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Fri Jun 12 22:16:36 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:16:36 2009 +0930"
      },
      "message": "virtio: find_vqs/del_vqs virtio operations\n\nThis replaces find_vq/del_vq with find_vqs/del_vqs virtio operations,\nand updates all drivers. This is needed for MSI support, because MSI\nneeds to know the total number of vectors upfront.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (+ lguest/9p compile fixes)\n"
    },
    {
      "commit": "9499f5e7ed5224c40706f0cec6542a9916bc7606",
      "tree": "3e4e1b36d3d549ea356e88e6e44359a887c6ee01",
      "parents": [
        "ef688e151c00e5d529703be9a04fd506df8bc54e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:16:35 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:16:36 2009 +0930"
      },
      "message": "virtio: add names to virtqueue struct, mapping from devices to queues.\n\nAdd a linked list of all virtqueues for a virtio device: this helps for\ndebugging and is also needed for upcoming interface change.\n\nAlso, add a \"name\" field for clearer debug messages.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ef688e151c00e5d529703be9a04fd506df8bc54e",
      "tree": "841d0b0bcd8a5f72f8d8bdc455672d9a6e7468ca",
      "parents": [
        "20f77f5654042cf484d8964b618faf9d620f639b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:16:35 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:16:35 2009 +0930"
      },
      "message": "virtio: meet virtio spec by finalizing features before using device\n\nVirtio devices are supposed to negotiate features before they start using\nthe device, but the current code doesn\u0027t do this.  This is because the\ndriver\u0027s probe() function invariably has to add buffers to a virtqueue,\nor probe the disk (virtio_blk).\n\nThis currently doesn\u0027t matter since no existing backend is strict about\nthe feature negotiation.  But it\u0027s possible to imagine a future feature\nwhich completely changes how a device operates: in this case, we\u0027d need\nto acknowledge it before using the device.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "84a139a985300901dfad99bd93c7345d180af860",
      "tree": "62a8921435f17551db2f26c8f0755f4ab508f537",
      "parents": [
        "a489f0b555b753f9df8ddc24c7e74f657ef7ee7b"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Thu Apr 16 21:14:04 2009 -0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sun Apr 19 23:14:01 2009 +0930"
      },
      "message": "virtio: fix suspend when using virtio_balloon\n\nBreak out of wait_event_interruptible() if freezing has been requested,\nin the vballoon thread. Without this change vballoon refuses to stop and\nthe system can\u0027t suspend.\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "c5f841f1780dad7efb7eca092f60742d47f47d25",
      "tree": "6a27622d96f5327408c75b914c3a54120dc1d866",
      "parents": [
        "3a35ce7dcefe9e80a00603a195269fbaf6e7d901"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 21:55:22 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 21:55:23 2009 +1030"
      },
      "message": "virtio: more neatening of virtio_ring macros.\n\nImpact: cleanup\n\nRoel Kluin drew attention to these macros with his patch: here I\nneaten them a little further:\n1) Add a comment on what START_USE and END_USE are checking,\n2) Brackets around _vq in BAD_RING,\n3) Neaten formatting for START_USE so it\u0027s less than 80 cols.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3a35ce7dcefe9e80a00603a195269fbaf6e7d901",
      "tree": "23d814e318c36d7a9fe601be2f535da45bceec56",
      "parents": [
        "0d34fb8e93ceba7b6dad0062dbb4a0813bacd75b"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Thu Jan 22 16:42:57 2009 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 21:55:22 2009 +1030"
      },
      "message": "virtio: fix BAD_RING, START_US and END_USE macros\n\nImpact: cleanup\n\nfix BAD_RING, START_US and END_USE macros\n\nWhen these macros aren\u0027t called with a variable named vq as first\nargument, this would result in a build failure.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3fff0179e33cd7d0a688dab65700c46ad089e934",
      "tree": "34c30ceedb3c5ae5cb6a5fb8d1c62aed7c845054",
      "parents": [
        "720eba31f47aeade8ec130ca7f4353223c49170f"
      ],
      "author": {
        "name": "Mark McLoughlin",
        "email": "markmc@redhat.com",
        "time": "Tue Feb 03 13:33:53 2009 +1030"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 02 19:17:56 2009 -0800"
      },
      "message": "virtio-pci: do not oops on config change if driver not loaded\n\nThe host really shouldn\u0027t be notifying us of config changes\nbefore the device status is VIRTIO_CONFIG_S_DRIVER or\nVIRTIO_CONFIG_S_DRIVER_OK.\n\nHowever, if we do happen to be interrupted while we\u0027re not\nattached to a driver, we really shouldn\u0027t oops. Prevent\nthis simply by checking that device-\u003edriver is non-NULL\nbefore trying to notify the driver of config changes.\n\nProblem observed by doing a \"set_link virtio.0 down\" with\nQEMU before the net driver had been loaded.\n\nSigned-off-by: Mark McLoughlin \u003cmarkmc@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "63d12556703f17817a46e140704360b29b851bad",
      "tree": "be9741e515a075010e2fbb217ea0c41b85613ca2",
      "parents": [
        "0aa0dc41bfd993491c2344870eee7a3b218551fb"
      ],
      "author": {
        "name": "Mark McLoughlin",
        "email": "markmc@redhat.com",
        "time": "Mon Dec 15 12:58:27 2008 +0000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 06 10:44:34 2009 -0800"
      },
      "message": "virtio: do not statically allocate root device\n\nWe shouldn\u0027t be statically allocating the root device object,\nso dynamically allocate it using root_device_register()\ninstead.\n\nAlso avoids this warning from \u0027rmmod virtio_pci\u0027:\n\n  Device \u0027virtio-pci\u0027 does not have a release() function, it is broken and must be fixed\n\nSigned-off-by: Mark McLoughlin \u003cmarkmc@redhat.com\u003e\nCc: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "29f9f12ec737af62835124e4a8bdb9de631f04dd",
      "tree": "2323188170fb6462d45f34e4dfd2f34120057a76",
      "parents": [
        "b194aee95622f649311f8e53418a17e210ff6827"
      ],
      "author": {
        "name": "Mark McLoughlin",
        "email": "markmc@redhat.com",
        "time": "Wed Dec 10 17:45:34 2008 +0000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:26:10 2008 +1030"
      },
      "message": "virtio: add PCI device release() function\n\nAdd a release() function for virtio_pci devices so as to avoid:\n\n  Device \u0027virtio0\u0027 does not have a release() function, it is broken and must be fixed\n\nMove the code to free the resources associated with the device\nfrom virtio_pci_remove() into this new function. virtio_pci_remove()\nnow merely unregisters the device which should cause the final\nref to be dropped and virtio_pci_release_dev() to be called.\n\nSigned-off-by: Mark McLoughlin \u003cmarkmc@redhat.com\u003e\nReported-by: Michael Tokarev \u003cmjt@tls.msk.ru\u003e\nCc: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "1b4aa2faeca1b9922033daf2475b6fc13b0ffea6",
      "tree": "b94e3f4ec45151e51ad1b3dfecabc5391684c725",
      "parents": [
        "87c7d57c17ade5024d95b6ca0da249da49b0672a"
      ],
      "author": {
        "name": "Hollis Blanchard",
        "email": "hollisb@us.ibm.com",
        "time": "Thu Nov 13 15:48:33 2008 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:26:04 2008 +1030"
      },
      "message": "virtio: avoid implicit use of Linux page size in balloon interface\n\nMake the balloon interface always use 4K pages, and convert Linux pfns if\nnecessary. This patch assumes that Linux\u0027s PAGE_SHIFT will never be less than\n12.\n\nSigned-off-by: Hollis Blanchard \u003chollisb@us.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (modified)\n"
    },
    {
      "commit": "87c7d57c17ade5024d95b6ca0da249da49b0672a",
      "tree": "2ffeaae5c2e5ed9a72efec6466678fb797c4cdfa",
      "parents": [
        "db40598863e8cbbd11053ad3c8bae89000f603f9"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:26:03 2008 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:26:03 2008 +1030"
      },
      "message": "virtio: hand virtio ring alignment as argument to vring_new_virtqueue\n\nThis allows each virtio user to hand in the alignment appropriate to\ntheir virtio_ring structures.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\n"
    },
    {
      "commit": "498af14783935af487d17dbee4ac451783cbc2b7",
      "tree": "db7a61d88f8eee05e65ac832f571440640299869",
      "parents": [
        "5f0d1d7f2286c8a02dab69f5f0bd51681fab161e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:25:57 2008 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:25:58 2008 +1030"
      },
      "message": "virtio: Don\u0027t use PAGE_SIZE for vring alignment in virtio_pci.\n\nThat doesn\u0027t work for non-4k guests which are now appearing.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    }
  ],
  "next": "480daab42c4dd74b3c07031ddf9031251c530c77"
}
