Skip to contentSkip to conversation

mfd: mc13xxx-core: Initialize the lock prior to using it

PATCH In review Fabio Estevam 2 participants 2 messages Apr 15, 2014 – Apr 16, 2014 Multifunction devices (MFD)

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 mfd: mc13xxx-core: Initialize the lock prior to using it

From: Fabio Estevam <[email protected]>

After request_threaded_irq() is called there is a chance that an interrupt may occur before the 'mc13xxx->lock' is initialized, which will trigger a kernel oops.

In order to prevent that, move the initialization of 'mc13xxx->lock' prior to requesting the interrupts.

---
Changes since v1:
- Changed kernel warning --> kernel oops to better describe the problem
- Added Russell's Ack

 drivers/mfd/mc13xxx-core.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/mfd/mc13xxx-core.c +2 -2
index 06e64b6..9e296c4 100644
@@ -660,13 +660,13 @@ int mc13xxx_common_init(struct device *dev)
 	if (ret)
 		return ret;
 
+	mutex_init(&mc13xxx->lock);
+
 	ret = request_threaded_irq(mc13xxx->irq, NULL, mc13xxx_irq_thread,
 			IRQF_ONESHOT | IRQF_TRIGGER_HIGH, "mc13xxx", mc13xxx);
 	if (ret)
 		return ret;
 
-	mutex_init(&mc13xxx->lock);
-
 	if (mc13xxx_probe_flags_dt(mc13xxx) < 0 && pdata)
 		mc13xxx->flags = pdata->flags;
 
Signature · 1 line
1.8.3.2
#1 lore raw
Quoted 9 lines

From: Fabio Estevam <[email protected]>

After request_threaded_irq() is called there is a chance that an interrupt may occur before the 'mc13xxx->lock' is initialized, which will trigger a kernel oops.

In order to prevent that, move the initialization of 'mc13xxx->lock' prior to requesting the interrupts.

Quoted 6 lines

---
Changes since v1:
- Changed kernel warning --> kernel oops to better describe the problem
- Added Russell's Ack

No you didn't. ;)

Applied with Russell's Ack.

Signature · 4 lines
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog