* [PATCH v2 1/5] virtio-mem: Fix definition of VirtIOMEMClass
2025-06-04 11:53 [PATCH v2 0/5] Fix definition of classes with wrong parent Zhenzhong Duan
@ 2025-06-04 11:53 ` Zhenzhong Duan
2025-06-04 11:53 ` [PATCH v2 2/5] virtio-pmem: Fix definition of VirtIOPMEMClass Zhenzhong Duan
` (3 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: Zhenzhong Duan @ 2025-06-04 11:53 UTC (permalink / raw)
To: qemu-devel
Cc: chao.p.peng, david, Zhenzhong Duan, Philippe Mathieu-Daudé,
Michael S. Tsirkin
Parent of VirtIOMEMClass is VirtioDeviceClass rather than VirtIODevice.
Fixes: 910b25766b33 ("virtio-mem: Paravirtualized memory hot(un)plug")
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/hw/virtio/virtio-mem.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/hw/virtio/virtio-mem.h b/include/hw/virtio/virtio-mem.h
index bc4f787772..e0ab31b45a 100644
--- a/include/hw/virtio/virtio-mem.h
+++ b/include/hw/virtio/virtio-mem.h
@@ -134,7 +134,7 @@ struct VirtioMemSystemReset {
struct VirtIOMEMClass {
/* private */
- VirtIODevice parent;
+ VirtioDeviceClass parent_class;
/* public */
void (*fill_device_info)(const VirtIOMEM *vmen, VirtioMEMDeviceInfo *vi);
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 2/5] virtio-pmem: Fix definition of VirtIOPMEMClass
2025-06-04 11:53 [PATCH v2 0/5] Fix definition of classes with wrong parent Zhenzhong Duan
2025-06-04 11:53 ` [PATCH v2 1/5] virtio-mem: Fix definition of VirtIOMEMClass Zhenzhong Duan
@ 2025-06-04 11:53 ` Zhenzhong Duan
2025-06-04 12:04 ` David Hildenbrand
2025-06-04 12:34 ` Philippe Mathieu-Daudé
2025-06-04 11:53 ` [PATCH v2 3/5] hw/gpio/aspeed: Fix definition of AspeedGPIOClass Zhenzhong Duan
` (2 subsequent siblings)
4 siblings, 2 replies; 10+ messages in thread
From: Zhenzhong Duan @ 2025-06-04 11:53 UTC (permalink / raw)
To: qemu-devel; +Cc: chao.p.peng, david, Zhenzhong Duan, Michael S. Tsirkin
VirtIOPMEMClass's parent is VirtioDeviceClass rather than VirtIODevice.
Fixes: 5f503cd9f388 ("virtio-pmem: add virtio device")
Suggested-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
---
include/hw/virtio/virtio-pmem.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/hw/virtio/virtio-pmem.h b/include/hw/virtio/virtio-pmem.h
index fc4fd1f7fe..9cce600d0b 100644
--- a/include/hw/virtio/virtio-pmem.h
+++ b/include/hw/virtio/virtio-pmem.h
@@ -36,7 +36,7 @@ struct VirtIOPMEM {
struct VirtIOPMEMClass {
/* private */
- VirtIODevice parent;
+ VirtioDeviceClass parent_class;
/* public */
void (*fill_device_info)(const VirtIOPMEM *pmem, VirtioPMEMDeviceInfo *vi);
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2 2/5] virtio-pmem: Fix definition of VirtIOPMEMClass
2025-06-04 11:53 ` [PATCH v2 2/5] virtio-pmem: Fix definition of VirtIOPMEMClass Zhenzhong Duan
@ 2025-06-04 12:04 ` David Hildenbrand
2025-06-04 12:34 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 10+ messages in thread
From: David Hildenbrand @ 2025-06-04 12:04 UTC (permalink / raw)
To: Zhenzhong Duan, qemu-devel; +Cc: chao.p.peng, Michael S. Tsirkin
On 04.06.25 13:53, Zhenzhong Duan wrote:
> VirtIOPMEMClass's parent is VirtioDeviceClass rather than VirtIODevice.
>
> Fixes: 5f503cd9f388 ("virtio-pmem: add virtio device")
> Suggested-by: David Hildenbrand <david@redhat.com>
Reported-by: might be better, with
Closes:
linking to my mail
> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
> ---
> include/hw/virtio/virtio-pmem.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/hw/virtio/virtio-pmem.h b/include/hw/virtio/virtio-pmem.h
> index fc4fd1f7fe..9cce600d0b 100644
> --- a/include/hw/virtio/virtio-pmem.h
> +++ b/include/hw/virtio/virtio-pmem.h
> @@ -36,7 +36,7 @@ struct VirtIOPMEM {
>
> struct VirtIOPMEMClass {
> /* private */
> - VirtIODevice parent;
> + VirtioDeviceClass parent_class;
Reviewed-by: David Hildenbrand <david@redhat.com>
--
Cheers,
David / dhildenb
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 2/5] virtio-pmem: Fix definition of VirtIOPMEMClass
2025-06-04 11:53 ` [PATCH v2 2/5] virtio-pmem: Fix definition of VirtIOPMEMClass Zhenzhong Duan
2025-06-04 12:04 ` David Hildenbrand
@ 2025-06-04 12:34 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 10+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-06-04 12:34 UTC (permalink / raw)
To: Zhenzhong Duan, qemu-devel; +Cc: chao.p.peng, david, Michael S. Tsirkin
On 4/6/25 13:53, Zhenzhong Duan wrote:
> VirtIOPMEMClass's parent is VirtioDeviceClass rather than VirtIODevice.
>
> Fixes: 5f503cd9f388 ("virtio-pmem: add virtio device")
> Suggested-by: David Hildenbrand <david@redhat.com>
> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
> ---
> include/hw/virtio/virtio-pmem.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 3/5] hw/gpio/aspeed: Fix definition of AspeedGPIOClass
2025-06-04 11:53 [PATCH v2 0/5] Fix definition of classes with wrong parent Zhenzhong Duan
2025-06-04 11:53 ` [PATCH v2 1/5] virtio-mem: Fix definition of VirtIOMEMClass Zhenzhong Duan
2025-06-04 11:53 ` [PATCH v2 2/5] virtio-pmem: Fix definition of VirtIOPMEMClass Zhenzhong Duan
@ 2025-06-04 11:53 ` Zhenzhong Duan
2025-06-04 12:03 ` Cédric Le Goater
2025-06-04 12:35 ` Philippe Mathieu-Daudé
2025-06-04 11:53 ` [PATCH v2 4/5] hw/char/sh_serial: Remove dummy definition of SH_SERIAL class Zhenzhong Duan
2025-06-04 11:54 ` [PATCH v2 5/5] hw/riscv/riscv-iommu: Remove definition of RISCVIOMMU[Pci|Sys]Class Zhenzhong Duan
4 siblings, 2 replies; 10+ messages in thread
From: Zhenzhong Duan @ 2025-06-04 11:53 UTC (permalink / raw)
To: qemu-devel
Cc: chao.p.peng, david, Zhenzhong Duan, Cédric Le Goater,
Peter Maydell, Steven Lee, Troy Lee, Jamin Lin, Andrew Jeffery,
Joel Stanley, open list:ASPEED BMCs
AspeedGPIOClass's parent is SysBusDeviceClass rather than SysBusDevice.
Fixes: 4b7f956862dc ("hw/gpio: Add basic Aspeed GPIO model for AST2400 and AST2500")
Suggested-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
---
include/hw/gpio/aspeed_gpio.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/hw/gpio/aspeed_gpio.h b/include/hw/gpio/aspeed_gpio.h
index e1e6c54333..e6b2fe71b5 100644
--- a/include/hw/gpio/aspeed_gpio.h
+++ b/include/hw/gpio/aspeed_gpio.h
@@ -70,7 +70,7 @@ typedef struct AspeedGPIOReg {
} AspeedGPIOReg;
struct AspeedGPIOClass {
- SysBusDevice parent_obj;
+ SysBusDeviceClass parent_class;
const GPIOSetProperties *props;
uint32_t nr_gpio_pins;
uint32_t nr_gpio_sets;
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2 3/5] hw/gpio/aspeed: Fix definition of AspeedGPIOClass
2025-06-04 11:53 ` [PATCH v2 3/5] hw/gpio/aspeed: Fix definition of AspeedGPIOClass Zhenzhong Duan
@ 2025-06-04 12:03 ` Cédric Le Goater
2025-06-04 12:35 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 10+ messages in thread
From: Cédric Le Goater @ 2025-06-04 12:03 UTC (permalink / raw)
To: Zhenzhong Duan, qemu-devel
Cc: chao.p.peng, david, Peter Maydell, Steven Lee, Troy Lee,
Jamin Lin, Andrew Jeffery, Joel Stanley, open list:ASPEED BMCs
On 6/4/25 13:53, Zhenzhong Duan wrote:
> AspeedGPIOClass's parent is SysBusDeviceClass rather than SysBusDevice.
>
> Fixes: 4b7f956862dc ("hw/gpio: Add basic Aspeed GPIO model for AST2400 and AST2500")
> Suggested-by: David Hildenbrand <david@redhat.com>
> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
omg. This is super old ... version 4.2.
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> include/hw/gpio/aspeed_gpio.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/hw/gpio/aspeed_gpio.h b/include/hw/gpio/aspeed_gpio.h
> index e1e6c54333..e6b2fe71b5 100644
> --- a/include/hw/gpio/aspeed_gpio.h
> +++ b/include/hw/gpio/aspeed_gpio.h
> @@ -70,7 +70,7 @@ typedef struct AspeedGPIOReg {
> } AspeedGPIOReg;
>
> struct AspeedGPIOClass {
> - SysBusDevice parent_obj;
> + SysBusDeviceClass parent_class;
> const GPIOSetProperties *props;
> uint32_t nr_gpio_pins;
> uint32_t nr_gpio_sets;
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 3/5] hw/gpio/aspeed: Fix definition of AspeedGPIOClass
2025-06-04 11:53 ` [PATCH v2 3/5] hw/gpio/aspeed: Fix definition of AspeedGPIOClass Zhenzhong Duan
2025-06-04 12:03 ` Cédric Le Goater
@ 2025-06-04 12:35 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 10+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-06-04 12:35 UTC (permalink / raw)
To: Zhenzhong Duan, qemu-devel
Cc: chao.p.peng, david, Cédric Le Goater, Peter Maydell,
Steven Lee, Troy Lee, Jamin Lin, Andrew Jeffery, Joel Stanley,
open list:ASPEED BMCs
On 4/6/25 13:53, Zhenzhong Duan wrote:
> AspeedGPIOClass's parent is SysBusDeviceClass rather than SysBusDevice.
>
> Fixes: 4b7f956862dc ("hw/gpio: Add basic Aspeed GPIO model for AST2400 and AST2500")
> Suggested-by: David Hildenbrand <david@redhat.com>
> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
> ---
> include/hw/gpio/aspeed_gpio.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 4/5] hw/char/sh_serial: Remove dummy definition of SH_SERIAL class
2025-06-04 11:53 [PATCH v2 0/5] Fix definition of classes with wrong parent Zhenzhong Duan
` (2 preceding siblings ...)
2025-06-04 11:53 ` [PATCH v2 3/5] hw/gpio/aspeed: Fix definition of AspeedGPIOClass Zhenzhong Duan
@ 2025-06-04 11:53 ` Zhenzhong Duan
2025-06-04 11:54 ` [PATCH v2 5/5] hw/riscv/riscv-iommu: Remove definition of RISCVIOMMU[Pci|Sys]Class Zhenzhong Duan
4 siblings, 0 replies; 10+ messages in thread
From: Zhenzhong Duan @ 2025-06-04 11:53 UTC (permalink / raw)
To: qemu-devel
Cc: chao.p.peng, david, Zhenzhong Duan, Yoshinori Sato, Magnus Damm,
Marc-André Lureau, Paolo Bonzini
SH_SERIAL is declared with OBJECT_DECLARE_SIMPLE_TYPE but defined with
OBJECT_DEFINE_TYPE, SHSerialStateClass is also a dummy class which
missed its parent.
Change to use OBJECT_DEFINE_SIMPLE_TYPE and remove SHSerialStateClass.
Fixes: beeb520925d5 ("hw/char/sh_serial: QOM-ify")
Suggested-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
---
hw/char/sh_serial.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/hw/char/sh_serial.c b/hw/char/sh_serial.c
index 6abd80386f..8ccc2234ba 100644
--- a/hw/char/sh_serial.c
+++ b/hw/char/sh_serial.c
@@ -78,9 +78,7 @@ struct SHSerialState {
qemu_irq bri;
};
-typedef struct {} SHSerialStateClass;
-
-OBJECT_DEFINE_TYPE(SHSerialState, sh_serial, SH_SERIAL, SYS_BUS_DEVICE)
+OBJECT_DEFINE_SIMPLE_TYPE(SHSerialState, sh_serial, SH_SERIAL, SYS_BUS_DEVICE)
static void sh_serial_clear_fifo(SHSerialState *s)
{
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 5/5] hw/riscv/riscv-iommu: Remove definition of RISCVIOMMU[Pci|Sys]Class
2025-06-04 11:53 [PATCH v2 0/5] Fix definition of classes with wrong parent Zhenzhong Duan
` (3 preceding siblings ...)
2025-06-04 11:53 ` [PATCH v2 4/5] hw/char/sh_serial: Remove dummy definition of SH_SERIAL class Zhenzhong Duan
@ 2025-06-04 11:54 ` Zhenzhong Duan
4 siblings, 0 replies; 10+ messages in thread
From: Zhenzhong Duan @ 2025-06-04 11:54 UTC (permalink / raw)
To: qemu-devel
Cc: chao.p.peng, david, Zhenzhong Duan, Palmer Dabbelt,
Alistair Francis, Weiwei Li, Daniel Henrique Barboza, Liu Zhiwei,
open list:RISC-V TCG CPUs
RISCVIOMMUPciClass and RISCVIOMMUSysClass are defined with missed
parent class, this may lead to corruption of parent class fields.
It's lucky enough that parent_realize and parent_phases are not
initialized or used until now, so just remove the definitions.
They can be added back when really necessary.
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
---
include/hw/riscv/iommu.h | 6 ++----
hw/riscv/riscv-iommu-pci.c | 6 ------
hw/riscv/riscv-iommu-sys.c | 6 ------
3 files changed, 2 insertions(+), 16 deletions(-)
diff --git a/include/hw/riscv/iommu.h b/include/hw/riscv/iommu.h
index b03339d75c..8a8acfc3f0 100644
--- a/include/hw/riscv/iommu.h
+++ b/include/hw/riscv/iommu.h
@@ -30,14 +30,12 @@ typedef struct RISCVIOMMUState RISCVIOMMUState;
typedef struct RISCVIOMMUSpace RISCVIOMMUSpace;
#define TYPE_RISCV_IOMMU_PCI "riscv-iommu-pci"
-OBJECT_DECLARE_TYPE(RISCVIOMMUStatePci, RISCVIOMMUPciClass, RISCV_IOMMU_PCI)
+OBJECT_DECLARE_SIMPLE_TYPE(RISCVIOMMUStatePci, RISCV_IOMMU_PCI)
typedef struct RISCVIOMMUStatePci RISCVIOMMUStatePci;
-typedef struct RISCVIOMMUPciClass RISCVIOMMUPciClass;
#define TYPE_RISCV_IOMMU_SYS "riscv-iommu-device"
-OBJECT_DECLARE_TYPE(RISCVIOMMUStateSys, RISCVIOMMUSysClass, RISCV_IOMMU_SYS)
+OBJECT_DECLARE_SIMPLE_TYPE(RISCVIOMMUStateSys, RISCV_IOMMU_SYS)
typedef struct RISCVIOMMUStateSys RISCVIOMMUStateSys;
-typedef struct RISCVIOMMUSysClass RISCVIOMMUSysClass;
#define FDT_IRQ_TYPE_EDGE_LOW 1
diff --git a/hw/riscv/riscv-iommu-pci.c b/hw/riscv/riscv-iommu-pci.c
index 1f44eef74e..cdb4a7a8f0 100644
--- a/hw/riscv/riscv-iommu-pci.c
+++ b/hw/riscv/riscv-iommu-pci.c
@@ -68,12 +68,6 @@ typedef struct RISCVIOMMUStatePci {
RISCVIOMMUState iommu; /* common IOMMU state */
} RISCVIOMMUStatePci;
-struct RISCVIOMMUPciClass {
- /*< public >*/
- DeviceRealize parent_realize;
- ResettablePhases parent_phases;
-};
-
/* interrupt delivery callback */
static void riscv_iommu_pci_notify(RISCVIOMMUState *iommu, unsigned vector)
{
diff --git a/hw/riscv/riscv-iommu-sys.c b/hw/riscv/riscv-iommu-sys.c
index 74e76b94a5..e34d00aef6 100644
--- a/hw/riscv/riscv-iommu-sys.c
+++ b/hw/riscv/riscv-iommu-sys.c
@@ -53,12 +53,6 @@ struct RISCVIOMMUStateSys {
uint8_t *msix_pba;
};
-struct RISCVIOMMUSysClass {
- /*< public >*/
- DeviceRealize parent_realize;
- ResettablePhases parent_phases;
-};
-
static uint64_t msix_table_mmio_read(void *opaque, hwaddr addr,
unsigned size)
{
--
2.34.1
^ permalink raw reply related [flat|nested] 10+ messages in thread