summaryrefslogtreecommitdiff
path: root/i386/i386/db_interface.c
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2007-08-07 13:07:25 +0000
committerThomas Schwinge <tschwinge@gnu.org>2009-06-18 00:27:12 +0200
commite44a3dddf93d9ac15eea6bd323a2308b0ea6d493 (patch)
treeb4bb152d34e2a410f55cd1e3aafdd7f6b8c891cf /i386/i386/db_interface.c
parentbaf29c7a7fe74d8ca799c869440f7b7cd5a33b8a (diff)
2007-07-09 Samuel Thibault <samuel.thibault@ens-lyon.org>
* i386/i386/db_interface.c (int_regs): Drop gs and fs fields. (kdb_kentry): Get fs and gs from struct i386_interrupt_state instead of struct int_regs. * i386/i386/kttd_interface.c (int_regs, kttd_netentry): Likewise. * i386/i386/locore.S (all_intrs): Save fs and gs and set them to kernel segment too. (return_to_iret): Restore fs and gs too. (return_to_iret_i): Likewise. (ast_from_interrupt): Set fs and gs to kernel segment too. (kdb_from_iret): Don't save/restore fs and gs either. (ttd_from_iret): Likewise. * i386/i386/thread.h (i386_interrupt_state): Add gs and fs fields. * linux/src/include/asm-i386/irq.h (SAVE_ALL): Set gs to kernel segment too.
Diffstat (limited to 'i386/i386/db_interface.c')
-rw-r--r--i386/i386/db_interface.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/i386/i386/db_interface.c b/i386/i386/db_interface.c
index cf1e1c4..b8968de 100644
--- a/i386/i386/db_interface.c
+++ b/i386/i386/db_interface.c
@@ -187,8 +187,6 @@ kdb_trap(
* instead of those at its call to KDB.
*/
struct int_regs {
- int gs;
- int fs;
int edi;
int esi;
int ebp;
@@ -227,8 +225,8 @@ kdb_kentry(
ddb_regs.edi = int_regs->edi;
ddb_regs.ds = is->ds;
ddb_regs.es = is->es;
- ddb_regs.fs = int_regs->fs;
- ddb_regs.gs = int_regs->gs;
+ ddb_regs.fs = is->fs;
+ ddb_regs.gs = is->gs;
cnpollc(TRUE);
db_task_trap(-1, 0, (ddb_regs.cs & 0x3) != 0);
@@ -250,8 +248,8 @@ kdb_kentry(
int_regs->edi = ddb_regs.edi;
is->ds = ddb_regs.ds & 0xffff;
is->es = ddb_regs.es & 0xffff;
- int_regs->fs = ddb_regs.fs & 0xffff;
- int_regs->gs = ddb_regs.gs & 0xffff;
+ is->fs = ddb_regs.fs & 0xffff;
+ is->gs = ddb_regs.gs & 0xffff;
}
#if NCPUS > 1
db_leave();