|
@@ -8122,17 +8122,19 @@ static int open_self_maps_1(CPUArchState *env, int fd, bool smaps)
|
|
|
{
|
|
|
struct open_self_maps_data d = {
|
|
|
.ts = get_task_state(env_cpu(env)),
|
|
|
- .host_maps = read_self_maps(),
|
|
|
.fd = fd,
|
|
|
.smaps = smaps
|
|
|
};
|
|
|
|
|
|
+ mmap_lock();
|
|
|
+ d.host_maps = read_self_maps();
|
|
|
if (d.host_maps) {
|
|
|
walk_memory_regions(&d, open_self_maps_2);
|
|
|
free_self_maps(d.host_maps);
|
|
|
} else {
|
|
|
walk_memory_regions(&d, open_self_maps_3);
|
|
|
}
|
|
|
+ mmap_unlock();
|
|
|
return 0;
|
|
|
}
|
|
|
|