[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