Module Name: src
Committed By: ozaki-r
Date: Wed Dec 16 05:44:59 UTC 2015
Modified Files:
src/sys/net: if_token.h if_tokensubr.c
src/sys/netinet: if_arp.c
Log Message:
Fix token_rif extractions from llentry
To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/sys/net/if_token.h
cvs rdiff -u -r1.71 -r1.72 src/sys/net/if_tokensubr.c
cvs rdiff -u -r1.196 -r1.197 src/sys/netinet/if_arp.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/net/if_token.h
diff -u src/sys/net/if_token.h:1.16 src/sys/net/if_token.h:1.17
--- src/sys/net/if_token.h:1.16 Wed Feb 20 17:05:53 2008
+++ src/sys/net/if_token.h Wed Dec 16 05:44:59 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: if_token.h,v 1.16 2008/02/20 17:05:53 matt Exp $ */
+/* $NetBSD: if_token.h,v 1.17 2015/12/16 05:44:59 ozaki-r Exp $ */
/*
* Copyright (c) 1982, 1986, 1993
@@ -95,11 +95,13 @@ struct token_rif {
#define ISO88025_MTU 2002
/*
- * This assumes that route information fields are appended to
- * existing structures like llinfo_arp and token_header
+ * This assumes that route information fields are appended to token_header.
*/
#define TOKEN_RIF(x) ((struct token_rif *) ((x) + 1))
+#define TOKEN_RIF_LLE(lle) ((struct token_rif *) (lle)->la_opaque)
+#define TOKEN_RIF_LLE_ASSERT(lle) KASSERT((lle)->la_opaque != NULL)
+
/*
* This is a kludge to get at the token ring mac header and the source route
* information after m_adj() has been used on the mbuf.
Index: src/sys/net/if_tokensubr.c
diff -u src/sys/net/if_tokensubr.c:1.71 src/sys/net/if_tokensubr.c:1.72
--- src/sys/net/if_tokensubr.c:1.71 Mon Aug 31 08:05:20 2015
+++ src/sys/net/if_tokensubr.c Wed Dec 16 05:44:59 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: if_tokensubr.c,v 1.71 2015/08/31 08:05:20 ozaki-r Exp $ */
+/* $NetBSD: if_tokensubr.c,v 1.72 2015/12/16 05:44:59 ozaki-r Exp $ */
/*
* Copyright (c) 1982, 1989, 1993
@@ -92,7 +92,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_tokensubr.c,v 1.71 2015/08/31 08:05:20 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_tokensubr.c,v 1.72 2015/12/16 05:44:59 ozaki-r Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -223,8 +223,8 @@ token_output(struct ifnet *ifp0, struct
return (0); /* if not yet resolved */
la = rt->rt_llinfo;
KASSERT(la != NULL);
- KASSERT(la->la_opaque != NULL);
- rif = la->la_opaque;
+ TOKEN_RIF_LLE_ASSERT(la);
+ rif = TOKEN_RIF_LLE(la);
riflen = (ntohs(rif->tr_rcf) & TOKEN_RCF_LEN_MASK) >> 8;
}
/* If broadcasting on a simplex interface, loopback a copy. */
Index: src/sys/netinet/if_arp.c
diff -u src/sys/netinet/if_arp.c:1.196 src/sys/netinet/if_arp.c:1.197
--- src/sys/netinet/if_arp.c:1.196 Fri Dec 11 01:15:00 2015
+++ src/sys/netinet/if_arp.c Wed Dec 16 05:44:59 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: if_arp.c,v 1.196 2015/12/11 01:15:00 ozaki-r Exp $ */
+/* $NetBSD: if_arp.c,v 1.197 2015/12/16 05:44:59 ozaki-r Exp $ */
/*-
* Copyright (c) 1998, 2000, 2008 The NetBSD Foundation, Inc.
@@ -68,7 +68,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_arp.c,v 1.196 2015/12/11 01:15:00 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_arp.c,v 1.197 2015/12/16 05:44:59 ozaki-r Exp $");
#ifdef _KERNEL_OPT
#include "opt_ddb.h"
@@ -1336,7 +1336,7 @@ in_arpinput(struct mbuf *m)
(riflen & 1) == 0) {
rif->tr_rcf ^= htons(TOKEN_RCF_DIRECTION);
rif->tr_rcf &= htons(~TOKEN_RCF_BROADCAST_MASK);
- memcpy(TOKEN_RIF(la), rif, riflen);
+ memcpy(TOKEN_RIF_LLE(la), rif, riflen);
}
}
}