mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 11:03:43 +02:00
serial: 8250_dw: handle clock enable errors in runtime_resume
Add error checking for clk_prepare_enable() calls in dw8250_runtime_resume(). Currently if either clock fails to enable, the function returns success while leaving clocks in inconsistent state. This change implements comprehensive error handling by checking the return values of both clk_prepare_enable() calls. If the second clock enable operation fails after the first clock has already been successfully enabled, the code now properly cleans up by disabling and unpreparing the first clock before returning. The error code is then propagated to the caller, ensuring that clock enable failures are properly reported rather than being silently ignored. Signed-off-by: Artem Shimko <a.shimko.dev@gmail.com> Link: https://patch.msgid.link/20251104145433.2316165-2-a.shimko.dev@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
8f0b4cce44
commit
d31228143a
|
|
@ -741,11 +741,18 @@ static int dw8250_runtime_suspend(struct device *dev)
|
|||
|
||||
static int dw8250_runtime_resume(struct device *dev)
|
||||
{
|
||||
int ret;
|
||||
struct dw8250_data *data = dev_get_drvdata(dev);
|
||||
|
||||
clk_prepare_enable(data->pclk);
|
||||
ret = clk_prepare_enable(data->pclk);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
clk_prepare_enable(data->clk);
|
||||
ret = clk_prepare_enable(data->clk);
|
||||
if (ret) {
|
||||
clk_disable_unprepare(data->pclk);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user