]> git.hungrycats.org Git - linux/commitdiff
[PATCH] ia64: invoke schedule_tail unconditionally on ia32 emulation
authorArun Sharma <arun.sharma@intel.com>
Thu, 13 Nov 2003 05:29:19 +0000 (21:29 -0800)
committerDavid Mosberger <davidm@tiger.hpl.hp.com>
Thu, 13 Nov 2003 05:29:19 +0000 (21:29 -0800)
The #ifdef CONFIG_SMP around the call to schedule_tail was removed a
long time ago for native ia64, but ia32 emulation continues to have a
#ifdef.  We saw a bunch of weird behavior with respect to getpid() on
multithreaded programs (they behave ok on SMP, but break on UP).

arch/ia64/ia32/ia32_entry.S

index eb95ae85ce9b92e30aebcfcfd57278203c32d1d4..1230fd2b479fa78ed8a067c66026a8e4ff26c0ee 100644 (file)
@@ -90,7 +90,6 @@ END(sys32_sigsuspend)
 
 GLOBAL_ENTRY(ia32_ret_from_clone)
        PT_REGS_UNWIND_INFO(0)
-#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT)
 {      /*
         * Some versions of gas generate bad unwind info if the first instruction of a
         * procedure doesn't go into the first slot of a bundle.  This is a workaround.
@@ -105,7 +104,6 @@ GLOBAL_ENTRY(ia32_ret_from_clone)
        br.call.sptk.many rp=ia64_invoke_schedule_tail
 }
 .ret1:
-#endif
        adds r2=TI_FLAGS+IA64_TASK_SIZE,r13
        ;;
        ld4 r2=[r2]