• Fengguang Wu's avatar
    clk: validate pointer in __clk_disable() · e47c6a34
    Fengguang Wu authored
    clk_get() returns -ENOENT on error and some careless caller might
    dereference it without error checking:
    
    In mxc_rnga_remove():
    
            struct clk *clk = clk_get(&pdev->dev, "rng");
    
    	// ...
    
            clk_disable(clk);
    
    Since it's insane to audit the lots of existing and future clk users,
    let's add a check in the callee to avoid kernel panic and warn about
    any buggy user.
    
    Cc: Russell King <rmk@arm.linux.org.uk>
    Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
    Cc: Viresh Kumar <viresh.kumar@st.com>
    Cc: viresh kumar <viresh.linux@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    e47c6a34
clk.c 41.2 KB