From patchwork Tue Nov 3 14:34:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Michael S. Tsirkin" X-Patchwork-Id: 11877817 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3B2FD92A for ; Tue, 3 Nov 2020 14:47:17 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A91002242E for ; Tue, 3 Nov 2020 14:47:16 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="OdgghKpJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A91002242E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:51448 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kZxad-00037M-K4 for patchwork-qemu-devel@patchwork.kernel.org; Tue, 03 Nov 2020 09:47:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33108) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kZxOW-0004Qd-K3 for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:34:44 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:37871) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kZxOU-0006Qc-CH for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:34:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604414081; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=yb0+hTu/cI4h7Se3wHsf9S5j6pZCfXhlBpQERrIdWig=; b=OdgghKpJ7zVu2t5hjK2KlS4oFdrLKNu6glSSTVxR/R3DvFuNrSlF8AWyHFGPtqPlO0r/pm kEgcPMxXAsmQdtVYCH2P/UWMh3H2x5mLPMXG2tDr8O6Cl98LdkRUbHqvLjg6Vbq0/z8ZWr ieyGhCMGOFquf6shhqJ5ceT4YBgG40Y= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-1-930sj2E2NmyyAftRlFy71Q-1; Tue, 03 Nov 2020 09:34:39 -0500 X-MC-Unique: 930sj2E2NmyyAftRlFy71Q-1 Received: by mail-wm1-f71.google.com with SMTP id 13so4685101wmf.0 for ; Tue, 03 Nov 2020 06:34:39 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=yb0+hTu/cI4h7Se3wHsf9S5j6pZCfXhlBpQERrIdWig=; b=habhOs6x5K3/nsGiHoyzZv+4oFQfeW0PiU6Zl1v6C4Fm936x6LXreffSHP1owKXNhi Fp5vMu7FvA7G8s2HhxD2wKJt9EJcq++9v+nH3PjBpvDcpodi3yRfqvKEWiGb4ciM58ss hb+pP9BVjOqAuUWA5SE6KyS3OwMsGZ5SssOPE1mLgcGP1HL8ef9C6BX3GHabEPk5JQrm QmLD7GN8VM9CxI38xB14OGa7Ks4h8eum1I6ZFuVb12cx719FlGLB4nLOe/w6tNNrg3Wc 2tVpl+9ctOhjIomrLuGWxDBsSt4EW1qNKd8Np377jTzpbr0QsNgzfybRbhN3D3xb+ehI +cLg== X-Gm-Message-State: AOAM533ZIzbYqhaMCszc2BsszqhAKzw6rQ56oSrjri7HF5lWFancaTIC TPHFm1uwSbQnVBDhL87kLubUxDDp6h/P2DIr13cqwXcMAO1+OI6hdVcPSmn5SfxBteuTa2uDCon rCgUAALmUCjht/ng= X-Received: by 2002:a1c:cc06:: with SMTP id h6mr37214wmb.29.1604414077998; Tue, 03 Nov 2020 06:34:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJwDKkZEbgL2lKYNQIALJ38BQL2QQcAGhZ9O54UBH57kkvv5ICqYDtjobZv/mMW/Q1/ScYROSA== X-Received: by 2002:a1c:cc06:: with SMTP id h6mr37202wmb.29.1604414077866; Tue, 03 Nov 2020 06:34:37 -0800 (PST) Received: from redhat.com (bzq-79-176-118-93.red.bezeqint.net. [79.176.118.93]) by smtp.gmail.com with ESMTPSA id e3sm26582657wrn.32.2020.11.03.06.34.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Nov 2020 06:34:37 -0800 (PST) Date: Tue, 3 Nov 2020 09:34:35 -0500 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Subject: [PULL 13/38] virtio-iommu: Fix virtio_iommu_mr() Message-ID: <20201103142306.71782-14-mst@redhat.com> References: <20201103142306.71782-1-mst@redhat.com> MIME-Version: 1.0 In-Reply-To: <20201103142306.71782-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=mst@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline Received-SPF: pass client-ip=216.205.24.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/03 00:03:41 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Peter Xu , QEMU Stable , Eric Auger , Jean-Philippe Brucker Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" From: Jean-Philippe Brucker Due to an invalid mask, virtio_iommu_mr() may return the wrong memory region. It hasn't been too problematic so far because the function was only used to test existence of an endpoint, but that is about to change. Fixes: cfb42188b24d ("virtio-iommu: Implement attach/detach command") Cc: QEMU Stable Acked-by: Eric Auger Reviewed-by: Peter Xu Signed-off-by: Jean-Philippe Brucker Message-Id: <20201030180510.747225-2-jean-philippe@linaro.org> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/virtio/virtio-iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c index 21ec63b108..4c8f3909b7 100644 --- a/hw/virtio/virtio-iommu.c +++ b/hw/virtio/virtio-iommu.c @@ -101,7 +101,7 @@ static IOMMUMemoryRegion *virtio_iommu_mr(VirtIOIOMMU *s, uint32_t sid) bus_n = PCI_BUS_NUM(sid); iommu_pci_bus = iommu_find_iommu_pcibus(s, bus_n); if (iommu_pci_bus) { - devfn = sid & PCI_DEVFN_MAX; + devfn = sid & (PCI_DEVFN_MAX - 1); dev = iommu_pci_bus->pbdev[devfn]; if (dev) { return &dev->iommu_mr;