diff options
Diffstat (limited to 'net/tipc')
| -rw-r--r-- | net/tipc/netlink_compat.c | 5 | ||||
| -rw-r--r-- | net/tipc/socket.c | 14 | 
2 files changed, 12 insertions, 7 deletions
| diff --git a/net/tipc/netlink_compat.c b/net/tipc/netlink_compat.c index 4492cda45566..a2f76743c73a 100644 --- a/net/tipc/netlink_compat.c +++ b/net/tipc/netlink_compat.c @@ -285,8 +285,9 @@ static int __tipc_nl_compat_doit(struct tipc_nl_compat_cmd_doit *cmd,  	if (!trans_buf)  		return -ENOMEM; -	attrbuf = kmalloc((tipc_genl_family.maxattr + 1) * -			sizeof(struct nlattr *), GFP_KERNEL); +	attrbuf = kmalloc_array(tipc_genl_family.maxattr + 1, +				sizeof(struct nlattr *), +				GFP_KERNEL);  	if (!attrbuf) {  		err = -ENOMEM;  		goto trans_out; diff --git a/net/tipc/socket.c b/net/tipc/socket.c index 14a5d055717d..930852c54d7a 100644 --- a/net/tipc/socket.c +++ b/net/tipc/socket.c @@ -692,9 +692,10 @@ static int tipc_getname(struct socket *sock, struct sockaddr *uaddr,  }  /** - * tipc_poll - read pollmask + * tipc_poll - read and possibly block on pollmask   * @file: file structure associated with the socket   * @sock: socket for which to calculate the poll bits + * @wait: ???   *   * Returns pollmask value   * @@ -708,12 +709,15 @@ static int tipc_getname(struct socket *sock, struct sockaddr *uaddr,   * imply that the operation will succeed, merely that it should be performed   * and will not block.   */ -static __poll_t tipc_poll_mask(struct socket *sock, __poll_t events) +static __poll_t tipc_poll(struct file *file, struct socket *sock, +			      poll_table *wait)  {  	struct sock *sk = sock->sk;  	struct tipc_sock *tsk = tipc_sk(sk);  	__poll_t revents = 0; +	sock_poll_wait(file, sk_sleep(sk), wait); +  	if (sk->sk_shutdown & RCV_SHUTDOWN)  		revents |= EPOLLRDHUP | EPOLLIN | EPOLLRDNORM;  	if (sk->sk_shutdown == SHUTDOWN_MASK) @@ -3033,7 +3037,7 @@ static const struct proto_ops msg_ops = {  	.socketpair	= tipc_socketpair,  	.accept		= sock_no_accept,  	.getname	= tipc_getname, -	.poll_mask	= tipc_poll_mask, +	.poll		= tipc_poll,  	.ioctl		= tipc_ioctl,  	.listen		= sock_no_listen,  	.shutdown	= tipc_shutdown, @@ -3054,7 +3058,7 @@ static const struct proto_ops packet_ops = {  	.socketpair	= tipc_socketpair,  	.accept		= tipc_accept,  	.getname	= tipc_getname, -	.poll_mask	= tipc_poll_mask, +	.poll		= tipc_poll,  	.ioctl		= tipc_ioctl,  	.listen		= tipc_listen,  	.shutdown	= tipc_shutdown, @@ -3075,7 +3079,7 @@ static const struct proto_ops stream_ops = {  	.socketpair	= tipc_socketpair,  	.accept		= tipc_accept,  	.getname	= tipc_getname, -	.poll_mask	= tipc_poll_mask, +	.poll		= tipc_poll,  	.ioctl		= tipc_ioctl,  	.listen		= tipc_listen,  	.shutdown	= tipc_shutdown, | 
