[PATCH] misc: vmw_vmci: Switch to kvfree_rcu() API

From: Uladzislau Rezki (Sony)
Date: Wed Dec 15 2021 - 06:19:10 EST


Instead of invoking a synchronize_rcu() to free a pointer
after a grace period we can directly make use of new API
that does the same but in more efficient way.

CC: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
TO: Jorgen Hansen <jhansen@xxxxxxxxxx>
TO: Vishnu Dasa <vdasa@xxxxxxxxxx>
TO: pv-drivers@xxxxxxxxxx

Signed-off-by: Uladzislau Rezki (Sony) <urezki@xxxxxxxxx>
---
drivers/misc/vmw_vmci/vmci_context.c | 6 ++----
drivers/misc/vmw_vmci/vmci_event.c | 3 +--
2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/misc/vmw_vmci/vmci_context.c b/drivers/misc/vmw_vmci/vmci_context.c
index c0b5e339d5a1..6cf3e21c7604 100644
--- a/drivers/misc/vmw_vmci/vmci_context.c
+++ b/drivers/misc/vmw_vmci/vmci_context.c
@@ -687,10 +687,8 @@ int vmci_ctx_remove_notification(u32 context_id, u32 remote_cid)
}
spin_unlock(&context->lock);

- if (found) {
- synchronize_rcu();
- kfree(notifier);
- }
+ if (found)
+ kvfree_rcu(notifier);

vmci_ctx_put(context);

diff --git a/drivers/misc/vmw_vmci/vmci_event.c b/drivers/misc/vmw_vmci/vmci_event.c
index e3436abf39f4..2100297c94ad 100644
--- a/drivers/misc/vmw_vmci/vmci_event.c
+++ b/drivers/misc/vmw_vmci/vmci_event.c
@@ -209,8 +209,7 @@ int vmci_event_unsubscribe(u32 sub_id)
if (!s)
return VMCI_ERROR_NOT_FOUND;

- synchronize_rcu();
- kfree(s);
+ kvfree_rcu(s);

return VMCI_SUCCESS;
}
--
2.30.2