cvs commit: src/sys/i386/i386 sys_machdep.c

Julian Elischer julian at elischer.org
Sat Aug 2 09:34:25 PDT 2003



On Sat, 2 Aug 2003, David Xu wrote:

> 
> ----- Original Message ----- 
> From: "Julian Elischer" <julian at FreeBSD.org>
> To: <src-committers at FreeBSD.org>; <cvs-src at FreeBSD.org>; <cvs-all at 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
> 
> 



More information about the cvs-src mailing list