mirror of https://github.com/xqemu/xqemu.git
s390-virtio: Apply same memory boundaries as virtio-ccw
Although s390-virtio won't support memory hotplug, it should enforce the same memory boundaries so that it can use shared codepaths (like read_SCP_info). Signed-off-by: Matthew Rosato <mjrosato@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:
parent
b6fe01248e
commit
e7f1314f97
|
@ -230,18 +230,21 @@ static void s390_init(MachineState *machine)
|
||||||
ram_addr_t my_ram_size = machine->ram_size;
|
ram_addr_t my_ram_size = machine->ram_size;
|
||||||
MemoryRegion *sysmem = get_system_memory();
|
MemoryRegion *sysmem = get_system_memory();
|
||||||
MemoryRegion *ram = g_new(MemoryRegion, 1);
|
MemoryRegion *ram = g_new(MemoryRegion, 1);
|
||||||
int shift = 0;
|
int increment_size = 20;
|
||||||
uint8_t *storage_keys;
|
uint8_t *storage_keys;
|
||||||
void *virtio_region;
|
void *virtio_region;
|
||||||
hwaddr virtio_region_len;
|
hwaddr virtio_region_len;
|
||||||
hwaddr virtio_region_start;
|
hwaddr virtio_region_start;
|
||||||
|
|
||||||
/* s390x ram size detection needs a 16bit multiplier + an increment. So
|
/*
|
||||||
guests > 64GB can be specified in 2MB steps etc. */
|
* The storage increment size is a multiple of 1M and is a power of 2.
|
||||||
while ((my_ram_size >> (20 + shift)) > 65535) {
|
* The number of storage increments must be MAX_STORAGE_INCREMENTS or
|
||||||
shift++;
|
* fewer.
|
||||||
|
*/
|
||||||
|
while ((my_ram_size >> increment_size) > MAX_STORAGE_INCREMENTS) {
|
||||||
|
increment_size++;
|
||||||
}
|
}
|
||||||
my_ram_size = my_ram_size >> (20 + shift) << (20 + shift);
|
my_ram_size = my_ram_size >> increment_size << increment_size;
|
||||||
|
|
||||||
/* let's propagate the changed ram size into the global variable. */
|
/* let's propagate the changed ram size into the global variable. */
|
||||||
ram_size = my_ram_size;
|
ram_size = my_ram_size;
|
||||||
|
|
Loading…
Reference in New Issue