)]}'
{
  "log": [
    {
      "commit": "f4892d440bd750a4468dcec0e65caa2105c97a93",
      "tree": "0ca08a0a0d16be6aecb33a22efc80912e78638fb",
      "parents": [
        "bf6cccb0062609fae3137d95dd0b0bbbda866303"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Nov 13 15:07:32 2013 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon May 26 10:30:04 2014 +0200"
      },
      "message": "add WIP lionhead machine\n\nlionhead is an emulator-only platform based on the ARM vexpress board.\nThe current differences are:\n\n1. replace ARM LCDC and audio devices with virtual goldfish devices\n2. remove MMC controller (better handled by virtio)\n3. add goldfish battery device (using I/O space reclaimed from MMC)\n4. remove \"legacy\" motherboard layout\n"
    },
    {
      "commit": "bf6cccb0062609fae3137d95dd0b0bbbda866303",
      "tree": "a7f5523a9062a09c9749722da71e7069f446c5b2",
      "parents": [
        "be6c9427b401e2b333004899d57a9b501b3668fd"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Nov 13 16:33:26 2013 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon May 26 10:30:04 2014 +0200"
      },
      "message": "goldfish_battery: port to modern qemu apis\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "be6c9427b401e2b333004899d57a9b501b3668fd",
      "tree": "4963ebc469111e0dceac2eb5d5363495251b3d9f",
      "parents": [
        "8b536b4565cb3466ce0bf3e1b3557bd68b147400"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Nov 13 15:56:08 2013 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon May 26 10:30:04 2014 +0200"
      },
      "message": "import goldfish_battery from android\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "8b536b4565cb3466ce0bf3e1b3557bd68b147400",
      "tree": "3e57ba1c8c83bfc50533fff93d5145f5b54690a5",
      "parents": [
        "3b9fe9c1fcbac7741d9d33ce014fac1b22f44999"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Nov 05 11:08:42 2013 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon May 26 10:30:04 2014 +0200"
      },
      "message": "goldfish_audio: port to modern qemu apis\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "3b9fe9c1fcbac7741d9d33ce014fac1b22f44999",
      "tree": "30abcc7a63a9864b29ee05d3aadcdf1c7c9a0bad",
      "parents": [
        "4e1c636354fe53391a250803f58a7f70d1b1f36e"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Nov 05 11:11:49 2013 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon May 26 10:30:04 2014 +0200"
      },
      "message": "goldfish_audio: remove code to read audio input from disk\n\nEven on the android qemu, there are syntax errors when USE_QEMU_AUDIO_IN\nis defined to 0 or left undefined.  No point in trying to port something\nthat doesn\u0027t work.\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "4e1c636354fe53391a250803f58a7f70d1b1f36e",
      "tree": "01dded27dd41db62dc121d340c5cc0fb8b984077",
      "parents": [
        "56fb4800138d4e3dfa0fcbdcca9a1a380800e95e"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Thu Oct 31 13:46:44 2013 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon May 26 10:30:04 2014 +0200"
      },
      "message": "import goldfish_audio from android\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "56fb4800138d4e3dfa0fcbdcca9a1a380800e95e",
      "tree": "a9807a5a0a9213eb68d4221b7b0e589ecaed15fd",
      "parents": [
        "99bf0faa8b5ee6057ca129ae22b7b899165400b0"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Oct 28 10:26:11 2013 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon May 26 10:30:04 2014 +0200"
      },
      "message": "goldfish_fb: port to modern qemu apis\n\nThe device/object APIs and display APIs have been significantly\nrefactored.  qemu also has a tracing API which can replace the debugging\nprintfs.\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "99bf0faa8b5ee6057ca129ae22b7b899165400b0",
      "tree": "943ca81681b6cd752059af35d56ad72e3ed1b4eb",
      "parents": [
        "522d420505f60e50e2a1b25bc771dcbea3f896ec"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Oct 28 11:03:32 2013 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon May 26 10:30:04 2014 +0200"
      },
      "message": "HACK: goldfish_fb: disable UI rotation events\n\nIt\u0027s not clear how this worked or how to port it to the new display API,\nso disable it for now\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "522d420505f60e50e2a1b25bc771dcbea3f896ec",
      "tree": "f816058ed98c90c315fea55ac317b4b8989a6f76",
      "parents": [
        "6f52d5b27bc9281eda36bfad383f380160d06c02"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Oct 28 10:12:05 2013 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon May 26 10:30:04 2014 +0200"
      },
      "message": "HACK: goldfish_fb: remove FB_GET_FORMAT register\n\nFB_GET_FORMAT and associated code poke at a bunch of display internals,\nbut are never referenced by the kernel.  Revisit on top of the new qemu\ndisplay API if/when it\u0027s needed by the kernel.\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "6f52d5b27bc9281eda36bfad383f380160d06c02",
      "tree": "47fcf14b39a9b09bfee74b329ac18cbcffc24311",
      "parents": [
        "178ac111bca16c08a79b2609ebdc75197bea976a"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Oct 28 10:09:40 2013 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon May 26 10:30:04 2014 +0200"
      },
      "message": "import goldfish_fb from android\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "178ac111bca16c08a79b2609ebdc75197bea976a",
      "tree": "d71997ac5687bf97ca2477f8f54e2edced71d2a6",
      "parents": [
        "6054d883d6138bfc92c73a7c090c824b64086fd2",
        "fc13d937269c1cd01a4b7720c1dcce01722727a2"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 22 19:04:48 2014 +0100"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 22 19:04:49 2014 +0100"
      },
      "message": "Merge remote-tracking branch \u0027remotes/qmp-unstable/queue/qmp\u0027 into staging\n\n* remotes/qmp-unstable/queue/qmp:\n  qapi: zero-initialize all QMP command parameters\n  scripts/qapi.py: Avoid syntax not supported by Python 2.4\n  doc: add \"setup\" to list of migration states\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\n"
    },
    {
      "commit": "6054d883d6138bfc92c73a7c090c824b64086fd2",
      "tree": "3ac0d7a468e313793ebd94a1d4002621b3c61fa8",
      "parents": [
        "5118dc5975e6aa2e823961e15b162919f94721cc",
        "d2e064a73ee7e5af244ff7b6406ac2344bbaa231"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 22 18:14:01 2014 +0100"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 22 18:14:01 2014 +0100"
      },
      "message": "Merge remote-tracking branch \u0027remotes/kraxel/tags/pull-chardev-2\u0027 into staging\n\npurge error_is_set()\n\n# gpg: Signature made Wed 21 May 2014 11:43:44 BST using RSA key ID D3E87138\n# gpg: Good signature from \"Gerd Hoffmann (work) \u003ckraxel@redhat.com\u003e\"\n# gpg:                 aka \"Gerd Hoffmann \u003cgerd@kraxel.org\u003e\"\n# gpg:                 aka \"Gerd Hoffmann (private) \u003ckraxel@gmail.com\u003e\"\n\n* remotes/kraxel/tags/pull-chardev-2:\n  error: error_is_set() is finally unused; remove\n  char: Explain qmp_chardev_add()\u0027s unusual error handling\n  char: Clean up fragile use of error_is_set()\n  char: Use return values instead of error_is_set(errp)\n  qemu-socket: Clean up inet_connect_opts()\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\n"
    },
    {
      "commit": "5118dc5975e6aa2e823961e15b162919f94721cc",
      "tree": "73d24b76ff3e274f4e55646ff184512d362b0eb8",
      "parents": [
        "45e66b7beb275bd1f8c4e56fe97dfb88b35345d0",
        "b1fe60cd3525871a4c593ad8c2b39b89c19c00d0"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 22 17:05:36 2014 +0100"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 22 17:05:36 2014 +0100"
      },
      "message": "Merge remote-tracking branch \u0027remotes/kraxel/tags/pull-audio-5\u0027 into staging\n\naudio: two intel-hda fixes.\n\n# gpg: Signature made Wed 21 May 2014 09:49:39 BST using RSA key ID D3E87138\n# gpg: Good signature from \"Gerd Hoffmann (work) \u003ckraxel@redhat.com\u003e\"\n# gpg:                 aka \"Gerd Hoffmann \u003cgerd@kraxel.org\u003e\"\n# gpg:                 aka \"Gerd Hoffmann (private) \u003ckraxel@gmail.com\u003e\"\n\n* remotes/kraxel/tags/pull-audio-5:\n  hw/audio/intel-hda: Avoid shift into sign bit\n  audio/intel-hda: support FIFORDY\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\n"
    },
    {
      "commit": "45e66b7beb275bd1f8c4e56fe97dfb88b35345d0",
      "tree": "13cc43771882428461178db14f7cefad2f8ae07c",
      "parents": [
        "65903a8b0807dbe2983910060f5754d27762faed",
        "770a63792b2c9a3f9565b68b0a7ef0be6883f551"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 22 16:14:01 2014 +0100"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 22 16:14:02 2014 +0100"
      },
      "message": "Merge remote-tracking branch \u0027remotes/cohuck/tags/s390x-20140520\u0027 into staging\n\nsome s390 patches:\n\n- Enable irqfds on s390 via the new adapter interrupt routing type.\n  As a prereq, fix the kvm enable_cap helpers for some compilers and\n  split the s390 flic into kvm and non-kvm parts.\n- Enable software and hardware debugging support on s390. This needs a\n  kernel headers update.\n\n# gpg: Signature made Tue 20 May 2014 12:30:54 BST using RSA key ID C6F02FAF\n# gpg: Can\u0027t check signature: public key not found\n\n* remotes/cohuck/tags/s390x-20140520:\n  s390x/kvm: hw debugging support via guest PER facility\n  s390x/kvm: software breakpoint support\n  s390x: remove duplicate definitions of DIAG 501\n  linux-headers: update\n  s390x/virtio-ccw: wire up irq routing and irqfds\n  s390x/virtio-ccw: reference-counted indicators\n  s390x: add I/O adapter registration\n  s390x: split flic into kvm and non-kvm parts\n  kvm: Fix enable_cap helpers on older gcc\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\n"
    },
    {
      "commit": "65903a8b0807dbe2983910060f5754d27762faed",
      "tree": "150f41181a390d3d14c48c68b6ded8b3389442a9",
      "parents": [
        "ca8c0fab9504f000216308cafc833eb957fe9284",
        "5a7733b0b728bb4900bdeed12fef22651ce0ab58"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 22 15:27:46 2014 +0100"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 22 15:27:46 2014 +0100"
      },
      "message": "Merge remote-tracking branch \u0027remotes/bonzini/scsi-next\u0027 into staging\n\n* remotes/bonzini/scsi-next:\n  megasas: remove buildtime strings\n  block: iscsi build fix if LIBISCSI_FEATURE_IOVECTOR is not defined\n  virtio-scsi: Plug memory leak on virtio_scsi_push_event() error path\n  scsi: Document intentional fall through in scsi_req_length()\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\n"
    },
    {
      "commit": "fc13d937269c1cd01a4b7720c1dcce01722727a2",
      "tree": "394f5db89292f081978466db6efbb8748b1216e1",
      "parents": [
        "347888113020e874027cb200bb38aa0852e42839"
      ],
      "author": {
        "name": "Michael Roth",
        "email": "mdroth@linux.vnet.ibm.com",
        "time": "Tue May 20 12:20:39 2014 -0500"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Wed May 21 09:25:31 2014 -0400"
      },
      "message": "qapi: zero-initialize all QMP command parameters\n\nIn general QMP command parameter values are specified by consumers of the\nQMP/HMP interface, but in the case of optional parameters these values may\nbe left uninitialized.\n\nIt is considered a bug for code to make use of optional parameters that have\nnot been flagged as being present by the marshalling code (via corresponding\nhas_\u003cparameter\u003e parameter), however our marshalling code will still pass\nthese uninitialized values on to the corresponding QMP function (to then\nbe ignored). Some compilers (clang in particular) consider this unsafe\nhowever, and generate warnings as a result. As reported by Peter Maydell:\n\n  This is something clang\u0027s -fsanitize\u003dundefined spotted. The\n  code generated by qapi-commands.py in qmp-marshal.c for\n  qmp_marshal_* functions where there are some optional\n  arguments looks like this:\n\n      bool has_force \u003d false;\n      bool force;\n\n      mi \u003d qmp_input_visitor_new_strict(QOBJECT(args));\n      v \u003d qmp_input_get_visitor(mi);\n      visit_type_str(v, \u0026device, \"device\", errp);\n      visit_start_optional(v, \u0026has_force, \"force\", errp);\n      if (has_force) {\n          visit_type_bool(v, \u0026force, \"force\", errp);\n      }\n      visit_end_optional(v, errp);\n      qmp_input_visitor_cleanup(mi);\n\n      if (error_is_set(errp)) {\n          goto out;\n      }\n      qmp_eject(device, has_force, force, errp);\n\n  In the case where has_force is false, we never initialize\n  force, but then we use it by passing it to qmp_eject.\n  I imagine we don\u0027t then actually use the value, but clang\n  complains in particular for \u0027bool\u0027 variables because the value\n  that ends up being loaded from memory for \u0027force\u0027 is not either\n  0 or 1 (being uninitialized stack contents).\n\nFix this by initializing all QMP command parameters to {0} in the\nmarshalling code prior to passing them on to the QMP functions.\n\nSigned-off-by: Michael Roth \u003cmdroth@linux.vnet.ibm.com\u003e\nReported-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nTested-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nReviewed-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "347888113020e874027cb200bb38aa0852e42839",
      "tree": "4aaeb260b28e6fa01dcb7fa2ff1fe87e34e2fd47",
      "parents": [
        "3b6959506831193f37cc830c8e111b437c0d1380"
      ],
      "author": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Tue May 20 13:50:19 2014 -0400"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Wed May 21 09:04:03 2014 -0400"
      },
      "message": "scripts/qapi.py: Avoid syntax not supported by Python 2.4\n\nThe Python \"except Foo as x\" syntax was only introduced in\nPython 2.6, but we aim to support Python 2.4 and later.\nUse the old-style \"except Foo, x\" syntax instead, thus\nfixing configure/compile on systems with older Python.\n\nReported-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nTested-by: Andreas Färber \u003candreas.faerber@web.de\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "d2e064a73ee7e5af244ff7b6406ac2344bbaa231",
      "tree": "770c7e1d9a1b6769d9debba33142d78e15de4cff",
      "parents": [
        "3894c78764e1e6d8ef82c7c097749d10cf8c3981"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Mon May 19 18:57:38 2014 +0200"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Wed May 21 11:57:58 2014 +0200"
      },
      "message": "error: error_is_set() is finally unused; remove\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n"
    },
    {
      "commit": "3894c78764e1e6d8ef82c7c097749d10cf8c3981",
      "tree": "396605853d833088eb940e03b62d76ac3046f696",
      "parents": [
        "0aff637e920c0cdb74338c6f57005f2d7cab63d6"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Mon May 19 18:57:36 2014 +0200"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Wed May 21 11:57:58 2014 +0200"
      },
      "message": "char: Explain qmp_chardev_add()\u0027s unusual error handling\n\nCharacter backend open hasn\u0027t been fully converted to the Error API.\nSome opens fail without setting an error.  qmp_chardev_add() needs to\ndetect when that happens, and set a generic error.  Explain that in a\ncomment, and inline error_is_set() for clarity.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n"
    },
    {
      "commit": "0aff637e920c0cdb74338c6f57005f2d7cab63d6",
      "tree": "84147a3754c8ec1434ecc26291cb4d43e903b0dd",
      "parents": [
        "5f758366c0710d23e43f4d0f83816b98616a13d0"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Mon May 19 18:57:35 2014 +0200"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Wed May 21 11:57:58 2014 +0200"
      },
      "message": "char: Clean up fragile use of error_is_set()\n\nUsing error_is_set(ERRP) to find out whether a function failed is\neither wrong, fragile, or unnecessarily opaque.  It\u0027s wrong when ERRP\nmay be null, because errors go undetected when it is.  It\u0027s fragile\nwhen proving ERRP non-null involves a non-local argument.  Else, it\u0027s\nunnecessarily opaque (see commit 84d18f0).\n\nThe error_is_set(errp) in qemu_chr_new_from_opts() is merely fragile,\nbecause the callers never pass a null errp argument.\n\nMake the code more robust and more obviously correct: receive the\nerror in a local variable, then propagate it through the parameter.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n"
    },
    {
      "commit": "5f758366c0710d23e43f4d0f83816b98616a13d0",
      "tree": "dbe5d4add2d20199fa90ca1cd0b2375ca3cb087d",
      "parents": [
        "3f9286b7214fbc7135d4fc223f07b0b30b91e2f1"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Mon May 19 18:57:34 2014 +0200"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Wed May 21 11:57:57 2014 +0200"
      },
      "message": "char: Use return values instead of error_is_set(errp)\n\nUsing error_is_set(errp) to check whether a function call failed is\nfragile: it breaks when errp is null.  Check perfectly suitable return\nvalues instead when possible.  As far as I can tell, errp can\u0027t be\nnull there, but this is more robust and more obviously correct\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n"
    },
    {
      "commit": "3f9286b7214fbc7135d4fc223f07b0b30b91e2f1",
      "tree": "c3e451de4f349387aa6aa0d655fa3d7b15504054",
      "parents": [
        "c5fa6c86d0765f837515d1c10654c621724a77e0"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Mon May 19 18:57:37 2014 +0200"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Wed May 21 11:57:57 2014 +0200"
      },
      "message": "qemu-socket: Clean up inet_connect_opts()\n\nSeparate the search for a working addrinfo from the code that does\nsomething with it.  Makes for a clearer search loop.\n\nUse a local Error * to simplify resetting the error in the search\nloop.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nReviewed-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n"
    },
    {
      "commit": "3b6959506831193f37cc830c8e111b437c0d1380",
      "tree": "2f671fac1fd6e70f83476c5028455081b2047297",
      "parents": [
        "c5fa6c86d0765f837515d1c10654c621724a77e0"
      ],
      "author": {
        "name": "Peter Feiner",
        "email": "peter@gridcentric.ca",
        "time": "Fri May 16 10:40:47 2014 -0400"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Tue May 20 14:39:19 2014 -0400"
      },
      "message": "doc: add \"setup\" to list of migration states\n\nOn a slow VM (e.g., nested), you see the \"setup\" state when you query the\nmigration status.\n\nSigned-off-by: Peter Feiner \u003cpeter@gridcentric.ca\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "5a7733b0b728bb4900bdeed12fef22651ce0ab58",
      "tree": "30bf77d88f9dce9e893da4ca3d9277ad487701cc",
      "parents": [
        "f2564d88fe7949bdb5ca4ad652282c28b3da6210"
      ],
      "author": {
        "name": "Olaf Hering",
        "email": "olaf@aepfle.de",
        "time": "Thu Apr 03 15:47:34 2014 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue May 20 16:14:29 2014 +0200"
      },
      "message": "megasas: remove buildtime strings\n\nUsing __DATE__ or __TIME__ in binary pkgs changes the checksum of\ncompiled binaries if they get rebuilt, even if there are no other\nsource changes.  Replace the dynamic strings with some equally\ninformative static strings.\n\nSigned-off-by: Olaf Hering \u003colaf@aepfle.de\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "770a63792b2c9a3f9565b68b0a7ef0be6883f551",
      "tree": "719d8a98fce82f05a422ba922efde03833c16564",
      "parents": [
        "b30f4dfbdaf353e580f8a834aeea6b96ac1c67c9"
      ],
      "author": {
        "name": "David Hildenbrand",
        "email": "dahi@linux.vnet.ibm.com",
        "time": "Mon Sep 03 13:09:10 2012 +0200"
      },
      "committer": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Tue May 20 13:05:58 2014 +0200"
      },
      "message": "s390x/kvm: hw debugging support via guest PER facility\n\nThis patch makes use of the hw debugging support in kvm (provided by the guest\u0027s\nPER facility) on s390. It enables the following features, available using the\ngdbserver:\n- single-stepping\n- hw breakpoints\n- hw watchpoints\n\nSigned-off-by: David Hildenbrand \u003cdahi@linux.vnet.ibm.com\u003e\nSigned-off-by: Jens Freimann \u003cjfrei@linux.vnet.ibm.com\u003e\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\n"
    },
    {
      "commit": "b30f4dfbdaf353e580f8a834aeea6b96ac1c67c9",
      "tree": "bab1d1518254724a3320ff2e56c3937dc524e14a",
      "parents": [
        "8e4e86afa524588397be2101c3582c897fc408df"
      ],
      "author": {
        "name": "David Hildenbrand",
        "email": "dahi@linux.vnet.ibm.com",
        "time": "Tue Feb 25 15:53:00 2014 +0100"
      },
      "committer": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Tue May 20 13:05:58 2014 +0200"
      },
      "message": "s390x/kvm: software breakpoint support\n\nThis patch allows to insert and remove sw breakpoints using the QEMU gdbserver\non s390 as well as to interrupt execution on a breakpoint hit when running\nwith KVM enabled.\n\nWhenever a software breakpoint is inserted, common code calls kvm ioctl\nKVM_UPDATE_GUEST_DEBUG. As this method\u0027s default on s390 is to return an error\nif not implement, the insertion will fail. Therefore, KVM also has to be\nupdated in order to make use of software breakpoints.\n\nSigned-off-by: David Hildenbrand \u003cdahi@linux.vnet.ibm.com\u003e\nSigned-off-by: Jens Freimann \u003cjfrei@linux.vnet.ibm.com\u003e\nReviewed-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\n"
    },
    {
      "commit": "8e4e86afa524588397be2101c3582c897fc408df",
      "tree": "e69edd29fdbc4bba178afa03a2a4d5938cafc439",
      "parents": [
        "76eb98d51c0a0448c5bc2f70d15fe334e7234964"
      ],
      "author": {
        "name": "David Hildenbrand",
        "email": "dahi@linux.vnet.ibm.com",
        "time": "Tue Feb 25 15:58:45 2014 +0100"
      },
      "committer": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Tue May 20 13:05:58 2014 +0200"
      },
      "message": "s390x: remove duplicate definitions of DIAG 501\n\nWhen restoring the previously saved instruction in\nkvm_arch_remove_sw_breakpoint(), we only restored one byte. Let\u0027s use\nthe sizeof() operator to make sure we restore the entire instruction.\n\nWhile we are at it, let\u0027s remove the duplicate definitions of DIAG 501\nand replace its size (used when reading/writing the instruction) with\na sizeof() operator to make the code self explaining and less error-prone.\n\nSigned-off-by: David Hildenbrand \u003cdahi@linux.vnet.ibm.com\u003e\nReviewed-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Jens Freimann \u003cjfrei@linux.vnet.ibm.com\u003e\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\n"
    },
    {
      "commit": "76eb98d51c0a0448c5bc2f70d15fe334e7234964",
      "tree": "dacd944274aa52aa010ccc6cef9ae251c1479011",
      "parents": [
        "d426d9fba8ea5d728038a9bea6a7c51f11941157"
      ],
      "author": {
        "name": "Jens Freimann",
        "email": "jfrei@linux.vnet.ibm.com",
        "time": "Mon May 12 10:03:46 2014 +0200"
      },
      "committer": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Tue May 20 13:05:58 2014 +0200"
      },
      "message": "linux-headers: update\n\nSync linux-headers with kvm/next (87c00572ba05aa8c9db118da75c608f47eb10b9e)\n\nSigned-off-by: Jens Freimann \u003cjfrei@linux.vnet.ibm.com\u003e\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\n"
    },
    {
      "commit": "d426d9fba8ea5d728038a9bea6a7c51f11941157",
      "tree": "447cd6550e5d99703763c96e12c83f699c71275f",
      "parents": [
        "7bca3892cb951afb5945480b090e3fb93578cd6a"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Mon Jul 15 17:45:03 2013 +0200"
      },
      "committer": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Tue May 20 13:05:58 2014 +0200"
      },
      "message": "s390x/virtio-ccw: wire up irq routing and irqfds\n\nMake use of the new s390 adapter irq routing support to enable real\nin-kernel irqfds for virtio-ccw with adapter interrupts.\n\nNote that s390 doesn\u0027t provide the common KVM_CAP_IRQCHIP capability, but\nrather needs KVM_CAP_S390_IRQCHIP to be enabled. This is to ensure backward\ncompatibility.\n\nReviewed-by: Thomas Huth \u003cthuth@linux.vnet.ibm.com\u003e\nReviewed-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nAcked-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\n"
    },
    {
      "commit": "7bca3892cb951afb5945480b090e3fb93578cd6a",
      "tree": "72cb03ef930fcc2798b1030d77bb36f0f7fdd218",
      "parents": [
        "03cf077ac9c02ccc192b9011ced12cc74f9151bb"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Thu Aug 01 17:27:00 2013 +0200"
      },
      "committer": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Tue May 20 13:05:58 2014 +0200"
      },
      "message": "s390x/virtio-ccw: reference-counted indicators\n\nMake code using the same indicators point to a single allocated structure\nthat is freed when the last user goes away.\n\nThis will be used by the irqfd code to unmap addresses after the last user\nis gone.\n\nReviewed-by: Thomas Huth \u003cthuth@linux.vnet.ibm.com\u003e\nReviewed-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\n"
    },
    {
      "commit": "03cf077ac9c02ccc192b9011ced12cc74f9151bb",
      "tree": "c19eaf4fcfa9f022aca35727c1871161564e9a69",
      "parents": [
        "7b35d0c44cae3dcce6347a0729a416c2929cd4bb"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Mon Jul 15 17:45:03 2013 +0200"
      },
      "committer": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Tue May 20 13:05:58 2014 +0200"
      },
      "message": "s390x: add I/O adapter registration\n\nRegister an I/O adapter interrupt source for when virtio-ccw devices start\nusing adapter interrupts.\n\nReviewed-by: Thomas Huth \u003cthuth@linux.vnet.ibm.com\u003e\nReviewed-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\n"
    },
    {
      "commit": "7b35d0c44cae3dcce6347a0729a416c2929cd4bb",
      "tree": "66f476d35c17d537c44bf5fc2bdf9e0a14016bf9",
      "parents": [
        "61c7bbd236b90da7531fcf957223a2456670d44d"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Thu Apr 17 15:59:48 2014 +0200"
      },
      "committer": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Tue May 20 13:05:57 2014 +0200"
      },
      "message": "s390x: split flic into kvm and non-kvm parts\n\nIntroduce a common parent class for both cases, where kvm and non-kvm\ncan hook up callbacks. This will be used by follow-on patches for\nadapter registration and mapping.\n\nWe now always have a flic, regardless of whether we use kvm; the\nnon-kvm implementation just doesn\u0027t do anything.\n\nReviewed-by: Jens Freimann \u003cjfrei@linux.vnet.ibm.com\u003e\nReviewed-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\n"
    },
    {
      "commit": "61c7bbd236b90da7531fcf957223a2456670d44d",
      "tree": "662ef33b285c427338cba561cca85dd2ba4d2e88",
      "parents": [
        "c5fa6c86d0765f837515d1c10654c621724a77e0"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Mon May 12 11:51:37 2014 +0200"
      },
      "committer": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Tue May 20 13:05:57 2014 +0200"
      },
      "message": "kvm: Fix enable_cap helpers on older gcc\n\nCommit 40f1ee27aa1 introduced handy helpers for enable_cap calls on\nvcpu and vm level. Unfortunately some older gcc versions (4.7.1, 4.6)\nseem to choke on signedness detection in inline created variables:\n\ntarget-ppc/kvm.c: In function \u0027kvmppc_booke_watchdog_enable\u0027:\ntarget-ppc/kvm.c:1302:21: error: comparison of unsigned expression \u003c 0 is always false [-Werror\u003dtype-limits]\ntarget-ppc/kvm.c: In function \u0027kvmppc_set_papr\u0027:\ntarget-ppc/kvm.c:1504:21: error: comparison of unsigned expression \u003c 0 is always false [-Werror\u003dtype-limits]\n\nHowever - thanks to Thomas Huth for the suggestion - we can just cast the\noffending potentially 0 value to a signed type, making the comparison signed.\n\nReviewed-by: Thomas Huth \u003cthuth@linux.vnet.ibm.com\u003e\nAcked-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\n"
    },
    {
      "commit": "ca8c0fab9504f000216308cafc833eb957fe9284",
      "tree": "5ee125a6112ff816903ac08f2c0de6d62c987061",
      "parents": [
        "c5fa6c86d0765f837515d1c10654c621724a77e0",
        "465bee1da82e43f18d10c43cc7566d0284ad13a9"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Tue May 20 11:57:52 2014 +0100"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Tue May 20 11:57:52 2014 +0100"
      },
      "message": "Merge remote-tracking branch \u0027remotes/kevin/tags/for-upstream\u0027 into staging\n\nBlock patches\n\n# gpg: Signature made Mon 19 May 2014 15:21:14 BST using RSA key ID C88F2FD6\n# gpg: Good signature from \"Kevin Wolf \u003ckwolf@redhat.com\u003e\"\n\n* remotes/kevin/tags/for-upstream: (22 commits)\n  block: optimize zero writes with bdrv_write_zeroes\n  blockdev: add a function to parse enum ids from strings\n  util: add qemu_iovec_is_zero\n  qcow1: Stricter backing file length check\n  qcow1: Validate image size (CVE-2014-0223)\n  qcow1: Validate L2 table size (CVE-2014-0222)\n  qcow1: Check maximum cluster size\n  qcow1: Make padding in the header explicit\n  curl: Add usage documentation\n  curl: Add sslverify option\n  curl: Remove broken parsing of options from url\n  curl: Fix build when curl_multi_socket_action isn\u0027t available\n  qemu-iotests: Fix blkdebug in VM drive in 030\n  qemu-iotests: Fix core dump suppression in test 039\n  iotests: Add test for the JSON protocol\n  block: Allow JSON filenames\n  check-qdict: Add test for qdict_join()\n  qdict: Add qdict_join()\n  block: add test for vhdx image created by Disk2VHD\n  block: vhdx - account for identical header sections\n  ...\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\n"
    },
    {
      "commit": "f2564d88fe7949bdb5ca4ad652282c28b3da6210",
      "tree": "4d48b6bc5a43ec18294a2aff957161207a8da1f0",
      "parents": [
        "91e7fcca4743cf694eb0c8e7a8d938cf359b5bd8"
      ],
      "author": {
        "name": "Jeff Cody",
        "email": "jcody@redhat.com",
        "time": "Mon May 19 17:13:06 2014 -0400"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue May 20 10:09:45 2014 +0200"
      },
      "message": "block: iscsi build fix if LIBISCSI_FEATURE_IOVECTOR is not defined\n\nCommit b03c380 introduced the function\niscsi_allocationmap_is_allocated(), however it is only used within a\ncode block that is conditionally compiled.  This produces a warning\n(error with -werror) of \"defined but not used\" for the the function, if\nLIBISCSI_FEATURE_IOVECTOR is not defined.\n\nThis wraps iscsi_allocationmap_is_allocated() in the same conditional.\n\nSigned-off-by: Jeff Cody \u003cjcody@redhat.com\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "b1fe60cd3525871a4c593ad8c2b39b89c19c00d0",
      "tree": "07c3912eb20610e28a3095ab4236739b41ab24b2",
      "parents": [
        "a2554a334a92db72547a8d15e9d00dc3d37dd3a1"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Fri May 09 14:22:53 2014 +0100"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Tue May 20 08:49:21 2014 +0200"
      },
      "message": "hw/audio/intel-hda: Avoid shift into sign bit\n\nAdd a U suffix to avoid shifting into the sign bit (which is\nundefined behaviour in C).\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n"
    },
    {
      "commit": "a2554a334a92db72547a8d15e9d00dc3d37dd3a1",
      "tree": "aa076a401a38980b052db54e2cfb110b4993c49f",
      "parents": [
        "c5fa6c86d0765f837515d1c10654c621724a77e0"
      ],
      "author": {
        "name": "Stanislav Vorobiov",
        "email": "s.vorobiov@samsung.com",
        "time": "Tue Apr 29 16:48:47 2014 +0400"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Tue May 20 08:49:21 2014 +0200"
      },
      "message": "audio/intel-hda: support FIFORDY\n\nlinux kernel 3.12 has changed intel-hda\ndriver to always check for FIFORDY, this\ncauses long hangs in guest since QEMU\nalways has this bit set to 0. We now simply set\nit to 1 always, since we\u0027re synchronous anyway\nand always ready to receive the stream\n\nSigned-off-by: Stanislav Vorobiov \u003cs.vorobiov@samsung.com\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n"
    },
    {
      "commit": "c5fa6c86d0765f837515d1c10654c621724a77e0",
      "tree": "f7d52e821b4983ef18a57dce08c7b7c6cf97f115",
      "parents": [
        "5bc8f026dd5eb76c89395933d38dc5b0cebf5763",
        "24fd848950b44de7e2d71fb69ba52b90d6acb220"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Mon May 19 14:10:00 2014 +0100"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Mon May 19 14:10:01 2014 +0100"
      },
      "message": "Merge remote-tracking branch \u0027remotes/qmp-unstable/queue/qmp\u0027 into staging\n\n* remotes/qmp-unstable/queue/qmp:\n  qapi: skip redundant includes\n  monitor: Add netdev_del id argument completion.\n  monitor: Add netdev_add type argument completion.\n  monitor: Add set_link arguments completion.\n  monitor: Add chardev-add backend argument completion.\n  monitor: Add chardev-remove command completion.\n  monitor: Convert sendkey to use command_completion.\n  qapi: Show qapi-commands.py invocation in qapi-code-gen.txt\n  qapi: Replace uncommon use of the error API by the common one\n  tests: Don\u0027t call visit_end_struct() after visit_start_struct() fails\n  hw: Don\u0027t call visit_end_struct() after visit_start_struct() fails\n  hmp: Call visit_end_struct() after visit_start_struct() succeeds\n  qapi: Un-inline visit of implicit struct\n  qapi-visit.py: Clean up a sloppy use of field prefix\n  qapi: Clean up shadowing of parameters and locals in inner scopes\n  qapi-visit.py: Clean up confusing push_indent() / pop_indent() use\n  qapi: Replace start_optional()/end_optional() by optional()\n  qapi: Remove unused Visitor callbacks start_handle(), end_handle()\n  qapi: Normalize marshalling\u0027s visitor initialization and cleanup\n  qapi: Update qapi-code-gen.txt example to match current code\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\n"
    },
    {
      "commit": "5bc8f026dd5eb76c89395933d38dc5b0cebf5763",
      "tree": "1457fdc19b5c79152c82e6a102a108045c6db4ca",
      "parents": [
        "6a23082b4eca28df6a26efae8016d2f2f0921da5",
        "59e7a130054b55fe15cdfdebf284332b04d990ef"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Mon May 19 12:53:07 2014 +0100"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Mon May 19 12:53:07 2014 +0100"
      },
      "message": "Merge remote-tracking branch \u0027remotes/kraxel/tags/pull-input-8\u0027 into staging\n\nInput code update:\n - add keycode mapping helpers to core.\n - start switching devices to new input api.\n - misc bugfixes.\n\n# gpg: Signature made Fri 16 May 2014 07:43:45 BST using RSA key ID D3E87138\n# gpg: Good signature from \"Gerd Hoffmann (work) \u003ckraxel@redhat.com\u003e\"\n# gpg:                 aka \"Gerd Hoffmann \u003cgerd@kraxel.org\u003e\"\n# gpg:                 aka \"Gerd Hoffmann (private) \u003ckraxel@gmail.com\u003e\"\n\n* remotes/kraxel/tags/pull-input-8:\n  input: sparc32 kbd: claim en-us layout\n  input: sparc32 kbd: fix some key mappings\n  input: remove sparc keymap hack\n  input: switch sparc32 kbd to new input api\n  input: switch ps/2 mouse to new input api\n  input: switch ps/2 kbd to new input api\n  input: use KeyValue directly in sendkey monitor command\n  input: add qemu_input_handler_deactivate\n  input: key mapping helpers\n  ps2: set ps/2 output buffer size as the same as kernel\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\n"
    },
    {
      "commit": "465bee1da82e43f18d10c43cc7566d0284ad13a9",
      "tree": "c98c26268e8f10a77bfc39abb72f72f8c7ac9ee8",
      "parents": [
        "82a402e99f3f8c6177528ad6d561bf07ff6ee606"
      ],
      "author": {
        "name": "Peter Lieven",
        "email": "pl@kamp.de",
        "time": "Sun May 18 00:58:19 2014 +0200"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 13:42:27 2014 +0200"
      },
      "message": "block: optimize zero writes with bdrv_write_zeroes\n\nthis patch tries to optimize zero write requests\nby automatically using bdrv_write_zeroes if it is\nsupported by the format.\n\nThis significantly speeds up file system initialization and\nshould speed zero write test used to test backend storage\nperformance.\n\nI ran the following 2 tests on my internal SSD with a\n50G QCOW2 container and on an attached iSCSI storage.\n\na) mkfs.ext4 -E lazy_itable_init\u003d0,lazy_journal_init\u003d0 /dev/vdX\n\nQCOW2         [off]     [on]     [unmap]\n-----\nruntime:       14secs    1.1secs  1.1secs\nfilesize:      937M      18M      18M\n\niSCSI         [off]     [on]     [unmap]\n----\nruntime:       9.3s      0.9s     0.9s\n\nb) dd if\u003d/dev/zero of\u003d/dev/vdX bs\u003d1M oflag\u003ddirect\n\nQCOW2         [off]     [on]     [unmap]\n-----\nruntime:       246secs   18secs   18secs\nfilesize:      51G       192K     192K\nthroughput:    203M/s    2.3G/s   2.3G/s\n\niSCSI*        [off]     [on]     [unmap]\n----\nruntime:       8mins     45secs   33secs\nthroughput:    106M/s    1.2G/s   1.6G/s\nallocated:     100%      100%     0%\n\n* The storage was connected via an 1Gbit interface.\n  It seems to internally handle writing zeroes\n  via WRITESAME16 very fast.\n\nSigned-off-by: Peter Lieven \u003cpl@kamp.de\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n"
    },
    {
      "commit": "6a23082b4eca28df6a26efae8016d2f2f0921da5",
      "tree": "e0726fa2f954e829a12fe5412861d38296d07d92",
      "parents": [
        "1a381811b495651ddfc2b50d7c8cfaaf375816b0",
        "6a86dec61921163b6ab582df988416a6f0ca0ed5"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Mon May 19 12:30:06 2014 +0100"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Mon May 19 12:30:06 2014 +0100"
      },
      "message": "Merge remote-tracking branch \u0027remotes/bonzini/scsi-next\u0027 into staging\n\n* remotes/bonzini/scsi-next:\n  [PATCH] block/iscsi: bump year in copyright notice\n  block/iscsi: allow cluster_size of 4K and greater\n  block/iscsi: clarify the meaning of ISCSI_CHECKALLOC_THRES\n  block/iscsi: speed up read for unallocated sectors\n  block/iscsi: allow fall back to WRITE SAME without UNMAP\n  MAINTAINERS: mark megasas as maintained\n  megasas: Add MSI support\n  megasas: Enable MSI-X support\n  megasas: Implement LD_LIST_QUERY\n  scsi: Improve error messages more\n  scsi-disk: Improve error messager if can\u0027t get version number\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\n"
    },
    {
      "commit": "82a402e99f3f8c6177528ad6d561bf07ff6ee606",
      "tree": "f53898d4be8e10ab779a91ed9b1753a7a005d931",
      "parents": [
        "43f35cb5e0cff62e1d3fb1c116fbb8e028f2a5c8"
      ],
      "author": {
        "name": "Peter Lieven",
        "email": "pl@kamp.de",
        "time": "Sun May 18 00:58:18 2014 +0200"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 12:21:17 2014 +0200"
      },
      "message": "blockdev: add a function to parse enum ids from strings\n\nthis adds a generic function to recover the enum id of a parameter\ngiven as a string.\n\nSigned-off-by: Peter Lieven \u003cpl@kamp.de\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n"
    },
    {
      "commit": "43f35cb5e0cff62e1d3fb1c116fbb8e028f2a5c8",
      "tree": "1b0f9ac51422ab76e48afe513e92c9c5ee9c0a4e",
      "parents": [
        "d66e5cee002c471b78139228a4e7012736b375f9"
      ],
      "author": {
        "name": "Peter Lieven",
        "email": "pl@kamp.de",
        "time": "Sun May 18 00:58:17 2014 +0200"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 12:20:19 2014 +0200"
      },
      "message": "util: add qemu_iovec_is_zero\n\nSigned-off-by: Peter Lieven \u003cpl@kamp.de\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n"
    },
    {
      "commit": "d66e5cee002c471b78139228a4e7012736b375f9",
      "tree": "e6304da0d058cf822920f6e833695eaf6ca7f189",
      "parents": [
        "46485de0cb357b57373e1ca895adedf1f3ed46ec"
      ],
      "author": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Thu May 08 13:35:09 2014 +0200"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:49 2014 +0200"
      },
      "message": "qcow1: Stricter backing file length check\n\nLike qcow2 since commit 6d33e8e7, error out on invalid lengths instead\nof silently truncating them to 1023.\n\nAlso don\u0027t rely on bdrv_pread() catching integer overflows that make len\nnegative, but use unsigned variables in the first place.\n\nCc: qemu-stable@nongnu.org\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\nReviewed-by: Benoit Canet \u003cbenoit@irqsave.net\u003e\n"
    },
    {
      "commit": "46485de0cb357b57373e1ca895adedf1f3ed46ec",
      "tree": "3d7bdb3799feee94728a37374a26349d46e7b227",
      "parents": [
        "42eb58179b3b215bb507da3262b682b8a2ec10b5"
      ],
      "author": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Thu May 08 13:08:20 2014 +0200"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:49 2014 +0200"
      },
      "message": "qcow1: Validate image size (CVE-2014-0223)\n\nA huge image size could cause s-\u003el1_size to overflow. Make sure that\nimages never require a L1 table larger than what fits in s-\u003el1_size.\n\nThis cannot only cause unbounded allocations, but also the allocation of\na too small L1 table, resulting in out-of-bounds array accesses (both\nreads and writes).\n\nCc: qemu-stable@nongnu.org\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n"
    },
    {
      "commit": "42eb58179b3b215bb507da3262b682b8a2ec10b5",
      "tree": "5dd3e16d510ab10ee3d2c2aa843daa44ed34f25c",
      "parents": [
        "7159a45b2bf2dcb9f49f1e27d1d3d135a0247a2f"
      ],
      "author": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Thu May 15 16:10:11 2014 +0200"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:49 2014 +0200"
      },
      "message": "qcow1: Validate L2 table size (CVE-2014-0222)\n\nToo large L2 table sizes cause unbounded allocations. Images actually\ncreated by qemu-img only have 512 byte or 4k L2 tables.\n\nTo keep things consistent with cluster sizes, allow ranges between 512\nbytes and 64k (in fact, down to 1 entry \u003d 8 bytes is technically\nworking, but L2 table sizes smaller than a cluster don\u0027t make a lot of\nsense).\n\nThis also means that the number of bytes on the virtual disk that are\ndescribed by the same L2 table is limited to at most 8k * 64k or 2^29,\npreventively avoiding any integer overflows.\n\nCc: qemu-stable@nongnu.org\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\nReviewed-by: Benoit Canet \u003cbenoit@irqsave.net\u003e\n"
    },
    {
      "commit": "7159a45b2bf2dcb9f49f1e27d1d3d135a0247a2f",
      "tree": "9f386b302d585c903fd61522e4e584021eadfcff",
      "parents": [
        "ea54feff58efedc809641474b25a3130309678e7"
      ],
      "author": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Wed May 07 17:30:30 2014 +0200"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:49 2014 +0200"
      },
      "message": "qcow1: Check maximum cluster size\n\nHuge values for header.cluster_bits cause unbounded allocations (e.g.\nfor s-\u003ecluster_cache) and crash qemu this way. Less huge values may\nsurvive those allocations, but can cause integer overflows later on.\n\nThe only cluster sizes that qemu can create are 4k (for standalone\nimages) and 512 (for images with backing files), so we can limit it\nto 64k.\n\nCc: qemu-stable@nongnu.org\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\nReviewed-by: Benoit Canet \u003cbenoit@irqsave.net\u003e\n"
    },
    {
      "commit": "ea54feff58efedc809641474b25a3130309678e7",
      "tree": "637ecb7e2b1379f5d1073675b271d19efdd382bc",
      "parents": [
        "0a86cb731758a7167374ca68735125ce81211002"
      ],
      "author": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Wed May 07 16:56:10 2014 +0200"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:49 2014 +0200"
      },
      "message": "qcow1: Make padding in the header explicit\n\nWe were relying on all compilers inserting the same padding in the\nheader struct that is used for the on-disk format. Let\u0027s not do that.\nMark the struct as packed and insert an explicit padding field for\ncompatibility.\n\nCc: qemu-stable@nongnu.org\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\nReviewed-by: Benoit Canet \u003cbenoit@irqsave.net\u003e\n"
    },
    {
      "commit": "0a86cb731758a7167374ca68735125ce81211002",
      "tree": "3b177f06a22eeccc950ef694e6d81962f029f70b",
      "parents": [
        "97a3ea57198b39b8366cd2a7514707abdcd0a7bc"
      ],
      "author": {
        "name": "Matthew Booth",
        "email": "mbooth@redhat.com",
        "time": "Wed May 14 19:28:43 2014 -0400"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:49 2014 +0200"
      },
      "message": "curl: Add usage documentation\n\nSigned-off-by: Matthew Booth \u003cmbooth@redhat.com\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n"
    },
    {
      "commit": "97a3ea57198b39b8366cd2a7514707abdcd0a7bc",
      "tree": "3a1ffc4aab1b071259270cae32d04328893cdd56",
      "parents": [
        "e3542c67af4cb4fd90e3be912630be9acd97b9c0"
      ],
      "author": {
        "name": "Matthew Booth",
        "email": "mbooth@redhat.com",
        "time": "Wed May 14 19:28:42 2014 -0400"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:49 2014 +0200"
      },
      "message": "curl: Add sslverify option\n\nThis allows qemu to use images over https with a self-signed certificate. It\ndefaults to verifying the certificate.\n\nSigned-off-by: Matthew Booth \u003cmbooth@redhat.com\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n"
    },
    {
      "commit": "e3542c67af4cb4fd90e3be912630be9acd97b9c0",
      "tree": "e972f38e88e953a96bed6f5c042977b3b0171830",
      "parents": [
        "9aedd5a5d607216e41bfa6a2c1f7f5d2b17041c3"
      ],
      "author": {
        "name": "Matthew Booth",
        "email": "mbooth@redhat.com",
        "time": "Wed May 14 19:28:41 2014 -0400"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:49 2014 +0200"
      },
      "message": "curl: Remove broken parsing of options from url\n\nThe block layer now supports a generic json syntax for passing option parameters\nexplicitly, making parsing of options from the url redundant.\n\nSigned-off-by: Matthew Booth \u003cmbooth@redhat.com\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n"
    },
    {
      "commit": "9aedd5a5d607216e41bfa6a2c1f7f5d2b17041c3",
      "tree": "553cd985909ee77e07fc899d32a513531acb7041",
      "parents": [
        "b5e51dd7144719148c5df42b38b6086366f90d5e"
      ],
      "author": {
        "name": "Matthew Booth",
        "email": "mbooth@redhat.com",
        "time": "Wed May 14 19:28:40 2014 -0400"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:49 2014 +0200"
      },
      "message": "curl: Fix build when curl_multi_socket_action isn\u0027t available\n\nSigned-off-by: Matthew Booth \u003cmbooth@redhat.com\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n"
    },
    {
      "commit": "b5e51dd7144719148c5df42b38b6086366f90d5e",
      "tree": "bb3080f108d21c5ec41a97fb7b8cafee3fa600e2",
      "parents": [
        "d530e342320d4db3c9522bfadc60a7bc8142343a"
      ],
      "author": {
        "name": "Fam Zheng",
        "email": "famz@redhat.com",
        "time": "Wed May 14 20:30:45 2014 +0800"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:49 2014 +0200"
      },
      "message": "qemu-iotests: Fix blkdebug in VM drive in 030\n\nThe test test_stream_pause in this class uses vm.pause_drive, which\nrequires a blkdebug driver on top of image, otherwise it\u0027s no-op and the\ntest running is undeterministic.\n\nSo add it.\n\nSigned-off-by: Fam Zheng \u003cfamz@redhat.com\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n"
    },
    {
      "commit": "d530e342320d4db3c9522bfadc60a7bc8142343a",
      "tree": "9d17fe3b3854bbc46fc9a3b6e413cd67198cc2ea",
      "parents": [
        "4ad303369c8818fb8bbe9f9c9f79e5de7c68e81e"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Wed May 14 15:12:34 2014 +0200"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:49 2014 +0200"
      },
      "message": "qemu-iotests: Fix core dump suppression in test 039\n\nThe shell script attempts to suppress core dumps like this:\n\n    old_ulimit\u003d$(ulimit -c)\n    ulimit -c 0\n    $QEMU_IO arg...\n    ulimit -c \"$old_ulimit\"\n\nThis breaks the test hard unless the limit was zero to begin with!\nulimit sets both hard and soft limit by default, and (re-)raising the\nhard limit requires privileges.  Broken since it was added in commit\ndc68afe.\n\nCould be fixed by adding -S to set only the soft limit, but I\u0027m not\nsure how portable that is in practice.  Simply do it in a subshell\ninstead, like this:\n\n    (ulimit -c 0; exec $QEMU_IO arg...)\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nReviewed-by: Fam Zheng \u003cfamz@redhat.com\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n"
    },
    {
      "commit": "4ad303369c8818fb8bbe9f9c9f79e5de7c68e81e",
      "tree": "da29d9672441ed96080ffaf3ee965bb771b89e5b",
      "parents": [
        "4993f7ea7e63f18f18880289d6be8a9ab1591409"
      ],
      "author": {
        "name": "Max Reitz",
        "email": "mreitz@redhat.com",
        "time": "Thu May 08 20:12:42 2014 +0200"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:49 2014 +0200"
      },
      "message": "iotests: Add test for the JSON protocol\n\nAdd a test for the JSON protocol driver.\n\nSigned-off-by: Max Reitz \u003cmreitz@redhat.com\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n"
    },
    {
      "commit": "4993f7ea7e63f18f18880289d6be8a9ab1591409",
      "tree": "efadc7227e443a7aa23efc7ba78f9203bbab3a7c",
      "parents": [
        "8a5eb36a1c3183e51c91b7887a816945c8ea4ec5"
      ],
      "author": {
        "name": "Max Reitz",
        "email": "mreitz@redhat.com",
        "time": "Thu May 08 20:12:41 2014 +0200"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:49 2014 +0200"
      },
      "message": "block: Allow JSON filenames\n\nIf the filename given to bdrv_open() is prefixed with \"json:\", parse the\nrest as a JSON object and merge the result into the options QDict. If\nthere are conflicts, the options QDict takes precedence.\n\nSigned-off-by: Max Reitz \u003cmreitz@redhat.com\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n"
    },
    {
      "commit": "8a5eb36a1c3183e51c91b7887a816945c8ea4ec5",
      "tree": "fa0410cd92a0e2123cbd6798e2d2464287d38ceb",
      "parents": [
        "9c5268127722087eec88c4c41f3363855bb1234b"
      ],
      "author": {
        "name": "Max Reitz",
        "email": "mreitz@redhat.com",
        "time": "Thu May 08 20:12:40 2014 +0200"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:48 2014 +0200"
      },
      "message": "check-qdict: Add test for qdict_join()\n\nAdd some test cases for qdict_join().\n\nSigned-off-by: Max Reitz \u003cmreitz@redhat.com\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nReviewed-by: Benoit Canet \u003cbenoit@irqsave.net\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n"
    },
    {
      "commit": "9c5268127722087eec88c4c41f3363855bb1234b",
      "tree": "0d51624668ff4cbd323220da36eb665baddb3233",
      "parents": [
        "26e2da72796c534ba3bc927a55a757d85bd10a3d"
      ],
      "author": {
        "name": "Max Reitz",
        "email": "mreitz@redhat.com",
        "time": "Thu May 08 20:12:39 2014 +0200"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:48 2014 +0200"
      },
      "message": "qdict: Add qdict_join()\n\nThis function joins two QDicts by absorbing one into the other.\n\nSigned-off-by: Max Reitz \u003cmreitz@redhat.com\u003e\nReviewed-by: Benoit Canet \u003cbenoit@irqsave.net\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n"
    },
    {
      "commit": "26e2da72796c534ba3bc927a55a757d85bd10a3d",
      "tree": "d8274a24d46fc8ef39d583c9e102d71281ee36da",
      "parents": [
        "6906046169ffa9d829beeeaafe1fadeba51669fb"
      ],
      "author": {
        "name": "Jeff Cody",
        "email": "jcody@redhat.com",
        "time": "Tue May 13 10:00:53 2014 -0400"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:48 2014 +0200"
      },
      "message": "block: add test for vhdx image created by Disk2VHD\n\nThis adds a test for VHDX images created by Microsoft\u0027s tool, Disk2VHD.\n\nVHDX images created by this tool have 2 identical header sections, with\nidentical sequence numbers.  This makes sure we detect VHDX images with\nidentical headers, and do not flag them as corrupt.\n\nSigned-off-by: Jeff Cody \u003cjcody@redhat.com\u003e\nReviewed-by: Fam Zheng \u003cfamz@redhat.com\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n"
    },
    {
      "commit": "6906046169ffa9d829beeeaafe1fadeba51669fb",
      "tree": "0d079e9809a4b1bc403d8e1e5c9a52d26120b6a5",
      "parents": [
        "395071a76328189f50c778f4dee6dabb90503dd9"
      ],
      "author": {
        "name": "Jeff Cody",
        "email": "jcody@redhat.com",
        "time": "Tue May 13 10:00:52 2014 -0400"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:48 2014 +0200"
      },
      "message": "block: vhdx - account for identical header sections\n\nThe VHDX spec v1.00 declares that \"a header is current if it is the only\nvalid header or if it is valid and its SequenceNumber field is greater\nthan the other header’s SequenceNumber field. The parser must only use\ndata from the current header. If there is no current header, then the\nVHDX file is corrupt.\"\n\nHowever, the Disk2VHD tool from Microsoft creates a VHDX image file that\nhas 2 identical headers, including matching checksums and matching\nsequence numbers.  Likely, as a shortcut the tool is just writing the\nheader twice, for the active and inactive headers, during the image\ncreation.  Technically, this should be considered a corrupt VHDX file\n(at least per the 1.00 spec, and that is how we currently treat it).\n\nBut in order to accomodate images created with Disk2VHD, we can safely\ncreate an exception for this case.  If we find identical sequence\nnumbers, then we check the VHDXHeader-sized chunks of each 64KB header\nsections (we won\u0027t rely just on the crc32c to indicate the headers are\nthe same).  If they are identical, then we go ahead and use the first\none.\n\nReported-by: Nerijus Baliūnas \u003cnerijus@users.sourceforge.net\u003e\nSigned-off-by: Jeff Cody \u003cjcody@redhat.com\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n"
    },
    {
      "commit": "395071a76328189f50c778f4dee6dabb90503dd9",
      "tree": "1d339f330d1e56dc80cc5688a27ec582da925503",
      "parents": [
        "e88ae2264d93f98e4b656fa76555c745abe57684"
      ],
      "author": {
        "name": "Mike Day",
        "email": "ncmike@ncultra.org",
        "time": "Tue May 13 17:11:06 2014 -0400"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:48 2014 +0200"
      },
      "message": "Remove g_sequence_lookup from qemu-img help function\n\ng_sequence_lookup is not supported by glib \u003c 2.28. The usage\nof g_sequence_lookup is not essential in this context (it\u0027s a\nsafeguard against duplicate values in the help message).\nRemoving the call enables the build on all platforms and\ndoes not change the operation of the help function.\n\nSigned-off-by: Mike Day \u003cncmike@ncultra.org\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n"
    },
    {
      "commit": "e88ae2264d93f98e4b656fa76555c745abe57684",
      "tree": "43c4370b441d90d8693c796ed6dde0b8c1525ed6",
      "parents": [
        "1a381811b495651ddfc2b50d7c8cfaaf375816b0"
      ],
      "author": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Tue May 06 15:25:36 2014 +0200"
      },
      "committer": {
        "name": "Kevin Wolf",
        "email": "kwolf@redhat.com",
        "time": "Mon May 19 11:36:48 2014 +0200"
      },
      "message": "block: Fix bdrv_is_allocated() for short backing files\n\nbdrv_is_allocated() shouldn\u0027t return true for sectors that are\nunallocated, but after the end of a short backing file, even though\nsuch sectors are (correctly) marked as containing zeros.\n\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\nReviewed-by: Max Reitz \u003cmreitz@redhat.com\u003e\n"
    },
    {
      "commit": "91e7fcca4743cf694eb0c8e7a8d938cf359b5bd8",
      "tree": "b13c323629f79531781a02e3b3e1002b77fddd4c",
      "parents": [
        "c4ce4c4b1f28095947d72abb0fb7de6c8d8efdb3"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Fri May 16 17:44:06 2014 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri May 16 17:52:28 2014 +0200"
      },
      "message": "virtio-scsi: Plug memory leak on virtio_scsi_push_event() error path\n\nSpotted by Coverity.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nCc: qemu-stable@nongnu.org\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "c4ce4c4b1f28095947d72abb0fb7de6c8d8efdb3",
      "tree": "18605e954b485e52fd736bbb59df3325feef147b",
      "parents": [
        "6a86dec61921163b6ab582df988416a6f0ca0ed5"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Fri May 16 17:44:05 2014 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri May 16 17:52:14 2014 +0200"
      },
      "message": "scsi: Document intentional fall through in scsi_req_length()\n\nFor clarity, and to hush up Coverity.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "24fd848950b44de7e2d71fb69ba52b90d6acb220",
      "tree": "38e6e587a193ef360c1132e6531fc21c2069fca7",
      "parents": [
        "11b389f21e4531c23fb8a8474bc8fc7ac2e136a5"
      ],
      "author": {
        "name": "Benoît Canet",
        "email": "benoit.canet@irqsave.net",
        "time": "Fri May 16 12:51:56 2014 +0200"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Fri May 16 10:35:59 2014 -0400"
      },
      "message": "qapi: skip redundant includes\n\nThe purpose of this change is to help create a json file containing\ncommon definitions; each bit of generated C code must be emitted\nonly one time.\n\nA second history global to all QAPISchema instances has been added\nto detect when a file is included more than one time and skip these\nincludes.\nIt does not act as a stack and the changes made to it by the\n__init__ function are propagated back to the caller so it\u0027s really\na global state.\n\nSigned-off-by: Benoit Canet \u003cbenoit@irqsave.net\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "59e7a130054b55fe15cdfdebf284332b04d990ef",
      "tree": "51d9d53be910f0f3aa07bfa61851261ce1215811",
      "parents": [
        "97256073b1a51ed0deb0bac7d4b5d88a90cc2939"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Tue May 06 14:11:16 2014 +0200"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Fri May 16 08:30:12 2014 +0200"
      },
      "message": "input: sparc32 kbd: claim en-us layout\n\nReported-by: Olivier Danet \u003codanet@caramail.com\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n"
    },
    {
      "commit": "97256073b1a51ed0deb0bac7d4b5d88a90cc2939",
      "tree": "59d12c17001447409d8ce104345a896a98564420",
      "parents": [
        "2ada510698acb68399f4b356386c2807cbac3b60"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Tue Apr 29 13:19:32 2014 +0200"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Fri May 16 08:30:12 2014 +0200"
      },
      "message": "input: sparc32 kbd: fix some key mappings\n\nReported-by: Olivier Danet \u003codanet@caramail.com\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n"
    },
    {
      "commit": "2ada510698acb68399f4b356386c2807cbac3b60",
      "tree": "870ce0bcd002453f5a12f9af01f7b2a4207a2206",
      "parents": [
        "65e7545ea3c65a6468fb59418a6dbe66ef71d6d1"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Fri Mar 28 08:56:15 2014 +0100"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Fri May 16 08:30:12 2014 +0200"
      },
      "message": "input: remove sparc keymap hack\n\nWith sparc keyboard going directly from QKeyValue to sparc keycodes\nthis should not be needed any more.\n\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n"
    },
    {
      "commit": "65e7545ea3c65a6468fb59418a6dbe66ef71d6d1",
      "tree": "4311c6751b7c475a070ae1d3a87006262919e5e0",
      "parents": [
        "2a766d294ae0d4d2e9b178ce0b9a966bc678e7e6"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Tue Mar 25 13:16:21 2014 +0100"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Fri May 16 08:30:12 2014 +0200"
      },
      "message": "input: switch sparc32 kbd to new input api\n\nNasty 0xe0 logic is gone.  We map through QKeyCode now, giving us a\nnice, readable mapping table.\n\nQuick smoke test in OpenFirmware looks ok.  Careful check from arch\nmaintainers would be very nice, especially on the capslock and numlock\nlogic.  I\u0027m not fully sure whenever I got it translated correctly and\nalso what it is supposed to do in the first place ...\n\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n"
    },
    {
      "commit": "2a766d294ae0d4d2e9b178ce0b9a966bc678e7e6",
      "tree": "f63c7559708e9e96de4774b47056b54bd10499c6",
      "parents": [
        "66e6536e0cdc8c1137230b1b935a5af693b5d9ca"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Thu Mar 13 12:58:29 2014 +0100"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Fri May 16 08:30:12 2014 +0200"
      },
      "message": "input: switch ps/2 mouse to new input api\n\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n"
    },
    {
      "commit": "66e6536e0cdc8c1137230b1b935a5af693b5d9ca",
      "tree": "75f1f419ef52b402159ade83e8944ba9185222eb",
      "parents": [
        "ce53f2f98faa2f5aff3e7c841a12be187293db0d"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Thu Mar 13 12:39:38 2014 +0100"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Fri May 16 08:30:12 2014 +0200"
      },
      "message": "input: switch ps/2 kbd to new input api\n\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n"
    },
    {
      "commit": "ce53f2f98faa2f5aff3e7c841a12be187293db0d",
      "tree": "e6b134ae6eb668b64fd9e2c57f53efb700a8c7c4",
      "parents": [
        "528728fd93df348f9003d1067fb26e79f377bfa9"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Tue Apr 29 13:17:43 2014 +0200"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Fri May 16 08:30:12 2014 +0200"
      },
      "message": "input: use KeyValue directly in sendkey monitor command\n\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n"
    },
    {
      "commit": "528728fd93df348f9003d1067fb26e79f377bfa9",
      "tree": "9a483c17c22f6640071e97319d6e8301b2a0f637",
      "parents": [
        "02aa76c2ba5df8db7c968d92959af2a7c35690a8"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Sun Mar 16 00:38:45 2014 +0100"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Fri May 16 08:30:12 2014 +0200"
      },
      "message": "input: add qemu_input_handler_deactivate\n\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n"
    },
    {
      "commit": "02aa76c2ba5df8db7c968d92959af2a7c35690a8",
      "tree": "bf80789166d651d63c71dd1c74747026bf5ba303",
      "parents": [
        "2858ab09e6f708e381fc1a1cc87e747a690c4884"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Tue Mar 11 12:15:39 2014 +0100"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Fri May 16 08:30:11 2014 +0200"
      },
      "message": "input: key mapping helpers\n\nAdd helper functions to translate KeyValue (qapi key representation)\ninto other representations: traditional qemu key numbers, qapi key\ncodes (Q_KEY_CODE_*) and scancode sequences.\n\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n"
    },
    {
      "commit": "2858ab09e6f708e381fc1a1cc87e747a690c4884",
      "tree": "0604a5a4221cff1c0eff9e5e54a4e03506baf16e",
      "parents": [
        "1a381811b495651ddfc2b50d7c8cfaaf375816b0"
      ],
      "author": {
        "name": "Gonglei",
        "email": "arei.gonglei@huawei.com",
        "time": "Thu Apr 24 20:06:19 2014 +0800"
      },
      "committer": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Fri May 16 08:30:11 2014 +0200"
      },
      "message": "ps2: set ps/2 output buffer size as the same as kernel\n\nAccording to the PS/2 Mouse/Keyboard Protocol, the keyboard outupt buffer size\nis 16 bytes. And the PS2_QUEUE_SIZE 256 was introduced in Qemu from the very\nbeginning.\n\nWhen I started a  redhat5.6 32bit guest, meanwhile tapped the keyboard as quickly as\npossible, the screen would show me \"i8042.c: No controller found\". As a result,\nI couldn\u0027t use the keyboard in the VNC client.\n\nPrevious discussion about the issue in maillist:\nhttp://thread.gmane.org/gmane.comp.emulators.qemu/43294/focus\u003d47180\n\nThis patch has been tested on redhat5.6 32-bit/suse11sp3 64-bit guests.\nMore easy meathod to reproduce:\n1.boot a guest with libvirt.\n2.connect to VNC client.\n3.as you see the BIOS, bootloader, Linux booting, run the follow simply shell script:\nfor((i\u003d0;i\u003c10000000;i++)) do virsh send-key redhat5.6 KEY_A; done\n\nActual results:\ndmesg show \"i8042.c: No controller found.\" And the keyboard is out of work.\n\nSigned-off-by: Gonglei \u003carei.gonglei@huawei.com\u003e\nReviewed-by: Juan Quintela \u003cquintela@redhat.com\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n"
    },
    {
      "commit": "11b389f21e4531c23fb8a8474bc8fc7ac2e136a5",
      "tree": "a1b0a07ed577464eb72916ef7d57c68ffce24c31",
      "parents": [
        "b162b49adc4cc6aa2c2ed0a31998f23dfe5983e6"
      ],
      "author": {
        "name": "Hani Benhabiles",
        "email": "kroosec@gmail.com",
        "time": "Wed May 07 23:41:32 2014 +0100"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 15:16:02 2014 -0400"
      },
      "message": "monitor: Add netdev_del id argument completion.\n\nSigned-off-by: Hani Benhabiles \u003chani@linux.com\u003e\nReviewed-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "b162b49adc4cc6aa2c2ed0a31998f23dfe5983e6",
      "tree": "cfe6485bc55c5b00507a0b86b0b2ef4e52ac1feb",
      "parents": [
        "40d19394b792fb80dba2f536fc13b5b604780a4d"
      ],
      "author": {
        "name": "Hani Benhabiles",
        "email": "kroosec@gmail.com",
        "time": "Wed May 07 23:41:31 2014 +0100"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 15:16:02 2014 -0400"
      },
      "message": "monitor: Add netdev_add type argument completion.\n\nAlso update the command\u0027s documentation.\n\nSigned-off-by: Hani Benhabiles \u003chani@linux.com\u003e\nReviewed-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "40d19394b792fb80dba2f536fc13b5b604780a4d",
      "tree": "4b629b65764b2cb54b52656f00f26cd43da0c244",
      "parents": [
        "13e315dadaaa8fa6d04d10ae762ba63b54ede0ca"
      ],
      "author": {
        "name": "Hani Benhabiles",
        "email": "kroosec@gmail.com",
        "time": "Wed May 07 23:41:30 2014 +0100"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 15:16:02 2014 -0400"
      },
      "message": "monitor: Add set_link arguments completion.\n\nMake it possible to query all net clients without specifying an ID when calling\nqemu_find_net_clients_except().\n\nThis also adds the add_completion_option() function which is to be used for\nother commands completions as well.\n\nSigned-off-by: Hani Benhabiles \u003chani@linux.com\u003e\nReviewed-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "13e315dadaaa8fa6d04d10ae762ba63b54ede0ca",
      "tree": "b267cfcf3dbf9709a5634289f1e56f699a596833",
      "parents": [
        "6297d9a279ccaf404d26a2c6bdc1a09891bcf5ae"
      ],
      "author": {
        "name": "Hani Benhabiles",
        "email": "kroosec@gmail.com",
        "time": "Wed May 07 23:41:29 2014 +0100"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 15:16:01 2014 -0400"
      },
      "message": "monitor: Add chardev-add backend argument completion.\n\nSigned-off-by: Hani Benhabiles \u003chani@linux.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "6297d9a279ccaf404d26a2c6bdc1a09891bcf5ae",
      "tree": "a7bb18aca958666dc25b3a6b872c2bc2c63b8e08",
      "parents": [
        "29136cd8a4883f2ce97387f3a01c156ac1c43869"
      ],
      "author": {
        "name": "Hani Benhabiles",
        "email": "kroosec@gmail.com",
        "time": "Wed May 07 23:41:28 2014 +0100"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 15:16:01 2014 -0400"
      },
      "message": "monitor: Add chardev-remove command completion.\n\nSigned-off-by: Hani Benhabiles \u003chani@linux.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "29136cd8a4883f2ce97387f3a01c156ac1c43869",
      "tree": "e607863f84c29b48f1f7cc31715e04a1bcdfec3a",
      "parents": [
        "87a560c455dfc53c151f7f5dd4a305f6d44e00dd"
      ],
      "author": {
        "name": "Hani Benhabiles",
        "email": "kroosec@gmail.com",
        "time": "Wed May 07 23:41:27 2014 +0100"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 15:16:01 2014 -0400"
      },
      "message": "monitor: Convert sendkey to use command_completion.\n\nSigned-off-by: Hani Benhabiles \u003chani@linux.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "87a560c455dfc53c151f7f5dd4a305f6d44e00dd",
      "tree": "15c8cd057c613f6dfeda9e2d34c44dcfa918d6b5",
      "parents": [
        "297a3646c2947ee64a6d42ca264039732c6218e0"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Wed May 14 17:27:23 2014 +0200"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 15:16:01 2014 -0400"
      },
      "message": "qapi: Show qapi-commands.py invocation in qapi-code-gen.txt\n\nWhile there, pare down the shell prompts.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "297a3646c2947ee64a6d42ca264039732c6218e0",
      "tree": "8ddd334c8e8b42d4972bca08fd57bb79a068cc33",
      "parents": [
        "cdaec3808e756fee3c4e17d0168ec6429eff0dbc"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Wed May 07 09:53:54 2014 +0200"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 14:00:46 2014 -0400"
      },
      "message": "qapi: Replace uncommon use of the error API by the common one\n\nWe commonly use the error API like this:\n\n    err \u003d NULL;\n    foo(..., \u0026err);\n    if (err) {\n        goto out;\n    }\n    bar(..., \u0026err);\n\nEvery error source is checked separately.  The second function is only\ncalled when the first one succeeds.  Both functions are free to pass\ntheir argument to error_set().  Because error_set() asserts no error\nhas been set, this effectively means they must not be called with an\nerror set.\n\nThe qapi-generated code uses the error API differently:\n\n    // *errp was initialized to NULL somewhere up the call chain\n    frob(..., errp);\n    gnat(..., errp);\n\nErrors accumulate in *errp: first error wins, subsequent errors get\ndropped.  To make this work, the second function does nothing when\ncalled with an error set.  Requires non-null errp, or else the second\nfunction can\u0027t see the first one fail.\n\nThis usage has also bled into visitor tests, and two device model\nobject property getters rtc_get_date() and balloon_stats_get_all().\n\nWith the \"accumulate\" technique, you need fewer error checks in\ncallers, and buy that with an error check in every callee.  Can be\nnice.\n\nHowever, mixing the two techniques is confusing.  You can\u0027t use the\n\"accumulate\" technique with functions designed for the \"check\nseparately\" technique.  You can use the \"check separately\" technique\nwith functions designed for the \"accumulate\" technique, but then\nerror_set() can\u0027t catch you setting an error more than once.\n\nStandardize on the \"check separately\" technique for now, because it\u0027s\noverwhelmingly prevalent.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "cdaec3808e756fee3c4e17d0168ec6429eff0dbc",
      "tree": "718af89969e579d18befe4b4c906f3ff9385176a",
      "parents": [
        "2ddb16a95f7d4edab4022ef4707d926c0c28db8d"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Wed May 07 09:53:53 2014 +0200"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 14:00:46 2014 -0400"
      },
      "message": "tests: Don\u0027t call visit_end_struct() after visit_start_struct() fails\n\nWhen visit_start_struct() fails, visit_end_struct() must not be\ncalled.  Three out of four visit_type_TestStruct() call it anyway.  As\nfar as I can tell, visit_start_struct() doesn\u0027t actually fail there.\nFix them anyway.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "2ddb16a95f7d4edab4022ef4707d926c0c28db8d",
      "tree": "2338ad65b79959e16328482de841ee9feb7d2615",
      "parents": [
        "f9f3a5ecde4cb636d8eb43edc0d097bd364ffe75"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Wed May 07 09:53:52 2014 +0200"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 14:00:46 2014 -0400"
      },
      "message": "hw: Don\u0027t call visit_end_struct() after visit_start_struct() fails\n\nWhen visit_start_struct() fails, visit_end_struct() must not be\ncalled.  rtc_get_date() and balloon_stats_all() call it anyway.  As\nfar as I can tell, they\u0027re only used with the string output visitor,\nwhich doesn\u0027t care.  Fix them anyway.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "f9f3a5ecde4cb636d8eb43edc0d097bd364ffe75",
      "tree": "e9c8956d719caa9e080adc76423f36200ed42c3c",
      "parents": [
        "be3c771796cb5ca4e7de2e04ed3cd2e3b6b76185"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Wed May 07 09:53:51 2014 +0200"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 14:00:46 2014 -0400"
      },
      "message": "hmp: Call visit_end_struct() after visit_start_struct() succeeds\n\nWhen visit_start_struct() succeeds, visit_end_struct() must be called.\nhmp_object_add() doesn\u0027t when a member visit fails.  As far as I can\ntell, the opts visitor copes okay with the misuse.  Fix it anyway.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "be3c771796cb5ca4e7de2e04ed3cd2e3b6b76185",
      "tree": "e41b8980d739a8a5a060dfbf033a2bac45d3acdb",
      "parents": [
        "192cca60aec59eda9a36501f03fc9dabf4d66a16"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Wed May 07 09:53:50 2014 +0200"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 14:00:46 2014 -0400"
      },
      "message": "qapi: Un-inline visit of implicit struct\n\nIn preparation of error handling changes.  Bonus: generates less\nduplicated code.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "192cca60aec59eda9a36501f03fc9dabf4d66a16",
      "tree": "1f71f301e6f07731e540173a399a25851a3200f1",
      "parents": [
        "4fa953f20d418256504d24ea16f1b39791d12e5b"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Wed May 07 09:53:49 2014 +0200"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 14:00:46 2014 -0400"
      },
      "message": "qapi-visit.py: Clean up a sloppy use of field prefix\n\ngenerate_visit_struct_fields() generates the base type\u0027s struct member\nname both with and without the field prefix.  Harmless, because the\nfield prefix is always empty there: only unboxed complex members have\na prefix, and those can\u0027t have a base type.\n\nClean it up anyway.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "4fa953f20d418256504d24ea16f1b39791d12e5b",
      "tree": "fa0b470c4678738bf9b94f2054b5174acf31775a",
      "parents": [
        "468866b816f13c8141b692ac0280706c16b30185"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Wed May 07 09:53:48 2014 +0200"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 14:00:45 2014 -0400"
      },
      "message": "qapi: Clean up shadowing of parameters and locals in inner scopes\n\nBy un-inlining the visit of nested complex types.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "468866b816f13c8141b692ac0280706c16b30185",
      "tree": "abfe5b94c75a0f2c6d6b4978662c6477871df6a6",
      "parents": [
        "e2cd0f4fb42b1fae65ad22e8efde9804446e6254"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Wed May 07 09:53:47 2014 +0200"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 14:00:45 2014 -0400"
      },
      "message": "qapi-visit.py: Clean up confusing push_indent() / pop_indent() use\n\nChanging implicit indentation in the middle of generating a block\nmakes following the code being generated unnecessarily hard.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "e2cd0f4fb42b1fae65ad22e8efde9804446e6254",
      "tree": "f8ea58b96ee1114f9dd0c45d67d567faec516df3",
      "parents": [
        "cbc95538eda98929d2c5c8ff0d9db9043fcf1ae6"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Wed May 07 09:53:46 2014 +0200"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 14:00:45 2014 -0400"
      },
      "message": "qapi: Replace start_optional()/end_optional() by optional()\n\nSemantics of end_optional() differ subtly from the other end_FOO()\ncallbacks: when start_FOO() succeeds, the matching end_FOO() gets\ncalled regardless of what happens in between.  end_optional() gets\ncalled only when everything in between succeeds as well.  Entirely\nundocumented, like all of the visitor API.\n\nThe only user of Visitor Callback end_optional() never did anything,\nand was removed in commit 9f9ab46.\n\nI\u0027m about to clean up error handling in the generated visitor code,\nand end_optional() is in my way.  No users mean no test cases, and\nmaking non-trivial cleanup transformations without test cases doesn\u0027t\nstrike me as a good idea.\n\nDrop end_optional(), and rename start_optional() to optional().  We\ncan always go back to a pair of callbacks when we have an actual need.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "cbc95538eda98929d2c5c8ff0d9db9043fcf1ae6",
      "tree": "763f19d1ab08d828ca04a182c3a4067fda27d80c",
      "parents": [
        "f9bee751be1292c9433a95d835474dc38a134a95"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Wed May 07 09:53:45 2014 +0200"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 14:00:45 2014 -0400"
      },
      "message": "qapi: Remove unused Visitor callbacks start_handle(), end_handle()\n\nThese have never been called or implemented by anything, and their\nintended use is undocumented, like all of the visitor API.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "f9bee751be1292c9433a95d835474dc38a134a95",
      "tree": "1de86f06a790eafdbeebf9b845087e0d8e08e9c7",
      "parents": [
        "6e2bb3ec70e2a23ba74328031c9b82f34c3d4eb9"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Wed May 07 09:53:44 2014 +0200"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 14:00:45 2014 -0400"
      },
      "message": "qapi: Normalize marshalling\u0027s visitor initialization and cleanup\n\nInput and output marshalling functions do it differently.  Change them\nto work the same: initialize the I/O visitor, use it, clean it up,\ninitialize the dealloc visitor, use it, clean it up.\n\nThis delays dealloc visitor initialization in output marshalling\nfunctions, and input visitor cleanup in input marshalling functions.\nNo functional change, but the latter will be convenient when I change\nthe error handling.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "6e2bb3ec70e2a23ba74328031c9b82f34c3d4eb9",
      "tree": "d9e044e9f3019bc067b5a2acb6688a4dd53d8fe8",
      "parents": [
        "16a9189921bdb9e351f2f9baec16b376f8d71cdf"
      ],
      "author": {
        "name": "Markus Armbruster",
        "email": "armbru@redhat.com",
        "time": "Wed May 07 09:53:43 2014 +0200"
      },
      "committer": {
        "name": "Luiz Capitulino",
        "email": "lcapitulino@redhat.com",
        "time": "Thu May 15 14:00:45 2014 -0400"
      },
      "message": "qapi: Update qapi-code-gen.txt example to match current code\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nSigned-off-by: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\n"
    },
    {
      "commit": "1a381811b495651ddfc2b50d7c8cfaaf375816b0",
      "tree": "52929ff08bc9a18f37f494f89e6aa7608c3e0930",
      "parents": [
        "16a9189921bdb9e351f2f9baec16b376f8d71cdf",
        "a10c64e0df3acbefdee1b2b837f76f05b0231aae"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 15 18:56:07 2014 +0100"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 15 18:56:08 2014 +0100"
      },
      "message": "Merge remote-tracking branch \u0027remotes/rth/tags/pull-tcg-s390-20140515\u0027 into staging\n\ntcg/s390 updates\n\n# gpg: Signature made Thu 15 May 2014 17:24:40 BST using RSA key ID 4DD0279B\n# gpg: Can\u0027t check signature: public key not found\n\n* remotes/rth/tags/pull-tcg-s390-20140515:\n  tcg-s390: Implement direct chaining of TBs\n  tcg-s390: Don\u0027t force -march\u003dz990\n  tcg-s390: Improve setcond\n  tcg-s390: Allow immediate operands to add2 and sub2\n  tcg-s390: Implement tcg_register_jit\n  tcg-s390: Use more risbg in the tlb sequence\n  tcg-s390: Move ldst helpers out of line\n  tcg-s390: Convert to new ldst opcodes\n  tcg-s390: Integrate endianness into TCGMemOp\n  tcg-s390: Convert to TCGMemOp\n  tcg-s390: Fix off-by-one in wraparound andi\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\n"
    },
    {
      "commit": "16a9189921bdb9e351f2f9baec16b376f8d71cdf",
      "tree": "7cd513137b0ce1ed68a7a9e9a851abc58211d5f0",
      "parents": [
        "ba43bc25c9793ae57d7b5539fecc26015a96107f",
        "d880b28cef4a8b4bc489a5caec201d019b9c0add"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 15 18:32:16 2014 +0100"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 15 18:32:16 2014 +0100"
      },
      "message": "Merge remote-tracking branch \u0027remotes/kraxel/tags/pull-roms-2\u0027 into staging\n\nseabios: update to 1.7.5-rc1\nipxe: update to current git\n\n# gpg: Signature made Thu 15 May 2014 13:29:37 BST using RSA key ID D3E87138\n# gpg: Good signature from \"Gerd Hoffmann (work) \u003ckraxel@redhat.com\u003e\"\n# gpg:                 aka \"Gerd Hoffmann \u003cgerd@kraxel.org\u003e\"\n# gpg:                 aka \"Gerd Hoffmann (private) \u003ckraxel@gmail.com\u003e\"\n\n* remotes/kraxel/tags/pull-roms-2:\n  ipxe: update to current git\n  seabios: update to 1.7.5-rc1\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\n"
    },
    {
      "commit": "ba43bc25c9793ae57d7b5539fecc26015a96107f",
      "tree": "d12167b0f2c198436028e728d410379d23d1c3cb",
      "parents": [
        "895527eea5e57695f76c5e41def531d7f1d80917",
        "937251408051e0489f78e4db3c92e045b147b38b"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 15 18:01:46 2014 +0100"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 15 18:01:47 2014 +0100"
      },
      "message": "Merge remote-tracking branch \u0027remotes/mst/tags/for_upstream\u0027 into staging\n\nvirtio update\n\nlooks like a quiet week\nminor bugfix in virtio by myself\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\n\n# gpg: Signature made Tue 13 May 2014 14:37:23 BST using RSA key ID D28D5469\n# gpg: Good signature from \"Michael S. Tsirkin \u003cmst@kernel.org\u003e\"\n# gpg:                 aka \"Michael S. Tsirkin \u003cmst@redhat.com\u003e\"\n\n* remotes/mst/tags/for_upstream:\n  virtio: allow mapping up to max queue size\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\n"
    },
    {
      "commit": "895527eea5e57695f76c5e41def531d7f1d80917",
      "tree": "38f78da19df850ef7e54008885a8be8b0ec2ccc9",
      "parents": [
        "50cb70d1853ecd30ce3a83d7fb73835d4540c63b",
        "719ffe1f5f72b1c7ace4afe9ba2815bcb53a829e"
      ],
      "author": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 15 17:29:03 2014 +0100"
      },
      "committer": {
        "name": "Peter Maydell",
        "email": "peter.maydell@linaro.org",
        "time": "Thu May 15 17:29:03 2014 +0100"
      },
      "message": "Merge remote-tracking branch \u0027remotes/juanquintela/tags/migration/20140515\u0027 into staging\n\nmigration/next for 20140515\n\n# gpg: Signature made Thu 15 May 2014 02:32:25 BST using RSA key ID 5872D723\n# gpg: Can\u0027t check signature: public key not found\n\n* remotes/juanquintela/tags/migration/20140515:\n  usb: fix up post load checks\n  migration: show average throughput when migration finishes\n  savevm: Remove all the unneeded version_minimum_id_old (rest)\n  savevm: Remove all the unneeded version_minimum_id_old (usb)\n  Split ram_save_block\n  arch_init: Simplify code for load_xbzrle()\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\n"
    },
    {
      "commit": "a10c64e0df3acbefdee1b2b837f76f05b0231aae",
      "tree": "70457e5526c7d69abcd52ff6873d1c47bf666df8",
      "parents": [
        "061cdd818251307d82dc8d4d7416ff34ddce49bc"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "rth@twiddle.net",
        "time": "Wed May 14 17:14:51 2014 -0400"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "rth@twiddle.net",
        "time": "Thu May 15 09:22:32 2014 -0700"
      },
      "message": "tcg-s390: Implement direct chaining of TBs\n\nSigned-off-by: Richard Henderson \u003crth@twiddle.net\u003e\n"
    },
    {
      "commit": "061cdd818251307d82dc8d4d7416ff34ddce49bc",
      "tree": "4fe68ad085ce59cce8251404363867a59ad18d74",
      "parents": [
        "7b7066b1db4e0609055c1f7f4ba58732c6ea06df"
      ],
      "author": {
        "name": "Richard Henderson",
        "email": "rth@twiddle.net",
        "time": "Mon Mar 31 13:40:49 2014 -0400"
      },
      "committer": {
        "name": "Richard Henderson",
        "email": "rth@twiddle.net",
        "time": "Thu May 15 09:20:47 2014 -0700"
      },
      "message": "tcg-s390: Don\u0027t force -march\u003dz990\n\nWhile we still require the LONG DISPLACEMENT facility, defaults\nhave moved on since then.  Don\u0027t override the system compiler,\nwhose default may be set to z9-109 or later.\n\nAcked-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Richard Henderson \u003crth@twiddle.net\u003e\n"
    }
  ],
  "next": "50cb70d1853ecd30ce3a83d7fb73835d4540c63b"
}
