]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 28 Oct 2016 17:33:22 +0000 (13:33 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 28 Oct 2016 17:33:22 +0000 (13:33 -0400)
added patches:
arm-clk-imx35-fix-name-for-ckil-clk.patch
genirq-generic_chip-add-irq_unmap-callback.patch
spi-spi-fsl-dspi-drop-extra-spi_master_put-in-device-remove-function.patch
uio-fix-dmem_region_start-computation.patch

queue-4.4/arm-clk-imx35-fix-name-for-ckil-clk.patch [new file with mode: 0644]
queue-4.4/genirq-generic_chip-add-irq_unmap-callback.patch [new file with mode: 0644]
queue-4.4/series
queue-4.4/spi-spi-fsl-dspi-drop-extra-spi_master_put-in-device-remove-function.patch [new file with mode: 0644]
queue-4.4/uio-fix-dmem_region_start-computation.patch [new file with mode: 0644]

diff --git a/queue-4.4/arm-clk-imx35-fix-name-for-ckil-clk.patch b/queue-4.4/arm-clk-imx35-fix-name-for-ckil-clk.patch
new file mode 100644 (file)
index 0000000..04c91a9
--- /dev/null
@@ -0,0 +1,37 @@
+From fcff03813a7c612873303037cef5ba0329850c35 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
+Date: Thu, 8 Sep 2016 11:30:21 +0200
+Subject: ARM: clk-imx35: fix name for ckil clk
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
+
+commit fcff03813a7c612873303037cef5ba0329850c35 upstream.
+
+This fixes
+       [    0.000000] i.MX clk 82: register failed with -17
+because the name is duplicated.
+
+Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
+Fixes: 3713e3f5e927 ("clk: imx35: define two clocks for rtc")
+Acked-by: Shawn Guo <shawnguo@kernel.org>
+Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/clk/imx/clk-imx35.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/clk/imx/clk-imx35.c
++++ b/drivers/clk/imx/clk-imx35.c
+@@ -115,7 +115,7 @@ static void __init _mx35_clocks_init(voi
+       }
+       clk[ckih] = imx_clk_fixed("ckih", 24000000);
+-      clk[ckil] = imx_clk_fixed("ckih", 32768);
++      clk[ckil] = imx_clk_fixed("ckil", 32768);
+       clk[mpll] = imx_clk_pllv1(IMX_PLLV1_IMX35, "mpll", "ckih", base + MX35_CCM_MPCTL);
+       clk[ppll] = imx_clk_pllv1(IMX_PLLV1_IMX35, "ppll", "ckih", base + MX35_CCM_PPCTL);
diff --git a/queue-4.4/genirq-generic_chip-add-irq_unmap-callback.patch b/queue-4.4/genirq-generic_chip-add-irq_unmap-callback.patch
new file mode 100644 (file)
index 0000000..9505a73
--- /dev/null
@@ -0,0 +1,68 @@
+From ee26c013cdee0b947e29d6cadfb9ff3341c69ff9 Mon Sep 17 00:00:00 2001
+From: Sebastian Frias <sf84@laposte.net>
+Date: Mon, 1 Aug 2016 16:27:38 +0200
+Subject: genirq/generic_chip: Add irq_unmap callback
+
+From: Sebastian Frias <sf84@laposte.net>
+
+commit ee26c013cdee0b947e29d6cadfb9ff3341c69ff9 upstream.
+
+Without this patch irq_domain_disassociate() cannot properly release the
+interrupt. In fact, irq_map_generic_chip() checks a bit on 'gc->installed'
+but said bit is never cleared, only set.
+
+Commit 088f40b7b027 ("genirq: Generic chip: Add linear irq domain support")
+added irq_map_generic_chip() function and also stated "This lacks a removal
+function for now".
+
+This commit provides an implementation of an unmap function that can be
+called by irq_domain_disassociate().
+
+[ tglx: Made the function static and removed the export as we have neither
+       a prototype nor a modular user. ]
+
+Fixes: 088f40b7b027 ("genirq: Generic chip: Add linear irq domain support")
+Signed-off-by: Sebastian Frias <sf84@laposte.net>
+Cc: Marc Zyngier <marc.zyngier@arm.com>
+Cc: Mason <slash.tmp@free.fr>
+Cc: Jason Cooper <jason@lakedaemon.net>
+Link: http://lkml.kernel.org/r/579F5C5A.2070507@laposte.net
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ kernel/irq/generic-chip.c |   21 +++++++++++++++++++++
+ 1 file changed, 21 insertions(+)
+
+--- a/kernel/irq/generic-chip.c
++++ b/kernel/irq/generic-chip.c
+@@ -411,8 +411,29 @@ int irq_map_generic_chip(struct irq_doma
+ }
+ EXPORT_SYMBOL_GPL(irq_map_generic_chip);
++static void irq_unmap_generic_chip(struct irq_domain *d, unsigned int virq)
++{
++      struct irq_data *data = irq_domain_get_irq_data(d, virq);
++      struct irq_domain_chip_generic *dgc = d->gc;
++      unsigned int hw_irq = data->hwirq;
++      struct irq_chip_generic *gc;
++      int irq_idx;
++
++      gc = irq_get_domain_generic_chip(d, hw_irq);
++      if (!gc)
++              return;
++
++      irq_idx = hw_irq % dgc->irqs_per_chip;
++
++      clear_bit(irq_idx, &gc->installed);
++      irq_domain_set_info(d, virq, hw_irq, &no_irq_chip, NULL, NULL, NULL,
++                          NULL);
++
++}
++
+ struct irq_domain_ops irq_generic_chip_ops = {
+       .map    = irq_map_generic_chip,
++      .unmap  = irq_unmap_generic_chip,
+       .xlate  = irq_domain_xlate_onetwocell,
+ };
+ EXPORT_SYMBOL_GPL(irq_generic_chip_ops);
index 6ad7807ee76ccba81a03eeb47159295b7c3d1d92..76f2457e8a44704f6b817472370956f5d8e11033 100644 (file)
@@ -22,3 +22,7 @@ tunnels-don-t-apply-gro-to-multiple-layers-of-encapsulation.patch
 tunnels-remove-encapsulation-offloads-on-decap.patch
 powerpc-eeh-null-check-uses-of-eeh_pe_bus_get.patch
 perf-stat-fix-interval-output-values.patch
+genirq-generic_chip-add-irq_unmap-callback.patch
+uio-fix-dmem_region_start-computation.patch
+arm-clk-imx35-fix-name-for-ckil-clk.patch
+spi-spi-fsl-dspi-drop-extra-spi_master_put-in-device-remove-function.patch
diff --git a/queue-4.4/spi-spi-fsl-dspi-drop-extra-spi_master_put-in-device-remove-function.patch b/queue-4.4/spi-spi-fsl-dspi-drop-extra-spi_master_put-in-device-remove-function.patch
new file mode 100644 (file)
index 0000000..4589ff2
--- /dev/null
@@ -0,0 +1,33 @@
+From 6999aeabbb703a81a204cb6f9f8f151759a99ac4 Mon Sep 17 00:00:00 2001
+From: Wei Yongjun <weiyj.lk@gmail.com>
+Date: Sat, 20 Aug 2016 15:25:32 +0000
+Subject: spi: spi-fsl-dspi: Drop extra spi_master_put in device remove function
+
+From: Wei Yongjun <weiyj.lk@gmail.com>
+
+commit 6999aeabbb703a81a204cb6f9f8f151759a99ac4 upstream.
+
+The call sequence spi_alloc_master/spi_register_master/spi_unregister_master
+is complete; it reduces the device reference count to zero, which and results
+in device memory being freed. The subsequent call to spi_master_put is
+unnecessary and results in an access to free memory. Drop it.
+
+Fixes: 9298bc727385 ("spi: spi-fsl-dspi: Remove spi-bitbang")
+Signed-off-by: Wei Yongjun <weiyj.lk@gmail.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/spi/spi-fsl-dspi.c |    1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/drivers/spi/spi-fsl-dspi.c
++++ b/drivers/spi/spi-fsl-dspi.c
+@@ -753,7 +753,6 @@ static int dspi_remove(struct platform_d
+       /* Disconnect from the SPI framework */
+       clk_disable_unprepare(dspi->clk);
+       spi_unregister_master(dspi->master);
+-      spi_master_put(dspi->master);
+       return 0;
+ }
diff --git a/queue-4.4/uio-fix-dmem_region_start-computation.patch b/queue-4.4/uio-fix-dmem_region_start-computation.patch
new file mode 100644 (file)
index 0000000..9f33eed
--- /dev/null
@@ -0,0 +1,36 @@
+From 4d31a2588ae37a5d0f61f4d956454e9504846aeb Mon Sep 17 00:00:00 2001
+From: Jan Viktorin <viktorin@rehivetech.com>
+Date: Tue, 17 May 2016 11:22:17 +0200
+Subject: uio: fix dmem_region_start computation
+
+From: Jan Viktorin <viktorin@rehivetech.com>
+
+commit 4d31a2588ae37a5d0f61f4d956454e9504846aeb upstream.
+
+The variable i contains a total number of resources (including
+IORESOURCE_IRQ). However, we want the dmem_region_start to point
+after the last resource of type IORESOURCE_MEM. The original behaviour
+leads (very likely) to skipping several UIO mapping regions and makes
+them useless. Fix this by computing dmem_region_start from the uiomem
+which points to the last used UIO mapping.
+
+Fixes: 0a0c3b5a24bd ("Add new uio device for dynamic memory allocation")
+
+Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/uio/uio_dmem_genirq.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/uio/uio_dmem_genirq.c
++++ b/drivers/uio/uio_dmem_genirq.c
+@@ -229,7 +229,7 @@ static int uio_dmem_genirq_probe(struct
+               ++uiomem;
+       }
+-      priv->dmem_region_start = i;
++      priv->dmem_region_start = uiomem - &uioinfo->mem[0];
+       priv->num_dmem_regions = pdata->num_dynamic_regions;
+       for (i = 0; i < pdata->num_dynamic_regions; ++i) {