aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2009-06-08 06:17:58 -0400
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2009-07-14 16:32:50 -0400
commitd8c52063ed85dda61b70bc05b90711478db5dc17 (patch)
treece6c964717368878dba9052fe63b2c7bae01aceb /arch
parent8e13d697febc1ba17e70ed88789255c8bc25aa41 (diff)
x86/ioapic.c: convert io_apic_level_ack_pending loop to normal for() loop
Convert the unconventional loop in io_apic_level_ack_pending() to a conventional for() loop. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/apic/io_apic.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index a097a773bc76..0d0401802d4f 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -410,13 +410,10 @@ static bool io_apic_level_ack_pending(struct irq_cfg *cfg)
410 unsigned long flags; 410 unsigned long flags;
411 411
412 spin_lock_irqsave(&ioapic_lock, flags); 412 spin_lock_irqsave(&ioapic_lock, flags);
413 entry = cfg->irq_2_pin; 413 for (entry = cfg->irq_2_pin; entry != NULL; entry = entry->next) {
414 for (;;) {
415 unsigned int reg; 414 unsigned int reg;
416 int pin; 415 int pin;
417 416
418 if (!entry)
419 break;
420 pin = entry->pin; 417 pin = entry->pin;
421 reg = io_apic_read(entry->apic, 0x10 + pin*2); 418 reg = io_apic_read(entry->apic, 0x10 + pin*2);
422 /* Is the remote IRR bit set? */ 419 /* Is the remote IRR bit set? */
@@ -424,9 +421,6 @@ static bool io_apic_level_ack_pending(struct irq_cfg *cfg)
424 spin_unlock_irqrestore(&ioapic_lock, flags); 421 spin_unlock_irqrestore(&ioapic_lock, flags);
425 return true; 422 return true;
426 } 423 }
427 if (!entry->next)
428 break;
429 entry = entry->next;
430 } 424 }
431 spin_unlock_irqrestore(&ioapic_lock, flags); 425 spin_unlock_irqrestore(&ioapic_lock, flags);
432 426