mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-05 10:04:12 +08:00
clk: Check for allocation errors in of_clk_init()
Dan Carpenter reports that we don't check the allocation here for failure. Add a failure check and free any previously allocated providers from the clk_provider_list. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Cc: Gregory CLEMENT <gregory.clement@free-electrons.com> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
This commit is contained in:
parent
ca7d07a22a
commit
2e3b19f137
@ -3112,8 +3112,17 @@ void __init of_clk_init(const struct of_device_id *matches)
|
||||
|
||||
/* First prepare the list of the clocks providers */
|
||||
for_each_matching_node_and_match(np, matches, &match) {
|
||||
struct clock_provider *parent =
|
||||
kzalloc(sizeof(struct clock_provider), GFP_KERNEL);
|
||||
struct clock_provider *parent;
|
||||
|
||||
parent = kzalloc(sizeof(*parent), GFP_KERNEL);
|
||||
if (!parent) {
|
||||
list_for_each_entry_safe(clk_provider, next,
|
||||
&clk_provider_list, node) {
|
||||
list_del(&clk_provider->node);
|
||||
kfree(clk_provider);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
parent->clk_init_cb = match->data;
|
||||
parent->np = np;
|
||||
|
Loading…
Reference in New Issue
Block a user