aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeir Fraser <keir@xen.org>2011-06-15 20:49:03 +0100
committerKeir Fraser <keir@xen.org>2011-06-15 20:49:03 +0100
commit4d6edc177a44dc7ef99cf44df4d81ea13216d5e3 (patch)
treeeda144b722805847fccd42bac1a28047fea6d156
parentd6ac6f406438c979644d2a472a425e74e09d8af4 (diff)
downloadxen-4d6edc177a44dc7ef99cf44df4d81ea13216d5e3.tar.gz
xen-4d6edc177a44dc7ef99cf44df4d81ea13216d5e3.tar.bz2
xen-4d6edc177a44dc7ef99cf44df4d81ea13216d5e3.zip
x86: Fix argument checking in (privileged) function cpu_add().
Thanks to John McDermott <john.mcdermott@nrl.navy.mil> for spotting. Signed-off-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 23505:5a557fda70a9 xen-unstable date: Fri Jun 10 08:08:44 2011 +0100
-rw-r--r--xen/arch/x86/smpboot.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index b0b9f52d65..6ad01f822b 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -1477,8 +1477,9 @@ int cpu_add(uint32_t apic_id, uint32_t acpi_id, uint32_t pxm)
dprintk(XENLOG_DEBUG, "cpu_add apic_id %x acpi_id %x pxm %x\n",
apic_id, acpi_id, pxm);
- if ( acpi_id > MAX_MADT_ENTRIES || apic_id > MAX_APICS || pxm > 256 )
- return -EINVAL;
+ if ( (acpi_id >= MAX_MADT_ENTRIES) ||
+ (apic_id >= MAX_APICS) ||
+ (pxm >= 256) )
/* Detect if the cpu has been added before */
if ( x86_acpiid_to_apicid[acpi_id] != 0xff)