Lines Matching refs:ulp_ops

179 static inline void ulp_get(struct cnic_ulp_ops *ulp_ops)  in ulp_get()  argument
181 atomic_inc(&ulp_ops->ref_count); in ulp_get()
184 static inline void ulp_put(struct cnic_ulp_ops *ulp_ops) in ulp_put() argument
186 atomic_dec(&ulp_ops->ref_count); in ulp_put()
326 struct cnic_ulp_ops *ulp_ops; in cnic_send_nlmsg() local
356 ulp_ops = rcu_dereference(cp->ulp_ops[CNIC_ULP_ISCSI]); in cnic_send_nlmsg()
357 if (ulp_ops) in cnic_send_nlmsg()
358 rc = ulp_ops->iscsi_nl_send_msg( in cnic_send_nlmsg()
394 if (!rcu_access_pointer(cp->ulp_ops[CNIC_ULP_L4])) { in cnic_iscsi_nl_msg_recv()
474 int cnic_register_driver(int ulp_type, struct cnic_ulp_ops *ulp_ops) in cnic_register_driver() argument
498 atomic_set(&ulp_ops->ref_count, 0); in cnic_register_driver()
499 rcu_assign_pointer(cnic_ulp_tbl[ulp_type], ulp_ops); in cnic_register_driver()
508 ulp_ops->cnic_init(dev); in cnic_register_driver()
518 struct cnic_ulp_ops *ulp_ops; in cnic_unregister_driver() local
526 ulp_ops = cnic_ulp_tbl_prot(ulp_type); in cnic_unregister_driver()
527 if (!ulp_ops) { in cnic_unregister_driver()
536 if (rcu_access_pointer(cp->ulp_ops[ulp_type])) { in cnic_unregister_driver()
549 while ((atomic_read(&ulp_ops->ref_count) != 0) && (i < 20)) { in cnic_unregister_driver()
554 if (atomic_read(&ulp_ops->ref_count) != 0) in cnic_unregister_driver()
571 struct cnic_ulp_ops *ulp_ops; in cnic_register_device() local
584 if (rcu_access_pointer(cp->ulp_ops[ulp_type])) { in cnic_register_device()
593 ulp_ops = cnic_ulp_tbl_prot(ulp_type); in cnic_register_device()
594 rcu_assign_pointer(cp->ulp_ops[ulp_type], ulp_ops); in cnic_register_device()
599 ulp_ops->cnic_start(cp->ulp_handle[ulp_type]); in cnic_register_device()
624 if (rcu_access_pointer(cp->ulp_ops[ulp_type])) { in cnic_unregister_device()
625 RCU_INIT_POINTER(cp->ulp_ops[ulp_type], NULL); in cnic_unregister_device()
1435 struct cnic_ulp_ops *ulp_ops; in cnic_reply_bnx2x_kcqes() local
1438 ulp_ops = rcu_dereference(cp->ulp_ops[ulp_type]); in cnic_reply_bnx2x_kcqes()
1439 if (likely(ulp_ops)) { in cnic_reply_bnx2x_kcqes()
1440 ulp_ops->indicate_kcqes(cp->ulp_handle[ulp_type], in cnic_reply_bnx2x_kcqes()
2841 struct cnic_ulp_ops *ulp_ops; in service_kcqes() local
2877 ulp_ops = rcu_dereference(cp->ulp_ops[ulp_type]); in service_kcqes()
2878 if (likely(ulp_ops)) { in service_kcqes()
2879 ulp_ops->indicate_kcqes(cp->ulp_handle[ulp_type], in service_kcqes()
3195 struct cnic_ulp_ops *ulp_ops; in cnic_ulp_stop_one() local
3201 ulp_ops = rcu_dereference_protected(cp->ulp_ops[if_type], in cnic_ulp_stop_one()
3203 if (!ulp_ops) { in cnic_ulp_stop_one()
3211 ulp_ops->cnic_stop(cp->ulp_handle[if_type]); in cnic_ulp_stop_one()
3231 struct cnic_ulp_ops *ulp_ops; in cnic_ulp_start() local
3234 ulp_ops = rcu_dereference_protected(cp->ulp_ops[if_type], in cnic_ulp_start()
3236 if (!ulp_ops || !ulp_ops->cnic_start) { in cnic_ulp_start()
3244 ulp_ops->cnic_start(cp->ulp_handle[if_type]); in cnic_ulp_start()
3253 struct cnic_ulp_ops *ulp_ops; in cnic_copy_ulp_stats() local
3257 ulp_ops = rcu_dereference_protected(cp->ulp_ops[ulp_type], in cnic_copy_ulp_stats()
3259 if (ulp_ops && ulp_ops->cnic_get_stats) in cnic_copy_ulp_stats()
3260 rc = ulp_ops->cnic_get_stats(cp->ulp_handle[ulp_type]); in cnic_copy_ulp_stats()
3340 struct cnic_ulp_ops *ulp_ops; in cnic_ulp_init() local
3343 ulp_ops = cnic_ulp_tbl_prot(i); in cnic_ulp_init()
3344 if (!ulp_ops || !ulp_ops->cnic_init) { in cnic_ulp_init()
3348 ulp_get(ulp_ops); in cnic_ulp_init()
3352 ulp_ops->cnic_init(dev); in cnic_ulp_init()
3354 ulp_put(ulp_ops); in cnic_ulp_init()
3364 struct cnic_ulp_ops *ulp_ops; in cnic_ulp_exit() local
3367 ulp_ops = cnic_ulp_tbl_prot(i); in cnic_ulp_exit()
3368 if (!ulp_ops || !ulp_ops->cnic_exit) { in cnic_ulp_exit()
3372 ulp_get(ulp_ops); in cnic_ulp_exit()
3376 ulp_ops->cnic_exit(dev); in cnic_ulp_exit()
3378 ulp_put(ulp_ops); in cnic_ulp_exit()
3919 struct cnic_ulp_ops *ulp_ops; in cnic_cm_upcall() local
3923 ulp_ops = rcu_dereference(cp->ulp_ops[ulp_type]); in cnic_cm_upcall()
3924 if (ulp_ops) { in cnic_cm_upcall()
3926 ulp_ops->cm_connect_complete(csk); in cnic_cm_upcall()
3928 ulp_ops->cm_close_complete(csk); in cnic_cm_upcall()
3930 ulp_ops->cm_remote_abort(csk); in cnic_cm_upcall()
3932 ulp_ops->cm_abort_complete(csk); in cnic_cm_upcall()
3934 ulp_ops->cm_remote_close(csk); in cnic_cm_upcall()
4350 rcu_assign_pointer(cp->ulp_ops[CNIC_ULP_L4], &cm_ulp_ops); in cnic_cm_open()
5434 RCU_INIT_POINTER(cp->ulp_ops[CNIC_ULP_L4], NULL); in cnic_stop_hw()
5664 struct cnic_ulp_ops *ulp_ops; in cnic_rcv_netevent() local
5668 ulp_ops = rcu_dereference_protected(cp->ulp_ops[if_type], in cnic_rcv_netevent()
5670 if (!ulp_ops || !ulp_ops->indicate_netevent) { in cnic_rcv_netevent()
5680 ulp_ops->indicate_netevent(ctx, event, vlan_id); in cnic_rcv_netevent()