On Tue, 2015-12-01 at 12:11 +0100, Hannes Frederic Sowa wrote: > Hi Eric, > > On Mon, Nov 30, 2015, at 04:37, Eric Dumazet wrote: > > - opt = xchg(&np->opt, NULL); > > - if (opt) > > - sock_kfree_s(sk, opt, opt->tot_len); > > + opt = xchg((__force struct ipv6_txoptions > > **)&np->opt, > > + NULL); > > + if (opt) { > > + atomic_sub(opt->tot_len, > > &sk->sk_omem_alloc); > > + txopt_put(opt); > > + } > > pktopt = xchg(&np->pktoptions, NULL); > > kfree_skb(pktopt); > > Is here something special going on (because of the xchg). I don't see > why you cannot simply use a RCU_INIT_POINTER? > > Thanks, > Hannes
Yes, I mentioned this earlier, and will be addressed in net-next tree later. (Same for np->pktoptions) The xchg() here does not bring additional protection as we are the last user of np. Thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/