diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2007-08-07 13:07:25 +0000 |
---|---|---|
committer | Thomas Schwinge <tschwinge@gnu.org> | 2009-06-18 00:27:12 +0200 |
commit | e44a3dddf93d9ac15eea6bd323a2308b0ea6d493 (patch) | |
tree | b4bb152d34e2a410f55cd1e3aafdd7f6b8c891cf /i386/i386/db_interface.c | |
parent | baf29c7a7fe74d8ca799c869440f7b7cd5a33b8a (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.c | 10 |
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(); |