brcm2708: organize kernel patches
[openwrt/staging/dedeckeh.git] / target / linux / brcm2708 / patches-4.19 / 950-0346-bcm2835-mmc-Fix-struct-mmc_host-leak-on-probe.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0346-bcm2835-mmc-Fix-struct-mmc_host-leak-on-probe.patch b/target/linux/brcm2708/patches-4.19/950-0346-bcm2835-mmc-Fix-struct-mmc_host-leak-on-probe.patch
new file mode 100644 (file)
index 0000000..9ec4404
--- /dev/null
@@ -0,0 +1,29 @@
+From 82ced13dc5805f6e49e2182269e672b20d8394bc Mon Sep 17 00:00:00 2001
+From: Lukas Wunner <lukas@wunner.de>
+Date: Sat, 19 Jan 2019 08:06:48 +0100
+Subject: [PATCH] bcm2835-mmc: Fix struct mmc_host leak on probe
+
+The BCM2835 MMC host driver requests the bus address of the host's
+register map on probe.  If that fails, the driver leaks the struct
+mmc_host allocated earlier.
+
+Fix it.
+
+Signed-off-by: Lukas Wunner <lukas@wunner.de>
+Cc: Frank Pavlic <f.pavlic@kunbus.de>
+---
+ drivers/mmc/host/bcm2835-mmc.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/mmc/host/bcm2835-mmc.c
++++ b/drivers/mmc/host/bcm2835-mmc.c
+@@ -1439,7 +1439,8 @@ static int bcm2835_mmc_probe(struct plat
+       addr = of_get_address(node, 0, NULL, NULL);
+       if (!addr) {
+               dev_err(dev, "could not get DMA-register address\n");
+-              return -ENODEV;
++              ret = -ENODEV;
++              goto err;
+       }
+       host->bus_addr = be32_to_cpup(addr);
+       pr_debug(" - ioaddr %lx, iomem->start %lx, bus_addr %lx\n",