Skip to contentSkip to conversation

mfd: max77693: Remove unused iolock mutex

PATCH RESEND In review Axel Lin 2 participants 3 messages Jun 8, 2012 – Jun 29, 2012

Subsystems (2)
lore
Share & tools
lore

Axel Lin

author
#0 lore raw

PATCH RESEND 1/2 mfd: max77693: Remove unused iolock mutex

Now this driver is using regmap API, the iolock mutex is not used and can be removed.

---
 drivers/mfd/max77693.c               |    2 --
 include/linux/mfd/max77693-private.h |    1 -
 2 files changed, 3 deletions(-)
drivers/mfd/max77693.c +0 -2
index e9e4278..4055bc2 100644
@@ -138,8 +138,6 @@ static int max77693_i2c_probe(struct i2c_client *i2c,
 
 	max77693->wakeup = pdata->wakeup;
 
-	mutex_init(&max77693->iolock);
-
 	if (max77693_read_reg(max77693->regmap,
 				MAX77693_PMIC_REG_PMIC_ID2, &reg_data) < 0) {
 		dev_err(max77693->dev, "device not found on this channel\n");
include/linux/mfd/max77693-private.h +0 -1
index 68263c5..1eeae5c 100644
@@ -190,7 +190,6 @@ struct max77693_dev {
 	struct i2c_client *i2c;		/* 0xCC , PMIC, Charger, Flash LED */
 	struct i2c_client *muic;	/* 0x4A , MUIC */
 	struct i2c_client *haptic;	/* 0x90 , Haptic */
-	struct mutex iolock;
 
 	int type;
 
Signature · 1 line
1.7.9.5
author
#1 lore raw

PATCH 2/2 mfd: max77693: fix irq leak and wrong kfree call

We need to call max77693_irq_exit() in max77693_i2c_probe error patch and max77693_i2c_remove.

Current code already uses devm_kzalloc() to allocate memory for max77693. Thus we should not call kfree(max77693), otherwise we got double free.

---
 drivers/mfd/max77693.c |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
drivers/mfd/max77693.c +5 -4
index 4055bc2..4251757 100644
@@ -122,7 +122,7 @@ static int max77693_i2c_probe(struct i2c_client *i2c,
 	max77693->regmap = devm_regmap_init_i2c(i2c, &max77693_regmap_config);
 	if (IS_ERR(max77693->regmap)) {
 		ret = PTR_ERR(max77693->regmap);
-		dev_err(max77693->dev,"failed to allocate register map: %d\n",
+		dev_err(max77693->dev, "failed to allocate register map: %d\n",
 				ret);
 		goto err_regmap;
 	}
@@ -154,7 +154,7 @@ static int max77693_i2c_probe(struct i2c_client *i2c,
 
 	ret = max77693_irq_init(max77693);
 	if (ret < 0)
-		goto err_mfd;
+		goto err_irq;
 
 	pm_runtime_set_active(max77693->dev);
 
@@ -168,11 +168,11 @@ static int max77693_i2c_probe(struct i2c_client *i2c,
 	return ret;
 
 err_mfd:
+	max77693_irq_exit(max77693);
+err_irq:
 	i2c_unregister_device(max77693->muic);
 	i2c_unregister_device(max77693->haptic);
 err_regmap:
-	kfree(max77693);
-
 	return ret;
 }
 
@@ -181,6 +181,7 @@ static int max77693_i2c_remove(struct i2c_client *i2c)
 	struct max77693_dev *max77693 = i2c_get_clientdata(i2c);
 
 	mfd_remove_devices(max77693->dev);
+	max77693_irq_exit(max77693);
 	i2c_unregister_device(max77693->muic);
 	i2c_unregister_device(max77693->haptic);
 
Signature · 1 line
1.7.9.5
#2 lore raw

Re: [PATCH 2/2] mfd: max77693: fix irq leak and wrong kfree call

Hi Axel,

Quoted 16 lines · Axel Lin

We need to call max77693_irq_exit() in max77693_i2c_probe error patch and max77693_i2c_remove.

Current code already uses devm_kzalloc() to allocate memory for max77693. Thus we should not call kfree(max77693), otherwise we got double free.

---
 drivers/mfd/max77693.c |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
drivers/mfd/max77693.c +0 -0
index 4055bc2..4251757 100644

drivers/mfd/max77693.c static int max77693_i2c_probe(struct i2c_client *i2c, · line 128

Quoted 8 lines
drivers/mfd/max77693.c +1 -1
@@ -122,7 +122,7 @@ static int max77693_i2c_probe(struct i2c_client *i2c,
 	max77693->regmap = devm_regmap_init_i2c(i2c, &max77693_regmap_config);
 	if (IS_ERR(max77693->regmap)) {
 		ret = PTR_ERR(max77693->regmap);
-		dev_err(max77693->dev,"failed to allocate register map: %d\n",
+		dev_err(max77693->dev, "failed to allocate register map: %d\n",
 				ret);
 		goto err_regmap;
 	}

This is an unrelated change. I applied this patch except for this chunk.

Cheers,
Samuel.

Signature · 2 lines
Intel Open Source Technology Centre
http://oss.intel.com/