From 0fa4e4ac22c800e4d497d50504c891e37f62714a Mon Sep 17 00:00:00 2001 From: yongari Date: Wed, 13 Aug 2008 03:40:08 +0000 Subject: Fix VLAN hardware tag insertion/stripping on big-endian architectures. Reported by: naddy Tested on: sparc64 MFC after: 1 week --- sys/dev/re/if_re.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'sys') diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c index c845c74..5979439 100644 --- a/sys/dev/re/if_re.c +++ b/sys/dev/re/if_re.c @@ -1903,7 +1903,7 @@ re_rxeof(struct rl_softc *sc) maxpkt--; if (rxvlan & RL_RDESC_VLANCTL_TAG) { m->m_pkthdr.ether_vtag = - ntohs((rxvlan & RL_RDESC_VLANCTL_DATA)); + bswap16((rxvlan & RL_RDESC_VLANCTL_DATA)); m->m_flags |= M_VLANTAG; } RL_UNLOCK(sc); @@ -2307,7 +2307,7 @@ re_encap(struct rl_softc *sc, struct mbuf **m_head) * transmission attempt. */ if ((*m_head)->m_flags & M_VLANTAG) - vlanctl |= htons((*m_head)->m_pkthdr.ether_vtag) | + vlanctl |= bswap16((*m_head)->m_pkthdr.ether_vtag) | RL_TDESC_VLANCTL_TAG; si = prod; -- cgit v1.1