Page MenuHomeFreeBSD

D45922.diff
No OneTemporary

D45922.diff

diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -2609,17 +2609,15 @@
error = SOCK_IO_RECV_LOCK(so, SBLOCKWAIT(flags));
if (error)
return (error);
- SOCKBUF_LOCK(sb);
-
#ifdef KERN_TLS
- if (sb->sb_tls_info != NULL) {
- SOCKBUF_UNLOCK(sb);
+ if (__predict_false(sb->sb_tls_info != NULL)) {
SOCK_IO_RECV_UNLOCK(so);
return (soreceive_generic(so, psa, uio, mp0, controlp,
flagsp));
}
#endif
+ SOCKBUF_LOCK(sb);
/* Easy one, no space to copyout anything. */
if (uio->uio_resid == 0) {
error = EINVAL;

File Metadata

Mime Type
text/plain
Expires
Fri, Dec 27, 4:49 PM (8 h, 28 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15615962
Default Alt Text
D45922.diff (606 B)

Event Timeline