[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190528063403.ukfh37igryq4u2u6@gondor.apana.org.au>
Date: Tue, 28 May 2019 14:34:03 +0800
From: Herbert Xu <herbert@...dor.apana.org.au>
To: Eric Dumazet <edumazet@...gle.com>
Cc: davem@...emloft.net, netdev@...r.kernel.org, edumazet@...gle.com,
eric.dumazet@...il.com, syzkaller@...glegroups.com
Subject: Re: [PATCH net-next 11/11] inet: frags: rework rhashtable dismantle
Hi Eric:
Eric Dumazet <edumazet@...gle.com> wrote:
>
> +void fqdir_exit(struct fqdir *fqdir)
> +{
> + fqdir->high_thresh = 0; /* prevent creation of new frags */
> +
> + /* paired with READ_ONCE() in inet_frag_kill() :
> + * We want to prevent rhashtable_remove_fast() calls
> + */
> + smp_store_release(&fqdir->dead, true);
> +
> + INIT_RCU_WORK(&fqdir->destroy_rwork, fqdir_rwork_fn);
> + queue_rcu_work(system_wq, &fqdir->destroy_rwork);
> +
> +}
What is the smp_store_release supposed to protect here? If it's
meant to separate the setting of dead and the subsequent destruction
work then it doesn't work because the barrier only protects the code
preceding it, not after.
Thanks,
--
Email: Herbert Xu <herbert@...dor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Powered by blists - more mailing lists