|
@@ -885,6 +885,8 @@ static int xen_pin_page(struct mm_struct *mm, struct page *page,
|
|
read-only, and can be pinned. */
|
|
read-only, and can be pinned. */
|
|
static void __xen_pgd_pin(struct mm_struct *mm, pgd_t *pgd)
|
|
static void __xen_pgd_pin(struct mm_struct *mm, pgd_t *pgd)
|
|
{
|
|
{
|
|
|
|
+ trace_xen_mmu_pgd_pin(mm, pgd);
|
|
|
|
+
|
|
xen_mc_batch();
|
|
xen_mc_batch();
|
|
|
|
|
|
if (__xen_pgd_walk(mm, pgd, xen_pin_page, USER_LIMIT)) {
|
|
if (__xen_pgd_walk(mm, pgd, xen_pin_page, USER_LIMIT)) {
|
|
@@ -1010,6 +1012,8 @@ static int xen_unpin_page(struct mm_struct *mm, struct page *page,
|
|
/* Release a pagetables pages back as normal RW */
|
|
/* Release a pagetables pages back as normal RW */
|
|
static void __xen_pgd_unpin(struct mm_struct *mm, pgd_t *pgd)
|
|
static void __xen_pgd_unpin(struct mm_struct *mm, pgd_t *pgd)
|
|
{
|
|
{
|
|
|
|
+ trace_xen_mmu_pgd_unpin(mm, pgd);
|
|
|
|
+
|
|
xen_mc_batch();
|
|
xen_mc_batch();
|
|
|
|
|
|
xen_do_pin(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
|
|
xen_do_pin(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
|