On 10/1/25 01:21, Philippe Mathieu-Daudé wrote:
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
---
  include/exec/cputlb.h | 1 +
  1 file changed, 1 insertion(+)

diff --git a/include/exec/cputlb.h b/include/exec/cputlb.h
index 9bec0e78909..db7cbf97826 100644
--- a/include/exec/cputlb.h
+++ b/include/exec/cputlb.h
@@ -31,6 +31,7 @@ void tlb_unprotect_code(ram_addr_t ram_addr);
  #endif
#ifndef CONFIG_USER_ONLY
+/* Called with rcu_read_lock held. */
  void tlb_reset_dirty(CPUState *cpu, uintptr_t start, uintptr_t length);
  void tlb_reset_dirty_range_all(ram_addr_t start, ram_addr_t length);
  #endif

I think this is wrong.

tlb_reset_dirty doesn't need to rcu lock.
tlb_reset_dirty_range_all takes the rcu lock so that it can walk the cpu list 
itself.


r~

Reply via email to