Lines Matching defs:ulp_ops

178 static inline void ulp_get(struct cnic_ulp_ops *ulp_ops)
180 atomic_inc(&ulp_ops->ref_count);
183 static inline void ulp_put(struct cnic_ulp_ops *ulp_ops)
185 atomic_dec(&ulp_ops->ref_count);
325 struct cnic_ulp_ops *ulp_ops;
355 ulp_ops = rcu_dereference(cp->ulp_ops[CNIC_ULP_ISCSI]);
356 if (ulp_ops)
357 rc = ulp_ops->iscsi_nl_send_msg(
393 if (!rcu_access_pointer(cp->ulp_ops[CNIC_ULP_L4])) {
473 int cnic_register_driver(int ulp_type, struct cnic_ulp_ops *ulp_ops)
497 atomic_set(&ulp_ops->ref_count, 0);
498 rcu_assign_pointer(cnic_ulp_tbl[ulp_type], ulp_ops);
507 ulp_ops->cnic_init(dev);
517 struct cnic_ulp_ops *ulp_ops;
525 ulp_ops = cnic_ulp_tbl_prot(ulp_type);
526 if (!ulp_ops) {
535 if (rcu_access_pointer(cp->ulp_ops[ulp_type])) {
548 while ((atomic_read(&ulp_ops->ref_count) != 0) && (i < 20)) {
553 if (atomic_read(&ulp_ops->ref_count) != 0)
570 struct cnic_ulp_ops *ulp_ops;
583 if (rcu_access_pointer(cp->ulp_ops[ulp_type])) {
592 ulp_ops = cnic_ulp_tbl_prot(ulp_type);
593 rcu_assign_pointer(cp->ulp_ops[ulp_type], ulp_ops);
598 ulp_ops->cnic_start(cp->ulp_handle[ulp_type]);
623 if (rcu_access_pointer(cp->ulp_ops[ulp_type])) {
624 RCU_INIT_POINTER(cp->ulp_ops[ulp_type], NULL);
1426 struct cnic_ulp_ops *ulp_ops;
1429 ulp_ops = rcu_dereference(cp->ulp_ops[ulp_type]);
1430 if (likely(ulp_ops)) {
1431 ulp_ops->indicate_kcqes(cp->ulp_handle[ulp_type],
2832 struct cnic_ulp_ops *ulp_ops;
2868 ulp_ops = rcu_dereference(cp->ulp_ops[ulp_type]);
2869 if (likely(ulp_ops)) {
2870 ulp_ops->indicate_kcqes(cp->ulp_handle[ulp_type],
3186 struct cnic_ulp_ops *ulp_ops;
3192 ulp_ops = rcu_dereference_protected(cp->ulp_ops[if_type],
3194 if (!ulp_ops) {
3202 ulp_ops->cnic_stop(cp->ulp_handle[if_type]);
3222 struct cnic_ulp_ops *ulp_ops;
3225 ulp_ops = rcu_dereference_protected(cp->ulp_ops[if_type],
3227 if (!ulp_ops || !ulp_ops->cnic_start) {
3235 ulp_ops->cnic_start(cp->ulp_handle[if_type]);
3244 struct cnic_ulp_ops *ulp_ops;
3248 ulp_ops = rcu_dereference_protected(cp->ulp_ops[ulp_type],
3250 if (ulp_ops && ulp_ops->cnic_get_stats)
3251 rc = ulp_ops->cnic_get_stats(cp->ulp_handle[ulp_type]);
3331 struct cnic_ulp_ops *ulp_ops;
3334 ulp_ops = cnic_ulp_tbl_prot(i);
3335 if (!ulp_ops || !ulp_ops->cnic_init) {
3339 ulp_get(ulp_ops);
3343 ulp_ops->cnic_init(dev);
3345 ulp_put(ulp_ops);
3355 struct cnic_ulp_ops *ulp_ops;
3358 ulp_ops = cnic_ulp_tbl_prot(i);
3359 if (!ulp_ops || !ulp_ops->cnic_exit) {
3363 ulp_get(ulp_ops);
3367 ulp_ops->cnic_exit(dev);
3369 ulp_put(ulp_ops);
3909 struct cnic_ulp_ops *ulp_ops;
3913 ulp_ops = rcu_dereference(cp->ulp_ops[ulp_type]);
3914 if (ulp_ops) {
3916 ulp_ops->cm_connect_complete(csk);
3918 ulp_ops->cm_close_complete(csk);
3920 ulp_ops->cm_remote_abort(csk);
3922 ulp_ops->cm_abort_complete(csk);
3924 ulp_ops->cm_remote_close(csk);
4340 rcu_assign_pointer(cp->ulp_ops[CNIC_ULP_L4], &cm_ulp_ops);
5423 RCU_INIT_POINTER(cp->ulp_ops[CNIC_ULP_L4], NULL);
5653 struct cnic_ulp_ops *ulp_ops;
5657 ulp_ops = rcu_dereference_protected(cp->ulp_ops[if_type],
5659 if (!ulp_ops || !ulp_ops->indicate_netevent) {
5669 ulp_ops->indicate_netevent(ctx, event, vlan_id);