qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] remove smaller slots if registering a bigger one
@ 2009-02-11 13:47 Glauber Costa
  2009-02-11 14:23 ` [Qemu-devel] " Jan Kiszka
  0 siblings, 1 reply; 10+ messages in thread
From: Glauber Costa @ 2009-02-11 13:47 UTC (permalink / raw)
  To: qemu-devel; +Cc: jan.kiszka, aliguori

It's like a shark eating a bunch of small fishes:
in some situations (vga linear frame buffer mapping,
for example), we need to register a new slot in place
of older, smaller ones. This patch handles this case

Signed-off-by: Glauber Costa <glommer@redhat.com>
---
 kvm-all.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/kvm-all.c b/kvm-all.c
index 9fb295c..53aca0a 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -582,6 +582,16 @@ void kvm_set_phys_mem(target_phys_addr_t start_addr,
                 kvm_set_phys_mem(mem_start, mem_size, mem_offset);
 
             return;
+        } else if (start_addr <= mem->start_addr &&
+                   (start_addr + size) >= (mem->start_addr +
+                                           mem->memory_size)) {
+            KVMSlot slot;
+            /* unregister whole slot */
+            memcpy(&slot, mem, sizeof(slot));
+            mem->memory_size = 0;
+            kvm_set_user_memory_region(s, mem);
+
+            kvm_set_phys_mem(start_addr, size, phys_offset);
         } else {
             printf("Registering overlapping slot\n");
             abort();
-- 
1.5.6.5

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2009-02-11 16:56 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-11 13:47 [Qemu-devel] [PATCH] remove smaller slots if registering a bigger one Glauber Costa
2009-02-11 14:23 ` [Qemu-devel] " Jan Kiszka
2009-02-11 14:36   ` Avi Kivity
2009-02-11 14:37   ` Glauber Costa
2009-02-11 14:45     ` Jan Kiszka
2009-02-11 14:52       ` Jan Kiszka
2009-02-11 14:59       ` Glauber Costa
2009-02-11 15:30       ` Avi Kivity
2009-02-11 16:47         ` Jan Kiszka
2009-02-11 16:56           ` Avi Kivity

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).