On 08/11/2016 08:24 AM, Alex Bennée wrote:
+ if (mr->global_locking) { + qemu_mutex_lock_iothread(); + locked = true; + } memory_region_dispatch_read(mr, physaddr, &val, 1 << SHIFT, iotlbentry->attrs); + if (locked) { + qemu_mutex_unlock_iothread(); + }
I'm not keen on this pattern. (1) Why not use recursive locks? (2) If there's a good reason why not, then perhaps if (mr->global_locking) { qemu_mutex_lock_iothread(); do_something; qemu_mutex_unlock_iothread(); } else { do_something; } is a better pattern to use. r~