From nobody Sat May 18 22:54:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1582822127; cv=none; d=zohomail.com; s=zohoarc; b=HEFylwnRrZUMNXJx1Wf6UFxVn+nhq9j0XPjM06jtnZ3lb0keNDBxQ8GJeKR7rx8yd7Kb4EI8DeoRztD87I9ZsfAHFIHPuLqB/1LV4x2O7jQHftQ2miRhHCcKuP5jCoGdDAlUBPTTeCQc4AN8/VTXKFnCf2f8qtDac3s5UHEodPE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1582822127; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=lLYJa04/ib8S/ZD5NLXELObh98IS1WlwLAmx6ECTU+w=; b=HfHUFZiyeOaBOvKmnkj1GBVGf9rbENIdKiJ7f2i7Sq8wqug+LFDZJwYDdQbYD5U+da2JbzbtH2HC62ZSwtPkeI4D06dQBHOzyHhvXXyimmF+py4+Xi+uUJpKgUwrm7Fk2pnELn90LgXnrBv9BGcrZsthkTyIZjFyjES0wGGisT8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1582822127292203.47452725192284; Thu, 27 Feb 2020 08:48:47 -0800 (PST) Received: from localhost ([::1]:34434 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j7ML7-00008a-VD for importer@patchew.org; Thu, 27 Feb 2020 11:48:45 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:43170) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j7MK9-0007Qr-6d for qemu-devel@nongnu.org; Thu, 27 Feb 2020 11:47:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j7MK7-0002Gi-GK for qemu-devel@nongnu.org; Thu, 27 Feb 2020 11:47:45 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:45548 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1j7MK7-0002G8-DC for qemu-devel@nongnu.org; Thu, 27 Feb 2020 11:47:43 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-11-oj9voCXsO-qcVs1eIct9FQ-1; Thu, 27 Feb 2020 11:47:41 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4C8C0189F760; Thu, 27 Feb 2020 16:47:40 +0000 (UTC) Received: from x1w.redhat.com (ovpn-205-195.brq.redhat.com [10.40.205.195]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8B2FC5C883; Thu, 27 Feb 2020 16:47:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1582822063; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lLYJa04/ib8S/ZD5NLXELObh98IS1WlwLAmx6ECTU+w=; b=MMn1YmNKnqhmMRsoLTvqK2qpYywk4AWUVg+PPZ044X9sQPPPgIkkawDcHxTliZvj5xK0Ga n1SO9fy/Qqbvn0UAoZcoh5X/8KPBLpptvk0sXIJYePYWfRW8BkOY50gShVEgrfZQjJB+kH UxpQr4+5g31xZGCYOsWjE4J/2j3fclk= X-MC-Unique: oj9voCXsO-qcVs1eIct9FQ-1 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v3 1/2] hw/arm/smmu-common: a fix to smmu_find_smmu_pcibus Date: Thu, 27 Feb 2020 17:47:27 +0100 Message-Id: <20200227164728.11635-2-philmd@redhat.com> In-Reply-To: <20200227164728.11635-1-philmd@redhat.com> References: <20200227164728.11635-1-philmd@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 207.211.31.120 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 , qemu-arm@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Peter Xu , Eric Auger Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Eric Auger Make sure a null SMMUPciBus is returned in case we were not able to identify a pci bus matching the @bus_num. This matches the fix done on intel iommu in commit: a2e1cd41ccfe796529abfd1b6aeb1dd4393762a2 Signed-off-by: Eric Auger Reviewed-by: Peter Xu Message-Id: <20200226172628.17449-1-eric.auger@redhat.com> Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/arm/smmu-common.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/arm/smmu-common.c b/hw/arm/smmu-common.c index 0f2573f004..67d7b2d0fd 100644 --- a/hw/arm/smmu-common.c +++ b/hw/arm/smmu-common.c @@ -301,6 +301,7 @@ SMMUPciBus *smmu_find_smmu_pcibus(SMMUState *s, uint8_t= bus_num) return smmu_pci_bus; } } + smmu_pci_bus =3D NULL; } return smmu_pci_bus; } --=20 2.21.1 From nobody Sat May 18 22:54:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1582822186; cv=none; d=zohomail.com; s=zohoarc; b=cDUgRnzt+Dp0oCo9cywipqCJogeqpL3DWV0/3O58BZklppmLg6Z0VTweoZS9PD+vgPrpweSS1yRhp5ml9DOcFvAguuNKqcjwqwojJpRC8jpjoIGOO+UovhloIvccCuAf4U6uGpmOIi7Fp/DW4pUdiAk4lewOJUNkGLByl3yHbuM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1582822186; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=gK9XWtkpGiOo6PEXy0HMdjFzMma8f0WDT1xymEeTLCU=; b=X0flfa874mCIozTIFTSmi/KkvohUGLc2S8hlUIrLz4T9oc1m+mGWwPTfHA8qupkwV+Zwgfcr1J+ZYM87i/gdgFd9/1QtuTJIES/EQYn6UdGUAD7KVkF4f0bBeZFGQ7MDEwaLlwkMOSQMTcx5CbK+U129/ZCbdpWWnLq+hNECVKM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1582822186160728.0339733324089; Thu, 27 Feb 2020 08:49:46 -0800 (PST) Received: from localhost ([::1]:34444 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j7MM4-0001ck-S3 for importer@patchew.org; Thu, 27 Feb 2020 11:49:44 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:43217) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j7MKE-0007Ts-Dx for qemu-devel@nongnu.org; Thu, 27 Feb 2020 11:47:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j7MKB-0002KW-NF for qemu-devel@nongnu.org; Thu, 27 Feb 2020 11:47:50 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:23983 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1j7MKB-0002Im-5A for qemu-devel@nongnu.org; Thu, 27 Feb 2020 11:47:47 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-337-RT-jS_1iMsaZXY3jAPYa-w-1; Thu, 27 Feb 2020 11:47:45 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id CA99C802560; Thu, 27 Feb 2020 16:47:43 +0000 (UTC) Received: from x1w.redhat.com (ovpn-205-195.brq.redhat.com [10.40.205.195]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C12FC5C54A; Thu, 27 Feb 2020 16:47:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1582822066; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gK9XWtkpGiOo6PEXy0HMdjFzMma8f0WDT1xymEeTLCU=; b=i84RxmQqO0eQfpVbe+5zKJ73f/INR8N6PPegoovAqmdEMsLlTzLbCrviYCbl1e3gP3QBa1 uR/I0gcBaIf3pLJzRSn4ZlDj52ToyvbkCXaqrOzAm7UHakFKLpBCWOqZT2HNeC35UdU/Q7 m2Wi0O5CohEFrx+PyKpi7n2lHDz+M0E= X-MC-Unique: RT-jS_1iMsaZXY3jAPYa-w-1 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v3 2/2] hw/arm/smmu-common: Simplify smmu_find_smmu_pcibus() logic Date: Thu, 27 Feb 2020 17:47:28 +0100 Message-Id: <20200227164728.11635-3-philmd@redhat.com> In-Reply-To: <20200227164728.11635-1-philmd@redhat.com> References: <20200227164728.11635-1-philmd@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 207.211.31.120 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 , qemu-arm@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Peter Xu , Eric Auger Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The smmu_find_smmu_pcibus() function was introduced (in commit cac994ef43b) in a code format that could return an incorrect pointer, which was then fixed by the previous commit. We could have avoided this by writing the if() statement differently. Do it now, in case this function is re-used. The code is easier to review (harder to miss bugs). Acked-by: Eric Auger Reviewed-by: Peter Xu Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- This patch is easier to review with 'git-diff -w' (--ignore-all-space) v3: Fixed typo reported by Eric --- hw/arm/smmu-common.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/hw/arm/smmu-common.c b/hw/arm/smmu-common.c index 67d7b2d0fd..e13a5f4a7c 100644 --- a/hw/arm/smmu-common.c +++ b/hw/arm/smmu-common.c @@ -290,20 +290,21 @@ inline int smmu_ptw(SMMUTransCfg *cfg, dma_addr_t iov= a, IOMMUAccessFlags perm, SMMUPciBus *smmu_find_smmu_pcibus(SMMUState *s, uint8_t bus_num) { SMMUPciBus *smmu_pci_bus =3D s->smmu_pcibus_by_bus_num[bus_num]; + GHashTableIter iter; =20 - if (!smmu_pci_bus) { - GHashTableIter iter; - - g_hash_table_iter_init(&iter, s->smmu_pcibus_by_busptr); - while (g_hash_table_iter_next(&iter, NULL, (void **)&smmu_pci_bus)= ) { - if (pci_bus_num(smmu_pci_bus->bus) =3D=3D bus_num) { - s->smmu_pcibus_by_bus_num[bus_num] =3D smmu_pci_bus; - return smmu_pci_bus; - } - } - smmu_pci_bus =3D NULL; + if (smmu_pci_bus) { + return smmu_pci_bus; } - return smmu_pci_bus; + + g_hash_table_iter_init(&iter, s->smmu_pcibus_by_busptr); + while (g_hash_table_iter_next(&iter, NULL, (void **)&smmu_pci_bus)) { + if (pci_bus_num(smmu_pci_bus->bus) =3D=3D bus_num) { + s->smmu_pcibus_by_bus_num[bus_num] =3D smmu_pci_bus; + return smmu_pci_bus; + } + } + + return NULL; } =20 static AddressSpace *smmu_find_add_as(PCIBus *bus, void *opaque, int devfn) --=20 2.21.1