diff options
Diffstat (limited to 'arch/x86/kernel/machine_kexec_32.c')
| -rw-r--r-- | arch/x86/kernel/machine_kexec_32.c | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/x86/kernel/machine_kexec_32.c b/arch/x86/kernel/machine_kexec_32.c index 0732adba05c..7a385746509 100644 --- a/arch/x86/kernel/machine_kexec_32.c +++ b/arch/x86/kernel/machine_kexec_32.c @@ -162,7 +162,10 @@ void machine_kexec(struct kimage *image)  	page_list[VA_PTE_0] = (unsigned long)kexec_pte0;  	page_list[PA_PTE_1] = __pa(kexec_pte1);  	page_list[VA_PTE_1] = (unsigned long)kexec_pte1; -	page_list[PA_SWAP_PAGE] = (page_to_pfn(image->swap_page) << PAGE_SHIFT); + +	if (image->type == KEXEC_TYPE_DEFAULT) +		page_list[PA_SWAP_PAGE] = (page_to_pfn(image->swap_page) +						<< PAGE_SHIFT);  	/* The segment registers are funny things, they have both a  	 * visible and an invisible part.  Whenever the visible part is  |