mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 05:39:54 -04:00
ASoC: bolero: Check for valid handle before pm_runtime_resume
Check for valid handle before pm_runtime_resume in bolero register read/write functions to avoid dereference. Change-Id: I34d567e7575202817f4fcda784d0f3df2ed77bde Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
This commit is contained in:
parent
2b5cb6ac75
commit
f2afc390ce
1 changed files with 12 additions and 6 deletions
|
|
@ -103,7 +103,8 @@ static int __bolero_reg_read(struct bolero_priv *priv,
|
|||
goto err;
|
||||
}
|
||||
|
||||
pm_runtime_get_sync(priv->macro_params[VA_MACRO].dev);
|
||||
if (priv->macro_params[VA_MACRO].dev)
|
||||
pm_runtime_get_sync(priv->macro_params[VA_MACRO].dev);
|
||||
current_mclk_mux_macro =
|
||||
priv->current_mclk_mux_macro[macro_id];
|
||||
if (!priv->macro_params[current_mclk_mux_macro].mclk_fn) {
|
||||
|
|
@ -125,8 +126,10 @@ static int __bolero_reg_read(struct bolero_priv *priv,
|
|||
priv->macro_params[current_mclk_mux_macro].mclk_fn(
|
||||
priv->macro_params[current_mclk_mux_macro].dev, false);
|
||||
err:
|
||||
pm_runtime_mark_last_busy(priv->macro_params[VA_MACRO].dev);
|
||||
pm_runtime_put_autosuspend(priv->macro_params[VA_MACRO].dev);
|
||||
if (priv->macro_params[VA_MACRO].dev) {
|
||||
pm_runtime_mark_last_busy(priv->macro_params[VA_MACRO].dev);
|
||||
pm_runtime_put_autosuspend(priv->macro_params[VA_MACRO].dev);
|
||||
}
|
||||
mutex_unlock(&priv->clk_lock);
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -143,7 +146,8 @@ static int __bolero_reg_write(struct bolero_priv *priv,
|
|||
"%s: SSR in progress, exit\n", __func__);
|
||||
goto err;
|
||||
}
|
||||
ret = pm_runtime_get_sync(priv->macro_params[VA_MACRO].dev);
|
||||
if (priv->macro_params[VA_MACRO].dev)
|
||||
ret = pm_runtime_get_sync(priv->macro_params[VA_MACRO].dev);
|
||||
current_mclk_mux_macro =
|
||||
priv->current_mclk_mux_macro[macro_id];
|
||||
if (!priv->macro_params[current_mclk_mux_macro].mclk_fn) {
|
||||
|
|
@ -165,8 +169,10 @@ static int __bolero_reg_write(struct bolero_priv *priv,
|
|||
priv->macro_params[current_mclk_mux_macro].mclk_fn(
|
||||
priv->macro_params[current_mclk_mux_macro].dev, false);
|
||||
err:
|
||||
pm_runtime_mark_last_busy(priv->macro_params[VA_MACRO].dev);
|
||||
pm_runtime_put_autosuspend(priv->macro_params[VA_MACRO].dev);
|
||||
if (priv->macro_params[VA_MACRO].dev) {
|
||||
pm_runtime_mark_last_busy(priv->macro_params[VA_MACRO].dev);
|
||||
pm_runtime_put_autosuspend(priv->macro_params[VA_MACRO].dev);
|
||||
}
|
||||
mutex_unlock(&priv->clk_lock);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue