diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-12-18 12:42:44 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-12-18 12:42:44 -0500 |
commit | 3e3b3916a9c5c28a16528585478de19fea59816b (patch) | |
tree | f7da78c1044840e62008ac7b5512b40713c342bc /include | |
parent | 51dad801e271f3754a728e5b9a2ef974576490cc (diff) | |
parent | 4aae07025265151e3f7041dfbf0f529e122de1d8 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86
* git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86:
x86: fix "Kernel panic - not syncing: IO-APIC + timer doesn't work!"
genirq: revert lazy irq disable for simple irqs
x86: also define AT_VECTOR_SIZE_ARCH
x86: kprobes bugfix
x86: jprobe bugfix
timer: kernel/timer.c section fixes
genirq: add unlocked version of set_irq_handler()
clockevents: fix reprogramming decision in oneshot broadcast
oprofile: op_model_athlon.c support for AMD family 10h barcelona performance counters
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-x86/kprobes_32.h | 2 | ||||
-rw-r--r-- | include/asm-x86/kprobes_64.h | 2 | ||||
-rw-r--r-- | include/asm-x86/system_64.h | 7 | ||||
-rw-r--r-- | include/linux/irq.h | 7 |
4 files changed, 16 insertions, 2 deletions
diff --git a/include/asm-x86/kprobes_32.h b/include/asm-x86/kprobes_32.h index b772d5b38685..9fe8f3bddfd5 100644 --- a/include/asm-x86/kprobes_32.h +++ b/include/asm-x86/kprobes_32.h | |||
@@ -73,7 +73,7 @@ struct kprobe_ctlblk { | |||
73 | unsigned long kprobe_status; | 73 | unsigned long kprobe_status; |
74 | unsigned long kprobe_old_eflags; | 74 | unsigned long kprobe_old_eflags; |
75 | unsigned long kprobe_saved_eflags; | 75 | unsigned long kprobe_saved_eflags; |
76 | long *jprobe_saved_esp; | 76 | unsigned long *jprobe_saved_esp; |
77 | struct pt_regs jprobe_saved_regs; | 77 | struct pt_regs jprobe_saved_regs; |
78 | kprobe_opcode_t jprobes_stack[MAX_STACK_SIZE]; | 78 | kprobe_opcode_t jprobes_stack[MAX_STACK_SIZE]; |
79 | struct prev_kprobe prev_kprobe; | 79 | struct prev_kprobe prev_kprobe; |
diff --git a/include/asm-x86/kprobes_64.h b/include/asm-x86/kprobes_64.h index 53f4d8507354..743d76218fc9 100644 --- a/include/asm-x86/kprobes_64.h +++ b/include/asm-x86/kprobes_64.h | |||
@@ -66,7 +66,7 @@ struct kprobe_ctlblk { | |||
66 | unsigned long kprobe_status; | 66 | unsigned long kprobe_status; |
67 | unsigned long kprobe_old_rflags; | 67 | unsigned long kprobe_old_rflags; |
68 | unsigned long kprobe_saved_rflags; | 68 | unsigned long kprobe_saved_rflags; |
69 | long *jprobe_saved_rsp; | 69 | unsigned long *jprobe_saved_rsp; |
70 | struct pt_regs jprobe_saved_regs; | 70 | struct pt_regs jprobe_saved_regs; |
71 | kprobe_opcode_t jprobes_stack[MAX_STACK_SIZE]; | 71 | kprobe_opcode_t jprobes_stack[MAX_STACK_SIZE]; |
72 | struct prev_kprobe prev_kprobe; | 72 | struct prev_kprobe prev_kprobe; |
diff --git a/include/asm-x86/system_64.h b/include/asm-x86/system_64.h index 4cb23848d460..6e9e4841a2da 100644 --- a/include/asm-x86/system_64.h +++ b/include/asm-x86/system_64.h | |||
@@ -7,6 +7,13 @@ | |||
7 | 7 | ||
8 | #ifdef __KERNEL__ | 8 | #ifdef __KERNEL__ |
9 | 9 | ||
10 | /* entries in ARCH_DLINFO: */ | ||
11 | #ifdef CONFIG_IA32_EMULATION | ||
12 | # define AT_VECTOR_SIZE_ARCH 2 | ||
13 | #else | ||
14 | # define AT_VECTOR_SIZE_ARCH 1 | ||
15 | #endif | ||
16 | |||
10 | #define __SAVE(reg,offset) "movq %%" #reg ",(14-" #offset ")*8(%%rsp)\n\t" | 17 | #define __SAVE(reg,offset) "movq %%" #reg ",(14-" #offset ")*8(%%rsp)\n\t" |
11 | #define __RESTORE(reg,offset) "movq (14-" #offset ")*8(%%rsp),%%" #reg "\n\t" | 18 | #define __RESTORE(reg,offset) "movq (14-" #offset ")*8(%%rsp),%%" #reg "\n\t" |
12 | 19 | ||
diff --git a/include/linux/irq.h b/include/linux/irq.h index efc88538b2ba..4669be080617 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
@@ -339,6 +339,13 @@ extern void | |||
339 | __set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained, | 339 | __set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained, |
340 | const char *name); | 340 | const char *name); |
341 | 341 | ||
342 | /* caller has locked the irq_desc and both params are valid */ | ||
343 | static inline void __set_irq_handler_unlocked(int irq, | ||
344 | irq_flow_handler_t handler) | ||
345 | { | ||
346 | irq_desc[irq].handle_irq = handler; | ||
347 | } | ||
348 | |||
342 | /* | 349 | /* |
343 | * Set a highlevel flow handler for a given IRQ: | 350 | * Set a highlevel flow handler for a given IRQ: |
344 | */ | 351 | */ |