diff options
| -rw-r--r-- | include/linux/irq.h | 5 | ||||
| -rw-r--r-- | kernel/irq/internals.h | 5 | ||||
| -rw-r--r-- | kernel/irq/irqdesc.c | 8 | ||||
| -rw-r--r-- | kernel/irq/irqdomain.c | 3 | ||||
| -rw-r--r-- | kernel/irq/manage.c | 2 | ||||
| -rw-r--r-- | kernel/irq/proc.c | 2 |
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 | ||
| 643 | static inline int irq_data_get_node(struct irq_data *d) | ||
| 644 | { | ||
| 645 | return d->node; | ||
| 646 | } | ||
| 647 | |||
| 643 | unsigned int arch_dynirq_lower_bound(unsigned int from); | 648 | unsigned int arch_dynirq_lower_bound(unsigned int from); |
| 644 | 649 | ||
| 645 | int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node, | 650 | int __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 | ||
| 200 | static 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 |
| 201 | bool irq_pm_check_wakeup(struct irq_desc *desc); | 206 | bool irq_pm_check_wakeup(struct irq_desc *desc); |
| 202 | void irq_pm_install_action(struct irq_desc *desc, struct irqaction *action); | 207 | void 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 | ||
| 62 | static inline int desc_node(struct irq_desc *desc) | ||
| 63 | { | ||
| 64 | return desc->irq_data.node; | ||
| 65 | } | ||
| 66 | |||
| 67 | #else | 62 | #else |
| 68 | static inline int | 63 | static inline int |
| 69 | alloc_masks(struct irq_desc *desc, gfp_t gfp, int node) { return 0; } | 64 | alloc_masks(struct irq_desc *desc, gfp_t gfp, int node) { return 0; } |
| 70 | static inline void desc_smp_init(struct irq_desc *desc, int node) { } | 65 | static inline void desc_smp_init(struct irq_desc *desc, int node) { } |
| 71 | static inline int desc_node(struct irq_desc *desc) { return 0; } | ||
| 72 | #endif | 66 | #endif |
| 73 | 67 | ||
| 74 | static void desc_set_defaults(unsigned int irq, struct irq_desc *desc, int node, | 68 | static 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 | |||
| 363 | setup_affinity(unsigned int irq, struct irq_desc *desc, struct cpumask *mask) | 363 | setup_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 | ||
