Richard Henderson <richard.hender...@linaro.org> writes:

> On 11/25/21 4:41 PM, Alex Bennée wrote:
>> @@ -1738,7 +1738,7 @@ tb_invalidate_phys_page_range__locked(struct 
>> page_collection *pages,
>>       if (current_tb_modified) {
>>           page_collection_unlock(pages);
>>           /* Force execution of one insn next time.  */
>> -        cpu->cflags_next_tb = 1 | curr_cflags(cpu);
>> +        cpu->cflags_next_tb = 1 | CF_NOIRQ | curr_cflags(cpu);
>>           mmap_unlock();
>>           cpu_loop_exit_noexc(cpu);
>>       }
>
> There's another instance in tb_invalidate_phys_page.
>
>> diff --git a/softmmu/physmem.c b/softmmu/physmem.c
>> index 314f8b439c..b43f92e900 100644
>> --- a/softmmu/physmem.c
>> +++ b/softmmu/physmem.c
>> @@ -946,7 +946,7 @@ void cpu_check_watchpoint(CPUState *cpu, vaddr addr, 
>> vaddr len,
>>                   cpu_loop_exit(cpu);
>>               } else {
>>                   /* Force execution of one insn next time.  */
>> -                cpu->cflags_next_tb = 1 | CF_LAST_IO | curr_cflags(cpu);
>> +                cpu->cflags_next_tb = 1 | CF_LAST_IO | CF_NOIRQ | 
>> curr_cflags(cpu);
>>                   mmap_unlock();
>>                   cpu_loop_exit_noexc(cpu);
>>               }
>
> And a second instance in this function.

I had skipped this one as icount was in effect but I guess it can't hurt.

-- 
Alex Bennée

Reply via email to