Skip to content

Commit

Permalink
[IA64] Fix breakage from irq change
Browse files Browse the repository at this point in the history
A few missed spots in ia64-land from this gigantic commit:

7d12e78

Signed-off-by: Tony Luck <tony.luck@intel.com>
  • Loading branch information
Tony Luck committed Oct 6, 2006
1 parent 49f19ce commit 8c1addb
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 5 deletions.
5 changes: 4 additions & 1 deletion arch/ia64/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -194,8 +194,11 @@ void fixup_irqs(void)
*/
for (irq=0; irq < NR_IRQS; irq++) {
if (vectors_in_migration[irq]) {
struct pt_regs *old_regs = set_irq_regs(NULL);

vectors_in_migration[irq]=0;
__do_IRQ(irq, NULL);
__do_IRQ(irq);
set_irq_regs(old_regs);
}
}

Expand Down
7 changes: 5 additions & 2 deletions arch/ia64/kernel/irq_ia64.c
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,8 @@ void ia64_process_pending_intr(void)
*/
while (vector != IA64_SPURIOUS_INT_VECTOR) {
if (!IS_RESCHEDULE(vector)) {
struct pt_regs *old_regs = set_irq_regs(NULL);

ia64_setreg(_IA64_REG_CR_TPR, vector);
ia64_srlz_d();

Expand All @@ -236,7 +238,8 @@ void ia64_process_pending_intr(void)
* Probably could shared code.
*/
vectors_in_migration[local_vector_to_irq(vector)]=0;
__do_IRQ(local_vector_to_irq(vector), NULL);
__do_IRQ(local_vector_to_irq(vector));
set_irq_regs(old_regs);

/*
* Disable interrupts and send EOI
Expand All @@ -253,7 +256,7 @@ void ia64_process_pending_intr(void)


#ifdef CONFIG_SMP
extern irqreturn_t handle_IPI (int irq, void *dev_id, struct pt_regs *regs);
extern irqreturn_t handle_IPI (int irq, void *dev_id);

static struct irqaction ipi_irqaction = {
.handler = handle_IPI,
Expand Down
2 changes: 1 addition & 1 deletion arch/ia64/sn/kernel/sn2/timer_interrupt.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ extern irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs);

#define SN_LB_INT_WAR_INTERVAL 100

void sn_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
void sn_timer_interrupt(int irq, void *dev_id)
{
/* LED blinking */
if (!pda->hb_count--) {
Expand Down
2 changes: 1 addition & 1 deletion drivers/serial/sn_console.c
Original file line number Diff line number Diff line change
Expand Up @@ -674,7 +674,7 @@ static void sn_sal_timer_poll(unsigned long data)
if (!port->sc_port.irq) {
spin_lock_irqsave(&port->sc_port.lock, flags);
if (sn_process_input)
sn_receive_chars(port, NULL, flags);
sn_receive_chars(port, flags);
sn_transmit_chars(port, TRANSMIT_RAW);
spin_unlock_irqrestore(&port->sc_port.lock, flags);
mod_timer(&port->sc_timer,
Expand Down

0 comments on commit 8c1addb

Please sign in to comment.