On Fri, Nov 29, 2024 at 12:10:58PM +0100, Harald Freudenberger wrote: > > +static inline int phmac_keyblob2pkey(const u8 *key, unsigned int keylen, > + struct phmac_protkey *pk) > +{ > + int i, rc = -EIO; > + > + /* try three times in case of busy card */ > + for (i = 0; rc && i < 3; i++) { > + if (rc == -EBUSY && msleep_interruptible(1000)) > + return -EINTR; You can't sleep in an ahash algorithm either. What you can do however is schedule a delayed work and pick up where you left off. That's how asynchronous completion works. But my question still stands, under what circumstances can this fail? I don't think storage folks will be too happy with a crypto algorithm that can produce random failures. Cheers, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt