On Tue, Apr 28, 2015 at 05:03:11PM +0300, Matan Barak wrote:
 
> The cleanup of roce_gid_cache is done in a different context, so we
> need to make sure the device is still alive while doing so. 

This explanation doesn't look right to me. I don't see anything like
that under roce_gid_cache_cleanup_one ?

Although, there must be a call to the driver's modify_gid to free
context before freeing, and I don't see that obviously happening..

However, all the other async work launched doesn't look safe at all.

So, did you mean that the device must still be alive while all the
other work is running? And the point of this scheme is to guarentee
all the work is flushed? (at least I hope it is, otherwise there are
bigger problems here)

It is just fundamentally wrong to return from ib_client.remove while
async work is still outstanding, the client is expected to deal with
this internally and synchronously.

You don't need IB core help to do this.

Or: This should have been fixed after Haggai brought it up...

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

Reply via email to