Il 13/06/2013 03:02, Markus Armbruster ha scritto: > -static void *legacy_s390_alloc(ram_addr_t size) > + > +static void *legacy_s390_mmap(void *vaddr, ram_addr_t size) > { > - void *mem; > + return mmap(vaddr, size, PROT_EXEC | PROT_READ | PROT_WRITE, > + MAP_FIXED | MAP_SHARED | MAP_ANONYMOUS, -1, 0); > +} > > - mem = mmap((void *) 0x800000000ULL, size, > - PROT_EXEC|PROT_READ|PROT_WRITE, > - MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, -1, 0);
You can just turn kvm_arch_mem_alloc to kvm_arch_ram_mmap, and call it from both kvm_mem_alloc and a new kvm_mem_remap. Then s390 can do mmap(vaddr ? vaddr : (void *) 0x800000000ULL, size, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_FIXED | MAP_SHARED | MAP_ANONYMOUS, -1, 0); and other arches can still return NULL. Paolo