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)