All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Cédric Le Goater" <clg@kaod.org>
To: Greg Kurz <groug@kaod.org>, David Gibson <david@gibson.dropbear.id.au>
Cc: qemu-ppc@nongnu.org, qemu-devel@nongnu.org
Subject: Re: [PATCH v2 3/6] target/ppc: Don't initialize some local variables in ppc_radix64_xlate()
Date: Thu, 14 May 2020 08:31:28 +0200	[thread overview]
Message-ID: <2f65c119-8e92-b2b2-a66c-0d0d6e9210c8@kaod.org> (raw)
In-Reply-To: <158941062048.240484.9693581559252337111.stgit@bahia.lan>

On 5/14/20 12:57 AM, Greg Kurz wrote:
> It is the job of the ppc_radix64_get_fully_qualified_addr() function
> which is called at the beginning of ppc_radix64_xlate() to set both
> lpid *and* pid. It doesn't buy us anything to initialize them first.
> 
> Worse, a bug in ppc_radix64_get_fully_qualified_addr(), eg. failing to
> set either lpid or pid, would be undetectable by static analysis tools
> like coverity.
> 
> Some recent versions of gcc (eg. gcc-9.3.1-2.fc30) may still think
> that lpid or pid is used uninitialized though, so this also adds
> default cases in the switch statements to make it clear this cannot
> happen.
> 
> Signed-off-by: Greg Kurz <groug@kaod.org>

Reviewed-by: Cédric Le Goater <clg@kaod.org>

> ---
>  target/ppc/mmu-radix64.c |    6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/target/ppc/mmu-radix64.c b/target/ppc/mmu-radix64.c
> index c76879f65b78..07f956c9864f 100644
> --- a/target/ppc/mmu-radix64.c
> +++ b/target/ppc/mmu-radix64.c
> @@ -50,6 +50,8 @@ static bool ppc_radix64_get_fully_qualified_addr(const CPUPPCState *env,
>              *lpid = 0;
>              *pid = 0;
>              break;
> +        default:
> +            g_assert_not_reached();
>          }
>      } else {  /* !MSR[HV] -> Guest */
>          switch (eaddr & R_EADDR_QUADRANT) {
> @@ -64,6 +66,8 @@ static bool ppc_radix64_get_fully_qualified_addr(const CPUPPCState *env,
>              *lpid = env->spr[SPR_LPIDR];
>              *pid = 0; /* pid set to 0 -> addresses guest operating system */
>              break;
> +        default:
> +            g_assert_not_reached();
>          }
>      }
>  
> @@ -433,7 +437,7 @@ static int ppc_radix64_xlate(PowerPCCPU *cpu, vaddr eaddr, int rwx,
>                               bool cause_excp)
>  {
>      CPUPPCState *env = &cpu->env;
> -    uint64_t lpid = 0, pid = 0;
> +    uint64_t lpid, pid;
>      ppc_v3_pate_t pate;
>      int psize, prot;
>      hwaddr g_raddr;
> 



  reply	other threads:[~2020-05-14  6:35 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-13 22:56 [PATCH v2 0/6] target/ppc: Various clean-up and fixes for radix64 Greg Kurz
2020-05-13 22:56 ` [PATCH v2 1/6] target/ppc: Pass const pointer to ppc_radix64_get_prot_amr() Greg Kurz
2020-05-14  6:29   ` Cédric Le Goater
2020-05-13 22:56 ` [PATCH v2 2/6] target/ppc: Pass const pointer to ppc_radix64_get_fully_qualified_addr() Greg Kurz
2020-05-14  6:29   ` Cédric Le Goater
2020-05-13 22:57 ` [PATCH v2 3/6] target/ppc: Don't initialize some local variables in ppc_radix64_xlate() Greg Kurz
2020-05-14  6:31   ` Cédric Le Goater [this message]
2020-05-13 22:57 ` [PATCH v2 4/6] target/ppc: Add missing braces in ppc_radix64_partition_scoped_xlate() Greg Kurz
2020-05-14  6:30   ` Cédric Le Goater
2020-05-13 22:57 ` [PATCH v2 5/6] target/ppc: Fix arguments to ppc_radix64_partition_scoped_xlate() Greg Kurz
2020-05-14  6:31   ` Cédric Le Goater
2020-05-13 22:57 ` [PATCH v2 6/6] target/ppc: Don't update radix PTE R/C bits with gdbstub Greg Kurz
2020-05-14  6:34   ` Cédric Le Goater
2020-05-14  6:52 ` [PATCH v2 0/6] target/ppc: Various clean-up and fixes for radix64 David Gibson
2020-05-15  6:58   ` Greg Kurz
2020-05-15 13:39     ` David Gibson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2f65c119-8e92-b2b2-a66c-0d0d6e9210c8@kaod.org \
    --to=clg@kaod.org \
    --cc=david@gibson.dropbear.id.au \
    --cc=groug@kaod.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.