summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/amd64/amd64/apic_vector.S3
-rw-r--r--sys/i386/i386/apic_vector.s3
-rw-r--r--sys/i386/isa/apic_vector.s3
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
OpenPOWER on IntegriCloud