diff options
author | Shin'ichiro Kawasaki <[email protected]> | 2022-04-12 16:56:36 +0900 |
---|---|---|
committer | Thomas Gleixner <[email protected]> | 2022-04-27 19:42:32 +0200 |
commit | c7d2f89fea26c84d5accc55d9976dd7e5305e63a (patch) | |
tree | 14647ec9a5c8e047d8aeb8a4cccc7074412269c4 | |
parent | af2d861d4cd2a4da5137f795ee3509e6f944a25b (diff) |
bus: fsl-mc-msi: Fix MSI descriptor mutex lock for msi_first_desc()
Commit e8604b1447b4 introduced a call to the helper function
msi_first_desc(), which needs MSI descriptor mutex lock before
call. However, the required mutex lock was not added. This results in
lockdep assertion:
WARNING: CPU: 4 PID: 119 at kernel/irq/msi.c:274 msi_first_desc+0xd0/0x10c
msi_first_desc+0xd0/0x10c
fsl_mc_msi_domain_alloc_irqs+0x7c/0xc0
fsl_mc_populate_irq_pool+0x80/0x3cc
Fix this by adding the mutex lock and unlock around the function call.
Fixes: e8604b1447b4 ("bus: fsl-mc-msi: Simplify MSI descriptor handling")
Signed-off-by: Shin'ichiro Kawasaki <[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
Reviewed-by: Damien Le Moal <[email protected]>
Cc: [email protected]
Link: https://lore.kernel.org/r/[email protected]
-rw-r--r-- | drivers/bus/fsl-mc/fsl-mc-msi.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/bus/fsl-mc/fsl-mc-msi.c b/drivers/bus/fsl-mc/fsl-mc-msi.c index 5e0e4393ce4d..0cfe859a4ac4 100644 --- a/drivers/bus/fsl-mc/fsl-mc-msi.c +++ b/drivers/bus/fsl-mc/fsl-mc-msi.c @@ -224,8 +224,12 @@ int fsl_mc_msi_domain_alloc_irqs(struct device *dev, unsigned int irq_count) if (error) return error; + msi_lock_descs(dev); if (msi_first_desc(dev, MSI_DESC_ALL)) - return -EINVAL; + error = -EINVAL; + msi_unlock_descs(dev); + if (error) + return error; /* * NOTE: Calling this function will trigger the invocation of the |