mm/hmm: Remove racy protection against double-unregistration
No other register/unregister kernel API attempts to provide this kind of protection as it is inherently racy, so just drop it. Callers should provide their own protection, and it appears nouveau already does. Signed-off-by: Jason Gunthorpe <jgg@mellanox.com> Reviewed-by: Jérôme Glisse <jglisse@redhat.com> Reviewed-by: John Hubbard <jhubbard@nvidia.com> Reviewed-by: Ralph Campbell <rcampbell@nvidia.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Tested-by: Philip Yang <Philip.Yang@amd.com>
This commit is contained in:
parent
8a1a0cd0b7
commit
187229c2dd
8
mm/hmm.c
8
mm/hmm.c
|
@ -276,17 +276,11 @@ EXPORT_SYMBOL(hmm_mirror_register);
|
|||
*/
|
||||
void hmm_mirror_unregister(struct hmm_mirror *mirror)
|
||||
{
|
||||
struct hmm *hmm = READ_ONCE(mirror->hmm);
|
||||
|
||||
if (hmm == NULL)
|
||||
return;
|
||||
struct hmm *hmm = mirror->hmm;
|
||||
|
||||
down_write(&hmm->mirrors_sem);
|
||||
list_del_init(&mirror->list);
|
||||
/* To protect us against double unregister ... */
|
||||
mirror->hmm = NULL;
|
||||
up_write(&hmm->mirrors_sem);
|
||||
|
||||
hmm_put(hmm);
|
||||
}
|
||||
EXPORT_SYMBOL(hmm_mirror_unregister);
|
||||
|
|
Loading…
Reference in New Issue