1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-17 10:26:15 +00:00
freebsd/sys/dev
Mike Silbersack b72d483eb5 Fixes from Thomas Nystrom to fix hanging problems experienced by vr cards
under load.

This patch has been tested by Thomas and other for more than a month now,
and all (known) hangs seem to be solved.

Thomas's explanation of the patch:

*  Fix the problem with the printing of the RX-error.

*  Code from if_fet do better deal with the RX-recovery including a
   timeout of the RX-turnoff.

*  The call to vr_rxeof before vr_rxeoc have been moved to a point
   where the RX-part of the chip is turned off. Otherwise there is a
   window where new data could have been written to the buffer chain
   before the RX-part is turned off. If this happens the chip will see
   a busy rx-buffer. I have no evidence that this have occured but
   god knows what the chip will do in this case!

*  I have added a timeout of the TX-turnoff. I have checked and in
   my 900 MHz system the flags for turnoff (both RX & TX) is seen at
   the first check in the loop.

*  I could see that I got the VR_ISR_DROPPED interrupt sometimes and
   started to thinking about this. I then realized that no recovery is
   needed for this case and therefore I only count it as an rxerror
   (which was not done before).

*  Finally I have changed the FIFO RX threshhold to 128 bytes. When I
   did this the VR_ISR_DROPPED interrupt went away. Theory: The chip
   will receive a complete frame before it tries to write it out to
   memory then the RX threshold is set to store'n'forward. IF the frame
   is large AND the next rx frame also is large AND the bus is busy
   transfering a TX frame to the TX fifo THEN the second received
   frame wont fit in the FIFO and is then dropped. By having the RX
   threshold set to 128 the RX fifo is emptied faster.

MFC after:	5 days
2003-01-31 07:37:06 +00:00
..
aac Hack around a bug in the 2200 and 2120 controllers that connot DMA 2003-01-23 01:01:44 +00:00
acpica More useful announce message containing current speed of CPU 2003-01-23 22:18:14 +00:00
advansys Change BUS_SPACE_UNRESTRICTED (~0ul) to plain ~0 when used in the 2003-01-19 15:13:41 +00:00
agp Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
aha Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup, 2003-01-01 18:49:04 +00:00
ahb
aic Add second and thrid bus-toaster IDs 2002-11-14 05:08:22 +00:00
aic7xxx Revert AHD_TIMER_MAX_US to its original definition now that the 2003-01-22 22:00:07 +00:00
amd Convert the use of vtophys() for doing autosense to use busdma. Also correct 2002-12-14 19:20:57 +00:00
amr Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
an Fix some style and incorrect indentation level bugs. 2003-01-30 15:01:17 +00:00
ar Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
asr Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
ata NO_GEOM cleanup: retire disk_invalidate() 2003-01-30 19:43:50 +00:00
atkbdc YAM: This id is found in a Sony Vaio GRX-670. When will this end? 2003-01-22 22:02:09 +00:00
awi Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
bge Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
bktr Fix a panic unloading the bktr driver when devfs is in use. 2002-12-09 09:04:09 +00:00
buslogic Add some band-aid casts to quiet warnings. This driver still assumes 2002-11-06 20:34:38 +00:00
cardbus MFp4: 2003-01-27 05:47:01 +00:00
ccd Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
ciss Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
cm - bpf is now working (tested with tcpdump) 2003-01-30 15:55:02 +00:00
cnw Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
cs Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
ct
cy
dc Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
de Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
dec
dgb Be consistent about "static" functions: if the function is marked 2002-09-28 17:15:38 +00:00
digi Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
dpt Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
drm Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
ed Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
eisa Add tunable "hw.eisa_slots" to allow overriding the default number 2002-10-31 00:45:49 +00:00
em Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
en Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
ep Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
ex Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
exca Do not return(foo()) in void function. 2002-12-18 22:53:24 +00:00
fb Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
fdc Bail out of fd_clone() if the parsed unit number doesn't match our 2003-01-11 20:10:41 +00:00
fe Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
firewire SBP related changes. 2003-01-31 03:09:13 +00:00
fxp Add PCI id for fxp(Intel Pro/100 M Mobile Connection). 2003-01-27 14:31:32 +00:00
gem Free resources when failing to set up the interrupt. 2003-01-21 17:28:36 +00:00
gfb Move include of opt_fb.h earlier so that FB_INSTALL_CDEV is defined in 2002-11-08 21:04:44 +00:00
gx Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
hea Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup, 2003-01-01 18:49:04 +00:00
hfa Adjust some casts to quiet warnings. 2002-11-06 22:58:55 +00:00
hifn Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
hme bus_dmamap_sync() overhaul: 2003-01-21 17:22:52 +00:00
ic
ichsmb typo. 2002-10-18 12:06:01 +00:00
ida Use [u]intmax_t and %j instead of long long and %ll to better fix warnings 2002-11-07 22:23:46 +00:00
idt - The 'aux' field isn't around any longer. 2003-01-24 00:37:10 +00:00
ie Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
iicbus Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
iir Remove S_IROTH from the make_dev() lines for iir-related devices. This 2002-12-27 16:28:31 +00:00
isp Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
ispfw Know that a 10160 is the same as a 12160. 2002-10-12 00:12:31 +00:00
joy
kbd Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
lge Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
lmc Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
lnc Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
mc146818
mca Argh, isa(4), eisa(4) and mca(4) now attach to legacy(4) instead of 2002-09-26 18:40:06 +00:00
mcd Replace {disable,enable}_intr() with critical_{enter,exit}(). 2002-11-10 03:45:49 +00:00
md NO_GEOM cleanup: unifdef 2003-01-30 13:12:31 +00:00
mii Remove miidevs.h and generate it from miidevs at compile time. 2003-01-19 02:59:34 +00:00
mk48txx
mlx Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
mly Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
mpt Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
mse Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup, 2003-01-01 18:49:04 +00:00
musycc Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
my Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
ncv Change to correct card entry. RATOC REX-R280 is 10Base-T Ether Card, 2003-01-11 13:04:59 +00:00
nge Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
nmdm Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
nsp o Changes to support NEWCARD. 2002-11-28 01:09:29 +00:00
null Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
ofw Change ofwcons to use the output-device property from the firmware for the 2003-01-27 04:42:17 +00:00
pccard Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
pccbb Remove a comple of bogus debug printfs that snuck in during some 2002-11-23 23:09:45 +00:00
pcf Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup, 2003-01-01 18:49:04 +00:00
pci Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
pcic DETACH_FORCE was removed recently. Remove it here, even though this 2002-11-17 04:52:37 +00:00
pdq Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
ppbus Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
ppc
pst Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup, 2003-01-01 18:49:04 +00:00
puc Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
raidframe Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
random Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
ray Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
rc Use critical_enter/exit instead of disable/enable_intr to make this 2002-11-08 18:32:57 +00:00
rp Fix data corruption caused by last byte in oddly sized transfers being read 2002-10-20 18:43:11 +00:00
sab Add the sabtty children devices as unordered. Use the unit numbr of 2003-01-27 18:39:09 +00:00
sbni Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
scd Replace {disable,enable}_intr() with critical_{enter,exit}(). 2002-11-10 03:45:49 +00:00
sf Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
si Cast a pointer to uintptr_t instead ot u_int. 2002-11-07 19:56:21 +00:00
sio Be nice. There are evidentally a number of different cards that 2002-12-21 22:37:54 +00:00
sk Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
smbus
sn Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
snc Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
snp Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
sound o Constrain inputs to 25Hz granularity so interpolator can operate 2003-01-30 16:32:56 +00:00
speaker Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
sr Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
stg o Changes to support NEWCARD. 2002-11-28 01:15:01 +00:00
streams Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
sym Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup, 2003-01-01 18:49:04 +00:00
syscons Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
tdfx Make use of UID_ROOT, GID_WHEEL for make_dev() arguments. 2002-12-27 16:40:54 +00:00
tga Use UID_ROOT and GID_WHEEL for uid/gid argments to make_dev(). 2002-12-27 16:44:11 +00:00
ti Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
trm Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
twe Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
tx Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
txp Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
ubsec Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
usb Add support for the Trek Thumbdrive 8MB USB Drive. 2003-01-30 18:33:01 +00:00
vinum Put use of DIOCWLABEL under #ifdef NO_GEOM 2003-01-26 11:28:56 +00:00
vr Fixes from Thomas Nystrom to fix hanging problems experienced by vr cards 2003-01-31 07:37:06 +00:00
vx Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
wds - Use %p to print pointers instead of casting pointers to an int and using 2002-11-07 22:25:13 +00:00
wi Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
wl Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. 2003-01-21 08:56:16 +00:00
xe The Xircom hardware always delivers received packets with the FCS appended. 2003-01-29 15:19:20 +00:00
zs Set the termios speed based on the tty speed. This allows consoles to work at 2003-01-29 02:43:35 +00:00