Subject: port-mac68k/8605: MACE (mc) driver too noisy about collision errors
To: None <gnats-bugs@gnats.netbsd.org>
From: Dave Huang <khym@bga.com>
List: netbsd-bugs
Date: 10/10/1999 18:43:45
>Number:         8605
>Category:       port-mac68k
>Synopsis:       MACE (mc) driver too noisy about collision errors
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    port-mac68k-maintainer (NetBSD/mac68k Portmaster)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Oct 10 18:39:00 1999
>Last-Modified:
>Originator:     Dave Huang
>Organization:
Name: Dave Huang     |   Mammal, mammal / their names are called /
INet: khym@bga.com   |   they raise a paw / the bat, the cat /
FurryMUCK: Dahan     |   dolphin and dog / koala bear and hog -- TMBG
Dahan: Hani G Y+C 23 Y++ L+++ W- C++ T++ A+ E+ S++ V++ F- Q+++ P+ B+ PA+ PL++
>Release:        NetBSD-current as of October 10, 1999
>Environment:
	
System: NetBSD gedd.metonymy.com 1.4K NetBSD 1.4K (GEDD) #588: Wed Oct  6 03:43:36 CDT 1999     khym@dahan.metonymy.com:/usr/src.local/sys/arch/mac68k/compile/GEDD mac68k

>Description:
After a tiny bit of discussion on tech-kern or tech-net back in '97,
I've changed the mc driver to not complain about collision errors unless
MCDEBUG is defined, and to always complain if there were more than 16
collisions trying to send a packet (i.e. the packet never got sent). This
is what the am7990.c driver does, except its collision error reporting
code is in an "#if 0" block instead of "#ifdef LEDEBUG". Nobody I talked
to seemed to know why :)

[ I did this in January 1998, but it never made it into the tree, so
I'm sending a PR this time :) There was a complaint about the
"collision error" message on port-mac68k yesterday... ]

>How-To-Repeat:
>Fix:
--- /usr/src/sys/arch/mac68k/dev/if_mc.c	Wed Jul  8 06:09:57 1998
+++ if_mc.c	Tue Aug 18 21:24:01 1998
@@ -510,7 +510,9 @@
 	}
 
 	if (ir & CERR) {
+#ifdef MCDEBUG
 		printf("%s: collision error\n", sc->sc_dev.dv_xname);
+#endif
 		sc->sc_if.if_collisions++;
 	}
 
@@ -557,6 +559,7 @@
 	else if (xmtfs & ONE)
 		sc->sc_if.if_collisions++;
 	else if (xmtfs & RTRY) {
+		printf("%s: excessive collisions\n", sc->sc_dev.dv_xname);
 		sc->sc_if.if_collisions += 16;
 		sc->sc_if.if_oerrors++;
 	}

>Audit-Trail:
>Unformatted: