x86/irqs: move interrupt-stub generation out of C
authorAndrew Cooper <andrew.cooper3@citrix.com>
Mon, 19 May 2014 12:24:04 +0000 (14:24 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 19 May 2014 12:24:04 +0000 (14:24 +0200)
commite9706ae4cf6beb680583714f51ef8064fb2648b5
tree53e4c74bda89bc75b88568856d6e86629040fb59
parent535d6825612f33779c35b979fe2847b8d4c9ec8d
x86/irqs: move interrupt-stub generation out of C

In addition, generate stubs for reserved exceptions.  These go through the
standard handle_exception mechanism, although the C handler do_reserved_trap()
is a terminal error path.

 * Move all automatic stub generation out of i8259.c and into entry.S.
 * Move patching of the master IDT into trap_init(). Provide ASSERT()s to
   ensure we have fully populated the IDT and don't accidentally clobbered any
   preexisting traps.
 * Demote TRAP_copro_seg and TRAP_spurious_int to being reserved exceptions
   and remove their custom entry points.
 * Point double_fault's exception_table entry at do_reserved_trap.  We do not
   ever expect to enter a real double fault this way.
 * Acquaint Xen with #VE but leave it reserved.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/i8259.c
xen/arch/x86/traps.c
xen/arch/x86/x86_64/entry.S
xen/include/asm-x86/asm_defns.h
xen/include/asm-x86/processor.h