|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC for-4.5 01/12] xen/common: grant-table: only call IOMMU if paging mode translate is disabled
>>> On 07.02.14 at 18:43, Julien Grall <julien.grall@xxxxxxxxxx> wrote:
> From Xen point of view, ARM guests are PV guest with paging auto translate
> enabled.
>
> When IOMMU support will be added for ARM, mapping grant ref will always
> crash
> Xen due to the BUG_ON in __gnttab_map_grant_ref.
>
> On x86:
> - PV guests always have paging mode translate disabled
> - PVH and HVM guests have always paging mode translate enabled
>
> It means that we can safely replace the check that the domain is a PV guests
> by checking if the guest has paging mode translate enabled.
>
> Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
> Cc: Keir Fraser <keir@xxxxxxx>
> ---
> xen/common/grant_table.c | 7 ++-----
> 1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
> index 107b000..778bdb7 100644
> --- a/xen/common/grant_table.c
> +++ b/xen/common/grant_table.c
> @@ -721,12 +721,10 @@ __gnttab_map_grant_ref(
>
> double_gt_lock(lgt, rgt);
>
> - if ( is_pv_domain(ld) && need_iommu(ld) )
> + if ( !paging_mode_translate(ld) && need_iommu(ld) )
> {
> unsigned int wrc, rdc;
> int err = 0;
> - /* Shouldn't happen, because you can't use iommu in a HVM domain. */
> - BUG_ON(paging_mode_translate(ld));
> /* We're not translated, so we know that gmfns and mfns are
> the same things, so the IOMMU entry is always 1-to-1. */
> mapcount(lgt, rd, frame, &wrc, &rdc);
> @@ -931,11 +929,10 @@ __gnttab_unmap_common(
> act->pin -= GNTPIN_hstw_inc;
> }
>
> - if ( is_pv_domain(ld) && need_iommu(ld) )
> + if ( !paging_mode_translate(ld) && need_iommu(ld) )
> {
> unsigned int wrc, rdc;
> int err = 0;
> - BUG_ON(paging_mode_translate(ld));
> mapcount(lgt, rd, op->frame, &wrc, &rdc);
> if ( (wrc + rdc) == 0 )
> err = iommu_unmap_page(ld, op->frame);
> --
> 1.7.10.4
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |