summaryrefslogtreecommitdiffstats
path: root/sys/pci
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2001-02-06 10:12:15 +0000
committerphk <phk@FreeBSD.org>2001-02-06 10:12:15 +0000
commitd214ae21714540c7d954bd861ed084fb157abeb9 (patch)
tree7c665d67872a65310572d737c33defbe1a63008e /sys/pci
parent43450ced687857ec4a35796cfed2820c891c103d (diff)
downloadFreeBSD-src-d214ae21714540c7d954bd861ed084fb157abeb9.zip
FreeBSD-src-d214ae21714540c7d954bd861ed084fb157abeb9.tar.gz
Convert if_multiaddrs from LIST to TAILQ so that it can be traversed
backwards in the three drivers which want to do that. Reviewed by: mikeh
Diffstat (limited to 'sys/pci')
-rw-r--r--sys/pci/if_dc.c8
-rw-r--r--sys/pci/if_de.c6
-rw-r--r--sys/pci/if_fxp.c2
-rw-r--r--sys/pci/if_pcn.c2
-rw-r--r--sys/pci/if_rl.c2
-rw-r--r--sys/pci/if_sf.c9
-rw-r--r--sys/pci/if_sis.c4
-rw-r--r--sys/pci/if_sk.c9
-rw-r--r--sys/pci/if_ste.c2
-rw-r--r--sys/pci/if_ti.c2
-rw-r--r--sys/pci/if_tl.c9
-rw-r--r--sys/pci/if_vr.c2
-rw-r--r--sys/pci/if_wb.c2
-rw-r--r--sys/pci/if_wx.c2
-rw-r--r--sys/pci/if_xl.c4
15 files changed, 22 insertions, 43 deletions
diff --git a/sys/pci/if_dc.c b/sys/pci/if_dc.c
index f66e65d..7e57dae 100644
--- a/sys/pci/if_dc.c
+++ b/sys/pci/if_dc.c
@@ -1051,7 +1051,7 @@ void dc_setfilt_21143(sc)
else
DC_CLRBIT(sc, DC_NETCFG, DC_NETCFG_RX_ALLMULTI);
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
h = dc_crc_le(sc,
@@ -1122,7 +1122,7 @@ void dc_setfilt_admtek(sc)
return;
/* now program new ones */
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
h = dc_crc_be(LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
@@ -1190,7 +1190,7 @@ void dc_setfilt_asix(sc)
return;
/* now program new ones */
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
h = dc_crc_be(LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
@@ -1244,7 +1244,7 @@ void dc_setfilt_xircom(sc)
else
DC_CLRBIT(sc, DC_NETCFG, DC_NETCFG_RX_ALLMULTI);
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
h = dc_crc_le(sc,
diff --git a/sys/pci/if_de.c b/sys/pci/if_de.c
index 714947b..4f41a34 100644
--- a/sys/pci/if_de.c
+++ b/sys/pci/if_de.c
@@ -3012,7 +3012,7 @@ tulip_addr_filter(
#endif
multicnt = 0;
- LIST_FOREACH(ifma, &sc->tulip_if.if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &sc->tulip_if.if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family == AF_LINK)
multicnt++;
@@ -3040,7 +3040,7 @@ tulip_addr_filter(
*/
bzero(sc->tulip_setupdata, sizeof(sc->tulip_setupdata));
- LIST_FOREACH(ifma, &sc->tulip_if.if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &sc->tulip_if.if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
@@ -3090,7 +3090,7 @@ tulip_addr_filter(
/*
* Else can get perfect filtering for 16 addresses.
*/
- LIST_FOREACH(ifma, &sc->tulip_if.if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &sc->tulip_if.if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
addrp = LLADDR((struct sockaddr_dl *)ifma->ifma_addr);
diff --git a/sys/pci/if_fxp.c b/sys/pci/if_fxp.c
index 0149221..8cc34ff 100644
--- a/sys/pci/if_fxp.c
+++ b/sys/pci/if_fxp.c
@@ -1907,7 +1907,7 @@ fxp_mc_setup(sc)
nmcasts = 0;
if (!sc->all_mcasts) {
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
if (nmcasts >= MAXMCADDR) {
diff --git a/sys/pci/if_pcn.c b/sys/pci/if_pcn.c
index 0da955b..395a5ff 100644
--- a/sys/pci/if_pcn.c
+++ b/sys/pci/if_pcn.c
@@ -343,7 +343,7 @@ static void pcn_setmulti(sc)
pcn_csr_write(sc, PCN_CSR_MAR0 + i, 0);
/* now program new ones */
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
h = pcn_crc(LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
diff --git a/sys/pci/if_rl.c b/sys/pci/if_rl.c
index d3a51ac..850d995 100644
--- a/sys/pci/if_rl.c
+++ b/sys/pci/if_rl.c
@@ -719,7 +719,7 @@ static void rl_setmulti(sc)
CSR_WRITE_4(sc, RL_MAR4, 0);
/* now program new ones */
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
h = rl_calchash(LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
diff --git a/sys/pci/if_sf.c b/sys/pci/if_sf.c
index fbaac99..2e1cacf 100644
--- a/sys/pci/if_sf.c
+++ b/sys/pci/if_sf.c
@@ -448,14 +448,7 @@ static void sf_setmulti(sc)
SF_SETBIT(sc, SF_RXFILT, SF_RXFILT_ALLMULTI);
} else {
i = 1;
- /* First find the tail of the list. */
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
- if (LIST_NEXT(ifma, ifma_link) == NULL)
- break;
- }
- /* Now traverse the list backwards. */
- for (; ifma != NULL && ifma != (void *)&ifp->if_multiaddrs;
- ifma = (struct ifmultiaddr *)ifma->ifma_link.le_prev) {
+ TAILQ_FOREACH_REVERSE(ifma, &ifp->if_multiaddrs, ifmultihead, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
/*
diff --git a/sys/pci/if_sis.c b/sys/pci/if_sis.c
index 32ed486..ce4b097 100644
--- a/sys/pci/if_sis.c
+++ b/sys/pci/if_sis.c
@@ -521,7 +521,7 @@ static void sis_setmulti_ns(sc)
CSR_WRITE_4(sc, SIS_RXFILT_DATA, 0);
}
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
h = sis_crc(sc, LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
@@ -563,7 +563,7 @@ static void sis_setmulti_sis(sc)
}
/* now program new ones */
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
h = sis_crc(sc, LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
diff --git a/sys/pci/if_sk.c b/sys/pci/if_sk.c
index a6dba79..960b98b 100644
--- a/sys/pci/if_sk.c
+++ b/sys/pci/if_sk.c
@@ -557,14 +557,7 @@ static void sk_setmulti(sc_if)
hashes[1] = 0xFFFFFFFF;
} else {
i = 1;
- /* First find the tail of the list. */
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
- if (LIST_NEXT(ifma, ifma_link) == NULL)
- break;
- }
- /* Now traverse the list backwards. */
- for (; ifma != NULL && ifma != (void *)&ifp->if_multiaddrs;
- ifma = (struct ifmultiaddr *)ifma->ifma_link.le_prev) {
+ TAILQ_FOREACH_REVERSE(ifma, &ifp->if_multiaddrs, ifmultihead, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
/*
diff --git a/sys/pci/if_ste.c b/sys/pci/if_ste.c
index 8a14d01..ef7b2f6 100644
--- a/sys/pci/if_ste.c
+++ b/sys/pci/if_ste.c
@@ -587,7 +587,7 @@ static void ste_setmulti(sc)
CSR_WRITE_4(sc, STE_MAR1, 0);
/* now program new ones */
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
h = ste_calchash(LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
diff --git a/sys/pci/if_ti.c b/sys/pci/if_ti.c
index 1d52547..b13f1ba 100644
--- a/sys/pci/if_ti.c
+++ b/sys/pci/if_ti.c
@@ -1081,7 +1081,7 @@ static void ti_setmulti(sc)
}
/* Now program new ones. */
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
mc = malloc(sizeof(struct ti_mc_entry), M_DEVBUF, M_NOWAIT);
diff --git a/sys/pci/if_tl.c b/sys/pci/if_tl.c
index eaa3f058..718498a 100644
--- a/sys/pci/if_tl.c
+++ b/sys/pci/if_tl.c
@@ -952,14 +952,7 @@ static void tl_setmulti(sc)
hashes[1] = 0xFFFFFFFF;
} else {
i = 1;
- /* First find the tail of the list. */
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
- if (LIST_NEXT(ifma, ifma_link) == NULL)
- break;
- }
- /* Now traverse the list backwards. */
- for (; ifma != NULL && ifma != (void *)&ifp->if_multiaddrs;
- ifma = (struct ifmultiaddr *)ifma->ifma_link.le_prev) {
+ TAILQ_FOREACH_REVERSE(ifma, &ifp->if_multiaddrs, ifmultihead, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
/*
diff --git a/sys/pci/if_vr.c b/sys/pci/if_vr.c
index 8ea9944..0f44a1d 100644
--- a/sys/pci/if_vr.c
+++ b/sys/pci/if_vr.c
@@ -530,7 +530,7 @@ static void vr_setmulti(sc)
CSR_WRITE_4(sc, VR_MAR1, 0);
/* now program new ones */
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
h = vr_calchash(LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
diff --git a/sys/pci/if_wb.c b/sys/pci/if_wb.c
index 67e0b57..f79be10 100644
--- a/sys/pci/if_wb.c
+++ b/sys/pci/if_wb.c
@@ -641,7 +641,7 @@ static void wb_setmulti(sc)
CSR_WRITE_4(sc, WB_MAR1, 0);
/* now program new ones */
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
h = wb_calchash(LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
diff --git a/sys/pci/if_wx.c b/sys/pci/if_wx.c
index 1316093..b455618 100644
--- a/sys/pci/if_wx.c
+++ b/sys/pci/if_wx.c
@@ -518,7 +518,7 @@ wx_mc_setup(sc)
}
sc->wx_nmca = 0;
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK) {
continue;
}
diff --git a/sys/pci/if_xl.c b/sys/pci/if_xl.c
index 1fc62b3..0fcaf8b 100644
--- a/sys/pci/if_xl.c
+++ b/sys/pci/if_xl.c
@@ -808,7 +808,7 @@ static void xl_setmulti(sc)
return;
}
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link)
+ TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link)
mcnt++;
if (mcnt)
@@ -851,7 +851,7 @@ static void xl_setmulti_hash(sc)
CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_RX_SET_HASH|i);
/* now program new ones */
- LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
+ TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
h = xl_calchash(LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
OpenPOWER on IntegriCloud