msm: msm_bus: Add mutex to protect node_list
Static variable node_list list need to be protected with a mutex to prevent race conditions and use after free cases. Change-Id: I4790b06712b8a8b401f43418cfcc53b415fb0019 Signed-off-by: David Dai <daidavid1@codeaurora.org> Signed-off-by: Odelu Kukatla <okukatla@codeaurora.org>
This commit is contained in:
parent
75a9d0fee5
commit
346c7ec716
1 changed files with 7 additions and 2 deletions
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2014-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
|
||||
|
@ -410,8 +410,10 @@ void print_all_rules(void)
|
|||
{
|
||||
struct rule_node_info *node_it = NULL;
|
||||
|
||||
mutex_lock(&msm_bus_rules_lock);
|
||||
list_for_each_entry(node_it, &node_list, link)
|
||||
print_rules(node_it);
|
||||
mutex_unlock(&msm_bus_rules_lock);
|
||||
}
|
||||
|
||||
void print_rules_buf(char *buf, int max_buf)
|
||||
|
@ -421,6 +423,7 @@ void print_rules_buf(char *buf, int max_buf)
|
|||
int i;
|
||||
int cnt = 0;
|
||||
|
||||
mutex_lock(&msm_bus_rules_lock);
|
||||
list_for_each_entry(node_it, &node_list, link) {
|
||||
cnt += scnprintf(buf + cnt, max_buf - cnt,
|
||||
"\n Now printing rules for Node %d cur_rule %d\n",
|
||||
|
@ -452,6 +455,7 @@ void print_rules_buf(char *buf, int max_buf)
|
|||
node_rule->rule_ops.mode);
|
||||
}
|
||||
}
|
||||
mutex_unlock(&msm_bus_rules_lock);
|
||||
}
|
||||
|
||||
static int copy_rule(struct bus_rule_type *src, struct rules_def *node_rule,
|
||||
|
@ -721,11 +725,12 @@ bool msm_rule_are_rules_registered(void)
|
|||
{
|
||||
bool ret = false;
|
||||
|
||||
mutex_lock(&msm_bus_rules_lock);
|
||||
if (list_empty(&node_list))
|
||||
ret = false;
|
||||
else
|
||||
ret = true;
|
||||
|
||||
mutex_unlock(&msm_bus_rules_lock);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue