[PATCH] macintosh/ans-lcd: check ioremap() return value

Linkai Gong <[email protected]> Fri, 31 Jul 2026 17:41:44 +0800
Newsgroups org.ozlabs.lists.linuxppc-dev,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
anslcd_init() used ioremap() without checking for failure and then
called anslcd_write_byte_*() which dereference anslcd_ptr. Return
-ENOMEM if the mapping fails.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Linkai Gong <[email protected]>
---
 drivers/macintosh/ans-lcd.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/macintosh/ans-lcd.c b/drivers/macintosh/ans-lcd.c
index fa904b24a600..6ea7fb8666f7 100644
--- a/drivers/macintosh/ans-lcd.c
+++ b/drivers/macintosh/ans-lcd.c
@@ -168,9 +168,11 @@ anslcd_init(void)
 	of_node_put(node);
 
 	anslcd_ptr = ioremap(ANSLCD_ADDR, 0x20);
-	
+	if (!anslcd_ptr)
+		return -ENOMEM;
+
 	retval = misc_register(&anslcd_dev);
-	if(retval < 0){
+	if (retval < 0) {
 		printk(KERN_INFO "LCD: misc_register failed\n");
 		iounmap(anslcd_ptr);
 		return retval;
-- 
2.25.1