提交 988f0e24 编写于 作者: K Konrad Rzeszutek Wilk

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: NStefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
上级 28a33cbc
...@@ -34,19 +34,20 @@ static struct dma_map_ops xen_swiotlb_dma_ops = { ...@@ -34,19 +34,20 @@ static struct dma_map_ops xen_swiotlb_dma_ops = {
int __init pci_xen_swiotlb_detect(void) 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 /* If running as PV guest, either iommu=soft, or swiotlb=force will
* activate this IOMMU. If running as PV privileged, activate it * activate this IOMMU. If running as PV privileged, activate it
* irregardless. * irregardless.
*/ */
if ((xen_initial_domain() || swiotlb || swiotlb_force) && if ((xen_initial_domain() || swiotlb || swiotlb_force))
(xen_pv_domain()))
xen_swiotlb = 1; xen_swiotlb = 1;
/* If we are running under Xen, we MUST disable the native SWIOTLB. /* If we are running under Xen, we MUST disable the native SWIOTLB.
* Don't worry about swiotlb_force flag activating the native, as * Don't worry about swiotlb_force flag activating the native, as
* the 'swiotlb' flag is the only one turning it on. */ * the 'swiotlb' flag is the only one turning it on. */
if (xen_pv_domain()) swiotlb = 0;
swiotlb = 0;
return xen_swiotlb; return xen_swiotlb;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册