From owner-cvs-src@FreeBSD.ORG Fri Sep 5 15:50:19 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9A6A716A4C0; Fri, 5 Sep 2003 15:50:12 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 39DF143F3F; Fri, 5 Sep 2003 15:50:11 -0700 (PDT) (envelope-from marcel@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h85MoB0U067252; Fri, 5 Sep 2003 15:50:11 -0700 (PDT) (envelope-from marcel@repoman.freebsd.org) Received: (from marcel@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h85MoAkE067251; Fri, 5 Sep 2003 15:50:10 -0700 (PDT) Message-Id: <200309052250.h85MoAkE067251@repoman.freebsd.org> From: Marcel Moolenaar Date: Fri, 5 Sep 2003 15:50:10 -0700 (PDT) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/ia64/ia64 exception.S genassym.c interrupt.c src/sys/ia64/include md_var.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Sep 2003 22:50:20 -0000 marcel 2003/09/05 15:50:10 PDT FreeBSD src repository Modified files: sys/ia64/ia64 exception.S genassym.c interrupt.c sys/ia64/include md_var.h Log: Fix a place where I forgot to change the code that checks whether we return to kernel or userland. This triggered a panic in a KSE application when TDF_USTATCLOCK was set in the case userland was interrupted, but we never called ast() on our way out. As such, we called ast() at some other time. Unfortunately, TDF_USTATCLOCK handling assumes running in the interrupt thread. This was not the case anymore. To avoid making the same mistake later, interrupt() now returns to its caller whether we interrupted userland or not. This avoids that we have to duplicate the check in assembly, where it's bound to fall off the scope. Now we simply check the return value and call ast() if appropriate. Run into this: davidxu Revision Changes Path 1.52 +5 -17 src/sys/ia64/ia64/exception.S 1.36 +0 -2 src/sys/ia64/ia64/genassym.c 1.40 +3 -1 src/sys/ia64/ia64/interrupt.c 1.13 +1 -1 src/sys/ia64/include/md_var.h