|
@@ -466,7 +466,7 @@ static int cgw_notifier(struct notifier_block *nb,
|
|
|
if (gwj->src.dev == dev || gwj->dst.dev == dev) {
|
|
|
hlist_del(&gwj->list);
|
|
|
cgw_unregister_filter(gwj);
|
|
|
- kfree(gwj);
|
|
|
+ kmem_cache_free(cgw_cache, gwj);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -864,7 +864,7 @@ static void cgw_remove_all_jobs(void)
|
|
|
hlist_for_each_entry_safe(gwj, nx, &cgw_list, list) {
|
|
|
hlist_del(&gwj->list);
|
|
|
cgw_unregister_filter(gwj);
|
|
|
- kfree(gwj);
|
|
|
+ kmem_cache_free(cgw_cache, gwj);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -920,7 +920,7 @@ static int cgw_remove_job(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
|
|
|
|
|
|
hlist_del(&gwj->list);
|
|
|
cgw_unregister_filter(gwj);
|
|
|
- kfree(gwj);
|
|
|
+ kmem_cache_free(cgw_cache, gwj);
|
|
|
err = 0;
|
|
|
break;
|
|
|
}
|