summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/kvm/files/kvm-51-qemu-ramaddr.patch')
-rw-r--r--app-emulation/kvm/files/kvm-51-qemu-ramaddr.patch82
1 files changed, 82 insertions, 0 deletions
diff --git a/app-emulation/kvm/files/kvm-51-qemu-ramaddr.patch b/app-emulation/kvm/files/kvm-51-qemu-ramaddr.patch
new file mode 100644
index 0000000..be14e5d
--- /dev/null
+++ b/app-emulation/kvm/files/kvm-51-qemu-ramaddr.patch
@@ -0,0 +1,82 @@
+diff --git a/qemu/exec.c b/qemu/exec.c
+index 788a913..c1bf8d5 100644
+--- a/qemu/exec.c
++++ b/qemu/exec.c
+@@ -1986,7 +1986,7 @@ static inline void tlb_set_dirty(CPUState *env,
+
+ static int subpage_register (subpage_t *mmio, uint32_t start, uint32_t end,
+ int memory);
+-static void *subpage_init (target_phys_addr_t base, uint32_t *phys,
++static void *subpage_init (target_phys_addr_t base, ram_addr_t *phys,
+ int orig_memory);
+ #define CHECK_SUBPAGE(addr, start_addr, start_addr2, end_addr, end_addr2, \
+ need_subpage) \
+@@ -2094,7 +2094,7 @@ ram_addr_t qemu_ram_alloc(unsigned long size)
+ {
+ ram_addr_t addr;
+ if ((phys_ram_alloc_offset + size) >= phys_ram_size) {
+- fprintf(stderr, "Not enough memory (requested_size = %u, max memory = %d)\n",
++ fprintf(stderr, "Not enough memory (requested_size = %u, max memory = %lu)\n",
+ size, phys_ram_size);
+ abort();
+ }
+@@ -2430,7 +2430,7 @@ static int subpage_register (subpage_t *mmio, uint32_t start, uint32_t end,
+ return 0;
+ }
+
+-static void *subpage_init (target_phys_addr_t base, uint32_t *phys,
++static void *subpage_init (target_phys_addr_t base, ram_addr_t *phys,
+ int orig_memory)
+ {
+ subpage_t *mmio;
+diff --git a/qemu/migration.c b/qemu/migration.c
+index f6e2754..a8f32d2 100644
+--- a/qemu/migration.c
++++ b/qemu/migration.c
+@@ -803,7 +803,7 @@ static int migrate_incoming_fd(int fd)
+
+ size = qemu_get_be32(f);
+ if (size != phys_ram_size) {
+- fprintf(stderr, "migration: memory size mismatch: recv %u mine %u\n",
++ fprintf(stderr, "migration: memory size mismatch: recv %u mine %lu\n",
+ size, phys_ram_size);
+ return MIG_STAT_DST_MEM_SIZE_MISMATCH;
+ }
+@@ -1058,7 +1058,7 @@ void do_info_migration(void)
+ term_printf("Transfer rate %3.1f mb/s\n",
+ (double)s->bps / (1024 * 1024));
+ term_printf("Iteration %d\n", s->iteration);
+- term_printf("Transferred %d/%d pages\n", s->updated_pages, phys_ram_size >> TARGET_PAGE_BITS);
++ term_printf("Transferred %d/%lu pages\n", s->updated_pages, phys_ram_size >> TARGET_PAGE_BITS);
+ if (s->iteration)
+ term_printf("Last iteration found %d dirty pages\n", s->last_updated_pages);
+ } else {
+diff --git a/qemu/vl.c b/qemu/vl.c
+index 70d8c81..279cf0c 100644
+--- a/qemu/vl.c
++++ b/qemu/vl.c
+@@ -130,10 +130,14 @@ int inet_aton(const char *cp, struct in_addr *ia);
+ //#define DEBUG_UNUSED_IOPORT
+ //#define DEBUG_IOPORT
+
+-#if HOST_LONG_BITS < 64
++#if TARGET_LONG_BITS < 64
+ #define PHYS_RAM_MAX_SIZE (2047 * 1024 * 1024)
+ #else
++#if HOST_LONG_BITS < 64
+ #define PHYS_RAM_MAX_SIZE (2047 * 1024 * 1024 * 1024ULL)
++#else
++#define PHYS_RAM_MAX_SIZE (2047 * 1024 * 1024 * 1024UL)
++#endif
+ #endif
+
+ #ifdef TARGET_PPC
+@@ -8249,7 +8253,7 @@ int main(int argc, char **argv)
+ if (ram_size <= 0)
+ help(1);
+ if (ram_size > PHYS_RAM_MAX_SIZE) {
+- fprintf(stderr, "qemu: at most %d MB RAM can be simulated\n",
++ fprintf(stderr, "qemu: at most " TARGET_FMT_lu " MB RAM can be simulated\n",
+ PHYS_RAM_MAX_SIZE / (1024 * 1024));
+ exit(1);
+ }