diff options
author | Yang Yingliang <yangyingliang@huawei.com> | 2023-07-28 16:57:23 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-07-30 13:52:52 +0200 |
commit | 5f45b336fc57cb31c81d2eb4a63008ab65840a2b (patch) | |
tree | acf1dbcc4099b20ff912e2987148ebe3439504f3 | |
parent | 9b4e18f032db160a70d73d3cdf3a0bff229686b4 (diff) |
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>
-rw-r--r-- | drivers/tty/serial/8250/8250_men_mcb.c | 5 |
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); |