soc/tegra: pmc: Ensure mutex is always initialised
The mutex used by the PMC driver may not be initialised if early initialisation of the driver fails. If this does happen, then it could be possible for callers of the public PMC functions to still attempt to acquire the mutex. Fix this by initialising the mutex as soon as possible to ensure it will always be initialised. Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
718a2426e8
commit
61fd284be8
@ -1504,6 +1504,8 @@ static int __init tegra_pmc_early_init(void)
|
|||||||
bool invert;
|
bool invert;
|
||||||
u32 value;
|
u32 value;
|
||||||
|
|
||||||
|
mutex_init(&pmc->powergates_lock);
|
||||||
|
|
||||||
np = of_find_matching_node_and_match(NULL, tegra_pmc_match, &match);
|
np = of_find_matching_node_and_match(NULL, tegra_pmc_match, &match);
|
||||||
if (!np) {
|
if (!np) {
|
||||||
/*
|
/*
|
||||||
@ -1548,8 +1550,6 @@ static int __init tegra_pmc_early_init(void)
|
|||||||
return -ENXIO;
|
return -ENXIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_init(&pmc->powergates_lock);
|
|
||||||
|
|
||||||
if (np) {
|
if (np) {
|
||||||
pmc->soc = match->data;
|
pmc->soc = match->data;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user