mirror of https://gitee.com/openkylin/linux.git
[PARISC] irq_affinityp[] only available for SMP builds
irq_affinityp[] only available for SMP builds, make code that uses it conditional on CONFIG_SMP. Signed-off-by: Grant Grundler <grundler@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
This commit is contained in:
parent
c2ab64d098
commit
03afe22f07
|
@ -261,13 +261,17 @@ int txn_alloc_irq(unsigned int bits_wide)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned long txn_affinity_addr(unsigned int irq, int cpu)
|
unsigned long txn_affinity_addr(unsigned int irq, int cpu)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_SMP
|
||||||
irq_affinity[irq] = cpumask_of_cpu(cpu);
|
irq_affinity[irq] = cpumask_of_cpu(cpu);
|
||||||
|
#endif
|
||||||
|
|
||||||
return cpu_data[cpu].txn_addr;
|
return cpu_data[cpu].txn_addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned long txn_alloc_addr(unsigned int virt_irq)
|
unsigned long txn_alloc_addr(unsigned int virt_irq)
|
||||||
{
|
{
|
||||||
static int next_cpu = -1;
|
static int next_cpu = -1;
|
||||||
|
@ -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 */
|
/* Work our way from MSb to LSb...same order we alloc EIRs */
|
||||||
for (irq = TIMER_IRQ; eirr_val && bit; bit>>=1, irq++) {
|
for (irq = TIMER_IRQ; eirr_val && bit; bit>>=1, irq++) {
|
||||||
|
#ifdef CONFIG_SMP
|
||||||
cpumask_t dest = irq_affinity[irq];
|
cpumask_t dest = irq_affinity[irq];
|
||||||
|
#endif
|
||||||
if (!(bit & eirr_val))
|
if (!(bit & eirr_val))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* clear bit in mask - can exit loop sooner */
|
/* clear bit in mask - can exit loop sooner */
|
||||||
eirr_val &= ~bit;
|
eirr_val &= ~bit;
|
||||||
|
|
||||||
|
#ifdef CONFIG_SMP
|
||||||
/* FIXME: because generic set affinity mucks
|
/* FIXME: because generic set affinity mucks
|
||||||
* with the affinity before sending it to us
|
* with the affinity before sending it to us
|
||||||
* we can get the situation where the affinity is
|
* we can get the situation where the affinity is
|
||||||
|
@ -337,12 +343,13 @@ void do_cpu_irq_mask(struct pt_regs *regs)
|
||||||
!cpu_isset(smp_processor_id(), dest)) {
|
!cpu_isset(smp_processor_id(), dest)) {
|
||||||
int cpu = first_cpu(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);
|
irq, smp_processor_id(), cpu);
|
||||||
gsc_writel(irq + CPU_IRQ_BASE,
|
gsc_writel(irq + CPU_IRQ_BASE,
|
||||||
cpu_data[cpu].hpa);
|
cpu_data[cpu].hpa);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
__do_IRQ(irq, regs);
|
__do_IRQ(irq, regs);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue