No reason to keep it, selinfo is just wrapper to klist. netstat(1) and
libkvm use socket structure, but don't touch
so_{snd,rcv}.sb_sel.si_note. 

Index: sys/kern/uipc_socket.c
===================================================================
RCS file: /cvs/src/sys/kern/uipc_socket.c,v
retrieving revision 1.297
diff -u -p -r1.297 uipc_socket.c
--- sys/kern/uipc_socket.c      23 Jan 2023 18:34:24 -0000      1.297
+++ sys/kern/uipc_socket.c      26 Jan 2023 18:39:31 -0000
@@ -176,8 +176,8 @@ socreate(int dom, struct socket **aso, i
        if (prp->pr_type != type)
                return (EPROTOTYPE);
        so = soalloc(M_WAIT);
-       klist_init(&so->so_rcv.sb_sel.si_note, &socket_klistops, so);
-       klist_init(&so->so_snd.sb_sel.si_note, &socket_klistops, so);
+       klist_init(&so->so_rcv.sb_klist, &socket_klistops, so);
+       klist_init(&so->so_snd.sb_klist, &socket_klistops, so);
        sigio_init(&so->so_sigio);
        TAILQ_INIT(&so->so_q0);
        TAILQ_INIT(&so->so_q);
@@ -303,8 +303,8 @@ sofree(struct socket *so, int keep_lock)
        }
 
        sigio_free(&so->so_sigio);
-       klist_free(&so->so_rcv.sb_sel.si_note);
-       klist_free(&so->so_snd.sb_sel.si_note);
+       klist_free(&so->so_rcv.sb_klist);
+       klist_free(&so->so_snd.sb_klist);
 #ifdef SOCKET_SPLICE
        if (so->so_sp) {
                if (issplicedback(so)) {
@@ -2095,7 +2095,7 @@ void
 sohasoutofband(struct socket *so)
 {
        pgsigio(&so->so_sigio, SIGURG, 0);
-       KNOTE(&so->so_rcv.sb_sel.si_note, 0);
+       KNOTE(&so->so_rcv.sb_klist, 0);
 }
 
 int
@@ -2126,7 +2126,7 @@ soo_kqfilter(struct file *fp, struct kno
                return (EINVAL);
        }
 
-       klist_insert_locked(&sb->sb_sel.si_note, kn);
+       klist_insert_locked(&sb->sb_klist, kn);
        sounlock(so);
 
        return (0);
@@ -2137,7 +2137,7 @@ filt_sordetach(struct knote *kn)
 {
        struct socket *so = kn->kn_fp->f_data;
 
-       klist_remove(&so->so_rcv.sb_sel.si_note, kn);
+       klist_remove(&so->so_rcv.sb_klist, kn);
 }
 
 int
@@ -2178,7 +2178,7 @@ filt_sowdetach(struct knote *kn)
 {
        struct socket *so = kn->kn_fp->f_data;
 
-       klist_remove(&so->so_snd.sb_sel.si_note, kn);
+       klist_remove(&so->so_snd.sb_klist, kn);
 }
 
 int
Index: sys/kern/uipc_socket2.c
===================================================================
RCS file: /cvs/src/sys/kern/uipc_socket2.c,v
retrieving revision 1.133
diff -u -p -r1.133 uipc_socket2.c
--- sys/kern/uipc_socket2.c     22 Jan 2023 12:05:44 -0000      1.133
+++ sys/kern/uipc_socket2.c     26 Jan 2023 18:39:31 -0000
@@ -226,8 +226,8 @@ sonewconn(struct socket *head, int conns
        so->so_rcv.sb_lowat = head->so_rcv.sb_lowat;
        so->so_rcv.sb_timeo_nsecs = head->so_rcv.sb_timeo_nsecs;
 
-       klist_init(&so->so_rcv.sb_sel.si_note, &socket_klistops, so);
-       klist_init(&so->so_snd.sb_sel.si_note, &socket_klistops, so);
+       klist_init(&so->so_rcv.sb_klist, &socket_klistops, so);
+       klist_init(&so->so_snd.sb_klist, &socket_klistops, so);
        sigio_init(&so->so_sigio);
        sigio_copy(&so->so_sigio, &head->so_sigio);
 
@@ -262,8 +262,8 @@ sonewconn(struct socket *head, int conns
                if (persocket)
                        sounlock(so);
                sigio_free(&so->so_sigio);
-               klist_free(&so->so_rcv.sb_sel.si_note);
-               klist_free(&so->so_snd.sb_sel.si_note);
+               klist_free(&so->so_rcv.sb_klist);
+               klist_free(&so->so_snd.sb_klist);
                pool_put(&socket_pool, so);
                return (NULL);
        }
@@ -549,7 +549,7 @@ sowakeup(struct socket *so, struct sockb
        }
        if (sb->sb_flags & SB_ASYNC)
                pgsigio(&so->so_sigio, SIGIO, 0);
-       KNOTE(&sb->sb_sel.si_note, 0);
+       KNOTE(&sb->sb_klist, 0);
 }
 
 /*
Index: sys/kern/uipc_syscalls.c
===================================================================
RCS file: /cvs/src/sys/kern/uipc_syscalls.c,v
retrieving revision 1.209
diff -u -p -r1.209 uipc_syscalls.c
--- sys/kern/uipc_syscalls.c    22 Jan 2023 12:05:44 -0000      1.209
+++ sys/kern/uipc_syscalls.c    26 Jan 2023 18:39:31 -0000
@@ -326,7 +326,7 @@ doaccept(struct proc *p, int sock, struc
            : (flags & SOCK_NONBLOCK ? FNONBLOCK : 0);
 
        /* connection has been removed from the listen queue */
-       KNOTE(&head->so_rcv.sb_sel.si_note, 0);
+       KNOTE(&head->so_rcv.sb_klist, 0);
 
        if (persocket)
                sounlock(head);
Index: sys/miscfs/fifofs/fifo_vnops.c
===================================================================
RCS file: /cvs/src/sys/miscfs/fifofs/fifo_vnops.c,v
retrieving revision 1.100
diff -u -p -r1.100 fifo_vnops.c
--- sys/miscfs/fifofs/fifo_vnops.c      22 Jan 2023 12:05:44 -0000      1.100
+++ sys/miscfs/fifofs/fifo_vnops.c      26 Jan 2023 18:39:31 -0000
@@ -504,7 +504,7 @@ fifo_kqfilter(void *v)
 
        ap->a_kn->kn_hook = so;
 
-       klist_insert(&sb->sb_sel.si_note, ap->a_kn);
+       klist_insert(&sb->sb_klist, ap->a_kn);
 
        return (0);
 }
@@ -514,7 +514,7 @@ filt_fifordetach(struct knote *kn)
 {
        struct socket *so = (struct socket *)kn->kn_hook;
 
-       klist_remove(&so->so_rcv.sb_sel.si_note, kn);
+       klist_remove(&so->so_rcv.sb_klist, kn);
 }
 
 int
@@ -548,7 +548,7 @@ filt_fifowdetach(struct knote *kn)
 {
        struct socket *so = (struct socket *)kn->kn_hook;
 
-       klist_remove(&so->so_snd.sb_sel.si_note, kn);
+       klist_remove(&so->so_snd.sb_klist, kn);
 }
 
 int
Index: sys/sys/socketvar.h
===================================================================
RCS file: /cvs/src/sys/sys/socketvar.h,v
retrieving revision 1.118
diff -u -p -r1.118 socketvar.h
--- sys/sys/socketvar.h 23 Jan 2023 18:35:13 -0000      1.118
+++ sys/sys/socketvar.h 26 Jan 2023 18:39:31 -0000
@@ -35,7 +35,7 @@
 #ifndef _SYS_SOCKETVAR_H_
 #define _SYS_SOCKETVAR_H_
 
-#include <sys/selinfo.h>                       /* for struct selinfo */
+#include <sys/event.h>
 #include <sys/queue.h>
 #include <sys/sigio.h>                         /* for struct sigio_ref */
 #include <sys/task.h>
@@ -123,7 +123,7 @@ struct socket {
 #define        sb_endzero      sb_flags
                short   sb_state;       /* socket state on sockbuf */
                uint64_t sb_timeo_nsecs;/* timeout for read/write */
-               struct  selinfo sb_sel; /* process selecting read/write */
+               struct klist sb_klist;  /* process selecting read/write */
        } so_rcv, so_snd;
 #define        SB_MAX          (2*1024*1024)   /* default for max chars in 
sockbuf */
 #define        SB_LOCK         0x01            /* lock on data queue */
@@ -202,7 +202,7 @@ sb_notify(struct socket *so, struct sock
 {
        soassertlocked(so);
        return ((sb->sb_flags & (SB_WAIT|SB_ASYNC|SB_SPLICE)) != 0 ||
-           !klist_empty(&sb->sb_sel.si_note));
+           !klist_empty(&sb->sb_klist));
 }
 
 /*

Reply via email to