diff options
Diffstat (limited to 'arch/x86/kernel/reboot.c')
-rw-r--r-- | arch/x86/kernel/reboot.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c index d2d1ce8170f0..9de01c5d9794 100644 --- a/arch/x86/kernel/reboot.c +++ b/arch/x86/kernel/reboot.c | |||
@@ -24,6 +24,8 @@ | |||
24 | # include <asm/iommu.h> | 24 | # include <asm/iommu.h> |
25 | #endif | 25 | #endif |
26 | 26 | ||
27 | #include <asm/tboot.h> | ||
28 | |||
27 | /* | 29 | /* |
28 | * Power off function, if any | 30 | * Power off function, if any |
29 | */ | 31 | */ |
@@ -460,6 +462,8 @@ static void native_machine_emergency_restart(void) | |||
460 | if (reboot_emergency) | 462 | if (reboot_emergency) |
461 | emergency_vmx_disable_all(); | 463 | emergency_vmx_disable_all(); |
462 | 464 | ||
465 | tboot_shutdown(TB_SHUTDOWN_REBOOT); | ||
466 | |||
463 | /* Tell the BIOS if we want cold or warm reboot */ | 467 | /* Tell the BIOS if we want cold or warm reboot */ |
464 | *((unsigned short *)__va(0x472)) = reboot_mode; | 468 | *((unsigned short *)__va(0x472)) = reboot_mode; |
465 | 469 | ||
@@ -586,6 +590,8 @@ static void native_machine_halt(void) | |||
586 | /* stop other cpus and apics */ | 590 | /* stop other cpus and apics */ |
587 | machine_shutdown(); | 591 | machine_shutdown(); |
588 | 592 | ||
593 | tboot_shutdown(TB_SHUTDOWN_HALT); | ||
594 | |||
589 | /* stop this cpu */ | 595 | /* stop this cpu */ |
590 | stop_this_cpu(NULL); | 596 | stop_this_cpu(NULL); |
591 | } | 597 | } |
@@ -597,6 +603,8 @@ static void native_machine_power_off(void) | |||
597 | machine_shutdown(); | 603 | machine_shutdown(); |
598 | pm_power_off(); | 604 | pm_power_off(); |
599 | } | 605 | } |
606 | /* a fallback in case there is no PM info available */ | ||
607 | tboot_shutdown(TB_SHUTDOWN_HALT); | ||
600 | } | 608 | } |
601 | 609 | ||
602 | struct machine_ops machine_ops = { | 610 | struct machine_ops machine_ops = { |