From 25d5744ebf9145a4ba808304dbf051149533f296 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 18 Jul 2022 17:49:56 +0200 Subject: [PATCH] 4.9-stable patches added patches: serial-8250-fix-return-error-code-in-serial8250_request_std_resource.patch --- ...e-in-serial8250_request_std_resource.patch | 39 +++++++++++++++++++ queue-4.9/series | 1 + 2 files changed, 40 insertions(+) create mode 100644 queue-4.9/serial-8250-fix-return-error-code-in-serial8250_request_std_resource.patch diff --git a/queue-4.9/serial-8250-fix-return-error-code-in-serial8250_request_std_resource.patch b/queue-4.9/serial-8250-fix-return-error-code-in-serial8250_request_std_resource.patch new file mode 100644 index 00000000000..ce6cfab05a3 --- /dev/null +++ b/queue-4.9/serial-8250-fix-return-error-code-in-serial8250_request_std_resource.patch @@ -0,0 +1,39 @@ +From 6e690d54cfa802f939cefbd2fa2c91bd0b8bd1b6 Mon Sep 17 00:00:00 2001 +From: Yi Yang +Date: Tue, 28 Jun 2022 16:35:15 +0800 +Subject: serial: 8250: fix return error code in serial8250_request_std_resource() + +From: Yi Yang + +commit 6e690d54cfa802f939cefbd2fa2c91bd0b8bd1b6 upstream. + +If port->mapbase = NULL in serial8250_request_std_resource() , it need +return a error code instead of 0. If uart_set_info() fail to request new +regions by serial8250_request_std_resource() but the return value of +serial8250_request_std_resource() is 0, The system incorrectly considers +that the resource application is successful and does not attempt to +restore the old setting. A null pointer reference is triggered when the +port resource is later invoked. + +Signed-off-by: Yi Yang +Cc: stable +Link: https://lore.kernel.org/r/20220628083515.64138-1-yiyang13@huawei.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/tty/serial/8250/8250_port.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/tty/serial/8250/8250_port.c ++++ b/drivers/tty/serial/8250/8250_port.c +@@ -2789,8 +2789,10 @@ static int serial8250_request_std_resour + case UPIO_MEM32BE: + case UPIO_MEM16: + case UPIO_MEM: +- if (!port->mapbase) ++ if (!port->mapbase) { ++ ret = -EINVAL; + break; ++ } + + if (!request_mem_region(port->mapbase, size, "serial")) { + ret = -EBUSY; diff --git a/queue-4.9/series b/queue-4.9/series index e20078205fe..ee4f54d03bf 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -23,3 +23,4 @@ signal-handling-don-t-use-bug_on-for-debugging.patch usb-serial-ftdi_sio-add-belimo-device-ids.patch usb-dwc3-gadget-fix-event-pending-check.patch tty-serial-samsung_tty-set-dma-burst_size-to-1.patch +serial-8250-fix-return-error-code-in-serial8250_request_std_resource.patch -- 2.47.3