[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 04/29] memory: Fix type of IOMMUMemoryRegionC
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v2 04/29] memory: Fix type of IOMMUMemoryRegionClass member @parent_class |
Date: |
Wed, 7 Aug 2019 12:16:26 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 |
On 07/08/19 12:11, Philippe Mathieu-Daudé wrote:
> On 8/6/19 5:14 PM, Markus Armbruster wrote:
>> TYPE_IOMMU_MEMORY_REGION is a direct subtype of TYPE_MEMORY_REGION.
>> Its instance struct is IOMMUMemoryRegion, and its first member is a
>> MemoryRegion. Correct. Its class struct is IOMMUMemoryRegionClass,
>> and its first member is a DeviceClass. Wrong. Messed up when commit
>> 1221a474676 introduced the QOM type. It even included hw/qdev-core.h
>> just for that.
>>
>> TYPE_MEMORY_REGION doesn't bother to define a class struct. This is
>> fine, it simply defaults to its super-type TYPE_OBJECT's class struct
>> ObjectClass. Changing IOMMUMemoryRegionClass's first member's type to
>> ObjectClass would be a minimal fix, if a bit brittle: if
>> TYPE_MEMORY_REGION ever acquired own class struct, we'd have to update
>> IOMMUMemoryRegionClass to use it.
>>
>> Fix it the clean and robust way instead: give TYPE_MEMORY_REGION its
>> own class struct MemoryRegionClass now, and use it for
>> IOMMUMemoryRegionClass's first member.
>>
>> Revert the include of hw/qdev-core.h, and fix the few files that have
>> come to rely on it.
>>
>> Cc: Paolo Bonzini <address@hidden>
>> Signed-off-by: Markus Armbruster <address@hidden>
>> Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
>
> Tested-by: Philippe Mathieu-Daudé <address@hidden>
Acked-by: Paolo Bonzini <address@hidden>
- [Qemu-devel] [PATCH v2 00/29] Tame a few "touch this, recompile the world" headers, Markus Armbruster, 2019/08/06
- [Qemu-devel] [PATCH v2 03/29] qapi: Split error.json off common.json, Markus Armbruster, 2019/08/06
- [Qemu-devel] [PATCH v2 04/29] memory: Fix type of IOMMUMemoryRegionClass member @parent_class, Markus Armbruster, 2019/08/06
- [Qemu-devel] [PATCH v2 05/29] queue: Drop superfluous #include qemu/atomic.h, Markus Armbruster, 2019/08/06
- [Qemu-devel] [PATCH v2 02/29] Include generated QAPI headers less, Markus Armbruster, 2019/08/06
- [Qemu-devel] [PATCH v2 09/29] Include migration/qemu-file-types.h a lot less, Markus Armbruster, 2019/08/06