Skip to contentSkip to conversation

Fix PA() in purgatory-ia64.c

PATCH New Akio Takebe 1 participant 1 message Nov 9, 2007

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Fix PA() in purgatory-ia64.c

Hi,

I met the issue that kdump didn't work on Xen/HVM guest. I investigated the cause, found that PA() in purgatory-ia64.c is used in Physical mode.

The PA() currently use PAGE_OFFSET fixed size(0xe000000000000000UL). So the PA() don't work properly if it is called in Physcal mode.

inline unsigned long PA(unsigned long addr)

 {
        return addr - PAGE_OFFSET;

}

I make the patch to fix this issue.
How about this?

Best Regards,

Akio Takebe

---

purgatory/arch/ia64/purgatory-ia64.c +2 -2
@@ -21,7 +21,7 @@
 #include <string.h>
 #include "purgatory-ia64.h"
 
-#define PAGE_OFFSET             0xe000000000000000UL
+#define RGN_MASK                0xf000000000000000UL
 
 #define EFI_PAGE_SHIFT          12
 #define EFI_PAGE_SIZE		(1UL<<EFI_PAGE_SHIFT)
@@ -147,7 +147,7 @@ setup_arch(void)
 
 inline unsigned long PA(unsigned long addr)
 {
-	return addr - PAGE_OFFSET;
+	return addr|~RGN_MASK;
 }
 
 void

_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec