diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/sparc64/kernel/irq.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c index 74a2e0808cbc..daa2fb93052c 100644 --- a/arch/sparc64/kernel/irq.c +++ b/arch/sparc64/kernel/irq.c | |||
@@ -917,7 +917,8 @@ static int irq_affinity_read_proc (char *page, char **start, off_t off, | |||
917 | int count, int *eof, void *data) | 917 | int count, int *eof, void *data) |
918 | { | 918 | { |
919 | struct ino_bucket *bp = ivector_table + (long)data; | 919 | struct ino_bucket *bp = ivector_table + (long)data; |
920 | struct irqaction *ap = bp->irq_info; | 920 | struct irq_desc *desc = bp->irq_info; |
921 | struct irqaction *ap = desc->action; | ||
921 | cpumask_t mask; | 922 | cpumask_t mask; |
922 | int len; | 923 | int len; |
923 | 924 | ||
@@ -935,11 +936,13 @@ static int irq_affinity_read_proc (char *page, char **start, off_t off, | |||
935 | static inline void set_intr_affinity(int irq, cpumask_t hw_aff) | 936 | static inline void set_intr_affinity(int irq, cpumask_t hw_aff) |
936 | { | 937 | { |
937 | struct ino_bucket *bp = ivector_table + irq; | 938 | struct ino_bucket *bp = ivector_table + irq; |
939 | struct irq_desc *desc = bp->irq_info; | ||
940 | struct irqaction *ap = desc->action; | ||
938 | 941 | ||
939 | /* Users specify affinity in terms of hw cpu ids. | 942 | /* Users specify affinity in terms of hw cpu ids. |
940 | * As soon as we do this, handler_irq() might see and take action. | 943 | * As soon as we do this, handler_irq() might see and take action. |
941 | */ | 944 | */ |
942 | put_smpaff_in_irqaction((struct irqaction *)bp->irq_info, hw_aff); | 945 | put_smpaff_in_irqaction(ap, hw_aff); |
943 | 946 | ||
944 | /* Migration is simply done by the next cpu to service this | 947 | /* Migration is simply done by the next cpu to service this |
945 | * interrupt. | 948 | * interrupt. |