From: Linus Torvalds (torvalds@klaava.Helsinki.FI)
Date: 04/11/93


From: torvalds@klaava.Helsinki.FI (Linus Torvalds)
Subject: [SOLUTION] Re: DOSEMU dies with 0.99.8
Date: Sun, 11 Apr 1993 11:58:21 GMT

In article <heiko.734524559@hathi> heiko@hathi.informatik.rwth-aachen.de (Heiko Schroeder) writes:
>I just upgraded to Linux 0.99.8 and found that the DOS emulator doesn't work
>anymore. It just hangs before booting. If you let it put the debug messages
>to the tty it runs on, it works all right.
>
>Anybody has a solution ?

Yes. Apply these diffs - there is a bug in signal handling in vm86 mode
in pl8 that results in bad signal blocking masks. These diffs should
fix that, along with a 'access()' problem over NFS.

Over to a different subject:

The diffs also introduce the 'clone()' system call that I have been
thinking about for some time, but this one is only useful for testing
purposes until there is more user-level support for it. It should be
possible to implement asynchronous IO using this using the 'clone()'
system call to create new threads to do the IO etc. If anybody is
interested in creating a threads library for this, feel free..

The semantics of 'clone()' are the same as for 'fork()' - the system
call creates a new process that shares the same process space as the old
one. 'clone()' gets one parameter: top of stack for the new process.
Note that upon return from the 'clone()' call, you should be very
careful not to mess around with the same memory in both processes: it
needs some assembly language wrappers etc. If you are serious about
doing a thread library using this, mail me for details.

                Linus

========== snip snip ==========
begin 644 ALPHA-diff.z
M'XL( +4MR"L" .U:ZW>;QA+_+/T5>YTFA8!LH;?DQHW;*FUN'#O'3M,//3T<
M!(O$-:_+@FRWS?]^9V87!'HD;D[[[>8X!F9W9I=Y_F:Q%_@^ZQ2LD[%P.CV>
MG(1!7-R?^.+$#T)NY\XBY,<NVTMM=SJ=3W&UWA><729K9G69U9L-![-AGUG3
M::]M&,9^D:V;(F;G:<8LBW6[L]YXUB.6?OOE2]:9FB-F3$VKQUZ^;+,V$WE6
MN#E# 6PCY=?+:_O5ZXOY;Z<PQRAB$2QC[K$PB9>U6780![G6'!6YD^4F:Q)Y
M[.EMXX^VT8IX)'BN;62875,$O_/$K]%T_12F9CPOLE@*A.>/;:.YV^=LR7.;
M1VG^8 ,AU=9) ,NP/]JL%<0Y"T[;WD'+)"F/ZS:1S_NL(4=:[U<%>^N04JWI
MK#^=]292J0T[J,FOLH LP*:LUY_UK5FW9@%K-#9!BJ&N:(96^;(9%Z>X?3M*
M/,Y>L""&:^=,/N,(3$"R''_&NN/Q^+3=:05ID6LT62=^GVEND64\SCMG1>"Q
M%S51!6FI1:+.SEZP$7+P4'"&;$%L+[.D2.U4JSB6P-%@Z:-]]JRIX81G##>G
MXYIT4WN]+DX\>?X)NX@BY5G=,(JPSS)JB$*$M#UBO>YL"/[>W6.:<O:-D\OH
MZ-+L22,Z!H.1.68&7D;2,LKCB-M>A(E["XXG%J>;(5(!$.F*\=+9X^6L:[*]
M?L[*R;45ZK-K9#G==^,\I,BSD2BT2OMOS_]]=:U=7UV]MW^8?R #]'0(AP/:
M#F(W+#Q>Z?-XQ0X-[&A_=\H>*UC;5MC#5;>&-;.:D=*S3* ;\H+6 "UGW$VB
M%%3HL3QAN7,+::L(0^9X:R?.G25GB<_R%6<QOX-EHR 7Q\?(>=)F3XK8XSZ#
MW';U;G[9[CR!IR#F)8'UAJ.VL8<(+LN\)/XZ9^[*B6&)#O,]&XS&>.XRCT/0
M>RR)8=E T$(-T:\OKWZ8D^PZ%;,K9/1)8\%J*JY(TL0J*4*/+3A;!,LESX#J
MQ!4_K&7LD5EQNS#WCH-V@#]T,N2';3KEO7@0.8^D:C92;GY^-[]FUJA!_.G\
MYB<VG8X;1%S/OKCZ_LT-Z_?(8I#2H+S [[$J+_P^YQ#XF)K9HO!]\&4J&I2K
M3ZOQ9KF@2/I+Q07RT5Y)7UBK,(JK%Y5AY>B0WBI^'9[UL[.)7IL&QE/3'/U9
M]][W]<=%7A0=B#P<^$SDX12J-E2:IJP+ 32869-/1QYQU5""-9@!4.B.:RBA
M1S"AI^Q8MZ*?<6ZG$&A2KT)3:3!WQ*VM[L']Q&W-O,3HAMS)_BHG%G(W21\^
MSP?Q7G,#X@-[\L<RUA<LXLA))6.&\;[E-GZ61-M>@]EZ2TK&_[*4/-DGUR1Q
MD;.CF-\YR/B2G38D/LI)(54<\%(:^8R;TIS6+[ %]-,^>-QPUAU!\?VTGTJV
M+4>%GTFM1*"?]LQ)61Y^63VP0&"JI@3H,, 2F 2^96P>_[<(L@!4$ 6Q!U6A
MJ@N;) HKVN0V=.<GV2VBSIK*D0R)OTBU+5O@ +^'%+.'CG*03NAO,$"$80'"
MD)O&"6F6P"9-*3UW<E_(>[_^$ "XS"(U"2H_U!XG#$TI ?Z'R=(L]Q?D0<0S
M^;AL/H*[H]3J(:2G=OGH-P:+V(EXM;S:X1J+8)$JLA>J">MH,C+;';R]<X)\
MH#9SYZ2)[YOE+H/83Q1GZI9O^1"K6W!4!14_0BS_/:),*4B:]2.E=JB/-PE4
M1E755\Z:(YKP$N;$#X!:,P[!$1=.R(K4<W+P&?06\A6T*90^D(C:1S!> C5<
M T@*VIV4:"^VTSQ[;)@5<2!R[T"DE8.?";9R6B/>!AAO_?ZGXZWBK(=<?S:
MGT&M?^DA.#;P(JM#&3RV#8H!4[1:EC5&#!(G@(ZC-.01-"*PF0= 3'6P00QD
M,F29/)JE,BVR33?12X-D9QCH=6OX ZW&LRQ.T/P'+1'D)Y$3;/K"&F6/SJNQ
M>KL'Z@)=]T:[BMY,W^E AM-:0AL/*:7!16H7^X,D>[ )K*"[N2*P/;Z6@*8^
M:*H'A6">P#7P=P74T-5A;F.;:QM)?6)A9)63PN3.WC=Q+U<='A(!DU;U>,!H
MMV!='IY@AJW,UJ#M&*XQNHV=^I4M-J9K,FQ5H]%L,*RW]A0956"H\&+?U"4=
MK\YVAQ"2[2%#.()OXY"Q/50&ZQEAU6K0$=&)X$L,GRV)-$*('P=PNT/:[G!L
M3J6GJ=3;F9__>/[Z$DSPL5X;7]_8WU]<7<Z9EF3!TN;./7:8FYC3-U,)L:TC
M+04T7+)]NP/'9MO 3@>&%A;<D^=4S-D5M,)4Q^$'>SH,((:&Z&1) 6F9'[/7
MA \#+B>HC@;JJ<N%("%8);((DCAT/AHBOU_C[#<=$KW'H% *R/"J740.)WL
MW+8$S?),H'!IUBZU-99EJ9K=2CMGN1#'W ,=,/A]6J,MB+9HT$2*-)'2N8F_
M48K>@G^0]D@WFHXG6J+J7B%*W%NV=D+HK+'3:VV):RZQD+2TL6Q RP9UFD<T
M+U!PI-<G.-*;END&MQ<Z(K<))1>">S9H;X6V5D=*=*)CV^!/MJT=N2%L^93Y
ML< J^K2+]YG(DPSNCV:SH^B(:6KMH#\9RT,,(,A@L.DER0E@6WB@5_47VH^O
MWMEOYM>7\PN=SKA@8__:R_CGG[L]0JKCT8?Q""[R4YV.#5NE?\!>+G^^N,"M
MMJ[G;Z\^0)_[^O+-#<PDVF:3^T1_-ETA'G?"[8154@^EK'*\<=32@]I\.&E5
M+,V*WH>:4T];@SZD ,OUE;C7D)8A&%IX&GPW\X9_#:;7<5S]-;<=CPOD\U%
MDF+$"6JE.]3_-4"91H)!0+;=GR2AAXW)-KF(T14AQT!N,&"Y]W0Z@N$"\2HZ
M9Q@3?,WQ$"8IEJL-N'/<'(!<^," 'U<D,PD$%H#_#0JL"MA_\>Y@=3IY-LI#
MP32W<5]T8+44$/9TH+U$O*AM3]'9,UH+/:LZM:43/Q#_HER2/6/V=WC8<O[=
MQ?Q4B9/O7:66VC'K1XES55D:4I"/^RK((>/@Z95*?4<Q)LCP2"4<P4&+BP>9
M3\E_ "#' /,S0F*MM( @%3:^MU;MP;"&SP=F'J4VJN(4<UJ:@!8%G=*A))2M
M,'1#A%2SXC0LX"5F)X/.(\<#KZ1:GG)VU2& I$Y#4K>2TE-2H'9D7E-6@]]H
M\#>;9RA=I;BA7I>\M?_2(\H9?;6VX&X"^]WWRDT06W$.I-XV.XR+:,$S)0%'
MJ$]!Q_?QC9A U0*8O,/3/7P_/.\#H!9"!$JE X.W*6@HA_QA,B%_F([^.7\8
M_=\=_E%W:$C@06IN=B<75$R8D0'8(,]G:I+J7X]OV 'ZP;I4S6BTG'V$TU;W
M4&7:,#5K$YX+U;^6C0>$O<:#$J"XT!ZRK[JFFQ30(F;:4T"B@*.>,$6 *?_A
M^"7-77&O"#DV),DZ9"JCROGF4^[>8Y>#(W@/A,5]"\50E)7I%P()!Q!T-IP_
MB)<@%[I5R0WW2%53ZDO 9N(R;FQI$Q6#7?D5<&*57P%[,\ :-^^OKN?V^<5%
MFQT[(;"Q0;O)/L,/3'+;(J5MD^.+5<C40\X%[.NK#V_MM^<W;\SYJXOS'V\T
M'-0WKTR\I(.2EQX.\;KWNGJ7]61D-]^G7+ZAX9K@!:H!C<UL+U&\Z,%)6HUN
M[DDY4WE(-JV:8,F-IK%I?0 ;E6%Q.1-?B*)"+NG<_[V[.A [470BN]@*R]4H
M._%2&]MN/$>S[L[GLOKTK;83PZ06(\.>]"6X]M47Y5S<2M#M9GT$'5O)#,_2
M\,-BNK2]("N_( +3 9P/?=XZ@2*#IP ^J7>N^;3IR >4;YS1-S5DO(3/LK$
MPX#(27]]>_X.\IPF%]1_8V?,D@B]#J;E(+(J+(.W']$2".UA;.=5$#YM7@+#
M5,,&!]N0@'W#K&YO@+>&898B#$.O(#QVI-0P:.6H_,:ZNR/\FP)HQ0(/' _/
M(^CO$4HPNONE09<TV<Q1NT$#E$><LC]E';9(\A6)4"3@N,,"+H\D@9??._CY
M&<L]BA&8D917 ;F&6=.QDL)"U@#&EC'E?.H9::Y>)P)W'@J /*AF\/=00XS
MV:) _/!U&)(,J/4-5/S(3RCXS4;^?4?3-J5A$/W*>U9Y5^4JZK!IGY,8!@YN
0N7(E=!_<_1\^5TW,C", "CX
 
end