From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:40263) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SUyHq-0007fV-RL for qemu-devel@nongnu.org; Thu, 17 May 2012 06:50:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SUyHp-0003MD-2s for qemu-devel@nongnu.org; Thu, 17 May 2012 06:50:26 -0400 Received: from mx1.redhat.com ([209.132.183.28]:8923) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SUyHo-0003Lw-Qo for qemu-devel@nongnu.org; Thu, 17 May 2012 06:50:24 -0400 Message-ID: <4FB4D7E3.2080409@redhat.com> Date: Thu, 17 May 2012 12:50:11 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1337190610-2149-1-git-send-email-anthony.perard@citrix.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 1.1 V2] xen: Fix PV-on-HVM List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefano Stabellini Cc: Anthony PERARD , "Michael S. Tsirkin" , QEMU-devel , Anthony Liguori , Xen Devel 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 >> --- > > 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 > >> 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 >>