[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 02/17] hw/i386/amd_iommu: Omit errp for pci_add_capability
From: |
Markus Armbruster |
Subject: |
Re: [PATCH v2 02/17] hw/i386/amd_iommu: Omit errp for pci_add_capability |
Date: |
Tue, 25 Oct 2022 14:23:11 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
Akihiko Odaki <akihiko.odaki@daynix.com> writes:
> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
> ---
> hw/i386/amd_iommu.c | 21 ++++-----------------
> 1 file changed, 4 insertions(+), 17 deletions(-)
>
> diff --git a/hw/i386/amd_iommu.c b/hw/i386/amd_iommu.c
> index 725f69095b..8a88cbea0a 100644
> --- a/hw/i386/amd_iommu.c
> +++ b/hw/i386/amd_iommu.c
> @@ -1539,7 +1539,6 @@ static void amdvi_sysbus_reset(DeviceState *dev)
>
> static void amdvi_sysbus_realize(DeviceState *dev, Error **errp)
> {
> - int ret = 0;
> AMDVIState *s = AMD_IOMMU_DEVICE(dev);
> MachineState *ms = MACHINE(qdev_get_machine());
> PCMachineState *pcms = PC_MACHINE(ms);
X86MachineState *x86ms = X86_MACHINE(ms);
PCIBus *bus = pcms->bus;
s->iotlb = g_hash_table_new_full(amdvi_uint64_hash,
amdvi_uint64_equal, g_free, g_free);
> @@ -1553,23 +1552,11 @@ static void amdvi_sysbus_realize(DeviceState *dev,
> Error **errp)
> if (!qdev_realize(DEVICE(&s->pci), &bus->qbus, errp)) {
> return;
> }
> - ret = pci_add_capability(&s->pci.dev, AMDVI_CAPAB_ID_SEC, 0,
> - AMDVI_CAPAB_SIZE, errp);
> - if (ret < 0) {
> - return;
> - }
> - s->capab_offset = ret;
> + s->capab_offset = pci_add_capability(&s->pci.dev, AMDVI_CAPAB_ID_SEC, 0,
> + AMDVI_CAPAB_SIZE);
>
> - ret = pci_add_capability(&s->pci.dev, PCI_CAP_ID_MSI, 0,
> - AMDVI_CAPAB_REG_SIZE, errp);
> - if (ret < 0) {
> - return;
> - }
> - ret = pci_add_capability(&s->pci.dev, PCI_CAP_ID_HT, 0,
> - AMDVI_CAPAB_REG_SIZE, errp);
> - if (ret < 0) {
> - return;
> - }
> + pci_add_capability(&s->pci.dev, PCI_CAP_ID_MSI, 0, AMDVI_CAPAB_REG_SIZE);
> + pci_add_capability(&s->pci.dev, PCI_CAP_ID_HT, 0, AMDVI_CAPAB_REG_SIZE);
>
> /* Pseudo address space under root PCI bus. */
> x86ms->ioapic_as = amdvi_host_dma_iommu(bus, s, AMDVI_IOAPIC_SB_DEVID);
Your patch replaces error handling by abort(). The commit message
should explain why this is okay.
It is, because these are programming errors, and aborting on programming
errors is appropriate.
Moreover, the error handling is incorrect: it leaks s->iotlb. To be clear:
replacing it would be okay even if it cleaned up properly.
The other patches also need to explain. Yes, this repetitive, but
anyone looking at one of these commits later will be grateful. Yes,
they could find an explanation in PATCH 01. If they find it in git
history. Each commit should make sense on its own whenever practical.
The explanation will be a bit more involved for device assignment (PATCH
15, maybe more), where we need to point out that the caller guards
against these errors.
- [PATCH v2 00/17] pci: Abort if pci_add_capability fails, Akihiko Odaki, 2022/10/22
- [PATCH v2 01/17] pci: Allow to omit errp for pci_add_capability, Akihiko Odaki, 2022/10/22
- [PATCH v2 02/17] hw/i386/amd_iommu: Omit errp for pci_add_capability, Akihiko Odaki, 2022/10/22
- Re: [PATCH v2 02/17] hw/i386/amd_iommu: Omit errp for pci_add_capability,
Markus Armbruster <=
- [PATCH v2 03/17] ahci: Omit errp for pci_add_capability, Akihiko Odaki, 2022/10/22
- [PATCH v2 04/17] e1000e: Omit errp for pci_add_capability, Akihiko Odaki, 2022/10/22
- [PATCH v2 05/17] eepro100: Omit errp for pci_add_capability, Akihiko Odaki, 2022/10/22
- [PATCH v2 06/17] hw/nvme: Omit errp for pci_add_capability, Akihiko Odaki, 2022/10/22
- [PATCH v2 07/17] msi: Omit errp for pci_add_capability, Akihiko Odaki, 2022/10/22
- [PATCH v2 08/17] hw/pci/pci_bridge: Omit errp for pci_add_capability, Akihiko Odaki, 2022/10/22
- [PATCH v2 09/17] pcie: Omit errp for pci_add_capability, Akihiko Odaki, 2022/10/22
- [PATCH v2 10/17] pci/shpc: Omit errp for pci_add_capability, Akihiko Odaki, 2022/10/22
- [PATCH v2 11/17] msix: Omit errp for pci_add_capability, Akihiko Odaki, 2022/10/22