• Steve Cornelius's avatar
    crypto: caam - fix RNG buffer cache alignment · 412c98c1
    Steve Cornelius authored
    The hwrng output buffers (2) are cast inside of a a struct (caam_rng_ctx)
    allocated in one DMA-tagged region. While the kernel's heap allocator
    should place the overall struct on a cacheline aligned boundary, the 2
    buffers contained within may not necessarily align. Consenquently, the ends
    of unaligned buffers may not fully flush, and if so, stale data will be left
    behind, resulting in small repeating patterns.
    
    This fix aligns the buffers inside the struct.
    
    Note that not all of the data inside caam_rng_ctx necessarily needs to be
    DMA-tagged, only the buffers themselves require this. However, a fix would
    incur the expense of error-handling bloat in the case of allocation failure.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarSteve Cornelius <steve.cornelius@freescale.com>
    Signed-off-by: default avatarVictoria Milhoan <vicki.milhoan@freescale.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    412c98c1
caamrng.c 8.68 KB