kernel-ark/drivers
Michael Chan ee6a99b539 [TG3]: Fix msi issue with kexec/kdump.
Tina Yang <tina.yang@oracle.com> discovered an MSI related problem
when doing kdump.  The problem is that the kexec kernel is booted
without going through system reset, and as a result, MSI may already
be enabled when tg3_init_one() is called.  tg3_init_one() calls
pci_save_state() which will save the stale MSI state.  Later on in
tg3_open(), we call pci_enable_msi() to reconfigure MSI on the chip
before we reset the chip.  After chip reset, we call
pci_restore_state() which will put the stale MSI address/data back
onto the chip.

This is no longer a problem in the latest kernel because
pci_restore_state() has been changed to restore MSI state from
internal data structures which will guarantee restoring the proper
MSI state.

But I think we should still fix it.  Our save and restore sequence
can still cause very subtle problems down the road.  The fix is to
have our own functions save and restore precisely what we need.  We
also change it to save and restore state inside tg3_chip_reset() in a
more straight forward way.

Thanks to Tina for helping to test and debug the problem.

[ Bump driver version and release date. -DaveM ]

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-07-18 21:49:10 -07:00
..
acorn
acpi Add common orderly_poweroff() 2007-07-18 08:47:40 -07:00
amba
ata
atm [ATM]: nicstar needs virt_to_bus 2007-07-18 02:13:42 -07:00
auxdisplay
base
block Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2007-07-18 10:23:37 -07:00
bluetooth
cdrom
char xen: use the hvc console infrastructure for Xen console 2007-07-18 08:47:44 -07:00
clocksource
connector
cpufreq
crypto
dio
dma
edac
eisa
fc4
firewire
firmware
hid
hwmon
i2c
ide Revert drivers/ide/ide.c scsi_cmd_ioctl() usage changes 2007-07-17 15:57:42 -07:00
ieee1394
infiniband
input
isdn
kvm
leds
macintosh usermodehelper: Tidy up waiting 2007-07-18 08:47:40 -07:00
mca
md dm: fix memory leak in dm_create_persistent() when starting metadata update thread fails 2007-07-18 08:38:22 -07:00
media V4L/DVB (5847): Clean up schedule_timeout calls in cpia2 and ivtv code 2007-07-18 14:24:49 -03:00
message
mfd
misc
mmc
mtd UBI: fix compile warning 2007-07-18 16:59:17 +03:00
net [TG3]: Fix msi issue with kexec/kdump. 2007-07-18 21:49:10 -07:00
nubus
oprofile
parisc serial: add early_serial_setup() back to header file 2007-07-18 08:38:22 -07:00
parport
pci
pcmcia
pnp usermodehelper: Tidy up waiting 2007-07-18 08:47:40 -07:00
power
ps3
rapidio
rtc
s390
sbus Add common orderly_poweroff() 2007-07-18 08:47:40 -07:00
scsi
serial zs: move to the serial subsystem 2007-07-18 08:38:22 -07:00
sh
sn
spi
tc zs: move to the serial subsystem 2007-07-18 08:38:22 -07:00
telephony
usb
video fbdev: make fb_append_extra_logo() depend on fb=y 2007-07-18 08:38:22 -07:00
w1
xen xen: add the Xenbus sysfs and virtual device hotplug driver 2007-07-18 08:47:45 -07:00
zorro
Kconfig
Makefile xen: Add grant table support 2007-07-18 08:47:44 -07:00