On 07/25/2012 01:58 PM, Avi Kivity wrote: >> while (len > 0) { >> page = addr & TARGET_PAGE_MASK; >> l = (page + TARGET_PAGE_SIZE) - addr; >> if (l > len) >> l = len; >> + >> + qemu_rwlock_rdlock_devtree(); >> section = phys_page_find(page >> TARGET_PAGE_BITS); > > Does the devtree lock also protect the data structures accessed by > phys_page_find()? Seems wrong. The right way is to object_ref() in core_region_add() and object_unref() in core_region_del(). We're guaranteed that mr->object is alive during _add(), and DeviceClass::unmap() ensures that the extra ref doesn't block destruction. -- error compiling committee.c: too many arguments to function -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html