diff options
| author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-05-27 18:12:12 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-05-27 18:12:12 -0700 |
| commit | ce48f56032a340cbc6d9423e6cec3ef4ec15bfc6 (patch) | |
| tree | 7a37715f000de8cfc93c0b434dd32c96f8c8b510 /drivers/video/fbdev/msm | |
| parent | 8c1e34400a43d0ad51cdd12c0d279554a5f5c4ee (diff) | |
| parent | c9a6f09f1030cec591df837622cb54bbb2d24ddc (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.c | 7 |
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(®ister_mutex); return ERR_PTR(rc); |
