diff options
author | Camera Software Integration <camswint@quicinc.com> | 2020-04-20 01:06:30 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2020-04-20 01:06:30 -0700 |
commit | ca43bc275dc0b8e0b1021f2053a3358e318e8012 (patch) | |
tree | e4b3eb25f476c286de909ded43217c01721b274a | |
parent | bfdb41121d46b59d68b66fede4ce51d2fb6f4c28 (diff) | |
parent | af374fc4976c45a9a54b96391fd12fe994be5e50 (diff) | |
download | camera-kernel-ca43bc275dc0b8e0b1021f2053a3358e318e8012.tar.gz |
Merge "msm: camera: sync: Prevent spin lock recursion" into camera-kernel.lnx.1.0
-rw-r--r-- | drivers/cam_sync/cam_sync_util.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/cam_sync/cam_sync_util.c b/drivers/cam_sync/cam_sync_util.c index d7e0f41..05e59dd 100644 --- a/drivers/cam_sync/cam_sync_util.c +++ b/drivers/cam_sync/cam_sync_util.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. */ #include "cam_sync_util.h" @@ -72,6 +72,12 @@ int cam_sync_init_group_object(struct sync_table_row *table, * If any child state is ERROR or SUCCESS, it will not be added to list. */ for (i = 0; i < num_objs; i++) { + if (idx == sync_objs[i]) { + CAM_ERR(CAM_SYNC, + "Invalid, same as parent fence : %i", idx); + rc = -EINVAL; + goto clean_children_info; + } child_row = table + sync_objs[i]; spin_lock_bh(&sync_dev->row_spinlocks[sync_objs[i]]); |