Loading Documentation/x86_64/boot-options.txt +4 −0 Original line number Diff line number Diff line Loading @@ -199,6 +199,10 @@ IOMMU allowed overwrite iommu off workarounds for specific chipsets. soft Use software bounce buffering (default for Intel machines) noaperture Don't touch the aperture for AGP. allowdac Allow DMA >4GB When off all DMA over >4GB is forced through an IOMMU or bounce buffering. nodac Forbid DMA >4GB swiotlb=pages[,force] Loading arch/x86_64/kernel/pci-dma.c +18 −0 Original line number Diff line number Diff line Loading @@ -170,8 +170,20 @@ void dma_free_coherent(struct device *dev, size_t size, } EXPORT_SYMBOL(dma_free_coherent); static int forbid_dac __read_mostly; int dma_supported(struct device *dev, u64 mask) { #ifdef CONFIG_PCI if (mask > 0xffffffff && forbid_dac > 0) { printk(KERN_INFO "PCI: Disallowing DAC for device %s\n", dev->bus_id); return 0; } #endif if (dma_ops->dma_supported) return dma_ops->dma_supported(dev, mask); Loading Loading @@ -231,6 +243,8 @@ EXPORT_SYMBOL(dma_set_mask); allowed overwrite iommu off workarounds for specific chipsets. soft Use software bounce buffering (default for Intel machines) noaperture Don't touch the aperture for AGP. allowdac Allow DMA >4GB nodac Forbid DMA >4GB */ __init int iommu_setup(char *p) { Loading Loading @@ -267,6 +281,10 @@ __init int iommu_setup(char *p) iommu_merge = 0; if (!strncmp(p, "forcesac",8)) iommu_sac_force = 1; if (!strncmp(p, "allowdac", 8)) forbid_dac = 0; if (!strncmp(p, "nodac", 5)) forbid_dac = -1; #ifdef CONFIG_SWIOTLB if (!strncmp(p, "soft",4)) Loading Loading
Documentation/x86_64/boot-options.txt +4 −0 Original line number Diff line number Diff line Loading @@ -199,6 +199,10 @@ IOMMU allowed overwrite iommu off workarounds for specific chipsets. soft Use software bounce buffering (default for Intel machines) noaperture Don't touch the aperture for AGP. allowdac Allow DMA >4GB When off all DMA over >4GB is forced through an IOMMU or bounce buffering. nodac Forbid DMA >4GB swiotlb=pages[,force] Loading
arch/x86_64/kernel/pci-dma.c +18 −0 Original line number Diff line number Diff line Loading @@ -170,8 +170,20 @@ void dma_free_coherent(struct device *dev, size_t size, } EXPORT_SYMBOL(dma_free_coherent); static int forbid_dac __read_mostly; int dma_supported(struct device *dev, u64 mask) { #ifdef CONFIG_PCI if (mask > 0xffffffff && forbid_dac > 0) { printk(KERN_INFO "PCI: Disallowing DAC for device %s\n", dev->bus_id); return 0; } #endif if (dma_ops->dma_supported) return dma_ops->dma_supported(dev, mask); Loading Loading @@ -231,6 +243,8 @@ EXPORT_SYMBOL(dma_set_mask); allowed overwrite iommu off workarounds for specific chipsets. soft Use software bounce buffering (default for Intel machines) noaperture Don't touch the aperture for AGP. allowdac Allow DMA >4GB nodac Forbid DMA >4GB */ __init int iommu_setup(char *p) { Loading Loading @@ -267,6 +281,10 @@ __init int iommu_setup(char *p) iommu_merge = 0; if (!strncmp(p, "forcesac",8)) iommu_sac_force = 1; if (!strncmp(p, "allowdac", 8)) forbid_dac = 0; if (!strncmp(p, "nodac", 5)) forbid_dac = -1; #ifdef CONFIG_SWIOTLB if (!strncmp(p, "soft",4)) Loading