xen,kdump: handle pv domain in paddr_vmcoreinfo_note()
For kdump to work correctly it needs the physical address of vmcoreinfo_note. When running as dom0 this means the virtual address has to be translated to the related machine address. paddr_vmcoreinfo_note() is meant to do the translation via __pa_symbol() only, but being attributed "weak" it can be replaced easily in Xen case. Signed-off-by: Juergen Gross <jgross@suse.com> Tested-by: Petr Tesarik <ptesarik@suse.com> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> Signed-off-by: Juergen Gross <jgross@suse.com>
This commit is contained in:
parent
8945c08e2b
commit
29985b0961
|
@ -49,6 +49,9 @@
|
|||
#include <linux/memblock.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/crash_dump.h>
|
||||
#ifdef CONFIG_KEXEC_CORE
|
||||
#include <linux/kexec.h>
|
||||
#endif
|
||||
|
||||
#include <trace/events/xen.h>
|
||||
|
||||
|
@ -2715,3 +2718,13 @@ void xen_destroy_contiguous_region(phys_addr_t pstart, unsigned int order)
|
|||
spin_unlock_irqrestore(&xen_reservation_lock, flags);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(xen_destroy_contiguous_region);
|
||||
|
||||
#ifdef CONFIG_KEXEC_CORE
|
||||
phys_addr_t paddr_vmcoreinfo_note(void)
|
||||
{
|
||||
if (xen_pv_domain())
|
||||
return virt_to_machine(&vmcoreinfo_note).maddr;
|
||||
else
|
||||
return __pa_symbol(&vmcoreinfo_note);
|
||||
}
|
||||
#endif /* CONFIG_KEXEC_CORE */
|
||||
|
|
Loading…
Reference in New Issue