summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-06-04 16:57:43 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2018-06-04 16:57:43 -0400
commit408afb8d7847faea115508ba154346e33edfc7d5 (patch)
tree9b558f8477d7400ad5e8849c2624471915654ade /crypto
parentb058efc1acfd99027b4c70458e72c3d20a1a5bbc (diff)
parent1da92779e2e8f309d5aecbbed346e7f812b174e8 (diff)
Merge branch 'work.aio-1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull aio updates from Al Viro: "Majority of AIO stuff this cycle. aio-fsync and aio-poll, mostly. The only thing I'm holding back for a day or so is Adam's aio ioprio - his last-minute fixup is trivial (missing stub in !CONFIG_BLOCK case), but let it sit in -next for decency sake..." * 'work.aio-1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits) aio: sanitize the limit checking in io_submit(2) aio: fold do_io_submit() into callers aio: shift copyin of iocb into io_submit_one() aio_read_events_ring(): make a bit more readable aio: all callers of aio_{read,write,fsync,poll} treat 0 and -EIOCBQUEUED the same way aio: take list removal to (some) callers of aio_complete() aio: add missing break for the IOCB_CMD_FDSYNC case random: convert to ->poll_mask timerfd: convert to ->poll_mask eventfd: switch to ->poll_mask pipe: convert to ->poll_mask crypto: af_alg: convert to ->poll_mask net/rxrpc: convert to ->poll_mask net/iucv: convert to ->poll_mask net/phonet: convert to ->poll_mask net/nfc: convert to ->poll_mask net/caif: convert to ->poll_mask net/bluetooth: convert to ->poll_mask net/sctp: convert to ->poll_mask net/tipc: convert to ->poll_mask ...
Diffstat (limited to 'crypto')
-rw-r--r--crypto/af_alg.c14
-rw-r--r--crypto/algif_aead.c4
-rw-r--r--crypto/algif_hash.c2
-rw-r--r--crypto/algif_rng.c1
-rw-r--r--crypto/algif_skcipher.c4
5 files changed, 7 insertions, 18 deletions
diff --git a/crypto/af_alg.c b/crypto/af_alg.c
index 7846c0c20cfe..89ed613c017e 100644
--- a/crypto/af_alg.c
+++ b/crypto/af_alg.c
@@ -347,7 +347,6 @@ static const struct proto_ops alg_proto_ops = {
347 .sendpage = sock_no_sendpage, 347 .sendpage = sock_no_sendpage,
348 .sendmsg = sock_no_sendmsg, 348 .sendmsg = sock_no_sendmsg,
349 .recvmsg = sock_no_recvmsg, 349 .recvmsg = sock_no_recvmsg,
350 .poll = sock_no_poll,
351 350
352 .bind = alg_bind, 351 .bind = alg_bind,
353 .release = af_alg_release, 352 .release = af_alg_release,
@@ -1061,19 +1060,12 @@ void af_alg_async_cb(struct crypto_async_request *_req, int err)
1061} 1060}
1062EXPORT_SYMBOL_GPL(af_alg_async_cb); 1061EXPORT_SYMBOL_GPL(af_alg_async_cb);
1063 1062
1064/** 1063__poll_t af_alg_poll_mask(struct socket *sock, __poll_t events)
1065 * af_alg_poll - poll system call handler
1066 */
1067__poll_t af_alg_poll(struct file *file, struct socket *sock,
1068 poll_table *wait)
1069{ 1064{
1070 struct sock *sk = sock->sk; 1065 struct sock *sk = sock->sk;
1071 struct alg_sock *ask = alg_sk(sk); 1066 struct alg_sock *ask = alg_sk(sk);
1072 struct af_alg_ctx *ctx = ask->private; 1067 struct af_alg_ctx *ctx = ask->private;
1073 __poll_t mask; 1068 __poll_t mask = 0;
1074
1075 sock_poll_wait(file, sk_sleep(sk), wait);
1076 mask = 0;
1077 1069
1078 if (!ctx->more || ctx->used) 1070 if (!ctx->more || ctx->used)
1079 mask |= EPOLLIN | EPOLLRDNORM; 1071 mask |= EPOLLIN | EPOLLRDNORM;
@@ -1083,7 +1075,7 @@ __poll_t af_alg_poll(struct file *file, struct socket *sock,
1083 1075
1084 return mask; 1076 return mask;
1085} 1077}
1086EXPORT_SYMBOL_GPL(af_alg_poll); 1078EXPORT_SYMBOL_GPL(af_alg_poll_mask);
1087 1079
1088/** 1080/**
1089 * af_alg_alloc_areq - allocate struct af_alg_async_req 1081 * af_alg_alloc_areq - allocate struct af_alg_async_req
diff --git a/crypto/algif_aead.c b/crypto/algif_aead.c
index 4b07edd5a9ff..330cf9f2b767 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 = af_alg_poll, 378 .poll_mask = af_alg_poll_mask,
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 = af_alg_poll, 474 .poll_mask = af_alg_poll_mask,
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_hash.c b/crypto/algif_hash.c
index 6c9b1927a520..bfcf595fd8f9 100644
--- a/crypto/algif_hash.c
+++ b/crypto/algif_hash.c
@@ -288,7 +288,6 @@ static struct proto_ops algif_hash_ops = {
288 .mmap = sock_no_mmap, 288 .mmap = sock_no_mmap,
289 .bind = sock_no_bind, 289 .bind = sock_no_bind,
290 .setsockopt = sock_no_setsockopt, 290 .setsockopt = sock_no_setsockopt,
291 .poll = sock_no_poll,
292 291
293 .release = af_alg_release, 292 .release = af_alg_release,
294 .sendmsg = hash_sendmsg, 293 .sendmsg = hash_sendmsg,
@@ -396,7 +395,6 @@ static struct proto_ops algif_hash_ops_nokey = {
396 .mmap = sock_no_mmap, 395 .mmap = sock_no_mmap,
397 .bind = sock_no_bind, 396 .bind = sock_no_bind,
398 .setsockopt = sock_no_setsockopt, 397 .setsockopt = sock_no_setsockopt,
399 .poll = sock_no_poll,
400 398
401 .release = af_alg_release, 399 .release = af_alg_release,
402 .sendmsg = hash_sendmsg_nokey, 400 .sendmsg = hash_sendmsg_nokey,
diff --git a/crypto/algif_rng.c b/crypto/algif_rng.c
index 150c2b6480ed..22df3799a17b 100644
--- a/crypto/algif_rng.c
+++ b/crypto/algif_rng.c
@@ -106,7 +106,6 @@ static struct proto_ops algif_rng_ops = {
106 .bind = sock_no_bind, 106 .bind = sock_no_bind,
107 .accept = sock_no_accept, 107 .accept = sock_no_accept,
108 .setsockopt = sock_no_setsockopt, 108 .setsockopt = sock_no_setsockopt,
109 .poll = sock_no_poll,
110 .sendmsg = sock_no_sendmsg, 109 .sendmsg = sock_no_sendmsg,
111 .sendpage = sock_no_sendpage, 110 .sendpage = sock_no_sendpage,
112 111
diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c
index c4e885df4564..15cf3c5222e0 100644
--- a/crypto/algif_skcipher.c
+++ b/crypto/algif_skcipher.c
@@ -205,7 +205,7 @@ static struct proto_ops algif_skcipher_ops = {
205 .sendmsg = skcipher_sendmsg, 205 .sendmsg = skcipher_sendmsg,
206 .sendpage = af_alg_sendpage, 206 .sendpage = af_alg_sendpage,
207 .recvmsg = skcipher_recvmsg, 207 .recvmsg = skcipher_recvmsg,
208 .poll = af_alg_poll, 208 .poll_mask = af_alg_poll_mask,
209}; 209};
210 210
211static int skcipher_check_key(struct socket *sock) 211static int skcipher_check_key(struct socket *sock)
@@ -301,7 +301,7 @@ static struct proto_ops algif_skcipher_ops_nokey = {
301 .sendmsg = skcipher_sendmsg_nokey, 301 .sendmsg = skcipher_sendmsg_nokey,
302 .sendpage = skcipher_sendpage_nokey, 302 .sendpage = skcipher_sendpage_nokey,
303 .recvmsg = skcipher_recvmsg_nokey, 303 .recvmsg = skcipher_recvmsg_nokey,
304 .poll = af_alg_poll, 304 .poll_mask = af_alg_poll_mask,
305}; 305};
306 306
307static void *skcipher_bind(const char *name, u32 type, u32 mask) 307static void *skcipher_bind(const char *name, u32 type, u32 mask)