projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch develop-3.10
[firefly-linux-kernel-4.4.55.git]
/
arch
/
x86
/
kernel
/
reboot.c
diff --git
a/arch/x86/kernel/reboot.c
b/arch/x86/kernel/reboot.c
index 90fd1195f2761b140eaea95ead6fd23d92445873..3876c04feef9dbe9160ee5d3c3488ef15f6235de 100644
(file)
--- a/
arch/x86/kernel/reboot.c
+++ b/
arch/x86/kernel/reboot.c
@@
-36,7
+36,7
@@
void (*pm_power_off)(void);
EXPORT_SYMBOL(pm_power_off);
static const struct desc_ptr no_idt = {};
EXPORT_SYMBOL(pm_power_off);
static const struct desc_ptr no_idt = {};
-static
int
reboot_mode;
+static
enum reboot_mode
reboot_mode;
enum reboot_type reboot_type = BOOT_ACPI;
int reboot_force;
enum reboot_type reboot_type = BOOT_ACPI;
int reboot_force;
@@
-88,11
+88,11
@@
static int __init reboot_setup(char *str)
switch (*str) {
case 'w':
switch (*str) {
case 'w':
- reboot_mode =
0x1234
;
+ reboot_mode =
REBOOT_WARM
;
break;
case 'c':
break;
case 'c':
- reboot_mode =
0
;
+ reboot_mode =
REBOOT_COLD
;
break;
#ifdef CONFIG_SMP
break;
#ifdef CONFIG_SMP
@@
-552,6
+552,7
@@
static void native_machine_emergency_restart(void)
int i;
int attempt = 0;
int orig_reboot_type = reboot_type;
int i;
int attempt = 0;
int orig_reboot_type = reboot_type;
+ unsigned short mode;
if (reboot_emergency)
emergency_vmx_disable_all();
if (reboot_emergency)
emergency_vmx_disable_all();
@@
-559,7
+560,8
@@
static void native_machine_emergency_restart(void)
tboot_shutdown(TB_SHUTDOWN_REBOOT);
/* Tell the BIOS if we want cold or warm reboot */
tboot_shutdown(TB_SHUTDOWN_REBOOT);
/* Tell the BIOS if we want cold or warm reboot */
- *((unsigned short *)__va(0x472)) = reboot_mode;
+ mode = reboot_mode == REBOOT_WARM ? 0x1234 : 0;
+ *((unsigned short *)__va(0x472)) = mode;
for (;;) {
/* Could also try the reset bit in the Hammer NB */
for (;;) {
/* Could also try the reset bit in the Hammer NB */
@@
-601,7
+603,7
@@
static void native_machine_emergency_restart(void)
case BOOT_EFI:
if (efi_enabled(EFI_RUNTIME_SERVICES))
case BOOT_EFI:
if (efi_enabled(EFI_RUNTIME_SERVICES))
- efi.reset_system(reboot_mode ?
+ efi.reset_system(reboot_mode
== REBOOT_WARM
?
EFI_RESET_WARM :
EFI_RESET_COLD,
EFI_SUCCESS, 0, NULL);
EFI_RESET_WARM :
EFI_RESET_COLD,
EFI_SUCCESS, 0, NULL);