qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 00adce: virtio: Allow .get_vhost() without vh


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 00adce: virtio: Allow .get_vhost() without vhost_started
Date: Fri, 13 Sep 2024 02:25:03 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 00adced5c3166ee65b6880b48c1e0826b7304f76
      
https://github.com/qemu/qemu/commit/00adced5c3166ee65b6880b48c1e0826b7304f76
  Author: Hanna Czenczek <hreitz@redhat.com>
  Date:   2024-09-10 (Tue, 10 Sep 2024)

  Changed paths:
    M hw/display/vhost-user-gpu.c
    M hw/net/virtio-net.c
    M hw/virtio/virtio-crypto.c
    M include/hw/virtio/virtio.h

  Log Message:
  -----------
  virtio: Allow .get_vhost() without vhost_started

Historically, .get_vhost() was probably only called when
vdev->vhost_started is true.  However, we now decidedly want to call it
also when vhost_started is false, specifically so we can issue a reset
to the vhost back-end while device operation is stopped.

Some .get_vhost() implementations dereference some pointers (or return
offsets from them) that are probably guaranteed to be non-NULL when
vhost_started is true, but not necessarily otherwise.  This patch makes
all such implementations check all such pointers, returning NULL if any
is NULL.

Signed-off-by: Hanna Czenczek <hreitz@redhat.com>
Message-Id: <20240723163941.48775-2-hreitz@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 2688e8df60f5a655dc34c5e38523e425556f8483
      
https://github.com/qemu/qemu/commit/2688e8df60f5a655dc34c5e38523e425556f8483
  Author: Hanna Czenczek <hreitz@redhat.com>
  Date:   2024-09-10 (Tue, 10 Sep 2024)

  Changed paths:
    M hw/virtio/virtio.c

  Log Message:
  -----------
  virtio: Always reset vhost devices

Requiring `vhost_started` to be true for resetting vhost devices in
`virtio_reset()` seems like the wrong condition: Most importantly, the
preceding `virtio_set_status(vdev, 0)` call will (for vhost devices) end
up in `vhost_dev_stop()` (through vhost devices' `.set_status`
implementations), setting `vdev->vhost_started = false`.  Therefore, the
gated `vhost_reset_device()` call is unreachable.

`vhost_started` is not documented, so it is hard to say what exactly it
is supposed to mean, but judging from the fact that `vhost_dev_start()`
sets it and `vhost_dev_stop()` clears it, it seems like it indicates
whether there is a vhost back-end, and whether that back-end is
currently running and processing virtio requests.

Making a reset conditional on whether the vhost back-end is processing
virtio requests seems wrong; in fact, it is probably better to reset it
only when it is not currently processing requests, which is exactly the
current order of operations in `virtio_reset()`: First, the back-end is
stopped through `virtio_set_status(vdev, 0)`, then we want to send a
reset.

Therefore, we should drop the `vhost_started` condition, but in its
stead we then have to verify that we can indeed send a reset to this
vhost device, by not just checking `k->get_vhost != NULL` (introduced by
commit 95e1019a4a9), but also that the vhost back-end is connected
(`hdev = k->get_vhost(); hdev != NULL && hdev->vhost_ops != NULL`).

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>
Message-Id: <20240723163941.48775-3-hreitz@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: e72a7f65c11565d2f216711588a4e767a1f6cd80
      
https://github.com/qemu/qemu/commit/e72a7f65c11565d2f216711588a4e767a1f6cd80
  Author: BALATON Zoltan <balaton@eik.bme.hu>
  Date:   2024-09-11 (Wed, 11 Sep 2024)

  Changed paths:
    M hw/core/irq.c
    M include/hw/irq.h

  Log Message:
  -----------
  hw: Move declaration of IRQState to header and add init function

To allow embedding a qemu_irq in a struct move its definition to the
header and add a function to init it in place without allocating it.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: 
<e3ffd0f6ef8845d0f7247c9b6ff33f7ee8b432cf.1719690591.git.balaton@eik.bme.hu>
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>


  Commit: 2225dc562a93dc191c3b2a43f273639bebad5d9a
      
https://github.com/qemu/qemu/commit/2225dc562a93dc191c3b2a43f273639bebad5d9a
  Author: BALATON Zoltan <balaton@eik.bme.hu>
  Date:   2024-09-11 (Wed, 11 Sep 2024)

  Changed paths:
    M hw/isa/vt82c686.c

  Log Message:
  -----------
  hw/isa/vt82c686.c: Embed i8259 irq in device state instead of allocating

To avoid a warning about unfreed qemu_irq embed the i8259 irq in the
device state instead of allocating it.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: 
<b70b9e72063b4dd4005bf4bc040b84f2bb617bf4.1719690591.git.balaton@eik.bme.hu>
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>


  Commit: e228d62b4af29bca698ec57efdceb46f392f5444
      
https://github.com/qemu/qemu/commit/e228d62b4af29bca698ec57efdceb46f392f5444
  Author: Dongli Zhang <dongli.zhang@oracle.com>
  Date:   2024-09-11 (Wed, 11 Sep 2024)

  Changed paths:
    M hw/pci/pci.c

  Log Message:
  -----------
  pci: don't skip function 0 occupancy verification for devfn auto assign

When the devfn is already assigned in the command line, the
do_pci_register_device() may verify if the function 0 is already occupied.

However, when devfn < 0, the verification is skipped because it is part of
the last "else if".

For instance, suppose there is already a device at addr=00.00 of a port.

-device pcie-root-port,bus=pcie.0,chassis=115,id=port01,addr=0e.00 \
-device virtio-net-pci,bus=port01,id=vnet01,addr=00.00 \

When 'addr' is specified for the 2nd device, the hotplug is denied.

(qemu) device_add virtio-net-pci,bus=port01,id=vnet02,addr=01.00
Error: PCI: slot 0 function 0 already occupied by virtio-net-pci, new func 
virtio-net-pci cannot be exposed to guest.

When 'addr' is automatically assigned, the hotplug is not denied. This is
because the verification is skipped.

(qemu) device_add virtio-net-pci,bus=port01,id=vnet02
warning: PCI: slot 1 is not valid for virtio-net-pci, parent device only allows 
plugging into slot 0.

Fix the issue by moving the verification into an independent 'if'
statement.

Fixes: 3f1e1478db2d ("enable multi-function hot-add")
Reported-by: Aswin Unnikrishnan <aswin.u.unnikrishnan@oracle.com>
Signed-off-by: Dongli Zhang <dongli.zhang@oracle.com>
Message-Id: <20240708041056.54504-1-dongli.zhang@oracle.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: aa37616fb4eed38f3fc26507faf2433c998e0073
      
https://github.com/qemu/qemu/commit/aa37616fb4eed38f3fc26507faf2433c998e0073
  Author: Philippe Mathieu-Daudé <philmd@linaro.org>
  Date:   2024-09-11 (Wed, 11 Sep 2024)

  Changed paths:
    M hw/pci/pci-hmp-cmds.c

  Log Message:
  -----------
  hw/pci/pci-hmp-cmds: Avoid displaying bogus size in 'info pci'

When BAR aren't mapped, we get:

  (qemu) info pci
    Bus  0, device   0, function 0:
      Host bridge: PCI device dead:beef
        ...
        BAR4: 32 bit memory at 0xffffffffffffffff [0x00000ffe].
        BAR5: I/O at 0xffffffffffffffff [0x0ffe].

Check the BAR is mapped comparing its address to PCI_BAR_UNMAPPED
which is what the PCI layer uses for unmapped BARs.
See pci_bar_address and pci_update_mappings implementations and
in "hw/pci/pci.h":

  typedef struct PCIIORegion {
      pcibus_t addr; /* current PCI mapping address. -1 means not mapped */
  #define PCI_BAR_UNMAPPED (~(pcibus_t)0)
      ...

This improves the logging, not displaying bogus sizes:

  (qemu) info pci
    Bus  0, device   0, function 0:
      Host bridge: PCI device dead:beef
        ...
      BAR4: 32 bit memory (not mapped)
      BAR5: I/O (not mapped)

Remove trailing dot which is not used in other commands format.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20240801131449.51328-1-philmd@linaro.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: e667485a80ed3f3849ea7421a63fe8ba553cd25e
      
https://github.com/qemu/qemu/commit/e667485a80ed3f3849ea7421a63fe8ba553cd25e
  Author: Wenyu Huang <huangwenyuu@outlook.com>
  Date:   2024-09-11 (Wed, 11 Sep 2024)

  Changed paths:
    M hw/virtio/virtio.c

  Log Message:
  -----------
  virtio: rename virtio_split_packed_update_used_idx

virtio_split_packed_update_used_idx should be
virtio_queue_split_update_used_idx like
virtio_split_packed_update_used_idx.

Signed-off-by: Wenyu Huang <huangwenyuu@outlook.com>
Message-Id: 
<TYBP286MB036536B9015994AA5F3E4495ACB22@TYBP286MB0365.JPNP286.PROD.OUTLOOK.COM>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 663168943d3db6d9b51d3dfa0998848a6e6eda71
      
https://github.com/qemu/qemu/commit/663168943d3db6d9b51d3dfa0998848a6e6eda71
  Author: Zhenzhong Duan <zhenzhong.duan@intel.com>
  Date:   2024-09-11 (Wed, 11 Sep 2024)

  Changed paths:
    M hw/i386/intel_iommu.c
    M hw/i386/intel_iommu_internal.h

  Log Message:
  -----------
  intel_iommu: Fix invalidation descriptor type field

According to spec, invalidation descriptor type is 7bits which is
concatenation of bits[11:9] and bits[3:0] of invalidation descriptor.

Currently we only pick bits[3:0] as the invalidation type and treat
bits[11:9] as reserved zero. This is not a problem for now as bits[11:9]
is zero for all current invalidation types. But it will break if newer
type occupies bits[11:9].

Fix it by taking bits[11:9] into type and make reserved bits check accurate.

Suggested-by: Clément Mathieu--Drif<clement.mathieu--drif@eviden.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Yi Liu <yi.l.liu@intel.com>
Reviewed-by: Clément Mathieu--Drif<clement.mathieu--drif@eviden.com>
Message-Id: <20240814071321.2621384-2-zhenzhong.duan@intel.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 3b52cea829d873706ff86913ae99b4bd621c20e6
      
https://github.com/qemu/qemu/commit/3b52cea829d873706ff86913ae99b4bd621c20e6
  Author: Zhenzhong Duan <zhenzhong.duan@intel.com>
  Date:   2024-09-11 (Wed, 11 Sep 2024)

  Changed paths:
    M hw/i386/intel_iommu.c

  Log Message:
  -----------
  intel_iommu: Make PASID-cache and PIOTLB type invalid in legacy mode

In vtd_process_inv_desc(), VTD_INV_DESC_PC and VTD_INV_DESC_PIOTLB are
bypassed without scalable mode check. These two types are not valid
in legacy mode and we should report error.

Fixes: 4a4f219e8a10 ("intel_iommu: add scalable-mode option to make scalable 
mode work")
Suggested-by: Yi Liu <yi.l.liu@intel.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Clément Mathieu--Drif<clement.mathieu--drif@eviden.com>
Reviewed-by: Yi Liu <yi.l.liu@intel.com>
Message-Id: <20240814071321.2621384-3-zhenzhong.duan@intel.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: ae77a40e3c7f010d1d18a92806246654f92b6f26
      
https://github.com/qemu/qemu/commit/ae77a40e3c7f010d1d18a92806246654f92b6f26
  Author: Ricardo Ribalda <ribalda@chromium.org>
  Date:   2024-09-11 (Wed, 11 Sep 2024)

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

  Log Message:
  -----------
  tests/acpi: pc: allow DSDT acpi table changes

Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
Message-Id: <20240814115736.1580337-2-ribalda@chromium.org>
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: 99cb2c6c7b3674359c61a40fb17a75516b8e159d
      
https://github.com/qemu/qemu/commit/99cb2c6c7b3674359c61a40fb17a75516b8e159d
  Author: Ricardo Ribalda <ribalda@chromium.org>
  Date:   2024-09-11 (Wed, 11 Sep 2024)

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

  Log Message:
  -----------
  hw/i386/acpi-build: Return a pre-computed _PRT table

When qemu runs without kvm acceleration the ACPI executions take a great
amount of time. If they take more than the default time (30sec), the
ACPI calls fail and the system might not behave correctly.

Now the _PRT table is computed on the fly. We can drastically reduce the
execution of the _PRT method if we return a pre-computed table.

Without this patch:
[   51.343484] ACPI Error: Aborting method \_SB.PCI0._PRT due to previous error 
(AE_AML_LOOP_TIMEOUT) (20230628/psparse-529)
[   51.527032] ACPI Error: Method execution failed \_SB.PCI0._PRT due to 
previous error (AE_AML_LOOP_TIMEOUT) (20230628/uteval-68)
[   51.530049] virtio-pci 0000:00:02.0: can't derive routing for PCI INT A
[   51.530797] virtio-pci 0000:00:02.0: PCI INT A: no GSI
[   81.922901] ACPI Error: Aborting method \_SB.PCI0._PRT due to previous error 
(AE_AML_LOOP_TIMEOUT) (20230628/psparse-529)
[   82.103534] ACPI Error: Method execution failed \_SB.PCI0._PRT due to 
previous error (AE_AML_LOOP_TIMEOUT) (20230628/uteval-68)
[   82.106088] virtio-pci 0000:00:04.0: can't derive routing for PCI INT A
[   82.106761] virtio-pci 0000:00:04.0: PCI INT A: no GSI
[  112.192568] ACPI Error: Aborting method \_SB.PCI0._PRT due to previous error 
(AE_AML_LOOP_TIMEOUT) (20230628/psparse-529)
[  112.486687] ACPI Error: Method execution failed \_SB.PCI0._PRT due to 
previous error (AE_AML_LOOP_TIMEOUT) (20230628/uteval-68)
[  112.489554] virtio-pci 0000:00:05.0: can't derive routing for PCI INT A
[  112.490027] virtio-pci 0000:00:05.0: PCI INT A: no GSI
[  142.559448] ACPI Error: Aborting method \_SB.PCI0._PRT due to previous error 
(AE_AML_LOOP_TIMEOUT) (20230628/psparse-529)
[  142.718596] ACPI Error: Method execution failed \_SB.PCI0._PRT due to 
previous error (AE_AML_LOOP_TIMEOUT) (20230628/uteval-68)
[  142.722889] virtio-pci 0000:00:06.0: can't derive routing for PCI INT A
[  142.724578] virtio-pci 0000:00:06.0: PCI INT A: no GSI

With this patch:
[   22.938076] ACPI: \_SB_.LNKB: Enabled at IRQ 10
[   24.214002] ACPI: \_SB_.LNKD: Enabled at IRQ 11
[   25.465170] ACPI: \_SB_.LNKA: Enabled at IRQ 10
[   27.944920] ACPI: \_SB_.LNKC: Enabled at IRQ 11

ACPI disassembly:
        Scope (PCI0)
        {
            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
            {
                Return (Package (0x80)
                {
                    Package (0x04)
                    {
                        0xFFFF,
                        Zero,
                        LNKD,
                        Zero
                    },

                    Package (0x04)
                    {
                        0xFFFF,
                        One,
                        LNKA,
                        Zero
                    },

                    Package (0x04)
                    {
                        0xFFFF,
                        0x02,
                        LNKB,
                        Zero
                    },

                    Package (0x04)
                    {
                        0xFFFF,
                        0x03,
                        LNKC,
                        Zero
                    },

                    Package (0x04)
                    {
                        0x0001FFFF,
                        Zero,
                        LNKS,
                        Zero
                    },
Context: 
https://lore.kernel.org/virtualization/20240417145544.38d7b482@imammedo.users.ipa.redhat.com/T/#t

Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20240814115736.1580337-3-ribalda@chromium.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: a6896ebc8ff8dadef391f6fe4f8fd4d38bc7d538
      
https://github.com/qemu/qemu/commit/a6896ebc8ff8dadef391f6fe4f8fd4d38bc7d538
  Author: Ricardo Ribalda <ribalda@chromium.org>
  Date:   2024-09-11 (Wed, 11 Sep 2024)

  Changed paths:
    M tests/data/acpi/x86/pc/DSDT
    M tests/data/acpi/x86/pc/DSDT.acpierst
    M tests/data/acpi/x86/pc/DSDT.acpihmat
    M tests/data/acpi/x86/pc/DSDT.bridge
    M tests/data/acpi/x86/pc/DSDT.cphp
    M tests/data/acpi/x86/pc/DSDT.dimmpxm
    M tests/data/acpi/x86/pc/DSDT.hpbridge
    M tests/data/acpi/x86/pc/DSDT.hpbrroot
    M tests/data/acpi/x86/pc/DSDT.ipmikcs
    M tests/data/acpi/x86/pc/DSDT.memhp
    M tests/data/acpi/x86/pc/DSDT.nohpet
    M tests/data/acpi/x86/pc/DSDT.numamem
    M tests/data/acpi/x86/pc/DSDT.roothp
    M tests/data/acpi/x86/q35/DSDT.cxl
    M tests/data/acpi/x86/q35/DSDT.viot
    M tests/qtest/bios-tables-test-allowed-diff.h

  Log Message:
  -----------
  tests/acpi: pc: update golden masters for DSDT

Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
Message-Id: <20240814115736.1580337-4-ribalda@chromium.org>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 6166799f698512ab35e216b4ff4f7156f47923c6
      
https://github.com/qemu/qemu/commit/6166799f698512ab35e216b4ff4f7156f47923c6
  Author: zuoboqun <zuoboqun@baidu.com>
  Date:   2024-09-11 (Wed, 11 Sep 2024)

  Changed paths:
    M hw/net/vhost_net.c
    M hw/virtio/vhost.c
    M include/hw/virtio/vhost.h

  Log Message:
  -----------
  vhost_net: configure all host notifiers in a single MR transaction

This allows the vhost_net device which has multiple virtqueues to batch
the setup of all its host notifiers. This significantly reduces the
vhost_net device starting and stoping time, e.g. the time spend
on enabling notifiers reduce from 630ms to 75ms and the time spend on
disabling notifiers reduce from 441ms to 45ms for a VM with 192 vCPUs
and 15 vhost-user-net devices (64vq per device) in our case.

Signed-off-by: zuoboqun <zuoboqun@baidu.com>
Message-Id: <20240816070835.8309-1-zuoboqun@baidu.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: ffa8a3e3b2e6ff017113b98d500d6a9e05b1560a
      
https://github.com/qemu/qemu/commit/ffa8a3e3b2e6ff017113b98d500d6a9e05b1560a
  Author: Gao Shiyuan <gaoshiyuan@baidu.com>
  Date:   2024-09-11 (Wed, 11 Sep 2024)

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

  Log Message:
  -----------
  virtio-pci: Add lookup subregion of VirtIOPCIRegion MR

Now virtio_address_space_lookup only lookup common/isr/device/notify
MR and exclude their subregions.

When VHOST_USER_PROTOCOL_F_HOST_NOTIFIER enable, the notify MR has
host-notifier subregions and we need use host-notifier MR to
notify the hardware accelerator directly instead of eventfd notify.

Further more, maybe common/isr/device MR also has subregions in
the future, so need memory_region_find for each MR incluing
their subregions.

Add lookup subregion of VirtIOPCIRegion MR instead of only lookup container MR.

Fixes: a93c8d8 ("virtio-pci: Replace modern_as with direct access to 
modern_bar")
Co-developed-by: Zuo Boqun <zuoboqun@baidu.com>
Signed-off-by: Gao Shiyuan <gaoshiyuan@baidu.com>
Signed-off-by: Zuo Boqun <zuoboqun@baidu.com>
Message-Id: <20240903120304.97833-1-gaoshiyuan@baidu.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: d29b7f3dd4f95da7173b3f0fb58a7d4dbb093f92
      
https://github.com/qemu/qemu/commit/d29b7f3dd4f95da7173b3f0fb58a7d4dbb093f92
  Author: peng guo <engguopeng@buaa.edu.cn>
  Date:   2024-09-11 (Wed, 11 Sep 2024)

  Changed paths:
    M hw/cxl/cxl-mailbox-utils.c

  Log Message:
  -----------
  hw/cxl: fix physical address field in get scan media results output

When using the mailbox command get scan media results, the scan media
restart physical address field in the ouput palyload is not 64-byte
aligned.

This patch removed the error source of the restart physical address.

The Scan Media Restart Physical Address is the location from which the
host should restart the Scan Media operation. [5:0] bits are reserved.
Refer to CXL spec r3.1 Table 8-146

Fixes: 89b5cfcc31e6 ("hw/cxl: Add get scan media results cmd support")
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Link: 
https://lore.kernel.org/linux-cxl/20240819154206.16456-1-engguopeng@buaa.edu.cn/
Signed-off-by: peng guo <engguopeng@buaa.edu.cn>
Message-Id: <20240825102212.3871-1-engguopeng@buaa.edu.cn>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 7fc6611cad3e9627b23ce83e550b668abba6c886
      
https://github.com/qemu/qemu/commit/7fc6611cad3e9627b23ce83e550b668abba6c886
  Author: Volker Rümelin <vr_qemu@t-online.de>
  Date:   2024-09-11 (Wed, 11 Sep 2024)

  Changed paths:
    M hw/audio/trace-events
    M hw/audio/virtio-snd.c

  Log Message:
  -----------
  hw/audio/virtio-sound: fix heap buffer overflow

Currently, the guest may write to the device configuration space,
whereas the virtio sound device specification in chapter 5.14.4
clearly states that the fields in the device configuration space
are driver-read-only.

Remove the set_config function from the virtio_snd class.

This also prevents a heap buffer overflow. See QEMU issue #2296.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2296
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Message-Id: <20240901130112.8242-1-vr_qemu@t-online.de>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 95b717a8154b955de2782305f305b63f357b0576
      
https://github.com/qemu/qemu/commit/95b717a8154b955de2782305f305b63f357b0576
  Author: David Hildenbrand <david@redhat.com>
  Date:   2024-09-11 (Wed, 11 Sep 2024)

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

  Log Message:
  -----------
  virtio-mem: don't warn about THP sizes on a kernel without THP support

If the config directory in sysfs does not exist at all, we are dealing
with a system that does not support THPs. Simply use 1 MiB block size
then, instead of warning "Could not detect THP size, falling back to
..." and falling back to the default THP size.

Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Gavin Shan <gshan@redhat.com>
Cc: Juraj Marcin <jmarcin@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20240910163433.2100295-1-david@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 6e3c2d58e967cde3dadae298e81c5e8eb9fb9080
      
https://github.com/qemu/qemu/commit/6e3c2d58e967cde3dadae298e81c5e8eb9fb9080
  Author: Dominic Prinz <git@dprinz.de>
  Date:   2024-09-11 (Wed, 11 Sep 2024)

  Changed paths:
    M hw/acpi/ich9.c
    A hw/acpi/ich9_timer.c
    M hw/acpi/meson.build
    M hw/i386/pc.c
    M hw/isa/lpc_ich9.c
    M include/hw/acpi/ich9.h
    A include/hw/acpi/ich9_timer.h
    M include/hw/southbridge/ich9.h

  Log Message:
  -----------
  hw/acpi/ich9: Add periodic and swsmi timer

This patch implements the periodic and the swsmi ICH9 chipset timers. They are
especially useful when prototyping UEFI firmware (e.g. with EDK2's OVMF)
using QEMU.

For backwards compatibility, the compat properties "x-smi-swsmi-timer",
and "x-smi-periodic-timer" are introduced.

Additionally, writes to the SMI_STS register are enabled for the
corresponding two bits using a write mask to make future work easier.

Signed-off-by: Dominic Prinz <git@dprinz.de>
Message-Id: 
<1d90ea69e01ab71a0f2ced116801dc78e04f4448.1725991505.git.git@dprinz.de>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>


  Commit: 3baa3c9d62bb35904cf6dadbf152922d87f06e8f
      
https://github.com/qemu/qemu/commit/3baa3c9d62bb35904cf6dadbf152922d87f06e8f
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M hw/acpi/ich9.c
    A hw/acpi/ich9_timer.c
    M hw/acpi/meson.build
    M hw/audio/trace-events
    M hw/audio/virtio-snd.c
    M hw/core/irq.c
    M hw/cxl/cxl-mailbox-utils.c
    M hw/display/vhost-user-gpu.c
    M hw/i386/acpi-build.c
    M hw/i386/intel_iommu.c
    M hw/i386/intel_iommu_internal.h
    M hw/i386/pc.c
    M hw/isa/lpc_ich9.c
    M hw/isa/vt82c686.c
    M hw/net/vhost_net.c
    M hw/net/virtio-net.c
    M hw/pci/pci-hmp-cmds.c
    M hw/pci/pci.c
    M hw/virtio/vhost.c
    M hw/virtio/virtio-crypto.c
    M hw/virtio/virtio-mem.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio.c
    M include/hw/acpi/ich9.h
    A include/hw/acpi/ich9_timer.h
    M include/hw/irq.h
    M include/hw/southbridge/ich9.h
    M include/hw/virtio/vhost.h
    M include/hw/virtio/virtio.h
    M tests/data/acpi/x86/pc/DSDT
    M tests/data/acpi/x86/pc/DSDT.acpierst
    M tests/data/acpi/x86/pc/DSDT.acpihmat
    M tests/data/acpi/x86/pc/DSDT.bridge
    M tests/data/acpi/x86/pc/DSDT.cphp
    M tests/data/acpi/x86/pc/DSDT.dimmpxm
    M tests/data/acpi/x86/pc/DSDT.hpbridge
    M tests/data/acpi/x86/pc/DSDT.hpbrroot
    M tests/data/acpi/x86/pc/DSDT.ipmikcs
    M tests/data/acpi/x86/pc/DSDT.memhp
    M tests/data/acpi/x86/pc/DSDT.nohpet
    M tests/data/acpi/x86/pc/DSDT.numamem
    M tests/data/acpi/x86/pc/DSDT.roothp
    M tests/data/acpi/x86/q35/DSDT.cxl
    M tests/data/acpi/x86/q35/DSDT.viot

  Log Message:
  -----------
  Merge tag 'for_upstream' of https://git.kernel.org/pub/scm/virt/kvm/mst/qemu 
into staging

virtio,pc,pci: features, fixes, cleanups

i286 acpi speedup by precomputing _PRT by Ricardo Ribalda
vhost_net speedup by using MR transactions by Zuo Boqun
ich9 gained support for periodic and swsmi timer by Dominic Prinz

Fixes, cleanups all over the place.

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

# -----BEGIN PGP SIGNATURE-----
#
# iQFDBAABCAAtFiEEXQn9CHHI+FuUyooNKB8NuNKNVGkFAmbhoCUPHG1zdEByZWRo
# YXQuY29tAAoJECgfDbjSjVRptpUH/iR5AmJFpvAItqlPOvJiYDEch46C73tyrSws
# Kk/1EbGSL7mFFD5sfdSSV4Rw8CQBsmM/Dt5VDkJKsWnOLjkBQ2CYH0MYHktnrKcJ
# LlSk32HnY5p1DsXnJhgm5M7St8T3mV/oFdJCJAFgCmpx5uT8IRLrKETN8+30OaiY
# xo35xAKOAS296+xsWeVubKkMq7H4y2tdZLE/22gb8rlA8d96BJIeVLQ3y3IjeUPR
# 24q6c7zpObzGhYNZ/PzAKOn+YcVsV/lLAzKRZJTzTUPyG24BcjJTyyr/zNSYAgfk
# lLXzIZID3GThBmrCAiDZ1z6sfo3MRg2wNS/FBXtK6fPIuFxed+8=
# =ySRy
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 11 Sep 2024 14:50:29 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

* tag 'for_upstream' of https://git.kernel.org/pub/scm/virt/kvm/mst/qemu:
  hw/acpi/ich9: Add periodic and swsmi timer
  virtio-mem: don't warn about THP sizes on a kernel without THP support
  hw/audio/virtio-sound: fix heap buffer overflow
  hw/cxl: fix physical address field in get scan media results output
  virtio-pci: Add lookup subregion of VirtIOPCIRegion MR
  vhost_net: configure all host notifiers in a single MR transaction
  tests/acpi: pc: update golden masters for DSDT
  hw/i386/acpi-build: Return a pre-computed _PRT table
  tests/acpi: pc: allow DSDT acpi table changes
  intel_iommu: Make PASID-cache and PIOTLB type invalid in legacy mode
  intel_iommu: Fix invalidation descriptor type field
  virtio: rename virtio_split_packed_update_used_idx
  hw/pci/pci-hmp-cmds: Avoid displaying bogus size in 'info pci'
  pci: don't skip function 0 occupancy verification for devfn auto assign
  hw/isa/vt82c686.c: Embed i8259 irq in device state instead of allocating
  hw: Move declaration of IRQState to header and add init function
  virtio: Always reset vhost devices
  virtio: Allow .get_vhost() without vhost_started

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


Compare: https://github.com/qemu/qemu/compare/4b7ea3307445...3baa3c9d62bb

To unsubscribe from these emails, change your notification settings at 
https://github.com/qemu/qemu/settings/notifications



reply via email to

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