x86: unify tss_struct
Although slighly different, the tss_struct is very similar in x86_64 and i386. The really different part, which matchs the hardware vision of it, is now called x86_hw_tss, and each of the architectures provides yours. It's then used as a field in the outter tss_struct. Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:

committed by
Ingo Molnar

parent
0ccb8acc51
commit
ca241c7503
@@ -110,7 +110,7 @@ int main(void)
|
||||
ENTRY(cr8);
|
||||
BLANK();
|
||||
#undef ENTRY
|
||||
DEFINE(TSS_ist, offsetof(struct tss_struct, ist));
|
||||
DEFINE(TSS_ist, offsetof(struct tss_struct, x86_tss.ist));
|
||||
BLANK();
|
||||
DEFINE(crypto_tfm_ctx_offset, offsetof(struct crypto_tfm, __crt_ctx));
|
||||
BLANK();
|
||||
|
@@ -33,7 +33,7 @@ static void doublefault_fn(void)
|
||||
printk(KERN_EMERG "double fault, tss at %08lx\n", tss);
|
||||
|
||||
if (ptr_ok(tss)) {
|
||||
struct i386_hw_tss *t = (struct i386_hw_tss *)tss;
|
||||
struct x86_hw_tss *t = (struct x86_hw_tss *)tss;
|
||||
|
||||
printk(KERN_EMERG "eip = %08lx, esp = %08lx\n",
|
||||
t->ip, t->sp);
|
||||
|
@@ -639,7 +639,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
|
||||
/*
|
||||
* Reload esp0, LDT and the page table pointer:
|
||||
*/
|
||||
tss->sp0 = next->sp0;
|
||||
tss->x86_tss.sp0 = next->sp0;
|
||||
|
||||
/*
|
||||
* Switch DS and ES.
|
||||
|
@@ -258,10 +258,10 @@ void __cpuinit cpu_init (void)
|
||||
v, cpu);
|
||||
}
|
||||
estacks += PAGE_SIZE << order[v];
|
||||
orig_ist->ist[v] = t->ist[v] = (unsigned long)estacks;
|
||||
orig_ist->ist[v] = t->x86_tss.ist[v] = (unsigned long)estacks;
|
||||
}
|
||||
|
||||
t->io_bitmap_base = offsetof(struct tss_struct, io_bitmap);
|
||||
t->x86_tss.io_bitmap_base = offsetof(struct tss_struct, io_bitmap);
|
||||
/*
|
||||
* <= is required because the CPU will access up to
|
||||
* 8 bits beyond the end of the IO permission bitmap.
|
||||
|
@@ -614,7 +614,7 @@ do_rest:
|
||||
start_rip = setup_trampoline();
|
||||
|
||||
init_rsp = c_idle.idle->thread.sp;
|
||||
per_cpu(init_tss,cpu).sp0 = init_rsp;
|
||||
per_cpu(init_tss, cpu).x86_tss.sp0 = init_rsp;
|
||||
initial_code = start_secondary;
|
||||
clear_tsk_thread_flag(c_idle.idle, TIF_FORK);
|
||||
|
||||
|
Reference in New Issue
Block a user