| From bfc2bc8577d31ad04ae2f0619e50794e7cde9536 Mon Sep 17 00:00:00 2001 |
| From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
| Date: Thu, 21 Mar 2013 10:00:28 +0100 |
| Subject: [PATCH 1/3] powerpc/fsl-msi: use a different locklcass 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> |
| --- |
| arch/powerpc/sysdev/fsl_msi.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- 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 plat |
| return 0; |
| } |
| |
| +static struct lock_class_key fsl_msi_irq_class; |
| + |
| static int fsl_msi_setup_hwirq(struct fsl_msi *msi, struct platform_device *dev, |
| int offset, int irq_index) |
| { |
| @@ -351,7 +353,7 @@ static int fsl_msi_setup_hwirq(struct fs |
| dev_err(&dev->dev, "No memory for MSI cascade data\n"); |
| return -ENOMEM; |
| } |
| - |
| + irq_set_lockdep_class(virt_msir, &fsl_msi_irq_class); |
| msi->msi_virqs[irq_index] = virt_msir; |
| cascade_data->index = offset; |
| cascade_data->msi_data = msi; |