diff options
-rw-r--r-- | arch/x86_64/kernel/smpboot.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/arch/x86_64/kernel/smpboot.c b/arch/x86_64/kernel/smpboot.c index 4fb34b5cb1f9..d4b63281c0f5 100644 --- a/arch/x86_64/kernel/smpboot.c +++ b/arch/x86_64/kernel/smpboot.c | |||
@@ -540,8 +540,8 @@ static void inquire_remote_apic(int apicid) | |||
540 | */ | 540 | */ |
541 | apic_wait_icr_idle(); | 541 | apic_wait_icr_idle(); |
542 | 542 | ||
543 | apic_write_around(APIC_ICR2, SET_APIC_DEST_FIELD(apicid)); | 543 | apic_write(APIC_ICR2, SET_APIC_DEST_FIELD(apicid)); |
544 | apic_write_around(APIC_ICR, APIC_DM_REMRD | regs[i]); | 544 | apic_write(APIC_ICR, APIC_DM_REMRD | regs[i]); |
545 | 545 | ||
546 | timeout = 0; | 546 | timeout = 0; |
547 | do { | 547 | do { |
@@ -574,12 +574,12 @@ static int __cpuinit wakeup_secondary_via_INIT(int phys_apicid, unsigned int sta | |||
574 | /* | 574 | /* |
575 | * Turn INIT on target chip | 575 | * Turn INIT on target chip |
576 | */ | 576 | */ |
577 | apic_write_around(APIC_ICR2, SET_APIC_DEST_FIELD(phys_apicid)); | 577 | apic_write(APIC_ICR2, SET_APIC_DEST_FIELD(phys_apicid)); |
578 | 578 | ||
579 | /* | 579 | /* |
580 | * Send IPI | 580 | * Send IPI |
581 | */ | 581 | */ |
582 | apic_write_around(APIC_ICR, APIC_INT_LEVELTRIG | APIC_INT_ASSERT | 582 | apic_write(APIC_ICR, APIC_INT_LEVELTRIG | APIC_INT_ASSERT |
583 | | APIC_DM_INIT); | 583 | | APIC_DM_INIT); |
584 | 584 | ||
585 | Dprintk("Waiting for send to finish...\n"); | 585 | Dprintk("Waiting for send to finish...\n"); |
@@ -595,10 +595,10 @@ static int __cpuinit wakeup_secondary_via_INIT(int phys_apicid, unsigned int sta | |||
595 | Dprintk("Deasserting INIT.\n"); | 595 | Dprintk("Deasserting INIT.\n"); |
596 | 596 | ||
597 | /* Target chip */ | 597 | /* Target chip */ |
598 | apic_write_around(APIC_ICR2, SET_APIC_DEST_FIELD(phys_apicid)); | 598 | apic_write(APIC_ICR2, SET_APIC_DEST_FIELD(phys_apicid)); |
599 | 599 | ||
600 | /* Send IPI */ | 600 | /* Send IPI */ |
601 | apic_write_around(APIC_ICR, APIC_INT_LEVELTRIG | APIC_DM_INIT); | 601 | apic_write(APIC_ICR, APIC_INT_LEVELTRIG | APIC_DM_INIT); |
602 | 602 | ||
603 | Dprintk("Waiting for send to finish...\n"); | 603 | Dprintk("Waiting for send to finish...\n"); |
604 | timeout = 0; | 604 | timeout = 0; |
@@ -640,12 +640,11 @@ static int __cpuinit wakeup_secondary_via_INIT(int phys_apicid, unsigned int sta | |||
640 | */ | 640 | */ |
641 | 641 | ||
642 | /* Target chip */ | 642 | /* Target chip */ |
643 | apic_write_around(APIC_ICR2, SET_APIC_DEST_FIELD(phys_apicid)); | 643 | apic_write(APIC_ICR2, SET_APIC_DEST_FIELD(phys_apicid)); |
644 | 644 | ||
645 | /* Boot on the stack */ | 645 | /* Boot on the stack */ |
646 | /* Kick the second */ | 646 | /* Kick the second */ |
647 | apic_write_around(APIC_ICR, APIC_DM_STARTUP | 647 | apic_write(APIC_ICR, APIC_DM_STARTUP | (start_rip >> 12)); |
648 | | (start_rip >> 12)); | ||
649 | 648 | ||
650 | /* | 649 | /* |
651 | * Give the other CPU some time to accept the IPI. | 650 | * Give the other CPU some time to accept the IPI. |