mirror of
https://github.com/qemu/qemu.git
synced 2024-11-28 22:33:36 +08:00
fixed dirty bit support for 4M pages (L4 Pistachio fix)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@549 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
69e5bc9068
commit
777aca2fd3
@ -304,7 +304,7 @@ int cpu_x86_handle_mmu_fault(CPUX86State *env, uint32_t addr,
|
|||||||
/* if PSE bit is set, then we use a 4MB page */
|
/* if PSE bit is set, then we use a 4MB page */
|
||||||
if ((pde & PG_PSE_MASK) && (env->cr[4] & CR4_PSE_MASK)) {
|
if ((pde & PG_PSE_MASK) && (env->cr[4] & CR4_PSE_MASK)) {
|
||||||
is_dirty = is_write && !(pde & PG_DIRTY_MASK);
|
is_dirty = is_write && !(pde & PG_DIRTY_MASK);
|
||||||
if (!(pde & PG_ACCESSED_MASK)) {
|
if (!(pde & PG_ACCESSED_MASK) || is_dirty) {
|
||||||
pde |= PG_ACCESSED_MASK;
|
pde |= PG_ACCESSED_MASK;
|
||||||
if (is_dirty)
|
if (is_dirty)
|
||||||
pde |= PG_DIRTY_MASK;
|
pde |= PG_DIRTY_MASK;
|
||||||
@ -363,7 +363,7 @@ int cpu_x86_handle_mmu_fault(CPUX86State *env, uint32_t addr,
|
|||||||
prot |= PROT_WRITE;
|
prot |= PROT_WRITE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
do_mapping:
|
do_mapping:
|
||||||
pte = pte & a20_mask;
|
pte = pte & a20_mask;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user