summaryrefslogtreecommitdiff
path: root/drivers/s390/cio
diff options
context:
space:
mode:
authorKees Cook <kees@kernel.org>2026-02-20 23:49:23 -0800
committerKees Cook <kees@kernel.org>2026-02-21 01:02:28 -0800
commit69050f8d6d075dc01af7a5f2f550a8067510366f (patch)
treebb265f94d9dfa7876c06a5d9f88673d496a15341 /drivers/s390/cio
parentd39a1d7486d98668dd34aaa6732aad7977c45f5a (diff)
downloadlinux-next-69050f8d6d075dc01af7a5f2f550a8067510366f.tar.gz
linux-next-69050f8d6d075dc01af7a5f2f550a8067510366f.zip
treewide: Replace kmalloc with kmalloc_obj for non-scalar types
This is the result of running the Coccinelle script from scripts/coccinelle/api/kmalloc_objs.cocci. The script is designed to avoid scalar types (which need careful case-by-case checking), and instead replace kmalloc-family calls that allocate struct or union object instances: Single allocations: kmalloc(sizeof(TYPE), ...) are replaced with: kmalloc_obj(TYPE, ...) Array allocations: kmalloc_array(COUNT, sizeof(TYPE), ...) are replaced with: kmalloc_objs(TYPE, COUNT, ...) Flex array allocations: kmalloc(struct_size(PTR, FAM, COUNT), ...) are replaced with: kmalloc_flex(*PTR, FAM, COUNT, ...) (where TYPE may also be *VAR) The resulting allocations no longer return "void *", instead returning "TYPE *". Signed-off-by: Kees Cook <kees@kernel.org>
Diffstat (limited to 'drivers/s390/cio')
-rw-r--r--drivers/s390/cio/airq.c2
-rw-r--r--drivers/s390/cio/ccwgroup.c2
-rw-r--r--drivers/s390/cio/chp.c4
-rw-r--r--drivers/s390/cio/chsc_sch.c20
-rw-r--r--drivers/s390/cio/cmf.c8
-rw-r--r--drivers/s390/cio/css.c8
-rw-r--r--drivers/s390/cio/device.c10
-rw-r--r--drivers/s390/cio/eadm_sch.c2
-rw-r--r--drivers/s390/cio/qdio_debug.c2
-rw-r--r--drivers/s390/cio/qdio_main.c2
-rw-r--r--drivers/s390/cio/qdio_thinint.c4
-rw-r--r--drivers/s390/cio/scm.c2
-rw-r--r--drivers/s390/cio/vfio_ccw_cp.c12
-rw-r--r--drivers/s390/cio/vfio_ccw_drv.c4
-rw-r--r--drivers/s390/cio/vfio_ccw_ops.c4
15 files changed, 43 insertions, 43 deletions
diff --git a/drivers/s390/cio/airq.c b/drivers/s390/cio/airq.c
index f5c59abba221..ecccd5f24a4e 100644
--- a/drivers/s390/cio/airq.c
+++ b/drivers/s390/cio/airq.c
@@ -130,7 +130,7 @@ struct airq_iv *airq_iv_create(unsigned long bits, unsigned long flags,
struct airq_iv *iv;
unsigned long size;
- iv = kzalloc(sizeof(*iv), GFP_KERNEL);
+ iv = kzalloc_obj(*iv, GFP_KERNEL);
if (!iv)
goto out;
iv->bits = bits;
diff --git a/drivers/s390/cio/ccwgroup.c b/drivers/s390/cio/ccwgroup.c
index 185c99c5d4cc..c7d86cab984b 100644
--- a/drivers/s390/cio/ccwgroup.c
+++ b/drivers/s390/cio/ccwgroup.c
@@ -322,7 +322,7 @@ int ccwgroup_create_dev(struct device *parent, struct ccwgroup_driver *gdrv,
if (num_devices < 1)
return -EINVAL;
- gdev = kzalloc(struct_size(gdev, cdev, num_devices), GFP_KERNEL);
+ gdev = kzalloc_flex(*gdev, cdev, num_devices, GFP_KERNEL);
if (!gdev)
return -ENOMEM;
diff --git a/drivers/s390/cio/chp.c b/drivers/s390/cio/chp.c
index c10e2444507e..de07d03f1ed4 100644
--- a/drivers/s390/cio/chp.c
+++ b/drivers/s390/cio/chp.c
@@ -530,7 +530,7 @@ int chp_new(struct chp_id chpid)
if (chp_is_registered(chpid))
goto out;
- chp = kzalloc(sizeof(struct channel_path), GFP_KERNEL);
+ chp = kzalloc_obj(struct channel_path, GFP_KERNEL);
if (!chp) {
ret = -ENOMEM;
goto out;
@@ -593,7 +593,7 @@ struct channel_path_desc_fmt0 *chp_get_chp_desc(struct chp_id chpid)
chp = chpid_to_chp(chpid);
if (!chp)
return NULL;
- desc = kmalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kmalloc_obj(*desc, GFP_KERNEL);
if (!desc)
return NULL;
diff --git a/drivers/s390/cio/chsc_sch.c b/drivers/s390/cio/chsc_sch.c
index ce992b2107cb..fcbb2906117f 100644
--- a/drivers/s390/cio/chsc_sch.c
+++ b/drivers/s390/cio/chsc_sch.c
@@ -81,7 +81,7 @@ static int chsc_subchannel_probe(struct subchannel *sch)
CHSC_MSG(6, "Detected chsc subchannel 0.%x.%04x\n",
sch->schid.ssid, sch->schid.sch_no);
sch->isc = CHSC_SCH_ISC;
- private = kzalloc(sizeof(*private), GFP_KERNEL);
+ private = kzalloc_obj(*private, GFP_KERNEL);
if (!private)
return -ENOMEM;
dev_set_drvdata(&sch->dev, private);
@@ -295,7 +295,7 @@ static int chsc_ioctl_start(void __user *user_area)
chsc_area = (void *)get_zeroed_page(GFP_KERNEL);
if (!chsc_area)
return -ENOMEM;
- request = kzalloc(sizeof(*request), GFP_KERNEL);
+ request = kzalloc_obj(*request, GFP_KERNEL);
if (!request) {
ret = -ENOMEM;
goto out_free;
@@ -335,7 +335,7 @@ static int chsc_ioctl_on_close_set(void __user *user_area)
ret = -EBUSY;
goto out_unlock;
}
- on_close_request = kzalloc(sizeof(*on_close_request), GFP_KERNEL);
+ on_close_request = kzalloc_obj(*on_close_request, GFP_KERNEL);
if (!on_close_request) {
ret = -ENOMEM;
goto out_unlock;
@@ -441,7 +441,7 @@ static int chsc_ioctl_info_channel_path(void __user *user_cd)
scpcd_area = (void *)get_zeroed_page(GFP_KERNEL);
if (!scpcd_area)
return -ENOMEM;
- cd = kzalloc(sizeof(*cd), GFP_KERNEL);
+ cd = kzalloc_obj(*cd, GFP_KERNEL);
if (!cd) {
ret = -ENOMEM;
goto out_free;
@@ -503,7 +503,7 @@ static int chsc_ioctl_info_cu(void __user *user_cd)
scucd_area = (void *)get_zeroed_page(GFP_KERNEL);
if (!scucd_area)
return -ENOMEM;
- cd = kzalloc(sizeof(*cd), GFP_KERNEL);
+ cd = kzalloc_obj(*cd, GFP_KERNEL);
if (!cd) {
ret = -ENOMEM;
goto out_free;
@@ -566,7 +566,7 @@ static int chsc_ioctl_info_sch_cu(void __user *user_cud)
sscud_area = (void *)get_zeroed_page(GFP_KERNEL);
if (!sscud_area)
return -ENOMEM;
- cud = kzalloc(sizeof(*cud), GFP_KERNEL);
+ cud = kzalloc_obj(*cud, GFP_KERNEL);
if (!cud) {
ret = -ENOMEM;
goto out_free;
@@ -628,7 +628,7 @@ static int chsc_ioctl_conf_info(void __user *user_ci)
sci_area = (void *)get_zeroed_page(GFP_KERNEL);
if (!sci_area)
return -ENOMEM;
- ci = kzalloc(sizeof(*ci), GFP_KERNEL);
+ ci = kzalloc_obj(*ci, GFP_KERNEL);
if (!ci) {
ret = -ENOMEM;
goto out_free;
@@ -699,7 +699,7 @@ static int chsc_ioctl_conf_comp_list(void __user *user_ccl)
sccl_area = (void *)get_zeroed_page(GFP_KERNEL);
if (!sccl_area)
return -ENOMEM;
- ccl = kzalloc(sizeof(*ccl), GFP_KERNEL);
+ ccl = kzalloc_obj(*ccl, GFP_KERNEL);
if (!ccl) {
ret = -ENOMEM;
goto out_free;
@@ -755,7 +755,7 @@ static int chsc_ioctl_chpd(void __user *user_chpd)
struct chsc_cpd_info *chpd;
int ret;
- chpd = kzalloc(sizeof(*chpd), GFP_KERNEL);
+ chpd = kzalloc_obj(*chpd, GFP_KERNEL);
scpd_area = (void *)get_zeroed_page(GFP_KERNEL);
if (!scpd_area || !chpd) {
ret = -ENOMEM;
@@ -799,7 +799,7 @@ static int chsc_ioctl_dcal(void __user *user_dcal)
sdcal_area = (void *)get_zeroed_page(GFP_KERNEL);
if (!sdcal_area)
return -ENOMEM;
- dcal = kzalloc(sizeof(*dcal), GFP_KERNEL);
+ dcal = kzalloc_obj(*dcal, GFP_KERNEL);
if (!dcal) {
ret = -ENOMEM;
goto out_free;
diff --git a/drivers/s390/cio/cmf.c b/drivers/s390/cio/cmf.c
index 7d035e4937ce..cbc0efe0d870 100644
--- a/drivers/s390/cio/cmf.c
+++ b/drivers/s390/cio/cmf.c
@@ -483,11 +483,11 @@ static int alloc_cmb(struct ccw_device *cdev)
struct cmb_data *cmb_data;
/* Allocate private cmb_data. */
- cmb_data = kzalloc(sizeof(struct cmb_data), GFP_KERNEL);
+ cmb_data = kzalloc_obj(struct cmb_data, GFP_KERNEL);
if (!cmb_data)
return -ENOMEM;
- cmb_data->last_block = kzalloc(sizeof(struct cmb), GFP_KERNEL);
+ cmb_data->last_block = kzalloc_obj(struct cmb, GFP_KERNEL);
if (!cmb_data->last_block) {
kfree(cmb_data);
return -ENOMEM;
@@ -766,11 +766,11 @@ static int alloc_cmbe(struct ccw_device *cdev)
if (!cmbe)
return ret;
- cmb_data = kzalloc(sizeof(*cmb_data), GFP_KERNEL);
+ cmb_data = kzalloc_obj(*cmb_data, GFP_KERNEL);
if (!cmb_data)
goto out_free;
- cmb_data->last_block = kzalloc(sizeof(struct cmbe), GFP_KERNEL);
+ cmb_data->last_block = kzalloc_obj(struct cmbe, GFP_KERNEL);
if (!cmb_data->last_block)
goto out_free;
diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c
index ac24e019020e..b6f943d6e30c 100644
--- a/drivers/s390/cio/css.c
+++ b/drivers/s390/cio/css.c
@@ -203,7 +203,7 @@ struct subchannel *css_alloc_subchannel(struct subchannel_id schid,
if (ret < 0)
return ERR_PTR(ret);
- sch = kzalloc(sizeof(*sch), GFP_KERNEL | GFP_DMA);
+ sch = kzalloc_obj(*sch, GFP_KERNEL | GFP_DMA);
if (!sch)
return ERR_PTR(-ENOMEM);
@@ -971,7 +971,7 @@ static int __init setup_css(int nr)
struct channel_subsystem *css;
int ret;
- css = kzalloc(sizeof(*css), GFP_KERNEL);
+ css = kzalloc_obj(*css, GFP_KERNEL);
if (!css)
return -ENOMEM;
@@ -1005,8 +1005,8 @@ static int __init setup_css(int nr)
goto out_err;
}
- css->pseudo_subchannel = kzalloc(sizeof(*css->pseudo_subchannel),
- GFP_KERNEL);
+ css->pseudo_subchannel = kzalloc_obj(*css->pseudo_subchannel,
+ GFP_KERNEL);
if (!css->pseudo_subchannel) {
device_unregister(&css->device);
ret = -ENOMEM;
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index 602f36102c7c..4e6efdcf5617 100644
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -686,13 +686,13 @@ static struct ccw_device * io_subchannel_allocate_dev(struct subchannel *sch)
struct gen_pool *dma_pool;
int ret;
- cdev = kzalloc(sizeof(*cdev), GFP_KERNEL);
+ cdev = kzalloc_obj(*cdev, GFP_KERNEL);
if (!cdev) {
ret = -ENOMEM;
goto err_cdev;
}
- cdev->private = kzalloc(sizeof(struct ccw_device_private),
- GFP_KERNEL | GFP_DMA);
+ cdev->private = kzalloc_obj(struct ccw_device_private,
+ GFP_KERNEL | GFP_DMA);
if (!cdev->private) {
ret = -ENOMEM;
goto err_priv;
@@ -1060,7 +1060,7 @@ static int io_subchannel_probe(struct subchannel *sch)
if (rc)
goto out_schedule;
/* Allocate I/O subchannel private data. */
- io_priv = kzalloc(sizeof(*io_priv), GFP_KERNEL | GFP_DMA);
+ io_priv = kzalloc_obj(*io_priv, GFP_KERNEL | GFP_DMA);
if (!io_priv)
goto out_schedule;
@@ -1644,7 +1644,7 @@ struct ccw_device * __init ccw_device_create_console(struct ccw_driver *drv)
if (IS_ERR(sch))
return ERR_CAST(sch);
- io_priv = kzalloc(sizeof(*io_priv), GFP_KERNEL | GFP_DMA);
+ io_priv = kzalloc_obj(*io_priv, GFP_KERNEL | GFP_DMA);
if (!io_priv)
goto err_priv;
io_priv->dma_area = dma_alloc_coherent(&sch->dev,
diff --git a/drivers/s390/cio/eadm_sch.c b/drivers/s390/cio/eadm_sch.c
index d60f7d80863a..7ce374313730 100644
--- a/drivers/s390/cio/eadm_sch.c
+++ b/drivers/s390/cio/eadm_sch.c
@@ -215,7 +215,7 @@ static int eadm_subchannel_probe(struct subchannel *sch)
struct eadm_private *private;
int ret;
- private = kzalloc(sizeof(*private), GFP_KERNEL | GFP_DMA);
+ private = kzalloc_obj(*private, GFP_KERNEL | GFP_DMA);
if (!private)
return -ENOMEM;
diff --git a/drivers/s390/cio/qdio_debug.c b/drivers/s390/cio/qdio_debug.c
index 4fb900f2d3d9..bbbf89a65445 100644
--- a/drivers/s390/cio/qdio_debug.c
+++ b/drivers/s390/cio/qdio_debug.c
@@ -81,7 +81,7 @@ int qdio_allocate_dbf(struct qdio_irq *irq_ptr)
}
debug_set_level(irq_ptr->debug_area, DBF_WARN);
DBF_DEV_EVENT(DBF_ERR, irq_ptr, "dbf created");
- new_entry = kzalloc(sizeof(struct qdio_dbf_entry), GFP_KERNEL);
+ new_entry = kzalloc_obj(struct qdio_dbf_entry, GFP_KERNEL);
if (!new_entry) {
debug_unregister(irq_ptr->debug_area);
return -ENOMEM;
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c
index 7dd967165025..7e594a800525 100644
--- a/drivers/s390/cio/qdio_main.c
+++ b/drivers/s390/cio/qdio_main.c
@@ -965,7 +965,7 @@ int qdio_allocate(struct ccw_device *cdev, unsigned int no_input_qs,
if (!irq_ptr)
return -ENOMEM;
- irq_ptr->ccw = kmalloc(sizeof(*irq_ptr->ccw), GFP_KERNEL | GFP_DMA);
+ irq_ptr->ccw = kmalloc_obj(*irq_ptr->ccw, GFP_KERNEL | GFP_DMA);
if (!irq_ptr->ccw)
goto err_ccw;
diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c
index f931954910c5..d3e263fedbca 100644
--- a/drivers/s390/cio/qdio_thinint.c
+++ b/drivers/s390/cio/qdio_thinint.c
@@ -204,8 +204,8 @@ int __init qdio_thinint_init(void)
{
int rc;
- q_indicators = kcalloc(TIQDIO_NR_INDICATORS, sizeof(struct indicator_t),
- GFP_KERNEL);
+ q_indicators = kzalloc_objs(struct indicator_t, TIQDIO_NR_INDICATORS,
+ GFP_KERNEL);
if (!q_indicators)
return -ENOMEM;
diff --git a/drivers/s390/cio/scm.c b/drivers/s390/cio/scm.c
index 9b4da237a0ed..22da5887e0ab 100644
--- a/drivers/s390/cio/scm.c
+++ b/drivers/s390/cio/scm.c
@@ -207,7 +207,7 @@ static int scm_add(struct chsc_scm_info *scm_info, size_t num)
put_device(&scmdev->dev);
continue;
}
- scmdev = kzalloc(sizeof(*scmdev), GFP_KERNEL);
+ scmdev = kzalloc_obj(*scmdev, GFP_KERNEL);
if (!scmdev)
return -ENODEV;
scmdev_setup(scmdev, sale, scm_info->is, scm_info->mbc);
diff --git a/drivers/s390/cio/vfio_ccw_cp.c b/drivers/s390/cio/vfio_ccw_cp.c
index 5f6e10225627..62c9c005b542 100644
--- a/drivers/s390/cio/vfio_ccw_cp.c
+++ b/drivers/s390/cio/vfio_ccw_cp.c
@@ -65,11 +65,11 @@ static int page_array_alloc(struct page_array *pa, unsigned int len)
pa->pa_nr = len;
- pa->pa_iova = kcalloc(len, sizeof(*pa->pa_iova), GFP_KERNEL);
+ pa->pa_iova = kzalloc_objs(*pa->pa_iova, len, GFP_KERNEL);
if (!pa->pa_iova)
return -ENOMEM;
- pa->pa_page = kcalloc(len, sizeof(*pa->pa_page), GFP_KERNEL);
+ pa->pa_page = kzalloc_objs(*pa->pa_page, len, GFP_KERNEL);
if (!pa->pa_page) {
kfree(pa->pa_iova);
return -ENOMEM;
@@ -319,15 +319,15 @@ static struct ccwchain *ccwchain_alloc(struct channel_program *cp, int len)
{
struct ccwchain *chain;
- chain = kzalloc(sizeof(*chain), GFP_KERNEL);
+ chain = kzalloc_obj(*chain, GFP_KERNEL);
if (!chain)
return NULL;
- chain->ch_ccw = kcalloc(len, sizeof(*chain->ch_ccw), GFP_DMA | GFP_KERNEL);
+ chain->ch_ccw = kzalloc_objs(*chain->ch_ccw, len, GFP_DMA | GFP_KERNEL);
if (!chain->ch_ccw)
goto out_err;
- chain->ch_pa = kcalloc(len, sizeof(*chain->ch_pa), GFP_KERNEL);
+ chain->ch_pa = kzalloc_objs(*chain->ch_pa, len, GFP_KERNEL);
if (!chain->ch_pa)
goto out_err;
@@ -516,7 +516,7 @@ static dma64_t *get_guest_idal(struct ccw1 *ccw, struct channel_program *cp, int
int idaw_mask = ~(idaw_size - 1);
int i, ret;
- idaws = kcalloc(idaw_nr, sizeof(*idaws), GFP_DMA | GFP_KERNEL);
+ idaws = kzalloc_objs(*idaws, idaw_nr, GFP_DMA | GFP_KERNEL);
if (!idaws)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_drv.c
index 6ff5c9cfb7ed..db0bed2db4eb 100644
--- a/drivers/s390/cio/vfio_ccw_drv.c
+++ b/drivers/s390/cio/vfio_ccw_drv.c
@@ -171,7 +171,7 @@ static int vfio_ccw_sch_probe(struct subchannel *sch)
return -ENODEV;
}
- parent = kzalloc(sizeof(*parent), GFP_KERNEL);
+ parent = kzalloc_obj(*parent, GFP_KERNEL);
if (!parent)
return -ENOMEM;
@@ -281,7 +281,7 @@ static void vfio_ccw_queue_crw(struct vfio_ccw_private *private,
* carry on. The guest will either see a later one or
* learn when it issues its own store subchannel.
*/
- crw = kzalloc(sizeof(*crw), GFP_ATOMIC);
+ crw = kzalloc_obj(*crw, GFP_ATOMIC);
if (!crw)
return;
diff --git a/drivers/s390/cio/vfio_ccw_ops.c b/drivers/s390/cio/vfio_ccw_ops.c
index a596f6013019..ef7becf744da 100644
--- a/drivers/s390/cio/vfio_ccw_ops.c
+++ b/drivers/s390/cio/vfio_ccw_ops.c
@@ -55,8 +55,8 @@ static int vfio_ccw_mdev_init_dev(struct vfio_device *vdev)
INIT_WORK(&private->io_work, vfio_ccw_sch_io_todo);
INIT_WORK(&private->crw_work, vfio_ccw_crw_todo);
- private->cp.guest_cp = kcalloc(CCWCHAIN_LEN_MAX, sizeof(struct ccw1),
- GFP_KERNEL);
+ private->cp.guest_cp = kzalloc_objs(struct ccw1, CCWCHAIN_LEN_MAX,
+ GFP_KERNEL);
if (!private->cp.guest_cp)
goto out_free_private;