diff options
Diffstat (limited to 'drivers/parisc/iosapic.c')
-rw-r--r-- | drivers/parisc/iosapic.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/parisc/iosapic.c b/drivers/parisc/iosapic.c index 1cdfdea5d7ef..501aaf1f253f 100644 --- a/drivers/parisc/iosapic.c +++ b/drivers/parisc/iosapic.c | |||
@@ -708,11 +708,14 @@ static void iosapic_set_affinity_irq(unsigned int irq, | |||
708 | struct vector_info *vi = iosapic_get_vector(irq); | 708 | struct vector_info *vi = iosapic_get_vector(irq); |
709 | u32 d0, d1, dummy_d0; | 709 | u32 d0, d1, dummy_d0; |
710 | unsigned long flags; | 710 | unsigned long flags; |
711 | int dest_cpu; | ||
711 | 712 | ||
712 | if (cpu_check_affinity(irq, dest)) | 713 | dest_cpu = cpu_check_affinity(irq, dest); |
714 | if (dest_cpu < 0) | ||
713 | return; | 715 | return; |
714 | 716 | ||
715 | vi->txn_addr = txn_affinity_addr(irq, cpumask_first(dest)); | 717 | irq_desc[irq].affinity = cpumask_of_cpu(dest_cpu); |
718 | vi->txn_addr = txn_affinity_addr(irq, dest_cpu); | ||
716 | 719 | ||
717 | spin_lock_irqsave(&iosapic_lock, flags); | 720 | spin_lock_irqsave(&iosapic_lock, flags); |
718 | /* d1 contains the destination CPU, so only want to set that | 721 | /* d1 contains the destination CPU, so only want to set that |