powerpc/powernv/ioda: using kfree_rcu() to simplify the code
authorYueHaibing <yuehaibing@huawei.com>
Thu, 11 Jul 2019 14:18:18 +0000 (22:18 +0800)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 13 Nov 2019 05:58:07 +0000 (16:58 +1100)
The callback function of call_rcu() just calls a kfree(), so we
can use kfree_rcu() instead of call_rcu() + callback function.

Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20190711141818.18044-1-yuehaibing@huawei.com
arch/powerpc/platforms/powernv/pci-ioda-tce.c

index a0b9c0c..5dc6847 100644 (file)
@@ -340,14 +340,6 @@ free_tces_exit:
        return -ENOMEM;
 }
 
-static void pnv_iommu_table_group_link_free(struct rcu_head *head)
-{
-       struct iommu_table_group_link *tgl = container_of(head,
-                       struct iommu_table_group_link, rcu);
-
-       kfree(tgl);
-}
-
 void pnv_pci_unlink_table_and_group(struct iommu_table *tbl,
                struct iommu_table_group *table_group)
 {
@@ -363,7 +355,7 @@ void pnv_pci_unlink_table_and_group(struct iommu_table *tbl,
        list_for_each_entry_rcu(tgl, &tbl->it_group_list, next) {
                if (tgl->table_group == table_group) {
                        list_del_rcu(&tgl->next);
-                       call_rcu(&tgl->rcu, pnv_iommu_table_group_link_free);
+                       kfree_rcu(tgl, rcu);
                        found = true;
                        break;
                }