• Harald Freudenberger's avatar
    s390/zcrypt: introduce retries on in-kernel send CPRB functions · 77c51fc6
    Harald Freudenberger authored
    The both functions zcrypt_send_cprb() and zcrypt_send_ep11_cprb()
    are used to send CPRBs in-kernel from different sources. For
    example the pkey module may call one of the functions in
    zcrypt_ep11misc.c to trigger a derive of a protected key from
    a secure key blob via an existing crypto card. These both
    functions are then the internal API to send the CPRB and
    receive the response.
    
    All the ioctl functions to send an CPRB down to the addressed
    crypto card use some kind of retry mechanism. When the first
    attempt fails with ENODEV, a bus rescan is triggered and a
    loop with retries is carried out.
    
    For the both named internal functions there was never any
    retry attempt made. This patch now introduces the retry code
    even for this both internal functions to have effectively
    same behavior on sending an CPRB from an in-kernel source
    and sending an CPRB from userspace via ioctl.
    Signed-off-by: default avatarHarald Freudenberger <freude@linux.ibm.com>
    Reviewed-by: default avatarHolger Dengler <dengler@linux.ibm.com>
    Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    77c51fc6
zcrypt_api.c 56.9 KB