diff options
Diffstat (limited to 'drivers/infiniband/core/iwcm.c')
-rw-r--r-- | drivers/infiniband/core/iwcm.c | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/drivers/infiniband/core/iwcm.c b/drivers/infiniband/core/iwcm.c index 732637c913d9..72141c5b7c95 100644 --- a/drivers/infiniband/core/iwcm.c +++ b/drivers/infiniband/core/iwcm.c | |||
@@ -394,7 +394,7 @@ static void destroy_cm_id(struct iw_cm_id *cm_id) | |||
394 | cm_id_priv->state = IW_CM_STATE_DESTROYING; | 394 | cm_id_priv->state = IW_CM_STATE_DESTROYING; |
395 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); | 395 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); |
396 | /* destroy the listening endpoint */ | 396 | /* destroy the listening endpoint */ |
397 | cm_id->device->iwcm->destroy_listen(cm_id); | 397 | cm_id->device->ops.iw_destroy_listen(cm_id); |
398 | spin_lock_irqsave(&cm_id_priv->lock, flags); | 398 | spin_lock_irqsave(&cm_id_priv->lock, flags); |
399 | break; | 399 | break; |
400 | case IW_CM_STATE_ESTABLISHED: | 400 | case IW_CM_STATE_ESTABLISHED: |
@@ -417,7 +417,7 @@ static void destroy_cm_id(struct iw_cm_id *cm_id) | |||
417 | */ | 417 | */ |
418 | cm_id_priv->state = IW_CM_STATE_DESTROYING; | 418 | cm_id_priv->state = IW_CM_STATE_DESTROYING; |
419 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); | 419 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); |
420 | cm_id->device->iwcm->reject(cm_id, NULL, 0); | 420 | cm_id->device->ops.iw_reject(cm_id, NULL, 0); |
421 | spin_lock_irqsave(&cm_id_priv->lock, flags); | 421 | spin_lock_irqsave(&cm_id_priv->lock, flags); |
422 | break; | 422 | break; |
423 | case IW_CM_STATE_CONN_SENT: | 423 | case IW_CM_STATE_CONN_SENT: |
@@ -427,7 +427,7 @@ static void destroy_cm_id(struct iw_cm_id *cm_id) | |||
427 | break; | 427 | break; |
428 | } | 428 | } |
429 | if (cm_id_priv->qp) { | 429 | if (cm_id_priv->qp) { |
430 | cm_id_priv->id.device->iwcm->rem_ref(cm_id_priv->qp); | 430 | cm_id_priv->id.device->ops.iw_rem_ref(cm_id_priv->qp); |
431 | cm_id_priv->qp = NULL; | 431 | cm_id_priv->qp = NULL; |
432 | } | 432 | } |
433 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); | 433 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); |
@@ -504,7 +504,7 @@ static void iw_cm_check_wildcard(struct sockaddr_storage *pm_addr, | |||
504 | static int iw_cm_map(struct iw_cm_id *cm_id, bool active) | 504 | static int iw_cm_map(struct iw_cm_id *cm_id, bool active) |
505 | { | 505 | { |
506 | const char *devname = dev_name(&cm_id->device->dev); | 506 | const char *devname = dev_name(&cm_id->device->dev); |
507 | const char *ifname = cm_id->device->iwcm->ifname; | 507 | const char *ifname = cm_id->device->iw_ifname; |
508 | struct iwpm_dev_data pm_reg_msg = {}; | 508 | struct iwpm_dev_data pm_reg_msg = {}; |
509 | struct iwpm_sa_data pm_msg; | 509 | struct iwpm_sa_data pm_msg; |
510 | int status; | 510 | int status; |
@@ -526,7 +526,7 @@ static int iw_cm_map(struct iw_cm_id *cm_id, bool active) | |||
526 | cm_id->mapped = true; | 526 | cm_id->mapped = true; |
527 | pm_msg.loc_addr = cm_id->local_addr; | 527 | pm_msg.loc_addr = cm_id->local_addr; |
528 | pm_msg.rem_addr = cm_id->remote_addr; | 528 | pm_msg.rem_addr = cm_id->remote_addr; |
529 | pm_msg.flags = (cm_id->device->iwcm->driver_flags & IW_F_NO_PORT_MAP) ? | 529 | pm_msg.flags = (cm_id->device->iw_driver_flags & IW_F_NO_PORT_MAP) ? |
530 | IWPM_FLAGS_NO_PORT_MAP : 0; | 530 | IWPM_FLAGS_NO_PORT_MAP : 0; |
531 | if (active) | 531 | if (active) |
532 | status = iwpm_add_and_query_mapping(&pm_msg, | 532 | status = iwpm_add_and_query_mapping(&pm_msg, |
@@ -577,7 +577,8 @@ int iw_cm_listen(struct iw_cm_id *cm_id, int backlog) | |||
577 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); | 577 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); |
578 | ret = iw_cm_map(cm_id, false); | 578 | ret = iw_cm_map(cm_id, false); |
579 | if (!ret) | 579 | if (!ret) |
580 | ret = cm_id->device->iwcm->create_listen(cm_id, backlog); | 580 | ret = cm_id->device->ops.iw_create_listen(cm_id, |
581 | backlog); | ||
581 | if (ret) | 582 | if (ret) |
582 | cm_id_priv->state = IW_CM_STATE_IDLE; | 583 | cm_id_priv->state = IW_CM_STATE_IDLE; |
583 | spin_lock_irqsave(&cm_id_priv->lock, flags); | 584 | spin_lock_irqsave(&cm_id_priv->lock, flags); |
@@ -617,7 +618,7 @@ int iw_cm_reject(struct iw_cm_id *cm_id, | |||
617 | cm_id_priv->state = IW_CM_STATE_IDLE; | 618 | cm_id_priv->state = IW_CM_STATE_IDLE; |
618 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); | 619 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); |
619 | 620 | ||
620 | ret = cm_id->device->iwcm->reject(cm_id, private_data, | 621 | ret = cm_id->device->ops.iw_reject(cm_id, private_data, |
621 | private_data_len); | 622 | private_data_len); |
622 | 623 | ||
623 | clear_bit(IWCM_F_CONNECT_WAIT, &cm_id_priv->flags); | 624 | clear_bit(IWCM_F_CONNECT_WAIT, &cm_id_priv->flags); |
@@ -653,25 +654,25 @@ int iw_cm_accept(struct iw_cm_id *cm_id, | |||
653 | return -EINVAL; | 654 | return -EINVAL; |
654 | } | 655 | } |
655 | /* Get the ib_qp given the QPN */ | 656 | /* Get the ib_qp given the QPN */ |
656 | qp = cm_id->device->iwcm->get_qp(cm_id->device, iw_param->qpn); | 657 | qp = cm_id->device->ops.iw_get_qp(cm_id->device, iw_param->qpn); |
657 | if (!qp) { | 658 | if (!qp) { |
658 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); | 659 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); |
659 | clear_bit(IWCM_F_CONNECT_WAIT, &cm_id_priv->flags); | 660 | clear_bit(IWCM_F_CONNECT_WAIT, &cm_id_priv->flags); |
660 | wake_up_all(&cm_id_priv->connect_wait); | 661 | wake_up_all(&cm_id_priv->connect_wait); |
661 | return -EINVAL; | 662 | return -EINVAL; |
662 | } | 663 | } |
663 | cm_id->device->iwcm->add_ref(qp); | 664 | cm_id->device->ops.iw_add_ref(qp); |
664 | cm_id_priv->qp = qp; | 665 | cm_id_priv->qp = qp; |
665 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); | 666 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); |
666 | 667 | ||
667 | ret = cm_id->device->iwcm->accept(cm_id, iw_param); | 668 | ret = cm_id->device->ops.iw_accept(cm_id, iw_param); |
668 | if (ret) { | 669 | if (ret) { |
669 | /* An error on accept precludes provider events */ | 670 | /* An error on accept precludes provider events */ |
670 | BUG_ON(cm_id_priv->state != IW_CM_STATE_CONN_RECV); | 671 | BUG_ON(cm_id_priv->state != IW_CM_STATE_CONN_RECV); |
671 | cm_id_priv->state = IW_CM_STATE_IDLE; | 672 | cm_id_priv->state = IW_CM_STATE_IDLE; |
672 | spin_lock_irqsave(&cm_id_priv->lock, flags); | 673 | spin_lock_irqsave(&cm_id_priv->lock, flags); |
673 | if (cm_id_priv->qp) { | 674 | if (cm_id_priv->qp) { |
674 | cm_id->device->iwcm->rem_ref(qp); | 675 | cm_id->device->ops.iw_rem_ref(qp); |
675 | cm_id_priv->qp = NULL; | 676 | cm_id_priv->qp = NULL; |
676 | } | 677 | } |
677 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); | 678 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); |
@@ -712,25 +713,25 @@ int iw_cm_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *iw_param) | |||
712 | } | 713 | } |
713 | 714 | ||
714 | /* Get the ib_qp given the QPN */ | 715 | /* Get the ib_qp given the QPN */ |
715 | qp = cm_id->device->iwcm->get_qp(cm_id->device, iw_param->qpn); | 716 | qp = cm_id->device->ops.iw_get_qp(cm_id->device, iw_param->qpn); |
716 | if (!qp) { | 717 | if (!qp) { |
717 | ret = -EINVAL; | 718 | ret = -EINVAL; |
718 | goto err; | 719 | goto err; |
719 | } | 720 | } |
720 | cm_id->device->iwcm->add_ref(qp); | 721 | cm_id->device->ops.iw_add_ref(qp); |
721 | cm_id_priv->qp = qp; | 722 | cm_id_priv->qp = qp; |
722 | cm_id_priv->state = IW_CM_STATE_CONN_SENT; | 723 | cm_id_priv->state = IW_CM_STATE_CONN_SENT; |
723 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); | 724 | spin_unlock_irqrestore(&cm_id_priv->lock, flags); |
724 | 725 | ||
725 | ret = iw_cm_map(cm_id, true); | 726 | ret = iw_cm_map(cm_id, true); |
726 | if (!ret) | 727 | if (!ret) |
727 | ret = cm_id->device->iwcm->connect(cm_id, iw_param); | 728 | ret = cm_id->device->ops.iw_connect(cm_id, iw_param); |
728 | if (!ret) | 729 | if (!ret) |
729 | return 0; /* success */ | 730 | return 0; /* success */ |
730 | 731 | ||
731 | spin_lock_irqsave(&cm_id_priv->lock, flags); | 732 | spin_lock_irqsave(&cm_id_priv->lock, flags); |
732 | if (cm_id_priv->qp) { | 733 | if (cm_id_priv->qp) { |
733 | cm_id->device->iwcm->rem_ref(qp); | 734 | cm_id->device->ops.iw_rem_ref(qp); |
734 | cm_id_priv->qp = NULL; | 735 | cm_id_priv->qp = NULL; |
735 | } | 736 | } |
736 | cm_id_priv->state = IW_CM_STATE_IDLE; | 737 | cm_id_priv->state = IW_CM_STATE_IDLE; |
@@ -895,7 +896,7 @@ static int cm_conn_rep_handler(struct iwcm_id_private *cm_id_priv, | |||
895 | cm_id_priv->state = IW_CM_STATE_ESTABLISHED; | 896 | cm_id_priv->state = IW_CM_STATE_ESTABLISHED; |
896 | } else { | 897 | } else { |
897 | /* REJECTED or RESET */ | 898 | /* REJECTED or RESET */ |
898 | cm_id_priv->id.device->iwcm->rem_ref(cm_id_priv->qp); | 899 | cm_id_priv->id.device->ops.iw_rem_ref(cm_id_priv->qp); |
899 | cm_id_priv->qp = NULL; | 900 | cm_id_priv->qp = NULL; |
900 | cm_id_priv->state = IW_CM_STATE_IDLE; | 901 | cm_id_priv->state = IW_CM_STATE_IDLE; |
901 | } | 902 | } |
@@ -946,7 +947,7 @@ static int cm_close_handler(struct iwcm_id_private *cm_id_priv, | |||
946 | spin_lock_irqsave(&cm_id_priv->lock, flags); | 947 | spin_lock_irqsave(&cm_id_priv->lock, flags); |
947 | 948 | ||
948 | if (cm_id_priv->qp) { | 949 | if (cm_id_priv->qp) { |
949 | cm_id_priv->id.device->iwcm->rem_ref(cm_id_priv->qp); | 950 | cm_id_priv->id.device->ops.iw_rem_ref(cm_id_priv->qp); |
950 | cm_id_priv->qp = NULL; | 951 | cm_id_priv->qp = NULL; |
951 | } | 952 | } |
952 | switch (cm_id_priv->state) { | 953 | switch (cm_id_priv->state) { |