From owner-freebsd-current@FreeBSD.ORG Fri Apr 26 17:01:41 2013 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 2B8D5AAE; Fri, 26 Apr 2013 17:01:41 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-wi0-x236.google.com (mail-wi0-x236.google.com [IPv6:2a00:1450:400c:c05::236]) by mx1.freebsd.org (Postfix) with ESMTP id D65A012F1; Fri, 26 Apr 2013 17:01:39 +0000 (UTC) Received: by mail-wi0-f182.google.com with SMTP id m6so859040wiv.9 for ; Fri, 26 Apr 2013 10:01:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=V0TGw55Y309JKNstWe0pWexdYORia1PES3SbyY04uqc=; b=lPveqnk52kDSwqU7+ujZXcMkwrVzJTs+eqfbJ5+/CFH3NAp2/iNzMJUGb38Q8wQMsC FsTqXH8bdmOFmdDfshjTjrMdoRnekQ/K2T8ceqETamhoef8P/bZKWRWOsPnKq0NwDAAG XPF4B5Ppd78wKQvs/AhrtXvwE9A+KcXQmwaoAm9tv+PmqpaHKzD7atVSbqLohD48IsjZ /cKfKlPTmpvB9HmicYbCA98TLQkwzC6iYV/8J7XYnf2be2Xxvj2SbDzA+g0L5wTC/Lcj DFCofRNN6K2VncVGqMsrqE5wJdB7RCQcgPgnl+pRu+Ay9u4CYzwt7g0L3kP/+0vr0tFG g8/Q== MIME-Version: 1.0 X-Received: by 10.194.93.68 with SMTP id cs4mr36375990wjb.17.1366995698994; Fri, 26 Apr 2013 10:01:38 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.217.58.138 with HTTP; Fri, 26 Apr 2013 10:01:38 -0700 (PDT) In-Reply-To: <201304261250.r3QCoWPZ072780@svn.freebsd.org> References: <201304261250.r3QCoWPZ072780@svn.freebsd.org> Date: Fri, 26 Apr 2013 10:01:38 -0700 X-Google-Sender-Auth: M5yk1Le737vSYzQYVHo_INoySaA Message-ID: Subject: Re: svn commit: r249925 - in head/sys: dev/iicbus dev/lmc dev/ppbus dev/usb/net net net80211 netatalk netgraph netinet netinet6 netpfil/ipfw netpfil/pf From: Adrian Chadd To: Gleb Smirnoff Content-Type: text/plain; charset=ISO-8859-1 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, freebsd-current@freebsd.org X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Apr 2013 17:01:41 -0000 Hi, This breaks the ability to compile this stuff on -9. Like, you know, a bunch of vendors tend to do. It would have been nice for a quick review cycle when you change network APIs like this. Also, since you've changed an API, have you bumped FREEBSD_VERSION ? This is why I suggested you do it in two parts - first fix the const brokenness you introduced, then do up this patch with a review cycle. Thanks, Adrian On 26 April 2013 05:50, Gleb Smirnoff wrote: > Author: glebius > Date: Fri Apr 26 12:50:32 2013 > New Revision: 249925 > URL: http://svnweb.freebsd.org/changeset/base/249925 > > Log: > Add const qualifier to the dst parameter of the ifnet if_output method. > > Modified: > head/sys/dev/iicbus/if_ic.c > head/sys/dev/lmc/if_lmc.c > head/sys/dev/lmc/if_lmc.h > head/sys/dev/ppbus/if_plip.c > head/sys/dev/usb/net/if_usie.c > head/sys/dev/usb/net/uhso.c > head/sys/net/ethernet.h > head/sys/net/if.c > head/sys/net/if_arc.h > head/sys/net/if_arcsubr.c > head/sys/net/if_atm.h > head/sys/net/if_atmsubr.c > head/sys/net/if_dead.c > head/sys/net/if_disc.c > head/sys/net/if_ef.c > head/sys/net/if_enc.c > head/sys/net/if_ethersubr.c > head/sys/net/if_faith.c > head/sys/net/if_fddisubr.c > head/sys/net/if_fwsubr.c > head/sys/net/if_gif.c > head/sys/net/if_gif.h > head/sys/net/if_gre.c > head/sys/net/if_iso88025subr.c > head/sys/net/if_lagg.c > head/sys/net/if_lagg.h > head/sys/net/if_loop.c > head/sys/net/if_spppsubr.c > head/sys/net/if_stf.c > head/sys/net/if_tun.c > head/sys/net/if_var.h > head/sys/net/iso88025.h > head/sys/net80211/ieee80211.c > head/sys/net80211/ieee80211_output.c > head/sys/net80211/ieee80211_proto.h > head/sys/net80211/ieee80211_var.h > head/sys/netatalk/aarp.c > head/sys/netatalk/aarp.h > head/sys/netatalk/at_control.c > head/sys/netatalk/at_extern.h > head/sys/netgraph/ng_fec.c > head/sys/netgraph/ng_iface.c > head/sys/netinet/if_atm.c > head/sys/netinet/if_atm.h > head/sys/netinet/if_ether.c > head/sys/netinet/if_ether.h > head/sys/netinet/ip_carp.c > head/sys/netinet/ip_carp.h > head/sys/netinet/ip_output.c > head/sys/netinet6/nd6.c > head/sys/netinet6/nd6.h > head/sys/netpfil/ipfw/ip_fw_log.c > head/sys/netpfil/pf/if_pflog.c > head/sys/netpfil/pf/if_pfsync.c > > Modified: head/sys/dev/iicbus/if_ic.c > ============================================================================== > --- head/sys/dev/iicbus/if_ic.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/dev/iicbus/if_ic.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -99,7 +99,7 @@ static int icprobe(device_t); > static int icattach(device_t); > > static int icioctl(struct ifnet *, u_long, caddr_t); > -static int icoutput(struct ifnet *, struct mbuf *, struct sockaddr *, > +static int icoutput(struct ifnet *, struct mbuf *, const struct sockaddr *, > struct route *); > > static int icintr(device_t, int, char *); > @@ -351,7 +351,7 @@ icintr(device_t dev, int event, char *pt > * icoutput() > */ > static int > -icoutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, > +icoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, > struct route *ro) > { > struct ic_softc *sc = ifp->if_softc; > > Modified: head/sys/dev/lmc/if_lmc.c > ============================================================================== > --- head/sys/dev/lmc/if_lmc.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/dev/lmc/if_lmc.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -4587,7 +4587,7 @@ lmc_ifnet_start(struct ifnet *ifp) > /* Called from a syscall (user context; no spinlocks). */ > static int > lmc_raw_output(struct ifnet *ifp, struct mbuf *m, > - struct sockaddr *dst, struct route *ro) > + const struct sockaddr *dst, struct route *ro) > { > softc_t *sc = IFP2SC(ifp); > int error = 0; > > Modified: head/sys/dev/lmc/if_lmc.h > ============================================================================== > --- head/sys/dev/lmc/if_lmc.h Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/dev/lmc/if_lmc.h Fri Apr 26 12:50:32 2013 (r249925) > @@ -1595,7 +1595,7 @@ static int lmc_raw_ioctl(struct ifnet *, > static int lmc_ifnet_ioctl(struct ifnet *, u_long, caddr_t); > static void lmc_ifnet_start(struct ifnet *); > static int lmc_raw_output(struct ifnet *, struct mbuf *, > - struct sockaddr *, struct route *); > + const struct sockaddr *, struct route *); > # ifdef __OpenBSD__ > static int ifmedia_change(struct ifnet *); > static void ifmedia_status(struct ifnet *, struct ifmediareq *); > > Modified: head/sys/dev/ppbus/if_plip.c > ============================================================================== > --- head/sys/dev/ppbus/if_plip.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/dev/ppbus/if_plip.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -173,7 +173,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 lpoutput(struct ifnet *, struct mbuf *, struct sockaddr *, > +static int lpoutput(struct ifnet *, struct mbuf *, const struct sockaddr *, > struct route *); > static void lpstop(struct lp_data *); > static void lp_intr(void *); > @@ -682,7 +682,7 @@ lpoutbyte(u_char byte, int spin, device_ > } > > static int > -lpoutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, > +lpoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, > struct route *ro) > { > struct lp_data *sc = ifp->if_softc; > > Modified: head/sys/dev/usb/net/if_usie.c > ============================================================================== > --- head/sys/dev/usb/net/if_usie.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/dev/usb/net/if_usie.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -121,7 +121,8 @@ static void usie_if_sync_cb(void *, int) > static void usie_if_status_cb(void *, int); > > static void usie_if_start(struct ifnet *); > -static int usie_if_output(struct ifnet *, struct mbuf *, struct sockaddr *, struct route *); > +static int usie_if_output(struct ifnet *, struct mbuf *, > + const struct sockaddr *, struct route *); > static void usie_if_init(void *); > static void usie_if_stop(struct usie_softc *); > static int usie_if_ioctl(struct ifnet *, u_long, caddr_t); > @@ -1181,7 +1182,7 @@ usie_if_start(struct ifnet *ifp) > } > > static int > -usie_if_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, > +usie_if_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, > struct route *ro) > { > int err; > > Modified: head/sys/dev/usb/net/uhso.c > ============================================================================== > --- head/sys/dev/usb/net/uhso.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/dev/usb/net/uhso.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -467,8 +467,8 @@ static void uhso_if_init(void *); > static void uhso_if_start(struct ifnet *); > static void uhso_if_stop(struct uhso_softc *); > static int uhso_if_ioctl(struct ifnet *, u_long, caddr_t); > -static int uhso_if_output(struct ifnet *, struct mbuf *, struct sockaddr *, > - struct route *); > +static int uhso_if_output(struct ifnet *, struct mbuf *, > + const struct sockaddr *, struct route *); > static void uhso_if_rxflush(void *); > > static device_probe_t uhso_probe; > @@ -1881,7 +1881,7 @@ uhso_if_init(void *priv) > } > > static int > -uhso_if_output(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst, > +uhso_if_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, > struct route *ro) > { > int error; > > Modified: head/sys/net/ethernet.h > ============================================================================== > --- head/sys/net/ethernet.h Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/ethernet.h Fri Apr 26 12:50:32 2013 (r249925) > @@ -375,8 +375,8 @@ extern void ether_demux(struct ifnet *, > extern void ether_ifattach(struct ifnet *, const u_int8_t *); > extern void ether_ifdetach(struct ifnet *); > extern int ether_ioctl(struct ifnet *, u_long, caddr_t); > -extern int ether_output(struct ifnet *, > - struct mbuf *, struct sockaddr *, struct route *); > +extern int ether_output(struct ifnet *, struct mbuf *, > + const struct sockaddr *, struct route *); > extern int ether_output_frame(struct ifnet *, struct mbuf *); > extern char *ether_sprintf(const u_int8_t *); > void ether_vlan_mtap(struct bpf_if *, struct mbuf *, > > Modified: head/sys/net/if.c > ============================================================================== > --- head/sys/net/if.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -134,7 +134,7 @@ int (*carp_master_p)(struct ifaddr *); > #if defined(INET) || defined(INET6) > int (*carp_forus_p)(struct ifnet *ifp, u_char *dhost); > int (*carp_output_p)(struct ifnet *ifp, struct mbuf *m, > - struct sockaddr *sa); > + const struct sockaddr *sa); > int (*carp_ioctl_p)(struct ifreq *, u_long, struct thread *); > int (*carp_attach_p)(struct ifaddr *, int); > void (*carp_detach_p)(struct ifaddr *); > > Modified: head/sys/net/if_arc.h > ============================================================================== > --- head/sys/net/if_arc.h Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_arc.h Fri Apr 26 12:50:32 2013 (r249925) > @@ -133,7 +133,7 @@ void arc_storelladdr(struct ifnet *, u_i > int arc_isphds(u_int8_t); > void arc_input(struct ifnet *, struct mbuf *); > int arc_output(struct ifnet *, struct mbuf *, > - struct sockaddr *, struct route *); > + const struct sockaddr *, struct route *); > int arc_ioctl(struct ifnet *, u_long, caddr_t); > > void arc_frag_init(struct ifnet *); > > Modified: head/sys/net/if_arcsubr.c > ============================================================================== > --- head/sys/net/if_arcsubr.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_arcsubr.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -92,8 +92,8 @@ u_int8_t arcbroadcastaddr = 0; > #define ARC_LLADDR(ifp) (*(u_int8_t *)IF_LLADDR(ifp)) > > #define senderr(e) { error = (e); goto bad;} > -#define SIN(s) ((struct sockaddr_in *)s) > -#define SIPX(s) ((struct sockaddr_ipx *)s) > +#define SIN(s) ((const struct sockaddr_in *)(s)) > +#define SIPX(s) ((const struct sockaddr_ipx *)(s)) > > /* > * ARCnet output routine. > @@ -101,7 +101,7 @@ u_int8_t arcbroadcastaddr = 0; > * Assumes that ifp is actually pointer to arccom structure. > */ > int > -arc_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, > +arc_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, > struct route *ro) > { > struct arc_header *ah; > @@ -186,8 +186,11 @@ arc_output(struct ifnet *ifp, struct mbu > #endif > > case AF_UNSPEC: > + { > + const struct arc_header *ah; > + > loop_copy = -1; > - ah = (struct arc_header *)dst->sa_data; > + ah = (const struct arc_header *)dst->sa_data; > adst = ah->arc_dhost; > atype = ah->arc_type; > > @@ -207,7 +210,7 @@ arc_output(struct ifnet *ifp, struct mbu > #endif > } > break; > - > + } > default: > if_printf(ifp, "can't handle af%d\n", dst->sa_family); > senderr(EAFNOSUPPORT); > > Modified: head/sys/net/if_atm.h > ============================================================================== > --- head/sys/net/if_atm.h Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_atm.h Fri Apr 26 12:50:32 2013 (r249925) > @@ -292,7 +292,7 @@ void atm_ifattach(struct ifnet *); > void atm_ifdetach(struct ifnet *); > void atm_input(struct ifnet *, struct atm_pseudohdr *, > struct mbuf *, void *); > -int atm_output(struct ifnet *, struct mbuf *, struct sockaddr *, > +int atm_output(struct ifnet *, struct mbuf *, const struct sockaddr *, > struct route *); > struct atmio_vcctable *atm_getvccs(struct atmio_vcc **, u_int, u_int, > struct mtx *, int); > > Modified: head/sys/net/if_atmsubr.c > ============================================================================== > --- head/sys/net/if_atmsubr.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_atmsubr.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -121,7 +121,7 @@ static MALLOC_DEFINE(M_IFATM, "ifatm", " > * ro->ro_rt must also be NULL. > */ > int > -atm_output(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst, > +atm_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, > struct route *ro) > { > u_int16_t etype = 0; /* if using LLC/SNAP */ > @@ -129,7 +129,7 @@ atm_output(struct ifnet *ifp, struct mbu > struct atm_pseudohdr atmdst, *ad; > struct mbuf *m = m0; > struct atmllc *atmllc; > - struct atmllc *llc_hdr = NULL; > + const struct atmllc *llc_hdr = NULL; > u_int32_t atm_flags; > > #ifdef MAC > @@ -173,7 +173,7 @@ atm_output(struct ifnet *ifp, struct mbu > * (atm pseudo header (4) + LLC/SNAP (8)) > */ > bcopy(dst->sa_data, &atmdst, sizeof(atmdst)); > - llc_hdr = (struct atmllc *)(dst->sa_data + > + llc_hdr = (const struct atmllc *)(dst->sa_data + > sizeof(atmdst)); > break; > > > Modified: head/sys/net/if_dead.c > ============================================================================== > --- head/sys/net/if_dead.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_dead.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -42,7 +42,7 @@ __FBSDID("$FreeBSD$"); > #include > > static int > -ifdead_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *sa, > +ifdead_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *sa, > struct route *ro) > { > > > Modified: head/sys/net/if_disc.c > ============================================================================== > --- head/sys/net/if_disc.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_disc.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -64,7 +64,7 @@ struct disc_softc { > }; > > static int discoutput(struct ifnet *, struct mbuf *, > - struct sockaddr *, struct route *); > + const struct sockaddr *, struct route *); > static void discrtrequest(int, struct rtentry *, struct rt_addrinfo *); > static int discioctl(struct ifnet *, u_long, caddr_t); > static int disc_clone_create(struct if_clone *, int, caddr_t); > @@ -155,7 +155,7 @@ static moduledata_t disc_mod = { > DECLARE_MODULE(if_disc, disc_mod, SI_SUB_PSEUDO, SI_ORDER_ANY); > > static int > -discoutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, > +discoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, > struct route *ro) > { > u_int32_t af; > @@ -163,15 +163,14 @@ discoutput(struct ifnet *ifp, struct mbu > M_ASSERTPKTHDR(m); > > /* BPF writes need to be handled specially. */ > - if (dst->sa_family == AF_UNSPEC) { > + if (dst->sa_family == AF_UNSPEC) > bcopy(dst->sa_data, &af, sizeof(af)); > - dst->sa_family = af; > - } > + else > + af = dst->sa_family; > > - if (bpf_peers_present(ifp->if_bpf)) { > - u_int af = dst->sa_family; > + if (bpf_peers_present(ifp->if_bpf)) > bpf_mtap2(ifp->if_bpf, &af, sizeof(af), m); > - } > + > m->m_pkthdr.rcvif = ifp; > > ifp->if_opackets++; > > Modified: head/sys/net/if_ef.c > ============================================================================== > --- head/sys/net/if_ef.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_ef.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -102,7 +102,7 @@ static int efcount; > > extern int (*ef_inputp)(struct ifnet*, struct ether_header *eh, struct mbuf *m); > extern int (*ef_outputp)(struct ifnet *ifp, struct mbuf **mp, > - struct sockaddr *dst, short *tp, int *hlen); > + const struct sockaddr *dst, short *tp, int *hlen); > > /* > static void ef_reset (struct ifnet *); > @@ -114,7 +114,7 @@ static int ef_ioctl(struct ifnet *, u_lo > 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, > - struct sockaddr *dst, short *tp, int *hlen); > + const struct sockaddr *dst, short *tp, int *hlen); > > static int ef_load(void); > static int ef_unload(void); > @@ -386,8 +386,8 @@ ef_input(struct ifnet *ifp, struct ether > } > > static int > -ef_output(struct ifnet *ifp, struct mbuf **mp, struct sockaddr *dst, short *tp, > - int *hlen) > +ef_output(struct ifnet *ifp, struct mbuf **mp, const struct sockaddr *dst, > + short *tp, int *hlen) > { > struct efnet *sc = (struct efnet*)ifp->if_softc; > struct mbuf *m = *mp; > > Modified: head/sys/net/if_enc.c > ============================================================================== > --- head/sys/net/if_enc.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_enc.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -88,7 +88,7 @@ struct enc_softc { > > static int enc_ioctl(struct ifnet *, u_long, caddr_t); > static int enc_output(struct ifnet *ifp, struct mbuf *m, > - struct sockaddr *dst, struct route *ro); > + const struct sockaddr *dst, struct route *ro); > static int enc_clone_create(struct if_clone *, int, caddr_t); > static void enc_clone_destroy(struct ifnet *); > static struct if_clone *enc_cloner; > @@ -188,7 +188,7 @@ static moduledata_t enc_mod = { > DECLARE_MODULE(if_enc, enc_mod, SI_SUB_PROTO_IFATTACHDOMAIN, SI_ORDER_ANY); > > static int > -enc_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, > +enc_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, > struct route *ro) > { > m_freem(m); > > Modified: head/sys/net/if_ethersubr.c > ============================================================================== > --- head/sys/net/if_ethersubr.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_ethersubr.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -83,7 +83,7 @@ > > int (*ef_inputp)(struct ifnet*, struct ether_header *eh, struct mbuf *m); > int (*ef_outputp)(struct ifnet *ifp, struct mbuf **mp, > - struct sockaddr *dst, short *tp, int *hlen); > + const struct sockaddr *dst, short *tp, int *hlen); > > #ifdef NETATALK > #include > @@ -149,7 +149,7 @@ static MALLOC_DEFINE(M_ARPCOM, "arpcom", > */ > int > ether_output(struct ifnet *ifp, struct mbuf *m, > - struct sockaddr *dst, struct route *ro) > + const struct sockaddr *dst, struct route *ro) > { > short type; > int error = 0, hdrcmplt = 0; > @@ -238,8 +238,8 @@ ether_output(struct ifnet *ifp, struct m > goto bad; > } else > type = htons(ETHERTYPE_IPX); > - bcopy((caddr_t)&(((struct sockaddr_ipx *)dst)->sipx_addr.x_host), > - (caddr_t)edst, sizeof (edst)); > + bcopy(&((const struct sockaddr_ipx *)dst)->sipx_addr.x_host, > + edst, sizeof (edst)); > break; > #endif > #ifdef NETATALK > @@ -247,9 +247,9 @@ ether_output(struct ifnet *ifp, struct m > { > struct at_ifaddr *aa; > > - if ((aa = at_ifawithnet((struct sockaddr_at *)dst)) == NULL) > + if ((aa = at_ifawithnet((const struct sockaddr_at *)dst)) == NULL) > senderr(EHOSTUNREACH); /* XXX */ > - if (!aarpresolve(ifp, m, (struct sockaddr_at *)dst, edst)) { > + if (!aarpresolve(ifp, m, (const struct sockaddr_at *)dst, edst)) { > ifa_free(&aa->aa_ifa); > return (0); > } > @@ -279,18 +279,21 @@ ether_output(struct ifnet *ifp, struct m > #endif /* NETATALK */ > > case pseudo_AF_HDRCMPLT: > + { > + const struct ether_header *eh; > + > hdrcmplt = 1; > - eh = (struct ether_header *)dst->sa_data; > + eh = (const struct ether_header *)dst->sa_data; > (void)memcpy(esrc, eh->ether_shost, sizeof (esrc)); > /* FALLTHROUGH */ > > case AF_UNSPEC: > loop_copy = 0; /* if this is for us, don't do it */ > - eh = (struct ether_header *)dst->sa_data; > + eh = (const struct ether_header *)dst->sa_data; > (void)memcpy(edst, eh->ether_dhost, sizeof (edst)); > type = eh->ether_type; > break; > - > + } > default: > if_printf(ifp, "can't handle af%d\n", dst->sa_family); > senderr(EAFNOSUPPORT); > > Modified: head/sys/net/if_faith.c > ============================================================================== > --- head/sys/net/if_faith.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_faith.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -84,7 +84,7 @@ struct faith_softc { > }; > > static int faithioctl(struct ifnet *, u_long, caddr_t); > -int faithoutput(struct ifnet *, struct mbuf *, struct sockaddr *, > +static int faithoutput(struct ifnet *, struct mbuf *, const struct sockaddr *, > struct route *); > static void faithrtrequest(int, struct rtentry *, struct rt_addrinfo *); > #ifdef INET6 > @@ -184,12 +184,9 @@ faith_clone_destroy(ifp) > free(sc, M_FAITH); > } > > -int > -faithoutput(ifp, m, dst, ro) > - struct ifnet *ifp; > - struct mbuf *m; > - struct sockaddr *dst; > - struct route *ro; > +static int > +faithoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, > + struct route *ro) > { > int isr; > u_int32_t af; > @@ -200,15 +197,13 @@ faithoutput(ifp, m, dst, ro) > if (ro != NULL) > rt = ro->ro_rt; > /* BPF writes need to be handled specially. */ > - if (dst->sa_family == AF_UNSPEC) { > + if (dst->sa_family == AF_UNSPEC) > bcopy(dst->sa_data, &af, sizeof(af)); > - dst->sa_family = af; > - } > - > - if (bpf_peers_present(ifp->if_bpf)) { > + else > af = dst->sa_family; > + > + if (bpf_peers_present(ifp->if_bpf)) > bpf_mtap2(ifp->if_bpf, &af, sizeof(af), m); > - } > > if (rt && rt->rt_flags & (RTF_REJECT|RTF_BLACKHOLE)) { > m_freem(m); > @@ -217,7 +212,7 @@ faithoutput(ifp, m, dst, ro) > } > ifp->if_opackets++; > ifp->if_obytes += m->m_pkthdr.len; > - switch (dst->sa_family) { > + switch (af) { > #ifdef INET > case AF_INET: > isr = NETISR_IP; > > Modified: head/sys/net/if_fddisubr.c > ============================================================================== > --- head/sys/net/if_fddisubr.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_fddisubr.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -96,7 +96,7 @@ static const u_char fddibroadcastaddr[FD > > static int fddi_resolvemulti(struct ifnet *, struct sockaddr **, > struct sockaddr *); > -static int fddi_output(struct ifnet *, struct mbuf *, struct sockaddr *, > +static int fddi_output(struct ifnet *, struct mbuf *, const struct sockaddr *, > struct route *); > static void fddi_input(struct ifnet *ifp, struct mbuf *m); > > @@ -110,11 +110,8 @@ static void fddi_input(struct ifnet *ifp > * Assumes that ifp is actually pointer to arpcom structure. > */ > static int > -fddi_output(ifp, m, dst, ro) > - struct ifnet *ifp; > - struct mbuf *m; > - struct sockaddr *dst; > - struct route *ro; > +fddi_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, > + struct route *ro) > { > u_int16_t type; > int loop_copy = 0, error = 0, hdrcmplt = 0; > @@ -189,19 +186,19 @@ fddi_output(ifp, m, dst, ro) > #ifdef IPX > case AF_IPX: > type = htons(ETHERTYPE_IPX); > - bcopy((caddr_t)&(((struct sockaddr_ipx *)dst)->sipx_addr.x_host), > - (caddr_t)edst, FDDI_ADDR_LEN); > + bcopy(&((const struct sockaddr_ipx *)dst)->sipx_addr.x_host, > + edst, FDDI_ADDR_LEN); > break; > #endif /* IPX */ > #ifdef NETATALK > case AF_APPLETALK: { > struct at_ifaddr *aa; > - if (!aarpresolve(ifp, m, (struct sockaddr_at *)dst, edst)) > + if (!aarpresolve(ifp, m, (const struct sockaddr_at *)dst, edst)) > return (0); > /* > * ifaddr is the first thing in at_ifaddr > */ > - if ((aa = at_ifawithnet( (struct sockaddr_at *)dst)) == 0) > + if ((aa = at_ifawithnet((const struct sockaddr_at *)dst)) == 0) > goto bad; > > /* > @@ -229,19 +226,21 @@ fddi_output(ifp, m, dst, ro) > > case pseudo_AF_HDRCMPLT: > { > - struct ether_header *eh; > + const struct ether_header *eh; > + > hdrcmplt = 1; > - eh = (struct ether_header *)dst->sa_data; > - bcopy((caddr_t)eh->ether_shost, (caddr_t)esrc, FDDI_ADDR_LEN); > + eh = (const struct ether_header *)dst->sa_data; > + bcopy(eh->ether_shost, esrc, FDDI_ADDR_LEN); > /* FALLTHROUGH */ > } > > case AF_UNSPEC: > { > - struct ether_header *eh; > + const struct ether_header *eh; > + > loop_copy = -1; > - eh = (struct ether_header *)dst->sa_data; > - bcopy((caddr_t)eh->ether_dhost, (caddr_t)edst, FDDI_ADDR_LEN); > + eh = (const struct ether_header *)dst->sa_data; > + bcopy(eh->ether_dhost, edst, FDDI_ADDR_LEN); > if (*edst & 1) > m->m_flags |= (M_BCAST|M_MCAST); > type = eh->ether_type; > > Modified: head/sys/net/if_fwsubr.c > ============================================================================== > --- head/sys/net/if_fwsubr.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_fwsubr.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -75,7 +75,7 @@ struct fw_hwaddr firewire_broadcastaddr > }; > > static int > -firewire_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, > +firewire_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, > struct route *ro) > { > struct fw_com *fc = IFP2FWC(ifp); > > Modified: head/sys/net/if_gif.c > ============================================================================== > --- head/sys/net/if_gif.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_gif.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -422,11 +422,8 @@ gif_start(struct ifnet *ifp) > } > > int > -gif_output(ifp, m, dst, ro) > - struct ifnet *ifp; > - struct mbuf *m; > - struct sockaddr *dst; > - struct route *ro; > +gif_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, > + struct route *ro) > { > struct gif_softc *sc = ifp->if_softc; > struct m_tag *mtag; > @@ -482,11 +479,10 @@ gif_output(ifp, m, dst, ro) > > m->m_flags &= ~(M_BCAST|M_MCAST); > /* BPF writes need to be handled specially. */ > - if (dst->sa_family == AF_UNSPEC) { > + if (dst->sa_family == AF_UNSPEC) > bcopy(dst->sa_data, &af, sizeof(af)); > - dst->sa_family = af; > - } > - af = dst->sa_family; > + else > + af = dst->sa_family; > /* > * Now save the af in the inbound pkt csum > * data, this is a cheat since we are using > > Modified: head/sys/net/if_gif.h > ============================================================================== > --- head/sys/net/if_gif.h Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_gif.h Fri Apr 26 12:50:32 2013 (r249925) > @@ -112,7 +112,7 @@ struct etherip_header { > > /* Prototypes */ > void gif_input(struct mbuf *, int, struct ifnet *); > -int gif_output(struct ifnet *, struct mbuf *, struct sockaddr *, > +int gif_output(struct ifnet *, struct mbuf *, const struct sockaddr *, > struct route *); > int gif_ioctl(struct ifnet *, u_long, caddr_t); > int gif_set_tunnel(struct ifnet *, struct sockaddr *, struct sockaddr *); > > Modified: head/sys/net/if_gre.c > ============================================================================== > --- head/sys/net/if_gre.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_gre.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -113,8 +113,8 @@ static void gre_clone_destroy(struct ifn > static struct if_clone *gre_cloner; > > static int gre_ioctl(struct ifnet *, u_long, caddr_t); > -static int gre_output(struct ifnet *, struct mbuf *, struct sockaddr *, > - struct route *ro); > +static int gre_output(struct ifnet *, struct mbuf *, > + const struct sockaddr *, struct route *); > > static int gre_compute_route(struct gre_softc *sc); > > @@ -241,7 +241,7 @@ gre_clone_destroy(ifp) > * given by sc->g_proto. See also RFC 1701 and RFC 2004 > */ > static int > -gre_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, > +gre_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, > struct route *ro) > { > int error = 0; > @@ -333,20 +333,18 @@ gre_output(struct ifnet *ifp, struct mbu > ip = NULL; > > /* BPF writes need to be handled specially. */ > - if (dst->sa_family == AF_UNSPEC) { > + if (dst->sa_family == AF_UNSPEC) > bcopy(dst->sa_data, &af, sizeof(af)); > - dst->sa_family = af; > - } > - > - if (bpf_peers_present(ifp->if_bpf)) { > + else > af = dst->sa_family; > + > + if (bpf_peers_present(ifp->if_bpf)) > bpf_mtap2(ifp->if_bpf, &af, sizeof(af), m); > - } > > m->m_flags &= ~(M_BCAST|M_MCAST); > > if (sc->g_proto == IPPROTO_MOBILE) { > - if (dst->sa_family == AF_INET) { > + if (af == AF_INET) { > struct mbuf *m0; > int msiz; > > @@ -417,7 +415,7 @@ gre_output(struct ifnet *ifp, struct mbu > goto end; > } > } else if (sc->g_proto == IPPROTO_GRE) { > - switch (dst->sa_family) { > + switch (af) { > case AF_INET: > ip = mtod(m, struct ip *); > gre_ip_tos = ip->ip_tos; > > Modified: head/sys/net/if_iso88025subr.c > ============================================================================== > --- head/sys/net/if_iso88025subr.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_iso88025subr.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -231,11 +231,8 @@ iso88025_ioctl(struct ifnet *ifp, u_long > * ISO88025 encapsulation > */ > int > -iso88025_output(ifp, m, dst, ro) > - struct ifnet *ifp; > - struct mbuf *m; > - struct sockaddr *dst; > - struct route *ro; > +iso88025_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, > + struct route *ro) > { > u_int16_t snap_type = 0; > int loop_copy = 0, error = 0, rif_len = 0; > @@ -351,7 +348,7 @@ iso88025_output(ifp, m, dst, ro) > #endif /* IPX */ > case AF_UNSPEC: > { > - struct iso88025_sockaddr_data *sd; > + const struct iso88025_sockaddr_data *sd; > /* > * For AF_UNSPEC sockaddr.sa_data must contain all of the > * mac information needed to send the packet. This allows > @@ -361,13 +358,12 @@ iso88025_output(ifp, m, dst, ro) > * should be an iso88025_sockaddr_data structure see iso88025.h > */ > loop_copy = -1; > - sd = (struct iso88025_sockaddr_data *)dst->sa_data; > + sd = (const struct iso88025_sockaddr_data *)dst->sa_data; > gen_th.ac = sd->ac; > gen_th.fc = sd->fc; > - (void)memcpy((caddr_t)edst, (caddr_t)sd->ether_dhost, > - ISO88025_ADDR_LEN); > - (void)memcpy((caddr_t)gen_th.iso88025_shost, > - (caddr_t)sd->ether_shost, ISO88025_ADDR_LEN); > + (void)memcpy(edst, sd->ether_dhost, ISO88025_ADDR_LEN); > + (void)memcpy(gen_th.iso88025_shost, sd->ether_shost, > + ISO88025_ADDR_LEN); > rif_len = 0; > break; > } > > Modified: head/sys/net/if_lagg.c > ============================================================================== > --- head/sys/net/if_lagg.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_lagg.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -99,7 +99,7 @@ static void lagg_linkstate(struct lagg_s > static void lagg_port_state(struct ifnet *, int); > static int lagg_port_ioctl(struct ifnet *, u_long, caddr_t); > static int lagg_port_output(struct ifnet *, struct mbuf *, > - struct sockaddr *, struct route *); > + const struct sockaddr *, struct route *); > static void lagg_port_ifdetach(void *arg __unused, struct ifnet *); > #ifdef LAGG_PORT_STACKING > static int lagg_port_checkstacking(struct lagg_softc *); > @@ -787,7 +787,7 @@ fallback: > */ > static int > lagg_port_output(struct ifnet *ifp, struct mbuf *m, > - struct sockaddr *dst, struct route *ro) > + const struct sockaddr *dst, struct route *ro) > { > struct lagg_port *lp = ifp->if_lagg; > > > Modified: head/sys/net/if_lagg.h > ============================================================================== > --- head/sys/net/if_lagg.h Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_lagg.h Fri Apr 26 12:50:32 2013 (r249925) > @@ -245,8 +245,8 @@ struct lagg_port { > > /* Redirected callbacks */ > int (*lp_ioctl)(struct ifnet *, u_long, caddr_t); > - int (*lp_output)(struct ifnet *, struct mbuf *, struct sockaddr *, > - struct route *); > + int (*lp_output)(struct ifnet *, struct mbuf *, > + const struct sockaddr *, struct route *); > > SLIST_ENTRY(lagg_port) lp_entries; > }; > > Modified: head/sys/net/if_loop.c > ============================================================================== > --- head/sys/net/if_loop.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_loop.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -101,7 +101,7 @@ > int loioctl(struct ifnet *, u_long, caddr_t); > static void lortrequest(int, struct rtentry *, struct rt_addrinfo *); > int looutput(struct ifnet *ifp, struct mbuf *m, > - struct sockaddr *dst, struct route *ro); > + const struct sockaddr *dst, struct route *ro); > static int lo_clone_create(struct if_clone *, int, caddr_t); > static void lo_clone_destroy(struct ifnet *); > > @@ -210,7 +210,7 @@ static moduledata_t loop_mod = { > DECLARE_MODULE(if_lo, loop_mod, SI_SUB_PROTO_IFATTACHDOMAIN, SI_ORDER_ANY); > > int > -looutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, > +looutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, > struct route *ro) > { > u_int32_t af; > @@ -241,13 +241,13 @@ looutput(struct ifnet *ifp, struct mbuf > ifp->if_obytes += m->m_pkthdr.len; > > /* BPF writes need to be handled specially. */ > - if (dst->sa_family == AF_UNSPEC) { > + if (dst->sa_family == AF_UNSPEC) > bcopy(dst->sa_data, &af, sizeof(af)); > - dst->sa_family = af; > - } > + else > + af = dst->sa_family; > > #if 1 /* XXX */ > - switch (dst->sa_family) { > + switch (af) { > case AF_INET: > if (ifp->if_capenable & IFCAP_RXCSUM) { > m->m_pkthdr.csum_data = 0xffff; > @@ -276,12 +276,12 @@ looutput(struct ifnet *ifp, struct mbuf > case AF_APPLETALK: > break; > default: > - printf("looutput: af=%d unexpected\n", dst->sa_family); > + printf("looutput: af=%d unexpected\n", af); > m_freem(m); > return (EAFNOSUPPORT); > } > #endif > - return (if_simloop(ifp, m, dst->sa_family, 0)); > + return (if_simloop(ifp, m, af, 0)); > } > > /* > > Modified: head/sys/net/if_spppsubr.c > ============================================================================== > --- head/sys/net/if_spppsubr.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_spppsubr.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -262,7 +262,7 @@ static const u_short interactive_ports[8 > int debug = ifp->if_flags & IFF_DEBUG > > static int sppp_output(struct ifnet *ifp, struct mbuf *m, > - struct sockaddr *dst, struct route *ro); > + const struct sockaddr *dst, struct route *ro); > > static void sppp_cisco_send(struct sppp *sp, int type, long par1, long par2); > static void sppp_cisco_input(struct sppp *sp, struct mbuf *m); > @@ -785,8 +785,8 @@ sppp_ifstart(struct ifnet *ifp) > * Enqueue transmit packet. > */ > static int > -sppp_output(struct ifnet *ifp, struct mbuf *m, > - struct sockaddr *dst, struct route *ro) > +sppp_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, > + struct route *ro) > { > struct sppp *sp = IFP2SP(ifp); > struct ppp_header *h; > > Modified: head/sys/net/if_stf.c > ============================================================================== > --- head/sys/net/if_stf.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_stf.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -140,7 +140,7 @@ SYSCTL_INT(_net_link_stf, OID_AUTO, perm > * XXX: Return a pointer with 16-bit aligned. Don't cast it to > * struct in_addr *; use bcopy() instead. > */ > -#define GET_V4(x) ((caddr_t)(&(x)->s6_addr16[1])) > +#define GET_V4(x) (&(x)->s6_addr16[1]) > > struct stf_softc { > struct ifnet *sc_ifp; > @@ -181,7 +181,7 @@ static char *stfnames[] = {"stf0", "stf" > static int stfmodevent(module_t, int, void *); > static int stf_encapcheck(const struct mbuf *, int, int, void *); > static struct in6_ifaddr *stf_getsrcifa6(struct ifnet *); > -static int stf_output(struct ifnet *, struct mbuf *, struct sockaddr *, > +static int stf_output(struct ifnet *, struct mbuf *, const struct sockaddr *, > struct route *); > static int isrfc1918addr(struct in_addr *); > static int stf_checkaddr4(struct stf_softc *, struct in_addr *, > @@ -413,23 +413,19 @@ stf_getsrcifa6(ifp) > } > > static int > -stf_output(ifp, m, dst, ro) > - struct ifnet *ifp; > - struct mbuf *m; > - struct sockaddr *dst; > - struct route *ro; > +stf_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, > + struct route *ro) > { > struct stf_softc *sc; > - struct sockaddr_in6 *dst6; > + const struct sockaddr_in6 *dst6; > struct route *cached_route; > struct in_addr in4; > - caddr_t ptr; > + const void *ptr; > struct sockaddr_in *dst4; > u_int8_t tos; > struct ip *ip; > struct ip6_hdr *ip6; > struct in6_ifaddr *ia6; > - u_int32_t af; > int error; > > #ifdef MAC > @@ -441,7 +437,7 @@ stf_output(ifp, m, dst, ro) > #endif > > sc = ifp->if_softc; > - dst6 = (struct sockaddr_in6 *)dst; > + dst6 = (const struct sockaddr_in6 *)dst; > > /* just in case */ > if ((ifp->if_flags & IFF_UP) == 0) { > @@ -474,15 +470,6 @@ stf_output(ifp, m, dst, ro) > tos = (ntohl(ip6->ip6_flow) >> 20) & 0xff; > > /* > - * BPF writes need to be handled specially. > - * This is a null operation, nothing here checks dst->sa_family. > - */ > - if (dst->sa_family == AF_UNSPEC) { > - bcopy(dst->sa_data, &af, sizeof(af)); > - dst->sa_family = af; > - } > - > - /* > * Pickup the right outer dst addr from the list of candidates. > * ip6_dst has priority as it may be able to give us shorter IPv4 hops. > */ > @@ -507,7 +494,7 @@ stf_output(ifp, m, dst, ro) > * will only read from the mbuf (i.e., it won't > * try to free it or keep a pointer a to it). > */ > - af = AF_INET6; > + u_int af = AF_INET6; > bpf_mtap2(ifp->if_bpf, &af, sizeof(af), m); > } > > > Modified: head/sys/net/if_tun.c > ============================================================================== > --- head/sys/net/if_tun.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_tun.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -128,8 +128,8 @@ static void tuncreate(const char *name, > static int tunifioctl(struct ifnet *, u_long, caddr_t); > static void tuninit(struct ifnet *); > static int tunmodevent(module_t, int, void *); > -static int tunoutput(struct ifnet *, struct mbuf *, struct sockaddr *, > - struct route *ro); > +static int tunoutput(struct ifnet *, struct mbuf *, > + const struct sockaddr *, struct route *ro); > static void tunstart(struct ifnet *); > > static int tun_clone_create(struct if_clone *, int, caddr_t); > @@ -575,7 +575,7 @@ tunifioctl(struct ifnet *ifp, u_long cmd > * tunoutput - queue packets from higher level ready to put out. > */ > static int > -tunoutput(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst, > +tunoutput(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst, > struct route *ro) > { > struct tun_softc *tp = ifp->if_softc; > @@ -609,15 +609,13 @@ tunoutput(struct ifnet *ifp, struct mbuf > } > > /* BPF writes need to be handled specially. */ > - if (dst->sa_family == AF_UNSPEC) { > + if (dst->sa_family == AF_UNSPEC) > bcopy(dst->sa_data, &af, sizeof(af)); > - dst->sa_family = af; > - } > - > - if (bpf_peers_present(ifp->if_bpf)) { > + else > af = dst->sa_family; > + > + if (bpf_peers_present(ifp->if_bpf)) > bpf_mtap2(ifp->if_bpf, &af, sizeof(af), m0); > - } > > /* prepend sockaddr? this may abort if the mbuf allocation fails */ > if (cached_tun_flags & TUN_LMODE) { > @@ -644,10 +642,10 @@ tunoutput(struct ifnet *ifp, struct mbuf > ifp->if_oerrors++; > return (ENOBUFS); > } else > - *(u_int32_t *)m0->m_data = htonl(dst->sa_family); > + *(u_int32_t *)m0->m_data = htonl(af); > } else { > #ifdef INET > - if (dst->sa_family != AF_INET) > + if (af != AF_INET) > #endif > { > m_freem(m0); > > Modified: head/sys/net/if_var.h > ============================================================================== > --- head/sys/net/if_var.h Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/if_var.h Fri Apr 26 12:50:32 2013 (r249925) > @@ -158,7 +158,7 @@ struct ifnet { > int if_amcount; /* number of all-multicast requests */ > /* procedure handles */ > int (*if_output) /* output routine (enqueue) */ > - (struct ifnet *, struct mbuf *, struct sockaddr *, > + (struct ifnet *, struct mbuf *, const struct sockaddr *, > struct route *); > void (*if_input) /* input routine (from h/w driver) */ > (struct ifnet *, struct mbuf *); > > Modified: head/sys/net/iso88025.h > ============================================================================== > --- head/sys/net/iso88025.h Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net/iso88025.h Fri Apr 26 12:50:32 2013 (r249925) > @@ -165,8 +165,8 @@ struct iso88025_addr { > void iso88025_ifattach (struct ifnet *, const u_int8_t *, int); > void iso88025_ifdetach (struct ifnet *, int); > int iso88025_ioctl (struct ifnet *, u_long, caddr_t ); > -int iso88025_output (struct ifnet *, struct mbuf *, struct sockaddr *, > - struct route *); > +int iso88025_output (struct ifnet *, struct mbuf *, > + const struct sockaddr *, struct route *); > void iso88025_input (struct ifnet *, struct mbuf *); > > #endif > > Modified: head/sys/net80211/ieee80211.c > ============================================================================== > --- head/sys/net80211/ieee80211.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net80211/ieee80211.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -243,7 +243,7 @@ null_transmit(struct ifnet *ifp, struct > > static int > null_output(struct ifnet *ifp, struct mbuf *m, > - struct sockaddr *dst, struct route *ro) > + const struct sockaddr *dst, struct route *ro) > { > if_printf(ifp, "discard raw packet\n"); > return null_transmit(ifp, m); > > Modified: head/sys/net80211/ieee80211_output.c > ============================================================================== > --- head/sys/net80211/ieee80211_output.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net80211/ieee80211_output.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -450,7 +450,7 @@ ieee80211_raw_output(struct ieee80211vap > */ > int > ieee80211_output(struct ifnet *ifp, struct mbuf *m, > - struct sockaddr *dst, struct route *ro) > + const struct sockaddr *dst, struct route *ro) > { > #define senderr(e) do { error = (e); goto bad;} while (0) > struct ieee80211_node *ni = NULL; > > Modified: head/sys/net80211/ieee80211_proto.h > ============================================================================== > --- head/sys/net80211/ieee80211_proto.h Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net80211/ieee80211_proto.h Fri Apr 26 12:50:32 2013 (r249925) > @@ -97,7 +97,7 @@ int ieee80211_mgmt_output(struct ieee802 > int ieee80211_raw_xmit(struct ieee80211_node *, struct mbuf *, > const struct ieee80211_bpf_params *); > int ieee80211_output(struct ifnet *, struct mbuf *, > - struct sockaddr *, struct route *ro); > + const struct sockaddr *, struct route *ro); > int ieee80211_raw_output(struct ieee80211vap *, struct ieee80211_node *, > struct mbuf *, const struct ieee80211_bpf_params *); > void ieee80211_send_setup(struct ieee80211_node *, struct mbuf *, int, int, > > Modified: head/sys/net80211/ieee80211_var.h > ============================================================================== > --- head/sys/net80211/ieee80211_var.h Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/net80211/ieee80211_var.h Fri Apr 26 12:50:32 2013 (r249925) > @@ -497,7 +497,7 @@ struct ieee80211vap { > enum ieee80211_state, int); > /* 802.3 output method for raw frame xmit */ > int (*iv_output)(struct ifnet *, struct mbuf *, > - struct sockaddr *, struct route *); > + const struct sockaddr *, struct route *); > uint64_t iv_spare[6]; > }; > MALLOC_DECLARE(M_80211_VAP); > > Modified: head/sys/netatalk/aarp.c > ============================================================================== > --- head/sys/netatalk/aarp.c Fri Apr 26 12:27:30 2013 (r249924) > +++ head/sys/netatalk/aarp.c Fri Apr 26 12:50:32 2013 (r249925) > @@ -147,7 +147,7 @@ aarptimer(void *ignored) > * unlocked variant returns a reference that the caller must dispose of. > */ > struct at_ifaddr * > > *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***