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

From: Uladzislau Rezki
Date: Wed Dec 15 2021 - 14:45:28 EST


On Wed, Dec 15, 2021 at 12:18:42PM +0100, Uladzislau Rezki (Sony) wrote:
> 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
>
+ Jorgen Hansen <jhansen@xxxxxxxxxx>
+ Vishnu Dasa <vdasa@xxxxxxxxxx>
+ pv-drivers@xxxxxxxxxx

--
Vlad Rezki