From patchwork Tue May 15 13:31:53 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kiszka X-Patchwork-Id: 159318 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 5D090B6FB4 for ; Tue, 15 May 2012 23:32:42 +1000 (EST) Received: from localhost ([::1]:50224 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SUHrk-0004XT-71 for incoming@patchwork.ozlabs.org; Tue, 15 May 2012 09:32:40 -0400 Received: from eggs.gnu.org ([208.118.235.92]:48114) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SUHrL-0003zr-9H for qemu-devel@nongnu.org; Tue, 15 May 2012 09:32:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SUHr7-0006Er-A7 for qemu-devel@nongnu.org; Tue, 15 May 2012 09:32:14 -0400 Received: from david.siemens.de ([192.35.17.14]:28517) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SUHr7-0006Dl-0C for qemu-devel@nongnu.org; Tue, 15 May 2012 09:32:01 -0400 Received: from mail1.siemens.de (localhost [127.0.0.1]) by david.siemens.de (8.13.6/8.13.6) with ESMTP id q4FDVvtb024615; Tue, 15 May 2012 15:31:57 +0200 Received: from mchn199C.mchp.siemens.de ([139.22.43.125]) by mail1.siemens.de (8.13.6/8.13.6) with SMTP id q4FDVsGK011401; Tue, 15 May 2012 15:31:55 +0200 Message-ID: <4FB25AC9.4020404@siemens.com> Date: Tue, 15 May 2012 10:31:53 -0300 From: Jan Kiszka User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 MIME-Version: 1.0 To: Avi Kivity , Marcelo Tosatti References: <18803f5b4a9020ba39234cf0c66476696bd16529.1337029654.git.jan.kiszka@siemens.com> In-Reply-To: <18803f5b4a9020ba39234cf0c66476696bd16529.1337029654.git.jan.kiszka@siemens.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-Received-From: 192.35.17.14 Cc: qemu-devel , kvm@vger.kernel.org, "Michael S. Tsirkin" Subject: [Qemu-devel] [PATCH 12/11] msix: Trigger vector mask update check after vmload X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org In case we load a PCI device with active vectors, we have to process them and invoke potential notifiers. Signed-off-by: Jan Kiszka --- This amends the QEMU series but should be equally relevant as bug fix for qemu-kvm. hw/msix.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/hw/msix.c b/hw/msix.c index 2114b99..59c7a83 100644 --- a/hw/msix.c +++ b/hw/msix.c @@ -351,6 +351,7 @@ void msix_save(PCIDevice *dev, QEMUFile *f) void msix_load(PCIDevice *dev, QEMUFile *f) { unsigned n = dev->msix_entries_nr; + unsigned int vector; if (!(dev->cap_present & QEMU_PCI_CAP_MSIX)) { return; @@ -360,6 +361,10 @@ void msix_load(PCIDevice *dev, QEMUFile *f) qemu_get_buffer(f, dev->msix_table_page, n * PCI_MSIX_ENTRY_SIZE); qemu_get_buffer(f, dev->msix_table_page + MSIX_PAGE_PENDING, (n + 7) / 8); msix_update_function_masked(dev); + + for (vector = 0; vector < n; vector++) { + msix_handle_mask_update(dev, vector, true); + } } /* Does device support MSI-X? */