Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

irqchip/sunxi-nmi: Fix error check of of_io_request_and_map()

The of_io_request_and_map() returns a valid pointer in iomem region or
ERR_PTR(), check for NULL always fails and may cause a NULL pointer
dereference on error path.

Fixes: 0e841b04c829 ("irqchip/sunxi-nmi: Switch to of_io_request_and_map() from of_iomap()")
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Chen-Yu Tsai <wens@csie.org>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: linux-arm-kernel@lists.infradead.org
Link: http://lkml.kernel.org/r/1457486489-10189-1-git-send-email-vz@mleia.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

authored by

Vladimir Zapolskiy and committed by
Thomas Gleixner
cfe199af 52b2a05f

+2 -2
+2 -2
drivers/irqchip/irq-sunxi-nmi.c
··· 160 160 161 161 gc = irq_get_domain_generic_chip(domain, 0); 162 162 gc->reg_base = of_io_request_and_map(node, 0, of_node_full_name(node)); 163 - if (!gc->reg_base) { 163 + if (IS_ERR(gc->reg_base)) { 164 164 pr_err("unable to map resource\n"); 165 - ret = -ENOMEM; 165 + ret = PTR_ERR(gc->reg_base); 166 166 goto fail_irqd_remove; 167 167 } 168 168