[Bug 16] malfunction of __clear_pt_page when a virtual address is accessed and at that time the corresponding PDTE is invalid: FIX large page issue
This commit is contained in:
@ -385,6 +385,11 @@ static int __clear_pt_page(struct page_table *pt, void *virt, int largepage)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((pt->entry[l2idx] & PFL2_PRESENT)) {
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
pt = phys_to_virt(pt->entry[l2idx] & PAGE_MASK);
|
pt = phys_to_virt(pt->entry[l2idx] & PAGE_MASK);
|
||||||
|
|
||||||
pt->entry[l1idx] = 0;
|
pt->entry[l1idx] = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user