[ofa-general] [PATCH 3 of 5] libcxgb3: zero context struct at allocation time (prep for additional context ops)
Jack Morgenstein
jackm at dev.mellanox.co.il
Mon Dec 17 00:19:33 PST 2007
The ibv_context structure will be getting additional ops,
to be added at the end of the structure (and not as part of
the existing ibv_context_ops structure).
Reason: ibv_context_ops is declared directly as a member of ibv_context,
and not as a pointer. Binaries compiled with previous libibverbs versions
will not be backwards compatible if we add new operations to ibv_context_ops,
since fields following the ops structure will move.
To enable adding new operations at the end of the existing ibv_context struct,
all driver libraries MUST zero their context structure at allocation time, so
that new ops will be NULL by default.
Signed-off-by: Jack Morgenstein <jackm at dev.mellanox.co.il>
diff --git a/src/iwch.c b/src/iwch.c
index 2747518..517ff00 100644
--- a/src/iwch.c
+++ b/src/iwch.c
@@ -114,6 +114,7 @@ static struct ibv_context *iwch_alloc_context(struct ibv_device *ibdev,
if (!context)
return NULL;
+ memset(context, 0, sizeof *context);
context->ibv_ctx.cmd_fd = cmd_fd;
if (ibv_cmd_get_context(&context->ibv_ctx, &cmd, sizeof cmd,
More information about the general
mailing list