[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] target/xtensa: Make use of 'segment' in pptlb helper less co
From: |
Peter Maydell |
Subject: |
Re: [PATCH] target/xtensa: Make use of 'segment' in pptlb helper less confusing |
Date: |
Mon, 29 Jul 2024 16:58:38 +0100 |
On Tue, 23 Jul 2024 at 16:14, Peter Maydell <peter.maydell@linaro.org> wrote:
>
> Coverity gets confused about the use of the 'segment' variable in the
> pptlb helper function: it thinks that we can take a code path where
> we first initialize it:
> unsigned segment = XTENSA_MPU_PROBE_B; // 0x40000000
> and then use that value as a shift count:
> } else if (nhits == 1 && (env->sregs[MPUENB] & (1u << segment))) {
>
> In fact this isn't possible, beacuse xtensa_mpu_lookup() is passed
> '&segment', and it uses that as an output value, which it will always
> set if it returns nonzero. But the way the code is currently written
> is confusing to a human reader as well as to Coverity.
>
> Instead of initializing 'segment' at the top of the function with a
> value that's only used in the "nhits == 0" code path, use the
> constant value directly in that code path, and don't initialize
> segment. This matches the way we use xtensa_mpu_lookup() in its
> other callsites in get_physical_addr_mpu().
>
> Resolves: Coverity CID 1547589
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> --
I'll take this via target-arm.next since I'm doing a pullreq
anyway.
thanks
-- PMM