mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
crypto: algif - return error code when no data was processed
If no data has been processed during recvmsg, return the error code. This covers all errors received during non-AIO operations. If any error occurs during a synchronous operation in addition to -EIOCBQUEUED or -EBADMSG (like -ENOMEM), it should be relayed to the caller. Signed-off-by: Stephan Mueller <[email protected]> Signed-off-by: Herbert Xu <[email protected]>
This commit is contained in:
parent
5060ffc97b
commit
5703c826b7
2 changed files with 6 additions and 2 deletions
|
|
@ -791,9 +791,11 @@ static int aead_recvmsg(struct socket *sock, struct msghdr *msg,
|
|||
* only handle one AIO request. If the caller wants to have
|
||||
* multiple AIO requests in parallel, he must make multiple
|
||||
* separate AIO calls.
|
||||
*
|
||||
* Also return the error if no data has been processed so far.
|
||||
*/
|
||||
if (err <= 0) {
|
||||
if (err == -EIOCBQUEUED || err == -EBADMSG)
|
||||
if (err == -EIOCBQUEUED || err == -EBADMSG || !ret)
|
||||
ret = err;
|
||||
goto out;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -714,9 +714,11 @@ static int skcipher_recvmsg(struct socket *sock, struct msghdr *msg,
|
|||
* only handle one AIO request. If the caller wants to have
|
||||
* multiple AIO requests in parallel, he must make multiple
|
||||
* separate AIO calls.
|
||||
*
|
||||
* Also return the error if no data has been processed so far.
|
||||
*/
|
||||
if (err <= 0) {
|
||||
if (err == -EIOCBQUEUED)
|
||||
if (err == -EIOCBQUEUED || !ret)
|
||||
ret = err;
|
||||
goto out;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue