[PATCH] mtd: nand: orion: fix clk handling

Boris Brezillon boris.brezillon at free-electrons.com
Thu Mar 16 02:05:39 PDT 2017


Hi Simon,

On Sun, 12 Mar 2017 22:34:06 +0100
Simon Baatz <gmbnomis at gmail.com> wrote:

> The clk handling in orion_nand.c had two problems:
> 
> - In the probe function, clk_put() was called for an enabled clock,
>   which violates the API (see documentation for clk_put() in
>   include/linux/clk.h)
> 
> - In the error path of the probe function, clk_put() could be called
>   twice for the same clock.
> 
> In order to clean this up, use the managed function devm_clk_get() and
> store the pointer to the clk in the driver data.
> 
> Fixes: baffab28b13120694fa3ebab08d3e99667a851d2 ('ARM: Orion: fix driver probe error handling with respect to clk')
> Cc: <stable at vger.kernel.org> # v4.5+
> Signed-off-by: Simon Baatz <gmbnomis at gmail.com>
> ---
>  drivers/mtd/nand/orion_nand.c | 42 +++++++++++++++++++++---------------------
>  1 file changed, 21 insertions(+), 21 deletions(-)
> 
> diff --git a/drivers/mtd/nand/orion_nand.c b/drivers/mtd/nand/orion_nand.c
> index 4a91c5d000be..b355aa738fae 100644
> --- a/drivers/mtd/nand/orion_nand.c
> +++ b/drivers/mtd/nand/orion_nand.c
> @@ -23,6 +23,11 @@
>  #include <asm/sizes.h>
>  #include <linux/platform_data/mtd-orion_nand.h>
>  
> +struct orion_nand_info {
> +	struct nand_chip chip;
> +	struct clk       *clk;

Can we avoid this kind of alignment, which will not be preserved if
someone adds a new field with a type that is longer than "struct
nand_chip "?

Regards,

Boris




More information about the linux-arm-kernel mailing list