| 58eea79a | 08-Dec-2023 |
Shravan Chippa <[email protected]> |
dmaengine: sf-pdma: add mpfs-pdma compatible name
Sifive platform dma (sf-pdma) has both in-order and out-of-order configurations but sf-pdam driver configured to do in-order DMA transfers, with out
dmaengine: sf-pdma: add mpfs-pdma compatible name
Sifive platform dma (sf-pdma) has both in-order and out-of-order configurations but sf-pdam driver configured to do in-order DMA transfers, with out-of-order configuration got better throughput in the PolarFire SoC platform.
Add a PolarFire SoC specific compatible and code to support for out-of-order dma transfers
Reviewed-by: Emil Renner Berthing <[email protected]> Signed-off-by: Shravan Chippa <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Vinod Koul <[email protected]>
show more ...
|
| b02e0701 | 20-Jan-2023 |
Shravan Chippa <[email protected]> |
dmaengine: sf-pdma: pdma_desc memory leak fix
Commit b2cc5c465c2c ("dmaengine: sf-pdma: Add multithread support for a DMA channel") changed sf_pdma_prep_dma_memcpy() to unconditionally allocate a ne
dmaengine: sf-pdma: pdma_desc memory leak fix
Commit b2cc5c465c2c ("dmaengine: sf-pdma: Add multithread support for a DMA channel") changed sf_pdma_prep_dma_memcpy() to unconditionally allocate a new sf_pdma_desc each time it is called.
The driver previously recycled descs, by checking the in_use flag, only allocating additional descs if the existing one was in use. This logic was removed in commit b2cc5c465c2c ("dmaengine: sf-pdma: Add multithread support for a DMA channel"), but sf_pdma_free_desc() was not changed to handle the new behaviour.
As a result, each time sf_pdma_prep_dma_memcpy() is called, the previous descriptor is leaked, over time leading to memory starvation:
unreferenced object 0xffffffe008447300 (size 192): comm "irq/39-mchp_dsc", pid 343, jiffies 4294906910 (age 981.200s) hex dump (first 32 bytes): 00 00 00 ff 00 00 00 00 b8 c1 00 00 00 00 00 00 ................ 00 00 70 08 10 00 00 00 00 00 00 c0 00 00 00 00 ..p............. backtrace: [<00000000064a04f4>] kmemleak_alloc+0x1e/0x28 [<00000000018927a7>] kmem_cache_alloc+0x11e/0x178 [<000000002aea8d16>] sf_pdma_prep_dma_memcpy+0x40/0x112
Add the missing kfree() to sf_pdma_free_desc(), and remove the redundant in_use flag.
Fixes: b2cc5c465c2c ("dmaengine: sf-pdma: Add multithread support for a DMA channel") Signed-off-by: Shravan Chippa <[email protected]> Reviewed-by: Conor Dooley <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Vinod Koul <[email protected]>
show more ...
/linux-6.15/Documentation/devicetree/bindings/dma/allwinner,sun4i-a10-dma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/allwinner,sun50i-a64-dma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/allwinner,sun6i-a31-dma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/altr,msgdma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/apple,admac.yaml/linux-6.15/Documentation/devicetree/bindings/dma/arm-pl08x.yaml/linux-6.15/Documentation/devicetree/bindings/dma/dma-controller.yaml/linux-6.15/Documentation/devicetree/bindings/dma/dma-router.yaml/linux-6.15/Documentation/devicetree/bindings/dma/fsl,edma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/ingenic,dma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/intel,ldma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/mediatek,uart-dma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/nvidia,tegra210-adma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/owl-dma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/qcom,bam-dma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/qcom,gpi.yaml/linux-6.15/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.yaml/linux-6.15/Documentation/devicetree/bindings/dma/renesas,rz-dmac.yaml/linux-6.15/Documentation/devicetree/bindings/dma/renesas,rzn1-dmamux.yaml/linux-6.15/Documentation/devicetree/bindings/dma/renesas,usb-dmac.yaml/linux-6.15/Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/snps,dma-spear1340.yaml/linux-6.15/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml/linux-6.15/Documentation/devicetree/bindings/dma/socionext,uniphier-mio-dmac.yaml/linux-6.15/Documentation/devicetree/bindings/dma/socionext,uniphier-xdmac.yaml/linux-6.15/Documentation/devicetree/bindings/dma/st,stm32-dma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/st,stm32-dmamux.yaml/linux-6.15/Documentation/devicetree/bindings/dma/st,stm32-mdma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/stericsson,dma40.yaml/linux-6.15/MAINTAINERS/linux-6.15/drivers/dma/Kconfig/linux-6.15/drivers/dma/dmaengine.csf-pdma.csf-pdma.h/linux-6.15/drivers/dma/xilinx/Makefile/linux-6.15/drivers/dma/xilinx/xdma-regs.h/linux-6.15/drivers/dma/xilinx/xdma.c/linux-6.15/include/linux/dma/amd_xdma.h/linux-6.15/include/linux/dmaengine.h/linux-6.15/include/linux/platform_data/amd_xdma.h |
| 7d268a28 | 18-Nov-2019 |
Green Wan <[email protected]> |
dmaengine: sf-pdma: move macro to header file
The place where the macro, SF_PDMA_REG_BASE(), is cause kernel-doc using wrong function declaration. Move it to header file.
Signed-off-by: Green Wan <
dmaengine: sf-pdma: move macro to header file
The place where the macro, SF_PDMA_REG_BASE(), is cause kernel-doc using wrong function declaration. Move it to header file.
Signed-off-by: Green Wan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Vinod Koul <[email protected]>
show more ...
|