From owner-svn-src-projects@FreeBSD.ORG Wed Nov 2 20:11:19 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 85A75106564A; Wed, 2 Nov 2011 20:11:19 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 752A28FC15; Wed, 2 Nov 2011 20:11:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pA2KBJnw036419; Wed, 2 Nov 2011 20:11:19 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id pA2KBJFu036417; Wed, 2 Nov 2011 20:11:19 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201111022011.pA2KBJFu036417@svn.freebsd.org> From: Nathan Whitehorn Date: Wed, 2 Nov 2011 20:11:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r227031 - projects/pseries/powerpc/ofw X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Nov 2011 20:11:19 -0000 Author: nwhitehorn Date: Wed Nov 2 20:11:19 2011 New Revision: 227031 URL: http://svn.freebsd.org/changeset/base/227031 Log: Use the phandle cross-reference tools here and avoid making requests with invalid phandles that could crash certain badly-written OF implementations. Modified: projects/pseries/powerpc/ofw/ofw_pcibus.c Modified: projects/pseries/powerpc/ofw/ofw_pcibus.c ============================================================================== --- projects/pseries/powerpc/ofw/ofw_pcibus.c Wed Nov 2 19:35:31 2011 (r227030) +++ projects/pseries/powerpc/ofw/ofw_pcibus.c Wed Nov 2 20:11:19 2011 (r227031) @@ -213,11 +213,13 @@ ofw_pcibus_enum_devtree(device_t dev, u_ icells = 1; OF_getprop(child, "interrupt-parent", &iparent, sizeof(iparent)); - OF_getprop(iparent, "#interrupt-cells", &icells, - sizeof(icells)); + iparent = OF_xref_phandle(iparent); - if (iparent != 0) + if (iparent != 0) { + OF_getprop(iparent, "#interrupt-cells", + &icells, sizeof(icells)); intr[0] = MAP_IRQ(iparent, intr[0]); + } if (iparent != 0 && icells > 1) { powerpc_config_intr(intr[0], @@ -344,6 +346,8 @@ ofw_pcibus_assign_interrupt(device_t dev iparent = -1; if (OF_getprop(node, "interrupt-parent", &iparent, sizeof(iparent)) < 0) iparent = -1; + else + iparent = OF_xref_phandle(iparent); /* * Any AAPL,interrupts property gets priority and is