dma: of: Fix of_node reference leak
of_dma_request_slave_channel() currently does not drop the reference to the dma_spec of_node if no DMA controller matching the of_node could be found. This patch fixes it by always calling of_node_put(). Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Jon Hunter <jon-hunter@ti.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
This commit is contained in:
parent
af31826d9b
commit
f22eb14022
|
@ -221,12 +221,13 @@ struct dma_chan *of_dma_request_slave_channel(struct device_node *np,
|
|||
|
||||
ofdma = of_dma_get_controller(&dma_spec);
|
||||
|
||||
if (!ofdma)
|
||||
continue;
|
||||
if (ofdma) {
|
||||
chan = ofdma->of_dma_xlate(&dma_spec, ofdma);
|
||||
|
||||
chan = ofdma->of_dma_xlate(&dma_spec, ofdma);
|
||||
|
||||
of_dma_put_controller(ofdma);
|
||||
of_dma_put_controller(ofdma);
|
||||
} else {
|
||||
chan = NULL;
|
||||
}
|
||||
|
||||
of_node_put(dma_spec.np);
|
||||
|
||||
|
|
Loading…
Reference in New Issue