diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-21 17:55:23 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-21 17:55:23 -0400 |
commit | eb4225b2da2b9f3c1ee43efe58ed1415cc1d4c47 (patch) | |
tree | 573ce3591679ffcdc179801ed86107e48e0e11ca /include/asm-ia64/hw_irq.h | |
parent | 807677f812639bdeeddf86abc66117e124eaedb2 (diff) | |
parent | 4cddb886a4d0e5cc7a790151740bfb87b568c97d (diff) |
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6: (25 commits)
mmtimer: Push BKL down into the ioctl handler
[IA64] Remove experimental status of kdump
[IA64] Update ia64 mmr list for SGI uv
[IA64] Avoid overflowing ia64_cpu_to_sapicid in acpi_map_lsapic()
[IA64] adding parameter check to module_free()
[IA64] improper printk format in acpi-cpufreq
[IA64] pv_ops: move some functions in ivt.S to avoid lack of space.
[IA64] pvops: documentation on ia64/pv_ops
[IA64] pvops: add to hooks, pv_time_ops, for steal time accounting.
[IA64] pvops: add hooks, pv_irq_ops, to paravirtualized irq related operations.
[IA64] pvops: add hooks, pv_iosapic_ops, to paravirtualize iosapic.
[IA64] pvops: define initialization hooks, pv_init_ops, for paravirtualized environment.
[IA64] pvops: paravirtualize NR_IRQS
[IA64] pvops: paravirtualize entry.S
[IA64] pvops: paravirtualize ivt.S
[IA64] pvops: paravirtualize minstate.h.
[IA64] pvops: define paravirtualized instructions for native.
[IA64] pvops: preparation for paravirtulization of hand written assembly code.
[IA64] pvops: introduce pv_cpu_ops to paravirtualize privileged instructions.
[IA64] pvops: add an early setup hook for pv_ops.
...
Diffstat (limited to 'include/asm-ia64/hw_irq.h')
-rw-r--r-- | include/asm-ia64/hw_irq.h | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/include/asm-ia64/hw_irq.h b/include/asm-ia64/hw_irq.h index 76366dc9c1a0..5c99cbcb8a0d 100644 --- a/include/asm-ia64/hw_irq.h +++ b/include/asm-ia64/hw_irq.h | |||
@@ -15,7 +15,11 @@ | |||
15 | #include <asm/ptrace.h> | 15 | #include <asm/ptrace.h> |
16 | #include <asm/smp.h> | 16 | #include <asm/smp.h> |
17 | 17 | ||
18 | #ifndef CONFIG_PARAVIRT | ||
18 | typedef u8 ia64_vector; | 19 | typedef u8 ia64_vector; |
20 | #else | ||
21 | typedef u16 ia64_vector; | ||
22 | #endif | ||
19 | 23 | ||
20 | /* | 24 | /* |
21 | * 0 special | 25 | * 0 special |
@@ -104,13 +108,24 @@ DECLARE_PER_CPU(int[IA64_NUM_VECTORS], vector_irq); | |||
104 | 108 | ||
105 | extern struct hw_interrupt_type irq_type_ia64_lsapic; /* CPU-internal interrupt controller */ | 109 | extern struct hw_interrupt_type irq_type_ia64_lsapic; /* CPU-internal interrupt controller */ |
106 | 110 | ||
111 | #ifdef CONFIG_PARAVIRT_GUEST | ||
112 | #include <asm/paravirt.h> | ||
113 | #else | ||
114 | #define ia64_register_ipi ia64_native_register_ipi | ||
115 | #define assign_irq_vector ia64_native_assign_irq_vector | ||
116 | #define free_irq_vector ia64_native_free_irq_vector | ||
117 | #define register_percpu_irq ia64_native_register_percpu_irq | ||
118 | #define ia64_resend_irq ia64_native_resend_irq | ||
119 | #endif | ||
120 | |||
121 | extern void ia64_native_register_ipi(void); | ||
107 | extern int bind_irq_vector(int irq, int vector, cpumask_t domain); | 122 | extern int bind_irq_vector(int irq, int vector, cpumask_t domain); |
108 | extern int assign_irq_vector (int irq); /* allocate a free vector */ | 123 | extern int ia64_native_assign_irq_vector (int irq); /* allocate a free vector */ |
109 | extern void free_irq_vector (int vector); | 124 | extern void ia64_native_free_irq_vector (int vector); |
110 | extern int reserve_irq_vector (int vector); | 125 | extern int reserve_irq_vector (int vector); |
111 | extern void __setup_vector_irq(int cpu); | 126 | extern void __setup_vector_irq(int cpu); |
112 | extern void ia64_send_ipi (int cpu, int vector, int delivery_mode, int redirect); | 127 | extern void ia64_send_ipi (int cpu, int vector, int delivery_mode, int redirect); |
113 | extern void register_percpu_irq (ia64_vector vec, struct irqaction *action); | 128 | extern void ia64_native_register_percpu_irq (ia64_vector vec, struct irqaction *action); |
114 | extern int check_irq_used (int irq); | 129 | extern int check_irq_used (int irq); |
115 | extern void destroy_and_reserve_irq (unsigned int irq); | 130 | extern void destroy_and_reserve_irq (unsigned int irq); |
116 | 131 | ||
@@ -122,7 +137,7 @@ static inline int irq_prepare_move(int irq, int cpu) { return 0; } | |||
122 | static inline void irq_complete_move(unsigned int irq) {} | 137 | static inline void irq_complete_move(unsigned int irq) {} |
123 | #endif | 138 | #endif |
124 | 139 | ||
125 | static inline void ia64_resend_irq(unsigned int vector) | 140 | static inline void ia64_native_resend_irq(unsigned int vector) |
126 | { | 141 | { |
127 | platform_send_ipi(smp_processor_id(), vector, IA64_IPI_DM_INT, 0); | 142 | platform_send_ipi(smp_processor_id(), vector, IA64_IPI_DM_INT, 0); |
128 | } | 143 | } |