Suggested-by: Jani Kokkonen <jani.kokko...@huawei.com> Suggested-by: Claudio Fontana <claudio.font...@huawei.com> Signed-off-by: Alvise Rigo <a.r...@virtualopensystems.com> --- include/exec/ram_addr.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/exec/ram_addr.h b/include/exec/ram_addr.h index 2766541..e51bd65 100644 --- a/include/exec/ram_addr.h +++ b/include/exec/ram_addr.h @@ -255,7 +255,7 @@ uint64_t cpu_physical_memory_sync_dirty_bitmap(unsigned long *dest, /* Exclusive bitmap accessors. */ static inline void cpu_physical_memory_set_excl_dirty(ram_addr_t addr) { - set_bit(addr >> TARGET_PAGE_BITS, + set_bit_atomic(addr >> TARGET_PAGE_BITS, ram_list.dirty_memory[DIRTY_MEMORY_EXCLUSIVE]); } @@ -267,8 +267,8 @@ static inline int cpu_physical_memory_excl_is_dirty(ram_addr_t addr) static inline void cpu_physical_memory_clear_excl_dirty(ram_addr_t addr) { - clear_bit(addr >> TARGET_PAGE_BITS, - ram_list.dirty_memory[DIRTY_MEMORY_EXCLUSIVE]); + bitmap_test_and_clear_atomic(ram_list.dirty_memory[DIRTY_MEMORY_EXCLUSIVE], + addr >> TARGET_PAGE_BITS, 1); } #endif -- 2.4.5