qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] ab4dd2: hw/virtio: Acquire RCU read lock in v


From: Richard Henderson
Subject: [Qemu-commits] [qemu/qemu] ab4dd2: hw/virtio: Acquire RCU read lock in virtqueue_pack...
Date: Tue, 05 Oct 2021 14:42:14 -0700

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: ab4dd2746c234f038206b3ccfe6bec1f19f98c24
      
https://github.com/qemu/qemu/commit/ab4dd2746c234f038206b3ccfe6bec1f19f98c24
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/virtio/virtio.c

  Log Message:
  -----------
  hw/virtio: Acquire RCU read lock in virtqueue_packed_drop_all()

vring_get_region_caches() must be called with the RCU read lock
acquired. virtqueue_packed_drop_all() does not, and uses the
'caches' pointer. Fix that by using the RCU_READ_LOCK_GUARD()
macro.

Reported-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20210906104318.1569967-3-philmd@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>


  Commit: d6ed27bae717ceac9de0c53a31389143846b8465
      
https://github.com/qemu/qemu/commit/d6ed27bae717ceac9de0c53a31389143846b8465
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/virtio/virtio.c

  Log Message:
  -----------
  hw/virtio: Have virtqueue_get_avail_bytes() pass caches arg to callees

Both virtqueue_packed_get_avail_bytes() and
virtqueue_split_get_avail_bytes() access the region cache, but
their caller also does. Simplify by having virtqueue_get_avail_bytes
calling both with RCU lock held, and passing the caches as argument.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20210906104318.1569967-4-philmd@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>


  Commit: d6a9378f47515c6d70dbff4912c5740c98709880
      
https://github.com/qemu/qemu/commit/d6a9378f47515c6d70dbff4912c5740c98709880
  Author: Stefano Garzarella <sgarzare@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/core/machine.c
    M hw/virtio/vhost-vsock.c
    M include/hw/virtio/vhost-vsock.h

  Log Message:
  -----------
  vhost-vsock: fix migration issue when seqpacket is supported

Commit 1e08fd0a46 ("vhost-vsock: SOCK_SEQPACKET feature bit support")
enabled the SEQPACKET feature bit.
This commit is released with QEMU 6.1, so if we try to migrate a VM where
the host kernel supports SEQPACKET but machine type version is less than
6.1, we get the following errors:

    Features 0x130000002 unsupported. Allowed features: 0x179000000
    Failed to load virtio-vhost_vsock:virtio
    error while loading state for instance 0x0 of device 
'0000:00:05.0/virtio-vhost_vsock'
    load of migration failed: Operation not permitted

Let's disable the feature bit for machine types < 6.1.
We add a new OnOffAuto property for this, called `seqpacket`.
When it is `auto` (default), QEMU behaves as before, trying to enable the
feature, when it is `on` QEMU will fail if the backend (vhost-vsock
kernel module) doesn't support it.

Fixes: 1e08fd0a46 ("vhost-vsock: SOCK_SEQPACKET feature bit support")
Cc: qemu-stable@nongnu.org
Reported-by: Jiang Wang <jiang.wang@bytedance.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Message-Id: <20210921161642.206461-2-sgarzare@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 46ce017167d800c5d96104a88cfaed9949c4a3b6
      
https://github.com/qemu/qemu/commit/46ce017167d800c5d96104a88cfaed9949c4a3b6
  Author: Stefano Garzarella <sgarzare@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/core/machine.c
    M hw/virtio/vhost-user-vsock.c
    M hw/virtio/vhost-vsock-common.c
    M hw/virtio/vhost-vsock.c
    M include/hw/virtio/vhost-vsock-common.h
    M include/hw/virtio/vhost-vsock.h

  Log Message:
  -----------
  vhost-vsock: handle common features in vhost-vsock-common

virtio-vsock features, like VIRTIO_VSOCK_F_SEQPACKET, can be handled
by vhost-vsock-common parent class. In this way, we can reuse the
same code for all virtio-vsock backends (i.e. vhost-vsock,
vhost-user-vsock).

Let's move `seqpacket` property to vhost-vsock-common class, add
vhost_vsock_common_get_features() used by children, and disable
`seqpacket` for vhost-user-vsock device for machine types < 6.2.

The behavior of vhost-vsock device doesn't change; vhost-user-vsock
device now supports `seqpacket` property.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Message-Id: <20210921161642.206461-3-sgarzare@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: c151fd87102cbb4082ac5dbcd704196b0495d28a
      
https://github.com/qemu/qemu/commit/c151fd87102cbb4082ac5dbcd704196b0495d28a
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

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

  Log Message:
  -----------
  acpi: add helper routines to initialize ACPI tables

Patch introduces acpi_table_begin()/ acpi_table_end() API
that hides pointer/offset arithmetic from user as opposed
to build_header(), to prevent errors caused by it [1].

 acpi_table_begin():
     initializes table header and keeps track of
     table data/offsets
 acpi_table_end():
     sets actual table length and tells bios loader
     where table is for the later initialization on
     guest side.

1) commits
   bb9feea43179 x86: acpi: use offset instead of pointer when using 
build_header()
   4d027afeb3a9 Virt: ACPI: fix qemu assert due to re-assigned table data 
address

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-2-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: Stefan Berger <stefanb@linux.ibm.com>
Tested-by: Yanan Wang <wangyanan55@huawei.com>


  Commit: ea298e83a7fb435e57913dd755b53e6b2264feed
      
https://github.com/qemu/qemu/commit/ea298e83a7fb435e57913dd755b53e6b2264feed
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

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

  Log Message:
  -----------
  acpi: build_rsdt: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offests magic from API user.

While at it switch to build_append_int_noprefix() to build
entries to other tables (which also removes some manual offset
calculations).

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-3-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: f497b7cae1cd052fdbc023f02d37921c4069f7e6
      
https://github.com/qemu/qemu/commit/f497b7cae1cd052fdbc023f02d37921c4069f7e6
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

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

  Log Message:
  -----------
  acpi: build_xsdt: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

While at it switch to build_append_int_noprefix() to build
entries to other tables (which also removes some manual offset
calculations).

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-4-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 7469f1991dc5e061ff724070c65e3fef96602bca
      
https://github.com/qemu/qemu/commit/7469f1991dc5e061ff724070c65e3fef96602bca
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

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

  Log Message:
  -----------
  acpi: build_slit: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-5-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 4b56e1e4eb08e923f68203f0f92a1d3053bceb33
      
https://github.com/qemu/qemu/commit/4b56e1e4eb08e923f68203f0f92a1d3053bceb33
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

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

  Log Message:
  -----------
  acpi: build_fadt: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-6-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 3e39c1ed7b642a20b63afaeb3742e0917d25dbe0
      
https://github.com/qemu/qemu/commit/3e39c1ed7b642a20b63afaeb3742e0917d25dbe0
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

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

  Log Message:
  -----------
  acpi: build_tpm2: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-7-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 13229858cf76b9648ba20be93b70fca4429d7dcd
      
https://github.com/qemu/qemu/commit/13229858cf76b9648ba20be93b70fca4429d7dcd
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/acpi/ghes.c

  Log Message:
  -----------
  acpi: acpi_build_hest: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Dongjiu Geng <gengdongjiu1@gmail.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-8-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 578bc7a06462fd71c66d1562c457b01da307a7b6
      
https://github.com/qemu/qemu/commit/578bc7a06462fd71c66d1562c457b01da307a7b6
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/acpi/pci.c

  Log Message:
  -----------
  acpi: build_mcfg: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-9-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 689ef4721a06dd724e447d8b8e2dc3622c866557
      
https://github.com/qemu/qemu/commit/689ef4721a06dd724e447d8b8e2dc3622c866557
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/acpi/hmat.c

  Log Message:
  -----------
  acpi: build_hmat: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

Also since acpi_table_begin() reserves space only for standard header
while previous acpi_data_push() reserved the header + 4 bytes field,
add 4 bytes 'Reserved' field into hmat_build_table_structs()
which didn have it.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-10-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 7d1823beeffc43669aaf7c5bc274c30e1c16e6c2
      
https://github.com/qemu/qemu/commit/7d1823beeffc43669aaf7c5bc274c30e1c16e6c2
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/acpi/nvdimm.c

  Log Message:
  -----------
  acpi: nvdimm_build_nfit: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

Also since acpi_table_begin() reserves space only for standard header
while previous acpi_data_push() reserved the header + 4 bytes field,
add 4 bytes 'Reserved' field into nvdimm_build_nfit() which didn't
have it.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-11-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: de67dd1be0af2b7fb02af441254ea05cd9bc1007
      
https://github.com/qemu/qemu/commit/de67dd1be0af2b7fb02af441254ea05cd9bc1007
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/acpi/nvdimm.c

  Log Message:
  -----------
  acpi: nvdimm_build_ssdt: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-12-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: b25681c358bccb8700d742acb742dc1c2374acb7
      
https://github.com/qemu/qemu/commit/b25681c358bccb8700d742acb742dc1c2374acb7
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/acpi/vmgenid.c

  Log Message:
  -----------
  acpi: vmgenid_build_acpi: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-13-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 5c142bc48f973e348e6ae13495ce370b172abaa4
      
https://github.com/qemu/qemu/commit/5c142bc48f973e348e6ae13495ce370b172abaa4
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

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

  Log Message:
  -----------
  acpi: x86: build_dsdt: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-14-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 43dde1705c610710389491e5989ae6f5b5cf6fb9
      
https://github.com/qemu/qemu/commit/43dde1705c610710389491e5989ae6f5b5cf6fb9
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

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

  Log Message:
  -----------
  acpi: build_hpet: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

while at it convert build_hpet() to endian agnostic
build_append_FOO() API

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


  Commit: 57cb8cfbf2cda59fe829fee54115f72dd7998645
      
https://github.com/qemu/qemu/commit/57cb8cfbf2cda59fe829fee54115f72dd7998645
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

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

  Log Message:
  -----------
  acpi: build_tpm_tcpa: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

While at it switch to build_append_int_noprefix() to build
table entries (which also removes some manual offset
calculations).

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-16-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 255bf20f2e047be1068f90cf8eaf3fc07cbba7d5
      
https://github.com/qemu/qemu/commit/255bf20f2e047be1068f90cf8eaf3fc07cbba7d5
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/arm/virt-acpi-build.c
    M hw/i386/acpi-build.c
    M include/hw/acpi/acpi-defs.h

  Log Message:
  -----------
  acpi: arm/x86: build_srat: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

While at it switch to build_append_int_noprefix() to build
table entries (which also removes some manual offset
calculations)

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-17-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: e5b6d55a6e5e13002cf79a42a0b78b3188e88a1f
      
https://github.com/qemu/qemu/commit/e5b6d55a6e5e13002cf79a42a0b78b3188e88a1f
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/acpi/aml-build.c
    M hw/acpi/nvdimm.c
    M hw/arm/virt-acpi-build.c
    M hw/i386/acpi-build.c
    M include/hw/acpi/acpi-defs.h
    M include/hw/acpi/aml-build.h

  Log Message:
  -----------
  acpi: use build_append_int_noprefix() API to compose SRAT table

Drop usage of packed structures and explicit endian conversions
when building SRAT tables for arm/x86 and use endian agnostic
build_append_int_noprefix() API to build it.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-18-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 91a6b9756970f70d933ea3c01fb5306ea6e5b331
      
https://github.com/qemu/qemu/commit/91a6b9756970f70d933ea3c01fb5306ea6e5b331
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

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

  Log Message:
  -----------
  acpi: build_dmar_q35: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

While at it switch to build_append_int_noprefix() to build
table entries tables.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-19-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: eaa507646d039556ee2a10514b0a0acfe8f8362d
      
https://github.com/qemu/qemu/commit/eaa507646d039556ee2a10514b0a0acfe8f8362d
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

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

  Log Message:
  -----------
  acpi: build_waet: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-20-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: b0a45ff60e822c26fbf412d3b82bd5748e4f8fb0
      
https://github.com/qemu/qemu/commit/b0a45ff60e822c26fbf412d3b82bd5748e4f8fb0
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

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

  Log Message:
  -----------
  acpi: build_amd_iommu: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-21-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 99a7545f92378765ca98eb1b54b1087c9d2567ec
      
https://github.com/qemu/qemu/commit/99a7545f92378765ca98eb1b54b1087c9d2567ec
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/arm/virt-acpi-build.c
    M hw/i386/acpi-common.c
    M include/hw/acpi/acpi-defs.h

  Log Message:
  -----------
  acpi: madt: arm/x86: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-22-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: b10e7f4f8f05b3956eabf0661320c71f1e3bab10
      
https://github.com/qemu/qemu/commit/b10e7f4f8f05b3956eabf0661320c71f1e3bab10
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M include/hw/acpi/acpi-defs.h

  Log Message:
  -----------
  acpi: x86: remove dead code

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-23-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: d0aa026a498cdd4e082f12618767f19a2532712a
      
https://github.com/qemu/qemu/commit/d0aa026a498cdd4e082f12618767f19a2532712a
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/acpi/acpi-x86-stub.c
    M hw/acpi/cpu.c
    M hw/i386/acpi-common.c
    M include/hw/acpi/acpi_dev_interface.h
    M include/hw/i386/pc.h

  Log Message:
  -----------
  acpi: x86: set enabled when composing _MAT entries

Instead of composing disabled _MAT entry and then later on
patching it to enabled for hotpluggbale CPUs in DSDT,
set it to enabled at the time _MAT entry is built.

It will allow to drop usage of packed structures in
following patches when build_madt() is switched to use
build_append_int_noprefix() API.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-24-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: dd092b9c6008149785d7789c729f468fb762aa0b
      
https://github.com/qemu/qemu/commit/dd092b9c6008149785d7789c729f468fb762aa0b
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/i386/acpi-common.c
    M include/hw/acpi/acpi-defs.h

  Log Message:
  -----------
  acpi: x86: madt: use build_append_int_noprefix() API to compose MADT table

Drop usage of packed structures and explicit endian conversions
when building MADT table for arm/x86 and use endian agnostic
build_append_int_noprefix() API to build it.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-25-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 37f33084ed2eb0867e3a3f501c6279c7c5f666c6
      
https://github.com/qemu/qemu/commit/37f33084ed2eb0867e3a3f501c6279c7c5f666c6
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/arm/virt-acpi-build.c
    M include/hw/acpi/acpi-defs.h

  Log Message:
  -----------
  acpi: arm/virt: madt: use build_append_int_noprefix() API to compose MADT 
table

Drop usage of packed structures and explicit endian conversions
when building MADT table for arm/x86 and use endian agnostic
build_append_int_noprefix() API to build it.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-26-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 8f20f9a7364f5324416c33a7d0aeccbddd5affcc
      
https://github.com/qemu/qemu/commit/8f20f9a7364f5324416c33a7d0aeccbddd5affcc
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

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

  Log Message:
  -----------
  acpi: build_dsdt_microvm: use acpi_table_begin()/acpi_table_end() instead of 
build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-27-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: fc02b86982df0628926869551901b64d2ab777e5
      
https://github.com/qemu/qemu/commit/fc02b86982df0628926869551901b64d2ab777e5
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/arm/virt-acpi-build.c

  Log Message:
  -----------
  acpi: arm: virt: build_dsdt: use acpi_table_begin()/acpi_table_end() instead 
of build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-28-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 3548494e49dacd33bbd610876d1ac38f8f8b94bc
      
https://github.com/qemu/qemu/commit/3548494e49dacd33bbd610876d1ac38f8f8b94bc
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/arm/virt-acpi-build.c
    M include/hw/acpi/acpi-defs.h

  Log Message:
  -----------
  acpi: arm: virt: build_iort: use acpi_table_begin()/acpi_table_end() instead 
of build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Tested-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-29-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 271cbb2f2bfecfbb31175645f4e3da7ec626b810
      
https://github.com/qemu/qemu/commit/271cbb2f2bfecfbb31175645f4e3da7ec626b810
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/arm/virt-acpi-build.c
    M include/hw/acpi/acpi-defs.h

  Log Message:
  -----------
  acpi: arm/virt: convert build_iort() to endian agnostic build_append_FOO() API

Drop usage of packed structures and explicit endian conversions
when building IORT table use endian agnostic build_append_int_noprefix()
API to build it.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20210924122802.1455362-30-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Tested-by: Eric Auger <eric.auger@redhat.com>


  Commit: 88b1045eadd699335ffab0c9235f096f3a8cf771
      
https://github.com/qemu/qemu/commit/88b1045eadd699335ffab0c9235f096f3a8cf771
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/arm/virt-acpi-build.c

  Log Message:
  -----------
  acpi: arm/virt: build_spcr: fix invalid cast

implicit cast to structure uint8_t member didn't raise error when
assigning value from incorrect enum, but when using build_append_gas()
(next patch) it will error out with (clang):
  implicit conversion from enumeration type 'AmlRegionSpace'
  to different enumeration type 'AmlAddressSpace'
fix cast error by using correct AML_AS_SYSTEM_MEMORY enum

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-31-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: a86d86ac0ae39b7e8fcce08fffd2e0ab5aa287df
      
https://github.com/qemu/qemu/commit/a86d86ac0ae39b7e8fcce08fffd2e0ab5aa287df
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/arm/virt-acpi-build.c
    M include/hw/acpi/acpi-defs.h

  Log Message:
  -----------
  acpi: arm/virt: build_spcr: use acpi_table_begin()/acpi_table_end() instead 
of build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

while at it, replace packed structure with endian agnostic
build_append_FOO() API.

PS:
Spec is Microsoft hosted, however 1.02 is no where to be found
(MS lists only the current revision) and the current revision is 1.07,
so bring comments in line with 1.07 as this is the only available spec.
There is no content change between originally implemented 1.02
(using QEMU code as reference) and 1.07. The only change is renaming
'Reserved2' field to 'Language', with the same 0 value.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-32-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 41041e57085a9454c45a6a751babfca70306f361
      
https://github.com/qemu/qemu/commit/41041e57085a9454c45a6a751babfca70306f361
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/arm/virt-acpi-build.c
    M include/hw/acpi/acpi-defs.h

  Log Message:
  -----------
  acpi: arm/virt: build_gtdt: use acpi_table_begin()/acpi_table_end() instead 
of build_header()

it replaces error-prone pointer arithmetic for build_header() API,
with 2 calls to start and finish table creation,
which hides offsets magic from API user.

while at it, replace packed structure with endian agnostic
build_append_FOO() API.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-33-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: cf68410bc98914ee9be5cb5a127a1212056ab83a
      
https://github.com/qemu/qemu/commit/cf68410bc98914ee9be5cb5a127a1212056ab83a
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

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

  Log Message:
  -----------
  acpi: build_facs: use build_append_int_noprefix() API to compose table

Drop usage of packed structures and explicit endian
conversions when building table and use endian agnostic
build_append_int_noprefix() API to build it.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-34-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 538c2ecf1ab73fb2ecc2d50ef23b116e634b5392
      
https://github.com/qemu/qemu/commit/538c2ecf1ab73fb2ecc2d50ef23b116e634b5392
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

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

  Log Message:
  -----------
  acpi: remove no longer used build_header()

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-35-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: a8a5768786f4182cb4f4b08e830150dc93d51964
      
https://github.com/qemu/qemu/commit/a8a5768786f4182cb4f4b08e830150dc93d51964
  Author: Igor Mammedov <imammedo@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M include/hw/acpi/acpi-defs.h

  Log Message:
  -----------
  acpi: AcpiGenericAddress no longer used to map/access fields of MMIO, drop 
packed attribute

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-Id: <20210924122802.1455362-36-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 9f29e872d5b3973003701401cf659cfb71c95013
      
https://github.com/qemu/qemu/commit/9f29e872d5b3973003701401cf659cfb71c95013
  Author: Ani Sinha <ani@anisinha.ca>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

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

  Log Message:
  -----------
  bios-tables-test: allow changes in DSDT ACPI tables for q35

We are going to commit a change to fix IO address range allocated for acpi pci
hotplug in q35. This affects DSDT tables. This change allows DSDT table
modification so that unit tests are not broken.

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


  Commit: 0e780da76a6fe283a20283856718bca3986c104f
      
https://github.com/qemu/qemu/commit/0e780da76a6fe283a20283856718bca3986c104f
  Author: Ani Sinha <ani@anisinha.ca>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M include/hw/acpi/ich9.h

  Log Message:
  -----------
  hw/i386/acpi: fix conflicting IO address range for acpi pci hotplug in q35

Change caf108bc58790 ("hw/i386/acpi-build: Add ACPI PCI hot-plug methods to 
Q35")
selects an IO address range for acpi based PCI hotplug for q35 arbitrarily. It
starts at address 0x0cc4 and ends at 0x0cdb. At the time when the patch was
written but the final version of the patch was not yet pushed upstream, this
address range was free and did not conflict with any other IO address ranges.
However, with the following change, this address range was no
longer conflict free as in this change, the IO address range
(value of ACPI_PCIHP_SIZE) was incremented by four bytes:

b32bd763a1ca92 ("pci: introduce acpi-index property for PCI device")

This can be seen from the output of QMP command 'info mtree' :

0000000000000600-0000000000000603 (prio 0, i/o): acpi-evt
0000000000000604-0000000000000605 (prio 0, i/o): acpi-cnt
0000000000000608-000000000000060b (prio 0, i/o): acpi-tmr
0000000000000620-000000000000062f (prio 0, i/o): acpi-gpe0
0000000000000630-0000000000000637 (prio 0, i/o): acpi-smi
0000000000000cc4-0000000000000cdb (prio 0, i/o): acpi-pci-hotplug
0000000000000cd8-0000000000000ce3 (prio 0, i/o): acpi-cpu-hotplug

It shows that there is a region of conflict between IO regions of acpi
pci hotplug and acpi cpu hotplug.

Unfortunately, the change caf108bc58790 did not update the IO address range
appropriately before it was pushed upstream to accommodate the increased
length of the IO address space introduced in change b32bd763a1ca92.

Due to this bug, windows guests complain 'This device cannot find
enough free resources it can use' in the device manager panel for extended
IO buses. This issue also breaks the correct functioning of pci hotplug as the
following shows that the IO space for pci hotplug has been truncated:

(qemu) info mtree -f
FlatView #0
 AS "I/O", root: io
 Root memory region: io
  0000000000000cc4-0000000000000cd7 (prio 0, i/o): acpi-pci-hotplug
  0000000000000cd8-0000000000000cf7 (prio 0, i/o): acpi-cpu-hotplug

Therefore, in this fix, we adjust the IO address range for the acpi pci
hotplug so that it does not conflict with cpu hotplug and there is no
truncation of IO spaces. The starting IO address of PCI hotplug region
has been decremented by four bytes in order to accommodate four byte
increment in the IO address space introduced by change
b32bd763a1ca92 ("pci: introduce acpi-index property for PCI device")

After fixing, the following are the corrected IO ranges:

0000000000000600-0000000000000603 (prio 0, i/o): acpi-evt
0000000000000604-0000000000000605 (prio 0, i/o): acpi-cnt
0000000000000608-000000000000060b (prio 0, i/o): acpi-tmr
0000000000000620-000000000000062f (prio 0, i/o): acpi-gpe0
0000000000000630-0000000000000637 (prio 0, i/o): acpi-smi
0000000000000cc0-0000000000000cd7 (prio 0, i/o): acpi-pci-hotplug
0000000000000cd8-0000000000000ce3 (prio 0, i/o): acpi-cpu-hotplug

This change has been tested using a Windows Server 2019 guest VM. Windows
no longer complains after this change.

Fixes: caf108bc58790 ("hw/i386/acpi-build: Add ACPI PCI hot-plug methods to 
Q35")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/561

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


  Commit: 500eb21cff08dfb0478db9b34f2fdba69eb31496
      
https://github.com/qemu/qemu/commit/500eb21cff08dfb0478db9b34f2fdba69eb31496
  Author: Ani Sinha <ani@anisinha.ca>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    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.nohpet
    M tests/data/acpi/q35/DSDT.numamem
    M tests/data/acpi/q35/DSDT.tis.tpm12
    M tests/data/acpi/q35/DSDT.tis.tpm2
    M tests/qtest/bios-tables-test-allowed-diff.h

  Log Message:
  -----------
  bios-tables-test: Update ACPI DSDT table golden blobs for q35

We have modified the IO address range for ACPI pci hotplug in q35. See change:

5adcc9e39e6a5 ("hw/i386/acpi: fix conflicting IO address range for acpi pci 
hotplug in q35")

The ACPI DSDT table golden blobs must be regenrated in order to make the unit 
tests
pass. This change updates the golden ACPI DSDT table blobs.

Following is the ASL diff between the blobs:

@@ -1,30 +1,30 @@
 /*
  * Intel ACPI Component Architecture
  * AML/ASL+ Disassembler version 20190509 (64-bit version)
  * Copyright (c) 2000 - 2019 Intel Corporation
  *
  * Disassembling to symbolic ASL+ operators
  *
- * Disassembly of tests/data/acpi/q35/DSDT, Tue Sep 14 09:04:06 2021
+ * Disassembly of /tmp/aml-52DP90, Tue Sep 14 09:04:06 2021
  *
  * Original Table Header:
  *     Signature        "DSDT"
  *     Length           0x00002061 (8289)
  *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
- *     Checksum         0xE5
+ *     Checksum         0xF9
  *     OEM ID           "BOCHS "
  *     OEM Table ID     "BXPC    "
  *     OEM Revision     0x00000001 (1)
  *     Compiler ID      "BXPC"
  *     Compiler Version 0x00000001 (1)
  */
 DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPC    ", 0x00000001)
 {
     Scope (\)
     {
         OperationRegion (DBG, SystemIO, 0x0402, One)
         Field (DBG, ByteAcc, NoLock, Preserve)
         {
             DBGB,   8
         }

@@ -226,46 +226,46 @@
             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
             {
                 IO (Decode16,
                     0x0070,             // Range Minimum
                     0x0070,             // Range Maximum
                     0x01,               // Alignment
                     0x08,               // Length
                     )
                 IRQNoFlags ()
                     {8}
             })
         }
     }

     Scope (_SB.PCI0)
     {
-        OperationRegion (PCST, SystemIO, 0x0CC4, 0x08)
+        OperationRegion (PCST, SystemIO, 0x0CC0, 0x08)
         Field (PCST, DWordAcc, NoLock, WriteAsZeros)
         {
             PCIU,   32,
             PCID,   32
         }

-        OperationRegion (SEJ, SystemIO, 0x0CCC, 0x04)
+        OperationRegion (SEJ, SystemIO, 0x0CC8, 0x04)
         Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
         {
             B0EJ,   32
         }

-        OperationRegion (BNMR, SystemIO, 0x0CD4, 0x08)
+        OperationRegion (BNMR, SystemIO, 0x0CD0, 0x08)
         Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
         {
             BNUM,   32,
             PIDX,   32
         }

         Mutex (BLCK, 0x00)
         Method (PCEJ, 2, NotSerialized)
         {
             Acquire (BLCK, 0xFFFF)
             BNUM = Arg0
             B0EJ = (One << Arg1)
             Release (BLCK)
             Return (Zero)
         }

@@ -3185,34 +3185,34 @@
                     0x0620,             // Range Minimum
                     0x0620,             // Range Maximum
                     0x01,               // Alignment
                     0x10,               // Length
                     )
             })
         }

         Device (PHPR)
         {
             Name (_HID, "PNP0A06" /* Generic Container Device */)  // _HID: 
Hardware ID
             Name (_UID, "PCI Hotplug resources")  // _UID: Unique ID
             Name (_STA, 0x0B)  // _STA: Status
             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
             {
                 IO (Decode16,
-                    0x0CC4,             // Range Minimum
-                    0x0CC4,             // Range Maximum
+                    0x0CC0,             // Range Minimum
+                    0x0CC0,             // Range Maximum
                     0x01,               // Alignment
                     0x18,               // Length
                     )
             })
         }
     }

     Scope (\)
     {
         Name (_S3, Package (0x04)  // _S3_: S3 System State
         {
             One,
             One,
             Zero,
             Zero
         })

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


  Commit: 243a9284a989a38e32ceb3990eb795f5cf6f3be0
      
https://github.com/qemu/qemu/commit/243a9284a989a38e32ceb3990eb795f5cf6f3be0
  Author: Dr. David Alan Gilbert <dgilbert@redhat.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

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

  Log Message:
  -----------
  virtio-balloon: Fix page-poison subsection name

The subsection name for page-poison was typo'd as:

  vitio-balloon-device/page-poison

Note the missing 'r' in virtio.

When we have a machine type that enables page poison, and the guest
enables it (which needs a new kernel), things fail rather unpredictably.

The fallout from this is that most of the other subsections fail to
load, including things like the feature bits in the device, one
possible fallout is that the physical addresses of the queues
then get aligned differently and we fail with an error about
last_avail_idx being wrong.
It's not obvious to me why this doesn't produce a more obvious failure,
but virtio's vmstate loading is a bit open-coded.

Fixes: 7483cbbaf82 ("virtio-balloon: Implement support for page poison 
reporting feature")
bz: https://bugzilla.redhat.com/show_bug.cgi?id=1984401
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20210914131716.102851-1-dgilbert@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>


  Commit: 5c243345236b058a3d84c8cbc62802f3fffb273c
      
https://github.com/qemu/qemu/commit/5c243345236b058a3d84c8cbc62802f3fffb273c
  Author: Li Zhijian <lizhijian@cn.fujitsu.com>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/acpi/nvdimm.c

  Log Message:
  -----------
  nvdimm: release the correct device list

Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Message-Id: <20210624110415.187164-1-lizhijian@cn.fujitsu.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>


  Commit: 64cba40c4480b4716da7d26fbedc97f43aa9f8f4
      
https://github.com/qemu/qemu/commit/64cba40c4480b4716da7d26fbedc97f43aa9f8f4
  Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/i386/amd_iommu.c

  Log Message:
  -----------
  hw/i386/amd_iommu: Rename amdviPCI TypeInfo

Per 'QEMU Coding Style':

  Naming
  ======
  Variables are lower_case_with_underscores; easy to type and read.

Rename amdviPCI variable as amdvi_pci.

amdviPCI_register_types() register more than PCI types:
TYPE_AMD_IOMMU_DEVICE inherits TYPE_X86_IOMMU_DEVICE which
itself inherits TYPE_SYS_BUS_DEVICE.

Rename it more generically as amdvi_register_types().

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210926175648.1649075-2-f4bug@amsat.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 8f6b7309c423a876dbb26975fdb48f582ebcabcd
      
https://github.com/qemu/qemu/commit/8f6b7309c423a876dbb26975fdb48f582ebcabcd
  Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/i386/amd_iommu.c

  Log Message:
  -----------
  hw/i386/amd_iommu: Rename SysBus specific functions as amdvi_sysbus_X()

Various functions are SysBus specific. Rename them using the
consistent amdvi_sysbus_XXX() pattern, to differentiate them
from PCI specific functions (which we'll add in the next
commit).

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210926175648.1649075-3-f4bug@amsat.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 64bc656decc0fdf59e23753de8940c744b39b586
      
https://github.com/qemu/qemu/commit/64bc656decc0fdf59e23753de8940c744b39b586
  Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/i386/amd_iommu.c

  Log Message:
  -----------
  hw/i386/amd_iommu: Add description/category to TYPE_AMD_IOMMU_PCI

TYPE_AMD_IOMMU_PCI is user-creatable but not well described.
Implement its class_init() handler to add it to the 'Misc
devices' category, and add a description.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210926175648.1649075-4-f4bug@amsat.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 274f9a381cd334118e9c84afb3285fe1da97cf87
      
https://github.com/qemu/qemu/commit/274f9a381cd334118e9c84afb3285fe1da97cf87
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-10-05 (Tue, 05 Oct 2021)

  Changed paths:
    M hw/acpi/acpi-x86-stub.c
    M hw/acpi/aml-build.c
    M hw/acpi/cpu.c
    M hw/acpi/ghes.c
    M hw/acpi/hmat.c
    M hw/acpi/nvdimm.c
    M hw/acpi/pci.c
    M hw/acpi/vmgenid.c
    M hw/arm/virt-acpi-build.c
    M hw/core/machine.c
    M hw/i386/acpi-build.c
    M hw/i386/acpi-common.c
    M hw/i386/acpi-microvm.c
    M hw/i386/amd_iommu.c
    M hw/virtio/vhost-user-vsock.c
    M hw/virtio/vhost-vsock-common.c
    M hw/virtio/vhost-vsock.c
    M hw/virtio/virtio-balloon.c
    M hw/virtio/virtio.c
    M include/hw/acpi/acpi-defs.h
    M include/hw/acpi/acpi_dev_interface.h
    M include/hw/acpi/aml-build.h
    M include/hw/acpi/ich9.h
    M include/hw/i386/pc.h
    M include/hw/virtio/vhost-vsock-common.h
    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.nohpet
    M tests/data/acpi/q35/DSDT.numamem
    M tests/data/acpi/q35/DSDT.tis.tpm12
    M tests/data/acpi/q35/DSDT.tis.tpm2

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

pc,pci,virtio: features, fixes

A huge acpi refactoring.
Fixes, cleanups all over the place.

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

# gpg: Signature made Tue 05 Oct 2021 02:31:11 PM PDT
# 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]

* remotes/mst/tags/for_upstream: (47 commits)
  hw/i386/amd_iommu: Add description/category to TYPE_AMD_IOMMU_PCI
  hw/i386/amd_iommu: Rename SysBus specific functions as amdvi_sysbus_X()
  hw/i386/amd_iommu: Rename amdviPCI TypeInfo
  nvdimm: release the correct device list
  virtio-balloon: Fix page-poison subsection name
  bios-tables-test: Update ACPI DSDT table golden blobs for q35
  hw/i386/acpi: fix conflicting IO address range for acpi pci hotplug in q35
  bios-tables-test: allow changes in DSDT ACPI tables for q35
  acpi: AcpiGenericAddress no longer used to map/access fields of MMIO, drop 
packed attribute
  acpi: remove no longer used build_header()
  acpi: build_facs: use build_append_int_noprefix() API to compose table
  acpi: arm/virt: build_gtdt: use acpi_table_begin()/acpi_table_end() instead 
of build_header()
  acpi: arm/virt: build_spcr: use acpi_table_begin()/acpi_table_end() instead 
of build_header()
  acpi: arm/virt: build_spcr: fix invalid cast
  acpi: arm/virt: convert build_iort() to endian agnostic build_append_FOO() API
  acpi: arm: virt: build_iort: use acpi_table_begin()/acpi_table_end() instead 
of build_header()
  acpi: arm: virt: build_dsdt: use acpi_table_begin()/acpi_table_end() instead 
of build_header()
  acpi: build_dsdt_microvm: use acpi_table_begin()/acpi_table_end() instead of 
build_header()
  acpi: arm/virt: madt: use build_append_int_noprefix() API to compose MADT 
table
  acpi: x86: madt: use build_append_int_noprefix() API to compose MADT table
  ...

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


Compare: https://github.com/qemu/qemu/compare/08a9b68dc033...274f9a381cd3



reply via email to

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