|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC 07/22] xen/arm: p2m: Rework p2m_put_l3_page
On Thu, 28 Jul 2016, Julien Grall wrote:
> Modify the prototype to directly pass the mfn and the type in
> parameters. This will be useful later when we do not have the entry in
> hand.
>
> Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> xen/arch/arm/p2m.c | 17 +++++++----------
> 1 file changed, 7 insertions(+), 10 deletions(-)
>
> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
> index aecdd1e..6b29cf0 100644
> --- a/xen/arch/arm/p2m.c
> +++ b/xen/arch/arm/p2m.c
> @@ -584,10 +584,8 @@ enum p2m_operation {
> * TODO: Handle superpages, for now we only take special references for leaf
> * pages (specifically foreign ones, which can't be super mapped today).
> */
> -static void p2m_put_l3_page(const lpae_t pte)
> +static void p2m_put_l3_page(mfn_t mfn, p2m_type_t type)
> {
> - ASSERT(p2m_valid(pte));
> -
> /*
> * TODO: Handle other p2m types
> *
> @@ -595,12 +593,10 @@ static void p2m_put_l3_page(const lpae_t pte)
> * flush the TLBs if the page is reallocated before the end of
> * this loop.
> */
> - if ( p2m_is_foreign(pte.p2m.type) )
> + if ( p2m_is_foreign(type) )
> {
> - unsigned long mfn = pte.p2m.base;
> -
> - ASSERT(mfn_valid(mfn));
> - put_page(mfn_to_page(mfn));
> + ASSERT(mfn_valid(mfn_x(mfn)));
> + put_page(mfn_to_page(mfn_x(mfn)));
> }
> }
>
> @@ -734,7 +730,8 @@ static int apply_one_level(struct domain *d,
> */
> BUG_ON(level < 3 && p2m_table(orig_pte));
> if ( level == 3 )
> - p2m_put_l3_page(orig_pte);
> + p2m_put_l3_page(_mfn(orig_pte.p2m.base),
> + orig_pte.p2m.type);
> }
> else /* New mapping */
> p2m->stats.mappings[level]++;
> @@ -834,7 +831,7 @@ static int apply_one_level(struct domain *d,
> p2m->stats.mappings[level]--;
>
> if ( level == 3 )
> - p2m_put_l3_page(orig_pte);
> + p2m_put_l3_page(_mfn(orig_pte.p2m.base), orig_pte.p2m.type);
>
> /*
> * This is still a single pte write, no matter the level, so no need
> to
> --
> 1.9.1
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |