From nobody Fri May 3 00:00:19 2024 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) 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=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1553783496034408.5232551907342; Thu, 28 Mar 2019 07:31:36 -0700 (PDT) Received: from localhost ([127.0.0.1]:37444 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h9W3o-0006Sg-FL for importer@patchew.org; Thu, 28 Mar 2019 10:31:16 -0400 Received: from eggs.gnu.org ([209.51.188.92]:57934) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h9W2h-00061I-Ur for qemu-devel@nongnu.org; Thu, 28 Mar 2019 10:30:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h9W2h-0002ma-03 for qemu-devel@nongnu.org; Thu, 28 Mar 2019 10:30:07 -0400 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:45650) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1h9W2g-0002mM-Je for qemu-devel@nongnu.org; Thu, 28 Mar 2019 10:30:06 -0400 Received: by mail-wr1-x442.google.com with SMTP id s15so23158594wra.12 for ; Thu, 28 Mar 2019 07:30:06 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id t15sm4613824wmt.2.2019.03.28.07.30.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Mar 2019 07:30:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=/J0e1MnZabGGnMQooqkvyJqnQKeiQRnVVCjIZnWojkI=; b=sJRkfdGvGbtRZBj7WqHCNaLKpLHaV3ewkLe05KipuqrRADYIdgqnSKRVLG+7kN+E/1 5h7b3mrjsRDsuc0aWZNkJp7BvMzeIV9HEtX78tUH7VDJHJiuZwmkzd4II81i4aQraz5t 940hHXGIiFERD0hShAawXK5dLg4QGrVK+QmUMPVJNpuZBdLi+X8YUdozo4d+vRMcRun8 1hYbq9ebsrMHRmh4ML/iIfdvmwQ2csfzwUk/SnLjVtPv7856juXVEbQxrTuQxdakxl4A zTHLX1FhrlwHYuf8MKUPD1oernA/EVMas2vpIT/Ecl7v9cnSq/N4okhCw044ocpGIRhO +kTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=/J0e1MnZabGGnMQooqkvyJqnQKeiQRnVVCjIZnWojkI=; b=OcpSLrYKY/x+yNR2n30AwDcLuDVnweX9tO3P7dS7sQU9TFKuN4URj/9m2xTf1i3fdL 0vKnztytxiItTacAQZ+tZryu2aFpHVnQd/FL92Z9XwwTIzZNjOFSVGjlt/ltx6qQNhhU JTxapq5VAsFXmn7Wc1sJYUZb6gS2GiLzRC3BDXFtwi9orGZpbtpot/B1RfKtZFNBQtDT 1Rfa8ynUEuT+wMG8zjSQAI22hrI61kESHtn81BmVCsTcUKvSoz+vSppX3jenhslDdRRY sVSdf7qluewklFQPIZym+nrBp1aOdHQUIM3k2wZ2mhG9niWx2iHgO+qZMpSzRR0G999B mWcw== X-Gm-Message-State: APjAAAX1bswxMeT2/I+CmNQFwWS6eYZKxJulS9K/kxDhRr/B4G7xgvO/ DauidypyalyHTWV4Gl0bvXmvUA== X-Google-Smtp-Source: APXvYqyI+XicNrWs+l+M7IA3LZlB2VyE9R4TMmcbABz6iWSj85KBZQoKVR2tCmssZo6FiyZ9Rwx1aA== X-Received: by 2002:adf:fe4d:: with SMTP id m13mr24137640wrs.267.1553783405307; Thu, 28 Mar 2019 07:30:05 -0700 (PDT) From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Date: Thu, 28 Mar 2019 14:30:03 +0000 Message-Id: <20190328143003.16702-1-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::442 Subject: [Qemu-devel] [PATCH for-4.1] target/arm: Stop using variable length array in dc_zva 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: patches@linaro.org 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" Currently the dc_zva helper function uses a variable length array. In fact we know (as the comment above remarks) that the length of this array is bounded because the architecture limits the block size and QEMU limits the target page size. Use a fixed array size and assert that we don't run off it. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- A small move in the direction of "avoid using variable length arrays in QEMU"... target/arm/helper.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index a36f4b3d699..1b6225cb598 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -1,4 +1,5 @@ #include "qemu/osdep.h" +#include "qemu/units.h" #include "target/arm/idau.h" #include "trace.h" #include "cpu.h" @@ -12412,11 +12413,13 @@ void HELPER(dc_zva)(CPUARMState *env, uint64_t va= ddr_in) * same QEMU executable. */ int maxidx =3D DIV_ROUND_UP(blocklen, TARGET_PAGE_SIZE); - void *hostaddr[maxidx]; + void *hostaddr[DIV_ROUND_UP(2 * KiB, 1 << TARGET_PAGE_BITS_MIN)]; int try, i; unsigned mmu_idx =3D cpu_mmu_index(env, false); TCGMemOpIdx oi =3D make_memop_idx(MO_UB, mmu_idx); =20 + assert(maxidx <=3D sizeof(hostaddr)); + for (try =3D 0; try < 2; try++) { =20 for (i =3D 0; i < maxidx; i++) { --=20 2.20.1