From e807c40832320719277375f47e3c6edfd6b92cf3 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 20 Jul 2020 13:49:41 +0200 Subject: [PATCH] 4.19-stable patches 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 --- ...-iounmap-in-probe-failure-and-remove.patch | 76 +++++++++++++++++++ queue-4.19/series | 2 + ...module_device_table-for-rproc-serial.patch | 51 +++++++++++++ 3 files changed, 129 insertions(+) create mode 100644 queue-4.19/serial-mxs-auart-add-missed-iounmap-in-probe-failure-and-remove.patch create mode 100644 queue-4.19/virtio-virtio_console-add-missing-module_device_table-for-rproc-serial.patch 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 index 00000000000..8bb31b6ffbc --- /dev/null +++ b/queue-4.19/serial-mxs-auart-add-missed-iounmap-in-probe-failure-and-remove.patch @@ -0,0 +1,76 @@ +From d8edf8eb5f6e921fe6389f96d2cd05862730a6ff Mon Sep 17 00:00:00 2001 +From: Chuhong Yuan +Date: Thu, 9 Jul 2020 21:56:08 +0800 +Subject: serial: mxs-auart: add missed iounmap() in probe failure and remove + +From: Chuhong Yuan + +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 +Cc: stable +Link: https://lore.kernel.org/r/20200709135608.68290-1-hslester96@gmail.com +Signed-off-by: Greg Kroah-Hartman +--- + 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); diff --git a/queue-4.19/series b/queue-4.19/series index 6a211d49bf5..aca48c2a736 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -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 index 00000000000..0329e7d9b11 --- /dev/null +++ b/queue-4.19/virtio-virtio_console-add-missing-module_device_table-for-rproc-serial.patch @@ -0,0 +1,51 @@ +From 897c44f0bae574c5fb318c759b060bebf9dd6013 Mon Sep 17 00:00:00 2001 +From: Alexander Lobakin +Date: Tue, 23 Jun 2020 11:09:33 +0000 +Subject: virtio: virtio_console: add missing MODULE_DEVICE_TABLE() for rproc serial + +From: Alexander Lobakin + +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: # v3.8+ +Signed-off-by: Alexander Lobakin +Reviewed-by: Amit Shah +Link: https://lore.kernel.org/r/x7C_CbeJtoGMy258nwAXASYz3xgFMFpyzmUvOyZzRnQrgWCREBjaqBOpAUS7ol4NnZYvSVwmTsCG0Ohyfvta-ygw6HMHcoeKK0C3QFiAO_Q=@pm.me +Signed-off-by: Greg Kroah-Hartman + +--- + 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"); -- 2.47.3