Subject: None
To: None <current-users>
From: Charles Hannum <mycroft>
List: current-users
Date: 04/23/1994 17:22:08
A couple of people noted problems with the USER_LDT handling  and WINE
recently.  I just fixed this.  A copy of the completed PR follows, for
anyone who cares.

>Number:         232
>Category:       port-i386
>Synopsis:       USER_LDT broken; running test_ldt repeatedly can cause crash
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    mycroft
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Apr 23 16:20:01 1994
>Originator:     John Brezak

 John Brezak                    UUCP:     uunet!apollo.hp!brezak
 Hewlett Packard/Apollo         Internet:
 300 Apollo Drive               Phone:    (508) 436-4915
 Chelmsford, Massachusetts      Fax:      (508) 436-5103
>Release:        current 4/17
System: NetBSD sussex 0.9a ESSEX#16 i386

	Running testldt repeately can lead to a panic. It may suceed the
	first time, the second time it may core dump and the third
	cause a panic.

	run the test in regress.

I believe the panic was fixed on 4/18, with the following commit to
locore.s, but I haven't yet investigated the problem of testldt core
dumping.  - mycroft, 23APR1994
revision 1.64
date: 1994/04/18 01:24:09;  author: mycroft;  state: Exp;  lines: +10 -5
Restore the stack before the LDT.

The i386_set_ldt() code tries to force a LDT reload by scheduling a task
switch.  But given the short-circuiting in swtch() when switching to the
same task, this will sometimes not happen.  The proper fix is to have
i386_set_ldt() reload the LDT before returning.  - mycroft, 23APR1994

Responsible-Changed-From-To: gnats-admin->mycroft 
Responsible-Changed-By: mycroft 
Responsible-Changed-When: Sat Apr 23 16:33:51 PDT 1994 
State-Changed-From-To: open-closed 
State-Changed-By: mycroft 
State-Changed-When: Sat Apr 23 17:17:52 PDT 1994