It's complicated to see which socket buffer associated to which socket
need protection.  So inline the defines, ok?

Index: kern/uipc_usrreq.c
===================================================================
RCS file: /cvs/src/sys/kern/uipc_usrreq.c,v
retrieving revision 1.120
diff -u -p -r1.120 uipc_usrreq.c
--- kern/uipc_usrreq.c  2 Nov 2017 14:01:18 -0000       1.120
+++ kern/uipc_usrreq.c  11 Dec 2017 08:27:06 -0000
@@ -231,8 +231,6 @@ uipc_usrreq(struct socket *so, int req, 
 
                case SOCK_STREAM:
                case SOCK_SEQPACKET:
-#define        rcv (&so2->so_rcv)
-#define        snd (&so->so_snd)
                        if (so->so_state & SS_CANTSENDMORE) {
                                error = EPIPE;
                                break;
@@ -248,22 +246,21 @@ uipc_usrreq(struct socket *so, int req, 
                         * Wake up readers.
                         */
                        if (control) {
-                               if (sbappendcontrol(so2, rcv, m, control))
+                               if (sbappendcontrol(so2, &so2->so_rcv, m,
+                                   control)) {
                                        control = NULL;
-                               else {
+                               } else {
                                        error = ENOBUFS;
                                        break;
                                }
                        } else if (so->so_type == SOCK_SEQPACKET)
-                               sbappendrecord(so2, rcv, m);
+                               sbappendrecord(so2, &so2->so_rcv, m);
                        else
-                               sbappend(so2, rcv, m);
-                       snd->sb_mbcnt = rcv->sb_mbcnt;
-                       snd->sb_cc = rcv->sb_cc;
+                               sbappend(so2, &so2->so_rcv, m);
+                       so->so_snd.sb_mbcnt = so2->so_rcv.sb_mbcnt;
+                       so->so_snd.sb_cc = so2->so_rcv.sb_cc;
                        sorwakeup(so2);
                        m = NULL;
-#undef snd
-#undef rcv
                        break;
 
                default:

Reply via email to