On Mon, Nov 14, 2022 at 12:00:28PM +0000, Klemens Nanni wrote:
> On Mon, Nov 14, 2022 at 02:14:27PM +0300, Vitaliy Makkoveev wrote:
> > We have soreadable() already presented as inline function, but
> > corresponding sowriteable() is still macro. Also it's no reason to keep
> > sballoc() and sbfree() as macro.
> 
> This reads as an improvement to me.
> 
> sballoc() and sbfree()'s struct socket *so argument is entirely unused,
> can it be removed?

This builds and runs fine on top of your diff.


diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
index 478763592b4..e0af311ae3c 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -931,7 +931,7 @@ dontblock:
                                *paddr = m_copym(m, 0, m->m_len, M_NOWAIT);
                        m = m->m_next;
                } else {
-                       sbfree(so, &so->so_rcv, m);
+                       sbfree(&so->so_rcv, m);
                        if (paddr) {
                                *paddr = m;
                                so->so_rcv.sb_mb = m->m_next;
@@ -955,7 +955,7 @@ dontblock:
                                *controlp = m_copym(m, 0, m->m_len, M_NOWAIT);
                        m = m->m_next;
                } else {
-                       sbfree(so, &so->so_rcv, m);
+                       sbfree(&so->so_rcv, m);
                        so->so_rcv.sb_mb = m->m_next;
                        m->m_nextpkt = m->m_next = NULL;
                        cm = m;
@@ -1057,7 +1057,7 @@ dontblock:
                                orig_resid = 0;
                        } else {
                                nextrecord = m->m_nextpkt;
-                               sbfree(so, &so->so_rcv, m);
+                               sbfree(&so->so_rcv, m);
                                if (mp) {
                                        *mp = m;
                                        mp = &m->m_next;
@@ -1560,7 +1560,7 @@ somove(struct socket *so, int wait)
                 * that the whole first record can be processed.
                 */
                m = so->so_rcv.sb_mb;
-               sbfree(so, &so->so_rcv, m);
+               sbfree(&so->so_rcv, m);
                so->so_rcv.sb_mb = m_free(m);
                sbsync(&so->so_rcv, nextrecord);
        }
@@ -1570,7 +1570,7 @@ somove(struct socket *so, int wait)
         */
        m = so->so_rcv.sb_mb;
        while (m && m->m_type == MT_CONTROL) {
-               sbfree(so, &so->so_rcv, m);
+               sbfree(&so->so_rcv, m);
                so->so_rcv.sb_mb = m_free(m);
                m = so->so_rcv.sb_mb;
                sbsync(&so->so_rcv, nextrecord);
@@ -1609,7 +1609,7 @@ somove(struct socket *so, int wait)
                        so->so_rcv.sb_datacc -= size;
                } else {
                        *mp = so->so_rcv.sb_mb;
-                       sbfree(so, &so->so_rcv, *mp);
+                       sbfree(&so->so_rcv, *mp);
                        so->so_rcv.sb_mb = (*mp)->m_next;
                        sbsync(&so->so_rcv, nextrecord);
                }
diff --git a/sys/kern/uipc_socket2.c b/sys/kern/uipc_socket2.c
index d8b39e44c69..478c93a3f99 100644
--- a/sys/kern/uipc_socket2.c
+++ b/sys/kern/uipc_socket2.c
@@ -845,7 +845,7 @@ sbappendrecord(struct socket *so, struct sockbuf *sb, 
struct mbuf *m0)
         * Put the first mbuf on the queue.
         * Note this permits zero length records.
         */
-       sballoc(so, sb, m0);
+       sballoc(sb, m0);
        SBLASTRECORDCHK(sb, "sbappendrecord 1");
        SBLINKRECORD(sb, m0);
        m = m0->m_next;
@@ -900,8 +900,8 @@ sbappendaddr(struct socket *so, struct sockbuf *sb, const 
struct sockaddr *asa,
        SBLASTRECORDCHK(sb, "sbappendaddr 1");
 
        for (n = m; n->m_next != NULL; n = n->m_next)
-               sballoc(so, sb, n);
-       sballoc(so, sb, n);
+               sballoc(sb, n);
+       sballoc(sb, n);
        nlast = n;
        SBLINKRECORD(sb, m);
 
@@ -937,8 +937,8 @@ sbappendcontrol(struct socket *so, struct sockbuf *sb, 
struct mbuf *m0,
        SBLASTRECORDCHK(sb, "sbappendcontrol 1");
 
        for (m = control; m->m_next != NULL; m = m->m_next)
-               sballoc(so, sb, m);
-       sballoc(so, sb, m);
+               sballoc(sb, m);
+       sballoc(sb, m);
        mlast = m;
        SBLINKRECORD(sb, control);
 
@@ -993,7 +993,7 @@ sbcompress(struct socket *so, struct sockbuf *sb, struct 
mbuf *m,
                else
                        sb->sb_mb = m;
                sb->sb_mbtail = m;
-               sballoc(so, sb, m);
+               sballoc(sb, m);
                n = m;
                m->m_flags &= ~M_EOR;
                m = m->m_next;
@@ -1058,12 +1058,12 @@ sbdrop(struct socket *so, struct sockbuf *sb, int len)
                        break;
                }
                len -= m->m_len;
-               sbfree(so, sb, m);
+               sbfree(sb, m);
                mn = m_free(m);
                m = mn;
        }
        while (m && m->m_len == 0) {
-               sbfree(so, sb, m);
+               sbfree(sb, m);
                mn = m_free(m);
                m = mn;
        }
@@ -1098,7 +1098,7 @@ sbdroprecord(struct socket *so, struct sockbuf *sb)
        if (m) {
                sb->sb_mb = m->m_nextpkt;
                do {
-                       sbfree(so, sb, m);
+                       sbfree(sb, m);
                        mn = m_free(m);
                } while ((m = mn) != NULL);
        }
diff --git a/sys/sys/socketvar.h b/sys/sys/socketvar.h
index c1e2d5c973c..45ecf98bb7e 100644
--- a/sys/sys/socketvar.h
+++ b/sys/sys/socketvar.h
@@ -242,7 +242,7 @@ sowriteable(struct socket *so)
 
 /* adjust counters in sb reflecting allocation of m */
 static inline void
-sballoc(struct socket *so, struct sockbuf *sb, struct mbuf *m)
+sballoc(struct sockbuf *sb, struct mbuf *m)
 {
        sb->sb_cc += m->m_len;
        if (m->m_type != MT_CONTROL && m->m_type != MT_SONAME)
@@ -254,7 +254,7 @@ sballoc(struct socket *so, struct sockbuf *sb, struct mbuf 
*m)
 
 /* adjust counters in sb reflecting freeing of m */
 static inline void
-sbfree(struct socket *so, struct sockbuf *sb, struct mbuf *m)
+sbfree(struct sockbuf *sb, struct mbuf *m)
 {
        sb->sb_cc -= m->m_len;
        if (m->m_type != MT_CONTROL && m->m_type != MT_SONAME)

Reply via email to