Re: [Xen-devel] [PATCH 1/5] xen/swiotlb: Simplify the logic.

From: Stefano Stabellini
Date: Fri Aug 17 2012 - 13:09:11 EST


On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
> Its pretty easy:
> 1). We only check to see if we need Xen SWIOTLB for PV guests.
> 2). If swiotlb=force or iommu=soft is set, then Xen SWIOTLB will
> be enabled.
> 3). If it is an initial domain, then Xen SWIOTLB will be enabled.
> 4). Native SWIOTLB must be disabled for PV guests.
>
> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>

Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>


> arch/x86/xen/pci-swiotlb-xen.c | 9 +++++----
> 1 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/arch/x86/xen/pci-swiotlb-xen.c b/arch/x86/xen/pci-swiotlb-xen.c
> index 967633a..b6a5340 100644
> --- a/arch/x86/xen/pci-swiotlb-xen.c
> +++ b/arch/x86/xen/pci-swiotlb-xen.c
> @@ -34,19 +34,20 @@ static struct dma_map_ops xen_swiotlb_dma_ops = {
> int __init pci_xen_swiotlb_detect(void)
> {
>
> + if (!xen_pv_domain())
> + return 0;
> +
> /* If running as PV guest, either iommu=soft, or swiotlb=force will
> * activate this IOMMU. If running as PV privileged, activate it
> * irregardless.
> */
> - if ((xen_initial_domain() || swiotlb || swiotlb_force) &&
> - (xen_pv_domain()))
> + if ((xen_initial_domain() || swiotlb || swiotlb_force))
> xen_swiotlb = 1;
>
> /* If we are running under Xen, we MUST disable the native SWIOTLB.
> * Don't worry about swiotlb_force flag activating the native, as
> * the 'swiotlb' flag is the only one turning it on. */
> - if (xen_pv_domain())
> - swiotlb = 0;
> + swiotlb = 0;
>
> return xen_swiotlb;
> }
> --
> 1.7.7.6
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/