[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:
Balazs Gerofi bgerofi@riken.jp
2013-05-10 12:40:50 +09:00
parent d5a6343dd3
commit b83083b9a2

View File

@ -385,6 +385,11 @@ static int __clear_pt_page(struct page_table *pt, void *virt, int largepage)
return 0;
}
}
if ((pt->entry[l2idx] & PFL2_PRESENT)) {
return -EINVAL;
}
pt = phys_to_virt(pt->entry[l2idx] & PAGE_MASK);
pt->entry[l1idx] = 0;