aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/hyperv
diff options
context:
space:
mode:
authorGleb Smirnoff <glebius@FreeBSD.org>2022-05-12 20:22:12 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2022-05-12 20:22:12 +0000
commit4328318445aec29c87f33ebfa11f5253a73a7896 (patch)
tree19b883ad0319ed110cfd53a751a4779bd237ed91 /sys/dev/hyperv
parent009e8f0a109999a1978ac77b390f4ac5a6ae59a3 (diff)
downloadsrc-4328318445aec29c87f33ebfa11f5253a73a7896.tar.gz
src-4328318445aec29c87f33ebfa11f5253a73a7896.zip
sockets: use socket buffer mutexes in struct socket directly
Since c67f3b8b78e the sockbuf mutexes belong to the containing socket, and socket buffers just point to it. In 74a68313b50 macros that access this mutex directly were added. Go over the core socket code and eliminate code that reaches the mutex by dereferencing the sockbuf compatibility pointer. This change requires a KPI change, as some functions were given the sockbuf pointer only without any hint if it is a receive or send buffer. This change doesn't cover the whole kernel, many protocols still use compatibility pointers internally. However, it allows operation of a protocol that doesn't use them. Reviewed by: markj Differential revision: https://reviews.freebsd.org/D35152
Diffstat (limited to 'sys/dev/hyperv')
-rw-r--r--sys/dev/hyperv/hvsock/hv_sock.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/hyperv/hvsock/hv_sock.c b/sys/dev/hyperv/hvsock/hv_sock.c
index f0238c233181..8c327a22e6fd 100644
--- a/sys/dev/hyperv/hvsock/hv_sock.c
+++ b/sys/dev/hyperv/hvsock/hv_sock.c
@@ -763,7 +763,7 @@ hvs_trans_soreceive(struct socket *so, struct sockaddr **paddr,
* Wait and block until (more) data comes in.
* Note: Drops the sockbuf lock during wait.
*/
- error = sbwait(sb);
+ error = sbwait(so, SO_RCV);
if (error)
break;
@@ -859,7 +859,7 @@ hvs_trans_sosend(struct socket *so, struct sockaddr *addr, struct uio *uio,
* Sleep wait until space avaiable to send
* Note: Drops the sockbuf lock during wait.
*/
- error = sbwait(sb);
+ error = sbwait(so, SO_SND);
if (error)
break;