[ofw] crash in mlx4 driver

Fab Tillier ftillier at windows.microsoft.com
Thu Mar 12 16:51:52 PDT 2009


> This may be related - I noticed that a change was committed into SVN
> which modified struct _RDMA_INTERFACE_VERBS.  However, the neither the
> interface GUID or version was updated.  This breaks the existing drivers.
>
> typedef struct _RDMA_INTERFACE_VERBS
> {
>         INTERFACE               InterfaceHeader;
>         ci_interface_t  Verbs;
>         void *                  p_hca_obj;              <--- new field
>
> }       RDMA_INTERFACE_VERBS;
>
> Maybe I missed this patch on the list...  In any case, struct
> _ci_interface already contains this exact member.  Is there a reason to
> include this in both places?  Can we please revert this change (and the
> corresponding changes to winverbs/winmad) to avoid breaking the
> interface?

Note that while ci_interface already contains this member, it is used as the internal CA handle of the HCA driver when retrieving the RDMA_INTERFACE_VERBS, but as a pointer to the PDO when registering the HCA with IBAL.  Note also that there's no comment about the dual use of this field, though there is a comment about being used as a PDO pointer.

Looking at the comment for the checkin that changed this file, it appears to have been done in relation to discovery of HCAs by IBAL, to remove the convoluted PnP notification/registration mechanisms previously needed for the HCA to discover the IB Bus driver (that was a different devnode).  Looking at the bus driver code the member doesn't seem to be referenced in ibbus, so perhaps this is a stale change that shouldn't have been committed?

-Fab



More information about the ofw mailing list