]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.19-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 Mar 2020 20:35:53 +0000 (21:35 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 Mar 2020 20:35:53 +0000 (21:35 +0100)
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

queue-4.19/arm-dts-ls1021a-restore-mdio-compatible-to-gianfar.patch [new file with mode: 0644]
queue-4.19/asoc-topology-fix-memleak-in-soc_tplg_link_elems_load.patch [new file with mode: 0644]
queue-4.19/asoc-topology-fix-memleak-in-soc_tplg_manifest_load.patch [new file with mode: 0644]
queue-4.19/series
queue-4.19/spi-bcm63xx-hsspi-really-keep-pll-clk-enabled.patch [new file with mode: 0644]

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 (file)
index 0000000..28dfe36
--- /dev/null
@@ -0,0 +1,54 @@
+From 7155c44624d061692b4c13aa8343f119c67d4fc0 Mon Sep 17 00:00:00 2001
+From: Vladimir Oltean <olteanv@gmail.com>
+Date: Sun, 26 Jan 2020 21:49:50 +0200
+Subject: ARM: dts: ls1021a: Restore MDIO compatible to gianfar
+
+From: Vladimir Oltean <olteanv@gmail.com>
+
+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 <pavel@denx.de>
+Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
+Signed-off-by: Shawn Guo <shawnguo@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..81ada33
--- /dev/null
@@ -0,0 +1,39 @@
+From 2b2d5c4db732c027a14987cfccf767dac1b45170 Mon Sep 17 00:00:00 2001
+From: Dragos Tarcatu <dragos_tarcatu@mentor.com>
+Date: Fri, 7 Feb 2020 20:53:24 +0200
+Subject: ASoC: topology: Fix memleak in soc_tplg_link_elems_load()
+
+From: Dragos Tarcatu <dragos_tarcatu@mentor.com>
+
+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 <dragos_tarcatu@mentor.com>
+Link: https://lore.kernel.org/r/20200207185325.22320-2-dragos_tarcatu@mentor.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..b75e3b4
--- /dev/null
@@ -0,0 +1,61 @@
+From 242c46c023610dbc0213fc8fb6b71eb836bc5d95 Mon Sep 17 00:00:00 2001
+From: Dragos Tarcatu <dragos_tarcatu@mentor.com>
+Date: Fri, 7 Feb 2020 20:53:25 +0200
+Subject: ASoC: topology: Fix memleak in soc_tplg_manifest_load()
+
+From: Dragos Tarcatu <dragos_tarcatu@mentor.com>
+
+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 <dragos_tarcatu@mentor.com>
+Link: https://lore.kernel.org/r/20200207185325.22320-3-dragos_tarcatu@mentor.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 */
index f6e9f2eae166b734cda2af34642f672d27d51dfe..fb1c28cf0cb9915cbf4f2065c90a34ef9514a8d6 100644 (file)
@@ -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 (file)
index 0000000..7ab6db4
--- /dev/null
@@ -0,0 +1,43 @@
+From 51bddd4501bc414b8b1e8f4d096b4a5304068169 Mon Sep 17 00:00:00 2001
+From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
+Date: Fri, 28 Feb 2020 22:38:38 +0100
+Subject: spi: bcm63xx-hsspi: Really keep pll clk enabled
+
+From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
+
+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 <christophe.jaillet@wanadoo.fr>
+Acked-by: Jonas Gorski <jonas.gorski@gmail.com>
+Link: https://lore.kernel.org/r/20200228213838.7124-1-christophe.jaillet@wanadoo.fr
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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;