Module Name:    src
Committed By:   uebayasi
Date:           Sat Oct 11 09:27:51 UTC 2014

Modified Files:
        src/usr.bin/config: sem.c

Log Message:
Don't conplain devclass redifition to the same value; it can happen while
resolving dependency.


To generate a diff of this commit:
cvs rdiff -u -r1.58 -r1.59 src/usr.bin/config/sem.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/config/sem.c
diff -u src/usr.bin/config/sem.c:1.58 src/usr.bin/config/sem.c:1.59
--- src/usr.bin/config/sem.c:1.58	Sat Oct 11 09:06:29 2014
+++ src/usr.bin/config/sem.c	Sat Oct 11 09:27:51 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: sem.c,v 1.58 2014/10/11 09:06:29 uebayasi Exp $	*/
+/*	$NetBSD: sem.c,v 1.59 2014/10/11 09:27:51 uebayasi Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -174,15 +174,17 @@ fixdev(struct devbase *dev)
 			CFGDBG(3, "device `%s' has iattr `%s'", dev->d_name,
 			    a->a_name);
 		} else if (a->a_devclass != NULL) {
-			if (dev->d_classattr != NULL) {
+			if (dev->d_classattr != NULL && dev->d_classattr != a) {
 				cfgwarn("device `%s' has multiple classes "
 				    "(`%s' and `%s')",
 				    dev->d_name, dev->d_classattr->a_name,
 				    a->a_name);
 			}
-			dev->d_classattr = a;
-			CFGDBG(3, "device `%s' is devclass `%s'", dev->d_name,
-			    a->a_name);
+			if (dev->d_classattr == NULL) {
+				dev->d_classattr = a;
+				CFGDBG(3, "device `%s' is devclass `%s'", dev->d_name,
+				    a->a_name);
+			}
 		} else {
 			if (strcmp(dev->d_name, a->a_name) != 0) {
 				mergedeps(dev, a->a_name);

Reply via email to