linux-uconsole/drivers
Joe Eykholt 407590ad18 libfc: fix free of fc_rport_priv with timer pending
commit b4a9c7ede9 upstream.

Timer crashes were caused by freeing a struct fc_rport_priv
with a timer pending, causing the timer facility list to be
corrupted.  This was during FC uplink flap tests with a lot
of targets.

After discovery, we were doing an PLOGI on an rdata that was
in DELETE state but not yet removed from the lookup list.
This moved the rdata from DELETE state to PLOGI state.
If the PLOGI exchange allocation failed and needed to be
retried, the timer scheduling could race with the free
being done by fc_rport_work().

When fc_rport_login() is called on a rport in DELETE state,
move it to a new state RESTART.  In fc_rport_work, when
handling a LOGO, STOPPED or FAILED event, look for restart
state.  In the RESTART case, don't take the rdata off the
list and after the transport remote port is deleted and
exchanges are reset, re-login to the remote port.

Note that the new RESTART state also corrects a problem we
had when re-discovering a port that had moved to DELETE state.
In that case, a new rdata was created, but the old rdata
would do an exchange manager reset affecting the FC_ID
for both the new rdata and old rdata.  With the new state,
the new port isn't logged into until after any old exchanges
are reset.

Signed-off-by: Joe Eykholt <jeykholt@cisco.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-01-28 15:01:38 -08:00
..
accessibility
acpi ACPI: EC: Add wait for irq storm 2010-01-25 10:49:36 -08:00
amba
ata pata_cmd64x: fix overclocking of UDMA0-2 modes 2010-01-06 15:03:23 -08:00
atm
auxdisplay
base driver-core: fix devtmpfs crash on s390 2010-01-28 15:00:45 -08:00
block aoe: prevent cache aliases 2009-12-01 16:32:20 -08:00
bluetooth Bluetooth: Prevent ill-timed autosuspend in USB driver 2010-01-06 15:03:43 -08:00
cdrom
char nozomi: quick fix for the close/close bug 2010-01-25 10:49:20 -08:00
clocksource
connector connector: Fix incompatible pointer type warning 2009-10-06 01:39:51 -07:00
cpufreq [CPUFREQ] Fix stale cpufreq_cpu_governor pointer 2009-11-17 23:15:04 -05:00
cpuidle drivers/cpuidle/governors/menu.c: fix undefined reference to `__udivdi3' 2010-01-18 10:19:31 -08:00
crypto crypto: padlock-aes - Use the correct mask when checking whether copying is required 2009-11-03 10:32:03 -05:00
dca
dio
dma ioat2,3: put channel hardware in known state at init 2010-01-06 15:03:59 -08:00
edac edac: i5000_edac critical fix panic out of bounds 2010-01-22 15:18:15 -08:00
eisa
firewire firewire: ohci: handle receive packets with a data length of zero 2009-12-18 14:02:57 -08:00
firmware iSCSI/iBFT: use proper address translation 2009-10-05 12:05:40 -07:00
gpio gpio: Langwell GPIO driver bugfixes 2009-12-01 16:32:19 -08:00
gpu drm/i915: try another possible DDC bus for the SDVO device with multiple outputs 2010-01-25 10:49:39 -08:00
hid HID: fixup quirk for NCR devices 2010-01-28 15:01:20 -08:00
hwmon hwmon: (adt7462) Fix pin 28 monitoring 2010-01-18 10:19:43 -08:00
i2c i2c/pca: Don't use *_interruptible 2010-01-22 15:18:35 -08:00
ide slc90e66: fix UDMA handling 2009-12-18 14:05:04 -08:00
idle
ieee1394 headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
ieee802154 ieee802154: dont leak skbs in ieee802154_fake_xmit() 2009-11-19 13:16:21 -08:00
infiniband headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
input Input: ALPS - add interleaved protocol support (Dell E6x00 series) 2010-01-28 15:00:43 -08:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-18 14:54:45 -08:00
leds leds-gpio: fix possible crash on OF device unbinding 2009-11-16 11:50:42 +00:00
lguest lguest: fix bug in setting guest GDT entry 2010-01-06 15:05:19 -08:00
macintosh powerpc/therm_adt746x: Record pwm invert bit at module load time] 2009-12-18 14:04:32 -08:00
mca
md DM: Fix device mapper topology stacking 2010-01-25 10:49:41 -08:00
media V4L/DVB (13168): Add support for Asus Europa Hybrid DVB-T card (SAA7134 SubVendor ID: 0x1043 Device ID: 0x4847) 2010-01-28 15:00:56 -08:00
memstick
message headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
mfd mfd: WM835x GPIO direction register is not locked 2010-01-22 15:18:18 -08:00
misc SCSI: enclosure: fix oops while iterating enclosure_status array 2010-01-25 10:49:37 -08:00
mmc mmc_block: fix queue cleanup 2010-01-18 10:19:36 -08:00
mtd UBI: flush wl before clearing update marker 2009-12-18 14:03:54 -08:00
net atl1e:disable NETIF_F_TSO6 for hardware limit 2010-01-28 15:01:00 -08:00
nubus
of of: Remove nested function 2009-10-15 09:58:27 -06:00
oprofile oprofile: warn on freeing event buffer too early 2009-10-09 21:32:05 +02:00
parisc
parport
pci PCI: Always set prefetchable base/limit upper32 registers 2010-01-28 15:01:15 -08:00
pcmcia PCI/cardbus: Add a fixup hook and fix powerpc 2010-01-22 15:18:26 -08:00
platform asus-laptop: add Lenovo SL hotkey support 2010-01-22 15:18:29 -08:00
pnp
power
pps pps: events reporting fix up 2009-11-12 07:26:01 -08:00
ps3
rapidio
regulator regulator: Initialise wm831x structure pointor for ISINK driver 2009-12-02 19:37:16 +00:00
rtc rtc_cmos: convert shutdown to new pnp_driver->shutdown 2010-01-18 10:19:29 -08:00
s390 S390: dasd: support DIAG access for read-only devices 2010-01-06 15:04:54 -08:00
sbus
scsi libfc: fix free of fc_rport_priv with timer pending 2010-01-28 15:01:38 -08:00
serial serial: 8250_pnp: use wildcard for serial Wacom tablets 2010-01-25 10:49:24 -08:00
sfi SFI: remove __init from sfi_verify_table 2009-10-03 01:16:12 -04:00
sh
sn
spi SPI: spi_txx9: Fix bit rate calculation 2009-12-02 23:58:32 +00:00
ssb ssb: Fix range check in sprom write 2009-12-18 14:03:24 -08:00
staging Staging: hv: fix smp problems in the hyperv core code 2010-01-25 10:49:15 -08:00
tc
telephony
thermal acpi: thermal: Add EOL to the trip_point_N_type strings 2009-11-05 17:33:24 -05:00
uio uio: pm_runtime_disable is needed if failed 2009-11-13 11:36:00 +09:00
usb USB: ftdi_sio: add USB device ID's for B&B Electronics line 2010-01-28 15:00:54 -08:00
uwb headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
video revert "drivers/video/s3c-fb.c: fix clock setting for Samsung SoC Framebuffer" 2010-01-22 15:17:59 -08:00
virtio virtio: order used ring after used index read 2009-10-29 08:50:37 +10:30
vlynq
w1 ds2482: Discard obsolete detect method 2009-10-04 22:53:41 +02:00
watchdog iTCO_wdt: Add support for Intel Ibex Peak 2010-01-28 15:00:58 -08:00
xen xen: fix hang on suspend. 2010-01-18 10:19:44 -08:00
zorro
Kconfig
Makefile