Merge remote-tracking branch 'torvalds/master' into perf/core
[linux-2.6-microblaze.git] / crypto / algif_aead.c
index 0ae000a..21efa78 100644 (file)
@@ -106,8 +106,8 @@ static int _aead_recvmsg(struct socket *sock, struct msghdr *msg,
        size_t usedpages = 0;           /* [in]  RX bufs to be used from user */
        size_t processed = 0;           /* [in]  TX bufs to be consumed */
 
-       if (!ctx->used) {
-               err = af_alg_wait_for_data(sk, flags);
+       if (!ctx->init || ctx->more) {
+               err = af_alg_wait_for_data(sk, flags, 0);
                if (err)
                        return err;
        }
@@ -361,11 +361,9 @@ static struct proto_ops algif_aead_ops = {
        .ioctl          =       sock_no_ioctl,
        .listen         =       sock_no_listen,
        .shutdown       =       sock_no_shutdown,
-       .getsockopt     =       sock_no_getsockopt,
        .mmap           =       sock_no_mmap,
        .bind           =       sock_no_bind,
        .accept         =       sock_no_accept,
-       .setsockopt     =       sock_no_setsockopt,
 
        .release        =       af_alg_release,
        .sendmsg        =       aead_sendmsg,
@@ -454,11 +452,9 @@ static struct proto_ops algif_aead_ops_nokey = {
        .ioctl          =       sock_no_ioctl,
        .listen         =       sock_no_listen,
        .shutdown       =       sock_no_shutdown,
-       .getsockopt     =       sock_no_getsockopt,
        .mmap           =       sock_no_mmap,
        .bind           =       sock_no_bind,
        .accept         =       sock_no_accept,
-       .setsockopt     =       sock_no_setsockopt,
 
        .release        =       af_alg_release,
        .sendmsg        =       aead_sendmsg_nokey,
@@ -558,12 +554,6 @@ static int aead_accept_parent_nokey(void *private, struct sock *sk)
 
        INIT_LIST_HEAD(&ctx->tsgl_list);
        ctx->len = len;
-       ctx->used = 0;
-       atomic_set(&ctx->rcvused, 0);
-       ctx->more = 0;
-       ctx->merge = 0;
-       ctx->enc = 0;
-       ctx->aead_assoclen = 0;
        crypto_init_wait(&ctx->wait);
 
        ask->private = ctx;