aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/dev/iscsi/icl_soft.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/iscsi/icl_soft.c b/sys/dev/iscsi/icl_soft.c
index c66d8ccdb5fd..c64f0cfde71b 100644
--- a/sys/dev/iscsi/icl_soft.c
+++ b/sys/dev/iscsi/icl_soft.c
@@ -1364,9 +1364,11 @@ icl_soft_conn_close(struct icl_conn *ic)
ICL_CONN_LOCK(ic);
if (!ic->ic_disconnecting) {
so = ic->ic_socket;
- SOCKBUF_LOCK(&so->so_rcv);
+ if (so)
+ SOCKBUF_LOCK(&so->so_rcv);
ic->ic_disconnecting = true;
- SOCKBUF_UNLOCK(&so->so_rcv);
+ if (so)
+ SOCKBUF_UNLOCK(&so->so_rcv);
}
while (ic->ic_receive_running || ic->ic_send_running) {
cv_signal(&ic->ic_receive_cv);