aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/irq.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2011-02-10 15:40:36 -0500
committerThomas Gleixner <tglx@linutronix.de>2011-03-12 08:12:00 -0500
commit51c43ac6e4540786a6d79ea318b30f7bfa615ec7 (patch)
tree6a8f26b1250fb85d3ab99a513668dbbbb85995be /arch/x86/kernel/irq.c
parent5451ddc5621550a2f4f82ddeac938b3ca392525f (diff)
x86: Use the proper accessors in fixup_irqs()
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/irq.c')
-rw-r--r--arch/x86/kernel/irq.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
index 78793efd3180..00bf99df583c 100644
--- a/arch/x86/kernel/irq.c
+++ b/arch/x86/kernel/irq.c
@@ -293,6 +293,7 @@ void fixup_irqs(void)
293 static int warned; 293 static int warned;
294 struct irq_desc *desc; 294 struct irq_desc *desc;
295 struct irq_data *data; 295 struct irq_data *data;
296 struct irq_chip *chip;
296 297
297 for_each_irq_desc(irq, desc) { 298 for_each_irq_desc(irq, desc) {
298 int break_affinity = 0; 299 int break_affinity = 0;
@@ -307,7 +308,7 @@ void fixup_irqs(void)
307 /* interrupt's are disabled at this point */ 308 /* interrupt's are disabled at this point */
308 raw_spin_lock(&desc->lock); 309 raw_spin_lock(&desc->lock);
309 310
310 data = &desc->irq_data; 311 data = irq_desc_get_irq_data(desc);
311 affinity = data->affinity; 312 affinity = data->affinity;
312 if (!irq_has_action(irq) || 313 if (!irq_has_action(irq) ||
313 cpumask_subset(affinity, cpu_online_mask)) { 314 cpumask_subset(affinity, cpu_online_mask)) {
@@ -327,16 +328,17 @@ void fixup_irqs(void)
327 affinity = cpu_all_mask; 328 affinity = cpu_all_mask;
328 } 329 }
329 330
330 if (!(desc->status & IRQ_MOVE_PCNTXT) && data->chip->irq_mask) 331 chip = irq_data_get_irq_chip(data);
331 data->chip->irq_mask(data); 332 if (!irqd_can_move_in_process_context(data) && chip->irq_mask)
333 chip->irq_mask(data);
332 334
333 if (data->chip->irq_set_affinity) 335 if (chip->irq_set_affinity)
334 data->chip->irq_set_affinity(data, affinity, true); 336 chip->irq_set_affinity(data, affinity, true);
335 else if (!(warned++)) 337 else if (!(warned++))
336 set_affinity = 0; 338 set_affinity = 0;
337 339
338 if (!(desc->status & IRQ_MOVE_PCNTXT) && data->chip->irq_unmask) 340 if (!irqd_can_move_in_process_context(data) && chip->irq_unmask)
339 data->chip->irq_unmask(data); 341 chip->irq_unmask(data);
340 342
341 raw_spin_unlock(&desc->lock); 343 raw_spin_unlock(&desc->lock);
342 344
@@ -368,10 +370,11 @@ void fixup_irqs(void)
368 irq = __this_cpu_read(vector_irq[vector]); 370 irq = __this_cpu_read(vector_irq[vector]);
369 371
370 desc = irq_to_desc(irq); 372 desc = irq_to_desc(irq);
371 data = &desc->irq_data; 373 data = irq_desc_get_irq_data(desc);
374 chip = irq_data_get_irq_chip(data);
372 raw_spin_lock(&desc->lock); 375 raw_spin_lock(&desc->lock);
373 if (data->chip->irq_retrigger) 376 if (chip->irq_retrigger)
374 data->chip->irq_retrigger(data); 377 chip->irq_retrigger(data);
375 raw_spin_unlock(&desc->lock); 378 raw_spin_unlock(&desc->lock);
376 } 379 }
377 } 380 }