• A
    crypto: arm64/aes-ce - deal with oversight in new CTR carry code · 0f19dbc9
    Ard Biesheuvel 提交于
    The new carry handling code in the CTR driver can deal with a carry
    occurring in the 4x/5x parallel code path, by using a computed goto to
    jump into the carry sequence at the right place as to only apply the
    carry to a subset of the blocks being processed.
    
    If the lower half of the counter wraps and ends up at exactly 0x0, a
    carry needs to be applied to the counter, but not to the counter values
    taken for the 4x/5x parallel sequence. In this case, the computed goto
    skips all register assignments, and branches straight to the jump
    instruction that gets us back to the fast path. This produces the
    correct result, but due to the fact that this branch target does not
    carry the correct BTI annotation, this fails when BTI is enabled.
    
    Let's omit the computed goto entirely in this case, and jump straight
    back to the fast path after applying the carry to the main counter.
    
    Fixes: 5318d3db ("crypto: arm64/aes-ctr - improve tail handling")
    Signed-off-by: NArd Biesheuvel <ardb@kernel.org>
    Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
    0f19dbc9
aes-modes.S 16.9 KB