diff options
-rw-r--r-- | sys/amd64/amd64/apic_vector.S | 3 | ||||
-rw-r--r-- | sys/i386/i386/apic_vector.s | 3 | ||||
-rw-r--r-- | sys/i386/isa/apic_vector.s | 3 |
3 files changed, 9 insertions, 0 deletions
diff --git a/sys/amd64/amd64/apic_vector.S b/sys/amd64/amd64/apic_vector.S index bb0055f..fb6464e 100644 --- a/sys/amd64/amd64/apic_vector.S +++ b/sys/amd64/amd64/apic_vector.S @@ -467,10 +467,12 @@ IDTVEC(cpustop) pushl %ecx pushl %edx pushl %ds /* save current data segment */ + pushl %es pushl %fs movl $KDSEL, %eax mov %ax, %ds /* use KERNEL data segment */ + mov %ax, %es movl $KPSEL, %eax mov %ax, %fs @@ -507,6 +509,7 @@ IDTVEC(cpustop) call *%eax 2: popl %fs + popl %es popl %ds /* restore previous data segment */ popl %edx popl %ecx diff --git a/sys/i386/i386/apic_vector.s b/sys/i386/i386/apic_vector.s index bb0055f..fb6464e 100644 --- a/sys/i386/i386/apic_vector.s +++ b/sys/i386/i386/apic_vector.s @@ -467,10 +467,12 @@ IDTVEC(cpustop) pushl %ecx pushl %edx pushl %ds /* save current data segment */ + pushl %es pushl %fs movl $KDSEL, %eax mov %ax, %ds /* use KERNEL data segment */ + mov %ax, %es movl $KPSEL, %eax mov %ax, %fs @@ -507,6 +509,7 @@ IDTVEC(cpustop) call *%eax 2: popl %fs + popl %es popl %ds /* restore previous data segment */ popl %edx popl %ecx diff --git a/sys/i386/isa/apic_vector.s b/sys/i386/isa/apic_vector.s index bb0055f..fb6464e 100644 --- a/sys/i386/isa/apic_vector.s +++ b/sys/i386/isa/apic_vector.s @@ -467,10 +467,12 @@ IDTVEC(cpustop) pushl %ecx pushl %edx pushl %ds /* save current data segment */ + pushl %es pushl %fs movl $KDSEL, %eax mov %ax, %ds /* use KERNEL data segment */ + mov %ax, %es movl $KPSEL, %eax mov %ax, %fs @@ -507,6 +509,7 @@ IDTVEC(cpustop) call *%eax 2: popl %fs + popl %es popl %ds /* restore previous data segment */ popl %edx popl %ecx |