]> git.hungrycats.org Git - linux/commitdiff
[PATCH] More 2.5.6 sync up.
authorDavid Mosberger <davidm@hpl.hp.com>
Wed, 13 Mar 2002 07:49:21 +0000 (23:49 -0800)
committerDavid Mosberger <davidm@wailua.hpl.hp.com>
Wed, 13 Mar 2002 07:49:21 +0000 (23:49 -0800)
Take advantage of new per-CPU scheme.

arch/ia64/ia32/ia32_entry.S
arch/ia64/kernel/entry.S
arch/ia64/kernel/ia64_ksyms.c
arch/ia64/kernel/ivt.S

index 3730d4a43100af48adc60061790b189a56f5d45c..f3e7e950b7ac0a61b9a2f5cda429946e146dbee8 100644 (file)
@@ -1,6 +1,7 @@
 #include <asm/asmmacro.h>
 #include <asm/offsets.h>
 #include <asm/signal.h>
+#include <asm/thread_info.h>
 
 #include "../kernel/minstate.h"
 
@@ -87,18 +88,21 @@ END(sys32_sigsuspend)
 
 GLOBAL_ENTRY(ia32_ret_from_clone)
        PT_REGS_UNWIND_INFO(0)
+#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT)
        /*
         * We need to call schedule_tail() to complete the scheduling process.
         * Called by ia64_switch_to after do_fork()->copy_thread().  r8 contains the
         * address of the previously executing task.
         */
        br.call.sptk.many rp=ia64_invoke_schedule_tail
-.ret1: adds r2=IA64_TASK_PTRACE_OFFSET,r13
+.ret1:
+#endif
+       adds r2=TI_FLAGS+IA64_TASK_SIZE,r13
        ;;
-       ld8 r2=[r2]
+       ld4 r2=[r2]
        ;;
        mov r8=0
-       tbit.nz p6,p0=r2,PT_SYSCALLTRACE_BIT
+       tbit.nz p6,p0=r2,TIF_SYSCALL_TRACE
 (p6)   br.cond.spnt .ia32_strace_check_retval
        ;;                                      // prevent RAW on r8
 END(ia32_ret_from_clone)
index 7dc861c45a3c0fda830e2370003857a674fb2860..a32530a033a62f878e38e612dd8f96a0e5395450 100644 (file)
@@ -622,7 +622,7 @@ GLOBAL_ENTRY(ia64_leave_kernel)
        shr.u r18=r19,16        // get byte size of existing "dirty" partition
        ;;
        mov r16=ar.bsp          // get existing backing store pointer
-       movl r17=PERCPU_ADDR+IA64_CPU_PHYS_STACKED_SIZE_P8_OFFSET
+       movl r17=THIS_CPU(ia64_phys_stacked_size_p8)
        ;;
        ld4 r17=[r17]           // r17 = cpu_data->phys_stacked_size_p8
 (pKern)        br.cond.dpnt skip_rbs_switch
@@ -758,6 +758,7 @@ ENTRY(handle_syscall_error)
        br.cond.sptk ia64_leave_kernel
 END(handle_syscall_error)
 
+#ifdef CONFIG_SMP
        /*
         * Invoke schedule_tail(task) while preserving in0-in7, which may be needed
         * in case a system call gets restarted.
@@ -774,6 +775,8 @@ GLOBAL_ENTRY(ia64_invoke_schedule_tail)
        br.ret.sptk.many rp
 END(ia64_invoke_schedule_tail)
 
+#endif /* CONFIG_SMP */
+
 #if __GNUC__ < 3
 
        /*
index 55b9faf7d4ef2fe0de420f2b0cc118fe25f9f69a..fb2a770c7cf4210ff51135f1a4058054bb3ef427 100644 (file)
@@ -59,7 +59,7 @@ EXPORT_SYMBOL(clear_page);
 
 #include <asm/processor.h>
 # ifndef CONFIG_NUMA
-EXPORT_SYMBOL(_cpu_data);
+EXPORT_SYMBOL(cpu_info);
 # endif
 EXPORT_SYMBOL(kernel_thread);
 
index 7cdd0e1d8ea2b5dcf2466aa41d20c86f9470cb2b..18a9d647069fa4eb9363d904cbbc3b402803da55 100644 (file)
@@ -645,7 +645,6 @@ ENTRY(break_fault)
 
        mov r3=255
        adds r15=-1024,r15                      // r15 contains the syscall number---subtract 1024
-       adds r2=IA64_TASK_PTRACE_OFFSET,r13     // r2 = &current->ptrace
        ;;
        cmp.geu p6,p7=r3,r15            // (syscall > 0 && syscall <= 1024+255) ?
        movl r16=sys_call_table