mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
accel/tcg: Rebuild full flags in tlb_reset_dirty_range_locked
Undo the split between inline and slow flags before masking. Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
970354edc0
commit
f05d251906
1 changed files with 3 additions and 2 deletions
|
@ -886,9 +886,10 @@ static void tlb_reset_dirty_range_locked(CPUTLBEntryFull *full, CPUTLBEntry *ent
|
|||
uintptr_t start, uintptr_t length)
|
||||
{
|
||||
const uintptr_t addr = ent->addr_write;
|
||||
int flags = addr | full->slow_flags[MMU_DATA_STORE];
|
||||
|
||||
if ((addr & (TLB_INVALID_MASK | TLB_MMIO |
|
||||
TLB_DISCARD_WRITE | TLB_NOTDIRTY)) == 0) {
|
||||
flags &= TLB_INVALID_MASK | TLB_MMIO | TLB_DISCARD_WRITE | TLB_NOTDIRTY;
|
||||
if (flags == 0) {
|
||||
uintptr_t host = (addr & TARGET_PAGE_MASK) + ent->addend;
|
||||
if ((host - start) < length) {
|
||||
qatomic_set(&ent->addr_write, addr | TLB_NOTDIRTY);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue