[ewg] Re: [ofa-general] OFED 1.3 Beta release is available

Roland Dreier rdreier at cisco.com
Tue Dec 4 21:24:33 PST 2007


 > I think the problem is that sizeof "struct ibv_context_ops" has
 > changed, so the new driver returns a big "struct ibv_context", app
 > compiled with older header file has a smaller "struct ibv_context"
 > and use the old offset to find fields after "ops".

Oh crud, you're obviously right.  For some reason I kept missing that
when I looked over the code.

I think the only alternative we have to preserve backwards
compatibility is to leave struct ibv_context_ops alone and change the
structure to:

struct ibv_context {
        struct ibv_device      *device;
        struct ibv_context_ops  ops;
        int                     cmd_fd;
        int                     async_fd;
        int                     num_comp_vectors;
        pthread_mutex_t         mutex;
        void                   *abi_compat;
        struct ibv_xrc_op      *xrc_ops;
};

with xrc_ops added at the end.  It's my fault for not making the ops
member a pointer I guess.

Tziporet/Jack/whoever -- please fix up the libibverbs you ship for
OFED 1.3 to resolve this.

We can clean this up for libibverbs 1.2 when the ABI can change,
if/when we have something worth breaking the ABI for.

 - R.



More information about the ewg mailing list