From owner-p4-projects@FreeBSD.ORG Mon Jul 31 07:13:30 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C6DAF16A4DE; Mon, 31 Jul 2006 07:13:30 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A05C416A4DA for ; Mon, 31 Jul 2006 07:13:30 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3B54243D55 for ; Mon, 31 Jul 2006 07:13:30 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k6V7DUcp084142 for ; Mon, 31 Jul 2006 07:13:30 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k6V7DTOY084139 for perforce@freebsd.org; Mon, 31 Jul 2006 07:13:29 GMT (envelope-from kmacy@freebsd.org) Date: Mon, 31 Jul 2006 07:13:29 GMT Message-Id: <200607310713.k6V7DTOY084139@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 102831 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 Jul 2006 07:13:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=102831 Change 102831 by kmacy@kmacy_storage:sun4v_work_stable on 2006/07/31 07:12:48 md fixes for IFC Affected files ... .. //depot/projects/kmacy_sun4v_stable/src/sys/sun4v/sun4v/db_trace.c#2 edit .. //depot/projects/kmacy_sun4v_stable/src/sys/sun4v/sun4v/trap.c#5 edit Differences ... ==== //depot/projects/kmacy_sun4v_stable/src/sys/sun4v/sun4v/db_trace.c#2 (text+ko) ==== @@ -97,7 +97,7 @@ * User stack trace (debugging aid). */ static void -db_utrace(struct thread *td, struct trapframe *tf, int count, int *quitp) +db_utrace(struct thread *td, struct trapframe *tf, int count) { struct pcb *pcb; db_addr_t sp, rsp, o7, pc; @@ -109,7 +109,7 @@ FALSE); pc = db_get_value((db_addr_t)&tf->tf_tpc, sizeof(tf->tf_tpc), FALSE); db_printf("user trace: trap %%o7=%#lx\n", o7); - while (count-- && sp != 0 && !*quitp) { + while (count-- && sp != 0 && !db_pager_quit) { db_printf("pc %#lx, sp %#lx\n", pc, sp); /* First, check whether the frame is in the pcb. */ found = 0; @@ -135,7 +135,7 @@ } static int -db_print_trap(struct thread *td, struct trapframe *tf, int count, int *quitp) +db_print_trap(struct thread *td, struct trapframe *tf, int count) { struct proc *p; const char *symname; @@ -226,7 +226,7 @@ db_printf("userland() at "); db_printsym(tpc, DB_STGY_PROC); db_printf("\n"); - db_utrace(td, tf, count, quitp); + db_utrace(td, tf, count); } return (user); } @@ -252,8 +252,7 @@ user = 0; npc = 0; quit = 0; - db_setup_paging(db_simple_pager, &quit, db_lines_per_page); - while (count-- && !user && !quit) { + while (count-- && !user && !db_pager_quit) { pc = (db_addr_t)db_get_value((db_addr_t)&fp->fr_pc, sizeof(fp->fr_pc), FALSE); if (trap) { @@ -277,7 +276,7 @@ tf = (struct trapframe *)(fp + 1); npc = db_get_value((db_addr_t)&tf->tf_tpc, sizeof(tf->tf_tpc), FALSE); - user = db_print_trap(td, tf, count, &quit); + user = db_print_trap(td, tf, count); trap = 1; } else { db_printf("%s() at ", name); ==== //depot/projects/kmacy_sun4v_stable/src/sys/sun4v/sun4v/trap.c#5 (text+ko) ==== @@ -603,7 +603,7 @@ else callp = &p->p_sysent->sv_table[code]; - narg = callp->sy_narg & SYF_ARGMASK; + narg = callp->sy_narg; if (narg <= regcnt) { argp = &tf->tf_out[reg]; @@ -625,9 +625,6 @@ * Try to run the syscall without the MP lock if the syscall * is MP safe. */ - if ((callp->sy_narg & SYF_MPSAFE) == 0) - mtx_lock(&Giant); - #ifdef KTRACE if (KTRPOINT(td, KTR_SYSCALL)) ktrsyscall(code, narg, argp); @@ -682,13 +679,6 @@ } /* - * Release Giant if we had to get it. Don't use mtx_owned(), - * we want to catch broken syscalls. - */ - if ((callp->sy_narg & SYF_MPSAFE) == 0) - mtx_unlock(&Giant); - - /* * Handle reschedule and other end-of-syscall issues */ userret(td, tf);