aboutsummaryrefslogtreecommitdiff
path: root/drivers/tty/serial/8250/8250_men_mcb.c
diff options
context:
space:
mode:
authorGravatar Yang Yingliang <yangyingliang@huawei.com> 2023-07-28 16:57:23 +0800
committerGravatar Greg Kroah-Hartman <gregkh@linuxfoundation.org> 2023-07-30 13:52:52 +0200
commit5f45b336fc57cb31c81d2eb4a63008ab65840a2b (patch)
treeacf1dbcc4099b20ff912e2987148ebe3439504f3 /drivers/tty/serial/8250/8250_men_mcb.c
parentserial: st-asc: Use devm_platform_get_and_ioremap_resource() (diff)
downloadlinux-5f45b336fc57cb31c81d2eb4a63008ab65840a2b.tar.gz
linux-5f45b336fc57cb31c81d2eb4a63008ab65840a2b.tar.bz2
linux-5f45b336fc57cb31c81d2eb4a63008ab65840a2b.zip
8250_men_mcb: fix error handling in read_uarts_available_from_reg()
If ioremap() fails, it returns NULL pointer, not ERR_PTR(), fix the return value check and call release_mem_region() to release resource. Fixes: c563831ba879 ("8250_men_mcb: Make UART config auto configurable") Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> Link: https://lore.kernel.org/r/20230728085723.3195044-1-yangyingliang@huawei.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/8250/8250_men_mcb.c')
-rw-r--r--drivers/tty/serial/8250/8250_men_mcb.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/tty/serial/8250/8250_men_mcb.c b/drivers/tty/serial/8250/8250_men_mcb.c
index c3143ffddea0..5f301195575d 100644
--- a/drivers/tty/serial/8250/8250_men_mcb.c
+++ b/drivers/tty/serial/8250/8250_men_mcb.c
@@ -94,8 +94,11 @@ static int read_uarts_available_from_register(struct resource *mem_res,
mem = ioremap(mem_res->start + MEN_Z025_REGISTER_OFFSET,
MEM_UART_REGISTER_SIZE);
- if (IS_ERR(mem))
+ if (!mem) {
+ release_mem_region(mem_res->start + MEN_Z025_REGISTER_OFFSET,
+ MEM_UART_REGISTER_SIZE);
return -ENOMEM;
+ }
reg_value = MEN_READ_REGISTER(mem);