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);
 			}
 		}
 	}

Reply via email to