The lport could get timeout armed while its getting disabled,
so flush lport worker after its disabled and ignore lport
retry in that case instead of WARN_ON.
[13192.936858] WARNING: at drivers/scsi/libfc/fc_lport.c:1573 fc_lport_timeout+0x53/0xa9 [libfc]()
[13192.938026] Hardware name: Bochs
[13192.938620] Modules linked in: fcoe libfcoe libfc scsi_transport_fc scsi_tgt fuse 8021q garp stp llc sunrpc ipv6 uinput microcode joydev pcspkr ixgbe e1000 i2c_piix4 i2c_core virtio_balloon dca mdio virtio_blk virtio_pci virtio_ring virtio floppy [last unloaded: speedstep_lib]
[13192.942589] Pid: 23605, comm: kworker/0:6 Tainted: G W 3.2.0+ #71
[13192.943587] Call Trace:
[13192.944052] [<
ffffffff810403f4>] warn_slowpath_common+0x85/0x9d
[13192.944940] [<
ffffffff81040426>] warn_slowpath_null+0x1a/0x1c
[13192.945734] [<
ffffffffa02746eb>] fc_lport_timeout+0x53/0xa9 [libfc]
[13192.946665] [<
ffffffff81058d88>] process_one_work+0x20c/0x3ad
[13192.947541] [<
ffffffff81058cbe>] ? process_one_work+0x142/0x3ad
[13192.948423] [<
ffffffffa0274698>] ? fc_lport_enter_ns+0x178/0x178 [libfc]
[13192.949363] [<
ffffffff8105a313>] worker_thread+0xfd/0x181
[13192.950191] [<
ffffffff8105a216>] ? manage_workers.clone.15+0x173/0x173
[13192.951100] [<
ffffffff8105e19b>] kthread+0xa4/0xac
[13192.951755] [<
ffffffff814edbb4>] kernel_thread_helper+0x4/0x10
[13192.952520] [<
ffffffff814e5cb4>] ? retint_restore_args+0x13/0x13
[13192.953398] [<
ffffffff8105e0f7>] ? __init_kthread_worker+0x5b/0x5b
[13192.954278] [<
ffffffff814edbb0>] ? gs_change+0x13/0x13
[13192.954911] ---[ end trace
9763213b95bbd803 ]---
Signed-off-by: Vasu Dev <vasu.dev@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>