summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-07-27 20:10:58 -0400
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-08-21 14:47:13 -0400
commit988f0e24bbcbbf550dff016faf8273a94f4eb1af (patch)
tree5283e9ac3d84bcf5efa80cc8ea1b84f5db864aa6
parent28a33cbc24e4256c143dce96c7d93bf423229f92 (diff)
downloadop-kernel-dev-988f0e24bbcbbf550dff016faf8273a94f4eb1af.zip
op-kernel-dev-988f0e24bbcbbf550dff016faf8273a94f4eb1af.tar.gz
xen/swiotlb: Simplify the logic.
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. Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-rw-r--r--arch/x86/xen/pci-swiotlb-xen.c9
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;
}
OpenPOWER on IntegriCloud