diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-06 14:08:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-06 14:08:57 -0400 |
commit | 428929a234d2c4b8a6d0145d0dcf687fcfa27325 (patch) | |
tree | dd097eeabbd41c4713be5ea7663f52399183fd84 | |
parent | 0cd61b68c340a4f901a06e8bb5e0dea4353161c0 (diff) | |
parent | 8c1addbc752660e95bbf2128d66b8e5bb38d5fc7 (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:
[IA64] Fix breakage from irq change
-rw-r--r-- | arch/ia64/kernel/irq.c | 5 | ||||
-rw-r--r-- | arch/ia64/kernel/irq_ia64.c | 7 | ||||
-rw-r--r-- | arch/ia64/sn/kernel/sn2/timer_interrupt.c | 2 | ||||
-rw-r--r-- | drivers/serial/sn_console.c | 2 |
4 files changed, 11 insertions, 5 deletions
diff --git a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c index 7852382de2fa..f07c0864b0b4 100644 --- a/arch/ia64/kernel/irq.c +++ b/arch/ia64/kernel/irq.c | |||
@@ -194,8 +194,11 @@ void fixup_irqs(void) | |||
194 | */ | 194 | */ |
195 | for (irq=0; irq < NR_IRQS; irq++) { | 195 | for (irq=0; irq < NR_IRQS; irq++) { |
196 | if (vectors_in_migration[irq]) { | 196 | if (vectors_in_migration[irq]) { |
197 | struct pt_regs *old_regs = set_irq_regs(NULL); | ||
198 | |||
197 | vectors_in_migration[irq]=0; | 199 | vectors_in_migration[irq]=0; |
198 | __do_IRQ(irq, NULL); | 200 | __do_IRQ(irq); |
201 | set_irq_regs(old_regs); | ||
199 | } | 202 | } |
200 | } | 203 | } |
201 | 204 | ||
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c index 7fd3ef9e064d..68339dd0c9e2 100644 --- a/arch/ia64/kernel/irq_ia64.c +++ b/arch/ia64/kernel/irq_ia64.c | |||
@@ -226,6 +226,8 @@ void ia64_process_pending_intr(void) | |||
226 | */ | 226 | */ |
227 | while (vector != IA64_SPURIOUS_INT_VECTOR) { | 227 | while (vector != IA64_SPURIOUS_INT_VECTOR) { |
228 | if (!IS_RESCHEDULE(vector)) { | 228 | if (!IS_RESCHEDULE(vector)) { |
229 | struct pt_regs *old_regs = set_irq_regs(NULL); | ||
230 | |||
229 | ia64_setreg(_IA64_REG_CR_TPR, vector); | 231 | ia64_setreg(_IA64_REG_CR_TPR, vector); |
230 | ia64_srlz_d(); | 232 | ia64_srlz_d(); |
231 | 233 | ||
@@ -236,7 +238,8 @@ void ia64_process_pending_intr(void) | |||
236 | * Probably could shared code. | 238 | * Probably could shared code. |
237 | */ | 239 | */ |
238 | vectors_in_migration[local_vector_to_irq(vector)]=0; | 240 | vectors_in_migration[local_vector_to_irq(vector)]=0; |
239 | __do_IRQ(local_vector_to_irq(vector), NULL); | 241 | __do_IRQ(local_vector_to_irq(vector)); |
242 | set_irq_regs(old_regs); | ||
240 | 243 | ||
241 | /* | 244 | /* |
242 | * Disable interrupts and send EOI | 245 | * Disable interrupts and send EOI |
@@ -253,7 +256,7 @@ void ia64_process_pending_intr(void) | |||
253 | 256 | ||
254 | 257 | ||
255 | #ifdef CONFIG_SMP | 258 | #ifdef CONFIG_SMP |
256 | extern irqreturn_t handle_IPI (int irq, void *dev_id, struct pt_regs *regs); | 259 | extern irqreturn_t handle_IPI (int irq, void *dev_id); |
257 | 260 | ||
258 | static struct irqaction ipi_irqaction = { | 261 | static struct irqaction ipi_irqaction = { |
259 | .handler = handle_IPI, | 262 | .handler = handle_IPI, |
diff --git a/arch/ia64/sn/kernel/sn2/timer_interrupt.c b/arch/ia64/sn/kernel/sn2/timer_interrupt.c index fa7f69945917..103d6ea8e94b 100644 --- a/arch/ia64/sn/kernel/sn2/timer_interrupt.c +++ b/arch/ia64/sn/kernel/sn2/timer_interrupt.c | |||
@@ -36,7 +36,7 @@ extern irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs); | |||
36 | 36 | ||
37 | #define SN_LB_INT_WAR_INTERVAL 100 | 37 | #define SN_LB_INT_WAR_INTERVAL 100 |
38 | 38 | ||
39 | void sn_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | 39 | void sn_timer_interrupt(int irq, void *dev_id) |
40 | { | 40 | { |
41 | /* LED blinking */ | 41 | /* LED blinking */ |
42 | if (!pda->hb_count--) { | 42 | if (!pda->hb_count--) { |
diff --git a/drivers/serial/sn_console.c b/drivers/serial/sn_console.c index 709f93a6c18c..956b2cf08e1e 100644 --- a/drivers/serial/sn_console.c +++ b/drivers/serial/sn_console.c | |||
@@ -674,7 +674,7 @@ static void sn_sal_timer_poll(unsigned long data) | |||
674 | if (!port->sc_port.irq) { | 674 | if (!port->sc_port.irq) { |
675 | spin_lock_irqsave(&port->sc_port.lock, flags); | 675 | spin_lock_irqsave(&port->sc_port.lock, flags); |
676 | if (sn_process_input) | 676 | if (sn_process_input) |
677 | sn_receive_chars(port, NULL, flags); | 677 | sn_receive_chars(port, flags); |
678 | sn_transmit_chars(port, TRANSMIT_RAW); | 678 | sn_transmit_chars(port, TRANSMIT_RAW); |
679 | spin_unlock_irqrestore(&port->sc_port.lock, flags); | 679 | spin_unlock_irqrestore(&port->sc_port.lock, flags); |
680 | mod_timer(&port->sc_timer, | 680 | mod_timer(&port->sc_timer, |