1
0
Fork 0
alistair23-linux/drivers
Stephen Hemminger 1120f8b816 PCI: handle long delays in VPD access
Accessing the VPD area can take a long time.  The existing
VPD access code fails consistently on my hardware. There are comments
in the SysKonnect vendor driver that it can take up to 13ms per word.

Change the access routines to:
  * use a mutex rather than spinning with IRQ's disabled and lock held
  * have a much longer timeout
  * call cond_resched while spinning

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Reviewed-by: Matthew Wilcox <willy@linux.intel.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2009-01-07 11:13:16 -08:00
..
accessibility
acpi ACPI/PCI: PCI MSI _OSC support capabilities called when root bridge added 2009-01-07 11:12:31 -08:00
amba
ata libata: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:43 -08:00
atm atm: Driver for Solos PCI ADSL2+ card. 2008-12-26 01:26:11 -08:00
auxdisplay
base Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2009-01-06 17:02:07 -08:00
block Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus 2008-12-30 17:37:25 -08:00
bluetooth
cdrom cdrom: reduce stack usage of mmc_ioctl_dvd_read_struct 2008-12-29 08:28:43 +01:00
char Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2009-01-06 17:02:07 -08:00
clocksource Merge branch 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-02 11:44:09 -08:00
connector
cpufreq
cpuidle
crypto crypto: talitos - Ack done interrupt in isr instead of tasklet 2008-12-25 11:02:33 +11:00
dca
dio
dma
edac edac: driver for i5400 MCH (update) 2009-01-06 15:59:30 -08:00
eisa
firewire
firmware Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2009-01-06 17:02:07 -08:00
gpio Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2009-01-06 17:02:07 -08:00
gpu drm: fix ordering of driver unload vs agp unload. 2009-01-07 11:54:57 +10:00
hid Merge branch 'upstream-fixes' into for-next 2009-01-04 01:04:09 +01:00
hwmon Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2009-01-06 17:02:07 -08:00
i2c Merge branch 'for-next' of git://git.o-hand.com/linux-mfd 2009-01-05 19:04:09 -08:00
ide scc_pata: make use of scc_dma_sff_read_status() 2009-01-06 17:21:02 +01:00
idle i7300_idle: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:39 -08:00
ieee1394
infiniband infiniband: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:39 -08:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2009-01-06 17:14:01 -08:00
isdn ISDN: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:39 -08:00
leds
lguest lguest: do not statically allocate root device 2009-01-06 10:44:34 -08:00
macintosh Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2009-01-06 17:02:07 -08:00
mca
md dm snapshot: extend exception store functions 2009-01-06 03:05:19 +00:00
media poll: allow f_op->poll to sleep 2009-01-06 15:59:12 -08:00
memstick memstick: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:38 -08:00
message Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2009-01-06 17:02:07 -08:00
mfd mfd: Fix section mismatch in da903x 2009-01-04 15:31:49 +01:00
misc Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2009-01-06 17:02:07 -08:00
mmc Merge branch 'master' of ../mmc 2008-12-31 19:56:05 +01:00
mtd mtd: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:38 -08:00
net resource: allow MMIO exclusivity for device drivers 2009-01-07 11:12:32 -08:00
nubus
of of/gpio: Implement of_gpio_count() 2008-12-21 14:21:14 +11:00
oprofile zero i_uid/i_gid on inode allocation 2009-01-05 11:54:28 -05:00
parisc PCI: parisc: use generic pci_swizzle_interrupt_pin() 2009-01-07 11:12:55 -08:00
parport parport: ieee1284: use del_timer_sync() in parport_wait_event() 2009-01-06 15:59:31 -08:00
pci PCI: handle long delays in VPD access 2009-01-07 11:13:16 -08:00
pcmcia Merge branch 'mxc-pu-imxfb' of git://pasiphae.extern.pengutronix.de/git/imx/linux-2.6 into devel 2008-12-17 20:04:45 +00:00
pnp pnp: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:38 -08:00
power power-supply: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:38 -08:00
ps3
rapidio rapidio: remove excess kernel-doc notation 2009-01-06 15:59:28 -08:00
regulator mfd: Support configurable numbers of DCDCs and ISINKs on WM8350 2009-01-04 12:17:42 +01:00
rtc drivers/rtc: correct an error test 2009-01-06 15:59:25 -08:00
s390 s390: remove s390_root_dev_*() 2009-01-06 10:44:34 -08:00
sbus
scsi remove ide-scsi 2009-01-02 16:12:51 +01:00
serial serial: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:37 -08:00
sh sh: maple: Do not pass SLAB_POISON to kmem_cache_create() 2008-12-16 16:40:32 +09:00
sn
spi Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2009-01-06 17:02:07 -08:00
ssb
staging Staging: android: binder: fix build errors 2009-01-06 13:52:46 -08:00
tc
telephony
thermal thermal: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:37 -08:00
uio UIO: Pass information about ioports to userspace (V2) 2009-01-06 10:44:44 -08:00
usb gadget: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:42 -08:00
uwb Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-upstream 2009-01-02 13:17:13 +00:00
video Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2009-01-06 17:02:07 -08:00
virtio virtio: do not statically allocate root device 2009-01-06 10:44:34 -08:00
w1 w1: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:34 -08:00
watchdog [WATCHDOG] Add support for the WM8350 watchdog 2008-12-31 16:12:54 +00:00
xen xen: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:34 -08:00
zorro
Kconfig
Makefile