Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Jun 2010 22:25:52 +0000 (UTC)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r209485 - head/sys/powerpc/powerpc
Message-ID:  <201006232225.o5NMPqxu098131@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201006232225.o5NMPqxu098131>