Steve Wise
cf3760dad5
RDMA/cxgb3: deadlock in iw_cxgb3 can cause hang when configuring interface.
...
When the iw_cxgb3 module's cxgb3_client "add" func gets called by the
cxgb3 module, the iwarp driver ends up calling the ethtool ops get_drvinfo
function in cxgb3 to get the fw version and other info. Currently the
iwarp driver grabs the rtnl lock around this down call to serialize.
As of 2.6.27 or so, things changed such that the rtnl lock is held around
the call to the netdev driver open function. Also the cxgb3_client "add"
function doesn't get called if the device is down.
So, if you load cxgb3, then load iw_cxgb3, then ifconfig up the device,
the iw_cxgb3 add func gets called with the rtnl_lock held. If you
load cxgb3, ifconfig up the device, then load iw_cxgb3, the add func
gets called without the rtnl_lock held. The former causes the deadlock,
the latter does not.
In addition, there are iw_cxgb3 sysfs handlers that also can call
down into cxgb3 to gather the fw and hw versions. These can be called
concurrently on different processors and at any time. Thus we need to
push this serialization down in the cxgb3 driver get_drvinfo func.
The fix is to remove rtnl lock usage, and use a per-device lock in cxgb3.
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2008-11-11 03:52:10 -05:00
..
accessibility
acpi
ACPI suspend: build fix for ACPI_SLEEP=n && XEN_SAVE_RESTORE=y.
2008-10-25 04:07:13 -04:00
amba
ata
libata: mask off DET when restoring SControl for detach
2008-11-04 01:08:33 -05:00
atm
auxdisplay
base
sysfs: Fix return values for sysdev_store_{ulong,int}
2008-10-29 15:03:49 -07:00
block
cciss: fix regression firmware not displayed in procfs
2008-11-06 15:41:18 -08:00
bluetooth
bpa10x: free sk_buff with kfree_skb
2008-10-31 00:40:19 -07:00
cdrom
gdrom: Fix compile error
2008-10-28 17:46:02 +09:00
char
vt: incomplete initialization of vc_tab_stop
2008-11-06 15:41:17 -08:00
clocksource
connector
cpufreq
cpuidle
Merge branch 'v28-range-hrtimers-for-linus-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-10-23 10:53:02 -07:00
crypto
dca
[4/4] dca: fixup initialization dependency
2008-11-10 15:01:03 -08:00
dio
dma
[3/4] I/OAT: fix async_tx.callback checking
2008-11-10 15:01:00 -08:00
edac
edac: fix enabling of polling cell module
2008-10-30 11:38:46 -07:00
eisa
firewire
firewire: struct device - replace bus_id with dev_name(), dev_set_name()
2008-10-31 08:48:25 +01:00
firmware
gpio
gpu
Merge branch 'io-mappings-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-11-03 10:15:40 -08:00
hid
saner FASYNC handling on file close
2008-11-01 09:49:46 -07:00
hwmon
hwmon: applesmc: add support for iMac 8
2008-11-06 15:41:17 -08:00
i2c
i2c-s3c2410: Correct use of ! and &
2008-10-30 15:55:47 +01:00
ide
ide-gd: re-get capacity on revalidate
2008-11-02 21:40:10 +01:00
idle
i7300_idle: Cleanup based review comments
2008-10-24 12:55:14 -04:00
ieee1394
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6
2008-11-06 15:55:34 -08:00
infiniband
RDMA/cxgb3: deadlock in iw_cxgb3 can cause hang when configuring interface.
2008-11-11 03:52:10 -05:00
input
saner FASYNC handling on file close
2008-11-01 09:49:46 -07:00
isdn
leds
remove unused #include <version.h>'s
2008-11-01 09:50:12 -07:00
lguest
macintosh
mca
md
md: linear: Fix a division by zero bug for very small arrays.
2008-11-06 19:41:24 +11:00
media
memstick
message
saner FASYNC handling on file close
2008-11-01 09:49:46 -07:00
mfd
missing dependencies on HAVE_CLK in drivers/mfd
2008-11-01 12:40:38 -07:00
misc
remove unused #include <version.h>'s
2008-11-01 09:50:12 -07:00
mmc
[ARM] 5322/1: Fix fastpath issue in mmci.c
2008-10-28 00:00:42 +00:00
mtd
Merge git://git.infradead.org/mtd-2.6
2008-11-06 15:43:13 -08:00
net
RDMA/cxgb3: deadlock in iw_cxgb3 can cause hang when configuring interface.
2008-11-11 03:52:10 -05:00
nubus
of
OF-device: Don't overwrite numa_node in device registration
2008-10-31 16:12:01 +11:00
oprofile
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile
2008-10-23 10:05:40 -07:00
parisc
parport
Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6
2008-10-30 12:52:53 -07:00
pci
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6
2008-10-30 12:09:44 -07:00
pcmcia
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
2008-10-31 16:18:02 +09:00
pnp
drivers: remove duplicated #include
2008-11-04 08:18:19 -08:00
power
ps3
powerpc/ps3: Fix compile error in ps3-lpm.c
2008-11-05 19:59:08 +11:00
rapidio
regulator
regulator: da903x regulator bug fix
2008-10-30 15:31:35 +00:00
rtc
rtc-cmos: fix boot log message
2008-11-06 15:41:19 -08:00
s390
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
2008-10-30 11:46:28 -07:00
sbus
drivers: remove duplicated #include
2008-11-04 08:18:19 -08:00
scsi
saner FASYNC handling on file close
2008-11-01 09:49:46 -07:00
serial
atmel_serial: keep clock off when it's not needed
2008-11-06 15:41:19 -08:00
sh
sn
spi
ssb
SSB: hide empty sub menu
2008-11-10 13:50:17 -08:00
staging
drivers: remove duplicated #include
2008-11-04 08:18:19 -08:00
tc
telephony
saner FASYNC handling on file close
2008-11-01 09:49:46 -07:00
thermal
uio
saner FASYNC handling on file close
2008-11-01 09:49:46 -07:00
usb
saner FASYNC handling on file close
2008-11-01 09:49:46 -07:00
uwb
video
fbdev: fix fb_compat_ioctl() deadlocks
2008-11-06 15:41:19 -08:00
virtio
w1
watchdog
SAM9 watchdog: update for moved headers
2008-11-06 15:41:20 -08:00
xen
drivers: remove duplicated #include
2008-11-04 08:18:19 -08:00
zorro
Kconfig
regulator: Build on non-ARM platforms
2008-10-28 21:47:17 +00:00
Makefile
Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/dvrabel/uwb
2008-10-26 16:35:46 -07:00