qemu-patch-raspberry4/hw/s390x
David Hildenbrand 732bdd383e s390/sclp: temporarily fix unassignment/reassignment of memory subregions
Commit 374f2981d1 ("memory: protect current_map by RCU") broke
unassignment of standby memory on s390x. Looks like that the new
parallelism allows races with our (semi broken) memory hotplug code. The
flatview_unref() can now be executed after our unparenting. Therefore
memory_region_unref() tries to unreference the MemoryRegion itself instead
of the parent.

In theory, MemoryRegions are now bound to separate devices that control
their lifetime. We don't have this yet, so we really want to control their
lifetime manually.

This patch fixes it temporarily, until we have a proper rework. The only
drawback is that they won't pop up in "info qom-tree", but that's better
than qemu crashes.

We have to release the reference to a memory region after a
memory_region_find, as it automatically takes a reference. As we're now
able to reassign memory, the MemoryRegion is in fact deleted (otherwise
vmstate_register_ram() would complain).

Reviewed-by: Matthew Rosato <mjrosato@linux.vnet.ibm.com>
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2015-09-07 16:10:43 +02:00
..
css.c s390x/css: start with cleared cstat/dstat 2015-09-07 16:10:43 +02:00
css.h s390x/css: Add a callback for when subchannel gets disabled 2015-06-30 09:34:58 +02:00
event-facility.c s390/sclp: replace sclp event types with proper defines 2015-09-07 16:10:43 +02:00
ipl.c s390x/ipl: Fix boot if no bootindex was specified 2015-07-02 15:35:33 +02:00
ipl.h s390x/ipl: drop reipl parameters on resets 2015-02-13 16:14:09 +01:00
Makefile.objs s390x: Create QOM device for s390 storage keys 2015-09-03 12:17:54 +02:00
s390-pci-bus.c Switch non-CPU callers from ld/st*_phys to address_space_ld/st* 2015-04-26 16:49:24 +01:00
s390-pci-bus.h s390: Add PCI bus support 2015-01-12 10:14:04 +01:00
s390-pci-inst.c s390x/kvm: Support access register mode for KVM_S390_MEM_OP ioctl 2015-04-30 13:21:42 +02:00
s390-pci-inst.h s390x/kvm: Support access register mode for KVM_S390_MEM_OP ioctl 2015-04-30 13:21:42 +02:00
s390-skeys-kvm.c s390x: Create QOM device for s390 storage keys 2015-09-03 12:17:54 +02:00
s390-skeys.c s390x: Disable storage key migration on old machine type 2015-09-03 12:17:54 +02:00
s390-virtio-bus.c Include monitor/monitor.h exactly where needed 2015-06-22 18:20:41 +02:00
s390-virtio-bus.h virtio: move host_features 2015-05-31 16:27:18 +02:00
s390-virtio-ccw.c s390x: Disable storage key migration on old machine type 2015-09-03 12:17:54 +02:00
s390-virtio-hcall.c s390x/virtio-hcall: Specification exception for illegal subcodes 2014-02-27 09:51:25 +01:00
s390-virtio.c s390x: Enable new s390-storage-keys device 2015-09-03 12:17:54 +02:00
s390-virtio.h s390x: Enable new s390-storage-keys device 2015-09-03 12:17:54 +02:00
sclp.c s390/sclp: temporarily fix unassignment/reassignment of memory subregions 2015-09-07 16:10:43 +02:00
sclpcpu.c s390/sclp: replace sclp event types with proper defines 2015-09-07 16:10:43 +02:00
sclpquiesce.c s390/sclp: replace sclp event types with proper defines 2015-09-07 16:10:43 +02:00
virtio-ccw.c s390/virtio-ccw: Fix migration 2015-07-14 19:10:03 +02:00
virtio-ccw.h s390x/virtio-ccw: add virtio set-revision call 2015-07-02 15:35:15 +02:00