Message ID | 1337190610-2149-1-git-send-email-anthony.perard@citrix.com |
---|---|
State | New |
Headers | show |
On Wed, 16 May 2012, Anthony PERARD wrote: > In the context of PV-on-HVM under Xen, the emulated nics are supposed to be > unplug before the guest drivers are initialized, when the guest write to a > specific IO port. > > Without this patch, the guest end up with two nics with the same MAC, the > emulated nic and the PV nic. > > Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> > --- I think that the patch is correct and a good candidate for rc3. Any comments? > hw/xen_platform.c | 5 ++++- > 1 files changed, 4 insertions(+), 1 deletions(-) > > diff --git a/hw/xen_platform.c b/hw/xen_platform.c > index a9c52a6..0214f37 100644 > --- a/hw/xen_platform.c > +++ b/hw/xen_platform.c > @@ -87,7 +87,10 @@ static void unplug_nic(PCIBus *b, PCIDevice *d) > { > if (pci_get_word(d->config + PCI_CLASS_DEVICE) == > PCI_CLASS_NETWORK_ETHERNET) { > - qdev_unplug(&(d->qdev), NULL); > + /* Until qdev_free includes a call to object_unparent, we call it here > + */ > + object_unparent(&d->qdev.parent_obj); > + qdev_free(&d->qdev); > } > } > > -- > Anthony PERARD >
Il 17/05/2012 12:35, Stefano Stabellini ha scritto: > On Wed, 16 May 2012, Anthony PERARD wrote: >> In the context of PV-on-HVM under Xen, the emulated nics are supposed to be >> unplug before the guest drivers are initialized, when the guest write to a >> specific IO port. >> >> Without this patch, the guest end up with two nics with the same MAC, the >> emulated nic and the PV nic. >> >> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> >> --- > > I think that the patch is correct and a good candidate for rc3. Any > comments? Yes, it's certainly nice when patches become as simple as this one. :) Acked-by: Paolo Bonzini <pbonzini@redhat.com> > >> hw/xen_platform.c | 5 ++++- >> 1 files changed, 4 insertions(+), 1 deletions(-) >> >> diff --git a/hw/xen_platform.c b/hw/xen_platform.c >> index a9c52a6..0214f37 100644 >> --- a/hw/xen_platform.c >> +++ b/hw/xen_platform.c >> @@ -87,7 +87,10 @@ static void unplug_nic(PCIBus *b, PCIDevice *d) >> { >> if (pci_get_word(d->config + PCI_CLASS_DEVICE) == >> PCI_CLASS_NETWORK_ETHERNET) { >> - qdev_unplug(&(d->qdev), NULL); >> + /* Until qdev_free includes a call to object_unparent, we call it here >> + */ >> + object_unparent(&d->qdev.parent_obj); >> + qdev_free(&d->qdev); >> } >> } >> >> -- >> Anthony PERARD >>
diff --git a/hw/xen_platform.c b/hw/xen_platform.c index a9c52a6..0214f37 100644 --- a/hw/xen_platform.c +++ b/hw/xen_platform.c @@ -87,7 +87,10 @@ static void unplug_nic(PCIBus *b, PCIDevice *d) { if (pci_get_word(d->config + PCI_CLASS_DEVICE) == PCI_CLASS_NETWORK_ETHERNET) { - qdev_unplug(&(d->qdev), NULL); + /* Until qdev_free includes a call to object_unparent, we call it here + */ + object_unparent(&d->qdev.parent_obj); + qdev_free(&d->qdev); } }
In the context of PV-on-HVM under Xen, the emulated nics are supposed to be unplug before the guest drivers are initialized, when the guest write to a specific IO port. Without this patch, the guest end up with two nics with the same MAC, the emulated nic and the PV nic. Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> --- hw/xen_platform.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)