linux/drivers
Santiago Leon 751ae21c6c [PATCH] ibmveth: fix int rollover panic
This patch fixes a nasty bug that has been sitting there since the
very first versions of the driver, but is generating a panic because
we changed the number of 2K buffers for 2.6.16.

The consumer_index and producer_index are u32's that get incremented
on every buffer emptied and replenished respectively.  We use
the {producer,consumer}_index mod'ed with the size of the pool to
pick out an entry in the free_map.  The problem happens when the
u32 rolls over and the number of the buffers in the pool is not a
perfect divisor of 2^32.  i.e. if the number of 2K buffers is 0x300,
before the consumer_index rolls over,  our index to the free map =
0xffffffff mod 0x300 = 0xff.  The next time a buffer is emptied, we
want the index to the free map to be 0x100, but 0x0 mod 0x300 is 0x0.

This patch assigns the mod'ed result back to the consumer and producer
indexes so that they never roll over.  The second chunk of the patch
covers the unlikely case where the consumer_index has just been reset
to 0x0 and the hypervisor is not able to accept that buffer.

Signed-off-by: Santiago Leon <santil@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-10-05 06:43:24 -04:00
..
acorn fix file specification in comments 2006-10-03 23:01:26 +02:00
acpi fix drivers/acpi/Kconfig typos 2006-10-03 22:24:43 +02:00
amba
ata [PATCH] pata: teach ali about rev C8, keep pcmcia driver in sync 2006-10-04 08:15:15 -07:00
atm [ATM]: [zatm] always *pcr in alloc_shaper() 2006-10-04 00:31:06 -07:00
base [PATCH] hot-add-mem x86_64: use CONFIG_MEMORY_HOTPLUG_SPARSE 2006-10-01 00:39:18 -07:00
block Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/configh 2006-10-04 09:59:57 -07:00
bluetooth [Bluetooth] Code cleanup for the HCI UART driver 2006-09-28 18:01:30 -07:00
cdrom fix file specification in comments 2006-10-03 23:01:26 +02:00
char Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/configh 2006-10-04 09:59:57 -07:00
clocksource [PATCH] scx200_hrt: fix precedence bug manifesting as 27x clock in 1 MHz mode 2006-10-04 07:55:14 -07:00
connector
cpufreq [PATCH] cpufreq: make the transition_notifier chain use SRCU 2006-10-04 07:55:30 -07:00
crypto
dio
dma
edac
eisa [PATCH] EISA bus MODALIAS attributes support 2006-09-27 08:26:19 -07:00
fc4 [PATCH] Remove ->rq_status from struct request 2006-09-30 20:29:23 +02:00
firmware fix file specification in comments 2006-10-03 23:01:26 +02:00
hwmon Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
i2c Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
ide Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
ieee1394 Fix several typos in drivers/ 2006-10-03 22:31:37 +02:00
infiniband Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
input more misc typo fixes 2006-10-03 22:34:14 +02:00
isdn [PATCH] hisax niccy cleanup 2006-10-04 07:55:15 -07:00
leds Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
macintosh fix file specification in comments 2006-10-03 23:01:26 +02:00
mca
md BUG_ON cleanup for drivers/md/ 2006-10-03 23:33:23 +02:00
media V4L/DVB (4712): Fix warning when compiling on x86_i64 2006-10-04 08:15:53 -03:00
message Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2006-10-04 18:57:35 -07:00
mfd [PATCH] ucb1x00-ts: handle errors from input_register_device() 2006-09-29 09:18:10 -07:00
misc [PATCH] mmc: driver for TI FlashMedia card reader - Kconfig/Makefile 2006-10-04 07:55:14 -07:00
mmc [PATCH] mmc: properly use the new multi block-write error handling 2006-10-04 07:55:15 -07:00
mtd fix file specification in comments 2006-10-03 23:01:26 +02:00
net [PATCH] ibmveth: fix int rollover panic 2006-10-05 06:43:24 -04:00
nubus
oprofile [PATCH] inode-diet: Eliminate i_blksize from the inode structure 2006-09-27 08:26:18 -07:00
parisc [PA-RISC] Fix sba_iommu compilation 2006-10-05 01:48:17 +00:00
parport parport: Remove space in function calls 2006-10-03 23:25:14 +02:00
pci [PATCH] htirq: tidy up the htirq code 2006-10-04 07:55:30 -07:00
pcmcia pccard_store_cis: fix wrong error handling 2006-10-01 13:17:44 -07:00
pnp Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2006-10-03 08:52:26 -07:00
rapidio Fix several typos in drivers/ 2006-10-03 22:31:37 +02:00
rtc Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/configh 2006-10-04 09:59:57 -07:00
s390 [S390] cio: improve unit check handling for internal operations 2006-10-04 20:02:30 +02:00
sbus remove mentionings of devfs in documentation 2006-10-03 22:17:48 +02:00
scsi Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2006-10-04 18:57:35 -07:00
serial [PATCH] atmel_serial: Fix roundoff error in atmel_console_get_options 2006-10-04 10:25:06 -07:00
sh
sn
spi Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
tc [PATCH] const struct tty_operations 2006-10-02 07:57:14 -07:00
telephony
usb [PATCH] itmtouch: fix inverted flag to indicate touch location correctly, correct white space 2006-10-04 19:44:36 -07:00
video Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/configh 2006-10-04 09:59:57 -07:00
w1 Fix several typos in drivers/ 2006-10-03 22:31:37 +02:00
zorro
Kconfig
Makefile