projects
/
platform
/
kernel
/
linux-starfive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
drm/amd/display: Implement bounds check for stream encoder creation in DCN301
[platform/kernel/linux-starfive.git]
/
net
/
vmw_vsock
/
af_vsock.c
diff --git
a/net/vmw_vsock/af_vsock.c
b/net/vmw_vsock/af_vsock.c
index
020cf17
..
4afb6a5
100644
(file)
--- a/
net/vmw_vsock/af_vsock.c
+++ b/
net/vmw_vsock/af_vsock.c
@@
-89,6
+89,7
@@
#include <linux/types.h>
#include <linux/bitops.h>
#include <linux/cred.h>
#include <linux/types.h>
#include <linux/bitops.h>
#include <linux/cred.h>
+#include <linux/errqueue.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/kernel.h>
@@
-110,6
+111,7
@@
#include <linux/workqueue.h>
#include <net/sock.h>
#include <net/af_vsock.h>
#include <linux/workqueue.h>
#include <net/sock.h>
#include <net/af_vsock.h>
+#include <uapi/linux/vm_sockets.h>
static int __vsock_bind(struct sock *sk, struct sockaddr_vm *addr);
static void vsock_sk_destruct(struct sock *sk);
static int __vsock_bind(struct sock *sk, struct sockaddr_vm *addr);
static void vsock_sk_destruct(struct sock *sk);
@@
-2134,6
+2136,10
@@
vsock_connectible_recvmsg(struct socket *sock, struct msghdr *msg, size_t len,
int err;
sk = sock->sk;
int err;
sk = sock->sk;
+
+ if (unlikely(flags & MSG_ERRQUEUE))
+ return sock_recv_errqueue(sk, msg, len, SOL_VSOCK, VSOCK_RECVERR);
+
vsk = vsock_sk(sk);
err = 0;
vsk = vsock_sk(sk);
err = 0;
@@
-2208,8
+2214,13
@@
static int vsock_set_rcvlowat(struct sock *sk, int val)
transport = vsk->transport;
transport = vsk->transport;
- if (transport && transport->set_rcvlowat)
- return transport->set_rcvlowat(vsk, val);
+ if (transport && transport->notify_set_rcvlowat) {
+ int err;
+
+ err = transport->notify_set_rcvlowat(vsk, val);
+ if (err)
+ return err;
+ }
WRITE_ONCE(sk->sk_rcvlowat, val ? : 1);
return 0;
WRITE_ONCE(sk->sk_rcvlowat, val ? : 1);
return 0;