mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-21 22:21:21 +00:00
clkdev: use clk_hw internally
clk_add_alias() calls clk_get() followed by clk_put() but in between those two calls it saves away the struct clk pointer to a clk_lookup structure. This leaves the 'clk' member of the clk_lookup pointing at freed memory on configurations where CONFIG_COMMON_CLK=y. This is a problem because clk_get_sys() will eventually try to dereference the freed pointer by calling __clk_get_hw() on it. Fix this by saving away the struct clk_hw pointer instead of the struct clk pointer so that when we try to create a per-user struct clk in clk_get_sys() we don't dereference a junk pointer. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
b787f68c36
commit
d5622a9c13
2 changed files with 17 additions and 8 deletions
|
@ -22,6 +22,7 @@ struct clk_lookup {
|
|||
const char *dev_id;
|
||||
const char *con_id;
|
||||
struct clk *clk;
|
||||
struct clk_hw *clk_hw;
|
||||
};
|
||||
|
||||
#define CLKDEV_INIT(d, n, c) \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue