On Fri, Nov 22, 2019 at 02:38:30PM +0100, Harald Freudenberger wrote: > > The pkey is in fact a encrypted key + a verification pattern for the > encrypted key used. It gets invalid when this encryption key changes. > The encryption key changes when the LPAR is re-activated so for > example on suspend/resume or an Linux running as kvm guest > gets relocated. So this happens very rarely. I see. Is there any way of you finding out that the key has been invalidated apart from trying out the crypto and having it fail? Ideally you'd have a global counter that gets incremented everytime an invalidation occurs. You can then regenerate your key if its generation counter differs from the current global counter. Also when the crypto fails due to an invalid key you're currently calling skcipher_walk_done with zero. This is wrong as the done function must be called with a positive value or an error. In some cases this can cause a crash in scatterwalk. IOW you should just repeat the crypto operation after regenerating the key rather than looping around again. Cheers, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt