> but the problem sparse sees is not that some paths take only one lock
cq *recv_cq)
'mlx4_ib_lock_cqs' - wrong count at exitn
Oh. Well yes, you also have to annotate the function:
static void =EF=BB=BFmlx4_ib_lock_cqs(struct mlx4_ib_cq *send_cq, struct ml=
x4_ib_cq *recv_cq)
__acquires(&recv_cq->lock) __acquires(&send_cq->lock)
{
...
}
but we're still discussing whether the & should be in there or not. I'd
think right now is a bad time for you to be working on this unless you
want to help with how sparse should behave too.
johannes