From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 2002:a19:cb43:0:0:0:0:0 with SMTP id b64csp4105725lfg; Wed, 26 Feb 2020 23:51:59 -0800 (PST) X-Google-Smtp-Source: APXvYqw0gpLq0AlMD4RN4WDAY56QnRRpD2D06ZBI/R2yy8xLu0fsUYeot3zw5envDndfled79aQK X-Received: by 2002:ac8:32ef:: with SMTP id a44mr3356255qtb.189.1582789919525; Wed, 26 Feb 2020 23:51:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582789919; cv=none; d=google.com; s=arc-20160816; b=M+Ht7hgovVlLp1i21sGLYFVqylwZxvO5VFqPV4DQ/ZkUb0AIGaZBFVYY7lWc1ZMf7H ebW9DLHZhe7v8hF4yO9Sy128lEHXN1zsfq9Engiu9M4eTkTelJBWDwoAj6WDF3t/RPbr xwSfm7G6FOwVw6AC6SWMkxbk4BhSHpCW9dmdZ0oNzfYvo6C+3NB5sNBcymgPI1H7KhGH jVLRAAyDvaznjNNL3FZ1F+Ye2o9jaqnYcuUaXRSWoG7hBhKU9Z73rR7Btjd3wQZg+97V ySzpGQT2wIrdeH9Hz+ZUsnNZ3cQbzEtM8Zuy3QXgfAbabuV3FQIE/DLTECR3KV2eyNY/ t6BQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=h2P0tgp1thgVauAKRqlUVXznUGVa1sRv7wi8xRwauGs=; b=auuD6JL6tYW3FWtMfUZ3K1hL2F0cvBxxujfnqJCoJFgOKcXcNHKSzNV9DXmLQ/Vv9Q gJEtJEV2YmlXKNuMLVsALphvtGpHv2tdJvf1lpcPCuyxWTtTSWLCxJbLvyn/Eab06NTi kDzDniyVqvbtIrO9zVSJ83BCWL+km5zkqECtfd7SAXi0GCpejbkWg+saTHKIRn7p2z6H HSxtPQxvAoJCFwg4LKVtVgfO0iDBmAVQZErjgQKJO1RUh6z5JMzZ0OgnMSbz6OgI30HR Fon1FrXuBSMV/hD4ZmjA8WUhow8x9OGxQGA4m1X+vqkg2h2AMSbNl1sADcUdyIpx0cbc Hizw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@redhat.com header.s=mimecast20190719 header.b=KwtOmtfP; spf=pass (google.com: domain of qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 19si1051679qky.212.2020.02.26.23.51.59 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 26 Feb 2020 23:51:59 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@redhat.com header.s=mimecast20190719 header.b=KwtOmtfP; spf=pass (google.com: domain of qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from localhost ([::1]:55006 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j7Dxf-00054K-0O for alex.bennee@linaro.org; Thu, 27 Feb 2020 02:51:59 -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 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= 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 X-MC-Unique: eAABnmyxP6WmatAsZpE2cw-1 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) 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-Type: text/plain; charset=UTF-8 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+alex.bennee=linaro.org@nongnu.org Sender: "Qemu-devel" X-TUID: bu24XUuEYMwG 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 --- 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