Make sure that userspace does not retrieve stale asynchronous or
authorRoland Dreier <roland@eddore.topspincom.com>
Fri, 9 Sep 2005 22:55:08 +0000 (15:55 -0700)
committerRoland Dreier <rolandd@cisco.com>
Fri, 9 Sep 2005 22:55:08 +0000 (15:55 -0700)
commit63aaf647529e8a56bdf31fd8f2979d4371c6a332
treedd1ed29d591da4ef6ec0c4260d59b1910010c314
parent2e9f7cb7869059e55cd91f5e23c6380f3763db56
Make sure that userspace does not retrieve stale asynchronous or
completion events after destroying a CQ, QP or SRQ.  We do this by
sweeping the event lists before returning from a destroy calls, and
then return the number of events already reported before the destroy
call.  This allows userspace wait until it has processed all events
for an object returned from the kernel before it frees its context for
the object.

The ABI of the destroy CQ, destroy QP and destroy SRQ commands has to
change to return the event count, so bump the ABI version from 1 to 2.
The userspace libibverbs library has already been updated to handle
both the old and new ABI versions.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/core/uverbs.h
drivers/infiniband/core/uverbs_cmd.c
drivers/infiniband/core/uverbs_main.c
include/rdma/ib_user_verbs.h