[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 2/2] cpu/core: Fix "help" of CPU core device types
From: |
Eduardo Habkost |
Subject: |
Re: [PATCH 2/2] cpu/core: Fix "help" of CPU core device types |
Date: |
Fri, 9 Apr 2021 16:04:42 -0400 |
On Fri, Apr 09, 2021 at 06:03:39PM +0200, Greg Kurz wrote:
> Calling qdev_get_machine() from a QOM instance_init function is
> fragile because we can't be sure the machine object actually
> exists. And this happens to break when passing ",help" on the
> command line to get the list of properties for a CPU core
> device types :
>
> $ ./qemu-system-ppc64 -device power8_v2.0-spapr-cpu-core,help
> qemu-system-ppc64: ../../hw/core/machine.c:1290:
> qdev_get_machine: Assertion `machine != NULL' failed.
> Aborted (core dumped)
>
> This used to work before QEMU 5.0, but commit 3df261b6676b
> unwillingly introduced a subtle regression : the above command
> line needs to create an instance but the instance_init function
> of the base class calls qdev_get_machine() before
> qemu_create_machine() has been called, which is a programming bug.
>
> Use current_machine instead. It is okay to skip the setting of
> nr_thread in this case since only its type is displayed.
>
> Reported-by: Thomas Huth <thuth@redhat.com>
> Fixes: 3df261b6676b ("softmmu/vl.c: Handle '-cpu help' and '-device help'
> before 'no default machine'")
> Cc: peter.maydell@linaro.org
> Signed-off-by: Greg Kurz <groug@kaod.org>
Thanks! I'm queueing this one (without patch 1/2) for QEMU 6.0.
--
Eduardo
- Re: [PATCH 1/2] qdev: Separate implementations of qdev_get_machine() for user and system, (continued)
- Re: [PATCH 1/2] qdev: Separate implementations of qdev_get_machine() for user and system, Eduardo Habkost, 2021/04/14
- Re: [PATCH 1/2] qdev: Separate implementations of qdev_get_machine() for user and system, Philippe Mathieu-Daudé, 2021/04/15
- Re: [PATCH 1/2] qdev: Separate implementations of qdev_get_machine() for user and system, Greg Kurz, 2021/04/15
- Re: [PATCH 1/2] qdev: Separate implementations of qdev_get_machine() for user and system, Philippe Mathieu-Daudé, 2021/04/15
- Re: [PATCH 1/2] qdev: Separate implementations of qdev_get_machine() for user and system, Greg Kurz, 2021/04/15
- Re: [PATCH 1/2] qdev: Separate implementations of qdev_get_machine() for user and system, Philippe Mathieu-Daudé, 2021/04/15
- Re: [PATCH 1/2] qdev: Separate implementations of qdev_get_machine() for user and system, Greg Kurz, 2021/04/16
- Re: [PATCH 1/2] qdev: Separate implementations of qdev_get_machine() for user and system, Thomas Huth, 2021/04/19
[PATCH 2/2] cpu/core: Fix "help" of CPU core device types, Greg Kurz, 2021/04/09