From owner-svn-src-all@FreeBSD.ORG Wed Jun 23 22:25:53 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 12B6F1065676; Wed, 23 Jun 2010 22:25:53 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 01D498FC1A; Wed, 23 Jun 2010 22:25:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5NMPqkJ098133; Wed, 23 Jun 2010 22:25:52 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5NMPqxu098131; Wed, 23 Jun 2010 22:25:52 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201006232225.o5NMPqxu098131@svn.freebsd.org> From: Marcel Moolenaar Date: Wed, 23 Jun 2010 22:25:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r209485 - head/sys/powerpc/powerpc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jun 2010 22:25:53 -0000 Author: marcel Date: Wed Jun 23 22:25:52 2010 New Revision: 209485 URL: http://svn.freebsd.org/changeset/base/209485 Log: In the attach method, refactor to take into account that BUS_GET_RESOURCE_LIST() can return a NULL pointer -- and will for MPC85xx kernels. Modified: head/sys/powerpc/powerpc/openpic.c Modified: head/sys/powerpc/powerpc/openpic.c ============================================================================== --- head/sys/powerpc/powerpc/openpic.c Wed Jun 23 20:59:00 2010 (r209484) +++ head/sys/powerpc/powerpc/openpic.c Wed Jun 23 22:25:52 2010 (r209485) @@ -114,15 +114,22 @@ openpic_attach(device_t dev) /* Check if this is a cascaded PIC */ sc->sc_irq = 0; sc->sc_intr = NULL; - if (resource_list_find(BUS_GET_RESOURCE_LIST(device_get_parent(dev), - dev), SYS_RES_IRQ, 0) != NULL) { + do { + struct resource_list *rl; + + rl = BUS_GET_RESOURCE_LIST(device_get_parent(dev), dev); + if (rl == NULL) + break; + if (resource_list_find(rl, SYS_RES_IRQ, 0) == NULL) + break; + sc->sc_intr = bus_alloc_resource_any(dev, SYS_RES_IRQ, &sc->sc_irq, RF_ACTIVE); /* XXX Cascaded PICs pass NULL trapframes! */ bus_setup_intr(dev, sc->sc_intr, INTR_TYPE_MISC | INTR_MPSAFE, openpic_intr, NULL, dev, &sc->sc_icookie); - } + } while (0); /* Reset the PIC */ x = openpic_read(sc, OPENPIC_CONFIG);