]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Install an extra hold on the newly allocated synq entry so that it
authornp <np@FreeBSD.org>
Sat, 26 Jan 2013 03:23:28 +0000 (03:23 +0000)
committernp <np@FreeBSD.org>
Sat, 26 Jan 2013 03:23:28 +0000 (03:23 +0000)
commitf20c120ed1307b652267aa8015ec6e7486d72297
treedc51e8e1410fb73318b07b33850ab2a29af81fff
parent7658f66486b3e23df2299b54d18e73d1873c73cd
Install an extra hold on the newly allocated synq entry so that it
cannot be freed while do_pass_accept_req is running.  This closes a race
where do_pass_establish on another CPU (the driver chose a different
queue for the new tid) expands the synq entry into a full PCB and then
releases the only hold on it, all while do_pass_accept_req is still
running.

MFC after: 3 days
sys/dev/cxgbe/tom/t4_listen.c