Lines Matching refs:ulp_ops

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