From patchwork Mon Mar 30 13:36:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 1263950 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=FEwQtKwQ; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48rYRr6Mxvz9sP7 for ; Tue, 31 Mar 2020 00:37:44 +1100 (AEDT) Received: from localhost ([::1]:50042 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIubl-0004Pm-Iv for incoming@patchwork.ozlabs.org; Mon, 30 Mar 2020 09:37:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49446) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIub0-0004Ok-SP for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:36:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jIuaz-00015D-Kl for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:36:54 -0400 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]:54420) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jIuaz-000131-EB for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:36:53 -0400 Received: by mail-wm1-x342.google.com with SMTP id c81so19958971wmd.4 for ; Mon, 30 Mar 2020 06:36:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=CbVDnPhb7KjkBF4bPw+KOLLnLSCqhHbQ8JeT9vFEYAU=; b=FEwQtKwQihU/wpwY4pk9tGWNQltK+tf3DA2rwP4HutsOEWugH3PxysVLhmq0itTPFZ q4MrNmYEO9x7UgMo3qRGhOUWo0shxhxBpfel27envq76na2ylJHPV/YTtI4zmjI337oP YA0myBxLf1fh2ziRbcJz03RrNhiPrQyovTWMdkxMGzs+sH/Irrl9OJWk2cSFfCC7J63J n1NxTZYPBaa6NXLzEUI3CGDwSC2Bhw7eiyeH/WfAJwZnm7tKs4wCBD4hpRDm6zdSfKi9 KjYTzloatQZAmJy/yO6I8G/2RwqB7UkhbWW+EGIOCj7yA+GP5GytTf0p27zjjqaURwVe 5OGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CbVDnPhb7KjkBF4bPw+KOLLnLSCqhHbQ8JeT9vFEYAU=; b=quVEbbc8leD7Z3tnfT7bzrjYwcSD8sLPhbzqbf6bw2mSQnJ9yXlw1DZ4CDR2KF60vG dVT5FNu9ak5HwR5jemmc2Qb00YWU2MMScuvz8vq7m6mK0ha71+Z2wPVRP5iJAL9Uz6IK lurmYdnKeeKVPcP8k3P4k0RxJR0UKe41GrXzyM8LQwRDHh0gn6cz/KL4dH/oj8+OOQDW GdmHMMyW9WiXYm9nNkjITx6DOffuj4YzWgG9WeMLER2JBPV75e8Il3Oda46xmCqAmmcA YO/H0xlzxiNTNTb4xmzosz+0HB6rhFc+sKNW6+jZq9ofjmkmde4LV+Tacs+yEM17UeNV 6nPQ== X-Gm-Message-State: ANhLgQ0+g5SpNqan+TkaRY2aO4SPQ13fUMfx9KWRVnL5GBFUQviPeLdJ njp4jDpR4B9+RYIdmk8woNYlnLi4rXDj8g== X-Google-Smtp-Source: ADFU+vvvyCy1/1ZKMCDZfZtftq6Te6frDdDyhC0b3oLcr1Rhh79ZxoFHagKh3PhDIAY39y4u6yucWw== X-Received: by 2002:a1c:1904:: with SMTP id 4mr13149905wmz.21.1585575411598; Mon, 30 Mar 2020 06:36:51 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id o14sm20756504wmh.22.2020.03.30.06.36.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2020 06:36:50 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 1/6] hw/arm/orangepi: check for potential NULL pointer when calling blk_is_available Date: Mon, 30 Mar 2020 14:36:43 +0100 Message-Id: <20200330133648.22297-2-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200330133648.22297-1-peter.maydell@linaro.org> References: <20200330133648.22297-1-peter.maydell@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::342 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: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Niek Linnenbank The Orange Pi PC initialization function needs to verify that the SD card block backend is usable before calling the Boot ROM setup routine. When calling blk_is_available() the input parameter should not be NULL. This commit ensures that blk_is_available is only called with non-NULL input. Reported-by: Peter Maydell Signed-off-by: Niek Linnenbank Message-id: 20200322205439.15231-1-nieklinnenbank@gmail.com Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/arm/orangepi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/arm/orangepi.c b/hw/arm/orangepi.c index 181f5badab7..a9f64c56800 100644 --- a/hw/arm/orangepi.c +++ b/hw/arm/orangepi.c @@ -104,7 +104,7 @@ static void orangepi_init(MachineState *machine) machine->ram); /* Load target kernel or start using BootROM */ - if (!machine->kernel_filename && blk_is_available(blk)) { + if (!machine->kernel_filename && blk && blk_is_available(blk)) { /* Use Boot ROM to copy data from SD card to SRAM */ allwinner_h3_bootrom_setup(h3, blk); } From patchwork Mon Mar 30 13:36:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 1263947 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=w6FmxZwX; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48rYRZ5mM7z9sR4 for ; Tue, 31 Mar 2020 00:37:29 +1100 (AEDT) Received: from localhost ([::1]:50036 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIubV-0004P9-AF for incoming@patchwork.ozlabs.org; Mon, 30 Mar 2020 09:37:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49454) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIub1-0004Oo-6D for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:36:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jIub0-00016D-6c for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:36:55 -0400 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]:50612) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jIub0-00014Y-0s for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:36:54 -0400 Received: by mail-wm1-x336.google.com with SMTP id t128so1556362wma.0 for ; Mon, 30 Mar 2020 06:36:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=WTqWyO7pGTPXb6HXG/SCIMQhmD5yDN8g6Rdw1sDZPts=; b=w6FmxZwXaVZA1naDD9FOHNSgnAJ1xKhvMqCvmBiEeqdl9VYDDKW/qdzVHwHvuOQujt CXw5XGlKmFTv6tzlkOasDJYrZjnXgLHftvQE7BGL5WNRP0fu+ZQxP8ZSi7Jh2HlRG669 2yxeuUd2rFGm9qBu2IVAI3D8i3iIUCz28rs6IrW0tjhtC3Y7eQDy4NuivpjCePBbK8rc qr2mAsw9ha1o7tCDjyAZ97l5bIZqyieAwAZp0tlGL2gx8NdtjOc+sCzqNTT0K5/CtlVs SrfBIpuUO8EpbYz1unSPQPjjMut3TGrcuYYrG90HurU6QmL+l6WnpXPWZ3c4JaqcOeXD MI1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WTqWyO7pGTPXb6HXG/SCIMQhmD5yDN8g6Rdw1sDZPts=; b=HkmeVKaBLIAzf9J0IbMMsSAnPcwQnyNanKOMeEWENNs5Zh5biYPsYaztIzRv4Gs/Dw g7R1waYdTbbCnf0Su3Byrznk2QN33wMW+oz6xLkoVFFRp1SfR2ZDkjMMd8Vb/cHZxZAC lVLhPCnTop3gsmiO/E3zw5LgOwDRC02ab3k5sFlxQz1uZxBhyM4habEgemyzeOlnOQTo rNNfMydOggaJu56xDx31VWmlUoN/ljN7rPQIp5aljDe2bWisWQacj1aKH15gFWPdPnCL PMI6+0Shau7UuUCoKVvtekdqCeFQFHjX1FVOEGfXfhYpTWbMVacG+ctixbTnqXHhp03D 4uEw== X-Gm-Message-State: ANhLgQ3BeYFAheNe8E+ZajmKMQ/lNZ1XSai2DEbwDIthuzRMwmrhIpTs lTiUFzdH92w2f4DoDBdbdYwjEbXC0tds/g== X-Google-Smtp-Source: ADFU+vsTsaFXtoOMrzH4di9IwSjRVUIp0y3IbY/TrXOcGeMJumGPhFH+lVppGjFl23LpAjaZtc1u+Q== X-Received: by 2002:a7b:c40b:: with SMTP id k11mr1686190wmi.157.1585575412614; Mon, 30 Mar 2020 06:36:52 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id o14sm20756504wmh.22.2020.03.30.06.36.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2020 06:36:52 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 2/6] hw/misc/allwinner-h3-dramc: enforce 64-bit multiply when calculating row mirror address Date: Mon, 30 Mar 2020 14:36:44 +0100 Message-Id: <20200330133648.22297-3-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200330133648.22297-1-peter.maydell@linaro.org> References: <20200330133648.22297-1-peter.maydell@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::336 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: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Niek Linnenbank The allwinner_h3_dramc_map_rows function simulates row addressing behavior when bootloader software attempts to detect the amount of available SDRAM. Currently the line that calculates the 64-bit address of the mirrored row uses a signed 32-bit multiply operation that in theory could result in the upper 32-bit be all 1s. This commit ensures that the row mirror address is calculated using only 64-bit operations. Reported-by: Peter Maydell Signed-off-by: Niek Linnenbank Message-id: 20200323192944.5967-1-nieklinnenbank@gmail.com Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/misc/allwinner-h3-dramc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/misc/allwinner-h3-dramc.c b/hw/misc/allwinner-h3-dramc.c index 2b5260260e7..1d37cf422cd 100644 --- a/hw/misc/allwinner-h3-dramc.c +++ b/hw/misc/allwinner-h3-dramc.c @@ -85,8 +85,8 @@ static void allwinner_h3_dramc_map_rows(AwH3DramCtlState *s, uint8_t row_bits, } else if (row_bits_actual) { /* Row bits not matching ram_size, install the rows mirror */ - hwaddr row_mirror = s->ram_addr + ((1 << (row_bits_actual + - bank_bits)) * page_size); + hwaddr row_mirror = s->ram_addr + ((1ULL << (row_bits_actual + + bank_bits)) * page_size); memory_region_set_enabled(&s->row_mirror_alias, true); memory_region_set_address(&s->row_mirror_alias, row_mirror); From patchwork Mon Mar 30 13:36:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 1263949 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=tNnlXawQ; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48rYRs0mHXz9sRN for ; Tue, 31 Mar 2020 00:37:44 +1100 (AEDT) Received: from localhost ([::1]:50056 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIubm-0004R9-8h for incoming@patchwork.ozlabs.org; Mon, 30 Mar 2020 09:37:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49479) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIub2-0004P5-MD for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:36:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jIub1-00019X-CF for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:36:56 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]:42090) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jIub1-00017M-6G for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:36:55 -0400 Received: by mail-wr1-x431.google.com with SMTP id h15so21634380wrx.9 for ; Mon, 30 Mar 2020 06:36:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=8Wj6cmPD0bD0MBYEZwMRUoxGz/ny5iBWvlp9JF8e2Ro=; b=tNnlXawQLbjcI51+4CWmIFK6SnKx4Kz/PwHCv1ccMmgbiMNZweaWpdaBhl/AK+2IdW lb3xupZd4I52NEvapfp+SkMJORhpt8a1jeNS5Zj453nyw9kSeIS/Usdqr9X5cwd7FS7X +XL6bkEt69w5urgGYLgyoaKdHIP7fbaFmCTATUZ9Wn5XhvHMRFvb0rhwQAw0Y7LZcS1I cRqb7v+WxgCvD7I4fh8JzlFQa90rP1lGfB2TmFM84MHujcN4+2CH1i9HrBtoEEi8fjeK VjzJwh9DwjBQjdQ8tWhmoo9aXEmOX2ZgZ+kTjuyJPePcqBc+nCqjJc7uPu8xbnLuhVN7 Q1pQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8Wj6cmPD0bD0MBYEZwMRUoxGz/ny5iBWvlp9JF8e2Ro=; b=OoROX+4abKEUb+IE0bWZrLxPQZqbQAxAef7YIVAsYpsqtq7ZXevSQ6F3OUbFNyMzyy Rl2bhMjIx1BWMJBv2Fxc2knILXgD8U9OU5URzPEm305WsZIt1gxMfDvzyGXG3eAtXqRJ 01W5AOOIz/v8h2VmKHcOOYMmPrCh4XAO0Y7aXBovQ1/7FtggWU6FpoA/cS0EcSnTV6gp pNQWfbJS7asps/coqRwlT+uwYRpJw53CBjkEBq+4JAzzA2hDr7TdBeJye/Y1Ij+y/pZs Ilav1KswT1AopRgxI6LldwhZJu1+xdLs+pUBtiv8ZcCo/zwbpwItzjC2IXBlbfnFB18a w/lA== X-Gm-Message-State: ANhLgQ1u7oi+ltRwAbH/IHBI2eJQYPwyTTUt+z0D1aWlgFoscJfwwNNc iz8qL/SceyAWGiwh1knZjrMatVT/aGnYow== X-Google-Smtp-Source: ADFU+vsDW0uMapJpkdBFIctmCGWTqo9B3c4AiazDAXYWGlJE0Cm4QeK/P1cBpOGdUs/qOsQ5/u6UDQ== X-Received: by 2002:a5d:4687:: with SMTP id u7mr14658575wrq.62.1585575413812; Mon, 30 Mar 2020 06:36:53 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id o14sm20756504wmh.22.2020.03.30.06.36.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2020 06:36:53 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 3/6] docs/conf.py: Raise ConfigError for bad Sphinx Python version Date: Mon, 30 Mar 2020 14:36:45 +0100 Message-Id: <20200330133648.22297-4-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200330133648.22297-1-peter.maydell@linaro.org> References: <20200330133648.22297-1-peter.maydell@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::431 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: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Raise ConfigError rather than VersionRequirementError when we detect that the Python being used by Sphinx is too old. Currently the way we flag the Python version problem up to the user causes Sphinx to print an unnecessary Python stack trace as well as the information about the problem; in most versions of Sphinx this is unavoidable. The upstream Sphinx developers kindly added a feature to allow conf.py to report errors to the user without the backtrace: https://github.com/sphinx-doc/sphinx/commit/be608ca2313fc08eb842f3dc19d0f5d2d8227d08 but the exception type they chose for this was ConfigError. Switch to ConfigError, which won't make any difference with currently deployed Sphinx versions, but will be prettier one day when the user is using a Sphinx version with the new feature. Signed-off-by: Peter Maydell Reviewed-by: John Snow Message-id: 20200313163616.30674-1-peter.maydell@linaro.org --- docs/conf.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index af55f506d5d..7768611e89c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -29,14 +29,15 @@ import os import sys import sphinx -from sphinx.errors import VersionRequirementError +from sphinx.errors import ConfigError # Make Sphinx fail cleanly if using an old Python, rather than obscurely # failing because some code in one of our extensions doesn't work there. -# Unfortunately this doesn't display very neatly (there's an unavoidable -# Python backtrace) but at least the information gets printed... +# In newer versions of Sphinx this will display nicely; in older versions +# Sphinx will also produce a Python backtrace but at least the information +# gets printed... if sys.version_info < (3,5): - raise VersionRequirementError( + raise ConfigError( "QEMU requires a Sphinx that uses Python 3.5 or better\n") # The per-manual conf.py will set qemu_docdir for a single-manual build; From patchwork Mon Mar 30 13:36:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 1263951 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=ptlpOOYv; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48rYTW6ygtz9sPR for ; Tue, 31 Mar 2020 00:39:11 +1100 (AEDT) Received: from localhost ([::1]:50100 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIudB-0007jN-TC for incoming@patchwork.ozlabs.org; Mon, 30 Mar 2020 09:39:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49493) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIub3-0004P8-Ai for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:36:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jIub2-0001Ax-7m for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:36:57 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]:53855) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jIub2-00019e-1f for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:36:56 -0400 Received: by mail-wm1-x32a.google.com with SMTP id b12so19982479wmj.3 for ; Mon, 30 Mar 2020 06:36:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=Tzhpk4dwyOYNDStF5ysavvxsRESBLzN5HDwrZYha4/8=; b=ptlpOOYvB6mk+eUKfTcGMEBgkex5Epg44mYPWz5XwqxkoYN8NSQtgjHDF5Ri9ay+gh 6uhIjifZkJ+twuHQdcyEBVG1axq+UErn9iSFqFsj3q3Vo3gwRV8oVzp0zicvAuTdfz/t AZjVezs5rsn/u3cTz1hcRb2/waQeP9jHDhgzu61FBkNi7VB3i4Rhd/kBoh99SDg0jEqr Kve7T3/myuAb+yvogFtSTDGFqch3gROgU8PVnQoBdgxeDWr4vy+RMJasrvX2upXWeqNk k538NHl1WQHwFVeqS0ZqgibxQwXxzqMrgWGQpVZ5BepfaTTgflv8Z0S+sgaIo1oyd6eZ jETw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Tzhpk4dwyOYNDStF5ysavvxsRESBLzN5HDwrZYha4/8=; b=spqThEpR2NIvw5gmvfTAyRWxdPO3qrbPQxRhQJQkrH+GaO7X7AVppb1Zc2qI5uJS5S TNpuy+GZMx2HN4nqYJUXkpn2zDvuAtqrmdvNSHgi+lWK99ay92vhUzUujFD5Ta9JRkVJ t32CHRsguXvt1rNqwEv2L80vqXi/W6U85H6vZbFJyq3LSgI/gau2vnejuLbAx/j3ywFJ Vm9ufMqU3+IE5h9+HziRycIeCSfNTAB5y2enzIGS98EWaJPpuEWzdm/miKnZI1Rp1AwU aUe7J3sRGhiB5PxnjQwl2cMP98jirY/haTAhEO8HvUKCiPk9Hg5mFG5a4QPP51aJ5JNh Fn7g== X-Gm-Message-State: ANhLgQ0ikw1fTE7QPh+j/PxxDciJUg+pg1GWpY2E4tysmAU+IFa/mYUs io9CaXzFEUojqI39taNx2gqRQVFbV/tZxw== X-Google-Smtp-Source: ADFU+vvifE/z7h0dd5bnLo/nUC2assBgq6XxlAV4AHHcEG9zgCh4cCGL8cEh/ByBhlPRpxJ+lmqg9w== X-Received: by 2002:a05:600c:4410:: with SMTP id u16mr13047793wmn.161.1585575414767; Mon, 30 Mar 2020 06:36:54 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id o14sm20756504wmh.22.2020.03.30.06.36.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2020 06:36:54 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 4/6] hw/arm/xlnx-zynqmp.c: Avoid memory leak in error-return path Date: Mon, 30 Mar 2020 14:36:46 +0100 Message-Id: <20200330133648.22297-5-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200330133648.22297-1-peter.maydell@linaro.org> References: <20200330133648.22297-1-peter.maydell@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::32a 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: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" In xlnx_zynqmp_realize() if the attempt to realize the SD controller object fails then the error-return path will leak the 'bus_name' string. Fix this by deferring the allocation until after the realize has succeeded. Fixes: Coverity CID 1421911 Signed-off-by: Peter Maydell Reviewed-by: Edgar E. Iglesias Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis Message-id: 20200324134947.15384-2-peter.maydell@linaro.org --- hw/arm/xlnx-zynqmp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c index 49f1c8d0de2..a13dbeeacec 100644 --- a/hw/arm/xlnx-zynqmp.c +++ b/hw/arm/xlnx-zynqmp.c @@ -520,7 +520,7 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp) sysbus_connect_irq(SYS_BUS_DEVICE(&s->sata), 0, gic_spi[SATA_INTR]); for (i = 0; i < XLNX_ZYNQMP_NUM_SDHCI; i++) { - char *bus_name = g_strdup_printf("sd-bus%d", i); + char *bus_name; SysBusDevice *sbd = SYS_BUS_DEVICE(&s->sdhci[i]); Object *sdhci = OBJECT(&s->sdhci[i]); @@ -541,6 +541,7 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp) sysbus_connect_irq(sbd, 0, gic_spi[sdhci_intr[i]]); /* Alias controller SD bus to the SoC itself */ + bus_name = g_strdup_printf("sd-bus%d", i); object_property_add_alias(OBJECT(s), bus_name, sdhci, "sd-bus", &error_abort); g_free(bus_name); From patchwork Mon Mar 30 13:36:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 1263952 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=MOHpox2a; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48rYTh1Hn2z9sP7 for ; Tue, 31 Mar 2020 00:39:20 +1100 (AEDT) Received: from localhost ([::1]:50110 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIudK-0007sd-3i for incoming@patchwork.ozlabs.org; Mon, 30 Mar 2020 09:39:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49510) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIub4-0004QU-ED for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:36:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jIub3-0001CK-8p for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:36:58 -0400 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]:46759) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jIub3-0001B8-2e for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:36:57 -0400 Received: by mail-wr1-x42f.google.com with SMTP id j17so21587757wru.13 for ; Mon, 30 Mar 2020 06:36:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=GXWYkaSAnVpJmlpHK48UeIW7/97jzoeF9/dNiAzNhNU=; b=MOHpox2aNNfqHmLQcs5JQy+RQPfI+uvXj/+gD0u/7VbNJ4G9bwyZN/94jF1oJ+KN1+ 9QpsKscJ8IDRHqU77L4mu76zb+dfxLf2Ud+H8+s0wufM9WwfuZXcyboAXYmMBwM2zCc4 WNZtkR7/XYydHhFDH7JOAt1GAoQ35k0elvNoQWF362554I3Z969vyV2/gmEpqhnMfXop f1Uz1shzg19EGucVD4Xut9BPY6Eu3mfbX78KibVcex0ndGaqQ4hRpUwbgRoQ+aTe7ET9 XaW9iiMXltC9kp/U00ObiL0CY8wq+D1uljUHvy3eZfVoIxsqma0CeEyKAs+YHV4TrFlK wKXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GXWYkaSAnVpJmlpHK48UeIW7/97jzoeF9/dNiAzNhNU=; b=Y5LTtc8CZWlhmB/KrNOCDMq1bQPU0Ry3ZloDWU6qboJdNtDqrNw7dCg8SPCmkrbBmx H8JTFxNsfs39FpUDq/UDclbyH+WZ3ICc9IPDoUMxyV9/8n4+4P/GEe+Hvh7kKLem0KiM 7qbqdsqIUsicre9Bd28VfvQKKbVqhRtUuOlVdV6ED3RqKvYMkFn8KS7eEfmeD79TEjZu KXk8vtjmmlfoKsfxcV8giyCaRJJgZWZsN/csQ1g6fuJzK2qbh4ALQeHjNIyz84iFt2wH rFvdawQ01rhwl15bGRgUqT0aQu4PJ61F9XcHoGQvHGULoie5DiJSrFrQWSBSMaPrxcUx hfgQ== X-Gm-Message-State: ANhLgQ03xmFl7+f8Y8XQDdk9Q+ADv1gSeYOXeSycXxP4znFxkefwyNGG d09lH2+r35QkWu1Wij9hRhE1JA/CiMS+7w== X-Google-Smtp-Source: ADFU+vusPuAI1+O1zTHUYSvKB3lH7QyizZ6VcupLZd9RggDMou7flc7L3LuzXoPgA+/tfAOuABZ+zw== X-Received: by 2002:a05:6000:1090:: with SMTP id y16mr14159275wrw.281.1585575415844; Mon, 30 Mar 2020 06:36:55 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id o14sm20756504wmh.22.2020.03.30.06.36.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2020 06:36:55 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 5/6] hw/arm/xlnx-zynqmp.c: Add missing error-propagation code Date: Mon, 30 Mar 2020 14:36:47 +0100 Message-Id: <20200330133648.22297-6-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200330133648.22297-1-peter.maydell@linaro.org> References: <20200330133648.22297-1-peter.maydell@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42f 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: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" In some places in xlnx_zynqmp_realize() we were putting an error into our local Error*, but forgetting to check for failure and pass it back to the caller. Add the missing code. Signed-off-by: Peter Maydell Reviewed-by: Edgar E. Iglesias Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis Message-id: 20200324134947.15384-3-peter.maydell@linaro.org --- hw/arm/xlnx-zynqmp.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c index a13dbeeacec..b84d153d56a 100644 --- a/hw/arm/xlnx-zynqmp.c +++ b/hw/arm/xlnx-zynqmp.c @@ -530,8 +530,20 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp) * - eMMC Specification Version 4.51 */ object_property_set_uint(sdhci, 3, "sd-spec-version", &err); + if (err) { + error_propagate(errp, err); + return; + } object_property_set_uint(sdhci, SDHCI_CAPABILITIES, "capareg", &err); + if (err) { + error_propagate(errp, err); + return; + } object_property_set_uint(sdhci, UHS_I, "uhs", &err); + if (err) { + error_propagate(errp, err); + return; + } object_property_set_bool(sdhci, true, "realized", &err); if (err) { error_propagate(errp, err); @@ -551,6 +563,10 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp) gchar *bus_name; object_property_set_bool(OBJECT(&s->spi[i]), true, "realized", &err); + if (err) { + error_propagate(errp, err); + return; + } sysbus_mmio_map(SYS_BUS_DEVICE(&s->spi[i]), 0, spi_addr[i]); sysbus_connect_irq(SYS_BUS_DEVICE(&s->spi[i]), 0, @@ -565,6 +581,10 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp) } object_property_set_bool(OBJECT(&s->qspi), true, "realized", &err); + if (err) { + error_propagate(errp, err); + return; + } sysbus_mmio_map(SYS_BUS_DEVICE(&s->qspi), 0, QSPI_ADDR); sysbus_mmio_map(SYS_BUS_DEVICE(&s->qspi), 1, LQSPI_ADDR); sysbus_connect_irq(SYS_BUS_DEVICE(&s->qspi), 0, gic_spi[QSPI_IRQ]); @@ -619,6 +639,10 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp) for (i = 0; i < XLNX_ZYNQMP_NUM_GDMA_CH; i++) { object_property_set_uint(OBJECT(&s->gdma[i]), 128, "bus-width", &err); + if (err) { + error_propagate(errp, err); + return; + } object_property_set_bool(OBJECT(&s->gdma[i]), true, "realized", &err); if (err) { error_propagate(errp, err); From patchwork Mon Mar 30 13:36:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 1263954 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=z2dn1tQv; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48rYWD1Hvmz9sRN for ; Tue, 31 Mar 2020 00:40:40 +1100 (AEDT) Received: from localhost ([::1]:50144 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIuec-0001Cn-4r for incoming@patchwork.ozlabs.org; Mon, 30 Mar 2020 09:40:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49520) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIub5-0004Rw-9e for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:37:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jIub4-0001DW-8D for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:36:59 -0400 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:42253) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jIub4-0001CZ-1f for qemu-devel@nongnu.org; Mon, 30 Mar 2020 09:36:58 -0400 Received: by mail-wr1-x443.google.com with SMTP id h15so21634619wrx.9 for ; Mon, 30 Mar 2020 06:36:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=rpCKxKnHkUDXLH/ndhCEOHbuUN0g52+ytampKGXhXJ8=; b=z2dn1tQv8XYK97w5RFrs6g3FJVaZv+/emuEh1L2FrwZj4kJjIU67exGbemYF+q2NEc 4Uv70IsP5VtiDDvpE1tA2o30GWu9ruriRshNmXfDPDc/J9RgxFbhw5GKuZQ2pxmnmyeX EAH1VTy5Qp0mBZCyv0vMcv88Vdb0ofenUVJ1usRjt7eV+Pf5qwSbulCrZByOogqJ+l30 rKzTsqMCUt8tAyDj4uCah+OfvnR1uS+mmjQg8FCPuEy7TKiucn3rBZrj8MZiC4QJhjEm 13f+V5S97a3AW+9szQVuS9sjU8r8GO+sHszCN1Ex3Usbh0anE34ipVaZkQ189llBEPRW UFHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rpCKxKnHkUDXLH/ndhCEOHbuUN0g52+ytampKGXhXJ8=; b=k8cc1wJlYWoLl0mHe0biaFNCOVmIRlzWgLVq5NTkEeCYB8Z8Fkj/M9HrWuCHFJwz7H EYiaUbE9zjORHVjIqXd68mciackQZuqsBX1lxSdKJ1qRSVFmwJbZl3giPFrcQbODAobt PKY/sPnHkgvoVXvgH9V+CEt/Y4yhpSJKxGzkV5ONVVjFpvH4aafReHgcjXzMr7w8jTL8 asExYCNvzlBO0ncW8cyWiVEFd3/+VRITPCqohKlvjZi/earY5P7iJBlQVWG6saW76+ea /eZpM5cLPmNas8CZ8QyC2mhI2JhuvtN2xGBUC4oq7ecL1bFFYOjj51aUrbLRKeTxy2bm h7bw== X-Gm-Message-State: ANhLgQ2gdNH+4MG1BN6uJvifwU3RRLYcjCp6qgF4AQaNY9q+VHBNBa/a BrazcuksysyWwO0g4APKahioVoVOu9ZWjA== X-Google-Smtp-Source: ADFU+vuK295ww31BQw1m+e9H1PyWjfLIQN1npMXZZxW6r/OfltSiyIniL9m3WZf78lwfPu8/rxDCOQ== X-Received: by 2002:a5d:518b:: with SMTP id k11mr14643626wrv.256.1585575416770; Mon, 30 Mar 2020 06:36:56 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id o14sm20756504wmh.22.2020.03.30.06.36.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2020 06:36:56 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 6/6] target/arm: fix incorrect current EL bug in aarch32 exception emulation Date: Mon, 30 Mar 2020 14:36:48 +0100 Message-Id: <20200330133648.22297-7-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200330133648.22297-1-peter.maydell@linaro.org> References: <20200330133648.22297-1-peter.maydell@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::443 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: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Changbin Du The arm_current_el() should be invoked after mode switching. Otherwise, we get a wrong current EL value, since current EL is also determined by current mode. Fixes: 4a2696c0d4 ("target/arm: Set PAN bit as required on exception entry") Signed-off-by: Changbin Du Reviewed-by: Richard Henderson Message-id: 20200328140232.17278-1-changbin.du@gmail.com Signed-off-by: Peter Maydell --- 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 b7b6887241d..163c91a1ccd 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -9172,7 +9172,6 @@ static void take_aarch32_exception(CPUARMState *env, int new_mode, /* Change the CPU state so as to actually take the exception. */ switch_mode(env, new_mode); - new_el = arm_current_el(env); /* * For exceptions taken to AArch32 we must clear the SS bit in both @@ -9184,6 +9183,10 @@ static void take_aarch32_exception(CPUARMState *env, int new_mode, env->condexec_bits = 0; /* Switch to the new mode, and to the correct instruction set. */ env->uncached_cpsr = (env->uncached_cpsr & ~CPSR_M) | new_mode; + + /* This must be after mode switching. */ + new_el = arm_current_el(env); + /* Set new mode endianness */ env->uncached_cpsr &= ~CPSR_E; if (env->cp15.sctlr_el[new_el] & SCTLR_EE) {