android_kernel_motorola_sm6225/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 [PATCH] fix request->cmd == INT cases 2007-07-10 08:03:34 +02:00
acpi Add common orderly_poweroff() 2007-07-18 08:47:40 -07:00
amba
ata [libata] sata_mv: use pci_try_set_mwi() 2007-07-17 16:18:00 -04:00
atm [ATM]: nicstar needs virt_to_bus 2007-07-18 02:13:42 -07:00
auxdisplay Use menuconfig objects II - auxdisplay 2007-07-16 09:05:40 -07:00
base dma: make dma pool to use kmalloc_node 2007-07-16 09:05:51 -07:00
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 [Bluetooth] Remove the redundant non-seekable llseek method 2007-07-11 06:53:45 +02:00
cdrom bsg: add a request_queue argument to scsi_cmd_ioctl() 2007-07-16 08:52:45 +02:00
char xen: use the hvc console infrastructure for Xen console 2007-07-18 08:47:44 -07:00
clocksource PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
connector Use menuconfig objects: connector 2007-07-16 09:05:40 -07:00
cpufreq [CPUFREQ] Restore previously used governor on a hot-replugged CPU 2007-07-13 01:29:51 -04:00
crypto Use menuconfig objects: crypto hw 2007-07-16 09:05:40 -07:00
dio
dma dma-mapping: prevent dma dependent code from linking on !HAS_DMA archs 2007-07-16 09:05:45 -07:00
edac Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
eisa
fc4
firewire firewire: fw-sbp2: fix DMA mapping of management ORBs 2007-07-10 00:07:49 +02:00
firmware edd: switch to pci_get based API 2007-07-16 09:05:42 -07:00
hid USB: add reset_resume method 2007-07-12 16:34:30 -07:00
hwmon SPI: add 3wire mode flag 2007-07-17 10:23:04 -07:00
i2c OMAP: add TI TWL92330/Menelaus Power Management chip driver 2007-07-17 10:23:15 -07:00
ide Revert drivers/ide/ide.c scsi_cmd_ioctl() usage changes 2007-07-17 15:57:42 -07:00
ieee1394 Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
infiniband drivers/infiniband/hw/mthca/mthca_qp: kill uninit'd var warning 2007-07-17 16:18:00 -04:00
input Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
isdn [ISDN] HiSax hfc_pci: minor cleanups 2007-07-17 17:26:24 -04:00
kvm KVM: Use CPU_DYING for disabling virtualization 2007-07-16 12:05:51 +03:00
leds [S390] Kconfig: menus with depends on HAS_IOMEM. 2007-05-10 15:46:07 +02:00
macintosh usermodehelper: Tidy up waiting 2007-07-18 08:47:40 -07:00
mca mca: add integrated device bus matching 2007-05-09 12:30:49 -07:00
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 i2o debug output cleanup 2007-07-17 10:23:06 -07:00
mfd Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
misc IBMASM: must depend on CONFIG_INPUT 2007-07-17 10:23:04 -07:00
mmc Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
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 Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
parisc serial: add early_serial_setup() back to header file 2007-07-18 08:38:22 -07:00
parport parport_pc: it887x fix 2007-07-16 09:05:50 -07:00
pci Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2007-07-16 17:58:08 -07:00
pcmcia powerpc: 8xx: fix whitespace and indentation 2007-07-17 10:23:02 -07:00
pnp usermodehelper: Tidy up waiting 2007-07-18 08:47:40 -07:00
power Merge git://git.infradead.org/battery-2.6 2007-07-15 16:56:12 -07:00
ps3 [POWERPC] PS3: Storage Driver Core 2007-06-28 19:19:20 +10:00
rapidio sysfs: add parameter "struct bin_attribute *" in .read/.write methods for sysfs binary attributes 2007-07-11 16:09:09 -07:00
rtc OMAP: add TI TWL92330/Menelaus Power Management chip driver 2007-07-17 10:23:15 -07:00
s390 Make the "z/VM unit record device driver" depend on S390 2007-07-17 15:43:56 -07:00
sbus Add common orderly_poweroff() 2007-07-18 08:47:40 -07:00
scsi Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
serial zs: move to the serial subsystem 2007-07-18 08:38:22 -07:00
sh
sn
spi use mutex instead of semaphore in SPI core/init code 2007-07-17 10:23:05 -07:00
tc zs: move to the serial subsystem 2007-07-18 08:38:22 -07:00
telephony drivers/telephony/ixj: cleanup and fix gcc warning 2007-07-17 16:18:00 -04:00
usb drivers/*: mark variables with uninitialized_var() 2007-07-17 16:23:19 -04:00
video fbdev: make fb_append_extra_logo() depend on fb=y 2007-07-18 08:38:22 -07:00
w1 Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
xen xen: add the Xenbus sysfs and virtual device hotplug driver 2007-07-18 08:47:45 -07:00
zorro sysfs: add parameter "struct bin_attribute *" in .read/.write methods for sysfs binary attributes 2007-07-11 16:09:09 -07:00
Kconfig Merge git://git.infradead.org/~dwmw2/battery-2.6 2007-07-10 14:47:59 -07:00
Makefile xen: Add grant table support 2007-07-18 08:47:44 -07:00