From owner-svn-src-projects@FreeBSD.ORG Thu Jan 28 05:28:49 2010 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 3CE841065693; Thu, 28 Jan 2010 05:28:49 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2CF578FC2A; Thu, 28 Jan 2010 05:28:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0S5Sngc040454; Thu, 28 Jan 2010 05:28:49 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0S5Sn98040452; Thu, 28 Jan 2010 05:28:49 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201001280528.o0S5Sn98040452@svn.freebsd.org> From: Nathan Whitehorn Date: Thu, 28 Jan 2010 05:28:49 +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: r203107 - projects/ppc64/sys/powerpc/powerpc 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: Thu, 28 Jan 2010 05:28:49 -0000 Author: nwhitehorn Date: Thu Jan 28 05:28:48 2010 New Revision: 203107 URL: http://svn.freebsd.org/changeset/base/203107 Log: Fix passing argc to user space. MI code uses suword, which copies a 64-bit quantity, but arginfo.ps_nargvstr is an unsigned int. Thus, it ended up being always zero when read back with copyin() on big-endian 64-bit systems. This fixes argument passing to 64-bit executables. Modified: projects/ppc64/sys/powerpc/powerpc/exec_machdep.c Modified: projects/ppc64/sys/powerpc/powerpc/exec_machdep.c ============================================================================== --- projects/ppc64/sys/powerpc/powerpc/exec_machdep.c Thu Jan 28 04:50:09 2010 (r203106) +++ projects/ppc64/sys/powerpc/powerpc/exec_machdep.c Thu Jan 28 05:28:48 2010 (r203107) @@ -526,7 +526,7 @@ exec_setregs(struct thread *td, u_long e */ td->td_retval[0] = arginfo.ps_nargvstr; td->td_retval[1] = (register_t)arginfo.ps_argvstr; - tf->fixreg[3] = arginfo.ps_nargvstr; + tf->fixreg[3] = *((register_t *)(&arginfo.ps_nargvstr)); tf->fixreg[4] = (register_t)arginfo.ps_argvstr; tf->fixreg[5] = (register_t)arginfo.ps_envstr; tf->fixreg[6] = 0; /* auxillary vector */