[linux-next,v2] dio: add missing iounmap() after ioremap() from dio.c

From: cgel . zte
Date: Mon Aug 30 2021 - 23:05:12 EST


From: xu xin <xu.xin16@xxxxxxxxxx>

When the condition 'scode >= DIOII_SCBASE' is true, the pointer 'va' is
mapped by executing ioremap(). Accordingly, if kzalloc() fails, 'va'
needs to be unmapped before returning -ENOMEM.

Reported-by: Zeal Robot <zealci@xxxxxxxxxx>
Signed-off-by: xu xin <xu.xin16@xxxxxxxxxx>
---
drivers/dio/dio.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/dio/dio.c b/drivers/dio/dio.c
index 4c06c93c93d3..7d192509a8bd 100644
--- a/drivers/dio/dio.c
+++ b/drivers/dio/dio.c
@@ -218,9 +218,11 @@ static int __init dio_init(void)

/* Found a board, allocate it an entry in the list */
dev = kzalloc(sizeof(struct dio_dev), GFP_KERNEL);
- if (!dev)
+ if (!dev) {
+ if (scode >= DIOII_SCBASE)
+ iounmap(va);
return -ENOMEM;
-
+ }
dev->bus = &dio_bus;
dev->dev.parent = &dio_bus.dev;
dev->dev.bus = &dio_bus_type;
--
2.25.1