opnsense-src/sys
Bill Paul 7c76d5ca4e Patch the transmit error handler to avoid following NULL pointers and
generating a trap 12 panic. The code blindly assumed that in the event
of a transmit error, the packet that caused the error would still be
at the head of the driver's transmit queue (sc->xl_cdata.xl_tx_head).
However in the case of error 82 (which indicates that a transmit error
occurred after part of the transmit FIFO memory has been reclaimed)
this is not true: the TX queue has already been flushed, and the
pointer to the head of the queue is NULL, so trying to dereference
the pointer to find the transmit descriptor address causes a crash.

The code now checks for a NULL pointer before trying to reload the
chip's download pointer register. There may still be error messages
printed warning of the transmit error, but no panic should occur.

Note that this eror code is only generated with "cyclone" chipsets
(3c900B, 3c905B, and presumeably the 3c980 server adapter). It should
only appear during periods of heavy traffic, probably only on
non-switched networks.

Problem reported by: Darcy Buskermolen <darcy@ok-connect.com>
1998-09-06 14:58:46 +00:00
..
alpha Cosmetic changes to the PAGE_XXX macros to make them consistent with 1998-09-04 18:49:35 +00:00
amd64 Make irq forwarding truely functional. 1998-09-04 23:03:04 +00:00
boot Generic plug-and-play enumerator infrastructure. Query supplied 1998-09-04 02:43:26 +00:00
cfs Pass2 complete 1998-09-02 19:09:53 +00:00
coda Pass2 complete 1998-09-02 19:09:53 +00:00
compat Argh! *Now* the correct 3.0 fix is committed. 1998-08-31 10:53:33 +00:00
compile
conf Sync with sys/i386/conf/files.i386 revision 1.201. 1998-09-05 02:36:18 +00:00
contrib/softupdates Handle the case of moving a directory onto the top of a sibling's 1998-08-12 20:46:47 +00:00
ddb Update to work with the new elf headers. 1998-08-17 08:06:31 +00:00
dev Device registration temporaly removed until major number allocation ok. 1998-09-04 17:53:42 +00:00
fs Add a new vnode op, VOP_FREEBLKS(), which filesystems can use to inform 1998-09-05 14:13:12 +00:00
geom Make struct buf->b_offset reflect the real byte offset which got 1998-08-19 10:50:32 +00:00
gnu Fixed printf format errors. Only one left in LINT on i386's. 1998-08-24 02:28:16 +00:00
i386 Make irq forwarding truely functional. 1998-09-04 23:03:04 +00:00
isa printing with compatible mode fixed if ECP available + more verbose if bootverbose set 1998-09-02 20:34:34 +00:00
isofs/cd9660 There is no such thing any more as "struct bdevsw". 1998-07-04 22:30:26 +00:00
kern Store formatted panic string in static buffer to make it available later 1998-09-06 06:25:18 +00:00
libkern Converted rcsid to $Id$ again. There shouldn't be any rcsids in the kernel. 1998-08-17 19:26:37 +00:00
miscfs Add a new vnode op, VOP_FREEBLKS(), which filesystems can use to inform 1998-09-05 14:13:12 +00:00
modules Sort cross references. 1998-08-31 16:41:09 +00:00
msdosfs Removed unused includes. 1998-08-17 19:09:36 +00:00
net Yow! Completely change the way socket options are handled, eliminating 1998-08-23 03:07:17 +00:00
netatalk Fixed printf format errors. 1998-08-17 01:05:25 +00:00
netinet RFC 1644 has the status "Experimental Protocol", which means: 1998-09-06 08:17:35 +00:00
netipx Yow! Completely change the way socket options are handled, eliminating 1998-08-23 03:07:17 +00:00
netkey Fixed printf format errors. 1998-08-17 01:05:25 +00:00
netnatm This commit fixes various 64bit portability problems required for 1998-06-07 17:13:14 +00:00
netns Make INET a proper option. 1998-01-08 23:42:31 +00:00
nfs Ignore the statically configured vfs type numbers and assign vfs 1998-09-05 17:13:28 +00:00
nfsclient Ignore the statically configured vfs type numbers and assign vfs 1998-09-05 17:13:28 +00:00
nfsserver Instantiate `nfs_mount_type' in a standard file so that it is present 1998-09-05 15:17:34 +00:00
pc98 Add a GENERICupgrade config file for pc98 users to upgrade to elf 1998-09-05 08:14:36 +00:00
pccard o renable pccard_remove_driver (it was used in the skel.c driver) 1998-08-26 07:09:58 +00:00
pci Patch the transmit error handler to avoid following NULL pointers and 1998-09-06 14:58:46 +00:00
posix4 Set PAGE_SIZE for _SC_PAGESIZE sysconf(). 1998-06-01 21:54:43 +00:00
powerpc Add declaration of {aquire,release}_timer2(). 1998-07-22 08:26:23 +00:00
rpc Resolve conflicts. 1997-05-28 04:45:15 +00:00
scsi Reviewed by: J Wunsch <j@uriah.heep.sax.de> 1998-09-03 07:01:39 +00:00
sys Store formatted panic string in static buffer to make it available later 1998-09-06 06:25:18 +00:00
tools VOP_STRATEGY grows an (struct vnode *) argument 1998-07-04 20:45:42 +00:00
ufs Add a new vnode op, VOP_FREEBLKS(), which filesystems can use to inform 1998-09-05 14:13:12 +00:00
vm Instantiate `nfs_mount_type' in a standard file so that it is present 1998-09-05 15:17:34 +00:00
Makefile Add support for MACHINE=pc98. This leaves a single legacy entry for 1998-09-05 08:27:56 +00:00