- Fix typo in comment from previous revision.
- Fix a bug in the LDT changes where the wrong argument was passed to set_user_ldt() from cpu_switch(). The bug was passing a pointer to the ldt, but set_user_ldt() takes a pointer to the process' mdproc structure. Submitted by: bde
This commit is contained in:
parent
163fd6fb97
commit
7df8a724c2
@ -252,10 +252,11 @@ sw1b:
|
||||
movl %eax,PCPU(CURRENTLDT)
|
||||
jmp 2f
|
||||
|
||||
1: pushl %edx /* Preserver pointer to pcb. */
|
||||
pushl P_MD+MD_LDT(%eax) /* passing p_md -> set_user_ldt */
|
||||
1: pushl %edx /* Preserve pointer to pcb. */
|
||||
addl $P_MD,%eax /* Pointer to mdproc is arg. */
|
||||
pushl %eax
|
||||
call set_user_ldt /* Check and load the ldt. */
|
||||
popl %eax
|
||||
addl $4,%esp
|
||||
popl %edx
|
||||
2:
|
||||
|
||||
|
@ -252,10 +252,11 @@ sw1b:
|
||||
movl %eax,PCPU(CURRENTLDT)
|
||||
jmp 2f
|
||||
|
||||
1: pushl %edx /* Preserver pointer to pcb. */
|
||||
pushl P_MD+MD_LDT(%eax) /* passing p_md -> set_user_ldt */
|
||||
1: pushl %edx /* Preserve pointer to pcb. */
|
||||
addl $P_MD,%eax /* Pointer to mdproc is arg. */
|
||||
pushl %eax
|
||||
call set_user_ldt /* Check and load the ldt. */
|
||||
popl %eax
|
||||
addl $4,%esp
|
||||
popl %edx
|
||||
2:
|
||||
|
||||
|
@ -252,10 +252,11 @@ sw1b:
|
||||
movl %eax,PCPU(CURRENTLDT)
|
||||
jmp 2f
|
||||
|
||||
1: pushl %edx /* Preserver pointer to pcb. */
|
||||
pushl P_MD+MD_LDT(%eax) /* passing p_md -> set_user_ldt */
|
||||
1: pushl %edx /* Preserve pointer to pcb. */
|
||||
addl $P_MD,%eax /* Pointer to mdproc is arg. */
|
||||
pushl %eax
|
||||
call set_user_ldt /* Check and load the ldt. */
|
||||
popl %eax
|
||||
addl $4,%esp
|
||||
popl %edx
|
||||
2:
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user