{"push_id":1185688954,"size":40,"distinct_size":40,"ref":"refs/heads/master","head":"9a48e3670030148a8d00c8d4d4cd7f051c0d9f39","before":"8a0b4de048e20215415b24c7b42514c27b9d6ef3","commits":[{"sha":"ba4dba54347d5062436a8553f527dbbed6dcf069","author":{"name":"Eric Blake","email":"e61e790737d449e266fd6afd4f899153a9c1e9e9@redhat.com"},"message":"json-streamer: Don't leak tokens on incomplete parse\n\nValgrind complained about a number of leaks in\ntests/check-qobject-json:\n\n==12657==    definitely lost: 17,247 bytes in 1,234 blocks\n\nAll of which had the same root cause: on an incomplete parse,\nwe were abandoning the token queue without cleaning up the\nallocated data within each queue element.  Introduced in\ncommit 95385fe, when we switched from QList (which recursively\nfrees contents) to g_queue (which does not).\n\nWe don't yet require glib 2.32 with its g_queue_free_full(),\nso open-code it instead.\n\nCC: qemu-stable@nongnu.org\nSigned-off-by: Eric Blake <eblake@redhat.com>\nMessage-Id: <1463608012-12760-1-git-send-email-eblake@redhat.com>\nReviewed-by: Markus Armbruster <armbru@redhat.com>\nSigned-off-by: Markus Armbruster <armbru@redhat.com>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/ba4dba54347d5062436a8553f527dbbed6dcf069"},{"sha":"ff5394ad5b1039efef9844f5844f952aec93ef37","author":{"name":"Eric Blake","email":"e61e790737d449e266fd6afd4f899153a9c1e9e9@redhat.com"},"message":"qobject: Correct JSON lexer grammar comments\n\nFix the regex comments describing what we parse as JSON.  No change\nto the lexer itself, just to the comments:\n- The \"\" and '' string construction was missing alternation between\ndifferent escape sequences\n- The construction for numbers forgot to handle optional leading '-'\n- The construction for numbers was grouped incorrectly so that it\ndidn't permit '0.1'\n- The construction for numbers forgot to mark the exponent as optional\n- No mention that our '' string and \"\\'\" are JSON extensions\n- No mention of our %d and related extensions when constructing JSON\n\nSigned-off-by: Eric Blake <eblake@redhat.com>\nMessage-Id: <1465526889-8339-2-git-send-email-eblake@redhat.com>\nReviewed-by: Markus Armbruster <armbru@redhat.com>\n[Eric's regexp simplification squashed in]\nSigned-off-by: Markus Armbruster <armbru@redhat.com>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/ff5394ad5b1039efef9844f5844f952aec93ef37"},{"sha":"01fb8e192d2cb139622df22983360836e39a64ff","author":{"name":"Eric Blake","email":"e61e790737d449e266fd6afd4f899153a9c1e9e9@redhat.com"},"message":"checkpatch: There is no qemu_strtod()\n\nMaybe there should be; but until there is, we should not flag\nstrtod() calls as something to replaced with qemu_strtod().\n\nWe also lack qemu_strtof() and qemu_strtold(), but as no one\nhas been using strtof() or strtold(), it's not worth complicating\nthe regex for them.\n\n(Ironically, I had to use 'git commit -n' since checkpatch uses\nTAB indents, in violation of its own recommendations.)\n\nSigned-off-by: Eric Blake <eblake@redhat.com>\nMessage-Id: <1465526889-8339-3-git-send-email-eblake@redhat.com>\nReviewed-by: Markus Armbruster <armbru@redhat.com>\nSigned-off-by: Markus Armbruster <armbru@redhat.com>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/01fb8e192d2cb139622df22983360836e39a64ff"},{"sha":"9b4e38fe6a35890bb1d995316d7be08de0b30ee5","author":{"name":"Eric Blake","email":"e61e790737d449e266fd6afd4f899153a9c1e9e9@redhat.com"},"message":"qapi: Fix crash on missing alternate member of QAPI struct\n\nIf a QAPI struct has a mandatory alternate member which is not\npresent on input, the input visitor reports an error for the\nmissing alternate without setting the discriminator, but the\ncleanup code for the struct still tries to use the dealloc\nvisitor to clean up the alternate.\n\nCommit dbf11922 changed visit_start_alternate to set *obj to NULL\nwhen an error occurs, where it was previously left untouched.\nThus, before the patch, the dealloc visitor is blindly trying to\ncleanup whatever branch corresponds to (*obj)->type == 0 (that is,\nQTYPE_NONE, because *obj still pointed to zeroed memory), which\nselects the default branch of the switch and sets an error, but\nthis second error is ignored by the way the dealloc visitor is\nused; but after the patch, the attempt to switch dereferences NULL.\n\nWhen cleaning up after a partial object parse, we specifically\ncheck for !*obj after visit_start_struct() (see gen_visit_object());\ndoing the same for alternates fixes the crash. Enhance the testsuite\nto give coverage for both missing struct and missing alternate\nmembers.\n\nAlso add an abort - we expect visit_start_alternate() to either set an\nerror or to set (*obj)->type to a valid QType that corresponds to\nactual user input, and QTYPE_NONE should never be reachable from valid\ninput.  Had the abort() been in place earlier, we might have noticed\nthe dealloc visitor dereferencing bogus zeroed memory prior to when\ncommit dbf11922 forced our hand by setting *obj to NULL and causing a\nfault.\n\nTest case:\n\n{'execute':'blockdev-add', 'arguments':{'options':{'driver':'raw'}}}\n\nThe choice of 'driver':'raw' selects a BlockdevOptionsGenericFormat\nstruct, which has a mandatory 'file':'BlockdevRef' in QAPI.  Since\n'file' is missing as a sibling of 'driver', this should report a\ngraceful error rather than fault.  After this patch, we are back to:\n\n{\"error\": {\"class\": \"GenericError\", \"desc\": \"Parameter 'file' is missing\"}}\n\nGenerated code in qapi-visit.c changes as:\n\n|@@ -2444,6 +2444,9 @@ void visit_type_BlockdevRef(Visitor *v,\n|     if (err) {\n|         goto out;\n|     }\n|+    if (!*obj) {\n|+        goto out_obj;\n|+    }\n|     switch ((*obj)->type) {\n|     case QTYPE_QDICT:\n|         visit_start_struct(v, name, NULL, 0, &err);\n|@@ -2459,10 +2462,13 @@ void visit_type_BlockdevRef(Visitor *v,\n|     case QTYPE_QSTRING:\n|         visit_type_str(v, name, &(*obj)->u.reference, &err);\n|         break;\n|+    case QTYPE_NONE:\n|+        abort();\n|     default:\n|         error_setg(&err, QERR_INVALID_PARAMETER_TYPE, name ? name : \"null\",\n|                    \"BlockdevRef\");\n|     }\n|+out_obj:\n|     visit_end_alternate(v);\n\nReported by Kashyap Chamarthy <kchamart@redhat.com>\nCC: qemu-stable@nongnu.org\nSigned-off-by: Eric Blake <eblake@redhat.com>\nMessage-Id: <1466012271-5204-1-git-send-email-eblake@redhat.com>\nReviewed-by: Markus Armbruster <armbru@redhat.com>\nTested-by: Kashyap Chamarthy <kchamart@redhat.com>\n[Commit message tweaked]\nSigned-off-by: Markus Armbruster <armbru@redhat.com>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/9b4e38fe6a35890bb1d995316d7be08de0b30ee5"},{"sha":"fec0fc0a13ac7f1a1130433a6740cd850c3db34a","author":{"name":"Eric Blake","email":"e61e790737d449e266fd6afd4f899153a9c1e9e9@redhat.com"},"message":"range: Create range.c for code that should not be inline\n\ng_list_insert_sorted_merged() is rather large to be an inline\nfunction; move it to its own file.  range_merge() and\nranges_can_merge() can likewise move, as they are only used\ninternally.  Also, it becomes obvious that the condition within\nrange_merge() is already satisfied by its caller, and that the\nreturn value is not used.\n\nThe diffstat is misleading, because of the copyright boilerplate.\n\nSigned-off-by: Eric Blake <eblake@redhat.com>\nMessage-Id: <1464712890-14262-2-git-send-email-eblake@redhat.com>\nSigned-off-by: Markus Armbruster <armbru@redhat.com>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/fec0fc0a13ac7f1a1130433a6740cd850c3db34a"},{"sha":"7c47959d0cb05db43014141a156ada0b6d53a750","author":{"name":"Eric Blake","email":"e61e790737d449e266fd6afd4f899153a9c1e9e9@redhat.com"},"message":"qapi: Simplify use of range.h\n\nCalling our function g_list_insert_sorted_merged is a misnomer,\nsince we are NOT writing a glib function.  Furthermore, we are\nmaking every caller pass the same comparator function of\nrange_merge(): any caller that would try otherwise would break\nin weird ways since our internal call to ranges_can_merge() is\nhard-coded to operate only on ranges, rather than paying\nattention to the caller's comparator.\n\nBetter is to fix things so that callers don't have to care about\nour internal comparator, by picking a function name and updating\nthe parameter type away from a gratuitous use of void*, to make\nit obvious that we are operating specifically on a list of ranges\nand not a generic list.  Plus, refactoring the code here will\nmake it easier to plug a memory leak in the next patch.\n\nrange_compare() is now internal only, and moves to the .c file.\n\nSigned-off-by: Eric Blake <eblake@redhat.com>\nMessage-Id: <1464712890-14262-3-git-send-email-eblake@redhat.com>\nSigned-off-by: Markus Armbruster <armbru@redhat.com>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/7c47959d0cb05db43014141a156ada0b6d53a750"},{"sha":"db486cc334aafd3dbdaf107388e37fc3d6d3e171","author":{"name":"Eric Blake","email":"e61e790737d449e266fd6afd4f899153a9c1e9e9@redhat.com"},"message":"qapi: Fix memleak in string visitors on int lists\n\nCommit 7f8f9ef1 introduced the ability to store a list of\nintegers as a sorted list of ranges, but when merging ranges,\nit leaks one or more ranges.  It was also using range_get_last()\nincorrectly within range_compare() (a range is a start/end pair,\nbut range_get_last() is for start/len pairs), and will also\nmishandle a range ending in UINT64_MAX (remember, we document\nthat no range covers 2**64 bytes, but that ranges that end on\nUINT64_MAX have end < begin).\n\nThe whole merge algorithm was rather complex, and included\nunnecessary passes over data within glib functions, and enough\nindirection to make it hard to easily plug the data leaks.\nSince we are already hard-coding things to a list of ranges,\njust rewrite the thing to open-code the traversal and\ncomparisons, by making the range_compare() helper function give\nus an answer that is easier to use, at which point we avoid the\nneed to pass any callbacks to g_list_*(). Then by reusing\nrange_extend() instead of duplicating effort with range_merge(),\nwe cover the corner cases correctly.\n\nDrop the now-unused range_merge() and ranges_can_merge().\n\nDoing this lets test-string-{input,output}-visitor pass under\nvalgrind without leaks.\n\nSigned-off-by: Eric Blake <eblake@redhat.com>\nMessage-Id: <1464712890-14262-4-git-send-email-eblake@redhat.com>\nReviewed-by: Markus Armbruster <armbru@redhat.com>\n[Comment hoisted out of loop]\nSigned-off-by: Markus Armbruster <armbru@redhat.com>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/db486cc334aafd3dbdaf107388e37fc3d6d3e171"},{"sha":"ddf31aa853a32925f8141dbcb66fdc84f999ece1","author":{"name":"Peter Maydell","email":"d4da0cae8bdd6af8ce5950fc7fec7c012df68229@linaro.org"},"message":"linux-user: Fix compilation when F_SETPIPE_SZ isn't defined\n\nOlder kernels don't have F_SETPIPE_SZ and F_GETPIPE_SZ (in\nparticular RHEL6's system headers don't define these). Add\nifdefs so that we can gracefully fall back to not supporting\nthose guest ioctls rather than failing to build.\n\nSigned-off-by: Peter Maydell <peter.maydell@linaro.org>\nReviewed-by: Laurent Vivier <laurent@vivier.eu>\nMessage-id: 1467304429-21470-1-git-send-email-peter.maydell@linaro.org","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/ddf31aa853a32925f8141dbcb66fdc84f999ece1"},{"sha":"4d3fc4fdc6857e33346ed58ae55870f59391ee71","author":{"name":"Alex Williamson","email":"bff9c54069ec938f58cff883831b8ede60ad6e99@redhat.com"},"message":"vfio/pci: Fix VGA quirks\n\nCommit 2d82f8a3cdb2 (\"vfio/pci: Convert all MemoryRegion to dynamic\nalloc and consistent functions\") converted VFIOPCIDevice.vga to be\ndynamically allocted, negating the need for VFIOPCIDevice.has_vga.\nUnfortunately not all of the has_vga users were converted, nor was\nthe field removed from the structure.  Correct these oversights.\n\nReported-by: Peter Maloney <peter.maloney@brockmann-consult.de>\nTested-by: Peter Maloney <peter.maloney@brockmann-consult.de>\nFixes: 2d82f8a3cdb2 (\"vfio/pci: Convert all MemoryRegion to dynamic alloc and consistent functions\")\nFixes: https://bugs.launchpad.net/qemu/+bug/1591628\nCc: qemu-stable@nongnu.org\nSigned-off-by: Alex Williamson <alex.williamson@redhat.com>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/4d3fc4fdc6857e33346ed58ae55870f59391ee71"},{"sha":"325ae8d548ebeee99cbebd38e2ff0909a9081c50","author":{"name":"Chen Fan","email":"4c232e1b85810fb6e53e49c5f20a57566756b804@cn.fujitsu.com"},"message":"vfio: add pcie extended capability support\n\nFor vfio pcie device, we could expose the extended capability on\nPCIE bus. due to add a new pcie capability at the tail of the chain,\nin order to avoid config space overwritten, we introduce a copy config\nfor parsing extended caps. and rebuild the pcie extended config space.\n\nSigned-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com>\nTested-by: Laszlo Ersek <lersek@redhat.com>\nSigned-off-by: Alex Williamson <alex.williamson@redhat.com>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/325ae8d548ebeee99cbebd38e2ff0909a9081c50"},{"sha":"e37dac06dc4e85a2f46c24261c0dfdf2a30b50e3","author":{"name":"Alex Williamson","email":"bff9c54069ec938f58cff883831b8ede60ad6e99@redhat.com"},"message":"vfio/pci: Hide SR-IOV capability\n\nThe kernel currently exposes the SR-IOV capability as read-only\nthrough vfio-pci.  This is sufficient to protect the host kernel, but\nhas the potential to confuse guests without further virtualization.\nIn particular, OVMF tries to size the VF BARs and comes up with absurd\nresults, ending with an assert.  There's not much point in adding\nvirtualization to a read-only capability, so we simply hide it for\nnow.  If the kernel ever enables SR-IOV virtualization, we should\neasily be able to test it through VF BAR sizing or explicit flags.\n\nTesting whether we should parse extended capabilities is also pulled\ninto the function to keep these assumptions in one place.\n\nTested-by: Laszlo Ersek <lersek@redhat.com>\nSigned-off-by: Alex Williamson <alex.williamson@redhat.com>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/e37dac06dc4e85a2f46c24261c0dfdf2a30b50e3"},{"sha":"d22d8956b185c002b50a4d0883aff61f857347ef","author":{"name":"Alexey Kardashevskiy","email":"4ac31ea3affe1efd3f0ea903dab9f9666559912c@ozlabs.ru"},"message":"memory: Add MemoryRegionIOMMUOps.notify_started/stopped callbacks\n\nThe IOMMU driver may change behavior depending on whether a notifier\nclient is present.  In the case of POWER, this represents a change in\nthe visibility of the IOTLB, for other drivers such as intel-iommu and\nfuture AMD-Vi emulation, notifier support is not yet enabled and this\nprovides the opportunity to flag that incompatibility.\n\nSigned-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>\nReviewed-by: David Gibson <david@gibson.dropbear.id.au>\nReviewed-by: Peter Xu <peterx@redhat.com>\nTested-by: Peter Xu <peterx@redhat.com>\nAcked-by: Paolo Bonzini <pbonzini@redhat.com>\n[new log & extracted from [PATCH qemu v17 12/12] spapr_iommu, vfio, memory: Notify IOMMU about starting/stopping listening]\nSigned-off-by: Alex Williamson <alex.williamson@redhat.com>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/d22d8956b185c002b50a4d0883aff61f857347ef"},{"sha":"3cb3b1549f5401dc3a5e1d073e34063dc274136f","author":{"name":"Alex Williamson","email":"bff9c54069ec938f58cff883831b8ede60ad6e99@redhat.com"},"message":"intel_iommu: Throw hw_error on notify_started\n\nWe don't currently support the MemoryRegionIOMMUOps notifier, so throw\nan error should a device require it.\n\nReviewed-by: Marcel Apfelbaum <marcel@redhat.com>\nReviewed-by: David Gibson <david@gibson.dropbear.id.au>\nReviewed-by: Peter Xu <peterx@redhat.com>\nTested-by: Peter Xu <peterx@redhat.com>\nAcked-by: Paolo Bonzini <pbonzini@redhat.com>\nSigned-off-by: Alex Williamson <alex.williamson@redhat.com>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/3cb3b1549f5401dc3a5e1d073e34063dc274136f"},{"sha":"8eeb330c69bbfa2667a7c60c7765974bf8442aa7","author":{"name":"Benjamin Herrenschmidt","email":"58942ee662d0fe5d44043b40ceefc845bad5a84d@kernel.crashing.org"},"message":"ppc: Add a bunch of hypervisor SPRs to Book3s\n\nWe don't give them a KVM reg number yet as no current KVM version\nsupports HV mode.\n\nSigned-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>\n[clg: SPRs AMOR,DAWR,DARWX were already included in commit f401dd32cb8e9]\nSigned-off-by: Cédric Le Goater <clg@kaod.org>\nSigned-off-by: David Gibson <david@gibson.dropbear.id.au>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/8eeb330c69bbfa2667a7c60c7765974bf8442aa7"},{"sha":"88536935c00311781addc980b0be8fe74f9f5706","author":{"name":"Benjamin Herrenschmidt","email":"58942ee662d0fe5d44043b40ceefc845bad5a84d@kernel.crashing.org"},"message":"ppc: Update LPCR definitions\n\nIncludes all the bits up to ISA 2.07\n\nSigned-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>\n[clg: fixed checkpatch.pl errors ]\nSigned-off-by: Cédric Le Goater <clg@kaod.org>\nSigned-off-by: David Gibson <david@gibson.dropbear.id.au>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/88536935c00311781addc980b0be8fe74f9f5706"},{"sha":"4b3fc37788fe5a9c6ec0c43863c78604db40cbb3","author":{"name":"Benjamin Herrenschmidt","email":"58942ee662d0fe5d44043b40ceefc845bad5a84d@kernel.crashing.org"},"message":"ppc: Use a helper to filter writes to LPCR\n\nThis handles filtering bits based on what is implemented by a\ngiven architecture version. We also use it to copy to LPCR\nsome of the relevant 970 HID4 bits.\n\nSigned-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>\n[clg: fixed checkpatch.pl errors ]\nSigned-off-by: Cédric Le Goater <clg@kaod.org>\nSigned-off-by: David Gibson <david@gibson.dropbear.id.au>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/4b3fc37788fe5a9c6ec0c43863c78604db40cbb3"},{"sha":"d1dbe37c1ee3f14cb64a9ae3c89f637fdd08fca1","author":{"name":"Benjamin Herrenschmidt","email":"58942ee662d0fe5d44043b40ceefc845bad5a84d@kernel.crashing.org"},"message":"ppc: Fix conditions for delivering external interrupts to a guest\n\nExternal interrupts can bypass the MSR_EE test if they occur in guest\nmode and LPES0 is clear. In that case they are directed to the hypervisor\n\nSigned-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>\nSigned-off-by: Cédric Le Goater <clg@kaod.org>\nSigned-off-by: David Gibson <david@gibson.dropbear.id.au>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/d1dbe37c1ee3f14cb64a9ae3c89f637fdd08fca1"},{"sha":"b378bb0948277d71c78bc6d0c1ef80a253aafc80","author":{"name":"Benjamin Herrenschmidt","email":"58942ee662d0fe5d44043b40ceefc845bad5a84d@kernel.crashing.org"},"message":"ppc: Enforce setting MSR:EE,IR and DR when MSR:PR is set\n\nThe architecture specifies that any instruction that sets MSR:PR will also\nset MSR:EE, IR and DR.\n\nSigned-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>\nSigned-off-by: Cédric Le Goater <clg@kaod.org>\nSigned-off-by: David Gibson <david@gibson.dropbear.id.au>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/b378bb0948277d71c78bc6d0c1ef80a253aafc80"},{"sha":"4b236b621bf090509c4a0be372edfd31d13b289a","author":{"name":"Benjamin Herrenschmidt","email":"58942ee662d0fe5d44043b40ceefc845bad5a84d@kernel.crashing.org"},"message":"ppc: Initial HDEC support\n\nThe current behaviour isn't completely right, as for the DEC, we\ndon't properly re-arm when wrapping around, but I will fix this\nin a separate patch.\n\nSigned-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>\n[clg: fixed checkpatch.pl errors ]\nSigned-off-by: Cédric Le Goater <clg@kaod.org>\nSigned-off-by: David Gibson <david@gibson.dropbear.id.au>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/4b236b621bf090509c4a0be372edfd31d13b289a"},{"sha":"635dff20a3c5fbf6726954dd2892e5b476ca7494","author":{"name":"Benjamin Herrenschmidt","email":"58942ee662d0fe5d44043b40ceefc845bad5a84d@kernel.crashing.org"},"message":"ppc: LPCR is a HV resource\n\nDon't allow access in guest mode\n\nSigned-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>\nSigned-off-by: Cédric Le Goater <clg@kaod.org>\nSigned-off-by: David Gibson <david@gibson.dropbear.id.au>","distinct":true,"url":"https://api.github.com/repos/enicom/qemu/commits/635dff20a3c5fbf6726954dd2892e5b476ca7494"}]}
{"actor":{"display_login":"shawone"}}