[Bug 284057] vmxnet3/iflib: crash in vmxnet3_isc_txd_credits_update

[email protected]
Newsgroups gmane.os.freebsd.devel.net
Message-ID <[email protected]/bugzilla/>
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=284057

--- Comment #7 from Andriy Gapon <[email protected]> ---
(In reply to Kristof Provost from comment #6)
My thinking on purely defensive code is that maybe we can stash vxcr_next into
a local variable, check and increment it (with the wraparound) and then update
back vxcr_next, maybe using atomic compare and set.

This won't eliminate the race and won't improve correctness of
vmxnet3_isc_txd_credits_update result, but it should make the code even safer
comparing to your proposed patch where the initial array access indexed by
vxcr_next may still be out of bounds.

In the crash that I reported here, vxcr_next didn't run wild, it got wrapped
around.
But for a moment it was equal to vxcr_ndesc and that was enough to cause the
crash.
Which is very rare, admittedly.

-- 
You are receiving this mail because:
You are the assignee for the bug.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.