]> git.baikalelectronics.ru Git - kernel.git/commit
xprtrdma: Re-arm after missed events
authorChuck Lever <chuck.lever@oracle.com>
Sat, 24 Oct 2015 21:26:37 +0000 (17:26 -0400)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Mon, 2 Nov 2015 18:45:15 +0000 (13:45 -0500)
commit47eeab22cd2353cabbced01a58f2fd69e4ee1c3f
treea13a5fc4365e50461cb2c72eb0d55149769fee61
parenteb844dfa559e5d1fd3c934333891faefdff7aa6b
xprtrdma: Re-arm after missed events

ib_req_notify_cq(IB_CQ_REPORT_MISSED_EVENTS) returns a positive
value if WCs were added to a CQ after the last completion upcall
but before the CQ has been re-armed.

Commit 8ef233c63543 ("xprtrmda: Reduce lock contention in
completion handlers") assumed that when ib_req_notify_cq() returned
a positive RC, the CQ had also been successfully re-armed, making
it safe to return control to the provider without losing any
completion signals. That is an invalid assumption.

Change both completion handlers to continue polling while
ib_req_notify_cq() returns a positive value.

Fixes: 8ef233c63543 ("xprtrmda: Reduce lock contention in ...")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Reviewed-by: Devesh Sharma <devesh.sharma@avagotech.com>
Tested-By: Devesh Sharma <devesh.sharma@avagotech.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
net/sunrpc/xprtrdma/verbs.c