summaryrefslogtreecommitdiffstats
path: root/sys/netatalk/ddp_output.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2007-11-20 18:50:54 +0000
committerrwatson <rwatson@FreeBSD.org>2007-11-20 18:50:54 +0000
commit2fce7b68b16a49f313efe92dbb2a070ea971ae94 (patch)
treea0ef35884440294d7523a1008ed3effea3517195 /sys/netatalk/ddp_output.c
parent261a3b571debe7c65897926607e60df262479274 (diff)
downloadFreeBSD-src-2fce7b68b16a49f313efe92dbb2a070ea971ae94.zip
FreeBSD-src-2fce7b68b16a49f313efe92dbb2a070ea971ae94.tar.gz
Annotate two possible bugs in a comment: (1) we allocate and explicitly
prepend a data mbuf in front of a header mbuf without moving the header to the new mbuf, and (2) a possible alignment problem on architectures with strict alignment as reported in kern/4184. PR: kern/4184 (1)
Diffstat (limited to 'sys/netatalk/ddp_output.c')
-rw-r--r--sys/netatalk/ddp_output.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/netatalk/ddp_output.c b/sys/netatalk/ddp_output.c
index bc85fcb..9581094 100644
--- a/sys/netatalk/ddp_output.c
+++ b/sys/netatalk/ddp_output.c
@@ -191,6 +191,14 @@ ddp_route(struct mbuf *m, struct route *ro)
* mbuf without ensuring that the mbuf pointer is aligned. This is
* bad for transition routing, since phase 1 and phase 2 packets end
* up poorly aligned due to the three byte elap header.
+ *
+ * XXXRW: kern/4184 suggests that an m_pullup() of (m) should take
+ * place here to address possible alignment issues.
+ *
+ * XXXRW: This appears not to handle M_PKTHDR properly, as it doesn't
+ * move the existing header from the old packet to the new one.
+ * Posibly should call M_MOVE_PKTHDR()? This would also allow
+ * removing mac_mbuf_copy().
*/
if (!(aa->aa_flags & AFA_PHASE2)) {
MGET(m0, M_DONTWAIT, MT_DATA);
OpenPOWER on IntegriCloud