crypto: marvell/CESA: Issues with non cache-line aligned buffers

Boris Brezillon boris.brezillon at free-electrons.com
Fri Jul 3 07:19:10 PDT 2015


Hi Russel,

On Fri, 3 Jul 2015 14:10:59 +0100
Russell King - ARM Linux <linux at arm.linux.org.uk> wrote:

> BTW, off-topic for this thread... but I notice from Mark Brown's builder
> that mv_cesa is causing build errors in mainline now:
> 
>         arm-allmodconfig
> ../drivers/crypto/mv_cesa.c:1037:2: error: implicit declaration of function 'of_get_named_gen_pool' [-Werror=implicit-function-declaration]
> 
>         arm-multi_v5_defconfig
> ../drivers/crypto/mv_cesa.c:1037:2: error: implicit declaration of function 'of_get_named_gen_pool' [-Werror=implicit-function-declaration]
> 
> It seems it was fine on July 2nd, but the above was introduced today.

It has been fixed by Stephen in linux-next (see [1]).

> 
> A few other things I notice when looking at this code:
> 
>         /* Not all platforms can gate the clock, so it is not
>            an error if the clock does not exists. */
>         cp->clk = clk_get(&pdev->dev, NULL);
>         if (!IS_ERR(cp->clk))
>                 clk_prepare_enable(cp->clk);
> 
> So, if clk_get() returns PTR_ERR(-EPROBE_DEFER) we treat that clock as
> missing?  Is that really the behaviour you want there?

Nope, I'll fix that.

> 
>         ret = request_irq(irq, crypto_int, 0, dev_name(&pdev->dev),
>                         cp);
> 
> What happens if crypto_int() is called when request_irq() unlocks its
> spinlock, before the clock has been found?  Eg, because we're booting
> from a kexec'd kernel.

I don't know, and I agree that we should either request the clock
before registering the irq, or disable the IRQ using the
SEC_ACCEL_INT_MASK before calling request_irq. Ideally we should do
both.

Note that none of my patches changed the clk_get(), request_irq() calls
order, or the clk_get() error path ;-).

Anyway, I'll propose a patch fixing the problem.

Thanks for the feedback,

Boris

[1]https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/drivers/crypto/mv_cesa.c?id=7e6ce3db5329a32c83da9753bae162eb3f22dfca

-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com



More information about the linux-arm-kernel mailing list