Thread (8 messages) 8 messages, 4 authors, 2015-07-04

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

flat view

From: Boris Brezillon <hidden>
Date: 2015-07-03 14:19:16
Also in: linux-crypto

Hi Russel,

On Fri, 3 Jul 2015 14:10:59 +0100
Russell King - ARM Linux [off-list ref] 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help