It is useless now since gs can always stand in for data_offset.

Move active_mm into the available slot in order to not upset the
established offsets.

Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]>

---
 arch/x86/kernel/asm-offsets_64.c |    1 -
 arch/x86/kernel/entry_64.S       |    7 ++-----
 arch/x86/kernel/setup64.c        |    2 --
 include/asm-x86/pda.h            |    4 +---
 4 files changed, 3 insertions(+), 11 deletions(-)

Index: linux-2.6/arch/x86/kernel/asm-offsets_64.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/asm-offsets_64.c     2007-11-19 
15:45:03.902390058 -0800
+++ linux-2.6/arch/x86/kernel/asm-offsets_64.c  2007-11-19 16:13:29.241640104 
-0800
@@ -56,7 +56,6 @@ int main(void)
        ENTRY(irqcount);
        ENTRY(cpunumber);
        ENTRY(irqstackptr);
-       ENTRY(data_offset);
        BLANK();
 #undef ENTRY
 #ifdef CONFIG_IA32_EMULATION
Index: linux-2.6/arch/x86/kernel/entry_64.S
===================================================================
--- linux-2.6.orig/arch/x86/kernel/entry_64.S   2007-11-19 15:45:03.910390570 
-0800
+++ linux-2.6/arch/x86/kernel/entry_64.S        2007-11-19 16:13:29.241640104 
-0800
@@ -734,18 +734,15 @@ END(spurious_interrupt)
        swapgs
        xorl  %ebx,%ebx
 1:
-       .if \ist
-       movq    %gs:pda_data_offset, %rbp
-       .endif
        movq %rsp,%rdi
        movq ORIG_RAX(%rsp),%rsi
        movq $-1,ORIG_RAX(%rsp)
        .if \ist
-       subq    $EXCEPTION_STKSZ, per_cpu__init_tss + TSS_ist + (\ist - 1) * 
8(%rbp)
+       subq    $EXCEPTION_STKSZ, %gs: per_cpu__init_tss + TSS_ist
        .endif
        call \sym
        .if \ist
-       addq    $EXCEPTION_STKSZ, per_cpu__init_tss + TSS_ist + (\ist - 1) * 
8(%rbp)
+       addq    $EXCEPTION_STKSZ, %gs: per_cpu__init_tss + TSS_ist
        .endif
        cli
        .if \irqtrace
Index: linux-2.6/arch/x86/kernel/setup64.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/setup64.c    2007-11-19 16:06:50.162390389 
-0800
+++ linux-2.6/arch/x86/kernel/setup64.c 2007-11-19 16:13:29.245640006 -0800
@@ -103,8 +103,6 @@ void __init setup_per_cpu_areas(void)
        printk(KERN_INFO "PERCPU: Allocating %lu bytes of per cpu data\n",
                                        PERCPU_ENOUGH_ROOM);
        for_each_cpu_mask (i, cpu_possible_map) {
-               cpu_pda(i)->data_offset = cpu_offset(i);
-
                memcpy(CPU_PTR(base, i), __load_per_cpu_start,
                                __per_cpu_end - __per_cpu_start);
 
Index: linux-2.6/include/asm-x86/pda.h
===================================================================
--- linux-2.6.orig/include/asm-x86/pda.h        2007-11-19 16:06:15.301390091 
-0800
+++ linux-2.6/include/asm-x86/pda.h     2007-11-19 16:13:29.245640006 -0800
@@ -10,8 +10,7 @@
 /* Per processor datastructure. %gs points to it while the kernel runs */ 
 struct x8664_pda {
        struct task_struct *pcurrent;   /* 0  Current process */
-       unsigned long data_offset;      /* 8 Per cpu data offset from linker
-                                          address */
+       struct mm_struct *active_mm;
        unsigned long kernelstack;  /* 16 top of kernel stack for current */
        unsigned long oldrsp;       /* 24 user rsp for system call */
         int irqcount;              /* 32 Irq nesting counter. Starts with -1 */
@@ -27,7 +26,6 @@ struct x8664_pda {
        unsigned int __nmi_count;       /* number of NMI on this CPUs */
        short mmu_state;
        short isidle;
-       struct mm_struct *active_mm;
        unsigned apic_timer_irqs;
        unsigned irq0_irqs;
        unsigned irq_resched_count;

-- 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to