patch-2.4.22 linux-2.4.22/arch/ia64/ia32/ia32_entry.S

Next file: linux-2.4.22/arch/ia64/ia32/ia32_ioctl.c
Previous file: linux-2.4.22/arch/ia64/ia32/binfmt_elf32.c
Back to the patch index
Back to the overall index

diff -urN linux-2.4.21/arch/ia64/ia32/ia32_entry.S linux-2.4.22/arch/ia64/ia32/ia32_entry.S
@@ -87,12 +87,19 @@
 
 GLOBAL_ENTRY(ia32_ret_from_clone)
 	PT_REGS_UNWIND_INFO(0)
+{	/*
+	 * 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.
+	 */
+	nop.m 0
+	nop.i 0
 	/*
 	 * 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
 	;;
 	ld8 r2=[r2]

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)