Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/dev/qbus/if_dmc.c,v rcsdiff: /ftp/cvs/cvsroot/src/sys/dev/qbus/if_dmc.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.23.4.2 retrieving revision 1.23.4.3 diff -u -p -r1.23.4.2 -r1.23.4.3 --- src/sys/dev/qbus/if_dmc.c 2016/07/09 20:25:15 1.23.4.2 +++ src/sys/dev/qbus/if_dmc.c 2016/10/05 20:55:56 1.23.4.3 @@ -1,4 +1,4 @@ -/* $NetBSD: if_dmc.c,v 1.23.4.2 2016/07/09 20:25:15 skrll Exp $ */ +/* $NetBSD: if_dmc.c,v 1.23.4.3 2016/10/05 20:55:56 skrll Exp $ */ /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. @@ -41,7 +41,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: if_dmc.c,v 1.23.4.2 2016/07/09 20:25:15 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_dmc.c,v 1.23.4.3 2016/10/05 20:55:56 skrll Exp $"); #undef DMCDEBUG /* for base table dump on fatal error */ @@ -313,9 +313,12 @@ dmcinit(struct ifnet *ifp) * Check to see that an address has been set * (both local and destination for an address family). */ - IFADDR_READER_FOREACH(ifa, ifp) + s = pserialize_read_enter(); + IFADDR_READER_FOREACH(ifa, ifp) { if (ifa->ifa_addr->sa_family && ifa->ifa_dstaddr->sa_family) break; + } + pserialize_read_exit(s); if (ifa == NULL) return 0;