summaryrefslogtreecommitdiff
path: root/sys/dev/firewire
diff options
context:
space:
mode:
authorHidetoshi Shimokawa <simokawa@FreeBSD.org>2004-07-20 04:33:08 +0000
committerHidetoshi Shimokawa <simokawa@FreeBSD.org>2004-07-20 04:33:08 +0000
commitce6dc61f26b9e2fbc7a98f39b3cc5d0070ffa0cf (patch)
tree6d46983a8a099260f1fbafcbf1a2dd682e9cf1df /sys/dev/firewire
parent8351d731167835ab721f2d0ffb4890c92cad32c0 (diff)
Notes
Diffstat (limited to 'sys/dev/firewire')
-rw-r--r--sys/dev/firewire/if_fwe.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/dev/firewire/if_fwe.c b/sys/dev/firewire/if_fwe.c
index cc52d2bea6c7..d3c828de4791 100644
--- a/sys/dev/firewire/if_fwe.c
+++ b/sys/dev/firewire/if_fwe.c
@@ -209,7 +209,9 @@ fwe_attach(device_t dev)
ifp->if_name = "fwe";
#endif
ifp->if_init = fwe_init;
+#if defined(__DragonFly__) || __FreeBSD_version < 500000
ifp->if_output = ether_output;
+#endif
ifp->if_start = fwe_start;
ifp->if_ioctl = fwe_ioctl;
ifp->if_mtu = ETHERMTU;
@@ -228,6 +230,7 @@ fwe_attach(device_t dev)
ifp->if_data.ifi_hdrlen = sizeof(struct ether_vlan_header);
#if defined(__FreeBSD__) && __FreeBSD_version >= 500000
ifp->if_capabilities |= IFCAP_VLAN_MTU;
+ ifp->if_capenable |= IFCAP_VLAN_MTU;
#endif
@@ -549,7 +552,7 @@ fwe_as_output(struct fwe_softc *fwe, struct ifnet *ifp)
/* keep ip packet alignment for alpha */
M_PREPEND(m, ETHER_ALIGN, M_DONTWAIT);
fp = &xfer->send.hdr;
- *(u_int32_t *)&xfer->send.hdr = *(int32_t *)&fwe->pkt_hdr;
+ *(uint32_t *)&xfer->send.hdr = *(int32_t *)&fwe->pkt_hdr;
fp->mode.stream.len = m->m_pkthdr.len;
xfer->mbuf = m;
xfer->send.pay_len = m->m_pkthdr.len;
@@ -618,9 +621,11 @@ fwe_as_input(struct fw_xferq *xferq)
#if defined(__DragonFly__) || __FreeBSD_version < 500000
eh = (struct ether_header *)c;
m->m_data += sizeof(struct ether_header);
+ m->m_len = m->m_pkthdr.len = fp->mode.stream.len - ETHER_ALIGN
+ - sizeof(struct ether_header);
+#else
+ m->m_len = m->m_pkthdr.len = fp->mode.stream.len - ETHER_ALIGN;
#endif
- m->m_len = m->m_pkthdr.len =
- fp->mode.stream.len - ETHER_ALIGN;
m->m_pkthdr.rcvif = ifp;
#if 0
FWEDEBUG(ifp, "%02x %02x %02x %02x %02x %02x\n"