summaryrefslogtreecommitdiff
path: root/sys/net/if_loop.c
diff options
context:
space:
mode:
authorDoug Rabson <dfr@FreeBSD.org>1998-07-12 16:46:52 +0000
committerDoug Rabson <dfr@FreeBSD.org>1998-07-12 16:46:52 +0000
commit3a43ad8f22812b286809338032573ba3e1ecd923 (patch)
tree08a6bab4886a3de85bd6d166edd1f2b5f9943bcc /sys/net/if_loop.c
parent7a6c46b55a2b3bbf477242dbe036dfb0dc0474a0 (diff)
Notes
Diffstat (limited to 'sys/net/if_loop.c')
-rw-r--r--sys/net/if_loop.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/sys/net/if_loop.c b/sys/net/if_loop.c
index be6d25cc7985..eef3615a052d 100644
--- a/sys/net/if_loop.c
+++ b/sys/net/if_loop.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)if_loop.c 8.1 (Berkeley) 6/10/93
- * $Id: if_loop.c,v 1.35 1998/06/14 20:58:15 julian Exp $
+ * $Id: if_loop.c,v 1.36 1998/06/14 23:53:43 julian Exp $
*/
/*
@@ -216,8 +216,19 @@ if_simloop(ifp, m, dst, hlen)
#endif
/* Strip away media header */
- if (hlen > 0)
+ if (hlen > 0) {
+#ifdef __alpha__
+ /* The alpha doesn't like unaligned data.
+ * We move data down in the first mbuf */
+ if (hlen & 3) {
+ bcopy(m->m_data + hlen, m->m_data, m->m_len - hlen);
+ m->m_len -= hlen;
+ if (m->m_flags & M_PKTHDR)
+ m->m_pkthdr.len -= hlen;
+ } else
+#endif
m_adj(m, hlen);
+ }
switch (dst->sa_family) {
#ifdef INET