Subject: CVS commit: syssrc
To: None <source-changes@netbsd.org>
From: Bill Sommerfeld <sommerfeld@netbsd.org>
List: source-changes
Date: 10/28/1999 12:21:53
Module Name:	syssrc
Committed By:	sommerfeld
Date:		Thu Oct 28 19:21:52 UTC 1999

Modified Files:
	syssrc/sys/dev/ic: i82557.c i82557var.h

Log Message:
Fix suspend/resume-related problems observed on fxp0 on Sony Z505S:

Symptoms: system would crash with "data modified on free list" pool
panic from the mbuf cluster pool shortly after a resume.  The cluster
in question contained a valid 82557 receive descriptor and an IP
packet.  Happened sporadically in normal use.  Easiest way for me to
reproduce it was to run tcpdump and a flood ping and do a
suspend/resume cycle or two.

Changes:
 - in interrupt handler, if the interface isn't in IFF_RUNNING state,
just ack interrupts and return; don't try to receive packets, queue
new descriptors, etc., etc.,
 - add power control hook to take interface down on suspend,
and restart it (if it was up) on resume.
 - tweaks to fxp_stop and fxp_shutdown to avoid recursive panics due
to the (now fixed) bug.


To generate a diff of this commit:
cvs rdiff -r1.8 -r1.9 syssrc/sys/dev/ic/i82557.c
cvs rdiff -r1.6 -r1.7 syssrc/sys/dev/ic/i82557var.h

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