Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Aug 2016 14:58:45 +0200
From:      Hans Petter Selasky <hps@selasky.org>
To:        Randall Stewart <rrs@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r304218 - head/sys/netinet
Message-ID:  <92a3cfc1-56bc-813f-dd12-ac19c66fd716@selasky.org>
In-Reply-To: <201608161240.u7GCeuWS082118@repo.freebsd.org>
References:  <201608161240.u7GCeuWS082118@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 08/16/16 14:40, Randall Stewart wrote:
> +int
> +tcp_inpinfo_lock_add(struct inpcb *inp)
> +{
> +	in_pcbref(inp);
> +	INP_WUNLOCK(inp);
> +	INP_INFO_RLOCK(&V_tcbinfo);
> +	INP_WLOCK(inp);
> +	if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) {
> +		return(1);
> +	}
> +	return(0);
> +
> +}

Hi,

Could you add some comments describing how it is considered safe to drop 
the INP write-lock and then pick it up again?

My first impression is that because you are dropping the inp lock, 
multiple threads can enter the code in question, leaving the window open 
to races?

--HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?92a3cfc1-56bc-813f-dd12-ac19c66fd716>