aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/cnic.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/cnic.c b/drivers/net/cnic.c
index 40865aac2afa..45584442a35c 100644
--- a/drivers/net/cnic.c
+++ b/drivers/net/cnic.c
@@ -327,6 +327,12 @@ static int cnic_iscsi_nl_msg_recv(struct cnic_dev *dev, u32 msg_type,
327 if (l5_cid >= MAX_CM_SK_TBL_SZ) 327 if (l5_cid >= MAX_CM_SK_TBL_SZ)
328 break; 328 break;
329 329
330 rcu_read_lock();
331 if (!rcu_dereference(cp->ulp_ops[CNIC_ULP_L4])) {
332 rc = -ENODEV;
333 rcu_read_unlock();
334 break;
335 }
330 csk = &cp->csk_tbl[l5_cid]; 336 csk = &cp->csk_tbl[l5_cid];
331 csk_hold(csk); 337 csk_hold(csk);
332 if (cnic_in_use(csk)) { 338 if (cnic_in_use(csk)) {
@@ -341,6 +347,7 @@ static int cnic_iscsi_nl_msg_recv(struct cnic_dev *dev, u32 msg_type,
341 cnic_cm_set_pg(csk); 347 cnic_cm_set_pg(csk);
342 } 348 }
343 csk_put(csk); 349 csk_put(csk);
350 rcu_read_unlock();
344 rc = 0; 351 rc = 0;
345 } 352 }
346 } 353 }