Hmm, no that's not it, still segfault in ovs, but I'll try to see if I can merge that and the workaround I am currently using...
On 7/27/22 19:14, Claudio Fontana wrote: > testing it now... > > Thanks! > > C > > > On 7/27/22 18:14, Michael S. Tsirkin wrote: >> virtio level reset should not affect pci express >> registers such as PM, error or link. >> >> Fixes: 27ce0f3afc ("hw/virtio: fix Power Management Control Register for PCI >> Express virtio devices") >> Fixes: d584f1b9ca ("hw/virtio: fix Link Control Register for PCI Express >> virtio devices") >> Fixes: c2cabb3422 ("hw/virtio: fix error enabling flags in Device Control >> register") >> Cc: "Marcel Apfelbaum" <mar...@redhat.com> >> Signed-off-by: Michael S. Tsirkin <m...@redhat.com> >> --- >> hw/virtio/virtio-pci.c | 9 ++++++++- >> 1 file changed, 8 insertions(+), 1 deletion(-) >> >> diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c >> index 45327f0b31..3189ec014d 100644 >> --- a/hw/virtio/virtio-pci.c >> +++ b/hw/virtio/virtio-pci.c >> @@ -1955,6 +1955,13 @@ static void virtio_pci_reset(DeviceState *qdev) >> proxy->vqs[i].avail[0] = proxy->vqs[i].avail[1] = 0; >> proxy->vqs[i].used[0] = proxy->vqs[i].used[1] = 0; >> } >> +} >> + >> +static void virtio_pci_bus_reset(DeviceState *qdev) >> +{ >> + PCIDevice *dev = PCI_DEVICE(qdev); >> + >> + virtio_pci_reset(qdev); >> >> if (pci_is_express(dev)) { >> pcie_cap_deverr_reset(dev); >> @@ -2022,7 +2029,7 @@ static void virtio_pci_class_init(ObjectClass *klass, >> void *data) >> k->class_id = PCI_CLASS_OTHERS; >> device_class_set_parent_realize(dc, virtio_pci_dc_realize, >> &vpciklass->parent_dc_realize); >> - dc->reset = virtio_pci_reset; >> + dc->reset = virtio_pci_bus_reset; >> } >> >> static const TypeInfo virtio_pci_info = { > >