From: Julien Grall Date: Tue, 1 Dec 2015 17:52:11 +0000 (+0000) Subject: xen/arm: p2m: Introduce a helper to remove an entry in the page table X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~2096 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=47f43d1645c8751240415de8609a4c4b07ea3591;p=xen.git xen/arm: p2m: Introduce a helper to remove an entry in the page table Factorize the code to remove an entry in p2m_remove_pte so we can re-use it later. Signed-off-by: Julien Grall Acked-by: Ian Campbell --- diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c index f28ae3f2b9..ae0acf0bde 100644 --- a/xen/arch/arm/p2m.c +++ b/xen/arch/arm/p2m.c @@ -367,6 +367,14 @@ static inline void p2m_write_pte(lpae_t *p, lpae_t pte, bool_t flush_cache) clean_dcache(*p); } +static inline void p2m_remove_pte(lpae_t *p, bool_t flush_cache) +{ + lpae_t pte; + + memset(&pte, 0x00, sizeof(pte)); + p2m_write_pte(p, pte, flush_cache); +} + /* * Allocate a new page table page and hook it in via the given entry. * apply_one_level relies on this returning 0 on success @@ -839,8 +847,7 @@ static int apply_one_level(struct domain *d, *flush = true; - memset(&pte, 0x00, sizeof(pte)); - p2m_write_pte(entry, pte, flush_cache); + p2m_remove_pte(entry, flush_cache); p2m_mem_access_radix_set(p2m, paddr_to_pfn(*addr), p2m_access_rwx); *addr += level_size;