Date: Sat, 2 Aug 2003 09:34:04 -0700 (PDT) From: Julian Elischer <julian@elischer.org> To: David Xu <davidxu@freebsd.org> Cc: cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/i386/i386 sys_machdep.c Message-ID: <Pine.BSF.4.21.0308020929470.49760-100000@InterJet.elischer.org> In-Reply-To: <002e01c358ce$6df2ecd0$0701a8c0@tiger>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 2 Aug 2003, David Xu wrote: > > ----- Original Message ----- > From: "Julian Elischer" <julian@FreeBSD.org> > To: <src-committers@FreeBSD.org>; <cvs-src@FreeBSD.org>; <cvs-all@FreeBSD.org> > Sent: Saturday, August 02, 2003 2:52 PM > Subject: cvs commit: src/sys/i386/i386 sys_machdep.c > > > > julian 2003/08/01 23:52:36 PDT > > > > FreeBSD src repository > > > > Modified files: > > sys/i386/i386 sys_machdep.c > > Log: > > Relax the check for bad LDTE allocations. It turns out that > > there is code that blindly allocates LDTEs starting at slot 6 > > and I quess it doesn't really matter to us if they overwrite the BSDI > > syscall slot, since it isn't a BSDI binary. Also add some code to help track > > down other such users (commented out for now). > > > > Reviewed by: deischen@ > > > > Revision Changes Path > > 1.87 +21 -4 src/sys/i386/i386/sys_machdep.c > > > > The code is incorrect: > > dp = &((union descriptor *)(pldt->ldt_base))[NLDT]; > /* > * start scanning a bit up to leave room for NVidia and > * Wine, which still user the "Blat" method of allocation. > */ > for (i = NLDT + 1; i < pldt->ldt_len; ++i) { > if (dp->sd.sd_type == SDT_SYSNULL) > break; > dp++; > } > > dp is set to start from NLDT not NLDT+1, so the 'i' and 'dp' is > out of synchronous. oops If you have not already fixed it, I will after sending this.. (that's what you get from last-minute tweeks to a patch) > > And why is complaint included in DEBUG section ? > #ifdef DEBUG > /* complain a for a while if using old methods */ > if (ldt_warnings++ < NUM_LDT_WARNINGS) { > printf("Warning: pid %d used static ldt allocation.\n", > td->td_proc->p_pid); > printf("See the i386_set_ldt man page for more info\n"); > } > #endif because libthr uses it so it will always complain. Mike has said he can not fix it for a while, It sounds from his description that it is more work for libthr to use the dynamic allocator. > > -- > David Xu > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0308020929470.49760-100000>