From: Greg Kroah-Hartman Date: Mon, 9 Mar 2020 20:35:53 +0000 (+0100) Subject: 4.19-stable patches X-Git-Tag: v4.4.216~33 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6614801baf43ced6f5c60fad7270d39ee5956478;p=thirdparty%2Fkernel%2Fstable-queue.git 4.19-stable patches added patches: arm-dts-ls1021a-restore-mdio-compatible-to-gianfar.patch asoc-topology-fix-memleak-in-soc_tplg_link_elems_load.patch asoc-topology-fix-memleak-in-soc_tplg_manifest_load.patch spi-bcm63xx-hsspi-really-keep-pll-clk-enabled.patch --- diff --git a/queue-4.19/arm-dts-ls1021a-restore-mdio-compatible-to-gianfar.patch b/queue-4.19/arm-dts-ls1021a-restore-mdio-compatible-to-gianfar.patch new file mode 100644 index 00000000000..28dfe36f491 --- /dev/null +++ b/queue-4.19/arm-dts-ls1021a-restore-mdio-compatible-to-gianfar.patch @@ -0,0 +1,54 @@ +From 7155c44624d061692b4c13aa8343f119c67d4fc0 Mon Sep 17 00:00:00 2001 +From: Vladimir Oltean +Date: Sun, 26 Jan 2020 21:49:50 +0200 +Subject: ARM: dts: ls1021a: Restore MDIO compatible to gianfar + +From: Vladimir Oltean + +commit 7155c44624d061692b4c13aa8343f119c67d4fc0 upstream. + +The difference between "fsl,etsec2-mdio" and "gianfar" has to do with +the .get_tbipa function, which calculates the address of the TBIPA +register automatically, if not explicitly specified. [ see +drivers/net/ethernet/freescale/fsl_pq_mdio.c ]. On LS1021A, the TBIPA +register is at offset 0x30 within the port register block, which is what +the "gianfar" method of calculating addresses actually does. + +Luckily, the bad "compatible" is inconsequential for ls1021a.dtsi, +because the TBIPA register is explicitly specified via the second "reg" +(<0x0 0x2d10030 0x0 0x4>), so the "get_tbipa" function is dead code. +Nonetheless it's good to restore it to its correct value. + +Background discussion: +https://www.spinics.net/lists/stable/msg361156.html + +Fixes: c7861adbe37f ("ARM: dts: ls1021: Fix SGMII PCS link remaining down after PHY disconnect") +Reported-by: Pavel Machek +Signed-off-by: Vladimir Oltean +Signed-off-by: Shawn Guo +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/ls1021a.dtsi | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/arch/arm/boot/dts/ls1021a.dtsi ++++ b/arch/arm/boot/dts/ls1021a.dtsi +@@ -584,7 +584,7 @@ + }; + + mdio0: mdio@2d24000 { +- compatible = "fsl,etsec2-mdio"; ++ compatible = "gianfar"; + device_type = "mdio"; + #address-cells = <1>; + #size-cells = <0>; +@@ -593,7 +593,7 @@ + }; + + mdio1: mdio@2d64000 { +- compatible = "fsl,etsec2-mdio"; ++ compatible = "gianfar"; + device_type = "mdio"; + #address-cells = <1>; + #size-cells = <0>; diff --git a/queue-4.19/asoc-topology-fix-memleak-in-soc_tplg_link_elems_load.patch b/queue-4.19/asoc-topology-fix-memleak-in-soc_tplg_link_elems_load.patch new file mode 100644 index 00000000000..81ada332047 --- /dev/null +++ b/queue-4.19/asoc-topology-fix-memleak-in-soc_tplg_link_elems_load.patch @@ -0,0 +1,39 @@ +From 2b2d5c4db732c027a14987cfccf767dac1b45170 Mon Sep 17 00:00:00 2001 +From: Dragos Tarcatu +Date: Fri, 7 Feb 2020 20:53:24 +0200 +Subject: ASoC: topology: Fix memleak in soc_tplg_link_elems_load() + +From: Dragos Tarcatu + +commit 2b2d5c4db732c027a14987cfccf767dac1b45170 upstream. + +If soc_tplg_link_config() fails, _link needs to be freed in case of +topology ABI version mismatch. However the current code is returning +directly and ends up leaking memory in this case. +This patch fixes that. + +Fixes: 593d9e52f9bb ("ASoC: topology: Add support to configure existing physical DAI links") +Signed-off-by: Dragos Tarcatu +Link: https://lore.kernel.org/r/20200207185325.22320-2-dragos_tarcatu@mentor.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/soc-topology.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- a/sound/soc/soc-topology.c ++++ b/sound/soc/soc-topology.c +@@ -2154,8 +2154,11 @@ static int soc_tplg_link_elems_load(stru + } + + ret = soc_tplg_link_config(tplg, _link); +- if (ret < 0) ++ if (ret < 0) { ++ if (!abi_match) ++ kfree(_link); + return ret; ++ } + + /* offset by version-specific struct size and + * real priv data size diff --git a/queue-4.19/asoc-topology-fix-memleak-in-soc_tplg_manifest_load.patch b/queue-4.19/asoc-topology-fix-memleak-in-soc_tplg_manifest_load.patch new file mode 100644 index 00000000000..b75e3b484c9 --- /dev/null +++ b/queue-4.19/asoc-topology-fix-memleak-in-soc_tplg_manifest_load.patch @@ -0,0 +1,61 @@ +From 242c46c023610dbc0213fc8fb6b71eb836bc5d95 Mon Sep 17 00:00:00 2001 +From: Dragos Tarcatu +Date: Fri, 7 Feb 2020 20:53:25 +0200 +Subject: ASoC: topology: Fix memleak in soc_tplg_manifest_load() + +From: Dragos Tarcatu + +commit 242c46c023610dbc0213fc8fb6b71eb836bc5d95 upstream. + +In case of ABI version mismatch, _manifest needs to be freed as +it is just a copy of the original topology manifest. However, if +a driver manifest handler is defined, that would get executed and +the cleanup is never reached. Fix that by getting the return status +of manifest() instead of returning directly. + +Fixes: 583958fa2e52 ("ASoC: topology: Make manifest backward compatible from ABI v4") +Signed-off-by: Dragos Tarcatu +Link: https://lore.kernel.org/r/20200207185325.22320-3-dragos_tarcatu@mentor.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/soc-topology.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +--- a/sound/soc/soc-topology.c ++++ b/sound/soc/soc-topology.c +@@ -2313,7 +2313,7 @@ static int soc_tplg_manifest_load(struct + { + struct snd_soc_tplg_manifest *manifest, *_manifest; + bool abi_match; +- int err; ++ int ret = 0; + + if (tplg->pass != SOC_TPLG_PASS_MANIFEST) + return 0; +@@ -2326,19 +2326,19 @@ static int soc_tplg_manifest_load(struct + _manifest = manifest; + } else { + abi_match = false; +- err = manifest_new_ver(tplg, manifest, &_manifest); +- if (err < 0) +- return err; ++ ret = manifest_new_ver(tplg, manifest, &_manifest); ++ if (ret < 0) ++ return ret; + } + + /* pass control to component driver for optional further init */ + if (tplg->comp && tplg->ops && tplg->ops->manifest) +- return tplg->ops->manifest(tplg->comp, tplg->index, _manifest); ++ ret = tplg->ops->manifest(tplg->comp, tplg->index, _manifest); + + if (!abi_match) /* free the duplicated one */ + kfree(_manifest); + +- return 0; ++ return ret; + } + + /* validate header magic, size and type */ diff --git a/queue-4.19/series b/queue-4.19/series index f6e9f2eae16..fb1c28cf0cb 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -55,3 +55,7 @@ dmaengine-tegra-apb-prevent-race-conditions-of-tasklet-vs-free-list.patch dm-cache-fix-a-crash-due-to-incorrect-work-item-cancelling.patch dm-report-suspended-device-during-destroy.patch dm-writecache-verify-watermark-during-resume.patch +arm-dts-ls1021a-restore-mdio-compatible-to-gianfar.patch +spi-bcm63xx-hsspi-really-keep-pll-clk-enabled.patch +asoc-topology-fix-memleak-in-soc_tplg_link_elems_load.patch +asoc-topology-fix-memleak-in-soc_tplg_manifest_load.patch diff --git a/queue-4.19/spi-bcm63xx-hsspi-really-keep-pll-clk-enabled.patch b/queue-4.19/spi-bcm63xx-hsspi-really-keep-pll-clk-enabled.patch new file mode 100644 index 00000000000..7ab6db4ebc9 --- /dev/null +++ b/queue-4.19/spi-bcm63xx-hsspi-really-keep-pll-clk-enabled.patch @@ -0,0 +1,43 @@ +From 51bddd4501bc414b8b1e8f4d096b4a5304068169 Mon Sep 17 00:00:00 2001 +From: Christophe JAILLET +Date: Fri, 28 Feb 2020 22:38:38 +0100 +Subject: spi: bcm63xx-hsspi: Really keep pll clk enabled + +From: Christophe JAILLET + +commit 51bddd4501bc414b8b1e8f4d096b4a5304068169 upstream. + +The purpose of commit 0fd85869c2a9 ("spi/bcm63xx-hsspi: keep pll clk enabled") +was to keep the pll clk enabled through the lifetime of the device. + +In order to do that, some 'clk_prepare_enable()'/'clk_disable_unprepare()' +calls have been added in the error handling path of the probe function, in +the remove function and in the suspend and resume functions. + +However, a 'clk_disable_unprepare()' call has been unfortunately left in +the probe function. So the commit seems to be more or less a no-op. + +Axe it now, so that the pll clk is left enabled through the lifetime of +the device, as described in the commit. + +Fixes: 0fd85869c2a9 ("spi/bcm63xx-hsspi: keep pll clk enabled") +Signed-off-by: Christophe JAILLET +Acked-by: Jonas Gorski +Link: https://lore.kernel.org/r/20200228213838.7124-1-christophe.jaillet@wanadoo.fr +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/spi/spi-bcm63xx-hsspi.c | 1 - + 1 file changed, 1 deletion(-) + +--- a/drivers/spi/spi-bcm63xx-hsspi.c ++++ b/drivers/spi/spi-bcm63xx-hsspi.c +@@ -371,7 +371,6 @@ static int bcm63xx_hsspi_probe(struct pl + goto out_disable_clk; + + rate = clk_get_rate(pll_clk); +- clk_disable_unprepare(pll_clk); + if (!rate) { + ret = -EINVAL; + goto out_disable_pll_clk;