IB/rxe: Advance the consumer pointer before posting the CQE
authorAndrew Boyer <andrew.boyer@dell.com>
Wed, 23 Nov 2016 17:39:18 +0000 (12:39 -0500)
committerDoug Ledford <dledford@redhat.com>
Mon, 12 Dec 2016 21:31:45 +0000 (16:31 -0500)
commitdd753d87436ce7ef2a958d684b38d5acc99c9f5c
treebde5eb088fba64caa154cc0e8c3691f9cd38b63f
parent6e9bb530ff8b07b3bbce79c937fc9dcb32da4eb9
IB/rxe: Advance the consumer pointer before posting the CQE

A simple userspace application might poll the CQ, find a completion,
and then attempt to post a new WQE to the SQ. A spurious error can
occur if the userspace application detects a full SQ in the instant
before the kernel is able to advance the SQ consumer pointer.

This is noticeable when using single-entry SQs with ibv_rc_pingpong
if lots of kernel and userspace library debugging is enabled.

Signed-off-by: Andrew Boyer <andrew.boyer@dell.com>
Reviewed-by: Yonatan Cohen <yonatanc@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/sw/rxe/rxe_comp.c