From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 1CD65C433EF for ; Wed, 30 Mar 2022 21:24:07 +0000 (UTC) Received: from localhost ([::1]:40166 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nZfnS-00034K-W1 for qemu-devel@archiver.kernel.org; Wed, 30 Mar 2022 17:24:07 -0400 Received: from eggs.gnu.org ([209.51.188.92]:60900) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nZfmD-0001ZC-Os; Wed, 30 Mar 2022 17:22:49 -0400 Received: from [2a00:1450:4864:20::32a] (port=55179 helo=mail-wm1-x32a.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nZfmC-0000xt-Ax; Wed, 30 Mar 2022 17:22:49 -0400 Received: by mail-wm1-x32a.google.com with SMTP id r64so13080245wmr.4; Wed, 30 Mar 2022 14:22:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language:to :cc:references:from:in-reply-to:content-transfer-encoding; bh=H8c7U8H6T0YDKPuGv5CcIjcmyiEhs3W+jTIEewPCANs=; b=MW/8KrNOXLfoW8hwLKjoCNlvh79lDSa0VmiVXM5icLaMz6xLmLAR+P50SAtLeUrbiB q3fAOvoMHdMY+TOQ2YbFdoINIZ/db903GTXaCBxZ+GJ8EX0hbUtS6emKjs68/GYktfBf DtafuU4CRIs/qewIoDB5p0x1DkE0HGVdSKZS1/HDODds0iKiJCQMTsWvwCVMjp1TvmZQ 1tFxT0azRyuHfDFuNPVnEa1vHjT9IrLdOC/aST6ed2iMu7MHgpbI/K05UJZCPvfUkN0O 9QOHtnH+7uMxRZGNMAPsze5GNV23FA9WMcipGv2uz/pVjVJCBXWxE3BZRSqPkGrL8Zo4 9OQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to :content-transfer-encoding; bh=H8c7U8H6T0YDKPuGv5CcIjcmyiEhs3W+jTIEewPCANs=; b=lv8UrByblbOmfqELUK5gUD0q9fpoVV73laBXuiPrYuFEweUQ9buQfHNK1rzyXbepaL 0q+ZPX/UvEgI6OoghGHz2VL5j13W4RQCpryYghDWg6O+UImoy9uW6dniWmKOP+IPXM+2 Nc1q+lue78woj5Eogv2ZLVOu9uYX8hem92DsrsJ8HARhyxmsWr7tDTvjvOxP5TU+Ou+h 8inGrVYwD9sKGBaNoEfYuQKLxFwyC3cS9ah575CIVT5hArPw4AdSEYT6Q3KOQiUloRia Cma7ME5RbjoYjjTuwm3fafr3W5FGA1z8agCxFfBTDjF3ukGcQFe5JyGrKzA9sOlOwtum MHZw== X-Gm-Message-State: AOAM5313U7N9r4oT9du3eHYwO5WM8TcwNlFH3s+3dBPNn9vAdM+hGkFl EwKGrUHzJTMx8EUxLsWSqX8= X-Google-Smtp-Source: ABdhPJzaHfp0iJ32prBwdbNrX4AsRyXFzvgt1mYm7AdaF2JCsumaFGX5BWP6VZGxWekOR4l0R4ZlYA== X-Received: by 2002:a05:600c:2948:b0:38c:b3e5:eed3 with SMTP id n8-20020a05600c294800b0038cb3e5eed3mr1564550wmd.168.1648675366142; Wed, 30 Mar 2022 14:22:46 -0700 (PDT) Received: from ?IPV6:2600:70ff:f07f:0:403e:ab57:ee68:20ea? ([2600:70ff:f07f:0:403e:ab57:ee68:20ea]) by smtp.gmail.com with ESMTPSA id w8-20020a1cf608000000b0038c8fdc93d6sm5445070wmc.28.2022.03.30.14.22.44 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 30 Mar 2022 14:22:45 -0700 (PDT) Message-ID: Date: Wed, 30 Mar 2022 23:22:43 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [PATCH 1/4] target/ppc: initialize 'reg_val' in kvm_get_one_spr() Content-Language: en-US To: Daniel Henrique Barboza , qemu-devel@nongnu.org References: <20220330210443.597500-1-danielhb413@gmail.com> <20220330210443.597500-2-danielhb413@gmail.com> From: =?UTF-8?Q?Philippe_Mathieu-Daud=c3=a9?= In-Reply-To: <20220330210443.597500-2-danielhb413@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::32a (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x32a.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, FREEMAIL_FROM=0.001, NICE_REPLY_A=-0.001, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no 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: , Cc: qemu-ppc@nongnu.org, clg@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" On 30/3/22 23:04, Daniel Henrique Barboza wrote: > Valgrind isn't convinced that we are initializing the values we assign > to env->spr[spr] because it doesn't understand that the 'reg_val' union > is being written by the kvm_vcpu_ioctl() that follows (via struct > kvm_one_reg). > > This results in Valgrind complaining about uninitialized values every > time we use env->spr in a conditional, like this instance: > > ==707578== Thread 1: > ==707578== Conditional jump or move depends on uninitialised value(s) > ==707578== at 0xA10A40: hreg_compute_hflags_value (helper_regs.c:106) > ==707578== by 0xA10C9F: hreg_compute_hflags (helper_regs.c:173) > ==707578== by 0xA110F7: hreg_store_msr (helper_regs.c:262) > ==707578== by 0xA051A3: ppc_cpu_reset (cpu_init.c:7168) > ==707578== by 0xD4730F: device_transitional_reset (qdev.c:799) > ==707578== by 0xD4A11B: resettable_phase_hold (resettable.c:182) > ==707578== by 0xD49A77: resettable_assert_reset (resettable.c:60) > ==707578== by 0xD4994B: resettable_reset (resettable.c:45) > ==707578== by 0xD458BB: device_cold_reset (qdev.c:296) > ==707578== by 0x48FBC7: cpu_reset (cpu-common.c:114) > ==707578== by 0x97B5EB: spapr_reset_vcpu (spapr_cpu_core.c:38) > ==707578== by 0x97BABB: spapr_cpu_core_reset (spapr_cpu_core.c:209) > ==707578== Uninitialised value was created by a stack allocation > ==707578== at 0xB11F08: kvm_get_one_spr (kvm.c:543) > > Initializing 'reg_val' has no impact in the logic and makes Valgrind > output more bearable. > > Signed-off-by: Daniel Henrique Barboza > --- > target/ppc/kvm.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c > index dc93b99189..ce1b926e8c 100644 > --- a/target/ppc/kvm.c > +++ b/target/ppc/kvm.c > @@ -543,10 +543,12 @@ static void kvm_get_one_spr(CPUState *cs, uint64_t id, int spr) > { > PowerPCCPU *cpu = POWERPC_CPU(cs); > CPUPPCState *env = &cpu->env; > - union { > + union reg_val { > uint32_t u32; > uint64_t u64; > - } val; > + }; > + /* Init reg_val to avoid "uninitialised value" Valgrind warnings */ > + union reg_val val = {0}; This should also work: -- >8 -- @@ -546,7 +546,7 @@ static void kvm_get_one_spr(CPUState *cs, uint64_t id, int spr) union { uint32_t u32; uint64_t u64; - } val; + } val = { 0 }; ---