On Mon, Dec 12, 2016 at 8:52 PM, Selvin Xavier <selvin.xav...@broadcom.com> wrote:
>> CHECK drivers/infiniband/hw/bnxtre/bnxt_qplib_rcfw.c >> CHECK drivers/infiniband/hw/bnxtre/bnxt_qplib_sp.c >> CHECK drivers/infiniband/hw/bnxtre/bnxt_qplib_fp.c >> drivers/infiniband/hw/bnxtre/bnxt_qplib_fp.c:1015:22: warning: context >> imbalance in 'bnxt_qplib_lock_cqs' - wrong count at exit >> drivers/infiniband/hw/bnxtre/bnxt_qplib_fp.c:1030:28: warning: context >> imbalance in 'bnxt_qplib_unlock_cqs' - unexpected unlock > The above two are false positives, since locking and unlocking are > handled in two separate functions. This is a wrapper to lock/unlock > both SQ and RQ CQ locks. Functionally it is ok since > bnxt_qplib_unlock_cqs is called just after the critical section and > both locks are freed in order. I think we can ignore this warning. > > You can use __releases() and __acquires() macros to denote these cases for sparse.