From patchwork Tue Oct 4 04:03:28 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Kiarie X-Patchwork-Id: 9361099 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 7E795608A6 for ; Tue, 4 Oct 2016 04:04:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 717AD2890B for ; Tue, 4 Oct 2016 04:04:23 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 65E4628A2E; Tue, 4 Oct 2016 04:04:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.4 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,FREEMAIL_FROM,RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 07C9E28AF1 for ; Tue, 4 Oct 2016 04:04:23 +0000 (UTC) Received: from localhost ([::1]:40084 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1brGxq-0005BC-3z for patchwork-qemu-devel@patchwork.kernel.org; Tue, 04 Oct 2016 00:04:22 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56193) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1brGxQ-00059r-GX for qemu-devel@nongnu.org; Tue, 04 Oct 2016 00:03:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1brGxO-00043y-DJ for qemu-devel@nongnu.org; Tue, 04 Oct 2016 00:03:55 -0400 Received: from mail-wm0-x242.google.com ([2a00:1450:400c:c09::242]:36523) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1brGxO-00043X-5a for qemu-devel@nongnu.org; Tue, 04 Oct 2016 00:03:54 -0400 Received: by mail-wm0-x242.google.com with SMTP id b184so17577197wma.3 for ; Mon, 03 Oct 2016 21:03:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=J2CG+Xr/OhZ4AXPF2ZCAYd/6P3lcVx4PUfKOfz3/1QM=; b=ehxYpEN0bx/bgFwBBluoPh1dN/h7G76brDiTdaSc4qzM0AuFWpkRmxexSIHUaV9Ktm jl42hVutdQ5SLqvZ58vJ+iSRkfjr7rrinaRCB3c8tVhO6wDeYZP9wfFgpJLF0tKpIiD5 UkqnEBZR5bIMDwoIAfhYoEZz4hjGDk1cM1NINuS3uvjeJ+RUNi+OwTvZhamzuGLIN6mO DadZlj38SRc/Ngdt5+wz06xNNELkaeudxInAi7EyBfOWT4QbLzfaM6IvWx+tx9EKVfrH 2B3kcSFfvaSqIzLMYTvM8vkQj3sem0eCH+gi9cI+Xy9d7URY3h0q+qcykm9lSGJLBwfM 1iCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=J2CG+Xr/OhZ4AXPF2ZCAYd/6P3lcVx4PUfKOfz3/1QM=; b=VUYsBQlZAoFwguUAzv5SwbUjwYCFSni+/Kgp4WxsZpt4etd6JKqpoJqC1Um0/Gjepk Leb0N9W2c4mmtxH9zkKBav7RjXp/r+B0mmrZmJZRhck5/QiMEIxz0KWxUT+70Z/y8sTp i0FmsDMidEwy+2maW4/JAUtqGdrrBkad+eDDpFdLR1LbIladYcthDxfNQ1igb2pGoaIq eEGN4br1W1MOlNbxyRDh5vvaBM7Fu0TNKzWp69QleIBDw5kGBWEYQUnTdF1F44S0RKuP bgIcv44W13K89D8BhXPej6d0jzdCHZ8GHLOFQixijjsT6ZFLnfB3AjRR6ErxOujXMQcf rV+Q== X-Gm-Message-State: AA6/9RnTRe+ukrLeC694lZPDs1gujdZHMg0SlpXY+Yxki57dhKVDyLKVb9isb5c07fIlIw== X-Received: by 10.28.73.65 with SMTP id w62mr1278486wma.112.1475553833261; Mon, 03 Oct 2016 21:03:53 -0700 (PDT) Received: from debian.ameoba ([154.122.5.243]) by smtp.googlemail.com with ESMTPSA id q65sm1748636wmd.24.2016.10.03.21.03.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 03 Oct 2016 21:03:52 -0700 (PDT) From: David Kiarie To: qemu-devel@nongnu.org Date: Tue, 4 Oct 2016 07:03:28 +0300 Message-Id: <1475553808-13285-2-git-send-email-davidkiarie4@gmail.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1475553808-13285-1-git-send-email-davidkiarie4@gmail.com> References: <1475553808-13285-1-git-send-email-davidkiarie4@gmail.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:400c:c09::242 Subject: [Qemu-devel] [PATCH V3] hw/iommu: Fix problems reported by Coverity scan X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, davidkiarie4@gmail.com, pbonzini@redhat.com, peterx@redhat.com, mst@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: David Kiarie --- hw/i386/amd_iommu.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/hw/i386/amd_iommu.c b/hw/i386/amd_iommu.c index 023de52..47b79d9 100644 --- a/hw/i386/amd_iommu.c +++ b/hw/i386/amd_iommu.c @@ -143,10 +143,10 @@ static void amdvi_assign_andq(AMDVIState *s, hwaddr addr, uint64_t val) static void amdvi_generate_msi_interrupt(AMDVIState *s) { - MSIMessage msg; - MemTxAttrs attrs; - - attrs.requester_id = pci_requester_id(&s->pci.dev); + MSIMessage msg = {}; + MemTxAttrs attrs = { + .requester_id = pci_requester_id(&s->pci.dev) + }; if (msi_enabled(&s->pci.dev)) { msg = msi_get_message(&s->pci.dev, 0); @@ -185,7 +185,7 @@ static void amdvi_setevent_bits(uint64_t *buffer, uint64_t value, int start, int length) { int index = start / 64, bitpos = start % 64; - uint64_t mask = ((1 << length) - 1) << bitpos; + uint64_t mask = MAKE_64BIT_MASK(start, length); buffer[index] &= ~mask; buffer[index] |= (value << bitpos) & mask; } @@ -333,8 +333,8 @@ static void amdvi_update_iotlb(AMDVIState *s, uint16_t devid, uint64_t gpa, IOMMUTLBEntry to_cache, uint16_t domid) { - AMDVIIOTLBEntry *entry = g_malloc(sizeof(*entry)); - uint64_t *key = g_malloc(sizeof(key)); + AMDVIIOTLBEntry *entry = g_new(AMDVIIOTLBEntry, 1); + uint64_t *key = g_new(uint64_t, 1); uint64_t gfn = gpa >> AMDVI_PAGE_SHIFT_4K; /* don't cache erroneous translations */ @@ -1135,6 +1135,7 @@ static void amdvi_reset(DeviceState *dev) static void amdvi_realize(DeviceState *dev, Error **err) { + int ret = 0; AMDVIState *s = AMD_IOMMU_DEVICE(dev); X86IOMMUState *x86_iommu = X86_IOMMU_DEVICE(dev); PCIBus *bus = PC_MACHINE(qdev_get_machine())->bus; @@ -1147,8 +1148,11 @@ static void amdvi_realize(DeviceState *dev, Error **err) object_property_set_bool(OBJECT(&s->pci), true, "realized", err); s->capab_offset = pci_add_capability(&s->pci.dev, AMDVI_CAPAB_ID_SEC, 0, AMDVI_CAPAB_SIZE); - pci_add_capability(&s->pci.dev, PCI_CAP_ID_MSI, 0, AMDVI_CAPAB_REG_SIZE); - pci_add_capability(&s->pci.dev, PCI_CAP_ID_HT, 0, AMDVI_CAPAB_REG_SIZE); + assert(s->capab_offset > 0); + ret = pci_add_capability(&s->pci.dev, PCI_CAP_ID_MSI, 0, AMDVI_CAPAB_REG_SIZE); + assert(ret > 0); + ret = pci_add_capability(&s->pci.dev, PCI_CAP_ID_HT, 0, AMDVI_CAPAB_REG_SIZE); + assert(ret > 0); /* set up MMIO */ memory_region_init_io(&s->mmio, OBJECT(s), &mmio_mem_ops, s, "amdvi-mmio",