Actually, all registrations are the same. If IO_MEM_ROM is set, we only need to take care of not passing its value as the phys_offset.
Signed-off-by: Glauber Costa <[EMAIL PROTECTED]> --- qemu/qemu-kvm.c | 31 +++++++++++-------------------- 1 files changed, 11 insertions(+), 20 deletions(-) diff --git a/qemu/qemu-kvm.c b/qemu/qemu-kvm.c index c522a28..58a6d4a 100644 --- a/qemu/qemu-kvm.c +++ b/qemu/qemu-kvm.c @@ -776,26 +776,17 @@ void kvm_cpu_register_physical_memory(target_phys_addr_t start_addr, unsigned long phys_offset) { int r = 0; - if (!(phys_offset & ~TARGET_PAGE_MASK)) { - r = kvm_is_allocated_mem(kvm_context, start_addr, size); - if (r) - return; - r = kvm_is_intersecting_mem(kvm_context, start_addr); - if (r) - kvm_create_mem_hole(kvm_context, start_addr, size); - r = kvm_register_phys_mem(kvm_context, start_addr, - phys_ram_base + phys_offset, - size, 0); - } - if (phys_offset & IO_MEM_ROM) { - phys_offset &= ~IO_MEM_ROM; - r = kvm_is_intersecting_mem(kvm_context, start_addr); - if (r) - kvm_create_mem_hole(kvm_context, start_addr, size); - r = kvm_register_phys_mem(kvm_context, start_addr, - phys_ram_base + phys_offset, - size, 0); - } + + phys_offset &= ~IO_MEM_ROM; + r = kvm_is_allocated_mem(kvm_context, start_addr, size); + if (r) + return; + r = kvm_is_intersecting_mem(kvm_context, start_addr); + if (r) + kvm_create_mem_hole(kvm_context, start_addr, size); + r = kvm_register_phys_mem(kvm_context, start_addr, + phys_ram_base + phys_offset, + size, 0); if (r < 0) { printf("kvm_cpu_register_physical_memory: failed\n"); exit(1); -- 1.5.5.1 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html