From owner-p4-projects@FreeBSD.ORG Wed May 25 03:12:35 2005 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 961F916A420; Wed, 25 May 2005 03:12:34 +0000 (GMT) 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 6586F16A41C for ; Wed, 25 May 2005 03:12:34 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 415BA43D1F for ; Wed, 25 May 2005 03:12:34 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j4P3CYvD041590 for ; Wed, 25 May 2005 03:12:34 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j4P3CXI0041587 for perforce@freebsd.org; Wed, 25 May 2005 03:12:33 GMT (envelope-from peter@freebsd.org) Date: Wed, 25 May 2005 03:12:33 GMT Message-Id: <200505250312.j4P3CXI0041587@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 77437 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: Wed, 25 May 2005 03:12:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=77437 Change 77437 by peter@peter_melody on 2005/05/25 03:12:29 Fix a startup race with gdb execing something. I think. Affected files ... .. //depot/projects/hammer/sys/kern/sys_process.c#27 edit Differences ... ==== //depot/projects/hammer/sys/kern/sys_process.c#27 (text+ko) ==== @@ -440,7 +440,7 @@ #define PROC_READ(w, t, a) wrap32 ? \ proc_read_ ## w ## 32(t, a) : proc_read_ ## w (t, a) #define PROC_WRITE(w, t, a) wrap32 ? \ - proc_write_ ## w ## 32(t, a) : proc_write_ ## w (t, a) + (safe ? proc_write_ ## w ## 32(t, a) : EINVAL ) : proc_write_ ## w (t, a) #else #define PROC_READ(w, t, a) proc_read_ ## w (t, a) #define PROC_WRITE(w, t, a) proc_write_ ## w (t, a) @@ -460,7 +460,7 @@ lwpid_t tid = 0, *buf; pid_t saved_pid = pid; #ifdef COMPAT_IA32 - int wrap32 = 0; + int wrap32 = 0, safe = 0; #endif curp = td->td_proc; @@ -539,10 +539,8 @@ #ifdef COMPAT_IA32 if (td->td_proc->p_sysent == &ia32_freebsd_sysvec) { - if (td2->td_proc->p_sysent != &ia32_freebsd_sysvec) { - error = EINVAL; - goto fail; - } + if (td2->td_proc->p_sysent == &ia32_freebsd_sysvec) + safe = 1; wrap32 = 1; } #endif