Hi Eric: Eric Dumazet <[email protected]> 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 <[email protected]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
