[ofw] [PATCH] Change CEP DREP API

Leonid Keller leonid at mellanox.co.il
Sun Jul 13 01:54:05 PDT 2008


Applied in 1374. Thank you. 

> -----Original Message-----
> From: ofw-bounces at lists.openfabrics.org 
> [mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Fab Tillier
> Sent: Friday, July 11, 2008 3:49 AM
> To: ofw at lists.openfabrics.org
> Subject: [ofw] [PATCH] Change CEP DREP API
> 
> The al_cep_drep API currently takes the ib_cm_drep_t 
> structure.  This structure is passed in the IOCTL.  It has en 
> embedded pointer that isn't used since the private data is 
> copied into the IOCTL structure.
> 
> This patch removes the ib_cm_drep_t structure from the IOCTL 
> structure, and passes the private data buffer and length in 
> explicitly.
> 
> Signed-off-by: Fab Tillier <ftillier at microsoft.com>
> 
> diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: 
> old\core\al\al_cm_cep.h trunk\core\al\al_cm_cep.h
> --- old\core\al\al_cm_cep.h     Wed Jul 09 09:44:27 2008
> +++ trunk\core\al\al_cm_cep.h   Thu Jul 10 16:03:06 2008
> @@ -238,7 +238,8 @@ ib_api_status_t
>  al_cep_drep(
>         IN                              ib_al_handle_t        
>                   h_al,
>         IN                              net32_t               
>                           cid,
> -       IN              const   ib_cm_drep_t* const           
>           p_cm_drep );
> +       IN              const   uint8_t* const                
>           p_pdata OPTIONAL,
> +       IN              const   uint8_t                       
>                   pdata_len );
> 
> 
>  ib_api_status_t
> diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: 
> old\core\al\al_cm_qp.c trunk\core\al\al_cm_qp.c
> --- old\core\al\al_cm_qp.c      Thu Jul 10 12:08:29 2008
> +++ trunk\core\al\al_cm_qp.c    Thu Jul 10 17:44:52 2008
> @@ -386,7 +386,7 @@ __proc_dconn_timeout(
> 
>  static void
>  __proc_failed_send(
> -       IN                              ib_qp_handle_t 
> FUNC_PTR64                               h_qp,
> +       IN                              ib_qp_handle_t        
>                   h_qp,
>         IN              const   ib_mad_t* const               
>           p_mad )
>  {
>         AL_ENTER( AL_DBG_CM );
> @@ -1621,7 +1621,8 @@ ib_cm_drep(
>                 return IB_INVALID_PARAMETER;
>         }
> 
> -       status = al_cep_drep( h_cm_dreq.h_al, h_cm_dreq.cid, 
> p_cm_drep );
> +       status = al_cep_drep( h_cm_dreq.h_al, h_cm_dreq.cid,
> +               p_cm_drep->p_drep_pdata, p_cm_drep->drep_length );
>         switch( status )
>         {
>         case IB_INVALID_SETTING:
> diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: 
> old\core\al\al_dev.h trunk\core\al\al_dev.h
> --- old\core\al\al_dev.h        Wed Jul 09 09:44:27 2008
> +++ trunk\core\al\al_dev.h      Thu Jul 10 17:13:00 2008
> @@ -55,7 +55,7 @@
>  #define AL_DEVICE_NAME L"\\Device\\ibal"
>  #define        ALDEV_KEY               (0x3B)  /* Matches 
> FILE_DEVICE_INFINIBAND from wdm.h */
> 
> -#define AL_IOCTL_VERSION                       (8)
> +#define AL_IOCTL_VERSION                       (9)
> 
>  /* max number of devices with non-default pkey */
>  #define        MAX_NUM_PKEY    16
> diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: 
> old\core\al\kernel\al_cm_cep.c trunk\core\al\kernel\al_cm_cep.c
> --- old\core\al\kernel\al_cm_cep.c      Wed Jul 09 09:44:26 2008
> +++ trunk\core\al\kernel\al_cm_cep.c    Thu Jul 10 16:03:06 2008
> @@ -3393,6 +3393,7 @@ __complete_ndi_irp(
>         ib_put_mad( p_mad );
>  }
> 
> +
>  /* Called with the CEP and CEP manager locks held */  static 
> ib_api_status_t  __cep_queue_mad( @@ -5827,7 +5828,8 @@ 
> ib_api_status_t  al_cep_drep(
>         IN                              ib_al_handle_t        
>                   h_al,
>         IN                              net32_t               
>                           cid,
> -       IN              const   ib_cm_drep_t* const           
>           p_cm_drep )
> +       IN              const   uint8_t* const                
>           p_pdata OPTIONAL,
> +       IN              const   uint8_t                       
>                   pdata_len )
>  {
>         ib_api_status_t         status;
>         kcep_t                          *p_cep;
> @@ -5855,8 +5857,8 @@ al_cep_drep(
>                 if( status != IB_SUCCESS )
>                         break;
> 
> -               status = __format_drep( p_cep, 
> p_cm_drep->p_drep_pdata,
> -                       p_cm_drep->drep_length, 
> (mad_cm_drep_t*)p_mad->p_mad_buf );
> +               status = __format_drep( p_cep, p_pdata,
> +                       pdata_len, (mad_cm_drep_t*)p_mad->p_mad_buf );
>                 if( status != IB_SUCCESS )
>                         break;
> 
> diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: 
> old\core\al\kernel\al_proxy_cep.c trunk\core\al\kernel\al_proxy_cep.c
> --- old\core\al\kernel\al_proxy_cep.c   Wed Jul 09 09:44:26 2008
> +++ trunk\core\al\kernel\al_proxy_cep.c Thu Jul 10 17:17:26 2008
> @@ -718,10 +718,8 @@ proxy_cep_drep(
>                 return CL_INVALID_PARAMETER;
>         }
> 
> -       p_ioctl->cm_drep.p_drep_pdata = p_ioctl->pdata;
> -
>         (*(ib_api_status_t*)cl_ioctl_out_buf( h_ioctl )) = 
> al_cep_drep(
> -               p_context->h_al, p_ioctl->cid, &p_ioctl->cm_drep );
> +               p_context->h_al, p_ioctl->cid, p_ioctl->pdata, 
> + p_ioctl->pdata_len );
> 
>         *p_ret_bytes = sizeof(ib_api_status_t);
> 
> diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: 
> old\core\al\user\ual_cm_cep.c trunk\core\al\user\ual_cm_cep.c
> --- old\core\al\user\ual_cm_cep.c       Wed Jul 09 09:44:27 2008
> +++ trunk\core\al\user\ual_cm_cep.c     Thu Jul 10 17:46:40 2008
> @@ -1196,7 +1196,8 @@ ib_api_status_t
>  al_cep_drep(
>         IN                              ib_al_handle_t        
>                   h_al,
>         IN                              net32_t               
>                           cid,
> -       IN              const   ib_cm_drep_t* const           
>           p_cm_drep )
> +       IN              const   uint8_t* const                
>           p_pdata OPTIONAL,
> +       IN              const   uint8_t                       
>                   pdata_len )
>  {
>         ib_api_status_t                 status;
>         ual_cep_drep_ioctl_t    ioctl;
> @@ -1210,26 +1211,23 @@ al_cep_drep(
>                 return IB_INVALID_HANDLE;
>         }
> 
> -       if( !p_cm_drep )
> -       {
> -               AL_EXIT( AL_DBG_CM );
> -               return IB_INVALID_HANDLE;
> -       }
> -    cl_memclr(&ioctl, sizeof(ioctl));
>         ioctl.cid = cid;
> -       ioctl.cm_drep = *p_cm_drep;
>         /* Copy private data, if any. */
> -       if( p_cm_drep->p_drep_pdata )
> +       if( p_pdata )
>         {
> -               if( p_cm_drep->drep_length > IB_DREP_PDATA_SIZE )
> +               if( pdata_len > IB_DREP_PDATA_SIZE )
>                 {
>                         AL_PRINT_EXIT(TRACE_LEVEL_ERROR ,AL_DBG_ERROR,
>                                 ("private data larger than 
> DREP private data.\n") );
>                         return IB_INVALID_SETTING;
>                 }
> 
> -               cl_memcpy(
> -                       ioctl.pdata, p_cm_drep->p_drep_pdata, 
> p_cm_drep->drep_length );
> +               cl_memcpy( ioctl.pdata, p_pdata, pdata_len );
> +               ioctl.pdata_len = pdata_len;
> +       }
> +       else
> +       {
> +               ioctl.pdata_len = 0;
>         }
> 
>         if( !DeviceIoControl( g_al_device, UAL_CEP_DREP, 
> &ioctl, diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: 
> old\inc\iba\ib_al_ioctl.h trunk\inc\iba\ib_al_ioctl.h
> --- old\inc\iba\ib_al_ioctl.h   Wed Jul 09 09:44:27 2008
> +++ trunk\inc\iba\ib_al_ioctl.h Thu Jul 10 17:12:44 2008
> @@ -3030,7 +3030,7 @@ typedef struct _ual_cep_dreq_ioctl  
> typedef struct _ual_cep_drep_ioctl  {
>         net32_t                                         cid;
> -       ib_cm_drep_t                            cm_drep;
> +       uint8_t                                         pdata_len;
>         uint8_t                                         
> pdata[IB_DREP_PDATA_SIZE];
> 
>  }      ual_cep_drep_ioctl_t;
> 



More information about the ofw mailing list