Skip to content
Snippets Groups Projects
  1. Dec 10, 2019
  2. Dec 09, 2019
    • Peter Maydell's avatar
      Merge remote-tracking branch 'remotes/ericb/tags/pull-nbd-2019-12-09' into staging · 9b4efa2e
      Peter Maydell authored
      
      bitmap fix for 4.2-rc5
      
      - Fix a regression that broke bitmap deletion without a transaction,
      and causes a crash with transaction (only transaction is new to 4.2),
      when a qcow2 file contains persistent bitmaps from prior shutdown
      
      # gpg: Signature made Mon 09 Dec 2019 15:28:19 GMT
      # gpg:                using RSA key 71C2CC22B1C4602927D2F3AAA7A16B4A2527436A
      # gpg: Good signature from "Eric Blake <eblake@redhat.com>" [full]
      # gpg:                 aka "Eric Blake (Free Software Programmer) <ebb9@byu.net>" [full]
      # gpg:                 aka "[jpeg image of size 6874]" [full]
      # Primary key fingerprint: 71C2 CC22 B1C4 6029 27D2  F3AA A7A1 6B4A 2527 436A
      
      * remotes/ericb/tags/pull-nbd-2019-12-09:
        block/qcow2-bitmap: fix crash bug in qcow2_co_remove_persistent_dirty_bitmap
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      9b4efa2e
    • Vladimir Sementsov-Ogievskiy's avatar
      block/qcow2-bitmap: fix crash bug in qcow2_co_remove_persistent_dirty_bitmap · f56281ab
      Vladimir Sementsov-Ogievskiy authored
      
      Here is double bug:
      
      First, return error but not set errp. This may lead to:
      qmp block-dirty-bitmap-remove may report success when actually failed
      
      block-dirty-bitmap-remove used in a transaction will crash, as
      qmp_transaction will think that it returned success and will call
      block_dirty_bitmap_remove_commit which will crash, as state->bitmap is
      NULL
      
      Second (like in anecdote), this case is not an error at all. As it is
      documented in the comment above bdrv_co_remove_persistent_dirty_bitmap
      definition, absence of bitmap is not an error, and similar case handled
      at start of qcow2_co_remove_persistent_dirty_bitmap, it returns 0 when
      there is no bitmaps at all.
      
      But when there are some bitmaps, but not the requested one, it return
      error with errp unset.
      
      Fix that.
      
      Trigger:
      1. create persistent bitmap A
      2. shutdown vm  (bitmap A is synced)
      3. start vm
      4. create persistent bitmap B
      5. remove bitmap B - it fails (and crashes if in transaction)
      
      Potential workaround (rather invasive to ask clients to implement it):
      1. create persistent bitmap A
      2. shutdown vm
      3. start vm
      4. create persistent bitmap B
      5. remember, that we want to remove bitmap B after vm shutdown
      ...
        some other operations
      ...
      6. vm shutdown
      7. start vm in stopped mode, and remove all bitmaps marked for removing
      8. stop vm
      
      Fixes: b56a1e31
      Signed-off-by: default avatarVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
      Message-Id: <20191205193049.30666-1-vsementsov@virtuozzo.com>
      Reviewed-by: default avatarEric Blake <eblake@redhat.com>
      Reviewed-by: default avatarJohn Snow <jsnow@redhat.com>
      [eblake: commit message tweaks]
      Signed-off-by: default avatarEric Blake <eblake@redhat.com>
      f56281ab
    • Peter Maydell's avatar
      Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-4.2-20191209' into staging · 8350b17b
      Peter Maydell authored
      
      ppc patch queue 2019-12-09
      
      This is a last minute pull request for ppc-for-4.2.  I know it's very
      late in freeze, but this does fix a regression: a bad interaction
      between the new qemu and SLOF device tree construction code means that
      SLOF will crash if PCI to PCI bridges are included in the system.
      
      This PR supersedes ppc-for-4.2-20191206.  This one has only a more
      minimal change to the firmware addressed only at fixing this bug and
      not incorporating some other unrelated changes that happened in the
      meantime.
      
      # gpg: Signature made Mon 09 Dec 2019 04:52:19 GMT
      # gpg:                using RSA key 75F46586AE61A66CC44E87DC6C38CACA20D9B392
      # gpg: Good signature from "David Gibson <david@gibson.dropbear.id.au>" [full]
      # gpg:                 aka "David Gibson (Red Hat) <dgibson@redhat.com>" [full]
      # gpg:                 aka "David Gibson (ozlabs.org) <dgibson@ozlabs.org>" [full]
      # gpg:                 aka "David Gibson (kernel.org) <dwg@kernel.org>" [unknown]
      # Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392
      
      * remotes/dgibson/tags/ppc-for-4.2-20191209:
        pseries: Update SLOF firmware image
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      8350b17b
    • Alexey Kardashevskiy's avatar
      pseries: Update SLOF firmware image · a2fad864
      Alexey Kardashevskiy authored
      
      This fixes PCI bridge regression.
      
      Alexey Kardashevskiy (3):
            ibm,client-architecture-support: Fix stack handling
            fdt: Fix updating the tree at H_CAS
            version: update to 20191209
      
      Signed-off-by: default avatarAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      a2fad864
  3. Dec 06, 2019
  4. Dec 03, 2019
  5. Dec 02, 2019
    • Peter Maydell's avatar
      Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2019-12-02' into staging · 39032981
      Peter Maydell authored
      
      Error reporting patches for 2019-12-02
      
      # gpg: Signature made Mon 02 Dec 2019 15:17:45 GMT
      # gpg:                using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653
      # gpg:                issuer "armbru@redhat.com"
      # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" [full]
      # gpg:                 aka "Markus Armbruster <armbru@pond.sub.org>" [full]
      # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867  4E5F 3870 B400 EB91 8653
      
      * remotes/armbru/tags/pull-error-2019-12-02:
        block/file-posix: Fix laio_init() error handling crash bug
        net/virtio: Fix failover error handling crash bugs
        net/virtio: Drop useless n->primary_dev not null checks
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      39032981
    • Markus Armbruster's avatar
      block/file-posix: Fix laio_init() error handling crash bug · cb09104e
      Markus Armbruster authored
      
      raw_aio_attach_aio_context() passes uninitialized Error *local_err by
      reference to laio_init() via aio_setup_linux_aio().  When laio_init()
      fails, it passes it on to error_setg_errno(), tripping error_setv()'s
      assertion unless @local_err is null by dumb luck.
      
      Fix by initializing @local_err properly.
      
      Fixes: ed6e2161
      Cc: Nishanth Aravamudan <naravamudan@digitalocean.com>
      Cc: Stefan Hajnoczi <stefanha@redhat.com>
      Cc: Kevin Wolf <kwolf@redhat.com>
      Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Message-Id: <20191130194240.10517-4-armbru@redhat.com>
      Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      Reviewed-by: default avatarKevin Wolf <kwolf@redhat.com>
      cb09104e
    • Markus Armbruster's avatar
      net/virtio: Fix failover error handling crash bugs · 5a0948d3
      Markus Armbruster authored
      
      Functions that take an Error ** parameter to pass an error to the
      caller expect the parameter to point to null.
      failover_replug_primary() violates this precondition in several
      places:
      
      * After qemu_opts_from_qdict() failed, *errp is no longer null.
        Passing it to error_setg() is wrong, and will trip the assertion in
        error_setv().  Messed up in commit 150ab54a "net/virtio: fix
        re-plugging of primary device".  Simply drop the error_setg().
      
      * Passing @errp to qemu_opt_set_bool(), hotplug_handler_pre_plug(),
        and hotplug_handler_plug() is wrong.  If one of the first two fails,
        *errp is no longer null.  Risks tripping the same assertion.
        Moreover, continuing after such errors is unsafe.  Messed up in
        commit 9711cd0d "net/virtio: add failover support".  Fix by
        handling each error properly.
      
      failover_replug_primary() crashes when passed a null @errp.  Also
      messed up in commit 9711cd0d.  This bug can't bite as no caller
      actually passes null.  Fix it anyway.
      
      Fixes: 9711cd0d
      Fixes: 150ab54a
      Cc: Jens Freimann <jfreimann@redhat.com>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Message-Id: <20191130194240.10517-3-armbru@redhat.com>
      Reviewed-by: default avatarJens Freimann <jfreimann@redhat.com>
      5a0948d3
    • Markus Armbruster's avatar
      net/virtio: Drop useless n->primary_dev not null checks · 4dbac1ae
      Markus Armbruster authored
      
      virtio_net_handle_migration_primary() returns early when it can't
      ensure n->primary_dev is non-null.  Checking it again right after that
      early return is redundant.  Drop.
      
      If n->primary_dev is null on entering failover_replug_primary(), @pdev
      will become null, and pdev->partially_hotplugged will crash.  Checking
      n->primary_dev later is useless.  It can't actually be null, because
      its caller virtio_net_handle_migration_primary() ensures it isn't.
      Drop the useless check.
      
      Cc: Jens Freimann <jfreimann@redhat.com>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Message-Id: <20191130194240.10517-2-armbru@redhat.com>
      Reviewed-by: default avatarJens Freimann <jfreimann@redhat.com>
      4dbac1ae
  6. Nov 29, 2019
  7. Nov 26, 2019
Loading