diff options
Diffstat (limited to 'arch/x86_64/kernel/smpboot.c')
-rw-r--r-- | arch/x86_64/kernel/smpboot.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/x86_64/kernel/smpboot.c b/arch/x86_64/kernel/smpboot.c index f2a234b390e8..082f478fb777 100644 --- a/arch/x86_64/kernel/smpboot.c +++ b/arch/x86_64/kernel/smpboot.c | |||
@@ -391,7 +391,8 @@ static void inquire_remote_apic(int apicid) | |||
391 | { | 391 | { |
392 | unsigned i, regs[] = { APIC_ID >> 4, APIC_LVR >> 4, APIC_SPIV >> 4 }; | 392 | unsigned i, regs[] = { APIC_ID >> 4, APIC_LVR >> 4, APIC_SPIV >> 4 }; |
393 | char *names[] = { "ID", "VERSION", "SPIV" }; | 393 | char *names[] = { "ID", "VERSION", "SPIV" }; |
394 | int timeout, status; | 394 | int timeout; |
395 | unsigned int status; | ||
395 | 396 | ||
396 | printk(KERN_INFO "Inquiring remote APIC #%d...\n", apicid); | 397 | printk(KERN_INFO "Inquiring remote APIC #%d...\n", apicid); |
397 | 398 | ||
@@ -401,7 +402,9 @@ static void inquire_remote_apic(int apicid) | |||
401 | /* | 402 | /* |
402 | * Wait for idle. | 403 | * Wait for idle. |
403 | */ | 404 | */ |
404 | apic_wait_icr_idle(); | 405 | status = safe_apic_wait_icr_idle(); |
406 | if (status) | ||
407 | printk("a previous APIC delivery may have failed\n"); | ||
405 | 408 | ||
406 | apic_write(APIC_ICR2, SET_APIC_DEST_FIELD(apicid)); | 409 | apic_write(APIC_ICR2, SET_APIC_DEST_FIELD(apicid)); |
407 | apic_write(APIC_ICR, APIC_DM_REMRD | regs[i]); | 410 | apic_write(APIC_ICR, APIC_DM_REMRD | regs[i]); |