linux/drivers
Simon Wunderlich 05af2142d0 r8169: fix Ethernet Hangup for RTL8110SC rev d
The 8110SC rev d chip on our board shows a regression which the 8110SB chip
did not have. When inbound traffic is overflowing the receive descriptor queue,
"holes" in the ring buffer may occur which lead to a hangup until the buffer
is filled again. The packets are than completely processed, but the ring
remains porous and no packets are processed until the next overflow. Setting
the interface down and up can fix the problem temporary from userspace.

For some reason we don't know, this behaviour is not occuring if the RxVlan
bit for hardware VLAN untagging is set. There is another "Work around for
AMD plateform" in the current code which checks the VLAN status
word in receive descriptors, but does never come to effect when hardware
VLAN support is enabled. We assume that this is a bug in the chip.

The following patch fixes the problem. Without the patch we could reproduce
the hang within minutes (given other devices also generating lots of
interrupts), without we couldn't reproduce within a few days of long term
testing.

This version contains minor style adjustments and is sent with mutt which
will hopefully not destroy the formatting again.

Signed-off-by: Bernhard Schmidt <bernhard.schmidt@saxnet.de>
Signed-off-by: Simon Wunderlich <simon.wunderlich@saxnet.de>
Acked-by: Francois Romieu <romieu@zoreil.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-10-24 06:47:33 -07:00
..
accessibility
acpi Merge branch 'drm-intel-next' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel 2009-09-24 10:30:41 -07:00
amba
ata trivial: fix comment typo in drivers/ata/pata_hpt37x.c 2009-09-21 15:15:53 +02:00
atm net: Make setsockopt() optlen be unsigned. 2009-09-30 16:12:20 -07:00
auxdisplay
base mm: oom analysis: add shmem vmstat 2009-09-22 07:17:27 -07:00
block Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus 2009-09-23 09:23:45 -07:00
bluetooth
cdrom sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
char Merge branch 'drm-intel-next' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel 2009-09-24 10:30:41 -07:00
clocksource
connector connector: Fix incompatible pointer type warning 2009-10-06 01:39:51 -07:00
cpufreq
cpuidle cpuidle: menu governor: reduce latency on exit 2009-09-22 07:17:45 -07:00
crypto
dca
dio
dma Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx into for-linus 2009-09-23 18:31:11 +10:00
edac edac: core: remove completion-wait for complete with rcu_barrier 2009-09-24 07:21:05 -07:00
eisa
firewire Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2009-09-23 09:43:22 -07:00
firmware mm: don't use alloc_bootmem_low() where not strictly needed 2009-09-22 07:17:38 -07:00
gpio Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging 2009-09-23 09:30:48 -07:00
gpu Merge branch 'drm-intel-next' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel 2009-09-24 10:30:41 -07:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2009-09-22 07:51:28 -07:00
hwmon Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging 2009-09-23 15:20:16 -07:00
i2c Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging 2009-09-23 09:30:48 -07:00
ide Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2009-09-23 09:32:11 -07:00
idle
ieee1394 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2009-09-23 09:43:22 -07:00
ieee802154
infiniband walk system ram range 2009-09-23 07:39:41 -07:00
input input: fix build failures caused by Kconfig Winbond WPCD376I Consumer IR hardware driver Kconfig entry 2009-09-24 07:20:56 -07:00
isdn isdn: fix possible circular locking dependency 2009-10-22 18:27:53 -07:00
leds Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2009-09-23 15:39:36 -07:00
lguest Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus 2009-09-23 09:23:45 -07:00
macintosh trivial: remove unnecessary semicolons 2009-09-21 15:14:58 +02:00
mca
md dm/connector: Only process connector packages from privileged processes 2009-10-02 10:54:10 -07:00
media Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2009-09-24 07:54:16 -07:00
memstick memstick: move dev_dbg 2009-09-24 07:21:05 -07:00
message Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-09-22 07:51:45 -07:00
mfd mfd/gpio: add a GPIO interface to the UCB1400 MFD chip driver via gpiolib 2009-09-23 07:39:48 -07:00
misc gru: allocation may fail in quicktest1() 2009-09-24 07:21:05 -07:00
mmc Merge branch 'for-linus' of git://neil.brown.name/md 2009-09-24 07:55:29 -07:00
mtd Merge branch 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze 2009-09-24 09:01:44 -07:00
net r8169: fix Ethernet Hangup for RTL8110SC rev d 2009-10-24 06:47:33 -07:00
nubus
of of: remove "stm,m25p40" alias 2009-09-23 07:39:43 -07:00
oprofile cpumask: use zalloc_cpumask_var() where possible 2009-09-24 09:34:24 +09:30
parisc mm: replace various uses of num_physpages by totalram_pages 2009-09-22 07:17:38 -07:00
parport sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
pci Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2009-09-24 09:57:08 -07:00
pcmcia pcmcia: cleanup/fixup patch for sa1100_jornada_pcmcia driver 2009-09-22 07:17:42 -07:00
platform sony-laptop: re-read the rfkill state when resuming from suspend 2009-09-28 16:55:08 -04:00
pnp Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2009-09-23 09:32:11 -07:00
power Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-09-23 03:49:27 +04:00
pps
ps3
rapidio
regulator regulator: fix voltage range in da9034 ldo12 2009-09-22 13:58:23 +01:00
rtc rtc: add boot_timesource sysfs attribute 2009-09-23 07:39:46 -07:00
s390 headers: utsname.h redux 2009-09-23 18:13:10 -07:00
sbus const: make block_device_operations const 2009-09-22 07:17:25 -07:00
scsi seq_file: constify seq_operations 2009-09-23 07:39:29 -07:00
serial pcnet_cs: add cis of National Semicondoctor's multifunction pcmcia card 2009-10-05 00:40:03 -07:00
sfi
sh
sn
spi spi: handle TX-only/RX-only 2009-09-23 07:39:44 -07:00
ssb ssb/sdio: fix printk format warnings 2009-09-23 11:35:41 -04:00
staging pohmelfs/connector: Disallow unpliviged users to configure pohmelfs 2009-10-02 10:54:15 -07:00
tc
telephony
thermal thermal: add missing Kconfig dependency 2009-09-19 01:41:49 -04:00
uio
usb Merge branch 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze 2009-09-24 09:01:44 -07:00
uwb trivial: remove unnecessary semicolons 2009-09-21 15:14:58 +02:00
video uvesafb/connector: Disallow unpliviged users to send netlink packets 2009-10-02 10:54:18 -07:00
virtio virtio: add virtio IDs file 2009-09-23 22:26:32 +09:30
vlynq drivers/vlynq/vlynq.c: fix resource size off by 1 error 2009-09-24 07:21:05 -07:00
w1 connector: Provide the sender's credentials to the callback 2009-10-02 10:54:01 -07:00
watchdog
xen Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-09-22 07:51:45 -07:00
zorro
Kconfig
Makefile Merge git://git.infradead.org/mtd-2.6 2009-09-23 10:07:49 -07:00