diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2009-11-17 04:01:34 -0500 |
---|---|---|
committer | Eric W. Biederman <ebiederm@xmission.com> | 2009-11-17 04:01:34 -0500 |
commit | bb9074ff58fe745e4f244f76209241909c82ec9c (patch) | |
tree | cf6be00ab88b1e315f6b74a896a370440f677599 /arch/powerpc/platforms/pseries/xics.c | |
parent | 4739a9748e1bd7459f22f7e94e7d85710ca83954 (diff) | |
parent | 156171c71a0dc4bce12b4408bb1591f8fe32dc1a (diff) |
Merge commit 'v2.6.32-rc7'
Resolve the conflict between v2.6.32-rc7 where dn_def_dev_handler
gets a small bug fix and the sysctl tree where I am removing all
sysctl strategy routines.
Diffstat (limited to 'arch/powerpc/platforms/pseries/xics.c')
-rw-r--r-- | arch/powerpc/platforms/pseries/xics.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c index 419f8a637ffe..b9bf0eedccf2 100644 --- a/arch/powerpc/platforms/pseries/xics.c +++ b/arch/powerpc/platforms/pseries/xics.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/init.h> | 18 | #include <linux/init.h> |
19 | #include <linux/radix-tree.h> | 19 | #include <linux/radix-tree.h> |
20 | #include <linux/cpu.h> | 20 | #include <linux/cpu.h> |
21 | #include <linux/msi.h> | ||
21 | #include <linux/of.h> | 22 | #include <linux/of.h> |
22 | 23 | ||
23 | #include <asm/firmware.h> | 24 | #include <asm/firmware.h> |
@@ -219,6 +220,14 @@ static void xics_unmask_irq(unsigned int virq) | |||
219 | 220 | ||
220 | static unsigned int xics_startup(unsigned int virq) | 221 | static unsigned int xics_startup(unsigned int virq) |
221 | { | 222 | { |
223 | /* | ||
224 | * The generic MSI code returns with the interrupt disabled on the | ||
225 | * card, using the MSI mask bits. Firmware doesn't appear to unmask | ||
226 | * at that level, so we do it here by hand. | ||
227 | */ | ||
228 | if (irq_to_desc(virq)->msi_desc) | ||
229 | unmask_msi_irq(virq); | ||
230 | |||
222 | /* unmask it */ | 231 | /* unmask it */ |
223 | xics_unmask_irq(virq); | 232 | xics_unmask_irq(virq); |
224 | return 0; | 233 | return 0; |