summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAndrew Chant <achant@google.com>2016-12-02 20:49:26 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-02-13 18:20:36 -0800
commitc771875bbc49ac7635317ffd0e87c3eadd19ec92 (patch)
tree2c4e0194a2346bd7784008fae0a04f7f596eefdf /drivers
parent3a7e752617514960c5cecdf84e12b13dc63c04c7 (diff)
input: synaptics_dsx: reallocate buffer under lock.
Prevent concurrent usage & re-allocation of the wr_buf variable. Based off patch by chengengjia <chengjia4574@gmail.com>. BUG: 33001936 Change-Id: I88d78e1ec0fc9e88b1e6824c06161b67d01136ec Signed-off-by: Andrew Chant <achant@google.com> Git-commit: d740e7228bd1578ed01762998b2a86e7df56e608 Git-repo: https://android.googlesource.com/kernel/msm Signed-off-by: Dennis Cagle <d-cagle@codeaurora.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_i2c.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_i2c.c b/drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_i2c.c
index f936f3c2ebb1..563ce16885b3 100644
--- a/drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_i2c.c
+++ b/drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_i2c.c
@@ -445,11 +445,11 @@ static int synaptics_rmi4_i2c_write(struct synaptics_rmi4_data *rmi4_data,
struct i2c_client *i2c = to_i2c_client(rmi4_data->pdev->dev.parent);
struct i2c_msg msg[1];
+ mutex_lock(&rmi4_data->rmi4_io_ctrl_mutex);
+
retval = synaptics_rmi4_i2c_alloc_buf(rmi4_data, length + 1);
if (retval < 0)
- return retval;
-
- mutex_lock(&rmi4_data->rmi4_io_ctrl_mutex);
+ goto exit;
retval = synaptics_rmi4_i2c_set_page(rmi4_data, addr);
if (retval != PAGE_SELECT_LEN) {