kernel_optimize_test/drivers
Neil Horman dc5a144991 sis900: Allocate rx replacement buffer before rx operation
Just found a hole in my last patch.  It was reported to me that shortly after we
integrated this patch.  The report was of an oops that took place inside of
netif_rx when using the sis900 driver.  Looking at my origional patch I noted
that there was a spot between the new skb_alloc and the refill_rx_ring label
where skb got reassigned to the pointer currently held in the rx_ring for the
purposes of receiveing the frame.  The result of this is however that the buffer
that gets passed to netif_rx (if it is called), then gets placed right back into
the rx_ring.  So if you receive frames fast enough the skb being processed by
the network stack can get corrupted.  The reporter is testing out the fix I've
written for this below (I'm not near my hardware at the moment to test myself),
but I wanted to post it for review ASAP.  I'll post test results when I hear
them, but I think this is a pretty straightforward fix.  It just uses a separate
pointer to do the rx operation, so that we don't improperly reassign the pointer
that we use to refill the rx ring.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-04-27 20:16:41 -04:00
..
acorn
acpi
amba uevent: use add_uevent_var() instead of open coding it 2007-04-27 10:57:29 -07:00
ata
atm
auxdisplay
base drivers/base/attribute_container.c: use mutex instead of binary semaphore 2007-04-27 10:57:34 -07:00
block ub: Bind to first endpoint, not to last 2007-04-27 13:28:34 -07:00
bluetooth
cdrom
char
clocksource
connector
cpufreq
crypto
dio
dma
edac
eisa
fc4
firmware
hid
hwmon
i2c
ide IDE: remove rwsem use from ide-proc core 2007-04-27 10:57:30 -07:00
ieee1394 IEEE1394: remove rwsem use from ieee1394 core 2007-04-27 10:57:30 -07:00
infiniband Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband 2007-04-27 09:39:27 -07:00
input Input: gameport - do not touch bus's rwsem 2007-04-27 10:57:30 -07:00
isdn
kvm
leds
macintosh
mca
md
media V4L/DVB (5563): Radio-maestro.c Replace radio_ioctl to use video_ioctl2 2007-04-27 15:46:01 -03:00
message
mfd
misc
mmc uevent: use add_uevent_var() instead of open coding it 2007-04-27 10:57:29 -07:00
mtd [MTD] [MAPS] drivers/mtd/maps/ck804xrom.c: convert pci_module_init() 2007-04-27 23:34:21 +01:00
net sis900: Allocate rx replacement buffer before rx operation 2007-04-27 20:16:41 -04:00
nubus
oprofile
parisc
parport
pci define platform wakeup hook, use in pci_enable_wake() 2007-04-27 10:57:33 -07:00
pcmcia
pnp PNP: stop using the subsystem rwsem 2007-04-27 10:57:30 -07:00
ps3
rapidio
rtc
s390 s390: cio: Delay uevents for subchannels 2007-04-27 10:57:32 -07:00
sbus
scsi SCSI: use the proper semaphore to protect the class lists 2007-04-27 10:57:30 -07:00
serial
sh
sn
spi
tc
telephony
usb usb-net/pegasus: simplify carrier detection 2007-04-27 20:16:41 -04:00
video
w1
zorro
Kconfig
Makefile