Lines Matching refs:ulp_ops

178 static inline void ulp_get(struct cnic_ulp_ops *ulp_ops)  in ulp_get()  argument
180 atomic_inc(&ulp_ops->ref_count); in ulp_get()
183 static inline void ulp_put(struct cnic_ulp_ops *ulp_ops) in ulp_put() argument
185 atomic_dec(&ulp_ops->ref_count); in ulp_put()
317 struct cnic_ulp_ops *ulp_ops; in cnic_send_nlmsg() local
347 ulp_ops = rcu_dereference(cp->ulp_ops[CNIC_ULP_ISCSI]); in cnic_send_nlmsg()
348 if (ulp_ops) in cnic_send_nlmsg()
349 rc = ulp_ops->iscsi_nl_send_msg( in cnic_send_nlmsg()
385 if (!rcu_access_pointer(cp->ulp_ops[CNIC_ULP_L4])) { in cnic_iscsi_nl_msg_recv()
465 int cnic_register_driver(int ulp_type, struct cnic_ulp_ops *ulp_ops) in cnic_register_driver() argument
489 atomic_set(&ulp_ops->ref_count, 0); in cnic_register_driver()
490 rcu_assign_pointer(cnic_ulp_tbl[ulp_type], ulp_ops); in cnic_register_driver()
499 ulp_ops->cnic_init(dev); in cnic_register_driver()
509 struct cnic_ulp_ops *ulp_ops; in cnic_unregister_driver() local
517 ulp_ops = cnic_ulp_tbl_prot(ulp_type); in cnic_unregister_driver()
518 if (!ulp_ops) { in cnic_unregister_driver()
527 if (rcu_access_pointer(cp->ulp_ops[ulp_type])) { in cnic_unregister_driver()
540 while ((atomic_read(&ulp_ops->ref_count) != 0) && (i < 20)) { in cnic_unregister_driver()
545 if (atomic_read(&ulp_ops->ref_count) != 0) in cnic_unregister_driver()
562 struct cnic_ulp_ops *ulp_ops; in cnic_register_device() local
575 if (rcu_access_pointer(cp->ulp_ops[ulp_type])) { in cnic_register_device()
584 ulp_ops = cnic_ulp_tbl_prot(ulp_type); in cnic_register_device()
585 rcu_assign_pointer(cp->ulp_ops[ulp_type], ulp_ops); in cnic_register_device()
590 ulp_ops->cnic_start(cp->ulp_handle[ulp_type]); in cnic_register_device()
615 if (rcu_access_pointer(cp->ulp_ops[ulp_type])) { in cnic_unregister_device()
616 RCU_INIT_POINTER(cp->ulp_ops[ulp_type], NULL); in cnic_unregister_device()
1417 struct cnic_ulp_ops *ulp_ops; in cnic_reply_bnx2x_kcqes() local
1420 ulp_ops = rcu_dereference(cp->ulp_ops[ulp_type]); in cnic_reply_bnx2x_kcqes()
1421 if (likely(ulp_ops)) { in cnic_reply_bnx2x_kcqes()
1422 ulp_ops->indicate_kcqes(cp->ulp_handle[ulp_type], in cnic_reply_bnx2x_kcqes()
2826 struct cnic_ulp_ops *ulp_ops; in service_kcqes() local
2862 ulp_ops = rcu_dereference(cp->ulp_ops[ulp_type]); in service_kcqes()
2863 if (likely(ulp_ops)) { in service_kcqes()
2864 ulp_ops->indicate_kcqes(cp->ulp_handle[ulp_type], in service_kcqes()
3180 struct cnic_ulp_ops *ulp_ops; in cnic_ulp_stop_one() local
3186 ulp_ops = rcu_dereference_protected(cp->ulp_ops[if_type], in cnic_ulp_stop_one()
3188 if (!ulp_ops) { in cnic_ulp_stop_one()
3196 ulp_ops->cnic_stop(cp->ulp_handle[if_type]); in cnic_ulp_stop_one()
3216 struct cnic_ulp_ops *ulp_ops; in cnic_ulp_start() local
3219 ulp_ops = rcu_dereference_protected(cp->ulp_ops[if_type], in cnic_ulp_start()
3221 if (!ulp_ops || !ulp_ops->cnic_start) { in cnic_ulp_start()
3229 ulp_ops->cnic_start(cp->ulp_handle[if_type]); in cnic_ulp_start()
3238 struct cnic_ulp_ops *ulp_ops; in cnic_copy_ulp_stats() local
3242 ulp_ops = rcu_dereference_protected(cp->ulp_ops[ulp_type], in cnic_copy_ulp_stats()
3244 if (ulp_ops && ulp_ops->cnic_get_stats) in cnic_copy_ulp_stats()
3245 rc = ulp_ops->cnic_get_stats(cp->ulp_handle[ulp_type]); in cnic_copy_ulp_stats()
3325 struct cnic_ulp_ops *ulp_ops; in cnic_ulp_init() local
3328 ulp_ops = cnic_ulp_tbl_prot(i); in cnic_ulp_init()
3329 if (!ulp_ops || !ulp_ops->cnic_init) { in cnic_ulp_init()
3333 ulp_get(ulp_ops); in cnic_ulp_init()
3337 ulp_ops->cnic_init(dev); in cnic_ulp_init()
3339 ulp_put(ulp_ops); in cnic_ulp_init()
3349 struct cnic_ulp_ops *ulp_ops; in cnic_ulp_exit() local
3352 ulp_ops = cnic_ulp_tbl_prot(i); in cnic_ulp_exit()
3353 if (!ulp_ops || !ulp_ops->cnic_exit) { in cnic_ulp_exit()
3357 ulp_get(ulp_ops); in cnic_ulp_exit()
3361 ulp_ops->cnic_exit(dev); in cnic_ulp_exit()
3363 ulp_put(ulp_ops); in cnic_ulp_exit()
3903 struct cnic_ulp_ops *ulp_ops; in cnic_cm_upcall() local
3907 ulp_ops = rcu_dereference(cp->ulp_ops[ulp_type]); in cnic_cm_upcall()
3908 if (ulp_ops) { in cnic_cm_upcall()
3910 ulp_ops->cm_connect_complete(csk); in cnic_cm_upcall()
3912 ulp_ops->cm_close_complete(csk); in cnic_cm_upcall()
3914 ulp_ops->cm_remote_abort(csk); in cnic_cm_upcall()
3916 ulp_ops->cm_abort_complete(csk); in cnic_cm_upcall()
3918 ulp_ops->cm_remote_close(csk); in cnic_cm_upcall()
4331 rcu_assign_pointer(cp->ulp_ops[CNIC_ULP_L4], &cm_ulp_ops); in cnic_cm_open()
5412 RCU_INIT_POINTER(cp->ulp_ops[CNIC_ULP_L4], NULL); in cnic_stop_hw()
5623 struct cnic_ulp_ops *ulp_ops; in cnic_rcv_netevent() local
5627 ulp_ops = rcu_dereference_protected(cp->ulp_ops[if_type], in cnic_rcv_netevent()
5629 if (!ulp_ops || !ulp_ops->indicate_netevent) { in cnic_rcv_netevent()
5639 ulp_ops->indicate_netevent(ctx, event, vlan_id); in cnic_rcv_netevent()