From nobody Sun Apr 28 16:31:44 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1679405022; cv=none; d=zohomail.com; s=zohoarc; b=aOhpsqw/VRTEN6MXp4YrUP6kz48ZcGnNfYD6C352kZJy7yRVPpKqdQ6CaZ3xqWn41rqfndWyfHBQeitTMTecEPiw6J17dnDIgoAaHeM0iqXbJBrYoh3uyE3+zH7ZEDC1gYZaVujLBePPePRhhrFi+v+8TGPqo3meFhZh9jvgGME= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1679405022; h=Content-Transfer-Encoding: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=UgGX9i1g+q2y1PHAwmYRpRwyR7y/+LqvXLTfsWRfm90=; b=gxzDH9HQPGxXULtJKUYRFVLWslBT+EWQuqgKfz5liErmv6hqy35XXez/yzVuK+kxDkCm6Sq6FtxkzBbXH3U4xa+7jfTD/Kwcs9w8rslTzKXZA1AbNuLHQrCFsMTEUw97ZywP76UHL57kZnKvH9QWHh+SrSxfd215AqoJN26kq6s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1679405022822172.5644167910989; Tue, 21 Mar 2023 06:23:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pebuv-000059-Du; Tue, 21 Mar 2023 09:20:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pebut-0008WI-KM for qemu-devel@nongnu.org; Tue, 21 Mar 2023 09:20:43 -0400 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pebur-0006aw-LB for qemu-devel@nongnu.org; Tue, 21 Mar 2023 09:20:43 -0400 Received: by mail-wm1-x32e.google.com with SMTP id iw17so4210683wmb.0 for ; Tue, 21 Mar 2023 06:20:41 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id j19-20020a05600c191300b003eddc6aa5fasm7897918wmq.39.2023.03.21.06.20.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Mar 2023 06:20:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1679404839; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=UgGX9i1g+q2y1PHAwmYRpRwyR7y/+LqvXLTfsWRfm90=; b=fKXLX6tsCuwzriNqDywuKHarMXhucw+GX3lNrgTCOnMD4VOHRAE1aG4TfPUgpvsoxV K6eVghOQt2tgvuG4IkBUQpizV5V0P3FXCEqPo2KzhFA0rTTRts7JV86k0arGR7tLX0j+ HappEPrwubcmqa+VVbcV94kqxFcJjtmIwoA4lFW7xFaRBsPsefXwxX9iWQJ8pw8Taxn4 6aPK+88GYMnogGYkoz5moLd9EDmRTa4ccgGUQYwSXK5H2/idd/qsHbbaSK/02POldk2M r+F1VDtHXKgkVmDjbb7WDeMXegNWhQ+fSqVeIZPKmYdI4VmYpHHV9/2pRFkvviV6m0R0 4l8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679404839; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UgGX9i1g+q2y1PHAwmYRpRwyR7y/+LqvXLTfsWRfm90=; b=Lmg8Z4zEe7q5Y/avvXkpRJHcZvIPUutH9QqJPbLn/i7wZvi0xE6joLIg3YSQVPdvVB PU0+zjqYQNljkBsLyV5IBcNhmse5R0Gza/in6TTduWUeKzGTDowSnTBbGECWUhZFLTdC iu6IkEbI9/hOfUCpL0NfMk6kRUc/DNowhI0f7QC2x6IVZ0M64iUupU1W5rd/rd/BOJHF EeL1DnV6pkFvUQuYd8yg20BHulmaxvJ6AqAy8ESCNUwGY2/572KbI0EX1crrYlQy+yM7 nhBCM+Lue4NFxxZWe/nZFyVAfPVT1P69EGFFeR9xJW1tZO3O3JtWIeipOHDNml3BF8xA 9V/Q== X-Gm-Message-State: AO0yUKVsyLxe+Huk0loaH++iry9bBhDhaEUu+0G2Zl4gxZStzxvQoiCB sDGq40Vh6zdFPjhPQ8Sg3kDA3tCi9Q9IpRWYDPc= X-Google-Smtp-Source: AK7set9oTYF8vAOX8RiN62Vc9frUHYRGgs3qIAt0w0FonEXUxZkx6UY0oV4j2yKcqIDSbeG7gCG71Q== X-Received: by 2002:a05:600c:204f:b0:3ed:fddf:b771 with SMTP id p15-20020a05600c204f00b003edfddfb771mr2757967wmg.12.1679404839387; Tue, 21 Mar 2023 06:20:39 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 1/8] target/arm: Add Neoverse-N1 registers Date: Tue, 21 Mar 2023 13:20:29 +0000 Message-Id: <20230321132036.1836617-2-peter.maydell@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230321132036.1836617-1-peter.maydell@linaro.org> References: <20230321132036.1836617-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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; Received-SPF: pass client-ip=2a00:1450:4864:20::32e; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1679405023284100001 Content-Type: text/plain; charset="utf-8" From: Chen Baozi Add implementation defined registers for neoverse-n1 which would be accessed by TF-A. Since there is no DSU in Qemu, CPUCFR_EL1.SCU bit is set to 1 to avoid DSU registers definition. Signed-off-by: Chen Baozi Reviewed-by: Peter Maydell Tested-by: Marcin Juszkiewicz Message-id: 20230313033936.585669-1-chenbaozi@phytium.com.cn Signed-off-by: Peter Maydell --- target/arm/cpu64.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index 4066950da15..0fb07cc7b6d 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -21,6 +21,7 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "cpu.h" +#include "cpregs.h" #include "qemu/module.h" #include "sysemu/kvm.h" #include "sysemu/hvf.h" @@ -1027,6 +1028,72 @@ static void aarch64_a64fx_initfn(Object *obj) /* TODO: Add A64FX specific HPC extension registers */ } =20 +static const ARMCPRegInfo neoverse_n1_cp_reginfo[] =3D { + { .name =3D "ATCR_EL1", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 0, .crn =3D 15, .crm =3D 7, .opc2 =3D 0, + .access =3D PL1_RW, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, + { .name =3D "ATCR_EL2", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 4, .crn =3D 15, .crm =3D 7, .opc2 =3D 0, + .access =3D PL2_RW, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, + { .name =3D "ATCR_EL3", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 6, .crn =3D 15, .crm =3D 7, .opc2 =3D 0, + .access =3D PL3_RW, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, + { .name =3D "ATCR_EL12", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 5, .crn =3D 15, .crm =3D 7, .opc2 =3D 0, + .access =3D PL2_RW, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, + { .name =3D "AVTCR_EL2", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 4, .crn =3D 15, .crm =3D 7, .opc2 =3D 1, + .access =3D PL2_RW, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, + { .name =3D "CPUACTLR_EL1", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 0, .crn =3D 15, .crm =3D 1, .opc2 =3D 0, + .access =3D PL1_RW, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, + { .name =3D "CPUACTLR2_EL1", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 0, .crn =3D 15, .crm =3D 1, .opc2 =3D 1, + .access =3D PL1_RW, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, + { .name =3D "CPUACTLR3_EL1", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 0, .crn =3D 15, .crm =3D 1, .opc2 =3D 2, + .access =3D PL1_RW, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, + /* + * Report CPUCFR_EL1.SCU as 1, as we do not implement the DSU + * (and in particular its system registers). + */ + { .name =3D "CPUCFR_EL1", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 0, .crn =3D 15, .crm =3D 0, .opc2 =3D 0, + .access =3D PL1_R, .type =3D ARM_CP_CONST, .resetvalue =3D 4 }, + { .name =3D "CPUECTLR_EL1", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 0, .crn =3D 15, .crm =3D 1, .opc2 =3D 4, + .access =3D PL1_RW, .type =3D ARM_CP_CONST, .resetvalue =3D 0x961563= 010 }, + { .name =3D "CPUPCR_EL3", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 6, .crn =3D 15, .crm =3D 8, .opc2 =3D 1, + .access =3D PL3_RW, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, + { .name =3D "CPUPMR_EL3", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 6, .crn =3D 15, .crm =3D 8, .opc2 =3D 3, + .access =3D PL3_RW, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, + { .name =3D "CPUPOR_EL3", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 6, .crn =3D 15, .crm =3D 8, .opc2 =3D 2, + .access =3D PL3_RW, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, + { .name =3D "CPUPSELR_EL3", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 6, .crn =3D 15, .crm =3D 8, .opc2 =3D 0, + .access =3D PL3_RW, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, + { .name =3D "CPUPWRCTLR_EL1", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 0, .crn =3D 15, .crm =3D 2, .opc2 =3D 7, + .access =3D PL1_RW, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, + { .name =3D "ERXPFGCDN_EL1", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 0, .crn =3D 15, .crm =3D 2, .opc2 =3D 2, + .access =3D PL1_RW, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, + { .name =3D "ERXPFGCTL_EL1", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 0, .crn =3D 15, .crm =3D 2, .opc2 =3D 1, + .access =3D PL1_RW, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, + { .name =3D "ERXPFGF_EL1", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 0, .crn =3D 15, .crm =3D 2, .opc2 =3D 0, + .access =3D PL1_RW, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, +}; + +static void define_neoverse_n1_cp_reginfo(ARMCPU *cpu) +{ + define_arm_cp_regs(cpu, neoverse_n1_cp_reginfo); +} + static void aarch64_neoverse_n1_initfn(Object *obj) { ARMCPU *cpu =3D ARM_CPU(obj); @@ -1094,6 +1161,8 @@ static void aarch64_neoverse_n1_initfn(Object *obj) =20 /* From D5.1 AArch64 PMU register summary */ cpu->isar.reset_pmcr_el0 =3D 0x410c3000; + + define_neoverse_n1_cp_reginfo(cpu); } =20 static void aarch64_host_initfn(Object *obj) --=20 2.34.1 From nobody Sun Apr 28 16:31:44 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1679404898; cv=none; d=zohomail.com; s=zohoarc; b=KjRVhID3NDq00HCKvhBMF4WbN2L8OsoTZ71gtgxWj9iIoOXlYuJNjKB/3fQvZThk4rccAMuVqj0KWyE2fAdWmOFKl2epdj2W6cSYNOZkShRFQbTapJJ4E3YvwkoNYe3ZOfSBW6OyN+nP2+f7giM8pGmAKvyQsLVSawflPzr27P0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1679404898; h=Content-Type:Content-Transfer-Encoding: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=dI61HmBS8dvo6fODWjrvfFsUUviRSWQ6NsX3TJ+/KQg=; b=Ckr7445h0ocuoAk0BjS81VI4BhnVaXSoC/h9xe2NwdHeYBLm78rwW7/lBzYcEJ3akwlAYFyUvOt3RUsq+20e3ePCpRyepFiZLLPUOnzt1b8elx2N4PNRu02s2P0OrQe/Sybdzou9Ef8tl/5HXhRsHtY+xaSQPqM7qq7Z7RMiw+s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1679404898372843.6991880497426; Tue, 21 Mar 2023 06:21:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pebuw-000061-5O; Tue, 21 Mar 2023 09:20:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pebut-00004v-SJ for qemu-devel@nongnu.org; Tue, 21 Mar 2023 09:20:43 -0400 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pebur-0006b9-NY for qemu-devel@nongnu.org; Tue, 21 Mar 2023 09:20:43 -0400 Received: by mail-wm1-x331.google.com with SMTP id w11so8492091wmo.2 for ; Tue, 21 Mar 2023 06:20:41 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id j19-20020a05600c191300b003eddc6aa5fasm7897918wmq.39.2023.03.21.06.20.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Mar 2023 06:20:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1679404840; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=dI61HmBS8dvo6fODWjrvfFsUUviRSWQ6NsX3TJ+/KQg=; b=BnEu2D6qCAmwC+r5DI2G+2rr84OymAC3mH6NXy3bKH6T41tOM3cLfjBBbrNiBLLgvv FECFy3dslAwRkV4IDkBPjb1+FMKP7RJa6NEDUXguuxLEz2nz0aZygSsgZrbXxa03Ucpt Xy3FuPSJtu7Jz7p/comjW80pG++ZtR5VccW6rdQBsmci1buyYa2+mR/SXW5yYaaFN2ZR YZCIUhgqi5hIsxN+ne6ChpiYsU6zfJV0f5+2Lz4r1p1TDq+1nqDd0Rl/5Ct+lbrlFReE 7ETKt/nf3UX3EUHmMDlAiPczGfkrD73itoVkxg9eVTiXi35+UYM0exv2cKJ91SzLILQ8 KyhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679404840; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dI61HmBS8dvo6fODWjrvfFsUUviRSWQ6NsX3TJ+/KQg=; b=D/DqrhN9Ti9qltsat2xfMei3lUlI5ddYrG1AQoIajYeUGFA8vhagc6YdiIMve2cFn2 Su/eaHsWQhNlQIahS0w/HKvvkEhRZwzoxnxV/g3c7tzpod9+oPin2ZCM84fjJmy1LbE0 g5pKW9FtUjYvEHzCnfEMqHPdPEKdSRSK6n48FejZasUxwc6h/V4STT2WW9ImOKz5F7p+ oVimIPMKAsuxJtC2Ny0MhbVB1XF5DnJP0pe8p6YzP/87Epu8xVvTsgFYIGd32nDGxnyJ lEwK5m6jetybh085z48Z9Bn2txtoCmLb/QVArhbmk/S0srIsaoE+BzAlbDYkeq3OJhlB g1yw== X-Gm-Message-State: AO0yUKVSToSgJEn1Eevc+yJtJ/49kvCY+UAkE2s25tSxHKc3hPwMpXx/ bVv3dSvM91V2MWmcdgqH0WKEHG2nEzNAH1rvp8A= X-Google-Smtp-Source: AK7set/L8atKi/+a9oEkAKEXxgZDAAYLNnerHUai4yAI1XOWbnVXAqkSS1FcvjeTktyTBpnWAo/xtQ== X-Received: by 2002:a05:600c:3793:b0:3ed:2702:feea with SMTP id o19-20020a05600c379300b003ed2702feeamr2023951wmr.41.1679404840164; Tue, 21 Mar 2023 06:20:40 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 2/8] hw/char/cadence_uart: Fix guards on invalid BRGR/BDIV settings Date: Tue, 21 Mar 2023 13:20:30 +0000 Message-Id: <20230321132036.1836617-3-peter.maydell@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230321132036.1836617-1-peter.maydell@linaro.org> References: <20230321132036.1836617-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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; Received-SPF: pass client-ip=2a00:1450:4864:20::331; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x331.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1679404898741100001 The cadence UART attempts to avoid allowing the guest to set invalid baud rate register values in the uart_write() function. However it does the "mask to the size of the register field" and "check for invalid values" in the wrong order, which means that a malicious guest can get a bogus value into the register by setting also some high bits in the value, and cause QEMU to crash by division-by-zero. Do the mask before the bounds check instead of afterwards. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1493 Signed-off-by: Peter Maydell Reviewed-by: Thomas Huth Reviewed-by: Edgar E. Iglesias Reviewed-by: Wilfred Mallawa Reviewed-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Qiang Liu Message-id: 20230314170804.1196232-1-peter.maydell@linaro.org --- hw/char/cadence_uart.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/char/cadence_uart.c b/hw/char/cadence_uart.c index c069a30842e..807e3985419 100644 --- a/hw/char/cadence_uart.c +++ b/hw/char/cadence_uart.c @@ -450,13 +450,15 @@ static MemTxResult uart_write(void *opaque, hwaddr of= fset, } break; case R_BRGR: /* Baud rate generator */ + value &=3D 0xffff; if (value >=3D 0x01) { - s->r[offset] =3D value & 0xFFFF; + s->r[offset] =3D value; } break; case R_BDIV: /* Baud rate divider */ + value &=3D 0xff; if (value >=3D 0x04) { - s->r[offset] =3D value & 0xFF; + s->r[offset] =3D value; } break; default: --=20 2.34.1 From nobody Sun Apr 28 16:31:44 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1679405025; cv=none; d=zohomail.com; s=zohoarc; b=ZmmP+brTRMaRRkUWxUsvfpPh3/CuY+VqFvmIw/0WwwDoLst4elnPFpgenRXEsgF6MitNt6UkgolCYd2XGKODNeAJjXhR9ALWoLmnkEAw0biA78tGpgngJzOO063Tvw6E4BzO+klihGxcM5QMqvDhulAGA1GGt0z10yRg6boNaic= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1679405025; h=Content-Transfer-Encoding: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=IZWERytkNXmomft2NnojCvM5GGqoNQvPAxE/TFJNbOI=; b=GZlpXpnJO8wA+QAmFEPtLCSaTtFp/t/g6TBPdVhmtwywTesEVzJec3eHhex+T/+56CnCDYY7yLQTgyhFDRqlgq6tAA/aRgk7fnNb1huzMqYUcorhpg0FMTe21KLX/u6BlHV633ciAET1MEQj9hdC6Z3PlUZ6Mt1hwm+d5ySR9HU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1679405025509594.6028077783499; Tue, 21 Mar 2023 06:23:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pebux-00006g-85; Tue, 21 Mar 2023 09:20:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pebuv-00005N-Hs for qemu-devel@nongnu.org; Tue, 21 Mar 2023 09:20:45 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pebut-0006dM-KM for qemu-devel@nongnu.org; Tue, 21 Mar 2023 09:20:45 -0400 Received: by mail-wm1-x32a.google.com with SMTP id o32so3155630wms.1 for ; Tue, 21 Mar 2023 06:20:43 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id j19-20020a05600c191300b003eddc6aa5fasm7897918wmq.39.2023.03.21.06.20.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Mar 2023 06:20:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1679404842; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=IZWERytkNXmomft2NnojCvM5GGqoNQvPAxE/TFJNbOI=; b=gSt0QxYU1p5KtZ6vCHhAz1OIcB2NuRSIZF1SMOd+HYPltzm3uLj3StFMYmV6XHA6eg IhcHUuOGhD7Ls7BU9OIvHfejs6SKwaVOzagZvX+b+fkvdXig5Nk31NCWGY5sRVm+jLvs UtIu7Ml62hV3e9J16Iq/CTiEP8SWLzsxjOcl4MhaKLg36QEf0hM8olAe96Vn05INAQRx MWraBSc3RZE07SZt94adiSzPC19mK2WwzD6+V5bRi8Yp60RoKGIV9fqDA8Q8QanBurnq muLhzBiP82YqarYpOMjESLSXRRYDio+ROoEA+A/KIHVzYEZCgErGfzwr45zlzhPC1Jxb mwFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679404842; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IZWERytkNXmomft2NnojCvM5GGqoNQvPAxE/TFJNbOI=; b=YNqKyL5L3SsC0mNQQsN27ELyDPwgjvl9k8RL4r9LMy2lGnb9dPeLVEluVQR+55sDI7 RkhZh6QCrNe5zRt3jvrCnlVPhsEydfhFO4f704Ae5VC5qPTt058b5U2wPkBwlZOwJXBA 6+ic+mSqOsGJRAYC3kxjSNvtRZLjZGDybj26Kh5UP0mKtQja1edGKySdLSpO2wMR/g18 RSLu0CaCol2WJ7ovUARtNNawHDWms4DqXOer8vIdBjuUiKohWMInoAHWnqeT+TzMCtKh CNAFRd6MdVMHxUnhvIEVx08FVgodCdHNHlLQYmKPRL4A7JtcsHI7QCm5u1oq/vuAt+jj 4Zfg== X-Gm-Message-State: AO0yUKUi1dmmYQk4HMHpCvuTRg1+bTh6dWEnfKanmHFN1DzG+aueN5Jd MwXPHF/84G/n8bA7QKJ8LIu6G6uV0kfeeSj7LWU= X-Google-Smtp-Source: AK7set8G+R5O8RUnRImPo9ChAPdL9Z1kbfBgEwrGJwsD+pDVeQc1x49LURcDEymclV3RCl/Q1pBsEw== X-Received: by 2002:a05:600c:2101:b0:3ed:276d:81a4 with SMTP id u1-20020a05600c210100b003ed276d81a4mr2561860wml.32.1679404841905; Tue, 21 Mar 2023 06:20:41 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 3/8] contrib/elf2dmp: fix code style Date: Tue, 21 Mar 2023 13:20:31 +0000 Message-Id: <20230321132036.1836617-4-peter.maydell@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230321132036.1836617-1-peter.maydell@linaro.org> References: <20230321132036.1836617-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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; Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1679405027294100007 Content-Type: text/plain; charset="utf-8" From: Viktor Prutyanov Originally elf2dmp were added with some code style issues, especially in pe.h header, and some were introduced by 2d0fc797faaa73fbc1d30f5f9e90407bf3dd93f0. Fix them now. Signed-off-by: Viktor Prutyanov Reviewed-by: Annie Li Message-id: 20230222211246.883679-2-viktor@daynix.com Signed-off-by: Peter Maydell --- contrib/elf2dmp/pe.h | 100 ++++++++++++++++++------------------ contrib/elf2dmp/addrspace.c | 1 + contrib/elf2dmp/main.c | 9 ++-- 3 files changed, 57 insertions(+), 53 deletions(-) diff --git a/contrib/elf2dmp/pe.h b/contrib/elf2dmp/pe.h index c2a4a6ba7c2..807d0063649 100644 --- a/contrib/elf2dmp/pe.h +++ b/contrib/elf2dmp/pe.h @@ -33,70 +33,70 @@ typedef struct IMAGE_DOS_HEADER { } __attribute__ ((packed)) IMAGE_DOS_HEADER; =20 typedef struct IMAGE_FILE_HEADER { - uint16_t Machine; - uint16_t NumberOfSections; - uint32_t TimeDateStamp; - uint32_t PointerToSymbolTable; - uint32_t NumberOfSymbols; - uint16_t SizeOfOptionalHeader; - uint16_t Characteristics; + uint16_t Machine; + uint16_t NumberOfSections; + uint32_t TimeDateStamp; + uint32_t PointerToSymbolTable; + uint32_t NumberOfSymbols; + uint16_t SizeOfOptionalHeader; + uint16_t Characteristics; } __attribute__ ((packed)) IMAGE_FILE_HEADER; =20 typedef struct IMAGE_DATA_DIRECTORY { - uint32_t VirtualAddress; - uint32_t Size; + uint32_t VirtualAddress; + uint32_t Size; } __attribute__ ((packed)) IMAGE_DATA_DIRECTORY; =20 #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 =20 typedef struct IMAGE_OPTIONAL_HEADER64 { - uint16_t Magic; /* 0x20b */ - uint8_t MajorLinkerVersion; - uint8_t MinorLinkerVersion; - uint32_t SizeOfCode; - uint32_t SizeOfInitializedData; - uint32_t SizeOfUninitializedData; - uint32_t AddressOfEntryPoint; - uint32_t BaseOfCode; - uint64_t ImageBase; - uint32_t SectionAlignment; - uint32_t FileAlignment; - uint16_t MajorOperatingSystemVersion; - uint16_t MinorOperatingSystemVersion; - uint16_t MajorImageVersion; - uint16_t MinorImageVersion; - uint16_t MajorSubsystemVersion; - uint16_t MinorSubsystemVersion; - uint32_t Win32VersionValue; - uint32_t SizeOfImage; - uint32_t SizeOfHeaders; - uint32_t CheckSum; - uint16_t Subsystem; - uint16_t DllCharacteristics; - uint64_t SizeOfStackReserve; - uint64_t SizeOfStackCommit; - uint64_t SizeOfHeapReserve; - uint64_t SizeOfHeapCommit; - uint32_t LoaderFlags; - uint32_t NumberOfRvaAndSizes; - IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; + uint16_t Magic; /* 0x20b */ + uint8_t MajorLinkerVersion; + uint8_t MinorLinkerVersion; + uint32_t SizeOfCode; + uint32_t SizeOfInitializedData; + uint32_t SizeOfUninitializedData; + uint32_t AddressOfEntryPoint; + uint32_t BaseOfCode; + uint64_t ImageBase; + uint32_t SectionAlignment; + uint32_t FileAlignment; + uint16_t MajorOperatingSystemVersion; + uint16_t MinorOperatingSystemVersion; + uint16_t MajorImageVersion; + uint16_t MinorImageVersion; + uint16_t MajorSubsystemVersion; + uint16_t MinorSubsystemVersion; + uint32_t Win32VersionValue; + uint32_t SizeOfImage; + uint32_t SizeOfHeaders; + uint32_t CheckSum; + uint16_t Subsystem; + uint16_t DllCharacteristics; + uint64_t SizeOfStackReserve; + uint64_t SizeOfStackCommit; + uint64_t SizeOfHeapReserve; + uint64_t SizeOfHeapCommit; + uint32_t LoaderFlags; + uint32_t NumberOfRvaAndSizes; + IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; } __attribute__ ((packed)) IMAGE_OPTIONAL_HEADER64; =20 typedef struct IMAGE_NT_HEADERS64 { - uint32_t Signature; - IMAGE_FILE_HEADER FileHeader; - IMAGE_OPTIONAL_HEADER64 OptionalHeader; + uint32_t Signature; + IMAGE_FILE_HEADER FileHeader; + IMAGE_OPTIONAL_HEADER64 OptionalHeader; } __attribute__ ((packed)) IMAGE_NT_HEADERS64; =20 typedef struct IMAGE_DEBUG_DIRECTORY { - uint32_t Characteristics; - uint32_t TimeDateStamp; - uint16_t MajorVersion; - uint16_t MinorVersion; - uint32_t Type; - uint32_t SizeOfData; - uint32_t AddressOfRawData; - uint32_t PointerToRawData; + uint32_t Characteristics; + uint32_t TimeDateStamp; + uint16_t MajorVersion; + uint16_t MinorVersion; + uint32_t Type; + uint32_t SizeOfData; + uint32_t AddressOfRawData; + uint32_t PointerToRawData; } __attribute__ ((packed)) IMAGE_DEBUG_DIRECTORY; =20 #define IMAGE_DEBUG_TYPE_CODEVIEW 2 diff --git a/contrib/elf2dmp/addrspace.c b/contrib/elf2dmp/addrspace.c index 53ded170618..0b04cba00e5 100644 --- a/contrib/elf2dmp/addrspace.c +++ b/contrib/elf2dmp/addrspace.c @@ -11,6 +11,7 @@ static struct pa_block *pa_space_find_block(struct pa_space *ps, uint64_t = pa) { size_t i; + for (i =3D 0; i < ps->block_nr; i++) { if (ps->block[i].paddr <=3D pa && pa <=3D ps->block[i].paddr + ps->block[i].size) { diff --git a/contrib/elf2dmp/main.c b/contrib/elf2dmp/main.c index d77b8f98f78..92247642395 100644 --- a/contrib/elf2dmp/main.c +++ b/contrib/elf2dmp/main.c @@ -282,14 +282,16 @@ static int fill_header(WinDumpHeader64 *hdr, struct p= a_space *ps, }; =20 for (i =3D 0; i < ps->block_nr; i++) { - h.PhysicalMemoryBlock.NumberOfPages +=3D ps->block[i].size / ELF2D= MP_PAGE_SIZE; + h.PhysicalMemoryBlock.NumberOfPages +=3D + ps->block[i].size / ELF2DMP_PAGE_SIZE; h.PhysicalMemoryBlock.Run[i] =3D (WinDumpPhyMemRun64) { .BasePage =3D ps->block[i].paddr / ELF2DMP_PAGE_SIZE, .PageCount =3D ps->block[i].size / ELF2DMP_PAGE_SIZE, }; } =20 - h.RequiredDumpSpace +=3D h.PhysicalMemoryBlock.NumberOfPages << ELF2DM= P_PAGE_BITS; + h.RequiredDumpSpace +=3D + h.PhysicalMemoryBlock.NumberOfPages << ELF2DMP_PAGE_BITS; =20 *hdr =3D h; =20 @@ -299,7 +301,8 @@ static int fill_header(WinDumpHeader64 *hdr, struct pa_= space *ps, static int fill_context(KDDEBUGGER_DATA64 *kdbg, struct va_space *vs, QEMU_Elf *qe) { - int i; + int i; + for (i =3D 0; i < qe->state_nr; i++) { uint64_t Prcb; uint64_t Context; --=20 2.34.1 From nobody Sun Apr 28 16:31:44 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1679405070; cv=none; d=zohomail.com; s=zohoarc; b=MfYvoTUadJqJ9qHj4rQnb4DduQfHol8YTVTNrKG4fKHP7l9AvS4qxg48bqBuUTjuxrhbcFC23vzs0qrK9gWycY3LKeaa4rQrp65LvZmwUHOt/G6UiV5kMTwpQTEsqyHInmroMLyy4JPuAUtFqZuXiinhe9+qjsnlDq3jIzPMqHE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1679405070; h=Content-Transfer-Encoding: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=hltfvwW9lBaJea+gwuBtyl1R81ssrvkZkLQe6XX9gms=; b=FJmLBr2l3jsuYogd7axdMuprlnU+iH/7nQm/L+GPzGrfOpGBOVMTGRqKWsHXPZ7ahz2djX+JDvVHEI+gZ33S2K7Bbx1aWs2dLTlYsSW4GU09edZHP1y0AHmicI+dvA3MmukFVWB5U61xDnM/eOO3JaqXtXAouOBMIReCeSOiN88= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1679405070212505.8564618992049; Tue, 21 Mar 2023 06:24:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pebux-00008G-J6; Tue, 21 Mar 2023 09:20:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pebuw-00005y-1N for qemu-devel@nongnu.org; Tue, 21 Mar 2023 09:20:46 -0400 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pebuu-0006dk-9A for qemu-devel@nongnu.org; Tue, 21 Mar 2023 09:20:45 -0400 Received: by mail-wm1-x331.google.com with SMTP id l15-20020a05600c4f0f00b003ed58a9a15eso9436749wmq.5 for ; Tue, 21 Mar 2023 06:20:43 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id j19-20020a05600c191300b003eddc6aa5fasm7897918wmq.39.2023.03.21.06.20.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Mar 2023 06:20:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1679404843; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=hltfvwW9lBaJea+gwuBtyl1R81ssrvkZkLQe6XX9gms=; b=KNfK6xJxYBL62r0yjkLQrBtPxgbOMKvgHFpxxym9rwzBFuNiGr6Ke0U+DSliyhLSsD Bjo0ZnAFNm2wVRDmgv93uXwlun2bhtxMmRCpQLbwjvo8NR6FsMWpyIRULWa2AlUP4ogW cdTSrNeId6FJ3zwV2Rza4AYvjqV6RFZvw/r48pgX74GJAzuuMATgwNMCWFVRhWOS2Fzb DNSGVvCGWPWMteR6PO4yblS/1zbCtDGjSwuUiYF7wBDOAMbAvmr2AEqrhUoZPxfRapB+ JCjcxD0LBNox7C5T0Xnx4trjGk4UhfbN5xjpc8dnqpqXNgbrDlG1r9+cxKrO9FWEDw8K FBQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679404843; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hltfvwW9lBaJea+gwuBtyl1R81ssrvkZkLQe6XX9gms=; b=OYvk+LBpbXnmlbv1q1Zj0slAxbS5rKS15C40aTVBxdbUbG0zHb3VAuDppreo67/yK7 izSmBUAx/m9VCeXSBhfOWIWx6BUF/6yQ6RFhkg7UVn6kQZljRNRpuV9q7GgiCeSUMD8j E/lfw9eFT+eA39o9mePPwB0fyyr5m7IiiFb+Isfa4Kc4R7OZQ+Rsav52YpXcdqiXyfPC woqbnpOKz2Xcu1XS3vv6FeAWAid2vc8HvZoiq8RTK2qqp/T/Kx+7yz7YNNAyGw/8CjV8 fn4+FKsSWBCwQCuOiEkfcdpSKNOqM6COHli3M3nSPkxy+BGjxjoAaknknZvNjE4oDf8c qK+Q== X-Gm-Message-State: AO0yUKV0J0Sv+KqX6UoeXxsfTUDyNBF2hRxs363v8ggv6hWsSlYevVAj K5vXQVVCQ4jMYhJf49sA6enLYU9zyKwebh8rYx4= X-Google-Smtp-Source: AK7set/yi3AWANjatu37kA82IiucRievQb4FhNyvkAgOnCWPuxqSa/2LbqawO1XMBCXkutLZONcchQ== X-Received: by 2002:a7b:ce13:0:b0:3ed:8360:e54 with SMTP id m19-20020a7bce13000000b003ed83600e54mr2531584wmc.8.1679404842807; Tue, 21 Mar 2023 06:20:42 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 4/8] contrib/elf2dmp: move PE dir search to pe_get_data_dir_entry Date: Tue, 21 Mar 2023 13:20:32 +0000 Message-Id: <20230321132036.1836617-5-peter.maydell@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230321132036.1836617-1-peter.maydell@linaro.org> References: <20230321132036.1836617-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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; Received-SPF: pass client-ip=2a00:1450:4864:20::331; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x331.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1679405071590100003 Content-Type: text/plain; charset="utf-8" From: Viktor Prutyanov Move out PE directory search functionality to be reused not only for Debug Directory processing but for arbitrary PE directory. Signed-off-by: Viktor Prutyanov Reviewed-by: Annie Li Message-id: 20230222211246.883679-3-viktor@daynix.com Signed-off-by: Peter Maydell --- contrib/elf2dmp/main.c | 71 +++++++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 29 deletions(-) diff --git a/contrib/elf2dmp/main.c b/contrib/elf2dmp/main.c index 92247642395..2f6028d8eb3 100644 --- a/contrib/elf2dmp/main.c +++ b/contrib/elf2dmp/main.c @@ -333,6 +333,45 @@ static int fill_context(KDDEBUGGER_DATA64 *kdbg, return 0; } =20 +static int pe_get_data_dir_entry(uint64_t base, void *start_addr, int idx, + void *entry, size_t size, struct va_space *vs) +{ + const char e_magic[2] =3D "MZ"; + const char Signature[4] =3D "PE\0\0"; + IMAGE_DOS_HEADER *dos_hdr =3D start_addr; + IMAGE_NT_HEADERS64 nt_hdrs; + IMAGE_FILE_HEADER *file_hdr =3D &nt_hdrs.FileHeader; + IMAGE_OPTIONAL_HEADER64 *opt_hdr =3D &nt_hdrs.OptionalHeader; + IMAGE_DATA_DIRECTORY *data_dir =3D nt_hdrs.OptionalHeader.DataDirector= y; + + QEMU_BUILD_BUG_ON(sizeof(*dos_hdr) >=3D ELF2DMP_PAGE_SIZE); + + if (memcmp(&dos_hdr->e_magic, e_magic, sizeof(e_magic))) { + return 1; + } + + if (va_space_rw(vs, base + dos_hdr->e_lfanew, + &nt_hdrs, sizeof(nt_hdrs), 0)) { + return 1; + } + + if (memcmp(&nt_hdrs.Signature, Signature, sizeof(Signature)) || + file_hdr->Machine !=3D 0x8664 || opt_hdr->Magic !=3D 0x020b) { + return 1; + } + + if (va_space_rw(vs, + base + data_dir[idx].VirtualAddress, + entry, size, 0)) { + return 1; + } + + printf("Data directory entry #%d: RVA =3D 0x%08"PRIx32"\n", idx, + (uint32_t)data_dir[idx].VirtualAddress); + + return 0; +} + static int write_dump(struct pa_space *ps, WinDumpHeader64 *hdr, const char *name) { @@ -369,42 +408,16 @@ static int write_dump(struct pa_space *ps, static int pe_get_pdb_symstore_hash(uint64_t base, void *start_addr, char *hash, struct va_space *vs) { - const char e_magic[2] =3D "MZ"; - const char Signature[4] =3D "PE\0\0"; const char sign_rsds[4] =3D "RSDS"; - IMAGE_DOS_HEADER *dos_hdr =3D start_addr; - IMAGE_NT_HEADERS64 nt_hdrs; - IMAGE_FILE_HEADER *file_hdr =3D &nt_hdrs.FileHeader; - IMAGE_OPTIONAL_HEADER64 *opt_hdr =3D &nt_hdrs.OptionalHeader; - IMAGE_DATA_DIRECTORY *data_dir =3D nt_hdrs.OptionalHeader.DataDirector= y; IMAGE_DEBUG_DIRECTORY debug_dir; OMFSignatureRSDS rsds; char *pdb_name; size_t pdb_name_sz; size_t i; =20 - QEMU_BUILD_BUG_ON(sizeof(*dos_hdr) >=3D ELF2DMP_PAGE_SIZE); - - if (memcmp(&dos_hdr->e_magic, e_magic, sizeof(e_magic))) { - return 1; - } - - if (va_space_rw(vs, base + dos_hdr->e_lfanew, - &nt_hdrs, sizeof(nt_hdrs), 0)) { - return 1; - } - - if (memcmp(&nt_hdrs.Signature, Signature, sizeof(Signature)) || - file_hdr->Machine !=3D 0x8664 || opt_hdr->Magic !=3D 0x020b) { - return 1; - } - - printf("Debug Directory RVA =3D 0x%08"PRIx32"\n", - (uint32_t)data_dir[IMAGE_FILE_DEBUG_DIRECTORY].VirtualAddress); - - if (va_space_rw(vs, - base + data_dir[IMAGE_FILE_DEBUG_DIRECTORY].VirtualAddress, - &debug_dir, sizeof(debug_dir), 0)) { + if (pe_get_data_dir_entry(base, start_addr, IMAGE_FILE_DEBUG_DIRECTORY, + &debug_dir, sizeof(debug_dir), vs)) { + eprintf("Failed to get Debug Directory\n"); return 1; } =20 --=20 2.34.1 From nobody Sun Apr 28 16:31:44 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1679404968; cv=none; d=zohomail.com; s=zohoarc; b=UGVoVLvTYHOq/jeD9kGjswYIjzgCJoRMKIjhXsPPcQXRlGZyajGdkXyuHc12ygEfqZpNJafA1uYxWqssQpYC07Y0qYpfGTSGRoqBIicCyoH29mkcyKGOODMD97OptEAwyT4qcB7akmK5QY7ruknfo3NnMqiQfJOmEpJUS4M81zM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1679404968; h=Content-Transfer-Encoding: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=7k/7Hxrdjupf5zq7nWkwxPkwQ/tKKC42EfTMP4iP9ag=; b=ih18cv2iyJbEp6WsjJ3XwzpaFED6lIq1dOowaeW97VDTEGGx2SJK3VoYDmUtcYQbeZghTOUNjDC4Nus+Bcvlyaj7fI7iEyj1tpK6fw9QifZSaO5ai0ugudpZWSr1f7pAavQDVFaz3u6RudT1gwo5uya1tZ+EPv191/IbQOnNAAI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1679404968982148.493290378888; Tue, 21 Mar 2023 06:22:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pebuz-00009s-1E; Tue, 21 Mar 2023 09:20:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pebux-00007G-5z for qemu-devel@nongnu.org; Tue, 21 Mar 2023 09:20:47 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pebuv-0006eb-5N for qemu-devel@nongnu.org; Tue, 21 Mar 2023 09:20:46 -0400 Received: by mail-wm1-x32a.google.com with SMTP id o40-20020a05600c512800b003eddedc47aeso3991193wms.3 for ; Tue, 21 Mar 2023 06:20:44 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id j19-20020a05600c191300b003eddc6aa5fasm7897918wmq.39.2023.03.21.06.20.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Mar 2023 06:20:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1679404843; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=7k/7Hxrdjupf5zq7nWkwxPkwQ/tKKC42EfTMP4iP9ag=; b=HXSXgSbR5QnhNgKNwSjZJ/RosXNaCcdJyrJGC6VSdBxHJ4mrZ5wUXpS6O1FWtJSw+Y tKFqqWxLVQKzuQLhOw+3dtIGUYULR/HopwXJUApm8iHZ1HS+qLf9zMfUSl34g0rF53aC RUbvIueFafxWDs6OB79ZSziVYLln4NMqws3mVDA7wFm4oaWWvC/Ou7RoLICtjcdzn/vr APDd+zD5qZFbBtFA1M4+TJOn84lCHZnV52QjyPZaA0vOlflEuXUVd7oy2ZHkXMKA/I4M R/HGotAmdE/TBt+5O4BV3poYeoLtBperCPtt5Uj4PNcjDshQjyhgsYFYQs93lOh/C6Fw wTDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679404843; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7k/7Hxrdjupf5zq7nWkwxPkwQ/tKKC42EfTMP4iP9ag=; b=q2gzyjr2nDEB340tabOfXs1Lj/1+I57P+JpUdWkTTWTYeA31Hzi9+WzzfpXIaQCrld 3GwO6htxuv9P44AdbMIuXOWOnZOwSv83P7HYyd59IzeyevaT4HM5rjftEzSFb+4mZUHF DjMDbZe9thnpOrvADQHz5ZyZstu475ejqKyFtu9pNGAQYih/H1CFjqAEde5y2oHeXA16 VdMfBDp/LFiuxTWQmZUcPu9z2ymeyPG/DytmZv6bJ8XVErQSyipBZYsL02Bpt+h7OgDM DNPEY3SRWdqeaYB/aQc0M+YQR/p5kvPXGwT7vTS1LJbLhbHqD27DgYzeVXIUAGbEoNnU 9BHg== X-Gm-Message-State: AO0yUKUkdYyvaP2Fxkq2gsiAeUEKJyh4DuPidpKKHgqCg+iUE3h0aK8T ZJC8NBlmgbDRzj5Pcu00LrYxJXZGudgqXqSqrtM= X-Google-Smtp-Source: AK7set99Vx/k23HotnWLLDVggx7tyMmQcWRvVj55g1NBdvO4qtjkITNf6Ih7AY9Z+ZEO0G3gteIzqg== X-Received: by 2002:a05:600c:2199:b0:3ed:1fa1:9030 with SMTP id e25-20020a05600c219900b003ed1fa19030mr2170478wme.29.1679404843660; Tue, 21 Mar 2023 06:20:43 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 5/8] contrib/elf2dmp: add PE name check and Windows Server 2022 support Date: Tue, 21 Mar 2023 13:20:33 +0000 Message-Id: <20230321132036.1836617-6-peter.maydell@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230321132036.1836617-1-peter.maydell@linaro.org> References: <20230321132036.1836617-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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; Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1679404970982100003 Content-Type: text/plain; charset="utf-8" From: Viktor Prutyanov Since its inception elf2dmp has checked MZ signatures within an address space above IDT[0] interrupt vector and took first PE image found as Windows Kernel. But in Windows Server 2022 memory dump this address space range is full of invalid PE fragments and the tool must check that PE image is 'ntoskrnl.exe' actually. So, introduce additional validation by checking image name from Export Directory against 'ntoskrnl.exe'. Signed-off-by: Viktor Prutyanov Tested-by: Yuri Benditovich Reviewed-by: Annie Li Message-id: 20230222211246.883679-4-viktor@daynix.com Signed-off-by: Peter Maydell --- contrib/elf2dmp/pe.h | 15 +++++++++++++++ contrib/elf2dmp/main.c | 28 ++++++++++++++++++++++++++-- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/contrib/elf2dmp/pe.h b/contrib/elf2dmp/pe.h index 807d0063649..71126af1aca 100644 --- a/contrib/elf2dmp/pe.h +++ b/contrib/elf2dmp/pe.h @@ -88,6 +88,20 @@ typedef struct IMAGE_NT_HEADERS64 { IMAGE_OPTIONAL_HEADER64 OptionalHeader; } __attribute__ ((packed)) IMAGE_NT_HEADERS64; =20 +typedef struct IMAGE_EXPORT_DIRECTORY { + uint32_t Characteristics; + uint32_t TimeDateStamp; + uint16_t MajorVersion; + uint16_t MinorVersion; + uint32_t Name; + uint32_t Base; + uint32_t NumberOfFunctions; + uint32_t NumberOfNames; + uint32_t AddressOfFunctions; + uint32_t AddressOfNames; + uint32_t AddressOfNameOrdinals; +} __attribute__ ((packed)) IMAGE_EXPORT_DIRECTORY; + typedef struct IMAGE_DEBUG_DIRECTORY { uint32_t Characteristics; uint32_t TimeDateStamp; @@ -102,6 +116,7 @@ typedef struct IMAGE_DEBUG_DIRECTORY { #define IMAGE_DEBUG_TYPE_CODEVIEW 2 #endif =20 +#define IMAGE_FILE_EXPORT_DIRECTORY 0 #define IMAGE_FILE_DEBUG_DIRECTORY 6 =20 typedef struct guid_t { diff --git a/contrib/elf2dmp/main.c b/contrib/elf2dmp/main.c index 2f6028d8eb3..89f0c69ab0f 100644 --- a/contrib/elf2dmp/main.c +++ b/contrib/elf2dmp/main.c @@ -17,6 +17,7 @@ =20 #define SYM_URL_BASE "https://msdl.microsoft.com/download/symbols/" #define PDB_NAME "ntkrnlmp.pdb" +#define PE_NAME "ntoskrnl.exe" =20 #define INITIAL_MXCSR 0x1f80 =20 @@ -405,6 +406,25 @@ static int write_dump(struct pa_space *ps, return fclose(dmp_file); } =20 +static bool pe_check_export_name(uint64_t base, void *start_addr, + struct va_space *vs) +{ + IMAGE_EXPORT_DIRECTORY export_dir; + const char *pe_name; + + if (pe_get_data_dir_entry(base, start_addr, IMAGE_FILE_EXPORT_DIRECTOR= Y, + &export_dir, sizeof(export_dir), vs)) { + return false; + } + + pe_name =3D va_space_resolve(vs, base + export_dir.Name); + if (!pe_name) { + return false; + } + + return !strcmp(pe_name, PE_NAME); +} + static int pe_get_pdb_symstore_hash(uint64_t base, void *start_addr, char *hash, struct va_space *vs) { @@ -489,6 +509,7 @@ int main(int argc, char *argv[]) uint64_t KdDebuggerDataBlock; KDDEBUGGER_DATA64 *kdbg; uint64_t KdVersionBlock; + bool kernel_found =3D false; =20 if (argc !=3D 3) { eprintf("usage:\n\t%s elf_file dmp_file\n", argv[0]); @@ -536,11 +557,14 @@ int main(int argc, char *argv[]) } =20 if (*(uint16_t *)nt_start_addr =3D=3D 0x5a4d) { /* MZ */ - break; + if (pe_check_export_name(KernBase, nt_start_addr, &vs)) { + kernel_found =3D true; + break; + } } } =20 - if (!nt_start_addr) { + if (!kernel_found) { eprintf("Failed to find NT kernel image\n"); err =3D 1; goto out_ps; --=20 2.34.1 From nobody Sun Apr 28 16:31:44 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1679404899; cv=none; d=zohomail.com; s=zohoarc; b=MwZAAvrdy+IP/NYEcxR7Ly0oJMOLmNnO4S2DIBDQSGMJ9ys9WiV8c3ovEW7qGzD+2uHISOEZn0fDUCmfKQ9QxcuPDym7Abz9Wo75k6TRMPXOV9I1ZNEN5KDNB92e5Sh3q+y0b4C0v4y47JgYGWJZfG1acRDhhQ8tI/vcAILBgUQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1679404899; h=Content-Transfer-Encoding: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=iwkiT7Zpz45TeXAiHKpnDMHEOhc1nyveHRog1XQ/w7I=; b=cXitqV+fRCtYYxeqIouZRBU6CQ1EzaCFf6sEulV4rBEtA5DJyRvpwq8JZoJrfLQTMtJIcAXY7mJbWMXj4qCeQ4LREmVm8X2DKsPoJ5dansQDXsBxT47xNmp/reLy7ldhTfKFy9tG/lRg6/rjFdtXR/8gip5MLOvkdlwzv947t2g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1679404899008697.9839380010478; Tue, 21 Mar 2023 06:21:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pebuz-00009v-0J; Tue, 21 Mar 2023 09:20:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pebux-00008H-IE for qemu-devel@nongnu.org; Tue, 21 Mar 2023 09:20:47 -0400 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pebuv-0006eo-PC for qemu-devel@nongnu.org; Tue, 21 Mar 2023 09:20:47 -0400 Received: by mail-wm1-x32e.google.com with SMTP id p13-20020a05600c358d00b003ed346d4522so9456779wmq.2 for ; Tue, 21 Mar 2023 06:20:45 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id j19-20020a05600c191300b003eddc6aa5fasm7897918wmq.39.2023.03.21.06.20.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Mar 2023 06:20:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1679404844; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=iwkiT7Zpz45TeXAiHKpnDMHEOhc1nyveHRog1XQ/w7I=; b=e8kO6iqs88eDLoiAlYMCfMuNaA+bL6ONcAJx95/BdvhMrk3fRPKgB3maY8xE803mp4 nLLdY7r2wYiKxTZkcKLB0WEbQ56k9WrrmQ+oK70vxCvF/dzmtK+FiI/LF+AawRFXI8Nq PVxdmOYU+0A9YQVymTEAchY67mWxdj6sIgL5Cyl486oTf9LYTn4O+/uE/Rdenr9Tv0H7 cSGM/jXphUbAt2dtKk+h4wXNKr7+EDaPYZh1x7WhBS9ELIb7EW3JTns+rLJjE/Awzmv8 eMmX4q/u4XuQY6ExBGAqeUzH/q1dM+mcVww4hTm5HlbTo6veNM1lenMjlNnmPRmR0Ne6 24gQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679404844; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iwkiT7Zpz45TeXAiHKpnDMHEOhc1nyveHRog1XQ/w7I=; b=jLmLnztGmJxonLYPhBrmHnMi36XtLmO7Lw+BmzztVtRFfzLt60kF9f77DHffpVgozD SVLqPnO4kUjsQ5azjiEYNsH6dC6GBUjSy3p8RXyNITePrbwLAUtSk7pDV3L4NchYXkH3 M02LhTiXizoLwglVbyR1muCXC6kWx3rrNLYUkRbn3E/IYuvjkvYfR3mZzSx2qGMeNzSd lWEPZjfQ/69JnI1OFpXnuIa+xX26zgNuuixJjqXJOzfAuI8gUoWywK+1+WNNrkh50bRC l1Rh1H+PZn1G4MhXDvE148oEZMhSSC4bG1/VWXVDIZ/fbxdARAN1eP41usxmAvdWft8B GhnQ== X-Gm-Message-State: AO0yUKXa/5qT5cQ6nWQr0NrlbrkLGdU4h8CVN5jqQ6pmnd2MUadse5IO m5Ylg1KPUvHgTaLQ9uCHsIt9y+cibgL4ifsCc1E= X-Google-Smtp-Source: AK7set/6qSLcYrHqkUVQM2VjGS4OoMqapfwytgzYVEeGKkI+70QS/KXnD6eOd9GmdKWQ5cHkq+Ywaw== X-Received: by 2002:a1c:ed18:0:b0:3eb:4162:7344 with SMTP id l24-20020a1ced18000000b003eb41627344mr2264534wmh.22.1679404844462; Tue, 21 Mar 2023 06:20:44 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 6/8] hw/usb/imx: Fix out of bounds access in imx_usbphy_read() Date: Tue, 21 Mar 2023 13:20:34 +0000 Message-Id: <20230321132036.1836617-7-peter.maydell@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230321132036.1836617-1-peter.maydell@linaro.org> References: <20230321132036.1836617-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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; Received-SPF: pass client-ip=2a00:1450:4864:20::32e; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1679404900624100015 Content-Type: text/plain; charset="utf-8" From: Guenter Roeck The i.MX USB Phy driver does not check register ranges, resulting in out of bounds accesses if an attempt is made to access non-existing PHY registers. Add range check and conditionally report bad accesses to fix the problem. While at it, also conditionally log attempted writes to non-existing or read-only registers. Reported-by: Qiang Liu Signed-off-by: Guenter Roeck Tested-by: Qiang Liu Message-id: 20230316234926.208874-1-linux@roeck-us.net Link: https://gitlab.com/qemu-project/qemu/-/issues/1408 Fixes: 0701a5efa015 ("hw/usb: Add basic i.MX USB Phy support") Signed-off-by: Guenter Roeck Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- hw/usb/imx-usb-phy.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/hw/usb/imx-usb-phy.c b/hw/usb/imx-usb-phy.c index 5d7a549e34d..1a97b36a119 100644 --- a/hw/usb/imx-usb-phy.c +++ b/hw/usb/imx-usb-phy.c @@ -13,6 +13,7 @@ #include "qemu/osdep.h" #include "hw/usb/imx-usb-phy.h" #include "migration/vmstate.h" +#include "qemu/log.h" #include "qemu/module.h" =20 static const VMStateDescription vmstate_imx_usbphy =3D { @@ -90,7 +91,15 @@ static uint64_t imx_usbphy_read(void *opaque, hwaddr off= set, unsigned size) value =3D s->usbphy[index - 3]; break; default: - value =3D s->usbphy[index]; + if (index < USBPHY_MAX) { + value =3D s->usbphy[index]; + } else { + qemu_log_mask(LOG_GUEST_ERROR, + "%s: Read from non-existing USB PHY register 0x%" + HWADDR_PRIx "\n", + __func__, offset); + value =3D 0; + } break; } return (uint64_t)value; @@ -168,7 +177,13 @@ static void imx_usbphy_write(void *opaque, hwaddr offs= et, uint64_t value, s->usbphy[index - 3] ^=3D value; break; default: - /* Other registers are read-only */ + /* Other registers are read-only or do not exist */ + qemu_log_mask(LOG_GUEST_ERROR, + "%s: Write to %s USB PHY register 0x%" + HWADDR_PRIx "\n", + __func__, + index >=3D USBPHY_MAX ? "non-existing" : "read-only", + offset); break; } } --=20 2.34.1 From nobody Sun Apr 28 16:31:44 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1679404921; cv=none; d=zohomail.com; s=zohoarc; b=Y605L7CrblSKaq43R+EwK3sZk1HBOJDeOP3sT1nMAjbClzuJutvUScQ2I0oZpqCFM9XWuP7hNnyfNszXiSgOjO1TJjVqZFUTz2axrIYW0Lz8UPp2U1brkHDx/zjujyceETCpP91kfhnLQ4vIRS9A5DcbWWKYNlrpGmUZUdlQeKg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1679404921; h=Content-Transfer-Encoding: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=vWEI0dihWwQ7A+H3p/2Im0qszRcvXvLKRn/Ij7lgink=; b=n/yfsKgG82hoxGKbPxGBuvbS12LFRPmZI5kMXcQbTctFiF2IHJ7YF1AfcMv3/JiXhi0YTWQxCg/kcIS5RahgVBbqMzZhR+qpEEHC7SXGcTE99RBG4x1xkGJ5HnQW32Rf2gYdj7GlsEd6LLqUNhBpWR/HNkNDpNrCzN7URhpIuVg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1679404921385436.31067067502363; Tue, 21 Mar 2023 06:22:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pebv0-0000BQ-C1; Tue, 21 Mar 2023 09:20:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pebuz-0000AC-39 for qemu-devel@nongnu.org; Tue, 21 Mar 2023 09:20:49 -0400 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pebux-0006fQ-0x for qemu-devel@nongnu.org; Tue, 21 Mar 2023 09:20:48 -0400 Received: by mail-wr1-x433.google.com with SMTP id i9so13656731wrp.3 for ; Tue, 21 Mar 2023 06:20:46 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id j19-20020a05600c191300b003eddc6aa5fasm7897918wmq.39.2023.03.21.06.20.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Mar 2023 06:20:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1679404845; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=vWEI0dihWwQ7A+H3p/2Im0qszRcvXvLKRn/Ij7lgink=; b=WHhXtcJFs4knxW9urnRQhG3ONNDy6VqFe3HMIDAws38VFYuejl8rXJbQBVs5QROPCA K7vnw7LzjmRhOst2Bx2BDWw7t5/IAg9hTaaaW4kIJs9BP08CbmQ3jFsmmZls2PDGkdTE AZkAYEXJnFkc1eGXi05wcRRit95hzvD9JZaSV9DV8+Qjo9AuyEOEWeotL3p5kCPqai1U ECCvTe5gM6/NdkCS+ljfv2h+s4DH1NRnzryZQgC7ATLu6Ek/7BdgwdLLgZhD6TdtDJde pFpmyzbz0v5DT9sF6ia0LQJWK5tA4HjxP5k/PcMAsG8u+b3K03PLvWi6AzL/tIF5GrFR UkvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679404845; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vWEI0dihWwQ7A+H3p/2Im0qszRcvXvLKRn/Ij7lgink=; b=7qgXjovvunXc7J5Ro5YPcJv2NZyFfEUj3rocvXORPWOpjdAMJW7hQ9gR7Akj9KbjdV zkb0FyhP3bWKkaCHxLMK2Zl6bXWf7Yo1I6EvrQ1p4OxAi8iLiw5n7VtW3CW9l/K/v/p+ 5pJbP1LCtm1SCvp1jPj2f3rFHU/BFp5uQ8GwH6jqB4WtQSb0mpg7xKDYYOAdi5vqn+ch VIy90MbEDceWQgAb31z0DUk9XRX7ViJQYBWu7rhobu7ADF0QipO/5NkZzcpDaSH5KMld LTO3Y/a1AAjDkT0EKBxu8PjDaesMODR5DRLdK+HAZclQJIhm3bpt+0f5bKJlM03rW30+ uNRw== X-Gm-Message-State: AO0yUKXi9vbYu5/u6D+ra8z1KwC65an++0o6lSHTLoC1AMyJd5+pR8Q7 1l3ubhpjpzthuxQcUfyioskIq6lP7J6UKpmWPD4= X-Google-Smtp-Source: AK7set/arMjHAc2uhJ5UvuNGTPHKKKxmcpNMbUL1MvMaaQDVMNfylmuRLVcUB4zKlUZReurPbJ8N/g== X-Received: by 2002:adf:e842:0:b0:2ce:ac31:54fb with SMTP id d2-20020adfe842000000b002ceac3154fbmr2263571wrn.33.1679404845208; Tue, 21 Mar 2023 06:20:45 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 7/8] docs/system/arm/cpu-features.rst: Fix formatting Date: Tue, 21 Mar 2023 13:20:35 +0000 Message-Id: <20230321132036.1836617-8-peter.maydell@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230321132036.1836617-1-peter.maydell@linaro.org> References: <20230321132036.1836617-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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; Received-SPF: pass client-ip=2a00:1450:4864:20::433; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x433.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1679404922801100003 Content-Type: text/plain; charset="utf-8" The markup for the Arm CPU feature documentation is incorrect, and results in the HTML not rendering correctly -- the first line of each description is rendered in boldface as if it were part of the option name. Reformat to match the styling used in cpu-models-x86.rst.inc. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1479 Signed-off-by: Peter Maydell Message-id: 20230316105808.1414003-1-peter.maydell@linaro.org Reviewed-by: Cornelia Huck --- docs/system/arm/cpu-features.rst | 68 ++++++++++++++------------------ 1 file changed, 30 insertions(+), 38 deletions(-) diff --git a/docs/system/arm/cpu-features.rst b/docs/system/arm/cpu-feature= s.rst index 00c444042ff..f4524b6d3e7 100644 --- a/docs/system/arm/cpu-features.rst +++ b/docs/system/arm/cpu-features.rst @@ -177,39 +177,32 @@ are named with the prefix "kvm-". KVM VCPU features = may be probed, enabled, and disabled in the same way as other CPU features. Below is the list of KVM VCPU features and their descriptions. =20 - kvm-no-adjvtime By default kvm-no-adjvtime is disabled. This - means that by default the virtual time - adjustment is enabled (vtime is not *not* - adjusted). +``kvm-no-adjvtime`` + By default kvm-no-adjvtime is disabled. This means that by default + the virtual time adjustment is enabled (vtime is not *not* adjusted). =20 - When virtual time adjustment is enabled each - time the VM transitions back to running state - the VCPU's virtual counter is updated to ensure - stopped time is not counted. This avoids time - jumps surprising guest OSes and applications, - as long as they use the virtual counter for - timekeeping. However it has the side effect of - the virtual and physical counters diverging. - All timekeeping based on the virtual counter - will appear to lag behind any timekeeping that - does not subtract VM stopped time. The guest - may resynchronize its virtual counter with - other time sources as needed. + When virtual time adjustment is enabled each time the VM transitions + back to running state the VCPU's virtual counter is updated to + ensure stopped time is not counted. This avoids time jumps + surprising guest OSes and applications, as long as they use the + virtual counter for timekeeping. However it has the side effect of + the virtual and physical counters diverging. All timekeeping based + on the virtual counter will appear to lag behind any timekeeping + that does not subtract VM stopped time. The guest may resynchronize + its virtual counter with other time sources as needed. =20 - Enable kvm-no-adjvtime to disable virtual time - adjustment, also restoring the legacy (pre-5.0) - behavior. + Enable kvm-no-adjvtime to disable virtual time adjustment, also + restoring the legacy (pre-5.0) behavior. =20 - kvm-steal-time Since v5.2, kvm-steal-time is enabled by - default when KVM is enabled, the feature is - supported, and the guest is 64-bit. +``kvm-steal-time`` + Since v5.2, kvm-steal-time is enabled by default when KVM is + enabled, the feature is supported, and the guest is 64-bit. =20 - When kvm-steal-time is enabled a 64-bit guest - can account for time its CPUs were not running - due to the host not scheduling the corresponding - VCPU threads. The accounting statistics may - influence the guest scheduler behavior and/or be - exposed to the guest userspace. + When kvm-steal-time is enabled a 64-bit guest can account for time + its CPUs were not running due to the host not scheduling the + corresponding VCPU threads. The accounting statistics may influence + the guest scheduler behavior and/or be exposed to the guest + userspace. =20 TCG VCPU Features =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D @@ -217,16 +210,15 @@ TCG VCPU Features TCG VCPU features are CPU features that are specific to TCG. Below is the list of TCG VCPU features and their descriptions. =20 - pauth-impdef When ``FEAT_Pauth`` is enabled, either the - *impdef* (Implementation Defined) algorithm - is enabled or the *architected* QARMA algorithm - is enabled. By default the impdef algorithm - is disabled, and QARMA is enabled. +``pauth-impdef`` + When ``FEAT_Pauth`` is enabled, either the *impdef* (Implementation + Defined) algorithm is enabled or the *architected* QARMA algorithm + is enabled. By default the impdef algorithm is disabled, and QARMA + is enabled. =20 - The architected QARMA algorithm has good - cryptographic properties, but can be quite slow - to emulate. The impdef algorithm used by QEMU - is non-cryptographic but significantly faster. + The architected QARMA algorithm has good cryptographic properties, + but can be quite slow to emulate. The impdef algorithm used by QEMU + is non-cryptographic but significantly faster. =20 SVE CPU Properties =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --=20 2.34.1 From nobody Sun Apr 28 16:31:44 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1679404898; cv=none; d=zohomail.com; s=zohoarc; b=ZF/iQVhS42F0aONPX4O+uOqDbhwYTaYuVC6KyhgcQ0Tup/cS/eK3zXgev6GSXBTVf/j6DmfmSP5mvUz/qVh4Y7HtN3s+JsLVFWcHZt0m3WPLGeLbPBuE1EcNbrTDbjW416W7YPXrH+A4U8kk6Y8CrEmMHaEdiZaAFeujozkWR2A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1679404898; h=Content-Transfer-Encoding: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=pcjeNQpYtfjnbCVp1jPfUN6yC3n9EwkQ1XDGv0Ar4fQ=; b=Qpir6If4OFIgUJPoZv1DbiYfRfitAJ9my/QjI2U3gksjcHOCUe9qhSS1NdF0DWvo8ADYhP+5LRceeuQ6MM87B66Rd+tyn/UYgoQqHjUldteteSrP5qKD8vXZFfBOGJOh4rVXGVrie/8Ud3Rrfcga18lTnw6109iS6TZrY37BL1k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1679404898415631.3120396543604; Tue, 21 Mar 2023 06:21:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pebv0-0000By-OP; Tue, 21 Mar 2023 09:20:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pebuy-00009t-VK for qemu-devel@nongnu.org; Tue, 21 Mar 2023 09:20:48 -0400 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pebux-0006fn-Df for qemu-devel@nongnu.org; Tue, 21 Mar 2023 09:20:48 -0400 Received: by mail-wm1-x336.google.com with SMTP id fm20-20020a05600c0c1400b003ead37e6588so11062916wmb.5 for ; Tue, 21 Mar 2023 06:20:46 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id j19-20020a05600c191300b003eddc6aa5fasm7897918wmq.39.2023.03.21.06.20.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Mar 2023 06:20:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1679404846; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=pcjeNQpYtfjnbCVp1jPfUN6yC3n9EwkQ1XDGv0Ar4fQ=; b=kLqkIEvzyhZ3uj4Bjw0mB41u3Ee/vnIIwB1pYlhSqaLKYXXkrl1NaP1wI4uUC4yuCO ToqHUW33GOieOThqM+iFJ5yeoWOjHUZcMhxciVmFtkNVgBejE3cRBN8q5i5bd6rnHoZV xBJA1SGD5y+DSDEE5LyuUwD3wayYfnTioSlHwuh+Wz4HsHlLiv30+BtxkW7j9KUwECt9 BBCoDPMZMbsyD+xPAVA5xr3yZ/xgnAM6CAOVnjeANg2WqVG5xvvnSTw0nohbnBZN5Eyd Vn31xEcxtFvXQ2dEXlwMePGL+m+EbBeQTF/rsXAFVz/LHrk1W2tFRnuNYIof33+34ke8 CAKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679404846; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pcjeNQpYtfjnbCVp1jPfUN6yC3n9EwkQ1XDGv0Ar4fQ=; b=kkkZbE7JbgO6sP/P12hbYJdmXiRZgOeo4waDy6sQcZ72aYJI3UA8LvXlx6lQ8X4gyk lLeolNClZMz+XikiOfc94TIMsgIZH/hrRe57LE7QLJHeA9GLGtBp7Y4rP2Tczqlq/yrA H6WK8JfsWTxGGQwJp2vJfkM7uEnjgPutEyCx6m/ANOaiAVs13YnWgGS+DjTScIVVzoC/ yUU880nIP6RUWnhmRtY63nBT/xUdjwLReJNtpzEAQskJcJJz1iBaTMuD6DbgYoUte/Mq xb0Q9ITpAxqZDWNP9SlV9h3pFbHiq4c7jbDoD47+Zc7WVRIGzmOvCBanuUGthU6AD4PN EVfw== X-Gm-Message-State: AO0yUKXXlz5EpdC1TblZJ65tVMcCiBlmTPEedVBNMiu2Ms1eF9vjFndS Q1uCfR0qXcxR+EKWMCk3nhTP9iCJiSGUWKmHGiA= X-Google-Smtp-Source: AK7set/7kJCzqoglfJOhME3Y0V6oSjTGPyog/Vp0wIp724rAtOCnyv9TlnmC01sXWpcFgZJKhprwzA== X-Received: by 2002:a05:600c:2048:b0:3ed:cf2a:3fe8 with SMTP id p8-20020a05600c204800b003edcf2a3fe8mr2539339wmg.8.1679404846123; Tue, 21 Mar 2023 06:20:46 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 8/8] target/arm: Don't advertise aarch64-pauth.xml to gdb Date: Tue, 21 Mar 2023 13:20:36 +0000 Message-Id: <20230321132036.1836617-9-peter.maydell@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230321132036.1836617-1-peter.maydell@linaro.org> References: <20230321132036.1836617-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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; Received-SPF: pass client-ip=2a00:1450:4864:20::336; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x336.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1679404898817100005 Content-Type: text/plain; charset="utf-8" Unfortunately a bug in older versions of gdb means that they will crash if QEMU sends them the aarch64-pauth.xml. This bug is fixed in gdb commit 1ba3a3222039eb25, and there are plans to backport that to affected gdb release branches, but since the bug affects gdb 9 through 12 it is very widely deployed (for instance by distros). It is not currently clear what the best way to deal with this is; it has been proposed to define a new XML feature name that old gdb will ignore but newer gdb can handle. Since QEMU's 8.0 release is imminent and at least one of our CI runners is now falling over this, disable the pauth XML for the moment. We can follow up with a more considered fix either in time for 8.0 or else for the 8.1 release. Signed-off-by: Peter Maydell --- target/arm/gdbstub.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/target/arm/gdbstub.c b/target/arm/gdbstub.c index 78105b8078b..3bd86cee979 100644 --- a/target/arm/gdbstub.c +++ b/target/arm/gdbstub.c @@ -520,11 +520,18 @@ void arm_cpu_register_gdb_regs_for_features(ARMCPU *c= pu) aarch64_gdb_set_fpu_reg, 34, "aarch64-fpu.xml", 0); } +#if 0 + /* + * GDB versions 9 through 12 have a bug which means they will + * crash if they see this XML from QEMU; disable it for the 8.0 + * release, pending a better solution. + */ if (isar_feature_aa64_pauth(&cpu->isar)) { gdb_register_coprocessor(cs, aarch64_gdb_get_pauth_reg, aarch64_gdb_set_pauth_reg, 4, "aarch64-pauth.xml", 0); } +#endif #endif } else { if (arm_feature(env, ARM_FEATURE_NEON)) { --=20 2.34.1