[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 1/4] hw/xen: only remove peers of PCI NICs on unplug
On Tue, 2023-10-24 at 15:32 +0100, Paul Durrant wrote: > On 17/10/2023 19:25, David Woodhouse wrote: > > From: David Woodhouse <dwmw@xxxxxxxxxxxx> > > > > When the Xen guest asks to unplug *emulated* NICs, it's kind of unhelpful > > also to unplug the peer of the *Xen* PV NIC. > > > > Signed-off-by: David Woodhouse <dwmw@xxxxxxxxxxxx> > > --- > > hw/i386/xen/xen_platform.c | 9 +++++++-- > > 1 file changed, 7 insertions(+), 2 deletions(-) > > > > diff --git a/hw/i386/xen/xen_platform.c b/hw/i386/xen/xen_platform.c > > index 17457ff3de..e2dd1b536a 100644 > > --- a/hw/i386/xen/xen_platform.c > > +++ b/hw/i386/xen/xen_platform.c > > @@ -140,9 +140,14 @@ static void unplug_nic(PCIBus *b, PCIDevice *d, void > > *o) > > /* Remove the peer of the NIC device. Normally, this would be a tap > > device. */ > > static void del_nic_peer(NICState *nic, void *opaque) > > { > > - NetClientState *nc; > > + NetClientState *nc = qemu_get_queue(nic); > > + ObjectClass *klass = module_object_class_by_name(nc->model); > > + > > + /* Only delete peers of PCI NICs that we're about to delete */ > > + if (!klass || !object_class_dynamic_cast(klass, TYPE_PCI_DEVICE)) { > > Would it not be better to test for object_class_dynamic_cast(klass, > TYPE_XEN_DEVICE)? Only if we also change the actual unplug to destroy non-PCI devices too. The only non-PCI device you could have here is an ISA NE2000, I think. Attachment:
smime.p7s
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |