summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev/msm
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-05-27 18:12:12 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-05-27 18:12:12 -0700
commitce48f56032a340cbc6d9423e6cec3ef4ec15bfc6 (patch)
tree7a37715f000de8cfc93c0b434dd32c96f8c8b510 /drivers/video/fbdev/msm
parent8c1e34400a43d0ad51cdd12c0d279554a5f5c4ee (diff)
parentc9a6f09f1030cec591df837622cb54bbb2d24ddc (diff)
Merge "msm: mdss: remove client from device list if failed to register"
Diffstat (limited to 'drivers/video/fbdev/msm')
-rw-r--r--drivers/video/fbdev/msm/msm_dba/msm_dba.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/video/fbdev/msm/msm_dba/msm_dba.c b/drivers/video/fbdev/msm/msm_dba/msm_dba.c
index 7a5c9d9d873a..cc6512a4af9b 100644
--- a/drivers/video/fbdev/msm/msm_dba/msm_dba.c
+++ b/drivers/video/fbdev/msm/msm_dba/msm_dba.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2015,2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -80,6 +80,11 @@ void *msm_dba_register_client(struct msm_dba_reg_info *info,
if (rc) {
pr_err("%s: Client register failed (%s, %d)\n",
__func__, info->chip_name, info->instance_id);
+ /* remove the client from list before freeing */
+ mutex_lock_nested(&device->dev_mutex,
+ SINGLE_DEPTH_NESTING);
+ list_del(&client->list);
+ mutex_unlock(&device->dev_mutex);
kfree(client);
mutex_unlock(&register_mutex);
return ERR_PTR(rc);