Hi, everyone,
The thing is: The pages that make up a
pagetable must be mapped read-only in the guest. This prevents uncontrolled
guest updates to the pagetable. Xen strictly enforces this, and will disallow
any pagetable update which will end up mapping pagetable page RW, and will
disallow using any writable page as a pagetable.
Say, the sub-op: MMU_NORMAL_PT_UPDATE,
if the page that ptr of struct mmu_update points to is PGT_l2_page_table, then
the address part of val of struct mmu_update points
to a page, which is PGT_l1_page_table.
However, I couldn't find the protections for this PGT_l1_page_table
page in the do_mmu_update, is it already set as read-only
before launching MMU_UPDATE hypercall?
If someone would like to offer me some help, I
really appreciate it.
Thanks!
Best regards,
henry