[PATCH] video/fbdev/via: check ioremap return value in viafb_lcd_get_mobile_state
From: Wang Jun
Date: Mon Mar 09 2026 - 21:17:07 EST
The function viafb_lcd_get_mobile_state() calls ioremap() without
checking the return value. If ioremap() fails (returns NULL), the
subsequent readw() will cause a NULL pointer dereference.
This patch adds a proper NULL check after ioremap() and returns
-ENOMEM in case of failure.
Signed-off-by: Wang Jun <1742789905@xxxxxx>
---
drivers/video/fbdev/via/lcd.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/video/fbdev/via/lcd.c b/drivers/video/fbdev/via/lcd.c
index 8673fced8749..91359d2b64fb 100644
--- a/drivers/video/fbdev/via/lcd.c
+++ b/drivers/video/fbdev/via/lcd.c
@@ -954,6 +954,10 @@ bool viafb_lcd_get_mobile_state(bool *mobile)
u16 start_pattern;
biosptr = ioremap(romaddr, 0x10000);
+ if (!biosptr) {
+ DEBUG_MSG(KERN_ERR " Failed to remap BIOS memory\n");
+ return false;
+ }
start_pattern = readw(biosptr);
/* Compare pattern */
--
2.43.0