aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/af_alg.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/af_alg.c')
-rw-r--r--crypto/af_alg.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/crypto/af_alg.c b/crypto/af_alg.c
index 49fa8582138b..314c52c967e5 100644
--- a/crypto/af_alg.c
+++ b/crypto/af_alg.c
@@ -1060,12 +1060,19 @@ void af_alg_async_cb(struct crypto_async_request *_req, int err)
1060} 1060}
1061EXPORT_SYMBOL_GPL(af_alg_async_cb); 1061EXPORT_SYMBOL_GPL(af_alg_async_cb);
1062 1062
1063__poll_t af_alg_poll_mask(struct socket *sock, __poll_t events) 1063/**
1064 * af_alg_poll - poll system call handler
1065 */
1066__poll_t af_alg_poll(struct file *file, struct socket *sock,
1067 poll_table *wait)
1064{ 1068{
1065 struct sock *sk = sock->sk; 1069 struct sock *sk = sock->sk;
1066 struct alg_sock *ask = alg_sk(sk); 1070 struct alg_sock *ask = alg_sk(sk);
1067 struct af_alg_ctx *ctx = ask->private; 1071 struct af_alg_ctx *ctx = ask->private;
1068 __poll_t mask = 0; 1072 __poll_t mask;
1073
1074 sock_poll_wait(file, sk_sleep(sk), wait);
1075 mask = 0;
1069 1076
1070 if (!ctx->more || ctx->used) 1077 if (!ctx->more || ctx->used)
1071 mask |= EPOLLIN | EPOLLRDNORM; 1078 mask |= EPOLLIN | EPOLLRDNORM;
@@ -1075,7 +1082,7 @@ __poll_t af_alg_poll_mask(struct socket *sock, __poll_t events)
1075 1082
1076 return mask; 1083 return mask;
1077} 1084}
1078EXPORT_SYMBOL_GPL(af_alg_poll_mask); 1085EXPORT_SYMBOL_GPL(af_alg_poll);
1079 1086
1080/** 1087/**
1081 * af_alg_alloc_areq - allocate struct af_alg_async_req 1088 * af_alg_alloc_areq - allocate struct af_alg_async_req