From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from natklopstock.rzone.de (natklopstock.rzone.de [81.169.145.174]) by ozlabs.org (Postfix) with ESMTP id 83E4867B6D for ; Wed, 27 Sep 2006 06:28:57 +1000 (EST) Date: Tue, 26 Sep 2006 22:28:36 +0200 From: Olaf Hering To: Benjamin Herrenschmidt , linuxppc-dev@ozlabs.org Subject: [PATCH] avoid NULL pointer in gpio1_interrupt Message-ID: <20060926202836.GA1051@aepfle.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , gpio1_interrupt() may dereference a NULL pointer if ioremap() fails. But, maybe no gpio interrupt happens in the first place? Signed-off-by: Olaf Hering --- drivers/macintosh/via-pmu.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) Index: linux-2.6.18/drivers/macintosh/via-pmu.c =================================================================== --- linux-2.6.18.orig/drivers/macintosh/via-pmu.c +++ linux-2.6.18/drivers/macintosh/via-pmu.c @@ -336,8 +336,10 @@ int __init find_via_pmu(void) if (gaddr != OF_BAD_ADDR) gpio_reg = ioremap(gaddr, 0x10); } - if (gpio_reg == NULL) + if (gpio_reg == NULL) { printk(KERN_ERR "via-pmu: Can't find GPIO reg !\n"); + goto fail_gpio; + } } else pmu_kind = PMU_UNKNOWN; @@ -366,6 +368,9 @@ int __init find_via_pmu(void) return 1; fail: of_node_put(vias); + iounmap(gpio_reg); + gpio_reg = NULL; + fail_gpio: vias = NULL; return 0; }