• Petr Tesarik's avatar
    swiotlb: add a flag whether SWIOTLB is allowed to grow · 62708b2b
    Petr Tesarik authored
    Add a config option (CONFIG_SWIOTLB_DYNAMIC) to enable or disable dynamic
    allocation of additional bounce buffers.
    
    If this option is set, mark the default SWIOTLB as able to grow and
    restricted DMA pools as unable.
    
    However, if the address of the default memory pool is explicitly queried,
    make the default SWIOTLB also unable to grow. This is currently used to set
    up PCI BAR movable regions on some Octeon MIPS boards which may not be able
    to use a SWIOTLB pool elsewhere in physical memory. See octeon_pci_setup()
    for more details.
    
    If a remap function is specified, it must be also called on any dynamically
    allocated pools, but there are some issues:
    
    - The remap function may block, so it should not be called from an atomic
      context.
    - There is no corresponding unremap() function if the memory pool is
      freed.
    - The only in-tree implementation (xen_swiotlb_fixup) requires that the
      number of slots in the memory pool is a multiple of SWIOTLB_SEGSIZE.
    
    Keep it simple for now and disable growing the SWIOTLB if a remap function
    was specified.
    Signed-off-by: default avatarPetr Tesarik <petr.tesarik.ext@huawei.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    62708b2b
Kconfig 7.01 KB