IB/hfi1: Fix bug that blocks process on exit after port bounce
authorJianxin Xiong <jianxin.xiong@intel.com>
Thu, 19 May 2016 12:21:57 +0000 (05:21 -0700)
committerDoug Ledford <dledford@redhat.com>
Thu, 26 May 2016 15:23:11 +0000 (11:23 -0400)
commitb583faf4dc6eaa64895c37b81983e75a8c3c1e4e
tree3b94997fa2b5f7c5c91e8351b9d917b9d28e02ed
parentf70f5f6af36bce29fe2c4bc733a223b5746eb65f
IB/hfi1: Fix bug that blocks process on exit after port bounce

During the processing of a user SDMA request, if there was an
error before the request counter was increased, the state of
the packet queue could be updated incorrectly, causing the
counter to underflow. As the result, the process could get
stuck later since the counter could never get back to 0.

This patch adds a condition to guard the packet queue update
so that the counter is only decreased if it has been increased
before the error happens.

Reviewed-by: Mitko Haralanov <mitko.haralanov@intel.com>
Signed-off-by: Jianxin Xiong <jianxin.xiong@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/staging/rdma/hfi1/user_sdma.c