summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/pinctrl
diff options
context:
space:
mode:
authorDave Jiang <dave.jiang@intel.com>2024-09-05 14:22:07 -0700
committerJon Mason <jdmason@kudzu.us>2024-09-20 10:51:25 -0400
commit061a785a114f159e990ea8ed8d1b7dca4b41120f (patch)
tree129647c8d08922300cabd376b21122d8271dba86 /Documentation/devicetree/bindings/pinctrl
parente51aded92d42784313ba16c12f4f88cc4f973bbb (diff)
ntb: Force physically contiguous allocation of rx ring buffers
Physical addresses under IOVA on x86 platform are mapped contiguously as a side effect before the patch that removed CONFIG_DMA_REMAP. The NTB rx buffer ring is a single chunk DMA buffer that is allocated against the NTB PCI device. If the receive side is using a DMA device, then the buffers are remapped against the DMA device before being submitted via the dmaengine API. This scheme becomes a problem when the physical memory is discontiguous. When dma_map_page() is called on the kernel virtual address from the dma_alloc_coherent() call, the new IOVA mapping no longer points to all the physical memory allocated due to being discontiguous. Change dma_alloc_coherent() to dma_alloc_attrs() in order to force DMA_ATTR_FORCE_CONTIGUOUS attribute. This is the best fix for the circumstance. A potential future solution may be having the DMA mapping API providing a way to alias an existing IOVA mapping to a new device perhaps. This fix is not to fix the patch pointed to by the fixes tag, but to fix the issue arised in the ntb_transport driver on x86 platforms after the said patch is applied. Reported-by: Jerry Dai <jerry.dai@intel.com> Fixes: f5ff79fddf0e ("dma-mapping: remove CONFIG_DMA_REMAP") Tested-by: Jerry Dai <jerry.dai@intel.com> Signed-off-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
Diffstat (limited to 'Documentation/devicetree/bindings/pinctrl')
0 files changed, 0 insertions, 0 deletions