From bd4539cc23771f3c0b3fae4ecf80e725b613b305 Mon Sep 17 00:00:00 2001 From: Jeffrey Hsu Date: Tue, 23 Mar 2004 22:19:08 +0000 Subject: [PATCH] Eliminate use of curthread in if_ioctl functions by passing down the ucred structure. --- sys/dev/netif/an/if_an.c | 19 ++++++++--------- sys/dev/netif/ar/if_ar.c | 6 +++--- sys/dev/netif/aue/if_aue.c | 6 +++--- sys/dev/netif/awi/awi.c | 12 +++++------ sys/dev/netif/bfe/if_bfe.c | 6 +++--- sys/dev/netif/bge/if_bge.c | 8 +++++--- sys/dev/netif/cs/if_cs.c | 27 +++++++++++++------------ sys/dev/netif/cue/if_cue.c | 6 +++--- sys/dev/netif/dc/if_dc.c | 8 +++++--- sys/dev/netif/de/if_de.c | 5 +++-- sys/dev/netif/ed/if_ed.c | 7 ++++--- sys/dev/netif/em/if_em.c | 6 +++--- sys/dev/netif/ep/if_ep.c | 7 ++++--- sys/dev/netif/ex/if_ex.c | 6 +++--- sys/dev/netif/fe/if_fe.c | 7 ++++--- sys/dev/netif/fwe/if_fwe.c | 6 +++--- sys/dev/netif/fxp/if_fxp.c | 6 +++--- sys/dev/netif/gx/if_gx.c | 7 ++++--- sys/dev/netif/ie/if_ie.c | 14 +++++++------ sys/dev/netif/kue/if_kue.c | 6 +++--- sys/dev/netif/lge/if_lge.c | 8 +++++--- sys/dev/netif/lnc/if_lnc.c | 7 ++++--- sys/dev/netif/my/if_my.c | 6 +++--- sys/dev/netif/nge/if_nge.c | 8 +++++--- sys/dev/netif/pcn/if_pcn.c | 8 +++++--- sys/dev/netif/plip/if_plip.c | 6 +++--- sys/dev/netif/ray/if_ray.c | 7 ++++--- sys/dev/netif/rl/if_rl.c | 8 +++++--- sys/dev/netif/sbni/if_sbni.c | 12 +++++------ sys/dev/netif/sbsh/if_sbsh.c | 13 ++++++------ sys/dev/netif/sf/if_sf.c | 8 +++++--- sys/dev/netif/sis/if_sis.c | 6 +++--- sys/dev/netif/sk/if_sk.c | 8 +++++--- sys/dev/netif/sn/if_sn.c | 6 +++--- sys/dev/netif/snc/dp83932.c | 8 +++++--- sys/dev/netif/sr/if_sr.c | 7 ++++--- sys/dev/netif/ste/if_ste.c | 8 +++++--- sys/dev/netif/ti/if_ti.c | 8 +++++--- sys/dev/netif/tl/if_tl.c | 8 +++++--- sys/dev/netif/tx/if_tx.c | 7 ++++--- sys/dev/netif/txp/if_txp.c | 7 ++++--- sys/dev/netif/vr/if_vr.c | 8 +++++--- sys/dev/netif/vx/if_vx.c | 7 ++++--- sys/dev/netif/wb/if_wb.c | 8 +++++--- sys/dev/netif/wi/if_wi.c | 19 ++++++++--------- sys/dev/netif/wx/if_wx.c | 7 ++++--- sys/dev/netif/xe/if_xe.c | 6 +++--- sys/dev/netif/xl/if_xl.c | 8 +++++--- sys/net/bpf.c | 5 +++-- sys/net/disc/if_disc.c | 7 ++++--- sys/net/ef/if_ef.c | 6 +++--- sys/net/faith/if_faith.c | 7 ++++--- sys/net/gif/if_gif.c | 5 +++-- sys/net/gif/if_gif.h | 4 ++-- sys/net/gre/if_gre.c | 23 ++++++++++----------- sys/net/if.c | 36 +++++++++++++++++++-------------- sys/net/if_loop.c | 7 ++++--- sys/net/if_var.h | 5 +++-- sys/net/ppp/if_ppp.c | 8 +++++--- sys/net/sl/if_sl.c | 7 ++++--- sys/net/stf/if_stf.c | 7 ++++--- sys/net/tap/if_tap.c | 8 +++++--- sys/net/tun/if_tun.c | 7 ++++--- sys/net/vlan/if_vlan.c | 10 +++++---- sys/netgraph/fec/ng_fec.c | 13 ++++++------ sys/netgraph/iface/ng_iface.c | 8 +++++--- sys/netinet/if_atm.c | 6 +++--- sys/netinet/in.c | 14 +++++++------ sys/netinet6/in6.c | 7 ++++--- sys/netinet6/ip6_mroute.c | 5 +++-- sys/netproto/atalk/at_control.c | 7 ++++--- sys/netproto/ipx/ipx.c | 11 ++++++---- sys/netproto/natm/natm.c | 19 +++++++++-------- sys/netproto/ns/ns.c | 13 +++++++----- 74 files changed, 370 insertions(+), 287 deletions(-) diff --git a/sys/dev/netif/an/if_an.c b/sys/dev/netif/an/if_an.c index 3fd27d0ca7..87807a57ac 100644 --- a/sys/dev/netif/an/if_an.c +++ b/sys/dev/netif/an/if_an.c @@ -30,7 +30,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/an/if_an.c,v 1.2.2.13 2003/02/11 03:32:48 ambrisko Exp $ - * $DragonFly: src/sys/dev/netif/an/if_an.c,v 1.10 2004/03/14 15:36:48 joerg Exp $ + * $DragonFly: src/sys/dev/netif/an/if_an.c,v 1.11 2004/03/23 22:18:58 hsu Exp $ * * $FreeBSD: src/sys/dev/an/if_an.c,v 1.2.2.13 2003/02/11 03:32:48 ambrisko Exp $ */ @@ -138,7 +138,8 @@ /* These are global because we need them in sys/pci/if_an_p.c. */ static void an_reset (struct an_softc *); static int an_init_mpi350_desc (struct an_softc *); -static int an_ioctl (struct ifnet *, u_long, caddr_t); +static int an_ioctl (struct ifnet *, u_long, caddr_t, + struct ucred *); static void an_init (void *); static int an_init_tx_ring (struct an_softc *); static void an_start (struct ifnet *); @@ -1839,17 +1840,17 @@ an_promisc(sc, promisc) } static int -an_ioctl(ifp, command, data) +an_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { int s, error = 0; int len; int i; struct an_softc *sc; struct ifreq *ifr; - struct thread *td = curthread; struct ieee80211req *ireq; u_int8_t tmpstr[IEEE80211_NWID_LEN*2]; u_int8_t *tmpptr; @@ -1915,7 +1916,7 @@ an_ioctl(ifp, command, data) break; #ifdef ANCACHE if (sc->areq.an_type == AN_RID_ZERO_CACHE) { - error = suser(td); + error = suser_cred(cr, NULL_CRED_OKAY); if (error) break; sc->an_sigitems = sc->an_nextitem = 0; @@ -1939,7 +1940,7 @@ an_ioctl(ifp, command, data) error = copyout(&sc->areq, ifr->ifr_data, sizeof(sc->areq)); break; case SIOCSAIRONET: - if ((error = suser(td))) + if ((error = suser_cred(cr, NULL_CRED_OKAY))) goto out; error = copyin(ifr->ifr_data, &sc->areq, sizeof(sc->areq)); if (error != 0) @@ -1947,7 +1948,7 @@ an_ioctl(ifp, command, data) an_setdef(sc, &sc->areq); break; case SIOCGPRIVATE_0: /* used by Cisco client utility */ - if ((error = suser(td))) + if ((error = suser_cred(cr, NULL_CRED_OKAY))) goto out; copyin(ifr->ifr_data, &l_ioctl, sizeof(l_ioctl)); mode = l_ioctl.command; @@ -1967,7 +1968,7 @@ an_ioctl(ifp, command, data) break; case SIOCGPRIVATE_1: /* used by Cisco client utility */ - if ((error = suser(td))) + if ((error = suser_cred(cr, NULL_CRED_OKAY))) goto out; copyin(ifr->ifr_data, &l_ioctl, sizeof(l_ioctl)); l_ioctl.command = 0; @@ -2200,7 +2201,7 @@ an_ioctl(ifp, command, data) } break; case SIOCS80211: - if ((error = suser(td))) + if ((error = suser_cred(cr, NULL_CRED_OKAY))) goto out; sc->areq.an_len = sizeof(sc->areq); /* diff --git a/sys/dev/netif/ar/if_ar.c b/sys/dev/netif/ar/if_ar.c index a7038c34b2..209b6cc020 100644 --- a/sys/dev/netif/ar/if_ar.c +++ b/sys/dev/netif/ar/if_ar.c @@ -26,7 +26,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/ar/if_ar.c,v 1.52.2.1 2002/06/17 15:10:57 jhay Exp $ - * $DragonFly: src/sys/dev/netif/ar/if_ar.c,v 1.6 2004/01/06 01:40:46 dillon Exp $ + * $DragonFly: src/sys/dev/netif/ar/if_ar.c,v 1.7 2004/03/23 22:18:58 hsu Exp $ */ /* @@ -191,7 +191,7 @@ static void arintr(void *arg); static void ar_xmit(struct ar_softc *sc); #ifndef NETGRAPH static void arstart(struct ifnet *ifp); -static int arioctl(struct ifnet *ifp, u_long cmd, caddr_t data); +static int arioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *); static void arwatchdog(struct ifnet *ifp); #else /* NETGRAPH */ static void arstart(struct ar_softc *sc); @@ -767,7 +767,7 @@ top_arstart: #ifndef NETGRAPH static int -arioctl(struct ifnet *ifp, u_long cmd, caddr_t data) +arioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr) { int s, error; int was_up, should_be_up; diff --git a/sys/dev/netif/aue/if_aue.c b/sys/dev/netif/aue/if_aue.c index 67f30cb89d..ebe4457c97 100644 --- a/sys/dev/netif/aue/if_aue.c +++ b/sys/dev/netif/aue/if_aue.c @@ -30,7 +30,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/usb/if_aue.c,v 1.78 2003/12/17 14:23:07 sanpei Exp $ - * $DragonFly: src/sys/dev/netif/aue/if_aue.c,v 1.8 2004/03/14 15:36:48 joerg Exp $ + * $DragonFly: src/sys/dev/netif/aue/if_aue.c,v 1.9 2004/03/23 22:18:58 hsu Exp $ * * $FreeBSD: src/sys/dev/usb/if_aue.c,v 1.19.2.18 2003/06/14 15:56:48 trhodes Exp $ */ @@ -192,7 +192,7 @@ Static void aue_txeof(usbd_xfer_handle, usbd_private_handle, usbd_status); Static void aue_tick(void *); Static void aue_rxstart(struct ifnet *); Static void aue_start(struct ifnet *); -Static int aue_ioctl(struct ifnet *, u_long, caddr_t); +Static int aue_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *); Static void aue_init(void *); Static void aue_stop(struct aue_softc *); Static void aue_watchdog(struct ifnet *); @@ -1372,7 +1372,7 @@ aue_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr) } Static int -aue_ioctl(struct ifnet *ifp, u_long command, caddr_t data) +aue_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr) { struct aue_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *)data; diff --git a/sys/dev/netif/awi/awi.c b/sys/dev/netif/awi/awi.c index 07c21c62b6..8796cea103 100644 --- a/sys/dev/netif/awi/awi.c +++ b/sys/dev/netif/awi/awi.c @@ -1,6 +1,6 @@ /* $NetBSD: awi.c,v 1.26 2000/07/21 04:48:55 onoe Exp $ */ /* $FreeBSD: src/sys/dev/awi/awi.c,v 1.10.2.2 2003/01/23 21:06:42 sam Exp $ */ -/* $DragonFly: src/sys/dev/netif/awi/Attic/awi.c,v 1.10 2004/03/14 15:36:48 joerg Exp $ */ +/* $DragonFly: src/sys/dev/netif/awi/Attic/awi.c,v 1.11 2004/03/23 22:18:58 hsu Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -162,7 +162,7 @@ #include "awivar.h" #endif -static int awi_ioctl (struct ifnet *ifp, u_long cmd, caddr_t data); +static int awi_ioctl (struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *); #ifdef IFM_IEEE80211 static int awi_media_rate2opt (struct awi_softc *sc, int rate); static int awi_media_opt2rate (struct awi_softc *sc, int opt); @@ -444,12 +444,12 @@ awi_power(sc, why) #endif /* __NetBSD__ */ static int -awi_ioctl(ifp, cmd, data) +awi_ioctl(ifp, cmd, data, cr) struct ifnet *ifp; u_long cmd; caddr_t data; + struct ucred *cr; { - struct thread *td = curthread; struct awi_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *)data; struct ifaddr *ifa = (struct ifaddr *)data; @@ -515,7 +515,7 @@ awi_ioctl(ifp, cmd, data) break; case SIOCS80211NWID: #if defined(__DragonFly__) || defined(__FreeBSD__) - error = suser(td); /* EPERM if no proc */ + error = suser_cred(cr, NULL_CRED_OKAY); /* EPERM if no proc */ if (error) break; #endif @@ -549,7 +549,7 @@ awi_ioctl(ifp, cmd, data) break; case SIOCS80211NWKEY: #if defined(__DragonFly__) || defined(__FreeBSD__) - error = suser(td); /* EPERM if no proc */ + error = suser_cred(cr, NULL_CRED_OKAY); /* EPERM if no proc */ if (error) break; #endif diff --git a/sys/dev/netif/bfe/if_bfe.c b/sys/dev/netif/bfe/if_bfe.c index fd0e0f2bc6..61b9e5d240 100644 --- a/sys/dev/netif/bfe/if_bfe.c +++ b/sys/dev/netif/bfe/if_bfe.c @@ -29,7 +29,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/bfe/if_bfe.c 1.4.4.7 2004/03/02 08:41:33 julian Exp v - * $DragonFly: src/sys/dev/netif/bfe/if_bfe.c,v 1.3 2004/03/14 15:36:48 joerg Exp $ + * $DragonFly: src/sys/dev/netif/bfe/if_bfe.c,v 1.4 2004/03/23 22:18:59 hsu Exp $ */ #include @@ -92,7 +92,7 @@ static int bfe_detach(device_t); static void bfe_release_resources(struct bfe_softc *); static void bfe_intr(void *); static void bfe_start(struct ifnet *); -static int bfe_ioctl(struct ifnet *, u_long, caddr_t); +static int bfe_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *); static void bfe_init(void *); static void bfe_stop(struct bfe_softc *); static void bfe_watchdog(struct ifnet *); @@ -1426,7 +1426,7 @@ bfe_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr) } static int -bfe_ioctl(struct ifnet *ifp, u_long command, caddr_t data) +bfe_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr) { struct bfe_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/dev/netif/bge/if_bge.c b/sys/dev/netif/bge/if_bge.c index ca02e559da..7c3dc61911 100644 --- a/sys/dev/netif/bge/if_bge.c +++ b/sys/dev/netif/bge/if_bge.c @@ -31,7 +31,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/bge/if_bge.c,v 1.3.2.29 2003/12/01 21:06:59 ambrisko Exp $ - * $DragonFly: src/sys/dev/netif/bge/if_bge.c,v 1.17 2004/03/22 13:33:34 joerg Exp $ + * $DragonFly: src/sys/dev/netif/bge/if_bge.c,v 1.18 2004/03/23 22:18:59 hsu Exp $ * */ @@ -192,7 +192,8 @@ static int bge_encap (struct bge_softc *, struct mbuf *, static void bge_intr (void *); static void bge_start (struct ifnet *); -static int bge_ioctl (struct ifnet *, u_long, caddr_t); +static int bge_ioctl (struct ifnet *, u_long, caddr_t, + struct ucred *); static void bge_init (void *); static void bge_stop (struct bge_softc *); static void bge_watchdog (struct ifnet *); @@ -2801,10 +2802,11 @@ bge_ifmedia_sts(ifp, ifmr) } static int -bge_ioctl(ifp, command, data) +bge_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { struct bge_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/dev/netif/cs/if_cs.c b/sys/dev/netif/cs/if_cs.c index 3709287c19..31f0c73185 100644 --- a/sys/dev/netif/cs/if_cs.c +++ b/sys/dev/netif/cs/if_cs.c @@ -28,7 +28,7 @@ /* * $FreeBSD: src/sys/dev/cs/if_cs.c,v 1.19.2.1 2001/01/25 20:13:48 imp Exp $ - * $DragonFly: src/sys/dev/netif/cs/if_cs.c,v 1.6 2004/03/14 15:36:48 joerg Exp $ + * $DragonFly: src/sys/dev/netif/cs/if_cs.c,v 1.7 2004/03/23 22:18:59 hsu Exp $ * * Device driver for Crystal Semiconductor CS8920 based ethernet * adapters. By Maxim Bolotin and Oleg Sharoiko, 27-April-1997 @@ -73,16 +73,16 @@ static int cs_recv_delay = 570; SYSCTL_INT(_machdep, OID_AUTO, cs_recv_delay, CTLFLAG_RW, &cs_recv_delay, 0, ""); -static void cs_init (void *); -static int cs_ioctl (struct ifnet *, u_long, caddr_t); -static void cs_start (struct ifnet *); -static void cs_stop (struct cs_softc *); -static void cs_reset (struct cs_softc *); -static void cs_watchdog (struct ifnet *); +static void cs_init(void *); +static int cs_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *); +static void cs_start(struct ifnet *); +static void cs_stop(struct cs_softc *); +static void cs_reset(struct cs_softc *); +static void cs_watchdog(struct ifnet *); -static int cs_mediachange (struct ifnet *); -static void cs_mediastatus (struct ifnet *, struct ifmediareq *); -static int cs_mediaset (struct cs_softc *, int); +static int cs_mediachange(struct ifnet *); +static void cs_mediastatus(struct ifnet *, struct ifmediareq *); +static int cs_mediaset(struct cs_softc *, int); static void cs_write_mbufs(struct cs_softc*, struct mbuf*); static void cs_xmit_buf(struct cs_softc*); @@ -92,8 +92,8 @@ static void cs_setmode(struct cs_softc*); static int get_eeprom_data(struct cs_softc *sc, int, int, int *); static int get_eeprom_cksum(int, int, int *); static int wait_eeprom_ready( struct cs_softc *); -static void control_dc_dc( struct cs_softc *, int ); -static int send_test_pkt( struct cs_softc * ); +static void control_dc_dc(struct cs_softc *, int ); +static int send_test_pkt(struct cs_softc * ); static int enable_tp(struct cs_softc *); static int enable_aui(struct cs_softc *); static int enable_bnc(struct cs_softc *); @@ -1087,7 +1087,8 @@ cs_setmode(struct cs_softc *sc) } static int -cs_ioctl(register struct ifnet *ifp, u_long command, caddr_t data) +cs_ioctl(register struct ifnet *ifp, u_long command, caddr_t data, + struct ucred *cr) { struct cs_softc *sc=ifp->if_softc; struct ifreq *ifr = (struct ifreq *)data; diff --git a/sys/dev/netif/cue/if_cue.c b/sys/dev/netif/cue/if_cue.c index de7015b5c6..cc71cdbec1 100644 --- a/sys/dev/netif/cue/if_cue.c +++ b/sys/dev/netif/cue/if_cue.c @@ -30,7 +30,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/usb/if_cue.c,v 1.45 2003/12/08 07:54:14 obrien Exp $ - * $DragonFly: src/sys/dev/netif/cue/if_cue.c,v 1.7 2004/03/14 15:36:49 joerg Exp $ + * $DragonFly: src/sys/dev/netif/cue/if_cue.c,v 1.8 2004/03/23 22:18:59 hsu Exp $ * */ @@ -107,7 +107,7 @@ Static void cue_txeof(usbd_xfer_handle, usbd_private_handle, usbd_status); Static void cue_tick(void *); Static void cue_rxstart(struct ifnet *); Static void cue_start(struct ifnet *); -Static int cue_ioctl(struct ifnet *, u_long, caddr_t); +Static int cue_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *); Static void cue_init(void *); Static void cue_stop(struct cue_softc *); Static void cue_watchdog(struct ifnet *); @@ -1024,7 +1024,7 @@ cue_init(void *xsc) } Static int -cue_ioctl(struct ifnet *ifp, u_long command, caddr_t data) +cue_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr) { struct cue_softc *sc = ifp->if_softc; int error = 0; diff --git a/sys/dev/netif/dc/if_dc.c b/sys/dev/netif/dc/if_dc.c index a7681835a2..917b207bce 100644 --- a/sys/dev/netif/dc/if_dc.c +++ b/sys/dev/netif/dc/if_dc.c @@ -30,7 +30,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/pci/if_dc.c,v 1.9.2.45 2003/06/08 14:31:53 mux Exp $ - * $DragonFly: src/sys/dev/netif/dc/if_dc.c,v 1.9 2004/03/14 15:36:49 joerg Exp $ + * $DragonFly: src/sys/dev/netif/dc/if_dc.c,v 1.10 2004/03/23 22:18:59 hsu Exp $ * * $FreeBSD: src/sys/pci/if_dc.c,v 1.9.2.45 2003/06/08 14:31:53 mux Exp $ */ @@ -209,7 +209,8 @@ static void dc_tick (void *); static void dc_tx_underrun (struct dc_softc *); static void dc_intr (void *); static void dc_start (struct ifnet *); -static int dc_ioctl (struct ifnet *, u_long, caddr_t); +static int dc_ioctl (struct ifnet *, u_long, caddr_t, + struct ucred *); static void dc_init (void *); static void dc_stop (struct dc_softc *); static void dc_watchdog (struct ifnet *); @@ -3364,10 +3365,11 @@ static void dc_ifmedia_sts(ifp, ifmr) return; } -static int dc_ioctl(ifp, command, data) +static int dc_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { struct dc_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/dev/netif/de/if_de.c b/sys/dev/netif/de/if_de.c index 8876dc2af9..6629160eff 100644 --- a/sys/dev/netif/de/if_de.c +++ b/sys/dev/netif/de/if_de.c @@ -1,7 +1,7 @@ /* $NetBSD: if_de.c,v 1.86 1999/06/01 19:17:59 thorpej Exp $ */ /* $FreeBSD: src/sys/pci/if_de.c,v 1.123.2.4 2000/08/04 23:25:09 peter Exp $ */ -/* $DragonFly: src/sys/dev/netif/de/if_de.c,v 1.9 2004/03/14 15:36:49 joerg Exp $ */ +/* $DragonFly: src/sys/dev/netif/de/if_de.c,v 1.10 2004/03/23 22:18:59 hsu Exp $ */ /*- * Copyright (c) 1994-1997 Matt Thomas (matt@3am-software.com) @@ -4550,7 +4550,8 @@ static int tulip_ifioctl( struct ifnet * ifp, u_long cmd, - caddr_t data) + caddr_t data, + struct ucred * cr) { TULIP_PERFSTART(ifioctl) tulip_softc_t * const sc = (tulip_softc_t *)ifp->if_softc; diff --git a/sys/dev/netif/ed/if_ed.c b/sys/dev/netif/ed/if_ed.c index 3a6f93d304..b762d8e7d0 100644 --- a/sys/dev/netif/ed/if_ed.c +++ b/sys/dev/netif/ed/if_ed.c @@ -25,7 +25,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/ed/if_ed.c,v 1.224 2003/12/08 07:54:12 obrien Exp $ - * $DragonFly: src/sys/dev/netif/ed/if_ed.c,v 1.11 2004/03/14 15:36:49 joerg Exp $ + * $DragonFly: src/sys/dev/netif/ed/if_ed.c,v 1.12 2004/03/23 22:18:59 hsu Exp $ */ /* @@ -79,7 +79,7 @@ devclass_t ed_devclass; static void ed_init (void *); -static int ed_ioctl (struct ifnet *, u_long, caddr_t); +static int ed_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *); static void ed_start (struct ifnet *); static void ed_reset (struct ifnet *); static void ed_watchdog (struct ifnet *); @@ -2661,10 +2661,11 @@ edintr(arg) * pretty ugly. */ static int -ed_ioctl(ifp, command, data) +ed_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { struct ed_softc *sc = ifp->if_softc; #ifndef ED_NO_MIIBUS diff --git a/sys/dev/netif/em/if_em.c b/sys/dev/netif/em/if_em.c index a2e61b5fda..f8fe2a5a2e 100644 --- a/sys/dev/netif/em/if_em.c +++ b/sys/dev/netif/em/if_em.c @@ -32,7 +32,7 @@ POSSIBILITY OF SUCH DAMAGE. ***************************************************************************/ /*$FreeBSD: src/sys/dev/em/if_em.c,v 1.2.2.15 2003/06/09 22:10:15 pdeuskar Exp $*/ -/*$DragonFly: src/sys/dev/netif/em/if_em.c,v 1.8 2004/03/17 04:59:41 dillon Exp $*/ +/*$DragonFly: src/sys/dev/netif/em/if_em.c,v 1.9 2004/03/23 22:19:00 hsu Exp $*/ #include "if_em.h" @@ -121,7 +121,7 @@ static int em_detach(device_t); static int em_shutdown(device_t); static void em_intr(void *); static void em_start(struct ifnet *); -static int em_ioctl(struct ifnet *, u_long, caddr_t); +static int em_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *); static void em_watchdog(struct ifnet *); static void em_init(void *); static void em_stop(void *); @@ -668,7 +668,7 @@ em_start(struct ifnet *ifp) **********************************************************************/ static int -em_ioctl(struct ifnet *ifp, u_long command, caddr_t data) +em_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr) { int s, mask, error = 0; struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/dev/netif/ep/if_ep.c b/sys/dev/netif/ep/if_ep.c index 49657d4720..76295268f6 100644 --- a/sys/dev/netif/ep/if_ep.c +++ b/sys/dev/netif/ep/if_ep.c @@ -39,7 +39,7 @@ /* * $FreeBSD: src/sys/dev/ep/if_ep.c,v 1.95.2.3 2002/03/06 07:26:35 imp Exp $ - * $DragonFly: src/sys/dev/netif/ep/if_ep.c,v 1.8 2004/03/14 15:36:49 joerg Exp $ + * $DragonFly: src/sys/dev/netif/ep/if_ep.c,v 1.9 2004/03/23 22:19:00 hsu Exp $ * * Promiscuous mode added and interrupt logic slightly changed * to reduce the number of adapter failures. Transceiver select @@ -105,7 +105,7 @@ static int ep_media2if_media[] = /* if functions */ static void ep_if_init (void *); -static int ep_if_ioctl (struct ifnet *, u_long, caddr_t); +static int ep_if_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *); static void ep_if_start (struct ifnet *); static void ep_if_watchdog (struct ifnet *); @@ -854,10 +854,11 @@ ep_ifmedia_sts(ifp, ifmr) } static int -ep_if_ioctl(ifp, cmd, data) +ep_if_ioctl(ifp, cmd, data, cr) struct ifnet * ifp; u_long cmd; caddr_t data; + struct ucred * cr; { struct ep_softc * sc = ifp->if_softc; struct ifreq * ifr = (struct ifreq *)data; diff --git a/sys/dev/netif/ex/if_ex.c b/sys/dev/netif/ex/if_ex.c index c342302a41..280dcd9eb6 100644 --- a/sys/dev/netif/ex/if_ex.c +++ b/sys/dev/netif/ex/if_ex.c @@ -25,7 +25,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/ex/if_ex.c,v 1.26.2.3 2001/03/05 05:33:20 imp Exp $ - * $DragonFly: src/sys/dev/netif/ex/if_ex.c,v 1.8 2004/03/14 15:36:49 joerg Exp $ + * $DragonFly: src/sys/dev/netif/ex/if_ex.c,v 1.9 2004/03/23 22:19:00 hsu Exp $ * * MAINTAINER: Matthew N. Dodd * @@ -97,7 +97,7 @@ u_char plus_ee2irqmap[] = /* Network Interface Functions */ static void ex_init (void *); static void ex_start (struct ifnet *); -static int ex_ioctl (struct ifnet *, u_long, caddr_t); +static int ex_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *); static void ex_watchdog (struct ifnet *); /* ifmedia Functions */ @@ -778,7 +778,7 @@ rx_another: ; static int -ex_ioctl(register struct ifnet *ifp, u_long cmd, caddr_t data) +ex_ioctl(register struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr) { struct ex_softc * sc = ifp->if_softc; struct ifreq * ifr = (struct ifreq *)data; diff --git a/sys/dev/netif/fe/if_fe.c b/sys/dev/netif/fe/if_fe.c index c543b2d1d5..d277aa242d 100644 --- a/sys/dev/netif/fe/if_fe.c +++ b/sys/dev/netif/fe/if_fe.c @@ -22,7 +22,7 @@ /* * $FreeBSD: src/sys/dev/fe/if_fe.c,v 1.65.2.1 2000/09/22 10:01:47 nyan Exp $ - * $DragonFly: src/sys/dev/netif/fe/if_fe.c,v 1.7 2004/03/14 15:36:50 joerg Exp $ + * $DragonFly: src/sys/dev/netif/fe/if_fe.c,v 1.8 2004/03/23 22:19:00 hsu Exp $ * * Device driver for Fujitsu MB86960A/MB86965A based Ethernet cards. * Contributed by M. Sekiguchi. @@ -147,7 +147,8 @@ static struct fe_filter const fe_filter_all = { FE_FILTER_ALL }; /* Standard driver entry points. These can be static. */ static void fe_init (void *); static inthand2_t fe_intr; -static int fe_ioctl (struct ifnet *, u_long, caddr_t); +static int fe_ioctl (struct ifnet *, u_long, caddr_t, + struct ucred *); static void fe_start (struct ifnet *); static void fe_watchdog (struct ifnet *); static int fe_medchange (struct ifnet *); @@ -1772,7 +1773,7 @@ fe_intr (void *arg) * pretty ugly. */ static int -fe_ioctl (struct ifnet * ifp, u_long command, caddr_t data) +fe_ioctl (struct ifnet * ifp, u_long command, caddr_t data, struct ucred *cr) { struct fe_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *)data; diff --git a/sys/dev/netif/fwe/if_fwe.c b/sys/dev/netif/fwe/if_fwe.c index 53c40a4fd6..e10f04a95e 100644 --- a/sys/dev/netif/fwe/if_fwe.c +++ b/sys/dev/netif/fwe/if_fwe.c @@ -32,7 +32,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/firewire/if_fwe.c,v 1.27 2004/01/08 14:58:09 simokawa Exp $ - * $DragonFly: src/sys/dev/netif/fwe/if_fwe.c,v 1.9 2004/03/14 15:36:50 joerg Exp $ + * $DragonFly: src/sys/dev/netif/fwe/if_fwe.c,v 1.10 2004/03/23 22:19:00 hsu Exp $ */ #include "opt_inet.h" @@ -72,7 +72,7 @@ /* network interface */ static void fwe_start (struct ifnet *); -static int fwe_ioctl (struct ifnet *, u_long, caddr_t); +static int fwe_ioctl (struct ifnet *, u_long, caddr_t, struct ucred *); static void fwe_init (void *); static void fwe_output_callback (struct fw_xfer *); @@ -391,7 +391,7 @@ found: static int -fwe_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) +fwe_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr) { struct fwe_softc *fwe = ((struct fwe_eth_softc *)ifp->if_softc)->fwe; struct ifstat *ifs = NULL; diff --git a/sys/dev/netif/fxp/if_fxp.c b/sys/dev/netif/fxp/if_fxp.c index d63785b023..38a4a4a5dc 100644 --- a/sys/dev/netif/fxp/if_fxp.c +++ b/sys/dev/netif/fxp/if_fxp.c @@ -26,7 +26,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.110.2.30 2003/06/12 16:47:05 mux Exp $ - * $DragonFly: src/sys/dev/netif/fxp/if_fxp.c,v 1.8 2004/03/14 15:36:50 joerg Exp $ + * $DragonFly: src/sys/dev/netif/fxp/if_fxp.c,v 1.9 2004/03/23 22:19:00 hsu Exp $ */ /* @@ -203,7 +203,7 @@ static void fxp_start(struct ifnet *ifp); static void fxp_stop(struct fxp_softc *sc); static void fxp_release(struct fxp_softc *sc); static int fxp_ioctl(struct ifnet *ifp, u_long command, - caddr_t data); + caddr_t data, struct ucred *); static void fxp_watchdog(struct ifnet *ifp); static int fxp_add_rfabuf(struct fxp_softc *sc, struct mbuf *oldm); static int fxp_mc_addrs(struct fxp_softc *sc); @@ -1984,7 +1984,7 @@ fxp_miibus_writereg(device_t dev, int phy, int reg, int value) } static int -fxp_ioctl(struct ifnet *ifp, u_long command, caddr_t data) +fxp_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr) { struct fxp_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *)data; diff --git a/sys/dev/netif/gx/if_gx.c b/sys/dev/netif/gx/if_gx.c index 7518cbc646..315a1bc037 100644 --- a/sys/dev/netif/gx/if_gx.c +++ b/sys/dev/netif/gx/if_gx.c @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/gx/if_gx.c,v 1.2.2.3 2001/12/14 19:51:39 jlemon Exp $ - * $DragonFly: src/sys/dev/netif/gx/Attic/if_gx.c,v 1.6 2004/03/14 15:36:50 joerg Exp $ + * $DragonFly: src/sys/dev/netif/gx/Attic/if_gx.c,v 1.7 2004/03/23 22:19:01 hsu Exp $ */ #include @@ -159,7 +159,8 @@ static void gx_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr); static int gx_miibus_readreg(device_t dev, int phy, int reg); static void gx_miibus_writereg(device_t dev, int phy, int reg, int value); static void gx_miibus_statchg(device_t dev); -static int gx_ioctl(struct ifnet *ifp, u_long command, caddr_t data); +static int gx_ioctl(struct ifnet *ifp, u_long command, caddr_t data, + struct ucred *); static void gx_setmulti(struct gx_softc *gx); static void gx_reset(struct gx_softc *gx); static void gx_phy_reset(struct gx_softc *gx); @@ -906,7 +907,7 @@ gx_miibus_statchg(device_t dev) } static int -gx_ioctl(struct ifnet *ifp, u_long command, caddr_t data) +gx_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr) { struct gx_softc *gx = ifp->if_softc; struct ifreq *ifr = (struct ifreq *)data; diff --git a/sys/dev/netif/ie/if_ie.c b/sys/dev/netif/ie/if_ie.c index ac7f4c5d15..4e6daf31b0 100644 --- a/sys/dev/netif/ie/if_ie.c +++ b/sys/dev/netif/ie/if_ie.c @@ -48,7 +48,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/ie/if_ie.c,v 1.72.2.4 2003/03/27 21:01:49 mdodd Exp $ - * $DragonFly: src/sys/dev/netif/ie/if_ie.c,v 1.8 2004/03/14 15:36:50 joerg Exp $ + * $DragonFly: src/sys/dev/netif/ie/if_ie.c,v 1.9 2004/03/23 22:19:01 hsu Exp $ */ /* @@ -171,7 +171,8 @@ static int ee16_probe(struct isa_device * dvp); static int check_ie_present(int unit, caddr_t where, unsigned size); static void ieinit(void *); static void ie_stop(int unit); -static int ieioctl(struct ifnet * ifp, u_long command, caddr_t data); +static int ieioctl(struct ifnet * ifp, u_long command, caddr_t data, + struct ucred *); static void iestart(struct ifnet * ifp); static void el_reset_586(int unit); @@ -1741,7 +1742,7 @@ iereset(int unit) } printf("ie%d: reset\n", unit); ie_softc[unit].arpcom.ac_if.if_flags &= ~IFF_UP; - ieioctl(&ie_softc[unit].arpcom.ac_if, SIOCSIFFLAGS, 0); + ieioctl(&ie_softc[unit].arpcom.ac_if, SIOCSIFFLAGS, 0, (struct ucred *)NULL); /* * Stop i82586 dead in its tracks. @@ -1759,7 +1760,7 @@ iereset(int unit) #endif ie_softc[unit].arpcom.ac_if.if_flags |= IFF_UP; - ieioctl(&ie_softc[unit].arpcom.ac_if, SIOCSIFFLAGS, 0); + ieioctl(&ie_softc[unit].arpcom.ac_if, SIOCSIFFLAGS, 0, (struct ucred *)NULL); splx(s); return; @@ -2123,7 +2124,7 @@ ie_stop(int unit) } static int -ieioctl(struct ifnet *ifp, u_long command, caddr_t data) +ieioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr) { int s, error = 0; @@ -2195,7 +2196,8 @@ ie_mc_reset(int unit) /* XXX - this is broken... */ if (ie->mcast_count >= MAXMCAST) { ie->arpcom.ac_if.if_flags |= IFF_ALLMULTI; - ieioctl(&ie->arpcom.ac_if, SIOCSIFFLAGS, (void *) 0); + ieioctl(&ie->arpcom.ac_if, SIOCSIFFLAGS, (void *) 0, + (struct ucred *)NULL); goto setflag; } bcopy(LLADDR((struct sockaddr_dl *) ifma->ifma_addr), diff --git a/sys/dev/netif/kue/if_kue.c b/sys/dev/netif/kue/if_kue.c index 4196c39502..80640de3de 100644 --- a/sys/dev/netif/kue/if_kue.c +++ b/sys/dev/netif/kue/if_kue.c @@ -30,7 +30,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/usb/if_kue.c,v 1.17.2.9 2003/04/13 02:39:25 murray Exp $ - * $DragonFly: src/sys/dev/netif/kue/if_kue.c,v 1.7 2004/03/14 15:36:50 joerg Exp $ + * $DragonFly: src/sys/dev/netif/kue/if_kue.c,v 1.8 2004/03/23 22:19:01 hsu Exp $ */ /* @@ -139,7 +139,7 @@ Static void kue_rxeof(usbd_xfer_handle, usbd_private_handle, usbd_status); Static void kue_txeof(usbd_xfer_handle, usbd_private_handle, usbd_status); Static void kue_start(struct ifnet *); Static void kue_rxstart(struct ifnet *); -Static int kue_ioctl(struct ifnet *, u_long, caddr_t); +Static int kue_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *); Static void kue_init(void *); Static void kue_stop(struct kue_softc *); Static void kue_watchdog(struct ifnet *); @@ -957,7 +957,7 @@ kue_init(void *xsc) } Static int -kue_ioctl(struct ifnet *ifp, u_long command, caddr_t data) +kue_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr) { struct kue_softc *sc = ifp->if_softc; int error = 0; diff --git a/sys/dev/netif/lge/if_lge.c b/sys/dev/netif/lge/if_lge.c index d7732440e6..6412e7571a 100644 --- a/sys/dev/netif/lge/if_lge.c +++ b/sys/dev/netif/lge/if_lge.c @@ -31,7 +31,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/lge/if_lge.c,v 1.5.2.2 2001/12/14 19:49:23 jlemon Exp $ - * $DragonFly: src/sys/dev/netif/lge/if_lge.c,v 1.8 2004/03/14 15:36:50 joerg Exp $ + * $DragonFly: src/sys/dev/netif/lge/if_lge.c,v 1.9 2004/03/23 22:19:01 hsu Exp $ * * $FreeBSD: src/sys/dev/lge/if_lge.c,v 1.5.2.2 2001/12/14 19:49:23 jlemon Exp $ */ @@ -144,7 +144,8 @@ static void lge_txeof (struct lge_softc *); static void lge_intr (void *); static void lge_tick (void *); static void lge_start (struct ifnet *); -static int lge_ioctl (struct ifnet *, u_long, caddr_t); +static int lge_ioctl (struct ifnet *, u_long, caddr_t, + struct ucred *); static void lge_init (void *); static void lge_stop (struct lge_softc *); static void lge_watchdog (struct ifnet *); @@ -1536,10 +1537,11 @@ static void lge_ifmedia_sts(ifp, ifmr) return; } -static int lge_ioctl(ifp, command, data) +static int lge_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { struct lge_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/dev/netif/lnc/if_lnc.c b/sys/dev/netif/lnc/if_lnc.c index 7dd39538d0..56dfa4708d 100644 --- a/sys/dev/netif/lnc/if_lnc.c +++ b/sys/dev/netif/lnc/if_lnc.c @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/lnc/if_lnc.c,v 1.89 2001/07/04 13:00:19 nyan Exp $ - * $DragonFly: src/sys/dev/netif/lnc/Attic/if_lnc.c,v 1.8 2004/03/14 15:36:50 joerg Exp $ + * $DragonFly: src/sys/dev/netif/lnc/Attic/if_lnc.c,v 1.9 2004/03/23 22:19:01 hsu Exp $ */ /* @@ -136,7 +136,8 @@ static void lnc_init(void *); static __inline int mbuf_to_buffer(struct mbuf *m, char *buffer); static __inline struct mbuf *chain_to_cluster(struct mbuf *m); static void lnc_start(struct ifnet *ifp); -static int lnc_ioctl(struct ifnet *ifp, u_long command, caddr_t data); +static int lnc_ioctl(struct ifnet *ifp, u_long command, caddr_t data, + struct ucred *); static void lnc_watchdog(struct ifnet *ifp); #ifdef DEBUG void lnc_dump_state(struct lnc_softc *sc); @@ -1398,7 +1399,7 @@ lnc_start(struct ifnet *ifp) } static int -lnc_ioctl(struct ifnet * ifp, u_long command, caddr_t data) +lnc_ioctl(struct ifnet * ifp, u_long command, caddr_t data, struct ucred *cr) { struct lnc_softc *sc = ifp->if_softc; diff --git a/sys/dev/netif/my/if_my.c b/sys/dev/netif/my/if_my.c index 0f1f99372e..ed02b74015 100644 --- a/sys/dev/netif/my/if_my.c +++ b/sys/dev/netif/my/if_my.c @@ -26,7 +26,7 @@ * Written by: yen_cw@myson.com.tw available at: http://www.myson.com.tw/ * * $FreeBSD: src/sys/dev/my/if_my.c,v 1.2.2.4 2002/04/17 02:05:27 julian Exp $ - * $DragonFly: src/sys/dev/netif/my/if_my.c,v 1.7 2004/03/14 15:36:51 joerg Exp $ + * $DragonFly: src/sys/dev/netif/my/if_my.c,v 1.8 2004/03/23 22:19:01 hsu Exp $ * * Myson fast ethernet PCI NIC driver * @@ -123,7 +123,7 @@ static void my_txeof(struct my_softc *); static void my_txeoc(struct my_softc *); static void my_intr(void *); static void my_start(struct ifnet *); -static int my_ioctl(struct ifnet *, u_long, caddr_t); +static int my_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *); static void my_init(void *); static void my_stop(struct my_softc *); static void my_watchdog(struct ifnet *); @@ -1741,7 +1741,7 @@ my_ifmedia_sts(struct ifnet * ifp, struct ifmediareq * ifmr) } static int -my_ioctl(struct ifnet * ifp, u_long command, caddr_t data) +my_ioctl(struct ifnet * ifp, u_long command, caddr_t data, struct ucred *cr) { struct my_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/dev/netif/nge/if_nge.c b/sys/dev/netif/nge/if_nge.c index 1cc3397519..6effea1c20 100644 --- a/sys/dev/netif/nge/if_nge.c +++ b/sys/dev/netif/nge/if_nge.c @@ -31,7 +31,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/nge/if_nge.c,v 1.13.2.13 2003/02/05 22:03:57 mbr Exp $ - * $DragonFly: src/sys/dev/netif/nge/if_nge.c,v 1.7 2004/03/14 15:36:51 joerg Exp $ + * $DragonFly: src/sys/dev/netif/nge/if_nge.c,v 1.8 2004/03/23 22:19:01 hsu Exp $ * * $FreeBSD: src/sys/dev/nge/if_nge.c,v 1.13.2.13 2003/02/05 22:03:57 mbr Exp $ */ @@ -162,7 +162,8 @@ static void nge_txeof (struct nge_softc *); static void nge_intr (void *); static void nge_tick (void *); static void nge_start (struct ifnet *); -static int nge_ioctl (struct ifnet *, u_long, caddr_t); +static int nge_ioctl (struct ifnet *, u_long, caddr_t, + struct ucred *); static void nge_init (void *); static void nge_stop (struct nge_softc *); static void nge_watchdog (struct ifnet *); @@ -2151,10 +2152,11 @@ static void nge_ifmedia_sts(ifp, ifmr) return; } -static int nge_ioctl(ifp, command, data) +static int nge_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { struct nge_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/dev/netif/pcn/if_pcn.c b/sys/dev/netif/pcn/if_pcn.c index d5dd10a830..72632e26b4 100644 --- a/sys/dev/netif/pcn/if_pcn.c +++ b/sys/dev/netif/pcn/if_pcn.c @@ -31,7 +31,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/pci/if_pcn.c,v 1.5.2.10 2003/03/05 18:42:33 njl Exp $ - * $DragonFly: src/sys/dev/netif/pcn/if_pcn.c,v 1.8 2004/03/14 15:36:51 joerg Exp $ + * $DragonFly: src/sys/dev/netif/pcn/if_pcn.c,v 1.9 2004/03/23 22:19:02 hsu Exp $ * * $FreeBSD: src/sys/pci/if_pcn.c,v 1.5.2.10 2003/03/05 18:42:33 njl Exp $ */ @@ -125,7 +125,8 @@ static void pcn_txeof (struct pcn_softc *); static void pcn_intr (void *); static void pcn_tick (void *); static void pcn_start (struct ifnet *); -static int pcn_ioctl (struct ifnet *, u_long, caddr_t); +static int pcn_ioctl (struct ifnet *, u_long, caddr_t, + struct ucred *); static void pcn_init (void *); static void pcn_stop (struct pcn_softc *); static void pcn_watchdog (struct ifnet *); @@ -1260,10 +1261,11 @@ static void pcn_ifmedia_sts(ifp, ifmr) return; } -static int pcn_ioctl(ifp, command, data) +static int pcn_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { struct pcn_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/dev/netif/plip/if_plip.c b/sys/dev/netif/plip/if_plip.c index 425684ea1b..33846a3d4b 100644 --- a/sys/dev/netif/plip/if_plip.c +++ b/sys/dev/netif/plip/if_plip.c @@ -25,7 +25,7 @@ * * From Id: lpt.c,v 1.55.2.1 1996/11/12 09:08:38 phk Exp * $FreeBSD: src/sys/dev/ppbus/if_plip.c,v 1.19.2.1 2000/05/24 00:20:57 n_hibma Exp $ - * $DragonFly: src/sys/dev/netif/plip/if_plip.c,v 1.6 2004/01/06 03:17:24 dillon Exp $ + * $DragonFly: src/sys/dev/netif/plip/if_plip.c,v 1.7 2004/03/23 22:19:02 hsu Exp $ */ /* @@ -168,7 +168,7 @@ static u_char *ctxmith; /* Functions for the lp# interface */ static int lpinittables(void); -static int lpioctl(struct ifnet *, u_long, caddr_t); +static int lpioctl(struct ifnet *, u_long, caddr_t, struct ucred *); static int lpoutput(struct ifnet *, struct mbuf *, struct sockaddr *, struct rtentry *); static void lp_intr(void *); @@ -295,7 +295,7 @@ lpinittables (void) */ static int -lpioctl (struct ifnet *ifp, u_long cmd, caddr_t data) +lpioctl (struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr) { device_t dev = UNITODEVICE(ifp->if_dunit); device_t ppbus = device_get_parent(dev); diff --git a/sys/dev/netif/ray/if_ray.c b/sys/dev/netif/ray/if_ray.c index 338fcce1d2..aea2fa38e2 100644 --- a/sys/dev/netif/ray/if_ray.c +++ b/sys/dev/netif/ray/if_ray.c @@ -29,7 +29,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/ray/if_ray.c,v 1.47.2.4 2001/08/14 22:54:05 dmlb Exp $ - * $DragonFly: src/sys/dev/netif/ray/Attic/if_ray.c,v 1.10 2004/03/14 15:36:51 joerg Exp $ + * $DragonFly: src/sys/dev/netif/ray/Attic/if_ray.c,v 1.11 2004/03/23 22:19:02 hsu Exp $ * */ @@ -312,7 +312,7 @@ static void ray_intr (void *xsc); static void ray_intr_ccs (struct ray_softc *sc, u_int8_t cmd, u_int8_t status, size_t ccs); static void ray_intr_rcs (struct ray_softc *sc, u_int8_t cmd, size_t ccs); static void ray_intr_updt_errcntrs (struct ray_softc *sc); -static int ray_ioctl (struct ifnet *ifp, u_long command, caddr_t data); +static int ray_ioctl (struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr); static void ray_mcast (struct ray_softc *sc, struct ray_comq_entry *com); static void ray_mcast_done (struct ray_softc *sc, u_int8_t status, size_t ccs); static int ray_mcast_user (struct ray_softc *sc); @@ -628,7 +628,8 @@ ray_detach(device_t dev) * Network ioctl request. */ static int -ray_ioctl(register struct ifnet *ifp, u_long command, caddr_t data) +ray_ioctl(register struct ifnet *ifp, u_long command, caddr_t data, + struct ucred *cr) { struct ray_softc *sc = ifp->if_softc; struct ray_param_req pr; diff --git a/sys/dev/netif/rl/if_rl.c b/sys/dev/netif/rl/if_rl.c index 8173e2e46b..10508ec13e 100644 --- a/sys/dev/netif/rl/if_rl.c +++ b/sys/dev/netif/rl/if_rl.c @@ -30,7 +30,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/pci/if_rl.c,v 1.38.2.16 2003/03/05 18:42:33 njl Exp $ - * $DragonFly: src/sys/dev/netif/rl/if_rl.c,v 1.8 2004/03/14 15:36:51 joerg Exp $ + * $DragonFly: src/sys/dev/netif/rl/if_rl.c,v 1.9 2004/03/23 22:19:02 hsu Exp $ * * $FreeBSD: src/sys/pci/if_rl.c,v 1.38.2.16 2003/03/05 18:42:33 njl Exp $ */ @@ -167,7 +167,8 @@ static void rl_txeof (struct rl_softc *); static void rl_intr (void *); static void rl_tick (void *); static void rl_start (struct ifnet *); -static int rl_ioctl (struct ifnet *, u_long, caddr_t); +static int rl_ioctl (struct ifnet *, u_long, caddr_t, + struct ucred *); static void rl_init (void *); static void rl_stop (struct rl_softc *); static void rl_watchdog (struct ifnet *); @@ -1610,10 +1611,11 @@ static void rl_ifmedia_sts(ifp, ifmr) return; } -static int rl_ioctl(ifp, command, data) +static int rl_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { struct rl_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/dev/netif/sbni/if_sbni.c b/sys/dev/netif/sbni/if_sbni.c index 10918da618..080095ab1f 100644 --- a/sys/dev/netif/sbni/if_sbni.c +++ b/sys/dev/netif/sbni/if_sbni.c @@ -25,7 +25,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/sbni/if_sbni.c,v 1.1.2.4 2002/08/11 09:32:00 fjoe Exp $ - * $DragonFly: src/sys/dev/netif/sbni/if_sbni.c,v 1.11 2004/03/14 15:36:51 joerg Exp $ + * $DragonFly: src/sys/dev/netif/sbni/if_sbni.c,v 1.12 2004/03/23 22:19:02 hsu Exp $ */ /* @@ -87,7 +87,7 @@ static void sbni_init(void *); static void sbni_start(struct ifnet *); -static int sbni_ioctl(struct ifnet *, u_long, caddr_t); +static int sbni_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *); static void sbni_watchdog(struct ifnet *); static void sbni_stop(struct sbni_softc *); static void handle_channel(struct sbni_softc *); @@ -1048,9 +1048,8 @@ timeout_change_level(struct sbni_softc *sc) */ static int -sbni_ioctl(struct ifnet *ifp, u_long command, caddr_t data) +sbni_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr) { - struct thread *td = curthread; /* XXX */ struct sbni_softc *sc; struct ifreq *ifr; struct sbni_in_stats *in_stats; @@ -1123,7 +1122,8 @@ sbni_ioctl(struct ifnet *ifp, u_long command, caddr_t data) case SIOCSHWFLAGS: /* set flags */ /* root only */ - error = suser(td); /* NOTE: returns EPERM if no proc */ + error = suser_cred(cr, NULL_CRED_OKAY); + /* NOTE: returns EPERM if no proc */ if (error) break; flags = *(struct sbni_flags*)&ifr->ifr_data; @@ -1145,7 +1145,7 @@ sbni_ioctl(struct ifnet *ifp, u_long command, caddr_t data) break; case SIOCRINSTATS: - if (!(error = suser(td))) /* root only */ + if (!(error = suser_cred(cr, NULL_CRED_OKAY))) /* root only */ bzero(&sc->in_stats, sizeof(struct sbni_in_stats)); break; diff --git a/sys/dev/netif/sbsh/if_sbsh.c b/sys/dev/netif/sbsh/if_sbsh.c index d32519983b..24d85d5d26 100644 --- a/sys/dev/netif/sbsh/if_sbsh.c +++ b/sys/dev/netif/sbsh/if_sbsh.c @@ -24,7 +24,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/sbsh/if_sbsh.c,v 1.3.2.1 2003/04/15 18:15:07 fjoe Exp $ - * $DragonFly: src/sys/dev/netif/sbsh/if_sbsh.c,v 1.9 2004/03/14 15:36:51 joerg Exp $ + * $DragonFly: src/sys/dev/netif/sbsh/if_sbsh.c,v 1.10 2004/03/23 22:19:02 hsu Exp $ */ #include @@ -153,7 +153,7 @@ enum State { NOT_LOADED, DOWN, ACTIVATION, ACTIVE }; static int sbsh_probe(device_t); static int sbsh_attach(device_t); static int sbsh_detach(device_t); -static int sbsh_ioctl(struct ifnet *, u_long, caddr_t); +static int sbsh_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *); static void sbsh_shutdown(device_t); static int sbsh_suspend(device_t); static int sbsh_resume(device_t); @@ -398,13 +398,12 @@ init_card(struct sbsh_softc *sc) static int -sbsh_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) +sbsh_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr) { struct sbsh_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; struct cx28975_cfg cfg; struct dsl_stats ds; - struct thread *td = curthread; int s, error = 0; u_int8_t t; @@ -412,7 +411,7 @@ sbsh_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) switch(cmd) { case SIOCLOADFIRMW: - if ((error = suser(td)) != 0) + if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0) break; if (ifp->if_flags & IFF_UP) error = EBUSY; @@ -432,7 +431,7 @@ sbsh_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) break; case SIOCGETSTATS : - if ((error = suser(td)) != 0) + if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0) break; t = 0; @@ -466,7 +465,7 @@ sbsh_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) break; case SIOCCLRSTATS : - if (!(error = suser(td))) { + if (!(error = suser_cred(cr, NULL_CRED_OKAY))) { bzero(&sc->in_stats, sizeof(struct sbni16_stats)); t = 2; if (issue_cx28975_cmd(sc, _DSL_CLEAR_ERROR_CTRS, &t, 1)) diff --git a/sys/dev/netif/sf/if_sf.c b/sys/dev/netif/sf/if_sf.c index a9069a99ab..9084ffe68f 100644 --- a/sys/dev/netif/sf/if_sf.c +++ b/sys/dev/netif/sf/if_sf.c @@ -30,7 +30,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/pci/if_sf.c,v 1.18.2.8 2001/12/16 15:46:07 luigi Exp $ - * $DragonFly: src/sys/dev/netif/sf/if_sf.c,v 1.7 2004/03/14 15:36:52 joerg Exp $ + * $DragonFly: src/sys/dev/netif/sf/if_sf.c,v 1.8 2004/03/23 22:19:03 hsu Exp $ * * $FreeBSD: src/sys/pci/if_sf.c,v 1.18.2.8 2001/12/16 15:46:07 luigi Exp $ */ @@ -138,7 +138,8 @@ static int sf_encap (struct sf_softc *, struct sf_tx_bufdesc_type0 *, struct mbuf *); static void sf_start (struct ifnet *); -static int sf_ioctl (struct ifnet *, u_long, caddr_t); +static int sf_ioctl (struct ifnet *, u_long, caddr_t, + struct ucred *); static void sf_init (void *); static void sf_stop (struct sf_softc *); static void sf_watchdog (struct ifnet *); @@ -521,10 +522,11 @@ static void sf_ifmedia_sts(ifp, ifmr) return; } -static int sf_ioctl(ifp, command, data) +static int sf_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { struct sf_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/dev/netif/sis/if_sis.c b/sys/dev/netif/sis/if_sis.c index f057cad019..192112fc6d 100644 --- a/sys/dev/netif/sis/if_sis.c +++ b/sys/dev/netif/sis/if_sis.c @@ -30,7 +30,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/pci/if_sis.c,v 1.13.4.24 2003/03/05 18:42:33 njl Exp $ - * $DragonFly: src/sys/dev/netif/sis/if_sis.c,v 1.9 2004/03/16 22:48:00 joerg Exp $ + * $DragonFly: src/sys/dev/netif/sis/if_sis.c,v 1.10 2004/03/23 22:19:03 hsu Exp $ * * $FreeBSD: src/sys/pci/if_sis.c,v 1.13.4.24 2003/03/05 18:42:33 njl Exp $ */ @@ -125,7 +125,7 @@ static void sis_txeof(struct sis_softc *); static void sis_intr(void *); static void sis_tick(void *); static void sis_start(struct ifnet *); -static int sis_ioctl(struct ifnet *, u_long, caddr_t); +static int sis_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *); static void sis_init(void *); static void sis_stop(struct sis_softc *); static void sis_watchdog(struct ifnet *); @@ -1920,7 +1920,7 @@ sis_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr) } static int -sis_ioctl(struct ifnet *ifp, u_long command, caddr_t data) +sis_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr) { struct sis_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/dev/netif/sk/if_sk.c b/sys/dev/netif/sk/if_sk.c index a27d759ff5..8fff3c0ad3 100644 --- a/sys/dev/netif/sk/if_sk.c +++ b/sys/dev/netif/sk/if_sk.c @@ -32,7 +32,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/pci/if_sk.c,v 1.19.2.9 2003/03/05 18:42:34 njl Exp $ - * $DragonFly: src/sys/dev/netif/sk/if_sk.c,v 1.12 2004/03/14 15:36:52 joerg Exp $ + * $DragonFly: src/sys/dev/netif/sk/if_sk.c,v 1.13 2004/03/23 22:19:03 hsu Exp $ * * $FreeBSD: src/sys/pci/if_sk.c,v 1.19.2.9 2003/03/05 18:42:34 njl Exp $ */ @@ -175,7 +175,8 @@ static void sk_txeof (struct sk_if_softc *); static int sk_encap (struct sk_if_softc *, struct mbuf *, u_int32_t *); static void sk_start (struct ifnet *); -static int sk_ioctl (struct ifnet *, u_long, caddr_t); +static int sk_ioctl (struct ifnet *, u_long, caddr_t, + struct ucred *); static void sk_init (void *); static void sk_init_xmac (struct sk_if_softc *); static void sk_init_yukon (struct sk_if_softc *); @@ -1202,10 +1203,11 @@ static void sk_ifmedia_sts(ifp, ifmr) return; } -static int sk_ioctl(ifp, command, data) +static int sk_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { struct sk_if_softc *sc_if = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/dev/netif/sn/if_sn.c b/sys/dev/netif/sn/if_sn.c index 16b39b008d..77fc5d2224 100644 --- a/sys/dev/netif/sn/if_sn.c +++ b/sys/dev/netif/sn/if_sn.c @@ -29,7 +29,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/sn/if_sn.c,v 1.7.2.3 2001/02/04 04:38:38 toshi Exp $ - * $DragonFly: src/sys/dev/netif/sn/if_sn.c,v 1.7 2004/03/14 15:36:52 joerg Exp $ + * $DragonFly: src/sys/dev/netif/sn/if_sn.c,v 1.8 2004/03/23 22:19:03 hsu Exp $ */ /* @@ -129,7 +129,7 @@ /* Exported variables */ devclass_t sn_devclass; -static int snioctl(struct ifnet * ifp, u_long, caddr_t); +static int snioctl(struct ifnet * ifp, u_long, caddr_t, struct ucred *); static void snresume(struct ifnet *); @@ -1134,7 +1134,7 @@ out: * changes. */ static int -snioctl(struct ifnet *ifp, u_long cmd, caddr_t data) +snioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr) { struct sn_softc *sc = ifp->if_softc; int s, error = 0; diff --git a/sys/dev/netif/snc/dp83932.c b/sys/dev/netif/snc/dp83932.c index c7435b5de0..0cc0331305 100644 --- a/sys/dev/netif/snc/dp83932.c +++ b/sys/dev/netif/snc/dp83932.c @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/dev/snc/dp83932.c,v 1.1.2.2 2003/02/11 08:52:00 nyan Exp $ */ -/* $DragonFly: src/sys/dev/netif/snc/Attic/dp83932.c,v 1.7 2004/03/14 15:36:52 joerg Exp $ */ +/* $DragonFly: src/sys/dev/netif/snc/Attic/dp83932.c,v 1.8 2004/03/23 22:19:03 hsu Exp $ */ /* $NecBSD: dp83932.c,v 1.5 1999/07/29 05:08:44 kmatsuda Exp $ */ /* $NetBSD: if_snc.c,v 1.18 1998/04/25 21:27:40 scottr Exp $ */ @@ -100,7 +100,8 @@ hide void sncwatchdog (struct ifnet *); hide void sncinit (void *); hide int sncstop (struct snc_softc *sc); -hide int sncioctl (struct ifnet *ifp, u_long cmd, caddr_t data); +hide int sncioctl (struct ifnet *ifp, u_long cmd, caddr_t data, + struct ucred *); hide void sncstart (struct ifnet *ifp); hide void sncreset (struct snc_softc *sc); @@ -259,10 +260,11 @@ snc_mediastatus(ifp, ifmr) hide int -sncioctl(ifp, cmd, data) +sncioctl(ifp, cmd, data, cr) struct ifnet *ifp; u_long cmd; caddr_t data; + struct ucred *cr; { struct ifreq *ifr; struct snc_softc *sc = ifp->if_softc; diff --git a/sys/dev/netif/sr/if_sr.c b/sys/dev/netif/sr/if_sr.c index cde41a8905..b3cfbef877 100644 --- a/sys/dev/netif/sr/if_sr.c +++ b/sys/dev/netif/sr/if_sr.c @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/sr/if_sr.c,v 1.48.2.1 2002/06/17 15:10:58 jhay Exp $ - * $DragonFly: src/sys/dev/netif/sr/if_sr.c,v 1.7 2004/02/13 02:44:48 joerg Exp $ + * $DragonFly: src/sys/dev/netif/sr/if_sr.c,v 1.8 2004/03/23 22:19:03 hsu Exp $ */ /* @@ -232,7 +232,8 @@ static void srintr(void *arg); static void sr_xmit(struct sr_softc *sc); #ifndef NETGRAPH static void srstart(struct ifnet *ifp); -static int srioctl(struct ifnet *ifp, u_long cmd, caddr_t data); +static int srioctl(struct ifnet *ifp, u_long cmd, caddr_t data, + struct ucred *); static void srwatchdog(struct ifnet *ifp); #else static void srstart(struct sr_softc *sc); @@ -1001,7 +1002,7 @@ static int bug_splats[] = {0, 0, 0, 0, 0, 0, 0, 0}; #endif static int -srioctl(struct ifnet *ifp, u_long cmd, caddr_t data) +srioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr) { int s, error, was_up, should_be_up; struct sr_softc *sc = ifp->if_softc; diff --git a/sys/dev/netif/ste/if_ste.c b/sys/dev/netif/ste/if_ste.c index 6604175313..cced1caf4d 100644 --- a/sys/dev/netif/ste/if_ste.c +++ b/sys/dev/netif/ste/if_ste.c @@ -30,7 +30,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/pci/if_ste.c,v 1.14.2.9 2003/02/05 22:03:57 mbr Exp $ - * $DragonFly: src/sys/dev/netif/ste/if_ste.c,v 1.8 2004/03/14 15:36:52 joerg Exp $ + * $DragonFly: src/sys/dev/netif/ste/if_ste.c,v 1.9 2004/03/23 22:19:04 hsu Exp $ * * $FreeBSD: src/sys/pci/if_ste.c,v 1.14.2.9 2003/02/05 22:03:57 mbr Exp $ */ @@ -95,7 +95,8 @@ static void ste_txeof (struct ste_softc *); static void ste_stats_update (void *); static void ste_stop (struct ste_softc *); static void ste_reset (struct ste_softc *); -static int ste_ioctl (struct ifnet *, u_long, caddr_t); +static int ste_ioctl (struct ifnet *, u_long, caddr_t, + struct ucred *); static int ste_encap (struct ste_softc *, struct ste_chain *, struct mbuf *); static void ste_start (struct ifnet *); @@ -1405,10 +1406,11 @@ static void ste_reset(sc) return; } -static int ste_ioctl(ifp, command, data) +static int ste_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { struct ste_softc *sc; struct ifreq *ifr; diff --git a/sys/dev/netif/ti/if_ti.c b/sys/dev/netif/ti/if_ti.c index 4621b91562..1088caaea0 100644 --- a/sys/dev/netif/ti/if_ti.c +++ b/sys/dev/netif/ti/if_ti.c @@ -30,7 +30,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/pci/if_ti.c,v 1.25.2.14 2002/02/15 04:20:20 silby Exp $ - * $DragonFly: src/sys/dev/netif/ti/if_ti.c,v 1.8 2004/03/14 15:36:52 joerg Exp $ + * $DragonFly: src/sys/dev/netif/ti/if_ti.c,v 1.9 2004/03/23 22:19:04 hsu Exp $ * * $FreeBSD: src/sys/pci/if_ti.c,v 1.25.2.14 2002/02/15 04:20:20 silby Exp $ */ @@ -168,7 +168,8 @@ static int ti_encap (struct ti_softc *, struct mbuf *, static void ti_intr (void *); static void ti_start (struct ifnet *); -static int ti_ioctl (struct ifnet *, u_long, caddr_t); +static int ti_ioctl (struct ifnet *, u_long, caddr_t, + struct ucred *); static void ti_init (void *); static void ti_init2 (struct ti_softc *); static void ti_stop (struct ti_softc *); @@ -2406,10 +2407,11 @@ static void ti_ifmedia_sts(ifp, ifmr) return; } -static int ti_ioctl(ifp, command, data) +static int ti_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { struct ti_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/dev/netif/tl/if_tl.c b/sys/dev/netif/tl/if_tl.c index a4df5351ef..305125767d 100644 --- a/sys/dev/netif/tl/if_tl.c +++ b/sys/dev/netif/tl/if_tl.c @@ -30,7 +30,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/pci/if_tl.c,v 1.51.2.5 2001/12/16 15:46:08 luigi Exp $ - * $DragonFly: src/sys/dev/netif/tl/if_tl.c,v 1.8 2004/03/14 15:36:52 joerg Exp $ + * $DragonFly: src/sys/dev/netif/tl/if_tl.c,v 1.9 2004/03/23 22:19:04 hsu Exp $ * * $FreeBSD: src/sys/pci/if_tl.c,v 1.51.2.5 2001/12/16 15:46:08 luigi Exp $ */ @@ -279,7 +279,8 @@ static int tl_encap (struct tl_softc *, struct tl_chain *, static void tl_intr (void *); static void tl_start (struct ifnet *); -static int tl_ioctl (struct ifnet *, u_long, caddr_t); +static int tl_ioctl (struct ifnet *, u_long, caddr_t, + struct ucred *); static void tl_init (void *); static void tl_stop (struct tl_softc *); static void tl_watchdog (struct ifnet *); @@ -2165,10 +2166,11 @@ static void tl_ifmedia_sts(ifp, ifmr) return; } -static int tl_ioctl(ifp, command, data) +static int tl_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { struct tl_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/dev/netif/tx/if_tx.c b/sys/dev/netif/tx/if_tx.c index 71382ab843..9e875d48d8 100644 --- a/sys/dev/netif/tx/if_tx.c +++ b/sys/dev/netif/tx/if_tx.c @@ -24,7 +24,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/tx/if_tx.c,v 1.61.2.1 2002/10/29 01:43:49 semenu Exp $ - * $DragonFly: src/sys/dev/netif/tx/if_tx.c,v 1.8 2004/03/14 15:36:52 joerg Exp $ + * $DragonFly: src/sys/dev/netif/tx/if_tx.c,v 1.9 2004/03/23 22:19:04 hsu Exp $ */ /* @@ -81,7 +81,7 @@ #include "if_txreg.h" #include "if_txvar.h" -static int epic_ifioctl(struct ifnet *, u_long, caddr_t); +static int epic_ifioctl(struct ifnet *, u_long, caddr_t, struct ucred *); static void epic_intr(void *); static void epic_tx_underrun(epic_softc_t *); static int epic_common_attach(epic_softc_t *); @@ -402,10 +402,11 @@ epic_shutdown(dev) * This is if_ioctl handler. */ static int -epic_ifioctl(ifp, command, data) +epic_ifioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { epic_softc_t *sc = ifp->if_softc; struct mii_data *mii; diff --git a/sys/dev/netif/txp/if_txp.c b/sys/dev/netif/txp/if_txp.c index 089ff3b60c..f30ce6fc06 100644 --- a/sys/dev/netif/txp/if_txp.c +++ b/sys/dev/netif/txp/if_txp.c @@ -1,6 +1,6 @@ /* $OpenBSD: if_txp.c,v 1.48 2001/06/27 06:34:50 kjc Exp $ */ /* $FreeBSD: src/sys/dev/txp/if_txp.c,v 1.4.2.4 2001/12/14 19:50:43 jlemon Exp $ */ -/* $DragonFly: src/sys/dev/netif/txp/if_txp.c,v 1.8 2004/03/14 15:36:53 joerg Exp $ */ +/* $DragonFly: src/sys/dev/netif/txp/if_txp.c,v 1.9 2004/03/23 22:19:04 hsu Exp $ */ /* * Copyright (c) 2001 @@ -114,7 +114,7 @@ static int txp_detach (device_t); static void txp_intr (void *); static void txp_tick (void *); static int txp_shutdown (device_t); -static int txp_ioctl (struct ifnet *, u_long, caddr_t); +static int txp_ioctl (struct ifnet *, u_long, caddr_t, struct ucred *); static void txp_start (struct ifnet *); static void txp_stop (struct txp_softc *); static void txp_init (void *); @@ -1059,10 +1059,11 @@ txp_alloc_rings(sc) } static int -txp_ioctl(ifp, command, data) +txp_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { struct txp_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *)data; diff --git a/sys/dev/netif/vr/if_vr.c b/sys/dev/netif/vr/if_vr.c index 625e64af74..43b241267a 100644 --- a/sys/dev/netif/vr/if_vr.c +++ b/sys/dev/netif/vr/if_vr.c @@ -30,7 +30,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/pci/if_vr.c,v 1.26.2.13 2003/02/06 04:46:20 silby Exp $ - * $DragonFly: src/sys/dev/netif/vr/if_vr.c,v 1.8 2004/03/14 15:36:53 joerg Exp $ + * $DragonFly: src/sys/dev/netif/vr/if_vr.c,v 1.9 2004/03/23 22:19:04 hsu Exp $ * * $FreeBSD: src/sys/pci/if_vr.c,v 1.26.2.13 2003/02/06 04:46:20 silby Exp $ */ @@ -141,7 +141,8 @@ static void vr_txeoc (struct vr_softc *); static void vr_tick (void *); static void vr_intr (void *); static void vr_start (struct ifnet *); -static int vr_ioctl (struct ifnet *, u_long, caddr_t); +static int vr_ioctl (struct ifnet *, u_long, caddr_t, + struct ucred *); static void vr_init (void *); static void vr_stop (struct vr_softc *); static void vr_watchdog (struct ifnet *); @@ -1665,10 +1666,11 @@ static void vr_ifmedia_sts(ifp, ifmr) return; } -static int vr_ioctl(ifp, command, data) +static int vr_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { struct vr_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/dev/netif/vx/if_vx.c b/sys/dev/netif/vx/if_vx.c index 2c7af84778..fa2e59a9d9 100644 --- a/sys/dev/netif/vx/if_vx.c +++ b/sys/dev/netif/vx/if_vx.c @@ -28,7 +28,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/vx/if_vx.c,v 1.25.2.6 2002/02/13 00:43:10 dillon Exp $ - * $DragonFly: src/sys/dev/netif/vx/if_vx.c,v 1.9 2004/03/14 15:36:53 joerg Exp $ + * $DragonFly: src/sys/dev/netif/vx/if_vx.c,v 1.10 2004/03/23 22:19:05 hsu Exp $ * */ @@ -108,7 +108,7 @@ static struct connector_entry { static void vxtxstat (struct vx_softc *); static int vxstatus (struct vx_softc *); static void vxinit (void *); -static int vxioctl (struct ifnet *, u_long, caddr_t); +static int vxioctl (struct ifnet *, u_long, caddr_t, struct ucred *); static void vxstart (struct ifnet *ifp); static void vxwatchdog (struct ifnet *); static void vxreset (struct vx_softc *); @@ -834,10 +834,11 @@ vxget(sc, totlen) static int -vxioctl(ifp, cmd, data) +vxioctl(ifp, cmd, data, cr) struct ifnet *ifp; u_long cmd; caddr_t data; + struct ucred *cr; { struct vx_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/dev/netif/wb/if_wb.c b/sys/dev/netif/wb/if_wb.c index 55d25681ac..c3a978c200 100644 --- a/sys/dev/netif/wb/if_wb.c +++ b/sys/dev/netif/wb/if_wb.c @@ -30,7 +30,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/pci/if_wb.c,v 1.26.2.6 2003/03/05 18:42:34 njl Exp $ - * $DragonFly: src/sys/dev/netif/wb/if_wb.c,v 1.8 2004/03/14 15:36:53 joerg Exp $ + * $DragonFly: src/sys/dev/netif/wb/if_wb.c,v 1.9 2004/03/23 22:19:05 hsu Exp $ * * $FreeBSD: src/sys/pci/if_wb.c,v 1.26.2.6 2003/03/05 18:42:34 njl Exp $ */ @@ -157,7 +157,8 @@ static void wb_txeoc (struct wb_softc *); static void wb_intr (void *); static void wb_tick (void *); static void wb_start (struct ifnet *); -static int wb_ioctl (struct ifnet *, u_long, caddr_t); +static int wb_ioctl (struct ifnet *, u_long, caddr_t, + struct ucred *); static void wb_init (void *); static void wb_stop (struct wb_softc *); static void wb_watchdog (struct ifnet *); @@ -1739,10 +1740,11 @@ static void wb_ifmedia_sts(ifp, ifmr) return; } -static int wb_ioctl(ifp, command, data) +static int wb_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { struct wb_softc *sc = ifp->if_softc; struct mii_data *mii; diff --git a/sys/dev/netif/wi/if_wi.c b/sys/dev/netif/wi/if_wi.c index 847ba284ec..804c5cb47a 100644 --- a/sys/dev/netif/wi/if_wi.c +++ b/sys/dev/netif/wi/if_wi.c @@ -30,7 +30,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/wi/if_wi.c,v 1.103.2.2 2002/08/02 07:11:34 imp Exp $ - * $DragonFly: src/sys/dev/netif/wi/if_wi.c,v 1.9 2004/03/14 15:36:53 joerg Exp $ + * $DragonFly: src/sys/dev/netif/wi/if_wi.c,v 1.10 2004/03/23 22:19:05 hsu Exp $ */ /* @@ -106,7 +106,7 @@ static void wi_intr(void *); static void wi_reset(struct wi_softc *); -static int wi_ioctl(struct ifnet *, u_long, caddr_t); +static int wi_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *); static void wi_init(void *); static void wi_start(struct ifnet *); static void wi_stop(struct wi_softc *); @@ -1616,10 +1616,11 @@ wi_setdef(sc, wreq) } static int -wi_ioctl(ifp, command, data) +wi_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { int error = 0; int len; @@ -1629,7 +1630,6 @@ wi_ioctl(ifp, command, data) struct wi_req wreq; struct ifreq *ifr; struct ieee80211req *ireq; - struct thread *td = curthread; int s; sc = ifp->if_softc; @@ -1695,7 +1695,8 @@ wi_ioctl(ifp, command, data) break; } /* Don't show WEP keys to non-root users. */ - if (wreq.wi_type == WI_RID_DEFLT_CRYPT_KEYS && suser(td)) + if (wreq.wi_type == WI_RID_DEFLT_CRYPT_KEYS && + suser_cred(cr, NULL_CRED_OKAY)) break; if (wreq.wi_type == WI_RID_IFACE_STATS) { bcopy((char *)&sc->wi_stats, (char *)&wreq.wi_val, @@ -1740,7 +1741,7 @@ wi_ioctl(ifp, command, data) error = copyout(&wreq, ifr->ifr_data, sizeof(wreq)); break; case SIOCSWAVELAN: - if ((error = suser(td))) + if ((error = suser_cred(cr, NULL_CRED_OKAY))) goto out; error = copyin(ifr->ifr_data, &wreq, sizeof(wreq)); if (error) @@ -1787,7 +1788,7 @@ wi_ioctl(ifp, command, data) error = copyout(&wreq, ifr->ifr_data, sizeof(wreq)); break; case SIOCSPRISM2DEBUG: - if ((error = suser(td))) + if ((error = suser_cred(cr, NULL_CRED_OKAY))) goto out; error = copyin(ifr->ifr_data, &wreq, sizeof(wreq)); if (error) @@ -1836,7 +1837,7 @@ wi_ioctl(ifp, command, data) break; } len = sc->wi_keys.wi_keys[ireq->i_val].wi_keylen; - if (suser(td)) + if (suser_cred(cr, NULL_CRED_OKAY)) bcopy(sc->wi_keys.wi_keys[ireq->i_val].wi_keydat, tmpkey, len); else @@ -1889,7 +1890,7 @@ wi_ioctl(ifp, command, data) } break; case SIOCS80211: - if ((error = suser(td))) + if ((error = suser_cred(cr, NULL_CRED_OKAY))) goto out; switch(ireq->i_type) { case IEEE80211_IOC_SSID: diff --git a/sys/dev/netif/wx/if_wx.c b/sys/dev/netif/wx/if_wx.c index 00ab1cf5e0..a3acbe7cf3 100644 --- a/sys/dev/netif/wx/if_wx.c +++ b/sys/dev/netif/wx/if_wx.c @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/pci/if_wx.c,v 1.5.2.12 2003/03/05 18:42:34 njl Exp $ */ -/* $DragonFly: src/sys/dev/netif/wx/Attic/if_wx.c,v 1.7 2004/03/14 15:36:53 joerg Exp $ */ +/* $DragonFly: src/sys/dev/netif/wx/Attic/if_wx.c,v 1.8 2004/03/23 22:19:05 hsu Exp $ */ /* * Principal Author: Matthew Jacob * Copyright (c) 1999, 2001 by Traakan Software @@ -79,7 +79,7 @@ static void wx_check_link(wx_softc_t *); static void wx_handle_rxint(wx_softc_t *); static void wx_gc(wx_softc_t *); static void wx_start(struct ifnet *); -static int wx_ioctl(struct ifnet *, IOCTL_CMD_TYPE, caddr_t); +static int wx_ioctl(struct ifnet *, IOCTL_CMD_TYPE, caddr_t, struct ucred *); static int wx_ifmedia_upd(struct ifnet *); static void wx_ifmedia_sts(struct ifnet *, struct ifmediareq *); static int wx_init(void *); @@ -1910,7 +1910,8 @@ wx_get_rbuf(wx_softc_t *sc, rxpkt_t *rxpkt) } static int -wx_ioctl(struct ifnet *ifp, IOCTL_CMD_TYPE command, caddr_t data) +wx_ioctl(struct ifnet *ifp, IOCTL_CMD_TYPE command, caddr_t data, + struct ucred *cr) { wx_softc_t *sc = SOFTC_IFP(ifp); struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/dev/netif/xe/if_xe.c b/sys/dev/netif/xe/if_xe.c index ae5394092a..ed6720bb03 100644 --- a/sys/dev/netif/xe/if_xe.c +++ b/sys/dev/netif/xe/if_xe.c @@ -25,7 +25,7 @@ * * $Id: if_xe.c,v 1.20 1999/06/13 19:17:40 scott Exp $ * $FreeBSD: src/sys/dev/xe/if_xe.c,v 1.13.2.6 2003/02/05 22:03:57 mbr Exp $ - * $DragonFly: src/sys/dev/netif/xe/if_xe.c,v 1.8 2004/03/14 15:36:53 joerg Exp $ + * $DragonFly: src/sys/dev/netif/xe/if_xe.c,v 1.9 2004/03/23 22:19:05 hsu Exp $ */ /* @@ -175,7 +175,7 @@ static int xe_activate (device_t dev); static void xe_deactivate (device_t dev); static void xe_init (void *xscp); static void xe_start (struct ifnet *ifp); -static int xe_ioctl (struct ifnet *ifp, u_long command, caddr_t data); +static int xe_ioctl (struct ifnet *ifp, u_long command, caddr_t data, struct ucred *); static void xe_watchdog (struct ifnet *ifp); static int xe_media_change (struct ifnet *ifp); static void xe_media_status (struct ifnet *ifp, struct ifmediareq *mrp); @@ -724,7 +724,7 @@ xe_start(struct ifnet *ifp) { * Process an ioctl request. Adapted from the ed driver. */ static int -xe_ioctl (struct ifnet *ifp, u_long command, caddr_t data) { +xe_ioctl (struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr) { struct xe_softc *scp; int s, error; diff --git a/sys/dev/netif/xl/if_xl.c b/sys/dev/netif/xl/if_xl.c index eac098fa6f..ffea59f205 100644 --- a/sys/dev/netif/xl/if_xl.c +++ b/sys/dev/netif/xl/if_xl.c @@ -30,7 +30,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/pci/if_xl.c,v 1.72.2.28 2003/10/08 06:01:57 murray Exp $ - * $DragonFly: src/sys/dev/netif/xl/if_xl.c,v 1.10 2004/03/19 06:30:08 dillon Exp $ + * $DragonFly: src/sys/dev/netif/xl/if_xl.c,v 1.11 2004/03/23 22:19:05 hsu Exp $ */ /* @@ -217,7 +217,8 @@ static void xl_txeoc (struct xl_softc *); static void xl_intr (void *); static void xl_start (struct ifnet *); static void xl_start_90xB (struct ifnet *); -static int xl_ioctl (struct ifnet *, u_long, caddr_t); +static int xl_ioctl (struct ifnet *, u_long, caddr_t, + struct ucred *); static void xl_init (void *); static void xl_stop (struct xl_softc *); static void xl_watchdog (struct ifnet *); @@ -3107,10 +3108,11 @@ xl_ifmedia_sts(ifp, ifmr) } static int -xl_ioctl(ifp, command, data) +xl_ioctl(ifp, command, data, cr) struct ifnet *ifp; u_long command; caddr_t data; + struct ucred *cr; { struct xl_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *) data; diff --git a/sys/net/bpf.c b/sys/net/bpf.c index 1252671888..4426e1afe9 100644 --- a/sys/net/bpf.c +++ b/sys/net/bpf.c @@ -38,7 +38,7 @@ * @(#)bpf.c 8.2 (Berkeley) 3/28/94 * * $FreeBSD: src/sys/net/bpf.c,v 1.59.2.12 2002/04/14 21:41:48 luigi Exp $ - * $DragonFly: src/sys/net/bpf.c,v 1.13 2004/03/09 14:57:18 hmp Exp $ + * $DragonFly: src/sys/net/bpf.c,v 1.14 2004/03/23 22:19:05 hsu Exp $ */ #include "use_bpf.h" @@ -727,7 +727,8 @@ bpfioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct thread *td) error = EINVAL; else { ifp = d->bd_bif->bif_ifp; - error = (*ifp->if_ioctl)(ifp, cmd, addr); + error = (*ifp->if_ioctl)(ifp, cmd, addr, + td->td_proc->p_ucred); } break; } diff --git a/sys/net/disc/if_disc.c b/sys/net/disc/if_disc.c index 66e9199acc..6c4c476bf3 100644 --- a/sys/net/disc/if_disc.c +++ b/sys/net/disc/if_disc.c @@ -32,7 +32,7 @@ * * From: @(#)if_loop.c 8.1 (Berkeley) 6/10/93 * $FreeBSD: src/sys/net/if_disc.c,v 1.26.2.2 2001/12/20 10:30:16 ru Exp $ - * $DragonFly: src/sys/net/disc/if_disc.c,v 1.5 2004/01/06 03:17:25 dillon Exp $ + * $DragonFly: src/sys/net/disc/if_disc.c,v 1.6 2004/03/23 22:19:06 hsu Exp $ */ /* @@ -68,7 +68,7 @@ static struct ifnet discif; static int discoutput(struct ifnet *, struct mbuf *, struct sockaddr *, struct rtentry *); static void discrtrequest(int cmd, struct rtentry *rt, struct rt_addrinfo *info); -static int discioctl(struct ifnet *, u_long, caddr_t); +static int discioctl(struct ifnet *, u_long, caddr_t, struct ucred *); /* ARGSUSED */ static void @@ -170,10 +170,11 @@ discrtrequest(cmd, rt, info) */ /* ARGSUSED */ static int -discioctl(ifp, cmd, data) +discioctl(ifp, cmd, data, cr) struct ifnet *ifp; u_long cmd; caddr_t data; + struct ucred *cr; { struct ifaddr *ifa; struct ifreq *ifr = (struct ifreq *)data; diff --git a/sys/net/ef/if_ef.c b/sys/net/ef/if_ef.c index d8705ead15..dbc49ddbe1 100644 --- a/sys/net/ef/if_ef.c +++ b/sys/net/ef/if_ef.c @@ -24,7 +24,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/net/if_ef.c,v 1.2.2.4 2001/02/22 09:27:04 bp Exp $ - * $DragonFly: src/sys/net/ef/if_ef.c,v 1.8 2004/03/14 15:36:54 joerg Exp $ + * $DragonFly: src/sys/net/ef/if_ef.c,v 1.9 2004/03/23 22:19:06 hsu Exp $ */ #include "opt_inet.h" @@ -102,7 +102,7 @@ static void ef_reset (struct ifnet *); static int ef_attach(struct efnet *sc); static int ef_detach(struct efnet *sc); static void ef_init(void *); -static int ef_ioctl(struct ifnet *, u_long, caddr_t); +static int ef_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *); static void ef_start(struct ifnet *); static int ef_input(struct ifnet*, struct ether_header *, struct mbuf *); static int ef_output(struct ifnet *ifp, struct mbuf **mp, @@ -175,7 +175,7 @@ ef_init(void *foo) { } static int -ef_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) +ef_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr) { struct efnet *sc = ifp->if_softc; struct ifaddr *ifa = (struct ifaddr*)data; diff --git a/sys/net/faith/if_faith.c b/sys/net/faith/if_faith.c index cd41304aad..918f28911a 100644 --- a/sys/net/faith/if_faith.c +++ b/sys/net/faith/if_faith.c @@ -33,7 +33,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/net/if_faith.c,v 1.3.2.6 2002/04/28 05:40:25 suz Exp $ - * $DragonFly: src/sys/net/faith/if_faith.c,v 1.7 2004/01/06 01:40:50 dillon Exp $ + * $DragonFly: src/sys/net/faith/if_faith.c,v 1.8 2004/03/23 22:19:06 hsu Exp $ */ /* * derived from @@ -94,7 +94,7 @@ struct faith_softc { LIST_ENTRY(faith_softc) sc_list; }; -static int faithioctl (struct ifnet *, u_long, caddr_t); +static int faithioctl (struct ifnet *, u_long, caddr_t, struct ucred *); int faithoutput (struct ifnet *, struct mbuf *, struct sockaddr *, struct rtentry *); static void faithrtrequest (int, struct rtentry *, struct rt_addrinfo *); @@ -290,10 +290,11 @@ faithrtrequest(cmd, rt, info) */ /* ARGSUSED */ static int -faithioctl(ifp, cmd, data) +faithioctl(ifp, cmd, data, cr) struct ifnet *ifp; u_long cmd; caddr_t data; + struct ucred *cr; { struct ifaddr *ifa; struct ifreq *ifr = (struct ifreq *)data; diff --git a/sys/net/gif/if_gif.c b/sys/net/gif/if_gif.c index 9a05e1c4da..8413800f0c 100644 --- a/sys/net/gif/if_gif.c +++ b/sys/net/gif/if_gif.c @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/net/if_gif.c,v 1.4.2.15 2002/11/08 16:57:13 ume Exp $ */ -/* $DragonFly: src/sys/net/gif/if_gif.c,v 1.8 2004/01/06 01:40:50 dillon Exp $ */ +/* $DragonFly: src/sys/net/gif/if_gif.c,v 1.9 2004/03/23 22:19:06 hsu Exp $ */ /* $KAME: if_gif.c,v 1.87 2001/10/19 08:50:27 itojun Exp $ */ /* @@ -450,10 +450,11 @@ gif_input(m, af, ifp) /* XXX how should we handle IPv6 scope on SIOC[GS]IFPHYADDR? */ int -gif_ioctl(ifp, cmd, data) +gif_ioctl(ifp, cmd, data, cr) struct ifnet *ifp; u_long cmd; caddr_t data; + struct ucred *cr; { struct gif_softc *sc = (struct gif_softc*)ifp; struct ifreq *ifr = (struct ifreq*)data; diff --git a/sys/net/gif/if_gif.h b/sys/net/gif/if_gif.h index cd9904c9ff..5b7b38f53d 100644 --- a/sys/net/gif/if_gif.h +++ b/sys/net/gif/if_gif.h @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/net/if_gif.h,v 1.2.2.5 2002/11/08 16:23:08 ume Exp $ */ -/* $DragonFly: src/sys/net/gif/if_gif.h,v 1.3 2003/08/26 20:49:48 rob Exp $ */ +/* $DragonFly: src/sys/net/gif/if_gif.h,v 1.4 2004/03/23 22:19:06 hsu Exp $ */ /* $KAME: if_gif.h,v 1.17 2000/09/11 11:36:41 sumikawa Exp $ */ /* @@ -79,7 +79,7 @@ void gifattach0 (struct gif_softc *); void gif_input (struct mbuf *, int, struct ifnet *); int gif_output (struct ifnet *, struct mbuf *, struct sockaddr *, struct rtentry *); -int gif_ioctl (struct ifnet *, u_long, caddr_t); +int gif_ioctl (struct ifnet *, u_long, caddr_t, struct ucred *); int gif_set_tunnel (struct ifnet *, struct sockaddr *, struct sockaddr *); void gif_delete_tunnel (struct ifnet *); int gif_encapcheck (const struct mbuf *, int, int, void *); diff --git a/sys/net/gre/if_gre.c b/sys/net/gre/if_gre.c index 3fd937bcca..7ef3cbcfb2 100644 --- a/sys/net/gre/if_gre.c +++ b/sys/net/gre/if_gre.c @@ -1,6 +1,6 @@ /* $NetBSD: if_gre.c,v 1.42 2002/08/14 00:23:27 itojun Exp $ */ /* $FreeBSD: src/sys/net/if_gre.c,v 1.9.2.3 2003/01/23 21:06:44 sam Exp $ */ -/* $DragonFly: src/sys/net/gre/if_gre.c,v 1.8 2004/03/06 01:58:55 hsu Exp $ */ +/* $DragonFly: src/sys/net/gre/if_gre.c,v 1.9 2004/03/23 22:19:06 hsu Exp $ */ /* * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -100,7 +100,7 @@ struct gre_softc_head gre_softc_list; static int gre_clone_create(struct if_clone *, int); static void gre_clone_destroy(struct ifnet *); -static int gre_ioctl(struct ifnet *, u_long, caddr_t); +static int gre_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *); static int gre_output(struct ifnet *, struct mbuf *, struct sockaddr *, struct rtentry *rt); @@ -396,7 +396,7 @@ gre_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, } static int -gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) +gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr) { struct ifreq *ifr = (struct ifreq *)data; struct if_laddrreq *lifr = (struct if_laddrreq *)data; @@ -407,7 +407,6 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) struct sockaddr *sa = NULL; int error; struct sockaddr_in sp, sm, dp, dm; - struct thread *td = curthread; error = 0; @@ -419,7 +418,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) case SIOCSIFDSTADDR: break; case SIOCSIFFLAGS: - if ((error = suser(td)) != 0) + if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0) break; if ((ifr->ifr_flags & IFF_LINK0) != 0) sc->g_proto = IPPROTO_GRE; @@ -427,7 +426,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) sc->g_proto = IPPROTO_MOBILE; goto recompute; case SIOCSIFMTU: - if ((error = suser(td)) != 0) + if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0) break; if (ifr->ifr_mtu < 576) { error = EINVAL; @@ -440,7 +439,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) break; case SIOCADDMULTI: case SIOCDELMULTI: - if ((error = suser(td)) != 0) + if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0) break; if (ifr == 0) { error = EAFNOSUPPORT; @@ -457,7 +456,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) } break; case GRESPROTO: - if ((error = suser(td)) != 0) + if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0) break; sc->g_proto = ifr->ifr_flags; switch (sc->g_proto) { @@ -477,7 +476,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) break; case GRESADDRS: case GRESADDRD: - if ((error = suser(td)) != 0) + if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0) break; /* * set tunnel endpoints, compute a less specific route @@ -543,7 +542,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) ifr->ifr_addr = *sa; break; case SIOCSIFPHYADDR: - if ((error = suser(td)) != 0) + if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0) break; if (aifr->ifra_addr.sin_family != AF_INET || aifr->ifra_dstaddr.sin_family != AF_INET) { @@ -559,7 +558,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) sc->g_dst = aifr->ifra_dstaddr.sin_addr; goto recompute; case SIOCSLIFPHYADDR: - if ((error = suser(td)) != 0) + if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0) break; if (lifr->addr.ss_family != AF_INET || lifr->dstaddr.ss_family != AF_INET) { @@ -576,7 +575,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) (satosin((struct sockadrr *)&lifr->dstaddr))->sin_addr; goto recompute; case SIOCDIFPHYADDR: - if ((error = suser(td)) != 0) + if ((error = suser_cred(cr, NULL_CRED_OKAY)) != 0) break; sc->g_src.s_addr = INADDR_ANY; sc->g_dst.s_addr = INADDR_ANY; diff --git a/sys/net/if.c b/sys/net/if.c index 8454a17054..e604bda7f3 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -32,7 +32,7 @@ * * @(#)if.c 8.3 (Berkeley) 1/4/94 * $FreeBSD: src/sys/net/if.c,v 1.185 2004/03/13 02:35:03 brooks Exp $ - * $DragonFly: src/sys/net/if.c,v 1.14 2004/03/15 22:37:40 hmp Exp $ + * $DragonFly: src/sys/net/if.c,v 1.15 2004/03/23 22:19:05 hsu Exp $ */ #include "opt_compat.h" @@ -1082,7 +1082,8 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, struct thread *td) ifp->if_flags &= ~IFF_PROMISC; } if (ifp->if_ioctl) - (void) (*ifp->if_ioctl)(ifp, cmd, data); + (void) (*ifp->if_ioctl)(ifp, cmd, data, + td->td_proc->p_ucred); getmicrotime(&ifp->if_lastchange); break; @@ -1092,7 +1093,7 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, struct thread *td) return (error); if (ifr->ifr_reqcap & ~ifp->if_capabilities) return (EINVAL); - (void) (*ifp->if_ioctl)(ifp, cmd, data); + (void) (*ifp->if_ioctl)(ifp, cmd, data, td->td_proc->p_ucred); break; case SIOCSIFNAME: @@ -1151,7 +1152,7 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, struct thread *td) return error; if (!ifp->if_ioctl) return EOPNOTSUPP; - error = (*ifp->if_ioctl)(ifp, cmd, data); + error = (*ifp->if_ioctl)(ifp, cmd, data, td->td_proc->p_ucred); if (error == 0) getmicrotime(&ifp->if_lastchange); return(error); @@ -1167,7 +1168,7 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, struct thread *td) return (EOPNOTSUPP); if (ifr->ifr_mtu < IF_MINMTU || ifr->ifr_mtu > IF_MAXMTU) return (EINVAL); - error = (*ifp->if_ioctl)(ifp, cmd, data); + error = (*ifp->if_ioctl)(ifp, cmd, data, td->td_proc->p_ucred); if (error == 0) { getmicrotime(&ifp->if_lastchange); rt_ifmsg(ifp); @@ -1220,7 +1221,7 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, struct thread *td) return (error); if (ifp->if_ioctl == 0) return (EOPNOTSUPP); - error = (*ifp->if_ioctl)(ifp, cmd, data); + error = (*ifp->if_ioctl)(ifp, cmd, data, td->td_proc->p_ucred); if (error == 0) getmicrotime(&ifp->if_lastchange); return error; @@ -1236,7 +1237,7 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, struct thread *td) case SIOCGIFGENERIC: if (ifp->if_ioctl == 0) return (EOPNOTSUPP); - return ((*ifp->if_ioctl)(ifp, cmd, data)); + return ((*ifp->if_ioctl)(ifp, cmd, data, td->td_proc->p_ucred)); case SIOCSIFLLADDR: error = suser(td); @@ -1359,7 +1360,8 @@ ifpromisc(ifp, pswitch) } ifr.ifr_flags = ifp->if_flags; ifr.ifr_flagshigh = ifp->if_ipending >> 16; - error = (*ifp->if_ioctl)(ifp, SIOCSIFFLAGS, (caddr_t)&ifr); + error = (*ifp->if_ioctl)(ifp, SIOCSIFFLAGS, (caddr_t)&ifr, + (struct ucred *)NULL); if (error == 0) rt_ifmsg(ifp); else @@ -1471,7 +1473,8 @@ if_allmulti(ifp, onswitch) ifp->if_flags |= IFF_ALLMULTI; ifr.ifr_flags = ifp->if_flags; ifr.ifr_flagshigh = ifp->if_ipending >> 16; - error = ifp->if_ioctl(ifp, SIOCSIFFLAGS, (caddr_t)&ifr); + error = ifp->if_ioctl(ifp, SIOCSIFFLAGS, (caddr_t)&ifr, + (struct ucred *)NULL); } } else { if (ifp->if_amcount > 1) { @@ -1481,7 +1484,8 @@ if_allmulti(ifp, onswitch) ifp->if_flags &= ~IFF_ALLMULTI; ifr.ifr_flags = ifp->if_flags; ifr.ifr_flagshigh = ifp->if_ipending >> 16; - error = ifp->if_ioctl(ifp, SIOCSIFFLAGS, (caddr_t)&ifr); + error = ifp->if_ioctl(ifp, SIOCSIFFLAGS, (caddr_t)&ifr, + (struct ucred *)NULL); } } splx(s); @@ -1576,7 +1580,7 @@ if_addmulti(ifp, sa, retifma) * interface to let them know about it. */ s = splimp(); - ifp->if_ioctl(ifp, SIOCADDMULTI, 0); + ifp->if_ioctl(ifp, SIOCADDMULTI, 0, (struct ucred *)NULL); splx(s); return 0; @@ -1614,7 +1618,7 @@ if_delmulti(ifp, sa) * in the case of a link layer mcast group being left. */ if (ifma->ifma_addr->sa_family == AF_LINK && sa == 0) - ifp->if_ioctl(ifp, SIOCDELMULTI, 0); + ifp->if_ioctl(ifp, SIOCDELMULTI, 0, (struct ucred *)NULL); splx(s); free(ifma->ifma_addr, M_IFMADDR); free(ifma, M_IFMADDR); @@ -1645,7 +1649,7 @@ if_delmulti(ifp, sa) s = splimp(); LIST_REMOVE(ifma, ifma_link); - ifp->if_ioctl(ifp, SIOCDELMULTI, 0); + ifp->if_ioctl(ifp, SIOCDELMULTI, 0, (struct ucred *)NULL); splx(s); free(ifma->ifma_addr, M_IFMADDR); free(sa, M_IFMADDR); @@ -1698,11 +1702,13 @@ if_setlladdr(struct ifnet *ifp, const u_char *lladdr, int len) ifp->if_flags &= ~IFF_UP; ifr.ifr_flags = ifp->if_flags; ifr.ifr_flagshigh = ifp->if_ipending >> 16; - (*ifp->if_ioctl)(ifp, SIOCSIFFLAGS, (caddr_t)&ifr); + (*ifp->if_ioctl)(ifp, SIOCSIFFLAGS, (caddr_t)&ifr, + (struct ucred *)NULL); ifp->if_flags |= IFF_UP; ifr.ifr_flags = ifp->if_flags; ifr.ifr_flagshigh = ifp->if_ipending >> 16; - (*ifp->if_ioctl)(ifp, SIOCSIFFLAGS, (caddr_t)&ifr); + (*ifp->if_ioctl)(ifp, SIOCSIFFLAGS, (caddr_t)&ifr, + (struct ucred *)NULL); #ifdef INET /* * Also send gratuitous ARPs to notify other nodes about diff --git a/sys/net/if_loop.c b/sys/net/if_loop.c index 3b4deb7e08..e79594e308 100644 --- a/sys/net/if_loop.c +++ b/sys/net/if_loop.c @@ -32,7 +32,7 @@ * * @(#)if_loop.c 8.1 (Berkeley) 6/10/93 * $FreeBSD: src/sys/net/if_loop.c,v 1.47.2.8 2003/06/01 01:46:11 silby Exp $ - * $DragonFly: src/sys/net/if_loop.c,v 1.9 2004/01/06 03:17:25 dillon Exp $ + * $DragonFly: src/sys/net/if_loop.c,v 1.10 2004/03/23 22:19:05 hsu Exp $ */ /* @@ -87,7 +87,7 @@ #include #endif -int loioctl (struct ifnet *, u_long, caddr_t); +int loioctl (struct ifnet *, u_long, caddr_t, struct ucred *); static void lortrequest (int, struct rtentry *, struct rt_addrinfo *); static void loopattach (void *); @@ -317,10 +317,11 @@ lortrequest(cmd, rt, info) */ /* ARGSUSED */ int -loioctl(ifp, cmd, data) +loioctl(ifp, cmd, data, cr) struct ifnet *ifp; u_long cmd; caddr_t data; + struct ucred *cr; { struct ifaddr *ifa; struct ifreq *ifr = (struct ifreq *)data; diff --git a/sys/net/if_var.h b/sys/net/if_var.h index dfce54fe6c..9a80099d67 100644 --- a/sys/net/if_var.h +++ b/sys/net/if_var.h @@ -32,7 +32,7 @@ * * From: @(#)if.h 8.1 (Berkeley) 6/10/93 * $FreeBSD: src/sys/net/if_var.h,v 1.18.2.16 2003/04/15 18:11:19 fjoe Exp $ - * $DragonFly: src/sys/net/if_var.h,v 1.9 2004/03/15 20:08:40 joerg Exp $ + * $DragonFly: src/sys/net/if_var.h,v 1.10 2004/03/23 22:19:05 hsu Exp $ */ #ifndef _NET_IF_VAR_H_ @@ -73,6 +73,7 @@ struct rtentry; struct rt_addrinfo; struct socket; struct ether_header; +struct ucred; #endif #include /* get TAILQ macros */ @@ -162,7 +163,7 @@ struct ifnet { int uif_capabilities; /* interface capabilities */ } _u1; int (*if_ioctl) /* ioctl routine */ - (struct ifnet *, u_long, caddr_t); + (struct ifnet *, u_long, caddr_t, struct ucred *); void (*if_watchdog) /* timer routine */ (struct ifnet *); union { diff --git a/sys/net/ppp/if_ppp.c b/sys/net/ppp/if_ppp.c index f8135471b7..aecf5750a0 100644 --- a/sys/net/ppp/if_ppp.c +++ b/sys/net/ppp/if_ppp.c @@ -70,7 +70,7 @@ */ /* $FreeBSD: src/sys/net/if_ppp.c,v 1.67.2.4 2002/04/14 21:41:48 luigi Exp $ */ -/* $DragonFly: src/sys/net/ppp/if_ppp.c,v 1.12 2004/03/06 01:58:55 hsu Exp $ */ +/* $DragonFly: src/sys/net/ppp/if_ppp.c,v 1.13 2004/03/23 22:19:06 hsu Exp $ */ /* from if_sl.c,v 1.11 84/10/04 12:54:47 rick Exp */ /* from NetBSD: if_ppp.c,v 1.15.2.2 1994/07/28 05:17:58 cgd Exp */ @@ -138,7 +138,8 @@ extern void pppasyncattach (void *); static void pppattach (void *); PSEUDO_SET(pppattach, if_ppp); -static int pppsioctl (struct ifnet *ifp, u_long cmd, caddr_t data); +static int pppsioctl (struct ifnet *ifp, u_long cmd, caddr_t data, + struct ucred *); static void pppintr (struct netmsg *msg); static void ppp_requeue (struct ppp_softc *); @@ -543,10 +544,11 @@ pppioctl(struct ppp_softc *sc, u_long cmd, caddr_t data, * Process an ioctl request to the ppp network interface. */ static int -pppsioctl(ifp, cmd, data) +pppsioctl(ifp, cmd, data, cr) struct ifnet *ifp; u_long cmd; caddr_t data; + struct ucred *cr; { struct thread *td = curthread; /* XXX */ struct ppp_softc *sc = &ppp_softc[ifp->if_dunit]; diff --git a/sys/net/sl/if_sl.c b/sys/net/sl/if_sl.c index 2dd81cfe59..96f4e16eb6 100644 --- a/sys/net/sl/if_sl.c +++ b/sys/net/sl/if_sl.c @@ -32,7 +32,7 @@ * * @(#)if_sl.c 8.6 (Berkeley) 2/1/94 * $FreeBSD: src/sys/net/if_sl.c,v 1.84.2.2 2002/02/13 00:43:10 dillon Exp $ - * $DragonFly: src/sys/net/sl/if_sl.c,v 1.10 2004/01/06 03:17:26 dillon Exp $ + * $DragonFly: src/sys/net/sl/if_sl.c,v 1.11 2004/03/23 22:19:06 hsu Exp $ */ /* @@ -186,7 +186,7 @@ static timeout_t sl_keepalive; static timeout_t sl_outfill; static int slclose (struct tty *,int); static int slinput (int, struct tty *); -static int slioctl (struct ifnet *, u_long, caddr_t); +static int slioctl (struct ifnet *, u_long, caddr_t, struct ucred *); static int sltioctl (struct tty *, u_long, caddr_t, int, struct thread *); static int slopen (dev_t, struct tty *); static int sloutput (struct ifnet *, @@ -928,10 +928,11 @@ newpack: * Process an ioctl request. */ static int -slioctl(ifp, cmd, data) +slioctl(ifp, cmd, data, cr) struct ifnet *ifp; u_long cmd; caddr_t data; + struct ucred *cr; { struct ifaddr *ifa = (struct ifaddr *)data; struct ifreq *ifr = (struct ifreq *)data; diff --git a/sys/net/stf/if_stf.c b/sys/net/stf/if_stf.c index 1bea66c7ad..7bf890e95d 100644 --- a/sys/net/stf/if_stf.c +++ b/sys/net/stf/if_stf.c @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/net/if_stf.c,v 1.1.2.11 2003/01/23 21:06:44 sam Exp $ */ -/* $DragonFly: src/sys/net/stf/if_stf.c,v 1.7 2004/01/06 01:40:51 dillon Exp $ */ +/* $DragonFly: src/sys/net/stf/if_stf.c,v 1.8 2004/03/23 22:19:07 hsu Exp $ */ /* $KAME: if_stf.c,v 1.73 2001/12/03 11:08:30 keiichi Exp $ */ /* @@ -153,7 +153,7 @@ static int stf_checkaddr4 (struct stf_softc *, struct in_addr *, static int stf_checkaddr6 (struct stf_softc *, struct in6_addr *, struct ifnet *); static void stf_rtrequest (int, struct rtentry *, struct rt_addrinfo *); -static int stf_ioctl (struct ifnet *, u_long, caddr_t); +static int stf_ioctl (struct ifnet *, u_long, caddr_t, struct ucred *); static int stfmodevent(mod, type, data) @@ -633,10 +633,11 @@ stf_rtrequest(cmd, rt, info) } static int -stf_ioctl(ifp, cmd, data) +stf_ioctl(ifp, cmd, data, cr) struct ifnet *ifp; u_long cmd; caddr_t data; + struct ucred *cr; { struct ifaddr *ifa; struct ifreq *ifr; diff --git a/sys/net/tap/if_tap.c b/sys/net/tap/if_tap.c index ad4da6eed6..c3898a51f1 100644 --- a/sys/net/tap/if_tap.c +++ b/sys/net/tap/if_tap.c @@ -32,7 +32,7 @@ /* * $FreeBSD: src/sys/net/if_tap.c,v 1.3.2.3 2002/04/14 21:41:48 luigi Exp $ - * $DragonFly: src/sys/net/tap/if_tap.c,v 1.10 2004/03/14 15:36:54 joerg Exp $ + * $DragonFly: src/sys/net/tap/if_tap.c,v 1.11 2004/03/23 22:19:07 hsu Exp $ * $Id: if_tap.c,v 0.21 2000/07/23 21:46:02 max Exp $ */ @@ -84,7 +84,8 @@ static void tapcreate (dev_t); /* network interface */ static void tapifstart (struct ifnet *); -static int tapifioctl (struct ifnet *, u_long, caddr_t); +static int tapifioctl (struct ifnet *, u_long, caddr_t, + struct ucred *); static void tapifinit (void *); /* character device */ @@ -404,10 +405,11 @@ tapifinit(xtp) * Process an ioctl request on network interface */ int -tapifioctl(ifp, cmd, data) +tapifioctl(ifp, cmd, data, cr) struct ifnet *ifp; u_long cmd; caddr_t data; + struct ucred *cr; { struct tap_softc *tp = (struct tap_softc *)(ifp->if_softc); struct ifstat *ifs = NULL; diff --git a/sys/net/tun/if_tun.c b/sys/net/tun/if_tun.c index 1e37a891cd..f8f3feedac 100644 --- a/sys/net/tun/if_tun.c +++ b/sys/net/tun/if_tun.c @@ -14,7 +14,7 @@ * operation though. * * $FreeBSD: src/sys/net/if_tun.c,v 1.74.2.8 2002/02/13 00:43:11 dillon Exp $ - * $DragonFly: src/sys/net/tun/if_tun.c,v 1.11 2004/01/06 01:40:51 dillon Exp $ + * $DragonFly: src/sys/net/tun/if_tun.c,v 1.12 2004/03/23 22:19:07 hsu Exp $ */ #include "opt_atalk.h" @@ -67,7 +67,7 @@ SYSCTL_INT(_debug, OID_AUTO, if_tun_debug, CTLFLAG_RW, &tundebug, 0, ""); static int tunoutput (struct ifnet *, struct mbuf *, struct sockaddr *, struct rtentry *rt); -static int tunifioctl (struct ifnet *, u_long, caddr_t); +static int tunifioctl (struct ifnet *, u_long, caddr_t, struct ucred *); static int tuninit (struct ifnet *); static d_open_t tunopen; @@ -258,10 +258,11 @@ tuninit(ifp) * Process an ioctl request. */ int -tunifioctl(ifp, cmd, data) +tunifioctl(ifp, cmd, data, cr) struct ifnet *ifp; u_long cmd; caddr_t data; + struct ucred *cr; { struct ifreq *ifr = (struct ifreq *)data; struct tun_softc *tp = ifp->if_softc; diff --git a/sys/net/vlan/if_vlan.c b/sys/net/vlan/if_vlan.c index c720f91789..1ead59af2f 100644 --- a/sys/net/vlan/if_vlan.c +++ b/sys/net/vlan/if_vlan.c @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/net/if_vlan.c,v 1.15.2.13 2003/02/14 22:25:58 fenner Exp $ - * $DragonFly: src/sys/net/vlan/if_vlan.c,v 1.7 2004/03/14 15:36:54 joerg Exp $ + * $DragonFly: src/sys/net/vlan/if_vlan.c,v 1.8 2004/03/23 22:19:07 hsu Exp $ */ /* @@ -101,7 +101,8 @@ static void vlan_ifinit(void *foo); static int vlan_input(struct ether_header *eh, struct mbuf *m); static int vlan_input_tag(struct ether_header *eh, struct mbuf *m, u_int16_t t); -static int vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t addr); +static int vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t addr, + struct ucred *cr); static int vlan_setmulti(struct ifnet *ifp); static int vlan_unconfig(struct ifnet *ifp); static int vlan_config(struct ifvlan *ifv, struct ifnet *p); @@ -554,7 +555,7 @@ vlan_unconfig(struct ifnet *ifp) } static int -vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) +vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cr) { struct ifaddr *ifa; struct ifnet *p; @@ -594,7 +595,8 @@ vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) case SIOCGIFMEDIA: if (ifv->ifv_p != NULL) { - error = (ifv->ifv_p->if_ioctl)(ifv->ifv_p, SIOCGIFMEDIA, data); + error = (ifv->ifv_p->if_ioctl)(ifv->ifv_p, + SIOCGIFMEDIA, data, cr); /* Limit the result to the parent's current config. */ if (error == 0) { struct ifmediareq *ifmr; diff --git a/sys/netgraph/fec/ng_fec.c b/sys/netgraph/fec/ng_fec.c index 8828fc38d6..2604bb0944 100644 --- a/sys/netgraph/fec/ng_fec.c +++ b/sys/netgraph/fec/ng_fec.c @@ -33,7 +33,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/netgraph/ng_fec.c,v 1.1.2.1 2002/11/01 21:39:31 julian Exp $ - * $DragonFly: src/sys/netgraph/fec/ng_fec.c,v 1.5 2004/03/14 15:36:54 joerg Exp $ + * $DragonFly: src/sys/netgraph/fec/ng_fec.c,v 1.6 2004/03/23 22:19:07 hsu Exp $ */ /* * Copyright (c) 1996-1999 Whistle Communications, Inc. @@ -444,7 +444,7 @@ ng_fec_delport(struct ng_fec_private *priv, char *iface) /* Stop interface */ bifp->if_flags &= ~IFF_UP; - (*bifp->if_ioctl)(bifp, SIOCSIFFLAGS, NULL); + (*bifp->if_ioctl)(bifp, SIOCSIFFLAGS, NULL, NULL); /* Restore MAC address. */ ac = (struct arpcom *)bifp; @@ -480,7 +480,7 @@ ng_fec_setport(struct ifnet *ifp, u_long command, caddr_t data) TAILQ_FOREACH(p, &b->ng_fec_ports, fec_list) { oifp = p->fec_if; if (oifp != NULL) - (*oifp->if_ioctl)(oifp, command, data); + (*oifp->if_ioctl)(oifp, command, data, NULL); } return(0); @@ -510,7 +510,7 @@ ng_fec_init(void *arg) TAILQ_FOREACH(p, &b->ng_fec_ports, fec_list) { bifp = p->fec_if; bifp->if_flags |= IFF_UP; - (*bifp->if_ioctl)(bifp, SIOCSIFFLAGS, NULL); + (*bifp->if_ioctl)(bifp, SIOCSIFFLAGS, NULL, NULL); /* mark iface as up and let the monitor check it */ p->fec_ifstat = -1; } @@ -534,7 +534,7 @@ ng_fec_stop(struct ifnet *ifp) TAILQ_FOREACH(p, &b->ng_fec_ports, fec_list) { bifp = p->fec_if; bifp->if_flags &= ~IFF_UP; - (*bifp->if_ioctl)(bifp, SIOCSIFFLAGS, NULL); + (*bifp->if_ioctl)(bifp, SIOCSIFFLAGS, NULL, NULL); } untimeout(ng_fec_tick, priv, priv->fec_ch); @@ -558,7 +558,8 @@ ng_fec_tick(void *arg) TAILQ_FOREACH(p, &b->ng_fec_ports, fec_list) { bzero((char *)&ifmr, sizeof(ifmr)); ifp = p->fec_if; - error = (*ifp->if_ioctl)(ifp, SIOCGIFMEDIA, (caddr_t)&ifmr); + error = (*ifp->if_ioctl)(ifp, SIOCGIFMEDIA, (caddr_t)&ifmr, + NULL); if (error) { printf("fec%d: failed to check status " "of link %s\n", priv->unit, ifp->if_xname); diff --git a/sys/netgraph/iface/ng_iface.c b/sys/netgraph/iface/ng_iface.c index 342e4de114..a690b263fc 100644 --- a/sys/netgraph/iface/ng_iface.c +++ b/sys/netgraph/iface/ng_iface.c @@ -37,7 +37,7 @@ * Author: Archie Cobbs * * $FreeBSD: src/sys/netgraph/ng_iface.c,v 1.7.2.5 2002/07/02 23:44:02 archie Exp $ - * $DragonFly: src/sys/netgraph/iface/ng_iface.c,v 1.6 2004/01/06 03:17:27 dillon Exp $ + * $DragonFly: src/sys/netgraph/iface/ng_iface.c,v 1.7 2004/03/23 22:19:07 hsu Exp $ * $Whistle: ng_iface.c,v 1.33 1999/11/01 09:24:51 julian Exp $ */ @@ -112,7 +112,8 @@ typedef struct ng_iface_private *priv_p; /* Interface methods */ static void ng_iface_start(struct ifnet *ifp); -static int ng_iface_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data); +static int ng_iface_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data, + struct ucred *cr); static int ng_iface_output(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst, struct rtentry *rt0); static void ng_iface_bpftap(struct ifnet *ifp, @@ -337,7 +338,8 @@ ng_iface_free_unit(int unit) * Process an ioctl for the virtual interface */ static int -ng_iface_ioctl(struct ifnet *ifp, u_long command, caddr_t data) +ng_iface_ioctl(struct ifnet *ifp, u_long command, caddr_t data, + struct ucred *cr) { struct ifreq *const ifr = (struct ifreq *) data; int s, error = 0; diff --git a/sys/netinet/if_atm.c b/sys/netinet/if_atm.c index 7b5a782249..4f86163703 100644 --- a/sys/netinet/if_atm.c +++ b/sys/netinet/if_atm.c @@ -32,7 +32,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/netinet/if_atm.c,v 1.8.2.1 2001/12/20 10:30:18 ru Exp $ - * $DragonFly: src/sys/netinet/if_atm.c,v 1.4 2003/08/07 21:54:32 dillon Exp $ + * $DragonFly: src/sys/netinet/if_atm.c,v 1.5 2004/03/23 22:19:07 hsu Exp $ */ /* @@ -155,7 +155,7 @@ atm_rtrequest(req, rt, info) bcopy(LLADDR(SDL(gate)), &api.aph, sizeof(api.aph)); api.rxhand = NULL; if (rt->rt_ifp->if_ioctl(rt->rt_ifp, SIOCATMENA, - (caddr_t)&api) != 0) { + (caddr_t)&api, (struct ucred *)NULL) != 0) { printf("atm: couldn't add VC\n"); goto failed; } @@ -198,7 +198,7 @@ failed: bcopy(LLADDR(SDL(gate)), &api.aph, sizeof(api.aph)); api.rxhand = NULL; (void)rt->rt_ifp->if_ioctl(rt->rt_ifp, SIOCATMDIS, - (caddr_t)&api); + (caddr_t)&api, (struct ucred *)NULL); break; } diff --git a/sys/netinet/in.c b/sys/netinet/in.c index 417f8b19ab..1f80ccd869 100644 --- a/sys/netinet/in.c +++ b/sys/netinet/in.c @@ -32,7 +32,7 @@ * * @(#)in.c 8.4 (Berkeley) 1/9/95 * $FreeBSD: src/sys/netinet/in.c,v 1.44.2.14 2002/11/08 00:45:50 suz Exp $ - * $DragonFly: src/sys/netinet/in.c,v 1.8 2004/03/06 05:00:41 hsu Exp $ + * $DragonFly: src/sys/netinet/in.c,v 1.9 2004/03/23 22:19:07 hsu Exp $ */ #include "opt_bootp.h" @@ -347,8 +347,9 @@ in_control(so, cmd, data, ifp, td) return (EINVAL); oldaddr = ia->ia_dstaddr; ia->ia_dstaddr = *(struct sockaddr_in *)&ifr->ifr_dstaddr; - if (ifp->if_ioctl && (error = (*ifp->if_ioctl) - (ifp, SIOCSIFDSTADDR, (caddr_t)ia))) { + if (ifp->if_ioctl && + (error = (*ifp->if_ioctl)(ifp, SIOCSIFDSTADDR, (caddr_t)ia, + td->td_proc->p_ucred))) { ia->ia_dstaddr = oldaddr; return (error); } @@ -441,9 +442,9 @@ in_control(so, cmd, data, ifp, td) break; default: - if (ifp == 0 || ifp->if_ioctl == 0) + if (ifp == NULL || ifp->if_ioctl == NULL) return (EOPNOTSUPP); - return ((*ifp->if_ioctl)(ifp, cmd, data)); + return ((*ifp->if_ioctl)(ifp, cmd, data, td->td_proc->p_ucred)); } /* @@ -686,7 +687,8 @@ in_ifinit(ifp, ia, sin, scrub) * and to validate the address if necessary. */ if (ifp->if_ioctl && - (error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (caddr_t)ia))) { + (error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (caddr_t)ia, + (struct ucred *)NULL))) { splx(s); /* LIST_REMOVE(ia, ia_hash) is done in in_control */ ia->ia_addr = oldaddr; diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index cbd84ca15a..15cd5f0c17 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/netinet6/in6.c,v 1.7.2.9 2002/04/28 05:40:26 suz Exp $ */ -/* $DragonFly: src/sys/netinet6/in6.c,v 1.6 2003/08/23 11:02:45 rob Exp $ */ +/* $DragonFly: src/sys/netinet6/in6.c,v 1.7 2004/03/23 22:19:08 hsu Exp $ */ /* $KAME: in6.c,v 1.259 2002/01/21 11:37:50 keiichi Exp $ */ /* @@ -755,7 +755,7 @@ in6_control(struct socket *so, u_long cmd, caddr_t data, default: if (ifp == NULL || ifp->if_ioctl == 0) return(EOPNOTSUPP); - return((*ifp->if_ioctl)(ifp, cmd, data)); + return((*ifp->if_ioctl)(ifp, cmd, data, td->td_proc->p_ucred)); } return(0); @@ -1594,7 +1594,8 @@ in6_ifinit(ifp, ia, sin6, newhost) ia->ia_addr = *sin6; if (ifacount <= 1 && ifp->if_ioctl && - (error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (caddr_t)ia))) { + (error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (caddr_t)ia, + (struct ucred *)NULL))) { splx(s); return(error); } diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index 2671c7177c..3a8ea0935d 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/netinet6/ip6_mroute.c,v 1.2.2.9 2003/01/23 21:06:47 sam Exp $ */ -/* $DragonFly: src/sys/netinet6/ip6_mroute.c,v 1.5 2004/01/08 18:39:18 asmodai Exp $ */ +/* $DragonFly: src/sys/netinet6/ip6_mroute.c,v 1.6 2004/03/23 22:19:08 hsu Exp $ */ /* $KAME: ip6_mroute.c,v 1.58 2001/12/18 02:36:31 itojun Exp $ */ /* @@ -463,7 +463,8 @@ ip6_mrouter_done() ifr.ifr_addr.sin6_addr= in6addr_any; ifp = mif6table[mifi].m6_ifp; (*ifp->if_ioctl)(ifp, SIOCDELMULTI, - (caddr_t)&ifr); + (caddr_t)&ifr, + (struct ucred *)NULL); } } } diff --git a/sys/netproto/atalk/at_control.c b/sys/netproto/atalk/at_control.c index 4088e24bfb..010e5254a6 100644 --- a/sys/netproto/atalk/at_control.c +++ b/sys/netproto/atalk/at_control.c @@ -2,7 +2,7 @@ * Copyright (c) 1990,1991 Regents of The University of Michigan. * All Rights Reserved. * - * $DragonFly: src/sys/netproto/atalk/at_control.c,v 1.5 2003/08/07 21:17:33 dillon Exp $ + * $DragonFly: src/sys/netproto/atalk/at_control.c,v 1.6 2004/03/23 22:19:08 hsu Exp $ */ #include @@ -323,7 +323,7 @@ at_control(struct socket *so, u_long cmd, caddr_t data, default: if ( ifp == 0 || ifp->if_ioctl == 0 ) return( EOPNOTSUPP ); - return( (*ifp->if_ioctl)( ifp, cmd, data )); + return( (*ifp->if_ioctl)( ifp, cmd, data, td->td_proc->p_ucred )); } return( 0 ); } @@ -575,7 +575,8 @@ at_ifinit( ifp, aa, sat ) * about it, just in case it needs to adjust something. */ if ( ifp->if_ioctl && - ( error = (*ifp->if_ioctl)( ifp, SIOCSIFADDR, (caddr_t)aa ))) { + ( error = (*ifp->if_ioctl)( ifp, SIOCSIFADDR, (caddr_t)aa, + (struct ucred *)NULL ))) { /* * of course this could mean that it objects violently * so if it does, we back out again.. diff --git a/sys/netproto/ipx/ipx.c b/sys/netproto/ipx/ipx.c index 23a29d13a6..68b87b48b4 100644 --- a/sys/netproto/ipx/ipx.c +++ b/sys/netproto/ipx/ipx.c @@ -34,7 +34,7 @@ * @(#)ipx.c * * $FreeBSD: src/sys/netipx/ipx.c,v 1.17.2.3 2003/04/04 09:35:43 tjr Exp $ - * $DragonFly: src/sys/netproto/ipx/ipx.c,v 1.5 2003/08/07 21:17:37 dillon Exp $ + * $DragonFly: src/sys/netproto/ipx/ipx.c,v 1.6 2004/03/23 22:19:08 hsu Exp $ */ #include @@ -164,7 +164,9 @@ ipx_control(struct socket *so, u_long cmd, caddr_t data, ia->ia_flags &= ~IFA_ROUTE; } if (ifp->if_ioctl) { - error = (*ifp->if_ioctl)(ifp, SIOCSIFDSTADDR, (void *)ia); + error = (*ifp->if_ioctl)(ifp, SIOCSIFDSTADDR, + (void *)ia, + (struct ucred *)NULL); if (error) return (error); } @@ -220,7 +222,7 @@ ipx_control(struct socket *so, u_long cmd, caddr_t data, default: if (ifp->if_ioctl == NULL) return (EOPNOTSUPP); - return ((*ifp->if_ioctl)(ifp, cmd, data)); + return ((*ifp->if_ioctl)(ifp, cmd, data, (struct ucred *)NULL)); } } @@ -272,7 +274,8 @@ ipx_ifinit(ifp, ia, sipx, scrub) * and to validate the address if necessary. */ if (ifp->if_ioctl != NULL && - (error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (void *)ia))) { + (error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (void *)ia, + (struct ucred *)NULL))) { ia->ia_addr = oldaddr; splx(s); return (error); diff --git a/sys/netproto/natm/natm.c b/sys/netproto/natm/natm.c index cdcd41857d..50989c34f4 100644 --- a/sys/netproto/natm/natm.c +++ b/sys/netproto/natm/natm.c @@ -1,6 +1,6 @@ /* $NetBSD: natm.c,v 1.5 1996/11/09 03:26:26 chuck Exp $ */ /* $FreeBSD: src/sys/netnatm/natm.c,v 1.12 2000/02/13 03:32:03 peter Exp $ */ -/* $DragonFly: src/sys/netproto/natm/natm.c,v 1.11 2004/03/06 01:58:57 hsu Exp $ */ +/* $DragonFly: src/sys/netproto/natm/natm.c,v 1.12 2004/03/23 22:19:08 hsu Exp $ */ /* * @@ -210,7 +210,8 @@ natm_usr_connect(struct socket *so, struct sockaddr *nam, struct thread *td) api.rxhand = npcb; s2 = splimp(); if (ifp->if_ioctl == NULL || - ifp->if_ioctl(ifp, SIOCATMENA, (caddr_t) &api) != 0) { + ifp->if_ioctl(ifp, SIOCATMENA, (caddr_t) &api, + (struct ucred *)NULL) != 0) { splx(s2); npcb_free(npcb, NPCB_REMOVE); error = EIO; @@ -257,7 +258,7 @@ natm_usr_disconnect(struct socket *so) api.rxhand = npcb; s2 = splimp(); if (ifp->if_ioctl != NULL) - ifp->if_ioctl(ifp, SIOCATMDIS, (caddr_t) &api); + ifp->if_ioctl(ifp, SIOCATMDIS, (caddr_t) &api, (struct ucred *)NULL); splx(s2); npcb_free(npcb, NPCB_REMOVE); @@ -375,7 +376,8 @@ natm_usr_control(struct socket *so, u_long cmd, caddr_t arg, ario.npcb = npcb; ario.rawvalue = *((int *)arg); error = npcb->npcb_ifp->if_ioctl(npcb->npcb_ifp, - SIOCXRAWATM, (caddr_t) &ario); + SIOCXRAWATM, (caddr_t) &ario, + (struct ucred *)NULL); if (!error) { if (ario.rawvalue) npcb->npcb_flags |= NPCB_RAW; @@ -546,7 +548,8 @@ struct proc *p; api.rxhand = npcb; s2 = splimp(); if (ifp->if_ioctl == NULL || - ifp->if_ioctl(ifp, SIOCATMENA, (caddr_t) &api) != 0) { + ifp->if_ioctl(ifp, SIOCATMENA, (caddr_t) &api, + (struct ucred *)NULL) != 0) { splx(s2); npcb_free(npcb, NPCB_REMOVE); error = EIO; @@ -577,7 +580,7 @@ struct proc *p; api.rxhand = npcb; s2 = splimp(); if (ifp->if_ioctl != NULL) - ifp->if_ioctl(ifp, SIOCATMDIS, (caddr_t) &api); + ifp->if_ioctl(ifp, SIOCATMDIS, (caddr_t) &api, (struct ucred *)NULL); splx(s2); npcb_free(npcb, NPCB_REMOVE); @@ -646,8 +649,8 @@ struct proc *p; } ario.npcb = npcb; ario.rawvalue = *((int *)nam); - error = npcb->npcb_ifp->if_ioctl(npcb->npcb_ifp, - SIOCXRAWATM, (caddr_t) &ario); + error = npcb->npcb_ifp->if_ioctl(npcb->npcb_ifp, SIOCXRAWATM, + (caddr_t) &ario, (struct ucred *)NULL); if (!error) { if (ario.rawvalue) npcb->npcb_flags |= NPCB_RAW; diff --git a/sys/netproto/ns/ns.c b/sys/netproto/ns/ns.c index 4c3cb3cc05..86a0fd0e78 100644 --- a/sys/netproto/ns/ns.c +++ b/sys/netproto/ns/ns.c @@ -32,7 +32,7 @@ * * @(#)ns.c 8.2 (Berkeley) 11/15/93 * $FreeBSD: src/sys/netns/ns.c,v 1.9 1999/08/28 00:49:47 peter Exp $ - * $DragonFly: src/sys/netproto/ns/ns.c,v 1.6 2004/02/16 20:37:20 dillon Exp $ + * $DragonFly: src/sys/netproto/ns/ns.c,v 1.7 2004/03/23 22:19:08 hsu Exp $ */ #include @@ -177,7 +177,8 @@ ns_control(so, cmd, data, ifp) } if (ifp->if_ioctl) { error = (*ifp->if_ioctl)(ifp, SIOCSIFDSTADDR, - (caddr_t)ia); + (caddr_t)ia, + (struct ucred *)NULL); if (error) return (error); } @@ -239,7 +240,7 @@ ns_control(so, cmd, data, ifp) default: if (ifp->if_ioctl == 0) return (EOPNOTSUPP); - return ((*ifp->if_ioctl)(ifp, cmd, data)); + return ((*ifp->if_ioctl)(ifp, cmd, data, (struct ucred *)NULL)); } } @@ -294,7 +295,8 @@ ns_ifinit(ifp, ia, sns, scrub) if (ns_hosteqnh(ns_thishost, ns_zerohost)) { if (ifp->if_ioctl && (error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, - (caddr_t)ia))) { + (caddr_t)ia, + (struct ucred *)NULL))) { ia->ia_addr = oldaddr; splx(s); return (error); @@ -305,7 +307,8 @@ ns_ifinit(ifp, ia, sns, scrub) *h = ns_thishost; if (ifp->if_ioctl && (error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, - (caddr_t)ia))) { + (caddr_t)ia, + (struct ucred *)NULL))) { ia->ia_addr = oldaddr; splx(s); return (error); -- 2.41.0