Skip to content

Commit

Permalink
xen/swiotlb: Simplify the logic.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Konrad Rzeszutek Wilk committed Aug 21, 2012
1 parent 28a33cb commit 988f0e2
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions arch/x86/xen/pci-swiotlb-xen.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down

0 comments on commit 988f0e2

Please sign in to comment.