projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge tag 'media/v4.4-3' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab...
[firefly-linux-kernel-4.4.55.git]
/
net
/
decnet
/
af_decnet.c
diff --git
a/net/decnet/af_decnet.c
b/net/decnet/af_decnet.c
index 675cf94e04f862b77644f86628af6e8a46933055..13d6b1a6e0fc2b0730827d93d154d6464a3e58ec 100644
(file)
--- a/
net/decnet/af_decnet.c
+++ b/
net/decnet/af_decnet.c
@@
-678,6
+678,9
@@
static int dn_create(struct net *net, struct socket *sock, int protocol,
{
struct sock *sk;
{
struct sock *sk;
+ if (protocol < 0 || protocol > SK_PROTOCOL_MAX)
+ return -EINVAL;
+
if (!net_eq(net, &init_net))
return -EAFNOSUPPORT;
if (!net_eq(net, &init_net))
return -EAFNOSUPPORT;
@@
-1747,9
+1750,9
@@
static int dn_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
}
prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE);
}
prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE);
- s
et_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags
);
+ s
k_set_bit(SOCKWQ_ASYNC_WAITDATA, sk
);
sk_wait_event(sk, &timeo, dn_data_ready(sk, queue, flags, target));
sk_wait_event(sk, &timeo, dn_data_ready(sk, queue, flags, target));
-
clear_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags
);
+
sk_clear_bit(SOCKWQ_ASYNC_WAITDATA, sk
);
finish_wait(sk_sleep(sk), &wait);
}
finish_wait(sk_sleep(sk), &wait);
}
@@
-2004,10
+2007,10
@@
static int dn_sendmsg(struct socket *sock, struct msghdr *msg, size_t size)
}
prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE);
}
prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE);
- s
et_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags
);
+ s
k_set_bit(SOCKWQ_ASYNC_WAITDATA, sk
);
sk_wait_event(sk, &timeo,
!dn_queue_too_long(scp, queue, flags));
sk_wait_event(sk, &timeo,
!dn_queue_too_long(scp, queue, flags));
-
clear_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags
);
+
sk_clear_bit(SOCKWQ_ASYNC_WAITDATA, sk
);
finish_wait(sk_sleep(sk), &wait);
continue;
}
finish_wait(sk_sleep(sk), &wait);
continue;
}