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);
1428 struct cnic_ulp_ops *ulp_ops;
1431 ulp_ops = rcu_dereference(cp->ulp_ops[ulp_type]);
1432 if (likely(ulp_ops)) {
1433 ulp_ops->indicate_kcqes(cp->ulp_handle[ulp_type],
2834 struct cnic_ulp_ops *ulp_ops;
2870 ulp_ops = rcu_dereference(cp->ulp_ops[ulp_type]);
2871 if (likely(ulp_ops)) {
2872 ulp_ops->indicate_kcqes(cp->ulp_handle[ulp_type],
3188 struct cnic_ulp_ops *ulp_ops;
3194 ulp_ops = rcu_dereference_protected(cp->ulp_ops[if_type],
3196 if (!ulp_ops) {
3204 ulp_ops->cnic_stop(cp->ulp_handle[if_type]);
3224 struct cnic_ulp_ops *ulp_ops;
3227 ulp_ops = rcu_dereference_protected(cp->ulp_ops[if_type],
3229 if (!ulp_ops || !ulp_ops->cnic_start) {
3237 ulp_ops->cnic_start(cp->ulp_handle[if_type]);
3246 struct cnic_ulp_ops *ulp_ops;
3250 ulp_ops = rcu_dereference_protected(cp->ulp_ops[ulp_type],
3252 if (ulp_ops && ulp_ops->cnic_get_stats)
3253 rc = ulp_ops->cnic_get_stats(cp->ulp_handle[ulp_type]);
3333 struct cnic_ulp_ops *ulp_ops;
3336 ulp_ops = cnic_ulp_tbl_prot(i);
3337 if (!ulp_ops || !ulp_ops->cnic_init) {
3341 ulp_get(ulp_ops);
3345 ulp_ops->cnic_init(dev);
3347 ulp_put(ulp_ops);
3357 struct cnic_ulp_ops *ulp_ops;
3360 ulp_ops = cnic_ulp_tbl_prot(i);
3361 if (!ulp_ops || !ulp_ops->cnic_exit) {
3365 ulp_get(ulp_ops);
3369 ulp_ops->cnic_exit(dev);
3371 ulp_put(ulp_ops);
3911 struct cnic_ulp_ops *ulp_ops;
3915 ulp_ops = rcu_dereference(cp->ulp_ops[ulp_type]);
3916 if (ulp_ops) {
3918 ulp_ops->cm_connect_complete(csk);
3920 ulp_ops->cm_close_complete(csk);
3922 ulp_ops->cm_remote_abort(csk);
3924 ulp_ops->cm_abort_complete(csk);
3926 ulp_ops->cm_remote_close(csk);
4343 rcu_assign_pointer(cp->ulp_ops[CNIC_ULP_L4], &cm_ulp_ops);
5426 RCU_INIT_POINTER(cp->ulp_ops[CNIC_ULP_L4], NULL);
5656 struct cnic_ulp_ops *ulp_ops;
5660 ulp_ops = rcu_dereference_protected(cp->ulp_ops[if_type],
5662 if (!ulp_ops || !ulp_ops->indicate_netevent) {
5672 ulp_ops->indicate_netevent(ctx, event, vlan_id);