From 189f164e573e18d9f8876dbd3ad8fcbe11f93037 Mon Sep 17 00:00:00 2001 From: Kees Cook Date: Sat, 21 Feb 2026 23:46:04 -0800 Subject: Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses Conversion performed via this Coccinelle script: // SPDX-License-Identifier: GPL-2.0-only // Options: --include-headers-for-types --all-includes --include-headers --keep-comments virtual patch @gfp depends on patch && !(file in "tools") && !(file in "samples")@ identifier ALLOC = {kmalloc_obj,kmalloc_objs,kmalloc_flex, kzalloc_obj,kzalloc_objs,kzalloc_flex, kvmalloc_obj,kvmalloc_objs,kvmalloc_flex, kvzalloc_obj,kvzalloc_objs,kvzalloc_flex}; @@ ALLOC(... - , GFP_KERNEL ) $ make coccicheck MODE=patch COCCI=gfp.cocci Build and boot tested x86_64 with Fedora 42's GCC and Clang: Linux version 6.19.0+ (user@host) (gcc (GCC) 15.2.1 20260123 (Red Hat 15.2.1-7), GNU ld version 2.44-12.fc42) #1 SMP PREEMPT_DYNAMIC 1970-01-01 Linux version 6.19.0+ (user@host) (clang version 20.1.8 (Fedora 20.1.8-4.fc42), LLD 20.1.8) #1 SMP PREEMPT_DYNAMIC 1970-01-01 Signed-off-by: Kees Cook Signed-off-by: Linus Torvalds --- drivers/staging/greybus/power_supply.c | 4 ++-- .../staging/media/atomisp/pci/atomisp_csi2_bridge.c | 2 +- drivers/staging/media/atomisp/pci/sh_css.c | 20 +++++++------------- 3 files changed, 10 insertions(+), 16 deletions(-) (limited to 'drivers/staging') diff --git a/drivers/staging/greybus/power_supply.c b/drivers/staging/greybus/power_supply.c index 5d180b0f8e4c..33b7a63979d6 100644 --- a/drivers/staging/greybus/power_supply.c +++ b/drivers/staging/greybus/power_supply.c @@ -552,7 +552,7 @@ static int gb_power_supply_prop_descriptors_get(struct gb_power_supply *gbpsy) } gbpsy->props_raw = kzalloc_objs(*gbpsy->props_raw, - gbpsy->properties_count, GFP_KERNEL); + gbpsy->properties_count); if (!gbpsy->props_raw) { ret = -ENOMEM; goto out_put_operation; @@ -942,7 +942,7 @@ static int gb_power_supplies_setup(struct gb_power_supplies *supplies) goto out; supplies->supply = kzalloc_objs(struct gb_power_supply, - supplies->supplies_count, GFP_KERNEL); + supplies->supplies_count); if (!supplies->supply) { ret = -ENOMEM; diff --git a/drivers/staging/media/atomisp/pci/atomisp_csi2_bridge.c b/drivers/staging/media/atomisp/pci/atomisp_csi2_bridge.c index c934da53f4a3..ba61cc28fac1 100644 --- a/drivers/staging/media/atomisp/pci/atomisp_csi2_bridge.c +++ b/drivers/staging/media/atomisp/pci/atomisp_csi2_bridge.c @@ -306,7 +306,7 @@ static int atomisp_csi2_add_gpio_mappings(struct acpi_device *adev) /* Max num GPIOs we've seen plus a terminator */ int3472 = kzalloc_flex(*int3472, gpios.table, - INT3472_MAX_SENSOR_GPIOS + 1, GFP_KERNEL); + INT3472_MAX_SENSOR_GPIOS + 1); if (!int3472) return -ENOMEM; diff --git a/drivers/staging/media/atomisp/pci/sh_css.c b/drivers/staging/media/atomisp/pci/sh_css.c index ee7ea04c4fc5..6cda5925fa45 100644 --- a/drivers/staging/media/atomisp/pci/sh_css.c +++ b/drivers/staging/media/atomisp/pci/sh_css.c @@ -4531,16 +4531,14 @@ static int load_video_binaries(struct ia_css_pipe *pipe) return err; mycs->num_yuv_scaler = cas_scaler_descr.num_stage; mycs->yuv_scaler_binary = kzalloc_objs(struct ia_css_binary, - cas_scaler_descr.num_stage, - GFP_KERNEL); + cas_scaler_descr.num_stage); if (!mycs->yuv_scaler_binary) { mycs->num_yuv_scaler = 0; err = -ENOMEM; return err; } mycs->is_output_stage = kzalloc_objs(bool, - cas_scaler_descr.num_stage, - GFP_KERNEL); + cas_scaler_descr.num_stage); if (!mycs->is_output_stage) { err = -ENOMEM; return err; @@ -5112,16 +5110,14 @@ static int load_primary_binaries( } mycs->num_yuv_scaler = cas_scaler_descr.num_stage; mycs->yuv_scaler_binary = kzalloc_objs(struct ia_css_binary, - cas_scaler_descr.num_stage, - GFP_KERNEL); + cas_scaler_descr.num_stage); if (!mycs->yuv_scaler_binary) { err = -ENOMEM; IA_CSS_LEAVE_ERR_PRIVATE(err); return err; } mycs->is_output_stage = kzalloc_objs(bool, - cas_scaler_descr.num_stage, - GFP_KERNEL); + cas_scaler_descr.num_stage); if (!mycs->is_output_stage) { err = -ENOMEM; IA_CSS_LEAVE_ERR_PRIVATE(err); @@ -5973,7 +5969,7 @@ ia_css_pipe_create_cas_scaler_desc(struct ia_css_pipe *pipe, descr->num_stage = num_stages; descr->in_info = kmalloc_objs(struct ia_css_frame_info, - descr->num_stage, GFP_KERNEL); + descr->num_stage); if (!descr->in_info) { err = -ENOMEM; goto ERR; @@ -6145,15 +6141,13 @@ load_yuvpp_binaries(struct ia_css_pipe *pipe) mycs->num_output = cas_scaler_descr.num_output_stage; mycs->num_yuv_scaler = cas_scaler_descr.num_stage; mycs->yuv_scaler_binary = kzalloc_objs(struct ia_css_binary, - cas_scaler_descr.num_stage, - GFP_KERNEL); + cas_scaler_descr.num_stage); if (!mycs->yuv_scaler_binary) { err = -ENOMEM; goto ERR; } mycs->is_output_stage = kzalloc_objs(bool, - cas_scaler_descr.num_stage, - GFP_KERNEL); + cas_scaler_descr.num_stage); if (!mycs->is_output_stage) { err = -ENOMEM; goto ERR; -- cgit v1.2.3