Thanks for the patch. On 05/26/2017 12:32 AM, Nicholas A. Bellinger wrote: > > - state = iscsi_target_sk_state_check(sk); > - write_unlock_bh(&sk->sk_callback_lock); > - > - pr_debug("iscsi_target_sk_state_change: state: %d\n", state); > + orig_state_change(sk); > > - if (!state) { > - pr_debug("iscsi_target_sk_state_change got failed state\n"); > - schedule_delayed_work(&conn->login_cleanup_work, 0); I think login_cleanup_work is no longer used so you can also remove it and its code. The patch fixes the crash for me. However, is there a possible regression where if the initiator attempts new relogins we could run out of memory? With the old code, we would free the login attempts resources at this time, but with the new code the initiator will send more login attempts and so we just keep allocating more memory for each attempt until we run out or the login is finally able to complete.