If ioremap fails, NULL pointer dereference will happen and leading to a kernel panic when access the virtual address in check_signature(). Fix it by check the return value of ioremap. Cc: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> Cc: linux-input@xxxxxxxxxxxxxxx Reported-by: Hulk Robot <hulkci@xxxxxxxxxx> Signed-off-by: Kefeng Wang <wangkefeng.wang@xxxxxxxxxx> --- drivers/input/misc/apanel.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/input/misc/apanel.c b/drivers/input/misc/apanel.c index c1e66f45d552..1c7262ad4b5b 100644 --- a/drivers/input/misc/apanel.c +++ b/drivers/input/misc/apanel.c @@ -259,7 +259,9 @@ static int __init apanel_init(void) unsigned char i2c_addr; int found = 0; - bios = ioremap(0xF0000, 0x10000); /* Can't fail */ + bios = ioremap(0xF0000, 0x10000); + if (!bios) + return -ENOMEM; p = bios_signature(bios); if (!p) { -- 2.20.1