diff options
author | Lennert Buytenhek <buytenh@wantstofly.org> | 2011-03-07 09:00:20 -0500 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2011-03-09 19:04:04 -0500 |
commit | e11802872db82417e51e1bbe0751dbb21842d713 (patch) | |
tree | 8f0610362a2671a367a6cf2288f3380a8097ab06 /arch/powerpc/kernel/machine_kexec.c | |
parent | 73909af7367a4daf2395846e776e0b326bd4e23b (diff) |
powerpc: core irq_data conversion.
Signed-off-by: Lennert Buytenhek <buytenh@secretlab.ca>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/machine_kexec.c')
-rw-r--r-- | arch/powerpc/kernel/machine_kexec.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/arch/powerpc/kernel/machine_kexec.c b/arch/powerpc/kernel/machine_kexec.c index 49a170af8145..976de37fe5b3 100644 --- a/arch/powerpc/kernel/machine_kexec.c +++ b/arch/powerpc/kernel/machine_kexec.c | |||
@@ -26,20 +26,23 @@ void machine_kexec_mask_interrupts(void) { | |||
26 | 26 | ||
27 | for_each_irq(i) { | 27 | for_each_irq(i) { |
28 | struct irq_desc *desc = irq_to_desc(i); | 28 | struct irq_desc *desc = irq_to_desc(i); |
29 | struct irq_chip *chip; | ||
29 | 30 | ||
30 | if (!desc || !desc->chip) | 31 | if (!desc) |
31 | continue; | 32 | continue; |
32 | 33 | ||
33 | if (desc->chip->eoi && | 34 | chip = get_irq_desc_chip(desc); |
34 | desc->status & IRQ_INPROGRESS) | 35 | if (!chip) |
35 | desc->chip->eoi(i); | 36 | continue; |
37 | |||
38 | if (chip->irq_eoi && desc->status & IRQ_INPROGRESS) | ||
39 | chip->irq_eoi(&desc->irq_data); | ||
36 | 40 | ||
37 | if (desc->chip->mask) | 41 | if (chip->irq_mask) |
38 | desc->chip->mask(i); | 42 | chip->irq_mask(&desc->irq_data); |
39 | 43 | ||
40 | if (desc->chip->disable && | 44 | if (chip->irq_disable && !(desc->status & IRQ_DISABLED)) |
41 | !(desc->status & IRQ_DISABLED)) | 45 | chip->irq_disable(&desc->irq_data); |
42 | desc->chip->disable(i); | ||
43 | } | 46 | } |
44 | } | 47 | } |
45 | 48 | ||