The maximum of SW-IOMMU is limited to 2^11*128 = 256K. While in different platform and different requirements this seems improper. So modify the IO_TLB_SEGSIZE to configtable is make sense. Example: If 1M bytes are requied. There has an error like. [ 33.293120] DMA: Out of SW-IOMMU space for 1048576 bytes at device gadget
Signed-off-by: Chuansheng Liu <chuansheng....@intel.com> Signed-off-by: Zhang Dongxing <dongxing.zh...@intel.com> Signed-off-by: xiaomin1 <xiaoming.w...@intel.com> --- include/linux/swiotlb.h | 2 +- lib/Kconfig | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h index e7a018e..5ab10b9 100644 --- a/include/linux/swiotlb.h +++ b/include/linux/swiotlb.h @@ -14,7 +14,7 @@ extern int swiotlb_force; * must be a power of 2. What is the appropriate value ? * The complexity of {map,unmap}_single is linearly dependent on this value. */ -#define IO_TLB_SEGSIZE 128 +#define IO_TLB_SEGSIZE CONFIG_DEFAULT_IO_TLB_SEGSIZE /* * log of the size of each IO TLB slab. The number of slabs is command line diff --git a/lib/Kconfig b/lib/Kconfig index 54cf309..76f1108 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -518,4 +518,8 @@ source "lib/fonts/Kconfig" config ARCH_HAS_SG_CHAIN def_bool n +config DEFAULT_IO_TLB_SEGSIZE + int + default 128 + endmenu -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/