qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: Alex Williamson <alex.williamson@redhat.com>,
	qemu-stable@nongnu.org, aliguori@amazon.com
Subject: [Qemu-devel] [PULL 05/11] vfio-pci: Fix multifunction=on
Date: Thu, 21 Nov 2013 17:49:32 +0100	[thread overview]
Message-ID: <1385052578-32352-6-git-send-email-pbonzini@redhat.com> (raw)
In-Reply-To: <1385052578-32352-1-git-send-email-pbonzini@redhat.com>

From: Alex Williamson <alex.williamson@redhat.com>

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.

Cc: qemu-stable@nongnu.org
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 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
-- 
1.8.3.1

  parent reply	other threads:[~2013-11-21 16:50 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-21 16:49 [Qemu-devel] [PULL for-1.7 00/11] Miscellaneous -rc patches Paolo Bonzini
2013-11-21 16:49 ` [Qemu-devel] [PULL 01/11] sun4m: Add FCode ROM for TCX framebuffer Paolo Bonzini
2013-11-21 16:49 ` [Qemu-devel] [PULL 02/11] configure: Explicitly set ARFLAGS so we can build with GNU Make 4.0 Paolo Bonzini
2013-11-21 16:49 ` [Qemu-devel] [PULL 03/11] pc: get rid of builtin pvpanic for "-M pc-1.5" Paolo Bonzini
2013-11-21 16:49 ` [Qemu-devel] [PULL 04/11] atomic.h: Fix build with clang Paolo Bonzini
2013-11-21 16:49 ` Paolo Bonzini [this message]
2013-11-21 16:49 ` [Qemu-devel] [PULL 06/11] target-i386: Fix build by providing stub kvm_arch_get_supported_cpuid() Paolo Bonzini
2013-11-21 16:49 ` [Qemu-devel] [PULL 07/11] rng-egd: remove redundant free Paolo Bonzini
2013-11-21 16:49 ` [Qemu-devel] [PULL 08/11] rng-egd: offset the point when repeatedly read from the buffer Paolo Bonzini
2013-11-21 16:49 ` [Qemu-devel] [PULL 09/11] target-i386: yield to another VCPU on PAUSE Paolo Bonzini
2013-11-21 16:49 ` [Qemu-devel] [PULL 10/11] mips jazz: do not raise data bus exception when accessing invalid addresses Paolo Bonzini
2013-11-21 16:49 ` [Qemu-devel] [PULL 11/11] qga: Fix compiler warnings (missing format attribute, wrong format strings) Paolo Bonzini
2013-11-25 10:53 ` [Qemu-devel] [PULL for-1.7 00/11] Miscellaneous -rc patches Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1385052578-32352-6-git-send-email-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=alex.williamson@redhat.com \
    --cc=aliguori@amazon.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-stable@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).