Skip to content

Commit

Permalink
sh: Disable IRQ balancing for timer and IPI IRQs.
Browse files Browse the repository at this point in the history
Make sure that the timer IRQs and IPIs aren't enabled for IRQ balancing.
IPIs are disabled as a result of being percpu while the timers simply
disable balancing outright.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Paul Mundt committed Apr 15, 2010
1 parent 43b8774 commit fecf066
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 5 deletions.
4 changes: 2 additions & 2 deletions arch/sh/kernel/cpu/sh4a/smp-shx3.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ void __init plat_prepare_cpus(unsigned int max_cpus)
BUILD_BUG_ON(SMP_MSG_NR >= 8);

for (i = 0; i < SMP_MSG_NR; i++)
request_irq(104 + i, ipi_interrupt_handler, IRQF_DISABLED,
"IPI", (void *)(long)i);
request_irq(104 + i, ipi_interrupt_handler,
IRQF_DISABLED | IRQF_PERCPU, "IPI", (void *)(long)i);
}

void plat_start_cpu(unsigned int cpu, unsigned long entry_point)
Expand Down
3 changes: 2 additions & 1 deletion drivers/clocksource/sh_cmt.c
Original file line number Diff line number Diff line change
Expand Up @@ -605,7 +605,8 @@ static int sh_cmt_setup(struct sh_cmt_priv *p, struct platform_device *pdev)
p->irqaction.name = dev_name(&p->pdev->dev);
p->irqaction.handler = sh_cmt_interrupt;
p->irqaction.dev_id = p;
p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL;
p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | \
IRQF_IRQPOLL | IRQF_NOBALANCING;

/* get hold of clock */
p->clk = clk_get(&p->pdev->dev, "cmt_fck");
Expand Down
3 changes: 2 additions & 1 deletion drivers/clocksource/sh_mtu2.c
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,8 @@ static int sh_mtu2_setup(struct sh_mtu2_priv *p, struct platform_device *pdev)
p->irqaction.handler = sh_mtu2_interrupt;
p->irqaction.dev_id = p;
p->irqaction.irq = irq;
p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL;
p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | \
IRQF_IRQPOLL | IRQF_NOBALANCING;

/* get hold of clock */
p->clk = clk_get(&p->pdev->dev, "mtu2_fck");
Expand Down
3 changes: 2 additions & 1 deletion drivers/clocksource/sh_tmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,8 @@ static int sh_tmu_setup(struct sh_tmu_priv *p, struct platform_device *pdev)
p->irqaction.handler = sh_tmu_interrupt;
p->irqaction.dev_id = p;
p->irqaction.irq = irq;
p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL;
p->irqaction.flags = IRQF_DISABLED | IRQF_TIMER | \
IRQF_IRQPOLL | IRQF_NOBALANCING;

/* get hold of clock */
p->clk = clk_get(&p->pdev->dev, "tmu_fck");
Expand Down

0 comments on commit fecf066

Please sign in to comment.