Lines Matching defs:ulp_ops
160 static inline void ulp_get(struct cnic_ulp_ops *ulp_ops)
162 atomic_inc(&ulp_ops->ref_count);
165 static inline void ulp_put(struct cnic_ulp_ops *ulp_ops)
167 atomic_dec(&ulp_ops->ref_count);
276 struct cnic_ulp_ops *ulp_ops;
302 ulp_ops = rcu_dereference(cnic_ulp_tbl[CNIC_ULP_ISCSI]);
303 if (ulp_ops)
304 ulp_ops->iscsi_nl_send_msg(cp->dev, msg_type, buf, len);
331 if (!rcu_dereference(cp->ulp_ops[CNIC_ULP_L4])) {
415 int cnic_register_driver(int ulp_type, struct cnic_ulp_ops *ulp_ops)
439 atomic_set(&ulp_ops->ref_count, 0);
440 rcu_assign_pointer(cnic_ulp_tbl[ulp_type], ulp_ops);
450 ulp_ops->cnic_init(dev);
461 struct cnic_ulp_ops *ulp_ops;
469 ulp_ops = cnic_ulp_tbl[ulp_type];
470 if (!ulp_ops) {
479 if (rcu_dereference(cp->ulp_ops[ulp_type])) {
495 while ((atomic_read(&ulp_ops->ref_count) != 0) && (i < 20)) {
500 if (atomic_read(&ulp_ops->ref_count) != 0)
516 struct cnic_ulp_ops *ulp_ops;
529 if (rcu_dereference(cp->ulp_ops[ulp_type])) {
538 ulp_ops = cnic_ulp_tbl[ulp_type];
539 rcu_assign_pointer(cp->ulp_ops[ulp_type], ulp_ops);
544 ulp_ops->cnic_start(cp->ulp_handle[ulp_type]);
563 if (rcu_dereference(cp->ulp_ops[ulp_type])) {
564 rcu_assign_pointer(cp->ulp_ops[ulp_type], NULL);
1234 struct cnic_ulp_ops *ulp_ops;
1237 ulp_ops = rcu_dereference(cp->ulp_ops[ulp_type]);
1238 if (likely(ulp_ops)) {
1239 ulp_ops->indicate_kcqes(cp->ulp_handle[ulp_type],
2071 struct cnic_ulp_ops *ulp_ops;
2105 ulp_ops = rcu_dereference(cp->ulp_ops[ulp_type]);
2106 if (likely(ulp_ops)) {
2107 ulp_ops->indicate_kcqes(cp->ulp_handle[ulp_type],
2386 struct cnic_ulp_ops *ulp_ops;
2389 ulp_ops = cp->ulp_ops[if_type];
2390 if (!ulp_ops) {
2398 ulp_ops->cnic_stop(cp->ulp_handle[if_type]);
2410 struct cnic_ulp_ops *ulp_ops;
2413 ulp_ops = cp->ulp_ops[if_type];
2414 if (!ulp_ops || !ulp_ops->cnic_start) {
2422 ulp_ops->cnic_start(cp->ulp_handle[if_type]);
2474 struct cnic_ulp_ops *ulp_ops;
2477 ulp_ops = cnic_ulp_tbl[i];
2478 if (!ulp_ops || !ulp_ops->cnic_init) {
2482 ulp_get(ulp_ops);
2486 ulp_ops->cnic_init(dev);
2488 ulp_put(ulp_ops);
2498 struct cnic_ulp_ops *ulp_ops;
2501 ulp_ops = cnic_ulp_tbl[i];
2502 if (!ulp_ops || !ulp_ops->cnic_exit) {
2506 ulp_get(ulp_ops);
2510 ulp_ops->cnic_exit(dev);
2512 ulp_put(ulp_ops);
3027 struct cnic_ulp_ops *ulp_ops;
3031 ulp_ops = rcu_dereference(cp->ulp_ops[ulp_type]);
3032 if (ulp_ops) {
3034 ulp_ops->cm_connect_complete(csk);
3036 ulp_ops->cm_close_complete(csk);
3038 ulp_ops->cm_remote_abort(csk);
3040 ulp_ops->cm_abort_complete(csk);
3042 ulp_ops->cm_remote_close(csk);
3337 rcu_assign_pointer(cp->ulp_ops[CNIC_ULP_L4], &cm_ulp_ops);
4411 rcu_assign_pointer(cp->ulp_ops[CNIC_ULP_L4], NULL);
4647 struct cnic_ulp_ops *ulp_ops;
4650 ulp_ops = rcu_dereference(cp->ulp_ops[if_type]);
4651 if (!ulp_ops || !ulp_ops->indicate_netevent)
4656 ulp_ops->indicate_netevent(ctx, event);