From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46509) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a1Pz6-0003yS-CL for qemu-devel@nongnu.org; Tue, 24 Nov 2015 21:39:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a1Pz3-0000ua-5j for qemu-devel@nongnu.org; Tue, 24 Nov 2015 21:39:04 -0500 Received: from mx1.redhat.com ([209.132.183.28]:36113) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a1Pz2-0000tf-WA for qemu-devel@nongnu.org; Tue, 24 Nov 2015 21:39:01 -0500 References: <1447930344-17625-1-git-send-email-shmulik.ladkani@ravellosystems.com> <1447930344-17625-2-git-send-email-shmulik.ladkani@ravellosystems.com> From: Jason Wang Message-ID: <56551F3B.9020106@redhat.com> Date: Wed, 25 Nov 2015 10:38:51 +0800 MIME-Version: 1.0 In-Reply-To: <1447930344-17625-2-git-send-email-shmulik.ladkani@ravellosystems.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 1/4] vmxnet3: The vmxnet3 device is a PCIE endpoint List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Shmulik Ladkani Cc: Dmitry Fleytman , idan.brown@ravellosystems.com, qemu-devel@nongnu.org On 11/19/2015 06:52 PM, Shmulik Ladkani wrote: > Report the 'express endpoint' capability if on a PCIE bus. > > Signed-off-by: Shmulik Ladkani > --- > hw/net/vmxnet3.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c > index 5e3a233..ed286cc 100644 > --- a/hw/net/vmxnet3.c > +++ b/hw/net/vmxnet3.c > @@ -2233,6 +2233,10 @@ static void vmxnet3_pci_realize(PCIDevice *pci_dev, Error **errp) > VMW_WRPRN("Failed to initialize MSI, configuration is inconsistent."); > } > > + if (pci_bus_is_express(pci_dev->bus)) { > + pcie_endpoint_cap_init(pci_dev, 0); > + } > + > vmxnet3_net_init(s); > > register_savevm(dev, "vmxnet3-msix", -1, 1, > @@ -2568,6 +2572,7 @@ static void vmxnet3_class_init(ObjectClass *class, void *data) > c->class_id = PCI_CLASS_NETWORK_ETHERNET; > c->subsystem_vendor_id = PCI_VENDOR_ID_VMWARE; > c->subsystem_id = PCI_DEVICE_ID_VMWARE_VMXNET3; > + c->is_express = 1; Should we do this conditionally? And how about the migration compatibility? Looks like pcie device is using vmstate_pcie_device instead of vmstate_pci_device, maybe need a new property bit for this. > > dc->reset = vmxnet3_qdev_reset; > dc->vmsd = &vmstate_vmxnet3;