diff options
Diffstat (limited to 'arch/ia64/kernel/machine_kexec.c')
-rw-r--r-- | arch/ia64/kernel/machine_kexec.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/arch/ia64/kernel/machine_kexec.c b/arch/ia64/kernel/machine_kexec.c index 4f0f3b8c1ee2..58e943a5d95c 100644 --- a/arch/ia64/kernel/machine_kexec.c +++ b/arch/ia64/kernel/machine_kexec.c | |||
@@ -79,7 +79,6 @@ static void ia64_machine_kexec(struct unw_frame_info *info, void *arg) | |||
79 | relocate_new_kernel_t rnk; | 79 | relocate_new_kernel_t rnk; |
80 | void *pal_addr = efi_get_pal_addr(); | 80 | void *pal_addr = efi_get_pal_addr(); |
81 | unsigned long code_addr = (unsigned long)page_address(image->control_code_page); | 81 | unsigned long code_addr = (unsigned long)page_address(image->control_code_page); |
82 | unsigned long vector; | ||
83 | int ii; | 82 | int ii; |
84 | 83 | ||
85 | BUG_ON(!image); | 84 | BUG_ON(!image); |
@@ -107,11 +106,8 @@ static void ia64_machine_kexec(struct unw_frame_info *info, void *arg) | |||
107 | /* unmask TPR and clear any pending interrupts */ | 106 | /* unmask TPR and clear any pending interrupts */ |
108 | ia64_setreg(_IA64_REG_CR_TPR, 0); | 107 | ia64_setreg(_IA64_REG_CR_TPR, 0); |
109 | ia64_srlz_d(); | 108 | ia64_srlz_d(); |
110 | vector = ia64_get_ivr(); | 109 | while (ia64_get_ivr() != IA64_SPURIOUS_INT_VECTOR) |
111 | while (vector != IA64_SPURIOUS_INT_VECTOR) { | ||
112 | ia64_eoi(); | 110 | ia64_eoi(); |
113 | vector = ia64_get_ivr(); | ||
114 | } | ||
115 | platform_kernel_launch_event(); | 111 | platform_kernel_launch_event(); |
116 | rnk = (relocate_new_kernel_t)&code_addr; | 112 | rnk = (relocate_new_kernel_t)&code_addr; |
117 | (*rnk)(image->head, image->start, ia64_boot_param, | 113 | (*rnk)(image->head, image->start, ia64_boot_param, |