aboutsummaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
Diffstat (limited to 'crypto')
-rw-r--r--crypto/af_alg.c13
-rw-r--r--crypto/algif_aead.c4
-rw-r--r--crypto/algif_skcipher.c4
3 files changed, 14 insertions, 7 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
diff --git a/crypto/algif_aead.c b/crypto/algif_aead.c
index 825524f27438..c40a8c7ee8ae 100644
--- a/crypto/algif_aead.c
+++ b/crypto/algif_aead.c
@@ -375,7 +375,7 @@ static struct proto_ops algif_aead_ops = {
375 .sendmsg = aead_sendmsg, 375 .sendmsg = aead_sendmsg,
376 .sendpage = af_alg_sendpage, 376 .sendpage = af_alg_sendpage,
377 .recvmsg = aead_recvmsg, 377 .recvmsg = aead_recvmsg,
378 .poll_mask = af_alg_poll_mask, 378 .poll = af_alg_poll,
379}; 379};
380 380
381static int aead_check_key(struct socket *sock) 381static int aead_check_key(struct socket *sock)
@@ -471,7 +471,7 @@ static struct proto_ops algif_aead_ops_nokey = {
471 .sendmsg = aead_sendmsg_nokey, 471 .sendmsg = aead_sendmsg_nokey,
472 .sendpage = aead_sendpage_nokey, 472 .sendpage = aead_sendpage_nokey,
473 .recvmsg = aead_recvmsg_nokey, 473 .recvmsg = aead_recvmsg_nokey,
474 .poll_mask = af_alg_poll_mask, 474 .poll = af_alg_poll,
475}; 475};
476 476
477static void *aead_bind(const char *name, u32 type, u32 mask) 477static void *aead_bind(const char *name, u32 type, u32 mask)
diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c
index 4c04eb9888ad..cfdaab2b7d76 100644
--- a/crypto/algif_skcipher.c
+++ b/crypto/algif_skcipher.c
@@ -206,7 +206,7 @@ static struct proto_ops algif_skcipher_ops = {
206 .sendmsg = skcipher_sendmsg, 206 .sendmsg = skcipher_sendmsg,
207 .sendpage = af_alg_sendpage, 207 .sendpage = af_alg_sendpage,
208 .recvmsg = skcipher_recvmsg, 208 .recvmsg = skcipher_recvmsg,
209 .poll_mask = af_alg_poll_mask, 209 .poll = af_alg_poll,
210}; 210};
211 211
212static int skcipher_check_key(struct socket *sock) 212static int skcipher_check_key(struct socket *sock)
@@ -302,7 +302,7 @@ static struct proto_ops algif_skcipher_ops_nokey = {
302 .sendmsg = skcipher_sendmsg_nokey, 302 .sendmsg = skcipher_sendmsg_nokey,
303 .sendpage = skcipher_sendpage_nokey, 303 .sendpage = skcipher_sendpage_nokey,
304 .recvmsg = skcipher_recvmsg_nokey, 304 .recvmsg = skcipher_recvmsg_nokey,
305 .poll_mask = af_alg_poll_mask, 305 .poll = af_alg_poll,
306}; 306};
307 307
308static void *skcipher_bind(const char *name, u32 type, u32 mask) 308static void *skcipher_bind(const char *name, u32 type, u32 mask)