Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'dmaengine-fix-4.20-rc5' of git://git.infradead.org/users/vkoul/slave-dma

Pull dmaengine fixes from Vinod Koul:
"This contains two fixes to at_hdmac which fixes long standing bus
reported recently on serial transfers causing memory leak. These fixes
were done by Richard Genoud"

* tag 'dmaengine-fix-4.20-rc5' of git://git.infradead.org/users/vkoul/slave-dma:
dmaengine: at_hdmac: fix module unloading
dmaengine: at_hdmac: fix memory leak in at_dma_xlate()

+9 -1
+9 -1
drivers/dma/at_hdmac.c
··· 1641 1641 atchan->descs_allocated = 0; 1642 1642 atchan->status = 0; 1643 1643 1644 + /* 1645 + * Free atslave allocated in at_dma_xlate() 1646 + */ 1647 + kfree(chan->private); 1648 + chan->private = NULL; 1649 + 1644 1650 dev_vdbg(chan2dev(chan), "free_chan_resources: done\n"); 1645 1651 } 1646 1652 ··· 1681 1675 dma_cap_zero(mask); 1682 1676 dma_cap_set(DMA_SLAVE, mask); 1683 1677 1684 - atslave = devm_kzalloc(&dmac_pdev->dev, sizeof(*atslave), GFP_KERNEL); 1678 + atslave = kzalloc(sizeof(*atslave), GFP_KERNEL); 1685 1679 if (!atslave) 1686 1680 return NULL; 1687 1681 ··· 2006 2000 struct resource *io; 2007 2001 2008 2002 at_dma_off(atdma); 2003 + if (pdev->dev.of_node) 2004 + of_dma_controller_free(pdev->dev.of_node); 2009 2005 dma_async_device_unregister(&atdma->dma_common); 2010 2006 2011 2007 dma_pool_destroy(atdma->memset_pool);