From patchwork Thu Mar 28 14:30:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 161316 Delivered-To: patches@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp786382jan; Thu, 28 Mar 2019 07:30:05 -0700 (PDT) X-Received: by 2002:adf:f050:: with SMTP id t16mr27349013wro.198.1553783405644; Thu, 28 Mar 2019 07:30:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553783405; cv=none; d=google.com; s=arc-20160816; b=Y9xHdUYbVO57RUBG3Jn0zoYj8nRkNHi0dwRTQ+CORBOiDeNGUTqoXAnOXiCpYzY2jH fQ3o2vEBEzzK4gQ8UqYh7qocDkecU3qmp6RPZL2gmZ5XGx7MKVuer+isF3MdPAVKbzde MjvgRjofab9+mEwsUhe19TQg2Oab1W2QEl4bVitUGFXHIVk3WgLSBR+xXxrsqonRsr+r IP5PxKxpfvWU6HHVuHACBoM8jH8m9sO5oudv7I1+enmj7X3vI47/qEDqT/V2oDeMWZLH 6jIyPTipBAx8sHOkuyCe5fXyvXlt/0q7EbJQA/2jF1D6K5i+T1fewQhhdtC0A3briZ/G Bqjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:dkim-signature; bh=/J0e1MnZabGGnMQooqkvyJqnQKeiQRnVVCjIZnWojkI=; b=Pe7d2yIW58VXuMn/KD0N3gkZPqvcIDO5kQBphKcGXZuPwcQgeNMtG3kb4X11/Rap5k 3c0YHmqmjVnUkRJ4xO3pP1PmHyWTJTBspAWn10ptpKIJ5cIL1pYuyRubA4+nH2P5UCPL Pf855/iqr7FeFxNG4ArTtVXXGtubCtuAQU3ivp4weMKvK7QwBU/Q8+texJwnjSF7bxNO 9bg+eUb5sTCpuCuqCTshE5AJE1rqeHe3O5RqAghBjywj2Ivf1WpfSLWXeyPKc+U8eo/p 7z39LhOhPI8v3fAAaBBN2ZIVV1mKUJt4djkbYpYcE2MYgAs1Fw1NOtKUKSIiK8Xx9vKi 0jVA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=sJRkfdGv; spf=pass (google.com: domain of peter.maydell@linaro.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=peter.maydell@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id q1sor19607913wrj.21.2019.03.28.07.30.05 for (Google Transport Security); Thu, 28 Mar 2019 07:30:05 -0700 (PDT) Received-SPF: pass (google.com: domain of peter.maydell@linaro.org designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=sJRkfdGv; spf=pass (google.com: domain of peter.maydell@linaro.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=peter.maydell@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org 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=UtYNrNly6uAEx+sgZA9ZG2BHG3Rs0PwcuyY+BmdhFUej8hLMTY1kxgmrdRu/MtoQWb AqFQ26dpNk8qujbyyyVJwezbH0hjhe/qyv+aq6KnHfPTkKq+e98CCcrCz0jisLp9b4VJ mNY9ux3USiNL9rAoaU0iGfv76nx0j8ngKqEXCP3mj4BIWS1FdoHAv3fuS2BHqGRdi4iI XEEm4xquX2lDLZstzxx94ALlvd3LCzpxhYlX9AyCitrbMZYXbQkLNwYoe3wY+zDloLMR NFg6EfJmW7Gksot401HPKQp/T+fJVEbM7egVUVGp4ja/zSKOtNnNNeMjI7xPhY9xyK3/ 6qSA== X-Gm-Message-State: APjAAAUlKlFFyupR5bj3v73tHSCg9dnRFBM+2x1PB9qVP7FQgpCWUU67 fF/u7YTQlO7Cr83PSc4vRHdUW+a3Y9F4wg== 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) Return-Path: 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) From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Cc: patches@linaro.org Subject: [PATCH for-4.1] target/arm: Stop using variable length array in dc_zva 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 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 --- 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(-) -- 2.20.1 Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
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 vaddr_in) * same QEMU executable. */ int maxidx = 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 = cpu_mmu_index(env, false); TCGMemOpIdx oi = make_memop_idx(MO_UB, mmu_idx); + assert(maxidx <= sizeof(hostaddr)); + for (try = 0; try < 2; try++) { for (i = 0; i < maxidx; i++) {