diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2011-02-10 15:40:36 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-03-12 08:12:00 -0500 |
commit | 51c43ac6e4540786a6d79ea318b30f7bfa615ec7 (patch) | |
tree | 6a8f26b1250fb85d3ab99a513668dbbbb85995be | |
parent | 5451ddc5621550a2f4f82ddeac938b3ca392525f (diff) |
x86: Use the proper accessors in fixup_irqs()
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | arch/x86/kernel/irq.c | 23 |
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 | } |