mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-01-06 06:27:41 -07:00
target/xtensa: Make use of 'segment' in pptlb helper less confusing
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>
Acked-by: Max Filippov <jcmvbkbc@gmail.com>
Message-id: 20240723151454.1396826-1-peter.maydell@linaro.org
This commit is contained in:
parent
b69c95e718
commit
b42ba4ea43
1 changed files with 2 additions and 2 deletions
|
|
@ -991,7 +991,7 @@ uint32_t HELPER(rptlb1)(CPUXtensaState *env, uint32_t s)
|
|||
uint32_t HELPER(pptlb)(CPUXtensaState *env, uint32_t v)
|
||||
{
|
||||
unsigned nhits;
|
||||
unsigned segment = XTENSA_MPU_PROBE_B;
|
||||
unsigned segment;
|
||||
unsigned bg_segment;
|
||||
|
||||
nhits = xtensa_mpu_lookup(env->mpu_fg, env->config->n_mpu_fg_segments,
|
||||
|
|
@ -1005,7 +1005,7 @@ uint32_t HELPER(pptlb)(CPUXtensaState *env, uint32_t v)
|
|||
xtensa_mpu_lookup(env->config->mpu_bg,
|
||||
env->config->n_mpu_bg_segments,
|
||||
v, &bg_segment);
|
||||
return env->config->mpu_bg[bg_segment].attr | segment;
|
||||
return env->config->mpu_bg[bg_segment].attr | XTENSA_MPU_PROBE_B;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue