Date: Fri, 13 Jan 2006 20:05:52 +0300 From: Gleb Smirnoff <glebius@FreeBSD.org> To: arch@FreeBSD.org, re@FreeBSD.org Subject: review: patch to restore VLAN kernel API in RELENG_6 Message-ID: <20060113170552.GF83922@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
--Bn2rw/3z4jIqBvZU Content-Type: text/plain; charset=koi8-r Content-Disposition: inline -- Totus tuus, Glebius. GLEBIUS-RIPN GLEB-RIPE --Bn2rw/3z4jIqBvZU Content-Type: text/plain; charset=koi8-r Content-Disposition: attachment; filename="VLAN_INPUT_TAG_NEW.diff" ? sys/dev/bge/if_bge.cbak ? sys/dev/em/if_em.cbak ? sys/dev/ixgb/if_ixgb.cbak ? sys/dev/nge/if_nge.cbak ? sys/dev/re/if_re.cbak ? sys/dev/txp/if_txp.cbak ? sys/dev/vge/if_vge.cbak ? sys/net80211/ieee80211_input.cbak Index: sys/dev/bge/if_bge.c =================================================================== RCS file: /home/ncvs/src/sys/dev/bge/if_bge.c,v retrieving revision 1.91.2.7 diff -u -r1.91.2.7 if_bge.c --- sys/dev/bge/if_bge.c 13 Jan 2006 11:51:08 -0000 1.91.2.7 +++ sys/dev/bge/if_bge.c 13 Jan 2006 17:04:31 -0000 @@ -2862,7 +2862,7 @@ * attach that information to the packet. */ if (have_tag) { - VLAN_INPUT_TAG(ifp, m, vlan_tag); + VLAN_INPUT_TAG_NEW(ifp, m, vlan_tag); if (m == NULL) continue; } Index: sys/dev/em/if_em.c =================================================================== RCS file: /home/ncvs/src/sys/dev/em/if_em.c,v retrieving revision 1.65.2.11 diff -u -r1.65.2.11 if_em.c --- sys/dev/em/if_em.c 13 Jan 2006 11:51:09 -0000 1.65.2.11 +++ sys/dev/em/if_em.c 13 Jan 2006 17:04:32 -0000 @@ -3015,7 +3015,7 @@ em_receive_checksum(adapter, current_desc, adapter->fmp); if (current_desc->status & E1000_RXD_STAT_VP) - VLAN_INPUT_TAG(ifp, adapter->fmp, + VLAN_INPUT_TAG_NEW(ifp, adapter->fmp, (le16toh(current_desc->special) & E1000_RXD_SPC_VLAN_MASK)); m = adapter->fmp; Index: sys/dev/ixgb/if_ixgb.c =================================================================== RCS file: /home/ncvs/src/sys/dev/ixgb/if_ixgb.c,v retrieving revision 1.10.2.5 diff -u -r1.10.2.5 if_ixgb.c --- sys/dev/ixgb/if_ixgb.c 13 Jan 2006 11:51:09 -0000 1.10.2.5 +++ sys/dev/ixgb/if_ixgb.c 13 Jan 2006 17:04:32 -0000 @@ -2143,7 +2143,7 @@ adapter->fmp); if (current_desc->status & IXGB_RX_DESC_STATUS_VP) - VLAN_INPUT_TAG(eh, adapter->fmp, + VLAN_INPUT_TAG_NEW(eh, adapter->fmp, current_desc->special); else ether_input(ifp, eh, adapter->fmp); @@ -2151,7 +2151,7 @@ ixgb_receive_checksum(adapter, current_desc, adapter->fmp); if (current_desc->status & IXGB_RX_DESC_STATUS_VP) - VLAN_INPUT_TAG(ifp, adapter->fmp, + VLAN_INPUT_TAG_NEW(ifp, adapter->fmp, current_desc->special); if (adapter->fmp != NULL) { Index: sys/dev/nge/if_nge.c =================================================================== RCS file: /home/ncvs/src/sys/dev/nge/if_nge.c,v retrieving revision 1.75.2.5 diff -u -r1.75.2.5 if_nge.c --- sys/dev/nge/if_nge.c 13 Jan 2006 11:51:10 -0000 1.75.2.5 +++ sys/dev/nge/if_nge.c 13 Jan 2006 17:04:32 -0000 @@ -1228,7 +1228,7 @@ * to vlan_input() instead of ether_input(). */ if (extsts & NGE_RXEXTSTS_VLANPKT) { - VLAN_INPUT_TAG(ifp, m, + VLAN_INPUT_TAG_NEW(ifp, m, ntohs(extsts & NGE_RXEXTSTS_VTCI)); if (m == NULL) continue; Index: sys/dev/re/if_re.c =================================================================== RCS file: /home/ncvs/src/sys/dev/re/if_re.c,v retrieving revision 1.46.2.11 diff -u -r1.46.2.11 if_re.c --- sys/dev/re/if_re.c 13 Jan 2006 11:51:10 -0000 1.46.2.11 +++ sys/dev/re/if_re.c 13 Jan 2006 17:04:33 -0000 @@ -1671,7 +1671,7 @@ } if (rxvlan & RL_RDESC_VLANCTL_TAG) { - VLAN_INPUT_TAG(ifp, m, + VLAN_INPUT_TAG_NEW(ifp, m, ntohs((rxvlan & RL_RDESC_VLANCTL_DATA))); if (m == NULL) continue; Index: sys/dev/txp/if_txp.c =================================================================== RCS file: /home/ncvs/src/sys/dev/txp/if_txp.c,v retrieving revision 1.31.2.4 diff -u -r1.31.2.4 if_txp.c --- sys/dev/txp/if_txp.c 13 Jan 2006 11:51:10 -0000 1.31.2.4 +++ sys/dev/txp/if_txp.c 13 Jan 2006 17:04:33 -0000 @@ -766,7 +766,7 @@ } if (rxd->rx_stat & RX_STAT_VLAN) { - VLAN_INPUT_TAG(ifp, m, htons(rxd->rx_vlan >> 16)); + VLAN_INPUT_TAG_NEW(ifp, m, htons(rxd->rx_vlan >> 16)); if (m == NULL) goto next; } Index: sys/dev/vge/if_vge.c =================================================================== RCS file: /home/ncvs/src/sys/dev/vge/if_vge.c,v retrieving revision 1.14.2.5 diff -u -r1.14.2.5 if_vge.c --- sys/dev/vge/if_vge.c 13 Jan 2006 11:51:10 -0000 1.14.2.5 +++ sys/dev/vge/if_vge.c 13 Jan 2006 17:04:33 -0000 @@ -1491,7 +1491,7 @@ } if (rxstat & VGE_RDSTS_VTAG) { - VLAN_INPUT_TAG(ifp, m, + VLAN_INPUT_TAG_NEW(ifp, m, ntohs((rxctl & VGE_RDCTL_VLANID))); if (m == NULL) continue; Index: sys/net/if_vlan_var.h =================================================================== RCS file: /home/ncvs/src/sys/net/if_vlan_var.h,v retrieving revision 1.21.2.1 diff -u -r1.21.2.1 if_vlan_var.h --- sys/net/if_vlan_var.h 13 Jan 2006 11:51:11 -0000 1.21.2.1 +++ sys/net/if_vlan_var.h 13 Jan 2006 17:04:33 -0000 @@ -102,7 +102,28 @@ */ #define VLAN_TAG_VALUE(_mt) (*(u_int *)((_mt) + 1)) -#define VLAN_INPUT_TAG(_ifp, _m, _t) do { \ +/* + * This macro is kept for API compatibility. + */ +#define VLAN_INPUT_TAG(_ifp, _m, _t, _errcase) do { \ + struct m_tag *mtag; \ + mtag = m_tag_alloc(MTAG_VLAN, MTAG_VLAN_TAG, \ + sizeof (u_int), M_NOWAIT); \ + if (mtag != NULL) { \ + VLAN_TAG_VALUE(mtag) = (_t); \ + m_tag_prepend((_m), mtag); \ + (_m)->m_flags |= M_VLANTAG; \ + } else { \ + (_ifp)->if_ierrors++; \ + m_freem(_m); \ + _errcase; \ + } \ +} while (0) + +/* + * This macro is equal to VLAN_INPUT_TAG() in HEAD. + */ +#define VLAN_INPUT_TAG_NEW(_ifp, _m, _t) do { \ struct m_tag *mtag; \ mtag = m_tag_alloc(MTAG_VLAN, MTAG_VLAN_TAG, \ sizeof (u_int), M_NOWAIT); \ Index: sys/net80211/ieee80211_input.c =================================================================== RCS file: /home/ncvs/src/sys/net80211/ieee80211_input.c,v retrieving revision 1.62.2.6 diff -u -r1.62.2.6 ieee80211_input.c --- sys/net80211/ieee80211_input.c 13 Jan 2006 11:51:11 -0000 1.62.2.6 +++ sys/net80211/ieee80211_input.c 13 Jan 2006 17:04:34 -0000 @@ -710,7 +710,7 @@ if (m != NULL) { if (ni->ni_vlan != 0) { /* attach vlan tag */ - VLAN_INPUT_TAG(ifp, m, ni->ni_vlan); + VLAN_INPUT_TAG_NEW(ifp, m, ni->ni_vlan); if (m == NULL) goto out; /* XXX goto err? */ } --Bn2rw/3z4jIqBvZU--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060113170552.GF83922>