git: f277746e1326 - main - protosw: change prototype for pr_control

From: Gleb Smirnoff <glebius_at_FreeBSD.org>
Date: Fri, 12 Aug 2022 19:10:31 UTC
The branch main has been updated by glebius:

URL: https://cgit.FreeBSD.org/src/commit/?id=f277746e13261e139cbb7a3bbd74dfe104326182

commit f277746e13261e139cbb7a3bbd74dfe104326182
Author:     Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2022-08-12 19:08:18 +0000
Commit:     Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2022-08-12 19:08:18 +0000

    protosw: change prototype for pr_control
    
    For some reason protosw.h is used during world complation and userland
    is not aware of caddr_t, a relic from the first version of C.  Broken
    buildworld is good reason to get rid of yet another caddr_t in kernel.
    
    Fixes:  886fc1e80490fb03e72e306774766cbb2c733ac6
---
 sys/kern/uipc_socket.c                                | 2 +-
 sys/netgraph/bluetooth/include/ng_btsocket_hci_raw.h  | 2 +-
 sys/netgraph/bluetooth/include/ng_btsocket_l2cap.h    | 4 ++--
 sys/netgraph/bluetooth/include/ng_btsocket_rfcomm.h   | 2 +-
 sys/netgraph/bluetooth/include/ng_btsocket_sco.h      | 2 +-
 sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c   | 2 +-
 sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c     | 2 +-
 sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c | 2 +-
 sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c    | 2 +-
 sys/netgraph/bluetooth/socket/ng_btsocket_sco.c       | 2 +-
 sys/netinet/in.c                                      | 2 +-
 sys/netinet/in_var.h                                  | 2 +-
 sys/netinet6/in6.c                                    | 2 +-
 sys/netinet6/in6_var.h                                | 2 +-
 sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c        | 8 --------
 sys/sys/protosw.h                                     | 6 +++---
 16 files changed, 18 insertions(+), 26 deletions(-)

diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
index e9fe4dfd7feb..bbca2d8663d7 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -3725,7 +3725,7 @@ pru_connect2_notsupp(struct socket *so1, struct socket *so2)
 }
 
 int
-pru_control_notsupp(struct socket *so, u_long cmd, caddr_t data,
+pru_control_notsupp(struct socket *so, u_long cmd, void *data,
     struct ifnet *ifp, struct thread *td)
 {
 
diff --git a/sys/netgraph/bluetooth/include/ng_btsocket_hci_raw.h b/sys/netgraph/bluetooth/include/ng_btsocket_hci_raw.h
index 21ed3928b5ff..7d4da8d4ce45 100644
--- a/sys/netgraph/bluetooth/include/ng_btsocket_hci_raw.h
+++ b/sys/netgraph/bluetooth/include/ng_btsocket_hci_raw.h
@@ -74,7 +74,7 @@ int  ng_btsocket_hci_raw_bind       (struct socket *, struct sockaddr *,
                                      struct thread *);
 int  ng_btsocket_hci_raw_connect    (struct socket *, struct sockaddr *, 
                                      struct thread *);
-int  ng_btsocket_hci_raw_control    (struct socket *, u_long, caddr_t,
+int  ng_btsocket_hci_raw_control    (struct socket *, u_long, void *,
                                      struct ifnet *, struct thread *);
 int  ng_btsocket_hci_raw_ctloutput  (struct socket *, struct sockopt *);
 void ng_btsocket_hci_raw_detach     (struct socket *);
diff --git a/sys/netgraph/bluetooth/include/ng_btsocket_l2cap.h b/sys/netgraph/bluetooth/include/ng_btsocket_l2cap.h
index 34df9179c860..43482c6ca5f6 100644
--- a/sys/netgraph/bluetooth/include/ng_btsocket_l2cap.h
+++ b/sys/netgraph/bluetooth/include/ng_btsocket_l2cap.h
@@ -102,7 +102,7 @@ int  ng_btsocket_l2cap_raw_bind       (struct socket *, struct sockaddr *,
                                        struct thread *);
 int  ng_btsocket_l2cap_raw_connect    (struct socket *, struct sockaddr *,
                                        struct thread *);
-int  ng_btsocket_l2cap_raw_control    (struct socket *, u_long, caddr_t,
+int  ng_btsocket_l2cap_raw_control    (struct socket *, u_long, void *,
                                        struct ifnet *, struct thread *);
 void ng_btsocket_l2cap_raw_detach     (struct socket *);
 int  ng_btsocket_l2cap_raw_disconnect (struct socket *);
@@ -198,7 +198,7 @@ int  ng_btsocket_l2cap_bind       (struct socket *, struct sockaddr *,
                                    struct thread *);
 int  ng_btsocket_l2cap_connect    (struct socket *, struct sockaddr *,
                                    struct thread *);
-int  ng_btsocket_l2cap_control    (struct socket *, u_long, caddr_t,
+int  ng_btsocket_l2cap_control    (struct socket *, u_long, void *,
                                    struct ifnet *, struct thread *);
 int  ng_btsocket_l2cap_ctloutput  (struct socket *, struct sockopt *);
 void ng_btsocket_l2cap_detach     (struct socket *);
diff --git a/sys/netgraph/bluetooth/include/ng_btsocket_rfcomm.h b/sys/netgraph/bluetooth/include/ng_btsocket_rfcomm.h
index 179b6518eb33..ea0928d25044 100644
--- a/sys/netgraph/bluetooth/include/ng_btsocket_rfcomm.h
+++ b/sys/netgraph/bluetooth/include/ng_btsocket_rfcomm.h
@@ -323,7 +323,7 @@ int  ng_btsocket_rfcomm_bind       (struct socket *, struct sockaddr *,
                                     struct thread *);
 int  ng_btsocket_rfcomm_connect    (struct socket *, struct sockaddr *,
                                     struct thread *);
-int  ng_btsocket_rfcomm_control    (struct socket *, u_long, caddr_t,
+int  ng_btsocket_rfcomm_control    (struct socket *, u_long, void *,
                                     struct ifnet *, struct thread *);
 int  ng_btsocket_rfcomm_ctloutput  (struct socket *, struct sockopt *);
 void ng_btsocket_rfcomm_detach     (struct socket *);
diff --git a/sys/netgraph/bluetooth/include/ng_btsocket_sco.h b/sys/netgraph/bluetooth/include/ng_btsocket_sco.h
index 001be86d0a5f..7a0b0a272f81 100644
--- a/sys/netgraph/bluetooth/include/ng_btsocket_sco.h
+++ b/sys/netgraph/bluetooth/include/ng_btsocket_sco.h
@@ -113,7 +113,7 @@ int  ng_btsocket_sco_bind       (struct socket *, struct sockaddr *,
                                    struct thread *);
 int  ng_btsocket_sco_connect    (struct socket *, struct sockaddr *,
                                    struct thread *);
-int  ng_btsocket_sco_control    (struct socket *, u_long, caddr_t,
+int  ng_btsocket_sco_control    (struct socket *, u_long, void *,
                                    struct ifnet *, struct thread *);
 int  ng_btsocket_sco_ctloutput  (struct socket *, struct sockopt *);
 void ng_btsocket_sco_detach     (struct socket *);
diff --git a/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c b/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c
index 03894464a69a..ef8e835d0323 100644
--- a/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c
+++ b/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c
@@ -1031,7 +1031,7 @@ ng_btsocket_hci_raw_connect(struct socket *so, struct sockaddr *nam,
  */
 
 int
-ng_btsocket_hci_raw_control(struct socket *so, u_long cmd, caddr_t data,
+ng_btsocket_hci_raw_control(struct socket *so, u_long cmd, void *data,
 		struct ifnet *ifp, struct thread *td)
 {
 	ng_btsocket_hci_raw_pcb_p	 pcb = so2hci_raw_pcb(so);
diff --git a/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c b/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c
index 34d1d69f408f..e4e75327c1ac 100644
--- a/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c
+++ b/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c
@@ -2280,7 +2280,7 @@ ng_btsocket_l2cap_connect(struct socket *so, struct sockaddr *nam,
  */
 
 int
-ng_btsocket_l2cap_control(struct socket *so, u_long cmd, caddr_t data,
+ng_btsocket_l2cap_control(struct socket *so, u_long cmd, void *data,
 		struct ifnet *ifp, struct thread *td)
 {
 	return (EINVAL);
diff --git a/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c b/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c
index 7674c23f25cc..6536413db7ff 100644
--- a/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c
+++ b/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c
@@ -784,7 +784,7 @@ ng_btsocket_l2cap_raw_connect(struct socket *so, struct sockaddr *nam,
  */
 
 int
-ng_btsocket_l2cap_raw_control(struct socket *so, u_long cmd, caddr_t data,
+ng_btsocket_l2cap_raw_control(struct socket *so, u_long cmd, void *data,
 		struct ifnet *ifp, struct thread *td)
 {
 	ng_btsocket_l2cap_raw_pcb_p	 pcb = so2l2cap_raw_pcb(so);
diff --git a/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c b/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c
index 7bdf9c95c53d..ac504483b0a8 100644
--- a/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c
+++ b/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c
@@ -637,7 +637,7 @@ ng_btsocket_rfcomm_connect(struct socket *so, struct sockaddr *nam,
  */
 
 int
-ng_btsocket_rfcomm_control(struct socket *so, u_long cmd, caddr_t data,
+ng_btsocket_rfcomm_control(struct socket *so, u_long cmd, void *data,
 		struct ifnet *ifp, struct thread *td)
 {
 	return (EINVAL);
diff --git a/sys/netgraph/bluetooth/socket/ng_btsocket_sco.c b/sys/netgraph/bluetooth/socket/ng_btsocket_sco.c
index 92898dad3245..3960f4cdb6bc 100644
--- a/sys/netgraph/bluetooth/socket/ng_btsocket_sco.c
+++ b/sys/netgraph/bluetooth/socket/ng_btsocket_sco.c
@@ -1445,7 +1445,7 @@ ng_btsocket_sco_connect(struct socket *so, struct sockaddr *nam,
  */
 
 int
-ng_btsocket_sco_control(struct socket *so, u_long cmd, caddr_t data,
+ng_btsocket_sco_control(struct socket *so, u_long cmd, void *data,
 		struct ifnet *ifp, struct thread *td)
 {
 	return (EINVAL);
diff --git a/sys/netinet/in.c b/sys/netinet/in.c
index e394af68ac23..790740456160 100644
--- a/sys/netinet/in.c
+++ b/sys/netinet/in.c
@@ -324,7 +324,7 @@ in_socktrim(struct sockaddr_in *ap)
  * Generic internet control operations (ioctl's).
  */
 int
-in_control(struct socket *so, u_long cmd, caddr_t data, struct ifnet *ifp,
+in_control(struct socket *so, u_long cmd, void *data, struct ifnet *ifp,
     struct thread *td)
 {
 	struct ifreq *ifr = (struct ifreq *)data;
diff --git a/sys/netinet/in_var.h b/sys/netinet/in_var.h
index c3f936b444dc..40e1c1a23c40 100644
--- a/sys/netinet/in_var.h
+++ b/sys/netinet/in_var.h
@@ -444,7 +444,7 @@ int	in_joingroup_locked(struct ifnet *, const struct in_addr *,
 int	in_leavegroup(struct in_multi *, /*const*/ struct in_mfilter *);
 int	in_leavegroup_locked(struct in_multi *,
 	    /*const*/ struct in_mfilter *);
-int	in_control(struct socket *, u_long, caddr_t, struct ifnet *,
+int	in_control(struct socket *, u_long, void *, struct ifnet *,
 	    struct thread *);
 int	in_addprefix(struct in_ifaddr *);
 int	in_scrubprefix(struct in_ifaddr *, u_int);
diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c
index a69758678b4c..3386e0463637 100644
--- a/sys/netinet6/in6.c
+++ b/sys/netinet6/in6.c
@@ -246,7 +246,7 @@ struct in6_ndifreq32 {
 #endif
 
 int
-in6_control(struct socket *so, u_long cmd, caddr_t data,
+in6_control(struct socket *so, u_long cmd, void *data,
     struct ifnet *ifp, struct thread *td)
 {
 	struct	in6_ifreq *ifr = (struct in6_ifreq *)data;
diff --git a/sys/netinet6/in6_var.h b/sys/netinet6/in6_var.h
index 1c8e78edd46c..92e94e730c33 100644
--- a/sys/netinet6/in6_var.h
+++ b/sys/netinet6/in6_var.h
@@ -881,7 +881,7 @@ int	ip6_setmoptions(struct inpcb *, struct sockopt *);
 #define IN6_IFAUPDATE_DADDELAY	0x1 /* first time to configure an address */
 
 int	in6_mask2len(struct in6_addr *, u_char *);
-int	in6_control(struct socket *, u_long, caddr_t, struct ifnet *,
+int	in6_control(struct socket *, u_long, void *, struct ifnet *,
 	struct thread *);
 int	in6_update_ifa(struct ifnet *, struct in6_aliasreq *,
 	struct in6_ifaddr *, int);
diff --git a/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c b/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c
index 4305b42f1c00..8382854e24e2 100644
--- a/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c
+++ b/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c
@@ -1575,13 +1575,6 @@ sdp_ctlinput(int cmd, struct sockaddr *sa, void *vip)
 	sdp_pcbnotifyall(faddr, inetctlerrmap[cmd], sdp_notify);
 }
 
-static int
-sdp_control(struct socket *so, u_long cmd, caddr_t data, struct ifnet *ifp,
-    struct thread *td)
-{
-	return (EOPNOTSUPP);
-}
-
 static void
 sdp_keepalive_timeout(void *data)
 {
@@ -1923,7 +1916,6 @@ struct pr_usrreqs sdp_usrreqs = {
 	.pru_attach =		sdp_attach,
 	.pru_bind =		sdp_bind,
 	.pru_connect =		sdp_connect,
-	.pru_control =		sdp_control,
 	.pru_detach =		sdp_detach,
 	.pru_disconnect =	sdp_disconnect,
 	.pru_listen =		sdp_listen,
diff --git a/sys/sys/protosw.h b/sys/sys/protosw.h
index 78c25e6e77f6..1f48ef9ef55f 100644
--- a/sys/sys/protosw.h
+++ b/sys/sys/protosw.h
@@ -79,8 +79,8 @@ typedef int	pr_bind_t(struct socket *, struct sockaddr *, struct thread *);
 typedef int	pr_connect_t(struct socket *, struct sockaddr *,
 		    struct thread *);
 typedef int	pr_connect2_t(struct socket *, struct socket *);
-typedef int	pr_control_t(struct socket *, u_long, caddr_t, struct ifnet *,
-		    struct thread *);
+typedef int	pr_control_t(struct socket *, unsigned long, void *,
+		    struct ifnet *, struct thread *);
 typedef void	pr_detach_t(struct socket *);
 typedef int	pr_disconnect_t(struct socket *);
 typedef int	pr_listen_t(struct socket *, int, struct thread *);
@@ -272,7 +272,7 @@ int	pru_connect_notsupp(struct socket *so, struct sockaddr *nam,
 int	pru_connectat_notsupp(int fd, struct socket *so, struct sockaddr *nam,
 	    struct thread *td);
 int	pru_connect2_notsupp(struct socket *so1, struct socket *so2);
-int	pru_control_notsupp(struct socket *so, u_long cmd, caddr_t data,
+int	pru_control_notsupp(struct socket *so, u_long cmd, void *data,
 	    struct ifnet *ifp, struct thread *td);
 int	pru_disconnect_notsupp(struct socket *so);
 int	pru_listen_notsupp(struct socket *so, int backlog, struct thread *td);