summaryrefslogtreecommitdiffstats
path: root/sys/kern/sys_socket.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2004-03-29 01:55:32 +0000
committerrwatson <rwatson@FreeBSD.org>2004-03-29 01:55:32 +0000
commit3b7dc3c3f751f81ed34018ba4b2ec9b94488dd99 (patch)
treee1b2bc29fe1aeb14b9a08b202e494891ac3986ba /sys/kern/sys_socket.c
parente2c58ec1b87bf7ca65e209271c8a7176cbd4a88f (diff)
downloadFreeBSD-src-3b7dc3c3f751f81ed34018ba4b2ec9b94488dd99.zip
FreeBSD-src-3b7dc3c3f751f81ed34018ba4b2ec9b94488dd99.tar.gz
Conditionally acquire Giant when entering the socket layer via file
descriptor operations based on debug.mpsafenet, rather than acquiring Giant unconditionally.
Diffstat (limited to 'sys/kern/sys_socket.c')
-rw-r--r--sys/kern/sys_socket.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/sys/kern/sys_socket.c b/sys/kern/sys_socket.c
index 879e83d..7566a56 100644
--- a/sys/kern/sys_socket.c
+++ b/sys/kern/sys_socket.c
@@ -79,16 +79,16 @@ soo_read(fp, uio, active_cred, flags, td)
struct socket *so = fp->f_data;
int error;
- mtx_lock(&Giant);
+ NET_LOCK_GIANT();
#ifdef MAC
error = mac_check_socket_receive(active_cred, so);
if (error) {
- mtx_unlock(&Giant);
+ NET_UNLOCK_GIANT();
return (error);
}
#endif
error = so->so_proto->pr_usrreqs->pru_soreceive(so, 0, uio, 0, 0, 0);
- mtx_unlock(&Giant);
+ NET_UNLOCK_GIANT();
return (error);
}
@@ -104,17 +104,17 @@ soo_write(fp, uio, active_cred, flags, td)
struct socket *so = fp->f_data;
int error;
- mtx_lock(&Giant);
+ NET_LOCK_GIANT();
#ifdef MAC
error = mac_check_socket_send(active_cred, so);
if (error) {
- mtx_unlock(&Giant);
+ NET_UNLOCK_GIANT();
return (error);
}
#endif
error = so->so_proto->pr_usrreqs->pru_sosend(so, 0, uio, 0, 0, 0,
uio->uio_td);
- mtx_unlock(&Giant);
+ NET_UNLOCK_GIANT();
return (error);
}
OpenPOWER on IntegriCloud