5d360b
From 26e8c3574944585f9f02a92b03a6e7097dd3a7dd Mon Sep 17 00:00:00 2001
5d360b
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
5d360b
Date: Wed, 13 Dec 2017 13:38:53 +0100
5d360b
Subject: [PATCH 22/41] dump: allow target to set the physical base
5d360b
MIME-Version: 1.0
5d360b
Content-Type: text/plain; charset=UTF-8
5d360b
Content-Transfer-Encoding: 8bit
5d360b
5d360b
RH-Author: Marc-André Lureau <marcandre.lureau@redhat.com>
5d360b
Message-id: <20171213133912.26176-23-marcandre.lureau@redhat.com>
5d360b
Patchwork-id: 78371
5d360b
O-Subject: [RHEL-7.5 qemu-kvm PATCH v3 22/41] dump: allow target to set the physical base
5d360b
Bugzilla: 1411490
5d360b
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
5d360b
RH-Acked-by: Michael S. Tsirkin <mst@redhat.com>
5d360b
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
5d360b
5d360b
From: Andrew Jones <drjones@redhat.com>
5d360b
5d360b
crash assumes the physical base in the kdump subheader of
5d360b
makedumpfile formatted dumps is correct. Zero is not correct
5d360b
for all architectures, so allow it to be changed.
5d360b
5d360b
(No functional change.)
5d360b
5d360b
Signed-off-by: Andrew Jones <drjones@redhat.com>
5d360b
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
5d360b
Message-id: 1452542185-10914-5-git-send-email-drjones@redhat.com
5d360b
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
5d360b
5d360b
(cherry picked from commit b6e05aa473b52e049654fae834453232e6b6e798)
5d360b
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
5d360b
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
5d360b
---
5d360b
 dump.c                     | 4 ++--
5d360b
 include/sysemu/dump-arch.h | 1 +
5d360b
 include/sysemu/dump.h      | 1 -
5d360b
 3 files changed, 3 insertions(+), 3 deletions(-)
5d360b
5d360b
diff --git a/dump.c b/dump.c
5d360b
index b5d6608..a359c29 100644
5d360b
--- a/dump.c
5d360b
+++ b/dump.c
5d360b
@@ -780,7 +780,7 @@ static void create_header32(DumpState *s, Error **errp)
5d360b
 
5d360b
     /* 64bit max_mapnr_64 */
5d360b
     kh->max_mapnr_64 = cpu_to_dump64(s, s->max_mapnr);
5d360b
-    kh->phys_base = cpu_to_dump32(s, PHYS_BASE);
5d360b
+    kh->phys_base = cpu_to_dump32(s, s->dump_info.phys_base);
5d360b
     kh->dump_level = cpu_to_dump32(s, DUMP_LEVEL);
5d360b
 
5d360b
     offset_note = DISKDUMP_HEADER_BLOCKS * block_size + size;
5d360b
@@ -880,7 +880,7 @@ static void create_header64(DumpState *s, Error **errp)
5d360b
 
5d360b
     /* 64bit max_mapnr_64 */
5d360b
     kh->max_mapnr_64 = cpu_to_dump64(s, s->max_mapnr);
5d360b
-    kh->phys_base = cpu_to_dump64(s, PHYS_BASE);
5d360b
+    kh->phys_base = cpu_to_dump64(s, s->dump_info.phys_base);
5d360b
     kh->dump_level = cpu_to_dump32(s, DUMP_LEVEL);
5d360b
 
5d360b
     offset_note = DISKDUMP_HEADER_BLOCKS * block_size + size;
5d360b
diff --git a/include/sysemu/dump-arch.h b/include/sysemu/dump-arch.h
5d360b
index 4335839..e25b02e 100644
5d360b
--- a/include/sysemu/dump-arch.h
5d360b
+++ b/include/sysemu/dump-arch.h
5d360b
@@ -20,6 +20,7 @@ typedef struct ArchDumpInfo {
5d360b
     int d_class;             /* ELFCLASS32 or ELFCLASS64 */
5d360b
     uint32_t page_size;      /* The target's page size. If it's variable and
5d360b
                               * unknown, then this should be the maximum. */
5d360b
+    uint64_t phys_base;      /* The target's physmem base. */
5d360b
 } ArchDumpInfo;
5d360b
 
5d360b
 struct GuestPhysBlockList; /* memory_mapping.h */
5d360b
diff --git a/include/sysemu/dump.h b/include/sysemu/dump.h
5d360b
index 16cbd8d..2f04b24 100644
5d360b
--- a/include/sysemu/dump.h
5d360b
+++ b/include/sysemu/dump.h
5d360b
@@ -33,7 +33,6 @@
5d360b
 
5d360b
 #define KDUMP_SIGNATURE             "KDUMP   "
5d360b
 #define SIG_LEN                     (sizeof(KDUMP_SIGNATURE) - 1)
5d360b
-#define PHYS_BASE                   (0)
5d360b
 #define DUMP_LEVEL                  (1)
5d360b
 #define DISKDUMP_HEADER_BLOCKS      (1)
5d360b
 
5d360b
-- 
5d360b
1.8.3.1
5d360b