be2net: enable IOMMU pass through for be2net
This patch sets the coherent DMA mask to 64-bit after the be2net driver has been acknowledged that the system is 64-bit DMA capable. The coherent DMA mask is examined by the Intel IOMMU driver to determine whether to allow pass through context mapping for all devices. With this patch, the be2net driver combined with be2net compatible hardware provides comparable performance to the case where vt-d is disabled. The main use-case for this change is to decrease the time necessary to copy virtual machine memory during KVM live migration instantiations. This patch was tested on a system that enables the IOMMU in non-coherent mode. Two DMA remapper issues were encountered in the previous version and both patches have been committed. commitea2447f700
commit2e12bc29fc
Signed-off-by: Craig Hada <craig.hada@hp.com> Signed-off-by: Sathya Perla <sathya.perla@emulex.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a05f99db86
commit
2bd92cd2a5
|
@ -4134,6 +4134,11 @@ static int be_probe(struct pci_dev *pdev, const struct pci_device_id *pdev_id)
|
|||
|
||||
status = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64));
|
||||
if (!status) {
|
||||
status = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64));
|
||||
if (status < 0) {
|
||||
dev_err(&pdev->dev, "dma_set_coherent_mask failed\n");
|
||||
goto free_netdev;
|
||||
}
|
||||
netdev->features |= NETIF_F_HIGHDMA;
|
||||
} else {
|
||||
status = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
|
||||
|
|
Loading…
Reference in New Issue