Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 14453
b: refs/heads/master
c: 03afe22
h: refs/heads/master
i:
  14451: 724921b
v: v3
  • Loading branch information
Grant Grundler authored and Kyle McMartin committed Nov 17, 2005
1 parent c3b0986 commit 6fc0f99
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c2ab64d09815cc4d48347ee3679658f197455a2a
refs/heads/master: 03afe22f074231196dcf3298f962cfc787ebbc60
11 changes: 9 additions & 2 deletions trunk/arch/parisc/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -261,13 +261,17 @@ int txn_alloc_irq(unsigned int bits_wide)
return -1;
}


unsigned long txn_affinity_addr(unsigned int irq, int cpu)
{
#ifdef CONFIG_SMP
irq_affinity[irq] = cpumask_of_cpu(cpu);
#endif

return cpu_data[cpu].txn_addr;
}


unsigned long txn_alloc_addr(unsigned int virt_irq)
{
static int next_cpu = -1;
Expand Down Expand Up @@ -321,14 +325,16 @@ void do_cpu_irq_mask(struct pt_regs *regs)

/* Work our way from MSb to LSb...same order we alloc EIRs */
for (irq = TIMER_IRQ; eirr_val && bit; bit>>=1, irq++) {
#ifdef CONFIG_SMP
cpumask_t dest = irq_affinity[irq];

#endif
if (!(bit & eirr_val))
continue;

/* clear bit in mask - can exit loop sooner */
eirr_val &= ~bit;

#ifdef CONFIG_SMP
/* FIXME: because generic set affinity mucks
* with the affinity before sending it to us
* we can get the situation where the affinity is
Expand All @@ -337,12 +343,13 @@ void do_cpu_irq_mask(struct pt_regs *regs)
!cpu_isset(smp_processor_id(), dest)) {
int cpu = first_cpu(dest);

printk("rethrowing irq %d from %d to %d\n",
printk("redirecting irq %d from CPU %d to %d\n",
irq, smp_processor_id(), cpu);
gsc_writel(irq + CPU_IRQ_BASE,
cpu_data[cpu].hpa);
continue;
}
#endif

__do_IRQ(irq, regs);
}
Expand Down

0 comments on commit 6fc0f99

Please sign in to comment.