Rob, this is probably fixed by your upcoming patches.
The scenario is, fc_rport_reject holds the lport lock while
calling tt.lport_login, which then calls fc_lport_set_fid,
which resets the rports. When it resets the rport to DNS,
fc_rport() reset grabs the ... wait for it ... lport lock!
Or tries to. For a long time.
If we didn't need to hold the lport lock when calling
tt.lport_login, then it could be dropped before lport
calls rport_reset_list.
Also, if rport didn't need to treat the DNS rport specially,
we wouldn't run into this problem.
Joe
BUG: spinlock lockup on CPU#0, swapper/0, ffff88013b13d190
Pid: 0, comm: swapper Not tainted 2.6.27-rc1-ra3.1 #1
Call Trace:
<IRQ> [<ffffffff803786e6>] _raw_spin_lock+0xfb/0x123
[<ffffffff80574f93>] _spin_lock_bh+0x32/0x36
[<ffffffffa0044642>] fc_rport_reset+0x45/0xfb [libfc]
[<ffffffffa0043230>] fc_rport_reset_list+0x42/0x7d [libfc]
[<ffffffffa0041294>] fc_lport_set_fid+0x50/0x55 [libfc]
[<ffffffffa0041802>] fc_lport_enter_reset+0xb4/0xcc [libfc]
[<ffffffffa0042b33>] fc_rport_reject+0x158/0x18a [libfc]
[<ffffffffa0042be8>] fc_rport_error+0x83/0x99 [libfc]
[<ffffffffa00435b7>] fc_rport_plogi_resp+0x1ad/0x1ce [libfc]
[<ffffffffa004340a>] ? fc_rport_plogi_resp+0x0/0x1ce [libfc]
[<ffffffffa003fe49>] fc_exch_timeout+0x21d/0x246 [libfc]
[<ffffffffa003fc2c>] ? fc_exch_timeout+0x0/0x246 [libfc]
[<ffffffff8023a7ec>] run_timer_softirq+0x17e/0x1f8
[<ffffffff8023696d>] __do_softirq+0x68/0xec
[<ffffffff8020c56c>] call_softirq+0x1c/0x28
[<ffffffff8020dd99>] do_softirq+0x39/0x8a
[<ffffffff80236903>] irq_exit+0x4e/0x50
[<ffffffff8021bda0>] smp_apic_timer_interrupt+0x8f/0xab
[<ffffffff8020bfbb>] apic_timer_interrupt+0x6b/0x70
<EOI> [<ffffffff80577aba>] ? __atomic_notifier_call_chain+0x0/0x83
[<ffffffff80211a65>] ? mwait_idle+0x43/0x56
[<ffffffff80211a6e>] ? mwait_idle+0x4c/0x56
[<ffffffff80211a65>] ? mwait_idle+0x43/0x56
[<ffffffff80209f6b>] ? cpu_idle+0x69/0x87
[<ffffffff8055719d>] ? rest_init+0x61/0x63
_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel