|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] ARM/vgic: Fix variable shadowing in vgic_to_sgi()
commit 73fa03573e7cdf9c6521e67b46bd51ff5a8e1886
Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
AuthorDate: Wed Aug 28 00:33:19 2024 +0100
Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
CommitDate: Wed Aug 28 10:49:26 2024 +0100
ARM/vgic: Fix variable shadowing in vgic_to_sgi()
for_each_set_bit() allocates its own variable intentionally as loop-scope
only. Unfortunately, this causes the inner 'i' to shadow the outer 'i', and
violates MISRA Rule 5.3.
Drop the outermost 'i' and 'vcpuid' variables, moving them into a more
narrow
scope and correcting them to be unsigned which they should have been all
along. Update the printk() formatting of vcpuid to match.
Fixes: 9429f1a6c475 ("ARM/vgic: Use for_each_set_bit() in vgic_to_sgi()")
Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Reviewed-by: Michal Orzel <michal.orzel@xxxxxxx>
---
xen/arch/arm/vgic.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 8ffe099bcb..c563ba93af 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -468,8 +468,6 @@ bool vgic_to_sgi(struct vcpu *v, register_t sgir, enum
gic_sgi_mode irqmode,
int virq, const struct sgi_target *target)
{
struct domain *d = v->domain;
- int vcpuid;
- int i;
unsigned int base, bitmap;
ASSERT( virq < 16 );
@@ -483,12 +481,13 @@ bool vgic_to_sgi(struct vcpu *v, register_t sgir, enum
gic_sgi_mode irqmode,
for_each_set_bit ( i, bitmap )
{
- vcpuid = base + i;
+ unsigned int vcpuid = base + i;
+
if ( vcpuid >= d->max_vcpus || d->vcpu[vcpuid] == NULL ||
!is_vcpu_online(d->vcpu[vcpuid]) )
{
gprintk(XENLOG_WARNING,
- "vGIC: write %#"PRIregister", target->list=%#x, bad
target vcpu%d\n",
+ "vGIC: write %#"PRIregister", target->list=%#x, bad
target vcpu%u\n",
sgir, target->list, vcpuid);
continue;
}
@@ -497,7 +496,7 @@ bool vgic_to_sgi(struct vcpu *v, register_t sgir, enum
gic_sgi_mode irqmode,
break;
case SGI_TARGET_OTHERS:
perfc_incr(vgic_sgi_others);
- for ( i = 0; i < d->max_vcpus; i++ )
+ for ( unsigned int i = 0; i < d->max_vcpus; i++ )
{
if ( i != current->vcpu_id && d->vcpu[i] != NULL &&
is_vcpu_online(d->vcpu[i]) )
--
generated by git-patchbot for /home/xen/git/xen.git#staging
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |