Commit dbd2df85 authored by Ezequiel Garcia's avatar Ezequiel Garcia Committed by Greg Kroah-Hartman

serial: 8250_dw: Add valid clk pointer check

Commit ffc3ae6d "serial: 8250_dw: Enable runtime PM" introduced runtime
PM management, which enables/disables the clk without checking if the clk
is valid. However, this driver allows to be probed without a defined clk,
using clock-frequency, as a fallback.

Therefore, on platforms that are device tree probed using clock-frequency
instead of clk, we get an ugly NULL pointer dereference.

This patch fixes it by simply adding a check before accessing the clk api.
Signed-off-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f722406f
...@@ -338,7 +338,8 @@ static int dw8250_runtime_suspend(struct device *dev) ...@@ -338,7 +338,8 @@ static int dw8250_runtime_suspend(struct device *dev)
{ {
struct dw8250_data *data = dev_get_drvdata(dev); struct dw8250_data *data = dev_get_drvdata(dev);
clk_disable_unprepare(data->clk); if (!IS_ERR(data->clk))
clk_disable_unprepare(data->clk);
return 0; return 0;
} }
...@@ -347,7 +348,8 @@ static int dw8250_runtime_resume(struct device *dev) ...@@ -347,7 +348,8 @@ static int dw8250_runtime_resume(struct device *dev)
{ {
struct dw8250_data *data = dev_get_drvdata(dev); struct dw8250_data *data = dev_get_drvdata(dev);
clk_prepare_enable(data->clk); if (!IS_ERR(data->clk))
clk_prepare_enable(data->clk);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment