qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] e65463: linux headers: sync to 5.9-rc4


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] e65463: linux headers: sync to 5.9-rc4
Date: Tue, 29 Sep 2020 04:15:29 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: e6546342a830e520d14ef03aa95677611de0d90c
      
https://github.com/qemu/qemu/commit/e6546342a830e520d14ef03aa95677611de0d90c
  Author: Jason Wang <jasowang@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M include/standard-headers/drm/drm_fourcc.h
    M include/standard-headers/linux/ethtool.h
    M include/standard-headers/linux/input-event-codes.h
    M include/standard-headers/linux/vhost_types.h
    M include/standard-headers/linux/virtio_9p.h
    M include/standard-headers/linux/virtio_blk.h
    M include/standard-headers/linux/virtio_config.h
    M include/standard-headers/linux/virtio_console.h
    M include/standard-headers/linux/virtio_net.h
    M include/standard-headers/linux/virtio_scsi.h
    M linux-headers/asm-generic/unistd.h
    M linux-headers/asm-mips/unistd_n32.h
    M linux-headers/asm-mips/unistd_n64.h
    M linux-headers/asm-mips/unistd_o32.h
    M linux-headers/asm-powerpc/kvm.h
    M linux-headers/asm-powerpc/unistd_32.h
    M linux-headers/asm-powerpc/unistd_64.h
    M linux-headers/asm-s390/kvm.h
    M linux-headers/asm-s390/unistd_32.h
    M linux-headers/asm-s390/unistd_64.h
    M linux-headers/asm-x86/unistd_32.h
    M linux-headers/asm-x86/unistd_64.h
    M linux-headers/asm-x86/unistd_x32.h
    M linux-headers/linux/kvm.h
    M linux-headers/linux/vfio.h
    M linux-headers/linux/vhost.h

  Log Message:
  -----------
  linux headers: sync to 5.9-rc4

Update against Linux 5.9-rc4.

Cc: Cornelia Huck <cohuck@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20200907104903.31551-2-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: b37556edec8372bef83959901fc142a272a7e1fa
      
https://github.com/qemu/qemu/commit/b37556edec8372bef83959901fc142a272a7e1fa
  Author: Jason Wang <jasowang@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/virtio/vhost-backend.c
    M hw/virtio/vhost.c
    M include/hw/virtio/vhost-backend.h
    M include/hw/virtio/vhost.h

  Log Message:
  -----------
  vhost: switch to use IOTLB v2 format

This patch tries to switch to use new kernel IOTLB format V2. Previous
version may have inconsistent ABI between 32bit and 64bit machines
because of the hole after type field. Refer kernel commit
("429711aec282 vhost: switch to use new message format") for more
information.

To enable this feature, qemu need to use a new ioctl
VHOST_SET_BACKEND_FEATURE with VHOST_BACKEND_F_IOTLB_MSG_V2 bit. A new
vhost setting backend features ops was introduced. And when we try to
set features for vhost dev, we will examine the support of new IOTLB
format and enable it. This process is total transparent to guest,
which means we can have different IOTLB message type in src and dst
during migration.

The conversion of IOTLB message is straightforward, just check the
type and behave accordingly.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20200907104903.31551-3-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: a5bd05800f8659851d9d0a1546726e16b7da9db3
      
https://github.com/qemu/qemu/commit/a5bd05800f8659851d9d0a1546726e16b7da9db3
  Author: Jason Wang <jasowang@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/virtio/vhost-vdpa.c
    M include/hw/virtio/vhost-vdpa.h

  Log Message:
  -----------
  vhost-vdpa: batch updating IOTLB mappings

To speed up the memory mapping updating between vhost-vDPA and vDPA
device driver, this patch passes the IOTLB batching flags via IOTLB
API. Two new flags was introduced, VHOST_IOTLB_BATCH_BEGIN is a hint
that a bathced IOTLB updating may be initiated from the
userspace. VHOST_IOTLB_BATCH_END is a hint that userspace has finished
the updating:

VHOST_IOTLB_BATCH_BEGIN
VHOST_IOTLB_UPDATE/VHOST_IOTLB_INVALIDATE
...
VHOST_IOTLB_BATCH_END

Vhost-vDPA can then know that all mappings has been set and can do
optimization like passing all the mappings to the vDPA device driver.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20200907104903.31551-4-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 0c404e45c592996f00f4473464b670f771d076ba
      
https://github.com/qemu/qemu/commit/0c404e45c592996f00f4473464b670f771d076ba
  Author: Li Qiang <liq3ea@163.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/virtio/virtio-mem.c

  Log Message:
  -----------
  virtio-mem: detach the element from the virtqueue when error occurs

If error occurs while processing the virtio request we should call
'virtqueue_detach_element' to detach the element from the virtqueue
before free the elem.

Signed-off-by: Li Qiang <liq3ea@163.com>
Message-Id: <20200816142245.17556-1-liq3ea@163.com>
Fixes: 910b25766b ("virtio-mem: Paravirtualized memory hot(un)plug")
Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: d110b6b4d64ad60186d7d16d60ea69b9ab89bc76
      
https://github.com/qemu/qemu/commit/d110b6b4d64ad60186d7d16d60ea69b9ab89bc76
  Author: David Hildenbrand <david@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/i386/pc_q35.c

  Log Message:
  -----------
  pc: fix auto_enable_numa_with_memhp/auto_enable_numa_with_memdev for the 5.0 
machine

Unfortunately, a typo sneeked in: we want to set
auto_enable_numa_with_memdev to false, not auto_enable_numa_with_memhp.

Cc: qemu-stable@nongnu.org # v5.1
Fixes: 195784a0cfad (numa: Auto-enable NUMA when any memory devices are 
possible)
Reported-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20200820094828.30348-1-david@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: f5b22d06fb0526c9292568dd1fc13b9d1a8b003e
      
https://github.com/qemu/qemu/commit/f5b22d06fb0526c9292568dd1fc13b9d1a8b003e
  Author: Dima Stepanov <dimastep@yandex-team.ru>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/block/vhost-user-blk.c
    M hw/virtio/vhost.c
    M include/hw/virtio/vhost-user-blk.h

  Log Message:
  -----------
  vhost: recheck dev state in the vhost_migration_log routine

vhost-user devices can get a disconnect in the middle of the VHOST-USER
handshake on the migration start. If disconnect event happened right
before sending next VHOST-USER command, then the vhost_dev_set_log()
call in the vhost_migration_log() function will return error. This error
will lead to the assert() and close the QEMU migration source process.
For the vhost-user devices the disconnect event should not break the
migration process, because:
  - the device will be in the stopped state, so it will not be changed
    during migration
  - if reconnect will be made the migration log will be reinitialized as
    part of reconnect/init process:
    #0  vhost_log_global_start (listener=0x563989cf7be0)
    at hw/virtio/vhost.c:920
    #1  0x000056398603d8bc in listener_add_address_space 
(listener=0x563989cf7be0,
        as=0x563986ea4340 <address_space_memory>)
    at softmmu/memory.c:2664
    #2  0x000056398603dd30 in memory_listener_register (listener=0x563989cf7be0,
        as=0x563986ea4340 <address_space_memory>)
    at softmmu/memory.c:2740
    #3  0x0000563985fd6956 in vhost_dev_init (hdev=0x563989cf7bd8,
        opaque=0x563989cf7e30, backend_type=VHOST_BACKEND_TYPE_USER,
        busyloop_timeout=0)
    at hw/virtio/vhost.c:1385
    #4  0x0000563985f7d0b8 in vhost_user_blk_connect (dev=0x563989cf7990)
    at hw/block/vhost-user-blk.c:315
    #5  0x0000563985f7d3f6 in vhost_user_blk_event (opaque=0x563989cf7990,
        event=CHR_EVENT_OPENED)
    at hw/block/vhost-user-blk.c:379
Update the vhost-user-blk device with the internal started_vu field which
will be used for initialization (vhost_user_blk_start) and clean up
(vhost_user_blk_stop). This additional flag in the VhostUserBlk structure
will be used to track whether the device really needs to be stopped and
cleaned up on a vhost-user level.
The disconnect event will set the overall VHOST device (not vhost-user) to
the stopped state, so it can be used by the general vhost_migration_log
routine.
Such approach could be propogated to the other vhost-user devices, but
better idea is just to make the same connect/disconnect code for all the
vhost-user devices.

This migration issue was slightly discussed earlier:
  - https://lists.gnu.org/archive/html/qemu-devel/2020-05/msg01509.html
  - https://lists.gnu.org/archive/html/qemu-devel/2020-05/msg05241.html

Signed-off-by: Dima Stepanov <dimastep@yandex-team.ru>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Message-Id: 
<9fbfba06791a87813fcee3e2315f0b904cc6789a.1599813294.git.dimastep@yandex-team.ru>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 1e5a050f57984134c1d488238db3bc7ccaa36e52
      
https://github.com/qemu/qemu/commit/1e5a050f57984134c1d488238db3bc7ccaa36e52
  Author: Dima Stepanov <dimastep@yandex-team.ru>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/virtio/vhost.c

  Log Message:
  -----------
  vhost: check queue state in the vhost_dev_set_log routine

If the vhost-user-blk daemon provides only one virtqueue, but device was
added with several queues, then QEMU will send more VHOST-USER command
than expected by daemon side. The vhost_virtqueue_start() routine
handles such case by checking the return value from the
virtio_queue_get_desc_addr() function call. Add the same check to the
vhost_dev_set_log() routine.

Signed-off-by: Dima Stepanov <dimastep@yandex-team.ru>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Message-Id: 
<6232946d5af09e9775076645909964a6539b8ab5.1599813294.git.dimastep@yandex-team.ru>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 892040dc8bf4686489a7841ce6d4460bafb0af38
      
https://github.com/qemu/qemu/commit/892040dc8bf4686489a7841ce6d4460bafb0af38
  Author: Dima Stepanov <dimastep@yandex-team.ru>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M tests/qtest/vhost-user-test.c

  Log Message:
  -----------
  tests/qtest/vhost-user-test: prepare the tests for adding new dev class

For now only vhost-user-net device is supported by the test. Other
vhost-user devices are not tested. As a first step make source code
refactoring so new devices can reuse the same test routines. To make
this provide a new vhost_user_ops structure with the methods to
initialize device, its command line or make a proper vhost-user
responses.

Signed-off-by: Dima Stepanov <dimastep@yandex-team.ru>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Message-Id: 
<a48b60fb96fef230b75fff72a2d77040dcb5ef7c.1599813294.git.dimastep@yandex-team.ru>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 63e79833c46fa6d21efb1c4d966b0a204c4b7b0f
      
https://github.com/qemu/qemu/commit/63e79833c46fa6d21efb1c4d966b0a204c4b7b0f
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M docs/system/deprecated.rst
    M hmp-commands.hx
    M hw/core/machine-hmp-cmds.c
    M hw/core/machine-qmp-cmds.c
    M hw/i386/pc.c
    M hw/i386/pc_piix.c
    M hw/s390x/s390-virtio-ccw.c
    M include/hw/boards.h
    M include/hw/i386/pc.h
    M include/monitor/hmp.h
    M qapi/machine.json
    M tests/qtest/cpu-plug-test.c
    M tests/qtest/test-hmp.c

  Log Message:
  -----------
  cphp: remove deprecated cpu-add command(s)

These were deprecated since 4.0, remove both HMP and QMP variants.

Users should use device_add command instead. To get list of
possible CPUs and options, use 'info hotpluggable-cpus' HMP
or query-hotpluggable-cpus QMP command.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Acked-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20200915120403.1074579-1-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 59bf980d22af00880ab7f24f3da3c40e0cf13e98
      
https://github.com/qemu/qemu/commit/59bf980d22af00880ab7f24f3da3c40e0cf13e98
  Author: Eric Auger <eric.auger@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/virtio/virtio-iommu.c

  Log Message:
  -----------
  virtio-iommu: Check gtrees are non null before destroying them

If realize fails, domains and endpoints trees may be NULL. On
unrealize(), this produces assertions:

"GLib: g_tree_destroy: assertion 'tree != NULL' failed"

Check that the trees are non NULL before destroying them.

Cc: qemu-stable@nongnu.org
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>

Message-Id: <20200908193309.20569-2-eric.auger@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 8f39562a1b7e0590ca048284dbcbfaee17e136b8
      
https://github.com/qemu/qemu/commit/8f39562a1b7e0590ca048284dbcbfaee17e136b8
  Author: Eric Auger <eric.auger@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/virtio/virtio-iommu-pci.c

  Log Message:
  -----------
  virtio-iommu-pci: force virtio version 1

Commit 9b3a35ec82 ("virtio: verify that legacy support is not
accidentally on") added a safety check that requires to set
'disable-legacy=on' on virtio-iommu-pci:

qemu-system-aarch64: -device virtio-iommu-pci: device is modern-only,
use disable-legacy=on

virtio-iommu was introduced after the release of VIRTIO 1.0
specifications, so it should be 'modern-only'.

This patch forces virtio version 1 and removes the 'transitional_name'
property removing the need to specify 'disable-legacy=on' on
virtio-iommu-pci device.

Cc: qemu-stable@nongnu.org
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>

Message-Id: <20200908193309.20569-3-eric.auger@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: f68ec01fe965e8c06ce6181fe28e1a9bef352cff
      
https://github.com/qemu/qemu/commit/f68ec01fe965e8c06ce6181fe28e1a9bef352cff
  Author: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/virtio/virtio-pmem-pci.c

  Log Message:
  -----------
  virtio-pmem-pci: force virtio version 1

 Qemu fails with below error when trying to run with virtio pmem:

 (qemu) qemu-system-x86_64: -device virtio-pmem-pci,memdev=mem1,id=nv1:
  device is modern-only, use disable-legacy=on

 This patch fixes this by forcing virtio 1 with virtio-pmem.

fixes: adf0748a49 ("virtio-pci: Proxy for virtio-pmem")
Signed-off-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
Message-Id: <20200925102251.7216-1-pankaj.gupta.linux@gmail.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Acked-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: bbb169080fe55947b40f8e035eb205316e9b29a5
      
https://github.com/qemu/qemu/commit/bbb169080fe55947b40f8e035eb205316e9b29a5
  Author: Laurent Vivier <lvivier@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M include/qemu-common.h
    M util/hexdump.c

  Log Message:
  -----------
  util/hexdump: introduce qemu_hexdump_line()

Dumping one line of hexadecimal/ASCII from a buffer is often needed.
Move this part from qemu_hexdump() and use it

Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Message-Id: <20200925091055.186023-2-lvivier@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 778e67de4cd8998fbac5fb4f0841a0b800e5404c
      
https://github.com/qemu/qemu/commit/778e67de4cd8998fbac5fb4f0841a0b800e5404c
  Author: Laurent Vivier <lvivier@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/virtio/trace-events
    M hw/virtio/vhost-vdpa.c

  Log Message:
  -----------
  vhost-vdpa: add trace-events

Add trace functions in vhost-vdpa.c.

All traces from this file can be enabled with '-trace vhost_vdpa*'.

Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Message-Id: <20200925091055.186023-3-lvivier@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 40bc0ca924daca3fb2b5ca528a28eedf9ceec081
      
https://github.com/qemu/qemu/commit/40bc0ca924daca3fb2b5ca528a28eedf9ceec081
  Author: Laurent Vivier <lvivier@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M Kconfig.host
    M configure
    M meson.build

  Log Message:
  -----------
  configure: Fix build dependencies with vhost-vdpa.

Following the same logic as for vhost-net-user and vhost-kernel,
enable vhost-net if vhost-net-vdpa is enabled and vhost-net is not
explicitly disabled.
See 299e6f19b3e2 ("vhost-net: revamp configure logic")

Autoselect VHOST if VHOST_VDPA is set
See 21c6b0c87e85 ("configure: simplify vhost condition with Kconfig")
See 2becc36a3e53 ("meson: infrastructure for building emulators"

Problems can be triggered using;
... --enable-vhost-vdpa --disable-vhost-user --disable-vhost-kernel ...

Fixes: 108a64818e69 ("vhost-vdpa: introduce vhost-vdpa backend")
Cc: lulu@redhat.com
Cc: pbonzini@redhat.com
Cc: marcandre.lureau@redhat.com
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Message-Id: <20200924210023.160679-1-lvivier@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: d55f518248f263bb8d0852f98e47102ea09d4f89
      
https://github.com/qemu/qemu/commit/d55f518248f263bb8d0852f98e47102ea09d4f89
  Author: Stefano Garzarella <sgarzare@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/core/machine.c
    M hw/s390x/virtio-ccw.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio.c
    M include/hw/virtio/virtio.h

  Log Message:
  -----------
  virtio: skip legacy support check on machine types less than 5.1

Commit 9b3a35ec82 ("virtio: verify that legacy support is not accidentally
on") added a check that returns an error if legacy support is on, but the
device does not support legacy.

Unfortunately some devices were wrongly declared legacy capable even if
they were not (e.g vhost-vsock).

To avoid migration issues, we add a virtio-device property
(x-disable-legacy-check) to skip the legacy error, printing a warning
instead, for machine types < 5.1.

Cc: qemu-stable@nongnu.org
Fixes: 9b3a35ec82 ("virtio: verify that legacy support is not accidentally on")
Suggested-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Suggested-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Message-Id: <20200921122506.82515-2-sgarzare@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 6209070503989cf4f28549f228989419d4f0b236
      
https://github.com/qemu/qemu/commit/6209070503989cf4f28549f228989419d4f0b236
  Author: Stefano Garzarella <sgarzare@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/virtio/vhost-vsock-pci.c

  Log Message:
  -----------
  vhost-vsock-pci: force virtio version 1

Commit 9b3a35ec82 ("virtio: verify that legacy support is not
accidentally on") added a safety check that requires to set
'disable-legacy=on' on vhost-vsock-pci device:

    $ ./qemu-system-x86_64 ... -device vhost-vsock-pci,guest-cid=5
        qemu-system-x86_64: -device vhost-vsock-pci,guest-cid=5:
        device is modern-only, use disable-legacy=on

virtio-vsock was introduced after the release of VIRTIO 1.0
specifications, so it should be 'modern-only'.
In addition Cornelia verified that forcing a legacy mode on
vhost-vsock-pci device using x86-64 host and s390x guest, so with
different endianness, produces strange behaviours.

This patch forces virtio version 1 and removes the 'transitional_name'
property removing the need to specify 'disable-legacy=on' on
vhost-vsock-pci device.

To avoid migration issues, we force virtio version 1 only when
legacy check is enabled in the new machine types (>= 5.1).

As the transitional device name is not commonly used, we do not
provide compatibility handling for it.

Cc: qemu-stable@nongnu.org
Reported-by: Qian Cai <caiqian@redhat.com>
Reported-by: Qinghua Cheng <qcheng@redhat.com>
Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1868449
Suggested-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Message-Id: <20200921122506.82515-3-sgarzare@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 27eda699f59d430c33fc054a36a17251992e70dc
      
https://github.com/qemu/qemu/commit/27eda699f59d430c33fc054a36a17251992e70dc
  Author: Stefano Garzarella <sgarzare@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/virtio/vhost-user-vsock-pci.c

  Log Message:
  -----------
  vhost-user-vsock-pci: force virtio version 1

Commit 9b3a35ec82 ("virtio: verify that legacy support is not
accidentally on") added a safety check that requires to set
'disable-legacy=on' on vhost-user-vsock-pci device:

    $ ./qemu-system-x86_64 ... \
    -chardev socket,id=char0,reconnect=0,path=/tmp/vhost4.socket \
    -device vhost-user-vsock-pci,chardev=char0
        qemu-system-x86_64: -device vhost-user-vsock-pci,chardev=char0:
        device is modern-only, use disable-legacy=on

virtio-vsock was introduced after the release of VIRTIO 1.0
specifications, so it should be 'modern-only'.

This patch forces virtio version 1 and removes the 'transitional_name'
property, as done for vhost-vsock-pci, removing the need to specify
'disable-legacy=on' on vhost-user-vsock-pci device.

Cc: qemu-stable@nongnu.org
Suggested-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Message-Id: <20200921122506.82515-4-sgarzare@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: a6704a34cf02add13964149e0de6453ae62bd9db
      
https://github.com/qemu/qemu/commit/a6704a34cf02add13964149e0de6453ae62bd9db
  Author: Stefano Garzarella <sgarzare@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/s390x/vhost-vsock-ccw.c

  Log Message:
  -----------
  vhost-vsock-ccw: force virtio version 1

virtio-vsock was introduced after the release of VIRTIO 1.0
specifications, so it should be 'modern-only'.

This patch forces virtio version 1 as done for vhost-vsock-pci.

To avoid migration issues, we force virtio version 1 only when
legacy check is enabled in the new machine types (>= 5.1).

Cc: qemu-stable@nongnu.org
Suggested-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Message-Id: <20200921122506.82515-5-sgarzare@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 2d69eba5fe52045b2c8b0d04fd3806414352afc1
      
https://github.com/qemu/qemu/commit/2d69eba5fe52045b2c8b0d04fd3806414352afc1
  Author: Li Qiang <liq3ea@163.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/virtio/virtio.c

  Log Message:
  -----------
  virtio: update MemoryRegionCaches when guest set bad features

Current the 'virtio_set_features' only update the 'MemorRegionCaches'
when the 'virtio_set_features_nocheck' return '0' which means it is
not bad features. However the guest can still trigger the access of the
used vring after set bad features. In this situation it will cause assert
failure in 'ADDRESS_SPACE_ST_CACHED'.

Buglink: https://bugs.launchpad.net/qemu/+bug/1890333
Fixes: db812c4073c7 ("virtio: update MemoryRegionCaches when guest negotiates 
features")
Reported-by: Alexander Bulekov <alxndr@bu.edu>
Signed-off-by: Li Qiang <liq3ea@163.com>
Message-Id: <20200919082706.6703-1-liq3ea@163.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 00dc02d284eab0890936ec47c0b7baba5e3b4e37
      
https://github.com/qemu/qemu/commit/00dc02d284eab0890936ec47c0b7baba5e3b4e37
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/i386/pc.c
    M hw/isa/lpc_ich9.c
    M include/hw/i386/ich9.h

  Log Message:
  -----------
  x86: lpc9: let firmware negotiate 'CPU hotplug with SMI' features

It will allow firmware to notify QEMU that firmware requires SMI
being triggered on CPU hot[un]plug, so that it would be able to account
for hotplugged CPU and relocate it to new SMM base and/or safely remove
CPU on unplug.

Using negotiated features, follow up patches will insert SMI upcall
into AML code, to make sure that firmware processes hotplug before
guest OS would attempt to use new CPU.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200923094650.1301166-2-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: c5be7517d658ae787de6d0ccc8e93db01fdf60a1
      
https://github.com/qemu/qemu/commit/c5be7517d658ae787de6d0ccc8e93db01fdf60a1
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/acpi/ich9.c
    M hw/i386/x86.c

  Log Message:
  -----------
  x86: cpuhp: prevent guest crash on CPU hotplug when broadcast SMI is in use

There were reports of guest crash on CPU hotplug, when using q35 machine
type and OVMF with SMM, due to hotplugged CPU trying to process SMI at
default SMI handler location without it being relocated by firmware first.

Fix it by refusing hotplug if firmware hasn't negotiated CPU hotplug with
SMI support while SMI broadcast is in use.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200923094650.1301166-3-imammedo@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: b48ad7c02ba77c151bb8b10db6418615fa4ff458
      
https://github.com/qemu/qemu/commit/b48ad7c02ba77c151bb8b10db6418615fa4ff458
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/acpi/ich9.c

  Log Message:
  -----------
  x86: cpuhp: refuse cpu hot-unplug request earlier if not supported

CPU hot-unplug with SMM requires firmware participation to prevent
guest crash (i.e. CPU can be removed only after OS _and_ firmware
were prepared for the action).
Previous patches introduced ICH9_LPC_SMI_F_CPU_HOT_UNPLUG_BIT
feature bit, which is advertised by firmware when it has support
for CPU hot-unplug. Use it to check if guest is able to handle
unplug and make device_del fail gracefully if hot-unplug feature
hasn't been negotiated.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200923094650.1301166-4-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 5776fa998d1cef98588eef1b2173f2169016e577
      
https://github.com/qemu/qemu/commit/5776fa998d1cef98588eef1b2173f2169016e577
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/acpi/aml-build.c
    M include/hw/acpi/aml-build.h

  Log Message:
  -----------
  acpi: add aml_land() and aml_break() primitives

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200923094650.1301166-5-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 2f509200bb12f22ca8452342119dbb0a762c5fee
      
https://github.com/qemu/qemu/commit/2f509200bb12f22ca8452342119dbb0a762c5fee
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M tests/qtest/bios-tables-test-allowed-diff.h

  Log Message:
  -----------
  tests: acpi: mark to be changed tables in bios-tables-test-allowed-diff

... to let tests pass until binary blobs are updated with new AML

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200923094650.1301166-6-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: eb8f7f917801dee53dcf95c5172f18fb3709a27f
      
https://github.com/qemu/qemu/commit/eb8f7f917801dee53dcf95c5172f18fb3709a27f
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/isa/lpc_ich9.c
    M include/hw/i386/ich9.h

  Log Message:
  -----------
  x86: ich9: expose "smi_negotiated_features" as a QOM property

Expose the "smi_negotiated_features" field of ICH9LPCState as
a QOM property.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200923094650.1301166-7-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 6d837f1f38c235ea5f63488d0274407becd91e5c
      
https://github.com/qemu/qemu/commit/6d837f1f38c235ea5f63488d0274407becd91e5c
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/i386/acpi-build.c

  Log Message:
  -----------
  x86: acpi: introduce AcpiPmInfo::smi_on_cpuhp

Translate the "CPU hotplug with SMI" feature bit, from the property
added in the last patch, to a dedicated boolean in AcpiPmInfo.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200923094650.1301166-8-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 998ba95016c91790dc4d3c5b95775de730dc30a0
      
https://github.com/qemu/qemu/commit/998ba95016c91790dc4d3c5b95775de730dc30a0
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/i386/acpi-build.c
    M include/hw/acpi/cpu.h

  Log Message:
  -----------
  x86: acpi: introduce the PCI0.SMI0 ACPI device

When CPU hotplug with SMI has been negotiated, describe the SMI
register block in the DSDT. Pass the ACPI name of the SMI control
register to build_cpus_aml(), so that CPU_SCAN_METHOD can access the
register in the next patch.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200923094650.1301166-9-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 9cc5a90b0e60d223301ac20986899ac14fdbc1b9
      
https://github.com/qemu/qemu/commit/9cc5a90b0e60d223301ac20986899ac14fdbc1b9
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/acpi/cpu.c

  Log Message:
  -----------
  x68: acpi: trigger SMI before sending hotplug Notify event to OSPM

In case firmware has negotiated CPU hotplug SMI feature, generate
AML to describe SMI IO port region and send SMI to firmware
on each CPU hotplug SCI in case new CPUs were hotplugged.

Since new CPUs can be hotplugged while CPU_SCAN_METHOD is running
we can't send SMI before new CPUs are fetched from QEMU as it
could cause sending Notify to a CPU that firmware hasn't seen yet.
So fetch new CPUs into local cache first, then send SMI and
after that send Notify events to cached CPUs. This should ensure
that Notify is sent only to CPUs which were processed by firmware
first.
Any CPUs that were hotplugged after caching will be processed
by the next CPU_SCAN_METHOD, when pending SCI is handled.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200923094650.1301166-10-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 6e2e2e8a422040358effc9eb8c840875cdb351bc
      
https://github.com/qemu/qemu/commit/6e2e2e8a422040358effc9eb8c840875cdb351bc
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M tests/data/acpi/pc/DSDT
    M tests/data/acpi/pc/DSDT.acpihmat
    M tests/data/acpi/pc/DSDT.bridge
    M tests/data/acpi/pc/DSDT.cphp
    M tests/data/acpi/pc/DSDT.dimmpxm
    M tests/data/acpi/pc/DSDT.ipmikcs
    M tests/data/acpi/pc/DSDT.memhp
    M tests/data/acpi/pc/DSDT.numamem
    M tests/data/acpi/q35/DSDT
    M tests/data/acpi/q35/DSDT.acpihmat
    M tests/data/acpi/q35/DSDT.bridge
    M tests/data/acpi/q35/DSDT.cphp
    M tests/data/acpi/q35/DSDT.dimmpxm
    M tests/data/acpi/q35/DSDT.ipmibt
    M tests/data/acpi/q35/DSDT.memhp
    M tests/data/acpi/q35/DSDT.mmio64
    M tests/data/acpi/q35/DSDT.numamem
    M tests/data/acpi/q35/DSDT.tis
    M tests/qtest/bios-tables-test-allowed-diff.h

  Log Message:
  -----------
  tests: acpi: update acpi blobs with new AML

here is diff against tests/data/acpi/q35/DSDT
for currently shipped ovmf binary.
(once firmware blob is updated, it will negotiate CPU hotplug
feature which will ad extra hunk sending SMI and Q35 tests will
need to be updated), but otherwise diff shows new CPU hotplug
AML that is shared between q35 and pc machines.

             Method (CSCN, 0, Serialized)
             {
                 Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
-                Local0 = One
-                While ((Local0 == One))
-                {
-                    Local0 = Zero
-                    \_SB.PCI0.PRES.CCMD = Zero
-                    If ((\_SB.PCI0.PRES.CINS == One))
+                Name (CNEW, Package (0xFF){})
+                Local3 = Zero
+                Local4 = One
+                While ((Local4 == One))
+                {
+                    Local4 = Zero
+                    Local0 = One
+                    Local1 = Zero
+                    While (((Local0 == One) && (Local3 < One)))
                     {
-                        CTFY (\_SB.PCI0.PRES.CDAT, One)
-                        \_SB.PCI0.PRES.CINS = One
-                        Local0 = One
+                        Local0 = Zero
+                        \_SB.PCI0.PRES.CSEL = Local3
+                        \_SB.PCI0.PRES.CCMD = Zero
+                        If ((\_SB.PCI0.PRES.CDAT < Local3))
+                        {
+                            Break
+                        }
+
+                        If ((Local1 == 0xFF))
+                        {
+                            Local4 = One
+                            Break
+                        }
+
+                        Local3 = \_SB.PCI0.PRES.CDAT
+                        If ((\_SB.PCI0.PRES.CINS == One))
+                        {
+                            CNEW [Local1] = Local3
+                            Local1++
+                            Local0 = One
+                        }
+                        ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+                        {
+                            CTFY (Local3, 0x03)
+                            \_SB.PCI0.PRES.CRMV = One
+                            Local0 = One
+                        }
+
+                        Local3++
                     }
-                    ElseIf ((\_SB.PCI0.PRES.CRMV == One))
+
+                    Local2 = Zero
+                    While ((Local2 < Local1))
                     {
-                        CTFY (\_SB.PCI0.PRES.CDAT, 0x03)
-                        \_SB.PCI0.PRES.CRMV = One
-                        Local0 = One
+                        Local3 = DerefOf (CNEW [Local2])
+                        CTFY (Local3, One)
+                        Debug = Local3
+                        \_SB.PCI0.PRES.CSEL = Local3
+                        \_SB.PCI0.PRES.CINS = One
+                        Local2++
                     }
                 }

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200923094650.1301166-11-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: bb99f4772f54017490e3356ecbb3df25c5d4537f
      
https://github.com/qemu/qemu/commit/bb99f4772f54017490e3356ecbb3df25c5d4537f
  Author: Daniel P. Berrangé <berrange@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/smbios/smbios.c

  Log Message:
  -----------
  hw/smbios: support loading OEM strings values from a file

Some applications want to pass quite large values for the OEM strings
entries. Rather than having huge strings on the command line, it would
be better to load them from a file, as supported with -fw_cfg.

This introduces the "path" parameter allowing for:

  $ echo -n "thisthing" > mydata.txt
  $ qemu-system-x86_64 \
    -smbios type=11,value=something \
    -smbios type=11,path=mydata.txt \
    -smbios type=11,value=somemore \
    ...other args...

Now in the guest

$ dmidecode -t 11
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.

Handle 0x0E00, DMI type 11, 5 bytes
OEM Strings
        String 1: something
        String 2: thisthing
        String 3: somemore

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20200923133804.2089190-2-berrange@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 10c3666658f53c5ec8fd9ec27cdf5c393ff814a0
      
https://github.com/qemu/qemu/commit/10c3666658f53c5ec8fd9ec27cdf5c393ff814a0
  Author: Daniel P. Berrangé <berrange@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/smbios/smbios.c

  Log Message:
  -----------
  hw/smbios: report error if table size is too large

The SMBIOS 2.1 entry point uses a uint16 data type for reporting the
total length of the tables. If the user passes -smbios configuration to
QEMU that causes the table size to exceed this limit then various bad
behaviours result, including

 - firmware hangs in an infinite loop
 - firmware triggers a KVM crash on bad memory access
 - firmware silently discards user's SMBIOS data replacing it with
   a generic data set.

Limiting the size to 0xffff in QEMU avoids triggering most of these
problems. There is a remaining bug in SeaBIOS which tries to prepend its
own data for table 0, and does not check whether there is sufficient
space before attempting this.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20200923133804.2089190-3-berrange@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 48a7ff4d516c92323ca7bd88df90ebb974bc0a9a
      
https://github.com/qemu/qemu/commit/48a7ff4d516c92323ca7bd88df90ebb974bc0a9a
  Author: Daniel P. Berrangé <berrange@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M qemu-options.hx

  Log Message:
  -----------
  qemu-options: document SMBIOS type 11 settings

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20200923133804.2089190-4-berrange@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: f66337bdbfdae6a288f37dcfba3748ee0015510d
      
https://github.com/qemu/qemu/commit/f66337bdbfdae6a288f37dcfba3748ee0015510d
  Author: haibinzhang(张海斌) <haibinzhang@tencent.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M net/vhost-user.c

  Log Message:
  -----------
  vhost-user: save features of multiqueues if chardev is closed

Fore-commit(c6beefd674) only saves features of queue0,
this makes wrong features of other queues in multiqueues
situation.
For examples:
  qemu-system-aarch64 ... \
  -chardev socket,id=charnet0,path=/var/run/vhost_sock \
  -netdev vhost-user,chardev=charnet0,queues=2,id=hostnet0 \
  ...
There are two queues in nic assocated with one chardev.
When chardev is reconnected, it is necessary to save and
restore features of all queues.

Signed-of-by: Haibin Zhang <haibinzhang@tencent.com>
Message-Id: <46CBC206-E0CA-4249-81CD-10F75DA30441@tencent.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: eb9609a17de0dcaccfb82bd5df7b69abdcfbde8d
      
https://github.com/qemu/qemu/commit/eb9609a17de0dcaccfb82bd5df7b69abdcfbde8d
  Author: Ani Sinha <ani@anisinha.ca>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M tests/qtest/bios-tables-test-allowed-diff.h

  Log Message:
  -----------
  tests/acpi: mark addition of table DSDT.roothp for unit testing root pci 
hotplug

A new binary acpi table tests/data/acpi/pc/DSDT.roothp is added in order to
unit test the feature flag that can disable/enable root pci bus hotplug on
i440fx. This feature was added with the commit:
3d7e78aa7777f0 ("Introduce a new flag for i440fx to disable PCI hotplug on
the root bus")

This change documents the fact that this new file addition was made as a part
of the unit test change.

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-2-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 274763957b06e5e3282a53540a5d05a4013e3615
      
https://github.com/qemu/qemu/commit/274763957b06e5e3282a53540a5d05a4013e3615
  Author: Ani Sinha <ani@anisinha.ca>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M tests/qtest/bios-tables-test.c

  Log Message:
  -----------
  tests/acpi: add new unit test to test hotplug off/on feature on the root pci 
bus

Ability to turn hotplug off on the pci root bus for i440fx was added in commit:
3d7e78aa7777f0 ("Introduce a new flag for i440fx to disable PCI hotplug on the
root bus")

This change adds a unit test in order to test this feature.

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-3-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: df00a529727d7795f9d796cddd1139ffe48eddb2
      
https://github.com/qemu/qemu/commit/df00a529727d7795f9d796cddd1139ffe48eddb2
  Author: Ani Sinha <ani@anisinha.ca>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    A tests/data/acpi/pc/DSDT.roothp
    M tests/qtest/bios-tables-test-allowed-diff.h

  Log Message:
  -----------
  tests/acpi: add a new ACPI table in order to test root pci hotplug on/off

A new binary ACPI table tests/data/acpi/pc/DSDT.roothp is added in order
to unit test hotplug on/off capability on the root pci bus for i440fx.
The diff between the table DSDT.bridge and DSDT.roothp is listed below:

@@ -1,30 +1,30 @@
 /*
  * Intel ACPI Component Architecture
  * AML/ASL+ Disassembler version 20180105 (64-bit version)
  * Copyright (c) 2000 - 2018 Intel Corporation
  *
  * Disassembling to symbolic ASL+ operators
  *
- * Disassembly of tests/data/acpi/pc/DSDT.bridge, Fri Sep 11 22:51:04 2020
+ * Disassembly of /tmp/aml-UGIHQ0, Fri Sep 11 22:51:04 2020
  *
  * Original Table Header:
  *     Signature        "DSDT"
- *     Length           0x00001A89 (6793)
+ *     Length           0x0000140A (5130)
  *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
- *     Checksum         0x09
+ *     Checksum         0xE6
  *     OEM ID           "BOCHS "
  *     OEM Table ID     "BXPCDSDT"
  *     OEM Revision     0x00000001 (1)
  *     Compiler ID      "BXPC"
  *     Compiler Version 0x00000001 (1)
  */
 DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
 {
     Scope (\)
     {
         OperationRegion (DBG, SystemIO, 0x0402, One)
         Field (DBG, ByteAcc, NoLock, Preserve)
         {
             DBGB,   8
         }

@@ -831,61 +831,60 @@
             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
             {
                 IO (Decode16,
                     0x0510,             // Range Minimum
                     0x0510,             // Range Maximum
                     0x01,               // Alignment
                     0x0C,               // Length
                     )
             })
         }
     }

     Scope (\_SB)
     {
         Scope (PCI0)
         {
-            Name (BSEL, Zero)
             Device (S00)
             {
                 Name (_ADR, Zero)  // _ADR: Address
             }

             Device (S10)
             {
                 Name (_ADR, 0x00020000)  // _ADR: Address
                 Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
                 {
                     Return (Zero)
                 }

                 Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
                 {
                     Return (Zero)
                 }

                 Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
                 {
                     Return (Zero)
                 }
             }

             Device (S18)
             {
                 Name (_ADR, 0x00030000)  // _ADR: Address
-                Name (BSEL, One)
+                Name (BSEL, Zero)
                 Device (S00)
                 {
                     Name (_SUN, Zero)  // _SUN: Slot User Number
                     Name (_ADR, Zero)  // _ADR: Address
                     Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
                     {
                         PCEJ (BSEL, _SUN)
                     }
                 }

                 Device (S08)
                 {
                     Name (_SUN, One)  // _SUN: Slot User Number
                     Name (_ADR, 0x00010000)  // _ADR: Address
                     Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
                     {
@@ -1345,456 +1344,30 @@
                         Notify (SE8, Arg1)
                     }

                     If ((Arg0 & 0x40000000))
                     {
                         Notify (SF0, Arg1)
                     }

                     If ((Arg0 & 0x80000000))
                     {
                         Notify (SF8, Arg1)
                     }
                 }

                 Method (PCNT, 0, NotSerialized)
                 {
-                    BNUM = One
+                    BNUM = Zero
                     DVNT (PCIU, One)
                     DVNT (PCID, 0x03)
                 }
             }

-            Device (S20)
-            {
-                Name (_SUN, 0x04)  // _SUN: Slot User Number
-                Name (_ADR, 0x00040000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S28)
-            {
-                Name (_SUN, 0x05)  // _SUN: Slot User Number
-                Name (_ADR, 0x00050000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S30)
-            {
-                Name (_SUN, 0x06)  // _SUN: Slot User Number
-                Name (_ADR, 0x00060000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S38)
-            {
-                Name (_SUN, 0x07)  // _SUN: Slot User Number
-                Name (_ADR, 0x00070000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S40)
-            {
-                Name (_SUN, 0x08)  // _SUN: Slot User Number
-                Name (_ADR, 0x00080000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S48)
-            {
-                Name (_SUN, 0x09)  // _SUN: Slot User Number
-                Name (_ADR, 0x00090000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S50)
-            {
-                Name (_SUN, 0x0A)  // _SUN: Slot User Number
-                Name (_ADR, 0x000A0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S58)
-            {
-                Name (_SUN, 0x0B)  // _SUN: Slot User Number
-                Name (_ADR, 0x000B0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S60)
-            {
-                Name (_SUN, 0x0C)  // _SUN: Slot User Number
-                Name (_ADR, 0x000C0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S68)
-            {
-                Name (_SUN, 0x0D)  // _SUN: Slot User Number
-                Name (_ADR, 0x000D0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S70)
-            {
-                Name (_SUN, 0x0E)  // _SUN: Slot User Number
-                Name (_ADR, 0x000E0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S78)
-            {
-                Name (_SUN, 0x0F)  // _SUN: Slot User Number
-                Name (_ADR, 0x000F0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S80)
-            {
-                Name (_SUN, 0x10)  // _SUN: Slot User Number
-                Name (_ADR, 0x00100000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S88)
-            {
-                Name (_SUN, 0x11)  // _SUN: Slot User Number
-                Name (_ADR, 0x00110000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S90)
-            {
-                Name (_SUN, 0x12)  // _SUN: Slot User Number
-                Name (_ADR, 0x00120000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (S98)
-            {
-                Name (_SUN, 0x13)  // _SUN: Slot User Number
-                Name (_ADR, 0x00130000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SA0)
-            {
-                Name (_SUN, 0x14)  // _SUN: Slot User Number
-                Name (_ADR, 0x00140000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SA8)
-            {
-                Name (_SUN, 0x15)  // _SUN: Slot User Number
-                Name (_ADR, 0x00150000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SB0)
-            {
-                Name (_SUN, 0x16)  // _SUN: Slot User Number
-                Name (_ADR, 0x00160000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SB8)
-            {
-                Name (_SUN, 0x17)  // _SUN: Slot User Number
-                Name (_ADR, 0x00170000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SC0)
-            {
-                Name (_SUN, 0x18)  // _SUN: Slot User Number
-                Name (_ADR, 0x00180000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SC8)
-            {
-                Name (_SUN, 0x19)  // _SUN: Slot User Number
-                Name (_ADR, 0x00190000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SD0)
-            {
-                Name (_SUN, 0x1A)  // _SUN: Slot User Number
-                Name (_ADR, 0x001A0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SD8)
-            {
-                Name (_SUN, 0x1B)  // _SUN: Slot User Number
-                Name (_ADR, 0x001B0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SE0)
-            {
-                Name (_SUN, 0x1C)  // _SUN: Slot User Number
-                Name (_ADR, 0x001C0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SE8)
-            {
-                Name (_SUN, 0x1D)  // _SUN: Slot User Number
-                Name (_ADR, 0x001D0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SF0)
-            {
-                Name (_SUN, 0x1E)  // _SUN: Slot User Number
-                Name (_ADR, 0x001E0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Device (SF8)
-            {
-                Name (_SUN, 0x1F)  // _SUN: Slot User Number
-                Name (_ADR, 0x001F0000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
-            }
-
-            Method (DVNT, 2, NotSerialized)
-            {
-                If ((Arg0 & 0x10))
-                {
-                    Notify (S20, Arg1)
-                }
-
-                If ((Arg0 & 0x20))
-                {
-                    Notify (S28, Arg1)
-                }
-
-                If ((Arg0 & 0x40))
-                {
-                    Notify (S30, Arg1)
-                }
-
-                If ((Arg0 & 0x80))
-                {
-                    Notify (S38, Arg1)
-                }
-
-                If ((Arg0 & 0x0100))
-                {
-                    Notify (S40, Arg1)
-                }
-
-                If ((Arg0 & 0x0200))
-                {
-                    Notify (S48, Arg1)
-                }
-
-                If ((Arg0 & 0x0400))
-                {
-                    Notify (S50, Arg1)
-                }
-
-                If ((Arg0 & 0x0800))
-                {
-                    Notify (S58, Arg1)
-                }
-
-                If ((Arg0 & 0x1000))
-                {
-                    Notify (S60, Arg1)
-                }
-
-                If ((Arg0 & 0x2000))
-                {
-                    Notify (S68, Arg1)
-                }
-
-                If ((Arg0 & 0x4000))
-                {
-                    Notify (S70, Arg1)
-                }
-
-                If ((Arg0 & 0x8000))
-                {
-                    Notify (S78, Arg1)
-                }
-
-                If ((Arg0 & 0x00010000))
-                {
-                    Notify (S80, Arg1)
-                }
-
-                If ((Arg0 & 0x00020000))
-                {
-                    Notify (S88, Arg1)
-                }
-
-                If ((Arg0 & 0x00040000))
-                {
-                    Notify (S90, Arg1)
-                }
-
-                If ((Arg0 & 0x00080000))
-                {
-                    Notify (S98, Arg1)
-                }
-
-                If ((Arg0 & 0x00100000))
-                {
-                    Notify (SA0, Arg1)
-                }
-
-                If ((Arg0 & 0x00200000))
-                {
-                    Notify (SA8, Arg1)
-                }
-
-                If ((Arg0 & 0x00400000))
-                {
-                    Notify (SB0, Arg1)
-                }
-
-                If ((Arg0 & 0x00800000))
-                {
-                    Notify (SB8, Arg1)
-                }
-
-                If ((Arg0 & 0x01000000))
-                {
-                    Notify (SC0, Arg1)
-                }
-
-                If ((Arg0 & 0x02000000))
-                {
-                    Notify (SC8, Arg1)
-                }
-
-                If ((Arg0 & 0x04000000))
-                {
-                    Notify (SD0, Arg1)
-                }
-
-                If ((Arg0 & 0x08000000))
-                {
-                    Notify (SD8, Arg1)
-                }
-
-                If ((Arg0 & 0x10000000))
-                {
-                    Notify (SE0, Arg1)
-                }
-
-                If ((Arg0 & 0x20000000))
-                {
-                    Notify (SE8, Arg1)
-                }
-
-                If ((Arg0 & 0x40000000))
-                {
-                    Notify (SF0, Arg1)
-                }
-
-                If ((Arg0 & 0x80000000))
-                {
-                    Notify (SF8, Arg1)
-                }
-            }
-
             Method (PCNT, 0, NotSerialized)
             {
-                BNUM = Zero
-                DVNT (PCIU, One)
-                DVNT (PCID, 0x03)
                 ^S18.PCNT ()
             }
         }
     }
 }

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-4-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 8ad038abb98e36fa391ed1cc09a9b569a08b6bff
      
https://github.com/qemu/qemu/commit/8ad038abb98e36fa391ed1cc09a9b569a08b6bff
  Author: Ani Sinha <ani@anisinha.ca>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/acpi/pcihp.c

  Log Message:
  -----------
  Fix a gap where acpi_pcihp_find_hotplug_bus() returns a non-hotpluggable bus

When ACPI hotplug for the root bus is disabled, the bsel property for that
bus is not set. Please see the following commit:

3d7e78aa7777f ("Introduce a new flag for i440fx to disable PCI hotplug on the
root bus").

As a result, when acpi_pcihp_find_hotplug_bus() is called
with bsel set to 0, it may return the root bus. This can cause devices
attached to the root bus to get hot-unplugged if the user issues the following
set of commmands:

outl 0xae10 0
outl 0xae08 your_slot

Thanks to Julia for pointing this out here:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg734548.html

In this patch, we fix the issue in this function by checking if the bus which
is returned by the function is actually hotpluggable. If not, we simply return
NULL. This avoids the scenario where we were returning a non-hotpluggable bus.

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-5-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 15a5b25408538172bd1dafae373c729a82a1e86d
      
https://github.com/qemu/qemu/commit/15a5b25408538172bd1dafae373c729a82a1e86d
  Author: Ani Sinha <ani@anisinha.ca>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/i386/acpi-build.c

  Log Message:
  -----------
  i440fx/acpi: do not add hotplug related amls for cold plugged bridges

Cold plugged bridges are not hot unpluggable, even when their hotplug
property (acpi-pci-hotplug-with-bridge-support) is turned off. Please see
the function acpi_pcihp_pc_no_hotplug(). However, with
the current implementaton, Windows would try to hot-unplug a pci bridge when
it's hotplug switch is off. This is regardless of whether there are devices
attached to the bridge. This is because we add ACPI code like _EJ0 etc for the
pci slot where the bridge is cold plugged.

In this fix, we identify a cold plugged bridge and for cold plugged bridges,
we do not add the appropriate ACPI methods that are used by the OS
to identify a hot-pluggable/unpluggable pci device. After this change, Windows
does not detect the cold plugged pci bridge as ejectable.

As a result of the patch, the following are the changes to the DSDT ACPI
table:

@@ -858,38 +858,33 @@
                     Return (Zero)
                 }

                 Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
                 {
                     Return (Zero)
                 }

                 Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
                 {
                     Return (Zero)
                 }
             }

             Device (S18)
             {
-                Name (_SUN, 0x03)  // _SUN: Slot User Number
                 Name (_ADR, 0x00030000)  // _ADR: Address
-                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                {
-                    PCEJ (BSEL, _SUN)
-                }
             }

             Device (S20)
             {
                 Name (_SUN, 0x04)  // _SUN: Slot User Number
                 Name (_ADR, 0x00040000)  // _ADR: Address
                 Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
                 {
                     PCEJ (BSEL, _SUN)
                 }
             }

             Device (S28)
             {
                 Name (_SUN, 0x05)  // _SUN: Slot User Number
                 Name (_ADR, 0x00050000)  // _ADR: Address
@@ -1148,37 +1143,32 @@
                     PCEJ (BSEL, _SUN)
                 }
             }

             Device (SF8)
             {
                 Name (_SUN, 0x1F)  // _SUN: Slot User Number
                 Name (_ADR, 0x001F0000)  // _ADR: Address
                 Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
                 {
                     PCEJ (BSEL, _SUN)
                 }
             }

             Method (DVNT, 2, NotSerialized)
             {
-                If ((Arg0 & 0x08))
-                {
-                    Notify (S18, Arg1)
-                }
-
                 If ((Arg0 & 0x10))
                 {
                     Notify (S20, Arg1)
                 }

                 If ((Arg0 & 0x20))
                 {
                     Notify (S28, Arg1)
                 }

                 If ((Arg0 & 0x40))
                 {
                     Notify (S30, Arg1)
                 }

                 If ((Arg0 & 0x80))

While at it, I have also updated a stale comment.

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Suggested-by: Julia Suvorova <jusual@redhat.com>
Reviewed-by: Julia Suvorova <jusual@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-6-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 0fb41e898746d33abe1b8220c26165f584ba1018
      
https://github.com/qemu/qemu/commit/0fb41e898746d33abe1b8220c26165f584ba1018
  Author: Ani Sinha <ani@anisinha.ca>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M tests/qtest/bios-tables-test-allowed-diff.h

  Log Message:
  -----------
  tests/acpi: list added acpi table binary file for pci bridge hotplug test

The file 'tests/data/acpi/pc/DSDT.hpbridge' is a newly added acpi table file
for testing the pci bridge option 'acpi-pci-hotplug-with-bridge-support' under
i440fx. This change documents this fact.

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-7-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 5e3a486211f02d9ecb18939ca21087515ec81883
      
https://github.com/qemu/qemu/commit/5e3a486211f02d9ecb18939ca21087515ec81883
  Author: Ani Sinha <ani@anisinha.ca>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M tests/qtest/bios-tables-test.c

  Log Message:
  -----------
  tests/acpi: unit test for 'acpi-pci-hotplug-with-bridge-support' bridge flag

This change adds a new unit test for the global flag
'acpi-pci-hotplug-with-bridge-support' which is available for cold plugged pci
bridges in i440fx. The flag can be used to turn off ACPI based hotplug support
on all pci bridges.

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-8-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 8b434b031f1f597907df22c044dc05885ef7abfc
      
https://github.com/qemu/qemu/commit/8b434b031f1f597907df22c044dc05885ef7abfc
  Author: Ani Sinha <ani@anisinha.ca>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    A tests/data/acpi/pc/DSDT.hpbridge
    M tests/qtest/bios-tables-test-allowed-diff.h

  Log Message:
  -----------
  tests/acpi: add newly added acpi DSDT table blob for pci bridge hotplug flag

This patch adds a binary blob corresponding to the DSDT acpi table. It is used
to unit test the flag 'acpi-pci-hotplug-with-bridge-support' used with pci
bridges.

This change also clears the file tests/qtest/bios-tables-test-allowed-diff.h
so that future changes which affect the table can be caught.

The following is the diff between files tests/data/acpi/pc/DSDT.bridge and
tests/data/acpi/pc/DSDT.hpbridge after disassembly :

@@ -1,30 +1,30 @@
 /*
  * Intel ACPI Component Architecture
  * AML/ASL+ Disassembler version 20180105 (64-bit version)
  * Copyright (c) 2000 - 2018 Intel Corporation
  *
  * Disassembling to symbolic ASL+ operators
  *
- * Disassembly of tests/data/acpi/pc/DSDT.bridge, Fri Sep 11 23:21:34 2020
+ * Disassembly of /tmp/aml-7UURQ0, Fri Sep 11 23:21:34 2020
  *
  * Original Table Header:
  *     Signature        "DSDT"
- *     Length           0x00001A89 (6793)
+ *     Length           0x0000131F (4895)
  *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
- *     Checksum         0x09
+ *     Checksum         0xF9
  *     OEM ID           "BOCHS "
  *     OEM Table ID     "BXPCDSDT"
  *     OEM Revision     0x00000001 (1)
  *     Compiler ID      "BXPC"
  *     Compiler Version 0x00000001 (1)
  */
 DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
 {
     Scope (\)
     {
         OperationRegion (DBG, SystemIO, 0x0402, One)
         Field (DBG, ByteAcc, NoLock, Preserve)
         {
             DBGB,   8
         }

@@ -859,522 +859,32 @@
                 }

                 Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
                 {
                     Return (Zero)
                 }

                 Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
                 {
                     Return (Zero)
                 }
             }

             Device (S18)
             {
                 Name (_ADR, 0x00030000)  // _ADR: Address
-                Name (BSEL, One)
-                Device (S00)
-                {
-                    Name (_SUN, Zero)  // _SUN: Slot User Number
-                    Name (_ADR, Zero)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S08)
-                {
-                    Name (_SUN, One)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00010000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S10)
-                {
-                    Name (_SUN, 0x02)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00020000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S18)
-                {
-                    Name (_SUN, 0x03)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00030000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S20)
-                {
-                    Name (_SUN, 0x04)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00040000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S28)
-                {
-                    Name (_SUN, 0x05)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00050000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S30)
-                {
-                    Name (_SUN, 0x06)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00060000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S38)
-                {
-                    Name (_SUN, 0x07)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00070000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S40)
-                {
-                    Name (_SUN, 0x08)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00080000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S48)
-                {
-                    Name (_SUN, 0x09)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00090000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S50)
-                {
-                    Name (_SUN, 0x0A)  // _SUN: Slot User Number
-                    Name (_ADR, 0x000A0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S58)
-                {
-                    Name (_SUN, 0x0B)  // _SUN: Slot User Number
-                    Name (_ADR, 0x000B0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S60)
-                {
-                    Name (_SUN, 0x0C)  // _SUN: Slot User Number
-                    Name (_ADR, 0x000C0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S68)
-                {
-                    Name (_SUN, 0x0D)  // _SUN: Slot User Number
-                    Name (_ADR, 0x000D0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S70)
-                {
-                    Name (_SUN, 0x0E)  // _SUN: Slot User Number
-                    Name (_ADR, 0x000E0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S78)
-                {
-                    Name (_SUN, 0x0F)  // _SUN: Slot User Number
-                    Name (_ADR, 0x000F0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S80)
-                {
-                    Name (_SUN, 0x10)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00100000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S88)
-                {
-                    Name (_SUN, 0x11)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00110000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S90)
-                {
-                    Name (_SUN, 0x12)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00120000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (S98)
-                {
-                    Name (_SUN, 0x13)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00130000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SA0)
-                {
-                    Name (_SUN, 0x14)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00140000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SA8)
-                {
-                    Name (_SUN, 0x15)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00150000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SB0)
-                {
-                    Name (_SUN, 0x16)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00160000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SB8)
-                {
-                    Name (_SUN, 0x17)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00170000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SC0)
-                {
-                    Name (_SUN, 0x18)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00180000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SC8)
-                {
-                    Name (_SUN, 0x19)  // _SUN: Slot User Number
-                    Name (_ADR, 0x00190000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SD0)
-                {
-                    Name (_SUN, 0x1A)  // _SUN: Slot User Number
-                    Name (_ADR, 0x001A0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SD8)
-                {
-                    Name (_SUN, 0x1B)  // _SUN: Slot User Number
-                    Name (_ADR, 0x001B0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SE0)
-                {
-                    Name (_SUN, 0x1C)  // _SUN: Slot User Number
-                    Name (_ADR, 0x001C0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SE8)
-                {
-                    Name (_SUN, 0x1D)  // _SUN: Slot User Number
-                    Name (_ADR, 0x001D0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SF0)
-                {
-                    Name (_SUN, 0x1E)  // _SUN: Slot User Number
-                    Name (_ADR, 0x001E0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Device (SF8)
-                {
-                    Name (_SUN, 0x1F)  // _SUN: Slot User Number
-                    Name (_ADR, 0x001F0000)  // _ADR: Address
-                    Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
-                    {
-                        PCEJ (BSEL, _SUN)
-                    }
-                }
-
-                Method (DVNT, 2, NotSerialized)
-                {
-                    If ((Arg0 & One))
-                    {
-                        Notify (S00, Arg1)
-                    }
-
-                    If ((Arg0 & 0x02))
-                    {
-                        Notify (S08, Arg1)
-                    }
-
-                    If ((Arg0 & 0x04))
-                    {
-                        Notify (S10, Arg1)
-                    }
-
-                    If ((Arg0 & 0x08))
-                    {
-                        Notify (S18, Arg1)
-                    }
-
-                    If ((Arg0 & 0x10))
-                    {
-                        Notify (S20, Arg1)
-                    }
-
-                    If ((Arg0 & 0x20))
-                    {
-                        Notify (S28, Arg1)
-                    }
-
-                    If ((Arg0 & 0x40))
-                    {
-                        Notify (S30, Arg1)
-                    }
-
-                    If ((Arg0 & 0x80))
-                    {
-                        Notify (S38, Arg1)
-                    }
-
-                    If ((Arg0 & 0x0100))
-                    {
-                        Notify (S40, Arg1)
-                    }
-
-                    If ((Arg0 & 0x0200))
-                    {
-                        Notify (S48, Arg1)
-                    }
-
-                    If ((Arg0 & 0x0400))
-                    {
-                        Notify (S50, Arg1)
-                    }
-
-                    If ((Arg0 & 0x0800))
-                    {
-                        Notify (S58, Arg1)
-                    }
-
-                    If ((Arg0 & 0x1000))
-                    {
-                        Notify (S60, Arg1)
-                    }
-
-                    If ((Arg0 & 0x2000))
-                    {
-                        Notify (S68, Arg1)
-                    }
-
-                    If ((Arg0 & 0x4000))
-                    {
-                        Notify (S70, Arg1)
-                    }
-
-                    If ((Arg0 & 0x8000))
-                    {
-                        Notify (S78, Arg1)
-                    }
-
-                    If ((Arg0 & 0x00010000))
-                    {
-                        Notify (S80, Arg1)
-                    }
-
-                    If ((Arg0 & 0x00020000))
-                    {
-                        Notify (S88, Arg1)
-                    }
-
-                    If ((Arg0 & 0x00040000))
-                    {
-                        Notify (S90, Arg1)
-                    }
-
-                    If ((Arg0 & 0x00080000))
-                    {
-                        Notify (S98, Arg1)
-                    }
-
-                    If ((Arg0 & 0x00100000))
-                    {
-                        Notify (SA0, Arg1)
-                    }
-
-                    If ((Arg0 & 0x00200000))
-                    {
-                        Notify (SA8, Arg1)
-                    }
-
-                    If ((Arg0 & 0x00400000))
-                    {
-                        Notify (SB0, Arg1)
-                    }
-
-                    If ((Arg0 & 0x00800000))
-                    {
-                        Notify (SB8, Arg1)
-                    }
-
-                    If ((Arg0 & 0x01000000))
-                    {
-                        Notify (SC0, Arg1)
-                    }
-
-                    If ((Arg0 & 0x02000000))
-                    {
-                        Notify (SC8, Arg1)
-                    }
-
-                    If ((Arg0 & 0x04000000))
-                    {
-                        Notify (SD0, Arg1)
-                    }
-
-                    If ((Arg0 & 0x08000000))
-                    {
-                        Notify (SD8, Arg1)
-                    }
-
-                    If ((Arg0 & 0x10000000))
-                    {
-                        Notify (SE0, Arg1)
-                    }
-
-                    If ((Arg0 & 0x20000000))
-                    {
-                        Notify (SE8, Arg1)
-                    }
-
-                    If ((Arg0 & 0x40000000))
-                    {
-                        Notify (SF0, Arg1)
-                    }
-
-                    If ((Arg0 & 0x80000000))
-                    {
-                        Notify (SF8, Arg1)
-                    }
-                }
-
-                Method (PCNT, 0, NotSerialized)
-                {
-                    BNUM = One
-                    DVNT (PCIU, One)
-                    DVNT (PCID, 0x03)
-                }
             }

             Device (S20)
             {
                 Name (_SUN, 0x04)  // _SUN: Slot User Number
                 Name (_ADR, 0x00040000)  // _ADR: Address
                 Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
                 {
                     PCEJ (BSEL, _SUN)
                 }
             }

             Device (S28)
             {
                 Name (_SUN, 0x05)  // _SUN: Slot User Number
                 Name (_ADR, 0x00050000)  // _ADR: Address
@@ -1779,22 +1289,21 @@
                 If ((Arg0 & 0x40000000))
                 {
                     Notify (SF0, Arg1)
                 }

                 If ((Arg0 & 0x80000000))
                 {
                     Notify (SF8, Arg1)
                 }
             }

             Method (PCNT, 0, NotSerialized)
             {
                 BNUM = Zero
                 DVNT (PCIU, One)
                 DVNT (PCID, 0x03)
-                ^S18.PCNT ()
             }
         }
     }
 }

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-9-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: c4bb646ffb70f03c2b3db6a9f6cecdf4b551e0d5
      
https://github.com/qemu/qemu/commit/c4bb646ffb70f03c2b3db6a9f6cecdf4b551e0d5
  Author: Ani Sinha <ani@anisinha.ca>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M tests/qtest/bios-tables-test-allowed-diff.h

  Log Message:
  -----------
  Add ACPI DSDT tables for q35 that are being updated by the next patch

The following patch ("piix4: don't reserve hw resources when
hotplug is off globally") modifies certain ACPI tables for q35 machines.
This patch adds those table names to tests/qtest/bios-tables-test-allowed-diff.h
so that unit tests continue to pass and bisection is not broken.

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-10-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: df4008c9c597634833bc0ae38e09ce49a51747d5
      
https://github.com/qemu/qemu/commit/df4008c9c597634833bc0ae38e09ce49a51747d5
  Author: Ani Sinha <ani@anisinha.ca>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/acpi/piix4.c
    M hw/i386/acpi-build.c

  Log Message:
  -----------
  piix4: don't reserve hw resources when hotplug is off globally

When acpi hotplug is turned off for both root pci bus as well as for pci
bridges, we should not generate the related ACPI code for DSDT table or
initialize related hw ports or reserve hw resources. This change makes
sure all those operations are turned off in the case ACPI pci hotplug is
off globally.

In this change, we also make sure ACPI code for the PCNT method are only
added when bsel is enabled for the corresponding pci bus or bridge hotplug
is turned on.

As q35 machines do not use bsel for it's pci buses at this point in time, this
change affects DSDT acpi table for q35 machines as well. Therefore, we will
also need to commit the updated golden master DSDT table acpi binary blobs as
well. Following is the list of blobs which needs updating:

 tests/data/acpi/q35/DSDT
 tests/data/acpi/q35/DSDT.acpihmat
 tests/data/acpi/q35/DSDT.bridge
 tests/data/acpi/q35/DSDT.cphp
 tests/data/acpi/q35/DSDT.dimmpxm
 tests/data/acpi/q35/DSDT.ipmibt
 tests/data/acpi/q35/DSDT.memhp
 tests/data/acpi/q35/DSDT.mmio64
 tests/data/acpi/q35/DSDT.numamem
 tests/data/acpi/q35/DSDT.tis

These tables are updated in the following commit. Without the updated table
blobs, the unit tests would fail with this patch.

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-11-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 0ed93f4c05896145434adbce5fa328643260dd2e
      
https://github.com/qemu/qemu/commit/0ed93f4c05896145434adbce5fa328643260dd2e
  Author: Ani Sinha <ani@anisinha.ca>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    A tests/.vhost-user-test.c.swo
    A tests/Makefile.include.orig
    A tests/Makefile.orig
    A tests/bios-tables-test.c.orig
    A tests/data/acpi/diff-aml.sh
    A tests/data/acpi/disassemle-aml.py
    A tests/data/acpi/microvm/APIC.dsl
    A tests/data/acpi/microvm/DSDT.dsl
    A tests/data/acpi/microvm/FACP.dsl
    A tests/data/acpi/pc/APIC.acpihmat.dsl
    A tests/data/acpi/pc/APIC.bridge
    A tests/data/acpi/pc/APIC.bridge.dsl
    A tests/data/acpi/pc/APIC.cphp.dsl
    A tests/data/acpi/pc/APIC.dimmpxm.dsl
    A tests/data/acpi/pc/APIC.dsl
    A tests/data/acpi/pc/APIC.hpbridge
    A tests/data/acpi/pc/APIC.ipmikcs
    A tests/data/acpi/pc/APIC.ipmikcs.dsl
    A tests/data/acpi/pc/APIC.memhp
    A tests/data/acpi/pc/APIC.memhp.dsl
    A tests/data/acpi/pc/APIC.numamem
    A tests/data/acpi/pc/APIC.numamem.dsl
    A tests/data/acpi/pc/APIC.roothp
    A tests/data/acpi/pc/DSDT.acpihmat.dsl
    A tests/data/acpi/pc/DSDT.bridge.dsl
    A tests/data/acpi/pc/DSDT.cphp.dsl
    A tests/data/acpi/pc/DSDT.dimmpxm.dsl
    A tests/data/acpi/pc/DSDT.dsl
    M tests/data/acpi/pc/DSDT.hpbridge
    A tests/data/acpi/pc/DSDT.ipmikcs.dsl
    A tests/data/acpi/pc/DSDT.memhp.dsl
    A tests/data/acpi/pc/DSDT.numamem.dsl
    M tests/data/acpi/pc/DSDT.roothp
    A tests/data/acpi/pc/FACP.acpihmat
    A tests/data/acpi/pc/FACP.acpihmat.dsl
    A tests/data/acpi/pc/FACP.bridge
    A tests/data/acpi/pc/FACP.bridge.dsl
    A tests/data/acpi/pc/FACP.cphp
    A tests/data/acpi/pc/FACP.cphp.dsl
    A tests/data/acpi/pc/FACP.dimmpxm
    A tests/data/acpi/pc/FACP.dimmpxm.dsl
    A tests/data/acpi/pc/FACP.dsl
    A tests/data/acpi/pc/FACP.hpbridge
    A tests/data/acpi/pc/FACP.ipmikcs
    A tests/data/acpi/pc/FACP.ipmikcs.dsl
    A tests/data/acpi/pc/FACP.memhp
    A tests/data/acpi/pc/FACP.memhp.dsl
    A tests/data/acpi/pc/FACP.numamem
    A tests/data/acpi/pc/FACP.numamem.dsl
    A tests/data/acpi/pc/FACP.roothp
    A tests/data/acpi/pc/FACS.acpihmat
    A tests/data/acpi/pc/FACS.acpihmat.dsl
    A tests/data/acpi/pc/FACS.bridge
    A tests/data/acpi/pc/FACS.bridge.dsl
    A tests/data/acpi/pc/FACS.cphp
    A tests/data/acpi/pc/FACS.cphp.dsl
    A tests/data/acpi/pc/FACS.dimmpxm
    A tests/data/acpi/pc/FACS.dimmpxm.dsl
    A tests/data/acpi/pc/FACS.dsl
    A tests/data/acpi/pc/FACS.hpbridge
    A tests/data/acpi/pc/FACS.ipmikcs
    A tests/data/acpi/pc/FACS.ipmikcs.dsl
    A tests/data/acpi/pc/FACS.memhp
    A tests/data/acpi/pc/FACS.memhp.dsl
    A tests/data/acpi/pc/FACS.numamem
    A tests/data/acpi/pc/FACS.numamem.dsl
    A tests/data/acpi/pc/FACS.roothp
    A tests/data/acpi/pc/HMAT.acpihmat.dsl
    A tests/data/acpi/pc/HMAT.dsl
    A tests/data/acpi/pc/HPET.acpihmat
    A tests/data/acpi/pc/HPET.acpihmat.dsl
    A tests/data/acpi/pc/HPET.bridge
    A tests/data/acpi/pc/HPET.bridge.dsl
    A tests/data/acpi/pc/HPET.cphp
    A tests/data/acpi/pc/HPET.cphp.dsl
    A tests/data/acpi/pc/HPET.dimmpxm
    A tests/data/acpi/pc/HPET.dimmpxm.dsl
    A tests/data/acpi/pc/HPET.dsl
    A tests/data/acpi/pc/HPET.hpbridge
    A tests/data/acpi/pc/HPET.ipmikcs
    A tests/data/acpi/pc/HPET.ipmikcs.dsl
    A tests/data/acpi/pc/HPET.memhp
    A tests/data/acpi/pc/HPET.memhp.dsl
    A tests/data/acpi/pc/HPET.numamem
    A tests/data/acpi/pc/HPET.numamem.dsl
    A tests/data/acpi/pc/HPET.roothp
    A tests/data/acpi/pc/NFIT.dimmpxm.dsl
    A tests/data/acpi/pc/NFIT.dsl
    A tests/data/acpi/pc/SLIT.cphp.dsl
    A tests/data/acpi/pc/SLIT.dsl
    A tests/data/acpi/pc/SLIT.memhp.dsl
    A tests/data/acpi/pc/SRAT.acpihmat.dsl
    A tests/data/acpi/pc/SRAT.cphp.dsl
    A tests/data/acpi/pc/SRAT.dimmpxm.dsl
    A tests/data/acpi/pc/SRAT.dsl
    A tests/data/acpi/pc/SRAT.memhp.dsl
    A tests/data/acpi/pc/SRAT.numamem.dsl
    A tests/data/acpi/pc/SSDT.dsl
    A tests/data/acpi/pc/WAET.acpihmat
    A tests/data/acpi/pc/WAET.acpihmat.dsl
    A tests/data/acpi/pc/WAET.bridge
    A tests/data/acpi/pc/WAET.bridge.dsl
    A tests/data/acpi/pc/WAET.cphp
    A tests/data/acpi/pc/WAET.cphp.dsl
    A tests/data/acpi/pc/WAET.dimmpxm
    A tests/data/acpi/pc/WAET.dimmpxm.dsl
    A tests/data/acpi/pc/WAET.dsl
    A tests/data/acpi/pc/WAET.hpbridge
    A tests/data/acpi/pc/WAET.ipmikcs
    A tests/data/acpi/pc/WAET.ipmikcs.dsl
    A tests/data/acpi/pc/WAET.memhp
    A tests/data/acpi/pc/WAET.memhp.dsl
    A tests/data/acpi/pc/WAET.numamem
    A tests/data/acpi/pc/WAET.numamem.dsl
    A tests/data/acpi/pc/WAET.roothp
    A tests/data/acpi/q35/APIC.acpihmat.dsl
    A tests/data/acpi/q35/APIC.bridge
    A tests/data/acpi/q35/APIC.bridge.dsl
    A tests/data/acpi/q35/APIC.cphp.dsl
    A tests/data/acpi/q35/APIC.dimmpxm.dsl
    A tests/data/acpi/q35/APIC.dsl
    A tests/data/acpi/q35/APIC.ipmibt
    A tests/data/acpi/q35/APIC.ipmibt.dsl
    A tests/data/acpi/q35/APIC.memhp
    A tests/data/acpi/q35/APIC.memhp.dsl
    A tests/data/acpi/q35/APIC.mmio64
    A tests/data/acpi/q35/APIC.mmio64.dsl
    A tests/data/acpi/q35/APIC.numamem
    A tests/data/acpi/q35/APIC.numamem.dsl
    A tests/data/acpi/q35/APIC.tis
    A tests/data/acpi/q35/APIC.tis.dsl
    M tests/data/acpi/q35/DSDT
    M tests/data/acpi/q35/DSDT.acpihmat
    A tests/data/acpi/q35/DSDT.acpihmat.dsl
    M tests/data/acpi/q35/DSDT.bridge
    A tests/data/acpi/q35/DSDT.bridge.dsl
    M tests/data/acpi/q35/DSDT.cphp
    A tests/data/acpi/q35/DSDT.cphp.dsl
    M tests/data/acpi/q35/DSDT.dimmpxm
    A tests/data/acpi/q35/DSDT.dimmpxm.dsl
    A tests/data/acpi/q35/DSDT.dsl
    M tests/data/acpi/q35/DSDT.ipmibt
    A tests/data/acpi/q35/DSDT.ipmibt.dsl
    M tests/data/acpi/q35/DSDT.memhp
    A tests/data/acpi/q35/DSDT.memhp.dsl
    M tests/data/acpi/q35/DSDT.mmio64
    A tests/data/acpi/q35/DSDT.mmio64.dsl
    M tests/data/acpi/q35/DSDT.numamem
    A tests/data/acpi/q35/DSDT.numamem.dsl
    M tests/data/acpi/q35/DSDT.tis
    A tests/data/acpi/q35/DSDT.tis.dsl
    A tests/data/acpi/q35/FACP.acpihmat
    A tests/data/acpi/q35/FACP.acpihmat.dsl
    A tests/data/acpi/q35/FACP.bridge
    A tests/data/acpi/q35/FACP.bridge.dsl
    A tests/data/acpi/q35/FACP.cphp
    A tests/data/acpi/q35/FACP.cphp.dsl
    A tests/data/acpi/q35/FACP.dimmpxm
    A tests/data/acpi/q35/FACP.dimmpxm.dsl
    A tests/data/acpi/q35/FACP.dsl
    A tests/data/acpi/q35/FACP.ipmibt
    A tests/data/acpi/q35/FACP.ipmibt.dsl
    A tests/data/acpi/q35/FACP.memhp
    A tests/data/acpi/q35/FACP.memhp.dsl
    A tests/data/acpi/q35/FACP.mmio64
    A tests/data/acpi/q35/FACP.mmio64.dsl
    A tests/data/acpi/q35/FACP.numamem
    A tests/data/acpi/q35/FACP.numamem.dsl
    A tests/data/acpi/q35/FACP.tis
    A tests/data/acpi/q35/FACP.tis.dsl
    A tests/data/acpi/q35/FACS.acpihmat
    A tests/data/acpi/q35/FACS.acpihmat.dsl
    A tests/data/acpi/q35/FACS.bridge
    A tests/data/acpi/q35/FACS.bridge.dsl
    A tests/data/acpi/q35/FACS.cphp
    A tests/data/acpi/q35/FACS.cphp.dsl
    A tests/data/acpi/q35/FACS.dimmpxm
    A tests/data/acpi/q35/FACS.dimmpxm.dsl
    A tests/data/acpi/q35/FACS.dsl
    A tests/data/acpi/q35/FACS.ipmibt
    A tests/data/acpi/q35/FACS.ipmibt.dsl
    A tests/data/acpi/q35/FACS.memhp
    A tests/data/acpi/q35/FACS.memhp.dsl
    A tests/data/acpi/q35/FACS.mmio64
    A tests/data/acpi/q35/FACS.mmio64.dsl
    A tests/data/acpi/q35/FACS.numamem
    A tests/data/acpi/q35/FACS.numamem.dsl
    A tests/data/acpi/q35/FACS.tis
    A tests/data/acpi/q35/FACS.tis.dsl
    A tests/data/acpi/q35/HMAT.acpihmat.dsl
    A tests/data/acpi/q35/HMAT.dsl
    A tests/data/acpi/q35/HPET.acpihmat
    A tests/data/acpi/q35/HPET.acpihmat.dsl
    A tests/data/acpi/q35/HPET.bridge
    A tests/data/acpi/q35/HPET.bridge.dsl
    A tests/data/acpi/q35/HPET.cphp
    A tests/data/acpi/q35/HPET.cphp.dsl
    A tests/data/acpi/q35/HPET.dimmpxm
    A tests/data/acpi/q35/HPET.dimmpxm.dsl
    A tests/data/acpi/q35/HPET.dsl
    A tests/data/acpi/q35/HPET.ipmibt
    A tests/data/acpi/q35/HPET.ipmibt.dsl
    A tests/data/acpi/q35/HPET.memhp
    A tests/data/acpi/q35/HPET.memhp.dsl
    A tests/data/acpi/q35/HPET.mmio64
    A tests/data/acpi/q35/HPET.mmio64.dsl
    A tests/data/acpi/q35/HPET.numamem
    A tests/data/acpi/q35/HPET.numamem.dsl
    A tests/data/acpi/q35/HPET.tis
    A tests/data/acpi/q35/HPET.tis.dsl
    A tests/data/acpi/q35/MCFG.acpihmat
    A tests/data/acpi/q35/MCFG.acpihmat.dsl
    A tests/data/acpi/q35/MCFG.bridge
    A tests/data/acpi/q35/MCFG.bridge.dsl
    A tests/data/acpi/q35/MCFG.cphp
    A tests/data/acpi/q35/MCFG.cphp.dsl
    A tests/data/acpi/q35/MCFG.dimmpxm
    A tests/data/acpi/q35/MCFG.dimmpxm.dsl
    A tests/data/acpi/q35/MCFG.dsl
    A tests/data/acpi/q35/MCFG.ipmibt
    A tests/data/acpi/q35/MCFG.ipmibt.dsl
    A tests/data/acpi/q35/MCFG.memhp
    A tests/data/acpi/q35/MCFG.memhp.dsl
    A tests/data/acpi/q35/MCFG.mmio64
    A tests/data/acpi/q35/MCFG.mmio64.dsl
    A tests/data/acpi/q35/MCFG.numamem
    A tests/data/acpi/q35/MCFG.numamem.dsl
    A tests/data/acpi/q35/MCFG.tis
    A tests/data/acpi/q35/MCFG.tis.dsl
    A tests/data/acpi/q35/NFIT.dimmpxm.dsl
    A tests/data/acpi/q35/NFIT.dsl
    A tests/data/acpi/q35/SLIT.cphp.dsl
    A tests/data/acpi/q35/SLIT.dsl
    A tests/data/acpi/q35/SLIT.memhp.dsl
    A tests/data/acpi/q35/SRAT.acpihmat.dsl
    A tests/data/acpi/q35/SRAT.cphp.dsl
    A tests/data/acpi/q35/SRAT.dimmpxm.dsl
    A tests/data/acpi/q35/SRAT.dsl
    A tests/data/acpi/q35/SRAT.memhp.dsl
    A tests/data/acpi/q35/SRAT.mmio64.dsl
    A tests/data/acpi/q35/SRAT.numamem.dsl
    A tests/data/acpi/q35/SSDT.dsl
    A tests/data/acpi/q35/TPM2.dsl
    A tests/data/acpi/q35/TPM2.tis.dsl
    A tests/data/acpi/q35/WAET.acpihmat
    A tests/data/acpi/q35/WAET.acpihmat.dsl
    A tests/data/acpi/q35/WAET.bridge
    A tests/data/acpi/q35/WAET.bridge.dsl
    A tests/data/acpi/q35/WAET.cphp
    A tests/data/acpi/q35/WAET.cphp.dsl
    A tests/data/acpi/q35/WAET.dimmpxm
    A tests/data/acpi/q35/WAET.dimmpxm.dsl
    A tests/data/acpi/q35/WAET.dsl
    A tests/data/acpi/q35/WAET.ipmibt
    A tests/data/acpi/q35/WAET.ipmibt.dsl
    A tests/data/acpi/q35/WAET.memhp
    A tests/data/acpi/q35/WAET.memhp.dsl
    A tests/data/acpi/q35/WAET.mmio64
    A tests/data/acpi/q35/WAET.mmio64.dsl
    A tests/data/acpi/q35/WAET.numamem
    A tests/data/acpi/q35/WAET.numamem.dsl
    A tests/data/acpi/q35/WAET.tis
    A tests/data/acpi/q35/WAET.tis.dsl
    A tests/data/acpi/virt/APIC.dsl
    A tests/data/acpi/virt/APIC.memhp.dsl
    A tests/data/acpi/virt/APIC.numamem.dsl
    A tests/data/acpi/virt/DSDT.dsl
    A tests/data/acpi/virt/DSDT.memhp.dsl
    A tests/data/acpi/virt/DSDT.numamem.dsl
    A tests/data/acpi/virt/FACP.dsl
    A tests/data/acpi/virt/FACP.memhp.dsl
    A tests/data/acpi/virt/FACP.numamem.dsl
    A tests/data/acpi/virt/GTDT.dsl
    A tests/data/acpi/virt/GTDT.memhp.dsl
    A tests/data/acpi/virt/GTDT.numamem.dsl
    A tests/data/acpi/virt/MCFG.dsl
    A tests/data/acpi/virt/MCFG.memhp.dsl
    A tests/data/acpi/virt/MCFG.numamem.dsl
    A tests/data/acpi/virt/NFIT.dsl
    A tests/data/acpi/virt/NFIT.memhp.dsl
    A tests/data/acpi/virt/SLIT.dsl
    A tests/data/acpi/virt/SLIT.memhp.dsl
    A tests/data/acpi/virt/SPCR.dsl
    A tests/data/acpi/virt/SPCR.memhp.dsl
    A tests/data/acpi/virt/SPCR.numamem.dsl
    A tests/data/acpi/virt/SRAT.dsl
    A tests/data/acpi/virt/SRAT.memhp.dsl
    A tests/data/acpi/virt/SRAT.numamem.dsl
    A tests/data/acpi/virt/SSDT.dsl
    A tests/data/uefi-boot-images/bios-tables-test.x86_64.iso.raw
    A tests/libqtest.c.orig
    A tests/qemu-iotests/core.12067
    M tests/qtest/bios-tables-test-allowed-diff.h
    A tests/qtest/bios-tables-test-allowed-diff.h.orig
    A tests/qtest/bios-tables-test-allowed-diff.h.rej
    A tests/qtest/bios-tables-test.c.orig
    A tests/qtest/bios-tables-test.c.rej
    A tests/test-qapi-event.c
    A tests/test-qmp-introspect.c
    A tests/test-qmp-marshal.c
    A tests/vhost-user-bridge
    A tests/vhost-user-bridge.c.orig
    A tests/vhost-user-test.c.orig

  Log Message:
  -----------
  tests/acpi: update golden master DSDT binary table blobs for q35

In the previously applied commit ("piix4: don't reserve hw resources when
hotplug is off globally"), we make changes to the ACPI DSDT tables
such that some ACPI code are not generated when bsel is absent. Since
as of this point in time, in q35 machines, we do not use bsel for pci
buses, we need to update the DSDT table blobs.
This patch updates the DSDT golden master tables for q35 machines.
At the same time, we clear bios-tables-test-allowed-diff.h for future
changes which update tables.

Following is a typical diff between the q35 acpi DSDT table blobs:

@@ -1,30 +1,30 @@
 /*
  * Intel ACPI Component Architecture
  * AML/ASL+ Disassembler version 20180105 (64-bit version)
  * Copyright (c) 2000 - 2018 Intel Corporation
  *
  * Disassembling to symbolic ASL+ operators
  *
- * Disassembly of tests/data/acpi/q35/DSDT, Tue Sep 15 18:52:47 2020
+ * Disassembly of /tmp/aml-3O0DR0, Tue Sep 15 18:52:47 2020
  *
  * Original Table Header:
  *     Signature        "DSDT"
- *     Length           0x00001DFE (7678)
+ *     Length           0x00001DF6 (7670)
  *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
- *     Checksum         0xAC
+ *     Checksum         0x17
  *     OEM ID           "BOCHS "
  *     OEM Table ID     "BXPCDSDT"
  *     OEM Revision     0x00000001 (1)
  *     Compiler ID      "BXPC"
  *     Compiler Version 0x00000001 (1)
  */
 DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
 {
     Scope (\)
     {
         OperationRegion (DBG, SystemIO, 0x0402, One)
         Field (DBG, ByteAcc, NoLock, Preserve)
         {
             DBGB,   8
         }

@@ -3113,24 +3113,20 @@
                 Name (_ADR, 0x00010000)  // _ADR: Address
                 Method (_S1D, 0, NotSerialized)  // _S1D: S1 Device State
                 {
                     Return (Zero)
                 }

                 Method (_S2D, 0, NotSerialized)  // _S2D: S2 Device State
                 {
                     Return (Zero)
                 }

                 Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
                 {
                     Return (Zero)
                 }
             }
-
-            Method (PCNT, 0, NotSerialized)
-            {
-            }
         }
     }
 }

Signed-off-by: Ani Sinha <ani@anisinha.ca>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-12-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 2bc9e0da573f77b2f21cc6e4a681c31ddeccfd1d
      
https://github.com/qemu/qemu/commit/2bc9e0da573f77b2f21cc6e4a681c31ddeccfd1d
  Author: Li Qiang <liq3ea@163.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M hw/virtio/virtio-pmem.c

  Log Message:
  -----------
  hw: virtio-pmem: detach the element fromt the virtqueue when error occurs

If error occurs while processing the virtio request we should call
'virtqueue_detach_element' to detach the element from the virtqueue
before free the elem.

Signed-off-by: Li Qiang <liq3ea@163.com>
Message-Id: <20200813165125.59928-1-liq3ea@163.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Fixes: 5f503cd9f3 ("virtio-pmem: add virtio device")
Reviewed-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com>


  Commit: fd40901c82bb0d2946a9523ed8a5a7d0e2867fb6
      
https://github.com/qemu/qemu/commit/fd40901c82bb0d2946a9523ed8a5a7d0e2867fb6
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M contrib/libvhost-user/libvhost-user.c

  Log Message:
  -----------
  libvhost-user: return early on virtqueue errors

vu_panic() is not guaranteed to exit the program. Return early when
errors are encountered.

Note that libvhost-user does not have an "unmap" operation for mapped
descriptors. Therefore it is correct to return without explicit cleanup.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20200921113420.154378-2-stefanha@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 8138405528c29af2a850cd672a8f8a0b33b7ab40
      
https://github.com/qemu/qemu/commit/8138405528c29af2a850cd672a8f8a0b33b7ab40
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M contrib/libvhost-user/libvhost-user.c

  Log Message:
  -----------
  libvhost-user: return on error in vu_log_queue_fill()

vu_panic() is not guaranteed to exit the program. Return early when
errors are encountered.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20200921113420.154378-3-stefanha@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 213057383c9f73a17cfe635b204d88e11f918df1
      
https://github.com/qemu/qemu/commit/213057383c9f73a17cfe635b204d88e11f918df1
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-09-29 (Tue, 29 Sep 2020)

  Changed paths:
    M Kconfig.host
    M configure
    M contrib/libvhost-user/libvhost-user.c
    M docs/system/deprecated.rst
    M hmp-commands.hx
    M hw/acpi/aml-build.c
    M hw/acpi/cpu.c
    M hw/acpi/ich9.c
    M hw/acpi/pcihp.c
    M hw/acpi/piix4.c
    M hw/block/vhost-user-blk.c
    M hw/core/machine-hmp-cmds.c
    M hw/core/machine-qmp-cmds.c
    M hw/core/machine.c
    M hw/i386/acpi-build.c
    M hw/i386/pc.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M hw/i386/x86.c
    M hw/isa/lpc_ich9.c
    M hw/s390x/s390-virtio-ccw.c
    M hw/s390x/vhost-vsock-ccw.c
    M hw/s390x/virtio-ccw.c
    M hw/smbios/smbios.c
    M hw/virtio/trace-events
    M hw/virtio/vhost-backend.c
    M hw/virtio/vhost-user-vsock-pci.c
    M hw/virtio/vhost-vdpa.c
    M hw/virtio/vhost-vsock-pci.c
    M hw/virtio/vhost.c
    M hw/virtio/virtio-iommu-pci.c
    M hw/virtio/virtio-iommu.c
    M hw/virtio/virtio-mem.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio-pmem-pci.c
    M hw/virtio/virtio-pmem.c
    M hw/virtio/virtio.c
    M include/hw/acpi/aml-build.h
    M include/hw/acpi/cpu.h
    M include/hw/boards.h
    M include/hw/i386/ich9.h
    M include/hw/i386/pc.h
    M include/hw/virtio/vhost-backend.h
    M include/hw/virtio/vhost-user-blk.h
    M include/hw/virtio/vhost-vdpa.h
    M include/hw/virtio/vhost.h
    M include/hw/virtio/virtio.h
    M include/monitor/hmp.h
    M include/qemu-common.h
    M include/standard-headers/drm/drm_fourcc.h
    M include/standard-headers/linux/ethtool.h
    M include/standard-headers/linux/input-event-codes.h
    M include/standard-headers/linux/vhost_types.h
    M include/standard-headers/linux/virtio_9p.h
    M include/standard-headers/linux/virtio_blk.h
    M include/standard-headers/linux/virtio_config.h
    M include/standard-headers/linux/virtio_console.h
    M include/standard-headers/linux/virtio_net.h
    M include/standard-headers/linux/virtio_scsi.h
    M linux-headers/asm-generic/unistd.h
    M linux-headers/asm-mips/unistd_n32.h
    M linux-headers/asm-mips/unistd_n64.h
    M linux-headers/asm-mips/unistd_o32.h
    M linux-headers/asm-powerpc/kvm.h
    M linux-headers/asm-powerpc/unistd_32.h
    M linux-headers/asm-powerpc/unistd_64.h
    M linux-headers/asm-s390/kvm.h
    M linux-headers/asm-s390/unistd_32.h
    M linux-headers/asm-s390/unistd_64.h
    M linux-headers/asm-x86/unistd_32.h
    M linux-headers/asm-x86/unistd_64.h
    M linux-headers/asm-x86/unistd_x32.h
    M linux-headers/linux/kvm.h
    M linux-headers/linux/vfio.h
    M linux-headers/linux/vhost.h
    M meson.build
    M net/vhost-user.c
    M qapi/machine.json
    M qemu-options.hx
    A tests/.vhost-user-test.c.swo
    A tests/Makefile.include.orig
    A tests/Makefile.orig
    A tests/bios-tables-test.c.orig
    A tests/data/acpi/diff-aml.sh
    A tests/data/acpi/disassemle-aml.py
    A tests/data/acpi/microvm/APIC.dsl
    A tests/data/acpi/microvm/DSDT.dsl
    A tests/data/acpi/microvm/FACP.dsl
    A tests/data/acpi/pc/APIC.acpihmat.dsl
    A tests/data/acpi/pc/APIC.bridge
    A tests/data/acpi/pc/APIC.bridge.dsl
    A tests/data/acpi/pc/APIC.cphp.dsl
    A tests/data/acpi/pc/APIC.dimmpxm.dsl
    A tests/data/acpi/pc/APIC.dsl
    A tests/data/acpi/pc/APIC.hpbridge
    A tests/data/acpi/pc/APIC.ipmikcs
    A tests/data/acpi/pc/APIC.ipmikcs.dsl
    A tests/data/acpi/pc/APIC.memhp
    A tests/data/acpi/pc/APIC.memhp.dsl
    A tests/data/acpi/pc/APIC.numamem
    A tests/data/acpi/pc/APIC.numamem.dsl
    A tests/data/acpi/pc/APIC.roothp
    M tests/data/acpi/pc/DSDT
    M tests/data/acpi/pc/DSDT.acpihmat
    A tests/data/acpi/pc/DSDT.acpihmat.dsl
    M tests/data/acpi/pc/DSDT.bridge
    A tests/data/acpi/pc/DSDT.bridge.dsl
    M tests/data/acpi/pc/DSDT.cphp
    A tests/data/acpi/pc/DSDT.cphp.dsl
    M tests/data/acpi/pc/DSDT.dimmpxm
    A tests/data/acpi/pc/DSDT.dimmpxm.dsl
    A tests/data/acpi/pc/DSDT.dsl
    A tests/data/acpi/pc/DSDT.hpbridge
    M tests/data/acpi/pc/DSDT.ipmikcs
    A tests/data/acpi/pc/DSDT.ipmikcs.dsl
    M tests/data/acpi/pc/DSDT.memhp
    A tests/data/acpi/pc/DSDT.memhp.dsl
    M tests/data/acpi/pc/DSDT.numamem
    A tests/data/acpi/pc/DSDT.numamem.dsl
    A tests/data/acpi/pc/DSDT.roothp
    A tests/data/acpi/pc/FACP.acpihmat
    A tests/data/acpi/pc/FACP.acpihmat.dsl
    A tests/data/acpi/pc/FACP.bridge
    A tests/data/acpi/pc/FACP.bridge.dsl
    A tests/data/acpi/pc/FACP.cphp
    A tests/data/acpi/pc/FACP.cphp.dsl
    A tests/data/acpi/pc/FACP.dimmpxm
    A tests/data/acpi/pc/FACP.dimmpxm.dsl
    A tests/data/acpi/pc/FACP.dsl
    A tests/data/acpi/pc/FACP.hpbridge
    A tests/data/acpi/pc/FACP.ipmikcs
    A tests/data/acpi/pc/FACP.ipmikcs.dsl
    A tests/data/acpi/pc/FACP.memhp
    A tests/data/acpi/pc/FACP.memhp.dsl
    A tests/data/acpi/pc/FACP.numamem
    A tests/data/acpi/pc/FACP.numamem.dsl
    A tests/data/acpi/pc/FACP.roothp
    A tests/data/acpi/pc/FACS.acpihmat
    A tests/data/acpi/pc/FACS.acpihmat.dsl
    A tests/data/acpi/pc/FACS.bridge
    A tests/data/acpi/pc/FACS.bridge.dsl
    A tests/data/acpi/pc/FACS.cphp
    A tests/data/acpi/pc/FACS.cphp.dsl
    A tests/data/acpi/pc/FACS.dimmpxm
    A tests/data/acpi/pc/FACS.dimmpxm.dsl
    A tests/data/acpi/pc/FACS.dsl
    A tests/data/acpi/pc/FACS.hpbridge
    A tests/data/acpi/pc/FACS.ipmikcs
    A tests/data/acpi/pc/FACS.ipmikcs.dsl
    A tests/data/acpi/pc/FACS.memhp
    A tests/data/acpi/pc/FACS.memhp.dsl
    A tests/data/acpi/pc/FACS.numamem
    A tests/data/acpi/pc/FACS.numamem.dsl
    A tests/data/acpi/pc/FACS.roothp
    A tests/data/acpi/pc/HMAT.acpihmat.dsl
    A tests/data/acpi/pc/HMAT.dsl
    A tests/data/acpi/pc/HPET.acpihmat
    A tests/data/acpi/pc/HPET.acpihmat.dsl
    A tests/data/acpi/pc/HPET.bridge
    A tests/data/acpi/pc/HPET.bridge.dsl
    A tests/data/acpi/pc/HPET.cphp
    A tests/data/acpi/pc/HPET.cphp.dsl
    A tests/data/acpi/pc/HPET.dimmpxm
    A tests/data/acpi/pc/HPET.dimmpxm.dsl
    A tests/data/acpi/pc/HPET.dsl
    A tests/data/acpi/pc/HPET.hpbridge
    A tests/data/acpi/pc/HPET.ipmikcs
    A tests/data/acpi/pc/HPET.ipmikcs.dsl
    A tests/data/acpi/pc/HPET.memhp
    A tests/data/acpi/pc/HPET.memhp.dsl
    A tests/data/acpi/pc/HPET.numamem
    A tests/data/acpi/pc/HPET.numamem.dsl
    A tests/data/acpi/pc/HPET.roothp
    A tests/data/acpi/pc/NFIT.dimmpxm.dsl
    A tests/data/acpi/pc/NFIT.dsl
    A tests/data/acpi/pc/SLIT.cphp.dsl
    A tests/data/acpi/pc/SLIT.dsl
    A tests/data/acpi/pc/SLIT.memhp.dsl
    A tests/data/acpi/pc/SRAT.acpihmat.dsl
    A tests/data/acpi/pc/SRAT.cphp.dsl
    A tests/data/acpi/pc/SRAT.dimmpxm.dsl
    A tests/data/acpi/pc/SRAT.dsl
    A tests/data/acpi/pc/SRAT.memhp.dsl
    A tests/data/acpi/pc/SRAT.numamem.dsl
    A tests/data/acpi/pc/SSDT.dsl
    A tests/data/acpi/pc/WAET.acpihmat
    A tests/data/acpi/pc/WAET.acpihmat.dsl
    A tests/data/acpi/pc/WAET.bridge
    A tests/data/acpi/pc/WAET.bridge.dsl
    A tests/data/acpi/pc/WAET.cphp
    A tests/data/acpi/pc/WAET.cphp.dsl
    A tests/data/acpi/pc/WAET.dimmpxm
    A tests/data/acpi/pc/WAET.dimmpxm.dsl
    A tests/data/acpi/pc/WAET.dsl
    A tests/data/acpi/pc/WAET.hpbridge
    A tests/data/acpi/pc/WAET.ipmikcs
    A tests/data/acpi/pc/WAET.ipmikcs.dsl
    A tests/data/acpi/pc/WAET.memhp
    A tests/data/acpi/pc/WAET.memhp.dsl
    A tests/data/acpi/pc/WAET.numamem
    A tests/data/acpi/pc/WAET.numamem.dsl
    A tests/data/acpi/pc/WAET.roothp
    A tests/data/acpi/q35/APIC.acpihmat.dsl
    A tests/data/acpi/q35/APIC.bridge
    A tests/data/acpi/q35/APIC.bridge.dsl
    A tests/data/acpi/q35/APIC.cphp.dsl
    A tests/data/acpi/q35/APIC.dimmpxm.dsl
    A tests/data/acpi/q35/APIC.dsl
    A tests/data/acpi/q35/APIC.ipmibt
    A tests/data/acpi/q35/APIC.ipmibt.dsl
    A tests/data/acpi/q35/APIC.memhp
    A tests/data/acpi/q35/APIC.memhp.dsl
    A tests/data/acpi/q35/APIC.mmio64
    A tests/data/acpi/q35/APIC.mmio64.dsl
    A tests/data/acpi/q35/APIC.numamem
    A tests/data/acpi/q35/APIC.numamem.dsl
    A tests/data/acpi/q35/APIC.tis
    A tests/data/acpi/q35/APIC.tis.dsl
    M tests/data/acpi/q35/DSDT
    M tests/data/acpi/q35/DSDT.acpihmat
    A tests/data/acpi/q35/DSDT.acpihmat.dsl
    M tests/data/acpi/q35/DSDT.bridge
    A tests/data/acpi/q35/DSDT.bridge.dsl
    M tests/data/acpi/q35/DSDT.cphp
    A tests/data/acpi/q35/DSDT.cphp.dsl
    M tests/data/acpi/q35/DSDT.dimmpxm
    A tests/data/acpi/q35/DSDT.dimmpxm.dsl
    A tests/data/acpi/q35/DSDT.dsl
    M tests/data/acpi/q35/DSDT.ipmibt
    A tests/data/acpi/q35/DSDT.ipmibt.dsl
    M tests/data/acpi/q35/DSDT.memhp
    A tests/data/acpi/q35/DSDT.memhp.dsl
    M tests/data/acpi/q35/DSDT.mmio64
    A tests/data/acpi/q35/DSDT.mmio64.dsl
    M tests/data/acpi/q35/DSDT.numamem
    A tests/data/acpi/q35/DSDT.numamem.dsl
    M tests/data/acpi/q35/DSDT.tis
    A tests/data/acpi/q35/DSDT.tis.dsl
    A tests/data/acpi/q35/FACP.acpihmat
    A tests/data/acpi/q35/FACP.acpihmat.dsl
    A tests/data/acpi/q35/FACP.bridge
    A tests/data/acpi/q35/FACP.bridge.dsl
    A tests/data/acpi/q35/FACP.cphp
    A tests/data/acpi/q35/FACP.cphp.dsl
    A tests/data/acpi/q35/FACP.dimmpxm
    A tests/data/acpi/q35/FACP.dimmpxm.dsl
    A tests/data/acpi/q35/FACP.dsl
    A tests/data/acpi/q35/FACP.ipmibt
    A tests/data/acpi/q35/FACP.ipmibt.dsl
    A tests/data/acpi/q35/FACP.memhp
    A tests/data/acpi/q35/FACP.memhp.dsl
    A tests/data/acpi/q35/FACP.mmio64
    A tests/data/acpi/q35/FACP.mmio64.dsl
    A tests/data/acpi/q35/FACP.numamem
    A tests/data/acpi/q35/FACP.numamem.dsl
    A tests/data/acpi/q35/FACP.tis
    A tests/data/acpi/q35/FACP.tis.dsl
    A tests/data/acpi/q35/FACS.acpihmat
    A tests/data/acpi/q35/FACS.acpihmat.dsl
    A tests/data/acpi/q35/FACS.bridge
    A tests/data/acpi/q35/FACS.bridge.dsl
    A tests/data/acpi/q35/FACS.cphp
    A tests/data/acpi/q35/FACS.cphp.dsl
    A tests/data/acpi/q35/FACS.dimmpxm
    A tests/data/acpi/q35/FACS.dimmpxm.dsl
    A tests/data/acpi/q35/FACS.dsl
    A tests/data/acpi/q35/FACS.ipmibt
    A tests/data/acpi/q35/FACS.ipmibt.dsl
    A tests/data/acpi/q35/FACS.memhp
    A tests/data/acpi/q35/FACS.memhp.dsl
    A tests/data/acpi/q35/FACS.mmio64
    A tests/data/acpi/q35/FACS.mmio64.dsl
    A tests/data/acpi/q35/FACS.numamem
    A tests/data/acpi/q35/FACS.numamem.dsl
    A tests/data/acpi/q35/FACS.tis
    A tests/data/acpi/q35/FACS.tis.dsl
    A tests/data/acpi/q35/HMAT.acpihmat.dsl
    A tests/data/acpi/q35/HMAT.dsl
    A tests/data/acpi/q35/HPET.acpihmat
    A tests/data/acpi/q35/HPET.acpihmat.dsl
    A tests/data/acpi/q35/HPET.bridge
    A tests/data/acpi/q35/HPET.bridge.dsl
    A tests/data/acpi/q35/HPET.cphp
    A tests/data/acpi/q35/HPET.cphp.dsl
    A tests/data/acpi/q35/HPET.dimmpxm
    A tests/data/acpi/q35/HPET.dimmpxm.dsl
    A tests/data/acpi/q35/HPET.dsl
    A tests/data/acpi/q35/HPET.ipmibt
    A tests/data/acpi/q35/HPET.ipmibt.dsl
    A tests/data/acpi/q35/HPET.memhp
    A tests/data/acpi/q35/HPET.memhp.dsl
    A tests/data/acpi/q35/HPET.mmio64
    A tests/data/acpi/q35/HPET.mmio64.dsl
    A tests/data/acpi/q35/HPET.numamem
    A tests/data/acpi/q35/HPET.numamem.dsl
    A tests/data/acpi/q35/HPET.tis
    A tests/data/acpi/q35/HPET.tis.dsl
    A tests/data/acpi/q35/MCFG.acpihmat
    A tests/data/acpi/q35/MCFG.acpihmat.dsl
    A tests/data/acpi/q35/MCFG.bridge
    A tests/data/acpi/q35/MCFG.bridge.dsl
    A tests/data/acpi/q35/MCFG.cphp
    A tests/data/acpi/q35/MCFG.cphp.dsl
    A tests/data/acpi/q35/MCFG.dimmpxm
    A tests/data/acpi/q35/MCFG.dimmpxm.dsl
    A tests/data/acpi/q35/MCFG.dsl
    A tests/data/acpi/q35/MCFG.ipmibt
    A tests/data/acpi/q35/MCFG.ipmibt.dsl
    A tests/data/acpi/q35/MCFG.memhp
    A tests/data/acpi/q35/MCFG.memhp.dsl
    A tests/data/acpi/q35/MCFG.mmio64
    A tests/data/acpi/q35/MCFG.mmio64.dsl
    A tests/data/acpi/q35/MCFG.numamem
    A tests/data/acpi/q35/MCFG.numamem.dsl
    A tests/data/acpi/q35/MCFG.tis
    A tests/data/acpi/q35/MCFG.tis.dsl
    A tests/data/acpi/q35/NFIT.dimmpxm.dsl
    A tests/data/acpi/q35/NFIT.dsl
    A tests/data/acpi/q35/SLIT.cphp.dsl
    A tests/data/acpi/q35/SLIT.dsl
    A tests/data/acpi/q35/SLIT.memhp.dsl
    A tests/data/acpi/q35/SRAT.acpihmat.dsl
    A tests/data/acpi/q35/SRAT.cphp.dsl
    A tests/data/acpi/q35/SRAT.dimmpxm.dsl
    A tests/data/acpi/q35/SRAT.dsl
    A tests/data/acpi/q35/SRAT.memhp.dsl
    A tests/data/acpi/q35/SRAT.mmio64.dsl
    A tests/data/acpi/q35/SRAT.numamem.dsl
    A tests/data/acpi/q35/SSDT.dsl
    A tests/data/acpi/q35/TPM2.dsl
    A tests/data/acpi/q35/TPM2.tis.dsl
    A tests/data/acpi/q35/WAET.acpihmat
    A tests/data/acpi/q35/WAET.acpihmat.dsl
    A tests/data/acpi/q35/WAET.bridge
    A tests/data/acpi/q35/WAET.bridge.dsl
    A tests/data/acpi/q35/WAET.cphp
    A tests/data/acpi/q35/WAET.cphp.dsl
    A tests/data/acpi/q35/WAET.dimmpxm
    A tests/data/acpi/q35/WAET.dimmpxm.dsl
    A tests/data/acpi/q35/WAET.dsl
    A tests/data/acpi/q35/WAET.ipmibt
    A tests/data/acpi/q35/WAET.ipmibt.dsl
    A tests/data/acpi/q35/WAET.memhp
    A tests/data/acpi/q35/WAET.memhp.dsl
    A tests/data/acpi/q35/WAET.mmio64
    A tests/data/acpi/q35/WAET.mmio64.dsl
    A tests/data/acpi/q35/WAET.numamem
    A tests/data/acpi/q35/WAET.numamem.dsl
    A tests/data/acpi/q35/WAET.tis
    A tests/data/acpi/q35/WAET.tis.dsl
    A tests/data/acpi/virt/APIC.dsl
    A tests/data/acpi/virt/APIC.memhp.dsl
    A tests/data/acpi/virt/APIC.numamem.dsl
    A tests/data/acpi/virt/DSDT.dsl
    A tests/data/acpi/virt/DSDT.memhp.dsl
    A tests/data/acpi/virt/DSDT.numamem.dsl
    A tests/data/acpi/virt/FACP.dsl
    A tests/data/acpi/virt/FACP.memhp.dsl
    A tests/data/acpi/virt/FACP.numamem.dsl
    A tests/data/acpi/virt/GTDT.dsl
    A tests/data/acpi/virt/GTDT.memhp.dsl
    A tests/data/acpi/virt/GTDT.numamem.dsl
    A tests/data/acpi/virt/MCFG.dsl
    A tests/data/acpi/virt/MCFG.memhp.dsl
    A tests/data/acpi/virt/MCFG.numamem.dsl
    A tests/data/acpi/virt/NFIT.dsl
    A tests/data/acpi/virt/NFIT.memhp.dsl
    A tests/data/acpi/virt/SLIT.dsl
    A tests/data/acpi/virt/SLIT.memhp.dsl
    A tests/data/acpi/virt/SPCR.dsl
    A tests/data/acpi/virt/SPCR.memhp.dsl
    A tests/data/acpi/virt/SPCR.numamem.dsl
    A tests/data/acpi/virt/SRAT.dsl
    A tests/data/acpi/virt/SRAT.memhp.dsl
    A tests/data/acpi/virt/SRAT.numamem.dsl
    A tests/data/acpi/virt/SSDT.dsl
    A tests/data/uefi-boot-images/bios-tables-test.x86_64.iso.raw
    A tests/libqtest.c.orig
    A tests/qemu-iotests/core.12067
    A tests/qtest/bios-tables-test-allowed-diff.h.orig
    A tests/qtest/bios-tables-test-allowed-diff.h.rej
    M tests/qtest/bios-tables-test.c
    A tests/qtest/bios-tables-test.c.orig
    A tests/qtest/bios-tables-test.c.rej
    M tests/qtest/cpu-plug-test.c
    M tests/qtest/test-hmp.c
    M tests/qtest/vhost-user-test.c
    A tests/test-qapi-event.c
    A tests/test-qmp-introspect.c
    A tests/test-qmp-marshal.c
    A tests/vhost-user-bridge
    A tests/vhost-user-bridge.c.orig
    A tests/vhost-user-test.c.orig
    M util/hexdump.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging

virtio,pc,acpi: fixes, tests

Fixes and tests all over the place.
Batch iommu updates for vdpa.
Removal of deprecated cpu hotplug commands.
SMBIOS OEM string support.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

# gpg: Signature made Tue 29 Sep 2020 08:09:21 BST
# gpg:                using RSA key 5D09FD0871C8F85B94CA8A0D281F0DB8D28D5469
# gpg:                issuer "mst@redhat.com"
# gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>" [full]
# gpg:                 aka "Michael S. Tsirkin <mst@redhat.com>" [full]
# Primary key fingerprint: 0270 606B 6F3C DF3D 0B17  0970 C350 3912 AFBE 8E67
#      Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA  8A0D 281F 0DB8 D28D 5469

* remotes/mst/tags/for_upstream: (48 commits)
  libvhost-user: return on error in vu_log_queue_fill()
  libvhost-user: return early on virtqueue errors
  hw: virtio-pmem: detach the element fromt the virtqueue when error occurs
  tests/acpi: update golden master DSDT binary table blobs for q35
  piix4: don't reserve hw resources when hotplug is off globally
  Add ACPI DSDT tables for q35 that are being updated by the next patch
  tests/acpi: add newly added acpi DSDT table blob for pci bridge hotplug flag
  tests/acpi: unit test for 'acpi-pci-hotplug-with-bridge-support' bridge flag
  tests/acpi: list added acpi table binary file for pci bridge hotplug test
  i440fx/acpi: do not add hotplug related amls for cold plugged bridges
  Fix a gap where acpi_pcihp_find_hotplug_bus() returns a non-hotpluggable bus
  tests/acpi: add a new ACPI table in order to test root pci hotplug on/off
  tests/acpi: add new unit test to test hotplug off/on feature on the root pci 
bus
  tests/acpi: mark addition of table DSDT.roothp for unit testing root pci 
hotplug
  vhost-user: save features of multiqueues if chardev is closed
  qemu-options: document SMBIOS type 11 settings
  hw/smbios: report error if table size is too large
  hw/smbios: support loading OEM strings values from a file
  tests: acpi: update acpi blobs with new AML
  x68: acpi: trigger SMI before sending hotplug Notify event to OSPM
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/23290e8070fa...213057383c9f



reply via email to

[Prev in Thread] Current Thread [Next in Thread]