[PATCH 0/9] Switch to single argument kvfree_rcu() API

From: Uladzislau Rezki (Sony)
Date: Wed Nov 24 2021 - 06:03:25 EST


Hi!

This is an attempt to replace places in the Linux kernel for using
single argument of kvfree_rcu() API. In short, a single argument
API allows something like below:

<snip>
void *ptr = kvmalloc(some_bytes, GFP_KERNEL);
if (ptr)
kvfree_rcu(ptr);
<snip>

i.e. to free a pointer after a grace period of object that does not
have any rcu_head field inside its structure. Due to lacking of such
mechanism users just do:

<snip>
synchronize_rcu();
kfree(p);
<snip>

if they do not want to have an rcu_head element in their data. Thus
this series replaces mentioned places to go with the single argument API.

It is based on the 5.16.0-rc2 also it can be applied on Paul's latest RCU
"dev" branch.

Thanks!

Uladzislau Rezki (2):
ext4: Switch to kvfree_rcu() API
fs: nfs: sysfs: Switch to kvfree_rcu() API

Uladzislau Rezki (Sony) (7):
ext4: Replace ext4_kvfree_array_rcu() by kvfree_rcu() API
drivers: Switch to kvfree_rcu() API
x86/mm: Switch to kvfree_rcu() API
net/tipc: Switch to kvfree_rcu() API
net/core: Switch to kvfree_rcu() API
module: Switch to kvfree_rcu() API
tracing: Switch to kvfree_rcu() API

arch/x86/mm/mmio-mod.c | 6 ++--
drivers/block/drbd/drbd_nl.c | 9 ++----
drivers/block/drbd/drbd_receiver.c | 6 ++--
drivers/block/drbd/drbd_state.c | 3 +-
drivers/block/rnbd/rnbd-srv.c | 3 +-
drivers/crypto/nx/nx-common-pseries.c | 3 +-
drivers/infiniband/hw/hfi1/sdma.c | 3 +-
drivers/ipack/carriers/tpci200.c | 3 +-
drivers/mfd/dln2.c | 6 ++--
drivers/misc/vmw_vmci/vmci_context.c | 6 ++--
drivers/misc/vmw_vmci/vmci_event.c | 3 +-
.../net/ethernet/chelsio/cxgb4/cxgb4_main.c | 3 +-
.../net/ethernet/mellanox/mlx5/core/en/qos.c | 3 +-
.../ethernet/mellanox/mlx5/core/fpga/tls.c | 3 +-
drivers/net/ethernet/mellanox/mlxsw/core.c | 3 +-
drivers/scsi/device_handler/scsi_dh_alua.c | 3 +-
drivers/scsi/device_handler/scsi_dh_rdac.c | 3 +-
drivers/staging/fwserial/fwserial.c | 3 +-
fs/ext4/ext4.h | 1 -
fs/ext4/mballoc.c | 2 +-
fs/ext4/resize.c | 31 ++-----------------
fs/ext4/super.c | 5 ++-
fs/nfs/sysfs.c | 7 ++---
kernel/module.c | 3 +-
kernel/trace/trace_osnoise.c | 3 +-
kernel/trace/trace_probe.c | 3 +-
net/core/sysctl_net_core.c | 3 +-
net/tipc/crypto.c | 3 +-
28 files changed, 37 insertions(+), 96 deletions(-)

--
2.30.2