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

Boris Brezillon
2017-03-16T09:05:39Z

Hi Simon,

On Sun, 12 Mar 2017 22:34:06 +0100
Simon Baatz <gmbnomis@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@vger.kernel.org> # v4.5+
> Signed-off-by: Simon Baatz <gmbnomis@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