Message ID | 20221022044053.81650-17-akihiko.odaki@daynix.com |
---|---|
State | New |
Headers | show |
Series | pci: Abort if pci_add_capability fails | expand |
Akihiko Odaki <akihiko.odaki@daynix.com> writes: > Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> I get "undefined reference to `pci_add_capability'" link errors. I believe that ... [...] > diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h > index 51fd106f16..2a5d4b329f 100644 > --- a/include/hw/pci/pci.h > +++ b/include/hw/pci/pci.h > @@ -2,7 +2,6 @@ > #define QEMU_PCI_H > > #include "exec/memory.h" > -#include "qapi/error.h" > #include "sysemu/dma.h" > > /* PCI includes legacy ISA access. */ > @@ -391,15 +390,8 @@ void pci_register_vga(PCIDevice *pci_dev, MemoryRegion *mem, > void pci_unregister_vga(PCIDevice *pci_dev); > pcibus_t pci_get_bar_addr(PCIDevice *pci_dev, int region_num); > > -int pci_add_capability_legacy(PCIDevice *pdev, uint8_t cap_id, > - uint8_t offset, uint8_t size, > - Error **errp); > - > -#define PCI_ADD_CAPABILITY_VA(pdev, cap_id, offset, size, errp, ...) \ > - pci_add_capability_legacy(pdev, cap_id, offset, size, errp) > - > -#define pci_add_capability(...) \ > - PCI_ADD_CAPABILITY_VA(__VA_ARGS__, &error_abort) > +uint8_t pci_add_capability(PCIDevice *pdev, uint8_t cap_id, > + uint8_t offset, uint8_t size); > > void pci_del_capability(PCIDevice *pci_dev, uint8_t cap_id, uint8_t cap_size); > ... this part needs go into the next patch. [...]
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c index c37bdc77ea..b393ff01be 100644 --- a/hw/virtio/virtio-pci.c +++ b/hw/virtio/virtio-pci.c @@ -1154,8 +1154,7 @@ static int virtio_pci_add_mem_cap(VirtIOPCIProxy *proxy, PCIDevice *dev = &proxy->pci_dev; int offset; - offset = pci_add_capability(dev, PCI_CAP_ID_VNDR, 0, - cap->cap_len, &error_abort); + offset = pci_add_capability(dev, PCI_CAP_ID_VNDR, 0, cap->cap_len); assert(cap->cap_len >= sizeof *cap); memcpy(dev->config + offset + PCI_CAP_FLAGS, &cap->cap_len, @@ -1864,11 +1863,7 @@ static void virtio_pci_realize(PCIDevice *pci_dev, Error **errp) pcie_endpoint_cap_init(pci_dev, 0); - pos = pci_add_capability(pci_dev, PCI_CAP_ID_PM, 0, - PCI_PM_SIZEOF, errp); - if (pos < 0) { - return; - } + pos = pci_add_capability(pci_dev, PCI_CAP_ID_PM, 0, PCI_PM_SIZEOF); pci_dev->exp.pm_cap = pos; diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h index 51fd106f16..2a5d4b329f 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -2,7 +2,6 @@ #define QEMU_PCI_H #include "exec/memory.h" -#include "qapi/error.h" #include "sysemu/dma.h" /* PCI includes legacy ISA access. */ @@ -391,15 +390,8 @@ void pci_register_vga(PCIDevice *pci_dev, MemoryRegion *mem, void pci_unregister_vga(PCIDevice *pci_dev); pcibus_t pci_get_bar_addr(PCIDevice *pci_dev, int region_num); -int pci_add_capability_legacy(PCIDevice *pdev, uint8_t cap_id, - uint8_t offset, uint8_t size, - Error **errp); - -#define PCI_ADD_CAPABILITY_VA(pdev, cap_id, offset, size, errp, ...) \ - pci_add_capability_legacy(pdev, cap_id, offset, size, errp) - -#define pci_add_capability(...) \ - PCI_ADD_CAPABILITY_VA(__VA_ARGS__, &error_abort) +uint8_t pci_add_capability(PCIDevice *pdev, uint8_t cap_id, + uint8_t offset, uint8_t size); void pci_del_capability(PCIDevice *pci_dev, uint8_t cap_id, uint8_t cap_size); diff --git a/include/hw/virtio/virtio-pci.h b/include/hw/virtio/virtio-pci.h index 2446dcd9ae..9f3736723c 100644 --- a/include/hw/virtio/virtio-pci.h +++ b/include/hw/virtio/virtio-pci.h @@ -141,7 +141,7 @@ struct VirtIOPCIProxy { uint32_t msix_bar_idx; uint32_t modern_io_bar_idx; uint32_t modern_mem_bar_idx; - int config_cap; + uint8_t config_cap; uint32_t flags; bool disable_modern; bool ignore_backend_features;
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> --- hw/virtio/virtio-pci.c | 9 ++------- include/hw/pci/pci.h | 12 ++---------- include/hw/virtio/virtio-pci.h | 2 +- 3 files changed, 5 insertions(+), 18 deletions(-)