From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52686) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z4m0K-0005kc-CT for qemu-devel@nongnu.org; Tue, 16 Jun 2015 04:13:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z4m0J-0004zB-Hs for qemu-devel@nongnu.org; Tue, 16 Jun 2015 04:13:56 -0400 Received: from [59.151.112.132] (port=16531 helo=heian.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z4m0I-0004uU-Uk for qemu-devel@nongnu.org; Tue, 16 Jun 2015 04:13:55 -0400 From: Chen Fan Date: Tue, 16 Jun 2015 16:11:00 +0800 Message-ID: <6dd3224d11552cd5960d41f656b70af65bc8ed8f.1434356309.git.chen.fan.fnst@cn.fujitsu.com> In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain Subject: [Qemu-devel] [RFC v10 16/19] vfio: do hot bus reset when do virtual secondary bus reset List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: izumi.taku@jp.fujitsu.com, alex.williamson@redhat.com when do virtual secondary bus reset, the vfio device under this bus need to do host bus reset to reset the device. so add this case. Signed-off-by: Chen Fan --- hw/vfio/pci.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index a86edab..5bdfa73 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -4246,6 +4246,15 @@ static void vfio_pci_reset(DeviceState *dev) trace_vfio_pci_reset(vdev->vbasedev.name); + if (vdev->needs_bus_reset) { + vdev->needs_bus_reset = false; + /* Avoid duplicate bus reset */ + if (vdev->vbasedev.needs_reset) { + vfio_pci_hot_reset(vdev, false); + } + return; + } + vfio_pci_pre_reset(vdev); if (vdev->resetfn && !vdev->resetfn(vdev)) { -- 1.9.3