mirror of
https://github.com/torvalds/linux.git
synced 2026-07-31 11:37:06 +02:00
clk: qcom: Check clk_is_regmap() before accessing its data members
The clk_hw pointer can only be treated as a clk_regmap if the clk_hw is known to be embedded within a clk_regmap structure. So first check that before casting and accessing its data members. Change-Id: Icad375b036ffa44c441ef16c45307bd2c0603de0 Signed-off-by: Vivek Aknurwar <viveka@codeaurora.org> Signed-off-by: Mike Tipton <quic_mdtipton@quicinc.com>
This commit is contained in:
parent
0804c7e037
commit
66d30da10f
|
|
@ -766,10 +766,16 @@ void clk_common_debug_init(struct clk_hw *hw, struct dentry *dentry)
|
|||
|
||||
static int clk_list_rate_vdd_level(struct clk_hw *hw, unsigned int rate)
|
||||
{
|
||||
struct clk_regmap *rclk = to_clk_regmap(hw);
|
||||
struct clk_vdd_class_data *vdd_data = &rclk->vdd_data;
|
||||
struct clk_regmap *rclk;
|
||||
struct clk_vdd_class_data *vdd_data;
|
||||
|
||||
if (!vdd_data->vdd_class || !clk_is_regmap_clk(hw))
|
||||
if (!clk_is_regmap_clk(hw))
|
||||
return 0;
|
||||
|
||||
rclk = to_clk_regmap(hw);
|
||||
vdd_data = &rclk->vdd_data;
|
||||
|
||||
if (!vdd_data->vdd_class)
|
||||
return 0;
|
||||
|
||||
return clk_find_vdd_level(hw, vdd_data, rate);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user