[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v8 13/15] hw/pci: Use UINT32_MAX as a default value for romba
From: |
Markus Armbruster |
Subject: |
Re: [PATCH v8 13/15] hw/pci: Use UINT32_MAX as a default value for rombar |
Date: |
Wed, 28 Feb 2024 13:36:57 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Akihiko Odaki <akihiko.odaki@daynix.com> writes:
> Currently there is no way to distinguish the case that rombar is
> explicitly specified as 1 and the case that rombar is not specified.
>
> Set rombar UINT32_MAX by default to distinguish these cases just as it
> is done for addr and romsize. It was confirmed that changing the default
> value to UINT32_MAX will not change the behavior by looking at
> occurences of rom_bar.
>
> $ git grep -w rom_bar
> hw/display/qxl.c:328: QXLRom *rom = memory_region_get_ram_ptr(&d->rom_bar);
> hw/display/qxl.c:431: qxl_set_dirty(&qxl->rom_bar, 0, qxl->rom_size);
> hw/display/qxl.c:1048: QXLRom *rom =
> memory_region_get_ram_ptr(&qxl->rom_bar);
> hw/display/qxl.c:2131: memory_region_init_rom(&qxl->rom_bar, OBJECT(qxl),
> "qxl.vrom",
> hw/display/qxl.c:2154: PCI_BASE_ADDRESS_SPACE_MEMORY, &qxl->rom_bar);
> hw/display/qxl.h:101: MemoryRegion rom_bar;
> hw/pci/pci.c:74: DEFINE_PROP_UINT32("rombar", PCIDevice, rom_bar, 1),
> hw/pci/pci.c:2329: if (!pdev->rom_bar) {
> hw/vfio/pci.c:1019: if (vdev->pdev.romfile || !vdev->pdev.rom_bar) {
> hw/xen/xen_pt_load_rom.c:29: if (dev->romfile || !dev->rom_bar) {
> include/hw/pci/pci_device.h:150: uint32_t rom_bar;
>
> rom_bar refers to a different variable in qxl. It is only tested if
> the value is 0 or not in the other places.
>
> If a user explicitly set UINT32_MAX, we still cannot distinguish that
> from the implicit default. However, it is unlikely to be a problem as
> nobody would type literal UINT32_MAX (0xffffffff or 4294967295) by
> chance.
>
> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Not exactly elegant, but I believe we have similar "default value means
not set by user (good enough because the default value is sufficiently
odd)" logic elsewhere.
Reviewed-by: Markus Armbruster <armbru@redhat.com>
- [PATCH v8 06/15] hw/pci: Rename has_power to enabled, (continued)
- [PATCH v8 06/15] hw/pci: Rename has_power to enabled, Akihiko Odaki, 2024/02/28
- [PATCH v8 07/15] pcie_sriov: Do not manually unrealize, Akihiko Odaki, 2024/02/28
- [PATCH v8 05/15] hw/pci: Always call pcie_sriov_pf_reset(), Akihiko Odaki, 2024/02/28
- [PATCH v8 08/15] pcie_sriov: Reuse SR-IOV VF device instances, Akihiko Odaki, 2024/02/28
- [PATCH v8 09/15] pcie_sriov: Release VFs failed to realize, Akihiko Odaki, 2024/02/28
- [PATCH v8 10/15] pcie_sriov: Remove num_vfs from PCIESriovPF, Akihiko Odaki, 2024/02/28
- [PATCH v8 11/15] pcie_sriov: Register VFs after migration, Akihiko Odaki, 2024/02/28
- [PATCH v8 12/15] hw/pci: Replace -1 with UINT32_MAX for romsize, Akihiko Odaki, 2024/02/28
- [PATCH v8 13/15] hw/pci: Use UINT32_MAX as a default value for rombar, Akihiko Odaki, 2024/02/28
- Re: [PATCH v8 13/15] hw/pci: Use UINT32_MAX as a default value for rombar,
Markus Armbruster <=
- [PATCH v8 14/15] hw/pci: Determine if rombar is explicitly enabled, Akihiko Odaki, 2024/02/28
- [PATCH v8 15/15] hw/qdev: Remove opts member, Akihiko Odaki, 2024/02/28