Use correct virtual address when configuring the per CPU idle page directory
for a vm86 call under SMP.
This commit is contained in:
parent
6d07e4c64d
commit
8fce521a54
@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)locore.s 7.3 (Berkeley) 5/13/91
|
||||
* $Id: locore.s,v 1.111 1998/07/27 16:45:01 jlemon Exp $
|
||||
* $Id: locore.s,v 1.112 1998/08/03 21:31:32 msmith Exp $
|
||||
*
|
||||
* originally from: locore.s, by William F. Jolitz
|
||||
*
|
||||
@ -925,6 +925,9 @@ map_read_write:
|
||||
movl R(cpu0pp), %eax
|
||||
movl R(_IdlePTD), %ecx
|
||||
movl %ecx,GD_MY_IDLEPTD(%eax)
|
||||
/* Initialize IdlePTDS[0] */
|
||||
addl $KERNBASE, %ecx
|
||||
movl %ecx, R(CNAME(IdlePTDS))
|
||||
|
||||
#endif /* SMP */
|
||||
|
||||
|
@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)locore.s 7.3 (Berkeley) 5/13/91
|
||||
* $Id: locore.s,v 1.111 1998/07/27 16:45:01 jlemon Exp $
|
||||
* $Id: locore.s,v 1.112 1998/08/03 21:31:32 msmith Exp $
|
||||
*
|
||||
* originally from: locore.s, by William F. Jolitz
|
||||
*
|
||||
@ -925,6 +925,9 @@ map_read_write:
|
||||
movl R(cpu0pp), %eax
|
||||
movl R(_IdlePTD), %ecx
|
||||
movl %ecx,GD_MY_IDLEPTD(%eax)
|
||||
/* Initialize IdlePTDS[0] */
|
||||
addl $KERNBASE, %ecx
|
||||
movl %ecx, R(CNAME(IdlePTDS))
|
||||
|
||||
#endif /* SMP */
|
||||
|
||||
|
@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)locore.s 7.3 (Berkeley) 5/13/91
|
||||
* $Id: locore.s,v 1.111 1998/07/27 16:45:01 jlemon Exp $
|
||||
* $Id: locore.s,v 1.112 1998/08/03 21:31:32 msmith Exp $
|
||||
*
|
||||
* originally from: locore.s, by William F. Jolitz
|
||||
*
|
||||
@ -925,6 +925,9 @@ map_read_write:
|
||||
movl R(cpu0pp), %eax
|
||||
movl R(_IdlePTD), %ecx
|
||||
movl %ecx,GD_MY_IDLEPTD(%eax)
|
||||
/* Initialize IdlePTDS[0] */
|
||||
addl $KERNBASE, %ecx
|
||||
movl %ecx, R(CNAME(IdlePTDS))
|
||||
|
||||
#endif /* SMP */
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: vm86bios.s,v 1.3 1998/07/27 16:45:05 jlemon Exp $
|
||||
* $Id: vm86bios.s,v 1.4 1998/09/10 12:16:06 yokota Exp $
|
||||
*/
|
||||
|
||||
#include "opt_vm86.h"
|
||||
@ -132,12 +132,14 @@ ENTRY(vm86_bioscall)
|
||||
movl %cr3,%eax
|
||||
pushl %eax /* save address space */
|
||||
#ifdef SMP
|
||||
movl _cpuid, %ecx
|
||||
movl CNAME(IdlePTDS)(,%ecx,4), %ebx
|
||||
movl _my_idlePTD,%ecx
|
||||
#else
|
||||
movl _IdlePTD,%ecx
|
||||
#endif
|
||||
movl %ecx,%ebx
|
||||
addl $KERNBASE,%ebx /* va of Idle PTD */
|
||||
#endif
|
||||
movl 0(%ebx),%eax
|
||||
pushl %eax /* old ptde != 0 when booting */
|
||||
pushl %ebx /* keep for reuse */
|
||||
|
Loading…
Reference in New Issue
Block a user