mirror of
https://github.com/reactos/reactos.git
synced 2024-10-02 07:26:47 +00:00
[NTOS]: Always set correct segments; the if/else branch should decide which segments to save, not whether or not to set the sane ones. Fixes boot on VirtualBox and real hardware.
svn path=/trunk/; revision=45357
This commit is contained in:
parent
95b2e7519e
commit
c40a4a58a0
|
@ -654,11 +654,13 @@ KiEnterInterruptTrap(IN PKTRAP_FRAME TrapFrame)
|
|||
TrapFrame->SegGs = Ke386GetGs();
|
||||
TrapFrame->SegDs = Ke386GetDs();
|
||||
TrapFrame->SegEs = Ke386GetEs();
|
||||
Ke386SetFs(KGDT_R0_PCR);
|
||||
Ke386SetDs(KGDT_R3_DATA | RPL_MASK);
|
||||
Ke386SetEs(KGDT_R3_DATA | RPL_MASK);
|
||||
}
|
||||
|
||||
/* Set correct segments */
|
||||
Ke386SetFs(KGDT_R0_PCR);
|
||||
Ke386SetDs(KGDT_R3_DATA | RPL_MASK);
|
||||
Ke386SetEs(KGDT_R3_DATA | RPL_MASK);
|
||||
|
||||
/* Save exception list and terminate it */
|
||||
TrapFrame->ExceptionList = KeGetPcr()->Tib.ExceptionList;
|
||||
KeGetPcr()->Tib.ExceptionList = EXCEPTION_CHAIN_END;
|
||||
|
|
Loading…
Reference in a new issue