> @@ -236,6 +252,24 @@ enum smi_action smi_handle_dr_smp_recv(struct ib_smp
> *smp, u8 node_type,
>                                       smp->dr_slid == IB_LID_PERMISSIVE);
>  }
> 
> +/*
> + * Adjust information for a received SMP
> + * Return 0 if the SMP should be dropped

The function returns an enum.  The comment of returning 0 is misleading.  The 
entire comment seems unnecessary. 

> + */
> +enum smi_action opa_smi_handle_dr_smp_recv(struct opa_smp *smp, u8
> node_type,
> +                                        int port_num, int phys_port_cnt)
> +{
> +     return __smi_handle_dr_smp_recv(node_type, port_num, phys_port_cnt,
> +                                     &smp->hop_ptr, smp->hop_cnt,
> +                                     smp->route.dr.initial_path,
> +                                     smp->route.dr.return_path,
> +                                     opa_get_smp_direction(smp),
> +                                     smp->route.dr.dr_dlid ==
> +                                     OPA_LID_PERMISSIVE,
> +                                     smp->route.dr.dr_slid ==
> +                                     OPA_LID_PERMISSIVE);
> +}
> +
>  static inline
>  enum smi_forward_action __smi_check_forward_dr_smp(u8 hop_ptr, u8
> hop_cnt,
>                                                  u8 direction,
> @@ -277,6 +311,16 @@ enum smi_forward_action
> smi_check_forward_dr_smp(struct ib_smp *smp)
>                                         smp->dr_slid != IB_LID_PERMISSIVE);
>  }
> 
> +enum smi_forward_action opa_smi_check_forward_dr_smp(struct opa_smp *smp)
> +{
> +     return __smi_check_forward_dr_smp(smp->hop_ptr, smp->hop_cnt,
> +                                       opa_get_smp_direction(smp),
> +                                       smp->route.dr.dr_dlid ==
> +                                       OPA_LID_PERMISSIVE,
> +                                       smp->route.dr.dr_slid ==
> +                                       OPA_LID_PERMISSIVE);
> +}
> +
>  /*
>   * Return the forwarding port number from initial_path for outgoing SMP
> and
>   * from return_path for returning SMP
> @@ -286,3 +330,13 @@ int smi_get_fwd_port(struct ib_smp *smp)
>       return (!ib_get_smp_direction(smp) ? smp->initial_path[smp-
> >hop_ptr+1] :
>               smp->return_path[smp->hop_ptr-1]);
>  }
> +
> +/*
> + * Return the forwarding port number from initial_path for outgoing SMP
> and
> + * from return_path for returning SMP
> + */
> +int opa_smi_get_fwd_port(struct opa_smp *smp)
> +{
> +     return !opa_get_smp_direction(smp) ? smp->route.dr.initial_path[smp-
> >hop_ptr+1] :
> +             smp->route.dr.return_path[smp->hop_ptr-1];
> +}
> diff --git a/drivers/infiniband/core/smi.h b/drivers/infiniband/core/smi.h
> index aff96ba..e95c537 100644
> --- a/drivers/infiniband/core/smi.h
> +++ b/drivers/infiniband/core/smi.h
> @@ -62,6 +62,9 @@ extern enum smi_action smi_handle_dr_smp_send(struct
> ib_smp *smp,
>   * Return IB_SMI_HANDLE if the SMP should be handled by the local SMA/SM
>   * via process_mad
>   */
> +/* NOTE: This is called on opa_smp's don't check fields which are not
> common
> + * between ib_smp and opa_smp
> + */

This comment suggests that the function is not correct for OPA.  ?

>  static inline enum smi_action smi_check_local_smp(struct ib_smp *smp,
>                                                 struct ib_device *device)
>  {
> @@ -77,6 +80,9 @@ static inline enum smi_action smi_check_local_smp(struct
> ib_smp *smp,
>   * Return IB_SMI_HANDLE if the SMP should be handled by the local SMA/SM
>   * via process_mad
>   */
> +/* NOTE: This is called on opa_smp's don't check fields which are not
> common
> + * between ib_smp and opa_smp
> + */

Same comment

>  static inline enum smi_action smi_check_local_returning_smp(struct ib_smp
> *smp,
>                                                  struct ib_device *device)
>  {
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to