From: Greg Kroah-Hartman Date: Mon, 3 Dec 2018 11:21:50 +0000 (+0100) Subject: 4.14-stable patches X-Git-Tag: v4.19.7~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4affa1fc8a3d1935aeba1e466b5e49ec58525d9a;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: arm-dts-rockchip-remove-0-from-the-veyron-memory-node.patch dmaengine-at_hdmac-fix-memory-leak-in-at_dma_xlate.patch dmaengine-at_hdmac-fix-module-unloading.patch --- diff --git a/queue-4.14/arm-dts-rockchip-remove-0-from-the-veyron-memory-node.patch b/queue-4.14/arm-dts-rockchip-remove-0-from-the-veyron-memory-node.patch new file mode 100644 index 00000000000..d1b4521d1e3 --- /dev/null +++ b/queue-4.14/arm-dts-rockchip-remove-0-from-the-veyron-memory-node.patch @@ -0,0 +1,41 @@ +From 672e60b72bbe7aace88721db55b380b6a51fb8f9 Mon Sep 17 00:00:00 2001 +From: Heiko Stuebner +Date: Sun, 18 Nov 2018 20:03:02 +0100 +Subject: ARM: dts: rockchip: Remove @0 from the veyron memory node + +From: Heiko Stuebner + +commit 672e60b72bbe7aace88721db55b380b6a51fb8f9 upstream. + +The Coreboot version on veyron ChromeOS devices seems to ignore +memory@0 nodes when updating the available memory and instead +inserts another memory node without the address. + +This leads to 4GB systems only ever be using 2GB as the memory@0 +node takes precedence. So remove the @0 for veyron devices. + +Fixes: 0b639b815f15 ("ARM: dts: rockchip: Add missing unit name to memory nodes in rk3288 boards") +Cc: stable@vger.kernel.org +Reported-by: Heikki Lindholm +Signed-off-by: Heiko Stuebner +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/rk3288-veyron.dtsi | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +--- a/arch/arm/boot/dts/rk3288-veyron.dtsi ++++ b/arch/arm/boot/dts/rk3288-veyron.dtsi +@@ -47,7 +47,11 @@ + #include "rk3288.dtsi" + + / { +- memory@0 { ++ /* ++ * The default coreboot on veyron devices ignores memory@0 nodes ++ * and would instead create another memory node. ++ */ ++ memory { + device_type = "memory"; + reg = <0x0 0x0 0x0 0x80000000>; + }; diff --git a/queue-4.14/dmaengine-at_hdmac-fix-memory-leak-in-at_dma_xlate.patch b/queue-4.14/dmaengine-at_hdmac-fix-memory-leak-in-at_dma_xlate.patch new file mode 100644 index 00000000000..553df9c2502 --- /dev/null +++ b/queue-4.14/dmaengine-at_hdmac-fix-memory-leak-in-at_dma_xlate.patch @@ -0,0 +1,57 @@ +From 98f5f932254b88ce828bc8e4d1642d14e5854caa Mon Sep 17 00:00:00 2001 +From: Richard Genoud +Date: Tue, 27 Nov 2018 17:06:34 +0100 +Subject: dmaengine: at_hdmac: fix memory leak in at_dma_xlate() + +From: Richard Genoud + +commit 98f5f932254b88ce828bc8e4d1642d14e5854caa upstream. + +The leak was found when opening/closing a serial port a great number of +time, increasing kmalloc-32 in slabinfo. + +Each time the port was opened, dma_request_slave_channel() was called. +Then, in at_dma_xlate(), atslave was allocated with devm_kzalloc() and +never freed. (Well, it was free at module unload, but that's not what we +want). +So, here, kzalloc is more suited for the job since it has to be freed in +atc_free_chan_resources(). + +Cc: stable@vger.kernel.org +Fixes: bbe89c8e3d59 ("at_hdmac: move to generic DMA binding") +Reported-by: Mario Forner +Suggested-by: Alexandre Belloni +Acked-by: Alexandre Belloni +Acked-by: Ludovic Desroches +Signed-off-by: Richard Genoud +Signed-off-by: Vinod Koul +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/dma/at_hdmac.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +--- a/drivers/dma/at_hdmac.c ++++ b/drivers/dma/at_hdmac.c +@@ -1641,6 +1641,12 @@ static void atc_free_chan_resources(stru + atchan->descs_allocated = 0; + atchan->status = 0; + ++ /* ++ * Free atslave allocated in at_dma_xlate() ++ */ ++ kfree(chan->private); ++ chan->private = NULL; ++ + dev_vdbg(chan2dev(chan), "free_chan_resources: done\n"); + } + +@@ -1675,7 +1681,7 @@ static struct dma_chan *at_dma_xlate(str + dma_cap_zero(mask); + dma_cap_set(DMA_SLAVE, mask); + +- atslave = devm_kzalloc(&dmac_pdev->dev, sizeof(*atslave), GFP_KERNEL); ++ atslave = kzalloc(sizeof(*atslave), GFP_KERNEL); + if (!atslave) + return NULL; + diff --git a/queue-4.14/dmaengine-at_hdmac-fix-module-unloading.patch b/queue-4.14/dmaengine-at_hdmac-fix-module-unloading.patch new file mode 100644 index 00000000000..09b22d9a4f7 --- /dev/null +++ b/queue-4.14/dmaengine-at_hdmac-fix-module-unloading.patch @@ -0,0 +1,37 @@ +From 77e75fda94d2ebb86aa9d35fb1860f6395bf95de Mon Sep 17 00:00:00 2001 +From: Richard Genoud +Date: Tue, 27 Nov 2018 17:06:35 +0100 +Subject: dmaengine: at_hdmac: fix module unloading + +From: Richard Genoud + +commit 77e75fda94d2ebb86aa9d35fb1860f6395bf95de upstream. + +of_dma_controller_free() was not called on module onloading. +This lead to a soft lockup: +watchdog: BUG: soft lockup - CPU#0 stuck for 23s! +Modules linked in: at_hdmac [last unloaded: at_hdmac] +when of_dma_request_slave_channel() tried to call ofdma->of_dma_xlate(). + +Cc: stable@vger.kernel.org +Fixes: bbe89c8e3d59 ("at_hdmac: move to generic DMA binding") +Acked-by: Ludovic Desroches +Signed-off-by: Richard Genoud +Signed-off-by: Vinod Koul +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/dma/at_hdmac.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/dma/at_hdmac.c ++++ b/drivers/dma/at_hdmac.c +@@ -2006,6 +2006,8 @@ static int at_dma_remove(struct platform + struct resource *io; + + at_dma_off(atdma); ++ if (pdev->dev.of_node) ++ of_dma_controller_free(pdev->dev.of_node); + dma_async_device_unregister(&atdma->dma_common); + + dma_pool_destroy(atdma->memset_pool); diff --git a/queue-4.14/series b/queue-4.14/series index 9f18f9eb691..82a324de28e 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -145,3 +145,6 @@ function_graph-have-profiler-use-curr_ret_stack-and-not-depth.patch function_graph-move-return-callback-before-update-of-curr_ret_stack.patch function_graph-reverse-the-order-of-pushing-the-ret_stack-and-the-callback.patch ext2-fix-potential-use-after-free.patch +arm-dts-rockchip-remove-0-from-the-veyron-memory-node.patch +dmaengine-at_hdmac-fix-memory-leak-in-at_dma_xlate.patch +dmaengine-at_hdmac-fix-module-unloading.patch