]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/x86/kernel/machine_kexec_32.c
x86, kdump: fix invalid access on i386 sparsemem
[linux-2.6-omap-h63xx.git] / arch / x86 / kernel / machine_kexec_32.c
index 0732adba05ca95bfaf851d3d2193df5074478482..7a385746509a2a625991447e8554a20b4d992c54 100644 (file)
@@ -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