|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Ping: [PATCH] x86: replace literal numbers
In various cases, 256 was being used instead of NR_VECTORS or a derived
ARRAY_SIZE() expression. In one case (guest_has_trap_callback()), a
wrong (unrelated) constant was used instead of NR_VECTORS.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -374,8 +374,9 @@ int switch_compat(struct domain *d)
static inline bool_t standalone_trap_ctxt(struct vcpu *v)
{
- BUILD_BUG_ON(256 * sizeof(*v->arch.pv_vcpu.trap_ctxt) > PAGE_SIZE);
- return 256 * sizeof(*v->arch.pv_vcpu.trap_ctxt) + sizeof(*v) > PAGE_SIZE;
+ BUILD_BUG_ON(NR_VECTORS * sizeof(*v->arch.pv_vcpu.trap_ctxt) > PAGE_SIZE);
+ return NR_VECTORS * sizeof(*v->arch.pv_vcpu.trap_ctxt) + sizeof(*v)
+ > PAGE_SIZE;
}
int vcpu_initialise(struct vcpu *v)
@@ -432,7 +433,7 @@ int vcpu_initialise(struct vcpu *v)
}
else
v->arch.pv_vcpu.trap_ctxt = (void *)v + PAGE_SIZE -
- 256 * sizeof(*v->arch.pv_vcpu.trap_ctxt);
+ NR_VECTORS * sizeof(*v->arch.pv_vcpu.trap_ctxt);
/* PV guests by default have a 100Hz ticker. */
v->periodic_period = MILLISECS(10);
@@ -702,7 +703,7 @@ int arch_set_info_guest(
fixup_guest_stack_selector(d, c.nat->kernel_ss);
fixup_guest_code_selector(d, c.nat->user_regs.cs);
- for ( i = 0; i < 256; i++ )
+ for ( i = 0; i < ARRAY_SIZE(c.nat->trap_ctxt); i++ )
{
if ( !is_canonical_address(c.nat->trap_ctxt[i].address) )
return -EINVAL;
@@ -725,7 +726,7 @@ int arch_set_info_guest(
fixup_guest_code_selector(d, c.cmp->event_callback_cs);
fixup_guest_code_selector(d, c.cmp->failsafe_callback_cs);
- for ( i = 0; i < 256; i++ )
+ for ( i = 0; i < ARRAY_SIZE(c.cmp->trap_ctxt); i++ )
fixup_guest_code_selector(d, c.cmp->trap_ctxt[i].cs);
/* LDT safety checks. */
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -3506,7 +3506,7 @@ int guest_has_trap_callback(struct domai
BUG_ON(vcpuid >= d->max_vcpus);
/* Sanity check - XXX should be more fine grained. */
- BUG_ON(trap_nr > TRAP_syscall);
+ BUG_ON(trap_nr >= NR_VECTORS);
v = d->vcpu[vcpuid];
t = &v->arch.pv_vcpu.trap_ctxt[trap_nr];
@@ -3574,7 +3574,7 @@ long do_set_trap_table(XEN_GUEST_HANDLE(
/* If no table is presented then clear the entire virtual IDT. */
if ( guest_handle_is_null(traps) )
{
- memset(dst, 0, 256 * sizeof(*dst));
+ memset(dst, 0, NR_VECTORS * sizeof(*dst));
init_int80_direct_trap(curr);
return 0;
}
--- a/xen/arch/x86/x86_64/compat/traps.c
+++ b/xen/arch/x86/x86_64/compat/traps.c
@@ -317,7 +317,7 @@ int compat_set_trap_table(XEN_GUEST_HAND
/* If no table is presented then clear the entire virtual IDT. */
if ( guest_handle_is_null(traps) )
{
- memset(dst, 0, 256 * sizeof(*dst));
+ memset(dst, 0, NR_VECTORS * sizeof(*dst));
return 0;
}
Attachment:
x86-use-NR_VECTORS.patch _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |