aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/irq.h5
-rw-r--r--kernel/irq/internals.h5
-rw-r--r--kernel/irq/irqdesc.c8
-rw-r--r--kernel/irq/irqdomain.c3
-rw-r--r--kernel/irq/manage.c2
-rw-r--r--kernel/irq/proc.c2
6 files changed, 15 insertions, 10 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h
index 3c7fbe44edae..b3b82a5344c8 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -640,6 +640,11 @@ static inline u32 irq_get_trigger_type(unsigned int irq)
640 return d ? irqd_get_trigger_type(d) : 0; 640 return d ? irqd_get_trigger_type(d) : 0;
641} 641}
642 642
643static inline int irq_data_get_node(struct irq_data *d)
644{
645 return d->node;
646}
647
643unsigned int arch_dynirq_lower_bound(unsigned int from); 648unsigned int arch_dynirq_lower_bound(unsigned int from);
644 649
645int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node, 650int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node,
diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
index a1ed80d11800..4834ee828c41 100644
--- a/kernel/irq/internals.h
+++ b/kernel/irq/internals.h
@@ -197,6 +197,11 @@ static inline void kstat_incr_irqs_this_cpu(unsigned int irq, struct irq_desc *d
197 __this_cpu_inc(kstat.irqs_sum); 197 __this_cpu_inc(kstat.irqs_sum);
198} 198}
199 199
200static inline int irq_desc_get_node(struct irq_desc *desc)
201{
202 return irq_data_get_node(&desc->irq_data);
203}
204
200#ifdef CONFIG_PM_SLEEP 205#ifdef CONFIG_PM_SLEEP
201bool irq_pm_check_wakeup(struct irq_desc *desc); 206bool irq_pm_check_wakeup(struct irq_desc *desc);
202void irq_pm_install_action(struct irq_desc *desc, struct irqaction *action); 207void irq_pm_install_action(struct irq_desc *desc, struct irqaction *action);
diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c
index eac1aac906ea..b18d3f1d73d9 100644
--- a/kernel/irq/irqdesc.c
+++ b/kernel/irq/irqdesc.c
@@ -59,16 +59,10 @@ static void desc_smp_init(struct irq_desc *desc, int node)
59#endif 59#endif
60} 60}
61 61
62static inline int desc_node(struct irq_desc *desc)
63{
64 return desc->irq_data.node;
65}
66
67#else 62#else
68static inline int 63static inline int
69alloc_masks(struct irq_desc *desc, gfp_t gfp, int node) { return 0; } 64alloc_masks(struct irq_desc *desc, gfp_t gfp, int node) { return 0; }
70static inline void desc_smp_init(struct irq_desc *desc, int node) { } 65static inline void desc_smp_init(struct irq_desc *desc, int node) { }
71static inline int desc_node(struct irq_desc *desc) { return 0; }
72#endif 66#endif
73 67
74static void desc_set_defaults(unsigned int irq, struct irq_desc *desc, int node, 68static void desc_set_defaults(unsigned int irq, struct irq_desc *desc, int node,
@@ -300,7 +294,7 @@ static void free_desc(unsigned int irq)
300 unsigned long flags; 294 unsigned long flags;
301 295
302 raw_spin_lock_irqsave(&desc->lock, flags); 296 raw_spin_lock_irqsave(&desc->lock, flags);
303 desc_set_defaults(irq, desc, desc_node(desc), NULL); 297 desc_set_defaults(irq, desc, irq_desc_get_node(desc), NULL);
304 raw_spin_unlock_irqrestore(&desc->lock, flags); 298 raw_spin_unlock_irqrestore(&desc->lock, flags);
305} 299}
306 300
diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
index 3552b8750efd..1b06dfed4574 100644
--- a/kernel/irq/irqdomain.c
+++ b/kernel/irq/irqdomain.c
@@ -830,7 +830,8 @@ static struct irq_data *irq_domain_insert_irq_data(struct irq_domain *domain,
830{ 830{
831 struct irq_data *irq_data; 831 struct irq_data *irq_data;
832 832
833 irq_data = kzalloc_node(sizeof(*irq_data), GFP_KERNEL, child->node); 833 irq_data = kzalloc_node(sizeof(*irq_data), GFP_KERNEL,
834 irq_data_get_node(child));
834 if (irq_data) { 835 if (irq_data) {
835 child->parent_data = irq_data; 836 child->parent_data = irq_data;
836 irq_data->irq = child->irq; 837 irq_data->irq = child->irq;
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index b1c7e8f46bfb..f9744853b656 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -363,7 +363,7 @@ static int
363setup_affinity(unsigned int irq, struct irq_desc *desc, struct cpumask *mask) 363setup_affinity(unsigned int irq, struct irq_desc *desc, struct cpumask *mask)
364{ 364{
365 struct cpumask *set = irq_default_affinity; 365 struct cpumask *set = irq_default_affinity;
366 int node = desc->irq_data.node; 366 int node = irq_desc_get_node(desc);
367 367
368 /* Excludes PER_CPU and NO_BALANCE interrupts */ 368 /* Excludes PER_CPU and NO_BALANCE interrupts */
369 if (!irq_can_set_affinity(irq)) 369 if (!irq_can_set_affinity(irq))
diff --git a/kernel/irq/proc.c b/kernel/irq/proc.c
index df2f4642d1e7..0e97c142ce40 100644
--- a/kernel/irq/proc.c
+++ b/kernel/irq/proc.c
@@ -241,7 +241,7 @@ static int irq_node_proc_show(struct seq_file *m, void *v)
241{ 241{
242 struct irq_desc *desc = irq_to_desc((long) m->private); 242 struct irq_desc *desc = irq_to_desc((long) m->private);
243 243
244 seq_printf(m, "%d\n", desc->irq_data.node); 244 seq_printf(m, "%d\n", irq_desc_get_node(desc));
245 return 0; 245 return 0;
246} 246}
247 247