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. TO: Lee Jones <lee.jones@xxxxxxxxxx> TO: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Uladzislau Rezki (Sony) <urezki@xxxxxxxxx> --- drivers/mfd/dln2.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/mfd/dln2.c b/drivers/mfd/dln2.c index 852129ea0766..365e3e77cac4 100644 --- a/drivers/mfd/dln2.c +++ b/drivers/mfd/dln2.c @@ -179,10 +179,8 @@ void dln2_unregister_event_cb(struct platform_device *pdev, u16 id) spin_unlock_irqrestore(&dln2->event_cb_lock, flags); - if (found) { - synchronize_rcu(); - kfree(i); - } + if (found) + kvfree_rcu(i); } EXPORT_SYMBOL(dln2_unregister_event_cb); -- 2.30.2