diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2013-04-02 09:33:36 -0400 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2013-04-03 12:42:48 -0400 |
commit | 58631ad1205677c5b33f511fd5aae26eaa0c87c6 (patch) | |
tree | da2855368389e78abed99744ac2c4ca23ea138dc /arch/powerpc/sysdev | |
parent | a3ec3acd29e3b372d79b81a534e1f4b10fc140f7 (diff) |
powerpc/fsl-msi: use a different lockclass for the cascade interrupt
lockdep thinks that it might deadlock because it grabs a lock of the
same class while calling the generic_irq_handler(). This annotation will
inform lockdep that it will not.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/sysdev')
-rw-r--r-- | arch/powerpc/sysdev/fsl_msi.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c index 178c99427b1c..ab02db3d02d8 100644 --- a/arch/powerpc/sysdev/fsl_msi.c +++ b/arch/powerpc/sysdev/fsl_msi.c | |||
@@ -333,6 +333,8 @@ static int fsl_of_msi_remove(struct platform_device *ofdev) | |||
333 | return 0; | 333 | return 0; |
334 | } | 334 | } |
335 | 335 | ||
336 | static struct lock_class_key fsl_msi_irq_class; | ||
337 | |||
336 | static int fsl_msi_setup_hwirq(struct fsl_msi *msi, struct platform_device *dev, | 338 | static int fsl_msi_setup_hwirq(struct fsl_msi *msi, struct platform_device *dev, |
337 | int offset, int irq_index) | 339 | int offset, int irq_index) |
338 | { | 340 | { |
@@ -351,7 +353,7 @@ static int fsl_msi_setup_hwirq(struct fsl_msi *msi, struct platform_device *dev, | |||
351 | dev_err(&dev->dev, "No memory for MSI cascade data\n"); | 353 | dev_err(&dev->dev, "No memory for MSI cascade data\n"); |
352 | return -ENOMEM; | 354 | return -ENOMEM; |
353 | } | 355 | } |
354 | 356 | irq_set_lockdep_class(virt_msir, &fsl_msi_irq_class); | |
355 | msi->msi_virqs[irq_index] = virt_msir; | 357 | msi->msi_virqs[irq_index] = virt_msir; |
356 | cascade_data->index = offset; | 358 | cascade_data->index = offset; |
357 | cascade_data->msi_data = msi; | 359 | cascade_data->msi_data = msi; |