From: Joerg Sonnenberger Date: Fri, 3 Jun 2005 23:23:03 +0000 (+0000) Subject: Add a new macro IF_LLSOCKADDR which maps a ifnet pointer to the X-Git-Tag: v2.0.1~7150 X-Git-Url: https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff_plain/f2682cb91cafc673bed3eefe5a281ea04ed3f63e Add a new macro IF_LLSOCKADDR which maps a ifnet pointer to the associated link layer sockaddr. Use it to implement IF_LLADDR. Replace most references of ifnet_addrs with one of those macros. This makes the sometimes explicitly encoded assumption of each interface having a link-layer address implicit and is the preparation for removing ifnet_addrs. --- diff --git a/sys/dev/netif/an/if_an.c b/sys/dev/netif/an/if_an.c index f330bac7ad..feded51aa0 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.21 2005/05/27 15:36:09 joerg Exp $ + * $DragonFly: src/sys/dev/netif/an/if_an.c,v 1.22 2005/06/03 23:23:03 joerg Exp $ */ /* @@ -1707,8 +1707,6 @@ an_setdef(sc, areq) struct an_softc *sc; struct an_req *areq; { - struct sockaddr_dl *sdl; - struct ifaddr *ifa; struct ifnet *ifp; struct an_ltv_genconfig *cfg; struct an_ltv_ssidlist *ssid; @@ -1721,11 +1719,9 @@ an_setdef(sc, areq) case AN_RID_GENCONFIG: cfg = (struct an_ltv_genconfig *)areq; - ifa = ifnet_addrs[ifp->if_index - 1]; - sdl = (struct sockaddr_dl *)ifa->ifa_addr; bcopy((char *)&cfg->an_macaddr, (char *)&sc->arpcom.ac_enaddr, ETHER_ADDR_LEN); - bcopy((char *)&cfg->an_macaddr, LLADDR(sdl), ETHER_ADDR_LEN); + bcopy((char *)&cfg->an_macaddr, IF_LLADDR(ifp), ETHER_ADDR_LEN); bcopy((char *)cfg, (char *)&sc->an_config, sizeof(struct an_ltv_genconfig)); diff --git a/sys/dev/netif/owi/if_owi.c b/sys/dev/netif/owi/if_owi.c index 1ca54a7503..9d8a4ad5c6 100644 --- a/sys/dev/netif/owi/if_owi.c +++ b/sys/dev/netif/owi/if_owi.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/owi/Attic/if_owi.c,v 1.7 2005/05/27 15:36:09 joerg Exp $ + * $DragonFly: src/sys/dev/netif/owi/Attic/if_owi.c,v 1.8 2005/06/03 23:23:03 joerg Exp $ */ /* @@ -1541,11 +1541,9 @@ wi_setdef(sc, wreq) switch(wreq->wi_type) { case WI_RID_MAC_NODE: - ifa = ifaddr_byindex(ifp->if_index); - sdl = (struct sockaddr_dl *)ifa->ifa_addr; bcopy((char *)&wreq->wi_val, (char *)&sc->arpcom.ac_enaddr, ETHER_ADDR_LEN); - bcopy((char *)&wreq->wi_val, LLADDR(sdl), ETHER_ADDR_LEN); + bcopy((char *)&wreq->wi_val, IF_LLADDR(ifp), ETHER_ADDR_LEN); break; case WI_RID_PORTTYPE: sc->wi_ptype = le16toh(wreq->wi_val[0]); diff --git a/sys/dev/netif/owi/if_wivar.h b/sys/dev/netif/owi/if_wivar.h index cd3d3062c3..97baff015a 100644 --- a/sys/dev/netif/owi/if_wivar.h +++ b/sys/dev/netif/owi/if_wivar.h @@ -32,7 +32,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/wi/if_wivar.h,v 1.8.2.3 2002/08/02 07:11:34 imp Exp $ - * $DragonFly: src/sys/dev/netif/owi/Attic/if_wivar.h,v 1.2 2004/09/15 00:21:09 joerg Exp $ + * $DragonFly: src/sys/dev/netif/owi/Attic/if_wivar.h,v 1.3 2005/06/03 23:23:03 joerg Exp $ */ #define WICACHE /* turn on signal strength cache code */ @@ -174,7 +174,6 @@ struct wi_card_ident { */ #define le16toh(x) (x) #define htole16(x) (x) -#define ifaddr_byindex(idx) ifnet_addrs[(idx) - 1]; #define WI_LOCK(_sc, _s) s = splimp() #define WI_UNLOCK(_sc, _s) splx(s) #else diff --git a/sys/dev/netif/wi/if_wi.c b/sys/dev/netif/wi/if_wi.c index 31c472ca01..7502385755 100644 --- a/sys/dev/netif/wi/if_wi.c +++ b/sys/dev/netif/wi/if_wi.c @@ -32,7 +32,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/wi/if_wi.c,v 1.166 2004/04/01 00:38:45 sam Exp $ - * $DragonFly: src/sys/dev/netif/wi/if_wi.c,v 1.22 2005/05/25 01:44:32 dillon Exp $ + * $DragonFly: src/sys/dev/netif/wi/if_wi.c,v 1.23 2005/06/03 23:23:03 joerg Exp $ */ /* @@ -613,8 +613,6 @@ wi_init(void *arg) struct wi_joinreq join; int i; int error = 0, wasenabled; - struct ifaddr *ifa; - struct sockaddr_dl *sdl; WI_LOCK_DECL(); WI_LOCK(sc); @@ -674,9 +672,7 @@ wi_init(void *arg) ieee80211_chan2ieee(ic, ic->ic_ibss_chan)); wi_write_ssid(sc, WI_RID_OWN_SSID, ic->ic_des_essid, ic->ic_des_esslen); - ifa = ifaddr_byindex(ifp->if_index); - sdl = (struct sockaddr_dl *) ifa->ifa_addr; - IEEE80211_ADDR_COPY(ic->ic_myaddr, LLADDR(sdl)); + IEEE80211_ADDR_COPY(ic->ic_myaddr, IF_LLADDR(ifp)); wi_write_rid(sc, WI_RID_MAC_NODE, ic->ic_myaddr, IEEE80211_ADDR_LEN); wi_write_val(sc, WI_RID_PM_ENABLED, diff --git a/sys/dev/netif/wi/if_wivar.h b/sys/dev/netif/wi/if_wivar.h index 656acc4bf1..e353e07ee0 100644 --- a/sys/dev/netif/wi/if_wivar.h +++ b/sys/dev/netif/wi/if_wivar.h @@ -32,7 +32,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/wi/if_wivar.h,v 1.22 2004/04/01 00:38:45 sam Exp $ - * $DragonFly: src/sys/dev/netif/wi/if_wivar.h,v 1.5 2004/09/06 13:52:24 joerg Exp $ + * $DragonFly: src/sys/dev/netif/wi/if_wivar.h,v 1.6 2005/06/03 23:23:03 joerg Exp $ */ #if 0 @@ -214,7 +214,6 @@ struct wi_card_ident { /* * Various compat hacks/kludges */ -#define ifaddr_byindex(idx) ifnet_addrs[(idx) - 1]; #define WI_LOCK_DECL() int s #define WI_LOCK(_sc) s = splimp() #define WI_UNLOCK(_sc) splx(s) diff --git a/sys/net/ef/if_ef.c b/sys/net/ef/if_ef.c index c5f7d60f11..cf91ea8f23 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.16 2005/06/03 18:20:36 swildner Exp $ + * $DragonFly: src/sys/net/ef/if_ef.c,v 1.17 2005/06/03 23:23:03 joerg Exp $ */ #include "opt_inet.h" @@ -119,8 +119,6 @@ static int ef_attach(struct efnet *sc) { struct ifnet *ifp = (struct ifnet*)&sc->ef_ac.ac_if; - struct ifaddr *ifa; - struct sockaddr_dl *sdl; ifp->if_start = ef_start; ifp->if_watchdog = NULL; @@ -130,9 +128,7 @@ ef_attach(struct efnet *sc) /* * Attach the interface */ - ifa = ifnet_addrs[sc->ef_ifp->if_index]; - sdl = (struct sockaddr_dl *)ifa->ifa_addr; - ether_ifattach(ifp, LLADDR(sdl)); + ether_ifattach(ifp, IF_LLADDR(sc->ef_ifp)); ifp->if_resolvemulti = 0; ifp->if_type = IFT_XETHER; diff --git a/sys/net/if.c b/sys/net/if.c index 7e280bf420..741eab328a 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.36 2005/05/25 21:26:52 dillon Exp $ + * $DragonFly: src/sys/net/if.c,v 1.37 2005/06/03 23:23:03 joerg Exp $ */ #include "opt_compat.h" @@ -1719,10 +1719,7 @@ if_setlladdr(struct ifnet *ifp, const u_char *lladdr, int len) struct ifaddr *ifa; struct ifreq ifr; - ifa = ifnet_addrs[ifp->if_index - 1]; - if (ifa == NULL) - return (EINVAL); - sdl = (struct sockaddr_dl *)ifa->ifa_addr; + sdl = IF_LLSOCKADDR(ifp); if (sdl == NULL) return (EINVAL); if (len != sdl->sdl_alen) /* don't allow length to change */ diff --git a/sys/net/if_arcsubr.c b/sys/net/if_arcsubr.c index 2698df7d21..9a70873153 100644 --- a/sys/net/if_arcsubr.c +++ b/sys/net/if_arcsubr.c @@ -1,6 +1,6 @@ /* $NetBSD: if_arcsubr.c,v 1.36 2001/06/14 05:44:23 itojun Exp $ */ /* $FreeBSD: src/sys/net/if_arcsubr.c,v 1.1.2.5 2003/02/05 18:42:15 fjoe Exp $ */ -/* $DragonFly: src/sys/net/Attic/if_arcsubr.c,v 1.15 2005/02/17 13:59:36 joerg Exp $ */ +/* $DragonFly: src/sys/net/Attic/if_arcsubr.c,v 1.16 2005/06/03 23:23:03 joerg Exp $ */ /* * Copyright (c) 1994, 1995 Ignatios Souvatzis @@ -611,7 +611,6 @@ arc_ifattach(ifp, lla) struct ifnet *ifp; u_int8_t lla; { - struct ifaddr *ifa; struct sockaddr_dl *sdl; struct arccom *ac; @@ -626,13 +625,7 @@ arc_ifattach(ifp, lla) ifp->if_resolvemulti = arc_resolvemulti; if (ifp->if_baudrate == 0) ifp->if_baudrate = 2500000; -#if defined(__DragonFly__) || __FreeBSD_version < 500000 - ifa = ifnet_addrs[ifp->if_index - 1]; -#else - ifa = ifaddr_byindex(ifp->if_index); -#endif - KASSERT(ifa != NULL, ("%s: no lladdr!\n", __func__)); - sdl = (struct sockaddr_dl *)ifa->ifa_addr; + sdl = IF_LLSOCKADDR(ifp); sdl->sdl_type = IFT_ARCNET; sdl->sdl_alen = ifp->if_addrlen; diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c index f7f7a842e8..1aade03e59 100644 --- a/sys/net/if_ethersubr.c +++ b/sys/net/if_ethersubr.c @@ -32,7 +32,7 @@ * * @(#)if_ethersubr.c 8.1 (Berkeley) 6/10/93 * $FreeBSD: src/sys/net/if_ethersubr.c,v 1.70.2.33 2003/04/28 15:45:53 archie Exp $ - * $DragonFly: src/sys/net/if_ethersubr.c,v 1.30 2005/04/18 14:26:57 joerg Exp $ + * $DragonFly: src/sys/net/if_ethersubr.c,v 1.31 2005/06/03 23:23:03 joerg Exp $ */ #include "opt_atalk.h" @@ -804,7 +804,6 @@ ether_ifattach(struct ifnet *ifp, uint8_t *lla) void ether_ifattach_bpf(struct ifnet *ifp, uint8_t *lla, u_int dlt, u_int hdrlen) { - struct ifaddr *ifa; struct sockaddr_dl *sdl; ifp->if_type = IFT_ETHER; @@ -818,9 +817,7 @@ ether_ifattach_bpf(struct ifnet *ifp, uint8_t *lla, u_int dlt, u_int hdrlen) ifp->if_input = ether_input_internal; ifp->if_resolvemulti = ether_resolvemulti; ifp->if_broadcastaddr = etherbroadcastaddr; - ifa = ifnet_addrs[ifp->if_index - 1]; - KASSERT(ifa != NULL, ("%s: no lladdr!\n", __func__)); - sdl = (struct sockaddr_dl *)ifa->ifa_addr; + sdl = IF_LLSOCKADDR(ifp); sdl->sdl_type = IFT_ETHER; sdl->sdl_alen = ifp->if_addrlen; bcopy(lla, LLADDR(sdl), ifp->if_addrlen); diff --git a/sys/net/if_fddisubr.c b/sys/net/if_fddisubr.c index e44dc63c19..178e7258e3 100644 --- a/sys/net/if_fddisubr.c +++ b/sys/net/if_fddisubr.c @@ -34,7 +34,7 @@ * * from: if_ethersubr.c,v 1.5 1994/12/13 22:31:45 wollman Exp * $FreeBSD: src/sys/net/if_fddisubr.c,v 1.41.2.8 2002/02/20 23:34:09 fjoe Exp $ - * $DragonFly: src/sys/net/Attic/if_fddisubr.c,v 1.17 2005/05/08 18:11:02 joerg Exp $ + * $DragonFly: src/sys/net/Attic/if_fddisubr.c,v 1.18 2005/06/03 23:23:03 joerg Exp $ */ #include "opt_atalk.h" @@ -504,7 +504,6 @@ void fddi_ifattach(ifp) struct ifnet *ifp; { - struct ifaddr *ifa; struct sockaddr_dl *sdl; ifp->if_input = fddi_input; @@ -521,8 +520,7 @@ fddi_ifattach(ifp) #endif if_attach(ifp); #if defined(__DragonFly__) || defined(__FreeBSD__) - ifa = ifnet_addrs[ifp->if_index - 1]; - sdl = (struct sockaddr_dl *)ifa->ifa_addr; + sdl = IF_LLSOCKADDR(ifp); sdl->sdl_type = IFT_FDDI; sdl->sdl_alen = ifp->if_addrlen; bcopy(((struct arpcom *)ifp)->ac_enaddr, LLADDR(sdl), ifp->if_addrlen); diff --git a/sys/net/if_iso88025subr.c b/sys/net/if_iso88025subr.c index 002f75a4a9..038b593ac1 100644 --- a/sys/net/if_iso88025subr.c +++ b/sys/net/if_iso88025subr.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/net/if_iso88025subr.c,v 1.7.2.7 2002/06/18 00:15:31 kbyanc Exp $ - * $DragonFly: src/sys/net/Attic/if_iso88025subr.c,v 1.11 2005/01/06 09:14:13 hsu Exp $ + * $DragonFly: src/sys/net/Attic/if_iso88025subr.c,v 1.12 2005/06/03 23:23:03 joerg Exp $ * */ @@ -90,7 +90,6 @@ static void iso88025_input(struct ifnet *, struct mbuf *); void iso88025_ifattach(struct ifnet *ifp) { - struct ifaddr *ifa = NULL; struct sockaddr_dl *sdl; ifp->if_input = iso88025_input; @@ -104,12 +103,7 @@ iso88025_ifattach(struct ifnet *ifp) if (ifp->if_mtu == 0) ifp->if_mtu = ISO88025_DEFAULT_MTU; - ifa = ifnet_addrs[ifp->if_index - 1]; - if (ifa == NULL) { - printf("iso88025_ifattach: no lladdr!\n"); - return; - } - sdl = (struct sockaddr_dl *)ifa->ifa_addr; + sdl = IF_LLSOCKADDR(ifp); sdl->sdl_type = IFT_ISO88025; sdl->sdl_alen = ifp->if_addrlen; bcopy(((struct arpcom *)ifp)->ac_enaddr, LLADDR(sdl), ifp->if_addrlen); diff --git a/sys/net/if_var.h b/sys/net/if_var.h index 0cc9a18298..960f0a648c 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.27 2005/06/03 21:19:09 joerg Exp $ + * $DragonFly: src/sys/net/if_var.h,v 1.28 2005/06/03 23:23:03 joerg Exp $ */ #ifndef _NET_IF_VAR_H_ @@ -449,8 +449,9 @@ void if_clone_detach(struct if_clone *); int if_clone_create(char *, int); int if_clone_destroy(const char *); -#define IF_LLADDR(ifp) \ - LLADDR((struct sockaddr_dl *) ifnet_addrs[ifp->if_index - 1]->ifa_addr) +#define IF_LLSOCKADDR(ifp) \ + ((struct sockaddr_dl *) ifnet_addrs[(ifp)->if_index - 1]->ifa_addr) +#define IF_LLADDR(ifp) LLADDR(IF_LLSOCKADDR(ifp)) #ifdef DEVICE_POLLING typedef void poll_handler_t (struct ifnet *ifp, enum poll_cmd cmd, int count); diff --git a/sys/net/vlan/if_vlan.c b/sys/net/vlan/if_vlan.c index 1197e1f8d7..3a3474e2fe 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.14 2005/05/08 17:42:35 joerg Exp $ + * $DragonFly: src/sys/net/vlan/if_vlan.c,v 1.15 2005/06/03 23:23:03 joerg Exp $ */ /* @@ -458,7 +458,6 @@ vlan_input(struct ether_header *eh, struct mbuf *m) static int vlan_config(struct ifvlan *ifv, struct ifnet *p) { - struct ifaddr *ifa1, *ifa2; struct sockaddr_dl *sdl1, *sdl2; if (p->if_data.ifi_type != IFT_ETHER) @@ -482,10 +481,8 @@ vlan_config(struct ifvlan *ifv, struct ifnet *p) * Set up our ``Ethernet address'' to reflect the underlying * physical interface's. */ - ifa1 = ifnet_addrs[ifv->ifv_if.if_index - 1]; - ifa2 = ifnet_addrs[p->if_index - 1]; - sdl1 = (struct sockaddr_dl *)ifa1->ifa_addr; - sdl2 = (struct sockaddr_dl *)ifa2->ifa_addr; + sdl1 = IF_LLSOCKADDR(&ifv->ifv_if); + sdl2 = IF_LLSOCKADDR(p); sdl1->sdl_type = IFT_ETHER; sdl1->sdl_alen = ETHER_ADDR_LEN; bcopy(LLADDR(sdl2), LLADDR(sdl1), ETHER_ADDR_LEN); @@ -503,7 +500,6 @@ vlan_config(struct ifvlan *ifv, struct ifnet *p) static int vlan_unconfig(struct ifnet *ifp) { - struct ifaddr *ifa; struct sockaddr_dl *sdl; struct vlan_mc_entry *mc; struct ifvlan *ifv; @@ -544,8 +540,7 @@ vlan_unconfig(struct ifnet *ifp) ifv->ifv_if.if_mtu = ETHERMTU; /* Clear our MAC address. */ - ifa = ifnet_addrs[ifv->ifv_if.if_index - 1]; - sdl = (struct sockaddr_dl *)ifa->ifa_addr; + sdl = IF_LLSOCKADDR(&ifv->ifv_if); sdl->sdl_type = IFT_ETHER; sdl->sdl_alen = ETHER_ADDR_LEN; bzero(LLADDR(sdl), ETHER_ADDR_LEN); diff --git a/sys/netgraph/fec/ng_fec.c b/sys/netgraph/fec/ng_fec.c index ad3f2ec596..7de5569ab9 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.13 2005/06/02 22:11:45 swildner Exp $ + * $DragonFly: src/sys/netgraph/fec/ng_fec.c,v 1.14 2005/06/03 23:23:03 joerg Exp $ */ /* * Copyright (c) 1996-1999 Whistle Communications, Inc. @@ -399,8 +399,7 @@ ng_fec_addport(struct ng_fec_private *priv, char *iface) (char *)&new->fec_mac, ETHER_ADDR_LEN); /* Set up phony MAC address. */ - ifa = ifnet_addrs[bifp->if_index - 1]; - sdl = (struct sockaddr_dl *)ifa->ifa_addr; + sdl = IF_LLSOCKADDR(bifp); bcopy(priv->arpcom.ac_enaddr, ac->ac_enaddr, ETHER_ADDR_LEN); bcopy(priv->arpcom.ac_enaddr, LLADDR(sdl), ETHER_ADDR_LEN); @@ -417,7 +416,6 @@ ng_fec_delport(struct ng_fec_private *priv, char *iface) struct ng_fec_bundle *b; struct ifnet *ifp, *bifp; struct arpcom *ac; - struct ifaddr *ifa; struct sockaddr_dl *sdl; struct ng_fec_portlist *p; @@ -452,8 +450,7 @@ ng_fec_delport(struct ng_fec_private *priv, char *iface) /* Restore MAC address. */ ac = (struct arpcom *)bifp; - ifa = ifnet_addrs[bifp->if_index - 1]; - sdl = (struct sockaddr_dl *)ifa->ifa_addr; + sdl = IF_LLSOCKADDR(bifp); bcopy((char *)&p->fec_mac, ac->ac_enaddr, ETHER_ADDR_LEN); bcopy((char *)&p->fec_mac, LLADDR(sdl), ETHER_ADDR_LEN); diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c index eff0e41567..babda93176 100644 --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -82,7 +82,7 @@ * * @(#)ip_input.c 8.2 (Berkeley) 1/4/94 * $FreeBSD: src/sys/netinet/ip_input.c,v 1.130.2.52 2003/03/07 07:01:28 silby Exp $ - * $DragonFly: src/sys/netinet/ip_input.c,v 1.52 2005/06/02 23:52:42 dillon Exp $ + * $DragonFly: src/sys/netinet/ip_input.c,v 1.53 2005/06/03 23:23:03 joerg Exp $ */ #define _IP_VHL @@ -2229,8 +2229,7 @@ ip_savecontrol(struct inpcb *inp, struct mbuf **mp, struct ip *ip, if (((ifp = m->m_pkthdr.rcvif)) && ((ifp->if_index != 0) && (ifp->if_index <= if_index))) { - sdp = (struct sockaddr_dl *) - ifnet_addrs[ifp->if_index - 1]->ifa_addr; + sdp = IF_LLSOCKADDR(ifp); /* * Change our mind and don't try copy. */ diff --git a/sys/netproto/atm/atm_if.c b/sys/netproto/atm/atm_if.c index 9bcae49622..2a2776e40c 100644 --- a/sys/netproto/atm/atm_if.c +++ b/sys/netproto/atm/atm_if.c @@ -24,7 +24,7 @@ * notice must be reproduced on all copies. * * @(#) $FreeBSD: src/sys/netatm/atm_if.c,v 1.5 1999/08/28 00:48:35 peter Exp $ - * @(#) $DragonFly: src/sys/netproto/atm/atm_if.c,v 1.10 2005/06/02 22:37:45 dillon Exp $ + * @(#) $DragonFly: src/sys/netproto/atm/atm_if.c,v 1.11 2005/06/03 23:23:03 joerg Exp $ */ /* @@ -285,7 +285,6 @@ atm_physif_ioctl(code, data, arg) int count, len, buf_len = aip->air_buf_len; int err = 0; char ifname[2*IFNAMSIZ]; - struct ifaddr *ifa; struct in_ifaddr *ia; struct sockaddr_dl *sdl; @@ -523,15 +522,11 @@ atm_physif_ioctl(code, data, arg) * Set macaddr in address */ ifp->if_addrlen = 6; - ifa = ifnet_addrs[ifp->if_index - 1]; - if ( ifa ) { - sdl = (struct sockaddr_dl *) - ifa->ifa_addr; - sdl->sdl_type = IFT_ETHER; - sdl->sdl_alen = ifp->if_addrlen; - bcopy ( (caddr_t)&cup->cu_config.ac_macaddr, - LLADDR(sdl), ifp->if_addrlen ); - } + sdl = IF_LLSOCKADDR(ifp); + sdl->sdl_type = IFT_ETHER; + sdl->sdl_alen = ifp->if_addrlen; + bcopy ( (caddr_t)&cup->cu_config.ac_macaddr, + LLADDR(sdl), ifp->if_addrlen ); } break;