From owner-freebsd-current@FreeBSD.ORG Fri Aug 1 15:51:36 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9E5F937B401; Fri, 1 Aug 2003 15:51:36 -0700 (PDT) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id F073B43F93; Fri, 1 Aug 2003 15:51:35 -0700 (PDT) (envelope-from eischen@vigrid.com) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mail.pcnet.com (8.12.8/8.12.1) with ESMTP id h71MpXax018937; Fri, 1 Aug 2003 18:51:33 -0400 (EDT) Date: Fri, 1 Aug 2003 18:51:33 -0400 (EDT) From: Daniel Eischen X-Sender: eischen@pcnet5.pcnet.com To: David Xu In-Reply-To: <200308020647.18039.davidxu@FreeBSD.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: current@freebsd.org Subject: Re: NVidia glx stuff dies in sysarch(I386_SET_LDT, ...) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: deischen@freebsd.org List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Aug 2003 22:51:36 -0000 On Sat, 2 Aug 2003, David Xu wrote: > On Saturday 02 August 2003 06:24, Munish Chopra wrote: > > On 2003-08-02 00:20 +0200, Thorsten Greiner wrote: > > > * Daniel Eischen [2003-08-02 00:06]: > > > > I think the bug was in the old code allowing this to > > > > happen... > > > > > > Well, than someone should tell that to NVidia. Their driver is > > > closed source and comes without "user servicable parts". > > > > > > Regards > > > -Thorsten > > > > That's going to be a lot easier to get through if someone can confirm > > whether 0-16 are reserved, or whether (like julian says), 6-15 are > > actually safe and something else is being clobbered. > > #define LSYS5CALLS_SEL 0 /* forced by intel BCS */ > #define LSYS5SIGR_SEL 1 > #define L43BSDCALLS_SEL 2 /* notyet */ > #define LUCODE_SEL 3 > #define LSOL26CALLS_SEL 4 /* Solaris >= 2.6 system call gate */ > #define LUDATA_SEL 5 > /* separate stack, es,fs,gs sels ? */ > /* #define LPOSIXCALLS_SEL 5*/ /* notyet */ > #define LBSDICALLS_SEL 16 /* BSDI system call gate */ > #define NLDT (LBSDICALLS_SEL + 1) > > LUCODE_SEL is used by kernel to load _ucodesel to user %cs > LUDATA_SEL is used by kernel to load _udatasel to user %ds, %es, %fs, %gs. > I didn't check other ABIs, but setting to a fixed location of LDT in userland > is also a bad idea, I think it will conflict with thread library soon, > it is better to use dynamic allocating facility newly added in i386_set_ldt. Perhaps we need to rethink the interface and disallow specification of any ldt; only allow dynamic. We would need a different method of setting an array of them, though. -- Dan Eischen