[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH] x86/mm: ensure L2 is always freed if empty
The current logic in modify_xen_mappings() allows for fully empty L2 tables to not be freed and unhooked from the parent L3 if the last L2 slot is not populated. Ensure that even when an L2 slot is empty the logic to check whether the whole L2 can be removed is not skipped. Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> --- I've attempted to find a Fixes tag for this one, but I'm afraid there have been many changes in the function, and it's possibly the code that introduced the L2 freeing (4376c05c31132) the one that failed to originally adjust this case. --- xen/arch/x86/mm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index d537a799bced..0f53dcebad95 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -5717,7 +5717,7 @@ int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf) v += 1UL << L2_PAGETABLE_SHIFT; v &= ~((1UL << L2_PAGETABLE_SHIFT) - 1); - continue; + goto check_l3; } if ( l2e_get_flags(*pl2e) & _PAGE_PSE ) -- 2.46.0
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |