mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 06:01:57 +00:00
dma-mapping: reflow dma_supported
dma_supported has become too much spaghetti for my taste. Reflow it to remove the duplicate use_dma_iommu condition and make the main path more obvious. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Leon Romanovsky <leon@kernel.org>
This commit is contained in:
parent
f45cfab28f
commit
a5fb217f13
@ -841,20 +841,23 @@ static int dma_supported(struct device *dev, u64 mask)
|
|||||||
{
|
{
|
||||||
const struct dma_map_ops *ops = get_dma_ops(dev);
|
const struct dma_map_ops *ops = get_dma_ops(dev);
|
||||||
|
|
||||||
if (WARN_ON(ops && use_dma_iommu(dev)))
|
if (use_dma_iommu(dev)) {
|
||||||
return false;
|
if (WARN_ON(ops))
|
||||||
|
return false;
|
||||||
if (use_dma_iommu(dev))
|
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ->dma_supported sets the bypass flag, so we must always call
|
* ->dma_supported sets and clears the bypass flag, so ignore it here
|
||||||
* into the method here unless the device is truly direct mapped.
|
* and always call into the method if there is one.
|
||||||
*/
|
*/
|
||||||
if (!ops)
|
if (ops) {
|
||||||
return dma_direct_supported(dev, mask);
|
if (!ops->dma_supported)
|
||||||
if (!ops->dma_supported)
|
return true;
|
||||||
return 1;
|
return ops->dma_supported(dev, mask);
|
||||||
return ops->dma_supported(dev, mask);
|
}
|
||||||
|
|
||||||
|
return dma_direct_supported(dev, mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool dma_pci_p2pdma_supported(struct device *dev)
|
bool dma_pci_p2pdma_supported(struct device *dev)
|
||||||
|
Loading…
Reference in New Issue
Block a user