PCI/P2PDMA: Remove the DMA_VIRT_OPS hacks

Now that all users of dma_virt_ops are gone we can remove the workaround
for it in the PCI peer to peer code.

Link: https://lore.kernel.org/r/20201106181941.1878556-9-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
Christoph Hellwig 2020-11-06 19:19:39 +01:00 committed by Jason Gunthorpe
parent 5a7a9e038b
commit 4d34d52c25

View File

@ -556,15 +556,6 @@ int pci_p2pdma_distance_many(struct pci_dev *provider, struct device **clients,
return -1; return -1;
for (i = 0; i < num_clients; i++) { for (i = 0; i < num_clients; i++) {
#ifdef CONFIG_DMA_VIRT_OPS
if (clients[i]->dma_ops == &dma_virt_ops) {
if (verbose)
dev_warn(clients[i],
"cannot be used for peer-to-peer DMA because the driver makes use of dma_virt_ops\n");
return -1;
}
#endif
pci_client = find_parent_pci_dev(clients[i]); pci_client = find_parent_pci_dev(clients[i]);
if (!pci_client) { if (!pci_client) {
if (verbose) if (verbose)
@ -837,17 +828,6 @@ static int __pci_p2pdma_map_sg(struct pci_p2pdma_pagemap *p2p_pgmap,
phys_addr_t paddr; phys_addr_t paddr;
int i; int i;
/*
* p2pdma mappings are not compatible with devices that use
* dma_virt_ops. If the upper layers do the right thing
* this should never happen because it will be prevented
* by the check in pci_p2pdma_distance_many()
*/
#ifdef CONFIG_DMA_VIRT_OPS
if (WARN_ON_ONCE(dev->dma_ops == &dma_virt_ops))
return 0;
#endif
for_each_sg(sg, s, nents, i) { for_each_sg(sg, s, nents, i) {
paddr = sg_phys(s); paddr = sg_phys(s);