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 <shmulik.ladk...@ravellosystems.com>
> ---
>  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;


Reply via email to