From 8ed5181d77a96e9cac0ac0b187f88e6169625761 Mon Sep 17 00:00:00 2001 From: Alok Kataria Date: Fri, 6 Feb 2009 10:29:35 -0800 Subject: [PATCH] --- yaml --- r: 131255 b: refs/heads/master c: 55a8ba4b7f76bebd7e8ce3f74c04b140627a1bad h: refs/heads/master i: 131253: a873cb7f04313b5ed6c0cf0f5b6ce2dcab61f1a5 131251: efc9fdca7e757d846abf8067d882902fc8f9cc7b 131247: 8e4e67d5e8c8c1286fae588700d7c588eec7c878 v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/vmi_32.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 67faafab3433..61089aa12719 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3f4a739c6accd651a11fcf3c7a20ec8147c42660 +refs/heads/master: 55a8ba4b7f76bebd7e8ce3f74c04b140627a1bad diff --git a/trunk/arch/x86/kernel/vmi_32.c b/trunk/arch/x86/kernel/vmi_32.c index 1d3302cc2ddf..bef58b4982db 100644 --- a/trunk/arch/x86/kernel/vmi_32.c +++ b/trunk/arch/x86/kernel/vmi_32.c @@ -320,6 +320,16 @@ static void vmi_release_pmd(unsigned long pfn) vmi_ops.release_page(pfn, VMI_PAGE_L2); } +/* + * We use the pgd_free hook for releasing the pgd page: + */ +static void vmi_pgd_free(struct mm_struct *mm, pgd_t *pgd) +{ + unsigned long pfn = __pa(pgd) >> PAGE_SHIFT; + + vmi_ops.release_page(pfn, VMI_PAGE_L2); +} + /* * Helper macros for MMU update flags. We can defer updates until a flush * or page invalidation only if the update is to the current address space @@ -762,6 +772,7 @@ static inline int __init activate_vmi(void) if (vmi_ops.release_page) { pv_mmu_ops.release_pte = vmi_release_pte; pv_mmu_ops.release_pmd = vmi_release_pmd; + pv_mmu_ops.pgd_free = vmi_pgd_free; } /* Set linear is needed in all cases */