]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.19-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Jul 2020 11:49:41 +0000 (13:49 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Jul 2020 11:49:41 +0000 (13:49 +0200)
added patches:
serial-mxs-auart-add-missed-iounmap-in-probe-failure-and-remove.patch
virtio-virtio_console-add-missing-module_device_table-for-rproc-serial.patch

queue-4.19/serial-mxs-auart-add-missed-iounmap-in-probe-failure-and-remove.patch [new file with mode: 0644]
queue-4.19/series
queue-4.19/virtio-virtio_console-add-missing-module_device_table-for-rproc-serial.patch [new file with mode: 0644]

diff --git a/queue-4.19/serial-mxs-auart-add-missed-iounmap-in-probe-failure-and-remove.patch b/queue-4.19/serial-mxs-auart-add-missed-iounmap-in-probe-failure-and-remove.patch
new file mode 100644 (file)
index 0000000..8bb31b6
--- /dev/null
@@ -0,0 +1,76 @@
+From d8edf8eb5f6e921fe6389f96d2cd05862730a6ff Mon Sep 17 00:00:00 2001
+From: Chuhong Yuan <hslester96@gmail.com>
+Date: Thu, 9 Jul 2020 21:56:08 +0800
+Subject: serial: mxs-auart: add missed iounmap() in probe failure and remove
+
+From: Chuhong Yuan <hslester96@gmail.com>
+
+commit d8edf8eb5f6e921fe6389f96d2cd05862730a6ff upstream.
+
+This driver calls ioremap() in probe, but it misses calling iounmap() in
+probe's error handler and remove.
+Add the missed calls to fix it.
+
+Fixes: 47d37d6f94cc ("serial: Add auart driver for i.MX23/28")
+Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
+Cc: stable <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20200709135608.68290-1-hslester96@gmail.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/tty/serial/mxs-auart.c |   12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+--- a/drivers/tty/serial/mxs-auart.c
++++ b/drivers/tty/serial/mxs-auart.c
+@@ -1703,21 +1703,21 @@ static int mxs_auart_probe(struct platfo
+       irq = platform_get_irq(pdev, 0);
+       if (irq < 0) {
+               ret = irq;
+-              goto out_disable_clks;
++              goto out_iounmap;
+       }
+       s->port.irq = irq;
+       ret = devm_request_irq(&pdev->dev, irq, mxs_auart_irq_handle, 0,
+                              dev_name(&pdev->dev), s);
+       if (ret)
+-              goto out_disable_clks;
++              goto out_iounmap;
+       platform_set_drvdata(pdev, s);
+       ret = mxs_auart_init_gpios(s, &pdev->dev);
+       if (ret) {
+               dev_err(&pdev->dev, "Failed to initialize GPIOs.\n");
+-              goto out_disable_clks;
++              goto out_iounmap;
+       }
+       /*
+@@ -1725,7 +1725,7 @@ static int mxs_auart_probe(struct platfo
+        */
+       ret = mxs_auart_request_gpio_irq(s);
+       if (ret)
+-              goto out_disable_clks;
++              goto out_iounmap;
+       auart_port[s->port.line] = s;
+@@ -1751,6 +1751,9 @@ out_free_qpio_irq:
+       mxs_auart_free_gpio_irq(s);
+       auart_port[pdev->id] = NULL;
++out_iounmap:
++      iounmap(s->port.membase);
++
+ out_disable_clks:
+       if (is_asm9260_auart(s)) {
+               clk_disable_unprepare(s->clk);
+@@ -1766,6 +1769,7 @@ static int mxs_auart_remove(struct platf
+       uart_remove_one_port(&auart_driver, &s->port);
+       auart_port[pdev->id] = NULL;
+       mxs_auart_free_gpio_irq(s);
++      iounmap(s->port.membase);
+       if (is_asm9260_auart(s)) {
+               clk_disable_unprepare(s->clk);
+               clk_disable_unprepare(s->clk_ahb);
index 6a211d49bf5afaf85cc9a2a0574f8cc93cf5b360..aca48c2a736d251743606da1e44ddbb3ec19d6c3 100644 (file)
@@ -100,3 +100,5 @@ usb-serial-option-add-gosuncn-gm500-series.patch
 usb-serial-option-add-quectel-eg95-lte-modem.patch
 virt-vbox-fix-vbgl_ioctl_vmmdev_request_big-and-_log-req-numbers-to-match-upstream.patch
 virt-vbox-fix-guest-capabilities-mask-check.patch
+virtio-virtio_console-add-missing-module_device_table-for-rproc-serial.patch
+serial-mxs-auart-add-missed-iounmap-in-probe-failure-and-remove.patch
diff --git a/queue-4.19/virtio-virtio_console-add-missing-module_device_table-for-rproc-serial.patch b/queue-4.19/virtio-virtio_console-add-missing-module_device_table-for-rproc-serial.patch
new file mode 100644 (file)
index 0000000..0329e7d
--- /dev/null
@@ -0,0 +1,51 @@
+From 897c44f0bae574c5fb318c759b060bebf9dd6013 Mon Sep 17 00:00:00 2001
+From: Alexander Lobakin <alobakin@pm.me>
+Date: Tue, 23 Jun 2020 11:09:33 +0000
+Subject: virtio: virtio_console: add missing MODULE_DEVICE_TABLE() for rproc serial
+
+From: Alexander Lobakin <alobakin@pm.me>
+
+commit 897c44f0bae574c5fb318c759b060bebf9dd6013 upstream.
+
+rproc_serial_id_table lacks an exposure to module devicetable, so
+when remoteproc firmware requests VIRTIO_ID_RPROC_SERIAL, no uevent
+is generated and no module autoloading occurs.
+Add missing MODULE_DEVICE_TABLE() annotation and move the existing
+one for VIRTIO_ID_CONSOLE right to the table itself.
+
+Fixes: 1b6370463e88 ("virtio_console: Add support for remoteproc serial")
+Cc: <stable@vger.kernel.org> # v3.8+
+Signed-off-by: Alexander Lobakin <alobakin@pm.me>
+Reviewed-by: Amit Shah <amit@kernel.org>
+Link: https://lore.kernel.org/r/x7C_CbeJtoGMy258nwAXASYz3xgFMFpyzmUvOyZzRnQrgWCREBjaqBOpAUS7ol4NnZYvSVwmTsCG0Ohyfvta-ygw6HMHcoeKK0C3QFiAO_Q=@pm.me
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/char/virtio_console.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/char/virtio_console.c
++++ b/drivers/char/virtio_console.c
+@@ -2142,6 +2142,7 @@ static struct virtio_device_id id_table[
+       { VIRTIO_ID_CONSOLE, VIRTIO_DEV_ANY_ID },
+       { 0 },
+ };
++MODULE_DEVICE_TABLE(virtio, id_table);
+ static unsigned int features[] = {
+       VIRTIO_CONSOLE_F_SIZE,
+@@ -2154,6 +2155,7 @@ static struct virtio_device_id rproc_ser
+ #endif
+       { 0 },
+ };
++MODULE_DEVICE_TABLE(virtio, rproc_serial_id_table);
+ static unsigned int rproc_serial_features[] = {
+ };
+@@ -2306,6 +2308,5 @@ static void __exit fini(void)
+ module_init(init);
+ module_exit(fini);
+-MODULE_DEVICE_TABLE(virtio, id_table);
+ MODULE_DESCRIPTION("Virtio console driver");
+ MODULE_LICENSE("GPL");