Commit d086fae6 authored by Emil Tantilov's avatar Emil Tantilov Committed by Tony Nguyen
Browse files

idpf: improve locking around idpf_vc_xn_push_free()



Protect the set_bit() operation for the free_xn bitmask in
idpf_vc_xn_push_free(), to make the locking consistent with rest of the
code and avoid potential races in that logic.

Fixes: 34c21fa8 ("idpf: implement virtchnl transaction manager")
Cc: stable@vger.kernel.org
Reported-by: default avatarRay Zhang <sgzhang@google.com>
Signed-off-by: default avatarEmil Tantilov <emil.s.tantilov@intel.com>
Reviewed-by: default avatarAleksandr Loktionov <aleksandr.loktionov@intel.com>
Acked-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
Tested-by: default avatarSamuel Salin <Samuel.salin@intel.com>
Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
parent 59147811
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -402,7 +402,9 @@ static void idpf_vc_xn_push_free(struct idpf_vc_xn_manager *vcxn_mngr,
				 struct idpf_vc_xn *xn)
{
	idpf_vc_xn_release_bufs(xn);
	spin_lock_bh(&vcxn_mngr->xn_bm_lock);
	set_bit(xn->idx, vcxn_mngr->free_xn_bm);
	spin_unlock_bh(&vcxn_mngr->xn_bm_lock);
}

/**