Date: Sat, 2 Aug 2003 16:16:50 +0800 From: "David Xu" <davidxu@freebsd.org> To: "Julian Elischer" <julian@freebsd.org>, <src-committers@freebsd.org>, <cvs-src@freebsd.org>, <cvs-all@freebsd.org> Subject: Re: cvs commit: src/sys/i386/i386 sys_machdep.c Message-ID: <002e01c358ce$6df2ecd0$0701a8c0@tiger> References: <200308020652.h726qaUs066611@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
----- Original Message -----=20 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 >=20 > FreeBSD src repository >=20 > Modified files: > sys/i386/i386 sys_machdep.c=20 > 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). > =20 > Reviewed by: deischen@ > =20 > Revision Changes Path > 1.87 +21 -4 src/sys/i386/i386/sys_machdep.c >=20 The code is incorrect: dp =3D &((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 =3D NLDT + 1; i < pldt->ldt_len; ++i) { if (dp->sd.sd_type =3D=3D SDT_SYSNULL) break; dp++; } dp is set to start from NLDT not NLDT+1, so the 'i' and 'dp' is out of synchronous. 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 -- David Xu
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?002e01c358ce$6df2ecd0$0701a8c0>