mirror of
https://github.com/qemu/qemu.git
synced 2024-12-05 01:33:41 +08:00
s390x/kvm: legacy_s390_alloc() only supports one allocation
We always allocate at a fixed address, a second allocation can therefore of course never work. We would simply overwrite mappings. This can e.g. happen in s390_memory_init(), if trying to allocate more than > 8TB. Let's just bail out, as there is no need for supporting it (legacy handling for z/VM). Signed-off-by: David Hildenbrand <david@redhat.com> Message-Id: <20180628113817.30814-2-david@redhat.com> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
This commit is contained in:
parent
d66b43c896
commit
8151942151
@ -752,12 +752,20 @@ int kvm_s390_mem_op(S390CPU *cpu, vaddr addr, uint8_t ar, void *hostbuf,
|
||||
*/
|
||||
static void *legacy_s390_alloc(size_t size, uint64_t *align, bool shared)
|
||||
{
|
||||
void *mem;
|
||||
static void *mem;
|
||||
|
||||
if (mem) {
|
||||
/* we only support one allocation, which is enough for initial ram */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
mem = mmap((void *) 0x800000000ULL, size,
|
||||
PROT_EXEC|PROT_READ|PROT_WRITE,
|
||||
MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, -1, 0);
|
||||
return mem == MAP_FAILED ? NULL : mem;
|
||||
if (mem == MAP_FAILED) {
|
||||
mem = NULL;
|
||||
}
|
||||
return mem;
|
||||
}
|
||||
|
||||
static uint8_t const *sw_bp_inst;
|
||||
|
Loading…
Reference in New Issue
Block a user