]> git.baikalelectronics.ru Git - kernel.git/commit
inet: frags: Remove unnecessary smp_store_release/READ_ONCE
authorHerbert Xu <herbert@gondor.apana.org.au>
Wed, 29 May 2019 05:40:26 +0000 (13:40 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 30 May 2019 18:51:29 +0000 (11:51 -0700)
commitd7eb2587219ab78488e1c85bda23fe7557901e11
tree14d57d834cd97a5dd58b8ef0cb44847f83fb45ac
parentc68c5f1cb4ca83449f7934d5b5d2ec439ede6aa9
inet: frags: Remove unnecessary smp_store_release/READ_ONCE

The smp_store_release call in fqdir_exit cannot protect the setting
of fqdir->dead as claimed because its memory barrier is only
guaranteed to be one-way and the barrier precedes the setting of
fqdir->dead.

IOW it doesn't provide any barriers between fq->dir and the following
hash table destruction.

In fact, the code is safe anyway because call_rcu does provide both
the memory barrier as well as a guarantee that when the destruction
work starts executing all RCU readers will see the updated value for
fqdir->dead.

Therefore this patch removes the unnecessary smp_store_release call
as well as the corresponding READ_ONCE on the read-side in order to
not confuse future readers of this code.  Comments have been added
in their places.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/inet_fragment.c