Since END()/ENDPROC() are now available, add respective annotations to
i386's entry.S. This should help debugging activities.
Signed-off-by: Jan Beulich <[email protected]>
diff -Npru /home/jbeulich/tmp/linux-2.6.17-rc3/arch/i386/kernel/entry.S
2.6.17-rc3-i386-asm-types-sizes/arch/i386/kernel/entry.S
--- /home/jbeulich/tmp/linux-2.6.17-rc3/arch/i386/kernel/entry.S 2006-04-28 11:47:26.000000000 +0200
+++ 2.6.17-rc3-i386-asm-types-sizes/arch/i386/kernel/entry.S 2006-04-28 12:08:19.000000000 +0200
@@ -129,6 +129,7 @@ ENTRY(ret_from_fork)
GET_THREAD_INFO(%ebp)
popl %eax
jmp syscall_exit
+END(ret_from_fork)
/*
* Return to user mode is not as complex as all this looks,
@@ -156,6 +157,7 @@ ENTRY(resume_userspace)
# int/exception return?
jne work_pending
jmp restore_all
+END(ret_from_exception)
#ifdef CONFIG_PREEMPT
ENTRY(resume_kernel)
@@ -170,6 +172,7 @@ need_resched:
jz restore_all
call preempt_schedule_irq
jmp need_resched
+END(resume_kernel)
#endif
/* SYSENTER_RETURN points to after the "sysenter" instruction in
@@ -219,6 +222,7 @@ sysenter_past_esp:
xorl %ebp,%ebp
sti
sysexit
+ENDPROC(sysenter_entry)
# system call handler stub
@@ -272,6 +276,7 @@ iret_exc:
.align 4
.long 1b,iret_exc
.previous
+ENDPROC(system_call)
ldt_ss:
larl OLDSS(%esp), %eax
@@ -297,6 +302,7 @@ ldt_ss:
.align 4
.long 1b,iret_exc
.previous
+END(ldt_ss)
# perform work that needs to be done immediately before resumption
ALIGN
@@ -336,6 +342,7 @@ work_notifysig_v86:
call do_notify_resume
jmp resume_userspace
#endif
+END(work_pending)
# perform syscall exit tracing
ALIGN
@@ -351,6 +358,7 @@ syscall_trace_entry:
cmpl $(nr_syscalls), %eax
jnae syscall_call
jmp syscall_exit
+END(syscall_trace_entry)
# perform syscall exit tracing
ALIGN
@@ -363,6 +371,7 @@ syscall_exit_work:
movl $1, %edx
call do_syscall_trace
jmp resume_userspace
+END(syscall_exit_work)
ALIGN
syscall_fault:
@@ -371,11 +380,13 @@ syscall_fault:
GET_THREAD_INFO(%ebp)
movl $-EFAULT,EAX(%esp)
jmp resume_userspace
+END(syscall_fault)
ALIGN
syscall_badsys:
movl $-ENOSYS,EAX(%esp)
jmp resume_userspace
+END(syscall_badsys)
#define FIXUP_ESPFIX_STACK \
movl %esp, %eax; \
@@ -417,6 +428,11 @@ ENTRY(irq_entries_start)
.text
vector=vector+1
.endr
+END(irq_entries_start)
+
+.data
+END(interrupt)
+.text
ALIGN
common_interrupt:
@@ -424,6 +440,7 @@ common_interrupt:
movl %esp,%eax
call do_IRQ
jmp ret_from_intr
+ENDPROC(common_interrupt)
#define BUILD_INTERRUPT(name, nr) \
ENTRY(name) \
@@ -431,7 +448,8 @@ ENTRY(name) \
SAVE_ALL \
movl %esp,%eax; \
call smp_/**/name; \
- jmp ret_from_intr;
+ jmp ret_from_intr; \
+ENDPROC(name)
/* The include is where all of the SMP etc. interrupts come from */
#include "entry_arch.h"
@@ -439,6 +457,7 @@ ENTRY(name) \
ENTRY(divide_error)
pushl $0 # no error code
pushl $do_divide_error
+END(divide_error)
ALIGN
error_code:
pushl %ds
@@ -465,16 +484,19 @@ error_code:
movl %esp,%eax # pt_regs pointer
call *%edi
jmp ret_from_exception
+ENDPROC(error_code)
ENTRY(coprocessor_error)
pushl $0
pushl $do_coprocessor_error
jmp error_code
+END(coprocessor_error)
ENTRY(simd_coprocessor_error)
pushl $0
pushl $do_simd_coprocessor_error
jmp error_code
+END(simd_coprocessor_error)
ENTRY(device_not_available)
pushl $-1 # mark this as an int
@@ -490,6 +512,7 @@ device_not_available_emulate:
call math_emulate
addl $4, %esp
jmp ret_from_exception
+END(device_not_available)
/*
* Debug traps and NMI can happen at the one SYSENTER instruction
@@ -524,6 +547,7 @@ debug_stack_correct:
movl %esp,%eax # pt_regs pointer
call do_debug
jmp ret_from_exception
+END(debug)
.previous .text
/*
* NMI is doubly nasty. It can happen _while_ we're handling
@@ -595,6 +619,7 @@ nmi_16bit_stack:
.align 4
.long 1b,iret_exc
.previous
+ENDPROC(nmi)
KPROBE_ENTRY(int3)
pushl $-1 # mark this as an int
@@ -603,52 +628,63 @@ KPROBE_ENTRY(int3)
movl %esp,%eax # pt_regs pointer
call do_int3
jmp ret_from_exception
+END(int3)
.previous .text
ENTRY(overflow)
pushl $0
pushl $do_overflow
jmp error_code
+END(overflow)
ENTRY(bounds)
pushl $0
pushl $do_bounds
jmp error_code
+END(bounds)
ENTRY(invalid_op)
pushl $0
pushl $do_invalid_op
jmp error_code
+END(invalid_op)
ENTRY(coprocessor_segment_overrun)
pushl $0
pushl $do_coprocessor_segment_overrun
jmp error_code
+END(coprocessor_segment_overrun)
ENTRY(invalid_TSS)
pushl $do_invalid_TSS
jmp error_code
+END(invalid_TSS)
ENTRY(segment_not_present)
pushl $do_segment_not_present
jmp error_code
+END(segment_not_present)
ENTRY(stack_segment)
pushl $do_stack_segment
jmp error_code
+END(stack_segment)
KPROBE_ENTRY(general_protection)
pushl $do_general_protection
jmp error_code
+END(general_protection)
.previous .text
ENTRY(alignment_check)
pushl $do_alignment_check
jmp error_code
+END(alignment_check)
KPROBE_ENTRY(page_fault)
pushl $do_page_fault
jmp error_code
+END(page_fault)
.previous .text
#ifdef CONFIG_X86_MCE
@@ -656,12 +692,14 @@ ENTRY(machine_check)
pushl $0
pushl machine_check_vector
jmp error_code
+END(machine_check)
#endif
ENTRY(spurious_interrupt_bug)
pushl $0
pushl $do_spurious_interrupt_bug
jmp error_code
+END(spurious_interrupt_bug)
.section .rodata,"a"
#include "syscall_table.S"
diff -Npru /home/jbeulich/tmp/linux-2.6.17-rc3/arch/i386/kernel/syscall_table.S
2.6.17-rc3-i386-asm-types-sizes/arch/i386/kernel/syscall_table.S
--- /home/jbeulich/tmp/linux-2.6.17-rc3/arch/i386/kernel/syscall_table.S 2006-04-28 11:47:26.000000000 +0200
+++ 2.6.17-rc3-i386-asm-types-sizes/arch/i386/kernel/syscall_table.S 2006-04-28 12:08:59.000000000 +0200
@@ -315,3 +315,4 @@ ENTRY(sys_call_table)
.long sys_splice
.long sys_sync_file_range
.long sys_tee /* 315 */
+END(sys_call_table)
-
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/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]