From owner-svn-src-projects@FreeBSD.ORG Mon Apr 25 17:34:10 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 EBF001065672; Mon, 25 Apr 2011 17:34:10 +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 C14CB8FC13; Mon, 25 Apr 2011 17:34:10 +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 p3PHYArH085694; Mon, 25 Apr 2011 17:34:10 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3PHYAxe085692; Mon, 25 Apr 2011 17:34:10 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104251734.p3PHYAxe085692@svn.freebsd.org> From: Marcel Moolenaar Date: Mon, 25 Apr 2011 17:34:10 +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: r221024 - projects/altix/sys/ia64/ia64 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: Mon, 25 Apr 2011 17:34:11 -0000 Author: marcel Date: Mon Apr 25 17:34:10 2011 New Revision: 221024 URL: http://svn.freebsd.org/changeset/base/221024 Log: Hack the SAPIC interaction. Eventually this will become a KOBJ interface. For now, since I'm not getting any H/W interrupts at all, just make things visible. Modified: projects/altix/sys/ia64/ia64/interrupt.c Modified: projects/altix/sys/ia64/ia64/interrupt.c ============================================================================== --- projects/altix/sys/ia64/ia64/interrupt.c Mon Apr 25 17:13:40 2011 (r221023) +++ projects/altix/sys/ia64/ia64/interrupt.c Mon Apr 25 17:34:10 2011 (r221024) @@ -164,7 +164,10 @@ ia64_intr_eoi(void *arg) i = ia64_intrs[xiv]; KASSERT(i != NULL, ("%s", __func__)); - sapic_eoi(i->sapic, xiv); + if (i->sapic != NULL) + sapic_eoi(i->sapic, xiv); + else + printf("XXX-INTR: %s: XIV=%u\n", __func__, xiv); } static void @@ -175,8 +178,11 @@ ia64_intr_mask(void *arg) i = ia64_intrs[xiv]; KASSERT(i != NULL, ("%s", __func__)); - sapic_mask(i->sapic, i->irq); - sapic_eoi(i->sapic, xiv); + if (i->sapic != NULL) { + sapic_mask(i->sapic, i->irq); + sapic_eoi(i->sapic, xiv); + } else + printf("XXX-INTR: %s: XIV=%u\n", __func__, xiv); } static void @@ -187,7 +193,10 @@ ia64_intr_unmask(void *arg) i = ia64_intrs[xiv]; KASSERT(i != NULL, ("%s", __func__)); - sapic_unmask(i->sapic, i->irq); + if (i->sapic != NULL) + sapic_unmask(i->sapic, i->irq); + else + printf("XXX-INTR: %s: XIV=%u\n", __func__, xiv); } static int @@ -350,7 +359,8 @@ ia64_bind_intr(void) cpu = (cpu == 0) ? MAXCPU - 1 : cpu - 1; pc = cpuid_to_pcpu[cpu]; } while (pc == NULL || !pc->pc_md.awake); - sapic_bind_intr(i->irq, pc); + if (i->sapic != NULL) + sapic_bind_intr(i->irq, pc); } } @@ -378,8 +388,6 @@ ia64_handle_intr(struct trapframe *tf) critical_enter(); do { - CTR2(KTR_INTR, "INTR: ITC=%u, XIV=%u", - (u_int)tf->tf_special.ifa, xiv); (ia64_handler[xiv])(td, xiv, tf); ia64_set_eoi(0); ia64_srlz_d(); @@ -415,6 +423,8 @@ ia64_ih_irq(struct thread *td, u_int xiv PCPU_INC(md.stats.pcs_nhwints); + printf("INTR: ITC=%u, XIV=%u", (u_int)tf->tf_special.ifa, xiv); + /* Find the interrupt thread for this XIV. */ i = ia64_intrs[xiv]; KASSERT(i != NULL, ("%s: unassigned XIV", __func__)); @@ -442,7 +452,10 @@ db_print_xiv(u_int xiv, int always) i = ia64_intrs[xiv]; if (i != NULL) { db_printf("XIV %u (%p): ", xiv, i); - sapic_print(i->sapic, i->irq); + if (i->sapic != NULL) + sapic_print(i->sapic, i->irq); + else + db_printf("\n"); } else if (always) db_printf("XIV %u: unassigned\n", xiv); }