exec: Remove MemoryRegion::global_locking field
Last uses of memory_region_clear_global_locking() have been removed in commit7070e085d4
("acpi: mark PMTIMER as unlocked") and commit08565552f7
("cputlb: Move NOTDIRTY handling from I/O path to TLB path"). Remove memory_region_clear_global_locking() and the now unused 'global_locking' field in MemoryRegion. Reported-by: Alexander Bulekov <alxndr@bu.edu> Suggested-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-Id: <20200806150726.962-1-philmd@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
b2a3b8d787
commit
4174495408
@ -1053,7 +1053,7 @@ static uint64_t io_readx(CPUArchState *env, CPUIOTLBEntry *iotlbentry,
|
||||
cpu_io_recompile(cpu, retaddr);
|
||||
}
|
||||
|
||||
if (mr->global_locking && !qemu_mutex_iothread_locked()) {
|
||||
if (!qemu_mutex_iothread_locked()) {
|
||||
qemu_mutex_lock_iothread();
|
||||
locked = true;
|
||||
}
|
||||
@ -1114,7 +1114,7 @@ static void io_writex(CPUArchState *env, CPUIOTLBEntry *iotlbentry,
|
||||
*/
|
||||
save_iotlb_data(cpu, iotlbentry->addr, section, mr_offset);
|
||||
|
||||
if (mr->global_locking && !qemu_mutex_iothread_locked()) {
|
||||
if (!qemu_mutex_iothread_locked()) {
|
||||
qemu_mutex_lock_iothread();
|
||||
locked = true;
|
||||
}
|
||||
|
2
exec.c
2
exec.c
@ -3137,7 +3137,7 @@ static bool prepare_mmio_access(MemoryRegion *mr)
|
||||
bool unlocked = !qemu_mutex_iothread_locked();
|
||||
bool release_lock = false;
|
||||
|
||||
if (unlocked && mr->global_locking) {
|
||||
if (unlocked) {
|
||||
qemu_mutex_lock_iothread();
|
||||
unlocked = false;
|
||||
release_lock = true;
|
||||
|
@ -404,7 +404,6 @@ struct MemoryRegion {
|
||||
bool nonvolatile;
|
||||
bool rom_device;
|
||||
bool flush_coalesced_mmio;
|
||||
bool global_locking;
|
||||
uint8_t dirty_log_mask;
|
||||
bool is_iommu;
|
||||
RAMBlock *ram_block;
|
||||
@ -1738,19 +1737,6 @@ void memory_region_set_flush_coalesced(MemoryRegion *mr);
|
||||
*/
|
||||
void memory_region_clear_flush_coalesced(MemoryRegion *mr);
|
||||
|
||||
/**
|
||||
* memory_region_clear_global_locking: Declares that access processing does
|
||||
* not depend on the QEMU global lock.
|
||||
*
|
||||
* By clearing this property, accesses to the memory region will be processed
|
||||
* outside of QEMU's global lock (unless the lock is held on when issuing the
|
||||
* access request). In this case, the device model implementing the access
|
||||
* handlers is responsible for synchronization of concurrency.
|
||||
*
|
||||
* @mr: the memory region to be updated.
|
||||
*/
|
||||
void memory_region_clear_global_locking(MemoryRegion *mr);
|
||||
|
||||
/**
|
||||
* memory_region_add_eventfd: Request an eventfd to be triggered when a word
|
||||
* is written to a location.
|
||||
|
@ -1221,7 +1221,6 @@ static void memory_region_initfn(Object *obj)
|
||||
mr->ops = &unassigned_mem_ops;
|
||||
mr->enabled = true;
|
||||
mr->romd_mode = true;
|
||||
mr->global_locking = true;
|
||||
mr->destructor = memory_region_destructor_none;
|
||||
QTAILQ_INIT(&mr->subregions);
|
||||
QTAILQ_INIT(&mr->coalesced);
|
||||
@ -2277,11 +2276,6 @@ void memory_region_clear_flush_coalesced(MemoryRegion *mr)
|
||||
}
|
||||
}
|
||||
|
||||
void memory_region_clear_global_locking(MemoryRegion *mr)
|
||||
{
|
||||
mr->global_locking = false;
|
||||
}
|
||||
|
||||
static bool userspace_eventfd_warning;
|
||||
|
||||
void memory_region_add_eventfd(MemoryRegion *mr,
|
||||
|
Loading…
Reference in New Issue
Block a user