From owner-svn-src-projects@FreeBSD.ORG Sun Dec 21 21:47:58 2014 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EE501A96; Sun, 21 Dec 2014 21:47:58 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C0D9E393B; Sun, 21 Dec 2014 21:47:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBLLlwcV083841; Sun, 21 Dec 2014 21:47:58 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBLLlwHo083840; Sun, 21 Dec 2014 21:47:58 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201412212147.sBLLlwHo083840@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Sun, 21 Dec 2014 21:47:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r276034 - projects/arm_intrng/sys/arm/arm X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 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: Sun, 21 Dec 2014 21:47:59 -0000 Author: andrew Date: Sun Dec 21 21:47:57 2014 New Revision: 276034 URL: https://svnweb.freebsd.org/changeset/base/276034 Log: Clean up a little: * Place brackets around variables in macros * Correctly exit the loop when we have found the irq handler * Fix the build when DEBUG is enabled * Add a KASSERT to check arm_ipi_pic is set when adding an ipi * Remove an unneeded ';' * Use OF_node_from_xref to translate the xref Modified: projects/arm_intrng/sys/arm/arm/intrng.c Modified: projects/arm_intrng/sys/arm/arm/intrng.c ============================================================================== --- projects/arm_intrng/sys/arm/arm/intrng.c Sun Dec 21 21:38:12 2014 (r276033) +++ projects/arm_intrng/sys/arm/arm/intrng.c Sun Dec 21 21:47:57 2014 (r276034) @@ -56,7 +56,7 @@ __FBSDID("$FreeBSD$"); #define INTRNAME_LEN (MAXCOMLEN + 1) -#define IRQ_PIC_IDX(_irq) ((_irq >> 8) & 0xff) +#define IRQ_PIC_IDX(_irq) (((_irq) >> 8) & 0xff) #define IRQ_VECTOR_IDX(_irq) ((_irq) & 0xff) #define IRQ_GEN(_pic, _irq) (((_pic) << 8) | ((_irq) & 0xff)) @@ -139,10 +139,11 @@ arm_dispatch_irq(device_t dev, struct tr for (i = 0; i < ic->ic_maxintrs; i++) { ih = &ic->ic_intrs[i]; if (irq == ih->ih_irq) - break; + goto done; } } } +done: if (ic->ic_dev == NULL) panic("arm_dispatch_irq: unknown irq"); @@ -181,7 +182,7 @@ arm_fdt_map_irq(phandle_t ic, pcell_t *c struct arm_intr_handler *ih; int i, j; - ic = OF_xref_from_node(ic); + ic = OF_node_from_xref(ic); debugf("ic %08x cells <%*D>\n", ic, ncells * sizeof(pcell_t), (char *)cells, ","); @@ -213,12 +214,11 @@ arm_fdt_map_irq(phandle_t ic, pcell_t *c PIC_TRANSLATE(pic->ic_dev, cells, &ih->ih_irq, &ih->ih_trig, &ih->ih_pol); - debugf(pic->ic_dev, "translated to irq %d\n", - ih->ih_irq); + debugf("translated to irq %d\n", ih->ih_irq); } return (IRQ_GEN(i, pic->ic_maxintrs - 1)); - }; + } } /* @@ -343,7 +343,7 @@ arm_register_pic(device_t dev, int flags PIC_TRANSLATE(ic->ic_dev, ih->ih_cells, &ih->ih_irq, &ih->ih_trig, &ih->ih_pol); - debugf(ic->ic_dev, "translated to irq %d\n", ih->ih_irq); + debugf("translated to irq %d\n", ih->ih_irq); } device_printf(dev, "registered as interrupt controller\n"); @@ -363,6 +363,8 @@ arm_setup_irqhandler(device_t dev, drive return; ipi = (flags & INTR_IPI) != 0; + KASSERT(!ipi || arm_ipi_pic != NULL, + ("No IPI pic setup when adding an IPI")); pic = ipi ? arm_ipi_pic : &arm_pics[IRQ_PIC_IDX(irq)]; ih = arm_lookup_intr_handler(pic->ic_dev, IRQ_VECTOR_IDX(irq));