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)