IB/mlx4: Fix possible missed completion event
authorEli Cohen <eli@mellanox.com>
Tue, 6 Mar 2012 13:50:51 +0000 (15:50 +0200)
committerRoland Dreier <roland@purestorage.com>
Mon, 12 Mar 2012 23:24:59 +0000 (16:24 -0700)
commit3616f9cead935d4e4c35915600d5e4d1384219cd
treeb82899b32ce3c64195195351358267764e535c04
parent5984be90046fa978d94a5ec08bbf8f760cff2b30
IB/mlx4: Fix possible missed completion event

If an erroneous CQE is polled in the first iteration (i.e. npolled ==
0), we don't update the consumer index and hence the hardware could
get a wrong notion of how many CQEs software polled.  Fix this by
unconditionally updating the doorbell record.  We could change the
check to be something like

if (npolled || err != -EAGAIN)
...

but it does not seem worth the effort since a posted write to memory
should not cost too much.

Signed-off-by: Eli Cohen <eli@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/mlx4/cq.c