From nobody Thu Nov 13 22:04:08 2025 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=1582789947; cv=none; d=zohomail.com; s=zohoarc; b=GOVSwF+n2J2IayF/vASbaAs5iVok2Th9QNl/81fplbj+U5iu+AlNdkiJPvX0JkoUb3Hykn6C48y33YXYj6xiQD/beTI3ZMe03wRehBtPMvhxyVU9pG9/8bKCy+Ljrw6Lavlp9p32wg8EeupVc04mhCtxZyZD+xF+fFuDYCLozys= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1582789947; 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=h2P0tgp1thgVauAKRqlUVXznUGVa1sRv7wi8xRwauGs=; b=auZeLWb2nJmMmL5bxdODRUna0LEbOaQ7DeROANSwVrb1tq875+p+bL4ml6LfoPCRXrKr0lAmxXt2OikEo+jpoWaESvx1GHd59r7vLb8wZ/aqpfVwxo8Z+KWbIlLgPVagZ2mgp5z6JefpSa8EwfQai7Ein5YO/TUULQA5SOVNmPQ= 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 1582789947423409.2671414434494; Wed, 26 Feb 2020 23:52:27 -0800 (PST) Received: from localhost ([::1]:55016 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j7Dy6-0006Lp-ER for importer@patchew.org; Thu, 27 Feb 2020 02:52:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54168) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j7DxB-0004yJ-4y for qemu-devel@nongnu.org; Thu, 27 Feb 2020 02:51:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j7DxA-00017D-0m for qemu-devel@nongnu.org; Thu, 27 Feb 2020 02:51:29 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:29308 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 1j7Dx9-00016a-T2 for qemu-devel@nongnu.org; Thu, 27 Feb 2020 02:51:27 -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-36-eAABnmyxP6WmatAsZpE2cw-1; Thu, 27 Feb 2020 02:51:25 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C6037800D48; Thu, 27 Feb 2020 07:51:24 +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 0AC785DA2C; Thu, 27 Feb 2020 07:51:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1582789887; 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=h2P0tgp1thgVauAKRqlUVXznUGVa1sRv7wi8xRwauGs=; b=KwtOmtfPIdyCDs82OXHekPR6nax0wyb3sL01QiyN01LjssRYIAf2OTjKBs50dwKPdZHVQm b55fC5VMjW6+JlEfXT8Wo2w6vqXhdEiu4oub7yu9I4EtM3pwpGXAVmK+MABdL0DIViyWac Sop1IMuRczM3T3gHa10IblRsZ+HxjW8= X-MC-Unique: eAABnmyxP6WmatAsZpE2cw-1 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v2 2/2] hw/arm/smmu-common: Simplify smmu_find_smmu_pcibus() logic Date: Thu, 27 Feb 2020 08:51:11 +0100 Message-Id: <20200227075111.15275-3-philmd@redhat.com> In-Reply-To: <20200227075111.15275-1-philmd@redhat.com> References: <20200227075111.15275-1-philmd@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 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] X-Received-From: 205.139.110.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: Eric Auger , qemu-arm@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Peter Xu , Peter Maydell 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 avoid 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). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Eric Auger Reviewed-by: Peter Xu --- This patch is easier to review with 'git-diff -w' (--ignore-all-space) --- 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