>  > diff --git a/include/infiniband/verbs.h b/include/infiniband/verbs.h
>  > index 07d4395..f7fe68d 100644
>  > --- a/include/infiniband/verbs.h
>  > +++ b/include/infiniband/verbs.h
>  > @@ -192,7 +192,7 @@ struct ibv_port_attr {
>  >         uint8_t                 active_width;
>  >         uint8_t                 active_speed;
>  >         uint8_t                 phys_state;
>  > -       enum rdma_transport_type transport;
>  > +       uint8_t                 transport;

If a given architecture rounds sizeof(transport) up to 16 bits or 32 bits, then 
the replacement field should be uint16_t or uint32_t respectively, otherwise 
existing binary applications which fetch transport will fetch additional 
undefined bytes which follow it in the new structure.

The big question is whether all presently supported architectures use the same 
size for enum?

I did a quicky test program and on SLES10 x86_64 sizeof(an enum) is 32 bits.  
Hence uint8_t would break binary compatibility on that platform.

Todd Rimmer

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to