Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ef45a0b6 authored by Vishalsingh Hajeri's avatar Vishalsingh Hajeri
Browse files

msm: camera: eeprom: set platform driver data to null



when kfree is called on ectrl structure during
driver remove, there is a dangling pointer left
in platform driver data and v4l2 subdevice.
This change will assign these dangling pointers
to NULL.

Change-Id: If65ac2b5f6ac55a274df223ff4ea1b449c0809cf
Signed-off-by: default avatarVishalsingh Hajeri <vhajeri@codeaurora.org>
parent 54c14f3c
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -261,7 +261,10 @@ static int cam_eeprom_i2c_driver_remove(struct i2c_client *client)
	for (i = 0; i < soc_info->num_clk; i++)
		devm_clk_put(soc_info->dev, soc_info->clk[i]);

	mutex_destroy(&(e_ctrl->eeprom_mutex));
	kfree(soc_private);
	kfree(e_ctrl->io_master_info.cci_client);
	v4l2_set_subdevdata(&e_ctrl->v4l2_dev_str.sd, NULL);
	kfree(e_ctrl);

	return 0;
@@ -392,6 +395,8 @@ static int cam_eeprom_spi_driver_remove(struct spi_device *sdev)
		kfree(soc_private->power_info.gpio_num_info);
		kfree(soc_private);
	}
	mutex_destroy(&(e_ctrl->eeprom_mutex));
	v4l2_set_subdevdata(&e_ctrl->v4l2_dev_str.sd, NULL);
	kfree(e_ctrl);

	return 0;
@@ -487,8 +492,11 @@ static int cam_eeprom_platform_driver_remove(struct platform_device *pdev)
	for (i = 0; i < soc_info->num_clk; i++)
		devm_clk_put(soc_info->dev, soc_info->clk[i]);

	mutex_destroy(&(e_ctrl->eeprom_mutex));
	kfree(soc_info->soc_private);
	kfree(e_ctrl->io_master_info.cci_client);
	platform_set_drvdata(pdev, NULL);
	v4l2_set_subdevdata(&e_ctrl->v4l2_dev_str.sd, NULL);
	kfree(e_ctrl);
	return 0;
}