qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for-1.7] vfio-pci: Fix multifunction=on


From: Bandan Das
Subject: Re: [Qemu-devel] [PATCH for-1.7] vfio-pci: Fix multifunction=on
Date: Wed, 13 Nov 2013 18:25:58 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

Alex Williamson <address@hidden> writes:

> When an assigned device is initialized it copies the device config
> space into the emulated config space.  Unfortunately multifunction is
> setup prior to the device initfn and gets clobbered.  We need to
> restore it just like pci-assign does.
>
> Signed-off-by: Alex Williamson <address@hidden>
> Cc: address@hidden
> ---
>
> Anthony, please apply directly or let me know if you'd prefer a pull
> request.  Thanks
>
>  hw/misc/vfio.c |    7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/hw/misc/vfio.c b/hw/misc/vfio.c
> index fe95e03..f7f8a19 100644
> --- a/hw/misc/vfio.c
> +++ b/hw/misc/vfio.c
> @@ -3568,6 +3568,13 @@ static int vfio_initfn(PCIDevice *pdev)
>      vdev->emulated_config_bits[PCI_HEADER_TYPE] =
>                                                PCI_HEADER_TYPE_MULTI_FUNCTION;
>  
> +    /* Restore or clear multifunction, this is always controlled by QEMU */
> +    if (vdev->pdev.cap_present & QEMU_PCI_CAP_MULTIFUNCTION) {
> +        vdev->pdev.config[PCI_HEADER_TYPE] |= PCI_HEADER_TYPE_MULTI_FUNCTION;
> +    } else {
> +        vdev->pdev.config[PCI_HEADER_TYPE] &= 
> ~PCI_HEADER_TYPE_MULTI_FUNCTION;
> +    }
> +
>      /*
>       * Clear host resource mapping info.  If we choose not to register a
>       * BAR, such as might be the case with the option ROM, we can get

Reviewed-by: Bandan Das <address@hidden>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]