Commit 69050f8d6d07 for kernel
commit 69050f8d6d075dc01af7a5f2f550a8067510366f
Author: Kees Cook <kees@kernel.org>
Date: Fri Feb 20 23:49:23 2026 -0800
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>
diff --git a/arch/alpha/kernel/core_marvel.c b/arch/alpha/kernel/core_marvel.c
index d38f4d6759e4..b5b547732398 100644
--- a/arch/alpha/kernel/core_marvel.c
+++ b/arch/alpha/kernel/core_marvel.c
@@ -861,7 +861,7 @@ marvel_agp_setup(alpha_agp_info *agp)
if (!alpha_agpgart_size)
return -ENOMEM;
- aper = kmalloc(sizeof(*aper), GFP_KERNEL);
+ aper = kmalloc_obj(*aper, GFP_KERNEL);
if (aper == NULL) return -ENOMEM;
aper->arena = agp->hose->sg_pci;
@@ -1059,7 +1059,7 @@ marvel_agp_info(void)
/*
* Allocate the info structure.
*/
- agp = kmalloc(sizeof(*agp), GFP_KERNEL);
+ agp = kmalloc_obj(*agp, GFP_KERNEL);
if (!agp)
return NULL;
diff --git a/arch/alpha/kernel/core_titan.c b/arch/alpha/kernel/core_titan.c
index 77f5d68ed04b..ddaef7b75ba7 100644
--- a/arch/alpha/kernel/core_titan.c
+++ b/arch/alpha/kernel/core_titan.c
@@ -594,7 +594,7 @@ titan_agp_setup(alpha_agp_info *agp)
if (!alpha_agpgart_size)
return -ENOMEM;
- aper = kmalloc(sizeof(struct titan_agp_aperture), GFP_KERNEL);
+ aper = kmalloc_obj(struct titan_agp_aperture, GFP_KERNEL);
if (aper == NULL)
return -ENOMEM;
@@ -760,7 +760,7 @@ titan_agp_info(void)
/*
* Allocate the info structure.
*/
- agp = kmalloc(sizeof(*agp), GFP_KERNEL);
+ agp = kmalloc_obj(*agp, GFP_KERNEL);
if (!agp)
return NULL;
diff --git a/arch/alpha/kernel/module.c b/arch/alpha/kernel/module.c
index cbefa5a77384..6fbc2d179e93 100644
--- a/arch/alpha/kernel/module.c
+++ b/arch/alpha/kernel/module.c
@@ -46,7 +46,7 @@ process_reloc_for_got(Elf64_Rela *rela,
goto found_entry;
}
- g = kmalloc (sizeof (*g), GFP_KERNEL);
+ g = kmalloc_obj(*g, GFP_KERNEL);
g->next = chains[r_sym].next;
g->r_addend = r_addend;
g->got_offset = *poffset;
@@ -93,7 +93,7 @@ module_frob_arch_sections(Elf64_Ehdr *hdr, Elf64_Shdr *sechdrs,
}
nsyms = symtab->sh_size / sizeof(Elf64_Sym);
- chains = kcalloc(nsyms, sizeof(struct got_entry), GFP_KERNEL);
+ chains = kzalloc_objs(struct got_entry, nsyms, GFP_KERNEL);
if (!chains) {
printk(KERN_ERR
"module %s: no memory for symbol chain buffer\n",
diff --git a/arch/alpha/kernel/pci.c b/arch/alpha/kernel/pci.c
index 8e9b4ac86b7e..93eb07018e6b 100644
--- a/arch/alpha/kernel/pci.c
+++ b/arch/alpha/kernel/pci.c
@@ -220,7 +220,7 @@ static void pdev_save_srm_config(struct pci_dev *dev)
printed = 1;
}
- tmp = kmalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kmalloc_obj(*tmp, GFP_KERNEL);
if (!tmp) {
printk(KERN_ERR "%s: kmalloc() failed!\n", __func__);
return;
diff --git a/arch/alpha/kernel/setup.c b/arch/alpha/kernel/setup.c
index f0af444a69a4..ea4e7243c0e9 100644
--- a/arch/alpha/kernel/setup.c
+++ b/arch/alpha/kernel/setup.c
@@ -392,7 +392,7 @@ register_cpus(void)
int i;
for_each_possible_cpu(i) {
- struct cpu *p = kzalloc(sizeof(*p), GFP_KERNEL);
+ struct cpu *p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return -ENOMEM;
register_cpu(p, i);
diff --git a/arch/arc/kernel/unwind.c b/arch/arc/kernel/unwind.c
index 789cfb9ea14e..dcdc8bd916db 100644
--- a/arch/arc/kernel/unwind.c
+++ b/arch/arc/kernel/unwind.c
@@ -366,7 +366,7 @@ void *unwind_add_table(struct module *module, const void *table_start,
if (table_size <= 0)
return NULL;
- table = kmalloc(sizeof(*table), GFP_KERNEL);
+ table = kmalloc_obj(*table, GFP_KERNEL);
if (!table)
return NULL;
diff --git a/arch/arc/net/bpf_jit_core.c b/arch/arc/net/bpf_jit_core.c
index e3628922c24a..5695da795536 100644
--- a/arch/arc/net/bpf_jit_core.c
+++ b/arch/arc/net/bpf_jit_core.c
@@ -1140,7 +1140,7 @@ static int jit_prepare_final_mem_alloc(struct jit_context *ctx)
}
if (ctx->need_extra_pass) {
- ctx->jit_data = kzalloc(sizeof(*ctx->jit_data), GFP_KERNEL);
+ ctx->jit_data = kzalloc_obj(*ctx->jit_data, GFP_KERNEL);
if (!ctx->jit_data)
return -ENOMEM;
}
diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c
index cb6ef449b987..4820b1094dfa 100644
--- a/arch/arm/common/locomo.c
+++ b/arch/arm/common/locomo.c
@@ -222,7 +222,7 @@ locomo_init_one_child(struct locomo *lchip, struct locomo_dev_info *info)
struct locomo_dev *dev;
int ret;
- dev = kzalloc(sizeof(struct locomo_dev), GFP_KERNEL);
+ dev = kzalloc_obj(struct locomo_dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto out;
@@ -277,7 +277,7 @@ static int locomo_suspend(struct platform_device *dev, pm_message_t state)
struct locomo_save_data *save;
unsigned long flags;
- save = kmalloc(sizeof(struct locomo_save_data), GFP_KERNEL);
+ save = kmalloc_obj(struct locomo_save_data, GFP_KERNEL);
if (!save)
return -ENOMEM;
@@ -360,7 +360,7 @@ __locomo_probe(struct device *me, struct resource *mem, int irq)
unsigned long r;
int i, ret = -ENODEV;
- lchip = kzalloc(sizeof(struct locomo), GFP_KERNEL);
+ lchip = kzalloc_obj(struct locomo, GFP_KERNEL);
if (!lchip)
return -ENOMEM;
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c
index 04ff75dcc20e..8bd217789439 100644
--- a/arch/arm/common/sa1111.c
+++ b/arch/arm/common/sa1111.c
@@ -737,7 +737,7 @@ sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent,
unsigned i;
int ret;
- dev = kzalloc(sizeof(struct sa1111_dev), GFP_KERNEL);
+ dev = kzalloc_obj(struct sa1111_dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto err_alloc;
@@ -969,7 +969,7 @@ static int sa1111_suspend_noirq(struct device *dev)
unsigned int val;
void __iomem *base;
- save = kmalloc(sizeof(struct sa1111_save_data), GFP_KERNEL);
+ save = kmalloc_obj(struct sa1111_save_data, GFP_KERNEL);
if (!save)
return -ENOMEM;
sachip->saved_state = save;
diff --git a/arch/arm/common/scoop.c b/arch/arm/common/scoop.c
index dddb73c96826..10e8e9716bd3 100644
--- a/arch/arm/common/scoop.c
+++ b/arch/arm/common/scoop.c
@@ -185,7 +185,7 @@ static int scoop_probe(struct platform_device *pdev)
if (!mem)
return -EINVAL;
- devptr = kzalloc(sizeof(struct scoop_dev), GFP_KERNEL);
+ devptr = kzalloc_obj(struct scoop_dev, GFP_KERNEL);
if (!devptr)
return -ENOMEM;
diff --git a/arch/arm/kernel/atags_proc.c b/arch/arm/kernel/atags_proc.c
index cd09f8ab93e3..6106385d25a0 100644
--- a/arch/arm/kernel/atags_proc.c
+++ b/arch/arm/kernel/atags_proc.c
@@ -54,7 +54,7 @@ static int __init init_atags_procfs(void)
WARN_ON(tag->hdr.tag != ATAG_NONE);
- b = kmalloc(struct_size(b, data, size), GFP_KERNEL);
+ b = kmalloc_flex(*b, data, size, GFP_KERNEL);
if (!b)
goto nomem;
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 50999886a8b5..504f22b420a8 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -108,7 +108,7 @@ static unsigned long get_arch_pgd(pgd_t *pgd)
static int secondary_biglittle_prepare(unsigned int cpu)
{
if (!cpu_vtable[cpu])
- cpu_vtable[cpu] = kzalloc(sizeof(*cpu_vtable[cpu]), GFP_KERNEL);
+ cpu_vtable[cpu] = kzalloc_obj(*cpu_vtable[cpu], GFP_KERNEL);
return cpu_vtable[cpu] ? 0 : -ENOMEM;
}
diff --git a/arch/arm/kernel/sys_oabi-compat.c b/arch/arm/kernel/sys_oabi-compat.c
index 2944721e82a2..fe73d759d078 100644
--- a/arch/arm/kernel/sys_oabi-compat.c
+++ b/arch/arm/kernel/sys_oabi-compat.c
@@ -349,7 +349,7 @@ asmlinkage long sys_oabi_semtimedop(int semid,
return -E2BIG;
if (nsops < 1 || nsops > SEMOPM)
return -EINVAL;
- sops = kvmalloc_array(nsops, sizeof(*sops), GFP_KERNEL);
+ sops = kvmalloc_objs(*sops, nsops, GFP_KERNEL);
if (!sops)
return -ENOMEM;
err = 0;
diff --git a/arch/arm/kernel/unwind.c b/arch/arm/kernel/unwind.c
index f60547dadc93..2b40c22234a9 100644
--- a/arch/arm/kernel/unwind.c
+++ b/arch/arm/kernel/unwind.c
@@ -574,7 +574,7 @@ struct unwind_table *unwind_table_add(unsigned long start, unsigned long size,
unsigned long text_size)
{
unsigned long flags;
- struct unwind_table *tab = kmalloc(sizeof(*tab), GFP_KERNEL);
+ struct unwind_table *tab = kmalloc_obj(*tab, GFP_KERNEL);
pr_debug("%s(%08lx, %08lx, %08lx, %08lx)\n", __func__, start, size,
text_addr, text_size);
diff --git a/arch/arm/kernel/vdso.c b/arch/arm/kernel/vdso.c
index 0108f33d6bed..884f1899dfba 100644
--- a/arch/arm/kernel/vdso.c
+++ b/arch/arm/kernel/vdso.c
@@ -179,8 +179,7 @@ static int __init vdso_init(void)
text_pages = (vdso_end - vdso_start) >> PAGE_SHIFT;
/* Allocate the VDSO text pagelist */
- vdso_text_pagelist = kcalloc(text_pages, sizeof(struct page *),
- GFP_KERNEL);
+ vdso_text_pagelist = kzalloc_objs(struct page *, text_pages, GFP_KERNEL);
if (vdso_text_pagelist == NULL)
return -ENOMEM;
diff --git a/arch/arm/mach-footbridge/dc21285.c b/arch/arm/mach-footbridge/dc21285.c
index 6521ab3d24fa..765a97a30b8a 100644
--- a/arch/arm/mach-footbridge/dc21285.c
+++ b/arch/arm/mach-footbridge/dc21285.c
@@ -262,7 +262,7 @@ int __init dc21285_setup(int nr, struct pci_sys_data *sys)
{
struct resource *res;
- res = kcalloc(2, sizeof(struct resource), GFP_KERNEL);
+ res = kzalloc_objs(struct resource, 2, GFP_KERNEL);
if (!res) {
printk("out of memory for root bus resources");
return 0;
diff --git a/arch/arm/mach-footbridge/ebsa285.c b/arch/arm/mach-footbridge/ebsa285.c
index 21cf9a358b90..d75fc4b541f1 100644
--- a/arch/arm/mach-footbridge/ebsa285.c
+++ b/arch/arm/mach-footbridge/ebsa285.c
@@ -84,7 +84,7 @@ static int __init ebsa285_leds_init(void)
for (i = 0; i < ARRAY_SIZE(ebsa285_leds); i++) {
struct ebsa285_led *led;
- led = kzalloc(sizeof(*led), GFP_KERNEL);
+ led = kzalloc_obj(*led, GFP_KERNEL);
if (!led)
break;
diff --git a/arch/arm/mach-footbridge/netwinder-hw.c b/arch/arm/mach-footbridge/netwinder-hw.c
index 5f7265b1b34c..ae5cf7f1f74a 100644
--- a/arch/arm/mach-footbridge/netwinder-hw.c
+++ b/arch/arm/mach-footbridge/netwinder-hw.c
@@ -727,7 +727,7 @@ static int __init netwinder_leds_init(void)
for (i = 0; i < ARRAY_SIZE(netwinder_leds); i++) {
struct netwinder_led *led;
- led = kzalloc(sizeof(*led), GFP_KERNEL);
+ led = kzalloc_obj(*led, GFP_KERNEL);
if (!led)
break;
diff --git a/arch/arm/mach-imx/mmdc.c b/arch/arm/mach-imx/mmdc.c
index 94e4f4a2f73f..d1d1ef3aa927 100644
--- a/arch/arm/mach-imx/mmdc.c
+++ b/arch/arm/mach-imx/mmdc.c
@@ -477,7 +477,7 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
char *name;
int ret;
- pmu_mmdc = kzalloc(sizeof(*pmu_mmdc), GFP_KERNEL);
+ pmu_mmdc = kzalloc_obj(*pmu_mmdc, GFP_KERNEL);
if (!pmu_mmdc) {
pr_err("failed to allocate PMU device!\n");
return -ENOMEM;
diff --git a/arch/arm/mach-mvebu/board-v7.c b/arch/arm/mach-mvebu/board-v7.c
index 04ad651d13a0..f7f142d6e49e 100644
--- a/arch/arm/mach-mvebu/board-v7.c
+++ b/arch/arm/mach-mvebu/board-v7.c
@@ -127,7 +127,7 @@ static void __init i2c_quirk(void)
for_each_compatible_node(np, NULL, "marvell,mv78230-i2c") {
struct property *new_compat;
- new_compat = kzalloc(sizeof(*new_compat), GFP_KERNEL);
+ new_compat = kzalloc_obj(*new_compat, GFP_KERNEL);
new_compat->name = kstrdup("compatible", GFP_KERNEL);
new_compat->length = sizeof("marvell,mv78230-a0-i2c");
diff --git a/arch/arm/mach-mvebu/coherency.c b/arch/arm/mach-mvebu/coherency.c
index a6b621ff0b87..4af0df12f654 100644
--- a/arch/arm/mach-mvebu/coherency.c
+++ b/arch/arm/mach-mvebu/coherency.c
@@ -190,7 +190,7 @@ static void __init armada_375_380_coherency_init(struct device_node *np)
for_each_compatible_node(cache_dn, NULL, "arm,pl310-cache") {
struct property *p;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
p->name = kstrdup("arm,io-coherent", GFP_KERNEL);
of_add_property(cache_dn, p);
}
diff --git a/arch/arm/mach-mvebu/mvebu-soc-id.c b/arch/arm/mach-mvebu/mvebu-soc-id.c
index f436c7b8c7ae..ea4159a5b567 100644
--- a/arch/arm/mach-mvebu/mvebu-soc-id.c
+++ b/arch/arm/mach-mvebu/mvebu-soc-id.c
@@ -154,7 +154,7 @@ static int __init mvebu_soc_device(void)
if (!is_id_valid)
return 0;
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr)
return -ENOMEM;
diff --git a/arch/arm/mach-mxs/mach-mxs.c b/arch/arm/mach-mxs/mach-mxs.c
index 6e017fa306c8..24dd8a0c6567 100644
--- a/arch/arm/mach-mxs/mach-mxs.c
+++ b/arch/arm/mach-mxs/mach-mxs.c
@@ -387,7 +387,7 @@ static void __init mxs_machine_init(void)
const u32 *ocotp = mxs_get_ocotp();
int ret;
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr)
return;
diff --git a/arch/arm/mach-omap1/dma.c b/arch/arm/mach-omap1/dma.c
index 756966cb715f..491254010c0c 100644
--- a/arch/arm/mach-omap1/dma.c
+++ b/arch/arm/mach-omap1/dma.c
@@ -319,7 +319,7 @@ static int __init omap1_system_dma_init(void)
goto exit_iounmap;
}
- d = kzalloc(sizeof(*d), GFP_KERNEL);
+ d = kzalloc_obj(*d, GFP_KERNEL);
if (!d) {
ret = -ENOMEM;
goto exit_iounmap;
diff --git a/arch/arm/mach-omap1/mcbsp.c b/arch/arm/mach-omap1/mcbsp.c
index 37863bdce9ea..a4dae1baae99 100644
--- a/arch/arm/mach-omap1/mcbsp.c
+++ b/arch/arm/mach-omap1/mcbsp.c
@@ -294,8 +294,8 @@ static void omap_mcbsp_register_board_cfg(struct resource *res, int res_count,
{
int i;
- omap_mcbsp_devices = kcalloc(size, sizeof(struct platform_device *),
- GFP_KERNEL);
+ omap_mcbsp_devices = kzalloc_objs(struct platform_device *, size,
+ GFP_KERNEL);
if (!omap_mcbsp_devices) {
printk(KERN_ERR "Could not register McBSP devices\n");
return;
diff --git a/arch/arm/mach-omap1/timer.c b/arch/arm/mach-omap1/timer.c
index 81a912c1145a..09dab51d5728 100644
--- a/arch/arm/mach-omap1/timer.c
+++ b/arch/arm/mach-omap1/timer.c
@@ -125,7 +125,7 @@ static int __init omap1_dm_timer_init(void)
goto err_free_pdev;
}
- pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
+ pdata = kzalloc_obj(*pdata, GFP_KERNEL);
if (!pdata) {
ret = -ENOMEM;
goto err_free_pdata;
diff --git a/arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c b/arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c
index 96c5cdc718c8..0b9d4c7b6711 100644
--- a/arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c
+++ b/arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c
@@ -237,7 +237,7 @@ void omap2xxx_clkt_vps_init(void)
omap2xxx_clkt_vps_late_init();
omap2xxx_clkt_vps_check_bootloader_rates();
- hw = kzalloc(sizeof(*hw), GFP_KERNEL);
+ hw = kzalloc_obj(*hw, GFP_KERNEL);
if (!hw)
return;
init.name = "virt_prcm_set";
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index 7f387706368a..fd9e4146db35 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -787,7 +787,7 @@ void __init omap_soc_device_init(void)
struct soc_device *soc_dev;
struct soc_device_attribute *soc_dev_attr;
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr)
return;
diff --git a/arch/arm/mach-omap2/omap-iommu.c b/arch/arm/mach-omap2/omap-iommu.c
index 9c8a85198e16..debc3f0d0184 100644
--- a/arch/arm/mach-omap2/omap-iommu.c
+++ b/arch/arm/mach-omap2/omap-iommu.c
@@ -99,7 +99,7 @@ static struct powerdomain *_get_pwrdm(struct device *dev)
return NULL;
}
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (entry) {
entry->dev = dev;
entry->pwrdm = pwrdm;
diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
index 800980057373..ab8adccbd7dd 100644
--- a/arch/arm/mach-omap2/omap_device.c
+++ b/arch/arm/mach-omap2/omap_device.c
@@ -156,7 +156,7 @@ static int omap_device_build_from_dt(struct platform_device *pdev)
!omap_hwmod_parse_module_range(NULL, node, &res))
return -ENODEV;
- hwmods = kcalloc(oh_cnt, sizeof(struct omap_hwmod *), GFP_KERNEL);
+ hwmods = kzalloc_objs(struct omap_hwmod *, oh_cnt, GFP_KERNEL);
if (!hwmods) {
ret = -ENOMEM;
goto odbfd_exit;
@@ -309,7 +309,7 @@ static struct omap_device *omap_device_alloc(struct platform_device *pdev,
int i;
struct omap_hwmod **hwmods;
- od = kzalloc(sizeof(struct omap_device), GFP_KERNEL);
+ od = kzalloc_obj(struct omap_device, GFP_KERNEL);
if (!od)
goto oda_exit1;
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index 111677878d9c..3591ca1f59c6 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -3392,7 +3392,7 @@ static int omap_hwmod_allocate_module(struct device *dev, struct omap_hwmod *oh,
void __iomem *regs = NULL;
unsigned long flags;
- sysc = kzalloc(sizeof(*sysc), GFP_KERNEL);
+ sysc = kzalloc_obj(*sysc, GFP_KERNEL);
if (!sysc)
return -ENOMEM;
@@ -3422,7 +3422,7 @@ static int omap_hwmod_allocate_module(struct device *dev, struct omap_hwmod *oh,
}
if (list_empty(&oh->slave_ports)) {
- oi = kzalloc(sizeof(*oi), GFP_KERNEL);
+ oi = kzalloc_obj(*oi, GFP_KERNEL);
if (!oi)
goto out_free_class;
@@ -3525,7 +3525,7 @@ int omap_hwmod_init_module(struct device *dev,
oh = _lookup(data->name);
if (!oh) {
- oh = kzalloc(sizeof(*oh), GFP_KERNEL);
+ oh = kzalloc_obj(*oh, GFP_KERNEL);
if (!oh)
return -ENOMEM;
@@ -3536,7 +3536,7 @@ int omap_hwmod_init_module(struct device *dev,
/* Unused, can be handled by PRM driver handling resets */
oh->prcm.omap4.flags = HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT;
- oh->class = kzalloc(sizeof(*oh->class), GFP_KERNEL);
+ oh->class = kzalloc_obj(*oh->class, GFP_KERNEL);
if (!oh->class) {
kfree(oh);
return -ENOMEM;
diff --git a/arch/arm/mach-omap2/pm33xx-core.c b/arch/arm/mach-omap2/pm33xx-core.c
index 4abb86dc98fd..e3f47fb2d4ef 100644
--- a/arch/arm/mach-omap2/pm33xx-core.c
+++ b/arch/arm/mach-omap2/pm33xx-core.c
@@ -410,7 +410,7 @@ static int __init amx3_idle_init(struct device_node *cpu_node, int cpu)
state_count++;
}
- idle_states = kcalloc(state_count, sizeof(*idle_states), GFP_KERNEL);
+ idle_states = kzalloc_objs(*idle_states, state_count, GFP_KERNEL);
if (!idle_states)
return -ENOMEM;
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index 68975771e633..9992549c7336 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -410,7 +410,7 @@ static int __init pwrdms_setup(struct powerdomain *pwrdm, void *unused)
if (!pwrdm->pwrsts)
return 0;
- pwrst = kmalloc(sizeof(struct power_state), GFP_ATOMIC);
+ pwrst = kmalloc_obj(struct power_state, GFP_ATOMIC);
if (!pwrst)
return -ENOMEM;
pwrst->pwrdm = pwrdm;
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
index 37b168119fe4..554352e9e1c6 100644
--- a/arch/arm/mach-omap2/pm44xx.c
+++ b/arch/arm/mach-omap2/pm44xx.c
@@ -132,7 +132,7 @@ static int __init pwrdms_setup(struct powerdomain *pwrdm, void *unused)
!strncmp(pwrdm->name, "l4per", 5))
pwrdm_set_logic_retst(pwrdm, PWRDM_POWER_OFF);
- pwrst = kmalloc(sizeof(struct power_state), GFP_ATOMIC);
+ pwrst = kmalloc_obj(struct power_state, GFP_ATOMIC);
if (!pwrst)
return -ENOMEM;
diff --git a/arch/arm/mach-omap2/sr_device.c b/arch/arm/mach-omap2/sr_device.c
index d2133423b0c9..9d1a14771590 100644
--- a/arch/arm/mach-omap2/sr_device.c
+++ b/arch/arm/mach-omap2/sr_device.c
@@ -39,7 +39,7 @@ static void __init sr_set_nvalues(struct omap_volt_data *volt_data,
while (volt_data[count].volt_nominal)
count++;
- nvalue_table = kcalloc(count, sizeof(*nvalue_table), GFP_KERNEL);
+ nvalue_table = kzalloc_objs(*nvalue_table, count, GFP_KERNEL);
if (!nvalue_table)
return;
diff --git a/arch/arm/mach-orion5x/pci.c b/arch/arm/mach-orion5x/pci.c
index 3313bc5a63ea..2ee1ff7335db 100644
--- a/arch/arm/mach-orion5x/pci.c
+++ b/arch/arm/mach-orion5x/pci.c
@@ -169,7 +169,7 @@ static int __init pcie_setup(struct pci_sys_data *sys)
/*
* Request resources.
*/
- res = kzalloc(sizeof(struct resource), GFP_KERNEL);
+ res = kzalloc_obj(struct resource, GFP_KERNEL);
if (!res)
panic("pcie_setup unable to alloc resources");
@@ -490,7 +490,7 @@ static int __init pci_setup(struct pci_sys_data *sys)
/*
* Request resources
*/
- res = kzalloc(sizeof(struct resource), GFP_KERNEL);
+ res = kzalloc_obj(struct resource, GFP_KERNEL);
if (!res)
panic("pci_setup unable to alloc resources");
diff --git a/arch/arm/mach-rpc/ecard.c b/arch/arm/mach-rpc/ecard.c
index 2cde4c83b7f9..9f0edac1697c 100644
--- a/arch/arm/mach-rpc/ecard.c
+++ b/arch/arm/mach-rpc/ecard.c
@@ -692,7 +692,7 @@ static struct expansion_card *__init ecard_alloc_card(int type, int slot)
unsigned long base;
int i;
- ec = kzalloc(sizeof(ecard_t), GFP_KERNEL);
+ ec = kzalloc_obj(ecard_t, GFP_KERNEL);
if (!ec) {
ec = ERR_PTR(-ENOMEM);
goto nomem;
diff --git a/arch/arm/mach-sa1100/clock.c b/arch/arm/mach-sa1100/clock.c
index e8691921c69a..e4c7a0b78783 100644
--- a/arch/arm/mach-sa1100/clock.c
+++ b/arch/arm/mach-sa1100/clock.c
@@ -107,7 +107,7 @@ int __init sa11xx_clk_init(void)
clk_hw_register_clkdev(hw, "OSTIMER0", NULL);
- hw = kzalloc(sizeof(*hw), GFP_KERNEL);
+ hw = kzalloc_obj(*hw, GFP_KERNEL);
if (!hw)
return -ENOMEM;
hw->init = &clk_mpll_init_data;
@@ -129,7 +129,7 @@ int __init sa11xx_clk_init(void)
FAlnMsk(TUCR_TSEL), 0, &tucr_lock);
clk_set_rate(hw->clk, 3686400);
- hw = kzalloc(sizeof(*hw), GFP_KERNEL);
+ hw = kzalloc_obj(*hw, GFP_KERNEL);
if (!hw)
return -ENOMEM;
hw->init = &clk_gpio27_init_data;
diff --git a/arch/arm/mach-sa1100/generic.c b/arch/arm/mach-sa1100/generic.c
index 5383a26f5116..078667b52b8a 100644
--- a/arch/arm/mach-sa1100/generic.c
+++ b/arch/arm/mach-sa1100/generic.c
@@ -321,7 +321,7 @@ int __init sa11x0_register_fixed_regulator(int n,
{
struct regulator_init_data *id;
- cfg->init_data = id = kzalloc(sizeof(*cfg->init_data), GFP_KERNEL);
+ cfg->init_data = id = kzalloc_obj(*cfg->init_data, GFP_KERNEL);
if (!cfg->init_data)
return -ENOMEM;
diff --git a/arch/arm/mach-sa1100/neponset.c b/arch/arm/mach-sa1100/neponset.c
index 88fe79f0a4ed..f8960373fa06 100644
--- a/arch/arm/mach-sa1100/neponset.c
+++ b/arch/arm/mach-sa1100/neponset.c
@@ -276,7 +276,7 @@ static int neponset_probe(struct platform_device *dev)
goto err_alloc;
}
- d = kzalloc(sizeof(*d), GFP_KERNEL);
+ d = kzalloc_obj(*d, GFP_KERNEL);
if (!d) {
ret = -ENOMEM;
goto err_alloc;
diff --git a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
index 117e7b07995b..c6659131f21b 100644
--- a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
+++ b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
@@ -164,7 +164,7 @@ static int __init rcar_gen2_regulator_quirk(void)
if (ret) /* Skip invalid entry and continue */
continue;
- quirk = kzalloc(sizeof(*quirk), GFP_KERNEL);
+ quirk = kzalloc_obj(*quirk, GFP_KERNEL);
if (!quirk) {
ret = -ENOMEM;
of_node_put(np);
diff --git a/arch/arm/mach-versatile/spc.c b/arch/arm/mach-versatile/spc.c
index 2d27777a00d3..d77ed8ce5f32 100644
--- a/arch/arm/mach-versatile/spc.c
+++ b/arch/arm/mach-versatile/spc.c
@@ -395,7 +395,7 @@ static int ve_spc_populate_opps(uint32_t cluster)
uint32_t data = 0, off, ret, idx;
struct ve_spc_opp *opps;
- opps = kcalloc(MAX_OPPS, sizeof(*opps), GFP_KERNEL);
+ opps = kzalloc_objs(*opps, MAX_OPPS, GFP_KERNEL);
if (!opps)
return -ENOMEM;
@@ -442,7 +442,7 @@ static int ve_init_opp_table(struct device *cpu_dev)
int __init ve_spc_init(void __iomem *baseaddr, u32 a15_clusid, int irq)
{
int ret;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
@@ -525,7 +525,7 @@ static struct clk *ve_spc_clk_register(struct device *cpu_dev)
struct clk_init_data init;
struct clk_spc *spc;
- spc = kzalloc(sizeof(*spc), GFP_KERNEL);
+ spc = kzalloc_obj(*spc, GFP_KERNEL);
if (!spc)
return ERR_PTR(-ENOMEM);
diff --git a/arch/arm/mach-versatile/versatile.c b/arch/arm/mach-versatile/versatile.c
index f0c80d4663ca..53d02ce2ad43 100644
--- a/arch/arm/mach-versatile/versatile.c
+++ b/arch/arm/mach-versatile/versatile.c
@@ -142,7 +142,7 @@ static void __init versatile_dt_pci_init(void)
goto out_put_node;
}
- newprop = kzalloc(sizeof(*newprop), GFP_KERNEL);
+ newprop = kzalloc_obj(*newprop, GFP_KERNEL);
if (!newprop)
goto out_put_node;
diff --git a/arch/arm/mach-zynq/common.c b/arch/arm/mach-zynq/common.c
index 15e8a321a713..ddb06d5ca55d 100644
--- a/arch/arm/mach-zynq/common.c
+++ b/arch/arm/mach-zynq/common.c
@@ -108,7 +108,7 @@ static void __init zynq_init_machine(void)
struct soc_device *soc_dev;
struct device *parent = NULL;
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr)
goto out;
diff --git a/arch/arm/mm/cache-l2x0-pmu.c b/arch/arm/mm/cache-l2x0-pmu.c
index 93ef0502b7ff..3d62bd48086b 100644
--- a/arch/arm/mm/cache-l2x0-pmu.c
+++ b/arch/arm/mm/cache-l2x0-pmu.c
@@ -507,7 +507,7 @@ static __init int l2x0_pmu_init(void)
if (!l2x0_base)
return 0;
- l2x0_pmu = kzalloc(sizeof(*l2x0_pmu), GFP_KERNEL);
+ l2x0_pmu = kzalloc_obj(*l2x0_pmu, GFP_KERNEL);
if (!l2x0_pmu) {
pr_warn("Unable to allocate L2x0 PMU\n");
return -ENOMEM;
diff --git a/arch/arm/mm/cache-uniphier.c b/arch/arm/mm/cache-uniphier.c
index 84a2f17ff32d..c601532f7a77 100644
--- a/arch/arm/mm/cache-uniphier.c
+++ b/arch/arm/mm/cache-uniphier.c
@@ -342,7 +342,7 @@ static int __init __uniphier_cache_init(struct device_node *np,
return -EINVAL;
}
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index a4c765d24692..7aca3e747ad5 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -558,8 +558,8 @@ static void *__dma_alloc(struct device *dev, size_t size, dma_addr_t *handle,
}
#endif
- buf = kzalloc(sizeof(*buf),
- gfp & ~(__GFP_DMA | __GFP_DMA32 | __GFP_HIGHMEM));
+ buf = kzalloc_obj(*buf,
+ gfp & ~(__GFP_DMA | __GFP_DMA32 | __GFP_HIGHMEM));
if (!buf)
return NULL;
@@ -1504,7 +1504,7 @@ arm_iommu_create_mapping(struct device *dev, dma_addr_t base, u64 size)
bitmap_size = PAGE_SIZE;
}
- mapping = kzalloc(sizeof(struct dma_iommu_mapping), GFP_KERNEL);
+ mapping = kzalloc_obj(struct dma_iommu_mapping, GFP_KERNEL);
if (!mapping)
goto err;
diff --git a/arch/arm/mm/pgd.c b/arch/arm/mm/pgd.c
index 4eb81b7ed03a..447945836c3f 100644
--- a/arch/arm/mm/pgd.c
+++ b/arch/arm/mm/pgd.c
@@ -17,7 +17,7 @@
#include "mm.h"
#ifdef CONFIG_ARM_LPAE
-#define _pgd_alloc(mm) kmalloc_array(PTRS_PER_PGD, sizeof(pgd_t), GFP_KERNEL | __GFP_ZERO)
+#define _pgd_alloc(mm) kmalloc_objs(pgd_t, PTRS_PER_PGD, GFP_KERNEL | __GFP_ZERO)
#define _pgd_free(mm, pgd) kfree(pgd)
#else
#define _pgd_alloc(mm) __pgd_alloc(mm, 2)
diff --git a/arch/arm/probes/kprobes/test-core.c b/arch/arm/probes/kprobes/test-core.c
index 171c7076b89f..ef93f2f1db62 100644
--- a/arch/arm/probes/kprobes/test-core.c
+++ b/arch/arm/probes/kprobes/test-core.c
@@ -763,9 +763,8 @@ static int coverage_start_fn(const struct decode_header *h, void *args)
static int coverage_start(const union decode_item *table)
{
- coverage.base = kmalloc_array(MAX_COVERAGE_ENTRIES,
- sizeof(struct coverage_entry),
- GFP_KERNEL);
+ coverage.base = kmalloc_objs(struct coverage_entry,
+ MAX_COVERAGE_ENTRIES, GFP_KERNEL);
coverage.num_entries = 0;
coverage.nesting = 0;
return table_iter(table, coverage_start_fn, &coverage);
diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
index 8655bc3d3634..9c3e6145b810 100644
--- a/arch/arm/xen/enlighten.c
+++ b/arch/arm/xen/enlighten.c
@@ -339,7 +339,7 @@ int __init arch_xen_unpopulated_init(struct resource **res)
return -EINVAL;
}
- regs = kcalloc(nr_reg, sizeof(*regs), GFP_KERNEL);
+ regs = kzalloc_objs(*regs, nr_reg, GFP_KERNEL);
if (!regs) {
of_node_put(np);
return -ENOMEM;
@@ -383,7 +383,7 @@ int __init arch_xen_unpopulated_init(struct resource **res)
start = regs[i - 1].end + 1;
end = regs[i].start - 1;
- tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
+ tmp_res = kzalloc_obj(*tmp_res, GFP_KERNEL);
if (!tmp_res) {
rc = -ENOMEM;
goto err;
diff --git a/arch/arm/xen/p2m.c b/arch/arm/xen/p2m.c
index 9da57a5b81c7..d911d91d5832 100644
--- a/arch/arm/xen/p2m.c
+++ b/arch/arm/xen/p2m.c
@@ -176,7 +176,7 @@ bool __set_phys_to_machine_multi(unsigned long pfn,
return true;
}
- p2m_entry = kzalloc(sizeof(*p2m_entry), GFP_NOWAIT);
+ p2m_entry = kzalloc_obj(*p2m_entry, GFP_NOWAIT);
if (!p2m_entry)
return false;
diff --git a/arch/arm64/kernel/machine_kexec_file.c b/arch/arm64/kernel/machine_kexec_file.c
index 410060ebd86d..9038d46dacf5 100644
--- a/arch/arm64/kernel/machine_kexec_file.c
+++ b/arch/arm64/kernel/machine_kexec_file.c
@@ -52,7 +52,7 @@ static int prepare_elf_headers(void **addr, unsigned long *sz)
for_each_mem_range(i, &start, &end)
nr_ranges++;
- cmem = kmalloc(struct_size(cmem, ranges, nr_ranges), GFP_KERNEL);
+ cmem = kmalloc_flex(*cmem, ranges, nr_ranges, GFP_KERNEL);
if (!cmem)
return -ENOMEM;
diff --git a/arch/arm64/kernel/vdso.c b/arch/arm64/kernel/vdso.c
index 78ddf6bdecad..34d761ef08b0 100644
--- a/arch/arm64/kernel/vdso.c
+++ b/arch/arm64/kernel/vdso.c
@@ -81,9 +81,8 @@ static int __init __vdso_init(enum vdso_abi abi)
vdso_info[abi].vdso_code_start) >>
PAGE_SHIFT;
- vdso_pagelist = kcalloc(vdso_info[abi].vdso_pages,
- sizeof(struct page *),
- GFP_KERNEL);
+ vdso_pagelist = kzalloc_objs(struct page *, vdso_info[abi].vdso_pages,
+ GFP_KERNEL);
if (vdso_pagelist == NULL)
return -ENOMEM;
diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c
index 94d5b0b99fd1..29f0326f7e00 100644
--- a/arch/arm64/kvm/arm.c
+++ b/arch/arm64/kvm/arm.c
@@ -854,8 +854,8 @@ static void kvm_init_mpidr_data(struct kvm *kvm)
* iterative method. Single vcpu VMs do not need this either.
*/
if (struct_size(data, cmpidr_to_idx, nr_entries) <= PAGE_SIZE)
- data = kzalloc(struct_size(data, cmpidr_to_idx, nr_entries),
- GFP_KERNEL_ACCOUNT);
+ data = kzalloc_flex(*data, cmpidr_to_idx, nr_entries,
+ GFP_KERNEL_ACCOUNT);
if (!data)
goto out;
diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c
index 8c5d259810b2..f6d8b294525d 100644
--- a/arch/arm64/kvm/mmu.c
+++ b/arch/arm64/kvm/mmu.c
@@ -487,7 +487,7 @@ static int share_pfn_hyp(u64 pfn)
goto unlock;
}
- this = kzalloc(sizeof(*this), GFP_KERNEL);
+ this = kzalloc_obj(*this, GFP_KERNEL);
if (!this) {
ret = -ENOMEM;
goto unlock;
@@ -978,7 +978,7 @@ int kvm_init_stage2_mmu(struct kvm *kvm, struct kvm_s2_mmu *mmu, unsigned long t
if (err)
return err;
- pgt = kzalloc(sizeof(*pgt), GFP_KERNEL_ACCOUNT);
+ pgt = kzalloc_obj(*pgt, GFP_KERNEL_ACCOUNT);
if (!pgt)
return -ENOMEM;
@@ -1155,7 +1155,8 @@ int topup_hyp_memcache(struct kvm_hyp_memcache *mc, unsigned long min_pages)
return 0;
if (!mc->mapping) {
- mc->mapping = kzalloc(sizeof(struct pkvm_mapping), GFP_KERNEL_ACCOUNT);
+ mc->mapping = kzalloc_obj(struct pkvm_mapping,
+ GFP_KERNEL_ACCOUNT);
if (!mc->mapping)
return -ENOMEM;
}
@@ -2328,7 +2329,7 @@ int __init kvm_mmu_init(u32 hyp_va_bits)
goto out;
}
- hyp_pgtable = kzalloc(sizeof(*hyp_pgtable), GFP_KERNEL);
+ hyp_pgtable = kzalloc_obj(*hyp_pgtable, GFP_KERNEL);
if (!hyp_pgtable) {
kvm_err("Hyp mode page-table not allocated\n");
err = -ENOMEM;
diff --git a/arch/arm64/kvm/nested.c b/arch/arm64/kvm/nested.c
index eeea5e692370..620126d1f0dc 100644
--- a/arch/arm64/kvm/nested.c
+++ b/arch/arm64/kvm/nested.c
@@ -1215,8 +1215,8 @@ int kvm_vcpu_allocate_vncr_tlb(struct kvm_vcpu *vcpu)
if (!kvm_has_feat(vcpu->kvm, ID_AA64MMFR4_EL1, NV_frac, NV2_ONLY))
return 0;
- vcpu->arch.vncr_tlb = kzalloc(sizeof(*vcpu->arch.vncr_tlb),
- GFP_KERNEL_ACCOUNT);
+ vcpu->arch.vncr_tlb = kzalloc_obj(*vcpu->arch.vncr_tlb,
+ GFP_KERNEL_ACCOUNT);
if (!vcpu->arch.vncr_tlb)
return -ENOMEM;
@@ -1704,8 +1704,8 @@ int kvm_init_nv_sysregs(struct kvm_vcpu *vcpu)
if (kvm->arch.sysreg_masks)
goto out;
- kvm->arch.sysreg_masks = kzalloc(sizeof(*(kvm->arch.sysreg_masks)),
- GFP_KERNEL_ACCOUNT);
+ kvm->arch.sysreg_masks = kzalloc_obj(*(kvm->arch.sysreg_masks),
+ GFP_KERNEL_ACCOUNT);
if (!kvm->arch.sysreg_masks)
return -ENOMEM;
diff --git a/arch/arm64/kvm/pmu-emul.c b/arch/arm64/kvm/pmu-emul.c
index b03dbda7f1ab..3a7b6e78a949 100644
--- a/arch/arm64/kvm/pmu-emul.c
+++ b/arch/arm64/kvm/pmu-emul.c
@@ -797,7 +797,7 @@ void kvm_host_pmu_init(struct arm_pmu *pmu)
guard(mutex)(&arm_pmus_lock);
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return;
diff --git a/arch/arm64/kvm/ptdump.c b/arch/arm64/kvm/ptdump.c
index 6cbe018fd6fd..6a8836207a79 100644
--- a/arch/arm64/kvm/ptdump.c
+++ b/arch/arm64/kvm/ptdump.c
@@ -119,7 +119,7 @@ static struct kvm_ptdump_guest_state *kvm_ptdump_parser_create(struct kvm *kvm)
struct kvm_pgtable *pgtable = mmu->pgt;
int ret;
- st = kzalloc(sizeof(struct kvm_ptdump_guest_state), GFP_KERNEL_ACCOUNT);
+ st = kzalloc_obj(struct kvm_ptdump_guest_state, GFP_KERNEL_ACCOUNT);
if (!st)
return ERR_PTR(-ENOMEM);
diff --git a/arch/arm64/kvm/vgic/vgic-debug.c b/arch/arm64/kvm/vgic/vgic-debug.c
index 2c6776a1779b..fa1de8784617 100644
--- a/arch/arm64/kvm/vgic/vgic-debug.c
+++ b/arch/arm64/kvm/vgic/vgic-debug.c
@@ -104,7 +104,7 @@ static void *vgic_debug_start(struct seq_file *s, loff_t *pos)
struct kvm *kvm = s->private;
struct vgic_state_iter *iter;
- iter = kmalloc(sizeof(*iter), GFP_KERNEL);
+ iter = kmalloc_obj(*iter, GFP_KERNEL);
if (!iter)
return ERR_PTR(-ENOMEM);
@@ -375,7 +375,7 @@ static void *vgic_its_debug_start(struct seq_file *s, loff_t *pos)
if (!dev)
return NULL;
- iter = kmalloc(sizeof(*iter), GFP_KERNEL);
+ iter = kmalloc_obj(*iter, GFP_KERNEL);
if (!iter)
return ERR_PTR(-ENOMEM);
diff --git a/arch/arm64/kvm/vgic/vgic-init.c b/arch/arm64/kvm/vgic/vgic-init.c
index a53f93546aa0..6eb273100ade 100644
--- a/arch/arm64/kvm/vgic/vgic-init.c
+++ b/arch/arm64/kvm/vgic/vgic-init.c
@@ -199,7 +199,7 @@ static int kvm_vgic_dist_init(struct kvm *kvm, unsigned int nr_spis)
int i;
dist->active_spis = (atomic_t)ATOMIC_INIT(0);
- dist->spis = kcalloc(nr_spis, sizeof(struct vgic_irq), GFP_KERNEL_ACCOUNT);
+ dist->spis = kzalloc_objs(struct vgic_irq, nr_spis, GFP_KERNEL_ACCOUNT);
if (!dist->spis)
return -ENOMEM;
@@ -269,9 +269,9 @@ static int vgic_allocate_private_irqs_locked(struct kvm_vcpu *vcpu, u32 type)
if (vgic_cpu->private_irqs)
return 0;
- vgic_cpu->private_irqs = kcalloc(VGIC_NR_PRIVATE_IRQS,
- sizeof(struct vgic_irq),
- GFP_KERNEL_ACCOUNT);
+ vgic_cpu->private_irqs = kzalloc_objs(struct vgic_irq,
+ VGIC_NR_PRIVATE_IRQS,
+ GFP_KERNEL_ACCOUNT);
if (!vgic_cpu->private_irqs)
return -ENOMEM;
@@ -654,7 +654,7 @@ static struct gic_kvm_info *gic_kvm_info;
void __init vgic_set_kvm_info(const struct gic_kvm_info *info)
{
BUG_ON(gic_kvm_info != NULL);
- gic_kvm_info = kmalloc(sizeof(*gic_kvm_info), GFP_KERNEL);
+ gic_kvm_info = kmalloc_obj(*gic_kvm_info, GFP_KERNEL);
if (gic_kvm_info)
*gic_kvm_info = *info;
}
diff --git a/arch/arm64/kvm/vgic/vgic-irqfd.c b/arch/arm64/kvm/vgic/vgic-irqfd.c
index c314c016659a..b9b86e3a6c86 100644
--- a/arch/arm64/kvm/vgic/vgic-irqfd.c
+++ b/arch/arm64/kvm/vgic/vgic-irqfd.c
@@ -140,7 +140,7 @@ int kvm_vgic_setup_default_irq_routing(struct kvm *kvm)
u32 nr = dist->nr_spis;
int i, ret;
- entries = kcalloc(nr, sizeof(*entries), GFP_KERNEL_ACCOUNT);
+ entries = kzalloc_objs(*entries, nr, GFP_KERNEL_ACCOUNT);
if (!entries)
return -ENOMEM;
diff --git a/arch/arm64/kvm/vgic/vgic-its.c b/arch/arm64/kvm/vgic/vgic-its.c
index 3f1c4b10fed9..2ea9f1c7ebcd 100644
--- a/arch/arm64/kvm/vgic/vgic-its.c
+++ b/arch/arm64/kvm/vgic/vgic-its.c
@@ -85,7 +85,7 @@ static struct vgic_irq *vgic_add_lpi(struct kvm *kvm, u32 intid,
if (irq)
return irq;
- irq = kzalloc(sizeof(struct vgic_irq), GFP_KERNEL_ACCOUNT);
+ irq = kzalloc_obj(struct vgic_irq, GFP_KERNEL_ACCOUNT);
if (!irq)
return ERR_PTR(-ENOMEM);
@@ -960,7 +960,7 @@ static int vgic_its_alloc_collection(struct vgic_its *its,
{
struct its_collection *collection;
- collection = kzalloc(sizeof(*collection), GFP_KERNEL_ACCOUNT);
+ collection = kzalloc_obj(*collection, GFP_KERNEL_ACCOUNT);
if (!collection)
return -ENOMEM;
@@ -1004,7 +1004,7 @@ static struct its_ite *vgic_its_alloc_ite(struct its_device *device,
{
struct its_ite *ite;
- ite = kzalloc(sizeof(*ite), GFP_KERNEL_ACCOUNT);
+ ite = kzalloc_obj(*ite, GFP_KERNEL_ACCOUNT);
if (!ite)
return ERR_PTR(-ENOMEM);
@@ -1131,7 +1131,7 @@ static struct its_device *vgic_its_alloc_device(struct vgic_its *its,
{
struct its_device *device;
- device = kzalloc(sizeof(*device), GFP_KERNEL_ACCOUNT);
+ device = kzalloc_obj(*device, GFP_KERNEL_ACCOUNT);
if (!device)
return ERR_PTR(-ENOMEM);
@@ -1846,7 +1846,7 @@ static int vgic_its_create(struct kvm_device *dev, u32 type)
if (type != KVM_DEV_TYPE_ARM_VGIC_ITS)
return -ENODEV;
- its = kzalloc(sizeof(struct vgic_its), GFP_KERNEL_ACCOUNT);
+ its = kzalloc_obj(struct vgic_its, GFP_KERNEL_ACCOUNT);
if (!its)
return -ENOMEM;
diff --git a/arch/arm64/kvm/vgic/vgic-mmio-v3.c b/arch/arm64/kvm/vgic/vgic-mmio-v3.c
index 70d50c77e5dc..89edb84d1ac6 100644
--- a/arch/arm64/kvm/vgic/vgic-mmio-v3.c
+++ b/arch/arm64/kvm/vgic/vgic-mmio-v3.c
@@ -929,7 +929,7 @@ static int vgic_v3_alloc_redist_region(struct kvm *kvm, uint32_t index,
if (vgic_v3_rdist_overlap(kvm, base, size))
return -EINVAL;
- rdreg = kzalloc(sizeof(*rdreg), GFP_KERNEL_ACCOUNT);
+ rdreg = kzalloc_obj(*rdreg, GFP_KERNEL_ACCOUNT);
if (!rdreg)
return -ENOMEM;
diff --git a/arch/arm64/kvm/vgic/vgic-v4.c b/arch/arm64/kvm/vgic/vgic-v4.c
index 09c3e9eb23f8..ed236f083f0d 100644
--- a/arch/arm64/kvm/vgic/vgic-v4.c
+++ b/arch/arm64/kvm/vgic/vgic-v4.c
@@ -256,8 +256,8 @@ int vgic_v4_init(struct kvm *kvm)
nr_vcpus = atomic_read(&kvm->online_vcpus);
- dist->its_vm.vpes = kcalloc(nr_vcpus, sizeof(*dist->its_vm.vpes),
- GFP_KERNEL_ACCOUNT);
+ dist->its_vm.vpes = kzalloc_objs(*dist->its_vm.vpes, nr_vcpus,
+ GFP_KERNEL_ACCOUNT);
if (!dist->its_vm.vpes)
return -ENOMEM;
diff --git a/arch/arm64/net/bpf_jit_comp.c b/arch/arm64/net/bpf_jit_comp.c
index 7a530ea4f5ae..da036853ee8a 100644
--- a/arch/arm64/net/bpf_jit_comp.c
+++ b/arch/arm64/net/bpf_jit_comp.c
@@ -2040,7 +2040,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
jit_data = prog->aux->jit_data;
if (!jit_data) {
- jit_data = kzalloc(sizeof(*jit_data), GFP_KERNEL);
+ jit_data = kzalloc_obj(*jit_data, GFP_KERNEL);
if (!jit_data) {
prog = orig_prog;
goto out;
@@ -2078,7 +2078,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
memset(&ctx, 0, sizeof(ctx));
ctx.prog = prog;
- ctx.offset = kvcalloc(prog->len + 1, sizeof(int), GFP_KERNEL);
+ ctx.offset = kvzalloc_objs(int, prog->len + 1, GFP_KERNEL);
if (ctx.offset == NULL) {
prog = orig_prog;
goto out_off;
diff --git a/arch/csky/kernel/vdso.c b/arch/csky/kernel/vdso.c
index c54d019d66bc..0f49ce6919e6 100644
--- a/arch/csky/kernel/vdso.c
+++ b/arch/csky/kernel/vdso.c
@@ -20,7 +20,7 @@ static int __init vdso_init(void)
vdso_pages = (vdso_end - vdso_start) >> PAGE_SHIFT;
vdso_pagelist =
- kcalloc(vdso_pages, sizeof(struct page *), GFP_KERNEL);
+ kzalloc_objs(struct page *, vdso_pages, GFP_KERNEL);
if (unlikely(vdso_pagelist == NULL)) {
pr_err("vdso: pagelist allocation failed\n");
return -ENOMEM;
diff --git a/arch/loongarch/kernel/machine_kexec_file.c b/arch/loongarch/kernel/machine_kexec_file.c
index fb57026f5f25..602fe9105381 100644
--- a/arch/loongarch/kernel/machine_kexec_file.c
+++ b/arch/loongarch/kernel/machine_kexec_file.c
@@ -68,7 +68,7 @@ static int prepare_elf_headers(void **addr, unsigned long *sz)
for_each_mem_range(i, &start, &end)
nr_ranges++;
- cmem = kmalloc(struct_size(cmem, ranges, nr_ranges), GFP_KERNEL);
+ cmem = kmalloc_flex(*cmem, ranges, nr_ranges, GFP_KERNEL);
if (!cmem)
return -ENOMEM;
diff --git a/arch/loongarch/kernel/setup.c b/arch/loongarch/kernel/setup.c
index 50a12c518dee..839b23edee87 100644
--- a/arch/loongarch/kernel/setup.c
+++ b/arch/loongarch/kernel/setup.c
@@ -470,7 +470,7 @@ static int __init add_legacy_isa_io(struct fwnode_handle *fwnode,
unsigned long vaddr;
struct logic_pio_hwaddr *range;
- range = kzalloc(sizeof(*range), GFP_ATOMIC);
+ range = kzalloc_obj(*range, GFP_ATOMIC);
if (!range)
return -ENOMEM;
diff --git a/arch/loongarch/kernel/vdso.c b/arch/loongarch/kernel/vdso.c
index dee1a15d7f4c..222be8fc4aec 100644
--- a/arch/loongarch/kernel/vdso.c
+++ b/arch/loongarch/kernel/vdso.c
@@ -52,7 +52,8 @@ static int __init init_vdso(void)
vdso_info.size = PAGE_ALIGN(vdso_end - vdso_start);
vdso_info.code_mapping.pages =
- kcalloc(vdso_info.size / PAGE_SIZE, sizeof(struct page *), GFP_KERNEL);
+ kzalloc_objs(struct page *, vdso_info.size / PAGE_SIZE,
+ GFP_KERNEL);
if (!vdso_info.code_mapping.pages)
return -ENOMEM;
diff --git a/arch/loongarch/kvm/intc/eiointc.c b/arch/loongarch/kvm/intc/eiointc.c
index e498a3f1e136..fe4173b4a102 100644
--- a/arch/loongarch/kvm/intc/eiointc.c
+++ b/arch/loongarch/kvm/intc/eiointc.c
@@ -622,7 +622,7 @@ static int kvm_eiointc_create(struct kvm_device *dev, u32 type)
if (kvm->arch.eiointc)
return -EINVAL;
- s = kzalloc(sizeof(struct loongarch_eiointc), GFP_KERNEL);
+ s = kzalloc_obj(struct loongarch_eiointc, GFP_KERNEL);
if (!s)
return -ENOMEM;
diff --git a/arch/loongarch/kvm/intc/ipi.c b/arch/loongarch/kvm/intc/ipi.c
index 6a044a74c095..6e87cefbb3e2 100644
--- a/arch/loongarch/kvm/intc/ipi.c
+++ b/arch/loongarch/kvm/intc/ipi.c
@@ -409,7 +409,7 @@ static int kvm_ipi_create(struct kvm_device *dev, u32 type)
return -EINVAL;
}
- s = kzalloc(sizeof(struct loongarch_ipi), GFP_KERNEL);
+ s = kzalloc_obj(struct loongarch_ipi, GFP_KERNEL);
if (!s)
return -ENOMEM;
diff --git a/arch/loongarch/kvm/intc/pch_pic.c b/arch/loongarch/kvm/intc/pch_pic.c
index a175f52fcf7f..1fead3f36f4d 100644
--- a/arch/loongarch/kvm/intc/pch_pic.c
+++ b/arch/loongarch/kvm/intc/pch_pic.c
@@ -402,7 +402,7 @@ static int kvm_setup_default_irq_routing(struct kvm *kvm)
u32 nr = KVM_IRQCHIP_NUM_PINS;
struct kvm_irq_routing_entry *entries;
- entries = kcalloc(nr, sizeof(*entries), GFP_KERNEL);
+ entries = kzalloc_objs(*entries, nr, GFP_KERNEL);
if (!entries)
return -ENOMEM;
@@ -432,7 +432,7 @@ static int kvm_pch_pic_create(struct kvm_device *dev, u32 type)
if (ret)
return -ENOMEM;
- s = kzalloc(sizeof(struct loongarch_pch_pic), GFP_KERNEL);
+ s = kzalloc_obj(struct loongarch_pch_pic, GFP_KERNEL);
if (!s)
return -ENOMEM;
diff --git a/arch/loongarch/kvm/main.c b/arch/loongarch/kvm/main.c
index ac38d0f19dd3..c86f9f5fedb5 100644
--- a/arch/loongarch/kvm/main.c
+++ b/arch/loongarch/kvm/main.c
@@ -358,7 +358,7 @@ static int kvm_loongarch_env_init(void)
return -ENOMEM;
}
- kvm_loongarch_ops = kzalloc(sizeof(*kvm_loongarch_ops), GFP_KERNEL);
+ kvm_loongarch_ops = kzalloc_obj(*kvm_loongarch_ops, GFP_KERNEL);
if (!kvm_loongarch_ops) {
free_percpu(vmcs);
vmcs = NULL;
diff --git a/arch/loongarch/kvm/vcpu.c b/arch/loongarch/kvm/vcpu.c
index 550c0d05666a..483ed31f2008 100644
--- a/arch/loongarch/kvm/vcpu.c
+++ b/arch/loongarch/kvm/vcpu.c
@@ -1547,7 +1547,7 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu)
vcpu->arch.handle_exit = kvm_handle_exit;
vcpu->arch.guest_eentry = (unsigned long)kvm_loongarch_ops->exc_entry;
- vcpu->arch.csr = kzalloc(sizeof(struct loongarch_csrs), GFP_KERNEL);
+ vcpu->arch.csr = kzalloc_obj(struct loongarch_csrs, GFP_KERNEL);
if (!vcpu->arch.csr)
return -ENOMEM;
diff --git a/arch/loongarch/kvm/vm.c b/arch/loongarch/kvm/vm.c
index 9681ade890c6..63fd40530aa9 100644
--- a/arch/loongarch/kvm/vm.c
+++ b/arch/loongarch/kvm/vm.c
@@ -68,7 +68,8 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
if (!kvm->arch.pgd)
return -ENOMEM;
- kvm->arch.phyid_map = kvzalloc(sizeof(struct kvm_phyid_map), GFP_KERNEL_ACCOUNT);
+ kvm->arch.phyid_map = kvzalloc_obj(struct kvm_phyid_map,
+ GFP_KERNEL_ACCOUNT);
if (!kvm->arch.phyid_map) {
free_page((unsigned long)kvm->arch.pgd);
kvm->arch.pgd = NULL;
diff --git a/arch/loongarch/net/bpf_jit.c b/arch/loongarch/net/bpf_jit.c
index d7de5a87d081..07f876834b24 100644
--- a/arch/loongarch/net/bpf_jit.c
+++ b/arch/loongarch/net/bpf_jit.c
@@ -1943,7 +1943,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
jit_data = prog->aux->jit_data;
if (!jit_data) {
- jit_data = kzalloc(sizeof(*jit_data), GFP_KERNEL);
+ jit_data = kzalloc_obj(*jit_data, GFP_KERNEL);
if (!jit_data) {
prog = orig_prog;
goto out;
diff --git a/arch/loongarch/pci/acpi.c b/arch/loongarch/pci/acpi.c
index 50c9016641a4..324a19d88ca1 100644
--- a/arch/loongarch/pci/acpi.c
+++ b/arch/loongarch/pci/acpi.c
@@ -101,7 +101,7 @@ static struct pci_config_window *arch_pci_ecam_create(struct device *dev,
if (busr->start > busr->end)
return ERR_PTR(-EINVAL);
- cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
+ cfg = kzalloc_obj(*cfg, GFP_KERNEL);
if (!cfg)
return ERR_PTR(-ENOMEM);
@@ -199,13 +199,13 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
int domain = root->segment;
int busnum = root->secondary.start;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info) {
pr_warn("pci_bus %04x:%02x: ignored (out of memory)\n", domain, busnum);
return NULL;
}
- root_ops = kzalloc(sizeof(*root_ops), GFP_KERNEL);
+ root_ops = kzalloc_obj(*root_ops, GFP_KERNEL);
if (!root_ops) {
kfree(info);
return NULL;
diff --git a/arch/m68k/amiga/chipram.c b/arch/m68k/amiga/chipram.c
index a537953bc10c..388cb652e51e 100644
--- a/arch/m68k/amiga/chipram.c
+++ b/arch/m68k/amiga/chipram.c
@@ -47,7 +47,7 @@ void *amiga_chip_alloc(unsigned long size, const char *name)
struct resource *res;
void *p;
- res = kzalloc(sizeof(struct resource), GFP_KERNEL);
+ res = kzalloc_obj(struct resource, GFP_KERNEL);
if (!res)
return NULL;
diff --git a/arch/m68k/atari/stram.c b/arch/m68k/atari/stram.c
index 922e53bcb853..958c12a29884 100644
--- a/arch/m68k/atari/stram.c
+++ b/arch/m68k/atari/stram.c
@@ -161,7 +161,7 @@ void *atari_stram_alloc(unsigned long size, const char *owner)
/* round up */
size = PAGE_ALIGN(size);
- res = kzalloc(sizeof(struct resource), GFP_KERNEL);
+ res = kzalloc_obj(struct resource, GFP_KERNEL);
if (!res)
return NULL;
diff --git a/arch/m68k/emu/nfblock.c b/arch/m68k/emu/nfblock.c
index 94a4fadc651a..921a96ea83df 100644
--- a/arch/m68k/emu/nfblock.c
+++ b/arch/m68k/emu/nfblock.c
@@ -112,7 +112,7 @@ static int __init nfhd_init_one(int id, u32 blocks, u32 bsize)
return -EINVAL;
}
- dev = kmalloc(sizeof(struct nfhd_device), GFP_KERNEL);
+ dev = kmalloc_obj(struct nfhd_device, GFP_KERNEL);
if (!dev)
goto out;
diff --git a/arch/m68k/mm/kmap.c b/arch/m68k/mm/kmap.c
index 7594a945732b..0ef6e6894a96 100644
--- a/arch/m68k/mm/kmap.c
+++ b/arch/m68k/mm/kmap.c
@@ -110,7 +110,7 @@ static struct vm_struct *get_io_area(unsigned long size)
unsigned long addr;
struct vm_struct **p, *tmp, *area;
- area = kmalloc(sizeof(*area), GFP_KERNEL);
+ area = kmalloc_obj(*area, GFP_KERNEL);
if (!area)
return NULL;
addr = KMAP_START;
diff --git a/arch/mips/alchemy/common/clock.c b/arch/mips/alchemy/common/clock.c
index 551b0d21d9dc..7ed84f26ac40 100644
--- a/arch/mips/alchemy/common/clock.c
+++ b/arch/mips/alchemy/common/clock.c
@@ -154,7 +154,7 @@ static struct clk __init *alchemy_clk_setup_cpu(const char *parent_name,
struct clk_hw *h;
struct clk *clk;
- h = kzalloc(sizeof(*h), GFP_KERNEL);
+ h = kzalloc_obj(*h, GFP_KERNEL);
if (!h)
return ERR_PTR(-ENOMEM);
@@ -249,7 +249,7 @@ static struct clk __init *alchemy_clk_setup_aux(const char *parent_name,
struct clk *c;
struct alchemy_auxpll_clk *a;
- a = kzalloc(sizeof(*a), GFP_KERNEL);
+ a = kzalloc_obj(*a, GFP_KERNEL);
if (!a)
return ERR_PTR(-ENOMEM);
@@ -775,7 +775,7 @@ static int __init alchemy_clk_init_fgens(int ctype)
}
id.flags = CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE;
- a = kcalloc(6, sizeof(*a), GFP_KERNEL);
+ a = kzalloc_objs(*a, 6, GFP_KERNEL);
if (!a)
return -ENOMEM;
@@ -996,7 +996,7 @@ static int __init alchemy_clk_setup_imux(int ctype)
return -ENODEV;
}
- a = kcalloc(6, sizeof(*a), GFP_KERNEL);
+ a = kzalloc_objs(*a, 6, GFP_KERNEL);
if (!a)
return -ENOMEM;
diff --git a/arch/mips/alchemy/common/dbdma.c b/arch/mips/alchemy/common/dbdma.c
index 6c2c2010bbae..eb420a6f2f9f 100644
--- a/arch/mips/alchemy/common/dbdma.c
+++ b/arch/mips/alchemy/common/dbdma.c
@@ -310,7 +310,7 @@ u32 au1xxx_dbdma_chan_alloc(u32 srcid, u32 destid,
* If kmalloc fails, it is caught below same
* as a channel not available.
*/
- ctp = kmalloc(sizeof(chan_tab_t), GFP_ATOMIC);
+ ctp = kmalloc_obj(chan_tab_t, GFP_ATOMIC);
chan_tab_ptr[i] = ctp;
break;
}
@@ -412,8 +412,8 @@ u32 au1xxx_dbdma_ring_alloc(u32 chanid, int entries)
* and if we try that first we are likely to not waste larger
* slabs of memory.
*/
- desc_base = (u32)kmalloc_array(entries, sizeof(au1x_ddma_desc_t),
- GFP_KERNEL|GFP_DMA);
+ desc_base = (u32) kmalloc_objs(au1x_ddma_desc_t, entries,
+ GFP_KERNEL | GFP_DMA);
if (desc_base == 0)
return 0;
@@ -1057,7 +1057,7 @@ static int __init dbdma_setup(unsigned int irq, dbdev_tab_t *idtable)
{
int ret;
- dbdev_tab = kcalloc(DBDEV_TAB_SIZE, sizeof(dbdev_tab_t), GFP_KERNEL);
+ dbdev_tab = kzalloc_objs(dbdev_tab_t, DBDEV_TAB_SIZE, GFP_KERNEL);
if (!dbdev_tab)
return -ENOMEM;
diff --git a/arch/mips/alchemy/common/platform.c b/arch/mips/alchemy/common/platform.c
index da74cae6b43a..931cf459facb 100644
--- a/arch/mips/alchemy/common/platform.c
+++ b/arch/mips/alchemy/common/platform.c
@@ -202,10 +202,10 @@ static unsigned long alchemy_ehci_data[][2] __initdata = {
static int __init _new_usbres(struct resource **r, struct platform_device **d)
{
- *r = kcalloc(2, sizeof(struct resource), GFP_KERNEL);
+ *r = kzalloc_objs(struct resource, 2, GFP_KERNEL);
if (!*r)
return -ENOMEM;
- *d = kzalloc(sizeof(struct platform_device), GFP_KERNEL);
+ *d = kzalloc_obj(struct platform_device, GFP_KERNEL);
if (!*d) {
kfree(*r);
return -ENOMEM;
diff --git a/arch/mips/alchemy/devboards/platform.c b/arch/mips/alchemy/devboards/platform.c
index 754bdd2ca630..40e804a898ec 100644
--- a/arch/mips/alchemy/devboards/platform.c
+++ b/arch/mips/alchemy/devboards/platform.c
@@ -87,7 +87,7 @@ int __init db1x_register_pcmcia_socket(phys_addr_t pcmcia_attr_start,
if (stschg_irq)
cnt++;
- sr = kcalloc(cnt, sizeof(struct resource), GFP_KERNEL);
+ sr = kzalloc_objs(struct resource, cnt, GFP_KERNEL);
if (!sr)
return -ENOMEM;
@@ -162,15 +162,15 @@ int __init db1x_register_norflash(unsigned long size, int width,
return -EINVAL;
ret = -ENOMEM;
- parts = kcalloc(5, sizeof(struct mtd_partition), GFP_KERNEL);
+ parts = kzalloc_objs(struct mtd_partition, 5, GFP_KERNEL);
if (!parts)
goto out;
- res = kzalloc(sizeof(struct resource), GFP_KERNEL);
+ res = kzalloc_obj(struct resource, GFP_KERNEL);
if (!res)
goto out1;
- pfd = kzalloc(sizeof(struct physmap_flash_data), GFP_KERNEL);
+ pfd = kzalloc_obj(struct physmap_flash_data, GFP_KERNEL);
if (!pfd)
goto out2;
diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c
index 38ed61b4bd96..d9e569af0d86 100644
--- a/arch/mips/bcm47xx/setup.c
+++ b/arch/mips/bcm47xx/setup.c
@@ -187,7 +187,7 @@ static struct device * __init bcm47xx_setup_device(void)
struct device *dev;
int err;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return NULL;
diff --git a/arch/mips/cavium-octeon/octeon-irq.c b/arch/mips/cavium-octeon/octeon-irq.c
index 5c3de175ef5b..2a91e678fc1a 100644
--- a/arch/mips/cavium-octeon/octeon-irq.c
+++ b/arch/mips/cavium-octeon/octeon-irq.c
@@ -100,7 +100,7 @@ static int octeon_irq_set_ciu_mapping(int irq, int line, int bit, int gpio_line,
{
struct octeon_ciu_chip_data *cd;
- cd = kzalloc(sizeof(*cd), GFP_KERNEL);
+ cd = kzalloc_obj(*cd, GFP_KERNEL);
if (!cd)
return -ENOMEM;
@@ -1462,7 +1462,7 @@ static int __init octeon_irq_init_ciu(
struct irq_domain *ciu_domain = NULL;
struct octeon_irq_ciu_domain_data *dd;
- dd = kzalloc(sizeof(*dd), GFP_KERNEL);
+ dd = kzalloc_obj(*dd, GFP_KERNEL);
if (!dd)
return -ENOMEM;
@@ -1633,7 +1633,7 @@ static int __init octeon_irq_init_gpio(
return -EINVAL;
}
- gpiod = kzalloc(sizeof(*gpiod), GFP_KERNEL);
+ gpiod = kzalloc_obj(*gpiod, GFP_KERNEL);
if (gpiod) {
/* gpio domain host_data is the base hwirq number. */
gpiod->base_hwirq = base_hwirq;
@@ -2223,7 +2223,7 @@ static int octeon_irq_cib_map(struct irq_domain *d,
return -EINVAL;
}
- cd = kzalloc(sizeof(*cd), GFP_KERNEL);
+ cd = kzalloc_obj(*cd, GFP_KERNEL);
if (!cd)
return -ENOMEM;
@@ -2304,7 +2304,7 @@ static int __init octeon_irq_init_cib(struct device_node *ciu_node,
return -EINVAL;
}
- host_data = kzalloc(sizeof(*host_data), GFP_KERNEL);
+ host_data = kzalloc_obj(*host_data, GFP_KERNEL);
if (!host_data)
return -ENOMEM;
raw_spin_lock_init(&host_data->lock);
diff --git a/arch/mips/kernel/module.c b/arch/mips/kernel/module.c
index ba0f62d8eff5..9ef50013c818 100644
--- a/arch/mips/kernel/module.c
+++ b/arch/mips/kernel/module.c
@@ -72,7 +72,7 @@ static int apply_r_mips_hi16(struct module *me, u32 *location, Elf_Addr v,
* the carry we need to add. Save the information, and let LO16 do the
* actual relocation.
*/
- n = kmalloc(sizeof *n, GFP_KERNEL);
+ n = kmalloc_obj(*n, GFP_KERNEL);
if (!n)
return -ENOMEM;
diff --git a/arch/mips/kernel/smp-cps.c b/arch/mips/kernel/smp-cps.c
index 22d4f9ff3ae2..ef5dca1313b2 100644
--- a/arch/mips/kernel/smp-cps.c
+++ b/arch/mips/kernel/smp-cps.c
@@ -341,9 +341,8 @@ static void __init cps_prepare_cpus(unsigned int max_cpus)
/* Allocate cluster boot configuration structs */
nclusters = mips_cps_numclusters();
- mips_cps_cluster_bootcfg = kcalloc(nclusters,
- sizeof(*mips_cps_cluster_bootcfg),
- GFP_KERNEL);
+ mips_cps_cluster_bootcfg = kzalloc_objs(*mips_cps_cluster_bootcfg,
+ nclusters, GFP_KERNEL);
if (!mips_cps_cluster_bootcfg)
goto err_out;
@@ -353,8 +352,7 @@ static void __init cps_prepare_cpus(unsigned int max_cpus)
for (cl = 0; cl < nclusters; cl++) {
/* Allocate core boot configuration structs */
ncores = mips_cps_numcores(cl);
- core_bootcfg = kcalloc(ncores, sizeof(*core_bootcfg),
- GFP_KERNEL);
+ core_bootcfg = kzalloc_objs(*core_bootcfg, ncores, GFP_KERNEL);
if (!core_bootcfg)
goto err_out;
mips_cps_cluster_bootcfg[cl].core_config = core_bootcfg;
@@ -369,9 +367,9 @@ static void __init cps_prepare_cpus(unsigned int max_cpus)
for (c = 0; c < ncores; c++) {
int v;
core_vpes = core_vpe_count(cl, c);
- core_bootcfg[c].vpe_config = kcalloc(core_vpes,
- sizeof(*core_bootcfg[c].vpe_config),
- GFP_KERNEL);
+ core_bootcfg[c].vpe_config = kzalloc_objs(*core_bootcfg[c].vpe_config,
+ core_vpes,
+ GFP_KERNEL);
for (v = 0; v < core_vpes; v++)
cpumask_set_cpu(nvpe++, &mips_cps_cluster_bootcfg[cl].cpumask);
if (!core_bootcfg[c].vpe_config)
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c
index 2b67c44adab9..fdbb5c4de834 100644
--- a/arch/mips/kernel/vpe.c
+++ b/arch/mips/kernel/vpe.c
@@ -94,7 +94,7 @@ struct vpe *alloc_vpe(int minor)
{
struct vpe *v;
- v = kzalloc(sizeof(struct vpe), GFP_KERNEL);
+ v = kzalloc_obj(struct vpe, GFP_KERNEL);
if (v == NULL)
goto out;
@@ -115,7 +115,7 @@ struct tc *alloc_tc(int index)
{
struct tc *tc;
- tc = kzalloc(sizeof(struct tc), GFP_KERNEL);
+ tc = kzalloc_obj(struct tc, GFP_KERNEL);
if (tc == NULL)
goto out;
@@ -318,7 +318,7 @@ static int apply_r_mips_hi16(struct module *me, uint32_t *location,
* the carry we need to add. Save the information, and let LO16 do the
* actual relocation.
*/
- n = kmalloc(sizeof(*n), GFP_KERNEL);
+ n = kmalloc_obj(*n, GFP_KERNEL);
if (!n)
return -ENOMEM;
diff --git a/arch/mips/lantiq/falcon/sysctrl.c b/arch/mips/lantiq/falcon/sysctrl.c
index 577e6e6309a6..ee0e634f6fe1 100644
--- a/arch/mips/lantiq/falcon/sysctrl.c
+++ b/arch/mips/lantiq/falcon/sysctrl.c
@@ -161,7 +161,7 @@ static void falcon_gpe_enable(void)
static inline void clkdev_add_sys(const char *dev, unsigned int module,
unsigned int bits)
{
- struct clk *clk = kzalloc(sizeof(struct clk), GFP_KERNEL);
+ struct clk *clk = kzalloc_obj(struct clk, GFP_KERNEL);
if (!clk)
return;
diff --git a/arch/mips/lantiq/xway/gptu.c b/arch/mips/lantiq/xway/gptu.c
index 484c9e3000c1..f8f3f5383a34 100644
--- a/arch/mips/lantiq/xway/gptu.c
+++ b/arch/mips/lantiq/xway/gptu.c
@@ -121,7 +121,7 @@ static void gptu_disable(struct clk *clk)
static inline void clkdev_add_gptu(struct device *dev, const char *con,
unsigned int timer)
{
- struct clk *clk = kzalloc(sizeof(struct clk), GFP_KERNEL);
+ struct clk *clk = kzalloc_obj(struct clk, GFP_KERNEL);
if (!clk)
return;
diff --git a/arch/mips/lantiq/xway/sysctrl.c b/arch/mips/lantiq/xway/sysctrl.c
index d9aa80afdf9d..b7be6c710a15 100644
--- a/arch/mips/lantiq/xway/sysctrl.c
+++ b/arch/mips/lantiq/xway/sysctrl.c
@@ -331,7 +331,7 @@ static int clkout_enable(struct clk *clk)
static void clkdev_add_pmu(const char *dev, const char *con, bool deactivate,
unsigned int module, unsigned int bits)
{
- struct clk *clk = kzalloc(sizeof(struct clk), GFP_KERNEL);
+ struct clk *clk = kzalloc_obj(struct clk, GFP_KERNEL);
if (!clk)
return;
@@ -356,7 +356,7 @@ static void clkdev_add_pmu(const char *dev, const char *con, bool deactivate,
static void clkdev_add_cgu(const char *dev, const char *con,
unsigned int bits)
{
- struct clk *clk = kzalloc(sizeof(struct clk), GFP_KERNEL);
+ struct clk *clk = kzalloc_obj(struct clk, GFP_KERNEL);
if (!clk)
return;
@@ -374,8 +374,8 @@ static unsigned long valid_pci_rates[] = {CLOCK_33M, CLOCK_62_5M, 0};
static void clkdev_add_pci(void)
{
- struct clk *clk = kzalloc(sizeof(struct clk), GFP_KERNEL);
- struct clk *clk_ext = kzalloc(sizeof(struct clk), GFP_KERNEL);
+ struct clk *clk = kzalloc_obj(struct clk, GFP_KERNEL);
+ struct clk *clk_ext = kzalloc_obj(struct clk, GFP_KERNEL);
/* main pci clock */
if (clk) {
@@ -423,7 +423,7 @@ static void clkdev_add_clkout(void)
continue;
sprintf(name, "clkout%d", i);
- clk = kzalloc(sizeof(struct clk), GFP_KERNEL);
+ clk = kzalloc_obj(struct clk, GFP_KERNEL);
if (!clk) {
kfree(name);
continue;
diff --git a/arch/mips/loongson64/init.c b/arch/mips/loongson64/init.c
index b9f90f33fc9a..5f73f8663ab2 100644
--- a/arch/mips/loongson64/init.c
+++ b/arch/mips/loongson64/init.c
@@ -156,7 +156,7 @@ static int __init add_legacy_isa_io(struct fwnode_handle *fwnode, resource_size_
struct logic_pio_hwaddr *range;
unsigned long vaddr;
- range = kzalloc(sizeof(*range), GFP_ATOMIC);
+ range = kzalloc_obj(*range, GFP_ATOMIC);
if (!range)
return -ENOMEM;
diff --git a/arch/mips/pci/pci-alchemy.c b/arch/mips/pci/pci-alchemy.c
index 6bfee0f71803..d5b4f0e6bee3 100644
--- a/arch/mips/pci/pci-alchemy.c
+++ b/arch/mips/pci/pci-alchemy.c
@@ -380,7 +380,7 @@ static int alchemy_pci_probe(struct platform_device *pdev)
goto out;
}
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
dev_err(&pdev->dev, "no memory for pcictl context\n");
ret = -ENOMEM;
diff --git a/arch/mips/pci/pci-xtalk-bridge.c b/arch/mips/pci/pci-xtalk-bridge.c
index e00c38620d14..c78f99eebe1a 100644
--- a/arch/mips/pci/pci-xtalk-bridge.c
+++ b/arch/mips/pci/pci-xtalk-bridge.c
@@ -341,7 +341,7 @@ static int bridge_domain_alloc(struct irq_domain *domain, unsigned int virq,
if (nr_irqs > 1 || !info)
return -EINVAL;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/arch/mips/ralink/mt7620.c b/arch/mips/ralink/mt7620.c
index 672249a13a09..c493fe67802c 100644
--- a/arch/mips/ralink/mt7620.c
+++ b/arch/mips/ralink/mt7620.c
@@ -198,7 +198,7 @@ static int __init mt7620_soc_dev_init(void)
struct soc_device *soc_dev;
struct soc_device_attribute *soc_dev_attr;
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr)
return -ENOMEM;
diff --git a/arch/mips/ralink/mt7621.c b/arch/mips/ralink/mt7621.c
index 5a9fd3fe41d7..ca70966da6f7 100644
--- a/arch/mips/ralink/mt7621.c
+++ b/arch/mips/ralink/mt7621.c
@@ -144,7 +144,7 @@ static int __init mt7621_soc_dev_init(void)
struct soc_device *soc_dev;
struct soc_device_attribute *soc_dev_attr;
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr)
return -ENOMEM;
diff --git a/arch/mips/ralink/rt288x.c b/arch/mips/ralink/rt288x.c
index ce8b5b6025bb..d60fd84e4b9c 100644
--- a/arch/mips/ralink/rt288x.c
+++ b/arch/mips/ralink/rt288x.c
@@ -68,7 +68,7 @@ static int __init rt2880_soc_dev_init(void)
struct soc_device *soc_dev;
struct soc_device_attribute *soc_dev_attr;
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr)
return -ENOMEM;
diff --git a/arch/mips/ralink/rt305x.c b/arch/mips/ralink/rt305x.c
index 1f422470b029..6abd2a56ba27 100644
--- a/arch/mips/ralink/rt305x.c
+++ b/arch/mips/ralink/rt305x.c
@@ -171,7 +171,7 @@ static int __init rt305x_soc_dev_init(void)
struct soc_device *soc_dev;
struct soc_device_attribute *soc_dev_attr;
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr)
return -ENOMEM;
diff --git a/arch/mips/ralink/rt3883.c b/arch/mips/ralink/rt3883.c
index 21ce00da5758..60605941b4b2 100644
--- a/arch/mips/ralink/rt3883.c
+++ b/arch/mips/ralink/rt3883.c
@@ -68,7 +68,7 @@ static int __init rt3883_soc_dev_init(void)
struct soc_device *soc_dev;
struct soc_device_attribute *soc_dev_attr;
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr)
return -ENOMEM;
diff --git a/arch/mips/sgi-ip22/ip22-gio.c b/arch/mips/sgi-ip22/ip22-gio.c
index 19b70928d6dc..08604e5836bc 100644
--- a/arch/mips/sgi-ip22/ip22-gio.c
+++ b/arch/mips/sgi-ip22/ip22-gio.c
@@ -361,7 +361,7 @@ static void ip22_check_gio(int slotno, unsigned long addr, int irq)
}
printk(KERN_INFO "GIO: slot %d : %s (id %x)\n",
slotno, name, id);
- gio_dev = kzalloc(sizeof *gio_dev, GFP_KERNEL);
+ gio_dev = kzalloc_obj(*gio_dev, GFP_KERNEL);
if (!gio_dev)
return;
gio_dev->name = name;
diff --git a/arch/mips/sgi-ip27/ip27-irq.c b/arch/mips/sgi-ip27/ip27-irq.c
index 20ef663af16e..fb3e9bfa6abf 100644
--- a/arch/mips/sgi-ip27/ip27-irq.c
+++ b/arch/mips/sgi-ip27/ip27-irq.c
@@ -129,7 +129,7 @@ static int hub_domain_alloc(struct irq_domain *domain, unsigned int virq,
if (nr_irqs > 1 || !info)
return -EINVAL;
- hd = kzalloc(sizeof(*hd), GFP_KERNEL);
+ hd = kzalloc_obj(*hd, GFP_KERNEL);
if (!hd)
return -ENOMEM;
diff --git a/arch/mips/sgi-ip27/ip27-xtalk.c b/arch/mips/sgi-ip27/ip27-xtalk.c
index 5143d1cf8984..5504c3234d5a 100644
--- a/arch/mips/sgi-ip27/ip27-xtalk.c
+++ b/arch/mips/sgi-ip27/ip27-xtalk.c
@@ -34,7 +34,7 @@ static void bridge_platform_create(nasid_t nasid, int widget, int masterwid)
offset = NODE_OFFSET(nasid);
- wd = kzalloc(sizeof(*wd), GFP_KERNEL);
+ wd = kzalloc_obj(*wd, GFP_KERNEL);
if (!wd) {
pr_warn("xtalk:n%d/%x bridge create out of memory\n", nasid, widget);
return;
@@ -69,7 +69,7 @@ static void bridge_platform_create(nasid_t nasid, int widget, int masterwid)
/* platform_device_add_data() duplicates the data */
kfree(wd);
- bd = kzalloc(sizeof(*bd), GFP_KERNEL);
+ bd = kzalloc_obj(*bd, GFP_KERNEL);
if (!bd) {
pr_warn("xtalk:n%d/%x bridge create out of memory\n", nasid, widget);
goto err_unregister_pdev_wd;
diff --git a/arch/mips/sgi-ip30/ip30-irq.c b/arch/mips/sgi-ip30/ip30-irq.c
index 9fb905e2cf14..1ffa97c578fa 100644
--- a/arch/mips/sgi-ip30/ip30-irq.c
+++ b/arch/mips/sgi-ip30/ip30-irq.c
@@ -209,7 +209,7 @@ static int heart_domain_alloc(struct irq_domain *domain, unsigned int virq,
if (nr_irqs > 1 || !info)
return -EINVAL;
- hd = kzalloc(sizeof(*hd), GFP_KERNEL);
+ hd = kzalloc_obj(*hd, GFP_KERNEL);
if (!hd)
return -ENOMEM;
diff --git a/arch/mips/sgi-ip30/ip30-xtalk.c b/arch/mips/sgi-ip30/ip30-xtalk.c
index d798ee8c998c..e5525f1b617e 100644
--- a/arch/mips/sgi-ip30/ip30-xtalk.c
+++ b/arch/mips/sgi-ip30/ip30-xtalk.c
@@ -44,7 +44,7 @@ static void bridge_platform_create(int widget, int masterwid)
struct platform_device *pdev_bd;
struct resource w1_res;
- wd = kzalloc(sizeof(*wd), GFP_KERNEL);
+ wd = kzalloc_obj(*wd, GFP_KERNEL);
if (!wd) {
pr_warn("xtalk:%x bridge create out of memory\n", widget);
return;
@@ -79,7 +79,7 @@ static void bridge_platform_create(int widget, int masterwid)
/* platform_device_add_data() duplicates the data */
kfree(wd);
- bd = kzalloc(sizeof(*bd), GFP_KERNEL);
+ bd = kzalloc_obj(*bd, GFP_KERNEL);
if (!bd) {
pr_warn("xtalk:%x bridge create out of memory\n", widget);
goto err_unregister_pdev_wd;
diff --git a/arch/mips/txx9/generic/pci.c b/arch/mips/txx9/generic/pci.c
index d9249f5a632e..1976c06ee667 100644
--- a/arch/mips/txx9/generic/pci.c
+++ b/arch/mips/txx9/generic/pci.c
@@ -120,7 +120,7 @@ txx9_alloc_pci_controller(struct pci_controller *pcic,
int min_size = 0x10000;
if (!pcic) {
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return NULL;
new->r_mem[0].name = "PCI mem";
diff --git a/arch/mips/txx9/generic/setup.c b/arch/mips/txx9/generic/setup.c
index 03f8a3a95637..5cf490edea5a 100644
--- a/arch/mips/txx9/generic/setup.c
+++ b/arch/mips/txx9/generic/setup.c
@@ -648,7 +648,7 @@ void __init txx9_iocled_init(unsigned long baseaddr,
if (!deftriggers)
deftriggers = default_triggers;
- iocled = kzalloc(sizeof(*iocled), GFP_KERNEL);
+ iocled = kzalloc_obj(*iocled, GFP_KERNEL);
if (!iocled)
return;
iocled->mmioaddr = ioremap(baseaddr, 1);
@@ -822,7 +822,7 @@ void __init txx9_sramc_init(struct resource *r)
err = subsys_system_register(&txx9_sramc_subsys, NULL);
if (err)
return;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return;
size = resource_size(r);
diff --git a/arch/nios2/platform/platform.c b/arch/nios2/platform/platform.c
index 9737a87121fa..567e41095a40 100644
--- a/arch/nios2/platform/platform.c
+++ b/arch/nios2/platform/platform.c
@@ -28,7 +28,7 @@ static int __init nios2_soc_device_init(void)
struct soc_device_attribute *soc_dev_attr;
const char *machine;
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (soc_dev_attr) {
machine = of_flat_dt_get_machine_name();
if (machine)
diff --git a/arch/parisc/kernel/drivers.c b/arch/parisc/kernel/drivers.c
index 7707158a7840..0a5868035ff0 100644
--- a/arch/parisc/kernel/drivers.c
+++ b/arch/parisc/kernel/drivers.c
@@ -418,7 +418,7 @@ static void setup_bus_id(struct parisc_device *padev)
static struct parisc_device * __init create_tree_node(char id,
struct device *parent)
{
- struct parisc_device *dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ struct parisc_device *dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return NULL;
diff --git a/arch/parisc/kernel/inventory.c b/arch/parisc/kernel/inventory.c
index 05798355cff4..af827d32bcca 100644
--- a/arch/parisc/kernel/inventory.c
+++ b/arch/parisc/kernel/inventory.c
@@ -193,7 +193,7 @@ pat_query_module(ulong pcell_loc, ulong mod_index)
long status; /* PDC return value status */
struct parisc_device *dev;
- pa_pdc_cell = kmalloc(sizeof (*pa_pdc_cell), GFP_KERNEL);
+ pa_pdc_cell = kmalloc_obj(*pa_pdc_cell, GFP_KERNEL);
if (!pa_pdc_cell)
panic("couldn't allocate memory for PDC_PAT_CELL!");
@@ -536,7 +536,7 @@ add_system_map_addresses(struct parisc_device *dev, int num_addrs,
long status;
struct pdc_system_map_addr_info addr_result;
- dev->addr = kmalloc_array(num_addrs, sizeof(*dev->addr), GFP_KERNEL);
+ dev->addr = kmalloc_objs(*dev->addr, num_addrs, GFP_KERNEL);
if(!dev->addr) {
printk(KERN_ERR "%s %s(): memory allocation failure\n",
__FILE__, __func__);
diff --git a/arch/parisc/kernel/processor.c b/arch/parisc/kernel/processor.c
index beb30c5de097..742e831de73c 100644
--- a/arch/parisc/kernel/processor.c
+++ b/arch/parisc/kernel/processor.c
@@ -110,7 +110,7 @@ static int __init processor_probe(struct parisc_device *dev)
unsigned long bytecnt;
pdc_pat_cell_mod_maddr_block_t *pa_pdc_cell;
- pa_pdc_cell = kmalloc(sizeof (*pa_pdc_cell), GFP_KERNEL);
+ pa_pdc_cell = kmalloc_obj(*pa_pdc_cell, GFP_KERNEL);
if (!pa_pdc_cell)
panic("couldn't allocate memory for PDC_PAT_CELL!");
diff --git a/arch/parisc/kernel/unwind.c b/arch/parisc/kernel/unwind.c
index 7ac88ff13d3c..32103a270a8e 100644
--- a/arch/parisc/kernel/unwind.c
+++ b/arch/parisc/kernel/unwind.c
@@ -157,7 +157,7 @@ unwind_table_add(const char *name, unsigned long base_addr,
unwind_table_sort(s, e);
- table = kmalloc(sizeof(struct unwind_table), GFP_USER);
+ table = kmalloc_obj(struct unwind_table, GFP_USER);
if (table == NULL)
return NULL;
unwind_table_init(table, name, base_addr, gp, start, end);
@@ -408,7 +408,7 @@ void unwind_frame_init_from_blocked_task(struct unwind_frame_info *info, struct
struct pt_regs *r = &t->thread.regs;
struct pt_regs *r2;
- r2 = kmalloc(sizeof(struct pt_regs), GFP_ATOMIC);
+ r2 = kmalloc_obj(struct pt_regs, GFP_ATOMIC);
if (!r2)
return;
*r2 = *r;
diff --git a/arch/parisc/kernel/vdso.c b/arch/parisc/kernel/vdso.c
index c5cbfce7a84c..a91a6a67d680 100644
--- a/arch/parisc/kernel/vdso.c
+++ b/arch/parisc/kernel/vdso.c
@@ -102,7 +102,7 @@ static struct page ** __init vdso_setup_pages(void *start, void *end)
struct page **pagelist;
int i;
- pagelist = kcalloc(pages + 1, sizeof(struct page *), GFP_KERNEL);
+ pagelist = kzalloc_objs(struct page *, pages + 1, GFP_KERNEL);
if (!pagelist)
panic("%s: Cannot allocate page list for VDSO", __func__);
for (i = 0; i < pages; i++)
diff --git a/arch/parisc/net/bpf_jit_core.c b/arch/parisc/net/bpf_jit_core.c
index 06cbcd6fe87b..af852116adf8 100644
--- a/arch/parisc/net/bpf_jit_core.c
+++ b/arch/parisc/net/bpf_jit_core.c
@@ -63,7 +63,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
jit_data = prog->aux->jit_data;
if (!jit_data) {
- jit_data = kzalloc(sizeof(*jit_data), GFP_KERNEL);
+ jit_data = kzalloc_obj(*jit_data, GFP_KERNEL);
if (!jit_data) {
prog = orig_prog;
goto out;
@@ -80,7 +80,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
}
ctx->prog = prog;
- ctx->offset = kcalloc(prog->len, sizeof(int), GFP_KERNEL);
+ ctx->offset = kzalloc_objs(int, prog->len, GFP_KERNEL);
if (!ctx->offset) {
prog = orig_prog;
goto out_offset;
diff --git a/arch/powerpc/kernel/cacheinfo.c b/arch/powerpc/kernel/cacheinfo.c
index 0fcc463b02e2..1298c868f9b6 100644
--- a/arch/powerpc/kernel/cacheinfo.c
+++ b/arch/powerpc/kernel/cacheinfo.c
@@ -157,7 +157,7 @@ static struct cache *new_cache(int type, int level,
{
struct cache *cache;
- cache = kzalloc(sizeof(*cache), GFP_KERNEL);
+ cache = kzalloc_obj(*cache, GFP_KERNEL);
if (cache)
cache_init(cache, type, level, ofnode, group_id);
@@ -540,7 +540,7 @@ static struct cache_dir *cacheinfo_create_cache_dir(unsigned int cpu_id)
if (!kobj)
goto err;
- cache_dir = kzalloc(sizeof(*cache_dir), GFP_KERNEL);
+ cache_dir = kzalloc_obj(*cache_dir, GFP_KERNEL);
if (!cache_dir)
goto err;
@@ -788,7 +788,7 @@ static void cacheinfo_create_index_dir(struct cache *cache, int index,
struct cache_index_dir *index_dir;
int rc;
- index_dir = kzalloc(sizeof(*index_dir), GFP_KERNEL);
+ index_dir = kzalloc_obj(*index_dir, GFP_KERNEL);
if (!index_dir)
return;
diff --git a/arch/powerpc/kernel/eeh_cache.c b/arch/powerpc/kernel/eeh_cache.c
index 2f9dbf8ad2ee..57e5382f790a 100644
--- a/arch/powerpc/kernel/eeh_cache.c
+++ b/arch/powerpc/kernel/eeh_cache.c
@@ -138,7 +138,7 @@ eeh_addr_cache_insert(struct pci_dev *dev, resource_size_t alo,
return piar;
}
}
- piar = kzalloc(sizeof(struct pci_io_addr_range), GFP_ATOMIC);
+ piar = kzalloc_obj(struct pci_io_addr_range, GFP_ATOMIC);
if (!piar)
return NULL;
diff --git a/arch/powerpc/kernel/eeh_event.c b/arch/powerpc/kernel/eeh_event.c
index c23a454af08a..279c1ceccd6d 100644
--- a/arch/powerpc/kernel/eeh_event.c
+++ b/arch/powerpc/kernel/eeh_event.c
@@ -104,7 +104,7 @@ int __eeh_send_failure_event(struct eeh_pe *pe)
unsigned long flags;
struct eeh_event *event;
- event = kzalloc(sizeof(*event), GFP_ATOMIC);
+ event = kzalloc_obj(*event, GFP_ATOMIC);
if (!event) {
pr_err("EEH: out of memory, event not handled\n");
return -ENOMEM;
diff --git a/arch/powerpc/kernel/nvram_64.c b/arch/powerpc/kernel/nvram_64.c
index f9c6568a9137..0c0d3c30432b 100644
--- a/arch/powerpc/kernel/nvram_64.c
+++ b/arch/powerpc/kernel/nvram_64.c
@@ -890,7 +890,7 @@ loff_t __init nvram_create_partition(const char *name, int sig,
return -ENOSPC;
/* Create our OS partition */
- new_part = kzalloc(sizeof(*new_part), GFP_KERNEL);
+ new_part = kzalloc_obj(*new_part, GFP_KERNEL);
if (!new_part) {
pr_err("%s: kmalloc failed\n", __func__);
return -ENOMEM;
@@ -1030,7 +1030,7 @@ int __init nvram_scan_partitions(void)
"detected: 0-length partition\n");
goto out;
}
- tmp_part = kmalloc(sizeof(*tmp_part), GFP_KERNEL);
+ tmp_part = kmalloc_obj(*tmp_part, GFP_KERNEL);
err = -ENOMEM;
if (!tmp_part) {
printk(KERN_ERR "nvram_scan_partitions: kmalloc failed\n");
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index eac84d687b53..7845c9c7f136 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -125,7 +125,7 @@ struct pci_controller *pcibios_alloc_controller(struct device_node *dev)
{
struct pci_controller *phb;
- phb = kzalloc(sizeof(struct pci_controller), GFP_KERNEL);
+ phb = kzalloc_obj(struct pci_controller, GFP_KERNEL);
if (phb == NULL)
return NULL;
@@ -432,7 +432,7 @@ static int pci_read_irq_line(struct pci_dev *pci_dev)
struct pci_intx_virq *vi, *vitmp;
/* Preallocate vi as rewind is complex if this fails after mapping */
- vi = kzalloc(sizeof(struct pci_intx_virq), GFP_KERNEL);
+ vi = kzalloc_obj(struct pci_intx_virq, GFP_KERNEL);
if (!vi)
return -1;
@@ -1368,7 +1368,7 @@ static void __init pcibios_reserve_legacy_regions(struct pci_bus *bus)
if (!(hose->io_resource.flags & IORESOURCE_IO))
goto no_io;
offset = (unsigned long)hose->io_base_virt - _IO_BASE;
- res = kzalloc(sizeof(struct resource), GFP_KERNEL);
+ res = kzalloc_obj(struct resource, GFP_KERNEL);
BUG_ON(res == NULL);
res->name = "Legacy IO";
res->flags = IORESOURCE_IO;
@@ -1396,7 +1396,7 @@ static void __init pcibios_reserve_legacy_regions(struct pci_bus *bus)
}
if (i >= 3)
return;
- res = kzalloc(sizeof(struct resource), GFP_KERNEL);
+ res = kzalloc_obj(struct resource, GFP_KERNEL);
BUG_ON(res == NULL);
res->name = "Legacy VGA memory";
res->flags = IORESOURCE_MEM;
diff --git a/arch/powerpc/kernel/pci_dn.c b/arch/powerpc/kernel/pci_dn.c
index 38561d6a2079..25310680fcc5 100644
--- a/arch/powerpc/kernel/pci_dn.c
+++ b/arch/powerpc/kernel/pci_dn.c
@@ -130,7 +130,7 @@ static struct eeh_dev *eeh_dev_init(struct pci_dn *pdn)
struct eeh_dev *edev;
/* Allocate EEH device */
- edev = kzalloc(sizeof(*edev), GFP_KERNEL);
+ edev = kzalloc_obj(*edev, GFP_KERNEL);
if (!edev)
return NULL;
@@ -154,7 +154,7 @@ static struct pci_dn *add_one_sriov_vf_pdn(struct pci_dn *parent,
if (!parent)
return NULL;
- pdn = kzalloc(sizeof(*pdn), GFP_KERNEL);
+ pdn = kzalloc_obj(*pdn, GFP_KERNEL);
if (!pdn)
return NULL;
@@ -290,7 +290,7 @@ struct pci_dn *pci_add_device_node_info(struct pci_controller *hose,
struct eeh_dev *edev;
#endif
- pdn = kzalloc(sizeof(*pdn), GFP_KERNEL);
+ pdn = kzalloc_obj(*pdn, GFP_KERNEL);
if (pdn == NULL)
return NULL;
dn->data = pdn;
diff --git a/arch/powerpc/kernel/secvar-sysfs.c b/arch/powerpc/kernel/secvar-sysfs.c
index 4111b21962eb..6b2a7ab69d78 100644
--- a/arch/powerpc/kernel/secvar-sysfs.c
+++ b/arch/powerpc/kernel/secvar-sysfs.c
@@ -151,7 +151,7 @@ static __init int add_var(const char *name)
struct kobject *kobj;
int rc;
- kobj = kzalloc(sizeof(*kobj), GFP_KERNEL);
+ kobj = kzalloc_obj(*kobj, GFP_KERNEL);
if (!kobj)
return -ENOMEM;
diff --git a/arch/powerpc/kernel/smp-tbsync.c b/arch/powerpc/kernel/smp-tbsync.c
index 21c39355b25e..5f26c0352538 100644
--- a/arch/powerpc/kernel/smp-tbsync.c
+++ b/arch/powerpc/kernel/smp-tbsync.c
@@ -117,7 +117,7 @@ void smp_generic_give_timebase(void)
pr_debug("Software timebase sync\n");
/* if this fails then this kernel won't work anyway... */
- tbsync = kzalloc( sizeof(*tbsync), GFP_KERNEL );
+ tbsync = kzalloc_obj(*tbsync, GFP_KERNEL);
mb();
running = 1;
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index cad3358fa4c3..288763d59adb 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -1172,7 +1172,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
* Assumption: if boot_cpuid doesn't have a chip-id, then no
* other CPUs, will also not have chip-id.
*/
- chip_id_lookup_table = kcalloc(idx, sizeof(int), GFP_KERNEL);
+ chip_id_lookup_table = kzalloc_objs(int, idx, GFP_KERNEL);
if (chip_id_lookup_table)
memset(chip_id_lookup_table, -1, sizeof(int) * idx);
}
diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c
index ab7c4cc80943..2729631d9d07 100644
--- a/arch/powerpc/kernel/vdso.c
+++ b/arch/powerpc/kernel/vdso.c
@@ -245,7 +245,7 @@ static struct page ** __init vdso_setup_pages(void *start, void *end)
struct page **pagelist;
int pages = (end - start) >> PAGE_SHIFT;
- pagelist = kcalloc(pages + 1, sizeof(struct page *), GFP_KERNEL);
+ pagelist = kzalloc_objs(struct page *, pages + 1, GFP_KERNEL);
if (!pagelist)
panic("%s: Cannot allocate page list for VDSO", __func__);
diff --git a/arch/powerpc/kvm/book3s_64_mmu_hv.c b/arch/powerpc/kvm/book3s_64_mmu_hv.c
index f305395cf26e..347847aec315 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_hv.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_hv.c
@@ -1494,7 +1494,7 @@ int kvm_vm_ioctl_resize_hpt_prepare(struct kvm *kvm,
/* start new resize */
- resize = kzalloc(sizeof(*resize), GFP_KERNEL);
+ resize = kzalloc_obj(*resize, GFP_KERNEL);
if (!resize) {
ret = -ENOMEM;
goto out;
@@ -1943,7 +1943,7 @@ int kvm_vm_ioctl_get_htab_fd(struct kvm *kvm, struct kvm_get_htab_fd *ghf)
/* reject flags we don't recognize */
if (ghf->flags & ~(KVM_GET_HTAB_BOLTED_ONLY | KVM_GET_HTAB_WRITE))
return -EINVAL;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
kvm_get_kvm(kvm);
@@ -1985,7 +1985,7 @@ static int debugfs_htab_open(struct inode *inode, struct file *file)
struct kvm *kvm = inode->i_private;
struct debugfs_htab_state *p;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return -ENOMEM;
diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index b3e6e73d6a08..82af0508993c 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -1256,7 +1256,7 @@ static int debugfs_radix_open(struct inode *inode, struct file *file)
struct kvm *kvm = inode->i_private;
struct debugfs_radix_state *p;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return -ENOMEM;
diff --git a/arch/powerpc/kvm/book3s_64_vio.c b/arch/powerpc/kvm/book3s_64_vio.c
index 742aa58a7c7e..70c73864aab8 100644
--- a/arch/powerpc/kvm/book3s_64_vio.c
+++ b/arch/powerpc/kvm/book3s_64_vio.c
@@ -178,7 +178,7 @@ long kvm_spapr_tce_attach_iommu_group(struct kvm *kvm, int tablefd,
}
rcu_read_unlock();
- stit = kzalloc(sizeof(*stit), GFP_KERNEL);
+ stit = kzalloc_obj(*stit, GFP_KERNEL);
if (!stit) {
iommu_tce_table_put(tbl);
return -ENOMEM;
@@ -305,7 +305,7 @@ int kvm_vm_ioctl_create_spapr_tce(struct kvm *kvm,
return ret;
ret = -ENOMEM;
- stt = kzalloc(struct_size(stt, pages, npages), GFP_KERNEL | __GFP_NOWARN);
+ stt = kzalloc_flex(*stt, pages, npages, GFP_KERNEL | __GFP_NOWARN);
if (!stt)
goto fail_acct;
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index 7667563fb9ff..e6f6a58c5e36 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -2790,7 +2790,7 @@ static struct kvmppc_vcore *kvmppc_vcore_create(struct kvm *kvm, int id)
{
struct kvmppc_vcore *vcore;
- vcore = kzalloc(sizeof(struct kvmppc_vcore), GFP_KERNEL);
+ vcore = kzalloc_obj(struct kvmppc_vcore, GFP_KERNEL);
if (vcore == NULL)
return NULL;
@@ -2842,7 +2842,7 @@ static int debugfs_timings_open(struct inode *inode, struct file *file)
struct kvm_vcpu *vcpu = inode->i_private;
struct debugfs_timings_state *p;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return -ENOMEM;
@@ -5637,7 +5637,7 @@ void kvmppc_alloc_host_rm_ops(void)
if (kvmppc_host_rm_ops_hv != NULL)
return;
- ops = kzalloc(sizeof(struct kvmppc_host_rm_ops), GFP_KERNEL);
+ ops = kzalloc_obj(struct kvmppc_host_rm_ops, GFP_KERNEL);
if (!ops)
return;
@@ -5960,7 +5960,7 @@ void kvmppc_free_pimap(struct kvm *kvm)
static struct kvmppc_passthru_irqmap *kvmppc_alloc_pimap(void)
{
- return kzalloc(sizeof(struct kvmppc_passthru_irqmap), GFP_KERNEL);
+ return kzalloc_obj(struct kvmppc_passthru_irqmap, GFP_KERNEL);
}
static int kvmppc_set_passthru_irq(struct kvm *kvm, int host_irq, int guest_gsi)
diff --git a/arch/powerpc/kvm/book3s_hv_nested.c b/arch/powerpc/kvm/book3s_hv_nested.c
index 5f8c2321cfb5..9bbac7fe2046 100644
--- a/arch/powerpc/kvm/book3s_hv_nested.c
+++ b/arch/powerpc/kvm/book3s_hv_nested.c
@@ -726,7 +726,7 @@ static struct kvm_nested_guest *kvmhv_alloc_nested(struct kvm *kvm, unsigned int
struct kvm_nested_guest *gp;
long shadow_lpid;
- gp = kzalloc(sizeof(*gp), GFP_KERNEL);
+ gp = kzalloc_obj(*gp, GFP_KERNEL);
if (!gp)
return NULL;
gp->l1_host = kvm;
@@ -1671,7 +1671,7 @@ static long int __kvmhv_nested_page_fault(struct kvm_vcpu *vcpu,
/* 4. Insert the pte into our shadow_pgtable */
- n_rmap = kzalloc(sizeof(*n_rmap), GFP_KERNEL);
+ n_rmap = kzalloc_obj(*n_rmap, GFP_KERNEL);
if (!n_rmap)
return RESUME_GUEST; /* Let the guest try again */
n_rmap->rmap = (n_gpa & RMAP_NESTED_GPA_MASK) |
diff --git a/arch/powerpc/kvm/book3s_hv_uvmem.c b/arch/powerpc/kvm/book3s_hv_uvmem.c
index 7cf9310de0ec..f960294dfc79 100644
--- a/arch/powerpc/kvm/book3s_hv_uvmem.c
+++ b/arch/powerpc/kvm/book3s_hv_uvmem.c
@@ -249,7 +249,7 @@ int kvmppc_uvmem_slot_init(struct kvm *kvm, const struct kvm_memory_slot *slot)
{
struct kvmppc_uvmem_slot *p;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return -ENOMEM;
p->pfns = vcalloc(slot->npages, sizeof(*p->pfns));
@@ -711,7 +711,7 @@ static struct page *kvmppc_uvmem_get_page(unsigned long gpa, struct kvm *kvm)
bitmap_set(kvmppc_uvmem_bitmap, bit, 1);
spin_unlock(&kvmppc_uvmem_bitmap_lock);
- pvt = kzalloc(sizeof(*pvt), GFP_KERNEL);
+ pvt = kzalloc_obj(*pvt, GFP_KERNEL);
if (!pvt)
goto out_clear;
diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
index 83bcdc80ce51..b7fdb089f2af 100644
--- a/arch/powerpc/kvm/book3s_pr.c
+++ b/arch/powerpc/kvm/book3s_pr.c
@@ -1738,8 +1738,8 @@ static int kvmppc_core_vcpu_create_pr(struct kvm_vcpu *vcpu)
vcpu->arch.book3s = vcpu_book3s;
#ifdef CONFIG_KVM_BOOK3S_32_HANDLER
- vcpu->arch.shadow_vcpu =
- kzalloc(sizeof(*vcpu->arch.shadow_vcpu), GFP_KERNEL);
+ vcpu->arch.shadow_vcpu = kzalloc_obj(*vcpu->arch.shadow_vcpu,
+ GFP_KERNEL);
if (!vcpu->arch.shadow_vcpu)
goto free_vcpu3s;
#endif
diff --git a/arch/powerpc/kvm/book3s_rtas.c b/arch/powerpc/kvm/book3s_rtas.c
index 6808bda0dbc1..d6f8f33cc98b 100644
--- a/arch/powerpc/kvm/book3s_rtas.c
+++ b/arch/powerpc/kvm/book3s_rtas.c
@@ -183,7 +183,7 @@ static int rtas_token_define(struct kvm *kvm, char *name, u64 token)
if (!found)
return -ENOENT;
- d = kzalloc(sizeof(*d), GFP_KERNEL);
+ d = kzalloc_obj(*d, GFP_KERNEL);
if (!d)
return -ENOMEM;
diff --git a/arch/powerpc/kvm/book3s_xics.c b/arch/powerpc/kvm/book3s_xics.c
index 589a8f257120..3ba148b1d22f 100644
--- a/arch/powerpc/kvm/book3s_xics.c
+++ b/arch/powerpc/kvm/book3s_xics.c
@@ -1037,7 +1037,7 @@ static struct kvmppc_ics *kvmppc_xics_create_ics(struct kvm *kvm,
goto out;
/* Create the ICS */
- ics = kzalloc(sizeof(struct kvmppc_ics), GFP_KERNEL);
+ ics = kzalloc_obj(struct kvmppc_ics, GFP_KERNEL);
if (!ics)
goto out;
@@ -1069,7 +1069,7 @@ static int kvmppc_xics_create_icp(struct kvm_vcpu *vcpu, unsigned long server_nu
if (kvmppc_xics_find_server(vcpu->kvm, server_num))
return -EEXIST;
- icp = kzalloc(sizeof(struct kvmppc_icp), GFP_KERNEL);
+ icp = kzalloc_obj(struct kvmppc_icp, GFP_KERNEL);
if (!icp)
return -ENOMEM;
@@ -1388,7 +1388,7 @@ static struct kvmppc_xics *kvmppc_xics_get_device(struct kvm *kvm)
struct kvmppc_xics *xics = *kvm_xics_device;
if (!xics) {
- xics = kzalloc(sizeof(*xics), GFP_KERNEL);
+ xics = kzalloc_obj(*xics, GFP_KERNEL);
*kvm_xics_device = xics;
} else {
memset(xics, 0, sizeof(*xics));
diff --git a/arch/powerpc/kvm/book3s_xive.c b/arch/powerpc/kvm/book3s_xive.c
index 89a1b8c21ab4..ae69a1e1dd17 100644
--- a/arch/powerpc/kvm/book3s_xive.c
+++ b/arch/powerpc/kvm/book3s_xive.c
@@ -1924,7 +1924,7 @@ int kvmppc_xive_connect_vcpu(struct kvm_device *dev,
if (r)
goto bail;
- xc = kzalloc(sizeof(*xc), GFP_KERNEL);
+ xc = kzalloc_obj(*xc, GFP_KERNEL);
if (!xc) {
r = -ENOMEM;
goto bail;
@@ -2276,7 +2276,7 @@ struct kvmppc_xive_src_block *kvmppc_xive_create_src_block(
goto out;
/* Create the ICS */
- sb = kzalloc(sizeof(*sb), GFP_KERNEL);
+ sb = kzalloc_obj(*sb, GFP_KERNEL);
if (!sb)
goto out;
@@ -2719,7 +2719,7 @@ struct kvmppc_xive *kvmppc_xive_get_device(struct kvm *kvm, u32 type)
struct kvmppc_xive *xive = *kvm_xive_device;
if (!xive) {
- xive = kzalloc(sizeof(*xive), GFP_KERNEL);
+ xive = kzalloc_obj(*xive, GFP_KERNEL);
*kvm_xive_device = xive;
} else {
memset(xive, 0, sizeof(*xive));
diff --git a/arch/powerpc/kvm/book3s_xive_native.c b/arch/powerpc/kvm/book3s_xive_native.c
index d9bf1bc3ff61..179bd6094d62 100644
--- a/arch/powerpc/kvm/book3s_xive_native.c
+++ b/arch/powerpc/kvm/book3s_xive_native.c
@@ -145,7 +145,7 @@ int kvmppc_xive_native_connect_vcpu(struct kvm_device *dev,
if (rc)
goto bail;
- xc = kzalloc(sizeof(*xc), GFP_KERNEL);
+ xc = kzalloc_obj(*xc, GFP_KERNEL);
if (!xc) {
rc = -ENOMEM;
goto bail;
diff --git a/arch/powerpc/kvm/e500.c b/arch/powerpc/kvm/e500.c
index b0f695428733..891c936af1df 100644
--- a/arch/powerpc/kvm/e500.c
+++ b/arch/powerpc/kvm/e500.c
@@ -119,7 +119,7 @@ static inline void local_sid_destroy_all(void)
static void *kvmppc_e500_id_table_alloc(struct kvmppc_vcpu_e500 *vcpu_e500)
{
- vcpu_e500->idt = kzalloc(sizeof(struct vcpu_id_table), GFP_KERNEL);
+ vcpu_e500->idt = kzalloc_obj(struct vcpu_id_table, GFP_KERNEL);
return vcpu_e500->idt;
}
diff --git a/arch/powerpc/kvm/e500_mmu.c b/arch/powerpc/kvm/e500_mmu.c
index e131fbecdcc4..ecbd7c4cd93d 100644
--- a/arch/powerpc/kvm/e500_mmu.c
+++ b/arch/powerpc/kvm/e500_mmu.c
@@ -772,7 +772,7 @@ int kvm_vcpu_ioctl_config_tlb(struct kvm_vcpu *vcpu,
num_pages = DIV_ROUND_UP(cfg->array + array_len - 1, PAGE_SIZE) -
cfg->array / PAGE_SIZE;
- pages = kmalloc_array(num_pages, sizeof(*pages), GFP_KERNEL);
+ pages = kmalloc_objs(*pages, num_pages, GFP_KERNEL);
if (!pages)
return -ENOMEM;
@@ -792,13 +792,13 @@ int kvm_vcpu_ioctl_config_tlb(struct kvm_vcpu *vcpu,
goto put_pages;
}
- privs[0] = kcalloc(params.tlb_sizes[0], sizeof(*privs[0]), GFP_KERNEL);
+ privs[0] = kzalloc_objs(*privs[0], params.tlb_sizes[0], GFP_KERNEL);
if (!privs[0]) {
ret = -ENOMEM;
goto put_pages;
}
- privs[1] = kcalloc(params.tlb_sizes[1], sizeof(*privs[1]), GFP_KERNEL);
+ privs[1] = kzalloc_objs(*privs[1], params.tlb_sizes[1], GFP_KERNEL);
if (!privs[1]) {
ret = -ENOMEM;
goto free_privs_first;
@@ -912,25 +912,24 @@ int kvmppc_e500_tlb_init(struct kvmppc_vcpu_e500 *vcpu_e500)
vcpu_e500->gtlb_params[1].ways = KVM_E500_TLB1_SIZE;
vcpu_e500->gtlb_params[1].sets = 1;
- vcpu_e500->gtlb_arch = kmalloc_array(KVM_E500_TLB0_SIZE +
- KVM_E500_TLB1_SIZE,
- sizeof(*vcpu_e500->gtlb_arch),
- GFP_KERNEL);
+ vcpu_e500->gtlb_arch = kmalloc_objs(*vcpu_e500->gtlb_arch,
+ KVM_E500_TLB0_SIZE + KVM_E500_TLB1_SIZE,
+ GFP_KERNEL);
if (!vcpu_e500->gtlb_arch)
return -ENOMEM;
vcpu_e500->gtlb_offset[0] = 0;
vcpu_e500->gtlb_offset[1] = KVM_E500_TLB0_SIZE;
- vcpu_e500->gtlb_priv[0] = kcalloc(vcpu_e500->gtlb_params[0].entries,
- sizeof(struct tlbe_ref),
- GFP_KERNEL);
+ vcpu_e500->gtlb_priv[0] = kzalloc_objs(struct tlbe_ref,
+ vcpu_e500->gtlb_params[0].entries,
+ GFP_KERNEL);
if (!vcpu_e500->gtlb_priv[0])
goto free_vcpu;
- vcpu_e500->gtlb_priv[1] = kcalloc(vcpu_e500->gtlb_params[1].entries,
- sizeof(struct tlbe_ref),
- GFP_KERNEL);
+ vcpu_e500->gtlb_priv[1] = kzalloc_objs(struct tlbe_ref,
+ vcpu_e500->gtlb_params[1].entries,
+ GFP_KERNEL);
if (!vcpu_e500->gtlb_priv[1])
goto free_vcpu;
diff --git a/arch/powerpc/kvm/guest-state-buffer.c b/arch/powerpc/kvm/guest-state-buffer.c
index 871cf60ddeb6..42843eca6727 100644
--- a/arch/powerpc/kvm/guest-state-buffer.c
+++ b/arch/powerpc/kvm/guest-state-buffer.c
@@ -28,7 +28,7 @@ struct kvmppc_gs_buff *kvmppc_gsb_new(size_t size, unsigned long guest_id,
{
struct kvmppc_gs_buff *gsb;
- gsb = kzalloc(sizeof(*gsb), flags);
+ gsb = kzalloc_obj(*gsb, flags);
if (!gsb)
return NULL;
@@ -540,7 +540,7 @@ struct kvmppc_gs_msg *kvmppc_gsm_new(struct kvmppc_gs_msg_ops *ops, void *data,
{
struct kvmppc_gs_msg *gsm;
- gsm = kzalloc(sizeof(*gsm), gfp_flags);
+ gsm = kzalloc_obj(*gsm, gfp_flags);
if (!gsm)
return NULL;
diff --git a/arch/powerpc/kvm/mpic.c b/arch/powerpc/kvm/mpic.c
index 23e9c2bd9f27..a8ee6204cc08 100644
--- a/arch/powerpc/kvm/mpic.c
+++ b/arch/powerpc/kvm/mpic.c
@@ -1642,7 +1642,7 @@ static int mpic_set_default_irq_routing(struct openpic *opp)
struct kvm_irq_routing_entry *routing;
/* Create a nop default map, so that dereferencing it still works */
- routing = kzalloc((sizeof(*routing)), GFP_KERNEL);
+ routing = kzalloc_obj(*routing, GFP_KERNEL);
if (!routing)
return -ENOMEM;
@@ -1661,7 +1661,7 @@ static int mpic_create(struct kvm_device *dev, u32 type)
if (dev->kvm->arch.mpic)
return -EINVAL;
- opp = kzalloc(sizeof(struct openpic), GFP_KERNEL);
+ opp = kzalloc_obj(struct openpic, GFP_KERNEL);
if (!opp)
return -ENOMEM;
diff --git a/arch/powerpc/lib/rheap.c b/arch/powerpc/lib/rheap.c
index 6aa774aa5b16..d6d72719801b 100644
--- a/arch/powerpc/lib/rheap.c
+++ b/arch/powerpc/lib/rheap.c
@@ -54,7 +54,7 @@ static int grow(rh_info_t * info, int max_blocks)
new_blocks = max_blocks - info->max_blocks;
- block = kmalloc_array(max_blocks, sizeof(rh_block_t), GFP_ATOMIC);
+ block = kmalloc_objs(rh_block_t, max_blocks, GFP_ATOMIC);
if (block == NULL)
return -ENOMEM;
@@ -258,7 +258,7 @@ rh_info_t *rh_create(unsigned int alignment)
if ((alignment & (alignment - 1)) != 0)
return ERR_PTR(-EINVAL);
- info = kmalloc(sizeof(*info), GFP_ATOMIC);
+ info = kmalloc_obj(*info, GFP_ATOMIC);
if (info == NULL)
return ERR_PTR(-ENOMEM);
diff --git a/arch/powerpc/mm/book3s64/iommu_api.c b/arch/powerpc/mm/book3s64/iommu_api.c
index c0e8d597e4cb..f9aa4e08b5bb 100644
--- a/arch/powerpc/mm/book3s64/iommu_api.c
+++ b/arch/powerpc/mm/book3s64/iommu_api.c
@@ -70,7 +70,7 @@ static long mm_iommu_do_alloc(struct mm_struct *mm, unsigned long ua,
locked_entries = entries;
}
- mem = kzalloc(sizeof(*mem), GFP_KERNEL);
+ mem = kzalloc_obj(*mem, GFP_KERNEL);
if (!mem) {
ret = -ENOMEM;
goto unlock_exit;
diff --git a/arch/powerpc/mm/book3s64/mmu_context.c b/arch/powerpc/mm/book3s64/mmu_context.c
index fb9dcf9ca599..c7302dd2ef25 100644
--- a/arch/powerpc/mm/book3s64/mmu_context.c
+++ b/arch/powerpc/mm/book3s64/mmu_context.c
@@ -96,8 +96,8 @@ static int hash__init_new_context(struct mm_struct *mm)
{
int index;
- mm->context.hash_context = kmalloc(sizeof(struct hash_mm_context),
- GFP_KERNEL);
+ mm->context.hash_context = kmalloc_obj(struct hash_mm_context,
+ GFP_KERNEL);
if (!mm->context.hash_context)
return -ENOMEM;
@@ -124,8 +124,8 @@ static int hash__init_new_context(struct mm_struct *mm)
#ifdef CONFIG_PPC_SUBPAGE_PROT
/* inherit subpage prot details if we have one. */
if (current->mm->context.hash_context->spt) {
- mm->context.hash_context->spt = kmalloc(sizeof(struct subpage_prot_table),
- GFP_KERNEL);
+ mm->context.hash_context->spt = kmalloc_obj(struct subpage_prot_table,
+ GFP_KERNEL);
if (!mm->context.hash_context->spt) {
kfree(mm->context.hash_context);
return -ENOMEM;
diff --git a/arch/powerpc/mm/book3s64/subpage_prot.c b/arch/powerpc/mm/book3s64/subpage_prot.c
index 07c47673bba2..240880a38965 100644
--- a/arch/powerpc/mm/book3s64/subpage_prot.c
+++ b/arch/powerpc/mm/book3s64/subpage_prot.c
@@ -221,7 +221,7 @@ SYSCALL_DEFINE3(subpage_prot, unsigned long, addr,
* Allocate subpage prot table if not already done.
* Do this with mmap_lock held
*/
- spt = kzalloc(sizeof(struct subpage_prot_table), GFP_KERNEL);
+ spt = kzalloc_obj(struct subpage_prot_table, GFP_KERNEL);
if (!spt) {
err = -ENOMEM;
goto out;
diff --git a/arch/powerpc/mm/drmem.c b/arch/powerpc/mm/drmem.c
index 8dd7b340d51f..45c1d47ec458 100644
--- a/arch/powerpc/mm/drmem.c
+++ b/arch/powerpc/mm/drmem.c
@@ -41,7 +41,7 @@ static struct property *clone_property(struct property *prop, u32 prop_sz)
{
struct property *new_prop;
- new_prop = kzalloc(sizeof(*new_prop), GFP_KERNEL);
+ new_prop = kzalloc_obj(*new_prop, GFP_KERNEL);
if (!new_prop)
return NULL;
@@ -430,8 +430,7 @@ static void __init init_drmem_v1_lmbs(const __be32 *prop)
if (drmem_info->n_lmbs == 0)
return;
- drmem_info->lmbs = kcalloc(drmem_info->n_lmbs, sizeof(*lmb),
- GFP_KERNEL);
+ drmem_info->lmbs = kzalloc_objs(*lmb, drmem_info->n_lmbs, GFP_KERNEL);
if (!drmem_info->lmbs)
return;
@@ -458,8 +457,7 @@ static void __init init_drmem_v2_lmbs(const __be32 *prop)
drmem_info->n_lmbs += dr_cell.seq_lmbs;
}
- drmem_info->lmbs = kcalloc(drmem_info->n_lmbs, sizeof(*lmb),
- GFP_KERNEL);
+ drmem_info->lmbs = kzalloc_objs(*lmb, drmem_info->n_lmbs, GFP_KERNEL);
if (!drmem_info->lmbs)
return;
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index 29bf347f6012..bab22aabbb9b 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -318,7 +318,7 @@ static int __init add_system_ram_resources(void)
for_each_mem_range(i, &start, &end) {
struct resource *res;
- res = kzalloc(sizeof(struct resource), GFP_KERNEL);
+ res = kzalloc_obj(struct resource, GFP_KERNEL);
WARN_ON(!res);
if (res) {
diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c
index b75dd53584d5..baf5b6e69647 100644
--- a/arch/powerpc/net/bpf_jit_comp.c
+++ b/arch/powerpc/net/bpf_jit_comp.c
@@ -165,7 +165,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *fp)
jit_data = fp->aux->jit_data;
if (!jit_data) {
- jit_data = kzalloc(sizeof(*jit_data), GFP_KERNEL);
+ jit_data = kzalloc_obj(*jit_data, GFP_KERNEL);
if (!jit_data) {
fp = org_fp;
goto out;
diff --git a/arch/powerpc/perf/hv-24x7.c b/arch/powerpc/perf/hv-24x7.c
index e42677cc254a..210d16c76b40 100644
--- a/arch/powerpc/perf/hv-24x7.c
+++ b/arch/powerpc/perf/hv-24x7.c
@@ -451,7 +451,7 @@ static ssize_t coresperchip_show(struct device *dev,
static struct attribute *device_str_attr_create_(char *name, char *str)
{
- struct dev_ext_attribute *attr = kzalloc(sizeof(*attr), GFP_KERNEL);
+ struct dev_ext_attribute *attr = kzalloc_obj(*attr, GFP_KERNEL);
if (!attr)
return NULL;
@@ -647,7 +647,7 @@ static int event_uniq_add(struct rb_root *root, const char *name, int nl,
}
}
- data = kmalloc(sizeof(*data), GFP_KERNEL);
+ data = kmalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -905,21 +905,20 @@ static int create_events_from_catalog(struct attribute ***events_,
pr_warn("event buffer ended before listed # of events were parsed (got %zu, wanted %zu, junk %zu)\n",
event_idx_last, event_entry_count, junk_events);
- events = kmalloc_array(attr_max + 1, sizeof(*events), GFP_KERNEL);
+ events = kmalloc_objs(*events, attr_max + 1, GFP_KERNEL);
if (!events) {
ret = -ENOMEM;
goto e_event_data;
}
- event_descs = kmalloc_array(event_idx + 1, sizeof(*event_descs),
- GFP_KERNEL);
+ event_descs = kmalloc_objs(*event_descs, event_idx + 1, GFP_KERNEL);
if (!event_descs) {
ret = -ENOMEM;
goto e_event_attrs;
}
- event_long_descs = kmalloc_array(event_idx + 1,
- sizeof(*event_long_descs), GFP_KERNEL);
+ event_long_descs = kmalloc_objs(*event_long_descs, event_idx + 1,
+ GFP_KERNEL);
if (!event_long_descs) {
ret = -ENOMEM;
goto e_event_descs;
diff --git a/arch/powerpc/perf/hv-gpci.c b/arch/powerpc/perf/hv-gpci.c
index 241551d1282f..11e774857030 100644
--- a/arch/powerpc/perf/hv-gpci.c
+++ b/arch/powerpc/perf/hv-gpci.c
@@ -910,7 +910,7 @@ static struct device_attribute *sysinfo_device_attr_create(int
* attribute array, only for valid return types.
*/
if (!ret || ret == H_AUTHORITY || ret == H_PARAMETER) {
- attr = kzalloc(sizeof(*attr), GFP_KERNEL);
+ attr = kzalloc_obj(*attr, GFP_KERNEL);
if (!attr)
return NULL;
diff --git a/arch/powerpc/perf/imc-pmu.c b/arch/powerpc/perf/imc-pmu.c
index 8664a7d297ad..c4b2c0a19f58 100644
--- a/arch/powerpc/perf/imc-pmu.c
+++ b/arch/powerpc/perf/imc-pmu.c
@@ -136,7 +136,7 @@ static struct attribute *device_str_attr_create(const char *name, const char *st
{
struct perf_pmu_events_attr *attr;
- attr = kzalloc(sizeof(*attr), GFP_KERNEL);
+ attr = kzalloc_obj(*attr, GFP_KERNEL);
if (!attr)
return NULL;
sysfs_attr_init(&attr->attr.attr);
@@ -257,7 +257,7 @@ static int update_events_in_group(struct device_node *node, struct imc_pmu *pmu)
of_property_read_u32(node, "reg", &base_reg);
/* Allocate memory for the events */
- pmu->events = kcalloc(ct, sizeof(struct imc_events), GFP_KERNEL);
+ pmu->events = kzalloc_objs(struct imc_events, ct, GFP_KERNEL);
if (!pmu->events) {
of_node_put(pmu_events);
return -ENOMEM;
@@ -274,7 +274,7 @@ static int update_events_in_group(struct device_node *node, struct imc_pmu *pmu)
of_node_put(pmu_events);
/* Allocate memory for attribute group */
- attr_group = kzalloc(sizeof(*attr_group), GFP_KERNEL);
+ attr_group = kzalloc_obj(*attr_group, GFP_KERNEL);
if (!attr_group) {
imc_free_events(pmu->events, ct);
return -ENOMEM;
@@ -288,7 +288,7 @@ static int update_events_in_group(struct device_node *node, struct imc_pmu *pmu)
* So allocate three times the "ct" (this includes event, event_scale and
* event_unit).
*/
- attrs = kcalloc(((ct * 3) + 1), sizeof(struct attribute *), GFP_KERNEL);
+ attrs = kzalloc_objs(struct attribute *, ((ct * 3) + 1), GFP_KERNEL);
if (!attrs) {
kfree(attr_group);
imc_free_events(pmu->events, ct);
@@ -1527,8 +1527,8 @@ static int init_nest_pmu_ref(void)
{
int nid, i, cpu;
- nest_imc_refc = kcalloc(num_possible_nodes(), sizeof(*nest_imc_refc),
- GFP_KERNEL);
+ nest_imc_refc = kzalloc_objs(*nest_imc_refc, num_possible_nodes(),
+ GFP_KERNEL);
if (!nest_imc_refc)
return -ENOMEM;
@@ -1699,9 +1699,9 @@ static int imc_mem_init(struct imc_pmu *pmu_ptr, struct device_node *parent,
/* Needed for hotplug/migration */
if (!per_nest_pmu_arr) {
- per_nest_pmu_arr = kcalloc(get_max_nest_dev() + 1,
- sizeof(struct imc_pmu *),
- GFP_KERNEL);
+ per_nest_pmu_arr = kzalloc_objs(struct imc_pmu *,
+ get_max_nest_dev() + 1,
+ GFP_KERNEL);
if (!per_nest_pmu_arr)
goto err;
}
@@ -1714,14 +1714,14 @@ static int imc_mem_init(struct imc_pmu *pmu_ptr, struct device_node *parent,
goto err;
nr_cores = DIV_ROUND_UP(num_possible_cpus(), threads_per_core);
- pmu_ptr->mem_info = kcalloc(nr_cores, sizeof(struct imc_mem_info),
- GFP_KERNEL);
+ pmu_ptr->mem_info = kzalloc_objs(struct imc_mem_info, nr_cores,
+ GFP_KERNEL);
if (!pmu_ptr->mem_info)
goto err;
- core_imc_refc = kcalloc(nr_cores, sizeof(struct imc_pmu_ref),
- GFP_KERNEL);
+ core_imc_refc = kzalloc_objs(struct imc_pmu_ref, nr_cores,
+ GFP_KERNEL);
if (!core_imc_refc) {
kfree(pmu_ptr->mem_info);
@@ -1754,8 +1754,8 @@ static int imc_mem_init(struct imc_pmu *pmu_ptr, struct device_node *parent,
return -ENOMEM;
nr_cores = DIV_ROUND_UP(num_possible_cpus(), threads_per_core);
- trace_imc_refc = kcalloc(nr_cores, sizeof(struct imc_pmu_ref),
- GFP_KERNEL);
+ trace_imc_refc = kzalloc_objs(struct imc_pmu_ref, nr_cores,
+ GFP_KERNEL);
if (!trace_imc_refc)
return -ENOMEM;
diff --git a/arch/powerpc/perf/vpa-dtl.c b/arch/powerpc/perf/vpa-dtl.c
index 3c1d1c28deb9..ab19101a8928 100644
--- a/arch/powerpc/perf/vpa-dtl.c
+++ b/arch/powerpc/perf/vpa-dtl.c
@@ -523,7 +523,7 @@ static void *vpa_dtl_setup_aux(struct perf_event *event, void **pages,
if (!buf)
return NULL;
- pglist = kcalloc(nr_pages, sizeof(*pglist), GFP_KERNEL);
+ pglist = kzalloc_objs(*pglist, nr_pages, GFP_KERNEL);
if (!pglist)
return NULL;
diff --git a/arch/powerpc/platforms/44x/hsta_msi.c b/arch/powerpc/platforms/44x/hsta_msi.c
index c6bd846b0d65..a6b1c004888e 100644
--- a/arch/powerpc/platforms/44x/hsta_msi.c
+++ b/arch/powerpc/platforms/44x/hsta_msi.c
@@ -151,8 +151,7 @@ static int hsta_msi_probe(struct platform_device *pdev)
if (ret)
goto out;
- ppc4xx_hsta_msi.irq_map = kmalloc_array(irq_count, sizeof(int),
- GFP_KERNEL);
+ ppc4xx_hsta_msi.irq_map = kmalloc_objs(int, irq_count, GFP_KERNEL);
if (!ppc4xx_hsta_msi.irq_map) {
ret = -ENOMEM;
goto out1;
diff --git a/arch/powerpc/platforms/44x/pci.c b/arch/powerpc/platforms/44x/pci.c
index 364aeb86ab64..6ac53865b872 100644
--- a/arch/powerpc/platforms/44x/pci.c
+++ b/arch/powerpc/platforms/44x/pci.c
@@ -1339,8 +1339,7 @@ static int __init ppc4xx_pciex_check_core_init(struct device_node *np)
count = ppc4xx_pciex_hwops->core_init(np);
if (count > 0) {
ppc4xx_pciex_ports =
- kcalloc(count, sizeof(struct ppc4xx_pciex_port),
- GFP_KERNEL);
+ kzalloc_objs(struct ppc4xx_pciex_port, count, GFP_KERNEL);
if (ppc4xx_pciex_ports) {
ppc4xx_pciex_port_count = count;
return 0;
diff --git a/arch/powerpc/platforms/44x/uic.c b/arch/powerpc/platforms/44x/uic.c
index 85daf841fd3f..a484474df432 100644
--- a/arch/powerpc/platforms/44x/uic.c
+++ b/arch/powerpc/platforms/44x/uic.c
@@ -233,7 +233,7 @@ static struct uic * __init uic_init_one(struct device_node *node)
BUG_ON(! of_device_is_compatible(node, "ibm,uic"));
- uic = kzalloc(sizeof(*uic), GFP_KERNEL);
+ uic = kzalloc_obj(*uic, GFP_KERNEL);
if (! uic)
return NULL; /* FIXME: panic? */
diff --git a/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c b/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c
index 80d944f29288..d8cdd077a554 100644
--- a/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c
+++ b/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c
@@ -146,7 +146,7 @@ static int mcu_probe(struct i2c_client *client)
struct mcu *mcu;
int ret;
- mcu = kzalloc(sizeof(*mcu), GFP_KERNEL);
+ mcu = kzalloc_obj(*mcu, GFP_KERNEL);
if (!mcu)
return -ENOMEM;
diff --git a/arch/powerpc/platforms/book3s/vas-api.c b/arch/powerpc/platforms/book3s/vas-api.c
index 49b15e7a8265..6f6c9d776dd7 100644
--- a/arch/powerpc/platforms/book3s/vas-api.c
+++ b/arch/powerpc/platforms/book3s/vas-api.c
@@ -266,7 +266,7 @@ static int coproc_open(struct inode *inode, struct file *fp)
{
struct coproc_instance *cp_inst;
- cp_inst = kzalloc(sizeof(*cp_inst), GFP_KERNEL);
+ cp_inst = kzalloc_obj(*cp_inst, GFP_KERNEL);
if (!cp_inst)
return -ENOMEM;
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c
index 3c8624870967..2c536040ae0a 100644
--- a/arch/powerpc/platforms/cell/spu_base.c
+++ b/arch/powerpc/platforms/cell/spu_base.c
@@ -558,7 +558,7 @@ static int __init create_spu(void *data)
unsigned long flags;
ret = -ENOMEM;
- spu = kzalloc(sizeof (*spu), GFP_KERNEL);
+ spu = kzalloc_obj(*spu, GFP_KERNEL);
if (!spu)
goto out;
diff --git a/arch/powerpc/platforms/cell/spufs/context.c b/arch/powerpc/platforms/cell/spufs/context.c
index 7a39cc414f09..ade2a5e041a3 100644
--- a/arch/powerpc/platforms/cell/spufs/context.c
+++ b/arch/powerpc/platforms/cell/spufs/context.c
@@ -26,7 +26,7 @@ struct spu_context *alloc_spu_context(struct spu_gang *gang)
{
struct spu_context *ctx;
- ctx = kzalloc(sizeof *ctx, GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
goto out;
/* Binding to physical processor deferred
diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c
index ce839783c0df..60d9b9154997 100644
--- a/arch/powerpc/platforms/cell/spufs/file.c
+++ b/arch/powerpc/platforms/cell/spufs/file.c
@@ -47,7 +47,7 @@ static int spufs_attr_open(struct inode *inode, struct file *file,
{
struct spufs_attr *attr;
- attr = kmalloc(sizeof(*attr), GFP_KERNEL);
+ attr = kmalloc_obj(*attr, GFP_KERNEL);
if (!attr)
return -ENOMEM;
@@ -2281,8 +2281,8 @@ static int spufs_switch_log_open(struct inode *inode, struct file *file)
goto out;
}
- ctx->switch_log = kmalloc(struct_size(ctx->switch_log, log,
- SWITCH_LOG_BUFSIZE), GFP_KERNEL);
+ ctx->switch_log = kmalloc_flex(*ctx->switch_log, log,
+ SWITCH_LOG_BUFSIZE, GFP_KERNEL);
if (!ctx->switch_log) {
rc = -ENOMEM;
diff --git a/arch/powerpc/platforms/cell/spufs/gang.c b/arch/powerpc/platforms/cell/spufs/gang.c
index 2c2999de6bfa..6ab8122bc833 100644
--- a/arch/powerpc/platforms/cell/spufs/gang.c
+++ b/arch/powerpc/platforms/cell/spufs/gang.c
@@ -16,7 +16,7 @@ struct spu_gang *alloc_spu_gang(void)
{
struct spu_gang *gang;
- gang = kzalloc(sizeof *gang, GFP_KERNEL);
+ gang = kzalloc_obj(*gang, GFP_KERNEL);
if (!gang)
goto out;
diff --git a/arch/powerpc/platforms/cell/spufs/inode.c b/arch/powerpc/platforms/cell/spufs/inode.c
index 577a00c25217..419ce7fee040 100644
--- a/arch/powerpc/platforms/cell/spufs/inode.c
+++ b/arch/powerpc/platforms/cell/spufs/inode.c
@@ -727,11 +727,11 @@ static int spufs_init_fs_context(struct fs_context *fc)
struct spufs_fs_context *ctx;
struct spufs_sb_info *sbi;
- ctx = kzalloc(sizeof(struct spufs_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct spufs_fs_context, GFP_KERNEL);
if (!ctx)
goto nomem;
- sbi = kzalloc(sizeof(struct spufs_sb_info), GFP_KERNEL);
+ sbi = kzalloc_obj(struct spufs_sb_info, GFP_KERNEL);
if (!sbi)
goto nomem_ctx;
diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c
index 8e7ed010bfde..f61fa34b62f1 100644
--- a/arch/powerpc/platforms/cell/spufs/sched.c
+++ b/arch/powerpc/platforms/cell/spufs/sched.c
@@ -1082,7 +1082,7 @@ int __init spu_sched_init(void)
struct proc_dir_entry *entry;
int err = -ENOMEM, i;
- spu_prio = kzalloc(sizeof(struct spu_prio_array), GFP_KERNEL);
+ spu_prio = kzalloc_obj(struct spu_prio_array, GFP_KERNEL);
if (!spu_prio)
goto out;
diff --git a/arch/powerpc/platforms/pasemi/gpio_mdio.c b/arch/powerpc/platforms/pasemi/gpio_mdio.c
index e4538d471256..fd31677b38e2 100644
--- a/arch/powerpc/platforms/pasemi/gpio_mdio.c
+++ b/arch/powerpc/platforms/pasemi/gpio_mdio.c
@@ -214,7 +214,7 @@ static int gpio_mdio_probe(struct platform_device *ofdev)
int err;
err = -ENOMEM;
- priv = kzalloc(sizeof(struct gpio_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct gpio_priv, GFP_KERNEL);
if (!priv)
goto out;
diff --git a/arch/powerpc/platforms/powermac/low_i2c.c b/arch/powerpc/platforms/powermac/low_i2c.c
index 02474e27df9b..ec4b03fbfab2 100644
--- a/arch/powerpc/platforms/powermac/low_i2c.c
+++ b/arch/powerpc/platforms/powermac/low_i2c.c
@@ -489,7 +489,7 @@ static struct pmac_i2c_host_kw *__init kw_i2c_host_init(struct device_node *np)
const u32 *psteps, *prate, *addrp;
u32 steps;
- host = kzalloc(sizeof(*host), GFP_KERNEL);
+ host = kzalloc_obj(*host, GFP_KERNEL);
if (host == NULL) {
printk(KERN_ERR "low_i2c: Can't allocate host for %pOF\n",
np);
@@ -569,7 +569,7 @@ static void __init kw_i2c_add(struct pmac_i2c_host_kw *host,
{
struct pmac_i2c_bus *bus;
- bus = kzalloc(sizeof(struct pmac_i2c_bus), GFP_KERNEL);
+ bus = kzalloc_obj(struct pmac_i2c_bus, GFP_KERNEL);
if (bus == NULL)
return;
@@ -1254,7 +1254,7 @@ static void* pmac_i2c_do_begin(struct pmf_function *func, struct pmf_args *args)
* near OOM that need to be resolved, the allocator itself should
* probably make GFP_NOIO implicit during suspend
*/
- inst = kzalloc(sizeof(struct pmac_i2c_pf_inst), GFP_KERNEL);
+ inst = kzalloc_obj(struct pmac_i2c_pf_inst, GFP_KERNEL);
if (inst == NULL) {
pmac_i2c_close(bus);
return NULL;
diff --git a/arch/powerpc/platforms/powermac/pfunc_core.c b/arch/powerpc/platforms/powermac/pfunc_core.c
index 22741ddfd5b2..d1e2e557de15 100644
--- a/arch/powerpc/platforms/powermac/pfunc_core.c
+++ b/arch/powerpc/platforms/powermac/pfunc_core.c
@@ -644,7 +644,7 @@ static int pmf_add_function_prop(struct pmf_device *dev, void *driverdata,
while (length >= 12) {
/* Allocate a structure */
- func = kzalloc(sizeof(*func), GFP_KERNEL);
+ func = kzalloc_obj(*func, GFP_KERNEL);
if (func == NULL)
goto bail;
kref_init(&func->ref);
@@ -720,7 +720,7 @@ int pmf_register_driver(struct device_node *np,
return -EBUSY;
}
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (dev == NULL) {
DBG("pmf: no memory !\n");
return -ENOMEM;
diff --git a/arch/powerpc/platforms/powernv/idle.c b/arch/powerpc/platforms/powernv/idle.c
index e4f4e907f6e3..1389a3131993 100644
--- a/arch/powerpc/platforms/powernv/idle.c
+++ b/arch/powerpc/platforms/powernv/idle.c
@@ -1336,8 +1336,8 @@ static int __init pnv_parse_cpuidle_dt(void)
nr_idle_states = of_property_count_u32_elems(np,
"ibm,cpu-idle-state-flags");
- pnv_idle_states = kcalloc(nr_idle_states, sizeof(*pnv_idle_states),
- GFP_KERNEL);
+ pnv_idle_states = kzalloc_objs(*pnv_idle_states, nr_idle_states,
+ GFP_KERNEL);
temp_u32 = kcalloc(nr_idle_states, sizeof(u32), GFP_KERNEL);
temp_u64 = kcalloc(nr_idle_states, sizeof(u64), GFP_KERNEL);
temp_string = kcalloc(nr_idle_states, sizeof(char *), GFP_KERNEL);
diff --git a/arch/powerpc/platforms/powernv/memtrace.c b/arch/powerpc/platforms/powernv/memtrace.c
index 2ea30b343354..5214e2d43e78 100644
--- a/arch/powerpc/platforms/powernv/memtrace.c
+++ b/arch/powerpc/platforms/powernv/memtrace.c
@@ -133,8 +133,8 @@ static int memtrace_init_regions_runtime(u64 size)
u32 nid;
u64 m;
- memtrace_array = kcalloc(num_online_nodes(),
- sizeof(struct memtrace_entry), GFP_KERNEL);
+ memtrace_array = kzalloc_objs(struct memtrace_entry, num_online_nodes(),
+ GFP_KERNEL);
if (!memtrace_array) {
pr_err("Failed to allocate memtrace_array\n");
return -EINVAL;
diff --git a/arch/powerpc/platforms/powernv/ocxl.c b/arch/powerpc/platforms/powernv/ocxl.c
index f8139948348e..5ae7e3960364 100644
--- a/arch/powerpc/platforms/powernv/ocxl.c
+++ b/arch/powerpc/platforms/powernv/ocxl.c
@@ -149,7 +149,7 @@ static struct npu_link *find_link(struct pci_dev *dev)
}
/* link doesn't exist yet. Allocate one */
- link = kzalloc(sizeof(struct npu_link), GFP_KERNEL);
+ link = kzalloc_obj(struct npu_link, GFP_KERNEL);
if (!link)
return NULL;
link->domain = pci_domain_nr(dev->bus);
@@ -439,7 +439,7 @@ int pnv_ocxl_spa_setup(struct pci_dev *dev, void *spa_mem, int PE_mask,
u32 bdfn;
int rc;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/arch/powerpc/platforms/powernv/opal-async.c b/arch/powerpc/platforms/powernv/opal-async.c
index c094fdf5825c..2cacfe5407c9 100644
--- a/arch/powerpc/platforms/powernv/opal-async.c
+++ b/arch/powerpc/platforms/powernv/opal-async.c
@@ -265,8 +265,8 @@ int __init opal_async_comp_init(void)
}
opal_max_async_tokens = be32_to_cpup(async);
- opal_async_tokens = kcalloc(opal_max_async_tokens,
- sizeof(*opal_async_tokens), GFP_KERNEL);
+ opal_async_tokens = kzalloc_objs(*opal_async_tokens,
+ opal_max_async_tokens, GFP_KERNEL);
if (!opal_async_tokens) {
err = -ENOMEM;
goto out_opal_node;
diff --git a/arch/powerpc/platforms/powernv/opal-core.c b/arch/powerpc/platforms/powernv/opal-core.c
index 784602a48afb..4f1533bcaa10 100644
--- a/arch/powerpc/platforms/powernv/opal-core.c
+++ b/arch/powerpc/platforms/powernv/opal-core.c
@@ -81,7 +81,7 @@ bool kernel_initiated;
static struct opalcore * __init get_new_element(void)
{
- return kzalloc(sizeof(struct opalcore), GFP_KERNEL);
+ return kzalloc_obj(struct opalcore, GFP_KERNEL);
}
static inline int is_opalcore_usable(void)
@@ -497,7 +497,7 @@ static void __init opalcore_config_init(void)
opalc_cpu_metadata = __va(addr);
/* Allocate memory for config buffer */
- oc_conf = kzalloc(sizeof(struct opalcore_config), GFP_KERNEL);
+ oc_conf = kzalloc_obj(struct opalcore_config, GFP_KERNEL);
if (oc_conf == NULL)
goto error_out;
diff --git a/arch/powerpc/platforms/powernv/opal-dump.c b/arch/powerpc/platforms/powernv/opal-dump.c
index cc3cc9ddf9d1..a832afb4cbf5 100644
--- a/arch/powerpc/platforms/powernv/opal-dump.c
+++ b/arch/powerpc/platforms/powernv/opal-dump.c
@@ -329,7 +329,7 @@ static void create_dump_obj(uint32_t id, size_t size, uint32_t type)
struct dump_obj *dump;
int rc;
- dump = kzalloc(sizeof(*dump), GFP_KERNEL);
+ dump = kzalloc_obj(*dump, GFP_KERNEL);
if (!dump)
return;
diff --git a/arch/powerpc/platforms/powernv/opal-elog.c b/arch/powerpc/platforms/powernv/opal-elog.c
index c3fc5d258146..39e9eb162ed7 100644
--- a/arch/powerpc/platforms/powernv/opal-elog.c
+++ b/arch/powerpc/platforms/powernv/opal-elog.c
@@ -190,7 +190,7 @@ static void create_elog_obj(uint64_t id, size_t size, uint64_t type)
struct elog_obj *elog;
int rc;
- elog = kzalloc(sizeof(*elog), GFP_KERNEL);
+ elog = kzalloc_obj(*elog, GFP_KERNEL);
if (!elog)
return;
diff --git a/arch/powerpc/platforms/powernv/opal-hmi.c b/arch/powerpc/platforms/powernv/opal-hmi.c
index f0c1830deb51..182719995d05 100644
--- a/arch/powerpc/platforms/powernv/opal-hmi.c
+++ b/arch/powerpc/platforms/powernv/opal-hmi.c
@@ -342,7 +342,7 @@ static int opal_handle_hmi_event(struct notifier_block *nb,
hmi_evt = (struct OpalHMIEvent *)&hmi_msg->params[0];
/* Delay the logging of HMI events to workqueue. */
- msg_node = kzalloc(sizeof(*msg_node), GFP_ATOMIC);
+ msg_node = kzalloc_obj(*msg_node, GFP_ATOMIC);
if (!msg_node) {
pr_err("HMI: out of memory, Opal message event not handled\n");
return -ENOMEM;
diff --git a/arch/powerpc/platforms/powernv/opal-imc.c b/arch/powerpc/platforms/powernv/opal-imc.c
index 828fc4d88471..c57525c1fecd 100644
--- a/arch/powerpc/platforms/powernv/opal-imc.c
+++ b/arch/powerpc/platforms/powernv/opal-imc.c
@@ -108,8 +108,8 @@ static int imc_get_mem_addr_nest(struct device_node *node,
nr_chips))
goto error;
- pmu_ptr->mem_info = kcalloc(nr_chips + 1, sizeof(*pmu_ptr->mem_info),
- GFP_KERNEL);
+ pmu_ptr->mem_info = kzalloc_objs(*pmu_ptr->mem_info, nr_chips + 1,
+ GFP_KERNEL);
if (!pmu_ptr->mem_info)
goto error;
@@ -146,7 +146,7 @@ static struct imc_pmu *imc_pmu_create(struct device_node *parent, int pmu_index,
return NULL;
/* memory for pmu */
- pmu_ptr = kzalloc(sizeof(*pmu_ptr), GFP_KERNEL);
+ pmu_ptr = kzalloc_obj(*pmu_ptr, GFP_KERNEL);
if (!pmu_ptr)
return NULL;
diff --git a/arch/powerpc/platforms/powernv/opal-irqchip.c b/arch/powerpc/platforms/powernv/opal-irqchip.c
index e180bd8e1400..7cf5cae6ef42 100644
--- a/arch/powerpc/platforms/powernv/opal-irqchip.c
+++ b/arch/powerpc/platforms/powernv/opal-irqchip.c
@@ -221,7 +221,7 @@ int __init opal_event_init(void)
opal_irq_count, old_style ? "old" : "new");
/* Allocate an IRQ resources array */
- opal_irqs = kcalloc(opal_irq_count, sizeof(struct resource), GFP_KERNEL);
+ opal_irqs = kzalloc_objs(struct resource, opal_irq_count, GFP_KERNEL);
if (WARN_ON(!opal_irqs)) {
rc = -ENOMEM;
goto out;
diff --git a/arch/powerpc/platforms/powernv/opal-lpc.c b/arch/powerpc/platforms/powernv/opal-lpc.c
index 8a7f39e106bd..c41ca500669d 100644
--- a/arch/powerpc/platforms/powernv/opal-lpc.c
+++ b/arch/powerpc/platforms/powernv/opal-lpc.c
@@ -355,7 +355,7 @@ static int opal_lpc_debugfs_create_type(struct dentry *folder,
enum OpalLPCAddressType type)
{
struct lpc_debugfs_entry *entry;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
entry->lpc_type = type;
diff --git a/arch/powerpc/platforms/powernv/opal-memory-errors.c b/arch/powerpc/platforms/powernv/opal-memory-errors.c
index a1754a28265d..54815882d7c0 100644
--- a/arch/powerpc/platforms/powernv/opal-memory-errors.c
+++ b/arch/powerpc/platforms/powernv/opal-memory-errors.c
@@ -93,7 +93,7 @@ static int opal_memory_err_event(struct notifier_block *nb,
if (msg_type != OPAL_MSG_MEM_ERR)
return 0;
- msg_node = kzalloc(sizeof(*msg_node), GFP_ATOMIC);
+ msg_node = kzalloc_obj(*msg_node, GFP_ATOMIC);
if (!msg_node) {
pr_err("MEMORY_ERROR: out of memory, Opal message event not"
"handled\n");
diff --git a/arch/powerpc/platforms/powernv/opal-powercap.c b/arch/powerpc/platforms/powernv/opal-powercap.c
index ea917266aa17..d530ac77b0e2 100644
--- a/arch/powerpc/platforms/powernv/opal-powercap.c
+++ b/arch/powerpc/platforms/powernv/opal-powercap.c
@@ -150,8 +150,7 @@ void __init opal_powercap_init(void)
return;
}
- pcaps = kcalloc(of_get_child_count(powercap), sizeof(*pcaps),
- GFP_KERNEL);
+ pcaps = kzalloc_objs(*pcaps, of_get_child_count(powercap), GFP_KERNEL);
if (!pcaps)
goto out_put_powercap;
@@ -182,13 +181,13 @@ void __init opal_powercap_init(void)
has_cur = true;
}
- pcaps[i].pattrs = kcalloc(j, sizeof(struct powercap_attr),
- GFP_KERNEL);
+ pcaps[i].pattrs = kzalloc_objs(struct powercap_attr, j,
+ GFP_KERNEL);
if (!pcaps[i].pattrs)
goto out_pcaps_pattrs;
- pcaps[i].pg.attrs = kcalloc(j + 1, sizeof(struct attribute *),
- GFP_KERNEL);
+ pcaps[i].pg.attrs = kzalloc_objs(struct attribute *, j + 1,
+ GFP_KERNEL);
if (!pcaps[i].pg.attrs) {
kfree(pcaps[i].pattrs);
goto out_pcaps_pattrs;
diff --git a/arch/powerpc/platforms/powernv/opal-psr.c b/arch/powerpc/platforms/powernv/opal-psr.c
index 6441e17b6996..731d8b355343 100644
--- a/arch/powerpc/platforms/powernv/opal-psr.c
+++ b/arch/powerpc/platforms/powernv/opal-psr.c
@@ -132,8 +132,8 @@ void __init opal_psr_init(void)
return;
}
- psr_attrs = kcalloc(of_get_child_count(psr), sizeof(*psr_attrs),
- GFP_KERNEL);
+ psr_attrs = kzalloc_objs(*psr_attrs, of_get_child_count(psr),
+ GFP_KERNEL);
if (!psr_attrs)
goto out_put_psr;
diff --git a/arch/powerpc/platforms/powernv/opal-sensor-groups.c b/arch/powerpc/platforms/powernv/opal-sensor-groups.c
index 9944376b115c..c91e48d773ff 100644
--- a/arch/powerpc/platforms/powernv/opal-sensor-groups.c
+++ b/arch/powerpc/platforms/powernv/opal-sensor-groups.c
@@ -168,7 +168,7 @@ void __init opal_sensor_groups_init(void)
return;
}
- sgs = kcalloc(of_get_child_count(sg), sizeof(*sgs), GFP_KERNEL);
+ sgs = kzalloc_objs(*sgs, of_get_child_count(sg), GFP_KERNEL);
if (!sgs)
goto out_sg_put;
@@ -190,14 +190,13 @@ void __init opal_sensor_groups_init(void)
if (!nr_attrs)
continue;
- sgs[i].sgattrs = kcalloc(nr_attrs, sizeof(*sgs[i].sgattrs),
- GFP_KERNEL);
+ sgs[i].sgattrs = kzalloc_objs(*sgs[i].sgattrs, nr_attrs,
+ GFP_KERNEL);
if (!sgs[i].sgattrs)
goto out_sgs_sgattrs;
- sgs[i].sg.attrs = kcalloc(nr_attrs + 1,
- sizeof(*sgs[i].sg.attrs),
- GFP_KERNEL);
+ sgs[i].sg.attrs = kzalloc_objs(*sgs[i].sg.attrs, nr_attrs + 1,
+ GFP_KERNEL);
if (!sgs[i].sg.attrs) {
kfree(sgs[i].sgattrs);
diff --git a/arch/powerpc/platforms/powernv/opal-sysparam.c b/arch/powerpc/platforms/powernv/opal-sysparam.c
index a12312afe4ef..358d1b8a3e86 100644
--- a/arch/powerpc/platforms/powernv/opal-sysparam.c
+++ b/arch/powerpc/platforms/powernv/opal-sysparam.c
@@ -222,7 +222,7 @@ void __init opal_sys_param_init(void)
goto out_free_perm;
}
- attr = kcalloc(count, sizeof(*attr), GFP_KERNEL);
+ attr = kzalloc_objs(*attr, count, GFP_KERNEL);
if (!attr) {
pr_err("SYSPARAM: Failed to allocate memory for parameter "
"attributes\n");
diff --git a/arch/powerpc/platforms/powernv/opal-xscom.c b/arch/powerpc/platforms/powernv/opal-xscom.c
index 748c2b97fa53..bd788d62af5f 100644
--- a/arch/powerpc/platforms/powernv/opal-xscom.c
+++ b/arch/powerpc/platforms/powernv/opal-xscom.c
@@ -158,7 +158,7 @@ static int scom_debug_init_one(struct dentry *root, struct device_node *dn,
struct scom_debug_entry *ent;
struct dentry *dir;
- ent = kzalloc(sizeof(*ent), GFP_KERNEL);
+ ent = kzalloc_obj(*ent, GFP_KERNEL);
if (!ent)
return -ENOMEM;
diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
index 09bd93464b4f..b1b1d3496739 100644
--- a/arch/powerpc/platforms/powernv/opal.c
+++ b/arch/powerpc/platforms/powernv/opal.c
@@ -251,7 +251,7 @@ static void queue_replay_msg(void *msg)
struct opal_msg_node *msg_node;
if (msg_list_size < OPAL_MSG_QUEUE_MAX) {
- msg_node = kzalloc(sizeof(*msg_node), GFP_ATOMIC);
+ msg_node = kzalloc_obj(*msg_node, GFP_ATOMIC);
if (msg_node) {
INIT_LIST_HEAD(&msg_node->list);
memcpy(&msg_node->msg, msg, sizeof(struct opal_msg));
@@ -801,7 +801,7 @@ static int opal_add_one_export(struct kobject *parent, const char *export_name,
if (rc)
goto out;
- attr = kzalloc(sizeof(*attr), GFP_KERNEL);
+ attr = kzalloc_obj(*attr, GFP_KERNEL);
if (!attr) {
rc = -ENOMEM;
goto out;
diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
index 1c78fdfb7b03..d77ff328eb37 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -2522,7 +2522,7 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np,
phb_id = be64_to_cpup(prop64);
pr_debug(" PHB-ID : 0x%016llx\n", phb_id);
- phb = kzalloc(sizeof(*phb), GFP_KERNEL);
+ phb = kzalloc_obj(*phb, GFP_KERNEL);
if (!phb)
panic("%s: Failed to allocate %zu bytes\n", __func__,
sizeof(*phb));
diff --git a/arch/powerpc/platforms/powernv/pci-sriov.c b/arch/powerpc/platforms/powernv/pci-sriov.c
index cc7b1dd54ac6..f1a8fcfdb2ba 100644
--- a/arch/powerpc/platforms/powernv/pci-sriov.c
+++ b/arch/powerpc/platforms/powernv/pci-sriov.c
@@ -149,7 +149,7 @@ static void pnv_pci_ioda_fixup_iov_resources(struct pci_dev *pdev)
struct pnv_iov_data *iov;
int mul;
- iov = kzalloc(sizeof(*iov), GFP_KERNEL);
+ iov = kzalloc_obj(*iov, GFP_KERNEL);
if (!iov)
goto disable_iov;
pdev->dev.archdata.iov_data = iov;
diff --git a/arch/powerpc/platforms/powernv/rng.c b/arch/powerpc/platforms/powernv/rng.c
index 196aa70fe043..6034f2cdcaf2 100644
--- a/arch/powerpc/platforms/powernv/rng.c
+++ b/arch/powerpc/platforms/powernv/rng.c
@@ -120,7 +120,7 @@ static __init int rng_create(struct device_node *dn)
struct resource res;
unsigned long val;
- rng = kzalloc(sizeof(*rng), GFP_KERNEL);
+ rng = kzalloc_obj(*rng, GFP_KERNEL);
if (!rng)
return -ENOMEM;
diff --git a/arch/powerpc/platforms/powernv/vas-window.c b/arch/powerpc/platforms/powernv/vas-window.c
index 5147df3a18ac..06748e0d5c32 100644
--- a/arch/powerpc/platforms/powernv/vas-window.c
+++ b/arch/powerpc/platforms/powernv/vas-window.c
@@ -543,7 +543,7 @@ static struct pnv_vas_window *vas_window_alloc(struct vas_instance *vinst)
if (winid < 0)
return ERR_PTR(winid);
- window = kzalloc(sizeof(*window), GFP_KERNEL);
+ window = kzalloc_obj(*window, GFP_KERNEL);
if (!window)
goto out_free;
diff --git a/arch/powerpc/platforms/powernv/vas.c b/arch/powerpc/platforms/powernv/vas.c
index 9c9650319f3b..ca3553003b7c 100644
--- a/arch/powerpc/platforms/powernv/vas.c
+++ b/arch/powerpc/platforms/powernv/vas.c
@@ -74,7 +74,7 @@ static int init_vas_instance(struct platform_device *pdev)
return -ENODEV;
}
- vinst = kzalloc(sizeof(*vinst), GFP_KERNEL);
+ vinst = kzalloc_obj(*vinst, GFP_KERNEL);
if (!vinst)
return -ENOMEM;
diff --git a/arch/powerpc/platforms/ps3/device-init.c b/arch/powerpc/platforms/ps3/device-init.c
index 22d91ac424dd..74e7fb0adcdb 100644
--- a/arch/powerpc/platforms/ps3/device-init.c
+++ b/arch/powerpc/platforms/ps3/device-init.c
@@ -31,7 +31,7 @@ static int __init ps3_register_lpm_devices(void)
pr_debug(" -> %s:%d\n", __func__, __LINE__);
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
@@ -126,7 +126,7 @@ static int __init ps3_setup_gelic_device(
BUG_ON(repo->bus_type != PS3_BUS_TYPE_SB);
BUG_ON(repo->dev_type != PS3_DEV_TYPE_SB_GELIC);
- p = kzalloc(sizeof(struct layout), GFP_KERNEL);
+ p = kzalloc_obj(struct layout, GFP_KERNEL);
if (!p) {
result = -ENOMEM;
@@ -197,7 +197,7 @@ static int __init ps3_setup_uhc_device(
BUG_ON(repo->bus_type != PS3_BUS_TYPE_SB);
BUG_ON(repo->dev_type != PS3_DEV_TYPE_SB_USB);
- p = kzalloc(sizeof(struct layout), GFP_KERNEL);
+ p = kzalloc_obj(struct layout, GFP_KERNEL);
if (!p) {
result = -ENOMEM;
@@ -294,7 +294,7 @@ static int __init ps3_setup_vuart_device(enum ps3_match_id match_id,
pr_debug(" -> %s:%d: match_id %u, port %u\n", __func__, __LINE__,
match_id, port_number);
- p = kzalloc(sizeof(struct layout), GFP_KERNEL);
+ p = kzalloc_obj(struct layout, GFP_KERNEL);
if (!p)
return -ENOMEM;
@@ -344,7 +344,7 @@ static int ps3_setup_storage_dev(const struct ps3_repository_device *repo,
repo->dev_index, repo->dev_type, port, blk_size, num_blocks,
num_regions);
- p = kzalloc(struct_size(p, regions, num_regions), GFP_KERNEL);
+ p = kzalloc_flex(*p, regions, num_regions, GFP_KERNEL);
if (!p) {
result = -ENOMEM;
goto fail_malloc;
@@ -447,7 +447,7 @@ static int __init ps3_register_sound_devices(void)
pr_debug(" -> %s:%d\n", __func__, __LINE__);
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return -ENOMEM;
@@ -481,7 +481,7 @@ static int __init ps3_register_graphics_devices(void)
pr_debug(" -> %s:%d\n", __func__, __LINE__);
- p = kzalloc(sizeof(struct layout), GFP_KERNEL);
+ p = kzalloc_obj(struct layout, GFP_KERNEL);
if (!p)
return -ENOMEM;
@@ -516,7 +516,7 @@ static int __init ps3_register_ramdisk_device(void)
pr_debug(" -> %s:%d\n", __func__, __LINE__);
- p = kzalloc(sizeof(struct layout), GFP_KERNEL);
+ p = kzalloc_obj(struct layout, GFP_KERNEL);
if (!p)
return -ENOMEM;
@@ -783,7 +783,7 @@ static int ps3_probe_thread(void *data)
pr_debug(" -> %s:%u: kthread started\n", __func__, __LINE__);
- local = kzalloc(sizeof(*local), GFP_KERNEL);
+ local = kzalloc_obj(*local, GFP_KERNEL);
if (!local)
return -ENOMEM;
diff --git a/arch/powerpc/platforms/ps3/mm.c b/arch/powerpc/platforms/ps3/mm.c
index 1326de55fda6..20fc5b68faee 100644
--- a/arch/powerpc/platforms/ps3/mm.c
+++ b/arch/powerpc/platforms/ps3/mm.c
@@ -516,7 +516,7 @@ static int dma_sb_map_pages(struct ps3_dma_region *r, unsigned long phys_addr,
int result;
struct dma_chunk *c;
- c = kzalloc(sizeof(*c), GFP_ATOMIC);
+ c = kzalloc_obj(*c, GFP_ATOMIC);
if (!c) {
result = -ENOMEM;
goto fail_alloc;
@@ -561,7 +561,7 @@ static int dma_ioc0_map_pages(struct ps3_dma_region *r, unsigned long phys_addr,
DBG(KERN_ERR "%s: phy=%#lx, lpar%#lx, len=%#lx\n", __func__,
phys_addr, ps3_mm_phys_to_lpar(phys_addr), len);
- c = kzalloc(sizeof(*c), GFP_ATOMIC);
+ c = kzalloc_obj(*c, GFP_ATOMIC);
if (!c) {
result = -ENOMEM;
goto fail_alloc;
diff --git a/arch/powerpc/platforms/ps3/spu.c b/arch/powerpc/platforms/ps3/spu.c
index 61b37c9400b2..cd4ff2032cb0 100644
--- a/arch/powerpc/platforms/ps3/spu.c
+++ b/arch/powerpc/platforms/ps3/spu.c
@@ -336,8 +336,7 @@ static int __init ps3_create_spu(struct spu *spu, void *data)
pr_debug("%s:%d spu_%d\n", __func__, __LINE__, spu->number);
- spu->pdata = kzalloc(sizeof(struct spu_pdata),
- GFP_KERNEL);
+ spu->pdata = kzalloc_obj(struct spu_pdata, GFP_KERNEL);
if (!spu->pdata) {
result = -ENOMEM;
diff --git a/arch/powerpc/platforms/pseries/dlpar.c b/arch/powerpc/platforms/pseries/dlpar.c
index 979487da6522..ea5e97f1f054 100644
--- a/arch/powerpc/platforms/pseries/dlpar.c
+++ b/arch/powerpc/platforms/pseries/dlpar.c
@@ -53,7 +53,7 @@ static struct property *dlpar_parse_cc_property(struct cc_workarea *ccwa)
char *name;
char *value;
- prop = kzalloc(sizeof(*prop), GFP_KERNEL);
+ prop = kzalloc_obj(*prop, GFP_KERNEL);
if (!prop)
return NULL;
@@ -80,7 +80,7 @@ static struct device_node *dlpar_parse_cc_node(struct cc_workarea *ccwa)
struct device_node *dn;
const char *name;
- dn = kzalloc(sizeof(*dn), GFP_KERNEL);
+ dn = kzalloc_obj(*dn, GFP_KERNEL);
if (!dn)
return NULL;
@@ -633,7 +633,7 @@ void queue_hotplug_event(struct pseries_hp_errorlog *hp_errlog)
if (!hp_errlog_copy)
return;
- work = kmalloc(sizeof(struct pseries_hp_work), GFP_ATOMIC);
+ work = kmalloc_obj(struct pseries_hp_work, GFP_ATOMIC);
if (work) {
INIT_WORK((struct work_struct *)work, pseries_hp_work_fn);
work->errlog = hp_errlog_copy;
diff --git a/arch/powerpc/platforms/pseries/hotplug-memory.c b/arch/powerpc/platforms/pseries/hotplug-memory.c
index 38dc4f7c9296..a040d34c4e40 100644
--- a/arch/powerpc/platforms/pseries/hotplug-memory.c
+++ b/arch/powerpc/platforms/pseries/hotplug-memory.c
@@ -33,7 +33,7 @@ static struct property *dlpar_clone_property(struct property *prop,
{
struct property *new_prop;
- new_prop = kzalloc(sizeof(*new_prop), GFP_KERNEL);
+ new_prop = kzalloc_obj(*new_prop, GFP_KERNEL);
if (!new_prop)
return NULL;
diff --git a/arch/powerpc/platforms/pseries/hvcserver.c b/arch/powerpc/platforms/pseries/hvcserver.c
index d48c9c7ce10f..80e310a45f14 100644
--- a/arch/powerpc/platforms/pseries/hvcserver.c
+++ b/arch/powerpc/platforms/pseries/hvcserver.c
@@ -160,8 +160,8 @@ int hvcs_get_partner_info(uint32_t unit_address, struct list_head *head,
/* This is a very small struct and will be freed soon in
* hvcs_free_partner_info(). */
- next_partner_info = kmalloc(sizeof(struct hvcs_partner_info),
- GFP_ATOMIC);
+ next_partner_info = kmalloc_obj(struct hvcs_partner_info,
+ GFP_ATOMIC);
if (!next_partner_info) {
printk(KERN_WARNING "HVCONSOLE: kmalloc() failed to"
diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c
index 5497b130e026..27de08d8fa15 100644
--- a/arch/powerpc/platforms/pseries/iommu.c
+++ b/arch/powerpc/platforms/pseries/iommu.c
@@ -1000,7 +1000,7 @@ static void copy_property(struct device_node *pdn, const char *from, const char
if (!src)
return;
- dst = kzalloc(sizeof(*dst), GFP_KERNEL);
+ dst = kzalloc_obj(*dst, GFP_KERNEL);
if (!dst)
return;
@@ -1089,7 +1089,7 @@ static struct dma_win *ddw_list_new_entry(struct device_node *pdn,
{
struct dma_win *window;
- window = kzalloc(sizeof(*window), GFP_KERNEL);
+ window = kzalloc_obj(*window, GFP_KERNEL);
if (!window)
return NULL;
@@ -1409,12 +1409,12 @@ static struct property *ddw_property_create(const char *propname, u32 liobn, u64
struct dynamic_dma_window_prop *ddwprop;
struct property *win64;
- win64 = kzalloc(sizeof(*win64), GFP_KERNEL);
+ win64 = kzalloc_obj(*win64, GFP_KERNEL);
if (!win64)
return NULL;
win64->name = kstrdup(propname, GFP_KERNEL);
- ddwprop = kzalloc(sizeof(*ddwprop), GFP_KERNEL);
+ ddwprop = kzalloc_obj(*ddwprop, GFP_KERNEL);
win64->value = ddwprop;
win64->length = sizeof(*ddwprop);
if (!win64->name || !win64->value) {
@@ -1760,7 +1760,7 @@ static bool enable_ddw(struct pci_dev *dev, struct device_node *pdn, u64 dma_mas
if (default_win_removed || limited_addr_enabled)
reset_dma_window(dev, pdn);
- fpdn = kzalloc(sizeof(*fpdn), GFP_KERNEL);
+ fpdn = kzalloc_obj(*fpdn, GFP_KERNEL);
if (!fpdn)
goto out_unlock;
fpdn->pdn = pdn;
@@ -2235,7 +2235,7 @@ static long spapr_tce_create_table(struct iommu_table_group *table_group, int nu
__remove_dma_window(pdn, ddw_avail, create.liobn);
out_failed:
- fpdn = kzalloc(sizeof(*fpdn), GFP_KERNEL);
+ fpdn = kzalloc_obj(*fpdn, GFP_KERNEL);
if (!fpdn)
goto out_unlock;
fpdn->pdn = pdn;
@@ -2322,7 +2322,7 @@ static long spapr_tce_unset_window(struct iommu_table_group *table_group, int nu
goto out_unlock;
out_failed:
- fpdn = kzalloc(sizeof(*fpdn), GFP_KERNEL);
+ fpdn = kzalloc_obj(*fpdn, GFP_KERNEL);
if (!fpdn)
goto out_unlock;
fpdn->pdn = pdn;
diff --git a/arch/powerpc/platforms/pseries/lparcfg.c b/arch/powerpc/platforms/pseries/lparcfg.c
index 6554537984fb..bf6f9789167f 100644
--- a/arch/powerpc/platforms/pseries/lparcfg.c
+++ b/arch/powerpc/platforms/pseries/lparcfg.c
@@ -146,7 +146,7 @@ static void show_gpci_data(struct seq_file *m)
unsigned int affinity_score;
long ret;
- buf = kmalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kmalloc_obj(*buf, GFP_KERNEL);
if (buf == NULL)
return;
diff --git a/arch/powerpc/platforms/pseries/mobility.c b/arch/powerpc/platforms/pseries/mobility.c
index 95fe802ccdfd..892f59c41d83 100644
--- a/arch/powerpc/platforms/pseries/mobility.c
+++ b/arch/powerpc/platforms/pseries/mobility.c
@@ -146,7 +146,7 @@ static int update_dt_property(struct device_node *dn, struct property **prop,
new_prop->value = new_data;
new_prop->length += vd;
} else {
- new_prop = kzalloc(sizeof(*new_prop), GFP_KERNEL);
+ new_prop = kzalloc_obj(*new_prop, GFP_KERNEL);
if (!new_prop)
return -ENOMEM;
diff --git a/arch/powerpc/platforms/pseries/msi.c b/arch/powerpc/platforms/pseries/msi.c
index 4cd70a8201f1..3bc617a96671 100644
--- a/arch/powerpc/platforms/pseries/msi.c
+++ b/arch/powerpc/platforms/pseries/msi.c
@@ -441,7 +441,7 @@ static int pseries_msi_ops_prepare(struct irq_domain *domain, struct device *dev
int ret;
struct pseries_msi_device *pseries_dev __free(kfree)
- = kmalloc(sizeof(*pseries_dev), GFP_KERNEL);
+ = kmalloc_obj(*pseries_dev, GFP_KERNEL);
if (!pseries_dev)
return -ENOMEM;
diff --git a/arch/powerpc/platforms/pseries/papr-hvpipe.c b/arch/powerpc/platforms/pseries/papr-hvpipe.c
index dd7b668799d9..14ae480d060a 100644
--- a/arch/powerpc/platforms/pseries/papr-hvpipe.c
+++ b/arch/powerpc/platforms/pseries/papr-hvpipe.c
@@ -495,7 +495,7 @@ static int papr_hvpipe_dev_create_handle(u32 srcID)
}
spin_unlock(&hvpipe_src_list_lock);
- src_info = kzalloc(sizeof(*src_info), GFP_KERNEL_ACCOUNT);
+ src_info = kzalloc_obj(*src_info, GFP_KERNEL_ACCOUNT);
if (!src_info)
return -ENOMEM;
@@ -762,7 +762,7 @@ static int __init papr_hvpipe_init(void)
!rtas_function_implemented(RTAS_FN_IBM_RECEIVE_HVPIPE_MSG))
return -ENODEV;
- papr_hvpipe_work = kzalloc(sizeof(struct work_struct), GFP_ATOMIC);
+ papr_hvpipe_work = kzalloc_obj(struct work_struct, GFP_ATOMIC);
if (!papr_hvpipe_work)
return -ENOMEM;
diff --git a/arch/powerpc/platforms/pseries/papr-phy-attest.c b/arch/powerpc/platforms/pseries/papr-phy-attest.c
index 1907f2411567..20a0e1581302 100644
--- a/arch/powerpc/platforms/pseries/papr-phy-attest.c
+++ b/arch/powerpc/platforms/pseries/papr-phy-attest.c
@@ -225,7 +225,7 @@ static long papr_phy_attest_create_handle(struct papr_phy_attest_io_block __user
/*
* Freed in phy_attest_sequence_end().
*/
- params = kzalloc(sizeof(*params), GFP_KERNEL_ACCOUNT);
+ params = kzalloc_obj(*params, GFP_KERNEL_ACCOUNT);
if (!params)
return -ENOMEM;
diff --git a/arch/powerpc/platforms/pseries/papr-platform-dump.c b/arch/powerpc/platforms/pseries/papr-platform-dump.c
index be633c9a0e75..fb7ea84bf98a 100644
--- a/arch/powerpc/platforms/pseries/papr-platform-dump.c
+++ b/arch/powerpc/platforms/pseries/papr-platform-dump.c
@@ -321,8 +321,8 @@ static long papr_platform_dump_create_handle(u64 dump_tag)
}
}
- params = kzalloc(sizeof(struct ibm_platform_dump_params),
- GFP_KERNEL_ACCOUNT);
+ params = kzalloc_obj(struct ibm_platform_dump_params,
+ GFP_KERNEL_ACCOUNT);
if (!params)
return -ENOMEM;
diff --git a/arch/powerpc/platforms/pseries/papr-rtas-common.c b/arch/powerpc/platforms/pseries/papr-rtas-common.c
index 1630e0cd210c..6bf4d1f15000 100644
--- a/arch/powerpc/platforms/pseries/papr-rtas-common.c
+++ b/arch/powerpc/platforms/pseries/papr-rtas-common.c
@@ -83,7 +83,7 @@ papr_rtas_blob_generate(struct papr_rtas_sequence *seq)
size_t len;
int err = 0;
- blob = kzalloc(sizeof(*blob), GFP_KERNEL_ACCOUNT);
+ blob = kzalloc_obj(*blob, GFP_KERNEL_ACCOUNT);
if (!blob)
return NULL;
diff --git a/arch/powerpc/platforms/pseries/papr-sysparm.c b/arch/powerpc/platforms/pseries/papr-sysparm.c
index 7063ce8884e4..7974750ab868 100644
--- a/arch/powerpc/platforms/pseries/papr-sysparm.c
+++ b/arch/powerpc/platforms/pseries/papr-sysparm.c
@@ -19,7 +19,7 @@
struct papr_sysparm_buf *papr_sysparm_buf_alloc(void)
{
- struct papr_sysparm_buf *buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ struct papr_sysparm_buf *buf = kzalloc_obj(*buf, GFP_KERNEL);
return buf;
}
diff --git a/arch/powerpc/platforms/pseries/papr_platform_attributes.c b/arch/powerpc/platforms/pseries/papr_platform_attributes.c
index eea2041b270b..a7821279661a 100644
--- a/arch/powerpc/platforms/pseries/papr_platform_attributes.c
+++ b/arch/powerpc/platforms/pseries/papr_platform_attributes.c
@@ -295,7 +295,7 @@ static int __init papr_init(void)
goto out_free_esi_buf;
}
- papr_groups = kcalloc(num_attrs, sizeof(*papr_groups), GFP_KERNEL);
+ papr_groups = kzalloc_objs(*papr_groups, num_attrs, GFP_KERNEL);
if (!papr_groups)
goto out_free_esi_buf;
@@ -313,9 +313,9 @@ static int __init papr_init(void)
/* Allocate the groups before registering */
for (idx = 0; idx < num_attrs; idx++) {
- papr_groups[idx].pg.attrs = kcalloc(KOBJ_MAX_ATTRS + 1,
- sizeof(*papr_groups[idx].pg.attrs),
- GFP_KERNEL);
+ papr_groups[idx].pg.attrs = kzalloc_objs(*papr_groups[idx].pg.attrs,
+ KOBJ_MAX_ATTRS + 1,
+ GFP_KERNEL);
if (!papr_groups[idx].pg.attrs)
goto out_pgattrs;
diff --git a/arch/powerpc/platforms/pseries/papr_scm.c b/arch/powerpc/platforms/pseries/papr_scm.c
index f7c9271bda58..5d41c0223f10 100644
--- a/arch/powerpc/platforms/pseries/papr_scm.c
+++ b/arch/powerpc/platforms/pseries/papr_scm.c
@@ -445,7 +445,7 @@ static void papr_scm_pmu_register(struct papr_scm_priv *p)
struct nvdimm_pmu *nd_pmu;
int rc, nodeid;
- nd_pmu = kzalloc(sizeof(*nd_pmu), GFP_KERNEL);
+ nd_pmu = kzalloc_obj(*nd_pmu, GFP_KERNEL);
if (!nd_pmu) {
rc = -ENOMEM;
goto pmu_err_print;
@@ -1398,7 +1398,7 @@ static int papr_scm_probe(struct platform_device *pdev)
*/
update_numa_distance(dn);
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return -ENOMEM;
diff --git a/arch/powerpc/platforms/pseries/pci.c b/arch/powerpc/platforms/pseries/pci.c
index 6dbc73eb2ca2..8ce3f591a2b4 100644
--- a/arch/powerpc/platforms/pseries/pci.c
+++ b/arch/powerpc/platforms/pseries/pci.c
@@ -141,9 +141,7 @@ static int pseries_pci_sriov_enable(struct pci_dev *pdev, u16 num_vfs)
}
pdn = pci_get_pdn(pdev);
- pdn->pe_num_map = kmalloc_array(num_vfs,
- sizeof(*pdn->pe_num_map),
- GFP_KERNEL);
+ pdn->pe_num_map = kmalloc_objs(*pdn->pe_num_map, num_vfs, GFP_KERNEL);
if (!pdn->pe_num_map)
return -ENOMEM;
diff --git a/arch/powerpc/platforms/pseries/reconfig.c b/arch/powerpc/platforms/pseries/reconfig.c
index 599bd2c78514..38f4312f5210 100644
--- a/arch/powerpc/platforms/pseries/reconfig.c
+++ b/arch/powerpc/platforms/pseries/reconfig.c
@@ -25,7 +25,7 @@ static int pSeries_reconfig_add_node(const char *path, struct property *proplist
struct device_node *np;
int err = -ENOMEM;
- np = kzalloc(sizeof(*np), GFP_KERNEL);
+ np = kzalloc_obj(*np, GFP_KERNEL);
if (!np)
goto out_err;
@@ -168,7 +168,7 @@ static char * parse_next_property(char *buf, char *end, char **name, int *length
static struct property *new_property(const char *name, const int length,
const unsigned char *value, struct property *last)
{
- struct property *new = kzalloc(sizeof(*new), GFP_KERNEL);
+ struct property *new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return NULL;
diff --git a/arch/powerpc/platforms/pseries/vas-sysfs.c b/arch/powerpc/platforms/pseries/vas-sysfs.c
index 9e05a0e99cad..44ed41dd4b5f 100644
--- a/arch/powerpc/platforms/pseries/vas-sysfs.c
+++ b/arch/powerpc/platforms/pseries/vas-sysfs.c
@@ -202,7 +202,7 @@ int sysfs_add_vas_caps(struct vas_cop_feat_caps *caps)
int ret = 0;
char *name;
- centry = kzalloc(sizeof(*centry), GFP_KERNEL);
+ centry = kzalloc_obj(*centry, GFP_KERNEL);
if (!centry)
return -ENOMEM;
diff --git a/arch/powerpc/platforms/pseries/vas.c b/arch/powerpc/platforms/pseries/vas.c
index c25eb1a38185..d8890b62197b 100644
--- a/arch/powerpc/platforms/pseries/vas.c
+++ b/arch/powerpc/platforms/pseries/vas.c
@@ -324,7 +324,7 @@ static struct vas_window *vas_allocate_window(int vas_id, u64 flags,
struct pseries_vas_window *txwin;
int rc;
- txwin = kzalloc(sizeof(*txwin), GFP_KERNEL);
+ txwin = kzalloc_obj(*txwin, GFP_KERNEL);
if (!txwin)
return ERR_PTR(-ENOMEM);
@@ -1087,7 +1087,7 @@ static int __init pseries_vas_init(void)
return -ENOTSUPP;
}
- hv_caps = kmalloc(sizeof(*hv_caps), GFP_KERNEL);
+ hv_caps = kmalloc_obj(*hv_caps, GFP_KERNEL);
if (!hv_caps)
return -ENOMEM;
/*
diff --git a/arch/powerpc/platforms/pseries/vio.c b/arch/powerpc/platforms/pseries/vio.c
index 18cffac5468f..4cb192cd5aa9 100644
--- a/arch/powerpc/platforms/pseries/vio.c
+++ b/arch/powerpc/platforms/pseries/vio.c
@@ -744,8 +744,7 @@ static int vio_cmo_bus_probe(struct vio_dev *viodev)
viodev->cmo.desired = VIO_CMO_MIN_ENT;
size = VIO_CMO_MIN_ENT;
- dev_ent = kmalloc(sizeof(struct vio_cmo_dev_entry),
- GFP_KERNEL);
+ dev_ent = kmalloc_obj(struct vio_cmo_dev_entry, GFP_KERNEL);
if (!dev_ent)
return -ENOMEM;
@@ -1165,7 +1164,7 @@ static struct iommu_table *vio_build_iommu_table(struct vio_dev *dev)
if (!dma_window)
return NULL;
- tbl = kzalloc(sizeof(*tbl), GFP_KERNEL);
+ tbl = kzalloc_obj(*tbl, GFP_KERNEL);
if (tbl == NULL)
return NULL;
@@ -1376,7 +1375,7 @@ struct vio_dev *vio_register_device_node(struct device_node *of_node)
}
/* allocate a vio_dev for this node */
- viodev = kzalloc(sizeof(struct vio_dev), GFP_KERNEL);
+ viodev = kzalloc_obj(struct vio_dev, GFP_KERNEL);
if (viodev == NULL) {
pr_warn("%s: allocation failure for VIO device.\n", __func__);
return NULL;
diff --git a/arch/powerpc/sysdev/ehv_pic.c b/arch/powerpc/sysdev/ehv_pic.c
index b6f9774038e1..c4c61216b96a 100644
--- a/arch/powerpc/sysdev/ehv_pic.c
+++ b/arch/powerpc/sysdev/ehv_pic.c
@@ -263,7 +263,7 @@ void __init ehv_pic_init(void)
return;
}
- ehv_pic = kzalloc(sizeof(struct ehv_pic), GFP_KERNEL);
+ ehv_pic = kzalloc_obj(struct ehv_pic, GFP_KERNEL);
if (!ehv_pic) {
of_node_put(np);
return;
diff --git a/arch/powerpc/sysdev/fsl_gtm.c b/arch/powerpc/sysdev/fsl_gtm.c
index 3dabc9621810..fabf39586eba 100644
--- a/arch/powerpc/sysdev/fsl_gtm.c
+++ b/arch/powerpc/sysdev/fsl_gtm.c
@@ -382,7 +382,7 @@ static int __init fsl_gtm_init(void)
const u32 *clock;
int size;
- gtm = kzalloc(sizeof(*gtm), GFP_KERNEL);
+ gtm = kzalloc_obj(*gtm, GFP_KERNEL);
if (!gtm) {
pr_err("%pOF: unable to allocate memory\n",
np);
diff --git a/arch/powerpc/sysdev/fsl_lbc.c b/arch/powerpc/sysdev/fsl_lbc.c
index 7ed07232a69a..01ddc6ac8277 100644
--- a/arch/powerpc/sysdev/fsl_lbc.c
+++ b/arch/powerpc/sysdev/fsl_lbc.c
@@ -283,7 +283,7 @@ static int fsl_lbc_ctrl_probe(struct platform_device *dev)
return -EFAULT;
}
- fsl_lbc_ctrl_dev = kzalloc(sizeof(*fsl_lbc_ctrl_dev), GFP_KERNEL);
+ fsl_lbc_ctrl_dev = kzalloc_obj(*fsl_lbc_ctrl_dev, GFP_KERNEL);
if (!fsl_lbc_ctrl_dev)
return -ENOMEM;
@@ -363,7 +363,7 @@ static int fsl_lbc_syscore_suspend(void *data)
if (!lbc)
goto out;
- ctrl->saved_regs = kmalloc(sizeof(struct fsl_lbc_regs), GFP_KERNEL);
+ ctrl->saved_regs = kmalloc_obj(struct fsl_lbc_regs, GFP_KERNEL);
if (!ctrl->saved_regs)
return -ENOMEM;
diff --git a/arch/powerpc/sysdev/fsl_mpic_timer_wakeup.c b/arch/powerpc/sysdev/fsl_mpic_timer_wakeup.c
index 06d9101a5d49..43d6fba2bd42 100644
--- a/arch/powerpc/sysdev/fsl_mpic_timer_wakeup.c
+++ b/arch/powerpc/sysdev/fsl_mpic_timer_wakeup.c
@@ -111,7 +111,7 @@ static int __init fsl_wakeup_sys_init(void)
struct device *dev_root;
int ret = -EINVAL;
- fsl_wakeup = kzalloc(sizeof(struct fsl_mpic_timer_wakeup), GFP_KERNEL);
+ fsl_wakeup = kzalloc_obj(struct fsl_mpic_timer_wakeup, GFP_KERNEL);
if (!fsl_wakeup)
return -ENOMEM;
diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c
index 2a007bfb038d..525ea894c14a 100644
--- a/arch/powerpc/sysdev/fsl_msi.c
+++ b/arch/powerpc/sysdev/fsl_msi.c
@@ -361,7 +361,7 @@ static int fsl_msi_setup_hwirq(struct fsl_msi *msi, struct platform_device *dev,
return 0;
}
- cascade_data = kzalloc(sizeof(struct fsl_msi_cascade_data), GFP_KERNEL);
+ cascade_data = kzalloc_obj(struct fsl_msi_cascade_data, GFP_KERNEL);
if (!cascade_data) {
dev_err(&dev->dev, "No memory for MSI cascade data\n");
return -ENOMEM;
@@ -405,7 +405,7 @@ static int fsl_of_msi_probe(struct platform_device *dev)
printk(KERN_DEBUG "Setting up Freescale MSI support\n");
- msi = kzalloc(sizeof(struct fsl_msi), GFP_KERNEL);
+ msi = kzalloc_obj(struct fsl_msi, GFP_KERNEL);
if (!msi) {
dev_err(&dev->dev, "No memory for MSI structure\n");
return -ENOMEM;
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
index 4e501654cb41..0952b5ff8a16 100644
--- a/arch/powerpc/sysdev/fsl_pci.c
+++ b/arch/powerpc/sysdev/fsl_pci.c
@@ -767,7 +767,7 @@ static int __init mpc83xx_pcie_setup(struct pci_controller *hose,
u32 cfg_bar;
int ret = -ENOMEM;
- pcie = kzalloc(sizeof(*pcie), GFP_KERNEL);
+ pcie = kzalloc_obj(*pcie, GFP_KERNEL);
if (!pcie)
return ret;
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c
index f9b214b299e7..249b876daaee 100644
--- a/arch/powerpc/sysdev/fsl_rio.c
+++ b/arch/powerpc/sysdev/fsl_rio.c
@@ -470,7 +470,7 @@ static int fsl_rio_setup(struct platform_device *dev)
goto err_rio_regs;
}
- ops = kzalloc(sizeof(struct rio_ops), GFP_KERNEL);
+ ops = kzalloc_obj(struct rio_ops, GFP_KERNEL);
if (!ops) {
rc = -ENOMEM;
goto err_ops;
@@ -517,7 +517,7 @@ static int fsl_rio_setup(struct platform_device *dev)
rc = -ENODEV;
goto err_dbell;
}
- dbell = kzalloc(sizeof(struct fsl_rio_dbell), GFP_KERNEL);
+ dbell = kzalloc_obj(struct fsl_rio_dbell, GFP_KERNEL);
if (!(dbell)) {
dev_err(&dev->dev, "Can't alloc memory for 'fsl_rio_dbell'\n");
rc = -ENOMEM;
@@ -543,7 +543,7 @@ static int fsl_rio_setup(struct platform_device *dev)
rc = -ENODEV;
goto err_pw;
}
- pw = kzalloc(sizeof(struct fsl_rio_pw), GFP_KERNEL);
+ pw = kzalloc_obj(struct fsl_rio_pw, GFP_KERNEL);
if (!(pw)) {
dev_err(&dev->dev, "Can't alloc memory for 'fsl_rio_pw'\n");
rc = -ENOMEM;
@@ -580,7 +580,7 @@ static int fsl_rio_setup(struct platform_device *dev)
dev_info(&dev->dev, "%pOF: LAW %pR\n",
np, &res);
- port = kzalloc(sizeof(struct rio_mport), GFP_KERNEL);
+ port = kzalloc_obj(struct rio_mport, GFP_KERNEL);
if (!port)
continue;
@@ -593,7 +593,7 @@ static int fsl_rio_setup(struct platform_device *dev)
i = *port_index - 1;
port->index = (unsigned char)i;
- priv = kzalloc(sizeof(struct rio_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct rio_priv, GFP_KERNEL);
if (!priv) {
dev_err(&dev->dev, "Can't alloc memory for 'priv'\n");
kfree(port);
diff --git a/arch/powerpc/sysdev/fsl_rmu.c b/arch/powerpc/sysdev/fsl_rmu.c
index f956591cb64e..c0e358cf7822 100644
--- a/arch/powerpc/sysdev/fsl_rmu.c
+++ b/arch/powerpc/sysdev/fsl_rmu.c
@@ -1079,7 +1079,7 @@ int fsl_rio_setup_rmu(struct rio_mport *mport, struct device_node *node)
return -EINVAL;
}
- rmu = kzalloc(sizeof(struct fsl_rmu), GFP_KERNEL);
+ rmu = kzalloc_obj(struct fsl_rmu, GFP_KERNEL);
if (!rmu)
return -ENOMEM;
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
index 290ba8427239..2351604cc24a 100644
--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -707,7 +707,7 @@ struct ipic * __init ipic_init(struct device_node *node, unsigned int flags)
if (ret)
return NULL;
- ipic = kzalloc(sizeof(*ipic), GFP_KERNEL);
+ ipic = kzalloc_obj(*ipic, GFP_KERNEL);
if (ipic == NULL)
return NULL;
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 67e51998d1ae..cb4cdd853cc8 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -547,7 +547,7 @@ static void __init mpic_scan_ht_pics(struct mpic *mpic)
printk(KERN_INFO "mpic: Setting up HT PICs workarounds for U3/U4\n");
/* Allocate fixups array */
- mpic->fixups = kcalloc(128, sizeof(*mpic->fixups), GFP_KERNEL);
+ mpic->fixups = kzalloc_objs(*mpic->fixups, 128, GFP_KERNEL);
BUG_ON(mpic->fixups == NULL);
/* Init spinlock */
@@ -1273,7 +1273,7 @@ struct mpic * __init mpic_alloc(struct device_node *node,
mpic_tm_chip.flags |= IRQCHIP_SKIP_SET_WAKE;
}
- mpic = kzalloc(sizeof(struct mpic), GFP_KERNEL);
+ mpic = kzalloc_obj(struct mpic, GFP_KERNEL);
if (mpic == NULL)
goto err_of_node_put;
@@ -1639,9 +1639,8 @@ void __init mpic_init(struct mpic *mpic)
#ifdef CONFIG_PM
/* allocate memory to save mpic state */
- mpic->save_data = kmalloc_array(mpic->num_sources,
- sizeof(*mpic->save_data),
- GFP_KERNEL);
+ mpic->save_data = kmalloc_objs(*mpic->save_data, mpic->num_sources,
+ GFP_KERNEL);
BUG_ON(mpic->save_data == NULL);
#endif
diff --git a/arch/powerpc/sysdev/mpic_msgr.c b/arch/powerpc/sysdev/mpic_msgr.c
index 7b449cc51aef..8b1c02f5b1b3 100644
--- a/arch/powerpc/sysdev/mpic_msgr.c
+++ b/arch/powerpc/sysdev/mpic_msgr.c
@@ -188,8 +188,8 @@ static int mpic_msgr_probe(struct platform_device *dev)
dev_info(&dev->dev, "Found %d message registers\n",
mpic_msgr_count);
- mpic_msgrs = kcalloc(mpic_msgr_count, sizeof(*mpic_msgrs),
- GFP_KERNEL);
+ mpic_msgrs = kzalloc_objs(*mpic_msgrs, mpic_msgr_count,
+ GFP_KERNEL);
if (!mpic_msgrs) {
dev_err(&dev->dev,
"No memory for message register blocks\n");
@@ -227,7 +227,7 @@ static int mpic_msgr_probe(struct platform_device *dev)
struct mpic_msgr *msgr;
unsigned int reg_number;
- msgr = kzalloc(sizeof(struct mpic_msgr), GFP_KERNEL);
+ msgr = kzalloc_obj(struct mpic_msgr, GFP_KERNEL);
if (!msgr) {
dev_err(&dev->dev, "No memory for message register\n");
return -ENOMEM;
diff --git a/arch/powerpc/sysdev/mpic_timer.c b/arch/powerpc/sysdev/mpic_timer.c
index 60f5b3934b51..7b237b6f7151 100644
--- a/arch/powerpc/sysdev/mpic_timer.c
+++ b/arch/powerpc/sysdev/mpic_timer.c
@@ -464,7 +464,7 @@ static void __init timer_group_init(struct device_node *np)
unsigned int i = 0;
int ret;
- priv = kzalloc(sizeof(struct timer_group_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct timer_group_priv, GFP_KERNEL);
if (!priv) {
pr_err("%pOF: cannot allocate memory for group.\n", np);
return;
diff --git a/arch/powerpc/sysdev/of_rtc.c b/arch/powerpc/sysdev/of_rtc.c
index 2211937d3788..6c2ba4c44b11 100644
--- a/arch/powerpc/sysdev/of_rtc.c
+++ b/arch/powerpc/sysdev/of_rtc.c
@@ -33,7 +33,7 @@ void __init of_instantiate_rtc(void)
of_rtc_table[i].compatible) {
struct resource *res;
- res = kmalloc(sizeof(*res), GFP_KERNEL);
+ res = kmalloc_obj(*res, GFP_KERNEL);
if (!res) {
printk(KERN_ERR "OF RTC: Out of memory "
"allocating resource structure for %pOF\n",
diff --git a/arch/powerpc/sysdev/xics/ics-native.c b/arch/powerpc/sysdev/xics/ics-native.c
index 112c8a1e8159..50634a0ae478 100644
--- a/arch/powerpc/sysdev/xics/ics-native.c
+++ b/arch/powerpc/sysdev/xics/ics-native.c
@@ -186,7 +186,7 @@ static int __init ics_native_add_one(struct device_node *np)
u32 ranges[2];
int rc, count;
- ics = kzalloc(sizeof(struct ics_native), GFP_KERNEL);
+ ics = kzalloc_obj(struct ics_native, GFP_KERNEL);
if (!ics)
return -ENOMEM;
ics->node = of_node_get(np);
diff --git a/arch/powerpc/sysdev/xive/common.c b/arch/powerpc/sysdev/xive/common.c
index 8d0123b0ae84..f0fbee162f47 100644
--- a/arch/powerpc/sysdev/xive/common.c
+++ b/arch/powerpc/sysdev/xive/common.c
@@ -1016,7 +1016,7 @@ static struct xive_irq_data *xive_irq_alloc_data(unsigned int virq, irq_hw_numbe
struct xive_irq_data *xd;
int rc;
- xd = kzalloc(sizeof(struct xive_irq_data), GFP_KERNEL);
+ xd = kzalloc_obj(struct xive_irq_data, GFP_KERNEL);
if (!xd)
return ERR_PTR(-ENOMEM);
rc = xive_ops->populate_irq_data(hw, xd);
@@ -1144,7 +1144,8 @@ static int __init xive_init_ipis(void)
if (!ipi_domain)
goto out_free_fwnode;
- xive_ipis = kcalloc(nr_node_ids, sizeof(*xive_ipis), GFP_KERNEL | __GFP_NOFAIL);
+ xive_ipis = kzalloc_objs(*xive_ipis, nr_node_ids,
+ GFP_KERNEL | __GFP_NOFAIL);
if (!xive_ipis)
goto out_free_domain;
diff --git a/arch/powerpc/sysdev/xive/spapr.c b/arch/powerpc/sysdev/xive/spapr.c
index 5aedbe3e8e6a..dca293f07303 100644
--- a/arch/powerpc/sysdev/xive/spapr.c
+++ b/arch/powerpc/sysdev/xive/spapr.c
@@ -52,7 +52,7 @@ static int __init xive_irq_bitmap_add(int base, int count)
{
struct xive_irq_bitmap *xibm;
- xibm = kzalloc(sizeof(*xibm), GFP_KERNEL);
+ xibm = kzalloc_obj(*xibm, GFP_KERNEL);
if (!xibm)
return -ENOMEM;
diff --git a/arch/riscv/kernel/hibernate.c b/arch/riscv/kernel/hibernate.c
index 671b686c0158..0e31c02cb554 100644
--- a/arch/riscv/kernel/hibernate.c
+++ b/arch/riscv/kernel/hibernate.c
@@ -415,7 +415,7 @@ int hibernate_resume_nonboot_cpu_disable(void)
static int __init riscv_hibernate_init(void)
{
- hibernate_cpu_context = kzalloc(sizeof(*hibernate_cpu_context), GFP_KERNEL);
+ hibernate_cpu_context = kzalloc_obj(*hibernate_cpu_context, GFP_KERNEL);
if (WARN_ON(!hibernate_cpu_context))
return -ENOMEM;
diff --git a/arch/riscv/kernel/machine_kexec_file.c b/arch/riscv/kernel/machine_kexec_file.c
index dd9d92a96517..a780d3e0955c 100644
--- a/arch/riscv/kernel/machine_kexec_file.c
+++ b/arch/riscv/kernel/machine_kexec_file.c
@@ -64,7 +64,7 @@ static int prepare_elf_headers(void **addr, unsigned long *sz)
nr_ranges = 1; /* For exclusion of crashkernel region */
walk_system_ram_res(0, -1, &nr_ranges, get_nr_ram_ranges_callback);
- cmem = kmalloc(struct_size(cmem, ranges, nr_ranges), GFP_KERNEL);
+ cmem = kmalloc_flex(*cmem, ranges, nr_ranges, GFP_KERNEL);
if (!cmem)
return -ENOMEM;
diff --git a/arch/riscv/kernel/module.c b/arch/riscv/kernel/module.c
index 7f6147c18033..addc7dac2424 100644
--- a/arch/riscv/kernel/module.c
+++ b/arch/riscv/kernel/module.c
@@ -663,7 +663,7 @@ static int add_relocation_to_accumulate(struct module *me, int type,
struct used_bucket *bucket;
unsigned long hash;
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -697,7 +697,7 @@ static int add_relocation_to_accumulate(struct module *me, int type,
* relocation_entry.
*/
if (!found) {
- rel_head = kmalloc(sizeof(*rel_head), GFP_KERNEL);
+ rel_head = kmalloc_obj(*rel_head, GFP_KERNEL);
if (!rel_head) {
kfree(entry);
@@ -709,7 +709,7 @@ static int add_relocation_to_accumulate(struct module *me, int type,
INIT_HLIST_NODE(&rel_head->node);
if (!current_head->first) {
bucket =
- kmalloc(sizeof(struct used_bucket), GFP_KERNEL);
+ kmalloc_obj(struct used_bucket, GFP_KERNEL);
if (!bucket) {
kfree(entry);
@@ -753,9 +753,8 @@ initialize_relocation_hashtable(unsigned int num_relocations,
hashtable_size <<= should_double_size;
/* Number of relocations may be large, so kvmalloc it */
- *relocation_hashtable = kvmalloc_array(hashtable_size,
- sizeof(**relocation_hashtable),
- GFP_KERNEL);
+ *relocation_hashtable = kvmalloc_objs(**relocation_hashtable,
+ hashtable_size, GFP_KERNEL);
if (!*relocation_hashtable)
return 0;
diff --git a/arch/riscv/kernel/tests/kprobes/test-kprobes.c b/arch/riscv/kernel/tests/kprobes/test-kprobes.c
index 664535ca0a98..c0526c0c7527 100644
--- a/arch/riscv/kernel/tests/kprobes/test-kprobes.c
+++ b/arch/riscv/kernel/tests/kprobes/test-kprobes.c
@@ -20,7 +20,7 @@ static void test_kprobe_riscv(struct kunit *test)
while (test_kprobes_addresses[num_kprobe])
num_kprobe++;
- kp = kcalloc(num_kprobe, sizeof(*kp), GFP_KERNEL);
+ kp = kzalloc_objs(*kp, num_kprobe, GFP_KERNEL);
KUNIT_EXPECT_TRUE(test, kp);
if (!kp)
return;
diff --git a/arch/riscv/kernel/unaligned_access_speed.c b/arch/riscv/kernel/unaligned_access_speed.c
index 70b5e6927620..63ed6e6b24eb 100644
--- a/arch/riscv/kernel/unaligned_access_speed.c
+++ b/arch/riscv/kernel/unaligned_access_speed.c
@@ -139,7 +139,7 @@ static void __init check_unaligned_access_speed_all_cpus(void)
{
unsigned int cpu;
unsigned int cpu_count = num_possible_cpus();
- struct page **bufs = kcalloc(cpu_count, sizeof(*bufs), GFP_KERNEL);
+ struct page **bufs = kzalloc_objs(*bufs, cpu_count, GFP_KERNEL);
if (!bufs) {
pr_warn("Allocation failure, not measuring misaligned performance\n");
diff --git a/arch/riscv/kernel/vdso.c b/arch/riscv/kernel/vdso.c
index 43f70198ac3c..7e3749131c59 100644
--- a/arch/riscv/kernel/vdso.c
+++ b/arch/riscv/kernel/vdso.c
@@ -55,9 +55,8 @@ static void __init __vdso_init(struct __vdso_info *vdso_info)
vdso_info->vdso_code_start) >>
PAGE_SHIFT;
- vdso_pagelist = kcalloc(vdso_info->vdso_pages,
- sizeof(struct page *),
- GFP_KERNEL);
+ vdso_pagelist = kzalloc_objs(struct page *, vdso_info->vdso_pages,
+ GFP_KERNEL);
if (vdso_pagelist == NULL)
panic("vDSO kcalloc failed!\n");
diff --git a/arch/riscv/kvm/aia_aplic.c b/arch/riscv/kvm/aia_aplic.c
index f59d1c0c8c43..25d9c2a3a85a 100644
--- a/arch/riscv/kvm/aia_aplic.c
+++ b/arch/riscv/kvm/aia_aplic.c
@@ -580,7 +580,7 @@ int kvm_riscv_aia_aplic_init(struct kvm *kvm)
return 0;
/* Allocate APLIC global state */
- aplic = kzalloc(sizeof(*aplic), GFP_KERNEL);
+ aplic = kzalloc_obj(*aplic, GFP_KERNEL);
if (!aplic)
return -ENOMEM;
kvm->arch.aia.aplic_state = aplic;
@@ -588,8 +588,7 @@ int kvm_riscv_aia_aplic_init(struct kvm *kvm)
/* Setup APLIC IRQs */
aplic->nr_irqs = kvm->arch.aia.nr_sources + 1;
aplic->nr_words = DIV_ROUND_UP(aplic->nr_irqs, 32);
- aplic->irqs = kcalloc(aplic->nr_irqs,
- sizeof(*aplic->irqs), GFP_KERNEL);
+ aplic->irqs = kzalloc_objs(*aplic->irqs, aplic->nr_irqs, GFP_KERNEL);
if (!aplic->irqs) {
ret = -ENOMEM;
goto fail_free_aplic;
diff --git a/arch/riscv/kvm/aia_imsic.c b/arch/riscv/kvm/aia_imsic.c
index 60da5fa155a6..aafa19629524 100644
--- a/arch/riscv/kvm/aia_imsic.c
+++ b/arch/riscv/kvm/aia_imsic.c
@@ -1095,7 +1095,7 @@ int kvm_riscv_vcpu_aia_imsic_init(struct kvm_vcpu *vcpu)
return -EINVAL;
/* Allocate IMSIC context */
- imsic = kzalloc(sizeof(*imsic), GFP_KERNEL);
+ imsic = kzalloc_obj(*imsic, GFP_KERNEL);
if (!imsic)
return -ENOMEM;
vcpu->arch.aia_context.imsic_state = imsic;
diff --git a/arch/riscv/kvm/vcpu_sbi_fwft.c b/arch/riscv/kvm/vcpu_sbi_fwft.c
index 62cc9c3d5759..14cea431b863 100644
--- a/arch/riscv/kvm/vcpu_sbi_fwft.c
+++ b/arch/riscv/kvm/vcpu_sbi_fwft.c
@@ -352,8 +352,8 @@ static int kvm_sbi_ext_fwft_init(struct kvm_vcpu *vcpu)
struct kvm_sbi_fwft_config *conf;
int i;
- fwft->configs = kcalloc(ARRAY_SIZE(features), sizeof(struct kvm_sbi_fwft_config),
- GFP_KERNEL);
+ fwft->configs = kzalloc_objs(struct kvm_sbi_fwft_config,
+ ARRAY_SIZE(features), GFP_KERNEL);
if (!fwft->configs)
return -ENOMEM;
diff --git a/arch/riscv/kvm/vm.c b/arch/riscv/kvm/vm.c
index 66d91ae6e9b2..ca3da58dc968 100644
--- a/arch/riscv/kvm/vm.c
+++ b/arch/riscv/kvm/vm.c
@@ -95,7 +95,7 @@ int kvm_riscv_setup_default_irq_routing(struct kvm *kvm, u32 lines)
struct kvm_irq_routing_entry *ents;
int i, rc;
- ents = kcalloc(lines, sizeof(*ents), GFP_KERNEL);
+ ents = kzalloc_objs(*ents, lines, GFP_KERNEL);
if (!ents)
return -ENOMEM;
diff --git a/arch/riscv/net/bpf_jit_comp64.c b/arch/riscv/net/bpf_jit_comp64.c
index f065b45e8d8f..4d1c2639a64f 100644
--- a/arch/riscv/net/bpf_jit_comp64.c
+++ b/arch/riscv/net/bpf_jit_comp64.c
@@ -1195,7 +1195,7 @@ static int __arch_prepare_bpf_trampoline(struct bpf_tramp_image *im,
}
if (fmod_ret->nr_links) {
- branches_off = kcalloc(fmod_ret->nr_links, sizeof(int), GFP_KERNEL);
+ branches_off = kzalloc_objs(int, fmod_ret->nr_links, GFP_KERNEL);
if (!branches_off)
return -ENOMEM;
diff --git a/arch/riscv/net/bpf_jit_core.c b/arch/riscv/net/bpf_jit_core.c
index f6ca5cfa6b2f..af48c94e300a 100644
--- a/arch/riscv/net/bpf_jit_core.c
+++ b/arch/riscv/net/bpf_jit_core.c
@@ -63,7 +63,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
jit_data = prog->aux->jit_data;
if (!jit_data) {
- jit_data = kzalloc(sizeof(*jit_data), GFP_KERNEL);
+ jit_data = kzalloc_obj(*jit_data, GFP_KERNEL);
if (!jit_data) {
prog = orig_prog;
goto out;
@@ -82,7 +82,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
ctx->arena_vm_start = bpf_arena_get_kern_vm_start(prog->aux->arena);
ctx->user_vm_start = bpf_arena_get_user_vm_start(prog->aux->arena);
ctx->prog = prog;
- ctx->offset = kcalloc(prog->len, sizeof(int), GFP_KERNEL);
+ ctx->offset = kzalloc_objs(int, prog->len, GFP_KERNEL);
if (!ctx->offset) {
prog = orig_prog;
goto out_offset;
diff --git a/arch/s390/appldata/appldata_base.c b/arch/s390/appldata/appldata_base.c
index feb43db63f30..0d6725fd881e 100644
--- a/arch/s390/appldata/appldata_base.c
+++ b/arch/s390/appldata/appldata_base.c
@@ -140,7 +140,7 @@ int appldata_diag(char record_nr, u16 function, unsigned long buffer,
struct appldata_product_id *id;
int rc;
- parm_list = kmalloc(sizeof(*parm_list), GFP_KERNEL);
+ parm_list = kmalloc_obj(*parm_list, GFP_KERNEL);
id = kmemdup(&appldata_id, sizeof(appldata_id), GFP_KERNEL);
rc = -ENOMEM;
if (parm_list && id) {
@@ -350,7 +350,7 @@ int appldata_register_ops(struct appldata_ops *ops)
if (ops->size > APPLDATA_MAX_REC_SIZE)
return -EINVAL;
- ops->ctl_table = kcalloc(1, sizeof(struct ctl_table), GFP_KERNEL);
+ ops->ctl_table = kzalloc_objs(struct ctl_table, 1, GFP_KERNEL);
if (!ops->ctl_table)
return -ENOMEM;
diff --git a/arch/s390/appldata/appldata_mem.c b/arch/s390/appldata/appldata_mem.c
index fc608f9b79ab..e24369ec3134 100644
--- a/arch/s390/appldata/appldata_mem.c
+++ b/arch/s390/appldata/appldata_mem.c
@@ -130,7 +130,7 @@ static int __init appldata_mem_init(void)
{
int ret;
- ops.data = kzalloc(sizeof(struct appldata_mem_data), GFP_KERNEL);
+ ops.data = kzalloc_obj(struct appldata_mem_data, GFP_KERNEL);
if (!ops.data)
return -ENOMEM;
diff --git a/arch/s390/appldata/appldata_net_sum.c b/arch/s390/appldata/appldata_net_sum.c
index 59c282ca002f..3a0574f33664 100644
--- a/arch/s390/appldata/appldata_net_sum.c
+++ b/arch/s390/appldata/appldata_net_sum.c
@@ -132,7 +132,7 @@ static int __init appldata_net_init(void)
{
int ret;
- ops.data = kzalloc(sizeof(struct appldata_net_sum_data), GFP_KERNEL);
+ ops.data = kzalloc_obj(struct appldata_net_sum_data, GFP_KERNEL);
if (!ops.data)
return -ENOMEM;
diff --git a/arch/s390/hypfs/hypfs_dbfs.c b/arch/s390/hypfs/hypfs_dbfs.c
index 41a0d2066fa0..8002bdc692d6 100644
--- a/arch/s390/hypfs/hypfs_dbfs.c
+++ b/arch/s390/hypfs/hypfs_dbfs.c
@@ -16,7 +16,7 @@ static struct hypfs_dbfs_data *hypfs_dbfs_data_alloc(struct hypfs_dbfs_file *f)
{
struct hypfs_dbfs_data *data;
- data = kmalloc(sizeof(*data), GFP_KERNEL);
+ data = kmalloc_obj(*data, GFP_KERNEL);
if (!data)
return NULL;
data->dbfs_file = f;
diff --git a/arch/s390/hypfs/hypfs_diag0c.c b/arch/s390/hypfs/hypfs_diag0c.c
index 61220e717af0..5e27dc7a7569 100644
--- a/arch/s390/hypfs/hypfs_diag0c.c
+++ b/arch/s390/hypfs/hypfs_diag0c.c
@@ -35,13 +35,12 @@ static void *diag0c_store(unsigned int *count)
cpus_read_lock();
cpu_count = num_online_cpus();
- cpu_vec = kmalloc_array(num_possible_cpus(), sizeof(*cpu_vec),
- GFP_KERNEL);
+ cpu_vec = kmalloc_objs(*cpu_vec, num_possible_cpus(), GFP_KERNEL);
if (!cpu_vec)
goto fail_unlock_cpus;
/* Note: Diag 0c needs 8 byte alignment and real storage */
- diag0c_data = kzalloc(struct_size(diag0c_data, entry, cpu_count),
- GFP_KERNEL | GFP_DMA);
+ diag0c_data = kzalloc_flex(*diag0c_data, entry, cpu_count,
+ GFP_KERNEL | GFP_DMA);
if (!diag0c_data)
goto fail_kfree_cpu_vec;
i = 0;
diff --git a/arch/s390/hypfs/hypfs_sprp.c b/arch/s390/hypfs/hypfs_sprp.c
index a72576221cab..2e8847048dc1 100644
--- a/arch/s390/hypfs/hypfs_sprp.c
+++ b/arch/s390/hypfs/hypfs_sprp.c
@@ -74,7 +74,7 @@ static int __hypfs_sprp_ioctl(void __user *user_area)
rc = -ENOMEM;
data = (void *)get_zeroed_page(GFP_KERNEL);
- diag304 = kzalloc(sizeof(*diag304), GFP_KERNEL);
+ diag304 = kzalloc_obj(*diag304, GFP_KERNEL);
if (!data || !diag304)
goto out;
diff --git a/arch/s390/hypfs/inode.c b/arch/s390/hypfs/inode.c
index 3a47c2e24b6e..0f4a9113ec1a 100644
--- a/arch/s390/hypfs/inode.c
+++ b/arch/s390/hypfs/inode.c
@@ -292,7 +292,7 @@ static int hypfs_init_fs_context(struct fs_context *fc)
{
struct hypfs_sb_info *sbi;
- sbi = kzalloc(sizeof(struct hypfs_sb_info), GFP_KERNEL);
+ sbi = kzalloc_obj(struct hypfs_sb_info, GFP_KERNEL);
if (!sbi)
return -ENOMEM;
diff --git a/arch/s390/include/asm/idals.h b/arch/s390/include/asm/idals.h
index e5000ee6cdc6..94de4ddf503f 100644
--- a/arch/s390/include/asm/idals.h
+++ b/arch/s390/include/asm/idals.h
@@ -94,7 +94,7 @@ static inline int set_normalized_cda(struct ccw1 *ccw, void *vaddr)
return -EINVAL;
nridaws = idal_nr_words(vaddr, ccw->count);
if (nridaws > 0) {
- idal = kcalloc(nridaws, sizeof(*idal), GFP_ATOMIC | GFP_DMA);
+ idal = kzalloc_objs(*idal, nridaws, GFP_ATOMIC | GFP_DMA);
if (!idal)
return -ENOMEM;
idal_create_words(idal, vaddr, ccw->count);
@@ -137,7 +137,7 @@ static inline struct idal_buffer *idal_buffer_alloc(size_t size, int page_order)
nr_ptrs = (size + IDA_BLOCK_SIZE - 1) >> IDA_SIZE_SHIFT;
nr_chunks = (PAGE_SIZE << page_order) >> IDA_SIZE_SHIFT;
- ib = kmalloc(struct_size(ib, data, nr_ptrs), GFP_DMA | GFP_KERNEL);
+ ib = kmalloc_flex(*ib, data, nr_ptrs, GFP_DMA | GFP_KERNEL);
if (!ib)
return ERR_PTR(-ENOMEM);
ib->size = size;
@@ -195,7 +195,7 @@ static inline struct idal_buffer **idal_buffer_array_alloc(size_t size, int page
int i;
count = (size + CCW_MAX_BYTE_COUNT - 1) / CCW_MAX_BYTE_COUNT;
- ibs = kmalloc_array(count + 1, sizeof(*ibs), GFP_KERNEL);
+ ibs = kmalloc_objs(*ibs, count + 1, GFP_KERNEL);
for (i = 0; i < count; i++) {
/* Determine size for the current idal buffer */
ib_size = min(size, CCW_MAX_BYTE_COUNT);
diff --git a/arch/s390/kernel/cert_store.c b/arch/s390/kernel/cert_store.c
index c217a5e64094..8e3964c33ebb 100644
--- a/arch/s390/kernel/cert_store.c
+++ b/arch/s390/kernel/cert_store.c
@@ -322,7 +322,7 @@ static int invalidate_keyring_keys(struct key *keyring)
keyring_payload_len = key_type_keyring.read(keyring, NULL, 0);
num_keys = keyring_payload_len / sizeof(key_serial_t);
- key_array = kcalloc(num_keys, sizeof(key_serial_t), GFP_KERNEL);
+ key_array = kzalloc_objs(key_serial_t, num_keys, GFP_KERNEL);
if (!key_array)
return -ENOMEM;
diff --git a/arch/s390/kernel/debug.c b/arch/s390/kernel/debug.c
index e722243841f8..a917b4c899ef 100644
--- a/arch/s390/kernel/debug.c
+++ b/arch/s390/kernel/debug.c
@@ -181,14 +181,13 @@ static debug_entry_t ***debug_areas_alloc(int pages_per_area, int nr_areas)
debug_entry_t ***areas;
int i, j;
- areas = kmalloc_array(nr_areas, sizeof(debug_entry_t **), GFP_KERNEL);
+ areas = kmalloc_objs(debug_entry_t **, nr_areas, GFP_KERNEL);
if (!areas)
goto fail_malloc_areas;
for (i = 0; i < nr_areas; i++) {
/* GFP_NOWARN to avoid user triggerable WARN, we handle fails */
- areas[i] = kmalloc_array(pages_per_area,
- sizeof(debug_entry_t *),
- GFP_KERNEL | __GFP_NOWARN);
+ areas[i] = kmalloc_objs(debug_entry_t *, pages_per_area,
+ GFP_KERNEL | __GFP_NOWARN);
if (!areas[i])
goto fail_malloc_areas2;
for (j = 0; j < pages_per_area; j++) {
@@ -225,13 +224,13 @@ static debug_info_t *debug_info_alloc(const char *name, int pages_per_area,
debug_info_t *rc;
/* alloc everything */
- rc = kmalloc(sizeof(debug_info_t), GFP_KERNEL);
+ rc = kmalloc_obj(debug_info_t, GFP_KERNEL);
if (!rc)
goto fail_malloc_rc;
- rc->active_entries = kcalloc(nr_areas, sizeof(int), GFP_KERNEL);
+ rc->active_entries = kzalloc_objs(int, nr_areas, GFP_KERNEL);
if (!rc->active_entries)
goto fail_malloc_active_entries;
- rc->active_pages = kcalloc(nr_areas, sizeof(int), GFP_KERNEL);
+ rc->active_pages = kzalloc_objs(int, nr_areas, GFP_KERNEL);
if (!rc->active_pages)
goto fail_malloc_active_pages;
if ((mode == ALL_AREAS) && (pages_per_area != 0)) {
@@ -631,7 +630,7 @@ static file_private_info_t *debug_file_private_alloc(debug_info_t *debug_info,
if (!debug_info_snapshot)
return NULL;
- p_info = kmalloc(sizeof(file_private_info_t), GFP_KERNEL);
+ p_info = kmalloc_obj(file_private_info_t, GFP_KERNEL);
if (!p_info) {
debug_info_free(debug_info_snapshot);
return NULL;
diff --git a/arch/s390/kernel/guarded_storage.c b/arch/s390/kernel/guarded_storage.c
index cf26d7a37425..4d4101f19e3c 100644
--- a/arch/s390/kernel/guarded_storage.c
+++ b/arch/s390/kernel/guarded_storage.c
@@ -24,7 +24,7 @@ static int gs_enable(void)
struct gs_cb *gs_cb;
if (!current->thread.gs_cb) {
- gs_cb = kzalloc(sizeof(*gs_cb), GFP_KERNEL);
+ gs_cb = kzalloc_obj(*gs_cb, GFP_KERNEL);
if (!gs_cb)
return -ENOMEM;
gs_cb->gsd = 25;
@@ -55,7 +55,7 @@ static int gs_set_bc_cb(struct gs_cb __user *u_gs_cb)
gs_cb = current->thread.gs_bc_cb;
if (!gs_cb) {
- gs_cb = kzalloc(sizeof(*gs_cb), GFP_KERNEL);
+ gs_cb = kzalloc_obj(*gs_cb, GFP_KERNEL);
if (!gs_cb)
return -ENOMEM;
current->thread.gs_bc_cb = gs_cb;
diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c
index bdf9c7cb5685..f81723bc8856 100644
--- a/arch/s390/kernel/irq.c
+++ b/arch/s390/kernel/irq.c
@@ -312,7 +312,7 @@ int register_external_irq(u16 code, ext_int_handler_t handler)
unsigned long flags;
int index;
- p = kmalloc(sizeof(*p), GFP_ATOMIC);
+ p = kmalloc_obj(*p, GFP_ATOMIC);
if (!p)
return -ENOMEM;
p->code = code;
diff --git a/arch/s390/kernel/os_info.c b/arch/s390/kernel/os_info.c
index 94fa44776d0c..37ab1c671b4d 100644
--- a/arch/s390/kernel/os_info.c
+++ b/arch/s390/kernel/os_info.c
@@ -154,7 +154,7 @@ static void os_info_old_init(void)
goto fail;
if (addr == 0 || addr % PAGE_SIZE)
goto fail;
- os_info_old = kzalloc(sizeof(*os_info_old), GFP_KERNEL);
+ os_info_old = kzalloc_obj(*os_info_old, GFP_KERNEL);
if (!os_info_old)
goto fail;
if (copy_oldmem_kernel(os_info_old, addr, sizeof(*os_info_old)))
diff --git a/arch/s390/kernel/perf_cpum_cf.c b/arch/s390/kernel/perf_cpum_cf.c
index 408ab93112bf..0c4074e717d4 100644
--- a/arch/s390/kernel/perf_cpum_cf.c
+++ b/arch/s390/kernel/perf_cpum_cf.c
@@ -252,7 +252,7 @@ static int cpum_cf_alloc_cpu(int cpu)
cpuhw = p->cpucf;
if (!cpuhw) {
- cpuhw = kzalloc(sizeof(*cpuhw), GFP_KERNEL);
+ cpuhw = kzalloc_obj(*cpuhw, GFP_KERNEL);
if (cpuhw) {
p->cpucf = cpuhw;
refcount_set(&cpuhw->refcnt, 1);
@@ -1616,7 +1616,7 @@ static long cfset_ioctl_start(unsigned long arg, struct file *file)
if (!start.counter_sets)
return -EINVAL; /* No counter set at all? */
- preq = kzalloc(sizeof(*preq), GFP_KERNEL);
+ preq = kzalloc_obj(*preq, GFP_KERNEL);
if (!preq)
return -ENOMEM;
cpumask_clear(&preq->mask);
diff --git a/arch/s390/kernel/perf_cpum_cf_events.c b/arch/s390/kernel/perf_cpum_cf_events.c
index 7ace1f9e4ccf..eb067beb5c51 100644
--- a/arch/s390/kernel/perf_cpum_cf_events.c
+++ b/arch/s390/kernel/perf_cpum_cf_events.c
@@ -976,7 +976,7 @@ static __init struct attribute **merge_attr(struct attribute **a,
j++;
j++;
- new = kmalloc_array(j, sizeof(struct attribute *), GFP_KERNEL);
+ new = kmalloc_objs(struct attribute *, j, GFP_KERNEL);
if (!new)
return NULL;
j = 0;
diff --git a/arch/s390/kernel/perf_cpum_sf.c b/arch/s390/kernel/perf_cpum_sf.c
index e8bd19ac82c7..d0adeabfce0c 100644
--- a/arch/s390/kernel/perf_cpum_sf.c
+++ b/arch/s390/kernel/perf_cpum_sf.c
@@ -1609,7 +1609,7 @@ static void *aux_buffer_setup(struct perf_event *event, void **pages,
}
/* Allocate aux_buffer struct for the event */
- aux = kzalloc(sizeof(struct aux_buffer), GFP_KERNEL);
+ aux = kzalloc_obj(struct aux_buffer, GFP_KERNEL);
if (!aux)
goto no_aux;
sfb = &aux->sfb;
diff --git a/arch/s390/kernel/perf_pai.c b/arch/s390/kernel/perf_pai.c
index 810f5b6c5e01..4c2ce0a2a8e4 100644
--- a/arch/s390/kernel/perf_pai.c
+++ b/arch/s390/kernel/perf_pai.c
@@ -252,7 +252,7 @@ static int pai_alloc_cpu(struct perf_event *event, int cpu)
cpump = mp->mapptr;
if (!cpump) { /* Paicrypt_map allocated? */
rc = -ENOMEM;
- cpump = kzalloc(sizeof(*cpump), GFP_KERNEL);
+ cpump = kzalloc_obj(*cpump, GFP_KERNEL);
if (!cpump)
goto undo;
/* Allocate memory for counter page and counter extraction.
@@ -281,9 +281,9 @@ static int pai_alloc_cpu(struct perf_event *event, int cpu)
cpump->paiext_cb = kzalloc(PAIE1_CB_SZ, GFP_KERNEL);
need_paiext_cb = true;
}
- cpump->save = kvmalloc_array(pai_pmu[idx].num_avail + 1,
- sizeof(struct pai_userdata),
- GFP_KERNEL);
+ cpump->save = kvmalloc_objs(struct pai_userdata,
+ pai_pmu[idx].num_avail + 1,
+ GFP_KERNEL);
if (!cpump->area || !cpump->save ||
(need_paiext_cb && !cpump->paiext_cb)) {
pai_free(mp);
@@ -315,7 +315,7 @@ static int pai_alloc(struct perf_event *event)
struct cpumask *maskptr;
int cpu, rc = -ENOMEM;
- maskptr = kzalloc(sizeof(*maskptr), GFP_KERNEL);
+ maskptr = kzalloc_obj(*maskptr, GFP_KERNEL);
if (!maskptr)
goto out;
@@ -1070,7 +1070,7 @@ static struct attribute * __init attr_event_init_one(int num,
{
struct perf_pmu_events_attr *pa;
- pa = kzalloc(sizeof(*pa), GFP_KERNEL);
+ pa = kzalloc_obj(*pa, GFP_KERNEL);
if (!pa)
return NULL;
@@ -1089,7 +1089,7 @@ static struct attribute ** __init attr_event_init(struct pai_pmu *p)
struct attribute **attrs;
unsigned int i;
- attrs = kmalloc_array(min_attr + 1, sizeof(*attrs), GFP_KERNEL | __GFP_ZERO);
+ attrs = kmalloc_objs(*attrs, min_attr + 1, GFP_KERNEL | __GFP_ZERO);
if (!attrs)
goto out;
for (i = 0; i < min_attr; i++) {
diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c
index ceaa1726e328..3a08f8f6c865 100644
--- a/arch/s390/kernel/ptrace.c
+++ b/arch/s390/kernel/ptrace.c
@@ -749,7 +749,7 @@ static int s390_gs_cb_set(struct task_struct *target,
if (!cpu_has_gs())
return -ENODEV;
if (!target->thread.gs_cb) {
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
}
@@ -800,7 +800,7 @@ static int s390_gs_bc_set(struct task_struct *target,
if (!cpu_has_gs())
return -ENODEV;
if (!data) {
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
target->thread.gs_bc_cb = data;
@@ -861,7 +861,7 @@ static int s390_runtime_instr_set(struct task_struct *target,
return -ENODEV;
if (!target->thread.ri_cb) {
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
}
diff --git a/arch/s390/kernel/runtime_instr.c b/arch/s390/kernel/runtime_instr.c
index 1788a5454b6f..0331ee7af39d 100644
--- a/arch/s390/kernel/runtime_instr.c
+++ b/arch/s390/kernel/runtime_instr.c
@@ -83,7 +83,7 @@ SYSCALL_DEFINE2(s390_runtime_instr, int, command, int, signum)
return -EINVAL;
if (!current->thread.ri_cb) {
- cb = kzalloc(sizeof(*cb), GFP_KERNEL);
+ cb = kzalloc_obj(*cb, GFP_KERNEL);
if (!cb)
return -ENOMEM;
} else {
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
index eb334539444a..615b76a7f2a0 100644
--- a/arch/s390/kernel/smp.c
+++ b/arch/s390/kernel/smp.c
@@ -1145,7 +1145,7 @@ int __ref smp_rescan_cpus(bool early)
struct sclp_core_info *info;
int nr;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
smp_get_core_info(info, 0);
diff --git a/arch/s390/kernel/vdso.c b/arch/s390/kernel/vdso.c
index a27a90a199be..1838a4696747 100644
--- a/arch/s390/kernel/vdso.c
+++ b/arch/s390/kernel/vdso.c
@@ -132,7 +132,7 @@ static struct page ** __init vdso_setup_pages(void *start, void *end)
struct page **pagelist;
int i;
- pagelist = kcalloc(pages + 1, sizeof(struct page *), GFP_KERNEL);
+ pagelist = kzalloc_objs(struct page *, pages + 1, GFP_KERNEL);
if (!pagelist)
panic("%s: Cannot allocate page list for VDSO", __func__);
for (i = 0; i < pages; i++)
diff --git a/arch/s390/kvm/dat.c b/arch/s390/kvm/dat.c
index 129dc55a4a0d..670404d4fa44 100644
--- a/arch/s390/kvm/dat.c
+++ b/arch/s390/kvm/dat.c
@@ -45,7 +45,7 @@ int kvm_s390_mmu_cache_topup(struct kvm_s390_mmu_cache *mc)
mc->pts[mc->n_pts] = o;
}
for ( ; mc->n_rmaps < KVM_S390_MMU_CACHE_N_RMAPS; mc->n_rmaps++) {
- o = kzalloc(sizeof(*mc->rmaps[0]), GFP_KERNEL_ACCOUNT);
+ o = kzalloc_obj(*mc->rmaps[0], GFP_KERNEL_ACCOUNT);
if (!o)
return -ENOMEM;
mc->rmaps[mc->n_rmaps] = o;
diff --git a/arch/s390/kvm/dat.h b/arch/s390/kvm/dat.h
index 8c7ae07dcc28..123e11dcd70d 100644
--- a/arch/s390/kvm/dat.h
+++ b/arch/s390/kvm/dat.h
@@ -572,7 +572,7 @@ static inline struct vsie_rmap *kvm_s390_mmu_cache_alloc_rmap(struct kvm_s390_mm
{
if (mc->n_rmaps)
return mc->rmaps[--mc->n_rmaps];
- return kzalloc(sizeof(struct vsie_rmap), GFP_KVM_S390_MMU_CACHE);
+ return kzalloc_obj(struct vsie_rmap, GFP_KVM_S390_MMU_CACHE);
}
static inline struct crst_table *crste_table_start(union crste *crstep)
@@ -920,7 +920,7 @@ static inline struct kvm_s390_mmu_cache *kvm_s390_new_mmu_cache(void)
{
struct kvm_s390_mmu_cache *mc __free(kvm_s390_mmu_cache) = NULL;
- mc = kzalloc(sizeof(*mc), GFP_KERNEL_ACCOUNT);
+ mc = kzalloc_obj(*mc, GFP_KERNEL_ACCOUNT);
if (mc && !kvm_s390_mmu_cache_topup(mc))
return_ptr(mc);
return NULL;
diff --git a/arch/s390/kvm/gmap.c b/arch/s390/kvm/gmap.c
index 26cd2b208b6f..ef0c6ebfdde2 100644
--- a/arch/s390/kvm/gmap.c
+++ b/arch/s390/kvm/gmap.c
@@ -57,7 +57,7 @@ struct gmap *gmap_new(struct kvm *kvm, gfn_t limit)
type = gmap_limit_to_type(limit);
- gmap = kzalloc(sizeof(*gmap), GFP_KERNEL_ACCOUNT);
+ gmap = kzalloc_obj(*gmap, GFP_KERNEL_ACCOUNT);
if (!gmap)
return NULL;
INIT_LIST_HEAD(&gmap->children);
@@ -918,7 +918,7 @@ int gmap_insert_rmap(struct gmap *sg, gfn_t p_gfn, gfn_t r_gfn, int level)
KVM_BUG_ON(!is_shadow(sg), sg->kvm);
lockdep_assert_held(&sg->host_to_rmap_lock);
- rmap = kzalloc(sizeof(*rmap), GFP_ATOMIC);
+ rmap = kzalloc_obj(*rmap, GFP_ATOMIC);
if (!rmap)
return -ENOMEM;
diff --git a/arch/s390/kvm/guestdbg.c b/arch/s390/kvm/guestdbg.c
index 80879fc73c90..69835e1d4f20 100644
--- a/arch/s390/kvm/guestdbg.c
+++ b/arch/s390/kvm/guestdbg.c
@@ -232,18 +232,14 @@ int kvm_s390_import_bp_data(struct kvm_vcpu *vcpu,
}
if (nr_wp > 0) {
- wp_info = kmalloc_array(nr_wp,
- sizeof(*wp_info),
- GFP_KERNEL_ACCOUNT);
+ wp_info = kmalloc_objs(*wp_info, nr_wp, GFP_KERNEL_ACCOUNT);
if (!wp_info) {
ret = -ENOMEM;
goto error;
}
}
if (nr_bp > 0) {
- bp_info = kmalloc_array(nr_bp,
- sizeof(*bp_info),
- GFP_KERNEL_ACCOUNT);
+ bp_info = kmalloc_objs(*bp_info, nr_bp, GFP_KERNEL_ACCOUNT);
if (!bp_info) {
ret = -ENOMEM;
goto error;
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c
index 1c2bb5cd7e12..18932a65ca68 100644
--- a/arch/s390/kvm/interrupt.c
+++ b/arch/s390/kvm/interrupt.c
@@ -1749,7 +1749,7 @@ struct kvm_s390_interrupt_info *kvm_s390_get_io_int(struct kvm *kvm,
goto out;
}
gisa_out:
- tmp_inti = kzalloc(sizeof(*inti), GFP_KERNEL_ACCOUNT);
+ tmp_inti = kzalloc_obj(*inti, GFP_KERNEL_ACCOUNT);
if (tmp_inti) {
tmp_inti->type = KVM_S390_INT_IO(1, 0, 0, 0);
tmp_inti->io.io_int_word = isc_to_int_word(isc);
@@ -1968,7 +1968,7 @@ int kvm_s390_inject_vm(struct kvm *kvm,
struct kvm_s390_interrupt_info *inti;
int rc;
- inti = kzalloc(sizeof(*inti), GFP_KERNEL_ACCOUNT);
+ inti = kzalloc_obj(*inti, GFP_KERNEL_ACCOUNT);
if (!inti)
return -ENOMEM;
@@ -2374,7 +2374,7 @@ static int enqueue_floating_irq(struct kvm_device *dev,
return -EINVAL;
while (len >= sizeof(struct kvm_s390_irq)) {
- inti = kzalloc(sizeof(*inti), GFP_KERNEL_ACCOUNT);
+ inti = kzalloc_obj(*inti, GFP_KERNEL_ACCOUNT);
if (!inti)
return -ENOMEM;
@@ -2422,7 +2422,7 @@ static int register_io_adapter(struct kvm_device *dev,
if (dev->kvm->arch.adapters[adapter_info.id] != NULL)
return -EINVAL;
- adapter = kzalloc(sizeof(*adapter), GFP_KERNEL_ACCOUNT);
+ adapter = kzalloc_obj(*adapter, GFP_KERNEL_ACCOUNT);
if (!adapter)
return -ENOMEM;
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index de645025db0f..7a175d86cef0 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -1418,7 +1418,7 @@ static int kvm_s390_set_processor(struct kvm *kvm, struct kvm_device_attr *attr)
ret = -EBUSY;
goto out;
}
- proc = kzalloc(sizeof(*proc), GFP_KERNEL_ACCOUNT);
+ proc = kzalloc_obj(*proc, GFP_KERNEL_ACCOUNT);
if (!proc) {
ret = -ENOMEM;
goto out;
@@ -1618,7 +1618,7 @@ static int kvm_s390_get_processor(struct kvm *kvm, struct kvm_device_attr *attr)
struct kvm_s390_vm_cpu_processor *proc;
int ret = 0;
- proc = kzalloc(sizeof(*proc), GFP_KERNEL_ACCOUNT);
+ proc = kzalloc_obj(*proc, GFP_KERNEL_ACCOUNT);
if (!proc) {
ret = -ENOMEM;
goto out;
@@ -1646,7 +1646,7 @@ static int kvm_s390_get_machine(struct kvm *kvm, struct kvm_device_attr *attr)
struct kvm_s390_vm_cpu_machine *mach;
int ret = 0;
- mach = kzalloc(sizeof(*mach), GFP_KERNEL_ACCOUNT);
+ mach = kzalloc_obj(*mach, GFP_KERNEL_ACCOUNT);
if (!mach) {
ret = -ENOMEM;
goto out;
diff --git a/arch/s390/kvm/pci.c b/arch/s390/kvm/pci.c
index 8c40154ff50f..2ac911e388bd 100644
--- a/arch/s390/kvm/pci.c
+++ b/arch/s390/kvm/pci.c
@@ -54,7 +54,7 @@ static int zpci_setup_aipb(u8 nisc)
struct page *page;
int size, rc;
- zpci_aipb = kzalloc(sizeof(union zpci_sic_iib), GFP_KERNEL);
+ zpci_aipb = kzalloc_obj(union zpci_sic_iib, GFP_KERNEL);
if (!zpci_aipb)
return -ENOMEM;
@@ -126,8 +126,8 @@ int kvm_s390_pci_aen_init(u8 nisc)
return -EPERM;
mutex_lock(&aift->aift_lock);
- aift->kzdev = kcalloc(ZPCI_NR_DEVICES, sizeof(struct kvm_zdev *),
- GFP_KERNEL);
+ aift->kzdev = kzalloc_objs(struct kvm_zdev *, ZPCI_NR_DEVICES,
+ GFP_KERNEL);
if (!aift->kzdev) {
rc = -ENOMEM;
goto unlock;
@@ -404,7 +404,7 @@ static int kvm_s390_pci_dev_open(struct zpci_dev *zdev)
{
struct kvm_zdev *kzdev;
- kzdev = kzalloc(sizeof(struct kvm_zdev), GFP_KERNEL);
+ kzdev = kzalloc_obj(struct kvm_zdev, GFP_KERNEL);
if (!kzdev)
return -ENOMEM;
@@ -666,7 +666,7 @@ int __init kvm_s390_pci_init(void)
if (!kvm_s390_pci_interp_allowed())
return 0;
- aift = kzalloc(sizeof(struct zpci_aift), GFP_KERNEL);
+ aift = kzalloc_obj(struct zpci_aift, GFP_KERNEL);
if (!aift)
return -ENOMEM;
diff --git a/arch/s390/kvm/pv.c b/arch/s390/kvm/pv.c
index 461b413c76a3..fd34a2f46ce3 100644
--- a/arch/s390/kvm/pv.c
+++ b/arch/s390/kvm/pv.c
@@ -466,7 +466,7 @@ int kvm_s390_pv_set_aside(struct kvm *kvm, u16 *rc, u16 *rrc)
if (kvm->arch.gmap->asce.dt == TABLE_TYPE_SEGMENT)
return -EINVAL;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/arch/s390/mm/extmem.c b/arch/s390/mm/extmem.c
index 6cc33c705de2..db1ef34ad03e 100644
--- a/arch/s390/mm/extmem.c
+++ b/arch/s390/mm/extmem.c
@@ -171,8 +171,8 @@ query_segment_type (struct dcss_segment *seg)
struct qout64 *qout;
struct qin64 *qin;
- qin = kmalloc(sizeof(*qin), GFP_KERNEL | GFP_DMA);
- qout = kmalloc(sizeof(*qout), GFP_KERNEL | GFP_DMA);
+ qin = kmalloc_obj(*qin, GFP_KERNEL | GFP_DMA);
+ qout = kmalloc_obj(*qout, GFP_KERNEL | GFP_DMA);
if ((qin == NULL) || (qout == NULL)) {
rc = -ENOMEM;
goto out_free;
@@ -302,7 +302,7 @@ __segment_load (char *name, int do_nonshared, unsigned long *addr, unsigned long
start_addr = end_addr = 0;
segtype = -1;
- seg = kmalloc(sizeof(*seg), GFP_KERNEL | GFP_DMA);
+ seg = kmalloc_obj(*seg, GFP_KERNEL | GFP_DMA);
if (seg == NULL) {
rc = -ENOMEM;
goto out;
@@ -317,7 +317,7 @@ __segment_load (char *name, int do_nonshared, unsigned long *addr, unsigned long
goto out_free;
}
- seg->res = kzalloc(sizeof(struct resource), GFP_KERNEL);
+ seg->res = kzalloc_obj(struct resource, GFP_KERNEL);
if (seg->res == NULL) {
rc = -ENOMEM;
goto out_free;
diff --git a/arch/s390/net/bpf_jit_comp.c b/arch/s390/net/bpf_jit_comp.c
index 579461d471bb..582afb486093 100644
--- a/arch/s390/net/bpf_jit_comp.c
+++ b/arch/s390/net/bpf_jit_comp.c
@@ -2323,7 +2323,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *fp)
jit_data = fp->aux->jit_data;
if (!jit_data) {
- jit_data = kzalloc(sizeof(*jit_data), GFP_KERNEL);
+ jit_data = kzalloc_obj(*jit_data, GFP_KERNEL);
if (!jit_data) {
fp = orig_fp;
goto out;
diff --git a/arch/s390/pci/pci.c b/arch/s390/pci/pci.c
index 97bab20bc163..b75065130639 100644
--- a/arch/s390/pci/pci.c
+++ b/arch/s390/pci/pci.c
@@ -523,7 +523,7 @@ static struct resource *__alloc_res(struct zpci_dev *zdev, unsigned long start,
{
struct resource *r;
- r = kzalloc(sizeof(*r), GFP_KERNEL);
+ r = kzalloc_obj(*r, GFP_KERNEL);
if (!r)
return NULL;
@@ -824,7 +824,7 @@ struct zpci_dev *zpci_create_device(u32 fid, u32 fh, enum zpci_state state)
struct zpci_dev *zdev;
int rc;
- zdev = kzalloc(sizeof(*zdev), GFP_KERNEL);
+ zdev = kzalloc_obj(*zdev, GFP_KERNEL);
if (!zdev)
return ERR_PTR(-ENOMEM);
@@ -1073,8 +1073,8 @@ static int zpci_mem_init(void)
if (!zdev_fmb_cache)
goto error_fmb;
- zpci_iomap_start = kcalloc(ZPCI_IOMAP_ENTRIES,
- sizeof(*zpci_iomap_start), GFP_KERNEL);
+ zpci_iomap_start = kzalloc_objs(*zpci_iomap_start, ZPCI_IOMAP_ENTRIES,
+ GFP_KERNEL);
if (!zpci_iomap_start)
goto error_iomap;
diff --git a/arch/s390/pci/pci_bus.c b/arch/s390/pci/pci_bus.c
index 42a13e451f64..3eba87a036b1 100644
--- a/arch/s390/pci/pci_bus.c
+++ b/arch/s390/pci/pci_bus.c
@@ -315,7 +315,7 @@ static struct zpci_bus *zpci_bus_alloc(int topo, bool topo_is_tid)
{
struct zpci_bus *zbus;
- zbus = kzalloc(sizeof(*zbus), GFP_KERNEL);
+ zbus = kzalloc_obj(*zbus, GFP_KERNEL);
if (!zbus)
return NULL;
diff --git a/arch/s390/pci/pci_irq.c b/arch/s390/pci/pci_irq.c
index e9dd45f3c09d..441356767437 100644
--- a/arch/s390/pci/pci_irq.c
+++ b/arch/s390/pci/pci_irq.c
@@ -563,8 +563,7 @@ static int __init zpci_directed_irq_init(void)
iib.diib.disb_addr = virt_to_phys(zpci_sbv->vector);
zpci_set_irq_ctrl(SIC_IRQ_MODE_DIRECT, 0, &iib);
- zpci_ibv = kcalloc(num_possible_cpus(), sizeof(*zpci_ibv),
- GFP_KERNEL);
+ zpci_ibv = kzalloc_objs(*zpci_ibv, num_possible_cpus(), GFP_KERNEL);
if (!zpci_ibv)
return -ENOMEM;
@@ -590,7 +589,7 @@ static int __init zpci_directed_irq_init(void)
static int __init zpci_floating_irq_init(void)
{
- zpci_ibv = kcalloc(ZPCI_NR_DEVICES, sizeof(*zpci_ibv), GFP_KERNEL);
+ zpci_ibv = kzalloc_objs(*zpci_ibv, ZPCI_NR_DEVICES, GFP_KERNEL);
if (!zpci_ibv)
return -ENOMEM;
diff --git a/arch/sh/drivers/dma/dmabrg.c b/arch/sh/drivers/dma/dmabrg.c
index 5b2c1fd254d7..72f90f0c799e 100644
--- a/arch/sh/drivers/dma/dmabrg.c
+++ b/arch/sh/drivers/dma/dmabrg.c
@@ -153,8 +153,7 @@ static int __init dmabrg_init(void)
unsigned long or;
int ret;
- dmabrg_handlers = kcalloc(10, sizeof(struct dmabrg_handler),
- GFP_KERNEL);
+ dmabrg_handlers = kzalloc_objs(struct dmabrg_handler, 10, GFP_KERNEL);
if (!dmabrg_handlers)
return -ENOMEM;
diff --git a/arch/sh/drivers/heartbeat.c b/arch/sh/drivers/heartbeat.c
index 42103038a7d0..aae320cef692 100644
--- a/arch/sh/drivers/heartbeat.c
+++ b/arch/sh/drivers/heartbeat.c
@@ -91,7 +91,7 @@ static int heartbeat_drv_probe(struct platform_device *pdev)
if (pdev->dev.platform_data) {
hd = pdev->dev.platform_data;
} else {
- hd = kzalloc(sizeof(struct heartbeat_data), GFP_KERNEL);
+ hd = kzalloc_obj(struct heartbeat_data, GFP_KERNEL);
if (unlikely(!hd))
return -ENOMEM;
}
diff --git a/arch/sh/drivers/pci/pcie-sh7786.c b/arch/sh/drivers/pci/pcie-sh7786.c
index a78b9a935585..1e67082eb3b4 100644
--- a/arch/sh/drivers/pci/pcie-sh7786.c
+++ b/arch/sh/drivers/pci/pcie-sh7786.c
@@ -558,8 +558,8 @@ static int __init sh7786_pcie_init(void)
if (unlikely(nr_ports == 0))
return -ENODEV;
- sh7786_pcie_ports = kcalloc(nr_ports, sizeof(struct sh7786_pcie_port),
- GFP_KERNEL);
+ sh7786_pcie_ports = kzalloc_objs(struct sh7786_pcie_port, nr_ports,
+ GFP_KERNEL);
if (unlikely(!sh7786_pcie_ports))
return -ENOMEM;
diff --git a/arch/sh/drivers/push-switch.c b/arch/sh/drivers/push-switch.c
index 443cc6fd26a8..492315fc96fd 100644
--- a/arch/sh/drivers/push-switch.c
+++ b/arch/sh/drivers/push-switch.c
@@ -46,7 +46,7 @@ static int switch_drv_probe(struct platform_device *pdev)
struct push_switch *psw;
int ret, irq;
- psw = kzalloc(sizeof(struct push_switch), GFP_KERNEL);
+ psw = kzalloc_obj(struct push_switch, GFP_KERNEL);
if (unlikely(!psw))
return -ENOMEM;
diff --git a/arch/sh/kernel/cpu/sh4/sq.c b/arch/sh/kernel/cpu/sh4/sq.c
index d289e99dc118..2a465c440168 100644
--- a/arch/sh/kernel/cpu/sh4/sq.c
+++ b/arch/sh/kernel/cpu/sh4/sq.c
@@ -342,7 +342,7 @@ static int sq_dev_add(struct device *dev, struct subsys_interface *sif)
struct kobject *kobj;
int error;
- sq_kobject[cpu] = kzalloc(sizeof(struct kobject), GFP_KERNEL);
+ sq_kobject[cpu] = kzalloc_obj(struct kobject, GFP_KERNEL);
if (unlikely(!sq_kobject[cpu]))
return -ENOMEM;
diff --git a/arch/sh/kernel/dwarf.c b/arch/sh/kernel/dwarf.c
index a1b54bedc929..46df80942418 100644
--- a/arch/sh/kernel/dwarf.c
+++ b/arch/sh/kernel/dwarf.c
@@ -741,7 +741,7 @@ static int dwarf_parse_cie(void *entry, void *p, unsigned long len,
unsigned long flags;
int count;
- cie = kzalloc(sizeof(*cie), GFP_KERNEL);
+ cie = kzalloc_obj(*cie, GFP_KERNEL);
if (!cie)
return -ENOMEM;
@@ -874,7 +874,7 @@ static int dwarf_parse_fde(void *entry, u32 entry_type,
int count;
void *p = start;
- fde = kzalloc(sizeof(*fde), GFP_KERNEL);
+ fde = kzalloc_obj(*fde, GFP_KERNEL);
if (!fde)
return -ENOMEM;
diff --git a/arch/sparc/kernel/central.c b/arch/sparc/kernel/central.c
index a1a6485c9183..904c4223230f 100644
--- a/arch/sparc/kernel/central.c
+++ b/arch/sparc/kernel/central.c
@@ -63,7 +63,7 @@ static int clock_board_calc_nslots(struct clock_board *p)
static int clock_board_probe(struct platform_device *op)
{
- struct clock_board *p = kzalloc(sizeof(*p), GFP_KERNEL);
+ struct clock_board *p = kzalloc_obj(*p, GFP_KERNEL);
int err = -ENOMEM;
if (!p) {
@@ -159,7 +159,7 @@ static struct platform_driver clock_board_driver = {
static int fhc_probe(struct platform_device *op)
{
- struct fhc *p = kzalloc(sizeof(*p), GFP_KERNEL);
+ struct fhc *p = kzalloc_obj(*p, GFP_KERNEL);
int err = -ENOMEM;
u32 reg;
diff --git a/arch/sparc/kernel/chmc.c b/arch/sparc/kernel/chmc.c
index d4c74d6b2e1b..663b2d7ff7bc 100644
--- a/arch/sparc/kernel/chmc.c
+++ b/arch/sparc/kernel/chmc.c
@@ -417,7 +417,7 @@ static int jbusmc_probe(struct platform_device *op)
num_mem_regs = len / sizeof(*mem_regs);
err = -ENOMEM;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p) {
printk(KERN_ERR PFX "Cannot allocate struct jbusmc.\n");
goto out;
@@ -718,7 +718,7 @@ static int chmc_probe(struct platform_device *op)
}
err = -ENOMEM;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p) {
printk(KERN_ERR PFX "Could not allocate struct chmc.\n");
goto out;
diff --git a/arch/sparc/kernel/cpumap.c b/arch/sparc/kernel/cpumap.c
index 8fcf2d8c6bd2..d51ff010176c 100644
--- a/arch/sparc/kernel/cpumap.c
+++ b/arch/sparc/kernel/cpumap.c
@@ -194,7 +194,7 @@ static struct cpuinfo_tree *build_cpuinfo_tree(void)
n = enumerate_cpuinfo_nodes(tmp_level);
- new_tree = kzalloc(struct_size(new_tree, nodes, n), GFP_ATOMIC);
+ new_tree = kzalloc_flex(*new_tree, nodes, n, GFP_ATOMIC);
if (!new_tree)
return NULL;
diff --git a/arch/sparc/kernel/ds.c b/arch/sparc/kernel/ds.c
index f7fc6f2af2f2..df3fa6d96074 100644
--- a/arch/sparc/kernel/ds.c
+++ b/arch/sparc/kernel/ds.c
@@ -1175,7 +1175,7 @@ static int ds_probe(struct vio_dev *vdev, const struct vio_device_id *id)
if (ds_version_printed++ == 0)
printk(KERN_INFO "%s", version);
- dp = kzalloc(sizeof(*dp), GFP_KERNEL);
+ dp = kzalloc_obj(*dp, GFP_KERNEL);
err = -ENOMEM;
if (!dp)
goto out_err;
diff --git a/arch/sparc/kernel/ioport.c b/arch/sparc/kernel/ioport.c
index 5ebca5c7af1e..82d248e6b822 100644
--- a/arch/sparc/kernel/ioport.c
+++ b/arch/sparc/kernel/ioport.c
@@ -238,7 +238,7 @@ unsigned long sparc_dma_alloc_resource(struct device *dev, size_t len)
{
struct resource *res;
- res = kzalloc(sizeof(*res), GFP_KERNEL);
+ res = kzalloc_obj(*res, GFP_KERNEL);
if (!res)
return 0;
res->name = dev->of_node->full_name;
diff --git a/arch/sparc/kernel/irq_64.c b/arch/sparc/kernel/irq_64.c
index ded463c82abd..c5466a9fd560 100644
--- a/arch/sparc/kernel/irq_64.c
+++ b/arch/sparc/kernel/irq_64.c
@@ -628,7 +628,7 @@ unsigned int build_irq(int inofixup, unsigned long iclr, unsigned long imap)
if (unlikely(handler_data))
goto out;
- handler_data = kzalloc(sizeof(struct irq_handler_data), GFP_ATOMIC);
+ handler_data = kzalloc_obj(struct irq_handler_data, GFP_ATOMIC);
if (unlikely(!handler_data)) {
prom_printf("IRQ: kzalloc(irq_handler_data) failed.\n");
prom_halt();
@@ -654,7 +654,7 @@ static unsigned int sun4v_build_common(u32 devhandle, unsigned int devino,
if (!irq)
goto out;
- data = kzalloc(sizeof(struct irq_handler_data), GFP_ATOMIC);
+ data = kzalloc_obj(struct irq_handler_data, GFP_ATOMIC);
if (unlikely(!data)) {
pr_err("IRQ handler data allocation failed.\n");
irq_free(irq);
diff --git a/arch/sparc/kernel/ldc.c b/arch/sparc/kernel/ldc.c
index 7f3cdb6f644d..4fd357d5fc29 100644
--- a/arch/sparc/kernel/ldc.c
+++ b/arch/sparc/kernel/ldc.c
@@ -1171,7 +1171,7 @@ struct ldc_channel *ldc_alloc(unsigned long id,
mssbuf = NULL;
- lp = kzalloc(sizeof(*lp), GFP_KERNEL);
+ lp = kzalloc_obj(*lp, GFP_KERNEL);
err = -ENOMEM;
if (!lp)
goto out_err;
diff --git a/arch/sparc/kernel/leon_pci_grpci2.c b/arch/sparc/kernel/leon_pci_grpci2.c
index 9f662340b5b2..c6d5cec12b67 100644
--- a/arch/sparc/kernel/leon_pci_grpci2.c
+++ b/arch/sparc/kernel/leon_pci_grpci2.c
@@ -721,7 +721,7 @@ static int grpci2_of_probe(struct platform_device *ofdev)
goto err1;
}
- priv = grpci2priv = kzalloc(sizeof(struct grpci2_priv), GFP_KERNEL);
+ priv = grpci2priv = kzalloc_obj(struct grpci2_priv, GFP_KERNEL);
if (grpci2priv == NULL) {
err = -ENOMEM;
goto err1;
diff --git a/arch/sparc/kernel/of_device_32.c b/arch/sparc/kernel/of_device_32.c
index 284a4cafa432..51e90a093ee0 100644
--- a/arch/sparc/kernel/of_device_32.c
+++ b/arch/sparc/kernel/of_device_32.c
@@ -340,7 +340,7 @@ static void __init build_device_resources(struct platform_device *op,
static struct platform_device * __init scan_one_device(struct device_node *dp,
struct device *parent)
{
- struct platform_device *op = kzalloc(sizeof(*op), GFP_KERNEL);
+ struct platform_device *op = kzalloc_obj(*op, GFP_KERNEL);
const struct linux_prom_irqs *intr;
struct dev_archdata *sd;
int len, i;
diff --git a/arch/sparc/kernel/of_device_64.c b/arch/sparc/kernel/of_device_64.c
index f53092b07b9e..c30ad34525bd 100644
--- a/arch/sparc/kernel/of_device_64.c
+++ b/arch/sparc/kernel/of_device_64.c
@@ -633,7 +633,7 @@ static unsigned int __init build_one_device_irq(struct platform_device *op,
static struct platform_device * __init scan_one_device(struct device_node *dp,
struct device *parent)
{
- struct platform_device *op = kzalloc(sizeof(*op), GFP_KERNEL);
+ struct platform_device *op = kzalloc_obj(*op, GFP_KERNEL);
const unsigned int *irq;
struct dev_archdata *sd;
int len, i;
diff --git a/arch/sparc/kernel/pci.c b/arch/sparc/kernel/pci.c
index b290107170e9..432f83cf61aa 100644
--- a/arch/sparc/kernel/pci.c
+++ b/arch/sparc/kernel/pci.c
@@ -650,7 +650,7 @@ static void pci_claim_legacy_resources(struct pci_dev *dev)
if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
return;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return;
diff --git a/arch/sparc/kernel/pci_common.c b/arch/sparc/kernel/pci_common.c
index 2576f4f31309..588cfc595b84 100644
--- a/arch/sparc/kernel/pci_common.c
+++ b/arch/sparc/kernel/pci_common.c
@@ -336,7 +336,7 @@ static void pci_register_iommu_region(struct pci_pbm_info *pbm)
NULL);
if (vdma) {
- struct resource *rp = kzalloc(sizeof(*rp), GFP_KERNEL);
+ struct resource *rp = kzalloc_obj(*rp, GFP_KERNEL);
if (!rp) {
pr_info("%s: Cannot allocate IOMMU resource.\n",
diff --git a/arch/sparc/kernel/pci_fire.c b/arch/sparc/kernel/pci_fire.c
index 0b91bde80fdc..b72cf5acbdba 100644
--- a/arch/sparc/kernel/pci_fire.c
+++ b/arch/sparc/kernel/pci_fire.c
@@ -468,13 +468,13 @@ static int fire_probe(struct platform_device *op)
portid = of_getintprop_default(dp, "portid", 0xff);
err = -ENOMEM;
- pbm = kzalloc(sizeof(*pbm), GFP_KERNEL);
+ pbm = kzalloc_obj(*pbm, GFP_KERNEL);
if (!pbm) {
printk(KERN_ERR PFX "Cannot allocate pci_pbminfo.\n");
goto out_err;
}
- iommu = kzalloc(sizeof(struct iommu), GFP_KERNEL);
+ iommu = kzalloc_obj(struct iommu, GFP_KERNEL);
if (!iommu) {
printk(KERN_ERR PFX "Cannot allocate PBM iommu.\n");
goto out_free_controller;
diff --git a/arch/sparc/kernel/pci_psycho.c b/arch/sparc/kernel/pci_psycho.c
index 1efc98305ec7..9880b341a631 100644
--- a/arch/sparc/kernel/pci_psycho.c
+++ b/arch/sparc/kernel/pci_psycho.c
@@ -519,7 +519,7 @@ static int psycho_probe(struct platform_device *op)
upa_portid = of_getintprop_default(dp, "upa-portid", 0xff);
err = -ENOMEM;
- pbm = kzalloc(sizeof(*pbm), GFP_KERNEL);
+ pbm = kzalloc_obj(*pbm, GFP_KERNEL);
if (!pbm) {
printk(KERN_ERR PFX "Cannot allocate pci_pbm_info.\n");
goto out_err;
@@ -529,7 +529,7 @@ static int psycho_probe(struct platform_device *op)
if (pbm->sibling) {
iommu = pbm->sibling->iommu;
} else {
- iommu = kzalloc(sizeof(struct iommu), GFP_KERNEL);
+ iommu = kzalloc_obj(struct iommu, GFP_KERNEL);
if (!iommu) {
printk(KERN_ERR PFX "Cannot allocate PBM iommu.\n");
goto out_free_controller;
diff --git a/arch/sparc/kernel/pci_sabre.c b/arch/sparc/kernel/pci_sabre.c
index a84598568300..3b4116f23862 100644
--- a/arch/sparc/kernel/pci_sabre.c
+++ b/arch/sparc/kernel/pci_sabre.c
@@ -482,13 +482,13 @@ static int sabre_probe(struct platform_device *op)
}
err = -ENOMEM;
- pbm = kzalloc(sizeof(*pbm), GFP_KERNEL);
+ pbm = kzalloc_obj(*pbm, GFP_KERNEL);
if (!pbm) {
printk(KERN_ERR PFX "Cannot allocate pci_pbm_info.\n");
goto out_err;
}
- iommu = kzalloc(sizeof(*iommu), GFP_KERNEL);
+ iommu = kzalloc_obj(*iommu, GFP_KERNEL);
if (!iommu) {
printk(KERN_ERR PFX "Cannot allocate PBM iommu.\n");
goto out_free_controller;
diff --git a/arch/sparc/kernel/pci_schizo.c b/arch/sparc/kernel/pci_schizo.c
index 93cd9e5a8099..519a80a639d6 100644
--- a/arch/sparc/kernel/pci_schizo.c
+++ b/arch/sparc/kernel/pci_schizo.c
@@ -1426,7 +1426,7 @@ static int __schizo_init(struct platform_device *op, unsigned long chip_type)
portid = of_getintprop_default(dp, "portid", 0xff);
err = -ENOMEM;
- pbm = kzalloc(sizeof(*pbm), GFP_KERNEL);
+ pbm = kzalloc_obj(*pbm, GFP_KERNEL);
if (!pbm) {
printk(KERN_ERR PFX "Cannot allocate pci_pbm_info.\n");
goto out_err;
@@ -1434,7 +1434,7 @@ static int __schizo_init(struct platform_device *op, unsigned long chip_type)
pbm->sibling = schizo_find_sibling(portid, chip_type);
- iommu = kzalloc(sizeof(struct iommu), GFP_KERNEL);
+ iommu = kzalloc_obj(struct iommu, GFP_KERNEL);
if (!iommu) {
printk(KERN_ERR PFX "Cannot allocate PBM A iommu.\n");
goto out_free_pbm;
diff --git a/arch/sparc/kernel/pci_sun4v.c b/arch/sparc/kernel/pci_sun4v.c
index 791f0a76665f..4e842fb48602 100644
--- a/arch/sparc/kernel/pci_sun4v.c
+++ b/arch/sparc/kernel/pci_sun4v.c
@@ -754,7 +754,7 @@ static int pci_sun4v_atu_alloc_iotsb(struct pci_pbm_info *pbm)
unsigned long order;
unsigned long err;
- iotsb = kzalloc(sizeof(*iotsb), GFP_KERNEL);
+ iotsb = kzalloc_obj(*iotsb, GFP_KERNEL);
if (!iotsb) {
err = -ENOMEM;
goto out_err;
@@ -1292,13 +1292,13 @@ static int pci_sun4v_probe(struct platform_device *op)
iommu_batch_initialized = 1;
}
- pbm = kzalloc(sizeof(*pbm), GFP_KERNEL);
+ pbm = kzalloc_obj(*pbm, GFP_KERNEL);
if (!pbm) {
printk(KERN_ERR PFX "Could not allocate pci_pbm_info\n");
goto out_err;
}
- iommu = kzalloc(sizeof(struct iommu), GFP_KERNEL);
+ iommu = kzalloc_obj(struct iommu, GFP_KERNEL);
if (!iommu) {
printk(KERN_ERR PFX "Could not allocate pbm iommu\n");
goto out_free_controller;
@@ -1307,7 +1307,7 @@ static int pci_sun4v_probe(struct platform_device *op)
pbm->iommu = iommu;
iommu->atu = NULL;
if (hv_atu) {
- atu = kzalloc(sizeof(*atu), GFP_KERNEL);
+ atu = kzalloc_obj(*atu, GFP_KERNEL);
if (!atu)
pr_err(PFX "Could not allocate atu\n");
else
diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c
index d7c911724435..4cd32ccc5191 100644
--- a/arch/sparc/kernel/pcic.c
+++ b/arch/sparc/kernel/pcic.c
@@ -466,7 +466,7 @@ static int pdev_to_pnode(struct linux_pbm_info *pbm, struct pci_dev *pdev)
static inline struct pcidev_cookie *pci_devcookie_alloc(void)
{
- return kmalloc(sizeof(struct pcidev_cookie), GFP_ATOMIC);
+ return kmalloc_obj(struct pcidev_cookie, GFP_ATOMIC);
}
static void pcic_map_pci_device(struct linux_pcic *pcic,
diff --git a/arch/sparc/kernel/sbus.c b/arch/sparc/kernel/sbus.c
index 0bababf6f2bc..bb2794ce7aad 100644
--- a/arch/sparc/kernel/sbus.c
+++ b/arch/sparc/kernel/sbus.c
@@ -556,8 +556,8 @@ static void __init sbus_iommu_init(struct platform_device *op)
}
regs = pr->phys_addr;
- iommu = kzalloc(sizeof(*iommu), GFP_ATOMIC);
- strbuf = kzalloc(sizeof(*strbuf), GFP_ATOMIC);
+ iommu = kzalloc_obj(*iommu, GFP_ATOMIC);
+ strbuf = kzalloc_obj(*strbuf, GFP_ATOMIC);
if (!iommu || !strbuf)
goto fatal_memory_error;
diff --git a/arch/sparc/kernel/setup_32.c b/arch/sparc/kernel/setup_32.c
index 704375c061e7..46a7b53737d4 100644
--- a/arch/sparc/kernel/setup_32.c
+++ b/arch/sparc/kernel/setup_32.c
@@ -388,7 +388,7 @@ static int __init topology_init(void)
err = 0;
for_each_online_cpu(i) {
- struct cpu *p = kzalloc(sizeof(*p), GFP_KERNEL);
+ struct cpu *p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
err = -ENOMEM;
else
diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
index 5cbd6ed5ef6f..81f0be76f48a 100644
--- a/arch/sparc/kernel/smp_64.c
+++ b/arch/sparc/kernel/smp_64.c
@@ -297,8 +297,8 @@ static void ldom_startcpu_cpuid(unsigned int cpu, unsigned long thread_reg,
unsigned long hv_err;
int i;
- hdesc = kzalloc(struct_size(hdesc, maps, num_kernel_image_mappings),
- GFP_KERNEL);
+ hdesc = kzalloc_flex(*hdesc, maps, num_kernel_image_mappings,
+ GFP_KERNEL);
if (!hdesc) {
printk(KERN_ERR "ldom_startcpu_cpuid: Cannot allocate "
"hvtramp_descr.\n");
diff --git a/arch/sparc/kernel/starfire.c b/arch/sparc/kernel/starfire.c
index b8cd57d9182b..7736dc34f6ad 100644
--- a/arch/sparc/kernel/starfire.c
+++ b/arch/sparc/kernel/starfire.c
@@ -50,7 +50,7 @@ void starfire_hookup(int upaid)
struct starfire_irqinfo *p;
unsigned long treg_base, hwmid, i;
- p = kmalloc(sizeof(*p), GFP_KERNEL);
+ p = kmalloc_obj(*p, GFP_KERNEL);
if (!p) {
prom_printf("starfire_hookup: No memory, this is insane.\n");
prom_halt();
diff --git a/arch/sparc/kernel/sun4d_irq.c b/arch/sparc/kernel/sun4d_irq.c
index 9a137c70e8d1..95683ecdc590 100644
--- a/arch/sparc/kernel/sun4d_irq.c
+++ b/arch/sparc/kernel/sun4d_irq.c
@@ -304,7 +304,7 @@ static unsigned int _sun4d_build_device_irq(unsigned int real_irq,
if (unlikely(handler_data))
goto err_out;
- handler_data = kzalloc(sizeof(struct sun4d_handler_data), GFP_ATOMIC);
+ handler_data = kzalloc_obj(struct sun4d_handler_data, GFP_ATOMIC);
if (unlikely(!handler_data)) {
prom_printf("IRQ: kzalloc(sun4d_handler_data) failed.\n");
prom_halt();
diff --git a/arch/sparc/kernel/sun4m_irq.c b/arch/sparc/kernel/sun4m_irq.c
index 1079638986b5..fe8cfb1cdd3a 100644
--- a/arch/sparc/kernel/sun4m_irq.c
+++ b/arch/sparc/kernel/sun4m_irq.c
@@ -268,7 +268,7 @@ static unsigned int sun4m_build_device_irq(struct platform_device *op,
if (unlikely(handler_data))
goto out;
- handler_data = kzalloc(sizeof(struct sun4m_handler_data), GFP_ATOMIC);
+ handler_data = kzalloc_obj(struct sun4m_handler_data, GFP_ATOMIC);
if (unlikely(!handler_data)) {
prom_printf("IRQ: kzalloc(sun4m_handler_data) failed.\n");
prom_halt();
diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c
index dbf118b40601..8d5e2d5c0bc5 100644
--- a/arch/sparc/kernel/sys_sparc_64.c
+++ b/arch/sparc/kernel/sys_sparc_64.c
@@ -647,8 +647,8 @@ SYSCALL_DEFINE5(utrap_install, utrap_entry_t, type,
}
if (!current_thread_info()->utraps) {
current_thread_info()->utraps =
- kcalloc(UT_TRAP_INSTRUCTION_31 + 1, sizeof(long),
- GFP_KERNEL);
+ kzalloc_objs(long, UT_TRAP_INSTRUCTION_31 + 1,
+ GFP_KERNEL);
if (!current_thread_info()->utraps)
return -ENOMEM;
current_thread_info()->utraps[0] = 1;
@@ -658,9 +658,8 @@ SYSCALL_DEFINE5(utrap_install, utrap_entry_t, type,
unsigned long *p = current_thread_info()->utraps;
current_thread_info()->utraps =
- kmalloc_array(UT_TRAP_INSTRUCTION_31 + 1,
- sizeof(long),
- GFP_KERNEL);
+ kmalloc_objs(long, UT_TRAP_INSTRUCTION_31 + 1,
+ GFP_KERNEL);
if (!current_thread_info()->utraps) {
current_thread_info()->utraps = p;
return -ENOMEM;
diff --git a/arch/sparc/kernel/vio.c b/arch/sparc/kernel/vio.c
index 8c7dd72ef334..0d21a8e567da 100644
--- a/arch/sparc/kernel/vio.c
+++ b/arch/sparc/kernel/vio.c
@@ -325,7 +325,7 @@ static struct vio_dev *vio_create_one(struct mdesc_handle *hp, u64 mp,
return NULL;
}
- vdev = kzalloc(sizeof(*vdev), GFP_KERNEL);
+ vdev = kzalloc_obj(*vdev, GFP_KERNEL);
if (!vdev) {
printk(KERN_ERR "VIO: Could not allocate vio_dev\n");
return NULL;
diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
index 3c3a6607fa51..2c4986e95713 100644
--- a/arch/sparc/mm/init_64.c
+++ b/arch/sparc/mm/init_64.c
@@ -3070,7 +3070,7 @@ static int __init report_memory(void)
kernel_lds_init();
for (i = 0; i < pavail_ents; i++) {
- res = kzalloc(sizeof(struct resource), GFP_KERNEL);
+ res = kzalloc_obj(struct resource, GFP_KERNEL);
if (!res) {
pr_warn("Failed to allocate source.\n");
diff --git a/arch/sparc/mm/io-unit.c b/arch/sparc/mm/io-unit.c
index d409cb450de4..2b5e40cc9d58 100644
--- a/arch/sparc/mm/io-unit.c
+++ b/arch/sparc/mm/io-unit.c
@@ -44,7 +44,7 @@ static void __init iounit_iommu_init(struct platform_device *op)
iopte_t __iomem *xpt;
iopte_t __iomem *xptend;
- iounit = kzalloc(sizeof(struct iounit_struct), GFP_ATOMIC);
+ iounit = kzalloc_obj(struct iounit_struct, GFP_ATOMIC);
if (!iounit) {
prom_printf("SUN4D: Cannot alloc iounit, halting.\n");
prom_halt();
diff --git a/arch/sparc/mm/iommu.c b/arch/sparc/mm/iommu.c
index f48adf62724a..3ca7cc2b9bfb 100644
--- a/arch/sparc/mm/iommu.c
+++ b/arch/sparc/mm/iommu.c
@@ -64,7 +64,7 @@ static void __init sbus_iommu_init(struct platform_device *op)
unsigned long base;
unsigned long tmp;
- iommu = kmalloc(sizeof(struct iommu_struct), GFP_KERNEL);
+ iommu = kmalloc_obj(struct iommu_struct, GFP_KERNEL);
if (!iommu) {
prom_printf("Unable to allocate iommu structure\n");
prom_halt();
diff --git a/arch/sparc/net/bpf_jit_comp_64.c b/arch/sparc/net/bpf_jit_comp_64.c
index 73bf0aea8baf..884b201259d6 100644
--- a/arch/sparc/net/bpf_jit_comp_64.c
+++ b/arch/sparc/net/bpf_jit_comp_64.c
@@ -1505,7 +1505,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
jit_data = prog->aux->jit_data;
if (!jit_data) {
- jit_data = kzalloc(sizeof(*jit_data), GFP_KERNEL);
+ jit_data = kzalloc_obj(*jit_data, GFP_KERNEL);
if (!jit_data) {
prog = orig_prog;
goto out;
diff --git a/arch/sparc/vdso/vma.c b/arch/sparc/vdso/vma.c
index bab7a59575e8..bba84959c69d 100644
--- a/arch/sparc/vdso/vma.c
+++ b/arch/sparc/vdso/vma.c
@@ -266,7 +266,7 @@ static int __init init_vdso_image(const struct vdso_image *image,
if (WARN_ON(image->size % PAGE_SIZE != 0))
goto oom;
- cpp = kcalloc(cnpages, sizeof(struct page *), GFP_KERNEL);
+ cpp = kzalloc_objs(struct page *, cnpages, GFP_KERNEL);
vdso_mapping->pages = cpp;
if (!cpp)
@@ -288,7 +288,7 @@ static int __init init_vdso_image(const struct vdso_image *image,
dnpages = (sizeof(struct vvar_data) / PAGE_SIZE) + 1;
if (WARN_ON(dnpages != 1))
goto oom;
- dpp = kcalloc(dnpages, sizeof(struct page *), GFP_KERNEL);
+ dpp = kzalloc_objs(struct page *, dnpages, GFP_KERNEL);
vvar_mapping.pages = dpp;
if (!dpp)
diff --git a/arch/um/drivers/chan_kern.c b/arch/um/drivers/chan_kern.c
index 26442db7d608..db2bb032be30 100644
--- a/arch/um/drivers/chan_kern.c
+++ b/arch/um/drivers/chan_kern.c
@@ -504,7 +504,7 @@ static struct chan *parse_chan(struct line *line, char *str, int device,
return NULL;
}
- chan = kmalloc(sizeof(*chan), GFP_ATOMIC);
+ chan = kmalloc_obj(*chan, GFP_ATOMIC);
if (chan == NULL) {
*error_out = "Memory allocation failed";
return NULL;
diff --git a/arch/um/drivers/hostaudio_kern.c b/arch/um/drivers/hostaudio_kern.c
index 0ac149de1ac0..6983a35a9ead 100644
--- a/arch/um/drivers/hostaudio_kern.c
+++ b/arch/um/drivers/hostaudio_kern.c
@@ -186,7 +186,7 @@ static int hostaudio_open(struct inode *inode, struct file *file)
kernel_param_unlock(THIS_MODULE);
#endif
- state = kmalloc(sizeof(struct hostaudio_state), GFP_KERNEL);
+ state = kmalloc_obj(struct hostaudio_state, GFP_KERNEL);
if (state == NULL)
return -ENOMEM;
@@ -247,7 +247,7 @@ static int hostmixer_open_mixdev(struct inode *inode, struct file *file)
printk(KERN_DEBUG "hostmixer: open called (host: %s)\n", mixer);
#endif
- state = kmalloc(sizeof(struct hostmixer_state), GFP_KERNEL);
+ state = kmalloc_obj(struct hostmixer_state, GFP_KERNEL);
if (state == NULL)
return -ENOMEM;
diff --git a/arch/um/drivers/line.c b/arch/um/drivers/line.c
index 43d8959cc746..62545319d0eb 100644
--- a/arch/um/drivers/line.c
+++ b/arch/um/drivers/line.c
@@ -672,7 +672,7 @@ void register_winch_irq(int fd, int tty_fd, int pid, struct tty_port *port,
{
struct winch *winch;
- winch = kmalloc(sizeof(*winch), GFP_KERNEL);
+ winch = kmalloc_obj(*winch, GFP_KERNEL);
if (winch == NULL) {
printk(KERN_ERR "register_winch_irq - kmalloc failed\n");
goto cleanup;
diff --git a/arch/um/drivers/mconsole_kern.c b/arch/um/drivers/mconsole_kern.c
index ff4bda95b9c7..e2a9e8879f58 100644
--- a/arch/um/drivers/mconsole_kern.c
+++ b/arch/um/drivers/mconsole_kern.c
@@ -87,7 +87,7 @@ static irqreturn_t mconsole_interrupt(int irq, void *dev_id)
if (req.cmd->context == MCONSOLE_INTR)
(*req.cmd->handler)(&req);
else {
- new = kmalloc(sizeof(*new), GFP_NOWAIT);
+ new = kmalloc_obj(*new, GFP_NOWAIT);
if (new == NULL)
mconsole_reply(&req, "Out of memory", 1, 0);
else {
diff --git a/arch/um/drivers/port_kern.c b/arch/um/drivers/port_kern.c
index a4508470df78..c51d6ca4de70 100644
--- a/arch/um/drivers/port_kern.c
+++ b/arch/um/drivers/port_kern.c
@@ -88,7 +88,7 @@ static int port_accept(struct port_list *port)
goto out;
}
- conn = kmalloc(sizeof(*conn), GFP_ATOMIC);
+ conn = kmalloc_obj(*conn, GFP_ATOMIC);
if (conn == NULL) {
printk(KERN_ERR "port_accept : failed to allocate "
"connection\n");
@@ -170,7 +170,7 @@ void *port_data(int port_num)
if (port->port == port_num)
goto found;
}
- port = kmalloc(sizeof(struct port_list), GFP_KERNEL);
+ port = kmalloc_obj(struct port_list, GFP_KERNEL);
if (port == NULL) {
printk(KERN_ERR "Allocation of port list failed\n");
goto out;
@@ -202,7 +202,7 @@ void *port_data(int port_num)
list_add(&port->list, &ports);
found:
- dev = kmalloc(sizeof(struct port_dev), GFP_KERNEL);
+ dev = kmalloc_obj(struct port_dev, GFP_KERNEL);
if (dev == NULL) {
printk(KERN_ERR "Allocation of port device entry failed\n");
goto out;
diff --git a/arch/um/drivers/ubd_kern.c b/arch/um/drivers/ubd_kern.c
index 37455e74d314..42f392e6add3 100644
--- a/arch/um/drivers/ubd_kern.c
+++ b/arch/um/drivers/ubd_kern.c
@@ -1069,20 +1069,16 @@ static int __init ubd_init(void)
if (register_blkdev(UBD_MAJOR, "ubd"))
return -1;
- irq_req_buffer = kmalloc_array(UBD_REQ_BUFFER_SIZE,
- sizeof(struct io_thread_req *),
- GFP_KERNEL
- );
+ irq_req_buffer = kmalloc_objs(struct io_thread_req *,
+ UBD_REQ_BUFFER_SIZE, GFP_KERNEL);
irq_remainder = 0;
if (irq_req_buffer == NULL) {
printk(KERN_ERR "Failed to initialize ubd buffering\n");
return -ENOMEM;
}
- io_req_buffer = kmalloc_array(UBD_REQ_BUFFER_SIZE,
- sizeof(struct io_thread_req *),
- GFP_KERNEL
- );
+ io_req_buffer = kmalloc_objs(struct io_thread_req *,
+ UBD_REQ_BUFFER_SIZE, GFP_KERNEL);
io_remainder = 0;
diff --git a/arch/um/drivers/vector_kern.c b/arch/um/drivers/vector_kern.c
index 28cfe1c700f0..8882ad7c983a 100644
--- a/arch/um/drivers/vector_kern.c
+++ b/arch/um/drivers/vector_kern.c
@@ -515,7 +515,7 @@ static struct vector_queue *create_queue(
struct iovec *iov;
struct mmsghdr *mmsg_vector;
- result = kmalloc(sizeof(struct vector_queue), GFP_KERNEL);
+ result = kmalloc_obj(struct vector_queue, GFP_KERNEL);
if (result == NULL)
return NULL;
result->max_depth = max_size;
@@ -544,15 +544,11 @@ static struct vector_queue *create_queue(
result->max_iov_frags = num_extra_frags;
for (i = 0; i < max_size; i++) {
if (vp->header_size > 0)
- iov = kmalloc_array(3 + num_extra_frags,
- sizeof(struct iovec),
- GFP_KERNEL
- );
+ iov = kmalloc_objs(struct iovec, 3 + num_extra_frags,
+ GFP_KERNEL);
else
- iov = kmalloc_array(2 + num_extra_frags,
- sizeof(struct iovec),
- GFP_KERNEL
- );
+ iov = kmalloc_objs(struct iovec, 2 + num_extra_frags,
+ GFP_KERNEL);
if (iov == NULL)
goto out_fail;
mmsg_vector->msg_hdr.msg_iov = iov;
@@ -1385,7 +1381,7 @@ static int vector_net_load_bpf_flash(struct net_device *dev,
kfree(vp->bpf->filter);
vp->bpf->filter = NULL;
} else {
- vp->bpf = kmalloc(sizeof(struct sock_fprog), GFP_ATOMIC);
+ vp->bpf = kmalloc_obj(struct sock_fprog, GFP_ATOMIC);
if (vp->bpf == NULL) {
netdev_err(dev, "failed to allocate memory for firmware\n");
goto flash_fail;
@@ -1587,7 +1583,7 @@ static void vector_eth_configure(
struct vector_private *vp;
int err;
- device = kzalloc(sizeof(*device), GFP_KERNEL);
+ device = kzalloc_obj(*device, GFP_KERNEL);
if (device == NULL) {
pr_err("Failed to allocate struct vector_device for vec%d\n", n);
return;
diff --git a/arch/um/drivers/vector_transports.c b/arch/um/drivers/vector_transports.c
index 0794d23f07cb..da5d2083ed49 100644
--- a/arch/um/drivers/vector_transports.c
+++ b/arch/um/drivers/vector_transports.c
@@ -245,7 +245,7 @@ static int build_gre_transport_data(struct vector_private *vp)
int temp_rx;
int temp_tx;
- vp->transport_data = kmalloc(sizeof(struct uml_gre_data), GFP_KERNEL);
+ vp->transport_data = kmalloc_obj(struct uml_gre_data, GFP_KERNEL);
if (vp->transport_data == NULL)
return -ENOMEM;
td = vp->transport_data;
@@ -307,8 +307,7 @@ static int build_l2tpv3_transport_data(struct vector_private *vp)
unsigned long temp_rx;
unsigned long temp_tx;
- vp->transport_data = kmalloc(
- sizeof(struct uml_l2tpv3_data), GFP_KERNEL);
+ vp->transport_data = kmalloc_obj(struct uml_l2tpv3_data, GFP_KERNEL);
if (vp->transport_data == NULL)
return -ENOMEM;
diff --git a/arch/um/drivers/vfio_kern.c b/arch/um/drivers/vfio_kern.c
index 915812a79bfc..5f349be2fce7 100644
--- a/arch/um/drivers/vfio_kern.c
+++ b/arch/um/drivers/vfio_kern.c
@@ -107,7 +107,7 @@ static int uml_vfio_open_group(int group_id)
}
}
- group = kzalloc(sizeof(*group), GFP_KERNEL);
+ group = kzalloc_obj(*group, GFP_KERNEL);
if (!group)
return -ENOMEM;
@@ -514,9 +514,8 @@ static void uml_vfio_open_device(struct uml_vfio_device *dev)
goto teardown_udev;
}
- dev->intr_ctx = kmalloc_array(dev->udev.irq_count,
- sizeof(struct uml_vfio_intr_ctx),
- GFP_KERNEL);
+ dev->intr_ctx = kmalloc_objs(struct uml_vfio_intr_ctx,
+ dev->udev.irq_count, GFP_KERNEL);
if (!dev->intr_ctx) {
pr_err("Failed to allocate interrupt context (%s)\n",
dev->name);
@@ -600,7 +599,7 @@ static struct uml_vfio_device *uml_vfio_add_device(const char *device)
if (uml_vfio_find_device(device))
return ERR_PTR(-EEXIST);
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
diff --git a/arch/um/drivers/virtio_pcidev.c b/arch/um/drivers/virtio_pcidev.c
index f9b4b6f7582c..5db9a4461766 100644
--- a/arch/um/drivers/virtio_pcidev.c
+++ b/arch/um/drivers/virtio_pcidev.c
@@ -537,7 +537,7 @@ static int virtio_pcidev_virtio_probe(struct virtio_device *vdev)
struct virtio_pcidev_device *dev;
int err;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/arch/um/drivers/virtio_uml.c b/arch/um/drivers/virtio_uml.c
index c24da0cf1627..ac269e6148fc 100644
--- a/arch/um/drivers/virtio_uml.c
+++ b/arch/um/drivers/virtio_uml.c
@@ -965,7 +965,7 @@ static struct virtqueue *vu_setup_vq(struct virtio_device *vdev,
int num = MAX_SUPPORTED_QUEUE_SIZE;
int rc;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info) {
rc = -ENOMEM;
goto error_kzalloc;
@@ -1217,7 +1217,7 @@ static int virtio_uml_probe(struct platform_device *pdev)
return PTR_ERR(pdata);
}
- vu_dev = kzalloc(sizeof(*vu_dev), GFP_KERNEL);
+ vu_dev = kzalloc_obj(*vu_dev, GFP_KERNEL);
if (!vu_dev)
return -ENOMEM;
diff --git a/arch/um/drivers/xterm_kern.c b/arch/um/drivers/xterm_kern.c
index 3971252cb1a6..7740d9a3b090 100644
--- a/arch/um/drivers/xterm_kern.c
+++ b/arch/um/drivers/xterm_kern.c
@@ -45,7 +45,7 @@ int xterm_fd(int socket, int *pid_out)
struct xterm_wait *data;
int err, ret;
- data = kmalloc(sizeof(*data), GFP_KERNEL);
+ data = kmalloc_obj(*data, GFP_KERNEL);
if (data == NULL) {
printk(KERN_ERR "xterm_fd : failed to allocate xterm_wait\n");
return -ENOMEM;
diff --git a/arch/um/kernel/irq.c b/arch/um/kernel/irq.c
index f4b13f15a9c1..5929d498b65f 100644
--- a/arch/um/kernel/irq.c
+++ b/arch/um/kernel/irq.c
@@ -326,7 +326,7 @@ static int activate_fd(int irq, int fd, enum um_irq_type type, void *dev_id,
/* don't restore interrupts */
raw_spin_unlock(&irq_lock);
- new = kzalloc(sizeof(*irq_entry), GFP_ATOMIC);
+ new = kzalloc_obj(*irq_entry, GFP_ATOMIC);
if (!new) {
local_irq_restore(flags);
return -ENOMEM;
diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c
index 1b86f48c7e84..7bf44927519d 100644
--- a/arch/x86/coco/sev/core.c
+++ b/arch/x86/coco/sev/core.c
@@ -1542,7 +1542,7 @@ static struct aesgcm_ctx *snp_init_crypto(u8 *key, size_t keylen)
{
struct aesgcm_ctx *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return NULL;
@@ -1590,7 +1590,7 @@ struct snp_msg_desc *snp_msg_alloc(void)
BUILD_BUG_ON(sizeof(struct snp_guest_msg) > PAGE_SIZE);
- mdesc = kzalloc(sizeof(struct snp_msg_desc), GFP_KERNEL);
+ mdesc = kzalloc_obj(struct snp_msg_desc, GFP_KERNEL);
if (!mdesc)
return ERR_PTR(-ENOMEM);
@@ -1945,7 +1945,7 @@ static int __init snp_get_tsc_info(void)
struct snp_guest_req req = {};
int rc = -ENOMEM;
- tsc_req = kzalloc(sizeof(*tsc_req), GFP_KERNEL);
+ tsc_req = kzalloc_obj(*tsc_req, GFP_KERNEL);
if (!tsc_req)
return rc;
diff --git a/arch/x86/events/amd/iommu.c b/arch/x86/events/amd/iommu.c
index a721da9987dd..17e383c20271 100644
--- a/arch/x86/events/amd/iommu.c
+++ b/arch/x86/events/amd/iommu.c
@@ -387,7 +387,7 @@ static __init int _init_events_attrs(void)
while (amd_iommu_v2_event_descs[i].attr.attr.name)
i++;
- attrs = kcalloc(i + 1, sizeof(*attrs), GFP_KERNEL);
+ attrs = kzalloc_objs(*attrs, i + 1, GFP_KERNEL);
if (!attrs)
return -ENOMEM;
@@ -422,7 +422,7 @@ static __init int init_one_iommu(unsigned int idx)
struct perf_amd_iommu *perf_iommu;
int ret;
- perf_iommu = kzalloc(sizeof(struct perf_amd_iommu), GFP_KERNEL);
+ perf_iommu = kzalloc_obj(struct perf_amd_iommu, GFP_KERNEL);
if (!perf_iommu)
return -ENOMEM;
diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c
index 9293ce50574d..c0ed0dfbaeaa 100644
--- a/arch/x86/events/amd/uncore.c
+++ b/arch/x86/events/amd/uncore.c
@@ -726,7 +726,7 @@ int amd_uncore_df_ctx_init(struct amd_uncore *uncore, unsigned int cpu)
goto done;
/* No grouping, single instance for a system */
- uncore->pmus = kzalloc(sizeof(*uncore->pmus), GFP_KERNEL);
+ uncore->pmus = kzalloc_obj(*uncore->pmus, GFP_KERNEL);
if (!uncore->pmus)
goto done;
@@ -860,7 +860,7 @@ int amd_uncore_l3_ctx_init(struct amd_uncore *uncore, unsigned int cpu)
goto done;
/* No grouping, single instance for a system */
- uncore->pmus = kzalloc(sizeof(*uncore->pmus), GFP_KERNEL);
+ uncore->pmus = kzalloc_obj(*uncore->pmus, GFP_KERNEL);
if (!uncore->pmus)
goto done;
diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index d4468efbdcd9..52f7ad5adeb1 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -2389,7 +2389,7 @@ static struct cpu_hw_events *allocate_fake_cpuc(struct pmu *event_pmu)
struct cpu_hw_events *cpuc;
int cpu;
- cpuc = kzalloc(sizeof(*cpuc), GFP_KERNEL);
+ cpuc = kzalloc_obj(*cpuc, GFP_KERNEL);
if (!cpuc)
return ERR_PTR(-ENOMEM);
cpuc->is_fake = 1;
diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
index f3ae1f8ee3cd..41f571040145 100644
--- a/arch/x86/events/intel/core.c
+++ b/arch/x86/events/intel/core.c
@@ -7378,9 +7378,8 @@ static __always_inline int intel_pmu_init_hybrid(enum hybrid_pmu_type pmus)
int idx = 0, bit;
x86_pmu.num_hybrid_pmus = hweight_long(pmus_mask);
- x86_pmu.hybrid_pmu = kcalloc(x86_pmu.num_hybrid_pmus,
- sizeof(struct x86_hybrid_pmu),
- GFP_KERNEL);
+ x86_pmu.hybrid_pmu = kzalloc_objs(struct x86_hybrid_pmu,
+ x86_pmu.num_hybrid_pmus, GFP_KERNEL);
if (!x86_pmu.hybrid_pmu)
return -ENOMEM;
diff --git a/arch/x86/events/intel/uncore.c b/arch/x86/events/intel/uncore.c
index 4684649109d9..9095f1eeff6e 100644
--- a/arch/x86/events/intel/uncore.c
+++ b/arch/x86/events/intel/uncore.c
@@ -107,7 +107,7 @@ struct pci2phy_map *__find_pci2phy_map(int segment)
if (!alloc) {
raw_spin_unlock(&pci2phy_map_lock);
- alloc = kmalloc(sizeof(struct pci2phy_map), GFP_KERNEL);
+ alloc = kmalloc_obj(struct pci2phy_map, GFP_KERNEL);
raw_spin_lock(&pci2phy_map_lock);
if (!alloc)
@@ -990,7 +990,7 @@ static int __init uncore_type_init(struct intel_uncore_type *type)
size_t size;
int i, j;
- pmus = kcalloc(type->num_boxes, sizeof(*pmus), GFP_KERNEL);
+ pmus = kzalloc_objs(*pmus, type->num_boxes, GFP_KERNEL);
if (!pmus)
return -ENOMEM;
@@ -1016,8 +1016,7 @@ static int __init uncore_type_init(struct intel_uncore_type *type)
} *attr_group;
for (i = 0; type->event_descs[i].attr.attr.name; i++);
- attr_group = kzalloc(struct_size(attr_group, attrs, i + 1),
- GFP_KERNEL);
+ attr_group = kzalloc_flex(*attr_group, attrs, i + 1, GFP_KERNEL);
if (!attr_group)
goto err;
diff --git a/arch/x86/events/intel/uncore_discovery.c b/arch/x86/events/intel/uncore_discovery.c
index b46575254dbe..f8d1328d8346 100644
--- a/arch/x86/events/intel/uncore_discovery.c
+++ b/arch/x86/events/intel/uncore_discovery.c
@@ -68,7 +68,7 @@ add_uncore_discovery_type(struct uncore_unit_discovery *unit)
return NULL;
}
- type = kzalloc(sizeof(struct intel_uncore_discovery_type), GFP_KERNEL);
+ type = kzalloc_obj(struct intel_uncore_discovery_type, GFP_KERNEL);
if (!type)
return NULL;
@@ -215,7 +215,7 @@ uncore_insert_box_info(struct uncore_unit_discovery *unit,
return;
}
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return;
@@ -744,8 +744,9 @@ intel_uncore_generic_init_uncores(enum uncore_access_type type_id, int num_extra
struct rb_node *node;
int i = 0;
- uncores = kcalloc(num_discovered_types[type_id] + num_extra + 1,
- sizeof(struct intel_uncore_type *), GFP_KERNEL);
+ uncores = kzalloc_objs(struct intel_uncore_type *,
+ num_discovered_types[type_id] + num_extra + 1,
+ GFP_KERNEL);
if (!uncores)
return empty_uncore;
@@ -754,7 +755,7 @@ intel_uncore_generic_init_uncores(enum uncore_access_type type_id, int num_extra
if (type->access_type != type_id)
continue;
- uncore = kzalloc(sizeof(struct intel_uncore_type), GFP_KERNEL);
+ uncore = kzalloc_obj(struct intel_uncore_type, GFP_KERNEL);
if (!uncore)
break;
diff --git a/arch/x86/events/intel/uncore_snbep.c b/arch/x86/events/intel/uncore_snbep.c
index 7ca0429c4004..94682b067e35 100644
--- a/arch/x86/events/intel/uncore_snbep.c
+++ b/arch/x86/events/intel/uncore_snbep.c
@@ -3748,12 +3748,13 @@ static int pmu_alloc_topology(struct intel_uncore_type *type, int topology_type)
if (!type->num_boxes)
return -EPERM;
- topology = kcalloc(uncore_max_dies(), sizeof(*topology), GFP_KERNEL);
+ topology = kzalloc_objs(*topology, uncore_max_dies(), GFP_KERNEL);
if (!topology)
goto err;
for (die = 0; die < uncore_max_dies(); die++) {
- topology[die] = kcalloc(type->num_boxes, sizeof(**topology), GFP_KERNEL);
+ topology[die] = kzalloc_objs(**topology, type->num_boxes,
+ GFP_KERNEL);
if (!topology[die])
goto clear;
for (idx = 0; idx < type->num_boxes; idx++) {
@@ -3882,11 +3883,11 @@ pmu_set_mapping(struct intel_uncore_type *type, struct attribute_group *ag,
goto clear_topology;
/* One more for NULL. */
- attrs = kcalloc((uncore_max_dies() + 1), sizeof(*attrs), GFP_KERNEL);
+ attrs = kzalloc_objs(*attrs, (uncore_max_dies() + 1), GFP_KERNEL);
if (!attrs)
goto clear_topology;
- eas = kcalloc(uncore_max_dies(), sizeof(*eas), GFP_KERNEL);
+ eas = kzalloc_objs(*eas, uncore_max_dies(), GFP_KERNEL);
if (!eas)
goto clear_attrs;
@@ -6411,7 +6412,7 @@ static void spr_update_device_location(int type_id)
} else
return;
- root = kzalloc(sizeof(struct rb_root), GFP_KERNEL);
+ root = kzalloc_obj(struct rb_root, GFP_KERNEL);
if (!root) {
type->num_boxes = 0;
return;
@@ -6424,7 +6425,7 @@ static void spr_update_device_location(int type_id)
if (die < 0)
continue;
- unit = kzalloc(sizeof(*unit), GFP_KERNEL);
+ unit = kzalloc_obj(*unit, GFP_KERNEL);
if (!unit)
continue;
unit->die = die;
diff --git a/arch/x86/events/rapl.c b/arch/x86/events/rapl.c
index defd86137f12..27b3fd6e663c 100644
--- a/arch/x86/events/rapl.c
+++ b/arch/x86/events/rapl.c
@@ -704,7 +704,7 @@ static int __init init_rapl_pmu(struct rapl_pmus *rapl_pmus)
int idx;
for (idx = 0; idx < rapl_pmus->nr_rapl_pmu; idx++) {
- rapl_pmu = kzalloc(sizeof(*rapl_pmu), GFP_KERNEL);
+ rapl_pmu = kzalloc_obj(*rapl_pmu, GFP_KERNEL);
if (!rapl_pmu)
goto free;
@@ -742,7 +742,7 @@ static int __init init_rapl_pmus(struct rapl_pmus **rapl_pmus_ptr, int rapl_pmu_
else if (rapl_pmu_scope != PERF_PMU_SCOPE_PKG)
return -EINVAL;
- rapl_pmus = kzalloc(struct_size(rapl_pmus, rapl_pmu, nr_rapl_pmu), GFP_KERNEL);
+ rapl_pmus = kzalloc_flex(*rapl_pmus, rapl_pmu, nr_rapl_pmu, GFP_KERNEL);
if (!rapl_pmus)
return -ENOMEM;
diff --git a/arch/x86/hyperv/hv_init.c b/arch/x86/hyperv/hv_init.c
index 5dbe9bd67891..e945ed623027 100644
--- a/arch/x86/hyperv/hv_init.c
+++ b/arch/x86/hyperv/hv_init.c
@@ -467,9 +467,8 @@ void __init hyperv_init(void)
if (hv_isolation_type_tdx())
hv_vp_assist_page = NULL;
else
- hv_vp_assist_page = kcalloc(nr_cpu_ids,
- sizeof(*hv_vp_assist_page),
- GFP_KERNEL);
+ hv_vp_assist_page = kzalloc_objs(*hv_vp_assist_page, nr_cpu_ids,
+ GFP_KERNEL);
if (!hv_vp_assist_page) {
ms_hyperv.hints &= ~HV_X64_ENLIGHTENED_VMCS_RECOMMENDED;
diff --git a/arch/x86/hyperv/irqdomain.c b/arch/x86/hyperv/irqdomain.c
index c3ba12b1bc07..365e364268d9 100644
--- a/arch/x86/hyperv/irqdomain.c
+++ b/arch/x86/hyperv/irqdomain.c
@@ -248,7 +248,7 @@ static void hv_irq_compose_msi_msg(struct irq_data *data, struct msi_msg *msg)
return;
}
- stored_entry = kzalloc(sizeof(*stored_entry), GFP_ATOMIC);
+ stored_entry = kzalloc_obj(*stored_entry, GFP_ATOMIC);
if (!stored_entry) {
pr_debug("%s: failed to allocate chip data\n", __func__);
return;
diff --git a/arch/x86/hyperv/ivm.c b/arch/x86/hyperv/ivm.c
index be7fad43a88d..07f125668852 100644
--- a/arch/x86/hyperv/ivm.c
+++ b/arch/x86/hyperv/ivm.c
@@ -531,7 +531,7 @@ static int hv_list_enc_add(const u64 *pfn_list, int count)
raw_spin_unlock_irqrestore(&hv_list_enc_lock, flags);
/* No adjacent region found -- create a new one */
- ent = kzalloc(sizeof(struct hv_enc_pfn_region), GFP_KERNEL);
+ ent = kzalloc_obj(struct hv_enc_pfn_region, GFP_KERNEL);
if (!ent)
return -ENOMEM;
@@ -598,7 +598,7 @@ static int hv_list_enc_remove(const u64 *pfn_list, int count)
unlock_split:
raw_spin_unlock_irqrestore(&hv_list_enc_lock, flags);
- ent = kzalloc(sizeof(struct hv_enc_pfn_region), GFP_KERNEL);
+ ent = kzalloc_obj(struct hv_enc_pfn_region, GFP_KERNEL);
if (!ent)
return -ENOMEM;
diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
index 693b59b2f7d0..0ffc7de200b1 100644
--- a/arch/x86/kernel/alternative.c
+++ b/arch/x86/kernel/alternative.c
@@ -2160,7 +2160,7 @@ void __init_or_module alternatives_smp_module_add(struct module *mod,
/* Don't bother remembering, we'll never have to undo it. */
goto smp_unlock;
- smp = kzalloc(sizeof(*smp), GFP_KERNEL);
+ smp = kzalloc_obj(*smp, GFP_KERNEL);
if (NULL == smp)
/* we'll run the (safe but slow) SMP code then ... */
goto unlock;
diff --git a/arch/x86/kernel/amd_nb.c b/arch/x86/kernel/amd_nb.c
index c1acead6227a..852e8ff5ebd9 100644
--- a/arch/x86/kernel/amd_nb.c
+++ b/arch/x86/kernel/amd_nb.c
@@ -68,7 +68,8 @@ static int amd_cache_northbridges(void)
amd_northbridges.num = amd_num_nodes();
- nb = kcalloc(amd_northbridges.num, sizeof(struct amd_northbridge), GFP_KERNEL);
+ nb = kzalloc_objs(struct amd_northbridge, amd_northbridges.num,
+ GFP_KERNEL);
if (!nb)
return -ENOMEM;
diff --git a/arch/x86/kernel/amd_node.c b/arch/x86/kernel/amd_node.c
index 3d0a4768d603..2091cb1089a2 100644
--- a/arch/x86/kernel/amd_node.c
+++ b/arch/x86/kernel/amd_node.c
@@ -282,7 +282,7 @@ static int __init amd_smn_init(void)
return -ENODEV;
num_nodes = amd_num_nodes();
- amd_roots = kcalloc(num_nodes, sizeof(*amd_roots), GFP_KERNEL);
+ amd_roots = kzalloc_objs(*amd_roots, num_nodes, GFP_KERNEL);
if (!amd_roots)
return -ENOMEM;
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 28f934f05a85..aa3675ba08bb 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -2876,7 +2876,7 @@ int mp_irqdomain_alloc(struct irq_domain *domain, unsigned int virq,
if (irq_resolve_mapping(domain, (irq_hw_number_t)pin))
return -EEXIST;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c
index 3175d7c134e9..13efc166bd3f 100644
--- a/arch/x86/kernel/apm_32.c
+++ b/arch/x86/kernel/apm_32.c
@@ -1576,7 +1576,7 @@ static int do_open(struct inode *inode, struct file *filp)
{
struct apm_user *as;
- as = kmalloc(sizeof(*as), GFP_KERNEL);
+ as = kmalloc_obj(*as, GFP_KERNEL);
if (as == NULL)
return -ENOMEM;
diff --git a/arch/x86/kernel/cpu/amd_cache_disable.c b/arch/x86/kernel/cpu/amd_cache_disable.c
index 8843b9557aea..13985d2f8b1d 100644
--- a/arch/x86/kernel/cpu/amd_cache_disable.c
+++ b/arch/x86/kernel/cpu/amd_cache_disable.c
@@ -255,7 +255,7 @@ static void init_amd_l3_attrs(void)
if (amd_nb_has_feature(AMD_NB_L3_PARTITIONING))
n += 1;
- amd_l3_attrs = kcalloc(n, sizeof(*amd_l3_attrs), GFP_KERNEL);
+ amd_l3_attrs = kzalloc_objs(*amd_l3_attrs, n, GFP_KERNEL);
if (!amd_l3_attrs)
return;
diff --git a/arch/x86/kernel/cpu/mce/amd.c b/arch/x86/kernel/cpu/mce/amd.c
index 3f1dda355307..4e7a6101e7ed 100644
--- a/arch/x86/kernel/cpu/mce/amd.c
+++ b/arch/x86/kernel/cpu/mce/amd.c
@@ -1088,7 +1088,7 @@ static int allocate_threshold_blocks(unsigned int cpu, struct threshold_bank *tb
(high & MASK_LOCKED_HI))
goto recurse;
- b = kzalloc(sizeof(struct threshold_block), GFP_KERNEL);
+ b = kzalloc_obj(struct threshold_block, GFP_KERNEL);
if (!b)
return -ENOMEM;
@@ -1147,7 +1147,7 @@ static int threshold_create_bank(struct threshold_bank **bp, unsigned int cpu,
if (!dev)
return -ENODEV;
- b = kzalloc(sizeof(struct threshold_bank), GFP_KERNEL);
+ b = kzalloc_obj(struct threshold_bank, GFP_KERNEL);
if (!b) {
err = -ENOMEM;
goto out;
@@ -1250,7 +1250,7 @@ void mce_threshold_create_device(unsigned int cpu)
return;
numbanks = this_cpu_read(mce_num_banks);
- bp = kcalloc(numbanks, sizeof(*bp), GFP_KERNEL);
+ bp = kzalloc_objs(*bp, numbanks, GFP_KERNEL);
if (!bp)
return;
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index 34440021e8cf..dd6a06ab5270 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -2692,7 +2692,7 @@ static int mce_device_create(unsigned int cpu)
if (dev)
return 0;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
dev->id = cpu;
diff --git a/arch/x86/kernel/cpu/mce/dev-mcelog.c b/arch/x86/kernel/cpu/mce/dev-mcelog.c
index 8d023239ce18..ec603e2c089a 100644
--- a/arch/x86/kernel/cpu/mce/dev-mcelog.c
+++ b/arch/x86/kernel/cpu/mce/dev-mcelog.c
@@ -338,7 +338,7 @@ static __init int dev_mcelog_init_device(void)
int err;
mce_log_len = max(MCE_LOG_MIN_LEN, num_online_cpus());
- mcelog = kzalloc(struct_size(mcelog, entry, mce_log_len), GFP_KERNEL);
+ mcelog = kzalloc_flex(*mcelog, entry, mce_log_len, GFP_KERNEL);
if (!mcelog)
return -ENOMEM;
diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c
index caa0f595abcf..e58a73ae431b 100644
--- a/arch/x86/kernel/cpu/microcode/amd.c
+++ b/arch/x86/kernel/cpu/microcode/amd.c
@@ -1086,7 +1086,7 @@ static int verify_and_add_patch(u8 family, u8 *fw, unsigned int leftover,
if (ret)
return ret;
- patch = kzalloc(sizeof(*patch), GFP_KERNEL);
+ patch = kzalloc_obj(*patch, GFP_KERNEL);
if (!patch) {
pr_err("Patch allocation failure.\n");
return -EINVAL;
diff --git a/arch/x86/kernel/cpu/mtrr/generic.c b/arch/x86/kernel/cpu/mtrr/generic.c
index 0863733858dc..d7db12c06950 100644
--- a/arch/x86/kernel/cpu/mtrr/generic.c
+++ b/arch/x86/kernel/cpu/mtrr/generic.c
@@ -410,7 +410,7 @@ void __init mtrr_copy_map(void)
mutex_lock(&mtrr_mutex);
- cache_map = kcalloc(new_size, sizeof(*cache_map), GFP_KERNEL);
+ cache_map = kzalloc_objs(*cache_map, new_size, GFP_KERNEL);
if (cache_map) {
memmove(cache_map, init_cache_map,
cache_map_n * sizeof(*cache_map));
diff --git a/arch/x86/kernel/cpu/mtrr/legacy.c b/arch/x86/kernel/cpu/mtrr/legacy.c
index 2415ffaaf02c..ee7bc7b5ce96 100644
--- a/arch/x86/kernel/cpu/mtrr/legacy.c
+++ b/arch/x86/kernel/cpu/mtrr/legacy.c
@@ -80,7 +80,7 @@ static struct syscore mtrr_syscore = {
void mtrr_register_syscore(void)
{
- mtrr_value = kcalloc(num_var_ranges, sizeof(*mtrr_value), GFP_KERNEL);
+ mtrr_value = kzalloc_objs(*mtrr_value, num_var_ranges, GFP_KERNEL);
/*
* The CPU has no MTRR and seems to not support SMP. They have
diff --git a/arch/x86/kernel/cpu/sgx/driver.c b/arch/x86/kernel/cpu/sgx/driver.c
index a42c7180900b..74fb59d96730 100644
--- a/arch/x86/kernel/cpu/sgx/driver.c
+++ b/arch/x86/kernel/cpu/sgx/driver.c
@@ -19,7 +19,7 @@ static int __sgx_open(struct inode *inode, struct file *file)
struct sgx_encl *encl;
int ret;
- encl = kzalloc(sizeof(*encl), GFP_KERNEL);
+ encl = kzalloc_obj(*encl, GFP_KERNEL);
if (!encl)
return -ENOMEM;
diff --git a/arch/x86/kernel/cpu/sgx/encl.c b/arch/x86/kernel/cpu/sgx/encl.c
index cf149b9f4916..8b6c400c4008 100644
--- a/arch/x86/kernel/cpu/sgx/encl.c
+++ b/arch/x86/kernel/cpu/sgx/encl.c
@@ -854,7 +854,7 @@ int sgx_encl_mm_add(struct sgx_encl *encl, struct mm_struct *mm)
if (sgx_encl_find_mm(encl, mm))
return 0;
- encl_mm = kzalloc(sizeof(*encl_mm), GFP_KERNEL);
+ encl_mm = kzalloc_obj(*encl_mm, GFP_KERNEL);
if (!encl_mm)
return -ENOMEM;
@@ -1163,7 +1163,7 @@ struct sgx_encl_page *sgx_encl_page_alloc(struct sgx_encl *encl,
struct sgx_encl_page *encl_page;
unsigned long prot;
- encl_page = kzalloc(sizeof(*encl_page), GFP_KERNEL);
+ encl_page = kzalloc_obj(*encl_page, GFP_KERNEL);
if (!encl_page)
return ERR_PTR(-ENOMEM);
diff --git a/arch/x86/kernel/cpu/sgx/ioctl.c b/arch/x86/kernel/cpu/sgx/ioctl.c
index 0bc36957979d..ef6674067d80 100644
--- a/arch/x86/kernel/cpu/sgx/ioctl.c
+++ b/arch/x86/kernel/cpu/sgx/ioctl.c
@@ -27,7 +27,7 @@ struct sgx_va_page *sgx_encl_grow(struct sgx_encl *encl, bool reclaim)
(SGX_ENCL_PAGE_VA_OFFSET_MASK >> 3) + 1);
if (!(encl->page_cnt % SGX_VA_SLOT_COUNT)) {
- va_page = kzalloc(sizeof(*va_page), GFP_KERNEL);
+ va_page = kzalloc_obj(*va_page, GFP_KERNEL);
if (!va_page)
return ERR_PTR(-ENOMEM);
diff --git a/arch/x86/kernel/cpu/sgx/main.c b/arch/x86/kernel/cpu/sgx/main.c
index dc73194416ac..1021a4e33ac6 100644
--- a/arch/x86/kernel/cpu/sgx/main.c
+++ b/arch/x86/kernel/cpu/sgx/main.c
@@ -798,7 +798,8 @@ static bool __init sgx_page_cache_init(void)
int nid;
int i;
- sgx_numa_nodes = kmalloc_array(num_possible_nodes(), sizeof(*sgx_numa_nodes), GFP_KERNEL);
+ sgx_numa_nodes = kmalloc_objs(*sgx_numa_nodes, num_possible_nodes(),
+ GFP_KERNEL);
if (!sgx_numa_nodes)
return false;
diff --git a/arch/x86/kernel/cpu/sgx/virt.c b/arch/x86/kernel/cpu/sgx/virt.c
index 8de1f1a755f2..c7be8d0ea869 100644
--- a/arch/x86/kernel/cpu/sgx/virt.c
+++ b/arch/x86/kernel/cpu/sgx/virt.c
@@ -264,7 +264,7 @@ static int __sgx_vepc_open(struct inode *inode, struct file *file)
{
struct sgx_vepc *vepc;
- vepc = kzalloc(sizeof(struct sgx_vepc), GFP_KERNEL);
+ vepc = kzalloc_obj(struct sgx_vepc, GFP_KERNEL);
if (!vepc)
return -ENOMEM;
mutex_init(&vepc->lock);
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index d6387dde3ff9..43884229c421 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -544,7 +544,7 @@ static struct irq_domain *hpet_create_irq_domain(int hpet_id)
if (x86_vector_domain == NULL)
return NULL;
- domain_info = kzalloc(sizeof(*domain_info), GFP_KERNEL);
+ domain_info = kzalloc_obj(*domain_info, GFP_KERNEL);
if (!domain_info)
return NULL;
@@ -1038,7 +1038,7 @@ int __init hpet_enable(void)
if (IS_ENABLED(CONFIG_HPET_EMULATE_RTC) && channels < 2)
goto out_nohpet;
- hc = kcalloc(channels, sizeof(*hc), GFP_KERNEL);
+ hc = kzalloc_objs(*hc, channels, GFP_KERNEL);
if (!hc) {
pr_warn("Disabling HPET.\n");
goto out_nohpet;
diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c
index ff40f09ad911..30ab130329dc 100644
--- a/arch/x86/kernel/ioport.c
+++ b/arch/x86/kernel/ioport.c
@@ -90,7 +90,7 @@ long ksys_ioperm(unsigned long from, unsigned long num, int turn_on)
/* No point to allocate a bitmap just to clear permissions */
if (!turn_on)
return 0;
- iobm = kmalloc(sizeof(*iobm), GFP_KERNEL);
+ iobm = kmalloc_obj(*iobm, GFP_KERNEL);
if (!iobm)
return -ENOMEM;
diff --git a/arch/x86/kernel/kdebugfs.c b/arch/x86/kernel/kdebugfs.c
index e2e89bebcbc3..4d7bf56524d8 100644
--- a/arch/x86/kernel/kdebugfs.c
+++ b/arch/x86/kernel/kdebugfs.c
@@ -102,7 +102,7 @@ static int __init create_setup_data_nodes(struct dentry *parent)
pa_data = boot_params.hdr.setup_data;
while (pa_data) {
- node = kmalloc(sizeof(*node), GFP_KERNEL);
+ node = kmalloc_obj(*node, GFP_KERNEL);
if (!node) {
error = -ENOMEM;
goto err_dir;
diff --git a/arch/x86/kernel/kexec-bzimage64.c b/arch/x86/kernel/kexec-bzimage64.c
index 251edc5a040f..b7ba1ec486f9 100644
--- a/arch/x86/kernel/kexec-bzimage64.c
+++ b/arch/x86/kernel/kexec-bzimage64.c
@@ -682,7 +682,7 @@ static void *bzImage64_load(struct kimage *image, char *kernel,
goto out_free_params;
/* Allocate loader specific data */
- ldata = kzalloc(sizeof(struct bzimage64_data), GFP_KERNEL);
+ ldata = kzalloc_obj(struct bzimage64_data, GFP_KERNEL);
if (!ldata) {
ret = -ENOMEM;
goto out_free_params;
diff --git a/arch/x86/kernel/ksysfs.c b/arch/x86/kernel/ksysfs.c
index d547de9b3ed8..c5614b59be4a 100644
--- a/arch/x86/kernel/ksysfs.c
+++ b/arch/x86/kernel/ksysfs.c
@@ -344,7 +344,7 @@ static int __init create_setup_data_nodes(struct kobject *parent)
if (ret)
goto out_setup_data_kobj;
- kobjp = kmalloc_array(nr, sizeof(*kobjp), GFP_KERNEL);
+ kobjp = kmalloc_objs(*kobjp, nr, GFP_KERNEL);
if (!kobjp) {
ret = -ENOMEM;
goto out_setup_data_kobj;
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 26ab6f8e36df..3bc062363814 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -226,7 +226,7 @@ static void kvm_async_pf_task_wake(u32 token)
*/
if (!dummy) {
raw_spin_unlock(&b->lock);
- dummy = kzalloc(sizeof(*dummy), GFP_ATOMIC);
+ dummy = kzalloc_obj(*dummy, GFP_ATOMIC);
/*
* Continue looping on allocation failure, eventually
diff --git a/arch/x86/kernel/ldt.c b/arch/x86/kernel/ldt.c
index 0f19ef355f5f..40c5bf97dd5c 100644
--- a/arch/x86/kernel/ldt.c
+++ b/arch/x86/kernel/ldt.c
@@ -154,7 +154,7 @@ static struct ldt_struct *alloc_ldt_struct(unsigned int num_entries)
if (num_entries > LDT_ENTRIES)
return NULL;
- new_ldt = kmalloc(sizeof(struct ldt_struct), GFP_KERNEL_ACCOUNT);
+ new_ldt = kmalloc_obj(struct ldt_struct, GFP_KERNEL_ACCOUNT);
if (!new_ldt)
return NULL;
diff --git a/arch/x86/kernel/uprobes.c b/arch/x86/kernel/uprobes.c
index 619dddf54424..61d37f5a5ff9 100644
--- a/arch/x86/kernel/uprobes.c
+++ b/arch/x86/kernel/uprobes.c
@@ -696,7 +696,7 @@ static struct uprobe_trampoline *create_uprobe_trampoline(unsigned long vaddr)
if (IS_ERR_VALUE(vaddr))
return NULL;
- tramp = kzalloc(sizeof(*tramp), GFP_KERNEL);
+ tramp = kzalloc_obj(*tramp, GFP_KERNEL);
if (unlikely(!tramp))
return NULL;
diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
index e6cc84143f3e..3bb70763af9c 100644
--- a/arch/x86/kernel/vm86_32.c
+++ b/arch/x86/kernel/vm86_32.c
@@ -232,7 +232,7 @@ static long do_sys_vm86(struct vm86plus_struct __user *user_vm86, bool plus)
}
if (!vm86) {
- if (!(vm86 = kzalloc(sizeof(*vm86), GFP_KERNEL)))
+ if (!(vm86 = kzalloc_obj(*vm86, GFP_KERNEL)))
return -ENOMEM;
tsk->thread.vm86 = vm86;
}
diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
index 7fe4e58a6ebf..c196aa0c1bd1 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c
@@ -602,7 +602,7 @@ int kvm_vcpu_ioctl_set_cpuid(struct kvm_vcpu *vcpu,
if (IS_ERR(e))
return PTR_ERR(e);
- e2 = kvmalloc_array(cpuid->nent, sizeof(*e2), GFP_KERNEL_ACCOUNT);
+ e2 = kvmalloc_objs(*e2, cpuid->nent, GFP_KERNEL_ACCOUNT);
if (!e2) {
r = -ENOMEM;
goto out_free_cpuid;
@@ -1991,7 +1991,8 @@ int kvm_dev_ioctl_get_cpuid(struct kvm_cpuid2 *cpuid,
if (sanity_check_entries(entries, cpuid->nent, type))
return -EINVAL;
- array.entries = kvcalloc(cpuid->nent, sizeof(struct kvm_cpuid_entry2), GFP_KERNEL);
+ array.entries = kvzalloc_objs(struct kvm_cpuid_entry2, cpuid->nent,
+ GFP_KERNEL);
if (!array.entries)
return -ENOMEM;
diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
index 49bf744ca8e3..30202942289a 100644
--- a/arch/x86/kvm/hyperv.c
+++ b/arch/x86/kvm/hyperv.c
@@ -968,7 +968,7 @@ int kvm_hv_vcpu_init(struct kvm_vcpu *vcpu)
if (hv_vcpu)
return 0;
- hv_vcpu = kzalloc(sizeof(struct kvm_vcpu_hv), GFP_KERNEL_ACCOUNT);
+ hv_vcpu = kzalloc_obj(struct kvm_vcpu_hv, GFP_KERNEL_ACCOUNT);
if (!hv_vcpu)
return -ENOMEM;
diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c
index 850972deac8e..1982b0077ddd 100644
--- a/arch/x86/kvm/i8254.c
+++ b/arch/x86/kvm/i8254.c
@@ -740,7 +740,7 @@ struct kvm_pit *kvm_create_pit(struct kvm *kvm, u32 flags)
pid_t pid_nr;
int ret;
- pit = kzalloc(sizeof(struct kvm_pit), GFP_KERNEL_ACCOUNT);
+ pit = kzalloc_obj(struct kvm_pit, GFP_KERNEL_ACCOUNT);
if (!pit)
return NULL;
diff --git a/arch/x86/kvm/i8259.c b/arch/x86/kvm/i8259.c
index 2ac7f1678c46..59e28c45d7dc 100644
--- a/arch/x86/kvm/i8259.c
+++ b/arch/x86/kvm/i8259.c
@@ -587,7 +587,7 @@ int kvm_pic_init(struct kvm *kvm)
struct kvm_pic *s;
int ret;
- s = kzalloc(sizeof(struct kvm_pic), GFP_KERNEL_ACCOUNT);
+ s = kzalloc_obj(struct kvm_pic, GFP_KERNEL_ACCOUNT);
if (!s)
return -ENOMEM;
spin_lock_init(&s->lock);
diff --git a/arch/x86/kvm/ioapic.c b/arch/x86/kvm/ioapic.c
index a38a8e2ac70b..bb257793b6cb 100644
--- a/arch/x86/kvm/ioapic.c
+++ b/arch/x86/kvm/ioapic.c
@@ -717,7 +717,7 @@ int kvm_ioapic_init(struct kvm *kvm)
struct kvm_ioapic *ioapic;
int ret;
- ioapic = kzalloc(sizeof(struct kvm_ioapic), GFP_KERNEL_ACCOUNT);
+ ioapic = kzalloc_obj(struct kvm_ioapic, GFP_KERNEL_ACCOUNT);
if (!ioapic)
return -ENOMEM;
spin_lock_init(&ioapic->lock);
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
index 2332a258de91..9381c58d4c85 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -3058,7 +3058,7 @@ int kvm_create_lapic(struct kvm_vcpu *vcpu)
return 0;
}
- apic = kzalloc(sizeof(*apic), GFP_KERNEL_ACCOUNT);
+ apic = kzalloc_obj(*apic, GFP_KERNEL_ACCOUNT);
if (!apic)
goto nomem;
diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
index 3911ac9bddfd..b922a8b00057 100644
--- a/arch/x86/kvm/mmu/mmu.c
+++ b/arch/x86/kvm/mmu/mmu.c
@@ -3971,7 +3971,7 @@ static int kvm_mmu_alloc_page_hash(struct kvm *kvm)
if (kvm->arch.mmu_page_hash)
return 0;
- h = kvcalloc(KVM_NUM_MMU_PAGES, sizeof(*h), GFP_KERNEL_ACCOUNT);
+ h = kvzalloc_objs(*h, KVM_NUM_MMU_PAGES, GFP_KERNEL_ACCOUNT);
if (!h)
return -ENOMEM;
diff --git a/arch/x86/kvm/svm/nested.c b/arch/x86/kvm/svm/nested.c
index de90b104a0dd..999fd3373dba 100644
--- a/arch/x86/kvm/svm/nested.c
+++ b/arch/x86/kvm/svm/nested.c
@@ -1781,7 +1781,7 @@ static int svm_get_nested_state(struct kvm_vcpu *vcpu,
if (clear_user(user_vmcb, KVM_STATE_NESTED_SVM_VMCB_SIZE))
return -EFAULT;
- ctl = kzalloc(sizeof(*ctl), GFP_KERNEL);
+ ctl = kzalloc_obj(*ctl, GFP_KERNEL);
if (!ctl)
return -ENOMEM;
diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c
index ea515cf41168..3f9c1aa39a0a 100644
--- a/arch/x86/kvm/svm/sev.c
+++ b/arch/x86/kvm/svm/sev.c
@@ -2512,7 +2512,7 @@ static int snp_launch_finish(struct kvm *kvm, struct kvm_sev_cmd *argp)
if (ret)
return ret;
- data = kzalloc(sizeof(*data), GFP_KERNEL_ACCOUNT);
+ data = kzalloc_obj(*data, GFP_KERNEL_ACCOUNT);
if (!data)
return -ENOMEM;
@@ -2711,7 +2711,7 @@ int sev_mem_enc_register_region(struct kvm *kvm,
if (range->addr > ULONG_MAX || range->size > ULONG_MAX)
return -EINVAL;
- region = kzalloc(sizeof(*region), GFP_KERNEL_ACCOUNT);
+ region = kzalloc_obj(*region, GFP_KERNEL_ACCOUNT);
if (!region)
return -ENOMEM;
diff --git a/arch/x86/kvm/vmx/tdx.c b/arch/x86/kvm/vmx/tdx.c
index 5df9d32d2058..adbb3060ae2f 100644
--- a/arch/x86/kvm/vmx/tdx.c
+++ b/arch/x86/kvm/vmx/tdx.c
@@ -2218,8 +2218,8 @@ static int tdx_get_capabilities(struct kvm_tdx_cmd *cmd)
if (nr_user_entries < td_conf->num_cpuid_config)
return -E2BIG;
- caps = kzalloc(struct_size(caps, cpuid.entries,
- td_conf->num_cpuid_config), GFP_KERNEL);
+ caps = kzalloc_flex(*caps, cpuid.entries, td_conf->num_cpuid_config,
+ GFP_KERNEL);
if (!caps)
return -ENOMEM;
@@ -2407,8 +2407,8 @@ static int __tdx_td_init(struct kvm *kvm, struct td_params *td_params,
kvm_tdx->td.tdcs_nr_pages = tdx_sysinfo->td_ctrl.tdcs_base_size / PAGE_SIZE;
/* TDVPS = TDVPR(4K page) + TDCX(multiple 4K pages), -1 for TDVPR. */
kvm_tdx->td.tdcx_nr_pages = tdx_sysinfo->td_ctrl.tdvps_base_size / PAGE_SIZE - 1;
- tdcs_pages = kcalloc(kvm_tdx->td.tdcs_nr_pages, sizeof(*kvm_tdx->td.tdcs_pages),
- GFP_KERNEL);
+ tdcs_pages = kzalloc_objs(*kvm_tdx->td.tdcs_pages,
+ kvm_tdx->td.tdcs_nr_pages, GFP_KERNEL);
if (!tdcs_pages)
goto free_tdr;
@@ -2743,7 +2743,7 @@ static int tdx_td_init(struct kvm *kvm, struct kvm_tdx_cmd *cmd)
goto out;
}
- td_params = kzalloc(sizeof(struct td_params), GFP_KERNEL);
+ td_params = kzalloc_obj(struct td_params, GFP_KERNEL);
if (!td_params) {
ret = -ENOMEM;
goto out;
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 391f4a5ce6dd..4344847f7119 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -6208,7 +6208,7 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
r = -EINVAL;
if (!lapic_in_kernel(vcpu))
goto out;
- u.lapic = kzalloc(sizeof(struct kvm_lapic_state), GFP_KERNEL);
+ u.lapic = kzalloc_obj(struct kvm_lapic_state, GFP_KERNEL);
r = -ENOMEM;
if (!u.lapic)
@@ -6410,7 +6410,7 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
if (vcpu->arch.guest_fpu.uabi_size > sizeof(struct kvm_xsave))
break;
- u.xsave = kzalloc(sizeof(struct kvm_xsave), GFP_KERNEL);
+ u.xsave = kzalloc_obj(struct kvm_xsave, GFP_KERNEL);
r = -ENOMEM;
if (!u.xsave)
break;
@@ -6459,7 +6459,7 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
}
case KVM_GET_XCRS: {
- u.xcrs = kzalloc(sizeof(struct kvm_xcrs), GFP_KERNEL);
+ u.xcrs = kzalloc_obj(struct kvm_xcrs, GFP_KERNEL);
r = -ENOMEM;
if (!u.xcrs)
break;
@@ -6619,7 +6619,7 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
vcpu->arch.guest_state_protected)
goto out;
- u.sregs2 = kzalloc(sizeof(struct kvm_sregs2), GFP_KERNEL);
+ u.sregs2 = kzalloc_obj(struct kvm_sregs2, GFP_KERNEL);
r = -ENOMEM;
if (!u.sregs2)
goto out;
@@ -6994,7 +6994,7 @@ static struct kvm_x86_msr_filter *kvm_alloc_msr_filter(bool default_allow)
{
struct kvm_x86_msr_filter *msr_filter;
- msr_filter = kzalloc(sizeof(*msr_filter), GFP_KERNEL_ACCOUNT);
+ msr_filter = kzalloc_obj(*msr_filter, GFP_KERNEL_ACCOUNT);
if (!msr_filter)
return NULL;
diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c
index 28eeb1b2a16c..1838a49eee76 100644
--- a/arch/x86/kvm/xen.c
+++ b/arch/x86/kvm/xen.c
@@ -1514,8 +1514,7 @@ static bool kvm_xen_schedop_poll(struct kvm_vcpu *vcpu, bool longmode,
return true;
}
- ports = kmalloc_array(sched_poll.nr_ports,
- sizeof(*ports), GFP_KERNEL);
+ ports = kmalloc_objs(*ports, sched_poll.nr_ports, GFP_KERNEL);
if (!ports) {
*r = -ENOMEM;
return true;
@@ -2116,7 +2115,7 @@ static int kvm_xen_eventfd_assign(struct kvm *kvm,
struct evtchnfd *evtchnfd;
int ret = -EINVAL;
- evtchnfd = kzalloc(sizeof(struct evtchnfd), GFP_KERNEL);
+ evtchnfd = kzalloc_obj(struct evtchnfd, GFP_KERNEL);
if (!evtchnfd)
return -ENOMEM;
@@ -2214,7 +2213,7 @@ static int kvm_xen_eventfd_reset(struct kvm *kvm)
idr_for_each_entry(&kvm->arch.xen.evtchn_ports, evtchnfd, i)
n++;
- all_evtchnfds = kmalloc_array(n, sizeof(struct evtchnfd *), GFP_KERNEL);
+ all_evtchnfds = kmalloc_objs(struct evtchnfd *, n, GFP_KERNEL);
if (!all_evtchnfds) {
mutex_unlock(&kvm->arch.xen.xen_lock);
return -ENOMEM;
diff --git a/arch/x86/mm/kmmio.c b/arch/x86/mm/kmmio.c
index 9f82019179e1..6ac981cec652 100644
--- a/arch/x86/mm/kmmio.c
+++ b/arch/x86/mm/kmmio.c
@@ -387,7 +387,7 @@ static int add_kmmio_fault_page(unsigned long addr)
return 0;
}
- f = kzalloc(sizeof(*f), GFP_ATOMIC);
+ f = kzalloc_obj(*f, GFP_ATOMIC);
if (!f)
return -1;
@@ -562,7 +562,7 @@ void unregister_kmmio_probe(struct kmmio_probe *p)
if (!release_list)
return;
- drelease = kmalloc(sizeof(*drelease), GFP_ATOMIC);
+ drelease = kmalloc_obj(*drelease, GFP_ATOMIC);
if (!drelease) {
pr_crit("leaking kmmio_fault_page objects.\n");
return;
diff --git a/arch/x86/mm/mmio-mod.c b/arch/x86/mm/mmio-mod.c
index c3317f0650d8..63294d590346 100644
--- a/arch/x86/mm/mmio-mod.c
+++ b/arch/x86/mm/mmio-mod.c
@@ -220,7 +220,7 @@ static void ioremap_trace_core(resource_size_t offset, unsigned long size,
void __iomem *addr)
{
static atomic_t next_id;
- struct remap_trace *trace = kmalloc(sizeof(*trace), GFP_KERNEL);
+ struct remap_trace *trace = kmalloc_obj(*trace, GFP_KERNEL);
/* These are page-unaligned. */
struct mmiotrace_map map = {
.phys = offset,
diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c
index 8a3d9722f602..fdf6ed96cbd0 100644
--- a/arch/x86/mm/pat/memtype.c
+++ b/arch/x86/mm/pat/memtype.c
@@ -574,7 +574,7 @@ int memtype_reserve(u64 start, u64 end, enum page_cache_mode req_type,
return -EINVAL;
}
- entry_new = kzalloc(sizeof(struct memtype), GFP_KERNEL);
+ entry_new = kzalloc_obj(struct memtype, GFP_KERNEL);
if (!entry_new)
return -ENOMEM;
@@ -966,7 +966,7 @@ static struct memtype *memtype_get_idx(loff_t pos)
struct memtype *entry_print;
int ret;
- entry_print = kzalloc(sizeof(struct memtype), GFP_KERNEL);
+ entry_print = kzalloc_obj(struct memtype, GFP_KERNEL);
if (!entry_print)
return NULL;
diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
index 070ba80e39d7..0a0127c9e2e2 100644
--- a/arch/x86/net/bpf_jit_comp.c
+++ b/arch/x86/net/bpf_jit_comp.c
@@ -3758,7 +3758,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
jit_data = prog->aux->jit_data;
if (!jit_data) {
- jit_data = kzalloc(sizeof(*jit_data), GFP_KERNEL);
+ jit_data = kzalloc_obj(*jit_data, GFP_KERNEL);
if (!jit_data) {
prog = orig_prog;
goto out;
@@ -3794,7 +3794,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
padding = true;
goto skip_init_addrs;
}
- addrs = kvmalloc_array(prog->len + 1, sizeof(*addrs), GFP_KERNEL);
+ addrs = kvmalloc_objs(*addrs, prog->len + 1, GFP_KERNEL);
if (!addrs) {
prog = orig_prog;
goto out_addrs;
diff --git a/arch/x86/net/bpf_jit_comp32.c b/arch/x86/net/bpf_jit_comp32.c
index de0f9e5f9f73..e6f3475bb773 100644
--- a/arch/x86/net/bpf_jit_comp32.c
+++ b/arch/x86/net/bpf_jit_comp32.c
@@ -2545,7 +2545,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
prog = tmp;
}
- addrs = kmalloc_array(prog->len, sizeof(*addrs), GFP_KERNEL);
+ addrs = kmalloc_objs(*addrs, prog->len, GFP_KERNEL);
if (!addrs) {
prog = orig_prog;
goto out;
diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
index 0c316bae1726..d0e1cd677eba 100644
--- a/arch/x86/pci/acpi.c
+++ b/arch/x86/pci/acpi.c
@@ -562,7 +562,7 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
} else {
struct pci_root_info *info;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
dev_err(&root->device->dev,
"pci_bus %04x:%02x: ignored (out of memory)\n",
diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c
index e4a525e59eaf..53037dba4c97 100644
--- a/arch/x86/pci/bus_numa.c
+++ b/arch/x86/pci/bus_numa.c
@@ -72,7 +72,7 @@ struct pci_root_info __init *alloc_pci_root_info(int bus_min, int bus_max,
{
struct pci_root_info *info;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return info;
@@ -132,7 +132,7 @@ void update_res(struct pci_root_info *info, resource_size_t start,
addit:
/* need to add that */
- root_res = kzalloc(sizeof(*root_res), GFP_KERNEL);
+ root_res = kzalloc_obj(*root_res, GFP_KERNEL);
if (!root_res)
return;
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c
index ddb798603201..12d4e522d863 100644
--- a/arch/x86/pci/common.c
+++ b/arch/x86/pci/common.c
@@ -461,7 +461,7 @@ void pcibios_scan_root(int busnum)
struct pci_sysdata *sd;
LIST_HEAD(resources);
- sd = kzalloc(sizeof(*sd), GFP_KERNEL);
+ sd = kzalloc_obj(*sd, GFP_KERNEL);
if (!sd) {
printk(KERN_ERR "PCI: OOM, skipping PCI bus %02x\n", busnum);
return;
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index 25076a5acd96..3c92893ba725 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -771,7 +771,7 @@ static void pci_amd_enable_64bit_bar(struct pci_dev *dev)
if (i == 8)
return;
- res = kzalloc(sizeof(*res), GFP_KERNEL);
+ res = kzalloc_obj(*res, GFP_KERNEL);
if (!res)
return;
diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c
index f2f4a5d50b27..5e99b12300c9 100644
--- a/arch/x86/pci/i386.c
+++ b/arch/x86/pci/i386.c
@@ -81,7 +81,7 @@ pcibios_save_fw_addr(struct pci_dev *dev, int idx, resource_size_t fw_addr)
map = pcibios_fwaddrmap_lookup(dev);
if (!map) {
spin_unlock_irqrestore(&pcibios_fwaddrmap_lock, flags);
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (!map)
return;
diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
index 1f4522325920..14098363b841 100644
--- a/arch/x86/pci/mmconfig-shared.c
+++ b/arch/x86/pci/mmconfig-shared.c
@@ -77,7 +77,7 @@ static struct pci_mmcfg_region *pci_mmconfig_alloc(int segment, int start,
if (addr == 0)
return NULL;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return NULL;
diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c
index b8755cde2419..4f356d67cc31 100644
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -173,7 +173,7 @@ static int xen_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
if (type == PCI_CAP_ID_MSI && nvec > 1)
return 1;
- v = kcalloc(max(1, nvec), sizeof(int), GFP_KERNEL);
+ v = kzalloc_objs(int, max(1, nvec), GFP_KERNEL);
if (!v)
return -ENOMEM;
diff --git a/arch/x86/platform/efi/runtime-map.c b/arch/x86/platform/efi/runtime-map.c
index a6f02cef3ca2..77699893b5bb 100644
--- a/arch/x86/platform/efi/runtime-map.c
+++ b/arch/x86/platform/efi/runtime-map.c
@@ -114,7 +114,7 @@ add_sysfs_runtime_map_entry(struct kobject *kobj, int nr,
return ERR_PTR(-ENOMEM);
}
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
kset_unregister(map_kset);
map_kset = NULL;
@@ -166,7 +166,7 @@ static int __init efi_runtime_map_init(void)
if (!efi_enabled(EFI_MEMMAP) || !efi_kobj)
return 0;
- map_entries = kcalloc(efi.memmap.nr_map, sizeof(entry), GFP_KERNEL);
+ map_entries = kzalloc_objs(entry, efi.memmap.nr_map, GFP_KERNEL);
if (!map_entries) {
ret = -ENOMEM;
goto out;
diff --git a/arch/x86/platform/geode/geode-common.c b/arch/x86/platform/geode/geode-common.c
index 8fd78e60bf15..f3c9eff2d374 100644
--- a/arch/x86/platform/geode/geode-common.c
+++ b/arch/x86/platform/geode/geode-common.c
@@ -113,7 +113,7 @@ int __init geode_create_leds(const char *label, const struct geode_led *leds,
return -EINVAL;
}
- swnodes = kcalloc(n_leds, sizeof(*swnodes), GFP_KERNEL);
+ swnodes = kzalloc_objs(*swnodes, n_leds, GFP_KERNEL);
if (!swnodes)
return -ENOMEM;
@@ -121,7 +121,7 @@ int __init geode_create_leds(const char *label, const struct geode_led *leds,
* Each LED is represented by 3 properties: "gpios",
* "linux,default-trigger", and am empty terminator.
*/
- props = kcalloc(n_leds * 3, sizeof(*props), GFP_KERNEL);
+ props = kzalloc_objs(*props, n_leds * 3, GFP_KERNEL);
if (!props) {
err = -ENOMEM;
goto err_free_swnodes;
diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c
index 916441f5e85c..5a7d96bbd6d8 100644
--- a/arch/x86/power/cpu.c
+++ b/arch/x86/power/cpu.c
@@ -394,7 +394,7 @@ static int msr_build_context(const u32 *msr_id, const int num)
total_num = saved_msrs->num + num;
- msr_array = kmalloc_array(total_num, sizeof(struct saved_msr), GFP_KERNEL);
+ msr_array = kmalloc_objs(struct saved_msr, total_num, GFP_KERNEL);
if (!msr_array) {
pr_err("x86/pm: Can not allocate memory to save/restore MSRs during suspend.\n");
return -ENOMEM;
diff --git a/arch/x86/virt/svm/sev.c b/arch/x86/virt/svm/sev.c
index ee643a6cd691..5a31ced2788c 100644
--- a/arch/x86/virt/svm/sev.c
+++ b/arch/x86/virt/svm/sev.c
@@ -313,7 +313,7 @@ static bool __init alloc_rmp_segment_desc(u64 segment_pa, u64 segment_size, u64
return false;
}
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc) {
memunmap(rmp_segment);
return false;
diff --git a/arch/x86/virt/vmx/tdx/tdx.c b/arch/x86/virt/vmx/tdx/tdx.c
index 5ce4ebe99774..047cb2063202 100644
--- a/arch/x86/virt/vmx/tdx/tdx.c
+++ b/arch/x86/virt/vmx/tdx/tdx.c
@@ -194,7 +194,7 @@ static int add_tdx_memblock(struct list_head *tmb_list, unsigned long start_pfn,
{
struct tdx_memblock *tmb;
- tmb = kmalloc(sizeof(*tmb), GFP_KERNEL);
+ tmb = kmalloc_obj(*tmb, GFP_KERNEL);
if (!tmb)
return -ENOMEM;
diff --git a/arch/x86/xen/grant-table.c b/arch/x86/xen/grant-table.c
index 1e681bf62561..d8149572b4f7 100644
--- a/arch/x86/xen/grant-table.c
+++ b/arch/x86/xen/grant-table.c
@@ -101,7 +101,7 @@ static int gnttab_apply(pte_t *pte, unsigned long addr, void *data)
static int arch_gnttab_valloc(struct gnttab_vm_area *area, unsigned nr_frames)
{
- area->ptes = kmalloc_array(nr_frames, sizeof(*area->ptes), GFP_KERNEL);
+ area->ptes = kmalloc_objs(*area->ptes, nr_frames, GFP_KERNEL);
if (area->ptes == NULL)
return -ENOMEM;
area->area = get_vm_area(PAGE_SIZE * nr_frames, VM_IOREMAP);
diff --git a/arch/x86/xen/smp_pv.c b/arch/x86/xen/smp_pv.c
index c40f326f0c3a..82894426cb99 100644
--- a/arch/x86/xen/smp_pv.c
+++ b/arch/x86/xen/smp_pv.c
@@ -230,7 +230,7 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
if (cpumask_test_and_set_cpu(cpu, xen_cpu_initialized_map))
return 0;
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (ctxt == NULL) {
cpumask_clear_cpu(cpu, xen_cpu_initialized_map);
return -ENOMEM;
diff --git a/arch/xtensa/kernel/ptrace.c b/arch/xtensa/kernel/ptrace.c
index ff0600a0584c..b5de377dc96f 100644
--- a/arch/xtensa/kernel/ptrace.c
+++ b/arch/xtensa/kernel/ptrace.c
@@ -123,7 +123,7 @@ static int tie_get(struct task_struct *target,
int ret;
struct pt_regs *regs = task_pt_regs(target);
struct thread_info *ti = task_thread_info(target);
- elf_xtregs_t *newregs = kzalloc(sizeof(elf_xtregs_t), GFP_KERNEL);
+ elf_xtregs_t *newregs = kzalloc_obj(elf_xtregs_t, GFP_KERNEL);
if (!newregs)
return -ENOMEM;
@@ -156,7 +156,7 @@ static int tie_set(struct task_struct *target,
int ret;
struct pt_regs *regs = task_pt_regs(target);
struct thread_info *ti = task_thread_info(target);
- elf_xtregs_t *newregs = kzalloc(sizeof(elf_xtregs_t), GFP_KERNEL);
+ elf_xtregs_t *newregs = kzalloc_obj(elf_xtregs_t, GFP_KERNEL);
if (!newregs)
return -ENOMEM;
diff --git a/arch/xtensa/platforms/iss/simdisk.c b/arch/xtensa/platforms/iss/simdisk.c
index 3cafc8feddee..3e54f6377c81 100644
--- a/arch/xtensa/platforms/iss/simdisk.c
+++ b/arch/xtensa/platforms/iss/simdisk.c
@@ -320,7 +320,7 @@ static int __init simdisk_init(void)
if (simdisk_count > MAX_SIMDISK_COUNT)
simdisk_count = MAX_SIMDISK_COUNT;
- sddev = kmalloc_array(simdisk_count, sizeof(*sddev), GFP_KERNEL);
+ sddev = kmalloc_objs(*sddev, simdisk_count, GFP_KERNEL);
if (sddev == NULL)
goto out_unregister;
diff --git a/block/bfq-cgroup.c b/block/bfq-cgroup.c
index 6a75fe1c7a5c..ac83b0668764 100644
--- a/block/bfq-cgroup.c
+++ b/block/bfq-cgroup.c
@@ -494,7 +494,7 @@ static struct blkcg_policy_data *bfq_cpd_alloc(gfp_t gfp)
{
struct bfq_group_data *bgd;
- bgd = kzalloc(sizeof(*bgd), gfp);
+ bgd = kzalloc_obj(*bgd, gfp);
if (!bgd)
return NULL;
diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
index b180ce583951..141c602d5e85 100644
--- a/block/bfq-iosched.c
+++ b/block/bfq-iosched.c
@@ -606,7 +606,7 @@ static bool bfqq_request_over_limit(struct bfq_data *bfqd,
spin_unlock_irq(&bfqd->lock);
if (entities != inline_entities)
kfree(entities);
- entities = kmalloc_array(depth, sizeof(*entities), GFP_NOIO);
+ entities = kmalloc_objs(*entities, depth, GFP_NOIO);
if (!entities)
return false;
alloc_depth = depth;
@@ -938,8 +938,8 @@ void bfq_weights_tree_add(struct bfq_queue *bfqq)
}
}
- bfqq->weight_counter = kzalloc(sizeof(struct bfq_weight_counter),
- GFP_ATOMIC);
+ bfqq->weight_counter = kzalloc_obj(struct bfq_weight_counter,
+ GFP_ATOMIC);
/*
* In the unlucky event of an allocation failure, we just
diff --git a/block/bio-integrity.c b/block/bio-integrity.c
index 09eeaf6e74b8..dc2e771f11ae 100644
--- a/block/bio-integrity.c
+++ b/block/bio-integrity.c
@@ -97,7 +97,7 @@ struct bio_integrity_payload *bio_integrity_alloc(struct bio *bio,
if (WARN_ON_ONCE(bio_has_crypt_ctx(bio)))
return ERR_PTR(-EOPNOTSUPP);
- bia = kmalloc(struct_size(bia, bvecs, nr_vecs), gfp_mask);
+ bia = kmalloc_flex(*bia, bvecs, nr_vecs, gfp_mask);
if (unlikely(!bia))
return ERR_PTR(-ENOMEM);
bio_integrity_init(bio, &bia->bip, bia->bvecs, nr_vecs);
@@ -322,7 +322,7 @@ int bio_integrity_map_user(struct bio *bio, struct iov_iter *iter)
if (nr_vecs > BIO_MAX_VECS)
return -E2BIG;
if (nr_vecs > UIO_FASTIOV) {
- bvec = kcalloc(nr_vecs, sizeof(*bvec), GFP_KERNEL);
+ bvec = kzalloc_objs(*bvec, nr_vecs, GFP_KERNEL);
if (!bvec)
return -ENOMEM;
pages = NULL;
diff --git a/block/bio.c b/block/bio.c
index 8203bb7455a9..c8e14c330a35 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -84,7 +84,7 @@ static DEFINE_XARRAY(bio_slabs);
static struct bio_slab *create_bio_slab(unsigned int size)
{
- struct bio_slab *bslab = kzalloc(sizeof(*bslab), GFP_KERNEL);
+ struct bio_slab *bslab = kzalloc_obj(*bslab, GFP_KERNEL);
if (!bslab)
return NULL;
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index 3cffb68ba5d8..de609a3e0228 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -1417,7 +1417,7 @@ blkcg_css_alloc(struct cgroup_subsys_state *parent_css)
if (!parent_css) {
blkcg = &blkcg_root;
} else {
- blkcg = kzalloc(sizeof(*blkcg), GFP_KERNEL);
+ blkcg = kzalloc_obj(*blkcg, GFP_KERNEL);
if (!blkcg)
goto unlock;
}
diff --git a/block/blk-crypto-fallback.c b/block/blk-crypto-fallback.c
index a331b061dbf4..9a05abe8d43f 100644
--- a/block/blk-crypto-fallback.c
+++ b/block/blk-crypto-fallback.c
@@ -546,8 +546,8 @@ static int blk_crypto_fallback_init(void)
goto out;
/* Dynamic allocation is needed because of lockdep_register_key(). */
- blk_crypto_fallback_profile =
- kzalloc(sizeof(*blk_crypto_fallback_profile), GFP_KERNEL);
+ blk_crypto_fallback_profile = kzalloc_obj(*blk_crypto_fallback_profile,
+ GFP_KERNEL);
if (!blk_crypto_fallback_profile) {
err = -ENOMEM;
goto fail_free_bioset;
@@ -574,9 +574,8 @@ static int blk_crypto_fallback_init(void)
if (!blk_crypto_wq)
goto fail_destroy_profile;
- blk_crypto_keyslots = kcalloc(blk_crypto_num_keyslots,
- sizeof(blk_crypto_keyslots[0]),
- GFP_KERNEL);
+ blk_crypto_keyslots = kzalloc_objs(blk_crypto_keyslots[0],
+ blk_crypto_num_keyslots, GFP_KERNEL);
if (!blk_crypto_keyslots)
goto fail_free_wq;
diff --git a/block/blk-crypto-profile.c b/block/blk-crypto-profile.c
index 81918f6e0cae..58032fd7faff 100644
--- a/block/blk-crypto-profile.c
+++ b/block/blk-crypto-profile.c
@@ -93,8 +93,7 @@ int blk_crypto_profile_init(struct blk_crypto_profile *profile,
/* Initialize keyslot management data. */
- profile->slots = kvcalloc(num_slots, sizeof(profile->slots[0]),
- GFP_KERNEL);
+ profile->slots = kvzalloc_objs(profile->slots[0], num_slots, GFP_KERNEL);
if (!profile->slots)
goto err_destroy;
@@ -121,8 +120,8 @@ int blk_crypto_profile_init(struct blk_crypto_profile *profile,
profile->log_slot_ht_size = ilog2(slot_hashtable_size);
profile->slot_hashtable =
- kvmalloc_array(slot_hashtable_size,
- sizeof(profile->slot_hashtable[0]), GFP_KERNEL);
+ kvmalloc_objs(profile->slot_hashtable[0], slot_hashtable_size,
+ GFP_KERNEL);
if (!profile->slot_hashtable)
goto err_destroy;
for (i = 0; i < slot_hashtable_size; i++)
diff --git a/block/blk-crypto-sysfs.c b/block/blk-crypto-sysfs.c
index e832f403f200..e6c76d672829 100644
--- a/block/blk-crypto-sysfs.c
+++ b/block/blk-crypto-sysfs.c
@@ -170,7 +170,7 @@ int blk_crypto_sysfs_register(struct gendisk *disk)
if (!q->crypto_profile)
return 0;
- obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ obj = kzalloc_obj(*obj, GFP_KERNEL);
if (!obj)
return -ENOMEM;
obj->profile = q->crypto_profile;
diff --git a/block/blk-iocost.c b/block/blk-iocost.c
index ef543d163d46..32faf0a56bd3 100644
--- a/block/blk-iocost.c
+++ b/block/blk-iocost.c
@@ -2882,7 +2882,7 @@ static int blk_iocost_init(struct gendisk *disk)
struct ioc *ioc;
int i, cpu, ret;
- ioc = kzalloc(sizeof(*ioc), GFP_KERNEL);
+ ioc = kzalloc_obj(*ioc, GFP_KERNEL);
if (!ioc)
return -ENOMEM;
@@ -2946,7 +2946,7 @@ static struct blkcg_policy_data *ioc_cpd_alloc(gfp_t gfp)
{
struct ioc_cgrp *iocc;
- iocc = kzalloc(sizeof(struct ioc_cgrp), gfp);
+ iocc = kzalloc_obj(struct ioc_cgrp, gfp);
if (!iocc)
return NULL;
diff --git a/block/blk-iolatency.c b/block/blk-iolatency.c
index f7434278cd29..609a71476bff 100644
--- a/block/blk-iolatency.c
+++ b/block/blk-iolatency.c
@@ -760,7 +760,7 @@ static int blk_iolatency_init(struct gendisk *disk)
struct blk_iolatency *blkiolat;
int ret;
- blkiolat = kzalloc(sizeof(*blkiolat), GFP_KERNEL);
+ blkiolat = kzalloc_obj(*blkiolat, GFP_KERNEL);
if (!blkiolat)
return -ENOMEM;
diff --git a/block/blk-ioprio.c b/block/blk-ioprio.c
index 13659dc15c3f..8fa8bca35062 100644
--- a/block/blk-ioprio.c
+++ b/block/blk-ioprio.c
@@ -99,7 +99,7 @@ static struct blkcg_policy_data *ioprio_alloc_cpd(gfp_t gfp)
{
struct ioprio_blkcg *blkcg;
- blkcg = kzalloc(sizeof(*blkcg), gfp);
+ blkcg = kzalloc_obj(*blkcg, gfp);
if (!blkcg)
return NULL;
blkcg->prio_policy = POLICY_NO_CHANGE;
diff --git a/block/blk-map.c b/block/blk-map.c
index 4533094d9458..53bdd100aa4b 100644
--- a/block/blk-map.c
+++ b/block/blk-map.c
@@ -26,7 +26,7 @@ static struct bio_map_data *bio_alloc_map_data(struct iov_iter *data,
if (data->nr_segs > UIO_MAXIOV)
return NULL;
- bmd = kmalloc(struct_size(bmd, iov, data->nr_segs), gfp_mask);
+ bmd = kmalloc_flex(*bmd, iov, data->nr_segs, gfp_mask);
if (!bmd)
return NULL;
bmd->iter = *data;
diff --git a/block/blk-mq-sched.c b/block/blk-mq-sched.c
index 97c3c8f45a9b..0d085a53f0d7 100644
--- a/block/blk-mq-sched.c
+++ b/block/blk-mq-sched.c
@@ -489,7 +489,7 @@ int blk_mq_alloc_sched_ctx_batch(struct xarray *elv_tbl,
lockdep_assert_held_write(&set->update_nr_hwq_lock);
list_for_each_entry(q, &set->tag_list, tag_set_list) {
- ctx = kzalloc(sizeof(struct elv_change_ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(struct elv_change_ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -514,7 +514,7 @@ struct elevator_tags *blk_mq_alloc_sched_tags(struct blk_mq_tag_set *set,
else
nr_tags = nr_hw_queues;
- et = kmalloc(struct_size(et, tags, nr_tags), gfp);
+ et = kmalloc_flex(*et, tags, nr_tags, gfp);
if (!et)
return NULL;
diff --git a/block/blk-mq.c b/block/blk-mq.c
index d5602ff62c7c..e0bbe087766f 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -4362,7 +4362,7 @@ static int blk_mq_alloc_ctxs(struct request_queue *q)
struct blk_mq_ctxs *ctxs;
int cpu;
- ctxs = kzalloc(sizeof(*ctxs), GFP_KERNEL);
+ ctxs = kzalloc_obj(*ctxs, GFP_KERNEL);
if (!ctxs)
return -ENOMEM;
@@ -4879,7 +4879,7 @@ int blk_mq_alloc_tag_set(struct blk_mq_tag_set *set)
set->nr_hw_queues = nr_cpu_ids;
if (set->flags & BLK_MQ_F_BLOCKING) {
- set->srcu = kmalloc(sizeof(*set->srcu), GFP_KERNEL);
+ set->srcu = kmalloc_obj(*set->srcu, GFP_KERNEL);
if (!set->srcu)
return -ENOMEM;
ret = init_srcu_struct(set->srcu);
diff --git a/block/blk-stat.c b/block/blk-stat.c
index 682a8ddb1173..2eaa5e27cdb8 100644
--- a/block/blk-stat.c
+++ b/block/blk-stat.c
@@ -103,12 +103,11 @@ blk_stat_alloc_callback(void (*timer_fn)(struct blk_stat_callback *),
{
struct blk_stat_callback *cb;
- cb = kmalloc(sizeof(*cb), GFP_KERNEL);
+ cb = kmalloc_obj(*cb, GFP_KERNEL);
if (!cb)
return NULL;
- cb->stat = kmalloc_array(buckets, sizeof(struct blk_rq_stat),
- GFP_KERNEL);
+ cb->stat = kmalloc_objs(struct blk_rq_stat, buckets, GFP_KERNEL);
if (!cb->stat) {
kfree(cb);
return NULL;
@@ -207,7 +206,7 @@ struct blk_queue_stats *blk_alloc_queue_stats(void)
{
struct blk_queue_stats *stats;
- stats = kmalloc(sizeof(*stats), GFP_KERNEL);
+ stats = kmalloc_obj(*stats, GFP_KERNEL);
if (!stats)
return NULL;
diff --git a/block/blk-wbt.c b/block/blk-wbt.c
index 6dba71e87387..91115508179b 100644
--- a/block/blk-wbt.c
+++ b/block/blk-wbt.c
@@ -713,7 +713,7 @@ static int wbt_data_dir(const struct request *rq)
static struct rq_wb *wbt_alloc(void)
{
- struct rq_wb *rwb = kzalloc(sizeof(*rwb), GFP_KERNEL);
+ struct rq_wb *rwb = kzalloc_obj(*rwb, GFP_KERNEL);
if (!rwb)
return NULL;
diff --git a/block/blk-zoned.c b/block/blk-zoned.c
index 846b8844f04a..54ee346ddb5a 100644
--- a/block/blk-zoned.c
+++ b/block/blk-zoned.c
@@ -1804,8 +1804,8 @@ static int disk_alloc_zone_resources(struct gendisk *disk,
min(ilog2(pool_size) + 1, BLK_ZONE_WPLUG_MAX_HASH_BITS);
disk->zone_wplugs_hash =
- kcalloc(disk_zone_wplugs_hash_size(disk),
- sizeof(struct hlist_head), GFP_KERNEL);
+ kzalloc_objs(struct hlist_head,
+ disk_zone_wplugs_hash_size(disk), GFP_KERNEL);
if (!disk->zone_wplugs_hash)
return -ENOMEM;
diff --git a/block/bsg-lib.c b/block/bsg-lib.c
index 9ceb5d0832f5..ca08c6b7fb9c 100644
--- a/block/bsg-lib.c
+++ b/block/bsg-lib.c
@@ -368,7 +368,7 @@ struct request_queue *bsg_setup_queue(struct device *dev, const char *name,
struct request_queue *q;
int ret = -ENOMEM;
- bset = kzalloc(sizeof(*bset), GFP_KERNEL);
+ bset = kzalloc_obj(*bset, GFP_KERNEL);
if (!bset)
return ERR_PTR(-ENOMEM);
diff --git a/block/bsg.c b/block/bsg.c
index 72157a59b788..5f87ea8d5f64 100644
--- a/block/bsg.c
+++ b/block/bsg.c
@@ -192,7 +192,7 @@ struct bsg_device *bsg_register_queue(struct request_queue *q,
struct bsg_device *bd;
int ret;
- bd = kzalloc(sizeof(*bd), GFP_KERNEL);
+ bd = kzalloc_obj(*bd, GFP_KERNEL);
if (!bd)
return ERR_PTR(-ENOMEM);
bd->max_queue = BSG_DEFAULT_CMDS;
diff --git a/block/disk-events.c b/block/disk-events.c
index 2f697224386a..04d44d05ed53 100644
--- a/block/disk-events.c
+++ b/block/disk-events.c
@@ -436,7 +436,7 @@ int disk_alloc_events(struct gendisk *disk)
if (!disk->fops->check_events || !disk->events)
return 0;
- ev = kzalloc(sizeof(*ev), GFP_KERNEL);
+ ev = kzalloc_obj(*ev, GFP_KERNEL);
if (!ev) {
pr_warn("%s: failed to initialize events\n", disk->disk_name);
return -ENOMEM;
diff --git a/block/fops.c b/block/fops.c
index 4d32785b31d9..57a53e0d1016 100644
--- a/block/fops.c
+++ b/block/fops.c
@@ -65,8 +65,7 @@ static ssize_t __blkdev_direct_IO_simple(struct kiocb *iocb,
if (nr_pages <= DIO_INLINE_BIO_VECS)
vecs = inline_vecs;
else {
- vecs = kmalloc_array(nr_pages, sizeof(struct bio_vec),
- GFP_KERNEL);
+ vecs = kmalloc_objs(struct bio_vec, nr_pages, GFP_KERNEL);
if (!vecs)
return -ENOMEM;
}
diff --git a/block/genhd.c b/block/genhd.c
index 69c75117ba2c..15866ccf5c33 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -264,7 +264,7 @@ int __register_blkdev(unsigned int major, const char *name,
goto out;
}
- p = kmalloc(sizeof(struct blk_major_name), GFP_KERNEL);
+ p = kmalloc_obj(struct blk_major_name, GFP_KERNEL);
if (p == NULL) {
ret = -ENOMEM;
goto out;
@@ -914,7 +914,7 @@ static void *disk_seqf_start(struct seq_file *seqf, loff_t *pos)
struct class_dev_iter *iter;
struct device *dev;
- iter = kmalloc(sizeof(*iter), GFP_KERNEL);
+ iter = kmalloc_obj(*iter, GFP_KERNEL);
if (!iter)
return ERR_PTR(-ENOMEM);
diff --git a/block/holder.c b/block/holder.c
index 791091a7eac2..1e7b88815323 100644
--- a/block/holder.c
+++ b/block/holder.c
@@ -92,7 +92,7 @@ int bd_link_disk_holder(struct block_device *bdev, struct gendisk *disk)
goto out_unlock;
}
- holder = kzalloc(sizeof(*holder), GFP_KERNEL);
+ holder = kzalloc_obj(*holder, GFP_KERNEL);
if (!holder) {
ret = -ENOMEM;
goto out_unlock;
diff --git a/block/partitions/aix.c b/block/partitions/aix.c
index 85f4b967565e..97c8fa2a866f 100644
--- a/block/partitions/aix.c
+++ b/block/partitions/aix.c
@@ -199,7 +199,7 @@ int aix_partition(struct parsed_partitions *state)
numlvs = be16_to_cpu(p->numlvs);
put_dev_sector(sect);
}
- lvip = kcalloc(state->limit, sizeof(struct lv_info), GFP_KERNEL);
+ lvip = kzalloc_objs(struct lv_info, state->limit, GFP_KERNEL);
if (!lvip)
return 0;
if (numlvs && (d = read_part_sector(state, vgda_sector + 1, §))) {
diff --git a/block/partitions/cmdline.c b/block/partitions/cmdline.c
index da3e719d8e51..5d604a64842e 100644
--- a/block/partitions/cmdline.c
+++ b/block/partitions/cmdline.c
@@ -46,7 +46,7 @@ static int parse_subpart(struct cmdline_subpart **subpart, char *partdef)
*subpart = NULL;
- new_subpart = kzalloc(sizeof(struct cmdline_subpart), GFP_KERNEL);
+ new_subpart = kzalloc_obj(struct cmdline_subpart, GFP_KERNEL);
if (!new_subpart)
return -ENOMEM;
@@ -122,7 +122,7 @@ static int parse_parts(struct cmdline_parts **parts, char *bdevdef)
*parts = NULL;
- newparts = kzalloc(sizeof(struct cmdline_parts), GFP_KERNEL);
+ newparts = kzalloc_obj(struct cmdline_parts, GFP_KERNEL);
if (!newparts)
return -ENOMEM;
diff --git a/block/partitions/core.c b/block/partitions/core.c
index 079057ab535a..189ab5650351 100644
--- a/block/partitions/core.c
+++ b/block/partitions/core.c
@@ -94,7 +94,7 @@ static struct parsed_partitions *allocate_partitions(struct gendisk *hd)
struct parsed_partitions *state;
int nr = DISK_MAX_PARTS;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/block/partitions/efi.c b/block/partitions/efi.c
index 638261e9f2fb..ff145c6306e0 100644
--- a/block/partitions/efi.c
+++ b/block/partitions/efi.c
@@ -595,7 +595,7 @@ static int find_valid_gpt(struct parsed_partitions *state, gpt_header **gpt,
lastlba = last_lba(state->disk);
if (!force_gpt) {
/* This will be added to the EFI Spec. per Intel after v1.02. */
- legacymbr = kzalloc(sizeof(*legacymbr), GFP_KERNEL);
+ legacymbr = kzalloc_obj(*legacymbr, GFP_KERNEL);
if (!legacymbr)
goto fail;
diff --git a/block/partitions/ibm.c b/block/partitions/ibm.c
index 631291fbb356..b81b7a690787 100644
--- a/block/partitions/ibm.c
+++ b/block/partitions/ibm.c
@@ -347,13 +347,13 @@ int ibm_partition(struct parsed_partitions *state)
nr_sectors = bdev_nr_sectors(bdev);
if (nr_sectors == 0)
goto out_symbol;
- info = kmalloc(sizeof(dasd_information2_t), GFP_KERNEL);
+ info = kmalloc_obj(dasd_information2_t, GFP_KERNEL);
if (info == NULL)
goto out_symbol;
- geo = kmalloc(sizeof(struct hd_geometry), GFP_KERNEL);
+ geo = kmalloc_obj(struct hd_geometry, GFP_KERNEL);
if (geo == NULL)
goto out_nogeo;
- label = kmalloc(sizeof(union label_t), GFP_KERNEL);
+ label = kmalloc_obj(union label_t, GFP_KERNEL);
if (label == NULL)
goto out_nolab;
/* set start if not filled by getgeo function e.g. virtblk */
diff --git a/block/partitions/ldm.c b/block/partitions/ldm.c
index 2bd42fedb907..27ffddd74e11 100644
--- a/block/partitions/ldm.c
+++ b/block/partitions/ldm.c
@@ -273,8 +273,8 @@ static bool ldm_validate_privheads(struct parsed_partitions *state,
BUG_ON (!state || !ph1);
- ph[1] = kmalloc (sizeof (*ph[1]), GFP_KERNEL);
- ph[2] = kmalloc (sizeof (*ph[2]), GFP_KERNEL);
+ ph[1] = kmalloc_obj(*ph[1], GFP_KERNEL);
+ ph[2] = kmalloc_obj(*ph[2], GFP_KERNEL);
if (!ph[1] || !ph[2]) {
ldm_crit ("Out of memory.");
goto out;
@@ -362,7 +362,7 @@ static bool ldm_validate_tocblocks(struct parsed_partitions *state,
BUG_ON(!state || !ldb);
ph = &ldb->ph;
tb[0] = &ldb->toc;
- tb[1] = kmalloc_array(3, sizeof(*tb[1]), GFP_KERNEL);
+ tb[1] = kmalloc_objs(*tb[1], 3, GFP_KERNEL);
if (!tb[1]) {
ldm_crit("Out of memory.");
goto err;
@@ -1158,7 +1158,7 @@ static bool ldm_ldmdb_add (u8 *data, int len, struct ldmdb *ldb)
BUG_ON (!data || !ldb);
- vb = kmalloc (sizeof (*vb), GFP_KERNEL);
+ vb = kmalloc_obj(*vb, GFP_KERNEL);
if (!vb) {
ldm_crit ("Out of memory.");
return false;
@@ -1438,7 +1438,7 @@ int ldm_partition(struct parsed_partitions *state)
if (!ldm_validate_partition_table(state))
return 0;
- ldb = kmalloc (sizeof (*ldb), GFP_KERNEL);
+ ldb = kmalloc_obj(*ldb, GFP_KERNEL);
if (!ldb) {
ldm_crit ("Out of memory.");
goto out;
diff --git a/block/sed-opal.c b/block/sed-opal.c
index 23a19c92d791..fbe0fe4dce8a 100644
--- a/block/sed-opal.c
+++ b/block/sed-opal.c
@@ -2512,7 +2512,7 @@ struct opal_dev *init_opal_dev(void *data, sec_send_recv *send_recv)
{
struct opal_dev *dev;
- dev = kmalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kmalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return NULL;
@@ -2719,7 +2719,7 @@ static int opal_save(struct opal_dev *dev, struct opal_lock_unlock *lk_unlk)
{
struct opal_suspend_data *suspend;
- suspend = kzalloc(sizeof(*suspend), GFP_KERNEL);
+ suspend = kzalloc_obj(*suspend, GFP_KERNEL);
if (!suspend)
return -ENOMEM;
diff --git a/certs/blacklist.c b/certs/blacklist.c
index 11fc858b2921..725c2f18fa31 100644
--- a/certs/blacklist.c
+++ b/certs/blacklist.c
@@ -328,7 +328,7 @@ static int __init blacklist_init(void)
if (register_key_type(&key_type_blacklist) < 0)
panic("Can't allocate system blacklist key type\n");
- restriction = kzalloc(sizeof(*restriction), GFP_KERNEL);
+ restriction = kzalloc_obj(*restriction, GFP_KERNEL);
if (!restriction)
panic("Can't allocate blacklist keyring restriction\n");
restriction->check = restrict_link_for_blacklist;
diff --git a/certs/system_keyring.c b/certs/system_keyring.c
index 9de610bf1f4b..afe67e2a47ed 100644
--- a/certs/system_keyring.c
+++ b/certs/system_keyring.c
@@ -140,7 +140,7 @@ static __init struct key_restriction *get_builtin_and_secondary_restriction(void
{
struct key_restriction *restriction;
- restriction = kzalloc(sizeof(struct key_restriction), GFP_KERNEL);
+ restriction = kzalloc_obj(struct key_restriction, GFP_KERNEL);
if (!restriction)
panic("Can't allocate secondary trusted keyring restriction\n");
diff --git a/crypto/af_alg.c b/crypto/af_alg.c
index e468714f539d..d6f14649bd13 100644
--- a/crypto/af_alg.c
+++ b/crypto/af_alg.c
@@ -70,7 +70,7 @@ int af_alg_register_type(const struct af_alg_type *type)
goto unlock;
}
- node = kmalloc(sizeof(*node), GFP_KERNEL);
+ node = kmalloc_obj(*node, GFP_KERNEL);
err = -ENOMEM;
if (!node)
goto unlock;
diff --git a/crypto/algboss.c b/crypto/algboss.c
index 846f586889ee..09ceeb0db431 100644
--- a/crypto/algboss.c
+++ b/crypto/algboss.c
@@ -84,7 +84,7 @@ static int cryptomgr_schedule_probe(struct crypto_larval *larval)
if (!try_module_get(THIS_MODULE))
goto err;
- param = kzalloc(sizeof(*param), GFP_KERNEL);
+ param = kzalloc_obj(*param, GFP_KERNEL);
if (!param)
goto err_put_module;
@@ -195,7 +195,7 @@ static int cryptomgr_schedule_test(struct crypto_alg *alg)
if (!try_module_get(THIS_MODULE))
goto err;
- param = kzalloc(sizeof(*param), GFP_KERNEL);
+ param = kzalloc_obj(*param, GFP_KERNEL);
if (!param)
goto err_put_module;
diff --git a/crypto/algif_rng.c b/crypto/algif_rng.c
index 1a86e40c8372..8578b9d1c569 100644
--- a/crypto/algif_rng.c
+++ b/crypto/algif_rng.c
@@ -202,7 +202,7 @@ static void *rng_bind(const char *name, u32 type, u32 mask)
struct rng_parent_ctx *pctx;
struct crypto_rng *rng;
- pctx = kzalloc(sizeof(*pctx), GFP_KERNEL);
+ pctx = kzalloc_obj(*pctx, GFP_KERNEL);
if (!pctx)
return ERR_PTR(-ENOMEM);
diff --git a/crypto/api.c b/crypto/api.c
index 05629644a688..b0b69ca789f3 100644
--- a/crypto/api.c
+++ b/crypto/api.c
@@ -105,7 +105,7 @@ struct crypto_larval *crypto_larval_alloc(const char *name, u32 type, u32 mask)
{
struct crypto_larval *larval;
- larval = kzalloc(sizeof(*larval), GFP_KERNEL);
+ larval = kzalloc_obj(*larval, GFP_KERNEL);
if (!larval)
return ERR_PTR(-ENOMEM);
diff --git a/crypto/asymmetric_keys/asymmetric_type.c b/crypto/asymmetric_keys/asymmetric_type.c
index 1f1d92547dfc..33c9e68ab28d 100644
--- a/crypto/asymmetric_keys/asymmetric_type.c
+++ b/crypto/asymmetric_keys/asymmetric_type.c
@@ -486,7 +486,7 @@ static struct key_restriction *asymmetric_restriction_alloc(
struct key *key)
{
struct key_restriction *keyres =
- kzalloc(sizeof(struct key_restriction), GFP_KERNEL);
+ kzalloc_obj(struct key_restriction, GFP_KERNEL);
if (!keyres)
return ERR_PTR(-ENOMEM);
diff --git a/crypto/asymmetric_keys/pkcs7_parser.c b/crypto/asymmetric_keys/pkcs7_parser.c
index db1c90ca6fc1..ab400d62c587 100644
--- a/crypto/asymmetric_keys/pkcs7_parser.c
+++ b/crypto/asymmetric_keys/pkcs7_parser.c
@@ -133,17 +133,16 @@ struct pkcs7_message *pkcs7_parse_message(const void *data, size_t datalen)
struct pkcs7_message *msg = ERR_PTR(-ENOMEM);
int ret;
- ctx = kzalloc(sizeof(struct pkcs7_parse_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct pkcs7_parse_context, GFP_KERNEL);
if (!ctx)
goto out_no_ctx;
- ctx->msg = kzalloc(sizeof(struct pkcs7_message), GFP_KERNEL);
+ ctx->msg = kzalloc_obj(struct pkcs7_message, GFP_KERNEL);
if (!ctx->msg)
goto out_no_msg;
- ctx->sinfo = kzalloc(sizeof(struct pkcs7_signed_info), GFP_KERNEL);
+ ctx->sinfo = kzalloc_obj(struct pkcs7_signed_info, GFP_KERNEL);
if (!ctx->sinfo)
goto out_no_sinfo;
- ctx->sinfo->sig = kzalloc(sizeof(struct public_key_signature),
- GFP_KERNEL);
+ ctx->sinfo->sig = kzalloc_obj(struct public_key_signature, GFP_KERNEL);
if (!ctx->sinfo->sig)
goto out_no_sig;
@@ -729,11 +728,10 @@ int pkcs7_note_signed_info(void *context, size_t hdrlen,
sinfo->index = ++ctx->sinfo_index;
*ctx->ppsinfo = sinfo;
ctx->ppsinfo = &sinfo->next;
- ctx->sinfo = kzalloc(sizeof(struct pkcs7_signed_info), GFP_KERNEL);
+ ctx->sinfo = kzalloc_obj(struct pkcs7_signed_info, GFP_KERNEL);
if (!ctx->sinfo)
return -ENOMEM;
- ctx->sinfo->sig = kzalloc(sizeof(struct public_key_signature),
- GFP_KERNEL);
+ ctx->sinfo->sig = kzalloc_obj(struct public_key_signature, GFP_KERNEL);
if (!ctx->sinfo->sig)
return -ENOMEM;
return 0;
diff --git a/crypto/asymmetric_keys/pkcs8_parser.c b/crypto/asymmetric_keys/pkcs8_parser.c
index 105dcce27f71..c7f04dbadbd1 100644
--- a/crypto/asymmetric_keys/pkcs8_parser.c
+++ b/crypto/asymmetric_keys/pkcs8_parser.c
@@ -103,7 +103,7 @@ static struct public_key *pkcs8_parse(const void *data, size_t datalen)
memset(&ctx, 0, sizeof(ctx));
ret = -ENOMEM;
- ctx.pub = kzalloc(sizeof(struct public_key), GFP_KERNEL);
+ ctx.pub = kzalloc_obj(struct public_key, GFP_KERNEL);
if (!ctx.pub)
goto error;
diff --git a/crypto/asymmetric_keys/x509_cert_parser.c b/crypto/asymmetric_keys/x509_cert_parser.c
index 2fe094f5caf3..ba446683358a 100644
--- a/crypto/asymmetric_keys/x509_cert_parser.c
+++ b/crypto/asymmetric_keys/x509_cert_parser.c
@@ -65,16 +65,16 @@ struct x509_certificate *x509_cert_parse(const void *data, size_t datalen)
struct asymmetric_key_id *kid;
long ret;
- cert = kzalloc(sizeof(struct x509_certificate), GFP_KERNEL);
+ cert = kzalloc_obj(struct x509_certificate, GFP_KERNEL);
if (!cert)
return ERR_PTR(-ENOMEM);
- cert->pub = kzalloc(sizeof(struct public_key), GFP_KERNEL);
+ cert->pub = kzalloc_obj(struct public_key, GFP_KERNEL);
if (!cert->pub)
return ERR_PTR(-ENOMEM);
- cert->sig = kzalloc(sizeof(struct public_key_signature), GFP_KERNEL);
+ cert->sig = kzalloc_obj(struct public_key_signature, GFP_KERNEL);
if (!cert->sig)
return ERR_PTR(-ENOMEM);
- ctx = kzalloc(sizeof(struct x509_parse_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct x509_parse_context, GFP_KERNEL);
if (!ctx)
return ERR_PTR(-ENOMEM);
diff --git a/crypto/asymmetric_keys/x509_public_key.c b/crypto/asymmetric_keys/x509_public_key.c
index b695e59fd9e4..9a936e255397 100644
--- a/crypto/asymmetric_keys/x509_public_key.c
+++ b/crypto/asymmetric_keys/x509_public_key.c
@@ -210,7 +210,7 @@ static int x509_key_preparse(struct key_preparsed_payload *prep)
p = bin2hex(p, q, srlen);
*p = 0;
- kids = kmalloc(sizeof(struct asymmetric_key_ids), GFP_KERNEL);
+ kids = kmalloc_obj(struct asymmetric_key_ids, GFP_KERNEL);
if (!kids)
return -ENOMEM;
kids->id[0] = cert->id;
diff --git a/crypto/deflate.c b/crypto/deflate.c
index a3e1fff55661..644daf558ad0 100644
--- a/crypto/deflate.c
+++ b/crypto/deflate.c
@@ -40,7 +40,7 @@ static void *deflate_alloc_stream(void)
DEFLATE_DEF_MEMLEVEL));
struct deflate_stream *ctx;
- ctx = kvmalloc(struct_size(ctx, workspace, size), GFP_KERNEL);
+ ctx = kvmalloc_flex(*ctx, workspace, size, GFP_KERNEL);
if (!ctx)
return ERR_PTR(-ENOMEM);
diff --git a/crypto/drbg.c b/crypto/drbg.c
index 5e7ed5f5c192..8a915da08fa9 100644
--- a/crypto/drbg.c
+++ b/crypto/drbg.c
@@ -1522,7 +1522,7 @@ static int drbg_init_sym_kernel(struct drbg_state *drbg)
unsigned int alignmask;
char ctr_name[CRYPTO_MAX_ALG_NAME];
- aeskey = kzalloc(sizeof(*aeskey), GFP_KERNEL);
+ aeskey = kzalloc_obj(*aeskey, GFP_KERNEL);
if (!aeskey)
return -ENOMEM;
drbg->priv_data = aeskey;
@@ -1761,7 +1761,7 @@ static inline int __init drbg_healthcheck_sanity(void)
drbg_convert_tfm_core("drbg_nopr_hmac_sha512", &coreref, &pr);
#endif
- drbg = kzalloc(sizeof(struct drbg_state), GFP_KERNEL);
+ drbg = kzalloc_obj(struct drbg_state, GFP_KERNEL);
if (!drbg)
return -ENOMEM;
diff --git a/crypto/ecc.c b/crypto/ecc.c
index 2808b3d5f483..3d07383a26f4 100644
--- a/crypto/ecc.c
+++ b/crypto/ecc.c
@@ -98,7 +98,7 @@ struct ecc_point *ecc_alloc_point(unsigned int ndigits)
if (!ndigits)
return NULL;
- p = kmalloc(sizeof(*p), GFP_KERNEL);
+ p = kmalloc_obj(*p, GFP_KERNEL);
if (!p)
return NULL;
diff --git a/crypto/gcm.c b/crypto/gcm.c
index 97716482bed0..154138dbf19a 100644
--- a/crypto/gcm.c
+++ b/crypto/gcm.c
@@ -1098,7 +1098,7 @@ static int __init crypto_gcm_module_init(void)
{
int err;
- gcm_zeroes = kzalloc(sizeof(*gcm_zeroes), GFP_KERNEL);
+ gcm_zeroes = kzalloc_obj(*gcm_zeroes, GFP_KERNEL);
if (!gcm_zeroes)
return -ENOMEM;
diff --git a/crypto/simd.c b/crypto/simd.c
index 2a7549e280ca..e343bda70fc8 100644
--- a/crypto/simd.c
+++ b/crypto/simd.c
@@ -145,7 +145,7 @@ struct simd_skcipher_alg *simd_skcipher_create_compat(struct skcipher_alg *ialg,
struct skcipher_alg *alg;
int err;
- salg = kzalloc(sizeof(*salg), GFP_KERNEL);
+ salg = kzalloc_obj(*salg, GFP_KERNEL);
if (!salg) {
salg = ERR_PTR(-ENOMEM);
goto out;
@@ -370,7 +370,7 @@ static struct simd_aead_alg *simd_aead_create_compat(struct aead_alg *ialg,
struct aead_alg *alg;
int err;
- salg = kzalloc(sizeof(*salg), GFP_KERNEL);
+ salg = kzalloc_obj(*salg, GFP_KERNEL);
if (!salg) {
salg = ERR_PTR(-ENOMEM);
goto out;
diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c
index 62fef100e599..4217d3d1ca41 100644
--- a/crypto/tcrypt.c
+++ b/crypto/tcrypt.c
@@ -180,7 +180,7 @@ static int test_mb_aead_jiffies(struct test_mb_aead_data *data, int enc,
int ret = 0;
int *rc;
- rc = kcalloc(num_mb, sizeof(*rc), GFP_KERNEL);
+ rc = kzalloc_objs(*rc, num_mb, GFP_KERNEL);
if (!rc)
return -ENOMEM;
@@ -207,7 +207,7 @@ static int test_mb_aead_cycles(struct test_mb_aead_data *data, int enc,
int i;
int *rc;
- rc = kcalloc(num_mb, sizeof(*rc), GFP_KERNEL);
+ rc = kzalloc_objs(*rc, num_mb, GFP_KERNEL);
if (!rc)
return -ENOMEM;
@@ -270,7 +270,7 @@ static void test_mb_aead_speed(const char *algo, int enc, int secs,
else
e = "decryption";
- data = kcalloc(num_mb, sizeof(*data), GFP_KERNEL);
+ data = kzalloc_objs(*data, num_mb, GFP_KERNEL);
if (!data)
goto out_free_iv;
@@ -997,7 +997,7 @@ static int test_mb_acipher_jiffies(struct test_mb_skcipher_data *data, int enc,
int ret = 0;
int *rc;
- rc = kcalloc(num_mb, sizeof(*rc), GFP_KERNEL);
+ rc = kzalloc_objs(*rc, num_mb, GFP_KERNEL);
if (!rc)
return -ENOMEM;
@@ -1024,7 +1024,7 @@ static int test_mb_acipher_cycles(struct test_mb_skcipher_data *data, int enc,
int i;
int *rc;
- rc = kcalloc(num_mb, sizeof(*rc), GFP_KERNEL);
+ rc = kzalloc_objs(*rc, num_mb, GFP_KERNEL);
if (!rc)
return -ENOMEM;
@@ -1075,7 +1075,7 @@ static void test_mb_skcipher_speed(const char *algo, int enc, int secs,
else
e = "decryption";
- data = kcalloc(num_mb, sizeof(*data), GFP_KERNEL);
+ data = kzalloc_objs(*data, num_mb, GFP_KERNEL);
if (!data)
return;
diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index b940721447fa..c13aa351898d 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -739,7 +739,7 @@ static struct cipher_test_sglists *alloc_cipher_test_sglists(void)
{
struct cipher_test_sglists *tsgls;
- tsgls = kmalloc(sizeof(*tsgls), GFP_KERNEL);
+ tsgls = kmalloc_obj(*tsgls, GFP_KERNEL);
if (!tsgls)
return NULL;
@@ -1796,7 +1796,7 @@ static int test_hash_vs_generic_impl(const char *generic_driver,
return err;
}
- cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
+ cfg = kzalloc_obj(*cfg, GFP_KERNEL);
if (!cfg) {
err = -ENOMEM;
goto out;
@@ -1941,7 +1941,7 @@ static int __alg_test_hash(const struct hash_testvec *vecs,
if (err)
goto out;
- tsgl = kmalloc(sizeof(*tsgl), GFP_KERNEL);
+ tsgl = kmalloc_obj(*tsgl, GFP_KERNEL);
if (!tsgl || init_test_sglist(tsgl) != 0) {
pr_err("alg: hash: failed to allocate test buffers for %s\n",
driver);
@@ -2598,7 +2598,7 @@ static int test_aead_slow(const struct alg_test_desc *test_desc,
if (noslowtests)
return 0;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
init_rnd_state(&ctx->rng);
@@ -3106,7 +3106,7 @@ static int test_skcipher_vs_generic_impl(const char *generic_driver,
return err;
}
- cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
+ cfg = kzalloc_obj(*cfg, GFP_KERNEL);
if (!cfg) {
err = -ENOMEM;
goto out;
diff --git a/crypto/zstd.c b/crypto/zstd.c
index cbbd0413751a..f0c5c4ee7d29 100644
--- a/crypto/zstd.c
+++ b/crypto/zstd.c
@@ -44,7 +44,7 @@ static void *zstd_alloc_stream(void)
if (!wksp_size)
return ERR_PTR(-EINVAL);
- ctx = kvmalloc(struct_size(ctx, wksp, wksp_size), GFP_KERNEL);
+ ctx = kvmalloc_flex(*ctx, wksp, wksp_size, GFP_KERNEL);
if (!ctx)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/accel/amdxdna/aie2_ctx.c b/drivers/accel/amdxdna/aie2_ctx.c
index 37d05f2e986f..d4869f2fef02 100644
--- a/drivers/accel/amdxdna/aie2_ctx.c
+++ b/drivers/accel/amdxdna/aie2_ctx.c
@@ -464,7 +464,7 @@ static int aie2_alloc_resource(struct amdxdna_hwctx *hwctx)
return aie2_create_context(xdna->dev_handle, hwctx);
}
- xrs_req = kzalloc(sizeof(*xrs_req), GFP_KERNEL);
+ xrs_req = kzalloc_obj(*xrs_req, GFP_KERNEL);
if (!xrs_req)
return -ENOMEM;
@@ -559,7 +559,7 @@ int aie2_hwctx_init(struct amdxdna_hwctx *hwctx)
struct amdxdna_gem_obj *heap;
int i, ret;
- priv = kzalloc(sizeof(*hwctx->priv), GFP_KERNEL);
+ priv = kzalloc_obj(*hwctx->priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
hwctx->priv = priv;
diff --git a/drivers/accel/amdxdna/aie2_error.c b/drivers/accel/amdxdna/aie2_error.c
index 5e82df2b7cf6..a311231834f0 100644
--- a/drivers/accel/amdxdna/aie2_error.c
+++ b/drivers/accel/amdxdna/aie2_error.c
@@ -350,7 +350,7 @@ int aie2_error_async_events_alloc(struct amdxdna_dev_hdl *ndev)
struct async_events *events;
int i, ret;
- events = kzalloc(struct_size(events, event, total_col), GFP_KERNEL);
+ events = kzalloc_flex(*events, event, total_col, GFP_KERNEL);
if (!events)
return -ENOMEM;
diff --git a/drivers/accel/amdxdna/aie2_pci.c b/drivers/accel/amdxdna/aie2_pci.c
index f70ccf0f3c01..47346684bb75 100644
--- a/drivers/accel/amdxdna/aie2_pci.c
+++ b/drivers/accel/amdxdna/aie2_pci.c
@@ -653,7 +653,7 @@ static int aie2_get_aie_metadata(struct amdxdna_client *client,
int ret = 0;
ndev = xdna->dev_handle;
- meta = kzalloc(sizeof(*meta), GFP_KERNEL);
+ meta = kzalloc_obj(*meta, GFP_KERNEL);
if (!meta)
return -ENOMEM;
@@ -748,7 +748,7 @@ static int aie2_get_clock_metadata(struct amdxdna_client *client,
int ret = 0;
ndev = xdna->dev_handle;
- clock = kzalloc(sizeof(*clock), GFP_KERNEL);
+ clock = kzalloc_obj(*clock, GFP_KERNEL);
if (!clock)
return -ENOMEM;
@@ -775,7 +775,7 @@ static int aie2_hwctx_status_cb(struct amdxdna_hwctx *hwctx, void *arg)
if (!array_args->num_element)
return -EINVAL;
- tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
return -ENOMEM;
diff --git a/drivers/accel/amdxdna/aie2_solver.c b/drivers/accel/amdxdna/aie2_solver.c
index 2013d1f13aae..6154ef9f9e9d 100644
--- a/drivers/accel/amdxdna/aie2_solver.c
+++ b/drivers/accel/amdxdna/aie2_solver.c
@@ -197,7 +197,7 @@ static int get_free_partition(struct solver_state *xrs,
if (i == snode->cols_len)
return -ENODEV;
- pt_node = kzalloc(sizeof(*pt_node), GFP_KERNEL);
+ pt_node = kzalloc_obj(*pt_node, GFP_KERNEL);
if (!pt_node)
return -ENOMEM;
@@ -266,7 +266,7 @@ static struct solver_node *create_solver_node(struct solver_state *xrs,
struct solver_node *node;
int ret;
- node = kzalloc(struct_size(node, start_cols, cdop->cols_len), GFP_KERNEL);
+ node = kzalloc_flex(*node, start_cols, cdop->cols_len, GFP_KERNEL);
if (!node)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/accel/amdxdna/amdxdna_ctx.c b/drivers/accel/amdxdna/amdxdna_ctx.c
index d17aef89a0ad..edbac9f4054c 100644
--- a/drivers/accel/amdxdna/amdxdna_ctx.c
+++ b/drivers/accel/amdxdna/amdxdna_ctx.c
@@ -50,7 +50,7 @@ static struct dma_fence *amdxdna_fence_create(struct amdxdna_hwctx *hwctx)
{
struct amdxdna_fence *fence;
- fence = kzalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kzalloc_obj(*fence, GFP_KERNEL);
if (!fence)
return NULL;
@@ -161,7 +161,7 @@ int amdxdna_drm_create_hwctx_ioctl(struct drm_device *dev, void *data, struct dr
if (args->ext || args->ext_flags)
return -EINVAL;
- hwctx = kzalloc(sizeof(*hwctx), GFP_KERNEL);
+ hwctx = kzalloc_obj(*hwctx, GFP_KERNEL);
if (!hwctx)
return -ENOMEM;
@@ -436,7 +436,7 @@ int amdxdna_cmd_submit(struct amdxdna_client *client,
int ret, idx;
XDNA_DBG(xdna, "Command BO hdl %d, Arg BO count %d", cmd_bo_hdl, arg_bo_cnt);
- job = kzalloc(struct_size(job, bos, arg_bo_cnt), GFP_KERNEL);
+ job = kzalloc_flex(*job, bos, arg_bo_cnt, GFP_KERNEL);
if (!job)
return -ENOMEM;
diff --git a/drivers/accel/amdxdna/amdxdna_gem.c b/drivers/accel/amdxdna/amdxdna_gem.c
index dfa916eeb2d9..d862d5fe5385 100644
--- a/drivers/accel/amdxdna/amdxdna_gem.c
+++ b/drivers/accel/amdxdna/amdxdna_gem.c
@@ -205,13 +205,13 @@ static int amdxdna_hmm_register(struct amdxdna_gem_obj *abo,
if (!xdna->dev_info->ops->hmm_invalidate)
return 0;
- mapp = kzalloc(sizeof(*mapp), GFP_KERNEL);
+ mapp = kzalloc_obj(*mapp, GFP_KERNEL);
if (!mapp)
return -ENOMEM;
nr_pages = (PAGE_ALIGN(addr + len) - (addr & PAGE_MASK)) >> PAGE_SHIFT;
- mapp->range.hmm_pfns = kvcalloc(nr_pages, sizeof(*mapp->range.hmm_pfns),
- GFP_KERNEL);
+ mapp->range.hmm_pfns = kvzalloc_objs(*mapp->range.hmm_pfns, nr_pages,
+ GFP_KERNEL);
if (!mapp->range.hmm_pfns) {
ret = -ENOMEM;
goto free_map;
@@ -499,7 +499,7 @@ amdxdna_gem_create_obj(struct drm_device *dev, size_t size)
{
struct amdxdna_gem_obj *abo;
- abo = kzalloc(sizeof(*abo), GFP_KERNEL);
+ abo = kzalloc_obj(*abo, GFP_KERNEL);
if (!abo)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/accel/amdxdna/amdxdna_mailbox.c b/drivers/accel/amdxdna/amdxdna_mailbox.c
index 469242ed8224..04d1d30184ca 100644
--- a/drivers/accel/amdxdna/amdxdna_mailbox.c
+++ b/drivers/accel/amdxdna/amdxdna_mailbox.c
@@ -475,7 +475,7 @@ xdna_mailbox_create_channel(struct mailbox *mb,
return NULL;
}
- mb_chann = kzalloc(sizeof(*mb_chann), GFP_KERNEL);
+ mb_chann = kzalloc_obj(*mb_chann, GFP_KERNEL);
if (!mb_chann)
return NULL;
diff --git a/drivers/accel/amdxdna/amdxdna_pci_drv.c b/drivers/accel/amdxdna/amdxdna_pci_drv.c
index fdefd9ec2066..86f46f59b9dc 100644
--- a/drivers/accel/amdxdna/amdxdna_pci_drv.c
+++ b/drivers/accel/amdxdna/amdxdna_pci_drv.c
@@ -63,7 +63,7 @@ static int amdxdna_drm_open(struct drm_device *ddev, struct drm_file *filp)
struct amdxdna_client *client;
int ret;
- client = kzalloc(sizeof(*client), GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (!client)
return -ENOMEM;
diff --git a/drivers/accel/amdxdna/amdxdna_ubuf.c b/drivers/accel/amdxdna/amdxdna_ubuf.c
index 9e3b3b055caa..44db2cef40cb 100644
--- a/drivers/accel/amdxdna/amdxdna_ubuf.c
+++ b/drivers/accel/amdxdna/amdxdna_ubuf.c
@@ -27,7 +27,7 @@ static struct sg_table *amdxdna_ubuf_map(struct dma_buf_attachment *attach,
struct sg_table *sg;
int ret;
- sg = kzalloc(sizeof(*sg), GFP_KERNEL);
+ sg = kzalloc_obj(*sg, GFP_KERNEL);
if (!sg)
return ERR_PTR(-ENOMEM);
@@ -147,7 +147,7 @@ struct dma_buf *amdxdna_get_ubuf(struct drm_device *dev,
if (!can_do_mlock())
return ERR_PTR(-EPERM);
- ubuf = kzalloc(sizeof(*ubuf), GFP_KERNEL);
+ ubuf = kzalloc_obj(*ubuf, GFP_KERNEL);
if (!ubuf)
return ERR_PTR(-ENOMEM);
@@ -155,7 +155,7 @@ struct dma_buf *amdxdna_get_ubuf(struct drm_device *dev,
ubuf->mm = current->mm;
mmgrab(ubuf->mm);
- va_ent = kvcalloc(num_entries, sizeof(*va_ent), GFP_KERNEL);
+ va_ent = kvzalloc_objs(*va_ent, num_entries, GFP_KERNEL);
if (!va_ent) {
ret = -ENOMEM;
goto free_ubuf;
@@ -189,7 +189,7 @@ struct dma_buf *amdxdna_get_ubuf(struct drm_device *dev,
goto sub_pin_cnt;
}
- ubuf->pages = kvmalloc_array(ubuf->nr_pages, sizeof(*ubuf->pages), GFP_KERNEL);
+ ubuf->pages = kvmalloc_objs(*ubuf->pages, ubuf->nr_pages, GFP_KERNEL);
if (!ubuf->pages) {
ret = -ENOMEM;
goto sub_pin_cnt;
diff --git a/drivers/accel/ethosu/ethosu_drv.c b/drivers/accel/ethosu/ethosu_drv.c
index e05a69bf5574..ae5e6b15e7de 100644
--- a/drivers/accel/ethosu/ethosu_drv.c
+++ b/drivers/accel/ethosu/ethosu_drv.c
@@ -144,7 +144,8 @@ static int ethosu_open(struct drm_device *ddev, struct drm_file *file)
if (!try_module_get(THIS_MODULE))
return -EINVAL;
- struct ethosu_file_priv __free(kfree) *priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ struct ethosu_file_priv __free(kfree) *priv = kzalloc_obj(*priv,
+ GFP_KERNEL);
if (!priv) {
ret = -ENOMEM;
goto err_put_mod;
diff --git a/drivers/accel/ethosu/ethosu_gem.c b/drivers/accel/ethosu/ethosu_gem.c
index 473b5f5d7514..7a5405db5a6c 100644
--- a/drivers/accel/ethosu/ethosu_gem.c
+++ b/drivers/accel/ethosu/ethosu_gem.c
@@ -50,7 +50,7 @@ struct drm_gem_object *ethosu_gem_create_object(struct drm_device *ddev, size_t
{
struct ethosu_gem_object *obj;
- obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ obj = kzalloc_obj(*obj, GFP_KERNEL);
if (!obj)
return ERR_PTR(-ENOMEM);
@@ -352,7 +352,8 @@ static int ethosu_gem_cmdstream_copy_and_validate(struct drm_device *ddev,
struct ethosu_gem_object *bo,
u32 size)
{
- struct ethosu_validated_cmdstream_info __free(kfree) *info = kzalloc(sizeof(*info), GFP_KERNEL);
+ struct ethosu_validated_cmdstream_info __free(kfree) *info = kzalloc_obj(*info,
+ GFP_KERNEL);
struct ethosu_device *edev = to_ethosu_device(ddev);
u32 *bocmds = bo->base.vaddr;
struct cmd_state st;
diff --git a/drivers/accel/ethosu/ethosu_job.c b/drivers/accel/ethosu/ethosu_job.c
index 26e7a2f64d71..91d1b996852e 100644
--- a/drivers/accel/ethosu/ethosu_job.c
+++ b/drivers/accel/ethosu/ethosu_job.c
@@ -375,7 +375,7 @@ static int ethosu_ioctl_submit_job(struct drm_device *dev, struct drm_file *file
if (edev->npu_info.sram_size < job->sram_size)
return -EINVAL;
- ejob = kzalloc(sizeof(*ejob), GFP_KERNEL);
+ ejob = kzalloc_obj(*ejob, GFP_KERNEL);
if (!ejob)
return -ENOMEM;
@@ -384,7 +384,7 @@ static int ethosu_ioctl_submit_job(struct drm_device *dev, struct drm_file *file
ejob->dev = edev;
ejob->sram_size = job->sram_size;
- ejob->done_fence = kzalloc(sizeof(*ejob->done_fence), GFP_KERNEL);
+ ejob->done_fence = kzalloc_obj(*ejob->done_fence, GFP_KERNEL);
if (!ejob->done_fence) {
ret = -ENOMEM;
goto out_cleanup_job;
@@ -476,7 +476,7 @@ int ethosu_ioctl_submit(struct drm_device *dev, void *data, struct drm_file *fil
}
struct drm_ethosu_job __free(kvfree) *jobs =
- kvmalloc_array(args->job_count, sizeof(*jobs), GFP_KERNEL);
+ kvmalloc_objs(*jobs, args->job_count, GFP_KERNEL);
if (!jobs)
return -ENOMEM;
diff --git a/drivers/accel/habanalabs/common/command_buffer.c b/drivers/accel/habanalabs/common/command_buffer.c
index 0f0d295116e7..b27323afd12d 100644
--- a/drivers/accel/habanalabs/common/command_buffer.c
+++ b/drivers/accel/habanalabs/common/command_buffer.c
@@ -116,10 +116,10 @@ static struct hl_cb *hl_cb_alloc(struct hl_device *hdev, u32 cb_size,
* and must use GFP_ATOMIC for all memory allocations.
*/
if (ctx_id == HL_KERNEL_ASID_ID && !hdev->disabled)
- cb = kzalloc(sizeof(*cb), GFP_ATOMIC);
+ cb = kzalloc_obj(*cb, GFP_ATOMIC);
if (!cb)
- cb = kzalloc(sizeof(*cb), GFP_KERNEL);
+ cb = kzalloc_obj(*cb, GFP_KERNEL);
if (!cb)
return NULL;
diff --git a/drivers/accel/habanalabs/common/command_submission.c b/drivers/accel/habanalabs/common/command_submission.c
index dee487724918..f990d16f6c2f 100644
--- a/drivers/accel/habanalabs/common/command_submission.c
+++ b/drivers/accel/habanalabs/common/command_submission.c
@@ -907,9 +907,9 @@ static int allocate_cs(struct hl_device *hdev, struct hl_ctx *ctx,
cntr = &hdev->aggregated_cs_counters;
- cs = kzalloc(sizeof(*cs), GFP_ATOMIC);
+ cs = kzalloc_obj(*cs, GFP_ATOMIC);
if (!cs)
- cs = kzalloc(sizeof(*cs), GFP_KERNEL);
+ cs = kzalloc_obj(*cs, GFP_KERNEL);
if (!cs) {
atomic64_inc(&ctx->cs_counters.out_of_mem_drop_cnt);
@@ -936,9 +936,9 @@ static int allocate_cs(struct hl_device *hdev, struct hl_ctx *ctx,
kref_init(&cs->refcount);
spin_lock_init(&cs->job_lock);
- cs_cmpl = kzalloc(sizeof(*cs_cmpl), GFP_ATOMIC);
+ cs_cmpl = kzalloc_obj(*cs_cmpl, GFP_ATOMIC);
if (!cs_cmpl)
- cs_cmpl = kzalloc(sizeof(*cs_cmpl), GFP_KERNEL);
+ cs_cmpl = kzalloc_obj(*cs_cmpl, GFP_KERNEL);
if (!cs_cmpl) {
atomic64_inc(&ctx->cs_counters.out_of_mem_drop_cnt);
@@ -1302,9 +1302,9 @@ struct hl_cs_job *hl_cs_allocate_job(struct hl_device *hdev,
{
struct hl_cs_job *job;
- job = kzalloc(sizeof(*job), GFP_ATOMIC);
+ job = kzalloc_obj(*job, GFP_ATOMIC);
if (!job)
- job = kzalloc(sizeof(*job), GFP_KERNEL);
+ job = kzalloc_obj(*job, GFP_KERNEL);
if (!job)
return NULL;
@@ -1420,11 +1420,10 @@ static int hl_cs_copy_chunk_array(struct hl_device *hdev,
return -EINVAL;
}
- *cs_chunk_array = kmalloc_array(num_chunks, sizeof(**cs_chunk_array),
- GFP_ATOMIC);
+ *cs_chunk_array = kmalloc_objs(**cs_chunk_array, num_chunks, GFP_ATOMIC);
if (!*cs_chunk_array)
- *cs_chunk_array = kmalloc_array(num_chunks,
- sizeof(**cs_chunk_array), GFP_KERNEL);
+ *cs_chunk_array = kmalloc_objs(**cs_chunk_array, num_chunks,
+ GFP_KERNEL);
if (!*cs_chunk_array) {
atomic64_inc(&ctx->cs_counters.out_of_mem_drop_cnt);
atomic64_inc(&hdev->aggregated_cs_counters.out_of_mem_drop_cnt);
@@ -2040,7 +2039,7 @@ static int cs_ioctl_reserve_signals(struct hl_fpriv *hpriv,
prop = &hdev->kernel_queues[q_idx].sync_stream_prop;
- handle = kzalloc(sizeof(*handle), GFP_KERNEL);
+ handle = kzalloc_obj(*handle, GFP_KERNEL);
if (!handle) {
rc = -ENOMEM;
goto out;
@@ -3053,7 +3052,7 @@ static int hl_multi_cs_wait_ioctl(struct hl_fpriv *hpriv, void *data)
}
/* allocate array for the fences */
- fence_arr = kmalloc_array(seq_arr_len, sizeof(struct hl_fence *), GFP_KERNEL);
+ fence_arr = kmalloc_objs(struct hl_fence *, seq_arr_len, GFP_KERNEL);
if (!fence_arr) {
rc = -ENOMEM;
goto free_seq_arr;
@@ -3412,7 +3411,7 @@ static int _hl_interrupt_wait_ioctl(struct hl_device *hdev, struct hl_ctx *ctx,
goto put_cq_cb;
}
- pend = kzalloc(sizeof(*pend), GFP_KERNEL);
+ pend = kzalloc_obj(*pend, GFP_KERNEL);
if (!pend) {
rc = -ENOMEM;
goto put_cq_cb;
@@ -3521,7 +3520,7 @@ static int _hl_interrupt_wait_ioctl_user_addr(struct hl_device *hdev, struct hl_
hl_ctx_get(ctx);
- pend = kzalloc(sizeof(*pend), GFP_KERNEL);
+ pend = kzalloc_obj(*pend, GFP_KERNEL);
if (!pend) {
hl_ctx_put(ctx);
return -ENOMEM;
diff --git a/drivers/accel/habanalabs/common/context.c b/drivers/accel/habanalabs/common/context.c
index 9f212b17611a..4d69a3f48616 100644
--- a/drivers/accel/habanalabs/common/context.c
+++ b/drivers/accel/habanalabs/common/context.c
@@ -155,7 +155,7 @@ int hl_ctx_create(struct hl_device *hdev, struct hl_fpriv *hpriv)
struct hl_ctx *ctx;
int rc;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
rc = -ENOMEM;
goto out_err;
@@ -209,9 +209,9 @@ int hl_ctx_init(struct hl_device *hdev, struct hl_ctx *ctx, bool is_kernel_ctx)
spin_lock_init(&ctx->cs_lock);
atomic_set(&ctx->thread_ctx_switch_token, 1);
ctx->thread_ctx_switch_wait_token = 0;
- ctx->cs_pending = kcalloc(hdev->asic_prop.max_pending_cs,
- sizeof(struct hl_fence *),
- GFP_KERNEL);
+ ctx->cs_pending = kzalloc_objs(struct hl_fence *,
+ hdev->asic_prop.max_pending_cs,
+ GFP_KERNEL);
if (!ctx->cs_pending)
return -ENOMEM;
diff --git a/drivers/accel/habanalabs/common/debugfs.c b/drivers/accel/habanalabs/common/debugfs.c
index 5f0820b19ccb..05b1cc7918c5 100644
--- a/drivers/accel/habanalabs/common/debugfs.c
+++ b/drivers/accel/habanalabs/common/debugfs.c
@@ -2052,7 +2052,8 @@ int hl_debugfs_device_init(struct hl_device *hdev)
int count = ARRAY_SIZE(hl_debugfs_list);
dev_entry->hdev = hdev;
- dev_entry->entry_arr = kmalloc_array(count, sizeof(struct hl_debugfs_entry), GFP_KERNEL);
+ dev_entry->entry_arr = kmalloc_objs(struct hl_debugfs_entry, count,
+ GFP_KERNEL);
if (!dev_entry->entry_arr)
return -ENOMEM;
diff --git a/drivers/accel/habanalabs/common/decoder.c b/drivers/accel/habanalabs/common/decoder.c
index c03a6da45d00..602e53f963ca 100644
--- a/drivers/accel/habanalabs/common/decoder.c
+++ b/drivers/accel/habanalabs/common/decoder.c
@@ -98,7 +98,7 @@ int hl_dec_init(struct hl_device *hdev)
if (!prop->max_dec)
return 0;
- hdev->dec = kcalloc(prop->max_dec, sizeof(struct hl_dec), GFP_KERNEL);
+ hdev->dec = kzalloc_objs(struct hl_dec, prop->max_dec, GFP_KERNEL);
if (!hdev->dec)
return -ENOMEM;
diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/habanalabs/common/device.c
index 999c92d7036e..20ddf6617e02 100644
--- a/drivers/accel/habanalabs/common/device.c
+++ b/drivers/accel/habanalabs/common/device.c
@@ -722,7 +722,7 @@ static int device_init_cdev(struct hl_device *hdev, const struct class *class,
cdev_init(cdev, fops);
cdev->owner = THIS_MODULE;
- *dev = kzalloc(sizeof(**dev), GFP_KERNEL);
+ *dev = kzalloc_obj(**dev, GFP_KERNEL);
if (!*dev)
return -ENOMEM;
@@ -892,9 +892,9 @@ static int device_early_init(struct hl_device *hdev)
goto early_fini;
if (hdev->asic_prop.completion_queues_count) {
- hdev->cq_wq = kcalloc(hdev->asic_prop.completion_queues_count,
- sizeof(struct workqueue_struct *),
- GFP_KERNEL);
+ hdev->cq_wq = kzalloc_objs(struct workqueue_struct *,
+ hdev->asic_prop.completion_queues_count,
+ GFP_KERNEL);
if (!hdev->cq_wq) {
rc = -ENOMEM;
goto asid_fini;
@@ -945,7 +945,7 @@ static int device_early_init(struct hl_device *hdev)
goto free_ts_free_wq;
}
- hdev->hl_chip_info = kzalloc(sizeof(struct hwmon_chip_info), GFP_KERNEL);
+ hdev->hl_chip_info = kzalloc_obj(struct hwmon_chip_info, GFP_KERNEL);
if (!hdev->hl_chip_info) {
rc = -ENOMEM;
goto free_prefetch_wq;
@@ -1851,8 +1851,7 @@ int hl_device_reset(struct hl_device *hdev, u32 flags)
}
/* Allocate the kernel context */
- hdev->kernel_ctx = kzalloc(sizeof(*hdev->kernel_ctx),
- GFP_KERNEL);
+ hdev->kernel_ctx = kzalloc_obj(*hdev->kernel_ctx, GFP_KERNEL);
if (!hdev->kernel_ctx) {
rc = -ENOMEM;
hl_mmu_fini(hdev);
@@ -2159,8 +2158,9 @@ int hl_device_init(struct hl_device *hdev)
hdev->asic_prop.user_interrupt_count;
if (user_interrupt_cnt) {
- hdev->user_interrupt = kcalloc(user_interrupt_cnt, sizeof(*hdev->user_interrupt),
- GFP_KERNEL);
+ hdev->user_interrupt = kzalloc_objs(*hdev->user_interrupt,
+ user_interrupt_cnt,
+ GFP_KERNEL);
if (!hdev->user_interrupt) {
rc = -ENOMEM;
goto early_fini;
@@ -2226,9 +2226,8 @@ int hl_device_init(struct hl_device *hdev)
* passed as arguments to request_irq
*/
if (cq_cnt) {
- hdev->completion_queue = kcalloc(cq_cnt,
- sizeof(*hdev->completion_queue),
- GFP_KERNEL);
+ hdev->completion_queue = kzalloc_objs(*hdev->completion_queue,
+ cq_cnt, GFP_KERNEL);
if (!hdev->completion_queue) {
dev_err(hdev->dev,
@@ -2249,8 +2248,9 @@ int hl_device_init(struct hl_device *hdev)
hdev->completion_queue[i].cq_idx = i;
}
- hdev->shadow_cs_queue = kcalloc(hdev->asic_prop.max_pending_cs,
- sizeof(struct hl_cs *), GFP_KERNEL);
+ hdev->shadow_cs_queue = kzalloc_objs(struct hl_cs *,
+ hdev->asic_prop.max_pending_cs,
+ GFP_KERNEL);
if (!hdev->shadow_cs_queue) {
rc = -ENOMEM;
goto cq_fini;
@@ -2275,7 +2275,7 @@ int hl_device_init(struct hl_device *hdev)
}
/* Allocate the kernel context */
- hdev->kernel_ctx = kzalloc(sizeof(*hdev->kernel_ctx), GFP_KERNEL);
+ hdev->kernel_ctx = kzalloc_obj(*hdev->kernel_ctx, GFP_KERNEL);
if (!hdev->kernel_ctx) {
rc = -ENOMEM;
goto mmu_fini;
diff --git a/drivers/accel/habanalabs/common/firmware_if.c b/drivers/accel/habanalabs/common/firmware_if.c
index eeb6b2a80fc7..f6a2c48ad74e 100644
--- a/drivers/accel/habanalabs/common/firmware_if.c
+++ b/drivers/accel/habanalabs/common/firmware_if.c
@@ -2681,7 +2681,7 @@ static int hl_fw_dynamic_send_msg(struct hl_device *hdev,
struct lkd_msg_comms *msg;
int rc;
- msg = kzalloc(sizeof(*msg), GFP_KERNEL);
+ msg = kzalloc_obj(*msg, GFP_KERNEL);
if (!msg)
return -ENOMEM;
diff --git a/drivers/accel/habanalabs/common/habanalabs_drv.c b/drivers/accel/habanalabs/common/habanalabs_drv.c
index 0035748f3228..63b4a91e291c 100644
--- a/drivers/accel/habanalabs/common/habanalabs_drv.c
+++ b/drivers/accel/habanalabs/common/habanalabs_drv.c
@@ -181,7 +181,7 @@ int hl_device_open(struct drm_device *ddev, struct drm_file *file_priv)
struct hl_fpriv *hpriv;
int rc;
- hpriv = kzalloc(sizeof(*hpriv), GFP_KERNEL);
+ hpriv = kzalloc_obj(*hpriv, GFP_KERNEL);
if (!hpriv)
return -ENOMEM;
@@ -291,7 +291,7 @@ int hl_device_open_ctrl(struct inode *inode, struct file *filp)
return -ENXIO;
}
- hpriv = kzalloc(sizeof(*hpriv), GFP_KERNEL);
+ hpriv = kzalloc_obj(*hpriv, GFP_KERNEL);
if (!hpriv)
return -ENOMEM;
diff --git a/drivers/accel/habanalabs/common/habanalabs_ioctl.c b/drivers/accel/habanalabs/common/habanalabs_ioctl.c
index fdfdabc85e54..ace0aaa7b836 100644
--- a/drivers/accel/habanalabs/common/habanalabs_ioctl.c
+++ b/drivers/accel/habanalabs/common/habanalabs_ioctl.c
@@ -201,7 +201,7 @@ static int debug_coresight(struct hl_device *hdev, struct hl_ctx *ctx, struct hl
void *input = NULL, *output = NULL;
int rc;
- params = kzalloc(sizeof(*params), GFP_KERNEL);
+ params = kzalloc_obj(*params, GFP_KERNEL);
if (!params)
return -ENOMEM;
@@ -682,11 +682,11 @@ static int sec_attest_info(struct hl_fpriv *hpriv, struct hl_info_args *args)
if ((!max_size) || (!out))
return -EINVAL;
- sec_attest_info = kmalloc(sizeof(*sec_attest_info), GFP_KERNEL);
+ sec_attest_info = kmalloc_obj(*sec_attest_info, GFP_KERNEL);
if (!sec_attest_info)
return -ENOMEM;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info) {
rc = -ENOMEM;
goto free_sec_attest_info;
@@ -731,11 +731,11 @@ static int dev_info_signed(struct hl_fpriv *hpriv, struct hl_info_args *args)
if ((!max_size) || (!out))
return -EINVAL;
- dev_info_signed = kzalloc(sizeof(*dev_info_signed), GFP_KERNEL);
+ dev_info_signed = kzalloc_obj(*dev_info_signed, GFP_KERNEL);
if (!dev_info_signed)
return -ENOMEM;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info) {
rc = -ENOMEM;
goto free_dev_info_signed;
diff --git a/drivers/accel/habanalabs/common/hldio.c b/drivers/accel/habanalabs/common/hldio.c
index 083ae5610875..2cef50bbfa9b 100644
--- a/drivers/accel/habanalabs/common/hldio.c
+++ b/drivers/accel/habanalabs/common/hldio.c
@@ -308,7 +308,7 @@ int hl_dio_ssd2hl(struct hl_device *hdev, struct hl_ctx *ctx, int fd,
dev_dbg(hdev->dev, "SSD2HL fd=%d va=%#llx len=%#lx\n", fd, device_va, len_bytes);
- io = kzalloc(sizeof(*io), GFP_KERNEL);
+ io = kzalloc_obj(*io, GFP_KERNEL);
if (!io) {
rc = -ENOMEM;
goto out;
diff --git a/drivers/accel/habanalabs/common/hw_queue.c b/drivers/accel/habanalabs/common/hw_queue.c
index 3d04a7507cce..d499063a79ec 100644
--- a/drivers/accel/habanalabs/common/hw_queue.c
+++ b/drivers/accel/habanalabs/common/hw_queue.c
@@ -837,7 +837,8 @@ static int ext_and_cpu_queue_init(struct hl_device *hdev, struct hl_hw_queue *q,
q->kernel_address = p;
- q->shadow_queue = kmalloc_array(HL_QUEUE_LENGTH, sizeof(struct hl_cs_job *), GFP_KERNEL);
+ q->shadow_queue = kmalloc_objs(struct hl_cs_job *, HL_QUEUE_LENGTH,
+ GFP_KERNEL);
if (!q->shadow_queue) {
dev_err(hdev->dev,
"Failed to allocate shadow queue for H/W queue %d\n",
@@ -1082,8 +1083,8 @@ int hl_hw_queues_create(struct hl_device *hdev)
struct hl_hw_queue *q;
int i, rc, q_ready_cnt;
- hdev->kernel_queues = kcalloc(asic->max_queues,
- sizeof(*hdev->kernel_queues), GFP_KERNEL);
+ hdev->kernel_queues = kzalloc_objs(*hdev->kernel_queues,
+ asic->max_queues, GFP_KERNEL);
if (!hdev->kernel_queues) {
dev_err(hdev->dev, "Not enough memory for H/W queues\n");
diff --git a/drivers/accel/habanalabs/common/hwmon.c b/drivers/accel/habanalabs/common/hwmon.c
index 52d1e6bf10dc..a8b00a80fa10 100644
--- a/drivers/accel/habanalabs/common/hwmon.c
+++ b/drivers/accel/habanalabs/common/hwmon.c
@@ -195,15 +195,15 @@ int hl_build_hwmon_channel_info(struct hl_device *hdev, struct cpucp_sensor *sen
curr_arr[sensors_by_type_next_index[type]++] = flags;
}
- channels_info = kcalloc(num_active_sensor_types + 1, sizeof(struct hwmon_channel_info *),
- GFP_KERNEL);
+ channels_info = kzalloc_objs(struct hwmon_channel_info *,
+ num_active_sensor_types + 1, GFP_KERNEL);
if (!channels_info) {
rc = -ENOMEM;
goto channels_info_array_err;
}
for (i = 0 ; i < num_active_sensor_types ; i++) {
- channels_info[i] = kzalloc(sizeof(*channels_info[i]), GFP_KERNEL);
+ channels_info[i] = kzalloc_obj(*channels_info[i], GFP_KERNEL);
if (!channels_info[i]) {
rc = -ENOMEM;
goto channel_info_err;
diff --git a/drivers/accel/habanalabs/common/irq.c b/drivers/accel/habanalabs/common/irq.c
index 7c9f2f6a2870..023dd3f1c82c 100644
--- a/drivers/accel/habanalabs/common/irq.c
+++ b/drivers/accel/habanalabs/common/irq.c
@@ -267,7 +267,7 @@ static int handle_registration_node(struct hl_device *hdev, struct hl_user_pendi
if (!(*free_list)) {
/* Alloc/Init the timestamp registration free objects list */
- *free_list = kmalloc(sizeof(struct list_head), GFP_ATOMIC);
+ *free_list = kmalloc_obj(struct list_head, GFP_ATOMIC);
if (!(*free_list))
return -ENOMEM;
@@ -283,14 +283,16 @@ static int handle_registration_node(struct hl_device *hdev, struct hl_user_pendi
intr->interrupt_id);
if (!(*dynamic_alloc_list)) {
- *dynamic_alloc_list = kmalloc(sizeof(struct list_head), GFP_ATOMIC);
+ *dynamic_alloc_list = kmalloc_obj(struct list_head,
+ GFP_ATOMIC);
if (!(*dynamic_alloc_list))
return -ENOMEM;
INIT_LIST_HEAD(*dynamic_alloc_list);
}
- free_node = kmalloc(sizeof(struct timestamp_reg_free_node), GFP_ATOMIC);
+ free_node = kmalloc_obj(struct timestamp_reg_free_node,
+ GFP_ATOMIC);
if (!free_node)
return -ENOMEM;
@@ -344,7 +346,7 @@ static void handle_user_interrupt_ts_list(struct hl_device *hdev, struct hl_user
* and move nodes hanged on the free list back to the interrupt ts list
* we always alloc the job of the WQ at the beginning.
*/
- job = kmalloc(sizeof(*job), GFP_ATOMIC);
+ job = kmalloc_obj(*job, GFP_ATOMIC);
if (!job)
return;
@@ -542,7 +544,7 @@ irqreturn_t hl_irq_handler_eq(int irq, void *arg)
goto skip_irq;
}
- handle_eqe_work = kmalloc(sizeof(*handle_eqe_work), GFP_ATOMIC);
+ handle_eqe_work = kmalloc_obj(*handle_eqe_work, GFP_ATOMIC);
if (handle_eqe_work) {
INIT_WORK(&handle_eqe_work->eq_work, irq_handle_eqe);
handle_eqe_work->hdev = hdev;
diff --git a/drivers/accel/habanalabs/common/memory.c b/drivers/accel/habanalabs/common/memory.c
index 633db4bff46f..8700e341ff94 100644
--- a/drivers/accel/habanalabs/common/memory.c
+++ b/drivers/accel/habanalabs/common/memory.c
@@ -125,7 +125,7 @@ static int alloc_device_memory(struct hl_ctx *ctx, struct hl_mem_in *args,
}
}
- phys_pg_pack = kzalloc(sizeof(*phys_pg_pack), GFP_KERNEL);
+ phys_pg_pack = kzalloc_obj(*phys_pg_pack, GFP_KERNEL);
if (!phys_pg_pack) {
rc = -ENOMEM;
goto pages_pack_err;
@@ -228,7 +228,7 @@ static int dma_map_host_va(struct hl_device *hdev, u64 addr, u64 size,
struct hl_userptr *userptr;
int rc;
- userptr = kzalloc(sizeof(*userptr), GFP_KERNEL);
+ userptr = kzalloc_obj(*userptr, GFP_KERNEL);
if (!userptr) {
rc = -ENOMEM;
goto userptr_err;
@@ -501,7 +501,7 @@ static int add_va_block_locked(struct hl_device *hdev,
res = va_block;
}
- va_block = kmalloc(sizeof(*va_block), GFP_KERNEL);
+ va_block = kmalloc_obj(*va_block, GFP_KERNEL);
if (!va_block)
return -ENOMEM;
@@ -850,7 +850,7 @@ static int init_phys_pg_pack_from_userptr(struct hl_ctx *ctx,
dma_addr_t dma_addr;
int rc, i, j;
- phys_pg_pack = kzalloc(sizeof(*phys_pg_pack), GFP_KERNEL);
+ phys_pg_pack = kzalloc_obj(*phys_pg_pack, GFP_KERNEL);
if (!phys_pg_pack)
return -ENOMEM;
@@ -1152,7 +1152,7 @@ static int map_device_va(struct hl_ctx *ctx, struct hl_mem_in *args, u64 *device
goto shared_err;
}
- hnode = kzalloc(sizeof(*hnode), GFP_KERNEL);
+ hnode = kzalloc_obj(*hnode, GFP_KERNEL);
if (!hnode) {
rc = -ENOMEM;
goto hnode_err;
@@ -1482,7 +1482,7 @@ int hl_hw_block_mmap(struct hl_fpriv *hpriv, struct vm_area_struct *vma)
return -EINVAL;
}
- lnode = kzalloc(sizeof(*lnode), GFP_KERNEL);
+ lnode = kzalloc_obj(*lnode, GFP_KERNEL);
if (!lnode)
return -ENOMEM;
@@ -1553,7 +1553,7 @@ static struct sg_table *alloc_sgt_from_device_pages(struct hl_device *hdev, u64
return ERR_PTR(-EINVAL);
}
- sgt = kzalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kzalloc_obj(*sgt, GFP_KERNEL);
if (!sgt)
return ERR_PTR(-ENOMEM);
@@ -2046,7 +2046,7 @@ static int export_dmabuf_from_addr(struct hl_ctx *ctx, u64 addr, u64 size, u64 o
return -EINVAL;
}
- hl_dmabuf = kzalloc(sizeof(*hl_dmabuf), GFP_KERNEL);
+ hl_dmabuf = kzalloc_obj(*hl_dmabuf, GFP_KERNEL);
if (!hl_dmabuf)
return -ENOMEM;
@@ -2116,7 +2116,7 @@ static int hl_ts_alloc_buf(struct hl_mmap_mem_buf *buf, gfp_t gfp, void *args)
num_elements = *(u32 *)args;
- ts_buff = kzalloc(sizeof(*ts_buff), gfp);
+ ts_buff = kzalloc_obj(*ts_buff, gfp);
if (!ts_buff)
return -ENOMEM;
@@ -2323,7 +2323,7 @@ static int get_user_memory(struct hl_device *hdev, u64 addr, u64 size,
return -EFAULT;
}
- userptr->pages = kvmalloc_array(npages, sizeof(struct page *), GFP_KERNEL);
+ userptr->pages = kvmalloc_objs(struct page *, npages, GFP_KERNEL);
if (!userptr->pages)
return -ENOMEM;
@@ -2395,7 +2395,7 @@ int hl_pin_host_memory(struct hl_device *hdev, u64 addr, u64 size,
}
userptr->pid = current->pid;
- userptr->sgt = kzalloc(sizeof(*userptr->sgt), GFP_KERNEL);
+ userptr->sgt = kzalloc_obj(*userptr->sgt, GFP_KERNEL);
if (!userptr->sgt)
return -ENOMEM;
@@ -2611,7 +2611,7 @@ static int vm_ctx_init_with_ranges(struct hl_ctx *ctx,
for (i = 0 ; i < HL_VA_RANGE_TYPE_MAX ; i++) {
ctx->va_range[i] =
- kzalloc(sizeof(struct hl_va_range), GFP_KERNEL);
+ kzalloc_obj(struct hl_va_range, GFP_KERNEL);
if (!ctx->va_range[i]) {
rc = -ENOMEM;
goto free_va_range;
diff --git a/drivers/accel/habanalabs/common/memory_mgr.c b/drivers/accel/habanalabs/common/memory_mgr.c
index 4401beb99e42..9fdd34acf389 100644
--- a/drivers/accel/habanalabs/common/memory_mgr.c
+++ b/drivers/accel/habanalabs/common/memory_mgr.c
@@ -152,7 +152,7 @@ hl_mmap_mem_buf_alloc(struct hl_mem_mgr *mmg,
struct hl_mmap_mem_buf *buf;
int rc;
- buf = kzalloc(sizeof(*buf), gfp);
+ buf = kzalloc_obj(*buf, gfp);
if (!buf)
return NULL;
diff --git a/drivers/accel/habanalabs/common/mmu/mmu.c b/drivers/accel/habanalabs/common/mmu/mmu.c
index 79823facce7f..8a661408af20 100644
--- a/drivers/accel/habanalabs/common/mmu/mmu.c
+++ b/drivers/accel/habanalabs/common/mmu/mmu.c
@@ -697,7 +697,7 @@ int hl_mmu_prefetch_cache_range(struct hl_ctx *ctx, u32 flags, u32 asid, u64 va,
{
struct hl_prefetch_work *handle_prefetch_work;
- handle_prefetch_work = kmalloc(sizeof(*handle_prefetch_work), GFP_KERNEL);
+ handle_prefetch_work = kmalloc_obj(*handle_prefetch_work, GFP_KERNEL);
if (!handle_prefetch_work)
return -ENOMEM;
@@ -843,7 +843,8 @@ int hl_mmu_hr_init(struct hl_device *hdev, struct hl_mmu_hr_priv *hr_priv, u32 h
return -ENOMEM;
}
- hr_priv->mmu_asid_hop0 = kvcalloc(prop->max_asid, sizeof(struct pgt_info), GFP_KERNEL);
+ hr_priv->mmu_asid_hop0 = kvzalloc_objs(struct pgt_info, prop->max_asid,
+ GFP_KERNEL);
if (ZERO_OR_NULL_PTR(hr_priv->mmu_asid_hop0)) {
dev_err(hdev->dev, "Failed to allocate hr-mmu hop0 table\n");
rc = -ENOMEM;
@@ -1071,7 +1072,7 @@ struct pgt_info *hl_mmu_hr_alloc_hop(struct hl_ctx *ctx, struct hl_mmu_hr_priv *
void *virt_addr;
int i, retry = 1;
- pgt_info = kmalloc(sizeof(*pgt_info), GFP_KERNEL);
+ pgt_info = kmalloc_obj(*pgt_info, GFP_KERNEL);
if (!pgt_info)
return NULL;
@@ -1325,7 +1326,7 @@ u64 hl_mmu_dr_alloc_hop(struct hl_ctx *ctx)
struct pgt_info *pgt_info;
u64 phys_addr, shadow_addr;
- pgt_info = kmalloc(sizeof(*pgt_info), GFP_KERNEL);
+ pgt_info = kmalloc_obj(*pgt_info, GFP_KERNEL);
if (!pgt_info)
return ULLONG_MAX;
diff --git a/drivers/accel/habanalabs/common/security.c b/drivers/accel/habanalabs/common/security.c
index 5402a3cd0491..8a0da0194cab 100644
--- a/drivers/accel/habanalabs/common/security.c
+++ b/drivers/accel/habanalabs/common/security.c
@@ -312,9 +312,8 @@ int hl_init_pb_with_mask(struct hl_device *hdev, u32 num_dcores,
int i, j;
struct hl_block_glbl_sec *glbl_sec;
- glbl_sec = kcalloc(blocks_array_size,
- sizeof(struct hl_block_glbl_sec),
- GFP_KERNEL);
+ glbl_sec = kzalloc_objs(struct hl_block_glbl_sec, blocks_array_size,
+ GFP_KERNEL);
if (!glbl_sec)
return -ENOMEM;
@@ -393,9 +392,8 @@ int hl_init_pb_ranges_with_mask(struct hl_device *hdev, u32 num_dcores,
int i, j, rc = 0;
struct hl_block_glbl_sec *glbl_sec;
- glbl_sec = kcalloc(blocks_array_size,
- sizeof(struct hl_block_glbl_sec),
- GFP_KERNEL);
+ glbl_sec = kzalloc_objs(struct hl_block_glbl_sec, blocks_array_size,
+ GFP_KERNEL);
if (!glbl_sec)
return -ENOMEM;
@@ -476,9 +474,8 @@ int hl_init_pb_single_dcore(struct hl_device *hdev, u32 dcore_offset,
int i, rc = 0;
struct hl_block_glbl_sec *glbl_sec;
- glbl_sec = kcalloc(blocks_array_size,
- sizeof(struct hl_block_glbl_sec),
- GFP_KERNEL);
+ glbl_sec = kzalloc_objs(struct hl_block_glbl_sec, blocks_array_size,
+ GFP_KERNEL);
if (!glbl_sec)
return -ENOMEM;
@@ -524,9 +521,8 @@ int hl_init_pb_ranges_single_dcore(struct hl_device *hdev, u32 dcore_offset,
int i;
struct hl_block_glbl_sec *glbl_sec;
- glbl_sec = kcalloc(blocks_array_size,
- sizeof(struct hl_block_glbl_sec),
- GFP_KERNEL);
+ glbl_sec = kzalloc_objs(struct hl_block_glbl_sec, blocks_array_size,
+ GFP_KERNEL);
if (!glbl_sec)
return -ENOMEM;
diff --git a/drivers/accel/habanalabs/common/state_dump.c b/drivers/accel/habanalabs/common/state_dump.c
index 3a9931f24259..ec25d55d89e2 100644
--- a/drivers/accel/habanalabs/common/state_dump.c
+++ b/drivers/accel/habanalabs/common/state_dump.c
@@ -400,7 +400,7 @@ static int hl_state_dump_print_syncs(struct hl_device *hdev,
u32 index;
int rc = 0;
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (!map)
return -ENOMEM;
diff --git a/drivers/accel/habanalabs/gaudi/gaudi.c b/drivers/accel/habanalabs/gaudi/gaudi.c
index 34771d75da9d..e7dce0d57692 100644
--- a/drivers/accel/habanalabs/gaudi/gaudi.c
+++ b/drivers/accel/habanalabs/gaudi/gaudi.c
@@ -539,9 +539,8 @@ static int gaudi_set_fixed_properties(struct hl_device *hdev)
int i;
prop->max_queues = GAUDI_QUEUE_ID_SIZE;
- prop->hw_queues_props = kcalloc(prop->max_queues,
- sizeof(struct hw_queue_properties),
- GFP_KERNEL);
+ prop->hw_queues_props = kzalloc_objs(struct hw_queue_properties,
+ prop->max_queues, GFP_KERNEL);
if (!prop->hw_queues_props)
return -ENOMEM;
@@ -1853,7 +1852,7 @@ static int gaudi_sw_init(struct hl_device *hdev)
int rc;
/* Allocate device structure */
- gaudi = kzalloc(sizeof(*gaudi), GFP_KERNEL);
+ gaudi = kzalloc_obj(*gaudi, GFP_KERNEL);
if (!gaudi)
return -ENOMEM;
@@ -4906,7 +4905,7 @@ static int gaudi_pin_memory_before_cs(struct hl_device *hdev,
parser->job_userptr_list, &userptr))
goto already_pinned;
- userptr = kzalloc(sizeof(*userptr), GFP_KERNEL);
+ userptr = kzalloc_obj(*userptr, GFP_KERNEL);
if (!userptr)
return -ENOMEM;
@@ -8843,7 +8842,7 @@ static int gaudi_add_sync_to_engine_map_entry(
reg_value -= lower_32_bits(CFG_BASE);
/* create a new hash entry */
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
entry->engine_type = engine_type;
diff --git a/drivers/accel/habanalabs/gaudi2/gaudi2.c b/drivers/accel/habanalabs/gaudi2/gaudi2.c
index b8c0689dba64..e6690698cde4 100644
--- a/drivers/accel/habanalabs/gaudi2/gaudi2.c
+++ b/drivers/accel/habanalabs/gaudi2/gaudi2.c
@@ -2762,8 +2762,8 @@ static int gaudi2_set_fixed_properties(struct hl_device *hdev)
int i, rc;
prop->max_queues = GAUDI2_QUEUE_ID_SIZE;
- prop->hw_queues_props = kcalloc(prop->max_queues, sizeof(struct hw_queue_properties),
- GFP_KERNEL);
+ prop->hw_queues_props = kzalloc_objs(struct hw_queue_properties,
+ prop->max_queues, GFP_KERNEL);
if (!prop->hw_queues_props)
return -ENOMEM;
@@ -3943,8 +3943,9 @@ static int gaudi2_special_blocks_config(struct hl_device *hdev)
/* Configure Special blocks */
prop->glbl_err_max_cause_num = GAUDI2_GLBL_ERR_MAX_CAUSE_NUM;
prop->num_of_special_blocks = ARRAY_SIZE(gaudi2_special_blocks);
- prop->special_blocks = kmalloc_array(prop->num_of_special_blocks,
- sizeof(*prop->special_blocks), GFP_KERNEL);
+ prop->special_blocks = kmalloc_objs(*prop->special_blocks,
+ prop->num_of_special_blocks,
+ GFP_KERNEL);
if (!prop->special_blocks)
return -ENOMEM;
@@ -3958,8 +3959,9 @@ static int gaudi2_special_blocks_config(struct hl_device *hdev)
if (ARRAY_SIZE(gaudi2_iterator_skip_block_types)) {
prop->skip_special_blocks_cfg.block_types =
- kmalloc_array(ARRAY_SIZE(gaudi2_iterator_skip_block_types),
- sizeof(gaudi2_iterator_skip_block_types[0]), GFP_KERNEL);
+ kmalloc_objs(gaudi2_iterator_skip_block_types[0],
+ ARRAY_SIZE(gaudi2_iterator_skip_block_types),
+ GFP_KERNEL);
if (!prop->skip_special_blocks_cfg.block_types) {
rc = -ENOMEM;
goto free_special_blocks;
@@ -3974,8 +3976,9 @@ static int gaudi2_special_blocks_config(struct hl_device *hdev)
if (ARRAY_SIZE(gaudi2_iterator_skip_block_ranges)) {
prop->skip_special_blocks_cfg.block_ranges =
- kmalloc_array(ARRAY_SIZE(gaudi2_iterator_skip_block_ranges),
- sizeof(gaudi2_iterator_skip_block_ranges[0]), GFP_KERNEL);
+ kmalloc_objs(gaudi2_iterator_skip_block_ranges[0],
+ ARRAY_SIZE(gaudi2_iterator_skip_block_ranges),
+ GFP_KERNEL);
if (!prop->skip_special_blocks_cfg.block_ranges) {
rc = -ENOMEM;
goto free_skip_special_blocks_types;
@@ -4054,7 +4057,7 @@ static int gaudi2_sw_init(struct hl_device *hdev)
int i, rc;
/* Allocate device structure */
- gaudi2 = kzalloc(sizeof(*gaudi2), GFP_KERNEL);
+ gaudi2 = kzalloc_obj(*gaudi2, GFP_KERNEL);
if (!gaudi2)
return -ENOMEM;
diff --git a/drivers/accel/habanalabs/gaudi2/gaudi2_security.c b/drivers/accel/habanalabs/gaudi2/gaudi2_security.c
index 307ccb912ccd..f4f8f9122f5c 100644
--- a/drivers/accel/habanalabs/gaudi2/gaudi2_security.c
+++ b/drivers/accel/habanalabs/gaudi2/gaudi2_security.c
@@ -2620,7 +2620,8 @@ static int gaudi2_init_pb_tpc(struct hl_device *hdev)
block_array_size = ARRAY_SIZE(gaudi2_pb_dcr0_tpc0);
- glbl_sec = kcalloc(block_array_size, sizeof(struct hl_block_glbl_sec), GFP_KERNEL);
+ glbl_sec = kzalloc_objs(struct hl_block_glbl_sec, block_array_size,
+ GFP_KERNEL);
if (!glbl_sec)
return -ENOMEM;
diff --git a/drivers/accel/habanalabs/goya/goya.c b/drivers/accel/habanalabs/goya/goya.c
index 84768e306269..fb37a2339f12 100644
--- a/drivers/accel/habanalabs/goya/goya.c
+++ b/drivers/accel/habanalabs/goya/goya.c
@@ -363,9 +363,8 @@ int goya_set_fixed_properties(struct hl_device *hdev)
int i;
prop->max_queues = GOYA_QUEUE_ID_SIZE;
- prop->hw_queues_props = kcalloc(prop->max_queues,
- sizeof(struct hw_queue_properties),
- GFP_KERNEL);
+ prop->hw_queues_props = kzalloc_objs(struct hw_queue_properties,
+ prop->max_queues, GFP_KERNEL);
if (!prop->hw_queues_props)
return -ENOMEM;
@@ -970,7 +969,7 @@ static int goya_sw_init(struct hl_device *hdev)
int rc;
/* Allocate device structure */
- goya = kzalloc(sizeof(*goya), GFP_KERNEL);
+ goya = kzalloc_obj(*goya, GFP_KERNEL);
if (!goya)
return -ENOMEM;
@@ -1031,7 +1030,7 @@ static int goya_sw_init(struct hl_device *hdev)
hdev->asic_funcs->set_pci_memory_regions(hdev);
- goya->goya_work = kmalloc(sizeof(struct goya_work_freq), GFP_KERNEL);
+ goya->goya_work = kmalloc_obj(struct goya_work_freq, GFP_KERNEL);
if (!goya->goya_work) {
rc = -ENOMEM;
goto free_cpu_accessible_dma_pool;
@@ -3336,7 +3335,7 @@ static int goya_pin_memory_before_cs(struct hl_device *hdev,
parser->job_userptr_list, &userptr))
goto already_pinned;
- userptr = kzalloc(sizeof(*userptr), GFP_KERNEL);
+ userptr = kzalloc_obj(*userptr, GFP_KERNEL);
if (!userptr)
return -ENOMEM;
diff --git a/drivers/accel/ivpu/ivpu_drv.c b/drivers/accel/ivpu/ivpu_drv.c
index 8ffda57459df..ab910d201e68 100644
--- a/drivers/accel/ivpu/ivpu_drv.c
+++ b/drivers/accel/ivpu/ivpu_drv.c
@@ -237,7 +237,7 @@ static int ivpu_open(struct drm_device *dev, struct drm_file *file)
if (!drm_dev_enter(dev, &idx))
return -ENODEV;
- file_priv = kzalloc(sizeof(*file_priv), GFP_KERNEL);
+ file_priv = kzalloc_obj(*file_priv, GFP_KERNEL);
if (!file_priv) {
ret = -ENOMEM;
goto err_dev_exit;
diff --git a/drivers/accel/ivpu/ivpu_gem_userptr.c b/drivers/accel/ivpu/ivpu_gem_userptr.c
index 25ba606164c0..7dcd127471bb 100644
--- a/drivers/accel/ivpu/ivpu_gem_userptr.c
+++ b/drivers/accel/ivpu/ivpu_gem_userptr.c
@@ -77,7 +77,7 @@ ivpu_create_userptr_dmabuf(struct ivpu_device *vdev, void __user *user_ptr,
if (!(flags & DRM_IVPU_BO_READ_ONLY))
gup_flags |= FOLL_WRITE;
- pages = kvmalloc_array(nr_pages, sizeof(*pages), GFP_KERNEL);
+ pages = kvmalloc_objs(*pages, nr_pages, GFP_KERNEL);
if (!pages)
return ERR_PTR(-ENOMEM);
@@ -94,7 +94,7 @@ ivpu_create_userptr_dmabuf(struct ivpu_device *vdev, void __user *user_ptr,
goto unpin_pages;
}
- sgt = kmalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kmalloc_obj(*sgt, GFP_KERNEL);
if (!sgt) {
ret = -ENOMEM;
goto unpin_pages;
diff --git a/drivers/accel/ivpu/ivpu_ipc.c b/drivers/accel/ivpu/ivpu_ipc.c
index 1f13bf95b2b3..f47df092bb0d 100644
--- a/drivers/accel/ivpu/ivpu_ipc.c
+++ b/drivers/accel/ivpu/ivpu_ipc.c
@@ -142,7 +142,7 @@ ivpu_ipc_rx_msg_add(struct ivpu_device *vdev, struct ivpu_ipc_consumer *cons,
lockdep_assert_held(&ipc->cons_lock);
- rx_msg = kzalloc(sizeof(*rx_msg), GFP_ATOMIC);
+ rx_msg = kzalloc_obj(*rx_msg, GFP_ATOMIC);
if (!rx_msg) {
ivpu_ipc_rx_mark_free(vdev, ipc_hdr, jsm_msg);
return;
diff --git a/drivers/accel/ivpu/ivpu_job.c b/drivers/accel/ivpu/ivpu_job.c
index 4f8564e2878a..cb478d946ae9 100644
--- a/drivers/accel/ivpu/ivpu_job.c
+++ b/drivers/accel/ivpu/ivpu_job.c
@@ -98,7 +98,7 @@ static struct ivpu_cmdq *ivpu_cmdq_alloc(struct ivpu_file_priv *file_priv)
struct ivpu_device *vdev = file_priv->vdev;
struct ivpu_cmdq *cmdq;
- cmdq = kzalloc(sizeof(*cmdq), GFP_KERNEL);
+ cmdq = kzalloc_obj(*cmdq, GFP_KERNEL);
if (!cmdq)
return NULL;
@@ -491,7 +491,7 @@ static struct dma_fence *ivpu_fence_create(struct ivpu_device *vdev)
{
struct ivpu_fence *fence;
- fence = kzalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kzalloc_obj(*fence, GFP_KERNEL);
if (!fence)
return NULL;
@@ -525,7 +525,7 @@ ivpu_job_create(struct ivpu_file_priv *file_priv, u32 engine_idx, u32 bo_count)
struct ivpu_device *vdev = file_priv->vdev;
struct ivpu_job *job;
- job = kzalloc(struct_size(job, bos, bo_count), GFP_KERNEL);
+ job = kzalloc_flex(*job, bos, bo_count, GFP_KERNEL);
if (!job)
return NULL;
diff --git a/drivers/accel/ivpu/ivpu_ms.c b/drivers/accel/ivpu/ivpu_ms.c
index 1d9c1cb17924..f3468c9533ca 100644
--- a/drivers/accel/ivpu/ivpu_ms.c
+++ b/drivers/accel/ivpu/ivpu_ms.c
@@ -59,7 +59,7 @@ int ivpu_ms_start_ioctl(struct drm_device *dev, void *data, struct drm_file *fil
goto unlock;
}
- ms = kzalloc(sizeof(*ms), GFP_KERNEL);
+ ms = kzalloc_obj(*ms, GFP_KERNEL);
if (!ms) {
ret = -ENOMEM;
goto unlock;
diff --git a/drivers/accel/qaic/qaic_control.c b/drivers/accel/qaic/qaic_control.c
index 428d8f65bff3..517cd3a9cab2 100644
--- a/drivers/accel/qaic/qaic_control.c
+++ b/drivers/accel/qaic/qaic_control.c
@@ -423,7 +423,8 @@ static int find_and_map_user_pages(struct qaic_device *qdev,
nr_pages = need_pages;
while (1) {
- page_list = kmalloc_array(nr_pages, sizeof(*page_list), GFP_KERNEL | __GFP_NOWARN);
+ page_list = kmalloc_objs(*page_list, nr_pages,
+ GFP_KERNEL | __GFP_NOWARN);
if (!page_list) {
nr_pages = nr_pages / 2;
if (!nr_pages)
@@ -442,7 +443,7 @@ static int find_and_map_user_pages(struct qaic_device *qdev,
goto put_pages;
}
- sgt = kmalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kmalloc_obj(*sgt, GFP_KERNEL);
if (!sgt) {
ret = -ENOMEM;
goto put_pages;
@@ -581,7 +582,7 @@ static int encode_dma(struct qaic_device *qdev, void *trans, struct wrapper_list
QAIC_MANAGE_WIRE_MSG_LENGTH)
return -ENOMEM;
- xfer = kmalloc(sizeof(*xfer), GFP_KERNEL);
+ xfer = kmalloc_obj(*xfer, GFP_KERNEL);
if (!xfer)
return -ENOMEM;
@@ -1165,7 +1166,7 @@ static struct wrapper_list *alloc_wrapper_list(void)
{
struct wrapper_list *wrappers;
- wrappers = kmalloc(sizeof(*wrappers), GFP_KERNEL);
+ wrappers = kmalloc_obj(*wrappers, GFP_KERNEL);
if (!wrappers)
return NULL;
INIT_LIST_HEAD(&wrappers->list);
@@ -1457,7 +1458,7 @@ void qaic_mhi_dl_xfer_cb(struct mhi_device *mhi_dev, struct mhi_result *mhi_resu
return;
}
- resp = kmalloc(sizeof(*resp), GFP_ATOMIC);
+ resp = kmalloc_obj(*resp, GFP_ATOMIC);
if (!resp) {
kfree(msg);
return;
diff --git a/drivers/accel/qaic/qaic_data.c b/drivers/accel/qaic/qaic_data.c
index 60cb4d65d48e..6405f849ad5f 100644
--- a/drivers/accel/qaic/qaic_data.c
+++ b/drivers/accel/qaic/qaic_data.c
@@ -213,7 +213,7 @@ static int clone_range_of_sgt_for_slice(struct qaic_device *qdev, struct sg_tabl
goto out;
}
- sgt = kzalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kzalloc_obj(*sgt, GFP_KERNEL);
if (!sgt) {
ret = -ENOMEM;
goto out;
@@ -399,13 +399,13 @@ static int qaic_map_one_slice(struct qaic_device *qdev, struct qaic_bo *bo,
if (ret)
goto out;
- slice = kmalloc(sizeof(*slice), GFP_KERNEL);
+ slice = kmalloc_obj(*slice, GFP_KERNEL);
if (!slice) {
ret = -ENOMEM;
goto free_sgt;
}
- slice->reqs = kvcalloc(sgt->nents, sizeof(*slice->reqs), GFP_KERNEL);
+ slice->reqs = kvzalloc_objs(*slice->reqs, sgt->nents, GFP_KERNEL);
if (!slice->reqs) {
ret = -ENOMEM;
goto free_slice;
@@ -507,7 +507,7 @@ static int create_sgt(struct qaic_device *qdev, struct sg_table **sgt_out, u64 s
i++;
}
- sgt = kmalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kmalloc_obj(*sgt, GFP_KERNEL);
if (!sgt) {
ret = -ENOMEM;
goto free_partial_alloc;
@@ -653,7 +653,7 @@ static struct sg_table *qaic_get_sg_table(struct drm_gem_object *obj)
sgt_in = bo->sgt;
- sgt = kmalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kmalloc_obj(*sgt, GFP_KERNEL);
if (!sgt)
return ERR_PTR(-ENOMEM);
@@ -697,7 +697,7 @@ static struct qaic_bo *qaic_alloc_init_bo(void)
{
struct qaic_bo *bo;
- bo = kzalloc(sizeof(*bo), GFP_KERNEL);
+ bo = kzalloc_obj(*bo, GFP_KERNEL);
if (!bo)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/accel/qaic/qaic_drv.c b/drivers/accel/qaic/qaic_drv.c
index 4c70bd949d53..7127364068ae 100644
--- a/drivers/accel/qaic/qaic_drv.c
+++ b/drivers/accel/qaic/qaic_drv.c
@@ -152,7 +152,7 @@ static int qaic_open(struct drm_device *dev, struct drm_file *file)
goto dev_unlock;
}
- usr = kmalloc(sizeof(*usr), GFP_KERNEL);
+ usr = kmalloc_obj(*usr, GFP_KERNEL);
if (!usr) {
ret = -ENOMEM;
goto dev_unlock;
diff --git a/drivers/accel/qaic/qaic_ras.c b/drivers/accel/qaic/qaic_ras.c
index f1d52a710136..b488e6ef66c5 100644
--- a/drivers/accel/qaic/qaic_ras.c
+++ b/drivers/accel/qaic/qaic_ras.c
@@ -556,7 +556,7 @@ static int qaic_ras_mhi_probe(struct mhi_device *mhi_dev, const struct mhi_devic
if (ret)
return ret;
- resp = kzalloc(sizeof(*resp), GFP_KERNEL);
+ resp = kzalloc_obj(*resp, GFP_KERNEL);
if (!resp) {
mhi_unprepare_from_transfer(mhi_dev);
return -ENOMEM;
diff --git a/drivers/accel/qaic/qaic_ssr.c b/drivers/accel/qaic/qaic_ssr.c
index 9b662d690371..77ac30498ad0 100644
--- a/drivers/accel/qaic/qaic_ssr.c
+++ b/drivers/accel/qaic/qaic_ssr.c
@@ -260,7 +260,7 @@ static int send_xfer_done(struct qaic_device *qdev, void *resp, u32 dbc_id)
struct ssr_debug_transfer_done *xfer_done;
int ret;
- xfer_done = kmalloc(sizeof(*xfer_done), GFP_KERNEL);
+ xfer_done = kmalloc_obj(*xfer_done, GFP_KERNEL);
if (!xfer_done) {
ret = -ENOMEM;
goto out;
@@ -450,14 +450,15 @@ static struct ssr_dump_info *alloc_dump_info(struct qaic_device *qdev,
}
/* Allocate SSR crashdump book keeping structure */
- dump_info = kzalloc(sizeof(*dump_info), GFP_KERNEL);
+ dump_info = kzalloc_obj(*dump_info, GFP_KERNEL);
if (!dump_info) {
ret = -ENOMEM;
goto out;
}
/* Buffer used to send MEMORY READ request to device via MHI */
- dump_info->read_buf_req = kzalloc(sizeof(*dump_info->read_buf_req), GFP_KERNEL);
+ dump_info->read_buf_req = kzalloc_obj(*dump_info->read_buf_req,
+ GFP_KERNEL);
if (!dump_info->read_buf_req) {
ret = -ENOMEM;
goto free_dump_info;
@@ -490,7 +491,7 @@ static int dbg_xfer_info_rsp(struct qaic_device *qdev, struct dma_bridge_chan *d
struct ssr_crashdump *ssr_crash = NULL;
int ret = 0, ret2;
- debug_rsp = kmalloc(sizeof(*debug_rsp), GFP_KERNEL);
+ debug_rsp = kmalloc_obj(*debug_rsp, GFP_KERNEL);
if (!debug_rsp)
return -ENOMEM;
@@ -640,7 +641,7 @@ static void ssr_worker(struct work_struct *work)
break;
}
- event_rsp = kmalloc(sizeof(*event_rsp), GFP_KERNEL);
+ event_rsp = kmalloc_obj(*event_rsp, GFP_KERNEL);
if (!event_rsp)
break;
diff --git a/drivers/accel/qaic/qaic_timesync.c b/drivers/accel/qaic/qaic_timesync.c
index 8af2475f4f36..b2400d6b2f4f 100644
--- a/drivers/accel/qaic/qaic_timesync.c
+++ b/drivers/accel/qaic/qaic_timesync.c
@@ -185,7 +185,7 @@ static int qaic_timesync_probe(struct mhi_device *mhi_dev, const struct mhi_devi
struct timer_list *timer;
int ret;
- mqtsdev = kzalloc(sizeof(*mqtsdev), GFP_KERNEL);
+ mqtsdev = kzalloc_obj(*mqtsdev, GFP_KERNEL);
if (!mqtsdev) {
ret = -ENOMEM;
goto out;
@@ -196,7 +196,7 @@ static int qaic_timesync_probe(struct mhi_device *mhi_dev, const struct mhi_devi
mqtsdev->qdev = qdev;
mqtsdev->dev = &qdev->pdev->dev;
- mqtsdev->sync_msg = kzalloc(sizeof(*mqtsdev->sync_msg), GFP_KERNEL);
+ mqtsdev->sync_msg = kzalloc_obj(*mqtsdev->sync_msg, GFP_KERNEL);
if (!mqtsdev->sync_msg) {
ret = -ENOMEM;
goto free_mqts_dev;
@@ -275,7 +275,7 @@ static void qaic_boot_timesync_worker(struct work_struct *work)
switch (data.hdr.msg_type) {
case QAIC_TS_CMD_TO_HOST:
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
break;
@@ -304,7 +304,7 @@ static int qaic_boot_timesync_queue_resp(struct mhi_device *mhi_dev, struct qaic
struct qts_resp *resp;
int ret;
- resp = kzalloc(sizeof(*resp), GFP_KERNEL);
+ resp = kzalloc_obj(*resp, GFP_KERNEL);
if (!resp)
return -ENOMEM;
diff --git a/drivers/accel/rocket/rocket_drv.c b/drivers/accel/rocket/rocket_drv.c
index e4cb2efeb55a..f09c3800ab31 100644
--- a/drivers/accel/rocket/rocket_drv.c
+++ b/drivers/accel/rocket/rocket_drv.c
@@ -38,7 +38,7 @@ rocket_iommu_domain_destroy(struct kref *kref)
static struct rocket_iommu_domain*
rocket_iommu_domain_create(struct device *dev)
{
- struct rocket_iommu_domain *domain = kmalloc(sizeof(*domain), GFP_KERNEL);
+ struct rocket_iommu_domain *domain = kmalloc_obj(*domain, GFP_KERNEL);
void *err;
if (!domain)
@@ -79,7 +79,7 @@ rocket_open(struct drm_device *dev, struct drm_file *file)
if (!try_module_get(THIS_MODULE))
return -EINVAL;
- rocket_priv = kzalloc(sizeof(*rocket_priv), GFP_KERNEL);
+ rocket_priv = kzalloc_obj(*rocket_priv, GFP_KERNEL);
if (!rocket_priv) {
ret = -ENOMEM;
goto err_put_mod;
diff --git a/drivers/accel/rocket/rocket_gem.c b/drivers/accel/rocket/rocket_gem.c
index 624c4ecf5a34..3808dfc97916 100644
--- a/drivers/accel/rocket/rocket_gem.c
+++ b/drivers/accel/rocket/rocket_gem.c
@@ -48,7 +48,7 @@ struct drm_gem_object *rocket_gem_create_object(struct drm_device *dev, size_t s
{
struct rocket_gem_object *obj;
- obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ obj = kzalloc_obj(*obj, GFP_KERNEL);
if (!obj)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/accel/rocket/rocket_job.c b/drivers/accel/rocket/rocket_job.c
index acd606160dc9..518dd5779016 100644
--- a/drivers/accel/rocket/rocket_job.c
+++ b/drivers/accel/rocket/rocket_job.c
@@ -45,7 +45,7 @@ static struct dma_fence *rocket_fence_create(struct rocket_core *core)
{
struct dma_fence *fence;
- fence = kzalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kzalloc_obj(*fence, GFP_KERNEL);
if (!fence)
return ERR_PTR(-ENOMEM);
@@ -71,7 +71,7 @@ rocket_copy_tasks(struct drm_device *dev,
if (!rjob->task_count)
return 0;
- rjob->tasks = kvmalloc_array(job->task_count, sizeof(*rjob->tasks), GFP_KERNEL);
+ rjob->tasks = kvmalloc_objs(*rjob->tasks, job->task_count, GFP_KERNEL);
if (!rjob->tasks) {
drm_dbg(dev, "Failed to allocate task array\n");
return -ENOMEM;
@@ -496,9 +496,9 @@ void rocket_job_fini(struct rocket_core *core)
int rocket_job_open(struct rocket_file_priv *rocket_priv)
{
struct rocket_device *rdev = rocket_priv->rdev;
- struct drm_gpu_scheduler **scheds = kmalloc_array(rdev->num_cores,
- sizeof(*scheds),
- GFP_KERNEL);
+ struct drm_gpu_scheduler **scheds = kmalloc_objs(*scheds,
+ rdev->num_cores,
+ GFP_KERNEL);
unsigned int core;
int ret;
@@ -543,7 +543,7 @@ static int rocket_ioctl_submit_job(struct drm_device *dev, struct drm_file *file
if (job->task_count == 0)
return -EINVAL;
- rjob = kzalloc(sizeof(*rjob), GFP_KERNEL);
+ rjob = kzalloc_obj(*rjob, GFP_KERNEL);
if (!rjob)
return -ENOMEM;
@@ -610,7 +610,7 @@ int rocket_ioctl_submit(struct drm_device *dev, void *data, struct drm_file *fil
return -EINVAL;
}
- jobs = kvmalloc_array(args->job_count, sizeof(*jobs), GFP_KERNEL);
+ jobs = kvmalloc_objs(*jobs, args->job_count, GFP_KERNEL);
if (!jobs) {
drm_dbg(dev, "Failed to allocate incoming job array\n");
return -ENOMEM;
diff --git a/drivers/accessibility/speakup/main.c b/drivers/accessibility/speakup/main.c
index e68cf1d83787..78a77dd789a2 100644
--- a/drivers/accessibility/speakup/main.c
+++ b/drivers/accessibility/speakup/main.c
@@ -1353,8 +1353,8 @@ static int speakup_allocate(struct vc_data *vc, gfp_t gfp_flags)
vc_num = vc->vc_num;
if (!speakup_console[vc_num]) {
- speakup_console[vc_num] = kzalloc(sizeof(*speakup_console[0]),
- gfp_flags);
+ speakup_console[vc_num] = kzalloc_obj(*speakup_console[0],
+ gfp_flags);
if (!speakup_console[vc_num])
return -ENOMEM;
speakup_date(vc);
diff --git a/drivers/accessibility/speakup/spk_ttyio.c b/drivers/accessibility/speakup/spk_ttyio.c
index 4c0a6e1f019d..a9aab12a7836 100644
--- a/drivers/accessibility/speakup/spk_ttyio.c
+++ b/drivers/accessibility/speakup/spk_ttyio.c
@@ -55,7 +55,7 @@ static int spk_ttyio_ldisc_open(struct tty_struct *tty)
if (!tty->ops->write)
return -EOPNOTSUPP;
- ldisc_data = kmalloc(sizeof(*ldisc_data), GFP_KERNEL);
+ ldisc_data = kmalloc_obj(*ldisc_data, GFP_KERNEL);
if (!ldisc_data)
return -ENOMEM;
diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
index 1f69be8f51a2..94049a15f7b9 100644
--- a/drivers/acpi/ac.c
+++ b/drivers/acpi/ac.c
@@ -208,7 +208,7 @@ static int acpi_ac_probe(struct platform_device *pdev)
struct acpi_ac *ac;
int result;
- ac = kzalloc(sizeof(struct acpi_ac), GFP_KERNEL);
+ ac = kzalloc_obj(struct acpi_ac, GFP_KERNEL);
if (!ac)
return -ENOMEM;
diff --git a/drivers/acpi/acpi_apd.c b/drivers/acpi/acpi_apd.c
index 49539f7528c6..d9cd3f97aa00 100644
--- a/drivers/acpi/acpi_apd.c
+++ b/drivers/acpi/acpi_apd.c
@@ -202,7 +202,7 @@ static int acpi_apd_create_device(struct acpi_device *adev,
return IS_ERR_OR_NULL(pdev) ? PTR_ERR(pdev) : 1;
}
- pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
+ pdata = kzalloc_obj(*pdata, GFP_KERNEL);
if (!pdata)
return -ENOMEM;
diff --git a/drivers/acpi/acpi_configfs.c b/drivers/acpi/acpi_configfs.c
index c970792b11a4..c20bedff2c04 100644
--- a/drivers/acpi/acpi_configfs.c
+++ b/drivers/acpi/acpi_configfs.c
@@ -210,7 +210,7 @@ static struct config_item *acpi_table_make_item(struct config_group *group,
{
struct acpi_table *table;
- table = kzalloc(sizeof(*table), GFP_KERNEL);
+ table = kzalloc_obj(*table, GFP_KERNEL);
if (!table)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/acpi/acpi_ipmi.c b/drivers/acpi/acpi_ipmi.c
index 5fba4dab5d08..5ec5a841afce 100644
--- a/drivers/acpi/acpi_ipmi.c
+++ b/drivers/acpi/acpi_ipmi.c
@@ -117,7 +117,7 @@ ipmi_dev_alloc(int iface, struct device *dev, acpi_handle handle)
int err;
struct ipmi_user *user;
- ipmi_device = kzalloc(sizeof(*ipmi_device), GFP_KERNEL);
+ ipmi_device = kzalloc_obj(*ipmi_device, GFP_KERNEL);
if (!ipmi_device)
return NULL;
@@ -197,7 +197,7 @@ static struct acpi_ipmi_msg *ipmi_msg_alloc(void)
if (!ipmi)
return NULL;
- ipmi_msg = kzalloc(sizeof(struct acpi_ipmi_msg), GFP_KERNEL);
+ ipmi_msg = kzalloc_obj(struct acpi_ipmi_msg, GFP_KERNEL);
if (!ipmi_msg) {
acpi_ipmi_dev_put(ipmi);
return NULL;
diff --git a/drivers/acpi/acpi_lpat.c b/drivers/acpi/acpi_lpat.c
index 851f67c96097..b238f9f371dd 100644
--- a/drivers/acpi/acpi_lpat.c
+++ b/drivers/acpi/acpi_lpat.c
@@ -104,7 +104,7 @@ struct acpi_lpat_conversion_table *acpi_lpat_get_conversion_table(acpi_handle
(obj_p->package.count % 2) || (obj_p->package.count < 4))
goto out;
- lpat = kcalloc(obj_p->package.count, sizeof(int), GFP_KERNEL);
+ lpat = kzalloc_objs(int, obj_p->package.count, GFP_KERNEL);
if (!lpat)
goto out;
@@ -117,7 +117,7 @@ struct acpi_lpat_conversion_table *acpi_lpat_get_conversion_table(acpi_handle
lpat[i] = (s64)obj_e->integer.value;
}
- lpat_table = kzalloc(sizeof(*lpat_table), GFP_KERNEL);
+ lpat_table = kzalloc_obj(*lpat_table, GFP_KERNEL);
if (!lpat_table) {
kfree(lpat);
goto out;
diff --git a/drivers/acpi/acpi_memhotplug.c b/drivers/acpi/acpi_memhotplug.c
index d0c1a71007d0..f12a9766696b 100644
--- a/drivers/acpi/acpi_memhotplug.c
+++ b/drivers/acpi/acpi_memhotplug.c
@@ -80,7 +80,7 @@ acpi_memory_get_resource(struct acpi_resource *resource, void *context)
}
}
- new = kzalloc(sizeof(struct acpi_memory_info), GFP_KERNEL);
+ new = kzalloc_obj(struct acpi_memory_info, GFP_KERNEL);
if (!new)
return AE_ERROR;
@@ -290,7 +290,7 @@ static int acpi_memory_device_add(struct acpi_device *device,
if (!device)
return -EINVAL;
- mem_device = kzalloc(sizeof(struct acpi_memory_device), GFP_KERNEL);
+ mem_device = kzalloc_obj(struct acpi_memory_device, GFP_KERNEL);
if (!mem_device)
return -ENOMEM;
diff --git a/drivers/acpi/acpi_mrrm.c b/drivers/acpi/acpi_mrrm.c
index 6d69554c940e..df771e49333f 100644
--- a/drivers/acpi/acpi_mrrm.c
+++ b/drivers/acpi/acpi_mrrm.c
@@ -81,8 +81,8 @@ static __init int acpi_parse_mrrm(struct acpi_table_header *table)
return -EINVAL;
}
- mrrm_mem_range_entry = kmalloc_array(mre_count, sizeof(*mrrm_mem_range_entry),
- GFP_KERNEL | __GFP_ZERO);
+ mrrm_mem_range_entry = kmalloc_objs(*mrrm_mem_range_entry, mre_count,
+ GFP_KERNEL | __GFP_ZERO);
if (!mrrm_mem_range_entry)
return -ENOMEM;
@@ -161,7 +161,7 @@ static __init int add_boot_memory_ranges(void)
if (!pkobj)
return -ENOMEM;
- kobjs = kcalloc(mrrm_mem_entry_num, sizeof(*kobjs), GFP_KERNEL);
+ kobjs = kzalloc_objs(*kobjs, mrrm_mem_entry_num, GFP_KERNEL);
if (!kobjs) {
kobject_put(pkobj);
return -ENOMEM;
diff --git a/drivers/acpi/acpi_pcc.c b/drivers/acpi/acpi_pcc.c
index e3f302b9dee5..6914071d640b 100644
--- a/drivers/acpi/acpi_pcc.c
+++ b/drivers/acpi/acpi_pcc.c
@@ -54,7 +54,7 @@ acpi_pcc_address_space_setup(acpi_handle region_handle, u32 function,
struct pcc_mbox_chan *pcc_chan;
acpi_status ret;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return AE_NO_MEMORY;
diff --git a/drivers/acpi/acpi_platform.c b/drivers/acpi/acpi_platform.c
index 0ec1afc744f5..3ea6d941aabd 100644
--- a/drivers/acpi/acpi_platform.c
+++ b/drivers/acpi/acpi_platform.c
@@ -145,7 +145,7 @@ struct platform_device *acpi_create_platform_device(struct acpi_device *adev,
if (count > 0) {
struct resource_entry *rentry;
- resources = kcalloc(count, sizeof(*resources), GFP_KERNEL);
+ resources = kzalloc_objs(*resources, count, GFP_KERNEL);
if (!resources) {
acpi_dev_free_resource_list(&resource_list);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/acpi/acpi_processor.c b/drivers/acpi/acpi_processor.c
index 85096ce7b658..02a80803962c 100644
--- a/drivers/acpi/acpi_processor.c
+++ b/drivers/acpi/acpi_processor.c
@@ -428,7 +428,7 @@ static int acpi_processor_add(struct acpi_device *device,
if (!acpi_device_is_enabled(device))
return -ENODEV;
- pr = kzalloc(sizeof(struct acpi_processor), GFP_KERNEL);
+ pr = kzalloc_obj(struct acpi_processor, GFP_KERNEL);
if (!pr)
return -ENOMEM;
diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
index 3d6e7306f29a..a2e07d946ce3 100644
--- a/drivers/acpi/acpi_video.c
+++ b/drivers/acpi/acpi_video.c
@@ -825,7 +825,7 @@ int acpi_video_get_levels(struct acpi_device *device,
goto out;
}
- br = kzalloc(sizeof(*br), GFP_KERNEL);
+ br = kzalloc_obj(*br, GFP_KERNEL);
if (!br) {
result = -ENOMEM;
goto out;
@@ -836,9 +836,9 @@ int acpi_video_get_levels(struct acpi_device *device,
* in order to account for buggy BIOS which don't export the first two
* special levels (see below)
*/
- br->levels = kmalloc_array(obj->package.count + ACPI_VIDEO_FIRST_LEVEL,
- sizeof(*br->levels),
- GFP_KERNEL);
+ br->levels = kmalloc_objs(*br->levels,
+ obj->package.count + ACPI_VIDEO_FIRST_LEVEL,
+ GFP_KERNEL);
if (!br->levels) {
result = -ENOMEM;
goto out_free;
@@ -1141,7 +1141,7 @@ static int acpi_video_bus_get_one_device(struct acpi_device *device, void *arg)
if (acpi_get_local_u64_address(device->handle, &device_id))
goto exit;
- data = kzalloc(sizeof(struct acpi_video_device), GFP_KERNEL);
+ data = kzalloc_obj(struct acpi_video_device, GFP_KERNEL);
if (!data) {
dev_dbg(&device->dev, "Cannot attach\n");
return -ENOMEM;
@@ -1330,9 +1330,8 @@ static int acpi_video_device_enumerate(struct acpi_video_bus *video)
acpi_handle_debug(video->device->handle, "Found %d video heads in _DOD\n",
dod->package.count);
- active_list = kcalloc(1 + dod->package.count,
- sizeof(struct acpi_video_enumerated_device),
- GFP_KERNEL);
+ active_list = kzalloc_objs(struct acpi_video_enumerated_device,
+ 1 + dod->package.count, GFP_KERNEL);
if (!active_list) {
status = -ENOMEM;
goto out;
@@ -2004,7 +2003,7 @@ static int acpi_video_bus_probe(struct platform_device *pdev)
return -ENODEV;
}
- video = kzalloc(sizeof(struct acpi_video_bus), GFP_KERNEL);
+ video = kzalloc_obj(struct acpi_video_bus, GFP_KERNEL);
if (!video)
return -ENOMEM;
diff --git a/drivers/acpi/acpi_watchdog.c b/drivers/acpi/acpi_watchdog.c
index 709993c535d1..7e22fc35ed6d 100644
--- a/drivers/acpi/acpi_watchdog.c
+++ b/drivers/acpi/acpi_watchdog.c
@@ -166,7 +166,7 @@ void __init acpi_watchdog_init(void)
}
}
- resources = kcalloc(nresources, sizeof(*resources), GFP_KERNEL);
+ resources = kzalloc_objs(*resources, nresources, GFP_KERNEL);
if (!resources)
goto fail_free_resource_list;
diff --git a/drivers/acpi/apei/apei-base.c b/drivers/acpi/apei/apei-base.c
index 9c84f3da7c09..95b8483b9e98 100644
--- a/drivers/acpi/apei/apei-base.c
+++ b/drivers/acpi/apei/apei-base.c
@@ -316,7 +316,7 @@ static int apei_res_add(struct list_head *res_list,
if (res_ins)
list_add(&res_ins->list, res_list);
else {
- res_ins = kmalloc(sizeof(*res_ins), GFP_KERNEL);
+ res_ins = kmalloc_obj(*res_ins, GFP_KERNEL);
if (!res_ins)
return -ENOMEM;
res_ins->start = start;
@@ -345,7 +345,7 @@ static int apei_res_sub(struct list_head *res_list1,
break;
} else if (res1->end > res2->end &&
res1->start < res2->start) {
- res = kmalloc(sizeof(*res), GFP_KERNEL);
+ res = kmalloc_obj(*res, GFP_KERNEL);
if (!res)
return -ENOMEM;
res->start = res2->end;
diff --git a/drivers/acpi/apei/einj-core.c b/drivers/acpi/apei/einj-core.c
index f5bfdffe1e43..751697899a98 100644
--- a/drivers/acpi/apei/einj-core.c
+++ b/drivers/acpi/apei/einj-core.c
@@ -1021,7 +1021,8 @@ static bool setup_einjv2_component_files(void)
{
char name[32];
- syndrome_data = kcalloc(max_nr_components, sizeof(syndrome_data[0]), GFP_KERNEL);
+ syndrome_data = kzalloc_objs(syndrome_data[0], max_nr_components,
+ GFP_KERNEL);
if (!syndrome_data)
return false;
diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
index f96aede5d9a3..442561637f88 100644
--- a/drivers/acpi/apei/ghes.c
+++ b/drivers/acpi/apei/ghes.c
@@ -272,7 +272,7 @@ static struct ghes *ghes_new(struct acpi_hest_generic *generic)
unsigned int error_block_length;
int rc;
- ghes = kzalloc(sizeof(*ghes), GFP_KERNEL);
+ ghes = kzalloc_obj(*ghes, GFP_KERNEL);
if (!ghes)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/acpi/arm64/ffh.c b/drivers/acpi/arm64/ffh.c
index 877edc6557e9..d850af765ba1 100644
--- a/drivers/acpi/arm64/ffh.c
+++ b/drivers/acpi/arm64/ffh.c
@@ -33,7 +33,7 @@ int acpi_ffh_address_space_arch_setup(void *handler_ctxt, void **region_ctxt)
return -EOPNOTSUPP;
}
- ffh_ctxt = kzalloc(sizeof(*ffh_ctxt), GFP_KERNEL);
+ ffh_ctxt = kzalloc_obj(*ffh_ctxt, GFP_KERNEL);
if (!ffh_ctxt)
return -ENOMEM;
diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
index ed827b2fc437..8e74b4eaf9bd 100644
--- a/drivers/acpi/arm64/iort.c
+++ b/drivers/acpi/arm64/iort.c
@@ -56,7 +56,7 @@ static inline int iort_set_fwnode(struct acpi_iort_node *iort_node,
{
struct iort_fwnode *np;
- np = kzalloc(sizeof(struct iort_fwnode), GFP_ATOMIC);
+ np = kzalloc_obj(struct iort_fwnode, GFP_ATOMIC);
if (WARN_ON(!np))
return -ENOMEM;
@@ -165,7 +165,7 @@ int iort_register_domain_token(int trans_id, phys_addr_t base,
{
struct iort_its_msi_chip *its_msi_chip;
- its_msi_chip = kzalloc(sizeof(*its_msi_chip), GFP_KERNEL);
+ its_msi_chip = kzalloc_obj(*its_msi_chip, GFP_KERNEL);
if (!its_msi_chip)
return -ENOMEM;
@@ -938,7 +938,7 @@ static struct iommu_iort_rmr_data *iort_rmr_alloc(
u32 *sids_copy;
u64 addr = rmr_desc->base_address, size = rmr_desc->length;
- rmr_data = kmalloc(sizeof(*rmr_data), GFP_KERNEL);
+ rmr_data = kmalloc_obj(*rmr_data, GFP_KERNEL);
if (!rmr_data)
return NULL;
@@ -1942,7 +1942,7 @@ static int __init iort_add_platform_device(struct acpi_iort_node *node,
count = ops->dev_count_resources(node);
- r = kcalloc(count, sizeof(*r), GFP_KERNEL);
+ r = kzalloc_objs(*r, count, GFP_KERNEL);
if (!r) {
ret = -ENOMEM;
goto dev_put;
diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c
index 7a06194d078b..b9929b6ef62d 100644
--- a/drivers/acpi/button.c
+++ b/drivers/acpi/button.c
@@ -544,7 +544,7 @@ static int acpi_button_probe(struct platform_device *pdev)
lid_init_state == ACPI_BUTTON_LID_INIT_DISABLED)
return -ENODEV;
- button = kzalloc(sizeof(struct acpi_button), GFP_KERNEL);
+ button = kzalloc_obj(struct acpi_button, GFP_KERNEL);
if (!button)
return -ENOMEM;
diff --git a/drivers/acpi/container.c b/drivers/acpi/container.c
index 5b7e3b9ae370..055ad5f4782d 100644
--- a/drivers/acpi/container.c
+++ b/drivers/acpi/container.c
@@ -52,7 +52,7 @@ static int container_device_attach(struct acpi_device *adev,
if (adev->flags.is_dock_station)
return 0;
- cdev = kzalloc(sizeof(*cdev), GFP_KERNEL);
+ cdev = kzalloc_obj(*cdev, GFP_KERNEL);
if (!cdev)
return -ENOMEM;
diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c
index 0e6ffb188fe7..d2e13252fce6 100644
--- a/drivers/acpi/cppc_acpi.c
+++ b/drivers/acpi/cppc_acpi.c
@@ -636,8 +636,8 @@ static int pcc_data_alloc(int pcc_ss_id)
if (pcc_data[pcc_ss_id]) {
pcc_data[pcc_ss_id]->refcount++;
} else {
- pcc_data[pcc_ss_id] = kzalloc(sizeof(struct cppc_pcc_data),
- GFP_KERNEL);
+ pcc_data[pcc_ss_id] = kzalloc_obj(struct cppc_pcc_data,
+ GFP_KERNEL);
if (!pcc_data[pcc_ss_id])
return -ENOMEM;
pcc_data[pcc_ss_id]->refcount++;
@@ -712,7 +712,7 @@ int acpi_cppc_processor_probe(struct acpi_processor *pr)
out_obj = (union acpi_object *) output.pointer;
- cpc_ptr = kzalloc(sizeof(struct cpc_desc), GFP_KERNEL);
+ cpc_ptr = kzalloc_obj(struct cpc_desc, GFP_KERNEL);
if (!cpc_ptr) {
ret = -ENOMEM;
goto out_buf_free;
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index 34affbda295e..e2239d4bb9df 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -73,7 +73,7 @@ static int add_dock_dependent_device(struct dock_station *ds,
{
struct dock_dependent_device *dd;
- dd = kzalloc(sizeof(*dd), GFP_KERNEL);
+ dd = kzalloc_obj(*dd, GFP_KERNEL);
if (!dd)
return -ENOMEM;
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index f7edc664e064..8da0971f2238 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -1100,7 +1100,7 @@ int acpi_ec_add_query_handler(struct acpi_ec *ec, u8 query_bit,
if (!handle && !func)
return -EINVAL;
- handler = kzalloc(sizeof(*handler), GFP_KERNEL);
+ handler = kzalloc_obj(*handler, GFP_KERNEL);
if (!handler)
return -ENOMEM;
@@ -1177,7 +1177,7 @@ static struct acpi_ec_query *acpi_ec_create_query(struct acpi_ec *ec, u8 *pval)
struct acpi_ec_query *q;
struct transaction *t;
- q = kzalloc(sizeof (struct acpi_ec_query), GFP_KERNEL);
+ q = kzalloc_obj(struct acpi_ec_query, GFP_KERNEL);
if (!q)
return NULL;
@@ -1422,7 +1422,7 @@ static void acpi_ec_free(struct acpi_ec *ec)
static struct acpi_ec *acpi_ec_alloc(void)
{
- struct acpi_ec *ec = kzalloc(sizeof(struct acpi_ec), GFP_KERNEL);
+ struct acpi_ec *ec = kzalloc_obj(struct acpi_ec, GFP_KERNEL);
if (!ec)
return NULL;
diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c
index a194f30876c5..e96def7db715 100644
--- a/drivers/acpi/glue.c
+++ b/drivers/acpi/glue.c
@@ -246,7 +246,7 @@ int acpi_bind_one(struct device *dev, struct acpi_device *acpi_dev)
acpi_dev_get(acpi_dev);
get_device(dev);
- physical_node = kzalloc(sizeof(*physical_node), GFP_KERNEL);
+ physical_node = kzalloc_obj(*physical_node, GFP_KERNEL);
if (!physical_node) {
retval = -ENOMEM;
goto err;
diff --git a/drivers/acpi/ioapic.c b/drivers/acpi/ioapic.c
index 6677955b4a8e..5a432899875b 100644
--- a/drivers/acpi/ioapic.c
+++ b/drivers/acpi/ioapic.c
@@ -120,7 +120,7 @@ static acpi_status handle_ioapic_add(acpi_handle handle, u32 lvl,
goto exit;
}
- ioapic = kzalloc(sizeof(*ioapic), GFP_KERNEL);
+ ioapic = kzalloc_obj(*ioapic, GFP_KERNEL);
if (!ioapic) {
pr_err("cannot allocate memory for new IOAPIC\n");
goto exit;
diff --git a/drivers/acpi/mipi-disco-img.c b/drivers/acpi/mipi-disco-img.c
index 5b85989f96be..6351a66c555d 100644
--- a/drivers/acpi/mipi-disco-img.c
+++ b/drivers/acpi/mipi-disco-img.c
@@ -91,8 +91,8 @@ static acpi_status parse_csi2_resource(struct acpi_resource *res, void *context)
return AE_OK;
}
- conn = kmalloc(struct_size(conn, remote_name, csi2_res_src_length + 1),
- GFP_KERNEL);
+ conn = kmalloc_flex(*conn, remote_name, csi2_res_src_length + 1,
+ GFP_KERNEL);
if (!conn)
return AE_OK;
@@ -111,7 +111,7 @@ static struct crs_csi2 *acpi_mipi_add_crs_csi2(acpi_handle handle,
{
struct crs_csi2 *csi2;
- csi2 = kzalloc(sizeof(*csi2), GFP_KERNEL);
+ csi2 = kzalloc_obj(*csi2, GFP_KERNEL);
if (!csi2)
return NULL;
diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c
index e19aba02b800..b59dcbff25c1 100644
--- a/drivers/acpi/nfit/core.c
+++ b/drivers/acpi/nfit/core.c
@@ -2271,9 +2271,9 @@ static int acpi_nfit_init_interleave_set(struct acpi_nfit_desc *acpi_desc,
{
u16 nr = ndr_desc->num_mappings;
struct nfit_set_info2 *info2 __free(kfree) =
- kcalloc(nr, sizeof(*info2), GFP_KERNEL);
+ kzalloc_objs(*info2, nr, GFP_KERNEL);
struct nfit_set_info *info __free(kfree) =
- kcalloc(nr, sizeof(*info), GFP_KERNEL);
+ kzalloc_objs(*info, nr, GFP_KERNEL);
struct device *dev = acpi_desc->dev;
struct nd_interleave_set *nd_set;
int i;
diff --git a/drivers/acpi/numa/hmat.c b/drivers/acpi/numa/hmat.c
index 77a81627aaef..3f68ba64537d 100644
--- a/drivers/acpi/numa/hmat.c
+++ b/drivers/acpi/numa/hmat.c
@@ -202,7 +202,7 @@ static __init void alloc_memory_initiator(unsigned int cpu_pxm)
if (initiator)
return;
- initiator = kzalloc(sizeof(*initiator), GFP_KERNEL);
+ initiator = kzalloc_obj(*initiator, GFP_KERNEL);
if (!initiator)
return;
@@ -217,7 +217,7 @@ static __init struct memory_target *alloc_target(unsigned int mem_pxm)
target = find_mem_target(mem_pxm);
if (!target) {
- target = kzalloc(sizeof(*target), GFP_KERNEL);
+ target = kzalloc_obj(*target, GFP_KERNEL);
if (!target)
return NULL;
target->memory_pxm = mem_pxm;
@@ -371,7 +371,7 @@ static __init void hmat_add_locality(struct acpi_hmat_locality *hmat_loc)
{
struct memory_locality *loc;
- loc = kzalloc(sizeof(*loc), GFP_KERNEL);
+ loc = kzalloc_obj(*loc, GFP_KERNEL);
if (!loc) {
pr_notice_once("Failed to allocate HMAT locality\n");
return;
@@ -502,7 +502,7 @@ static __init int hmat_parse_cache(union acpi_subtable_headers *header,
if (!target)
return 0;
- tcache = kzalloc(sizeof(*tcache), GFP_KERNEL);
+ tcache = kzalloc_obj(*tcache, GFP_KERNEL);
if (!tcache) {
pr_notice_once("Failed to allocate HMAT cache info\n");
return 0;
diff --git a/drivers/acpi/nvs.c b/drivers/acpi/nvs.c
index a2b11069e792..354783ede8f1 100644
--- a/drivers/acpi/nvs.c
+++ b/drivers/acpi/nvs.c
@@ -39,7 +39,7 @@ int acpi_nvs_register(__u64 start, __u64 size)
{
struct nvs_region *region;
- region = kmalloc(sizeof(*region), GFP_KERNEL);
+ region = kmalloc_obj(*region, GFP_KERNEL);
if (!region)
return -ENOMEM;
region->phys_start = start;
@@ -102,7 +102,7 @@ static int suspend_nvs_register(unsigned long start, unsigned long size)
while (size > 0) {
unsigned int nr_bytes;
- entry = kzalloc(sizeof(struct nvs_page), GFP_KERNEL);
+ entry = kzalloc_obj(struct nvs_page, GFP_KERNEL);
if (!entry)
goto Error;
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 05393a7315fe..0fa12dd40840 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -344,7 +344,7 @@ void __iomem __ref
goto out;
}
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (!map) {
mutex_unlock(&acpi_ioremap_lock);
return NULL;
@@ -1117,7 +1117,7 @@ acpi_status acpi_os_execute(acpi_execute_type type,
* having a static work_struct.
*/
- dpc = kzalloc(sizeof(struct acpi_os_dpc), GFP_ATOMIC);
+ dpc = kzalloc_obj(struct acpi_os_dpc, GFP_ATOMIC);
if (!dpc)
return AE_NO_MEMORY;
@@ -1197,7 +1197,7 @@ acpi_status acpi_hotplug_schedule(struct acpi_device *adev, u32 src)
"Scheduling hotplug event %u for deferred handling\n",
src);
- hpw = kmalloc(sizeof(*hpw), GFP_KERNEL);
+ hpw = kmalloc_obj(*hpw, GFP_KERNEL);
if (!hpw)
return AE_NO_MEMORY;
diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
index c416942ff3e2..5a4169db5ea6 100644
--- a/drivers/acpi/pci_irq.c
+++ b/drivers/acpi/pci_irq.c
@@ -147,7 +147,7 @@ static int acpi_pci_irq_check_entry(acpi_handle handle, struct pci_dev *dev,
prt->pin + 1 != pin)
return -ENODEV;
- entry = kzalloc(sizeof(struct acpi_prt_entry), GFP_KERNEL);
+ entry = kzalloc_obj(struct acpi_prt_entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
index b91b039a3d20..e3b03237fa57 100644
--- a/drivers/acpi/pci_link.c
+++ b/drivers/acpi/pci_link.c
@@ -720,7 +720,7 @@ static int acpi_pci_link_add(struct acpi_device *device,
int result;
int i;
- link = kzalloc(sizeof(struct acpi_pci_link), GFP_KERNEL);
+ link = kzalloc_obj(struct acpi_pci_link, GFP_KERNEL);
if (!link)
return -ENOMEM;
diff --git a/drivers/acpi/pci_mcfg.c b/drivers/acpi/pci_mcfg.c
index 58e10a980114..99a50e9c12dd 100644
--- a/drivers/acpi/pci_mcfg.c
+++ b/drivers/acpi/pci_mcfg.c
@@ -304,7 +304,7 @@ static __init int pci_mcfg_parse(struct acpi_table_header *header)
mcfg = (struct acpi_table_mcfg *)header;
mptr = (struct acpi_mcfg_allocation *) &mcfg[1];
- arr = kcalloc(n, sizeof(*arr), GFP_KERNEL);
+ arr = kzalloc_objs(*arr, n, GFP_KERNEL);
if (!arr)
return -ENOMEM;
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
index 9d7f85dadc48..bd2525fcda8e 100644
--- a/drivers/acpi/pci_root.c
+++ b/drivers/acpi/pci_root.c
@@ -648,7 +648,7 @@ static int acpi_pci_root_add(struct acpi_device *device,
bool hotadd = system_state == SYSTEM_RUNNING;
const char *acpi_hid;
- root = kzalloc(sizeof(struct acpi_pci_root), GFP_KERNEL);
+ root = kzalloc_obj(struct acpi_pci_root, GFP_KERNEL);
if (!root)
return -ENOMEM;
diff --git a/drivers/acpi/pci_slot.c b/drivers/acpi/pci_slot.c
index 15234b65ea22..031d00a4a75f 100644
--- a/drivers/acpi/pci_slot.c
+++ b/drivers/acpi/pci_slot.c
@@ -104,7 +104,7 @@ register_slot(acpi_handle handle, u32 lvl, void *context, void **rv)
return AE_OK;
}
- slot = kmalloc(sizeof(*slot), GFP_KERNEL);
+ slot = kmalloc_obj(*slot, GFP_KERNEL);
if (!slot)
return AE_OK;
diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/platform_profile.c
index ea04a8c69215..bd4d332520bb 100644
--- a/drivers/acpi/platform_profile.c
+++ b/drivers/acpi/platform_profile.c
@@ -560,8 +560,8 @@ struct device *platform_profile_register(struct device *dev, const char *name,
!ops->profile_set || !ops->probe))
return ERR_PTR(-EINVAL);
- struct platform_profile_handler *pprof __free(kfree) = kzalloc(
- sizeof(*pprof), GFP_KERNEL);
+ struct platform_profile_handler *pprof __free(kfree) = kzalloc_obj(*pprof,
+ GFP_KERNEL);
if (!pprof)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
index 7da5ae5594a7..e377446b5cce 100644
--- a/drivers/acpi/power.c
+++ b/drivers/acpi/power.c
@@ -104,7 +104,7 @@ static int acpi_power_resources_list_add(acpi_handle handle,
if (!resource || !list)
return -EINVAL;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -265,7 +265,7 @@ acpi_power_resource_add_dependent(struct acpi_power_resource *resource,
goto unlock;
}
- dep = kzalloc(sizeof(*dep), GFP_KERNEL);
+ dep = kzalloc_obj(*dep, GFP_KERNEL);
if (!dep) {
ret = -ENOMEM;
goto unlock;
@@ -945,7 +945,7 @@ struct acpi_device *acpi_add_power_resource(acpi_handle handle)
if (device)
return device;
- resource = kzalloc(sizeof(*resource), GFP_KERNEL);
+ resource = kzalloc_obj(*resource, GFP_KERNEL);
if (!resource)
return NULL;
diff --git a/drivers/acpi/prmt.c b/drivers/acpi/prmt.c
index 7b8b5d2015ec..5d4b0f7904d6 100644
--- a/drivers/acpi/prmt.c
+++ b/drivers/acpi/prmt.c
@@ -135,7 +135,7 @@ acpi_parse_prmt(union acpi_subtable_headers *header, const unsigned long end)
goto parse_prmt_out4;
memmove(tm->mmio_info, temp_mmio, mmio_range_size);
} else {
- tm->mmio_info = kmalloc(sizeof(*tm->mmio_info), GFP_KERNEL);
+ tm->mmio_info = kmalloc_obj(*tm->mmio_info, GFP_KERNEL);
if (!tm->mmio_info)
goto parse_prmt_out2;
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index 81f372c64074..aa7020d71b55 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -910,7 +910,7 @@ static int acpi_processor_evaluate_lpi(acpi_handle handle,
goto end;
}
- lpi_state = kcalloc(pkg_count, sizeof(*lpi_state), GFP_KERNEL);
+ lpi_state = kzalloc_objs(*lpi_state, pkg_count, GFP_KERNEL);
if (!lpi_state) {
ret = -ENOMEM;
goto end;
@@ -1417,7 +1417,7 @@ void acpi_processor_power_init(struct acpi_processor *pr)
if (!pr->flags.power)
return;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return;
diff --git a/drivers/acpi/processor_pdc.c b/drivers/acpi/processor_pdc.c
index 994091bd52de..e174d144f1d9 100644
--- a/drivers/acpi/processor_pdc.c
+++ b/drivers/acpi/processor_pdc.c
@@ -32,11 +32,11 @@ static struct acpi_object_list *acpi_processor_alloc_pdc(void)
u32 *buf;
/* allocate and initialize pdc. It will be used later. */
- obj_list = kmalloc(sizeof(struct acpi_object_list), GFP_KERNEL);
+ obj_list = kmalloc_obj(struct acpi_object_list, GFP_KERNEL);
if (!obj_list)
goto out;
- obj = kmalloc(sizeof(union acpi_object), GFP_KERNEL);
+ obj = kmalloc_obj(union acpi_object, GFP_KERNEL);
if (!obj) {
kfree(obj_list);
goto out;
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
index 8972446b7162..f1c7c2ad5094 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -341,9 +341,8 @@ static int acpi_processor_get_performance_states(struct acpi_processor *pr)
pr->performance->state_count = pss->package.count;
pr->performance->states =
- kmalloc_array(pss->package.count,
- sizeof(struct acpi_processor_px),
- GFP_KERNEL);
+ kmalloc_objs(struct acpi_processor_px, pss->package.count,
+ GFP_KERNEL);
if (!pr->performance->states) {
result = -ENOMEM;
goto end;
diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
index f9c2bc1d4a3a..2d398ae5c662 100644
--- a/drivers/acpi/processor_throttling.c
+++ b/drivers/acpi/processor_throttling.c
@@ -512,9 +512,8 @@ static int acpi_processor_get_throttling_states(struct acpi_processor *pr)
pr->throttling.state_count = tss->package.count;
pr->throttling.states_tss =
- kmalloc_array(tss->package.count,
- sizeof(struct acpi_processor_tx_tss),
- GFP_KERNEL);
+ kmalloc_objs(struct acpi_processor_tx_tss, tss->package.count,
+ GFP_KERNEL);
if (!pr->throttling.states_tss) {
result = -ENOMEM;
goto end;
diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c
index 18e90067d567..710dccae595b 100644
--- a/drivers/acpi/property.c
+++ b/drivers/acpi/property.c
@@ -89,7 +89,7 @@ static bool acpi_nondev_subnode_extract(union acpi_object *desc,
if (acpi_graph_ignore_port(handle))
return false;
- dn = kzalloc(sizeof(*dn), GFP_KERNEL);
+ dn = kzalloc_obj(*dn, GFP_KERNEL);
if (!dn)
return false;
@@ -383,7 +383,7 @@ acpi_data_add_props(struct acpi_device_data *data, const guid_t *guid,
{
struct acpi_device_properties *props;
- props = kzalloc(sizeof(*props), GFP_KERNEL);
+ props = kzalloc_obj(*props, GFP_KERNEL);
if (props) {
INIT_LIST_HEAD(&props->list);
props->guid = guid;
diff --git a/drivers/acpi/riscv/irq.c b/drivers/acpi/riscv/irq.c
index d9a2154d6c6a..f3cef56ff59e 100644
--- a/drivers/acpi/riscv/irq.c
+++ b/drivers/acpi/riscv/irq.c
@@ -136,7 +136,7 @@ static int __init riscv_acpi_register_ext_intc(u32 gsi_base, u32 nr_irqs, u32 nr
{
struct riscv_ext_intc_list *ext_intc_element, *node, *prev;
- ext_intc_element = kzalloc(sizeof(*ext_intc_element), GFP_KERNEL);
+ ext_intc_element = kzalloc_obj(*ext_intc_element, GFP_KERNEL);
if (!ext_intc_element)
return -ENOMEM;
@@ -342,7 +342,8 @@ static u32 riscv_acpi_add_prt_dep(acpi_handle handle)
if (entry->source[0]) {
acpi_get_handle(handle, entry->source, &link_handle);
dep_devices.count = 1;
- dep_devices.handles = kcalloc(1, sizeof(*dep_devices.handles), GFP_KERNEL);
+ dep_devices.handles = kzalloc_objs(*dep_devices.handles,
+ 1, GFP_KERNEL);
if (!dep_devices.handles) {
acpi_handle_err(handle, "failed to allocate memory\n");
continue;
@@ -353,7 +354,8 @@ static u32 riscv_acpi_add_prt_dep(acpi_handle handle)
} else {
gsi_handle = riscv_acpi_get_gsi_handle(entry->source_index);
dep_devices.count = 1;
- dep_devices.handles = kcalloc(1, sizeof(*dep_devices.handles), GFP_KERNEL);
+ dep_devices.handles = kzalloc_objs(*dep_devices.handles,
+ 1, GFP_KERNEL);
if (!dep_devices.handles) {
acpi_handle_err(handle, "failed to allocate memory\n");
continue;
@@ -382,7 +384,8 @@ static u32 riscv_acpi_add_irq_dep(acpi_handle handle)
riscv_acpi_irq_get_dep(handle, i, &gsi_handle);
i++) {
dep_devices.count = 1;
- dep_devices.handles = kcalloc(1, sizeof(*dep_devices.handles), GFP_KERNEL);
+ dep_devices.handles = kzalloc_objs(*dep_devices.handles, 1,
+ GFP_KERNEL);
if (!dep_devices.handles) {
acpi_handle_err(handle, "failed to allocate memory\n");
continue;
diff --git a/drivers/acpi/riscv/rimt.c b/drivers/acpi/riscv/rimt.c
index 7f423405e5ef..229c4a0d47a3 100644
--- a/drivers/acpi/riscv/rimt.c
+++ b/drivers/acpi/riscv/rimt.c
@@ -45,7 +45,7 @@ static int rimt_set_fwnode(struct acpi_rimt_node *rimt_node,
{
struct rimt_fwnode *np;
- np = kzalloc(sizeof(*np), GFP_ATOMIC);
+ np = kzalloc_obj(*np, GFP_ATOMIC);
if (WARN_ON(!np))
return -ENOMEM;
diff --git a/drivers/acpi/sbs.c b/drivers/acpi/sbs.c
index 85160e475c97..bcbd02d665d5 100644
--- a/drivers/acpi/sbs.c
+++ b/drivers/acpi/sbs.c
@@ -636,7 +636,7 @@ static int acpi_sbs_probe(struct platform_device *pdev)
int result = 0;
int id;
- sbs = kzalloc(sizeof(struct acpi_sbs), GFP_KERNEL);
+ sbs = kzalloc_obj(struct acpi_sbs, GFP_KERNEL);
if (!sbs) {
result = -ENOMEM;
goto end;
diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
index cb60d1d52e3e..969c1da7a015 100644
--- a/drivers/acpi/sbshc.c
+++ b/drivers/acpi/sbshc.c
@@ -254,7 +254,7 @@ static int acpi_smbus_hc_probe(struct platform_device *pdev)
strscpy(acpi_device_name(device), ACPI_SMB_HC_DEVICE_NAME);
strscpy(acpi_device_class(device), ACPI_SMB_HC_CLASS);
- hc = kzalloc(sizeof(struct acpi_smb_hc), GFP_KERNEL);
+ hc = kzalloc_obj(struct acpi_smb_hc, GFP_KERNEL);
if (!hc)
return -ENOMEM;
mutex_init(&hc->lock);
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index 565a84a7d7bc..490242bf161b 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -757,8 +757,8 @@ int acpi_device_add(struct acpi_device *device)
if (result)
goto err_unlock;
} else {
- acpi_device_bus_id = kzalloc(sizeof(*acpi_device_bus_id),
- GFP_KERNEL);
+ acpi_device_bus_id = kzalloc_obj(*acpi_device_bus_id,
+ GFP_KERNEL);
if (!acpi_device_bus_id) {
result = -ENOMEM;
goto err_unlock;
@@ -1330,7 +1330,7 @@ static void acpi_add_id(struct acpi_device_pnp *pnp, const char *dev_id)
{
struct acpi_hardware_id *id;
- id = kmalloc(sizeof(*id), GFP_KERNEL);
+ id = kmalloc_obj(*id, GFP_KERNEL);
if (!id)
return;
@@ -1568,7 +1568,7 @@ int acpi_dma_get_range(struct device *dev, const struct bus_dma_region **map)
ret = acpi_dev_get_dma_resources(adev, &list);
if (ret > 0) {
- r = kcalloc(ret + 1, sizeof(*r), GFP_KERNEL);
+ r = kzalloc_objs(*r, ret + 1, GFP_KERNEL);
if (!r) {
ret = -ENOMEM;
goto out;
@@ -1863,7 +1863,7 @@ static int acpi_add_single_object(struct acpi_device **child,
bool release_dep_lock = false;
int result;
- device = kzalloc(sizeof(struct acpi_device), GFP_KERNEL);
+ device = kzalloc_obj(struct acpi_device, GFP_KERNEL);
if (!device)
return -ENOMEM;
@@ -2028,7 +2028,7 @@ int acpi_scan_add_dep(acpi_handle handle, struct acpi_handle_list *dep_devices)
if (skip)
continue;
- dep = kzalloc(sizeof(*dep), GFP_KERNEL);
+ dep = kzalloc_obj(*dep, GFP_KERNEL);
if (!dep)
continue;
@@ -2225,7 +2225,7 @@ static void acpi_default_enumeration(struct acpi_device *device)
* other device objects have been processed and PCI has claimed
* BARs in case there are resource conflicts.
*/
- sd = kmalloc(sizeof(*sd), GFP_KERNEL);
+ sd = kmalloc_obj(*sd, GFP_KERNEL);
if (sd) {
sd->adev = device;
list_add_tail(&sd->node, &acpi_scan_system_dev_list);
@@ -2899,7 +2899,7 @@ void acpi_scan_table_notify(void)
if (!acpi_scan_initialized)
return;
- work = kmalloc(sizeof(*work), GFP_KERNEL);
+ work = kmalloc_obj(*work, GFP_KERNEL);
if (!work)
return;
diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
index 1bd2f555e673..44ea37f998e6 100644
--- a/drivers/acpi/sysfs.c
+++ b/drivers/acpi/sysfs.c
@@ -385,7 +385,7 @@ acpi_status acpi_sysfs_table_handler(u32 event, void *table, void *context)
switch (event) {
case ACPI_TABLE_EVENT_INSTALL:
- table_attr = kzalloc(sizeof(*table_attr), GFP_KERNEL);
+ table_attr = kzalloc_obj(*table_attr, GFP_KERNEL);
if (!table_attr)
return AE_NO_MEMORY;
@@ -491,7 +491,7 @@ static int acpi_table_data_init(struct acpi_table_header *th)
for (i = 0; i < NUM_ACPI_DATA_OBJS; i++) {
if (ACPI_COMPARE_NAMESEG(th->signature, acpi_data_objs[i].name)) {
- data_attr = kzalloc(sizeof(*data_attr), GFP_KERNEL);
+ data_attr = kzalloc_obj(*data_attr, GFP_KERNEL);
if (!data_attr)
return -ENOMEM;
sysfs_attr_init(&data_attr->attr.attr);
@@ -532,7 +532,7 @@ static int acpi_tables_sysfs_init(void)
if (ACPI_FAILURE(status))
continue;
- table_attr = kzalloc(sizeof(*table_attr), GFP_KERNEL);
+ table_attr = kzalloc_obj(*table_attr, GFP_KERNEL);
if (!table_attr)
return -ENOMEM;
@@ -864,11 +864,11 @@ void acpi_irq_stats_init(void)
num_gpes = acpi_current_gpe_count;
num_counters = num_gpes + ACPI_NUM_FIXED_EVENTS + NUM_COUNTERS_EXTRA;
- all_attrs = kcalloc(num_counters + 1, sizeof(*all_attrs), GFP_KERNEL);
+ all_attrs = kzalloc_objs(*all_attrs, num_counters + 1, GFP_KERNEL);
if (all_attrs == NULL)
return;
- all_counters = kcalloc(num_counters, sizeof(*all_counters), GFP_KERNEL);
+ all_counters = kzalloc_objs(*all_counters, num_counters, GFP_KERNEL);
if (all_counters == NULL)
goto fail;
@@ -876,7 +876,7 @@ void acpi_irq_stats_init(void)
if (ACPI_FAILURE(status))
goto fail;
- counter_attrs = kcalloc(num_counters, sizeof(*counter_attrs), GFP_KERNEL);
+ counter_attrs = kzalloc_objs(*counter_attrs, num_counters, GFP_KERNEL);
if (counter_attrs == NULL)
goto fail;
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
index e9d3ab18b404..b2a1e1773840 100644
--- a/drivers/acpi/thermal.c
+++ b/drivers/acpi/thermal.c
@@ -792,7 +792,7 @@ static int acpi_thermal_probe(struct platform_device *pdev)
if (!device)
return -EINVAL;
- tz = kzalloc(sizeof(struct acpi_thermal), GFP_KERNEL);
+ tz = kzalloc_obj(struct acpi_thermal, GFP_KERNEL);
if (!tz)
return -ENOMEM;
diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
index 526563a0d188..67b9a17e33ec 100644
--- a/drivers/acpi/utils.c
+++ b/drivers/acpi/utils.c
@@ -365,7 +365,7 @@ bool acpi_evaluate_reference(acpi_handle handle, acpi_string pathname,
goto err;
list->count = package->package.count;
- list->handles = kcalloc(list->count, sizeof(*list->handles), GFP_KERNEL);
+ list->handles = kzalloc_objs(*list->handles, list->count, GFP_KERNEL);
if (!list->handles)
goto err_clear;
diff --git a/drivers/acpi/viot.c b/drivers/acpi/viot.c
index c13a20365c2c..26fe65dd4a6c 100644
--- a/drivers/acpi/viot.c
+++ b/drivers/acpi/viot.c
@@ -142,7 +142,7 @@ static struct viot_iommu * __init viot_get_iommu(unsigned int offset)
if (viot_check_bounds(hdr))
return NULL;
- viommu = kzalloc(sizeof(*viommu), GFP_KERNEL);
+ viommu = kzalloc_obj(*viommu, GFP_KERNEL);
if (!viommu)
return NULL;
@@ -193,7 +193,7 @@ static int __init viot_parse_node(const struct acpi_viot_header *hdr)
hdr->type == ACPI_VIOT_NODE_VIRTIO_IOMMU_MMIO)
return 0;
- ep = kzalloc(sizeof(*ep), GFP_KERNEL);
+ ep = kzalloc_obj(*ep, GFP_KERNEL);
if (!ep)
return -ENOMEM;
diff --git a/drivers/acpi/wakeup.c b/drivers/acpi/wakeup.c
index ff6dc957bc11..f82e6f3127b6 100644
--- a/drivers/acpi/wakeup.c
+++ b/drivers/acpi/wakeup.c
@@ -120,7 +120,7 @@ int acpi_register_wakeup_handler(int wake_irq, bool (*wakeup)(void *context),
if (!acpi_sci_irq_valid() || wake_irq != acpi_sci_irq)
return 0;
- handler = kmalloc(sizeof(*handler), GFP_KERNEL);
+ handler = kmalloc_obj(*handler, GFP_KERNEL);
if (!handler)
return -ENOMEM;
diff --git a/drivers/acpi/x86/lpss.c b/drivers/acpi/x86/lpss.c
index 1dcb80ab0d23..3dfb8c2400f5 100644
--- a/drivers/acpi/x86/lpss.c
+++ b/drivers/acpi/x86/lpss.c
@@ -623,7 +623,7 @@ static int acpi_lpss_create_device(struct acpi_device *adev,
if (!dev_desc)
return -EINVAL;
- pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
+ pdata = kzalloc_obj(*pdata, GFP_KERNEL);
if (!pdata)
return -ENOMEM;
diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
index b43d10f986a2..82075543a1ed 100644
--- a/drivers/acpi/x86/s2idle.c
+++ b/drivers/acpi/x86/s2idle.c
@@ -129,9 +129,9 @@ static void lpi_device_get_constraints_amd(void)
goto free_acpi_buffer;
}
- lpi_constraints_table = kcalloc(package->package.count,
- sizeof(*lpi_constraints_table),
- GFP_KERNEL);
+ lpi_constraints_table = kzalloc_objs(*lpi_constraints_table,
+ package->package.count,
+ GFP_KERNEL);
if (!lpi_constraints_table)
goto free_acpi_buffer;
@@ -209,9 +209,8 @@ static void lpi_device_get_constraints(void)
if (!out_obj)
return;
- lpi_constraints_table = kcalloc(out_obj->package.count,
- sizeof(*lpi_constraints_table),
- GFP_KERNEL);
+ lpi_constraints_table = kzalloc_objs(*lpi_constraints_table,
+ out_obj->package.count, GFP_KERNEL);
if (!lpi_constraints_table)
goto free_acpi_buffer;
diff --git a/drivers/amba/bus.c b/drivers/amba/bus.c
index 952c45ca6e48..9d3d4607c5f2 100644
--- a/drivers/amba/bus.c
+++ b/drivers/amba/bus.c
@@ -611,7 +611,7 @@ struct amba_device *amba_device_alloc(const char *name, resource_size_t base,
{
struct amba_device *dev;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (dev) {
amba_device_initialize(dev, name);
dev->res.start = base;
diff --git a/drivers/android/binder.c b/drivers/android/binder.c
index f43edb11bef4..3cb7798873bb 100644
--- a/drivers/android/binder.c
+++ b/drivers/android/binder.c
@@ -795,7 +795,7 @@ static struct binder_node *binder_new_node(struct binder_proc *proc,
struct flat_binder_object *fp)
{
struct binder_node *node;
- struct binder_node *new_node = kzalloc(sizeof(*node), GFP_KERNEL);
+ struct binder_node *new_node = kzalloc_obj(*node, GFP_KERNEL);
if (!new_node)
return NULL;
@@ -1469,7 +1469,7 @@ static int binder_inc_ref_for_node(struct binder_proc *proc,
ref = binder_get_ref_for_node_olocked(proc, node, NULL);
if (!ref) {
binder_proc_unlock(proc);
- new_ref = kzalloc(sizeof(*ref), GFP_KERNEL);
+ new_ref = kzalloc_obj(*ref, GFP_KERNEL);
if (!new_ref)
return -ENOMEM;
binder_proc_lock(proc);
@@ -2009,7 +2009,7 @@ static void binder_deferred_fd_close(int fd)
{
struct binder_task_work_cb *twcb;
- twcb = kzalloc(sizeof(*twcb), GFP_KERNEL);
+ twcb = kzalloc_obj(*twcb, GFP_KERNEL);
if (!twcb)
return;
init_task_work(&twcb->twork, binder_do_fd_close);
@@ -2386,7 +2386,7 @@ static int binder_translate_fd(u32 fd, binder_size_t fd_offset,
* of the fd in the target needs to be done from a
* target thread.
*/
- fixup = kzalloc(sizeof(*fixup), GFP_KERNEL);
+ fixup = kzalloc_obj(*fixup, GFP_KERNEL);
if (!fixup) {
ret = -ENOMEM;
goto err_alloc;
@@ -2579,7 +2579,7 @@ static void binder_cleanup_deferred_txn_lists(struct list_head *sgc_head,
static int binder_defer_copy(struct list_head *sgc_head, binder_size_t offset,
const void __user *sender_uaddr, size_t length)
{
- struct binder_sg_copy *bc = kzalloc(sizeof(*bc), GFP_KERNEL);
+ struct binder_sg_copy *bc = kzalloc_obj(*bc, GFP_KERNEL);
if (!bc)
return -ENOMEM;
@@ -2622,7 +2622,7 @@ static int binder_defer_copy(struct list_head *sgc_head, binder_size_t offset,
static int binder_add_fixup(struct list_head *pf_head, binder_size_t offset,
binder_uintptr_t fixup, size_t skip_size)
{
- struct binder_ptr_fixup *pf = kzalloc(sizeof(*pf), GFP_KERNEL);
+ struct binder_ptr_fixup *pf = kzalloc_obj(*pf, GFP_KERNEL);
struct binder_ptr_fixup *tmppf;
if (!pf)
@@ -3101,7 +3101,7 @@ static void binder_transaction(struct binder_proc *proc,
binder_set_extended_error(&thread->ee, t_debug_id, BR_OK, 0);
binder_inner_proc_unlock(proc);
- t = kzalloc(sizeof(*t), GFP_KERNEL);
+ t = kzalloc_obj(*t, GFP_KERNEL);
if (!t) {
binder_txn_error("%d:%d cannot allocate transaction\n",
thread->pid, proc->pid);
@@ -3320,7 +3320,7 @@ static void binder_transaction(struct binder_proc *proc,
e->to_thread = target_thread->pid;
e->to_proc = target_proc->pid;
- tcomplete = kzalloc(sizeof(*tcomplete), GFP_KERNEL);
+ tcomplete = kzalloc_obj(*tcomplete, GFP_KERNEL);
if (tcomplete == NULL) {
binder_txn_error("%d:%d cannot allocate work for transaction\n",
thread->pid, proc->pid);
@@ -3926,7 +3926,7 @@ binder_request_freeze_notification(struct binder_proc *proc,
struct binder_ref_freeze *freeze;
struct binder_ref *ref;
- freeze = kzalloc(sizeof(*freeze), GFP_KERNEL);
+ freeze = kzalloc_obj(*freeze, GFP_KERNEL);
if (!freeze)
return -ENOMEM;
binder_proc_lock(proc);
@@ -4394,7 +4394,7 @@ static int binder_thread_write(struct binder_proc *proc,
* Allocate memory for death notification
* before taking lock
*/
- death = kzalloc(sizeof(*death), GFP_KERNEL);
+ death = kzalloc_obj(*death, GFP_KERNEL);
if (death == NULL) {
WARN_ON(thread->return_error.cmd !=
BR_OK);
@@ -5293,7 +5293,7 @@ static struct binder_thread *binder_get_thread(struct binder_proc *proc)
thread = binder_get_thread_ilocked(proc, NULL);
binder_inner_proc_unlock(proc);
if (!thread) {
- new_thread = kzalloc(sizeof(*thread), GFP_KERNEL);
+ new_thread = kzalloc_obj(*thread, GFP_KERNEL);
if (new_thread == NULL)
return NULL;
binder_inner_proc_lock(proc);
@@ -5902,9 +5902,8 @@ static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
goto err;
}
- target_procs = kcalloc(target_procs_count,
- sizeof(struct binder_proc *),
- GFP_KERNEL);
+ target_procs = kzalloc_objs(struct binder_proc *,
+ target_procs_count, GFP_KERNEL);
if (!target_procs) {
mutex_unlock(&binder_procs_lock);
@@ -6061,7 +6060,7 @@ static int binder_open(struct inode *nodp, struct file *filp)
binder_debug(BINDER_DEBUG_OPEN_CLOSE, "%s: %d:%d\n", __func__,
current->tgid, current->pid);
- proc = kzalloc(sizeof(*proc), GFP_KERNEL);
+ proc = kzalloc_obj(*proc, GFP_KERNEL);
if (proc == NULL)
return -ENOMEM;
@@ -7065,7 +7064,7 @@ static int __init init_binder_device(const char *name)
int ret;
struct binder_device *binder_device;
- binder_device = kzalloc(sizeof(*binder_device), GFP_KERNEL);
+ binder_device = kzalloc_obj(*binder_device, GFP_KERNEL);
if (!binder_device)
return -ENOMEM;
diff --git a/drivers/android/binder/rust_binderfs.c b/drivers/android/binder/rust_binderfs.c
index 5c1319d80036..2b640f6eddc2 100644
--- a/drivers/android/binder/rust_binderfs.c
+++ b/drivers/android/binder/rust_binderfs.c
@@ -145,7 +145,7 @@ static int binderfs_binder_device_create(struct inode *ref_inode,
mutex_unlock(&binderfs_minors_mutex);
ret = -ENOMEM;
- device = kzalloc(sizeof(*device), GFP_KERNEL);
+ device = kzalloc_obj(*device, GFP_KERNEL);
if (!device)
goto err;
@@ -387,7 +387,7 @@ static int binderfs_binder_ctl_create(struct super_block *sb)
bool use_reserve = true;
#endif
- device = kzalloc(sizeof(*device), GFP_KERNEL);
+ device = kzalloc_obj(*device, GFP_KERNEL);
if (!device)
return -ENOMEM;
@@ -642,7 +642,7 @@ static int binderfs_fill_super(struct super_block *sb, struct fs_context *fc)
sb->s_op = &binderfs_super_ops;
sb->s_time_gran = 1;
- sb->s_fs_info = kzalloc(sizeof(struct binderfs_info), GFP_KERNEL);
+ sb->s_fs_info = kzalloc_obj(struct binderfs_info, GFP_KERNEL);
if (!sb->s_fs_info)
return -ENOMEM;
info = sb->s_fs_info;
@@ -721,7 +721,7 @@ static int binderfs_init_fs_context(struct fs_context *fc)
{
struct binderfs_mount_opts *ctx;
- ctx = kzalloc(sizeof(struct binderfs_mount_opts), GFP_KERNEL);
+ ctx = kzalloc_obj(struct binderfs_mount_opts, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c
index 67a068c075c0..aab88f2347eb 100644
--- a/drivers/android/binder_alloc.c
+++ b/drivers/android/binder_alloc.c
@@ -289,7 +289,7 @@ static struct page *binder_page_alloc(struct binder_alloc *alloc,
return NULL;
/* allocate and install shrinker metadata under page->private */
- mdata = kzalloc(sizeof(*mdata), GFP_KERNEL);
+ mdata = kzalloc_obj(*mdata, GFP_KERNEL);
if (!mdata) {
__free_page(page);
return NULL;
@@ -672,7 +672,7 @@ struct binder_buffer *binder_alloc_new_buf(struct binder_alloc *alloc,
}
/* Preallocate the next buffer */
- next = kzalloc(sizeof(*next), GFP_KERNEL);
+ next = kzalloc_obj(*next, GFP_KERNEL);
if (!next)
return ERR_PTR(-ENOMEM);
@@ -916,16 +916,15 @@ int binder_alloc_mmap_handler(struct binder_alloc *alloc,
alloc->vm_start = vma->vm_start;
- alloc->pages = kvcalloc(alloc->buffer_size / PAGE_SIZE,
- sizeof(alloc->pages[0]),
- GFP_KERNEL);
+ alloc->pages = kvzalloc_objs(alloc->pages[0],
+ alloc->buffer_size / PAGE_SIZE, GFP_KERNEL);
if (!alloc->pages) {
ret = -ENOMEM;
failure_string = "alloc page array";
goto err_alloc_pages_failed;
}
- buffer = kzalloc(sizeof(*buffer), GFP_KERNEL);
+ buffer = kzalloc_obj(*buffer, GFP_KERNEL);
if (!buffer) {
ret = -ENOMEM;
failure_string = "alloc buffer struct";
diff --git a/drivers/android/binderfs.c b/drivers/android/binderfs.c
index 9f8a18c88d66..73a7c3b54f21 100644
--- a/drivers/android/binderfs.c
+++ b/drivers/android/binderfs.c
@@ -145,7 +145,7 @@ static int binderfs_binder_device_create(struct inode *ref_inode,
mutex_unlock(&binderfs_minors_mutex);
ret = -ENOMEM;
- device = kzalloc(sizeof(*device), GFP_KERNEL);
+ device = kzalloc_obj(*device, GFP_KERNEL);
if (!device)
goto err;
@@ -396,7 +396,7 @@ static int binderfs_binder_ctl_create(struct super_block *sb)
bool use_reserve = true;
#endif
- device = kzalloc(sizeof(*device), GFP_KERNEL);
+ device = kzalloc_obj(*device, GFP_KERNEL);
if (!device)
return -ENOMEM;
@@ -638,7 +638,7 @@ static int binderfs_fill_super(struct super_block *sb, struct fs_context *fc)
sb->s_op = &binderfs_super_ops;
sb->s_time_gran = 1;
- sb->s_fs_info = kzalloc(sizeof(struct binderfs_info), GFP_KERNEL);
+ sb->s_fs_info = kzalloc_obj(struct binderfs_info, GFP_KERNEL);
if (!sb->s_fs_info)
return -ENOMEM;
info = sb->s_fs_info;
@@ -717,7 +717,7 @@ static int binderfs_init_fs_context(struct fs_context *fc)
{
struct binderfs_mount_opts *ctx;
- ctx = kzalloc(sizeof(struct binderfs_mount_opts), GFP_KERNEL);
+ ctx = kzalloc_obj(struct binderfs_mount_opts, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/ata/libahci_platform.c b/drivers/ata/libahci_platform.c
index 91d44302eac9..12c3a0330f67 100644
--- a/drivers/ata/libahci_platform.c
+++ b/drivers/ata/libahci_platform.c
@@ -594,7 +594,8 @@ struct ahci_host_priv *ahci_platform_get_resources(struct platform_device *pdev,
* We cannot use devm_ here, since ahci_platform_put_resources() uses
* target_pwrs after devm_ have freed memory
*/
- hpriv->target_pwrs = kcalloc(hpriv->nports, sizeof(*hpriv->target_pwrs), GFP_KERNEL);
+ hpriv->target_pwrs = kzalloc_objs(*hpriv->target_pwrs, hpriv->nports,
+ GFP_KERNEL);
if (!hpriv->target_pwrs) {
rc = -ENOMEM;
goto err_out;
diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
index 15e18d50dcc6..a618313dea03 100644
--- a/drivers/ata/libata-acpi.c
+++ b/drivers/ata/libata-acpi.c
@@ -194,7 +194,7 @@ void ata_acpi_bind_port(struct ata_port *ap)
if (!adev || adev->hp)
return;
- context = kzalloc(sizeof(*context), GFP_KERNEL);
+ context = kzalloc_obj(*context, GFP_KERNEL);
if (!context)
return;
@@ -236,7 +236,7 @@ void ata_acpi_bind_dev(struct ata_device *dev)
if (!adev || adev->hp)
return;
- context = kzalloc(sizeof(*context), GFP_KERNEL);
+ context = kzalloc_obj(*context, GFP_KERNEL);
if (!context)
return;
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index beb6984b379a..02dde2517122 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -2557,7 +2557,7 @@ static int ata_dev_init_cdl_resources(struct ata_device *dev)
unsigned int err_mask;
if (!cdl) {
- cdl = kzalloc(sizeof(*cdl), GFP_KERNEL);
+ cdl = kzalloc_obj(*cdl, GFP_KERNEL);
if (!cdl)
return -ENOMEM;
dev->cdl = cdl;
@@ -2832,7 +2832,7 @@ static void ata_dev_config_cpr(struct ata_device *dev)
if (!nr_cpr)
goto out;
- cpr_log = kzalloc(struct_size(cpr_log, cpr, nr_cpr), GFP_KERNEL);
+ cpr_log = kzalloc_flex(*cpr_log, cpr, nr_cpr, GFP_KERNEL);
if (!cpr_log)
goto out;
@@ -5638,7 +5638,7 @@ struct ata_port *ata_port_alloc(struct ata_host *host)
struct ata_port *ap;
int id;
- ap = kzalloc(sizeof(*ap), GFP_KERNEL);
+ ap = kzalloc_obj(*ap, GFP_KERNEL);
if (!ap)
return NULL;
@@ -6714,7 +6714,7 @@ static void __init ata_parse_force_param(void)
if (*p == ',')
size++;
- ata_force_tbl = kcalloc(size, sizeof(ata_force_tbl[0]), GFP_KERNEL);
+ ata_force_tbl = kzalloc_objs(ata_force_tbl[0], size, GFP_KERNEL);
if (!ata_force_tbl) {
printk(KERN_WARNING "ata: failed to extend force table, "
"libata.force ignored\n");
diff --git a/drivers/ata/libata-pmp.c b/drivers/ata/libata-pmp.c
index 57023324a56f..e3adc008fed1 100644
--- a/drivers/ata/libata-pmp.c
+++ b/drivers/ata/libata-pmp.c
@@ -339,8 +339,8 @@ static int sata_pmp_init_links (struct ata_port *ap, int nr_ports)
int i, err;
if (!pmp_link) {
- pmp_link = kcalloc(SATA_PMP_MAX_PORTS, sizeof(pmp_link[0]),
- GFP_NOIO);
+ pmp_link = kzalloc_objs(pmp_link[0], SATA_PMP_MAX_PORTS,
+ GFP_NOIO);
if (!pmp_link)
return -ENOMEM;
diff --git a/drivers/ata/libata-sata.c b/drivers/ata/libata-sata.c
index 04e1e774645e..04a0ad66958e 100644
--- a/drivers/ata/libata-sata.c
+++ b/drivers/ata/libata-sata.c
@@ -849,7 +849,7 @@ int ata_slave_link_init(struct ata_port *ap)
WARN_ON(ap->slave_link);
WARN_ON(ap->flags & ATA_FLAG_PMP);
- link = kzalloc(sizeof(*link), GFP_KERNEL);
+ link = kzalloc_obj(*link, GFP_KERNEL);
if (!link)
return -ENOMEM;
diff --git a/drivers/ata/libata-transport.c b/drivers/ata/libata-transport.c
index 62415fe67a11..85340ef98be3 100644
--- a/drivers/ata/libata-transport.c
+++ b/drivers/ata/libata-transport.c
@@ -758,7 +758,7 @@ struct scsi_transport_template *ata_attach_transport(void)
struct ata_internal *i;
int count;
- i = kzalloc(sizeof(struct ata_internal), GFP_KERNEL);
+ i = kzalloc_obj(struct ata_internal, GFP_KERNEL);
if (!i)
return NULL;
diff --git a/drivers/ata/libata-zpodd.c b/drivers/ata/libata-zpodd.c
index 799531218ea2..e550327e7bd9 100644
--- a/drivers/ata/libata-zpodd.c
+++ b/drivers/ata/libata-zpodd.c
@@ -274,7 +274,7 @@ void zpodd_init(struct ata_device *dev)
if (mech_type == ODD_MECH_TYPE_UNSUPPORTED)
return;
- zpodd = kzalloc(sizeof(struct zpodd), GFP_KERNEL);
+ zpodd = kzalloc_obj(struct zpodd, GFP_KERNEL);
if (!zpodd)
return;
diff --git a/drivers/ata/pata_parport/pata_parport.c b/drivers/ata/pata_parport/pata_parport.c
index 22bd3ff6b7ae..93ca62cc6390 100644
--- a/drivers/ata/pata_parport/pata_parport.c
+++ b/drivers/ata/pata_parport/pata_parport.c
@@ -511,7 +511,7 @@ static struct pi_adapter *pi_init_one(struct parport *parport,
if (id < 0)
return NULL;
- pi = kzalloc(sizeof(struct pi_adapter), GFP_KERNEL);
+ pi = kzalloc_obj(struct pi_adapter, GFP_KERNEL);
if (!pi) {
ida_free(&pata_parport_bus_dev_ids, id);
return NULL;
diff --git a/drivers/ata/sata_dwc_460ex.c b/drivers/ata/sata_dwc_460ex.c
index 7a4f59202156..e4fe47c8fa75 100644
--- a/drivers/ata/sata_dwc_460ex.c
+++ b/drivers/ata/sata_dwc_460ex.c
@@ -850,7 +850,7 @@ static int sata_dwc_port_start(struct ata_port *ap)
}
/* Allocate Port Struct */
- hsdevp = kzalloc(sizeof(*hsdevp), GFP_KERNEL);
+ hsdevp = kzalloc_obj(*hsdevp, GFP_KERNEL);
if (!hsdevp) {
err = -ENOMEM;
goto CLEANUP;
diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c
index 84da8d6ef28e..703febbe0c03 100644
--- a/drivers/ata/sata_fsl.c
+++ b/drivers/ata/sata_fsl.c
@@ -706,7 +706,7 @@ static int sata_fsl_port_start(struct ata_port *ap)
void __iomem *hcr_base = host_priv->hcr_base;
u32 temp;
- pp = kzalloc(sizeof(*pp), GFP_KERNEL);
+ pp = kzalloc_obj(*pp, GFP_KERNEL);
if (!pp)
return -ENOMEM;
@@ -1451,7 +1451,7 @@ static int sata_fsl_probe(struct platform_device *ofdev)
dev_dbg(&ofdev->dev, "@reset i/o = 0x%x\n",
ioread32(csr_base + TRANSCFG));
- host_priv = kzalloc(sizeof(struct sata_fsl_host_priv), GFP_KERNEL);
+ host_priv = kzalloc_obj(struct sata_fsl_host_priv, GFP_KERNEL);
if (!host_priv)
goto error_exit_with_cleanup;
diff --git a/drivers/atm/adummy.c b/drivers/atm/adummy.c
index 8157925af824..c85bca1af835 100644
--- a/drivers/atm/adummy.c
+++ b/drivers/atm/adummy.c
@@ -148,8 +148,7 @@ static int __init adummy_init(void)
printk(KERN_ERR "adummy: version %s\n", DRV_VERSION);
- adummy_dev = kzalloc(sizeof(struct adummy_dev),
- GFP_KERNEL);
+ adummy_dev = kzalloc_obj(struct adummy_dev, GFP_KERNEL);
if (!adummy_dev) {
printk(KERN_ERR DEV_LABEL ": kzalloc() failed\n");
err = -ENOMEM;
diff --git a/drivers/atm/atmtcp.c b/drivers/atm/atmtcp.c
index fa3c76a2b49d..da7226b1aa66 100644
--- a/drivers/atm/atmtcp.c
+++ b/drivers/atm/atmtcp.c
@@ -375,7 +375,7 @@ static int atmtcp_create(int itf,int persist,struct atm_dev **result)
struct atmtcp_dev_data *dev_data;
struct atm_dev *dev;
- dev_data = kmalloc(sizeof(*dev_data),GFP_KERNEL);
+ dev_data = kmalloc_obj(*dev_data, GFP_KERNEL);
if (!dev_data)
return -ENOMEM;
diff --git a/drivers/atm/eni.c b/drivers/atm/eni.c
index 3011cf1a84a9..b00ddead5390 100644
--- a/drivers/atm/eni.c
+++ b/drivers/atm/eni.c
@@ -1845,9 +1845,9 @@ static int eni_start(struct atm_dev *dev)
/* initialize memory management */
buffer_mem = eni_dev->mem - (buf - eni_dev->ram);
eni_dev->free_list_size = buffer_mem/MID_MIN_BUF_SIZE/2;
- eni_dev->free_list = kmalloc_array(eni_dev->free_list_size + 1,
- sizeof(*eni_dev->free_list),
- GFP_KERNEL);
+ eni_dev->free_list = kmalloc_objs(*eni_dev->free_list,
+ eni_dev->free_list_size + 1,
+ GFP_KERNEL);
if (!eni_dev->free_list) {
printk(KERN_ERR DEV_LABEL "(itf %d): couldn't get free page\n",
dev->number);
@@ -1925,7 +1925,7 @@ static int eni_open(struct atm_vcc *vcc)
DPRINTK(DEV_LABEL "(itf %d): open %d.%d\n",vcc->dev->number,vcc->vpi,
vcc->vci);
if (!test_bit(ATM_VF_PARTIAL,&vcc->flags)) {
- eni_vcc = kmalloc(sizeof(struct eni_vcc),GFP_KERNEL);
+ eni_vcc = kmalloc_obj(struct eni_vcc, GFP_KERNEL);
if (!eni_vcc) return -ENOMEM;
vcc->dev_data = eni_vcc;
eni_vcc->tx = NULL; /* for eni_close after open_rx */
@@ -2229,7 +2229,7 @@ static int eni_init_one(struct pci_dev *pci_dev,
goto err_disable;
rc = -ENOMEM;
- eni_dev = kmalloc(sizeof(struct eni_dev), GFP_KERNEL);
+ eni_dev = kmalloc_obj(struct eni_dev, GFP_KERNEL);
if (!eni_dev)
goto err_disable;
diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c
index fec081db36dc..0a3e9abd72f2 100644
--- a/drivers/atm/fore200e.c
+++ b/drivers/atm/fore200e.c
@@ -1331,7 +1331,7 @@ fore200e_open(struct atm_vcc *vcc)
spin_unlock_irqrestore(&fore200e->q_lock, flags);
- fore200e_vcc = kzalloc(sizeof(struct fore200e_vcc), GFP_ATOMIC);
+ fore200e_vcc = kzalloc_obj(struct fore200e_vcc, GFP_ATOMIC);
if (fore200e_vcc == NULL) {
vc_map->vcc = NULL;
return -ENOMEM;
@@ -1676,7 +1676,7 @@ fore200e_getstats(struct fore200e* fore200e)
u32 stats_dma_addr;
if (fore200e->stats == NULL) {
- fore200e->stats = kzalloc(sizeof(struct stats), GFP_KERNEL);
+ fore200e->stats = kzalloc_obj(struct stats, GFP_KERNEL);
if (fore200e->stats == NULL)
return -ENOMEM;
}
@@ -1955,7 +1955,7 @@ static int fore200e_irq_request(struct fore200e *fore200e)
static int fore200e_get_esi(struct fore200e *fore200e)
{
- struct prom_data* prom = kzalloc(sizeof(struct prom_data), GFP_KERNEL);
+ struct prom_data* prom = kzalloc_obj(struct prom_data, GFP_KERNEL);
int ok, i;
if (!prom)
@@ -2000,8 +2000,7 @@ static int fore200e_alloc_rx_buf(struct fore200e *fore200e)
DPRINTK(2, "rx buffers %d / %d are being allocated\n", scheme, magn);
/* allocate the array of receive buffers */
- buffer = bsq->buffer = kcalloc(nbr, sizeof(struct buffer),
- GFP_KERNEL);
+ buffer = bsq->buffer = kzalloc_objs(struct buffer, nbr, GFP_KERNEL);
if (buffer == NULL)
return -ENOMEM;
@@ -2529,7 +2528,7 @@ static int fore200e_sba_probe(struct platform_device *op)
static int index = 0;
int err;
- fore200e = kzalloc(sizeof(struct fore200e), GFP_KERNEL);
+ fore200e = kzalloc_obj(struct fore200e, GFP_KERNEL);
if (!fore200e)
return -ENOMEM;
@@ -2597,7 +2596,7 @@ static int fore200e_pca_detect(struct pci_dev *pci_dev,
goto out;
}
- fore200e = kzalloc(sizeof(struct fore200e), GFP_KERNEL);
+ fore200e = kzalloc_obj(struct fore200e, GFP_KERNEL);
if (fore200e == NULL) {
err = -ENOMEM;
goto out_disable;
diff --git a/drivers/atm/he.c b/drivers/atm/he.c
index 92a041d5387b..d2e41a7aaa3a 100644
--- a/drivers/atm/he.c
+++ b/drivers/atm/he.c
@@ -372,8 +372,7 @@ static int he_init_one(struct pci_dev *pci_dev,
}
pci_set_drvdata(pci_dev, atm_dev);
- he_dev = kzalloc(sizeof(struct he_dev),
- GFP_KERNEL);
+ he_dev = kzalloc_obj(struct he_dev, GFP_KERNEL);
if (!he_dev) {
err = -ENOMEM;
goto init_one_failure;
@@ -787,9 +786,8 @@ static int he_init_group(struct he_dev *he_dev, int group)
}
/* rbpl_virt 64-bit pointers */
- he_dev->rbpl_virt = kmalloc_array(RBPL_TABLE_SIZE,
- sizeof(*he_dev->rbpl_virt),
- GFP_KERNEL);
+ he_dev->rbpl_virt = kmalloc_objs(*he_dev->rbpl_virt, RBPL_TABLE_SIZE,
+ GFP_KERNEL);
if (!he_dev->rbpl_virt) {
hprintk("unable to allocate rbpl virt table\n");
goto out_free_rbpl_table;
@@ -2132,7 +2130,7 @@ he_open(struct atm_vcc *vcc)
cid = he_mkcid(he_dev, vpi, vci);
- he_vcc = kmalloc(sizeof(struct he_vcc), GFP_ATOMIC);
+ he_vcc = kmalloc_obj(struct he_vcc, GFP_ATOMIC);
if (he_vcc == NULL) {
hprintk("unable to allocate he_vcc during open\n");
return -ENOMEM;
diff --git a/drivers/atm/idt77105.c b/drivers/atm/idt77105.c
index e6a300203e6c..7ac597f9c673 100644
--- a/drivers/atm/idt77105.c
+++ b/drivers/atm/idt77105.c
@@ -262,7 +262,7 @@ static int idt77105_start(struct atm_dev *dev)
{
unsigned long flags;
- if (!(dev->phy_data = kmalloc(sizeof(struct idt77105_priv),GFP_KERNEL)))
+ if (!(dev->phy_data = kmalloc_obj(struct idt77105_priv, GFP_KERNEL)))
return -ENOMEM;
PRIV(dev)->dev = dev;
spin_lock_irqsave(&idt77105_priv_lock, flags);
diff --git a/drivers/atm/idt77252.c b/drivers/atm/idt77252.c
index 888695ccc2a7..d984d0766301 100644
--- a/drivers/atm/idt77252.c
+++ b/drivers/atm/idt77252.c
@@ -638,7 +638,7 @@ alloc_scq(struct idt77252_dev *card, int class)
{
struct scq_info *scq;
- scq = kzalloc(sizeof(struct scq_info), GFP_KERNEL);
+ scq = kzalloc_obj(struct scq_info, GFP_KERNEL);
if (!scq)
return NULL;
scq->base = dma_alloc_coherent(&card->pcidev->dev, SCQ_SIZE,
@@ -2116,7 +2116,7 @@ idt77252_init_est(struct vc_map *vc, int pcr)
{
struct rate_estimator *est;
- est = kzalloc(sizeof(struct rate_estimator), GFP_KERNEL);
+ est = kzalloc_obj(struct rate_estimator, GFP_KERNEL);
if (!est)
return NULL;
est->maxcps = pcr < 0 ? -pcr : pcr;
@@ -2424,7 +2424,7 @@ idt77252_open(struct atm_vcc *vcc)
index = VPCI2VC(card, vpi, vci);
if (!card->vcs[index]) {
- card->vcs[index] = kzalloc(sizeof(struct vc_map), GFP_KERNEL);
+ card->vcs[index] = kzalloc_obj(struct vc_map, GFP_KERNEL);
if (!card->vcs[index]) {
printk("%s: can't alloc vc in open()\n", card->name);
mutex_unlock(&card->mutex);
@@ -2855,7 +2855,7 @@ open_card_oam(struct idt77252_dev *card)
for (vci = 3; vci < 5; vci++) {
index = VPCI2VC(card, vpi, vci);
- vc = kzalloc(sizeof(struct vc_map), GFP_KERNEL);
+ vc = kzalloc_obj(struct vc_map, GFP_KERNEL);
if (!vc) {
printk("%s: can't alloc vc\n", card->name);
return -ENOMEM;
@@ -2923,7 +2923,7 @@ open_card_ubr0(struct idt77252_dev *card)
{
struct vc_map *vc;
- vc = kzalloc(sizeof(struct vc_map), GFP_KERNEL);
+ vc = kzalloc_obj(struct vc_map, GFP_KERNEL);
if (!vc) {
printk("%s: can't alloc vc\n", card->name);
return -ENOMEM;
@@ -3621,7 +3621,7 @@ static int idt77252_init_one(struct pci_dev *pcidev,
goto err_out_disable_pdev;
}
- card = kzalloc(sizeof(struct idt77252_dev), GFP_KERNEL);
+ card = kzalloc_obj(struct idt77252_dev, GFP_KERNEL);
if (!card) {
printk("idt77252-%d: can't allocate private data\n", index);
err = -ENOMEM;
diff --git a/drivers/atm/iphase.c b/drivers/atm/iphase.c
index 301e697e22ad..727b5d044115 100644
--- a/drivers/atm/iphase.c
+++ b/drivers/atm/iphase.c
@@ -114,7 +114,7 @@ static void ia_enque_head_rtn_q (IARTN_Q *que, IARTN_Q * data)
}
static int ia_enque_rtn_q (IARTN_Q *que, struct desc_tbl_t data) {
- IARTN_Q *entry = kmalloc(sizeof(*entry), GFP_ATOMIC);
+ IARTN_Q *entry = kmalloc_obj(*entry, GFP_ATOMIC);
if (!entry)
return -ENOMEM;
entry->data = data;
@@ -1978,9 +1978,8 @@ static int tx_init(struct atm_dev *dev)
buf_desc_ptr++;
tx_pkt_start += iadev->tx_buf_sz;
}
- iadev->tx_buf = kmalloc_array(iadev->num_tx_desc,
- sizeof(*iadev->tx_buf),
- GFP_KERNEL);
+ iadev->tx_buf = kmalloc_objs(*iadev->tx_buf, iadev->num_tx_desc,
+ GFP_KERNEL);
if (!iadev->tx_buf) {
printk(KERN_ERR DEV_LABEL " couldn't get mem\n");
goto err_free_dle;
@@ -1989,7 +1988,7 @@ static int tx_init(struct atm_dev *dev)
{
struct cpcs_trailer *cpcs;
- cpcs = kmalloc(sizeof(*cpcs), GFP_KERNEL|GFP_DMA);
+ cpcs = kmalloc_obj(*cpcs, GFP_KERNEL | GFP_DMA);
if(!cpcs) {
printk(KERN_ERR DEV_LABEL " couldn't get freepage\n");
goto err_free_tx_bufs;
@@ -2000,9 +1999,8 @@ static int tx_init(struct atm_dev *dev)
sizeof(*cpcs),
DMA_TO_DEVICE);
}
- iadev->desc_tbl = kmalloc_array(iadev->num_tx_desc,
- sizeof(*iadev->desc_tbl),
- GFP_KERNEL);
+ iadev->desc_tbl = kmalloc_objs(*iadev->desc_tbl, iadev->num_tx_desc,
+ GFP_KERNEL);
if (!iadev->desc_tbl) {
printk(KERN_ERR DEV_LABEL " couldn't get mem\n");
goto err_free_all_tx_bufs;
@@ -2130,9 +2128,8 @@ static int tx_init(struct atm_dev *dev)
memset((caddr_t)(iadev->seg_ram+i), 0, iadev->num_vc*4);
vc = (struct main_vc *)iadev->MAIN_VC_TABLE_ADDR;
evc = (struct ext_vc *)iadev->EXT_VC_TABLE_ADDR;
- iadev->testTable = kmalloc_array(iadev->num_vc,
- sizeof(*iadev->testTable),
- GFP_KERNEL);
+ iadev->testTable = kmalloc_objs(*iadev->testTable, iadev->num_vc,
+ GFP_KERNEL);
if (!iadev->testTable) {
printk("Get freepage failed\n");
goto err_free_desc_tbl;
@@ -2141,8 +2138,8 @@ static int tx_init(struct atm_dev *dev)
{
memset((caddr_t)vc, 0, sizeof(*vc));
memset((caddr_t)evc, 0, sizeof(*evc));
- iadev->testTable[i] = kmalloc(sizeof(struct testTable_t),
- GFP_KERNEL);
+ iadev->testTable[i] = kmalloc_obj(struct testTable_t,
+ GFP_KERNEL);
if (!iadev->testTable[i])
goto err_free_test_tables;
iadev->testTable[i]->lastTime = 0;
@@ -2712,7 +2709,7 @@ static int ia_open(struct atm_vcc *vcc)
vcc->dev->number, vcc->vpi, vcc->vci);)
/* Device dependent initialization */
- ia_vcc = kmalloc(sizeof(*ia_vcc), GFP_KERNEL);
+ ia_vcc = kmalloc_obj(*ia_vcc, GFP_KERNEL);
if (!ia_vcc) return -ENOMEM;
vcc->dev_data = ia_vcc;
@@ -2798,7 +2795,7 @@ static int ia_ioctl(struct atm_dev *dev, unsigned int cmd, void __user *arg)
rfredn_t *rfL;
if (!capable(CAP_NET_ADMIN)) return -EPERM;
- regs_local = kmalloc(sizeof(*regs_local), GFP_KERNEL);
+ regs_local = kmalloc_obj(*regs_local, GFP_KERNEL);
if (!regs_local) return -ENOMEM;
ffL = ®s_local->ffredn;
rfL = ®s_local->rfredn;
@@ -3168,7 +3165,7 @@ static int ia_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
IADEV *iadev;
int ret;
- iadev = kzalloc(sizeof(*iadev), GFP_KERNEL);
+ iadev = kzalloc_obj(*iadev, GFP_KERNEL);
if (!iadev) {
ret = -ENOMEM;
goto err_out;
diff --git a/drivers/atm/lanai.c b/drivers/atm/lanai.c
index 0dfa2cdc897c..682089aedbe4 100644
--- a/drivers/atm/lanai.c
+++ b/drivers/atm/lanai.c
@@ -1464,7 +1464,7 @@ static inline void vcc_table_deallocate(const struct lanai_dev *lanai)
static inline struct lanai_vcc *new_lanai_vcc(void)
{
struct lanai_vcc *lvcc;
- lvcc = kzalloc(sizeof(*lvcc), GFP_KERNEL);
+ lvcc = kzalloc_obj(*lvcc, GFP_KERNEL);
if (likely(lvcc != NULL)) {
skb_queue_head_init(&lvcc->tx.backlog);
#ifdef DEBUG
@@ -2555,7 +2555,7 @@ static int lanai_init_one(struct pci_dev *pci,
struct atm_dev *atmdev;
int result;
- lanai = kzalloc(sizeof(*lanai), GFP_KERNEL);
+ lanai = kzalloc_obj(*lanai, GFP_KERNEL);
if (lanai == NULL) {
printk(KERN_ERR DEV_LABEL
": couldn't allocate dev_data structure!\n");
diff --git a/drivers/atm/nicstar.c b/drivers/atm/nicstar.c
index bc8dbba77b87..67486f363c2c 100644
--- a/drivers/atm/nicstar.c
+++ b/drivers/atm/nicstar.c
@@ -373,7 +373,7 @@ static int ns_init_card(int i, struct pci_dev *pcidev)
return error;
}
- card = kmalloc(sizeof(*card), GFP_KERNEL);
+ card = kmalloc_obj(*card, GFP_KERNEL);
if (!card) {
printk
("nicstar%d: can't allocate memory for device structure.\n",
@@ -867,7 +867,7 @@ static scq_info *get_scq(ns_dev *card, int size, u32 scd)
if (size != VBR_SCQSIZE && size != CBR_SCQSIZE)
return NULL;
- scq = kmalloc(sizeof(*scq), GFP_KERNEL);
+ scq = kmalloc_obj(*scq, GFP_KERNEL);
if (!scq)
return NULL;
scq->org = dma_alloc_coherent(&card->pcidev->dev,
@@ -876,8 +876,7 @@ static scq_info *get_scq(ns_dev *card, int size, u32 scd)
kfree(scq);
return NULL;
}
- scq->skb = kcalloc(size / NS_SCQE_SIZE, sizeof(*scq->skb),
- GFP_KERNEL);
+ scq->skb = kzalloc_objs(*scq->skb, size / NS_SCQE_SIZE, GFP_KERNEL);
if (!scq->skb) {
dma_free_coherent(&card->pcidev->dev,
2 * size, scq->org, scq->dma);
diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c
index d3c30a28c410..1c86cd84ce69 100644
--- a/drivers/atm/solos-pci.c
+++ b/drivers/atm/solos-pci.c
@@ -1196,7 +1196,7 @@ static int fpga_probe(struct pci_dev *dev, const struct pci_device_id *id)
uint32_t data32;
struct solos_card *card;
- card = kzalloc(sizeof(*card), GFP_KERNEL);
+ card = kzalloc_obj(*card, GFP_KERNEL);
if (!card)
return -ENOMEM;
diff --git a/drivers/atm/suni.c b/drivers/atm/suni.c
index 7d0fa729c2fe..0eb3ad488d1e 100644
--- a/drivers/atm/suni.c
+++ b/drivers/atm/suni.c
@@ -367,7 +367,7 @@ int suni_init(struct atm_dev *dev)
{
unsigned char mri;
- if (!(dev->phy_data = kmalloc(sizeof(struct suni_priv),GFP_KERNEL)))
+ if (!(dev->phy_data = kmalloc_obj(struct suni_priv, GFP_KERNEL)))
return -ENOMEM;
PRIV(dev)->dev = dev;
diff --git a/drivers/auxdisplay/hd44780.c b/drivers/auxdisplay/hd44780.c
index cef42656c4b0..aee1f5a60c0d 100644
--- a/drivers/auxdisplay/hd44780.c
+++ b/drivers/auxdisplay/hd44780.c
@@ -226,7 +226,7 @@ static int hd44780_probe(struct platform_device *pdev)
if (!lcd)
return -ENOMEM;
- hd = kzalloc(sizeof(*hd), GFP_KERNEL);
+ hd = kzalloc_obj(*hd, GFP_KERNEL);
if (!hd)
goto fail2;
diff --git a/drivers/auxdisplay/line-display.c b/drivers/auxdisplay/line-display.c
index 4e22373fcc1a..d3860953b0de 100644
--- a/drivers/auxdisplay/line-display.c
+++ b/drivers/auxdisplay/line-display.c
@@ -56,7 +56,7 @@ static int create_attachment(struct device *dev, struct linedisp *linedisp, bool
{
struct linedisp_attachment *attachment;
- attachment = kzalloc(sizeof(*attachment), GFP_KERNEL);
+ attachment = kzalloc_obj(*attachment, GFP_KERNEL);
if (!attachment)
return -ENOMEM;
@@ -390,7 +390,7 @@ static int linedisp_init_map(struct linedisp *linedisp)
if (err < 0)
return err;
- map = kmalloc(sizeof(*map), GFP_KERNEL);
+ map = kmalloc_obj(*map, GFP_KERNEL);
if (!map)
return -ENOMEM;
diff --git a/drivers/auxdisplay/panel.c b/drivers/auxdisplay/panel.c
index 958c0e31e84a..8aad34f96068 100644
--- a/drivers/auxdisplay/panel.c
+++ b/drivers/auxdisplay/panel.c
@@ -1428,7 +1428,7 @@ static struct logical_input *panel_bind_key(const char *name, const char *press,
{
struct logical_input *key;
- key = kzalloc(sizeof(*key), GFP_KERNEL);
+ key = kzalloc_obj(*key, GFP_KERNEL);
if (!key)
return NULL;
diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c
index c0ef6ea9c111..0a2a19d50b54 100644
--- a/drivers/base/arch_topology.c
+++ b/drivers/base/arch_topology.c
@@ -892,7 +892,7 @@ __weak int __init parse_acpi_topology(void)
hetero_id = find_acpi_cpu_topology_hetero_id(cpu);
entry = xa_load(&hetero_cpu, hetero_id);
if (!entry) {
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
WARN_ON_ONCE(!entry);
if (entry) {
diff --git a/drivers/base/attribute_container.c b/drivers/base/attribute_container.c
index 72adbacc6554..2264c3647247 100644
--- a/drivers/base/attribute_container.c
+++ b/drivers/base/attribute_container.c
@@ -153,7 +153,7 @@ attribute_container_add_device(struct device *dev,
if (!cont->match(cont, dev))
continue;
- ic = kzalloc(sizeof(*ic), GFP_KERNEL);
+ ic = kzalloc_obj(*ic, GFP_KERNEL);
if (!ic) {
dev_err(dev, "failed to allocate class container\n");
continue;
diff --git a/drivers/base/auxiliary.c b/drivers/base/auxiliary.c
index 04bdbff4dbe5..8e7bae67f3c0 100644
--- a/drivers/base/auxiliary.c
+++ b/drivers/base/auxiliary.c
@@ -420,7 +420,7 @@ struct auxiliary_device *auxiliary_device_create(struct device *dev,
struct auxiliary_device *auxdev;
int ret;
- auxdev = kzalloc(sizeof(*auxdev), GFP_KERNEL);
+ auxdev = kzalloc_obj(*auxdev, GFP_KERNEL);
if (!auxdev)
return NULL;
diff --git a/drivers/base/auxiliary_sysfs.c b/drivers/base/auxiliary_sysfs.c
index 754f21730afd..e432fa6b4ce9 100644
--- a/drivers/base/auxiliary_sysfs.c
+++ b/drivers/base/auxiliary_sysfs.c
@@ -63,7 +63,7 @@ int auxiliary_device_sysfs_irq_add(struct auxiliary_device *auxdev, int irq)
if (ret)
return ret;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/base/bus.c b/drivers/base/bus.c
index 9eb7771706f0..5745f51f5901 100644
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
@@ -696,7 +696,7 @@ int bus_add_driver(struct device_driver *drv)
*/
pr_debug("bus: '%s': add driver %s\n", sp->bus->name, drv->name);
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
error = -ENOMEM;
goto out_put_bus;
@@ -897,7 +897,7 @@ int bus_register(const struct bus_type *bus)
struct kobject *bus_kobj;
struct lock_class_key *key;
- priv = kzalloc(sizeof(struct subsys_private), GFP_KERNEL);
+ priv = kzalloc_obj(struct subsys_private, GFP_KERNEL);
if (!priv)
return -ENOMEM;
@@ -1263,7 +1263,7 @@ static int subsys_register(const struct bus_type *subsys,
goto err_sp;
}
- dev = kzalloc(sizeof(struct device), GFP_KERNEL);
+ dev = kzalloc_obj(struct device, GFP_KERNEL);
if (!dev) {
err = -ENOMEM;
goto err_dev;
diff --git a/drivers/base/cacheinfo.c b/drivers/base/cacheinfo.c
index 613410705a47..eb16451ba0a3 100644
--- a/drivers/base/cacheinfo.c
+++ b/drivers/base/cacheinfo.c
@@ -510,7 +510,8 @@ int __weak populate_cache_leaves(unsigned int cpu)
static inline int allocate_cache_info(int cpu)
{
- per_cpu_cacheinfo(cpu) = kcalloc(cache_leaves(cpu), sizeof(struct cacheinfo), GFP_ATOMIC);
+ per_cpu_cacheinfo(cpu) = kzalloc_objs(struct cacheinfo,
+ cache_leaves(cpu), GFP_ATOMIC);
if (!per_cpu_cacheinfo(cpu)) {
cache_leaves(cpu) = 0;
return -ENOMEM;
@@ -882,8 +883,8 @@ static int cpu_cache_sysfs_init(unsigned int cpu)
return PTR_ERR(per_cpu_cache_dev(cpu));
/* Allocate all required memory */
- per_cpu_index_dev(cpu) = kcalloc(cache_leaves(cpu),
- sizeof(struct device *), GFP_KERNEL);
+ per_cpu_index_dev(cpu) = kzalloc_objs(struct device *,
+ cache_leaves(cpu), GFP_KERNEL);
if (unlikely(per_cpu_index_dev(cpu) == NULL))
goto err_out;
diff --git a/drivers/base/class.c b/drivers/base/class.c
index 2526c57d924e..2650dead5af1 100644
--- a/drivers/base/class.c
+++ b/drivers/base/class.c
@@ -194,7 +194,7 @@ int class_register(const struct class *cls)
return -EINVAL;
}
- cp = kzalloc(sizeof(*cp), GFP_KERNEL);
+ cp = kzalloc_obj(*cp, GFP_KERNEL);
if (!cp)
return -ENOMEM;
klist_init(&cp->klist_devices, klist_class_dev_get, klist_class_dev_put);
@@ -268,7 +268,7 @@ struct class *class_create(const char *name)
struct class *cls;
int retval;
- cls = kzalloc(sizeof(*cls), GFP_KERNEL);
+ cls = kzalloc_obj(*cls, GFP_KERNEL);
if (!cls) {
retval = -ENOMEM;
goto error;
@@ -573,7 +573,7 @@ struct class_compat *class_compat_register(const char *name)
{
struct class_compat *cls;
- cls = kmalloc(sizeof(struct class_compat), GFP_KERNEL);
+ cls = kmalloc_obj(struct class_compat, GFP_KERNEL);
if (!cls)
return NULL;
cls->kobj = kobject_create_and_add(name, &class_kset->kobj);
diff --git a/drivers/base/component.c b/drivers/base/component.c
index 024ad9471b8a..fef563aa13e5 100644
--- a/drivers/base/component.c
+++ b/drivers/base/component.c
@@ -363,7 +363,7 @@ static int component_match_realloc(struct component_match *match, size_t num)
if (match->alloc == num)
return 0;
- new = kmalloc_array(num, sizeof(*new), GFP_KERNEL);
+ new = kmalloc_objs(*new, num, GFP_KERNEL);
if (!new)
return -ENOMEM;
@@ -521,7 +521,7 @@ int component_master_add_with_match(struct device *parent,
if (ret)
return ret;
- adev = kzalloc(sizeof(*adev), GFP_KERNEL);
+ adev = kzalloc_obj(*adev, GFP_KERNEL);
if (!adev)
return -ENOMEM;
@@ -732,7 +732,7 @@ static int __component_add(struct device *dev, const struct component_ops *ops,
struct component *component;
int ret;
- component = kzalloc(sizeof(*component), GFP_KERNEL);
+ component = kzalloc_obj(*component, GFP_KERNEL);
if (!component)
return -ENOMEM;
diff --git a/drivers/base/core.c b/drivers/base/core.c
index f599a1384eec..a8ea302c504c 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -76,7 +76,7 @@ static int __fwnode_link_add(struct fwnode_handle *con,
return 0;
}
- link = kzalloc(sizeof(*link), GFP_KERNEL);
+ link = kzalloc_obj(*link, GFP_KERNEL);
if (!link)
return -ENOMEM;
@@ -844,7 +844,7 @@ struct device_link *device_link_add(struct device *consumer,
goto out;
}
- link = kzalloc(sizeof(*link), GFP_KERNEL);
+ link = kzalloc_obj(*link, GFP_KERNEL);
if (!link)
goto out;
@@ -2748,7 +2748,7 @@ static ssize_t uevent_show(struct device *dev, struct device_attribute *attr,
if (!kset->uevent_ops->filter(&dev->kobj))
goto out;
- env = kzalloc(sizeof(struct kobj_uevent_env), GFP_KERNEL);
+ env = kzalloc_obj(struct kobj_uevent_env, GFP_KERNEL);
if (!env)
return -ENOMEM;
@@ -3220,7 +3220,7 @@ static struct kobject *class_dir_create_and_add(struct subsys_private *sp,
struct class_dir *dir;
int retval;
- dir = kzalloc(sizeof(*dir), GFP_KERNEL);
+ dir = kzalloc_obj(*dir, GFP_KERNEL);
if (!dir)
return ERR_PTR(-ENOMEM);
@@ -3531,7 +3531,7 @@ static void device_remove_sys_dev_entry(struct device *dev)
static int device_private_init(struct device *dev)
{
- dev->p = kzalloc(sizeof(*dev->p), GFP_KERNEL);
+ dev->p = kzalloc_obj(*dev->p, GFP_KERNEL);
if (!dev->p)
return -ENOMEM;
dev->p->device = dev;
@@ -4278,7 +4278,7 @@ struct device *__root_device_register(const char *name, struct module *owner)
struct root_device *root;
int err = -ENOMEM;
- root = kzalloc(sizeof(struct root_device), GFP_KERNEL);
+ root = kzalloc_obj(struct root_device, GFP_KERNEL);
if (!root)
return ERR_PTR(err);
@@ -4350,7 +4350,7 @@ device_create_groups_vargs(const struct class *class, struct device *parent,
if (IS_ERR_OR_NULL(class))
goto error;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
retval = -ENOMEM;
goto error;
diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c
index 3e3fa031e605..517609371f4c 100644
--- a/drivers/base/cpu.c
+++ b/drivers/base/cpu.c
@@ -466,7 +466,7 @@ __cpu_device_create(struct device *parent, void *drvdata,
struct device *dev = NULL;
int retval = -ENOMEM;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
goto error;
diff --git a/drivers/base/devcoredump.c b/drivers/base/devcoredump.c
index 55bdc7f5e59d..7e4a491bf15e 100644
--- a/drivers/base/devcoredump.c
+++ b/drivers/base/devcoredump.c
@@ -381,7 +381,7 @@ void dev_coredumpm_timeout(struct device *dev, struct module *owner,
if (!try_module_get(owner))
goto free;
- devcd = kzalloc(sizeof(*devcd), gfp);
+ devcd = kzalloc_obj(*devcd, gfp);
if (!devcd)
goto put_module;
diff --git a/drivers/base/devres.c b/drivers/base/devres.c
index f54db6d138ab..171750c1f691 100644
--- a/drivers/base/devres.c
+++ b/drivers/base/devres.c
@@ -554,7 +554,7 @@ void *devres_open_group(struct device *dev, void *id, gfp_t gfp)
struct devres_group *grp;
unsigned long flags;
- grp = kmalloc(sizeof(*grp), gfp);
+ grp = kmalloc_obj(*grp, gfp);
if (unlikely(!grp))
return NULL;
diff --git a/drivers/base/faux.c b/drivers/base/faux.c
index 23d725817232..33dd8efdd541 100644
--- a/drivers/base/faux.c
+++ b/drivers/base/faux.c
@@ -133,7 +133,7 @@ struct faux_device *faux_device_create_with_groups(const char *name,
struct device *dev;
int ret;
- faux_obj = kzalloc(sizeof(*faux_obj), GFP_KERNEL);
+ faux_obj = kzalloc_obj(*faux_obj, GFP_KERNEL);
if (!faux_obj)
return NULL;
@@ -234,7 +234,7 @@ int __init faux_bus_init(void)
{
int ret;
- faux_bus_root = kzalloc(sizeof(*faux_bus_root), GFP_KERNEL);
+ faux_bus_root = kzalloc_obj(*faux_bus_root, GFP_KERNEL);
if (!faux_bus_root)
return -ENOMEM;
diff --git a/drivers/base/firmware_loader/main.c b/drivers/base/firmware_loader/main.c
index 4ebdca9e4da4..49eabc50c66d 100644
--- a/drivers/base/firmware_loader/main.c
+++ b/drivers/base/firmware_loader/main.c
@@ -127,7 +127,7 @@ static struct fw_priv *__allocate_fw_priv(const char *fw_name,
if (offset != 0 && !(opt_flags & FW_OPT_PARTIAL))
return NULL;
- fw_priv = kzalloc(sizeof(*fw_priv), GFP_ATOMIC);
+ fw_priv = kzalloc_obj(*fw_priv, GFP_ATOMIC);
if (!fw_priv)
return NULL;
@@ -747,7 +747,7 @@ _request_firmware_prepare(struct firmware **firmware_p, const char *name,
struct fw_priv *fw_priv;
int ret;
- *firmware_p = firmware = kzalloc(sizeof(*firmware), GFP_KERNEL);
+ *firmware_p = firmware = kzalloc_obj(*firmware, GFP_KERNEL);
if (!firmware) {
dev_err(device, "%s: kmalloc(struct firmware) failed\n",
__func__);
@@ -1165,7 +1165,7 @@ static int _request_firmware_nowait(
{
struct firmware_work *fw_work;
- fw_work = kzalloc(sizeof(struct firmware_work), gfp);
+ fw_work = kzalloc_obj(struct firmware_work, gfp);
if (!fw_work)
return -ENOMEM;
@@ -1338,7 +1338,7 @@ static struct fw_cache_entry *alloc_fw_cache_entry(const char *name)
{
struct fw_cache_entry *fce;
- fce = kzalloc(sizeof(*fce), GFP_ATOMIC);
+ fce = kzalloc_obj(*fce, GFP_ATOMIC);
if (!fce)
goto exit;
diff --git a/drivers/base/firmware_loader/sysfs.c b/drivers/base/firmware_loader/sysfs.c
index 92e91050f96a..d921570026cc 100644
--- a/drivers/base/firmware_loader/sysfs.c
+++ b/drivers/base/firmware_loader/sysfs.c
@@ -405,7 +405,7 @@ fw_create_instance(struct firmware *firmware, const char *fw_name,
struct fw_sysfs *fw_sysfs;
struct device *f_dev;
- fw_sysfs = kzalloc(sizeof(*fw_sysfs), GFP_KERNEL);
+ fw_sysfs = kzalloc_obj(*fw_sysfs, GFP_KERNEL);
if (!fw_sysfs) {
fw_sysfs = ERR_PTR(-ENOMEM);
goto exit;
diff --git a/drivers/base/firmware_loader/sysfs_upload.c b/drivers/base/firmware_loader/sysfs_upload.c
index c3797b93c5f5..fdc928b8cd1d 100644
--- a/drivers/base/firmware_loader/sysfs_upload.c
+++ b/drivers/base/firmware_loader/sysfs_upload.c
@@ -315,13 +315,13 @@ firmware_upload_register(struct module *module, struct device *parent,
if (!try_module_get(module))
return ERR_PTR(-EFAULT);
- fw_upload = kzalloc(sizeof(*fw_upload), GFP_KERNEL);
+ fw_upload = kzalloc_obj(*fw_upload, GFP_KERNEL);
if (!fw_upload) {
ret = -ENOMEM;
goto exit_module_put;
}
- fw_upload_priv = kzalloc(sizeof(*fw_upload_priv), GFP_KERNEL);
+ fw_upload_priv = kzalloc_obj(*fw_upload_priv, GFP_KERNEL);
if (!fw_upload_priv) {
ret = -ENOMEM;
goto free_fw_upload;
diff --git a/drivers/base/isa.c b/drivers/base/isa.c
index bfd9215c9070..ca2765ef9ab9 100644
--- a/drivers/base/isa.c
+++ b/drivers/base/isa.c
@@ -125,7 +125,7 @@ int isa_register_driver(struct isa_driver *isa_driver, unsigned int ndev)
for (id = 0; id < ndev; id++) {
struct isa_dev *isa_dev;
- isa_dev = kzalloc(sizeof *isa_dev, GFP_KERNEL);
+ isa_dev = kzalloc_obj(*isa_dev, GFP_KERNEL);
if (!isa_dev) {
error = -ENOMEM;
break;
diff --git a/drivers/base/map.c b/drivers/base/map.c
index 83aeb09ca161..f5c01efe6b55 100644
--- a/drivers/base/map.c
+++ b/drivers/base/map.c
@@ -41,7 +41,7 @@ int kobj_map(struct kobj_map *domain, dev_t dev, unsigned long range,
if (n > 255)
n = 255;
- p = kmalloc_array(n, sizeof(struct probe), GFP_KERNEL);
+ p = kmalloc_objs(struct probe, n, GFP_KERNEL);
if (p == NULL)
return -ENOMEM;
@@ -134,8 +134,8 @@ struct kobject *kobj_lookup(struct kobj_map *domain, dev_t dev, int *index)
struct kobj_map *kobj_map_init(kobj_probe_t *base_probe, struct mutex *lock)
{
- struct kobj_map *p = kmalloc(sizeof(struct kobj_map), GFP_KERNEL);
- struct probe *base = kzalloc(sizeof(*base), GFP_KERNEL);
+ struct kobj_map *p = kmalloc_obj(struct kobj_map, GFP_KERNEL);
+ struct probe *base = kzalloc_obj(*base, GFP_KERNEL);
int i;
if ((p == NULL) || (base == NULL)) {
diff --git a/drivers/base/memory.c b/drivers/base/memory.c
index 751f248ca4a8..ea915e6a4781 100644
--- a/drivers/base/memory.c
+++ b/drivers/base/memory.c
@@ -800,7 +800,7 @@ static int add_memory_block(unsigned long block_id, int nid, unsigned long state
put_device(&mem->dev);
return -EEXIST;
}
- mem = kzalloc(sizeof(*mem), GFP_KERNEL);
+ mem = kzalloc_obj(*mem, GFP_KERNEL);
if (!mem)
return -ENOMEM;
@@ -1078,7 +1078,7 @@ static int memory_group_register(struct memory_group group)
if (!node_possible(group.nid))
return -EINVAL;
- new_group = kzalloc(sizeof(group), GFP_KERNEL);
+ new_group = kzalloc_obj(group, GFP_KERNEL);
if (!new_group)
return -ENOMEM;
*new_group = group;
diff --git a/drivers/base/node.c b/drivers/base/node.c
index 00cf4532f121..2b65b5eba708 100644
--- a/drivers/base/node.c
+++ b/drivers/base/node.c
@@ -158,7 +158,7 @@ static struct node_access_nodes *node_init_node_access(struct node *node,
if (access_node->access == access)
return access_node;
- access_node = kzalloc(sizeof(*access_node), GFP_KERNEL);
+ access_node = kzalloc_obj(*access_node, GFP_KERNEL);
if (!access_node)
return NULL;
@@ -340,7 +340,7 @@ static void node_init_cache_dev(struct node *node)
{
struct device *dev;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return;
@@ -389,7 +389,7 @@ void node_add_cache(unsigned int nid, struct node_cache_attrs *cache_attrs)
if (!node->cache_dev)
return;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return;
@@ -875,7 +875,7 @@ int register_node(int nid)
int cpu;
struct node *node;
- node = kzalloc(sizeof(struct node), GFP_KERNEL);
+ node = kzalloc_obj(struct node, GFP_KERNEL);
if (!node)
return -ENOMEM;
diff --git a/drivers/base/physical_location.c b/drivers/base/physical_location.c
index a5539e294d4d..06a2797e0213 100644
--- a/drivers/base/physical_location.c
+++ b/drivers/base/physical_location.c
@@ -21,8 +21,8 @@ bool dev_add_physical_location(struct device *dev)
if (!acpi_get_physical_device_location(ACPI_HANDLE(dev), &pld))
return false;
- dev->physical_location =
- kzalloc(sizeof(*dev->physical_location), GFP_KERNEL);
+ dev->physical_location = kzalloc_obj(*dev->physical_location,
+ GFP_KERNEL);
if (!dev->physical_location) {
ACPI_FREE(pld);
return false;
diff --git a/drivers/base/power/clock_ops.c b/drivers/base/power/clock_ops.c
index b69bcb37c830..0ac1e6757ec5 100644
--- a/drivers/base/power/clock_ops.c
+++ b/drivers/base/power/clock_ops.c
@@ -201,7 +201,7 @@ static int __pm_clk_add(struct device *dev, const char *con_id,
if (!psd)
return -EINVAL;
- ce = kzalloc(sizeof(*ce), GFP_KERNEL);
+ ce = kzalloc_obj(*ce, GFP_KERNEL);
if (!ce)
return -ENOMEM;
@@ -282,7 +282,7 @@ int of_pm_clk_add_clks(struct device *dev)
if (count <= 0)
return -ENODEV;
- clks = kcalloc(count, sizeof(*clks), GFP_KERNEL);
+ clks = kzalloc_objs(*clks, count, GFP_KERNEL);
if (!clks)
return -ENOMEM;
diff --git a/drivers/base/power/common.c b/drivers/base/power/common.c
index 6ecf9ce4a4e6..5902658ee94f 100644
--- a/drivers/base/power/common.c
+++ b/drivers/base/power/common.c
@@ -27,7 +27,7 @@ int dev_pm_get_subsys_data(struct device *dev)
{
struct pm_subsys_data *psd;
- psd = kzalloc(sizeof(*psd), GFP_KERNEL);
+ psd = kzalloc_obj(*psd, GFP_KERNEL);
if (!psd)
return -ENOMEM;
@@ -222,7 +222,7 @@ int dev_pm_domain_attach_list(struct device *dev,
if (num_pds <= 0)
return 0;
- pds = kzalloc(sizeof(*pds), GFP_KERNEL);
+ pds = kzalloc_obj(*pds, GFP_KERNEL);
if (!pds)
return -ENOMEM;
diff --git a/drivers/base/power/qos.c b/drivers/base/power/qos.c
index ff393cba7649..31acf7ef5d87 100644
--- a/drivers/base/power/qos.c
+++ b/drivers/base/power/qos.c
@@ -198,11 +198,11 @@ static int dev_pm_qos_constraints_allocate(struct device *dev)
struct pm_qos_constraints *c;
struct blocking_notifier_head *n;
- qos = kzalloc(sizeof(*qos), GFP_KERNEL);
+ qos = kzalloc_obj(*qos, GFP_KERNEL);
if (!qos)
return -ENOMEM;
- n = kcalloc(3, sizeof(*n), GFP_KERNEL);
+ n = kzalloc_objs(*n, 3, GFP_KERNEL);
if (!n) {
kfree(qos);
return -ENOMEM;
@@ -704,7 +704,7 @@ int dev_pm_qos_expose_latency_limit(struct device *dev, s32 value)
if (!device_is_registered(dev) || value < 0)
return -EINVAL;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -780,7 +780,7 @@ int dev_pm_qos_expose_flags(struct device *dev, s32 val)
if (!device_is_registered(dev))
return -EINVAL;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -919,7 +919,7 @@ int dev_pm_qos_update_user_latency_tolerance(struct device *dev, s32 val)
ret = -EINVAL;
goto out;
}
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/base/power/wakeirq.c b/drivers/base/power/wakeirq.c
index aab843f6dfcc..19abc6a8eaa3 100644
--- a/drivers/base/power/wakeirq.c
+++ b/drivers/base/power/wakeirq.c
@@ -55,7 +55,7 @@ int dev_pm_set_wake_irq(struct device *dev, int irq)
if (irq < 0)
return -EINVAL;
- wirq = kzalloc(sizeof(*wirq), GFP_KERNEL);
+ wirq = kzalloc_obj(*wirq, GFP_KERNEL);
if (!wirq)
return -ENOMEM;
@@ -179,7 +179,7 @@ static int __dev_pm_set_dedicated_wake_irq(struct device *dev, int irq, unsigned
if (irq < 0)
return -EINVAL;
- wirq = kzalloc(sizeof(*wirq), GFP_KERNEL);
+ wirq = kzalloc_obj(*wirq, GFP_KERNEL);
if (!wirq)
return -ENOMEM;
diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
index e69033d16fba..a3714a9e4e46 100644
--- a/drivers/base/power/wakeup.c
+++ b/drivers/base/power/wakeup.c
@@ -83,7 +83,7 @@ static struct wakeup_source *wakeup_source_create(const char *name)
const char *ws_name;
int id;
- ws = kzalloc(sizeof(*ws), GFP_KERNEL);
+ ws = kzalloc_obj(*ws, GFP_KERNEL);
if (!ws)
goto err_ws;
diff --git a/drivers/base/power/wakeup_stats.c b/drivers/base/power/wakeup_stats.c
index 3ffd427248e8..af888678156f 100644
--- a/drivers/base/power/wakeup_stats.c
+++ b/drivers/base/power/wakeup_stats.c
@@ -141,7 +141,7 @@ static struct device *wakeup_source_device_create(struct device *parent,
struct device *dev = NULL;
int retval;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
retval = -ENOMEM;
goto error;
diff --git a/drivers/base/regmap/regcache-flat.c b/drivers/base/regmap/regcache-flat.c
index c924817e19b1..025e6749bb24 100644
--- a/drivers/base/regmap/regcache-flat.c
+++ b/drivers/base/regmap/regcache-flat.c
@@ -36,7 +36,7 @@ static int regcache_flat_init(struct regmap *map)
return -EINVAL;
cache_size = regcache_flat_get_index(map, map->max_register) + 1;
- cache = kzalloc(struct_size(cache, data, cache_size), map->alloc_flags);
+ cache = kzalloc_flex(*cache, data, cache_size, map->alloc_flags);
if (!cache)
return -ENOMEM;
diff --git a/drivers/base/regmap/regcache-maple.c b/drivers/base/regmap/regcache-maple.c
index 4134a77ae1d6..49ba7282e4b8 100644
--- a/drivers/base/regmap/regcache-maple.c
+++ b/drivers/base/regmap/regcache-maple.c
@@ -294,7 +294,7 @@ static int regcache_maple_init(struct regmap *map)
{
struct maple_tree *mt;
- mt = kmalloc(sizeof(*mt), map->alloc_flags);
+ mt = kmalloc_obj(*mt, map->alloc_flags);
if (!mt)
return -ENOMEM;
map->cache = mt;
diff --git a/drivers/base/regmap/regcache-rbtree.c b/drivers/base/regmap/regcache-rbtree.c
index 3344b82c3799..a69e8b4c359b 100644
--- a/drivers/base/regmap/regcache-rbtree.c
+++ b/drivers/base/regmap/regcache-rbtree.c
@@ -185,7 +185,7 @@ static int regcache_rbtree_init(struct regmap *map)
{
struct regcache_rbtree_ctx *rbtree_ctx;
- map->cache = kmalloc(sizeof *rbtree_ctx, map->alloc_flags);
+ map->cache = kmalloc_obj(*rbtree_ctx, map->alloc_flags);
if (!map->cache)
return -ENOMEM;
@@ -320,7 +320,7 @@ regcache_rbtree_node_alloc(struct regmap *map, unsigned int reg)
const struct regmap_range *range;
int i;
- rbnode = kzalloc(sizeof(*rbnode), map->alloc_flags);
+ rbnode = kzalloc_obj(*rbnode, map->alloc_flags);
if (!rbnode)
return NULL;
diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c
index d596526dccbb..750a4c4b755e 100644
--- a/drivers/base/regmap/regcache.c
+++ b/drivers/base/regmap/regcache.c
@@ -66,8 +66,7 @@ static int regcache_hw_init(struct regmap *map)
}
map->num_reg_defaults = count;
- map->reg_defaults = kmalloc_array(count, sizeof(struct reg_default),
- GFP_KERNEL);
+ map->reg_defaults = kmalloc_objs(struct reg_default, count, GFP_KERNEL);
if (!map->reg_defaults)
return -ENOMEM;
diff --git a/drivers/base/regmap/regmap-debugfs.c b/drivers/base/regmap/regmap-debugfs.c
index c9b4c04b1cf6..611ab7bbdeda 100644
--- a/drivers/base/regmap/regmap-debugfs.c
+++ b/drivers/base/regmap/regmap-debugfs.c
@@ -130,7 +130,7 @@ static unsigned int regmap_debugfs_get_dump_start(struct regmap *map,
/* No cache entry? Start a new one */
if (!c) {
- c = kzalloc(sizeof(*c), GFP_KERNEL);
+ c = kzalloc_obj(*c, GFP_KERNEL);
if (!c) {
regmap_debugfs_free_dump_cache(map);
mutex_unlock(&map->cache_lock);
@@ -555,7 +555,7 @@ void regmap_debugfs_init(struct regmap *map)
/* If we don't have the debugfs root yet, postpone init */
if (!regmap_debugfs_root) {
struct regmap_debugfs_node *node;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return;
node->map = map;
diff --git a/drivers/base/regmap/regmap-irq.c b/drivers/base/regmap/regmap-irq.c
index 6112d942499b..d3e9c6fef37d 100644
--- a/drivers/base/regmap/regmap-irq.c
+++ b/drivers/base/regmap/regmap-irq.c
@@ -706,7 +706,7 @@ int regmap_add_irq_chip_fwnode(struct fwnode_handle *fwnode,
}
}
- d = kzalloc(sizeof(*d), GFP_KERNEL);
+ d = kzalloc_obj(*d, GFP_KERNEL);
if (!d)
return -ENOMEM;
diff --git a/drivers/base/regmap/regmap-kunit.c b/drivers/base/regmap/regmap-kunit.c
index 6d8279de3ff2..e22bc2a0ea27 100644
--- a/drivers/base/regmap/regmap-kunit.c
+++ b/drivers/base/regmap/regmap-kunit.c
@@ -211,7 +211,7 @@ static struct regmap *gen_regmap(struct kunit *test,
get_random_bytes(buf, size);
- *data = kzalloc(sizeof(**data), GFP_KERNEL);
+ *data = kzalloc_obj(**data, GFP_KERNEL);
if (!(*data))
goto out_free;
(*data)->vals = buf;
@@ -1759,7 +1759,7 @@ static struct regmap *gen_raw_regmap(struct kunit *test,
get_random_bytes(buf, size);
- *data = kzalloc(sizeof(**data), GFP_KERNEL);
+ *data = kzalloc_obj(**data, GFP_KERNEL);
if (!(*data))
goto out_free;
(*data)->vals = (void *)buf;
diff --git a/drivers/base/regmap/regmap-mmio.c b/drivers/base/regmap/regmap-mmio.c
index 29e5f3175301..983ffe7f035a 100644
--- a/drivers/base/regmap/regmap-mmio.c
+++ b/drivers/base/regmap/regmap-mmio.c
@@ -430,7 +430,7 @@ static struct regmap_mmio_context *regmap_mmio_gen_context(struct device *dev,
if (config->use_relaxed_mmio && config->io_port)
return ERR_PTR(-EINVAL);
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/base/regmap/regmap-ram.c b/drivers/base/regmap/regmap-ram.c
index 4e5b4518ce4d..300745d400ee 100644
--- a/drivers/base/regmap/regmap-ram.c
+++ b/drivers/base/regmap/regmap-ram.c
@@ -66,13 +66,11 @@ struct regmap *__regmap_init_ram(struct device *dev,
return ERR_PTR(-EINVAL);
}
- data->read = kcalloc(config->max_register + 1, sizeof(bool),
- GFP_KERNEL);
+ data->read = kzalloc_objs(bool, config->max_register + 1, GFP_KERNEL);
if (!data->read)
return ERR_PTR(-ENOMEM);
- data->written = kcalloc(config->max_register + 1, sizeof(bool),
- GFP_KERNEL);
+ data->written = kzalloc_objs(bool, config->max_register + 1, GFP_KERNEL);
if (!data->written)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/base/regmap/regmap-raw-ram.c b/drivers/base/regmap/regmap-raw-ram.c
index 76c98814fb8a..6a87df7269c6 100644
--- a/drivers/base/regmap/regmap-raw-ram.c
+++ b/drivers/base/regmap/regmap-raw-ram.c
@@ -123,13 +123,11 @@ struct regmap *__regmap_init_raw_ram(struct device *dev,
return ERR_PTR(-EINVAL);
}
- data->read = kcalloc(config->max_register + 1, sizeof(bool),
- GFP_KERNEL);
+ data->read = kzalloc_objs(bool, config->max_register + 1, GFP_KERNEL);
if (!data->read)
return ERR_PTR(-ENOMEM);
- data->written = kcalloc(config->max_register + 1, sizeof(bool),
- GFP_KERNEL);
+ data->written = kzalloc_objs(bool, config->max_register + 1, GFP_KERNEL);
if (!data->written)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/base/regmap/regmap-spi-avmm.c b/drivers/base/regmap/regmap-spi-avmm.c
index d86a06cadcdb..d5cfa8eeffdc 100644
--- a/drivers/base/regmap/regmap-spi-avmm.c
+++ b/drivers/base/regmap/regmap-spi-avmm.c
@@ -630,7 +630,7 @@ spi_avmm_bridge_ctx_gen(struct spi_device *spi)
return ERR_PTR(-EINVAL);
}
- br = kzalloc(sizeof(*br), GFP_KERNEL);
+ br = kzalloc_obj(*br, GFP_KERNEL);
if (!br)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/base/regmap/regmap-spi.c b/drivers/base/regmap/regmap-spi.c
index 14b1d88997cb..56cad7763f56 100644
--- a/drivers/base/regmap/regmap-spi.c
+++ b/drivers/base/regmap/regmap-spi.c
@@ -81,7 +81,7 @@ static struct regmap_async *regmap_spi_async_alloc(void)
{
struct regmap_async_spi *async_spi;
- async_spi = kzalloc(sizeof(*async_spi), GFP_KERNEL);
+ async_spi = kzalloc_obj(*async_spi, GFP_KERNEL);
if (!async_spi)
return NULL;
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c
index 4231e9d4b8ff..443dc31f69d3 100644
--- a/drivers/base/regmap/regmap.c
+++ b/drivers/base/regmap/regmap.c
@@ -689,7 +689,7 @@ struct regmap *__regmap_init(struct device *dev,
if (!config)
goto err;
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (map == NULL) {
ret = -ENOMEM;
goto err;
@@ -1117,7 +1117,7 @@ struct regmap *__regmap_init(struct device *dev,
}
}
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (new == NULL) {
ret = -ENOMEM;
goto err_range;
@@ -1274,7 +1274,7 @@ int regmap_field_bulk_alloc(struct regmap *regmap,
struct regmap_field *rf;
int i;
- rf = kcalloc(num_fields, sizeof(*rf), GFP_KERNEL);
+ rf = kzalloc_objs(*rf, num_fields, GFP_KERNEL);
if (!rf)
return -ENOMEM;
@@ -1384,7 +1384,7 @@ EXPORT_SYMBOL_GPL(devm_regmap_field_free);
struct regmap_field *regmap_field_alloc(struct regmap *regmap,
struct reg_field reg_field)
{
- struct regmap_field *rm_field = kzalloc(sizeof(*rm_field), GFP_KERNEL);
+ struct regmap_field *rm_field = kzalloc_obj(*rm_field, GFP_KERNEL);
if (!rm_field)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/base/soc.c b/drivers/base/soc.c
index 282c38aece0d..89326dbbf172 100644
--- a/drivers/base/soc.c
+++ b/drivers/base/soc.c
@@ -140,13 +140,13 @@ struct soc_device *soc_device_register(struct soc_device_attribute *soc_dev_attr
return NULL;
}
- soc_dev = kzalloc(sizeof(*soc_dev), GFP_KERNEL);
+ soc_dev = kzalloc_obj(*soc_dev, GFP_KERNEL);
if (!soc_dev) {
ret = -ENOMEM;
goto out1;
}
- soc_attr_groups = kcalloc(3, sizeof(*soc_attr_groups), GFP_KERNEL);
+ soc_attr_groups = kzalloc_objs(*soc_attr_groups, 3, GFP_KERNEL);
if (!soc_attr_groups) {
ret = -ENOMEM;
goto out2;
diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c
index 16a8301c25d6..6fcb0c4f13ff 100644
--- a/drivers/base/swnode.c
+++ b/drivers/base/swnode.c
@@ -332,7 +332,7 @@ property_entries_dup(const struct property_entry *properties)
while (properties[n].name)
n++;
- p = kcalloc(n + 1, sizeof(*p), GFP_KERNEL);
+ p = kzalloc_objs(*p, n + 1, GFP_KERNEL);
if (!p)
return ERR_PTR(-ENOMEM);
@@ -758,7 +758,7 @@ static struct software_node *software_node_alloc(const struct property_entry *pr
if (IS_ERR(props))
return ERR_CAST(props);
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node) {
property_entries_free(props);
return ERR_PTR(-ENOMEM);
@@ -805,7 +805,7 @@ swnode_register(const struct software_node *node, struct swnode *parent,
struct swnode *swnode;
int ret;
- swnode = kzalloc(sizeof(*swnode), GFP_KERNEL);
+ swnode = kzalloc_obj(*swnode, GFP_KERNEL);
if (!swnode)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/bcma/driver_pci_host.c b/drivers/bcma/driver_pci_host.c
index 8540052d37c5..2acf87f8de9a 100644
--- a/drivers/bcma/driver_pci_host.c
+++ b/drivers/bcma/driver_pci_host.c
@@ -399,7 +399,7 @@ void bcma_core_pci_hostmode_init(struct bcma_drv_pci *pc)
return;
}
- pc_host = kzalloc(sizeof(*pc_host), GFP_KERNEL);
+ pc_host = kzalloc_obj(*pc_host, GFP_KERNEL);
if (!pc_host) {
bcma_err(bus, "can not allocate memory");
return;
diff --git a/drivers/bcma/host_pci.c b/drivers/bcma/host_pci.c
index 960632197b05..55a4ad2c704a 100644
--- a/drivers/bcma/host_pci.c
+++ b/drivers/bcma/host_pci.c
@@ -165,7 +165,7 @@ static int bcma_host_pci_probe(struct pci_dev *dev,
u32 val;
/* Alloc */
- bus = kzalloc(sizeof(*bus), GFP_KERNEL);
+ bus = kzalloc_obj(*bus, GFP_KERNEL);
if (!bus)
goto out;
diff --git a/drivers/bcma/scan.c b/drivers/bcma/scan.c
index 26d12a7e6ca0..5e77d570767c 100644
--- a/drivers/bcma/scan.c
+++ b/drivers/bcma/scan.c
@@ -479,7 +479,7 @@ int bcma_bus_scan(struct bcma_bus *bus)
while (eromptr < eromend) {
struct bcma_device *other_core;
- struct bcma_device *core = kzalloc(sizeof(*core), GFP_KERNEL);
+ struct bcma_device *core = kzalloc_obj(*core, GFP_KERNEL);
if (!core) {
err = -ENOMEM;
goto out;
diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c
index a9affb7c264d..9897dc9ae678 100644
--- a/drivers/block/aoe/aoecmd.c
+++ b/drivers/block/aoe/aoecmd.c
@@ -211,7 +211,7 @@ newtframe(struct aoedev *d, struct aoetgt *t)
if (list_empty(&t->ffree)) {
if (t->falloc >= NSKBPOOLMAX*2)
return NULL;
- f = kcalloc(1, sizeof(*f), GFP_ATOMIC);
+ f = kzalloc_objs(*f, 1, GFP_ATOMIC);
if (f == NULL)
return NULL;
t->falloc++;
@@ -1431,7 +1431,7 @@ grow_targets(struct aoedev *d)
oldn = d->ntargets;
newn = oldn * 2;
- tt = kcalloc(newn, sizeof(*d->targets), GFP_ATOMIC);
+ tt = kzalloc_objs(*d->targets, newn, GFP_ATOMIC);
if (!tt)
return NULL;
memmove(tt, d->targets, sizeof(*d->targets) * oldn);
@@ -1458,7 +1458,7 @@ addtgt(struct aoedev *d, char *addr, ulong nframes)
if (!tt)
goto nomem;
}
- t = kzalloc(sizeof(*t), GFP_ATOMIC);
+ t = kzalloc_obj(*t, GFP_ATOMIC);
if (!t)
goto nomem;
t->nframes = nframes;
@@ -1699,17 +1699,17 @@ aoecmd_init(void)
ncpus = num_online_cpus();
- iocq = kcalloc(ncpus, sizeof(struct iocq_ktio), GFP_KERNEL);
+ iocq = kzalloc_objs(struct iocq_ktio, ncpus, GFP_KERNEL);
if (!iocq)
return -ENOMEM;
- kts = kcalloc(ncpus, sizeof(struct ktstate), GFP_KERNEL);
+ kts = kzalloc_objs(struct ktstate, ncpus, GFP_KERNEL);
if (!kts) {
ret = -ENOMEM;
goto kts_fail;
}
- ktiowq = kcalloc(ncpus, sizeof(wait_queue_head_t), GFP_KERNEL);
+ ktiowq = kzalloc_objs(wait_queue_head_t, ncpus, GFP_KERNEL);
if (!ktiowq) {
ret = -ENOMEM;
goto ktiowq_fail;
diff --git a/drivers/block/aoe/aoedev.c b/drivers/block/aoe/aoedev.c
index 3a240755045b..6e8b3807c1c8 100644
--- a/drivers/block/aoe/aoedev.c
+++ b/drivers/block/aoe/aoedev.c
@@ -471,10 +471,10 @@ aoedev_by_aoeaddr(ulong maj, int min, int do_alloc)
}
if (d || !do_alloc || minor_get(&sysminor, maj, min) < 0)
goto out;
- d = kcalloc(1, sizeof *d, GFP_ATOMIC);
+ d = kzalloc_objs(*d, 1, GFP_ATOMIC);
if (!d)
goto out;
- d->targets = kcalloc(NTARGETS, sizeof(*d->targets), GFP_ATOMIC);
+ d->targets = kzalloc_objs(*d->targets, NTARGETS, GFP_ATOMIC);
if (!d->targets) {
kfree(d);
d = NULL;
diff --git a/drivers/block/brd.c b/drivers/block/brd.c
index a5104cf96609..fe9b3b70f22d 100644
--- a/drivers/block/brd.c
+++ b/drivers/block/brd.c
@@ -272,7 +272,7 @@ static struct brd_device *brd_find_or_alloc_device(int i)
}
}
- brd = kzalloc(sizeof(*brd), GFP_KERNEL);
+ brd = kzalloc_obj(*brd, GFP_KERNEL);
if (!brd) {
mutex_unlock(&brd_devices_mutex);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/block/drbd/drbd_bitmap.c b/drivers/block/drbd/drbd_bitmap.c
index d90fa3e7f4cf..2735ddb58b91 100644
--- a/drivers/block/drbd/drbd_bitmap.c
+++ b/drivers/block/drbd/drbd_bitmap.c
@@ -434,7 +434,7 @@ int drbd_bm_init(struct drbd_device *device)
{
struct drbd_bitmap *b = device->bitmap;
WARN_ON(b != NULL);
- b = kzalloc(sizeof(struct drbd_bitmap), GFP_KERNEL);
+ b = kzalloc_obj(struct drbd_bitmap, GFP_KERNEL);
if (!b)
return -ENOMEM;
spin_lock_init(&b->bm_lock);
@@ -1078,7 +1078,7 @@ static int bm_rw(struct drbd_device *device, const unsigned int flags, unsigned
* as we submit copies of pages anyways.
*/
- ctx = kmalloc(sizeof(struct drbd_bm_aio_ctx), GFP_NOIO);
+ ctx = kmalloc_obj(struct drbd_bm_aio_ctx, GFP_NOIO);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index 1f6ac9202b66..64c545f5788c 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
@@ -2510,7 +2510,7 @@ struct drbd_resource *drbd_create_resource(const char *name)
{
struct drbd_resource *resource;
- resource = kzalloc(sizeof(struct drbd_resource), GFP_KERNEL);
+ resource = kzalloc_obj(struct drbd_resource, GFP_KERNEL);
if (!resource)
goto fail;
resource->name = kstrdup(name, GFP_KERNEL);
@@ -2543,7 +2543,7 @@ struct drbd_connection *conn_create(const char *name, struct res_opts *res_opts)
struct drbd_resource *resource;
struct drbd_connection *connection;
- connection = kzalloc(sizeof(struct drbd_connection), GFP_KERNEL);
+ connection = kzalloc_obj(struct drbd_connection, GFP_KERNEL);
if (!connection)
return NULL;
@@ -2552,7 +2552,7 @@ struct drbd_connection *conn_create(const char *name, struct res_opts *res_opts)
if (drbd_alloc_socket(&connection->meta))
goto fail;
- connection->current_epoch = kzalloc(sizeof(struct drbd_epoch), GFP_KERNEL);
+ connection->current_epoch = kzalloc_obj(struct drbd_epoch, GFP_KERNEL);
if (!connection->current_epoch)
goto fail;
@@ -2666,7 +2666,7 @@ enum drbd_ret_code drbd_create_device(struct drbd_config_context *adm_ctx, unsig
return ERR_MINOR_OR_VOLUME_EXISTS;
/* GFP_KERNEL, we are outside of all write-out paths */
- device = kzalloc(sizeof(struct drbd_device), GFP_KERNEL);
+ device = kzalloc_obj(struct drbd_device, GFP_KERNEL);
if (!device)
return ERR_NOMEM;
kref_init(&device->kref);
@@ -2725,7 +2725,7 @@ enum drbd_ret_code drbd_create_device(struct drbd_config_context *adm_ctx, unsig
INIT_LIST_HEAD(&device->peer_devices);
INIT_LIST_HEAD(&device->pending_bitmap_io);
for_each_connection(connection, resource) {
- peer_device = kzalloc(sizeof(struct drbd_peer_device), GFP_KERNEL);
+ peer_device = kzalloc_obj(struct drbd_peer_device, GFP_KERNEL);
if (!peer_device)
goto out_idr_remove_from_resource;
peer_device->connection = connection;
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
index b502038be0a9..fbeb8061e549 100644
--- a/drivers/block/drbd/drbd_nl.c
+++ b/drivers/block/drbd/drbd_nl.c
@@ -1536,7 +1536,7 @@ int drbd_adm_disk_opts(struct sk_buff *skb, struct genl_info *info)
goto out;
}
- new_disk_conf = kmalloc(sizeof(struct disk_conf), GFP_KERNEL);
+ new_disk_conf = kmalloc_obj(struct disk_conf, GFP_KERNEL);
if (!new_disk_conf) {
retcode = ERR_NOMEM;
goto fail;
@@ -1785,14 +1785,14 @@ int drbd_adm_attach(struct sk_buff *skb, struct genl_info *info)
atomic_set(&device->rs_pending_cnt, 0);
/* allocation not in the IO path, drbdsetup context */
- nbc = kzalloc(sizeof(struct drbd_backing_dev), GFP_KERNEL);
+ nbc = kzalloc_obj(struct drbd_backing_dev, GFP_KERNEL);
if (!nbc) {
retcode = ERR_NOMEM;
goto fail;
}
spin_lock_init(&nbc->md.uuid_lock);
- new_disk_conf = kzalloc(sizeof(struct disk_conf), GFP_KERNEL);
+ new_disk_conf = kzalloc_obj(struct disk_conf, GFP_KERNEL);
if (!new_disk_conf) {
retcode = ERR_NOMEM;
goto fail;
@@ -2390,7 +2390,7 @@ int drbd_adm_net_opts(struct sk_buff *skb, struct genl_info *info)
connection = adm_ctx.connection;
mutex_lock(&adm_ctx.resource->adm_mutex);
- new_net_conf = kzalloc(sizeof(struct net_conf), GFP_KERNEL);
+ new_net_conf = kzalloc_obj(struct net_conf, GFP_KERNEL);
if (!new_net_conf) {
retcode = ERR_NOMEM;
goto out;
@@ -2570,7 +2570,7 @@ int drbd_adm_connect(struct sk_buff *skb, struct genl_info *info)
}
/* allocation not in the IO path, drbdsetup / netlink process context */
- new_net_conf = kzalloc(sizeof(*new_net_conf), GFP_KERNEL);
+ new_net_conf = kzalloc_obj(*new_net_conf, GFP_KERNEL);
if (!new_net_conf) {
retcode = ERR_NOMEM;
goto fail;
@@ -2840,7 +2840,7 @@ int drbd_adm_resize(struct sk_buff *skb, struct genl_info *info)
u_size = rcu_dereference(device->ldev->disk_conf)->disk_size;
rcu_read_unlock();
if (u_size != (sector_t)rs.resize_size) {
- new_disk_conf = kmalloc(sizeof(struct disk_conf), GFP_KERNEL);
+ new_disk_conf = kmalloc_obj(struct disk_conf, GFP_KERNEL);
if (!new_disk_conf) {
retcode = ERR_NOMEM;
goto fail_ldev;
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
index 3de919b6f0e1..2545f949ce45 100644
--- a/drivers/block/drbd/drbd_receiver.c
+++ b/drivers/block/drbd/drbd_receiver.c
@@ -1095,7 +1095,7 @@ static void submit_one_flush(struct drbd_device *device, struct issue_flush_cont
{
struct bio *bio = bio_alloc(device->ldev->backing_bdev, 0,
REQ_OP_WRITE | REQ_PREFLUSH, GFP_NOIO);
- struct one_flush_context *octx = kmalloc(sizeof(*octx), GFP_NOIO);
+ struct one_flush_context *octx = kmalloc_obj(*octx, GFP_NOIO);
if (!octx) {
drbd_warn(device, "Could not allocate a octx, CANNOT ISSUE FLUSH\n");
@@ -1592,7 +1592,7 @@ static int receive_Barrier(struct drbd_connection *connection, struct packet_inf
/* receiver context, in the writeout path of the other node.
* avoid potential distributed deadlock */
- epoch = kmalloc(sizeof(struct drbd_epoch), GFP_NOIO);
+ epoch = kmalloc_obj(struct drbd_epoch, GFP_NOIO);
if (epoch)
break;
else
@@ -1605,7 +1605,7 @@ static int receive_Barrier(struct drbd_connection *connection, struct packet_inf
drbd_flush(connection);
if (atomic_read(&connection->current_epoch->epoch_size)) {
- epoch = kmalloc(sizeof(struct drbd_epoch), GFP_NOIO);
+ epoch = kmalloc_obj(struct drbd_epoch, GFP_NOIO);
if (epoch)
break;
}
@@ -3547,7 +3547,7 @@ static int receive_protocol(struct drbd_connection *connection, struct packet_in
}
}
- new_net_conf = kmalloc(sizeof(struct net_conf), GFP_KERNEL);
+ new_net_conf = kmalloc_obj(struct net_conf, GFP_KERNEL);
if (!new_net_conf)
goto disconnect;
@@ -3708,7 +3708,7 @@ static int receive_SyncParam(struct drbd_connection *connection, struct packet_i
mutex_lock(&connection->resource->conf_update);
old_net_conf = peer_device->connection->net_conf;
if (get_ldev(device)) {
- new_disk_conf = kzalloc(sizeof(struct disk_conf), GFP_KERNEL);
+ new_disk_conf = kzalloc_obj(struct disk_conf, GFP_KERNEL);
if (!new_disk_conf) {
put_ldev(device);
mutex_unlock(&connection->resource->conf_update);
@@ -3794,7 +3794,7 @@ static int receive_SyncParam(struct drbd_connection *connection, struct packet_i
}
if (verify_tfm || csums_tfm) {
- new_net_conf = kzalloc(sizeof(struct net_conf), GFP_KERNEL);
+ new_net_conf = kzalloc_obj(struct net_conf, GFP_KERNEL);
if (!new_net_conf)
goto disconnect;
@@ -3932,7 +3932,8 @@ static int receive_sizes(struct drbd_connection *connection, struct packet_info
if (my_usize != p_usize) {
struct disk_conf *old_disk_conf, *new_disk_conf = NULL;
- new_disk_conf = kzalloc(sizeof(struct disk_conf), GFP_KERNEL);
+ new_disk_conf = kzalloc_obj(struct disk_conf,
+ GFP_KERNEL);
if (!new_disk_conf) {
put_ldev(device);
return -ENOMEM;
@@ -5692,7 +5693,7 @@ static int got_OVResult(struct drbd_connection *connection, struct packet_info *
drbd_advance_rs_marks(peer_device, device->ov_left);
if (device->ov_left == 0) {
- dw = kmalloc(sizeof(*dw), GFP_NOIO);
+ dw = kmalloc_obj(*dw, GFP_NOIO);
if (dw) {
dw->w.cb = w_ov_finished;
dw->device = device;
diff --git a/drivers/block/drbd/drbd_state.c b/drivers/block/drbd/drbd_state.c
index c2b6c4d9729d..adcba7f1d8ea 100644
--- a/drivers/block/drbd/drbd_state.c
+++ b/drivers/block/drbd/drbd_state.c
@@ -1468,7 +1468,7 @@ _drbd_set_state(struct drbd_device *device, union drbd_state ns,
ns.disk > D_NEGOTIATING)
device->last_reattach_jif = jiffies;
- ascw = kmalloc(sizeof(*ascw), GFP_ATOMIC);
+ ascw = kmalloc_obj(*ascw, GFP_ATOMIC);
if (ascw) {
ascw->os = os;
ascw->ns = ns;
@@ -2351,7 +2351,7 @@ _conn_request_state(struct drbd_connection *connection, union drbd_state mask, u
conn_pr_state_change(connection, os, ns_max, flags);
remember_new_state(state_change);
- acscw = kmalloc(sizeof(*acscw), GFP_ATOMIC);
+ acscw = kmalloc_obj(*acscw, GFP_ATOMIC);
if (acscw) {
acscw->oc = os.conn;
acscw->ns_min = ns_min;
diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c
index dea3e79d044f..0697f99fed18 100644
--- a/drivers/block/drbd/drbd_worker.c
+++ b/drivers/block/drbd/drbd_worker.c
@@ -483,7 +483,7 @@ struct fifo_buffer *fifo_alloc(unsigned int fifo_size)
{
struct fifo_buffer *fb;
- fb = kzalloc(struct_size(fb, values, fifo_size), GFP_NOIO);
+ fb = kzalloc_flex(*fb, values, fifo_size, GFP_NOIO);
if (!fb)
return NULL;
@@ -871,7 +871,7 @@ int drbd_resync_finished(struct drbd_peer_device *peer_device)
* is not finished by now). Retry in 100ms. */
schedule_timeout_interruptible(HZ / 10);
- dw = kmalloc(sizeof(struct drbd_device_work), GFP_ATOMIC);
+ dw = kmalloc_obj(struct drbd_device_work, GFP_ATOMIC);
if (dw) {
dw->w.cb = w_resync_finished;
dw->device = device;
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 98789a5297f2..949bb4adc4bf 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -355,8 +355,7 @@ static int lo_rw_aio(struct loop_device *lo, struct loop_cmd *cmd,
if (rq->bio != rq->biotail) {
- bvec = kmalloc_array(nr_bvec, sizeof(struct bio_vec),
- GFP_NOIO);
+ bvec = kmalloc_objs(struct bio_vec, nr_bvec, GFP_NOIO);
if (!bvec)
return -EIO;
cmd->bvec = bvec;
@@ -823,7 +822,7 @@ static void loop_queue_work(struct loop_device *lo, struct loop_cmd *cmd)
if (worker)
goto queue_work;
- worker = kzalloc(sizeof(struct loop_worker), GFP_NOWAIT);
+ worker = kzalloc_obj(struct loop_worker, GFP_NOWAIT);
/*
* In the event we cannot allocate a worker, just queue on the
* rootcg worker and issue the I/O as the rootcg
@@ -2010,7 +2009,7 @@ static int loop_add(int i)
int err;
err = -ENOMEM;
- lo = kzalloc(sizeof(*lo), GFP_KERNEL);
+ lo = kzalloc_obj(*lo, GFP_KERNEL);
if (!lo)
goto out;
lo->worker_tree = RB_ROOT;
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index f6c33b21f69e..d4993d7355dc 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -307,7 +307,7 @@ static void nbd_mark_nsock_dead(struct nbd_device *nbd, struct nbd_sock *nsock,
{
if (!nsock->dead && notify && !nbd_disconnected(nbd->config)) {
struct link_dead_args *args;
- args = kmalloc(sizeof(struct link_dead_args), GFP_NOIO);
+ args = kmalloc_obj(struct link_dead_args, GFP_NOIO);
if (args) {
INIT_WORK(&args->work, nbd_dead_link_work);
args->index = nbd->index;
@@ -1274,7 +1274,7 @@ static int nbd_add_socket(struct nbd_device *nbd, unsigned long arg,
goto put_socket;
}
- nsock = kzalloc(sizeof(*nsock), GFP_KERNEL);
+ nsock = kzalloc_obj(*nsock, GFP_KERNEL);
if (!nsock) {
err = -ENOMEM;
goto put_socket;
@@ -1322,7 +1322,7 @@ static int nbd_reconnect_socket(struct nbd_device *nbd, unsigned long arg)
if (!sock)
return err;
- args = kzalloc(sizeof(*args), GFP_KERNEL);
+ args = kzalloc_obj(*args, GFP_KERNEL);
if (!args) {
sockfd_put(sock);
return -ENOMEM;
@@ -1510,7 +1510,7 @@ static int nbd_start_device(struct nbd_device *nbd)
for (i = 0; i < num_connections; i++) {
struct recv_thread_args *args;
- args = kzalloc(sizeof(*args), GFP_KERNEL);
+ args = kzalloc_obj(*args, GFP_KERNEL);
if (!args) {
sock_shutdown(nbd);
/*
@@ -1677,7 +1677,7 @@ static int nbd_alloc_and_init_config(struct nbd_device *nbd)
if (!try_module_get(THIS_MODULE))
return -ENODEV;
- config = kzalloc(sizeof(struct nbd_config), GFP_NOFS);
+ config = kzalloc_obj(struct nbd_config, GFP_NOFS);
if (!config) {
module_put(THIS_MODULE);
return -ENOMEM;
@@ -1916,7 +1916,7 @@ static struct nbd_device *nbd_dev_add(int index, unsigned int refs)
struct gendisk *disk;
int err = -ENOMEM;
- nbd = kzalloc(sizeof(struct nbd_device), GFP_KERNEL);
+ nbd = kzalloc_obj(struct nbd_device, GFP_KERNEL);
if (!nbd)
goto out;
diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c
index 740a8ac42075..6eab18d814e5 100644
--- a/drivers/block/null_blk/main.c
+++ b/drivers/block/null_blk/main.c
@@ -778,7 +778,7 @@ static struct nullb_device *null_alloc_dev(void)
{
struct nullb_device *dev;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return NULL;
@@ -867,7 +867,7 @@ static struct nullb_page *null_alloc_page(void)
{
struct nullb_page *t_page;
- t_page = kmalloc(sizeof(struct nullb_page), GFP_NOIO);
+ t_page = kmalloc_obj(struct nullb_page, GFP_NOIO);
if (!t_page)
return NULL;
@@ -1818,8 +1818,7 @@ static int setup_queues(struct nullb *nullb)
if (g_poll_queues)
nqueues += g_poll_queues;
- nullb->queues = kcalloc(nqueues, sizeof(struct nullb_queue),
- GFP_KERNEL);
+ nullb->queues = kzalloc_objs(struct nullb_queue, nqueues, GFP_KERNEL);
if (!nullb->queues)
return -ENOMEM;
diff --git a/drivers/block/null_blk/zoned.c b/drivers/block/null_blk/zoned.c
index 0ada35dc0989..384bdce6a9b7 100644
--- a/drivers/block/null_blk/zoned.c
+++ b/drivers/block/null_blk/zoned.c
@@ -91,8 +91,8 @@ int null_init_zoned_dev(struct nullb_device *dev,
dev->nr_zones = round_up(dev_capacity_sects, dev->zone_size_sects)
>> ilog2(dev->zone_size_sects);
- dev->zones = kvmalloc_array(dev->nr_zones, sizeof(struct nullb_zone),
- GFP_KERNEL | __GFP_ZERO);
+ dev->zones = kvmalloc_objs(struct nullb_zone, dev->nr_zones,
+ GFP_KERNEL | __GFP_ZERO);
if (!dev->zones)
return -ENOMEM;
diff --git a/drivers/block/ps3disk.c b/drivers/block/ps3disk.c
index 8892f218a814..4d4b6bcbfa5f 100644
--- a/drivers/block/ps3disk.c
+++ b/drivers/block/ps3disk.c
@@ -416,7 +416,7 @@ static int ps3disk_probe(struct ps3_system_bus_device *_dev)
__set_bit(devidx, &ps3disk_mask);
mutex_unlock(&ps3disk_mask_mutex);
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
error = -ENOMEM;
goto fail;
diff --git a/drivers/block/ps3vram.c b/drivers/block/ps3vram.c
index bdcf083b45e2..01c743c092be 100644
--- a/drivers/block/ps3vram.c
+++ b/drivers/block/ps3vram.c
@@ -401,9 +401,8 @@ static int ps3vram_cache_init(struct ps3_system_bus_device *dev)
priv->cache.page_count = CACHE_PAGE_COUNT;
priv->cache.page_size = CACHE_PAGE_SIZE;
- priv->cache.tags = kcalloc(CACHE_PAGE_COUNT,
- sizeof(struct ps3vram_tag),
- GFP_KERNEL);
+ priv->cache.tags = kzalloc_objs(struct ps3vram_tag, CACHE_PAGE_COUNT,
+ GFP_KERNEL);
if (!priv->cache.tags)
return -ENOMEM;
@@ -613,7 +612,7 @@ static int ps3vram_probe(struct ps3_system_bus_device *dev)
reports_size, xdr_lpar;
char *rest;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
error = -ENOMEM;
goto fail;
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 8f441eb8b192..c9cf07416fa5 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -707,7 +707,7 @@ static struct rbd_client *rbd_client_create(struct ceph_options *ceph_opts)
int ret = -ENOMEM;
dout("%s:\n", __func__);
- rbdc = kmalloc(sizeof(struct rbd_client), GFP_KERNEL);
+ rbdc = kmalloc_obj(struct rbd_client, GFP_KERNEL);
if (!rbdc)
goto out_opt;
@@ -2572,9 +2572,9 @@ static int rbd_img_fill_request(struct rbd_img_request *img_req,
}
for_each_obj_request(img_req, obj_req) {
- obj_req->bvec_pos.bvecs = kmalloc_array(obj_req->bvec_count,
- sizeof(*obj_req->bvec_pos.bvecs),
- GFP_NOIO);
+ obj_req->bvec_pos.bvecs = kmalloc_objs(*obj_req->bvec_pos.bvecs,
+ obj_req->bvec_count,
+ GFP_NOIO);
if (!obj_req->bvec_pos.bvecs)
return -ENOMEM;
}
@@ -3078,9 +3078,9 @@ static int setup_copyup_bvecs(struct rbd_obj_request *obj_req, u64 obj_overlap)
rbd_assert(!obj_req->copyup_bvecs);
obj_req->copyup_bvec_count = calc_pages_for(0, obj_overlap);
- obj_req->copyup_bvecs = kcalloc(obj_req->copyup_bvec_count,
- sizeof(*obj_req->copyup_bvecs),
- GFP_NOIO);
+ obj_req->copyup_bvecs = kzalloc_objs(*obj_req->copyup_bvecs,
+ obj_req->copyup_bvec_count,
+ GFP_NOIO);
if (!obj_req->copyup_bvecs)
return -ENOMEM;
@@ -5289,7 +5289,7 @@ static struct rbd_spec *rbd_spec_alloc(void)
{
struct rbd_spec *spec;
- spec = kzalloc(sizeof (*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return NULL;
@@ -5352,7 +5352,7 @@ static struct rbd_device *__rbd_dev_create(struct rbd_spec *spec)
{
struct rbd_device *rbd_dev;
- rbd_dev = kzalloc(sizeof(*rbd_dev), GFP_KERNEL);
+ rbd_dev = kzalloc_obj(*rbd_dev, GFP_KERNEL);
if (!rbd_dev)
return NULL;
@@ -6509,7 +6509,7 @@ static int rbd_add_parse_args(const char *buf,
/* Initialize all rbd options to the defaults */
- pctx.opts = kzalloc(sizeof(*pctx.opts), GFP_KERNEL);
+ pctx.opts = kzalloc_obj(*pctx.opts, GFP_KERNEL);
if (!pctx.opts)
goto out_mem;
diff --git a/drivers/block/rnbd/rnbd-clt-sysfs.c b/drivers/block/rnbd/rnbd-clt-sysfs.c
index 144aea1466a4..6ca1221693ff 100644
--- a/drivers/block/rnbd/rnbd-clt-sysfs.c
+++ b/drivers/block/rnbd/rnbd-clt-sysfs.c
@@ -591,7 +591,7 @@ static ssize_t rnbd_clt_map_device_store(struct kobject *kobj,
opt.dest_port = &port_nr;
opt.access_mode = &access_mode;
opt.nr_poll_queues = &nr_poll_queues;
- addrs = kcalloc(ARRAY_SIZE(paths) * 2, sizeof(*addrs), GFP_KERNEL);
+ addrs = kzalloc_objs(*addrs, ARRAY_SIZE(paths) * 2, GFP_KERNEL);
if (!addrs)
return -ENOMEM;
diff --git a/drivers/block/rnbd/rnbd-clt.c b/drivers/block/rnbd/rnbd-clt.c
index 757df2896aeb..59896090d856 100644
--- a/drivers/block/rnbd/rnbd-clt.c
+++ b/drivers/block/rnbd/rnbd-clt.c
@@ -324,7 +324,7 @@ static struct rnbd_iu *rnbd_get_iu(struct rnbd_clt_session *sess,
struct rnbd_iu *iu;
struct rtrs_permit *permit;
- iu = kzalloc(sizeof(*iu), GFP_KERNEL);
+ iu = kzalloc_obj(*iu, GFP_KERNEL);
if (!iu)
return NULL;
@@ -541,7 +541,7 @@ static int send_msg_open(struct rnbd_clt_dev *dev, enum wait_type wait)
};
int err, errno;
- rsp = kzalloc(sizeof(*rsp), GFP_KERNEL);
+ rsp = kzalloc_obj(*rsp, GFP_KERNEL);
if (!rsp)
return -ENOMEM;
@@ -587,7 +587,7 @@ static int send_msg_sess_info(struct rnbd_clt_session *sess, enum wait_type wait
};
int err, errno;
- rsp = kzalloc(sizeof(*rsp), GFP_KERNEL);
+ rsp = kzalloc_obj(*rsp, GFP_KERNEL);
if (!rsp)
return -ENOMEM;
@@ -1417,9 +1417,8 @@ static struct rnbd_clt_dev *init_dev(struct rnbd_clt_session *sess,
* nr_cpu_ids: the number of softirq queues
* nr_poll_queues: the number of polling queues
*/
- dev->hw_queues = kcalloc(nr_cpu_ids + nr_poll_queues,
- sizeof(*dev->hw_queues),
- GFP_KERNEL);
+ dev->hw_queues = kzalloc_objs(*dev->hw_queues,
+ nr_cpu_ids + nr_poll_queues, GFP_KERNEL);
if (!dev->hw_queues) {
ret = -ENOMEM;
goto out_alloc;
@@ -1565,7 +1564,7 @@ struct rnbd_clt_dev *rnbd_clt_map_device(const char *sessname,
goto put_dev;
}
- rsp = kzalloc(sizeof(*rsp), GFP_KERNEL);
+ rsp = kzalloc_obj(*rsp, GFP_KERNEL);
if (!rsp) {
ret = -ENOMEM;
goto del_dev;
diff --git a/drivers/block/rnbd/rnbd-srv.c b/drivers/block/rnbd/rnbd-srv.c
index 7eeb321d6140..d644e59529ca 100644
--- a/drivers/block/rnbd/rnbd-srv.c
+++ b/drivers/block/rnbd/rnbd-srv.c
@@ -128,7 +128,7 @@ static int process_rdma(struct rnbd_srv_session *srv_sess,
trace_process_rdma(srv_sess, msg, id, datalen, usrlen);
- priv = kmalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kmalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
@@ -287,7 +287,7 @@ static int create_sess(struct rtrs_srv_sess *rtrs)
return err;
}
- srv_sess = kzalloc(sizeof(*srv_sess), GFP_KERNEL);
+ srv_sess = kzalloc_obj(*srv_sess, GFP_KERNEL);
if (!srv_sess)
return -ENOMEM;
@@ -422,7 +422,7 @@ static struct rnbd_srv_sess_dev
struct rnbd_srv_sess_dev *sess_dev;
int error;
- sess_dev = kzalloc(sizeof(*sess_dev), GFP_KERNEL);
+ sess_dev = kzalloc_obj(*sess_dev, GFP_KERNEL);
if (!sess_dev)
return ERR_PTR(-ENOMEM);
@@ -441,7 +441,7 @@ static struct rnbd_srv_dev *rnbd_srv_init_srv_dev(struct block_device *bdev)
{
struct rnbd_srv_dev *dev;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/block/sunvdc.c b/drivers/block/sunvdc.c
index db1fe9772a4d..7cf8f8899892 100644
--- a/drivers/block/sunvdc.c
+++ b/drivers/block/sunvdc.c
@@ -992,7 +992,7 @@ static int vdc_port_probe(struct vio_dev *vdev, const struct vio_device_id *id)
goto err_out_release_mdesc;
}
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port) {
err = -ENOMEM;
goto err_out_release_mdesc;
diff --git a/drivers/block/swim.c b/drivers/block/swim.c
index 416015947ae6..3b015a9c752f 100644
--- a/drivers/block/swim.c
+++ b/drivers/block/swim.c
@@ -896,7 +896,7 @@ static int swim_probe(struct platform_device *dev)
/* set platform driver data */
- swd = kzalloc(sizeof(struct swim_priv), GFP_KERNEL);
+ swd = kzalloc_obj(struct swim_priv, GFP_KERNEL);
if (!swd) {
ret = -ENOMEM;
goto out_release_io;
diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c
index c13cda58a7c6..c47dc9814e36 100644
--- a/drivers/block/ublk_drv.c
+++ b/drivers/block/ublk_drv.c
@@ -710,7 +710,7 @@ static DEFINE_MUTEX(ublk_ctl_mutex);
static struct ublk_batch_fetch_cmd *
ublk_batch_alloc_fcmd(struct io_uring_cmd *cmd)
{
- struct ublk_batch_fetch_cmd *fcmd = kzalloc(sizeof(*fcmd), GFP_NOIO);
+ struct ublk_batch_fetch_cmd *fcmd = kzalloc_obj(*fcmd, GFP_NOIO);
if (fcmd) {
fcmd->cmd = cmd;
@@ -4610,7 +4610,7 @@ static int ublk_ctrl_add_dev(const struct ublksrv_ctrl_cmd *header)
goto out_unlock;
ret = -ENOMEM;
- ub = kzalloc(struct_size(ub, queues, info.nr_hw_queues), GFP_KERNEL);
+ ub = kzalloc_flex(*ub, queues, info.nr_hw_queues, GFP_KERNEL);
if (!ub)
goto out_unlock;
mutex_init(&ub->mutex);
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
index 357434bdae99..1ee1ebe693bf 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -168,7 +168,7 @@ static int virtblk_setup_discard_write_zeroes_erase(struct request *req, bool un
if (unmap)
flags |= VIRTIO_BLK_WRITE_ZEROES_FLAG_UNMAP;
- range = kmalloc_array(segments, sizeof(*range), GFP_ATOMIC);
+ range = kmalloc_objs(*range, segments, GFP_ATOMIC);
if (!range)
return -ENOMEM;
@@ -991,12 +991,12 @@ static int init_vq(struct virtio_blk *vblk)
vblk->io_queues[HCTX_TYPE_READ],
vblk->io_queues[HCTX_TYPE_POLL]);
- vblk->vqs = kmalloc_array(num_vqs, sizeof(*vblk->vqs), GFP_KERNEL);
+ vblk->vqs = kmalloc_objs(*vblk->vqs, num_vqs, GFP_KERNEL);
if (!vblk->vqs)
return -ENOMEM;
- vqs_info = kcalloc(num_vqs, sizeof(*vqs_info), GFP_KERNEL);
- vqs = kmalloc_array(num_vqs, sizeof(*vqs), GFP_KERNEL);
+ vqs_info = kzalloc_objs(*vqs_info, num_vqs, GFP_KERNEL);
+ vqs = kmalloc_objs(*vqs, num_vqs, GFP_KERNEL);
if (!vqs_info || !vqs) {
err = -ENOMEM;
goto out;
@@ -1455,7 +1455,7 @@ static int virtblk_probe(struct virtio_device *vdev)
goto out;
index = err;
- vdev->priv = vblk = kmalloc(sizeof(*vblk), GFP_KERNEL);
+ vdev->priv = vblk = kmalloc_obj(*vblk, GFP_KERNEL);
if (!vblk) {
err = -ENOMEM;
goto out_free_index;
diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
index a7c2b04ab943..bc665b8abd7b 100644
--- a/drivers/block/xen-blkback/blkback.c
+++ b/drivers/block/xen-blkback/blkback.c
@@ -846,8 +846,8 @@ static int xen_blkbk_map(struct xen_blkif_ring *ring,
* We are using persistent grants, the grant is
* not mapped but we might have room for it.
*/
- persistent_gnt = kmalloc(sizeof(struct persistent_gnt),
- GFP_KERNEL);
+ persistent_gnt = kmalloc_obj(struct persistent_gnt,
+ GFP_KERNEL);
if (!persistent_gnt) {
/*
* If we don't have enough memory to
diff --git a/drivers/block/xen-blkback/xenbus.c b/drivers/block/xen-blkback/xenbus.c
index 0621878940ae..448417097837 100644
--- a/drivers/block/xen-blkback/xenbus.c
+++ b/drivers/block/xen-blkback/xenbus.c
@@ -131,8 +131,8 @@ static int xen_blkif_alloc_rings(struct xen_blkif *blkif)
{
unsigned int r;
- blkif->rings = kcalloc(blkif->nr_rings, sizeof(struct xen_blkif_ring),
- GFP_KERNEL);
+ blkif->rings = kzalloc_objs(struct xen_blkif_ring, blkif->nr_rings,
+ GFP_KERNEL);
if (!blkif->rings)
return -ENOMEM;
@@ -628,8 +628,7 @@ static int xen_blkbk_probe(struct xenbus_device *dev,
const struct xenbus_device_id *id)
{
int err;
- struct backend_info *be = kzalloc(sizeof(struct backend_info),
- GFP_KERNEL);
+ struct backend_info *be = kzalloc_obj(struct backend_info, GFP_KERNEL);
/* match the pr_debug in xen_blkbk_remove */
pr_debug("%s %p %d\n", __func__, dev, dev->otherend_id);
@@ -1010,18 +1009,19 @@ static int read_per_ring_refs(struct xen_blkif_ring *ring, const char *dir)
err = -ENOMEM;
for (i = 0; i < nr_grefs * XEN_BLKIF_REQS_PER_PAGE; i++) {
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
goto fail;
list_add_tail(&req->free_list, &ring->pending_free);
for (j = 0; j < MAX_INDIRECT_SEGMENTS; j++) {
- req->segments[j] = kzalloc(sizeof(*req->segments[0]), GFP_KERNEL);
+ req->segments[j] = kzalloc_obj(*req->segments[0],
+ GFP_KERNEL);
if (!req->segments[j])
goto fail;
}
for (j = 0; j < MAX_INDIRECT_PAGES; j++) {
- req->indirect_pages[j] = kzalloc(sizeof(*req->indirect_pages[0]),
- GFP_KERNEL);
+ req->indirect_pages[j] = kzalloc_obj(*req->indirect_pages[0],
+ GFP_KERNEL);
if (!req->indirect_pages[j])
goto fail;
}
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c
index 04fc6b552c04..e8aec3857dd5 100644
--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
@@ -314,7 +314,7 @@ static int fill_grant_buffer(struct blkfront_ring_info *rinfo, int num)
int i = 0;
while (i < num) {
- gnt_list_entry = kzalloc(sizeof(struct grant), GFP_NOIO);
+ gnt_list_entry = kzalloc_obj(struct grant, GFP_NOIO);
if (!gnt_list_entry)
goto out_of_memory;
@@ -1980,7 +1980,7 @@ static int blkfront_probe(struct xenbus_device *dev,
}
kfree(type);
}
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info) {
xenbus_dev_fatal(dev, -ENOMEM, "allocating info structure");
return -ENOMEM;
@@ -2207,17 +2207,15 @@ static int blkfront_setup_indirect(struct blkfront_ring_info *rinfo)
for (i = 0; i < BLK_RING_SIZE(info); i++) {
rinfo->shadow[i].grants_used =
- kvcalloc(grants,
- sizeof(rinfo->shadow[i].grants_used[0]),
- GFP_KERNEL);
- rinfo->shadow[i].sg = kvcalloc(psegs,
- sizeof(rinfo->shadow[i].sg[0]),
- GFP_KERNEL);
+ kvzalloc_objs(rinfo->shadow[i].grants_used[0], grants,
+ GFP_KERNEL);
+ rinfo->shadow[i].sg = kvzalloc_objs(rinfo->shadow[i].sg[0],
+ psegs, GFP_KERNEL);
if (info->max_indirect_segments)
rinfo->shadow[i].indirect_grants =
- kvcalloc(INDIRECT_GREFS(grants),
- sizeof(rinfo->shadow[i].indirect_grants[0]),
- GFP_KERNEL);
+ kvzalloc_objs(rinfo->shadow[i].indirect_grants[0],
+ INDIRECT_GREFS(grants),
+ GFP_KERNEL);
if ((rinfo->shadow[i].grants_used == NULL) ||
(rinfo->shadow[i].sg == NULL) ||
(info->max_indirect_segments &&
diff --git a/drivers/block/z2ram.c b/drivers/block/z2ram.c
index 8c1c7f4211eb..e12abdec2647 100644
--- a/drivers/block/z2ram.c
+++ b/drivers/block/z2ram.c
@@ -187,8 +187,8 @@ static int z2_open(struct gendisk *disk, blk_mode_t mode)
(unsigned long)z_remap_nocache_nonser(paddr, size);
#endif
z2ram_map =
- kmalloc_array(size / Z2RAM_CHUNKSIZE,
- sizeof(z2ram_map[0]), GFP_KERNEL);
+ kmalloc_objs(z2ram_map[0], size / Z2RAM_CHUNKSIZE,
+ GFP_KERNEL);
if (z2ram_map == NULL) {
printk(KERN_ERR DEVICE_NAME
": cannot get mem for z2ram_map\n");
diff --git a/drivers/block/zloop.c b/drivers/block/zloop.c
index 8e334f5025fc..9da9855dd6e0 100644
--- a/drivers/block/zloop.c
+++ b/drivers/block/zloop.c
@@ -492,7 +492,7 @@ static void zloop_rw(struct zloop_cmd *cmd)
if (rq->bio != rq->biotail) {
struct bio_vec *bvec;
- cmd->bvec = kmalloc_array(nr_bvec, sizeof(*cmd->bvec), GFP_NOIO);
+ cmd->bvec = kmalloc_objs(*cmd->bvec, nr_bvec, GFP_NOIO);
if (!cmd->bvec) {
ret = -EIO;
goto unlock;
@@ -997,7 +997,7 @@ static int zloop_ctl_add(struct zloop_options *opts)
goto out;
}
- zlo = kvzalloc(struct_size(zlo, zones, nr_zones), GFP_KERNEL);
+ zlo = kvzalloc_flex(*zlo, zones, nr_zones, GFP_KERNEL);
if (!zlo) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/block/zram/backend_deflate.c b/drivers/block/zram/backend_deflate.c
index b75016e0e654..7dee3aacb2d8 100644
--- a/drivers/block/zram/backend_deflate.c
+++ b/drivers/block/zram/backend_deflate.c
@@ -54,7 +54,7 @@ static int deflate_create(struct zcomp_params *params, struct zcomp_ctx *ctx)
size_t sz;
int ret;
- zctx = kzalloc(sizeof(*zctx), GFP_KERNEL);
+ zctx = kzalloc_obj(*zctx, GFP_KERNEL);
if (!zctx)
return -ENOMEM;
diff --git a/drivers/block/zram/backend_lz4.c b/drivers/block/zram/backend_lz4.c
index daccd60857eb..3416fec9e982 100644
--- a/drivers/block/zram/backend_lz4.c
+++ b/drivers/block/zram/backend_lz4.c
@@ -41,7 +41,7 @@ static int lz4_create(struct zcomp_params *params, struct zcomp_ctx *ctx)
{
struct lz4_ctx *zctx;
- zctx = kzalloc(sizeof(*zctx), GFP_KERNEL);
+ zctx = kzalloc_obj(*zctx, GFP_KERNEL);
if (!zctx)
return -ENOMEM;
@@ -51,11 +51,11 @@ static int lz4_create(struct zcomp_params *params, struct zcomp_ctx *ctx)
if (!zctx->mem)
goto error;
} else {
- zctx->dstrm = kzalloc(sizeof(*zctx->dstrm), GFP_KERNEL);
+ zctx->dstrm = kzalloc_obj(*zctx->dstrm, GFP_KERNEL);
if (!zctx->dstrm)
goto error;
- zctx->cstrm = kzalloc(sizeof(*zctx->cstrm), GFP_KERNEL);
+ zctx->cstrm = kzalloc_obj(*zctx->cstrm, GFP_KERNEL);
if (!zctx->cstrm)
goto error;
}
diff --git a/drivers/block/zram/backend_lz4hc.c b/drivers/block/zram/backend_lz4hc.c
index 9e8a35dfa56d..fd94df9193d3 100644
--- a/drivers/block/zram/backend_lz4hc.c
+++ b/drivers/block/zram/backend_lz4hc.c
@@ -41,7 +41,7 @@ static int lz4hc_create(struct zcomp_params *params, struct zcomp_ctx *ctx)
{
struct lz4hc_ctx *zctx;
- zctx = kzalloc(sizeof(*zctx), GFP_KERNEL);
+ zctx = kzalloc_obj(*zctx, GFP_KERNEL);
if (!zctx)
return -ENOMEM;
@@ -51,11 +51,11 @@ static int lz4hc_create(struct zcomp_params *params, struct zcomp_ctx *ctx)
if (!zctx->mem)
goto error;
} else {
- zctx->dstrm = kzalloc(sizeof(*zctx->dstrm), GFP_KERNEL);
+ zctx->dstrm = kzalloc_obj(*zctx->dstrm, GFP_KERNEL);
if (!zctx->dstrm)
goto error;
- zctx->cstrm = kzalloc(sizeof(*zctx->cstrm), GFP_KERNEL);
+ zctx->cstrm = kzalloc_obj(*zctx->cstrm, GFP_KERNEL);
if (!zctx->cstrm)
goto error;
}
diff --git a/drivers/block/zram/backend_zstd.c b/drivers/block/zram/backend_zstd.c
index 81defb98ed09..d9303269b90d 100644
--- a/drivers/block/zram/backend_zstd.c
+++ b/drivers/block/zram/backend_zstd.c
@@ -53,7 +53,7 @@ static int zstd_setup_params(struct zcomp_params *params)
zstd_compression_parameters prm;
struct zstd_params *zp;
- zp = kzalloc(sizeof(*zp), GFP_KERNEL);
+ zp = kzalloc_obj(*zp, GFP_KERNEL);
if (!zp)
return -ENOMEM;
@@ -122,7 +122,7 @@ static int zstd_create(struct zcomp_params *params, struct zcomp_ctx *ctx)
zstd_parameters prm;
size_t sz;
- zctx = kzalloc(sizeof(*zctx), GFP_KERNEL);
+ zctx = kzalloc_obj(*zctx, GFP_KERNEL);
if (!zctx)
return -ENOMEM;
diff --git a/drivers/block/zram/zcomp.c b/drivers/block/zram/zcomp.c
index b1bd1daa0060..b53fb5fbc041 100644
--- a/drivers/block/zram/zcomp.c
+++ b/drivers/block/zram/zcomp.c
@@ -238,7 +238,7 @@ struct zcomp *zcomp_create(const char *alg, struct zcomp_params *params)
*/
BUILD_BUG_ON(ARRAY_SIZE(backends) <= 1);
- comp = kzalloc(sizeof(struct zcomp), GFP_KERNEL);
+ comp = kzalloc_obj(struct zcomp, GFP_KERNEL);
if (!comp)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
index 61d3e2c74901..3cc82b88b07e 100644
--- a/drivers/block/zram/zram_drv.c
+++ b/drivers/block/zram/zram_drv.c
@@ -250,7 +250,7 @@ static struct zram_pp_ctl *init_pp_ctl(void)
struct zram_pp_ctl *ctl;
u32 idx;
- ctl = kmalloc(sizeof(*ctl), GFP_KERNEL);
+ ctl = kmalloc_obj(*ctl, GFP_KERNEL);
if (!ctl)
return NULL;
@@ -297,7 +297,7 @@ static bool place_pp_slot(struct zram *zram, struct zram_pp_ctl *ctl,
struct zram_pp_slot *pps;
u32 bid;
- pps = kmalloc(sizeof(*pps), GFP_NOIO | __GFP_NOWARN);
+ pps = kmalloc_obj(*pps, GFP_NOIO | __GFP_NOWARN);
if (!pps)
return false;
@@ -855,7 +855,7 @@ static struct zram_wb_ctl *init_wb_ctl(struct zram *zram)
struct zram_wb_ctl *wb_ctl;
int i;
- wb_ctl = kmalloc(sizeof(*wb_ctl), GFP_KERNEL);
+ wb_ctl = kmalloc_obj(*wb_ctl, GFP_KERNEL);
if (!wb_ctl)
return NULL;
@@ -875,7 +875,7 @@ static struct zram_wb_ctl *init_wb_ctl(struct zram *zram)
* writeback can still proceed, even if there is only one
* request on the idle list.
*/
- req = kzalloc(sizeof(*req), GFP_KERNEL | __GFP_NOWARN);
+ req = kzalloc_obj(*req, GFP_KERNEL | __GFP_NOWARN);
if (!req)
break;
@@ -1452,7 +1452,7 @@ static void read_from_bdev_async(struct zram *zram, struct page *page,
struct zram_rb_req *req;
struct bio *bio;
- req = kmalloc(sizeof(*req), GFP_NOIO);
+ req = kmalloc_obj(*req, GFP_NOIO);
if (!req)
return;
@@ -3079,7 +3079,7 @@ static int zram_add(void)
struct zram *zram;
int ret, device_id;
- zram = kzalloc(sizeof(struct zram), GFP_KERNEL);
+ zram = kzalloc_obj(struct zram, GFP_KERNEL);
if (!zram)
return -ENOMEM;
diff --git a/drivers/bluetooth/bpa10x.c b/drivers/bluetooth/bpa10x.c
index e305d04aac9d..af7cd7b217ca 100644
--- a/drivers/bluetooth/bpa10x.c
+++ b/drivers/bluetooth/bpa10x.c
@@ -284,7 +284,7 @@ static int bpa10x_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
switch (hci_skb_pkt_type(skb)) {
case HCI_COMMAND_PKT:
- dr = kmalloc(sizeof(*dr), GFP_KERNEL);
+ dr = kmalloc_obj(*dr, GFP_KERNEL);
if (!dr) {
usb_free_urb(urb);
return -ENOMEM;
diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c
index 9d29ab811f80..b810c748f4d5 100644
--- a/drivers/bluetooth/btintel.c
+++ b/drivers/bluetooth/btintel.c
@@ -871,7 +871,7 @@ struct regmap *btintel_regmap_init(struct hci_dev *hdev, u16 opcode_read,
bt_dev_info(hdev, "regmap: Init R%x-W%x region", opcode_read,
opcode_write);
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/bluetooth/btintel_pcie.c b/drivers/bluetooth/btintel_pcie.c
index eaf5de46a702..54a3705e9063 100644
--- a/drivers/bluetooth/btintel_pcie.c
+++ b/drivers/bluetooth/btintel_pcie.c
@@ -1665,7 +1665,7 @@ static int btintel_pcie_setup_txq_bufs(struct btintel_pcie_data *data,
struct data_buf *buf;
/* Allocate the same number of buffers as the descriptor */
- txq->bufs = kmalloc_array(txq->count, sizeof(*buf), GFP_KERNEL);
+ txq->bufs = kmalloc_objs(*buf, txq->count, GFP_KERNEL);
if (!txq->bufs)
return -ENOMEM;
@@ -1709,7 +1709,7 @@ static int btintel_pcie_setup_rxq_bufs(struct btintel_pcie_data *data,
struct data_buf *buf;
/* Allocate the same number of buffers as the descriptor */
- rxq->bufs = kmalloc_array(rxq->count, sizeof(*buf), GFP_KERNEL);
+ rxq->bufs = kmalloc_objs(*buf, rxq->count, GFP_KERNEL);
if (!rxq->bufs)
return -ENOMEM;
@@ -2191,7 +2191,7 @@ btintel_pcie_get_recovery(struct pci_dev *pdev, struct device *dev)
return data;
}
- data = kzalloc(struct_size(data, name, name_len), GFP_ATOMIC);
+ data = kzalloc_flex(*data, name, name_len, GFP_ATOMIC);
if (!data)
return NULL;
@@ -2306,7 +2306,7 @@ static void btintel_pcie_reset(struct hci_dev *hdev)
if (test_and_set_bit(BTINTEL_PCIE_RECOVERY_IN_PROGRESS, &data->flags))
return;
- removal = kzalloc(sizeof(*removal), GFP_ATOMIC);
+ removal = kzalloc_obj(*removal, GFP_ATOMIC);
if (!removal)
return;
diff --git a/drivers/bluetooth/btmrvl_debugfs.c b/drivers/bluetooth/btmrvl_debugfs.c
index 32329a2e526f..3ffb54501b11 100644
--- a/drivers/bluetooth/btmrvl_debugfs.c
+++ b/drivers/bluetooth/btmrvl_debugfs.c
@@ -144,7 +144,7 @@ void btmrvl_debugfs_init(struct hci_dev *hdev)
if (!hdev->debugfs)
return;
- dbg = kzalloc(sizeof(*dbg), GFP_KERNEL);
+ dbg = kzalloc_obj(*dbg, GFP_KERNEL);
priv->debugfs_data = dbg;
if (!dbg) {
diff --git a/drivers/bluetooth/btmrvl_main.c b/drivers/bluetooth/btmrvl_main.c
index e26b07a9387d..78be98c029bf 100644
--- a/drivers/bluetooth/btmrvl_main.c
+++ b/drivers/bluetooth/btmrvl_main.c
@@ -710,13 +710,13 @@ struct btmrvl_private *btmrvl_add_card(void *card)
{
struct btmrvl_private *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
BT_ERR("Can not allocate priv");
goto err_priv;
}
- priv->adapter = kzalloc(sizeof(*priv->adapter), GFP_KERNEL);
+ priv->adapter = kzalloc_obj(*priv->adapter, GFP_KERNEL);
if (!priv->adapter) {
BT_ERR("Allocate buffer for btmrvl_adapter failed!");
goto err_adapter;
diff --git a/drivers/bluetooth/btmtk.c b/drivers/bluetooth/btmtk.c
index a8c520dc09e1..9e75e06607b4 100644
--- a/drivers/bluetooth/btmtk.c
+++ b/drivers/bluetooth/btmtk.c
@@ -537,7 +537,7 @@ static int btmtk_usb_submit_wmt_recv_urb(struct hci_dev *hdev)
if (!urb)
return -ENOMEM;
- dr = kmalloc(sizeof(*dr), GFP_KERNEL);
+ dr = kmalloc_obj(*dr, GFP_KERNEL);
if (!dr) {
usb_free_urb(urb);
return -ENOMEM;
diff --git a/drivers/bluetooth/btrsi.c b/drivers/bluetooth/btrsi.c
index 6c1f584c8a33..9710655472fe 100644
--- a/drivers/bluetooth/btrsi.c
+++ b/drivers/bluetooth/btrsi.c
@@ -112,7 +112,7 @@ static int rsi_hci_attach(void *priv, struct rsi_proto_ops *ops)
struct hci_dev *hdev;
int err = 0;
- h_adapter = kzalloc(sizeof(*h_adapter), GFP_KERNEL);
+ h_adapter = kzalloc_obj(*h_adapter, GFP_KERNEL);
if (!h_adapter)
return -ENOMEM;
diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c
index 5603b282f9bc..d8a29e8ff524 100644
--- a/drivers/bluetooth/btrtl.c
+++ b/drivers/bluetooth/btrtl.c
@@ -524,7 +524,7 @@ static int btrtl_parse_section(struct hci_dev *hdev,
break;
}
- subsec = kzalloc(sizeof(*subsec), GFP_KERNEL);
+ subsec = kzalloc_obj(*subsec, GFP_KERNEL);
if (!subsec)
return -ENOMEM;
subsec->opcode = opcode;
@@ -828,7 +828,7 @@ static int rtl_download_firmware(struct hci_dev *hdev,
struct sk_buff *skb;
struct hci_rp_read_local_version *rp;
- dl_cmd = kmalloc(sizeof(*dl_cmd), GFP_KERNEL);
+ dl_cmd = kmalloc_obj(*dl_cmd, GFP_KERNEL);
if (!dl_cmd)
return -ENOMEM;
@@ -1077,7 +1077,7 @@ struct btrtl_device_info *btrtl_initialize(struct hci_dev *hdev,
u8 key_id;
u8 reg_val[2];
- btrtl_dev = kzalloc(sizeof(*btrtl_dev), GFP_KERNEL);
+ btrtl_dev = kzalloc_obj(*btrtl_dev, GFP_KERNEL);
if (!btrtl_dev) {
ret = -ENOMEM;
goto err_alloc;
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index fcec8e589e81..21fd5e7914f6 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -2071,7 +2071,7 @@ static struct urb *alloc_ctrl_urb(struct hci_dev *hdev, struct sk_buff *skb)
if (!urb)
return ERR_PTR(-ENOMEM);
- dr = kmalloc(sizeof(*dr), GFP_KERNEL);
+ dr = kmalloc_obj(*dr, GFP_KERNEL);
if (!dr) {
usb_free_urb(urb);
return ERR_PTR(-ENOMEM);
@@ -4059,7 +4059,7 @@ static int btusb_probe(struct usb_interface *intf,
return -ENODEV;
}
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/bluetooth/hci_ag6xx.c b/drivers/bluetooth/hci_ag6xx.c
index 94588676510f..1ee31387c0be 100644
--- a/drivers/bluetooth/hci_ag6xx.c
+++ b/drivers/bluetooth/hci_ag6xx.c
@@ -36,7 +36,7 @@ static int ag6xx_open(struct hci_uart *hu)
BT_DBG("hu %p", hu);
- ag6xx = kzalloc(sizeof(*ag6xx), GFP_KERNEL);
+ ag6xx = kzalloc_obj(*ag6xx, GFP_KERNEL);
if (!ag6xx)
return -ENOMEM;
diff --git a/drivers/bluetooth/hci_aml.c b/drivers/bluetooth/hci_aml.c
index 4981c82d634d..0d874aaca316 100644
--- a/drivers/bluetooth/hci_aml.c
+++ b/drivers/bluetooth/hci_aml.c
@@ -541,7 +541,7 @@ static int aml_open(struct hci_uart *hu)
return -EOPNOTSUPP;
}
- aml_data = kzalloc(sizeof(*aml_data), GFP_KERNEL);
+ aml_data = kzalloc_obj(*aml_data, GFP_KERNEL);
if (!aml_data)
return -ENOMEM;
diff --git a/drivers/bluetooth/hci_ath.c b/drivers/bluetooth/hci_ath.c
index 8d2b5e7f0d6a..f8d794ea81ef 100644
--- a/drivers/bluetooth/hci_ath.c
+++ b/drivers/bluetooth/hci_ath.c
@@ -101,7 +101,7 @@ static int ath_open(struct hci_uart *hu)
if (!hci_uart_has_flow_control(hu))
return -EOPNOTSUPP;
- ath = kzalloc(sizeof(*ath), GFP_KERNEL);
+ ath = kzalloc_obj(*ath, GFP_KERNEL);
if (!ath)
return -ENOMEM;
diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c
index 9286a5f40f55..97068809a713 100644
--- a/drivers/bluetooth/hci_bcm.c
+++ b/drivers/bluetooth/hci_bcm.c
@@ -448,7 +448,7 @@ static int bcm_open(struct hci_uart *hu)
if (!hci_uart_has_flow_control(hu))
return -EOPNOTSUPP;
- bcm = kzalloc(sizeof(*bcm), GFP_KERNEL);
+ bcm = kzalloc_obj(*bcm, GFP_KERNEL);
if (!bcm)
return -ENOMEM;
diff --git a/drivers/bluetooth/hci_bcsp.c b/drivers/bluetooth/hci_bcsp.c
index 591abe6d63dd..09416cc468d4 100644
--- a/drivers/bluetooth/hci_bcsp.c
+++ b/drivers/bluetooth/hci_bcsp.c
@@ -716,7 +716,7 @@ static int bcsp_open(struct hci_uart *hu)
BT_DBG("hu %p", hu);
- bcsp = kzalloc(sizeof(*bcsp), GFP_KERNEL);
+ bcsp = kzalloc_obj(*bcsp, GFP_KERNEL);
if (!bcsp)
return -ENOMEM;
diff --git a/drivers/bluetooth/hci_h4.c b/drivers/bluetooth/hci_h4.c
index ec017df8572c..2ee2eef954e0 100644
--- a/drivers/bluetooth/hci_h4.c
+++ b/drivers/bluetooth/hci_h4.c
@@ -44,7 +44,7 @@ static int h4_open(struct hci_uart *hu)
BT_DBG("hu %p", hu);
- h4 = kzalloc(sizeof(*h4), GFP_KERNEL);
+ h4 = kzalloc_obj(*h4, GFP_KERNEL);
if (!h4)
return -ENOMEM;
diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c
index 96e20a66ecd1..c31403acb9df 100644
--- a/drivers/bluetooth/hci_h5.c
+++ b/drivers/bluetooth/hci_h5.c
@@ -222,7 +222,7 @@ static int h5_open(struct hci_uart *hu)
if (hu->serdev) {
h5 = serdev_device_get_drvdata(hu->serdev);
} else {
- h5 = kzalloc(sizeof(*h5), GFP_KERNEL);
+ h5 = kzalloc_obj(*h5, GFP_KERNEL);
if (!h5)
return -ENOMEM;
}
@@ -1069,7 +1069,7 @@ static int h5_btrtl_resume(struct h5 *h5)
if (test_bit(H5_WAKEUP_DISABLE, &h5->flags)) {
struct h5_btrtl_reprobe *reprobe;
- reprobe = kzalloc(sizeof(*reprobe), GFP_KERNEL);
+ reprobe = kzalloc_obj(*reprobe, GFP_KERNEL);
if (!reprobe)
return -ENOMEM;
diff --git a/drivers/bluetooth/hci_intel.c b/drivers/bluetooth/hci_intel.c
index f7570c2eaa46..989e87f24273 100644
--- a/drivers/bluetooth/hci_intel.c
+++ b/drivers/bluetooth/hci_intel.c
@@ -384,7 +384,7 @@ static int intel_open(struct hci_uart *hu)
if (!hci_uart_has_flow_control(hu))
return -EOPNOTSUPP;
- intel = kzalloc(sizeof(*intel), GFP_KERNEL);
+ intel = kzalloc_obj(*intel, GFP_KERNEL);
if (!intel)
return -ENOMEM;
diff --git a/drivers/bluetooth/hci_ldisc.c b/drivers/bluetooth/hci_ldisc.c
index 2b28515de92c..7638bf6d6b09 100644
--- a/drivers/bluetooth/hci_ldisc.c
+++ b/drivers/bluetooth/hci_ldisc.c
@@ -491,7 +491,7 @@ static int hci_uart_tty_open(struct tty_struct *tty)
if (tty->ops->write == NULL)
return -EOPNOTSUPP;
- hu = kzalloc(sizeof(*hu), GFP_KERNEL);
+ hu = kzalloc_obj(*hu, GFP_KERNEL);
if (!hu) {
BT_ERR("Can't allocate control structure");
return -ENFILE;
diff --git a/drivers/bluetooth/hci_ll.c b/drivers/bluetooth/hci_ll.c
index 6f4e25917b86..9c3b24d90462 100644
--- a/drivers/bluetooth/hci_ll.c
+++ b/drivers/bluetooth/hci_ll.c
@@ -114,7 +114,7 @@ static int ll_open(struct hci_uart *hu)
BT_DBG("hu %p", hu);
- ll = kzalloc(sizeof(*ll), GFP_KERNEL);
+ ll = kzalloc_obj(*ll, GFP_KERNEL);
if (!ll)
return -ENOMEM;
diff --git a/drivers/bluetooth/hci_mrvl.c b/drivers/bluetooth/hci_mrvl.c
index 8767522ec4c6..8e8a283e4cb9 100644
--- a/drivers/bluetooth/hci_mrvl.c
+++ b/drivers/bluetooth/hci_mrvl.c
@@ -64,7 +64,7 @@ static int mrvl_open(struct hci_uart *hu)
if (!hci_uart_has_flow_control(hu))
return -EOPNOTSUPP;
- mrvl = kzalloc(sizeof(*mrvl), GFP_KERNEL);
+ mrvl = kzalloc_obj(*mrvl, GFP_KERNEL);
if (!mrvl)
return -ENOMEM;
diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index c511546f793e..cac861991b52 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -585,7 +585,7 @@ static int qca_open(struct hci_uart *hu)
if (!hci_uart_has_flow_control(hu))
return -EOPNOTSUPP;
- qca = kzalloc(sizeof(*qca), GFP_KERNEL);
+ qca = kzalloc_obj(*qca, GFP_KERNEL);
if (!qca)
return -ENOMEM;
@@ -1057,7 +1057,7 @@ static void qca_controller_memdump(struct work_struct *work)
}
if (!qca_memdump) {
- qca_memdump = kzalloc(sizeof(*qca_memdump), GFP_ATOMIC);
+ qca_memdump = kzalloc_obj(*qca_memdump, GFP_ATOMIC);
if (!qca_memdump) {
mutex_unlock(&qca->hci_memdump_lock);
return;
diff --git a/drivers/bluetooth/hci_vhci.c b/drivers/bluetooth/hci_vhci.c
index 2fef08254d78..6e653bb8efcc 100644
--- a/drivers/bluetooth/hci_vhci.c
+++ b/drivers/bluetooth/hci_vhci.c
@@ -640,7 +640,7 @@ static int vhci_open(struct inode *inode, struct file *file)
{
struct vhci_data *data;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/bluetooth/virtio_bt.c b/drivers/bluetooth/virtio_bt.c
index 6f1a37e85c6a..bc33d2755ced 100644
--- a/drivers/bluetooth/virtio_bt.c
+++ b/drivers/bluetooth/virtio_bt.c
@@ -275,7 +275,7 @@ static int virtbt_probe(struct virtio_device *vdev)
return -EINVAL;
}
- vbt = kzalloc(sizeof(*vbt), GFP_KERNEL);
+ vbt = kzalloc_obj(*vbt, GFP_KERNEL);
if (!vbt)
return -ENOMEM;
diff --git a/drivers/bus/arm-cci.c b/drivers/bus/arm-cci.c
index b8184a903583..bc7698cbf5e1 100644
--- a/drivers/bus/arm-cci.c
+++ b/drivers/bus/arm-cci.c
@@ -451,7 +451,7 @@ static int cci_probe_ports(struct device_node *np)
nb_cci_ports = cci_config->nb_ace + cci_config->nb_ace_lite;
- ports = kcalloc(nb_cci_ports, sizeof(*ports), GFP_KERNEL);
+ ports = kzalloc_objs(*ports, nb_cci_ports, GFP_KERNEL);
if (!ports)
return -ENOMEM;
diff --git a/drivers/bus/fsl-mc/fsl-mc-bus.c b/drivers/bus/fsl-mc/fsl-mc-bus.c
index 290ce13bcb09..3e12cde4443b 100644
--- a/drivers/bus/fsl-mc/fsl-mc-bus.c
+++ b/drivers/bus/fsl-mc/fsl-mc-bus.c
@@ -672,8 +672,7 @@ static int fsl_mc_device_get_mmio_regions(struct fsl_mc_device *mc_dev,
return -EINVAL;
}
- regions = kmalloc_array(obj_desc->region_count,
- sizeof(regions[0]), GFP_KERNEL);
+ regions = kmalloc_objs(regions[0], obj_desc->region_count, GFP_KERNEL);
if (!regions)
return -ENOMEM;
@@ -788,7 +787,7 @@ int fsl_mc_device_add(struct fsl_mc_obj_desc *obj_desc,
/*
* Allocate an MC bus device object:
*/
- mc_bus = kzalloc(sizeof(*mc_bus), GFP_KERNEL);
+ mc_bus = kzalloc_obj(*mc_bus, GFP_KERNEL);
if (!mc_bus)
return -ENOMEM;
@@ -798,7 +797,7 @@ int fsl_mc_device_add(struct fsl_mc_obj_desc *obj_desc,
/*
* Allocate a regular fsl_mc_device object:
*/
- mc_dev = kzalloc(sizeof(*mc_dev), GFP_KERNEL);
+ mc_dev = kzalloc_obj(*mc_dev, GFP_KERNEL);
if (!mc_dev)
return -ENOMEM;
}
diff --git a/drivers/bus/fsl-mc/fsl-mc-uapi.c b/drivers/bus/fsl-mc/fsl-mc-uapi.c
index 823969e4159c..db20ea5ade01 100644
--- a/drivers/bus/fsl-mc/fsl-mc-uapi.c
+++ b/drivers/bus/fsl-mc/fsl-mc-uapi.c
@@ -483,7 +483,7 @@ static int fsl_mc_uapi_dev_open(struct inode *inode, struct file *filep)
struct fsl_mc_bus *mc_bus;
int error;
- priv_data = kzalloc(sizeof(*priv_data), GFP_KERNEL);
+ priv_data = kzalloc_obj(*priv_data, GFP_KERNEL);
if (!priv_data)
return -ENOMEM;
diff --git a/drivers/bus/mhi/ep/main.c b/drivers/bus/mhi/ep/main.c
index 35922e7a24c1..48f76438a138 100644
--- a/drivers/bus/mhi/ep/main.c
+++ b/drivers/bus/mhi/ep/main.c
@@ -963,7 +963,7 @@ static void mhi_ep_process_ctrl_interrupt(struct mhi_ep_cntrl *mhi_cntrl,
{
struct mhi_ep_state_transition *item;
- item = kzalloc(sizeof(*item), GFP_ATOMIC);
+ item = kzalloc_obj(*item, GFP_ATOMIC);
if (!item)
return;
@@ -1136,9 +1136,8 @@ int mhi_ep_power_up(struct mhi_ep_cntrl *mhi_cntrl)
mhi_ep_mmio_mask_interrupts(mhi_cntrl);
mhi_ep_mmio_init(mhi_cntrl);
- mhi_cntrl->mhi_event = kcalloc(mhi_cntrl->event_rings,
- sizeof(*mhi_cntrl->mhi_event),
- GFP_KERNEL);
+ mhi_cntrl->mhi_event = kzalloc_objs(*mhi_cntrl->mhi_event,
+ mhi_cntrl->event_rings, GFP_KERNEL);
if (!mhi_cntrl->mhi_event)
return -ENOMEM;
@@ -1276,7 +1275,7 @@ static struct mhi_ep_device *mhi_ep_alloc_device(struct mhi_ep_cntrl *mhi_cntrl,
struct mhi_ep_device *mhi_dev;
struct device *dev;
- mhi_dev = kzalloc(sizeof(*mhi_dev), GFP_KERNEL);
+ mhi_dev = kzalloc_obj(*mhi_dev, GFP_KERNEL);
if (!mhi_dev)
return ERR_PTR(-ENOMEM);
@@ -1400,8 +1399,8 @@ static int mhi_ep_chan_init(struct mhi_ep_cntrl *mhi_cntrl,
* Allocate max_channels supported by the MHI endpoint and populate
* only the defined channels
*/
- mhi_cntrl->mhi_chan = kcalloc(mhi_cntrl->max_chan, sizeof(*mhi_cntrl->mhi_chan),
- GFP_KERNEL);
+ mhi_cntrl->mhi_chan = kzalloc_objs(*mhi_cntrl->mhi_chan,
+ mhi_cntrl->max_chan, GFP_KERNEL);
if (!mhi_cntrl->mhi_chan)
return -ENOMEM;
@@ -1460,7 +1459,8 @@ int mhi_ep_register_controller(struct mhi_ep_cntrl *mhi_cntrl,
if (ret)
return ret;
- mhi_cntrl->mhi_cmd = kcalloc(NR_OF_CMD_RINGS, sizeof(*mhi_cntrl->mhi_cmd), GFP_KERNEL);
+ mhi_cntrl->mhi_cmd = kzalloc_objs(*mhi_cntrl->mhi_cmd, NR_OF_CMD_RINGS,
+ GFP_KERNEL);
if (!mhi_cntrl->mhi_cmd) {
ret = -ENOMEM;
goto err_free_ch;
diff --git a/drivers/bus/mhi/ep/ring.c b/drivers/bus/mhi/ep/ring.c
index 26357ee68dee..ee5b7f4755c5 100644
--- a/drivers/bus/mhi/ep/ring.c
+++ b/drivers/bus/mhi/ep/ring.c
@@ -205,7 +205,8 @@ int mhi_ep_ring_start(struct mhi_ep_cntrl *mhi_cntrl, struct mhi_ep_ring *ring,
ring->wr_offset = mhi_ep_ring_addr2offset(ring, le64_to_cpu(val));
/* Allocate ring cache memory for holding the copy of host ring */
- ring->ring_cache = kcalloc(ring->ring_size, sizeof(struct mhi_ring_element), GFP_KERNEL);
+ ring->ring_cache = kzalloc_objs(struct mhi_ring_element,
+ ring->ring_size, GFP_KERNEL);
if (!ring->ring_cache)
return -ENOMEM;
diff --git a/drivers/bus/mhi/host/boot.c b/drivers/bus/mhi/host/boot.c
index c76db35bc29a..b295992476e4 100644
--- a/drivers/bus/mhi/host/boot.c
+++ b/drivers/bus/mhi/host/boot.c
@@ -333,12 +333,12 @@ static int mhi_alloc_bhi_buffer(struct mhi_controller *mhi_cntrl,
struct image_info *img_info;
struct mhi_buf *mhi_buf;
- img_info = kzalloc(sizeof(*img_info), GFP_KERNEL);
+ img_info = kzalloc_obj(*img_info, GFP_KERNEL);
if (!img_info)
return -ENOMEM;
/* Allocate memory for entry */
- img_info->mhi_buf = kzalloc(sizeof(*img_info->mhi_buf), GFP_KERNEL);
+ img_info->mhi_buf = kzalloc_obj(*img_info->mhi_buf, GFP_KERNEL);
if (!img_info->mhi_buf)
goto error_alloc_mhi_buf;
@@ -375,13 +375,13 @@ int mhi_alloc_bhie_table(struct mhi_controller *mhi_cntrl,
struct image_info *img_info;
struct mhi_buf *mhi_buf;
- img_info = kzalloc(sizeof(*img_info), GFP_KERNEL);
+ img_info = kzalloc_obj(*img_info, GFP_KERNEL);
if (!img_info)
return -ENOMEM;
/* Allocate memory for entries */
- img_info->mhi_buf = kcalloc(segments, sizeof(*img_info->mhi_buf),
- GFP_KERNEL);
+ img_info->mhi_buf = kzalloc_objs(*img_info->mhi_buf, segments,
+ GFP_KERNEL);
if (!img_info->mhi_buf)
goto error_alloc_mhi_buf;
diff --git a/drivers/bus/mhi/host/init.c b/drivers/bus/mhi/host/init.c
index c47f66833cda..fa62f8219510 100644
--- a/drivers/bus/mhi/host/init.c
+++ b/drivers/bus/mhi/host/init.c
@@ -313,7 +313,7 @@ static int mhi_init_dev_ctxt(struct mhi_controller *mhi_cntrl)
atomic_set(&mhi_cntrl->dev_wake, 0);
atomic_set(&mhi_cntrl->pending_pkts, 0);
- mhi_ctxt = kzalloc(sizeof(*mhi_ctxt), GFP_KERNEL);
+ mhi_ctxt = kzalloc_obj(*mhi_ctxt, GFP_KERNEL);
if (!mhi_ctxt)
return -ENOMEM;
@@ -699,8 +699,8 @@ static int parse_ev_cfg(struct mhi_controller *mhi_cntrl,
num = config->num_events;
mhi_cntrl->total_ev_rings = num;
- mhi_cntrl->mhi_event = kcalloc(num, sizeof(*mhi_cntrl->mhi_event),
- GFP_KERNEL);
+ mhi_cntrl->mhi_event = kzalloc_objs(*mhi_cntrl->mhi_event, num,
+ GFP_KERNEL);
if (!mhi_cntrl->mhi_event)
return -ENOMEM;
@@ -938,8 +938,8 @@ int mhi_register_controller(struct mhi_controller *mhi_cntrl,
if (ret)
return -EINVAL;
- mhi_cntrl->mhi_cmd = kcalloc(NR_OF_CMD_RINGS,
- sizeof(*mhi_cntrl->mhi_cmd), GFP_KERNEL);
+ mhi_cntrl->mhi_cmd = kzalloc_objs(*mhi_cntrl->mhi_cmd, NR_OF_CMD_RINGS,
+ GFP_KERNEL);
if (!mhi_cntrl->mhi_cmd) {
ret = -ENOMEM;
goto err_free_event;
@@ -1095,7 +1095,7 @@ struct mhi_controller *mhi_alloc_controller(void)
{
struct mhi_controller *mhi_cntrl;
- mhi_cntrl = kzalloc(sizeof(*mhi_cntrl), GFP_KERNEL);
+ mhi_cntrl = kzalloc_obj(*mhi_cntrl, GFP_KERNEL);
return mhi_cntrl;
}
@@ -1232,7 +1232,7 @@ struct mhi_device *mhi_alloc_device(struct mhi_controller *mhi_cntrl)
struct mhi_device *mhi_dev;
struct device *dev;
- mhi_dev = kzalloc(sizeof(*mhi_dev), GFP_KERNEL);
+ mhi_dev = kzalloc_obj(*mhi_dev, GFP_KERNEL);
if (!mhi_dev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/bus/mhi/host/pm.c b/drivers/bus/mhi/host/pm.c
index b4ef115189b5..f799503c8f36 100644
--- a/drivers/bus/mhi/host/pm.c
+++ b/drivers/bus/mhi/host/pm.c
@@ -764,7 +764,7 @@ static void mhi_pm_sys_error_transition(struct mhi_controller *mhi_cntrl)
int mhi_queue_state_transition(struct mhi_controller *mhi_cntrl,
enum dev_st_transition state)
{
- struct state_transition *item = kmalloc(sizeof(*item), GFP_ATOMIC);
+ struct state_transition *item = kmalloc_obj(*item, GFP_ATOMIC);
unsigned long flags;
if (!item)
diff --git a/drivers/bus/mips_cdmm.c b/drivers/bus/mips_cdmm.c
index 12dd32fd0b62..7d43ecc9d2fa 100644
--- a/drivers/bus/mips_cdmm.c
+++ b/drivers/bus/mips_cdmm.c
@@ -306,7 +306,7 @@ static struct mips_cdmm_bus *mips_cdmm_get_bus(void)
bus = *bus_p;
/* Attempt allocation if NULL */
if (unlikely(!bus)) {
- bus = kzalloc(sizeof(*bus), GFP_ATOMIC);
+ bus = kzalloc_obj(*bus, GFP_ATOMIC);
if (unlikely(!bus))
bus = ERR_PTR(-ENOMEM);
else
@@ -541,7 +541,7 @@ static void mips_cdmm_bus_discover(struct mips_cdmm_bus *bus)
(drb + size + 1) * CDMM_DRB_SIZE - 1,
type, rev);
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
break;
diff --git a/drivers/bus/moxtet.c b/drivers/bus/moxtet.c
index 5a53bfab470a..e7caa6b63318 100644
--- a/drivers/bus/moxtet.c
+++ b/drivers/bus/moxtet.c
@@ -145,7 +145,7 @@ moxtet_alloc_device(struct moxtet *moxtet)
if (!get_device(moxtet->dev))
return NULL;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
put_device(moxtet->dev);
return NULL;
diff --git a/drivers/bus/omap_l3_smx.c b/drivers/bus/omap_l3_smx.c
index 7f0a8f8b3f4c..63b64da191b1 100644
--- a/drivers/bus/omap_l3_smx.c
+++ b/drivers/bus/omap_l3_smx.c
@@ -215,7 +215,7 @@ static int omap3_l3_probe(struct platform_device *pdev)
struct resource *res;
int ret;
- l3 = kzalloc(sizeof(*l3), GFP_KERNEL);
+ l3 = kzalloc_obj(*l3, GFP_KERNEL);
if (!l3)
return -ENOMEM;
diff --git a/drivers/bus/stm32_firewall.c b/drivers/bus/stm32_firewall.c
index 2fc9761dadec..aa282083c8cd 100644
--- a/drivers/bus/stm32_firewall.c
+++ b/drivers/bus/stm32_firewall.c
@@ -260,7 +260,7 @@ int stm32_firewall_populate_bus(struct stm32_firewall_controller *firewall_contr
return -EINVAL;
}
- firewalls = kcalloc(len, sizeof(*firewalls), GFP_KERNEL);
+ firewalls = kzalloc_objs(*firewalls, len, GFP_KERNEL);
if (!firewalls) {
of_node_put(child);
return -ENOMEM;
diff --git a/drivers/bus/sunxi-rsb.c b/drivers/bus/sunxi-rsb.c
index 82735c58be11..df9c0a0adfbb 100644
--- a/drivers/bus/sunxi-rsb.c
+++ b/drivers/bus/sunxi-rsb.c
@@ -205,7 +205,7 @@ static struct sunxi_rsb_device *sunxi_rsb_device_create(struct sunxi_rsb *rsb,
int err;
struct sunxi_rsb_device *rdev;
- rdev = kzalloc(sizeof(*rdev), GFP_KERNEL);
+ rdev = kzalloc_obj(*rdev, GFP_KERNEL);
if (!rdev)
return ERR_PTR(-ENOMEM);
@@ -477,7 +477,7 @@ static struct sunxi_rsb_ctx *regmap_sunxi_rsb_init_ctx(struct sunxi_rsb_device *
return ERR_PTR(-EINVAL);
}
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
index 610354ce7f8f..931948d05a03 100644
--- a/drivers/bus/ti-sysc.c
+++ b/drivers/bus/ti-sysc.c
@@ -354,7 +354,7 @@ static int sysc_add_named_clock_from_child(struct sysc *ddata,
* limit for clk_get(). If cl ever needs to be freed, it should be done
* with clkdev_drop().
*/
- cl = kzalloc(sizeof(*cl), GFP_KERNEL);
+ cl = kzalloc_obj(*cl, GFP_KERNEL);
if (!cl)
return -ENOMEM;
@@ -2470,7 +2470,7 @@ static void sysc_add_restored(struct sysc *ddata)
{
struct sysc_module *restored_module;
- restored_module = kzalloc(sizeof(*restored_module), GFP_KERNEL);
+ restored_module = kzalloc_obj(*restored_module, GFP_KERNEL);
if (!restored_module)
return;
@@ -2953,7 +2953,7 @@ static int sysc_add_disabled(unsigned long base)
{
struct sysc_address *disabled_module;
- disabled_module = kzalloc(sizeof(*disabled_module), GFP_KERNEL);
+ disabled_module = kzalloc_obj(*disabled_module, GFP_KERNEL);
if (!disabled_module)
return -ENOMEM;
@@ -2984,7 +2984,7 @@ static int sysc_init_static_data(struct sysc *ddata)
if (sysc_soc)
return 0;
- sysc_soc = kzalloc(sizeof(*sysc_soc), GFP_KERNEL);
+ sysc_soc = kzalloc_obj(*sysc_soc, GFP_KERNEL);
if (!sysc_soc)
return -ENOMEM;
diff --git a/drivers/bus/vexpress-config.c b/drivers/bus/vexpress-config.c
index 64ee920721ee..074918ed86fd 100644
--- a/drivers/bus/vexpress-config.c
+++ b/drivers/bus/vexpress-config.c
@@ -284,7 +284,7 @@ static struct regmap *vexpress_syscfg_regmap_init(struct device *dev,
val = energy_quirk;
}
- func = kzalloc(struct_size(func, template, num), GFP_KERNEL);
+ func = kzalloc_flex(*func, template, num, GFP_KERNEL);
if (!func)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
index 31ba1f8c1f78..fe0f633bc655 100644
--- a/drivers/cdrom/cdrom.c
+++ b/drivers/cdrom/cdrom.c
@@ -1318,7 +1318,7 @@ static int cdrom_slot_status(struct cdrom_device_info *cdi, int slot)
if (cdi->sanyo_slot)
return CDS_NO_INFO;
- info = kmalloc(sizeof(*info), GFP_KERNEL);
+ info = kmalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
@@ -1347,7 +1347,7 @@ int cdrom_number_of_slots(struct cdrom_device_info *cdi)
/* cdrom_read_mech_status requires a valid value for capacity: */
cdi->capacity = 0;
- info = kmalloc(sizeof(*info), GFP_KERNEL);
+ info = kmalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
@@ -1406,7 +1406,7 @@ static int cdrom_select_disc(struct cdrom_device_info *cdi, int slot)
return cdrom_load_unload(cdi, -1);
}
- info = kmalloc(sizeof(*info), GFP_KERNEL);
+ info = kmalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
@@ -2311,7 +2311,7 @@ static int cdrom_ioctl_media_changed(struct cdrom_device_info *cdi,
/* Prevent arg from speculatively bypassing the length check */
arg = array_index_nospec(arg, cdi->capacity);
- info = kmalloc(sizeof(*info), GFP_KERNEL);
+ info = kmalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/cdrom/gdrom.c b/drivers/cdrom/gdrom.c
index 85aceab5eac6..1a59241cbd23 100644
--- a/drivers/cdrom/gdrom.c
+++ b/drivers/cdrom/gdrom.c
@@ -227,7 +227,7 @@ static char gdrom_execute_diagnostic(void)
static int gdrom_preparedisk_cmd(void)
{
struct packet_command *spin_command;
- spin_command = kzalloc(sizeof(struct packet_command), GFP_KERNEL);
+ spin_command = kzalloc_obj(struct packet_command, GFP_KERNEL);
if (!spin_command)
return -ENOMEM;
spin_command->cmd[0] = 0x70;
@@ -261,7 +261,7 @@ static int gdrom_readtoc_cmd(struct gdromtoc *toc, int session)
struct packet_command *toc_command;
int err = 0;
- toc_command = kzalloc(sizeof(struct packet_command), GFP_KERNEL);
+ toc_command = kzalloc_obj(struct packet_command, GFP_KERNEL);
if (!toc_command)
return -ENOMEM;
tocsize = sizeof(struct gdromtoc);
@@ -415,7 +415,7 @@ static int gdrom_getsense(short *bufstring)
int sense_key;
int err = -EIO;
- sense_command = kzalloc(sizeof(struct packet_command), GFP_KERNEL);
+ sense_command = kzalloc_obj(struct packet_command, GFP_KERNEL);
if (!sense_command)
return -ENOMEM;
sense_command->cmd[0] = 0x13;
@@ -574,7 +574,7 @@ static blk_status_t gdrom_readdisk_dma(struct request *req)
struct packet_command *read_command;
unsigned long timeout;
- read_command = kzalloc(sizeof(struct packet_command), GFP_KERNEL);
+ read_command = kzalloc_obj(struct packet_command, GFP_KERNEL);
if (!read_command)
return BLK_STS_RESOURCE;
@@ -656,7 +656,7 @@ static int gdrom_outputversion(void)
int err = -ENOMEM;
/* query device ID */
- id = kzalloc(sizeof(struct gdrom_id), GFP_KERNEL);
+ id = kzalloc_obj(struct gdrom_id, GFP_KERNEL);
if (!id)
return err;
gdrom_identifydevice(id);
@@ -769,7 +769,7 @@ static int probe_gdrom(struct platform_device *devptr)
pr_info("Registered with major number %d\n",
gdrom_major);
/* Specify basic properties of drive */
- gd.cd_info = kzalloc(sizeof(struct cdrom_device_info), GFP_KERNEL);
+ gd.cd_info = kzalloc_obj(struct cdrom_device_info, GFP_KERNEL);
if (!gd.cd_info) {
err = -ENOMEM;
goto probe_fail_no_mem;
@@ -803,7 +803,7 @@ static int probe_gdrom(struct platform_device *devptr)
if (err)
goto probe_fail_free_irqs;
- gd.toc = kzalloc(sizeof(struct gdromtoc), GFP_KERNEL);
+ gd.toc = kzalloc_obj(struct gdromtoc, GFP_KERNEL);
if (!gd.toc) {
err = -ENOMEM;
goto probe_fail_free_irqs;
diff --git a/drivers/cdx/cdx.c b/drivers/cdx/cdx.c
index 588dd12e8105..236403a269b6 100644
--- a/drivers/cdx/cdx.c
+++ b/drivers/cdx/cdx.c
@@ -789,7 +789,7 @@ int cdx_device_add(struct cdx_dev_params *dev_params)
struct cdx_device *cdx_dev;
int ret, i;
- cdx_dev = kzalloc(sizeof(*cdx_dev), GFP_KERNEL);
+ cdx_dev = kzalloc_obj(*cdx_dev, GFP_KERNEL);
if (!cdx_dev)
return -ENOMEM;
@@ -876,7 +876,7 @@ struct device *cdx_bus_add(struct cdx_controller *cdx, u8 bus_num)
struct cdx_device *cdx_dev;
int ret;
- cdx_dev = kzalloc(sizeof(*cdx_dev), GFP_KERNEL);
+ cdx_dev = kzalloc_obj(*cdx_dev, GFP_KERNEL);
if (!cdx_dev)
return NULL;
diff --git a/drivers/cdx/controller/cdx_controller.c b/drivers/cdx/controller/cdx_controller.c
index 280f207735da..abd8f9cdb0b5 100644
--- a/drivers/cdx/controller/cdx_controller.c
+++ b/drivers/cdx/controller/cdx_controller.c
@@ -168,7 +168,7 @@ static int xlnx_cdx_probe(struct platform_device *pdev)
struct cdx_mcdi *cdx_mcdi;
int ret;
- cdx_mcdi = kzalloc(sizeof(*cdx_mcdi), GFP_KERNEL);
+ cdx_mcdi = kzalloc_obj(*cdx_mcdi, GFP_KERNEL);
if (!cdx_mcdi)
return -ENOMEM;
@@ -181,7 +181,7 @@ static int xlnx_cdx_probe(struct platform_device *pdev)
goto mcdi_init_fail;
}
- cdx = kzalloc(sizeof(*cdx), GFP_KERNEL);
+ cdx = kzalloc_obj(*cdx, GFP_KERNEL);
if (!cdx) {
ret = -ENOMEM;
goto cdx_alloc_fail;
diff --git a/drivers/cdx/controller/mcdi.c b/drivers/cdx/controller/mcdi.c
index 2e82ffc18d89..4b3d8f1ef964 100644
--- a/drivers/cdx/controller/mcdi.c
+++ b/drivers/cdx/controller/mcdi.c
@@ -118,7 +118,7 @@ int cdx_mcdi_init(struct cdx_mcdi *cdx)
struct cdx_mcdi_iface *mcdi;
int rc = -ENOMEM;
- cdx->mcdi = kzalloc(sizeof(*cdx->mcdi), GFP_KERNEL);
+ cdx->mcdi = kzalloc_obj(*cdx->mcdi, GFP_KERNEL);
if (!cdx->mcdi)
goto fail;
@@ -456,11 +456,11 @@ static int cdx_mcdi_rpc_sync(struct cdx_mcdi *cdx, unsigned int cmd,
if (outlen_actual)
*outlen_actual = 0;
- wait_data = kmalloc(sizeof(*wait_data), GFP_KERNEL);
+ wait_data = kmalloc_obj(*wait_data, GFP_KERNEL);
if (!wait_data)
return -ENOMEM;
- cmd_item = kmalloc(sizeof(*cmd_item), GFP_KERNEL);
+ cmd_item = kmalloc_obj(*cmd_item, GFP_KERNEL);
if (!cmd_item) {
kfree(wait_data);
return -ENOMEM;
diff --git a/drivers/char/agp/amd-k7-agp.c b/drivers/char/agp/amd-k7-agp.c
index 795c8c9ff680..7cf521d36e3b 100644
--- a/drivers/char/agp/amd-k7-agp.c
+++ b/drivers/char/agp/amd-k7-agp.c
@@ -85,13 +85,12 @@ static int amd_create_gatt_pages(int nr_tables)
int retval = 0;
int i;
- tables = kcalloc(nr_tables + 1, sizeof(struct amd_page_map *),
- GFP_KERNEL);
+ tables = kzalloc_objs(struct amd_page_map *, nr_tables + 1, GFP_KERNEL);
if (tables == NULL)
return -ENOMEM;
for (i = 0; i < nr_tables; i++) {
- entry = kzalloc(sizeof(struct amd_page_map), GFP_KERNEL);
+ entry = kzalloc_obj(struct amd_page_map, GFP_KERNEL);
tables[i] = entry;
if (entry == NULL) {
retval = -ENOMEM;
diff --git a/drivers/char/agp/ati-agp.c b/drivers/char/agp/ati-agp.c
index f7871afe08cf..65afee75d8e3 100644
--- a/drivers/char/agp/ati-agp.c
+++ b/drivers/char/agp/ati-agp.c
@@ -112,13 +112,12 @@ static int ati_create_gatt_pages(int nr_tables)
int retval = 0;
int i;
- tables = kcalloc(nr_tables + 1, sizeof(struct ati_page_map *),
- GFP_KERNEL);
+ tables = kzalloc_objs(struct ati_page_map *, nr_tables + 1, GFP_KERNEL);
if (tables == NULL)
return -ENOMEM;
for (i = 0; i < nr_tables; i++) {
- entry = kzalloc(sizeof(struct ati_page_map), GFP_KERNEL);
+ entry = kzalloc_obj(struct ati_page_map, GFP_KERNEL);
tables[i] = entry;
if (entry == NULL) {
retval = -ENOMEM;
diff --git a/drivers/char/agp/backend.c b/drivers/char/agp/backend.c
index 1776afd3ee07..90554f4f2146 100644
--- a/drivers/char/agp/backend.c
+++ b/drivers/char/agp/backend.c
@@ -238,7 +238,7 @@ struct agp_bridge_data *agp_alloc_bridge(void)
{
struct agp_bridge_data *bridge;
- bridge = kzalloc(sizeof(*bridge), GFP_KERNEL);
+ bridge = kzalloc_obj(*bridge, GFP_KERNEL);
if (!bridge)
return NULL;
diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c
index 3ffbb1c80c5c..66ba14eac583 100644
--- a/drivers/char/agp/generic.c
+++ b/drivers/char/agp/generic.c
@@ -101,7 +101,7 @@ static struct agp_memory *agp_create_user_memory(unsigned long num_agp_pages)
if (INT_MAX/sizeof(struct page *) < num_agp_pages)
return NULL;
- new = kzalloc(sizeof(struct agp_memory), GFP_KERNEL);
+ new = kzalloc_obj(struct agp_memory, GFP_KERNEL);
if (new == NULL)
return NULL;
@@ -127,7 +127,7 @@ struct agp_memory *agp_create_memory(int scratch_pages)
{
struct agp_memory *new;
- new = kzalloc(sizeof(struct agp_memory), GFP_KERNEL);
+ new = kzalloc_obj(struct agp_memory, GFP_KERNEL);
if (new == NULL)
return NULL;
diff --git a/drivers/char/agp/isoch.c b/drivers/char/agp/isoch.c
index 7ecf20a6d19c..b7deecb40922 100644
--- a/drivers/char/agp/isoch.c
+++ b/drivers/char/agp/isoch.c
@@ -92,7 +92,7 @@ static int agp_3_5_isochronous_node_enable(struct agp_bridge_data *bridge,
* We'll work with an array of isoch_data's (one for each
* device in dev_list) throughout this function.
*/
- master = kmalloc_array(ndevs, sizeof(*master), GFP_KERNEL);
+ master = kmalloc_objs(*master, ndevs, GFP_KERNEL);
if (master == NULL) {
ret = -ENOMEM;
goto get_out;
@@ -333,7 +333,7 @@ int agp_3_5_enable(struct agp_bridge_data *bridge)
* Allocate a head for our AGP 3.5 device list
* (multiple AGP v3 devices are allowed behind a single bridge).
*/
- if ((dev_list = kmalloc(sizeof(*dev_list), GFP_KERNEL)) == NULL) {
+ if ((dev_list = kmalloc_obj(*dev_list, GFP_KERNEL)) == NULL) {
ret = -ENOMEM;
goto get_out;
}
@@ -362,7 +362,7 @@ int agp_3_5_enable(struct agp_bridge_data *bridge)
case 0x0300: /* Display controller */
case 0x0400: /* Multimedia controller */
- if ((cur = kmalloc(sizeof(*cur), GFP_KERNEL)) == NULL) {
+ if ((cur = kmalloc_obj(*cur, GFP_KERNEL)) == NULL) {
ret = -ENOMEM;
goto free_and_exit;
}
diff --git a/drivers/char/agp/sworks-agp.c b/drivers/char/agp/sworks-agp.c
index 0ab7562d17c9..03f21b90d368 100644
--- a/drivers/char/agp/sworks-agp.c
+++ b/drivers/char/agp/sworks-agp.c
@@ -96,13 +96,13 @@ static int serverworks_create_gatt_pages(int nr_tables)
int retval = 0;
int i;
- tables = kcalloc(nr_tables + 1, sizeof(struct serverworks_page_map *),
- GFP_KERNEL);
+ tables = kzalloc_objs(struct serverworks_page_map *, nr_tables + 1,
+ GFP_KERNEL);
if (tables == NULL)
return -ENOMEM;
for (i = 0; i < nr_tables; i++) {
- entry = kzalloc(sizeof(struct serverworks_page_map), GFP_KERNEL);
+ entry = kzalloc_obj(struct serverworks_page_map, GFP_KERNEL);
if (entry == NULL) {
retval = -ENOMEM;
break;
diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c
index b8d7115b8c9e..5d5ba7c7d9ba 100644
--- a/drivers/char/agp/uninorth-agp.c
+++ b/drivers/char/agp/uninorth-agp.c
@@ -404,9 +404,8 @@ static int uninorth_create_gatt_table(struct agp_bridge_data *bridge)
if (table == NULL)
return -ENOMEM;
- uninorth_priv.pages_arr = kmalloc_array(1 << page_order,
- sizeof(struct page *),
- GFP_KERNEL);
+ uninorth_priv.pages_arr = kmalloc_objs(struct page *, 1 << page_order,
+ GFP_KERNEL);
if (uninorth_priv.pages_arr == NULL)
goto enomem;
diff --git a/drivers/char/apm-emulation.c b/drivers/char/apm-emulation.c
index 4aa5d1c76f83..54e921eac4d3 100644
--- a/drivers/char/apm-emulation.c
+++ b/drivers/char/apm-emulation.c
@@ -343,7 +343,7 @@ static int apm_open(struct inode * inode, struct file * filp)
{
struct apm_user *as;
- as = kzalloc(sizeof(*as), GFP_KERNEL);
+ as = kzalloc_obj(*as, GFP_KERNEL);
if (as) {
/*
* XXX - this is a tiny bit broken, when we consider BSD
diff --git a/drivers/char/bsr.c b/drivers/char/bsr.c
index 837109ef6766..57d236398a81 100644
--- a/drivers/char/bsr.c
+++ b/drivers/char/bsr.c
@@ -186,8 +186,7 @@ static int bsr_add_node(struct device_node *bn)
num_bsr_devs = bsr_bytes_len / sizeof(u32);
for (i = 0 ; i < num_bsr_devs; i++) {
- struct bsr_dev *cur = kzalloc(sizeof(struct bsr_dev),
- GFP_KERNEL);
+ struct bsr_dev *cur = kzalloc_obj(struct bsr_dev, GFP_KERNEL);
struct resource res;
int result;
diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
index 4f5ccd3a1f56..1813e931c2b0 100644
--- a/drivers/char/hpet.c
+++ b/drivers/char/hpet.c
@@ -823,8 +823,7 @@ int hpet_alloc(struct hpet_data *hdp)
return 0;
}
- hpetp = kzalloc(struct_size(hpetp, hp_dev, hdp->hd_nirqs),
- GFP_KERNEL);
+ hpetp = kzalloc_flex(*hpetp, hp_dev, hdp->hd_nirqs, GFP_KERNEL);
if (!hpetp)
return -ENOMEM;
diff --git a/drivers/char/hw_random/amd-rng.c b/drivers/char/hw_random/amd-rng.c
index 9a24d19236dc..bc228e26929e 100644
--- a/drivers/char/hw_random/amd-rng.c
+++ b/drivers/char/hw_random/amd-rng.c
@@ -154,7 +154,7 @@ static int __init amd_rng_mod_init(void)
goto put_dev;
}
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
err = -ENOMEM;
goto put_dev;
diff --git a/drivers/char/hw_random/geode-rng.c b/drivers/char/hw_random/geode-rng.c
index 159baf00a867..45e2696fad23 100644
--- a/drivers/char/hw_random/geode-rng.c
+++ b/drivers/char/hw_random/geode-rng.c
@@ -107,7 +107,7 @@ static int __init geode_rng_init(void)
return err;
found:
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
err = -ENOMEM;
goto put_dev;
diff --git a/drivers/char/hw_random/intel-rng.c b/drivers/char/hw_random/intel-rng.c
index 7b171cb3b825..e18041c2610d 100644
--- a/drivers/char/hw_random/intel-rng.c
+++ b/drivers/char/hw_random/intel-rng.c
@@ -346,7 +346,7 @@ static int __init intel_rng_mod_init(void)
goto fwh_done;
}
- intel_rng_hw = kmalloc(sizeof(*intel_rng_hw), GFP_KERNEL);
+ intel_rng_hw = kmalloc_obj(*intel_rng_hw, GFP_KERNEL);
if (!intel_rng_hw) {
pci_dev_put(dev);
goto out;
diff --git a/drivers/char/hw_random/virtio-rng.c b/drivers/char/hw_random/virtio-rng.c
index eb80a031c7be..ba35f83d5c31 100644
--- a/drivers/char/hw_random/virtio-rng.c
+++ b/drivers/char/hw_random/virtio-rng.c
@@ -134,7 +134,7 @@ static int probe_common(struct virtio_device *vdev)
int err, index;
struct virtrng_info *vi = NULL;
- vi = kzalloc(sizeof(struct virtrng_info), GFP_KERNEL);
+ vi = kzalloc_obj(struct virtrng_info, GFP_KERNEL);
if (!vi)
return -ENOMEM;
diff --git a/drivers/char/ipmi/ipmb_dev_int.c b/drivers/char/ipmi/ipmb_dev_int.c
index ee2bdc7ed0da..2fe1d205ce4e 100644
--- a/drivers/char/ipmi/ipmb_dev_int.c
+++ b/drivers/char/ipmi/ipmb_dev_int.c
@@ -208,7 +208,7 @@ static void ipmb_handle_request(struct ipmb_dev *ipmb_dev)
REQUEST_QUEUE_MAX_LEN)
return;
- queue_elem = kmalloc(sizeof(*queue_elem), GFP_ATOMIC);
+ queue_elem = kmalloc_obj(*queue_elem, GFP_ATOMIC);
if (!queue_elem)
return;
diff --git a/drivers/char/ipmi/ipmi_devintf.c b/drivers/char/ipmi/ipmi_devintf.c
index e6ba35b71f10..c8a4f261bd58 100644
--- a/drivers/char/ipmi/ipmi_devintf.c
+++ b/drivers/char/ipmi/ipmi_devintf.c
@@ -90,7 +90,7 @@ static int ipmi_open(struct inode *inode, struct file *file)
int rv;
struct ipmi_file_private *priv;
- priv = kmalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kmalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
@@ -813,7 +813,7 @@ static void ipmi_new_smi(int if_num, struct device *device)
dev_t dev = MKDEV(ipmi_major, if_num);
struct ipmi_reg_list *entry;
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
pr_err("ipmi_devintf: Unable to create the ipmi class device link\n");
return;
diff --git a/drivers/char/ipmi/ipmi_dmi.c b/drivers/char/ipmi/ipmi_dmi.c
index bbf7029e224b..2462d2557331 100644
--- a/drivers/char/ipmi/ipmi_dmi.c
+++ b/drivers/char/ipmi/ipmi_dmi.c
@@ -74,7 +74,7 @@ static void __init dmi_add_platform_ipmi(unsigned long base_addr,
p.slave_addr = slave_addr;
p.addr_source = SI_SMBIOS;
- info = kmalloc(sizeof(*info), GFP_KERNEL);
+ info = kmalloc_obj(*info, GFP_KERNEL);
if (!info) {
pr_warn("Could not allocate dmi info\n");
} else {
diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
index 3f48fc6ab596..b4f05d15d2df 100644
--- a/drivers/char/ipmi/ipmi_msghandler.c
+++ b/drivers/char/ipmi/ipmi_msghandler.c
@@ -761,13 +761,11 @@ int ipmi_smi_watcher_register(struct ipmi_smi_watcher *watcher)
list_for_each_entry(intf, &ipmi_interfaces, link)
count++;
if (count > 0) {
- interfaces = kmalloc_array(count, sizeof(*interfaces),
- GFP_KERNEL);
+ interfaces = kmalloc_objs(*interfaces, count, GFP_KERNEL);
if (!interfaces) {
rv = -ENOMEM;
} else {
- devices = kmalloc_array(count, sizeof(*devices),
- GFP_KERNEL);
+ devices = kmalloc_objs(*devices, count, GFP_KERNEL);
if (!devices) {
kfree(interfaces);
interfaces = NULL;
@@ -1686,7 +1684,7 @@ int ipmi_register_for_cmd(struct ipmi_user *user,
if (!user)
return -ENODEV;
- rcvr = kmalloc(sizeof(*rcvr), GFP_KERNEL);
+ rcvr = kmalloc_obj(*rcvr, GFP_KERNEL);
if (!rcvr) {
rv = -ENOMEM;
goto out_release;
@@ -3146,7 +3144,7 @@ static int __ipmi_bmc_register(struct ipmi_smi *intf,
bmc->id.product_id,
bmc->id.device_id);
} else {
- bmc = kzalloc(sizeof(*bmc), GFP_KERNEL);
+ bmc = kzalloc_obj(*bmc, GFP_KERNEL);
if (!bmc) {
rv = -ENOMEM;
goto out;
@@ -3582,7 +3580,7 @@ int ipmi_add_smi(struct module *owner,
if (rv)
return rv;
- intf = kzalloc(sizeof(*intf), GFP_KERNEL);
+ intf = kzalloc_obj(*intf, GFP_KERNEL);
if (!intf)
return -ENOMEM;
@@ -5195,7 +5193,7 @@ static void free_smi_msg(struct ipmi_smi_msg *msg)
struct ipmi_smi_msg *ipmi_alloc_smi_msg(void)
{
struct ipmi_smi_msg *rv;
- rv = kmalloc(sizeof(struct ipmi_smi_msg), GFP_ATOMIC);
+ rv = kmalloc_obj(struct ipmi_smi_msg, GFP_ATOMIC);
if (rv) {
rv->done = free_smi_msg;
rv->recv_msg = NULL;
@@ -5225,7 +5223,7 @@ static struct ipmi_recv_msg *ipmi_alloc_recv_msg(struct ipmi_user *user)
}
}
- rv = kmalloc(sizeof(struct ipmi_recv_msg), GFP_ATOMIC);
+ rv = kmalloc_obj(struct ipmi_recv_msg, GFP_ATOMIC);
if (!rv) {
if (user)
atomic_dec(&user->nr_msgs);
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index 5459ffdde8dc..c6137eb56548 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -1914,7 +1914,7 @@ int ipmi_si_add_smi(struct si_sm_io *io)
}
}
- new_smi = kzalloc(sizeof(*new_smi), GFP_KERNEL);
+ new_smi = kzalloc_obj(*new_smi, GFP_KERNEL);
if (!new_smi)
return -ENOMEM;
spin_lock_init(&new_smi->si_lock);
diff --git a/drivers/char/ipmi/ipmi_ssif.c b/drivers/char/ipmi/ipmi_ssif.c
index ef1582a029f4..579cf30cd52f 100644
--- a/drivers/char/ipmi/ipmi_ssif.c
+++ b/drivers/char/ipmi/ipmi_ssif.c
@@ -1602,7 +1602,7 @@ static int ssif_add_infos(struct i2c_client *client)
{
struct ssif_addr_info *info;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
info->addr_src = SI_ACPI;
@@ -1667,7 +1667,7 @@ static int ssif_probe(struct i2c_client *client)
return -ENOMEM;
}
- ssif_info = kzalloc(sizeof(*ssif_info), GFP_KERNEL);
+ ssif_info = kzalloc_obj(*ssif_info, GFP_KERNEL);
if (!ssif_info) {
kfree(resp);
mutex_unlock(&ssif_infos_mutex);
@@ -1948,7 +1948,7 @@ static int new_ssif_client(int addr, char *adapter_name,
goto out_unlock;
}
- addr_info = kzalloc(sizeof(*addr_info), GFP_KERNEL);
+ addr_info = kzalloc_obj(*addr_info, GFP_KERNEL);
if (!addr_info) {
rv = -ENOMEM;
goto out_unlock;
diff --git a/drivers/char/ipmi/kcs_bmc_serio.c b/drivers/char/ipmi/kcs_bmc_serio.c
index 1793358be782..4c3a70dc7425 100644
--- a/drivers/char/ipmi/kcs_bmc_serio.c
+++ b/drivers/char/ipmi/kcs_bmc_serio.c
@@ -77,7 +77,7 @@ static int kcs_bmc_serio_add_device(struct kcs_bmc_device *kcs_bmc)
return -ENOMEM;
/* Use kzalloc() as the allocation is cleaned up with kfree() via serio_unregister_port() */
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return -ENOMEM;
diff --git a/drivers/char/powernv-op-panel.c b/drivers/char/powernv-op-panel.c
index 53467b0a6187..7405d645ff62 100644
--- a/drivers/char/powernv-op-panel.c
+++ b/drivers/char/powernv-op-panel.c
@@ -167,7 +167,7 @@ static int oppanel_probe(struct platform_device *pdev)
if (!oppanel_data)
return -ENOMEM;
- oppanel_lines = kcalloc(num_lines, sizeof(oppanel_line_t), GFP_KERNEL);
+ oppanel_lines = kzalloc_objs(oppanel_line_t, num_lines, GFP_KERNEL);
if (!oppanel_lines) {
rc = -ENOMEM;
goto free_oppanel_data;
diff --git a/drivers/char/ppdev.c b/drivers/char/ppdev.c
index d1dfbd8d4d42..2468040d745f 100644
--- a/drivers/char/ppdev.c
+++ b/drivers/char/ppdev.c
@@ -689,7 +689,7 @@ static int pp_open(struct inode *inode, struct file *file)
if (minor >= PARPORT_MAX)
return -ENXIO;
- pp = kmalloc(sizeof(struct pp_struct), GFP_KERNEL);
+ pp = kmalloc_obj(struct pp_struct, GFP_KERNEL);
if (!pp)
return -ENOMEM;
diff --git a/drivers/char/ps3flash.c b/drivers/char/ps3flash.c
index 23871cde41fb..5892d2b1cb72 100644
--- a/drivers/char/ps3flash.c
+++ b/drivers/char/ps3flash.c
@@ -361,7 +361,7 @@ static int ps3flash_probe(struct ps3_system_bus_device *_dev)
ps3flash_dev = dev;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
error = -ENOMEM;
goto fail;
diff --git a/drivers/char/random.c b/drivers/char/random.c
index bab03c7c4194..91dc486b9ffa 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -1248,7 +1248,7 @@ void __cold rand_initialize_disk(struct gendisk *disk)
* If kzalloc returns null, we just won't use that entropy
* source.
*/
- state = kzalloc(sizeof(struct timer_rand_state), GFP_KERNEL);
+ state = kzalloc_obj(struct timer_rand_state, GFP_KERNEL);
if (state) {
state->last_time = INITIAL_JIFFIES;
disk->random = state;
diff --git a/drivers/char/tlclk.c b/drivers/char/tlclk.c
index b381ea7e85d2..8f3dd530f56c 100644
--- a/drivers/char/tlclk.c
+++ b/drivers/char/tlclk.c
@@ -776,7 +776,7 @@ static int __init tlclk_init(void)
telclk_interrupt = (inb(TLCLK_REG7) & 0x0f);
- alarm_events = kzalloc( sizeof(struct tlclk_alarms), GFP_KERNEL);
+ alarm_events = kzalloc_obj(struct tlclk_alarms, GFP_KERNEL);
if (!alarm_events) {
ret = -ENOMEM;
goto out1;
diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c
index 082b910ddf0d..986990723db2 100644
--- a/drivers/char/tpm/tpm-chip.c
+++ b/drivers/char/tpm/tpm-chip.c
@@ -295,7 +295,7 @@ struct tpm_chip *tpm_chip_alloc(struct device *pdev,
struct tpm_chip *chip;
int rc;
- chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+ chip = kzalloc_obj(*chip, GFP_KERNEL);
if (chip == NULL)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/char/tpm/tpm-dev.c b/drivers/char/tpm/tpm-dev.c
index 97c94b5e9340..bd197be15923 100644
--- a/drivers/char/tpm/tpm-dev.c
+++ b/drivers/char/tpm/tpm-dev.c
@@ -30,7 +30,7 @@ static int tpm_open(struct inode *inode, struct file *file)
return -EBUSY;
}
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (priv == NULL)
goto out;
diff --git a/drivers/char/tpm/tpm2-sessions.c b/drivers/char/tpm/tpm2-sessions.c
index 09df6353ef04..c00817faf88e 100644
--- a/drivers/char/tpm/tpm2-sessions.c
+++ b/drivers/char/tpm/tpm2-sessions.c
@@ -991,7 +991,7 @@ int tpm2_start_auth_session(struct tpm_chip *chip)
return 0;
}
- auth = kzalloc(sizeof(*auth), GFP_KERNEL);
+ auth = kzalloc_obj(*auth, GFP_KERNEL);
if (!auth)
return -ENOMEM;
diff --git a/drivers/char/tpm/tpm_crb_ffa.c b/drivers/char/tpm/tpm_crb_ffa.c
index 755b77b32ea4..1bc1c6c2f257 100644
--- a/drivers/char/tpm/tpm_crb_ffa.c
+++ b/drivers/char/tpm/tpm_crb_ffa.c
@@ -346,7 +346,7 @@ static int tpm_crb_ffa_probe(struct ffa_device *ffa_dev)
return -EINVAL;
}
- p = kzalloc(sizeof(*tpm_crb_ffa), GFP_KERNEL);
+ p = kzalloc_obj(*tpm_crb_ffa, GFP_KERNEL);
if (!p)
return -ENOMEM;
tpm_crb_ffa = p;
diff --git a/drivers/char/tpm/tpm_ibmvtpm.c b/drivers/char/tpm/tpm_ibmvtpm.c
index 4734a69406ce..2bd4e1dce322 100644
--- a/drivers/char/tpm/tpm_ibmvtpm.c
+++ b/drivers/char/tpm/tpm_ibmvtpm.c
@@ -611,7 +611,7 @@ static int tpm_ibmvtpm_probe(struct vio_dev *vio_dev,
if (IS_ERR(chip))
return PTR_ERR(chip);
- ibmvtpm = kzalloc(sizeof(struct ibmvtpm_dev), GFP_KERNEL);
+ ibmvtpm = kzalloc_obj(struct ibmvtpm_dev, GFP_KERNEL);
if (!ibmvtpm) {
dev_err(dev, "kzalloc for ibmvtpm failed\n");
goto cleanup;
diff --git a/drivers/char/tpm/tpm_vtpm_proxy.c b/drivers/char/tpm/tpm_vtpm_proxy.c
index 0818bb517805..b84d745a9797 100644
--- a/drivers/char/tpm/tpm_vtpm_proxy.c
+++ b/drivers/char/tpm/tpm_vtpm_proxy.c
@@ -491,7 +491,7 @@ static struct proxy_dev *vtpm_proxy_create_proxy_dev(void)
struct tpm_chip *chip;
int err;
- proxy_dev = kzalloc(sizeof(*proxy_dev), GFP_KERNEL);
+ proxy_dev = kzalloc_obj(*proxy_dev, GFP_KERNEL);
if (proxy_dev == NULL)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/char/tpm/tpmrm-dev.c b/drivers/char/tpm/tpmrm-dev.c
index c25df7ea064e..cace5bc7369a 100644
--- a/drivers/char/tpm/tpmrm-dev.c
+++ b/drivers/char/tpm/tpmrm-dev.c
@@ -17,7 +17,7 @@ static int tpmrm_open(struct inode *inode, struct file *file)
int rc;
chip = container_of(inode->i_cdev, struct tpm_chip, cdevs);
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (priv == NULL)
return -ENOMEM;
diff --git a/drivers/char/tpm/xen-tpmfront.c b/drivers/char/tpm/xen-tpmfront.c
index 556bf2256716..c1a4a5531b0a 100644
--- a/drivers/char/tpm/xen-tpmfront.c
+++ b/drivers/char/tpm/xen-tpmfront.c
@@ -338,7 +338,7 @@ static int tpmfront_probe(struct xenbus_device *dev,
struct tpm_private *priv;
int rv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
xenbus_dev_fatal(dev, -ENOMEM, "allocating priv structure");
return -ENOMEM;
diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
index 088182e54deb..2c1c864a9de9 100644
--- a/drivers/char/virtio_console.c
+++ b/drivers/char/virtio_console.c
@@ -412,7 +412,7 @@ static struct port_buffer *alloc_buf(struct virtio_device *vdev, size_t buf_size
* Allocate buffer and the sg list. The sg list array is allocated
* directly after the port_buffer struct.
*/
- buf = kmalloc(struct_size(buf, sg, pages), GFP_KERNEL);
+ buf = kmalloc_flex(*buf, sg, pages, GFP_KERNEL);
if (!buf)
goto fail;
@@ -1325,7 +1325,7 @@ static int add_port(struct ports_device *portdev, u32 id)
dev_t devt;
int err;
- port = kmalloc(sizeof(*port), GFP_KERNEL);
+ port = kmalloc_obj(*port, GFP_KERNEL);
if (!port) {
err = -ENOMEM;
goto fail;
@@ -1809,12 +1809,11 @@ static int init_vqs(struct ports_device *portdev)
nr_ports = portdev->max_nr_ports;
nr_queues = use_multiport(portdev) ? (nr_ports + 1) * 2 : 2;
- vqs = kmalloc_array(nr_queues, sizeof(struct virtqueue *), GFP_KERNEL);
- vqs_info = kcalloc(nr_queues, sizeof(*vqs_info), GFP_KERNEL);
- portdev->in_vqs = kmalloc_array(nr_ports, sizeof(struct virtqueue *),
+ vqs = kmalloc_objs(struct virtqueue *, nr_queues, GFP_KERNEL);
+ vqs_info = kzalloc_objs(*vqs_info, nr_queues, GFP_KERNEL);
+ portdev->in_vqs = kmalloc_objs(struct virtqueue *, nr_ports, GFP_KERNEL);
+ portdev->out_vqs = kmalloc_objs(struct virtqueue *, nr_ports,
GFP_KERNEL);
- portdev->out_vqs = kmalloc_array(nr_ports, sizeof(struct virtqueue *),
- GFP_KERNEL);
if (!vqs || !vqs_info || !portdev->in_vqs || !portdev->out_vqs) {
err = -ENOMEM;
goto free;
@@ -1965,7 +1964,7 @@ static int virtcons_probe(struct virtio_device *vdev)
return -EINVAL;
}
- portdev = kmalloc(sizeof(*portdev), GFP_KERNEL);
+ portdev = kmalloc_obj(*portdev, GFP_KERNEL);
if (!portdev) {
err = -ENOMEM;
goto fail;
diff --git a/drivers/char/xillybus/xillybus_class.c b/drivers/char/xillybus/xillybus_class.c
index c92a628e389e..4bc5a2152abb 100644
--- a/drivers/char/xillybus/xillybus_class.c
+++ b/drivers/char/xillybus/xillybus_class.c
@@ -57,7 +57,7 @@ int xillybus_init_chrdev(struct device *dev,
size_t namelen;
struct xilly_unit *unit, *u;
- unit = kzalloc(sizeof(*unit), GFP_KERNEL);
+ unit = kzalloc_obj(*unit, GFP_KERNEL);
if (!unit)
return -ENOMEM;
diff --git a/drivers/char/xillybus/xillybus_core.c b/drivers/char/xillybus/xillybus_core.c
index fc4e69b5cb6a..86dccc6009f8 100644
--- a/drivers/char/xillybus/xillybus_core.c
+++ b/drivers/char/xillybus/xillybus_core.c
@@ -319,7 +319,7 @@ static int xilly_map_single(struct xilly_endpoint *ep,
dma_addr_t addr;
struct xilly_mapping *this;
- this = kzalloc(sizeof(*this), GFP_KERNEL);
+ this = kzalloc_obj(*this, GFP_KERNEL);
if (!this)
return -ENOMEM;
diff --git a/drivers/char/xillybus/xillyusb.c b/drivers/char/xillybus/xillyusb.c
index 386531474213..568e82b73823 100644
--- a/drivers/char/xillybus/xillyusb.c
+++ b/drivers/char/xillybus/xillyusb.c
@@ -495,7 +495,7 @@ static struct xillyusb_endpoint
struct xillyusb_endpoint *ep;
- ep = kzalloc(sizeof(*ep), GFP_KERNEL);
+ ep = kzalloc_obj(*ep, GFP_KERNEL);
if (!ep)
return NULL;
@@ -522,7 +522,7 @@ static struct xillyusb_endpoint
struct xillybuffer *xb;
unsigned long addr;
- xb = kzalloc(sizeof(*xb), GFP_KERNEL);
+ xb = kzalloc_obj(*xb, GFP_KERNEL);
if (!xb) {
endpoint_dealloc(ep);
@@ -1336,7 +1336,7 @@ static int xillyusb_open(struct inode *inode, struct file *filp)
}
if (filp->f_mode & FMODE_READ) {
- in_fifo = kzalloc(sizeof(*in_fifo), GFP_KERNEL);
+ in_fifo = kzalloc_obj(*in_fifo, GFP_KERNEL);
if (!in_fifo) {
rc = -ENOMEM;
@@ -1943,7 +1943,7 @@ static int setup_channels(struct xillyusb_dev *xdev,
struct xillyusb_channel *chan, *new_channels;
int i;
- chan = kcalloc(num_channels, sizeof(*chan), GFP_KERNEL);
+ chan = kzalloc_objs(*chan, num_channels, GFP_KERNEL);
if (!chan)
return -ENOMEM;
@@ -2149,7 +2149,7 @@ static int xillyusb_probe(struct usb_interface *interface,
struct xillyusb_dev *xdev;
int rc;
- xdev = kzalloc(sizeof(*xdev), GFP_KERNEL);
+ xdev = kzalloc_obj(*xdev, GFP_KERNEL);
if (!xdev)
return -ENOMEM;
diff --git a/drivers/clk/aspeed/clk-aspeed.c b/drivers/clk/aspeed/clk-aspeed.c
index 74c8c1377b70..c8449e49ea08 100644
--- a/drivers/clk/aspeed/clk-aspeed.c
+++ b/drivers/clk/aspeed/clk-aspeed.c
@@ -354,7 +354,7 @@ static struct clk_hw *aspeed_clk_hw_register_gate(struct device *dev,
struct clk_hw *hw;
int ret;
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
return ERR_PTR(-ENOMEM);
@@ -698,9 +698,8 @@ static void __init aspeed_cc_init(struct device_node *np)
if (!scu_base)
return;
- aspeed_clk_data = kzalloc(struct_size(aspeed_clk_data, hws,
- ASPEED_NUM_CLKS),
- GFP_KERNEL);
+ aspeed_clk_data = kzalloc_flex(*aspeed_clk_data, hws, ASPEED_NUM_CLKS,
+ GFP_KERNEL);
if (!aspeed_clk_data)
return;
aspeed_clk_data->num = ASPEED_NUM_CLKS;
diff --git a/drivers/clk/aspeed/clk-ast2600.c b/drivers/clk/aspeed/clk-ast2600.c
index 114afc13d640..e24b536e68ce 100644
--- a/drivers/clk/aspeed/clk-ast2600.c
+++ b/drivers/clk/aspeed/clk-ast2600.c
@@ -431,7 +431,7 @@ static struct clk_hw *aspeed_g6_clk_hw_register_gate(struct device *dev,
struct clk_hw *hw;
int ret;
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
return ERR_PTR(-ENOMEM);
@@ -838,8 +838,8 @@ static void __init aspeed_g6_cc_init(struct device_node *np)
soc_rev = (readl(scu_g6_base + ASPEED_G6_SILICON_REV) & CHIP_REVISION_ID) >> 16;
- aspeed_g6_clk_data = kzalloc(struct_size(aspeed_g6_clk_data, hws,
- ASPEED_G6_NUM_CLKS), GFP_KERNEL);
+ aspeed_g6_clk_data = kzalloc_flex(*aspeed_g6_clk_data, hws,
+ ASPEED_G6_NUM_CLKS, GFP_KERNEL);
if (!aspeed_g6_clk_data)
return;
aspeed_g6_clk_data->num = ASPEED_G6_NUM_CLKS;
diff --git a/drivers/clk/aspeed/clk-ast2700.c b/drivers/clk/aspeed/clk-ast2700.c
index bbb2b571eb72..df491bae39b7 100644
--- a/drivers/clk/aspeed/clk-ast2700.c
+++ b/drivers/clk/aspeed/clk-ast2700.c
@@ -820,7 +820,7 @@ static struct clk_hw *ast2700_clk_hw_register_gate(struct device *dev, const cha
struct clk_hw *hw;
int ret = -EINVAL;
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/at91/clk-audio-pll.c b/drivers/clk/at91/clk-audio-pll.c
index bf9b635ac9d6..9133c0ec7f08 100644
--- a/drivers/clk/at91/clk-audio-pll.c
+++ b/drivers/clk/at91/clk-audio-pll.c
@@ -460,7 +460,7 @@ at91_clk_register_audio_pll_frac(struct regmap *regmap, const char *name,
struct clk_init_data init = {};
int ret;
- frac_ck = kzalloc(sizeof(*frac_ck), GFP_KERNEL);
+ frac_ck = kzalloc_obj(*frac_ck, GFP_KERNEL);
if (!frac_ck)
return ERR_PTR(-ENOMEM);
@@ -490,7 +490,7 @@ at91_clk_register_audio_pll_pad(struct regmap *regmap, const char *name,
struct clk_init_data init;
int ret;
- apad_ck = kzalloc(sizeof(*apad_ck), GFP_KERNEL);
+ apad_ck = kzalloc_obj(*apad_ck, GFP_KERNEL);
if (!apad_ck)
return ERR_PTR(-ENOMEM);
@@ -521,7 +521,7 @@ at91_clk_register_audio_pll_pmc(struct regmap *regmap, const char *name,
struct clk_init_data init;
int ret;
- apmc_ck = kzalloc(sizeof(*apmc_ck), GFP_KERNEL);
+ apmc_ck = kzalloc_obj(*apmc_ck, GFP_KERNEL);
if (!apmc_ck)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/at91/clk-generated.c b/drivers/clk/at91/clk-generated.c
index 4b4edeecc889..0427f112829b 100644
--- a/drivers/clk/at91/clk-generated.c
+++ b/drivers/clk/at91/clk-generated.c
@@ -332,7 +332,7 @@ at91_clk_register_generated(struct regmap *regmap, spinlock_t *lock,
if (!(parent_names || parent_hws))
return ERR_PTR(-ENOMEM);
- gck = kzalloc(sizeof(*gck), GFP_KERNEL);
+ gck = kzalloc_obj(*gck, GFP_KERNEL);
if (!gck)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/at91/clk-h32mx.c b/drivers/clk/at91/clk-h32mx.c
index a9aa93b5a870..a56e65eb2333 100644
--- a/drivers/clk/at91/clk-h32mx.c
+++ b/drivers/clk/at91/clk-h32mx.c
@@ -100,7 +100,7 @@ at91_clk_register_h32mx(struct regmap *regmap, const char *name,
struct clk_init_data init;
int ret;
- h32mxclk = kzalloc(sizeof(*h32mxclk), GFP_KERNEL);
+ h32mxclk = kzalloc_obj(*h32mxclk, GFP_KERNEL);
if (!h32mxclk)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/at91/clk-i2s-mux.c b/drivers/clk/at91/clk-i2s-mux.c
index fe6ce172b8b0..309a8d6136d5 100644
--- a/drivers/clk/at91/clk-i2s-mux.c
+++ b/drivers/clk/at91/clk-i2s-mux.c
@@ -57,7 +57,7 @@ at91_clk_i2s_mux_register(struct regmap *regmap, const char *name,
struct clk_i2s_mux *i2s_ck;
int ret;
- i2s_ck = kzalloc(sizeof(*i2s_ck), GFP_KERNEL);
+ i2s_ck = kzalloc_obj(*i2s_ck, GFP_KERNEL);
if (!i2s_ck)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/at91/clk-main.c b/drivers/clk/at91/clk-main.c
index 9b462becc693..51b0421d01e3 100644
--- a/drivers/clk/at91/clk-main.c
+++ b/drivers/clk/at91/clk-main.c
@@ -163,7 +163,7 @@ at91_clk_register_main_osc(struct regmap *regmap,
if (!name || !(parent_name || parent_data))
return ERR_PTR(-EINVAL);
- osc = kzalloc(sizeof(*osc), GFP_KERNEL);
+ osc = kzalloc_obj(*osc, GFP_KERNEL);
if (!osc)
return ERR_PTR(-ENOMEM);
@@ -306,7 +306,7 @@ at91_clk_register_main_rc_osc(struct regmap *regmap,
if (!name || !frequency)
return ERR_PTR(-EINVAL);
- osc = kzalloc(sizeof(*osc), GFP_KERNEL);
+ osc = kzalloc_obj(*osc, GFP_KERNEL);
if (!osc)
return ERR_PTR(-ENOMEM);
@@ -415,7 +415,7 @@ at91_clk_register_rm9200_main(struct regmap *regmap,
if (!(parent_name || parent_hw))
return ERR_PTR(-EINVAL);
- clkmain = kzalloc(sizeof(*clkmain), GFP_KERNEL);
+ clkmain = kzalloc_obj(*clkmain, GFP_KERNEL);
if (!clkmain)
return ERR_PTR(-ENOMEM);
@@ -567,7 +567,7 @@ at91_clk_register_sam9x5_main(struct regmap *regmap,
if (!(parent_hws || parent_names) || !num_parents)
return ERR_PTR(-EINVAL);
- clkmain = kzalloc(sizeof(*clkmain), GFP_KERNEL);
+ clkmain = kzalloc_obj(*clkmain, GFP_KERNEL);
if (!clkmain)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/at91/clk-master.c b/drivers/clk/at91/clk-master.c
index d5ea2069ec83..5e4f5fcc0645 100644
--- a/drivers/clk/at91/clk-master.c
+++ b/drivers/clk/at91/clk-master.c
@@ -488,7 +488,7 @@ at91_clk_register_master_internal(struct regmap *regmap,
if (!name || !num_parents || !(parent_names || parent_hws) || !lock)
return ERR_PTR(-EINVAL);
- master = kzalloc(sizeof(*master), GFP_KERNEL);
+ master = kzalloc_obj(*master, GFP_KERNEL);
if (!master)
return ERR_PTR(-ENOMEM);
@@ -831,7 +831,7 @@ at91_clk_sama7g5_register_master(struct regmap *regmap,
!lock || id > MASTER_MAX_ID)
return ERR_PTR(-EINVAL);
- master = kzalloc(sizeof(*master), GFP_KERNEL);
+ master = kzalloc_obj(*master, GFP_KERNEL);
if (!master)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/at91/clk-peripheral.c b/drivers/clk/at91/clk-peripheral.c
index e7208c47268b..dda4217aaf85 100644
--- a/drivers/clk/at91/clk-peripheral.c
+++ b/drivers/clk/at91/clk-peripheral.c
@@ -109,7 +109,7 @@ at91_clk_register_peripheral(struct regmap *regmap, const char *name,
if (!name || !(parent_name || parent_hw) || id > PERIPHERAL_ID_MAX)
return ERR_PTR(-EINVAL);
- periph = kzalloc(sizeof(*periph), GFP_KERNEL);
+ periph = kzalloc_obj(*periph, GFP_KERNEL);
if (!periph)
return ERR_PTR(-ENOMEM);
@@ -471,7 +471,7 @@ at91_clk_register_sam9x5_peripheral(struct regmap *regmap, spinlock_t *lock,
if (!name || !(parent_name || parent_hw))
return ERR_PTR(-EINVAL);
- periph = kzalloc(sizeof(*periph), GFP_KERNEL);
+ periph = kzalloc_obj(*periph, GFP_KERNEL);
if (!periph)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/at91/clk-pll.c b/drivers/clk/at91/clk-pll.c
index 5c5f7398effe..083e7524ff8f 100644
--- a/drivers/clk/at91/clk-pll.c
+++ b/drivers/clk/at91/clk-pll.c
@@ -326,7 +326,7 @@ at91_clk_register_pll(struct regmap *regmap, const char *name,
if (id > PLL_MAX_ID)
return ERR_PTR(-EINVAL);
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/at91/clk-plldiv.c b/drivers/clk/at91/clk-plldiv.c
index 3ac09fecc54e..27feb5207b40 100644
--- a/drivers/clk/at91/clk-plldiv.c
+++ b/drivers/clk/at91/clk-plldiv.c
@@ -91,7 +91,7 @@ at91_clk_register_plldiv(struct regmap *regmap, const char *name,
struct clk_init_data init;
int ret;
- plldiv = kzalloc(sizeof(*plldiv), GFP_KERNEL);
+ plldiv = kzalloc_obj(*plldiv, GFP_KERNEL);
if (!plldiv)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/at91/clk-programmable.c b/drivers/clk/at91/clk-programmable.c
index 1195fb405503..a87e63f4c3f8 100644
--- a/drivers/clk/at91/clk-programmable.c
+++ b/drivers/clk/at91/clk-programmable.c
@@ -227,7 +227,7 @@ at91_clk_register_programmable(struct regmap *regmap,
if (id > PROG_ID_MAX || !(parent_names || parent_hws))
return ERR_PTR(-EINVAL);
- prog = kzalloc(sizeof(*prog), GFP_KERNEL);
+ prog = kzalloc_obj(*prog, GFP_KERNEL);
if (!prog)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/at91/clk-sam9x60-pll.c b/drivers/clk/at91/clk-sam9x60-pll.c
index 3b965057ba0d..5f5cecbcf207 100644
--- a/drivers/clk/at91/clk-sam9x60-pll.c
+++ b/drivers/clk/at91/clk-sam9x60-pll.c
@@ -652,7 +652,7 @@ sam9x60_clk_register_frac_pll(struct regmap *regmap, spinlock_t *lock,
if (id > PLL_MAX_ID || !lock || !parent_hw)
return ERR_PTR(-EINVAL);
- frac = kzalloc(sizeof(*frac), GFP_KERNEL);
+ frac = kzalloc_obj(*frac, GFP_KERNEL);
if (!frac)
return ERR_PTR(-ENOMEM);
@@ -744,7 +744,7 @@ sam9x60_clk_register_div_pll(struct regmap *regmap, spinlock_t *lock,
if (safe_div >= PLL_DIV_MAX)
safe_div = PLL_DIV_MAX - 1;
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/at91/clk-slow.c b/drivers/clk/at91/clk-slow.c
index ac9f7a48b76e..e39db89e2a37 100644
--- a/drivers/clk/at91/clk-slow.c
+++ b/drivers/clk/at91/clk-slow.c
@@ -52,7 +52,7 @@ at91_clk_register_sam9260_slow(struct regmap *regmap,
if (!parent_names || !num_parents)
return ERR_PTR(-EINVAL);
- slowck = kzalloc(sizeof(*slowck), GFP_KERNEL);
+ slowck = kzalloc_obj(*slowck, GFP_KERNEL);
if (!slowck)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/at91/clk-smd.c b/drivers/clk/at91/clk-smd.c
index 09c649c8598e..3c07dcd3cc2c 100644
--- a/drivers/clk/at91/clk-smd.c
+++ b/drivers/clk/at91/clk-smd.c
@@ -118,7 +118,7 @@ at91sam9x5_clk_register_smd(struct regmap *regmap, const char *name,
struct clk_init_data init;
int ret;
- smd = kzalloc(sizeof(*smd), GFP_KERNEL);
+ smd = kzalloc_obj(*smd, GFP_KERNEL);
if (!smd)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/at91/clk-system.c b/drivers/clk/at91/clk-system.c
index 90eed39d0785..c3de1dabf283 100644
--- a/drivers/clk/at91/clk-system.c
+++ b/drivers/clk/at91/clk-system.c
@@ -116,7 +116,7 @@ at91_clk_register_system(struct regmap *regmap, const char *name,
if (!(parent_name || parent_hw) || id > SYSTEM_MAX_ID)
return ERR_PTR(-EINVAL);
- sys = kzalloc(sizeof(*sys), GFP_KERNEL);
+ sys = kzalloc_obj(*sys, GFP_KERNEL);
if (!sys)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/at91/clk-usb.c b/drivers/clk/at91/clk-usb.c
index e906928cfbf0..e5107d0cf383 100644
--- a/drivers/clk/at91/clk-usb.c
+++ b/drivers/clk/at91/clk-usb.c
@@ -229,7 +229,7 @@ _at91sam9x5_clk_register_usb(struct regmap *regmap, const char *name,
struct clk_init_data init;
int ret;
- usb = kzalloc(sizeof(*usb), GFP_KERNEL);
+ usb = kzalloc_obj(*usb, GFP_KERNEL);
if (!usb)
return ERR_PTR(-ENOMEM);
@@ -280,7 +280,7 @@ at91sam9n12_clk_register_usb(struct regmap *regmap, const char *name,
struct clk_init_data init;
int ret;
- usb = kzalloc(sizeof(*usb), GFP_KERNEL);
+ usb = kzalloc_obj(*usb, GFP_KERNEL);
if (!usb)
return ERR_PTR(-ENOMEM);
@@ -399,7 +399,7 @@ at91rm9200_clk_register_usb(struct regmap *regmap, const char *name,
struct clk_init_data init;
int ret;
- usb = kzalloc(sizeof(*usb), GFP_KERNEL);
+ usb = kzalloc_obj(*usb, GFP_KERNEL);
if (!usb)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/at91/clk-utmi.c b/drivers/clk/at91/clk-utmi.c
index b991180beea1..f318c11bbc44 100644
--- a/drivers/clk/at91/clk-utmi.c
+++ b/drivers/clk/at91/clk-utmi.c
@@ -155,7 +155,7 @@ at91_clk_register_utmi_internal(struct regmap *regmap_pmc,
if (!(parent_name || parent_hw))
return ERR_PTR(-EINVAL);
- utmi = kzalloc(sizeof(*utmi), GFP_KERNEL);
+ utmi = kzalloc_obj(*utmi, GFP_KERNEL);
if (!utmi)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/at91/dt-compat.c b/drivers/clk/at91/dt-compat.c
index f5a5f9ba7634..dddcfcf453a1 100644
--- a/drivers/clk/at91/dt-compat.c
+++ b/drivers/clk/at91/dt-compat.c
@@ -369,7 +369,7 @@ of_at91_clk_master_get_characteristics(struct device_node *np)
{
struct clk_master_characteristics *characteristics;
- characteristics = kzalloc(sizeof(*characteristics), GFP_KERNEL);
+ characteristics = kzalloc_obj(*characteristics, GFP_KERNEL);
if (!characteristics)
return NULL;
@@ -568,11 +568,11 @@ of_at91_clk_pll_get_characteristics(struct device_node *np)
return NULL;
num_output /= num_cells;
- characteristics = kzalloc(sizeof(*characteristics), GFP_KERNEL);
+ characteristics = kzalloc_obj(*characteristics, GFP_KERNEL);
if (!characteristics)
return NULL;
- output = kcalloc(num_output, sizeof(*output), GFP_KERNEL);
+ output = kzalloc_objs(*output, num_output, GFP_KERNEL);
if (!output)
goto out_free_characteristics;
diff --git a/drivers/clk/at91/pmc.c b/drivers/clk/at91/pmc.c
index 2310f6f73162..261c91d449e7 100644
--- a/drivers/clk/at91/pmc.c
+++ b/drivers/clk/at91/pmc.c
@@ -87,8 +87,7 @@ struct pmc_data *pmc_data_allocate(unsigned int ncore, unsigned int nsystem,
unsigned int num_clks = ncore + nsystem + nperiph + ngck + npck;
struct pmc_data *pmc_data;
- pmc_data = kzalloc(struct_size(pmc_data, hwtable, num_clks),
- GFP_KERNEL);
+ pmc_data = kzalloc_flex(*pmc_data, hwtable, num_clks, GFP_KERNEL);
if (!pmc_data)
return NULL;
diff --git a/drivers/clk/at91/sckc.c b/drivers/clk/at91/sckc.c
index 021d1b412af4..8ce851dc3e3f 100644
--- a/drivers/clk/at91/sckc.c
+++ b/drivers/clk/at91/sckc.c
@@ -132,7 +132,7 @@ at91_clk_register_slow_osc(void __iomem *sckcr,
if (!sckcr || !name || !parent_data)
return ERR_PTR(-EINVAL);
- osc = kzalloc(sizeof(*osc), GFP_KERNEL);
+ osc = kzalloc_obj(*osc, GFP_KERNEL);
if (!osc)
return ERR_PTR(-ENOMEM);
@@ -239,7 +239,7 @@ at91_clk_register_slow_rc_osc(void __iomem *sckcr,
if (!sckcr || !name)
return ERR_PTR(-EINVAL);
- osc = kzalloc(sizeof(*osc), GFP_KERNEL);
+ osc = kzalloc_obj(*osc, GFP_KERNEL);
if (!osc)
return ERR_PTR(-ENOMEM);
@@ -332,7 +332,7 @@ at91_clk_register_sam9x5_slow(void __iomem *sckcr,
if (!sckcr || !name || !parent_hws || !num_parents)
return ERR_PTR(-EINVAL);
- slowck = kzalloc(sizeof(*slowck), GFP_KERNEL);
+ slowck = kzalloc_obj(*slowck, GFP_KERNEL);
if (!slowck)
return ERR_PTR(-ENOMEM);
@@ -502,7 +502,7 @@ static void __init of_sam9x60_sckc_setup(struct device_node *np)
if (IS_ERR(slow_osc))
goto unregister_slow_rc;
- clk_data = kzalloc(struct_size(clk_data, hws, 2), GFP_KERNEL);
+ clk_data = kzalloc_flex(*clk_data, hws, 2, GFP_KERNEL);
if (!clk_data)
goto unregister_slow_osc;
@@ -611,7 +611,7 @@ static void __init of_sama5d4_sckc_setup(struct device_node *np)
goto unregister_slow_rc;
parent_data.fw_name = xtal_name;
- osc = kzalloc(sizeof(*osc), GFP_KERNEL);
+ osc = kzalloc_obj(*osc, GFP_KERNEL);
if (!osc)
goto unregister_slow_rc;
diff --git a/drivers/clk/axis/clk-artpec6.c b/drivers/clk/axis/clk-artpec6.c
index a3f349d4624d..792f00b7c94e 100644
--- a/drivers/clk/axis/clk-artpec6.c
+++ b/drivers/clk/axis/clk-artpec6.c
@@ -49,7 +49,7 @@ static void of_artpec6_clkctrl_setup(struct device_node *np)
sys_refclk_name = of_clk_get_parent_name(np, i);
- clkdata = kzalloc(sizeof(*clkdata), GFP_KERNEL);
+ clkdata = kzalloc_obj(*clkdata, GFP_KERNEL);
if (!clkdata)
return;
diff --git a/drivers/clk/axs10x/pll_clock.c b/drivers/clk/axs10x/pll_clock.c
index c7ca473ee76c..594455f0918a 100644
--- a/drivers/clk/axs10x/pll_clock.c
+++ b/drivers/clk/axs10x/pll_clock.c
@@ -265,7 +265,7 @@ static void __init of_axs10x_pll_clk_setup(struct device_node *node)
struct clk_init_data init = { };
int ret;
- pll_clk = kzalloc(sizeof(*pll_clk), GFP_KERNEL);
+ pll_clk = kzalloc_obj(*pll_clk, GFP_KERNEL);
if (!pll_clk)
return;
diff --git a/drivers/clk/baikal-t1/ccu-div.c b/drivers/clk/baikal-t1/ccu-div.c
index 849d1f55765f..c9dd59b1c551 100644
--- a/drivers/clk/baikal-t1/ccu-div.c
+++ b/drivers/clk/baikal-t1/ccu-div.c
@@ -447,7 +447,7 @@ static void ccu_div_var_debug_init(struct clk_hw *hw, struct dentry *dentry)
num += !!(div->flags & CLK_SET_RATE_GATE) +
!!(div->features & CCU_DIV_RESET_DOMAIN);
- bits = kcalloc(num, sizeof(*bits), GFP_KERNEL);
+ bits = kzalloc_objs(*bits, num, GFP_KERNEL);
if (!bits)
return;
@@ -489,7 +489,7 @@ static void ccu_div_gate_debug_init(struct clk_hw *hw, struct dentry *dentry)
struct ccu_div *div = to_ccu_div(hw);
struct ccu_div_dbgfs_bit *bit;
- bit = kmalloc(sizeof(*bit), GFP_KERNEL);
+ bit = kmalloc_obj(*bit, GFP_KERNEL);
if (!bit)
return;
@@ -507,7 +507,7 @@ static void ccu_div_buf_debug_init(struct clk_hw *hw, struct dentry *dentry)
struct ccu_div *div = to_ccu_div(hw);
struct ccu_div_dbgfs_bit *bit;
- bit = kmalloc(sizeof(*bit), GFP_KERNEL);
+ bit = kmalloc_obj(*bit, GFP_KERNEL);
if (!bit)
return;
@@ -585,7 +585,7 @@ struct ccu_div *ccu_div_hw_register(const struct ccu_div_init_data *div_init)
if (!div_init)
return ERR_PTR(-EINVAL);
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/baikal-t1/ccu-pll.c b/drivers/clk/baikal-t1/ccu-pll.c
index 357269f41cdc..02b3390cf87f 100644
--- a/drivers/clk/baikal-t1/ccu-pll.c
+++ b/drivers/clk/baikal-t1/ccu-pll.c
@@ -445,7 +445,7 @@ static void ccu_pll_debug_init(struct clk_hw *hw, struct dentry *dentry)
struct ccu_pll_dbgfs_fld *flds;
int idx;
- bits = kcalloc(CCU_PLL_DBGFS_BIT_NUM, sizeof(*bits), GFP_KERNEL);
+ bits = kzalloc_objs(*bits, CCU_PLL_DBGFS_BIT_NUM, GFP_KERNEL);
if (!bits)
return;
@@ -458,7 +458,7 @@ static void ccu_pll_debug_init(struct clk_hw *hw, struct dentry *dentry)
&ccu_pll_dbgfs_bit_fops);
}
- flds = kcalloc(CCU_PLL_DBGFS_FLD_NUM, sizeof(*flds), GFP_KERNEL);
+ flds = kzalloc_objs(*flds, CCU_PLL_DBGFS_FLD_NUM, GFP_KERNEL);
if (!flds)
return;
@@ -508,7 +508,7 @@ struct ccu_pll *ccu_pll_hw_register(const struct ccu_pll_init_data *pll_init)
if (!pll_init)
return ERR_PTR(-EINVAL);
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/baikal-t1/ccu-rst.c b/drivers/clk/baikal-t1/ccu-rst.c
index 40023ea67463..18a60273a174 100644
--- a/drivers/clk/baikal-t1/ccu-rst.c
+++ b/drivers/clk/baikal-t1/ccu-rst.c
@@ -172,7 +172,7 @@ struct ccu_rst *ccu_rst_hw_register(const struct ccu_rst_init_data *rst_init)
if (!rst_init)
return ERR_PTR(-EINVAL);
- rst = kzalloc(sizeof(*rst), GFP_KERNEL);
+ rst = kzalloc_obj(*rst, GFP_KERNEL);
if (!rst)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/baikal-t1/clk-ccu-div.c b/drivers/clk/baikal-t1/clk-ccu-div.c
index 17d75e8e2e8f..addccc4014f9 100644
--- a/drivers/clk/baikal-t1/clk-ccu-div.c
+++ b/drivers/clk/baikal-t1/clk-ccu-div.c
@@ -271,7 +271,7 @@ static struct ccu_div_data *ccu_div_create_data(struct device_node *np)
struct ccu_div_data *data;
int ret;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return ERR_PTR(-ENOMEM);
@@ -289,7 +289,7 @@ static struct ccu_div_data *ccu_div_create_data(struct device_node *np)
goto err_kfree_data;
}
- data->divs = kcalloc(data->divs_num, sizeof(*data->divs), GFP_KERNEL);
+ data->divs = kzalloc_objs(*data->divs, data->divs_num, GFP_KERNEL);
if (!data->divs) {
ret = -ENOMEM;
goto err_kfree_data;
diff --git a/drivers/clk/baikal-t1/clk-ccu-pll.c b/drivers/clk/baikal-t1/clk-ccu-pll.c
index 921b87024feb..ace46b60497e 100644
--- a/drivers/clk/baikal-t1/clk-ccu-pll.c
+++ b/drivers/clk/baikal-t1/clk-ccu-pll.c
@@ -100,7 +100,7 @@ static struct ccu_pll_data *ccu_pll_create_data(struct device_node *np)
{
struct ccu_pll_data *data;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index 02215ea79403..971131677b5a 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1357,7 +1357,7 @@ static struct clk_hw *bcm2835_register_pll(struct bcm2835_cprman *cprman,
init.ops = &bcm2835_pll_clk_ops;
init.flags = pll_data->flags | CLK_IGNORE_UNUSED;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return NULL;
diff --git a/drivers/clk/bcm/clk-bcm53573-ilp.c b/drivers/clk/bcm/clk-bcm53573-ilp.c
index b2fc05b60783..e12a5384b95f 100644
--- a/drivers/clk/bcm/clk-bcm53573-ilp.c
+++ b/drivers/clk/bcm/clk-bcm53573-ilp.c
@@ -102,7 +102,7 @@ static void bcm53573_ilp_init(struct device_node *np)
const char *parent_name;
int err;
- ilp = kzalloc(sizeof(*ilp), GFP_KERNEL);
+ ilp = kzalloc_obj(*ilp, GFP_KERNEL);
if (!ilp)
return;
diff --git a/drivers/clk/bcm/clk-iproc-armpll.c b/drivers/clk/bcm/clk-iproc-armpll.c
index 9e86c0c10b57..e08e828666ea 100644
--- a/drivers/clk/bcm/clk-iproc-armpll.c
+++ b/drivers/clk/bcm/clk-iproc-armpll.c
@@ -238,7 +238,7 @@ void __init iproc_armpll_setup(struct device_node *node)
struct clk_init_data init;
const char *parent_name;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (WARN_ON(!pll))
return;
diff --git a/drivers/clk/bcm/clk-iproc-asiu.c b/drivers/clk/bcm/clk-iproc-asiu.c
index 83ec13da9b2e..258c6b2921bd 100644
--- a/drivers/clk/bcm/clk-iproc-asiu.c
+++ b/drivers/clk/bcm/clk-iproc-asiu.c
@@ -188,17 +188,17 @@ void __init iproc_asiu_setup(struct device_node *node,
if (WARN_ON(!gate || !div))
return;
- asiu = kzalloc(sizeof(*asiu), GFP_KERNEL);
+ asiu = kzalloc_obj(*asiu, GFP_KERNEL);
if (WARN_ON(!asiu))
return;
- asiu->clk_data = kzalloc(struct_size(asiu->clk_data, hws, num_clks),
- GFP_KERNEL);
+ asiu->clk_data = kzalloc_flex(*asiu->clk_data, hws, num_clks,
+ GFP_KERNEL);
if (WARN_ON(!asiu->clk_data))
goto err_clks;
asiu->clk_data->num = num_clks;
- asiu->clks = kcalloc(num_clks, sizeof(*asiu->clks), GFP_KERNEL);
+ asiu->clks = kzalloc_objs(*asiu->clks, num_clks, GFP_KERNEL);
if (WARN_ON(!asiu->clks))
goto err_asiu_clks;
diff --git a/drivers/clk/bcm/clk-iproc-pll.c b/drivers/clk/bcm/clk-iproc-pll.c
index 680f9d8d357c..3eab95a59b50 100644
--- a/drivers/clk/bcm/clk-iproc-pll.c
+++ b/drivers/clk/bcm/clk-iproc-pll.c
@@ -731,16 +731,16 @@ void iproc_pll_clk_setup(struct device_node *node,
if (WARN_ON(!pll_ctrl) || WARN_ON(!clk_ctrl))
return;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (WARN_ON(!pll))
return;
- clk_data = kzalloc(struct_size(clk_data, hws, num_clks), GFP_KERNEL);
+ clk_data = kzalloc_flex(*clk_data, hws, num_clks, GFP_KERNEL);
if (WARN_ON(!clk_data))
goto err_clk_data;
clk_data->num = num_clks;
- iclk_array = kcalloc(num_clks, sizeof(struct iproc_clk), GFP_KERNEL);
+ iclk_array = kzalloc_objs(struct iproc_clk, num_clks, GFP_KERNEL);
if (WARN_ON(!iclk_array))
goto err_clks;
diff --git a/drivers/clk/berlin/berlin2-avpll.c b/drivers/clk/berlin/berlin2-avpll.c
index 79f3d37a0ee0..4c5881baf027 100644
--- a/drivers/clk/berlin/berlin2-avpll.c
+++ b/drivers/clk/berlin/berlin2-avpll.c
@@ -184,7 +184,7 @@ int __init berlin2_avpll_vco_register(void __iomem *base,
struct berlin2_avpll_vco *vco;
struct clk_init_data init;
- vco = kzalloc(sizeof(*vco), GFP_KERNEL);
+ vco = kzalloc_obj(*vco, GFP_KERNEL);
if (!vco)
return -ENOMEM;
@@ -360,7 +360,7 @@ int __init berlin2_avpll_channel_register(void __iomem *base,
struct berlin2_avpll_channel *ch;
struct clk_init_data init;
- ch = kzalloc(sizeof(*ch), GFP_KERNEL);
+ ch = kzalloc_obj(*ch, GFP_KERNEL);
if (!ch)
return -ENOMEM;
diff --git a/drivers/clk/berlin/berlin2-div.c b/drivers/clk/berlin/berlin2-div.c
index 0a248bfe2193..6498823133c0 100644
--- a/drivers/clk/berlin/berlin2-div.c
+++ b/drivers/clk/berlin/berlin2-div.c
@@ -236,7 +236,7 @@ berlin2_div_register(const struct berlin2_div_map *map,
const struct clk_ops *gate_ops = &berlin2_div_gate_ops;
struct berlin2_div *div;
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/berlin/berlin2-pll.c b/drivers/clk/berlin/berlin2-pll.c
index 9661820717a5..6557b275a718 100644
--- a/drivers/clk/berlin/berlin2-pll.c
+++ b/drivers/clk/berlin/berlin2-pll.c
@@ -81,7 +81,7 @@ berlin2_pll_register(const struct berlin2_pll_map *map,
struct clk_init_data init;
struct berlin2_pll *pll;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return -ENOMEM;
diff --git a/drivers/clk/berlin/bg2.c b/drivers/clk/berlin/bg2.c
index 67a9edbba29c..9a08a16b2026 100644
--- a/drivers/clk/berlin/bg2.c
+++ b/drivers/clk/berlin/bg2.c
@@ -499,7 +499,7 @@ static void __init berlin2_clock_setup(struct device_node *np)
u8 avpll_flags = 0;
int n, ret;
- clk_data = kzalloc(struct_size(clk_data, hws, MAX_CLKS), GFP_KERNEL);
+ clk_data = kzalloc_flex(*clk_data, hws, MAX_CLKS, GFP_KERNEL);
if (!clk_data) {
of_node_put(parent_np);
return;
diff --git a/drivers/clk/berlin/bg2q.c b/drivers/clk/berlin/bg2q.c
index dd2784bb75b6..58611495ae1d 100644
--- a/drivers/clk/berlin/bg2q.c
+++ b/drivers/clk/berlin/bg2q.c
@@ -285,7 +285,7 @@ static void __init berlin2q_clock_setup(struct device_node *np)
struct clk_hw **hws;
int n, ret;
- clk_data = kzalloc(struct_size(clk_data, hws, MAX_CLKS), GFP_KERNEL);
+ clk_data = kzalloc_flex(*clk_data, hws, MAX_CLKS, GFP_KERNEL);
if (!clk_data) {
of_node_put(parent_np);
return;
diff --git a/drivers/clk/clk-asm9260.c b/drivers/clk/clk-asm9260.c
index 595cfa533fb9..08e69d69d1fb 100644
--- a/drivers/clk/clk-asm9260.c
+++ b/drivers/clk/clk-asm9260.c
@@ -262,7 +262,7 @@ static void __init asm9260_acc_init(struct device_node *np)
u32 rate;
int n;
- clk_data = kzalloc(struct_size(clk_data, hws, MAX_CLKS), GFP_KERNEL);
+ clk_data = kzalloc_flex(*clk_data, hws, MAX_CLKS, GFP_KERNEL);
if (!clk_data)
return;
clk_data->num = MAX_CLKS;
diff --git a/drivers/clk/clk-bm1880.c b/drivers/clk/clk-bm1880.c
index 1bdceb36fa87..47c64f16e129 100644
--- a/drivers/clk/clk-bm1880.c
+++ b/drivers/clk/clk-bm1880.c
@@ -764,7 +764,7 @@ static struct clk_hw *bm1880_clk_register_composite(struct bm1880_composite_cloc
int ret;
if (clks->mux_shift >= 0) {
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return ERR_PTR(-ENOMEM);
@@ -784,7 +784,7 @@ static struct clk_hw *bm1880_clk_register_composite(struct bm1880_composite_cloc
}
if (clks->gate_shift >= 0) {
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate) {
ret = -ENOMEM;
goto err_out;
@@ -799,7 +799,7 @@ static struct clk_hw *bm1880_clk_register_composite(struct bm1880_composite_cloc
}
if (clks->div_shift >= 0) {
- div_hws = kzalloc(sizeof(*div_hws), GFP_KERNEL);
+ div_hws = kzalloc_obj(*div_hws, GFP_KERNEL);
if (!div_hws) {
ret = -ENOMEM;
goto err_out;
diff --git a/drivers/clk/clk-bulk.c b/drivers/clk/clk-bulk.c
index 826b3ff99433..1039cf038850 100644
--- a/drivers/clk/clk-bulk.c
+++ b/drivers/clk/clk-bulk.c
@@ -54,7 +54,7 @@ static int __must_check of_clk_bulk_get_all(struct device_node *np,
if (!num_clks)
return 0;
- clk_bulk = kmalloc_array(num_clks, sizeof(*clk_bulk), GFP_KERNEL);
+ clk_bulk = kmalloc_objs(*clk_bulk, num_clks, GFP_KERNEL);
if (!clk_bulk)
return -ENOMEM;
diff --git a/drivers/clk/clk-clps711x.c b/drivers/clk/clk-clps711x.c
index 402ab74d9bfb..babe42e59533 100644
--- a/drivers/clk/clk-clps711x.c
+++ b/drivers/clk/clk-clps711x.c
@@ -53,9 +53,8 @@ static void __init clps711x_clk_init_dt(struct device_node *np)
base = of_iomap(np, 0);
BUG_ON(!base);
- clps711x_clk = kzalloc(struct_size(clps711x_clk, clk_data.hws,
- CLPS711X_CLK_MAX),
- GFP_KERNEL);
+ clps711x_clk = kzalloc_flex(*clps711x_clk, clk_data.hws,
+ CLPS711X_CLK_MAX, GFP_KERNEL);
BUG_ON(!clps711x_clk);
spin_lock_init(&clps711x_clk->lock);
diff --git a/drivers/clk/clk-composite.c b/drivers/clk/clk-composite.c
index 66759fe28fad..20e45856e8d6 100644
--- a/drivers/clk/clk-composite.c
+++ b/drivers/clk/clk-composite.c
@@ -248,7 +248,7 @@ static struct clk_hw *__clk_hw_register_composite(struct device *dev,
struct clk_ops *clk_composite_ops;
int ret;
- composite = kzalloc(sizeof(*composite), GFP_KERNEL);
+ composite = kzalloc_obj(*composite, GFP_KERNEL);
if (!composite)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c
index 2601b6155afb..e91bcdb092db 100644
--- a/drivers/clk/clk-divider.c
+++ b/drivers/clk/clk-divider.c
@@ -538,7 +538,7 @@ struct clk_hw *__clk_hw_register_divider(struct device *dev,
}
/* allocate the divider */
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/clk-eyeq.c b/drivers/clk/clk-eyeq.c
index ea1c3d78e7cd..a41f8706df18 100644
--- a/drivers/clk/clk-eyeq.c
+++ b/drivers/clk/clk-eyeq.c
@@ -335,7 +335,7 @@ static int eqc_auxdev_create(struct device *dev, void __iomem *base,
struct auxiliary_device *adev;
int ret;
- adev = kzalloc(sizeof(*adev), GFP_KERNEL);
+ adev = kzalloc_obj(*adev, GFP_KERNEL);
if (!adev)
return -ENOMEM;
@@ -400,7 +400,7 @@ static int eqc_probe(struct platform_device *pdev)
clk_count = data->pll_count + data->div_count +
data->fixed_factor_count + data->early_clk_count;
- cells = kzalloc(struct_size(cells, hws, clk_count), GFP_KERNEL);
+ cells = kzalloc_flex(*cells, hws, clk_count, GFP_KERNEL);
if (!cells)
return -ENOMEM;
@@ -738,7 +738,7 @@ static void __init eqc_early_init(struct device_node *np,
clk_count = early_data->early_pll_count + early_data->early_fixed_factor_count +
early_data->late_clk_count;
- cells = kzalloc(struct_size(cells, hws, clk_count), GFP_KERNEL);
+ cells = kzalloc_flex(*cells, hws, clk_count, GFP_KERNEL);
if (!cells) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/clk/clk-fixed-factor.c b/drivers/clk/clk-fixed-factor.c
index de658c9e4c53..40cfb6af38bb 100644
--- a/drivers/clk/clk-fixed-factor.c
+++ b/drivers/clk/clk-fixed-factor.c
@@ -110,7 +110,7 @@ __clk_hw_register_fixed_factor(struct device *dev, struct device_node *np,
fix = devres_alloc(devm_clk_hw_register_fixed_factor_release,
sizeof(*fix), GFP_KERNEL);
else
- fix = kmalloc(sizeof(*fix), GFP_KERNEL);
+ fix = kmalloc_obj(*fix, GFP_KERNEL);
if (!fix)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/clk-fixed-rate.c b/drivers/clk/clk-fixed-rate.c
index 6b4f76b9c4da..ef48ee88df46 100644
--- a/drivers/clk/clk-fixed-rate.c
+++ b/drivers/clk/clk-fixed-rate.c
@@ -78,7 +78,7 @@ struct clk_hw *__clk_hw_register_fixed_rate(struct device *dev,
fixed = devres_alloc(devm_clk_hw_register_fixed_rate_release,
sizeof(*fixed), GFP_KERNEL);
else
- fixed = kzalloc(sizeof(*fixed), GFP_KERNEL);
+ fixed = kzalloc_obj(*fixed, GFP_KERNEL);
if (!fixed)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/clk-fractional-divider.c b/drivers/clk/clk-fractional-divider.c
index cd36a6e27f25..065ceb9b3a49 100644
--- a/drivers/clk/clk-fractional-divider.c
+++ b/drivers/clk/clk-fractional-divider.c
@@ -275,7 +275,7 @@ struct clk_hw *clk_hw_register_fractional_divider(struct device *dev,
struct clk_hw *hw;
int ret;
- fd = kzalloc(sizeof(*fd), GFP_KERNEL);
+ fd = kzalloc_obj(*fd, GFP_KERNEL);
if (!fd)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/clk-gate.c b/drivers/clk/clk-gate.c
index 4746f8219132..0c5cbb3f3e75 100644
--- a/drivers/clk/clk-gate.c
+++ b/drivers/clk/clk-gate.c
@@ -145,7 +145,7 @@ struct clk_hw *__clk_hw_register_gate(struct device *dev,
}
/* allocate the gate */
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/clk-gemini.c b/drivers/clk/clk-gemini.c
index e94589c38568..877db2e6efd1 100644
--- a/drivers/clk/clk-gemini.c
+++ b/drivers/clk/clk-gemini.c
@@ -197,7 +197,7 @@ static struct clk_hw *gemini_pci_clk_setup(const char *name,
struct clk_init_data init;
int ret;
- pciclk = kzalloc(sizeof(*pciclk), GFP_KERNEL);
+ pciclk = kzalloc_obj(*pciclk, GFP_KERNEL);
if (!pciclk)
return ERR_PTR(-ENOMEM);
@@ -398,9 +398,8 @@ static void __init gemini_cc_init(struct device_node *np)
int ret;
int i;
- gemini_clk_data = kzalloc(struct_size(gemini_clk_data, hws,
- GEMINI_NUM_CLKS),
- GFP_KERNEL);
+ gemini_clk_data = kzalloc_flex(*gemini_clk_data, hws, GEMINI_NUM_CLKS,
+ GFP_KERNEL);
if (!gemini_clk_data)
return;
gemini_clk_data->num = GEMINI_NUM_CLKS;
diff --git a/drivers/clk/clk-highbank.c b/drivers/clk/clk-highbank.c
index cc583934ecf2..2642314b4735 100644
--- a/drivers/clk/clk-highbank.c
+++ b/drivers/clk/clk-highbank.c
@@ -277,7 +277,7 @@ static void __init hb_clk_init(struct device_node *node, const struct clk_ops *o
if (WARN_ON(rc))
return;
- hb_clk = kzalloc(sizeof(*hb_clk), GFP_KERNEL);
+ hb_clk = kzalloc_obj(*hb_clk, GFP_KERNEL);
if (WARN_ON(!hb_clk))
return;
diff --git a/drivers/clk/clk-hsdk-pll.c b/drivers/clk/clk-hsdk-pll.c
index 7d56a47c2aa7..0ea108366136 100644
--- a/drivers/clk/clk-hsdk-pll.c
+++ b/drivers/clk/clk-hsdk-pll.c
@@ -357,7 +357,7 @@ static void __init of_hsdk_pll_clk_setup(struct device_node *node)
struct hsdk_pll_clk *pll_clk;
struct clk_init_data init = { };
- pll_clk = kzalloc(sizeof(*pll_clk), GFP_KERNEL);
+ pll_clk = kzalloc_obj(*pll_clk, GFP_KERNEL);
if (!pll_clk)
return;
diff --git a/drivers/clk/clk-k210.c b/drivers/clk/clk-k210.c
index 7b7329a907ab..ffcb4e1b3488 100644
--- a/drivers/clk/clk-k210.c
+++ b/drivers/clk/clk-k210.c
@@ -893,7 +893,7 @@ static void __init k210_clk_init(struct device_node *np)
struct k210_sysclk *ksc;
int i, ret;
- ksc = kzalloc(sizeof(*ksc), GFP_KERNEL);
+ ksc = kzalloc_obj(*ksc, GFP_KERNEL);
if (!ksc)
return;
diff --git a/drivers/clk/clk-milbeaut.c b/drivers/clk/clk-milbeaut.c
index 45389db652e0..6a27411c9f9f 100644
--- a/drivers/clk/clk-milbeaut.c
+++ b/drivers/clk/clk-milbeaut.c
@@ -333,7 +333,7 @@ static struct clk_hw *m10v_clk_hw_register_mux(struct device *dev,
struct clk_init_data init;
int ret;
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return ERR_PTR(-ENOMEM);
@@ -464,7 +464,7 @@ static struct clk_hw *m10v_clk_hw_register_divider(struct device *dev,
struct clk_init_data init;
int ret;
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
return ERR_PTR(-ENOMEM);
@@ -611,9 +611,8 @@ static void __init m10v_cc_init(struct device_node *np)
const char *parent_name;
struct clk_hw *hw;
- m10v_clk_data = kzalloc(struct_size(m10v_clk_data, hws,
- M10V_NUM_CLKS),
- GFP_KERNEL);
+ m10v_clk_data = kzalloc_flex(*m10v_clk_data, hws, M10V_NUM_CLKS,
+ GFP_KERNEL);
if (!m10v_clk_data)
return;
diff --git a/drivers/clk/clk-mux.c b/drivers/clk/clk-mux.c
index fa817c317c2a..ee4a7065817f 100644
--- a/drivers/clk/clk-mux.c
+++ b/drivers/clk/clk-mux.c
@@ -169,7 +169,7 @@ struct clk_hw *__clk_hw_register_mux(struct device *dev, struct device_node *np,
}
/* allocate the mux */
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/clk-nomadik.c b/drivers/clk/clk-nomadik.c
index fc0aeb4247f2..d165ef6f320d 100644
--- a/drivers/clk/clk-nomadik.c
+++ b/drivers/clk/clk-nomadik.c
@@ -270,7 +270,7 @@ pll_clk_register(struct device *dev, const char *name,
return ERR_PTR(-EINVAL);
}
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
@@ -357,7 +357,7 @@ src_clk_register(struct device *dev, const char *name,
struct clk_src *sclk;
struct clk_init_data init;
- sclk = kzalloc(sizeof(*sclk), GFP_KERNEL);
+ sclk = kzalloc_obj(*sclk, GFP_KERNEL);
if (!sclk)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/clk-npcm7xx.c b/drivers/clk/clk-npcm7xx.c
index 030186def9c6..e02f3f1d5ea7 100644
--- a/drivers/clk/clk-npcm7xx.c
+++ b/drivers/clk/clk-npcm7xx.c
@@ -74,7 +74,7 @@ npcm7xx_clk_register_pll(void __iomem *pllcon, const char *name,
struct clk_hw *hw;
int ret;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
@@ -421,8 +421,8 @@ static void __init npcm7xx_clk_init(struct device_node *clk_np)
if (!clk_base)
goto npcm7xx_init_error;
- npcm7xx_clk_data = kzalloc(struct_size(npcm7xx_clk_data, hws,
- NPCM7XX_NUM_CLOCKS), GFP_KERNEL);
+ npcm7xx_clk_data = kzalloc_flex(*npcm7xx_clk_data, hws,
+ NPCM7XX_NUM_CLOCKS, GFP_KERNEL);
if (!npcm7xx_clk_data)
goto npcm7xx_init_np_err;
diff --git a/drivers/clk/clk-qoriq.c b/drivers/clk/clk-qoriq.c
index a560edeb4b55..c1e0b0a80da7 100644
--- a/drivers/clk/clk-qoriq.c
+++ b/drivers/clk/clk-qoriq.c
@@ -976,7 +976,7 @@ static struct clk * __init create_one_cmux(struct clockgen *cg, int idx)
u64 max_rate, pct80_rate;
u32 clksel;
- hwc = kzalloc(sizeof(*hwc), GFP_KERNEL);
+ hwc = kzalloc_obj(*hwc, GFP_KERNEL);
if (!hwc)
return NULL;
@@ -1020,7 +1020,7 @@ static struct clk * __init create_one_hwaccel(struct clockgen *cg, int idx)
{
struct mux_hwclock *hwc;
- hwc = kzalloc(sizeof(*hwc), GFP_KERNEL);
+ hwc = kzalloc_obj(*hwc, GFP_KERNEL);
if (!hwc)
return NULL;
@@ -1319,11 +1319,11 @@ static void __init legacy_pll_init(struct device_node *np, int idx)
count = of_property_count_strings(np, "clock-output-names");
BUILD_BUG_ON(ARRAY_SIZE(pll->div) < 4);
- subclks = kcalloc(4, sizeof(struct clk *), GFP_KERNEL);
+ subclks = kzalloc_objs(struct clk *, 4, GFP_KERNEL);
if (!subclks)
return;
- onecell_data = kmalloc(sizeof(*onecell_data), GFP_KERNEL);
+ onecell_data = kmalloc_obj(*onecell_data, GFP_KERNEL);
if (!onecell_data)
goto err_clks;
diff --git a/drivers/clk/clk-stm32f4.c b/drivers/clk/clk-stm32f4.c
index b5d4d48432a0..4e518b92797b 100644
--- a/drivers/clk/clk-stm32f4.c
+++ b/drivers/clk/clk-stm32f4.c
@@ -489,7 +489,7 @@ static struct clk *clk_register_apb_mul(struct device *dev, const char *name,
struct clk_init_data init;
struct clk *clk;
- am = kzalloc(sizeof(*am), GFP_KERNEL);
+ am = kzalloc_obj(*am, GFP_KERNEL);
if (!am)
return ERR_PTR(-ENOMEM);
@@ -815,7 +815,7 @@ static struct clk_hw *clk_register_pll_div(const char *name,
int ret;
/* allocate the divider */
- pll_div = kzalloc(sizeof(*pll_div), GFP_KERNEL);
+ pll_div = kzalloc_obj(*pll_div, GFP_KERNEL);
if (!pll_div)
return ERR_PTR(-ENOMEM);
@@ -937,7 +937,7 @@ static struct clk_hw *stm32f4_rcc_register_pll(const char *pllsrc,
const struct stm32f4_vco_data *vco;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
@@ -1107,7 +1107,7 @@ static struct clk_hw *clk_register_rgate(struct device *dev, const char *name,
struct clk_hw *hw;
int ret;
- rgate = kzalloc(sizeof(*rgate), GFP_KERNEL);
+ rgate = kzalloc_obj(*rgate, GFP_KERNEL);
if (!rgate)
return ERR_PTR(-ENOMEM);
@@ -1202,13 +1202,13 @@ static struct clk_hw *stm32_register_cclk(struct device *dev, const char *name,
struct clk_gate *gate;
struct clk_mux *mux;
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate) {
hw = ERR_PTR(-EINVAL);
goto fail;
}
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux) {
kfree(gate);
hw = ERR_PTR(-EINVAL);
@@ -1776,7 +1776,7 @@ static struct clk_hw *stm32_register_aux_clk(const char *name,
const struct clk_ops *mux_ops = NULL, *gate_ops = NULL;
if (offset_gate != NO_GATE) {
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate) {
hw = ERR_PTR(-EINVAL);
goto fail;
@@ -1791,7 +1791,7 @@ static struct clk_hw *stm32_register_aux_clk(const char *name,
}
if (offset_mux != NO_MUX) {
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux) {
hw = ERR_PTR(-EINVAL);
goto fail;
@@ -1855,8 +1855,8 @@ static void __init stm32f4_rcc_init(struct device_node *np)
stm32fx_end_primary_clk = data->end_primary;
- clks = kmalloc_array(data->gates_num + stm32fx_end_primary_clk,
- sizeof(*clks), GFP_KERNEL);
+ clks = kmalloc_objs(*clks, data->gates_num + stm32fx_end_primary_clk,
+ GFP_KERNEL);
if (!clks)
goto fail;
diff --git a/drivers/clk/clk-stm32h7.c b/drivers/clk/clk-stm32h7.c
index 04c18a1d45d3..66fd934070b7 100644
--- a/drivers/clk/clk-stm32h7.c
+++ b/drivers/clk/clk-stm32h7.c
@@ -222,7 +222,7 @@ static struct clk_hw *clk_register_ready_gate(struct device *dev,
struct clk_hw *hw;
int ret;
- rgate = kzalloc(sizeof(*rgate), GFP_KERNEL);
+ rgate = kzalloc_obj(*rgate, GFP_KERNEL);
if (!rgate)
return ERR_PTR(-ENOMEM);
@@ -297,7 +297,7 @@ static struct clk_mux *_get_cmux(void __iomem *reg, u8 shift, u8 width,
{
struct clk_mux *mux;
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return ERR_PTR(-ENOMEM);
@@ -315,7 +315,7 @@ static struct clk_divider *_get_cdiv(void __iomem *reg, u8 shift, u8 width,
{
struct clk_divider *div;
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
return ERR_PTR(-ENOMEM);
@@ -334,7 +334,7 @@ static struct clk_gate *_get_cgate(void __iomem *reg, u8 bit_idx, u32 flags,
{
struct clk_gate *gate;
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
return ERR_PTR(-ENOMEM);
@@ -467,7 +467,7 @@ static struct clk_hw *clk_register_stm32_timer_ker(struct device *dev,
struct clk_hw *hw;
int err;
- element = kzalloc(sizeof(*element), GFP_KERNEL);
+ element = kzalloc_obj(*element, GFP_KERNEL);
if (!element)
return ERR_PTR(-ENOMEM);
@@ -792,7 +792,7 @@ static struct clk_hw *clk_register_stm32_pll(struct device *dev,
struct stm32_fractional_divider *div = NULL;
struct stm32_ready_gate *rgate;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
@@ -1200,8 +1200,7 @@ static void __init stm32h7_rcc_init(struct device_node *np)
const char *hse_clk, *lse_clk, *i2s_clk;
struct regmap *pdrm;
- clk_data = kzalloc(struct_size(clk_data, hws, STM32H7_MAX_CLKS),
- GFP_KERNEL);
+ clk_data = kzalloc_flex(*clk_data, hws, STM32H7_MAX_CLKS, GFP_KERNEL);
if (!clk_data)
return;
diff --git a/drivers/clk/clk-vt8500.c b/drivers/clk/clk-vt8500.c
index eae5b3fbfb82..6065141750af 100644
--- a/drivers/clk/clk-vt8500.c
+++ b/drivers/clk/clk-vt8500.c
@@ -235,7 +235,7 @@ static __init void vtwm_device_clk_init(struct device_node *node)
if (!pmc_base)
vtwm_set_pmc_base();
- dev_clk = kzalloc(sizeof(*dev_clk), GFP_KERNEL);
+ dev_clk = kzalloc_obj(*dev_clk, GFP_KERNEL);
if (WARN_ON(!dev_clk))
return;
@@ -698,7 +698,7 @@ static __init void vtwm_pll_clk_init(struct device_node *node, int pll_type)
if (WARN_ON(rc))
return;
- pll_clk = kzalloc(sizeof(*pll_clk), GFP_KERNEL);
+ pll_clk = kzalloc_obj(*pll_clk, GFP_KERNEL);
if (WARN_ON(!pll_clk))
return;
diff --git a/drivers/clk/clk-xgene.c b/drivers/clk/clk-xgene.c
index 92e39f3237c2..ebf47b1f5433 100644
--- a/drivers/clk/clk-xgene.c
+++ b/drivers/clk/clk-xgene.c
@@ -131,7 +131,7 @@ static struct clk *xgene_register_clk_pll(struct device *dev,
struct clk_init_data init;
/* allocate the APM clock structure */
- apmclk = kzalloc(sizeof(*apmclk), GFP_KERNEL);
+ apmclk = kzalloc_obj(*apmclk, GFP_KERNEL);
if (!apmclk)
return ERR_PTR(-ENOMEM);
@@ -352,7 +352,7 @@ xgene_register_clk_pmd(struct device *dev,
struct clk_init_data init;
struct clk *clk;
- fd = kzalloc(sizeof(*fd), GFP_KERNEL);
+ fd = kzalloc_obj(*fd, GFP_KERNEL);
if (!fd)
return ERR_PTR(-ENOMEM);
@@ -638,7 +638,7 @@ static struct clk *xgene_register_clk(struct device *dev,
int rc;
/* allocate the APM clock structure */
- apmclk = kzalloc(sizeof(*apmclk), GFP_KERNEL);
+ apmclk = kzalloc_obj(*apmclk, GFP_KERNEL);
if (!apmclk)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index 85d2f2481acf..5789cd93bfc2 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -4121,7 +4121,7 @@ static struct clk *alloc_clk(struct clk_core *core, const char *dev_id,
{
struct clk *clk;
- clk = kzalloc(sizeof(*clk), GFP_KERNEL);
+ clk = kzalloc_obj(*clk, GFP_KERNEL);
if (!clk)
return ERR_PTR(-ENOMEM);
@@ -4238,7 +4238,7 @@ static int clk_core_populate_parent_map(struct clk_core *core,
* Avoid unnecessary string look-ups of clk_core's possible parents by
* having a cache of names/clk_hw pointers to clk_core pointers.
*/
- parents = kcalloc(num_parents, sizeof(*parents), GFP_KERNEL);
+ parents = kzalloc_objs(*parents, num_parents, GFP_KERNEL);
core->parents = parents;
if (!parents)
return -ENOMEM;
@@ -4328,7 +4328,7 @@ __clk_register(struct device *dev, struct device_node *np, struct clk_hw *hw)
*/
hw->init = NULL;
- core = kzalloc(sizeof(*core), GFP_KERNEL);
+ core = kzalloc_obj(*core, GFP_KERNEL);
if (!core) {
ret = -ENOMEM;
goto fail_out;
@@ -4813,7 +4813,7 @@ int clk_notifier_register(struct clk *clk, struct notifier_block *nb)
goto found;
/* if clk wasn't in the notifier list, allocate new clk_notifier */
- cn = kzalloc(sizeof(*cn), GFP_KERNEL);
+ cn = kzalloc_obj(*cn, GFP_KERNEL);
if (!cn)
goto out;
@@ -5009,7 +5009,7 @@ int of_clk_add_provider(struct device_node *np,
if (!np)
return 0;
- cp = kzalloc(sizeof(*cp), GFP_KERNEL);
+ cp = kzalloc_obj(*cp, GFP_KERNEL);
if (!cp)
return -ENOMEM;
@@ -5051,7 +5051,7 @@ int of_clk_add_hw_provider(struct device_node *np,
if (!np)
return 0;
- cp = kzalloc(sizeof(*cp), GFP_KERNEL);
+ cp = kzalloc_obj(*cp, GFP_KERNEL);
if (!cp)
return -ENOMEM;
@@ -5548,7 +5548,7 @@ void __init of_clk_init(const struct of_device_id *matches)
if (!of_device_is_available(np))
continue;
- parent = kzalloc(sizeof(*parent), GFP_KERNEL);
+ parent = kzalloc_obj(*parent, GFP_KERNEL);
if (!parent) {
list_for_each_entry_safe(clk_provider, next,
&clk_provider_list, node) {
diff --git a/drivers/clk/clkdev.c b/drivers/clk/clkdev.c
index e0bede6350e1..4d1dbd9fb807 100644
--- a/drivers/clk/clkdev.c
+++ b/drivers/clk/clkdev.c
@@ -164,7 +164,7 @@ vclkdev_alloc(struct clk_hw *hw, const char *con_id, const char *dev_fmt,
size_t max_size;
ssize_t res;
- cla = kzalloc(sizeof(*cla), GFP_KERNEL);
+ cla = kzalloc_obj(*cla, GFP_KERNEL);
if (!cla)
return NULL;
diff --git a/drivers/clk/davinci/pll.c b/drivers/clk/davinci/pll.c
index bfb6bbdc036c..eda3c3a45c52 100644
--- a/drivers/clk/davinci/pll.c
+++ b/drivers/clk/davinci/pll.c
@@ -243,14 +243,14 @@ static struct clk *davinci_pll_div_register(struct device *dev,
struct clk *clk;
int ret;
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
return ERR_PTR(-ENOMEM);
gate->reg = reg;
gate->bit_idx = DIV_ENABLE_SHIFT;
- divider = kzalloc(sizeof(*divider), GFP_KERNEL);
+ divider = kzalloc_obj(*divider, GFP_KERNEL);
if (!divider) {
ret = -ENOMEM;
goto err_free_gate;
@@ -433,7 +433,7 @@ struct clk *davinci_pll_clk_register(struct device *dev,
info->unlock_mask, 0);
}
- pllout = kzalloc(sizeof(*pllout), GFP_KERNEL);
+ pllout = kzalloc_obj(*pllout, GFP_KERNEL);
if (!pllout) {
ret = -ENOMEM;
goto err_unregister_prediv;
@@ -489,7 +489,7 @@ struct clk *davinci_pll_clk_register(struct device *dev,
parent_name = postdiv_name;
}
- pllen = kzalloc(sizeof(*pllen), GFP_KERNEL);
+ pllen = kzalloc_obj(*pllen, GFP_KERNEL);
if (!pllen) {
ret = -ENOMEM;
goto err_unregister_postdiv;
@@ -579,7 +579,7 @@ davinci_pll_obsclk_register(struct device *dev,
u32 oscdiv;
int ret;
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return ERR_PTR(-ENOMEM);
@@ -587,7 +587,7 @@ davinci_pll_obsclk_register(struct device *dev,
mux->table = info->table;
mux->mask = info->ocsrc_mask;
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate) {
ret = -ENOMEM;
goto err_free_mux;
@@ -596,7 +596,7 @@ davinci_pll_obsclk_register(struct device *dev,
gate->reg = base + CKEN;
gate->bit_idx = CKEN_OBSCLK_SHIFT;
- divider = kzalloc(sizeof(*divider), GFP_KERNEL);
+ divider = kzalloc_obj(*divider, GFP_KERNEL);
if (!divider) {
ret = -ENOMEM;
goto err_free_gate;
@@ -690,14 +690,14 @@ davinci_pll_sysclk_register(struct device *dev,
else
reg = PLLDIV4 + 4 * (info->id - 4);
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
return ERR_PTR(-ENOMEM);
gate->reg = base + reg;
gate->bit_idx = DIV_ENABLE_SHIFT;
- divider = kzalloc(sizeof(*divider), GFP_KERNEL);
+ divider = kzalloc_obj(*divider, GFP_KERNEL);
if (!divider) {
ret = -ENOMEM;
goto err_free_gate;
@@ -776,13 +776,13 @@ int of_davinci_pll_init(struct device *dev, struct device_node *node,
int n_clks = max_sysclk_id + 1;
int i;
- clk_data = kzalloc(sizeof(*clk_data), GFP_KERNEL);
+ clk_data = kzalloc_obj(*clk_data, GFP_KERNEL);
if (!clk_data) {
of_node_put(child);
return -ENOMEM;
}
- clks = kmalloc_array(n_clks, sizeof(*clks), GFP_KERNEL);
+ clks = kmalloc_objs(*clks, n_clks, GFP_KERNEL);
if (!clks) {
kfree(clk_data);
of_node_put(child);
@@ -942,7 +942,7 @@ static void davinci_pll_debug_init(struct clk_hw *hw, struct dentry *dentry)
struct davinci_pll_clk *pll = to_davinci_pll_clk(hw);
struct debugfs_regset32 *regset;
- regset = kzalloc(sizeof(*regset), GFP_KERNEL);
+ regset = kzalloc_obj(*regset, GFP_KERNEL);
if (!regset)
return;
diff --git a/drivers/clk/davinci/psc.c b/drivers/clk/davinci/psc.c
index f3ee9397bb0c..5a593f20ce81 100644
--- a/drivers/clk/davinci/psc.c
+++ b/drivers/clk/davinci/psc.c
@@ -239,7 +239,7 @@ davinci_lpsc_clk_register(struct device *dev, const char *name,
int ret;
bool is_on;
- lpsc = kzalloc(sizeof(*lpsc), GFP_KERNEL);
+ lpsc = kzalloc_obj(*lpsc, GFP_KERNEL);
if (!lpsc)
return ERR_PTR(-ENOMEM);
@@ -372,11 +372,11 @@ __davinci_psc_register_clocks(struct device *dev,
struct regmap *regmap;
int i, ret;
- psc = kzalloc(sizeof(*psc), GFP_KERNEL);
+ psc = kzalloc_obj(*psc, GFP_KERNEL);
if (!psc)
return ERR_PTR(-ENOMEM);
- clks = kmalloc_array(num_clks, sizeof(*clks), GFP_KERNEL);
+ clks = kmalloc_objs(*clks, num_clks, GFP_KERNEL);
if (!clks) {
ret = -ENOMEM;
goto err_free_psc;
@@ -392,7 +392,7 @@ __davinci_psc_register_clocks(struct device *dev,
for (i = 0; i < num_clks; i++)
clks[i] = ERR_PTR(-ENOENT);
- pm_domains = kcalloc(num_clks, sizeof(*pm_domains), GFP_KERNEL);
+ pm_domains = kzalloc_objs(*pm_domains, num_clks, GFP_KERNEL);
if (!pm_domains) {
ret = -ENOMEM;
goto err_free_clks;
diff --git a/drivers/clk/hisilicon/clk-hi3620.c b/drivers/clk/hisilicon/clk-hi3620.c
index 5d0226530fdb..069ea7b56c09 100644
--- a/drivers/clk/hisilicon/clk-hi3620.c
+++ b/drivers/clk/hisilicon/clk-hi3620.c
@@ -414,7 +414,7 @@ static struct clk *hisi_register_clk_mmc(struct hisi_mmc_clock *mmc_clk,
struct clk *clk;
struct clk_init_data init;
- mclk = kzalloc(sizeof(*mclk), GFP_KERNEL);
+ mclk = kzalloc_obj(*mclk, GFP_KERNEL);
if (!mclk)
return ERR_PTR(-ENOMEM);
@@ -461,11 +461,11 @@ static void __init hi3620_mmc_clk_init(struct device_node *node)
return;
}
- clk_data = kzalloc(sizeof(*clk_data), GFP_KERNEL);
+ clk_data = kzalloc_obj(*clk_data, GFP_KERNEL);
if (WARN_ON(!clk_data))
return;
- clk_data->clks = kcalloc(num, sizeof(*clk_data->clks), GFP_KERNEL);
+ clk_data->clks = kzalloc_objs(*clk_data->clks, num, GFP_KERNEL);
if (!clk_data->clks) {
kfree(clk_data);
return;
diff --git a/drivers/clk/hisilicon/clk-hix5hd2.c b/drivers/clk/hisilicon/clk-hix5hd2.c
index 64bdd3f05725..31a9ab1758f1 100644
--- a/drivers/clk/hisilicon/clk-hix5hd2.c
+++ b/drivers/clk/hisilicon/clk-hix5hd2.c
@@ -261,7 +261,7 @@ hix5hd2_clk_register_complex(struct hix5hd2_complex_clock *clks, int nums,
struct clk *clk;
struct clk_init_data init;
- p_clk = kzalloc(sizeof(*p_clk), GFP_KERNEL);
+ p_clk = kzalloc_obj(*p_clk, GFP_KERNEL);
if (!p_clk)
return;
diff --git a/drivers/clk/hisilicon/clk.c b/drivers/clk/hisilicon/clk.c
index 09368fd32bef..8b37a6310289 100644
--- a/drivers/clk/hisilicon/clk.c
+++ b/drivers/clk/hisilicon/clk.c
@@ -68,12 +68,12 @@ struct hisi_clock_data *hisi_clk_init(struct device_node *np,
goto err;
}
- clk_data = kzalloc(sizeof(*clk_data), GFP_KERNEL);
+ clk_data = kzalloc_obj(*clk_data, GFP_KERNEL);
if (!clk_data)
goto err;
clk_data->base = base;
- clk_table = kcalloc(nr_clks, sizeof(*clk_table), GFP_KERNEL);
+ clk_table = kzalloc_objs(*clk_table, nr_clks, GFP_KERNEL);
if (!clk_table)
goto err_data;
diff --git a/drivers/clk/hisilicon/clkdivider-hi6220.c b/drivers/clk/hisilicon/clkdivider-hi6220.c
index fd7ceb92d651..c59c2c38812b 100644
--- a/drivers/clk/hisilicon/clkdivider-hi6220.c
+++ b/drivers/clk/hisilicon/clkdivider-hi6220.c
@@ -109,7 +109,7 @@ struct clk *hi6220_register_clkdiv(struct device *dev, const char *name,
int i;
/* allocate the divider */
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
return ERR_PTR(-ENOMEM);
@@ -117,7 +117,7 @@ struct clk *hi6220_register_clkdiv(struct device *dev, const char *name,
max_div = div_mask(width) + 1;
min_div = 1;
- table = kcalloc(max_div + 1, sizeof(*table), GFP_KERNEL);
+ table = kzalloc_objs(*table, max_div + 1, GFP_KERNEL);
if (!table) {
kfree(div);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/hisilicon/clkgate-separated.c b/drivers/clk/hisilicon/clkgate-separated.c
index 21d4297f3225..cb4fd20f7639 100644
--- a/drivers/clk/hisilicon/clkgate-separated.c
+++ b/drivers/clk/hisilicon/clkgate-separated.c
@@ -90,7 +90,7 @@ struct clk *hisi_register_clkgate_sep(struct device *dev, const char *name,
struct clk *clk;
struct clk_init_data init;
- sclk = kzalloc(sizeof(*sclk), GFP_KERNEL);
+ sclk = kzalloc_obj(*sclk, GFP_KERNEL);
if (!sclk)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imgtec/clk-boston.c b/drivers/clk/imgtec/clk-boston.c
index db96f8bea630..23360ba5c852 100644
--- a/drivers/clk/imgtec/clk-boston.c
+++ b/drivers/clk/imgtec/clk-boston.c
@@ -58,8 +58,7 @@ static void __init clk_boston_setup(struct device_node *np)
cpu_div = ext_field(mmcmdiv, BOSTON_PLAT_MMCMDIV_CLK1DIV);
cpu_freq = mult_frac(in_freq, mul, cpu_div);
- onecell = kzalloc(struct_size(onecell, hws, BOSTON_CLK_COUNT),
- GFP_KERNEL);
+ onecell = kzalloc_flex(*onecell, hws, BOSTON_CLK_COUNT, GFP_KERNEL);
if (!onecell)
return;
diff --git a/drivers/clk/imx/clk-busy.c b/drivers/clk/imx/clk-busy.c
index eb27c6fee359..a6886a73aa24 100644
--- a/drivers/clk/imx/clk-busy.c
+++ b/drivers/clk/imx/clk-busy.c
@@ -82,7 +82,7 @@ struct clk_hw *imx_clk_hw_busy_divider(const char *name, const char *parent_name
struct clk_init_data init;
int ret;
- busy = kzalloc(sizeof(*busy), GFP_KERNEL);
+ busy = kzalloc_obj(*busy, GFP_KERNEL);
if (!busy)
return ERR_PTR(-ENOMEM);
@@ -162,7 +162,7 @@ struct clk_hw *imx_clk_hw_busy_mux(const char *name, void __iomem *reg, u8 shift
struct clk_init_data init;
int ret;
- busy = kzalloc(sizeof(*busy), GFP_KERNEL);
+ busy = kzalloc_obj(*busy, GFP_KERNEL);
if (!busy)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-composite-7ulp.c b/drivers/clk/imx/clk-composite-7ulp.c
index 37d2fc197be6..59c2b392db44 100644
--- a/drivers/clk/imx/clk-composite-7ulp.c
+++ b/drivers/clk/imx/clk-composite-7ulp.c
@@ -99,7 +99,7 @@ static struct clk_hw *imx_ulp_clk_hw_composite(const char *name,
}
if (mux_present) {
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return ERR_PTR(-ENOMEM);
mux_hw = &mux->hw;
@@ -111,7 +111,7 @@ static struct clk_hw *imx_ulp_clk_hw_composite(const char *name,
}
if (rate_present) {
- fd = kzalloc(sizeof(*fd), GFP_KERNEL);
+ fd = kzalloc_obj(*fd, GFP_KERNEL);
if (!fd) {
kfree(mux);
return ERR_PTR(-ENOMEM);
@@ -128,7 +128,7 @@ static struct clk_hw *imx_ulp_clk_hw_composite(const char *name,
}
if (gate_present) {
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate) {
kfree(mux);
kfree(fd);
diff --git a/drivers/clk/imx/clk-composite-8m.c b/drivers/clk/imx/clk-composite-8m.c
index 1467d0a1b934..e5ccb6810822 100644
--- a/drivers/clk/imx/clk-composite-8m.c
+++ b/drivers/clk/imx/clk-composite-8m.c
@@ -231,7 +231,7 @@ struct clk_hw *__imx8m_clk_hw_composite(const char *name,
const struct clk_ops *mux_ops;
const struct clk_ops *gate_ops;
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return ERR_CAST(hw);
@@ -241,7 +241,7 @@ struct clk_hw *__imx8m_clk_hw_composite(const char *name,
mux->mask = PCG_PCS_MASK;
mux->lock = &imx_ccm_lock;
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
goto free_mux;
@@ -270,7 +270,7 @@ struct clk_hw *__imx8m_clk_hw_composite(const char *name,
div->flags = CLK_DIVIDER_ROUND_CLOSEST;
/* skip registering the gate ops if M4 is enabled */
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
goto free_div;
diff --git a/drivers/clk/imx/clk-composite-93.c b/drivers/clk/imx/clk-composite-93.c
index 513d74a39d3b..db006eba18f8 100644
--- a/drivers/clk/imx/clk-composite-93.c
+++ b/drivers/clk/imx/clk-composite-93.c
@@ -193,7 +193,7 @@ struct clk_hw *imx93_clk_composite_flags(const char *name, const char * const *p
bool clk_ro = false;
u32 authen;
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
goto fail;
@@ -203,7 +203,7 @@ struct clk_hw *imx93_clk_composite_flags(const char *name, const char * const *p
mux->mask = CCM_MUX_MASK;
mux->lock = &imx_ccm_lock;
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
goto fail;
@@ -223,7 +223,7 @@ struct clk_hw *imx93_clk_composite_flags(const char *name, const char * const *p
mux_hw, &clk_mux_ro_ops, div_hw,
&clk_divider_ro_ops, NULL, NULL, flags);
} else {
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
goto fail;
diff --git a/drivers/clk/imx/clk-cpu.c b/drivers/clk/imx/clk-cpu.c
index 43637cb61693..e63296483504 100644
--- a/drivers/clk/imx/clk-cpu.c
+++ b/drivers/clk/imx/clk-cpu.c
@@ -81,7 +81,7 @@ struct clk_hw *imx_clk_hw_cpu(const char *name, const char *parent_name,
struct clk_init_data init;
int ret;
- cpu = kzalloc(sizeof(*cpu), GFP_KERNEL);
+ cpu = kzalloc_obj(*cpu, GFP_KERNEL);
if (!cpu)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-divider-gate.c b/drivers/clk/imx/clk-divider-gate.c
index 26b210cba9be..51042ba556d0 100644
--- a/drivers/clk/imx/clk-divider-gate.c
+++ b/drivers/clk/imx/clk-divider-gate.c
@@ -185,7 +185,7 @@ struct clk_hw *imx_clk_hw_divider_gate(const char *name, const char *parent_name
u32 val;
int ret;
- div_gate = kzalloc(sizeof(*div_gate), GFP_KERNEL);
+ div_gate = kzalloc_obj(*div_gate, GFP_KERNEL);
if (!div_gate)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-fixup-div.c b/drivers/clk/imx/clk-fixup-div.c
index aa6addbeb5a8..a90609aec218 100644
--- a/drivers/clk/imx/clk-fixup-div.c
+++ b/drivers/clk/imx/clk-fixup-div.c
@@ -97,7 +97,7 @@ struct clk_hw *imx_clk_hw_fixup_divider(const char *name, const char *parent,
if (!fixup)
return ERR_PTR(-EINVAL);
- fixup_div = kzalloc(sizeof(*fixup_div), GFP_KERNEL);
+ fixup_div = kzalloc_obj(*fixup_div, GFP_KERNEL);
if (!fixup_div)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-fixup-mux.c b/drivers/clk/imx/clk-fixup-mux.c
index 418ac9fe2c26..b1c887fc99c4 100644
--- a/drivers/clk/imx/clk-fixup-mux.c
+++ b/drivers/clk/imx/clk-fixup-mux.c
@@ -77,7 +77,7 @@ struct clk_hw *imx_clk_hw_fixup_mux(const char *name, void __iomem *reg,
if (!fixup)
return ERR_PTR(-EINVAL);
- fixup_mux = kzalloc(sizeof(*fixup_mux), GFP_KERNEL);
+ fixup_mux = kzalloc_obj(*fixup_mux, GFP_KERNEL);
if (!fixup_mux)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-frac-pll.c b/drivers/clk/imx/clk-frac-pll.c
index eb668faaa38f..fba0c0f449df 100644
--- a/drivers/clk/imx/clk-frac-pll.c
+++ b/drivers/clk/imx/clk-frac-pll.c
@@ -213,7 +213,7 @@ struct clk_hw *imx_clk_hw_frac_pll(const char *name,
struct clk_hw *hw;
int ret;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-fracn-gppll.c b/drivers/clk/imx/clk-fracn-gppll.c
index 6de5349adf70..3cd1fd106aac 100644
--- a/drivers/clk/imx/clk-fracn-gppll.c
+++ b/drivers/clk/imx/clk-fracn-gppll.c
@@ -366,7 +366,7 @@ static struct clk_hw *_imx_clk_fracn_gppll(const char *name, const char *parent_
struct clk_init_data init;
int ret;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-gate-93.c b/drivers/clk/imx/clk-gate-93.c
index ceb56b290394..0422e17a8233 100644
--- a/drivers/clk/imx/clk-gate-93.c
+++ b/drivers/clk/imx/clk-gate-93.c
@@ -164,7 +164,7 @@ struct clk_hw *imx93_clk_gate(struct device *dev, const char *name, const char *
int ret;
u32 authen;
- gate = kzalloc(sizeof(struct imx93_clk_gate), GFP_KERNEL);
+ gate = kzalloc_obj(struct imx93_clk_gate, GFP_KERNEL);
if (!gate)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-gate-exclusive.c b/drivers/clk/imx/clk-gate-exclusive.c
index 7017e9d4e188..2f0db88cbbcf 100644
--- a/drivers/clk/imx/clk-gate-exclusive.c
+++ b/drivers/clk/imx/clk-gate-exclusive.c
@@ -67,7 +67,7 @@ struct clk_hw *imx_clk_hw_gate_exclusive(const char *name, const char *parent,
if (exclusive_mask == 0)
return ERR_PTR(-EINVAL);
- exgate = kzalloc(sizeof(*exgate), GFP_KERNEL);
+ exgate = kzalloc_obj(*exgate, GFP_KERNEL);
if (!exgate)
return ERR_PTR(-ENOMEM);
gate = &exgate->gate;
diff --git a/drivers/clk/imx/clk-gate2.c b/drivers/clk/imx/clk-gate2.c
index f16c4019f402..d57c146a66cf 100644
--- a/drivers/clk/imx/clk-gate2.c
+++ b/drivers/clk/imx/clk-gate2.c
@@ -144,7 +144,7 @@ struct clk_hw *clk_hw_register_gate2(struct device *dev, const char *name,
struct clk_init_data init;
int ret;
- gate = kzalloc(sizeof(struct clk_gate2), GFP_KERNEL);
+ gate = kzalloc_obj(struct clk_gate2, GFP_KERNEL);
if (!gate)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-gpr-mux.c b/drivers/clk/imx/clk-gpr-mux.c
index 0e14b61cba84..01f7142e7a98 100644
--- a/drivers/clk/imx/clk-gpr-mux.c
+++ b/drivers/clk/imx/clk-gpr-mux.c
@@ -87,7 +87,7 @@ struct clk_hw *imx_clk_gpr_mux(const char *name, const char *compatible,
return ERR_CAST(regmap);
}
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-imx6q.c b/drivers/clk/imx/clk-imx6q.c
index bf4c1d9c9928..7d8a811e5de4 100644
--- a/drivers/clk/imx/clk-imx6q.c
+++ b/drivers/clk/imx/clk-imx6q.c
@@ -439,8 +439,8 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node)
void __iomem *anatop_base, *base;
int ret;
- clk_hw_data = kzalloc(struct_size(clk_hw_data, hws,
- IMX6QDL_CLK_END), GFP_KERNEL);
+ clk_hw_data = kzalloc_flex(*clk_hw_data, hws, IMX6QDL_CLK_END,
+ GFP_KERNEL);
if (WARN_ON(!clk_hw_data))
return;
diff --git a/drivers/clk/imx/clk-imx6sl.c b/drivers/clk/imx/clk-imx6sl.c
index 47b8667cfa3f..de7392fb59a4 100644
--- a/drivers/clk/imx/clk-imx6sl.c
+++ b/drivers/clk/imx/clk-imx6sl.c
@@ -185,8 +185,8 @@ static void __init imx6sl_clocks_init(struct device_node *ccm_node)
void __iomem *base;
int ret;
- clk_hw_data = kzalloc(struct_size(clk_hw_data, hws,
- IMX6SL_CLK_END), GFP_KERNEL);
+ clk_hw_data = kzalloc_flex(*clk_hw_data, hws, IMX6SL_CLK_END,
+ GFP_KERNEL);
if (WARN_ON(!clk_hw_data))
return;
diff --git a/drivers/clk/imx/clk-imx6sll.c b/drivers/clk/imx/clk-imx6sll.c
index 2fa70bf35e45..96c1fbb74d82 100644
--- a/drivers/clk/imx/clk-imx6sll.c
+++ b/drivers/clk/imx/clk-imx6sll.c
@@ -81,8 +81,8 @@ static void __init imx6sll_clocks_init(struct device_node *ccm_node)
struct device_node *np;
void __iomem *base;
- clk_hw_data = kzalloc(struct_size(clk_hw_data, hws,
- IMX6SLL_CLK_END), GFP_KERNEL);
+ clk_hw_data = kzalloc_flex(*clk_hw_data, hws, IMX6SLL_CLK_END,
+ GFP_KERNEL);
if (WARN_ON(!clk_hw_data))
return;
diff --git a/drivers/clk/imx/clk-imx6sx.c b/drivers/clk/imx/clk-imx6sx.c
index 69f8f6f9ca49..c96606f76947 100644
--- a/drivers/clk/imx/clk-imx6sx.c
+++ b/drivers/clk/imx/clk-imx6sx.c
@@ -123,8 +123,8 @@ static void __init imx6sx_clocks_init(struct device_node *ccm_node)
void __iomem *base;
bool lcdif1_assigned_clk;
- clk_hw_data = kzalloc(struct_size(clk_hw_data, hws,
- IMX6SX_CLK_CLK_END), GFP_KERNEL);
+ clk_hw_data = kzalloc_flex(*clk_hw_data, hws, IMX6SX_CLK_CLK_END,
+ GFP_KERNEL);
if (WARN_ON(!clk_hw_data))
return;
diff --git a/drivers/clk/imx/clk-imx6ul.c b/drivers/clk/imx/clk-imx6ul.c
index 05c7a82b751f..4ccc272b3c4f 100644
--- a/drivers/clk/imx/clk-imx6ul.c
+++ b/drivers/clk/imx/clk-imx6ul.c
@@ -130,8 +130,8 @@ static void __init imx6ul_clocks_init(struct device_node *ccm_node)
struct device_node *np;
void __iomem *base;
- clk_hw_data = kzalloc(struct_size(clk_hw_data, hws,
- IMX6UL_CLK_END), GFP_KERNEL);
+ clk_hw_data = kzalloc_flex(*clk_hw_data, hws, IMX6UL_CLK_END,
+ GFP_KERNEL);
if (WARN_ON(!clk_hw_data))
return;
diff --git a/drivers/clk/imx/clk-imx7d.c b/drivers/clk/imx/clk-imx7d.c
index 99adc55e3f5d..21c6daa221cc 100644
--- a/drivers/clk/imx/clk-imx7d.c
+++ b/drivers/clk/imx/clk-imx7d.c
@@ -382,8 +382,7 @@ static void __init imx7d_clocks_init(struct device_node *ccm_node)
struct device_node *np;
void __iomem *base;
- clk_hw_data = kzalloc(struct_size(clk_hw_data, hws,
- IMX7D_CLK_END), GFP_KERNEL);
+ clk_hw_data = kzalloc_flex(*clk_hw_data, hws, IMX7D_CLK_END, GFP_KERNEL);
if (WARN_ON(!clk_hw_data))
return;
diff --git a/drivers/clk/imx/clk-imx7ulp.c b/drivers/clk/imx/clk-imx7ulp.c
index f4a48a42637f..322c84d49f44 100644
--- a/drivers/clk/imx/clk-imx7ulp.c
+++ b/drivers/clk/imx/clk-imx7ulp.c
@@ -49,8 +49,8 @@ static void __init imx7ulp_clk_scg1_init(struct device_node *np)
struct clk_hw **hws;
void __iomem *base;
- clk_data = kzalloc(struct_size(clk_data, hws, IMX7ULP_CLK_SCG1_END),
- GFP_KERNEL);
+ clk_data = kzalloc_flex(*clk_data, hws, IMX7ULP_CLK_SCG1_END,
+ GFP_KERNEL);
if (!clk_data)
return;
@@ -138,8 +138,8 @@ static void __init imx7ulp_clk_pcc2_init(struct device_node *np)
struct clk_hw **hws;
void __iomem *base;
- clk_data = kzalloc(struct_size(clk_data, hws, IMX7ULP_CLK_PCC2_END),
- GFP_KERNEL);
+ clk_data = kzalloc_flex(*clk_data, hws, IMX7ULP_CLK_PCC2_END,
+ GFP_KERNEL);
if (!clk_data)
return;
@@ -186,8 +186,8 @@ static void __init imx7ulp_clk_pcc3_init(struct device_node *np)
struct clk_hw **hws;
void __iomem *base;
- clk_data = kzalloc(struct_size(clk_data, hws, IMX7ULP_CLK_PCC3_END),
- GFP_KERNEL);
+ clk_data = kzalloc_flex(*clk_data, hws, IMX7ULP_CLK_PCC3_END,
+ GFP_KERNEL);
if (!clk_data)
return;
@@ -233,8 +233,8 @@ static void __init imx7ulp_clk_smc1_init(struct device_node *np)
struct clk_hw **hws;
void __iomem *base;
- clk_data = kzalloc(struct_size(clk_data, hws, IMX7ULP_CLK_SMC1_END),
- GFP_KERNEL);
+ clk_data = kzalloc_flex(*clk_data, hws, IMX7ULP_CLK_SMC1_END,
+ GFP_KERNEL);
if (!clk_data)
return;
diff --git a/drivers/clk/imx/clk-imx8mm.c b/drivers/clk/imx/clk-imx8mm.c
index 342049b847b9..fb9b199ff289 100644
--- a/drivers/clk/imx/clk-imx8mm.c
+++ b/drivers/clk/imx/clk-imx8mm.c
@@ -303,8 +303,8 @@ static int imx8mm_clocks_probe(struct platform_device *pdev)
void __iomem *base;
int ret;
- clk_hw_data = kzalloc(struct_size(clk_hw_data, hws,
- IMX8MM_CLK_END), GFP_KERNEL);
+ clk_hw_data = kzalloc_flex(*clk_hw_data, hws, IMX8MM_CLK_END,
+ GFP_KERNEL);
if (WARN_ON(!clk_hw_data))
return -ENOMEM;
diff --git a/drivers/clk/imx/clk-lpcg-scu.c b/drivers/clk/imx/clk-lpcg-scu.c
index 6376557a3c3d..9e1247bb1edd 100644
--- a/drivers/clk/imx/clk-lpcg-scu.c
+++ b/drivers/clk/imx/clk-lpcg-scu.c
@@ -119,7 +119,7 @@ struct clk_hw *__imx_clk_lpcg_scu(struct device *dev, const char *name,
struct clk_hw *hw;
int ret;
- clk = kzalloc(sizeof(*clk), GFP_KERNEL);
+ clk = kzalloc_obj(*clk, GFP_KERNEL);
if (!clk)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-pfd.c b/drivers/clk/imx/clk-pfd.c
index 31220fa7882b..5222e5ee37d1 100644
--- a/drivers/clk/imx/clk-pfd.c
+++ b/drivers/clk/imx/clk-pfd.c
@@ -132,7 +132,7 @@ struct clk_hw *imx_clk_hw_pfd(const char *name, const char *parent_name,
struct clk_init_data init;
int ret;
- pfd = kzalloc(sizeof(*pfd), GFP_KERNEL);
+ pfd = kzalloc_obj(*pfd, GFP_KERNEL);
if (!pfd)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-pfdv2.c b/drivers/clk/imx/clk-pfdv2.c
index 6ca53a960eb7..ce37a151c745 100644
--- a/drivers/clk/imx/clk-pfdv2.c
+++ b/drivers/clk/imx/clk-pfdv2.c
@@ -210,7 +210,7 @@ struct clk_hw *imx_clk_hw_pfdv2(enum imx_pfdv2_type type, const char *name,
WARN_ON(idx > 3);
- pfd = kzalloc(sizeof(*pfd), GFP_KERNEL);
+ pfd = kzalloc_obj(*pfd, GFP_KERNEL);
if (!pfd)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-pll14xx.c b/drivers/clk/imx/clk-pll14xx.c
index 36d0e80b55b8..33974d762e4d 100644
--- a/drivers/clk/imx/clk-pll14xx.c
+++ b/drivers/clk/imx/clk-pll14xx.c
@@ -504,7 +504,7 @@ struct clk_hw *imx_dev_clk_hw_pll14xx(struct device *dev, const char *name,
int ret;
u32 val;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-pllv1.c b/drivers/clk/imx/clk-pllv1.c
index 93ee81b28fc7..502f29d44f52 100644
--- a/drivers/clk/imx/clk-pllv1.c
+++ b/drivers/clk/imx/clk-pllv1.c
@@ -119,7 +119,7 @@ struct clk_hw *imx_clk_hw_pllv1(enum imx_pllv1_type type, const char *name,
struct clk_init_data init;
int ret;
- pll = kmalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kmalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-pllv2.c b/drivers/clk/imx/clk-pllv2.c
index bb497ad5e0ae..1faa289b8e69 100644
--- a/drivers/clk/imx/clk-pllv2.c
+++ b/drivers/clk/imx/clk-pllv2.c
@@ -254,7 +254,7 @@ struct clk_hw *imx_clk_hw_pllv2(const char *name, const char *parent,
struct clk_init_data init;
int ret;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-pllv3.c b/drivers/clk/imx/clk-pllv3.c
index b99508367bcb..78d40dad7b4a 100644
--- a/drivers/clk/imx/clk-pllv3.c
+++ b/drivers/clk/imx/clk-pllv3.c
@@ -426,7 +426,7 @@ struct clk_hw *imx_clk_hw_pllv3(enum imx_pllv3_type type, const char *name,
struct clk_init_data init;
int ret;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-pllv4.c b/drivers/clk/imx/clk-pllv4.c
index 01d05b5d5438..d7a4e9ed55b3 100644
--- a/drivers/clk/imx/clk-pllv4.c
+++ b/drivers/clk/imx/clk-pllv4.c
@@ -251,7 +251,7 @@ struct clk_hw *imx_clk_hw_pllv4(enum imx_pllv4_type type, const char *name,
struct clk_init_data init;
int ret;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-scu.c b/drivers/clk/imx/clk-scu.c
index 34c9dc1fb20e..9ec9fe99c391 100644
--- a/drivers/clk/imx/clk-scu.c
+++ b/drivers/clk/imx/clk-scu.c
@@ -457,7 +457,7 @@ struct clk_hw *__imx_clk_scu(struct device *dev, const char *name,
struct clk_hw *hw;
int ret;
- clk = kzalloc(sizeof(*clk), GFP_KERNEL);
+ clk = kzalloc_obj(*clk, GFP_KERNEL);
if (!clk)
return ERR_PTR(-ENOMEM);
@@ -856,7 +856,7 @@ struct clk_hw *__imx_clk_gpr_scu(const char *name, const char * const *parent_na
if (rsrc_id >= IMX_SC_R_LAST || gpr_id >= IMX_SC_C_LAST)
return ERR_PTR(-EINVAL);
- clk_node = kzalloc(sizeof(*clk_node), GFP_KERNEL);
+ clk_node = kzalloc_obj(*clk_node, GFP_KERNEL);
if (!clk_node)
return ERR_PTR(-ENOMEM);
@@ -870,7 +870,7 @@ struct clk_hw *__imx_clk_gpr_scu(const char *name, const char * const *parent_na
return NULL;
}
- clk = kzalloc(sizeof(*clk), GFP_KERNEL);
+ clk = kzalloc_obj(*clk, GFP_KERNEL);
if (!clk) {
kfree(clk_node);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk-sscg-pll.c b/drivers/clk/imx/clk-sscg-pll.c
index 81f304fae908..4017b194e085 100644
--- a/drivers/clk/imx/clk-sscg-pll.c
+++ b/drivers/clk/imx/clk-sscg-pll.c
@@ -509,7 +509,7 @@ struct clk_hw *imx_clk_hw_sscg_pll(const char *name,
struct clk_hw *hw;
int ret;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/imx/clk.c b/drivers/clk/imx/clk.c
index df83bd939492..c9c8397e9149 100644
--- a/drivers/clk/imx/clk.c
+++ b/drivers/clk/imx/clk.c
@@ -189,7 +189,7 @@ void imx_register_uart_clocks(void)
if (!of_stdout)
return;
- imx_uart_clocks = kcalloc(num, sizeof(struct clk *), GFP_KERNEL);
+ imx_uart_clocks = kzalloc_objs(struct clk *, num, GFP_KERNEL);
if (!imx_uart_clocks)
return;
diff --git a/drivers/clk/ingenic/cgu.c b/drivers/clk/ingenic/cgu.c
index 91e7ac0cc334..69055ef880eb 100644
--- a/drivers/clk/ingenic/cgu.c
+++ b/drivers/clk/ingenic/cgu.c
@@ -676,7 +676,7 @@ static int ingenic_register_clock(struct ingenic_cgu *cgu, unsigned idx)
goto out;
}
- ingenic_clk = kzalloc(sizeof(*ingenic_clk), GFP_KERNEL);
+ ingenic_clk = kzalloc_obj(*ingenic_clk, GFP_KERNEL);
if (!ingenic_clk) {
err = -ENOMEM;
goto out;
@@ -790,7 +790,7 @@ ingenic_cgu_new(const struct ingenic_cgu_clk_info *clock_info,
{
struct ingenic_cgu *cgu;
- cgu = kzalloc(sizeof(*cgu), GFP_KERNEL);
+ cgu = kzalloc_obj(*cgu, GFP_KERNEL);
if (!cgu)
goto err_out;
@@ -819,8 +819,8 @@ int ingenic_cgu_register_clocks(struct ingenic_cgu *cgu)
unsigned i;
int err;
- cgu->clocks.clks = kcalloc(cgu->clocks.clk_num, sizeof(struct clk *),
- GFP_KERNEL);
+ cgu->clocks.clks = kzalloc_objs(struct clk *, cgu->clocks.clk_num,
+ GFP_KERNEL);
if (!cgu->clocks.clks) {
err = -ENOMEM;
goto err_out;
diff --git a/drivers/clk/ingenic/tcu.c b/drivers/clk/ingenic/tcu.c
index bc6a51da2072..6ae7c2f66824 100644
--- a/drivers/clk/ingenic/tcu.c
+++ b/drivers/clk/ingenic/tcu.c
@@ -273,7 +273,7 @@ static int __init ingenic_tcu_register_clock(struct ingenic_tcu *tcu,
struct ingenic_tcu_clk *tcu_clk;
int err;
- tcu_clk = kzalloc(sizeof(*tcu_clk), GFP_KERNEL);
+ tcu_clk = kzalloc_obj(*tcu_clk, GFP_KERNEL);
if (!tcu_clk)
return -ENOMEM;
@@ -344,7 +344,7 @@ static int __init ingenic_tcu_probe(struct device_node *np)
if (IS_ERR(map))
return PTR_ERR(map);
- tcu = kzalloc(sizeof(*tcu), GFP_KERNEL);
+ tcu = kzalloc_obj(*tcu, GFP_KERNEL);
if (!tcu)
return -ENOMEM;
@@ -379,8 +379,7 @@ static int __init ingenic_tcu_probe(struct device_node *np)
}
}
- tcu->clocks = kzalloc(struct_size(tcu->clocks, hws, TCU_CLK_COUNT),
- GFP_KERNEL);
+ tcu->clocks = kzalloc_flex(*tcu->clocks, hws, TCU_CLK_COUNT, GFP_KERNEL);
if (!tcu->clocks) {
ret = -ENOMEM;
goto err_clk_disable;
diff --git a/drivers/clk/keystone/gate.c b/drivers/clk/keystone/gate.c
index 13ea047489eb..dff8ed64df85 100644
--- a/drivers/clk/keystone/gate.c
+++ b/drivers/clk/keystone/gate.c
@@ -168,7 +168,7 @@ static struct clk *clk_register_psc(struct device *dev,
struct clk_psc *psc;
struct clk *clk;
- psc = kzalloc(sizeof(*psc), GFP_KERNEL);
+ psc = kzalloc_obj(*psc, GFP_KERNEL);
if (!psc)
return ERR_PTR(-ENOMEM);
@@ -202,7 +202,7 @@ static void __init of_psc_clk_init(struct device_node *node, spinlock_t *lock)
struct clk *clk;
int i;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data) {
pr_err("%s: Out of memory\n", __func__);
return;
diff --git a/drivers/clk/keystone/pll.c b/drivers/clk/keystone/pll.c
index 6bbdd4705d71..9cdf1ecad45c 100644
--- a/drivers/clk/keystone/pll.c
+++ b/drivers/clk/keystone/pll.c
@@ -126,7 +126,7 @@ static struct clk *clk_register_pll(struct device *dev,
struct clk_pll *pll;
struct clk *clk;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
@@ -162,7 +162,7 @@ static void __init _of_pll_clk_init(struct device_node *node, bool pllctrl)
struct clk *clk;
int i;
- pll_data = kzalloc(sizeof(*pll_data), GFP_KERNEL);
+ pll_data = kzalloc_obj(*pll_data, GFP_KERNEL);
if (!pll_data) {
pr_err("%s: Out of memory\n", __func__);
return;
diff --git a/drivers/clk/mediatek/clk-apmixed.c b/drivers/clk/mediatek/clk-apmixed.c
index 60e34f124250..43c72621f4c9 100644
--- a/drivers/clk/mediatek/clk-apmixed.c
+++ b/drivers/clk/mediatek/clk-apmixed.c
@@ -77,7 +77,7 @@ struct clk_hw *mtk_clk_register_ref2usb_tx(const char *name,
struct clk_init_data init = {};
int ret;
- tx = kzalloc(sizeof(*tx), GFP_KERNEL);
+ tx = kzalloc_obj(*tx, GFP_KERNEL);
if (!tx)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/mediatek/clk-cpumux.c b/drivers/clk/mediatek/clk-cpumux.c
index a03826db4dcb..abcc1c41a6f9 100644
--- a/drivers/clk/mediatek/clk-cpumux.c
+++ b/drivers/clk/mediatek/clk-cpumux.c
@@ -66,7 +66,7 @@ mtk_clk_register_cpumux(struct device *dev, const struct mtk_composite *mux,
int ret;
struct clk_init_data init;
- cpumux = kzalloc(sizeof(*cpumux), GFP_KERNEL);
+ cpumux = kzalloc_obj(*cpumux, GFP_KERNEL);
if (!cpumux)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/mediatek/clk-gate.c b/drivers/clk/mediatek/clk-gate.c
index f6b1429ff757..3689ec69da5d 100644
--- a/drivers/clk/mediatek/clk-gate.c
+++ b/drivers/clk/mediatek/clk-gate.c
@@ -212,7 +212,7 @@ static struct clk_hw *mtk_clk_register_gate(struct device *dev,
int ret;
struct clk_init_data init = {};
- cg = kzalloc(sizeof(*cg), GFP_KERNEL);
+ cg = kzalloc_obj(*cg, GFP_KERNEL);
if (!cg)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c
index deafe55a96cb..de093f9665af 100644
--- a/drivers/clk/mediatek/clk-mtk.c
+++ b/drivers/clk/mediatek/clk-mtk.c
@@ -67,7 +67,7 @@ struct clk_hw_onecell_data *mtk_alloc_clk_data(unsigned int clk_num)
{
struct clk_hw_onecell_data *clk_data;
- clk_data = kzalloc(struct_size(clk_data, hws, clk_num), GFP_KERNEL);
+ clk_data = kzalloc_flex(*clk_data, hws, clk_num, GFP_KERNEL);
if (!clk_data)
return NULL;
@@ -230,7 +230,7 @@ static struct clk_hw *mtk_clk_register_composite(struct device *dev,
int ret;
if (mc->mux_shift >= 0) {
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return ERR_PTR(-ENOMEM);
@@ -251,7 +251,7 @@ static struct clk_hw *mtk_clk_register_composite(struct device *dev,
}
if (mc->gate_shift >= 0) {
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate) {
ret = -ENOMEM;
goto err_out;
@@ -267,7 +267,7 @@ static struct clk_hw *mtk_clk_register_composite(struct device *dev,
}
if (mc->divider_shift >= 0) {
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div) {
ret = -ENOMEM;
goto err_out;
diff --git a/drivers/clk/mediatek/clk-mux.c b/drivers/clk/mediatek/clk-mux.c
index c5af6dc078a3..0cc6de7ab29b 100644
--- a/drivers/clk/mediatek/clk-mux.c
+++ b/drivers/clk/mediatek/clk-mux.c
@@ -281,7 +281,7 @@ static struct clk_hw *mtk_clk_register_mux(struct device *dev,
struct clk_init_data init = {};
int ret;
- clk_mux = kzalloc(sizeof(*clk_mux), GFP_KERNEL);
+ clk_mux = kzalloc_obj(*clk_mux, GFP_KERNEL);
if (!clk_mux)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/mediatek/clk-pll.c b/drivers/clk/mediatek/clk-pll.c
index 0f3759fcd9d0..ff414d9b560a 100644
--- a/drivers/clk/mediatek/clk-pll.c
+++ b/drivers/clk/mediatek/clk-pll.c
@@ -385,7 +385,7 @@ struct clk_hw *mtk_clk_register_pll(struct device *dev,
struct clk_hw *hw;
const struct clk_ops *pll_ops = data->ops ? data->ops : &mtk_pll_ops;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/mediatek/clk-pllfh.c b/drivers/clk/mediatek/clk-pllfh.c
index 8ad11023d911..6b9f43ddd57f 100644
--- a/drivers/clk/mediatek/clk-pllfh.c
+++ b/drivers/clk/mediatek/clk-pllfh.c
@@ -157,7 +157,7 @@ mtk_clk_register_pllfh(struct device *dev, const struct mtk_pll_data *pll_data,
struct mtk_fh *fh;
int ret;
- fh = kzalloc(sizeof(*fh), GFP_KERNEL);
+ fh = kzalloc_obj(*fh, GFP_KERNEL);
if (!fh)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/meson/meson8b.c b/drivers/clk/meson/meson8b.c
index 95d0b9cbd904..d56be70ab02f 100644
--- a/drivers/clk/meson/meson8b.c
+++ b/drivers/clk/meson/meson8b.c
@@ -3646,7 +3646,7 @@ static void __init meson8b_clkc_init_common(struct device_node *np,
return;
}
- rstc = kzalloc(sizeof(*rstc), GFP_KERNEL);
+ rstc = kzalloc_obj(*rstc, GFP_KERNEL);
if (!rstc)
return;
diff --git a/drivers/clk/mmp/clk-apbc.c b/drivers/clk/mmp/clk-apbc.c
index 23c43a46604e..1d6fd5e5d6c0 100644
--- a/drivers/clk/mmp/clk-apbc.c
+++ b/drivers/clk/mmp/clk-apbc.c
@@ -124,7 +124,7 @@ struct clk *mmp_clk_register_apbc(const char *name, const char *parent_name,
struct clk *clk;
struct clk_init_data init;
- apbc = kzalloc(sizeof(*apbc), GFP_KERNEL);
+ apbc = kzalloc_obj(*apbc, GFP_KERNEL);
if (!apbc)
return NULL;
diff --git a/drivers/clk/mmp/clk-apmu.c b/drivers/clk/mmp/clk-apmu.c
index 9313428b083a..e457436c522c 100644
--- a/drivers/clk/mmp/clk-apmu.c
+++ b/drivers/clk/mmp/clk-apmu.c
@@ -69,7 +69,7 @@ struct clk *mmp_clk_register_apmu(const char *name, const char *parent_name,
struct clk *clk;
struct clk_init_data init;
- apmu = kzalloc(sizeof(*apmu), GFP_KERNEL);
+ apmu = kzalloc_obj(*apmu, GFP_KERNEL);
if (!apmu)
return NULL;
diff --git a/drivers/clk/mmp/clk-frac.c b/drivers/clk/mmp/clk-frac.c
index 0b1bb01346f0..4307698741c6 100644
--- a/drivers/clk/mmp/clk-frac.c
+++ b/drivers/clk/mmp/clk-frac.c
@@ -180,7 +180,7 @@ struct clk *mmp_clk_register_factor(const char *name, const char *parent_name,
return ERR_PTR(-EINVAL);
}
- factor = kzalloc(sizeof(*factor), GFP_KERNEL);
+ factor = kzalloc_obj(*factor, GFP_KERNEL);
if (!factor)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/mmp/clk-gate.c b/drivers/clk/mmp/clk-gate.c
index 6855815ee8be..59f4070be33c 100644
--- a/drivers/clk/mmp/clk-gate.c
+++ b/drivers/clk/mmp/clk-gate.c
@@ -99,7 +99,7 @@ struct clk *mmp_clk_register_gate(struct device *dev, const char *name,
struct clk_init_data init;
/* allocate the gate */
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/mmp/clk-mix.c b/drivers/clk/mmp/clk-mix.c
index 07ac9e6937e5..14aa90342664 100644
--- a/drivers/clk/mmp/clk-mix.c
+++ b/drivers/clk/mmp/clk-mix.c
@@ -448,7 +448,7 @@ struct clk *mmp_clk_register_mix(struct device *dev,
struct clk *clk;
struct clk_init_data init;
- mix = kzalloc(sizeof(*mix), GFP_KERNEL);
+ mix = kzalloc_obj(*mix, GFP_KERNEL);
if (!mix)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/mmp/clk-of-mmp2.c b/drivers/clk/mmp/clk-of-mmp2.c
index a4f15cee630e..2067b4bb261d 100644
--- a/drivers/clk/mmp/clk-of-mmp2.c
+++ b/drivers/clk/mmp/clk-of-mmp2.c
@@ -462,7 +462,7 @@ static void mmp2_clk_reset_init(struct device_node *np,
int i, nr_resets;
nr_resets = ARRAY_SIZE(apbc_gate_clks);
- cells = kcalloc(nr_resets, sizeof(*cells), GFP_KERNEL);
+ cells = kzalloc_objs(*cells, nr_resets, GFP_KERNEL);
if (!cells)
return;
@@ -516,7 +516,7 @@ static void __init mmp2_clk_init(struct device_node *np)
{
struct mmp2_clk_unit *pxa_unit;
- pxa_unit = kzalloc(sizeof(*pxa_unit), GFP_KERNEL);
+ pxa_unit = kzalloc_obj(*pxa_unit, GFP_KERNEL);
if (!pxa_unit)
return;
diff --git a/drivers/clk/mmp/clk-of-pxa168.c b/drivers/clk/mmp/clk-of-pxa168.c
index 5f250427e60d..f5b8a6749829 100644
--- a/drivers/clk/mmp/clk-of-pxa168.c
+++ b/drivers/clk/mmp/clk-of-pxa168.c
@@ -282,7 +282,7 @@ static void pxa168_clk_reset_init(struct device_node *np,
int i, nr_resets;
nr_resets = ARRAY_SIZE(apbc_gate_clks);
- cells = kcalloc(nr_resets, sizeof(*cells), GFP_KERNEL);
+ cells = kzalloc_objs(*cells, nr_resets, GFP_KERNEL);
if (!cells)
return;
@@ -301,7 +301,7 @@ static void __init pxa168_clk_init(struct device_node *np)
{
struct pxa168_clk_unit *pxa_unit;
- pxa_unit = kzalloc(sizeof(*pxa_unit), GFP_KERNEL);
+ pxa_unit = kzalloc_obj(*pxa_unit, GFP_KERNEL);
if (!pxa_unit)
return;
diff --git a/drivers/clk/mmp/clk-of-pxa1928.c b/drivers/clk/mmp/clk-of-pxa1928.c
index ebb6e278eda3..24fc9054a667 100644
--- a/drivers/clk/mmp/clk-of-pxa1928.c
+++ b/drivers/clk/mmp/clk-of-pxa1928.c
@@ -187,7 +187,7 @@ static void pxa1928_clk_reset_init(struct device_node *np,
int i, base, nr_resets;
nr_resets = ARRAY_SIZE(apbc_gate_clks);
- cells = kcalloc(nr_resets, sizeof(*cells), GFP_KERNEL);
+ cells = kzalloc_objs(*cells, nr_resets, GFP_KERNEL);
if (!cells)
return;
@@ -208,7 +208,7 @@ static void __init pxa1928_mpmu_clk_init(struct device_node *np)
{
struct pxa1928_clk_unit *pxa_unit;
- pxa_unit = kzalloc(sizeof(*pxa_unit), GFP_KERNEL);
+ pxa_unit = kzalloc_obj(*pxa_unit, GFP_KERNEL);
if (!pxa_unit)
return;
@@ -227,7 +227,7 @@ static void __init pxa1928_apmu_clk_init(struct device_node *np)
{
struct pxa1928_clk_unit *pxa_unit;
- pxa_unit = kzalloc(sizeof(*pxa_unit), GFP_KERNEL);
+ pxa_unit = kzalloc_obj(*pxa_unit, GFP_KERNEL);
if (!pxa_unit)
return;
@@ -248,7 +248,7 @@ static void __init pxa1928_apbc_clk_init(struct device_node *np)
{
struct pxa1928_clk_unit *pxa_unit;
- pxa_unit = kzalloc(sizeof(*pxa_unit), GFP_KERNEL);
+ pxa_unit = kzalloc_obj(*pxa_unit, GFP_KERNEL);
if (!pxa_unit)
return;
diff --git a/drivers/clk/mmp/clk-of-pxa910.c b/drivers/clk/mmp/clk-of-pxa910.c
index fe65e7bdb411..43c40b949326 100644
--- a/drivers/clk/mmp/clk-of-pxa910.c
+++ b/drivers/clk/mmp/clk-of-pxa910.c
@@ -239,7 +239,7 @@ static void pxa910_clk_reset_init(struct device_node *np,
nr_resets_apbc = ARRAY_SIZE(apbc_gate_clks);
nr_resets_apbcp = ARRAY_SIZE(apbcp_gate_clks);
nr_resets = nr_resets_apbc + nr_resets_apbcp;
- cells = kcalloc(nr_resets, sizeof(*cells), GFP_KERNEL);
+ cells = kzalloc_objs(*cells, nr_resets, GFP_KERNEL);
if (!cells)
return;
@@ -270,7 +270,7 @@ static void __init pxa910_clk_init(struct device_node *np)
{
struct pxa910_clk_unit *pxa_unit;
- pxa_unit = kzalloc(sizeof(*pxa_unit), GFP_KERNEL);
+ pxa_unit = kzalloc_obj(*pxa_unit, GFP_KERNEL);
if (!pxa_unit)
return;
diff --git a/drivers/clk/mmp/clk-pll.c b/drivers/clk/mmp/clk-pll.c
index 962014cfdc44..bf2d691fcc92 100644
--- a/drivers/clk/mmp/clk-pll.c
+++ b/drivers/clk/mmp/clk-pll.c
@@ -108,7 +108,7 @@ static struct clk *mmp_clk_register_pll(char *name,
struct clk *clk;
struct clk_init_data init;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/mmp/clk.c b/drivers/clk/mmp/clk.c
index ca7d37e2c7be..c31c3a9f4f57 100644
--- a/drivers/clk/mmp/clk.c
+++ b/drivers/clk/mmp/clk.c
@@ -12,7 +12,7 @@ void mmp_clk_init(struct device_node *np, struct mmp_clk_unit *unit,
{
struct clk **clk_table;
- clk_table = kcalloc(nr_clks, sizeof(struct clk *), GFP_KERNEL);
+ clk_table = kzalloc_objs(struct clk *, nr_clks, GFP_KERNEL);
if (!clk_table)
return;
diff --git a/drivers/clk/mmp/pwr-island.c b/drivers/clk/mmp/pwr-island.c
index eaf5d2c5e593..1253e383aa44 100644
--- a/drivers/clk/mmp/pwr-island.c
+++ b/drivers/clk/mmp/pwr-island.c
@@ -95,7 +95,7 @@ struct generic_pm_domain *mmp_pm_domain_register(const char *name,
{
struct mmp_pm_domain *pm_domain;
- pm_domain = kzalloc(sizeof(*pm_domain), GFP_KERNEL);
+ pm_domain = kzalloc_obj(*pm_domain, GFP_KERNEL);
if (!pm_domain)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/mmp/reset.c b/drivers/clk/mmp/reset.c
index ded7e391c737..c7068976a378 100644
--- a/drivers/clk/mmp/reset.c
+++ b/drivers/clk/mmp/reset.c
@@ -85,7 +85,7 @@ void mmp_clk_reset_register(struct device_node *np,
{
struct mmp_clk_reset_unit *unit;
- unit = kzalloc(sizeof(*unit), GFP_KERNEL);
+ unit = kzalloc_obj(*unit, GFP_KERNEL);
if (!unit)
return;
diff --git a/drivers/clk/mvebu/clk-corediv.c b/drivers/clk/mvebu/clk-corediv.c
index 628032341cbb..487542d61662 100644
--- a/drivers/clk/mvebu/clk-corediv.c
+++ b/drivers/clk/mvebu/clk-corediv.c
@@ -270,13 +270,11 @@ mvebu_corediv_clk_init(struct device_node *node,
clk_data.clk_num = soc_desc->ndescs;
/* clks holds the clock array */
- clks = kcalloc(clk_data.clk_num, sizeof(struct clk *),
- GFP_KERNEL);
+ clks = kzalloc_objs(struct clk *, clk_data.clk_num, GFP_KERNEL);
if (WARN_ON(!clks))
goto err_unmap;
/* corediv holds the clock specific array */
- corediv = kcalloc(clk_data.clk_num, sizeof(struct clk_corediv),
- GFP_KERNEL);
+ corediv = kzalloc_objs(struct clk_corediv, clk_data.clk_num, GFP_KERNEL);
if (WARN_ON(!corediv))
goto err_free_clks;
diff --git a/drivers/clk/mvebu/clk-cpu.c b/drivers/clk/mvebu/clk-cpu.c
index 0de7660e73d2..8c74edbcce9a 100644
--- a/drivers/clk/mvebu/clk-cpu.c
+++ b/drivers/clk/mvebu/clk-cpu.c
@@ -183,11 +183,11 @@ static void __init of_cpu_clk_setup(struct device_node *node)
pr_warn("%s: pmu-dfs base register not set, dynamic frequency scaling not available\n",
__func__);
- cpuclk = kcalloc(ncpus, sizeof(*cpuclk), GFP_KERNEL);
+ cpuclk = kzalloc_objs(*cpuclk, ncpus, GFP_KERNEL);
if (WARN_ON(!cpuclk))
goto cpuclk_out;
- clks = kcalloc(ncpus, sizeof(*clks), GFP_KERNEL);
+ clks = kzalloc_objs(*clks, ncpus, GFP_KERNEL);
if (WARN_ON(!clks))
goto clks_out;
diff --git a/drivers/clk/mvebu/common.c b/drivers/clk/mvebu/common.c
index 5adbbd91a6db..41c5cd7739b2 100644
--- a/drivers/clk/mvebu/common.c
+++ b/drivers/clk/mvebu/common.c
@@ -124,8 +124,8 @@ void __init mvebu_coreclk_setup(struct device_node *np,
if (desc->get_refclk_freq)
clk_data.clk_num += 1;
- clk_data.clks = kcalloc(clk_data.clk_num, sizeof(*clk_data.clks),
- GFP_KERNEL);
+ clk_data.clks = kzalloc_objs(*clk_data.clks, clk_data.clk_num,
+ GFP_KERNEL);
if (WARN_ON(!clk_data.clks)) {
iounmap(base);
return;
@@ -258,7 +258,7 @@ void __init mvebu_clk_gating_setup(struct device_node *np,
clk_put(clk);
}
- ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL);
+ ctrl = kzalloc_obj(*ctrl, GFP_KERNEL);
if (WARN_ON(!ctrl))
goto ctrl_out;
@@ -272,8 +272,7 @@ void __init mvebu_clk_gating_setup(struct device_node *np,
n++;
ctrl->num_gates = n;
- ctrl->gates = kcalloc(ctrl->num_gates, sizeof(*ctrl->gates),
- GFP_KERNEL);
+ ctrl->gates = kzalloc_objs(*ctrl->gates, ctrl->num_gates, GFP_KERNEL);
if (WARN_ON(!ctrl->gates))
goto gates_out;
diff --git a/drivers/clk/mvebu/cp110-system-controller.c b/drivers/clk/mvebu/cp110-system-controller.c
index b47c86906046..c6b5b2205f2e 100644
--- a/drivers/clk/mvebu/cp110-system-controller.c
+++ b/drivers/clk/mvebu/cp110-system-controller.c
@@ -180,7 +180,7 @@ static struct clk_hw *cp110_register_gate(const char *name,
struct clk_init_data init;
int ret;
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/mvebu/kirkwood.c b/drivers/clk/mvebu/kirkwood.c
index 8bc893df4736..967f0be794ab 100644
--- a/drivers/clk/mvebu/kirkwood.c
+++ b/drivers/clk/mvebu/kirkwood.c
@@ -297,7 +297,7 @@ static void __init kirkwood_clk_muxing_setup(struct device_node *np,
if (WARN_ON(!base))
return;
- ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL);
+ ctrl = kzalloc_obj(*ctrl, GFP_KERNEL);
if (WARN_ON(!ctrl))
goto ctrl_out;
@@ -309,8 +309,7 @@ static void __init kirkwood_clk_muxing_setup(struct device_node *np,
n++;
ctrl->num_muxes = n;
- ctrl->muxes = kcalloc(ctrl->num_muxes, sizeof(struct clk *),
- GFP_KERNEL);
+ ctrl->muxes = kzalloc_objs(struct clk *, ctrl->num_muxes, GFP_KERNEL);
if (WARN_ON(!ctrl->muxes))
goto muxes_out;
diff --git a/drivers/clk/mxs/clk-div.c b/drivers/clk/mxs/clk-div.c
index 8afe1a9c1552..47c5c2fe8e5e 100644
--- a/drivers/clk/mxs/clk-div.c
+++ b/drivers/clk/mxs/clk-div.c
@@ -74,7 +74,7 @@ struct clk *mxs_clk_div(const char *name, const char *parent_name,
struct clk *clk;
struct clk_init_data init;
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/mxs/clk-frac.c b/drivers/clk/mxs/clk-frac.c
index 73f514fb84ff..7de0c20baabb 100644
--- a/drivers/clk/mxs/clk-frac.c
+++ b/drivers/clk/mxs/clk-frac.c
@@ -116,7 +116,7 @@ struct clk *mxs_clk_frac(const char *name, const char *parent_name,
struct clk *clk;
struct clk_init_data init;
- frac = kzalloc(sizeof(*frac), GFP_KERNEL);
+ frac = kzalloc_obj(*frac, GFP_KERNEL);
if (!frac)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/mxs/clk-pll.c b/drivers/clk/mxs/clk-pll.c
index 431cf6f2c936..f67bfe743479 100644
--- a/drivers/clk/mxs/clk-pll.c
+++ b/drivers/clk/mxs/clk-pll.c
@@ -86,7 +86,7 @@ struct clk *mxs_clk_pll(const char *name, const char *parent_name,
struct clk *clk;
struct clk_init_data init;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/mxs/clk-ref.c b/drivers/clk/mxs/clk-ref.c
index a99ee4cd2ece..e6674fb58add 100644
--- a/drivers/clk/mxs/clk-ref.c
+++ b/drivers/clk/mxs/clk-ref.c
@@ -117,7 +117,7 @@ struct clk *mxs_clk_ref(const char *name, const char *parent_name,
struct clk *clk;
struct clk_init_data init;
- ref = kzalloc(sizeof(*ref), GFP_KERNEL);
+ ref = kzalloc_obj(*ref, GFP_KERNEL);
if (!ref)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/nxp/clk-lpc18xx-ccu.c b/drivers/clk/nxp/clk-lpc18xx-ccu.c
index 751b786d73f8..8bb5a44c9b59 100644
--- a/drivers/clk/nxp/clk-lpc18xx-ccu.c
+++ b/drivers/clk/nxp/clk-lpc18xx-ccu.c
@@ -208,7 +208,7 @@ static void lpc18xx_ccu_register_branch_gate_div(struct lpc18xx_clk_branch *bran
struct clk_hw *div_hw = NULL;
if (branch->flags & CCU_BRANCH_HAVE_DIV2) {
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
return;
@@ -274,7 +274,7 @@ static void __init lpc18xx_ccu_init(struct device_node *np)
return;
}
- clk_data = kzalloc(sizeof(*clk_data), GFP_KERNEL);
+ clk_data = kzalloc_obj(*clk_data, GFP_KERNEL);
if (!clk_data) {
iounmap(reg_base);
return;
diff --git a/drivers/clk/pistachio/clk-pll.c b/drivers/clk/pistachio/clk-pll.c
index d05337915e2b..dd4fe9a114a7 100644
--- a/drivers/clk/pistachio/clk-pll.c
+++ b/drivers/clk/pistachio/clk-pll.c
@@ -457,7 +457,7 @@ static struct clk *pll_register(const char *name, const char *parent_name,
struct clk_init_data init;
struct clk *clk;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/pistachio/clk.c b/drivers/clk/pistachio/clk.c
index 23d076a2b133..80f60f2ce7de 100644
--- a/drivers/clk/pistachio/clk.c
+++ b/drivers/clk/pistachio/clk.c
@@ -17,11 +17,11 @@ pistachio_clk_alloc_provider(struct device_node *node, unsigned int num_clks)
{
struct pistachio_clk_provider *p;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return p;
- p->clk_data.clks = kcalloc(num_clks, sizeof(struct clk *), GFP_KERNEL);
+ p->clk_data.clks = kzalloc_objs(struct clk *, num_clks, GFP_KERNEL);
if (!p->clk_data.clks)
goto free_provider;
p->clk_data.clk_num = num_clks;
diff --git a/drivers/clk/pxa/clk-pxa.c b/drivers/clk/pxa/clk-pxa.c
index ebee2afd05de..1c5dedaefec8 100644
--- a/drivers/clk/pxa/clk-pxa.c
+++ b/drivers/clk/pxa/clk-pxa.c
@@ -104,7 +104,7 @@ int __init clk_pxa_cken_init(const struct desc_clk_cken *clks,
struct clk *clk;
for (i = 0; i < nb_clks; i++) {
- pxa_clk = kzalloc(sizeof(*pxa_clk), GFP_KERNEL);
+ pxa_clk = kzalloc_obj(*pxa_clk, GFP_KERNEL);
if (!pxa_clk)
return -ENOMEM;
pxa_clk->is_in_low_power = clks[i].is_in_low_power;
diff --git a/drivers/clk/qcom/clk-rcg2.c b/drivers/clk/qcom/clk-rcg2.c
index d0a5847f9111..0977b61f242e 100644
--- a/drivers/clk/qcom/clk-rcg2.c
+++ b/drivers/clk/qcom/clk-rcg2.c
@@ -1650,7 +1650,7 @@ static int clk_rcg2_dfs_populate_freq_table(struct clk_rcg2 *rcg)
int i;
/* Allocate space for 1 extra since table is NULL terminated */
- freq_tbl = kcalloc(MAX_PERF_LEVEL + 1, sizeof(*freq_tbl), GFP_KERNEL);
+ freq_tbl = kzalloc_objs(*freq_tbl, MAX_PERF_LEVEL + 1, GFP_KERNEL);
if (!freq_tbl)
return -ENOMEM;
rcg->freq_tbl = freq_tbl;
diff --git a/drivers/clk/ralink/clk-mt7621.c b/drivers/clk/ralink/clk-mt7621.c
index 92d14350c4b3..3079d7ce0e57 100644
--- a/drivers/clk/ralink/clk-mt7621.c
+++ b/drivers/clk/ralink/clk-mt7621.c
@@ -354,7 +354,7 @@ static void __init mt7621_clk_init(struct device_node *node)
struct clk_hw_onecell_data *clk_data;
int ret, i, count;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return;
@@ -372,7 +372,7 @@ static void __init mt7621_clk_init(struct device_node *node)
count = ARRAY_SIZE(mt7621_clks_base) +
ARRAY_SIZE(mt7621_fixed_clks) + ARRAY_SIZE(mt7621_gates);
- clk_data = kzalloc(struct_size(clk_data, hws, count), GFP_KERNEL);
+ clk_data = kzalloc_flex(*clk_data, hws, count, GFP_KERNEL);
if (!clk_data)
goto free_clk_priv;
diff --git a/drivers/clk/ralink/clk-mtmips.c b/drivers/clk/ralink/clk-mtmips.c
index 19d433034884..c6ee73a8fa22 100644
--- a/drivers/clk/ralink/clk-mtmips.c
+++ b/drivers/clk/ralink/clk-mtmips.c
@@ -916,7 +916,7 @@ static void __init mtmips_clk_init(struct device_node *node)
struct clk_hw_onecell_data *clk_data;
int ret, i, count;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return;
@@ -936,7 +936,7 @@ static void __init mtmips_clk_init(struct device_node *node)
priv->data = data;
count = priv->data->num_clk_base + priv->data->num_clk_fixed +
priv->data->num_clk_factor + priv->data->num_clk_periph;
- clk_data = kzalloc(struct_size(clk_data, hws, count), GFP_KERNEL);
+ clk_data = kzalloc_flex(*clk_data, hws, count, GFP_KERNEL);
if (!clk_data)
goto free_clk_priv;
diff --git a/drivers/clk/renesas/clk-div6.c b/drivers/clk/renesas/clk-div6.c
index f7b827b5e9b2..051515695c52 100644
--- a/drivers/clk/renesas/clk-div6.c
+++ b/drivers/clk/renesas/clk-div6.c
@@ -251,7 +251,7 @@ struct clk * __init cpg_div6_register(const char *name,
struct clk *clk;
unsigned int i;
- clock = kzalloc(struct_size(clock, parents, num_parents), GFP_KERNEL);
+ clock = kzalloc_flex(*clock, parents, num_parents, GFP_KERNEL);
if (!clock)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/renesas/clk-mstp.c b/drivers/clk/renesas/clk-mstp.c
index 2f65fe2c6bdf..79414c2c2e9c 100644
--- a/drivers/clk/renesas/clk-mstp.c
+++ b/drivers/clk/renesas/clk-mstp.c
@@ -150,7 +150,7 @@ static struct clk * __init cpg_mstp_clock_register(const char *name,
struct mstp_clock *clock;
struct clk *clk;
- clock = kzalloc(sizeof(*clock), GFP_KERNEL);
+ clock = kzalloc_obj(*clock, GFP_KERNEL);
if (!clock)
return ERR_PTR(-ENOMEM);
@@ -184,7 +184,7 @@ static void __init cpg_mstp_clocks_init(struct device_node *np)
struct clk **clks;
unsigned int i;
- group = kzalloc(struct_size(group, clks, MSTP_MAX_CLOCKS), GFP_KERNEL);
+ group = kzalloc_flex(*group, clks, MSTP_MAX_CLOCKS, GFP_KERNEL);
if (!group)
return;
@@ -316,7 +316,7 @@ void __init cpg_mstp_add_clk_domain(struct device_node *np)
return;
}
- pd = kzalloc(sizeof(*pd), GFP_KERNEL);
+ pd = kzalloc_obj(*pd, GFP_KERNEL);
if (!pd)
return;
diff --git a/drivers/clk/renesas/clk-r8a73a4.c b/drivers/clk/renesas/clk-r8a73a4.c
index f331d8bc9daf..708506671a78 100644
--- a/drivers/clk/renesas/clk-r8a73a4.c
+++ b/drivers/clk/renesas/clk-r8a73a4.c
@@ -196,8 +196,8 @@ static void __init r8a73a4_cpg_clocks_init(struct device_node *np)
return;
}
- cpg = kzalloc(sizeof(*cpg), GFP_KERNEL);
- clks = kcalloc(num_clks, sizeof(*clks), GFP_KERNEL);
+ cpg = kzalloc_obj(*cpg, GFP_KERNEL);
+ clks = kzalloc_objs(*clks, num_clks, GFP_KERNEL);
if (cpg == NULL || clks == NULL) {
/* We're leaking memory on purpose, there's no point in cleaning
* up as the system won't boot anyway.
diff --git a/drivers/clk/renesas/clk-r8a7740.c b/drivers/clk/renesas/clk-r8a7740.c
index 22e9be7240bb..f4c4ef44cff9 100644
--- a/drivers/clk/renesas/clk-r8a7740.c
+++ b/drivers/clk/renesas/clk-r8a7740.c
@@ -155,8 +155,8 @@ static void __init r8a7740_cpg_clocks_init(struct device_node *np)
return;
}
- cpg = kzalloc(sizeof(*cpg), GFP_KERNEL);
- clks = kcalloc(num_clks, sizeof(*clks), GFP_KERNEL);
+ cpg = kzalloc_obj(*cpg, GFP_KERNEL);
+ clks = kzalloc_objs(*clks, num_clks, GFP_KERNEL);
if (cpg == NULL || clks == NULL) {
/* We're leaking memory on purpose, there's no point in cleaning
* up as the system won't boot anyway.
diff --git a/drivers/clk/renesas/clk-r8a7778.c b/drivers/clk/renesas/clk-r8a7778.c
index 6ea173f22251..2f664c7efba5 100644
--- a/drivers/clk/renesas/clk-r8a7778.c
+++ b/drivers/clk/renesas/clk-r8a7778.c
@@ -92,8 +92,8 @@ static void __init r8a7778_cpg_clocks_init(struct device_node *np)
return;
}
- data = kzalloc(sizeof(*data), GFP_KERNEL);
- clks = kcalloc(num_clks, sizeof(*clks), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
+ clks = kzalloc_objs(*clks, num_clks, GFP_KERNEL);
if (data == NULL || clks == NULL) {
/* We're leaking memory on purpose, there's no point in cleaning
* up as the system won't boot anyway.
diff --git a/drivers/clk/renesas/clk-r8a7779.c b/drivers/clk/renesas/clk-r8a7779.c
index 9a2fea8cf4d7..9243848863f2 100644
--- a/drivers/clk/renesas/clk-r8a7779.c
+++ b/drivers/clk/renesas/clk-r8a7779.c
@@ -128,8 +128,8 @@ static void __init r8a7779_cpg_clocks_init(struct device_node *np)
return;
}
- data = kzalloc(sizeof(*data), GFP_KERNEL);
- clks = kcalloc(CPG_NUM_CLOCKS, sizeof(*clks), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
+ clks = kzalloc_objs(*clks, CPG_NUM_CLOCKS, GFP_KERNEL);
if (data == NULL || clks == NULL) {
/* We're leaking memory on purpose, there's no point in cleaning
* up as the system won't boot anyway.
diff --git a/drivers/clk/renesas/clk-rz.c b/drivers/clk/renesas/clk-rz.c
index e770f09a27ed..0a89be1fce79 100644
--- a/drivers/clk/renesas/clk-rz.c
+++ b/drivers/clk/renesas/clk-rz.c
@@ -91,8 +91,8 @@ static void __init rz_cpg_clocks_init(struct device_node *np)
if (WARN(num_clks <= 0, "can't count CPG clocks\n"))
return;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
- clks = kcalloc(num_clks, sizeof(*clks), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
+ clks = kzalloc_objs(*clks, num_clks, GFP_KERNEL);
BUG_ON(!data || !clks);
data->clks = clks;
diff --git a/drivers/clk/renesas/clk-sh73a0.c b/drivers/clk/renesas/clk-sh73a0.c
index 47fc99ccd283..a3bbd8a0ac4d 100644
--- a/drivers/clk/renesas/clk-sh73a0.c
+++ b/drivers/clk/renesas/clk-sh73a0.c
@@ -170,8 +170,8 @@ static void __init sh73a0_cpg_clocks_init(struct device_node *np)
return;
}
- cpg = kzalloc(sizeof(*cpg), GFP_KERNEL);
- clks = kcalloc(num_clks, sizeof(*clks), GFP_KERNEL);
+ cpg = kzalloc_obj(*cpg, GFP_KERNEL);
+ clks = kzalloc_objs(*clks, num_clks, GFP_KERNEL);
if (cpg == NULL || clks == NULL) {
/* We're leaking memory on purpose, there's no point in cleaning
* up as the system won't boot anyway.
diff --git a/drivers/clk/renesas/r9a06g032-clocks.c b/drivers/clk/renesas/r9a06g032-clocks.c
index 0f5c91b5dfa9..58255bf6da83 100644
--- a/drivers/clk/renesas/r9a06g032-clocks.c
+++ b/drivers/clk/renesas/r9a06g032-clocks.c
@@ -891,7 +891,7 @@ r9a06g032_register_gate(struct r9a06g032_priv *clocks,
struct r9a06g032_clk_gate *g;
struct clk_init_data init = {};
- g = kzalloc(sizeof(*g), GFP_KERNEL);
+ g = kzalloc_obj(*g, GFP_KERNEL);
if (!g)
return NULL;
@@ -1063,7 +1063,7 @@ r9a06g032_register_div(struct r9a06g032_priv *clocks,
struct clk_init_data init = {};
unsigned int i;
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
return NULL;
@@ -1149,7 +1149,7 @@ r9a06g032_register_bitsel(struct r9a06g032_priv *clocks,
const char *names[2];
/* allocate the gate */
- g = kzalloc(sizeof(*g), GFP_KERNEL);
+ g = kzalloc_obj(*g, GFP_KERNEL);
if (!g)
return NULL;
@@ -1239,7 +1239,7 @@ r9a06g032_register_dualgate(struct r9a06g032_priv *clocks,
struct clk_init_data init = {};
/* allocate the gate */
- g = kzalloc(sizeof(*g), GFP_KERNEL);
+ g = kzalloc_obj(*g, GFP_KERNEL);
if (!g)
return NULL;
g->clocks = clocks;
diff --git a/drivers/clk/renesas/rcar-cpg-lib.c b/drivers/clk/renesas/rcar-cpg-lib.c
index 7b271de7037a..f4279af8787f 100644
--- a/drivers/clk/renesas/rcar-cpg-lib.c
+++ b/drivers/clk/renesas/rcar-cpg-lib.c
@@ -94,7 +94,7 @@ struct clk * __init cpg_sdh_clk_register(const char *name,
struct cpg_simple_notifier *csn;
struct clk *clk;
- csn = kzalloc(sizeof(*csn), GFP_KERNEL);
+ csn = kzalloc_obj(*csn, GFP_KERNEL);
if (!csn)
return ERR_PTR(-ENOMEM);
@@ -144,7 +144,7 @@ struct clk * __init cpg_rpc_clk_register(const char *name,
struct rpc_clock *rpc;
struct clk *clk;
- rpc = kzalloc(sizeof(*rpc), GFP_KERNEL);
+ rpc = kzalloc_obj(*rpc, GFP_KERNEL);
if (!rpc)
return ERR_PTR(-ENOMEM);
@@ -185,7 +185,7 @@ struct clk * __init cpg_rpcd2_clk_register(const char *name,
struct rpcd2_clock *rpcd2;
struct clk *clk;
- rpcd2 = kzalloc(sizeof(*rpcd2), GFP_KERNEL);
+ rpcd2 = kzalloc_obj(*rpcd2, GFP_KERNEL);
if (!rpcd2)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/renesas/rcar-gen2-cpg.c b/drivers/clk/renesas/rcar-gen2-cpg.c
index ab34bb8c3e07..69618ec0b638 100644
--- a/drivers/clk/renesas/rcar-gen2-cpg.c
+++ b/drivers/clk/renesas/rcar-gen2-cpg.c
@@ -141,7 +141,7 @@ static struct clk * __init cpg_z_clk_register(const char *name,
struct cpg_z_clk *zclk;
struct clk *clk;
- zclk = kzalloc(sizeof(*zclk), GFP_KERNEL);
+ zclk = kzalloc_obj(*zclk, GFP_KERNEL);
if (!zclk)
return ERR_PTR(-ENOMEM);
@@ -169,14 +169,14 @@ static struct clk * __init cpg_rcan_clk_register(const char *name,
struct clk_gate *gate;
struct clk *clk;
- fixed = kzalloc(sizeof(*fixed), GFP_KERNEL);
+ fixed = kzalloc_obj(*fixed, GFP_KERNEL);
if (!fixed)
return ERR_PTR(-ENOMEM);
fixed->mult = 1;
fixed->div = 6;
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate) {
kfree(fixed);
return ERR_PTR(-ENOMEM);
@@ -213,7 +213,7 @@ static struct clk * __init cpg_adsp_clk_register(const char *name,
struct clk_gate *gate;
struct clk *clk;
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
return ERR_PTR(-ENOMEM);
@@ -222,7 +222,7 @@ static struct clk * __init cpg_adsp_clk_register(const char *name,
div->table = cpg_adsp_div_table;
div->lock = &cpg_lock;
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate) {
kfree(div);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/renesas/rcar-gen3-cpg.c b/drivers/clk/renesas/rcar-gen3-cpg.c
index b954278ddd9d..605854200b04 100644
--- a/drivers/clk/renesas/rcar-gen3-cpg.c
+++ b/drivers/clk/renesas/rcar-gen3-cpg.c
@@ -123,7 +123,7 @@ static struct clk * __init cpg_pll_clk_register(const char *name,
struct clk_init_data init = {};
struct clk *clk;
- pll_clk = kzalloc(sizeof(*pll_clk), GFP_KERNEL);
+ pll_clk = kzalloc_obj(*pll_clk, GFP_KERNEL);
if (!pll_clk)
return ERR_PTR(-ENOMEM);
@@ -271,7 +271,7 @@ static struct clk * __init __cpg_z_clk_register(const char *name,
struct cpg_z_clk *zclk;
struct clk *clk;
- zclk = kzalloc(sizeof(*zclk), GFP_KERNEL);
+ zclk = kzalloc_obj(*zclk, GFP_KERNEL);
if (!zclk)
return ERR_PTR(-ENOMEM);
@@ -410,7 +410,7 @@ struct clk * __init rcar_gen3_cpg_clk_register(struct device *dev,
if (cpg_quirks & RCKCR_CKSEL) {
struct cpg_simple_notifier *csn;
- csn = kzalloc(sizeof(*csn), GFP_KERNEL);
+ csn = kzalloc_obj(*csn, GFP_KERNEL);
if (!csn)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/renesas/rcar-gen4-cpg.c b/drivers/clk/renesas/rcar-gen4-cpg.c
index ac2b5afec46d..7168939ddb65 100644
--- a/drivers/clk/renesas/rcar-gen4-cpg.c
+++ b/drivers/clk/renesas/rcar-gen4-cpg.c
@@ -234,7 +234,7 @@ static struct clk * __init cpg_pll_clk_register(const char *name,
struct cpg_pll_clk *pll_clk;
struct clk *clk;
- pll_clk = kzalloc(sizeof(*pll_clk), GFP_KERNEL);
+ pll_clk = kzalloc_obj(*pll_clk, GFP_KERNEL);
if (!pll_clk)
return ERR_PTR(-ENOMEM);
@@ -374,7 +374,7 @@ static struct clk * __init cpg_z_clk_register(const char *name,
struct cpg_z_clk *zclk;
struct clk *clk;
- zclk = kzalloc(sizeof(*zclk), GFP_KERNEL);
+ zclk = kzalloc_obj(*zclk, GFP_KERNEL);
if (!zclk)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/renesas/renesas-cpg-mssr.c b/drivers/clk/renesas/renesas-cpg-mssr.c
index 4824607d56c0..48105ee90c83 100644
--- a/drivers/clk/renesas/renesas-cpg-mssr.c
+++ b/drivers/clk/renesas/renesas-cpg-mssr.c
@@ -512,7 +512,7 @@ static void __init cpg_mssr_register_mod_clk(const struct mssr_mod_clk *mod,
goto fail;
}
- clock = kzalloc(sizeof(*clock), GFP_KERNEL);
+ clock = kzalloc_obj(*clock, GFP_KERNEL);
if (!clock) {
clk = ERR_PTR(-ENOMEM);
goto fail;
@@ -1258,7 +1258,7 @@ static int __init cpg_mssr_common_init(struct device *dev,
}
nclks = info->num_total_core_clks + info->num_hw_mod_clks;
- priv = kzalloc(struct_size(priv, clks, nclks), GFP_KERNEL);
+ priv = kzalloc_flex(*priv, clks, nclks, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/clk/rockchip/clk-cpu.c b/drivers/clk/rockchip/clk-cpu.c
index 6e91a3041a03..456b23e6be42 100644
--- a/drivers/clk/rockchip/clk-cpu.c
+++ b/drivers/clk/rockchip/clk-cpu.c
@@ -313,7 +313,7 @@ struct clk *rockchip_clk_register_cpuclk(const char *name,
return ERR_PTR(-EINVAL);
}
- cpuclk = kzalloc(sizeof(*cpuclk), GFP_KERNEL);
+ cpuclk = kzalloc_obj(*cpuclk, GFP_KERNEL);
if (!cpuclk)
return ERR_PTR(-ENOMEM);
@@ -479,7 +479,7 @@ struct clk *rockchip_clk_register_cpuclk_multi_pll(const char *name,
int ret;
if (num_parents > 1) {
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return ERR_PTR(-ENOMEM);
@@ -493,7 +493,7 @@ struct clk *rockchip_clk_register_cpuclk_multi_pll(const char *name,
}
if (div_width > 0) {
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div) {
ret = -ENOMEM;
goto free_mux;
@@ -521,7 +521,7 @@ struct clk *rockchip_clk_register_cpuclk_multi_pll(const char *name,
goto free_div;
}
- cpuclk = kzalloc(sizeof(*cpuclk), GFP_KERNEL);
+ cpuclk = kzalloc_obj(*cpuclk, GFP_KERNEL);
if (!cpuclk) {
ret = -ENOMEM;
goto unregister_clk;
diff --git a/drivers/clk/rockchip/clk-ddr.c b/drivers/clk/rockchip/clk-ddr.c
index 8866a65982a0..96985682b98c 100644
--- a/drivers/clk/rockchip/clk-ddr.c
+++ b/drivers/clk/rockchip/clk-ddr.c
@@ -100,7 +100,7 @@ struct clk *rockchip_clk_register_ddrclk(const char *name, int flags,
struct clk_init_data init;
struct clk *clk;
- ddrclk = kzalloc(sizeof(*ddrclk), GFP_KERNEL);
+ ddrclk = kzalloc_obj(*ddrclk, GFP_KERNEL);
if (!ddrclk)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/rockchip/clk-gate-grf.c b/drivers/clk/rockchip/clk-gate-grf.c
index 8122f471f391..b3df39f9b317 100644
--- a/drivers/clk/rockchip/clk-gate-grf.c
+++ b/drivers/clk/rockchip/clk-gate-grf.c
@@ -81,7 +81,7 @@ struct clk *rockchip_clk_register_gate_grf(const char *name,
return ERR_PTR(-EOPNOTSUPP);
}
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/rockchip/clk-half-divider.c b/drivers/clk/rockchip/clk-half-divider.c
index fbc018e8afa4..ac77911fa058 100644
--- a/drivers/clk/rockchip/clk-half-divider.c
+++ b/drivers/clk/rockchip/clk-half-divider.c
@@ -176,7 +176,7 @@ struct clk *rockchip_clk_register_halfdiv(const char *name,
*gate_ops = NULL;
if (num_parents > 1) {
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return ERR_PTR(-ENOMEM);
@@ -190,7 +190,7 @@ struct clk *rockchip_clk_register_halfdiv(const char *name,
}
if (gate_offset >= 0) {
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
goto err_gate;
@@ -202,7 +202,7 @@ struct clk *rockchip_clk_register_halfdiv(const char *name,
}
if (div_width > 0) {
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
goto err_div;
diff --git a/drivers/clk/rockchip/clk-inverter.c b/drivers/clk/rockchip/clk-inverter.c
index 5dfbdce18b48..53c17047077c 100644
--- a/drivers/clk/rockchip/clk-inverter.c
+++ b/drivers/clk/rockchip/clk-inverter.c
@@ -79,7 +79,7 @@ struct clk *rockchip_clk_register_inverter(const char *name,
struct rockchip_inv_clock *inv_clock;
struct clk *clk;
- inv_clock = kmalloc(sizeof(*inv_clock), GFP_KERNEL);
+ inv_clock = kmalloc_obj(*inv_clock, GFP_KERNEL);
if (!inv_clock)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/rockchip/clk-mmc-phase.c b/drivers/clk/rockchip/clk-mmc-phase.c
index 8b1292c56863..c8bb8a217eaa 100644
--- a/drivers/clk/rockchip/clk-mmc-phase.c
+++ b/drivers/clk/rockchip/clk-mmc-phase.c
@@ -210,7 +210,7 @@ struct clk *rockchip_clk_register_mmc(const char *name,
struct clk *clk;
int ret;
- mmc_clock = kmalloc(sizeof(*mmc_clock), GFP_KERNEL);
+ mmc_clock = kmalloc_obj(*mmc_clock, GFP_KERNEL);
if (!mmc_clock)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/rockchip/clk-muxgrf.c b/drivers/clk/rockchip/clk-muxgrf.c
index 4a335a5f4633..7545df0adabe 100644
--- a/drivers/clk/rockchip/clk-muxgrf.c
+++ b/drivers/clk/rockchip/clk-muxgrf.c
@@ -67,7 +67,7 @@ struct clk *rockchip_clk_register_muxgrf(const char *name,
return ERR_PTR(-ENOTSUPP);
}
- muxgrf_clock = kmalloc(sizeof(*muxgrf_clock), GFP_KERNEL);
+ muxgrf_clock = kmalloc_obj(*muxgrf_clock, GFP_KERNEL);
if (!muxgrf_clock)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/rockchip/clk-pll.c b/drivers/clk/rockchip/clk-pll.c
index 86dba3826a77..865151d88b9f 100644
--- a/drivers/clk/rockchip/clk-pll.c
+++ b/drivers/clk/rockchip/clk-pll.c
@@ -1076,7 +1076,7 @@ struct clk *rockchip_clk_register_pll(struct rockchip_clk_provider *ctx,
/* name the actual pll */
snprintf(pll_name, sizeof(pll_name), "pll_%s", name);
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/rockchip/clk-rk3576.c b/drivers/clk/rockchip/clk-rk3576.c
index 9bc0ef51ef68..59285a784cd0 100644
--- a/drivers/clk/rockchip/clk-rk3576.c
+++ b/drivers/clk/rockchip/clk-rk3576.c
@@ -1769,7 +1769,7 @@ static void __init rk3576_clk_init(struct device_node *np)
goto err_unmap;
}
- pmu0_grf_e = kzalloc(sizeof(*pmu0_grf_e), GFP_KERNEL);
+ pmu0_grf_e = kzalloc_obj(*pmu0_grf_e, GFP_KERNEL);
if (!pmu0_grf_e)
goto err_unmap;
@@ -1777,7 +1777,7 @@ static void __init rk3576_clk_init(struct device_node *np)
pmu0_grf_e->type = grf_type_pmu0;
hash_add(ctx->aux_grf_table, &pmu0_grf_e->node, grf_type_pmu0);
- ioc_grf_e = kzalloc(sizeof(*ioc_grf_e), GFP_KERNEL);
+ ioc_grf_e = kzalloc_obj(*ioc_grf_e, GFP_KERNEL);
if (!ioc_grf_e)
goto err_free_pmu0;
diff --git a/drivers/clk/rockchip/clk.c b/drivers/clk/rockchip/clk.c
index 9ac9d13e87de..ec9517d7c2b7 100644
--- a/drivers/clk/rockchip/clk.c
+++ b/drivers/clk/rockchip/clk.c
@@ -55,7 +55,7 @@ static struct clk *rockchip_clk_register_branch(const char *name,
int ret;
if (num_parents > 1) {
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return ERR_PTR(-ENOMEM);
@@ -70,7 +70,7 @@ static struct clk *rockchip_clk_register_branch(const char *name,
}
if (gate_offset >= 0) {
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate) {
ret = -ENOMEM;
goto err_gate;
@@ -84,7 +84,7 @@ static struct clk *rockchip_clk_register_branch(const char *name,
}
if (div_width > 0) {
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div) {
ret = -ENOMEM;
goto err_div;
@@ -221,7 +221,7 @@ static struct clk *rockchip_clk_register_frac_branch(
return ERR_PTR(-EINVAL);
}
- frac = kzalloc(sizeof(*frac), GFP_KERNEL);
+ frac = kzalloc_obj(*frac, GFP_KERNEL);
if (!frac)
return ERR_PTR(-ENOMEM);
@@ -323,7 +323,7 @@ static struct clk *rockchip_clk_register_factor_branch(const char *name,
div);
}
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
return ERR_PTR(-ENOMEM);
@@ -332,7 +332,7 @@ static struct clk *rockchip_clk_register_factor_branch(const char *name,
gate->bit_idx = gate_shift;
gate->lock = lock;
- fix = kzalloc(sizeof(*fix), GFP_KERNEL);
+ fix = kzalloc_obj(*fix, GFP_KERNEL);
if (!fix) {
kfree(gate);
return ERR_PTR(-ENOMEM);
@@ -365,11 +365,11 @@ static struct rockchip_clk_provider *rockchip_clk_init_base(
default_clk_val = ERR_PTR(has_late_clocks ? -EPROBE_DEFER : -ENOENT);
- ctx = kzalloc(sizeof(struct rockchip_clk_provider), GFP_KERNEL);
+ ctx = kzalloc_obj(struct rockchip_clk_provider, GFP_KERNEL);
if (!ctx)
return ERR_PTR(-ENOMEM);
- clk_table = kcalloc(nr_clks, sizeof(struct clk *), GFP_KERNEL);
+ clk_table = kzalloc_objs(struct clk *, nr_clks, GFP_KERNEL);
if (!clk_table)
goto err_free;
diff --git a/drivers/clk/rockchip/softrst.c b/drivers/clk/rockchip/softrst.c
index fd56aaefe6d1..01caa91e7ce3 100644
--- a/drivers/clk/rockchip/softrst.c
+++ b/drivers/clk/rockchip/softrst.c
@@ -96,7 +96,7 @@ void rockchip_register_softrst_lut(struct device_node *np,
struct rockchip_softrst *softrst;
int ret;
- softrst = kzalloc(sizeof(*softrst), GFP_KERNEL);
+ softrst = kzalloc_obj(*softrst, GFP_KERNEL);
if (!softrst)
return;
diff --git a/drivers/clk/samsung/clk-cpu.c b/drivers/clk/samsung/clk-cpu.c
index 300f8d5d3c48..d8729dceabb0 100644
--- a/drivers/clk/samsung/clk-cpu.c
+++ b/drivers/clk/samsung/clk-cpu.c
@@ -660,7 +660,7 @@ static int __init exynos_register_cpu_clock(struct samsung_clk_provider *ctx,
return -EINVAL;
}
- cpuclk = kzalloc(sizeof(*cpuclk), GFP_KERNEL);
+ cpuclk = kzalloc_obj(*cpuclk, GFP_KERNEL);
if (!cpuclk)
return -ENOMEM;
diff --git a/drivers/clk/samsung/clk-pll.c b/drivers/clk/samsung/clk-pll.c
index 0a8fc9649ae2..1bd8def3973e 100644
--- a/drivers/clk/samsung/clk-pll.c
+++ b/drivers/clk/samsung/clk-pll.c
@@ -1435,7 +1435,7 @@ static void __init _samsung_clk_register_pll(struct samsung_clk_provider *ctx,
struct clk_init_data init;
int ret, len;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll) {
pr_err("%s: could not allocate pll clk %s\n",
__func__, pll_clk->name);
diff --git a/drivers/clk/samsung/clk.c b/drivers/clk/samsung/clk.c
index 9f68f079fd55..39580d82077b 100644
--- a/drivers/clk/samsung/clk.c
+++ b/drivers/clk/samsung/clk.c
@@ -55,7 +55,7 @@ struct samsung_clk_reg_dump *samsung_clk_alloc_reg_dump(
struct samsung_clk_reg_dump *rd;
unsigned int i;
- rd = kcalloc(nr_rdump, sizeof(*rd), GFP_KERNEL);
+ rd = kzalloc_objs(*rd, nr_rdump, GFP_KERNEL);
if (!rd)
return NULL;
@@ -82,7 +82,7 @@ struct samsung_clk_provider * __init samsung_clk_init(struct device *dev,
struct samsung_clk_provider *ctx;
int i;
- ctx = kzalloc(struct_size(ctx, clk_data.hws, nr_clks), GFP_KERNEL);
+ ctx = kzalloc_flex(*ctx, clk_data.hws, nr_clks, GFP_KERNEL);
if (!ctx)
panic("could not allocate clock provider context.\n");
@@ -301,7 +301,7 @@ struct clk_hw *samsung_register_auto_gate(struct device *dev,
int ret = -EINVAL;
/* allocate the gate */
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
return ERR_PTR(-ENOMEM);
@@ -431,8 +431,7 @@ void samsung_clk_extended_sleep_init(void __iomem *reg_base,
{
struct samsung_clock_reg_cache *reg_cache;
- reg_cache = kzalloc(sizeof(struct samsung_clock_reg_cache),
- GFP_KERNEL);
+ reg_cache = kzalloc_obj(struct samsung_clock_reg_cache, GFP_KERNEL);
if (!reg_cache)
panic("could not allocate register reg_cache.\n");
reg_cache->rdump = samsung_clk_alloc_reg_dump(rdump, nr_rdump);
diff --git a/drivers/clk/socfpga/clk-gate-a10.c b/drivers/clk/socfpga/clk-gate-a10.c
index 06f129c160bc..c6505046b63b 100644
--- a/drivers/clk/socfpga/clk-gate-a10.c
+++ b/drivers/clk/socfpga/clk-gate-a10.c
@@ -52,7 +52,7 @@ static void __init __socfpga_gate_init(struct device_node *node,
struct clk_init_data init;
int rc;
- socfpga_clk = kzalloc(sizeof(*socfpga_clk), GFP_KERNEL);
+ socfpga_clk = kzalloc_obj(*socfpga_clk, GFP_KERNEL);
if (WARN_ON(!socfpga_clk))
return;
diff --git a/drivers/clk/socfpga/clk-gate-s10.c b/drivers/clk/socfpga/clk-gate-s10.c
index dce3ef137bf3..913c31d94319 100644
--- a/drivers/clk/socfpga/clk-gate-s10.c
+++ b/drivers/clk/socfpga/clk-gate-s10.c
@@ -132,7 +132,7 @@ struct clk_hw *s10_register_gate(const struct stratix10_gate_clock *clks, void _
const char *parent_name = clks->parent_name;
int ret;
- socfpga_clk = kzalloc(sizeof(*socfpga_clk), GFP_KERNEL);
+ socfpga_clk = kzalloc_obj(*socfpga_clk, GFP_KERNEL);
if (!socfpga_clk)
return NULL;
@@ -190,7 +190,7 @@ struct clk_hw *agilex_register_gate(const struct stratix10_gate_clock *clks, voi
const char *parent_name = clks->parent_name;
int ret;
- socfpga_clk = kzalloc(sizeof(*socfpga_clk), GFP_KERNEL);
+ socfpga_clk = kzalloc_obj(*socfpga_clk, GFP_KERNEL);
if (!socfpga_clk)
return NULL;
@@ -247,7 +247,7 @@ struct clk_hw *agilex5_register_gate(const struct agilex5_gate_clock *clks, void
struct clk_init_data init;
int ret;
- socfpga_clk = kzalloc(sizeof(*socfpga_clk), GFP_KERNEL);
+ socfpga_clk = kzalloc_obj(*socfpga_clk, GFP_KERNEL);
if (!socfpga_clk)
return NULL;
diff --git a/drivers/clk/socfpga/clk-gate.c b/drivers/clk/socfpga/clk-gate.c
index 0a5a95e0267f..52dd6e2f19f9 100644
--- a/drivers/clk/socfpga/clk-gate.c
+++ b/drivers/clk/socfpga/clk-gate.c
@@ -147,7 +147,7 @@ void __init socfpga_gate_init(struct device_node *node)
struct clk_ops *ops;
int rc;
- socfpga_clk = kzalloc(sizeof(*socfpga_clk), GFP_KERNEL);
+ socfpga_clk = kzalloc_obj(*socfpga_clk, GFP_KERNEL);
if (WARN_ON(!socfpga_clk))
return;
diff --git a/drivers/clk/socfpga/clk-periph-a10.c b/drivers/clk/socfpga/clk-periph-a10.c
index 64cc70b970b7..7f61ce1793b2 100644
--- a/drivers/clk/socfpga/clk-periph-a10.c
+++ b/drivers/clk/socfpga/clk-periph-a10.c
@@ -72,7 +72,7 @@ static void __init __socfpga_periph_init(struct device_node *node,
of_property_read_u32(node, "reg", ®);
- periph_clk = kzalloc(sizeof(*periph_clk), GFP_KERNEL);
+ periph_clk = kzalloc_obj(*periph_clk, GFP_KERNEL);
if (WARN_ON(!periph_clk))
return;
diff --git a/drivers/clk/socfpga/clk-periph-s10.c b/drivers/clk/socfpga/clk-periph-s10.c
index f12ca43ffe7c..f43ffd4dfa82 100644
--- a/drivers/clk/socfpga/clk-periph-s10.c
+++ b/drivers/clk/socfpga/clk-periph-s10.c
@@ -108,7 +108,7 @@ struct clk_hw *s10_register_periph(const struct stratix10_perip_c_clock *clks,
const char *parent_name = clks->parent_name;
int ret;
- periph_clk = kzalloc(sizeof(*periph_clk), GFP_KERNEL);
+ periph_clk = kzalloc_obj(*periph_clk, GFP_KERNEL);
if (WARN_ON(!periph_clk))
return NULL;
@@ -144,7 +144,7 @@ struct clk_hw *n5x_register_periph(const struct n5x_perip_c_clock *clks,
const char *parent_name = clks->parent_name;
int ret;
- periph_clk = kzalloc(sizeof(*periph_clk), GFP_KERNEL);
+ periph_clk = kzalloc_obj(*periph_clk, GFP_KERNEL);
if (WARN_ON(!periph_clk))
return NULL;
@@ -179,7 +179,7 @@ struct clk_hw *s10_register_cnt_periph(const struct stratix10_perip_cnt_clock *c
const char *parent_name = clks->parent_name;
int ret;
- periph_clk = kzalloc(sizeof(*periph_clk), GFP_KERNEL);
+ periph_clk = kzalloc_obj(*periph_clk, GFP_KERNEL);
if (WARN_ON(!periph_clk))
return NULL;
@@ -224,7 +224,7 @@ struct clk_hw *agilex5_register_cnt_periph(const struct agilex5_perip_cnt_clock
const char *name = clks->name;
int ret;
- periph_clk = kzalloc(sizeof(*periph_clk), GFP_KERNEL);
+ periph_clk = kzalloc_obj(*periph_clk, GFP_KERNEL);
if (WARN_ON(!periph_clk))
return NULL;
diff --git a/drivers/clk/socfpga/clk-periph.c b/drivers/clk/socfpga/clk-periph.c
index 6a4075147b9c..2719af1502c1 100644
--- a/drivers/clk/socfpga/clk-periph.c
+++ b/drivers/clk/socfpga/clk-periph.c
@@ -62,7 +62,7 @@ static void __init __socfpga_periph_init(struct device_node *node,
of_property_read_u32(node, "reg", ®);
- periph_clk = kzalloc(sizeof(*periph_clk), GFP_KERNEL);
+ periph_clk = kzalloc_obj(*periph_clk, GFP_KERNEL);
if (WARN_ON(!periph_clk))
return;
diff --git a/drivers/clk/socfpga/clk-pll-a10.c b/drivers/clk/socfpga/clk-pll-a10.c
index 62eed964c3d0..633c30b70d25 100644
--- a/drivers/clk/socfpga/clk-pll-a10.c
+++ b/drivers/clk/socfpga/clk-pll-a10.c
@@ -78,7 +78,7 @@ static void __init __socfpga_pll_init(struct device_node *node,
of_property_read_u32(node, "reg", ®);
- pll_clk = kzalloc(sizeof(*pll_clk), GFP_KERNEL);
+ pll_clk = kzalloc_obj(*pll_clk, GFP_KERNEL);
if (WARN_ON(!pll_clk))
return;
diff --git a/drivers/clk/socfpga/clk-pll-s10.c b/drivers/clk/socfpga/clk-pll-s10.c
index 1be92827cd93..3c8302a7ec5b 100644
--- a/drivers/clk/socfpga/clk-pll-s10.c
+++ b/drivers/clk/socfpga/clk-pll-s10.c
@@ -196,7 +196,7 @@ struct clk_hw *s10_register_pll(const struct stratix10_pll_clock *clks,
const char *name = clks->name;
int ret;
- pll_clk = kzalloc(sizeof(*pll_clk), GFP_KERNEL);
+ pll_clk = kzalloc_obj(*pll_clk, GFP_KERNEL);
if (WARN_ON(!pll_clk))
return NULL;
@@ -236,7 +236,7 @@ struct clk_hw *agilex_register_pll(const struct stratix10_pll_clock *clks,
const char *name = clks->name;
int ret;
- pll_clk = kzalloc(sizeof(*pll_clk), GFP_KERNEL);
+ pll_clk = kzalloc_obj(*pll_clk, GFP_KERNEL);
if (WARN_ON(!pll_clk))
return NULL;
@@ -275,7 +275,7 @@ struct clk_hw *n5x_register_pll(const struct stratix10_pll_clock *clks,
const char *name = clks->name;
int ret;
- pll_clk = kzalloc(sizeof(*pll_clk), GFP_KERNEL);
+ pll_clk = kzalloc_obj(*pll_clk, GFP_KERNEL);
if (WARN_ON(!pll_clk))
return NULL;
@@ -314,7 +314,7 @@ struct clk_hw *agilex5_register_pll(const struct agilex5_pll_clock *clks,
const char *name = clks->name;
int ret;
- pll_clk = kzalloc(sizeof(*pll_clk), GFP_KERNEL);
+ pll_clk = kzalloc_obj(*pll_clk, GFP_KERNEL);
if (WARN_ON(!pll_clk))
return NULL;
diff --git a/drivers/clk/socfpga/clk-pll.c b/drivers/clk/socfpga/clk-pll.c
index 03a96139a576..877c7f1a4216 100644
--- a/drivers/clk/socfpga/clk-pll.c
+++ b/drivers/clk/socfpga/clk-pll.c
@@ -84,7 +84,7 @@ static void __init __socfpga_pll_init(struct device_node *node,
of_property_read_u32(node, "reg", ®);
- pll_clk = kzalloc(sizeof(*pll_clk), GFP_KERNEL);
+ pll_clk = kzalloc_obj(*pll_clk, GFP_KERNEL);
if (WARN_ON(!pll_clk))
return;
diff --git a/drivers/clk/spacemit/ccu_common.c b/drivers/clk/spacemit/ccu_common.c
index 5f05b17f8452..cbe11eb49f0b 100644
--- a/drivers/clk/spacemit/ccu_common.c
+++ b/drivers/clk/spacemit/ccu_common.c
@@ -91,7 +91,7 @@ static int spacemit_ccu_reset_register(struct device *dev,
if (!reset_name)
return 0;
- cadev = kzalloc(sizeof(*cadev), GFP_KERNEL);
+ cadev = kzalloc_obj(*cadev, GFP_KERNEL);
if (!cadev)
return -ENOMEM;
diff --git a/drivers/clk/spear/clk-aux-synth.c b/drivers/clk/spear/clk-aux-synth.c
index d0d063147af8..6358c9d87f4d 100644
--- a/drivers/clk/spear/clk-aux-synth.c
+++ b/drivers/clk/spear/clk-aux-synth.c
@@ -147,7 +147,7 @@ struct clk *clk_register_aux(const char *aux_name, const char *gate_name,
return ERR_PTR(-EINVAL);
}
- aux = kzalloc(sizeof(*aux), GFP_KERNEL);
+ aux = kzalloc_obj(*aux, GFP_KERNEL);
if (!aux)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/spear/clk-frac-synth.c b/drivers/clk/spear/clk-frac-synth.c
index 150f051d28e0..37457eb1df1d 100644
--- a/drivers/clk/spear/clk-frac-synth.c
+++ b/drivers/clk/spear/clk-frac-synth.c
@@ -134,7 +134,7 @@ struct clk *clk_register_frac(const char *name, const char *parent_name,
return ERR_PTR(-EINVAL);
}
- frac = kzalloc(sizeof(*frac), GFP_KERNEL);
+ frac = kzalloc_obj(*frac, GFP_KERNEL);
if (!frac)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/spear/clk-gpt-synth.c b/drivers/clk/spear/clk-gpt-synth.c
index cf9659dc9073..dfc8c01d8a41 100644
--- a/drivers/clk/spear/clk-gpt-synth.c
+++ b/drivers/clk/spear/clk-gpt-synth.c
@@ -123,7 +123,7 @@ struct clk *clk_register_gpt(const char *name, const char *parent_name, unsigned
return ERR_PTR(-EINVAL);
}
- gpt = kzalloc(sizeof(*gpt), GFP_KERNEL);
+ gpt = kzalloc_obj(*gpt, GFP_KERNEL);
if (!gpt)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/spear/clk-vco-pll.c b/drivers/clk/spear/clk-vco-pll.c
index 723a6eb67754..8b1fab349a1c 100644
--- a/drivers/clk/spear/clk-vco-pll.c
+++ b/drivers/clk/spear/clk-vco-pll.c
@@ -293,11 +293,11 @@ struct clk *clk_register_vco_pll(const char *vco_name, const char *pll_name,
return ERR_PTR(-EINVAL);
}
- vco = kzalloc(sizeof(*vco), GFP_KERNEL);
+ vco = kzalloc_obj(*vco, GFP_KERNEL);
if (!vco)
return ERR_PTR(-ENOMEM);
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
goto free_vco;
diff --git a/drivers/clk/sprd/pll.c b/drivers/clk/sprd/pll.c
index bc6610d5fcb7..3c70a32e993f 100644
--- a/drivers/clk/sprd/pll.c
+++ b/drivers/clk/sprd/pll.c
@@ -155,7 +155,7 @@ static int _sprd_pll_set_rate(const struct sprd_pll *pll,
unsigned long kint, nint;
u64 tmp, refin, fvco = rate;
- cfg = kcalloc(regs_num, sizeof(*cfg), GFP_KERNEL);
+ cfg = kzalloc_objs(*cfg, regs_num, GFP_KERNEL);
if (!cfg)
return -ENOMEM;
diff --git a/drivers/clk/st/clk-flexgen.c b/drivers/clk/st/clk-flexgen.c
index e8e7626c76db..ea14dec68fef 100644
--- a/drivers/clk/st/clk-flexgen.c
+++ b/drivers/clk/st/clk-flexgen.c
@@ -213,7 +213,7 @@ static struct clk *clk_register_flexgen(const char *name,
u32 xbar_shift;
void __iomem *xbar_reg, *fdiv_reg;
- fgxbar = kzalloc(sizeof(struct flexgen), GFP_KERNEL);
+ fgxbar = kzalloc_obj(struct flexgen, GFP_KERNEL);
if (!fgxbar)
return ERR_PTR(-ENOMEM);
@@ -596,7 +596,7 @@ static void __init st_of_flexgen_setup(struct device_node *np)
clk_mode = data->mode;
}
- clk_data = kzalloc(sizeof(*clk_data), GFP_KERNEL);
+ clk_data = kzalloc_obj(*clk_data, GFP_KERNEL);
if (!clk_data)
goto err;
@@ -612,12 +612,12 @@ static void __init st_of_flexgen_setup(struct device_node *np)
} else
clk_data->clk_num = data->outputs_nb;
- clk_data->clks = kcalloc(clk_data->clk_num, sizeof(struct clk *),
- GFP_KERNEL);
+ clk_data->clks = kzalloc_objs(struct clk *, clk_data->clk_num,
+ GFP_KERNEL);
if (!clk_data->clks)
goto err;
- rlock = kzalloc(sizeof(spinlock_t), GFP_KERNEL);
+ rlock = kzalloc_obj(spinlock_t, GFP_KERNEL);
if (!rlock)
goto err;
diff --git a/drivers/clk/st/clkgen-fsyn.c b/drivers/clk/st/clkgen-fsyn.c
index e06e7e5cc1a5..74dd344eba4f 100644
--- a/drivers/clk/st/clkgen-fsyn.c
+++ b/drivers/clk/st/clkgen-fsyn.c
@@ -454,7 +454,7 @@ static struct clk * __init st_clk_register_quadfs_pll(
if (WARN_ON(!name || !parent_name))
return ERR_PTR(-EINVAL);
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
@@ -894,7 +894,7 @@ static struct clk * __init st_clk_register_quadfs_fsynth(
if (WARN_ON(!name || !parent_name))
return ERR_PTR(-EINVAL);
- fs = kzalloc(sizeof(*fs), GFP_KERNEL);
+ fs = kzalloc_obj(*fs, GFP_KERNEL);
if (!fs)
return ERR_PTR(-ENOMEM);
@@ -926,13 +926,12 @@ static void __init st_of_create_quadfs_fsynths(
struct clk_onecell_data *clk_data;
int fschan;
- clk_data = kzalloc(sizeof(*clk_data), GFP_KERNEL);
+ clk_data = kzalloc_obj(*clk_data, GFP_KERNEL);
if (!clk_data)
return;
clk_data->clk_num = QUADFS_MAX_CHAN;
- clk_data->clks = kcalloc(QUADFS_MAX_CHAN, sizeof(struct clk *),
- GFP_KERNEL);
+ clk_data->clks = kzalloc_objs(struct clk *, QUADFS_MAX_CHAN, GFP_KERNEL);
if (!clk_data->clks) {
kfree(clk_data);
@@ -1013,7 +1012,7 @@ static void __init st_of_quadfs_setup(struct device_node *np,
if (!pll_name)
return;
- lock = kzalloc(sizeof(*lock), GFP_KERNEL);
+ lock = kzalloc_obj(*lock, GFP_KERNEL);
if (!lock)
goto err_exit;
diff --git a/drivers/clk/st/clkgen-pll.c b/drivers/clk/st/clkgen-pll.c
index c258ff87a171..9a6b0df5aabc 100644
--- a/drivers/clk/st/clkgen-pll.c
+++ b/drivers/clk/st/clkgen-pll.c
@@ -656,7 +656,7 @@ static struct clk * __init clkgen_pll_register(const char *parent_name,
struct clk *clk;
struct clk_init_data init;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
@@ -716,7 +716,7 @@ static struct clk * __init clkgen_odf_register(const char *parent_name,
flags = pll_flags | CLK_GET_RATE_NOCACHE | CLK_SET_RATE_PARENT;
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
return ERR_PTR(-ENOMEM);
@@ -725,7 +725,7 @@ static struct clk * __init clkgen_odf_register(const char *parent_name,
gate->bit_idx = pll_data->odf_gate[odf].shift;
gate->lock = odf_lock;
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div) {
kfree(gate);
return ERR_PTR(-ENOMEM);
@@ -783,13 +783,13 @@ static void __init clkgen_c32_pll_setup(struct device_node *np,
num_odfs = datac->data->num_odfs;
- clk_data = kzalloc(sizeof(*clk_data), GFP_KERNEL);
+ clk_data = kzalloc_obj(*clk_data, GFP_KERNEL);
if (!clk_data)
return;
clk_data->clk_num = num_odfs;
- clk_data->clks = kcalloc(clk_data->clk_num, sizeof(struct clk *),
- GFP_KERNEL);
+ clk_data->clks = kzalloc_objs(struct clk *, clk_data->clk_num,
+ GFP_KERNEL);
if (!clk_data->clks)
goto err;
diff --git a/drivers/clk/starfive/clk-starfive-jh7110-sys.c b/drivers/clk/starfive/clk-starfive-jh7110-sys.c
index 52833d4241c5..d8a1e45fc6bd 100644
--- a/drivers/clk/starfive/clk-starfive-jh7110-sys.c
+++ b/drivers/clk/starfive/clk-starfive-jh7110-sys.c
@@ -347,7 +347,7 @@ int jh7110_reset_controller_register(struct jh71x0_clk_priv *priv,
struct auxiliary_device *adev;
int ret;
- rdev = kzalloc(sizeof(*rdev), GFP_KERNEL);
+ rdev = kzalloc_obj(*rdev, GFP_KERNEL);
if (!rdev)
return -ENOMEM;
diff --git a/drivers/clk/stm32/reset-stm32.c b/drivers/clk/stm32/reset-stm32.c
index 5a8f525842ce..6c4a3a1bfa38 100644
--- a/drivers/clk/stm32/reset-stm32.c
+++ b/drivers/clk/stm32/reset-stm32.c
@@ -130,7 +130,7 @@ int stm32_rcc_reset_init(struct device *dev, struct clk_stm32_reset_data *data,
{
struct stm32_reset_data *reset_data;
- reset_data = kzalloc(sizeof(*reset_data), GFP_KERNEL);
+ reset_data = kzalloc_obj(*reset_data, GFP_KERNEL);
if (!reset_data)
return -ENOMEM;
diff --git a/drivers/clk/sunxi-ng/ccu_common.c b/drivers/clk/sunxi-ng/ccu_common.c
index c7e00f0c29a5..eff61cb0d8a5 100644
--- a/drivers/clk/sunxi-ng/ccu_common.c
+++ b/drivers/clk/sunxi-ng/ccu_common.c
@@ -242,7 +242,7 @@ void of_sunxi_ccu_probe(struct device_node *node, void __iomem *reg,
struct sunxi_ccu *ccu;
int ret;
- ccu = kzalloc(sizeof(*ccu), GFP_KERNEL);
+ ccu = kzalloc_obj(*ccu, GFP_KERNEL);
if (!ccu)
return;
diff --git a/drivers/clk/sunxi/clk-a10-hosc.c b/drivers/clk/sunxi/clk-a10-hosc.c
index f07e976839eb..3a0d899c395a 100644
--- a/drivers/clk/sunxi/clk-a10-hosc.c
+++ b/drivers/clk/sunxi/clk-a10-hosc.c
@@ -26,10 +26,10 @@ static void __init sun4i_osc_clk_setup(struct device_node *node)
return;
/* allocate fixed-rate and gate clock structs */
- fixed = kzalloc(sizeof(struct clk_fixed_rate), GFP_KERNEL);
+ fixed = kzalloc_obj(struct clk_fixed_rate, GFP_KERNEL);
if (!fixed)
return;
- gate = kzalloc(sizeof(struct clk_gate), GFP_KERNEL);
+ gate = kzalloc_obj(struct clk_gate, GFP_KERNEL);
if (!gate)
goto err_free_fixed;
diff --git a/drivers/clk/sunxi/clk-a10-mod1.c b/drivers/clk/sunxi/clk-a10-mod1.c
index 39ad56d753ba..45dfe0b2e8d1 100644
--- a/drivers/clk/sunxi/clk-a10-mod1.c
+++ b/drivers/clk/sunxi/clk-a10-mod1.c
@@ -32,11 +32,11 @@ static void __init sun4i_mod1_clk_setup(struct device_node *node)
if (IS_ERR(reg))
return;
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
goto err_unmap;
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
goto err_free_mux;
diff --git a/drivers/clk/sunxi/clk-a10-pll2.c b/drivers/clk/sunxi/clk-a10-pll2.c
index 2ea3b42320a6..046e23831fc2 100644
--- a/drivers/clk/sunxi/clk-a10-pll2.c
+++ b/drivers/clk/sunxi/clk-a10-pll2.c
@@ -50,11 +50,11 @@ static void __init sun4i_pll2_setup(struct device_node *node,
if (IS_ERR(reg))
return;
- clk_data = kzalloc(sizeof(*clk_data), GFP_KERNEL);
+ clk_data = kzalloc_obj(*clk_data, GFP_KERNEL);
if (!clk_data)
goto err_unmap;
- clks = kcalloc(SUN4I_PLL2_OUTPUTS, sizeof(struct clk *), GFP_KERNEL);
+ clks = kzalloc_objs(struct clk *, SUN4I_PLL2_OUTPUTS, GFP_KERNEL);
if (!clks)
goto err_free_data;
@@ -71,7 +71,7 @@ static void __init sun4i_pll2_setup(struct device_node *node,
}
/* Setup the gate part of the PLL2 */
- gate = kzalloc(sizeof(struct clk_gate), GFP_KERNEL);
+ gate = kzalloc_obj(struct clk_gate, GFP_KERNEL);
if (!gate)
goto err_unregister_prediv;
@@ -80,7 +80,7 @@ static void __init sun4i_pll2_setup(struct device_node *node,
gate->lock = &sun4i_a10_pll2_lock;
/* Setup the multiplier part of the PLL2 */
- mult = kzalloc(sizeof(struct clk_multiplier), GFP_KERNEL);
+ mult = kzalloc_obj(struct clk_multiplier, GFP_KERNEL);
if (!mult)
goto err_free_gate;
diff --git a/drivers/clk/sunxi/clk-a10-ve.c b/drivers/clk/sunxi/clk-a10-ve.c
index 65810937a13a..d353d0d1200a 100644
--- a/drivers/clk/sunxi/clk-a10-ve.c
+++ b/drivers/clk/sunxi/clk-a10-ve.c
@@ -97,11 +97,11 @@ static void __init sun4i_ve_clk_setup(struct device_node *node)
if (IS_ERR(reg))
return;
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
goto err_unmap;
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
goto err_free_div;
@@ -129,7 +129,7 @@ static void __init sun4i_ve_clk_setup(struct device_node *node)
if (err)
goto err_unregister_clk;
- reset_data = kzalloc(sizeof(*reset_data), GFP_KERNEL);
+ reset_data = kzalloc_obj(*reset_data, GFP_KERNEL);
if (!reset_data)
goto err_del_provider;
diff --git a/drivers/clk/sunxi/clk-a20-gmac.c b/drivers/clk/sunxi/clk-a20-gmac.c
index 43080c7d045b..3ef842034fa2 100644
--- a/drivers/clk/sunxi/clk-a20-gmac.c
+++ b/drivers/clk/sunxi/clk-a20-gmac.c
@@ -63,11 +63,11 @@ static void __init sun7i_a20_gmac_clk_setup(struct device_node *node)
return;
/* allocate mux and gate clock structs */
- mux = kzalloc(sizeof(struct clk_mux), GFP_KERNEL);
+ mux = kzalloc_obj(struct clk_mux, GFP_KERNEL);
if (!mux)
return;
- gate = kzalloc(sizeof(struct clk_gate), GFP_KERNEL);
+ gate = kzalloc_obj(struct clk_gate, GFP_KERNEL);
if (!gate)
goto free_mux;
diff --git a/drivers/clk/sunxi/clk-factors.c b/drivers/clk/sunxi/clk-factors.c
index 4d8f0422b876..0b4a25305e93 100644
--- a/drivers/clk/sunxi/clk-factors.c
+++ b/drivers/clk/sunxi/clk-factors.c
@@ -200,7 +200,7 @@ static struct clk *__sunxi_factors_register(struct device_node *node,
else
of_property_read_string(node, "clock-output-names", &clk_name);
- factors = kzalloc(sizeof(struct clk_factors), GFP_KERNEL);
+ factors = kzalloc_obj(struct clk_factors, GFP_KERNEL);
if (!factors)
goto err_factors;
@@ -213,7 +213,7 @@ static struct clk *__sunxi_factors_register(struct device_node *node,
/* Add a gate if this factor clock can be gated */
if (data->enable) {
- gate = kzalloc(sizeof(struct clk_gate), GFP_KERNEL);
+ gate = kzalloc_obj(struct clk_gate, GFP_KERNEL);
if (!gate)
goto err_gate;
@@ -228,7 +228,7 @@ static struct clk *__sunxi_factors_register(struct device_node *node,
/* Add a mux if this factor clock can be muxed */
if (data->mux) {
- mux = kzalloc(sizeof(struct clk_mux), GFP_KERNEL);
+ mux = kzalloc_obj(struct clk_mux, GFP_KERNEL);
if (!mux)
goto err_mux;
diff --git a/drivers/clk/sunxi/clk-mod0.c b/drivers/clk/sunxi/clk-mod0.c
index 51800289ada9..dcfaa8a936c4 100644
--- a/drivers/clk/sunxi/clk-mod0.c
+++ b/drivers/clk/sunxi/clk-mod0.c
@@ -300,11 +300,11 @@ static void __init sunxi_mmc_setup(struct device_node *node,
return;
}
- clk_data = kmalloc(sizeof(*clk_data), GFP_KERNEL);
+ clk_data = kmalloc_obj(*clk_data, GFP_KERNEL);
if (!clk_data)
return;
- clk_data->clks = kcalloc(3, sizeof(*clk_data->clks), GFP_KERNEL);
+ clk_data->clks = kzalloc_objs(*clk_data->clks, 3, GFP_KERNEL);
if (!clk_data->clks)
goto err_free_data;
@@ -323,7 +323,7 @@ static void __init sunxi_mmc_setup(struct device_node *node,
};
struct mmc_phase *phase;
- phase = kmalloc(sizeof(*phase), GFP_KERNEL);
+ phase = kmalloc_obj(*phase, GFP_KERNEL);
if (!phase)
continue;
diff --git a/drivers/clk/sunxi/clk-simple-gates.c b/drivers/clk/sunxi/clk-simple-gates.c
index 845efc1ec800..3852972a8600 100644
--- a/drivers/clk/sunxi/clk-simple-gates.c
+++ b/drivers/clk/sunxi/clk-simple-gates.c
@@ -34,14 +34,14 @@ static void __init sunxi_simple_gates_setup(struct device_node *node,
clk_parent = of_clk_get_parent_name(node, 0);
- clk_data = kmalloc(sizeof(struct clk_onecell_data), GFP_KERNEL);
+ clk_data = kmalloc_obj(struct clk_onecell_data, GFP_KERNEL);
if (!clk_data)
goto err_unmap;
number = of_property_count_u32_elems(node, "clock-indices");
of_property_read_u32_index(node, "clock-indices", number - 1, &number);
- clk_data->clks = kcalloc(number + 1, sizeof(struct clk *), GFP_KERNEL);
+ clk_data->clks = kzalloc_objs(struct clk *, number + 1, GFP_KERNEL);
if (!clk_data->clks)
goto err_free_data;
diff --git a/drivers/clk/sunxi/clk-sun4i-display.c b/drivers/clk/sunxi/clk-sun4i-display.c
index 35d1541bedd9..a4e00d516b68 100644
--- a/drivers/clk/sunxi/clk-sun4i-display.c
+++ b/drivers/clk/sunxi/clk-sun4i-display.c
@@ -126,7 +126,7 @@ static void __init sun4i_a10_display_init(struct device_node *node,
goto unmap;
}
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
goto unmap;
@@ -135,7 +135,7 @@ static void __init sun4i_a10_display_init(struct device_node *node,
mux->mask = (1 << data->width_mux) - 1;
mux->lock = &sun4i_a10_display_lock;
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
goto free_mux;
@@ -144,7 +144,7 @@ static void __init sun4i_a10_display_init(struct device_node *node,
gate->lock = &sun4i_a10_display_lock;
if (data->has_div) {
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
goto free_gate;
@@ -175,7 +175,7 @@ static void __init sun4i_a10_display_init(struct device_node *node,
if (!data->num_rst)
return;
- reset_data = kzalloc(sizeof(*reset_data), GFP_KERNEL);
+ reset_data = kzalloc_obj(*reset_data, GFP_KERNEL);
if (!reset_data)
goto free_of_clk;
diff --git a/drivers/clk/sunxi/clk-sun4i-pll3.c b/drivers/clk/sunxi/clk-sun4i-pll3.c
index 5328588fa2de..2977e71ea35a 100644
--- a/drivers/clk/sunxi/clk-sun4i-pll3.c
+++ b/drivers/clk/sunxi/clk-sun4i-pll3.c
@@ -37,7 +37,7 @@ static void __init sun4i_a10_pll3_setup(struct device_node *node)
return;
}
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
goto err_unmap;
@@ -45,7 +45,7 @@ static void __init sun4i_a10_pll3_setup(struct device_node *node)
gate->bit_idx = SUN4I_A10_PLL3_GATE_BIT;
gate->lock = &sun4i_a10_pll3_lock;
- mult = kzalloc(sizeof(*mult), GFP_KERNEL);
+ mult = kzalloc_obj(*mult, GFP_KERNEL);
if (!mult)
goto err_free_gate;
diff --git a/drivers/clk/sunxi/clk-sun4i-tcon-ch1.c b/drivers/clk/sunxi/clk-sun4i-tcon-ch1.c
index 277a240b65a1..6e4c9db335e6 100644
--- a/drivers/clk/sunxi/clk-sun4i-tcon-ch1.c
+++ b/drivers/clk/sunxi/clk-sun4i-tcon-ch1.c
@@ -246,7 +246,7 @@ static void __init tcon_ch1_setup(struct device_node *node)
goto err_unmap;
}
- tclk = kzalloc(sizeof(*tclk), GFP_KERNEL);
+ tclk = kzalloc_obj(*tclk, GFP_KERNEL);
if (!tclk)
goto err_unmap;
diff --git a/drivers/clk/sunxi/clk-sun8i-bus-gates.c b/drivers/clk/sunxi/clk-sun8i-bus-gates.c
index 8482ac8e5898..c212200d49f4 100644
--- a/drivers/clk/sunxi/clk-sun8i-bus-gates.c
+++ b/drivers/clk/sunxi/clk-sun8i-bus-gates.c
@@ -44,14 +44,14 @@ static void __init sun8i_h3_bus_gates_init(struct device_node *node)
parents[i] = of_clk_get_parent_name(node, idx);
}
- clk_data = kmalloc(sizeof(struct clk_onecell_data), GFP_KERNEL);
+ clk_data = kmalloc_obj(struct clk_onecell_data, GFP_KERNEL);
if (!clk_data)
goto err_unmap;
number = of_property_count_u32_elems(node, "clock-indices");
of_property_read_u32_index(node, "clock-indices", number - 1, &number);
- clk_data->clks = kcalloc(number + 1, sizeof(struct clk *), GFP_KERNEL);
+ clk_data->clks = kzalloc_objs(struct clk *, number + 1, GFP_KERNEL);
if (!clk_data->clks)
goto err_free_data;
diff --git a/drivers/clk/sunxi/clk-sun8i-mbus.c b/drivers/clk/sunxi/clk-sun8i-mbus.c
index 539ea278823d..9156830f04a6 100644
--- a/drivers/clk/sunxi/clk-sun8i-mbus.c
+++ b/drivers/clk/sunxi/clk-sun8i-mbus.c
@@ -44,15 +44,15 @@ static void __init sun8i_a23_mbus_setup(struct device_node *node)
goto err_free_parents;
}
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
goto err_unmap;
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
goto err_free_div;
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
goto err_free_mux;
diff --git a/drivers/clk/sunxi/clk-sun9i-cpus.c b/drivers/clk/sunxi/clk-sun9i-cpus.c
index 48bf899bb2bc..f49f4df71bc2 100644
--- a/drivers/clk/sunxi/clk-sun9i-cpus.c
+++ b/drivers/clk/sunxi/clk-sun9i-cpus.c
@@ -191,7 +191,7 @@ static void sun9i_a80_cpus_setup(struct device_node *node)
struct clk *clk;
int ret;
- cpus = kzalloc(sizeof(*cpus), GFP_KERNEL);
+ cpus = kzalloc_obj(*cpus, GFP_KERNEL);
if (!cpus)
return;
@@ -204,7 +204,7 @@ static void sun9i_a80_cpus_setup(struct device_node *node)
/* we have a mux, we will have >1 parents */
ret = of_clk_parent_fill(node, parents, SUN9I_CPUS_MAX_PARENTS);
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
goto err_unmap;
diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
index 4999504f7e60..1451ebec1ac6 100644
--- a/drivers/clk/sunxi/clk-sunxi.c
+++ b/drivers/clk/sunxi/clk-sunxi.c
@@ -991,11 +991,11 @@ static struct clk ** __init sunxi_divs_clk_setup(struct device_node *node,
return NULL;
}
- clk_data = kmalloc(sizeof(struct clk_onecell_data), GFP_KERNEL);
+ clk_data = kmalloc_obj(struct clk_onecell_data, GFP_KERNEL);
if (!clk_data)
goto out_unmap;
- clks = kcalloc(ndivs, sizeof(*clks), GFP_KERNEL);
+ clks = kzalloc_objs(*clks, ndivs, GFP_KERNEL);
if (!clks)
goto free_clkdata;
@@ -1022,7 +1022,7 @@ static struct clk ** __init sunxi_divs_clk_setup(struct device_node *node,
/* If this leaf clock can be gated, create a gate */
if (data->div[i].gate) {
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
goto free_clks;
@@ -1035,7 +1035,7 @@ static struct clk ** __init sunxi_divs_clk_setup(struct device_node *node,
/* Leaves can be fixed or configurable divisors */
if (data->div[i].fixed) {
- fix_factor = kzalloc(sizeof(*fix_factor), GFP_KERNEL);
+ fix_factor = kzalloc_obj(*fix_factor, GFP_KERNEL);
if (!fix_factor)
goto free_gate;
@@ -1045,7 +1045,7 @@ static struct clk ** __init sunxi_divs_clk_setup(struct device_node *node,
rate_hw = &fix_factor->hw;
rate_ops = &clk_fixed_factor_ops;
} else {
- divider = kzalloc(sizeof(*divider), GFP_KERNEL);
+ divider = kzalloc_obj(*divider, GFP_KERNEL);
if (!divider)
goto free_gate;
diff --git a/drivers/clk/sunxi/clk-usb.c b/drivers/clk/sunxi/clk-usb.c
index 3c53f65002a2..f993884c58d6 100644
--- a/drivers/clk/sunxi/clk-usb.c
+++ b/drivers/clk/sunxi/clk-usb.c
@@ -113,11 +113,11 @@ static void __init sunxi_usb_clk_setup(struct device_node *node,
qty = find_last_bit((unsigned long *)&data->clk_mask,
SUNXI_USB_MAX_SIZE);
- clk_data = kmalloc(sizeof(struct clk_onecell_data), GFP_KERNEL);
+ clk_data = kmalloc_obj(struct clk_onecell_data, GFP_KERNEL);
if (!clk_data)
return;
- clk_data->clks = kcalloc(qty + 1, sizeof(struct clk *), GFP_KERNEL);
+ clk_data->clks = kzalloc_objs(struct clk *, qty + 1, GFP_KERNEL);
if (!clk_data->clks) {
kfree(clk_data);
return;
@@ -144,7 +144,7 @@ static void __init sunxi_usb_clk_setup(struct device_node *node,
if (data->reset_mask == 0)
return;
- reset_data = kzalloc(sizeof(*reset_data), GFP_KERNEL);
+ reset_data = kzalloc_obj(*reset_data, GFP_KERNEL);
if (!reset_data)
return;
diff --git a/drivers/clk/tegra/clk-audio-sync.c b/drivers/clk/tegra/clk-audio-sync.c
index 468a4403f147..41db1d5978e3 100644
--- a/drivers/clk/tegra/clk-audio-sync.c
+++ b/drivers/clk/tegra/clk-audio-sync.c
@@ -50,7 +50,7 @@ struct clk *tegra_clk_register_sync_source(const char *name,
struct clk_init_data init;
struct clk *clk;
- sync = kzalloc(sizeof(*sync), GFP_KERNEL);
+ sync = kzalloc_obj(*sync, GFP_KERNEL);
if (!sync) {
pr_err("%s: could not allocate sync source clk\n", __func__);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/tegra/clk-bpmp.c b/drivers/clk/tegra/clk-bpmp.c
index 77a2586dbe00..064d9ee431e5 100644
--- a/drivers/clk/tegra/clk-bpmp.c
+++ b/drivers/clk/tegra/clk-bpmp.c
@@ -434,7 +434,7 @@ static int tegra_bpmp_probe_clocks(struct tegra_bpmp *bpmp,
dev_dbg(bpmp->dev, "maximum clock ID: %u\n", max_id);
- clocks = kcalloc(max_id + 1, sizeof(*clocks), GFP_KERNEL);
+ clocks = kzalloc_objs(*clocks, max_id + 1, GFP_KERNEL);
if (!clocks)
return -ENOMEM;
diff --git a/drivers/clk/tegra/clk-divider.c b/drivers/clk/tegra/clk-divider.c
index 37439fcb3ac0..62fd39a849b1 100644
--- a/drivers/clk/tegra/clk-divider.c
+++ b/drivers/clk/tegra/clk-divider.c
@@ -148,7 +148,7 @@ struct clk *tegra_clk_register_divider(const char *name,
struct clk *clk;
struct clk_init_data init;
- divider = kzalloc(sizeof(*divider), GFP_KERNEL);
+ divider = kzalloc_obj(*divider, GFP_KERNEL);
if (!divider) {
pr_err("%s: could not allocate fractional divider clk\n",
__func__);
diff --git a/drivers/clk/tegra/clk-periph-fixed.c b/drivers/clk/tegra/clk-periph-fixed.c
index c088e7a280df..363a0e0aed3d 100644
--- a/drivers/clk/tegra/clk-periph-fixed.c
+++ b/drivers/clk/tegra/clk-periph-fixed.c
@@ -84,7 +84,7 @@ struct clk *tegra_clk_register_periph_fixed(const char *name,
if (!regs)
return ERR_PTR(-EINVAL);
- fixed = kzalloc(sizeof(*fixed), GFP_KERNEL);
+ fixed = kzalloc_obj(*fixed, GFP_KERNEL);
if (!fixed)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/tegra/clk-periph-gate.c b/drivers/clk/tegra/clk-periph-gate.c
index 2091fc9b0ca9..1892a5b78fc7 100644
--- a/drivers/clk/tegra/clk-periph-gate.c
+++ b/drivers/clk/tegra/clk-periph-gate.c
@@ -146,7 +146,7 @@ struct clk *tegra_clk_register_periph_gate(const char *name,
if (!pregs)
return ERR_PTR(-EINVAL);
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate) {
pr_err("%s: could not allocate periph gate clk\n", __func__);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/tegra/clk-pll-out.c b/drivers/clk/tegra/clk-pll-out.c
index d8bf89a81e6d..cf10c7bea32d 100644
--- a/drivers/clk/tegra/clk-pll-out.c
+++ b/drivers/clk/tegra/clk-pll-out.c
@@ -93,7 +93,7 @@ struct clk *tegra_clk_register_pll_out(const char *name,
struct clk *clk;
struct clk_init_data init;
- pll_out = kzalloc(sizeof(*pll_out), GFP_KERNEL);
+ pll_out = kzalloc_obj(*pll_out, GFP_KERNEL);
if (!pll_out)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/tegra/clk-pll.c b/drivers/clk/tegra/clk-pll.c
index 591b9f0c155a..3031725e2a9d 100644
--- a/drivers/clk/tegra/clk-pll.c
+++ b/drivers/clk/tegra/clk-pll.c
@@ -1882,7 +1882,7 @@ static struct tegra_clk_pll *_tegra_init_pll(void __iomem *clk_base,
{
struct tegra_clk_pll *pll;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/tegra/clk-sdmmc-mux.c b/drivers/clk/tegra/clk-sdmmc-mux.c
index 4f2c3309eea4..524469ff0805 100644
--- a/drivers/clk/tegra/clk-sdmmc-mux.c
+++ b/drivers/clk/tegra/clk-sdmmc-mux.c
@@ -250,7 +250,7 @@ struct clk *tegra_clk_register_sdmmc_mux_div(const char *name,
if (!bank)
return ERR_PTR(-EINVAL);
- sdmmc_mux = kzalloc(sizeof(*sdmmc_mux), GFP_KERNEL);
+ sdmmc_mux = kzalloc_obj(*sdmmc_mux, GFP_KERNEL);
if (!sdmmc_mux)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/tegra/clk-super.c b/drivers/clk/tegra/clk-super.c
index 51fb356e770e..3882efd05427 100644
--- a/drivers/clk/tegra/clk-super.c
+++ b/drivers/clk/tegra/clk-super.c
@@ -207,7 +207,7 @@ struct clk *tegra_clk_register_super_mux(const char *name,
struct clk *clk;
struct clk_init_data init;
- super = kzalloc(sizeof(*super), GFP_KERNEL);
+ super = kzalloc_obj(*super, GFP_KERNEL);
if (!super)
return ERR_PTR(-ENOMEM);
@@ -243,7 +243,7 @@ struct clk *tegra_clk_register_super_clk(const char *name,
struct clk *clk;
struct clk_init_data init;
- super = kzalloc(sizeof(*super), GFP_KERNEL);
+ super = kzalloc_obj(*super, GFP_KERNEL);
if (!super)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/tegra/clk-tegra-super-cclk.c b/drivers/clk/tegra/clk-tegra-super-cclk.c
index 3b22a4d0dffc..0f4ec781024c 100644
--- a/drivers/clk/tegra/clk-tegra-super-cclk.c
+++ b/drivers/clk/tegra/clk-tegra-super-cclk.c
@@ -142,7 +142,7 @@ struct clk *tegra_clk_register_super_cclk(const char *name,
if (WARN_ON(cclk_super))
return ERR_PTR(-EBUSY);
- super = kzalloc(sizeof(*super), GFP_KERNEL);
+ super = kzalloc_obj(*super, GFP_KERNEL);
if (!super)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/tegra/clk-tegra124-emc.c b/drivers/clk/tegra/clk-tegra124-emc.c
index 8aec327fa1f4..c92fc64c79dc 100644
--- a/drivers/clk/tegra/clk-tegra124-emc.c
+++ b/drivers/clk/tegra/clk-tegra124-emc.c
@@ -492,7 +492,7 @@ struct clk *tegra124_clk_register_emc(void __iomem *base, struct device_node *np
struct clk *clk;
int err;
- tegra = kcalloc(1, sizeof(*tegra), GFP_KERNEL);
+ tegra = kzalloc_objs(*tegra, 1, GFP_KERNEL);
if (!tegra)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/tegra/clk-tegra20-emc.c b/drivers/clk/tegra/clk-tegra20-emc.c
index dd74b8543bf1..20efe7827d27 100644
--- a/drivers/clk/tegra/clk-tegra20-emc.c
+++ b/drivers/clk/tegra/clk-tegra20-emc.c
@@ -249,7 +249,7 @@ struct clk *tegra20_clk_register_emc(void __iomem *ioaddr, bool low_jitter)
struct clk_init_data init;
struct clk *clk;
- emc = kzalloc(sizeof(*emc), GFP_KERNEL);
+ emc = kzalloc_obj(*emc, GFP_KERNEL);
if (!emc)
return NULL;
diff --git a/drivers/clk/tegra/clk-tegra210-emc.c b/drivers/clk/tegra/clk-tegra210-emc.c
index fbf3c894eb56..9e88cd587183 100644
--- a/drivers/clk/tegra/clk-tegra210-emc.c
+++ b/drivers/clk/tegra/clk-tegra210-emc.c
@@ -278,7 +278,7 @@ struct clk *tegra210_clk_register_emc(struct device_node *np,
struct clk_init_data init;
struct clk *clk;
- emc = kzalloc(sizeof(*emc), GFP_KERNEL);
+ emc = kzalloc_obj(*emc, GFP_KERNEL);
if (!emc)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/tegra/clk-tegra210.c b/drivers/clk/tegra/clk-tegra210.c
index 504d0ea997a5..ad21a735723e 100644
--- a/drivers/clk/tegra/clk-tegra210.c
+++ b/drivers/clk/tegra/clk-tegra210.c
@@ -3705,8 +3705,7 @@ static void tegra210_mbist_clk_init(void)
if (!num_clks)
continue;
- clk_data = kmalloc_array(num_clks, sizeof(*clk_data),
- GFP_KERNEL);
+ clk_data = kmalloc_objs(*clk_data, num_clks, GFP_KERNEL);
if (WARN_ON(!clk_data))
return;
diff --git a/drivers/clk/tegra/clk.c b/drivers/clk/tegra/clk.c
index 19037346f522..7f11d1795d79 100644
--- a/drivers/clk/tegra/clk.c
+++ b/drivers/clk/tegra/clk.c
@@ -227,15 +227,14 @@ struct clk ** __init tegra_clk_init(void __iomem *regs, int num, int banks)
if (WARN_ON(banks > ARRAY_SIZE(periph_regs)))
return NULL;
- periph_clk_enb_refcnt = kcalloc(32 * banks,
- sizeof(*periph_clk_enb_refcnt),
- GFP_KERNEL);
+ periph_clk_enb_refcnt = kzalloc_objs(*periph_clk_enb_refcnt, 32 * banks,
+ GFP_KERNEL);
if (!periph_clk_enb_refcnt)
return NULL;
periph_banks = banks;
- clks = kcalloc(num, sizeof(struct clk *), GFP_KERNEL);
+ clks = kzalloc_objs(struct clk *, num, GFP_KERNEL);
if (!clks) {
kfree(periph_clk_enb_refcnt);
return NULL;
diff --git a/drivers/clk/ti/apll.c b/drivers/clk/ti/apll.c
index 43514e6f3b78..5ec7cfd5e669 100644
--- a/drivers/clk/ti/apll.c
+++ b/drivers/clk/ti/apll.c
@@ -183,9 +183,9 @@ static void __init of_dra7_apll_setup(struct device_node *node)
const char **parent_names = NULL;
int ret;
- ad = kzalloc(sizeof(*ad), GFP_KERNEL);
- clk_hw = kzalloc(sizeof(*clk_hw), GFP_KERNEL);
- init = kzalloc(sizeof(*init), GFP_KERNEL);
+ ad = kzalloc_obj(*ad, GFP_KERNEL);
+ clk_hw = kzalloc_obj(*clk_hw, GFP_KERNEL);
+ init = kzalloc_obj(*init, GFP_KERNEL);
if (!ad || !clk_hw || !init)
goto cleanup;
@@ -347,9 +347,9 @@ static void __init of_omap2_apll_setup(struct device_node *node)
u32 val;
int ret;
- ad = kzalloc(sizeof(*ad), GFP_KERNEL);
- clk_hw = kzalloc(sizeof(*clk_hw), GFP_KERNEL);
- init = kzalloc(sizeof(*init), GFP_KERNEL);
+ ad = kzalloc_obj(*ad, GFP_KERNEL);
+ clk_hw = kzalloc_obj(*clk_hw, GFP_KERNEL);
+ init = kzalloc_obj(*init, GFP_KERNEL);
if (!ad || !clk_hw || !init)
goto cleanup;
diff --git a/drivers/clk/ti/autoidle.c b/drivers/clk/ti/autoidle.c
index a99aaf2e7684..62b136861f95 100644
--- a/drivers/clk/ti/autoidle.c
+++ b/drivers/clk/ti/autoidle.c
@@ -191,7 +191,7 @@ int __init of_ti_clk_autoidle_setup(struct device_node *node)
if (of_property_read_u32(node, "ti,autoidle-shift", &shift))
return 0;
- clk = kzalloc(sizeof(*clk), GFP_KERNEL);
+ clk = kzalloc_obj(*clk, GFP_KERNEL);
if (!clk)
return -ENOMEM;
diff --git a/drivers/clk/ti/clk-dra7-atl.c b/drivers/clk/ti/clk-dra7-atl.c
index b02f84d49b96..fd41aa9fbab1 100644
--- a/drivers/clk/ti/clk-dra7-atl.c
+++ b/drivers/clk/ti/clk-dra7-atl.c
@@ -170,7 +170,7 @@ static void __init of_dra7_atl_clock_setup(struct device_node *node)
const char *name;
struct clk *clk;
- clk_hw = kzalloc(sizeof(*clk_hw), GFP_KERNEL);
+ clk_hw = kzalloc_obj(*clk_hw, GFP_KERNEL);
if (!clk_hw) {
pr_err("%s: could not allocate dra7_atl_desc\n", __func__);
return;
diff --git a/drivers/clk/ti/clk.c b/drivers/clk/ti/clk.c
index 693a4459a01b..23ab4f380956 100644
--- a/drivers/clk/ti/clk.c
+++ b/drivers/clk/ti/clk.c
@@ -268,7 +268,7 @@ int __init ti_clk_retry_init(struct device_node *node, void *user,
struct clk_init_item *retry;
pr_debug("%pOFn: adding to retry list...\n", node);
- retry = kzalloc(sizeof(*retry), GFP_KERNEL);
+ retry = kzalloc_obj(*retry, GFP_KERNEL);
if (!retry)
return -ENOMEM;
@@ -411,7 +411,7 @@ int __init omap2_clk_provider_init(struct device_node *parent, int index,
/* add clocks node info */
clocks_node_ptr[index] = clocks;
- io = kzalloc(sizeof(*io), GFP_KERNEL);
+ io = kzalloc_obj(*io, GFP_KERNEL);
if (!io)
return -ENOMEM;
@@ -576,7 +576,7 @@ int ti_clk_add_alias(struct clk *clk, const char *con)
if (IS_ERR(clk))
return PTR_ERR(clk);
- cl = kzalloc(sizeof(*cl), GFP_KERNEL);
+ cl = kzalloc_obj(*cl, GFP_KERNEL);
if (!cl)
return -ENOMEM;
diff --git a/drivers/clk/ti/clkctrl.c b/drivers/clk/ti/clkctrl.c
index 607e34d8e289..06a39d981733 100644
--- a/drivers/clk/ti/clkctrl.c
+++ b/drivers/clk/ti/clkctrl.c
@@ -297,7 +297,7 @@ _ti_clkctrl_clk_register(struct omap_clkctrl_provider *provider,
ti_clk_get_features()->flags &
TI_CLK_CLKCTRL_COMPAT);
- clkctrl_clk = kzalloc(sizeof(*clkctrl_clk), GFP_KERNEL);
+ clkctrl_clk = kzalloc_obj(*clkctrl_clk, GFP_KERNEL);
if (!init.name || !clkctrl_clk) {
ret = -ENOMEM;
goto cleanup;
@@ -337,7 +337,7 @@ _ti_clkctrl_setup_gate(struct omap_clkctrl_provider *provider,
{
struct clk_hw_omap *clk_hw;
- clk_hw = kzalloc(sizeof(*clk_hw), GFP_KERNEL);
+ clk_hw = kzalloc_obj(*clk_hw, GFP_KERNEL);
if (!clk_hw)
return;
@@ -360,7 +360,7 @@ _ti_clkctrl_setup_mux(struct omap_clkctrl_provider *provider,
int num_parents = 0;
const char * const *pname;
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return;
@@ -395,7 +395,7 @@ _ti_clkctrl_setup_div(struct omap_clkctrl_provider *provider,
const struct omap_clkctrl_div_data *div_data = data->data;
u8 div_flags = 0;
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
return;
@@ -579,7 +579,7 @@ static void __init _ti_omap4_clkctrl_setup(struct device_node *node)
return;
}
- provider = kzalloc(sizeof(*provider), GFP_KERNEL);
+ provider = kzalloc_obj(*provider, GFP_KERNEL);
if (!provider)
return;
@@ -650,7 +650,7 @@ static void __init _ti_omap4_clkctrl_setup(struct device_node *node)
continue;
}
- hw = kzalloc(sizeof(*hw), GFP_KERNEL);
+ hw = kzalloc_obj(*hw, GFP_KERNEL);
if (!hw)
return;
@@ -683,7 +683,7 @@ static void __init _ti_omap4_clkctrl_setup(struct device_node *node)
if (!init.name)
goto cleanup;
- clkctrl_clk = kzalloc(sizeof(*clkctrl_clk), GFP_KERNEL);
+ clkctrl_clk = kzalloc_obj(*clkctrl_clk, GFP_KERNEL);
if (!clkctrl_clk)
goto cleanup;
diff --git a/drivers/clk/ti/composite.c b/drivers/clk/ti/composite.c
index 8cba259188d4..0403995cd8ac 100644
--- a/drivers/clk/ti/composite.c
+++ b/drivers/clk/ti/composite.c
@@ -211,7 +211,7 @@ static void __init of_ti_composite_clk_setup(struct device_node *node)
return;
}
- cclk = kzalloc(sizeof(*cclk), GFP_KERNEL);
+ cclk = kzalloc_obj(*cclk, GFP_KERNEL);
if (!cclk)
return;
@@ -253,7 +253,7 @@ int __init ti_clk_add_component(struct device_node *node, struct clk_hw *hw,
of_clk_parent_fill(node, parent_names, num_parents);
- clk = kzalloc(sizeof(*clk), GFP_KERNEL);
+ clk = kzalloc_obj(*clk, GFP_KERNEL);
if (!clk) {
kfree(parent_names);
return -ENOMEM;
diff --git a/drivers/clk/ti/divider.c b/drivers/clk/ti/divider.c
index 6f58a0f2e74a..af2776f13413 100644
--- a/drivers/clk/ti/divider.c
+++ b/drivers/clk/ti/divider.c
@@ -357,7 +357,7 @@ int ti_clk_parse_divider_data(int *div_table, int num_dividers, int max_div,
num_dividers = i;
- tmp = kcalloc(valid_div + 1, sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_objs(*tmp, valid_div + 1, GFP_KERNEL);
if (!tmp)
return -ENOMEM;
@@ -413,7 +413,7 @@ static int __init ti_clk_get_div_table(struct device_node *node,
return -EINVAL;
}
- table = kcalloc(valid_div + 1, sizeof(*table), GFP_KERNEL);
+ table = kzalloc_objs(*table, valid_div + 1, GFP_KERNEL);
if (!table)
return -ENOMEM;
@@ -517,7 +517,7 @@ static void __init of_ti_divider_clk_setup(struct device_node *node)
u32 flags = 0;
struct clk_omap_divider *div;
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
return;
@@ -542,7 +542,7 @@ static void __init of_ti_composite_divider_clk_setup(struct device_node *node)
struct clk_omap_divider *div;
u32 tmp;
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
return;
diff --git a/drivers/clk/ti/dpll.c b/drivers/clk/ti/dpll.c
index 971adafd9a8b..bce9af95d7aa 100644
--- a/drivers/clk/ti/dpll.c
+++ b/drivers/clk/ti/dpll.c
@@ -222,7 +222,7 @@ static void _register_dpll_x2(struct device_node *node,
return;
}
- clk_hw = kzalloc(sizeof(*clk_hw), GFP_KERNEL);
+ clk_hw = kzalloc_obj(*clk_hw, GFP_KERNEL);
if (!clk_hw)
return;
@@ -281,8 +281,8 @@ static void __init of_ti_dpll_setup(struct device_node *node,
u32 min_div;
dd = kmemdup(ddt, sizeof(*dd), GFP_KERNEL);
- clk_hw = kzalloc(sizeof(*clk_hw), GFP_KERNEL);
- init = kzalloc(sizeof(*init), GFP_KERNEL);
+ clk_hw = kzalloc_obj(*clk_hw, GFP_KERNEL);
+ init = kzalloc_obj(*init, GFP_KERNEL);
if (!dd || !clk_hw || !init)
goto cleanup;
diff --git a/drivers/clk/ti/fapll.c b/drivers/clk/ti/fapll.c
index 4f28138d2d8a..22be4570b038 100644
--- a/drivers/clk/ti/fapll.c
+++ b/drivers/clk/ti/fapll.c
@@ -499,7 +499,7 @@ static struct clk * __init ti_fapll_synth_setup(struct fapll_data *fd,
struct fapll_synth *synth;
struct clk *clk = ERR_PTR(-ENOMEM);
- init = kzalloc(sizeof(*init), GFP_KERNEL);
+ init = kzalloc_obj(*init, GFP_KERNEL);
if (!init)
return ERR_PTR(-ENOMEM);
@@ -508,7 +508,7 @@ static struct clk * __init ti_fapll_synth_setup(struct fapll_data *fd,
init->parent_names = &parent;
init->num_parents = 1;
- synth = kzalloc(sizeof(*synth), GFP_KERNEL);
+ synth = kzalloc_obj(*synth, GFP_KERNEL);
if (!synth)
goto free;
@@ -544,7 +544,7 @@ static void __init ti_fapll_setup(struct device_node *node)
const char *name;
int i;
- fd = kzalloc(sizeof(*fd), GFP_KERNEL);
+ fd = kzalloc_obj(*fd, GFP_KERNEL);
if (!fd)
return;
@@ -554,7 +554,7 @@ static void __init ti_fapll_setup(struct device_node *node)
if (!fd->outputs.clks)
goto free;
- init = kzalloc(sizeof(*init), GFP_KERNEL);
+ init = kzalloc_obj(*init, GFP_KERNEL);
if (!init)
goto free;
diff --git a/drivers/clk/ti/gate.c b/drivers/clk/ti/gate.c
index a9febd6356b8..73986d78492a 100644
--- a/drivers/clk/ti/gate.c
+++ b/drivers/clk/ti/gate.c
@@ -95,7 +95,7 @@ static struct clk *_register_gate(struct device_node *node, const char *name,
struct clk_hw_omap *clk_hw;
struct clk *clk;
- clk_hw = kzalloc(sizeof(*clk_hw), GFP_KERNEL);
+ clk_hw = kzalloc_obj(*clk_hw, GFP_KERNEL);
if (!clk_hw)
return ERR_PTR(-ENOMEM);
@@ -169,7 +169,7 @@ _of_ti_composite_gate_clk_setup(struct device_node *node,
{
struct clk_hw_omap *gate;
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
return;
diff --git a/drivers/clk/ti/interface.c b/drivers/clk/ti/interface.c
index 3eb35c87c0ed..999e230d7414 100644
--- a/drivers/clk/ti/interface.c
+++ b/drivers/clk/ti/interface.c
@@ -34,7 +34,7 @@ static struct clk *_register_interface(struct device_node *node,
struct clk_hw_omap *clk_hw;
struct clk *clk;
- clk_hw = kzalloc(sizeof(*clk_hw), GFP_KERNEL);
+ clk_hw = kzalloc_obj(*clk_hw, GFP_KERNEL);
if (!clk_hw)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/ti/mux.c b/drivers/clk/ti/mux.c
index d6d247ff2be5..3911e43a6716 100644
--- a/drivers/clk/ti/mux.c
+++ b/drivers/clk/ti/mux.c
@@ -129,7 +129,7 @@ static struct clk *_register_mux(struct device_node *node, const char *name,
struct clk_init_data init;
/* allocate the mux */
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return ERR_PTR(-ENOMEM);
@@ -227,7 +227,7 @@ struct clk_hw *ti_clk_build_component_mux(struct ti_clk_mux *setup)
if (!setup)
return NULL;
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return ERR_PTR(-ENOMEM);
@@ -253,7 +253,7 @@ static void __init of_ti_composite_mux_clk_setup(struct device_node *node)
struct clk_omap_mux *mux;
unsigned int num_parents;
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return;
diff --git a/drivers/clk/ux500/clk-prcc.c b/drivers/clk/ux500/clk-prcc.c
index b85ee0930369..5639474557fe 100644
--- a/drivers/clk/ux500/clk-prcc.c
+++ b/drivers/clk/ux500/clk-prcc.c
@@ -106,7 +106,7 @@ static struct clk *clk_reg_prcc(const char *name,
return ERR_PTR(-EINVAL);
}
- clk = kzalloc(sizeof(*clk), GFP_KERNEL);
+ clk = kzalloc_obj(*clk, GFP_KERNEL);
if (!clk)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/ux500/clk-prcmu.c b/drivers/clk/ux500/clk-prcmu.c
index f775e18acd46..95efbc4f84a7 100644
--- a/drivers/clk/ux500/clk-prcmu.c
+++ b/drivers/clk/ux500/clk-prcmu.c
@@ -209,7 +209,7 @@ static struct clk_hw *clk_reg_prcmu(const char *name,
return ERR_PTR(-EINVAL);
}
- clk = kzalloc(sizeof(*clk), GFP_KERNEL);
+ clk = kzalloc_obj(*clk, GFP_KERNEL);
if (!clk)
return ERR_PTR(-ENOMEM);
@@ -376,7 +376,7 @@ struct clk_hw *clk_reg_prcmu_clkout(const char *name,
return ERR_PTR(-EINVAL);
}
- clk = kzalloc(sizeof(*clk), GFP_KERNEL);
+ clk = kzalloc_obj(*clk, GFP_KERNEL);
if (!clk)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/ux500/u8500_of_clk.c b/drivers/clk/ux500/u8500_of_clk.c
index 8e2f6c65db2a..42c1df2382ee 100644
--- a/drivers/clk/ux500/u8500_of_clk.c
+++ b/drivers/clk/ux500/u8500_of_clk.c
@@ -137,7 +137,7 @@ static void u8500_clk_init(struct device_node *np)
* base addresses properly and pass to the reset controller init
* function later on.
*/
- rstc = kzalloc(sizeof(*rstc), GFP_KERNEL);
+ rstc = kzalloc_obj(*rstc, GFP_KERNEL);
if (!rstc)
return;
diff --git a/drivers/clk/versatile/clk-icst.c b/drivers/clk/versatile/clk-icst.c
index 86ca04ad9fab..d95d66cd5b6a 100644
--- a/drivers/clk/versatile/clk-icst.c
+++ b/drivers/clk/versatile/clk-icst.c
@@ -363,7 +363,7 @@ struct clk *icst_clk_setup(struct device *dev,
struct clk_init_data init;
struct icst_params *pclone;
- icst = kzalloc(sizeof(*icst), GFP_KERNEL);
+ icst = kzalloc_obj(*icst, GFP_KERNEL);
if (!icst)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/versatile/clk-sp810.c b/drivers/clk/versatile/clk-sp810.c
index 033d4f78edc8..5f83760b68d4 100644
--- a/drivers/clk/versatile/clk-sp810.c
+++ b/drivers/clk/versatile/clk-sp810.c
@@ -82,7 +82,7 @@ static struct clk *clk_sp810_timerclken_of_get(struct of_phandle_args *clkspec,
static void __init clk_sp810_of_setup(struct device_node *node)
{
- struct clk_sp810 *sp810 = kzalloc(sizeof(*sp810), GFP_KERNEL);
+ struct clk_sp810 *sp810 = kzalloc_obj(*sp810, GFP_KERNEL);
const char *parent_names[2];
int num = ARRAY_SIZE(parent_names);
char name[12];
diff --git a/drivers/clk/visconti/pll.c b/drivers/clk/visconti/pll.c
index 681721d85032..7494a24134de 100644
--- a/drivers/clk/visconti/pll.c
+++ b/drivers/clk/visconti/pll.c
@@ -255,7 +255,7 @@ static struct clk_hw *visconti_register_pll(struct visconti_pll_provider *ctx,
size_t len;
int ret;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
@@ -330,7 +330,7 @@ struct visconti_pll_provider * __init visconti_init_pll(struct device_node *np,
struct visconti_pll_provider *ctx;
int i;
- ctx = kzalloc(struct_size(ctx, clk_data.hws, nr_plls), GFP_KERNEL);
+ ctx = kzalloc_flex(*ctx, clk_data.hws, nr_plls, GFP_KERNEL);
if (!ctx)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/zynq/clkc.c b/drivers/clk/zynq/clkc.c
index c28d3dacf0fb..4a5f2b6267c0 100644
--- a/drivers/clk/zynq/clkc.c
+++ b/drivers/clk/zynq/clkc.c
@@ -112,10 +112,10 @@ static void __init zynq_clk_register_fclk(enum zynq_clk fclk,
spinlock_t *fclk_gate_lock;
void __iomem *fclk_gate_reg = fclk_ctrl_reg + 8;
- fclk_lock = kmalloc(sizeof(*fclk_lock), GFP_KERNEL);
+ fclk_lock = kmalloc_obj(*fclk_lock, GFP_KERNEL);
if (!fclk_lock)
goto err;
- fclk_gate_lock = kmalloc(sizeof(*fclk_gate_lock), GFP_KERNEL);
+ fclk_gate_lock = kmalloc_obj(*fclk_gate_lock, GFP_KERNEL);
if (!fclk_gate_lock)
goto err_fclk_gate_lock;
spin_lock_init(fclk_lock);
@@ -180,7 +180,7 @@ static void __init zynq_clk_register_periph_clk(enum zynq_clk clk0,
char *div_name;
spinlock_t *lock;
- lock = kmalloc(sizeof(*lock), GFP_KERNEL);
+ lock = kmalloc_obj(*lock, GFP_KERNEL);
if (!lock)
goto err;
spin_lock_init(lock);
diff --git a/drivers/clk/zynq/pll.c b/drivers/clk/zynq/pll.c
index 5eca1c14981a..0c411ad86575 100644
--- a/drivers/clk/zynq/pll.c
+++ b/drivers/clk/zynq/pll.c
@@ -200,7 +200,7 @@ struct clk *clk_register_zynq_pll(const char *name, const char *parent,
.flags = 0
};
- pll = kmalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kmalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/zynqmp/clk-gate-zynqmp.c b/drivers/clk/zynqmp/clk-gate-zynqmp.c
index b89e55737198..2e36f14d0a52 100644
--- a/drivers/clk/zynqmp/clk-gate-zynqmp.c
+++ b/drivers/clk/zynqmp/clk-gate-zynqmp.c
@@ -115,7 +115,7 @@ struct clk_hw *zynqmp_clk_register_gate(const char *name, u32 clk_id,
struct clk_init_data init;
/* allocate the gate */
- gate = kzalloc(sizeof(*gate), GFP_KERNEL);
+ gate = kzalloc_obj(*gate, GFP_KERNEL);
if (!gate)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/zynqmp/clk-mux-zynqmp.c b/drivers/clk/zynqmp/clk-mux-zynqmp.c
index 9b5d3050b742..f8d67adfd258 100644
--- a/drivers/clk/zynqmp/clk-mux-zynqmp.c
+++ b/drivers/clk/zynqmp/clk-mux-zynqmp.c
@@ -138,7 +138,7 @@ struct clk_hw *zynqmp_clk_register_mux(const char *name, u32 clk_id,
struct clk_init_data init;
int ret;
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/zynqmp/clkc.c b/drivers/clk/zynqmp/clkc.c
index a91d98e238c2..c71401b3aa1f 100644
--- a/drivers/clk/zynqmp/clkc.c
+++ b/drivers/clk/zynqmp/clkc.c
@@ -759,12 +759,11 @@ static int zynqmp_clk_setup(struct device_node *np)
if (ret)
return ret;
- zynqmp_data = kzalloc(struct_size(zynqmp_data, hws, clock_max_idx),
- GFP_KERNEL);
+ zynqmp_data = kzalloc_flex(*zynqmp_data, hws, clock_max_idx, GFP_KERNEL);
if (!zynqmp_data)
return -ENOMEM;
- clock = kcalloc(clock_max_idx, sizeof(*clock), GFP_KERNEL);
+ clock = kzalloc_objs(*clock, clock_max_idx, GFP_KERNEL);
if (!clock) {
kfree(zynqmp_data);
return -ENOMEM;
diff --git a/drivers/clk/zynqmp/divider.c b/drivers/clk/zynqmp/divider.c
index 984e577ea671..3c147ba7dbcc 100644
--- a/drivers/clk/zynqmp/divider.c
+++ b/drivers/clk/zynqmp/divider.c
@@ -284,7 +284,7 @@ struct clk_hw *zynqmp_clk_register_divider(const char *name,
int ret;
/* allocate the divider */
- div = kzalloc(sizeof(*div), GFP_KERNEL);
+ div = kzalloc_obj(*div, GFP_KERNEL);
if (!div)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clk/zynqmp/pll.c b/drivers/clk/zynqmp/pll.c
index 6bc2c3934f56..1cd5e0493e98 100644
--- a/drivers/clk/zynqmp/pll.c
+++ b/drivers/clk/zynqmp/pll.c
@@ -326,7 +326,7 @@ struct clk_hw *zynqmp_clk_register_pll(const char *name, u32 clk_id,
init.parent_names = parents;
init.num_parents = 1;
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ pll = kzalloc_obj(*pll, GFP_KERNEL);
if (!pll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/clocksource/bcm2835_timer.c b/drivers/clocksource/bcm2835_timer.c
index 319c0c780a15..ff0e21edd9c1 100644
--- a/drivers/clocksource/bcm2835_timer.c
+++ b/drivers/clocksource/bcm2835_timer.c
@@ -98,7 +98,7 @@ static int __init bcm2835_timer_init(struct device_node *node)
goto err_iounmap;
}
- timer = kzalloc(sizeof(*timer), GFP_KERNEL);
+ timer = kzalloc_obj(*timer, GFP_KERNEL);
if (!timer) {
ret = -ENOMEM;
goto err_iounmap;
diff --git a/drivers/clocksource/clps711x-timer.c b/drivers/clocksource/clps711x-timer.c
index bbceb0289d45..75c17eeef689 100644
--- a/drivers/clocksource/clps711x-timer.c
+++ b/drivers/clocksource/clps711x-timer.c
@@ -54,7 +54,7 @@ static int __init _clps711x_clkevt_init(struct clk *clock, void __iomem *base,
struct clock_event_device *clkevt;
unsigned long rate;
- clkevt = kzalloc(sizeof(*clkevt), GFP_KERNEL);
+ clkevt = kzalloc_obj(*clkevt, GFP_KERNEL);
if (!clkevt)
return -ENOMEM;
diff --git a/drivers/clocksource/dw_apb_timer.c b/drivers/clocksource/dw_apb_timer.c
index 3a55ae5fe225..043793728e23 100644
--- a/drivers/clocksource/dw_apb_timer.c
+++ b/drivers/clocksource/dw_apb_timer.c
@@ -222,8 +222,8 @@ struct dw_apb_clock_event_device *
dw_apb_clockevent_init(int cpu, const char *name, unsigned rating,
void __iomem *base, int irq, unsigned long freq)
{
- struct dw_apb_clock_event_device *dw_ced =
- kzalloc(sizeof(*dw_ced), GFP_KERNEL);
+ struct dw_apb_clock_event_device *dw_ced = kzalloc_obj(*dw_ced,
+ GFP_KERNEL);
int err;
if (!dw_ced)
@@ -340,7 +340,7 @@ struct dw_apb_clocksource *
dw_apb_clocksource_init(unsigned rating, const char *name, void __iomem *base,
unsigned long freq)
{
- struct dw_apb_clocksource *dw_cs = kzalloc(sizeof(*dw_cs), GFP_KERNEL);
+ struct dw_apb_clocksource *dw_cs = kzalloc_obj(*dw_cs, GFP_KERNEL);
if (!dw_cs)
return NULL;
diff --git a/drivers/clocksource/ingenic-sysost.c b/drivers/clocksource/ingenic-sysost.c
index e79cfb0b8e05..22caa69197a2 100644
--- a/drivers/clocksource/ingenic-sysost.c
+++ b/drivers/clocksource/ingenic-sysost.c
@@ -279,7 +279,7 @@ static int __init ingenic_ost_register_clock(struct ingenic_ost *ost,
struct ingenic_ost_clk *ost_clk;
int val, err;
- ost_clk = kzalloc(sizeof(*ost_clk), GFP_KERNEL);
+ ost_clk = kzalloc_obj(*ost_clk, GFP_KERNEL);
if (!ost_clk)
return -ENOMEM;
@@ -432,7 +432,7 @@ static int __init ingenic_ost_probe(struct device_node *np)
unsigned int i;
int ret;
- ost = kzalloc(sizeof(*ost), GFP_KERNEL);
+ ost = kzalloc_obj(*ost, GFP_KERNEL);
if (!ost)
return -ENOMEM;
@@ -458,8 +458,8 @@ static int __init ingenic_ost_probe(struct device_node *np)
ost->soc_info = id->data;
- ost->clocks = kzalloc(struct_size(ost->clocks, hws, ost->soc_info->num_channels),
- GFP_KERNEL);
+ ost->clocks = kzalloc_flex(*ost->clocks, hws,
+ ost->soc_info->num_channels, GFP_KERNEL);
if (!ost->clocks) {
ret = -ENOMEM;
goto err_clk_disable;
diff --git a/drivers/clocksource/ingenic-timer.c b/drivers/clocksource/ingenic-timer.c
index 154ee5f7954a..3c545cb756af 100644
--- a/drivers/clocksource/ingenic-timer.c
+++ b/drivers/clocksource/ingenic-timer.c
@@ -286,8 +286,7 @@ static int __init ingenic_tcu_init(struct device_node *np)
if (IS_ERR(map))
return PTR_ERR(map);
- tcu = kzalloc(struct_size(tcu, timers, num_possible_cpus()),
- GFP_KERNEL);
+ tcu = kzalloc_flex(*tcu, timers, num_possible_cpus(), GFP_KERNEL);
if (!tcu)
return -ENOMEM;
diff --git a/drivers/clocksource/mmio.c b/drivers/clocksource/mmio.c
index 9de751531831..286513486542 100644
--- a/drivers/clocksource/mmio.c
+++ b/drivers/clocksource/mmio.c
@@ -55,7 +55,7 @@ int __init clocksource_mmio_init(void __iomem *base, const char *name,
if (bits > 64 || bits < 16)
return -EINVAL;
- cs = kzalloc(sizeof(struct clocksource_mmio), GFP_KERNEL);
+ cs = kzalloc_obj(struct clocksource_mmio, GFP_KERNEL);
if (!cs)
return -ENOMEM;
diff --git a/drivers/clocksource/mps2-timer.c b/drivers/clocksource/mps2-timer.c
index efe8cad8f2a5..53c484d29195 100644
--- a/drivers/clocksource/mps2-timer.c
+++ b/drivers/clocksource/mps2-timer.c
@@ -136,7 +136,7 @@ static int __init mps2_clockevent_init(struct device_node *np)
goto out_iounmap;
}
- ce = kzalloc(sizeof(*ce), GFP_KERNEL);
+ ce = kzalloc_obj(*ce, GFP_KERNEL);
if (!ce) {
ret = -ENOMEM;
goto out_iounmap;
diff --git a/drivers/clocksource/renesas-ostm.c b/drivers/clocksource/renesas-ostm.c
index 2089aeaae225..36132692bae5 100644
--- a/drivers/clocksource/renesas-ostm.c
+++ b/drivers/clocksource/renesas-ostm.c
@@ -165,7 +165,7 @@ static int __init ostm_init(struct device_node *np)
struct timer_of *to;
int ret;
- to = kzalloc(sizeof(*to), GFP_KERNEL);
+ to = kzalloc_obj(*to, GFP_KERNEL);
if (!to)
return -ENOMEM;
diff --git a/drivers/clocksource/sh_cmt.c b/drivers/clocksource/sh_cmt.c
index 791b298c995b..fd8cdabef9bc 100644
--- a/drivers/clocksource/sh_cmt.c
+++ b/drivers/clocksource/sh_cmt.c
@@ -1084,8 +1084,8 @@ static int sh_cmt_setup(struct sh_cmt_device *cmt, struct platform_device *pdev)
/* Allocate and setup the channels. */
cmt->num_channels = hweight8(cmt->hw_channels);
- cmt->channels = kcalloc(cmt->num_channels, sizeof(*cmt->channels),
- GFP_KERNEL);
+ cmt->channels = kzalloc_objs(*cmt->channels, cmt->num_channels,
+ GFP_KERNEL);
if (cmt->channels == NULL) {
ret = -ENOMEM;
goto err_unmap;
@@ -1139,7 +1139,7 @@ static int sh_cmt_probe(struct platform_device *pdev)
goto out;
}
- cmt = kzalloc(sizeof(*cmt), GFP_KERNEL);
+ cmt = kzalloc_obj(*cmt, GFP_KERNEL);
if (cmt == NULL)
return -ENOMEM;
diff --git a/drivers/clocksource/sh_mtu2.c b/drivers/clocksource/sh_mtu2.c
index 34872df5458a..333548989ed5 100644
--- a/drivers/clocksource/sh_mtu2.c
+++ b/drivers/clocksource/sh_mtu2.c
@@ -420,8 +420,8 @@ static int sh_mtu2_setup(struct sh_mtu2_device *mtu,
mtu->num_channels = min_t(unsigned int, ret,
ARRAY_SIZE(sh_mtu2_channel_offsets));
- mtu->channels = kcalloc(mtu->num_channels, sizeof(*mtu->channels),
- GFP_KERNEL);
+ mtu->channels = kzalloc_objs(*mtu->channels, mtu->num_channels,
+ GFP_KERNEL);
if (mtu->channels == NULL) {
ret = -ENOMEM;
goto err_unmap;
@@ -462,7 +462,7 @@ static int sh_mtu2_probe(struct platform_device *pdev)
goto out;
}
- mtu = kzalloc(sizeof(*mtu), GFP_KERNEL);
+ mtu = kzalloc_obj(*mtu, GFP_KERNEL);
if (mtu == NULL)
return -ENOMEM;
diff --git a/drivers/clocksource/sh_tmu.c b/drivers/clocksource/sh_tmu.c
index 3fc6ed9b5630..365739e1fbad 100644
--- a/drivers/clocksource/sh_tmu.c
+++ b/drivers/clocksource/sh_tmu.c
@@ -546,8 +546,8 @@ static int sh_tmu_setup(struct sh_tmu_device *tmu, struct platform_device *pdev)
}
/* Allocate and setup the channels. */
- tmu->channels = kcalloc(tmu->num_channels, sizeof(*tmu->channels),
- GFP_KERNEL);
+ tmu->channels = kzalloc_objs(*tmu->channels, tmu->num_channels,
+ GFP_KERNEL);
if (tmu->channels == NULL) {
ret = -ENOMEM;
goto err_unmap;
@@ -593,7 +593,7 @@ static int sh_tmu_probe(struct platform_device *pdev)
goto out;
}
- tmu = kzalloc(sizeof(*tmu), GFP_KERNEL);
+ tmu = kzalloc_obj(*tmu, GFP_KERNEL);
if (tmu == NULL)
return -ENOMEM;
diff --git a/drivers/clocksource/timer-atmel-pit.c b/drivers/clocksource/timer-atmel-pit.c
index b4f264ed1937..253c3e4d0296 100644
--- a/drivers/clocksource/timer-atmel-pit.c
+++ b/drivers/clocksource/timer-atmel-pit.c
@@ -170,7 +170,7 @@ static int __init at91sam926x_pit_dt_init(struct device_node *node)
int ret;
struct pit_data *data;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/clocksource/timer-cadence-ttc.c b/drivers/clocksource/timer-cadence-ttc.c
index b8a1cf59b9d6..836141e51118 100644
--- a/drivers/clocksource/timer-cadence-ttc.c
+++ b/drivers/clocksource/timer-cadence-ttc.c
@@ -334,7 +334,7 @@ static int __init ttc_setup_clocksource(struct clk *clk, void __iomem *base,
struct ttc_timer_clocksource *ttccs;
int err;
- ttccs = kzalloc(sizeof(*ttccs), GFP_KERNEL);
+ ttccs = kzalloc_obj(*ttccs, GFP_KERNEL);
if (!ttccs)
return -ENOMEM;
@@ -417,7 +417,7 @@ static int __init ttc_setup_clockevent(struct clk *clk,
struct ttc_timer_clockevent *ttcce;
int err;
- ttcce = kzalloc(sizeof(*ttcce), GFP_KERNEL);
+ ttcce = kzalloc_obj(*ttcce, GFP_KERNEL);
if (!ttcce)
return -ENOMEM;
diff --git a/drivers/clocksource/timer-davinci.c b/drivers/clocksource/timer-davinci.c
index b1c248498be4..9bf1728a87dc 100644
--- a/drivers/clocksource/timer-davinci.c
+++ b/drivers/clocksource/timer-davinci.c
@@ -271,7 +271,7 @@ int __init davinci_timer_register(struct clk *clk,
davinci_timer_init(base);
tick_rate = clk_get_rate(clk);
- clockevent = kzalloc(sizeof(*clockevent), GFP_KERNEL);
+ clockevent = kzalloc_obj(*clockevent, GFP_KERNEL);
if (!clockevent) {
rv = -ENOMEM;
goto exit_iounmap_base;
diff --git a/drivers/clocksource/timer-ep93xx.c b/drivers/clocksource/timer-ep93xx.c
index 6981ff3ac8a9..04eeda15d997 100644
--- a/drivers/clocksource/timer-ep93xx.c
+++ b/drivers/clocksource/timer-ep93xx.c
@@ -141,7 +141,7 @@ static int __init ep93xx_timer_of_init(struct device_node *np)
struct ep93xx_tcu *tcu;
int ret;
- tcu = kzalloc(sizeof(*tcu), GFP_KERNEL);
+ tcu = kzalloc_obj(*tcu, GFP_KERNEL);
if (!tcu)
return -ENOMEM;
diff --git a/drivers/clocksource/timer-fsl-ftm.c b/drivers/clocksource/timer-fsl-ftm.c
index 93f336ec875a..df82307e690c 100644
--- a/drivers/clocksource/timer-fsl-ftm.c
+++ b/drivers/clocksource/timer-fsl-ftm.c
@@ -300,7 +300,7 @@ static int __init ftm_timer_init(struct device_node *np)
unsigned long freq;
int ret, irq;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/clocksource/timer-fttmr010.c b/drivers/clocksource/timer-fttmr010.c
index 126fb1f259b2..e0f7d5976518 100644
--- a/drivers/clocksource/timer-fttmr010.c
+++ b/drivers/clocksource/timer-fttmr010.c
@@ -295,7 +295,7 @@ static int __init fttmr010_common_init(struct device_node *np,
return ret;
}
- fttmr010 = kzalloc(sizeof(*fttmr010), GFP_KERNEL);
+ fttmr010 = kzalloc_obj(*fttmr010, GFP_KERNEL);
if (!fttmr010) {
ret = -ENOMEM;
goto out_disable_clock;
diff --git a/drivers/clocksource/timer-goldfish.c b/drivers/clocksource/timer-goldfish.c
index 0512d5eabc82..60982561e8b6 100644
--- a/drivers/clocksource/timer-goldfish.c
+++ b/drivers/clocksource/timer-goldfish.c
@@ -102,7 +102,7 @@ int __init goldfish_timer_init(int irq, void __iomem *base)
struct goldfish_timer *timerdrv;
int ret;
- timerdrv = kzalloc(sizeof(*timerdrv), GFP_KERNEL);
+ timerdrv = kzalloc_obj(*timerdrv, GFP_KERNEL);
if (!timerdrv)
return -ENOMEM;
diff --git a/drivers/clocksource/timer-gxp.c b/drivers/clocksource/timer-gxp.c
index 48a73c101eb8..7442e9bdd0d5 100644
--- a/drivers/clocksource/timer-gxp.c
+++ b/drivers/clocksource/timer-gxp.c
@@ -76,7 +76,7 @@ static int __init gxp_timer_init(struct device_node *node)
u32 freq;
int ret, irq;
- gxp_timer = kzalloc(sizeof(*gxp_timer), GFP_KERNEL);
+ gxp_timer = kzalloc_obj(*gxp_timer, GFP_KERNEL);
if (!gxp_timer) {
ret = -ENOMEM;
pr_err("Can't allocate gxp_timer");
diff --git a/drivers/clocksource/timer-imx-gpt.c b/drivers/clocksource/timer-imx-gpt.c
index 489e69169ed4..ad310be44cb6 100644
--- a/drivers/clocksource/timer-imx-gpt.c
+++ b/drivers/clocksource/timer-imx-gpt.c
@@ -428,7 +428,7 @@ static int __init mxc_timer_init_dt(struct device_node *np, enum imx_gpt_type t
if (initialized)
return 0;
- imxtm = kzalloc(sizeof(*imxtm), GFP_KERNEL);
+ imxtm = kzalloc_obj(*imxtm, GFP_KERNEL);
if (!imxtm)
return -ENOMEM;
diff --git a/drivers/clocksource/timer-imx-sysctr.c b/drivers/clocksource/timer-imx-sysctr.c
index 44525813be1e..5eb3b3c6d0ad 100644
--- a/drivers/clocksource/timer-imx-sysctr.c
+++ b/drivers/clocksource/timer-imx-sysctr.c
@@ -139,7 +139,7 @@ static int __init __sysctr_timer_init(struct device_node *np)
void __iomem *base;
int ret;
- priv = kzalloc(sizeof(struct sysctr_private), GFP_KERNEL);
+ priv = kzalloc_obj(struct sysctr_private, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/clocksource/timer-ixp4xx.c b/drivers/clocksource/timer-ixp4xx.c
index 720ed70a2964..42f679b1165b 100644
--- a/drivers/clocksource/timer-ixp4xx.c
+++ b/drivers/clocksource/timer-ixp4xx.c
@@ -166,7 +166,7 @@ static __init int ixp4xx_timer_register(void __iomem *base,
struct ixp4xx_timer *tmr;
int ret;
- tmr = kzalloc(sizeof(*tmr), GFP_KERNEL);
+ tmr = kzalloc_obj(*tmr, GFP_KERNEL);
if (!tmr)
return -ENOMEM;
tmr->base = base;
diff --git a/drivers/clocksource/timer-microchip-pit64b.c b/drivers/clocksource/timer-microchip-pit64b.c
index 57209bb38c70..d54a1c91781f 100644
--- a/drivers/clocksource/timer-microchip-pit64b.c
+++ b/drivers/clocksource/timer-microchip-pit64b.c
@@ -350,7 +350,7 @@ static int __init mchp_pit64b_init_clksrc(struct mchp_pit64b_timer *timer,
struct mchp_pit64b_clksrc *cs;
int ret;
- cs = kzalloc(sizeof(*cs), GFP_KERNEL);
+ cs = kzalloc_obj(*cs, GFP_KERNEL);
if (!cs)
return -ENOMEM;
@@ -397,7 +397,7 @@ static int __init mchp_pit64b_init_clkevt(struct mchp_pit64b_timer *timer,
struct mchp_pit64b_clkevt *ce;
int ret;
- ce = kzalloc(sizeof(*ce), GFP_KERNEL);
+ ce = kzalloc_obj(*ce, GFP_KERNEL);
if (!ce)
return -ENOMEM;
diff --git a/drivers/clocksource/timer-msc313e.c b/drivers/clocksource/timer-msc313e.c
index 54c54ca7c786..33822f0bc339 100644
--- a/drivers/clocksource/timer-msc313e.c
+++ b/drivers/clocksource/timer-msc313e.c
@@ -171,7 +171,7 @@ static int __init msc313e_clkevt_init(struct device_node *np)
int ret;
struct timer_of *to;
- to = kzalloc(sizeof(*to), GFP_KERNEL);
+ to = kzalloc_obj(*to, GFP_KERNEL);
if (!to)
return -ENOMEM;
diff --git a/drivers/clocksource/timer-nxp-pit.c b/drivers/clocksource/timer-nxp-pit.c
index d1740f18f718..9109dedab08c 100644
--- a/drivers/clocksource/timer-nxp-pit.c
+++ b/drivers/clocksource/timer-nxp-pit.c
@@ -276,7 +276,7 @@ static int pit_timer_init(struct device_node *np)
unsigned long clk_rate;
int irq, ret;
- pit = kzalloc(sizeof(*pit), GFP_KERNEL);
+ pit = kzalloc_obj(*pit, GFP_KERNEL);
if (!pit)
return -ENOMEM;
diff --git a/drivers/clocksource/timer-rockchip.c b/drivers/clocksource/timer-rockchip.c
index 1f95d0aca08f..c866127ee1e5 100644
--- a/drivers/clocksource/timer-rockchip.c
+++ b/drivers/clocksource/timer-rockchip.c
@@ -207,7 +207,7 @@ static int __init rk_clkevt_init(struct device_node *np)
struct clock_event_device *ce;
int ret = -EINVAL;
- rk_clkevt = kzalloc(sizeof(struct rk_clkevt), GFP_KERNEL);
+ rk_clkevt = kzalloc_obj(struct rk_clkevt, GFP_KERNEL);
if (!rk_clkevt) {
ret = -ENOMEM;
goto out;
@@ -254,7 +254,7 @@ static int __init rk_clksrc_init(struct device_node *np)
{
int ret = -EINVAL;
- rk_clksrc = kzalloc(sizeof(struct rk_timer), GFP_KERNEL);
+ rk_clksrc = kzalloc_obj(struct rk_timer, GFP_KERNEL);
if (!rk_clksrc) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/clocksource/timer-stm32.c b/drivers/clocksource/timer-stm32.c
index 0a4ea3288bfb..4a0f06a419d7 100644
--- a/drivers/clocksource/timer-stm32.c
+++ b/drivers/clocksource/timer-stm32.c
@@ -291,7 +291,7 @@ static int __init stm32_timer_init(struct device_node *node)
struct timer_of *to;
int ret;
- to = kzalloc(sizeof(*to), GFP_KERNEL);
+ to = kzalloc_obj(*to, GFP_KERNEL);
if (!to)
return -ENOMEM;
@@ -302,8 +302,7 @@ static int __init stm32_timer_init(struct device_node *node)
if (ret)
goto err;
- to->private_data = kzalloc(sizeof(struct stm32_timer_private),
- GFP_KERNEL);
+ to->private_data = kzalloc_obj(struct stm32_timer_private, GFP_KERNEL);
if (!to->private_data) {
ret = -ENOMEM;
goto deinit;
diff --git a/drivers/clocksource/timer-ti-dm-systimer.c b/drivers/clocksource/timer-ti-dm-systimer.c
index 985a6d08512b..3bffd7198a38 100644
--- a/drivers/clocksource/timer-ti-dm-systimer.c
+++ b/drivers/clocksource/timer-ti-dm-systimer.c
@@ -600,7 +600,7 @@ static int __init dmtimer_clockevent_init(struct device_node *np)
struct dmtimer_clockevent *clkevt;
int error;
- clkevt = kzalloc(sizeof(*clkevt), GFP_KERNEL);
+ clkevt = kzalloc_obj(*clkevt, GFP_KERNEL);
if (!clkevt)
return -ENOMEM;
@@ -757,7 +757,7 @@ static int __init dmtimer_clocksource_init(struct device_node *np)
struct clocksource *dev;
int error;
- clksrc = kzalloc(sizeof(*clksrc), GFP_KERNEL);
+ clksrc = kzalloc_obj(*clksrc, GFP_KERNEL);
if (!clksrc)
return -ENOMEM;
diff --git a/drivers/clocksource/timer-zevio.c b/drivers/clocksource/timer-zevio.c
index ecaa3568841c..db1ba9b2c2c9 100644
--- a/drivers/clocksource/timer-zevio.c
+++ b/drivers/clocksource/timer-zevio.c
@@ -119,7 +119,7 @@ static int __init zevio_timer_add(struct device_node *node)
struct resource res;
int irqnr, ret;
- timer = kzalloc(sizeof(*timer), GFP_KERNEL);
+ timer = kzalloc_obj(*timer, GFP_KERNEL);
if (!timer)
return -ENOMEM;
diff --git a/drivers/comedi/comedi_buf.c b/drivers/comedi/comedi_buf.c
index 785977b40a93..7215d4b9152b 100644
--- a/drivers/comedi/comedi_buf.c
+++ b/drivers/comedi/comedi_buf.c
@@ -70,7 +70,7 @@ comedi_buf_map_alloc(struct comedi_device *dev, enum dma_data_direction dma_dir,
struct comedi_buf_page *buf;
unsigned int i;
- bm = kzalloc(sizeof(*bm), GFP_KERNEL);
+ bm = kzalloc_obj(*bm, GFP_KERNEL);
if (!bm)
return NULL;
diff --git a/drivers/comedi/comedi_fops.c b/drivers/comedi/comedi_fops.c
index 25aa4296f3b0..627680057812 100644
--- a/drivers/comedi/comedi_fops.c
+++ b/drivers/comedi/comedi_fops.c
@@ -1058,7 +1058,7 @@ static int do_subdinfo_ioctl(struct comedi_device *dev,
struct comedi_subdevice *s;
lockdep_assert_held(&dev->mutex);
- tmp = kcalloc(dev->n_subdevices, sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_objs(*tmp, dev->n_subdevices, GFP_KERNEL);
if (!tmp)
return -ENOMEM;
@@ -2969,7 +2969,7 @@ static int comedi_open(struct inode *inode, struct file *file)
return -ENODEV;
}
- cfp = kzalloc(sizeof(*cfp), GFP_KERNEL);
+ cfp = kzalloc_obj(*cfp, GFP_KERNEL);
if (!cfp) {
comedi_dev_put(dev);
return -ENOMEM;
@@ -3322,7 +3322,7 @@ static int compat_insnlist(struct file *file, unsigned long arg)
rc = check_insnlist_len(dev, insnlist32.n_insns);
if (rc)
return rc;
- insns = kcalloc(insnlist32.n_insns, sizeof(*insns), GFP_KERNEL);
+ insns = kzalloc_objs(*insns, insnlist32.n_insns, GFP_KERNEL);
if (!insns)
return -ENOMEM;
@@ -3505,7 +3505,7 @@ struct comedi_device *comedi_alloc_board_minor(struct device *hardware_device)
struct device *csdev;
unsigned int i;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
comedi_device_init(dev);
diff --git a/drivers/comedi/drivers.c b/drivers/comedi/drivers.c
index 69cd2a253c66..b0e39a04f0b3 100644
--- a/drivers/comedi/drivers.c
+++ b/drivers/comedi/drivers.c
@@ -101,7 +101,7 @@ int comedi_alloc_subdevices(struct comedi_device *dev, int num_subdevices)
if (num_subdevices < 1)
return -EINVAL;
- s = kcalloc(num_subdevices, sizeof(*s), GFP_KERNEL);
+ s = kzalloc_objs(*s, num_subdevices, GFP_KERNEL);
if (!s)
return -ENOMEM;
dev->subdevices = s;
@@ -733,7 +733,7 @@ static int __comedi_device_postconfig_async(struct comedi_device *dev,
dev_warn(dev->class_dev,
"async subdevices should have a cancel() function\n");
- async = kzalloc(sizeof(*async), GFP_KERNEL);
+ async = kzalloc_obj(*async, GFP_KERNEL);
if (!async)
return -ENOMEM;
diff --git a/drivers/comedi/drivers/addi_apci_2032.c b/drivers/comedi/drivers/addi_apci_2032.c
index e048dfc3ec77..b81837cd4ad5 100644
--- a/drivers/comedi/drivers/addi_apci_2032.c
+++ b/drivers/comedi/drivers/addi_apci_2032.c
@@ -274,7 +274,7 @@ static int apci2032_auto_attach(struct comedi_device *dev,
struct apci2032_int_private *subpriv;
dev->read_subdev = s;
- subpriv = kzalloc(sizeof(*subpriv), GFP_KERNEL);
+ subpriv = kzalloc_obj(*subpriv, GFP_KERNEL);
if (!subpriv)
return -ENOMEM;
spin_lock_init(&subpriv->spinlock);
diff --git a/drivers/comedi/drivers/comedi_8254.c b/drivers/comedi/drivers/comedi_8254.c
index 6beca2a6d66e..a748b452d76d 100644
--- a/drivers/comedi/drivers/comedi_8254.c
+++ b/drivers/comedi/drivers/comedi_8254.c
@@ -633,7 +633,7 @@ static struct comedi_8254 *__i8254_init(comedi_8254_iocb_fn *iocb,
if (!iocb)
return ERR_PTR(-EINVAL);
- i8254 = kzalloc(sizeof(*i8254), GFP_KERNEL);
+ i8254 = kzalloc_obj(*i8254, GFP_KERNEL);
if (!i8254)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/comedi/drivers/comedi_bond.c b/drivers/comedi/drivers/comedi_bond.c
index 30650fa36fff..1b530c819fc0 100644
--- a/drivers/comedi/drivers/comedi_bond.c
+++ b/drivers/comedi/drivers/comedi_bond.c
@@ -223,7 +223,7 @@ static int do_dev_config(struct comedi_device *dev, struct comedi_devconfig *it)
nchans, minor, sdev);
return -EINVAL;
}
- bdev = kmalloc(sizeof(*bdev), GFP_KERNEL);
+ bdev = kmalloc_obj(*bdev, GFP_KERNEL);
if (!bdev)
return -ENOMEM;
diff --git a/drivers/comedi/drivers/comedi_isadma.c b/drivers/comedi/drivers/comedi_isadma.c
index 020b3d1e1ac0..259678bfd1f3 100644
--- a/drivers/comedi/drivers/comedi_isadma.c
+++ b/drivers/comedi/drivers/comedi_isadma.c
@@ -161,11 +161,11 @@ struct comedi_isadma *comedi_isadma_alloc(struct comedi_device *dev,
if (n_desc < 1 || n_desc > 2)
goto no_dma;
- dma = kzalloc(sizeof(*dma), GFP_KERNEL);
+ dma = kzalloc_obj(*dma, GFP_KERNEL);
if (!dma)
goto no_dma;
- desc = kcalloc(n_desc, sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_objs(*desc, n_desc, GFP_KERNEL);
if (!desc)
goto no_dma;
dma->desc = desc;
diff --git a/drivers/comedi/drivers/dt9812.c b/drivers/comedi/drivers/dt9812.c
index b37b9d8eca0d..cace17d6e70e 100644
--- a/drivers/comedi/drivers/dt9812.c
+++ b/drivers/comedi/drivers/dt9812.c
@@ -329,7 +329,7 @@ static int dt9812_write_multiple_registers(struct comedi_device *dev,
int i, count;
int ret;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -358,7 +358,7 @@ static int dt9812_rmw_multiple_registers(struct comedi_device *dev,
int i, count;
int ret;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
diff --git a/drivers/comedi/drivers/mite.c b/drivers/comedi/drivers/mite.c
index 88f3cd6f54f1..3a16f4b6a292 100644
--- a/drivers/comedi/drivers/mite.c
+++ b/drivers/comedi/drivers/mite.c
@@ -749,7 +749,7 @@ struct mite_ring *mite_alloc_ring(struct mite *mite)
{
struct mite_ring *ring;
- ring = kmalloc(sizeof(*ring), GFP_KERNEL);
+ ring = kmalloc_obj(*ring, GFP_KERNEL);
if (!ring)
return NULL;
ring->hw_dev = get_device(&mite->pcidev->dev);
@@ -879,7 +879,7 @@ struct mite *mite_attach(struct comedi_device *dev, bool use_win1)
unsigned int i;
int ret;
- mite = kzalloc(sizeof(*mite), GFP_KERNEL);
+ mite = kzalloc_obj(*mite, GFP_KERNEL);
if (!mite)
return NULL;
diff --git a/drivers/comedi/drivers/ni_670x.c b/drivers/comedi/drivers/ni_670x.c
index 563a9c790f12..bc0344d9a07b 100644
--- a/drivers/comedi/drivers/ni_670x.c
+++ b/drivers/comedi/drivers/ni_670x.c
@@ -198,9 +198,8 @@ static int ni_670x_auto_attach(struct comedi_device *dev,
if (s->n_chan == 32) {
const struct comedi_lrange **range_table_list;
- range_table_list = kmalloc_array(32,
- sizeof(*range_table_list),
- GFP_KERNEL);
+ range_table_list = kmalloc_objs(*range_table_list, 32,
+ GFP_KERNEL);
if (!range_table_list)
return -ENOMEM;
s->range_table_list = range_table_list;
diff --git a/drivers/comedi/drivers/ni_tio.c b/drivers/comedi/drivers/ni_tio.c
index da6826d77e60..56b5995e2c58 100644
--- a/drivers/comedi/drivers/ni_tio.c
+++ b/drivers/comedi/drivers/ni_tio.c
@@ -1778,7 +1778,7 @@ ni_gpct_device_construct(struct comedi_device *dev,
if (num_counters == 0 || counters_per_chip == 0)
return NULL;
- counter_dev = kzalloc(sizeof(*counter_dev), GFP_KERNEL);
+ counter_dev = kzalloc_obj(*counter_dev, GFP_KERNEL);
if (!counter_dev)
return NULL;
@@ -1793,10 +1793,9 @@ ni_gpct_device_construct(struct comedi_device *dev,
counter_dev->num_counters = num_counters;
counter_dev->num_chips = DIV_ROUND_UP(num_counters, counters_per_chip);
- counter_dev->counters = kcalloc(num_counters, sizeof(*counter),
- GFP_KERNEL);
- counter_dev->regs = kcalloc(counter_dev->num_chips,
- sizeof(*counter_dev->regs), GFP_KERNEL);
+ counter_dev->counters = kzalloc_objs(*counter, num_counters, GFP_KERNEL);
+ counter_dev->regs = kzalloc_objs(*counter_dev->regs,
+ counter_dev->num_chips, GFP_KERNEL);
if (!counter_dev->regs || !counter_dev->counters) {
kfree(counter_dev->regs);
kfree(counter_dev->counters);
diff --git a/drivers/comedi/drivers/usbduxsigma.c b/drivers/comedi/drivers/usbduxsigma.c
index 3f215ae228b2..bcf9116c4bd7 100644
--- a/drivers/comedi/drivers/usbduxsigma.c
+++ b/drivers/comedi/drivers/usbduxsigma.c
@@ -1336,8 +1336,8 @@ static int usbduxsigma_alloc_usb_buffers(struct comedi_device *dev)
devpriv->dux_commands = kzalloc(SIZEOFDUXBUFFER, GFP_KERNEL);
devpriv->in_buf = kzalloc(SIZEINBUF, GFP_KERNEL);
devpriv->insn_buf = kzalloc(SIZEINSNBUF, GFP_KERNEL);
- devpriv->ai_urbs = kcalloc(devpriv->n_ai_urbs, sizeof(urb), GFP_KERNEL);
- devpriv->ao_urbs = kcalloc(devpriv->n_ao_urbs, sizeof(urb), GFP_KERNEL);
+ devpriv->ai_urbs = kzalloc_objs(urb, devpriv->n_ai_urbs, GFP_KERNEL);
+ devpriv->ao_urbs = kzalloc_objs(urb, devpriv->n_ao_urbs, GFP_KERNEL);
if (!devpriv->dux_commands || !devpriv->in_buf || !devpriv->insn_buf ||
!devpriv->ai_urbs || !devpriv->ao_urbs)
return -ENOMEM;
diff --git a/drivers/connector/cn_proc.c b/drivers/connector/cn_proc.c
index 44b19e696176..7f8bd500eae2 100644
--- a/drivers/connector/cn_proc.c
+++ b/drivers/connector/cn_proc.c
@@ -429,8 +429,8 @@ static void cn_proc_mcast_ctl(struct cn_msg *msg,
if (nsp->sk) {
sk = nsp->sk;
if (sk->sk_user_data == NULL) {
- sk->sk_user_data = kzalloc(sizeof(struct proc_input),
- GFP_KERNEL);
+ sk->sk_user_data = kzalloc_obj(struct proc_input,
+ GFP_KERNEL);
if (sk->sk_user_data == NULL) {
err = ENOMEM;
goto out;
diff --git a/drivers/connector/cn_queue.c b/drivers/connector/cn_queue.c
index 996f025eb63c..3ef917ebc49b 100644
--- a/drivers/connector/cn_queue.c
+++ b/drivers/connector/cn_queue.c
@@ -25,7 +25,7 @@ cn_queue_alloc_callback_entry(struct cn_queue_dev *dev, const char *name,
{
struct cn_callback_entry *cbq;
- cbq = kzalloc(sizeof(*cbq), GFP_KERNEL);
+ cbq = kzalloc_obj(*cbq, GFP_KERNEL);
if (!cbq) {
pr_err("Failed to create new callback queue.\n");
return NULL;
@@ -113,7 +113,7 @@ struct cn_queue_dev *cn_queue_alloc_dev(const char *name, struct sock *nls)
{
struct cn_queue_dev *dev;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return NULL;
diff --git a/drivers/counter/counter-chrdev.c b/drivers/counter/counter-chrdev.c
index 23fdf0caf712..0a4af153e049 100644
--- a/drivers/counter/counter-chrdev.c
+++ b/drivers/counter/counter-chrdev.c
@@ -152,7 +152,7 @@ static int counter_set_event_node(struct counter_device *const counter,
/* If event is not already in the list */
if (&event_node->l == &counter->next_events_list) {
/* Allocate new event node */
- event_node = kmalloc(sizeof(*event_node), GFP_KERNEL);
+ event_node = kmalloc_obj(*event_node, GFP_KERNEL);
if (!event_node)
return -ENOMEM;
@@ -172,7 +172,7 @@ static int counter_set_event_node(struct counter_device *const counter,
}
/* Allocate component node */
- comp_node = kmalloc(sizeof(*comp_node), GFP_KERNEL);
+ comp_node = kmalloc_obj(*comp_node, GFP_KERNEL);
if (!comp_node) {
err = -ENOMEM;
goto exit_free_event_node;
diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
index e73a66785d69..8576c8290ea5 100644
--- a/drivers/cpufreq/acpi-cpufreq.c
+++ b/drivers/cpufreq/acpi-cpufreq.c
@@ -700,7 +700,7 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
return blacklisted;
#endif
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -798,8 +798,8 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
goto err_unreg;
}
- freq_table = kcalloc(perf->state_count + 1, sizeof(*freq_table),
- GFP_KERNEL);
+ freq_table = kzalloc_objs(*freq_table, perf->state_count + 1,
+ GFP_KERNEL);
if (!freq_table) {
result = -ENOMEM;
goto err_unreg;
diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
index ec9f38b219de..dec47f7ce192 100644
--- a/drivers/cpufreq/amd-pstate.c
+++ b/drivers/cpufreq/amd-pstate.c
@@ -993,7 +993,7 @@ static int amd_pstate_cpu_init(struct cpufreq_policy *policy)
if (!dev)
return -ENODEV;
- cpudata = kzalloc(sizeof(*cpudata), GFP_KERNEL);
+ cpudata = kzalloc_obj(*cpudata, GFP_KERNEL);
if (!cpudata)
return -ENOMEM;
@@ -1478,7 +1478,7 @@ static int amd_pstate_epp_cpu_init(struct cpufreq_policy *policy)
if (!dev)
return -ENODEV;
- cpudata = kzalloc(sizeof(*cpudata), GFP_KERNEL);
+ cpudata = kzalloc_obj(*cpudata, GFP_KERNEL);
if (!cpudata)
return -ENOMEM;
diff --git a/drivers/cpufreq/apple-soc-cpufreq.c b/drivers/cpufreq/apple-soc-cpufreq.c
index b1d29b7af232..bf6061e2089a 100644
--- a/drivers/cpufreq/apple-soc-cpufreq.c
+++ b/drivers/cpufreq/apple-soc-cpufreq.c
@@ -276,7 +276,7 @@ static int apple_soc_cpufreq_init(struct cpufreq_policy *policy)
goto out_free_opp;
}
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
ret = -ENOMEM;
goto out_free_opp;
diff --git a/drivers/cpufreq/armada-37xx-cpufreq.c b/drivers/cpufreq/armada-37xx-cpufreq.c
index 0efe403a5980..1b252074b926 100644
--- a/drivers/cpufreq/armada-37xx-cpufreq.c
+++ b/drivers/cpufreq/armada-37xx-cpufreq.c
@@ -467,8 +467,8 @@ static int __init armada37xx_cpufreq_driver_init(void)
return -EINVAL;
}
- armada37xx_cpufreq_state = kmalloc(sizeof(*armada37xx_cpufreq_state),
- GFP_KERNEL);
+ armada37xx_cpufreq_state = kmalloc_obj(*armada37xx_cpufreq_state,
+ GFP_KERNEL);
if (!armada37xx_cpufreq_state) {
clk_put(clk);
return -ENOMEM;
diff --git a/drivers/cpufreq/armada-8k-cpufreq.c b/drivers/cpufreq/armada-8k-cpufreq.c
index d96c1718f7f8..c7d4a15f10bc 100644
--- a/drivers/cpufreq/armada-8k-cpufreq.c
+++ b/drivers/cpufreq/armada-8k-cpufreq.c
@@ -143,7 +143,7 @@ static int __init armada_8k_cpufreq_init(void)
of_node_put(node);
nb_cpus = num_possible_cpus();
- freq_tables = kcalloc(nb_cpus, sizeof(*freq_tables), GFP_KERNEL);
+ freq_tables = kzalloc_objs(*freq_tables, nb_cpus, GFP_KERNEL);
if (!freq_tables)
return -ENOMEM;
cpumask_copy(&cpus, cpu_possible_mask);
diff --git a/drivers/cpufreq/bmips-cpufreq.c b/drivers/cpufreq/bmips-cpufreq.c
index 36051880640b..f8c91796b498 100644
--- a/drivers/cpufreq/bmips-cpufreq.c
+++ b/drivers/cpufreq/bmips-cpufreq.c
@@ -71,7 +71,7 @@ bmips_cpufreq_get_freq_table(const struct cpufreq_policy *policy)
cpu_freq = htp_freq_to_cpu_freq(priv->clk_mult);
- table = kmalloc_array(priv->max_freqs + 1, sizeof(*table), GFP_KERNEL);
+ table = kmalloc_objs(*table, priv->max_freqs + 1, GFP_KERNEL);
if (!table)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/cpufreq/cppc_cpufreq.c b/drivers/cpufreq/cppc_cpufreq.c
index 7e8042efedd1..7abfd2753946 100644
--- a/drivers/cpufreq/cppc_cpufreq.c
+++ b/drivers/cpufreq/cppc_cpufreq.c
@@ -575,7 +575,7 @@ static struct cppc_cpudata *cppc_cpufreq_get_cpu_data(unsigned int cpu)
struct cppc_cpudata *cpu_data;
int ret;
- cpu_data = kzalloc(sizeof(struct cppc_cpudata), GFP_KERNEL);
+ cpu_data = kzalloc_obj(struct cppc_cpudata, GFP_KERNEL);
if (!cpu_data)
goto out;
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index a7a69f4d7675..98035c9fbc17 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1263,7 +1263,7 @@ static struct cpufreq_policy *cpufreq_policy_alloc(unsigned int cpu)
if (!dev)
return NULL;
- policy = kzalloc(sizeof(*policy), GFP_KERNEL);
+ policy = kzalloc_obj(*policy, GFP_KERNEL);
if (!policy)
return NULL;
diff --git a/drivers/cpufreq/cpufreq_conservative.c b/drivers/cpufreq/cpufreq_conservative.c
index cce6a8d113e1..f0c16e615a46 100644
--- a/drivers/cpufreq/cpufreq_conservative.c
+++ b/drivers/cpufreq/cpufreq_conservative.c
@@ -273,7 +273,7 @@ static struct policy_dbs_info *cs_alloc(void)
{
struct cs_policy_dbs_info *dbs_info;
- dbs_info = kzalloc(sizeof(*dbs_info), GFP_KERNEL);
+ dbs_info = kzalloc_obj(*dbs_info, GFP_KERNEL);
return dbs_info ? &dbs_info->policy_dbs : NULL;
}
@@ -286,7 +286,7 @@ static int cs_init(struct dbs_data *dbs_data)
{
struct cs_dbs_tuners *tuners;
- tuners = kzalloc(sizeof(*tuners), GFP_KERNEL);
+ tuners = kzalloc_obj(*tuners, GFP_KERNEL);
if (!tuners)
return -ENOMEM;
diff --git a/drivers/cpufreq/cpufreq_governor.c b/drivers/cpufreq/cpufreq_governor.c
index 1a7fcaf39cc9..1dbb3b10ee83 100644
--- a/drivers/cpufreq/cpufreq_governor.c
+++ b/drivers/cpufreq/cpufreq_governor.c
@@ -429,7 +429,7 @@ int cpufreq_dbs_governor_init(struct cpufreq_policy *policy)
goto out;
}
- dbs_data = kzalloc(sizeof(*dbs_data), GFP_KERNEL);
+ dbs_data = kzalloc_obj(*dbs_data, GFP_KERNEL);
if (!dbs_data) {
ret = -ENOMEM;
goto free_policy_dbs_info;
diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
index bb7db82930e4..ecb5021f46bd 100644
--- a/drivers/cpufreq/cpufreq_ondemand.c
+++ b/drivers/cpufreq/cpufreq_ondemand.c
@@ -322,7 +322,7 @@ static struct policy_dbs_info *od_alloc(void)
{
struct od_policy_dbs_info *dbs_info;
- dbs_info = kzalloc(sizeof(*dbs_info), GFP_KERNEL);
+ dbs_info = kzalloc_obj(*dbs_info, GFP_KERNEL);
return dbs_info ? &dbs_info->policy_dbs : NULL;
}
@@ -335,7 +335,7 @@ static int od_init(struct dbs_data *dbs_data)
{
struct od_dbs_tuners *tuners;
- tuners = kzalloc(sizeof(*tuners), GFP_KERNEL);
+ tuners = kzalloc_obj(*tuners, GFP_KERNEL);
if (!tuners)
return -ENOMEM;
diff --git a/drivers/cpufreq/cpufreq_stats.c b/drivers/cpufreq/cpufreq_stats.c
index 40a9ff18da06..407b8fcf0723 100644
--- a/drivers/cpufreq/cpufreq_stats.c
+++ b/drivers/cpufreq/cpufreq_stats.c
@@ -222,7 +222,7 @@ void cpufreq_stats_create_table(struct cpufreq_policy *policy)
if (policy->stats)
return;
- stats = kzalloc(sizeof(*stats), GFP_KERNEL);
+ stats = kzalloc_obj(*stats, GFP_KERNEL);
if (!stats)
return;
diff --git a/drivers/cpufreq/cpufreq_userspace.c b/drivers/cpufreq/cpufreq_userspace.c
index 4bd62e6c5c51..c8e941b4ec03 100644
--- a/drivers/cpufreq/cpufreq_userspace.c
+++ b/drivers/cpufreq/cpufreq_userspace.c
@@ -58,7 +58,7 @@ static int cpufreq_userspace_policy_init(struct cpufreq_policy *policy)
{
struct userspace_policy *userspace;
- userspace = kzalloc(sizeof(*userspace), GFP_KERNEL);
+ userspace = kzalloc_obj(*userspace, GFP_KERNEL);
if (!userspace)
return -ENOMEM;
diff --git a/drivers/cpufreq/e_powersaver.c b/drivers/cpufreq/e_powersaver.c
index 320a0af2266a..e079f1fed352 100644
--- a/drivers/cpufreq/e_powersaver.c
+++ b/drivers/cpufreq/e_powersaver.c
@@ -55,8 +55,7 @@ static struct acpi_processor_performance *eps_acpi_cpu_perf;
/* Minimum necessary to get acpi_processor_get_bios_limit() working */
static int eps_acpi_init(void)
{
- eps_acpi_cpu_perf = kzalloc(sizeof(*eps_acpi_cpu_perf),
- GFP_KERNEL);
+ eps_acpi_cpu_perf = kzalloc_obj(*eps_acpi_cpu_perf, GFP_KERNEL);
if (!eps_acpi_cpu_perf)
return -ENOMEM;
@@ -321,8 +320,7 @@ static int eps_cpu_init(struct cpufreq_policy *policy)
states = 2;
/* Allocate private data and frequency table for current cpu */
- centaur = kzalloc(struct_size(centaur, freq_table, states + 1),
- GFP_KERNEL);
+ centaur = kzalloc_flex(*centaur, freq_table, states + 1, GFP_KERNEL);
if (!centaur)
return -ENOMEM;
eps_cpu[0] = centaur;
diff --git a/drivers/cpufreq/gx-suspmod.c b/drivers/cpufreq/gx-suspmod.c
index 75b3ef7ec679..ceadf0654838 100644
--- a/drivers/cpufreq/gx-suspmod.c
+++ b/drivers/cpufreq/gx-suspmod.c
@@ -458,7 +458,7 @@ static int __init cpufreq_gx_init(void)
pr_debug("geode suspend modulation available.\n");
- params = kzalloc(sizeof(*params), GFP_KERNEL);
+ params = kzalloc_obj(*params, GFP_KERNEL);
if (params == NULL)
return -ENOMEM;
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
index 1625ec2d0d06..00232f178630 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
@@ -2745,7 +2745,7 @@ static int intel_pstate_init_cpu(unsigned int cpunum)
cpu = all_cpu_data[cpunum];
if (!cpu) {
- cpu = kzalloc(sizeof(*cpu), GFP_KERNEL);
+ cpu = kzalloc_obj(*cpu, GFP_KERNEL);
if (!cpu)
return -ENOMEM;
@@ -3301,7 +3301,7 @@ static int intel_cpufreq_cpu_init(struct cpufreq_policy *policy)
/* This reflects the intel_pstate_get_cpu_pstates() setting. */
policy->cur = policy->cpuinfo.min_freq;
- req = kcalloc(2, sizeof(*req), GFP_KERNEL);
+ req = kzalloc_objs(*req, 2, GFP_KERNEL);
if (!req) {
ret = -ENOMEM;
goto pstate_exit;
diff --git a/drivers/cpufreq/longhaul.c b/drivers/cpufreq/longhaul.c
index 49e76b44468a..d9d9d1c605f7 100644
--- a/drivers/cpufreq/longhaul.c
+++ b/drivers/cpufreq/longhaul.c
@@ -475,8 +475,8 @@ static int longhaul_get_ranges(void)
return -EINVAL;
}
- longhaul_table = kcalloc(numscales + 1, sizeof(*longhaul_table),
- GFP_KERNEL);
+ longhaul_table = kzalloc_objs(*longhaul_table, numscales + 1,
+ GFP_KERNEL);
if (!longhaul_table)
return -ENOMEM;
diff --git a/drivers/cpufreq/powernow-k7.c b/drivers/cpufreq/powernow-k7.c
index 31039330a3ba..77847b52d613 100644
--- a/drivers/cpufreq/powernow-k7.c
+++ b/drivers/cpufreq/powernow-k7.c
@@ -304,7 +304,7 @@ static int powernow_acpi_init(void)
goto err0;
}
- acpi_processor_perf = kzalloc(sizeof(*acpi_processor_perf), GFP_KERNEL);
+ acpi_processor_perf = kzalloc_obj(*acpi_processor_perf, GFP_KERNEL);
if (!acpi_processor_perf) {
retval = -ENOMEM;
goto err0;
diff --git a/drivers/cpufreq/powernow-k8.c b/drivers/cpufreq/powernow-k8.c
index f7512b4e923e..b7c9676c96ef 100644
--- a/drivers/cpufreq/powernow-k8.c
+++ b/drivers/cpufreq/powernow-k8.c
@@ -1029,7 +1029,7 @@ static int powernowk8_cpu_init(struct cpufreq_policy *pol)
if (rc)
return -ENODEV;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/cpufreq/powernv-cpufreq.c b/drivers/cpufreq/powernv-cpufreq.c
index 7d9a5f656de8..7ab29fd8e4e5 100644
--- a/drivers/cpufreq/powernv-cpufreq.c
+++ b/drivers/cpufreq/powernv-cpufreq.c
@@ -323,7 +323,7 @@ static int init_powernv_pstates(void)
powernv_freqs[i].frequency = freq * 1000; /* kHz */
powernv_freqs[i].driver_data = id & 0xFF;
- revmap_data = kmalloc(sizeof(*revmap_data), GFP_KERNEL);
+ revmap_data = kmalloc_obj(*revmap_data, GFP_KERNEL);
if (!revmap_data) {
rc = -ENOMEM;
goto out;
@@ -857,7 +857,7 @@ static int powernv_cpufreq_cpu_init(struct cpufreq_policy *policy)
return 0;
/* Initialise Gpstate ramp-down timer only on POWER8 */
- gpstates = kzalloc(sizeof(*gpstates), GFP_KERNEL);
+ gpstates = kzalloc_obj(*gpstates, GFP_KERNEL);
if (!gpstates)
return -ENOMEM;
@@ -1053,7 +1053,7 @@ static int init_chip_info(void)
return -ENOMEM;
/* Allocate a chip cpu mask large enough to fit mask for all chips */
- chip_cpu_mask = kcalloc(MAX_NR_CHIPS, sizeof(cpumask_t), GFP_KERNEL);
+ chip_cpu_mask = kzalloc_objs(cpumask_t, MAX_NR_CHIPS, GFP_KERNEL);
if (!chip_cpu_mask) {
ret = -ENOMEM;
goto free_and_return;
@@ -1069,7 +1069,7 @@ static int init_chip_info(void)
cpumask_set_cpu(cpu, &chip_cpu_mask[nr_chips-1]);
}
- chips = kcalloc(nr_chips, sizeof(struct chip), GFP_KERNEL);
+ chips = kzalloc_objs(struct chip, nr_chips, GFP_KERNEL);
if (!chips) {
ret = -ENOMEM;
goto out_free_chip_cpu_mask;
diff --git a/drivers/cpufreq/pxa3xx-cpufreq.c b/drivers/cpufreq/pxa3xx-cpufreq.c
index 4afa48d172db..839a55bee151 100644
--- a/drivers/cpufreq/pxa3xx-cpufreq.c
+++ b/drivers/cpufreq/pxa3xx-cpufreq.c
@@ -110,7 +110,7 @@ static int setup_freqs_table(struct cpufreq_policy *policy,
struct cpufreq_frequency_table *table;
int i;
- table = kcalloc(num + 1, sizeof(*table), GFP_KERNEL);
+ table = kzalloc_objs(*table, num + 1, GFP_KERNEL);
if (table == NULL)
return -ENOMEM;
diff --git a/drivers/cpufreq/qcom-cpufreq-hw.c b/drivers/cpufreq/qcom-cpufreq-hw.c
index 8422704a3b10..3dbf432efaeb 100644
--- a/drivers/cpufreq/qcom-cpufreq-hw.c
+++ b/drivers/cpufreq/qcom-cpufreq-hw.c
@@ -211,7 +211,7 @@ static int qcom_cpufreq_hw_read_lut(struct device *cpu_dev,
struct qcom_cpufreq_data *drv_data = policy->driver_data;
const struct qcom_cpufreq_soc_data *soc_data = qcom_cpufreq.soc_data;
- table = kcalloc(LUT_MAX_ENTRIES + 1, sizeof(*table), GFP_KERNEL);
+ table = kzalloc_objs(*table, LUT_MAX_ENTRIES + 1, GFP_KERNEL);
if (!table)
return -ENOMEM;
diff --git a/drivers/cpufreq/qoriq-cpufreq.c b/drivers/cpufreq/qoriq-cpufreq.c
index 8d1f5ac59132..df560851ffa8 100644
--- a/drivers/cpufreq/qoriq-cpufreq.c
+++ b/drivers/cpufreq/qoriq-cpufreq.c
@@ -168,7 +168,7 @@ static int qoriq_cpufreq_cpu_init(struct cpufreq_policy *policy)
if (!np)
return -ENODEV;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
goto err_np;
@@ -181,11 +181,11 @@ static int qoriq_cpufreq_cpu_init(struct cpufreq_policy *policy)
hwclk = __clk_get_hw(policy->clk);
count = clk_hw_get_num_parents(hwclk);
- data->pclk = kcalloc(count, sizeof(struct clk *), GFP_KERNEL);
+ data->pclk = kzalloc_objs(struct clk *, count, GFP_KERNEL);
if (!data->pclk)
goto err_nomem2;
- table = kcalloc(count + 1, sizeof(*table), GFP_KERNEL);
+ table = kzalloc_objs(*table, count + 1, GFP_KERNEL);
if (!table)
goto err_pclk;
diff --git a/drivers/cpufreq/scmi-cpufreq.c b/drivers/cpufreq/scmi-cpufreq.c
index c7a3b038385b..9c0a903f4fb0 100644
--- a/drivers/cpufreq/scmi-cpufreq.c
+++ b/drivers/cpufreq/scmi-cpufreq.c
@@ -214,7 +214,7 @@ static int scmi_cpufreq_init(struct cpufreq_policy *policy)
if (domain < 0)
return domain;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/cpufreq/scpi-cpufreq.c b/drivers/cpufreq/scpi-cpufreq.c
index e530345baddf..1799e40596b7 100644
--- a/drivers/cpufreq/scpi-cpufreq.c
+++ b/drivers/cpufreq/scpi-cpufreq.c
@@ -128,7 +128,7 @@ static int scpi_cpufreq_init(struct cpufreq_policy *policy)
goto out_free_opp;
}
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
ret = -ENOMEM;
goto out_free_opp;
diff --git a/drivers/cpufreq/sparc-us2e-cpufreq.c b/drivers/cpufreq/sparc-us2e-cpufreq.c
index 15899dd77c08..6c26cf0a7f64 100644
--- a/drivers/cpufreq/sparc-us2e-cpufreq.c
+++ b/drivers/cpufreq/sparc-us2e-cpufreq.c
@@ -323,8 +323,8 @@ static int __init us2e_freq_init(void)
impl = ((ver >> 32) & 0xffff);
if (manuf == 0x17 && impl == 0x13) {
- us2e_freq_table = kcalloc(NR_CPUS, sizeof(*us2e_freq_table),
- GFP_KERNEL);
+ us2e_freq_table = kzalloc_objs(*us2e_freq_table, NR_CPUS,
+ GFP_KERNEL);
if (!us2e_freq_table)
return -ENOMEM;
diff --git a/drivers/cpufreq/sparc-us3-cpufreq.c b/drivers/cpufreq/sparc-us3-cpufreq.c
index de50a2f3b124..ae0f4f92c610 100644
--- a/drivers/cpufreq/sparc-us3-cpufreq.c
+++ b/drivers/cpufreq/sparc-us3-cpufreq.c
@@ -171,8 +171,8 @@ static int __init us3_freq_init(void)
impl == CHEETAH_PLUS_IMPL ||
impl == JAGUAR_IMPL ||
impl == PANTHER_IMPL)) {
- us3_freq_table = kcalloc(NR_CPUS, sizeof(*us3_freq_table),
- GFP_KERNEL);
+ us3_freq_table = kzalloc_objs(*us3_freq_table, NR_CPUS,
+ GFP_KERNEL);
if (!us3_freq_table)
return -ENOMEM;
diff --git a/drivers/cpufreq/spear-cpufreq.c b/drivers/cpufreq/spear-cpufreq.c
index 2a1550e1aa21..9a52d8030449 100644
--- a/drivers/cpufreq/spear-cpufreq.c
+++ b/drivers/cpufreq/spear-cpufreq.c
@@ -191,7 +191,7 @@ static int spear_cpufreq_probe(struct platform_device *pdev)
goto out_put_node;
}
- freq_tbl = kcalloc(cnt + 1, sizeof(*freq_tbl), GFP_KERNEL);
+ freq_tbl = kzalloc_objs(*freq_tbl, cnt + 1, GFP_KERNEL);
if (!freq_tbl) {
ret = -ENOMEM;
goto out_put_node;
diff --git a/drivers/cpufreq/sun50i-cpufreq-nvmem.c b/drivers/cpufreq/sun50i-cpufreq-nvmem.c
index 4fffc8e83692..f4e5a09103d2 100644
--- a/drivers/cpufreq/sun50i-cpufreq-nvmem.c
+++ b/drivers/cpufreq/sun50i-cpufreq-nvmem.c
@@ -244,8 +244,7 @@ static int sun50i_cpufreq_nvmem_probe(struct platform_device *pdev)
int speed;
int ret;
- opp_tokens = kcalloc(num_possible_cpus(), sizeof(*opp_tokens),
- GFP_KERNEL);
+ opp_tokens = kzalloc_objs(*opp_tokens, num_possible_cpus(), GFP_KERNEL);
if (!opp_tokens)
return -ENOMEM;
diff --git a/drivers/cpufreq/tegra186-cpufreq.c b/drivers/cpufreq/tegra186-cpufreq.c
index 34ed943c5f34..5c2f134f8033 100644
--- a/drivers/cpufreq/tegra186-cpufreq.c
+++ b/drivers/cpufreq/tegra186-cpufreq.c
@@ -135,7 +135,7 @@ static int tegra_cpufreq_init_cpufreq_table(struct cpufreq_policy *policy,
dev_pm_opp_disable(cpu_dev, rate);
}
- freq_table = kcalloc((max_opps + 1), sizeof(*freq_table), GFP_KERNEL);
+ freq_table = kzalloc_objs(*freq_table, (max_opps + 1), GFP_KERNEL);
if (!freq_table)
return -ENOMEM;
diff --git a/drivers/cpufreq/tegra194-cpufreq.c b/drivers/cpufreq/tegra194-cpufreq.c
index 695599e1001f..22f51dc2fa67 100644
--- a/drivers/cpufreq/tegra194-cpufreq.c
+++ b/drivers/cpufreq/tegra194-cpufreq.c
@@ -463,7 +463,7 @@ static int tegra_cpufreq_init_cpufreq_table(struct cpufreq_policy *policy,
return ret;
}
- freq_table = kcalloc((max_opps + 1), sizeof(*freq_table), GFP_KERNEL);
+ freq_table = kzalloc_objs(*freq_table, (max_opps + 1), GFP_KERNEL);
if (!freq_table)
return -ENOMEM;
diff --git a/drivers/cpufreq/vexpress-spc-cpufreq.c b/drivers/cpufreq/vexpress-spc-cpufreq.c
index 65fea47b82e6..894f801b1b41 100644
--- a/drivers/cpufreq/vexpress-spc-cpufreq.c
+++ b/drivers/cpufreq/vexpress-spc-cpufreq.c
@@ -252,7 +252,7 @@ static int merge_cluster_tables(void)
for (i = 0; i < MAX_CLUSTERS; i++)
count += get_table_count(freq_table[i]);
- table = kcalloc(count, sizeof(*table), GFP_KERNEL);
+ table = kzalloc_objs(*table, count, GFP_KERNEL);
if (!table)
return -ENOMEM;
diff --git a/drivers/cpufreq/virtual-cpufreq.c b/drivers/cpufreq/virtual-cpufreq.c
index 6ffa16d239b2..92da4d5606e1 100644
--- a/drivers/cpufreq/virtual-cpufreq.c
+++ b/drivers/cpufreq/virtual-cpufreq.c
@@ -171,7 +171,7 @@ static int virt_cpufreq_get_freq_info(struct cpufreq_policy *policy)
return 0;
}
- table = kcalloc(num_perftbl_entries + 1, sizeof(*table), GFP_KERNEL);
+ table = kzalloc_objs(*table, num_perftbl_entries + 1, GFP_KERNEL);
if (!table)
return -ENOMEM;
diff --git a/drivers/cpuidle/coupled.c b/drivers/cpuidle/coupled.c
index bb8761c8a42e..e22df988bb07 100644
--- a/drivers/cpuidle/coupled.c
+++ b/drivers/cpuidle/coupled.c
@@ -651,7 +651,7 @@ int cpuidle_coupled_register_device(struct cpuidle_device *dev)
}
/* No existing coupled info found, create a new one */
- coupled = kzalloc(sizeof(struct cpuidle_coupled), GFP_KERNEL);
+ coupled = kzalloc_obj(struct cpuidle_coupled, GFP_KERNEL);
if (!coupled)
return -ENOMEM;
diff --git a/drivers/cpuidle/cpuidle-psci-domain.c b/drivers/cpuidle/cpuidle-psci-domain.c
index 37c41209eaf9..a53ad31f9b3d 100644
--- a/drivers/cpuidle/cpuidle-psci-domain.c
+++ b/drivers/cpuidle/cpuidle-psci-domain.c
@@ -55,7 +55,7 @@ static int psci_pd_init(struct device_node *np, bool use_osi)
if (!pd)
goto out;
- pd_provider = kzalloc(sizeof(*pd_provider), GFP_KERNEL);
+ pd_provider = kzalloc_obj(*pd_provider, GFP_KERNEL);
if (!pd_provider)
goto free_pd;
diff --git a/drivers/cpuidle/cpuidle-riscv-sbi.c b/drivers/cpuidle/cpuidle-riscv-sbi.c
index 19be6475d356..875c4697b953 100644
--- a/drivers/cpuidle/cpuidle-riscv-sbi.c
+++ b/drivers/cpuidle/cpuidle-riscv-sbi.c
@@ -380,7 +380,7 @@ static int sbi_pd_init(struct device_node *np)
if (!pd)
goto out;
- pd_provider = kzalloc(sizeof(*pd_provider), GFP_KERNEL);
+ pd_provider = kzalloc_obj(*pd_provider, GFP_KERNEL);
if (!pd_provider)
goto free_pd;
diff --git a/drivers/cpuidle/dt_idle_genpd.c b/drivers/cpuidle/dt_idle_genpd.c
index 203e9b754aea..6b1f6d4686a7 100644
--- a/drivers/cpuidle/dt_idle_genpd.c
+++ b/drivers/cpuidle/dt_idle_genpd.c
@@ -95,7 +95,7 @@ struct generic_pm_domain *dt_idle_pd_alloc(struct device_node *np,
struct genpd_power_state *states = NULL;
int ret, state_count = 0;
- pd = kzalloc(sizeof(*pd), GFP_KERNEL);
+ pd = kzalloc_obj(*pd, GFP_KERNEL);
if (!pd)
goto out;
diff --git a/drivers/cpuidle/sysfs.c b/drivers/cpuidle/sysfs.c
index 61de64817604..abee6f73a6e1 100644
--- a/drivers/cpuidle/sysfs.c
+++ b/drivers/cpuidle/sysfs.c
@@ -482,7 +482,7 @@ static int cpuidle_add_state_sysfs(struct cpuidle_device *device)
/* state statistics */
for (i = 0; i < drv->state_count; i++) {
- kobj = kzalloc(sizeof(struct cpuidle_state_kobj), GFP_KERNEL);
+ kobj = kzalloc_obj(struct cpuidle_state_kobj, GFP_KERNEL);
if (!kobj) {
ret = -ENOMEM;
goto error_state;
@@ -618,7 +618,7 @@ static int cpuidle_add_driver_sysfs(struct cpuidle_device *dev)
struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev);
int ret;
- kdrv = kzalloc(sizeof(*kdrv), GFP_KERNEL);
+ kdrv = kzalloc_obj(*kdrv, GFP_KERNEL);
if (!kdrv)
return -ENOMEM;
@@ -712,7 +712,7 @@ int cpuidle_add_sysfs(struct cpuidle_device *dev)
if (!cpu_dev)
return -ENODEV;
- kdev = kzalloc(sizeof(*kdev), GFP_KERNEL);
+ kdev = kzalloc_obj(*kdev, GFP_KERNEL);
if (!kdev)
return -ENOMEM;
kdev->dev = dev;
diff --git a/drivers/crypto/amcc/crypto4xx_core.c b/drivers/crypto/amcc/crypto4xx_core.c
index 8cdc66d520c9..772509993079 100644
--- a/drivers/crypto/amcc/crypto4xx_core.c
+++ b/drivers/crypto/amcc/crypto4xx_core.c
@@ -173,8 +173,8 @@ static u32 crypto4xx_build_pdr(struct crypto4xx_device *dev)
if (!dev->pdr)
return -ENOMEM;
- dev->pdr_uinfo = kcalloc(PPC4XX_NUM_PD, sizeof(struct pd_uinfo),
- GFP_KERNEL);
+ dev->pdr_uinfo = kzalloc_objs(struct pd_uinfo, PPC4XX_NUM_PD,
+ GFP_KERNEL);
if (!dev->pdr_uinfo) {
dma_free_coherent(dev->core_dev->device,
sizeof(struct ce_pd) * PPC4XX_NUM_PD,
@@ -974,7 +974,7 @@ static int crypto4xx_register_alg(struct crypto4xx_device *sec_dev,
int rc = 0;
for (i = 0; i < array_size; i++) {
- alg = kzalloc(sizeof(struct crypto4xx_alg), GFP_KERNEL);
+ alg = kzalloc_obj(struct crypto4xx_alg, GFP_KERNEL);
if (!alg)
return -ENOMEM;
diff --git a/drivers/crypto/amcc/crypto4xx_trng.c b/drivers/crypto/amcc/crypto4xx_trng.c
index f10a87e541ed..6738cdbaded9 100644
--- a/drivers/crypto/amcc/crypto4xx_trng.c
+++ b/drivers/crypto/amcc/crypto4xx_trng.c
@@ -87,7 +87,7 @@ void ppc4xx_trng_probe(struct crypto4xx_core_device *core_dev)
if (!dev->trng_base)
goto err_out;
- rng = kzalloc(sizeof(*rng), GFP_KERNEL);
+ rng = kzalloc_obj(*rng, GFP_KERNEL);
if (!rng)
goto err_out;
diff --git a/drivers/crypto/atmel-ecc.c b/drivers/crypto/atmel-ecc.c
index 0d48e64d28b1..d19694400693 100644
--- a/drivers/crypto/atmel-ecc.c
+++ b/drivers/crypto/atmel-ecc.c
@@ -99,7 +99,7 @@ static int atmel_ecdh_set_secret(struct crypto_kpp *tfm, const void *buf,
return crypto_kpp_set_secret(ctx->fallback, buf, len);
}
- cmd = kmalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kmalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -182,7 +182,7 @@ static int atmel_ecdh_compute_shared_secret(struct kpp_request *req)
gfp = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ? GFP_KERNEL :
GFP_ATOMIC;
- work_data = kmalloc(sizeof(*work_data), gfp);
+ work_data = kmalloc_obj(*work_data, gfp);
if (!work_data)
return -ENOMEM;
diff --git a/drivers/crypto/atmel-i2c.c b/drivers/crypto/atmel-i2c.c
index 9688d116d07e..27dd37997872 100644
--- a/drivers/crypto/atmel-i2c.c
+++ b/drivers/crypto/atmel-i2c.c
@@ -321,7 +321,7 @@ static int device_sanity_check(struct i2c_client *client)
struct atmel_i2c_cmd *cmd;
int ret;
- cmd = kmalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kmalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
diff --git a/drivers/crypto/atmel-sha.c b/drivers/crypto/atmel-sha.c
index b02a71061708..a925c7afbbdb 100644
--- a/drivers/crypto/atmel-sha.c
+++ b/drivers/crypto/atmel-sha.c
@@ -2207,7 +2207,7 @@ struct atmel_sha_authenc_ctx *atmel_sha_authenc_spawn(unsigned long mode)
tctx->start = atmel_sha_authenc_start;
tctx->flags = mode;
- auth = kzalloc(sizeof(*auth), GFP_KERNEL);
+ auth = kzalloc_obj(*auth, GFP_KERNEL);
if (!auth) {
err = -ENOMEM;
goto err_free_ahash;
diff --git a/drivers/crypto/atmel-sha204a.c b/drivers/crypto/atmel-sha204a.c
index 0fcf4a39de27..8adc7fe71c04 100644
--- a/drivers/crypto/atmel-sha204a.c
+++ b/drivers/crypto/atmel-sha204a.c
@@ -51,7 +51,7 @@ static int atmel_sha204a_rng_read_nonblocking(struct hwrng *rng, void *data,
memcpy(data, &work_data->cmd.data, max);
rng->priv = 0;
} else {
- work_data = kmalloc(sizeof(*work_data), GFP_ATOMIC);
+ work_data = kmalloc_obj(*work_data, GFP_ATOMIC);
if (!work_data)
return -ENOMEM;
diff --git a/drivers/crypto/bcm/cipher.c b/drivers/crypto/bcm/cipher.c
index 6b80d033648e..2bce15dc0aa8 100644
--- a/drivers/crypto/bcm/cipher.c
+++ b/drivers/crypto/bcm/cipher.c
@@ -141,8 +141,7 @@ spu_skcipher_rx_sg_create(struct brcm_message *mssg,
struct iproc_ctx_s *ctx = rctx->ctx;
u32 datalen; /* Number of bytes of response data expected */
- mssg->spu.dst = kmalloc_array(rx_frag_num, sizeof(struct scatterlist),
- rctx->gfp);
+ mssg->spu.dst = kmalloc_objs(struct scatterlist, rx_frag_num, rctx->gfp);
if (!mssg->spu.dst)
return -ENOMEM;
@@ -205,8 +204,7 @@ spu_skcipher_tx_sg_create(struct brcm_message *mssg,
u32 datalen; /* Number of bytes of response data expected */
u32 stat_len;
- mssg->spu.src = kmalloc_array(tx_frag_num, sizeof(struct scatterlist),
- rctx->gfp);
+ mssg->spu.src = kmalloc_objs(struct scatterlist, tx_frag_num, rctx->gfp);
if (unlikely(!mssg->spu.src))
return -ENOMEM;
@@ -532,8 +530,7 @@ spu_ahash_rx_sg_create(struct brcm_message *mssg,
struct scatterlist *sg; /* used to build sgs in mbox message */
struct iproc_ctx_s *ctx = rctx->ctx;
- mssg->spu.dst = kmalloc_array(rx_frag_num, sizeof(struct scatterlist),
- rctx->gfp);
+ mssg->spu.dst = kmalloc_objs(struct scatterlist, rx_frag_num, rctx->gfp);
if (!mssg->spu.dst)
return -ENOMEM;
@@ -587,8 +584,7 @@ spu_ahash_tx_sg_create(struct brcm_message *mssg,
u32 datalen; /* Number of bytes of response data expected */
u32 stat_len;
- mssg->spu.src = kmalloc_array(tx_frag_num, sizeof(struct scatterlist),
- rctx->gfp);
+ mssg->spu.src = kmalloc_objs(struct scatterlist, tx_frag_num, rctx->gfp);
if (!mssg->spu.src)
return -ENOMEM;
@@ -1077,8 +1073,7 @@ static int spu_aead_rx_sg_create(struct brcm_message *mssg,
/* have to catch gcm pad in separate buffer */
rx_frag_num++;
- mssg->spu.dst = kmalloc_array(rx_frag_num, sizeof(struct scatterlist),
- rctx->gfp);
+ mssg->spu.dst = kmalloc_objs(struct scatterlist, rx_frag_num, rctx->gfp);
if (!mssg->spu.dst)
return -ENOMEM;
@@ -1179,8 +1174,7 @@ static int spu_aead_tx_sg_create(struct brcm_message *mssg,
u32 assoc_offset = 0;
u32 stat_len;
- mssg->spu.src = kmalloc_array(tx_frag_num, sizeof(struct scatterlist),
- rctx->gfp);
+ mssg->spu.src = kmalloc_objs(struct scatterlist, tx_frag_num, rctx->gfp);
if (!mssg->spu.src)
return -ENOMEM;
diff --git a/drivers/crypto/caam/caamalg_qi2.c b/drivers/crypto/caam/caamalg_qi2.c
index c6117c23eb25..810917475c4f 100644
--- a/drivers/crypto/caam/caamalg_qi2.c
+++ b/drivers/crypto/caam/caamalg_qi2.c
@@ -3224,14 +3224,14 @@ static int hash_digest_key(struct caam_hash_ctx *ctx, u32 *keylen, u8 *key,
int ret = -ENOMEM;
struct dpaa2_fl_entry *in_fle, *out_fle;
- req_ctx = kzalloc(sizeof(*req_ctx), GFP_KERNEL);
+ req_ctx = kzalloc_obj(*req_ctx, GFP_KERNEL);
if (!req_ctx)
return -ENOMEM;
in_fle = &req_ctx->fd_flt[1];
out_fle = &req_ctx->fd_flt[0];
- flc = kzalloc(sizeof(*flc), GFP_KERNEL);
+ flc = kzalloc_obj(*flc, GFP_KERNEL);
if (!flc)
goto err_flc;
@@ -4635,7 +4635,7 @@ static struct caam_hash_alg *caam_hash_alloc(struct device *dev,
struct ahash_alg *halg;
struct crypto_alg *alg;
- t_alg = kzalloc(sizeof(*t_alg), GFP_KERNEL);
+ t_alg = kzalloc_obj(*t_alg, GFP_KERNEL);
if (!t_alg)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/crypto/caam/caamhash.c b/drivers/crypto/caam/caamhash.c
index 25c02e267258..cee9034aa87b 100644
--- a/drivers/crypto/caam/caamhash.c
+++ b/drivers/crypto/caam/caamhash.c
@@ -709,7 +709,7 @@ static struct ahash_edesc *ahash_edesc_alloc(struct ahash_request *req,
struct ahash_edesc *edesc;
sg_num = pad_sg_nents(sg_num);
- edesc = kzalloc(struct_size(edesc, sec4_sg, sg_num), flags);
+ edesc = kzalloc_flex(*edesc, sec4_sg, sg_num, flags);
if (!edesc)
return NULL;
@@ -1904,7 +1904,7 @@ caam_hash_alloc(struct caam_hash_template *template,
struct ahash_alg *halg;
struct crypto_alg *alg;
- t_alg = kzalloc(sizeof(*t_alg), GFP_KERNEL);
+ t_alg = kzalloc_obj(*t_alg, GFP_KERNEL);
if (!t_alg)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/crypto/caam/qi.c b/drivers/crypto/caam/qi.c
index 1e731ed8702b..a4e1984053da 100644
--- a/drivers/crypto/caam/qi.c
+++ b/drivers/crypto/caam/qi.c
@@ -181,7 +181,7 @@ static struct qman_fq *create_caam_req_fq(struct device *qidev,
struct qman_fq *req_fq;
struct qm_mcc_initfq opts;
- req_fq = kzalloc(sizeof(*req_fq), GFP_ATOMIC);
+ req_fq = kzalloc_obj(*req_fq, GFP_ATOMIC);
if (!req_fq)
return ERR_PTR(-ENOMEM);
@@ -416,7 +416,7 @@ struct caam_drv_ctx *caam_drv_ctx_init(struct device *qidev,
return ERR_PTR(-EINVAL);
}
- drv_ctx = kzalloc(sizeof(*drv_ctx), GFP_ATOMIC);
+ drv_ctx = kzalloc_obj(*drv_ctx, GFP_ATOMIC);
if (!drv_ctx)
return ERR_PTR(-ENOMEM);
@@ -619,7 +619,7 @@ static int alloc_rsp_fq_cpu(struct device *qidev, unsigned int cpu)
struct qman_fq *fq;
int ret;
- fq = kzalloc(sizeof(*fq), GFP_KERNEL);
+ fq = kzalloc_obj(*fq, GFP_KERNEL);
if (!fq)
return -ENOMEM;
diff --git a/drivers/crypto/cavium/cpt/cptvf_main.c b/drivers/crypto/cavium/cpt/cptvf_main.c
index bccd680c7f7e..41084767c577 100644
--- a/drivers/crypto/cavium/cpt/cptvf_main.c
+++ b/drivers/crypto/cavium/cpt/cptvf_main.c
@@ -35,7 +35,7 @@ static int init_worker_threads(struct cpt_vf *cptvf)
struct cptvf_wqe_info *cwqe_info;
int i;
- cwqe_info = kzalloc(sizeof(*cwqe_info), GFP_KERNEL);
+ cwqe_info = kzalloc_obj(*cwqe_info, GFP_KERNEL);
if (!cwqe_info)
return -ENOMEM;
@@ -111,7 +111,7 @@ static int alloc_pending_queues(struct pending_qinfo *pqinfo, u32 qlen,
pqinfo->qlen = qlen;
for_each_pending_queue(pqinfo, queue, i) {
- queue->head = kcalloc(qlen, sizeof(*queue->head), GFP_KERNEL);
+ queue->head = kzalloc_objs(*queue->head, qlen, GFP_KERNEL);
if (!queue->head) {
ret = -ENOMEM;
goto pending_qfail;
@@ -225,7 +225,7 @@ static int alloc_command_queues(struct cpt_vf *cptvf,
queue = &cqinfo->queue[i];
INIT_HLIST_HEAD(&cqinfo->queue[i].chead);
do {
- curr = kzalloc(sizeof(*curr), GFP_KERNEL);
+ curr = kzalloc_obj(*curr, GFP_KERNEL);
if (!curr)
goto cmd_qfail;
diff --git a/drivers/crypto/cavium/cpt/cptvf_reqmanager.c b/drivers/crypto/cavium/cpt/cptvf_reqmanager.c
index fb59bb282455..e183b60277ff 100644
--- a/drivers/crypto/cavium/cpt/cptvf_reqmanager.c
+++ b/drivers/crypto/cavium/cpt/cptvf_reqmanager.c
@@ -417,7 +417,7 @@ int process_request(struct cpt_vf *cptvf, struct cpt_request_info *req)
struct cpt_vq_command vq_cmd;
union cpt_inst_s cptinst;
- info = kzalloc(sizeof(*info), req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
+ info = kzalloc_obj(*info, req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
if (unlikely(!info)) {
dev_err(&pdev->dev, "Unable to allocate memory for info_buffer\n");
return -ENOMEM;
diff --git a/drivers/crypto/cavium/nitrox/nitrox_isr.c b/drivers/crypto/cavium/nitrox/nitrox_isr.c
index f19e520da6d0..5ffb1aa90cba 100644
--- a/drivers/crypto/cavium/nitrox/nitrox_isr.c
+++ b/drivers/crypto/cavium/nitrox/nitrox_isr.c
@@ -320,7 +320,7 @@ int nitrox_register_interrupts(struct nitrox_device *ndev)
}
ndev->num_vecs = nr_vecs;
- ndev->qvec = kcalloc(nr_vecs, sizeof(*qvec), GFP_KERNEL);
+ ndev->qvec = kzalloc_objs(*qvec, nr_vecs, GFP_KERNEL);
if (!ndev->qvec) {
pci_free_irq_vectors(pdev);
return -ENOMEM;
@@ -424,7 +424,7 @@ int nitrox_sriov_register_interupts(struct nitrox_device *ndev)
return ret;
}
- qvec = kcalloc(NR_NON_RING_VECTORS, sizeof(*qvec), GFP_KERNEL);
+ qvec = kzalloc_objs(*qvec, NR_NON_RING_VECTORS, GFP_KERNEL);
if (!qvec) {
pci_disable_msix(pdev);
return -ENOMEM;
diff --git a/drivers/crypto/cavium/nitrox/nitrox_lib.c b/drivers/crypto/cavium/nitrox/nitrox_lib.c
index 068265207ddd..31eb8c874257 100644
--- a/drivers/crypto/cavium/nitrox/nitrox_lib.c
+++ b/drivers/crypto/cavium/nitrox/nitrox_lib.c
@@ -219,7 +219,7 @@ void *crypto_alloc_context(struct nitrox_device *ndev)
void *vaddr;
dma_addr_t dma;
- chdr = kmalloc(sizeof(*chdr), GFP_KERNEL);
+ chdr = kmalloc_obj(*chdr, GFP_KERNEL);
if (!chdr)
return NULL;
diff --git a/drivers/crypto/cavium/nitrox/nitrox_main.c b/drivers/crypto/cavium/nitrox/nitrox_main.c
index 65114f766e7d..d0e1e34a7b8b 100644
--- a/drivers/crypto/cavium/nitrox/nitrox_main.c
+++ b/drivers/crypto/cavium/nitrox/nitrox_main.c
@@ -441,7 +441,7 @@ static int nitrox_probe(struct pci_dev *pdev,
goto flr_fail;
pci_set_master(pdev);
- ndev = kzalloc(sizeof(*ndev), GFP_KERNEL);
+ ndev = kzalloc_obj(*ndev, GFP_KERNEL);
if (!ndev) {
err = -ENOMEM;
goto ndev_fail;
diff --git a/drivers/crypto/cavium/nitrox/nitrox_mbx.c b/drivers/crypto/cavium/nitrox/nitrox_mbx.c
index a6a76e50ba84..a9e290a23dfe 100644
--- a/drivers/crypto/cavium/nitrox/nitrox_mbx.c
+++ b/drivers/crypto/cavium/nitrox/nitrox_mbx.c
@@ -139,7 +139,7 @@ void nitrox_pf2vf_mbox_handler(struct nitrox_device *ndev)
vfdev->ring = i;
/* fill the vf mailbox data */
vfdev->msg.value = pf2vf_read_mbox(ndev, vfdev->ring);
- pfwork = kzalloc(sizeof(*pfwork), GFP_ATOMIC);
+ pfwork = kzalloc_obj(*pfwork, GFP_ATOMIC);
if (!pfwork)
continue;
@@ -163,7 +163,7 @@ void nitrox_pf2vf_mbox_handler(struct nitrox_device *ndev)
/* fill the vf mailbox data */
vfdev->msg.value = pf2vf_read_mbox(ndev, vfdev->ring);
- pfwork = kzalloc(sizeof(*pfwork), GFP_ATOMIC);
+ pfwork = kzalloc_obj(*pfwork, GFP_ATOMIC);
if (!pfwork)
continue;
@@ -181,8 +181,8 @@ int nitrox_mbox_init(struct nitrox_device *ndev)
struct nitrox_vfdev *vfdev;
int i;
- ndev->iov.vfdev = kcalloc(ndev->iov.num_vfs,
- sizeof(struct nitrox_vfdev), GFP_KERNEL);
+ ndev->iov.vfdev = kzalloc_objs(struct nitrox_vfdev, ndev->iov.num_vfs,
+ GFP_KERNEL);
if (!ndev->iov.vfdev)
return -ENOMEM;
diff --git a/drivers/crypto/cavium/nitrox/nitrox_reqmgr.c b/drivers/crypto/cavium/nitrox/nitrox_reqmgr.c
index 55c18da4a500..6a1bdae73d1a 100644
--- a/drivers/crypto/cavium/nitrox/nitrox_reqmgr.c
+++ b/drivers/crypto/cavium/nitrox/nitrox_reqmgr.c
@@ -390,7 +390,7 @@ int nitrox_process_se_request(struct nitrox_device *ndev,
if (!nitrox_ready(ndev))
return -ENODEV;
- sr = kzalloc(sizeof(*sr), req->gfp);
+ sr = kzalloc_obj(*sr, req->gfp);
if (!sr)
return -ENOMEM;
diff --git a/drivers/crypto/ccp/ccp-crypto-aes-cmac.c b/drivers/crypto/ccp/ccp-crypto-aes-cmac.c
index 71480f7e6f6b..240bcfa26c62 100644
--- a/drivers/crypto/ccp/ccp-crypto-aes-cmac.c
+++ b/drivers/crypto/ccp/ccp-crypto-aes-cmac.c
@@ -354,7 +354,7 @@ int ccp_register_aes_cmac_algs(struct list_head *head)
struct crypto_alg *base;
int ret;
- ccp_alg = kzalloc(sizeof(*ccp_alg), GFP_KERNEL);
+ ccp_alg = kzalloc_obj(*ccp_alg, GFP_KERNEL);
if (!ccp_alg)
return -ENOMEM;
diff --git a/drivers/crypto/ccp/ccp-crypto-aes-galois.c b/drivers/crypto/ccp/ccp-crypto-aes-galois.c
index b1dbb8cea559..db5c498f379b 100644
--- a/drivers/crypto/ccp/ccp-crypto-aes-galois.c
+++ b/drivers/crypto/ccp/ccp-crypto-aes-galois.c
@@ -212,7 +212,7 @@ static int ccp_register_aes_aead(struct list_head *head,
struct aead_alg *alg;
int ret;
- ccp_aead = kzalloc(sizeof(*ccp_aead), GFP_KERNEL);
+ ccp_aead = kzalloc_obj(*ccp_aead, GFP_KERNEL);
if (!ccp_aead)
return -ENOMEM;
diff --git a/drivers/crypto/ccp/ccp-crypto-aes-xts.c b/drivers/crypto/ccp/ccp-crypto-aes-xts.c
index 93f735d6b02b..5cd8c2d270c3 100644
--- a/drivers/crypto/ccp/ccp-crypto-aes-xts.c
+++ b/drivers/crypto/ccp/ccp-crypto-aes-xts.c
@@ -231,7 +231,7 @@ static int ccp_register_aes_xts_alg(struct list_head *head,
struct skcipher_alg *alg;
int ret;
- ccp_alg = kzalloc(sizeof(*ccp_alg), GFP_KERNEL);
+ ccp_alg = kzalloc_obj(*ccp_alg, GFP_KERNEL);
if (!ccp_alg)
return -ENOMEM;
diff --git a/drivers/crypto/ccp/ccp-crypto-aes.c b/drivers/crypto/ccp/ccp-crypto-aes.c
index 685d42ec7ade..97ce93434953 100644
--- a/drivers/crypto/ccp/ccp-crypto-aes.c
+++ b/drivers/crypto/ccp/ccp-crypto-aes.c
@@ -294,7 +294,7 @@ static int ccp_register_aes_alg(struct list_head *head,
struct skcipher_alg *alg;
int ret;
- ccp_alg = kzalloc(sizeof(*ccp_alg), GFP_KERNEL);
+ ccp_alg = kzalloc_obj(*ccp_alg, GFP_KERNEL);
if (!ccp_alg)
return -ENOMEM;
diff --git a/drivers/crypto/ccp/ccp-crypto-des3.c b/drivers/crypto/ccp/ccp-crypto-des3.c
index 91b1189c47de..8c0f903c3330 100644
--- a/drivers/crypto/ccp/ccp-crypto-des3.c
+++ b/drivers/crypto/ccp/ccp-crypto-des3.c
@@ -182,7 +182,7 @@ static int ccp_register_des3_alg(struct list_head *head,
struct skcipher_alg *alg;
int ret;
- ccp_alg = kzalloc(sizeof(*ccp_alg), GFP_KERNEL);
+ ccp_alg = kzalloc_obj(*ccp_alg, GFP_KERNEL);
if (!ccp_alg)
return -ENOMEM;
diff --git a/drivers/crypto/ccp/ccp-crypto-main.c b/drivers/crypto/ccp/ccp-crypto-main.c
index bc90aba5162a..698e39ab107f 100644
--- a/drivers/crypto/ccp/ccp-crypto-main.c
+++ b/drivers/crypto/ccp/ccp-crypto-main.c
@@ -275,7 +275,7 @@ int ccp_crypto_enqueue_request(struct crypto_async_request *req,
gfp = req->flags & CRYPTO_TFM_REQ_MAY_SLEEP ? GFP_KERNEL : GFP_ATOMIC;
- crypto_cmd = kzalloc(sizeof(*crypto_cmd), gfp);
+ crypto_cmd = kzalloc_obj(*crypto_cmd, gfp);
if (!crypto_cmd)
return -ENOMEM;
diff --git a/drivers/crypto/ccp/ccp-crypto-rsa.c b/drivers/crypto/ccp/ccp-crypto-rsa.c
index a14f85512cf4..80d9ddc1f644 100644
--- a/drivers/crypto/ccp/ccp-crypto-rsa.c
+++ b/drivers/crypto/ccp/ccp-crypto-rsa.c
@@ -249,7 +249,7 @@ static int ccp_register_rsa_alg(struct list_head *head,
struct akcipher_alg *alg;
int ret;
- ccp_alg = kzalloc(sizeof(*ccp_alg), GFP_KERNEL);
+ ccp_alg = kzalloc_obj(*ccp_alg, GFP_KERNEL);
if (!ccp_alg)
return -ENOMEM;
diff --git a/drivers/crypto/ccp/ccp-crypto-sha.c b/drivers/crypto/ccp/ccp-crypto-sha.c
index fa3ae8e78f6f..91d0d8ea182b 100644
--- a/drivers/crypto/ccp/ccp-crypto-sha.c
+++ b/drivers/crypto/ccp/ccp-crypto-sha.c
@@ -418,7 +418,7 @@ static int ccp_register_hmac_alg(struct list_head *head,
struct crypto_alg *base;
int ret;
- ccp_alg = kzalloc(sizeof(*ccp_alg), GFP_KERNEL);
+ ccp_alg = kzalloc_obj(*ccp_alg, GFP_KERNEL);
if (!ccp_alg)
return -ENOMEM;
@@ -462,7 +462,7 @@ static int ccp_register_sha_alg(struct list_head *head,
struct crypto_alg *base;
int ret;
- ccp_alg = kzalloc(sizeof(*ccp_alg), GFP_KERNEL);
+ ccp_alg = kzalloc_obj(*ccp_alg, GFP_KERNEL);
if (!ccp_alg)
return -ENOMEM;
diff --git a/drivers/crypto/ccp/ccp-ops.c b/drivers/crypto/ccp/ccp-ops.c
index d0412e584762..0170edef5b43 100644
--- a/drivers/crypto/ccp/ccp-ops.c
+++ b/drivers/crypto/ccp/ccp-ops.c
@@ -642,7 +642,7 @@ ccp_run_aes_gcm_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_cmd *cmd)
struct ccp_data dst;
struct ccp_data aad;
struct ccp_op op;
- } *wa __free(kfree) = kzalloc(sizeof(*wa), GFP_KERNEL);
+ } *wa __free(kfree) = kzalloc_obj(*wa, GFP_KERNEL);
unsigned int dm_offset;
unsigned int authsize;
unsigned int jobid;
diff --git a/drivers/crypto/ccp/hsti.c b/drivers/crypto/ccp/hsti.c
index 4b44729a019e..404829c41a13 100644
--- a/drivers/crypto/ccp/hsti.c
+++ b/drivers/crypto/ccp/hsti.c
@@ -87,7 +87,7 @@ static int psp_populate_hsti(struct psp_device *psp)
return 0;
/* Allocate command-response buffer */
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/drivers/crypto/ccp/sev-dev-tio.c b/drivers/crypto/ccp/sev-dev-tio.c
index 9a98f98c20a7..d51bb67460b0 100644
--- a/drivers/crypto/ccp/sev-dev-tio.c
+++ b/drivers/crypto/ccp/sev-dev-tio.c
@@ -330,7 +330,7 @@ static struct sla_buffer_hdr *sla_buffer_map(struct sla_addr_t sla)
if (WARN_ON_ONCE(!npages))
return NULL;
- struct page **pp = kmalloc_array(npages, sizeof(pp[0]), GFP_KERNEL);
+ struct page **pp = kmalloc_objs(pp[0], npages, GFP_KERNEL);
if (!pp)
return NULL;
diff --git a/drivers/crypto/ccp/sev-dev-tsm.c b/drivers/crypto/ccp/sev-dev-tsm.c
index 3cdc38e84500..a3e7a9bca95b 100644
--- a/drivers/crypto/ccp/sev-dev-tsm.c
+++ b/drivers/crypto/ccp/sev-dev-tsm.c
@@ -207,7 +207,7 @@ static int stream_alloc(struct pci_dev *pdev, struct pci_ide **ide,
static struct pci_tsm *tio_pf0_probe(struct pci_dev *pdev, struct sev_device *sev)
{
- struct tio_dsm *dsm __free(kfree) = kzalloc(sizeof(*dsm), GFP_KERNEL);
+ struct tio_dsm *dsm __free(kfree) = kzalloc_obj(*dsm, GFP_KERNEL);
int rc;
if (!dsm)
@@ -341,7 +341,7 @@ static struct pci_tsm_ops sev_tsm_ops = {
void sev_tsm_init_locked(struct sev_device *sev, void *tio_status_page)
{
- struct sev_tio_status *t = kzalloc(sizeof(*t), GFP_KERNEL);
+ struct sev_tio_status *t = kzalloc_obj(*t, GFP_KERNEL);
struct tsm_dev *tsmdev;
int ret;
diff --git a/drivers/crypto/ccp/sev-dev.c b/drivers/crypto/ccp/sev-dev.c
index 1cdadddb744e..4dc642ecde76 100644
--- a/drivers/crypto/ccp/sev-dev.c
+++ b/drivers/crypto/ccp/sev-dev.c
@@ -1144,7 +1144,7 @@ struct page *snp_alloc_hv_fixed_pages(unsigned int num_2mb_pages)
if (!page)
return NULL;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
__free_pages(page, order);
return NULL;
@@ -2658,7 +2658,7 @@ static int sev_misc_init(struct sev_device *sev)
if (!misc_dev) {
struct miscdevice *misc;
- misc_dev = kzalloc(sizeof(*misc_dev), GFP_KERNEL);
+ misc_dev = kzalloc_obj(*misc_dev, GFP_KERNEL);
if (!misc_dev)
return -ENOMEM;
diff --git a/drivers/crypto/ccp/sfs.c b/drivers/crypto/ccp/sfs.c
index 2f4beaafe7ec..c98900672ea8 100644
--- a/drivers/crypto/ccp/sfs.c
+++ b/drivers/crypto/ccp/sfs.c
@@ -223,7 +223,7 @@ static int sfs_misc_init(struct sfs_device *sfs)
if (!misc_dev) {
struct miscdevice *misc;
- misc_dev = kzalloc(sizeof(*misc_dev), GFP_KERNEL);
+ misc_dev = kzalloc_obj(*misc_dev, GFP_KERNEL);
if (!misc_dev)
return -ENOMEM;
diff --git a/drivers/crypto/ccp/tee-dev.c b/drivers/crypto/ccp/tee-dev.c
index 92ffa412622a..50716472586a 100644
--- a/drivers/crypto/ccp/tee-dev.c
+++ b/drivers/crypto/ccp/tee-dev.c
@@ -67,7 +67,7 @@ struct tee_init_ring_cmd *tee_alloc_cmd_buffer(struct psp_tee_device *tee)
{
struct tee_init_ring_cmd *cmd;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return NULL;
diff --git a/drivers/crypto/ccree/cc_request_mgr.c b/drivers/crypto/ccree/cc_request_mgr.c
index 887162df50f9..31fc0d37db21 100644
--- a/drivers/crypto/ccree/cc_request_mgr.c
+++ b/drivers/crypto/ccree/cc_request_mgr.c
@@ -116,7 +116,7 @@ int cc_req_mgr_init(struct cc_drvdata *drvdata)
struct device *dev = drvdata_to_dev(drvdata);
int rc = 0;
- req_mgr_h = kzalloc(sizeof(*req_mgr_h), GFP_KERNEL);
+ req_mgr_h = kzalloc_obj(*req_mgr_h, GFP_KERNEL);
if (!req_mgr_h) {
rc = -ENOMEM;
goto req_mgr_init_err;
@@ -426,7 +426,7 @@ int cc_send_request(struct cc_drvdata *drvdata, struct cc_crypto_req *cc_req,
if (rc == -ENOSPC && backlog_ok) {
spin_unlock_bh(&mgr->hw_lock);
- bli = kmalloc(sizeof(*bli), flags);
+ bli = kmalloc_obj(*bli, flags);
if (!bli) {
cc_pm_put_suspend(dev);
return -ENOMEM;
diff --git a/drivers/crypto/chelsio/chcr_core.c b/drivers/crypto/chelsio/chcr_core.c
index 39c70e6255f9..a1a0034780c5 100644
--- a/drivers/crypto/chelsio/chcr_core.c
+++ b/drivers/crypto/chelsio/chcr_core.c
@@ -189,7 +189,7 @@ static void *chcr_uld_add(const struct cxgb4_lld_info *lld)
return ERR_PTR(-EOPNOTSUPP);
/* Create the device and add it in the device list */
- u_ctx = kzalloc(sizeof(*u_ctx), GFP_KERNEL);
+ u_ctx = kzalloc_obj(*u_ctx, GFP_KERNEL);
if (!u_ctx) {
u_ctx = ERR_PTR(-ENOMEM);
goto out;
diff --git a/drivers/crypto/hifn_795x.c b/drivers/crypto/hifn_795x.c
index edf36f6add52..19f0bf3f3f92 100644
--- a/drivers/crypto/hifn_795x.c
+++ b/drivers/crypto/hifn_795x.c
@@ -2248,7 +2248,7 @@ static int hifn_alg_alloc(struct hifn_device *dev, const struct hifn_alg_templat
struct hifn_crypto_alg *alg;
int err;
- alg = kzalloc(sizeof(*alg), GFP_KERNEL);
+ alg = kzalloc_obj(*alg, GFP_KERNEL);
if (!alg)
return -ENOMEM;
diff --git a/drivers/crypto/hisilicon/debugfs.c b/drivers/crypto/hisilicon/debugfs.c
index 17eb236e9ee4..b7c5c4ade11f 100644
--- a/drivers/crypto/hisilicon/debugfs.c
+++ b/drivers/crypto/hisilicon/debugfs.c
@@ -838,7 +838,7 @@ static struct dfx_diff_registers *dfx_regs_init(struct hisi_qm *qm,
u32 j, base_offset;
int i;
- diff_regs = kcalloc(reg_len, sizeof(*diff_regs), GFP_KERNEL);
+ diff_regs = kzalloc_objs(*diff_regs, reg_len, GFP_KERNEL);
if (!diff_regs)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/crypto/hisilicon/qm.c b/drivers/crypto/hisilicon/qm.c
index 571d0d250242..07421f53a7ee 100644
--- a/drivers/crypto/hisilicon/qm.c
+++ b/drivers/crypto/hisilicon/qm.c
@@ -2722,7 +2722,7 @@ static int qm_hw_err_isolate(struct hisi_qm *qm)
if (qm->uacce->is_vf || isolate->is_isolate || !isolate->err_threshold)
return 0;
- hw_err = kzalloc(sizeof(*hw_err), GFP_KERNEL);
+ hw_err = kzalloc_obj(*hw_err, GFP_KERNEL);
if (!hw_err)
return -ENOMEM;
@@ -3747,7 +3747,7 @@ static int hisi_qm_sort_devices(int node, struct list_head *head,
if (dev_node < 0)
dev_node = 0;
- res = kzalloc(sizeof(*res), GFP_KERNEL);
+ res = kzalloc_obj(*res, GFP_KERNEL);
if (!res)
return -ENOMEM;
@@ -5767,11 +5767,12 @@ static int hisi_qp_alloc_memory(struct hisi_qm *qm)
size_t qp_dma_size;
int i, ret;
- qm->qp_array = kcalloc(qm->qp_num, sizeof(struct hisi_qp), GFP_KERNEL);
+ qm->qp_array = kzalloc_objs(struct hisi_qp, qm->qp_num, GFP_KERNEL);
if (!qm->qp_array)
return -ENOMEM;
- qm->poll_data = kcalloc(qm->qp_num, sizeof(struct hisi_qm_poll_data), GFP_KERNEL);
+ qm->poll_data = kzalloc_objs(struct hisi_qm_poll_data, qm->qp_num,
+ GFP_KERNEL);
if (!qm->poll_data) {
kfree(qm->qp_array);
return -ENOMEM;
@@ -5836,7 +5837,8 @@ static int hisi_qm_memory_init(struct hisi_qm *qm)
if (test_bit(QM_SUPPORT_FUNC_QOS, &qm->caps)) {
total_func = pci_sriov_get_totalvfs(qm->pdev) + 1;
- qm->factor = kcalloc(total_func, sizeof(struct qm_shaper_factor), GFP_KERNEL);
+ qm->factor = kzalloc_objs(struct qm_shaper_factor, total_func,
+ GFP_KERNEL);
if (!qm->factor)
return -ENOMEM;
diff --git a/drivers/crypto/hisilicon/sec/sec_algs.c b/drivers/crypto/hisilicon/sec/sec_algs.c
index 1189effcdad0..54e24fd7b9be 100644
--- a/drivers/crypto/hisilicon/sec/sec_algs.c
+++ b/drivers/crypto/hisilicon/sec/sec_algs.c
@@ -553,7 +553,7 @@ static int sec_alg_alloc_and_calc_split_sizes(int length, size_t **split_sizes,
/* Split into suitable sized blocks */
*steps = roundup(length, SEC_REQ_LIMIT) / SEC_REQ_LIMIT;
- sizes = kcalloc(*steps, sizeof(*sizes), gfp);
+ sizes = kzalloc_objs(*sizes, *steps, gfp);
if (!sizes)
return -ENOMEM;
@@ -577,12 +577,12 @@ static int sec_map_and_split_sg(struct scatterlist *sgl, size_t *split_sizes,
if (!count)
return -EINVAL;
- *splits = kcalloc(steps, sizeof(struct scatterlist *), gfp);
+ *splits = kzalloc_objs(struct scatterlist *, steps, gfp);
if (!*splits) {
ret = -ENOMEM;
goto err_unmap_sg;
}
- *splits_nents = kcalloc(steps, sizeof(int), gfp);
+ *splits_nents = kzalloc_objs(int, steps, gfp);
if (!*splits_nents) {
ret = -ENOMEM;
goto err_free_splits;
@@ -637,7 +637,7 @@ static struct sec_request_el
struct sec_bd_info *req;
int ret;
- el = kzalloc(sizeof(*el), gfp);
+ el = kzalloc_obj(*el, gfp);
if (!el)
return ERR_PTR(-ENOMEM);
el->el_length = el_size;
diff --git a/drivers/crypto/hisilicon/sec2/sec_crypto.c b/drivers/crypto/hisilicon/sec2/sec_crypto.c
index c462b58d3034..c8b71945f9f8 100644
--- a/drivers/crypto/hisilicon/sec2/sec_crypto.c
+++ b/drivers/crypto/hisilicon/sec2/sec_crypto.c
@@ -569,11 +569,11 @@ static int sec_alloc_qp_ctx_resource(struct sec_ctx *ctx, struct sec_qp_ctx *qp_
struct device *dev = ctx->dev;
int ret = -ENOMEM;
- qp_ctx->req_list = kcalloc(q_depth, sizeof(struct sec_req *), GFP_KERNEL);
+ qp_ctx->req_list = kzalloc_objs(struct sec_req *, q_depth, GFP_KERNEL);
if (!qp_ctx->req_list)
return ret;
- qp_ctx->res = kcalloc(q_depth, sizeof(struct sec_alg_res), GFP_KERNEL);
+ qp_ctx->res = kzalloc_objs(struct sec_alg_res, q_depth, GFP_KERNEL);
if (!qp_ctx->res)
goto err_free_req_list;
qp_ctx->res->depth = q_depth;
@@ -672,8 +672,8 @@ static int sec_ctx_base_init(struct sec_ctx *ctx)
ctx->hlf_q_num = sec->ctx_q_num >> 1;
ctx->pbuf_supported = ctx->sec->iommu_used;
- ctx->qp_ctx = kcalloc(sec->ctx_q_num, sizeof(struct sec_qp_ctx),
- GFP_KERNEL);
+ ctx->qp_ctx = kzalloc_objs(struct sec_qp_ctx, sec->ctx_q_num,
+ GFP_KERNEL);
if (!ctx->qp_ctx) {
ret = -ENOMEM;
goto err_destroy_qps;
diff --git a/drivers/crypto/hisilicon/sec2/sec_main.c b/drivers/crypto/hisilicon/sec2/sec_main.c
index 7dd125f5f511..a4db14adc6da 100644
--- a/drivers/crypto/hisilicon/sec2/sec_main.c
+++ b/drivers/crypto/hisilicon/sec2/sec_main.c
@@ -420,7 +420,7 @@ struct hisi_qp **sec_create_qps(void)
u8 *type;
int ret;
- qps = kcalloc(ctx_num, sizeof(struct hisi_qp *), GFP_KERNEL);
+ qps = kzalloc_objs(struct hisi_qp *, ctx_num, GFP_KERNEL);
if (!qps)
return NULL;
diff --git a/drivers/crypto/hisilicon/sgl.c b/drivers/crypto/hisilicon/sgl.c
index d41b34405c21..ab20665cbfbc 100644
--- a/drivers/crypto/hisilicon/sgl.c
+++ b/drivers/crypto/hisilicon/sgl.c
@@ -83,7 +83,7 @@ struct hisi_acc_sgl_pool *hisi_acc_create_sgl_pool(struct device *dev,
(remain_sgl > 0 && block_num > HISI_ACC_MEM_BLOCK_NR - 1))
return ERR_PTR(-EINVAL);
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return ERR_PTR(-ENOMEM);
block = pool->mem_block;
diff --git a/drivers/crypto/hisilicon/zip/zip_crypto.c b/drivers/crypto/hisilicon/zip/zip_crypto.c
index 98a68e44ac34..0bb65e140809 100644
--- a/drivers/crypto/hisilicon/zip/zip_crypto.c
+++ b/drivers/crypto/hisilicon/zip/zip_crypto.c
@@ -479,8 +479,8 @@ static int hisi_zip_create_req_q(struct hisi_zip_ctx *ctx)
}
spin_lock_init(&req_q->req_lock);
- req_q->q = kcalloc(req_q->size, sizeof(struct hisi_zip_req),
- GFP_KERNEL);
+ req_q->q = kzalloc_objs(struct hisi_zip_req, req_q->size,
+ GFP_KERNEL);
if (!req_q->q) {
ret = -ENOMEM;
if (i == 0)
diff --git a/drivers/crypto/inside-secure/eip93/eip93-aead.c b/drivers/crypto/inside-secure/eip93/eip93-aead.c
index 18dd8a9a5165..8d72644fdc74 100644
--- a/drivers/crypto/inside-secure/eip93/eip93-aead.c
+++ b/drivers/crypto/inside-secure/eip93/eip93-aead.c
@@ -70,7 +70,7 @@ static int eip93_aead_cra_init(struct crypto_tfm *tfm)
ctx->type = tmpl->type;
ctx->set_assoc = true;
- ctx->sa_record = kzalloc(sizeof(*ctx->sa_record), GFP_KERNEL);
+ ctx->sa_record = kzalloc_obj(*ctx->sa_record, GFP_KERNEL);
if (!ctx->sa_record)
return -ENOMEM;
diff --git a/drivers/crypto/inside-secure/eip93/eip93-cipher.c b/drivers/crypto/inside-secure/eip93/eip93-cipher.c
index 1f2d6846610f..74f4abeba646 100644
--- a/drivers/crypto/inside-secure/eip93/eip93-cipher.c
+++ b/drivers/crypto/inside-secure/eip93/eip93-cipher.c
@@ -61,7 +61,7 @@ static int eip93_skcipher_cra_init(struct crypto_tfm *tfm)
ctx->eip93 = tmpl->eip93;
ctx->type = tmpl->type;
- ctx->sa_record = kzalloc(sizeof(*ctx->sa_record), GFP_KERNEL);
+ ctx->sa_record = kzalloc_obj(*ctx->sa_record, GFP_KERNEL);
if (!ctx->sa_record)
return -ENOMEM;
diff --git a/drivers/crypto/inside-secure/eip93/eip93-common.c b/drivers/crypto/inside-secure/eip93/eip93-common.c
index 66153aa2493f..b19afd311c84 100644
--- a/drivers/crypto/inside-secure/eip93/eip93-common.c
+++ b/drivers/crypto/inside-secure/eip93/eip93-common.c
@@ -152,7 +152,7 @@ static int eip93_make_sg_copy(struct scatterlist *src, struct scatterlist **dst,
{
void *pages;
- *dst = kmalloc(sizeof(**dst), GFP_KERNEL);
+ *dst = kmalloc_obj(**dst, GFP_KERNEL);
if (!*dst)
return -ENOMEM;
diff --git a/drivers/crypto/inside-secure/eip93/eip93-hash.c b/drivers/crypto/inside-secure/eip93/eip93-hash.c
index ac13d90a2b7c..2705855475b2 100644
--- a/drivers/crypto/inside-secure/eip93/eip93-hash.c
+++ b/drivers/crypto/inside-secure/eip93/eip93-hash.c
@@ -332,7 +332,7 @@ static int __eip93_hash_update(struct ahash_request *req, bool complete_req)
* and then reset to SHA256_BLOCK_SIZE.
*/
while (to_consume > max_read) {
- block = kzalloc(sizeof(*block), GFP_ATOMIC);
+ block = kzalloc_obj(*block, GFP_ATOMIC);
if (!block) {
ret = -ENOMEM;
goto free_blocks;
diff --git a/drivers/crypto/inside-secure/safexcel.c b/drivers/crypto/inside-secure/safexcel.c
index c3b2b22934b7..077da171fdf2 100644
--- a/drivers/crypto/inside-secure/safexcel.c
+++ b/drivers/crypto/inside-secure/safexcel.c
@@ -1889,7 +1889,7 @@ static int safexcel_pci_probe(struct pci_dev *pdev,
ent->vendor, ent->device, ent->subvendor,
ent->subdevice, ent->driver_data);
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/crypto/inside-secure/safexcel_hash.c b/drivers/crypto/inside-secure/safexcel_hash.c
index e534b7a200cf..f84def61ceb0 100644
--- a/drivers/crypto/inside-secure/safexcel_hash.c
+++ b/drivers/crypto/inside-secure/safexcel_hash.c
@@ -2008,7 +2008,7 @@ static int safexcel_xcbcmac_cra_init(struct crypto_tfm *tfm)
struct safexcel_ahash_ctx *ctx = crypto_tfm_ctx(tfm);
safexcel_ahash_cra_init(tfm);
- ctx->aes = kmalloc(sizeof(*ctx->aes), GFP_KERNEL);
+ ctx->aes = kmalloc_obj(*ctx->aes, GFP_KERNEL);
return ctx->aes == NULL ? -ENOMEM : 0;
}
diff --git a/drivers/crypto/intel/iaa/iaa_crypto_main.c b/drivers/crypto/intel/iaa/iaa_crypto_main.c
index f79ea22e9abe..bcd2bfcc19af 100644
--- a/drivers/crypto/intel/iaa/iaa_crypto_main.c
+++ b/drivers/crypto/intel/iaa/iaa_crypto_main.c
@@ -335,7 +335,7 @@ int add_iaa_compression_mode(const char *name,
goto out;
}
- mode = kzalloc(sizeof(*mode), GFP_KERNEL);
+ mode = kzalloc_obj(*mode, GFP_KERNEL);
if (!mode)
goto out;
@@ -422,7 +422,7 @@ static int init_device_compression_mode(struct iaa_device *iaa_device,
struct iaa_device_compression_mode *device_mode;
int ret = -ENOMEM;
- device_mode = kzalloc(sizeof(*device_mode), GFP_KERNEL);
+ device_mode = kzalloc_obj(*device_mode, GFP_KERNEL);
if (!device_mode)
return -ENOMEM;
@@ -503,7 +503,7 @@ static struct iaa_device *iaa_device_alloc(void)
{
struct iaa_device *iaa_device;
- iaa_device = kzalloc(sizeof(*iaa_device), GFP_KERNEL);
+ iaa_device = kzalloc_obj(*iaa_device, GFP_KERNEL);
if (!iaa_device)
return NULL;
@@ -561,7 +561,7 @@ static int add_iaa_wq(struct iaa_device *iaa_device, struct idxd_wq *wq,
struct device *dev = &pdev->dev;
struct iaa_wq *iaa_wq;
- iaa_wq = kzalloc(sizeof(*iaa_wq), GFP_KERNEL);
+ iaa_wq = kzalloc_obj(*iaa_wq, GFP_KERNEL);
if (!iaa_wq)
return -ENOMEM;
@@ -718,7 +718,7 @@ static int alloc_wq_table(int max_wqs)
for (cpu = 0; cpu < nr_cpus; cpu++) {
entry = per_cpu_ptr(wq_table, cpu);
- entry->wqs = kcalloc(max_wqs, sizeof(*entry->wqs), GFP_KERNEL);
+ entry->wqs = kzalloc_objs(*entry->wqs, max_wqs, GFP_KERNEL);
if (!entry->wqs) {
free_wq_table();
return -ENOMEM;
diff --git a/drivers/crypto/intel/keembay/ocs-hcu.c b/drivers/crypto/intel/keembay/ocs-hcu.c
index 55a41e6ab103..2c9e523361df 100644
--- a/drivers/crypto/intel/keembay/ocs-hcu.c
+++ b/drivers/crypto/intel/keembay/ocs-hcu.c
@@ -491,7 +491,7 @@ struct ocs_hcu_dma_list *ocs_hcu_dma_list_alloc(struct ocs_hcu_dev *hcu_dev,
{
struct ocs_hcu_dma_list *dma_list;
- dma_list = kmalloc(sizeof(*dma_list), GFP_KERNEL);
+ dma_list = kmalloc_obj(*dma_list, GFP_KERNEL);
if (!dma_list)
return NULL;
diff --git a/drivers/crypto/intel/qat/qat_common/adf_accel_engine.c b/drivers/crypto/intel/qat/qat_common/adf_accel_engine.c
index 4b5d0350fc2e..935f4f9d8a7c 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_accel_engine.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_accel_engine.c
@@ -178,7 +178,7 @@ int adf_ae_init(struct adf_accel_dev *accel_dev)
if (!hw_device->fw_name)
return 0;
- loader_data = kzalloc(sizeof(*loader_data), GFP_KERNEL);
+ loader_data = kzalloc_obj(*loader_data, GFP_KERNEL);
if (!loader_data)
return -ENOMEM;
diff --git a/drivers/crypto/intel/qat/qat_common/adf_aer.c b/drivers/crypto/intel/qat/qat_common/adf_aer.c
index a5964fd8204c..a65e88d28f53 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_aer.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_aer.c
@@ -160,7 +160,7 @@ static int adf_dev_aer_schedule_reset(struct adf_accel_dev *accel_dev,
return 0;
set_bit(ADF_STATUS_RESTARTING, &accel_dev->status);
- reset_data = kzalloc(sizeof(*reset_data), GFP_KERNEL);
+ reset_data = kzalloc_obj(*reset_data, GFP_KERNEL);
if (!reset_data)
return -ENOMEM;
reset_data->accel_dev = accel_dev;
@@ -258,7 +258,7 @@ int adf_notify_fatal_error(struct adf_accel_dev *accel_dev)
{
struct adf_fatal_error_data *wq_data;
- wq_data = kzalloc(sizeof(*wq_data), GFP_ATOMIC);
+ wq_data = kzalloc_obj(*wq_data, GFP_ATOMIC);
if (!wq_data)
return -ENOMEM;
diff --git a/drivers/crypto/intel/qat/qat_common/adf_cfg.c b/drivers/crypto/intel/qat/qat_common/adf_cfg.c
index b0fc453fa3fb..c348d290fc51 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_cfg.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_cfg.c
@@ -68,7 +68,7 @@ int adf_cfg_dev_add(struct adf_accel_dev *accel_dev)
{
struct adf_cfg_device_data *dev_cfg_data;
- dev_cfg_data = kzalloc(sizeof(*dev_cfg_data), GFP_KERNEL);
+ dev_cfg_data = kzalloc_obj(*dev_cfg_data, GFP_KERNEL);
if (!dev_cfg_data)
return -ENOMEM;
INIT_LIST_HEAD(&dev_cfg_data->sec_list);
@@ -289,7 +289,7 @@ int adf_cfg_add_key_value_param(struct adf_accel_dev *accel_dev,
if (!section)
return -EFAULT;
- key_val = kzalloc(sizeof(*key_val), GFP_KERNEL);
+ key_val = kzalloc_obj(*key_val, GFP_KERNEL);
if (!key_val)
return -ENOMEM;
@@ -356,7 +356,7 @@ int adf_cfg_section_add(struct adf_accel_dev *accel_dev, const char *name)
if (sec)
return 0;
- sec = kzalloc(sizeof(*sec), GFP_KERNEL);
+ sec = kzalloc_obj(*sec, GFP_KERNEL);
if (!sec)
return -ENOMEM;
diff --git a/drivers/crypto/intel/qat/qat_common/adf_dev_mgr.c b/drivers/crypto/intel/qat/qat_common/adf_dev_mgr.c
index 34b9f7731c78..2068fe29a24c 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_dev_mgr.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_dev_mgr.c
@@ -172,7 +172,7 @@ int adf_devmgr_add_dev(struct adf_accel_dev *accel_dev,
goto unlock;
}
num_devices++;
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (!map) {
ret = -ENOMEM;
goto unlock;
@@ -204,7 +204,7 @@ int adf_devmgr_add_dev(struct adf_accel_dev *accel_dev,
goto unlock;
}
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (!map) {
ret = -ENOMEM;
goto unlock;
diff --git a/drivers/crypto/intel/qat/qat_common/adf_fw_counters.c b/drivers/crypto/intel/qat/qat_common/adf_fw_counters.c
index 98fb7ccfed9f..fe37f53f2d29 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_fw_counters.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_fw_counters.c
@@ -83,7 +83,8 @@ static struct adf_fw_counters *adf_fw_counters_allocate(unsigned long ae_count)
if (unlikely(!ae_count))
return ERR_PTR(-EINVAL);
- fw_counters = kmalloc(struct_size(fw_counters, ae_counters, ae_count), GFP_KERNEL);
+ fw_counters = kmalloc_flex(*fw_counters, ae_counters, ae_count,
+ GFP_KERNEL);
if (!fw_counters)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/crypto/intel/qat/qat_common/adf_gen4_pm.c b/drivers/crypto/intel/qat/qat_common/adf_gen4_pm.c
index 5dafd9a270db..efeb3d06b606 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_gen4_pm.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_gen4_pm.c
@@ -119,7 +119,7 @@ bool adf_gen4_handle_pm_interrupt(struct adf_accel_dev *accel_dev)
val = ADF_CSR_RD(pmisc, ADF_GEN4_PM_INTERRUPT);
- pm_data = kzalloc(sizeof(*pm_data), GFP_ATOMIC);
+ pm_data = kzalloc_obj(*pm_data, GFP_ATOMIC);
if (!pm_data)
return false;
diff --git a/drivers/crypto/intel/qat/qat_common/adf_gen4_vf_mig.c b/drivers/crypto/intel/qat/qat_common/adf_gen4_vf_mig.c
index adb21656a3ba..622da38ce385 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_gen4_vf_mig.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_gen4_vf_mig.c
@@ -59,7 +59,7 @@ static int adf_gen4_vfmig_open_device(struct qat_mig_dev *mdev)
vf_info = &accel_dev->pf.vf_info[mdev->vf_id];
- vfmig = kzalloc(sizeof(*vfmig), GFP_KERNEL);
+ vfmig = kzalloc_obj(*vfmig, GFP_KERNEL);
if (!vfmig)
return -ENOMEM;
diff --git a/drivers/crypto/intel/qat/qat_common/adf_heartbeat.c b/drivers/crypto/intel/qat/qat_common/adf_heartbeat.c
index b19aa1ef8eee..95a9efceda6d 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_heartbeat.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_heartbeat.c
@@ -281,7 +281,7 @@ int adf_heartbeat_init(struct adf_accel_dev *accel_dev)
{
struct adf_heartbeat *hb;
- hb = kzalloc(sizeof(*hb), GFP_KERNEL);
+ hb = kzalloc_obj(*hb, GFP_KERNEL);
if (!hb)
goto err_ret;
diff --git a/drivers/crypto/intel/qat/qat_common/adf_mstate_mgr.c b/drivers/crypto/intel/qat/qat_common/adf_mstate_mgr.c
index 41cc763a74aa..1fbade552370 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_mstate_mgr.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_mstate_mgr.c
@@ -37,7 +37,7 @@ struct adf_mstate_mgr *adf_mstate_mgr_new(u8 *buf, u32 size)
{
struct adf_mstate_mgr *mgr;
- mgr = kzalloc(sizeof(*mgr), GFP_KERNEL);
+ mgr = kzalloc_obj(*mgr, GFP_KERNEL);
if (!mgr)
return NULL;
diff --git a/drivers/crypto/intel/qat/qat_common/adf_rl.c b/drivers/crypto/intel/qat/qat_common/adf_rl.c
index c6a54e465931..2e037df286cc 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_rl.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_rl.c
@@ -622,7 +622,7 @@ static int add_new_sla_entry(struct adf_accel_dev *accel_dev,
struct rl_sla *sla;
int ret = 0;
- sla = kzalloc(sizeof(*sla), GFP_KERNEL);
+ sla = kzalloc_obj(*sla, GFP_KERNEL);
if (!sla) {
ret = -ENOMEM;
goto ret_err;
@@ -1065,7 +1065,7 @@ int adf_rl_init(struct adf_accel_dev *accel_dev)
goto err_ret;
}
- rl = kzalloc(sizeof(*rl), GFP_KERNEL);
+ rl = kzalloc_obj(*rl, GFP_KERNEL);
if (!rl) {
ret = -ENOMEM;
goto err_ret;
diff --git a/drivers/crypto/intel/qat/qat_common/adf_sriov.c b/drivers/crypto/intel/qat/qat_common/adf_sriov.c
index bb904ba4bf84..bacaa4a1a20d 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_sriov.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_sriov.c
@@ -40,7 +40,7 @@ void adf_schedule_vf2pf_handler(struct adf_accel_vf_info *vf_info)
{
struct adf_pf2vf_resp *pf2vf_resp;
- pf2vf_resp = kzalloc(sizeof(*pf2vf_resp), GFP_ATOMIC);
+ pf2vf_resp = kzalloc_obj(*pf2vf_resp, GFP_ATOMIC);
if (!pf2vf_resp)
return;
@@ -173,8 +173,8 @@ static int adf_do_enable_sriov(struct adf_accel_dev *accel_dev)
goto err_del_cfg;
/* Allocate memory for VF info structs */
- accel_dev->pf.vf_info = kcalloc(totalvfs, sizeof(struct adf_accel_vf_info),
- GFP_KERNEL);
+ accel_dev->pf.vf_info = kzalloc_objs(struct adf_accel_vf_info, totalvfs,
+ GFP_KERNEL);
ret = -ENOMEM;
if (!accel_dev->pf.vf_info)
goto err_del_cfg;
diff --git a/drivers/crypto/intel/qat/qat_common/adf_telemetry.c b/drivers/crypto/intel/qat/qat_common/adf_telemetry.c
index b64142db1f0d..a745c1ca4048 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_telemetry.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_telemetry.c
@@ -75,9 +75,8 @@ static int adf_tl_alloc_mem(struct adf_accel_dev *accel_dev)
if (!telemetry->rp_num_indexes)
goto err_free_tl;
- telemetry->regs_hist_buff = kmalloc_array(tl_data->num_hbuff,
- sizeof(*telemetry->regs_hist_buff),
- GFP_KERNEL);
+ telemetry->regs_hist_buff = kmalloc_objs(*telemetry->regs_hist_buff,
+ tl_data->num_hbuff, GFP_KERNEL);
if (!telemetry->regs_hist_buff)
goto err_free_rp_indexes;
diff --git a/drivers/crypto/intel/qat/qat_common/adf_timer.c b/drivers/crypto/intel/qat/qat_common/adf_timer.c
index 8962a49f145a..3f5267c98ff3 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_timer.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_timer.c
@@ -40,7 +40,7 @@ int adf_timer_start(struct adf_accel_dev *accel_dev)
{
struct adf_timer *timer_ctx;
- timer_ctx = kzalloc(sizeof(*timer_ctx), GFP_KERNEL);
+ timer_ctx = kzalloc_obj(*timer_ctx, GFP_KERNEL);
if (!timer_ctx)
return -ENOMEM;
diff --git a/drivers/crypto/intel/qat/qat_common/adf_transport_debug.c b/drivers/crypto/intel/qat/qat_common/adf_transport_debug.c
index 6c22bc9b28e4..a27f1d76998e 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_transport_debug.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_transport_debug.c
@@ -99,7 +99,7 @@ int adf_ring_debugfs_add(struct adf_etr_ring_data *ring, const char *name)
struct adf_etr_ring_debug_entry *ring_debug;
char entry_name[16];
- ring_debug = kzalloc(sizeof(*ring_debug), GFP_KERNEL);
+ ring_debug = kzalloc_obj(*ring_debug, GFP_KERNEL);
if (!ring_debug)
return -ENOMEM;
diff --git a/drivers/crypto/intel/qat/qat_common/adf_vf_isr.c b/drivers/crypto/intel/qat/qat_common/adf_vf_isr.c
index d0fef20a3df4..9ffaa56def67 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_vf_isr.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_vf_isr.c
@@ -85,7 +85,7 @@ int adf_pf2vf_handle_pf_restarting(struct adf_accel_dev *accel_dev)
struct adf_vf_stop_data *stop_data;
clear_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status);
- stop_data = kzalloc(sizeof(*stop_data), GFP_ATOMIC);
+ stop_data = kzalloc_obj(*stop_data, GFP_ATOMIC);
if (!stop_data) {
dev_err(&GET_DEV(accel_dev),
"Couldn't schedule stop for vf_%d\n",
diff --git a/drivers/crypto/intel/qat/qat_common/qat_hal.c b/drivers/crypto/intel/qat/qat_common/qat_hal.c
index da4eca6e1633..86523a70b3a9 100644
--- a/drivers/crypto/intel/qat/qat_common/qat_hal.c
+++ b/drivers/crypto/intel/qat/qat_common/qat_hal.c
@@ -832,17 +832,17 @@ int qat_hal_init(struct adf_accel_dev *accel_dev)
struct icp_qat_fw_loader_handle *handle;
int ret = 0;
- handle = kzalloc(sizeof(*handle), GFP_KERNEL);
+ handle = kzalloc_obj(*handle, GFP_KERNEL);
if (!handle)
return -ENOMEM;
- handle->hal_handle = kzalloc(sizeof(*handle->hal_handle), GFP_KERNEL);
+ handle->hal_handle = kzalloc_obj(*handle->hal_handle, GFP_KERNEL);
if (!handle->hal_handle) {
ret = -ENOMEM;
goto out_hal_handle;
}
- handle->chip_info = kzalloc(sizeof(*handle->chip_info), GFP_KERNEL);
+ handle->chip_info = kzalloc_obj(*handle->chip_info, GFP_KERNEL);
if (!handle->chip_info) {
ret = -ENOMEM;
goto out_chip_info;
diff --git a/drivers/crypto/intel/qat/qat_common/qat_mig_dev.c b/drivers/crypto/intel/qat/qat_common/qat_mig_dev.c
index 892c2283a50e..4fb4b0cac64e 100644
--- a/drivers/crypto/intel/qat/qat_common/qat_mig_dev.c
+++ b/drivers/crypto/intel/qat/qat_common/qat_mig_dev.c
@@ -24,7 +24,7 @@ struct qat_mig_dev *qat_vfmig_create(struct pci_dev *pdev, int vf_id)
!ops->load_state || !ops->save_setup || !ops->load_setup)
return ERR_PTR(-EINVAL);
- mdev = kmalloc(sizeof(*mdev), GFP_KERNEL);
+ mdev = kmalloc_obj(*mdev, GFP_KERNEL);
if (!mdev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/crypto/intel/qat/qat_common/qat_uclo.c b/drivers/crypto/intel/qat/qat_common/qat_uclo.c
index 06d49cb781ae..be0cfd9dd09a 100644
--- a/drivers/crypto/intel/qat/qat_common/qat_uclo.c
+++ b/drivers/crypto/intel/qat/qat_common/qat_uclo.c
@@ -42,10 +42,10 @@ static int qat_uclo_init_ae_data(struct icp_qat_uclo_objhandle *obj_handle,
} else {
ae_slice->ctx_mask_assigned = 0;
}
- ae_slice->region = kzalloc(sizeof(*ae_slice->region), GFP_KERNEL);
+ ae_slice->region = kzalloc_obj(*ae_slice->region, GFP_KERNEL);
if (!ae_slice->region)
return -ENOMEM;
- ae_slice->page = kzalloc(sizeof(*ae_slice->page), GFP_KERNEL);
+ ae_slice->page = kzalloc_obj(*ae_slice->page, GFP_KERNEL);
if (!ae_slice->page)
goto out_err;
page = ae_slice->page;
@@ -258,7 +258,7 @@ static int qat_uclo_create_batch_init_list(struct icp_qat_fw_loader_handle
init_header = *init_tab_base;
if (!init_header) {
- init_header = kzalloc(sizeof(*init_header), GFP_KERNEL);
+ init_header = kzalloc_obj(*init_header, GFP_KERNEL);
if (!init_header)
return -ENOMEM;
init_header->size = 1;
@@ -270,7 +270,7 @@ static int qat_uclo_create_batch_init_list(struct icp_qat_fw_loader_handle
tail_old = tail_old->next;
tail = tail_old;
for (i = 0; i < init_mem->val_attr_num; i++) {
- mem_init = kzalloc(sizeof(*mem_init), GFP_KERNEL);
+ mem_init = kzalloc_obj(*mem_init, GFP_KERNEL);
if (!mem_init)
goto out_err;
mem_init->ae = ae;
@@ -501,7 +501,7 @@ qat_uclo_map_chunk(char *buf, struct icp_qat_uof_filehdr *file_hdr,
if (file_chunk->checksum != qat_uclo_calc_str_checksum(
chunk, file_chunk->size))
break;
- obj_hdr = kzalloc(sizeof(*obj_hdr), GFP_KERNEL);
+ obj_hdr = kzalloc_obj(*obj_hdr, GFP_KERNEL);
if (!obj_hdr)
break;
obj_hdr->file_buff = chunk;
@@ -634,8 +634,7 @@ static int qat_uclo_map_uimage(struct icp_qat_uclo_objhandle *obj_handle,
if (qat_uclo_check_image_compat(encap_uof_obj, image))
goto out_err;
ae_uimage[j].page =
- kzalloc(sizeof(struct icp_qat_uclo_encap_page),
- GFP_KERNEL);
+ kzalloc_obj(struct icp_qat_uclo_encap_page, GFP_KERNEL);
if (!ae_uimage[j].page)
goto out_err;
qat_uclo_map_image_page(encap_uof_obj, image,
@@ -1200,9 +1199,9 @@ static int qat_uclo_map_suof(struct icp_qat_fw_loader_handle *handle,
suof_handle->img_table.num_simgs = suof_ptr->num_chunks - 1;
if (suof_handle->img_table.num_simgs != 0) {
- suof_img_hdr = kcalloc(suof_handle->img_table.num_simgs,
- sizeof(img_header),
- GFP_KERNEL);
+ suof_img_hdr = kzalloc_objs(img_header,
+ suof_handle->img_table.num_simgs,
+ GFP_KERNEL);
if (!suof_img_hdr)
return -ENOMEM;
suof_handle->img_table.simg_hdr = suof_img_hdr;
@@ -1720,7 +1719,7 @@ static int qat_uclo_map_suof_obj(struct icp_qat_fw_loader_handle *handle,
{
struct icp_qat_suof_handle *suof_handle;
- suof_handle = kzalloc(sizeof(*suof_handle), GFP_KERNEL);
+ suof_handle = kzalloc_obj(*suof_handle, GFP_KERNEL);
if (!suof_handle)
return -ENOMEM;
handle->sobj_handle = suof_handle;
@@ -1764,7 +1763,7 @@ static int qat_uclo_map_uof_obj(struct icp_qat_fw_loader_handle *handle,
struct icp_qat_uof_filehdr *filehdr;
struct icp_qat_uclo_objhandle *objhdl;
- objhdl = kzalloc(sizeof(*objhdl), GFP_KERNEL);
+ objhdl = kzalloc_obj(*objhdl, GFP_KERNEL);
if (!objhdl)
return -ENOMEM;
objhdl->obj_buf = kmemdup(addr_ptr, mem_size, GFP_KERNEL);
@@ -1892,8 +1891,9 @@ static int qat_uclo_map_objs_from_mof(struct icp_qat_mof_handle *mobj_handle)
if (sobj_hdr)
sobj_chunk_num = sobj_hdr->num_chunks;
- mobj_hdr = kcalloc(size_add(uobj_chunk_num, sobj_chunk_num),
- sizeof(*mobj_hdr), GFP_KERNEL);
+ mobj_hdr = kzalloc_objs(*mobj_hdr,
+ size_add(uobj_chunk_num, sobj_chunk_num),
+ GFP_KERNEL);
if (!mobj_hdr)
return -ENOMEM;
@@ -2003,7 +2003,7 @@ static int qat_uclo_map_mof_obj(struct icp_qat_fw_loader_handle *handle,
if (qat_uclo_check_mof_format(mof_ptr))
return -EINVAL;
- mobj_handle = kzalloc(sizeof(*mobj_handle), GFP_KERNEL);
+ mobj_handle = kzalloc_obj(*mobj_handle, GFP_KERNEL);
if (!mobj_handle)
return -ENOMEM;
diff --git a/drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c b/drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c
index 417a48f41350..b35c57a868e7 100644
--- a/drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c
+++ b/drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c
@@ -318,7 +318,7 @@ static int process_tar_file(struct device *dev,
return -EINVAL;
}
- tar_info = kzalloc(sizeof(struct tar_ucode_info_t), GFP_KERNEL);
+ tar_info = kzalloc_obj(struct tar_ucode_info_t, GFP_KERNEL);
if (!tar_info)
return -ENOMEM;
@@ -412,7 +412,7 @@ static struct tar_arch_info_t *load_tar_archive(struct device *dev,
size_t tar_size;
int ret;
- tar_arch = kzalloc(sizeof(struct tar_arch_info_t), GFP_KERNEL);
+ tar_arch = kzalloc_obj(struct tar_arch_info_t, GFP_KERNEL);
if (!tar_arch)
return NULL;
diff --git a/drivers/crypto/marvell/octeontx/otx_cptvf_main.c b/drivers/crypto/marvell/octeontx/otx_cptvf_main.c
index 6c0bfb3ea1c9..32f6616a60eb 100644
--- a/drivers/crypto/marvell/octeontx/otx_cptvf_main.c
+++ b/drivers/crypto/marvell/octeontx/otx_cptvf_main.c
@@ -31,7 +31,7 @@ static int init_worker_threads(struct otx_cptvf *cptvf)
struct otx_cptvf_wqe_info *cwqe_info;
int i;
- cwqe_info = kzalloc(sizeof(*cwqe_info), GFP_KERNEL);
+ cwqe_info = kzalloc_obj(*cwqe_info, GFP_KERNEL);
if (!cwqe_info)
return -ENOMEM;
@@ -100,7 +100,7 @@ static int alloc_pending_queues(struct otx_cpt_pending_qinfo *pqinfo, u32 qlen,
pqinfo->num_queues = num_queues;
for_each_pending_queue(pqinfo, queue, i) {
- queue->head = kcalloc(qlen, sizeof(*queue->head), GFP_KERNEL);
+ queue->head = kzalloc_objs(*queue->head, qlen, GFP_KERNEL);
if (!queue->head) {
ret = -ENOMEM;
goto pending_qfail;
@@ -212,7 +212,7 @@ static int alloc_command_queues(struct otx_cptvf *cptvf,
queue = &cqinfo->queue[i];
INIT_LIST_HEAD(&queue->chead);
do {
- curr = kzalloc(sizeof(*curr), GFP_KERNEL);
+ curr = kzalloc_obj(*curr, GFP_KERNEL);
if (!curr)
goto cmd_qfail;
diff --git a/drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c b/drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c
index f54f90588d86..37eb56ab7832 100644
--- a/drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c
+++ b/drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c
@@ -340,8 +340,8 @@ static int cptpf_flr_wq_init(struct otx2_cptpf_dev *cptpf, int num_vfs)
if (!cptpf->flr_wq)
return -ENOMEM;
- cptpf->flr_work = kcalloc(num_vfs, sizeof(struct cptpf_flr_work),
- GFP_KERNEL);
+ cptpf->flr_work = kzalloc_objs(struct cptpf_flr_work, num_vfs,
+ GFP_KERNEL);
if (!cptpf->flr_work)
goto destroy_wq;
diff --git a/drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c b/drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c
index b5cc5401f704..97d948fbc4b3 100644
--- a/drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c
+++ b/drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c
@@ -372,7 +372,7 @@ static int load_fw(struct device *dev, struct fw_info_t *fw_info,
int ucode_type, ucode_size;
int ret;
- uc_info = kzalloc(sizeof(*uc_info), GFP_KERNEL);
+ uc_info = kzalloc_obj(*uc_info, GFP_KERNEL);
if (!uc_info)
return -ENOMEM;
diff --git a/drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c b/drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c
index c1c44a7b89fa..bec0a4cd2662 100644
--- a/drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c
+++ b/drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c
@@ -150,7 +150,7 @@ static int init_tasklet_work(struct otx2_cptlfs_info *lfs)
int i, ret = 0;
for (i = 0; i < lfs->lfs_num; i++) {
- wqe = kzalloc(sizeof(struct otx2_cptlf_wqe), GFP_KERNEL);
+ wqe = kzalloc_obj(struct otx2_cptlf_wqe, GFP_KERNEL);
if (!wqe) {
ret = -ENOMEM;
goto cleanup_tasklet;
diff --git a/drivers/crypto/nx/nx-842.c b/drivers/crypto/nx/nx-842.c
index b950fcce8a9b..f388027b1256 100644
--- a/drivers/crypto/nx/nx-842.c
+++ b/drivers/crypto/nx/nx-842.c
@@ -105,7 +105,7 @@ void *nx842_crypto_alloc_ctx(struct nx842_driver *driver)
{
struct nx842_crypto_ctx *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/crypto/nx/nx-common-powernv.c b/drivers/crypto/nx/nx-common-powernv.c
index 56aa1c29d782..a9253e34a0e5 100644
--- a/drivers/crypto/nx/nx-common-powernv.c
+++ b/drivers/crypto/nx/nx-common-powernv.c
@@ -810,7 +810,7 @@ static int __init vas_cfg_coproc_info(struct device_node *dn, int chip_id,
return ret;
}
- coproc = kzalloc(sizeof(*coproc), GFP_KERNEL);
+ coproc = kzalloc_obj(*coproc, GFP_KERNEL);
if (!coproc)
return -ENOMEM;
@@ -968,7 +968,7 @@ static int __init nx842_powernv_probe(struct device_node *dn)
return -EINVAL;
}
- coproc = kzalloc(sizeof(*coproc), GFP_KERNEL);
+ coproc = kzalloc_obj(*coproc, GFP_KERNEL);
if (!coproc)
return -ENOMEM;
diff --git a/drivers/crypto/nx/nx-common-pseries.c b/drivers/crypto/nx/nx-common-pseries.c
index fc0222ebe807..ecf84448b797 100644
--- a/drivers/crypto/nx/nx-common-pseries.c
+++ b/drivers/crypto/nx/nx-common-pseries.c
@@ -747,7 +747,7 @@ static int nx842_OF_upd(struct property *new_prop)
int ret = 0;
unsigned long flags;
- new_devdata = kzalloc(sizeof(*new_devdata), GFP_NOFS);
+ new_devdata = kzalloc_obj(*new_devdata, GFP_NOFS);
if (!new_devdata)
return -ENOMEM;
@@ -1035,12 +1035,11 @@ static int nx842_probe(struct vio_dev *viodev,
unsigned long flags;
int ret = 0;
- new_devdata = kzalloc(sizeof(*new_devdata), GFP_NOFS);
+ new_devdata = kzalloc_obj(*new_devdata, GFP_NOFS);
if (!new_devdata)
return -ENOMEM;
- new_devdata->counters = kzalloc(sizeof(*new_devdata->counters),
- GFP_NOFS);
+ new_devdata->counters = kzalloc_obj(*new_devdata->counters, GFP_NOFS);
if (!new_devdata->counters) {
kfree(new_devdata);
return -ENOMEM;
@@ -1149,7 +1148,7 @@ static void __init nxcop_get_capabilities(void)
u64 feat;
int rc;
- hv_caps = kmalloc(sizeof(*hv_caps), GFP_KERNEL);
+ hv_caps = kmalloc_obj(*hv_caps, GFP_KERNEL);
if (!hv_caps)
return;
/*
@@ -1168,7 +1167,7 @@ static void __init nxcop_get_capabilities(void)
/*
* NX-GZIP feature available
*/
- hv_nxc = kmalloc(sizeof(*hv_nxc), GFP_KERNEL);
+ hv_nxc = kmalloc_obj(*hv_nxc, GFP_KERNEL);
if (!hv_nxc)
return;
/*
@@ -1218,7 +1217,7 @@ static int __init nx842_pseries_init(void)
of_node_put(np);
RCU_INIT_POINTER(devdata, NULL);
- new_devdata = kzalloc(sizeof(*new_devdata), GFP_KERNEL);
+ new_devdata = kzalloc_obj(*new_devdata, GFP_KERNEL);
if (!new_devdata)
return -ENOMEM;
diff --git a/drivers/crypto/omap-crypto.c b/drivers/crypto/omap-crypto.c
index 0345c9383d50..441f0e5eb458 100644
--- a/drivers/crypto/omap-crypto.c
+++ b/drivers/crypto/omap-crypto.c
@@ -21,7 +21,7 @@ static int omap_crypto_copy_sg_lists(int total, int bs,
struct scatterlist *tmp;
if (!(flags & OMAP_CRYPTO_FORCE_SINGLE_ENTRY)) {
- new_sg = kmalloc_array(n, sizeof(*new_sg), GFP_KERNEL);
+ new_sg = kmalloc_objs(*new_sg, n, GFP_KERNEL);
if (!new_sg)
return -ENOMEM;
diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c
index 1ffc240e016a..48f6ba92ee93 100644
--- a/drivers/crypto/omap-sham.c
+++ b/drivers/crypto/omap-sham.c
@@ -636,7 +636,7 @@ static int omap_sham_copy_sg_lists(struct omap_sham_reqctx *ctx,
if (ctx->bufcnt)
n++;
- ctx->sg = kmalloc_array(n, sizeof(*sg), GFP_KERNEL);
+ ctx->sg = kmalloc_objs(*sg, n, GFP_KERNEL);
if (!ctx->sg)
return -ENOMEM;
diff --git a/drivers/crypto/qce/aead.c b/drivers/crypto/qce/aead.c
index 97b56e92ea33..ffc31a1d72c5 100644
--- a/drivers/crypto/qce/aead.c
+++ b/drivers/crypto/qce/aead.c
@@ -762,7 +762,7 @@ static int qce_aead_register_one(const struct qce_aead_def *def, struct qce_devi
struct aead_alg *alg;
int ret;
- tmpl = kzalloc(sizeof(*tmpl), GFP_KERNEL);
+ tmpl = kzalloc_obj(*tmpl, GFP_KERNEL);
if (!tmpl)
return -ENOMEM;
diff --git a/drivers/crypto/qce/sha.c b/drivers/crypto/qce/sha.c
index 71b748183cfa..f09d0d7da518 100644
--- a/drivers/crypto/qce/sha.c
+++ b/drivers/crypto/qce/sha.c
@@ -457,7 +457,7 @@ static int qce_ahash_register_one(const struct qce_ahash_def *def,
struct crypto_alg *base;
int ret;
- tmpl = kzalloc(sizeof(*tmpl), GFP_KERNEL);
+ tmpl = kzalloc_obj(*tmpl, GFP_KERNEL);
if (!tmpl)
return -ENOMEM;
diff --git a/drivers/crypto/qce/skcipher.c b/drivers/crypto/qce/skcipher.c
index ffb334eb5b34..1571ede06b86 100644
--- a/drivers/crypto/qce/skcipher.c
+++ b/drivers/crypto/qce/skcipher.c
@@ -440,7 +440,7 @@ static int qce_skcipher_register_one(const struct qce_skcipher_def *def,
struct skcipher_alg *alg;
int ret;
- tmpl = kzalloc(sizeof(*tmpl), GFP_KERNEL);
+ tmpl = kzalloc_obj(*tmpl, GFP_KERNEL);
if (!tmpl)
return -ENOMEM;
diff --git a/drivers/crypto/s5p-sss.c b/drivers/crypto/s5p-sss.c
index b829c84f60f2..ea13b0fd4d89 100644
--- a/drivers/crypto/s5p-sss.c
+++ b/drivers/crypto/s5p-sss.c
@@ -499,7 +499,7 @@ static int s5p_make_sg_cpy(struct s5p_aes_dev *dev, struct scatterlist *src,
void *pages;
int len;
- *dst = kmalloc(sizeof(**dst), GFP_ATOMIC);
+ *dst = kmalloc_obj(**dst, GFP_ATOMIC);
if (!*dst)
return -ENOMEM;
@@ -1056,7 +1056,7 @@ static int s5p_hash_copy_sg_lists(struct s5p_hash_reqctx *ctx,
if (ctx->bufcnt)
n++;
- ctx->sg = kmalloc_array(n, sizeof(*sg), GFP_KERNEL);
+ ctx->sg = kmalloc_objs(*sg, n, GFP_KERNEL);
if (!ctx->sg) {
ctx->error = true;
return -ENOMEM;
diff --git a/drivers/crypto/sa2ul.c b/drivers/crypto/sa2ul.c
index fdc0b2486069..df3defa1ef4b 100644
--- a/drivers/crypto/sa2ul.c
+++ b/drivers/crypto/sa2ul.c
@@ -1099,7 +1099,7 @@ static int sa_run(struct sa_req *req)
gfp_flags = req->base->flags & CRYPTO_TFM_REQ_MAY_SLEEP ?
GFP_KERNEL : GFP_ATOMIC;
- rxd = kzalloc(sizeof(*rxd), gfp_flags);
+ rxd = kzalloc_obj(*rxd, gfp_flags);
if (!rxd)
return -ENOMEM;
diff --git a/drivers/crypto/stm32/stm32-cryp.c b/drivers/crypto/stm32/stm32-cryp.c
index d206eddb67bf..9818b9e69aff 100644
--- a/drivers/crypto/stm32/stm32-cryp.c
+++ b/drivers/crypto/stm32/stm32-cryp.c
@@ -1498,7 +1498,8 @@ static int stm32_cryp_truncate_sg(struct scatterlist **new_sg, size_t *new_sg_le
return alloc_sg_len;
/* We allocate to much sg entry, but it is easier */
- *new_sg = kmalloc_array((size_t)alloc_sg_len, sizeof(struct scatterlist), GFP_KERNEL);
+ *new_sg = kmalloc_objs(struct scatterlist, (size_t)alloc_sg_len,
+ GFP_KERNEL);
if (!*new_sg)
return -ENOMEM;
diff --git a/drivers/crypto/tegra/tegra-se-main.c b/drivers/crypto/tegra/tegra-se-main.c
index 4e7115b247e7..caca5e365f8b 100644
--- a/drivers/crypto/tegra/tegra-se-main.c
+++ b/drivers/crypto/tegra/tegra-se-main.c
@@ -47,7 +47,7 @@ tegra_se_cmdbuf_pin(struct device *dev, struct host1x_bo *bo, enum dma_data_dire
struct host1x_bo_mapping *map;
int err;
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (!map)
return ERR_PTR(-ENOMEM);
@@ -56,7 +56,7 @@ tegra_se_cmdbuf_pin(struct device *dev, struct host1x_bo *bo, enum dma_data_dire
map->direction = direction;
map->dev = dev;
- map->sgt = kzalloc(sizeof(*map->sgt), GFP_KERNEL);
+ map->sgt = kzalloc_obj(*map->sgt, GFP_KERNEL);
if (!map->sgt) {
err = -ENOMEM;
goto free;
@@ -123,7 +123,7 @@ static struct tegra_se_cmdbuf *tegra_se_host1x_bo_alloc(struct tegra_se *se, ssi
struct tegra_se_cmdbuf *cmdbuf;
struct device *dev = se->dev->parent;
- cmdbuf = kzalloc(sizeof(*cmdbuf), GFP_KERNEL);
+ cmdbuf = kzalloc_obj(*cmdbuf, GFP_KERNEL);
if (!cmdbuf)
return NULL;
diff --git a/drivers/crypto/virtio/virtio_crypto_akcipher_algs.c b/drivers/crypto/virtio/virtio_crypto_akcipher_algs.c
index 2e44915c9f23..01077166b2f1 100644
--- a/drivers/crypto/virtio/virtio_crypto_akcipher_algs.c
+++ b/drivers/crypto/virtio/virtio_crypto_akcipher_algs.c
@@ -112,7 +112,7 @@ static int virtio_crypto_alg_akcipher_init_session(struct virtio_crypto_akcipher
if (!pkey)
return -ENOMEM;
- vc_ctrl_req = kzalloc(sizeof(*vc_ctrl_req), GFP_KERNEL);
+ vc_ctrl_req = kzalloc_obj(*vc_ctrl_req, GFP_KERNEL);
if (!vc_ctrl_req) {
err = -ENOMEM;
goto out;
@@ -169,7 +169,7 @@ static int virtio_crypto_alg_akcipher_close_session(struct virtio_crypto_akciphe
if (!ctx->session_valid)
return 0;
- vc_ctrl_req = kzalloc(sizeof(*vc_ctrl_req), GFP_KERNEL);
+ vc_ctrl_req = kzalloc_obj(*vc_ctrl_req, GFP_KERNEL);
if (!vc_ctrl_req)
return -ENOMEM;
diff --git a/drivers/crypto/virtio/virtio_crypto_core.c b/drivers/crypto/virtio/virtio_crypto_core.c
index ccc6b5c1b24b..ae100e315185 100644
--- a/drivers/crypto/virtio/virtio_crypto_core.c
+++ b/drivers/crypto/virtio/virtio_crypto_core.c
@@ -115,10 +115,10 @@ static int virtcrypto_find_vqs(struct virtio_crypto *vi)
total_vqs = vi->max_data_queues + 1;
/* Allocate space for find_vqs parameters */
- vqs = kcalloc(total_vqs, sizeof(*vqs), GFP_KERNEL);
+ vqs = kzalloc_objs(*vqs, total_vqs, GFP_KERNEL);
if (!vqs)
goto err_vq;
- vqs_info = kcalloc(total_vqs, sizeof(*vqs_info), GFP_KERNEL);
+ vqs_info = kzalloc_objs(*vqs_info, total_vqs, GFP_KERNEL);
if (!vqs_info)
goto err_vqs_info;
@@ -170,8 +170,8 @@ static int virtcrypto_find_vqs(struct virtio_crypto *vi)
static int virtcrypto_alloc_queues(struct virtio_crypto *vi)
{
- vi->data_vq = kcalloc(vi->max_data_queues, sizeof(*vi->data_vq),
- GFP_KERNEL);
+ vi->data_vq = kzalloc_objs(*vi->data_vq, vi->max_data_queues,
+ GFP_KERNEL);
if (!vi->data_vq)
return -ENOMEM;
diff --git a/drivers/crypto/virtio/virtio_crypto_skcipher_algs.c b/drivers/crypto/virtio/virtio_crypto_skcipher_algs.c
index 11053d1786d4..b25b7982c942 100644
--- a/drivers/crypto/virtio/virtio_crypto_skcipher_algs.c
+++ b/drivers/crypto/virtio/virtio_crypto_skcipher_algs.c
@@ -131,7 +131,7 @@ static int virtio_crypto_alg_skcipher_init_session(
if (!cipher_key)
return -ENOMEM;
- vc_ctrl_req = kzalloc(sizeof(*vc_ctrl_req), GFP_KERNEL);
+ vc_ctrl_req = kzalloc_obj(*vc_ctrl_req, GFP_KERNEL);
if (!vc_ctrl_req) {
err = -ENOMEM;
goto out;
@@ -200,7 +200,7 @@ static int virtio_crypto_alg_skcipher_close_session(
struct virtio_crypto_inhdr *ctrl_status;
struct virtio_crypto_ctrl_request *vc_ctrl_req;
- vc_ctrl_req = kzalloc(sizeof(*vc_ctrl_req), GFP_KERNEL);
+ vc_ctrl_req = kzalloc_obj(*vc_ctrl_req, GFP_KERNEL);
if (!vc_ctrl_req)
return -ENOMEM;
diff --git a/drivers/cxl/acpi.c b/drivers/cxl/acpi.c
index d78f005bd994..11320e88eb09 100644
--- a/drivers/cxl/acpi.c
+++ b/drivers/cxl/acpi.c
@@ -336,7 +336,7 @@ static void del_cxl_resource(struct resource *res)
static struct resource *alloc_cxl_resource(resource_size_t base,
resource_size_t n, int id)
{
- struct resource *res __free(kfree) = kzalloc(sizeof(*res), GFP_KERNEL);
+ struct resource *res __free(kfree) = kzalloc_obj(*res, GFP_KERNEL);
if (!res)
return NULL;
@@ -825,7 +825,7 @@ static int add_cxl_resources(struct resource *cxl_res)
struct resource *res, *new, *next;
for (res = cxl_res->child; res; res = next) {
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return -ENOMEM;
new->name = res->name;
diff --git a/drivers/cxl/core/cdat.c b/drivers/cxl/core/cdat.c
index 18f0f2a25113..a024083bae2d 100644
--- a/drivers/cxl/core/cdat.c
+++ b/drivers/cxl/core/cdat.c
@@ -69,7 +69,7 @@ static int cdat_dsmas_handler(union acpi_subtable_headers *header, void *arg,
/* Skip common header */
dsmas = (struct acpi_cdat_dsmas *)(hdr + 1);
- dent = kzalloc(sizeof(*dent), GFP_KERNEL);
+ dent = kzalloc_obj(*dent, GFP_KERNEL);
if (!dent)
return -ENOMEM;
@@ -669,7 +669,7 @@ static int cxl_endpoint_gather_bandwidth(struct cxl_region *cxlr,
perf_ctx = xa_load(usp_xa, index);
if (!perf_ctx) {
struct cxl_perf_ctx *c __free(kfree) =
- kzalloc(sizeof(*perf_ctx), GFP_KERNEL);
+ kzalloc_obj(*perf_ctx, GFP_KERNEL);
if (!c)
return -ENOMEM;
@@ -756,7 +756,7 @@ static struct xarray *cxl_switch_gather_bandwidth(struct cxl_region *cxlr,
bool *gp_is_root)
{
struct xarray *res_xa __free(free_perf_xa) =
- kzalloc(sizeof(*res_xa), GFP_KERNEL);
+ kzalloc_obj(*res_xa, GFP_KERNEL);
struct access_coordinate coords[ACCESS_COORDINATE_MAX];
struct cxl_perf_ctx *ctx, *us_ctx;
unsigned long index, us_index;
@@ -795,7 +795,7 @@ static struct xarray *cxl_switch_gather_bandwidth(struct cxl_region *cxlr,
us_ctx = xa_load(res_xa, us_index);
if (!us_ctx) {
struct cxl_perf_ctx *n __free(kfree) =
- kzalloc(sizeof(*n), GFP_KERNEL);
+ kzalloc_obj(*n, GFP_KERNEL);
if (!n)
return ERR_PTR(-ENOMEM);
@@ -862,7 +862,7 @@ static struct xarray *cxl_switch_gather_bandwidth(struct cxl_region *cxlr,
static struct xarray *cxl_rp_gather_bandwidth(struct xarray *xa)
{
struct xarray *hb_xa __free(free_perf_xa) =
- kzalloc(sizeof(*hb_xa), GFP_KERNEL);
+ kzalloc_obj(*hb_xa, GFP_KERNEL);
struct cxl_perf_ctx *ctx;
unsigned long index;
@@ -879,7 +879,7 @@ static struct xarray *cxl_rp_gather_bandwidth(struct xarray *xa)
hb_ctx = xa_load(hb_xa, hb_index);
if (!hb_ctx) {
struct cxl_perf_ctx *n __free(kfree) =
- kzalloc(sizeof(*n), GFP_KERNEL);
+ kzalloc_obj(*n, GFP_KERNEL);
if (!n)
return ERR_PTR(-ENOMEM);
@@ -906,7 +906,7 @@ static struct xarray *cxl_rp_gather_bandwidth(struct xarray *xa)
static struct xarray *cxl_hb_gather_bandwidth(struct xarray *xa)
{
struct xarray *mw_xa __free(free_perf_xa) =
- kzalloc(sizeof(*mw_xa), GFP_KERNEL);
+ kzalloc_obj(*mw_xa, GFP_KERNEL);
struct cxl_perf_ctx *ctx;
unsigned long index;
@@ -928,7 +928,7 @@ static struct xarray *cxl_hb_gather_bandwidth(struct xarray *xa)
mw_ctx = xa_load(mw_xa, mw_index);
if (!mw_ctx) {
struct cxl_perf_ctx *n __free(kfree) =
- kzalloc(sizeof(*n), GFP_KERNEL);
+ kzalloc_obj(*n, GFP_KERNEL);
if (!n)
return ERR_PTR(-ENOMEM);
@@ -987,7 +987,7 @@ void cxl_region_shared_upstream_bandwidth_update(struct cxl_region *cxlr)
lockdep_assert_held(&cxl_rwsem.dpa);
struct xarray *usp_xa __free(free_perf_xa) =
- kzalloc(sizeof(*usp_xa), GFP_KERNEL);
+ kzalloc_obj(*usp_xa, GFP_KERNEL);
if (!usp_xa)
return;
diff --git a/drivers/cxl/core/edac.c b/drivers/cxl/core/edac.c
index 81160260e26b..7f5457adb26c 100644
--- a/drivers/cxl/core/edac.c
+++ b/drivers/cxl/core/edac.c
@@ -2009,8 +2009,7 @@ static void err_rec_free(void *_cxlmd)
static int devm_cxl_memdev_setup_err_rec(struct cxl_memdev *cxlmd)
{
- struct cxl_mem_err_rec *array_rec =
- kzalloc(sizeof(*array_rec), GFP_KERNEL);
+ struct cxl_mem_err_rec *array_rec = kzalloc_obj(*array_rec, GFP_KERNEL);
if (!array_rec)
return -ENOMEM;
diff --git a/drivers/cxl/core/features.c b/drivers/cxl/core/features.c
index 4bc484b46f43..2007d8ebe1c4 100644
--- a/drivers/cxl/core/features.c
+++ b/drivers/cxl/core/features.c
@@ -94,7 +94,7 @@ get_supported_features(struct cxl_features_state *cxlfs)
return NULL;
struct cxl_feat_entries *entries __free(kvfree) =
- kvmalloc(struct_size(entries, ent, count), GFP_KERNEL);
+ kvmalloc_flex(*entries, ent, count, GFP_KERNEL);
if (!entries)
return NULL;
@@ -204,7 +204,7 @@ int devm_cxl_setup_features(struct cxl_dev_state *cxlds)
return -ENODEV;
struct cxl_features_state *cxlfs __free(kfree) =
- kzalloc(sizeof(*cxlfs), GFP_KERNEL);
+ kzalloc_obj(*cxlfs, GFP_KERNEL);
if (!cxlfs)
return -ENOMEM;
diff --git a/drivers/cxl/core/memdev.c b/drivers/cxl/core/memdev.c
index af3d0cc65138..a81df0de4889 100644
--- a/drivers/cxl/core/memdev.c
+++ b/drivers/cxl/core/memdev.c
@@ -665,7 +665,7 @@ static struct cxl_memdev *cxl_memdev_alloc(struct cxl_dev_state *cxlds,
struct cdev *cdev;
int rc;
- cxlmd = kzalloc(sizeof(*cxlmd), GFP_KERNEL);
+ cxlmd = kzalloc_obj(*cxlmd, GFP_KERNEL);
if (!cxlmd)
return ERR_PTR(-ENOMEM);
@@ -831,7 +831,7 @@ static int cxl_mem_abort_fw_xfer(struct cxl_memdev_state *mds)
struct cxl_mbox_cmd mbox_cmd;
int rc;
- transfer = kzalloc(struct_size(transfer, data, 0), GFP_KERNEL);
+ transfer = kzalloc_flex(*transfer, data, 0, GFP_KERNEL);
if (!transfer)
return -ENOMEM;
diff --git a/drivers/cxl/core/pmem.c b/drivers/cxl/core/pmem.c
index e7b1e6fa0ea0..be7538e58b9c 100644
--- a/drivers/cxl/core/pmem.c
+++ b/drivers/cxl/core/pmem.c
@@ -83,7 +83,7 @@ static struct cxl_nvdimm_bridge *cxl_nvdimm_bridge_alloc(struct cxl_port *port)
struct device *dev;
int rc;
- cxl_nvb = kzalloc(sizeof(*cxl_nvb), GFP_KERNEL);
+ cxl_nvb = kzalloc_obj(*cxl_nvb, GFP_KERNEL);
if (!cxl_nvb)
return ERR_PTR(-ENOMEM);
@@ -198,7 +198,7 @@ static struct cxl_nvdimm *cxl_nvdimm_alloc(struct cxl_nvdimm_bridge *cxl_nvb,
struct cxl_nvdimm *cxl_nvd;
struct device *dev;
- cxl_nvd = kzalloc(sizeof(*cxl_nvd), GFP_KERNEL);
+ cxl_nvd = kzalloc_obj(*cxl_nvd, GFP_KERNEL);
if (!cxl_nvd)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/cxl/core/pmu.c b/drivers/cxl/core/pmu.c
index b3136d7664ab..8eb175c3ff22 100644
--- a/drivers/cxl/core/pmu.c
+++ b/drivers/cxl/core/pmu.c
@@ -33,7 +33,7 @@ int devm_cxl_pmu_add(struct device *parent, struct cxl_pmu_regs *regs,
struct device *dev;
int rc;
- pmu = kzalloc(sizeof(*pmu), GFP_KERNEL);
+ pmu = kzalloc_obj(*pmu, GFP_KERNEL);
if (!pmu)
return -ENOMEM;
diff --git a/drivers/cxl/core/port.c b/drivers/cxl/core/port.c
index fea8d5f5f331..491c7485db60 100644
--- a/drivers/cxl/core/port.c
+++ b/drivers/cxl/core/port.c
@@ -688,11 +688,11 @@ static struct cxl_port *cxl_port_alloc(struct device *uport_dev,
/* No parent_dport, root cxl_port */
if (!parent_dport) {
- cxl_root = kzalloc(sizeof(*cxl_root), GFP_KERNEL);
+ cxl_root = kzalloc_obj(*cxl_root, GFP_KERNEL);
if (!cxl_root)
return ERR_PTR(-ENOMEM);
} else {
- _port = kzalloc(sizeof(*port), GFP_KERNEL);
+ _port = kzalloc_obj(*port, GFP_KERNEL);
if (!_port)
return ERR_PTR(-ENOMEM);
}
@@ -1184,7 +1184,7 @@ __devm_cxl_add_dport(struct cxl_port *port, struct device *dport_dev,
CXL_TARGET_STRLEN)
return ERR_PTR(-EINVAL);
- dport = kzalloc(sizeof(*dport), GFP_KERNEL);
+ dport = kzalloc_obj(*dport, GFP_KERNEL);
if (!dport)
return ERR_PTR(-ENOMEM);
@@ -1350,7 +1350,7 @@ static int cxl_add_ep(struct cxl_dport *dport, struct device *ep_dev)
struct cxl_ep *ep;
int rc;
- ep = kzalloc(sizeof(*ep), GFP_KERNEL);
+ ep = kzalloc_obj(*ep, GFP_KERNEL);
if (!ep)
return -ENOMEM;
@@ -2017,8 +2017,7 @@ struct cxl_root_decoder *cxl_root_decoder_alloc(struct cxl_port *port,
if (!is_cxl_root(port))
return ERR_PTR(-EINVAL);
- cxlrd = kzalloc(struct_size(cxlrd, cxlsd.target, nr_targets),
- GFP_KERNEL);
+ cxlrd = kzalloc_flex(*cxlrd, cxlsd.target, nr_targets, GFP_KERNEL);
if (!cxlrd)
return ERR_PTR(-ENOMEM);
@@ -2071,7 +2070,7 @@ struct cxl_switch_decoder *cxl_switch_decoder_alloc(struct cxl_port *port,
if (is_cxl_root(port) || is_cxl_endpoint(port))
return ERR_PTR(-EINVAL);
- cxlsd = kzalloc(struct_size(cxlsd, target, nr_targets), GFP_KERNEL);
+ cxlsd = kzalloc_flex(*cxlsd, target, nr_targets, GFP_KERNEL);
if (!cxlsd)
return ERR_PTR(-ENOMEM);
@@ -2102,7 +2101,7 @@ struct cxl_endpoint_decoder *cxl_endpoint_decoder_alloc(struct cxl_port *port)
if (!is_cxl_endpoint(port))
return ERR_PTR(-EINVAL);
- cxled = kzalloc(sizeof(*cxled), GFP_KERNEL);
+ cxled = kzalloc_obj(*cxled, GFP_KERNEL);
if (!cxled)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
index 08fa3deef70a..288448cff91b 100644
--- a/drivers/cxl/core/region.c
+++ b/drivers/cxl/core/region.c
@@ -998,7 +998,7 @@ alloc_region_ref(struct cxl_port *port, struct cxl_region *cxlr,
return ERR_PTR(-EBUSY);
}
- cxl_rr = kzalloc(sizeof(*cxl_rr), GFP_KERNEL);
+ cxl_rr = kzalloc_obj(*cxl_rr, GFP_KERNEL);
if (!cxl_rr)
return ERR_PTR(-ENOMEM);
cxl_rr->port = port;
@@ -2474,7 +2474,7 @@ static struct cxl_region *cxl_region_alloc(struct cxl_root_decoder *cxlrd, int i
struct cxl_region *cxlr;
struct device *dev;
- cxlr = kzalloc(sizeof(*cxlr), GFP_KERNEL);
+ cxlr = kzalloc_obj(*cxlr, GFP_KERNEL);
if (!cxlr) {
memregion_free(id);
return ERR_PTR(-ENOMEM);
@@ -3464,7 +3464,7 @@ static int cxl_pmem_region_alloc(struct cxl_region *cxlr)
return -ENXIO;
struct cxl_pmem_region *cxlr_pmem __free(kfree) =
- kzalloc(struct_size(cxlr_pmem, mapping, p->nr_targets), GFP_KERNEL);
+ kzalloc_flex(*cxlr_pmem, mapping, p->nr_targets, GFP_KERNEL);
if (!cxlr_pmem)
return -ENOMEM;
@@ -3552,7 +3552,7 @@ static struct cxl_dax_region *cxl_dax_region_alloc(struct cxl_region *cxlr)
if (p->state != CXL_CONFIG_COMMIT)
return ERR_PTR(-ENXIO);
- cxlr_dax = kzalloc(sizeof(*cxlr_dax), GFP_KERNEL);
+ cxlr_dax = kzalloc_obj(*cxlr_dax, GFP_KERNEL);
if (!cxlr_dax)
return ERR_PTR(-ENOMEM);
@@ -3835,7 +3835,7 @@ static int __construct_region(struct cxl_region *cxlr,
set_bit(CXL_REGION_F_AUTO, &cxlr->flags);
cxlr->hpa_range = *hpa_range;
- res = kmalloc(sizeof(*res), GFP_KERNEL);
+ res = kmalloc_obj(*res, GFP_KERNEL);
if (!res)
return -ENOMEM;
diff --git a/drivers/cxl/pmem.c b/drivers/cxl/pmem.c
index e197883690ef..ead92ca37a4e 100644
--- a/drivers/cxl/pmem.c
+++ b/drivers/cxl/pmem.c
@@ -234,7 +234,7 @@ static int cxl_pmem_set_config_data(struct cxl_memdev_state *mds,
return -EINVAL;
set_lsa =
- kvzalloc(struct_size(set_lsa, data, cmd->in_length), GFP_KERNEL);
+ kvzalloc_flex(*set_lsa, data, cmd->in_length, GFP_KERNEL);
if (!set_lsa)
return -ENOMEM;
@@ -426,7 +426,7 @@ static int cxl_pmem_region_probe(struct device *dev)
set_bit(ND_REGION_CXL, &ndr_desc.flags);
set_bit(ND_REGION_PERSIST_MEMCTRL, &ndr_desc.flags);
- info = kmalloc_array(cxlr_pmem->nr_mappings, sizeof(*info), GFP_KERNEL);
+ info = kmalloc_objs(*info, cxlr_pmem->nr_mappings, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/dax/bus.c b/drivers/dax/bus.c
index fde29e0ad68b..3faaaa7a507b 100644
--- a/drivers/dax/bus.c
+++ b/drivers/dax/bus.c
@@ -110,7 +110,7 @@ static ssize_t do_id_store(struct device_driver *drv, const char *buf,
dax_id = __dax_match_id(dax_drv, buf);
if (!dax_id) {
if (action == ID_ADD) {
- dax_id = kzalloc(sizeof(*dax_id), GFP_KERNEL);
+ dax_id = kzalloc_obj(*dax_id, GFP_KERNEL);
if (dax_id) {
strscpy(dax_id->dev_name, buf, DAX_NAME_LEN);
list_add(&dax_id->list, &dax_drv->ids);
@@ -650,7 +650,7 @@ struct dax_region *alloc_dax_region(struct device *parent, int region_id,
|| !IS_ALIGNED(range_len(range), align))
return NULL;
- dax_region = kzalloc(sizeof(*dax_region), GFP_KERNEL);
+ dax_region = kzalloc_obj(*dax_region, GFP_KERNEL);
if (!dax_region)
return NULL;
@@ -807,7 +807,7 @@ static int devm_register_dax_mapping(struct dev_dax *dev_dax, int range_id)
"region disabled\n"))
return -ENXIO;
- mapping = kzalloc(sizeof(*mapping), GFP_KERNEL);
+ mapping = kzalloc_obj(*mapping, GFP_KERNEL);
if (!mapping)
return -ENOMEM;
mapping->range_id = range_id;
@@ -1427,7 +1427,7 @@ static struct dev_dax *__devm_create_dev_dax(struct dev_dax_data *data)
struct device *dev;
int rc;
- dev_dax = kzalloc(sizeof(*dev_dax), GFP_KERNEL);
+ dev_dax = kzalloc_obj(*dev_dax, GFP_KERNEL);
if (!dev_dax)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/dax/kmem.c b/drivers/dax/kmem.c
index c036e4d0b610..8618115cc56f 100644
--- a/drivers/dax/kmem.c
+++ b/drivers/dax/kmem.c
@@ -121,7 +121,7 @@ static int dev_dax_kmem_probe(struct dev_dax *dev_dax)
init_node_memory_type(numa_node, mtype);
rc = -ENOMEM;
- data = kzalloc(struct_size(data, res, dev_dax->nr_range), GFP_KERNEL);
+ data = kzalloc_flex(*data, res, dev_dax->nr_range, GFP_KERNEL);
if (!data)
goto err_dax_kmem_data;
diff --git a/drivers/dca/dca-core.c b/drivers/dca/dca-core.c
index f5cedf816be1..583510850fad 100644
--- a/drivers/dca/dca-core.c
+++ b/drivers/dca/dca-core.c
@@ -44,7 +44,7 @@ static struct dca_domain *dca_allocate_domain(struct pci_bus *rc)
{
struct dca_domain *domain;
- domain = kzalloc(sizeof(*domain), GFP_NOWAIT);
+ domain = kzalloc_obj(*domain, GFP_NOWAIT);
if (!domain)
return NULL;
diff --git a/drivers/devfreq/devfreq-event.c b/drivers/devfreq/devfreq-event.c
index 70219099c604..36bb954e27ca 100644
--- a/drivers/devfreq/devfreq-event.c
+++ b/drivers/devfreq/devfreq-event.c
@@ -313,7 +313,7 @@ struct devfreq_event_dev *devfreq_event_add_edev(struct device *dev,
if (!desc->ops->set_event || !desc->ops->get_event)
return ERR_PTR(-EINVAL);
- edev = kzalloc(sizeof(struct devfreq_event_dev), GFP_KERNEL);
+ edev = kzalloc_obj(struct devfreq_event_dev, GFP_KERNEL);
if (!edev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index 00979f2e0e27..5c094c884aba 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -821,7 +821,7 @@ struct devfreq *devfreq_add_device(struct device *dev,
goto err_out;
}
- devfreq = kzalloc(sizeof(struct devfreq), GFP_KERNEL);
+ devfreq = kzalloc_obj(struct devfreq, GFP_KERNEL);
if (!devfreq) {
err = -ENOMEM;
goto err_out;
diff --git a/drivers/devfreq/governor_passive.c b/drivers/devfreq/governor_passive.c
index 8cd6f9a59f64..c0271cc76bd9 100644
--- a/drivers/devfreq/governor_passive.c
+++ b/drivers/devfreq/governor_passive.c
@@ -310,8 +310,7 @@ static int cpufreq_passive_register_notifier(struct devfreq *devfreq)
continue;
}
- parent_cpu_data = kzalloc(sizeof(*parent_cpu_data),
- GFP_KERNEL);
+ parent_cpu_data = kzalloc_obj(*parent_cpu_data, GFP_KERNEL);
if (!parent_cpu_data) {
ret = -ENOMEM;
goto err_put_policy;
diff --git a/drivers/devfreq/governor_userspace.c b/drivers/devfreq/governor_userspace.c
index 395174f93960..70509a1ceecd 100644
--- a/drivers/devfreq/governor_userspace.c
+++ b/drivers/devfreq/governor_userspace.c
@@ -87,8 +87,8 @@ static const struct attribute_group dev_attr_group = {
static int userspace_init(struct devfreq *devfreq)
{
int err = 0;
- struct userspace_data *data = kzalloc(sizeof(struct userspace_data),
- GFP_KERNEL);
+ struct userspace_data *data = kzalloc_obj(struct userspace_data,
+ GFP_KERNEL);
if (!data) {
err = -ENOMEM;
diff --git a/drivers/dibs/dibs_loopback.c b/drivers/dibs/dibs_loopback.c
index aa029e29c6b2..95ddc7712a89 100644
--- a/drivers/dibs/dibs_loopback.c
+++ b/drivers/dibs/dibs_loopback.c
@@ -64,7 +64,7 @@ static int dibs_lo_register_dmb(struct dibs_dev *dibs, struct dibs_dmb *dmb,
if (sba_idx == DIBS_LO_MAX_DMBS)
return -ENOSPC;
- dmb_node = kzalloc(sizeof(*dmb_node), GFP_KERNEL);
+ dmb_node = kzalloc_obj(*dmb_node, GFP_KERNEL);
if (!dmb_node) {
rc = -ENOMEM;
goto err_bit;
@@ -303,7 +303,7 @@ static int dibs_lo_dev_probe(void)
struct dibs_dev *dibs;
int ret;
- ldev = kzalloc(sizeof(*ldev), GFP_KERNEL);
+ ldev = kzalloc_obj(*ldev, GFP_KERNEL);
if (!ldev)
return -ENOMEM;
diff --git a/drivers/dibs/dibs_main.c b/drivers/dibs/dibs_main.c
index b8c16586706c..b763c4ab1a4e 100644
--- a/drivers/dibs/dibs_main.c
+++ b/drivers/dibs/dibs_main.c
@@ -133,7 +133,7 @@ struct dibs_dev *dibs_dev_alloc(void)
{
struct dibs_dev *dibs;
- dibs = kzalloc(sizeof(*dibs), GFP_KERNEL);
+ dibs = kzalloc_obj(*dibs, GFP_KERNEL);
if (!dibs)
return dibs;
dibs->dev.release = dibs_dev_release;
diff --git a/drivers/dio/dio.c b/drivers/dio/dio.c
index 0a051d656880..86500b6c4c53 100644
--- a/drivers/dio/dio.c
+++ b/drivers/dio/dio.c
@@ -221,7 +221,7 @@ static int __init dio_init(void)
}
/* Found a board, allocate it an entry in the list */
- dev = kzalloc(sizeof(struct dio_dev), GFP_KERNEL);
+ dev = kzalloc_obj(struct dio_dev, GFP_KERNEL);
if (!dev) {
if (scode >= DIOII_SCBASE)
iounmap(va);
diff --git a/drivers/dma-buf/dma-buf-mapping.c b/drivers/dma-buf/dma-buf-mapping.c
index 174677faa577..d9374f2ff0ca 100644
--- a/drivers/dma-buf/dma-buf-mapping.c
+++ b/drivers/dma-buf/dma-buf-mapping.c
@@ -108,7 +108,7 @@ struct sg_table *dma_buf_phys_vec_to_sgt(struct dma_buf_attachment *attach,
/* This function is supposed to work on MMIO memory only */
return ERR_PTR(-EINVAL);
- dma = kzalloc(sizeof(*dma), GFP_KERNEL);
+ dma = kzalloc_obj(*dma, GFP_KERNEL);
if (!dma)
return ERR_PTR(-ENOMEM);
@@ -119,7 +119,7 @@ struct sg_table *dma_buf_phys_vec_to_sgt(struct dma_buf_attachment *attach,
*/
break;
case PCI_P2PDMA_MAP_THRU_HOST_BRIDGE:
- dma->state = kzalloc(sizeof(*dma->state), GFP_KERNEL);
+ dma->state = kzalloc_obj(*dma->state, GFP_KERNEL);
if (!dma->state) {
ret = -ENOMEM;
goto err_free_dma;
diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
index 77555096e4c7..71d5e7e42653 100644
--- a/drivers/dma-buf/dma-buf.c
+++ b/drivers/dma-buf/dma-buf.c
@@ -866,7 +866,7 @@ static int dma_buf_wrap_sg_table(struct sg_table **sg_table)
* sg_table without copying the page_link and give only the copy back to
* the importer.
*/
- to = kzalloc(sizeof(*to), GFP_KERNEL);
+ to = kzalloc_obj(*to, GFP_KERNEL);
if (!to)
return -ENOMEM;
@@ -1020,7 +1020,7 @@ dma_buf_dynamic_attach(struct dma_buf *dmabuf, struct device *dev,
if (WARN_ON(importer_ops && !importer_ops->move_notify))
return ERR_PTR(-EINVAL);
- attach = kzalloc(sizeof(*attach), GFP_KERNEL);
+ attach = kzalloc_obj(*attach, GFP_KERNEL);
if (!attach)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/dma-buf/dma-fence-array.c b/drivers/dma-buf/dma-fence-array.c
index 6657d4b30af9..eb27fcc0aad5 100644
--- a/drivers/dma-buf/dma-fence-array.c
+++ b/drivers/dma-buf/dma-fence-array.c
@@ -179,7 +179,7 @@ struct dma_fence_array *dma_fence_array_alloc(int num_fences)
{
struct dma_fence_array *array;
- return kzalloc(struct_size(array, callbacks, num_fences), GFP_KERNEL);
+ return kzalloc_flex(*array, callbacks, num_fences, GFP_KERNEL);
}
EXPORT_SYMBOL(dma_fence_array_alloc);
diff --git a/drivers/dma-buf/dma-fence-unwrap.c b/drivers/dma-buf/dma-fence-unwrap.c
index a495d8a6c2e3..dc2525b2a03f 100644
--- a/drivers/dma-buf/dma-fence-unwrap.c
+++ b/drivers/dma-buf/dma-fence-unwrap.c
@@ -155,7 +155,7 @@ struct dma_fence *__dma_fence_unwrap_merge(unsigned int num_fences,
dma_fence_put(unsignaled);
- array = kmalloc_array(count, sizeof(*array), GFP_KERNEL);
+ array = kmalloc_objs(*array, count, GFP_KERNEL);
if (!array)
return NULL;
diff --git a/drivers/dma-buf/dma-fence.c b/drivers/dma-buf/dma-fence.c
index 21c5c30b4f34..97f0f150e49a 100644
--- a/drivers/dma-buf/dma-fence.c
+++ b/drivers/dma-buf/dma-fence.c
@@ -156,7 +156,7 @@ struct dma_fence *dma_fence_allocate_private_stub(ktime_t timestamp)
{
struct dma_fence *fence;
- fence = kzalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kzalloc_obj(*fence, GFP_KERNEL);
if (fence == NULL)
return NULL;
@@ -905,7 +905,7 @@ dma_fence_wait_any_timeout(struct dma_fence **fences, uint32_t count,
return 0;
}
- cb = kcalloc(count, sizeof(struct default_wait_cb), GFP_KERNEL);
+ cb = kzalloc_objs(struct default_wait_cb, count, GFP_KERNEL);
if (cb == NULL) {
ret = -ENOMEM;
goto err_free_cb;
diff --git a/drivers/dma-buf/dma-heap.c b/drivers/dma-buf/dma-heap.c
index d230ddeb24e0..e0b9eb871c35 100644
--- a/drivers/dma-buf/dma-heap.c
+++ b/drivers/dma-buf/dma-heap.c
@@ -244,7 +244,7 @@ struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info)
return ERR_PTR(-EINVAL);
}
- heap = kzalloc(sizeof(*heap), GFP_KERNEL);
+ heap = kzalloc_obj(*heap, GFP_KERNEL);
if (!heap)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/dma-buf/heaps/cma_heap.c b/drivers/dma-buf/heaps/cma_heap.c
index 49cc45fb42dd..06ed40c9d528 100644
--- a/drivers/dma-buf/heaps/cma_heap.c
+++ b/drivers/dma-buf/heaps/cma_heap.c
@@ -74,7 +74,7 @@ static int cma_heap_attach(struct dma_buf *dmabuf,
struct dma_heap_attachment *a;
int ret;
- a = kzalloc(sizeof(*a), GFP_KERNEL);
+ a = kzalloc_obj(*a, GFP_KERNEL);
if (!a)
return -ENOMEM;
@@ -308,7 +308,7 @@ static struct dma_buf *cma_heap_allocate(struct dma_heap *heap,
int ret = -ENOMEM;
pgoff_t pg;
- buffer = kzalloc(sizeof(*buffer), GFP_KERNEL);
+ buffer = kzalloc_obj(*buffer, GFP_KERNEL);
if (!buffer)
return ERR_PTR(-ENOMEM);
@@ -346,7 +346,7 @@ static struct dma_buf *cma_heap_allocate(struct dma_heap *heap,
memset(page_address(cma_pages), 0, size);
}
- buffer->pages = kmalloc_array(pagecount, sizeof(*buffer->pages), GFP_KERNEL);
+ buffer->pages = kmalloc_objs(*buffer->pages, pagecount, GFP_KERNEL);
if (!buffer->pages) {
ret = -ENOMEM;
goto free_cma;
@@ -391,7 +391,7 @@ static int __init __add_cma_heap(struct cma *cma, const char *name)
struct dma_heap_export_info exp_info;
struct cma_heap *cma_heap;
- cma_heap = kzalloc(sizeof(*cma_heap), GFP_KERNEL);
+ cma_heap = kzalloc_obj(*cma_heap, GFP_KERNEL);
if (!cma_heap)
return -ENOMEM;
cma_heap->cma = cma;
diff --git a/drivers/dma-buf/heaps/system_heap.c b/drivers/dma-buf/heaps/system_heap.c
index 4049d042afa1..27ba8e55d909 100644
--- a/drivers/dma-buf/heaps/system_heap.c
+++ b/drivers/dma-buf/heaps/system_heap.c
@@ -77,7 +77,7 @@ static int system_heap_attach(struct dma_buf *dmabuf,
struct dma_heap_attachment *a;
int ret;
- a = kzalloc(sizeof(*a), GFP_KERNEL);
+ a = kzalloc_obj(*a, GFP_KERNEL);
if (!a)
return -ENOMEM;
@@ -354,7 +354,7 @@ static struct dma_buf *system_heap_allocate(struct dma_heap *heap,
struct page *page, *tmp_page;
int i, ret = -ENOMEM;
- buffer = kzalloc(sizeof(*buffer), GFP_KERNEL);
+ buffer = kzalloc_obj(*buffer, GFP_KERNEL);
if (!buffer)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/dma-buf/st-dma-fence-chain.c b/drivers/dma-buf/st-dma-fence-chain.c
index ed4b323886e4..4ae7a6257e57 100644
--- a/drivers/dma-buf/st-dma-fence-chain.c
+++ b/drivers/dma-buf/st-dma-fence-chain.c
@@ -116,13 +116,11 @@ static int fence_chains_init(struct fence_chains *fc, unsigned int count,
unsigned int i;
int err = 0;
- fc->chains = kvmalloc_array(count, sizeof(*fc->chains),
- GFP_KERNEL | __GFP_ZERO);
+ fc->chains = kvmalloc_objs(*fc->chains, count, GFP_KERNEL | __GFP_ZERO);
if (!fc->chains)
return -ENOMEM;
- fc->fences = kvmalloc_array(count, sizeof(*fc->fences),
- GFP_KERNEL | __GFP_ZERO);
+ fc->fences = kvmalloc_objs(*fc->fences, count, GFP_KERNEL | __GFP_ZERO);
if (!fc->fences) {
err = -ENOMEM;
goto err_chains;
@@ -452,7 +450,7 @@ static int find_race(void *arg)
if (err)
return err;
- threads = kmalloc_array(ncpus, sizeof(*threads), GFP_KERNEL);
+ threads = kmalloc_objs(*threads, ncpus, GFP_KERNEL);
if (!threads) {
err = -ENOMEM;
goto err;
diff --git a/drivers/dma-buf/st-dma-fence-unwrap.c b/drivers/dma-buf/st-dma-fence-unwrap.c
index a3be888ae2e8..56802a39874e 100644
--- a/drivers/dma-buf/st-dma-fence-unwrap.c
+++ b/drivers/dma-buf/st-dma-fence-unwrap.c
@@ -32,7 +32,7 @@ static struct dma_fence *__mock_fence(u64 context, u64 seqno)
{
struct mock_fence *f;
- f = kmalloc(sizeof(*f), GFP_KERNEL);
+ f = kmalloc_obj(*f, GFP_KERNEL);
if (!f)
return NULL;
@@ -54,7 +54,7 @@ static struct dma_fence *mock_array(unsigned int num_fences, ...)
va_list valist;
int i;
- fences = kcalloc(num_fences, sizeof(*fences), GFP_KERNEL);
+ fences = kzalloc_objs(*fences, num_fences, GFP_KERNEL);
if (!fences)
goto error_put;
diff --git a/drivers/dma-buf/st-dma-resv.c b/drivers/dma-buf/st-dma-resv.c
index 15dbea1462ed..fad024820f85 100644
--- a/drivers/dma-buf/st-dma-resv.c
+++ b/drivers/dma-buf/st-dma-resv.c
@@ -27,7 +27,7 @@ static struct dma_fence *alloc_fence(void)
{
struct dma_fence *f;
- f = kmalloc(sizeof(*f), GFP_KERNEL);
+ f = kmalloc_obj(*f, GFP_KERNEL);
if (!f)
return NULL;
diff --git a/drivers/dma-buf/sw_sync.c b/drivers/dma-buf/sw_sync.c
index 6f09d13be6b6..d04f479edaee 100644
--- a/drivers/dma-buf/sw_sync.c
+++ b/drivers/dma-buf/sw_sync.c
@@ -101,7 +101,7 @@ static struct sync_timeline *sync_timeline_create(const char *name)
{
struct sync_timeline *obj;
- obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ obj = kzalloc_obj(*obj, GFP_KERNEL);
if (!obj)
return NULL;
@@ -252,7 +252,7 @@ static struct sync_pt *sync_pt_create(struct sync_timeline *obj,
{
struct sync_pt *pt;
- pt = kzalloc(sizeof(*pt), GFP_KERNEL);
+ pt = kzalloc_obj(*pt, GFP_KERNEL);
if (!pt)
return NULL;
diff --git a/drivers/dma-buf/sync_file.c b/drivers/dma-buf/sync_file.c
index 747e377fb954..ad2c3e9e23bc 100644
--- a/drivers/dma-buf/sync_file.c
+++ b/drivers/dma-buf/sync_file.c
@@ -24,7 +24,7 @@ static struct sync_file *sync_file_alloc(void)
{
struct sync_file *sync_file;
- sync_file = kzalloc(sizeof(*sync_file), GFP_KERNEL);
+ sync_file = kzalloc_obj(*sync_file, GFP_KERNEL);
if (!sync_file)
return NULL;
diff --git a/drivers/dma-buf/udmabuf.c b/drivers/dma-buf/udmabuf.c
index 40399c26e6be..816ee45f4f99 100644
--- a/drivers/dma-buf/udmabuf.c
+++ b/drivers/dma-buf/udmabuf.c
@@ -115,7 +115,7 @@ static int vmap_udmabuf(struct dma_buf *buf, struct iosys_map *map)
dma_resv_assert_held(buf->resv);
- pages = kvmalloc_array(ubuf->pagecount, sizeof(*pages), GFP_KERNEL);
+ pages = kvmalloc_objs(*pages, ubuf->pagecount, GFP_KERNEL);
if (!pages)
return -ENOMEM;
@@ -150,7 +150,7 @@ static struct sg_table *get_sg_table(struct device *dev, struct dma_buf *buf,
unsigned int i = 0;
int ret;
- sg = kzalloc(sizeof(*sg), GFP_KERNEL);
+ sg = kzalloc_obj(*sg, GFP_KERNEL);
if (!sg)
return ERR_PTR(-ENOMEM);
@@ -207,17 +207,16 @@ static void unpin_all_folios(struct udmabuf *ubuf)
static __always_inline int init_udmabuf(struct udmabuf *ubuf, pgoff_t pgcnt)
{
- ubuf->folios = kvmalloc_array(pgcnt, sizeof(*ubuf->folios), GFP_KERNEL);
+ ubuf->folios = kvmalloc_objs(*ubuf->folios, pgcnt, GFP_KERNEL);
if (!ubuf->folios)
return -ENOMEM;
- ubuf->offsets = kvcalloc(pgcnt, sizeof(*ubuf->offsets), GFP_KERNEL);
+ ubuf->offsets = kvzalloc_objs(*ubuf->offsets, pgcnt, GFP_KERNEL);
if (!ubuf->offsets)
return -ENOMEM;
- ubuf->pinned_folios = kvmalloc_array(pgcnt,
- sizeof(*ubuf->pinned_folios),
- GFP_KERNEL);
+ ubuf->pinned_folios = kvmalloc_objs(*ubuf->pinned_folios, pgcnt,
+ GFP_KERNEL);
if (!ubuf->pinned_folios)
return -ENOMEM;
diff --git a/drivers/dma/acpi-dma.c b/drivers/dma/acpi-dma.c
index 2abbe11e797e..d7a033822045 100644
--- a/drivers/dma/acpi-dma.c
+++ b/drivers/dma/acpi-dma.c
@@ -189,7 +189,7 @@ int acpi_dma_controller_register(struct device *dev,
if (!adev)
return -EINVAL;
- adma = kzalloc(sizeof(*adma), GFP_KERNEL);
+ adma = kzalloc_obj(*adma, GFP_KERNEL);
if (!adma)
return -ENOMEM;
diff --git a/drivers/dma/altera-msgdma.c b/drivers/dma/altera-msgdma.c
index 50534a6045a0..b46999c81df0 100644
--- a/drivers/dma/altera-msgdma.c
+++ b/drivers/dma/altera-msgdma.c
@@ -657,7 +657,7 @@ static int msgdma_alloc_chan_resources(struct dma_chan *dchan)
struct msgdma_sw_desc *desc;
int i;
- mdev->sw_desq = kcalloc(MSGDMA_DESC_NUM, sizeof(*desc), GFP_NOWAIT);
+ mdev->sw_desq = kzalloc_objs(*desc, MSGDMA_DESC_NUM, GFP_NOWAIT);
if (!mdev->sw_desq)
return -ENOMEM;
diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c
index f16a70937200..fb9dad69c314 100644
--- a/drivers/dma/amba-pl08x.c
+++ b/drivers/dma/amba-pl08x.c
@@ -1743,7 +1743,7 @@ static void pl08x_issue_pending(struct dma_chan *chan)
static struct pl08x_txd *pl08x_get_txd(struct pl08x_dma_chan *plchan)
{
- struct pl08x_txd *txd = kzalloc(sizeof(*txd), GFP_NOWAIT);
+ struct pl08x_txd *txd = kzalloc_obj(*txd, GFP_NOWAIT);
if (txd)
INIT_LIST_HEAD(&txd->dsg_list);
@@ -1895,7 +1895,7 @@ static struct dma_async_tx_descriptor *pl08x_prep_dma_memcpy(
return NULL;
}
- dsg = kzalloc(sizeof(struct pl08x_sg), GFP_NOWAIT);
+ dsg = kzalloc_obj(struct pl08x_sg, GFP_NOWAIT);
if (!dsg) {
pl08x_free_txd(pl08x, txd);
return NULL;
@@ -2020,7 +2020,7 @@ static int pl08x_tx_add_sg(struct pl08x_txd *txd,
{
struct pl08x_sg *dsg;
- dsg = kzalloc(sizeof(struct pl08x_sg), GFP_NOWAIT);
+ dsg = kzalloc_obj(struct pl08x_sg, GFP_NOWAIT);
if (!dsg)
return -ENOMEM;
@@ -2372,7 +2372,7 @@ static int pl08x_dma_init_virtual_channels(struct pl08x_driver_data *pl08x,
* to cope with that situation.
*/
for (i = 0; i < channels; i++) {
- chan = kzalloc(sizeof(*chan), GFP_KERNEL);
+ chan = kzalloc_obj(*chan, GFP_KERNEL);
if (!chan)
return -ENOMEM;
@@ -2390,7 +2390,7 @@ static int pl08x_dma_init_virtual_channels(struct pl08x_driver_data *pl08x,
chan->signal = i;
pl08x_dma_slave_init(chan);
} else {
- chan->cd = kzalloc(sizeof(*chan->cd), GFP_KERNEL);
+ chan->cd = kzalloc_obj(*chan->cd, GFP_KERNEL);
if (!chan->cd) {
kfree(chan);
return -ENOMEM;
@@ -2709,7 +2709,7 @@ static int pl08x_probe(struct amba_device *adev, const struct amba_id *id)
goto out_no_pl08x;
/* Create the driver state holder */
- pl08x = kzalloc(sizeof(*pl08x), GFP_KERNEL);
+ pl08x = kzalloc_obj(*pl08x, GFP_KERNEL);
if (!pl08x) {
ret = -ENOMEM;
goto out_no_pl08x;
@@ -2855,8 +2855,8 @@ static int pl08x_probe(struct amba_device *adev, const struct amba_id *id)
}
/* Initialize physical channels */
- pl08x->phy_chans = kcalloc(vd->channels, sizeof(*pl08x->phy_chans),
- GFP_KERNEL);
+ pl08x->phy_chans = kzalloc_objs(*pl08x->phy_chans, vd->channels,
+ GFP_KERNEL);
if (!pl08x->phy_chans) {
ret = -ENOMEM;
goto out_no_phychans;
diff --git a/drivers/dma/amd/qdma/qdma.c b/drivers/dma/amd/qdma/qdma.c
index 8fb2d5e1df20..f5a02c6ed348 100644
--- a/drivers/dma/amd/qdma/qdma.c
+++ b/drivers/dma/amd/qdma/qdma.c
@@ -769,7 +769,7 @@ qdma_prep_device_sg(struct dma_chan *chan, struct scatterlist *sgl,
struct dma_async_tx_descriptor *tx;
struct qdma_mm_vdesc *vdesc;
- vdesc = kzalloc(sizeof(*vdesc), GFP_NOWAIT);
+ vdesc = kzalloc_obj(*vdesc, GFP_NOWAIT);
if (!vdesc)
return NULL;
vdesc->sgl = sgl;
diff --git a/drivers/dma/apple-admac.c b/drivers/dma/apple-admac.c
index 04bbd774b3b4..14a5ee14a481 100644
--- a/drivers/dma/apple-admac.c
+++ b/drivers/dma/apple-admac.c
@@ -260,7 +260,7 @@ static struct dma_async_tx_descriptor *admac_prep_dma_cyclic(
if (direction != admac_chan_direction(adchan->no))
return NULL;
- adtx = kzalloc(sizeof(*adtx), GFP_NOWAIT);
+ adtx = kzalloc_obj(*adtx, GFP_NOWAIT);
if (!adtx)
return NULL;
diff --git a/drivers/dma/arm-dma350.c b/drivers/dma/arm-dma350.c
index 9efe2ca7d5ec..84220fa83029 100644
--- a/drivers/dma/arm-dma350.c
+++ b/drivers/dma/arm-dma350.c
@@ -219,7 +219,7 @@ static struct dma_async_tx_descriptor *d350_prep_memcpy(struct dma_chan *chan,
struct d350_desc *desc;
u32 *cmd;
- desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
+ desc = kzalloc_obj(*desc, GFP_NOWAIT);
if (!desc)
return NULL;
@@ -257,7 +257,7 @@ static struct dma_async_tx_descriptor *d350_prep_memset(struct dma_chan *chan,
struct d350_desc *desc;
u32 *cmd;
- desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
+ desc = kzalloc_obj(*desc, GFP_NOWAIT);
if (!desc)
return NULL;
diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index 22bb604a3f97..935e3264ccec 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -929,7 +929,7 @@ atc_prep_dma_interleaved(struct dma_chan *chan,
ATC_SRC_PIP | ATC_DST_PIP |
FIELD_PREP(ATC_FC, ATC_FC_MEM2MEM);
- desc = kzalloc(struct_size(desc, sg, 1), GFP_ATOMIC);
+ desc = kzalloc_flex(*desc, sg, 1, GFP_ATOMIC);
if (!desc)
return NULL;
desc->sglen = 1;
@@ -992,7 +992,7 @@ atc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
}
sg_len = DIV_ROUND_UP(len, ATC_BTSIZE_MAX);
- desc = kzalloc(struct_size(desc, sg, sg_len), GFP_ATOMIC);
+ desc = kzalloc_flex(*desc, sg, sg_len, GFP_ATOMIC);
if (!desc)
return NULL;
desc->sglen = sg_len;
@@ -1131,7 +1131,7 @@ atc_prep_dma_memset(struct dma_chan *chan, dma_addr_t dest, int value,
(fill_pattern << 8) |
fill_pattern;
- desc = kzalloc(struct_size(desc, sg, 1), GFP_ATOMIC);
+ desc = kzalloc_flex(*desc, sg, 1, GFP_ATOMIC);
if (!desc)
goto err_free_buffer;
desc->sglen = 1;
@@ -1191,7 +1191,7 @@ atc_prep_dma_memset_sg(struct dma_chan *chan,
}
*(u32*)vaddr = value;
- desc = kzalloc(struct_size(desc, sg, sg_len), GFP_ATOMIC);
+ desc = kzalloc_flex(*desc, sg, sg_len, GFP_ATOMIC);
if (!desc)
goto err_free_dma_buf;
desc->sglen = sg_len;
@@ -1274,7 +1274,7 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
return NULL;
}
- desc = kzalloc(struct_size(desc, sg, sg_len), GFP_ATOMIC);
+ desc = kzalloc_flex(*desc, sg, sg_len, GFP_ATOMIC);
if (!desc)
return NULL;
desc->sglen = sg_len;
@@ -1531,7 +1531,7 @@ atc_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
if (atc_dma_cyclic_check_values(reg_width, buf_addr, period_len))
goto err_out;
- desc = kzalloc(struct_size(desc, sg, periods), GFP_ATOMIC);
+ desc = kzalloc_flex(*desc, sg, periods, GFP_ATOMIC);
if (!desc)
goto err_out;
desc->sglen = periods;
@@ -1818,7 +1818,7 @@ static struct dma_chan *at_dma_xlate(struct of_phandle_args *dma_spec,
dma_cap_zero(mask);
dma_cap_set(DMA_SLAVE, mask);
- atslave = kmalloc(sizeof(*atslave), GFP_KERNEL);
+ atslave = kmalloc_obj(*atslave, GFP_KERNEL);
if (!atslave) {
put_device(&dmac_pdev->dev);
return NULL;
diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c
index 3f638c3e81cd..06d830d36882 100644
--- a/drivers/dma/bcm2835-dma.c
+++ b/drivers/dma/bcm2835-dma.c
@@ -297,7 +297,7 @@ static struct bcm2835_desc *bcm2835_dma_create_cb_chain(
return NULL;
/* allocate and setup the descriptor. */
- d = kzalloc(struct_size(d, cb_list, frames), gfp);
+ d = kzalloc_flex(*d, cb_list, frames, gfp);
if (!d)
return NULL;
diff --git a/drivers/dma/bestcomm/bestcomm.c b/drivers/dma/bestcomm/bestcomm.c
index 6c4d655ffe77..e1b259c781ca 100644
--- a/drivers/dma/bestcomm/bestcomm.c
+++ b/drivers/dma/bestcomm/bestcomm.c
@@ -393,7 +393,7 @@ static int mpc52xx_bcom_probe(struct platform_device *op)
}
/* Get a clean struct */
- bcom_eng = kzalloc(sizeof(struct bcom_engine), GFP_KERNEL);
+ bcom_eng = kzalloc_obj(struct bcom_engine, GFP_KERNEL);
if (!bcom_eng) {
rv = -ENOMEM;
goto error_sramclean;
diff --git a/drivers/dma/bestcomm/sram.c b/drivers/dma/bestcomm/sram.c
index ad74d57cc3ab..c34639c30986 100644
--- a/drivers/dma/bestcomm/sram.c
+++ b/drivers/dma/bestcomm/sram.c
@@ -48,7 +48,7 @@ int bcom_sram_init(struct device_node *sram_node, char *owner)
return -EBUSY;
}
- bcom_sram = kmalloc(sizeof(struct bcom_sram), GFP_KERNEL);
+ bcom_sram = kmalloc_obj(struct bcom_sram, GFP_KERNEL);
if (!bcom_sram) {
printk(KERN_ERR "%s: bcom_sram_init: "
"Couldn't allocate internal state !\n", owner);
diff --git a/drivers/dma/dma-axi-dmac.c b/drivers/dma/dma-axi-dmac.c
index f5caf75dc0e7..eb65872c5d5c 100644
--- a/drivers/dma/dma-axi-dmac.c
+++ b/drivers/dma/dma-axi-dmac.c
@@ -540,7 +540,7 @@ axi_dmac_alloc_desc(struct axi_dmac_chan *chan, unsigned int num_sgs)
dma_addr_t hw_phys;
unsigned int i;
- desc = kzalloc(struct_size(desc, sg, num_sgs), GFP_NOWAIT);
+ desc = kzalloc_flex(*desc, sg, num_sgs, GFP_NOWAIT);
if (!desc)
return NULL;
desc->num_sgs = num_sgs;
diff --git a/drivers/dma/dma-jz4780.c b/drivers/dma/dma-jz4780.c
index 100057603fd4..6070dfdb7114 100644
--- a/drivers/dma/dma-jz4780.c
+++ b/drivers/dma/dma-jz4780.c
@@ -237,7 +237,7 @@ jz4780_dma_desc_alloc(struct jz4780_dma_chan *jzchan, unsigned int count,
if (count > JZ_DMA_MAX_DESC)
return NULL;
- desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
+ desc = kzalloc_obj(*desc, GFP_NOWAIT);
if (!desc)
return NULL;
diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c
index ca13cd39330b..b43a7b3a6a8d 100644
--- a/drivers/dma/dmaengine.c
+++ b/drivers/dma/dmaengine.c
@@ -1075,7 +1075,7 @@ static int __dma_async_device_channel_register(struct dma_device *device,
chan->local = alloc_percpu(typeof(*chan->local));
if (!chan->local)
return -ENOMEM;
- chan->dev = kzalloc(sizeof(*chan->dev), GFP_KERNEL);
+ chan->dev = kzalloc_obj(*chan->dev, GFP_KERNEL);
if (!chan->dev) {
rc = -ENOMEM;
goto err_free_local;
diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c
index 91b2fbc0b864..1a18b8985afc 100644
--- a/drivers/dma/dmatest.c
+++ b/drivers/dma/dmatest.c
@@ -677,11 +677,11 @@ static int dmatest_func(void *data)
set_user_nice(current, 10);
- srcs = kcalloc(src->cnt, sizeof(dma_addr_t), GFP_KERNEL);
+ srcs = kzalloc_objs(dma_addr_t, src->cnt, GFP_KERNEL);
if (!srcs)
goto err_dst;
- dma_pq = kcalloc(dst->cnt, sizeof(dma_addr_t), GFP_KERNEL);
+ dma_pq = kzalloc_objs(dma_addr_t, dst->cnt, GFP_KERNEL);
if (!dma_pq)
goto err_srcs_array;
@@ -987,7 +987,7 @@ static int dmatest_add_threads(struct dmatest_info *info,
return -EINVAL;
for (i = 0; i < params->threads_per_chan; i++) {
- thread = kzalloc(sizeof(struct dmatest_thread), GFP_KERNEL);
+ thread = kzalloc_obj(struct dmatest_thread, GFP_KERNEL);
if (!thread) {
pr_warn("No memory for %s-%s%u\n",
dma_chan_name(chan), op, i);
@@ -1025,7 +1025,7 @@ static int dmatest_add_channel(struct dmatest_info *info,
unsigned int thread_count = 0;
int cnt;
- dtc = kmalloc(sizeof(struct dmatest_chan), GFP_KERNEL);
+ dtc = kmalloc_obj(struct dmatest_chan, GFP_KERNEL);
if (!dtc) {
pr_warn("No memory for %s\n", dma_chan_name(chan));
return -ENOMEM;
diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
index 493c2a32b0fe..5d74bc29cf89 100644
--- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
+++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
@@ -293,11 +293,11 @@ static struct axi_dma_desc *axi_desc_alloc(u32 num)
{
struct axi_dma_desc *desc;
- desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
+ desc = kzalloc_obj(*desc, GFP_NOWAIT);
if (!desc)
return NULL;
- desc->hw_desc = kcalloc(num, sizeof(*desc->hw_desc), GFP_NOWAIT);
+ desc->hw_desc = kzalloc_objs(*desc->hw_desc, num, GFP_NOWAIT);
if (!desc->hw_desc) {
kfree(desc);
return NULL;
diff --git a/drivers/dma/dw-edma/dw-edma-core.c b/drivers/dma/dw-edma/dw-edma-core.c
index 8e5f7defa6b6..e7d698b352d3 100644
--- a/drivers/dma/dw-edma/dw-edma-core.c
+++ b/drivers/dma/dw-edma/dw-edma-core.c
@@ -44,7 +44,7 @@ static struct dw_edma_burst *dw_edma_alloc_burst(struct dw_edma_chunk *chunk)
{
struct dw_edma_burst *burst;
- burst = kzalloc(sizeof(*burst), GFP_NOWAIT);
+ burst = kzalloc_obj(*burst, GFP_NOWAIT);
if (unlikely(!burst))
return NULL;
@@ -68,7 +68,7 @@ static struct dw_edma_chunk *dw_edma_alloc_chunk(struct dw_edma_desc *desc)
struct dw_edma_chan *chan = desc->chan;
struct dw_edma_chunk *chunk;
- chunk = kzalloc(sizeof(*chunk), GFP_NOWAIT);
+ chunk = kzalloc_obj(*chunk, GFP_NOWAIT);
if (unlikely(!chunk))
return NULL;
@@ -111,7 +111,7 @@ static struct dw_edma_desc *dw_edma_alloc_desc(struct dw_edma_chan *chan)
{
struct dw_edma_desc *desc;
- desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
+ desc = kzalloc_obj(*desc, GFP_NOWAIT);
if (unlikely(!desc))
return NULL;
diff --git a/drivers/dma/dw-edma/dw-edma-pcie.c b/drivers/dma/dw-edma/dw-edma-pcie.c
index e9caf8adca1f..df599b563124 100644
--- a/drivers/dma/dw-edma/dw-edma-pcie.c
+++ b/drivers/dma/dw-edma/dw-edma-pcie.c
@@ -167,7 +167,7 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev,
int i, mask;
struct dw_edma_pcie_data *vsec_data __free(kfree) =
- kmalloc(sizeof(*vsec_data), GFP_KERNEL);
+ kmalloc_obj(*vsec_data, GFP_KERNEL);
if (!vsec_data)
return -ENOMEM;
diff --git a/drivers/dma/dw/rzn1-dmamux.c b/drivers/dma/dw/rzn1-dmamux.c
index cbec277af4dd..b0b4ccae2c77 100644
--- a/drivers/dma/dw/rzn1-dmamux.c
+++ b/drivers/dma/dw/rzn1-dmamux.c
@@ -53,7 +53,7 @@ static void *rzn1_dmamux_route_allocate(struct of_phandle_args *dma_spec,
goto put_device;
}
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (!map) {
ret = -ENOMEM;
goto put_device;
diff --git a/drivers/dma/ep93xx_dma.c b/drivers/dma/ep93xx_dma.c
index e424bb5c40e7..375f608c8266 100644
--- a/drivers/dma/ep93xx_dma.c
+++ b/drivers/dma/ep93xx_dma.c
@@ -966,7 +966,7 @@ static int ep93xx_dma_alloc_chan_resources(struct dma_chan *chan)
for (i = 0; i < DMA_MAX_CHAN_DESCRIPTORS; i++) {
struct ep93xx_dma_desc *desc;
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc) {
dev_warn(chan2dev(edmac), "not enough descriptors\n");
break;
diff --git a/drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c b/drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
index 36384d019263..206e6bdaf99d 100644
--- a/drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
+++ b/drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
@@ -99,7 +99,7 @@ dpaa2_qdma_request_desc(struct dpaa2_qdma_chan *dpaa2_chan)
spin_lock_irqsave(&dpaa2_chan->queue_lock, flags);
if (list_empty(&dpaa2_chan->comp_free)) {
spin_unlock_irqrestore(&dpaa2_chan->queue_lock, flags);
- comp_temp = kzalloc(sizeof(*comp_temp), GFP_NOWAIT);
+ comp_temp = kzalloc_obj(*comp_temp, GFP_NOWAIT);
if (!comp_temp)
goto err;
comp_temp->fd_virt_addr =
@@ -353,7 +353,7 @@ static int __cold dpaa2_qdma_setup(struct fsl_mc_device *ls_dev)
}
priv->num_pairs = min(priv->dpdmai_attr.num_of_priorities, prio_def);
- ppriv = kcalloc(priv->num_pairs, sizeof(*ppriv), GFP_KERNEL);
+ ppriv = kzalloc_objs(*ppriv, priv->num_pairs, GFP_KERNEL);
if (!ppriv) {
err = -ENOMEM;
goto exit;
@@ -659,7 +659,7 @@ static int dpaa2_qdma_probe(struct fsl_mc_device *dpdmai_dev)
struct dpaa2_qdma_priv *priv;
int err;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
dev_set_drvdata(dev, priv);
@@ -707,7 +707,7 @@ static int dpaa2_qdma_probe(struct fsl_mc_device *dpdmai_dev)
goto err_enable;
}
- dpaa2_qdma = kzalloc(sizeof(*dpaa2_qdma), GFP_KERNEL);
+ dpaa2_qdma = kzalloc_obj(*dpaa2_qdma, GFP_KERNEL);
if (!dpaa2_qdma) {
err = -ENOMEM;
goto err_eng;
diff --git a/drivers/dma/fsl-edma-common.c b/drivers/dma/fsl-edma-common.c
index 7137f51ff6a0..6a38738e56e2 100644
--- a/drivers/dma/fsl-edma-common.c
+++ b/drivers/dma/fsl-edma-common.c
@@ -565,7 +565,7 @@ static struct fsl_edma_desc *fsl_edma_alloc_desc(struct fsl_edma_chan *fsl_chan,
struct fsl_edma_desc *fsl_desc;
int i;
- fsl_desc = kzalloc(struct_size(fsl_desc, tcd, sg_len), GFP_NOWAIT);
+ fsl_desc = kzalloc_flex(*fsl_desc, tcd, sg_len, GFP_NOWAIT);
if (!fsl_desc)
return NULL;
diff --git a/drivers/dma/fsl-qdma.c b/drivers/dma/fsl-qdma.c
index 6ace5bf80c40..db863bf7b0e6 100644
--- a/drivers/dma/fsl-qdma.c
+++ b/drivers/dma/fsl-qdma.c
@@ -406,7 +406,7 @@ static int fsl_qdma_pre_request_enqueue_desc(struct fsl_qdma_queue *queue)
struct fsl_qdma_comp *comp_temp, *_comp_temp;
for (i = 0; i < queue->n_cq + FSL_COMMAND_QUEUE_OVERFLLOW; i++) {
- comp_temp = kzalloc(sizeof(*comp_temp), GFP_KERNEL);
+ comp_temp = kzalloc_obj(*comp_temp, GFP_KERNEL);
if (!comp_temp)
goto err_alloc;
comp_temp->virt_addr =
diff --git a/drivers/dma/fsl_raid.c b/drivers/dma/fsl_raid.c
index 6e6d7e0e475e..5ba9a14bb78a 100644
--- a/drivers/dma/fsl_raid.c
+++ b/drivers/dma/fsl_raid.c
@@ -290,7 +290,7 @@ static struct fsl_re_desc *fsl_re_chan_alloc_desc(struct fsl_re_chan *re_chan,
spin_unlock_irqrestore(&re_chan->desc_lock, lock_flag);
if (!desc) {
- desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
+ desc = kzalloc_obj(*desc, GFP_NOWAIT);
if (!desc)
return NULL;
@@ -579,7 +579,7 @@ static int fsl_re_alloc_chan_resources(struct dma_chan *chan)
re_chan = container_of(chan, struct fsl_re_chan, chan);
for (i = 0; i < FSL_RE_MIN_DESCS; i++) {
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
break;
diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c
index 9b126a260267..1525b6fe54b4 100644
--- a/drivers/dma/fsldma.c
+++ b/drivers/dma/fsldma.c
@@ -1111,7 +1111,7 @@ static int fsl_dma_chan_probe(struct fsldma_device *fdev,
int err;
/* alloc channel */
- chan = kzalloc(sizeof(*chan), GFP_KERNEL);
+ chan = kzalloc_obj(*chan, GFP_KERNEL);
if (!chan) {
err = -ENOMEM;
goto out_return;
@@ -1218,7 +1218,7 @@ static int fsldma_of_probe(struct platform_device *op)
unsigned int i;
int err;
- fdev = kzalloc(sizeof(*fdev), GFP_KERNEL);
+ fdev = kzalloc_obj(*fdev, GFP_KERNEL);
if (!fdev) {
err = -ENOMEM;
goto out_return;
diff --git a/drivers/dma/hisi_dma.c b/drivers/dma/hisi_dma.c
index 25a4134be36b..32a0e95c6a20 100644
--- a/drivers/dma/hisi_dma.c
+++ b/drivers/dma/hisi_dma.c
@@ -485,7 +485,7 @@ hisi_dma_prep_dma_memcpy(struct dma_chan *c, dma_addr_t dst, dma_addr_t src,
struct hisi_dma_chan *chan = to_hisi_dma_chan(c);
struct hisi_dma_desc *desc;
- desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
+ desc = kzalloc_obj(*desc, GFP_NOWAIT);
if (!desc)
return NULL;
diff --git a/drivers/dma/hsu/hsu.c b/drivers/dma/hsu/hsu.c
index af5a2e252c25..f62d60d7bc6b 100644
--- a/drivers/dma/hsu/hsu.c
+++ b/drivers/dma/hsu/hsu.c
@@ -245,11 +245,11 @@ static struct hsu_dma_desc *hsu_dma_alloc_desc(unsigned int nents)
{
struct hsu_dma_desc *desc;
- desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
+ desc = kzalloc_obj(*desc, GFP_NOWAIT);
if (!desc)
return NULL;
- desc->sg = kcalloc(nents, sizeof(*desc->sg), GFP_NOWAIT);
+ desc->sg = kzalloc_objs(*desc->sg, nents, GFP_NOWAIT);
if (!desc->sg) {
kfree(desc);
return NULL;
diff --git a/drivers/dma/idma64.c b/drivers/dma/idma64.c
index d147353d47ab..5fcd1befc92d 100644
--- a/drivers/dma/idma64.c
+++ b/drivers/dma/idma64.c
@@ -196,11 +196,11 @@ static struct idma64_desc *idma64_alloc_desc(unsigned int ndesc)
{
struct idma64_desc *desc;
- desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
+ desc = kzalloc_obj(*desc, GFP_NOWAIT);
if (!desc)
return NULL;
- desc->hw = kcalloc(ndesc, sizeof(*desc->hw), GFP_NOWAIT);
+ desc->hw = kzalloc_objs(*desc->hw, ndesc, GFP_NOWAIT);
if (!desc->hw) {
kfree(desc);
return NULL;
diff --git a/drivers/dma/idxd/cdev.c b/drivers/dma/idxd/cdev.c
index 7e4715f92773..49fcc429d262 100644
--- a/drivers/dma/idxd/cdev.c
+++ b/drivers/dma/idxd/cdev.c
@@ -232,7 +232,7 @@ static int idxd_cdev_open(struct inode *inode, struct file *filp)
dev_dbg(dev, "%s called: %d\n", __func__, idxd_wq_refcount(wq));
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -538,7 +538,7 @@ int idxd_wq_add_cdev(struct idxd_wq *wq)
struct idxd_cdev_context *cdev_ctx;
int rc, minor;
- idxd_cdev = kzalloc(sizeof(*idxd_cdev), GFP_KERNEL);
+ idxd_cdev = kzalloc_obj(*idxd_cdev, GFP_KERNEL);
if (!idxd_cdev)
return -ENOMEM;
diff --git a/drivers/dma/idxd/irq.c b/drivers/dma/idxd/irq.c
index 1107db3ce0a3..976d8aaa4517 100644
--- a/drivers/dma/idxd/irq.c
+++ b/drivers/dma/idxd/irq.c
@@ -492,7 +492,7 @@ irqreturn_t idxd_misc_thread(int vec, void *data)
val |= IDXD_INTC_INT_HANDLE_REVOKED;
- revoke = kzalloc(sizeof(*revoke), GFP_ATOMIC);
+ revoke = kzalloc_obj(*revoke, GFP_ATOMIC);
if (revoke) {
revoke->idxd = idxd;
INIT_WORK(&revoke->work, idxd_int_handle_revoke);
@@ -567,7 +567,7 @@ bool idxd_queue_int_handle_resubmit(struct idxd_desc *desc)
struct idxd_device *idxd = wq->idxd;
struct idxd_resubmit *irw;
- irw = kzalloc(sizeof(*irw), GFP_KERNEL);
+ irw = kzalloc_obj(*irw, GFP_KERNEL);
if (!irw)
return false;
diff --git a/drivers/dma/idxd/perfmon.c b/drivers/dma/idxd/perfmon.c
index 4b6af2f15d8a..3283841d3ddc 100644
--- a/drivers/dma/idxd/perfmon.c
+++ b/drivers/dma/idxd/perfmon.c
@@ -128,7 +128,7 @@ static int perfmon_validate_group(struct idxd_pmu *pmu,
struct idxd_pmu *fake_pmu;
int i, ret = 0, n, idx;
- fake_pmu = kzalloc(sizeof(*fake_pmu), GFP_KERNEL);
+ fake_pmu = kzalloc_obj(*fake_pmu, GFP_KERNEL);
if (!fake_pmu)
return -ENOMEM;
@@ -484,7 +484,7 @@ int perfmon_pmu_init(struct idxd_device *idxd)
if (idxd->perfmon_offset == 0)
return -ENODEV;
- idxd_pmu = kzalloc(sizeof(*idxd_pmu), GFP_KERNEL);
+ idxd_pmu = kzalloc_obj(*idxd_pmu, GFP_KERNEL);
if (!idxd_pmu)
return -ENOMEM;
diff --git a/drivers/dma/img-mdc-dma.c b/drivers/dma/img-mdc-dma.c
index fd55bcd060ab..b3765ba15803 100644
--- a/drivers/dma/img-mdc-dma.c
+++ b/drivers/dma/img-mdc-dma.c
@@ -294,7 +294,7 @@ static struct dma_async_tx_descriptor *mdc_prep_dma_memcpy(
if (!len)
return NULL;
- mdesc = kzalloc(sizeof(*mdesc), GFP_NOWAIT);
+ mdesc = kzalloc_obj(*mdesc, GFP_NOWAIT);
if (!mdesc)
return NULL;
mdesc->chan = mchan;
@@ -382,7 +382,7 @@ static struct dma_async_tx_descriptor *mdc_prep_dma_cyclic(
if (mdc_check_slave_width(mchan, dir) < 0)
return NULL;
- mdesc = kzalloc(sizeof(*mdesc), GFP_NOWAIT);
+ mdesc = kzalloc_obj(*mdesc, GFP_NOWAIT);
if (!mdesc)
return NULL;
mdesc->chan = mchan;
@@ -465,7 +465,7 @@ static struct dma_async_tx_descriptor *mdc_prep_slave_sg(
if (mdc_check_slave_width(mchan, dir) < 0)
return NULL;
- mdesc = kzalloc(sizeof(*mdesc), GFP_NOWAIT);
+ mdesc = kzalloc_obj(*mdesc, GFP_NOWAIT);
if (!mdesc)
return NULL;
mdesc->chan = mchan;
diff --git a/drivers/dma/imx-dma.c b/drivers/dma/imx-dma.c
index ba434657059a..d20c14f297a7 100644
--- a/drivers/dma/imx-dma.c
+++ b/drivers/dma/imx-dma.c
@@ -746,7 +746,7 @@ static int imxdma_alloc_chan_resources(struct dma_chan *chan)
while (imxdmac->descs_allocated < IMXDMA_MAX_CHAN_DESCRIPTORS) {
struct imxdma_desc *desc;
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
break;
dma_async_tx_descriptor_init(&desc->desc, chan);
@@ -865,8 +865,8 @@ static struct dma_async_tx_descriptor *imxdma_prep_dma_cyclic(
kfree(imxdmac->sg_list);
- imxdmac->sg_list = kcalloc(periods + 1,
- sizeof(struct scatterlist), GFP_ATOMIC);
+ imxdmac->sg_list = kzalloc_objs(struct scatterlist, periods + 1,
+ GFP_ATOMIC);
if (!imxdmac->sg_list)
return NULL;
diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
index ed9e56de5a9b..4093fba9cc23 100644
--- a/drivers/dma/imx-sdma.c
+++ b/drivers/dma/imx-sdma.c
@@ -1544,7 +1544,7 @@ static struct sdma_desc *sdma_transfer_init(struct sdma_channel *sdmac,
goto err_out;
}
- desc = kzalloc((sizeof(*desc)), GFP_NOWAIT);
+ desc = kzalloc_obj(*desc, GFP_NOWAIT);
if (!desc)
goto err_out;
@@ -2288,7 +2288,7 @@ static int sdma_probe(struct platform_device *pdev)
sdma->irq = irq;
- sdma->script_addrs = kzalloc(sizeof(*sdma->script_addrs), GFP_KERNEL);
+ sdma->script_addrs = kzalloc_obj(*sdma->script_addrs, GFP_KERNEL);
if (!sdma->script_addrs) {
ret = -ENOMEM;
goto err_irq;
diff --git a/drivers/dma/ioat/dma.c b/drivers/dma/ioat/dma.c
index b8fff8333aef..ee93b029f9e3 100644
--- a/drivers/dma/ioat/dma.c
+++ b/drivers/dma/ioat/dma.c
@@ -378,7 +378,7 @@ ioat_alloc_ring(struct dma_chan *c, int order, gfp_t flags)
int i, chunks;
/* allocate the array to hold the software ring */
- ring = kcalloc(total_descs, sizeof(*ring), flags);
+ ring = kzalloc_objs(*ring, total_descs, flags);
if (!ring)
return NULL;
diff --git a/drivers/dma/ioat/init.c b/drivers/dma/ioat/init.c
index 227398673b73..a4e539e48444 100644
--- a/drivers/dma/ioat/init.c
+++ b/drivers/dma/ioat/init.c
@@ -574,7 +574,7 @@ static void ioat_enumerate_channels(struct ioatdma_device *ioat_dma)
dev_dbg(dev, "%s: xfercap = %d\n", __func__, 1 << xfercap_log);
for (i = 0; i < chancnt; i++) {
- ioat_chan = kzalloc(sizeof(*ioat_chan), GFP_KERNEL);
+ ioat_chan = kzalloc_obj(*ioat_chan, GFP_KERNEL);
if (!ioat_chan)
break;
@@ -1332,7 +1332,7 @@ static void release_ioatdma(struct dma_device *device)
static struct ioatdma_device *
alloc_ioatdma(struct pci_dev *pdev, void __iomem *iobase)
{
- struct ioatdma_device *d = kzalloc(sizeof(*d), GFP_KERNEL);
+ struct ioatdma_device *d = kzalloc_obj(*d, GFP_KERNEL);
if (!d)
return NULL;
diff --git a/drivers/dma/k3dma.c b/drivers/dma/k3dma.c
index 63677c0b6f18..e84f197fea76 100644
--- a/drivers/dma/k3dma.c
+++ b/drivers/dma/k3dma.c
@@ -471,7 +471,7 @@ static struct k3_dma_desc_sw *k3_dma_alloc_desc_resource(int num,
return NULL;
}
- ds = kzalloc(sizeof(*ds), GFP_NOWAIT);
+ ds = kzalloc_obj(*ds, GFP_NOWAIT);
if (!ds)
return NULL;
diff --git a/drivers/dma/lgm/lgm-dma.c b/drivers/dma/lgm/lgm-dma.c
index a7b9cf30f6ad..c1f859472a96 100644
--- a/drivers/dma/lgm/lgm-dma.c
+++ b/drivers/dma/lgm/lgm-dma.c
@@ -681,7 +681,7 @@ ldma_chan_desc_cfg(struct dma_chan *chan, dma_addr_t desc_base, int desc_num)
c->desc_cnt = desc_num;
c->desc_phys = desc_base;
- ds = kzalloc(sizeof(*ds), GFP_NOWAIT);
+ ds = kzalloc_obj(*ds, GFP_NOWAIT);
if (!ds)
return NULL;
@@ -982,7 +982,7 @@ dma_alloc_desc_resource(int num, struct ldma_chan *c)
return NULL;
}
- ds = kzalloc(sizeof(*ds), GFP_NOWAIT);
+ ds = kzalloc_obj(*ds, GFP_NOWAIT);
if (!ds)
return NULL;
diff --git a/drivers/dma/loongson1-apb-dma.c b/drivers/dma/loongson1-apb-dma.c
index 255fe7eca212..2e347aba9af8 100644
--- a/drivers/dma/loongson1-apb-dma.c
+++ b/drivers/dma/loongson1-apb-dma.c
@@ -204,7 +204,7 @@ static struct ls1x_dma_desc *ls1x_dma_alloc_desc(void)
{
struct ls1x_dma_desc *desc;
- desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
+ desc = kzalloc_obj(*desc, GFP_NOWAIT);
if (!desc)
return NULL;
@@ -335,7 +335,7 @@ ls1x_dma_prep_dma_cyclic(struct dma_chan *dchan, dma_addr_t buf_addr,
/* allocate the scatterlist */
sg_len = buf_len / period_len;
- sgl = kmalloc_array(sg_len, sizeof(*sgl), GFP_NOWAIT);
+ sgl = kmalloc_objs(*sgl, sg_len, GFP_NOWAIT);
if (!sgl)
return NULL;
diff --git a/drivers/dma/loongson2-apb-dma.c b/drivers/dma/loongson2-apb-dma.c
index c528f02b9f84..b981475e6779 100644
--- a/drivers/dma/loongson2-apb-dma.c
+++ b/drivers/dma/loongson2-apb-dma.c
@@ -335,7 +335,7 @@ ls2x_dma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
if (!burst_size)
return NULL;
- desc = kzalloc(struct_size(desc, sg, sg_len), GFP_NOWAIT);
+ desc = kzalloc_flex(*desc, sg, sg_len, GFP_NOWAIT);
if (!desc)
return NULL;
@@ -400,7 +400,7 @@ ls2x_dma_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_
return NULL;
num_periods = buf_len / period_len;
- desc = kzalloc(struct_size(desc, sg, num_periods), GFP_NOWAIT);
+ desc = kzalloc_flex(*desc, sg, num_periods, GFP_NOWAIT);
if (!desc)
return NULL;
diff --git a/drivers/dma/mediatek/mtk-cqdma.c b/drivers/dma/mediatek/mtk-cqdma.c
index 9f0c41ca7770..80791e30aec2 100644
--- a/drivers/dma/mediatek/mtk-cqdma.c
+++ b/drivers/dma/mediatek/mtk-cqdma.c
@@ -501,12 +501,12 @@ mtk_cqdma_prep_dma_memcpy(struct dma_chan *c, dma_addr_t dest,
* until all the child CVDs completed.
*/
nr_vd = DIV_ROUND_UP(len, MTK_CQDMA_MAX_LEN);
- cvd = kcalloc(nr_vd, sizeof(*cvd), GFP_NOWAIT);
+ cvd = kzalloc_objs(*cvd, nr_vd, GFP_NOWAIT);
if (!cvd)
return NULL;
for (i = 0; i < nr_vd; ++i) {
- cvd[i] = kzalloc(sizeof(*cvd[i]), GFP_NOWAIT);
+ cvd[i] = kzalloc_obj(*cvd[i], GFP_NOWAIT);
if (!cvd[i]) {
for (; i > 0; --i)
kfree(cvd[i - 1]);
diff --git a/drivers/dma/mediatek/mtk-hsdma.c b/drivers/dma/mediatek/mtk-hsdma.c
index fa77bb24a430..a43412ff5edd 100644
--- a/drivers/dma/mediatek/mtk-hsdma.c
+++ b/drivers/dma/mediatek/mtk-hsdma.c
@@ -334,7 +334,7 @@ static int mtk_hsdma_alloc_pchan(struct mtk_hsdma_device *hsdma,
ring->cur_tptr = 0;
ring->cur_rptr = MTK_DMA_SIZE - 1;
- ring->cb = kcalloc(MTK_DMA_SIZE, sizeof(*ring->cb), GFP_NOWAIT);
+ ring->cb = kzalloc_objs(*ring->cb, MTK_DMA_SIZE, GFP_NOWAIT);
if (!ring->cb) {
err = -ENOMEM;
goto err_free_dma;
@@ -722,7 +722,7 @@ mtk_hsdma_prep_dma_memcpy(struct dma_chan *c, dma_addr_t dest,
{
struct mtk_hsdma_vdesc *hvd;
- hvd = kzalloc(sizeof(*hvd), GFP_NOWAIT);
+ hvd = kzalloc_obj(*hvd, GFP_NOWAIT);
if (!hvd)
return NULL;
diff --git a/drivers/dma/mediatek/mtk-uart-apdma.c b/drivers/dma/mediatek/mtk-uart-apdma.c
index 3b9761f4e8a1..c269d84d7bd2 100644
--- a/drivers/dma/mediatek/mtk-uart-apdma.c
+++ b/drivers/dma/mediatek/mtk-uart-apdma.c
@@ -351,7 +351,7 @@ static struct dma_async_tx_descriptor *mtk_uart_apdma_prep_slave_sg
return NULL;
/* Now allocate and setup the descriptor */
- d = kzalloc(sizeof(*d), GFP_NOWAIT);
+ d = kzalloc_obj(*d, GFP_NOWAIT);
if (!d)
return NULL;
diff --git a/drivers/dma/milbeaut-hdmac.c b/drivers/dma/milbeaut-hdmac.c
index 9a5ec247ed6d..b4ebc09e80d0 100644
--- a/drivers/dma/milbeaut-hdmac.c
+++ b/drivers/dma/milbeaut-hdmac.c
@@ -265,11 +265,11 @@ milbeaut_hdmac_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
if (!is_slave_direction(direction))
return NULL;
- md = kzalloc(sizeof(*md), GFP_NOWAIT);
+ md = kzalloc_obj(*md, GFP_NOWAIT);
if (!md)
return NULL;
- md->sgl = kcalloc(sg_len, sizeof(*sgl), GFP_NOWAIT);
+ md->sgl = kzalloc_objs(*sgl, sg_len, GFP_NOWAIT);
if (!md->sgl) {
kfree(md);
return NULL;
diff --git a/drivers/dma/milbeaut-xdmac.c b/drivers/dma/milbeaut-xdmac.c
index 58d4fd6df0bf..0bfa247e746e 100644
--- a/drivers/dma/milbeaut-xdmac.c
+++ b/drivers/dma/milbeaut-xdmac.c
@@ -192,7 +192,7 @@ milbeaut_xdmac_prep_memcpy(struct dma_chan *chan, dma_addr_t dst,
struct virt_dma_chan *vc = to_virt_chan(chan);
struct milbeaut_xdmac_desc *md;
- md = kzalloc(sizeof(*md), GFP_NOWAIT);
+ md = kzalloc_obj(*md, GFP_NOWAIT);
if (!md)
return NULL;
diff --git a/drivers/dma/moxart-dma.c b/drivers/dma/moxart-dma.c
index de09e1ab7767..442f5aa16031 100644
--- a/drivers/dma/moxart-dma.c
+++ b/drivers/dma/moxart-dma.c
@@ -301,7 +301,7 @@ static struct dma_async_tx_descriptor *moxart_prep_slave_sg(
return NULL;
}
- d = kzalloc(struct_size(d, sg, sg_len), GFP_ATOMIC);
+ d = kzalloc_flex(*d, sg, sg_len, GFP_ATOMIC);
if (!d)
return NULL;
d->sglen = sg_len;
diff --git a/drivers/dma/mpc512x_dma.c b/drivers/dma/mpc512x_dma.c
index bf131cb5db66..37550b42c30e 100644
--- a/drivers/dma/mpc512x_dma.c
+++ b/drivers/dma/mpc512x_dma.c
@@ -503,7 +503,7 @@ static int mpc_dma_alloc_chan_resources(struct dma_chan *chan)
/* Alloc descriptors for this channel */
for (i = 0; i < MPC_DMA_DESCRIPTORS; i++) {
- mdesc = kzalloc(sizeof(struct mpc_dma_desc), GFP_KERNEL);
+ mdesc = kzalloc_obj(struct mpc_dma_desc, GFP_KERNEL);
if (!mdesc) {
dev_notice(mdma->dma.dev,
"Memory allocation error. Allocated only %u descriptors\n", i);
diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c
index 5e8386296046..f4f65ef44234 100644
--- a/drivers/dma/mv_xor.c
+++ b/drivers/dma/mv_xor.c
@@ -443,7 +443,7 @@ static int mv_xor_alloc_chan_resources(struct dma_chan *chan)
/* Allocate descriptor slots */
idx = mv_chan->slots_allocated;
while (idx < num_descs_in_pool) {
- slot = kzalloc(sizeof(*slot), GFP_KERNEL);
+ slot = kzalloc_obj(*slot, GFP_KERNEL);
if (!slot) {
dev_info(mv_chan_to_devp(mv_chan),
"channel only initialized %d descriptor slots",
diff --git a/drivers/dma/of-dma.c b/drivers/dma/of-dma.c
index 423442e55d36..d27c74f1669b 100644
--- a/drivers/dma/of-dma.c
+++ b/drivers/dma/of-dma.c
@@ -127,7 +127,7 @@ int of_dma_controller_register(struct device_node *np,
return -EINVAL;
}
- ofdma = kzalloc(sizeof(*ofdma), GFP_KERNEL);
+ ofdma = kzalloc_obj(*ofdma, GFP_KERNEL);
if (!ofdma)
return -ENOMEM;
@@ -194,7 +194,7 @@ int of_dma_router_register(struct device_node *np,
return -EINVAL;
}
- ofdma = kzalloc(sizeof(*ofdma), GFP_KERNEL);
+ ofdma = kzalloc_obj(*ofdma, GFP_KERNEL);
if (!ofdma)
return -ENOMEM;
diff --git a/drivers/dma/owl-dma.c b/drivers/dma/owl-dma.c
index 57cec757d8f5..7c80572fc71d 100644
--- a/drivers/dma/owl-dma.c
+++ b/drivers/dma/owl-dma.c
@@ -878,7 +878,7 @@ static struct dma_async_tx_descriptor
if (!len)
return NULL;
- txd = kzalloc(sizeof(*txd), GFP_NOWAIT);
+ txd = kzalloc_obj(*txd, GFP_NOWAIT);
if (!txd)
return NULL;
@@ -929,7 +929,7 @@ static struct dma_async_tx_descriptor
size_t len;
int ret, i;
- txd = kzalloc(sizeof(*txd), GFP_NOWAIT);
+ txd = kzalloc_obj(*txd, GFP_NOWAIT);
if (!txd)
return NULL;
@@ -993,7 +993,7 @@ static struct dma_async_tx_descriptor
unsigned int periods = buf_len / period_len;
int ret, i;
- txd = kzalloc(sizeof(*txd), GFP_NOWAIT);
+ txd = kzalloc_obj(*txd, GFP_NOWAIT);
if (!txd)
return NULL;
diff --git a/drivers/dma/pch_dma.c b/drivers/dma/pch_dma.c
index 6b2793b07694..69560dd8c365 100644
--- a/drivers/dma/pch_dma.c
+++ b/drivers/dma/pch_dma.c
@@ -806,7 +806,7 @@ static int pch_dma_probe(struct pci_dev *pdev,
int i;
nr_channels = id->driver_data;
- pd = kzalloc(sizeof(*pd), GFP_KERNEL);
+ pd = kzalloc_obj(*pd, GFP_KERNEL);
if (!pd)
return -ENOMEM;
diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c
index 72f260328ae9..996c259107e3 100644
--- a/drivers/dma/pl330.c
+++ b/drivers/dma/pl330.c
@@ -1887,8 +1887,7 @@ static int dmac_alloc_threads(struct pl330_dmac *pl330)
int i;
/* Allocate 1 Manager and 'chans' Channel threads */
- pl330->channels = kcalloc(1 + chans, sizeof(*thrd),
- GFP_KERNEL);
+ pl330->channels = kzalloc_objs(*thrd, 1 + chans, GFP_KERNEL);
if (!pl330->channels)
return -ENOMEM;
@@ -2548,7 +2547,7 @@ static int add_desc(struct list_head *pool, spinlock_t *lock,
unsigned long flags;
int i;
- desc = kcalloc(count, sizeof(*desc), flg);
+ desc = kzalloc_objs(*desc, count, flg);
if (!desc)
return 0;
@@ -3093,7 +3092,7 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
pl330->num_peripherals = num_chan;
- pl330->peripherals = kcalloc(num_chan, sizeof(*pch), GFP_KERNEL);
+ pl330->peripherals = kzalloc_objs(*pch, num_chan, GFP_KERNEL);
if (!pl330->peripherals) {
ret = -ENOMEM;
goto probe_err2;
diff --git a/drivers/dma/plx_dma.c b/drivers/dma/plx_dma.c
index 34b6416c3287..1958fa8f96e4 100644
--- a/drivers/dma/plx_dma.c
+++ b/drivers/dma/plx_dma.c
@@ -378,13 +378,13 @@ static int plx_dma_alloc_desc(struct plx_dma_dev *plxdev)
struct plx_dma_desc *desc;
int i;
- plxdev->desc_ring = kcalloc(PLX_DMA_RING_COUNT,
- sizeof(*plxdev->desc_ring), GFP_KERNEL);
+ plxdev->desc_ring = kzalloc_objs(*plxdev->desc_ring, PLX_DMA_RING_COUNT,
+ GFP_KERNEL);
if (!plxdev->desc_ring)
return -ENOMEM;
for (i = 0; i < PLX_DMA_RING_COUNT; i++) {
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
goto free_and_exit;
@@ -501,7 +501,7 @@ static int plx_dma_create(struct pci_dev *pdev)
struct dma_chan *chan;
int rc;
- plxdev = kzalloc(sizeof(*plxdev), GFP_KERNEL);
+ plxdev = kzalloc_obj(*plxdev, GFP_KERNEL);
if (!plxdev)
return -ENOMEM;
diff --git a/drivers/dma/ppc4xx/adma.c b/drivers/dma/ppc4xx/adma.c
index 61500ad7c850..7c08e80dcc4c 100644
--- a/drivers/dma/ppc4xx/adma.c
+++ b/drivers/dma/ppc4xx/adma.c
@@ -1781,8 +1781,7 @@ static int ppc440spe_adma_alloc_chan_resources(struct dma_chan *chan)
db_sz = sizeof(struct xor_cb);
for (; i < (ppc440spe_chan->device->pool_size / db_sz); i++) {
- slot = kzalloc(sizeof(struct ppc440spe_adma_desc_slot),
- GFP_KERNEL);
+ slot = kzalloc_obj(struct ppc440spe_adma_desc_slot, GFP_KERNEL);
if (!slot) {
printk(KERN_INFO "SPE ADMA Channel only initialized"
" %d descriptor slots", i--);
@@ -4064,7 +4063,7 @@ static int ppc440spe_adma_probe(struct platform_device *ofdev)
}
/* create a device */
- adev = kzalloc(sizeof(*adev), GFP_KERNEL);
+ adev = kzalloc_obj(*adev, GFP_KERNEL);
if (!adev) {
initcode = PPC_ADMA_INIT_ALLOC;
ret = -ENOMEM;
@@ -4124,7 +4123,7 @@ static int ppc440spe_adma_probe(struct platform_device *ofdev)
platform_set_drvdata(ofdev, adev);
/* create a channel */
- chan = kzalloc(sizeof(*chan), GFP_KERNEL);
+ chan = kzalloc_obj(*chan, GFP_KERNEL);
if (!chan) {
initcode = PPC_ADMA_INIT_CHANNEL;
ret = -ENOMEM;
@@ -4161,7 +4160,7 @@ static int ppc440spe_adma_probe(struct platform_device *ofdev)
PAGE_SIZE, DMA_BIDIRECTIONAL);
}
- ref = kmalloc(sizeof(*ref), GFP_KERNEL);
+ ref = kmalloc_obj(*ref, GFP_KERNEL);
if (ref) {
ref->chan = &chan->common;
INIT_LIST_HEAD(&ref->node);
diff --git a/drivers/dma/pxa_dma.c b/drivers/dma/pxa_dma.c
index b639c8b51e87..a48ba9fc9f49 100644
--- a/drivers/dma/pxa_dma.c
+++ b/drivers/dma/pxa_dma.c
@@ -342,8 +342,7 @@ static void pxad_init_debugfs(struct pxad_device *pdev)
struct dentry *chandir;
pdev->dbgfs_chan =
- kmalloc_array(pdev->nr_chans, sizeof(struct dentry *),
- GFP_KERNEL);
+ kmalloc_objs(struct dentry *, pdev->nr_chans, GFP_KERNEL);
if (!pdev->dbgfs_chan)
return;
@@ -742,8 +741,7 @@ pxad_alloc_desc(struct pxad_chan *chan, unsigned int nb_hw_desc)
void *desc;
int i;
- sw_desc = kzalloc(struct_size(sw_desc, hw_desc, nb_hw_desc),
- GFP_NOWAIT);
+ sw_desc = kzalloc_flex(*sw_desc, hw_desc, nb_hw_desc, GFP_NOWAIT);
if (!sw_desc)
return NULL;
sw_desc->desc_pool = chan->desc_pool;
diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c
index e184cebbface..19116295f832 100644
--- a/drivers/dma/qcom/bam_dma.c
+++ b/drivers/dma/qcom/bam_dma.c
@@ -662,8 +662,7 @@ static struct dma_async_tx_descriptor *bam_prep_slave_sg(struct dma_chan *chan,
/* allocate enough room to accommodate the number of entries */
num_alloc = sg_nents_for_dma(sgl, sg_len, BAM_FIFO_SIZE);
- async_desc = kzalloc(struct_size(async_desc, desc, num_alloc),
- GFP_NOWAIT);
+ async_desc = kzalloc_flex(*async_desc, desc, num_alloc, GFP_NOWAIT);
if (!async_desc)
return NULL;
diff --git a/drivers/dma/qcom/gpi.c b/drivers/dma/qcom/gpi.c
index 6e30f3aa401e..c9a6f610ffd9 100644
--- a/drivers/dma/qcom/gpi.c
+++ b/drivers/dma/qcom/gpi.c
@@ -1836,7 +1836,7 @@ gpi_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
if (!(flags & DMA_PREP_INTERRUPT) && (nr - nr_tre < 2))
return NULL;
- gpi_desc = kzalloc(sizeof(*gpi_desc), GFP_NOWAIT);
+ gpi_desc = kzalloc_obj(*gpi_desc, GFP_NOWAIT);
if (!gpi_desc)
return NULL;
diff --git a/drivers/dma/qcom/hidma.c b/drivers/dma/qcom/hidma.c
index c2b3e4452e71..5a8dca8db5ce 100644
--- a/drivers/dma/qcom/hidma.c
+++ b/drivers/dma/qcom/hidma.c
@@ -352,7 +352,7 @@ static int hidma_alloc_chan_resources(struct dma_chan *dmach)
/* Alloc descriptors for this channel */
for (i = 0; i < dmadev->nr_descriptors; i++) {
- mdesc = kzalloc(sizeof(struct hidma_desc), GFP_NOWAIT);
+ mdesc = kzalloc_obj(struct hidma_desc, GFP_NOWAIT);
if (!mdesc) {
rc = -ENOMEM;
break;
diff --git a/drivers/dma/qcom/qcom_adm.c b/drivers/dma/qcom/qcom_adm.c
index 490edad20ae6..07fbe32d31fa 100644
--- a/drivers/dma/qcom/qcom_adm.c
+++ b/drivers/dma/qcom/qcom_adm.c
@@ -401,7 +401,7 @@ static struct dma_async_tx_descriptor *adm_prep_slave_sg(struct dma_chan *chan,
single_count = sg_nents_for_dma(sgl, sg_len, ADM_MAX_XFER);
}
- async_desc = kzalloc(sizeof(*async_desc), GFP_NOWAIT);
+ async_desc = kzalloc_obj(*async_desc, GFP_NOWAIT);
if (!async_desc) {
dev_err(adev->dev, "not enough memory for async_desc struct\n");
return NULL;
diff --git a/drivers/dma/sa11x0-dma.c b/drivers/dma/sa11x0-dma.c
index 86f1d7461f56..bcbdaf75db15 100644
--- a/drivers/dma/sa11x0-dma.c
+++ b/drivers/dma/sa11x0-dma.c
@@ -551,7 +551,7 @@ static struct dma_async_tx_descriptor *sa11x0_dma_prep_slave_sg(
}
j = sg_nents_for_dma(sg, sglen, DMA_MAX_SIZE & ~DMA_ALIGN);
- txd = kzalloc(struct_size(txd, sg, j), GFP_ATOMIC);
+ txd = kzalloc_flex(*txd, sg, j, GFP_ATOMIC);
if (!txd) {
dev_dbg(chan->device->dev, "vchan %p: kzalloc failed\n", &c->vc);
return NULL;
@@ -621,7 +621,7 @@ static struct dma_async_tx_descriptor *sa11x0_dma_prep_dma_cyclic(
if (sglen == 0)
return NULL;
- txd = kzalloc(struct_size(txd, sg, sglen), GFP_ATOMIC);
+ txd = kzalloc_flex(*txd, sg, sglen, GFP_ATOMIC);
if (!txd) {
dev_dbg(chan->device->dev, "vchan %p: kzalloc failed\n", &c->vc);
return NULL;
@@ -848,7 +848,7 @@ static int sa11x0_dma_init_dmadev(struct dma_device *dmadev,
for (i = 0; i < ARRAY_SIZE(chan_desc); i++) {
struct sa11x0_dma_chan *c;
- c = kzalloc(sizeof(*c), GFP_KERNEL);
+ c = kzalloc_obj(*c, GFP_KERNEL);
if (!c) {
dev_err(dev, "no memory for channel %u\n", i);
return -ENOMEM;
@@ -907,7 +907,7 @@ static int sa11x0_dma_probe(struct platform_device *pdev)
if (!res)
return -ENXIO;
- d = kzalloc(sizeof(*d), GFP_KERNEL);
+ d = kzalloc_obj(*d, GFP_KERNEL);
if (!d) {
ret = -ENOMEM;
goto err_alloc;
diff --git a/drivers/dma/sf-pdma/sf-pdma.c b/drivers/dma/sf-pdma/sf-pdma.c
index 7ad3c29be146..b3cba11b6203 100644
--- a/drivers/dma/sf-pdma/sf-pdma.c
+++ b/drivers/dma/sf-pdma/sf-pdma.c
@@ -56,7 +56,7 @@ static struct sf_pdma_desc *sf_pdma_alloc_desc(struct sf_pdma_chan *chan)
{
struct sf_pdma_desc *desc;
- desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
+ desc = kzalloc_obj(*desc, GFP_NOWAIT);
if (!desc)
return NULL;
diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c
index 475a347cae1b..44eab2d21d54 100644
--- a/drivers/dma/sh/rcar-dmac.c
+++ b/drivers/dma/sh/rcar-dmac.c
@@ -1254,7 +1254,7 @@ rcar_dmac_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t buf_addr,
* Allocate the sg list dynamically as it would consume too much stack
* space.
*/
- sgl = kmalloc_array(sg_len, sizeof(*sgl), GFP_NOWAIT);
+ sgl = kmalloc_objs(*sgl, sg_len, GFP_NOWAIT);
if (!sgl)
return NULL;
diff --git a/drivers/dma/sh/rz-dmac.c b/drivers/dma/sh/rz-dmac.c
index 7736d33a9641..7f9b45c4553d 100644
--- a/drivers/dma/sh/rz-dmac.c
+++ b/drivers/dma/sh/rz-dmac.c
@@ -443,7 +443,7 @@ static int rz_dmac_alloc_chan_resources(struct dma_chan *chan)
while (channel->descs_allocated < RZ_DMAC_MAX_CHAN_DESCRIPTORS) {
struct rz_dmac_desc *desc;
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
break;
diff --git a/drivers/dma/sh/shdma-base.c b/drivers/dma/sh/shdma-base.c
index 3ff2a8be8faa..59eab919a3e3 100644
--- a/drivers/dma/sh/shdma-base.c
+++ b/drivers/dma/sh/shdma-base.c
@@ -740,7 +740,7 @@ static struct dma_async_tx_descriptor *shdma_prep_dma_cyclic(
* Allocate the sg list dynamically as it would consume too much stack
* space.
*/
- sgl = kmalloc_array(sg_len, sizeof(*sgl), GFP_KERNEL);
+ sgl = kmalloc_objs(*sgl, sg_len, GFP_KERNEL);
if (!sgl)
return NULL;
@@ -1012,7 +1012,7 @@ int shdma_init(struct device *dev, struct shdma_dev *sdev,
!sdev->ops->desc_completed)
return -EINVAL;
- sdev->schan = kcalloc(chan_num, sizeof(*sdev->schan), GFP_KERNEL);
+ sdev->schan = kzalloc_objs(*sdev->schan, chan_num, GFP_KERNEL);
if (!sdev->schan)
return -ENOMEM;
diff --git a/drivers/dma/sh/usb-dmac.c b/drivers/dma/sh/usb-dmac.c
index b42e5a66fd95..16509be0d360 100644
--- a/drivers/dma/sh/usb-dmac.c
+++ b/drivers/dma/sh/usb-dmac.c
@@ -266,7 +266,7 @@ static int usb_dmac_desc_alloc(struct usb_dmac_chan *chan, unsigned int sg_len,
struct usb_dmac_desc *desc;
unsigned long flags;
- desc = kzalloc(struct_size(desc, sg, sg_len), gfp);
+ desc = kzalloc_flex(*desc, sg, sg_len, gfp);
if (!desc)
return -ENOMEM;
diff --git a/drivers/dma/sprd-dma.c b/drivers/dma/sprd-dma.c
index 6207e0b185e1..087fea3af2e4 100644
--- a/drivers/dma/sprd-dma.c
+++ b/drivers/dma/sprd-dma.c
@@ -901,7 +901,7 @@ sprd_dma_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
enum sprd_dma_datawidth datawidth;
u32 step, temp;
- sdesc = kzalloc(sizeof(*sdesc), GFP_NOWAIT);
+ sdesc = kzalloc_obj(*sdesc, GFP_NOWAIT);
if (!sdesc)
return NULL;
@@ -986,7 +986,7 @@ sprd_dma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
(flags >> SPRD_DMA_TRG_MODE_SHIFT) & SPRD_DMA_TRG_MODE_MASK;
schan->int_type = flags & SPRD_DMA_INT_TYPE_MASK;
- sdesc = kzalloc(sizeof(*sdesc), GFP_NOWAIT);
+ sdesc = kzalloc_obj(*sdesc, GFP_NOWAIT);
if (!sdesc)
return NULL;
diff --git a/drivers/dma/st_fdma.c b/drivers/dma/st_fdma.c
index 0f42a3c30bdb..d9547017f3bd 100644
--- a/drivers/dma/st_fdma.c
+++ b/drivers/dma/st_fdma.c
@@ -241,7 +241,7 @@ static struct st_fdma_desc *st_fdma_alloc_desc(struct st_fdma_chan *fchan,
struct st_fdma_desc *fdesc;
int i;
- fdesc = kzalloc(struct_size(fdesc, node, sg_len), GFP_NOWAIT);
+ fdesc = kzalloc_flex(*fdesc, node, sg_len, GFP_NOWAIT);
if (!fdesc)
return NULL;
diff --git a/drivers/dma/ste_dma40.c b/drivers/dma/ste_dma40.c
index e67e0d66e6e8..9b803c0aec25 100644
--- a/drivers/dma/ste_dma40.c
+++ b/drivers/dma/ste_dma40.c
@@ -2529,7 +2529,7 @@ dma40_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t dma_addr,
struct scatterlist *sg;
int i;
- sg = kcalloc(periods + 1, sizeof(struct scatterlist), GFP_NOWAIT);
+ sg = kzalloc_objs(struct scatterlist, periods + 1, GFP_NOWAIT);
if (!sg)
return NULL;
diff --git a/drivers/dma/stm32/stm32-dma.c b/drivers/dma/stm32/stm32-dma.c
index 04389936c8a6..d3ad78562a14 100644
--- a/drivers/dma/stm32/stm32-dma.c
+++ b/drivers/dma/stm32/stm32-dma.c
@@ -1101,7 +1101,7 @@ static struct dma_async_tx_descriptor *stm32_dma_prep_slave_sg(
return NULL;
}
- desc = kzalloc(struct_size(desc, sg_req, sg_len), GFP_NOWAIT);
+ desc = kzalloc_flex(*desc, sg_req, sg_len, GFP_NOWAIT);
if (!desc)
return NULL;
desc->num_sgs = sg_len;
@@ -1213,7 +1213,7 @@ static struct dma_async_tx_descriptor *stm32_dma_prep_dma_cyclic(
num_periods = buf_len / period_len;
- desc = kzalloc(struct_size(desc, sg_req, num_periods), GFP_NOWAIT);
+ desc = kzalloc_flex(*desc, sg_req, num_periods, GFP_NOWAIT);
if (!desc)
return NULL;
desc->num_sgs = num_periods;
@@ -1250,7 +1250,7 @@ static struct dma_async_tx_descriptor *stm32_dma_prep_dma_memcpy(
int dma_burst, i;
num_sgs = DIV_ROUND_UP(len, STM32_DMA_ALIGNED_MAX_DATA_ITEMS);
- desc = kzalloc(struct_size(desc, sg_req, num_sgs), GFP_NOWAIT);
+ desc = kzalloc_flex(*desc, sg_req, num_sgs, GFP_NOWAIT);
if (!desc)
return NULL;
desc->num_sgs = num_sgs;
diff --git a/drivers/dma/stm32/stm32-dma3.c b/drivers/dma/stm32/stm32-dma3.c
index 84b00c436134..4724e7fa0008 100644
--- a/drivers/dma/stm32/stm32-dma3.c
+++ b/drivers/dma/stm32/stm32-dma3.c
@@ -415,7 +415,7 @@ static struct stm32_dma3_swdesc *stm32_dma3_chan_desc_alloc(struct stm32_dma3_ch
return NULL;
}
- swdesc = kzalloc(struct_size(swdesc, lli, count), GFP_NOWAIT);
+ swdesc = kzalloc_flex(*swdesc, lli, count, GFP_NOWAIT);
if (!swdesc)
return NULL;
swdesc->lli_size = count;
diff --git a/drivers/dma/stm32/stm32-dmamux.c b/drivers/dma/stm32/stm32-dmamux.c
index db13498b9c9f..4abd5ba32969 100644
--- a/drivers/dma/stm32/stm32-dmamux.c
+++ b/drivers/dma/stm32/stm32-dmamux.c
@@ -104,7 +104,7 @@ static void *stm32_dmamux_route_allocate(struct of_phandle_args *dma_spec,
goto err_put_pdev;
}
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux) {
ret = -ENOMEM;
goto err_put_pdev;
diff --git a/drivers/dma/stm32/stm32-mdma.c b/drivers/dma/stm32/stm32-mdma.c
index b87d41b234df..e3bbdc9ee36e 100644
--- a/drivers/dma/stm32/stm32-mdma.c
+++ b/drivers/dma/stm32/stm32-mdma.c
@@ -318,7 +318,7 @@ static struct stm32_mdma_desc *stm32_mdma_alloc_desc(
struct stm32_mdma_desc *desc;
int i;
- desc = kzalloc(struct_size(desc, node, count), GFP_NOWAIT);
+ desc = kzalloc_flex(*desc, node, count, GFP_NOWAIT);
if (!desc)
return NULL;
desc->count = count;
diff --git a/drivers/dma/sun4i-dma.c b/drivers/dma/sun4i-dma.c
index 00d2fd38d17f..d2321f7287d2 100644
--- a/drivers/dma/sun4i-dma.c
+++ b/drivers/dma/sun4i-dma.c
@@ -532,7 +532,7 @@ generate_ndma_promise(struct dma_chan *chan, dma_addr_t src, dma_addr_t dest,
if (ret)
return NULL;
- promise = kzalloc(sizeof(*promise), GFP_NOWAIT);
+ promise = kzalloc_obj(*promise, GFP_NOWAIT);
if (!promise)
return NULL;
@@ -595,7 +595,7 @@ generate_ddma_promise(struct dma_chan *chan, dma_addr_t src, dma_addr_t dest,
struct sun4i_dma_promise *promise;
int ret;
- promise = kzalloc(sizeof(*promise), GFP_NOWAIT);
+ promise = kzalloc_obj(*promise, GFP_NOWAIT);
if (!promise)
return NULL;
@@ -648,7 +648,7 @@ static struct sun4i_dma_contract *generate_dma_contract(void)
{
struct sun4i_dma_contract *contract;
- contract = kzalloc(sizeof(*contract), GFP_NOWAIT);
+ contract = kzalloc_obj(*contract, GFP_NOWAIT);
if (!contract)
return NULL;
diff --git a/drivers/dma/sun6i-dma.c b/drivers/dma/sun6i-dma.c
index c33f151953eb..a9a254dbf8cb 100644
--- a/drivers/dma/sun6i-dma.c
+++ b/drivers/dma/sun6i-dma.c
@@ -678,7 +678,7 @@ static struct dma_async_tx_descriptor *sun6i_dma_prep_dma_memcpy(
if (!len)
return NULL;
- txd = kzalloc(sizeof(*txd), GFP_NOWAIT);
+ txd = kzalloc_obj(*txd, GFP_NOWAIT);
if (!txd)
return NULL;
@@ -736,7 +736,7 @@ static struct dma_async_tx_descriptor *sun6i_dma_prep_slave_sg(
return NULL;
}
- txd = kzalloc(sizeof(*txd), GFP_NOWAIT);
+ txd = kzalloc_obj(*txd, GFP_NOWAIT);
if (!txd)
return NULL;
@@ -819,7 +819,7 @@ static struct dma_async_tx_descriptor *sun6i_dma_prep_dma_cyclic(
return NULL;
}
- txd = kzalloc(sizeof(*txd), GFP_NOWAIT);
+ txd = kzalloc_obj(*txd, GFP_NOWAIT);
if (!txd)
return NULL;
diff --git a/drivers/dma/tegra186-gpc-dma.c b/drivers/dma/tegra186-gpc-dma.c
index 4d6fe0efa76e..5948fbf32c21 100644
--- a/drivers/dma/tegra186-gpc-dma.c
+++ b/drivers/dma/tegra186-gpc-dma.c
@@ -908,7 +908,7 @@ tegra_dma_prep_dma_memset(struct dma_chan *dc, dma_addr_t dest, int value,
/* Set burst size */
mc_seq |= TEGRA_GPCDMA_MCSEQ_BURST_16;
- dma_desc = kzalloc(struct_size(dma_desc, sg_req, 1), GFP_NOWAIT);
+ dma_desc = kzalloc_flex(*dma_desc, sg_req, 1, GFP_NOWAIT);
if (!dma_desc)
return NULL;
@@ -977,7 +977,7 @@ tegra_dma_prep_dma_memcpy(struct dma_chan *dc, dma_addr_t dest,
/* Set burst size */
mc_seq |= TEGRA_GPCDMA_MCSEQ_BURST_16;
- dma_desc = kzalloc(struct_size(dma_desc, sg_req, 1), GFP_NOWAIT);
+ dma_desc = kzalloc_flex(*dma_desc, sg_req, 1, GFP_NOWAIT);
if (!dma_desc)
return NULL;
@@ -1070,7 +1070,7 @@ tegra_dma_prep_slave_sg(struct dma_chan *dc, struct scatterlist *sgl,
else
mc_seq |= TEGRA_GPCDMA_MCSEQ_BURST_2;
- dma_desc = kzalloc(struct_size(dma_desc, sg_req, sg_len), GFP_NOWAIT);
+ dma_desc = kzalloc_flex(*dma_desc, sg_req, sg_len, GFP_NOWAIT);
if (!dma_desc)
return NULL;
@@ -1205,8 +1205,7 @@ tegra_dma_prep_dma_cyclic(struct dma_chan *dc, dma_addr_t buf_addr, size_t buf_l
mc_seq |= TEGRA_GPCDMA_MCSEQ_BURST_2;
period_count = buf_len / period_len;
- dma_desc = kzalloc(struct_size(dma_desc, sg_req, period_count),
- GFP_NOWAIT);
+ dma_desc = kzalloc_flex(*dma_desc, sg_req, period_count, GFP_NOWAIT);
if (!dma_desc)
return NULL;
diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c
index 14a61e53a41b..640b8a218c9a 100644
--- a/drivers/dma/tegra20-apb-dma.c
+++ b/drivers/dma/tegra20-apb-dma.c
@@ -282,7 +282,7 @@ static struct tegra_dma_desc *tegra_dma_desc_get(struct tegra_dma_channel *tdc)
spin_unlock_irqrestore(&tdc->lock, flags);
/* Allocate DMA desc */
- dma_desc = kzalloc(sizeof(*dma_desc), GFP_NOWAIT);
+ dma_desc = kzalloc_obj(*dma_desc, GFP_NOWAIT);
if (!dma_desc)
return NULL;
@@ -321,7 +321,7 @@ tegra_dma_sg_req_get(struct tegra_dma_channel *tdc)
}
spin_unlock_irqrestore(&tdc->lock, flags);
- sg_req = kzalloc(sizeof(*sg_req), GFP_NOWAIT);
+ sg_req = kzalloc_obj(*sg_req, GFP_NOWAIT);
return sg_req;
}
diff --git a/drivers/dma/tegra210-adma.c b/drivers/dma/tegra210-adma.c
index 215bfef37ec6..14e0c408ed1e 100644
--- a/drivers/dma/tegra210-adma.c
+++ b/drivers/dma/tegra210-adma.c
@@ -755,7 +755,7 @@ static struct dma_async_tx_descriptor *tegra_adma_prep_dma_cyclic(
return NULL;
}
- desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
+ desc = kzalloc_obj(*desc, GFP_NOWAIT);
if (!desc)
return NULL;
diff --git a/drivers/dma/ti/dma-crossbar.c b/drivers/dma/ti/dma-crossbar.c
index e04077d542d2..cf1ceab10f14 100644
--- a/drivers/dma/ti/dma-crossbar.c
+++ b/drivers/dma/ti/dma-crossbar.c
@@ -103,7 +103,7 @@ static void *ti_am335x_xbar_route_allocate(struct of_phandle_args *dma_spec,
goto out_put_pdev;
}
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (!map) {
of_node_put(dma_spec->np);
map = ERR_PTR(-ENOMEM);
@@ -260,7 +260,7 @@ static void *ti_dra7_xbar_route_allocate(struct of_phandle_args *dma_spec,
goto out_put_pdev;
}
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (!map) {
of_node_put(dma_spec->np);
map = ERR_PTR(-ENOMEM);
@@ -393,7 +393,7 @@ static int ti_dra7_xbar_probe(struct platform_device *pdev)
if (!nelm)
return -EINVAL;
- rsv_events = kcalloc(nelm, sizeof(*rsv_events), GFP_KERNEL);
+ rsv_events = kzalloc_objs(*rsv_events, nelm, GFP_KERNEL);
if (!rsv_events)
return -ENOMEM;
diff --git a/drivers/dma/ti/edma.c b/drivers/dma/ti/edma.c
index 552be71db6c4..d97db5af3555 100644
--- a/drivers/dma/ti/edma.c
+++ b/drivers/dma/ti/edma.c
@@ -1041,7 +1041,7 @@ static struct dma_async_tx_descriptor *edma_prep_slave_sg(
return NULL;
}
- edesc = kzalloc(struct_size(edesc, pset, sg_len), GFP_ATOMIC);
+ edesc = kzalloc_flex(*edesc, pset, sg_len, GFP_ATOMIC);
if (!edesc)
return NULL;
@@ -1158,7 +1158,7 @@ static struct dma_async_tx_descriptor *edma_prep_dma_memcpy(
nslots = 2;
}
- edesc = kzalloc(struct_size(edesc, pset, nslots), GFP_ATOMIC);
+ edesc = kzalloc_flex(*edesc, pset, nslots, GFP_ATOMIC);
if (!edesc)
return NULL;
@@ -1265,7 +1265,7 @@ edma_prep_dma_interleaved(struct dma_chan *chan,
if (src_bidx > SZ_64K || dst_bidx > SZ_64K)
return NULL;
- edesc = kzalloc(struct_size(edesc, pset, 1), GFP_ATOMIC);
+ edesc = kzalloc_flex(*edesc, pset, 1, GFP_ATOMIC);
if (!edesc)
return NULL;
@@ -1361,7 +1361,7 @@ static struct dma_async_tx_descriptor *edma_prep_dma_cyclic(
}
}
- edesc = kzalloc(struct_size(edesc, pset, nslots), GFP_ATOMIC);
+ edesc = kzalloc_flex(*edesc, pset, nslots, GFP_ATOMIC);
if (!edesc)
return NULL;
diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c
index aa2dc762140f..b547b19bc9d8 100644
--- a/drivers/dma/ti/k3-udma.c
+++ b/drivers/dma/ti/k3-udma.c
@@ -3241,7 +3241,7 @@ udma_prep_slave_sg_pkt(struct udma_chan *uc, struct scatterlist *sgl,
unsigned int i;
u64 asel;
- d = kzalloc(struct_size(d, hwdesc, sglen), GFP_NOWAIT);
+ d = kzalloc_flex(*d, hwdesc, sglen, GFP_NOWAIT);
if (!d)
return NULL;
@@ -3588,7 +3588,7 @@ udma_prep_dma_cyclic_pkt(struct udma_chan *uc, dma_addr_t buf_addr,
if (period_len >= SZ_4M)
return NULL;
- d = kzalloc(struct_size(d, hwdesc, periods), GFP_NOWAIT);
+ d = kzalloc_flex(*d, hwdesc, periods, GFP_NOWAIT);
if (!d)
return NULL;
@@ -4686,7 +4686,7 @@ static int udma_setup_resources(struct udma_dev *ud)
irq_res.sets += rm_res->sets;
}
- irq_res.desc = kcalloc(irq_res.sets, sizeof(*irq_res.desc), GFP_KERNEL);
+ irq_res.desc = kzalloc_objs(*irq_res.desc, irq_res.sets, GFP_KERNEL);
if (!irq_res.desc)
return -ENOMEM;
rm_res = tisci_rm->rm_ranges[RM_RANGE_TCHAN];
@@ -4878,7 +4878,7 @@ static int bcdma_setup_resources(struct udma_dev *ud)
}
}
- irq_res.desc = kcalloc(irq_res.sets, sizeof(*irq_res.desc), GFP_KERNEL);
+ irq_res.desc = kzalloc_objs(*irq_res.desc, irq_res.sets, GFP_KERNEL);
if (!irq_res.desc)
return -ENOMEM;
if (ud->bchan_cnt) {
@@ -5080,7 +5080,7 @@ static int pktdma_setup_resources(struct udma_dev *ud)
irq_res.sets += rm_res->sets;
}
- irq_res.desc = kcalloc(irq_res.sets, sizeof(*irq_res.desc), GFP_KERNEL);
+ irq_res.desc = kzalloc_objs(*irq_res.desc, irq_res.sets, GFP_KERNEL);
if (!irq_res.desc)
return -ENOMEM;
rm_res = tisci_rm->rm_ranges[RM_RANGE_TFLOW];
diff --git a/drivers/dma/ti/omap-dma.c b/drivers/dma/ti/omap-dma.c
index 73ed4b794630..70591c2bf92a 100644
--- a/drivers/dma/ti/omap-dma.c
+++ b/drivers/dma/ti/omap-dma.c
@@ -1002,7 +1002,7 @@ static struct dma_async_tx_descriptor *omap_dma_prep_slave_sg(
}
/* Now allocate and setup the descriptor. */
- d = kzalloc(struct_size(d, sg, sglen), GFP_ATOMIC);
+ d = kzalloc_flex(*d, sg, sglen, GFP_ATOMIC);
if (!d)
return NULL;
d->sglen = sglen;
@@ -1503,7 +1503,7 @@ static int omap_dma_chan_init(struct omap_dmadev *od)
{
struct omap_chan *c;
- c = kzalloc(sizeof(*c), GFP_KERNEL);
+ c = kzalloc_obj(*c, GFP_KERNEL);
if (!c)
return -ENOMEM;
diff --git a/drivers/dma/timb_dma.c b/drivers/dma/timb_dma.c
index ecaf002558af..968f8cf19ec0 100644
--- a/drivers/dma/timb_dma.c
+++ b/drivers/dma/timb_dma.c
@@ -325,7 +325,7 @@ static struct timb_dma_desc *td_alloc_init_desc(struct timb_dma_chan *td_chan)
struct timb_dma_desc *td_desc;
int err;
- td_desc = kzalloc(sizeof(struct timb_dma_desc), GFP_KERNEL);
+ td_desc = kzalloc_obj(struct timb_dma_desc, GFP_KERNEL);
if (!td_desc)
goto out;
@@ -635,8 +635,7 @@ static int td_probe(struct platform_device *pdev)
DRIVER_NAME))
return -EBUSY;
- td = kzalloc(struct_size(td, channels, pdata->nr_channels),
- GFP_KERNEL);
+ td = kzalloc_flex(*td, channels, pdata->nr_channels, GFP_KERNEL);
if (!td) {
err = -ENOMEM;
goto err_release_region;
diff --git a/drivers/dma/txx9dmac.c b/drivers/dma/txx9dmac.c
index 35d5221683b2..05622b68a936 100644
--- a/drivers/dma/txx9dmac.c
+++ b/drivers/dma/txx9dmac.c
@@ -192,7 +192,7 @@ static struct txx9dmac_desc *txx9dmac_desc_alloc(struct txx9dmac_chan *dc,
struct txx9dmac_dev *ddev = dc->ddev;
struct txx9dmac_desc *desc;
- desc = kzalloc(sizeof(*desc), flags);
+ desc = kzalloc_obj(*desc, flags);
if (!desc)
return NULL;
INIT_LIST_HEAD(&desc->tx_list);
diff --git a/drivers/dma/uniphier-mdmac.c b/drivers/dma/uniphier-mdmac.c
index 7a99f86ecb5a..a8aa904b88be 100644
--- a/drivers/dma/uniphier-mdmac.c
+++ b/drivers/dma/uniphier-mdmac.c
@@ -238,7 +238,7 @@ uniphier_mdmac_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
if (!is_slave_direction(direction))
return NULL;
- md = kzalloc(sizeof(*md), GFP_NOWAIT);
+ md = kzalloc_obj(*md, GFP_NOWAIT);
if (!md)
return NULL;
diff --git a/drivers/dma/uniphier-xdmac.c b/drivers/dma/uniphier-xdmac.c
index ceeb6171c9d1..120c0d4f12dd 100644
--- a/drivers/dma/uniphier-xdmac.c
+++ b/drivers/dma/uniphier-xdmac.c
@@ -292,7 +292,7 @@ uniphier_xdmac_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dst,
nr = 1 + len / XDMAC_MAX_WORD_SIZE;
- xd = kzalloc(struct_size(xd, nodes, nr), GFP_NOWAIT);
+ xd = kzalloc_flex(*xd, nodes, nr, GFP_NOWAIT);
if (!xd)
return NULL;
xd->nr_node = nr;
@@ -348,7 +348,7 @@ uniphier_xdmac_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
return NULL;
}
- xd = kzalloc(struct_size(xd, nodes, sg_len), GFP_NOWAIT);
+ xd = kzalloc_flex(*xd, nodes, sg_len, GFP_NOWAIT);
if (!xd)
return NULL;
xd->nr_node = sg_len;
diff --git a/drivers/dma/xilinx/xdma.c b/drivers/dma/xilinx/xdma.c
index 118199a04902..d02a4dac2291 100644
--- a/drivers/dma/xilinx/xdma.c
+++ b/drivers/dma/xilinx/xdma.c
@@ -275,7 +275,7 @@ xdma_alloc_desc(struct xdma_chan *chan, u32 desc_num, bool cyclic)
void *addr;
int i, j;
- sw_desc = kzalloc(sizeof(*sw_desc), GFP_NOWAIT);
+ sw_desc = kzalloc_obj(*sw_desc, GFP_NOWAIT);
if (!sw_desc)
return NULL;
@@ -284,8 +284,8 @@ xdma_alloc_desc(struct xdma_chan *chan, u32 desc_num, bool cyclic)
sw_desc->cyclic = cyclic;
sw_desc->error = false;
dblk_num = DIV_ROUND_UP(desc_num, XDMA_DESC_ADJACENT);
- sw_desc->desc_blocks = kcalloc(dblk_num, sizeof(*sw_desc->desc_blocks),
- GFP_NOWAIT);
+ sw_desc->desc_blocks = kzalloc_objs(*sw_desc->desc_blocks, dblk_num,
+ GFP_NOWAIT);
if (!sw_desc->desc_blocks)
goto failed;
diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx/xilinx_dma.c
index 53229d8ebc52..b53292e02448 100644
--- a/drivers/dma/xilinx/xilinx_dma.c
+++ b/drivers/dma/xilinx/xilinx_dma.c
@@ -836,7 +836,7 @@ xilinx_dma_alloc_tx_descriptor(struct xilinx_dma_chan *chan)
{
struct xilinx_dma_tx_descriptor *desc;
- desc = kzalloc(sizeof(*desc), GFP_NOWAIT);
+ desc = kzalloc_obj(*desc, GFP_NOWAIT);
if (!desc)
return NULL;
diff --git a/drivers/dma/xilinx/xilinx_dpdma.c b/drivers/dma/xilinx/xilinx_dpdma.c
index ee5d9fdbfd7f..d9a3542c4531 100644
--- a/drivers/dma/xilinx/xilinx_dpdma.c
+++ b/drivers/dma/xilinx/xilinx_dpdma.c
@@ -635,7 +635,7 @@ xilinx_dpdma_chan_alloc_tx_desc(struct xilinx_dpdma_chan *chan)
{
struct xilinx_dpdma_tx_desc *tx_desc;
- tx_desc = kzalloc(sizeof(*tx_desc), GFP_NOWAIT);
+ tx_desc = kzalloc_obj(*tx_desc, GFP_NOWAIT);
if (!tx_desc)
return NULL;
diff --git a/drivers/dma/xilinx/zynqmp_dma.c b/drivers/dma/xilinx/zynqmp_dma.c
index 7bb3716e60da..b9133f4fc3f9 100644
--- a/drivers/dma/xilinx/zynqmp_dma.c
+++ b/drivers/dma/xilinx/zynqmp_dma.c
@@ -482,8 +482,8 @@ static int zynqmp_dma_alloc_chan_resources(struct dma_chan *dchan)
if (ret < 0)
return ret;
- chan->sw_desc_pool = kcalloc(ZYNQMP_DMA_NUM_DESCS, sizeof(*desc),
- GFP_KERNEL);
+ chan->sw_desc_pool = kzalloc_objs(*desc, ZYNQMP_DMA_NUM_DESCS,
+ GFP_KERNEL);
if (!chan->sw_desc_pool)
return -ENOMEM;
diff --git a/drivers/dpll/dpll_core.c b/drivers/dpll/dpll_core.c
index 627a5b39a0ef..cd41fbedd9fe 100644
--- a/drivers/dpll/dpll_core.c
+++ b/drivers/dpll/dpll_core.c
@@ -205,7 +205,7 @@ dpll_xa_ref_pin_add(struct xarray *xa_pins, struct dpll_pin *pin,
}
if (!ref_exists) {
- ref = kzalloc(sizeof(*ref), GFP_KERNEL);
+ ref = kzalloc_obj(*ref, GFP_KERNEL);
if (!ref)
return -ENOMEM;
ref->pin = pin;
@@ -218,7 +218,7 @@ dpll_xa_ref_pin_add(struct xarray *xa_pins, struct dpll_pin *pin,
refcount_set(&ref->refcount, 1);
}
- reg = kzalloc(sizeof(*reg), GFP_KERNEL);
+ reg = kzalloc_obj(*reg, GFP_KERNEL);
if (!reg) {
if (!ref_exists) {
xa_erase(xa_pins, pin->pin_idx);
@@ -286,7 +286,7 @@ dpll_xa_ref_dpll_add(struct xarray *xa_dplls, struct dpll_device *dpll,
}
if (!ref_exists) {
- ref = kzalloc(sizeof(*ref), GFP_KERNEL);
+ ref = kzalloc_obj(*ref, GFP_KERNEL);
if (!ref)
return -ENOMEM;
ref->dpll = dpll;
@@ -299,7 +299,7 @@ dpll_xa_ref_dpll_add(struct xarray *xa_dplls, struct dpll_device *dpll,
refcount_set(&ref->refcount, 1);
}
- reg = kzalloc(sizeof(*reg), GFP_KERNEL);
+ reg = kzalloc_obj(*reg, GFP_KERNEL);
if (!reg) {
if (!ref_exists) {
xa_erase(xa_dplls, dpll->id);
@@ -360,7 +360,7 @@ dpll_device_alloc(const u64 clock_id, u32 device_idx, struct module *module)
struct dpll_device *dpll;
int ret;
- dpll = kzalloc(sizeof(*dpll), GFP_KERNEL);
+ dpll = kzalloc_obj(*dpll, GFP_KERNEL);
if (!dpll)
return ERR_PTR(-ENOMEM);
refcount_set(&dpll->refcount, 1);
@@ -490,7 +490,7 @@ int dpll_device_register(struct dpll_device *dpll, enum dpll_type type,
return -EEXIST;
}
- reg = kzalloc(sizeof(*reg), GFP_KERNEL);
+ reg = kzalloc_obj(*reg, GFP_KERNEL);
if (!reg) {
mutex_unlock(&dpll_lock);
return -ENOMEM;
@@ -644,7 +644,7 @@ dpll_pin_alloc(u64 clock_id, u32 pin_idx, struct module *module,
} else if (pin_idx > INT_MAX) {
return ERR_PTR(-EINVAL);
}
- pin = kzalloc(sizeof(*pin), GFP_KERNEL);
+ pin = kzalloc_obj(*pin, GFP_KERNEL);
if (!pin) {
ret = -ENOMEM;
goto err_pin_alloc;
diff --git a/drivers/dpll/zl3073x/dpll.c b/drivers/dpll/zl3073x/dpll.c
index 78edc36b17fb..e532fedf0d36 100644
--- a/drivers/dpll/zl3073x/dpll.c
+++ b/drivers/dpll/zl3073x/dpll.c
@@ -1372,7 +1372,7 @@ zl3073x_dpll_pin_alloc(struct zl3073x_dpll *zldpll, enum dpll_pin_direction dir,
{
struct zl3073x_dpll_pin *pin;
- pin = kzalloc(sizeof(*pin), GFP_KERNEL);
+ pin = kzalloc_obj(*pin, GFP_KERNEL);
if (!pin)
return ERR_PTR(-ENOMEM);
@@ -1944,7 +1944,7 @@ zl3073x_dpll_alloc(struct zl3073x_dev *zldev, u8 ch)
{
struct zl3073x_dpll *zldpll;
- zldpll = kzalloc(sizeof(*zldpll), GFP_KERNEL);
+ zldpll = kzalloc_obj(*zldpll, GFP_KERNEL);
if (!zldpll)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/dpll/zl3073x/fw.c b/drivers/dpll/zl3073x/fw.c
index 55b638247f4b..56b4eeadf4e3 100644
--- a/drivers/dpll/zl3073x/fw.c
+++ b/drivers/dpll/zl3073x/fw.c
@@ -129,7 +129,7 @@ zl3073x_fw_component_alloc(size_t size)
{
struct zl3073x_fw_component *comp;
- comp = kzalloc(sizeof(*comp), GFP_KERNEL);
+ comp = kzalloc_obj(*comp, GFP_KERNEL);
if (!comp)
return NULL;
@@ -313,7 +313,7 @@ struct zl3073x_fw *zl3073x_fw_load(struct zl3073x_dev *zldev, const char *data,
ssize_t rc;
/* Allocate firmware structure */
- fw = kzalloc(sizeof(*fw), GFP_KERNEL);
+ fw = kzalloc_obj(*fw, GFP_KERNEL);
if (!fw)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/dpll/zl3073x/prop.c b/drivers/dpll/zl3073x/prop.c
index 8523dc8c226e..36b843f17156 100644
--- a/drivers/dpll/zl3073x/prop.c
+++ b/drivers/dpll/zl3073x/prop.c
@@ -198,7 +198,7 @@ struct zl3073x_pin_props *zl3073x_pin_props_get(struct zl3073x_dev *zldev,
const char *type;
u32 curr_freq;
- props = kzalloc(sizeof(*props), GFP_KERNEL);
+ props = kzalloc_obj(*props, GFP_KERNEL);
if (!props)
return ERR_PTR(-ENOMEM);
@@ -289,7 +289,7 @@ struct zl3073x_pin_props *zl3073x_pin_props_get(struct zl3073x_dev *zldev,
skip_fwnode_props:
/* Allocate frequency ranges list - extra slot for current frequency */
- ranges = kcalloc(num_freqs + 1, sizeof(*ranges), GFP_KERNEL);
+ ranges = kzalloc_objs(*ranges, num_freqs + 1, GFP_KERNEL);
if (!ranges) {
rc = -ENOMEM;
goto err_alloc_ranges;
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
index 63fca0ee2c23..183357b9f99a 100644
--- a/drivers/edac/amd64_edac.c
+++ b/drivers/edac/amd64_edac.c
@@ -3485,7 +3485,7 @@ static int dct_hw_info_get(struct amd64_pvt *pvt)
static int umc_hw_info_get(struct amd64_pvt *pvt)
{
- pvt->umc = kcalloc(pvt->max_mcs, sizeof(struct amd64_umc), GFP_KERNEL);
+ pvt->umc = kzalloc_objs(struct amd64_umc, pvt->max_mcs, GFP_KERNEL);
if (!pvt->umc)
return -ENOMEM;
@@ -3716,7 +3716,7 @@ static int gpu_hw_info_get(struct amd64_pvt *pvt)
if (ret)
return ret;
- pvt->umc = kcalloc(pvt->max_mcs, sizeof(struct amd64_umc), GFP_KERNEL);
+ pvt->umc = kzalloc_objs(struct amd64_umc, pvt->max_mcs, GFP_KERNEL);
if (!pvt->umc)
return -ENOMEM;
@@ -3916,7 +3916,7 @@ static int per_family_init(struct amd64_pvt *pvt)
scnprintf(pvt->ctl_name, sizeof(pvt->ctl_name), "F%02Xh_M%02Xh",
pvt->fam, pvt->model);
- pvt->csels = kcalloc(pvt->max_mcs, sizeof(*pvt->csels), GFP_KERNEL);
+ pvt->csels = kzalloc_objs(*pvt->csels, pvt->max_mcs, GFP_KERNEL);
if (!pvt->csels)
return -ENOMEM;
@@ -4000,13 +4000,13 @@ static int probe_one_instance(unsigned int nid)
int ret;
ret = -ENOMEM;
- s = kzalloc(sizeof(struct ecc_settings), GFP_KERNEL);
+ s = kzalloc_obj(struct ecc_settings, GFP_KERNEL);
if (!s)
goto err_out;
ecc_stngs[nid] = s;
- pvt = kzalloc(sizeof(struct amd64_pvt), GFP_KERNEL);
+ pvt = kzalloc_obj(struct amd64_pvt, GFP_KERNEL);
if (!pvt)
goto err_settings;
@@ -4146,7 +4146,7 @@ static int __init amd64_edac_init(void)
opstate_init();
err = -ENOMEM;
- ecc_stngs = kcalloc(amd_nb_num(), sizeof(ecc_stngs[0]), GFP_KERNEL);
+ ecc_stngs = kzalloc_objs(ecc_stngs[0], amd_nb_num(), GFP_KERNEL);
if (!ecc_stngs)
goto err_free;
diff --git a/drivers/edac/edac_device.c b/drivers/edac/edac_device.c
index 0734909b08a4..6bb6e4d435a4 100644
--- a/drivers/edac/edac_device.c
+++ b/drivers/edac/edac_device.c
@@ -67,17 +67,19 @@ edac_device_alloc_ctl_info(unsigned pvt_sz, char *dev_name, unsigned nr_instance
edac_dbg(4, "instances=%d blocks=%d\n", nr_instances, nr_blocks);
- dev_ctl = kzalloc(sizeof(struct edac_device_ctl_info), GFP_KERNEL);
+ dev_ctl = kzalloc_obj(struct edac_device_ctl_info, GFP_KERNEL);
if (!dev_ctl)
return NULL;
- dev_inst = kcalloc(nr_instances, sizeof(struct edac_device_instance), GFP_KERNEL);
+ dev_inst = kzalloc_objs(struct edac_device_instance, nr_instances,
+ GFP_KERNEL);
if (!dev_inst)
goto free;
dev_ctl->instances = dev_inst;
- dev_blk = kcalloc(nr_instances * nr_blocks, sizeof(struct edac_device_block), GFP_KERNEL);
+ dev_blk = kzalloc_objs(struct edac_device_block,
+ nr_instances * nr_blocks, GFP_KERNEL);
if (!dev_blk)
goto free;
@@ -642,22 +644,24 @@ int edac_dev_register(struct device *parent, char *name,
}
}
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
- ras_attr_groups = kcalloc(attr_gcnt + 1, sizeof(*ras_attr_groups), GFP_KERNEL);
+ ras_attr_groups = kzalloc_objs(*ras_attr_groups, attr_gcnt + 1,
+ GFP_KERNEL);
if (!ras_attr_groups)
goto ctx_free;
if (scrub_cnt) {
- ctx->scrub = kcalloc(scrub_cnt, sizeof(*ctx->scrub), GFP_KERNEL);
+ ctx->scrub = kzalloc_objs(*ctx->scrub, scrub_cnt, GFP_KERNEL);
if (!ctx->scrub)
goto groups_free;
}
if (mem_repair_cnt) {
- ctx->mem_repair = kcalloc(mem_repair_cnt, sizeof(*ctx->mem_repair), GFP_KERNEL);
+ ctx->mem_repair = kzalloc_objs(*ctx->mem_repair, mem_repair_cnt,
+ GFP_KERNEL);
if (!ctx->mem_repair)
goto data_mem_free;
}
diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c
index 0959320fe51c..2d74438837f4 100644
--- a/drivers/edac/edac_mc.c
+++ b/drivers/edac/edac_mc.c
@@ -216,14 +216,14 @@ static int edac_mc_alloc_csrows(struct mem_ctl_info *mci)
/*
* Allocate and fill the csrow/channels structs
*/
- mci->csrows = kcalloc(tot_csrows, sizeof(*mci->csrows), GFP_KERNEL);
+ mci->csrows = kzalloc_objs(*mci->csrows, tot_csrows, GFP_KERNEL);
if (!mci->csrows)
return -ENOMEM;
for (row = 0; row < tot_csrows; row++) {
struct csrow_info *csr;
- csr = kzalloc(sizeof(**mci->csrows), GFP_KERNEL);
+ csr = kzalloc_obj(**mci->csrows, GFP_KERNEL);
if (!csr)
return -ENOMEM;
@@ -231,15 +231,15 @@ static int edac_mc_alloc_csrows(struct mem_ctl_info *mci)
csr->csrow_idx = row;
csr->mci = mci;
csr->nr_channels = tot_channels;
- csr->channels = kcalloc(tot_channels, sizeof(*csr->channels),
- GFP_KERNEL);
+ csr->channels = kzalloc_objs(*csr->channels, tot_channels,
+ GFP_KERNEL);
if (!csr->channels)
return -ENOMEM;
for (chn = 0; chn < tot_channels; chn++) {
struct rank_info *chan;
- chan = kzalloc(sizeof(**csr->channels), GFP_KERNEL);
+ chan = kzalloc_obj(**csr->channels, GFP_KERNEL);
if (!chan)
return -ENOMEM;
@@ -262,7 +262,7 @@ static int edac_mc_alloc_dimms(struct mem_ctl_info *mci)
/*
* Allocate and fill the dimm structs
*/
- mci->dimms = kcalloc(mci->tot_dimms, sizeof(*mci->dimms), GFP_KERNEL);
+ mci->dimms = kzalloc_objs(*mci->dimms, mci->tot_dimms, GFP_KERNEL);
if (!mci->dimms)
return -ENOMEM;
@@ -276,7 +276,7 @@ static int edac_mc_alloc_dimms(struct mem_ctl_info *mci)
chan = mci->csrows[row]->channels[chn];
- dimm = kzalloc(sizeof(**mci->dimms), GFP_KERNEL);
+ dimm = kzalloc_obj(**mci->dimms, GFP_KERNEL);
if (!dimm)
return -ENOMEM;
mci->dimms[idx] = dimm;
@@ -362,11 +362,11 @@ struct mem_ctl_info *edac_mc_alloc(unsigned int mc_num,
per_rank = true;
}
- mci = kzalloc(sizeof(struct mem_ctl_info), GFP_KERNEL);
+ mci = kzalloc_obj(struct mem_ctl_info, GFP_KERNEL);
if (!mci)
return NULL;
- mci->layers = kcalloc(n_layers, sizeof(struct edac_mc_layer), GFP_KERNEL);
+ mci->layers = kzalloc_objs(struct edac_mc_layer, n_layers, GFP_KERNEL);
if (!mci->layers)
goto error;
diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
index 091cc6aae8a9..629158cd505c 100644
--- a/drivers/edac/edac_mc_sysfs.c
+++ b/drivers/edac/edac_mc_sysfs.c
@@ -648,7 +648,7 @@ int __init edac_mc_sysfs_init(void)
{
int err;
- mci_pdev = kzalloc(sizeof(*mci_pdev), GFP_KERNEL);
+ mci_pdev = kzalloc_obj(*mci_pdev, GFP_KERNEL);
if (!mci_pdev)
return -ENOMEM;
diff --git a/drivers/edac/edac_pci.c b/drivers/edac/edac_pci.c
index 64c142aecca7..c1c9dc6ffa2f 100644
--- a/drivers/edac/edac_pci.c
+++ b/drivers/edac/edac_pci.c
@@ -32,7 +32,7 @@ struct edac_pci_ctl_info *edac_pci_alloc_ctl_info(unsigned int sz_pvt,
edac_dbg(1, "\n");
- pci = kzalloc(sizeof(struct edac_pci_ctl_info), GFP_KERNEL);
+ pci = kzalloc_obj(struct edac_pci_ctl_info, GFP_KERNEL);
if (!pci)
return NULL;
diff --git a/drivers/edac/edac_pci_sysfs.c b/drivers/edac/edac_pci_sysfs.c
index 7b44afcf48db..f1b0f3ba7f72 100644
--- a/drivers/edac/edac_pci_sysfs.c
+++ b/drivers/edac/edac_pci_sysfs.c
@@ -361,7 +361,7 @@ static int edac_pci_main_kobj_setup(void)
goto decrement_count_fail;
}
- edac_pci_top_main_kobj = kzalloc(sizeof(struct kobject), GFP_KERNEL);
+ edac_pci_top_main_kobj = kzalloc_obj(struct kobject, GFP_KERNEL);
if (!edac_pci_top_main_kobj) {
edac_dbg(1, "Failed to allocate\n");
err = -ENOMEM;
diff --git a/drivers/edac/i7core_edac.c b/drivers/edac/i7core_edac.c
index 91e0a88ef904..dd1a5e575230 100644
--- a/drivers/edac/i7core_edac.c
+++ b/drivers/edac/i7core_edac.c
@@ -455,12 +455,12 @@ static struct i7core_dev *alloc_i7core_dev(u8 socket,
{
struct i7core_dev *i7core_dev;
- i7core_dev = kzalloc(sizeof(*i7core_dev), GFP_KERNEL);
+ i7core_dev = kzalloc_obj(*i7core_dev, GFP_KERNEL);
if (!i7core_dev)
return NULL;
- i7core_dev->pdev = kcalloc(table->n_devs, sizeof(*i7core_dev->pdev),
- GFP_KERNEL);
+ i7core_dev->pdev = kzalloc_objs(*i7core_dev->pdev, table->n_devs,
+ GFP_KERNEL);
if (!i7core_dev->pdev) {
kfree(i7core_dev);
return NULL;
@@ -1159,7 +1159,7 @@ static int i7core_create_sysfs_devices(struct mem_ctl_info *mci)
struct i7core_pvt *pvt = mci->pvt_info;
int rc;
- pvt->addrmatch_dev = kzalloc(sizeof(*pvt->addrmatch_dev), GFP_KERNEL);
+ pvt->addrmatch_dev = kzalloc_obj(*pvt->addrmatch_dev, GFP_KERNEL);
if (!pvt->addrmatch_dev)
return -ENOMEM;
@@ -1177,8 +1177,8 @@ static int i7core_create_sysfs_devices(struct mem_ctl_info *mci)
goto err_put_addrmatch;
if (!pvt->is_registered) {
- pvt->chancounts_dev = kzalloc(sizeof(*pvt->chancounts_dev),
- GFP_KERNEL);
+ pvt->chancounts_dev = kzalloc_obj(*pvt->chancounts_dev,
+ GFP_KERNEL);
if (!pvt->chancounts_dev) {
rc = -ENOMEM;
goto err_del_addrmatch;
diff --git a/drivers/edac/igen6_edac.c b/drivers/edac/igen6_edac.c
index 045c20179cd3..fa1cabfe6909 100644
--- a/drivers/edac/igen6_edac.c
+++ b/drivers/edac/igen6_edac.c
@@ -1549,7 +1549,7 @@ static int igen6_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
edac_dbg(2, "\n");
- igen6_pvt = kzalloc(sizeof(*igen6_pvt), GFP_KERNEL);
+ igen6_pvt = kzalloc_obj(*igen6_pvt, GFP_KERNEL);
if (!igen6_pvt)
return -ENOMEM;
diff --git a/drivers/edac/imh_base.c b/drivers/edac/imh_base.c
index 4348b3883b45..a37be2372764 100644
--- a/drivers/edac/imh_base.c
+++ b/drivers/edac/imh_base.c
@@ -171,7 +171,7 @@ static int __get_ddr_munits(struct res_config *cfg, struct skx_dev *d,
d->imc[lmc].lmc = lmc;
/* Create the imc device instance. */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
@@ -257,7 +257,7 @@ static int imh_get_all_mmio_base_h(struct res_config *cfg, struct list_head *eda
struct skx_dev *d;
for (i = 0; i < n; i++) {
- d = kzalloc(struct_size(d, imc, imc_num), GFP_KERNEL);
+ d = kzalloc_flex(*d, imc, imc_num, GFP_KERNEL);
if (!d)
return -ENOMEM;
diff --git a/drivers/edac/sb_edac.c b/drivers/edac/sb_edac.c
index d5f12219598a..79fc3ace6a10 100644
--- a/drivers/edac/sb_edac.c
+++ b/drivers/edac/sb_edac.c
@@ -771,13 +771,12 @@ static struct sbridge_dev *alloc_sbridge_dev(int seg, u8 bus, enum domain dom,
{
struct sbridge_dev *sbridge_dev;
- sbridge_dev = kzalloc(sizeof(*sbridge_dev), GFP_KERNEL);
+ sbridge_dev = kzalloc_obj(*sbridge_dev, GFP_KERNEL);
if (!sbridge_dev)
return NULL;
- sbridge_dev->pdev = kcalloc(table->n_devs_per_imc,
- sizeof(*sbridge_dev->pdev),
- GFP_KERNEL);
+ sbridge_dev->pdev = kzalloc_objs(*sbridge_dev->pdev,
+ table->n_devs_per_imc, GFP_KERNEL);
if (!sbridge_dev->pdev) {
kfree(sbridge_dev);
return NULL;
diff --git a/drivers/edac/skx_common.c b/drivers/edac/skx_common.c
index 3276afe43922..709c939e5919 100644
--- a/drivers/edac/skx_common.c
+++ b/drivers/edac/skx_common.c
@@ -346,7 +346,7 @@ int skx_get_all_bus_mappings(struct res_config *cfg, struct list_head **list)
if (!pdev)
break;
ndev++;
- d = kzalloc(struct_size(d, imc, imc_num), GFP_KERNEL);
+ d = kzalloc_flex(*d, imc, imc_num, GFP_KERNEL);
if (!d) {
pci_dev_put(pdev);
return -ENOMEM;
diff --git a/drivers/edac/versalnet_edac.c b/drivers/edac/versalnet_edac.c
index 1a1092793092..3cc885fa384c 100644
--- a/drivers/edac/versalnet_edac.c
+++ b/drivers/edac/versalnet_edac.c
@@ -559,7 +559,7 @@ static int setup_mcdi(struct mc_priv *mc_priv)
struct cdx_mcdi *amd_mcdi;
int ret, i;
- amd_mcdi = kzalloc(sizeof(*amd_mcdi), GFP_KERNEL);
+ amd_mcdi = kzalloc_obj(*amd_mcdi, GFP_KERNEL);
if (!amd_mcdi)
return -ENOMEM;
@@ -812,7 +812,7 @@ static int init_versalnet(struct mc_priv *priv, struct platform_device *pdev)
priv->mci[i] = mci;
priv->dwidth = dt;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
dev->release = versal_edac_release;
name = kmalloc(32, GFP_KERNEL);
sprintf(name, "versal-net-ddrmc5-edac-%d", i);
diff --git a/drivers/eisa/eisa-bus.c b/drivers/eisa/eisa-bus.c
index bd76d599109c..ffabe1bf4c13 100644
--- a/drivers/eisa/eisa-bus.c
+++ b/drivers/eisa/eisa-bus.c
@@ -317,7 +317,7 @@ static int __init eisa_probe(struct eisa_root_device *root)
/* First try to get hold of slot 0. If there is no device
* here, simply fail, unless root->force_probe is set. */
- edev = kzalloc(sizeof(*edev), GFP_KERNEL);
+ edev = kzalloc_obj(*edev, GFP_KERNEL);
if (!edev)
return -ENOMEM;
@@ -350,7 +350,7 @@ static int __init eisa_probe(struct eisa_root_device *root)
force_probe:
for (c = 0, i = 1; i <= root->slots; i++) {
- edev = kzalloc(sizeof(*edev), GFP_KERNEL);
+ edev = kzalloc_obj(*edev, GFP_KERNEL);
if (!edev) {
dev_err(root->dev, "EISA: Out of memory for slot %d\n",
i);
diff --git a/drivers/extcon/extcon-usbc-cros-ec.c b/drivers/extcon/extcon-usbc-cros-ec.c
index 1fb627ea8b50..cf30d54fb418 100644
--- a/drivers/extcon/extcon-usbc-cros-ec.c
+++ b/drivers/extcon/extcon-usbc-cros-ec.c
@@ -68,7 +68,7 @@ static int cros_ec_pd_command(struct cros_ec_extcon_info *info,
struct cros_ec_command *msg;
int ret;
- msg = kzalloc(struct_size(msg, data, max(outsize, insize)), GFP_KERNEL);
+ msg = kzalloc_flex(*msg, data, max(outsize, insize), GFP_KERNEL);
if (!msg)
return -ENOMEM;
diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c
index e7f55c021e56..8fc412ad3cf2 100644
--- a/drivers/extcon/extcon.c
+++ b/drivers/extcon/extcon.c
@@ -1060,7 +1060,7 @@ struct extcon_dev *extcon_dev_allocate(const unsigned int *supported_cable)
if (!supported_cable)
return ERR_PTR(-EINVAL);
- edev = kzalloc(sizeof(*edev), GFP_KERNEL);
+ edev = kzalloc_obj(*edev, GFP_KERNEL);
if (!edev)
return ERR_PTR(-ENOMEM);
@@ -1098,8 +1098,8 @@ static int extcon_alloc_cables(struct extcon_dev *edev)
if (!edev->max_supported)
return 0;
- edev->cables = kcalloc(edev->max_supported, sizeof(*edev->cables),
- GFP_KERNEL);
+ edev->cables = kzalloc_objs(*edev->cables, edev->max_supported,
+ GFP_KERNEL);
if (!edev->cables)
return -ENOMEM;
@@ -1160,13 +1160,13 @@ static int extcon_alloc_muex(struct extcon_dev *edev)
for (index = 0; edev->mutually_exclusive[index]; index++)
;
- edev->attrs_muex = kcalloc(index + 1, sizeof(*edev->attrs_muex),
- GFP_KERNEL);
+ edev->attrs_muex = kzalloc_objs(*edev->attrs_muex, index + 1,
+ GFP_KERNEL);
if (!edev->attrs_muex)
return -ENOMEM;
- edev->d_attrs_muex = kcalloc(index, sizeof(*edev->d_attrs_muex),
- GFP_KERNEL);
+ edev->d_attrs_muex = kzalloc_objs(*edev->d_attrs_muex, index,
+ GFP_KERNEL);
if (!edev->d_attrs_muex) {
kfree(edev->attrs_muex);
return -ENOMEM;
@@ -1210,9 +1210,9 @@ static int extcon_alloc_groups(struct extcon_dev *edev)
if (!edev->max_supported)
return 0;
- edev->extcon_dev_type.groups = kcalloc(edev->max_supported + 2,
- sizeof(*edev->extcon_dev_type.groups),
- GFP_KERNEL);
+ edev->extcon_dev_type.groups = kzalloc_objs(*edev->extcon_dev_type.groups,
+ edev->max_supported + 2,
+ GFP_KERNEL);
if (!edev->extcon_dev_type.groups)
return -ENOMEM;
@@ -1294,8 +1294,8 @@ int extcon_dev_register(struct extcon_dev *edev)
spin_lock_init(&edev->lock);
if (edev->max_supported) {
- edev->nh = kcalloc(edev->max_supported, sizeof(*edev->nh),
- GFP_KERNEL);
+ edev->nh = kzalloc_objs(*edev->nh, edev->max_supported,
+ GFP_KERNEL);
if (!edev->nh) {
ret = -ENOMEM;
goto err_alloc_nh;
diff --git a/drivers/firewire/core-cdev.c b/drivers/firewire/core-cdev.c
index 9e964fdd175c..6d1a59e33d2e 100644
--- a/drivers/firewire/core-cdev.c
+++ b/drivers/firewire/core-cdev.c
@@ -291,7 +291,7 @@ static int fw_device_op_open(struct inode *inode, struct file *file)
return -ENODEV;
}
- client = kzalloc(sizeof(*client), GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (client == NULL) {
fw_device_put(device);
return -ENOMEM;
@@ -412,7 +412,7 @@ static void queue_bus_reset_event(struct client *client)
struct client_resource *resource;
unsigned long index;
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (e == NULL)
return;
@@ -745,8 +745,8 @@ static void handle_request(struct fw_card *card, struct fw_request *request,
if (is_fcp)
fw_request_get(request);
- r = kmalloc(sizeof(*r), GFP_ATOMIC);
- e = kmalloc(sizeof(*e), GFP_ATOMIC);
+ r = kmalloc_obj(*r, GFP_ATOMIC);
+ e = kmalloc_obj(*e, GFP_ATOMIC);
if (r == NULL || e == NULL)
goto failed;
@@ -837,7 +837,7 @@ static int ioctl_allocate(struct client *client, union ioctl_arg *arg)
struct fw_address_region region;
int ret;
- r = kmalloc(sizeof(*r), GFP_KERNEL);
+ r = kmalloc_obj(*r, GFP_KERNEL);
if (r == NULL)
return -ENOMEM;
@@ -941,7 +941,7 @@ static int ioctl_add_descriptor(struct client *client, union ioctl_arg *arg)
if (a->length > 256)
return -EINVAL;
- r = kmalloc(struct_size(r, data, a->length), GFP_KERNEL);
+ r = kmalloc_flex(*r, data, a->length, GFP_KERNEL);
if (r == NULL)
return -ENOMEM;
@@ -1006,7 +1006,7 @@ static void iso_mc_callback(struct fw_iso_context *context,
struct client *client = data;
struct iso_interrupt_mc_event *e;
- e = kmalloc(sizeof(*e), GFP_KERNEL);
+ e = kmalloc_obj(*e, GFP_KERNEL);
if (e == NULL)
return;
@@ -1409,9 +1409,9 @@ static int init_iso_resource(struct client *client,
request->bandwidth > BANDWIDTH_AVAILABLE_INITIAL)
return -EINVAL;
- r = kmalloc(sizeof(*r), GFP_KERNEL);
- e1 = kmalloc(sizeof(*e1), GFP_KERNEL);
- e2 = kmalloc(sizeof(*e2), GFP_KERNEL);
+ r = kmalloc_obj(*r, GFP_KERNEL);
+ e1 = kmalloc_obj(*e1, GFP_KERNEL);
+ e2 = kmalloc_obj(*e2, GFP_KERNEL);
if (r == NULL || e1 == NULL || e2 == NULL) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/firewire/core-device.c b/drivers/firewire/core-device.c
index 9b0080397154..3281f6c6bedb 100644
--- a/drivers/firewire/core-device.c
+++ b/drivers/firewire/core-device.c
@@ -849,7 +849,7 @@ static void create_units(struct fw_device *device)
* Get the address of the unit directory and try to
* match the drivers id_tables against it.
*/
- unit = kzalloc(sizeof(*unit), GFP_KERNEL);
+ unit = kzalloc_obj(*unit, GFP_KERNEL);
if (unit == NULL)
continue;
@@ -1339,7 +1339,7 @@ void fw_node_event(struct fw_card *card, struct fw_node *node, int event)
* without actually having a link.
*/
create:
- device = kzalloc(sizeof(*device), GFP_ATOMIC);
+ device = kzalloc_obj(*device, GFP_ATOMIC);
if (device == NULL)
break;
diff --git a/drivers/firewire/core-iso.c b/drivers/firewire/core-iso.c
index 3190b2ca1298..21c61405f794 100644
--- a/drivers/firewire/core-iso.c
+++ b/drivers/firewire/core-iso.c
@@ -30,7 +30,9 @@
int fw_iso_buffer_alloc(struct fw_iso_buffer *buffer, int page_count)
{
- struct page **page_array __free(kfree) = kcalloc(page_count, sizeof(page_array[0]), GFP_KERNEL);
+ struct page **page_array __free(kfree) = kzalloc_objs(page_array[0],
+ page_count,
+ GFP_KERNEL);
if (!page_array)
return -ENOMEM;
@@ -55,8 +57,9 @@ int fw_iso_buffer_alloc(struct fw_iso_buffer *buffer, int page_count)
int fw_iso_buffer_map_dma(struct fw_iso_buffer *buffer, struct fw_card *card,
enum dma_data_direction direction)
{
- dma_addr_t *dma_addrs __free(kfree) = kcalloc(buffer->page_count, sizeof(dma_addrs[0]),
- GFP_KERNEL);
+ dma_addr_t *dma_addrs __free(kfree) = kzalloc_objs(dma_addrs[0],
+ buffer->page_count,
+ GFP_KERNEL);
int i;
if (!dma_addrs)
diff --git a/drivers/firewire/core-topology.c b/drivers/firewire/core-topology.c
index ed3ae8cdb0cd..bb2d2db30795 100644
--- a/drivers/firewire/core-topology.c
+++ b/drivers/firewire/core-topology.c
@@ -27,7 +27,7 @@ static struct fw_node *fw_node_create(u32 sid, int port_count, int color)
{
struct fw_node *node;
- node = kzalloc(struct_size(node, ports, port_count), GFP_ATOMIC);
+ node = kzalloc_flex(*node, ports, port_count, GFP_ATOMIC);
if (node == NULL)
return NULL;
diff --git a/drivers/firewire/net.c b/drivers/firewire/net.c
index 6d6446713539..b9f01e871fe3 100644
--- a/drivers/firewire/net.c
+++ b/drivers/firewire/net.c
@@ -338,7 +338,7 @@ static struct fwnet_fragment_info *fwnet_frag_new(
}
}
- new = kmalloc(sizeof(*new), GFP_ATOMIC);
+ new = kmalloc_obj(*new, GFP_ATOMIC);
if (!new)
return NULL;
@@ -356,7 +356,7 @@ static struct fwnet_partial_datagram *fwnet_pd_new(struct net_device *net,
struct fwnet_partial_datagram *new;
struct fwnet_fragment_info *fi;
- new = kmalloc(sizeof(*new), GFP_ATOMIC);
+ new = kmalloc_obj(*new, GFP_ATOMIC);
if (!new)
goto fail;
@@ -1402,7 +1402,7 @@ static int fwnet_add_peer(struct fwnet_device *dev,
{
struct fwnet_peer *peer;
- peer = kmalloc(sizeof(*peer), GFP_KERNEL);
+ peer = kmalloc_obj(*peer, GFP_KERNEL);
if (!peer)
return -ENOMEM;
diff --git a/drivers/firewire/nosy.c b/drivers/firewire/nosy.c
index e59053738a43..547d560f353f 100644
--- a/drivers/firewire/nosy.c
+++ b/drivers/firewire/nosy.c
@@ -281,7 +281,7 @@ nosy_open(struct inode *inode, struct file *file)
if (lynx == NULL)
return -ENODEV;
- client = kmalloc(sizeof *client, GFP_KERNEL);
+ client = kmalloc_obj(*client, GFP_KERNEL);
if (client == NULL)
goto fail;
@@ -545,7 +545,7 @@ add_card(struct pci_dev *dev, const struct pci_device_id *unused)
}
pci_set_master(dev);
- lynx = kzalloc(sizeof *lynx, GFP_KERNEL);
+ lynx = kzalloc_obj(*lynx, GFP_KERNEL);
if (lynx == NULL) {
dev_err(&dev->dev, "Failed to allocate control structure\n");
ret = -ENOMEM;
diff --git a/drivers/firewire/sbp2.c b/drivers/firewire/sbp2.c
index bb1a510b6423..89e0873501f5 100644
--- a/drivers/firewire/sbp2.c
+++ b/drivers/firewire/sbp2.c
@@ -558,7 +558,7 @@ static int sbp2_send_management_orb(struct sbp2_logical_unit *lu, int node_id,
if (function == SBP2_LOGOUT_REQUEST && fw_device_is_shutdown(device))
return 0;
- orb = kzalloc(sizeof(*orb), GFP_NOIO);
+ orb = kzalloc_obj(*orb, GFP_NOIO);
if (orb == NULL)
return -ENOMEM;
@@ -667,7 +667,7 @@ static void sbp2_agent_reset_no_wait(struct sbp2_logical_unit *lu)
struct fw_transaction *t;
static __be32 d;
- t = kmalloc(sizeof(*t), GFP_ATOMIC);
+ t = kmalloc_obj(*t, GFP_ATOMIC);
if (t == NULL)
return;
@@ -966,7 +966,7 @@ static int sbp2_add_logical_unit(struct sbp2_target *tgt, int lun_entry)
{
struct sbp2_logical_unit *lu;
- lu = kmalloc(sizeof(*lu), GFP_KERNEL);
+ lu = kmalloc_obj(*lu, GFP_KERNEL);
if (!lu)
return -ENOMEM;
@@ -1449,7 +1449,7 @@ static enum scsi_qc_status sbp2_scsi_queuecommand(struct Scsi_Host *shost,
struct sbp2_command_orb *orb;
int generation;
- orb = kzalloc(sizeof(*orb), GFP_ATOMIC);
+ orb = kzalloc_obj(*orb, GFP_ATOMIC);
if (orb == NULL)
return SCSI_MLQUEUE_HOST_BUSY;
diff --git a/drivers/firmware/arm_ffa/bus.c b/drivers/firmware/arm_ffa/bus.c
index 50bfe56c755e..fbd9af875a69 100644
--- a/drivers/firmware/arm_ffa/bus.c
+++ b/drivers/firmware/arm_ffa/bus.c
@@ -203,7 +203,7 @@ ffa_device_register(const struct ffa_partition_info *part_info,
if (id < 0)
return NULL;
- ffa_dev = kzalloc(sizeof(*ffa_dev), GFP_KERNEL);
+ ffa_dev = kzalloc_obj(*ffa_dev, GFP_KERNEL);
if (!ffa_dev) {
ida_free(&ffa_bus_id, id);
return NULL;
diff --git a/drivers/firmware/arm_ffa/driver.c b/drivers/firmware/arm_ffa/driver.c
index 8144f6a9f0e9..8962212ad218 100644
--- a/drivers/firmware/arm_ffa/driver.c
+++ b/drivers/firmware/arm_ffa/driver.c
@@ -410,7 +410,7 @@ ffa_partition_probe(const uuid_t *uuid, struct ffa_partition_info **buffer)
if (count <= 0)
return count;
- pbuf = kcalloc(count, sizeof(*pbuf), GFP_KERNEL);
+ pbuf = kzalloc_objs(*pbuf, count, GFP_KERNEL);
if (!pbuf)
return -ENOMEM;
@@ -1376,7 +1376,7 @@ static int __ffa_notify_request(struct ffa_device *dev, bool is_per_vcpu,
if (notify_id >= FFA_MAX_NOTIFICATIONS)
return -EINVAL;
- cb_info = kzalloc(sizeof(*cb_info), GFP_KERNEL);
+ cb_info = kzalloc_obj(*cb_info, GFP_KERNEL);
if (!cb_info)
return -ENOMEM;
@@ -1647,7 +1647,7 @@ static int ffa_xa_add_partition_info(struct ffa_device *dev)
}
}
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return ret;
@@ -1655,7 +1655,7 @@ static int ffa_xa_add_partition_info(struct ffa_device *dev)
info->dev = dev;
if (!phead) {
- phead = kzalloc(sizeof(*phead), GFP_KERNEL);
+ phead = kzalloc_obj(*phead, GFP_KERNEL);
if (!phead)
goto free_out;
@@ -2039,7 +2039,7 @@ static int __init ffa_init(void)
if (ret)
return ret;
- drv_info = kzalloc(sizeof(*drv_info), GFP_KERNEL);
+ drv_info = kzalloc_obj(*drv_info, GFP_KERNEL);
if (!drv_info)
return -ENOMEM;
diff --git a/drivers/firmware/arm_scmi/bus.c b/drivers/firmware/arm_scmi/bus.c
index c7698cfaa4e8..49a168c5ff85 100644
--- a/drivers/firmware/arm_scmi/bus.c
+++ b/drivers/firmware/arm_scmi/bus.c
@@ -90,7 +90,7 @@ static int scmi_protocol_device_request(const struct scmi_device_id *id_table)
* No duplicate found for requested id_table, so let's create a new
* requested device entry for this new valid request.
*/
- rdev = kzalloc(sizeof(*rdev), GFP_KERNEL);
+ rdev = kzalloc_obj(*rdev, GFP_KERNEL);
if (!rdev) {
ret = -ENOMEM;
goto out;
@@ -103,7 +103,7 @@ static int scmi_protocol_device_request(const struct scmi_device_id *id_table)
* there.
*/
if (!phead) {
- phead = kzalloc(sizeof(*phead), GFP_KERNEL);
+ phead = kzalloc_obj(*phead, GFP_KERNEL);
if (!phead) {
kfree(rdev);
ret = -ENOMEM;
@@ -445,7 +445,7 @@ __scmi_device_create(struct device_node *np, struct device *parent,
return NULL;
}
- scmi_dev = kzalloc(sizeof(*scmi_dev), GFP_KERNEL);
+ scmi_dev = kzalloc_obj(*scmi_dev, GFP_KERNEL);
if (!scmi_dev)
return NULL;
diff --git a/drivers/firmware/arm_scmi/notify.c b/drivers/firmware/arm_scmi/notify.c
index dee9f238f6fd..d2a6390cbc5c 100644
--- a/drivers/firmware/arm_scmi/notify.c
+++ b/drivers/firmware/arm_scmi/notify.c
@@ -897,7 +897,7 @@ scmi_allocate_event_handler(struct scmi_notify_instance *ni, u32 evt_key)
{
struct scmi_event_handler *hndl;
- hndl = kzalloc(sizeof(*hndl), GFP_KERNEL);
+ hndl = kzalloc_obj(*hndl, GFP_KERNEL);
if (!hndl)
return NULL;
hndl->key = evt_key;
diff --git a/drivers/firmware/arm_scmi/raw_mode.c b/drivers/firmware/arm_scmi/raw_mode.c
index 73db5492ab44..99a4a70cf117 100644
--- a/drivers/firmware/arm_scmi/raw_mode.c
+++ b/drivers/firmware/arm_scmi/raw_mode.c
@@ -908,7 +908,7 @@ static int scmi_dbg_raw_mode_open(struct inode *inode, struct file *filp)
return -ENODEV;
raw = inode->i_private;
- rd = kzalloc(sizeof(*rd), GFP_KERNEL);
+ rd = kzalloc_obj(*rd, GFP_KERNEL);
if (!rd)
return -ENOMEM;
diff --git a/drivers/firmware/arm_scpi.c b/drivers/firmware/arm_scpi.c
index 87c323de17b9..70a1697a1e6b 100644
--- a/drivers/firmware/arm_scpi.c
+++ b/drivers/firmware/arm_scpi.c
@@ -633,14 +633,14 @@ static struct scpi_dvfs_info *scpi_dvfs_get_info(u8 domain)
if (!buf.opp_count)
return ERR_PTR(-ENOENT);
- info = kmalloc(sizeof(*info), GFP_KERNEL);
+ info = kmalloc_obj(*info, GFP_KERNEL);
if (!info)
return ERR_PTR(-ENOMEM);
info->count = buf.opp_count;
info->latency = le16_to_cpu(buf.latency) * 1000; /* uS to nS */
- info->opps = kcalloc(info->count, sizeof(*opp), GFP_KERNEL);
+ info->opps = kzalloc_objs(*opp, info->count, GFP_KERNEL);
if (!info->opps) {
kfree(info);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/firmware/arm_sdei.c b/drivers/firmware/arm_sdei.c
index 71e2a9a89f6a..c8d737e754e6 100644
--- a/drivers/firmware/arm_sdei.c
+++ b/drivers/firmware/arm_sdei.c
@@ -205,7 +205,7 @@ static struct sdei_event *sdei_event_create(u32 event_num,
lockdep_assert_held(&sdei_events_lock);
- event = kzalloc(sizeof(*event), GFP_KERNEL);
+ event = kzalloc_obj(*event, GFP_KERNEL);
if (!event) {
err = -ENOMEM;
goto fail;
@@ -227,7 +227,7 @@ static struct sdei_event *sdei_event_create(u32 event_num,
event->type = result;
if (event->type == SDEI_EVENT_TYPE_SHARED) {
- reg = kzalloc(sizeof(*reg), GFP_KERNEL);
+ reg = kzalloc_obj(*reg, GFP_KERNEL);
if (!reg) {
err = -ENOMEM;
goto fail;
diff --git a/drivers/firmware/cirrus/cs_dsp.c b/drivers/firmware/cirrus/cs_dsp.c
index 9fdb50f3fec6..148d31eea977 100644
--- a/drivers/firmware/cirrus/cs_dsp.c
+++ b/drivers/firmware/cirrus/cs_dsp.c
@@ -1059,7 +1059,7 @@ static int cs_dsp_create_control(struct cs_dsp *dsp,
}
}
- ctl = kzalloc(sizeof(*ctl), GFP_KERNEL);
+ ctl = kzalloc_obj(*ctl, GFP_KERNEL);
if (!ctl)
return -ENOMEM;
@@ -1781,7 +1781,7 @@ static struct cs_dsp_alg_region *cs_dsp_create_region(struct cs_dsp *dsp,
{
struct cs_dsp_alg_region_list_item *item;
- item = kzalloc(sizeof(*item), GFP_KERNEL);
+ item = kzalloc_obj(*item, GFP_KERNEL);
if (!item)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/firmware/dmi-id.c b/drivers/firmware/dmi-id.c
index 08e1552c2f74..dddddfbc479d 100644
--- a/drivers/firmware/dmi-id.c
+++ b/drivers/firmware/dmi-id.c
@@ -237,7 +237,7 @@ static int __init dmi_id_init(void)
if (ret)
return ret;
- dmi_dev = kzalloc(sizeof(*dmi_dev), GFP_KERNEL);
+ dmi_dev = kzalloc_obj(*dmi_dev, GFP_KERNEL);
if (!dmi_dev) {
ret = -ENOMEM;
goto fail_class_unregister;
diff --git a/drivers/firmware/dmi-sysfs.c b/drivers/firmware/dmi-sysfs.c
index 9cc963b2edc0..4424ad075aff 100644
--- a/drivers/firmware/dmi-sysfs.c
+++ b/drivers/firmware/dmi-sysfs.c
@@ -451,7 +451,7 @@ static int dmi_system_event_log(struct dmi_sysfs_entry *entry)
{
int ret;
- entry->child = kzalloc(sizeof(*entry->child), GFP_KERNEL);
+ entry->child = kzalloc_obj(*entry->child, GFP_KERNEL);
if (!entry->child)
return -ENOMEM;
ret = kobject_init_and_add(entry->child,
@@ -586,7 +586,7 @@ static void __init dmi_sysfs_register_handle(const struct dmi_header *dh,
return;
/* Allocate and register a new entry into the entries set */
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
*ret = -ENOMEM;
return;
diff --git a/drivers/firmware/edd.c b/drivers/firmware/edd.c
index 55dec4eb2c00..631fbd3ea60c 100644
--- a/drivers/firmware/edd.c
+++ b/drivers/firmware/edd.c
@@ -740,7 +740,7 @@ edd_init(void)
return -ENOMEM;
for (i = 0; i < edd_num_devices(); i++) {
- edev = kzalloc(sizeof (*edev), GFP_KERNEL);
+ edev = kzalloc_obj(*edev, GFP_KERNEL);
if (!edev) {
rc = -ENOMEM;
goto out;
diff --git a/drivers/firmware/efi/apple-properties.c b/drivers/firmware/efi/apple-properties.c
index ea84108035eb..c458852cea76 100644
--- a/drivers/firmware/efi/apple-properties.c
+++ b/drivers/firmware/efi/apple-properties.c
@@ -146,8 +146,8 @@ static int __init unmarshal_devices(struct properties_header *properties)
goto skip_device;
}
- entry = kcalloc(dev_header->prop_count + 1, sizeof(*entry),
- GFP_KERNEL);
+ entry = kzalloc_objs(*entry, dev_header->prop_count + 1,
+ GFP_KERNEL);
if (!entry) {
dev_err(dev, "cannot allocate properties\n");
goto skip_device;
diff --git a/drivers/firmware/efi/arm-runtime.c b/drivers/firmware/efi/arm-runtime.c
index 53a5336cde5a..35b69e629d6d 100644
--- a/drivers/firmware/efi/arm-runtime.c
+++ b/drivers/firmware/efi/arm-runtime.c
@@ -113,7 +113,7 @@ static int __init arm_enable_runtime_services(void)
if (!(md->attribute & EFI_MEMORY_SP))
continue;
- res = kzalloc(sizeof(*res), GFP_KERNEL);
+ res = kzalloc_obj(*res, GFP_KERNEL);
if (WARN_ON(!res))
break;
diff --git a/drivers/firmware/efi/capsule-loader.c b/drivers/firmware/efi/capsule-loader.c
index 0c17bdd388e1..609637f88acc 100644
--- a/drivers/firmware/efi/capsule-loader.c
+++ b/drivers/firmware/efi/capsule-loader.c
@@ -282,7 +282,7 @@ static int efi_capsule_open(struct inode *inode, struct file *file)
{
struct capsule_info *cap_info;
- cap_info = kzalloc(sizeof(*cap_info), GFP_KERNEL);
+ cap_info = kzalloc_obj(*cap_info, GFP_KERNEL);
if (!cap_info)
return -ENOMEM;
@@ -292,7 +292,7 @@ static int efi_capsule_open(struct inode *inode, struct file *file)
return -ENOMEM;
}
- cap_info->phys = kzalloc(sizeof(phys_addr_t), GFP_KERNEL);
+ cap_info->phys = kzalloc_obj(phys_addr_t, GFP_KERNEL);
if (!cap_info->phys) {
kfree(cap_info->pages);
kfree(cap_info);
diff --git a/drivers/firmware/efi/capsule.c b/drivers/firmware/efi/capsule.c
index 768430293669..dbbff6ade4e3 100644
--- a/drivers/firmware/efi/capsule.c
+++ b/drivers/firmware/efi/capsule.c
@@ -230,7 +230,7 @@ int efi_capsule_update(efi_capsule_header_t *capsule, phys_addr_t *pages)
count = DIV_ROUND_UP(imagesize, PAGE_SIZE);
sg_count = sg_pages_num(count);
- sg_pages = kcalloc(sg_count, sizeof(*sg_pages), GFP_KERNEL);
+ sg_pages = kzalloc_objs(*sg_pages, sg_count, GFP_KERNEL);
if (!sg_pages)
return -ENOMEM;
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
index 56e9d73412fa..b2fb92a4bbd1 100644
--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -1079,7 +1079,7 @@ static int efi_mem_reserve_iomem(phys_addr_t addr, u64 size)
struct resource *res, *parent;
int ret;
- res = kzalloc(sizeof(struct resource), GFP_ATOMIC);
+ res = kzalloc_obj(struct resource, GFP_ATOMIC);
if (!res)
return -ENOMEM;
diff --git a/drivers/firmware/efi/efibc.c b/drivers/firmware/efi/efibc.c
index 0a7c764dcc61..99268c14e01e 100644
--- a/drivers/firmware/efi/efibc.c
+++ b/drivers/firmware/efi/efibc.c
@@ -47,7 +47,7 @@ static int efibc_reboot_notifier_call(struct notifier_block *notifier,
if (ret || !data)
return NOTIFY_DONE;
- wdata = kmalloc_array(MAX_DATA_LEN, sizeof(efi_char16_t), GFP_KERNEL);
+ wdata = kmalloc_objs(efi_char16_t, MAX_DATA_LEN, GFP_KERNEL);
if (!wdata)
return NOTIFY_DONE;
diff --git a/drivers/firmware/efi/embedded-firmware.c b/drivers/firmware/efi/embedded-firmware.c
index b49a09d7e665..e750ef2b57e8 100644
--- a/drivers/firmware/efi/embedded-firmware.c
+++ b/drivers/firmware/efi/embedded-firmware.c
@@ -64,7 +64,7 @@ static int __init efi_check_md_for_embedded_firmware(
pr_info("Found EFI embedded fw '%s'\n", desc->name);
- fw = kmalloc(sizeof(*fw), GFP_KERNEL);
+ fw = kmalloc_obj(*fw, GFP_KERNEL);
if (!fw) {
memunmap(map);
return -ENOMEM;
diff --git a/drivers/firmware/efi/esrt.c b/drivers/firmware/efi/esrt.c
index 4bb7b0584bc9..74f38a2df8d7 100644
--- a/drivers/firmware/efi/esrt.c
+++ b/drivers/firmware/efi/esrt.c
@@ -164,7 +164,7 @@ static int esre_create_sysfs_entry(void *esre, int entry_num)
{
struct esre_entry *entry;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
diff --git a/drivers/firmware/efi/mokvar-table.c b/drivers/firmware/efi/mokvar-table.c
index aedbbd627706..78afd0fa2919 100644
--- a/drivers/firmware/efi/mokvar-table.c
+++ b/drivers/firmware/efi/mokvar-table.c
@@ -329,7 +329,7 @@ static int __init efi_mokvar_sysfs_init(void)
}
while (efi_mokvar_entry_next(&mokvar_entry)) {
- mokvar_sysfs = kzalloc(sizeof(*mokvar_sysfs), GFP_KERNEL);
+ mokvar_sysfs = kzalloc_obj(*mokvar_sysfs, GFP_KERNEL);
if (!mokvar_sysfs) {
err = -ENOMEM;
break;
diff --git a/drivers/firmware/efi/riscv-runtime.c b/drivers/firmware/efi/riscv-runtime.c
index 66f584a228d0..ee799399da62 100644
--- a/drivers/firmware/efi/riscv-runtime.c
+++ b/drivers/firmware/efi/riscv-runtime.c
@@ -83,7 +83,7 @@ static int __init riscv_enable_runtime_services(void)
if (!(md->attribute & EFI_MEMORY_SP))
continue;
- res = kzalloc(sizeof(*res), GFP_KERNEL);
+ res = kzalloc_obj(*res, GFP_KERNEL);
if (WARN_ON(!res))
break;
diff --git a/drivers/firmware/efi/test/efi_test.c b/drivers/firmware/efi/test/efi_test.c
index 77b5f7ac3e20..0e3b00a572b2 100644
--- a/drivers/firmware/efi/test/efi_test.c
+++ b/drivers/firmware/efi/test/efi_test.c
@@ -614,8 +614,8 @@ static long efi_runtime_query_capsulecaps(unsigned long arg)
if (qcaps.capsule_count == ULONG_MAX)
return -EINVAL;
- capsules = kcalloc(qcaps.capsule_count + 1,
- sizeof(efi_capsule_header_t), GFP_KERNEL);
+ capsules = kzalloc_objs(efi_capsule_header_t, qcaps.capsule_count + 1,
+ GFP_KERNEL);
if (!capsules)
return -ENOMEM;
diff --git a/drivers/firmware/google/gsmi.c b/drivers/firmware/google/gsmi.c
index 0ceccde5a302..a142ce5c7288 100644
--- a/drivers/firmware/google/gsmi.c
+++ b/drivers/firmware/google/gsmi.c
@@ -153,7 +153,7 @@ static struct gsmi_buf *gsmi_buf_alloc(void)
{
struct gsmi_buf *smibuf;
- smibuf = kzalloc(sizeof(*smibuf), GFP_KERNEL);
+ smibuf = kzalloc_obj(*smibuf, GFP_KERNEL);
if (!smibuf) {
printk(KERN_ERR "gsmi: out of memory\n");
return NULL;
diff --git a/drivers/firmware/google/vpd.c b/drivers/firmware/google/vpd.c
index 339a3f74b247..721dfa756c45 100644
--- a/drivers/firmware/google/vpd.c
+++ b/drivers/firmware/google/vpd.c
@@ -107,7 +107,7 @@ static int vpd_section_attrib_add(const u8 *key, u32 key_len,
if (vpd_section_check_key_name(key, key_len) != VPD_OK)
return VPD_OK;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/firmware/iscsi_ibft.c b/drivers/firmware/iscsi_ibft.c
index 371f24569b3b..1af5a9ef4474 100644
--- a/drivers/firmware/iscsi_ibft.c
+++ b/drivers/firmware/iscsi_ibft.c
@@ -634,7 +634,7 @@ static int __init ibft_create_kobject(struct acpi_table_ibft *header,
struct pci_dev *pci_dev;
int rc = 0;
- ibft_kobj = kzalloc(sizeof(*ibft_kobj), GFP_KERNEL);
+ ibft_kobj = kzalloc_obj(*ibft_kobj, GFP_KERNEL);
if (!ibft_kobj)
return -ENOMEM;
@@ -773,7 +773,7 @@ static int __init ibft_register_kobjects(struct acpi_table_ibft *header)
if (rc)
return rc;
- ibft_kobj = kzalloc(sizeof(*ibft_kobj), GFP_KERNEL);
+ ibft_kobj = kzalloc_obj(*ibft_kobj, GFP_KERNEL);
if (!ibft_kobj)
return -ENOMEM;
diff --git a/drivers/firmware/memmap.c b/drivers/firmware/memmap.c
index 55b9cfad8a04..5862fbae9b78 100644
--- a/drivers/firmware/memmap.c
+++ b/drivers/firmware/memmap.c
@@ -289,7 +289,7 @@ int __meminit firmware_map_add_hotplug(u64 start, u64 end, const char *type)
entry = firmware_map_find_entry_bootmem(start, end - 1, type);
if (!entry) {
- entry = kzalloc(sizeof(struct firmware_map_entry), GFP_ATOMIC);
+ entry = kzalloc_obj(struct firmware_map_entry, GFP_ATOMIC);
if (!entry)
return -ENOMEM;
} else {
diff --git a/drivers/firmware/microchip/mpfs-auto-update.c b/drivers/firmware/microchip/mpfs-auto-update.c
index e194f7acb2a9..5fa85af40c33 100644
--- a/drivers/firmware/microchip/mpfs-auto-update.c
+++ b/drivers/firmware/microchip/mpfs-auto-update.c
@@ -162,9 +162,9 @@ static int mpfs_auto_update_verify_image(struct fw_upload *fw_uploader)
u32 *response_msg __free(kfree) =
kzalloc(AUTO_UPDATE_FEATURE_RESP_SIZE * sizeof(*response_msg), GFP_KERNEL);
struct mpfs_mss_response *response __free(kfree) =
- kzalloc(sizeof(struct mpfs_mss_response), GFP_KERNEL);
+ kzalloc_obj(struct mpfs_mss_response, GFP_KERNEL);
struct mpfs_mss_msg *message __free(kfree) =
- kzalloc(sizeof(struct mpfs_mss_msg), GFP_KERNEL);
+ kzalloc_obj(struct mpfs_mss_msg, GFP_KERNEL);
int ret;
if (!response_msg || !response || !message)
@@ -364,9 +364,9 @@ static int mpfs_auto_update_available(struct mpfs_auto_update_priv *priv)
u32 *response_msg __free(kfree) =
kzalloc(AUTO_UPDATE_FEATURE_RESP_SIZE * sizeof(*response_msg), GFP_KERNEL);
struct mpfs_mss_response *response __free(kfree) =
- kzalloc(sizeof(struct mpfs_mss_response), GFP_KERNEL);
+ kzalloc_obj(struct mpfs_mss_response, GFP_KERNEL);
struct mpfs_mss_msg *message __free(kfree) =
- kzalloc(sizeof(struct mpfs_mss_msg), GFP_KERNEL);
+ kzalloc_obj(struct mpfs_mss_msg, GFP_KERNEL);
int ret;
if (!response_msg || !response || !message)
diff --git a/drivers/firmware/psci/psci_checker.c b/drivers/firmware/psci/psci_checker.c
index df02a4ec3398..2aaf3519cdfb 100644
--- a/drivers/firmware/psci/psci_checker.c
+++ b/drivers/firmware/psci/psci_checker.c
@@ -155,8 +155,7 @@ static int alloc_init_cpu_groups(cpumask_var_t **pcpu_groups)
if (!alloc_cpumask_var(&tmp, GFP_KERNEL))
return -ENOMEM;
- cpu_groups = kcalloc(nb_available_cpus, sizeof(*cpu_groups),
- GFP_KERNEL);
+ cpu_groups = kzalloc_objs(*cpu_groups, nb_available_cpus, GFP_KERNEL);
if (!cpu_groups) {
free_cpumask_var(tmp);
return -ENOMEM;
@@ -370,8 +369,7 @@ static int suspend_tests(void)
struct task_struct **threads;
int nb_threads = 0;
- threads = kmalloc_array(nb_available_cpus, sizeof(*threads),
- GFP_KERNEL);
+ threads = kmalloc_objs(*threads, nb_available_cpus, GFP_KERNEL);
if (!threads)
return -ENOMEM;
diff --git a/drivers/firmware/qcom/qcom_qseecom.c b/drivers/firmware/qcom/qcom_qseecom.c
index 731e6d5719f9..7eed43fc8174 100644
--- a/drivers/firmware/qcom/qcom_qseecom.c
+++ b/drivers/firmware/qcom/qcom_qseecom.c
@@ -50,7 +50,7 @@ static int qseecom_client_register(struct platform_device *qseecom_dev,
dev_info(&qseecom_dev->dev, "setting up client for %s\n", desc->app_name);
/* Allocate and set-up the client device */
- client = kzalloc(sizeof(*client), GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (!client)
return -ENOMEM;
diff --git a/drivers/firmware/qcom/qcom_tzmem.c b/drivers/firmware/qcom/qcom_tzmem.c
index 9f232e53115e..74ea67a49cab 100644
--- a/drivers/firmware/qcom/qcom_tzmem.c
+++ b/drivers/firmware/qcom/qcom_tzmem.c
@@ -262,8 +262,8 @@ qcom_tzmem_pool_new(const struct qcom_tzmem_pool_config *config)
return ERR_PTR(-EINVAL);
}
- struct qcom_tzmem_pool *pool __free(kfree) = kzalloc(sizeof(*pool),
- GFP_KERNEL);
+ struct qcom_tzmem_pool *pool __free(kfree) = kzalloc_obj(*pool,
+ GFP_KERNEL);
if (!pool)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/firmware/qemu_fw_cfg.c b/drivers/firmware/qemu_fw_cfg.c
index 0eebd572f9a5..50224b95d22b 100644
--- a/drivers/firmware/qemu_fw_cfg.c
+++ b/drivers/firmware/qemu_fw_cfg.c
@@ -94,7 +94,7 @@ static ssize_t fw_cfg_dma_transfer(void *address, u32 length, u32 control)
struct fw_cfg_dma_access *d = NULL;
ssize_t ret = length;
- d = kmalloc(sizeof(*d), GFP_KERNEL);
+ d = kmalloc_obj(*d, GFP_KERNEL);
if (!d) {
ret = -ENOMEM;
goto end;
@@ -325,7 +325,7 @@ static ssize_t fw_cfg_write_vmcoreinfo(const struct fw_cfg_file *f)
static struct fw_cfg_vmcoreinfo *data;
ssize_t ret;
- data = kmalloc(sizeof(struct fw_cfg_vmcoreinfo), GFP_KERNEL);
+ data = kmalloc_obj(struct fw_cfg_vmcoreinfo, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -530,7 +530,7 @@ static int fw_cfg_build_symlink(struct kset *dir,
dir = to_kset(ko);
} else {
/* create new subdirectory kset */
- subdir = kzalloc(sizeof(struct kset), GFP_KERNEL);
+ subdir = kzalloc_obj(struct kset, GFP_KERNEL);
if (!subdir) {
ret = -ENOMEM;
break;
@@ -593,7 +593,7 @@ static int fw_cfg_register_file(const struct fw_cfg_file *f)
#endif
/* allocate new entry */
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c
index 7ecde6921a0a..3b45bb74d312 100644
--- a/drivers/firmware/raspberrypi.c
+++ b/drivers/firmware/raspberrypi.c
@@ -282,7 +282,7 @@ static int rpi_firmware_probe(struct platform_device *pdev)
* Memory will be freed by rpi_firmware_delete() once all users have
* released their firmware handles. Don't use devm_kzalloc() here.
*/
- fw = kzalloc(sizeof(*fw), GFP_KERNEL);
+ fw = kzalloc_obj(*fw, GFP_KERNEL);
if (!fw)
return -ENOMEM;
diff --git a/drivers/firmware/smccc/soc_id.c b/drivers/firmware/smccc/soc_id.c
index c24b3fca1cfe..95f9163058bb 100644
--- a/drivers/firmware/smccc/soc_id.c
+++ b/drivers/firmware/smccc/soc_id.c
@@ -137,7 +137,7 @@ static int __init smccc_soc_init(void)
return -EINVAL;
}
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr)
return -ENOMEM;
diff --git a/drivers/firmware/stratix10-svc.c b/drivers/firmware/stratix10-svc.c
index dbed404a71fc..aefb28933990 100644
--- a/drivers/firmware/stratix10-svc.c
+++ b/drivers/firmware/stratix10-svc.c
@@ -535,11 +535,11 @@ static int svc_normal_to_secure_thread(void *data)
unsigned long a0, a1, a2, a3, a4, a5, a6, a7;
int ret_fifo = 0;
- pdata = kmalloc(sizeof(*pdata), GFP_KERNEL);
+ pdata = kmalloc_obj(*pdata, GFP_KERNEL);
if (!pdata)
return -ENOMEM;
- cbdata = kmalloc(sizeof(*cbdata), GFP_KERNEL);
+ cbdata = kmalloc_obj(*cbdata, GFP_KERNEL);
if (!cbdata) {
kfree(pdata);
return -ENOMEM;
@@ -1119,7 +1119,7 @@ int stratix10_svc_add_async_client(struct stratix10_svc_chan *chan,
return 0;
}
- achan = kzalloc(sizeof(*achan), GFP_KERNEL);
+ achan = kzalloc_obj(*achan, GFP_KERNEL);
if (!achan)
return -ENOMEM;
@@ -1692,7 +1692,7 @@ int stratix10_svc_send(struct stratix10_svc_chan *chan, void *msg)
int ret = 0;
unsigned int cpu = 0;
- p_data = kzalloc(sizeof(*p_data), GFP_KERNEL);
+ p_data = kzalloc_obj(*p_data, GFP_KERNEL);
if (!p_data)
return -ENOMEM;
diff --git a/drivers/firmware/thead,th1520-aon.c b/drivers/firmware/thead,th1520-aon.c
index 38f812ac9920..7dc871060c38 100644
--- a/drivers/firmware/thead,th1520-aon.c
+++ b/drivers/firmware/thead,th1520-aon.c
@@ -205,7 +205,7 @@ struct th1520_aon_chan *th1520_aon_init(struct device *dev)
struct mbox_client *cl;
int ret;
- aon_chan = kzalloc(sizeof(*aon_chan), GFP_KERNEL);
+ aon_chan = kzalloc_obj(*aon_chan, GFP_KERNEL);
if (!aon_chan)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c
index f15db1a818dc..fbe8510f4927 100644
--- a/drivers/firmware/xilinx/zynqmp.c
+++ b/drivers/firmware/xilinx/zynqmp.c
@@ -267,7 +267,7 @@ static int do_feature_check_call(const u32 api_id)
}
/* Add new entry if not present */
- feature_data = kmalloc(sizeof(*feature_data), GFP_ATOMIC);
+ feature_data = kmalloc_obj(*feature_data, GFP_ATOMIC);
if (!feature_data)
return -ENOMEM;
diff --git a/drivers/fpga/dfl-afu-dma-region.c b/drivers/fpga/dfl-afu-dma-region.c
index 5aa7b8884374..c71a93d8aee3 100644
--- a/drivers/fpga/dfl-afu-dma-region.c
+++ b/drivers/fpga/dfl-afu-dma-region.c
@@ -42,7 +42,7 @@ static int afu_dma_pin_pages(struct dfl_feature_dev_data *fdata,
if (ret)
return ret;
- region->pages = kcalloc(npages, sizeof(struct page *), GFP_KERNEL);
+ region->pages = kzalloc_objs(struct page *, npages, GFP_KERNEL);
if (!region->pages) {
ret = -ENOMEM;
goto unlock_vm;
diff --git a/drivers/fpga/dfl-pci.c b/drivers/fpga/dfl-pci.c
index 602807d6afcc..3e560e5d7241 100644
--- a/drivers/fpga/dfl-pci.c
+++ b/drivers/fpga/dfl-pci.c
@@ -139,7 +139,7 @@ static int *cci_pci_create_irq_table(struct pci_dev *pcidev, unsigned int nvec)
unsigned int i;
int *table;
- table = kcalloc(nvec, sizeof(int), GFP_KERNEL);
+ table = kzalloc_objs(int, nvec, GFP_KERNEL);
if (!table)
return table;
diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c
index 449c3a082e23..d26003d3c931 100644
--- a/drivers/fpga/dfl.c
+++ b/drivers/fpga/dfl.c
@@ -347,7 +347,7 @@ dfl_dev_add(struct dfl_feature_dev_data *fdata,
struct dfl_device *ddev;
int id, i, ret;
- ddev = kzalloc(sizeof(*ddev), GFP_KERNEL);
+ ddev = kzalloc_obj(*ddev, GFP_KERNEL);
if (!ddev)
return ERR_PTR(-ENOMEM);
@@ -397,8 +397,8 @@ dfl_dev_add(struct dfl_feature_dev_data *fdata,
/* then add irq resource */
if (feature->nr_irqs) {
- ddev->irqs = kcalloc(feature->nr_irqs,
- sizeof(*ddev->irqs), GFP_KERNEL);
+ ddev->irqs = kzalloc_objs(*ddev->irqs, feature->nr_irqs,
+ GFP_KERNEL);
if (!ddev->irqs) {
ret = -ENOMEM;
goto put_dev;
@@ -1182,7 +1182,8 @@ create_feature_instance(struct build_feature_devs_info *binfo,
if (binfo->len - ofst < size)
return -EINVAL;
- finfo = kzalloc(struct_size(finfo, params, dfh_psize / sizeof(u64)), GFP_KERNEL);
+ finfo = kzalloc_flex(*finfo, params, dfh_psize / sizeof(u64),
+ GFP_KERNEL);
if (!finfo)
return -ENOMEM;
diff --git a/drivers/fpga/fpga-bridge.c b/drivers/fpga/fpga-bridge.c
index 8ef395b49bf8..c709aa3ef04c 100644
--- a/drivers/fpga/fpga-bridge.c
+++ b/drivers/fpga/fpga-bridge.c
@@ -346,7 +346,7 @@ __fpga_bridge_register(struct device *parent, const char *name,
return ERR_PTR(-EINVAL);
}
- bridge = kzalloc(sizeof(*bridge), GFP_KERNEL);
+ bridge = kzalloc_obj(*bridge, GFP_KERNEL);
if (!bridge)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/fpga/fpga-mgr.c b/drivers/fpga/fpga-mgr.c
index 0f4035b089a2..215303dd6a64 100644
--- a/drivers/fpga/fpga-mgr.c
+++ b/drivers/fpga/fpga-mgr.c
@@ -486,7 +486,7 @@ static int fpga_mgr_buf_load(struct fpga_manager *mgr,
*/
nr_pages = DIV_ROUND_UP((unsigned long)buf + count, PAGE_SIZE) -
(unsigned long)buf / PAGE_SIZE;
- pages = kmalloc_array(nr_pages, sizeof(struct page *), GFP_KERNEL);
+ pages = kmalloc_objs(struct page *, nr_pages, GFP_KERNEL);
if (!pages)
return -ENOMEM;
@@ -801,7 +801,7 @@ __fpga_mgr_register_full(struct device *parent, const struct fpga_manager_info *
return ERR_PTR(-EINVAL);
}
- mgr = kzalloc(sizeof(*mgr), GFP_KERNEL);
+ mgr = kzalloc_obj(*mgr, GFP_KERNEL);
if (!mgr)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/fpga/fpga-region.c b/drivers/fpga/fpga-region.c
index 753cd142503e..43dbdacfd87e 100644
--- a/drivers/fpga/fpga-region.c
+++ b/drivers/fpga/fpga-region.c
@@ -201,7 +201,7 @@ __fpga_region_register_full(struct device *parent, const struct fpga_region_info
return ERR_PTR(-EINVAL);
}
- region = kzalloc(sizeof(*region), GFP_KERNEL);
+ region = kzalloc_obj(*region, GFP_KERNEL);
if (!region)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/fsi/fsi-core.c b/drivers/fsi/fsi-core.c
index 83599a1c548b..abc3cf7f4ae4 100644
--- a/drivers/fsi/fsi-core.c
+++ b/drivers/fsi/fsi-core.c
@@ -211,7 +211,7 @@ static struct fsi_device *fsi_create_device(struct fsi_slave *slave)
{
struct fsi_device *dev;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return NULL;
@@ -1083,7 +1083,7 @@ static int fsi_slave_init(struct fsi_master *master, int link, uint8_t id)
/* We can communicate with a slave; create the slave device and
* register.
*/
- slave = kzalloc(sizeof(*slave), GFP_KERNEL);
+ slave = kzalloc_obj(*slave, GFP_KERNEL);
if (!slave)
return -ENOMEM;
diff --git a/drivers/fsi/fsi-master-aspeed.c b/drivers/fsi/fsi-master-aspeed.c
index bff897f77fe5..2589f04c8d5b 100644
--- a/drivers/fsi/fsi-master-aspeed.c
+++ b/drivers/fsi/fsi-master-aspeed.c
@@ -546,7 +546,7 @@ static int fsi_master_aspeed_probe(struct platform_device *pdev)
return rc;
}
- aspeed = kzalloc(sizeof(*aspeed), GFP_KERNEL);
+ aspeed = kzalloc_obj(*aspeed, GFP_KERNEL);
if (!aspeed)
return -ENOMEM;
diff --git a/drivers/fsi/fsi-master-ast-cf.c b/drivers/fsi/fsi-master-ast-cf.c
index e67d7cd30fca..3b83ebeaf7c1 100644
--- a/drivers/fsi/fsi-master-ast-cf.c
+++ b/drivers/fsi/fsi-master-ast-cf.c
@@ -1220,7 +1220,7 @@ static int fsi_master_acf_probe(struct platform_device *pdev)
uint32_t cf_mem_align;
int rc;
- master = kzalloc(sizeof(*master), GFP_KERNEL);
+ master = kzalloc_obj(*master, GFP_KERNEL);
if (!master)
return -ENOMEM;
diff --git a/drivers/fsi/fsi-master-gpio.c b/drivers/fsi/fsi-master-gpio.c
index 69de0b5b9cbd..8c78ab1051d0 100644
--- a/drivers/fsi/fsi-master-gpio.c
+++ b/drivers/fsi/fsi-master-gpio.c
@@ -774,7 +774,7 @@ static int fsi_master_gpio_probe(struct platform_device *pdev)
struct gpio_desc *gpio;
int rc;
- master = kzalloc(sizeof(*master), GFP_KERNEL);
+ master = kzalloc_obj(*master, GFP_KERNEL);
if (!master)
return -ENOMEM;
diff --git a/drivers/fsi/fsi-master-hub.c b/drivers/fsi/fsi-master-hub.c
index a84955bb23b1..6cee9f1a1d3a 100644
--- a/drivers/fsi/fsi-master-hub.c
+++ b/drivers/fsi/fsi-master-hub.c
@@ -215,7 +215,7 @@ static int hub_master_probe(struct fsi_device *fsi_dev)
return rc;
}
- hub = kzalloc(sizeof(*hub), GFP_KERNEL);
+ hub = kzalloc_obj(*hub, GFP_KERNEL);
if (!hub) {
rc = -ENOMEM;
goto err_release;
diff --git a/drivers/fsi/fsi-master-i2cr.c b/drivers/fsi/fsi-master-i2cr.c
index 40f1f4d231e5..055e850a8115 100644
--- a/drivers/fsi/fsi-master-i2cr.c
+++ b/drivers/fsi/fsi-master-i2cr.c
@@ -261,7 +261,7 @@ static int i2cr_probe(struct i2c_client *client)
struct fsi_master_i2cr *i2cr;
int ret;
- i2cr = kzalloc(sizeof(*i2cr), GFP_KERNEL);
+ i2cr = kzalloc_obj(*i2cr, GFP_KERNEL);
if (!i2cr)
return -ENOMEM;
diff --git a/drivers/fsi/fsi-occ.c b/drivers/fsi/fsi-occ.c
index e41ef12fa095..0ef1eccff91a 100644
--- a/drivers/fsi/fsi-occ.c
+++ b/drivers/fsi/fsi-occ.c
@@ -79,7 +79,7 @@ static DEFINE_IDA(occ_ida);
static int occ_open(struct inode *inode, struct file *file)
{
- struct occ_client *client = kzalloc(sizeof(*client), GFP_KERNEL);
+ struct occ_client *client = kzalloc_obj(*client, GFP_KERNEL);
struct miscdevice *mdev = file->private_data;
struct occ *occ = to_occ(mdev);
diff --git a/drivers/fsi/fsi-sbefifo.c b/drivers/fsi/fsi-sbefifo.c
index 6ca5817910cd..5e62212f5ae4 100644
--- a/drivers/fsi/fsi-sbefifo.c
+++ b/drivers/fsi/fsi-sbefifo.c
@@ -792,7 +792,7 @@ static int sbefifo_user_open(struct inode *inode, struct file *file)
struct sbefifo *sbefifo = container_of(inode->i_cdev, struct sbefifo, cdev);
struct sbefifo_user *user;
- user = kzalloc(sizeof(struct sbefifo_user), GFP_KERNEL);
+ user = kzalloc_obj(struct sbefifo_user, GFP_KERNEL);
if (!user)
return -ENOMEM;
@@ -1033,7 +1033,7 @@ static int sbefifo_probe(struct fsi_device *fsi_dev)
dev_dbg(dev, "Found sbefifo device\n");
- sbefifo = kzalloc(sizeof(*sbefifo), GFP_KERNEL);
+ sbefifo = kzalloc_obj(*sbefifo, GFP_KERNEL);
if (!sbefifo)
return -ENOMEM;
diff --git a/drivers/fsi/fsi-scom.c b/drivers/fsi/fsi-scom.c
index 67cd45605fe4..bbdbc75ae192 100644
--- a/drivers/fsi/fsi-scom.c
+++ b/drivers/fsi/fsi-scom.c
@@ -533,7 +533,7 @@ static int scom_probe(struct fsi_device *fsi_dev)
struct scom_device *scom;
int rc, didx;
- scom = kzalloc(sizeof(*scom), GFP_KERNEL);
+ scom = kzalloc_obj(*scom, GFP_KERNEL);
if (!scom)
return -ENOMEM;
fsi_set_drvdata(fsi_dev, scom);
diff --git a/drivers/fwctl/mlx5/main.c b/drivers/fwctl/mlx5/main.c
index 3dacccf7855c..c4262abfd77a 100644
--- a/drivers/fwctl/mlx5/main.c
+++ b/drivers/fwctl/mlx5/main.c
@@ -167,7 +167,7 @@ static void *mlx5ctl_info(struct fwctl_uctx *uctx, size_t *length)
container_of(uctx, struct mlx5ctl_uctx, uctx);
struct fwctl_info_mlx5 *info;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/fwctl/pds/main.c b/drivers/fwctl/pds/main.c
index 1809853f6353..8c622267782f 100644
--- a/drivers/fwctl/pds/main.c
+++ b/drivers/fwctl/pds/main.c
@@ -58,7 +58,7 @@ static void *pdsfc_info(struct fwctl_uctx *uctx, size_t *length)
struct pdsfc_uctx *pdsfc_uctx = container_of(uctx, struct pdsfc_uctx, uctx);
struct fwctl_info_pds *info;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gnss/core.c b/drivers/gnss/core.c
index 883ef86ad3fc..fb17b7811025 100644
--- a/drivers/gnss/core.c
+++ b/drivers/gnss/core.c
@@ -227,7 +227,7 @@ struct gnss_device *gnss_allocate_device(struct device *parent)
int id;
int ret;
- gdev = kzalloc(sizeof(*gdev), GFP_KERNEL);
+ gdev = kzalloc_obj(*gdev, GFP_KERNEL);
if (!gdev)
return NULL;
diff --git a/drivers/gnss/usb.c b/drivers/gnss/usb.c
index 028ce56b20ea..919ea2ab4572 100644
--- a/drivers/gnss/usb.c
+++ b/drivers/gnss/usb.c
@@ -131,7 +131,7 @@ static int gnss_usb_probe(struct usb_interface *intf, const struct usb_device_id
if (ret)
return ret;
- gusb = kzalloc(sizeof(*gusb), GFP_KERNEL);
+ gusb = kzalloc_obj(*gusb, GFP_KERNEL);
if (!gusb)
return -ENOMEM;
diff --git a/drivers/gpib/agilent_82350b/agilent_82350b.c b/drivers/gpib/agilent_82350b/agilent_82350b.c
index d55d097aa6f0..021da74d0296 100644
--- a/drivers/gpib/agilent_82350b/agilent_82350b.c
+++ b/drivers/gpib/agilent_82350b/agilent_82350b.c
@@ -481,7 +481,8 @@ static void agilent_82350b_return_to_local(struct gpib_board *board)
static int agilent_82350b_allocate_private(struct gpib_board *board)
{
- board->private_data = kzalloc(sizeof(struct agilent_82350b_priv), GFP_KERNEL);
+ board->private_data = kzalloc_obj(struct agilent_82350b_priv,
+ GFP_KERNEL);
if (!board->private_data)
return -ENOMEM;
return 0;
diff --git a/drivers/gpib/agilent_82357a/agilent_82357a.c b/drivers/gpib/agilent_82357a/agilent_82357a.c
index 26d2830c3fa3..2904bb016c92 100644
--- a/drivers/gpib/agilent_82357a/agilent_82357a.c
+++ b/drivers/gpib/agilent_82357a/agilent_82357a.c
@@ -1196,7 +1196,8 @@ static int agilent_82357a_allocate_private(struct gpib_board *board)
{
struct agilent_82357a_priv *a_priv;
- board->private_data = kzalloc(sizeof(struct agilent_82357a_priv), GFP_KERNEL);
+ board->private_data = kzalloc_obj(struct agilent_82357a_priv,
+ GFP_KERNEL);
if (!board->private_data)
return -ENOMEM;
a_priv = board->private_data;
diff --git a/drivers/gpib/cb7210/cb7210.c b/drivers/gpib/cb7210/cb7210.c
index e9d5fd19b495..e8ea37ff4fbf 100644
--- a/drivers/gpib/cb7210/cb7210.c
+++ b/drivers/gpib/cb7210/cb7210.c
@@ -856,7 +856,7 @@ static int cb7210_allocate_private(struct gpib_board *board)
{
struct cb7210_priv *priv;
- board->private_data = kzalloc(sizeof(struct cb7210_priv), GFP_KERNEL);
+ board->private_data = kzalloc_obj(struct cb7210_priv, GFP_KERNEL);
if (!board->private_data)
return -ENOMEM;
priv = board->private_data;
@@ -1188,7 +1188,7 @@ static int cb_gpib_probe(struct pcmcia_device *link)
int ret;
/* Allocate space for private device-specific data */
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/gpib/cec/cec_gpib.c b/drivers/gpib/cec/cec_gpib.c
index 7e57d65d6c32..45db380aeebe 100644
--- a/drivers/gpib/cec/cec_gpib.c
+++ b/drivers/gpib/cec/cec_gpib.c
@@ -220,7 +220,7 @@ static int cec_allocate_private(struct gpib_board *board)
{
struct cec_priv *priv;
- board->private_data = kzalloc(sizeof(struct cec_priv), GFP_KERNEL);
+ board->private_data = kzalloc_obj(struct cec_priv, GFP_KERNEL);
if (!board->private_data)
return -ENOMEM;
priv = board->private_data;
diff --git a/drivers/gpib/common/gpib_os.c b/drivers/gpib/common/gpib_os.c
index 9dbbac8b8436..08da67543bac 100644
--- a/drivers/gpib/common/gpib_os.c
+++ b/drivers/gpib/common/gpib_os.c
@@ -199,7 +199,7 @@ int push_status_byte(struct gpib_board *board, struct gpib_status_queue *device,
return retval;
}
- status = kmalloc(sizeof(*status), GFP_KERNEL);
+ status = kmalloc_obj(*status, GFP_KERNEL);
if (!status)
return -ENOMEM;
@@ -513,7 +513,7 @@ static int init_gpib_file_private(struct gpib_file_private *priv)
{
memset(priv, 0, sizeof(*priv));
atomic_set(&priv->holding_mutex, 0);
- priv->descriptors[0] = kmalloc(sizeof(struct gpib_descriptor), GFP_KERNEL);
+ priv->descriptors[0] = kmalloc_obj(struct gpib_descriptor, GFP_KERNEL);
if (!priv->descriptors[0]) {
pr_err("gpib: failed to allocate default board descriptor\n");
return -ENOMEM;
@@ -537,7 +537,7 @@ int ibopen(struct inode *inode, struct file *filep)
board = &board_array[minor];
- filep->private_data = kmalloc(sizeof(struct gpib_file_private), GFP_KERNEL);
+ filep->private_data = kmalloc_obj(struct gpib_file_private, GFP_KERNEL);
if (!filep->private_data)
return -ENOMEM;
@@ -1146,7 +1146,7 @@ static int increment_open_device_count(struct gpib_board *board, struct list_hea
}
/* otherwise we need to allocate a new struct gpib_status_queue */
- device = kmalloc(sizeof(struct gpib_status_queue), GFP_ATOMIC);
+ device = kmalloc_obj(struct gpib_status_queue, GFP_ATOMIC);
if (!device)
return -ENOMEM;
init_gpib_status_queue(device);
@@ -1241,7 +1241,8 @@ static int open_dev_ioctl(struct file *filep, struct gpib_board *board, unsigned
mutex_unlock(&file_priv->descriptors_mutex);
return -ERANGE;
}
- file_priv->descriptors[i] = kmalloc(sizeof(struct gpib_descriptor), GFP_KERNEL);
+ file_priv->descriptors[i] = kmalloc_obj(struct gpib_descriptor,
+ GFP_KERNEL);
if (!file_priv->descriptors[i]) {
mutex_unlock(&file_priv->descriptors_mutex);
return -ENOMEM;
@@ -1876,7 +1877,7 @@ static int push_gpib_event_nolock(struct gpib_board *board, short event_type)
return retval;
}
- event = kmalloc(sizeof(struct gpib_event), GFP_ATOMIC);
+ event = kmalloc_obj(struct gpib_event, GFP_ATOMIC);
if (!event) {
queue->dropped_event = 1;
dev_err(board->gpib_dev, "failed to allocate memory for event\n");
@@ -2041,7 +2042,7 @@ int gpib_register_driver(struct gpib_interface *interface, struct module *provid
{
struct gpib_interface_list *entry;
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
diff --git a/drivers/gpib/eastwood/fluke_gpib.c b/drivers/gpib/eastwood/fluke_gpib.c
index 56153b8a1cb2..ae4d99dcae04 100644
--- a/drivers/gpib/eastwood/fluke_gpib.c
+++ b/drivers/gpib/eastwood/fluke_gpib.c
@@ -853,7 +853,7 @@ static int fluke_allocate_private(struct gpib_board *board)
{
struct fluke_priv *priv;
- board->private_data = kzalloc(sizeof(struct fluke_priv), GFP_KERNEL);
+ board->private_data = kzalloc_obj(struct fluke_priv, GFP_KERNEL);
if (!board->private_data)
return -ENOMEM;
priv = board->private_data;
diff --git a/drivers/gpib/fmh_gpib/fmh_gpib.c b/drivers/gpib/fmh_gpib/fmh_gpib.c
index d82ec06b3085..0858cf5ab557 100644
--- a/drivers/gpib/fmh_gpib/fmh_gpib.c
+++ b/drivers/gpib/fmh_gpib/fmh_gpib.c
@@ -1250,7 +1250,7 @@ static int fmh_gpib_allocate_private(struct gpib_board *board)
{
struct fmh_priv *priv;
- board->private_data = kzalloc(sizeof(struct fmh_priv), GFP_KERNEL);
+ board->private_data = kzalloc_obj(struct fmh_priv, GFP_KERNEL);
if (!board->private_data)
return -ENOMEM;
priv = board->private_data;
diff --git a/drivers/gpib/gpio/gpib_bitbang.c b/drivers/gpib/gpio/gpib_bitbang.c
index ba99d6c95ddf..a3b63fd33bd8 100644
--- a/drivers/gpib/gpio/gpib_bitbang.c
+++ b/drivers/gpib/gpio/gpib_bitbang.c
@@ -1066,7 +1066,7 @@ static int bb_line_status(const struct gpib_board *board)
static int allocate_private(struct gpib_board *board)
{
- board->private_data = kzalloc(sizeof(struct bb_priv), GFP_KERNEL);
+ board->private_data = kzalloc_obj(struct bb_priv, GFP_KERNEL);
if (!board->private_data)
return -ENOMEM;
return 0;
diff --git a/drivers/gpib/hp_82335/hp82335.c b/drivers/gpib/hp_82335/hp82335.c
index 9baf1d3b6751..d5e158c4dd72 100644
--- a/drivers/gpib/hp_82335/hp82335.c
+++ b/drivers/gpib/hp_82335/hp82335.c
@@ -210,7 +210,7 @@ static struct gpib_interface hp82335_interface = {
static int hp82335_allocate_private(struct gpib_board *board)
{
- board->private_data = kzalloc(sizeof(struct hp82335_priv), GFP_KERNEL);
+ board->private_data = kzalloc_obj(struct hp82335_priv, GFP_KERNEL);
if (!board->private_data)
return -ENOMEM;
return 0;
diff --git a/drivers/gpib/hp_82341/hp_82341.c b/drivers/gpib/hp_82341/hp_82341.c
index 5aaf5b15b98b..6755982d8a2a 100644
--- a/drivers/gpib/hp_82341/hp_82341.c
+++ b/drivers/gpib/hp_82341/hp_82341.c
@@ -462,7 +462,7 @@ static struct gpib_interface hp_82341_interface = {
static int hp_82341_allocate_private(struct gpib_board *board)
{
- board->private_data = kzalloc(sizeof(struct hp_82341_priv), GFP_KERNEL);
+ board->private_data = kzalloc_obj(struct hp_82341_priv, GFP_KERNEL);
if (!board->private_data)
return -ENOMEM;
return 0;
diff --git a/drivers/gpib/ines/ines_gpib.c b/drivers/gpib/ines/ines_gpib.c
index 737de5fef4b3..7fbe3beb1d67 100644
--- a/drivers/gpib/ines/ines_gpib.c
+++ b/drivers/gpib/ines/ines_gpib.c
@@ -657,7 +657,7 @@ static int ines_allocate_private(struct gpib_board *board)
{
struct ines_priv *priv;
- board->private_data = kzalloc(sizeof(struct ines_priv), GFP_KERNEL);
+ board->private_data = kzalloc_obj(struct ines_priv, GFP_KERNEL);
if (!board->private_data)
return -ENOMEM;
priv = board->private_data;
@@ -1061,7 +1061,7 @@ static int ines_gpib_probe(struct pcmcia_device *link)
// int ret, i;
/* Allocate space for private device-specific data */
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/gpib/lpvo_usb_gpib/lpvo_usb_gpib.c b/drivers/gpib/lpvo_usb_gpib/lpvo_usb_gpib.c
index dd68c4843490..5c189e6f22dc 100644
--- a/drivers/gpib/lpvo_usb_gpib/lpvo_usb_gpib.c
+++ b/drivers/gpib/lpvo_usb_gpib/lpvo_usb_gpib.c
@@ -440,7 +440,7 @@ static int usb_gpib_attach(struct gpib_board *board, const struct gpib_board_con
return -EIO;
}
- board->private_data = kzalloc(sizeof(struct usb_gpib_priv), GFP_KERNEL);
+ board->private_data = kzalloc_obj(struct usb_gpib_priv, GFP_KERNEL);
if (!board->private_data)
return -ENOMEM;
@@ -1864,7 +1864,7 @@ static int skel_probe(struct usb_interface *interface,
mutex_init(&minors_lock); /* required for handling minor numbers table */
/* allocate memory for our device state and initialize it */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/gpib/ni_usb/ni_usb_gpib.c b/drivers/gpib/ni_usb/ni_usb_gpib.c
index c6f1a70d44f5..e9d7dd6e2fa7 100644
--- a/drivers/gpib/ni_usb/ni_usb_gpib.c
+++ b/drivers/gpib/ni_usb/ni_usb_gpib.c
@@ -1659,7 +1659,7 @@ static int ni_usb_allocate_private(struct gpib_board *board)
{
struct ni_usb_priv *ni_priv;
- board->private_data = kzalloc(sizeof(struct ni_usb_priv), GFP_KERNEL);
+ board->private_data = kzalloc_obj(struct ni_usb_priv, GFP_KERNEL);
if (!board->private_data)
return -ENOMEM;
ni_priv = board->private_data;
@@ -1793,7 +1793,7 @@ static int ni_usb_init(struct gpib_board *board)
unsigned int ibsta;
int writes_len;
- writes = kmalloc_array(NUM_INIT_WRITES, sizeof(*writes), GFP_KERNEL);
+ writes = kmalloc_objs(*writes, NUM_INIT_WRITES, GFP_KERNEL);
if (!writes)
return -ENOMEM;
diff --git a/drivers/gpib/pc2/pc2_gpib.c b/drivers/gpib/pc2/pc2_gpib.c
index 1664861d360d..2c0b464025b5 100644
--- a/drivers/gpib/pc2/pc2_gpib.c
+++ b/drivers/gpib/pc2/pc2_gpib.c
@@ -237,7 +237,7 @@ static int allocate_private(struct gpib_board *board)
{
struct pc2_priv *priv;
- board->private_data = kzalloc(sizeof(struct pc2_priv), GFP_KERNEL);
+ board->private_data = kzalloc_obj(struct pc2_priv, GFP_KERNEL);
if (!board->private_data)
return -ENOMEM;
priv = board->private_data;
diff --git a/drivers/gpib/tnt4882/mite.c b/drivers/gpib/tnt4882/mite.c
index 847b96f411bd..8906f5c41494 100644
--- a/drivers/gpib/tnt4882/mite.c
+++ b/drivers/gpib/tnt4882/mite.c
@@ -57,7 +57,7 @@ void mite_init(void)
for (pcidev = pci_get_device(PCI_VENDOR_ID_NATINST, PCI_ANY_ID, NULL);
pcidev;
pcidev = pci_get_device(PCI_VENDOR_ID_NATINST, PCI_ANY_ID, pcidev)) {
- mite = kzalloc(sizeof(*mite), GFP_KERNEL);
+ mite = kzalloc_obj(*mite, GFP_KERNEL);
if (!mite)
return;
diff --git a/drivers/gpib/tnt4882/tnt4882_gpib.c b/drivers/gpib/tnt4882/tnt4882_gpib.c
index 6d241509419e..8d593d3489ad 100644
--- a/drivers/gpib/tnt4882/tnt4882_gpib.c
+++ b/drivers/gpib/tnt4882/tnt4882_gpib.c
@@ -843,7 +843,7 @@ static int tnt4882_allocate_private(struct gpib_board *board)
{
struct tnt4882_priv *tnt_priv;
- board->private_data = kzalloc(sizeof(struct tnt4882_priv), GFP_KERNEL);
+ board->private_data = kzalloc_obj(struct tnt4882_priv, GFP_KERNEL);
if (!board->private_data)
return -ENOMEM;
tnt_priv = board->private_data;
@@ -1567,7 +1567,7 @@ static int ni_gpib_probe(struct pcmcia_device *link)
//struct struct gpib_board *dev;
/* Allocate space for private device-specific data */
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/gpio/gpio-aggregator.c b/drivers/gpio/gpio-aggregator.c
index a4cd32674a96..19857285f28c 100644
--- a/drivers/gpio/gpio-aggregator.c
+++ b/drivers/gpio/gpio-aggregator.c
@@ -159,7 +159,7 @@ gpio_aggregator_line_alloc(struct gpio_aggregator *parent, unsigned int idx,
{
struct gpio_aggregator_line *line;
- line = kzalloc(sizeof(*line), GFP_KERNEL);
+ line = kzalloc_obj(*line, GFP_KERNEL);
if (!line)
return ERR_PTR(-ENOMEM);
@@ -916,8 +916,7 @@ static int gpio_aggregator_activate(struct gpio_aggregator *aggr)
if (gpio_aggregator_count_lines(aggr) == 0)
return -EINVAL;
- aggr->lookups = kzalloc(struct_size(aggr->lookups, table, 1),
- GFP_KERNEL);
+ aggr->lookups = kzalloc_flex(*aggr->lookups, table, 1, GFP_KERNEL);
if (!aggr->lookups)
return -ENOMEM;
@@ -1457,8 +1456,7 @@ static ssize_t gpio_aggregator_new_device_store(struct device_driver *driver,
memcpy(aggr->args, buf, count + 1);
aggr->init_via_sysfs = true;
- aggr->lookups = kzalloc(struct_size(aggr->lookups, table, 1),
- GFP_KERNEL);
+ aggr->lookups = kzalloc_flex(*aggr->lookups, table, 1, GFP_KERNEL);
if (!aggr->lookups) {
res = -ENOMEM;
goto free_ga;
diff --git a/drivers/gpio/gpio-reg.c b/drivers/gpio/gpio-reg.c
index f2238196faf1..1daa05bbf35b 100644
--- a/drivers/gpio/gpio-reg.c
+++ b/drivers/gpio/gpio-reg.c
@@ -150,7 +150,7 @@ struct gpio_chip *gpio_reg_init(struct device *dev, void __iomem *reg,
if (dev)
r = devm_kzalloc(dev, sizeof(*r), GFP_KERNEL);
else
- r = kzalloc(sizeof(*r), GFP_KERNEL);
+ r = kzalloc_obj(*r, GFP_KERNEL);
if (!r)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpio/gpio-regmap.c b/drivers/gpio/gpio-regmap.c
index 9581bd5ca947..5891983810af 100644
--- a/drivers/gpio/gpio-regmap.c
+++ b/drivers/gpio/gpio-regmap.c
@@ -259,7 +259,7 @@ struct gpio_regmap *gpio_regmap_register(const struct gpio_regmap_config *config
if (config->reg_dir_out_base && config->reg_dir_in_base)
return ERR_PTR(-EINVAL);
- gpio = kzalloc(sizeof(*gpio), GFP_KERNEL);
+ gpio = kzalloc_obj(*gpio, GFP_KERNEL);
if (!gpio)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpio/gpio-sim.c b/drivers/gpio/gpio-sim.c
index 437b4500f56b..5299500e7617 100644
--- a/drivers/gpio/gpio-sim.c
+++ b/drivers/gpio/gpio-sim.c
@@ -813,7 +813,7 @@ static int gpio_sim_add_hogs(struct gpio_sim_device *dev)
return 0;
/* Allocate one more for the sentinel. */
- dev->hogs = kcalloc(num_hogs + 1, sizeof(*dev->hogs), GFP_KERNEL);
+ dev->hogs = kzalloc_objs(*dev->hogs, num_hogs + 1, GFP_KERNEL);
if (!dev->hogs)
return -ENOMEM;
@@ -1406,7 +1406,7 @@ gpio_sim_line_config_make_hog_item(struct config_group *group, const char *name)
guard(mutex)(&dev->lock);
- hog = kzalloc(sizeof(*hog), GFP_KERNEL);
+ hog = kzalloc_obj(*hog, GFP_KERNEL);
if (!hog)
return ERR_PTR(-ENOMEM);
@@ -1467,7 +1467,7 @@ gpio_sim_bank_config_make_line_group(struct config_group *group,
if (gpio_sim_device_is_live(dev))
return ERR_PTR(-EBUSY);
- line = kzalloc(sizeof(*line), GFP_KERNEL);
+ line = kzalloc_obj(*line, GFP_KERNEL);
if (!line)
return ERR_PTR(-ENOMEM);
@@ -1521,7 +1521,7 @@ gpio_sim_device_config_make_bank_group(struct config_group *group,
if (gpio_sim_device_is_live(dev))
return ERR_PTR(-EBUSY);
- bank = kzalloc(sizeof(*bank), GFP_KERNEL);
+ bank = kzalloc_obj(*bank, GFP_KERNEL);
if (!bank)
return ERR_PTR(-ENOMEM);
@@ -1569,8 +1569,8 @@ gpio_sim_config_make_device_group(struct config_group *group, const char *name)
{
int id;
- struct gpio_sim_device *dev __free(kfree) = kzalloc(sizeof(*dev),
- GFP_KERNEL);
+ struct gpio_sim_device *dev __free(kfree) = kzalloc_obj(*dev,
+ GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpio/gpio-virtuser.c b/drivers/gpio/gpio-virtuser.c
index b6c515e7a876..5b8cb4e65e56 100644
--- a/drivers/gpio/gpio-virtuser.c
+++ b/drivers/gpio/gpio-virtuser.c
@@ -1388,7 +1388,7 @@ gpio_virtuser_make_lookup_table(struct gpio_virtuser_device *dev)
lockdep_assert_held(&dev->lock);
struct gpiod_lookup_table *table __free(kfree) =
- kzalloc(struct_size(table, table, num_entries + 1), GFP_KERNEL);
+ kzalloc_flex(*table, table, num_entries + 1, GFP_KERNEL);
if (!table)
return -ENOMEM;
@@ -1605,7 +1605,7 @@ gpio_virtuser_make_lookup_entry_group(struct config_group *group,
return ERR_PTR(-EBUSY);
struct gpio_virtuser_lookup_entry *entry __free(kfree) =
- kzalloc(sizeof(*entry), GFP_KERNEL);
+ kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return ERR_PTR(-ENOMEM);
@@ -1661,7 +1661,7 @@ gpio_virtuser_make_lookup_group(struct config_group *group, const char *name)
return ERR_PTR(-EBUSY);
struct gpio_virtuser_lookup *lookup __free(kfree) =
- kzalloc(sizeof(*lookup), GFP_KERNEL);
+ kzalloc_obj(*lookup, GFP_KERNEL);
if (!lookup)
return ERR_PTR(-ENOMEM);
@@ -1711,8 +1711,8 @@ static struct config_group *
gpio_virtuser_config_make_device_group(struct config_group *group,
const char *name)
{
- struct gpio_virtuser_device *dev __free(kfree) = kzalloc(sizeof(*dev),
- GFP_KERNEL);
+ struct gpio_virtuser_device *dev __free(kfree) = kzalloc_obj(*dev,
+ GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpio/gpiolib-acpi-core.c b/drivers/gpio/gpiolib-acpi-core.c
index 5e709ba35ec2..df60f6eac137 100644
--- a/drivers/gpio/gpiolib-acpi-core.c
+++ b/drivers/gpio/gpiolib-acpi-core.c
@@ -403,7 +403,7 @@ static acpi_status acpi_gpiochip_alloc_event(struct acpi_resource *ares,
goto fail_unlock_irq;
}
- event = kzalloc(sizeof(*event), GFP_KERNEL);
+ event = kzalloc_obj(*event, GFP_KERNEL);
if (!event)
goto fail_unlock_irq;
@@ -1144,7 +1144,7 @@ acpi_gpio_adr_space_handler(u32 function, acpi_physical_address address,
goto out;
}
- conn = kzalloc(sizeof(*conn), GFP_KERNEL);
+ conn = kzalloc_obj(*conn, GFP_KERNEL);
if (!conn) {
gpiochip_free_own_desc(desc);
mutex_unlock(&achip->conn_lock);
@@ -1302,7 +1302,7 @@ void acpi_gpiochip_add(struct gpio_chip *chip)
if (!adev)
return;
- acpi_gpio = kzalloc(sizeof(*acpi_gpio), GFP_KERNEL);
+ acpi_gpio = kzalloc_obj(*acpi_gpio, GFP_KERNEL);
if (!acpi_gpio) {
dev_err(chip->parent,
"Failed to allocate memory for ACPI GPIO chip\n");
diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c
index 189127721e38..f50b067e1de3 100644
--- a/drivers/gpio/gpiolib-cdev.c
+++ b/drivers/gpio/gpiolib-cdev.c
@@ -318,7 +318,7 @@ static int linehandle_create(struct gpio_device *gdev, void __user *ip)
if (ret)
return ret;
- lh = kzalloc(sizeof(*lh), GFP_KERNEL);
+ lh = kzalloc_obj(*lh, GFP_KERNEL);
if (!lh)
return -ENOMEM;
lh->gdev = gpio_device_get(gdev);
@@ -1280,7 +1280,7 @@ static long linereq_get_values(struct linereq *lr, void __user *ip)
if (num_get != 1) {
/* build compacted desc array */
- descs = kmalloc_array(num_get, sizeof(*descs), GFP_KERNEL);
+ descs = kmalloc_objs(*descs, num_get, GFP_KERNEL);
if (!descs)
return -ENOMEM;
for (didx = 0, i = 0; i < lr->num_lines; i++) {
@@ -1355,7 +1355,7 @@ static long linereq_set_values(struct linereq *lr, void __user *ip)
if (num_set != 1) {
/* build compacted desc array */
- descs = kmalloc_array(num_set, sizeof(*descs), GFP_KERNEL);
+ descs = kmalloc_objs(*descs, num_set, GFP_KERNEL);
if (!descs)
return -ENOMEM;
for (didx = 0, i = 0; i < lr->num_lines; i++) {
@@ -1610,7 +1610,7 @@ static int linereq_create(struct gpio_device *gdev, void __user *ip)
if (ret)
return ret;
- lr = kvzalloc(struct_size(lr, lines, ulr.num_lines), GFP_KERNEL);
+ lr = kvzalloc_flex(*lr, lines, ulr.num_lines, GFP_KERNEL);
if (!lr)
return -ENOMEM;
lr->num_lines = ulr.num_lines;
@@ -2054,7 +2054,7 @@ static int lineevent_create(struct gpio_device *gdev, void __user *ip)
(lflags & GPIOHANDLE_REQUEST_BIAS_PULL_UP)))
return -EINVAL;
- le = kzalloc(sizeof(*le), GFP_KERNEL);
+ le = kzalloc_obj(*le, GFP_KERNEL);
if (!le)
return -ENOMEM;
le->gdev = gpio_device_get(gdev);
@@ -2546,7 +2546,7 @@ static int lineinfo_changed_notify(struct notifier_block *nb,
* is executed.
*/
- ctx = kzalloc(sizeof(*ctx), GFP_ATOMIC);
+ ctx = kzalloc_obj(*ctx, GFP_ATOMIC);
if (!ctx) {
pr_err("Failed to allocate memory for line info notification\n");
fput(fp);
diff --git a/drivers/gpio/gpiolib-shared.c b/drivers/gpio/gpiolib-shared.c
index b3525d1f06a4..bb53f803b2e3 100644
--- a/drivers/gpio/gpiolib-shared.c
+++ b/drivers/gpio/gpiolib-shared.c
@@ -84,7 +84,8 @@ static struct gpio_shared_ref *gpio_shared_make_ref(struct fwnode_handle *fwnode
{
char *con_id_cpy __free(kfree) = NULL;
- struct gpio_shared_ref *ref __free(kfree) = kzalloc(sizeof(*ref), GFP_KERNEL);
+ struct gpio_shared_ref *ref __free(kfree) = kzalloc_obj(*ref,
+ GFP_KERNEL);
if (!ref)
return NULL;
@@ -227,7 +228,7 @@ static int gpio_shared_of_traverse(struct device_node *curr)
entry = gpio_shared_find_entry(fwnode, offset);
if (!entry) {
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -477,7 +478,7 @@ int gpio_shared_add_proxy_lookup(struct device *consumer, const char *con_id,
if (!key)
return -ENOMEM;
- lookup = kzalloc(struct_size(lookup, table, 2), GFP_KERNEL);
+ lookup = kzalloc_flex(*lookup, table, 2, GFP_KERNEL);
if (!lookup)
return -ENOMEM;
@@ -626,7 +627,7 @@ gpiod_shared_desc_create(struct gpio_shared_entry *entry)
lockdep_assert_held(&entry->lock);
- shared_desc = kzalloc(sizeof(*shared_desc), GFP_KERNEL);
+ shared_desc = kzalloc_obj(*shared_desc, GFP_KERNEL);
if (!shared_desc)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpio/gpiolib-sysfs.c b/drivers/gpio/gpiolib-sysfs.c
index d4a46a0a37d8..99e0cf963b19 100644
--- a/drivers/gpio/gpiolib-sysfs.c
+++ b/drivers/gpio/gpiolib-sysfs.c
@@ -761,7 +761,7 @@ int gpiod_export(struct gpio_desc *desc, bool direction_may_change)
goto err_clear_bit;
}
- desc_data = kzalloc(sizeof(*desc_data), GFP_KERNEL);
+ desc_data = kzalloc_obj(*desc_data, GFP_KERNEL);
if (!desc_data) {
status = -ENOMEM;
goto err_clear_bit;
@@ -1014,7 +1014,7 @@ int gpiochip_sysfs_register(struct gpio_device *gdev)
else
parent = &gdev->dev;
- data = kmalloc(sizeof(*data), GFP_KERNEL);
+ data = kmalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index c52200eaaaff..654505cd21da 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -147,8 +147,7 @@ static int desc_set_label(struct gpio_desc *desc, const char *label)
struct gpio_desc_label *new = NULL, *old;
if (label) {
- new = kzalloc(struct_size(new, str, strlen(label) + 1),
- GFP_KERNEL);
+ new = kzalloc_flex(*new, str, strlen(label) + 1, GFP_KERNEL);
if (!new)
return -ENOMEM;
@@ -2333,7 +2332,7 @@ int gpiochip_add_pingroup_range(struct gpio_chip *gc,
struct gpio_device *gdev = gc->gpiodev;
int ret;
- pin_range = kzalloc(sizeof(*pin_range), GFP_KERNEL);
+ pin_range = kzalloc_obj(*pin_range, GFP_KERNEL);
if (!pin_range)
return -ENOMEM;
@@ -2394,7 +2393,7 @@ int gpiochip_add_pin_range_with_pins(struct gpio_chip *gc,
struct gpio_device *gdev = gc->gpiodev;
int ret;
- pin_range = kzalloc(sizeof(*pin_range), GFP_KERNEL);
+ pin_range = kzalloc_obj(*pin_range, GFP_KERNEL);
if (!pin_range)
return -ENOMEM;
@@ -5370,7 +5369,7 @@ static void *gpiolib_seq_start(struct seq_file *s, loff_t *pos)
s->private = NULL;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdgpu/aldebaran.c b/drivers/gpu/drm/amd/amdgpu/aldebaran.c
index daa7b23bc775..5d8d9c73434a 100644
--- a/drivers/gpu/drm/amd/amdgpu/aldebaran.c
+++ b/drivers/gpu/drm/amd/amdgpu/aldebaran.c
@@ -447,7 +447,7 @@ int aldebaran_reset_init(struct amdgpu_device *adev)
{
struct amdgpu_reset_control *reset_ctl;
- reset_ctl = kzalloc(sizeof(*reset_ctl), GFP_KERNEL);
+ reset_ctl = kzalloc_obj(*reset_ctl, GFP_KERNEL);
if (!reset_ctl)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
index 9b3180449150..1c7597c19249 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
@@ -52,7 +52,7 @@ static int aca_banks_add_bank(struct aca_banks *banks, struct aca_bank *bank)
if (!bank)
return -EINVAL;
- node = kvzalloc(sizeof(*node), GFP_KERNEL);
+ node = kvzalloc_obj(*node, GFP_KERNEL);
if (!node)
return -ENOMEM;
@@ -230,7 +230,7 @@ static struct aca_bank_error *new_bank_error(struct aca_error *aerr, struct aca_
{
struct aca_bank_error *bank_error;
- bank_error = kvzalloc(sizeof(*bank_error), GFP_KERNEL);
+ bank_error = kvzalloc_obj(*bank_error, GFP_KERNEL);
if (!bank_error)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c
index 381ef205b0df..c544f0dbb93f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c
@@ -246,7 +246,7 @@ static int acp_hw_init(struct amdgpu_ip_block *ip_block)
return -EINVAL;
acp_base = adev->rmmio_base;
- adev->acp.acp_genpd = kzalloc(sizeof(struct acp_pm_domain), GFP_KERNEL);
+ adev->acp.acp_genpd = kzalloc_obj(struct acp_pm_domain, GFP_KERNEL);
if (!adev->acp.acp_genpd)
return -ENOMEM;
@@ -260,20 +260,21 @@ static int acp_hw_init(struct amdgpu_ip_block *ip_block)
switch (acp_machine_id) {
case ST_JADEITE:
{
- adev->acp.acp_cell = kcalloc(2, sizeof(struct mfd_cell),
- GFP_KERNEL);
+ adev->acp.acp_cell = kzalloc_objs(struct mfd_cell, 2,
+ GFP_KERNEL);
if (!adev->acp.acp_cell) {
r = -ENOMEM;
goto failure;
}
- adev->acp.acp_res = kcalloc(3, sizeof(struct resource), GFP_KERNEL);
+ adev->acp.acp_res = kzalloc_objs(struct resource, 3, GFP_KERNEL);
if (!adev->acp.acp_res) {
r = -ENOMEM;
goto failure;
}
- i2s_pdata = kcalloc(1, sizeof(struct i2s_platform_data), GFP_KERNEL);
+ i2s_pdata = kzalloc_objs(struct i2s_platform_data, 1,
+ GFP_KERNEL);
if (!i2s_pdata) {
r = -ENOMEM;
goto failure;
@@ -324,21 +325,22 @@ static int acp_hw_init(struct amdgpu_ip_block *ip_block)
break;
}
default:
- adev->acp.acp_cell = kcalloc(ACP_DEVS, sizeof(struct mfd_cell),
- GFP_KERNEL);
+ adev->acp.acp_cell = kzalloc_objs(struct mfd_cell, ACP_DEVS,
+ GFP_KERNEL);
if (!adev->acp.acp_cell) {
r = -ENOMEM;
goto failure;
}
- adev->acp.acp_res = kcalloc(5, sizeof(struct resource), GFP_KERNEL);
+ adev->acp.acp_res = kzalloc_objs(struct resource, 5, GFP_KERNEL);
if (!adev->acp.acp_res) {
r = -ENOMEM;
goto failure;
}
- i2s_pdata = kcalloc(3, sizeof(struct i2s_platform_data), GFP_KERNEL);
+ i2s_pdata = kzalloc_objs(struct i2s_platform_data, 3,
+ GFP_KERNEL);
if (!i2s_pdata) {
r = -ENOMEM;
goto failure;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
index 02d5abf9df2b..742fc381149e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
@@ -897,7 +897,7 @@ static struct amdgpu_numa_info *amdgpu_acpi_get_numa_info(uint32_t pxm)
if (!numa_info) {
struct sysinfo info;
- numa_info = kzalloc(sizeof(*numa_info), GFP_KERNEL);
+ numa_info = kzalloc_obj(*numa_info, GFP_KERNEL);
if (!numa_info)
return NULL;
@@ -1016,7 +1016,7 @@ static int amdgpu_acpi_dev_init(struct amdgpu_acpi_dev_info **dev_info,
int ret = -ENOENT;
*dev_info = NULL;
- tmp = kzalloc(sizeof(struct amdgpu_acpi_dev_info), GFP_KERNEL);
+ tmp = kzalloc_obj(struct amdgpu_acpi_dev_info, GFP_KERNEL);
if (!tmp)
return -ENOMEM;
@@ -1166,8 +1166,7 @@ int amdgpu_acpi_enumerate_xcc(void)
break;
}
- xcc_info = kzalloc(sizeof(struct amdgpu_acpi_xcc_info),
- GFP_KERNEL);
+ xcc_info = kzalloc_obj(struct amdgpu_acpi_xcc_info, GFP_KERNEL);
if (!xcc_info)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
index 3bfd79c89df3..16baf713be78 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
@@ -829,11 +829,11 @@ int amdgpu_amdkfd_unmap_hiq(struct amdgpu_device *adev, u32 doorbell_off,
if (!kiq_ring->sched.ready || amdgpu_in_reset(adev))
return 0;
- ring_funcs = kzalloc(sizeof(*ring_funcs), GFP_KERNEL);
+ ring_funcs = kzalloc_obj(*ring_funcs, GFP_KERNEL);
if (!ring_funcs)
return -ENOMEM;
- ring = kzalloc(sizeof(*ring), GFP_KERNEL);
+ ring = kzalloc_obj(*ring, GFP_KERNEL);
if (!ring) {
r = -ENOMEM;
goto free_ring_funcs;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
index 1105a09e55dc..c74e3866ffb8 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
@@ -199,7 +199,7 @@ int kgd_arcturus_hqd_sdma_dump(struct amdgpu_device *adev,
#undef HQD_N_REGS
#define HQD_N_REGS (19+6+7+10)
- *dump = kmalloc_array(HQD_N_REGS, sizeof(**dump), GFP_KERNEL);
+ *dump = kmalloc_objs(**dump, HQD_N_REGS, GFP_KERNEL);
if (*dump == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c
index 31b8fa52b42f..fff60109cf9c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c
@@ -67,7 +67,7 @@ struct amdgpu_amdkfd_fence *amdgpu_amdkfd_fence_create(u64 context,
{
struct amdgpu_amdkfd_fence *fence;
- fence = kzalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kzalloc_obj(*fence, GFP_KERNEL);
if (fence == NULL)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gc_9_4_3.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gc_9_4_3.c
index 89a45a9218f3..a2e00dd114a6 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gc_9_4_3.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gc_9_4_3.c
@@ -141,7 +141,7 @@ static int kgd_gfx_v9_4_3_hqd_sdma_dump(struct amdgpu_device *adev,
(*dump)[i++][1] = RREG32(addr); \
} while (0)
- *dump = kmalloc_array(HQD_N_REGS, sizeof(**dump), GFP_KERNEL);
+ *dump = kmalloc_objs(**dump, HQD_N_REGS, GFP_KERNEL);
if (*dump == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c
index 0239114fb6c4..70d63690dccd 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c
@@ -352,7 +352,7 @@ static int kgd_hqd_dump(struct amdgpu_device *adev,
(*dump)[i++][1] = RREG32_SOC15_IP(GC, addr); \
} while (0)
- *dump = kmalloc_array(HQD_N_REGS, sizeof(**dump), GFP_KERNEL);
+ *dump = kmalloc_objs(**dump, HQD_N_REGS, GFP_KERNEL);
if (*dump == NULL)
return -ENOMEM;
@@ -449,7 +449,7 @@ static int kgd_hqd_sdma_dump(struct amdgpu_device *adev,
#undef HQD_N_REGS
#define HQD_N_REGS (19+6+7+10)
- *dump = kmalloc_array(HQD_N_REGS, sizeof(**dump), GFP_KERNEL);
+ *dump = kmalloc_objs(**dump, HQD_N_REGS, GFP_KERNEL);
if (*dump == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10_3.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10_3.c
index f2278a0937ff..41564319441e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10_3.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10_3.c
@@ -338,7 +338,7 @@ static int hqd_dump_v10_3(struct amdgpu_device *adev,
(*dump)[i++][1] = RREG32_SOC15_IP(GC, addr); \
} while (0)
- *dump = kmalloc_array(HQD_N_REGS, sizeof(**dump), GFP_KERNEL);
+ *dump = kmalloc_objs(**dump, HQD_N_REGS, GFP_KERNEL);
if (*dump == NULL)
return -ENOMEM;
@@ -435,7 +435,7 @@ static int hqd_sdma_dump_v10_3(struct amdgpu_device *adev,
#undef HQD_N_REGS
#define HQD_N_REGS (19+6+7+12)
- *dump = kmalloc_array(HQD_N_REGS, sizeof(**dump), GFP_KERNEL);
+ *dump = kmalloc_objs(**dump, HQD_N_REGS, GFP_KERNEL);
if (*dump == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v11.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v11.c
index aaccf0b9947d..50c57914c90c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v11.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v11.c
@@ -323,7 +323,7 @@ static int hqd_dump_v11(struct amdgpu_device *adev,
(*dump)[i++][1] = RREG32(addr); \
} while (0)
- *dump = kmalloc_array(HQD_N_REGS, sizeof(**dump), GFP_KERNEL);
+ *dump = kmalloc_objs(**dump, HQD_N_REGS, GFP_KERNEL);
if (*dump == NULL)
return -ENOMEM;
@@ -420,7 +420,7 @@ static int hqd_sdma_dump_v11(struct amdgpu_device *adev,
#undef HQD_N_REGS
#define HQD_N_REGS (7+11+1+12+12)
- *dump = kmalloc_array(HQD_N_REGS, sizeof(**dump), GFP_KERNEL);
+ *dump = kmalloc_objs(**dump, HQD_N_REGS, GFP_KERNEL);
if (*dump == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v12.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v12.c
index e0ceab400b2d..4e43ad423713 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v12.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v12.c
@@ -115,7 +115,7 @@ static int hqd_dump_v12(struct amdgpu_device *adev,
(*dump)[i++][1] = RREG32(addr); \
} while (0)
- *dump = kmalloc_array(HQD_N_REGS, sizeof(**dump), GFP_KERNEL);
+ *dump = kmalloc_objs(**dump, HQD_N_REGS, GFP_KERNEL);
if (*dump == NULL)
return -ENOMEM;
@@ -146,7 +146,7 @@ static int hqd_sdma_dump_v12(struct amdgpu_device *adev,
#undef HQD_N_REGS
#define HQD_N_REGS (last_reg - first_reg + 1)
- *dump = kmalloc_array(HQD_N_REGS, sizeof(**dump), GFP_KERNEL);
+ *dump = kmalloc_objs(**dump, HQD_N_REGS, GFP_KERNEL);
if (*dump == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
index df77558e03ef..ba7e901322b3 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
@@ -214,7 +214,7 @@ static int kgd_hqd_dump(struct amdgpu_device *adev,
(*dump)[i++][1] = RREG32(addr); \
} while (0)
- *dump = kmalloc_array(HQD_N_REGS, sizeof(**dump), GFP_KERNEL);
+ *dump = kmalloc_objs(**dump, HQD_N_REGS, GFP_KERNEL);
if (*dump == NULL)
return -ENOMEM;
@@ -301,7 +301,7 @@ static int kgd_hqd_sdma_dump(struct amdgpu_device *adev,
#undef HQD_N_REGS
#define HQD_N_REGS (19+4)
- *dump = kmalloc_array(HQD_N_REGS, sizeof(**dump), GFP_KERNEL);
+ *dump = kmalloc_objs(**dump, HQD_N_REGS, GFP_KERNEL);
if (*dump == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
index e68c0fa8d751..9f51fd11c5ae 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
@@ -238,7 +238,7 @@ static int kgd_hqd_dump(struct amdgpu_device *adev,
(*dump)[i++][1] = RREG32(addr); \
} while (0)
- *dump = kmalloc_array(HQD_N_REGS, sizeof(**dump), GFP_KERNEL);
+ *dump = kmalloc_objs(**dump, HQD_N_REGS, GFP_KERNEL);
if (*dump == NULL)
return -ENOMEM;
@@ -324,7 +324,7 @@ static int kgd_hqd_sdma_dump(struct amdgpu_device *adev,
#undef HQD_N_REGS
#define HQD_N_REGS (19+4+2+3+7)
- *dump = kmalloc_array(HQD_N_REGS, sizeof(**dump), GFP_KERNEL);
+ *dump = kmalloc_objs(**dump, HQD_N_REGS, GFP_KERNEL);
if (*dump == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
index 088d09cc7a72..cc2073cf43f4 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
@@ -363,7 +363,7 @@ int kgd_gfx_v9_hqd_dump(struct amdgpu_device *adev,
(*dump)[i++][1] = RREG32(addr); \
} while (0)
- *dump = kmalloc_array(HQD_N_REGS, sizeof(**dump), GFP_KERNEL);
+ *dump = kmalloc_objs(**dump, HQD_N_REGS, GFP_KERNEL);
if (*dump == NULL)
return -ENOMEM;
@@ -460,7 +460,7 @@ static int kgd_hqd_sdma_dump(struct amdgpu_device *adev,
#undef HQD_N_REGS
#define HQD_N_REGS (19+6+7+10)
- *dump = kmalloc_array(HQD_N_REGS, sizeof(**dump), GFP_KERNEL);
+ *dump = kmalloc_objs(**dump, HQD_N_REGS, GFP_KERNEL);
if (*dump == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
index d8d834cf96e7..fd7bfe418099 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
@@ -540,7 +540,7 @@ static uint64_t get_pte_flags(struct amdgpu_device *adev, struct amdgpu_vm *vm,
*/
static struct sg_table *create_sg_table(uint64_t addr, uint32_t size)
{
- struct sg_table *sg = kmalloc(sizeof(*sg), GFP_KERNEL);
+ struct sg_table *sg = kmalloc_obj(*sg, GFP_KERNEL);
if (!sg)
return NULL;
@@ -573,7 +573,7 @@ kfd_mem_dmamap_userptr(struct kgd_mem *mem,
if (WARN_ON(ttm->num_pages != src_ttm->num_pages))
return -EINVAL;
- ttm->sg = kmalloc(sizeof(*ttm->sg), GFP_KERNEL);
+ ttm->sg = kmalloc_obj(*ttm->sg, GFP_KERNEL);
if (unlikely(!ttm->sg))
return -ENOMEM;
@@ -1409,7 +1409,7 @@ static int init_kfd_vm(struct amdgpu_vm *vm, void **process_info,
process = container_of(process_info, struct kfd_process, kgd_process_info);
if (!*process_info) {
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
@@ -1773,7 +1773,7 @@ int amdgpu_amdkfd_gpuvm_alloc_memory_of_gpu(
if (flags & KFD_IOC_ALLOC_MEM_FLAGS_UNCACHED)
alloc_flags |= AMDGPU_GEM_CREATE_UNCACHED;
- *mem = kzalloc(sizeof(struct kgd_mem), GFP_KERNEL);
+ *mem = kzalloc_obj(struct kgd_mem, GFP_KERNEL);
if (!*mem) {
ret = -ENOMEM;
goto err;
@@ -2374,7 +2374,7 @@ static int import_obj_create(struct amdgpu_device *adev,
/* Only VRAM and GTT BOs are supported */
return -EINVAL;
- *mem = kzalloc(sizeof(struct kgd_mem), GFP_KERNEL);
+ *mem = kzalloc_obj(struct kgd_mem, GFP_KERNEL);
if (!*mem)
return -ENOMEM;
@@ -3129,7 +3129,7 @@ int amdgpu_amdkfd_add_gws_to_process(void *info, void *gws, struct kgd_mem **mem
if (!info || !gws)
return -EINVAL;
- *mem = kzalloc(sizeof(struct kgd_mem), GFP_KERNEL);
+ *mem = kzalloc_obj(struct kgd_mem, GFP_KERNEL);
if (!*mem)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
index 763f2b8dcf13..59ddc14cbb7d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
@@ -1897,7 +1897,7 @@ void amdgpu_atombios_fini(struct amdgpu_device *adev)
int amdgpu_atombios_init(struct amdgpu_device *adev)
{
struct card_info *atom_card_info =
- kzalloc(sizeof(struct card_info), GFP_KERNEL);
+ kzalloc_obj(struct card_info, GFP_KERNEL);
if (!atom_card_info)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
index 87ec46c56a6e..3785c0645751 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
@@ -76,7 +76,7 @@ int amdgpu_bo_list_create(struct amdgpu_device *adev, struct drm_file *filp,
unsigned i;
int r;
- list = kvzalloc(struct_size(list, entries, num_entries), GFP_KERNEL);
+ list = kvzalloc_flex(*list, entries, num_entries, GFP_KERNEL);
if (!list)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
index 09c8942c22d3..c9c82fc9604a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
@@ -399,8 +399,8 @@ static const struct cgs_ops amdgpu_cgs_ops = {
struct cgs_device *amdgpu_cgs_create_device(struct amdgpu_device *adev)
{
- struct amdgpu_cgs_device *cgs_device =
- kmalloc(sizeof(*cgs_device), GFP_KERNEL);
+ struct amdgpu_cgs_device *cgs_device = kmalloc_obj(*cgs_device,
+ GFP_KERNEL);
if (!cgs_device) {
drm_err(adev_to_drm(adev), "Couldn't allocate CGS device structure\n");
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
index d3e312bda4ed..198ad026222d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
@@ -1652,7 +1652,7 @@ amdgpu_connector_add(struct amdgpu_device *adev,
}
}
- amdgpu_connector = kzalloc(sizeof(struct amdgpu_connector), GFP_KERNEL);
+ amdgpu_connector = kzalloc_obj(struct amdgpu_connector, GFP_KERNEL);
if (!amdgpu_connector)
return;
@@ -1673,7 +1673,8 @@ amdgpu_connector_add(struct amdgpu_device *adev,
}
if (is_dp_bridge) {
- amdgpu_dig_connector = kzalloc(sizeof(struct amdgpu_connector_atom_dig), GFP_KERNEL);
+ amdgpu_dig_connector = kzalloc_obj(struct amdgpu_connector_atom_dig,
+ GFP_KERNEL);
if (!amdgpu_dig_connector)
goto failed;
amdgpu_connector->con_priv = amdgpu_dig_connector;
@@ -1828,7 +1829,8 @@ amdgpu_connector_add(struct amdgpu_device *adev,
break;
case DRM_MODE_CONNECTOR_DVII:
case DRM_MODE_CONNECTOR_DVID:
- amdgpu_dig_connector = kzalloc(sizeof(struct amdgpu_connector_atom_dig), GFP_KERNEL);
+ amdgpu_dig_connector = kzalloc_obj(struct amdgpu_connector_atom_dig,
+ GFP_KERNEL);
if (!amdgpu_dig_connector)
goto failed;
amdgpu_connector->con_priv = amdgpu_dig_connector;
@@ -1885,7 +1887,8 @@ amdgpu_connector_add(struct amdgpu_device *adev,
break;
case DRM_MODE_CONNECTOR_HDMIA:
case DRM_MODE_CONNECTOR_HDMIB:
- amdgpu_dig_connector = kzalloc(sizeof(struct amdgpu_connector_atom_dig), GFP_KERNEL);
+ amdgpu_dig_connector = kzalloc_obj(struct amdgpu_connector_atom_dig,
+ GFP_KERNEL);
if (!amdgpu_dig_connector)
goto failed;
amdgpu_connector->con_priv = amdgpu_dig_connector;
@@ -1934,7 +1937,8 @@ amdgpu_connector_add(struct amdgpu_device *adev,
connector->doublescan_allowed = false;
break;
case DRM_MODE_CONNECTOR_DisplayPort:
- amdgpu_dig_connector = kzalloc(sizeof(struct amdgpu_connector_atom_dig), GFP_KERNEL);
+ amdgpu_dig_connector = kzalloc_obj(struct amdgpu_connector_atom_dig,
+ GFP_KERNEL);
if (!amdgpu_dig_connector)
goto failed;
amdgpu_connector->con_priv = amdgpu_dig_connector;
@@ -1983,7 +1987,8 @@ amdgpu_connector_add(struct amdgpu_device *adev,
connector->doublescan_allowed = false;
break;
case DRM_MODE_CONNECTOR_eDP:
- amdgpu_dig_connector = kzalloc(sizeof(struct amdgpu_connector_atom_dig), GFP_KERNEL);
+ amdgpu_dig_connector = kzalloc_obj(struct amdgpu_connector_atom_dig,
+ GFP_KERNEL);
if (!amdgpu_dig_connector)
goto failed;
amdgpu_connector->con_priv = amdgpu_dig_connector;
@@ -2010,7 +2015,8 @@ amdgpu_connector_add(struct amdgpu_device *adev,
connector->doublescan_allowed = false;
break;
case DRM_MODE_CONNECTOR_LVDS:
- amdgpu_dig_connector = kzalloc(sizeof(struct amdgpu_connector_atom_dig), GFP_KERNEL);
+ amdgpu_dig_connector = kzalloc_obj(struct amdgpu_connector_atom_dig,
+ GFP_KERNEL);
if (!amdgpu_dig_connector)
goto failed;
amdgpu_connector->con_priv = amdgpu_dig_connector;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
index f3b5bcdbf2ae..c9345783ac26 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
@@ -192,8 +192,8 @@ static int amdgpu_cs_pass1(struct amdgpu_cs_parser *p,
return PTR_ERR(chunk_array);
p->nchunks = cs->in.num_chunks;
- p->chunks = kvmalloc_array(p->nchunks, sizeof(struct amdgpu_cs_chunk),
- GFP_KERNEL);
+ p->chunks = kvmalloc_objs(struct amdgpu_cs_chunk, p->nchunks,
+ GFP_KERNEL);
if (!p->chunks) {
ret = -ENOMEM;
goto free_chunk;
@@ -523,8 +523,7 @@ static int amdgpu_cs_p2_syncobj_out(struct amdgpu_cs_parser *p,
if (p->post_deps)
return -EINVAL;
- p->post_deps = kmalloc_array(num_deps, sizeof(*p->post_deps),
- GFP_KERNEL);
+ p->post_deps = kmalloc_objs(*p->post_deps, num_deps, GFP_KERNEL);
p->num_post_deps = 0;
if (!p->post_deps)
@@ -557,8 +556,7 @@ static int amdgpu_cs_p2_syncobj_timeline_signal(struct amdgpu_cs_parser *p,
if (p->post_deps)
return -EINVAL;
- p->post_deps = kmalloc_array(num_deps, sizeof(*p->post_deps),
- GFP_KERNEL);
+ p->post_deps = kmalloc_objs(*p->post_deps, num_deps, GFP_KERNEL);
p->num_post_deps = 0;
if (!p->post_deps)
@@ -1691,7 +1689,7 @@ static int amdgpu_cs_wait_any_fence(struct amdgpu_device *adev,
long r;
/* Prepare the fence array */
- array = kcalloc(fence_count, sizeof(struct dma_fence *), GFP_KERNEL);
+ array = kzalloc_objs(struct dma_fence *, fence_count, GFP_KERNEL);
if (array == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
index 5c344665b43c..1eb2e89fcdeb 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
@@ -212,8 +212,7 @@ static int amdgpu_ctx_init_entity(struct amdgpu_ctx *ctx, u32 hw_ip,
int32_t ctx_prio;
int r;
- entity = kzalloc(struct_size(entity, fences, amdgpu_sched_jobs),
- GFP_KERNEL);
+ entity = kzalloc_flex(*entity, fences, amdgpu_sched_jobs, GFP_KERNEL);
if (!entity)
return -ENOMEM;
@@ -483,7 +482,7 @@ static int amdgpu_ctx_alloc(struct amdgpu_device *adev,
struct amdgpu_ctx *ctx;
int r;
- ctx = kmalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kmalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
index aeb90708f229..56a13637bb8c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
@@ -206,7 +206,7 @@ static int amdgpu_debugfs_regs2_open(struct inode *inode, struct file *file)
{
struct amdgpu_debugfs_regs2_data *rd;
- rd = kzalloc(sizeof(*rd), GFP_KERNEL);
+ rd = kzalloc_obj(*rd, GFP_KERNEL);
if (!rd)
return -ENOMEM;
rd->adev = file_inode(file)->i_private;
@@ -371,7 +371,7 @@ static int amdgpu_debugfs_gprwave_open(struct inode *inode, struct file *file)
{
struct amdgpu_debugfs_gprwave_data *rd;
- rd = kzalloc(sizeof(*rd), GFP_KERNEL);
+ rd = kzalloc_obj(*rd, GFP_KERNEL);
if (!rd)
return -ENOMEM;
rd->adev = file_inode(file)->i_private;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c
index ca71c2948227..c38e7371bafc 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c
@@ -332,7 +332,7 @@ void amdgpu_coredump(struct amdgpu_device *adev, bool skip_vram_check,
struct amdgpu_coredump_info *coredump;
struct drm_sched_job *s_job;
- coredump = kzalloc(sizeof(*coredump), GFP_NOWAIT);
+ coredump = kzalloc_obj(*coredump, GFP_NOWAIT);
if (!coredump)
return;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index c3cb9570f0ba..c57cbf497eba 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -2596,7 +2596,7 @@ static int amdgpu_device_parse_gpu_info_fw(struct amdgpu_device *adev)
static void amdgpu_uid_init(struct amdgpu_device *adev)
{
/* Initialize the UID for the device */
- adev->uid_info = kzalloc(sizeof(struct amdgpu_uid), GFP_KERNEL);
+ adev->uid_info = kzalloc_obj(struct amdgpu_uid, GFP_KERNEL);
if (!adev->uid_info) {
dev_warn(adev->dev, "Failed to allocate memory for UID\n");
return;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
index fc8c1f36be58..c51eedd96fb0 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
@@ -1149,7 +1149,7 @@ static int amdgpu_discovery_sysfs_ips(struct amdgpu_device *adev,
* block if not yet registered.
*/
if (!ip_hw_id) {
- ip_hw_id = kzalloc(sizeof(*ip_hw_id), GFP_KERNEL);
+ ip_hw_id = kzalloc_obj(*ip_hw_id, GFP_KERNEL);
if (!ip_hw_id)
return -ENOMEM;
ip_hw_id->hw_id = ii;
@@ -1177,10 +1177,10 @@ static int amdgpu_discovery_sysfs_ips(struct amdgpu_device *adev,
/* Now register its instance.
*/
- ip_hw_instance = kzalloc(struct_size(ip_hw_instance,
- base_addr,
- ip->num_base_address),
- GFP_KERNEL);
+ ip_hw_instance = kzalloc_flex(*ip_hw_instance,
+ base_addr,
+ ip->num_base_address,
+ GFP_KERNEL);
if (!ip_hw_instance) {
DRM_ERROR("no memory for ip_hw_instance");
return -ENOMEM;
@@ -1255,7 +1255,7 @@ static int amdgpu_discovery_sysfs_recurse(struct amdgpu_device *adev)
* amdgpu_discovery_reg_base_init().
*/
- ip_die_entry = kzalloc(sizeof(*ip_die_entry), GFP_KERNEL);
+ ip_die_entry = kzalloc_obj(*ip_die_entry, GFP_KERNEL);
if (!ip_die_entry)
return -ENOMEM;
@@ -1287,7 +1287,7 @@ static int amdgpu_discovery_sysfs_init(struct amdgpu_device *adev)
if (!discovery_bin)
return -EINVAL;
- ip_top = kzalloc(sizeof(*ip_top), GFP_KERNEL);
+ ip_top = kzalloc_obj(*ip_top, GFP_KERNEL);
if (!ip_top)
return -ENOMEM;
@@ -1931,9 +1931,8 @@ int amdgpu_discovery_get_nps_info(struct amdgpu_device *adev,
switch (le16_to_cpu(nps_info->v1.header.version_major)) {
case 1:
- mem_ranges = kvcalloc(nps_info->v1.count,
- sizeof(*mem_ranges),
- GFP_KERNEL);
+ mem_ranges = kvzalloc_objs(*mem_ranges, nps_info->v1.count,
+ GFP_KERNEL);
if (!mem_ranges)
return -ENOMEM;
*nps_type = nps_info->v1.nps_type;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
index 48b6f6077992..eb94a0b97b94 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
@@ -204,7 +204,7 @@ int amdgpu_display_crtc_page_flip_target(struct drm_crtc *crtc,
u64 tiling_flags;
int i, r;
- work = kzalloc(sizeof(*work), GFP_KERNEL);
+ work = kzalloc_obj(*work, GFP_KERNEL);
if (work == NULL)
return -ENOMEM;
@@ -1323,7 +1323,7 @@ amdgpu_display_user_framebuffer_create(struct drm_device *dev,
return ERR_PTR(-EINVAL);
}
- amdgpu_fb = kzalloc(sizeof(*amdgpu_fb), GFP_KERNEL);
+ amdgpu_fb = kzalloc_obj(*amdgpu_fb, GFP_KERNEL);
if (amdgpu_fb == NULL) {
drm_gem_object_put(obj);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_eviction_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_eviction_fence.c
index 23d7d0b0d625..432de34d177f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_eviction_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_eviction_fence.c
@@ -161,7 +161,7 @@ amdgpu_eviction_fence_create(struct amdgpu_eviction_fence_mgr *evf_mgr)
{
struct amdgpu_eviction_fence *ev_fence;
- ev_fence = kzalloc(sizeof(*ev_fence), GFP_KERNEL);
+ ev_fence = kzalloc_obj(*ev_fence, GFP_KERNEL);
if (!ev_fence)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c
index b0082aa7f3c6..cb33a04d94c9 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c
@@ -130,7 +130,7 @@ int amdgpu_fru_get_product_info(struct amdgpu_device *adev)
return 0;
if (!adev->fru_info) {
- adev->fru_info = kzalloc(sizeof(*adev->fru_info), GFP_KERNEL);
+ adev->fru_info = kzalloc_obj(*adev->fru_info, GFP_KERNEL);
if (!adev->fru_info)
return -ENOMEM;
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
index ec911dce345f..07e43b446e44 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
@@ -153,7 +153,7 @@ int amdgpu_gart_table_ram_alloc(struct amdgpu_device *adev)
dev_info(adev->dev, "%s dma_addr:%pad\n", __func__, &dma_addr);
/* Create SG table */
- sg = kmalloc(sizeof(*sg), GFP_KERNEL);
+ sg = kmalloc_obj(*sg, GFP_KERNEL);
if (!sg) {
ret = -ENOMEM;
goto error;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
index 5c90de58cc28..27b77a82b174 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
@@ -1183,7 +1183,7 @@ int amdgpu_gem_list_handles_ioctl(struct drm_device *dev, void *data,
return 0;
}
- bo_entries = kvcalloc(num_bos, sizeof(*bo_entries), GFP_KERNEL);
+ bo_entries = kvzalloc_objs(*bo_entries, num_bos, GFP_KERNEL);
if (!bo_entries)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
index 6a6b334428f6..d9b2252db00e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
@@ -1727,9 +1727,9 @@ int amdgpu_gmc_init_mem_ranges(struct amdgpu_device *adev)
{
bool valid;
- adev->gmc.mem_partitions = kcalloc(AMDGPU_MAX_MEM_RANGES,
- sizeof(struct amdgpu_mem_partition_info),
- GFP_KERNEL);
+ adev->gmc.mem_partitions = kzalloc_objs(struct amdgpu_mem_partition_info,
+ AMDGPU_MAX_MEM_RANGES,
+ GFP_KERNEL);
if (!adev->gmc.mem_partitions)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
index dd9b845d5783..33e209818ced 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
@@ -122,7 +122,7 @@ static int amdgpu_gtt_mgr_new(struct ttm_resource_manager *man,
struct ttm_range_mgr_node *node;
int r;
- node = kzalloc(struct_size(node, mm_nodes, 1), GFP_KERNEL);
+ node = kzalloc_flex(*node, mm_nodes, 1, GFP_KERNEL);
if (!node)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c
index 90d26d820bac..4cc345f77db0 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c
@@ -265,7 +265,7 @@ struct amdgpu_hmm_range *amdgpu_hmm_range_alloc(struct amdgpu_bo *bo)
{
struct amdgpu_hmm_range *range;
- range = kzalloc(sizeof(*range), GFP_KERNEL);
+ range = kzalloc_obj(*range, GFP_KERNEL);
if (!range)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.c
index 9cb72f0c5277..9dc4a5f426eb 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.c
@@ -168,7 +168,7 @@ struct amdgpu_i2c_chan *amdgpu_i2c_create(struct drm_device *dev,
if (rec->mm_i2c && (amdgpu_hw_i2c == 0))
return NULL;
- i2c = kzalloc(sizeof(struct amdgpu_i2c_chan), GFP_KERNEL);
+ i2c = kzalloc_obj(struct amdgpu_i2c_chan, GFP_KERNEL);
if (i2c == NULL)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
index bfa64cd7a62d..3a7bab87b5d8 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
@@ -169,7 +169,7 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned int num_ibs,
csa_va = 0;
gds_va = 0;
init_shadow = false;
- af = kzalloc(sizeof(*af), GFP_ATOMIC);
+ af = kzalloc_obj(*af, GFP_ATOMIC);
if (!af)
return -ENOMEM;
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c
index 9cab36322c16..52bad6d28915 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c
@@ -119,7 +119,7 @@ void amdgpu_pasid_free_delayed(struct dma_resv *resv,
return;
}
- cb = kmalloc(sizeof(*cb), GFP_KERNEL);
+ cb = kmalloc_obj(*cb, GFP_KERNEL);
if (!cb) {
/* Last resort when we are OOM */
dma_fence_wait(fence, false);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
index 82bc6d657e5a..d51ce25474f5 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
@@ -436,9 +436,8 @@ int amdgpu_irq_add_id(struct amdgpu_device *adev,
if (!adev->irq.client[client_id].sources) {
adev->irq.client[client_id].sources =
- kcalloc(AMDGPU_MAX_IRQ_SRC_ID,
- sizeof(struct amdgpu_irq_src *),
- GFP_KERNEL);
+ kzalloc_objs(struct amdgpu_irq_src *,
+ AMDGPU_MAX_IRQ_SRC_ID, GFP_KERNEL);
if (!adev->irq.client[client_id].sources)
return -ENOMEM;
}
@@ -449,8 +448,7 @@ int amdgpu_irq_add_id(struct amdgpu_device *adev,
if (source->num_types && !source->enabled_types) {
atomic_t *types;
- types = kcalloc(source->num_types, sizeof(atomic_t),
- GFP_KERNEL);
+ types = kzalloc_objs(atomic_t, source->num_types, GFP_KERNEL);
if (!types)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
index 2c82d9e8c0be..8865b4802963 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
@@ -198,18 +198,18 @@ int amdgpu_job_alloc(struct amdgpu_device *adev, struct amdgpu_vm *vm,
if (num_ibs == 0)
return -EINVAL;
- *job = kzalloc(struct_size(*job, ibs, num_ibs), GFP_KERNEL);
+ *job = kzalloc_flex(**job, ibs, num_ibs, GFP_KERNEL);
if (!*job)
return -ENOMEM;
- af = kzalloc(sizeof(struct amdgpu_fence), GFP_KERNEL);
+ af = kzalloc_obj(struct amdgpu_fence, GFP_KERNEL);
if (!af) {
r = -ENOMEM;
goto err_job;
}
(*job)->hw_fence = af;
- af = kzalloc(sizeof(struct amdgpu_fence), GFP_KERNEL);
+ af = kzalloc_obj(struct amdgpu_fence, GFP_KERNEL);
if (!af) {
r = -ENOMEM;
goto err_fence;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
index f69332eed051..a5b72ed77162 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -942,7 +942,7 @@ int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
uint64_t vm_size;
uint32_t pcie_gen_mask, pcie_width_mask;
- dev_info = kzalloc(sizeof(*dev_info), GFP_KERNEL);
+ dev_info = kzalloc_obj(*dev_info, GFP_KERNEL);
if (!dev_info)
return -ENOMEM;
@@ -1329,7 +1329,7 @@ int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
return -EINVAL;
}
- caps = kzalloc(sizeof(*caps), GFP_KERNEL);
+ caps = kzalloc_obj(*caps, GFP_KERNEL);
if (!caps)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c
index 3ca03b5e0f91..6b52dbdb7e54 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c
@@ -169,7 +169,7 @@ static int amdgpu_mca_bank_set_add_entry(struct mca_bank_set *mca_set, struct mc
if (!entry)
return -EINVAL;
- node = kvzalloc(sizeof(*node), GFP_KERNEL);
+ node = kvzalloc_obj(*node, GFP_KERNEL);
if (!node)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pmu.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pmu.c
index 6e91ea1de5aa..0cfe3a91db84 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pmu.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pmu.c
@@ -446,25 +446,25 @@ static int amdgpu_pmu_alloc_pmu_attrs(
struct amdgpu_pmu_event_attribute **evt_attr,
struct amdgpu_pmu_config *config)
{
- *fmt_attr = kcalloc(config->num_formats, sizeof(**fmt_attr),
- GFP_KERNEL);
+ *fmt_attr = kzalloc_objs(**fmt_attr, config->num_formats, GFP_KERNEL);
if (!(*fmt_attr))
return -ENOMEM;
- fmt_attr_group->attrs = kcalloc(config->num_formats + 1,
- sizeof(*fmt_attr_group->attrs), GFP_KERNEL);
+ fmt_attr_group->attrs = kzalloc_objs(*fmt_attr_group->attrs,
+ config->num_formats + 1,
+ GFP_KERNEL);
if (!fmt_attr_group->attrs)
goto err_fmt_attr_grp;
- *evt_attr = kcalloc(config->num_events, sizeof(**evt_attr), GFP_KERNEL);
+ *evt_attr = kzalloc_objs(**evt_attr, config->num_events, GFP_KERNEL);
if (!(*evt_attr))
goto err_evt_attr;
- evt_attr_group->attrs = kcalloc(config->num_events + 1,
- sizeof(*evt_attr_group->attrs), GFP_KERNEL);
+ evt_attr_group->attrs = kzalloc_objs(*evt_attr_group->attrs,
+ config->num_events + 1, GFP_KERNEL);
if (!evt_attr_group->attrs)
goto err_evt_attr_grp;
@@ -599,7 +599,7 @@ static struct amdgpu_pmu_entry *create_pmu_entry(struct amdgpu_device *adev,
{
struct amdgpu_pmu_entry *pmu_entry;
- pmu_entry = kzalloc(sizeof(struct amdgpu_pmu_entry), GFP_KERNEL);
+ pmu_entry = kzalloc_obj(struct amdgpu_pmu_entry, GFP_KERNEL);
if (!pmu_entry)
return pmu_entry;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c
index 34b5e22b44e5..5420362b4261 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.c
@@ -61,7 +61,7 @@ static int amdgpu_preempt_mgr_new(struct ttm_resource_manager *man,
const struct ttm_place *place,
struct ttm_resource **res)
{
- *res = kzalloc(sizeof(**res), GFP_KERNEL);
+ *res = kzalloc_obj(**res, GFP_KERNEL);
if (!*res)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
index a7c7b378c696..01ce996bfacd 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
@@ -457,7 +457,7 @@ static int psp_sw_init(struct amdgpu_ip_block *ip_block)
struct psp_memory_training_context *mem_training_ctx = &psp->mem_train_ctx;
struct psp_runtime_scpm_entry scpm_entry;
- psp->cmd = kzalloc(sizeof(struct psp_gfx_cmd_resp), GFP_KERNEL);
+ psp->cmd = kzalloc_obj(struct psp_gfx_cmd_resp, GFP_KERNEL);
if (!psp->cmd) {
dev_err(adev->dev, "Failed to allocate memory to command buffer!\n");
return -ENOMEM;
@@ -4384,7 +4384,7 @@ static int psp_read_spirom_debugfs_open(struct inode *inode, struct file *filp)
return -EBUSY;
}
- bo_triplet = kzalloc(sizeof(struct spirom_bo), GFP_KERNEL);
+ bo_triplet = kzalloc_obj(struct spirom_bo, GFP_KERNEL);
if (!bo_triplet) {
mutex_unlock(&adev->psp.mutex);
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
index 856b1bf83533..c363953c2a74 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
@@ -891,7 +891,7 @@ int amdgpu_ras_feature_enable(struct amdgpu_device *adev,
if (head->block == AMDGPU_RAS_BLOCK__GFX &&
!amdgpu_sriov_vf(adev) &&
!amdgpu_ras_intr_triggered()) {
- info = kzalloc(sizeof(union ta_ras_cmd_input), GFP_KERNEL);
+ info = kzalloc_obj(union ta_ras_cmd_input, GFP_KERNEL);
if (!info)
return -ENOMEM;
@@ -1904,7 +1904,7 @@ static ssize_t amdgpu_ras_sysfs_badpages_read(struct file *f,
memset(buf, 0, count);
bps_count = end - start;
- bps = kmalloc_array(bps_count, sizeof(*bps), GFP_KERNEL);
+ bps = kmalloc_objs(*bps, bps_count, GFP_KERNEL);
if (!bps)
return 0;
@@ -2811,7 +2811,7 @@ static int amdgpu_uniras_badpages_read(struct amdgpu_device *adev,
if (!bps || !count)
return -EINVAL;
- output = kmalloc(sizeof(*output), GFP_KERNEL);
+ output = kmalloc_obj(*output, GFP_KERNEL);
if (!output)
return -ENOMEM;
@@ -2991,7 +2991,7 @@ static int amdgpu_ras_realloc_eh_data_space(struct amdgpu_device *adev,
unsigned int old_space = data->count + data->space_left;
unsigned int new_space = old_space + pages;
unsigned int align_space = ALIGN(new_space, 512);
- void *bps = kmalloc_array(align_space, sizeof(*data->bps), GFP_KERNEL);
+ void *bps = kmalloc_objs(*data->bps, align_space, GFP_KERNEL);
if (!bps) {
return -ENOMEM;
@@ -3238,8 +3238,8 @@ int amdgpu_ras_add_bad_pages(struct amdgpu_device *adev,
if (from_rom) {
err_data.err_addr =
- kcalloc(adev->umc.retire_unit,
- sizeof(struct eeprom_table_record), GFP_KERNEL);
+ kzalloc_objs(struct eeprom_table_record,
+ adev->umc.retire_unit, GFP_KERNEL);
if (!err_data.err_addr) {
dev_warn(adev->dev, "Failed to alloc UMC error address record in mca2pa conversion!\n");
return -ENOMEM;
@@ -3375,7 +3375,7 @@ static int amdgpu_ras_load_bad_pages(struct amdgpu_device *adev)
if (control->ras_num_recs == 0 || amdgpu_bad_page_threshold == 0)
return 0;
- bps = kcalloc(control->ras_num_recs, sizeof(*bps), GFP_KERNEL);
+ bps = kzalloc_objs(*bps, control->ras_num_recs, GFP_KERNEL);
if (!bps)
return -ENOMEM;
@@ -3863,7 +3863,7 @@ int amdgpu_ras_recovery_init(struct amdgpu_device *adev, bool init_bp_info)
return 0;
data = &con->eh_data;
- *data = kzalloc(sizeof(**data), GFP_KERNEL);
+ *data = kzalloc_obj(**data, GFP_KERNEL);
if (!*data) {
ret = -ENOMEM;
goto out;
@@ -4499,7 +4499,7 @@ int amdgpu_ras_block_late_init(struct amdgpu_device *adev,
/* Those are the cached values at init.
*/
- query_info = kzalloc(sizeof(*query_info), GFP_KERNEL);
+ query_info = kzalloc_obj(*query_info, GFP_KERNEL);
if (!query_info)
return -ENOMEM;
memcpy(&query_info->head, ras_block, sizeof(struct ras_common_if));
@@ -5188,7 +5188,7 @@ int amdgpu_ras_register_ras_block(struct amdgpu_device *adev,
if (!adev || !ras_block_obj)
return -EINVAL;
- ras_node = kzalloc(sizeof(*ras_node), GFP_KERNEL);
+ ras_node = kzalloc_obj(*ras_node, GFP_KERNEL);
if (!ras_node)
return -ENOMEM;
@@ -5389,7 +5389,7 @@ static struct ras_err_node *amdgpu_ras_error_node_new(void)
{
struct ras_err_node *err_node;
- err_node = kvzalloc(sizeof(*err_node), GFP_KERNEL);
+ err_node = kvzalloc_obj(*err_node, GFP_KERNEL);
if (!err_node)
return NULL;
@@ -5682,7 +5682,7 @@ int amdgpu_ras_add_critical_region(struct amdgpu_device *adev,
/* Record new critical amdgpu bo */
list_for_each_entry(block, &vres->blocks, link) {
- region = kzalloc(sizeof(*region), GFP_KERNEL);
+ region = kzalloc_obj(*region, GFP_KERNEL);
if (!region) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c
index 28c4ad62f50e..d3413d1b9fb0 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c
@@ -276,7 +276,7 @@ struct amdgpu_reset_domain *amdgpu_reset_create_reset_domain(enum amdgpu_reset_d
{
struct amdgpu_reset_domain *reset_domain;
- reset_domain = kvzalloc(sizeof(struct amdgpu_reset_domain), GFP_KERNEL);
+ reset_domain = kvzalloc_obj(struct amdgpu_reset_domain, GFP_KERNEL);
if (!reset_domain) {
DRM_ERROR("Failed to allocate amdgpu_reset_domain!");
return NULL;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
index 129ad5138653..ac71b2d7e139 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
@@ -507,13 +507,13 @@ static ssize_t amdgpu_ras_cper_debugfs_read(struct file *f, char __user *buf,
const uint8_t ring_header_size = 12;
struct amdgpu_ring *ring = file_inode(f)->i_private;
struct ras_cmd_cper_snapshot_req *snapshot_req __free(kfree) =
- kzalloc(sizeof(struct ras_cmd_cper_snapshot_req), GFP_KERNEL);
+ kzalloc_obj(struct ras_cmd_cper_snapshot_req, GFP_KERNEL);
struct ras_cmd_cper_snapshot_rsp *snapshot_rsp __free(kfree) =
- kzalloc(sizeof(struct ras_cmd_cper_snapshot_rsp), GFP_KERNEL);
+ kzalloc_obj(struct ras_cmd_cper_snapshot_rsp, GFP_KERNEL);
struct ras_cmd_cper_record_req *record_req __free(kfree) =
- kzalloc(sizeof(struct ras_cmd_cper_record_req), GFP_KERNEL);
+ kzalloc_obj(struct ras_cmd_cper_record_req, GFP_KERNEL);
struct ras_cmd_cper_record_rsp *record_rsp __free(kfree) =
- kzalloc(sizeof(struct ras_cmd_cper_record_rsp), GFP_KERNEL);
+ kzalloc_obj(struct ras_cmd_cper_record_rsp, GFP_KERNEL);
uint8_t *ring_header __free(kfree) =
kzalloc(ring_header_size, GFP_KERNEL);
uint32_t total_cper_num;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c
index 7e7d6c3865bc..7ab8c2ff220a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c
@@ -153,7 +153,8 @@ int amdgpu_ring_mux_init(struct amdgpu_ring_mux *mux, struct amdgpu_ring *ring,
mux->real_ring = ring;
mux->num_ring_entries = 0;
- mux->ring_entry = kcalloc(entry_size, sizeof(struct amdgpu_mux_entry), GFP_KERNEL);
+ mux->ring_entry = kzalloc_objs(struct amdgpu_mux_entry, entry_size,
+ GFP_KERNEL);
if (!mux->ring_entry)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index 15d561e3d87f..dd412186c4f0 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -1122,7 +1122,7 @@ int amdgpu_ttm_mmio_remap_alloc_sgt(struct amdgpu_device *adev,
phys = adev->rmmio_remap.bus_addr + cur.start;
/* Build a single-entry sg_table mapped as I/O (no struct page backing). */
- *sgt = kzalloc(sizeof(**sgt), GFP_KERNEL);
+ *sgt = kzalloc_obj(**sgt, GFP_KERNEL);
if (!*sgt)
return -ENOMEM;
r = sg_alloc_table(*sgt, 1, GFP_KERNEL);
@@ -1172,7 +1172,7 @@ static struct ttm_tt *amdgpu_ttm_tt_create(struct ttm_buffer_object *bo,
struct amdgpu_ttm_tt *gtt;
enum ttm_caching caching;
- gtt = kzalloc(sizeof(struct amdgpu_ttm_tt), GFP_KERNEL);
+ gtt = kzalloc_obj(struct amdgpu_ttm_tt, GFP_KERNEL);
if (!gtt)
return NULL;
@@ -1213,7 +1213,7 @@ static int amdgpu_ttm_tt_populate(struct ttm_device *bdev,
/* user pages are bound by amdgpu_ttm_tt_pin_userptr() */
if (gtt->userptr) {
- ttm->sg = kzalloc(sizeof(struct sg_table), GFP_KERNEL);
+ ttm->sg = kzalloc_obj(struct sg_table, GFP_KERNEL);
if (!ttm->sg)
return -ENOMEM;
return 0;
@@ -1880,9 +1880,9 @@ static int amdgpu_ttm_pools_init(struct amdgpu_device *adev)
if (!adev->gmc.is_app_apu || !adev->gmc.num_mem_partitions)
return 0;
- adev->mman.ttm_pools = kcalloc(adev->gmc.num_mem_partitions,
- sizeof(*adev->mman.ttm_pools),
- GFP_KERNEL);
+ adev->mman.ttm_pools = kzalloc_objs(*adev->mman.ttm_pools,
+ adev->gmc.num_mem_partitions,
+ GFP_KERNEL);
if (!adev->mman.ttm_pools)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c
index 3f0b0e9af4f3..8da772ec4b40 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c
@@ -58,8 +58,8 @@ int amdgpu_umc_page_retirement_mca(struct amdgpu_device *adev,
return ret;
err_data.err_addr =
- kcalloc(adev->umc.max_ras_err_cnt_per_query,
- sizeof(struct eeprom_table_record), GFP_KERNEL);
+ kzalloc_objs(struct eeprom_table_record,
+ adev->umc.max_ras_err_cnt_per_query, GFP_KERNEL);
if (!err_data.err_addr) {
dev_warn(adev->dev,
"Failed to alloc memory for umc error record in MCA notifier!\n");
@@ -105,8 +105,8 @@ void amdgpu_umc_handle_bad_pages(struct amdgpu_device *adev,
amdgpu_ras_get_error_query_mode(adev, &error_query_mode);
err_data->err_addr =
- kcalloc(adev->umc.max_ras_err_cnt_per_query,
- sizeof(struct eeprom_table_record), GFP_KERNEL);
+ kzalloc_objs(struct eeprom_table_record,
+ adev->umc.max_ras_err_cnt_per_query, GFP_KERNEL);
/* still call query_ras_error_address to clear error status
* even NOMEM error is encountered
@@ -131,8 +131,9 @@ void amdgpu_umc_handle_bad_pages(struct amdgpu_device *adev,
adev->umc.ras->ras_block.hw_ops->query_ras_error_address &&
adev->umc.max_ras_err_cnt_per_query) {
err_data->err_addr =
- kcalloc(adev->umc.max_ras_err_cnt_per_query,
- sizeof(struct eeprom_table_record), GFP_KERNEL);
+ kzalloc_objs(struct eeprom_table_record,
+ adev->umc.max_ras_err_cnt_per_query,
+ GFP_KERNEL);
/* still call query_ras_error_address to clear error status
* even NOMEM error is encountered
@@ -161,8 +162,9 @@ void amdgpu_umc_handle_bad_pages(struct amdgpu_device *adev,
adev->umc.ras->ecc_info_query_ras_error_address &&
adev->umc.max_ras_err_cnt_per_query) {
err_data->err_addr =
- kcalloc(adev->umc.max_ras_err_cnt_per_query,
- sizeof(struct eeprom_table_record), GFP_KERNEL);
+ kzalloc_objs(struct eeprom_table_record,
+ adev->umc.max_ras_err_cnt_per_query,
+ GFP_KERNEL);
/* still call query_ras_error_address to clear error status
* even NOMEM error is encountered
@@ -551,8 +553,8 @@ int amdgpu_umc_lookup_bad_pages_in_a_row(struct amdgpu_device *adev,
int i, ret;
struct ras_err_data err_data;
- err_data.err_addr = kcalloc(adev->umc.retire_unit,
- sizeof(struct eeprom_table_record), GFP_KERNEL);
+ err_data.err_addr = kzalloc_objs(struct eeprom_table_record,
+ adev->umc.retire_unit, GFP_KERNEL);
if (!err_data.err_addr) {
dev_warn(adev->dev, "Failed to alloc memory in bad page lookup!\n");
return 0;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
index b700c2b91465..97352c56e7a2 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
@@ -217,7 +217,7 @@ static int amdgpu_userq_buffer_va_list_add(struct amdgpu_usermode_queue *queue,
struct amdgpu_userq_va_cursor *va_cursor;
struct userq_va_list;
- va_cursor = kzalloc(sizeof(*va_cursor), GFP_KERNEL);
+ va_cursor = kzalloc_obj(*va_cursor, GFP_KERNEL);
if (!va_cursor)
return -ENOMEM;
@@ -781,7 +781,7 @@ amdgpu_userq_create(struct drm_file *filp, union drm_amdgpu_userq *args)
goto unlock;
}
- queue = kzalloc(sizeof(struct amdgpu_usermode_queue), GFP_KERNEL);
+ queue = kzalloc_obj(struct amdgpu_usermode_queue, GFP_KERNEL);
if (!queue) {
drm_file_err(uq_mgr->file, "Failed to allocate memory for queue\n");
r = -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
index 212056d4ddf0..38693bb7f8d4 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
@@ -82,7 +82,7 @@ int amdgpu_userq_fence_driver_alloc(struct amdgpu_device *adev,
unsigned long flags;
int r;
- fence_drv = kzalloc(sizeof(*fence_drv), GFP_KERNEL);
+ fence_drv = kzalloc_obj(*fence_drv, GFP_KERNEL);
if (!fence_drv)
return -ENOMEM;
@@ -266,9 +266,8 @@ static int amdgpu_userq_fence_create(struct amdgpu_usermode_queue *userq,
count++;
userq_fence->fence_drv_array =
- kvmalloc_array(count,
- sizeof(struct amdgpu_userq_fence_driver *),
- GFP_ATOMIC);
+ kvmalloc_objs(struct amdgpu_userq_fence_driver *, count,
+ GFP_ATOMIC);
if (userq_fence->fence_drv_array) {
xa_for_each(&userq->fence_drv_xa, index, stored_fence_drv) {
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
index f01f38509108..50b75c562281 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
@@ -294,15 +294,15 @@ static int amdgpu_virt_init_ras_err_handler_data(struct amdgpu_device *adev)
void *bps = NULL;
struct amdgpu_bo **bps_bo = NULL;
- *data = kmalloc(sizeof(struct amdgpu_virt_ras_err_handler_data), GFP_KERNEL);
+ *data = kmalloc_obj(struct amdgpu_virt_ras_err_handler_data, GFP_KERNEL);
if (!*data)
goto data_failure;
- bps = kmalloc_array(align_space, sizeof(*(*data)->bps), GFP_KERNEL);
+ bps = kmalloc_objs(*(*data)->bps, align_space, GFP_KERNEL);
if (!bps)
goto bps_failure;
- bps_bo = kmalloc_array(align_space, sizeof(*(*data)->bps_bo), GFP_KERNEL);
+ bps_bo = kmalloc_objs(*(*data)->bps_bo, align_space, GFP_KERNEL);
if (!bps_bo)
goto bps_bo_failure;
@@ -966,7 +966,8 @@ int amdgpu_virt_init_critical_region(struct amdgpu_device *adev)
}
/* Allocate for init_data_hdr */
- init_data_hdr = kzalloc(sizeof(struct amd_sriov_msg_init_data_header), GFP_KERNEL);
+ init_data_hdr = kzalloc_obj(struct amd_sriov_msg_init_data_header,
+ GFP_KERNEL);
if (!init_data_hdr)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c
index e548dc9708a2..8931279cdea6 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c
@@ -411,7 +411,7 @@ static struct drm_plane *amdgpu_vkms_plane_init(struct drm_device *dev,
struct drm_plane *plane;
int ret;
- plane = kzalloc(sizeof(*plane), GFP_KERNEL);
+ plane = kzalloc_obj(*plane, GFP_KERNEL);
if (!plane)
return ERR_PTR(-ENOMEM);
@@ -499,8 +499,9 @@ static int amdgpu_vkms_sw_init(struct amdgpu_ip_block *ip_block)
int r, i;
struct amdgpu_device *adev = ip_block->adev;
- adev->amdgpu_vkms_output = kcalloc(adev->mode_info.num_crtc,
- sizeof(struct amdgpu_vkms_output), GFP_KERNEL);
+ adev->amdgpu_vkms_output = kzalloc_objs(struct amdgpu_vkms_output,
+ adev->mode_info.num_crtc,
+ GFP_KERNEL);
if (!adev->amdgpu_vkms_output)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index 9a1db36e73b1..d946c39c4acb 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -1118,7 +1118,7 @@ int amdgpu_vm_update_range(struct amdgpu_device *adev, struct amdgpu_vm *vm,
if (!drm_dev_enter(adev_to_drm(adev), &idx))
return -ENODEV;
- tlb_cb = kmalloc(sizeof(*tlb_cb), GFP_KERNEL);
+ tlb_cb = kmalloc_obj(*tlb_cb, GFP_KERNEL);
if (!tlb_cb) {
drm_dev_exit(idx);
return -ENOMEM;
@@ -1471,7 +1471,7 @@ static void amdgpu_vm_add_prt_cb(struct amdgpu_device *adev,
if (!adev->gmc.gmc_funcs->set_prt)
return;
- cb = kmalloc(sizeof(struct amdgpu_prt_cb), GFP_KERNEL);
+ cb = kmalloc_obj(struct amdgpu_prt_cb, GFP_KERNEL);
if (!cb) {
/* Last resort when we are OOM */
if (fence)
@@ -1737,7 +1737,7 @@ struct amdgpu_bo_va *amdgpu_vm_bo_add(struct amdgpu_device *adev,
amdgpu_vm_assert_locked(vm);
- bo_va = kzalloc(sizeof(struct amdgpu_bo_va), GFP_KERNEL);
+ bo_va = kzalloc_obj(struct amdgpu_bo_va, GFP_KERNEL);
if (bo_va == NULL) {
return NULL;
}
@@ -1866,7 +1866,7 @@ int amdgpu_vm_bo_map(struct amdgpu_device *adev,
return -EINVAL;
}
- mapping = kmalloc(sizeof(*mapping), GFP_KERNEL);
+ mapping = kmalloc_obj(*mapping, GFP_KERNEL);
if (!mapping)
return -ENOMEM;
@@ -1913,7 +1913,7 @@ int amdgpu_vm_bo_replace_map(struct amdgpu_device *adev,
return r;
/* Allocate all the needed memory */
- mapping = kmalloc(sizeof(*mapping), GFP_KERNEL);
+ mapping = kmalloc_obj(*mapping, GFP_KERNEL);
if (!mapping)
return -ENOMEM;
@@ -2033,12 +2033,12 @@ int amdgpu_vm_bo_clear_mappings(struct amdgpu_device *adev,
eaddr = saddr + (size - 1) / AMDGPU_GPU_PAGE_SIZE;
/* Allocate all the needed memory */
- before = kzalloc(sizeof(*before), GFP_KERNEL);
+ before = kzalloc_obj(*before, GFP_KERNEL);
if (!before)
return -ENOMEM;
INIT_LIST_HEAD(&before->list);
- after = kzalloc(sizeof(*after), GFP_KERNEL);
+ after = kzalloc_obj(*after, GFP_KERNEL);
if (!after) {
kfree(before);
return -ENOMEM;
@@ -2533,7 +2533,7 @@ amdgpu_vm_get_task_info_pasid(struct amdgpu_device *adev, u32 pasid)
static int amdgpu_vm_create_task_info(struct amdgpu_vm *vm)
{
- vm->task_info = kzalloc(sizeof(struct amdgpu_task_info), GFP_KERNEL);
+ vm->task_info = kzalloc_obj(struct amdgpu_task_info, GFP_KERNEL);
if (!vm->task_info)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_tlb_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_tlb_fence.c
index 5d26797356a3..b3e47efeef62 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_tlb_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_tlb_fence.c
@@ -80,7 +80,7 @@ void amdgpu_vm_tlb_fence_create(struct amdgpu_device *adev, struct amdgpu_vm *vm
{
struct amdgpu_tlb_fence *f;
- f = kmalloc(sizeof(*f), GFP_KERNEL);
+ f = kmalloc_obj(*f, GFP_KERNEL);
if (!f) {
/*
* We can't fail since the PDEs and PTEs are already updated, so
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
index 9d934c07fa6b..6252246dcd68 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
@@ -340,7 +340,7 @@ int amdgpu_vram_mgr_reserve_range(struct amdgpu_vram_mgr *mgr,
{
struct amdgpu_vram_reservation *rsv;
- rsv = kzalloc(sizeof(*rsv), GFP_KERNEL);
+ rsv = kzalloc_obj(*rsv, GFP_KERNEL);
if (!rsv)
return -ENOMEM;
@@ -478,7 +478,7 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_manager *man,
tbo->page_alignment);
}
- vres = kzalloc(sizeof(*vres), GFP_KERNEL);
+ vres = kzalloc_obj(*vres, GFP_KERNEL);
if (!vres)
return -ENOMEM;
@@ -684,7 +684,7 @@ int amdgpu_vram_mgr_alloc_sgt(struct amdgpu_device *adev,
int num_entries = 0;
int i, r;
- *sgt = kmalloc(sizeof(**sgt), GFP_KERNEL);
+ *sgt = kmalloc_obj(**sgt, GFP_KERNEL);
if (!*sgt)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c
index 73250ab45f20..df5b70c9f911 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c
@@ -334,7 +334,7 @@ int amdgpu_xcp_mgr_init(struct amdgpu_device *adev, int init_mode,
if (!xcp_funcs || !xcp_funcs->get_ip_details)
return -EINVAL;
- xcp_mgr = kzalloc(sizeof(*xcp_mgr), GFP_KERNEL);
+ xcp_mgr = kzalloc_obj(*xcp_mgr, GFP_KERNEL);
if (!xcp_mgr)
return -ENOMEM;
@@ -907,7 +907,7 @@ static void amdgpu_xcp_cfg_sysfs_init(struct amdgpu_device *adev)
if (!adev->xcp_mgr)
return;
- xcp_cfg = kzalloc(sizeof(*xcp_cfg), GFP_KERNEL);
+ xcp_cfg = kzalloc_obj(*xcp_cfg, GFP_KERNEL);
if (!xcp_cfg)
return;
xcp_cfg->xcp_mgr = adev->xcp_mgr;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
index 0ca6fa40a87c..fe06ab35ba76 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
@@ -690,7 +690,7 @@ struct amdgpu_hive_info *amdgpu_get_xgmi_hive(struct amdgpu_device *adev)
goto pro_end;
}
- hive = kzalloc(sizeof(*hive), GFP_KERNEL);
+ hive = kzalloc_obj(*hive, GFP_KERNEL);
if (!hive) {
dev_err(adev->dev, "XGMI: allocation failed\n");
ret = -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/atom.c b/drivers/gpu/drm/amd/amdgpu/atom.c
index 371ee82a8912..51fa402e8b64 100644
--- a/drivers/gpu/drm/amd/amdgpu/atom.c
+++ b/drivers/gpu/drm/amd/amdgpu/atom.c
@@ -1524,7 +1524,7 @@ struct atom_context *amdgpu_atom_parse(struct card_info *card, void *bios)
{
int base;
struct atom_context *ctx =
- kzalloc(sizeof(struct atom_context), GFP_KERNEL);
+ kzalloc_obj(struct atom_context, GFP_KERNEL);
struct _ATOM_ROM_HEADER *atom_rom_header;
struct _ATOM_MASTER_DATA_TABLE *master_table;
struct _ATOM_FIRMWARE_INFO *atom_fw_info;
diff --git a/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c b/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c
index 34644cab6cff..8e0841d3ca75 100644
--- a/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c
+++ b/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c
@@ -191,7 +191,7 @@ void amdgpu_atombios_encoder_init_backlight(struct amdgpu_encoder *amdgpu_encode
goto register_acpi_backlight;
}
- pdata = kmalloc(sizeof(struct amdgpu_backlight_privdata), GFP_KERNEL);
+ pdata = kmalloc_obj(struct amdgpu_backlight_privdata, GFP_KERNEL);
if (!pdata) {
DRM_ERROR("Memory allocation failed\n");
goto error;
@@ -1980,7 +1980,7 @@ amdgpu_atombios_encoder_get_lcd_info(struct amdgpu_encoder *encoder)
lvds_info =
(union lvds_info *)(mode_info->atom_context->bios + data_offset);
lvds =
- kzalloc(sizeof(struct amdgpu_encoder_atom_dig), GFP_KERNEL);
+ kzalloc_obj(struct amdgpu_encoder_atom_dig, GFP_KERNEL);
if (!lvds)
return NULL;
@@ -2107,7 +2107,8 @@ struct amdgpu_encoder_atom_dig *
amdgpu_atombios_encoder_get_dig_info(struct amdgpu_encoder *amdgpu_encoder)
{
int encoder_enum = (amdgpu_encoder->encoder_enum & ENUM_ID_MASK) >> ENUM_ID_SHIFT;
- struct amdgpu_encoder_atom_dig *dig = kzalloc(sizeof(struct amdgpu_encoder_atom_dig), GFP_KERNEL);
+ struct amdgpu_encoder_atom_dig *dig = kzalloc_obj(struct amdgpu_encoder_atom_dig,
+ GFP_KERNEL);
if (!dig)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
index 61302204e9b4..de1ccfe584d7 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
@@ -1775,7 +1775,8 @@ static int dce_v10_0_afmt_init(struct amdgpu_device *adev)
/* DCE10 has audio blocks tied to DIG encoders */
for (i = 0; i < adev->mode_info.num_dig; i++) {
- adev->mode_info.afmt[i] = kzalloc(sizeof(struct amdgpu_afmt), GFP_KERNEL);
+ adev->mode_info.afmt[i] = kzalloc_obj(struct amdgpu_afmt,
+ GFP_KERNEL);
if (adev->mode_info.afmt[i]) {
adev->mode_info.afmt[i]->offset = dig_offsets[i];
adev->mode_info.afmt[i]->id = i;
@@ -3516,7 +3517,7 @@ static void dce_v10_0_encoder_add(struct amdgpu_device *adev,
}
/* add a new one */
- amdgpu_encoder = kzalloc(sizeof(struct amdgpu_encoder), GFP_KERNEL);
+ amdgpu_encoder = kzalloc_obj(struct amdgpu_encoder, GFP_KERNEL);
if (!amdgpu_encoder)
return;
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
index 8f4b4c2e36b9..723a71c8bd38 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
@@ -1818,7 +1818,8 @@ static int dce_v6_0_afmt_init(struct amdgpu_device *adev)
/* DCE6 has audio blocks tied to DIG encoders */
for (i = 0; i < adev->mode_info.num_dig; i++) {
- adev->mode_info.afmt[i] = kzalloc(sizeof(struct amdgpu_afmt), GFP_KERNEL);
+ adev->mode_info.afmt[i] = kzalloc_obj(struct amdgpu_afmt,
+ GFP_KERNEL);
if (adev->mode_info.afmt[i]) {
adev->mode_info.afmt[i]->offset = dig_offsets[i];
adev->mode_info.afmt[i]->id = i;
@@ -3413,7 +3414,7 @@ static void dce_v6_0_encoder_add(struct amdgpu_device *adev,
}
/* add a new one */
- amdgpu_encoder = kzalloc(sizeof(struct amdgpu_encoder), GFP_KERNEL);
+ amdgpu_encoder = kzalloc_obj(struct amdgpu_encoder, GFP_KERNEL);
if (!amdgpu_encoder)
return;
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
index 9d1853c41fcd..0a4a8f0084b1 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
@@ -1722,7 +1722,8 @@ static int dce_v8_0_afmt_init(struct amdgpu_device *adev)
/* DCE8 has audio blocks tied to DIG encoders */
for (i = 0; i < adev->mode_info.num_dig; i++) {
- adev->mode_info.afmt[i] = kzalloc(sizeof(struct amdgpu_afmt), GFP_KERNEL);
+ adev->mode_info.afmt[i] = kzalloc_obj(struct amdgpu_afmt,
+ GFP_KERNEL);
if (adev->mode_info.afmt[i]) {
adev->mode_info.afmt[i]->offset = dig_offsets[i];
adev->mode_info.afmt[i]->id = i;
@@ -3424,7 +3425,7 @@ static void dce_v8_0_encoder_add(struct amdgpu_device *adev,
}
/* add a new one */
- amdgpu_encoder = kzalloc(sizeof(struct amdgpu_encoder), GFP_KERNEL);
+ amdgpu_encoder = kzalloc_obj(struct amdgpu_encoder, GFP_KERNEL);
if (!amdgpu_encoder)
return;
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
index b2e87d3aa203..f4f2929c6823 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
@@ -1064,8 +1064,8 @@ static int gmc_v7_0_sw_init(struct amdgpu_ip_block *ip_block)
adev->vm_manager.vram_base_offset = 0;
}
- adev->gmc.vm_fault_info = kmalloc(sizeof(struct kfd_vm_fault_info),
- GFP_KERNEL);
+ adev->gmc.vm_fault_info = kmalloc_obj(struct kfd_vm_fault_info,
+ GFP_KERNEL);
if (!adev->gmc.vm_fault_info)
return -ENOMEM;
atomic_set_release(&adev->gmc.vm_fault_info_updated, 0);
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
index 1d5bd90ac57f..fe61f05af876 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
@@ -1179,8 +1179,8 @@ static int gmc_v8_0_sw_init(struct amdgpu_ip_block *ip_block)
adev->vm_manager.vram_base_offset = 0;
}
- adev->gmc.vm_fault_info = kmalloc(sizeof(struct kfd_vm_fault_info),
- GFP_KERNEL);
+ adev->gmc.vm_fault_info = kmalloc_obj(struct kfd_vm_fault_info,
+ GFP_KERNEL);
if (!adev->gmc.vm_fault_info)
return -ENOMEM;
atomic_set_release(&adev->gmc.vm_fault_info_updated, 0);
diff --git a/drivers/gpu/drm/amd/amdgpu/isp_v4_1_0.c b/drivers/gpu/drm/amd/amdgpu/isp_v4_1_0.c
index 0027a639c7e6..f5785d9c6212 100644
--- a/drivers/gpu/drm/amd/amdgpu/isp_v4_1_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/isp_v4_1_0.c
@@ -50,7 +50,7 @@ static int isp_v4_1_0_hw_init(struct amdgpu_isp *isp)
isp_base = adev->rmmio_base;
- isp->isp_cell = kcalloc(3, sizeof(struct mfd_cell), GFP_KERNEL);
+ isp->isp_cell = kzalloc_objs(struct mfd_cell, 3, GFP_KERNEL);
if (!isp->isp_cell) {
r = -ENOMEM;
drm_err(&adev->ddev,
@@ -59,8 +59,7 @@ static int isp_v4_1_0_hw_init(struct amdgpu_isp *isp)
}
num_res = MAX_ISP410_MEM_RES + MAX_ISP410_INT_SRC;
- isp->isp_res = kcalloc(num_res, sizeof(struct resource),
- GFP_KERNEL);
+ isp->isp_res = kzalloc_objs(struct resource, num_res, GFP_KERNEL);
if (!isp->isp_res) {
r = -ENOMEM;
drm_err(&adev->ddev,
@@ -68,7 +67,7 @@ static int isp_v4_1_0_hw_init(struct amdgpu_isp *isp)
goto failure;
}
- isp->isp_pdata = kzalloc(sizeof(*isp->isp_pdata), GFP_KERNEL);
+ isp->isp_pdata = kzalloc_obj(*isp->isp_pdata, GFP_KERNEL);
if (!isp->isp_pdata) {
r = -ENOMEM;
drm_err(&adev->ddev,
@@ -107,7 +106,7 @@ static int isp_v4_1_0_hw_init(struct amdgpu_isp *isp)
isp->isp_cell[0].pdata_size = sizeof(struct isp_platform_data);
/* initialize isp i2c platform data */
- isp->isp_i2c_res = kcalloc(1, sizeof(struct resource), GFP_KERNEL);
+ isp->isp_i2c_res = kzalloc_objs(struct resource, 1, GFP_KERNEL);
if (!isp->isp_i2c_res) {
r = -ENOMEM;
drm_err(&adev->ddev,
@@ -127,7 +126,7 @@ static int isp_v4_1_0_hw_init(struct amdgpu_isp *isp)
isp->isp_cell[1].pdata_size = sizeof(struct isp_platform_data);
/* initialize isp gpiochip platform data */
- isp->isp_gpio_res = kcalloc(1, sizeof(struct resource), GFP_KERNEL);
+ isp->isp_gpio_res = kzalloc_objs(struct resource, 1, GFP_KERNEL);
if (!isp->isp_gpio_res) {
r = -ENOMEM;
drm_err(&adev->ddev,
diff --git a/drivers/gpu/drm/amd/amdgpu/isp_v4_1_1.c b/drivers/gpu/drm/amd/amdgpu/isp_v4_1_1.c
index 0002bcc6c4ec..e757087d51d2 100644
--- a/drivers/gpu/drm/amd/amdgpu/isp_v4_1_1.c
+++ b/drivers/gpu/drm/amd/amdgpu/isp_v4_1_1.c
@@ -259,7 +259,7 @@ static int isp_v4_1_1_hw_init(struct amdgpu_isp *isp)
return -EINVAL;
}
- isp->isp_cell = kcalloc(3, sizeof(struct mfd_cell), GFP_KERNEL);
+ isp->isp_cell = kzalloc_objs(struct mfd_cell, 3, GFP_KERNEL);
if (!isp->isp_cell) {
r = -ENOMEM;
drm_err(&adev->ddev, "isp mfd cell alloc failed (%d)\n", r);
@@ -268,15 +268,14 @@ static int isp_v4_1_1_hw_init(struct amdgpu_isp *isp)
num_res = MAX_ISP411_MEM_RES + MAX_ISP411_INT_SRC;
- isp->isp_res = kcalloc(num_res, sizeof(struct resource),
- GFP_KERNEL);
+ isp->isp_res = kzalloc_objs(struct resource, num_res, GFP_KERNEL);
if (!isp->isp_res) {
r = -ENOMEM;
drm_err(&adev->ddev, "isp mfd resource alloc failed (%d)\n", r);
goto failure;
}
- isp->isp_pdata = kzalloc(sizeof(*isp->isp_pdata), GFP_KERNEL);
+ isp->isp_pdata = kzalloc_obj(*isp->isp_pdata, GFP_KERNEL);
if (!isp->isp_pdata) {
r = -ENOMEM;
drm_err(&adev->ddev, "isp platform data alloc failed (%d)\n", r);
@@ -318,7 +317,7 @@ static int isp_v4_1_1_hw_init(struct amdgpu_isp *isp)
isp->isp_cell[0].pdata_size = sizeof(struct isp_platform_data);
/* initialize isp i2c platform data */
- isp->isp_i2c_res = kcalloc(1, sizeof(struct resource), GFP_KERNEL);
+ isp->isp_i2c_res = kzalloc_objs(struct resource, 1, GFP_KERNEL);
if (!isp->isp_i2c_res) {
r = -ENOMEM;
drm_err(&adev->ddev, "isp mfd res alloc failed (%d)\n", r);
@@ -337,7 +336,7 @@ static int isp_v4_1_1_hw_init(struct amdgpu_isp *isp)
isp->isp_cell[1].pdata_size = sizeof(struct isp_platform_data);
/* initialize isp gpiochip platform data */
- isp->isp_gpio_res = kcalloc(1, sizeof(struct resource), GFP_KERNEL);
+ isp->isp_gpio_res = kzalloc_objs(struct resource, 1, GFP_KERNEL);
if (!isp->isp_gpio_res) {
r = -ENOMEM;
drm_err(&adev->ddev, "isp gpio resource alloc failed (%d)\n", r);
diff --git a/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c b/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c
index 9508709abd49..9e9a8e354c06 100644
--- a/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c
+++ b/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c
@@ -283,7 +283,7 @@ static int mes_userq_mqd_create(struct amdgpu_usermode_queue *queue,
int r;
/* Structure to initialize MQD for userqueue using generic MQD init function */
- userq_props = kzalloc(sizeof(struct amdgpu_mqd_prop), GFP_KERNEL);
+ userq_props = kzalloc_obj(struct amdgpu_mqd_prop, GFP_KERNEL);
if (!userq_props) {
DRM_ERROR("Failed to allocate memory for userq_props\n");
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/sienna_cichlid.c b/drivers/gpu/drm/amd/amdgpu/sienna_cichlid.c
index 2594467bdd87..4de461fa9cdd 100644
--- a/drivers/gpu/drm/amd/amdgpu/sienna_cichlid.c
+++ b/drivers/gpu/drm/amd/amdgpu/sienna_cichlid.c
@@ -273,7 +273,7 @@ int sienna_cichlid_reset_init(struct amdgpu_device *adev)
{
struct amdgpu_reset_control *reset_ctl;
- reset_ctl = kzalloc(sizeof(*reset_ctl), GFP_KERNEL);
+ reset_ctl = kzalloc_obj(*reset_ctl, GFP_KERNEL);
if (!reset_ctl)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/smu_v13_0_10.c b/drivers/gpu/drm/amd/amdgpu/smu_v13_0_10.c
index 70569ea906bc..e91e70844e49 100644
--- a/drivers/gpu/drm/amd/amdgpu/smu_v13_0_10.c
+++ b/drivers/gpu/drm/amd/amdgpu/smu_v13_0_10.c
@@ -270,7 +270,7 @@ int smu_v13_0_10_reset_init(struct amdgpu_device *adev)
{
struct amdgpu_reset_control *reset_ctl;
- reset_ctl = kzalloc(sizeof(*reset_ctl), GFP_KERNEL);
+ reset_ctl = kzalloc_obj(*reset_ctl, GFP_KERNEL);
if (!reset_ctl)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdgpu/umc_v12_0.c b/drivers/gpu/drm/amd/amdgpu/umc_v12_0.c
index 0f5b1719fda5..25af2707b5ca 100644
--- a/drivers/gpu/drm/amd/amdgpu/umc_v12_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/umc_v12_0.c
@@ -567,7 +567,7 @@ static int umc_v12_0_update_ecc_status(struct amdgpu_device *adev,
if (ret)
return ret;
- ecc_err = kzalloc(sizeof(*ecc_err), GFP_KERNEL);
+ ecc_err = kzalloc_obj(*ecc_err, GFP_KERNEL);
if (!ecc_err)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
index 732ad1224a61..f8c9ccbc4851 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
@@ -780,8 +780,8 @@ static int kfd_ioctl_get_process_apertures_new(struct file *filp,
* nodes, but not more than args->num_of_nodes as that is
* the amount of memory allocated by user
*/
- pa = kcalloc(args->num_of_nodes, sizeof(struct kfd_process_device_apertures),
- GFP_KERNEL);
+ pa = kzalloc_objs(struct kfd_process_device_apertures,
+ args->num_of_nodes, GFP_KERNEL);
if (!pa)
return -ENOMEM;
@@ -2224,7 +2224,8 @@ static int criu_restore_devices(struct kfd_process *p,
if (*priv_offset + (args->num_devices * sizeof(*device_privs)) > max_priv_data_size)
return -EINVAL;
- device_buckets = kmalloc_array(args->num_devices, sizeof(*device_buckets), GFP_KERNEL);
+ device_buckets = kmalloc_objs(*device_buckets, args->num_devices,
+ GFP_KERNEL);
if (!device_buckets)
return -ENOMEM;
@@ -2467,7 +2468,7 @@ static int criu_restore_bos(struct kfd_process *p,
/* Prevent MMU notifications until stage-4 IOCTL (CRIU_RESUME) is received */
amdgpu_amdkfd_block_mmu_notifications(p->kgd_process_info);
- bo_buckets = kvmalloc_array(args->num_bos, sizeof(*bo_buckets), GFP_KERNEL);
+ bo_buckets = kvmalloc_objs(*bo_buckets, args->num_bos, GFP_KERNEL);
if (!bo_buckets)
return -ENOMEM;
@@ -2485,7 +2486,7 @@ static int criu_restore_bos(struct kfd_process *p,
goto exit;
}
- bo_privs = kvmalloc_array(args->num_bos, sizeof(*bo_privs), GFP_KERNEL);
+ bo_privs = kvmalloc_objs(*bo_privs, args->num_bos, GFP_KERNEL);
if (!bo_privs) {
ret = -ENOMEM;
goto exit;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c b/drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c
index 9bde2c64540f..46ea876629bc 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c
@@ -146,7 +146,7 @@ void kfd_debugfs_add_process(struct kfd_process *p)
char name[MAX_DEBUGFS_FILENAME_LEN];
struct debugfs_proc_entry *entry;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
index 9a66ee661e57..d03c3398695b 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
@@ -478,7 +478,7 @@ struct kfd_dev *kgd2kfd_probe(struct amdgpu_device *adev, bool vf)
return NULL;
}
- kfd = kzalloc(sizeof(*kfd), GFP_KERNEL);
+ kfd = kzalloc_obj(*kfd, GFP_KERNEL);
if (!kfd)
return NULL;
@@ -864,7 +864,7 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd,
/* Allocate the KFD nodes */
for (i = 0, xcp_idx = 0; i < kfd->num_nodes; i++) {
- node = kzalloc(sizeof(struct kfd_node), GFP_KERNEL);
+ node = kzalloc_obj(struct kfd_node, GFP_KERNEL);
if (!node)
goto node_alloc_error;
@@ -1328,7 +1328,7 @@ int kfd_gtt_sa_allocate(struct kfd_node *node, unsigned int size,
if (size > kfd->gtt_sa_num_of_chunks * kfd->gtt_sa_chunk_size)
return -ENOMEM;
- *mem_obj = kzalloc(sizeof(struct kfd_mem_obj), GFP_KERNEL);
+ *mem_obj = kzalloc_obj(struct kfd_mem_obj, GFP_KERNEL);
if (!(*mem_obj))
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
index 804851632c4c..7707496761ea 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
@@ -1401,7 +1401,7 @@ static int register_process(struct device_queue_manager *dqm,
uint64_t pd_base;
int retval;
- n = kzalloc(sizeof(*n), GFP_KERNEL);
+ n = kzalloc_obj(*n, GFP_KERNEL);
if (!n)
return -ENOMEM;
@@ -2921,7 +2921,7 @@ struct device_queue_manager *device_queue_manager_init(struct kfd_node *dev)
pr_debug("Loading device queue manager\n");
- dqm = kzalloc(sizeof(*dqm), GFP_KERNEL);
+ dqm = kzalloc_obj(*dqm, GFP_KERNEL);
if (!dqm)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_events.c b/drivers/gpu/drm/amd/amdkfd/kfd_events.c
index 13416bff7763..950717576e20 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_events.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_events.c
@@ -67,7 +67,7 @@ static struct kfd_signal_page *allocate_signal_page(struct kfd_process *p)
void *backing_store;
struct kfd_signal_page *page;
- page = kzalloc(sizeof(*page), GFP_KERNEL);
+ page = kzalloc_obj(*page, GFP_KERNEL);
if (!page)
return NULL;
@@ -337,7 +337,7 @@ static int kfd_event_page_set(struct kfd_process *p, void *kernel_address,
return -EINVAL;
}
- page = kzalloc(sizeof(*page), GFP_KERNEL);
+ page = kzalloc_obj(*page, GFP_KERNEL);
if (!page)
return -ENOMEM;
@@ -405,7 +405,7 @@ int kfd_event_create(struct file *devkfd, struct kfd_process *p,
uint64_t *event_page_offset, uint32_t *event_slot_index)
{
int ret = 0;
- struct kfd_event *ev = kzalloc(sizeof(*ev), GFP_KERNEL);
+ struct kfd_event *ev = kzalloc_obj(*ev, GFP_KERNEL);
if (!ev)
return -ENOMEM;
@@ -458,11 +458,11 @@ int kfd_criu_restore_event(struct file *devkfd,
struct kfd_event *ev = NULL;
int ret = 0;
- ev_priv = kmalloc(sizeof(*ev_priv), GFP_KERNEL);
+ ev_priv = kmalloc_obj(*ev_priv, GFP_KERNEL);
if (!ev_priv)
return -ENOMEM;
- ev = kzalloc(sizeof(*ev), GFP_KERNEL);
+ ev = kzalloc_obj(*ev, GFP_KERNEL);
if (!ev) {
ret = -ENOMEM;
goto exit;
@@ -791,8 +791,8 @@ static struct kfd_event_waiter *alloc_event_waiters(uint32_t num_events)
struct kfd_event_waiter *event_waiters;
uint32_t i;
- event_waiters = kcalloc(num_events, sizeof(struct kfd_event_waiter),
- GFP_KERNEL);
+ event_waiters = kzalloc_objs(struct kfd_event_waiter, num_events,
+ GFP_KERNEL);
if (!event_waiters)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c
index d987ff7ccfc9..9e28dda09285 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c
@@ -309,7 +309,7 @@ struct kernel_queue *kernel_queue_init(struct kfd_node *dev,
{
struct kernel_queue *kq;
- kq = kzalloc(sizeof(*kq), GFP_KERNEL);
+ kq = kzalloc_obj(*kq, GFP_KERNEL);
if (!kq)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c
index d88d0de58edd..93f389ba8cc9 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c
@@ -51,7 +51,7 @@ struct kfd_mem_obj *allocate_hiq_mqd(struct mqd_manager *mm, struct queue_proper
struct kfd_mem_obj *mqd_mem_obj;
struct kfd_node *dev = mm->dev;
- mqd_mem_obj = kzalloc(sizeof(struct kfd_mem_obj), GFP_KERNEL);
+ mqd_mem_obj = kzalloc_obj(struct kfd_mem_obj, GFP_KERNEL);
if (!mqd_mem_obj)
return NULL;
@@ -69,7 +69,7 @@ struct kfd_mem_obj *allocate_sdma_mqd(struct mqd_manager *mm,
struct kfd_node *dev = mm->dev;
uint64_t offset;
- mqd_mem_obj = kzalloc(sizeof(struct kfd_mem_obj), GFP_KERNEL);
+ mqd_mem_obj = kzalloc_obj(struct kfd_mem_obj, GFP_KERNEL);
if (!mqd_mem_obj)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c
index 76483d91af98..575aebee8ad1 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c
@@ -389,7 +389,7 @@ struct mqd_manager *mqd_manager_init_cik(enum KFD_MQD_TYPE type,
if (WARN_ON(type >= KFD_MQD_TYPE_MAX))
return NULL;
- mqd = kzalloc(sizeof(*mqd), GFP_KERNEL);
+ mqd = kzalloc_obj(*mqd, GFP_KERNEL);
if (!mqd)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c
index 0186b3de67c0..daf5e487d87e 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c
@@ -451,7 +451,7 @@ struct mqd_manager *mqd_manager_init_v10(enum KFD_MQD_TYPE type,
if (WARN_ON(type >= KFD_MQD_TYPE_MAX))
return NULL;
- mqd = kzalloc(sizeof(*mqd), GFP_KERNEL);
+ mqd = kzalloc_obj(*mqd, GFP_KERNEL);
if (!mqd)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c
index c9e397366782..fd258bbc37b4 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c
@@ -465,7 +465,7 @@ struct mqd_manager *mqd_manager_init_v11(enum KFD_MQD_TYPE type,
if (WARN_ON(type >= KFD_MQD_TYPE_MAX))
return NULL;
- mqd = kzalloc(sizeof(*mqd), GFP_KERNEL);
+ mqd = kzalloc_obj(*mqd, GFP_KERNEL);
if (!mqd)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12.c b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12.c
index 3bbc2648f51d..e826a4149ff0 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12.c
@@ -385,7 +385,7 @@ struct mqd_manager *mqd_manager_init_v12(enum KFD_MQD_TYPE type,
if (WARN_ON(type >= KFD_MQD_TYPE_MAX))
return NULL;
- mqd = kzalloc(sizeof(*mqd), GFP_KERNEL);
+ mqd = kzalloc_obj(*mqd, GFP_KERNEL);
if (!mqd)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12_1.c b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12_1.c
index 0d6b601962eb..6fa17465d3fa 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12_1.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12_1.c
@@ -646,7 +646,7 @@ struct mqd_manager *mqd_manager_init_v12_1(enum KFD_MQD_TYPE type,
if (WARN_ON(type >= KFD_MQD_TYPE_MAX))
return NULL;
- mqd = kzalloc(sizeof(*mqd), GFP_KERNEL);
+ mqd = kzalloc_obj(*mqd, GFP_KERNEL);
if (!mqd)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c
index 3622d8392cb3..5d3b500a4146 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c
@@ -147,7 +147,7 @@ static struct kfd_mem_obj *allocate_mqd(struct mqd_manager *mm,
* amdgpu memory functions to do so.
*/
if (node->kfd->cwsr_enabled && (q->type == KFD_QUEUE_TYPE_COMPUTE)) {
- mqd_mem_obj = kzalloc(sizeof(struct kfd_mem_obj), GFP_KERNEL);
+ mqd_mem_obj = kzalloc_obj(struct kfd_mem_obj, GFP_KERNEL);
if (!mqd_mem_obj)
return NULL;
retval = amdgpu_amdkfd_alloc_kernel_mem(node->adev,
@@ -960,7 +960,7 @@ struct mqd_manager *mqd_manager_init_v9(enum KFD_MQD_TYPE type,
if (WARN_ON(type >= KFD_MQD_TYPE_MAX))
return NULL;
- mqd = kzalloc(sizeof(*mqd), GFP_KERNEL);
+ mqd = kzalloc_obj(*mqd, GFP_KERNEL);
if (!mqd)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c
index e63ef6442b35..27875d88a5ea 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c
@@ -446,7 +446,7 @@ struct mqd_manager *mqd_manager_init_vi(enum KFD_MQD_TYPE type,
if (WARN_ON(type >= KFD_MQD_TYPE_MAX))
return NULL;
- mqd = kzalloc(sizeof(*mqd), GFP_KERNEL);
+ mqd = kzalloc_obj(*mqd, GFP_KERNEL);
if (!mqd)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
index 9849b54f54ba..a5f479af3607 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
@@ -91,7 +91,7 @@
/* Macro for allocating structures */
#define kfd_alloc_struct(ptr_to_struct) \
- ((typeof(ptr_to_struct)) kzalloc(sizeof(*ptr_to_struct), GFP_KERNEL))
+ ((typeof(ptr_to_struct)) kzalloc_obj(*ptr_to_struct, GFP_KERNEL))
#define KFD_MAX_NUM_OF_PROCESSES 512
#define KFD_MAX_NUM_OF_QUEUES_PER_PROCESS 1024
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
index 8dc6ca8e9062..ff64bde0acd2 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
@@ -153,7 +153,7 @@ static void kfd_sdma_activity_worker(struct work_struct *work)
(q->properties.type != KFD_QUEUE_TYPE_SDMA_XGMI))
continue;
- sdma_q = kzalloc(sizeof(struct temp_sdma_queue_list), GFP_KERNEL);
+ sdma_q = kzalloc_obj(struct temp_sdma_queue_list, GFP_KERNEL);
if (!sdma_q) {
dqm_unlock(dqm);
goto cleanup;
@@ -291,7 +291,8 @@ static int kfd_get_cu_occupancy(struct attribute *attr, char *buffer)
wave_cnt = 0;
max_waves_per_cu = 0;
- cu_occupancy = kcalloc(AMDGPU_MAX_QUEUES, sizeof(*cu_occupancy), GFP_KERNEL);
+ cu_occupancy = kzalloc_objs(*cu_occupancy, AMDGPU_MAX_QUEUES,
+ GFP_KERNEL);
if (!cu_occupancy)
return -ENOMEM;
@@ -1592,7 +1593,7 @@ struct kfd_process *create_process(const struct task_struct *thread, bool primar
struct mmu_notifier *mn;
int err = -ENOMEM;
- process = kzalloc(sizeof(*process), GFP_KERNEL);
+ process = kzalloc_obj(*process, GFP_KERNEL);
if (!process)
goto err_alloc_process;
@@ -1708,7 +1709,7 @@ struct kfd_process_device *kfd_create_process_device_data(struct kfd_node *dev,
if (WARN_ON_ONCE(p->n_pdds >= MAX_GPU_INSTANCE))
return NULL;
- pdd = kzalloc(sizeof(*pdd), GFP_KERNEL);
+ pdd = kzalloc_obj(*pdd, GFP_KERNEL);
if (!pdd)
return NULL;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
index 449be58e884c..dac1f9604d8e 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
@@ -383,7 +383,7 @@ int pqm_create_queue(struct process_queue_manager *pqm,
memset(pdd->proc_ctx_cpu_ptr, 0, AMDGPU_MES_PROC_CTX_SIZE);
}
- pqn = kzalloc(sizeof(*pqn), GFP_KERNEL);
+ pqn = kzalloc_obj(*pqn, GFP_KERNEL);
if (!pqn) {
retval = -ENOMEM;
goto err_allocate_pqn;
@@ -991,7 +991,7 @@ int kfd_criu_restore_queue(struct kfd_process *p,
if (*priv_data_offset + sizeof(*q_data) > max_priv_data_size)
return -EINVAL;
- q_data = kmalloc(sizeof(*q_data), GFP_KERNEL);
+ q_data = kmalloc_obj(*q_data, GFP_KERNEL);
if (!q_data)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_queue.c b/drivers/gpu/drm/amd/amdkfd/kfd_queue.c
index d1978e3f68be..1285c70a1c3b 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_queue.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_queue.c
@@ -70,7 +70,7 @@ int init_queue(struct queue **q, const struct queue_properties *properties)
{
struct queue *tmp_q;
- tmp_q = kzalloc(sizeof(*tmp_q), GFP_KERNEL);
+ tmp_q = kzalloc_obj(*tmp_q, GFP_KERNEL);
if (!tmp_q)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c b/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c
index d2bc169e84b0..242e58fea05e 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c
@@ -370,7 +370,7 @@ int kfd_smi_event_open(struct kfd_node *dev, uint32_t *fd)
struct kfd_smi_client *client;
int ret;
- client = kzalloc(sizeof(struct kfd_smi_client), GFP_KERNEL);
+ client = kzalloc_obj(struct kfd_smi_client, GFP_KERNEL);
if (!client)
return -ENOMEM;
INIT_LIST_HEAD(&client->list);
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
index fcddb54a439f..e168a74190e3 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
@@ -168,7 +168,7 @@ svm_range_dma_map_dev(struct amdgpu_device *adev, struct svm_range *prange,
int i, r;
if (!addr) {
- addr = kvcalloc(prange->npages, sizeof(*addr), GFP_KERNEL);
+ addr = kvzalloc_objs(*addr, prange->npages, GFP_KERNEL);
if (!addr)
return -ENOMEM;
prange->dma_addr[gpuidx] = addr;
@@ -329,7 +329,7 @@ svm_range *svm_range_new(struct svm_range_list *svms, uint64_t start,
struct svm_range *prange;
struct kfd_process *p;
- prange = kzalloc(sizeof(*prange), GFP_KERNEL);
+ prange = kzalloc_obj(*prange, GFP_KERNEL);
if (!prange)
return NULL;
@@ -539,7 +539,7 @@ static struct svm_range_bo *svm_range_bo_new(void)
{
struct svm_range_bo *svm_bo;
- svm_bo = kzalloc(sizeof(*svm_bo), GFP_KERNEL);
+ svm_bo = kzalloc_obj(*svm_bo, GFP_KERNEL);
if (!svm_bo)
return NULL;
@@ -1674,7 +1674,7 @@ static int svm_range_validate_and_map(struct mm_struct *mm,
int32_t idx;
int r = 0;
- ctx = kzalloc(sizeof(struct svm_validate_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct svm_validate_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
ctx->process = container_of(prange->svms, struct kfd_process, svms);
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
index 1ccd4514d3ee..8aa86502fceb 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
@@ -711,7 +711,7 @@ static int kfd_build_sysfs_node_entry(struct kfd_topology_device *dev,
i = 0;
list_for_each_entry(mem, &dev->mem_props, list) {
- mem->kobj = kzalloc(sizeof(struct kobject), GFP_KERNEL);
+ mem->kobj = kzalloc_obj(struct kobject, GFP_KERNEL);
if (!mem->kobj)
return -ENOMEM;
ret = kobject_init_and_add(mem->kobj, &mem_type,
@@ -732,7 +732,7 @@ static int kfd_build_sysfs_node_entry(struct kfd_topology_device *dev,
i = 0;
list_for_each_entry(cache, &dev->cache_props, list) {
- cache->kobj = kzalloc(sizeof(struct kobject), GFP_KERNEL);
+ cache->kobj = kzalloc_obj(struct kobject, GFP_KERNEL);
if (!cache->kobj)
return -ENOMEM;
ret = kobject_init_and_add(cache->kobj, &cache_type,
@@ -753,7 +753,7 @@ static int kfd_build_sysfs_node_entry(struct kfd_topology_device *dev,
i = 0;
list_for_each_entry(iolink, &dev->io_link_props, list) {
- iolink->kobj = kzalloc(sizeof(struct kobject), GFP_KERNEL);
+ iolink->kobj = kzalloc_obj(struct kobject, GFP_KERNEL);
if (!iolink->kobj)
return -ENOMEM;
ret = kobject_init_and_add(iolink->kobj, &iolink_type,
@@ -774,7 +774,7 @@ static int kfd_build_sysfs_node_entry(struct kfd_topology_device *dev,
i = 0;
list_for_each_entry(p2plink, &dev->p2p_link_props, list) {
- p2plink->kobj = kzalloc(sizeof(struct kobject), GFP_KERNEL);
+ p2plink->kobj = kzalloc_obj(struct kobject, GFP_KERNEL);
if (!p2plink->kobj)
return -ENOMEM;
ret = kobject_init_and_add(p2plink->kobj, &iolink_type,
@@ -1381,7 +1381,7 @@ static int kfd_build_p2p_node_entry(struct kfd_topology_device *dev,
{
int ret;
- p2plink->kobj = kzalloc(sizeof(struct kobject), GFP_KERNEL);
+ p2plink->kobj = kzalloc_obj(struct kobject, GFP_KERNEL);
if (!p2plink->kobj)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index c3c045c8144f..10bc1d252b1f 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -545,13 +545,15 @@ static void schedule_dc_vmin_vmax(struct amdgpu_device *adev,
struct dc_stream_state *stream,
struct dc_crtc_timing_adjust *adjust)
{
- struct vupdate_offload_work *offload_work = kzalloc(sizeof(*offload_work), GFP_NOWAIT);
+ struct vupdate_offload_work *offload_work = kzalloc_obj(*offload_work,
+ GFP_NOWAIT);
if (!offload_work) {
drm_dbg_driver(adev_to_drm(adev), "Failed to allocate vupdate_offload_work\n");
return;
}
- struct dc_crtc_timing_adjust *adjust_copy = kzalloc(sizeof(*adjust_copy), GFP_NOWAIT);
+ struct dc_crtc_timing_adjust *adjust_copy = kzalloc_obj(*adjust_copy,
+ GFP_NOWAIT);
if (!adjust_copy) {
drm_dbg_driver(adev_to_drm(adev), "Failed to allocate adjust_copy\n");
kfree(offload_work);
@@ -1023,7 +1025,8 @@ static void dm_dmub_outbox1_low_irq(void *interrupt_params)
continue;
}
if (dm->dmub_thread_offload[notify.type] == true) {
- dmub_hpd_wrk = kzalloc(sizeof(*dmub_hpd_wrk), GFP_ATOMIC);
+ dmub_hpd_wrk = kzalloc_obj(*dmub_hpd_wrk,
+ GFP_ATOMIC);
if (!dmub_hpd_wrk) {
drm_err(adev_to_drm(adev), "Failed to allocate dmub_hpd_wrk");
return;
@@ -1647,7 +1650,8 @@ static struct hpd_rx_irq_offload_work_queue *hpd_rx_irq_create_workqueue(struct
int i = 0;
struct hpd_rx_irq_offload_work_queue *hpd_rx_offload_wq = NULL;
- hpd_rx_offload_wq = kcalloc(max_caps, sizeof(*hpd_rx_offload_wq), GFP_KERNEL);
+ hpd_rx_offload_wq = kzalloc_objs(*hpd_rx_offload_wq, max_caps,
+ GFP_KERNEL);
if (!hpd_rx_offload_wq)
return NULL;
@@ -1720,7 +1724,7 @@ dm_allocate_gpu_mem(
AMDGPU_GEM_DOMAIN_GTT : AMDGPU_GEM_DOMAIN_VRAM;
int ret;
- da = kzalloc(sizeof(struct dal_allocation), GFP_KERNEL);
+ da = kzalloc_obj(struct dal_allocation, GFP_KERNEL);
if (!da)
return NULL;
@@ -2126,7 +2130,8 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
}
if (dc_is_dmub_outbox_supported(adev->dm.dc)) {
init_completion(&adev->dm.dmub_aux_transfer_done);
- adev->dm.dmub_notify = kzalloc(sizeof(struct dmub_notification), GFP_KERNEL);
+ adev->dm.dmub_notify = kzalloc_obj(struct dmub_notification,
+ GFP_KERNEL);
if (!adev->dm.dmub_notify) {
drm_info(adev_to_drm(adev), "fail to allocate adev->dm.dmub_notify");
goto error;
@@ -2521,7 +2526,7 @@ static int dm_dmub_sw_init(struct amdgpu_device *adev)
}
- adev->dm.dmub_srv = kzalloc(sizeof(*adev->dm.dmub_srv), GFP_KERNEL);
+ adev->dm.dmub_srv = kzalloc_obj(*adev->dm.dmub_srv, GFP_KERNEL);
dmub_srv = adev->dm.dmub_srv;
if (!dmub_srv) {
@@ -2602,8 +2607,7 @@ static int dm_dmub_sw_init(struct amdgpu_device *adev)
memory_params.region_info = ®ion_info;
memory_params.window_memory_type = window_memory_type;
- adev->dm.dmub_fb_info =
- kzalloc(sizeof(*adev->dm.dmub_fb_info), GFP_KERNEL);
+ adev->dm.dmub_fb_info = kzalloc_obj(*adev->dm.dmub_fb_info, GFP_KERNEL);
fb_info = adev->dm.dmub_fb_info;
if (!fb_info) {
@@ -3359,7 +3363,7 @@ static void dm_gpureset_commit_state(struct dc_state *dc_state,
} *bundle __free(kfree);
int k, m;
- bundle = kzalloc(sizeof(*bundle), GFP_KERNEL);
+ bundle = kzalloc_obj(*bundle, GFP_KERNEL);
if (!bundle) {
drm_err(dm->ddev, "Failed to allocate update bundle\n");
@@ -3927,7 +3931,7 @@ void amdgpu_dm_update_connector_after_detect(
if (!aconnector->timing_requested) {
aconnector->timing_requested =
- kzalloc(sizeof(struct dc_crtc_timing), GFP_KERNEL);
+ kzalloc_obj(struct dc_crtc_timing, GFP_KERNEL);
if (!aconnector->timing_requested)
drm_err(dev,
"failed to create aconnector->requested_timing\n");
@@ -4156,8 +4160,8 @@ static void handle_hpd_irq(void *param)
static void schedule_hpd_rx_offload_work(struct amdgpu_device *adev, struct hpd_rx_irq_offload_work_queue *offload_wq,
union hpd_irq_data hpd_irq_data)
{
- struct hpd_rx_irq_offload_work *offload_work =
- kzalloc(sizeof(*offload_work), GFP_KERNEL);
+ struct hpd_rx_irq_offload_work *offload_work = kzalloc_obj(*offload_work,
+ GFP_KERNEL);
if (!offload_work) {
drm_err(adev_to_drm(adev), "Failed to allocate hpd_rx_irq_offload_work.\n");
@@ -4878,7 +4882,7 @@ dm_atomic_duplicate_state(struct drm_private_obj *obj)
{
struct dm_atomic_state *old_state, *new_state;
- new_state = kzalloc(sizeof(*new_state), GFP_KERNEL);
+ new_state = kzalloc_obj(*new_state, GFP_KERNEL);
if (!new_state)
return NULL;
@@ -4935,7 +4939,7 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev)
/* indicates support for immediate flip */
adev_to_drm(adev)->mode_config.async_page_flip = true;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return -ENOMEM;
@@ -5363,7 +5367,7 @@ static int initialize_plane(struct amdgpu_display_manager *dm,
unsigned long possible_crtcs;
int ret = 0;
- plane = kzalloc(sizeof(struct drm_plane), GFP_KERNEL);
+ plane = kzalloc_obj(struct drm_plane, GFP_KERNEL);
if (!plane) {
drm_err(adev_to_drm(dm->adev), "KMS: Failed to allocate plane\n");
return -ENOMEM;
@@ -5602,7 +5606,8 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev)
link = dc_get_link_at_index(dm->dc, i);
if (link->connector_signal == SIGNAL_TYPE_VIRTUAL) {
- struct amdgpu_dm_wb_connector *wbcon = kzalloc(sizeof(*wbcon), GFP_KERNEL);
+ struct amdgpu_dm_wb_connector *wbcon = kzalloc_obj(*wbcon,
+ GFP_KERNEL);
if (!wbcon) {
drm_err(adev_to_drm(adev), "KMS: Failed to allocate writeback connector\n");
@@ -5621,11 +5626,11 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev)
continue;
}
- aconnector = kzalloc(sizeof(*aconnector), GFP_KERNEL);
+ aconnector = kzalloc_obj(*aconnector, GFP_KERNEL);
if (!aconnector)
goto fail;
- aencoder = kzalloc(sizeof(*aencoder), GFP_KERNEL);
+ aencoder = kzalloc_obj(*aencoder, GFP_KERNEL);
if (!aencoder)
goto fail;
@@ -7819,7 +7824,7 @@ void amdgpu_dm_connector_funcs_reset(struct drm_connector *connector)
kfree(state);
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state) {
state->scaling = RMX_OFF;
@@ -9094,7 +9099,7 @@ static int amdgpu_dm_i2c_xfer(struct i2c_adapter *i2c_adap,
if (!ddc_service->ddc_pin)
return result;
- cmd.payloads = kcalloc(num, sizeof(struct i2c_payload), GFP_KERNEL);
+ cmd.payloads = kzalloc_objs(struct i2c_payload, num, GFP_KERNEL);
if (!cmd.payloads)
return result;
@@ -9143,7 +9148,7 @@ create_i2c(struct ddc_service *ddc_service, bool oem)
struct amdgpu_device *adev = ddc_service->ctx->driver_context;
struct amdgpu_i2c_adapter *i2c;
- i2c = kzalloc(sizeof(struct amdgpu_i2c_adapter), GFP_KERNEL);
+ i2c = kzalloc_obj(struct amdgpu_i2c_adapter, GFP_KERNEL);
if (!i2c)
return NULL;
i2c->base.owner = THIS_MODULE;
@@ -9944,7 +9949,7 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
struct dc_stream_update stream_update;
} *bundle;
- bundle = kzalloc(sizeof(*bundle), GFP_KERNEL);
+ bundle = kzalloc_obj(*bundle, GFP_KERNEL);
if (!bundle) {
drm_err(dev, "Failed to allocate update bundle\n");
@@ -10619,7 +10624,7 @@ static void dm_set_writeback(struct amdgpu_display_manager *dm,
struct amdgpu_framebuffer *afb;
int i = 0;
- wb_info = kzalloc(sizeof(*wb_info), GFP_KERNEL);
+ wb_info = kzalloc_obj(*wb_info, GFP_KERNEL);
if (!wb_info) {
drm_err(adev_to_drm(adev), "Failed to allocate wb_info\n");
return;
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
index 20a76d81d532..76405a351111 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
@@ -1227,7 +1227,7 @@ int amdgpu_dm_check_crtc_color_mgmt(struct dm_crtc_state *crtc,
crtc->cm_is_degamma_srgb = false;
if (check_only) {
- out_tf = kvzalloc(sizeof(*out_tf), GFP_KERNEL);
+ out_tf = kvzalloc_obj(*out_tf, GFP_KERNEL);
if (!out_tf)
return -ENOMEM;
} else {
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c
index a2de3bba8346..2f072167bcc5 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c
@@ -66,7 +66,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
memset(ops, 0, sizeof(ops));
/* 1D curve - DEGAM TF */
- ops[i] = kzalloc(sizeof(*ops[0]), GFP_KERNEL);
+ ops[i] = kzalloc_obj(*ops[0], GFP_KERNEL);
if (!ops[i]) {
ret = -ENOMEM;
goto cleanup;
@@ -83,7 +83,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
i++;
/* Multiplier */
- ops[i] = kzalloc(sizeof(struct drm_colorop), GFP_KERNEL);
+ ops[i] = kzalloc_obj(struct drm_colorop, GFP_KERNEL);
if (!ops[i]) {
ret = -ENOMEM;
goto cleanup;
@@ -98,7 +98,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
i++;
/* 3x4 matrix */
- ops[i] = kzalloc(sizeof(struct drm_colorop), GFP_KERNEL);
+ ops[i] = kzalloc_obj(struct drm_colorop, GFP_KERNEL);
if (!ops[i]) {
ret = -ENOMEM;
goto cleanup;
@@ -114,7 +114,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
if (adev->dm.dc->caps.color.dpp.hw_3d_lut) {
/* 1D curve - SHAPER TF */
- ops[i] = kzalloc(sizeof(*ops[0]), GFP_KERNEL);
+ ops[i] = kzalloc_obj(*ops[0], GFP_KERNEL);
if (!ops[i]) {
ret = -ENOMEM;
goto cleanup;
@@ -131,7 +131,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
i++;
/* 1D LUT - SHAPER LUT */
- ops[i] = kzalloc(sizeof(*ops[0]), GFP_KERNEL);
+ ops[i] = kzalloc_obj(*ops[0], GFP_KERNEL);
if (!ops[i]) {
ret = -ENOMEM;
goto cleanup;
@@ -148,7 +148,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
i++;
/* 3D LUT */
- ops[i] = kzalloc(sizeof(*ops[0]), GFP_KERNEL);
+ ops[i] = kzalloc_obj(*ops[0], GFP_KERNEL);
if (!ops[i]) {
ret = -ENOMEM;
goto cleanup;
@@ -166,7 +166,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
}
/* 1D curve - BLND TF */
- ops[i] = kzalloc(sizeof(*ops[0]), GFP_KERNEL);
+ ops[i] = kzalloc_obj(*ops[0], GFP_KERNEL);
if (!ops[i]) {
ret = -ENOMEM;
goto cleanup;
@@ -183,7 +183,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
i++;
/* 1D LUT - BLND LUT */
- ops[i] = kzalloc(sizeof(struct drm_colorop), GFP_KERNEL);
+ ops[i] = kzalloc_obj(struct drm_colorop, GFP_KERNEL);
if (!ops[i]) {
ret = -ENOMEM;
goto cleanup;
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c
index 1b03f2bf8d7a..212f613fad1e 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c
@@ -958,9 +958,8 @@ void amdgpu_dm_crtc_secure_display_create_contexts(struct amdgpu_device *adev)
struct secure_display_crtc_context *crtc_ctx = NULL;
int i;
- crtc_ctx = kcalloc(adev->mode_info.num_crtc,
- sizeof(struct secure_display_crtc_context),
- GFP_KERNEL);
+ crtc_ctx = kzalloc_objs(struct secure_display_crtc_context,
+ adev->mode_info.num_crtc, GFP_KERNEL);
if (!crtc_ctx) {
adev->dm.secure_display_ctx.crtc_ctx = NULL;
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
index 9fcd72d87d25..49f68ddcfec8 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
@@ -231,7 +231,7 @@ struct idle_workqueue *idle_create_workqueue(struct amdgpu_device *adev)
{
struct idle_workqueue *idle_work;
- idle_work = kzalloc(sizeof(*idle_work), GFP_KERNEL);
+ idle_work = kzalloc_obj(*idle_work, GFP_KERNEL);
if (ZERO_OR_NULL_PTR(idle_work))
return NULL;
@@ -392,7 +392,7 @@ static inline int amdgpu_dm_crtc_set_vblank(struct drm_crtc *crtc, bool enable)
return 0;
if (dm->vblank_control_workqueue) {
- work = kzalloc(sizeof(*work), GFP_ATOMIC);
+ work = kzalloc_obj(*work, GFP_ATOMIC);
if (!work)
return -ENOMEM;
@@ -447,7 +447,7 @@ static struct drm_crtc_state *amdgpu_dm_crtc_duplicate_state(struct drm_crtc *cr
if (WARN_ON(!crtc->state))
return NULL;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
@@ -487,7 +487,7 @@ static void amdgpu_dm_crtc_reset_state(struct drm_crtc *crtc)
if (crtc->state)
amdgpu_dm_crtc_destroy_state(crtc, crtc->state);
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (WARN_ON(!state))
return;
@@ -728,14 +728,14 @@ int amdgpu_dm_crtc_init(struct amdgpu_display_manager *dm,
bool has_degamma;
int res = -ENOMEM;
- cursor_plane = kzalloc(sizeof(*cursor_plane), GFP_KERNEL);
+ cursor_plane = kzalloc_obj(*cursor_plane, GFP_KERNEL);
if (!cursor_plane)
goto fail;
cursor_plane->type = DRM_PLANE_TYPE_CURSOR;
res = amdgpu_dm_plane_init(dm, cursor_plane, 0, NULL);
- acrtc = kzalloc(sizeof(struct amdgpu_crtc), GFP_KERNEL);
+ acrtc = kzalloc_obj(struct amdgpu_crtc, GFP_KERNEL);
if (!acrtc)
goto fail;
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
index d6d43f1bf6d2..b43ec19848fd 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
@@ -4301,7 +4301,7 @@ static ssize_t dcc_en_bits_read(
int *dcc_en_bits;
int i, r;
- dcc_en_bits = kcalloc(num_pipes, sizeof(int), GFP_KERNEL);
+ dcc_en_bits = kzalloc_objs(int, num_pipes, GFP_KERNEL);
if (!dcc_en_bits)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
index a10401675f53..3b26797c9d03 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
@@ -746,7 +746,7 @@ struct hdcp_workqueue *hdcp_create_workqueue(struct amdgpu_device *adev,
struct hdcp_workqueue *hdcp_work;
int i = 0;
- hdcp_work = kcalloc(max_caps, sizeof(*hdcp_work), GFP_KERNEL);
+ hdcp_work = kzalloc_objs(*hdcp_work, max_caps, GFP_KERNEL);
if (ZERO_OR_NULL_PTR(hdcp_work))
return NULL;
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
index bf2a356b3475..d26003d2a2cc 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
@@ -617,7 +617,7 @@ bool dm_helpers_submit_i2c(
return false;
}
- msgs = kcalloc(num, sizeof(struct i2c_msg), GFP_KERNEL);
+ msgs = kzalloc_objs(struct i2c_msg, num, GFP_KERNEL);
if (!msgs)
return false;
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
index 5948e2a6219e..dfb80689d889 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
@@ -313,7 +313,7 @@ void *amdgpu_dm_irq_register_interrupt(struct amdgpu_device *adev,
if (false == validate_irq_registration_params(int_params, ih))
return DAL_INVALID_IRQ_HANDLER_IDX;
- handler_data = kzalloc(sizeof(*handler_data), GFP_KERNEL);
+ handler_data = kzalloc_obj(*handler_data, GFP_KERNEL);
if (!handler_data) {
DRM_ERROR("DM_IRQ: failed to allocate irq handler!\n");
return DAL_INVALID_IRQ_HANDLER_IDX;
@@ -594,7 +594,7 @@ static void amdgpu_dm_irq_schedule_work(struct amdgpu_device *adev,
handler_data = container_of(handler_list->next, struct amdgpu_dm_irq_handler_data, list);
/*allocate a new amdgpu_dm_irq_handler_data*/
- handler_data_add = kzalloc(sizeof(*handler_data), GFP_ATOMIC);
+ handler_data_add = kzalloc_obj(*handler_data, GFP_ATOMIC);
if (!handler_data_add) {
DRM_ERROR("DM_IRQ: failed to allocate irq handler!\n");
return;
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
index 5e92eaa67aa3..781163d6b23b 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
@@ -640,7 +640,7 @@ dm_dp_add_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
struct drm_connector *connector;
int i;
- aconnector = kzalloc(sizeof(*aconnector), GFP_KERNEL);
+ aconnector = kzalloc_obj(*aconnector, GFP_KERNEL);
if (!aconnector)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
index 198064acf9f6..c50583a05ce3 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
@@ -1470,7 +1470,7 @@ static void amdgpu_dm_plane_drm_plane_reset(struct drm_plane *plane)
if (plane->state)
plane->funcs->atomic_destroy_state(plane, plane->state);
- amdgpu_state = kzalloc(sizeof(*amdgpu_state), GFP_KERNEL);
+ amdgpu_state = kzalloc_obj(*amdgpu_state, GFP_KERNEL);
WARN_ON(amdgpu_state == NULL);
if (!amdgpu_state)
@@ -1488,7 +1488,7 @@ static struct drm_plane_state *amdgpu_dm_plane_drm_plane_duplicate_state(struct
struct dm_plane_state *dm_plane_state, *old_dm_plane_state;
old_dm_plane_state = to_dm_plane_state(plane->state);
- dm_plane_state = kzalloc(sizeof(*dm_plane_state), GFP_KERNEL);
+ dm_plane_state = kzalloc_obj(*dm_plane_state, GFP_KERNEL);
if (!dm_plane_state)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/basics/dce_calcs.c b/drivers/gpu/drm/amd/display/dc/basics/dce_calcs.c
index 4da5adab799c..dbc4c2e0e514 100644
--- a/drivers/gpu/drm/amd/display/dc/basics/dce_calcs.c
+++ b/drivers/gpu/drm/amd/display/dc/basics/dce_calcs.c
@@ -120,19 +120,21 @@ static void calculate_bandwidth(
int32_t number_of_displays_enabled_with_margin = 0;
int32_t number_of_aligned_displays_with_no_margin = 0;
- yclk = kcalloc(3, sizeof(*yclk), GFP_KERNEL);
+ yclk = kzalloc_objs(*yclk, 3, GFP_KERNEL);
if (!yclk)
return;
- sclk = kcalloc(8, sizeof(*sclk), GFP_KERNEL);
+ sclk = kzalloc_objs(*sclk, 8, GFP_KERNEL);
if (!sclk)
goto free_yclk;
- tiling_mode = kcalloc(maximum_number_of_surfaces, sizeof(*tiling_mode), GFP_KERNEL);
+ tiling_mode = kzalloc_objs(*tiling_mode, maximum_number_of_surfaces,
+ GFP_KERNEL);
if (!tiling_mode)
goto free_sclk;
- surface_type = kcalloc(maximum_number_of_surfaces, sizeof(*surface_type), GFP_KERNEL);
+ surface_type = kzalloc_objs(*surface_type, maximum_number_of_surfaces,
+ GFP_KERNEL);
if (!surface_type)
goto free_tiling_mode;
@@ -2049,11 +2051,11 @@ void bw_calcs_init(struct bw_calcs_dceip *bw_dceip,
enum bw_calcs_version version = bw_calcs_version_from_asic_id(asic_id);
- dceip = kzalloc(sizeof(*dceip), GFP_KERNEL);
+ dceip = kzalloc_obj(*dceip, GFP_KERNEL);
if (!dceip)
return;
- vbios = kzalloc(sizeof(*vbios), GFP_KERNEL);
+ vbios = kzalloc_obj(*vbios, GFP_KERNEL);
if (!vbios) {
kfree(dceip);
return;
@@ -3045,8 +3047,8 @@ bool bw_calcs(struct dc_context *ctx,
int pipe_count,
struct dce_bw_output *calcs_output)
{
- struct bw_calcs_data *data = kzalloc(sizeof(struct bw_calcs_data),
- GFP_KERNEL);
+ struct bw_calcs_data *data = kzalloc_obj(struct bw_calcs_data,
+ GFP_KERNEL);
if (!data)
return false;
diff --git a/drivers/gpu/drm/amd/display/dc/basics/vector.c b/drivers/gpu/drm/amd/display/dc/basics/vector.c
index b413a672c2c0..8f6b780b7778 100644
--- a/drivers/gpu/drm/amd/display/dc/basics/vector.c
+++ b/drivers/gpu/drm/amd/display/dc/basics/vector.c
@@ -94,7 +94,7 @@ struct vector *dal_vector_presized_create(
void *initial_value,
uint32_t struct_size)
{
- struct vector *vector = kzalloc(sizeof(struct vector), GFP_KERNEL);
+ struct vector *vector = kzalloc_obj(struct vector, GFP_KERNEL);
if (vector == NULL)
return NULL;
@@ -113,7 +113,7 @@ struct vector *dal_vector_create(
uint32_t capacity,
uint32_t struct_size)
{
- struct vector *vector = kzalloc(sizeof(struct vector), GFP_KERNEL);
+ struct vector *vector = kzalloc_obj(struct vector, GFP_KERNEL);
if (vector == NULL)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/bios/bios_parser.c b/drivers/gpu/drm/amd/display/dc/bios/bios_parser.c
index 9f11e6ca4051..65993314c5cd 100644
--- a/drivers/gpu/drm/amd/display/dc/bios/bios_parser.c
+++ b/drivers/gpu/drm/amd/display/dc/bios/bios_parser.c
@@ -98,7 +98,7 @@ struct dc_bios *bios_parser_create(
{
struct bios_parser *bp;
- bp = kzalloc(sizeof(struct bios_parser), GFP_KERNEL);
+ bp = kzalloc_obj(struct bios_parser, GFP_KERNEL);
if (!bp)
return NULL;
@@ -2667,7 +2667,7 @@ static struct integrated_info *bios_parser_create_integrated_info(
struct bios_parser *bp = BP_FROM_DCB(dcb);
struct integrated_info *info;
- info = kzalloc(sizeof(struct integrated_info), GFP_KERNEL);
+ info = kzalloc_obj(struct integrated_info, GFP_KERNEL);
if (info == NULL) {
ASSERT_CRITICAL(0);
diff --git a/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c b/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c
index 550a9f1d03f8..9da95c59a68b 100644
--- a/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c
+++ b/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c
@@ -3207,7 +3207,7 @@ static struct integrated_info *bios_parser_create_integrated_info(
struct bios_parser *bp = BP_FROM_DCB(dcb);
struct integrated_info *info;
- info = kzalloc(sizeof(struct integrated_info), GFP_KERNEL);
+ info = kzalloc_obj(struct integrated_info, GFP_KERNEL);
if (info == NULL) {
ASSERT_CRITICAL(0);
@@ -3793,7 +3793,7 @@ struct dc_bios *firmware_parser_create(
{
struct bios_parser *bp;
- bp = kzalloc(sizeof(struct bios_parser), GFP_KERNEL);
+ bp = kzalloc_obj(struct bios_parser, GFP_KERNEL);
if (!bp)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c
index 15cf13ec5302..451d596783e0 100644
--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c
+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c
@@ -151,7 +151,8 @@ struct clk_mgr *dc_clk_mgr_create(struct dc_context *ctx, struct pp_smu_funcs *p
switch (asic_id.chip_family) {
#if defined(CONFIG_DRM_AMD_DC_SI)
case FAMILY_SI: {
- struct clk_mgr_internal *clk_mgr = kzalloc(sizeof(*clk_mgr), GFP_KERNEL);
+ struct clk_mgr_internal *clk_mgr = kzalloc_obj(*clk_mgr,
+ GFP_KERNEL);
if (clk_mgr == NULL) {
BREAK_TO_DEBUGGER();
@@ -163,7 +164,8 @@ struct clk_mgr *dc_clk_mgr_create(struct dc_context *ctx, struct pp_smu_funcs *p
#endif
case FAMILY_CI:
case FAMILY_KV: {
- struct clk_mgr_internal *clk_mgr = kzalloc(sizeof(*clk_mgr), GFP_KERNEL);
+ struct clk_mgr_internal *clk_mgr = kzalloc_obj(*clk_mgr,
+ GFP_KERNEL);
if (clk_mgr == NULL) {
BREAK_TO_DEBUGGER();
@@ -173,7 +175,8 @@ struct clk_mgr *dc_clk_mgr_create(struct dc_context *ctx, struct pp_smu_funcs *p
return &clk_mgr->base;
}
case FAMILY_CZ: {
- struct clk_mgr_internal *clk_mgr = kzalloc(sizeof(*clk_mgr), GFP_KERNEL);
+ struct clk_mgr_internal *clk_mgr = kzalloc_obj(*clk_mgr,
+ GFP_KERNEL);
if (clk_mgr == NULL) {
BREAK_TO_DEBUGGER();
@@ -183,7 +186,8 @@ struct clk_mgr *dc_clk_mgr_create(struct dc_context *ctx, struct pp_smu_funcs *p
return &clk_mgr->base;
}
case FAMILY_VI: {
- struct clk_mgr_internal *clk_mgr = kzalloc(sizeof(*clk_mgr), GFP_KERNEL);
+ struct clk_mgr_internal *clk_mgr = kzalloc_obj(*clk_mgr,
+ GFP_KERNEL);
if (clk_mgr == NULL) {
BREAK_TO_DEBUGGER();
@@ -207,7 +211,8 @@ struct clk_mgr *dc_clk_mgr_create(struct dc_context *ctx, struct pp_smu_funcs *p
return &clk_mgr->base;
}
case FAMILY_AI: {
- struct clk_mgr_internal *clk_mgr = kzalloc(sizeof(*clk_mgr), GFP_KERNEL);
+ struct clk_mgr_internal *clk_mgr = kzalloc_obj(*clk_mgr,
+ GFP_KERNEL);
if (clk_mgr == NULL) {
BREAK_TO_DEBUGGER();
@@ -221,7 +226,8 @@ struct clk_mgr *dc_clk_mgr_create(struct dc_context *ctx, struct pp_smu_funcs *p
}
#if defined(CONFIG_DRM_AMD_DC_FP)
case FAMILY_RV: {
- struct clk_mgr_internal *clk_mgr = kzalloc(sizeof(*clk_mgr), GFP_KERNEL);
+ struct clk_mgr_internal *clk_mgr = kzalloc_obj(*clk_mgr,
+ GFP_KERNEL);
if (clk_mgr == NULL) {
BREAK_TO_DEBUGGER();
@@ -249,7 +255,8 @@ struct clk_mgr *dc_clk_mgr_create(struct dc_context *ctx, struct pp_smu_funcs *p
return &clk_mgr->base;
}
case FAMILY_NV: {
- struct clk_mgr_internal *clk_mgr = kzalloc(sizeof(*clk_mgr), GFP_KERNEL);
+ struct clk_mgr_internal *clk_mgr = kzalloc_obj(*clk_mgr,
+ GFP_KERNEL);
if (clk_mgr == NULL) {
BREAK_TO_DEBUGGER();
@@ -276,7 +283,8 @@ struct clk_mgr *dc_clk_mgr_create(struct dc_context *ctx, struct pp_smu_funcs *p
}
case FAMILY_VGH:
if (ASICREV_IS_VANGOGH(asic_id.hw_internal_rev)) {
- struct clk_mgr_vgh *clk_mgr = kzalloc(sizeof(*clk_mgr), GFP_KERNEL);
+ struct clk_mgr_vgh *clk_mgr = kzalloc_obj(*clk_mgr,
+ GFP_KERNEL);
if (clk_mgr == NULL) {
BREAK_TO_DEBUGGER();
@@ -288,7 +296,8 @@ struct clk_mgr *dc_clk_mgr_create(struct dc_context *ctx, struct pp_smu_funcs *p
break;
case FAMILY_YELLOW_CARP: {
- struct clk_mgr_dcn31 *clk_mgr = kzalloc(sizeof(*clk_mgr), GFP_KERNEL);
+ struct clk_mgr_dcn31 *clk_mgr = kzalloc_obj(*clk_mgr,
+ GFP_KERNEL);
if (clk_mgr == NULL) {
BREAK_TO_DEBUGGER();
@@ -300,7 +309,8 @@ struct clk_mgr *dc_clk_mgr_create(struct dc_context *ctx, struct pp_smu_funcs *p
}
break;
case AMDGPU_FAMILY_GC_10_3_6: {
- struct clk_mgr_dcn315 *clk_mgr = kzalloc(sizeof(*clk_mgr), GFP_KERNEL);
+ struct clk_mgr_dcn315 *clk_mgr = kzalloc_obj(*clk_mgr,
+ GFP_KERNEL);
if (clk_mgr == NULL) {
BREAK_TO_DEBUGGER();
@@ -312,7 +322,8 @@ struct clk_mgr *dc_clk_mgr_create(struct dc_context *ctx, struct pp_smu_funcs *p
}
break;
case AMDGPU_FAMILY_GC_10_3_7: {
- struct clk_mgr_dcn316 *clk_mgr = kzalloc(sizeof(*clk_mgr), GFP_KERNEL);
+ struct clk_mgr_dcn316 *clk_mgr = kzalloc_obj(*clk_mgr,
+ GFP_KERNEL);
if (clk_mgr == NULL) {
BREAK_TO_DEBUGGER();
@@ -324,7 +335,8 @@ struct clk_mgr *dc_clk_mgr_create(struct dc_context *ctx, struct pp_smu_funcs *p
}
break;
case AMDGPU_FAMILY_GC_11_0_0: {
- struct clk_mgr_internal *clk_mgr = kzalloc(sizeof(*clk_mgr), GFP_KERNEL);
+ struct clk_mgr_internal *clk_mgr = kzalloc_obj(*clk_mgr,
+ GFP_KERNEL);
if (clk_mgr == NULL) {
BREAK_TO_DEBUGGER();
@@ -335,7 +347,8 @@ struct clk_mgr *dc_clk_mgr_create(struct dc_context *ctx, struct pp_smu_funcs *p
}
case AMDGPU_FAMILY_GC_11_0_1: {
- struct clk_mgr_dcn314 *clk_mgr = kzalloc(sizeof(*clk_mgr), GFP_KERNEL);
+ struct clk_mgr_dcn314 *clk_mgr = kzalloc_obj(*clk_mgr,
+ GFP_KERNEL);
if (clk_mgr == NULL) {
BREAK_TO_DEBUGGER();
@@ -348,7 +361,8 @@ struct clk_mgr *dc_clk_mgr_create(struct dc_context *ctx, struct pp_smu_funcs *p
break;
case AMDGPU_FAMILY_GC_11_5_0: {
- struct clk_mgr_dcn35 *clk_mgr = kzalloc(sizeof(*clk_mgr), GFP_KERNEL);
+ struct clk_mgr_dcn35 *clk_mgr = kzalloc_obj(*clk_mgr,
+ GFP_KERNEL);
if (clk_mgr == NULL) {
BREAK_TO_DEBUGGER();
diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c
index ef77fcd164ed..0684d2e68827 100644
--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c
+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c
@@ -561,7 +561,8 @@ void dcn3_clk_mgr_construct(
dce_clock_read_ss_info(clk_mgr);
- clk_mgr->base.bw_params = kzalloc(sizeof(*clk_mgr->base.bw_params), GFP_KERNEL);
+ clk_mgr->base.bw_params = kzalloc_obj(*clk_mgr->base.bw_params,
+ GFP_KERNEL);
if (!clk_mgr->base.bw_params) {
BREAK_TO_DEBUGGER();
return;
diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c
index 7da7b41bd092..820656aef040 100644
--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c
+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c
@@ -1206,7 +1206,8 @@ void dcn32_clk_mgr_construct(
clk_mgr->smu_present = false;
- clk_mgr->base.bw_params = kzalloc(sizeof(*clk_mgr->base.bw_params), GFP_KERNEL);
+ clk_mgr->base.bw_params = kzalloc_obj(*clk_mgr->base.bw_params,
+ GFP_KERNEL);
if (!clk_mgr->base.bw_params) {
BREAK_TO_DEBUGGER();
return;
diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn401/dcn401_clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn401/dcn401_clk_mgr.c
index 306016c1f109..01c8e2dd64ed 100644
--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn401/dcn401_clk_mgr.c
+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn401/dcn401_clk_mgr.c
@@ -1549,7 +1549,8 @@ struct clk_mgr_internal *dcn401_clk_mgr_construct(
struct dccg *dccg)
{
struct clk_log_info log_info = {0};
- struct dcn401_clk_mgr *clk_mgr401 = kzalloc(sizeof(struct dcn401_clk_mgr), GFP_KERNEL);
+ struct dcn401_clk_mgr *clk_mgr401 = kzalloc_obj(struct dcn401_clk_mgr,
+ GFP_KERNEL);
struct clk_mgr_internal *clk_mgr;
if (!clk_mgr401)
@@ -1599,7 +1600,8 @@ struct clk_mgr_internal *dcn401_clk_mgr_construct(
clk_mgr->smu_present = false;
- clk_mgr->base.bw_params = kzalloc(sizeof(*clk_mgr->base.bw_params), GFP_KERNEL);
+ clk_mgr->base.bw_params = kzalloc_obj(*clk_mgr->base.bw_params,
+ GFP_KERNEL);
if (!clk_mgr->base.bw_params) {
BREAK_TO_DEBUGGER();
kfree(clk_mgr401);
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
index 984b4bc5f53c..e05a6a9d66ff 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -284,7 +284,7 @@ static bool create_links(
}
for (i = 0; i < num_virtual_links; i++) {
- struct dc_link *link = kzalloc(sizeof(*link), GFP_KERNEL);
+ struct dc_link *link = kzalloc_obj(*link, GFP_KERNEL);
struct encoder_init_data enc_init = {0};
if (link == NULL) {
@@ -304,7 +304,7 @@ static bool create_links(
link->link_id.enum_id = ENUM_ID_1;
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
link->replay_settings.config.replay_version = DC_REPLAY_VERSION_UNSUPPORTED;
- link->link_enc = kzalloc(sizeof(*link->link_enc), GFP_KERNEL);
+ link->link_enc = kzalloc_obj(*link->link_enc, GFP_KERNEL);
if (!link->link_enc) {
BREAK_TO_DEBUGGER();
@@ -409,7 +409,7 @@ static void destroy_link_encoders(struct dc *dc)
static struct dc_perf_trace *dc_perf_trace_create(void)
{
- return kzalloc(sizeof(struct dc_perf_trace), GFP_KERNEL);
+ return kzalloc_obj(struct dc_perf_trace, GFP_KERNEL);
}
static void dc_perf_trace_destroy(struct dc_perf_trace **perf_trace)
@@ -1005,7 +1005,7 @@ static bool dc_construct_ctx(struct dc *dc,
{
struct dc_context *dc_ctx;
- dc_ctx = kzalloc(sizeof(*dc_ctx), GFP_KERNEL);
+ dc_ctx = kzalloc_obj(*dc_ctx, GFP_KERNEL);
if (!dc_ctx)
return false;
@@ -1023,7 +1023,7 @@ static bool dc_construct_ctx(struct dc *dc,
dc_ctx->clk_reg_offsets = init_params->clk_reg_offsets;
/* Create logger */
- dc_ctx->logger = kmalloc(sizeof(*dc_ctx->logger), GFP_KERNEL);
+ dc_ctx->logger = kmalloc_obj(*dc_ctx->logger, GFP_KERNEL);
if (!dc_ctx->logger) {
kfree(dc_ctx);
@@ -1063,7 +1063,7 @@ static bool dc_construct(struct dc *dc,
dc->config = init_params->flags;
// Allocate memory for the vm_helper
- dc->vm_helper = kzalloc(sizeof(struct vm_helper), GFP_KERNEL);
+ dc->vm_helper = kzalloc_obj(struct vm_helper, GFP_KERNEL);
if (!dc->vm_helper) {
dm_error("%s: failed to create dc->vm_helper\n", __func__);
goto fail;
@@ -1071,7 +1071,7 @@ static bool dc_construct(struct dc *dc,
memcpy(&dc->bb_overrides, &init_params->bb_overrides, sizeof(dc->bb_overrides));
- dc_dceip = kzalloc(sizeof(*dc_dceip), GFP_KERNEL);
+ dc_dceip = kzalloc_obj(*dc_dceip, GFP_KERNEL);
if (!dc_dceip) {
dm_error("%s: failed to create dceip\n", __func__);
goto fail;
@@ -1079,14 +1079,14 @@ static bool dc_construct(struct dc *dc,
dc->bw_dceip = dc_dceip;
- dc_vbios = kzalloc(sizeof(*dc_vbios), GFP_KERNEL);
+ dc_vbios = kzalloc_obj(*dc_vbios, GFP_KERNEL);
if (!dc_vbios) {
dm_error("%s: failed to create vbios\n", __func__);
goto fail;
}
dc->bw_vbios = dc_vbios;
- dcn_soc = kzalloc(sizeof(*dcn_soc), GFP_KERNEL);
+ dcn_soc = kzalloc_obj(*dcn_soc, GFP_KERNEL);
if (!dcn_soc) {
dm_error("%s: failed to create dcn_soc\n", __func__);
goto fail;
@@ -1094,7 +1094,7 @@ static bool dc_construct(struct dc *dc,
dc->dcn_soc = dcn_soc;
- dcn_ip = kzalloc(sizeof(*dcn_ip), GFP_KERNEL);
+ dcn_ip = kzalloc_obj(*dcn_ip, GFP_KERNEL);
if (!dcn_ip) {
dm_error("%s: failed to create dcn_ip\n", __func__);
goto fail;
@@ -1496,7 +1496,7 @@ static void disable_vbios_mode_if_required(
struct dc *dc_create(const struct dc_init_data *init_params)
{
- struct dc *dc = kzalloc(sizeof(*dc), GFP_KERNEL);
+ struct dc *dc = kzalloc_obj(*dc, GFP_KERNEL);
unsigned int full_pipe_count;
if (!dc)
@@ -2613,8 +2613,8 @@ bool dc_set_generic_gpio_for_stereo(bool enable,
enum gpio_result gpio_result = GPIO_RESULT_NON_SPECIFIC_ERROR;
struct gpio_pin_info pin_info;
struct gpio *generic;
- struct gpio_generic_mux_config *config = kzalloc(sizeof(struct gpio_generic_mux_config),
- GFP_KERNEL);
+ struct gpio_generic_mux_config *config = kzalloc_obj(struct gpio_generic_mux_config,
+ GFP_KERNEL);
if (!config)
return false;
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_sink.c b/drivers/gpu/drm/amd/display/dc/core/dc_sink.c
index 455fa5dd1420..0bcd7445fe97 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_sink.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_sink.c
@@ -76,7 +76,7 @@ void dc_sink_release(struct dc_sink *sink)
struct dc_sink *dc_sink_create(const struct dc_sink_init_data *init_params)
{
- struct dc_sink *sink = kzalloc(sizeof(*sink), GFP_KERNEL);
+ struct dc_sink *sink = kzalloc_obj(*sink, GFP_KERNEL);
if (NULL == sink)
goto alloc_fail;
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_state.c b/drivers/gpu/drm/amd/display/dc/core/dc_state.c
index 2de8ef4a58ec..c85b8915bbd3 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_state.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_state.c
@@ -195,7 +195,7 @@ struct dc_state *dc_state_create(struct dc *dc, struct dc_state_create_params *p
{
struct dc_state *state;
- state = kvzalloc(sizeof(struct dc_state), GFP_KERNEL);
+ state = kvzalloc_obj(struct dc_state, GFP_KERNEL);
if (!state)
return NULL;
@@ -251,8 +251,7 @@ struct dc_state *dc_state_create_copy(struct dc_state *src_state)
{
struct dc_state *new_state;
- new_state = kvmalloc(sizeof(struct dc_state),
- GFP_KERNEL);
+ new_state = kvmalloc_obj(struct dc_state, GFP_KERNEL);
if (!new_state)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
index 191f6435e7c6..def02e26cb1f 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
@@ -170,7 +170,7 @@ struct dc_stream_state *dc_create_stream_for_sink(
if (sink == NULL)
goto fail;
- stream = kzalloc(sizeof(struct dc_stream_state), GFP_KERNEL);
+ stream = kzalloc_obj(struct dc_stream_state, GFP_KERNEL);
if (stream == NULL)
goto fail;
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_surface.c b/drivers/gpu/drm/amd/display/dc/core/dc_surface.c
index 0971dfa25845..11c237720bd2 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_surface.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_surface.c
@@ -85,8 +85,8 @@ uint8_t dc_plane_get_pipe_mask(struct dc_state *dc_state, const struct dc_plane
******************************************************************************/
struct dc_plane_state *dc_create_plane_state(const struct dc *dc)
{
- struct dc_plane_state *plane_state = kvzalloc(sizeof(*plane_state),
- GFP_ATOMIC);
+ struct dc_plane_state *plane_state = kvzalloc_obj(*plane_state,
+ GFP_ATOMIC);
if (NULL == plane_state)
return NULL;
@@ -195,7 +195,7 @@ void dc_gamma_release(struct dc_gamma **gamma)
struct dc_gamma *dc_create_gamma(void)
{
- struct dc_gamma *gamma = kvzalloc(sizeof(*gamma), GFP_KERNEL);
+ struct dc_gamma *gamma = kvzalloc_obj(*gamma, GFP_KERNEL);
if (gamma == NULL)
goto alloc_fail;
@@ -225,7 +225,7 @@ void dc_transfer_func_release(struct dc_transfer_func *tf)
struct dc_transfer_func *dc_create_transfer_func(void)
{
- struct dc_transfer_func *tf = kvzalloc(sizeof(*tf), GFP_KERNEL);
+ struct dc_transfer_func *tf = kvzalloc_obj(*tf, GFP_KERNEL);
if (tf == NULL)
goto alloc_fail;
@@ -247,7 +247,7 @@ static void dc_3dlut_func_free(struct kref *kref)
struct dc_3dlut *dc_create_3dlut_func(void)
{
- struct dc_3dlut *lut = kvzalloc(sizeof(*lut), GFP_KERNEL);
+ struct dc_3dlut *lut = kvzalloc_obj(*lut, GFP_KERNEL);
if (lut == NULL)
goto alloc_fail;
diff --git a/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c b/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
index e4dd5ca70987..9b70c4e96ffe 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
+++ b/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
@@ -60,7 +60,7 @@ static void dc_dmub_srv_handle_failure(struct dc_dmub_srv *dc_dmub_srv)
struct dc_dmub_srv *dc_dmub_srv_create(struct dc *dc, struct dmub_srv *dmub)
{
struct dc_dmub_srv *dc_srv =
- kzalloc(sizeof(struct dc_dmub_srv), GFP_KERNEL);
+ kzalloc_obj(struct dc_dmub_srv, GFP_KERNEL);
if (dc_srv == NULL) {
BREAK_TO_DEBUGGER();
diff --git a/drivers/gpu/drm/amd/display/dc/dccg/dcn20/dcn20_dccg.c b/drivers/gpu/drm/amd/display/dc/dccg/dcn20/dcn20_dccg.c
index 733b85d450d9..7c578d10cbca 100644
--- a/drivers/gpu/drm/amd/display/dc/dccg/dcn20/dcn20_dccg.c
+++ b/drivers/gpu/drm/amd/display/dc/dccg/dcn20/dcn20_dccg.c
@@ -200,7 +200,7 @@ struct dccg *dccg2_create(
const struct dccg_shift *dccg_shift,
const struct dccg_mask *dccg_mask)
{
- struct dcn_dccg *dccg_dcn = kzalloc(sizeof(*dccg_dcn), GFP_KERNEL);
+ struct dcn_dccg *dccg_dcn = kzalloc_obj(*dccg_dcn, GFP_KERNEL);
struct dccg *base;
if (dccg_dcn == NULL) {
diff --git a/drivers/gpu/drm/amd/display/dc/dccg/dcn201/dcn201_dccg.c b/drivers/gpu/drm/amd/display/dc/dccg/dcn201/dcn201_dccg.c
index 79d14ce19393..b147456a8cd4 100644
--- a/drivers/gpu/drm/amd/display/dc/dccg/dcn201/dcn201_dccg.c
+++ b/drivers/gpu/drm/amd/display/dc/dccg/dcn201/dcn201_dccg.c
@@ -70,7 +70,7 @@ struct dccg *dccg201_create(
const struct dccg_shift *dccg_shift,
const struct dccg_mask *dccg_mask)
{
- struct dcn_dccg *dccg_dcn = kzalloc(sizeof(*dccg_dcn), GFP_KERNEL);
+ struct dcn_dccg *dccg_dcn = kzalloc_obj(*dccg_dcn, GFP_KERNEL);
struct dccg *base;
if (dccg_dcn == NULL) {
diff --git a/drivers/gpu/drm/amd/display/dc/dccg/dcn21/dcn21_dccg.c b/drivers/gpu/drm/amd/display/dc/dccg/dcn21/dcn21_dccg.c
index b48dcafbae66..f14abe712f2d 100644
--- a/drivers/gpu/drm/amd/display/dc/dccg/dcn21/dcn21_dccg.c
+++ b/drivers/gpu/drm/amd/display/dc/dccg/dcn21/dcn21_dccg.c
@@ -116,7 +116,7 @@ struct dccg *dccg21_create(
const struct dccg_shift *dccg_shift,
const struct dccg_mask *dccg_mask)
{
- struct dcn_dccg *dccg_dcn = kzalloc(sizeof(*dccg_dcn), GFP_KERNEL);
+ struct dcn_dccg *dccg_dcn = kzalloc_obj(*dccg_dcn, GFP_KERNEL);
struct dccg *base;
if (dccg_dcn == NULL) {
diff --git a/drivers/gpu/drm/amd/display/dc/dccg/dcn30/dcn30_dccg.c b/drivers/gpu/drm/amd/display/dc/dccg/dcn30/dcn30_dccg.c
index adec7c3c2d49..f264cf2285ce 100644
--- a/drivers/gpu/drm/amd/display/dc/dccg/dcn30/dcn30_dccg.c
+++ b/drivers/gpu/drm/amd/display/dc/dccg/dcn30/dcn30_dccg.c
@@ -62,7 +62,7 @@ struct dccg *dccg3_create(
const struct dccg_shift *dccg_shift,
const struct dccg_mask *dccg_mask)
{
- struct dcn_dccg *dccg_dcn = kzalloc(sizeof(*dccg_dcn), GFP_KERNEL);
+ struct dcn_dccg *dccg_dcn = kzalloc_obj(*dccg_dcn, GFP_KERNEL);
struct dccg *base;
if (dccg_dcn == NULL) {
@@ -87,7 +87,7 @@ struct dccg *dccg30_create(
const struct dccg_shift *dccg_shift,
const struct dccg_mask *dccg_mask)
{
- struct dcn_dccg *dccg_dcn = kzalloc(sizeof(*dccg_dcn), GFP_KERNEL);
+ struct dcn_dccg *dccg_dcn = kzalloc_obj(*dccg_dcn, GFP_KERNEL);
struct dccg *base;
if (dccg_dcn == NULL) {
diff --git a/drivers/gpu/drm/amd/display/dc/dccg/dcn301/dcn301_dccg.c b/drivers/gpu/drm/amd/display/dc/dccg/dcn301/dcn301_dccg.c
index fc9bddd94b50..93ff864def88 100644
--- a/drivers/gpu/drm/amd/display/dc/dccg/dcn301/dcn301_dccg.c
+++ b/drivers/gpu/drm/amd/display/dc/dccg/dcn301/dcn301_dccg.c
@@ -61,7 +61,7 @@ struct dccg *dccg301_create(
const struct dccg_shift *dccg_shift,
const struct dccg_mask *dccg_mask)
{
- struct dcn_dccg *dccg_dcn = kzalloc(sizeof(*dccg_dcn), GFP_KERNEL);
+ struct dcn_dccg *dccg_dcn = kzalloc_obj(*dccg_dcn, GFP_KERNEL);
struct dccg *base;
if (dccg_dcn == NULL) {
diff --git a/drivers/gpu/drm/amd/display/dc/dccg/dcn31/dcn31_dccg.c b/drivers/gpu/drm/amd/display/dc/dccg/dcn31/dcn31_dccg.c
index c647dff5234a..5ab0325f3615 100644
--- a/drivers/gpu/drm/amd/display/dc/dccg/dcn31/dcn31_dccg.c
+++ b/drivers/gpu/drm/amd/display/dc/dccg/dcn31/dcn31_dccg.c
@@ -863,7 +863,7 @@ struct dccg *dccg31_create(
const struct dccg_shift *dccg_shift,
const struct dccg_mask *dccg_mask)
{
- struct dcn_dccg *dccg_dcn = kzalloc(sizeof(*dccg_dcn), GFP_KERNEL);
+ struct dcn_dccg *dccg_dcn = kzalloc_obj(*dccg_dcn, GFP_KERNEL);
struct dccg *base;
if (dccg_dcn == NULL) {
diff --git a/drivers/gpu/drm/amd/display/dc/dccg/dcn314/dcn314_dccg.c b/drivers/gpu/drm/amd/display/dc/dccg/dcn314/dcn314_dccg.c
index 2e9c4b13988a..5193883bfb41 100644
--- a/drivers/gpu/drm/amd/display/dc/dccg/dcn314/dcn314_dccg.c
+++ b/drivers/gpu/drm/amd/display/dc/dccg/dcn314/dcn314_dccg.c
@@ -392,7 +392,7 @@ struct dccg *dccg314_create(
const struct dccg_shift *dccg_shift,
const struct dccg_mask *dccg_mask)
{
- struct dcn_dccg *dccg_dcn = kzalloc(sizeof(*dccg_dcn), GFP_KERNEL);
+ struct dcn_dccg *dccg_dcn = kzalloc_obj(*dccg_dcn, GFP_KERNEL);
struct dccg *base;
if (dccg_dcn == NULL) {
diff --git a/drivers/gpu/drm/amd/display/dc/dccg/dcn32/dcn32_dccg.c b/drivers/gpu/drm/amd/display/dc/dccg/dcn32/dcn32_dccg.c
index ce697c3249fb..be44bc057bee 100644
--- a/drivers/gpu/drm/amd/display/dc/dccg/dcn32/dcn32_dccg.c
+++ b/drivers/gpu/drm/amd/display/dc/dccg/dcn32/dcn32_dccg.c
@@ -360,7 +360,7 @@ struct dccg *dccg32_create(
const struct dccg_shift *dccg_shift,
const struct dccg_mask *dccg_mask)
{
- struct dcn_dccg *dccg_dcn = kzalloc(sizeof(*dccg_dcn), GFP_KERNEL);
+ struct dcn_dccg *dccg_dcn = kzalloc_obj(*dccg_dcn, GFP_KERNEL);
struct dccg *base;
if (dccg_dcn == NULL) {
diff --git a/drivers/gpu/drm/amd/display/dc/dccg/dcn35/dcn35_dccg.c b/drivers/gpu/drm/amd/display/dc/dccg/dcn35/dcn35_dccg.c
index 943ec1983076..34414be7efb6 100644
--- a/drivers/gpu/drm/amd/display/dc/dccg/dcn35/dcn35_dccg.c
+++ b/drivers/gpu/drm/amd/display/dc/dccg/dcn35/dcn35_dccg.c
@@ -2461,7 +2461,7 @@ struct dccg *dccg35_create(
const struct dccg_shift *dccg_shift,
const struct dccg_mask *dccg_mask)
{
- struct dcn_dccg *dccg_dcn = kzalloc(sizeof(*dccg_dcn), GFP_KERNEL);
+ struct dcn_dccg *dccg_dcn = kzalloc_obj(*dccg_dcn, GFP_KERNEL);
struct dccg *base;
if (dccg_dcn == NULL) {
diff --git a/drivers/gpu/drm/amd/display/dc/dccg/dcn401/dcn401_dccg.c b/drivers/gpu/drm/amd/display/dc/dccg/dcn401/dcn401_dccg.c
index f1d394560892..9554d24b882b 100644
--- a/drivers/gpu/drm/amd/display/dc/dccg/dcn401/dcn401_dccg.c
+++ b/drivers/gpu/drm/amd/display/dc/dccg/dcn401/dcn401_dccg.c
@@ -892,7 +892,7 @@ struct dccg *dccg401_create(
const struct dccg_shift *dccg_shift,
const struct dccg_mask *dccg_mask)
{
- struct dcn_dccg *dccg_dcn = kzalloc(sizeof(*dccg_dcn), GFP_KERNEL);
+ struct dcn_dccg *dccg_dcn = kzalloc_obj(*dccg_dcn, GFP_KERNEL);
struct dccg *base;
if (dccg_dcn == NULL) {
diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c b/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c
index 2dcf394edf22..71bb5794a513 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c
+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_abm.c
@@ -283,7 +283,7 @@ struct abm *dce_abm_create(
const struct dce_abm_shift *abm_shift,
const struct dce_abm_mask *abm_mask)
{
- struct dce_abm *abm_dce = kzalloc(sizeof(*abm_dce), GFP_KERNEL);
+ struct dce_abm *abm_dce = kzalloc_obj(*abm_dce, GFP_KERNEL);
if (abm_dce == NULL) {
BREAK_TO_DEBUGGER();
diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_audio.c b/drivers/gpu/drm/amd/display/dc/dce/dce_audio.c
index fcad61c618a1..ba30394b828f 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dce_audio.c
+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_audio.c
@@ -1331,7 +1331,7 @@ struct audio *dce_audio_create(
const struct dce_audio_mask *masks
)
{
- struct dce_audio *audio = kzalloc(sizeof(*audio), GFP_KERNEL);
+ struct dce_audio *audio = kzalloc_obj(*audio, GFP_KERNEL);
if (audio == NULL) {
ASSERT_CRITICAL(audio);
@@ -1357,7 +1357,7 @@ struct audio *dce60_audio_create(
const struct dce_audio_mask *masks
)
{
- struct dce_audio *audio = kzalloc(sizeof(*audio), GFP_KERNEL);
+ struct dce_audio *audio = kzalloc_obj(*audio, GFP_KERNEL);
if (audio == NULL) {
ASSERT_CRITICAL(audio);
diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_clk_mgr.c b/drivers/gpu/drm/amd/display/dc/dce/dce_clk_mgr.c
index e7acd6eec1fd..405758106101 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dce_clk_mgr.c
+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_clk_mgr.c
@@ -848,7 +848,7 @@ struct clk_mgr *dce_clk_mgr_create(
const struct clk_mgr_shift *clk_shift,
const struct clk_mgr_mask *clk_mask)
{
- struct dce_clk_mgr *clk_mgr_dce = kzalloc(sizeof(*clk_mgr_dce), GFP_KERNEL);
+ struct dce_clk_mgr *clk_mgr_dce = kzalloc_obj(*clk_mgr_dce, GFP_KERNEL);
if (clk_mgr_dce == NULL) {
BREAK_TO_DEBUGGER();
@@ -871,7 +871,7 @@ struct clk_mgr *dce110_clk_mgr_create(
const struct clk_mgr_shift *clk_shift,
const struct clk_mgr_mask *clk_mask)
{
- struct dce_clk_mgr *clk_mgr_dce = kzalloc(sizeof(*clk_mgr_dce), GFP_KERNEL);
+ struct dce_clk_mgr *clk_mgr_dce = kzalloc_obj(*clk_mgr_dce, GFP_KERNEL);
if (clk_mgr_dce == NULL) {
BREAK_TO_DEBUGGER();
@@ -896,7 +896,7 @@ struct clk_mgr *dce112_clk_mgr_create(
const struct clk_mgr_shift *clk_shift,
const struct clk_mgr_mask *clk_mask)
{
- struct dce_clk_mgr *clk_mgr_dce = kzalloc(sizeof(*clk_mgr_dce), GFP_KERNEL);
+ struct dce_clk_mgr *clk_mgr_dce = kzalloc_obj(*clk_mgr_dce, GFP_KERNEL);
if (clk_mgr_dce == NULL) {
BREAK_TO_DEBUGGER();
@@ -917,7 +917,7 @@ struct clk_mgr *dce112_clk_mgr_create(
struct clk_mgr *dce120_clk_mgr_create(struct dc_context *ctx)
{
- struct dce_clk_mgr *clk_mgr_dce = kzalloc(sizeof(*clk_mgr_dce), GFP_KERNEL);
+ struct dce_clk_mgr *clk_mgr_dce = kzalloc_obj(*clk_mgr_dce, GFP_KERNEL);
if (clk_mgr_dce == NULL) {
BREAK_TO_DEBUGGER();
@@ -939,8 +939,7 @@ struct clk_mgr *dce120_clk_mgr_create(struct dc_context *ctx)
struct clk_mgr *dce121_clk_mgr_create(struct dc_context *ctx)
{
- struct dce_clk_mgr *clk_mgr_dce = kzalloc(sizeof(*clk_mgr_dce),
- GFP_KERNEL);
+ struct dce_clk_mgr *clk_mgr_dce = kzalloc_obj(*clk_mgr_dce, GFP_KERNEL);
if (clk_mgr_dce == NULL) {
BREAK_TO_DEBUGGER();
diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c b/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c
index b4f5b4a6331a..2b242df1b952 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c
+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c
@@ -1476,16 +1476,14 @@ static void get_ss_info_from_atombios(
if (*ss_entries_num == 0)
return;
- ss_info = kcalloc(*ss_entries_num,
- sizeof(struct spread_spectrum_info),
- GFP_KERNEL);
+ ss_info = kzalloc_objs(struct spread_spectrum_info, *ss_entries_num,
+ GFP_KERNEL);
ss_info_cur = ss_info;
if (ss_info == NULL)
return;
- ss_data = kcalloc(*ss_entries_num,
- sizeof(struct spread_spectrum_data),
- GFP_KERNEL);
+ ss_data = kzalloc_objs(struct spread_spectrum_data, *ss_entries_num,
+ GFP_KERNEL);
if (ss_data == NULL)
goto out_free_info;
diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c b/drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c
index 5f8fba45d98d..dd33218dcbab 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c
+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c
@@ -1105,7 +1105,7 @@ struct dmcu *dce_dmcu_create(
const struct dce_dmcu_shift *dmcu_shift,
const struct dce_dmcu_mask *dmcu_mask)
{
- struct dce_dmcu *dmcu_dce = kzalloc(sizeof(*dmcu_dce), GFP_KERNEL);
+ struct dce_dmcu *dmcu_dce = kzalloc_obj(*dmcu_dce, GFP_KERNEL);
if (dmcu_dce == NULL) {
BREAK_TO_DEBUGGER();
@@ -1126,7 +1126,7 @@ struct dmcu *dcn10_dmcu_create(
const struct dce_dmcu_shift *dmcu_shift,
const struct dce_dmcu_mask *dmcu_mask)
{
- struct dce_dmcu *dmcu_dce = kzalloc(sizeof(*dmcu_dce), GFP_KERNEL);
+ struct dce_dmcu *dmcu_dce = kzalloc_obj(*dmcu_dce, GFP_KERNEL);
if (dmcu_dce == NULL) {
BREAK_TO_DEBUGGER();
@@ -1147,7 +1147,7 @@ struct dmcu *dcn20_dmcu_create(
const struct dce_dmcu_shift *dmcu_shift,
const struct dce_dmcu_mask *dmcu_mask)
{
- struct dce_dmcu *dmcu_dce = kzalloc(sizeof(*dmcu_dce), GFP_KERNEL);
+ struct dce_dmcu *dmcu_dce = kzalloc_obj(*dmcu_dce, GFP_KERNEL);
if (dmcu_dce == NULL) {
BREAK_TO_DEBUGGER();
@@ -1168,7 +1168,7 @@ struct dmcu *dcn21_dmcu_create(
const struct dce_dmcu_shift *dmcu_shift,
const struct dce_dmcu_mask *dmcu_mask)
{
- struct dce_dmcu *dmcu_dce = kzalloc(sizeof(*dmcu_dce), GFP_KERNEL);
+ struct dce_dmcu *dmcu_dce = kzalloc_obj(*dmcu_dce, GFP_KERNEL);
if (dmcu_dce == NULL) {
BREAK_TO_DEBUGGER();
diff --git a/drivers/gpu/drm/amd/display/dc/dce/dmub_abm.c b/drivers/gpu/drm/amd/display/dc/dce/dmub_abm.c
index 3b9011ef9b68..11ba6e59f5b5 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dmub_abm.c
+++ b/drivers/gpu/drm/amd/display/dc/dce/dmub_abm.c
@@ -222,7 +222,7 @@ struct abm *dmub_abm_create(
const struct dce_abm_mask *abm_mask)
{
if (ctx->dc->caps.dmcub_support) {
- struct dce_abm *abm_dce = kzalloc(sizeof(*abm_dce), GFP_KERNEL);
+ struct dce_abm *abm_dce = kzalloc_obj(*abm_dce, GFP_KERNEL);
if (abm_dce == NULL) {
BREAK_TO_DEBUGGER();
diff --git a/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c b/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
index 87af4fdc04a6..4527e35a0666 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
+++ b/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
@@ -488,7 +488,7 @@ static void dmub_psr_construct(struct dmub_psr *psr, struct dc_context *ctx)
*/
struct dmub_psr *dmub_psr_create(struct dc_context *ctx)
{
- struct dmub_psr *psr = kzalloc(sizeof(struct dmub_psr), GFP_KERNEL);
+ struct dmub_psr *psr = kzalloc_obj(struct dmub_psr, GFP_KERNEL);
if (psr == NULL) {
BREAK_TO_DEBUGGER();
diff --git a/drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c b/drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
index fd8244c94687..c590c9274f21 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
+++ b/drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
@@ -438,7 +438,7 @@ static void dmub_replay_construct(struct dmub_replay *replay, struct dc_context
*/
struct dmub_replay *dmub_replay_create(struct dc_context *ctx)
{
- struct dmub_replay *replay = kzalloc(sizeof(struct dmub_replay), GFP_KERNEL);
+ struct dmub_replay *replay = kzalloc_obj(struct dmub_replay, GFP_KERNEL);
if (replay == NULL) {
BREAK_TO_DEBUGGER();
diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c
index 59a0961b49da..68849d518e76 100644
--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c
+++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c
@@ -394,7 +394,7 @@ void dce110_compressor_set_fbc_invalidation_triggers(
struct compressor *dce110_compressor_create(struct dc_context *ctx)
{
struct dce110_compressor *cp110 =
- kzalloc(sizeof(struct dce110_compressor), GFP_KERNEL);
+ kzalloc_obj(struct dce110_compressor, GFP_KERNEL);
if (!cp110)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/dce112/dce112_compressor.c b/drivers/gpu/drm/amd/display/dc/dce112/dce112_compressor.c
index faae12cf7968..24effd7d3ea3 100644
--- a/drivers/gpu/drm/amd/display/dc/dce112/dce112_compressor.c
+++ b/drivers/gpu/drm/amd/display/dc/dce112/dce112_compressor.c
@@ -831,7 +831,7 @@ void dce112_compressor_construct(struct dce112_compressor *compressor,
struct compressor *dce112_compressor_create(struct dc_context *ctx)
{
struct dce112_compressor *cp110 =
- kzalloc(sizeof(struct dce112_compressor), GFP_KERNEL);
+ kzalloc_obj(struct dce112_compressor, GFP_KERNEL);
if (!cp110)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/dio/virtual/virtual_stream_encoder.c b/drivers/gpu/drm/amd/display/dc/dio/virtual/virtual_stream_encoder.c
index c5d2e9404d94..f30eeda44842 100644
--- a/drivers/gpu/drm/amd/display/dc/dio/virtual/virtual_stream_encoder.c
+++ b/drivers/gpu/drm/amd/display/dc/dio/virtual/virtual_stream_encoder.c
@@ -159,7 +159,7 @@ bool virtual_stream_encoder_construct(
struct stream_encoder *virtual_stream_encoder_create(
struct dc_context *ctx, struct dc_bios *bp)
{
- struct stream_encoder *enc = kzalloc(sizeof(*enc), GFP_KERNEL);
+ struct stream_encoder *enc = kzalloc_obj(*enc, GFP_KERNEL);
if (!enc)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/dwb/dcn30/dcn30_dwb_cm.c b/drivers/gpu/drm/amd/display/dc/dwb/dcn30/dcn30_dwb_cm.c
index 03a50c32fcfe..c4b1a337ac92 100644
--- a/drivers/gpu/drm/amd/display/dc/dwb/dcn30/dcn30_dwb_cm.c
+++ b/drivers/gpu/drm/amd/display/dc/dwb/dcn30/dcn30_dwb_cm.c
@@ -280,7 +280,7 @@ bool dwb3_ogam_set_input_transfer_func(
if (in_transfer_func_dwb_ogam == NULL)
return result;
- dwb_ogam_lut = kzalloc(sizeof(*dwb_ogam_lut), GFP_KERNEL);
+ dwb_ogam_lut = kzalloc_obj(*dwb_ogam_lut, GFP_KERNEL);
if (dwb_ogam_lut) {
cm_helper_translate_curve_to_hw_format(dwbc->ctx,
diff --git a/drivers/gpu/drm/amd/display/dc/gpio/gpio_base.c b/drivers/gpu/drm/amd/display/dc/gpio/gpio_base.c
index 8183cdf517b8..4e3a5b3513d8 100644
--- a/drivers/gpu/drm/amd/display/dc/gpio/gpio_base.c
+++ b/drivers/gpu/drm/amd/display/dc/gpio/gpio_base.c
@@ -270,7 +270,7 @@ struct gpio *dal_gpio_create(
uint32_t en,
enum gpio_pin_output_state output_state)
{
- struct gpio *gpio = kzalloc(sizeof(struct gpio), GFP_KERNEL);
+ struct gpio *gpio = kzalloc_obj(struct gpio, GFP_KERNEL);
if (!gpio) {
ASSERT_CRITICAL(false);
diff --git a/drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c b/drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c
index 942d9f0b6df2..fd7be0a35d0f 100644
--- a/drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c
+++ b/drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c
@@ -58,7 +58,7 @@ struct gpio_service *dal_gpio_service_create(
struct gpio_service *service;
int32_t index_of_id;
- service = kzalloc(sizeof(struct gpio_service), GFP_KERNEL);
+ service = kzalloc_obj(struct gpio_service, GFP_KERNEL);
if (!service) {
BREAK_TO_DEBUGGER();
@@ -498,7 +498,7 @@ struct ddc *dal_gpio_create_ddc(
if (!service->translate.funcs->offset_to_id(offset, mask, &id, &en))
return NULL;
- ddc = kzalloc(sizeof(struct ddc), GFP_KERNEL);
+ ddc = kzalloc_obj(struct ddc, GFP_KERNEL);
if (!ddc) {
BREAK_TO_DEBUGGER();
diff --git a/drivers/gpu/drm/amd/display/dc/gpio/hw_ddc.c b/drivers/gpu/drm/amd/display/dc/gpio/hw_ddc.c
index d9e6e70dc394..05fa4119bf55 100644
--- a/drivers/gpu/drm/amd/display/dc/gpio/hw_ddc.c
+++ b/drivers/gpu/drm/amd/display/dc/gpio/hw_ddc.c
@@ -233,7 +233,7 @@ void dal_hw_ddc_init(
*hw_ddc = NULL;
}
- *hw_ddc = kzalloc(sizeof(struct hw_ddc), GFP_KERNEL);
+ *hw_ddc = kzalloc_obj(struct hw_ddc, GFP_KERNEL);
if (!*hw_ddc) {
ASSERT_CRITICAL(false);
return;
diff --git a/drivers/gpu/drm/amd/display/dc/gpio/hw_generic.c b/drivers/gpu/drm/amd/display/dc/gpio/hw_generic.c
index 6cd50232c432..61bbcade18cb 100644
--- a/drivers/gpu/drm/amd/display/dc/gpio/hw_generic.c
+++ b/drivers/gpu/drm/amd/display/dc/gpio/hw_generic.c
@@ -111,7 +111,7 @@ void dal_hw_generic_init(
*hw_generic = NULL;
}
- *hw_generic = kzalloc(sizeof(struct hw_generic), GFP_KERNEL);
+ *hw_generic = kzalloc_obj(struct hw_generic, GFP_KERNEL);
if (!*hw_generic) {
ASSERT_CRITICAL(false);
return;
diff --git a/drivers/gpu/drm/amd/display/dc/gpio/hw_hpd.c b/drivers/gpu/drm/amd/display/dc/gpio/hw_hpd.c
index 01ec451004f7..ee7d794a8c60 100644
--- a/drivers/gpu/drm/amd/display/dc/gpio/hw_hpd.c
+++ b/drivers/gpu/drm/amd/display/dc/gpio/hw_hpd.c
@@ -132,7 +132,7 @@ void dal_hw_hpd_init(
*hw_hpd = NULL;
}
- *hw_hpd = kzalloc(sizeof(struct hw_hpd), GFP_KERNEL);
+ *hw_hpd = kzalloc_obj(struct hw_hpd, GFP_KERNEL);
if (!*hw_hpd) {
ASSERT_CRITICAL(false);
return;
diff --git a/drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c b/drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
index 5243177c1faa..7083c57da007 100644
--- a/drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
+++ b/drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
@@ -2399,7 +2399,7 @@ static int dcn10_align_pixel_clocks(struct dc *dc, int group_size,
DC_LOGGER_INIT(dc_ctx->logger);
- hw_crtc_timing = kcalloc(MAX_PIPES, sizeof(*hw_crtc_timing), GFP_KERNEL);
+ hw_crtc_timing = kzalloc_objs(*hw_crtc_timing, MAX_PIPES, GFP_KERNEL);
if (!hw_crtc_timing)
return master;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dce110/irq_service_dce110.c b/drivers/gpu/drm/amd/display/dc/irq/dce110/irq_service_dce110.c
index bb576a9c5fdb..002210b6bb62 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dce110/irq_service_dce110.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dce110/irq_service_dce110.c
@@ -419,8 +419,7 @@ static void dce110_irq_construct(struct irq_service *irq_service,
struct irq_service *
dal_irq_service_dce110_create(struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
- GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dce120/irq_service_dce120.c b/drivers/gpu/drm/amd/display/dc/irq/dce120/irq_service_dce120.c
index 33ce470e4c88..47714407252d 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dce120/irq_service_dce120.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dce120/irq_service_dce120.c
@@ -257,8 +257,7 @@ static void dce120_irq_construct(
struct irq_service *dal_irq_service_dce120_create(
struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
- GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dce60/irq_service_dce60.c b/drivers/gpu/drm/amd/display/dc/irq/dce60/irq_service_dce60.c
index d777b85e70da..47a2a53979db 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dce60/irq_service_dce60.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dce60/irq_service_dce60.c
@@ -355,8 +355,7 @@ static void dce60_irq_construct(
struct irq_service *dal_irq_service_dce60_create(
struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
- GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dce80/irq_service_dce80.c b/drivers/gpu/drm/amd/display/dc/irq/dce80/irq_service_dce80.c
index 3a9163acb49b..bad0e02713f8 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dce80/irq_service_dce80.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dce80/irq_service_dce80.c
@@ -267,8 +267,7 @@ static void dce80_irq_construct(
struct irq_service *dal_irq_service_dce80_create(
struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
- GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn10/irq_service_dcn10.c b/drivers/gpu/drm/amd/display/dc/irq/dcn10/irq_service_dcn10.c
index 4ce9edd16344..51f3a5042788 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn10/irq_service_dcn10.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn10/irq_service_dcn10.c
@@ -369,8 +369,7 @@ static void dcn10_irq_construct(
struct irq_service *dal_irq_service_dcn10_create(
struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
- GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c b/drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c
index 5847af0e66cb..cd09fa6e6706 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c
@@ -374,8 +374,7 @@ static void dcn20_irq_construct(
struct irq_service *dal_irq_service_dcn20_create(
struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
- GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn201/irq_service_dcn201.c b/drivers/gpu/drm/amd/display/dc/irq/dcn201/irq_service_dcn201.c
index 6417011d2246..7ca085b418e3 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn201/irq_service_dcn201.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn201/irq_service_dcn201.c
@@ -328,8 +328,7 @@ static void dcn201_irq_construct(
struct irq_service *dal_irq_service_dcn201_create(
struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
- GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.c b/drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.c
index 71d2f065140b..67fbcce3409f 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.c
@@ -402,8 +402,7 @@ static void dcn21_irq_construct(
struct irq_service *dal_irq_service_dcn21_create(
struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
- GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn30/irq_service_dcn30.c b/drivers/gpu/drm/amd/display/dc/irq/dcn30/irq_service_dcn30.c
index 2a4080bdcf6b..10a16dc17487 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn30/irq_service_dcn30.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn30/irq_service_dcn30.c
@@ -411,8 +411,7 @@ static void dcn30_irq_construct(
struct irq_service *dal_irq_service_dcn30_create(
struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
- GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn302/irq_service_dcn302.c b/drivers/gpu/drm/amd/display/dc/irq/dcn302/irq_service_dcn302.c
index 624f1ac309f8..55c863790402 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn302/irq_service_dcn302.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn302/irq_service_dcn302.c
@@ -377,7 +377,7 @@ static void dcn302_irq_construct(struct irq_service *irq_service, struct irq_ser
struct irq_service *dal_irq_service_dcn302_create(struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service), GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn303/irq_service_dcn303.c b/drivers/gpu/drm/amd/display/dc/irq/dcn303/irq_service_dcn303.c
index 137caffae916..2ce7c829a445 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn303/irq_service_dcn303.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn303/irq_service_dcn303.c
@@ -273,7 +273,7 @@ static void dcn303_irq_construct(struct irq_service *irq_service, struct irq_ser
struct irq_service *dal_irq_service_dcn303_create(struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service), GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn31/irq_service_dcn31.c b/drivers/gpu/drm/amd/display/dc/irq/dcn31/irq_service_dcn31.c
index 921cb167d920..710cda204bee 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn31/irq_service_dcn31.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn31/irq_service_dcn31.c
@@ -393,8 +393,7 @@ static void dcn31_irq_construct(
struct irq_service *dal_irq_service_dcn31_create(
struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
- GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn314/irq_service_dcn314.c b/drivers/gpu/drm/amd/display/dc/irq/dcn314/irq_service_dcn314.c
index 0118fd6e5db0..8cb120a3ceb7 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn314/irq_service_dcn314.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn314/irq_service_dcn314.c
@@ -395,8 +395,7 @@ static void dcn314_irq_construct(
struct irq_service *dal_irq_service_dcn314_create(
struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
- GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn315/irq_service_dcn315.c b/drivers/gpu/drm/amd/display/dc/irq/dcn315/irq_service_dcn315.c
index adebfc888618..f3a0f8f176d8 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn315/irq_service_dcn315.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn315/irq_service_dcn315.c
@@ -400,8 +400,7 @@ static void dcn315_irq_construct(
struct irq_service *dal_irq_service_dcn315_create(
struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
- GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn32/irq_service_dcn32.c b/drivers/gpu/drm/amd/display/dc/irq/dcn32/irq_service_dcn32.c
index e9e315c75d76..80b388ac3511 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn32/irq_service_dcn32.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn32/irq_service_dcn32.c
@@ -425,8 +425,7 @@ static void dcn32_irq_construct(
struct irq_service *dal_irq_service_dcn32_create(
struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
- GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn35/irq_service_dcn35.c b/drivers/gpu/drm/amd/display/dc/irq/dcn35/irq_service_dcn35.c
index 79e5e8c137ca..44b3c3b0c657 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn35/irq_service_dcn35.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn35/irq_service_dcn35.c
@@ -389,8 +389,7 @@ static void dcn35_irq_construct(
struct irq_service *dal_irq_service_dcn35_create(
struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
- GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn351/irq_service_dcn351.c b/drivers/gpu/drm/amd/display/dc/irq/dcn351/irq_service_dcn351.c
index 163b8ee9ebf7..e4600282cf18 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn351/irq_service_dcn351.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn351/irq_service_dcn351.c
@@ -371,8 +371,7 @@ static void dcn351_irq_construct(
struct irq_service *dal_irq_service_dcn351_create(
struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
- GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn36/irq_service_dcn36.c b/drivers/gpu/drm/amd/display/dc/irq/dcn36/irq_service_dcn36.c
index f716ab0fd30e..e81077f764df 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn36/irq_service_dcn36.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn36/irq_service_dcn36.c
@@ -370,8 +370,7 @@ static void dcn36_irq_construct(
struct irq_service *dal_irq_service_dcn36_create(
struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
- GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn401/irq_service_dcn401.c b/drivers/gpu/drm/amd/display/dc/irq/dcn401/irq_service_dcn401.c
index fd9bb1950c20..97c80aa30e8b 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn401/irq_service_dcn401.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn401/irq_service_dcn401.c
@@ -403,8 +403,7 @@ static void dcn401_irq_construct(
struct irq_service *dal_irq_service_dcn401_create(
struct irq_service_init_data *init_data)
{
- struct irq_service *irq_service = kzalloc(sizeof(*irq_service),
- GFP_KERNEL);
+ struct irq_service *irq_service = kzalloc_obj(*irq_service, GFP_KERNEL);
if (!irq_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/link/link_factory.c b/drivers/gpu/drm/amd/display/dc/link/link_factory.c
index 49db8123f08c..e1cf56cdc8c0 100644
--- a/drivers/gpu/drm/amd/display/dc/link/link_factory.c
+++ b/drivers/gpu/drm/amd/display/dc/link/link_factory.c
@@ -302,7 +302,7 @@ static void construct_link_service(struct link_service *link_srv)
struct link_service *link_create_link_service(void)
{
- struct link_service *link_srv = kzalloc(sizeof(*link_srv), GFP_KERNEL);
+ struct link_service *link_srv = kzalloc_obj(*link_srv, GFP_KERNEL);
if (link_srv == NULL)
goto fail;
@@ -897,8 +897,7 @@ static bool link_construct(struct dc_link *link,
struct dc_link *link_create(const struct link_init_data *init_params)
{
- struct dc_link *link =
- kzalloc(sizeof(*link), GFP_KERNEL);
+ struct dc_link *link = kzalloc_obj(*link, GFP_KERNEL);
if (NULL == link)
goto alloc_fail;
diff --git a/drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c b/drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
index 5d2bcce2f669..1a7c73263615 100644
--- a/drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
+++ b/drivers/gpu/drm/amd/display/dc/link/protocols/link_ddc.c
@@ -156,7 +156,7 @@ struct ddc_service *link_create_ddc_service(
{
struct ddc_service *ddc_service;
- ddc_service = kzalloc(sizeof(struct ddc_service), GFP_KERNEL);
+ ddc_service = kzalloc_obj(struct ddc_service, GFP_KERNEL);
if (!ddc_service)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/pg/dcn35/dcn35_pg_cntl.c b/drivers/gpu/drm/amd/display/dc/pg/dcn35/dcn35_pg_cntl.c
index 72bd43f9bbe2..0df983c70ba3 100644
--- a/drivers/gpu/drm/amd/display/dc/pg/dcn35/dcn35_pg_cntl.c
+++ b/drivers/gpu/drm/amd/display/dc/pg/dcn35/dcn35_pg_cntl.c
@@ -542,7 +542,7 @@ struct pg_cntl *pg_cntl35_create(
const struct pg_cntl_shift *pg_cntl_shift,
const struct pg_cntl_mask *pg_cntl_mask)
{
- struct dcn_pg_cntl *pg_cntl_dcn = kzalloc(sizeof(*pg_cntl_dcn), GFP_KERNEL);
+ struct dcn_pg_cntl *pg_cntl_dcn = kzalloc_obj(*pg_cntl_dcn, GFP_KERNEL);
struct pg_cntl *base;
if (pg_cntl_dcn == NULL) {
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dce100/dce100_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dce100/dce100_resource.c
index 05f7ff60f8f5..e562c71fb432 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dce100/dce100_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dce100/dce100_resource.c
@@ -472,7 +472,7 @@ static struct timing_generator *dce100_timing_generator_create(
const struct dce110_timing_generator_offsets *offsets)
{
struct dce110_timing_generator *tg110 =
- kzalloc(sizeof(struct dce110_timing_generator), GFP_KERNEL);
+ kzalloc_obj(struct dce110_timing_generator, GFP_KERNEL);
if (!tg110)
return NULL;
@@ -486,7 +486,7 @@ static struct stream_encoder *dce100_stream_encoder_create(
struct dc_context *ctx)
{
struct dce110_stream_encoder *enc110 =
- kzalloc(sizeof(struct dce110_stream_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dce110_stream_encoder, GFP_KERNEL);
if (!enc110)
return NULL;
@@ -520,7 +520,7 @@ static const struct dce_hwseq_mask hwseq_mask = {
static struct dce_hwseq *dce100_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -573,8 +573,8 @@ static struct mem_input *dce100_mem_input_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dce_mem_input *dce_mi = kzalloc(sizeof(struct dce_mem_input),
- GFP_KERNEL);
+ struct dce_mem_input *dce_mi = kzalloc_obj(struct dce_mem_input,
+ GFP_KERNEL);
if (!dce_mi) {
BREAK_TO_DEBUGGER();
@@ -597,7 +597,7 @@ static struct transform *dce100_transform_create(
uint32_t inst)
{
struct dce_transform *transform =
- kzalloc(sizeof(struct dce_transform), GFP_KERNEL);
+ kzalloc_obj(struct dce_transform, GFP_KERNEL);
if (!transform)
return NULL;
@@ -610,7 +610,7 @@ static struct transform *dce100_transform_create(
static struct input_pixel_processor *dce100_ipp_create(
struct dc_context *ctx, uint32_t inst)
{
- struct dce_ipp *ipp = kzalloc(sizeof(struct dce_ipp), GFP_KERNEL);
+ struct dce_ipp *ipp = kzalloc_obj(struct dce_ipp, GFP_KERNEL);
if (!ipp) {
BREAK_TO_DEBUGGER();
@@ -634,7 +634,7 @@ static struct link_encoder *dce100_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dce110_link_encoder *enc110 =
- kzalloc(sizeof(struct dce110_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dce110_link_encoder, GFP_KERNEL);
int link_regs_id;
if (!enc110)
@@ -669,7 +669,7 @@ static struct link_encoder *dce100_link_encoder_create(
static struct panel_cntl *dce100_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dce_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dce_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dce_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -688,7 +688,7 @@ static struct output_pixel_processor *dce100_opp_create(
uint32_t inst)
{
struct dce110_opp *opp =
- kzalloc(sizeof(struct dce110_opp), GFP_KERNEL);
+ kzalloc_obj(struct dce110_opp, GFP_KERNEL);
if (!opp)
return NULL;
@@ -703,7 +703,7 @@ static struct dce_aux *dce100_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -741,7 +741,7 @@ static struct dce_i2c_hw *dce100_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -759,7 +759,7 @@ static struct clock_source *dce100_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -1215,7 +1215,7 @@ struct resource_pool *dce100_create_resource_pool(
struct dc *dc)
{
struct dce110_resource_pool *pool =
- kzalloc(sizeof(struct dce110_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dce110_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dce110/dce110_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dce110/dce110_resource.c
index 7c09825cd9bd..68964e8ce10b 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dce110/dce110_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dce110/dce110_resource.c
@@ -516,7 +516,7 @@ static struct timing_generator *dce110_timing_generator_create(
const struct dce110_timing_generator_offsets *offsets)
{
struct dce110_timing_generator *tg110 =
- kzalloc(sizeof(struct dce110_timing_generator), GFP_KERNEL);
+ kzalloc_obj(struct dce110_timing_generator, GFP_KERNEL);
if (!tg110)
return NULL;
@@ -530,7 +530,7 @@ static struct stream_encoder *dce110_stream_encoder_create(
struct dc_context *ctx)
{
struct dce110_stream_encoder *enc110 =
- kzalloc(sizeof(struct dce110_stream_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dce110_stream_encoder, GFP_KERNEL);
if (!enc110)
return NULL;
@@ -563,7 +563,7 @@ static const struct dce_hwseq_mask hwseq_mask = {
static struct dce_hwseq *dce110_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -608,8 +608,8 @@ static struct mem_input *dce110_mem_input_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dce_mem_input *dce_mi = kzalloc(sizeof(struct dce_mem_input),
- GFP_KERNEL);
+ struct dce_mem_input *dce_mi = kzalloc_obj(struct dce_mem_input,
+ GFP_KERNEL);
if (!dce_mi) {
BREAK_TO_DEBUGGER();
@@ -632,7 +632,7 @@ static struct transform *dce110_transform_create(
uint32_t inst)
{
struct dce_transform *transform =
- kzalloc(sizeof(struct dce_transform), GFP_KERNEL);
+ kzalloc_obj(struct dce_transform, GFP_KERNEL);
if (!transform)
return NULL;
@@ -645,7 +645,7 @@ static struct transform *dce110_transform_create(
static struct input_pixel_processor *dce110_ipp_create(
struct dc_context *ctx, uint32_t inst)
{
- struct dce_ipp *ipp = kzalloc(sizeof(struct dce_ipp), GFP_KERNEL);
+ struct dce_ipp *ipp = kzalloc_obj(struct dce_ipp, GFP_KERNEL);
if (!ipp) {
BREAK_TO_DEBUGGER();
@@ -669,7 +669,7 @@ static struct link_encoder *dce110_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dce110_link_encoder *enc110 =
- kzalloc(sizeof(struct dce110_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dce110_link_encoder, GFP_KERNEL);
int link_regs_id;
if (!enc110 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
@@ -690,7 +690,7 @@ static struct link_encoder *dce110_link_encoder_create(
static struct panel_cntl *dce110_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dce_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dce_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dce_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -709,7 +709,7 @@ static struct output_pixel_processor *dce110_opp_create(
uint32_t inst)
{
struct dce110_opp *opp =
- kzalloc(sizeof(struct dce110_opp), GFP_KERNEL);
+ kzalloc_obj(struct dce110_opp, GFP_KERNEL);
if (!opp)
return NULL;
@@ -724,7 +724,7 @@ static struct dce_aux *dce110_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -762,7 +762,7 @@ static struct dce_i2c_hw *dce110_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -780,7 +780,7 @@ static struct clock_source *dce110_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -1250,14 +1250,12 @@ static const struct resource_funcs dce110_res_pool_funcs = {
static bool underlay_create(struct dc_context *ctx, struct resource_pool *pool)
{
- struct dce110_timing_generator *dce110_tgv = kzalloc(sizeof(*dce110_tgv),
- GFP_KERNEL);
- struct dce_transform *dce110_xfmv = kzalloc(sizeof(*dce110_xfmv),
- GFP_KERNEL);
- struct dce_mem_input *dce110_miv = kzalloc(sizeof(*dce110_miv),
- GFP_KERNEL);
- struct dce110_opp *dce110_oppv = kzalloc(sizeof(*dce110_oppv),
- GFP_KERNEL);
+ struct dce110_timing_generator *dce110_tgv = kzalloc_obj(*dce110_tgv,
+ GFP_KERNEL);
+ struct dce_transform *dce110_xfmv = kzalloc_obj(*dce110_xfmv,
+ GFP_KERNEL);
+ struct dce_mem_input *dce110_miv = kzalloc_obj(*dce110_miv, GFP_KERNEL);
+ struct dce110_opp *dce110_oppv = kzalloc_obj(*dce110_oppv, GFP_KERNEL);
if (!dce110_tgv || !dce110_xfmv || !dce110_miv || !dce110_oppv) {
kfree(dce110_tgv);
@@ -1545,7 +1543,7 @@ struct resource_pool *dce110_create_resource_pool(
struct hw_asic_id asic_id)
{
struct dce110_resource_pool *pool =
- kzalloc(sizeof(struct dce110_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dce110_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dce112/dce112_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dce112/dce112_resource.c
index 3f0a6bc4dcc2..9c3f6e96f0ae 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dce112/dce112_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dce112/dce112_resource.c
@@ -497,7 +497,7 @@ static struct timing_generator *dce112_timing_generator_create(
const struct dce110_timing_generator_offsets *offsets)
{
struct dce110_timing_generator *tg110 =
- kzalloc(sizeof(struct dce110_timing_generator), GFP_KERNEL);
+ kzalloc_obj(struct dce110_timing_generator, GFP_KERNEL);
if (!tg110)
return NULL;
@@ -511,7 +511,7 @@ static struct stream_encoder *dce112_stream_encoder_create(
struct dc_context *ctx)
{
struct dce110_stream_encoder *enc110 =
- kzalloc(sizeof(struct dce110_stream_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dce110_stream_encoder, GFP_KERNEL);
if (!enc110)
return NULL;
@@ -540,7 +540,7 @@ static const struct dce_hwseq_mask hwseq_mask = {
static struct dce_hwseq *dce112_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -580,8 +580,8 @@ static struct mem_input *dce112_mem_input_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dce_mem_input *dce_mi = kzalloc(sizeof(struct dce_mem_input),
- GFP_KERNEL);
+ struct dce_mem_input *dce_mi = kzalloc_obj(struct dce_mem_input,
+ GFP_KERNEL);
if (!dce_mi) {
BREAK_TO_DEBUGGER();
@@ -603,7 +603,7 @@ static struct transform *dce112_transform_create(
uint32_t inst)
{
struct dce_transform *transform =
- kzalloc(sizeof(struct dce_transform), GFP_KERNEL);
+ kzalloc_obj(struct dce_transform, GFP_KERNEL);
if (!transform)
return NULL;
@@ -630,7 +630,7 @@ static struct link_encoder *dce112_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dce110_link_encoder *enc110 =
- kzalloc(sizeof(struct dce110_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dce110_link_encoder, GFP_KERNEL);
int link_regs_id;
if (!enc110 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
@@ -651,7 +651,7 @@ static struct link_encoder *dce112_link_encoder_create(
static struct panel_cntl *dce112_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dce_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dce_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dce_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -668,7 +668,7 @@ static struct panel_cntl *dce112_panel_cntl_create(const struct panel_cntl_init_
static struct input_pixel_processor *dce112_ipp_create(
struct dc_context *ctx, uint32_t inst)
{
- struct dce_ipp *ipp = kzalloc(sizeof(struct dce_ipp), GFP_KERNEL);
+ struct dce_ipp *ipp = kzalloc_obj(struct dce_ipp, GFP_KERNEL);
if (!ipp) {
BREAK_TO_DEBUGGER();
@@ -685,7 +685,7 @@ static struct output_pixel_processor *dce112_opp_create(
uint32_t inst)
{
struct dce110_opp *opp =
- kzalloc(sizeof(struct dce110_opp), GFP_KERNEL);
+ kzalloc_obj(struct dce110_opp, GFP_KERNEL);
if (!opp)
return NULL;
@@ -700,7 +700,7 @@ static struct dce_aux *dce112_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -738,7 +738,7 @@ static struct dce_i2c_hw *dce112_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -756,7 +756,7 @@ static struct clock_source *dce112_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -1423,7 +1423,7 @@ struct resource_pool *dce112_create_resource_pool(
struct dc *dc)
{
struct dce110_resource_pool *pool =
- kzalloc(sizeof(struct dce110_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dce110_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dce120/dce120_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dce120/dce120_resource.c
index 92890784caa6..48f8a418f324 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dce120/dce120_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dce120/dce120_resource.c
@@ -428,7 +428,7 @@ static struct output_pixel_processor *dce120_opp_create(
uint32_t inst)
{
struct dce110_opp *opp =
- kzalloc(sizeof(struct dce110_opp), GFP_KERNEL);
+ kzalloc_obj(struct dce110_opp, GFP_KERNEL);
if (!opp)
return NULL;
@@ -442,7 +442,7 @@ static struct dce_aux *dce120_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -480,7 +480,7 @@ static struct dce_i2c_hw *dce120_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -541,8 +541,7 @@ static struct clock_source *dce120_clock_source_create(
const struct dce110_clk_src_regs *regs,
bool dp_clk_src)
{
- struct dce110_clk_src *clk_src =
- kzalloc(sizeof(*clk_src), GFP_KERNEL);
+ struct dce110_clk_src *clk_src = kzalloc_obj(*clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -583,7 +582,7 @@ static struct timing_generator *dce120_timing_generator_create(
const struct dce110_timing_generator_offsets *offsets)
{
struct dce110_timing_generator *tg110 =
- kzalloc(sizeof(struct dce110_timing_generator), GFP_KERNEL);
+ kzalloc_obj(struct dce110_timing_generator, GFP_KERNEL);
if (!tg110)
return NULL;
@@ -714,7 +713,7 @@ static struct link_encoder *dce120_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dce110_link_encoder *enc110 =
- kzalloc(sizeof(struct dce110_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dce110_link_encoder, GFP_KERNEL);
int link_regs_id;
if (!enc110 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
@@ -736,7 +735,7 @@ static struct link_encoder *dce120_link_encoder_create(
static struct panel_cntl *dce120_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dce_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dce_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dce_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -753,7 +752,7 @@ static struct panel_cntl *dce120_panel_cntl_create(const struct panel_cntl_init_
static struct input_pixel_processor *dce120_ipp_create(
struct dc_context *ctx, uint32_t inst)
{
- struct dce_ipp *ipp = kzalloc(sizeof(struct dce_ipp), GFP_KERNEL);
+ struct dce_ipp *ipp = kzalloc_obj(struct dce_ipp, GFP_KERNEL);
if (!ipp) {
BREAK_TO_DEBUGGER();
@@ -770,7 +769,7 @@ static struct stream_encoder *dce120_stream_encoder_create(
struct dc_context *ctx)
{
struct dce110_stream_encoder *enc110 =
- kzalloc(sizeof(struct dce110_stream_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dce110_stream_encoder, GFP_KERNEL);
if (!enc110)
return NULL;
@@ -813,7 +812,7 @@ static const struct dce_hwseq_mask dce121_hwseq_mask = {
static struct dce_hwseq *dce120_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -827,7 +826,7 @@ static struct dce_hwseq *dce120_hwseq_create(
static struct dce_hwseq *dce121_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -875,8 +874,8 @@ static struct mem_input *dce120_mem_input_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dce_mem_input *dce_mi = kzalloc(sizeof(struct dce_mem_input),
- GFP_KERNEL);
+ struct dce_mem_input *dce_mi = kzalloc_obj(struct dce_mem_input,
+ GFP_KERNEL);
if (!dce_mi) {
BREAK_TO_DEBUGGER();
@@ -892,7 +891,7 @@ static struct transform *dce120_transform_create(
uint32_t inst)
{
struct dce_transform *transform =
- kzalloc(sizeof(struct dce_transform), GFP_KERNEL);
+ kzalloc_obj(struct dce_transform, GFP_KERNEL);
if (!transform)
return NULL;
@@ -1296,7 +1295,7 @@ struct resource_pool *dce120_create_resource_pool(
struct dc *dc)
{
struct dce110_resource_pool *pool =
- kzalloc(sizeof(struct dce110_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dce110_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dce60/dce60_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dce60/dce60_resource.c
index 8d810d5c8781..621739d0b024 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dce60/dce60_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dce60/dce60_resource.c
@@ -507,7 +507,7 @@ static struct timing_generator *dce60_timing_generator_create(
const struct dce110_timing_generator_offsets *offsets)
{
struct dce110_timing_generator *tg110 =
- kzalloc(sizeof(struct dce110_timing_generator), GFP_KERNEL);
+ kzalloc_obj(struct dce110_timing_generator, GFP_KERNEL);
if (!tg110)
return NULL;
@@ -521,7 +521,7 @@ static struct output_pixel_processor *dce60_opp_create(
uint32_t inst)
{
struct dce110_opp *opp =
- kzalloc(sizeof(struct dce110_opp), GFP_KERNEL);
+ kzalloc_obj(struct dce110_opp, GFP_KERNEL);
if (!opp)
return NULL;
@@ -536,7 +536,7 @@ static struct dce_aux *dce60_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -574,7 +574,7 @@ static struct dce_i2c_hw *dce60_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -589,7 +589,7 @@ static struct dce_i2c_sw *dce60_i2c_sw_create(
struct dc_context *ctx)
{
struct dce_i2c_sw *dce_i2c_sw =
- kzalloc(sizeof(struct dce_i2c_sw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_sw, GFP_KERNEL);
if (!dce_i2c_sw)
return NULL;
@@ -603,7 +603,7 @@ static struct stream_encoder *dce60_stream_encoder_create(
struct dc_context *ctx)
{
struct dce110_stream_encoder *enc110 =
- kzalloc(sizeof(struct dce110_stream_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dce110_stream_encoder, GFP_KERNEL);
if (!enc110)
return NULL;
@@ -638,7 +638,7 @@ static const struct dce_hwseq_mask hwseq_mask = {
static struct dce_hwseq *dce60_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -683,8 +683,8 @@ static struct mem_input *dce60_mem_input_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dce_mem_input *dce_mi = kzalloc(sizeof(struct dce_mem_input),
- GFP_KERNEL);
+ struct dce_mem_input *dce_mi = kzalloc_obj(struct dce_mem_input,
+ GFP_KERNEL);
if (!dce_mi) {
BREAK_TO_DEBUGGER();
@@ -707,7 +707,7 @@ static struct transform *dce60_transform_create(
uint32_t inst)
{
struct dce_transform *transform =
- kzalloc(sizeof(struct dce_transform), GFP_KERNEL);
+ kzalloc_obj(struct dce_transform, GFP_KERNEL);
if (!transform)
return NULL;
@@ -730,7 +730,7 @@ static struct link_encoder *dce60_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dce110_link_encoder *enc110 =
- kzalloc(sizeof(struct dce110_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dce110_link_encoder, GFP_KERNEL);
int link_regs_id;
if (!enc110)
@@ -765,7 +765,7 @@ static struct link_encoder *dce60_link_encoder_create(
static struct panel_cntl *dce60_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dce_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dce_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dce_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -787,7 +787,7 @@ static struct clock_source *dce60_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -812,7 +812,7 @@ static void dce60_clock_source_destroy(struct clock_source **clk_src)
static struct input_pixel_processor *dce60_ipp_create(
struct dc_context *ctx, uint32_t inst)
{
- struct dce_ipp *ipp = kzalloc(sizeof(struct dce_ipp), GFP_KERNEL);
+ struct dce_ipp *ipp = kzalloc_obj(struct dce_ipp, GFP_KERNEL);
if (!ipp) {
BREAK_TO_DEBUGGER();
@@ -1098,7 +1098,7 @@ struct resource_pool *dce60_create_resource_pool(
struct dc *dc)
{
struct dce110_resource_pool *pool =
- kzalloc(sizeof(struct dce110_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dce110_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
@@ -1296,7 +1296,7 @@ struct resource_pool *dce61_create_resource_pool(
struct dc *dc)
{
struct dce110_resource_pool *pool =
- kzalloc(sizeof(struct dce110_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dce110_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
@@ -1493,7 +1493,7 @@ struct resource_pool *dce64_create_resource_pool(
struct dc *dc)
{
struct dce110_resource_pool *pool =
- kzalloc(sizeof(struct dce110_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dce110_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dce80/dce80_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dce80/dce80_resource.c
index a68e799d5885..bef4a30caf7e 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dce80/dce80_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dce80/dce80_resource.c
@@ -513,7 +513,7 @@ static struct timing_generator *dce80_timing_generator_create(
const struct dce110_timing_generator_offsets *offsets)
{
struct dce110_timing_generator *tg110 =
- kzalloc(sizeof(struct dce110_timing_generator), GFP_KERNEL);
+ kzalloc_obj(struct dce110_timing_generator, GFP_KERNEL);
if (!tg110)
return NULL;
@@ -527,7 +527,7 @@ static struct output_pixel_processor *dce80_opp_create(
uint32_t inst)
{
struct dce110_opp *opp =
- kzalloc(sizeof(struct dce110_opp), GFP_KERNEL);
+ kzalloc_obj(struct dce110_opp, GFP_KERNEL);
if (!opp)
return NULL;
@@ -542,7 +542,7 @@ static struct dce_aux *dce80_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -580,7 +580,7 @@ static struct dce_i2c_hw *dce80_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -595,7 +595,7 @@ static struct dce_i2c_sw *dce80_i2c_sw_create(
struct dc_context *ctx)
{
struct dce_i2c_sw *dce_i2c_sw =
- kzalloc(sizeof(struct dce_i2c_sw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_sw, GFP_KERNEL);
if (!dce_i2c_sw)
return NULL;
@@ -609,7 +609,7 @@ static struct stream_encoder *dce80_stream_encoder_create(
struct dc_context *ctx)
{
struct dce110_stream_encoder *enc110 =
- kzalloc(sizeof(struct dce110_stream_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dce110_stream_encoder, GFP_KERNEL);
if (!enc110)
return NULL;
@@ -644,7 +644,7 @@ static const struct dce_hwseq_mask hwseq_mask = {
static struct dce_hwseq *dce80_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -689,8 +689,8 @@ static struct mem_input *dce80_mem_input_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dce_mem_input *dce_mi = kzalloc(sizeof(struct dce_mem_input),
- GFP_KERNEL);
+ struct dce_mem_input *dce_mi = kzalloc_obj(struct dce_mem_input,
+ GFP_KERNEL);
if (!dce_mi) {
BREAK_TO_DEBUGGER();
@@ -713,7 +713,7 @@ static struct transform *dce80_transform_create(
uint32_t inst)
{
struct dce_transform *transform =
- kzalloc(sizeof(struct dce_transform), GFP_KERNEL);
+ kzalloc_obj(struct dce_transform, GFP_KERNEL);
if (!transform)
return NULL;
@@ -736,7 +736,7 @@ static struct link_encoder *dce80_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dce110_link_encoder *enc110 =
- kzalloc(sizeof(struct dce110_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dce110_link_encoder, GFP_KERNEL);
int link_regs_id;
if (!enc110)
@@ -771,7 +771,7 @@ static struct link_encoder *dce80_link_encoder_create(
static struct panel_cntl *dce80_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dce_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dce_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dce_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -793,7 +793,7 @@ static struct clock_source *dce80_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -818,7 +818,7 @@ static void dce80_clock_source_destroy(struct clock_source **clk_src)
static struct input_pixel_processor *dce80_ipp_create(
struct dc_context *ctx, uint32_t inst)
{
- struct dce_ipp *ipp = kzalloc(sizeof(struct dce_ipp), GFP_KERNEL);
+ struct dce_ipp *ipp = kzalloc_obj(struct dce_ipp, GFP_KERNEL);
if (!ipp) {
BREAK_TO_DEBUGGER();
@@ -1109,7 +1109,7 @@ struct resource_pool *dce80_create_resource_pool(
struct dc *dc)
{
struct dce110_resource_pool *pool =
- kzalloc(sizeof(struct dce110_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dce110_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
@@ -1309,7 +1309,7 @@ struct resource_pool *dce81_create_resource_pool(
struct dc *dc)
{
struct dce110_resource_pool *pool =
- kzalloc(sizeof(struct dce110_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dce110_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
@@ -1507,7 +1507,7 @@ struct resource_pool *dce83_create_resource_pool(
struct dc *dc)
{
struct dce110_resource_pool *pool =
- kzalloc(sizeof(struct dce110_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dce110_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn10/dcn10_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn10/dcn10_resource.c
index 476780a5450f..6c066576a5a5 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn10/dcn10_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn10/dcn10_resource.c
@@ -574,7 +574,7 @@ static struct dpp *dcn10_dpp_create(
uint32_t inst)
{
struct dcn10_dpp *dpp =
- kzalloc(sizeof(struct dcn10_dpp), GFP_KERNEL);
+ kzalloc_obj(struct dcn10_dpp, GFP_KERNEL);
if (!dpp)
return NULL;
@@ -588,7 +588,7 @@ static struct input_pixel_processor *dcn10_ipp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn10_ipp *ipp =
- kzalloc(sizeof(struct dcn10_ipp), GFP_KERNEL);
+ kzalloc_obj(struct dcn10_ipp, GFP_KERNEL);
if (!ipp) {
BREAK_TO_DEBUGGER();
@@ -605,7 +605,7 @@ static struct output_pixel_processor *dcn10_opp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn10_opp *opp =
- kzalloc(sizeof(struct dcn10_opp), GFP_KERNEL);
+ kzalloc_obj(struct dcn10_opp, GFP_KERNEL);
if (!opp) {
BREAK_TO_DEBUGGER();
@@ -621,7 +621,7 @@ static struct dce_aux *dcn10_aux_engine_create(struct dc_context *ctx,
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -658,7 +658,7 @@ static struct dce_i2c_hw *dcn10_i2c_hw_create(struct dc_context *ctx,
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -670,8 +670,7 @@ static struct dce_i2c_hw *dcn10_i2c_hw_create(struct dc_context *ctx,
}
static struct mpc *dcn10_mpc_create(struct dc_context *ctx)
{
- struct dcn10_mpc *mpc10 = kzalloc(sizeof(struct dcn10_mpc),
- GFP_KERNEL);
+ struct dcn10_mpc *mpc10 = kzalloc_obj(struct dcn10_mpc, GFP_KERNEL);
if (!mpc10)
return NULL;
@@ -687,8 +686,8 @@ static struct mpc *dcn10_mpc_create(struct dc_context *ctx)
static struct hubbub *dcn10_hubbub_create(struct dc_context *ctx)
{
- struct dcn10_hubbub *dcn10_hubbub = kzalloc(sizeof(struct dcn10_hubbub),
- GFP_KERNEL);
+ struct dcn10_hubbub *dcn10_hubbub = kzalloc_obj(struct dcn10_hubbub,
+ GFP_KERNEL);
if (!dcn10_hubbub)
return NULL;
@@ -706,7 +705,7 @@ static struct timing_generator *dcn10_timing_generator_create(
uint32_t instance)
{
struct optc *tgn10 =
- kzalloc(sizeof(struct optc), GFP_KERNEL);
+ kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -739,7 +738,7 @@ static struct link_encoder *dcn10_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dcn10_link_encoder *enc10 =
- kzalloc(sizeof(struct dcn10_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn10_link_encoder, GFP_KERNEL);
int link_regs_id;
if (!enc10 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
@@ -763,7 +762,7 @@ static struct link_encoder *dcn10_link_encoder_create(
static struct panel_cntl *dcn10_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dce_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dce_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dce_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -785,7 +784,7 @@ static struct clock_source *dcn10_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -821,7 +820,7 @@ static struct stream_encoder *dcn10_stream_encoder_create(
struct dc_context *ctx)
{
struct dcn10_stream_encoder *enc1 =
- kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
if (!enc1)
return NULL;
@@ -847,7 +846,7 @@ static const struct dce_hwseq_mask hwseq_mask = {
static struct dce_hwseq *dcn10_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -891,7 +890,7 @@ static void dcn10_clock_source_destroy(struct clock_source **clk_src)
static struct pp_smu_funcs *dcn10_pp_smu_create(struct dc_context *ctx)
{
- struct pp_smu_funcs *pp_smu = kzalloc(sizeof(*pp_smu), GFP_KERNEL);
+ struct pp_smu_funcs *pp_smu = kzalloc_obj(*pp_smu, GFP_KERNEL);
if (!pp_smu)
return pp_smu;
@@ -984,7 +983,7 @@ static struct hubp *dcn10_hubp_create(
uint32_t inst)
{
struct dcn10_hubp *hubp1 =
- kzalloc(sizeof(struct dcn10_hubp), GFP_KERNEL);
+ kzalloc_obj(struct dcn10_hubp, GFP_KERNEL);
if (!hubp1)
return NULL;
@@ -1681,7 +1680,7 @@ struct resource_pool *dcn10_create_resource_pool(
struct dc *dc)
{
struct dcn10_resource_pool *pool =
- kzalloc(sizeof(struct dcn10_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dcn10_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn20/dcn20_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn20/dcn20_resource.c
index 6731544f0981..ba83a78f7fc1 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn20/dcn20_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn20/dcn20_resource.c
@@ -736,7 +736,7 @@ struct dpp *dcn20_dpp_create(
uint32_t inst)
{
struct dcn20_dpp *dpp =
- kzalloc(sizeof(struct dcn20_dpp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_dpp, GFP_KERNEL);
if (!dpp)
return NULL;
@@ -754,7 +754,7 @@ struct input_pixel_processor *dcn20_ipp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn10_ipp *ipp =
- kzalloc(sizeof(struct dcn10_ipp), GFP_KERNEL);
+ kzalloc_obj(struct dcn10_ipp, GFP_KERNEL);
if (!ipp) {
BREAK_TO_DEBUGGER();
@@ -771,7 +771,7 @@ struct output_pixel_processor *dcn20_opp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_opp *opp =
- kzalloc(sizeof(struct dcn20_opp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_opp, GFP_KERNEL);
if (!opp) {
BREAK_TO_DEBUGGER();
@@ -788,7 +788,7 @@ struct dce_aux *dcn20_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -826,7 +826,7 @@ struct dce_i2c_hw *dcn20_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -838,7 +838,7 @@ struct dce_i2c_hw *dcn20_i2c_hw_create(
}
struct mpc *dcn20_mpc_create(struct dc_context *ctx)
{
- struct dcn20_mpc *mpc20 = kzalloc(sizeof(struct dcn20_mpc), GFP_KERNEL);
+ struct dcn20_mpc *mpc20 = kzalloc_obj(struct dcn20_mpc, GFP_KERNEL);
if (!mpc20)
return NULL;
@@ -855,7 +855,8 @@ struct mpc *dcn20_mpc_create(struct dc_context *ctx)
struct hubbub *dcn20_hubbub_create(struct dc_context *ctx)
{
int i;
- struct dcn20_hubbub *hubbub = kzalloc(sizeof(struct dcn20_hubbub), GFP_KERNEL);
+ struct dcn20_hubbub *hubbub = kzalloc_obj(struct dcn20_hubbub,
+ GFP_KERNEL);
if (!hubbub)
return NULL;
@@ -883,7 +884,7 @@ struct timing_generator *dcn20_timing_generator_create(
uint32_t instance)
{
struct optc *tgn10 =
- kzalloc(sizeof(struct optc), GFP_KERNEL);
+ kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -917,7 +918,7 @@ struct link_encoder *dcn20_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dcn20_link_encoder *enc20 =
- kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
int link_regs_id;
if (!enc20 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
@@ -941,7 +942,7 @@ struct link_encoder *dcn20_link_encoder_create(
static struct panel_cntl *dcn20_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dce_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dce_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dce_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -963,7 +964,7 @@ static struct clock_source *dcn20_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -999,7 +1000,7 @@ struct stream_encoder *dcn20_stream_encoder_create(
struct dc_context *ctx)
{
struct dcn10_stream_encoder *enc1 =
- kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
if (!enc1)
return NULL;
@@ -1031,7 +1032,7 @@ static const struct dce_hwseq_mask hwseq_mask = {
struct dce_hwseq *dcn20_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -1062,7 +1063,7 @@ struct display_stream_compressor *dcn20_dsc_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_dsc *dsc =
- kzalloc(sizeof(struct dcn20_dsc), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_dsc, GFP_KERNEL);
if (!dsc) {
BREAK_TO_DEBUGGER();
@@ -1199,7 +1200,7 @@ struct hubp *dcn20_hubp_create(
uint32_t inst)
{
struct dcn20_hubp *hubp2 =
- kzalloc(sizeof(struct dcn20_hubp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_hubp, GFP_KERNEL);
if (!hubp2)
return NULL;
@@ -2130,7 +2131,8 @@ enum dc_status dcn20_validate_bandwidth(struct dc *dc, struct dc_state *context,
bool voltage_supported;
display_e2e_pipe_params_st *pipes;
- pipes = kcalloc(dc->res_pool->pipe_count, sizeof(display_e2e_pipe_params_st), GFP_KERNEL);
+ pipes = kzalloc_objs(display_e2e_pipe_params_st,
+ dc->res_pool->pipe_count, GFP_KERNEL);
if (!pipes)
return DC_FAIL_BANDWIDTH_VALIDATE;
@@ -2240,8 +2242,8 @@ bool dcn20_dwbc_create(struct dc_context *ctx, struct resource_pool *pool)
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn20_dwbc *dwbc20 = kzalloc(sizeof(struct dcn20_dwbc),
- GFP_KERNEL);
+ struct dcn20_dwbc *dwbc20 = kzalloc_obj(struct dcn20_dwbc,
+ GFP_KERNEL);
if (!dwbc20) {
dm_error("DC: failed to create dwbc20!\n");
@@ -2265,8 +2267,8 @@ bool dcn20_mmhubbub_create(struct dc_context *ctx, struct resource_pool *pool)
ASSERT(pipe_count > 0);
for (i = 0; i < pipe_count; i++) {
- struct dcn20_mmhubbub *mcif_wb20 = kzalloc(sizeof(struct dcn20_mmhubbub),
- GFP_KERNEL);
+ struct dcn20_mmhubbub *mcif_wb20 = kzalloc_obj(struct dcn20_mmhubbub,
+ GFP_KERNEL);
if (!mcif_wb20) {
dm_error("DC: failed to create mcif_wb20!\n");
@@ -2286,7 +2288,7 @@ bool dcn20_mmhubbub_create(struct dc_context *ctx, struct resource_pool *pool)
static struct pp_smu_funcs *dcn20_pp_smu_create(struct dc_context *ctx)
{
- struct pp_smu_funcs *pp_smu = kzalloc(sizeof(*pp_smu), GFP_KERNEL);
+ struct pp_smu_funcs *pp_smu = kzalloc_obj(*pp_smu, GFP_KERNEL);
if (!pp_smu)
return pp_smu;
@@ -2766,7 +2768,7 @@ struct resource_pool *dcn20_create_resource_pool(
struct dc *dc)
{
struct dcn20_resource_pool *pool =
- kzalloc(sizeof(struct dcn20_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn201/dcn201_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn201/dcn201_resource.c
index 90d38631f63a..71629186eb30 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn201/dcn201_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn201/dcn201_resource.c
@@ -632,7 +632,7 @@ static struct dpp *dcn201_dpp_create(
uint32_t inst)
{
struct dcn201_dpp *dpp =
- kzalloc(sizeof(struct dcn201_dpp), GFP_KERNEL);
+ kzalloc_obj(struct dcn201_dpp, GFP_KERNEL);
if (!dpp)
return NULL;
@@ -649,7 +649,7 @@ static struct input_pixel_processor *dcn201_ipp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn10_ipp *ipp =
- kzalloc(sizeof(struct dcn10_ipp), GFP_KERNEL);
+ kzalloc_obj(struct dcn10_ipp, GFP_KERNEL);
if (!ipp) {
return NULL;
@@ -665,7 +665,7 @@ static struct output_pixel_processor *dcn201_opp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn201_opp *opp =
- kzalloc(sizeof(struct dcn201_opp), GFP_KERNEL);
+ kzalloc_obj(struct dcn201_opp, GFP_KERNEL);
if (!opp) {
return NULL;
@@ -680,7 +680,7 @@ static struct dce_aux *dcn201_aux_engine_create(struct dc_context *ctx,
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -713,7 +713,7 @@ static struct dce_i2c_hw *dcn201_i2c_hw_create(struct dc_context *ctx,
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -726,7 +726,7 @@ static struct dce_i2c_hw *dcn201_i2c_hw_create(struct dc_context *ctx,
static struct mpc *dcn201_mpc_create(struct dc_context *ctx, uint32_t num_mpcc)
{
- struct dcn201_mpc *mpc201 = kzalloc(sizeof(struct dcn201_mpc), GFP_KERNEL);
+ struct dcn201_mpc *mpc201 = kzalloc_obj(struct dcn201_mpc, GFP_KERNEL);
if (!mpc201)
return NULL;
@@ -742,7 +742,8 @@ static struct mpc *dcn201_mpc_create(struct dc_context *ctx, uint32_t num_mpcc)
static struct hubbub *dcn201_hubbub_create(struct dc_context *ctx)
{
- struct dcn20_hubbub *hubbub = kzalloc(sizeof(struct dcn20_hubbub), GFP_KERNEL);
+ struct dcn20_hubbub *hubbub = kzalloc_obj(struct dcn20_hubbub,
+ GFP_KERNEL);
if (!hubbub)
return NULL;
@@ -760,7 +761,7 @@ static struct timing_generator *dcn201_timing_generator_create(
uint32_t instance)
{
struct optc *tgn10 =
- kzalloc(sizeof(struct optc), GFP_KERNEL);
+ kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -794,7 +795,7 @@ static struct link_encoder *dcn201_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dcn20_link_encoder *enc20 =
- kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
struct dcn10_link_encoder *enc10;
if (!enc20 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
@@ -822,7 +823,7 @@ static struct clock_source *dcn201_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -857,7 +858,7 @@ static struct stream_encoder *dcn201_stream_encoder_create(
struct dc_context *ctx)
{
struct dcn10_stream_encoder *enc1 =
- kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
if (!enc1)
return NULL;
@@ -884,7 +885,7 @@ static const struct dce_hwseq_mask hwseq_mask = {
static struct dce_hwseq *dcn201_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -984,7 +985,7 @@ static struct hubp *dcn201_hubp_create(
uint32_t inst)
{
struct dcn201_hubp *hubp201 =
- kzalloc(sizeof(struct dcn201_hubp), GFP_KERNEL);
+ kzalloc_obj(struct dcn201_hubp, GFP_KERNEL);
if (!hubp201)
return NULL;
@@ -1305,7 +1306,7 @@ struct resource_pool *dcn201_create_resource_pool(
struct dc *dc)
{
struct dcn201_resource_pool *pool =
- kzalloc(sizeof(struct dcn201_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dcn201_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn21/dcn21_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn21/dcn21_resource.c
index 107612595db6..0e93bc342011 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn21/dcn21_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn21/dcn21_resource.c
@@ -484,7 +484,7 @@ static struct input_pixel_processor *dcn21_ipp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn10_ipp *ipp =
- kzalloc(sizeof(struct dcn10_ipp), GFP_KERNEL);
+ kzalloc_obj(struct dcn10_ipp, GFP_KERNEL);
if (!ipp) {
BREAK_TO_DEBUGGER();
@@ -501,7 +501,7 @@ static struct dpp *dcn21_dpp_create(
uint32_t inst)
{
struct dcn20_dpp *dpp =
- kzalloc(sizeof(struct dcn20_dpp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_dpp, GFP_KERNEL);
if (!dpp)
return NULL;
@@ -520,7 +520,7 @@ static struct dce_aux *dcn21_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -557,7 +557,7 @@ static struct dce_i2c_hw *dcn21_i2c_hw_create(struct dc_context *ctx,
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -930,7 +930,8 @@ static enum dc_status dcn21_validate_bandwidth(struct dc *dc, struct dc_state *c
bool voltage_supported;
display_e2e_pipe_params_st *pipes;
- pipes = kcalloc(dc->res_pool->pipe_count, sizeof(display_e2e_pipe_params_st), GFP_KERNEL);
+ pipes = kzalloc_objs(display_e2e_pipe_params_st,
+ dc->res_pool->pipe_count, GFP_KERNEL);
if (!pipes)
return DC_FAIL_BANDWIDTH_VALIDATE;
@@ -959,7 +960,7 @@ static struct clock_source *dcn21_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -980,7 +981,7 @@ static struct hubp *dcn21_hubp_create(
uint32_t inst)
{
struct dcn21_hubp *hubp21 =
- kzalloc(sizeof(struct dcn21_hubp), GFP_KERNEL);
+ kzalloc_obj(struct dcn21_hubp, GFP_KERNEL);
if (!hubp21)
return NULL;
@@ -998,8 +999,8 @@ static struct hubbub *dcn21_hubbub_create(struct dc_context *ctx)
{
int i;
- struct dcn20_hubbub *hubbub = kzalloc(sizeof(struct dcn20_hubbub),
- GFP_KERNEL);
+ struct dcn20_hubbub *hubbub = kzalloc_obj(struct dcn20_hubbub,
+ GFP_KERNEL);
if (!hubbub)
return NULL;
@@ -1027,7 +1028,7 @@ static struct output_pixel_processor *dcn21_opp_create(struct dc_context *ctx,
uint32_t inst)
{
struct dcn20_opp *opp =
- kzalloc(sizeof(struct dcn20_opp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_opp, GFP_KERNEL);
if (!opp) {
BREAK_TO_DEBUGGER();
@@ -1043,7 +1044,7 @@ static struct timing_generator *dcn21_timing_generator_create(struct dc_context
uint32_t instance)
{
struct optc *tgn10 =
- kzalloc(sizeof(struct optc), GFP_KERNEL);
+ kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -1062,8 +1063,7 @@ static struct timing_generator *dcn21_timing_generator_create(struct dc_context
static struct mpc *dcn21_mpc_create(struct dc_context *ctx)
{
- struct dcn20_mpc *mpc20 = kzalloc(sizeof(struct dcn20_mpc),
- GFP_KERNEL);
+ struct dcn20_mpc *mpc20 = kzalloc_obj(struct dcn20_mpc, GFP_KERNEL);
if (!mpc20)
return NULL;
@@ -1091,7 +1091,7 @@ static struct display_stream_compressor *dcn21_dsc_create(struct dc_context *ctx
uint32_t inst)
{
struct dcn20_dsc *dsc =
- kzalloc(sizeof(struct dcn20_dsc), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_dsc, GFP_KERNEL);
if (!dsc) {
BREAK_TO_DEBUGGER();
@@ -1104,7 +1104,7 @@ static struct display_stream_compressor *dcn21_dsc_create(struct dc_context *ctx
static struct pp_smu_funcs *dcn21_pp_smu_create(struct dc_context *ctx)
{
- struct pp_smu_funcs *pp_smu = kzalloc(sizeof(*pp_smu), GFP_KERNEL);
+ struct pp_smu_funcs *pp_smu = kzalloc_obj(*pp_smu, GFP_KERNEL);
if (!pp_smu)
return pp_smu;
@@ -1141,7 +1141,7 @@ static struct stream_encoder *dcn21_stream_encoder_create(enum engine_id eng_id,
struct dc_context *ctx)
{
struct dcn10_stream_encoder *enc1 =
- kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
if (!enc1)
return NULL;
@@ -1168,7 +1168,7 @@ static const struct dce_hwseq_mask hwseq_mask = {
static struct dce_hwseq *dcn21_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -1295,7 +1295,7 @@ static struct link_encoder *dcn21_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dcn21_link_encoder *enc21 =
- kzalloc(sizeof(struct dcn21_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn21_link_encoder, GFP_KERNEL);
int link_regs_id;
if (!enc21 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
@@ -1319,7 +1319,7 @@ static struct link_encoder *dcn21_link_encoder_create(
static struct panel_cntl *dcn21_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dce_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dce_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dce_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -1704,7 +1704,7 @@ struct resource_pool *dcn21_create_resource_pool(
struct dc *dc)
{
struct dcn21_resource_pool *pool =
- kzalloc(sizeof(struct dcn21_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dcn21_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn30/dcn30_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn30/dcn30_resource.c
index 6cfdc37dab58..75aa4b6d7133 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn30/dcn30_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn30/dcn30_resource.c
@@ -753,7 +753,7 @@ static struct dpp *dcn30_dpp_create(
uint32_t inst)
{
struct dcn3_dpp *dpp =
- kzalloc(sizeof(struct dcn3_dpp), GFP_KERNEL);
+ kzalloc_obj(struct dcn3_dpp, GFP_KERNEL);
if (!dpp)
return NULL;
@@ -771,7 +771,7 @@ static struct output_pixel_processor *dcn30_opp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_opp *opp =
- kzalloc(sizeof(struct dcn20_opp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_opp, GFP_KERNEL);
if (!opp) {
BREAK_TO_DEBUGGER();
@@ -788,7 +788,7 @@ static struct dce_aux *dcn30_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -827,7 +827,7 @@ static struct dce_i2c_hw *dcn30_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -843,8 +843,7 @@ static struct mpc *dcn30_mpc_create(
int num_mpcc,
int num_rmu)
{
- struct dcn30_mpc *mpc30 = kzalloc(sizeof(struct dcn30_mpc),
- GFP_KERNEL);
+ struct dcn30_mpc *mpc30 = kzalloc_obj(struct dcn30_mpc, GFP_KERNEL);
if (!mpc30)
return NULL;
@@ -863,8 +862,8 @@ static struct hubbub *dcn30_hubbub_create(struct dc_context *ctx)
{
int i;
- struct dcn20_hubbub *hubbub3 = kzalloc(sizeof(struct dcn20_hubbub),
- GFP_KERNEL);
+ struct dcn20_hubbub *hubbub3 = kzalloc_obj(struct dcn20_hubbub,
+ GFP_KERNEL);
if (!hubbub3)
return NULL;
@@ -893,7 +892,7 @@ static struct timing_generator *dcn30_timing_generator_create(
uint32_t instance)
{
struct optc *tgn10 =
- kzalloc(sizeof(struct optc), GFP_KERNEL);
+ kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -927,7 +926,7 @@ static struct link_encoder *dcn30_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dcn20_link_encoder *enc20 =
- kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
return NULL;
@@ -947,7 +946,7 @@ static struct link_encoder *dcn30_link_encoder_create(
static struct panel_cntl *dcn30_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dce_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dce_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dce_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -981,7 +980,7 @@ static struct vpg *dcn30_vpg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn30_vpg *vpg3 = kzalloc(sizeof(struct dcn30_vpg), GFP_KERNEL);
+ struct dcn30_vpg *vpg3 = kzalloc_obj(struct dcn30_vpg, GFP_KERNEL);
if (!vpg3)
return NULL;
@@ -998,7 +997,7 @@ static struct afmt *dcn30_afmt_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn30_afmt *afmt3 = kzalloc(sizeof(struct dcn30_afmt), GFP_KERNEL);
+ struct dcn30_afmt *afmt3 = kzalloc_obj(struct dcn30_afmt, GFP_KERNEL);
if (!afmt3)
return NULL;
@@ -1027,7 +1026,7 @@ static struct stream_encoder *dcn30_stream_encoder_create(enum engine_id eng_id,
} else
return NULL;
- enc1 = kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ enc1 = kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
vpg = dcn30_vpg_create(ctx, vpg_inst);
afmt = dcn30_afmt_create(ctx, afmt_inst);
@@ -1048,7 +1047,7 @@ static struct stream_encoder *dcn30_stream_encoder_create(enum engine_id eng_id,
static struct dce_hwseq *dcn30_hwseq_create(struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -1201,7 +1200,7 @@ static struct hubp *dcn30_hubp_create(
uint32_t inst)
{
struct dcn20_hubp *hubp2 =
- kzalloc(sizeof(struct dcn20_hubp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_hubp, GFP_KERNEL);
if (!hubp2)
return NULL;
@@ -1221,8 +1220,8 @@ static bool dcn30_dwbc_create(struct dc_context *ctx, struct resource_pool *pool
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_dwbc *dwbc30 = kzalloc(sizeof(struct dcn30_dwbc),
- GFP_KERNEL);
+ struct dcn30_dwbc *dwbc30 = kzalloc_obj(struct dcn30_dwbc,
+ GFP_KERNEL);
if (!dwbc30) {
dm_error("DC: failed to create dwbc30!\n");
@@ -1246,8 +1245,8 @@ static bool dcn30_mmhubbub_create(struct dc_context *ctx, struct resource_pool *
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_mmhubbub *mcif_wb30 = kzalloc(sizeof(struct dcn30_mmhubbub),
- GFP_KERNEL);
+ struct dcn30_mmhubbub *mcif_wb30 = kzalloc_obj(struct dcn30_mmhubbub,
+ GFP_KERNEL);
if (!mcif_wb30) {
dm_error("DC: failed to create mcif_wb30!\n");
@@ -1269,7 +1268,7 @@ static struct display_stream_compressor *dcn30_dsc_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_dsc *dsc =
- kzalloc(sizeof(struct dcn20_dsc), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_dsc, GFP_KERNEL);
if (!dsc) {
BREAK_TO_DEBUGGER();
@@ -1303,7 +1302,7 @@ static struct clock_source *dcn30_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -2048,8 +2047,9 @@ enum dc_status dcn30_validate_bandwidth(struct dc *dc,
int vlevel = 0;
int pipe_cnt = 0;
- display_e2e_pipe_params_st *pipes = kcalloc(dc->res_pool->pipe_count,
- sizeof(display_e2e_pipe_params_st), GFP_KERNEL);
+ display_e2e_pipe_params_st *pipes = kzalloc_objs(display_e2e_pipe_params_st,
+ dc->res_pool->pipe_count,
+ GFP_KERNEL);
DC_LOGGER_INIT(dc->ctx->logger);
BW_VAL_TRACE_COUNT();
@@ -2622,7 +2622,7 @@ struct resource_pool *dcn30_create_resource_pool(
struct dc *dc)
{
struct dcn30_resource_pool *pool =
- kzalloc(sizeof(struct dcn30_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dcn30_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn301/dcn301_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn301/dcn301_resource.c
index e1d0c166b484..6bced8def669 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn301/dcn301_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn301/dcn301_resource.c
@@ -717,7 +717,7 @@ static void dcn301_dpp_destroy(struct dpp **dpp)
static struct dpp *dcn301_dpp_create(struct dc_context *ctx, uint32_t inst)
{
struct dcn3_dpp *dpp =
- kzalloc(sizeof(struct dcn3_dpp), GFP_KERNEL);
+ kzalloc_obj(struct dcn3_dpp, GFP_KERNEL);
if (!dpp)
return NULL;
@@ -734,7 +734,7 @@ static struct output_pixel_processor *dcn301_opp_create(struct dc_context *ctx,
uint32_t inst)
{
struct dcn20_opp *opp =
- kzalloc(sizeof(struct dcn20_opp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_opp, GFP_KERNEL);
if (!opp) {
BREAK_TO_DEBUGGER();
@@ -749,7 +749,7 @@ static struct output_pixel_processor *dcn301_opp_create(struct dc_context *ctx,
static struct dce_aux *dcn301_aux_engine_create(struct dc_context *ctx, uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -783,7 +783,7 @@ static const struct dce_i2c_mask i2c_masks = {
static struct dce_i2c_hw *dcn301_i2c_hw_create(struct dc_context *ctx, uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -798,8 +798,7 @@ static struct mpc *dcn301_mpc_create(
int num_mpcc,
int num_rmu)
{
- struct dcn30_mpc *mpc30 = kzalloc(sizeof(struct dcn30_mpc),
- GFP_KERNEL);
+ struct dcn30_mpc *mpc30 = kzalloc_obj(struct dcn30_mpc, GFP_KERNEL);
if (!mpc30)
return NULL;
@@ -818,8 +817,8 @@ static struct hubbub *dcn301_hubbub_create(struct dc_context *ctx)
{
int i;
- struct dcn20_hubbub *hubbub3 = kzalloc(sizeof(struct dcn20_hubbub),
- GFP_KERNEL);
+ struct dcn20_hubbub *hubbub3 = kzalloc_obj(struct dcn20_hubbub,
+ GFP_KERNEL);
if (!hubbub3)
return NULL;
@@ -849,7 +848,7 @@ static struct timing_generator *dcn301_timing_generator_create(
struct dc_context *ctx, uint32_t instance)
{
struct optc *tgn10 =
- kzalloc(sizeof(struct optc), GFP_KERNEL);
+ kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -883,7 +882,7 @@ static struct link_encoder *dcn301_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dcn20_link_encoder *enc20 =
- kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
return NULL;
@@ -903,7 +902,7 @@ static struct link_encoder *dcn301_link_encoder_create(
static struct panel_cntl *dcn301_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dcn301_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dcn301_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dcn301_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -952,7 +951,7 @@ static struct vpg *dcn301_vpg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn30_vpg *vpg3 = kzalloc(sizeof(struct dcn30_vpg), GFP_KERNEL);
+ struct dcn30_vpg *vpg3 = kzalloc_obj(struct dcn30_vpg, GFP_KERNEL);
if (!vpg3)
return NULL;
@@ -969,7 +968,7 @@ static struct afmt *dcn301_afmt_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn30_afmt *afmt3 = kzalloc(sizeof(struct dcn30_afmt), GFP_KERNEL);
+ struct dcn30_afmt *afmt3 = kzalloc_obj(struct dcn30_afmt, GFP_KERNEL);
if (!afmt3)
return NULL;
@@ -998,7 +997,7 @@ static struct stream_encoder *dcn301_stream_encoder_create(enum engine_id eng_id
} else
return NULL;
- enc1 = kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ enc1 = kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
vpg = dcn301_vpg_create(ctx, vpg_inst);
afmt = dcn301_afmt_create(ctx, afmt_inst);
@@ -1019,7 +1018,7 @@ static struct stream_encoder *dcn301_stream_encoder_create(enum engine_id eng_id
static struct dce_hwseq *dcn301_hwseq_create(struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -1161,7 +1160,7 @@ static void dcn301_destruct(struct dcn301_resource_pool *pool)
static struct hubp *dcn301_hubp_create(struct dc_context *ctx, uint32_t inst)
{
struct dcn20_hubp *hubp2 =
- kzalloc(sizeof(struct dcn20_hubp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_hubp, GFP_KERNEL);
if (!hubp2)
return NULL;
@@ -1181,8 +1180,8 @@ static bool dcn301_dwbc_create(struct dc_context *ctx, struct resource_pool *poo
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_dwbc *dwbc30 = kzalloc(sizeof(struct dcn30_dwbc),
- GFP_KERNEL);
+ struct dcn30_dwbc *dwbc30 = kzalloc_obj(struct dcn30_dwbc,
+ GFP_KERNEL);
if (!dwbc30) {
dm_error("DC: failed to create dwbc30!\n");
@@ -1206,8 +1205,8 @@ static bool dcn301_mmhubbub_create(struct dc_context *ctx, struct resource_pool
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_mmhubbub *mcif_wb30 = kzalloc(sizeof(struct dcn30_mmhubbub),
- GFP_KERNEL);
+ struct dcn30_mmhubbub *mcif_wb30 = kzalloc_obj(struct dcn30_mmhubbub,
+ GFP_KERNEL);
if (!mcif_wb30) {
dm_error("DC: failed to create mcif_wb30!\n");
@@ -1229,7 +1228,7 @@ static struct display_stream_compressor *dcn301_dsc_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_dsc *dsc =
- kzalloc(sizeof(struct dcn20_dsc), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_dsc, GFP_KERNEL);
if (!dsc) {
BREAK_TO_DEBUGGER();
@@ -1258,7 +1257,7 @@ static struct clock_source *dcn301_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -1728,7 +1727,7 @@ struct resource_pool *dcn301_create_resource_pool(
struct dc *dc)
{
struct dcn301_resource_pool *pool =
- kzalloc(sizeof(struct dcn301_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dcn301_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn302/dcn302_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn302/dcn302_resource.c
index c0d4a1dc94f8..1dba37343c0f 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn302/dcn302_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn302/dcn302_resource.c
@@ -257,7 +257,8 @@ static struct hubbub *dcn302_hubbub_create(struct dc_context *ctx)
{
int i;
- struct dcn20_hubbub *hubbub3 = kzalloc(sizeof(struct dcn20_hubbub), GFP_KERNEL);
+ struct dcn20_hubbub *hubbub3 = kzalloc_obj(struct dcn20_hubbub,
+ GFP_KERNEL);
if (!hubbub3)
return NULL;
@@ -299,7 +300,7 @@ static const struct dcn30_vpg_mask vpg_mask = {
static struct vpg *dcn302_vpg_create(struct dc_context *ctx, uint32_t inst)
{
- struct dcn30_vpg *vpg3 = kzalloc(sizeof(struct dcn30_vpg), GFP_KERNEL);
+ struct dcn30_vpg *vpg3 = kzalloc_obj(struct dcn30_vpg, GFP_KERNEL);
if (!vpg3)
return NULL;
@@ -331,7 +332,7 @@ static const struct dcn30_afmt_mask afmt_mask = {
static struct afmt *dcn302_afmt_create(struct dc_context *ctx, uint32_t inst)
{
- struct dcn30_afmt *afmt3 = kzalloc(sizeof(struct dcn30_afmt), GFP_KERNEL);
+ struct dcn30_afmt *afmt3 = kzalloc_obj(struct dcn30_afmt, GFP_KERNEL);
if (!afmt3)
return NULL;
@@ -406,7 +407,7 @@ static struct stream_encoder *dcn302_stream_encoder_create(enum engine_id eng_id
} else
return NULL;
- enc1 = kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ enc1 = kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
vpg = dcn302_vpg_create(ctx, vpg_inst);
afmt = dcn302_afmt_create(ctx, afmt_inst);
@@ -445,7 +446,8 @@ static const struct dce110_clk_src_mask cs_mask = {
static struct clock_source *dcn302_clock_source_create(struct dc_context *ctx, struct dc_bios *bios,
enum clock_source_id id, const struct dce110_clk_src_regs *regs, bool dp_clk_src)
{
- struct dce110_clk_src *clk_src = kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ struct dce110_clk_src *clk_src = kzalloc_obj(struct dce110_clk_src,
+ GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -474,7 +476,7 @@ static const struct dce_hwseq_mask hwseq_mask = {
static struct dce_hwseq *dcn302_hwseq_create(struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -506,7 +508,7 @@ static const struct dcn_hubp2_mask hubp_mask = {
static struct hubp *dcn302_hubp_create(struct dc_context *ctx, uint32_t inst)
{
- struct dcn20_hubp *hubp2 = kzalloc(sizeof(struct dcn20_hubp), GFP_KERNEL);
+ struct dcn20_hubp *hubp2 = kzalloc_obj(struct dcn20_hubp, GFP_KERNEL);
if (!hubp2)
return NULL;
@@ -540,7 +542,7 @@ static const struct dcn3_dpp_mask tf_mask = {
static struct dpp *dcn302_dpp_create(struct dc_context *ctx, uint32_t inst)
{
- struct dcn3_dpp *dpp = kzalloc(sizeof(struct dcn3_dpp), GFP_KERNEL);
+ struct dcn3_dpp *dpp = kzalloc_obj(struct dcn3_dpp, GFP_KERNEL);
if (!dpp)
return NULL;
@@ -574,7 +576,7 @@ static const struct dcn20_opp_mask opp_mask = {
static struct output_pixel_processor *dcn302_opp_create(struct dc_context *ctx, uint32_t inst)
{
- struct dcn20_opp *opp = kzalloc(sizeof(struct dcn20_opp), GFP_KERNEL);
+ struct dcn20_opp *opp = kzalloc_obj(struct dcn20_opp, GFP_KERNEL);
if (!opp) {
BREAK_TO_DEBUGGER();
@@ -606,7 +608,7 @@ static const struct dcn_optc_mask optc_mask = {
static struct timing_generator *dcn302_timing_generator_create(struct dc_context *ctx, uint32_t instance)
{
- struct optc *tgn10 = kzalloc(sizeof(struct optc), GFP_KERNEL);
+ struct optc *tgn10 = kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -651,7 +653,7 @@ static const struct dcn30_mpc_mask mpc_mask = {
static struct mpc *dcn302_mpc_create(struct dc_context *ctx, int num_mpcc, int num_rmu)
{
- struct dcn30_mpc *mpc30 = kzalloc(sizeof(struct dcn30_mpc), GFP_KERNEL);
+ struct dcn30_mpc *mpc30 = kzalloc_obj(struct dcn30_mpc, GFP_KERNEL);
if (!mpc30)
return NULL;
@@ -682,7 +684,7 @@ static const struct dcn20_dsc_mask dsc_mask = {
static struct display_stream_compressor *dcn302_dsc_create(struct dc_context *ctx, uint32_t inst)
{
- struct dcn20_dsc *dsc = kzalloc(sizeof(struct dcn20_dsc), GFP_KERNEL);
+ struct dcn20_dsc *dsc = kzalloc_obj(struct dcn20_dsc, GFP_KERNEL);
if (!dsc) {
BREAK_TO_DEBUGGER();
@@ -714,7 +716,8 @@ static bool dcn302_dwbc_create(struct dc_context *ctx, struct resource_pool *poo
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_dwbc *dwbc30 = kzalloc(sizeof(struct dcn30_dwbc), GFP_KERNEL);
+ struct dcn30_dwbc *dwbc30 = kzalloc_obj(struct dcn30_dwbc,
+ GFP_KERNEL);
if (!dwbc30) {
dm_error("DC: failed to create dwbc30!\n");
@@ -749,7 +752,8 @@ static bool dcn302_mmhubbub_create(struct dc_context *ctx, struct resource_pool
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_mmhubbub *mcif_wb30 = kzalloc(sizeof(struct dcn30_mmhubbub), GFP_KERNEL);
+ struct dcn30_mmhubbub *mcif_wb30 = kzalloc_obj(struct dcn30_mmhubbub,
+ GFP_KERNEL);
if (!mcif_wb30) {
dm_error("DC: failed to create mcif_wb30!\n");
@@ -789,7 +793,8 @@ static const struct dce110_aux_registers_mask aux_mask = {
static struct dce_aux *dcn302_aux_engine_create(struct dc_context *ctx, uint32_t inst)
{
- struct aux_engine_dce110 *aux_engine = kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ struct aux_engine_dce110 *aux_engine = kzalloc_obj(struct aux_engine_dce110,
+ GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -820,7 +825,8 @@ static const struct dce_i2c_mask i2c_masks = {
static struct dce_i2c_hw *dcn302_i2c_hw_create(struct dc_context *ctx, uint32_t inst)
{
- struct dce_i2c_hw *dce_i2c_hw = kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ struct dce_i2c_hw *dce_i2c_hw = kzalloc_obj(struct dce_i2c_hw,
+ GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -894,7 +900,8 @@ static struct link_encoder *dcn302_link_encoder_create(
struct dc_context *ctx,
const struct encoder_init_data *enc_init_data)
{
- struct dcn20_link_encoder *enc20 = kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ struct dcn20_link_encoder *enc20 = kzalloc_obj(struct dcn20_link_encoder,
+ GFP_KERNEL);
if (!enc20 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
return NULL;
@@ -920,7 +927,8 @@ static const struct dce_panel_cntl_mask panel_cntl_mask = {
static struct panel_cntl *dcn302_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
- struct dce_panel_cntl *panel_cntl = kzalloc(sizeof(struct dce_panel_cntl), GFP_KERNEL);
+ struct dce_panel_cntl *panel_cntl = kzalloc_obj(struct dce_panel_cntl,
+ GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -1512,7 +1520,8 @@ static bool dcn302_resource_construct(
struct resource_pool *dcn302_create_resource_pool(const struct dc_init_data *init_data, struct dc *dc)
{
- struct resource_pool *pool = kzalloc(sizeof(struct resource_pool), GFP_KERNEL);
+ struct resource_pool *pool = kzalloc_obj(struct resource_pool,
+ GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn303/dcn303_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn303/dcn303_resource.c
index 75e09c2c283e..2f81c0b51d1a 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn303/dcn303_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn303/dcn303_resource.c
@@ -253,7 +253,8 @@ static struct hubbub *dcn303_hubbub_create(struct dc_context *ctx)
{
int i;
- struct dcn20_hubbub *hubbub3 = kzalloc(sizeof(struct dcn20_hubbub), GFP_KERNEL);
+ struct dcn20_hubbub *hubbub3 = kzalloc_obj(struct dcn20_hubbub,
+ GFP_KERNEL);
if (!hubbub3)
return NULL;
@@ -292,7 +293,7 @@ static const struct dcn30_vpg_mask vpg_mask = {
static struct vpg *dcn303_vpg_create(struct dc_context *ctx, uint32_t inst)
{
- struct dcn30_vpg *vpg3 = kzalloc(sizeof(struct dcn30_vpg), GFP_KERNEL);
+ struct dcn30_vpg *vpg3 = kzalloc_obj(struct dcn30_vpg, GFP_KERNEL);
if (!vpg3)
return NULL;
@@ -321,7 +322,7 @@ static const struct dcn30_afmt_mask afmt_mask = {
static struct afmt *dcn303_afmt_create(struct dc_context *ctx, uint32_t inst)
{
- struct dcn30_afmt *afmt3 = kzalloc(sizeof(struct dcn30_afmt), GFP_KERNEL);
+ struct dcn30_afmt *afmt3 = kzalloc_obj(struct dcn30_afmt, GFP_KERNEL);
if (!afmt3)
return NULL;
@@ -393,7 +394,7 @@ static struct stream_encoder *dcn303_stream_encoder_create(enum engine_id eng_id
} else
return NULL;
- enc1 = kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ enc1 = kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
vpg = dcn303_vpg_create(ctx, vpg_inst);
afmt = dcn303_afmt_create(ctx, afmt_inst);
@@ -429,7 +430,8 @@ static const struct dce110_clk_src_mask cs_mask = {
static struct clock_source *dcn303_clock_source_create(struct dc_context *ctx, struct dc_bios *bios,
enum clock_source_id id, const struct dce110_clk_src_regs *regs, bool dp_clk_src)
{
- struct dce110_clk_src *clk_src = kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ struct dce110_clk_src *clk_src = kzalloc_obj(struct dce110_clk_src,
+ GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -458,7 +460,7 @@ static const struct dce_hwseq_mask hwseq_mask = {
static struct dce_hwseq *dcn303_hwseq_create(struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -487,7 +489,7 @@ static const struct dcn_hubp2_mask hubp_mask = {
static struct hubp *dcn303_hubp_create(struct dc_context *ctx, uint32_t inst)
{
- struct dcn20_hubp *hubp2 = kzalloc(sizeof(struct dcn20_hubp), GFP_KERNEL);
+ struct dcn20_hubp *hubp2 = kzalloc_obj(struct dcn20_hubp, GFP_KERNEL);
if (!hubp2)
return NULL;
@@ -518,7 +520,7 @@ static const struct dcn3_dpp_mask tf_mask = {
static struct dpp *dcn303_dpp_create(struct dc_context *ctx, uint32_t inst)
{
- struct dcn3_dpp *dpp = kzalloc(sizeof(struct dcn3_dpp), GFP_KERNEL);
+ struct dcn3_dpp *dpp = kzalloc_obj(struct dcn3_dpp, GFP_KERNEL);
if (!dpp)
return NULL;
@@ -549,7 +551,7 @@ static const struct dcn20_opp_mask opp_mask = {
static struct output_pixel_processor *dcn303_opp_create(struct dc_context *ctx, uint32_t inst)
{
- struct dcn20_opp *opp = kzalloc(sizeof(struct dcn20_opp), GFP_KERNEL);
+ struct dcn20_opp *opp = kzalloc_obj(struct dcn20_opp, GFP_KERNEL);
if (!opp) {
BREAK_TO_DEBUGGER();
@@ -578,7 +580,7 @@ static const struct dcn_optc_mask optc_mask = {
static struct timing_generator *dcn303_timing_generator_create(struct dc_context *ctx, uint32_t instance)
{
- struct optc *tgn10 = kzalloc(sizeof(struct optc), GFP_KERNEL);
+ struct optc *tgn10 = kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -615,7 +617,7 @@ static const struct dcn30_mpc_mask mpc_mask = {
static struct mpc *dcn303_mpc_create(struct dc_context *ctx, int num_mpcc, int num_rmu)
{
- struct dcn30_mpc *mpc30 = kzalloc(sizeof(struct dcn30_mpc), GFP_KERNEL);
+ struct dcn30_mpc *mpc30 = kzalloc_obj(struct dcn30_mpc, GFP_KERNEL);
if (!mpc30)
return NULL;
@@ -643,7 +645,7 @@ static const struct dcn20_dsc_mask dsc_mask = {
static struct display_stream_compressor *dcn303_dsc_create(struct dc_context *ctx, uint32_t inst)
{
- struct dcn20_dsc *dsc = kzalloc(sizeof(struct dcn20_dsc), GFP_KERNEL);
+ struct dcn20_dsc *dsc = kzalloc_obj(struct dcn20_dsc, GFP_KERNEL);
if (!dsc) {
BREAK_TO_DEBUGGER();
@@ -675,7 +677,8 @@ static bool dcn303_dwbc_create(struct dc_context *ctx, struct resource_pool *poo
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_dwbc *dwbc30 = kzalloc(sizeof(struct dcn30_dwbc), GFP_KERNEL);
+ struct dcn30_dwbc *dwbc30 = kzalloc_obj(struct dcn30_dwbc,
+ GFP_KERNEL);
if (!dwbc30) {
dm_error("DC: failed to create dwbc30!\n");
@@ -710,7 +713,8 @@ static bool dcn303_mmhubbub_create(struct dc_context *ctx, struct resource_pool
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_mmhubbub *mcif_wb30 = kzalloc(sizeof(struct dcn30_mmhubbub), GFP_KERNEL);
+ struct dcn30_mmhubbub *mcif_wb30 = kzalloc_obj(struct dcn30_mmhubbub,
+ GFP_KERNEL);
if (!mcif_wb30) {
dm_error("DC: failed to create mcif_wb30!\n");
@@ -747,7 +751,8 @@ static const struct dce110_aux_registers_mask aux_mask = {
static struct dce_aux *dcn303_aux_engine_create(struct dc_context *ctx, uint32_t inst)
{
- struct aux_engine_dce110 *aux_engine = kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ struct aux_engine_dce110 *aux_engine = kzalloc_obj(struct aux_engine_dce110,
+ GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -775,7 +780,8 @@ static const struct dce_i2c_mask i2c_masks = {
static struct dce_i2c_hw *dcn303_i2c_hw_create(struct dc_context *ctx, uint32_t inst)
{
- struct dce_i2c_hw *dce_i2c_hw = kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ struct dce_i2c_hw *dce_i2c_hw = kzalloc_obj(struct dce_i2c_hw,
+ GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -839,7 +845,8 @@ static struct link_encoder *dcn303_link_encoder_create(
struct dc_context *ctx,
const struct encoder_init_data *enc_init_data)
{
- struct dcn20_link_encoder *enc20 = kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ struct dcn20_link_encoder *enc20 = kzalloc_obj(struct dcn20_link_encoder,
+ GFP_KERNEL);
if (!enc20 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
return NULL;
@@ -865,7 +872,8 @@ static const struct dce_panel_cntl_mask panel_cntl_mask = {
static struct panel_cntl *dcn303_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
- struct dce_panel_cntl *panel_cntl = kzalloc(sizeof(struct dce_panel_cntl), GFP_KERNEL);
+ struct dce_panel_cntl *panel_cntl = kzalloc_obj(struct dce_panel_cntl,
+ GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -1444,7 +1452,8 @@ static bool dcn303_resource_construct(
struct resource_pool *dcn303_create_resource_pool(const struct dc_init_data *init_data, struct dc *dc)
{
- struct resource_pool *pool = kzalloc(sizeof(struct resource_pool), GFP_KERNEL);
+ struct resource_pool *pool = kzalloc_obj(struct resource_pool,
+ GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c
index 8ad72557b16a..4fb54637f41e 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c
@@ -919,7 +919,7 @@ static struct dpp *dcn31_dpp_create(
uint32_t inst)
{
struct dcn3_dpp *dpp =
- kzalloc(sizeof(struct dcn3_dpp), GFP_KERNEL);
+ kzalloc_obj(struct dcn3_dpp, GFP_KERNEL);
if (!dpp)
return NULL;
@@ -937,7 +937,7 @@ static struct output_pixel_processor *dcn31_opp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_opp *opp =
- kzalloc(sizeof(struct dcn20_opp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_opp, GFP_KERNEL);
if (!opp) {
BREAK_TO_DEBUGGER();
@@ -954,7 +954,7 @@ static struct dce_aux *dcn31_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -991,7 +991,7 @@ static struct dce_i2c_hw *dcn31_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -1006,8 +1006,7 @@ static struct mpc *dcn31_mpc_create(
int num_mpcc,
int num_rmu)
{
- struct dcn30_mpc *mpc30 = kzalloc(sizeof(struct dcn30_mpc),
- GFP_KERNEL);
+ struct dcn30_mpc *mpc30 = kzalloc_obj(struct dcn30_mpc, GFP_KERNEL);
if (!mpc30)
return NULL;
@@ -1026,8 +1025,8 @@ static struct hubbub *dcn31_hubbub_create(struct dc_context *ctx)
{
int i;
- struct dcn20_hubbub *hubbub3 = kzalloc(sizeof(struct dcn20_hubbub),
- GFP_KERNEL);
+ struct dcn20_hubbub *hubbub3 = kzalloc_obj(struct dcn20_hubbub,
+ GFP_KERNEL);
if (!hubbub3)
return NULL;
@@ -1059,7 +1058,7 @@ static struct timing_generator *dcn31_timing_generator_create(
uint32_t instance)
{
struct optc *tgn10 =
- kzalloc(sizeof(struct optc), GFP_KERNEL);
+ kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -1093,7 +1092,7 @@ static struct link_encoder *dcn31_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dcn20_link_encoder *enc20 =
- kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
return NULL;
@@ -1122,7 +1121,7 @@ static struct link_encoder *dcn31_link_enc_create_minimal(
if ((eng_id - ENGINE_ID_DIGA) > ctx->dc->res_pool->res_cap->num_dig_link_enc)
return NULL;
- enc20 = kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ enc20 = kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20)
return NULL;
@@ -1139,7 +1138,7 @@ static struct link_encoder *dcn31_link_enc_create_minimal(
static struct panel_cntl *dcn31_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dcn31_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dcn31_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dcn31_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -1169,7 +1168,7 @@ static struct vpg *dcn31_vpg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_vpg *vpg31 = kzalloc(sizeof(struct dcn31_vpg), GFP_KERNEL);
+ struct dcn31_vpg *vpg31 = kzalloc_obj(struct dcn31_vpg, GFP_KERNEL);
if (!vpg31)
return NULL;
@@ -1186,7 +1185,7 @@ static struct afmt *dcn31_afmt_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_afmt *afmt31 = kzalloc(sizeof(struct dcn31_afmt), GFP_KERNEL);
+ struct dcn31_afmt *afmt31 = kzalloc_obj(struct dcn31_afmt, GFP_KERNEL);
if (!afmt31)
return NULL;
@@ -1205,7 +1204,7 @@ static struct apg *dcn31_apg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_apg *apg31 = kzalloc(sizeof(struct dcn31_apg), GFP_KERNEL);
+ struct dcn31_apg *apg31 = kzalloc_obj(struct dcn31_apg, GFP_KERNEL);
if (!apg31)
return NULL;
@@ -1235,7 +1234,7 @@ static struct stream_encoder *dcn31_stream_encoder_create(
} else
return NULL;
- enc1 = kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ enc1 = kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
vpg = dcn31_vpg_create(ctx, vpg_inst);
afmt = dcn31_afmt_create(ctx, afmt_inst);
@@ -1285,7 +1284,8 @@ static struct hpo_dp_stream_encoder *dcn31_hpo_dp_stream_encoder_create(
apg_inst = hpo_dp_inst;
/* allocate HPO stream encoder and create VPG sub-block */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_stream_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_stream_encoder,
+ GFP_KERNEL);
vpg = dcn31_vpg_create(ctx, vpg_inst);
apg = dcn31_apg_create(ctx, apg_inst);
@@ -1311,7 +1311,7 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
struct dcn31_hpo_dp_link_encoder *hpo_dp_enc31;
/* allocate HPO link encoder */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_link_encoder, GFP_KERNEL);
if (!hpo_dp_enc31)
return NULL; /* out of memory */
@@ -1325,7 +1325,7 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
static struct dce_hwseq *dcn31_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -1499,7 +1499,7 @@ static struct hubp *dcn31_hubp_create(
uint32_t inst)
{
struct dcn20_hubp *hubp2 =
- kzalloc(sizeof(struct dcn20_hubp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_hubp, GFP_KERNEL);
if (!hubp2)
return NULL;
@@ -1519,8 +1519,8 @@ static bool dcn31_dwbc_create(struct dc_context *ctx, struct resource_pool *pool
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_dwbc *dwbc30 = kzalloc(sizeof(struct dcn30_dwbc),
- GFP_KERNEL);
+ struct dcn30_dwbc *dwbc30 = kzalloc_obj(struct dcn30_dwbc,
+ GFP_KERNEL);
if (!dwbc30) {
dm_error("DC: failed to create dwbc30!\n");
@@ -1544,8 +1544,8 @@ static bool dcn31_mmhubbub_create(struct dc_context *ctx, struct resource_pool *
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_mmhubbub *mcif_wb30 = kzalloc(sizeof(struct dcn30_mmhubbub),
- GFP_KERNEL);
+ struct dcn30_mmhubbub *mcif_wb30 = kzalloc_obj(struct dcn30_mmhubbub,
+ GFP_KERNEL);
if (!mcif_wb30) {
dm_error("DC: failed to create mcif_wb30!\n");
@@ -1567,7 +1567,7 @@ static struct display_stream_compressor *dcn31_dsc_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_dsc *dsc =
- kzalloc(sizeof(struct dcn20_dsc), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_dsc, GFP_KERNEL);
if (!dsc) {
BREAK_TO_DEBUGGER();
@@ -1595,7 +1595,7 @@ static struct clock_source *dcn31_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -1771,8 +1771,9 @@ enum dc_status dcn31_validate_bandwidth(struct dc *dc,
int vlevel = 0;
int pipe_cnt = 0;
- display_e2e_pipe_params_st *pipes = kcalloc(dc->res_pool->pipe_count,
- sizeof(display_e2e_pipe_params_st), GFP_KERNEL);
+ display_e2e_pipe_params_st *pipes = kzalloc_objs(display_e2e_pipe_params_st,
+ dc->res_pool->pipe_count,
+ GFP_KERNEL);
DC_LOGGER_INIT(dc->ctx->logger);
BW_VAL_TRACE_COUNT();
@@ -1866,7 +1867,7 @@ static struct clock_source *dcn30_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -2227,7 +2228,7 @@ struct resource_pool *dcn31_create_resource_pool(
struct dc *dc)
{
struct dcn31_resource_pool *pool =
- kzalloc(sizeof(struct dcn31_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dcn31_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn314/dcn314_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn314/dcn314_resource.c
index 5f0fe6e5bd82..8c451d2a040a 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn314/dcn314_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn314/dcn314_resource.c
@@ -955,7 +955,7 @@ static struct dpp *dcn31_dpp_create(
uint32_t inst)
{
struct dcn3_dpp *dpp =
- kzalloc(sizeof(struct dcn3_dpp), GFP_KERNEL);
+ kzalloc_obj(struct dcn3_dpp, GFP_KERNEL);
if (!dpp)
return NULL;
@@ -973,7 +973,7 @@ static struct output_pixel_processor *dcn31_opp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_opp *opp =
- kzalloc(sizeof(struct dcn20_opp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_opp, GFP_KERNEL);
if (!opp) {
BREAK_TO_DEBUGGER();
@@ -990,7 +990,7 @@ static struct dce_aux *dcn31_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -1049,7 +1049,7 @@ static struct dce_i2c_hw *dcn31_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -1064,8 +1064,7 @@ static struct mpc *dcn31_mpc_create(
int num_mpcc,
int num_rmu)
{
- struct dcn30_mpc *mpc30 = kzalloc(sizeof(struct dcn30_mpc),
- GFP_KERNEL);
+ struct dcn30_mpc *mpc30 = kzalloc_obj(struct dcn30_mpc, GFP_KERNEL);
if (!mpc30)
return NULL;
@@ -1084,8 +1083,8 @@ static struct hubbub *dcn31_hubbub_create(struct dc_context *ctx)
{
int i;
- struct dcn20_hubbub *hubbub3 = kzalloc(sizeof(struct dcn20_hubbub),
- GFP_KERNEL);
+ struct dcn20_hubbub *hubbub3 = kzalloc_obj(struct dcn20_hubbub,
+ GFP_KERNEL);
if (!hubbub3)
return NULL;
@@ -1117,7 +1116,7 @@ static struct timing_generator *dcn31_timing_generator_create(
uint32_t instance)
{
struct optc *tgn10 =
- kzalloc(sizeof(struct optc), GFP_KERNEL);
+ kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -1151,7 +1150,7 @@ static struct link_encoder *dcn31_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dcn20_link_encoder *enc20 =
- kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
return NULL;
@@ -1180,7 +1179,7 @@ static struct link_encoder *dcn31_link_enc_create_minimal(
if ((eng_id - ENGINE_ID_DIGA) > ctx->dc->res_pool->res_cap->num_dig_link_enc)
return NULL;
- enc20 = kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ enc20 = kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20)
return NULL;
@@ -1197,7 +1196,7 @@ static struct link_encoder *dcn31_link_enc_create_minimal(
static struct panel_cntl *dcn31_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dcn31_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dcn31_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dcn31_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -1227,7 +1226,7 @@ static struct vpg *dcn31_vpg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_vpg *vpg31 = kzalloc(sizeof(struct dcn31_vpg), GFP_KERNEL);
+ struct dcn31_vpg *vpg31 = kzalloc_obj(struct dcn31_vpg, GFP_KERNEL);
if (!vpg31)
return NULL;
@@ -1244,7 +1243,7 @@ static struct afmt *dcn31_afmt_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_afmt *afmt31 = kzalloc(sizeof(struct dcn31_afmt), GFP_KERNEL);
+ struct dcn31_afmt *afmt31 = kzalloc_obj(struct dcn31_afmt, GFP_KERNEL);
if (!afmt31)
return NULL;
@@ -1263,7 +1262,7 @@ static struct apg *dcn31_apg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_apg *apg31 = kzalloc(sizeof(struct dcn31_apg), GFP_KERNEL);
+ struct dcn31_apg *apg31 = kzalloc_obj(struct dcn31_apg, GFP_KERNEL);
if (!apg31)
return NULL;
@@ -1293,7 +1292,7 @@ static struct stream_encoder *dcn314_stream_encoder_create(
} else
return NULL;
- enc1 = kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ enc1 = kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
vpg = dcn31_vpg_create(ctx, vpg_inst);
afmt = dcn31_afmt_create(ctx, afmt_inst);
@@ -1344,7 +1343,8 @@ static struct hpo_dp_stream_encoder *dcn31_hpo_dp_stream_encoder_create(
apg_inst = hpo_dp_inst;
/* allocate HPO stream encoder and create VPG sub-block */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_stream_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_stream_encoder,
+ GFP_KERNEL);
vpg = dcn31_vpg_create(ctx, vpg_inst);
apg = dcn31_apg_create(ctx, apg_inst);
@@ -1370,7 +1370,7 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
struct dcn31_hpo_dp_link_encoder *hpo_dp_enc31;
/* allocate HPO link encoder */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_link_encoder, GFP_KERNEL);
if (!hpo_dp_enc31)
return NULL; /* out of memory */
@@ -1384,7 +1384,7 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
static struct dce_hwseq *dcn314_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -1557,7 +1557,7 @@ static struct hubp *dcn31_hubp_create(
uint32_t inst)
{
struct dcn20_hubp *hubp2 =
- kzalloc(sizeof(struct dcn20_hubp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_hubp, GFP_KERNEL);
if (!hubp2)
return NULL;
@@ -1577,8 +1577,8 @@ static bool dcn31_dwbc_create(struct dc_context *ctx, struct resource_pool *pool
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_dwbc *dwbc30 = kzalloc(sizeof(struct dcn30_dwbc),
- GFP_KERNEL);
+ struct dcn30_dwbc *dwbc30 = kzalloc_obj(struct dcn30_dwbc,
+ GFP_KERNEL);
if (!dwbc30) {
dm_error("DC: failed to create dwbc30!\n");
@@ -1602,8 +1602,8 @@ static bool dcn31_mmhubbub_create(struct dc_context *ctx, struct resource_pool *
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_mmhubbub *mcif_wb30 = kzalloc(sizeof(struct dcn30_mmhubbub),
- GFP_KERNEL);
+ struct dcn30_mmhubbub *mcif_wb30 = kzalloc_obj(struct dcn30_mmhubbub,
+ GFP_KERNEL);
if (!mcif_wb30) {
dm_error("DC: failed to create mcif_wb30!\n");
@@ -1625,7 +1625,7 @@ static struct display_stream_compressor *dcn314_dsc_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_dsc *dsc =
- kzalloc(sizeof(struct dcn20_dsc), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_dsc, GFP_KERNEL);
if (!dsc) {
BREAK_TO_DEBUGGER();
@@ -1653,7 +1653,7 @@ static struct clock_source *dcn31_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -1709,8 +1709,9 @@ enum dc_status dcn314_validate_bandwidth(struct dc *dc,
int vlevel = 0;
int pipe_cnt = 0;
- display_e2e_pipe_params_st *pipes = kcalloc(dc->res_pool->pipe_count,
- sizeof(display_e2e_pipe_params_st), GFP_KERNEL);
+ display_e2e_pipe_params_st *pipes = kzalloc_objs(display_e2e_pipe_params_st,
+ dc->res_pool->pipe_count,
+ GFP_KERNEL);
DC_LOGGER_INIT(dc->ctx->logger);
BW_VAL_TRACE_COUNT();
@@ -1797,7 +1798,7 @@ static struct clock_source *dcn30_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -2145,7 +2146,7 @@ struct resource_pool *dcn314_create_resource_pool(
struct dc *dc)
{
struct dcn314_resource_pool *pool =
- kzalloc(sizeof(struct dcn314_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dcn314_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn315/dcn315_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn315/dcn315_resource.c
index 3ae787a377b1..1a63eaf5e1d9 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn315/dcn315_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn315/dcn315_resource.c
@@ -918,7 +918,7 @@ static struct dpp *dcn31_dpp_create(
uint32_t inst)
{
struct dcn3_dpp *dpp =
- kzalloc(sizeof(struct dcn3_dpp), GFP_KERNEL);
+ kzalloc_obj(struct dcn3_dpp, GFP_KERNEL);
if (!dpp)
return NULL;
@@ -936,7 +936,7 @@ static struct output_pixel_processor *dcn31_opp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_opp *opp =
- kzalloc(sizeof(struct dcn20_opp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_opp, GFP_KERNEL);
if (!opp) {
BREAK_TO_DEBUGGER();
@@ -953,7 +953,7 @@ static struct dce_aux *dcn31_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -990,7 +990,7 @@ static struct dce_i2c_hw *dcn31_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -1005,8 +1005,7 @@ static struct mpc *dcn31_mpc_create(
int num_mpcc,
int num_rmu)
{
- struct dcn30_mpc *mpc30 = kzalloc(sizeof(struct dcn30_mpc),
- GFP_KERNEL);
+ struct dcn30_mpc *mpc30 = kzalloc_obj(struct dcn30_mpc, GFP_KERNEL);
if (!mpc30)
return NULL;
@@ -1025,8 +1024,8 @@ static struct hubbub *dcn31_hubbub_create(struct dc_context *ctx)
{
int i;
- struct dcn20_hubbub *hubbub3 = kzalloc(sizeof(struct dcn20_hubbub),
- GFP_KERNEL);
+ struct dcn20_hubbub *hubbub3 = kzalloc_obj(struct dcn20_hubbub,
+ GFP_KERNEL);
if (!hubbub3)
return NULL;
@@ -1058,7 +1057,7 @@ static struct timing_generator *dcn31_timing_generator_create(
uint32_t instance)
{
struct optc *tgn10 =
- kzalloc(sizeof(struct optc), GFP_KERNEL);
+ kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -1092,7 +1091,7 @@ static struct link_encoder *dcn31_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dcn20_link_encoder *enc20 =
- kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
return NULL;
@@ -1121,7 +1120,7 @@ static struct link_encoder *dcn31_link_enc_create_minimal(
if ((eng_id - ENGINE_ID_DIGA) > ctx->dc->res_pool->res_cap->num_dig_link_enc)
return NULL;
- enc20 = kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ enc20 = kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20)
return NULL;
@@ -1138,7 +1137,7 @@ static struct link_encoder *dcn31_link_enc_create_minimal(
static struct panel_cntl *dcn31_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dcn31_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dcn31_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dcn31_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -1168,7 +1167,7 @@ static struct vpg *dcn31_vpg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_vpg *vpg31 = kzalloc(sizeof(struct dcn31_vpg), GFP_KERNEL);
+ struct dcn31_vpg *vpg31 = kzalloc_obj(struct dcn31_vpg, GFP_KERNEL);
if (!vpg31)
return NULL;
@@ -1185,7 +1184,7 @@ static struct afmt *dcn31_afmt_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_afmt *afmt31 = kzalloc(sizeof(struct dcn31_afmt), GFP_KERNEL);
+ struct dcn31_afmt *afmt31 = kzalloc_obj(struct dcn31_afmt, GFP_KERNEL);
if (!afmt31)
return NULL;
@@ -1204,7 +1203,7 @@ static struct apg *dcn31_apg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_apg *apg31 = kzalloc(sizeof(struct dcn31_apg), GFP_KERNEL);
+ struct dcn31_apg *apg31 = kzalloc_obj(struct dcn31_apg, GFP_KERNEL);
if (!apg31)
return NULL;
@@ -1236,7 +1235,7 @@ static struct stream_encoder *dcn315_stream_encoder_create(
vpg_inst = eng_id;
afmt_inst = eng_id;
- enc1 = kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ enc1 = kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
vpg = dcn31_vpg_create(ctx, vpg_inst);
afmt = dcn31_afmt_create(ctx, afmt_inst);
@@ -1286,7 +1285,8 @@ static struct hpo_dp_stream_encoder *dcn31_hpo_dp_stream_encoder_create(
apg_inst = hpo_dp_inst;
/* allocate HPO stream encoder and create VPG sub-block */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_stream_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_stream_encoder,
+ GFP_KERNEL);
vpg = dcn31_vpg_create(ctx, vpg_inst);
apg = dcn31_apg_create(ctx, apg_inst);
@@ -1312,7 +1312,7 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
struct dcn31_hpo_dp_link_encoder *hpo_dp_enc31;
/* allocate HPO link encoder */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_link_encoder, GFP_KERNEL);
if (!hpo_dp_enc31)
return NULL; /* out of memory */
@@ -1326,7 +1326,7 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
static struct dce_hwseq *dcn31_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -1500,7 +1500,7 @@ static struct hubp *dcn31_hubp_create(
uint32_t inst)
{
struct dcn20_hubp *hubp2 =
- kzalloc(sizeof(struct dcn20_hubp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_hubp, GFP_KERNEL);
if (!hubp2)
return NULL;
@@ -1520,8 +1520,8 @@ static bool dcn31_dwbc_create(struct dc_context *ctx, struct resource_pool *pool
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_dwbc *dwbc30 = kzalloc(sizeof(struct dcn30_dwbc),
- GFP_KERNEL);
+ struct dcn30_dwbc *dwbc30 = kzalloc_obj(struct dcn30_dwbc,
+ GFP_KERNEL);
if (!dwbc30) {
dm_error("DC: failed to create dwbc30!\n");
@@ -1545,8 +1545,8 @@ static bool dcn31_mmhubbub_create(struct dc_context *ctx, struct resource_pool *
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_mmhubbub *mcif_wb30 = kzalloc(sizeof(struct dcn30_mmhubbub),
- GFP_KERNEL);
+ struct dcn30_mmhubbub *mcif_wb30 = kzalloc_obj(struct dcn30_mmhubbub,
+ GFP_KERNEL);
if (!mcif_wb30) {
dm_error("DC: failed to create mcif_wb30!\n");
@@ -1568,7 +1568,7 @@ static struct display_stream_compressor *dcn31_dsc_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_dsc *dsc =
- kzalloc(sizeof(struct dcn20_dsc), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_dsc, GFP_KERNEL);
if (!dsc) {
BREAK_TO_DEBUGGER();
@@ -1596,7 +1596,7 @@ static struct clock_source *dcn31_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -2167,7 +2167,7 @@ struct resource_pool *dcn315_create_resource_pool(
struct dc *dc)
{
struct dcn315_resource_pool *pool =
- kzalloc(sizeof(struct dcn315_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dcn315_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn316/dcn316_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn316/dcn316_resource.c
index 4b8668458f03..4b8dddba34b8 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn316/dcn316_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn316/dcn316_resource.c
@@ -911,7 +911,7 @@ static struct dpp *dcn31_dpp_create(
uint32_t inst)
{
struct dcn3_dpp *dpp =
- kzalloc(sizeof(struct dcn3_dpp), GFP_KERNEL);
+ kzalloc_obj(struct dcn3_dpp, GFP_KERNEL);
if (!dpp)
return NULL;
@@ -929,7 +929,7 @@ static struct output_pixel_processor *dcn31_opp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_opp *opp =
- kzalloc(sizeof(struct dcn20_opp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_opp, GFP_KERNEL);
if (!opp) {
BREAK_TO_DEBUGGER();
@@ -946,7 +946,7 @@ static struct dce_aux *dcn31_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -983,7 +983,7 @@ static struct dce_i2c_hw *dcn31_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -998,8 +998,7 @@ static struct mpc *dcn31_mpc_create(
int num_mpcc,
int num_rmu)
{
- struct dcn30_mpc *mpc30 = kzalloc(sizeof(struct dcn30_mpc),
- GFP_KERNEL);
+ struct dcn30_mpc *mpc30 = kzalloc_obj(struct dcn30_mpc, GFP_KERNEL);
if (!mpc30)
return NULL;
@@ -1018,8 +1017,8 @@ static struct hubbub *dcn31_hubbub_create(struct dc_context *ctx)
{
int i;
- struct dcn20_hubbub *hubbub3 = kzalloc(sizeof(struct dcn20_hubbub),
- GFP_KERNEL);
+ struct dcn20_hubbub *hubbub3 = kzalloc_obj(struct dcn20_hubbub,
+ GFP_KERNEL);
if (!hubbub3)
return NULL;
@@ -1051,7 +1050,7 @@ static struct timing_generator *dcn31_timing_generator_create(
uint32_t instance)
{
struct optc *tgn10 =
- kzalloc(sizeof(struct optc), GFP_KERNEL);
+ kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -1085,7 +1084,7 @@ static struct link_encoder *dcn31_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dcn20_link_encoder *enc20 =
- kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
return NULL;
@@ -1114,7 +1113,7 @@ static struct link_encoder *dcn31_link_enc_create_minimal(
if ((eng_id - ENGINE_ID_DIGA) > ctx->dc->res_pool->res_cap->num_dig_link_enc)
return NULL;
- enc20 = kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ enc20 = kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20)
return NULL;
@@ -1131,7 +1130,7 @@ static struct link_encoder *dcn31_link_enc_create_minimal(
static struct panel_cntl *dcn31_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dcn31_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dcn31_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dcn31_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -1161,7 +1160,7 @@ static struct vpg *dcn31_vpg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_vpg *vpg31 = kzalloc(sizeof(struct dcn31_vpg), GFP_KERNEL);
+ struct dcn31_vpg *vpg31 = kzalloc_obj(struct dcn31_vpg, GFP_KERNEL);
if (!vpg31)
return NULL;
@@ -1178,7 +1177,7 @@ static struct afmt *dcn31_afmt_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_afmt *afmt31 = kzalloc(sizeof(struct dcn31_afmt), GFP_KERNEL);
+ struct dcn31_afmt *afmt31 = kzalloc_obj(struct dcn31_afmt, GFP_KERNEL);
if (!afmt31)
return NULL;
@@ -1198,7 +1197,7 @@ static struct apg *dcn31_apg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_apg *apg31 = kzalloc(sizeof(struct dcn31_apg), GFP_KERNEL);
+ struct dcn31_apg *apg31 = kzalloc_obj(struct dcn31_apg, GFP_KERNEL);
if (!apg31)
return NULL;
@@ -1229,7 +1228,7 @@ static struct stream_encoder *dcn316_stream_encoder_create(
vpg_inst = eng_id;
afmt_inst = eng_id;
- enc1 = kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ enc1 = kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
vpg = dcn31_vpg_create(ctx, vpg_inst);
afmt = dcn31_afmt_create(ctx, afmt_inst);
@@ -1280,7 +1279,8 @@ static struct hpo_dp_stream_encoder *dcn31_hpo_dp_stream_encoder_create(
apg_inst = hpo_dp_inst;
/* allocate HPO stream encoder and create VPG sub-block */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_stream_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_stream_encoder,
+ GFP_KERNEL);
vpg = dcn31_vpg_create(ctx, vpg_inst);
apg = dcn31_apg_create(ctx, apg_inst);
@@ -1306,7 +1306,7 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
struct dcn31_hpo_dp_link_encoder *hpo_dp_enc31;
/* allocate HPO link encoder */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_link_encoder, GFP_KERNEL);
if (!hpo_dp_enc31)
return NULL; /* out of memory */
@@ -1321,7 +1321,7 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
static struct dce_hwseq *dcn31_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
if (hws) {
hws->ctx = ctx;
@@ -1492,7 +1492,7 @@ static struct hubp *dcn31_hubp_create(
uint32_t inst)
{
struct dcn20_hubp *hubp2 =
- kzalloc(sizeof(struct dcn20_hubp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_hubp, GFP_KERNEL);
if (!hubp2)
return NULL;
@@ -1512,8 +1512,8 @@ static bool dcn31_dwbc_create(struct dc_context *ctx, struct resource_pool *pool
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_dwbc *dwbc30 = kzalloc(sizeof(struct dcn30_dwbc),
- GFP_KERNEL);
+ struct dcn30_dwbc *dwbc30 = kzalloc_obj(struct dcn30_dwbc,
+ GFP_KERNEL);
if (!dwbc30) {
dm_error("DC: failed to create dwbc30!\n");
@@ -1537,8 +1537,8 @@ static bool dcn31_mmhubbub_create(struct dc_context *ctx, struct resource_pool *
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_mmhubbub *mcif_wb30 = kzalloc(sizeof(struct dcn30_mmhubbub),
- GFP_KERNEL);
+ struct dcn30_mmhubbub *mcif_wb30 = kzalloc_obj(struct dcn30_mmhubbub,
+ GFP_KERNEL);
if (!mcif_wb30) {
dm_error("DC: failed to create mcif_wb30!\n");
@@ -1560,7 +1560,7 @@ static struct display_stream_compressor *dcn31_dsc_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_dsc *dsc =
- kzalloc(sizeof(struct dcn20_dsc), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_dsc, GFP_KERNEL);
if (!dsc) {
BREAK_TO_DEBUGGER();
@@ -1588,7 +1588,7 @@ static struct clock_source *dcn31_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -2034,7 +2034,7 @@ struct resource_pool *dcn316_create_resource_pool(
struct dc *dc)
{
struct dcn316_resource_pool *pool =
- kzalloc(sizeof(struct dcn316_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dcn316_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn32/dcn32_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn32/dcn32_resource.c
index a55078458ba5..a93862071ff5 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn32/dcn32_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn32/dcn32_resource.c
@@ -750,7 +750,7 @@ static struct dce_aux *dcn32_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -790,7 +790,7 @@ static struct dce_i2c_hw *dcn32_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -817,7 +817,7 @@ static struct clock_source *dcn32_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -837,8 +837,8 @@ static struct hubbub *dcn32_hubbub_create(struct dc_context *ctx)
{
int i;
- struct dcn20_hubbub *hubbub2 = kzalloc(sizeof(struct dcn20_hubbub),
- GFP_KERNEL);
+ struct dcn20_hubbub *hubbub2 = kzalloc_obj(struct dcn20_hubbub,
+ GFP_KERNEL);
if (!hubbub2)
return NULL;
@@ -893,7 +893,7 @@ static struct hubp *dcn32_hubp_create(
uint32_t inst)
{
struct dcn20_hubp *hubp2 =
- kzalloc(sizeof(struct dcn20_hubp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_hubp, GFP_KERNEL);
if (!hubp2)
return NULL;
@@ -925,7 +925,7 @@ static struct dpp *dcn32_dpp_create(
uint32_t inst)
{
struct dcn3_dpp *dpp3 =
- kzalloc(sizeof(struct dcn3_dpp), GFP_KERNEL);
+ kzalloc_obj(struct dcn3_dpp, GFP_KERNEL);
if (!dpp3)
return NULL;
@@ -951,8 +951,7 @@ static struct mpc *dcn32_mpc_create(
int num_mpcc,
int num_rmu)
{
- struct dcn30_mpc *mpc30 = kzalloc(sizeof(struct dcn30_mpc),
- GFP_KERNEL);
+ struct dcn30_mpc *mpc30 = kzalloc_obj(struct dcn30_mpc, GFP_KERNEL);
if (!mpc30)
return NULL;
@@ -975,7 +974,7 @@ static struct output_pixel_processor *dcn32_opp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_opp *opp2 =
- kzalloc(sizeof(struct dcn20_opp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_opp, GFP_KERNEL);
if (!opp2) {
BREAK_TO_DEBUGGER();
@@ -1000,7 +999,7 @@ static struct timing_generator *dcn32_timing_generator_create(
uint32_t instance)
{
struct optc *tgn10 =
- kzalloc(sizeof(struct optc), GFP_KERNEL);
+ kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -1041,7 +1040,7 @@ static struct link_encoder *dcn32_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dcn20_link_encoder *enc20 =
- kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
return NULL;
@@ -1085,7 +1084,7 @@ static struct link_encoder *dcn32_link_encoder_create(
struct panel_cntl *dcn32_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dcn31_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dcn31_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dcn31_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -1124,7 +1123,7 @@ static struct vpg *dcn32_vpg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn30_vpg *vpg3 = kzalloc(sizeof(struct dcn30_vpg), GFP_KERNEL);
+ struct dcn30_vpg *vpg3 = kzalloc_obj(struct dcn30_vpg, GFP_KERNEL);
if (!vpg3)
return NULL;
@@ -1154,7 +1153,7 @@ static struct afmt *dcn32_afmt_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn30_afmt *afmt3 = kzalloc(sizeof(struct dcn30_afmt), GFP_KERNEL);
+ struct dcn30_afmt *afmt3 = kzalloc_obj(struct dcn30_afmt, GFP_KERNEL);
if (!afmt3)
return NULL;
@@ -1180,7 +1179,7 @@ static struct apg *dcn31_apg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_apg *apg31 = kzalloc(sizeof(struct dcn31_apg), GFP_KERNEL);
+ struct dcn31_apg *apg31 = kzalloc_obj(struct dcn31_apg, GFP_KERNEL);
if (!apg31)
return NULL;
@@ -1217,7 +1216,7 @@ static struct stream_encoder *dcn32_stream_encoder_create(
vpg_inst = eng_id;
afmt_inst = eng_id;
- enc1 = kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ enc1 = kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
vpg = dcn32_vpg_create(ctx, vpg_inst);
afmt = dcn32_afmt_create(ctx, afmt_inst);
@@ -1275,7 +1274,8 @@ static struct hpo_dp_stream_encoder *dcn32_hpo_dp_stream_encoder_create(
apg_inst = hpo_dp_inst;
/* allocate HPO stream encoder and create VPG sub-block */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_stream_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_stream_encoder,
+ GFP_KERNEL);
vpg = dcn32_vpg_create(ctx, vpg_inst);
apg = dcn31_apg_create(ctx, apg_inst);
@@ -1308,7 +1308,7 @@ static struct hpo_dp_link_encoder *dcn32_hpo_dp_link_encoder_create(
struct dcn31_hpo_dp_link_encoder *hpo_dp_enc31;
/* allocate HPO link encoder */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_link_encoder, GFP_KERNEL);
if (!hpo_dp_enc31)
return NULL; /* out of memory */
@@ -1327,7 +1327,7 @@ static struct hpo_dp_link_encoder *dcn32_hpo_dp_link_encoder_create(
static struct dce_hwseq *dcn32_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
#undef REG_STRUCT
#define REG_STRUCT hwseq_reg
@@ -1510,8 +1510,8 @@ static bool dcn32_dwbc_create(struct dc_context *ctx, struct resource_pool *pool
uint32_t dwb_count = pool->res_cap->num_dwb;
for (i = 0; i < dwb_count; i++) {
- struct dcn30_dwbc *dwbc30 = kzalloc(sizeof(struct dcn30_dwbc),
- GFP_KERNEL);
+ struct dcn30_dwbc *dwbc30 = kzalloc_obj(struct dcn30_dwbc,
+ GFP_KERNEL);
if (!dwbc30) {
dm_error("DC: failed to create dwbc30!\n");
@@ -1539,8 +1539,8 @@ static bool dcn32_mmhubbub_create(struct dc_context *ctx, struct resource_pool *
uint32_t dwb_count = pool->res_cap->num_dwb;
for (i = 0; i < dwb_count; i++) {
- struct dcn30_mmhubbub *mcif_wb30 = kzalloc(sizeof(struct dcn30_mmhubbub),
- GFP_KERNEL);
+ struct dcn30_mmhubbub *mcif_wb30 = kzalloc_obj(struct dcn30_mmhubbub,
+ GFP_KERNEL);
if (!mcif_wb30) {
dm_error("DC: failed to create mcif_wb30!\n");
@@ -1566,7 +1566,7 @@ static struct display_stream_compressor *dcn32_dsc_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_dsc *dsc =
- kzalloc(sizeof(struct dcn20_dsc), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_dsc, GFP_KERNEL);
if (!dsc) {
BREAK_TO_DEBUGGER();
@@ -1754,8 +1754,9 @@ static bool dml1_validate(struct dc *dc, struct dc_state *context, enum dc_valid
int vlevel = 0;
int pipe_cnt = 0;
- display_e2e_pipe_params_st *pipes = kcalloc(dc->res_pool->pipe_count,
- sizeof(display_e2e_pipe_params_st), GFP_KERNEL);
+ display_e2e_pipe_params_st *pipes = kzalloc_objs(display_e2e_pipe_params_st,
+ dc->res_pool->pipe_count,
+ GFP_KERNEL);
/* To handle Freesync properly, setting FreeSync DML parameters
* to its default state for the first stage of validation
@@ -2571,7 +2572,7 @@ struct resource_pool *dcn32_create_resource_pool(
struct dc *dc)
{
struct dcn32_resource_pool *pool =
- kzalloc(sizeof(struct dcn32_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dcn32_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn321/dcn321_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn321/dcn321_resource.c
index 188c3f24f110..97976318f4c0 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn321/dcn321_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn321/dcn321_resource.c
@@ -744,7 +744,7 @@ static struct dce_aux *dcn321_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -784,7 +784,7 @@ static struct dce_i2c_hw *dcn321_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -811,7 +811,7 @@ static struct clock_source *dcn321_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -831,8 +831,8 @@ static struct hubbub *dcn321_hubbub_create(struct dc_context *ctx)
{
int i;
- struct dcn20_hubbub *hubbub2 = kzalloc(sizeof(struct dcn20_hubbub),
- GFP_KERNEL);
+ struct dcn20_hubbub *hubbub2 = kzalloc_obj(struct dcn20_hubbub,
+ GFP_KERNEL);
if (!hubbub2)
return NULL;
@@ -887,7 +887,7 @@ static struct hubp *dcn321_hubp_create(
uint32_t inst)
{
struct dcn20_hubp *hubp2 =
- kzalloc(sizeof(struct dcn20_hubp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_hubp, GFP_KERNEL);
if (!hubp2)
return NULL;
@@ -919,7 +919,7 @@ static struct dpp *dcn321_dpp_create(
uint32_t inst)
{
struct dcn3_dpp *dpp3 =
- kzalloc(sizeof(struct dcn3_dpp), GFP_KERNEL);
+ kzalloc_obj(struct dcn3_dpp, GFP_KERNEL);
if (!dpp3)
return NULL;
@@ -945,8 +945,7 @@ static struct mpc *dcn321_mpc_create(
int num_mpcc,
int num_rmu)
{
- struct dcn30_mpc *mpc30 = kzalloc(sizeof(struct dcn30_mpc),
- GFP_KERNEL);
+ struct dcn30_mpc *mpc30 = kzalloc_obj(struct dcn30_mpc, GFP_KERNEL);
if (!mpc30)
return NULL;
@@ -969,7 +968,7 @@ static struct output_pixel_processor *dcn321_opp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_opp *opp2 =
- kzalloc(sizeof(struct dcn20_opp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_opp, GFP_KERNEL);
if (!opp2) {
BREAK_TO_DEBUGGER();
@@ -994,7 +993,7 @@ static struct timing_generator *dcn321_timing_generator_create(
uint32_t instance)
{
struct optc *tgn10 =
- kzalloc(sizeof(struct optc), GFP_KERNEL);
+ kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -1035,7 +1034,7 @@ static struct link_encoder *dcn321_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dcn20_link_encoder *enc20 =
- kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
return NULL;
@@ -1105,7 +1104,7 @@ static struct vpg *dcn321_vpg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn30_vpg *vpg3 = kzalloc(sizeof(struct dcn30_vpg), GFP_KERNEL);
+ struct dcn30_vpg *vpg3 = kzalloc_obj(struct dcn30_vpg, GFP_KERNEL);
if (!vpg3)
return NULL;
@@ -1135,7 +1134,7 @@ static struct afmt *dcn321_afmt_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn30_afmt *afmt3 = kzalloc(sizeof(struct dcn30_afmt), GFP_KERNEL);
+ struct dcn30_afmt *afmt3 = kzalloc_obj(struct dcn30_afmt, GFP_KERNEL);
if (!afmt3)
return NULL;
@@ -1161,7 +1160,7 @@ static struct apg *dcn321_apg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_apg *apg31 = kzalloc(sizeof(struct dcn31_apg), GFP_KERNEL);
+ struct dcn31_apg *apg31 = kzalloc_obj(struct dcn31_apg, GFP_KERNEL);
if (!apg31)
return NULL;
@@ -1198,7 +1197,7 @@ static struct stream_encoder *dcn321_stream_encoder_create(
vpg_inst = eng_id;
afmt_inst = eng_id;
- enc1 = kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ enc1 = kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
vpg = dcn321_vpg_create(ctx, vpg_inst);
afmt = dcn321_afmt_create(ctx, afmt_inst);
@@ -1256,7 +1255,8 @@ static struct hpo_dp_stream_encoder *dcn321_hpo_dp_stream_encoder_create(
apg_inst = hpo_dp_inst;
/* allocate HPO stream encoder and create VPG sub-block */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_stream_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_stream_encoder,
+ GFP_KERNEL);
vpg = dcn321_vpg_create(ctx, vpg_inst);
apg = dcn321_apg_create(ctx, apg_inst);
@@ -1289,7 +1289,7 @@ static struct hpo_dp_link_encoder *dcn321_hpo_dp_link_encoder_create(
struct dcn31_hpo_dp_link_encoder *hpo_dp_enc31;
/* allocate HPO link encoder */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_link_encoder, GFP_KERNEL);
if (!hpo_dp_enc31)
return NULL; /* out of memory */
@@ -1308,7 +1308,7 @@ static struct hpo_dp_link_encoder *dcn321_hpo_dp_link_encoder_create(
static struct dce_hwseq *dcn321_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
#undef REG_STRUCT
#define REG_STRUCT hwseq_reg
@@ -1490,8 +1490,8 @@ static bool dcn321_dwbc_create(struct dc_context *ctx, struct resource_pool *poo
uint32_t dwb_count = pool->res_cap->num_dwb;
for (i = 0; i < dwb_count; i++) {
- struct dcn30_dwbc *dwbc30 = kzalloc(sizeof(struct dcn30_dwbc),
- GFP_KERNEL);
+ struct dcn30_dwbc *dwbc30 = kzalloc_obj(struct dcn30_dwbc,
+ GFP_KERNEL);
if (!dwbc30) {
dm_error("DC: failed to create dwbc30!\n");
@@ -1519,8 +1519,8 @@ static bool dcn321_mmhubbub_create(struct dc_context *ctx, struct resource_pool
uint32_t dwb_count = pool->res_cap->num_dwb;
for (i = 0; i < dwb_count; i++) {
- struct dcn30_mmhubbub *mcif_wb30 = kzalloc(sizeof(struct dcn30_mmhubbub),
- GFP_KERNEL);
+ struct dcn30_mmhubbub *mcif_wb30 = kzalloc_obj(struct dcn30_mmhubbub,
+ GFP_KERNEL);
if (!mcif_wb30) {
dm_error("DC: failed to create mcif_wb30!\n");
@@ -1546,7 +1546,7 @@ static struct display_stream_compressor *dcn321_dsc_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_dsc *dsc =
- kzalloc(sizeof(struct dcn20_dsc), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_dsc, GFP_KERNEL);
if (!dsc) {
BREAK_TO_DEBUGGER();
@@ -2064,7 +2064,7 @@ struct resource_pool *dcn321_create_resource_pool(
struct dc *dc)
{
struct dcn321_resource_pool *pool =
- kzalloc(sizeof(struct dcn321_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dcn321_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn35/dcn35_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn35/dcn35_resource.c
index 5ea805fcff48..26493ed5a6fc 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn35/dcn35_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn35/dcn35_resource.c
@@ -810,7 +810,7 @@ static void dcn35_dpp_destroy(struct dpp **dpp)
static struct dpp *dcn35_dpp_create(struct dc_context *ctx, uint32_t inst)
{
- struct dcn3_dpp *dpp = kzalloc(sizeof(struct dcn3_dpp), GFP_KERNEL);
+ struct dcn3_dpp *dpp = kzalloc_obj(struct dcn3_dpp, GFP_KERNEL);
bool success = (dpp != NULL);
if (!success)
@@ -841,7 +841,7 @@ static struct output_pixel_processor *dcn35_opp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_opp *opp =
- kzalloc(sizeof(struct dcn20_opp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_opp, GFP_KERNEL);
if (!opp) {
BREAK_TO_DEBUGGER();
@@ -868,7 +868,7 @@ static struct dce_aux *dcn31_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -931,7 +931,7 @@ static struct dce_i2c_hw *dcn31_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -954,7 +954,7 @@ static struct mpc *dcn35_mpc_create(
int num_mpcc,
int num_rmu)
{
- struct dcn30_mpc *mpc30 = kzalloc(sizeof(struct dcn30_mpc), GFP_KERNEL);
+ struct dcn30_mpc *mpc30 = kzalloc_obj(struct dcn30_mpc, GFP_KERNEL);
if (!mpc30)
return NULL;
@@ -977,8 +977,8 @@ static struct hubbub *dcn35_hubbub_create(struct dc_context *ctx)
{
int i;
- struct dcn20_hubbub *hubbub3 = kzalloc(sizeof(struct dcn20_hubbub),
- GFP_KERNEL);
+ struct dcn20_hubbub *hubbub3 = kzalloc_obj(struct dcn20_hubbub,
+ GFP_KERNEL);
if (!hubbub3)
return NULL;
@@ -1033,7 +1033,7 @@ static struct timing_generator *dcn35_timing_generator_create(
uint32_t instance)
{
struct optc *tgn10 =
- kzalloc(sizeof(struct optc), GFP_KERNEL);
+ kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -1074,7 +1074,7 @@ static struct link_encoder *dcn35_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dcn20_link_encoder *enc20 =
- kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
return NULL;
@@ -1127,7 +1127,7 @@ static struct link_encoder *dcn31_link_enc_create_minimal(
if ((eng_id - ENGINE_ID_DIGA) > ctx->dc->res_pool->res_cap->num_dig_link_enc)
return NULL;
- enc20 = kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ enc20 = kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20)
return NULL;
@@ -1144,7 +1144,7 @@ static struct link_encoder *dcn31_link_enc_create_minimal(
static struct panel_cntl *dcn31_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dcn31_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dcn31_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dcn31_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -1185,7 +1185,7 @@ static struct vpg *dcn31_vpg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_vpg *vpg31 = kzalloc(sizeof(struct dcn31_vpg), GFP_KERNEL);
+ struct dcn31_vpg *vpg31 = kzalloc_obj(struct dcn31_vpg, GFP_KERNEL);
if (!vpg31)
return NULL;
@@ -1215,7 +1215,7 @@ static struct afmt *dcn31_afmt_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_afmt *afmt31 = kzalloc(sizeof(struct dcn31_afmt), GFP_KERNEL);
+ struct dcn31_afmt *afmt31 = kzalloc_obj(struct dcn31_afmt, GFP_KERNEL);
if (!afmt31)
return NULL;
@@ -1243,7 +1243,7 @@ static struct apg *dcn31_apg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_apg *apg31 = kzalloc(sizeof(struct dcn31_apg), GFP_KERNEL);
+ struct dcn31_apg *apg31 = kzalloc_obj(struct dcn31_apg, GFP_KERNEL);
if (!apg31)
return NULL;
@@ -1280,7 +1280,7 @@ static struct stream_encoder *dcn35_stream_encoder_create(
vpg_inst = eng_id;
afmt_inst = eng_id;
- enc1 = kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ enc1 = kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
vpg = dcn31_vpg_create(ctx, vpg_inst);
afmt = dcn31_afmt_create(ctx, afmt_inst);
@@ -1338,7 +1338,8 @@ static struct hpo_dp_stream_encoder *dcn31_hpo_dp_stream_encoder_create(
apg_inst = hpo_dp_inst;
/* allocate HPO stream encoder and create VPG sub-block */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_stream_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_stream_encoder,
+ GFP_KERNEL);
vpg = dcn31_vpg_create(ctx, vpg_inst);
apg = dcn31_apg_create(ctx, apg_inst);
@@ -1371,7 +1372,7 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
struct dcn31_hpo_dp_link_encoder *hpo_dp_enc31;
/* allocate HPO link encoder */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_link_encoder, GFP_KERNEL);
if (!hpo_dp_enc31)
return NULL; /* out of memory */
@@ -1390,7 +1391,7 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
static struct dce_hwseq *dcn35_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
#undef REG_STRUCT
#define REG_STRUCT hwseq_reg
@@ -1571,7 +1572,7 @@ static struct hubp *dcn35_hubp_create(
uint32_t inst)
{
struct dcn20_hubp *hubp2 =
- kzalloc(sizeof(struct dcn20_hubp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_hubp, GFP_KERNEL);
if (!hubp2)
return NULL;
@@ -1604,8 +1605,8 @@ static bool dcn35_dwbc_create(struct dc_context *ctx, struct resource_pool *pool
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_dwbc *dwbc30 = kzalloc(sizeof(struct dcn30_dwbc),
- GFP_KERNEL);
+ struct dcn30_dwbc *dwbc30 = kzalloc_obj(struct dcn30_dwbc,
+ GFP_KERNEL);
if (!dwbc30) {
dm_error("DC: failed to create dwbc30!\n");
@@ -1643,8 +1644,8 @@ static bool dcn35_mmhubbub_create(struct dc_context *ctx, struct resource_pool *
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_mmhubbub *mcif_wb30 = kzalloc(sizeof(struct dcn30_mmhubbub),
- GFP_KERNEL);
+ struct dcn30_mmhubbub *mcif_wb30 = kzalloc_obj(struct dcn30_mmhubbub,
+ GFP_KERNEL);
if (!mcif_wb30) {
dm_error("DC: failed to create mcif_wb30!\n");
@@ -1672,7 +1673,7 @@ static struct display_stream_compressor *dcn35_dsc_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_dsc *dsc =
- kzalloc(sizeof(struct dcn20_dsc), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_dsc, GFP_KERNEL);
if (!dsc) {
BREAK_TO_DEBUGGER();
@@ -1709,7 +1710,7 @@ static struct clock_source *dcn35_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -2209,7 +2210,7 @@ struct resource_pool *dcn35_create_resource_pool(
struct dc *dc)
{
struct dcn35_resource_pool *pool =
- kzalloc(sizeof(struct dcn35_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dcn35_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn351/dcn351_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn351/dcn351_resource.c
index 424b52e2dd7b..0e204d8e1336 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn351/dcn351_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn351/dcn351_resource.c
@@ -790,7 +790,7 @@ static void dcn35_dpp_destroy(struct dpp **dpp)
static struct dpp *dcn35_dpp_create(struct dc_context *ctx, uint32_t inst)
{
- struct dcn3_dpp *dpp = kzalloc(sizeof(struct dcn3_dpp), GFP_KERNEL);
+ struct dcn3_dpp *dpp = kzalloc_obj(struct dcn3_dpp, GFP_KERNEL);
bool success = (dpp != NULL);
if (!success)
@@ -821,7 +821,7 @@ static struct output_pixel_processor *dcn35_opp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_opp *opp =
- kzalloc(sizeof(struct dcn20_opp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_opp, GFP_KERNEL);
if (!opp) {
BREAK_TO_DEBUGGER();
@@ -848,7 +848,7 @@ static struct dce_aux *dcn31_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -911,7 +911,7 @@ static struct dce_i2c_hw *dcn31_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -934,7 +934,7 @@ static struct mpc *dcn35_mpc_create(
int num_mpcc,
int num_rmu)
{
- struct dcn30_mpc *mpc30 = kzalloc(sizeof(struct dcn30_mpc), GFP_KERNEL);
+ struct dcn30_mpc *mpc30 = kzalloc_obj(struct dcn30_mpc, GFP_KERNEL);
if (!mpc30)
return NULL;
@@ -957,8 +957,8 @@ static struct hubbub *dcn35_hubbub_create(struct dc_context *ctx)
{
int i;
- struct dcn20_hubbub *hubbub3 = kzalloc(sizeof(struct dcn20_hubbub),
- GFP_KERNEL);
+ struct dcn20_hubbub *hubbub3 = kzalloc_obj(struct dcn20_hubbub,
+ GFP_KERNEL);
if (!hubbub3)
return NULL;
@@ -1013,7 +1013,7 @@ static struct timing_generator *dcn35_timing_generator_create(
uint32_t instance)
{
struct optc *tgn10 =
- kzalloc(sizeof(struct optc), GFP_KERNEL);
+ kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -1054,7 +1054,7 @@ static struct link_encoder *dcn35_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dcn20_link_encoder *enc20 =
- kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
return NULL;
@@ -1107,7 +1107,7 @@ static struct link_encoder *dcn31_link_enc_create_minimal(
if ((eng_id - ENGINE_ID_DIGA) > ctx->dc->res_pool->res_cap->num_dig_link_enc)
return NULL;
- enc20 = kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ enc20 = kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20)
return NULL;
@@ -1124,7 +1124,7 @@ static struct link_encoder *dcn31_link_enc_create_minimal(
static struct panel_cntl *dcn31_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dcn31_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dcn31_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dcn31_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -1165,7 +1165,7 @@ static struct vpg *dcn31_vpg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_vpg *vpg31 = kzalloc(sizeof(struct dcn31_vpg), GFP_KERNEL);
+ struct dcn31_vpg *vpg31 = kzalloc_obj(struct dcn31_vpg, GFP_KERNEL);
if (!vpg31)
return NULL;
@@ -1195,7 +1195,7 @@ static struct afmt *dcn31_afmt_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_afmt *afmt31 = kzalloc(sizeof(struct dcn31_afmt), GFP_KERNEL);
+ struct dcn31_afmt *afmt31 = kzalloc_obj(struct dcn31_afmt, GFP_KERNEL);
if (!afmt31)
return NULL;
@@ -1223,7 +1223,7 @@ static struct apg *dcn31_apg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_apg *apg31 = kzalloc(sizeof(struct dcn31_apg), GFP_KERNEL);
+ struct dcn31_apg *apg31 = kzalloc_obj(struct dcn31_apg, GFP_KERNEL);
if (!apg31)
return NULL;
@@ -1260,7 +1260,7 @@ static struct stream_encoder *dcn35_stream_encoder_create(
vpg_inst = eng_id;
afmt_inst = eng_id;
- enc1 = kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ enc1 = kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
vpg = dcn31_vpg_create(ctx, vpg_inst);
afmt = dcn31_afmt_create(ctx, afmt_inst);
@@ -1318,7 +1318,8 @@ static struct hpo_dp_stream_encoder *dcn31_hpo_dp_stream_encoder_create(
apg_inst = hpo_dp_inst;
/* allocate HPO stream encoder and create VPG sub-block */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_stream_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_stream_encoder,
+ GFP_KERNEL);
vpg = dcn31_vpg_create(ctx, vpg_inst);
apg = dcn31_apg_create(ctx, apg_inst);
@@ -1351,7 +1352,7 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
struct dcn31_hpo_dp_link_encoder *hpo_dp_enc31;
/* allocate HPO link encoder */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_link_encoder, GFP_KERNEL);
if (!hpo_dp_enc31)
return NULL; /* out of memory */
@@ -1370,7 +1371,7 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
static struct dce_hwseq *dcn351_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
#undef REG_STRUCT
#define REG_STRUCT hwseq_reg
@@ -1551,7 +1552,7 @@ static struct hubp *dcn35_hubp_create(
uint32_t inst)
{
struct dcn20_hubp *hubp2 =
- kzalloc(sizeof(struct dcn20_hubp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_hubp, GFP_KERNEL);
if (!hubp2)
return NULL;
@@ -1584,8 +1585,8 @@ static bool dcn35_dwbc_create(struct dc_context *ctx, struct resource_pool *pool
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_dwbc *dwbc30 = kzalloc(sizeof(struct dcn30_dwbc),
- GFP_KERNEL);
+ struct dcn30_dwbc *dwbc30 = kzalloc_obj(struct dcn30_dwbc,
+ GFP_KERNEL);
if (!dwbc30) {
dm_error("DC: failed to create dwbc30!\n");
@@ -1623,8 +1624,8 @@ static bool dcn35_mmhubbub_create(struct dc_context *ctx, struct resource_pool *
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_mmhubbub *mcif_wb30 = kzalloc(sizeof(struct dcn30_mmhubbub),
- GFP_KERNEL);
+ struct dcn30_mmhubbub *mcif_wb30 = kzalloc_obj(struct dcn30_mmhubbub,
+ GFP_KERNEL);
if (!mcif_wb30) {
dm_error("DC: failed to create mcif_wb30!\n");
@@ -1652,7 +1653,7 @@ static struct display_stream_compressor *dcn35_dsc_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_dsc *dsc =
- kzalloc(sizeof(struct dcn20_dsc), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_dsc, GFP_KERNEL);
if (!dsc) {
BREAK_TO_DEBUGGER();
@@ -1689,7 +1690,7 @@ static struct clock_source *dcn35_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -2182,7 +2183,7 @@ struct resource_pool *dcn351_create_resource_pool(
struct dc *dc)
{
struct dcn351_resource_pool *pool =
- kzalloc(sizeof(struct dcn351_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dcn351_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn36/dcn36_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn36/dcn36_resource.c
index 7582217bd06d..c0cf8c46031f 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn36/dcn36_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn36/dcn36_resource.c
@@ -797,7 +797,7 @@ static void dcn35_dpp_destroy(struct dpp **dpp)
static struct dpp *dcn35_dpp_create(struct dc_context *ctx, uint32_t inst)
{
- struct dcn3_dpp *dpp = kzalloc(sizeof(struct dcn3_dpp), GFP_KERNEL);
+ struct dcn3_dpp *dpp = kzalloc_obj(struct dcn3_dpp, GFP_KERNEL);
bool success = (dpp != NULL);
if (!success)
@@ -828,7 +828,7 @@ static struct output_pixel_processor *dcn35_opp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_opp *opp =
- kzalloc(sizeof(struct dcn20_opp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_opp, GFP_KERNEL);
if (!opp) {
BREAK_TO_DEBUGGER();
@@ -855,7 +855,7 @@ static struct dce_aux *dcn31_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -918,7 +918,7 @@ static struct dce_i2c_hw *dcn31_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -941,7 +941,7 @@ static struct mpc *dcn35_mpc_create(
int num_mpcc,
int num_rmu)
{
- struct dcn30_mpc *mpc30 = kzalloc(sizeof(struct dcn30_mpc), GFP_KERNEL);
+ struct dcn30_mpc *mpc30 = kzalloc_obj(struct dcn30_mpc, GFP_KERNEL);
if (!mpc30)
return NULL;
@@ -964,8 +964,8 @@ static struct hubbub *dcn35_hubbub_create(struct dc_context *ctx)
{
int i;
- struct dcn20_hubbub *hubbub3 = kzalloc(sizeof(struct dcn20_hubbub),
- GFP_KERNEL);
+ struct dcn20_hubbub *hubbub3 = kzalloc_obj(struct dcn20_hubbub,
+ GFP_KERNEL);
if (!hubbub3)
return NULL;
@@ -1020,7 +1020,7 @@ static struct timing_generator *dcn35_timing_generator_create(
uint32_t instance)
{
struct optc *tgn10 =
- kzalloc(sizeof(struct optc), GFP_KERNEL);
+ kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -1061,7 +1061,7 @@ static struct link_encoder *dcn35_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dcn20_link_encoder *enc20 =
- kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
return NULL;
@@ -1114,7 +1114,7 @@ static struct link_encoder *dcn31_link_enc_create_minimal(
if ((eng_id - ENGINE_ID_DIGA) > ctx->dc->res_pool->res_cap->num_dig_link_enc)
return NULL;
- enc20 = kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ enc20 = kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20)
return NULL;
@@ -1131,7 +1131,7 @@ static struct link_encoder *dcn31_link_enc_create_minimal(
static struct panel_cntl *dcn31_panel_cntl_create(const struct panel_cntl_init_data *init_data)
{
struct dcn31_panel_cntl *panel_cntl =
- kzalloc(sizeof(struct dcn31_panel_cntl), GFP_KERNEL);
+ kzalloc_obj(struct dcn31_panel_cntl, GFP_KERNEL);
if (!panel_cntl)
return NULL;
@@ -1172,7 +1172,7 @@ static struct vpg *dcn31_vpg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_vpg *vpg31 = kzalloc(sizeof(struct dcn31_vpg), GFP_KERNEL);
+ struct dcn31_vpg *vpg31 = kzalloc_obj(struct dcn31_vpg, GFP_KERNEL);
if (!vpg31)
return NULL;
@@ -1202,7 +1202,7 @@ static struct afmt *dcn31_afmt_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_afmt *afmt31 = kzalloc(sizeof(struct dcn31_afmt), GFP_KERNEL);
+ struct dcn31_afmt *afmt31 = kzalloc_obj(struct dcn31_afmt, GFP_KERNEL);
if (!afmt31)
return NULL;
@@ -1230,7 +1230,7 @@ static struct apg *dcn31_apg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_apg *apg31 = kzalloc(sizeof(struct dcn31_apg), GFP_KERNEL);
+ struct dcn31_apg *apg31 = kzalloc_obj(struct dcn31_apg, GFP_KERNEL);
if (!apg31)
return NULL;
@@ -1267,7 +1267,7 @@ static struct stream_encoder *dcn35_stream_encoder_create(
} else
return NULL;
- enc1 = kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ enc1 = kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
vpg = dcn31_vpg_create(ctx, vpg_inst);
afmt = dcn31_afmt_create(ctx, afmt_inst);
@@ -1325,7 +1325,8 @@ static struct hpo_dp_stream_encoder *dcn31_hpo_dp_stream_encoder_create(
apg_inst = hpo_dp_inst;
/* allocate HPO stream encoder and create VPG sub-block */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_stream_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_stream_encoder,
+ GFP_KERNEL);
vpg = dcn31_vpg_create(ctx, vpg_inst);
apg = dcn31_apg_create(ctx, apg_inst);
@@ -1358,7 +1359,7 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
struct dcn31_hpo_dp_link_encoder *hpo_dp_enc31;
/* allocate HPO link encoder */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_link_encoder, GFP_KERNEL);
if (!hpo_dp_enc31)
return NULL; /* out of memory */
@@ -1377,7 +1378,7 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
static struct dce_hwseq *dcn36_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
#undef REG_STRUCT
#define REG_STRUCT hwseq_reg
@@ -1558,7 +1559,7 @@ static struct hubp *dcn35_hubp_create(
uint32_t inst)
{
struct dcn20_hubp *hubp2 =
- kzalloc(sizeof(struct dcn20_hubp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_hubp, GFP_KERNEL);
if (!hubp2)
return NULL;
@@ -1591,8 +1592,8 @@ static bool dcn35_dwbc_create(struct dc_context *ctx, struct resource_pool *pool
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_dwbc *dwbc30 = kzalloc(sizeof(struct dcn30_dwbc),
- GFP_KERNEL);
+ struct dcn30_dwbc *dwbc30 = kzalloc_obj(struct dcn30_dwbc,
+ GFP_KERNEL);
if (!dwbc30) {
dm_error("DC: failed to create dwbc30!\n");
@@ -1630,8 +1631,8 @@ static bool dcn35_mmhubbub_create(struct dc_context *ctx, struct resource_pool *
uint32_t pipe_count = pool->res_cap->num_dwb;
for (i = 0; i < pipe_count; i++) {
- struct dcn30_mmhubbub *mcif_wb30 = kzalloc(sizeof(struct dcn30_mmhubbub),
- GFP_KERNEL);
+ struct dcn30_mmhubbub *mcif_wb30 = kzalloc_obj(struct dcn30_mmhubbub,
+ GFP_KERNEL);
if (!mcif_wb30) {
dm_error("DC: failed to create mcif_wb30!\n");
@@ -1659,7 +1660,7 @@ static struct display_stream_compressor *dcn35_dsc_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_dsc *dsc =
- kzalloc(sizeof(struct dcn20_dsc), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_dsc, GFP_KERNEL);
if (!dsc) {
BREAK_TO_DEBUGGER();
@@ -1696,7 +1697,7 @@ static struct clock_source *dcn35_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -2188,7 +2189,7 @@ struct resource_pool *dcn36_create_resource_pool(
struct dc *dc)
{
struct dcn36_resource_pool *pool =
- kzalloc(sizeof(struct dcn36_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dcn36_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn401/dcn401_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn401/dcn401_resource.c
index f5e02a1ff771..db8a0c0b8cda 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn401/dcn401_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn401/dcn401_resource.c
@@ -762,7 +762,7 @@ static struct dce_aux *dcn401_aux_engine_create(
uint32_t inst)
{
struct aux_engine_dce110 *aux_engine =
- kzalloc(sizeof(struct aux_engine_dce110), GFP_KERNEL);
+ kzalloc_obj(struct aux_engine_dce110, GFP_KERNEL);
if (!aux_engine)
return NULL;
@@ -801,7 +801,7 @@ static struct dce_i2c_hw *dcn401_i2c_hw_create(
uint32_t inst)
{
struct dce_i2c_hw *dce_i2c_hw =
- kzalloc(sizeof(struct dce_i2c_hw), GFP_KERNEL);
+ kzalloc_obj(struct dce_i2c_hw, GFP_KERNEL);
if (!dce_i2c_hw)
return NULL;
@@ -827,7 +827,7 @@ static struct clock_source *dcn401_clock_source_create(
bool dp_clk_src)
{
struct dce110_clk_src *clk_src =
- kzalloc(sizeof(struct dce110_clk_src), GFP_KERNEL);
+ kzalloc_obj(struct dce110_clk_src, GFP_KERNEL);
if (!clk_src)
return NULL;
@@ -847,8 +847,8 @@ static struct hubbub *dcn401_hubbub_create(struct dc_context *ctx)
{
int i;
- struct dcn20_hubbub *hubbub2 = kzalloc(sizeof(struct dcn20_hubbub),
- GFP_KERNEL);
+ struct dcn20_hubbub *hubbub2 = kzalloc_obj(struct dcn20_hubbub,
+ GFP_KERNEL);
if (!hubbub2)
return NULL;
@@ -900,7 +900,7 @@ static struct hubbub *dcn401_hubbub_create(struct dc_context *ctx)
static struct dio *dcn401_dio_create(struct dc_context *ctx)
{
- struct dcn10_dio *dio10 = kzalloc(sizeof(struct dcn10_dio), GFP_KERNEL);
+ struct dcn10_dio *dio10 = kzalloc_obj(struct dcn10_dio, GFP_KERNEL);
if (!dio10)
return NULL;
@@ -919,7 +919,7 @@ static struct hubp *dcn401_hubp_create(
uint32_t inst)
{
struct dcn20_hubp *hubp2 =
- kzalloc(sizeof(struct dcn20_hubp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_hubp, GFP_KERNEL);
if (!hubp2)
return NULL;
@@ -951,7 +951,7 @@ static struct dpp *dcn401_dpp_create(
uint32_t inst)
{
struct dcn401_dpp *dpp401 =
- kzalloc(sizeof(struct dcn401_dpp), GFP_KERNEL);
+ kzalloc_obj(struct dcn401_dpp, GFP_KERNEL);
if (!dpp401)
return NULL;
@@ -977,8 +977,7 @@ static struct mpc *dcn401_mpc_create(
int num_mpcc,
int num_rmu)
{
- struct dcn401_mpc *mpc401 = kzalloc(sizeof(struct dcn401_mpc),
- GFP_KERNEL);
+ struct dcn401_mpc *mpc401 = kzalloc_obj(struct dcn401_mpc, GFP_KERNEL);
if (!mpc401)
return NULL;
@@ -1001,7 +1000,7 @@ static struct output_pixel_processor *dcn401_opp_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn20_opp *opp4 =
- kzalloc(sizeof(struct dcn20_opp), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_opp, GFP_KERNEL);
if (!opp4) {
BREAK_TO_DEBUGGER();
@@ -1026,7 +1025,7 @@ static struct timing_generator *dcn401_timing_generator_create(
uint32_t instance)
{
struct optc *tgn10 =
- kzalloc(sizeof(struct optc), GFP_KERNEL);
+ kzalloc_obj(struct optc, GFP_KERNEL);
if (!tgn10)
return NULL;
@@ -1066,7 +1065,7 @@ static struct link_encoder *dcn401_link_encoder_create(
const struct encoder_init_data *enc_init_data)
{
struct dcn20_link_encoder *enc20 =
- kzalloc(sizeof(struct dcn20_link_encoder), GFP_KERNEL);
+ kzalloc_obj(struct dcn20_link_encoder, GFP_KERNEL);
if (!enc20 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
return NULL;
@@ -1131,7 +1130,7 @@ static struct vpg *dcn401_vpg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_vpg *vpg4 = kzalloc(sizeof(struct dcn31_vpg), GFP_KERNEL);
+ struct dcn31_vpg *vpg4 = kzalloc_obj(struct dcn31_vpg, GFP_KERNEL);
if (!vpg4)
return NULL;
@@ -1161,7 +1160,7 @@ static struct afmt *dcn401_afmt_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn30_afmt *afmt401 = kzalloc(sizeof(struct dcn30_afmt), GFP_KERNEL);
+ struct dcn30_afmt *afmt401 = kzalloc_obj(struct dcn30_afmt, GFP_KERNEL);
if (!afmt401)
return NULL;
@@ -1186,7 +1185,7 @@ static struct apg *dcn401_apg_create(
struct dc_context *ctx,
uint32_t inst)
{
- struct dcn31_apg *apg31 = kzalloc(sizeof(struct dcn31_apg), GFP_KERNEL);
+ struct dcn31_apg *apg31 = kzalloc_obj(struct dcn31_apg, GFP_KERNEL);
if (!apg31)
return NULL;
@@ -1223,7 +1222,7 @@ static struct stream_encoder *dcn401_stream_encoder_create(
} else
return NULL;
- enc1 = kzalloc(sizeof(struct dcn10_stream_encoder), GFP_KERNEL);
+ enc1 = kzalloc_obj(struct dcn10_stream_encoder, GFP_KERNEL);
vpg = dcn401_vpg_create(ctx, vpg_inst);
afmt = dcn401_afmt_create(ctx, afmt_inst);
@@ -1279,7 +1278,8 @@ static struct hpo_dp_stream_encoder *dcn401_hpo_dp_stream_encoder_create(
apg_inst = hpo_dp_inst;
/* allocate HPO stream encoder and create VPG sub-block */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_stream_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_stream_encoder,
+ GFP_KERNEL);
vpg = dcn401_vpg_create(ctx, vpg_inst);
apg = dcn401_apg_create(ctx, apg_inst);
@@ -1312,7 +1312,7 @@ static struct hpo_dp_link_encoder *dcn401_hpo_dp_link_encoder_create(
struct dcn31_hpo_dp_link_encoder *hpo_dp_enc31;
/* allocate HPO link encoder */
- hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
+ hpo_dp_enc31 = kzalloc_obj(struct dcn31_hpo_dp_link_encoder, GFP_KERNEL);
if (!hpo_dp_enc31)
return NULL; /* out of memory */
@@ -1356,7 +1356,7 @@ static unsigned int dcn401_calc_num_avail_chans_for_mall(struct dc *dc, unsigned
static struct dce_hwseq *dcn401_hwseq_create(
struct dc_context *ctx)
{
- struct dce_hwseq *hws = kzalloc(sizeof(struct dce_hwseq), GFP_KERNEL);
+ struct dce_hwseq *hws = kzalloc_obj(struct dce_hwseq, GFP_KERNEL);
#undef REG_STRUCT
#define REG_STRUCT hwseq_reg
@@ -1551,8 +1551,8 @@ static bool dcn401_dwbc_create(struct dc_context *ctx, struct resource_pool *poo
uint32_t dwb_count = pool->res_cap->num_dwb;
for (i = 0; i < dwb_count; i++) {
- struct dcn30_dwbc *dwbc401 = kzalloc(sizeof(struct dcn30_dwbc),
- GFP_KERNEL);
+ struct dcn30_dwbc *dwbc401 = kzalloc_obj(struct dcn30_dwbc,
+ GFP_KERNEL);
if (!dwbc401) {
dm_error("DC: failed to create dwbc401!\n");
@@ -1582,8 +1582,8 @@ static bool dcn401_mmhubbub_create(struct dc_context *ctx, struct resource_pool
uint32_t dwb_count = pool->res_cap->num_dwb;
for (i = 0; i < dwb_count; i++) {
- struct dcn30_mmhubbub *mcif_wb30 = kzalloc(sizeof(struct dcn30_mmhubbub),
- GFP_KERNEL);
+ struct dcn30_mmhubbub *mcif_wb30 = kzalloc_obj(struct dcn30_mmhubbub,
+ GFP_KERNEL);
if (!mcif_wb30) {
dm_error("DC: failed to create mcif_wb30!\n");
@@ -1609,7 +1609,7 @@ static struct display_stream_compressor *dcn401_dsc_create(
struct dc_context *ctx, uint32_t inst)
{
struct dcn401_dsc *dsc =
- kzalloc(sizeof(struct dcn401_dsc), GFP_KERNEL);
+ kzalloc_obj(struct dcn401_dsc, GFP_KERNEL);
if (!dsc) {
BREAK_TO_DEBUGGER();
@@ -2314,7 +2314,7 @@ struct resource_pool *dcn401_create_resource_pool(
struct dc *dc)
{
struct dcn401_resource_pool *pool =
- kzalloc(sizeof(struct dcn401_resource_pool), GFP_KERNEL);
+ kzalloc_obj(struct dcn401_resource_pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/soc_and_ip_translator/soc_and_ip_translator.c b/drivers/gpu/drm/amd/display/dc/soc_and_ip_translator/soc_and_ip_translator.c
index 0fc0e5a6c171..1334d0efe6e3 100644
--- a/drivers/gpu/drm/amd/display/dc/soc_and_ip_translator/soc_and_ip_translator.c
+++ b/drivers/gpu/drm/amd/display/dc/soc_and_ip_translator/soc_and_ip_translator.c
@@ -21,7 +21,7 @@ struct soc_and_ip_translator *dc_create_soc_and_ip_translator(enum dce_version d
{
struct soc_and_ip_translator *soc_and_ip_translator;
- soc_and_ip_translator = kzalloc(sizeof(*soc_and_ip_translator), GFP_KERNEL);
+ soc_and_ip_translator = kzalloc_obj(*soc_and_ip_translator, GFP_KERNEL);
if (!soc_and_ip_translator)
return NULL;
diff --git a/drivers/gpu/drm/amd/display/modules/color/color_gamma.c b/drivers/gpu/drm/amd/display/modules/color/color_gamma.c
index a71df052cf25..33a7627191f8 100644
--- a/drivers/gpu/drm/amd/display/modules/color/color_gamma.c
+++ b/drivers/gpu/drm/amd/display/modules/color/color_gamma.c
@@ -933,7 +933,7 @@ static bool build_regamma(struct pwl_float_data_ex *rgb_regamma,
struct pwl_float_data_ex *rgb = rgb_regamma;
const struct hw_x_point *coord_x = coordinate_x;
- coeff = kvzalloc(sizeof(*coeff), GFP_KERNEL);
+ coeff = kvzalloc_obj(*coeff, GFP_KERNEL);
if (!coeff)
goto release;
@@ -1714,14 +1714,15 @@ bool mod_color_calculate_degamma_params(struct dc_color_caps *dc_caps,
input_tf->type = TF_TYPE_DISTRIBUTED_POINTS;
if (map_user_ramp && ramp && ramp->type == GAMMA_RGB_256) {
- rgb_user = kvcalloc(ramp->num_entries + _EXTRA_POINTS,
- sizeof(*rgb_user),
- GFP_KERNEL);
+ rgb_user = kvzalloc_objs(*rgb_user,
+ ramp->num_entries + _EXTRA_POINTS,
+ GFP_KERNEL);
if (!rgb_user)
goto rgb_user_alloc_fail;
- axis_x = kvcalloc(ramp->num_entries + _EXTRA_POINTS, sizeof(*axis_x),
- GFP_KERNEL);
+ axis_x = kvzalloc_objs(*axis_x,
+ ramp->num_entries + _EXTRA_POINTS,
+ GFP_KERNEL);
if (!axis_x)
goto axis_x_alloc_fail;
@@ -1737,13 +1738,11 @@ bool mod_color_calculate_degamma_params(struct dc_color_caps *dc_caps,
scale_gamma(rgb_user, ramp, dividers);
}
- curve = kvcalloc(MAX_HW_POINTS + _EXTRA_POINTS, sizeof(*curve),
- GFP_KERNEL);
+ curve = kvzalloc_objs(*curve, MAX_HW_POINTS + _EXTRA_POINTS, GFP_KERNEL);
if (!curve)
goto curve_alloc_fail;
- coeff = kvcalloc(MAX_HW_POINTS + _EXTRA_POINTS, sizeof(*coeff),
- GFP_KERNEL);
+ coeff = kvzalloc_objs(*coeff, MAX_HW_POINTS + _EXTRA_POINTS, GFP_KERNEL);
if (!coeff)
goto coeff_alloc_fail;
@@ -1940,14 +1939,14 @@ bool mod_color_calculate_regamma_params(struct dc_transfer_func *output_tf,
if (ramp && ramp->type != GAMMA_CS_TFM_1D &&
(map_user_ramp || ramp->type != GAMMA_RGB_256)) {
- rgb_user = kvcalloc(ramp->num_entries + _EXTRA_POINTS,
- sizeof(*rgb_user),
- GFP_KERNEL);
+ rgb_user = kvzalloc_objs(*rgb_user,
+ ramp->num_entries + _EXTRA_POINTS,
+ GFP_KERNEL);
if (!rgb_user)
goto rgb_user_alloc_fail;
- axis_x = kvcalloc(ramp->num_entries + 3, sizeof(*axis_x),
- GFP_KERNEL);
+ axis_x = kvzalloc_objs(*axis_x, ramp->num_entries + 3,
+ GFP_KERNEL);
if (!axis_x)
goto axis_x_alloc_fail;
@@ -1966,14 +1965,12 @@ bool mod_color_calculate_regamma_params(struct dc_transfer_func *output_tf,
scale_gamma_dx(rgb_user, ramp, dividers);
}
- rgb_regamma = kvcalloc(MAX_HW_POINTS + _EXTRA_POINTS,
- sizeof(*rgb_regamma),
- GFP_KERNEL);
+ rgb_regamma = kvzalloc_objs(*rgb_regamma, MAX_HW_POINTS + _EXTRA_POINTS,
+ GFP_KERNEL);
if (!rgb_regamma)
goto rgb_regamma_alloc_fail;
- coeff = kvcalloc(MAX_HW_POINTS + _EXTRA_POINTS, sizeof(*coeff),
- GFP_KERNEL);
+ coeff = kvzalloc_objs(*coeff, MAX_HW_POINTS + _EXTRA_POINTS, GFP_KERNEL);
if (!coeff)
goto coeff_alloc_fail;
diff --git a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
index 1aae46d703ba..b819610021f2 100644
--- a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
+++ b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
@@ -61,7 +61,7 @@ struct core_freesync {
struct mod_freesync *mod_freesync_create(struct dc *dc)
{
struct core_freesync *core_freesync =
- kzalloc(sizeof(struct core_freesync), GFP_KERNEL);
+ kzalloc_obj(struct core_freesync, GFP_KERNEL);
if (core_freesync == NULL)
goto fail_alloc_context;
diff --git a/drivers/gpu/drm/amd/display/modules/vmid/vmid.c b/drivers/gpu/drm/amd/display/modules/vmid/vmid.c
index 2c40212d86da..ccd35d1f05ec 100644
--- a/drivers/gpu/drm/amd/display/modules/vmid/vmid.c
+++ b/drivers/gpu/drm/amd/display/modules/vmid/vmid.c
@@ -144,7 +144,7 @@ struct mod_vmid *mod_vmid_create(
if (dc == NULL)
goto fail_dc_null;
- core_vmid = kzalloc(sizeof(struct core_vmid), GFP_KERNEL);
+ core_vmid = kzalloc_obj(struct core_vmid, GFP_KERNEL);
if (core_vmid == NULL)
goto fail_alloc_context;
diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
index 938361ecae05..28b178d0aff6 100644
--- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
@@ -2746,7 +2746,7 @@ static int amdgpu_device_attr_create(struct amdgpu_device *adev,
name, ret);
}
- attr_entry = kmalloc(sizeof(*attr_entry), GFP_KERNEL);
+ attr_entry = kmalloc_obj(*attr_entry, GFP_KERNEL);
if (!attr_entry)
return -ENOMEM;
@@ -4592,7 +4592,7 @@ static int amdgpu_od_set_init(struct amdgpu_device *adev)
int ret;
/* Setup the top `gpu_od` directory which holds all other OD interfaces */
- top_set = kzalloc(sizeof(*top_set), GFP_KERNEL);
+ top_set = kzalloc_obj(*top_set, GFP_KERNEL);
if (!top_set)
return -ENOMEM;
list_add(&top_set->entry, &adev->pm.od_kobj_list);
@@ -4629,7 +4629,7 @@ static int amdgpu_od_set_init(struct amdgpu_device *adev)
* The container is presented as a plain file under top `gpu_od`
* directory.
*/
- attribute = kzalloc(sizeof(*attribute), GFP_KERNEL);
+ attribute = kzalloc_obj(*attribute, GFP_KERNEL);
if (!attribute) {
ret = -ENOMEM;
goto err_out;
@@ -4649,7 +4649,7 @@ static int amdgpu_od_set_init(struct amdgpu_device *adev)
goto err_out;
} else {
/* The container is presented as a sub directory. */
- sub_set = kzalloc(sizeof(*sub_set), GFP_KERNEL);
+ sub_set = kzalloc_obj(*sub_set, GFP_KERNEL);
if (!sub_set) {
ret = -ENOMEM;
goto err_out;
@@ -4679,7 +4679,7 @@ static int amdgpu_od_set_init(struct amdgpu_device *adev)
* With the container presented as a sub directory, the entry within
* it is presented as a plain file under the sub directory.
*/
- attribute = kzalloc(sizeof(*attribute), GFP_KERNEL);
+ attribute = kzalloc_obj(*attribute, GFP_KERNEL);
if (!attribute) {
ret = -ENOMEM;
goto err_out;
diff --git a/drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c b/drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c
index 33eb85dd68e9..5d0c0c5a706b 100644
--- a/drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c
+++ b/drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c
@@ -2724,9 +2724,8 @@ static int kv_parse_power_table(struct amdgpu_device *adev)
(mode_info->atom_context->bios + data_offset +
le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
- adev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
- sizeof(struct amdgpu_ps),
- GFP_KERNEL);
+ adev->pm.dpm.ps = kzalloc_objs(struct amdgpu_ps,
+ state_array->ucNumEntries, GFP_KERNEL);
if (!adev->pm.dpm.ps)
return -ENOMEM;
power_state_offset = (u8 *)state_array->states;
@@ -2736,7 +2735,7 @@ static int kv_parse_power_table(struct amdgpu_device *adev)
non_clock_array_index = power_state->v2.nonClockInfoIndex;
non_clock_info = (struct _ATOM_PPLIB_NONCLOCK_INFO *)
&non_clock_info_array->nonClockInfo[non_clock_array_index];
- ps = kzalloc(sizeof(struct kv_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct kv_ps, GFP_KERNEL);
if (ps == NULL)
return -ENOMEM;
adev->pm.dpm.ps[i].ps_priv = ps;
@@ -2783,7 +2782,7 @@ static int kv_dpm_init(struct amdgpu_device *adev)
struct kv_power_info *pi;
int ret, i;
- pi = kzalloc(sizeof(struct kv_power_info), GFP_KERNEL);
+ pi = kzalloc_obj(struct kv_power_info, GFP_KERNEL);
if (pi == NULL)
return -ENOMEM;
adev->pm.dpm.priv = pi;
diff --git a/drivers/gpu/drm/amd/pm/legacy-dpm/legacy_dpm.c b/drivers/gpu/drm/amd/pm/legacy-dpm/legacy_dpm.c
index c7ed0b457129..c41bcc8a7efb 100644
--- a/drivers/gpu/drm/amd/pm/legacy-dpm/legacy_dpm.c
+++ b/drivers/gpu/drm/amd/pm/legacy-dpm/legacy_dpm.c
@@ -302,9 +302,8 @@ int amdgpu_parse_extended_power_table(struct amdgpu_device *adev)
ATOM_PPLIB_PhaseSheddingLimits_Record *entry;
adev->pm.dpm.dyn_state.phase_shedding_limits_table.entries =
- kcalloc(psl->ucNumEntries,
- sizeof(struct amdgpu_phase_shedding_limits_entry),
- GFP_KERNEL);
+ kzalloc_objs(struct amdgpu_phase_shedding_limits_entry,
+ psl->ucNumEntries, GFP_KERNEL);
if (!adev->pm.dpm.dyn_state.phase_shedding_limits_table.entries)
return -ENOMEM;
@@ -503,7 +502,7 @@ int amdgpu_parse_extended_power_table(struct amdgpu_device *adev)
(mode_info->atom_context->bios + data_offset +
le16_to_cpu(ext_hdr->usPPMTableOffset));
adev->pm.dpm.dyn_state.ppm_table =
- kzalloc(sizeof(struct amdgpu_ppm_table), GFP_KERNEL);
+ kzalloc_obj(struct amdgpu_ppm_table, GFP_KERNEL);
if (!adev->pm.dpm.dyn_state.ppm_table)
return -ENOMEM;
adev->pm.dpm.dyn_state.ppm_table->ppm_design = ppm->ucPpmDesign;
@@ -557,7 +556,8 @@ int amdgpu_parse_extended_power_table(struct amdgpu_device *adev)
le16_to_cpu(ext_hdr->usPowerTuneTableOffset));
ATOM_PowerTune_Table *pt;
adev->pm.dpm.dyn_state.cac_tdp_table =
- kzalloc(sizeof(struct amdgpu_cac_tdp_table), GFP_KERNEL);
+ kzalloc_obj(struct amdgpu_cac_tdp_table,
+ GFP_KERNEL);
if (!adev->pm.dpm.dyn_state.cac_tdp_table)
return -ENOMEM;
if (rev > 0) {
diff --git a/drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c b/drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c
index d8959e0f109c..b4fc0106f973 100644
--- a/drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c
+++ b/drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c
@@ -2586,7 +2586,7 @@ static int si_initialize_smc_dte_tables(struct amdgpu_device *adev)
if (dte_data->k <= 0)
return -EINVAL;
- dte_tables = kzalloc(sizeof(Smc_SIslands_DTE_Configuration), GFP_KERNEL);
+ dte_tables = kzalloc_obj(Smc_SIslands_DTE_Configuration, GFP_KERNEL);
if (dte_tables == NULL) {
si_pi->enable_dte = false;
return -ENOMEM;
@@ -2767,7 +2767,7 @@ static int si_initialize_smc_cac_tables(struct amdgpu_device *adev)
if (ni_pi->enable_cac == false)
return 0;
- cac_tables = kzalloc(sizeof(PP_SIslands_CacConfig), GFP_KERNEL);
+ cac_tables = kzalloc_obj(PP_SIslands_CacConfig, GFP_KERNEL);
if (!cac_tables)
return -ENOMEM;
@@ -2964,7 +2964,7 @@ static int si_init_smc_spll_table(struct amdgpu_device *adev)
if (si_pi->spll_table_start == 0)
return -EINVAL;
- spll_table = kzalloc(sizeof(SMC_SISLANDS_SPLL_DIV_TABLE), GFP_KERNEL);
+ spll_table = kzalloc_obj(SMC_SISLANDS_SPLL_DIV_TABLE, GFP_KERNEL);
if (spll_table == NULL)
return -ENOMEM;
@@ -6054,7 +6054,7 @@ static int si_initialize_mc_reg_table(struct amdgpu_device *adev)
u8 module_index = rv770_get_memory_module_index(adev);
int ret;
- table = kzalloc(sizeof(struct atom_mc_reg_table), GFP_KERNEL);
+ table = kzalloc_obj(struct atom_mc_reg_table, GFP_KERNEL);
if (!table)
return -ENOMEM;
@@ -7341,9 +7341,8 @@ static int si_parse_power_table(struct amdgpu_device *adev)
(mode_info->atom_context->bios + data_offset +
le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
- adev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
- sizeof(struct amdgpu_ps),
- GFP_KERNEL);
+ adev->pm.dpm.ps = kzalloc_objs(struct amdgpu_ps,
+ state_array->ucNumEntries, GFP_KERNEL);
if (!adev->pm.dpm.ps)
return -ENOMEM;
power_state_offset = (u8 *)state_array->states;
@@ -7353,7 +7352,7 @@ static int si_parse_power_table(struct amdgpu_device *adev)
non_clock_array_index = power_state->v2.nonClockInfoIndex;
non_clock_info = (struct _ATOM_PPLIB_NONCLOCK_INFO *)
&non_clock_info_array->nonClockInfo[non_clock_array_index];
- ps = kzalloc(sizeof(struct si_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct si_ps, GFP_KERNEL);
if (ps == NULL)
return -ENOMEM;
adev->pm.dpm.ps[i].ps_priv = ps;
@@ -7406,7 +7405,7 @@ static int si_dpm_init(struct amdgpu_device *adev)
struct atom_clock_dividers dividers;
int ret;
- si_pi = kzalloc(sizeof(struct si_power_info), GFP_KERNEL);
+ si_pi = kzalloc_obj(struct si_power_info, GFP_KERNEL);
if (si_pi == NULL)
return -ENOMEM;
adev->pm.dpm.priv = si_pi;
@@ -7443,9 +7442,8 @@ static int si_dpm_init(struct amdgpu_device *adev)
return ret;
adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries =
- kcalloc(4,
- sizeof(struct amdgpu_clock_voltage_dependency_entry),
- GFP_KERNEL);
+ kzalloc_objs(struct amdgpu_clock_voltage_dependency_entry, 4,
+ GFP_KERNEL);
if (!adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c b/drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c
index 0bbb89788335..cd3036e33c5a 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c
@@ -41,7 +41,7 @@ static int amd_powerplay_create(struct amdgpu_device *adev)
if (adev == NULL)
return -EINVAL;
- hwmgr = kzalloc(sizeof(struct pp_hwmgr), GFP_KERNEL);
+ hwmgr = kzalloc_obj(struct pp_hwmgr, GFP_KERNEL);
if (hwmgr == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/process_pptables_v1_0.c b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/process_pptables_v1_0.c
index 6cfef1b295ab..a1292d5b0a1c 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/process_pptables_v1_0.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/process_pptables_v1_0.c
@@ -165,7 +165,7 @@ static int get_vddc_lookup_table(
PP_ASSERT_WITH_CODE((0 != vddc_lookup_pp_tables->ucNumEntries),
"Invalid CAC Leakage PowerPlay Table!", return 1);
- table = kzalloc(struct_size(table, entries, max_levels), GFP_KERNEL);
+ table = kzalloc_flex(*table, entries, max_levels, GFP_KERNEL);
if (!table)
return -ENOMEM;
@@ -200,7 +200,7 @@ static int get_platform_power_management_table(
struct pp_hwmgr *hwmgr,
ATOM_Tonga_PPM_Table *atom_ppm_table)
{
- struct phm_ppm_table *ptr = kzalloc(sizeof(*ptr), GFP_KERNEL);
+ struct phm_ppm_table *ptr = kzalloc_obj(*ptr, GFP_KERNEL);
struct phm_ppt_v1_information *pp_table_information =
(struct phm_ppt_v1_information *)(hwmgr->pptable);
@@ -321,8 +321,8 @@ static int get_valid_clk(
PP_ASSERT_WITH_CODE((0 != clk_volt_pp_table->count),
"Invalid PowerPlay Table!", return -1);
- table = kzalloc(struct_size(table, values, clk_volt_pp_table->count),
- GFP_KERNEL);
+ table = kzalloc_flex(*table, values, clk_volt_pp_table->count,
+ GFP_KERNEL);
if (!table)
return -ENOMEM;
@@ -371,8 +371,8 @@ static int get_mclk_voltage_dependency_table(
PP_ASSERT_WITH_CODE((0 != mclk_dep_table->ucNumEntries),
"Invalid PowerPlay Table!", return -1);
- mclk_table = kzalloc(struct_size(mclk_table, entries, mclk_dep_table->ucNumEntries),
- GFP_KERNEL);
+ mclk_table = kzalloc_flex(*mclk_table, entries,
+ mclk_dep_table->ucNumEntries, GFP_KERNEL);
if (!mclk_table)
return -ENOMEM;
@@ -415,8 +415,8 @@ static int get_sclk_voltage_dependency_table(
PP_ASSERT_WITH_CODE((0 != tonga_table->ucNumEntries),
"Invalid PowerPlay Table!", return -1);
- sclk_table = kzalloc(struct_size(sclk_table, entries, tonga_table->ucNumEntries),
- GFP_KERNEL);
+ sclk_table = kzalloc_flex(*sclk_table, entries,
+ tonga_table->ucNumEntries, GFP_KERNEL);
if (!sclk_table)
return -ENOMEM;
@@ -444,8 +444,9 @@ static int get_sclk_voltage_dependency_table(
PP_ASSERT_WITH_CODE((0 != polaris_table->ucNumEntries),
"Invalid PowerPlay Table!", return -1);
- sclk_table = kzalloc(struct_size(sclk_table, entries, polaris_table->ucNumEntries),
- GFP_KERNEL);
+ sclk_table = kzalloc_flex(*sclk_table, entries,
+ polaris_table->ucNumEntries,
+ GFP_KERNEL);
if (!sclk_table)
return -ENOMEM;
@@ -491,9 +492,9 @@ static int get_pcie_table(
PP_ASSERT_WITH_CODE((atom_pcie_table->ucNumEntries != 0),
"Invalid PowerPlay Table!", return -1);
- pcie_table = kzalloc(struct_size(pcie_table, entries,
- atom_pcie_table->ucNumEntries),
- GFP_KERNEL);
+ pcie_table = kzalloc_flex(*pcie_table, entries,
+ atom_pcie_table->ucNumEntries,
+ GFP_KERNEL);
if (!pcie_table)
return -ENOMEM;
@@ -528,9 +529,9 @@ static int get_pcie_table(
PP_ASSERT_WITH_CODE((atom_pcie_table->ucNumEntries != 0),
"Invalid PowerPlay Table!", return -1);
- pcie_table = kzalloc(struct_size(pcie_table, entries,
- atom_pcie_table->ucNumEntries),
- GFP_KERNEL);
+ pcie_table = kzalloc_flex(*pcie_table, entries,
+ atom_pcie_table->ucNumEntries,
+ GFP_KERNEL);
if (!pcie_table)
return -ENOMEM;
@@ -724,8 +725,8 @@ static int get_mm_clock_voltage_table(
PP_ASSERT_WITH_CODE((0 != mm_dependency_table->ucNumEntries),
"Invalid PowerPlay Table!", return -1);
- mm_table = kzalloc(struct_size(mm_table, entries, mm_dependency_table->ucNumEntries),
- GFP_KERNEL);
+ mm_table = kzalloc_flex(*mm_table, entries,
+ mm_dependency_table->ucNumEntries, GFP_KERNEL);
if (!mm_table)
return -ENOMEM;
@@ -1141,7 +1142,7 @@ static int pp_tables_v1_0_initialize(struct pp_hwmgr *hwmgr)
int result = 0;
const ATOM_Tonga_POWERPLAYTABLE *powerplay_table;
- hwmgr->pptable = kzalloc(sizeof(struct phm_ppt_v1_information), GFP_KERNEL);
+ hwmgr->pptable = kzalloc_obj(struct phm_ppt_v1_information, GFP_KERNEL);
PP_ASSERT_WITH_CODE((NULL != hwmgr->pptable),
"Failed to allocate hwmgr->pptable!", return -ENOMEM);
diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/processpptables.c b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/processpptables.c
index f06b29e33ba4..b19409890899 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/processpptables.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/processpptables.c
@@ -382,8 +382,8 @@ static int get_clock_voltage_dependency_table(struct pp_hwmgr *hwmgr,
unsigned long i;
struct phm_clock_voltage_dependency_table *dep_table;
- dep_table = kzalloc(struct_size(dep_table, entries, table->ucNumEntries),
- GFP_KERNEL);
+ dep_table = kzalloc_flex(*dep_table, entries, table->ucNumEntries,
+ GFP_KERNEL);
if (NULL == dep_table)
return -ENOMEM;
@@ -409,7 +409,8 @@ static int get_valid_clk(struct pp_hwmgr *hwmgr,
unsigned long i;
struct phm_clock_array *clock_table;
- clock_table = kzalloc(struct_size(clock_table, values, table->count), GFP_KERNEL);
+ clock_table = kzalloc_flex(*clock_table, values, table->count,
+ GFP_KERNEL);
if (!clock_table)
return -ENOMEM;
@@ -1209,8 +1210,8 @@ static int get_uvd_clock_voltage_limit_table(struct pp_hwmgr *hwmgr,
unsigned long i;
struct phm_uvd_clock_voltage_dependency_table *uvd_table;
- uvd_table = kzalloc(struct_size(uvd_table, entries, table->numEntries),
- GFP_KERNEL);
+ uvd_table = kzalloc_flex(*uvd_table, entries, table->numEntries,
+ GFP_KERNEL);
if (!uvd_table)
return -ENOMEM;
@@ -1239,8 +1240,8 @@ static int get_vce_clock_voltage_limit_table(struct pp_hwmgr *hwmgr,
unsigned long i;
struct phm_vce_clock_voltage_dependency_table *vce_table;
- vce_table = kzalloc(struct_size(vce_table, entries, table->numEntries),
- GFP_KERNEL);
+ vce_table = kzalloc_flex(*vce_table, entries, table->numEntries,
+ GFP_KERNEL);
if (!vce_table)
return -ENOMEM;
@@ -1267,8 +1268,8 @@ static int get_samu_clock_voltage_limit_table(struct pp_hwmgr *hwmgr,
unsigned long i;
struct phm_samu_clock_voltage_dependency_table *samu_table;
- samu_table = kzalloc(struct_size(samu_table, entries, table->numEntries),
- GFP_KERNEL);
+ samu_table = kzalloc_flex(*samu_table, entries, table->numEntries,
+ GFP_KERNEL);
if (!samu_table)
return -ENOMEM;
@@ -1292,8 +1293,8 @@ static int get_acp_clock_voltage_limit_table(struct pp_hwmgr *hwmgr,
unsigned long i;
struct phm_acp_clock_voltage_dependency_table *acp_table;
- acp_table = kzalloc(struct_size(acp_table, entries, table->numEntries),
- GFP_KERNEL);
+ acp_table = kzalloc_flex(*acp_table, entries, table->numEntries,
+ GFP_KERNEL);
if (!acp_table)
return -ENOMEM;
@@ -1487,8 +1488,8 @@ static int get_cac_leakage_table(struct pp_hwmgr *hwmgr,
if (!hwmgr || !table || !ptable)
return -EINVAL;
- cac_leakage_table = kzalloc(struct_size(cac_leakage_table, entries, table->ucNumEntries),
- GFP_KERNEL);
+ cac_leakage_table = kzalloc_flex(*cac_leakage_table, entries,
+ table->ucNumEntries, GFP_KERNEL);
if (!cac_leakage_table)
return -ENOMEM;
@@ -1514,7 +1515,8 @@ static int get_cac_leakage_table(struct pp_hwmgr *hwmgr,
static int get_platform_power_management_table(struct pp_hwmgr *hwmgr,
ATOM_PPLIB_PPM_Table *atom_ppm_table)
{
- struct phm_ppm_table *ptr = kzalloc(sizeof(struct phm_ppm_table), GFP_KERNEL);
+ struct phm_ppm_table *ptr = kzalloc_obj(struct phm_ppm_table,
+ GFP_KERNEL);
if (NULL == ptr)
return -ENOMEM;
@@ -1625,8 +1627,8 @@ static int init_phase_shedding_table(struct pp_hwmgr *hwmgr,
unsigned long i;
- table = kzalloc(struct_size(table, entries, ptable->ucNumEntries),
- GFP_KERNEL);
+ table = kzalloc_flex(*table, entries,
+ ptable->ucNumEntries, GFP_KERNEL);
if (!table)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu10_hwmgr.c b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu10_hwmgr.c
index 8de8d66df95f..49dc20b790ad 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu10_hwmgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu10_hwmgr.c
@@ -133,8 +133,7 @@ static int smu10_init_dynamic_state_adjustment_rule_settings(
int count = 8;
struct phm_clock_voltage_dependency_table *table_clk_vlt;
- table_clk_vlt = kzalloc(struct_size(table_clk_vlt, entries, count),
- GFP_KERNEL);
+ table_clk_vlt = kzalloc_flex(*table_clk_vlt, entries, count, GFP_KERNEL);
if (NULL == table_clk_vlt) {
pr_err("Can not allocate memory!\n");
@@ -473,7 +472,7 @@ static int smu10_get_clock_voltage_dependency_table(struct pp_hwmgr *hwmgr,
uint32_t i;
struct smu10_voltage_dependency_table *ptable;
- ptable = kzalloc(struct_size(ptable, entries, num_entry), GFP_KERNEL);
+ ptable = kzalloc_flex(*ptable, entries, num_entry, GFP_KERNEL);
if (NULL == ptable)
return -ENOMEM;
@@ -551,7 +550,7 @@ static int smu10_hwmgr_backend_init(struct pp_hwmgr *hwmgr)
int result = 0;
struct smu10_hwmgr *data;
- data = kzalloc(sizeof(struct smu10_hwmgr), GFP_KERNEL);
+ data = kzalloc_obj(struct smu10_hwmgr, GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c
index 2be584aefd0a..a97136743723 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c
@@ -2961,7 +2961,7 @@ static int smu7_hwmgr_backend_init(struct pp_hwmgr *hwmgr)
struct smu7_hwmgr *data;
int result = 0;
- data = kzalloc(sizeof(struct smu7_hwmgr), GFP_KERNEL);
+ data = kzalloc_obj(struct smu7_hwmgr, GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
@@ -4652,7 +4652,7 @@ static const struct amdgpu_irq_src_funcs smu7_irq_funcs = {
static int smu7_register_irq_handlers(struct pp_hwmgr *hwmgr)
{
struct amdgpu_irq_src *source =
- kzalloc(sizeof(struct amdgpu_irq_src), GFP_KERNEL);
+ kzalloc_obj(struct amdgpu_irq_src, GFP_KERNEL);
if (!source)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu8_hwmgr.c b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu8_hwmgr.c
index 736e5a8af477..5d20c41b3803 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu8_hwmgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu8_hwmgr.c
@@ -276,8 +276,7 @@ static int smu8_init_dynamic_state_adjustment_rule_settings(
{
struct phm_clock_voltage_dependency_table *table_clk_vlt;
- table_clk_vlt = kzalloc(struct_size(table_clk_vlt, entries, 8),
- GFP_KERNEL);
+ table_clk_vlt = kzalloc_flex(*table_clk_vlt, entries, 8, GFP_KERNEL);
if (NULL == table_clk_vlt) {
pr_err("Can not allocate memory!\n");
@@ -1122,7 +1121,7 @@ static int smu8_hwmgr_backend_init(struct pp_hwmgr *hwmgr)
int result = 0;
struct smu8_hwmgr *data;
- data = kzalloc(sizeof(struct smu8_hwmgr), GFP_KERNEL);
+ data = kzalloc_obj(struct smu8_hwmgr, GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu_helper.c b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu_helper.c
index c305ea4ec17d..68ae1bc36a7f 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu_helper.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu_helper.c
@@ -211,8 +211,7 @@ int phm_trim_voltage_table(struct pp_atomctrl_voltage_table *vol_table)
PP_ASSERT_WITH_CODE((NULL != vol_table),
"Voltage Table empty.", return -EINVAL);
- table = kzalloc(sizeof(struct pp_atomctrl_voltage_table),
- GFP_KERNEL);
+ table = kzalloc_obj(struct pp_atomctrl_voltage_table, GFP_KERNEL);
if (NULL == table)
return -EINVAL;
@@ -496,8 +495,7 @@ int phm_initializa_dynamic_state_adjustment_rule_settings(struct pp_hwmgr *hwmgr
struct phm_ppt_v1_information *pptable_info = (struct phm_ppt_v1_information *)(hwmgr->pptable);
/* initialize vddc_dep_on_dal_pwrl table */
- table_clk_vlt = kzalloc(struct_size(table_clk_vlt, entries, 4),
- GFP_KERNEL);
+ table_clk_vlt = kzalloc_flex(*table_clk_vlt, entries, 4, GFP_KERNEL);
if (NULL == table_clk_vlt) {
pr_err("Can not allocate space for vddc_dep_on_dal_pwrl! \n");
@@ -646,7 +644,7 @@ static const struct amdgpu_irq_src_funcs smu9_irq_funcs = {
int smu9_register_irq_handlers(struct pp_hwmgr *hwmgr)
{
struct amdgpu_irq_src *source =
- kzalloc(sizeof(struct amdgpu_irq_src), GFP_KERNEL);
+ kzalloc_obj(struct amdgpu_irq_src, GFP_KERNEL);
if (!source)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c
index 1b8a57d98759..255fa6c96120 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c
@@ -831,7 +831,7 @@ static int vega10_hwmgr_backend_init(struct pp_hwmgr *hwmgr)
struct pp_atomfwctrl_voltage_table vol_table;
struct amdgpu_device *adev = hwmgr->adev;
- data = kzalloc(sizeof(struct vega10_hwmgr), GFP_KERNEL);
+ data = kzalloc_obj(struct vega10_hwmgr, GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
@@ -1029,8 +1029,7 @@ static int vega10_trim_voltage_table(struct pp_hwmgr *hwmgr,
PP_ASSERT_WITH_CODE(vol_table,
"Voltage Table empty.", return -EINVAL);
- table = kzalloc(sizeof(struct pp_atomfwctrl_voltage_table),
- GFP_KERNEL);
+ table = kzalloc_obj(struct pp_atomfwctrl_voltage_table, GFP_KERNEL);
if (!table)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_processpptables.c b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_processpptables.c
index 3be616af327e..2b9a1840a35a 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_processpptables.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_processpptables.c
@@ -350,8 +350,8 @@ static int get_mm_clock_voltage_table(
PP_ASSERT_WITH_CODE((mm_dependency_table->ucNumEntries != 0),
"Invalid PowerPlay Table!", return -1);
- mm_table = kzalloc(struct_size(mm_table, entries, mm_dependency_table->ucNumEntries),
- GFP_KERNEL);
+ mm_table = kzalloc_flex(*mm_table, entries,
+ mm_dependency_table->ucNumEntries, GFP_KERNEL);
if (!mm_table)
return -ENOMEM;
@@ -573,8 +573,8 @@ static int get_socclk_voltage_dependency_table(
PP_ASSERT_WITH_CODE(clk_dep_table->ucNumEntries,
"Invalid PowerPlay Table!", return -1);
- clk_table = kzalloc(struct_size(clk_table, entries, clk_dep_table->ucNumEntries),
- GFP_KERNEL);
+ clk_table = kzalloc_flex(*clk_table, entries,
+ clk_dep_table->ucNumEntries, GFP_KERNEL);
if (!clk_table)
return -ENOMEM;
@@ -603,8 +603,8 @@ static int get_mclk_voltage_dependency_table(
PP_ASSERT_WITH_CODE(mclk_dep_table->ucNumEntries,
"Invalid PowerPlay Table!", return -1);
- mclk_table = kzalloc(struct_size(mclk_table, entries, mclk_dep_table->ucNumEntries),
- GFP_KERNEL);
+ mclk_table = kzalloc_flex(*mclk_table, entries,
+ mclk_dep_table->ucNumEntries, GFP_KERNEL);
if (!mclk_table)
return -ENOMEM;
@@ -640,8 +640,8 @@ static int get_gfxclk_voltage_dependency_table(
PP_ASSERT_WITH_CODE((clk_dep_table->ucNumEntries != 0),
"Invalid PowerPlay Table!", return -1);
- clk_table = kzalloc(struct_size(clk_table, entries, clk_dep_table->ucNumEntries),
- GFP_KERNEL);
+ clk_table = kzalloc_flex(*clk_table, entries,
+ clk_dep_table->ucNumEntries, GFP_KERNEL);
if (!clk_table)
return -ENOMEM;
@@ -702,8 +702,8 @@ static int get_pix_clk_voltage_dependency_table(
PP_ASSERT_WITH_CODE((clk_dep_table->ucNumEntries != 0),
"Invalid PowerPlay Table!", return -1);
- clk_table = kzalloc(struct_size(clk_table, entries, clk_dep_table->ucNumEntries),
- GFP_KERNEL);
+ clk_table = kzalloc_flex(*clk_table, entries,
+ clk_dep_table->ucNumEntries, GFP_KERNEL);
if (!clk_table)
return -ENOMEM;
@@ -755,8 +755,7 @@ static int get_dcefclk_voltage_dependency_table(
num_entries = clk_dep_table->ucNumEntries;
- clk_table = kzalloc(struct_size(clk_table, entries, num_entries),
- GFP_KERNEL);
+ clk_table = kzalloc_flex(*clk_table, entries, num_entries, GFP_KERNEL);
if (!clk_table)
return -ENOMEM;
@@ -794,8 +793,8 @@ static int get_pcie_table(struct pp_hwmgr *hwmgr,
"Invalid PowerPlay Table!",
return 0);
- pcie_table = kzalloc(struct_size(pcie_table, entries, atom_pcie_table->ucNumEntries),
- GFP_KERNEL);
+ pcie_table = kzalloc_flex(*pcie_table, entries,
+ atom_pcie_table->ucNumEntries, GFP_KERNEL);
if (!pcie_table)
return -ENOMEM;
@@ -853,8 +852,8 @@ static int get_valid_clk(
PP_ASSERT_WITH_CODE(clk_volt_pp_table->count,
"Invalid PowerPlay Table!", return -1);
- table = kzalloc(struct_size(table, values, clk_volt_pp_table->count),
- GFP_KERNEL);
+ table = kzalloc_flex(*table, values, clk_volt_pp_table->count,
+ GFP_KERNEL);
if (!table)
return -ENOMEM;
@@ -1041,7 +1040,7 @@ static int get_vddc_lookup_table(
PP_ASSERT_WITH_CODE((vddc_lookup_pp_tables->ucNumEntries != 0),
"Invalid SOC_VDDD Lookup Table!", return 1);
- table = kzalloc(struct_size(table, entries, max_levels), GFP_KERNEL);
+ table = kzalloc_flex(*table, entries, max_levels, GFP_KERNEL);
if (!table)
return -ENOMEM;
@@ -1149,7 +1148,7 @@ static int vega10_pp_tables_initialize(struct pp_hwmgr *hwmgr)
int result = 0;
const ATOM_Vega10_POWERPLAYTABLE *powerplay_table;
- hwmgr->pptable = kzalloc(sizeof(struct phm_ppt_v2_information), GFP_KERNEL);
+ hwmgr->pptable = kzalloc_obj(struct phm_ppt_v2_information, GFP_KERNEL);
PP_ASSERT_WITH_CODE((hwmgr->pptable != NULL),
"Failed to allocate hwmgr->pptable!", return -ENOMEM);
diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega12_hwmgr.c b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega12_hwmgr.c
index 5a987a535e73..eca05a6c868f 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega12_hwmgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega12_hwmgr.c
@@ -395,7 +395,7 @@ static int vega12_hwmgr_backend_init(struct pp_hwmgr *hwmgr)
struct vega12_hwmgr *data;
struct amdgpu_device *adev = hwmgr->adev;
- data = kzalloc(sizeof(struct vega12_hwmgr), GFP_KERNEL);
+ data = kzalloc_obj(struct vega12_hwmgr, GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega12_processpptables.c b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega12_processpptables.c
index 89148f73b514..b8fad7417190 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega12_processpptables.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega12_processpptables.c
@@ -263,7 +263,7 @@ static int vega12_pp_tables_initialize(struct pp_hwmgr *hwmgr)
int result = 0;
const ATOM_Vega12_POWERPLAYTABLE *powerplay_table;
- hwmgr->pptable = kzalloc(sizeof(struct phm_ppt_v3_information), GFP_KERNEL);
+ hwmgr->pptable = kzalloc_obj(struct phm_ppt_v3_information, GFP_KERNEL);
PP_ASSERT_WITH_CODE((hwmgr->pptable != NULL),
"Failed to allocate hwmgr->pptable!", return -ENOMEM);
diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_hwmgr.c b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_hwmgr.c
index 5193b7d0e11b..1dc84beaf440 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_hwmgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_hwmgr.c
@@ -436,7 +436,7 @@ static int vega20_hwmgr_backend_init(struct pp_hwmgr *hwmgr)
struct amdgpu_device *adev = hwmgr->adev;
int result;
- data = kzalloc(sizeof(struct vega20_hwmgr), GFP_KERNEL);
+ data = kzalloc_obj(struct vega20_hwmgr, GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_processpptables.c b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_processpptables.c
index 2b446f8866ba..4316b5e4b848 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_processpptables.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_processpptables.c
@@ -336,7 +336,7 @@ static int vega20_pp_tables_initialize(struct pp_hwmgr *hwmgr)
int result = 0;
const ATOM_Vega20_POWERPLAYTABLE *powerplay_table;
- hwmgr->pptable = kzalloc(sizeof(struct phm_ppt_v3_information), GFP_KERNEL);
+ hwmgr->pptable = kzalloc_obj(struct phm_ppt_v3_information, GFP_KERNEL);
PP_ASSERT_WITH_CODE((hwmgr->pptable != NULL),
"Failed to allocate hwmgr->pptable!", return -ENOMEM);
diff --git a/drivers/gpu/drm/amd/pm/powerplay/smumgr/ci_smumgr.c b/drivers/gpu/drm/amd/pm/powerplay/smumgr/ci_smumgr.c
index ad1fd3150d03..12a699a8c954 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/smumgr/ci_smumgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/smumgr/ci_smumgr.c
@@ -2681,7 +2681,7 @@ static int ci_initialize_mc_reg_table(struct pp_hwmgr *hwmgr)
struct ci_mc_reg_table *ni_table = &smu_data->mc_reg_table;
uint8_t module_index = ci_get_memory_modile_index(hwmgr);
- table = kzalloc(sizeof(pp_atomctrl_mc_reg_table), GFP_KERNEL);
+ table = kzalloc_obj(pp_atomctrl_mc_reg_table, GFP_KERNEL);
if (NULL == table)
return -ENOMEM;
@@ -2735,7 +2735,7 @@ static int ci_smu_init(struct pp_hwmgr *hwmgr)
{
struct ci_smumgr *ci_priv;
- ci_priv = kzalloc(sizeof(struct ci_smumgr), GFP_KERNEL);
+ ci_priv = kzalloc_obj(struct ci_smumgr, GFP_KERNEL);
if (ci_priv == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/smumgr/fiji_smumgr.c b/drivers/gpu/drm/amd/pm/powerplay/smumgr/fiji_smumgr.c
index 0a876c840c79..d7fd3a36ac95 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/smumgr/fiji_smumgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/smumgr/fiji_smumgr.c
@@ -334,7 +334,7 @@ static int fiji_smu_init(struct pp_hwmgr *hwmgr)
{
struct fiji_smumgr *fiji_priv;
- fiji_priv = kzalloc(sizeof(struct fiji_smumgr), GFP_KERNEL);
+ fiji_priv = kzalloc_obj(struct fiji_smumgr, GFP_KERNEL);
if (fiji_priv == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/smumgr/iceland_smumgr.c b/drivers/gpu/drm/amd/pm/powerplay/smumgr/iceland_smumgr.c
index aa3ae9b115c4..b990def7d1aa 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/smumgr/iceland_smumgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/smumgr/iceland_smumgr.c
@@ -261,7 +261,7 @@ static int iceland_smu_init(struct pp_hwmgr *hwmgr)
{
struct iceland_smumgr *iceland_priv;
- iceland_priv = kzalloc(sizeof(struct iceland_smumgr), GFP_KERNEL);
+ iceland_priv = kzalloc_obj(struct iceland_smumgr, GFP_KERNEL);
if (iceland_priv == NULL)
return -ENOMEM;
@@ -2608,7 +2608,7 @@ static int iceland_initialize_mc_reg_table(struct pp_hwmgr *hwmgr)
struct iceland_mc_reg_table *ni_table = &smu_data->mc_reg_table;
uint8_t module_index = iceland_get_memory_modile_index(hwmgr);
- table = kzalloc(sizeof(pp_atomctrl_mc_reg_table), GFP_KERNEL);
+ table = kzalloc_obj(pp_atomctrl_mc_reg_table, GFP_KERNEL);
if (NULL == table)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/smumgr/polaris10_smumgr.c b/drivers/gpu/drm/amd/pm/powerplay/smumgr/polaris10_smumgr.c
index bf6d09572cfc..497a70988960 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/smumgr/polaris10_smumgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/smumgr/polaris10_smumgr.c
@@ -336,7 +336,7 @@ static int polaris10_smu_init(struct pp_hwmgr *hwmgr)
{
struct polaris10_smumgr *smu_data;
- smu_data = kzalloc(sizeof(struct polaris10_smumgr), GFP_KERNEL);
+ smu_data = kzalloc_obj(struct polaris10_smumgr, GFP_KERNEL);
if (smu_data == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu10_smumgr.c b/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu10_smumgr.c
index 38e19e5cad4d..22e0db4e097f 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu10_smumgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu10_smumgr.c
@@ -244,7 +244,7 @@ static int smu10_smu_init(struct pp_hwmgr *hwmgr)
struct smu10_smumgr *priv;
int r;
- priv = kzalloc(sizeof(struct smu10_smumgr), GFP_KERNEL);
+ priv = kzalloc_obj(struct smu10_smumgr, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu7_smumgr.c b/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu7_smumgr.c
index 0d4cbe4113a0..9d6203998b5c 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu7_smumgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu7_smumgr.c
@@ -333,7 +333,7 @@ int smu7_request_smu_load_fw(struct pp_hwmgr *hwmgr)
if (!smu_data->toc) {
struct SMU_DRAMData_TOC *toc;
- smu_data->toc = kzalloc(sizeof(struct SMU_DRAMData_TOC), GFP_KERNEL);
+ smu_data->toc = kzalloc_obj(struct SMU_DRAMData_TOC, GFP_KERNEL);
if (!smu_data->toc)
return -ENOMEM;
toc = smu_data->toc;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu8_smumgr.c b/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu8_smumgr.c
index 76d4f12ceedf..82f4f466db8a 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu8_smumgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/smumgr/smu8_smumgr.c
@@ -758,7 +758,7 @@ static int smu8_smu_init(struct pp_hwmgr *hwmgr)
int ret = 0;
struct smu8_smumgr *smu8_smu;
- smu8_smu = kzalloc(sizeof(struct smu8_smumgr), GFP_KERNEL);
+ smu8_smu = kzalloc_obj(struct smu8_smumgr, GFP_KERNEL);
if (smu8_smu == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/smumgr/tonga_smumgr.c b/drivers/gpu/drm/amd/pm/powerplay/smumgr/tonga_smumgr.c
index 2e21f9d066cb..95d87b12df04 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/smumgr/tonga_smumgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/smumgr/tonga_smumgr.c
@@ -228,7 +228,7 @@ static int tonga_smu_init(struct pp_hwmgr *hwmgr)
{
struct tonga_smumgr *tonga_priv;
- tonga_priv = kzalloc(sizeof(struct tonga_smumgr), GFP_KERNEL);
+ tonga_priv = kzalloc_obj(struct tonga_smumgr, GFP_KERNEL);
if (tonga_priv == NULL)
return -ENOMEM;
@@ -3072,7 +3072,7 @@ static int tonga_initialize_mc_reg_table(struct pp_hwmgr *hwmgr)
struct tonga_mc_reg_table *ni_table = &smu_data->mc_reg_table;
uint8_t module_index = tonga_get_memory_modile_index(hwmgr);
- table = kzalloc(sizeof(pp_atomctrl_mc_reg_table), GFP_KERNEL);
+ table = kzalloc_obj(pp_atomctrl_mc_reg_table, GFP_KERNEL);
if (table == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/smumgr/vega10_smumgr.c b/drivers/gpu/drm/amd/pm/powerplay/smumgr/vega10_smumgr.c
index 0bf1bf5528c2..fe960e3c1010 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/smumgr/vega10_smumgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/smumgr/vega10_smumgr.c
@@ -218,7 +218,7 @@ static int vega10_smu_init(struct pp_hwmgr *hwmgr)
if (ret || !info.kptr)
return -EINVAL;
- priv = kzalloc(sizeof(struct vega10_smumgr), GFP_KERNEL);
+ priv = kzalloc_obj(struct vega10_smumgr, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/smumgr/vega12_smumgr.c b/drivers/gpu/drm/amd/pm/powerplay/smumgr/vega12_smumgr.c
index e2ba593faa5d..bd846c4f09a1 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/smumgr/vega12_smumgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/smumgr/vega12_smumgr.c
@@ -221,7 +221,7 @@ static int vega12_smu_init(struct pp_hwmgr *hwmgr)
if (ret || !info.kptr)
return -EINVAL;
- priv = kzalloc(sizeof(struct vega12_smumgr), GFP_KERNEL);
+ priv = kzalloc_obj(struct vega12_smumgr, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/smumgr/vega20_smumgr.c b/drivers/gpu/drm/amd/pm/powerplay/smumgr/vega20_smumgr.c
index e3515156d26f..7dda3ad13861 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/smumgr/vega20_smumgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/smumgr/vega20_smumgr.c
@@ -430,7 +430,7 @@ static int vega20_smu_init(struct pp_hwmgr *hwmgr)
if (ret || !info.kptr)
return -EINVAL;
- priv = kzalloc(sizeof(struct vega20_smumgr), GFP_KERNEL);
+ priv = kzalloc_obj(struct vega20_smumgr, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/powerplay/smumgr/vegam_smumgr.c b/drivers/gpu/drm/amd/pm/powerplay/smumgr/vegam_smumgr.c
index 34c9f59b889a..57eed236baa4 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/smumgr/vegam_smumgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/smumgr/vegam_smumgr.c
@@ -83,7 +83,7 @@ static int vegam_smu_init(struct pp_hwmgr *hwmgr)
{
struct vegam_smumgr *smu_data;
- smu_data = kzalloc(sizeof(struct vegam_smumgr), GFP_KERNEL);
+ smu_data = kzalloc_obj(struct vegam_smumgr, GFP_KERNEL);
if (smu_data == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
index 18ece5c714c5..2f02410376b9 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
@@ -803,7 +803,7 @@ static int smu_early_init(struct amdgpu_ip_block *ip_block)
struct smu_context *smu;
int r;
- smu = kzalloc(sizeof(struct smu_context), GFP_KERNEL);
+ smu = kzalloc_obj(struct smu_context, GFP_KERNEL);
if (!smu)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c
index 0c4afd1e1aab..747879cbb4e6 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c
@@ -267,7 +267,7 @@ static int arcturus_tables_init(struct smu_context *smu)
sizeof(DpmActivityMonitorCoeffInt_t), PAGE_SIZE,
AMDGPU_GEM_DOMAIN_VRAM);
- smu_table->metrics_table = kzalloc(sizeof(SmuMetrics_t), GFP_KERNEL);
+ smu_table->metrics_table = kzalloc_obj(SmuMetrics_t, GFP_KERNEL);
if (!smu_table->metrics_table)
return -ENOMEM;
smu_table->metrics_time = 0;
@@ -307,14 +307,14 @@ static int arcturus_allocate_dpm_context(struct smu_context *smu)
struct smu_dpm_context *smu_dpm = &smu->smu_dpm;
struct smu_dpm_policy *policy;
- smu_dpm->dpm_context = kzalloc(sizeof(struct smu_11_0_dpm_context),
- GFP_KERNEL);
+ smu_dpm->dpm_context = kzalloc_obj(struct smu_11_0_dpm_context,
+ GFP_KERNEL);
if (!smu_dpm->dpm_context)
return -ENOMEM;
smu_dpm->dpm_context_size = sizeof(struct smu_11_0_dpm_context);
smu_dpm->dpm_policies =
- kzalloc(sizeof(struct smu_dpm_policy_ctxt), GFP_KERNEL);
+ kzalloc_obj(struct smu_dpm_policy_ctxt, GFP_KERNEL);
if (!smu_dpm->dpm_policies)
return -ENOMEM;
@@ -1579,7 +1579,7 @@ static int arcturus_i2c_xfer(struct i2c_adapter *i2c_adap,
if (!adev->pm.dpm_enabled)
return -EBUSY;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/cyan_skillfish_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/cyan_skillfish_ppt.c
index 87953a4d0a43..97a785182e58 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/cyan_skillfish_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/cyan_skillfish_ppt.c
@@ -97,7 +97,7 @@ static int cyan_skillfish_tables_init(struct smu_context *smu)
PAGE_SIZE,
AMDGPU_GEM_DOMAIN_VRAM);
- smu_table->metrics_table = kzalloc(sizeof(SmuMetrics_t), GFP_KERNEL);
+ smu_table->metrics_table = kzalloc_obj(SmuMetrics_t, GFP_KERNEL);
if (!smu_table->metrics_table)
goto err0_out;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
index 737bfdfb814c..48c75e293541 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
@@ -516,8 +516,7 @@ static int navi10_tables_init(struct smu_context *smu)
dummy_read_1_table->align = PAGE_SIZE;
dummy_read_1_table->domain = AMDGPU_GEM_DOMAIN_VRAM;
- smu_table->metrics_table = kzalloc(sizeof(SmuMetrics_NV1X_t),
- GFP_KERNEL);
+ smu_table->metrics_table = kzalloc_obj(SmuMetrics_NV1X_t, GFP_KERNEL);
if (!smu_table->metrics_table)
goto err0_out;
smu_table->metrics_time = 0;
@@ -528,7 +527,7 @@ static int navi10_tables_init(struct smu_context *smu)
if (ret)
goto err1_out;
- smu_table->watermarks_table = kzalloc(sizeof(Watermarks_t), GFP_KERNEL);
+ smu_table->watermarks_table = kzalloc_obj(Watermarks_t, GFP_KERNEL);
if (!smu_table->watermarks_table)
goto err2_out;
@@ -935,8 +934,8 @@ static int navi10_allocate_dpm_context(struct smu_context *smu)
{
struct smu_dpm_context *smu_dpm = &smu->smu_dpm;
- smu_dpm->dpm_context = kzalloc(sizeof(struct smu_11_0_dpm_context),
- GFP_KERNEL);
+ smu_dpm->dpm_context = kzalloc_obj(struct smu_11_0_dpm_context,
+ GFP_KERNEL);
if (!smu_dpm->dpm_context)
return -ENOMEM;
@@ -2794,7 +2793,7 @@ static int navi10_i2c_xfer(struct i2c_adapter *i2c_adap,
if (!adev->pm.dpm_enabled)
return -EBUSY;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
index 6268bc5ed3e6..2c6378c51333 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
@@ -555,7 +555,7 @@ static int sienna_cichlid_tables_init(struct smu_context *smu)
SMU_TABLE_INIT(tables, SMU_TABLE_DRIVER_SMU_CONFIG, sizeof(DriverSmuConfigExternal_t),
PAGE_SIZE, AMDGPU_GEM_DOMAIN_VRAM);
- smu_table->metrics_table = kzalloc(sizeof(SmuMetricsExternal_t), GFP_KERNEL);
+ smu_table->metrics_table = kzalloc_obj(SmuMetricsExternal_t, GFP_KERNEL);
if (!smu_table->metrics_table)
goto err0_out;
smu_table->metrics_time = 0;
@@ -566,7 +566,7 @@ static int sienna_cichlid_tables_init(struct smu_context *smu)
if (ret)
goto err1_out;
- smu_table->watermarks_table = kzalloc(sizeof(Watermarks_t), GFP_KERNEL);
+ smu_table->watermarks_table = kzalloc_obj(Watermarks_t, GFP_KERNEL);
if (!smu_table->watermarks_table)
goto err2_out;
@@ -921,8 +921,8 @@ static int sienna_cichlid_allocate_dpm_context(struct smu_context *smu)
{
struct smu_dpm_context *smu_dpm = &smu->smu_dpm;
- smu_dpm->dpm_context = kzalloc(sizeof(struct smu_11_0_dpm_context),
- GFP_KERNEL);
+ smu_dpm->dpm_context = kzalloc_obj(struct smu_11_0_dpm_context,
+ GFP_KERNEL);
if (!smu_dpm->dpm_context)
return -ENOMEM;
@@ -2507,7 +2507,7 @@ static int sienna_cichlid_i2c_xfer(struct i2c_adapter *i2c_adap,
if (!adev->pm.dpm_enabled)
return -EBUSY;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
index 56efcfa327df..87502f9b5ca4 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
@@ -378,7 +378,7 @@ int smu_v11_0_init_smc_tables(struct smu_context *smu)
}
smu_table->max_sustainable_clocks =
- kzalloc(sizeof(struct smu_11_0_max_sustainable_clocks), GFP_KERNEL);
+ kzalloc_obj(struct smu_11_0_max_sustainable_clocks, GFP_KERNEL);
if (!smu_table->max_sustainable_clocks) {
ret = -ENOMEM;
goto err1_out;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
index 08179840697e..86d8e5df1eb1 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c
@@ -253,11 +253,11 @@ static int vangogh_tables_init(struct smu_context *smu)
if (ret)
goto err1_out;
- smu_table->watermarks_table = kzalloc(sizeof(Watermarks_t), GFP_KERNEL);
+ smu_table->watermarks_table = kzalloc_obj(Watermarks_t, GFP_KERNEL);
if (!smu_table->watermarks_table)
goto err2_out;
- smu_table->clocks_table = kzalloc(sizeof(DpmClocks_t), GFP_KERNEL);
+ smu_table->clocks_table = kzalloc_obj(DpmClocks_t, GFP_KERNEL);
if (!smu_table->clocks_table)
goto err3_out;
@@ -433,8 +433,8 @@ static int vangogh_allocate_dpm_context(struct smu_context *smu)
{
struct smu_dpm_context *smu_dpm = &smu->smu_dpm;
- smu_dpm->dpm_context = kzalloc(sizeof(struct smu_11_0_dpm_context),
- GFP_KERNEL);
+ smu_dpm->dpm_context = kzalloc_obj(struct smu_11_0_dpm_context,
+ GFP_KERNEL);
if (!smu_dpm->dpm_context)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c
index 31e21ff8859a..f4951630375b 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c
@@ -157,16 +157,16 @@ static int renoir_init_smc_tables(struct smu_context *smu)
SMU_TABLE_INIT(tables, SMU_TABLE_SMU_METRICS, sizeof(SmuMetrics_t),
PAGE_SIZE, AMDGPU_GEM_DOMAIN_VRAM);
- smu_table->clocks_table = kzalloc(sizeof(DpmClocks_t), GFP_KERNEL);
+ smu_table->clocks_table = kzalloc_obj(DpmClocks_t, GFP_KERNEL);
if (!smu_table->clocks_table)
goto err0_out;
- smu_table->metrics_table = kzalloc(sizeof(SmuMetrics_t), GFP_KERNEL);
+ smu_table->metrics_table = kzalloc_obj(SmuMetrics_t, GFP_KERNEL);
if (!smu_table->metrics_table)
goto err1_out;
smu_table->metrics_time = 0;
- smu_table->watermarks_table = kzalloc(sizeof(Watermarks_t), GFP_KERNEL);
+ smu_table->watermarks_table = kzalloc_obj(Watermarks_t, GFP_KERNEL);
if (!smu_table->watermarks_table)
goto err2_out;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c
index ad23682217ee..618d0098208d 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c
@@ -245,7 +245,7 @@ static int aldebaran_tables_init(struct smu_context *smu)
SMU_TABLE_INIT(tables, SMU_TABLE_ECCINFO, sizeof(EccInfoTable_t),
PAGE_SIZE, AMDGPU_GEM_DOMAIN_VRAM);
- smu_table->metrics_table = kzalloc(sizeof(SmuMetrics_t), GFP_KERNEL);
+ smu_table->metrics_table = kzalloc_obj(SmuMetrics_t, GFP_KERNEL);
if (!smu_table->metrics_table)
return -ENOMEM;
smu_table->metrics_time = 0;
@@ -294,14 +294,14 @@ static int aldebaran_allocate_dpm_context(struct smu_context *smu)
struct smu_dpm_context *smu_dpm = &smu->smu_dpm;
struct smu_dpm_policy *policy;
- smu_dpm->dpm_context = kzalloc(sizeof(struct smu_13_0_dpm_context),
- GFP_KERNEL);
+ smu_dpm->dpm_context = kzalloc_obj(struct smu_13_0_dpm_context,
+ GFP_KERNEL);
if (!smu_dpm->dpm_context)
return -ENOMEM;
smu_dpm->dpm_context_size = sizeof(struct smu_13_0_dpm_context);
smu_dpm->dpm_policies =
- kzalloc(sizeof(struct smu_dpm_policy_ctxt), GFP_KERNEL);
+ kzalloc_obj(struct smu_dpm_policy_ctxt, GFP_KERNEL);
if (!smu_dpm->dpm_policies)
return -ENOMEM;
@@ -1422,7 +1422,7 @@ static int aldebaran_i2c_xfer(struct i2c_adapter *i2c_adap,
if (!adev->pm.dpm_enabled)
return -EBUSY;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c
index 63a65ea802fd..531fb265c948 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c
@@ -449,7 +449,7 @@ int smu_v13_0_init_smc_tables(struct smu_context *smu)
}
smu_table->max_sustainable_clocks =
- kzalloc(sizeof(struct smu_13_0_max_sustainable_clocks), GFP_KERNEL);
+ kzalloc_obj(struct smu_13_0_max_sustainable_clocks, GFP_KERNEL);
if (!smu_table->max_sustainable_clocks) {
ret = -ENOMEM;
goto err1_out;
@@ -553,8 +553,8 @@ int smu_v13_0_init_power(struct smu_context *smu)
if (smu_power->power_context || smu_power->power_context_size != 0)
return -EINVAL;
- smu_power->power_context = kzalloc(sizeof(struct smu_13_0_power_context),
- GFP_KERNEL);
+ smu_power->power_context = kzalloc_obj(struct smu_13_0_power_context,
+ GFP_KERNEL);
if (!smu_power->power_context)
return -ENOMEM;
smu_power->power_context_size = sizeof(struct smu_13_0_power_context);
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
index 468d51f5f918..013942fac955 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
@@ -495,7 +495,7 @@ static int smu_v13_0_0_tables_init(struct smu_context *smu)
sizeof(WifiBandEntryTable_t), PAGE_SIZE,
AMDGPU_GEM_DOMAIN_VRAM);
- smu_table->metrics_table = kzalloc(sizeof(SmuMetricsExternal_t), GFP_KERNEL);
+ smu_table->metrics_table = kzalloc_obj(SmuMetricsExternal_t, GFP_KERNEL);
if (!smu_table->metrics_table)
goto err0_out;
smu_table->metrics_time = 0;
@@ -506,7 +506,7 @@ static int smu_v13_0_0_tables_init(struct smu_context *smu)
if (ret)
goto err1_out;
- smu_table->watermarks_table = kzalloc(sizeof(Watermarks_t), GFP_KERNEL);
+ smu_table->watermarks_table = kzalloc_obj(Watermarks_t, GFP_KERNEL);
if (!smu_table->watermarks_table)
goto err2_out;
@@ -530,8 +530,8 @@ static int smu_v13_0_0_allocate_dpm_context(struct smu_context *smu)
{
struct smu_dpm_context *smu_dpm = &smu->smu_dpm;
- smu_dpm->dpm_context = kzalloc(sizeof(struct smu_13_0_dpm_context),
- GFP_KERNEL);
+ smu_dpm->dpm_context = kzalloc_obj(struct smu_13_0_dpm_context,
+ GFP_KERNEL);
if (!smu_dpm->dpm_context)
return -ENOMEM;
@@ -2638,7 +2638,7 @@ static int smu_v13_0_0_i2c_xfer(struct i2c_adapter *i2c_adap,
if (!adev->pm.dpm_enabled)
return -EBUSY;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c
index f2a6ecb64c03..5ada870f8b65 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c
@@ -223,7 +223,7 @@ static int smu_v13_0_12_fru_get_product_info(struct smu_context *smu,
struct amdgpu_device *adev = smu->adev;
if (!adev->fru_info) {
- adev->fru_info = kzalloc(sizeof(*adev->fru_info), GFP_KERNEL);
+ adev->fru_info = kzalloc_obj(*adev->fru_info, GFP_KERNEL);
if (!adev->fru_info)
return -ENOMEM;
}
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c
index 75b90ac0c29c..9e8b330f34dc 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c
@@ -161,16 +161,16 @@ static int smu_v13_0_4_init_smc_tables(struct smu_context *smu)
SMU_TABLE_INIT(tables, SMU_TABLE_SMU_METRICS, sizeof(SmuMetrics_t),
PAGE_SIZE, AMDGPU_GEM_DOMAIN_VRAM);
- smu_table->clocks_table = kzalloc(sizeof(DpmClocks_t), GFP_KERNEL);
+ smu_table->clocks_table = kzalloc_obj(DpmClocks_t, GFP_KERNEL);
if (!smu_table->clocks_table)
goto err0_out;
- smu_table->metrics_table = kzalloc(sizeof(SmuMetrics_t), GFP_KERNEL);
+ smu_table->metrics_table = kzalloc_obj(SmuMetrics_t, GFP_KERNEL);
if (!smu_table->metrics_table)
goto err1_out;
smu_table->metrics_time = 0;
- smu_table->watermarks_table = kzalloc(sizeof(Watermarks_t), GFP_KERNEL);
+ smu_table->watermarks_table = kzalloc_obj(Watermarks_t, GFP_KERNEL);
if (!smu_table->watermarks_table)
goto err2_out;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_5_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_5_ppt.c
index 8ee5002e3d6b..25de5e2dde83 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_5_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_5_ppt.c
@@ -136,16 +136,16 @@ static int smu_v13_0_5_init_smc_tables(struct smu_context *smu)
SMU_TABLE_INIT(tables, SMU_TABLE_SMU_METRICS, sizeof(SmuMetrics_t),
PAGE_SIZE, AMDGPU_GEM_DOMAIN_VRAM);
- smu_table->clocks_table = kzalloc(sizeof(DpmClocks_t), GFP_KERNEL);
+ smu_table->clocks_table = kzalloc_obj(DpmClocks_t, GFP_KERNEL);
if (!smu_table->clocks_table)
goto err0_out;
- smu_table->metrics_table = kzalloc(sizeof(SmuMetrics_t), GFP_KERNEL);
+ smu_table->metrics_table = kzalloc_obj(SmuMetrics_t, GFP_KERNEL);
if (!smu_table->metrics_table)
goto err1_out;
smu_table->metrics_time = 0;
- smu_table->watermarks_table = kzalloc(sizeof(Watermarks_t), GFP_KERNEL);
+ smu_table->watermarks_table = kzalloc_obj(Watermarks_t, GFP_KERNEL);
if (!smu_table->watermarks_table)
goto err2_out;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c
index 07592e285cf5..b85130bd8c08 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c
@@ -586,7 +586,7 @@ static int smu_v13_0_6_tables_init(struct smu_context *smu)
return -ENOMEM;
smu_table->metrics_time = 0;
- driver_pptable = kzalloc(sizeof(struct PPTable_t), GFP_KERNEL);
+ driver_pptable = kzalloc_obj(struct PPTable_t, GFP_KERNEL);
if (!driver_pptable)
return -ENOMEM;
@@ -690,13 +690,13 @@ static int smu_v13_0_6_allocate_dpm_context(struct smu_context *smu)
struct smu_dpm_policy *policy;
smu_dpm->dpm_context =
- kzalloc(sizeof(struct smu_13_0_dpm_context), GFP_KERNEL);
+ kzalloc_obj(struct smu_13_0_dpm_context, GFP_KERNEL);
if (!smu_dpm->dpm_context)
return -ENOMEM;
smu_dpm->dpm_context_size = sizeof(struct smu_13_0_dpm_context);
smu_dpm->dpm_policies =
- kzalloc(sizeof(struct smu_dpm_policy_ctxt), GFP_KERNEL);
+ kzalloc_obj(struct smu_dpm_policy_ctxt, GFP_KERNEL);
if (!smu_dpm->dpm_policies) {
kfree(smu_dpm->dpm_context);
return -ENOMEM;
@@ -2341,7 +2341,7 @@ static int smu_v13_0_6_i2c_xfer(struct i2c_adapter *i2c_adap,
if (!adev->pm.dpm_enabled)
return -EBUSY;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c
index a6c22ae86c98..6aefebdb0bad 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c
@@ -530,7 +530,7 @@ static int smu_v13_0_7_tables_init(struct smu_context *smu)
sizeof(WifiBandEntryTable_t), PAGE_SIZE,
AMDGPU_GEM_DOMAIN_VRAM);
- smu_table->metrics_table = kzalloc(sizeof(SmuMetricsExternal_t), GFP_KERNEL);
+ smu_table->metrics_table = kzalloc_obj(SmuMetricsExternal_t, GFP_KERNEL);
if (!smu_table->metrics_table)
goto err0_out;
smu_table->metrics_time = 0;
@@ -541,7 +541,7 @@ static int smu_v13_0_7_tables_init(struct smu_context *smu)
if (ret)
goto err1_out;
- smu_table->watermarks_table = kzalloc(sizeof(Watermarks_t), GFP_KERNEL);
+ smu_table->watermarks_table = kzalloc_obj(Watermarks_t, GFP_KERNEL);
if (!smu_table->watermarks_table)
goto err2_out;
@@ -559,8 +559,8 @@ static int smu_v13_0_7_allocate_dpm_context(struct smu_context *smu)
{
struct smu_dpm_context *smu_dpm = &smu->smu_dpm;
- smu_dpm->dpm_context = kzalloc(sizeof(struct smu_13_0_dpm_context),
- GFP_KERNEL);
+ smu_dpm->dpm_context = kzalloc_obj(struct smu_13_0_dpm_context,
+ GFP_KERNEL);
if (!smu_dpm->dpm_context)
return -ENOMEM;
@@ -2400,9 +2400,9 @@ static int smu_v13_0_7_get_power_profile_mode(struct smu_context *smu, char *buf
if (!buf)
return -EINVAL;
- activity_monitor_external = kcalloc(PP_SMC_POWER_PROFILE_COUNT,
- sizeof(*activity_monitor_external),
- GFP_KERNEL);
+ activity_monitor_external = kzalloc_objs(*activity_monitor_external,
+ PP_SMC_POWER_PROFILE_COUNT,
+ GFP_KERNEL);
if (!activity_monitor_external)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/yellow_carp_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/yellow_carp_ppt.c
index f9789b1fcbf8..e3700c704016 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/yellow_carp_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/yellow_carp_ppt.c
@@ -163,16 +163,16 @@ static int yellow_carp_init_smc_tables(struct smu_context *smu)
SMU_TABLE_INIT(tables, SMU_TABLE_SMU_METRICS, sizeof(SmuMetrics_t),
PAGE_SIZE, AMDGPU_GEM_DOMAIN_VRAM);
- smu_table->clocks_table = kzalloc(sizeof(DpmClocks_t), GFP_KERNEL);
+ smu_table->clocks_table = kzalloc_obj(DpmClocks_t, GFP_KERNEL);
if (!smu_table->clocks_table)
goto err0_out;
- smu_table->metrics_table = kzalloc(sizeof(SmuMetrics_t), GFP_KERNEL);
+ smu_table->metrics_table = kzalloc_obj(SmuMetrics_t, GFP_KERNEL);
if (!smu_table->metrics_table)
goto err1_out;
smu_table->metrics_time = 0;
- smu_table->watermarks_table = kzalloc(sizeof(Watermarks_t), GFP_KERNEL);
+ smu_table->watermarks_table = kzalloc_obj(Watermarks_t, GFP_KERNEL);
if (!smu_table->watermarks_table)
goto err2_out;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c
index 7dc6687c3693..2cfa8eb70cb3 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c
@@ -439,7 +439,7 @@ int smu_v14_0_init_smc_tables(struct smu_context *smu)
}
smu_table->max_sustainable_clocks =
- kzalloc(sizeof(struct smu_14_0_max_sustainable_clocks), GFP_KERNEL);
+ kzalloc_obj(struct smu_14_0_max_sustainable_clocks, GFP_KERNEL);
if (!smu_table->max_sustainable_clocks) {
ret = -ENOMEM;
goto err1_out;
@@ -538,8 +538,8 @@ int smu_v14_0_init_power(struct smu_context *smu)
if (smu_power->power_context || smu_power->power_context_size != 0)
return -EINVAL;
- smu_power->power_context = kzalloc(sizeof(struct smu_14_0_dpm_context),
- GFP_KERNEL);
+ smu_power->power_context = kzalloc_obj(struct smu_14_0_dpm_context,
+ GFP_KERNEL);
if (!smu_power->power_context)
return -ENOMEM;
smu_power->power_context_size = sizeof(struct smu_14_0_dpm_context);
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c
index dbdf7653cc53..a863e637e37f 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c
@@ -197,7 +197,7 @@ static int smu_v14_0_0_init_smc_tables(struct smu_context *smu)
SMU_TABLE_INIT(tables, SMU_TABLE_SMU_METRICS, sizeof(SmuMetrics_t),
PAGE_SIZE, AMDGPU_GEM_DOMAIN_VRAM);
- smu_table->metrics_table = kzalloc(sizeof(SmuMetrics_t), GFP_KERNEL);
+ smu_table->metrics_table = kzalloc_obj(SmuMetrics_t, GFP_KERNEL);
if (!smu_table->metrics_table)
goto err0_out;
smu_table->metrics_time = 0;
@@ -206,7 +206,7 @@ static int smu_v14_0_0_init_smc_tables(struct smu_context *smu)
if (!smu_table->clocks_table)
goto err1_out;
- smu_table->watermarks_table = kzalloc(sizeof(Watermarks_t), GFP_KERNEL);
+ smu_table->watermarks_table = kzalloc_obj(Watermarks_t, GFP_KERNEL);
if (!smu_table->watermarks_table)
goto err2_out;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c
index becfd356b4e7..b051a1f58760 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c
@@ -393,7 +393,7 @@ static int smu_v14_0_2_tables_init(struct smu_context *smu)
SMU_TABLE_INIT(tables, SMU_TABLE_ECCINFO, sizeof(EccInfoTable_t),
PAGE_SIZE, AMDGPU_GEM_DOMAIN_VRAM);
- smu_table->metrics_table = kzalloc(sizeof(SmuMetricsExternal_t), GFP_KERNEL);
+ smu_table->metrics_table = kzalloc_obj(SmuMetricsExternal_t, GFP_KERNEL);
if (!smu_table->metrics_table)
goto err0_out;
smu_table->metrics_time = 0;
@@ -404,7 +404,7 @@ static int smu_v14_0_2_tables_init(struct smu_context *smu)
if (ret)
goto err1_out;
- smu_table->watermarks_table = kzalloc(sizeof(Watermarks_t), GFP_KERNEL);
+ smu_table->watermarks_table = kzalloc_obj(Watermarks_t, GFP_KERNEL);
if (!smu_table->watermarks_table)
goto err2_out;
@@ -428,8 +428,8 @@ static int smu_v14_0_2_allocate_dpm_context(struct smu_context *smu)
{
struct smu_dpm_context *smu_dpm = &smu->smu_dpm;
- smu_dpm->dpm_context = kzalloc(sizeof(struct smu_14_0_dpm_context),
- GFP_KERNEL);
+ smu_dpm->dpm_context = kzalloc_obj(struct smu_14_0_dpm_context,
+ GFP_KERNEL);
if (!smu_dpm->dpm_context)
return -ENOMEM;
@@ -1876,7 +1876,7 @@ static int smu_v14_0_2_i2c_xfer(struct i2c_adapter *i2c_adap,
if (!adev->pm.dpm_enabled)
return -EBUSY;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c b/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c
index a2f446d38be8..2070cb31f185 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0.c
@@ -408,7 +408,7 @@ int smu_v15_0_init_smc_tables(struct smu_context *smu)
}
smu_table->max_sustainable_clocks =
- kzalloc(sizeof(struct smu_15_0_max_sustainable_clocks), GFP_KERNEL);
+ kzalloc_obj(struct smu_15_0_max_sustainable_clocks, GFP_KERNEL);
if (!smu_table->max_sustainable_clocks) {
ret = -ENOMEM;
goto err1_out;
@@ -507,8 +507,8 @@ int smu_v15_0_init_power(struct smu_context *smu)
if (smu_power->power_context || smu_power->power_context_size != 0)
return -EINVAL;
- smu_power->power_context = kzalloc(sizeof(struct smu_15_0_dpm_context),
- GFP_KERNEL);
+ smu_power->power_context = kzalloc_obj(struct smu_15_0_dpm_context,
+ GFP_KERNEL);
if (!smu_power->power_context)
return -ENOMEM;
smu_power->power_context_size = sizeof(struct smu_15_0_dpm_context);
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0_0_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0_0_ppt.c
index 660335d7bda9..18c31a50d281 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0_0_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0_0_ppt.c
@@ -173,16 +173,16 @@ static int smu_v15_0_0_init_smc_tables(struct smu_context *smu)
SMU_TABLE_INIT(tables, SMU_TABLE_SMU_METRICS, sizeof(SmuMetrics_t),
PAGE_SIZE, AMDGPU_GEM_DOMAIN_VRAM);
- smu_table->metrics_table = kzalloc(sizeof(SmuMetrics_t), GFP_KERNEL);
+ smu_table->metrics_table = kzalloc_obj(SmuMetrics_t, GFP_KERNEL);
if (!smu_table->metrics_table)
goto err0_out;
smu_table->metrics_time = 0;
- smu_table->clocks_table = kzalloc(sizeof(DpmClocks_t), GFP_KERNEL);
+ smu_table->clocks_table = kzalloc_obj(DpmClocks_t, GFP_KERNEL);
if (!smu_table->clocks_table)
goto err1_out;
- smu_table->watermarks_table = kzalloc(sizeof(Watermarks_t), GFP_KERNEL);
+ smu_table->watermarks_table = kzalloc_obj(Watermarks_t, GFP_KERNEL);
if (!smu_table->watermarks_table)
goto err2_out;
diff --git a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c
index 59c063625920..611171fea3cb 100644
--- a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c
+++ b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c
@@ -299,7 +299,7 @@ static int amdgpu_ras_mgr_sw_init(struct amdgpu_ip_block *ip_block)
if (!con->uniras_enabled)
return 0;
- ras_mgr = kzalloc(sizeof(*ras_mgr), GFP_KERNEL);
+ ras_mgr = kzalloc_obj(*ras_mgr, GFP_KERNEL);
if (!ras_mgr)
return -EINVAL;
diff --git a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.c b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.c
index a75479593864..65223bfec688 100644
--- a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.c
+++ b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.c
@@ -195,7 +195,7 @@ static int amdgpu_virt_ras_get_cper_records(struct ras_core_context *ras_core,
if (!req->buf_size || !req->buf_ptr || !req->cper_num)
return RAS_CMD__ERROR_INVALID_INPUT_DATA;
- trace = kcalloc(MAX_RECORD_PER_BATCH, sizeof(*trace), GFP_KERNEL);
+ trace = kzalloc_objs(*trace, MAX_RECORD_PER_BATCH, GFP_KERNEL);
if (!trace)
return RAS_CMD__ERROR_GENERIC;
@@ -365,7 +365,8 @@ int amdgpu_virt_ras_sw_init(struct amdgpu_device *adev)
{
struct amdgpu_ras_mgr *ras_mgr = amdgpu_ras_mgr_get_context(adev);
- ras_mgr->virt_ras_cmd = kzalloc(sizeof(struct amdgpu_virt_ras_cmd), GFP_KERNEL);
+ ras_mgr->virt_ras_cmd = kzalloc_obj(struct amdgpu_virt_ras_cmd,
+ GFP_KERNEL);
if (!ras_mgr->virt_ras_cmd)
return -ENOMEM;
diff --git a/drivers/gpu/drm/amd/ras/rascore/ras_core.c b/drivers/gpu/drm/amd/ras/rascore/ras_core.c
index f2fccdf5e329..e4a6f6cfd2d5 100644
--- a/drivers/gpu/drm/amd/ras/rascore/ras_core.c
+++ b/drivers/gpu/drm/amd/ras/rascore/ras_core.c
@@ -263,11 +263,11 @@ struct ras_core_context *ras_core_create(struct ras_core_config *init_config)
struct ras_core_context *ras_core;
struct ras_core_config *config;
- ras_core = kzalloc(sizeof(*ras_core), GFP_KERNEL);
+ ras_core = kzalloc_obj(*ras_core, GFP_KERNEL);
if (!ras_core)
return NULL;
- config = kzalloc(sizeof(*config), GFP_KERNEL);
+ config = kzalloc_obj(*config, GFP_KERNEL);
if (!config) {
kfree(ras_core);
return NULL;
diff --git a/drivers/gpu/drm/amd/ras/rascore/ras_log_ring.c b/drivers/gpu/drm/amd/ras/rascore/ras_log_ring.c
index 0a838fdcb2f6..5d3e46c7740f 100644
--- a/drivers/gpu/drm/amd/ras/rascore/ras_log_ring.c
+++ b/drivers/gpu/drm/amd/ras/rascore/ras_log_ring.c
@@ -202,7 +202,7 @@ struct ras_log_batch_tag *ras_log_ring_create_batch_tag(struct ras_core_context
struct ras_log_batch_tag *batch_tag;
unsigned long flags = 0;
- batch_tag = kzalloc(sizeof(*batch_tag), GFP_KERNEL);
+ batch_tag = kzalloc_obj(*batch_tag, GFP_KERNEL);
if (!batch_tag)
return NULL;
diff --git a/drivers/gpu/drm/amd/ras/rascore/ras_umc.c b/drivers/gpu/drm/amd/ras/rascore/ras_umc.c
index b19c26f6feaf..7c69a7a8c5f6 100644
--- a/drivers/gpu/drm/amd/ras/rascore/ras_umc.c
+++ b/drivers/gpu/drm/amd/ras/rascore/ras_umc.c
@@ -199,7 +199,7 @@ int ras_umc_log_bad_bank_pending(struct ras_core_context *ras_core, struct ras_b
struct ras_umc *ras_umc = &ras_core->ras_umc;
struct ras_bank_ecc_node *ecc_node;
- ecc_node = kzalloc(sizeof(*ecc_node), GFP_KERNEL);
+ ecc_node = kzalloc_obj(*ecc_node, GFP_KERNEL);
if (!ecc_node)
return -ENOMEM;
@@ -246,7 +246,7 @@ int ras_umc_log_bad_bank(struct ras_core_context *ras_core, struct ras_bank_ecc
if (ret)
goto out;
- err_rec = kzalloc(sizeof(*err_rec), GFP_KERNEL);
+ err_rec = kzalloc_obj(*err_rec, GFP_KERNEL);
if (!err_rec) {
ret = -ENOMEM;
goto out;
@@ -454,7 +454,7 @@ int ras_umc_load_bad_pages(struct ras_core_context *ras_core)
ras_core->ras_eeprom.record_threshold_config == DISABLE_RETIRE_PAGE)
return 0;
- bps = kcalloc(ras_num_recs, sizeof(*bps), GFP_KERNEL);
+ bps = kzalloc_objs(*bps, ras_num_recs, GFP_KERNEL);
if (!bps)
return -ENOMEM;
@@ -512,8 +512,7 @@ int ras_umc_handle_bad_pages(struct ras_core_context *ras_core, void *data)
struct eeprom_umc_record *records;
int count, ret;
- records = kcalloc(MAX_ECC_NUM_PER_RETIREMENT,
- sizeof(*records), GFP_KERNEL);
+ records = kzalloc_objs(*records, MAX_ECC_NUM_PER_RETIREMENT, GFP_KERNEL);
if (!records)
return -ENOMEM;
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
index 5a66948ffd24..7221dc4731ab 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
@@ -503,7 +503,7 @@ static void komeda_crtc_reset(struct drm_crtc *crtc)
kfree(to_kcrtc_st(crtc->state));
crtc->state = NULL;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state)
__drm_atomic_helper_crtc_reset(crtc, &state->base);
}
@@ -514,7 +514,7 @@ komeda_crtc_atomic_duplicate_state(struct drm_crtc *crtc)
struct komeda_crtc_state *old = to_kcrtc_st(crtc->state);
struct komeda_crtc_state *new;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return NULL;
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
index 3ca461eb0a24..ec34491f4f8b 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
@@ -165,7 +165,7 @@ komeda_fb_create(struct drm_device *dev, struct drm_file *file,
struct komeda_fb *kfb;
int ret = 0, i;
- kfb = kzalloc(sizeof(*kfb), GFP_KERNEL);
+ kfb = kzalloc_obj(*kfb, GFP_KERNEL);
if (!kfb)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_plane.c b/drivers/gpu/drm/arm/display/komeda/komeda_plane.c
index c20ff72f0ae5..05342c6d5b6d 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_plane.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_plane.c
@@ -142,7 +142,7 @@ static void komeda_plane_reset(struct drm_plane *plane)
kfree(plane->state);
plane->state = NULL;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state)
__drm_atomic_helper_plane_reset(plane, &state->base);
}
@@ -155,7 +155,7 @@ komeda_plane_atomic_duplicate_state(struct drm_plane *plane)
if (WARN_ON(!plane->state))
return NULL;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return NULL;
@@ -247,7 +247,7 @@ static int komeda_plane_add(struct komeda_kms_dev *kms,
u32 *formats, n_formats = 0;
int err;
- kplane = kzalloc(sizeof(*kplane), GFP_KERNEL);
+ kplane = kzalloc_obj(*kplane, GFP_KERNEL);
if (!kplane)
return -ENOMEM;
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_private_obj.c b/drivers/gpu/drm/arm/display/komeda/komeda_private_obj.c
index 914400c4af73..56703456fbfa 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_private_obj.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_private_obj.c
@@ -50,7 +50,7 @@ static int komeda_layer_obj_add(struct komeda_kms_dev *kms,
{
struct komeda_layer_state *st;
- st = kzalloc(sizeof(*st), GFP_KERNEL);
+ st = kzalloc_obj(*st, GFP_KERNEL);
if (!st)
return -ENOMEM;
@@ -92,7 +92,7 @@ static int komeda_scaler_obj_add(struct komeda_kms_dev *kms,
{
struct komeda_scaler_state *st;
- st = kzalloc(sizeof(*st), GFP_KERNEL);
+ st = kzalloc_obj(*st, GFP_KERNEL);
if (!st)
return -ENOMEM;
@@ -135,7 +135,7 @@ static int komeda_compiz_obj_add(struct komeda_kms_dev *kms,
{
struct komeda_compiz_state *st;
- st = kzalloc(sizeof(*st), GFP_KERNEL);
+ st = kzalloc_obj(*st, GFP_KERNEL);
if (!st)
return -ENOMEM;
@@ -178,7 +178,7 @@ static int komeda_splitter_obj_add(struct komeda_kms_dev *kms,
{
struct komeda_splitter_state *st;
- st = kzalloc(sizeof(*st), GFP_KERNEL);
+ st = kzalloc_obj(*st, GFP_KERNEL);
if (!st)
return -ENOMEM;
@@ -221,7 +221,7 @@ static int komeda_merger_obj_add(struct komeda_kms_dev *kms,
{
struct komeda_merger_state *st;
- st = kzalloc(sizeof(*st), GFP_KERNEL);
+ st = kzalloc_obj(*st, GFP_KERNEL);
if (!st)
return -ENOMEM;
@@ -265,7 +265,7 @@ static int komeda_improc_obj_add(struct komeda_kms_dev *kms,
{
struct komeda_improc_state *st;
- st = kzalloc(sizeof(*st), GFP_KERNEL);
+ st = kzalloc_obj(*st, GFP_KERNEL);
if (!st)
return -ENOMEM;
@@ -308,7 +308,7 @@ static int komeda_timing_ctrlr_obj_add(struct komeda_kms_dev *kms,
{
struct komeda_compiz_state *st;
- st = kzalloc(sizeof(*st), GFP_KERNEL);
+ st = kzalloc_obj(*st, GFP_KERNEL);
if (!st)
return -ENOMEM;
@@ -352,7 +352,7 @@ static int komeda_pipeline_obj_add(struct komeda_kms_dev *kms,
{
struct komeda_pipeline_state *st;
- st = kzalloc(sizeof(*st), GFP_KERNEL);
+ st = kzalloc_obj(*st, GFP_KERNEL);
if (!st)
return -ENOMEM;
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c b/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
index 875cdbff18c9..5e290815c32b 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
@@ -149,7 +149,7 @@ static int komeda_wb_connector_add(struct komeda_kms_dev *kms,
if (!kcrtc->master->wb_layer)
return 0;
- kwb_conn = kzalloc(sizeof(*kwb_conn), GFP_KERNEL);
+ kwb_conn = kzalloc_obj(*kwb_conn, GFP_KERNEL);
if (!kwb_conn)
return -ENOMEM;
diff --git a/drivers/gpu/drm/arm/malidp_crtc.c b/drivers/gpu/drm/arm/malidp_crtc.c
index e61cf362abdf..c3a295f3c82d 100644
--- a/drivers/gpu/drm/arm/malidp_crtc.c
+++ b/drivers/gpu/drm/arm/malidp_crtc.c
@@ -447,7 +447,7 @@ static struct drm_crtc_state *malidp_crtc_duplicate_state(struct drm_crtc *crtc)
return NULL;
old_state = to_malidp_crtc_state(crtc->state);
- state = kmalloc(sizeof(*state), GFP_KERNEL);
+ state = kmalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
@@ -478,8 +478,7 @@ static void malidp_crtc_destroy_state(struct drm_crtc *crtc,
static void malidp_crtc_reset(struct drm_crtc *crtc)
{
- struct malidp_crtc_state *state =
- kzalloc(sizeof(*state), GFP_KERNEL);
+ struct malidp_crtc_state *state = kzalloc_obj(*state, GFP_KERNEL);
if (crtc->state)
malidp_crtc_destroy_state(crtc, crtc->state);
diff --git a/drivers/gpu/drm/arm/malidp_mw.c b/drivers/gpu/drm/arm/malidp_mw.c
index 47733c85d271..81442a011b09 100644
--- a/drivers/gpu/drm/arm/malidp_mw.c
+++ b/drivers/gpu/drm/arm/malidp_mw.c
@@ -66,8 +66,8 @@ static const struct drm_connector_helper_funcs malidp_mw_connector_helper_funcs
static void malidp_mw_connector_reset(struct drm_connector *connector)
{
- struct malidp_mw_connector_state *mw_state =
- kzalloc(sizeof(*mw_state), GFP_KERNEL);
+ struct malidp_mw_connector_state *mw_state = kzalloc_obj(*mw_state,
+ GFP_KERNEL);
if (connector->state)
__drm_atomic_helper_connector_destroy_state(connector->state);
@@ -98,7 +98,7 @@ malidp_mw_connector_duplicate_state(struct drm_connector *connector)
if (WARN_ON(!connector->state))
return NULL;
- mw_state = kzalloc(sizeof(*mw_state), GFP_KERNEL);
+ mw_state = kzalloc_obj(*mw_state, GFP_KERNEL);
if (!mw_state)
return NULL;
diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c
index f1a5014bcfa1..1ba8fdf2dc4f 100644
--- a/drivers/gpu/drm/arm/malidp_planes.c
+++ b/drivers/gpu/drm/arm/malidp_planes.c
@@ -81,7 +81,7 @@ static void malidp_plane_reset(struct drm_plane *plane)
__drm_atomic_helper_plane_destroy_state(&state->base);
kfree(state);
plane->state = NULL;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state)
__drm_atomic_helper_plane_reset(plane, &state->base);
}
@@ -94,7 +94,7 @@ drm_plane_state *malidp_duplicate_plane_state(struct drm_plane *plane)
if (!plane->state)
return NULL;
- state = kmalloc(sizeof(*state), GFP_KERNEL);
+ state = kmalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/gpu/drm/armada/armada_crtc.c b/drivers/gpu/drm/armada/armada_crtc.c
index 033b19b31f63..ed57b60d0f12 100644
--- a/drivers/gpu/drm/armada/armada_crtc.c
+++ b/drivers/gpu/drm/armada/armada_crtc.c
@@ -921,7 +921,7 @@ static int armada_drm_crtc_create(struct drm_device *drm, struct device *dev,
if (IS_ERR(base))
return PTR_ERR(base);
- dcrtc = kzalloc(sizeof(*dcrtc), GFP_KERNEL);
+ dcrtc = kzalloc_obj(*dcrtc, GFP_KERNEL);
if (!dcrtc) {
DRM_ERROR("failed to allocate Armada crtc\n");
return -ENOMEM;
@@ -970,7 +970,7 @@ static int armada_drm_crtc_create(struct drm_device *drm, struct device *dev,
dcrtc->crtc.port = port;
- primary = kzalloc(sizeof(*primary), GFP_KERNEL);
+ primary = kzalloc_obj(*primary, GFP_KERNEL);
if (!primary) {
ret = -ENOMEM;
goto err_crtc;
diff --git a/drivers/gpu/drm/armada/armada_fb.c b/drivers/gpu/drm/armada/armada_fb.c
index 77098928f821..9355a7a20a50 100644
--- a/drivers/gpu/drm/armada/armada_fb.c
+++ b/drivers/gpu/drm/armada/armada_fb.c
@@ -57,7 +57,7 @@ struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
return ERR_PTR(-EINVAL);
}
- dfb = kzalloc(sizeof(*dfb), GFP_KERNEL);
+ dfb = kzalloc_obj(*dfb, GFP_KERNEL);
if (!dfb) {
DRM_ERROR("failed to allocate Armada fb object\n");
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/armada/armada_gem.c b/drivers/gpu/drm/armada/armada_gem.c
index 35fcfa0d85ff..56563816ca54 100644
--- a/drivers/gpu/drm/armada/armada_gem.c
+++ b/drivers/gpu/drm/armada/armada_gem.c
@@ -137,7 +137,7 @@ armada_gem_linear_back(struct drm_device *dev, struct armada_gem_object *obj)
void __iomem *ptr;
int ret;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return -ENOSPC;
@@ -200,7 +200,7 @@ armada_gem_alloc_private_object(struct drm_device *dev, size_t size)
size = roundup_gem_size(size);
- obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ obj = kzalloc_obj(*obj, GFP_KERNEL);
if (!obj)
return NULL;
@@ -221,7 +221,7 @@ static struct armada_gem_object *armada_gem_alloc_object(struct drm_device *dev,
size = roundup_gem_size(size);
- obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ obj = kzalloc_obj(*obj, GFP_KERNEL);
if (!obj)
return NULL;
@@ -393,7 +393,7 @@ armada_gem_prime_map_dma_buf(struct dma_buf_attachment *attach,
struct sg_table *sgt;
int i;
- sgt = kmalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kmalloc_obj(*sgt, GFP_KERNEL);
if (!sgt)
return NULL;
diff --git a/drivers/gpu/drm/armada/armada_overlay.c b/drivers/gpu/drm/armada/armada_overlay.c
index 21fd3b4ba10f..c003a8dce805 100644
--- a/drivers/gpu/drm/armada/armada_overlay.c
+++ b/drivers/gpu/drm/armada/armada_overlay.c
@@ -310,7 +310,7 @@ static void armada_overlay_reset(struct drm_plane *plane)
kfree(plane->state);
plane->state = NULL;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state) {
state->colorkey_yr = 0xfefefe00;
state->colorkey_ug = 0x01010100;
@@ -550,7 +550,7 @@ int armada_overlay_plane_create(struct drm_device *dev, unsigned long crtcs)
if (ret)
return ret;
- overlay = kzalloc(sizeof(*overlay), GFP_KERNEL);
+ overlay = kzalloc_obj(*overlay, GFP_KERNEL);
if (!overlay)
return -ENOMEM;
diff --git a/drivers/gpu/drm/armada/armada_plane.c b/drivers/gpu/drm/armada/armada_plane.c
index a0326b4f568e..88cac3e7e592 100644
--- a/drivers/gpu/drm/armada/armada_plane.c
+++ b/drivers/gpu/drm/armada/armada_plane.c
@@ -262,7 +262,7 @@ void armada_plane_reset(struct drm_plane *plane)
if (plane->state)
__drm_atomic_helper_plane_destroy_state(plane->state);
kfree(plane->state);
- st = kzalloc(sizeof(*st), GFP_KERNEL);
+ st = kzalloc_obj(*st, GFP_KERNEL);
if (st)
__drm_atomic_helper_plane_reset(plane, &st->base);
}
diff --git a/drivers/gpu/drm/ast/ast_dp.c b/drivers/gpu/drm/ast/ast_dp.c
index 8e650a02c528..056b372803b1 100644
--- a/drivers/gpu/drm/ast/ast_dp.c
+++ b/drivers/gpu/drm/ast/ast_dp.c
@@ -479,8 +479,8 @@ static const struct drm_connector_helper_funcs ast_astdp_connector_helper_funcs
static void ast_astdp_connector_reset(struct drm_connector *connector)
{
- struct ast_astdp_connector_state *astdp_state =
- kzalloc(sizeof(*astdp_state), GFP_KERNEL);
+ struct ast_astdp_connector_state *astdp_state = kzalloc_obj(*astdp_state,
+ GFP_KERNEL);
if (connector->state)
connector->funcs->atomic_destroy_state(connector, connector->state);
@@ -500,7 +500,7 @@ ast_astdp_connector_atomic_duplicate_state(struct drm_connector *connector)
if (drm_WARN_ON(dev, !connector->state))
return NULL;
- new_astdp_state = kmalloc(sizeof(*new_astdp_state), GFP_KERNEL);
+ new_astdp_state = kmalloc_obj(*new_astdp_state, GFP_KERNEL);
if (!new_astdp_state)
return NULL;
__drm_atomic_helper_connector_duplicate_state(connector, &new_astdp_state->base);
diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c
index 57c6fbc3232b..b017afe7e546 100644
--- a/drivers/gpu/drm/ast/ast_mode.c
+++ b/drivers/gpu/drm/ast/ast_mode.c
@@ -876,8 +876,7 @@ static const struct drm_crtc_helper_funcs ast_crtc_helper_funcs = {
static void ast_crtc_reset(struct drm_crtc *crtc)
{
- struct ast_crtc_state *ast_state =
- kzalloc(sizeof(*ast_state), GFP_KERNEL);
+ struct ast_crtc_state *ast_state = kzalloc_obj(*ast_state, GFP_KERNEL);
if (crtc->state)
crtc->funcs->atomic_destroy_state(crtc, crtc->state);
@@ -897,7 +896,7 @@ ast_crtc_atomic_duplicate_state(struct drm_crtc *crtc)
if (drm_WARN_ON(dev, !crtc->state))
return NULL;
- new_ast_state = kmalloc(sizeof(*new_ast_state), GFP_KERNEL);
+ new_ast_state = kmalloc_obj(*new_ast_state, GFP_KERNEL);
if (!new_ast_state)
return NULL;
__drm_atomic_helper_crtc_duplicate_state(crtc, &new_ast_state->base);
diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
index b075f291847f..7204ef72c4d2 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
@@ -540,7 +540,7 @@ static void atmel_hlcdc_crtc_reset(struct drm_crtc *crtc)
crtc->state = NULL;
}
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state)
__drm_atomic_helper_crtc_reset(crtc, &state->base);
}
@@ -554,7 +554,7 @@ atmel_hlcdc_crtc_duplicate_state(struct drm_crtc *crtc)
if (WARN_ON(!crtc->state))
return NULL;
- state = kmalloc(sizeof(*state), GFP_KERNEL);
+ state = kmalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);
diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
index c52da47982ee..1a1e76dc4727 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
@@ -1194,7 +1194,7 @@ static void atmel_hlcdc_plane_reset(struct drm_plane *p)
p->state = NULL;
}
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state) {
if (atmel_hlcdc_plane_alloc_dscrs(p, state)) {
kfree(state);
diff --git a/drivers/gpu/drm/bridge/aux-bridge.c b/drivers/gpu/drm/bridge/aux-bridge.c
index b3e4cdff61d6..50309a23dbea 100644
--- a/drivers/gpu/drm/bridge/aux-bridge.c
+++ b/drivers/gpu/drm/bridge/aux-bridge.c
@@ -47,7 +47,7 @@ int drm_aux_bridge_register(struct device *parent)
struct auxiliary_device *adev;
int ret;
- adev = kzalloc(sizeof(*adev), GFP_KERNEL);
+ adev = kzalloc_obj(*adev, GFP_KERNEL);
if (!adev)
return -ENOMEM;
diff --git a/drivers/gpu/drm/bridge/aux-hpd-bridge.c b/drivers/gpu/drm/bridge/aux-hpd-bridge.c
index 2e9c702c7087..0f8a0fb50fbc 100644
--- a/drivers/gpu/drm/bridge/aux-hpd-bridge.c
+++ b/drivers/gpu/drm/bridge/aux-hpd-bridge.c
@@ -52,7 +52,7 @@ struct auxiliary_device *devm_drm_dp_hpd_bridge_alloc(struct device *parent, str
struct auxiliary_device *adev;
int ret;
- adev = kzalloc(sizeof(*adev), GFP_KERNEL);
+ adev = kzalloc_obj(*adev, GFP_KERNEL);
if (!adev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c b/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c
index 09b289f0fcbf..c094740523ea 100644
--- a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c
+++ b/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c
@@ -902,7 +902,7 @@ static u32 *cdns_dsi_bridge_get_input_bus_fmts(struct drm_bridge *bridge,
*num_input_fmts = 0;
- input_fmts = kzalloc(sizeof(*input_fmts), GFP_KERNEL);
+ input_fmts = kzalloc_obj(*input_fmts, GFP_KERNEL);
if (!input_fmts)
return NULL;
@@ -985,7 +985,7 @@ cdns_dsi_bridge_atomic_duplicate_state(struct drm_bridge *bridge)
bridge_state = drm_priv_to_bridge_state(bridge->base.state);
old_dsi_state = to_cdns_dsi_bridge_state(bridge_state);
- dsi_state = kzalloc(sizeof(*dsi_state), GFP_KERNEL);
+ dsi_state = kzalloc_obj(*dsi_state, GFP_KERNEL);
if (!dsi_state)
return NULL;
@@ -1013,7 +1013,7 @@ cdns_dsi_bridge_atomic_reset(struct drm_bridge *bridge)
{
struct cdns_dsi_bridge_state *dsi_state;
- dsi_state = kzalloc(sizeof(*dsi_state), GFP_KERNEL);
+ dsi_state = kzalloc_obj(*dsi_state, GFP_KERNEL);
if (!dsi_state)
return NULL;
diff --git a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
index 38726ae1bf15..9d41e824e757 100644
--- a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
+++ b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
@@ -2055,7 +2055,7 @@ cdns_mhdp_bridge_atomic_duplicate_state(struct drm_bridge *bridge)
{
struct cdns_mhdp_bridge_state *state;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
@@ -2085,7 +2085,7 @@ cdns_mhdp_bridge_atomic_reset(struct drm_bridge *bridge)
{
struct cdns_mhdp_bridge_state *cdns_mhdp_state;
- cdns_mhdp_state = kzalloc(sizeof(*cdns_mhdp_state), GFP_KERNEL);
+ cdns_mhdp_state = kzalloc_obj(*cdns_mhdp_state, GFP_KERNEL);
if (!cdns_mhdp_state)
return NULL;
@@ -2105,7 +2105,7 @@ static u32 *cdns_mhdp_get_input_bus_fmts(struct drm_bridge *bridge,
*num_input_fmts = 0;
- input_fmts = kzalloc(sizeof(*input_fmts), GFP_KERNEL);
+ input_fmts = kzalloc_obj(*input_fmts, GFP_KERNEL);
if (!input_fmts)
return NULL;
diff --git a/drivers/gpu/drm/bridge/display-connector.c b/drivers/gpu/drm/bridge/display-connector.c
index e9f16dbc9535..f5ffef625a9b 100644
--- a/drivers/gpu/drm/bridge/display-connector.c
+++ b/drivers/gpu/drm/bridge/display-connector.c
@@ -116,7 +116,7 @@ static u32 *display_connector_get_output_bus_fmts(struct drm_bridge *bridge,
u32 *out_bus_fmts;
*num_output_fmts = 1;
- out_bus_fmts = kmalloc(sizeof(*out_bus_fmts), GFP_KERNEL);
+ out_bus_fmts = kmalloc_obj(*out_bus_fmts, GFP_KERNEL);
if (!out_bus_fmts)
return NULL;
@@ -158,7 +158,7 @@ static u32 *display_connector_get_input_bus_fmts(struct drm_bridge *bridge,
u32 *in_bus_fmts;
*num_input_fmts = 1;
- in_bus_fmts = kmalloc(sizeof(*in_bus_fmts), GFP_KERNEL);
+ in_bus_fmts = kmalloc_obj(*in_bus_fmts, GFP_KERNEL);
if (!in_bus_fmts)
return NULL;
diff --git a/drivers/gpu/drm/bridge/imx/imx8qm-ldb.c b/drivers/gpu/drm/bridge/imx/imx8qm-ldb.c
index fc67e7ed653d..157cda9d2fb1 100644
--- a/drivers/gpu/drm/bridge/imx/imx8qm-ldb.c
+++ b/drivers/gpu/drm/bridge/imx/imx8qm-ldb.c
@@ -319,7 +319,7 @@ imx8qm_ldb_bridge_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
*num_input_fmts = 1;
- input_fmts = kmalloc(sizeof(*input_fmts), GFP_KERNEL);
+ input_fmts = kmalloc_obj(*input_fmts, GFP_KERNEL);
if (!input_fmts)
return NULL;
diff --git a/drivers/gpu/drm/bridge/imx/imx8qxp-ldb.c b/drivers/gpu/drm/bridge/imx/imx8qxp-ldb.c
index ada11eed13cf..eb06266f15fb 100644
--- a/drivers/gpu/drm/bridge/imx/imx8qxp-ldb.c
+++ b/drivers/gpu/drm/bridge/imx/imx8qxp-ldb.c
@@ -333,7 +333,7 @@ imx8qxp_ldb_bridge_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
*num_input_fmts = 1;
- input_fmts = kmalloc(sizeof(*input_fmts), GFP_KERNEL);
+ input_fmts = kmalloc_obj(*input_fmts, GFP_KERNEL);
if (!input_fmts)
return NULL;
diff --git a/drivers/gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c b/drivers/gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c
index 27ad66f240cf..a7dd49e2d3bb 100644
--- a/drivers/gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c
+++ b/drivers/gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c
@@ -216,7 +216,7 @@ imx8qxp_pc_bridge_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
*num_input_fmts = 1;
- input_fmts = kmalloc(sizeof(*input_fmts), GFP_KERNEL);
+ input_fmts = kmalloc_obj(*input_fmts, GFP_KERNEL);
if (!input_fmts)
return NULL;
diff --git a/drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c b/drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c
index 433c080197a2..85976abdda63 100644
--- a/drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c
+++ b/drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c
@@ -206,7 +206,7 @@ imx8qxp_pixel_link_bridge_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
*num_input_fmts = 1;
- input_fmts = kmalloc(sizeof(*input_fmts), GFP_KERNEL);
+ input_fmts = kmalloc_obj(*input_fmts, GFP_KERNEL);
if (!input_fmts)
return NULL;
diff --git a/drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c b/drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c
index 9dc2b3d2ecef..7c86760171dc 100644
--- a/drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c
+++ b/drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c
@@ -175,7 +175,7 @@ imx8qxp_pxl2dpi_bridge_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
*num_input_fmts = 1;
- input_fmts = kmalloc(sizeof(*input_fmts), GFP_KERNEL);
+ input_fmts = kmalloc_obj(*input_fmts, GFP_KERNEL);
if (!input_fmts)
return NULL;
diff --git a/drivers/gpu/drm/bridge/imx/imx93-mipi-dsi.c b/drivers/gpu/drm/bridge/imx/imx93-mipi-dsi.c
index 8f7a0d46601a..e672a37950e0 100644
--- a/drivers/gpu/drm/bridge/imx/imx93-mipi-dsi.c
+++ b/drivers/gpu/drm/bridge/imx/imx93-mipi-dsi.c
@@ -609,7 +609,7 @@ static u32 *imx93_dsi_get_input_bus_fmts(void *priv_data,
return NULL;
}
- input_fmts = kmalloc(sizeof(*input_fmts), GFP_KERNEL);
+ input_fmts = kmalloc_obj(*input_fmts, GFP_KERNEL);
if (!input_fmts)
return NULL;
input_fmts[0] = input_fmt;
diff --git a/drivers/gpu/drm/bridge/ite-it6263.c b/drivers/gpu/drm/bridge/ite-it6263.c
index 3991fb76143c..85fbf57001ec 100644
--- a/drivers/gpu/drm/bridge/ite-it6263.c
+++ b/drivers/gpu/drm/bridge/ite-it6263.c
@@ -735,7 +735,7 @@ it6263_bridge_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
if (!it6263_is_input_bus_fmt_valid(it->lvds_data_mapping))
return NULL;
- input_fmts = kmalloc(sizeof(*input_fmts), GFP_KERNEL);
+ input_fmts = kmalloc_obj(*input_fmts, GFP_KERNEL);
if (!input_fmts)
return NULL;
diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c
index 1d85e706c74b..810c6984cf6b 100644
--- a/drivers/gpu/drm/bridge/samsung-dsim.c
+++ b/drivers/gpu/drm/bridge/samsung-dsim.c
@@ -1741,7 +1741,7 @@ samsung_dsim_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
{
u32 *input_fmts;
- input_fmts = kmalloc(sizeof(*input_fmts), GFP_KERNEL);
+ input_fmts = kmalloc_obj(*input_fmts, GFP_KERNEL);
if (!input_fmts)
return NULL;
diff --git a/drivers/gpu/drm/bridge/sil-sii8620.c b/drivers/gpu/drm/bridge/sil-sii8620.c
index 9e48ad39e1cc..10fcec9d653b 100644
--- a/drivers/gpu/drm/bridge/sil-sii8620.c
+++ b/drivers/gpu/drm/bridge/sil-sii8620.c
@@ -384,7 +384,7 @@ static void sii8620_mt_msc_cmd_send(struct sii8620 *ctx,
static struct sii8620_mt_msg *sii8620_mt_msg_new(struct sii8620 *ctx)
{
- struct sii8620_mt_msg *msg = kzalloc(sizeof(*msg), GFP_KERNEL);
+ struct sii8620_mt_msg *msg = kzalloc_obj(*msg, GFP_KERNEL);
if (!msg)
ctx->error = -ENOMEM;
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-dp.c b/drivers/gpu/drm/bridge/synopsys/dw-dp.c
index 432342452484..04e2e19c9e25 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-dp.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-dp.c
@@ -1809,7 +1809,7 @@ static struct drm_bridge_state *dw_dp_bridge_atomic_duplicate_state(struct drm_b
{
struct dw_dp_bridge_state *state;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
index 8fc2e282ff11..8d5d8a196479 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
@@ -561,7 +561,7 @@ dw_mipi_dsi_bridge_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
output_fmt, num_input_fmts);
/* Fall back to MEDIA_BUS_FMT_FIXED as the only input format. */
- input_fmts = kmalloc(sizeof(*input_fmts), GFP_KERNEL);
+ input_fmts = kmalloc_obj(*input_fmts, GFP_KERNEL);
if (!input_fmts)
return NULL;
input_fmts[0] = MEDIA_BUS_FMT_FIXED;
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c
index 5926a3a05d79..9f06d00569ec 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c
@@ -711,7 +711,7 @@ dw_mipi_dsi2_bridge_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
output_fmt, num_input_fmts);
/* Fall back to MEDIA_BUS_FMT_FIXED as the only input format. */
- input_fmts = kmalloc(sizeof(*input_fmts), GFP_KERNEL);
+ input_fmts = kmalloc_obj(*input_fmts, GFP_KERNEL);
if (!input_fmts)
return NULL;
input_fmts[0] = MEDIA_BUS_FMT_FIXED;
diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c
index 11b5bb50e9f4..cae2ea075670 100644
--- a/drivers/gpu/drm/bridge/ti-tfp410.c
+++ b/drivers/gpu/drm/bridge/ti-tfp410.c
@@ -213,7 +213,7 @@ static u32 *tfp410_get_input_bus_fmts(struct drm_bridge *bridge,
*num_input_fmts = 0;
- input_fmts = kzalloc(sizeof(*input_fmts), GFP_KERNEL);
+ input_fmts = kzalloc_obj(*input_fmts, GFP_KERNEL);
if (!input_fmts)
return NULL;
diff --git a/drivers/gpu/drm/clients/drm_fbdev_client.c b/drivers/gpu/drm/clients/drm_fbdev_client.c
index 28951e392482..f708c0d2bf6a 100644
--- a/drivers/gpu/drm/clients/drm_fbdev_client.c
+++ b/drivers/gpu/drm/clients/drm_fbdev_client.c
@@ -154,7 +154,7 @@ int drm_fbdev_client_setup(struct drm_device *dev, const struct drm_format_info
drm_WARN(dev, !dev->registered, "Device has not been registered.\n");
drm_WARN(dev, dev->fb_helper, "fb_helper is already set!\n");
- fb_helper = kzalloc(sizeof(*fb_helper), GFP_KERNEL);
+ fb_helper = kzalloc_obj(*fb_helper, GFP_KERNEL);
if (!fb_helper)
return -ENOMEM;
drm_fb_helper_prepare(dev, fb_helper, color_mode, NULL);
diff --git a/drivers/gpu/drm/clients/drm_log.c b/drivers/gpu/drm/clients/drm_log.c
index 2bd5189c967e..1055f05dbfa2 100644
--- a/drivers/gpu/drm/clients/drm_log.c
+++ b/drivers/gpu/drm/clients/drm_log.c
@@ -248,7 +248,7 @@ static void drm_log_init_client(struct drm_log *dlog)
if (!max_modeset)
return;
- dlog->scanout = kcalloc(max_modeset, sizeof(*dlog->scanout), GFP_KERNEL);
+ dlog->scanout = kzalloc_objs(*dlog->scanout, max_modeset, GFP_KERNEL);
if (!dlog->scanout)
return;
@@ -419,7 +419,7 @@ void drm_log_register(struct drm_device *dev)
{
struct drm_log *new;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
goto err_warn;
diff --git a/drivers/gpu/drm/display/drm_dp_aux_bus.c b/drivers/gpu/drm/display/drm_dp_aux_bus.c
index 2d279e82922f..a36feef1cd6a 100644
--- a/drivers/gpu/drm/display/drm_dp_aux_bus.c
+++ b/drivers/gpu/drm/display/drm_dp_aux_bus.c
@@ -280,7 +280,7 @@ int of_dp_aux_populate_bus(struct drm_dp_aux *aux,
goto err_did_get_np;
}
- aux_ep_with_data = kzalloc(sizeof(*aux_ep_with_data), GFP_KERNEL);
+ aux_ep_with_data = kzalloc_obj(*aux_ep_with_data, GFP_KERNEL);
if (!aux_ep_with_data) {
ret = -ENOMEM;
goto err_did_set_populated;
diff --git a/drivers/gpu/drm/display/drm_dp_aux_dev.c b/drivers/gpu/drm/display/drm_dp_aux_dev.c
index 29555b9f03c8..df02dbca7338 100644
--- a/drivers/gpu/drm/display/drm_dp_aux_dev.c
+++ b/drivers/gpu/drm/display/drm_dp_aux_dev.c
@@ -75,7 +75,7 @@ static struct drm_dp_aux_dev *alloc_drm_dp_aux_dev(struct drm_dp_aux *aux)
struct drm_dp_aux_dev *aux_dev;
int index;
- aux_dev = kzalloc(sizeof(*aux_dev), GFP_KERNEL);
+ aux_dev = kzalloc_obj(*aux_dev, GFP_KERNEL);
if (!aux_dev)
return ERR_PTR(-ENOMEM);
aux_dev->aux = aux;
diff --git a/drivers/gpu/drm/display/drm_dp_mst_topology.c b/drivers/gpu/drm/display/drm_dp_mst_topology.c
index be749dcad3b5..954ecaa6fd6b 100644
--- a/drivers/gpu/drm/display/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/display/drm_dp_mst_topology.c
@@ -1333,7 +1333,7 @@ static struct drm_dp_mst_branch *drm_dp_add_mst_branch_device(u8 lct, u8 *rad)
{
struct drm_dp_mst_branch *mstb;
- mstb = kzalloc(sizeof(*mstb), GFP_KERNEL);
+ mstb = kzalloc_obj(*mstb, GFP_KERNEL);
if (!mstb)
return NULL;
@@ -2317,7 +2317,7 @@ drm_dp_mst_add_port(struct drm_device *dev,
struct drm_dp_mst_topology_mgr *mgr,
struct drm_dp_mst_branch *mstb, u8 port_number)
{
- struct drm_dp_mst_port *port = kzalloc(sizeof(*port), GFP_KERNEL);
+ struct drm_dp_mst_port *port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return NULL;
@@ -2923,7 +2923,7 @@ static int drm_dp_send_link_address(struct drm_dp_mst_topology_mgr *mgr,
int i, ret, port_mask = 0;
bool changed = false;
- txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL);
+ txmsg = kzalloc_obj(*txmsg, GFP_KERNEL);
if (!txmsg)
return -ENOMEM;
@@ -3000,7 +3000,7 @@ drm_dp_send_clear_payload_id_table(struct drm_dp_mst_topology_mgr *mgr,
struct drm_dp_sideband_msg_tx *txmsg;
int ret;
- txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL);
+ txmsg = kzalloc_obj(*txmsg, GFP_KERNEL);
if (!txmsg)
return;
@@ -3025,7 +3025,7 @@ drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr,
struct drm_dp_sideband_msg_tx *txmsg;
int ret;
- txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL);
+ txmsg = kzalloc_obj(*txmsg, GFP_KERNEL);
if (!txmsg)
return -ENOMEM;
@@ -3138,7 +3138,7 @@ static int drm_dp_payload_send_msg(struct drm_dp_mst_topology_mgr *mgr,
return -EINVAL;
}
- txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL);
+ txmsg = kzalloc_obj(*txmsg, GFP_KERNEL);
if (!txmsg) {
ret = -ENOMEM;
goto fail_put;
@@ -3185,7 +3185,7 @@ int drm_dp_send_power_updown_phy(struct drm_dp_mst_topology_mgr *mgr,
if (!port)
return -EINVAL;
- txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL);
+ txmsg = kzalloc_obj(*txmsg, GFP_KERNEL);
if (!txmsg) {
drm_dp_mst_topology_put_port(port);
return -ENOMEM;
@@ -3219,7 +3219,7 @@ int drm_dp_send_query_stream_enc_status(struct drm_dp_mst_topology_mgr *mgr,
u8 nonce[7];
int ret;
- txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL);
+ txmsg = kzalloc_obj(*txmsg, GFP_KERNEL);
if (!txmsg)
return -ENOMEM;
@@ -3470,7 +3470,7 @@ static int drm_dp_send_dpcd_read(struct drm_dp_mst_topology_mgr *mgr,
if (!mstb)
return -EINVAL;
- txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL);
+ txmsg = kzalloc_obj(*txmsg, GFP_KERNEL);
if (!txmsg) {
ret = -ENOMEM;
goto fail_put;
@@ -3521,7 +3521,7 @@ static int drm_dp_send_dpcd_write(struct drm_dp_mst_topology_mgr *mgr,
if (!mstb)
return -EINVAL;
- txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL);
+ txmsg = kzalloc_obj(*txmsg, GFP_KERNEL);
if (!txmsg) {
ret = -ENOMEM;
goto fail_put;
@@ -3562,7 +3562,7 @@ static int drm_dp_send_up_ack_reply(struct drm_dp_mst_topology_mgr *mgr,
{
struct drm_dp_sideband_msg_tx *txmsg;
- txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL);
+ txmsg = kzalloc_obj(*txmsg, GFP_KERNEL);
if (!txmsg)
return -ENOMEM;
@@ -4135,7 +4135,7 @@ static int drm_dp_mst_handle_up_req(struct drm_dp_mst_topology_mgr *mgr)
if (!mgr->up_req_recv.have_eomt)
return 0;
- up_req = kzalloc(sizeof(*up_req), GFP_KERNEL);
+ up_req = kzalloc_obj(*up_req, GFP_KERNEL);
if (!up_req) {
ret = -ENOMEM;
goto out_clear_reply;
@@ -4479,7 +4479,7 @@ int drm_dp_atomic_find_time_slots(struct drm_atomic_state *state,
/* Add the new allocation to the state, note the VCPI isn't assigned until the end */
if (!payload) {
- payload = kzalloc(sizeof(*payload), GFP_KERNEL);
+ payload = kzalloc_obj(*payload, GFP_KERNEL);
if (!payload)
return -ENOMEM;
@@ -4604,8 +4604,9 @@ int drm_dp_mst_atomic_setup_commit(struct drm_atomic_state *state)
continue;
num_commit_deps = hweight32(mst_state->pending_crtc_mask);
- mst_state->commit_deps = kmalloc_array(num_commit_deps,
- sizeof(*mst_state->commit_deps), GFP_KERNEL);
+ mst_state->commit_deps = kmalloc_objs(*mst_state->commit_deps,
+ num_commit_deps,
+ GFP_KERNEL);
if (!mst_state->commit_deps)
return -ENOMEM;
mst_state->num_commit_deps = num_commit_deps;
@@ -5743,7 +5744,7 @@ int drm_dp_mst_topology_mgr_init(struct drm_dp_mst_topology_mgr *mgr,
mgr->max_payloads = max_payloads;
mgr->conn_base_id = conn_base_id;
- mst_state = kzalloc(sizeof(*mst_state), GFP_KERNEL);
+ mst_state = kzalloc_obj(*mst_state, GFP_KERNEL);
if (mst_state == NULL)
return -ENOMEM;
@@ -5843,7 +5844,7 @@ static int drm_dp_mst_i2c_read(struct drm_dp_mst_branch *mstb,
msg.u.i2c_read.read_i2c_device_id = msgs[num - 1].addr;
msg.u.i2c_read.num_bytes_read = msgs[num - 1].len;
- txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL);
+ txmsg = kzalloc_obj(*txmsg, GFP_KERNEL);
if (!txmsg) {
ret = -ENOMEM;
goto out;
@@ -5883,7 +5884,7 @@ static int drm_dp_mst_i2c_write(struct drm_dp_mst_branch *mstb,
struct drm_dp_sideband_msg_tx *txmsg = NULL;
int ret;
- txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL);
+ txmsg = kzalloc_obj(*txmsg, GFP_KERNEL);
if (!txmsg) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/gpu/drm/display/drm_dp_tunnel.c b/drivers/gpu/drm/display/drm_dp_tunnel.c
index 43f13a7c79b9..005ee68e6cd4 100644
--- a/drivers/gpu/drm/display/drm_dp_tunnel.c
+++ b/drivers/gpu/drm/display/drm_dp_tunnel.c
@@ -476,7 +476,7 @@ create_tunnel(struct drm_dp_tunnel_mgr *mgr,
u8 drv_group_id = tunnel_reg_drv_group_id(regs);
struct drm_dp_tunnel *tunnel;
- tunnel = kzalloc(sizeof(*tunnel), GFP_KERNEL);
+ tunnel = kzalloc_obj(*tunnel, GFP_KERNEL);
if (!tunnel)
return NULL;
@@ -1387,7 +1387,7 @@ add_tunnel_state(struct drm_dp_tunnel_group_state *group_state,
"Adding state for tunnel %p to group state %p\n",
tunnel, group_state);
- tunnel_state = kzalloc(sizeof(*tunnel_state), GFP_KERNEL);
+ tunnel_state = kzalloc_obj(*tunnel_state, GFP_KERNEL);
if (!tunnel_state)
return NULL;
@@ -1458,7 +1458,7 @@ tunnel_group_duplicate_state(struct drm_private_obj *obj)
struct drm_dp_tunnel_group_state *group_state;
struct drm_dp_tunnel_state *tunnel_state;
- group_state = kzalloc(sizeof(*group_state), GFP_KERNEL);
+ group_state = kzalloc_obj(*group_state, GFP_KERNEL);
if (!group_state)
return NULL;
@@ -1583,7 +1583,7 @@ static bool init_group(struct drm_dp_tunnel_mgr *mgr, struct drm_dp_tunnel_group
{
struct drm_dp_tunnel_group_state *group_state;
- group_state = kzalloc(sizeof(*group_state), GFP_KERNEL);
+ group_state = kzalloc_obj(*group_state, GFP_KERNEL);
if (!group_state)
return false;
@@ -1644,7 +1644,7 @@ static int resize_bw_array(struct drm_dp_tunnel_state *tunnel_state,
if (old_mask == new_mask)
return 0;
- new_bws = kcalloc(hweight32(new_mask), sizeof(*new_bws), GFP_KERNEL);
+ new_bws = kzalloc_objs(*new_bws, hweight32(new_mask), GFP_KERNEL);
if (!new_bws)
return -ENOMEM;
@@ -1906,14 +1906,14 @@ drm_dp_tunnel_mgr_create(struct drm_device *dev, int max_group_count)
struct drm_dp_tunnel_mgr *mgr;
int i;
- mgr = kzalloc(sizeof(*mgr), GFP_KERNEL);
+ mgr = kzalloc_obj(*mgr, GFP_KERNEL);
if (!mgr)
return ERR_PTR(-ENOMEM);
mgr->dev = dev;
init_waitqueue_head(&mgr->bw_req_queue);
- mgr->groups = kcalloc(max_group_count, sizeof(*mgr->groups), GFP_KERNEL);
+ mgr->groups = kzalloc_objs(*mgr->groups, max_group_count, GFP_KERNEL);
if (!mgr->groups) {
kfree(mgr);
diff --git a/drivers/gpu/drm/display/drm_hdmi_cec_helper.c b/drivers/gpu/drm/display/drm_hdmi_cec_helper.c
index 3651ad0f76e0..7308ed792089 100644
--- a/drivers/gpu/drm/display/drm_hdmi_cec_helper.c
+++ b/drivers/gpu/drm/display/drm_hdmi_cec_helper.c
@@ -97,7 +97,7 @@ int drmm_connector_hdmi_cec_register(struct drm_connector *connector,
if (!funcs->init || !funcs->enable || !funcs->log_addr || !funcs->transmit)
return -EINVAL;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 52738b80ddbe..a666fca65d6c 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -132,16 +132,17 @@ drm_atomic_state_init(struct drm_device *dev, struct drm_atomic_state *state)
*/
state->allow_modeset = true;
- state->crtcs = kcalloc(dev->mode_config.num_crtc,
- sizeof(*state->crtcs), GFP_KERNEL);
+ state->crtcs = kzalloc_objs(*state->crtcs, dev->mode_config.num_crtc,
+ GFP_KERNEL);
if (!state->crtcs)
goto fail;
- state->planes = kcalloc(dev->mode_config.num_total_plane,
- sizeof(*state->planes), GFP_KERNEL);
+ state->planes = kzalloc_objs(*state->planes,
+ dev->mode_config.num_total_plane,
+ GFP_KERNEL);
if (!state->planes)
goto fail;
- state->colorops = kcalloc(dev->mode_config.num_colorop,
- sizeof(*state->colorops), GFP_KERNEL);
+ state->colorops = kzalloc_objs(*state->colorops,
+ dev->mode_config.num_colorop, GFP_KERNEL);
if (!state->colorops)
goto fail;
@@ -176,7 +177,7 @@ drm_atomic_state_alloc(struct drm_device *dev)
if (!config->funcs->atomic_state_alloc) {
struct drm_atomic_state *state;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
if (drm_atomic_state_init(dev, state) < 0) {
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index cc1f0c102414..8626f903fdd5 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -2453,7 +2453,8 @@ crtc_or_fake_commit(struct drm_atomic_state *state, struct drm_crtc *crtc)
}
if (!state->fake_commit) {
- state->fake_commit = kzalloc(sizeof(*state->fake_commit), GFP_KERNEL);
+ state->fake_commit = kzalloc_obj(*state->fake_commit,
+ GFP_KERNEL);
if (!state->fake_commit)
return NULL;
@@ -2524,7 +2525,7 @@ int drm_atomic_helper_setup_commit(struct drm_atomic_state *state,
funcs = state->dev->mode_config.helper_private;
for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
- commit = kzalloc(sizeof(*commit), GFP_KERNEL);
+ commit = kzalloc_obj(*commit, GFP_KERNEL);
if (!commit)
return -ENOMEM;
@@ -2553,8 +2554,7 @@ int drm_atomic_helper_setup_commit(struct drm_atomic_state *state,
}
if (!new_crtc_state->event) {
- commit->event = kzalloc(sizeof(*commit->event),
- GFP_KERNEL);
+ commit->event = kzalloc_obj(*commit->event, GFP_KERNEL);
if (!commit->event)
return -ENOMEM;
@@ -4080,7 +4080,7 @@ drm_atomic_helper_bridge_propagate_bus_fmt(struct drm_bridge *bridge,
{
u32 *input_fmts;
- input_fmts = kzalloc(sizeof(*input_fmts), GFP_KERNEL);
+ input_fmts = kzalloc_obj(*input_fmts, GFP_KERNEL);
if (!input_fmts) {
*num_input_fmts = 0;
return NULL;
diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c
index cee6d8fc44ad..67812085dca7 100644
--- a/drivers/gpu/drm/drm_atomic_state_helper.c
+++ b/drivers/gpu/drm/drm_atomic_state_helper.c
@@ -114,7 +114,7 @@ EXPORT_SYMBOL(__drm_atomic_helper_crtc_reset);
void drm_atomic_helper_crtc_reset(struct drm_crtc *crtc)
{
struct drm_crtc_state *crtc_state =
- kzalloc(sizeof(*crtc->state), GFP_KERNEL);
+ kzalloc_obj(*crtc->state, GFP_KERNEL);
if (crtc->state)
crtc->funcs->atomic_destroy_state(crtc, crtc->state);
@@ -175,7 +175,7 @@ drm_atomic_helper_crtc_duplicate_state(struct drm_crtc *crtc)
if (WARN_ON(!crtc->state))
return NULL;
- state = kmalloc(sizeof(*state), GFP_KERNEL);
+ state = kmalloc_obj(*state, GFP_KERNEL);
if (state)
__drm_atomic_helper_crtc_duplicate_state(crtc, state);
@@ -333,7 +333,7 @@ void drm_atomic_helper_plane_reset(struct drm_plane *plane)
__drm_atomic_helper_plane_destroy_state(plane->state);
kfree(plane->state);
- plane->state = kzalloc(sizeof(*plane->state), GFP_KERNEL);
+ plane->state = kzalloc_obj(*plane->state, GFP_KERNEL);
if (plane->state)
__drm_atomic_helper_plane_reset(plane, plane->state);
}
@@ -377,7 +377,7 @@ drm_atomic_helper_plane_duplicate_state(struct drm_plane *plane)
if (WARN_ON(!plane->state))
return NULL;
- state = kmalloc(sizeof(*state), GFP_KERNEL);
+ state = kmalloc_obj(*state, GFP_KERNEL);
if (state)
__drm_atomic_helper_plane_duplicate_state(plane, state);
@@ -473,8 +473,8 @@ EXPORT_SYMBOL(__drm_atomic_helper_connector_reset);
*/
void drm_atomic_helper_connector_reset(struct drm_connector *connector)
{
- struct drm_connector_state *conn_state =
- kzalloc(sizeof(*conn_state), GFP_KERNEL);
+ struct drm_connector_state *conn_state = kzalloc_obj(*conn_state,
+ GFP_KERNEL);
if (connector->state)
__drm_atomic_helper_connector_destroy_state(connector->state);
@@ -666,7 +666,7 @@ drm_atomic_helper_connector_duplicate_state(struct drm_connector *connector)
if (WARN_ON(!connector->state))
return NULL;
- state = kmalloc(sizeof(*state), GFP_KERNEL);
+ state = kmalloc_obj(*state, GFP_KERNEL);
if (state)
__drm_atomic_helper_connector_duplicate_state(connector, state);
@@ -763,7 +763,7 @@ drm_atomic_helper_bridge_duplicate_state(struct drm_bridge *bridge)
if (WARN_ON(!bridge->base.state))
return NULL;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (new)
__drm_atomic_helper_bridge_duplicate_state(bridge, new);
@@ -821,7 +821,7 @@ drm_atomic_helper_bridge_reset(struct drm_bridge *bridge)
{
struct drm_bridge_state *bridge_state;
- bridge_state = kzalloc(sizeof(*bridge_state), GFP_KERNEL);
+ bridge_state = kzalloc_obj(*bridge_state, GFP_KERNEL);
if (!bridge_state)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c
index dc013a22bf26..ac2175f5e5b0 100644
--- a/drivers/gpu/drm/drm_atomic_uapi.c
+++ b/drivers/gpu/drm/drm_atomic_uapi.c
@@ -1088,7 +1088,7 @@ static struct drm_pending_vblank_event *create_vblank_event(
{
struct drm_pending_vblank_event *e = NULL;
- e = kzalloc(sizeof *e, GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e)
return NULL;
diff --git a/drivers/gpu/drm/drm_auth.c b/drivers/gpu/drm/drm_auth.c
index a2556d16bed6..d9d984ae62c4 100644
--- a/drivers/gpu/drm/drm_auth.c
+++ b/drivers/gpu/drm/drm_auth.c
@@ -132,7 +132,7 @@ struct drm_master *drm_master_create(struct drm_device *dev)
{
struct drm_master *master;
- master = kzalloc(sizeof(*master), GFP_KERNEL);
+ master = kzalloc_obj(*master, GFP_KERNEL);
if (!master)
return NULL;
diff --git a/drivers/gpu/drm/drm_blend.c b/drivers/gpu/drm/drm_blend.c
index 6852d73c931c..9a81992b04e9 100644
--- a/drivers/gpu/drm/drm_blend.c
+++ b/drivers/gpu/drm/drm_blend.c
@@ -459,7 +459,7 @@ static int drm_atomic_helper_crtc_normalize_zpos(struct drm_crtc *crtc,
drm_dbg_atomic(dev, "[CRTC:%d:%s] calculating normalized zpos values\n",
crtc->base.id, crtc->name);
- states = kmalloc_array(total_planes, sizeof(*states), GFP_KERNEL);
+ states = kmalloc_objs(*states, total_planes, GFP_KERNEL);
if (!states)
return -ENOMEM;
diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c
index 3b165a0d1e77..5518760a88c1 100644
--- a/drivers/gpu/drm/drm_bridge.c
+++ b/drivers/gpu/drm/drm_bridge.c
@@ -1189,7 +1189,7 @@ drm_atomic_bridge_chain_select_bus_fmts(struct drm_bridge *bridge,
return -ENOMEM;
} else {
num_out_bus_fmts = 1;
- out_bus_fmts = kmalloc(sizeof(*out_bus_fmts), GFP_KERNEL);
+ out_bus_fmts = kmalloc_obj(*out_bus_fmts, GFP_KERNEL);
if (!out_bus_fmts)
return -ENOMEM;
diff --git a/drivers/gpu/drm/drm_buddy.c b/drivers/gpu/drm/drm_buddy.c
index fd34d3755f7c..0562e7235dec 100644
--- a/drivers/gpu/drm/drm_buddy.c
+++ b/drivers/gpu/drm/drm_buddy.c
@@ -320,16 +320,14 @@ int drm_buddy_init(struct drm_buddy *mm, u64 size, u64 chunk_size)
BUG_ON(mm->max_order > DRM_BUDDY_MAX_ORDER);
- mm->free_trees = kmalloc_array(DRM_BUDDY_MAX_FREE_TREES,
- sizeof(*mm->free_trees),
- GFP_KERNEL);
+ mm->free_trees = kmalloc_objs(*mm->free_trees, DRM_BUDDY_MAX_FREE_TREES,
+ GFP_KERNEL);
if (!mm->free_trees)
return -ENOMEM;
for_each_free_tree(i) {
- mm->free_trees[i] = kmalloc_array(mm->max_order + 1,
- sizeof(struct rb_root),
- GFP_KERNEL);
+ mm->free_trees[i] = kmalloc_objs(struct rb_root,
+ mm->max_order + 1, GFP_KERNEL);
if (!mm->free_trees[i])
goto out_free_tree;
@@ -339,9 +337,8 @@ int drm_buddy_init(struct drm_buddy *mm, u64 size, u64 chunk_size)
mm->n_roots = hweight64(size);
- mm->roots = kmalloc_array(mm->n_roots,
- sizeof(struct drm_buddy_block *),
- GFP_KERNEL);
+ mm->roots = kmalloc_objs(struct drm_buddy_block *, mm->n_roots,
+ GFP_KERNEL);
if (!mm->roots)
goto out_free_tree;
diff --git a/drivers/gpu/drm/drm_client.c b/drivers/gpu/drm/drm_client.c
index a82d741e6630..0e6f4b73827d 100644
--- a/drivers/gpu/drm/drm_client.c
+++ b/drivers/gpu/drm/drm_client.c
@@ -225,7 +225,7 @@ drm_client_buffer_create(struct drm_client_dev *client, u32 width, u32 height,
struct drm_framebuffer *fb;
int ret;
- buffer = kzalloc(sizeof(*buffer), GFP_KERNEL);
+ buffer = kzalloc_obj(*buffer, GFP_KERNEL);
if (!buffer)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c
index fc4caf7da5fc..fce35c27b361 100644
--- a/drivers/gpu/drm/drm_client_modeset.c
+++ b/drivers/gpu/drm/drm_client_modeset.c
@@ -44,7 +44,8 @@ int drm_client_modeset_create(struct drm_client_dev *client)
int i = 0;
/* Add terminating zero entry to enable index less iteration */
- client->modesets = kcalloc(num_crtc + 1, sizeof(*client->modesets), GFP_KERNEL);
+ client->modesets = kzalloc_objs(*client->modesets, num_crtc + 1,
+ GFP_KERNEL);
if (!client->modesets)
return -ENOMEM;
@@ -58,8 +59,9 @@ int drm_client_modeset_create(struct drm_client_dev *client)
max_connector_count = DRM_CLIENT_MAX_CLONED_CONNECTORS;
for (modeset = client->modesets; modeset->crtc; modeset++) {
- modeset->connectors = kcalloc(max_connector_count,
- sizeof(*modeset->connectors), GFP_KERNEL);
+ modeset->connectors = kzalloc_objs(*modeset->connectors,
+ max_connector_count,
+ GFP_KERNEL);
if (!modeset->connectors)
goto err_free;
}
@@ -565,7 +567,7 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client,
if (modes[n] == NULL)
return best_score;
- crtcs = kcalloc(connector_count, sizeof(*crtcs), GFP_KERNEL);
+ crtcs = kzalloc_objs(*crtcs, connector_count, GFP_KERNEL);
if (!crtcs)
return best_score;
@@ -641,7 +643,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client,
if (drm_WARN_ON(dev, count <= 0))
return false;
- save_enabled = kcalloc(count, sizeof(bool), GFP_KERNEL);
+ save_enabled = kzalloc_objs(bool, count, GFP_KERNEL);
if (!save_enabled)
return false;
@@ -853,10 +855,10 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width,
if (!connector_count)
return 0;
- crtcs = kcalloc(connector_count, sizeof(*crtcs), GFP_KERNEL);
- modes = kcalloc(connector_count, sizeof(*modes), GFP_KERNEL);
- offsets = kcalloc(connector_count, sizeof(*offsets), GFP_KERNEL);
- enabled = kcalloc(connector_count, sizeof(bool), GFP_KERNEL);
+ crtcs = kzalloc_objs(*crtcs, connector_count, GFP_KERNEL);
+ modes = kzalloc_objs(*modes, connector_count, GFP_KERNEL);
+ offsets = kzalloc_objs(*offsets, connector_count, GFP_KERNEL);
+ enabled = kzalloc_objs(bool, connector_count, GFP_KERNEL);
if (!crtcs || !modes || !enabled || !offsets) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/gpu/drm/drm_colorop.c b/drivers/gpu/drm/drm_colorop.c
index 44eb823585d2..2f3cd856df03 100644
--- a/drivers/gpu/drm/drm_colorop.c
+++ b/drivers/gpu/drm/drm_colorop.c
@@ -453,7 +453,7 @@ drm_atomic_helper_colorop_duplicate_state(struct drm_colorop *colorop)
if (WARN_ON(!colorop->state))
return NULL;
- state = kmalloc(sizeof(*state), GFP_KERNEL);
+ state = kmalloc_obj(*state, GFP_KERNEL);
if (state)
__drm_atomic_helper_colorop_duplicate_state(colorop, state);
@@ -514,7 +514,7 @@ static void __drm_colorop_reset(struct drm_colorop *colorop,
void drm_colorop_reset(struct drm_colorop *colorop)
{
kfree(colorop->state);
- colorop->state = kzalloc(sizeof(*colorop->state), GFP_KERNEL);
+ colorop->state = kzalloc_obj(*colorop->state, GFP_KERNEL);
if (colorop->state)
__drm_colorop_reset(colorop, colorop->state);
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index 4f5b27fab475..7528c848ccfb 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -3605,7 +3605,7 @@ struct drm_tile_group *drm_mode_create_tile_group(struct drm_device *dev,
struct drm_tile_group *tg;
int ret;
- tg = kzalloc(sizeof(*tg), GFP_KERNEL);
+ tg = kzalloc_obj(*tg, GFP_KERNEL);
if (!tg)
return NULL;
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index a7797d260f1e..f24b5593b613 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -185,7 +185,7 @@ struct dma_fence *drm_crtc_create_fence(struct drm_crtc *crtc)
{
struct dma_fence *fence;
- fence = kzalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kzalloc_obj(*fence, GFP_KERNEL);
if (!fence)
return NULL;
@@ -845,9 +845,9 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
goto out;
}
- connector_set = kmalloc_array(crtc_req->count_connectors,
- sizeof(struct drm_connector *),
- GFP_KERNEL);
+ connector_set = kmalloc_objs(struct drm_connector *,
+ crtc_req->count_connectors,
+ GFP_KERNEL);
if (!connector_set) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
index 39497493f74c..75b3cf9c1a32 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -602,13 +602,15 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set,
* Allocate space for the backup of all (non-pointer) encoder and
* connector data.
*/
- save_encoder_crtcs = kcalloc(dev->mode_config.num_encoder,
- sizeof(struct drm_crtc *), GFP_KERNEL);
+ save_encoder_crtcs = kzalloc_objs(struct drm_crtc *,
+ dev->mode_config.num_encoder,
+ GFP_KERNEL);
if (!save_encoder_crtcs)
return -ENOMEM;
- save_connector_encoders = kcalloc(dev->mode_config.num_connector,
- sizeof(struct drm_encoder *), GFP_KERNEL);
+ save_connector_encoders = kzalloc_objs(struct drm_encoder *,
+ dev->mode_config.num_connector,
+ GFP_KERNEL);
if (!save_connector_encoders) {
kfree(save_encoder_crtcs);
return -ENOMEM;
diff --git a/drivers/gpu/drm/drm_damage_helper.c b/drivers/gpu/drm/drm_damage_helper.c
index 6a49e7a0ab84..928cccac527e 100644
--- a/drivers/gpu/drm/drm_damage_helper.c
+++ b/drivers/gpu/drm/drm_damage_helper.c
@@ -140,7 +140,7 @@ int drm_atomic_helper_dirtyfb(struct drm_framebuffer *fb,
num_clips /= 2;
}
- rects = kcalloc(num_clips, sizeof(*rects), GFP_KERNEL);
+ rects = kzalloc_objs(*rects, num_clips, GFP_KERNEL);
if (!rects) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/gpu/drm/drm_debugfs_crc.c b/drivers/gpu/drm/drm_debugfs_crc.c
index 6b43b1cf2327..835deddcc538 100644
--- a/drivers/gpu/drm/drm_debugfs_crc.c
+++ b/drivers/gpu/drm/drm_debugfs_crc.c
@@ -224,7 +224,7 @@ static int crtc_crc_open(struct inode *inode, struct file *filep)
if (WARN_ON(values_cnt == 0))
return -EINVAL;
- entries = kcalloc(DRM_CRC_ENTRIES_NR, sizeof(*entries), GFP_KERNEL);
+ entries = kzalloc_objs(*entries, DRM_CRC_ENTRIES_NR, GFP_KERNEL);
if (!entries)
return -ENOMEM;
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 26bb7710a462..d248d2b295a0 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -2503,7 +2503,7 @@ static const struct drm_edid *_drm_edid_alloc(const void *edid, size_t size)
if (!edid || !size || size < EDID_LENGTH)
return NULL;
- drm_edid = kzalloc(sizeof(*drm_edid), GFP_KERNEL);
+ drm_edid = kzalloc_obj(*drm_edid, GFP_KERNEL);
if (drm_edid) {
drm_edid->edid = edid;
drm_edid->size = size;
@@ -5764,7 +5764,7 @@ static int _drm_edid_to_sad(const struct drm_edid *drm_edid,
int i;
count = cea_db_payload_len(db) / 3; /* SAD is 3B */
- sads = kcalloc(count, sizeof(*sads), GFP_KERNEL);
+ sads = kzalloc_objs(*sads, count, GFP_KERNEL);
*psads = sads;
if (!sads)
return -ENOMEM;
diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c
index be5e617ceb9f..608763984794 100644
--- a/drivers/gpu/drm/drm_file.c
+++ b/drivers/gpu/drm/drm_file.c
@@ -136,7 +136,7 @@ struct drm_file *drm_file_alloc(struct drm_minor *minor)
struct drm_file *file;
int ret;
- file = kzalloc(sizeof(*file), GFP_KERNEL);
+ file = kzalloc_obj(*file, GFP_KERNEL);
if (!file)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/drm_flip_work.c b/drivers/gpu/drm/drm_flip_work.c
index f5889dd8e7aa..52c437746d48 100644
--- a/drivers/gpu/drm/drm_flip_work.c
+++ b/drivers/gpu/drm/drm_flip_work.c
@@ -37,7 +37,7 @@ static struct drm_flip_task *drm_flip_work_allocate_task(void *data, gfp_t flags
{
struct drm_flip_task *task;
- task = kzalloc(sizeof(*task), flags);
+ task = kzalloc_obj(*task, flags);
if (task)
task->data = data;
diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c
index 18e753ade001..45963ff2192c 100644
--- a/drivers/gpu/drm/drm_framebuffer.c
+++ b/drivers/gpu/drm/drm_framebuffer.c
@@ -747,7 +747,7 @@ int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
ret = -EINVAL;
goto out_err1;
}
- clips = kcalloc(num_clips, sizeof(*clips), GFP_KERNEL);
+ clips = kzalloc_objs(*clips, num_clips, GFP_KERNEL);
if (!clips) {
ret = -ENOMEM;
goto out_err1;
diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
index f7094c4aa97a..4eb96aa589a1 100644
--- a/drivers/gpu/drm/drm_gem.c
+++ b/drivers/gpu/drm/drm_gem.c
@@ -684,7 +684,7 @@ struct page **drm_gem_get_pages(struct drm_gem_object *obj)
npages = obj->size >> PAGE_SHIFT;
- pages = kvmalloc_array(npages, sizeof(struct page *), GFP_KERNEL);
+ pages = kvmalloc_objs(struct page *, npages, GFP_KERNEL);
if (pages == NULL)
return ERR_PTR(-ENOMEM);
@@ -832,7 +832,7 @@ int drm_gem_objects_lookup(struct drm_file *filp, void __user *bo_handles,
if (!count)
return 0;
- objs = kvmalloc_array(count, sizeof(struct drm_gem_object *),
+ objs = kvmalloc_objs(struct drm_gem_object *, count,
GFP_KERNEL | __GFP_ZERO);
if (!objs)
return -ENOMEM;
diff --git a/drivers/gpu/drm/drm_gem_atomic_helper.c b/drivers/gpu/drm/drm_gem_atomic_helper.c
index 569d41a65a0b..fa43e586eb49 100644
--- a/drivers/gpu/drm/drm_gem_atomic_helper.c
+++ b/drivers/gpu/drm/drm_gem_atomic_helper.c
@@ -256,7 +256,8 @@ drm_gem_duplicate_shadow_plane_state(struct drm_plane *plane)
if (!plane_state)
return NULL;
- new_shadow_plane_state = kzalloc(sizeof(*new_shadow_plane_state), GFP_KERNEL);
+ new_shadow_plane_state = kzalloc_obj(*new_shadow_plane_state,
+ GFP_KERNEL);
if (!new_shadow_plane_state)
return NULL;
__drm_gem_duplicate_shadow_plane_state(plane, new_shadow_plane_state);
@@ -337,7 +338,7 @@ void drm_gem_reset_shadow_plane(struct drm_plane *plane)
plane->state = NULL; /* must be set to NULL here */
}
- shadow_plane_state = kzalloc(sizeof(*shadow_plane_state), GFP_KERNEL);
+ shadow_plane_state = kzalloc_obj(*shadow_plane_state, GFP_KERNEL);
__drm_gem_reset_shadow_plane(plane, shadow_plane_state);
}
EXPORT_SYMBOL(drm_gem_reset_shadow_plane);
diff --git a/drivers/gpu/drm/drm_gem_dma_helper.c b/drivers/gpu/drm/drm_gem_dma_helper.c
index eb56ba234796..ffcdf733984f 100644
--- a/drivers/gpu/drm/drm_gem_dma_helper.c
+++ b/drivers/gpu/drm/drm_gem_dma_helper.c
@@ -82,7 +82,7 @@ __drm_gem_dma_create(struct drm_device *drm, size_t size, bool private)
return ERR_CAST(gem_obj);
dma_obj = to_drm_gem_dma_obj(gem_obj);
} else {
- dma_obj = kzalloc(sizeof(*dma_obj), GFP_KERNEL);
+ dma_obj = kzalloc_obj(*dma_obj, GFP_KERNEL);
if (!dma_obj)
return ERR_PTR(-ENOMEM);
gem_obj = &dma_obj->base;
@@ -428,7 +428,7 @@ struct sg_table *drm_gem_dma_get_sg_table(struct drm_gem_dma_object *dma_obj)
struct sg_table *sgt;
int ret;
- sgt = kzalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kzalloc_obj(*sgt, GFP_KERNEL);
if (!sgt)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
index 9fd4eb02a20f..e8b81ea55878 100644
--- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
+++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
@@ -238,7 +238,7 @@ drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
struct drm_framebuffer *fb;
int ret;
- fb = kzalloc(sizeof(*fb), GFP_KERNEL);
+ fb = kzalloc_obj(*fb, GFP_KERNEL);
if (!fb)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/drm_gem_shmem_helper.c b/drivers/gpu/drm/drm_gem_shmem_helper.c
index 3871a6d92f77..4acc632e73b1 100644
--- a/drivers/gpu/drm/drm_gem_shmem_helper.c
+++ b/drivers/gpu/drm/drm_gem_shmem_helper.c
@@ -127,7 +127,7 @@ __drm_gem_shmem_create(struct drm_device *dev, size_t size, bool private)
return ERR_CAST(obj);
shmem = to_drm_gem_shmem_obj(obj);
} else {
- shmem = kzalloc(sizeof(*shmem), GFP_KERNEL);
+ shmem = kzalloc_obj(*shmem, GFP_KERNEL);
if (!shmem)
return ERR_PTR(-ENOMEM);
obj = &shmem->base;
diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c b/drivers/gpu/drm/drm_gem_vram_helper.c
index 5e5b70518dbe..27ceae40cfe3 100644
--- a/drivers/gpu/drm/drm_gem_vram_helper.c
+++ b/drivers/gpu/drm/drm_gem_vram_helper.c
@@ -197,7 +197,7 @@ struct drm_gem_vram_object *drm_gem_vram_create(struct drm_device *dev,
return ERR_CAST(gem);
gbo = drm_gem_vram_of_gem(gem);
} else {
- gbo = kzalloc(sizeof(*gbo), GFP_KERNEL);
+ gbo = kzalloc_obj(*gbo, GFP_KERNEL);
if (!gbo)
return ERR_PTR(-ENOMEM);
gem = &gbo->bo.base;
@@ -721,7 +721,7 @@ static struct ttm_tt *bo_driver_ttm_tt_create(struct ttm_buffer_object *bo,
struct ttm_tt *tt;
int ret;
- tt = kzalloc(sizeof(*tt), GFP_KERNEL);
+ tt = kzalloc_obj(*tt, GFP_KERNEL);
if (!tt)
return NULL;
@@ -890,7 +890,7 @@ static struct drm_vram_mm *drm_vram_helper_alloc_mm(struct drm_device *dev, uint
if (WARN_ON(dev->vram_mm))
return dev->vram_mm;
- dev->vram_mm = kzalloc(sizeof(*dev->vram_mm), GFP_KERNEL);
+ dev->vram_mm = kzalloc_obj(*dev->vram_mm, GFP_KERNEL);
if (!dev->vram_mm)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/drm_gpusvm.c b/drivers/gpu/drm/drm_gpusvm.c
index a799447a7575..7570a0e05450 100644
--- a/drivers/gpu/drm/drm_gpusvm.c
+++ b/drivers/gpu/drm/drm_gpusvm.c
@@ -522,7 +522,7 @@ drm_gpusvm_notifier_alloc(struct drm_gpusvm *gpusvm, unsigned long fault_addr)
if (gpusvm->ops->notifier_alloc)
notifier = gpusvm->ops->notifier_alloc();
else
- notifier = kzalloc(sizeof(*notifier), GFP_KERNEL);
+ notifier = kzalloc_obj(*notifier, GFP_KERNEL);
if (!notifier)
return ERR_PTR(-ENOMEM);
@@ -629,7 +629,7 @@ drm_gpusvm_range_alloc(struct drm_gpusvm *gpusvm,
if (gpusvm->ops->range_alloc)
range = gpusvm->ops->range_alloc(gpusvm);
else
- range = kzalloc(sizeof(*range), GFP_KERNEL);
+ range = kzalloc_obj(*range, GFP_KERNEL);
if (!range)
return ERR_PTR(-ENOMEM);
@@ -1471,7 +1471,7 @@ int drm_gpusvm_get_pages(struct drm_gpusvm *gpusvm,
/* Unlock and restart mapping to allocate memory. */
drm_gpusvm_notifier_unlock(gpusvm);
svm_pages->dma_addr =
- kvmalloc_array(npages, sizeof(*svm_pages->dma_addr), GFP_KERNEL);
+ kvmalloc_objs(*svm_pages->dma_addr, npages, GFP_KERNEL);
if (!svm_pages->dma_addr) {
err = -ENOMEM;
goto err_free;
diff --git a/drivers/gpu/drm/drm_gpuvm.c b/drivers/gpu/drm/drm_gpuvm.c
index 14469765a780..9d2f4ae8cc9d 100644
--- a/drivers/gpu/drm/drm_gpuvm.c
+++ b/drivers/gpu/drm/drm_gpuvm.c
@@ -1060,7 +1060,7 @@ drm_gpuvm_resv_object_alloc(struct drm_device *drm)
{
struct drm_gem_object *obj;
- obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ obj = kzalloc_obj(*obj, GFP_KERNEL);
if (!obj)
return NULL;
@@ -1581,7 +1581,7 @@ drm_gpuvm_bo_create(struct drm_gpuvm *gpuvm,
if (ops && ops->vm_bo_alloc)
vm_bo = ops->vm_bo_alloc();
else
- vm_bo = kzalloc(sizeof(*vm_bo), GFP_KERNEL);
+ vm_bo = kzalloc_obj(*vm_bo, GFP_KERNEL);
if (unlikely(!vm_bo))
return NULL;
@@ -2852,7 +2852,7 @@ gpuva_op_alloc(struct drm_gpuvm *gpuvm)
if (fn && fn->op_alloc)
op = fn->op_alloc();
else
- op = kzalloc(sizeof(*op), GFP_KERNEL);
+ op = kzalloc_obj(*op, GFP_KERNEL);
if (unlikely(!op))
return NULL;
@@ -2946,7 +2946,7 @@ __drm_gpuvm_sm_map_ops_create(struct drm_gpuvm *gpuvm,
} args;
int ret;
- ops = kzalloc(sizeof(*ops), GFP_KERNEL);
+ ops = kzalloc_obj(*ops, GFP_KERNEL);
if (unlikely(!ops))
return ERR_PTR(-ENOMEM);
@@ -3080,7 +3080,7 @@ drm_gpuvm_sm_unmap_ops_create(struct drm_gpuvm *gpuvm,
} args;
int ret;
- ops = kzalloc(sizeof(*ops), GFP_KERNEL);
+ ops = kzalloc_obj(*ops, GFP_KERNEL);
if (unlikely(!ops))
return ERR_PTR(-ENOMEM);
@@ -3130,7 +3130,7 @@ drm_gpuvm_prefetch_ops_create(struct drm_gpuvm *gpuvm,
u64 end = addr + range;
int ret;
- ops = kzalloc(sizeof(*ops), GFP_KERNEL);
+ ops = kzalloc_obj(*ops, GFP_KERNEL);
if (!ops)
return ERR_PTR(-ENOMEM);
@@ -3184,7 +3184,7 @@ drm_gpuvm_bo_unmap_ops_create(struct drm_gpuvm_bo *vm_bo)
drm_gem_gpuva_assert_lock_held(vm_bo->vm, vm_bo->obj);
- ops = kzalloc(sizeof(*ops), GFP_KERNEL);
+ ops = kzalloc_obj(*ops, GFP_KERNEL);
if (!ops)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/drm_lease.c b/drivers/gpu/drm/drm_lease.c
index 94375c6a5425..f0a5cef17164 100644
--- a/drivers/gpu/drm/drm_lease.c
+++ b/drivers/gpu/drm/drm_lease.c
@@ -386,8 +386,8 @@ static int fill_object_idr(struct drm_device *dev,
int ret;
bool universal_planes = READ_ONCE(lessor_priv->universal_planes);
- objects = kcalloc(object_count, sizeof(struct drm_mode_object *),
- GFP_KERNEL);
+ objects = kzalloc_objs(struct drm_mode_object *, object_count,
+ GFP_KERNEL);
if (!objects)
return -ENOMEM;
diff --git a/drivers/gpu/drm/drm_mipi_dsi.c b/drivers/gpu/drm/drm_mipi_dsi.c
index a712e177b350..55542a360adc 100644
--- a/drivers/gpu/drm/drm_mipi_dsi.c
+++ b/drivers/gpu/drm/drm_mipi_dsi.c
@@ -134,7 +134,7 @@ static struct mipi_dsi_device *mipi_dsi_device_alloc(struct mipi_dsi_host *host)
{
struct mipi_dsi_device *dsi;
- dsi = kzalloc(sizeof(*dsi), GFP_KERNEL);
+ dsi = kzalloc_obj(*dsi, GFP_KERNEL);
if (!dsi)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
index e72f855fc495..e1293ef88581 100644
--- a/drivers/gpu/drm/drm_modes.c
+++ b/drivers/gpu/drm/drm_modes.c
@@ -75,7 +75,7 @@ struct drm_display_mode *drm_mode_create(struct drm_device *dev)
{
struct drm_display_mode *nmode;
- nmode = kzalloc(sizeof(struct drm_display_mode), GFP_KERNEL);
+ nmode = kzalloc_obj(struct drm_display_mode, GFP_KERNEL);
if (!nmode)
return NULL;
diff --git a/drivers/gpu/drm/drm_modeset_lock.c b/drivers/gpu/drm/drm_modeset_lock.c
index beb91a13a312..2c806b0146d6 100644
--- a/drivers/gpu/drm/drm_modeset_lock.c
+++ b/drivers/gpu/drm/drm_modeset_lock.c
@@ -148,7 +148,7 @@ void drm_modeset_lock_all(struct drm_device *dev)
struct drm_modeset_acquire_ctx *ctx;
int ret;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL | __GFP_NOFAIL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL | __GFP_NOFAIL);
if (WARN_ON(!ctx))
return;
diff --git a/drivers/gpu/drm/drm_pagemap.c b/drivers/gpu/drm/drm_pagemap.c
index 5af518a93192..4e9b5f5f2539 100644
--- a/drivers/gpu/drm/drm_pagemap.c
+++ b/drivers/gpu/drm/drm_pagemap.c
@@ -94,7 +94,7 @@ drm_pagemap_zdd_alloc(struct drm_pagemap *dpagemap)
{
struct drm_pagemap_zdd *zdd;
- zdd = kmalloc(sizeof(*zdd), GFP_KERNEL);
+ zdd = kmalloc_obj(*zdd, GFP_KERNEL);
if (!zdd)
return NULL;
@@ -861,7 +861,7 @@ drm_pagemap_dev_hold(struct drm_pagemap *dpagemap)
struct drm_pagemap_dev_hold *dev_hold;
struct drm_device *drm = dpagemap->drm;
- dev_hold = kzalloc(sizeof(*dev_hold), GFP_KERNEL);
+ dev_hold = kzalloc_obj(*dev_hold, GFP_KERNEL);
if (!dev_hold)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/drm_pagemap_util.c b/drivers/gpu/drm/drm_pagemap_util.c
index c6ae3357c7fb..c53031308308 100644
--- a/drivers/gpu/drm/drm_pagemap_util.c
+++ b/drivers/gpu/drm/drm_pagemap_util.c
@@ -94,7 +94,7 @@ static void drm_pagemap_cache_fini(void *arg)
*/
struct drm_pagemap_cache *drm_pagemap_cache_create_devm(struct drm_pagemap_shrinker *shrinker)
{
- struct drm_pagemap_cache *cache = kzalloc(sizeof(*cache), GFP_KERNEL);
+ struct drm_pagemap_cache *cache = kzalloc_obj(*cache, GFP_KERNEL);
int err;
if (!cache)
@@ -424,7 +424,7 @@ struct drm_pagemap_shrinker *drm_pagemap_shrinker_create_devm(struct drm_device
struct shrinker *shrink;
int err;
- shrinker = kzalloc(sizeof(*shrinker), GFP_KERNEL);
+ shrinker = kzalloc_obj(*shrinker, GFP_KERNEL);
if (!shrinker)
return ERR_PTR(-ENOMEM);
@@ -548,7 +548,7 @@ int drm_pagemap_acquire_owner(struct drm_pagemap_peer *peer,
}
if (!interconnect) {
- owner = kmalloc(sizeof(*owner), GFP_KERNEL);
+ owner = kmalloc_obj(*owner, GFP_KERNEL);
if (!owner) {
mutex_unlock(&owner_list->lock);
return -ENOMEM;
diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
index bed2562bf911..75ec5ca579b0 100644
--- a/drivers/gpu/drm/drm_plane.c
+++ b/drivers/gpu/drm/drm_plane.c
@@ -1514,7 +1514,7 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
}
if (page_flip->flags & DRM_MODE_PAGE_FLIP_EVENT) {
- e = kzalloc(sizeof *e, GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e) {
ret = -ENOMEM;
goto out;
@@ -1844,9 +1844,8 @@ int drm_plane_create_color_pipeline_property(struct drm_plane *plane,
int len = 0;
int i;
- all_pipelines = kcalloc(num_pipelines + 1,
- sizeof(*all_pipelines),
- GFP_KERNEL);
+ all_pipelines = kzalloc_objs(*all_pipelines, num_pipelines + 1,
+ GFP_KERNEL);
if (!all_pipelines) {
drm_err(plane->dev, "failed to allocate color pipeline\n");
diff --git a/drivers/gpu/drm/drm_plane_helper.c b/drivers/gpu/drm/drm_plane_helper.c
index 747d248aaf02..802ddbb7aa88 100644
--- a/drivers/gpu/drm/drm_plane_helper.c
+++ b/drivers/gpu/drm/drm_plane_helper.c
@@ -217,8 +217,8 @@ int drm_plane_helper_update_primary(struct drm_plane *plane, struct drm_crtc *cr
/* Find current connectors for CRTC */
num_connectors = get_connectors_for_crtc(crtc, NULL, 0);
BUG_ON(num_connectors == 0);
- connector_list = kcalloc(num_connectors, sizeof(*connector_list),
- GFP_KERNEL);
+ connector_list = kzalloc_objs(*connector_list, num_connectors,
+ GFP_KERNEL);
if (!connector_list)
return -ENOMEM;
get_connectors_for_crtc(crtc, connector_list, num_connectors);
diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c
index 21809a82187b..ad09be486ea0 100644
--- a/drivers/gpu/drm/drm_prime.c
+++ b/drivers/gpu/drm/drm_prime.c
@@ -100,7 +100,7 @@ int drm_prime_add_buf_handle(struct drm_prime_file_private *prime_fpriv,
struct drm_prime_member *member;
struct rb_node **p, *rb;
- member = kmalloc(sizeof(*member), GFP_KERNEL);
+ member = kmalloc_obj(*member, GFP_KERNEL);
if (!member)
return -ENOMEM;
@@ -780,8 +780,8 @@ int drm_gem_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma)
return 0;
}
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
- fil = kzalloc(sizeof(*fil), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
+ fil = kzalloc_obj(*fil, GFP_KERNEL);
if (!priv || !fil) {
ret = -ENOMEM;
goto out;
@@ -854,7 +854,7 @@ struct sg_table *drm_prime_pages_to_sg(struct drm_device *dev,
size_t max_segment = 0;
int err;
- sg = kmalloc(sizeof(struct sg_table), GFP_KERNEL);
+ sg = kmalloc_obj(struct sg_table, GFP_KERNEL);
if (!sg)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/drm_privacy_screen.c b/drivers/gpu/drm/drm_privacy_screen.c
index 8959f7084e0b..d9d0c5a38ffd 100644
--- a/drivers/gpu/drm/drm_privacy_screen.c
+++ b/drivers/gpu/drm/drm_privacy_screen.c
@@ -395,7 +395,7 @@ struct drm_privacy_screen *drm_privacy_screen_register(
struct drm_privacy_screen *priv;
int ret;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/drm_property.c b/drivers/gpu/drm/drm_property.c
index 540cd41d8368..fb8a23832c37 100644
--- a/drivers/gpu/drm/drm_property.c
+++ b/drivers/gpu/drm/drm_property.c
@@ -107,7 +107,7 @@ struct drm_property *drm_property_create(struct drm_device *dev,
if (WARN_ON(strlen(name) >= DRM_PROP_NAME_LEN))
return NULL;
- property = kzalloc(sizeof(struct drm_property), GFP_KERNEL);
+ property = kzalloc_obj(struct drm_property, GFP_KERNEL);
if (!property)
return NULL;
@@ -417,7 +417,7 @@ int drm_property_add_enum(struct drm_property *property,
if (WARN_ON(index >= property->num_values))
return -EINVAL;
- prop_enum = kzalloc(sizeof(struct drm_property_enum), GFP_KERNEL);
+ prop_enum = kzalloc_obj(struct drm_property_enum, GFP_KERNEL);
if (!prop_enum)
return -ENOMEM;
diff --git a/drivers/gpu/drm/drm_self_refresh_helper.c b/drivers/gpu/drm/drm_self_refresh_helper.c
index c0948586b7fd..294343259f8a 100644
--- a/drivers/gpu/drm/drm_self_refresh_helper.c
+++ b/drivers/gpu/drm/drm_self_refresh_helper.c
@@ -238,7 +238,7 @@ int drm_self_refresh_helper_init(struct drm_crtc *crtc)
if (WARN_ON(sr_data))
return -EINVAL;
- sr_data = kzalloc(sizeof(*sr_data), GFP_KERNEL);
+ sr_data = kzalloc_obj(*sr_data, GFP_KERNEL);
if (!sr_data)
return -ENOMEM;
diff --git a/drivers/gpu/drm/drm_suballoc.c b/drivers/gpu/drm/drm_suballoc.c
index 879ea33dbbc4..e44ad39e310c 100644
--- a/drivers/gpu/drm/drm_suballoc.c
+++ b/drivers/gpu/drm/drm_suballoc.c
@@ -329,7 +329,7 @@ drm_suballoc_new(struct drm_suballoc_manager *sa_manager, size_t size,
if (!align)
align = sa_manager->align;
- sa = kmalloc(sizeof(*sa), gfp);
+ sa = kmalloc_obj(*sa, gfp);
if (!sa)
return ERR_PTR(-ENOMEM);
sa->manager = sa_manager;
diff --git a/drivers/gpu/drm/drm_syncobj.c b/drivers/gpu/drm/drm_syncobj.c
index 2d4ab745fdad..bed005abf08e 100644
--- a/drivers/gpu/drm/drm_syncobj.c
+++ b/drivers/gpu/drm/drm_syncobj.c
@@ -557,7 +557,7 @@ int drm_syncobj_create(struct drm_syncobj **out_syncobj, uint32_t flags,
int ret;
struct drm_syncobj *syncobj;
- syncobj = kzalloc(sizeof(struct drm_syncobj), GFP_KERNEL);
+ syncobj = kzalloc_obj(struct drm_syncobj, GFP_KERNEL);
if (!syncobj)
return -ENOMEM;
@@ -1062,7 +1062,7 @@ static signed long drm_syncobj_array_wait_timeout(struct drm_syncobj **syncobjs,
goto err_free_points;
}
- entries = kcalloc(count, sizeof(*entries), GFP_KERNEL);
+ entries = kzalloc_objs(*entries, count, GFP_KERNEL);
if (!entries) {
timeout = -ENOMEM;
goto err_free_points;
@@ -1279,7 +1279,7 @@ static int drm_syncobj_array_find(struct drm_file *file_private,
goto err_free_handles;
}
- syncobjs = kmalloc_array(count_handles, sizeof(*syncobjs), GFP_KERNEL);
+ syncobjs = kmalloc_objs(*syncobjs, count_handles, GFP_KERNEL);
if (syncobjs == NULL) {
ret = -ENOMEM;
goto err_free_handles;
@@ -1485,7 +1485,7 @@ drm_syncobj_eventfd_ioctl(struct drm_device *dev, void *data,
goto err_fdget;
}
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
ret = -ENOMEM;
goto err_kzalloc;
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
index b01ffa4d6509..0dccd5362138 100644
--- a/drivers/gpu/drm/drm_sysfs.c
+++ b/drivers/gpu/drm/drm_sysfs.c
@@ -349,7 +349,7 @@ int drm_sysfs_connector_add(struct drm_connector *connector)
if (connector->kdev)
return 0;
- kdev = kzalloc(sizeof(*kdev), GFP_KERNEL);
+ kdev = kzalloc_obj(*kdev, GFP_KERNEL);
if (!kdev)
return -ENOMEM;
@@ -554,7 +554,7 @@ struct device *drm_sysfs_minor_alloc(struct drm_minor *minor)
struct device *kdev;
int r;
- kdev = kzalloc(sizeof(*kdev), GFP_KERNEL);
+ kdev = kzalloc_obj(*kdev, GFP_KERNEL);
if (!kdev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index 42fe11cc139b..4b196e48c8fe 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -1615,7 +1615,7 @@ static int drm_queue_vblank_event(struct drm_device *dev, unsigned int pipe,
u64 seq;
int ret;
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (e == NULL) {
ret = -ENOMEM;
goto err_put;
@@ -2094,7 +2094,7 @@ int drm_crtc_queue_sequence_ioctl(struct drm_device *dev, void *data,
vblank = drm_crtc_vblank_crtc(crtc);
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (e == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/drm_vma_manager.c b/drivers/gpu/drm/drm_vma_manager.c
index 58659c16874c..7978b6276a6a 100644
--- a/drivers/gpu/drm/drm_vma_manager.c
+++ b/drivers/gpu/drm/drm_vma_manager.c
@@ -253,7 +253,7 @@ static int vma_node_allow(struct drm_vma_offset_node *node,
* unlikely that an open-file is added twice to a single node so we
* don't optimize for this case. OOM is checked below only if the entry
* is actually used. */
- new = kmalloc(sizeof(*entry), GFP_KERNEL);
+ new = kmalloc_obj(*entry, GFP_KERNEL);
write_lock(&node->vm_lock);
diff --git a/drivers/gpu/drm/drm_writeback.c b/drivers/gpu/drm/drm_writeback.c
index 95b8a2e4bda6..7b1dbc0df135 100644
--- a/drivers/gpu/drm/drm_writeback.c
+++ b/drivers/gpu/drm/drm_writeback.c
@@ -422,8 +422,8 @@ int drm_writeback_set_fb(struct drm_connector_state *conn_state,
WARN_ON(conn_state->connector->connector_type != DRM_MODE_CONNECTOR_WRITEBACK);
if (!conn_state->writeback_job) {
- conn_state->writeback_job =
- kzalloc(sizeof(*conn_state->writeback_job), GFP_KERNEL);
+ conn_state->writeback_job = kzalloc_obj(*conn_state->writeback_job,
+ GFP_KERNEL);
if (!conn_state->writeback_job)
return -ENOMEM;
@@ -581,7 +581,7 @@ drm_writeback_get_out_fence(struct drm_writeback_connector *wb_connector)
DRM_MODE_CONNECTOR_WRITEBACK))
return NULL;
- fence = kzalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kzalloc_obj(*fence, GFP_KERNEL);
if (!fence)
return NULL;
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c b/drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c
index 3a221923f15d..57a82526a54f 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c
@@ -33,7 +33,7 @@ etnaviv_cmdbuf_suballoc_new(struct device *dev)
struct etnaviv_cmdbuf_suballoc *suballoc;
int ret;
- suballoc = kzalloc(sizeof(*suballoc), GFP_KERNEL);
+ suballoc = kzalloc_obj(*suballoc, GFP_KERNEL);
if (!suballoc)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_drv.c b/drivers/gpu/drm/etnaviv/etnaviv_drv.c
index bb1b84eecec8..06e76d6d2e47 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_drv.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_drv.c
@@ -66,7 +66,7 @@ static int etnaviv_open(struct drm_device *dev, struct drm_file *file)
struct etnaviv_file_private *ctx;
int ret, i;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -531,7 +531,7 @@ static int etnaviv_bind(struct device *dev)
if (IS_ERR(drm))
return PTR_ERR(drm);
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
dev_err(dev, "failed to allocate private data\n");
ret = -ENOMEM;
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_flop_reset.c b/drivers/gpu/drm/etnaviv/etnaviv_flop_reset.c
index 58d957ee861d..59ea7b9c60b8 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_flop_reset.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_flop_reset.c
@@ -182,8 +182,8 @@ int etnaviv_flop_reset_ppu_init(struct etnaviv_drm_private *priv)
* (input and output image, and shader), we keep this buffer
* for the whole life time the driver is bound
*/
- priv->flop_reset_data_ppu =
- kzalloc(sizeof(*priv->flop_reset_data_ppu), GFP_KERNEL);
+ priv->flop_reset_data_ppu = kzalloc_obj(*priv->flop_reset_data_ppu,
+ GFP_KERNEL);
if (!priv->flop_reset_data_ppu)
return -ENOMEM;
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem.c b/drivers/gpu/drm/etnaviv/etnaviv_gem.c
index 5d8f3b03d4ae..3e330f30eaa2 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gem.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gem.c
@@ -288,7 +288,7 @@ struct etnaviv_vram_mapping *etnaviv_gem_mapping_get(
*/
mapping = etnaviv_gem_get_vram_mapping(etnaviv_obj, NULL);
if (!mapping) {
- mapping = kzalloc(sizeof(*mapping), GFP_KERNEL);
+ mapping = kzalloc_obj(*mapping, GFP_KERNEL);
if (!mapping) {
ret = -ENOMEM;
goto out;
@@ -675,7 +675,7 @@ static int etnaviv_gem_userptr_get_pages(struct etnaviv_gem_object *etnaviv_obj)
if (userptr->mm != current->mm)
return -EPERM;
- pvec = kvmalloc_array(npages, sizeof(struct page *), GFP_KERNEL);
+ pvec = kvmalloc_objs(struct page *, npages, GFP_KERNEL);
if (!pvec)
return -ENOMEM;
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c
index 40a50c60dfff..1d9a4ca5d5e6 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c
@@ -126,7 +126,7 @@ struct drm_gem_object *etnaviv_gem_prime_import_sg_table(struct drm_device *dev,
npages = size / PAGE_SIZE;
etnaviv_obj->sgt = sgt;
- etnaviv_obj->pages = kvmalloc_array(npages, sizeof(struct page *), GFP_KERNEL);
+ etnaviv_obj->pages = kvmalloc_objs(struct page *, npages, GFP_KERNEL);
if (!etnaviv_obj->pages) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
index a9611c1a773f..e3accccf22be 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
@@ -38,8 +38,8 @@ static struct etnaviv_gem_submit *submit_create(struct drm_device *dev,
if (!submit)
return NULL;
- submit->pmrs = kcalloc(nr_pmrs, sizeof(struct etnaviv_perfmon_request),
- GFP_KERNEL);
+ submit->pmrs = kzalloc_objs(struct etnaviv_perfmon_request, nr_pmrs,
+ GFP_KERNEL);
if (!submit->pmrs) {
kfree(submit);
return NULL;
@@ -468,9 +468,9 @@ int etnaviv_ioctl_gem_submit(struct drm_device *dev, void *data,
* Copy the command submission and bo array to kernel space in
* one go, and do this outside of any locks.
*/
- bos = kvmalloc_array(args->nr_bos, sizeof(*bos), GFP_KERNEL);
- relocs = kvmalloc_array(args->nr_relocs, sizeof(*relocs), GFP_KERNEL);
- pmrs = kvmalloc_array(args->nr_pmrs, sizeof(*pmrs), GFP_KERNEL);
+ bos = kvmalloc_objs(*bos, args->nr_bos, GFP_KERNEL);
+ relocs = kvmalloc_objs(*relocs, args->nr_relocs, GFP_KERNEL);
+ pmrs = kvmalloc_objs(*pmrs, args->nr_pmrs, GFP_KERNEL);
stream = kvmalloc_array(1, args->stream_size, GFP_KERNEL);
if (!bos || !relocs || !pmrs || !stream) {
ret = -ENOMEM;
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
index 94326dddaf6f..0d2a2684b2a6 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
@@ -1184,7 +1184,7 @@ static struct dma_fence *etnaviv_gpu_fence_alloc(struct etnaviv_gpu *gpu)
*/
lockdep_assert_held(&gpu->lock);
- f = kzalloc(sizeof(*f), GFP_KERNEL);
+ f = kzalloc_obj(*f, GFP_KERNEL);
if (!f)
return NULL;
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_iommu.c b/drivers/gpu/drm/etnaviv/etnaviv_iommu.c
index afe5dd6a9925..7cb29d6daa90 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_iommu.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_iommu.c
@@ -143,7 +143,7 @@ etnaviv_iommuv1_context_alloc(struct etnaviv_iommu_global *global)
return context;
}
- v1_context = kzalloc(sizeof(*v1_context), GFP_KERNEL);
+ v1_context = kzalloc_obj(*v1_context, GFP_KERNEL);
if (!v1_context) {
mutex_unlock(&global->lock);
return NULL;
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_mmu.c b/drivers/gpu/drm/etnaviv/etnaviv_mmu.c
index a992be2ede88..2ffb18ccde61 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_mmu.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_mmu.c
@@ -494,7 +494,7 @@ int etnaviv_iommu_global_init(struct etnaviv_gpu *gpu)
return 0;
}
- global = kzalloc(sizeof(*global), GFP_KERNEL);
+ global = kzalloc_obj(*global, GFP_KERNEL);
if (!global)
return -ENOMEM;
diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
index d19e796c2061..03ad7dd8bf07 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
@@ -180,7 +180,7 @@ struct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev,
struct drm_crtc *crtc;
int ret;
- exynos_crtc = kzalloc(sizeof(*exynos_crtc), GFP_KERNEL);
+ exynos_crtc = kzalloc_obj(*exynos_crtc, GFP_KERNEL);
if (!exynos_crtc)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index 6cc7bf77bcac..311d5077a2bf 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -50,7 +50,7 @@ static int exynos_drm_open(struct drm_device *dev, struct drm_file *file)
struct drm_exynos_file_private *file_priv;
int ret;
- file_priv = kzalloc(sizeof(*file_priv), GFP_KERNEL);
+ file_priv = kzalloc_obj(*file_priv, GFP_KERNEL);
if (!file_priv)
return -ENOMEM;
@@ -245,7 +245,7 @@ static int exynos_drm_bind(struct device *dev)
if (IS_ERR(drm))
return PTR_ERR(drm);
- private = kzalloc(sizeof(struct exynos_drm_private), GFP_KERNEL);
+ private = kzalloc_obj(struct exynos_drm_private, GFP_KERNEL);
if (!private) {
ret = -ENOMEM;
goto err_free_drm;
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exynos/exynos_drm_fb.c
index 6ecd95bcb0c4..b078295c96e2 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fb.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c
@@ -66,7 +66,7 @@ exynos_drm_framebuffer_init(struct drm_device *dev,
int i;
int ret;
- fb = kzalloc(sizeof(*fb), GFP_KERNEL);
+ fb = kzalloc_obj(*fb, GFP_KERNEL);
if (!fb)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/exynos/exynos_drm_g2d.c b/drivers/gpu/drm/exynos/exynos_drm_g2d.c
index 2bea107dd960..aa70e249f512 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_g2d.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_g2d.c
@@ -287,7 +287,7 @@ static int g2d_init_cmdlist(struct g2d_data *g2d)
return -ENOMEM;
}
- node = kcalloc(G2D_CMDLIST_NUM, sizeof(*node), GFP_KERNEL);
+ node = kzalloc_objs(*node, G2D_CMDLIST_NUM, GFP_KERNEL);
if (!node) {
ret = -ENOMEM;
goto err;
@@ -459,7 +459,7 @@ static dma_addr_t *g2d_userptr_get_dma_addr(struct g2d_data *g2d,
}
}
- g2d_userptr = kzalloc(sizeof(*g2d_userptr), GFP_KERNEL);
+ g2d_userptr = kzalloc_obj(*g2d_userptr, GFP_KERNEL);
if (!g2d_userptr)
return ERR_PTR(-ENOMEM);
@@ -470,8 +470,8 @@ static dma_addr_t *g2d_userptr_get_dma_addr(struct g2d_data *g2d,
offset = userptr & ~PAGE_MASK;
end = PAGE_ALIGN(userptr + size);
npages = (end - start) >> PAGE_SHIFT;
- g2d_userptr->pages = kvmalloc_array(npages, sizeof(*g2d_userptr->pages),
- GFP_KERNEL);
+ g2d_userptr->pages = kvmalloc_objs(*g2d_userptr->pages, npages,
+ GFP_KERNEL);
if (!g2d_userptr->pages) {
ret = -ENOMEM;
goto err_free;
@@ -491,7 +491,7 @@ static dma_addr_t *g2d_userptr_get_dma_addr(struct g2d_data *g2d,
}
g2d_userptr->npages = npages;
- sgt = kzalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kzalloc_obj(*sgt, GFP_KERNEL);
if (!sgt) {
ret = -ENOMEM;
goto err_unpin_pages;
@@ -1169,7 +1169,7 @@ int exynos_g2d_set_cmdlist_ioctl(struct drm_device *drm_dev, void *data,
node->event = NULL;
if (req->event_type != G2D_EVENT_NOT) {
- e = kzalloc(sizeof(*node->event), GFP_KERNEL);
+ e = kzalloc_obj(*node->event, GFP_KERNEL);
if (!e) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c
index b9b2f000072d..8b21623c2075 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_gem.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c
@@ -152,7 +152,7 @@ static struct exynos_drm_gem *exynos_drm_gem_init(struct drm_device *dev,
struct drm_gem_object *obj;
int ret;
- exynos_gem = kzalloc(sizeof(*exynos_gem), GFP_KERNEL);
+ exynos_gem = kzalloc_obj(*exynos_gem, GFP_KERNEL);
if (!exynos_gem)
return ERR_PTR(-ENOMEM);
@@ -411,7 +411,7 @@ struct sg_table *exynos_drm_gem_prime_get_sg_table(struct drm_gem_object *obj)
struct sg_table *sgt;
int ret;
- sgt = kzalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kzalloc_obj(*sgt, GFP_KERNEL);
if (!sgt)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/exynos/exynos_drm_ipp.c b/drivers/gpu/drm/exynos/exynos_drm_ipp.c
index 008def51225a..a4d72e12d1a6 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_ipp.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_ipp.c
@@ -260,7 +260,7 @@ static inline struct exynos_drm_ipp_task *
{
struct exynos_drm_ipp_task *task;
- task = kzalloc(sizeof(*task), GFP_KERNEL);
+ task = kzalloc_obj(*task, GFP_KERNEL);
if (!task)
return NULL;
@@ -699,7 +699,7 @@ static int exynos_drm_ipp_event_create(struct exynos_drm_ipp_task *task,
struct drm_pending_exynos_ipp_event *e = NULL;
int ret;
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e)
return -ENOMEM;
diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c b/drivers/gpu/drm/exynos/exynos_drm_plane.c
index 67afddd566e2..fec9033ec13e 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_plane.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c
@@ -134,7 +134,7 @@ static void exynos_drm_plane_reset(struct drm_plane *plane)
plane->state = NULL;
}
- exynos_state = kzalloc(sizeof(*exynos_state), GFP_KERNEL);
+ exynos_state = kzalloc_obj(*exynos_state, GFP_KERNEL);
if (exynos_state) {
__drm_atomic_helper_plane_reset(plane, &exynos_state->base);
plane->state->zpos = exynos_plane->config->zpos;
@@ -148,7 +148,7 @@ exynos_drm_plane_duplicate_state(struct drm_plane *plane)
struct exynos_drm_plane_state *copy;
exynos_state = to_exynos_plane_state(plane->state);
- copy = kzalloc(sizeof(*exynos_state), GFP_KERNEL);
+ copy = kzalloc_obj(*exynos_state, GFP_KERNEL);
if (!copy)
return NULL;
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c
index a9a341ea6507..7702788003a7 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c
@@ -209,7 +209,7 @@ struct drm_plane *fsl_dcu_drm_primary_create_plane(struct drm_device *dev)
struct drm_plane *primary;
int ret;
- primary = kzalloc(sizeof(*primary), GFP_KERNEL);
+ primary = kzalloc_obj(*primary, GFP_KERNEL);
if (!primary) {
DRM_DEBUG_KMS("Failed to allocate primary plane\n");
return NULL;
diff --git a/drivers/gpu/drm/gma500/cdv_intel_crt.c b/drivers/gpu/drm/gma500/cdv_intel_crt.c
index 06fe7480e7af..df38fefd4722 100644
--- a/drivers/gpu/drm/gma500/cdv_intel_crt.c
+++ b/drivers/gpu/drm/gma500/cdv_intel_crt.c
@@ -250,11 +250,11 @@ void cdv_intel_crt_init(struct drm_device *dev,
struct drm_encoder *encoder;
int ret;
- gma_encoder = kzalloc(sizeof(struct gma_encoder), GFP_KERNEL);
+ gma_encoder = kzalloc_obj(struct gma_encoder, GFP_KERNEL);
if (!gma_encoder)
return;
- gma_connector = kzalloc(sizeof(struct gma_connector), GFP_KERNEL);
+ gma_connector = kzalloc_obj(struct gma_connector, GFP_KERNEL);
if (!gma_connector)
goto err_free_encoder;
diff --git a/drivers/gpu/drm/gma500/cdv_intel_display.c b/drivers/gpu/drm/gma500/cdv_intel_display.c
index 5942a9d46b02..1f6e2f65c33f 100644
--- a/drivers/gpu/drm/gma500/cdv_intel_display.c
+++ b/drivers/gpu/drm/gma500/cdv_intel_display.c
@@ -939,7 +939,7 @@ struct drm_display_mode *cdv_intel_crtc_mode_get(struct drm_device *dev,
vsync = p->vsync;
}
- mode = kzalloc(sizeof(*mode), GFP_KERNEL);
+ mode = kzalloc_obj(*mode, GFP_KERNEL);
if (!mode)
return NULL;
diff --git a/drivers/gpu/drm/gma500/cdv_intel_dp.c b/drivers/gpu/drm/gma500/cdv_intel_dp.c
index 54bf626f0524..4f3fbe31a779 100644
--- a/drivers/gpu/drm/gma500/cdv_intel_dp.c
+++ b/drivers/gpu/drm/gma500/cdv_intel_dp.c
@@ -1953,13 +1953,13 @@ cdv_intel_dp_init(struct drm_device *dev, struct psb_intel_mode_device *mode_dev
const char *name = NULL;
int type = DRM_MODE_CONNECTOR_DisplayPort;
- gma_encoder = kzalloc(sizeof(struct gma_encoder), GFP_KERNEL);
+ gma_encoder = kzalloc_obj(struct gma_encoder, GFP_KERNEL);
if (!gma_encoder)
return;
- gma_connector = kzalloc(sizeof(struct gma_connector), GFP_KERNEL);
+ gma_connector = kzalloc_obj(struct gma_connector, GFP_KERNEL);
if (!gma_connector)
goto err_connector;
- intel_dp = kzalloc(sizeof(struct cdv_intel_dp), GFP_KERNEL);
+ intel_dp = kzalloc_obj(struct cdv_intel_dp, GFP_KERNEL);
if (!intel_dp)
goto err_priv;
diff --git a/drivers/gpu/drm/gma500/cdv_intel_hdmi.c b/drivers/gpu/drm/gma500/cdv_intel_hdmi.c
index 8e93ee0d0ccd..5bfdc7adcaab 100644
--- a/drivers/gpu/drm/gma500/cdv_intel_hdmi.c
+++ b/drivers/gpu/drm/gma500/cdv_intel_hdmi.c
@@ -284,15 +284,15 @@ void cdv_hdmi_init(struct drm_device *dev,
int ddc_reg;
int ret;
- gma_encoder = kzalloc(sizeof(struct gma_encoder), GFP_KERNEL);
+ gma_encoder = kzalloc_obj(struct gma_encoder, GFP_KERNEL);
if (!gma_encoder)
return;
- gma_connector = kzalloc(sizeof(struct gma_connector), GFP_KERNEL);
+ gma_connector = kzalloc_obj(struct gma_connector, GFP_KERNEL);
if (!gma_connector)
goto err_free_encoder;
- hdmi_priv = kzalloc(sizeof(struct mid_intel_hdmi_priv), GFP_KERNEL);
+ hdmi_priv = kzalloc_obj(struct mid_intel_hdmi_priv, GFP_KERNEL);
if (!hdmi_priv)
goto err_free_connector;
diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c
index fbe7fe317393..5b6b0ac77c99 100644
--- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c
+++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c
@@ -501,17 +501,15 @@ void cdv_intel_lvds_init(struct drm_device *dev,
return;
}
- gma_encoder = kzalloc(sizeof(struct gma_encoder),
- GFP_KERNEL);
+ gma_encoder = kzalloc_obj(struct gma_encoder, GFP_KERNEL);
if (!gma_encoder)
return;
- gma_connector = kzalloc(sizeof(struct gma_connector),
- GFP_KERNEL);
+ gma_connector = kzalloc_obj(struct gma_connector, GFP_KERNEL);
if (!gma_connector)
goto err_free_encoder;
- lvds_priv = kzalloc(sizeof(struct cdv_intel_lvds_priv), GFP_KERNEL);
+ lvds_priv = kzalloc_obj(struct cdv_intel_lvds_priv, GFP_KERNEL);
if (!lvds_priv)
goto err_free_connector;
diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
index e69b537ded6b..808feee5fe2a 100644
--- a/drivers/gpu/drm/gma500/framebuffer.c
+++ b/drivers/gpu/drm/gma500/framebuffer.c
@@ -75,7 +75,7 @@ struct drm_framebuffer *psb_framebuffer_create(struct drm_device *dev,
struct drm_framebuffer *fb;
int ret;
- fb = kzalloc(sizeof(*fb), GFP_KERNEL);
+ fb = kzalloc_obj(*fb, GFP_KERNEL);
if (!fb)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/gma500/gem.c b/drivers/gpu/drm/gma500/gem.c
index 2e44a2ac2742..238f0dfafacf 100644
--- a/drivers/gpu/drm/gma500/gem.c
+++ b/drivers/gpu/drm/gma500/gem.c
@@ -146,7 +146,7 @@ psb_gem_create(struct drm_device *dev, u64 size, const char *name, bool stolen,
size = roundup(size, PAGE_SIZE);
- pobj = kzalloc(sizeof(*pobj), GFP_KERNEL);
+ pobj = kzalloc_obj(*pobj, GFP_KERNEL);
if (!pobj)
return ERR_PTR(-ENOMEM);
obj = &pobj->base;
diff --git a/drivers/gpu/drm/gma500/intel_bios.c b/drivers/gpu/drm/gma500/intel_bios.c
index b60720560830..527adf563bfa 100644
--- a/drivers/gpu/drm/gma500/intel_bios.c
+++ b/drivers/gpu/drm/gma500/intel_bios.c
@@ -247,8 +247,7 @@ static void parse_lfp_panel_data(struct drm_psb_private *dev_priv,
entry = &lvds_lfp_data->data[lvds_options->panel_type];
dvo_timing = &entry->dvo_timing;
- panel_fixed_mode = kzalloc(sizeof(*panel_fixed_mode),
- GFP_KERNEL);
+ panel_fixed_mode = kzalloc_obj(*panel_fixed_mode, GFP_KERNEL);
if (panel_fixed_mode == NULL) {
dev_err(dev_priv->dev.dev, "out of memory for fixed panel mode\n");
return;
@@ -286,7 +285,7 @@ static void parse_sdvo_panel_data(struct drm_psb_private *dev_priv,
if (!dvo_timing)
return;
- panel_fixed_mode = kzalloc(sizeof(*panel_fixed_mode), GFP_KERNEL);
+ panel_fixed_mode = kzalloc_obj(*panel_fixed_mode, GFP_KERNEL);
if (!panel_fixed_mode)
return;
@@ -478,7 +477,7 @@ parse_device_mapping(struct drm_psb_private *dev_priv,
DRM_DEBUG_KMS("no child dev is parsed from VBT\n");
return;
}
- dev_priv->child_dev = kcalloc(count, sizeof(*p_child), GFP_KERNEL);
+ dev_priv->child_dev = kzalloc_objs(*p_child, count, GFP_KERNEL);
if (!dev_priv->child_dev) {
DRM_DEBUG_KMS("No memory space for child devices\n");
return;
diff --git a/drivers/gpu/drm/gma500/intel_gmbus.c b/drivers/gpu/drm/gma500/intel_gmbus.c
index 2b06ba22f9c6..04eba78fa816 100644
--- a/drivers/gpu/drm/gma500/intel_gmbus.c
+++ b/drivers/gpu/drm/gma500/intel_gmbus.c
@@ -187,7 +187,7 @@ intel_gpio_create(struct drm_psb_private *dev_priv, u32 pin)
if (pin >= ARRAY_SIZE(map_pin_to_reg) || !map_pin_to_reg[pin])
return NULL;
- gpio = kzalloc(sizeof(struct intel_gpio), GFP_KERNEL);
+ gpio = kzalloc_obj(struct intel_gpio, GFP_KERNEL);
if (gpio == NULL)
return NULL;
@@ -399,8 +399,8 @@ int gma_intel_setup_gmbus(struct drm_device *dev)
struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
int ret, i;
- dev_priv->gmbus = kcalloc(GMBUS_NUM_PORTS, sizeof(struct intel_gmbus),
- GFP_KERNEL);
+ dev_priv->gmbus = kzalloc_objs(struct intel_gmbus, GMBUS_NUM_PORTS,
+ GFP_KERNEL);
if (dev_priv->gmbus == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/gma500/intel_i2c.c b/drivers/gpu/drm/gma500/intel_i2c.c
index 9d02a7b6d9a3..e121c7c27638 100644
--- a/drivers/gpu/drm/gma500/intel_i2c.c
+++ b/drivers/gpu/drm/gma500/intel_i2c.c
@@ -107,7 +107,7 @@ struct gma_i2c_chan *gma_i2c_create(struct drm_device *dev, const u32 reg,
{
struct gma_i2c_chan *chan;
- chan = kzalloc(sizeof(struct gma_i2c_chan), GFP_KERNEL);
+ chan = kzalloc_obj(struct gma_i2c_chan, GFP_KERNEL);
if (!chan)
goto out_free;
diff --git a/drivers/gpu/drm/gma500/mid_bios.c b/drivers/gpu/drm/gma500/mid_bios.c
index 0326f3ddc621..16128e84936a 100644
--- a/drivers/gpu/drm/gma500/mid_bios.c
+++ b/drivers/gpu/drm/gma500/mid_bios.c
@@ -228,7 +228,7 @@ static int mid_get_vbt_data_r10(struct drm_psb_private *dev_priv, u32 addr)
if (read_vbt_r10(addr, &vbt))
return -1;
- gct = kmalloc_array(vbt.panel_count, sizeof(*gct), GFP_KERNEL);
+ gct = kmalloc_objs(*gct, vbt.panel_count, GFP_KERNEL);
if (!gct)
return -ENOMEM;
diff --git a/drivers/gpu/drm/gma500/mmu.c b/drivers/gpu/drm/gma500/mmu.c
index e6753282e70e..7bc6a914a378 100644
--- a/drivers/gpu/drm/gma500/mmu.c
+++ b/drivers/gpu/drm/gma500/mmu.c
@@ -158,7 +158,7 @@ static inline uint32_t psb_mmu_mask_pte(uint32_t pfn, int type)
struct psb_mmu_pd *psb_mmu_alloc_pd(struct psb_mmu_driver *driver,
int trap_pagefaults, int invalid_type)
{
- struct psb_mmu_pd *pd = kmalloc(sizeof(*pd), GFP_KERNEL);
+ struct psb_mmu_pd *pd = kmalloc_obj(*pd, GFP_KERNEL);
uint32_t *v;
int i;
@@ -260,7 +260,7 @@ void psb_mmu_free_pagedir(struct psb_mmu_pd *pd)
static struct psb_mmu_pt *psb_mmu_alloc_pt(struct psb_mmu_pd *pd)
{
- struct psb_mmu_pt *pt = kmalloc(sizeof(*pt), GFP_KERNEL);
+ struct psb_mmu_pt *pt = kmalloc_obj(*pt, GFP_KERNEL);
void *v;
uint32_t clflush_add = pd->driver->clflush_add >> PAGE_SHIFT;
uint32_t clflush_count = PAGE_SIZE / clflush_add;
@@ -425,7 +425,7 @@ struct psb_mmu_driver *psb_mmu_driver_init(struct drm_device *dev,
struct psb_mmu_driver *driver;
struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
- driver = kmalloc(sizeof(*driver), GFP_KERNEL);
+ driver = kmalloc_obj(*driver, GFP_KERNEL);
if (!driver)
return NULL;
diff --git a/drivers/gpu/drm/gma500/oaktrail_hdmi.c b/drivers/gpu/drm/gma500/oaktrail_hdmi.c
index 20d027d552c7..d48c9711e95a 100644
--- a/drivers/gpu/drm/gma500/oaktrail_hdmi.c
+++ b/drivers/gpu/drm/gma500/oaktrail_hdmi.c
@@ -633,11 +633,11 @@ void oaktrail_hdmi_init(struct drm_device *dev,
struct drm_connector *connector;
struct drm_encoder *encoder;
- gma_encoder = kzalloc(sizeof(struct gma_encoder), GFP_KERNEL);
+ gma_encoder = kzalloc_obj(struct gma_encoder, GFP_KERNEL);
if (!gma_encoder)
return;
- gma_connector = kzalloc(sizeof(struct gma_connector), GFP_KERNEL);
+ gma_connector = kzalloc_obj(struct gma_connector, GFP_KERNEL);
if (!gma_connector)
goto failed_connector;
@@ -677,7 +677,7 @@ void oaktrail_hdmi_setup(struct drm_device *dev)
if (!pdev)
return;
- hdmi_dev = kzalloc(sizeof(struct oaktrail_hdmi_dev), GFP_KERNEL);
+ hdmi_dev = kzalloc_obj(struct oaktrail_hdmi_dev, GFP_KERNEL);
if (!hdmi_dev) {
dev_err(dev->dev, "failed to allocate memory\n");
goto out;
diff --git a/drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c b/drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c
index 48e8ac560a2a..7c02a92c60cb 100644
--- a/drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c
+++ b/drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c
@@ -280,7 +280,7 @@ int oaktrail_hdmi_i2c_init(struct pci_dev *dev)
hdmi_dev = pci_get_drvdata(dev);
- i2c_dev = kzalloc(sizeof(struct hdmi_i2c_dev), GFP_KERNEL);
+ i2c_dev = kzalloc_obj(struct hdmi_i2c_dev, GFP_KERNEL);
if (!i2c_dev)
return -ENOMEM;
diff --git a/drivers/gpu/drm/gma500/oaktrail_lvds.c b/drivers/gpu/drm/gma500/oaktrail_lvds.c
index 0705ba3813e6..f6ca1559081d 100644
--- a/drivers/gpu/drm/gma500/oaktrail_lvds.c
+++ b/drivers/gpu/drm/gma500/oaktrail_lvds.c
@@ -223,7 +223,7 @@ static void oaktrail_lvds_get_configuration_mode(struct drm_device *dev,
/* Use the firmware provided data on Moorestown */
if (dev_priv->has_gct) {
- mode = kzalloc(sizeof(*mode), GFP_KERNEL);
+ mode = kzalloc_obj(*mode, GFP_KERNEL);
if (!mode)
return;
@@ -302,11 +302,11 @@ void oaktrail_lvds_init(struct drm_device *dev,
struct drm_display_mode *scan; /* *modes, *bios_mode; */
int ret;
- gma_encoder = kzalloc(sizeof(struct gma_encoder), GFP_KERNEL);
+ gma_encoder = kzalloc_obj(struct gma_encoder, GFP_KERNEL);
if (!gma_encoder)
return;
- gma_connector = kzalloc(sizeof(struct gma_connector), GFP_KERNEL);
+ gma_connector = kzalloc_obj(struct gma_connector, GFP_KERNEL);
if (!gma_connector)
goto err_free_encoder;
diff --git a/drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c b/drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
index 939c53fd09e8..2b5ef15df09f 100644
--- a/drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
+++ b/drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
@@ -135,7 +135,7 @@ struct gma_i2c_chan *oaktrail_lvds_i2c_init(struct drm_device *dev)
struct gma_i2c_chan *chan;
int ret;
- chan = kzalloc(sizeof(struct gma_i2c_chan), GFP_KERNEL);
+ chan = kzalloc_obj(struct gma_i2c_chan, GFP_KERNEL);
if (!chan)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/gma500/psb_intel_display.c b/drivers/gpu/drm/gma500/psb_intel_display.c
index 1ff2bd23db74..2864b209fcdf 100644
--- a/drivers/gpu/drm/gma500/psb_intel_display.c
+++ b/drivers/gpu/drm/gma500/psb_intel_display.c
@@ -404,7 +404,7 @@ struct drm_display_mode *psb_intel_crtc_mode_get(struct drm_device *dev,
vsync = p->vsync;
}
- mode = kzalloc(sizeof(*mode), GFP_KERNEL);
+ mode = kzalloc_obj(*mode, GFP_KERNEL);
if (!mode)
return NULL;
@@ -487,7 +487,7 @@ void psb_intel_crtc_init(struct drm_device *dev, int pipe,
return;
gma_crtc->crtc_state =
- kzalloc(sizeof(struct psb_intel_crtc_state), GFP_KERNEL);
+ kzalloc_obj(struct psb_intel_crtc_state, GFP_KERNEL);
if (!gma_crtc->crtc_state) {
dev_err(dev->dev, "Crtc state error: No memory\n");
kfree(gma_crtc);
diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c
index f8f3c42e67a7..6183360b1a81 100644
--- a/drivers/gpu/drm/gma500/psb_intel_lvds.c
+++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c
@@ -639,20 +639,20 @@ void psb_intel_lvds_init(struct drm_device *dev,
int pipe;
int ret;
- gma_encoder = kzalloc(sizeof(struct gma_encoder), GFP_KERNEL);
+ gma_encoder = kzalloc_obj(struct gma_encoder, GFP_KERNEL);
if (!gma_encoder) {
dev_err(dev->dev, "gma_encoder allocation error\n");
return;
}
encoder = &gma_encoder->base;
- gma_connector = kzalloc(sizeof(struct gma_connector), GFP_KERNEL);
+ gma_connector = kzalloc_obj(struct gma_connector, GFP_KERNEL);
if (!gma_connector) {
dev_err(dev->dev, "gma_connector allocation error\n");
goto err_free_encoder;
}
- lvds_priv = kzalloc(sizeof(struct psb_intel_lvds_priv), GFP_KERNEL);
+ lvds_priv = kzalloc_obj(struct psb_intel_lvds_priv, GFP_KERNEL);
if (!lvds_priv) {
dev_err(dev->dev, "LVDS private allocation error\n");
goto err_free_connector;
diff --git a/drivers/gpu/drm/gma500/psb_intel_sdvo.c b/drivers/gpu/drm/gma500/psb_intel_sdvo.c
index 553e7c7d9bb8..6f973c9044e0 100644
--- a/drivers/gpu/drm/gma500/psb_intel_sdvo.c
+++ b/drivers/gpu/drm/gma500/psb_intel_sdvo.c
@@ -1977,7 +1977,8 @@ psb_intel_sdvo_dvi_init(struct psb_intel_sdvo *psb_intel_sdvo, int device)
struct gma_connector *intel_connector;
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector;
- psb_intel_sdvo_connector = kzalloc(sizeof(struct psb_intel_sdvo_connector), GFP_KERNEL);
+ psb_intel_sdvo_connector = kzalloc_obj(struct psb_intel_sdvo_connector,
+ GFP_KERNEL);
if (!psb_intel_sdvo_connector)
return false;
@@ -2017,7 +2018,8 @@ psb_intel_sdvo_tv_init(struct psb_intel_sdvo *psb_intel_sdvo, int type)
struct gma_connector *intel_connector;
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector;
- psb_intel_sdvo_connector = kzalloc(sizeof(struct psb_intel_sdvo_connector), GFP_KERNEL);
+ psb_intel_sdvo_connector = kzalloc_obj(struct psb_intel_sdvo_connector,
+ GFP_KERNEL);
if (!psb_intel_sdvo_connector)
return false;
@@ -2056,7 +2058,8 @@ psb_intel_sdvo_analog_init(struct psb_intel_sdvo *psb_intel_sdvo, int device)
struct gma_connector *intel_connector;
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector;
- psb_intel_sdvo_connector = kzalloc(sizeof(struct psb_intel_sdvo_connector), GFP_KERNEL);
+ psb_intel_sdvo_connector = kzalloc_obj(struct psb_intel_sdvo_connector,
+ GFP_KERNEL);
if (!psb_intel_sdvo_connector)
return false;
@@ -2090,7 +2093,8 @@ psb_intel_sdvo_lvds_init(struct psb_intel_sdvo *psb_intel_sdvo, int device)
struct gma_connector *intel_connector;
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector;
- psb_intel_sdvo_connector = kzalloc(sizeof(struct psb_intel_sdvo_connector), GFP_KERNEL);
+ psb_intel_sdvo_connector = kzalloc_obj(struct psb_intel_sdvo_connector,
+ GFP_KERNEL);
if (!psb_intel_sdvo_connector)
return false;
@@ -2442,7 +2446,7 @@ bool psb_intel_sdvo_init(struct drm_device *dev, int sdvo_reg)
struct psb_intel_sdvo *psb_intel_sdvo;
int i;
- psb_intel_sdvo = kzalloc(sizeof(struct psb_intel_sdvo), GFP_KERNEL);
+ psb_intel_sdvo = kzalloc_obj(struct psb_intel_sdvo, GFP_KERNEL);
if (!psb_intel_sdvo)
return false;
diff --git a/drivers/gpu/drm/gud/gud_connector.c b/drivers/gpu/drm/gud/gud_connector.c
index 1726a3fadff8..b3d5df5f7a5c 100644
--- a/drivers/gpu/drm/gud/gud_connector.c
+++ b/drivers/gpu/drm/gud/gud_connector.c
@@ -246,7 +246,8 @@ static int gud_connector_get_modes(struct drm_connector *connector)
if (drm_edid && edid_ctx.edid_override)
goto out;
- reqmodes = kmalloc_array(GUD_CONNECTOR_MAX_NUM_MODES, sizeof(*reqmodes), GFP_KERNEL);
+ reqmodes = kmalloc_objs(*reqmodes, GUD_CONNECTOR_MAX_NUM_MODES,
+ GFP_KERNEL);
if (!reqmodes)
goto out;
@@ -479,7 +480,8 @@ static int gud_connector_add_properties(struct gud_device *gdrm, struct gud_conn
unsigned int i, num_properties;
int ret;
- properties = kcalloc(GUD_CONNECTOR_PROPERTIES_MAX_NUM, sizeof(*properties), GFP_KERNEL);
+ properties = kzalloc_objs(*properties, GUD_CONNECTOR_PROPERTIES_MAX_NUM,
+ GFP_KERNEL);
if (!properties)
return -ENOMEM;
@@ -619,7 +621,7 @@ static int gud_connector_create(struct gud_device *gdrm, unsigned int index,
int ret, connector_type;
u32 flags;
- gconn = kzalloc(sizeof(*gconn), GFP_KERNEL);
+ gconn = kzalloc_obj(*gconn, GFP_KERNEL);
if (!gconn)
return -ENOMEM;
@@ -698,7 +700,7 @@ int gud_get_connectors(struct gud_device *gdrm)
unsigned int i, num_connectors;
int ret;
- descs = kmalloc_array(GUD_CONNECTORS_MAX_NUM, sizeof(*descs), GFP_KERNEL);
+ descs = kmalloc_objs(*descs, GUD_CONNECTORS_MAX_NUM, GFP_KERNEL);
if (!descs)
return -ENOMEM;
diff --git a/drivers/gpu/drm/gud/gud_drv.c b/drivers/gpu/drm/gud/gud_drv.c
index 42135a48d92e..66780b9f6026 100644
--- a/drivers/gpu/drm/gud/gud_drv.c
+++ b/drivers/gpu/drm/gud/gud_drv.c
@@ -82,7 +82,7 @@ static int gud_get_display_descriptor(struct usb_interface *intf,
void *buf;
int ret;
- buf = kmalloc(sizeof(*desc), GFP_KERNEL);
+ buf = kmalloc_obj(*desc, GFP_KERNEL);
if (!buf)
return -ENOMEM;
@@ -135,7 +135,7 @@ static int gud_usb_get_status(struct usb_interface *intf)
int ret, status = -EIO;
u8 *buf;
- buf = kmalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kmalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return -ENOMEM;
@@ -255,7 +255,8 @@ static int gud_plane_add_properties(struct gud_device *gdrm)
unsigned int i, num_properties;
int ret;
- properties = kcalloc(GUD_PROPERTIES_MAX_NUM, sizeof(*properties), GFP_KERNEL);
+ properties = kzalloc_objs(*properties, GUD_PROPERTIES_MAX_NUM,
+ GFP_KERNEL);
if (!properties)
return -ENOMEM;
@@ -401,7 +402,7 @@ static int gud_alloc_bulk_buffer(struct gud_device *gdrm)
return -ENOMEM;
num_pages = DIV_ROUND_UP(gdrm->bulk_len, PAGE_SIZE);
- pages = kmalloc_array(num_pages, sizeof(struct page *), GFP_KERNEL);
+ pages = kmalloc_objs(struct page *, num_pages, GFP_KERNEL);
if (!pages)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/display/dvo_ch7017.c b/drivers/gpu/drm/i915/display/dvo_ch7017.c
index f10c0fb8d2c8..032c41e55a07 100644
--- a/drivers/gpu/drm/i915/display/dvo_ch7017.c
+++ b/drivers/gpu/drm/i915/display/dvo_ch7017.c
@@ -207,7 +207,7 @@ static bool ch7017_init(struct intel_dvo_device *dvo,
const char *str;
u8 val;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (priv == NULL)
return false;
diff --git a/drivers/gpu/drm/i915/display/dvo_ch7xxx.c b/drivers/gpu/drm/i915/display/dvo_ch7xxx.c
index 49f02aca818b..b85c9afb0c64 100644
--- a/drivers/gpu/drm/i915/display/dvo_ch7xxx.c
+++ b/drivers/gpu/drm/i915/display/dvo_ch7xxx.c
@@ -218,7 +218,7 @@ static bool ch7xxx_init(struct intel_dvo_device *dvo,
u8 vendor, device;
char *name, *devid;
- ch7xxx = kzalloc(sizeof(*ch7xxx), GFP_KERNEL);
+ ch7xxx = kzalloc_obj(*ch7xxx, GFP_KERNEL);
if (ch7xxx == NULL)
return false;
diff --git a/drivers/gpu/drm/i915/display/dvo_ivch.c b/drivers/gpu/drm/i915/display/dvo_ivch.c
index 0713b2709412..9bcdd02d5f36 100644
--- a/drivers/gpu/drm/i915/display/dvo_ivch.c
+++ b/drivers/gpu/drm/i915/display/dvo_ivch.c
@@ -269,7 +269,7 @@ static bool ivch_init(struct intel_dvo_device *dvo,
u16 temp;
int i;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (priv == NULL)
return false;
diff --git a/drivers/gpu/drm/i915/display/dvo_ns2501.c b/drivers/gpu/drm/i915/display/dvo_ns2501.c
index 80b71bd6a837..248b79795edf 100644
--- a/drivers/gpu/drm/i915/display/dvo_ns2501.c
+++ b/drivers/gpu/drm/i915/display/dvo_ns2501.c
@@ -476,7 +476,7 @@ static bool ns2501_init(struct intel_dvo_device *dvo,
struct ns2501_priv *ns;
unsigned char ch;
- ns = kzalloc(sizeof(*ns), GFP_KERNEL);
+ ns = kzalloc_obj(*ns, GFP_KERNEL);
if (ns == NULL)
return false;
diff --git a/drivers/gpu/drm/i915/display/dvo_sil164.c b/drivers/gpu/drm/i915/display/dvo_sil164.c
index 017b617a8069..765d2517fb10 100644
--- a/drivers/gpu/drm/i915/display/dvo_sil164.c
+++ b/drivers/gpu/drm/i915/display/dvo_sil164.c
@@ -143,7 +143,7 @@ static bool sil164_init(struct intel_dvo_device *dvo,
struct sil164_priv *sil;
unsigned char ch;
- sil = kzalloc(sizeof(*sil), GFP_KERNEL);
+ sil = kzalloc_obj(*sil, GFP_KERNEL);
if (sil == NULL)
return false;
diff --git a/drivers/gpu/drm/i915/display/dvo_tfp410.c b/drivers/gpu/drm/i915/display/dvo_tfp410.c
index ed560e3438db..9bd8305bc291 100644
--- a/drivers/gpu/drm/i915/display/dvo_tfp410.c
+++ b/drivers/gpu/drm/i915/display/dvo_tfp410.c
@@ -175,7 +175,7 @@ static bool tfp410_init(struct intel_dvo_device *dvo,
struct tfp410_priv *tfp;
int id;
- tfp = kzalloc(sizeof(*tfp), GFP_KERNEL);
+ tfp = kzalloc_obj(*tfp, GFP_KERNEL);
if (tfp == NULL)
return false;
diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index dac781f54661..b46b79eee5bb 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -1934,7 +1934,7 @@ void icl_dsi_init(struct intel_display *display,
if (port == PORT_NONE)
return;
- intel_dsi = kzalloc(sizeof(*intel_dsi), GFP_KERNEL);
+ intel_dsi = kzalloc_obj(*intel_dsi, GFP_KERNEL);
if (!intel_dsi)
return;
diff --git a/drivers/gpu/drm/i915/display/intel_atomic.c b/drivers/gpu/drm/i915/display/intel_atomic.c
index 348b1655435e..208d6a449edc 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic.c
@@ -323,7 +323,7 @@ intel_crtc_destroy_state(struct drm_crtc *crtc,
struct drm_atomic_state *
intel_atomic_state_alloc(struct drm_device *dev)
{
- struct intel_atomic_state *state = kzalloc(sizeof(*state), GFP_KERNEL);
+ struct intel_atomic_state *state = kzalloc_obj(*state, GFP_KERNEL);
if (!state || drm_atomic_state_init(dev, &state->base) < 0) {
kfree(state);
diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
index ae0b922d5bc3..4731afb418da 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -486,8 +486,8 @@ init_bdb_block(struct intel_display *display,
if (section_id == BDB_MIPI_SEQUENCE && *(const u8 *)block >= 3)
block_size += 5;
- entry = kzalloc(struct_size(entry, data, max(min_size, block_size) + 3),
- GFP_KERNEL);
+ entry = kzalloc_flex(*entry, data, max(min_size, block_size) + 3,
+ GFP_KERNEL);
if (!entry) {
kfree(temp_block);
return;
@@ -852,7 +852,7 @@ parse_lfp_panel_dtd(struct intel_display *display,
lfp_data_ptrs,
panel_type);
- panel_fixed_mode = kzalloc(sizeof(*panel_fixed_mode), GFP_KERNEL);
+ panel_fixed_mode = kzalloc_obj(*panel_fixed_mode, GFP_KERNEL);
if (!panel_fixed_mode)
return;
@@ -968,7 +968,7 @@ parse_generic_dtd(struct intel_display *display,
dtd = &generic_dtd->dtd[panel->vbt.panel_type];
- panel_fixed_mode = kzalloc(sizeof(*panel_fixed_mode), GFP_KERNEL);
+ panel_fixed_mode = kzalloc_obj(*panel_fixed_mode, GFP_KERNEL);
if (!panel_fixed_mode)
return;
@@ -1141,7 +1141,7 @@ parse_sdvo_lvds_data(struct intel_display *display,
return;
}
- panel_fixed_mode = kzalloc(sizeof(*panel_fixed_mode), GFP_KERNEL);
+ panel_fixed_mode = kzalloc_obj(*panel_fixed_mode, GFP_KERNEL);
if (!panel_fixed_mode)
return;
@@ -2929,7 +2929,7 @@ parse_general_definitions(struct intel_display *display)
"Found VBT child device with type 0x%x\n",
child->device_type);
- devdata = kzalloc(sizeof(*devdata), GFP_KERNEL);
+ devdata = kzalloc_obj(*devdata, GFP_KERNEL);
if (!devdata)
break;
@@ -3010,7 +3010,7 @@ init_vbt_missing_defaults(struct intel_display *display)
continue;
/* Create fake child device config */
- devdata = kzalloc(sizeof(*devdata), GFP_KERNEL);
+ devdata = kzalloc_obj(*devdata, GFP_KERNEL);
if (!devdata)
break;
diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c
index 4ee3f5172f4e..e08e477e882a 100644
--- a/drivers/gpu/drm/i915/display/intel_bw.c
+++ b/drivers/gpu/drm/i915/display/intel_bw.c
@@ -1470,7 +1470,7 @@ int intel_bw_init(struct intel_display *display)
{
struct intel_bw_state *state;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
index 9bfbfbf34dc0..46375d4972be 100644
--- a/drivers/gpu/drm/i915/display/intel_cdclk.c
+++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
@@ -3409,7 +3409,7 @@ int intel_cdclk_init(struct intel_display *display)
{
struct intel_cdclk_state *cdclk_state;
- cdclk_state = kzalloc(sizeof(*cdclk_state), GFP_KERNEL);
+ cdclk_state = kzalloc_obj(*cdclk_state, GFP_KERNEL);
if (!cdclk_state)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/display/intel_colorop.c b/drivers/gpu/drm/i915/display/intel_colorop.c
index 1d84933f05aa..8326916ccdc1 100644
--- a/drivers/gpu/drm/i915/display/intel_colorop.c
+++ b/drivers/gpu/drm/i915/display/intel_colorop.c
@@ -15,7 +15,7 @@ struct intel_colorop *intel_colorop_alloc(void)
{
struct intel_colorop *colorop;
- colorop = kzalloc(sizeof(*colorop), GFP_KERNEL);
+ colorop = kzalloc_obj(*colorop, GFP_KERNEL);
if (!colorop)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/display/intel_connector.c b/drivers/gpu/drm/i915/display/intel_connector.c
index 682bf1be350d..8712f6a61778 100644
--- a/drivers/gpu/drm/i915/display/intel_connector.c
+++ b/drivers/gpu/drm/i915/display/intel_connector.c
@@ -86,7 +86,7 @@ static int intel_connector_init(struct intel_connector *connector)
* need it we'll free the state and allocate a smaller one on the first
* successful commit anyway.
*/
- conn_state = kzalloc(sizeof(*conn_state), GFP_KERNEL);
+ conn_state = kzalloc_obj(*conn_state, GFP_KERNEL);
if (!conn_state)
return -ENOMEM;
@@ -105,7 +105,7 @@ struct intel_connector *intel_connector_alloc(void)
{
struct intel_connector *connector;
- connector = kzalloc(sizeof(*connector), GFP_KERNEL);
+ connector = kzalloc_obj(*connector, GFP_KERNEL);
if (!connector)
return NULL;
diff --git a/drivers/gpu/drm/i915/display/intel_crt.c b/drivers/gpu/drm/i915/display/intel_crt.c
index 5f9a03877ea9..7be2361e52e7 100644
--- a/drivers/gpu/drm/i915/display/intel_crt.c
+++ b/drivers/gpu/drm/i915/display/intel_crt.c
@@ -1037,7 +1037,7 @@ void intel_crt_init(struct intel_display *display)
intel_de_write(display, adpa_reg, adpa);
}
- crt = kzalloc(sizeof(struct intel_crt), GFP_KERNEL);
+ crt = kzalloc_obj(struct intel_crt, GFP_KERNEL);
if (!crt)
return;
diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
index 778ebc5095c3..e41975b34929 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc.c
+++ b/drivers/gpu/drm/i915/display/intel_crtc.c
@@ -168,7 +168,7 @@ struct intel_crtc_state *intel_crtc_state_alloc(struct intel_crtc *crtc)
{
struct intel_crtc_state *crtc_state;
- crtc_state = kmalloc(sizeof(*crtc_state), GFP_KERNEL);
+ crtc_state = kmalloc_obj(*crtc_state, GFP_KERNEL);
if (crtc_state)
intel_crtc_state_reset(crtc_state, crtc);
@@ -196,7 +196,7 @@ static struct intel_crtc *intel_crtc_alloc(void)
struct intel_crtc_state *crtc_state;
struct intel_crtc *crtc;
- crtc = kzalloc(sizeof(*crtc), GFP_KERNEL);
+ crtc = kzalloc_obj(*crtc, GFP_KERNEL);
if (!crtc)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/display/intel_dbuf_bw.c b/drivers/gpu/drm/i915/display/intel_dbuf_bw.c
index 8b8894c37f63..73d22de72226 100644
--- a/drivers/gpu/drm/i915/display/intel_dbuf_bw.c
+++ b/drivers/gpu/drm/i915/display/intel_dbuf_bw.c
@@ -284,7 +284,7 @@ int intel_dbuf_bw_init(struct intel_display *display)
{
struct intel_dbuf_bw_state *state;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 81b3a6692ca2..4a081b30477c 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -4122,7 +4122,7 @@ intel_encoder_current_mode(struct intel_encoder *encoder)
crtc = intel_crtc_for_pipe(display, pipe);
- mode = kzalloc(sizeof(*mode), GFP_KERNEL);
+ mode = kzalloc_obj(*mode, GFP_KERNEL);
if (!mode)
return NULL;
diff --git a/drivers/gpu/drm/i915/display/intel_display_device.c b/drivers/gpu/drm/i915/display/intel_display_device.c
index 471f236c9ddf..648294f234cc 100644
--- a/drivers/gpu/drm/i915/display/intel_display_device.c
+++ b/drivers/gpu/drm/i915/display/intel_display_device.c
@@ -1663,7 +1663,7 @@ struct intel_display *intel_display_device_probe(struct pci_dev *pdev,
const struct subplatform_desc *subdesc;
enum intel_step step;
- display = kzalloc(sizeof(*display), GFP_KERNEL);
+ display = kzalloc_obj(*display, GFP_KERNEL);
if (!display)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.c b/drivers/gpu/drm/i915/display/intel_display_irq.c
index 9adeebb376b1..6e7e4654eb79 100644
--- a/drivers/gpu/drm/i915/display/intel_display_irq.c
+++ b/drivers/gpu/drm/i915/display/intel_display_irq.c
@@ -2479,7 +2479,7 @@ intel_display_irq_snapshot_capture(struct intel_display *display)
{
struct intel_display_irq_snapshot *snapshot;
- snapshot = kzalloc(sizeof(*snapshot), GFP_ATOMIC);
+ snapshot = kzalloc_obj(*snapshot, GFP_ATOMIC);
if (!snapshot)
return NULL;
diff --git a/drivers/gpu/drm/i915/display/intel_display_power_map.c b/drivers/gpu/drm/i915/display/intel_display_power_map.c
index 9b49952994ce..28b15d9ee45e 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power_map.c
+++ b/drivers/gpu/drm/i915/display/intel_display_power_map.c
@@ -1823,9 +1823,8 @@ __set_power_wells(struct i915_power_domains *power_domains,
power_domains->power_well_count = power_well_count;
power_domains->power_wells =
- kcalloc(power_well_count,
- sizeof(*power_domains->power_wells),
- GFP_KERNEL);
+ kzalloc_objs(*power_domains->power_wells,
+ power_well_count, GFP_KERNEL);
if (!power_domains->power_wells)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/display/intel_display_rps.c b/drivers/gpu/drm/i915/display/intel_display_rps.c
index e77811396474..f37361f87894 100644
--- a/drivers/gpu/drm/i915/display/intel_display_rps.c
+++ b/drivers/gpu/drm/i915/display/intel_display_rps.c
@@ -59,7 +59,7 @@ void intel_display_rps_boost_after_vblank(struct drm_crtc *crtc,
if (drm_crtc_vblank_get(crtc))
return;
- wait = kmalloc(sizeof(*wait), GFP_KERNEL);
+ wait = kmalloc_obj(*wait, GFP_KERNEL);
if (!wait) {
drm_crtc_vblank_put(crtc);
return;
diff --git a/drivers/gpu/drm/i915/display/intel_display_snapshot.c b/drivers/gpu/drm/i915/display/intel_display_snapshot.c
index 66087302fdbc..f650f15ad394 100644
--- a/drivers/gpu/drm/i915/display/intel_display_snapshot.c
+++ b/drivers/gpu/drm/i915/display/intel_display_snapshot.c
@@ -28,7 +28,7 @@ struct intel_display_snapshot *intel_display_snapshot_capture(struct intel_displ
{
struct intel_display_snapshot *snapshot;
- snapshot = kzalloc(sizeof(*snapshot), GFP_ATOMIC);
+ snapshot = kzalloc_obj(*snapshot, GFP_ATOMIC);
if (!snapshot)
return NULL;
diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c b/drivers/gpu/drm/i915/display/intel_dmc.c
index 1182bc9a2e6d..7e51d8873178 100644
--- a/drivers/gpu/drm/i915/display/intel_dmc.c
+++ b/drivers/gpu/drm/i915/display/intel_dmc.c
@@ -1417,7 +1417,7 @@ void intel_dmc_init(struct intel_display *display)
*/
intel_dmc_runtime_pm_get(display);
- dmc = kzalloc(sizeof(*dmc), GFP_KERNEL);
+ dmc = kzalloc_obj(*dmc, GFP_KERNEL);
if (!dmc)
return;
@@ -1547,7 +1547,7 @@ struct intel_dmc_snapshot *intel_dmc_snapshot_capture(struct intel_display *disp
if (!HAS_DMC(display))
return NULL;
- snapshot = kzalloc(sizeof(*snapshot), GFP_ATOMIC);
+ snapshot = kzalloc_obj(*snapshot, GFP_ATOMIC);
if (!snapshot)
return NULL;
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index 24f8e60df9ac..96da2f8da8b5 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -1765,7 +1765,7 @@ mst_stream_encoder_create(struct intel_digital_port *dig_port, enum pipe pipe)
struct intel_dp_mst_encoder *intel_mst;
struct intel_encoder *encoder;
- intel_mst = kzalloc(sizeof(*intel_mst), GFP_KERNEL);
+ intel_mst = kzalloc_obj(*intel_mst, GFP_KERNEL);
if (!intel_mst)
return NULL;
diff --git a/drivers/gpu/drm/i915/display/intel_dp_tunnel.c b/drivers/gpu/drm/i915/display/intel_dp_tunnel.c
index faa2b7a46699..62f9bf3371cd 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_tunnel.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_tunnel.c
@@ -381,8 +381,8 @@ add_inherited_tunnel(struct intel_atomic_state *state,
}
if (!state->inherited_dp_tunnels) {
- state->inherited_dp_tunnels = kzalloc(sizeof(*state->inherited_dp_tunnels),
- GFP_KERNEL);
+ state->inherited_dp_tunnels = kzalloc_obj(*state->inherited_dp_tunnels,
+ GFP_KERNEL);
if (!state->inherited_dp_tunnels)
return -ENOMEM;
}
diff --git a/drivers/gpu/drm/i915/display/intel_dpt.c b/drivers/gpu/drm/i915/display/intel_dpt.c
index 58d953472218..05e5c8f839a1 100644
--- a/drivers/gpu/drm/i915/display/intel_dpt.c
+++ b/drivers/gpu/drm/i915/display/intel_dpt.c
@@ -280,7 +280,7 @@ intel_dpt_create(struct intel_framebuffer *fb)
return ERR_PTR(ret);
}
- dpt = kzalloc(sizeof(*dpt), GFP_KERNEL);
+ dpt = kzalloc_obj(*dpt, GFP_KERNEL);
if (!dpt) {
i915_gem_object_put(dpt_obj);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c b/drivers/gpu/drm/i915/display/intel_dsb.c
index 91060e2a5762..d9aff12a0a9b 100644
--- a/drivers/gpu/drm/i915/display/intel_dsb.c
+++ b/drivers/gpu/drm/i915/display/intel_dsb.c
@@ -974,7 +974,7 @@ struct intel_dsb *intel_dsb_prepare(struct intel_atomic_state *state,
if (!display->params.enable_dsb)
return NULL;
- dsb = kzalloc(sizeof(*dsb), GFP_KERNEL);
+ dsb = kzalloc_obj(*dsb, GFP_KERNEL);
if (!dsb)
goto out;
diff --git a/drivers/gpu/drm/i915/display/intel_dsb_buffer.c b/drivers/gpu/drm/i915/display/intel_dsb_buffer.c
index 50faf3869b6c..28d63ba2f032 100644
--- a/drivers/gpu/drm/i915/display/intel_dsb_buffer.c
+++ b/drivers/gpu/drm/i915/display/intel_dsb_buffer.c
@@ -46,7 +46,7 @@ struct intel_dsb_buffer *intel_dsb_buffer_create(struct drm_device *drm, size_t
u32 *buf;
int ret;
- dsb_buf = kzalloc(sizeof(*dsb_buf), GFP_KERNEL);
+ dsb_buf = kzalloc_obj(*dsb_buf, GFP_KERNEL);
if (!dsb_buf)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/display/intel_dsi.c b/drivers/gpu/drm/i915/display/intel_dsi.c
index a8f012119165..1ac274964c4c 100644
--- a/drivers/gpu/drm/i915/display/intel_dsi.c
+++ b/drivers/gpu/drm/i915/display/intel_dsi.c
@@ -87,7 +87,7 @@ struct intel_dsi_host *intel_dsi_host_init(struct intel_dsi *intel_dsi,
struct intel_dsi_host *host;
struct mipi_dsi_device *device;
- host = kzalloc(sizeof(*host), GFP_KERNEL);
+ host = kzalloc_obj(*host, GFP_KERNEL);
if (!host)
return NULL;
@@ -102,7 +102,7 @@ struct intel_dsi_host *intel_dsi_host_init(struct intel_dsi *intel_dsi,
* devices by ourselves here too. Need to be careful though, because we
* don't initialize any of the driver model devices here.
*/
- device = kzalloc(sizeof(*device), GFP_KERNEL);
+ device = kzalloc_obj(*device, GFP_KERNEL);
if (!device) {
kfree(host);
return NULL;
diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
index 4b815ce6b1fe..d1e7d758fb70 100644
--- a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
+++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
@@ -231,7 +231,7 @@ static void soc_opaque_gpio_set_value(struct intel_connector *connector,
{
struct gpiod_lookup_table *lookup;
- lookup = kzalloc(struct_size(lookup, table, 2), GFP_KERNEL);
+ lookup = kzalloc_flex(*lookup, table, 2, GFP_KERNEL);
if (!lookup)
return;
diff --git a/drivers/gpu/drm/i915/display/intel_dvo.c b/drivers/gpu/drm/i915/display/intel_dvo.c
index c2663d6e2c92..d6fbf4fd29d9 100644
--- a/drivers/gpu/drm/i915/display/intel_dvo.c
+++ b/drivers/gpu/drm/i915/display/intel_dvo.c
@@ -494,7 +494,7 @@ void intel_dvo_init(struct intel_display *display)
struct intel_encoder *encoder;
struct intel_dvo *intel_dvo;
- intel_dvo = kzalloc(sizeof(*intel_dvo), GFP_KERNEL);
+ intel_dvo = kzalloc_obj(*intel_dvo, GFP_KERNEL);
if (!intel_dvo)
return;
diff --git a/drivers/gpu/drm/i915/display/intel_encoder.c b/drivers/gpu/drm/i915/display/intel_encoder.c
index 2ffe1f251ef8..b02297d56950 100644
--- a/drivers/gpu/drm/i915/display/intel_encoder.c
+++ b/drivers/gpu/drm/i915/display/intel_encoder.c
@@ -108,7 +108,7 @@ struct intel_digital_port *intel_dig_port_alloc(void)
{
struct intel_digital_port *dig_port;
- dig_port = kzalloc(sizeof(*dig_port), GFP_KERNEL);
+ dig_port = kzalloc_obj(*dig_port, GFP_KERNEL);
if (!dig_port)
return NULL;
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index b9bd9b6dfe94..3b6d0d4ccff7 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -2173,7 +2173,7 @@ static int intel_user_framebuffer_dirty(struct drm_framebuffer *fb,
if (ret || !fence)
goto flush;
- cb = kmalloc(sizeof(*cb), GFP_KERNEL);
+ cb = kmalloc_obj(*cb, GFP_KERNEL);
if (!cb) {
dma_fence_put(fence);
ret = -ENOMEM;
@@ -2361,7 +2361,7 @@ struct intel_framebuffer *intel_framebuffer_alloc(void)
{
struct intel_framebuffer *intel_fb;
- intel_fb = kzalloc(sizeof(*intel_fb), GFP_KERNEL);
+ intel_fb = kzalloc_obj(*intel_fb, GFP_KERNEL);
if (!intel_fb)
return NULL;
diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 9f39b6990bbd..c0dfa65809f9 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -2294,7 +2294,7 @@ static struct intel_fbc *intel_fbc_create(struct intel_display *display,
{
struct intel_fbc *fbc;
- fbc = kzalloc(sizeof(*fbc), GFP_KERNEL);
+ fbc = kzalloc_obj(*fbc, GFP_KERNEL);
if (!fbc)
return NULL;
diff --git a/drivers/gpu/drm/i915/display/intel_global_state.c b/drivers/gpu/drm/i915/display/intel_global_state.c
index 30eff6009e87..49f32828c3f1 100644
--- a/drivers/gpu/drm/i915/display/intel_global_state.c
+++ b/drivers/gpu/drm/i915/display/intel_global_state.c
@@ -52,7 +52,7 @@ static struct intel_global_commit *commit_new(void)
{
struct intel_global_commit *commit;
- commit = kzalloc(sizeof(*commit), GFP_KERNEL);
+ commit = kzalloc_obj(*commit, GFP_KERNEL);
if (!commit)
return NULL;
diff --git a/drivers/gpu/drm/i915/display/intel_gmbus.c b/drivers/gpu/drm/i915/display/intel_gmbus.c
index 2caff677600c..b27330b95145 100644
--- a/drivers/gpu/drm/i915/display/intel_gmbus.c
+++ b/drivers/gpu/drm/i915/display/intel_gmbus.c
@@ -925,7 +925,7 @@ int intel_gmbus_setup(struct intel_display *display)
if (!gmbus_pin)
continue;
- bus = kzalloc(sizeof(*bus), GFP_KERNEL);
+ bus = kzalloc_obj(*bus, GFP_KERNEL);
if (!bus) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
index 7114fc405c29..7c276b7cc929 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -2327,9 +2327,9 @@ static int initialize_hdcp_port_data(struct intel_connector *connector,
data->protocol = (u8)shim->protocol;
if (!data->streams)
- data->streams = kcalloc(INTEL_NUM_PIPES(display),
- sizeof(struct hdcp2_streamid_type),
- GFP_KERNEL);
+ data->streams = kzalloc_objs(struct hdcp2_streamid_type,
+ INTEL_NUM_PIPES(display),
+ GFP_KERNEL);
if (!data->streams) {
drm_err(display->drm, "Out of Memory\n");
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
index 781667b710b4..5b941bfa8c17 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c
@@ -633,7 +633,7 @@ int intel_hdcp_gsc_init(struct intel_display *display)
struct i915_hdcp_arbiter *arbiter;
int ret = 0;
- arbiter = kzalloc(sizeof(*arbiter), GFP_KERNEL);
+ arbiter = kzalloc_obj(*arbiter, GFP_KERNEL);
if (!arbiter)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/display/intel_lpe_audio.c b/drivers/gpu/drm/i915/display/intel_lpe_audio.c
index 5b41abe1c64d..c7f28b537509 100644
--- a/drivers/gpu/drm/i915/display/intel_lpe_audio.c
+++ b/drivers/gpu/drm/i915/display/intel_lpe_audio.c
@@ -87,11 +87,11 @@ lpe_audio_platdev_create(struct intel_display *display)
struct platform_device *platdev;
struct intel_hdmi_lpe_audio_pdata *pdata;
- pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
+ pdata = kzalloc_obj(*pdata, GFP_KERNEL);
if (!pdata)
return ERR_PTR(-ENOMEM);
- rsc = kcalloc(2, sizeof(*rsc), GFP_KERNEL);
+ rsc = kzalloc_objs(*rsc, 2, GFP_KERNEL);
if (!rsc) {
kfree(pdata);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c b/drivers/gpu/drm/i915/display/intel_lvds.c
index 457d60863536..7f085f475664 100644
--- a/drivers/gpu/drm/i915/display/intel_lvds.c
+++ b/drivers/gpu/drm/i915/display/intel_lvds.c
@@ -886,7 +886,7 @@ void intel_lvds_init(struct intel_display *display)
"LVDS is not present in VBT, but enabled anyway\n");
}
- lvds_encoder = kzalloc(sizeof(*lvds_encoder), GFP_KERNEL);
+ lvds_encoder = kzalloc_obj(*lvds_encoder, GFP_KERNEL);
if (!lvds_encoder)
return;
diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
index cbc220310813..e968834dc7b7 100644
--- a/drivers/gpu/drm/i915/display/intel_opregion.c
+++ b/drivers/gpu/drm/i915/display/intel_opregion.c
@@ -898,7 +898,7 @@ int intel_opregion_setup(struct intel_display *display)
return -ENOTSUPP;
}
- opregion = kzalloc(sizeof(*opregion), GFP_KERNEL);
+ opregion = kzalloc_obj(*opregion, GFP_KERNEL);
if (!opregion)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/display/intel_overlay.c b/drivers/gpu/drm/i915/display/intel_overlay.c
index 88eb7ae5765c..8ab5a866fb67 100644
--- a/drivers/gpu/drm/i915/display/intel_overlay.c
+++ b/drivers/gpu/drm/i915/display/intel_overlay.c
@@ -1409,7 +1409,7 @@ void intel_overlay_setup(struct intel_display *display)
if (!engine || !engine->kernel_context)
return;
- overlay = kzalloc(sizeof(*overlay), GFP_KERNEL);
+ overlay = kzalloc_obj(*overlay, GFP_KERNEL);
if (!overlay)
return;
@@ -1484,7 +1484,7 @@ intel_overlay_snapshot_capture(struct intel_display *display)
if (!overlay || !overlay->active)
return NULL;
- error = kmalloc(sizeof(*error), GFP_ATOMIC);
+ error = kmalloc_obj(*error, GFP_ATOMIC);
if (error == NULL)
return NULL;
diff --git a/drivers/gpu/drm/i915/display/intel_plane.c b/drivers/gpu/drm/i915/display/intel_plane.c
index 3dc2ed52147f..a5d60180cc7a 100644
--- a/drivers/gpu/drm/i915/display/intel_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_plane.c
@@ -77,11 +77,11 @@ struct intel_plane *intel_plane_alloc(void)
struct intel_plane_state *plane_state;
struct intel_plane *plane;
- plane = kzalloc(sizeof(*plane), GFP_KERNEL);
+ plane = kzalloc_obj(*plane, GFP_KERNEL);
if (!plane)
return ERR_PTR(-ENOMEM);
- plane_state = kzalloc(sizeof(*plane_state), GFP_KERNEL);
+ plane_state = kzalloc_obj(*plane_state, GFP_KERNEL);
if (!plane_state) {
kfree(plane);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/display/intel_pmdemand.c b/drivers/gpu/drm/i915/display/intel_pmdemand.c
index dc44a7a169c1..d12fabbe90de 100644
--- a/drivers/gpu/drm/i915/display/intel_pmdemand.c
+++ b/drivers/gpu/drm/i915/display/intel_pmdemand.c
@@ -121,7 +121,7 @@ int intel_pmdemand_init(struct intel_display *display)
{
struct intel_pmdemand_state *pmdemand_state;
- pmdemand_state = kzalloc(sizeof(*pmdemand_state), GFP_KERNEL);
+ pmdemand_state = kzalloc_obj(*pmdemand_state, GFP_KERNEL);
if (!pmdemand_state)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/display/intel_rom.c b/drivers/gpu/drm/i915/display/intel_rom.c
index c8f615315310..930b9cb9d1b7 100644
--- a/drivers/gpu/drm/i915/display/intel_rom.c
+++ b/drivers/gpu/drm/i915/display/intel_rom.c
@@ -47,7 +47,7 @@ struct intel_rom *intel_rom_spi(struct drm_device *drm)
struct intel_rom *rom;
u32 static_region;
- rom = kzalloc(sizeof(*rom), GFP_KERNEL);
+ rom = kzalloc_obj(*rom, GFP_KERNEL);
if (!rom)
return NULL;
@@ -92,7 +92,7 @@ struct intel_rom *intel_rom_pci(struct drm_device *drm)
{
struct intel_rom *rom;
- rom = kzalloc(sizeof(*rom), GFP_KERNEL);
+ rom = kzalloc_obj(*rom, GFP_KERNEL);
if (!rom)
return NULL;
diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c b/drivers/gpu/drm/i915/display/intel_sdvo.c
index 6c032d81e7ee..273487e8ec5c 100644
--- a/drivers/gpu/drm/i915/display/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/display/intel_sdvo.c
@@ -474,7 +474,7 @@ static bool __intel_sdvo_write_cmd(struct intel_sdvo *intel_sdvo, u8 cmd,
if (!buf)
return false;
- msgs = kcalloc(args_len + 3, sizeof(*msgs), GFP_KERNEL);
+ msgs = kzalloc_objs(*msgs, args_len + 3, GFP_KERNEL);
if (!msgs) {
kfree(buf);
return false;
@@ -2774,11 +2774,11 @@ static struct intel_sdvo_connector *intel_sdvo_connector_alloc(void)
struct intel_sdvo_connector *sdvo_connector;
struct intel_sdvo_connector_state *conn_state;
- sdvo_connector = kzalloc(sizeof(*sdvo_connector), GFP_KERNEL);
+ sdvo_connector = kzalloc_obj(*sdvo_connector, GFP_KERNEL);
if (!sdvo_connector)
return NULL;
- conn_state = kzalloc(sizeof(*conn_state), GFP_KERNEL);
+ conn_state = kzalloc_obj(*conn_state, GFP_KERNEL);
if (!conn_state) {
kfree(sdvo_connector);
return NULL;
@@ -3389,7 +3389,7 @@ bool intel_sdvo_init(struct intel_display *display,
if (!assert_sdvo_port_valid(display, port))
return false;
- intel_sdvo = kzalloc(sizeof(*intel_sdvo), GFP_KERNEL);
+ intel_sdvo = kzalloc_obj(*intel_sdvo, GFP_KERNEL);
if (!intel_sdvo)
return false;
diff --git a/drivers/gpu/drm/i915/display/intel_tc.c b/drivers/gpu/drm/i915/display/intel_tc.c
index 064f572bbc85..0f9efe45acf2 100644
--- a/drivers/gpu/drm/i915/display/intel_tc.c
+++ b/drivers/gpu/drm/i915/display/intel_tc.c
@@ -1977,7 +1977,7 @@ int intel_tc_port_init(struct intel_digital_port *dig_port, bool is_legacy)
if (drm_WARN_ON(display->drm, tc_port == TC_PORT_NONE))
return -EINVAL;
- tc = kzalloc(sizeof(*tc), GFP_KERNEL);
+ tc = kzalloc_obj(*tc, GFP_KERNEL);
if (!tc)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/display/intel_tv.c b/drivers/gpu/drm/i915/display/intel_tv.c
index e3ab49815a3c..2036eaf2d1ff 100644
--- a/drivers/gpu/drm/i915/display/intel_tv.c
+++ b/drivers/gpu/drm/i915/display/intel_tv.c
@@ -1966,7 +1966,7 @@ intel_tv_init(struct intel_display *display)
(tv_dac_off & TVDAC_STATE_CHG_EN) != 0)
return;
- intel_tv = kzalloc(sizeof(*intel_tv), GFP_KERNEL);
+ intel_tv = kzalloc_obj(*intel_tv, GFP_KERNEL);
if (!intel_tv) {
return;
}
diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
index a6aab79812e5..edd6ca199106 100644
--- a/drivers/gpu/drm/i915/display/skl_watermark.c
+++ b/drivers/gpu/drm/i915/display/skl_watermark.c
@@ -3366,7 +3366,7 @@ int intel_dbuf_init(struct intel_display *display)
{
struct intel_dbuf_state *dbuf_state;
- dbuf_state = kzalloc(sizeof(*dbuf_state), GFP_KERNEL);
+ dbuf_state = kzalloc_obj(*dbuf_state, GFP_KERNEL);
if (!dbuf_state)
return -ENOMEM;
@@ -3892,7 +3892,7 @@ void intel_wm_state_verify(struct intel_atomic_state *state,
if (DISPLAY_VER(display) < 9 || !new_crtc_state->hw.active)
return;
- hw = kzalloc(sizeof(*hw), GFP_KERNEL);
+ hw = kzalloc_obj(*hw, GFP_KERNEL);
if (!hw)
return;
diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
index d705af3bf8ba..31625b0070c6 100644
--- a/drivers/gpu/drm/i915/display/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
@@ -1919,7 +1919,7 @@ void vlv_dsi_init(struct intel_display *display)
else
display->dsi.mmio_base = VLV_MIPI_BASE;
- intel_dsi = kzalloc(sizeof(*intel_dsi), GFP_KERNEL);
+ intel_dsi = kzalloc_obj(*intel_dsi, GFP_KERNEL);
if (!intel_dsi)
return;
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_clflush.c b/drivers/gpu/drm/i915/gem/i915_gem_clflush.c
index c1deea20c28a..50ade188edc5 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_clflush.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_clflush.c
@@ -52,7 +52,7 @@ static struct clflush *clflush_work_create(struct drm_i915_gem_object *obj)
GEM_BUG_ON(!obj->cache_dirty);
- clflush = kmalloc(sizeof(*clflush), GFP_KERNEL);
+ clflush = kmalloc_obj(*clflush, GFP_KERNEL);
if (!clflush)
return NULL;
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c b/drivers/gpu/drm/i915/gem/i915_gem_context.c
index 3215ef49c975..c364423706c6 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
@@ -285,7 +285,7 @@ proto_context_create(struct drm_i915_file_private *fpriv,
{
struct i915_gem_proto_context *pc, *err;
- pc = kzalloc(sizeof(*pc), GFP_KERNEL);
+ pc = kzalloc_obj(*pc, GFP_KERNEL);
if (!pc)
return ERR_PTR(-ENOMEM);
@@ -442,7 +442,7 @@ set_proto_ctx_engines_balance(struct i915_user_extension __user *base,
if (num_siblings == 0)
return 0;
- siblings = kmalloc_array(num_siblings, sizeof(*siblings), GFP_KERNEL);
+ siblings = kmalloc_objs(*siblings, num_siblings, GFP_KERNEL);
if (!siblings)
return -ENOMEM;
@@ -644,9 +644,7 @@ set_proto_ctx_engines_parallel_submit(struct i915_user_extension __user *base,
return -EINVAL;
}
- siblings = kmalloc_array(num_siblings * width,
- sizeof(*siblings),
- GFP_KERNEL);
+ siblings = kmalloc_objs(*siblings, num_siblings * width, GFP_KERNEL);
if (!siblings)
return -ENOMEM;
@@ -761,7 +759,7 @@ static int set_proto_ctx_engines(struct drm_i915_file_private *fpriv,
if (set.num_engines > I915_EXEC_RING_MASK + 1)
return -EINVAL;
- set.engines = kmalloc_array(set.num_engines, sizeof(*set.engines), GFP_KERNEL);
+ set.engines = kmalloc_objs(*set.engines, set.num_engines, GFP_KERNEL);
if (!set.engines)
return -ENOMEM;
@@ -1105,7 +1103,7 @@ static struct i915_gem_engines *alloc_engines(unsigned int count)
{
struct i915_gem_engines *e;
- e = kzalloc(struct_size(e, engines, count), GFP_KERNEL);
+ e = kzalloc_flex(*e, engines, count, GFP_KERNEL);
if (!e)
return NULL;
@@ -1611,7 +1609,7 @@ i915_gem_create_context(struct drm_i915_private *i915,
int err;
int i;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_create.c b/drivers/gpu/drm/i915/gem/i915_gem_create.c
index 189ecdd0a9c1..478f4b98bc2d 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_create.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_create.c
@@ -54,9 +54,8 @@ static int object_set_placements(struct drm_i915_gem_object *obj,
obj->mm.placements = &i915->mm.regions[mr->id];
obj->mm.n_placements = 1;
} else {
- arr = kmalloc_array(n_placements,
- sizeof(struct intel_memory_region *),
- GFP_KERNEL);
+ arr = kmalloc_objs(struct intel_memory_region *, n_placements,
+ GFP_KERNEL);
if (!arr)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
index f4f1c979d1b9..db7166784731 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
@@ -36,7 +36,7 @@ static struct sg_table *i915_gem_map_dma_buf(struct dma_buf_attachment *attach,
* Make a copy of the object's sgt, so that we can make an independent
* mapping
*/
- sgt = kmalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kmalloc_obj(*sgt, GFP_KERNEL);
if (!sgt) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index d49e96f9be51..c2e91eeb7c16 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -2006,7 +2006,7 @@ static int eb_capture_stage(struct i915_execbuffer *eb)
for_each_batch_create_order(eb, j) {
struct i915_capture_list *capture;
- capture = kmalloc(sizeof(*capture), GFP_KERNEL);
+ capture = kmalloc_obj(*capture, GFP_KERNEL);
if (!capture)
continue;
@@ -3190,7 +3190,7 @@ eb_composite_fence_create(struct i915_execbuffer *eb, int out_fence_fd)
GEM_BUG_ON(!intel_context_is_parent(eb->context));
- fences = kmalloc_array(eb->num_batches, sizeof(*fences), GFP_KERNEL);
+ fences = kmalloc_objs(*fences, eb->num_batches, GFP_KERNEL);
if (!fences)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_internal.c b/drivers/gpu/drm/i915/gem/i915_gem_internal.c
index 232b984f60b6..e90fe30cc44e 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_internal.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_internal.c
@@ -54,7 +54,7 @@ static int i915_gem_object_get_pages_internal(struct drm_i915_gem_object *obj)
}
create_st:
- st = kmalloc(sizeof(*st), GFP_KERNEL);
+ st = kmalloc_obj(*st, GFP_KERNEL);
if (!st)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
index 4542135b20d5..e10a9e21e6c8 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
@@ -730,7 +730,7 @@ mmap_offset_attach(struct drm_i915_gem_object *obj,
if (mmo)
goto out;
- mmo = kmalloc(sizeof(*mmo), GFP_KERNEL);
+ mmo = kmalloc_obj(*mmo, GFP_KERNEL);
if (!mmo)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_frontbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_object_frontbuffer.c
index aaa15e7b3f17..e9b7d76927bb 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object_frontbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object_frontbuffer.c
@@ -32,7 +32,7 @@ i915_gem_object_frontbuffer_get(struct drm_i915_gem_object *obj)
if (front)
return front;
- front = kmalloc(sizeof(*front), GFP_KERNEL);
+ front = kmalloc_obj(*front, GFP_KERNEL);
if (!front)
return NULL;
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pages.c b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
index c2f8e5f95696..fa6d174987ac 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_pages.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
@@ -314,7 +314,7 @@ static void *i915_gem_object_map_page(struct drm_i915_gem_object *obj,
if (n_pages > ARRAY_SIZE(stack)) {
/* Too big for stack -- allocate temporary array instead */
- pages = kvmalloc_array(n_pages, sizeof(*pages), GFP_KERNEL);
+ pages = kvmalloc_objs(*pages, n_pages, GFP_KERNEL);
if (!pages)
return ERR_PTR(-ENOMEM);
}
@@ -382,7 +382,7 @@ static struct page **i915_gem_object_panic_pages(struct drm_i915_gem_object *obj
struct sgt_iter iter;
/* For a 3840x2160 32 bits Framebuffer, this should require ~64K */
- pages = kmalloc_array(n_pages, sizeof(*pages), GFP_ATOMIC);
+ pages = kmalloc_objs(*pages, n_pages, GFP_ATOMIC);
if (!pages)
return NULL;
@@ -437,7 +437,7 @@ struct intel_panic *i915_gem_object_alloc_panic(void)
{
struct intel_panic *panic;
- panic = kzalloc(sizeof(*panic), GFP_KERNEL);
+ panic = kzalloc_obj(*panic, GFP_KERNEL);
return panic;
}
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_phys.c b/drivers/gpu/drm/i915/gem/i915_gem_phys.c
index bc799f182850..71a2c2bb5087 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_phys.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_phys.c
@@ -47,7 +47,7 @@ static int i915_gem_object_get_pages_phys(struct drm_i915_gem_object *obj)
if (!vaddr)
return -ENOMEM;
- st = kmalloc(sizeof(*st), GFP_KERNEL);
+ st = kmalloc_obj(*st, GFP_KERNEL);
if (!st)
goto err_pci;
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
index 95b13d172913..c6c64ba29bc4 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -222,7 +222,7 @@ static int shmem_get_pages(struct drm_i915_gem_object *obj)
GEM_BUG_ON(obj->write_domain & I915_GEM_GPU_DOMAINS);
rebuild_st:
- st = kmalloc(sizeof(*st), GFP_KERNEL | __GFP_NOWARN);
+ st = kmalloc_obj(*st, GFP_KERNEL | __GFP_NOWARN);
if (!st)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
index c3e0b8da485c..a577f8df7c60 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
@@ -648,7 +648,7 @@ i915_pages_create_for_stolen(struct drm_device *dev,
* dma mapping in a single scatterlist.
*/
- st = kmalloc(sizeof(*st), GFP_KERNEL);
+ st = kmalloc_obj(*st, GFP_KERNEL);
if (st == NULL)
return ERR_PTR(-ENOMEM);
@@ -783,7 +783,7 @@ static int _i915_gem_object_stolen_init(struct intel_memory_region *mem,
!(flags & I915_BO_ALLOC_GPU_ONLY))
return -ENOSPC;
- stolen = kzalloc(sizeof(*stolen), GFP_KERNEL);
+ stolen = kzalloc_obj(*stolen, GFP_KERNEL);
if (!stolen)
return -ENOMEM;
@@ -1074,7 +1074,7 @@ static struct intel_stolen_node *i915_gem_stolen_node_alloc(struct drm_device *d
struct drm_i915_private *i915 = to_i915(drm);
struct intel_stolen_node *node;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return NULL;
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
index 7b1a7d01db2b..46ed4ff8658d 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
@@ -279,7 +279,7 @@ static struct ttm_tt *i915_ttm_tt_create(struct ttm_buffer_object *bo,
if (i915_ttm_is_ghost_object(bo))
return NULL;
- i915_tt = kzalloc(sizeof(*i915_tt), GFP_KERNEL);
+ i915_tt = kzalloc_obj(*i915_tt, GFP_KERNEL);
if (!i915_tt)
return NULL;
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c
index 2f6b33edb9c9..ff2e02113fe6 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c
@@ -498,7 +498,7 @@ __i915_ttm_move(struct ttm_buffer_object *bo,
struct dma_fence *dep = fence;
if (!I915_SELFTEST_ONLY(fail_work_allocation))
- copy_work = kzalloc(sizeof(*copy_work), GFP_KERNEL);
+ copy_work = kzalloc_obj(*copy_work, GFP_KERNEL);
if (copy_work) {
copy_work->i915 = i915;
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_userptr.c b/drivers/gpu/drm/i915/gem/i915_gem_userptr.c
index 77cc3af3d518..6518a02397c6 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_userptr.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_userptr.c
@@ -109,7 +109,7 @@ static int i915_gem_userptr_get_pages(struct drm_i915_gem_object *obj)
return -E2BIG;
num_pages = obj->base.size >> PAGE_SHIFT;
- st = kmalloc(sizeof(*st), GFP_KERNEL);
+ st = kmalloc_obj(*st, GFP_KERNEL);
if (!st)
return -ENOMEM;
@@ -258,7 +258,7 @@ int i915_gem_object_userptr_submit_init(struct drm_i915_gem_object *obj)
if (ret)
return ret;
- pvec = kvmalloc_array(num_pages, sizeof(struct page *), GFP_KERNEL);
+ pvec = kvmalloc_objs(struct page *, num_pages, GFP_KERNEL);
if (!pvec)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gem/selftests/huge_gem_object.c b/drivers/gpu/drm/i915/gem/selftests/huge_gem_object.c
index bac957755068..8caaf325e56a 100644
--- a/drivers/gpu/drm/i915/gem/selftests/huge_gem_object.c
+++ b/drivers/gpu/drm/i915/gem/selftests/huge_gem_object.c
@@ -38,7 +38,7 @@ static int huge_get_pages(struct drm_i915_gem_object *obj)
return -E2BIG;
npages = obj->base.size / PAGE_SIZE;
- pages = kmalloc(sizeof(*pages), GFP);
+ pages = kmalloc_obj(*pages, GFP);
if (!pages)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
index 02e9bf87f654..44718e728291 100644
--- a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
+++ b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
@@ -88,7 +88,7 @@ static int get_huge_pages(struct drm_i915_gem_object *obj)
if (overflows_type(obj->base.size >> PAGE_SHIFT, unsigned int))
return -E2BIG;
- st = kmalloc(sizeof(*st), GFP);
+ st = kmalloc_obj(*st, GFP);
if (!st)
return -ENOMEM;
@@ -220,7 +220,7 @@ static int fake_get_huge_pages(struct drm_i915_gem_object *obj)
if (overflows_type(obj->base.size >> PAGE_SHIFT, unsigned int))
return -E2BIG;
- st = kmalloc(sizeof(*st), GFP);
+ st = kmalloc_obj(*st, GFP);
if (!st)
return -ENOMEM;
@@ -270,7 +270,7 @@ static int fake_get_huge_pages_single(struct drm_i915_gem_object *obj)
struct scatterlist *sg;
unsigned int page_size;
- st = kmalloc(sizeof(*st), GFP);
+ st = kmalloc_obj(*st, GFP);
if (!st)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c
index 3557e9e6f422..ee661b7d3c6f 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c
@@ -540,7 +540,7 @@ tiled_blits_create(struct intel_engine_cs *engine, struct rnd_state *prng)
u64 hole_size;
int err;
- t = kzalloc(sizeof(*t), GFP_KERNEL);
+ t = kzalloc_obj(*t, GFP_KERNEL);
if (!t)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
index 1330c0b431a7..223a9ca32d22 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c
@@ -56,7 +56,7 @@ static int live_nop_switch(void *arg)
if (IS_ERR(file))
return PTR_ERR(file);
- ctx = kcalloc(nctx, sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_objs(*ctx, nctx, GFP_KERNEL);
if (!ctx) {
err = -ENOMEM;
goto out_file;
@@ -317,7 +317,7 @@ static int live_parallel_switch(void *arg)
engines = i915_gem_context_lock_engines(ctx);
count = engines->num_engines;
- data = kcalloc(count, sizeof(*data), GFP_KERNEL);
+ data = kzalloc_objs(*data, count, GFP_KERNEL);
if (!data) {
i915_gem_context_unlock_engines(ctx);
err = -ENOMEM;
@@ -1054,7 +1054,7 @@ __sseu_prepare(const char *name,
if (!(flags & (TEST_BUSY | TEST_RESET)))
return 0;
- *spin = kzalloc(sizeof(**spin), GFP_KERNEL);
+ *spin = kzalloc_obj(**spin, GFP_KERNEL);
if (!*spin)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
index 0d250d57496a..17829ad57099 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
@@ -677,7 +677,7 @@ static int igt_mmap_offset_exhaustion(void *arg)
list_for_each_entry_safe(hole, next, &mm->hole_stack, hole_stack) {
struct drm_mm_node *resv;
- resv = kzalloc(sizeof(*resv), GFP_NOWAIT);
+ resv = kzalloc_obj(*resv, GFP_NOWAIT);
if (!resv) {
err = -ENOMEM;
goto out_park;
diff --git a/drivers/gpu/drm/i915/gem/selftests/mock_context.c b/drivers/gpu/drm/i915/gem/selftests/mock_context.c
index fd8babb513e5..35cf3d0dd08f 100644
--- a/drivers/gpu/drm/i915/gem/selftests/mock_context.c
+++ b/drivers/gpu/drm/i915/gem/selftests/mock_context.c
@@ -17,7 +17,7 @@ mock_context(struct drm_i915_private *i915,
struct i915_gem_engines *e;
struct intel_sseu null_sseu = {};
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return NULL;
diff --git a/drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.c b/drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.c
index 5cd58e0f0dcf..8eabb6aa2f65 100644
--- a/drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.c
+++ b/drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.c
@@ -15,7 +15,7 @@ static struct sg_table *mock_map_dma_buf(struct dma_buf_attachment *attachment,
struct scatterlist *sg;
int i, err;
- st = kmalloc(sizeof(*st), GFP_KERNEL);
+ st = kmalloc_obj(*st, GFP_KERNEL);
if (!st)
return ERR_PTR(-ENOMEM);
@@ -103,7 +103,7 @@ static struct dma_buf *mock_dmabuf(int npages)
struct dma_buf *dmabuf;
int i;
- mock = kmalloc(struct_size(mock, pages, npages), GFP_KERNEL);
+ mock = kmalloc_flex(*mock, pages, npages, GFP_KERNEL);
if (!mock)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/gt/gen6_ppgtt.c b/drivers/gpu/drm/i915/gt/gen6_ppgtt.c
index c2bdc133c89a..6cbf5dc04d9a 100644
--- a/drivers/gpu/drm/i915/gt/gen6_ppgtt.c
+++ b/drivers/gpu/drm/i915/gt/gen6_ppgtt.c
@@ -431,7 +431,7 @@ struct i915_ppgtt *gen6_ppgtt_create(struct intel_gt *gt)
struct gen6_ppgtt *ppgtt;
int err;
- ppgtt = kzalloc(sizeof(*ppgtt), GFP_KERNEL);
+ ppgtt = kzalloc_obj(*ppgtt, GFP_KERNEL);
if (!ppgtt)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/gt/gen8_ppgtt.c b/drivers/gpu/drm/i915/gt/gen8_ppgtt.c
index 398d60a66410..1e1d035a0391 100644
--- a/drivers/gpu/drm/i915/gt/gen8_ppgtt.c
+++ b/drivers/gpu/drm/i915/gt/gen8_ppgtt.c
@@ -1006,7 +1006,7 @@ struct i915_ppgtt *gen8_ppgtt_create(struct intel_gt *gt,
struct i915_ppgtt *ppgtt;
int err;
- ppgtt = kzalloc(sizeof(*ppgtt), GFP_KERNEL);
+ ppgtt = kzalloc_obj(*ppgtt, GFP_KERNEL);
if (!ppgtt)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c b/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c
index bf6117d5fc57..e18c019b7725 100644
--- a/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c
+++ b/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c
@@ -279,7 +279,7 @@ intel_breadcrumbs_create(struct intel_engine_cs *irq_engine)
{
struct intel_breadcrumbs *b;
- b = kzalloc(sizeof(*b), GFP_KERNEL);
+ b = kzalloc_obj(*b, GFP_KERNEL);
if (!b)
return NULL;
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
index 98a3a7a9de50..53b7554b78b9 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
@@ -471,7 +471,7 @@ static int intel_engine_setup(struct intel_gt *gt, enum intel_engine_id id,
if (GEM_DEBUG_WARN_ON(gt->engine_class[info->class][info->instance]))
return -EINVAL;
- engine = kzalloc(sizeof(*engine), GFP_KERNEL);
+ engine = kzalloc_obj(*engine, GFP_KERNEL);
if (!engine)
return -ENOMEM;
@@ -1311,7 +1311,7 @@ static int measure_breadcrumb_dw(struct intel_context *ce)
GEM_BUG_ON(!engine->gt->scratch);
- frame = kzalloc(sizeof(*frame), GFP_KERNEL);
+ frame = kzalloc_obj(*frame, GFP_KERNEL);
if (!frame)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
index 3df683b0402a..546ef2121f44 100644
--- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
+++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c
@@ -2254,7 +2254,7 @@ static struct execlists_capture *capture_regs(struct intel_engine_cs *engine)
const gfp_t gfp = GFP_ATOMIC | __GFP_NOWARN;
struct execlists_capture *cap;
- cap = kmalloc(sizeof(*cap), gfp);
+ cap = kmalloc_obj(*cap, gfp);
if (!cap)
return NULL;
@@ -3934,7 +3934,7 @@ execlists_create_virtual(struct intel_engine_cs **siblings, unsigned int count,
unsigned int n;
int err;
- ve = kzalloc(struct_size(ve, siblings, count), GFP_KERNEL);
+ ve = kzalloc_flex(*ve, siblings, count, GFP_KERNEL);
if (!ve)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c b/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
index 5eda98ebc1ae..c1904e0d24c7 100644
--- a/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
+++ b/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
@@ -865,9 +865,8 @@ void intel_ggtt_init_fences(struct i915_ggtt *ggtt)
if (intel_vgpu_active(i915))
num_fences = intel_uncore_read(uncore,
vgtif_reg(avail_rs.fence_num));
- ggtt->fence_regs = kcalloc(num_fences,
- sizeof(*ggtt->fence_regs),
- GFP_KERNEL);
+ ggtt->fence_regs = kzalloc_objs(*ggtt->fence_regs, num_fences,
+ GFP_KERNEL);
if (!ggtt->fence_regs)
num_fences = 0;
diff --git a/drivers/gpu/drm/i915/gt/intel_gsc.c b/drivers/gpu/drm/i915/gt/intel_gsc.c
index c43febc862dc..d0b61fcc6eb7 100644
--- a/drivers/gpu/drm/i915/gt/intel_gsc.c
+++ b/drivers/gpu/drm/i915/gt/intel_gsc.c
@@ -204,7 +204,7 @@ static void gsc_init_one(struct drm_i915_private *i915, struct intel_gsc *gsc,
}
add_device:
- adev = kzalloc(sizeof(*adev), GFP_KERNEL);
+ adev = kzalloc_obj(*adev, GFP_KERNEL);
if (!adev)
goto fail;
diff --git a/drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c b/drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c
index c7befc5c20d0..372cdc758c5f 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c
+++ b/drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c
@@ -144,8 +144,8 @@ node_create(struct intel_gt_buffer_pool *pool, size_t sz,
struct intel_gt_buffer_pool_node *node;
struct drm_i915_gem_object *obj;
- node = kmalloc(sizeof(*node),
- GFP_KERNEL | __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
+ node = kmalloc_obj(*node,
+ GFP_KERNEL | __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
if (!node)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/gt/intel_ppgtt.c b/drivers/gpu/drm/i915/gt/intel_ppgtt.c
index d07a4f97b943..72d8473a448b 100644
--- a/drivers/gpu/drm/i915/gt/intel_ppgtt.c
+++ b/drivers/gpu/drm/i915/gt/intel_ppgtt.c
@@ -17,7 +17,7 @@ struct i915_page_table *alloc_pt(struct i915_address_space *vm, int sz)
{
struct i915_page_table *pt;
- pt = kmalloc(sizeof(*pt), I915_GFP_ALLOW_FAIL);
+ pt = kmalloc_obj(*pt, I915_GFP_ALLOW_FAIL);
if (unlikely(!pt))
return ERR_PTR(-ENOMEM);
@@ -36,11 +36,11 @@ struct i915_page_directory *__alloc_pd(int count)
{
struct i915_page_directory *pd;
- pd = kzalloc(sizeof(*pd), I915_GFP_ALLOW_FAIL);
+ pd = kzalloc_obj(*pd, I915_GFP_ALLOW_FAIL);
if (unlikely(!pd))
return NULL;
- pd->entry = kcalloc(count, sizeof(*pd->entry), I915_GFP_ALLOW_FAIL);
+ pd->entry = kzalloc_objs(*pd->entry, count, I915_GFP_ALLOW_FAIL);
if (unlikely(!pd->entry)) {
kfree(pd);
return NULL;
diff --git a/drivers/gpu/drm/i915/gt/intel_ring.c b/drivers/gpu/drm/i915/gt/intel_ring.c
index b74d9205c0f5..73e342a95dcb 100644
--- a/drivers/gpu/drm/i915/gt/intel_ring.c
+++ b/drivers/gpu/drm/i915/gt/intel_ring.c
@@ -152,7 +152,7 @@ intel_engine_create_ring(struct intel_engine_cs *engine, int size)
GEM_BUG_ON(!is_power_of_2(size));
GEM_BUG_ON(RING_CTL_SIZE(size) & ~RING_NR_PAGES);
- ring = kzalloc(sizeof(*ring), GFP_KERNEL);
+ ring = kzalloc_obj(*ring, GFP_KERNEL);
if (!ring)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/gt/intel_timeline.c b/drivers/gpu/drm/i915/gt/intel_timeline.c
index 843f72829a24..98a6aadff7dd 100644
--- a/drivers/gpu/drm/i915/gt/intel_timeline.c
+++ b/drivers/gpu/drm/i915/gt/intel_timeline.c
@@ -151,7 +151,7 @@ __intel_timeline_create(struct intel_gt *gt,
struct intel_timeline *timeline;
int err;
- timeline = kzalloc(sizeof(*timeline), GFP_KERNEL);
+ timeline = kzalloc_obj(*timeline, GFP_KERNEL);
if (!timeline)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index ece88c612e27..d47a78af3622 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -157,8 +157,8 @@ static void _wa_add(struct i915_wa_list *wal, const struct i915_wa *wa)
if (IS_ALIGNED(wal->count, grow)) { /* Either uninitialized or full. */
struct i915_wa *list;
- list = kmalloc_array(ALIGN(wal->count + 1, grow), sizeof(*list),
- GFP_KERNEL);
+ list = kmalloc_objs(*list, ALIGN(wal->count + 1, grow),
+ GFP_KERNEL);
if (!list) {
drm_err(&i915->drm, "No space for workaround init!\n");
return;
diff --git a/drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.c b/drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.c
index 9e4f0e417b3b..67326bc83310 100644
--- a/drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.c
+++ b/drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.c
@@ -72,7 +72,7 @@ static struct pulse *pulse_create(void)
{
struct pulse *p;
- p = kmalloc(sizeof(*p), GFP_KERNEL);
+ p = kmalloc_obj(*p, GFP_KERNEL);
if (!p)
return p;
diff --git a/drivers/gpu/drm/i915/gt/selftest_execlists.c b/drivers/gpu/drm/i915/gt/selftest_execlists.c
index a06b397b6d42..1e99179ce32f 100644
--- a/drivers/gpu/drm/i915/gt/selftest_execlists.c
+++ b/drivers/gpu/drm/i915/gt/selftest_execlists.c
@@ -3564,7 +3564,7 @@ static int smoke_crescendo(struct preempt_smoke *smoke, unsigned int flags)
unsigned long count;
int err = 0;
- arg = kmalloc_array(I915_NUM_ENGINES, sizeof(*arg), GFP_KERNEL);
+ arg = kmalloc_objs(*arg, I915_NUM_ENGINES, GFP_KERNEL);
if (!arg)
return -ENOMEM;
@@ -3648,9 +3648,8 @@ static int live_preempt_smoke(void *arg)
u32 *cs;
int n;
- smoke.contexts = kmalloc_array(smoke.ncontext,
- sizeof(*smoke.contexts),
- GFP_KERNEL);
+ smoke.contexts = kmalloc_objs(*smoke.contexts, smoke.ncontext,
+ GFP_KERNEL);
if (!smoke.contexts)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
index 4f252f704975..2204058849bd 100644
--- a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
+++ b/drivers/gpu/drm/i915/gt/selftest_hangcheck.c
@@ -986,7 +986,7 @@ static int __igt_reset_engines(struct intel_gt *gt,
h.ctx->sched.priority = 1024;
}
- threads = kmalloc_array(I915_NUM_ENGINES, sizeof(*threads), GFP_KERNEL);
+ threads = kmalloc_objs(*threads, I915_NUM_ENGINES, GFP_KERNEL);
if (!threads)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gt/selftest_migrate.c b/drivers/gpu/drm/i915/gt/selftest_migrate.c
index fdf0e9858607..71f2c2ca71a2 100644
--- a/drivers/gpu/drm/i915/gt/selftest_migrate.c
+++ b/drivers/gpu/drm/i915/gt/selftest_migrate.c
@@ -689,7 +689,7 @@ static int threaded_migrate(struct intel_migrate *migrate,
unsigned int i;
int err = 0;
- thread = kcalloc(n_cpus, sizeof(*thread), GFP_KERNEL);
+ thread = kzalloc_objs(*thread, n_cpus, GFP_KERNEL);
if (!thread)
return 0;
diff --git a/drivers/gpu/drm/i915/gt/selftest_rc6.c b/drivers/gpu/drm/i915/gt/selftest_rc6.c
index 41716ed454b7..166175f0b19c 100644
--- a/drivers/gpu/drm/i915/gt/selftest_rc6.c
+++ b/drivers/gpu/drm/i915/gt/selftest_rc6.c
@@ -201,7 +201,7 @@ randomised_engines(struct intel_gt *gt,
if (!n)
return NULL;
- engines = kmalloc_array(n, sizeof(*engines), GFP_KERNEL);
+ engines = kmalloc_objs(*engines, n, GFP_KERNEL);
if (!engines)
return NULL;
diff --git a/drivers/gpu/drm/i915/gt/selftest_slpc.c b/drivers/gpu/drm/i915/gt/selftest_slpc.c
index e61bb0bad12c..6e25d39fa193 100644
--- a/drivers/gpu/drm/i915/gt/selftest_slpc.c
+++ b/drivers/gpu/drm/i915/gt/selftest_slpc.c
@@ -499,7 +499,7 @@ static int live_slpc_tile_interaction(void *arg)
struct slpc_thread *threads;
int i = 0, ret = 0;
- threads = kcalloc(I915_MAX_GT, sizeof(*threads), GFP_KERNEL);
+ threads = kzalloc_objs(*threads, I915_MAX_GT, GFP_KERNEL);
if (!threads)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gt/selftest_timeline.c b/drivers/gpu/drm/i915/gt/selftest_timeline.c
index fa36cf920bde..6860b61915b9 100644
--- a/drivers/gpu/drm/i915/gt/selftest_timeline.c
+++ b/drivers/gpu/drm/i915/gt/selftest_timeline.c
@@ -170,7 +170,7 @@ static int mock_hwsp_freelist(void *arg)
state.max = PAGE_SIZE / sizeof(*state.history);
state.count = 0;
- state.history = kcalloc(state.max, sizeof(*state.history), GFP_KERNEL);
+ state.history = kzalloc_objs(*state.history, state.max, GFP_KERNEL);
if (!state.history) {
err = -ENOMEM;
goto err_put;
@@ -536,9 +536,8 @@ static int live_hwsp_engine(void *arg)
* independently to each of their breadcrumb slots.
*/
- timelines = kvmalloc_array(NUM_TIMELINES * I915_NUM_ENGINES,
- sizeof(*timelines),
- GFP_KERNEL);
+ timelines = kvmalloc_objs(*timelines, NUM_TIMELINES * I915_NUM_ENGINES,
+ GFP_KERNEL);
if (!timelines)
return -ENOMEM;
@@ -611,9 +610,8 @@ static int live_hwsp_alternate(void *arg)
* engines.
*/
- timelines = kvmalloc_array(NUM_TIMELINES * I915_NUM_ENGINES,
- sizeof(*timelines),
- GFP_KERNEL);
+ timelines = kvmalloc_objs(*timelines, NUM_TIMELINES * I915_NUM_ENGINES,
+ GFP_KERNEL);
if (!timelines)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gt/selftest_workarounds.c b/drivers/gpu/drm/i915/gt/selftest_workarounds.c
index 14a8b25b6204..24ee4ec4c287 100644
--- a/drivers/gpu/drm/i915/gt/selftest_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/selftest_workarounds.c
@@ -1204,7 +1204,7 @@ live_gpu_reset_workarounds(void *arg)
if (!intel_has_gpu_reset(gt))
return 0;
- lists = kzalloc(sizeof(*lists), GFP_KERNEL);
+ lists = kzalloc_obj(*lists, GFP_KERNEL);
if (!lists)
return -ENOMEM;
@@ -1248,7 +1248,7 @@ live_engine_reset_workarounds(void *arg)
if (!intel_has_reset_engine(gt))
return 0;
- lists = kzalloc(sizeof(*lists), GFP_KERNEL);
+ lists = kzalloc_obj(*lists, GFP_KERNEL);
if (!lists)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gt/shmem_utils.c b/drivers/gpu/drm/i915/gt/shmem_utils.c
index 5f37c699a320..1db6aa1e32d8 100644
--- a/drivers/gpu/drm/i915/gt/shmem_utils.c
+++ b/drivers/gpu/drm/i915/gt/shmem_utils.c
@@ -63,7 +63,7 @@ void *shmem_pin_map(struct file *file)
void *vaddr;
n_pages = file->f_mapping->host->i_size >> PAGE_SHIFT;
- pages = kvmalloc_array(n_pages, sizeof(*pages), GFP_KERNEL);
+ pages = kvmalloc_objs(*pages, n_pages, GFP_KERNEL);
if (!pages)
return NULL;
diff --git a/drivers/gpu/drm/i915/gt/sysfs_engines.c b/drivers/gpu/drm/i915/gt/sysfs_engines.c
index 4a81bc396b21..bb4eb815f0ff 100644
--- a/drivers/gpu/drm/i915/gt/sysfs_engines.c
+++ b/drivers/gpu/drm/i915/gt/sysfs_engines.c
@@ -430,7 +430,7 @@ kobj_engine(struct kobject *dir, struct intel_engine_cs *engine)
{
struct kobj_engine *ke;
- ke = kzalloc(sizeof(*ke), GFP_KERNEL);
+ ke = kzalloc_obj(*ke, GFP_KERNEL);
if (!ke)
return NULL;
@@ -458,7 +458,7 @@ static void add_defaults(struct kobj_engine *parent)
};
struct kobj_engine *ke;
- ke = kzalloc(sizeof(*ke), GFP_KERNEL);
+ ke = kzalloc_obj(*ke, GFP_KERNEL);
if (!ke)
return;
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
index 9547fff672bd..2e7257f5543b 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c
@@ -275,7 +275,7 @@ __alloc_ext_regs(struct __guc_mmio_reg_descr_group *newlist,
{
struct __guc_mmio_reg_descr *list;
- list = kcalloc(num_regs, sizeof(struct __guc_mmio_reg_descr), GFP_KERNEL);
+ list = kzalloc_objs(struct __guc_mmio_reg_descr, num_regs, GFP_KERNEL);
if (!list)
return -ENOMEM;
@@ -320,7 +320,8 @@ guc_capture_alloc_steered_lists(struct intel_guc *guc,
return;
/* allocate an extra for an end marker */
- extlists = kcalloc(2, sizeof(struct __guc_mmio_reg_descr_group), GFP_KERNEL);
+ extlists = kzalloc_objs(struct __guc_mmio_reg_descr_group, 2,
+ GFP_KERNEL);
if (!extlists)
return;
@@ -984,13 +985,14 @@ guc_capture_alloc_one_node(struct intel_guc *guc)
struct __guc_capture_parsed_output *new;
int i;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return NULL;
for (i = 0; i < GUC_CAPTURE_LIST_TYPE_MAX; ++i) {
- new->reginfo[i].regs = kcalloc(guc->capture->max_mmio_per_node,
- sizeof(struct guc_mmio_reg), GFP_KERNEL);
+ new->reginfo[i].regs = kzalloc_objs(struct guc_mmio_reg,
+ guc->capture->max_mmio_per_node,
+ GFP_KERNEL);
if (!new->reginfo[i].regs) {
while (i)
kfree(new->reginfo[--i].regs);
@@ -1639,7 +1641,7 @@ void intel_guc_capture_destroy(struct intel_guc *guc)
int intel_guc_capture_init(struct intel_guc *guc)
{
- guc->capture = kzalloc(sizeof(*guc->capture), GFP_KERNEL);
+ guc->capture = kzalloc_obj(*guc->capture, GFP_KERNEL);
if (!guc->capture)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
index f1e53312ed90..8c4da526d461 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
@@ -866,7 +866,7 @@ static struct ct_incoming_msg *ct_alloc_msg(u32 num_dwords)
{
struct ct_incoming_msg *msg;
- msg = kmalloc(struct_size(msg, msg, num_dwords), GFP_ATOMIC);
+ msg = kmalloc_flex(*msg, msg, num_dwords, GFP_ATOMIC);
if (msg)
msg->size = num_dwords;
return msg;
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
index 68f2b8d363ac..1ba53ff64861 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
@@ -2110,7 +2110,7 @@ static int init_tlb_lookup(struct intel_guc *guc)
xa_init_flags(&guc->tlb_lookup, XA_FLAGS_ALLOC);
- wait = kzalloc(sizeof(*wait), GFP_KERNEL);
+ wait = kzalloc_obj(*wait, GFP_KERNEL);
if (!wait)
return -ENOMEM;
@@ -4222,9 +4222,7 @@ guc_create_parallel(struct intel_engine_cs **engines,
struct intel_context *parent = NULL, *ce, *err;
int i, j;
- siblings = kmalloc_array(num_siblings,
- sizeof(*siblings),
- GFP_KERNEL);
+ siblings = kmalloc_objs(*siblings, num_siblings, GFP_KERNEL);
if (!siblings)
return ERR_PTR(-ENOMEM);
@@ -5907,7 +5905,7 @@ guc_create_virtual(struct intel_engine_cs **siblings, unsigned int count,
unsigned int n;
int err;
- ve = kzalloc(sizeof(*ve), GFP_KERNEL);
+ ve = kzalloc_obj(*ve, GFP_KERNEL);
if (!ve)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/gt/uc/selftest_guc.c b/drivers/gpu/drm/i915/gt/uc/selftest_guc.c
index 68feb55654f7..8556a3e1ac3f 100644
--- a/drivers/gpu/drm/i915/gt/uc/selftest_guc.c
+++ b/drivers/gpu/drm/i915/gt/uc/selftest_guc.c
@@ -153,7 +153,7 @@ static int intel_guc_steal_guc_ids(void *arg)
struct i915_request *spin_rq = NULL, *rq, *last = NULL;
int number_guc_id_stolen = guc->number_guc_id_stolen;
- ce = kcalloc(GUC_MAX_CONTEXT_ID, sizeof(*ce), GFP_KERNEL);
+ ce = kzalloc_objs(*ce, GUC_MAX_CONTEXT_ID, GFP_KERNEL);
if (!ce) {
guc_err(guc, "Context array allocation failed\n");
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gvt/cmd_parser.c b/drivers/gpu/drm/i915/gvt/cmd_parser.c
index bf7c3d3f5f8a..d5d00cb84f2f 100644
--- a/drivers/gpu/drm/i915/gvt/cmd_parser.c
+++ b/drivers/gpu/drm/i915/gvt/cmd_parser.c
@@ -1921,7 +1921,7 @@ static int perform_bb_shadow(struct parser_exec_state *s)
if (ret)
return ret;
- bb = kzalloc(sizeof(*bb), GFP_KERNEL);
+ bb = kzalloc_obj(*bb, GFP_KERNEL);
if (!bb)
return -ENOMEM;
@@ -3226,7 +3226,7 @@ static int init_cmd_table(struct intel_gvt *gvt)
if (!(cmd_info[i].devices & gen_type))
continue;
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gvt/debugfs.c b/drivers/gpu/drm/i915/gvt/debugfs.c
index ae3fd2c3cd23..36f55861228f 100644
--- a/drivers/gpu/drm/i915/gvt/debugfs.c
+++ b/drivers/gpu/drm/i915/gvt/debugfs.c
@@ -68,7 +68,7 @@ static inline int mmio_diff_handler(struct intel_gvt *gvt,
vreg = vgpu_vreg(param->vgpu, offset);
if (preg != vreg) {
- node = kmalloc(sizeof(*node), GFP_ATOMIC);
+ node = kmalloc_obj(*node, GFP_ATOMIC);
if (!node)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gvt/display.c b/drivers/gpu/drm/i915/gvt/display.c
index 21341842c0a9..04ddd4709933 100644
--- a/drivers/gpu/drm/i915/gvt/display.c
+++ b/drivers/gpu/drm/i915/gvt/display.c
@@ -562,11 +562,11 @@ static int setup_virtual_dp_monitor(struct intel_vgpu *vgpu, int port_num,
if (drm_WARN_ON(&i915->drm, resolution >= GVT_EDID_NUM))
return -EINVAL;
- port->edid = kzalloc(sizeof(*(port->edid)), GFP_KERNEL);
+ port->edid = kzalloc_obj(*(port->edid), GFP_KERNEL);
if (!port->edid)
return -ENOMEM;
- port->dpcd = kzalloc(sizeof(*(port->dpcd)), GFP_KERNEL);
+ port->dpcd = kzalloc_obj(*(port->dpcd), GFP_KERNEL);
if (!port->dpcd) {
kfree(port->edid);
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gvt/dmabuf.c b/drivers/gpu/drm/i915/gvt/dmabuf.c
index 8e76869b352c..255abb5a849b 100644
--- a/drivers/gpu/drm/i915/gvt/dmabuf.c
+++ b/drivers/gpu/drm/i915/gvt/dmabuf.c
@@ -67,7 +67,7 @@ static int vgpu_gem_get_pages(struct drm_i915_gem_object *obj)
if (drm_WARN_ON(&dev_priv->drm, !vgpu))
return -ENODEV;
- st = kmalloc(sizeof(*st), GFP_KERNEL);
+ st = kmalloc_obj(*st, GFP_KERNEL);
if (unlikely(!st))
return -ENOMEM;
@@ -447,15 +447,14 @@ int intel_vgpu_query_plane(struct intel_vgpu *vgpu, void *args)
mutex_unlock(&vgpu->dmabuf_lock);
/* Need to allocate a new one*/
- dmabuf_obj = kmalloc(sizeof(struct intel_vgpu_dmabuf_obj), GFP_KERNEL);
+ dmabuf_obj = kmalloc_obj(struct intel_vgpu_dmabuf_obj, GFP_KERNEL);
if (unlikely(!dmabuf_obj)) {
gvt_vgpu_err("alloc dmabuf_obj failed\n");
ret = -ENOMEM;
goto out;
}
- dmabuf_obj->info = kmalloc(sizeof(struct intel_vgpu_fb_info),
- GFP_KERNEL);
+ dmabuf_obj->info = kmalloc_obj(struct intel_vgpu_fb_info, GFP_KERNEL);
if (unlikely(!dmabuf_obj->info)) {
gvt_vgpu_err("allocate intel vgpu fb info failed\n");
ret = -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gvt/gtt.c b/drivers/gpu/drm/i915/gvt/gtt.c
index 49028e7ef1e0..8cc24620a32e 100644
--- a/drivers/gpu/drm/i915/gvt/gtt.c
+++ b/drivers/gpu/drm/i915/gvt/gtt.c
@@ -654,7 +654,7 @@ static void *alloc_spt(gfp_t gfp_mask)
{
struct intel_vgpu_ppgtt_spt *spt;
- spt = kzalloc(sizeof(*spt), gfp_mask);
+ spt = kzalloc_obj(*spt, gfp_mask);
if (!spt)
return NULL;
@@ -1770,7 +1770,7 @@ static struct intel_vgpu_mm *vgpu_alloc_mm(struct intel_vgpu *vgpu)
{
struct intel_vgpu_mm *mm;
- mm = kzalloc(sizeof(*mm), GFP_KERNEL);
+ mm = kzalloc_obj(*mm, GFP_KERNEL);
if (!mm)
return NULL;
@@ -2206,7 +2206,7 @@ static int emulate_ggtt_mmio_write(struct intel_vgpu *vgpu, unsigned int off,
if (!found) {
/* the first partial part */
- partial_pte = kzalloc(sizeof(*partial_pte), GFP_KERNEL);
+ partial_pte = kzalloc_obj(*partial_pte, GFP_KERNEL);
if (!partial_pte)
return -ENOMEM;
partial_pte->offset = off;
@@ -2502,7 +2502,7 @@ static int setup_spt_oos(struct intel_gvt *gvt)
INIT_LIST_HEAD(>t->oos_page_use_list_head);
for (i = 0; i < preallocated_oos_pages; i++) {
- oos_page = kzalloc(sizeof(*oos_page), GFP_KERNEL);
+ oos_page = kzalloc_obj(*oos_page, GFP_KERNEL);
if (!oos_page) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/gpu/drm/i915/gvt/handlers.c b/drivers/gpu/drm/i915/gvt/handlers.c
index bd20f287720f..ade07397a585 100644
--- a/drivers/gpu/drm/i915/gvt/handlers.c
+++ b/drivers/gpu/drm/i915/gvt/handlers.c
@@ -2892,7 +2892,7 @@ static int handle_mmio(struct intel_gvt_mmio_table_iter *iter, u32 offset,
return -EEXIST;
}
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gvt/kvmgt.c b/drivers/gpu/drm/i915/gvt/kvmgt.c
index 009aa2df7958..62da85b3f2ca 100644
--- a/drivers/gpu/drm/i915/gvt/kvmgt.c
+++ b/drivers/gpu/drm/i915/gvt/kvmgt.c
@@ -250,7 +250,7 @@ static int __gvt_cache_add(struct intel_vgpu *vgpu, gfn_t gfn,
struct gvt_dma *new, *itr;
struct rb_node **link, *parent = NULL;
- new = kzalloc(sizeof(struct gvt_dma), GFP_KERNEL);
+ new = kzalloc_obj(struct gvt_dma, GFP_KERNEL);
if (!new)
return -ENOMEM;
@@ -378,7 +378,7 @@ static void kvmgt_protect_table_add(struct intel_vgpu *info, gfn_t gfn)
if (kvmgt_gfn_is_write_protected(info, gfn))
return;
- p = kzalloc(sizeof(struct kvmgt_pgfn), GFP_ATOMIC);
+ p = kzalloc_obj(struct kvmgt_pgfn, GFP_ATOMIC);
if (WARN(!p, "gfn: 0x%llx\n", gfn))
return;
@@ -595,7 +595,7 @@ int intel_gvt_set_edid(struct intel_vgpu *vgpu, int port_num)
struct vfio_edid_region *base;
int ret;
- base = kzalloc(sizeof(*base), GFP_KERNEL);
+ base = kzalloc_obj(*base, GFP_KERNEL);
if (!base)
return -ENOMEM;
@@ -1183,8 +1183,7 @@ static int intel_vgpu_ioctl_get_region_info(struct vfio_device *vfio_dev,
VFIO_REGION_INFO_FLAG_WRITE;
info->size = gvt_aperture_sz(vgpu->gvt);
- sparse = kzalloc(struct_size(sparse, areas, nr_areas),
- GFP_KERNEL);
+ sparse = kzalloc_flex(*sparse, areas, nr_areas, GFP_KERNEL);
if (!sparse)
return -ENOMEM;
@@ -1830,7 +1829,7 @@ static int intel_gvt_init_device(struct drm_i915_private *i915)
if (drm_WARN_ON(&i915->drm, i915->gvt))
return -EEXIST;
- gvt = kzalloc(sizeof(struct intel_gvt), GFP_KERNEL);
+ gvt = kzalloc_obj(struct intel_gvt, GFP_KERNEL);
if (!gvt)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gvt/page_track.c b/drivers/gpu/drm/i915/gvt/page_track.c
index b22ef801963e..862e199e5486 100644
--- a/drivers/gpu/drm/i915/gvt/page_track.c
+++ b/drivers/gpu/drm/i915/gvt/page_track.c
@@ -58,7 +58,7 @@ int intel_vgpu_register_page_track(struct intel_vgpu *vgpu, unsigned long gfn,
if (track)
return -EEXIST;
- track = kzalloc(sizeof(*track), GFP_KERNEL);
+ track = kzalloc_obj(*track, GFP_KERNEL);
if (!track)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gvt/sched_policy.c b/drivers/gpu/drm/i915/gvt/sched_policy.c
index 9736a15a896f..21e823113543 100644
--- a/drivers/gpu/drm/i915/gvt/sched_policy.c
+++ b/drivers/gpu/drm/i915/gvt/sched_policy.c
@@ -282,7 +282,7 @@ static int tbs_sched_init(struct intel_gvt *gvt)
struct gvt_sched_data *data;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -312,7 +312,7 @@ static int tbs_sched_init_vgpu(struct intel_vgpu *vgpu)
{
struct vgpu_sched_data *data;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/gvt/vgpu.c b/drivers/gpu/drm/i915/gvt/vgpu.c
index 96d0bd1fa337..003aacd770e9 100644
--- a/drivers/gpu/drm/i915/gvt/vgpu.c
+++ b/drivers/gpu/drm/i915/gvt/vgpu.c
@@ -113,13 +113,11 @@ int intel_gvt_init_vgpu_types(struct intel_gvt *gvt)
unsigned int num_types = ARRAY_SIZE(intel_vgpu_configs);
unsigned int i;
- gvt->types = kcalloc(num_types, sizeof(struct intel_vgpu_type),
- GFP_KERNEL);
+ gvt->types = kzalloc_objs(struct intel_vgpu_type, num_types, GFP_KERNEL);
if (!gvt->types)
return -ENOMEM;
- gvt->mdev_types = kcalloc(num_types, sizeof(*gvt->mdev_types),
- GFP_KERNEL);
+ gvt->mdev_types = kzalloc_objs(*gvt->mdev_types, num_types, GFP_KERNEL);
if (!gvt->mdev_types)
goto out_free_types;
diff --git a/drivers/gpu/drm/i915/i915_active.c b/drivers/gpu/drm/i915/i915_active.c
index 6b0c1162505a..4cbbbe8307a8 100644
--- a/drivers/gpu/drm/i915/i915_active.c
+++ b/drivers/gpu/drm/i915/i915_active.c
@@ -650,7 +650,7 @@ static int __await_barrier(struct i915_active *ref, struct i915_sw_fence *fence)
{
struct wait_barrier *wb;
- wb = kmalloc(sizeof(*wb), GFP_KERNEL);
+ wb = kmalloc_obj(*wb, GFP_KERNEL);
if (unlikely(!wb))
return -ENOMEM;
@@ -1160,7 +1160,7 @@ struct i915_active *i915_active_create(void)
{
struct auto_active *aa;
- aa = kmalloc(sizeof(*aa), GFP_KERNEL);
+ aa = kmalloc_obj(*aa, GFP_KERNEL);
if (!aa)
return NULL;
diff --git a/drivers/gpu/drm/i915/i915_cmd_parser.c b/drivers/gpu/drm/i915/i915_cmd_parser.c
index 7654f1be8d3b..539119d2b594 100644
--- a/drivers/gpu/drm/i915/i915_cmd_parser.c
+++ b/drivers/gpu/drm/i915/i915_cmd_parser.c
@@ -918,8 +918,8 @@ static int init_hash_table(struct intel_engine_cs *engine,
for (j = 0; j < table->count; j++) {
const struct drm_i915_cmd_descriptor *desc =
&table->table[j];
- struct cmd_node *desc_node =
- kmalloc(sizeof(*desc_node), GFP_KERNEL);
+ struct cmd_node *desc_node = kmalloc_obj(*desc_node,
+ GFP_KERNEL);
if (!desc_node)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/i915_deps.c b/drivers/gpu/drm/i915/i915_deps.c
index 91c61864285a..40133e0ac01a 100644
--- a/drivers/gpu/drm/i915/i915_deps.c
+++ b/drivers/gpu/drm/i915/i915_deps.c
@@ -82,7 +82,7 @@ static int i915_deps_grow(struct i915_deps *deps, struct dma_fence *fence,
struct dma_fence **new_fences;
new_size = max(new_size, I915_DEPS_MIN_ALLOC_CHUNK);
- new_fences = kmalloc_array(new_size, sizeof(*new_fences), deps->gfp);
+ new_fences = kmalloc_objs(*new_fences, new_size, deps->gfp);
if (!new_fences)
goto sync;
diff --git a/drivers/gpu/drm/i915/i915_drm_client.c b/drivers/gpu/drm/i915/i915_drm_client.c
index 168d7375304b..2407414c2ff1 100644
--- a/drivers/gpu/drm/i915/i915_drm_client.c
+++ b/drivers/gpu/drm/i915/i915_drm_client.c
@@ -21,7 +21,7 @@ struct i915_drm_client *i915_drm_client_alloc(void)
{
struct i915_drm_client *client;
- client = kzalloc(sizeof(*client), GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (!client)
return NULL;
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index b40d4d88de01..6e44b4d633f9 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1319,7 +1319,7 @@ int i915_gem_open(struct drm_i915_private *i915, struct drm_file *file)
drm_dbg(&i915->drm, "\n");
- file_priv = kzalloc(sizeof(*file_priv), GFP_KERNEL);
+ file_priv = kzalloc_obj(*file_priv, GFP_KERNEL);
if (!file_priv)
goto err_alloc;
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index 303d8d9b7775..a99b4e45d26c 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -1155,7 +1155,7 @@ i915_vma_coredump_create(const struct intel_gt *gt,
if (!vma_res || !vma_res->bi.pages || !compress)
return NULL;
- dst = kmalloc(sizeof(*dst), ALLOW_FAIL);
+ dst = kmalloc_obj(*dst, ALLOW_FAIL);
if (!dst)
return NULL;
@@ -1502,7 +1502,7 @@ capture_vma_snapshot(struct intel_engine_capture_vma *next,
if (!vma_res)
return next;
- c = kmalloc(sizeof(*c), gfp);
+ c = kmalloc_obj(*c, gfp);
if (!c)
return next;
@@ -1598,7 +1598,7 @@ intel_engine_coredump_alloc(struct intel_engine_cs *engine, gfp_t gfp, u32 dump_
{
struct intel_engine_coredump *ee;
- ee = kzalloc(sizeof(*ee), gfp);
+ ee = kzalloc_obj(*ee, gfp);
if (!ee)
return NULL;
@@ -1829,7 +1829,7 @@ gt_record_uc(struct intel_gt_coredump *gt,
const struct intel_uc *uc = >->_gt->uc;
struct intel_uc_coredump *error_uc;
- error_uc = kzalloc(sizeof(*error_uc), ALLOW_FAIL);
+ error_uc = kzalloc_obj(*error_uc, ALLOW_FAIL);
if (!error_uc)
return NULL;
@@ -2088,7 +2088,7 @@ i915_gpu_coredump_alloc(struct drm_i915_private *i915, gfp_t gfp)
if (!i915->params.error_capture)
return NULL;
- error = kzalloc(sizeof(*error), gfp);
+ error = kzalloc_obj(*error, gfp);
if (!error)
return NULL;
@@ -2112,7 +2112,7 @@ intel_gt_coredump_alloc(struct intel_gt *gt, gfp_t gfp, u32 dump_flags)
{
struct intel_gt_coredump *gc;
- gc = kzalloc(sizeof(*gc), gfp);
+ gc = kzalloc_obj(*gc, gfp);
if (!gc)
return NULL;
@@ -2143,7 +2143,7 @@ i915_vma_capture_prepare(struct intel_gt_coredump *gt)
{
struct i915_vma_compress *compress;
- compress = kmalloc(sizeof(*compress), ALLOW_FAIL);
+ compress = kmalloc_obj(*compress, ALLOW_FAIL);
if (!compress)
return NULL;
diff --git a/drivers/gpu/drm/i915/i915_hdcp_gsc.c b/drivers/gpu/drm/i915/i915_hdcp_gsc.c
index 9906da2aef1c..988c4cafa7c6 100644
--- a/drivers/gpu/drm/i915/i915_hdcp_gsc.c
+++ b/drivers/gpu/drm/i915/i915_hdcp_gsc.c
@@ -94,7 +94,7 @@ static struct intel_hdcp_gsc_context *intel_hdcp_gsc_context_alloc(struct drm_de
struct intel_hdcp_gsc_context *gsc_context;
int ret;
- gsc_context = kzalloc(sizeof(*gsc_context), GFP_KERNEL);
+ gsc_context = kzalloc_obj(*gsc_context, GFP_KERNEL);
if (!gsc_context)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/i915_hwmon.c b/drivers/gpu/drm/i915/i915_hwmon.c
index 7dfe1784153f..9d87d58d2385 100644
--- a/drivers/gpu/drm/i915/i915_hwmon.c
+++ b/drivers/gpu/drm/i915/i915_hwmon.c
@@ -915,7 +915,7 @@ void i915_hwmon_register(struct drm_i915_private *i915)
if (!IS_DGFX(i915))
return;
- hwmon = kzalloc(sizeof(*hwmon), GFP_KERNEL);
+ hwmon = kzalloc_obj(*hwmon, GFP_KERNEL);
if (!hwmon)
return;
diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index 0b9d9f3f7813..1b11442a3a39 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -2200,7 +2200,7 @@ alloc_oa_config_buffer(struct i915_perf_stream *stream,
u32 *cs;
int err;
- oa_bo = kzalloc(sizeof(*oa_bo), GFP_KERNEL);
+ oa_bo = kzalloc_obj(*oa_bo, GFP_KERNEL);
if (!oa_bo)
return ERR_PTR(-ENOMEM);
@@ -3872,7 +3872,7 @@ i915_perf_open_ioctl_locked(struct i915_perf *perf,
goto err_ctx;
}
- stream = kzalloc(sizeof(*stream), GFP_KERNEL);
+ stream = kzalloc_obj(*stream, GFP_KERNEL);
if (!stream) {
ret = -ENOMEM;
goto err_ctx;
@@ -4505,7 +4505,7 @@ static struct i915_oa_reg *alloc_oa_regs(struct i915_perf *perf,
if (!is_valid)
return ERR_PTR(-EINVAL);
- oa_regs = kmalloc_array(n_regs, sizeof(*oa_regs), GFP_KERNEL);
+ oa_regs = kmalloc_objs(*oa_regs, n_regs, GFP_KERNEL);
if (!oa_regs)
return ERR_PTR(-ENOMEM);
@@ -4614,7 +4614,7 @@ int i915_perf_add_config_ioctl(struct drm_device *dev, void *data,
return -EINVAL;
}
- oa_config = kzalloc(sizeof(*oa_config), GFP_KERNEL);
+ oa_config = kzalloc_obj(*oa_config, GFP_KERNEL);
if (!oa_config) {
drm_dbg(&perf->i915->drm,
"Failed to allocate memory for the OA config\n");
@@ -4910,7 +4910,7 @@ static int oa_init_gt(struct intel_gt *gt)
struct i915_perf_group *g;
intel_engine_mask_t tmp;
- g = kcalloc(num_groups, sizeof(*g), GFP_KERNEL);
+ g = kzalloc_objs(*g, num_groups, GFP_KERNEL);
if (!g)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/i915_pmu.c b/drivers/gpu/drm/i915/i915_pmu.c
index a6697db21c72..d52c1ed69b8e 100644
--- a/drivers/gpu/drm/i915/i915_pmu.c
+++ b/drivers/gpu/drm/i915/i915_pmu.c
@@ -1028,16 +1028,16 @@ create_event_attributes(struct i915_pmu *pmu)
}
/* Allocate attribute objects and table. */
- i915_attr = kcalloc(count, sizeof(*i915_attr), GFP_KERNEL);
+ i915_attr = kzalloc_objs(*i915_attr, count, GFP_KERNEL);
if (!i915_attr)
goto err_alloc;
- pmu_attr = kcalloc(count, sizeof(*pmu_attr), GFP_KERNEL);
+ pmu_attr = kzalloc_objs(*pmu_attr, count, GFP_KERNEL);
if (!pmu_attr)
goto err_alloc;
/* Max one pointer of each attribute type plus a termination entry. */
- attr = kcalloc(count * 2 + 1, sizeof(*attr), GFP_KERNEL);
+ attr = kzalloc_objs(*attr, count * 2 + 1, GFP_KERNEL);
if (!attr)
goto err_alloc;
diff --git a/drivers/gpu/drm/i915/i915_scatterlist.c b/drivers/gpu/drm/i915/i915_scatterlist.c
index 4d830740946d..ad868adb30dc 100644
--- a/drivers/gpu/drm/i915/i915_scatterlist.c
+++ b/drivers/gpu/drm/i915/i915_scatterlist.c
@@ -90,7 +90,7 @@ struct i915_refct_sgt *i915_rsgt_from_mm_node(const struct drm_mm_node *node,
GEM_BUG_ON(!max_segment);
- rsgt = kmalloc(sizeof(*rsgt), GFP_KERNEL | __GFP_NOWARN);
+ rsgt = kmalloc_obj(*rsgt, GFP_KERNEL | __GFP_NOWARN);
if (!rsgt)
return ERR_PTR(-ENOMEM);
@@ -178,7 +178,7 @@ struct i915_refct_sgt *i915_rsgt_from_buddy_resource(struct ttm_resource *res,
GEM_BUG_ON(list_empty(blocks));
GEM_BUG_ON(!max_segment);
- rsgt = kmalloc(sizeof(*rsgt), GFP_KERNEL | __GFP_NOWARN);
+ rsgt = kmalloc_obj(*rsgt, GFP_KERNEL | __GFP_NOWARN);
if (!rsgt)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/i915_scheduler.c b/drivers/gpu/drm/i915/i915_scheduler.c
index 70a854557e6e..101df7236d6c 100644
--- a/drivers/gpu/drm/i915/i915_scheduler.c
+++ b/drivers/gpu/drm/i915/i915_scheduler.c
@@ -453,7 +453,7 @@ i915_sched_engine_create(unsigned int subclass)
{
struct i915_sched_engine *sched_engine;
- sched_engine = kzalloc(sizeof(*sched_engine), GFP_KERNEL);
+ sched_engine = kzalloc_obj(*sched_engine, GFP_KERNEL);
if (!sched_engine)
return NULL;
diff --git a/drivers/gpu/drm/i915/i915_sw_fence.c b/drivers/gpu/drm/i915/i915_sw_fence.c
index 73e89b168fc3..f24f616e23ee 100644
--- a/drivers/gpu/drm/i915/i915_sw_fence.c
+++ b/drivers/gpu/drm/i915/i915_sw_fence.c
@@ -360,7 +360,7 @@ static int __i915_sw_fence_await_sw_fence(struct i915_sw_fence *fence,
pending = I915_SW_FENCE_FLAG_FENCE;
if (!wq) {
- wq = kmalloc(sizeof(*wq), gfp);
+ wq = kmalloc_obj(*wq, gfp);
if (!wq) {
if (!gfpflags_allow_blocking(gfp))
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/i915_syncmap.c b/drivers/gpu/drm/i915/i915_syncmap.c
index df6437c37373..ed18650d83fd 100644
--- a/drivers/gpu/drm/i915/i915_syncmap.c
+++ b/drivers/gpu/drm/i915/i915_syncmap.c
@@ -197,7 +197,7 @@ __sync_alloc_leaf(struct i915_syncmap *parent, u64 id)
{
struct i915_syncmap *p;
- p = kmalloc(struct_size(p, seqno, KSYNCMAP), GFP_KERNEL);
+ p = kmalloc_flex(*p, seqno, KSYNCMAP, GFP_KERNEL);
if (unlikely(!p))
return NULL;
@@ -279,8 +279,7 @@ static noinline int __sync_set(struct i915_syncmap **root, u64 id, u32 seqno)
unsigned int above;
/* Insert a join above the current layer */
- next = kzalloc(struct_size(next, child, KSYNCMAP),
- GFP_KERNEL);
+ next = kzalloc_flex(*next, child, KSYNCMAP, GFP_KERNEL);
if (unlikely(!next))
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
index d5c6e6605086..cf79995f1a5b 100644
--- a/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
+++ b/drivers/gpu/drm/i915/i915_ttm_buddy_manager.c
@@ -48,7 +48,7 @@ static int i915_ttm_buddy_man_alloc(struct ttm_resource_manager *man,
if (!lpfn)
lpfn = man->size;
- bman_res = kzalloc(sizeof(*bman_res), GFP_KERNEL);
+ bman_res = kzalloc_obj(*bman_res, GFP_KERNEL);
if (!bman_res)
return -ENOMEM;
@@ -289,7 +289,7 @@ int i915_ttm_buddy_man_init(struct ttm_device *bdev,
struct i915_ttm_buddy_manager *bman;
int err;
- bman = kzalloc(sizeof(*bman), GFP_KERNEL);
+ bman = kzalloc_obj(*bman, GFP_KERNEL);
if (!bman)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c
index 2c0a63664e13..39eb1808fd11 100644
--- a/drivers/gpu/drm/i915/i915_vma.c
+++ b/drivers/gpu/drm/i915/i915_vma.c
@@ -394,7 +394,7 @@ struct i915_vma_work *i915_vma_work(void)
{
struct i915_vma_work *vw;
- vw = kzalloc(sizeof(*vw), GFP_KERNEL);
+ vw = kzalloc_obj(*vw, GFP_KERNEL);
if (!vw)
return NULL;
@@ -1027,7 +1027,7 @@ intel_rotate_pages(struct intel_rotation_info *rot_info,
int i;
/* Allocate target SG list. */
- st = kmalloc(sizeof(*st), GFP_KERNEL);
+ st = kmalloc_obj(*st, GFP_KERNEL);
if (!st)
goto err_st_alloc;
@@ -1237,7 +1237,7 @@ intel_remap_pages(struct intel_remapped_info *rem_info,
int i;
/* Allocate target SG list. */
- st = kmalloc(sizeof(*st), GFP_KERNEL);
+ st = kmalloc_obj(*st, GFP_KERNEL);
if (!st)
goto err_st_alloc;
@@ -1275,7 +1275,7 @@ intel_partial_pages(const struct i915_gtt_view *view,
unsigned int count = view->partial.size;
int ret = -ENOMEM;
- st = kmalloc(sizeof(*st), GFP_KERNEL);
+ st = kmalloc_obj(*st, GFP_KERNEL);
if (!st)
goto err_st_alloc;
diff --git a/drivers/gpu/drm/i915/intel_memory_region.c b/drivers/gpu/drm/i915/intel_memory_region.c
index ce722f20cab1..426355f75db8 100644
--- a/drivers/gpu/drm/i915/intel_memory_region.c
+++ b/drivers/gpu/drm/i915/intel_memory_region.c
@@ -258,7 +258,7 @@ intel_memory_region_create(struct drm_i915_private *i915,
struct intel_memory_region *mem;
int err;
- mem = kzalloc(sizeof(*mem), GFP_KERNEL);
+ mem = kzalloc_obj(*mem, GFP_KERNEL);
if (!mem)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
index fdd2a940f983..b0d7cc7eb98f 100644
--- a/drivers/gpu/drm/i915/intel_uncore.c
+++ b/drivers/gpu/drm/i915/intel_uncore.c
@@ -2072,7 +2072,7 @@ static int __fw_domain_init(struct intel_uncore *uncore,
GEM_BUG_ON(domain_id >= FW_DOMAIN_ID_COUNT);
GEM_BUG_ON(uncore->fw_domain[domain_id]);
- d = kzalloc(sizeof(*d), GFP_KERNEL);
+ d = kzalloc_obj(*d, GFP_KERNEL);
if (!d)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp.c b/drivers/gpu/drm/i915/pxp/intel_pxp.c
index d4b0c76f335b..d87d58433307 100644
--- a/drivers/gpu/drm/i915/pxp/intel_pxp.c
+++ b/drivers/gpu/drm/i915/pxp/intel_pxp.c
@@ -222,7 +222,7 @@ int intel_pxp_init(struct drm_i915_private *i915)
* including session and object management, or we will init the backend tee
* channel for internal users such as HuC loading by GSC
*/
- i915->pxp = kzalloc(sizeof(*i915->pxp), GFP_KERNEL);
+ i915->pxp = kzalloc_obj(*i915->pxp, GFP_KERNEL);
if (!i915->pxp)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/selftests/i915_active.c b/drivers/gpu/drm/i915/selftests/i915_active.c
index 36c3a5460221..3eaee7e8cc65 100644
--- a/drivers/gpu/drm/i915/selftests/i915_active.c
+++ b/drivers/gpu/drm/i915/selftests/i915_active.c
@@ -66,7 +66,7 @@ static struct live_active *__live_alloc(struct drm_i915_private *i915)
{
struct live_active *active;
- active = kzalloc(sizeof(*active), GFP_KERNEL);
+ active = kzalloc_obj(*active, GFP_KERNEL);
if (!active)
return NULL;
diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_evict.c b/drivers/gpu/drm/i915/selftests/i915_gem_evict.c
index f8fe3681c3dc..3362421467e8 100644
--- a/drivers/gpu/drm/i915/selftests/i915_gem_evict.c
+++ b/drivers/gpu/drm/i915/selftests/i915_gem_evict.c
@@ -421,7 +421,7 @@ static int igt_evict_contexts(void *arg)
struct reserved *r;
mutex_unlock(&ggtt->vm.mutex);
- r = kcalloc(1, sizeof(*r), GFP_KERNEL);
+ r = kzalloc_objs(*r, 1, GFP_KERNEL);
mutex_lock(&ggtt->vm.mutex);
if (!r) {
err = -ENOMEM;
diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c b/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
index 0a86e4857539..e6bd06774816 100644
--- a/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
@@ -63,7 +63,7 @@ static int fake_get_pages(struct drm_i915_gem_object *obj)
struct scatterlist *sg;
typeof(obj->base.size) rem;
- pages = kmalloc(sizeof(*pages), GFP);
+ pages = kmalloc_obj(*pages, GFP);
if (!pages)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/selftests/i915_perf.c b/drivers/gpu/drm/i915/selftests/i915_perf.c
index 403134a7acec..411d43acd0d8 100644
--- a/drivers/gpu/drm/i915/selftests/i915_perf.c
+++ b/drivers/gpu/drm/i915/selftests/i915_perf.c
@@ -21,7 +21,7 @@ alloc_empty_config(struct i915_perf *perf)
{
struct i915_oa_config *oa_config;
- oa_config = kzalloc(sizeof(*oa_config), GFP_KERNEL);
+ oa_config = kzalloc_obj(*oa_config, GFP_KERNEL);
if (!oa_config)
return -ENOMEM;
@@ -114,7 +114,7 @@ test_stream(struct i915_perf *perf)
props.metrics_set = oa_config->id;
- stream = kzalloc(sizeof(*stream), GFP_KERNEL);
+ stream = kzalloc_obj(*stream, GFP_KERNEL);
if (!stream) {
i915_oa_config_put(oa_config);
return NULL;
diff --git a/drivers/gpu/drm/i915/selftests/i915_request.c b/drivers/gpu/drm/i915/selftests/i915_request.c
index 1260601bda1f..d1d48ea8d264 100644
--- a/drivers/gpu/drm/i915/selftests/i915_request.c
+++ b/drivers/gpu/drm/i915/selftests/i915_request.c
@@ -329,7 +329,7 @@ static void __igt_breadcrumbs_smoketest(struct kthread_work *work)
* that the fences were marked as signaled.
*/
- requests = kcalloc(total, sizeof(*requests), GFP_KERNEL);
+ requests = kzalloc_objs(*requests, total, GFP_KERNEL);
if (!requests) {
thread->result = -ENOMEM;
return;
@@ -472,11 +472,11 @@ static int mock_breadcrumbs_smoketest(void *arg)
* See __igt_breadcrumbs_smoketest();
*/
- threads = kcalloc(ncpus, sizeof(*threads), GFP_KERNEL);
+ threads = kzalloc_objs(*threads, ncpus, GFP_KERNEL);
if (!threads)
return -ENOMEM;
- t.contexts = kcalloc(t.ncontexts, sizeof(*t.contexts), GFP_KERNEL);
+ t.contexts = kzalloc_objs(*t.contexts, t.ncontexts, GFP_KERNEL);
if (!t.contexts) {
ret = -ENOMEM;
goto out_threads;
@@ -1203,7 +1203,7 @@ static int live_all_engines(void *arg)
* block doing so, and that they don't complete too soon.
*/
- request = kcalloc(nengines, sizeof(*request), GFP_KERNEL);
+ request = kzalloc_objs(*request, nengines, GFP_KERNEL);
if (!request)
return -ENOMEM;
@@ -1333,7 +1333,7 @@ static int live_sequential_engines(void *arg)
* they are running on independent engines.
*/
- request = kcalloc(nengines, sizeof(*request), GFP_KERNEL);
+ request = kzalloc_objs(*request, nengines, GFP_KERNEL);
if (!request)
return -ENOMEM;
@@ -1626,7 +1626,7 @@ static int live_parallel_engines(void *arg)
* tests that we load up the system maximally.
*/
- threads = kcalloc(nengines, sizeof(*threads), GFP_KERNEL);
+ threads = kzalloc_objs(*threads, nengines, GFP_KERNEL);
if (!threads)
return -ENOMEM;
@@ -1754,13 +1754,13 @@ static int live_breadcrumbs_smoketest(void *arg)
goto out_rpm;
}
- smoke = kcalloc(nengines, sizeof(*smoke), GFP_KERNEL);
+ smoke = kzalloc_objs(*smoke, nengines, GFP_KERNEL);
if (!smoke) {
ret = -ENOMEM;
goto out_file;
}
- threads = kcalloc(ncpus * nengines, sizeof(*threads), GFP_KERNEL);
+ threads = kzalloc_objs(*threads, ncpus * nengines, GFP_KERNEL);
if (!threads) {
ret = -ENOMEM;
goto out_smoke;
@@ -1768,9 +1768,8 @@ static int live_breadcrumbs_smoketest(void *arg)
smoke[0].request_alloc = __live_request_alloc;
smoke[0].ncontexts = 64;
- smoke[0].contexts = kcalloc(smoke[0].ncontexts,
- sizeof(*smoke[0].contexts),
- GFP_KERNEL);
+ smoke[0].contexts = kzalloc_objs(*smoke[0].contexts, smoke[0].ncontexts,
+ GFP_KERNEL);
if (!smoke[0].contexts) {
ret = -ENOMEM;
goto out_threads;
@@ -2838,11 +2837,11 @@ static int perf_series_engines(void *arg)
unsigned int idx;
int err = 0;
- stats = kcalloc(nengines, sizeof(*stats), GFP_KERNEL);
+ stats = kzalloc_objs(*stats, nengines, GFP_KERNEL);
if (!stats)
return -ENOMEM;
- ps = kzalloc(struct_size(ps, ce, nengines), GFP_KERNEL);
+ ps = kzalloc_flex(*ps, ce, nengines, GFP_KERNEL);
if (!ps) {
kfree(stats);
return -ENOMEM;
@@ -3194,7 +3193,7 @@ static int perf_parallel_engines(void *arg)
struct p_thread *engines;
int err = 0;
- engines = kcalloc(nengines, sizeof(*engines), GFP_KERNEL);
+ engines = kzalloc_objs(*engines, nengines, GFP_KERNEL);
if (!engines)
return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/selftests/i915_sw_fence.c b/drivers/gpu/drm/i915/selftests/i915_sw_fence.c
index 8f5ce71fa453..34bcdbaac7c3 100644
--- a/drivers/gpu/drm/i915/selftests/i915_sw_fence.c
+++ b/drivers/gpu/drm/i915/selftests/i915_sw_fence.c
@@ -47,7 +47,7 @@ static struct i915_sw_fence *alloc_fence(void)
{
struct i915_sw_fence *fence;
- fence = kmalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kmalloc_obj(*fence, GFP_KERNEL);
if (!fence)
return NULL;
@@ -454,7 +454,7 @@ static int test_chain(void *arg)
int ret, i;
/* Test a long chain of fences */
- fences = kmalloc_array(nfences, sizeof(*fences), GFP_KERNEL);
+ fences = kmalloc_objs(*fences, nfences, GFP_KERNEL);
if (!fences)
return -ENOMEM;
@@ -639,7 +639,7 @@ static struct dma_fence *alloc_dma_fence(void)
{
struct dma_fence *dma;
- dma = kmalloc(sizeof(*dma), GFP_KERNEL);
+ dma = kmalloc_obj(*dma, GFP_KERNEL);
if (dma)
dma_fence_init(dma, &mock_fence_ops, &mock_fence_lock, 0, 0);
diff --git a/drivers/gpu/drm/i915/selftests/lib_sw_fence.c b/drivers/gpu/drm/i915/selftests/lib_sw_fence.c
index d79e4defb71d..4ac956dfd1f8 100644
--- a/drivers/gpu/drm/i915/selftests/lib_sw_fence.c
+++ b/drivers/gpu/drm/i915/selftests/lib_sw_fence.c
@@ -109,7 +109,7 @@ struct i915_sw_fence *heap_fence_create(gfp_t gfp)
{
struct heap_fence *h;
- h = kmalloc(sizeof(*h), gfp);
+ h = kmalloc_obj(*h, gfp);
if (!h)
return NULL;
diff --git a/drivers/gpu/drm/i915/selftests/mock_gem_device.c b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
index b59626c4994c..d6b4796fde82 100644
--- a/drivers/gpu/drm/i915/selftests/mock_gem_device.c
+++ b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
@@ -148,7 +148,7 @@ struct drm_i915_private *mock_gem_device(void)
struct pci_dev *pdev;
int ret;
- pdev = kzalloc(sizeof(*pdev), GFP_KERNEL);
+ pdev = kzalloc_obj(*pdev, GFP_KERNEL);
if (!pdev)
return NULL;
device_initialize(&pdev->dev);
diff --git a/drivers/gpu/drm/i915/selftests/mock_gtt.c b/drivers/gpu/drm/i915/selftests/mock_gtt.c
index a516c0aa88fd..1b13502add8a 100644
--- a/drivers/gpu/drm/i915/selftests/mock_gtt.c
+++ b/drivers/gpu/drm/i915/selftests/mock_gtt.c
@@ -66,7 +66,7 @@ struct i915_ppgtt *mock_ppgtt(struct drm_i915_private *i915, const char *name)
{
struct i915_ppgtt *ppgtt;
- ppgtt = kzalloc(sizeof(*ppgtt), GFP_KERNEL);
+ ppgtt = kzalloc_obj(*ppgtt, GFP_KERNEL);
if (!ppgtt)
return NULL;
diff --git a/drivers/gpu/drm/i915/vlv_suspend.c b/drivers/gpu/drm/i915/vlv_suspend.c
index bace7b38329b..b5360ddc34e7 100644
--- a/drivers/gpu/drm/i915/vlv_suspend.c
+++ b/drivers/gpu/drm/i915/vlv_suspend.c
@@ -464,8 +464,7 @@ int vlv_suspend_init(struct drm_i915_private *i915)
return 0;
/* we write all the values in the struct, so no need to zero it out */
- i915->vlv_s0ix_state = kmalloc(sizeof(*i915->vlv_s0ix_state),
- GFP_KERNEL);
+ i915->vlv_s0ix_state = kmalloc_obj(*i915->vlv_s0ix_state, GFP_KERNEL);
if (!i915->vlv_s0ix_state)
return -ENOMEM;
diff --git a/drivers/gpu/drm/imagination/pvr_ccb.c b/drivers/gpu/drm/imagination/pvr_ccb.c
index 9294b4ba1de7..998b9ceb54ca 100644
--- a/drivers/gpu/drm/imagination/pvr_ccb.c
+++ b/drivers/gpu/drm/imagination/pvr_ccb.c
@@ -543,7 +543,7 @@ struct dma_fence *pvr_kccb_fence_alloc(void)
{
struct pvr_kccb_fence *kccb_fence;
- kccb_fence = kzalloc(sizeof(*kccb_fence), GFP_KERNEL);
+ kccb_fence = kzalloc_obj(*kccb_fence, GFP_KERNEL);
if (!kccb_fence)
return NULL;
diff --git a/drivers/gpu/drm/imagination/pvr_context.c b/drivers/gpu/drm/imagination/pvr_context.c
index 5edc3c01af72..1aa4f098f93d 100644
--- a/drivers/gpu/drm/imagination/pvr_context.c
+++ b/drivers/gpu/drm/imagination/pvr_context.c
@@ -292,7 +292,7 @@ int pvr_context_create(struct pvr_file *pvr_file, struct drm_pvr_ioctl_create_co
if (ctx_size < 0)
return ctx_size;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/gpu/drm/imagination/pvr_drv.c b/drivers/gpu/drm/imagination/pvr_drv.c
index 916b40ced7eb..b6171d10e8ac 100644
--- a/drivers/gpu/drm/imagination/pvr_drv.c
+++ b/drivers/gpu/drm/imagination/pvr_drv.c
@@ -1312,7 +1312,7 @@ pvr_drm_driver_open(struct drm_device *drm_dev, struct drm_file *file)
struct pvr_device *pvr_dev = to_pvr_device(drm_dev);
struct pvr_file *pvr_file;
- pvr_file = kzalloc(sizeof(*pvr_file), GFP_KERNEL);
+ pvr_file = kzalloc_obj(*pvr_file, GFP_KERNEL);
if (!pvr_file)
return -ENOMEM;
diff --git a/drivers/gpu/drm/imagination/pvr_free_list.c b/drivers/gpu/drm/imagination/pvr_free_list.c
index 5228e214491c..cfcfbd89052a 100644
--- a/drivers/gpu/drm/imagination/pvr_free_list.c
+++ b/drivers/gpu/drm/imagination/pvr_free_list.c
@@ -307,7 +307,7 @@ pvr_free_list_grow(struct pvr_free_list *free_list, u32 num_pages)
goto err_unlock;
}
- free_list_node = kzalloc(sizeof(*free_list_node), GFP_KERNEL);
+ free_list_node = kzalloc_obj(*free_list_node, GFP_KERNEL);
if (!free_list_node) {
err = -ENOMEM;
goto err_unlock;
@@ -415,7 +415,7 @@ pvr_free_list_create(struct pvr_file *pvr_file,
int err;
/* Create and fill out the kernel structure */
- free_list = kzalloc(sizeof(*free_list), GFP_KERNEL);
+ free_list = kzalloc_obj(*free_list, GFP_KERNEL);
if (!free_list)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/imagination/pvr_fw.c b/drivers/gpu/drm/imagination/pvr_fw.c
index 779a58fe6ee8..1cbbaff3e7bf 100644
--- a/drivers/gpu/drm/imagination/pvr_fw.c
+++ b/drivers/gpu/drm/imagination/pvr_fw.c
@@ -1272,7 +1272,7 @@ pvr_fw_object_create_and_map_common(struct pvr_device *pvr_dev, size_t size,
/* %DRM_PVR_BO_PM_FW_PROTECT is implicit for FW objects. */
flags |= DRM_PVR_BO_PM_FW_PROTECT;
- fw_obj = kzalloc(sizeof(*fw_obj), GFP_KERNEL);
+ fw_obj = kzalloc_obj(*fw_obj, GFP_KERNEL);
if (!fw_obj)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/imagination/pvr_fw_trace.c b/drivers/gpu/drm/imagination/pvr_fw_trace.c
index 673ee71276e9..f2c92a3b3a94 100644
--- a/drivers/gpu/drm/imagination/pvr_fw_trace.c
+++ b/drivers/gpu/drm/imagination/pvr_fw_trace.c
@@ -455,7 +455,7 @@ static int fw_trace_open(struct inode *inode, struct file *file)
struct pvr_fw_trace_seq_data *trace_seq_data;
int err;
- trace_seq_data = kzalloc(sizeof(*trace_seq_data), GFP_KERNEL);
+ trace_seq_data = kzalloc_obj(*trace_seq_data, GFP_KERNEL);
if (!trace_seq_data)
return -ENOMEM;
diff --git a/drivers/gpu/drm/imagination/pvr_gem.c b/drivers/gpu/drm/imagination/pvr_gem.c
index c07c9a915190..7a4e8ec92e1e 100644
--- a/drivers/gpu/drm/imagination/pvr_gem.c
+++ b/drivers/gpu/drm/imagination/pvr_gem.c
@@ -314,7 +314,7 @@ struct drm_gem_object *pvr_gem_create_object(struct drm_device *drm_dev, size_t
struct drm_gem_object *gem_obj;
struct pvr_gem_object *pvr_obj;
- pvr_obj = kzalloc(sizeof(*pvr_obj), GFP_KERNEL);
+ pvr_obj = kzalloc_obj(*pvr_obj, GFP_KERNEL);
if (!pvr_obj)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/imagination/pvr_hwrt.c b/drivers/gpu/drm/imagination/pvr_hwrt.c
index dc0c25fa1847..93ea3c8ee176 100644
--- a/drivers/gpu/drm/imagination/pvr_hwrt.c
+++ b/drivers/gpu/drm/imagination/pvr_hwrt.c
@@ -457,7 +457,7 @@ pvr_hwrt_dataset_create(struct pvr_file *pvr_file,
int err, i = 0;
/* Create and fill out the kernel structure */
- hwrt = kzalloc(sizeof(*hwrt), GFP_KERNEL);
+ hwrt = kzalloc_obj(*hwrt, GFP_KERNEL);
if (!hwrt)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/imagination/pvr_job.c b/drivers/gpu/drm/imagination/pvr_job.c
index 7564b0f21b42..a4e550505504 100644
--- a/drivers/gpu/drm/imagination/pvr_job.c
+++ b/drivers/gpu/drm/imagination/pvr_job.c
@@ -415,7 +415,7 @@ create_job(struct pvr_device *pvr_dev,
(args->hwrt.set_handle || args->hwrt.data_index))
return ERR_PTR(-EINVAL);
- job = kzalloc(sizeof(*job), GFP_KERNEL);
+ job = kzalloc_obj(*job, GFP_KERNEL);
if (!job)
return ERR_PTR(-ENOMEM);
@@ -718,8 +718,8 @@ pvr_submit_jobs(struct pvr_device *pvr_dev, struct pvr_file *pvr_file,
if (err)
return err;
- job_data = kvmalloc_array(args->jobs.count, sizeof(*job_data),
- GFP_KERNEL | __GFP_ZERO);
+ job_data = kvmalloc_objs(*job_data, args->jobs.count,
+ GFP_KERNEL | __GFP_ZERO);
if (!job_data) {
err = -ENOMEM;
goto out_free;
diff --git a/drivers/gpu/drm/imagination/pvr_mmu.c b/drivers/gpu/drm/imagination/pvr_mmu.c
index 450d476d183f..4d35879a344b 100644
--- a/drivers/gpu/drm/imagination/pvr_mmu.c
+++ b/drivers/gpu/drm/imagination/pvr_mmu.c
@@ -1828,7 +1828,7 @@ pvr_page_table_l0_get_or_insert(struct pvr_mmu_op_context *op_ctx,
*/
struct pvr_mmu_context *pvr_mmu_context_create(struct pvr_device *pvr_dev)
{
- struct pvr_mmu_context *ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ struct pvr_mmu_context *ctx = kzalloc_obj(*ctx, GFP_KERNEL);
int err;
if (!ctx)
@@ -1877,8 +1877,7 @@ pvr_page_table_l1_alloc(struct pvr_mmu_context *ctx)
{
int err;
- struct pvr_page_table_l1 *table =
- kzalloc(sizeof(*table), GFP_KERNEL);
+ struct pvr_page_table_l1 *table = kzalloc_obj(*table, GFP_KERNEL);
if (!table)
return ERR_PTR(-ENOMEM);
@@ -1906,8 +1905,7 @@ pvr_page_table_l0_alloc(struct pvr_mmu_context *ctx)
{
int err;
- struct pvr_page_table_l0 *table =
- kzalloc(sizeof(*table), GFP_KERNEL);
+ struct pvr_page_table_l0 *table = kzalloc_obj(*table, GFP_KERNEL);
if (!table)
return ERR_PTR(-ENOMEM);
@@ -2352,8 +2350,7 @@ pvr_mmu_op_context_create(struct pvr_mmu_context *ctx, struct sg_table *sgt,
{
int err;
- struct pvr_mmu_op_context *op_ctx =
- kzalloc(sizeof(*op_ctx), GFP_KERNEL);
+ struct pvr_mmu_op_context *op_ctx = kzalloc_obj(*op_ctx, GFP_KERNEL);
if (!op_ctx)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/imagination/pvr_power.c b/drivers/gpu/drm/imagination/pvr_power.c
index b9f801c63260..c70a62192d79 100644
--- a/drivers/gpu/drm/imagination/pvr_power.c
+++ b/drivers/gpu/drm/imagination/pvr_power.c
@@ -614,11 +614,11 @@ int pvr_power_domains_init(struct pvr_device *pvr_dev)
link_count = domain_count + (domain_count - 1);
- domain_devs = kcalloc(domain_count, sizeof(*domain_devs), GFP_KERNEL);
+ domain_devs = kzalloc_objs(*domain_devs, domain_count, GFP_KERNEL);
if (!domain_devs)
return -ENOMEM;
- domain_links = kcalloc(link_count, sizeof(*domain_links), GFP_KERNEL);
+ domain_links = kzalloc_objs(*domain_links, link_count, GFP_KERNEL);
if (!domain_links)
return -ENOMEM;
diff --git a/drivers/gpu/drm/imagination/pvr_queue.c b/drivers/gpu/drm/imagination/pvr_queue.c
index fc415dd0d7a7..12f759c17f93 100644
--- a/drivers/gpu/drm/imagination/pvr_queue.c
+++ b/drivers/gpu/drm/imagination/pvr_queue.c
@@ -249,7 +249,7 @@ pvr_queue_fence_alloc(void)
{
struct pvr_queue_fence *fence;
- fence = kzalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kzalloc_obj(*fence, GFP_KERNEL);
if (!fence)
return NULL;
@@ -1266,7 +1266,7 @@ struct pvr_queue *pvr_queue_create(struct pvr_context *ctx,
if (ctx_state_size < 0)
return ERR_PTR(ctx_state_size);
- queue = kzalloc(sizeof(*queue), GFP_KERNEL);
+ queue = kzalloc_obj(*queue, GFP_KERNEL);
if (!queue)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/imagination/pvr_sync.c b/drivers/gpu/drm/imagination/pvr_sync.c
index 129f646d14ba..b5268c9b885b 100644
--- a/drivers/gpu/drm/imagination/pvr_sync.c
+++ b/drivers/gpu/drm/imagination/pvr_sync.c
@@ -64,7 +64,7 @@ pvr_sync_signal_array_add(struct xarray *array, struct drm_file *file, u32 handl
int err;
u32 id;
- sig_sync = kzalloc(sizeof(*sig_sync), GFP_KERNEL);
+ sig_sync = kzalloc_obj(*sig_sync, GFP_KERNEL);
if (!sig_sync)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/imagination/pvr_vm.c b/drivers/gpu/drm/imagination/pvr_vm.c
index 9a9ad4e82305..e482bfc00576 100644
--- a/drivers/gpu/drm/imagination/pvr_vm.c
+++ b/drivers/gpu/drm/imagination/pvr_vm.c
@@ -261,9 +261,9 @@ pvr_vm_bind_op_map_init(struct pvr_vm_bind_op *bind_op,
if (IS_ERR(bind_op->gpuvm_bo))
return PTR_ERR(bind_op->gpuvm_bo);
- bind_op->new_va = kzalloc(sizeof(*bind_op->new_va), GFP_KERNEL);
- bind_op->prev_va = kzalloc(sizeof(*bind_op->prev_va), GFP_KERNEL);
- bind_op->next_va = kzalloc(sizeof(*bind_op->next_va), GFP_KERNEL);
+ bind_op->new_va = kzalloc_obj(*bind_op->new_va, GFP_KERNEL);
+ bind_op->prev_va = kzalloc_obj(*bind_op->prev_va, GFP_KERNEL);
+ bind_op->next_va = kzalloc_obj(*bind_op->next_va, GFP_KERNEL);
if (!bind_op->new_va || !bind_op->prev_va || !bind_op->next_va) {
err = -ENOMEM;
goto err_bind_op_fini;
@@ -310,8 +310,8 @@ pvr_vm_bind_op_unmap_init(struct pvr_vm_bind_op *bind_op,
bind_op->type = PVR_VM_BIND_TYPE_UNMAP;
- bind_op->prev_va = kzalloc(sizeof(*bind_op->prev_va), GFP_KERNEL);
- bind_op->next_va = kzalloc(sizeof(*bind_op->next_va), GFP_KERNEL);
+ bind_op->prev_va = kzalloc_obj(*bind_op->prev_va, GFP_KERNEL);
+ bind_op->next_va = kzalloc_obj(*bind_op->next_va, GFP_KERNEL);
if (!bind_op->prev_va || !bind_op->next_va) {
err = -ENOMEM;
goto err_bind_op_fini;
@@ -565,7 +565,7 @@ pvr_vm_create_context(struct pvr_device *pvr_dev, bool is_userspace_context)
return ERR_PTR(-EINVAL);
}
- vm_ctx = kzalloc(sizeof(*vm_ctx), GFP_KERNEL);
+ vm_ctx = kzalloc_obj(*vm_ctx, GFP_KERNEL);
if (!vm_ctx)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/imx/dcss/dcss-plane.c b/drivers/gpu/drm/imx/dcss/dcss-plane.c
index 0b99b407ac0a..07bc2044f76a 100644
--- a/drivers/gpu/drm/imx/dcss/dcss-plane.c
+++ b/drivers/gpu/drm/imx/dcss/dcss-plane.c
@@ -381,7 +381,7 @@ struct dcss_plane *dcss_plane_init(struct drm_device *drm,
if (zpos > 2)
return ERR_PTR(-EINVAL);
- dcss_plane = kzalloc(sizeof(*dcss_plane), GFP_KERNEL);
+ dcss_plane = kzalloc_obj(*dcss_plane, GFP_KERNEL);
if (!dcss_plane) {
DRM_ERROR("failed to allocate plane\n");
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c b/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
index cf7b02b2d52c..eeff0d535b02 100644
--- a/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
+++ b/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
@@ -117,7 +117,7 @@ static void imx_drm_crtc_reset(struct drm_crtc *crtc)
kfree(to_imx_crtc_state(crtc->state));
crtc->state = NULL;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state)
__drm_atomic_helper_crtc_reset(crtc, &state->base);
}
@@ -126,7 +126,7 @@ static struct drm_crtc_state *imx_drm_crtc_duplicate_state(struct drm_crtc *crtc
{
struct imx_crtc_state *state;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c b/drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c
index db50eccea0ca..0b58871277d7 100644
--- a/drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c
+++ b/drivers/gpu/drm/imx/ipuv3/ipuv3-plane.c
@@ -308,7 +308,7 @@ static void ipu_plane_state_reset(struct drm_plane *plane)
plane->state = NULL;
}
- ipu_state = kzalloc(sizeof(*ipu_state), GFP_KERNEL);
+ ipu_state = kzalloc_obj(*ipu_state, GFP_KERNEL);
if (ipu_state)
__drm_atomic_helper_plane_reset(plane, &ipu_state->base);
@@ -322,7 +322,7 @@ ipu_plane_duplicate_state(struct drm_plane *plane)
if (WARN_ON(!plane->state))
return NULL;
- state = kmalloc(sizeof(*state), GFP_KERNEL);
+ state = kmalloc_obj(*state, GFP_KERNEL);
if (state)
__drm_atomic_helper_plane_duplicate_state(plane, &state->base);
diff --git a/drivers/gpu/drm/imx/ipuv3/parallel-display.c b/drivers/gpu/drm/imx/ipuv3/parallel-display.c
index 6fbf505d2801..e82cbb92faee 100644
--- a/drivers/gpu/drm/imx/ipuv3/parallel-display.c
+++ b/drivers/gpu/drm/imx/ipuv3/parallel-display.c
@@ -66,7 +66,7 @@ imx_pd_bridge_atomic_get_output_bus_fmts(struct drm_bridge *bridge,
}
*num_output_fmts = 1;
- output_fmts = kmalloc(sizeof(*output_fmts), GFP_KERNEL);
+ output_fmts = kmalloc_obj(*output_fmts, GFP_KERNEL);
if (!output_fmts)
return NULL;
@@ -117,7 +117,7 @@ imx_pd_bridge_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
}
*num_input_fmts = 1;
- input_fmts = kmalloc(sizeof(*input_fmts), GFP_KERNEL);
+ input_fmts = kmalloc_obj(*input_fmts, GFP_KERNEL);
if (!input_fmts)
return NULL;
diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
index d3213fbf22be..6273058b1bee 100644
--- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
+++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
@@ -923,7 +923,7 @@ ingenic_drm_gem_create_object(struct drm_device *drm, size_t size)
struct ingenic_drm *priv = drm_device_get_priv(drm);
struct drm_gem_dma_object *obj;
- obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ obj = kzalloc_obj(*obj, GFP_KERNEL);
if (!obj)
return ERR_PTR(-ENOMEM);
@@ -1387,7 +1387,7 @@ static int ingenic_drm_bind(struct device *dev, bool has_components)
goto err_devclk_disable;
}
- private_state = kzalloc(sizeof(*private_state), GFP_KERNEL);
+ private_state = kzalloc_obj(*private_state, GFP_KERNEL);
if (!private_state) {
ret = -ENOMEM;
goto err_clk_notifier_unregister;
diff --git a/drivers/gpu/drm/ingenic/ingenic-ipu.c b/drivers/gpu/drm/ingenic/ingenic-ipu.c
index 32638a713241..88b6b406e796 100644
--- a/drivers/gpu/drm/ingenic/ingenic-ipu.c
+++ b/drivers/gpu/drm/ingenic/ingenic-ipu.c
@@ -887,7 +887,7 @@ static int ingenic_ipu_bind(struct device *dev, struct device *master, void *d)
return err;
}
- private_state = kzalloc(sizeof(*private_state), GFP_KERNEL);
+ private_state = kzalloc_obj(*private_state, GFP_KERNEL);
if (!private_state) {
err = -ENOMEM;
goto err_clk_unprepare;
diff --git a/drivers/gpu/drm/kmb/kmb_dsi.c b/drivers/gpu/drm/kmb/kmb_dsi.c
index faf38ca9e44c..1d2ce15d703a 100644
--- a/drivers/gpu/drm/kmb/kmb_dsi.c
+++ b/drivers/gpu/drm/kmb/kmb_dsi.c
@@ -220,14 +220,14 @@ int kmb_dsi_host_bridge_init(struct device *dev)
/* Create and register MIPI DSI host */
if (!dsi_host) {
- dsi_host = kzalloc(sizeof(*dsi_host), GFP_KERNEL);
+ dsi_host = kzalloc_obj(*dsi_host, GFP_KERNEL);
if (!dsi_host)
return -ENOMEM;
dsi_host->ops = &kmb_dsi_host_ops;
if (!dsi_device) {
- dsi_device = kzalloc(sizeof(*dsi_device), GFP_KERNEL);
+ dsi_device = kzalloc_obj(*dsi_device, GFP_KERNEL);
if (!dsi_device) {
kfree(dsi_host);
return -ENOMEM;
diff --git a/drivers/gpu/drm/lima/lima_ctx.c b/drivers/gpu/drm/lima/lima_ctx.c
index 0e668fc1e0f9..edcd3733dd95 100644
--- a/drivers/gpu/drm/lima/lima_ctx.c
+++ b/drivers/gpu/drm/lima/lima_ctx.c
@@ -12,7 +12,7 @@ int lima_ctx_create(struct lima_device *dev, struct lima_ctx_mgr *mgr, u32 *id)
struct lima_ctx *ctx;
int i, err;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
ctx->dev = dev;
diff --git a/drivers/gpu/drm/lima/lima_drv.c b/drivers/gpu/drm/lima/lima_drv.c
index 65210ab081bb..f2bdf0d1b2fc 100644
--- a/drivers/gpu/drm/lima/lima_drv.c
+++ b/drivers/gpu/drm/lima/lima_drv.c
@@ -215,7 +215,7 @@ static int lima_drm_driver_open(struct drm_device *dev, struct drm_file *file)
struct lima_drm_priv *priv;
struct lima_device *ldev = to_lima_dev(dev);
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/lima/lima_gem.c b/drivers/gpu/drm/lima/lima_gem.c
index 9722b847a539..bed7945d8440 100644
--- a/drivers/gpu/drm/lima/lima_gem.c
+++ b/drivers/gpu/drm/lima/lima_gem.c
@@ -39,8 +39,8 @@ int lima_heap_alloc(struct lima_bo *bo, struct lima_vm *vm)
if (bo->base.pages) {
pages = bo->base.pages;
} else {
- pages = kvmalloc_array(bo->base.base.size >> PAGE_SHIFT,
- sizeof(*pages), GFP_KERNEL | __GFP_ZERO);
+ pages = kvmalloc_objs(*pages, bo->base.base.size >> PAGE_SHIFT,
+ GFP_KERNEL | __GFP_ZERO);
if (!pages) {
dma_resv_unlock(bo->base.base.resv);
return -ENOMEM;
@@ -73,7 +73,7 @@ int lima_heap_alloc(struct lima_bo *bo, struct lima_vm *vm)
dma_unmap_sgtable(dev, bo->base.sgt, DMA_BIDIRECTIONAL, 0);
sg_free_table(bo->base.sgt);
} else {
- bo->base.sgt = kmalloc(sizeof(*bo->base.sgt), GFP_KERNEL);
+ bo->base.sgt = kmalloc_obj(*bo->base.sgt, GFP_KERNEL);
if (!bo->base.sgt) {
ret = -ENOMEM;
goto err_out0;
@@ -226,7 +226,7 @@ struct drm_gem_object *lima_gem_create_object(struct drm_device *dev, size_t siz
{
struct lima_bo *bo;
- bo = kzalloc(sizeof(*bo), GFP_KERNEL);
+ bo = kzalloc_obj(*bo, GFP_KERNEL);
if (!bo)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/lima/lima_vm.c b/drivers/gpu/drm/lima/lima_vm.c
index 2b2739adc7f5..5db2a1ad1983 100644
--- a/drivers/gpu/drm/lima/lima_vm.c
+++ b/drivers/gpu/drm/lima/lima_vm.c
@@ -109,7 +109,7 @@ int lima_vm_bo_add(struct lima_vm *vm, struct lima_bo *bo, bool create)
return -ENOENT;
}
- bo_va = kzalloc(sizeof(*bo_va), GFP_KERNEL);
+ bo_va = kzalloc_obj(*bo_va, GFP_KERNEL);
if (!bo_va) {
err = -ENOMEM;
goto err_out0;
@@ -201,7 +201,7 @@ struct lima_vm *lima_vm_create(struct lima_device *dev)
{
struct lima_vm *vm;
- vm = kzalloc(sizeof(*vm), GFP_KERNEL);
+ vm = kzalloc_obj(*vm, GFP_KERNEL);
if (!vm)
return NULL;
diff --git a/drivers/gpu/drm/loongson/lsdc_crtc.c b/drivers/gpu/drm/loongson/lsdc_crtc.c
index a5b7d5c5fd20..32ef0f3826ac 100644
--- a/drivers/gpu/drm/loongson/lsdc_crtc.c
+++ b/drivers/gpu/drm/loongson/lsdc_crtc.c
@@ -397,7 +397,7 @@ static void lsdc_crtc_reset(struct drm_crtc *crtc)
if (crtc->state)
crtc->funcs->atomic_destroy_state(crtc, crtc->state);
- priv_crtc_state = kzalloc(sizeof(*priv_crtc_state), GFP_KERNEL);
+ priv_crtc_state = kzalloc_obj(*priv_crtc_state, GFP_KERNEL);
if (!priv_crtc_state)
__drm_atomic_helper_crtc_reset(crtc, NULL);
@@ -424,7 +424,7 @@ lsdc_crtc_atomic_duplicate_state(struct drm_crtc *crtc)
struct lsdc_crtc_state *new_priv_state;
struct lsdc_crtc_state *old_priv_state;
- new_priv_state = kzalloc(sizeof(*new_priv_state), GFP_KERNEL);
+ new_priv_state = kzalloc_obj(*new_priv_state, GFP_KERNEL);
if (!new_priv_state)
return NULL;
diff --git a/drivers/gpu/drm/loongson/lsdc_gfxpll.c b/drivers/gpu/drm/loongson/lsdc_gfxpll.c
index 249c09d703ad..984ee165cacb 100644
--- a/drivers/gpu/drm/loongson/lsdc_gfxpll.c
+++ b/drivers/gpu/drm/loongson/lsdc_gfxpll.c
@@ -178,7 +178,7 @@ int loongson_gfxpll_create(struct drm_device *ddev,
struct loongson_gfxpll *this;
int ret;
- this = kzalloc(sizeof(*this), GFP_KERNEL);
+ this = kzalloc_obj(*this, GFP_KERNEL);
if (IS_ERR_OR_NULL(this))
return -ENOMEM;
diff --git a/drivers/gpu/drm/loongson/lsdc_i2c.c b/drivers/gpu/drm/loongson/lsdc_i2c.c
index 012b4761c538..5ed314a76dde 100644
--- a/drivers/gpu/drm/loongson/lsdc_i2c.c
+++ b/drivers/gpu/drm/loongson/lsdc_i2c.c
@@ -124,7 +124,7 @@ int lsdc_create_i2c_chan(struct drm_device *ddev,
struct lsdc_i2c *li2c;
int ret;
- li2c = kzalloc(sizeof(*li2c), GFP_KERNEL);
+ li2c = kzalloc_obj(*li2c, GFP_KERNEL);
if (!li2c)
return -ENOMEM;
diff --git a/drivers/gpu/drm/loongson/lsdc_pixpll.c b/drivers/gpu/drm/loongson/lsdc_pixpll.c
index 51b9a032cf43..d9c9de7b5de0 100644
--- a/drivers/gpu/drm/loongson/lsdc_pixpll.c
+++ b/drivers/gpu/drm/loongson/lsdc_pixpll.c
@@ -124,7 +124,7 @@ static int lsdc_pixel_pll_setup(struct lsdc_pixpll * const this)
if (!this->mmio)
return -ENOMEM;
- pparms = kzalloc(sizeof(*pparms), GFP_KERNEL);
+ pparms = kzalloc_obj(*pparms, GFP_KERNEL);
if (!pparms) {
iounmap(this->mmio);
return -ENOMEM;
diff --git a/drivers/gpu/drm/loongson/lsdc_ttm.c b/drivers/gpu/drm/loongson/lsdc_ttm.c
index 5d9075634bf8..3404e18e87b4 100644
--- a/drivers/gpu/drm/loongson/lsdc_ttm.c
+++ b/drivers/gpu/drm/loongson/lsdc_ttm.c
@@ -96,7 +96,7 @@ lsdc_ttm_tt_create(struct ttm_buffer_object *tbo, uint32_t page_flags)
struct ttm_tt *tt;
int ret;
- tt = kzalloc(sizeof(*tt), GFP_KERNEL);
+ tt = kzalloc_obj(*tt, GFP_KERNEL);
if (!tt)
return NULL;
@@ -441,7 +441,7 @@ struct lsdc_bo *lsdc_bo_create(struct drm_device *ddev,
enum ttm_bo_type bo_type;
int ret;
- lbo = kzalloc(sizeof(*lbo), GFP_KERNEL);
+ lbo = kzalloc_obj(*lbo, GFP_KERNEL);
if (!lbo)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/mediatek/mtk_crtc.c b/drivers/gpu/drm/mediatek/mtk_crtc.c
index 6ad712c0339a..1c1459a4af13 100644
--- a/drivers/gpu/drm/mediatek/mtk_crtc.c
+++ b/drivers/gpu/drm/mediatek/mtk_crtc.c
@@ -160,7 +160,7 @@ static void mtk_crtc_reset(struct drm_crtc *crtc)
kfree(to_mtk_crtc_state(crtc->state));
crtc->state = NULL;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state)
__drm_atomic_helper_crtc_reset(crtc, &state->base);
}
@@ -169,7 +169,7 @@ static struct drm_crtc_state *mtk_crtc_duplicate_state(struct drm_crtc *crtc)
{
struct mtk_crtc_state *state;
- state = kmalloc(sizeof(*state), GFP_KERNEL);
+ state = kmalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/gpu/drm/mediatek/mtk_dp.c b/drivers/gpu/drm/mediatek/mtk_dp.c
index 5e67dab6e2e9..08d954e412d1 100644
--- a/drivers/gpu/drm/mediatek/mtk_dp.c
+++ b/drivers/gpu/drm/mediatek/mtk_dp.c
@@ -2482,7 +2482,7 @@ static u32 *mtk_dp_bridge_atomic_get_output_bus_fmts(struct drm_bridge *bridge,
u32 *output_fmts;
*num_output_fmts = 0;
- output_fmts = kmalloc(sizeof(*output_fmts), GFP_KERNEL);
+ output_fmts = kmalloc_obj(*output_fmts, GFP_KERNEL);
if (!output_fmts)
return NULL;
*num_output_fmts = 1;
diff --git a/drivers/gpu/drm/mediatek/mtk_gem.c b/drivers/gpu/drm/mediatek/mtk_gem.c
index 7525a9f9907a..5f7e50ff70ae 100644
--- a/drivers/gpu/drm/mediatek/mtk_gem.c
+++ b/drivers/gpu/drm/mediatek/mtk_gem.c
@@ -50,7 +50,7 @@ static struct sg_table *mtk_gem_prime_get_sg_table(struct drm_gem_object *obj)
struct sg_table *sgt;
int ret;
- sgt = kzalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kzalloc_obj(*sgt, GFP_KERNEL);
if (!sgt)
return ERR_PTR(-ENOMEM);
@@ -85,7 +85,7 @@ static struct drm_gem_dma_object *mtk_gem_init(struct drm_device *dev,
if (size == 0)
return ERR_PTR(-EINVAL);
- dma_obj = kzalloc(sizeof(*dma_obj), GFP_KERNEL);
+ dma_obj = kzalloc_obj(*dma_obj, GFP_KERNEL);
if (!dma_obj)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/mediatek/mtk_plane.c b/drivers/gpu/drm/mediatek/mtk_plane.c
index fcd10d7e8342..60c35d3cbb9b 100644
--- a/drivers/gpu/drm/mediatek/mtk_plane.c
+++ b/drivers/gpu/drm/mediatek/mtk_plane.c
@@ -35,7 +35,7 @@ static void mtk_plane_reset(struct drm_plane *plane)
state = to_mtk_plane_state(plane->state);
memset(state, 0, sizeof(*state));
} else {
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return;
}
@@ -52,7 +52,7 @@ static struct drm_plane_state *mtk_plane_duplicate_state(struct drm_plane *plane
struct mtk_plane_state *old_state = to_mtk_plane_state(plane->state);
struct mtk_plane_state *state;
- state = kmalloc(sizeof(*state), GFP_KERNEL);
+ state = kmalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c b/drivers/gpu/drm/mgag200/mgag200_mode.c
index d019177462cf..fe7451ff4ea4 100644
--- a/drivers/gpu/drm/mgag200/mgag200_mode.c
+++ b/drivers/gpu/drm/mgag200/mgag200_mode.c
@@ -697,7 +697,7 @@ void mgag200_crtc_reset(struct drm_crtc *crtc)
if (crtc->state)
crtc->funcs->atomic_destroy_state(crtc, crtc->state);
- mgag200_crtc_state = kzalloc(sizeof(*mgag200_crtc_state), GFP_KERNEL);
+ mgag200_crtc_state = kzalloc_obj(*mgag200_crtc_state, GFP_KERNEL);
if (mgag200_crtc_state)
__drm_atomic_helper_crtc_reset(crtc, &mgag200_crtc_state->base);
else
@@ -713,7 +713,8 @@ struct drm_crtc_state *mgag200_crtc_atomic_duplicate_state(struct drm_crtc *crtc
if (!crtc_state)
return NULL;
- new_mgag200_crtc_state = kzalloc(sizeof(*new_mgag200_crtc_state), GFP_KERNEL);
+ new_mgag200_crtc_state = kzalloc_obj(*new_mgag200_crtc_state,
+ GFP_KERNEL);
if (!new_mgag200_crtc_state)
return NULL;
__drm_atomic_helper_crtc_duplicate_state(crtc, &new_mgag200_crtc_state->base);
diff --git a/drivers/gpu/drm/msm/adreno/a2xx_gpu.c b/drivers/gpu/drm/msm/adreno/a2xx_gpu.c
index f6e48bb8cc69..9cf06fd3a21e 100644
--- a/drivers/gpu/drm/msm/adreno/a2xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a2xx_gpu.c
@@ -457,7 +457,7 @@ static void a2xx_dump(struct msm_gpu *gpu)
static struct msm_gpu_state *a2xx_gpu_state_get(struct msm_gpu *gpu)
{
- struct msm_gpu_state *state = kzalloc(sizeof(*state), GFP_KERNEL);
+ struct msm_gpu_state *state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return ERR_PTR(-ENOMEM);
@@ -509,7 +509,7 @@ static struct msm_gpu *a2xx_gpu_init(struct drm_device *dev)
goto fail;
}
- a2xx_gpu = kzalloc(sizeof(*a2xx_gpu), GFP_KERNEL);
+ a2xx_gpu = kzalloc_obj(*a2xx_gpu, GFP_KERNEL);
if (!a2xx_gpu) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/gpu/drm/msm/adreno/a2xx_gpummu.c b/drivers/gpu/drm/msm/adreno/a2xx_gpummu.c
index 0407c9bc8c1b..4e8148497295 100644
--- a/drivers/gpu/drm/msm/adreno/a2xx_gpummu.c
+++ b/drivers/gpu/drm/msm/adreno/a2xx_gpummu.c
@@ -95,7 +95,7 @@ struct msm_mmu *a2xx_gpummu_new(struct device *dev, struct msm_gpu *gpu)
{
struct a2xx_gpummu *gpummu;
- gpummu = kzalloc(sizeof(*gpummu), GFP_KERNEL);
+ gpummu = kzalloc_obj(*gpummu, GFP_KERNEL);
if (!gpummu)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/msm/adreno/a3xx_gpu.c b/drivers/gpu/drm/msm/adreno/a3xx_gpu.c
index f22d33e99e81..5d47f8c0b7ea 100644
--- a/drivers/gpu/drm/msm/adreno/a3xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a3xx_gpu.c
@@ -480,7 +480,7 @@ static void a3xx_dump(struct msm_gpu *gpu)
static struct msm_gpu_state *a3xx_gpu_state_get(struct msm_gpu *gpu)
{
- struct msm_gpu_state *state = kzalloc(sizeof(*state), GFP_KERNEL);
+ struct msm_gpu_state *state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return ERR_PTR(-ENOMEM);
@@ -533,7 +533,7 @@ static struct msm_gpu *a3xx_gpu_init(struct drm_device *dev)
goto fail;
}
- a3xx_gpu = kzalloc(sizeof(*a3xx_gpu), GFP_KERNEL);
+ a3xx_gpu = kzalloc_obj(*a3xx_gpu, GFP_KERNEL);
if (!a3xx_gpu) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/gpu/drm/msm/adreno/a4xx_gpu.c b/drivers/gpu/drm/msm/adreno/a4xx_gpu.c
index db06c06067ae..e44e45ce0714 100644
--- a/drivers/gpu/drm/msm/adreno/a4xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a4xx_gpu.c
@@ -550,7 +550,7 @@ static const unsigned int a405_registers[] = {
static struct msm_gpu_state *a4xx_gpu_state_get(struct msm_gpu *gpu)
{
- struct msm_gpu_state *state = kzalloc(sizeof(*state), GFP_KERNEL);
+ struct msm_gpu_state *state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return ERR_PTR(-ENOMEM);
@@ -645,7 +645,7 @@ static struct msm_gpu *a4xx_gpu_init(struct drm_device *dev)
goto fail;
}
- a4xx_gpu = kzalloc(sizeof(*a4xx_gpu), GFP_KERNEL);
+ a4xx_gpu = kzalloc_obj(*a4xx_gpu, GFP_KERNEL);
if (!a4xx_gpu) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
index 56eaff2ee4e4..66e6b828cb84 100644
--- a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
@@ -1570,8 +1570,7 @@ static void a5xx_gpu_state_get_hlsq_regs(struct msm_gpu *gpu,
static struct msm_gpu_state *a5xx_gpu_state_get(struct msm_gpu *gpu)
{
- struct a5xx_gpu_state *a5xx_state = kzalloc(sizeof(*a5xx_state),
- GFP_KERNEL);
+ struct a5xx_gpu_state *a5xx_state = kzalloc_obj(*a5xx_state, GFP_KERNEL);
bool stalled = !!(gpu_read(gpu, REG_A5XX_RBBM_STATUS3) & BIT(24));
if (!a5xx_state)
@@ -1735,7 +1734,7 @@ static struct msm_gpu *a5xx_gpu_init(struct drm_device *dev)
unsigned int nr_rings;
int ret;
- a5xx_gpu = kzalloc(sizeof(*a5xx_gpu), GFP_KERNEL);
+ a5xx_gpu = kzalloc_obj(*a5xx_gpu, GFP_KERNEL);
if (!a5xx_gpu)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index 2129d230a92b..b8cc33fe7279 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -2648,7 +2648,7 @@ static struct msm_gpu *a6xx_gpu_init(struct drm_device *dev)
bool is_a7xx;
int ret, nr_rings = 1;
- a6xx_gpu = kzalloc(sizeof(*a6xx_gpu), GFP_KERNEL);
+ a6xx_gpu = kzalloc_obj(*a6xx_gpu, GFP_KERNEL);
if (!a6xx_gpu)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
index d2d6b2fd3cba..40933f4d2424 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
@@ -1584,8 +1584,7 @@ struct msm_gpu_state *a6xx_gpu_state_get(struct msm_gpu *gpu)
struct a6xx_crashdumper _dumper = { 0 }, *dumper = NULL;
struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);
struct a6xx_gpu *a6xx_gpu = to_a6xx_gpu(adreno_gpu);
- struct a6xx_gpu_state *a6xx_state = kzalloc(sizeof(*a6xx_state),
- GFP_KERNEL);
+ struct a6xx_gpu_state *a6xx_state = kzalloc_obj(*a6xx_state, GFP_KERNEL);
bool stalled;
if (!a6xx_state)
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
index 6bf7c46379ae..39c1165c93a7 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
@@ -887,7 +887,7 @@ static void _dpu_crtc_setup_cp_blocks(struct drm_crtc *crtc)
if (!state->gamma_lut) {
dspp->ops.setup_gc(dspp, NULL);
} else {
- gc_lut = kzalloc(sizeof(*gc_lut), GFP_KERNEL);
+ gc_lut = kzalloc_obj(*gc_lut, GFP_KERNEL);
if (!gc_lut)
continue;
_dpu_crtc_get_gc_lut(state, gc_lut);
@@ -1146,7 +1146,7 @@ void dpu_crtc_commit_kickoff(struct drm_crtc *crtc)
static void dpu_crtc_reset(struct drm_crtc *crtc)
{
- struct dpu_crtc_state *cstate = kzalloc(sizeof(*cstate), GFP_KERNEL);
+ struct dpu_crtc_state *cstate = kzalloc_obj(*cstate, GFP_KERNEL);
if (crtc->state)
dpu_crtc_destroy_state(crtc, crtc->state);
@@ -1343,7 +1343,7 @@ static int dpu_crtc_reassign_planes(struct drm_crtc *crtc, struct drm_crtc_state
if (!crtc_state->enable)
return 0;
- states = kcalloc(total_planes, sizeof(*states), GFP_KERNEL);
+ states = kzalloc_objs(*states, total_planes, GFP_KERNEL);
if (!states)
return -ENOMEM;
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index 0623f1dbed97..35986cefbf8b 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -385,7 +385,7 @@ static int dpu_kms_global_obj_init(struct dpu_kms *dpu_kms)
{
struct dpu_global_state *state;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return -ENOMEM;
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
index 9b7a8b46bfa9..59c44cce6753 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
@@ -1684,7 +1684,7 @@ static void dpu_plane_reset(struct drm_plane *plane)
plane->state = NULL;
}
- pstate = kzalloc(sizeof(*pstate), GFP_KERNEL);
+ pstate = kzalloc_obj(*pstate, GFP_KERNEL);
if (!pstate) {
DPU_ERROR_PLANE(pdpu, "failed to allocate state\n");
return;
diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
index 373ae7d9bf01..671f9857fbed 100644
--- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
+++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
@@ -1130,8 +1130,8 @@ static void mdp5_crtc_destroy_state(struct drm_crtc *crtc, struct drm_crtc_state
static void mdp5_crtc_reset(struct drm_crtc *crtc)
{
- struct mdp5_crtc_state *mdp5_cstate =
- kzalloc(sizeof(*mdp5_cstate), GFP_KERNEL);
+ struct mdp5_crtc_state *mdp5_cstate = kzalloc_obj(*mdp5_cstate,
+ GFP_KERNEL);
if (crtc->state)
mdp5_crtc_destroy_state(crtc, crtc->state);
diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
index 61edf6864092..743517e29626 100644
--- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
+++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
@@ -133,7 +133,7 @@ static int mdp5_global_obj_init(struct mdp5_kms *mdp5_kms)
{
struct mdp5_global_state *state;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return -ENOMEM;
diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c
index 4ca183fb61a9..83088fd8f910 100644
--- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c
+++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c
@@ -89,7 +89,7 @@ static void mdp5_plane_reset(struct drm_plane *plane)
kfree(to_mdp5_plane_state(plane->state));
plane->state = NULL;
- mdp5_state = kzalloc(sizeof(*mdp5_state), GFP_KERNEL);
+ mdp5_state = kzalloc_obj(*mdp5_state, GFP_KERNEL);
if (!mdp5_state)
return;
__drm_atomic_helper_plane_reset(plane, &mdp5_state->base);
diff --git a/drivers/gpu/drm/msm/disp/msm_disp_snapshot.c b/drivers/gpu/drm/msm/disp/msm_disp_snapshot.c
index 2be00b11e557..60af5c02973f 100644
--- a/drivers/gpu/drm/msm/disp/msm_disp_snapshot.c
+++ b/drivers/gpu/drm/msm/disp/msm_disp_snapshot.c
@@ -36,7 +36,7 @@ msm_disp_snapshot_state_sync(struct msm_kms *kms)
WARN_ON(!mutex_is_locked(&kms->dump_mutex));
- disp_state = kzalloc(sizeof(struct msm_disp_state), GFP_KERNEL);
+ disp_state = kzalloc_obj(struct msm_disp_state, GFP_KERNEL);
if (!disp_state)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c b/drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c
index 19b470968f4d..fdb8ca642794 100644
--- a/drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c
+++ b/drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c
@@ -172,7 +172,7 @@ void msm_disp_snapshot_add_block(struct msm_disp_state *disp_state, u32 len,
struct va_format vaf;
va_list va;
- new_blk = kzalloc(sizeof(struct msm_disp_state_block), GFP_KERNEL);
+ new_blk = kzalloc_obj(struct msm_disp_state_block, GFP_KERNEL);
if (!new_blk)
return;
diff --git a/drivers/gpu/drm/msm/dp/dp_ctrl.c b/drivers/gpu/drm/msm/dp/dp_ctrl.c
index 5fc261191cb7..00c36fa75c5c 100644
--- a/drivers/gpu/drm/msm/dp/dp_ctrl.c
+++ b/drivers/gpu/drm/msm/dp/dp_ctrl.c
@@ -921,7 +921,7 @@ static void _dp_ctrl_calc_tu(struct msm_dp_ctrl_private *ctrl,
uint EXTRA_PIXCLK_CYCLE_DELAY = 4;
uint HBLANK_MARGIN = 4;
- tu = kzalloc(sizeof(*tu), GFP_KERNEL);
+ tu = kzalloc_obj(*tu, GFP_KERNEL);
if (!tu)
return;
diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c b/drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c
index 0752fe373351..c59c7b4c3ee0 100644
--- a/drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c
+++ b/drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c
@@ -1400,7 +1400,7 @@ struct hdmi_hdcp_ctrl *msm_hdmi_hdcp_init(struct hdmi *hdmi)
return ERR_PTR(-EINVAL);
}
- hdcp_ctrl = kzalloc(sizeof(*hdcp_ctrl), GFP_KERNEL);
+ hdcp_ctrl = kzalloc_obj(*hdcp_ctrl, GFP_KERNEL);
if (!hdcp_ctrl)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_i2c.c b/drivers/gpu/drm/msm/hdmi/hdmi_i2c.c
index ebefea4fb408..020b2f432b38 100644
--- a/drivers/gpu/drm/msm/hdmi/hdmi_i2c.c
+++ b/drivers/gpu/drm/msm/hdmi/hdmi_i2c.c
@@ -246,7 +246,7 @@ struct i2c_adapter *msm_hdmi_i2c_init(struct hdmi *hdmi)
struct i2c_adapter *i2c = NULL;
int ret;
- hdmi_i2c = kzalloc(sizeof(*hdmi_i2c), GFP_KERNEL);
+ hdmi_i2c = kzalloc_obj(*hdmi_i2c, GFP_KERNEL);
if (!hdmi_i2c) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/gpu/drm/msm/msm_debugfs.c b/drivers/gpu/drm/msm/msm_debugfs.c
index 97dc70876442..785172f5d74f 100644
--- a/drivers/gpu/drm/msm/msm_debugfs.c
+++ b/drivers/gpu/drm/msm/msm_debugfs.c
@@ -76,7 +76,7 @@ static int msm_gpu_open(struct inode *inode, struct file *file)
if (!gpu || !gpu->funcs->gpu_state_get)
return -ENODEV;
- show_priv = kmalloc(sizeof(*show_priv), GFP_KERNEL);
+ show_priv = kmalloc_obj(*show_priv, GFP_KERNEL);
if (!show_priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index ed2a61c66ac9..2fc0fa82a275 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -247,7 +247,7 @@ static int context_init(struct drm_device *dev, struct drm_file *file)
static atomic_t ident = ATOMIC_INIT(0);
struct msm_context *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/gpu/drm/msm/msm_fb.c b/drivers/gpu/drm/msm/msm_fb.c
index 1eff615ff9bf..d784d1773dee 100644
--- a/drivers/gpu/drm/msm/msm_fb.c
+++ b/drivers/gpu/drm/msm/msm_fb.c
@@ -194,7 +194,7 @@ static struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
goto fail;
}
- msm_fb = kzalloc(sizeof(*msm_fb), GFP_KERNEL);
+ msm_fb = kzalloc_obj(*msm_fb, GFP_KERNEL);
if (!msm_fb) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/gpu/drm/msm/msm_fence.c b/drivers/gpu/drm/msm/msm_fence.c
index d41e5a6bbee0..eafd52f03d17 100644
--- a/drivers/gpu/drm/msm/msm_fence.c
+++ b/drivers/gpu/drm/msm/msm_fence.c
@@ -46,7 +46,7 @@ msm_fence_context_alloc(struct drm_device *dev, volatile uint32_t *fenceptr,
struct msm_fence_context *fctx;
static int index = 0;
- fctx = kzalloc(sizeof(*fctx), GFP_KERNEL);
+ fctx = kzalloc_obj(*fctx, GFP_KERNEL);
if (!fctx)
return ERR_PTR(-ENOMEM);
@@ -176,7 +176,7 @@ msm_fence_alloc(void)
{
struct msm_fence *f;
- f = kzalloc(sizeof(*f), GFP_KERNEL);
+ f = kzalloc_obj(*f, GFP_KERNEL);
if (!f)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c
index da74f1413f94..5d4ab1900984 100644
--- a/drivers/gpu/drm/msm/msm_gem.c
+++ b/drivers/gpu/drm/msm/msm_gem.c
@@ -1215,7 +1215,7 @@ static int msm_gem_new_impl(struct drm_device *dev, uint32_t flags,
return -EINVAL;
}
- msm_obj = kzalloc(sizeof(*msm_obj), GFP_KERNEL);
+ msm_obj = kzalloc_obj(*msm_obj, GFP_KERNEL);
if (!msm_obj)
return -ENOMEM;
@@ -1301,7 +1301,7 @@ struct drm_gem_object *msm_gem_import(struct drm_device *dev,
msm_obj = to_msm_bo(obj);
msm_gem_lock(obj);
msm_obj->sgt = sgt;
- msm_obj->pages = kvmalloc_array(npages, sizeof(struct page *), GFP_KERNEL);
+ msm_obj->pages = kvmalloc_objs(struct page *, npages, GFP_KERNEL);
if (!msm_obj->pages) {
msm_gem_unlock(obj);
ret = -ENOMEM;
diff --git a/drivers/gpu/drm/msm/msm_gem_vma.c b/drivers/gpu/drm/msm/msm_gem_vma.c
index 5fd58d910620..3c43e27ce553 100644
--- a/drivers/gpu/drm/msm/msm_gem_vma.c
+++ b/drivers/gpu/drm/msm/msm_gem_vma.c
@@ -375,7 +375,7 @@ msm_gem_vma_new(struct drm_gpuvm *gpuvm, struct drm_gem_object *obj,
drm_gpuvm_resv_assert_held(&vm->base);
- vma = kzalloc(sizeof(*vma), GFP_KERNEL);
+ vma = kzalloc_obj(*vma, GFP_KERNEL);
if (!vma)
return ERR_PTR(-ENOMEM);
@@ -465,7 +465,7 @@ struct op_arg {
static int
vm_op_enqueue(struct op_arg *arg, struct msm_vm_op _op)
{
- struct msm_vm_op *op = kmalloc(sizeof(*op), GFP_KERNEL);
+ struct msm_vm_op *op = kmalloc_obj(*op, GFP_KERNEL);
if (!op)
return -ENOMEM;
@@ -819,7 +819,7 @@ msm_gem_vm_create(struct drm_device *drm, struct msm_mmu *mmu, const char *name,
if (IS_ERR(mmu))
return ERR_CAST(mmu);
- vm = kzalloc(sizeof(*vm), GFP_KERNEL);
+ vm = kzalloc_obj(*vm, GFP_KERNEL);
if (!vm)
return ERR_PTR(-ENOMEM);
@@ -869,8 +869,8 @@ msm_gem_vm_create(struct drm_device *drm, struct msm_mmu *mmu, const char *name,
vm->log_shift = MIN(vm_log_shift, 8);
if (vm->log_shift) {
- vm->log = kmalloc_array(1 << vm->log_shift, sizeof(vm->log[0]),
- GFP_KERNEL | __GFP_ZERO);
+ vm->log = kmalloc_objs(vm->log[0], 1 << vm->log_shift,
+ GFP_KERNEL | __GFP_ZERO);
}
return &vm->base;
@@ -952,7 +952,7 @@ vm_bind_job_create(struct drm_device *dev, struct drm_file *file,
struct msm_vm_bind_job *job;
int ret;
- job = kzalloc(struct_size(job, ops, nr_ops), GFP_KERNEL | __GFP_NOWARN);
+ job = kzalloc_flex(*job, ops, nr_ops, GFP_KERNEL | __GFP_NOWARN);
if (!job)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c
index 995549d0bbbc..24f164a04f59 100644
--- a/drivers/gpu/drm/msm/msm_gpu.c
+++ b/drivers/gpu/drm/msm/msm_gpu.c
@@ -346,8 +346,7 @@ static void crashstate_get_vm_logs(struct msm_gpu_state *state, struct msm_gem_v
state->nr_vm_logs = vm_log_len;
}
- state->vm_logs = kmalloc_array(
- state->nr_vm_logs, sizeof(vm->log[0]), GFP_KERNEL);
+ state->vm_logs = kmalloc_objs(vm->log[0], state->nr_vm_logs, GFP_KERNEL);
if (!state->vm_logs) {
state->nr_vm_logs = 0;
}
diff --git a/drivers/gpu/drm/msm/msm_iommu.c b/drivers/gpu/drm/msm/msm_iommu.c
index 271baf4dc4e8..425ae5eb9af3 100644
--- a/drivers/gpu/drm/msm/msm_iommu.c
+++ b/drivers/gpu/drm/msm/msm_iommu.c
@@ -332,7 +332,7 @@ msm_iommu_pagetable_prealloc_allocate(struct msm_mmu *mmu, struct msm_mmu_preall
struct kmem_cache *pt_cache = get_pt_cache(mmu);
int ret;
- p->pages = kvmalloc_array(p->count, sizeof(*p->pages), GFP_KERNEL);
+ p->pages = kvmalloc_objs(*p->pages, p->count, GFP_KERNEL);
if (!p->pages)
return -ENOMEM;
@@ -521,7 +521,7 @@ struct msm_mmu *msm_iommu_pagetable_create(struct msm_mmu *parent, bool kernel_m
if (WARN_ONCE(!ttbr1_cfg, "No per-process page tables"))
return ERR_PTR(-ENODEV);
- pagetable = kzalloc(sizeof(*pagetable), GFP_KERNEL);
+ pagetable = kzalloc_obj(*pagetable, GFP_KERNEL);
if (!pagetable)
return ERR_PTR(-ENOMEM);
@@ -734,7 +734,7 @@ struct msm_mmu *msm_iommu_new(struct device *dev, unsigned long quirks)
iommu_set_pgtable_quirks(domain, quirks);
- iommu = kzalloc(sizeof(*iommu), GFP_KERNEL);
+ iommu = kzalloc_obj(*iommu, GFP_KERNEL);
if (!iommu) {
iommu_domain_free(domain);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/msm/msm_kms.c b/drivers/gpu/drm/msm/msm_kms.c
index 6e5e94f5c9a7..e5d0ea629448 100644
--- a/drivers/gpu/drm/msm/msm_kms.c
+++ b/drivers/gpu/drm/msm/msm_kms.c
@@ -128,7 +128,7 @@ static int vblank_ctrl_queue_work(struct msm_drm_private *priv,
{
struct msm_vblank_work *vbl_work;
- vbl_work = kzalloc(sizeof(*vbl_work), GFP_ATOMIC);
+ vbl_work = kzalloc_obj(*vbl_work, GFP_ATOMIC);
if (!vbl_work)
return -ENOMEM;
diff --git a/drivers/gpu/drm/msm/msm_perf.c b/drivers/gpu/drm/msm/msm_perf.c
index c369d4acc378..e40f6aa5917d 100644
--- a/drivers/gpu/drm/msm/msm_perf.c
+++ b/drivers/gpu/drm/msm/msm_perf.c
@@ -204,7 +204,7 @@ int msm_perf_debugfs_init(struct drm_minor *minor)
if (priv->perf)
return 0;
- perf = kzalloc(sizeof(*perf), GFP_KERNEL);
+ perf = kzalloc_obj(*perf, GFP_KERNEL);
if (!perf)
return -ENOMEM;
diff --git a/drivers/gpu/drm/msm/msm_rd.c b/drivers/gpu/drm/msm/msm_rd.c
index 54493a94dcb7..3275ce9a4f07 100644
--- a/drivers/gpu/drm/msm/msm_rd.c
+++ b/drivers/gpu/drm/msm/msm_rd.c
@@ -245,7 +245,7 @@ static struct msm_rd_state *rd_init(struct drm_minor *minor, const char *name)
{
struct msm_rd_state *rd;
- rd = kzalloc(sizeof(*rd), GFP_KERNEL);
+ rd = kzalloc_obj(*rd, GFP_KERNEL);
if (!rd)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/msm/msm_ringbuffer.c b/drivers/gpu/drm/msm/msm_ringbuffer.c
index b2f612e5dc79..9540a615b7a9 100644
--- a/drivers/gpu/drm/msm/msm_ringbuffer.c
+++ b/drivers/gpu/drm/msm/msm_ringbuffer.c
@@ -79,7 +79,7 @@ struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id,
/* We assume everywhere that MSM_GPU_RINGBUFFER_SZ is a power of 2 */
BUILD_BUG_ON(!is_power_of_2(MSM_GPU_RINGBUFFER_SZ));
- ring = kzalloc(sizeof(*ring), GFP_KERNEL);
+ ring = kzalloc_obj(*ring, GFP_KERNEL);
if (!ring) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/gpu/drm/msm/msm_submitqueue.c b/drivers/gpu/drm/msm/msm_submitqueue.c
index d53dfad16bde..04e4a2f2a3b0 100644
--- a/drivers/gpu/drm/msm/msm_submitqueue.c
+++ b/drivers/gpu/drm/msm/msm_submitqueue.c
@@ -151,7 +151,7 @@ get_sched_entity(struct msm_context *ctx, struct msm_ringbuffer *ring,
struct drm_gpu_scheduler *sched = &ring->sched;
int ret;
- entity = kzalloc(sizeof(*ctx->entities[idx]), GFP_KERNEL);
+ entity = kzalloc_obj(*ctx->entities[idx], GFP_KERNEL);
ret = drm_sched_entity_init(entity, sched_prio, &sched, 1, NULL);
if (ret) {
@@ -207,7 +207,7 @@ int msm_submitqueue_create(struct drm_device *drm, struct msm_context *ctx,
if (ret)
return ret;
- queue = kzalloc(sizeof(*queue), GFP_KERNEL);
+ queue = kzalloc_obj(*queue, GFP_KERNEL);
}
if (!queue)
diff --git a/drivers/gpu/drm/msm/msm_syncobj.c b/drivers/gpu/drm/msm/msm_syncobj.c
index 4baa9f522c54..c67aaf6f7105 100644
--- a/drivers/gpu/drm/msm/msm_syncobj.c
+++ b/drivers/gpu/drm/msm/msm_syncobj.c
@@ -19,8 +19,8 @@ msm_syncobj_parse_deps(struct drm_device *dev,
int ret = 0;
uint32_t i, j;
- syncobjs = kcalloc(nr_in_syncobjs, sizeof(*syncobjs),
- GFP_KERNEL | __GFP_NOWARN | __GFP_NORETRY);
+ syncobjs = kzalloc_objs(*syncobjs, nr_in_syncobjs,
+ GFP_KERNEL | __GFP_NOWARN | __GFP_NORETRY);
if (!syncobjs)
return ERR_PTR(-ENOMEM);
@@ -94,8 +94,8 @@ msm_syncobj_parse_post_deps(struct drm_device *dev,
int ret = 0;
uint32_t i, j;
- post_deps = kcalloc(nr_syncobjs, sizeof(*post_deps),
- GFP_KERNEL | __GFP_NOWARN | __GFP_NORETRY);
+ post_deps = kzalloc_objs(*post_deps, nr_syncobjs,
+ GFP_KERNEL | __GFP_NOWARN | __GFP_NORETRY);
if (!post_deps)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/mxsfb/lcdif_kms.c b/drivers/gpu/drm/mxsfb/lcdif_kms.c
index 72eb0de46b54..e6ef6e318df9 100644
--- a/drivers/gpu/drm/mxsfb/lcdif_kms.c
+++ b/drivers/gpu/drm/mxsfb/lcdif_kms.c
@@ -595,7 +595,7 @@ static void lcdif_crtc_reset(struct drm_crtc *crtc)
crtc->state = NULL;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state)
__drm_atomic_helper_crtc_reset(crtc, &state->base);
}
@@ -609,7 +609,7 @@ lcdif_crtc_atomic_duplicate_state(struct drm_crtc *crtc)
if (WARN_ON(!crtc->state))
return NULL;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return NULL;
diff --git a/drivers/gpu/drm/nouveau/dispnv04/crtc.c b/drivers/gpu/drm/nouveau/dispnv04/crtc.c
index 80493224eb6c..e8b4f272aa8c 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/crtc.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/crtc.c
@@ -1158,7 +1158,7 @@ nv04_crtc_page_flip(struct drm_crtc *crtc, struct drm_framebuffer *fb,
cli = chan->cli;
push = &chan->chan.push;
- s = kzalloc(sizeof(*s), GFP_KERNEL);
+ s = kzalloc_obj(*s, GFP_KERNEL);
if (!s)
return -ENOMEM;
@@ -1291,7 +1291,7 @@ nv04_crtc_create(struct drm_device *dev, int crtc_num)
struct drm_plane *primary;
int ret;
- nv_crtc = kzalloc(sizeof(*nv_crtc), GFP_KERNEL);
+ nv_crtc = kzalloc_obj(*nv_crtc, GFP_KERNEL);
if (!nv_crtc)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/dispnv04/dac.c b/drivers/gpu/drm/nouveau/dispnv04/dac.c
index 2e12bf136607..4137e694a7b6 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/dac.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/dac.c
@@ -532,7 +532,7 @@ nv04_dac_create(struct drm_connector *connector, struct dcb_output *entry)
struct drm_device *dev = connector->dev;
struct drm_encoder *encoder;
- nv_encoder = kzalloc(sizeof(*nv_encoder), GFP_KERNEL);
+ nv_encoder = kzalloc_obj(*nv_encoder, GFP_KERNEL);
if (!nv_encoder)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/dispnv04/dfp.c b/drivers/gpu/drm/nouveau/dispnv04/dfp.c
index c724bacc67f8..a1cfc8e562d9 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/dfp.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/dfp.c
@@ -697,7 +697,7 @@ nv04_dfp_create(struct drm_connector *connector, struct dcb_output *entry)
return -EINVAL;
}
- nv_encoder = kzalloc(sizeof(*nv_encoder), GFP_KERNEL);
+ nv_encoder = kzalloc_obj(*nv_encoder, GFP_KERNEL);
if (!nv_encoder)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/dispnv04/i2c/ch7006_drv.c b/drivers/gpu/drm/nouveau/dispnv04/i2c/ch7006_drv.c
index fd2150e07e36..369646b00802 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/i2c/ch7006_drv.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/i2c/ch7006_drv.c
@@ -444,7 +444,7 @@ static int ch7006_encoder_init(struct i2c_client *client,
ch7006_dbg(client, "\n");
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/dispnv04/i2c/sil164_drv.c b/drivers/gpu/drm/nouveau/dispnv04/i2c/sil164_drv.c
index 54ea8459332d..1af644b20b0b 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/i2c/sil164_drv.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/i2c/sil164_drv.c
@@ -399,7 +399,7 @@ sil164_encoder_init(struct i2c_client *client,
struct sil164_priv *priv;
struct i2c_client *slave_client;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/dispnv04/overlay.c b/drivers/gpu/drm/nouveau/dispnv04/overlay.c
index 33f29736024a..6d6a69d9d23f 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/overlay.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/overlay.c
@@ -279,7 +279,8 @@ static void
nv10_overlay_init(struct drm_device *device)
{
struct nouveau_drm *drm = nouveau_drm(device);
- struct nouveau_plane *plane = kzalloc(sizeof(struct nouveau_plane), GFP_KERNEL);
+ struct nouveau_plane *plane = kzalloc_obj(struct nouveau_plane,
+ GFP_KERNEL);
unsigned int num_formats = ARRAY_SIZE(formats);
int ret;
@@ -470,7 +471,8 @@ static void
nv04_overlay_init(struct drm_device *device)
{
struct nouveau_drm *drm = nouveau_drm(device);
- struct nouveau_plane *plane = kzalloc(sizeof(struct nouveau_plane), GFP_KERNEL);
+ struct nouveau_plane *plane = kzalloc_obj(struct nouveau_plane,
+ GFP_KERNEL);
int ret;
if (!plane)
diff --git a/drivers/gpu/drm/nouveau/dispnv04/tvnv04.c b/drivers/gpu/drm/nouveau/dispnv04/tvnv04.c
index c61ab083f62e..3ddcffe5c58e 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/tvnv04.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/tvnv04.c
@@ -215,7 +215,7 @@ nv04_tv_create(struct drm_connector *connector, struct dcb_output *entry)
return type;
/* Allocate the necessary memory */
- nv_encoder = kzalloc(sizeof(*nv_encoder), GFP_KERNEL);
+ nv_encoder = kzalloc_obj(*nv_encoder, GFP_KERNEL);
if (!nv_encoder)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/dispnv04/tvnv17.c b/drivers/gpu/drm/nouveau/dispnv04/tvnv17.c
index 06de05fe5db6..8d252e8013b6 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/tvnv17.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/tvnv17.c
@@ -797,7 +797,7 @@ nv17_tv_create(struct drm_connector *connector, struct dcb_output *entry)
struct drm_encoder *encoder;
struct nv17_tv_encoder *tv_enc = NULL;
- tv_enc = kzalloc(sizeof(*tv_enc), GFP_KERNEL);
+ tv_enc = kzalloc_obj(*tv_enc, GFP_KERNEL);
if (!tv_enc)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/dispnv50/core507d.c b/drivers/gpu/drm/nouveau/dispnv50/core507d.c
index 4b947b67a844..8997e53fd2be 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/core507d.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/core507d.c
@@ -162,7 +162,7 @@ core507d_new_(const struct nv50_core_func *func, struct nouveau_drm *drm,
struct nv50_core *core;
int ret;
- if (!(core = *pcore = kzalloc(sizeof(*core), GFP_KERNEL)))
+ if (!(core = *pcore = kzalloc_obj(*core, GFP_KERNEL)))
return -ENOMEM;
core->func = func;
core->disp = disp;
diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
index 12b1dba8e05d..c4c5ba876775 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
@@ -1115,7 +1115,7 @@ nv50_msto_new(struct drm_device *dev, struct nv50_head *head, int id)
struct nv50_msto *msto;
int ret;
- msto = kzalloc(sizeof(*msto), GFP_KERNEL);
+ msto = kzalloc_obj(*msto, GFP_KERNEL);
if (!msto)
return ERR_PTR(-ENOMEM);
@@ -1267,7 +1267,7 @@ nv50_mstc_new(struct nv50_mstm *mstm, struct drm_dp_mst_port *port,
struct nv50_mstc *mstc;
int ret;
- if (!(mstc = *pmstc = kzalloc(sizeof(*mstc), GFP_KERNEL)))
+ if (!(mstc = *pmstc = kzalloc_obj(*mstc, GFP_KERNEL)))
return -ENOMEM;
mstc->mstm = mstm;
mstc->port = port;
@@ -1520,7 +1520,7 @@ nv50_mstm_new(struct nouveau_encoder *outp, struct drm_dp_aux *aux, int aux_max,
struct nv50_mstm *mstm;
int ret;
- if (!(mstm = *pmstm = kzalloc(sizeof(*mstm), GFP_KERNEL)))
+ if (!(mstm = *pmstm = kzalloc_obj(*mstm, GFP_KERNEL)))
return -ENOMEM;
mstm->outp = outp;
mstm->mgr.cbs = &nv50_mstm;
@@ -2496,7 +2496,7 @@ nv50_disp_outp_atomic_add(struct nv50_atom *atom, struct drm_encoder *encoder)
return outp;
}
- outp = kzalloc(sizeof(*outp), GFP_KERNEL);
+ outp = kzalloc_obj(*outp, GFP_KERNEL);
if (!outp)
return ERR_PTR(-ENOMEM);
@@ -2643,7 +2643,7 @@ static struct drm_atomic_state *
nv50_disp_atomic_state_alloc(struct drm_device *dev)
{
struct nv50_atom *atom;
- if (!(atom = kzalloc(sizeof(*atom), GFP_KERNEL)) ||
+ if (!(atom = kzalloc_obj(*atom, GFP_KERNEL)) ||
drm_atomic_state_init(dev, &atom->state) < 0) {
kfree(atom);
return NULL;
@@ -2833,7 +2833,7 @@ nv50_display_create(struct drm_device *dev)
int ret, i;
bool has_mst = false;
- disp = kzalloc(sizeof(*disp), GFP_KERNEL);
+ disp = kzalloc_obj(*disp, GFP_KERNEL);
if (!disp)
return -ENOMEM;
@@ -2900,7 +2900,7 @@ nv50_display_create(struct drm_device *dev)
for_each_set_bit(i, &disp->disp->outp_mask, sizeof(disp->disp->outp_mask) * 8) {
struct nouveau_encoder *outp;
- outp = kzalloc(sizeof(*outp), GFP_KERNEL);
+ outp = kzalloc_obj(*outp, GFP_KERNEL);
if (!outp)
break;
@@ -2921,7 +2921,7 @@ nv50_display_create(struct drm_device *dev)
outp->base.base.possible_clones = 0;
outp->conn = nouveau_connector(connector);
- outp->dcb = kzalloc(sizeof(*outp->dcb), GFP_KERNEL);
+ outp->dcb = kzalloc_obj(*outp->dcb, GFP_KERNEL);
if (!outp->dcb)
break;
diff --git a/drivers/gpu/drm/nouveau/dispnv50/head.c b/drivers/gpu/drm/nouveau/dispnv50/head.c
index e32ed1db6c56..3f1b3c6cc7d9 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/head.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/head.c
@@ -470,7 +470,7 @@ nv50_head_atomic_duplicate_state(struct drm_crtc *crtc)
{
struct nv50_head_atom *armh = nv50_head_atom(crtc->state);
struct nv50_head_atom *asyh;
- if (!(asyh = kmalloc(sizeof(*asyh), GFP_KERNEL)))
+ if (!(asyh = kmalloc_obj(*asyh, GFP_KERNEL)))
return NULL;
__drm_atomic_helper_crtc_duplicate_state(crtc, &asyh->state);
asyh->wndw = armh->wndw;
@@ -496,7 +496,7 @@ nv50_head_reset(struct drm_crtc *crtc)
{
struct nv50_head_atom *asyh;
- if (WARN_ON(!(asyh = kzalloc(sizeof(*asyh), GFP_KERNEL))))
+ if (WARN_ON(!(asyh = kzalloc_obj(*asyh, GFP_KERNEL))))
return;
if (crtc->state)
@@ -577,7 +577,7 @@ nv50_head_create(struct drm_device *dev, int index)
const struct drm_crtc_funcs *funcs;
int ret;
- head = kzalloc(sizeof(*head), GFP_KERNEL);
+ head = kzalloc_obj(*head, GFP_KERNEL);
if (!head)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/nouveau/dispnv50/lut.c b/drivers/gpu/drm/nouveau/dispnv50/lut.c
index 6b2ad1e6eab9..e07060917cc0 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/lut.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/lut.c
@@ -38,7 +38,7 @@ nv50_lut_load(struct nv50_lut *lut, int buffer, struct drm_property_blob *blob,
int i;
if (!in) {
- in = kvmalloc_array(1024, sizeof(*in), GFP_KERNEL);
+ in = kvmalloc_objs(*in, 1024, GFP_KERNEL);
if (!WARN_ON(!in)) {
for (i = 0; i < 1024; i++) {
in[i].red =
diff --git a/drivers/gpu/drm/nouveau/dispnv50/wndw.c b/drivers/gpu/drm/nouveau/dispnv50/wndw.c
index 9a2c20fce0f3..54b4252f4f49 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/wndw.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/wndw.c
@@ -80,7 +80,7 @@ nv50_wndw_ctxdma_new(struct nv50_wndw *wndw, struct drm_framebuffer *fb)
return ctxdma;
}
- if (!(ctxdma = kzalloc(sizeof(*ctxdma), GFP_KERNEL)))
+ if (!(ctxdma = kzalloc_obj(*ctxdma, GFP_KERNEL)))
return ERR_PTR(-ENOMEM);
list_add(&ctxdma->head, &wndw->ctxdma.list);
@@ -730,7 +730,7 @@ nv50_wndw_atomic_duplicate_state(struct drm_plane *plane)
{
struct nv50_wndw_atom *armw = nv50_wndw_atom(plane->state);
struct nv50_wndw_atom *asyw;
- if (!(asyw = kmalloc(sizeof(*asyw), GFP_KERNEL)))
+ if (!(asyw = kmalloc_obj(*asyw, GFP_KERNEL)))
return NULL;
__drm_atomic_helper_plane_duplicate_state(plane, &asyw->state);
asyw->sema = armw->sema;
@@ -757,7 +757,7 @@ nv50_wndw_reset(struct drm_plane *plane)
{
struct nv50_wndw_atom *asyw;
- if (WARN_ON(!(asyw = kzalloc(sizeof(*asyw), GFP_KERNEL))))
+ if (WARN_ON(!(asyw = kzalloc_obj(*asyw, GFP_KERNEL))))
return;
if (plane->state)
@@ -863,7 +863,7 @@ nv50_wndw_new_(const struct nv50_wndw_func *func, struct drm_device *dev,
int nformat;
int ret;
- if (!(wndw = *pwndw = kzalloc(sizeof(*wndw), GFP_KERNEL)))
+ if (!(wndw = *pwndw = kzalloc_obj(*wndw, GFP_KERNEL)))
return -ENOMEM;
wndw->func = func;
wndw->id = index;
diff --git a/drivers/gpu/drm/nouveau/nouveau_abi16.c b/drivers/gpu/drm/nouveau/nouveau_abi16.c
index a3ba07fc48a0..8c0cfab73f8f 100644
--- a/drivers/gpu/drm/nouveau/nouveau_abi16.c
+++ b/drivers/gpu/drm/nouveau/nouveau_abi16.c
@@ -44,7 +44,7 @@ nouveau_abi16(struct drm_file *file_priv)
struct nouveau_cli *cli = nouveau_cli(file_priv);
if (!cli->abi16) {
struct nouveau_abi16 *abi16;
- cli->abi16 = abi16 = kzalloc(sizeof(*abi16), GFP_KERNEL);
+ cli->abi16 = abi16 = kzalloc_obj(*abi16, GFP_KERNEL);
if (cli->abi16) {
abi16->cli = cli;
INIT_LIST_HEAD(&abi16->channels);
@@ -124,7 +124,7 @@ nouveau_abi16_obj_new(struct nouveau_abi16 *abi16, enum nouveau_abi16_obj_type t
if (obj)
return ERR_PTR(-EEXIST);
- obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ obj = kzalloc_obj(*obj, GFP_KERNEL);
if (!obj)
return ERR_PTR(-ENOMEM);
@@ -397,7 +397,7 @@ nouveau_abi16_ioctl_channel_alloc(ABI16_IOCTL_ARGS)
return nouveau_abi16_put(abi16, -EINVAL);
/* allocate "abi16 channel" data and make up a handle for it */
- chan = kzalloc(sizeof(*chan), GFP_KERNEL);
+ chan = kzalloc_obj(*chan, GFP_KERNEL);
if (!chan)
return nouveau_abi16_put(abi16, -ENOMEM);
@@ -597,7 +597,7 @@ nouveau_abi16_ioctl_grobj_alloc(ABI16_IOCTL_ARGS)
if (!oclass)
return nouveau_abi16_put(abi16, -EINVAL);
- ntfy = kzalloc(sizeof(*ntfy), GFP_KERNEL);
+ ntfy = kzalloc_obj(*ntfy, GFP_KERNEL);
if (!ntfy)
return nouveau_abi16_put(abi16, -ENOMEM);
@@ -635,7 +635,7 @@ nouveau_abi16_ioctl_notifierobj_alloc(ABI16_IOCTL_ARGS)
if (!chan)
return nouveau_abi16_put(abi16, -ENOENT);
- ntfy = kzalloc(sizeof(*ntfy), GFP_KERNEL);
+ ntfy = kzalloc_obj(*ntfy, GFP_KERNEL);
if (!ntfy)
return nouveau_abi16_put(abi16, -ENOMEM);
diff --git a/drivers/gpu/drm/nouveau/nouveau_backlight.c b/drivers/gpu/drm/nouveau/nouveau_backlight.c
index 4a75d146a171..1ddc8d1817f6 100644
--- a/drivers/gpu/drm/nouveau/nouveau_backlight.c
+++ b/drivers/gpu/drm/nouveau/nouveau_backlight.c
@@ -314,7 +314,7 @@ nouveau_backlight_init(struct drm_connector *connector)
if (!nv_encoder)
return 0;
- bl = kzalloc(sizeof(*bl), GFP_KERNEL);
+ bl = kzalloc_obj(*bl, GFP_KERNEL);
if (!bl)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index f26562eafffc..710f0551e091 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -222,7 +222,7 @@ nouveau_bo_alloc(struct nouveau_cli *cli, u64 *size, int *align, u32 domain,
return ERR_PTR(-EINVAL);
}
- nvbo = kzalloc(sizeof(struct nouveau_bo), GFP_KERNEL);
+ nvbo = kzalloc_obj(struct nouveau_bo, GFP_KERNEL);
if (!nvbo)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/nouveau/nouveau_chan.c b/drivers/gpu/drm/nouveau/nouveau_chan.c
index b1e92b1f7a26..5b94aa9c1d9d 100644
--- a/drivers/gpu/drm/nouveau/nouveau_chan.c
+++ b/drivers/gpu/drm/nouveau/nouveau_chan.c
@@ -149,7 +149,7 @@ nouveau_channel_prep(struct nouveau_cli *cli,
u32 target;
int ret;
- chan = *pchan = kzalloc(sizeof(*chan), GFP_KERNEL);
+ chan = *pchan = kzalloc_obj(*chan, GFP_KERNEL);
if (!chan)
return -ENOMEM;
@@ -545,7 +545,7 @@ nouveau_channels_init(struct nouveau_drm *drm)
drm->chan_nr = drm->chan_total = channels->data;
drm->runl_nr = fls64(runlists->data);
- drm->runl = kcalloc(drm->runl_nr, sizeof(*drm->runl), GFP_KERNEL);
+ drm->runl = kzalloc_objs(*drm->runl, drm->runl_nr, GFP_KERNEL);
if (!drm->runl)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index 63621b1510f6..a8250d04eaf4 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -232,7 +232,7 @@ nouveau_conn_atomic_duplicate_state(struct drm_connector *connector)
{
struct nouveau_conn_atom *armc = nouveau_conn_atom(connector->state);
struct nouveau_conn_atom *asyc;
- if (!(asyc = kmalloc(sizeof(*asyc), GFP_KERNEL)))
+ if (!(asyc = kmalloc_obj(*asyc, GFP_KERNEL)))
return NULL;
__drm_atomic_helper_connector_duplicate_state(connector, &asyc->state);
asyc->dither = armc->dither;
@@ -249,7 +249,7 @@ nouveau_conn_reset(struct drm_connector *connector)
struct nouveau_conn_atom *asyc;
if (drm_drv_uses_atomic_modeset(connector->dev)) {
- if (WARN_ON(!(asyc = kzalloc(sizeof(*asyc), GFP_KERNEL))))
+ if (WARN_ON(!(asyc = kzalloc_obj(*asyc, GFP_KERNEL))))
return;
if (connector->state)
@@ -1298,7 +1298,7 @@ nouveau_connector_create(struct drm_device *dev, int index)
}
drm_connector_list_iter_end(&conn_iter);
- nv_connector = kzalloc(sizeof(*nv_connector), GFP_KERNEL);
+ nv_connector = kzalloc_obj(*nv_connector, GFP_KERNEL);
if (!nv_connector)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/nouveau/nouveau_debugfs.c b/drivers/gpu/drm/nouveau/nouveau_debugfs.c
index c7869a639bef..cb7c77f5a9a8 100644
--- a/drivers/gpu/drm/nouveau/nouveau_debugfs.c
+++ b/drivers/gpu/drm/nouveau/nouveau_debugfs.c
@@ -295,7 +295,7 @@ nouveau_drm_debugfs_init(struct drm_minor *minor)
int
nouveau_debugfs_init(struct nouveau_drm *drm)
{
- drm->debugfs = kzalloc(sizeof(*drm->debugfs), GFP_KERNEL);
+ drm->debugfs = kzalloc_obj(*drm->debugfs, GFP_KERNEL);
if (!drm->debugfs)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index 00515623a2cc..ff51329c5565 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -316,7 +316,7 @@ nouveau_framebuffer_new(struct drm_device *dev,
}
}
- if (!(fb = *pfb = kzalloc(sizeof(*fb), GFP_KERNEL)))
+ if (!(fb = *pfb = kzalloc_obj(*fb, GFP_KERNEL)))
return -ENOMEM;
drm_helper_mode_fill_fb_struct(dev, fb, info, mode_cmd);
@@ -646,7 +646,7 @@ nouveau_display_create(struct drm_device *dev)
struct nouveau_display *disp;
int ret;
- disp = drm->display = kzalloc(sizeof(*disp), GFP_KERNEL);
+ disp = drm->display = kzalloc_obj(*disp, GFP_KERNEL);
if (!disp)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nouveau_dmem.c b/drivers/gpu/drm/nouveau/nouveau_dmem.c
index 3d8031296eed..dbc87f8e64f9 100644
--- a/drivers/gpu/drm/nouveau/nouveau_dmem.c
+++ b/drivers/gpu/drm/nouveau/nouveau_dmem.c
@@ -303,7 +303,7 @@ nouveau_dmem_chunk_alloc(struct nouveau_drm *drm, struct page **ppage,
unsigned long i, pfn_first, pfn;
int ret;
- chunk = kzalloc(sizeof(*chunk), GFP_KERNEL);
+ chunk = kzalloc_obj(*chunk, GFP_KERNEL);
if (chunk == NULL) {
ret = -ENOMEM;
goto out;
@@ -481,7 +481,7 @@ nouveau_dmem_evict_chunk(struct nouveau_dmem_chunk *chunk)
src_pfns = kvcalloc(npages, sizeof(*src_pfns), GFP_KERNEL | __GFP_NOFAIL);
dst_pfns = kvcalloc(npages, sizeof(*dst_pfns), GFP_KERNEL | __GFP_NOFAIL);
- dma_info = kvcalloc(npages, sizeof(*dma_info), GFP_KERNEL | __GFP_NOFAIL);
+ dma_info = kvzalloc_objs(*dma_info, npages, GFP_KERNEL | __GFP_NOFAIL);
migrate_device_range(src_pfns, chunk->pagemap.range.start >> PAGE_SHIFT,
npages);
@@ -707,7 +707,7 @@ nouveau_dmem_init(struct nouveau_drm *drm)
if (drm->client.device.info.family < NV_DEVICE_INFO_V0_PASCAL)
return;
- if (!(drm->dmem = kzalloc(sizeof(*drm->dmem), GFP_KERNEL)))
+ if (!(drm->dmem = kzalloc_obj(*drm->dmem, GFP_KERNEL)))
return;
drm->dmem->drm = drm;
@@ -855,7 +855,7 @@ nouveau_dmem_migrate_vma(struct nouveau_drm *drm,
if (!args.dst)
goto out_free_src;
- dma_info = kmalloc_array(max, sizeof(*dma_info), GFP_KERNEL);
+ dma_info = kmalloc_objs(*dma_info, max, GFP_KERNEL);
if (!dma_info)
goto out_free_dst;
diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
index dc469e571c0a..f5cfac289983 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -739,7 +739,7 @@ nouveau_drm_device_new(const struct drm_driver *drm_driver, struct device *paren
struct nouveau_drm *drm;
int ret;
- drm = kzalloc(sizeof(*drm), GFP_KERNEL);
+ drm = kzalloc_obj(*drm, GFP_KERNEL);
if (!drm)
return ERR_PTR(-ENOMEM);
@@ -1203,7 +1203,7 @@ nouveau_drm_open(struct drm_device *dev, struct drm_file *fpriv)
current->comm, pid_nr(rcu_dereference(fpriv->pid)));
rcu_read_unlock();
- if (!(cli = kzalloc(sizeof(*cli), GFP_KERNEL))) {
+ if (!(cli = kzalloc_obj(*cli, GFP_KERNEL))) {
ret = -ENOMEM;
goto done;
}
diff --git a/drivers/gpu/drm/nouveau/nouveau_exec.c b/drivers/gpu/drm/nouveau/nouveau_exec.c
index c4949e815eb3..b0522e97ebb3 100644
--- a/drivers/gpu/drm/nouveau/nouveau_exec.c
+++ b/drivers/gpu/drm/nouveau/nouveau_exec.c
@@ -219,7 +219,7 @@ nouveau_exec_job_init(struct nouveau_exec_job **pjob,
}
}
- job = *pjob = kzalloc(sizeof(*job), GFP_KERNEL);
+ job = *pjob = kzalloc_obj(*job, GFP_KERNEL);
if (!job)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nouveau_fence.c b/drivers/gpu/drm/nouveau/nouveau_fence.c
index 4a193b7d6d9e..6af37c49913f 100644
--- a/drivers/gpu/drm/nouveau/nouveau_fence.c
+++ b/drivers/gpu/drm/nouveau/nouveau_fence.c
@@ -408,7 +408,7 @@ nouveau_fence_create(struct nouveau_fence **pfence,
if (unlikely(!chan->fence))
return -ENODEV;
- fence = kzalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kzalloc_obj(*fence, GFP_KERNEL);
if (!fence)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c
index 395d92ab6271..2ef7cb01a0c9 100644
--- a/drivers/gpu/drm/nouveau/nouveau_gem.c
+++ b/drivers/gpu/drm/nouveau/nouveau_gem.c
@@ -168,7 +168,7 @@ nouveau_gem_object_unmap(struct nouveau_bo *nvbo, struct nouveau_vma *vma)
return;
}
- if (!(work = kmalloc(sizeof(*work), GFP_KERNEL))) {
+ if (!(work = kmalloc_obj(*work, GFP_KERNEL))) {
WARN_ON(dma_fence_wait_timeout(fence, false, 2 * HZ) <= 0);
nouveau_gem_object_delete(vma);
return;
diff --git a/drivers/gpu/drm/nouveau/nouveau_hwmon.c b/drivers/gpu/drm/nouveau/nouveau_hwmon.c
index 34effe6d86ad..a0f018380744 100644
--- a/drivers/gpu/drm/nouveau/nouveau_hwmon.c
+++ b/drivers/gpu/drm/nouveau/nouveau_hwmon.c
@@ -678,7 +678,7 @@ nouveau_hwmon_init(struct drm_device *dev)
return 0;
}
- hwmon = drm->hwmon = kzalloc(sizeof(*hwmon), GFP_KERNEL);
+ hwmon = drm->hwmon = kzalloc_obj(*hwmon, GFP_KERNEL);
if (!hwmon)
return -ENOMEM;
hwmon->dev = dev;
diff --git a/drivers/gpu/drm/nouveau/nouveau_led.c b/drivers/gpu/drm/nouveau/nouveau_led.c
index ac950518a820..87397fe57021 100644
--- a/drivers/gpu/drm/nouveau/nouveau_led.c
+++ b/drivers/gpu/drm/nouveau/nouveau_led.c
@@ -89,7 +89,7 @@ nouveau_led_init(struct drm_device *dev)
if (nvkm_gpio_find(gpio, 0, DCB_GPIO_LOGO_LED_PWM, 0xff, &logo_led))
return 0;
- drm->led = kzalloc(sizeof(*drm->led), GFP_KERNEL);
+ drm->led = kzalloc_obj(*drm->led, GFP_KERNEL);
if (!drm->led)
return -ENOMEM;
drm->led->dev = dev;
diff --git a/drivers/gpu/drm/nouveau/nouveau_mem.c b/drivers/gpu/drm/nouveau/nouveau_mem.c
index fac92fdbf9cc..b370158ba3f7 100644
--- a/drivers/gpu/drm/nouveau/nouveau_mem.c
+++ b/drivers/gpu/drm/nouveau/nouveau_mem.c
@@ -176,7 +176,7 @@ nouveau_mem_new(struct nouveau_drm *drm, u8 kind, u8 comp,
{
struct nouveau_mem *mem;
- if (!(mem = kzalloc(sizeof(*mem), GFP_KERNEL)))
+ if (!(mem = kzalloc_obj(*mem, GFP_KERNEL)))
return -ENOMEM;
mem->drm = drm;
diff --git a/drivers/gpu/drm/nouveau/nouveau_sched.c b/drivers/gpu/drm/nouveau/nouveau_sched.c
index a7bf539e5d86..402ef5e95ad7 100644
--- a/drivers/gpu/drm/nouveau/nouveau_sched.c
+++ b/drivers/gpu/drm/nouveau/nouveau_sched.c
@@ -69,17 +69,17 @@ nouveau_job_init(struct nouveau_job *job,
goto err_free_in_sync;
}
- job->out_sync.objs = kcalloc(job->out_sync.count,
- sizeof(*job->out_sync.objs),
- GFP_KERNEL);
+ job->out_sync.objs = kzalloc_objs(*job->out_sync.objs,
+ job->out_sync.count,
+ GFP_KERNEL);
if (!job->out_sync.objs) {
ret = -ENOMEM;
goto err_free_out_sync;
}
- job->out_sync.chains = kcalloc(job->out_sync.count,
- sizeof(*job->out_sync.chains),
- GFP_KERNEL);
+ job->out_sync.chains = kzalloc_objs(*job->out_sync.chains,
+ job->out_sync.count,
+ GFP_KERNEL);
if (!job->out_sync.chains) {
ret = -ENOMEM;
goto err_free_objs;
@@ -467,7 +467,7 @@ nouveau_sched_create(struct nouveau_sched **psched, struct nouveau_drm *drm,
struct nouveau_sched *sched;
int ret;
- sched = kzalloc(sizeof(*sched), GFP_KERNEL);
+ sched = kzalloc_obj(*sched, GFP_KERNEL);
if (!sched)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nouveau_sgdma.c b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
index bd870028514b..a22483f68a7c 100644
--- a/drivers/gpu/drm/nouveau/nouveau_sgdma.c
+++ b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
@@ -79,7 +79,7 @@ nouveau_sgdma_create_ttm(struct ttm_buffer_object *bo, uint32_t page_flags)
else
caching = ttm_cached;
- nvbe = kzalloc(sizeof(*nvbe), GFP_KERNEL);
+ nvbe = kzalloc_obj(*nvbe, GFP_KERNEL);
if (!nvbe)
return NULL;
diff --git a/drivers/gpu/drm/nouveau/nouveau_svm.c b/drivers/gpu/drm/nouveau/nouveau_svm.c
index b8a3378154d5..947601a8955b 100644
--- a/drivers/gpu/drm/nouveau/nouveau_svm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_svm.c
@@ -223,7 +223,7 @@ nouveau_svmm_join(struct nouveau_svmm *svmm, u64 inst)
{
struct nouveau_ivmm *ivmm;
if (svmm) {
- if (!(ivmm = kmalloc(sizeof(*ivmm), GFP_KERNEL)))
+ if (!(ivmm = kmalloc_obj(*ivmm, GFP_KERNEL)))
return -ENOMEM;
ivmm->svmm = svmm;
ivmm->inst = inst;
@@ -326,7 +326,7 @@ nouveau_svmm_init(struct drm_device *dev, void *data,
return -ENOSYS;
/* Allocate tracking for SVM-enabled VMM. */
- if (!(svmm = kzalloc(sizeof(*svmm), GFP_KERNEL)))
+ if (!(svmm = kzalloc_obj(*svmm, GFP_KERNEL)))
return -ENOMEM;
svmm->vmm = &cli->svm;
svmm->unmanaged.start = args->unmanaged_addr;
@@ -475,7 +475,7 @@ nouveau_svm_fault_cache(struct nouveau_svm *svm,
nvif_mask(memory, offset + 0x1c, 0x80000000, 0x00000000);
if (!buffer->fault[buffer->fault_nr]) {
- fault = kmalloc(sizeof(*fault), GFP_KERNEL);
+ fault = kmalloc_obj(*fault, GFP_KERNEL);
if (WARN_ON(!fault)) {
nouveau_svm_fault_cancel(svm, inst, hub, gpc, client);
return;
@@ -900,7 +900,7 @@ nouveau_pfns_alloc(unsigned long npages)
{
struct nouveau_pfnmap_args *args;
- args = kzalloc(struct_size(args, p.phys, npages), GFP_KERNEL);
+ args = kzalloc_flex(*args, p.phys, npages, GFP_KERNEL);
if (!args)
return NULL;
@@ -1010,7 +1010,8 @@ nouveau_svm_fault_buffer_ctor(struct nouveau_svm *svm, s32 oclass, int id)
if (ret)
return ret;
- buffer->fault = kvcalloc(buffer->entries, sizeof(*buffer->fault), GFP_KERNEL);
+ buffer->fault = kvzalloc_objs(*buffer->fault, buffer->entries,
+ GFP_KERNEL);
if (!buffer->fault)
return -ENOMEM;
@@ -1062,7 +1063,7 @@ nouveau_svm_init(struct nouveau_drm *drm)
if (drm->client.device.info.family > NV_DEVICE_INFO_V0_PASCAL)
return;
- drm->svm = svm = kzalloc(struct_size(drm->svm, buffer, 1), GFP_KERNEL);
+ drm->svm = svm = kzalloc_flex(*drm->svm, buffer, 1, GFP_KERNEL);
if (!drm->svm)
return;
diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c b/drivers/gpu/drm/nouveau/nouveau_ttm.c
index 0a55babdf667..89216d0a8e7e 100644
--- a/drivers/gpu/drm/nouveau/nouveau_ttm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c
@@ -181,7 +181,7 @@ static int
nouveau_ttm_init_vram(struct nouveau_drm *drm)
{
if (drm->client.device.info.family >= NV_DEVICE_INFO_V0_TESLA) {
- struct ttm_resource_manager *man = kzalloc(sizeof(*man), GFP_KERNEL);
+ struct ttm_resource_manager *man = kzalloc_obj(*man, GFP_KERNEL);
if (!man)
return -ENOMEM;
@@ -229,7 +229,7 @@ nouveau_ttm_init_gtt(struct nouveau_drm *drm)
return ttm_range_man_init(&drm->ttm.bdev, TTM_PL_TT, true,
size_pages);
- man = kzalloc(sizeof(*man), GFP_KERNEL);
+ man = kzalloc_obj(*man, GFP_KERNEL);
if (!man)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nouveau_uvmm.c b/drivers/gpu/drm/nouveau/nouveau_uvmm.c
index 0d693760d222..caa26db2b04b 100644
--- a/drivers/gpu/drm/nouveau/nouveau_uvmm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_uvmm.c
@@ -218,7 +218,7 @@ nouveau_uvma_unmap(struct nouveau_uvma *uvma)
static int
nouveau_uvma_alloc(struct nouveau_uvma **puvma)
{
- *puvma = kzalloc(sizeof(**puvma), GFP_KERNEL);
+ *puvma = kzalloc_obj(**puvma, GFP_KERNEL);
if (!*puvma)
return -ENOMEM;
@@ -246,7 +246,7 @@ nouveau_uvma_gem_put(struct nouveau_uvma *uvma)
static int
nouveau_uvma_region_alloc(struct nouveau_uvma_region **preg)
{
- *preg = kzalloc(sizeof(**preg), GFP_KERNEL);
+ *preg = kzalloc_obj(**preg, GFP_KERNEL);
if (!*preg)
return -ENOMEM;
@@ -1020,7 +1020,7 @@ nouveau_uvmm_validate_range(struct nouveau_uvmm *uvmm, u64 addr, u64 range)
static int
nouveau_uvmm_bind_job_alloc(struct nouveau_uvmm_bind_job **pjob)
{
- *pjob = kzalloc(sizeof(**pjob), GFP_KERNEL);
+ *pjob = kzalloc_obj(**pjob, GFP_KERNEL);
if (!*pjob)
return -ENOMEM;
@@ -1618,7 +1618,7 @@ bind_job_op_from_uop(struct bind_job_op **pop,
{
struct bind_job_op *op;
- op = *pop = kzalloc(sizeof(*op), GFP_KERNEL);
+ op = *pop = kzalloc_obj(*op, GFP_KERNEL);
if (!op)
return -ENOMEM;
@@ -1911,7 +1911,7 @@ nouveau_uvmm_ioctl_vm_init(struct drm_device *dev,
goto out_unlock;
}
- uvmm = kzalloc(sizeof(*uvmm), GFP_KERNEL);
+ uvmm = kzalloc_obj(*uvmm, GFP_KERNEL);
if (!uvmm) {
ret = -ENOMEM;
goto out_unlock;
diff --git a/drivers/gpu/drm/nouveau/nouveau_vmm.c b/drivers/gpu/drm/nouveau/nouveau_vmm.c
index 3dda885df5b2..a5e8efc3042c 100644
--- a/drivers/gpu/drm/nouveau/nouveau_vmm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_vmm.c
@@ -87,7 +87,7 @@ nouveau_vma_new(struct nouveau_bo *nvbo, struct nouveau_vmm *vmm,
return 0;
}
- if (!(vma = *pvma = kmalloc(sizeof(*vma), GFP_KERNEL)))
+ if (!(vma = *pvma = kmalloc_obj(*vma, GFP_KERNEL)))
return -ENOMEM;
vma->vmm = vmm;
vma->refs = 1;
diff --git a/drivers/gpu/drm/nouveau/nv04_fence.c b/drivers/gpu/drm/nouveau/nv04_fence.c
index fa5c6029f783..7fa9eede7c5d 100644
--- a/drivers/gpu/drm/nouveau/nv04_fence.c
+++ b/drivers/gpu/drm/nouveau/nv04_fence.c
@@ -76,7 +76,7 @@ nv04_fence_context_del(struct nouveau_channel *chan)
static int
nv04_fence_context_new(struct nouveau_channel *chan)
{
- struct nv04_fence_chan *fctx = kzalloc(sizeof(*fctx), GFP_KERNEL);
+ struct nv04_fence_chan *fctx = kzalloc_obj(*fctx, GFP_KERNEL);
if (fctx) {
nouveau_fence_context_new(chan, &fctx->base);
fctx->base.emit = nv04_fence_emit;
@@ -101,7 +101,7 @@ nv04_fence_create(struct nouveau_drm *drm)
{
struct nv04_fence_priv *priv;
- priv = drm->fence = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = drm->fence = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nv10_fence.c b/drivers/gpu/drm/nouveau/nv10_fence.c
index 40ee95340814..0f859251d9db 100644
--- a/drivers/gpu/drm/nouveau/nv10_fence.c
+++ b/drivers/gpu/drm/nouveau/nv10_fence.c
@@ -70,7 +70,7 @@ nv10_fence_context_new(struct nouveau_channel *chan)
{
struct nv10_fence_chan *fctx;
- fctx = chan->fence = kzalloc(sizeof(*fctx), GFP_KERNEL);
+ fctx = chan->fence = kzalloc_obj(*fctx, GFP_KERNEL);
if (!fctx)
return -ENOMEM;
@@ -96,7 +96,7 @@ nv10_fence_create(struct nouveau_drm *drm)
{
struct nv10_fence_priv *priv;
- priv = drm->fence = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = drm->fence = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nv17_fence.c b/drivers/gpu/drm/nouveau/nv17_fence.c
index 1b0c0aa3c305..56682cb03d81 100644
--- a/drivers/gpu/drm/nouveau/nv17_fence.c
+++ b/drivers/gpu/drm/nouveau/nv17_fence.c
@@ -83,7 +83,7 @@ nv17_fence_context_new(struct nouveau_channel *chan)
u32 limit = start + priv->bo->bo.base.size - 1;
int ret = 0;
- fctx = chan->fence = kzalloc(sizeof(*fctx), GFP_KERNEL);
+ fctx = chan->fence = kzalloc_obj(*fctx, GFP_KERNEL);
if (!fctx)
return -ENOMEM;
@@ -120,7 +120,7 @@ nv17_fence_create(struct nouveau_drm *drm)
struct nv10_fence_priv *priv;
int ret = 0;
- priv = drm->fence = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = drm->fence = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nv50_fence.c b/drivers/gpu/drm/nouveau/nv50_fence.c
index e1f0e8adf313..d64c070fe48b 100644
--- a/drivers/gpu/drm/nouveau/nv50_fence.c
+++ b/drivers/gpu/drm/nouveau/nv50_fence.c
@@ -42,7 +42,7 @@ nv50_fence_context_new(struct nouveau_channel *chan)
u32 limit = start + priv->bo->bo.base.size - 1;
int ret;
- fctx = chan->fence = kzalloc(sizeof(*fctx), GFP_KERNEL);
+ fctx = chan->fence = kzalloc_obj(*fctx, GFP_KERNEL);
if (!fctx)
return -ENOMEM;
@@ -71,7 +71,7 @@ nv50_fence_create(struct nouveau_drm *drm)
struct nv10_fence_priv *priv;
int ret = 0;
- priv = drm->fence = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = drm->fence = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nv84_fence.c b/drivers/gpu/drm/nouveau/nv84_fence.c
index 1765b2cedaf9..7a2ad00870af 100644
--- a/drivers/gpu/drm/nouveau/nv84_fence.c
+++ b/drivers/gpu/drm/nouveau/nv84_fence.c
@@ -131,7 +131,7 @@ nv84_fence_context_new(struct nouveau_channel *chan)
struct nv84_fence_chan *fctx;
int ret;
- fctx = chan->fence = kzalloc(sizeof(*fctx), GFP_KERNEL);
+ fctx = chan->fence = kzalloc_obj(*fctx, GFP_KERNEL);
if (!fctx)
return -ENOMEM;
@@ -198,7 +198,7 @@ nv84_fence_create(struct nouveau_drm *drm)
u32 domain;
int ret;
- priv = drm->fence = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = drm->fence = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvif/fifo.c b/drivers/gpu/drm/nouveau/nvif/fifo.c
index b0ab80995d98..b42fc34cb5ce 100644
--- a/drivers/gpu/drm/nouveau/nvif/fifo.c
+++ b/drivers/gpu/drm/nouveau/nvif/fifo.c
@@ -36,7 +36,7 @@ nvif_fifo_runlists(struct nvif_device *device)
if (device->runlist)
return 0;
- if (!(a = kmalloc(sizeof(*a), GFP_KERNEL)))
+ if (!(a = kmalloc_obj(*a, GFP_KERNEL)))
return -ENOMEM;
a->m.version = 1;
a->m.count = sizeof(a->v) / sizeof(a->v.runlists);
@@ -51,8 +51,8 @@ nvif_fifo_runlists(struct nvif_device *device)
goto done;
device->runlists = fls64(a->v.runlists.data);
- device->runlist = kcalloc(device->runlists, sizeof(*device->runlist),
- GFP_KERNEL);
+ device->runlist = kzalloc_objs(*device->runlist, device->runlists,
+ GFP_KERNEL);
if (!device->runlist) {
ret = -ENOMEM;
goto done;
diff --git a/drivers/gpu/drm/nouveau/nvif/mmu.c b/drivers/gpu/drm/nouveau/nvif/mmu.c
index c9dd3cff49a0..eaa96608a264 100644
--- a/drivers/gpu/drm/nouveau/nvif/mmu.c
+++ b/drivers/gpu/drm/nouveau/nvif/mmu.c
@@ -69,15 +69,12 @@ nvif_mmu_ctor(struct nvif_object *parent, const char *name, s32 oclass,
goto done;
mmu->mem = mems[ret].oclass;
- mmu->heap = kmalloc_array(mmu->heap_nr, sizeof(*mmu->heap),
- GFP_KERNEL);
- mmu->type = kmalloc_array(mmu->type_nr, sizeof(*mmu->type),
- GFP_KERNEL);
+ mmu->heap = kmalloc_objs(*mmu->heap, mmu->heap_nr, GFP_KERNEL);
+ mmu->type = kmalloc_objs(*mmu->type, mmu->type_nr, GFP_KERNEL);
if (ret = -ENOMEM, !mmu->heap || !mmu->type)
goto done;
- mmu->kind = kmalloc_array(mmu->kind_nr, sizeof(*mmu->kind),
- GFP_KERNEL);
+ mmu->kind = kmalloc_objs(*mmu->kind, mmu->kind_nr, GFP_KERNEL);
if (!mmu->kind && mmu->kind_nr)
goto done;
diff --git a/drivers/gpu/drm/nouveau/nvif/object.c b/drivers/gpu/drm/nouveau/nvif/object.c
index 70af63d70976..93ad63f9021f 100644
--- a/drivers/gpu/drm/nouveau/nvif/object.c
+++ b/drivers/gpu/drm/nouveau/nvif/object.c
@@ -81,7 +81,7 @@ nvif_object_sclass_get(struct nvif_object *object, struct nvif_sclass **psclass)
return ret;
}
- *psclass = kcalloc(args->sclass.count, sizeof(**psclass), GFP_KERNEL);
+ *psclass = kzalloc_objs(**psclass, args->sclass.count, GFP_KERNEL);
if (*psclass) {
for (i = 0; i < args->sclass.count; i++) {
(*psclass)[i].oclass = args->sclass.oclass[i].oclass;
diff --git a/drivers/gpu/drm/nouveau/nvif/outp.c b/drivers/gpu/drm/nouveau/nvif/outp.c
index 32f6c5eb92af..567cacc04989 100644
--- a/drivers/gpu/drm/nouveau/nvif/outp.c
+++ b/drivers/gpu/drm/nouveau/nvif/outp.c
@@ -438,7 +438,7 @@ nvif_outp_edid_get(struct nvif_outp *outp, u8 **pedid)
struct nvif_outp_edid_get_v0 *args;
int ret;
- args = kmalloc(sizeof(*args), GFP_KERNEL);
+ args = kmalloc_obj(*args, GFP_KERNEL);
if (!args)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvif/vmm.c b/drivers/gpu/drm/nouveau/nvif/vmm.c
index 07c1ebc2a941..15e5f423c680 100644
--- a/drivers/gpu/drm/nouveau/nvif/vmm.c
+++ b/drivers/gpu/drm/nouveau/nvif/vmm.c
@@ -234,8 +234,7 @@ nvif_vmm_ctor(struct nvif_mmu *mmu, const char *name, s32 oclass,
vmm->limit = args->size;
vmm->page_nr = args->page_nr;
- vmm->page = kmalloc_array(vmm->page_nr, sizeof(*vmm->page),
- GFP_KERNEL);
+ vmm->page = kmalloc_objs(*vmm->page, vmm->page_nr, GFP_KERNEL);
if (!vmm->page) {
ret = -ENOMEM;
goto done;
diff --git a/drivers/gpu/drm/nouveau/nvkm/core/client.c b/drivers/gpu/drm/nouveau/nvkm/core/client.c
index 72c88db627a5..637fa5f89dc7 100644
--- a/drivers/gpu/drm/nouveau/nvkm/core/client.c
+++ b/drivers/gpu/drm/nouveau/nvkm/core/client.c
@@ -109,7 +109,7 @@ nvkm_client_new(const char *name, u64 device, const char *cfg, const char *dbg,
struct nvkm_oclass oclass = { .base = nvkm_uclient_sclass };
struct nvkm_client *client;
- if (!(client = *pclient = kzalloc(sizeof(*client), GFP_KERNEL)))
+ if (!(client = *pclient = kzalloc_obj(*client, GFP_KERNEL)))
return -ENOMEM;
oclass.client = client;
diff --git a/drivers/gpu/drm/nouveau/nvkm/core/engine.c b/drivers/gpu/drm/nouveau/nvkm/core/engine.c
index 5bf62940d7be..1b94e0aa0f28 100644
--- a/drivers/gpu/drm/nouveau/nvkm/core/engine.c
+++ b/drivers/gpu/drm/nouveau/nvkm/core/engine.c
@@ -183,7 +183,7 @@ nvkm_engine_new_(const struct nvkm_engine_func *func, struct nvkm_device *device
enum nvkm_subdev_type type, int inst, bool enable,
struct nvkm_engine **pengine)
{
- if (!(*pengine = kzalloc(sizeof(**pengine), GFP_KERNEL)))
+ if (!(*pengine = kzalloc_obj(**pengine, GFP_KERNEL)))
return -ENOMEM;
return nvkm_engine_ctor(func, device, type, inst, enable, *pengine);
}
diff --git a/drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c b/drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c
index d6de2b3ed2c3..a81eddf777ba 100644
--- a/drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c
+++ b/drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c
@@ -232,7 +232,7 @@ nvkm_gpuobj_new(struct nvkm_device *device, u32 size, int align, bool zero,
struct nvkm_gpuobj *gpuobj;
int ret;
- if (!(gpuobj = *pgpuobj = kzalloc(sizeof(*gpuobj), GFP_KERNEL)))
+ if (!(gpuobj = *pgpuobj = kzalloc_obj(*gpuobj, GFP_KERNEL)))
return -ENOMEM;
ret = nvkm_gpuobj_ctor(device, size, align, zero, parent, gpuobj);
@@ -249,7 +249,7 @@ nvkm_gpuobj_new(struct nvkm_device *device, u32 size, int align, bool zero,
int
nvkm_gpuobj_wrap(struct nvkm_memory *memory, struct nvkm_gpuobj **pgpuobj)
{
- if (!(*pgpuobj = kzalloc(sizeof(**pgpuobj), GFP_KERNEL)))
+ if (!(*pgpuobj = kzalloc_obj(**pgpuobj, GFP_KERNEL)))
return -ENOMEM;
(*pgpuobj)->addr = nvkm_memory_addr(memory);
diff --git a/drivers/gpu/drm/nouveau/nvkm/core/intr.c b/drivers/gpu/drm/nouveau/nvkm/core/intr.c
index 36a747f0039e..a58de178cdf6 100644
--- a/drivers/gpu/drm/nouveau/nvkm/core/intr.c
+++ b/drivers/gpu/drm/nouveau/nvkm/core/intr.c
@@ -239,8 +239,8 @@ nvkm_intr_add(const struct nvkm_intr_func *func, const struct nvkm_intr_data *da
intr->data = data;
intr->subdev = subdev;
intr->leaves = leaves;
- intr->stat = kcalloc(leaves, sizeof(*intr->stat), GFP_KERNEL);
- intr->mask = kcalloc(leaves, sizeof(*intr->mask), GFP_KERNEL);
+ intr->stat = kzalloc_objs(*intr->stat, leaves, GFP_KERNEL);
+ intr->mask = kzalloc_objs(*intr->mask, leaves, GFP_KERNEL);
if (!intr->stat || !intr->mask) {
kfree(intr->stat);
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/core/memory.c b/drivers/gpu/drm/nouveau/nvkm/core/memory.c
index a705c2dfca80..bf69467e44da 100644
--- a/drivers/gpu/drm/nouveau/nvkm/core/memory.c
+++ b/drivers/gpu/drm/nouveau/nvkm/core/memory.c
@@ -69,7 +69,7 @@ nvkm_memory_tags_get(struct nvkm_memory *memory, struct nvkm_device *device,
return 0;
}
- if (!(tags = kmalloc(sizeof(*tags), GFP_KERNEL))) {
+ if (!(tags = kmalloc_obj(*tags, GFP_KERNEL))) {
mutex_unlock(&fb->tags.mutex);
return -ENOMEM;
}
diff --git a/drivers/gpu/drm/nouveau/nvkm/core/mm.c b/drivers/gpu/drm/nouveau/nvkm/core/mm.c
index f78a06a6b2f1..bd47502d82ae 100644
--- a/drivers/gpu/drm/nouveau/nvkm/core/mm.c
+++ b/drivers/gpu/drm/nouveau/nvkm/core/mm.c
@@ -90,7 +90,7 @@ region_head(struct nvkm_mm *mm, struct nvkm_mm_node *a, u32 size)
if (a->length == size)
return a;
- b = kmalloc(sizeof(*b), GFP_KERNEL);
+ b = kmalloc_obj(*b, GFP_KERNEL);
if (unlikely(b == NULL))
return NULL;
@@ -165,7 +165,7 @@ region_tail(struct nvkm_mm *mm, struct nvkm_mm_node *a, u32 size)
if (a->length == size)
return a;
- b = kmalloc(sizeof(*b), GFP_KERNEL);
+ b = kmalloc_obj(*b, GFP_KERNEL);
if (unlikely(b == NULL))
return NULL;
@@ -247,7 +247,7 @@ nvkm_mm_init(struct nvkm_mm *mm, u8 heap, u32 offset, u32 length, u32 block)
next = prev->offset + prev->length;
if (next != offset) {
BUG_ON(next > offset);
- if (!(node = kzalloc(sizeof(*node), GFP_KERNEL)))
+ if (!(node = kzalloc_obj(*node, GFP_KERNEL)))
return -ENOMEM;
node->type = NVKM_MM_TYPE_HOLE;
node->offset = next;
@@ -262,7 +262,7 @@ nvkm_mm_init(struct nvkm_mm *mm, u8 heap, u32 offset, u32 length, u32 block)
mm->heap_nodes = 0;
}
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/core/object.c b/drivers/gpu/drm/nouveau/nvkm/core/object.c
index af9f00f74c28..6e84cf72bfc8 100644
--- a/drivers/gpu/drm/nouveau/nvkm/core/object.c
+++ b/drivers/gpu/drm/nouveau/nvkm/core/object.c
@@ -290,7 +290,7 @@ nvkm_object_new_(const struct nvkm_object_func *func,
struct nvkm_object **pobject)
{
if (size == 0) {
- if (!(*pobject = kzalloc(sizeof(**pobject), GFP_KERNEL)))
+ if (!(*pobject = kzalloc_obj(**pobject, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(func, oclass, *pobject);
return 0;
diff --git a/drivers/gpu/drm/nouveau/nvkm/core/oproxy.c b/drivers/gpu/drm/nouveau/nvkm/core/oproxy.c
index 7c9edf752768..bfa9821b3ac4 100644
--- a/drivers/gpu/drm/nouveau/nvkm/core/oproxy.c
+++ b/drivers/gpu/drm/nouveau/nvkm/core/oproxy.c
@@ -178,7 +178,7 @@ int
nvkm_oproxy_new_(const struct nvkm_oproxy_func *func,
const struct nvkm_oclass *oclass, struct nvkm_oproxy **poproxy)
{
- if (!(*poproxy = kzalloc(sizeof(**poproxy), GFP_KERNEL)))
+ if (!(*poproxy = kzalloc_obj(**poproxy, GFP_KERNEL)))
return -ENOMEM;
nvkm_oproxy_ctor(func, oclass, *poproxy);
return 0;
diff --git a/drivers/gpu/drm/nouveau/nvkm/core/subdev.c b/drivers/gpu/drm/nouveau/nvkm/core/subdev.c
index b7045d1c8415..97f5db788ba6 100644
--- a/drivers/gpu/drm/nouveau/nvkm/core/subdev.c
+++ b/drivers/gpu/drm/nouveau/nvkm/core/subdev.c
@@ -280,7 +280,7 @@ int
nvkm_subdev_new_(const struct nvkm_subdev_func *func, struct nvkm_device *device,
enum nvkm_subdev_type type, int inst, struct nvkm_subdev **psubdev)
{
- if (!(*psubdev = kzalloc(sizeof(**psubdev), GFP_KERNEL)))
+ if (!(*psubdev = kzalloc_obj(**psubdev, GFP_KERNEL)))
return -ENOMEM;
nvkm_subdev_ctor(func, device, type, inst, *psubdev);
return 0;
diff --git a/drivers/gpu/drm/nouveau/nvkm/core/uevent.c b/drivers/gpu/drm/nouveau/nvkm/core/uevent.c
index 46beb6e470ee..5295b2b920e6 100644
--- a/drivers/gpu/drm/nouveau/nvkm/core/uevent.c
+++ b/drivers/gpu/drm/nouveau/nvkm/core/uevent.c
@@ -144,7 +144,7 @@ nvkm_uevent_new(const struct nvkm_oclass *oclass, void *argv, u32 argc,
if (argc < sizeof(args->v0) || args->v0.version != 0)
return -ENOSYS;
- if (!(uevent = kzalloc(sizeof(*uevent), GFP_KERNEL)))
+ if (!(uevent = kzalloc_obj(*uevent, GFP_KERNEL)))
return -ENOMEM;
*pobject = &uevent->object;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c
index ce774579c89d..4d09157fd7c0 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c
@@ -194,7 +194,7 @@ nvkm_control_new(struct nvkm_device *device, const struct nvkm_oclass *oclass,
{
struct nvkm_control *ctrl;
- if (!(ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL)))
+ if (!(ctrl = kzalloc_obj(*ctrl, GFP_KERNEL)))
return -ENOMEM;
*pobject = &ctrl->object;
ctrl->device = device;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c
index 4c29b60460d4..1e7b4a455049 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c
@@ -1688,7 +1688,7 @@ nvkm_device_pci_new(struct pci_dev *pci_dev, const char *cfg, const char *dbg,
pcid++;
}
- if (!(pdev = kzalloc(sizeof(*pdev), GFP_KERNEL))) {
+ if (!(pdev = kzalloc_obj(*pdev, GFP_KERNEL))) {
pci_disable_device(pci_dev);
return -ENOMEM;
}
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c
index 03aa6f09ec89..d49d92fa4648 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c
@@ -253,7 +253,7 @@ nvkm_device_tegra_new(const struct nvkm_device_tegra_func *func,
unsigned long rate;
int ret;
- if (!(tdev = kzalloc(sizeof(*tdev), GFP_KERNEL)))
+ if (!(tdev = kzalloc_obj(*tdev, GFP_KERNEL)))
return -ENOMEM;
tdev->func = func;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/user.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/user.c
index 32ff3181f47b..7dea6bf31b10 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/device/user.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/user.c
@@ -327,7 +327,7 @@ nvkm_udevice_new(const struct nvkm_oclass *oclass, void *data, u32 size,
struct nvkm_client *client = oclass->client;
struct nvkm_udevice *udev;
- if (!(udev = kzalloc(sizeof(*udev), GFP_KERNEL)))
+ if (!(udev = kzalloc_obj(*udev, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&nvkm_udevice, oclass, &udev->object);
*pobject = &udev->object;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c
index 84745f60912e..d25ef27ccf5d 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c
@@ -232,7 +232,7 @@ nvkm_disp_new_(const struct nvkm_disp_func *func, struct nvkm_device *device,
struct nvkm_disp *disp;
int ret;
- if (!(disp = *pdisp = kzalloc(sizeof(**pdisp), GFP_KERNEL)))
+ if (!(disp = *pdisp = kzalloc_obj(**pdisp, GFP_KERNEL)))
return -ENOMEM;
disp->func = func;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
index 57a62a2de7c7..9b7148ce8d1b 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
@@ -86,7 +86,7 @@ nvkm_disp_chan_child_new(const struct nvkm_oclass *oclass, void *argv, u32 argc,
struct nvkm_disp_chan_object *object;
int ret;
- if (!(object = kzalloc(sizeof(*object), GFP_KERNEL)))
+ if (!(object = kzalloc_obj(*object, GFP_KERNEL)))
return -ENOMEM;
nvkm_oproxy_ctor(&nvkm_disp_chan_child_func_, oclass, &object->oproxy);
object->disp = disp;
@@ -195,7 +195,7 @@ nvkm_disp_chan_new_(struct nvkm_disp *disp, int nr, const struct nvkm_oclass *oc
if (args->v0.id >= nr || !args->v0.pushbuf != !user->func->push)
return -EINVAL;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
*pobject = &chan->object;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c
index ff88a5a5253a..e4cfb172c383 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c
@@ -78,7 +78,7 @@ int
nvkm_conn_new(struct nvkm_disp *disp, int index, struct nvbios_connE *info,
struct nvkm_conn **pconn)
{
- if (!(*pconn = kzalloc(sizeof(**pconn), GFP_KERNEL)))
+ if (!(*pconn = kzalloc_obj(**pconn, GFP_KERNEL)))
return -ENOMEM;
nvkm_conn_ctor(disp, index, info, *pconn);
return 0;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
index 614921166fba..bf79076081f6 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
@@ -822,7 +822,7 @@ gv100_disp_caps_new(const struct nvkm_oclass *oclass, void *argv, u32 argc,
struct nvkm_disp *disp = nvkm_udisp(oclass->parent);
struct gv100_disp_caps *caps;
- if (!(caps = kzalloc(sizeof(*caps), GFP_KERNEL)))
+ if (!(caps = kzalloc_obj(*caps, GFP_KERNEL)))
return -ENOMEM;
*pobject = &caps->object;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/head.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/head.c
index 7f5d13d13c94..ffe2ec55a15a 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/head.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/head.c
@@ -56,7 +56,7 @@ nvkm_head_new_(const struct nvkm_head_func *func,
struct nvkm_disp *disp, int id)
{
struct nvkm_head *head;
- if (!(head = kzalloc(sizeof(*head), GFP_KERNEL)))
+ if (!(head = kzalloc_obj(*head, GFP_KERNEL)))
return -ENOMEM;
head->func = func;
head->disp = disp;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.c
index e420bf2e4330..d680ef5355a3 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.c
@@ -58,7 +58,7 @@ nvkm_ior_new_(const struct nvkm_ior_func *func, struct nvkm_disp *disp,
enum nvkm_ior_type type, int id, bool hda)
{
struct nvkm_ior *ior;
- if (!(ior = kzalloc(sizeof(*ior), GFP_KERNEL)))
+ if (!(ior = kzalloc_obj(*ior, GFP_KERNEL)))
return -ENOMEM;
ior->func = func;
ior->disp = disp;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
index 28adc5a30f2f..c61453db7597 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
@@ -379,7 +379,7 @@ nvkm_outp_new_(const struct nvkm_outp_func *func, struct nvkm_disp *disp,
enum nvkm_ior_proto proto;
enum nvkm_ior_type type;
- if (!(outp = *poutp = kzalloc(sizeof(*outp), GFP_KERNEL)))
+ if (!(outp = *poutp = kzalloc_obj(*outp, GFP_KERNEL)))
return -ENOMEM;
outp->func = func;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/dma/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/dma/base.c
index 425cde35f128..8fcc4c587a28 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/dma/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/dma/base.c
@@ -108,7 +108,7 @@ nvkm_dma_new_(const struct nvkm_dma_func *func, struct nvkm_device *device,
{
struct nvkm_dma *dma;
- if (!(dma = *pdma = kzalloc(sizeof(*dma), GFP_KERNEL)))
+ if (!(dma = *pdma = kzalloc_obj(*dma, GFP_KERNEL)))
return -ENOMEM;
dma->func = func;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/dma/usergf100.c b/drivers/gpu/drm/nouveau/nvkm/engine/dma/usergf100.c
index ef7ac360101e..2c1b14f93fb2 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/dma/usergf100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/dma/usergf100.c
@@ -78,7 +78,7 @@ gf100_dmaobj_new(struct nvkm_dma *dma, const struct nvkm_oclass *oclass,
u32 kind, user, unkn;
int ret;
- if (!(dmaobj = kzalloc(sizeof(*dmaobj), GFP_KERNEL)))
+ if (!(dmaobj = kzalloc_obj(*dmaobj, GFP_KERNEL)))
return -ENOMEM;
*pdmaobj = &dmaobj->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/dma/usergf119.c b/drivers/gpu/drm/nouveau/nvkm/engine/dma/usergf119.c
index c068cee34588..c16449eb3c95 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/dma/usergf119.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/dma/usergf119.c
@@ -76,7 +76,7 @@ gf119_dmaobj_new(struct nvkm_dma *dma, const struct nvkm_oclass *oclass,
u32 kind, page;
int ret;
- if (!(dmaobj = kzalloc(sizeof(*dmaobj), GFP_KERNEL)))
+ if (!(dmaobj = kzalloc_obj(*dmaobj, GFP_KERNEL)))
return -ENOMEM;
*pdmaobj = &dmaobj->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/dma/usergv100.c b/drivers/gpu/drm/nouveau/nvkm/engine/dma/usergv100.c
index 39eba9fc82be..982ee81fd2bc 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/dma/usergv100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/dma/usergv100.c
@@ -75,7 +75,7 @@ gv100_dmaobj_new(struct nvkm_dma *dma, const struct nvkm_oclass *oclass,
u32 kind, page;
int ret;
- if (!(dmaobj = kzalloc(sizeof(*dmaobj), GFP_KERNEL)))
+ if (!(dmaobj = kzalloc_obj(*dmaobj, GFP_KERNEL)))
return -ENOMEM;
*pdmaobj = &dmaobj->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv04.c b/drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv04.c
index 5159d5df20a2..fcc87163c2d6 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv04.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv04.c
@@ -85,7 +85,7 @@ nv04_dmaobj_new(struct nvkm_dma *dma, const struct nvkm_oclass *oclass,
struct nv04_dmaobj *dmaobj;
int ret;
- if (!(dmaobj = kzalloc(sizeof(*dmaobj), GFP_KERNEL)))
+ if (!(dmaobj = kzalloc_obj(*dmaobj, GFP_KERNEL)))
return -ENOMEM;
*pdmaobj = &dmaobj->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv50.c
index 6a85b5dea643..5cf0986c7944 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv50.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv50.c
@@ -78,7 +78,7 @@ nv50_dmaobj_new(struct nvkm_dma *dma, const struct nvkm_oclass *oclass,
u32 user, part, comp, kind;
int ret;
- if (!(dmaobj = kzalloc(sizeof(*dmaobj), GFP_KERNEL)))
+ if (!(dmaobj = kzalloc_obj(*dmaobj, GFP_KERNEL)))
return -ENOMEM;
*pdmaobj = &dmaobj->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/falcon.c b/drivers/gpu/drm/nouveau/nvkm/engine/falcon.c
index cf8e356867b4..bf6a225f5673 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/falcon.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/falcon.c
@@ -341,7 +341,7 @@ nvkm_falcon_new_(const struct nvkm_falcon_func *func, struct nvkm_device *device
{
struct nvkm_falcon *falcon;
- if (!(falcon = kzalloc(sizeof(*falcon), GFP_KERNEL)))
+ if (!(falcon = kzalloc_obj(*falcon, GFP_KERNEL)))
return -ENOMEM;
falcon->func = func;
falcon->addr = addr;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
index 1561287a32f2..7dad0bf10631 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
@@ -377,7 +377,7 @@ nvkm_fifo_new_(const struct nvkm_fifo_func *func, struct nvkm_device *device,
{
struct nvkm_fifo *fifo;
- if (!(fifo = *pfifo = kzalloc(sizeof(*fifo), GFP_KERNEL)))
+ if (!(fifo = *pfifo = kzalloc_obj(*fifo, GFP_KERNEL)))
return -ENOMEM;
fifo->func = func;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/cgrp.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/cgrp.c
index 814db9daa194..2b852341d8f4 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/cgrp.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/cgrp.c
@@ -69,7 +69,7 @@ nvkm_cgrp_ectx_get(struct nvkm_cgrp *cgrp, struct nvkm_engn *engn, struct nvkm_e
/* Nope - create a fresh one. */
CGRP_TRACE(cgrp, "ctor ectx %d[%s]", engn->id, engn->engine->subdev.name);
- if (!(ectx = *pectx = kzalloc(sizeof(*ectx), GFP_KERNEL)))
+ if (!(ectx = *pectx = kzalloc_obj(*ectx, GFP_KERNEL)))
return -ENOMEM;
ectx->engn = engn;
@@ -141,7 +141,7 @@ nvkm_cgrp_vctx_get(struct nvkm_cgrp *cgrp, struct nvkm_engn *engn, struct nvkm_c
/* Now, create the sub-context. */
CGRP_TRACE(cgrp, "ctor vctx %d[%s]", engn->id, engn->engine->subdev.name);
- if (!(vctx = *pvctx = kzalloc(sizeof(*vctx), GFP_KERNEL))) {
+ if (!(vctx = *pvctx = kzalloc_obj(*vctx, GFP_KERNEL))) {
nvkm_cgrp_ectx_put(cgrp, &ectx);
return -ENOMEM;
}
@@ -224,7 +224,7 @@ nvkm_cgrp_new(struct nvkm_runl *runl, const char *name, struct nvkm_vmm *vmm, bo
{
struct nvkm_cgrp *cgrp;
- if (!(cgrp = *pcgrp = kmalloc(sizeof(*cgrp), GFP_KERNEL)))
+ if (!(cgrp = *pcgrp = kmalloc_obj(*cgrp, GFP_KERNEL)))
return -ENOMEM;
cgrp->func = runl->fifo->func->cgrp.func;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
index e5bbd8563007..0c6a5220ef80 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
@@ -117,7 +117,7 @@ nvkm_chan_cctx_get(struct nvkm_chan *chan, struct nvkm_engn *engn, struct nvkm_c
/* Now, create the channel context - to track engine binding. */
CHAN_TRACE(chan, "ctor cctx %d[%s]", engn->id, engn->engine->subdev.name);
- if (!(cctx = *pcctx = kzalloc(sizeof(*cctx), GFP_KERNEL))) {
+ if (!(cctx = *pcctx = kzalloc_obj(*cctx, GFP_KERNEL))) {
nvkm_cgrp_vctx_put(cgrp, &vctx);
ret = -ENOMEM;
goto done;
@@ -367,7 +367,7 @@ nvkm_chan_new_(const struct nvkm_chan_func *func, struct nvkm_runl *runl, int ru
return -EINVAL;
}
- if (!(chan = *pchan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = *pchan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
chan->func = func;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/chid.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/chid.c
index 23944d95efd5..e7e0c381606c 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/chid.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/chid.c
@@ -89,7 +89,7 @@ nvkm_chid_new(const struct nvkm_event_func *func, struct nvkm_subdev *subdev,
struct nvkm_chid *chid;
int id;
- if (!(chid = *pchid = kzalloc(struct_size(chid, used, nr), GFP_KERNEL)))
+ if (!(chid = *pchid = kzalloc_flex(*chid, used, nr, GFP_KERNEL)))
return -ENOMEM;
kref_init(&chid->kref);
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
index 454a481a0aef..42e49781eb21 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
@@ -349,7 +349,7 @@ nvkm_runl_add(struct nvkm_runl *runl, int engi, const struct nvkm_engn_func *fun
return NULL;
}
- if (!(engn = kzalloc(sizeof(*engn), GFP_KERNEL)))
+ if (!(engn = kzalloc_obj(*engn, GFP_KERNEL)))
return NULL;
engn->func = func;
@@ -398,7 +398,7 @@ nvkm_runl_new(struct nvkm_fifo *fifo, int runi, u32 addr, int id_nr)
struct nvkm_runl *runl;
int ret;
- if (!(runl = kzalloc(sizeof(*runl), GFP_KERNEL)))
+ if (!(runl = kzalloc_obj(*runl, GFP_KERNEL)))
return ERR_PTR(-ENOMEM);
runl->func = fifo->func->runl;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/runq.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/runq.c
index 33bcf5fb3ef0..e26e0f093755 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/runq.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/runq.c
@@ -34,7 +34,7 @@ nvkm_runq_new(struct nvkm_fifo *fifo, int pbid)
{
struct nvkm_runq *runq;
- if (!(runq = kzalloc(sizeof(*runq), GFP_KERNEL)))
+ if (!(runq = kzalloc_obj(*runq, GFP_KERNEL)))
return NULL;
runq->func = fifo->func->runq;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/ucgrp.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/ucgrp.c
index 52c594dfb1b8..cea98ea25178 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/ucgrp.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/ucgrp.c
@@ -104,7 +104,7 @@ nvkm_ucgrp_new(struct nvkm_fifo *fifo, const struct nvkm_oclass *oclass, void *a
return PTR_ERR(vmm);
/* Allocate channel group. */
- if (!(ucgrp = kzalloc(sizeof(*ucgrp), GFP_KERNEL))) {
+ if (!(ucgrp = kzalloc_obj(*ucgrp, GFP_KERNEL))) {
ret = -ENOMEM;
goto done;
}
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
index c978b97e10c6..f986dbd14f73 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
@@ -166,7 +166,7 @@ nvkm_uchan_object_new(const struct nvkm_oclass *oclass, void *argv, u32 argc,
return -EINVAL;
/* Allocate SW object. */
- if (!(uobj = kzalloc(sizeof(*uobj), GFP_KERNEL)))
+ if (!(uobj = kzalloc_obj(*uobj, GFP_KERNEL)))
return -ENOMEM;
nvkm_oproxy_ctor(&nvkm_uchan_object, oclass, &uobj->oproxy);
@@ -375,7 +375,7 @@ nvkm_uchan_new(struct nvkm_fifo *fifo, struct nvkm_cgrp *cgrp, const struct nvkm
}
/* Allocate channel. */
- if (!(uchan = kzalloc(sizeof(*uchan), GFP_KERNEL))) {
+ if (!(uchan = kzalloc_obj(*uchan, GFP_KERNEL))) {
ret = -ENOMEM;
goto done;
}
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
index 3608215f0f11..910ca0d4aa0f 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
@@ -285,7 +285,7 @@ gf100_gr_object_new(const struct nvkm_oclass *oclass, void *data, u32 size,
struct gf100_gr_chan *chan = gf100_gr_chan(oclass->parent);
struct gf100_gr_object *object;
- if (!(object = kzalloc(sizeof(*object), GFP_KERNEL)))
+ if (!(object = kzalloc_obj(*object, GFP_KERNEL)))
return -ENOMEM;
*pobject = &object->object;
@@ -384,7 +384,7 @@ gf100_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
struct nvkm_device *device = gr->base.engine.subdev.device;
int ret;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&gf100_gr_chan, oclass, &chan->object);
chan->gr = gr;
@@ -2624,7 +2624,7 @@ gf100_gr_new_(const struct gf100_gr_fwif *fwif, struct nvkm_device *device,
struct gf100_gr *gr;
int ret;
- if (!(gr = kzalloc(sizeof(*gr), GFP_KERNEL)))
+ if (!(gr = kzalloc_obj(*gr, GFP_KERNEL)))
return -ENOMEM;
*pgr = &gr->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
index 82937df8b8c0..3bf288190cd1 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
@@ -1188,7 +1188,7 @@ nv04_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
struct nv04_gr_chan *chan;
unsigned long flags;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&nv04_gr_chan, oclass, &chan->object);
chan->gr = gr;
@@ -1417,7 +1417,7 @@ nv04_gr_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst, st
{
struct nv04_gr *gr;
- if (!(gr = kzalloc(sizeof(*gr), GFP_KERNEL)))
+ if (!(gr = kzalloc_obj(*gr, GFP_KERNEL)))
return -ENOMEM;
spin_lock_init(&gr->lock);
*pgr = &gr->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
index fcb4e4fce83f..8b724b3acdba 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
@@ -1007,7 +1007,7 @@ nv10_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
struct nvkm_device *device = gr->base.engine.subdev.device;
unsigned long flags;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&nv10_gr_chan, oclass, &chan->object);
chan->gr = gr;
@@ -1177,7 +1177,7 @@ nv10_gr_new_(const struct nvkm_gr_func *func, struct nvkm_device *device,
{
struct nv10_gr *gr;
- if (!(gr = kzalloc(sizeof(*gr), GFP_KERNEL)))
+ if (!(gr = kzalloc_obj(*gr, GFP_KERNEL)))
return -ENOMEM;
spin_lock_init(&gr->lock);
*pgr = &gr->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
index ab57b3b40228..f12053d47fcf 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
@@ -79,7 +79,7 @@ nv20_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
struct nv20_gr_chan *chan;
int ret, i;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&nv20_gr_chan, oclass, &chan->object);
chan->gr = gr;
@@ -334,7 +334,7 @@ nv20_gr_new_(const struct nvkm_gr_func *func, struct nvkm_device *device,
{
struct nv20_gr *gr;
- if (!(gr = kzalloc(sizeof(*gr), GFP_KERNEL)))
+ if (!(gr = kzalloc_obj(*gr, GFP_KERNEL)))
return -ENOMEM;
*pgr = &gr->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
index d6bc6904dcc8..91c613e00e5e 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
@@ -25,7 +25,7 @@ nv25_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
struct nv20_gr_chan *chan;
int ret, i;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&nv25_gr_chan, oclass, &chan->object);
chan->gr = gr;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
index e5a351b51eb9..4435db568bb4 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
@@ -25,7 +25,7 @@ nv2a_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
struct nv20_gr_chan *chan;
int ret, i;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&nv2a_gr_chan, oclass, &chan->object);
chan->gr = gr;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
index 80370323755e..6da312944498 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
@@ -26,7 +26,7 @@ nv30_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
struct nv20_gr_chan *chan;
int ret, i;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&nv30_gr_chan, oclass, &chan->object);
chan->gr = gr;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
index cdf043bbdd59..8cb48adc5d58 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
@@ -25,7 +25,7 @@ nv34_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
struct nv20_gr_chan *chan;
int ret, i;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&nv34_gr_chan, oclass, &chan->object);
chan->gr = gr;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
index fa5a6ccb871d..4116872fd2d1 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
@@ -25,7 +25,7 @@ nv35_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
struct nv20_gr_chan *chan;
int ret, i;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&nv35_gr_chan, oclass, &chan->object);
chan->gr = gr;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
index e3e797cf3034..5af4fa408fb8 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
@@ -152,7 +152,7 @@ nv40_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
struct nv40_gr_chan *chan;
unsigned long flags;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&nv40_gr_chan, oclass, &chan->object);
chan->gr = gr;
@@ -433,7 +433,7 @@ nv40_gr_new_(const struct nvkm_gr_func *func, struct nvkm_device *device,
{
struct nv40_gr *gr;
- if (!(gr = kzalloc(sizeof(*gr), GFP_KERNEL)))
+ if (!(gr = kzalloc_obj(*gr, GFP_KERNEL)))
return -ENOMEM;
*pgr = &gr->base;
INIT_LIST_HEAD(&gr->chan);
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c
index c8a0288c092d..fae9254fa870 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c
@@ -92,7 +92,7 @@ nv50_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
struct nv50_gr *gr = nv50_gr(base);
struct nv50_gr_chan *chan;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&nv50_gr_chan, oclass, &chan->object);
chan->gr = gr;
@@ -765,7 +765,7 @@ nv50_gr_new_(const struct nvkm_gr_func *func, struct nvkm_device *device,
{
struct nv50_gr *gr;
- if (!(gr = kzalloc(sizeof(*gr), GFP_KERNEL)))
+ if (!(gr = kzalloc_obj(*gr, GFP_KERNEL)))
return -ENOMEM;
spin_lock_init(&gr->lock);
*pgr = &gr->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c b/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
index db9fc1ecae0d..ee907c2987a6 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
@@ -89,7 +89,7 @@ nv31_mpeg_chan_new(struct nvkm_chan *fifoch, const struct nvkm_oclass *oclass,
unsigned long flags;
int ret = -EBUSY;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&nv31_mpeg_chan, oclass, &chan->object);
chan->mpeg = mpeg;
@@ -277,7 +277,7 @@ nv31_mpeg_new_(const struct nv31_mpeg_func *func, struct nvkm_device *device,
{
struct nv31_mpeg *mpeg;
- if (!(mpeg = kzalloc(sizeof(*mpeg), GFP_KERNEL)))
+ if (!(mpeg = kzalloc_obj(*mpeg, GFP_KERNEL)))
return -ENOMEM;
mpeg->func = func;
*pmpeg = &mpeg->engine;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c b/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
index 38146f9cc81c..c14b6efcaf6d 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
@@ -107,7 +107,7 @@ nv44_mpeg_chan_new(struct nvkm_chan *fifoch, const struct nvkm_oclass *oclass,
struct nv44_mpeg_chan *chan;
unsigned long flags;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&nv44_mpeg_chan, oclass, &chan->object);
chan->mpeg = mpeg;
@@ -207,7 +207,7 @@ nv44_mpeg_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
{
struct nv44_mpeg *mpeg;
- if (!(mpeg = kzalloc(sizeof(*mpeg), GFP_KERNEL)))
+ if (!(mpeg = kzalloc_obj(*mpeg, GFP_KERNEL)))
return -ENOMEM;
INIT_LIST_HEAD(&mpeg->chan);
*pmpeg = &mpeg->engine;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/nvdec/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/nvdec/base.c
index 7d1c6791ae82..175a372a1de4 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/nvdec/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/nvdec/base.c
@@ -43,7 +43,7 @@ nvkm_nvdec_new_(const struct nvkm_nvdec_fwif *fwif, struct nvkm_device *device,
struct nvkm_nvdec *nvdec;
int ret;
- if (!(nvdec = *pnvdec = kzalloc(sizeof(*nvdec), GFP_KERNEL)))
+ if (!(nvdec = *pnvdec = kzalloc_obj(*nvdec, GFP_KERNEL)))
return -ENOMEM;
ret = nvkm_engine_ctor(&nvkm_nvdec, device, type, inst, true,
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/nvenc/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/nvenc/base.c
index d45dbb42a0db..d8e6c8b58643 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/nvenc/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/nvenc/base.c
@@ -44,7 +44,7 @@ nvkm_nvenc_new_(const struct nvkm_nvenc_fwif *fwif, struct nvkm_device *device,
struct nvkm_nvenc *nvenc;
int ret;
- if (!(nvenc = *pnvenc = kzalloc(sizeof(*nvenc), GFP_KERNEL)))
+ if (!(nvenc = *pnvenc = kzalloc_obj(*nvenc, GFP_KERNEL)))
return -ENOMEM;
ret = nvkm_engine_ctor(&nvkm_nvenc, device, type, inst, true,
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/sec2/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/sec2/base.c
index 3e4d6a680ee9..f8c0656f74c1 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/sec2/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/sec2/base.c
@@ -137,7 +137,7 @@ nvkm_sec2_new_(const struct nvkm_sec2_fwif *fwif, struct nvkm_device *device,
struct nvkm_sec2 *sec2;
int ret;
- if (!(sec2 = *psec2 = kzalloc(sizeof(*sec2), GFP_KERNEL)))
+ if (!(sec2 = *psec2 = kzalloc_obj(*sec2, GFP_KERNEL)))
return -ENOMEM;
ret = nvkm_engine_ctor(&nvkm_sec2, device, type, inst, true, &sec2->engine);
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/sec2/r535.c b/drivers/gpu/drm/nouveau/nvkm/engine/sec2/r535.c
index 83a6bad5967e..fb5c05e49b80 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/sec2/r535.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/sec2/r535.c
@@ -42,7 +42,7 @@ r535_sec2_new(const struct nvkm_sec2_func *func, struct nvkm_device *device,
struct nvkm_sec2 *sec2;
int ret;
- if (!(sec2 = *psec2 = kzalloc(sizeof(*sec2), GFP_KERNEL)))
+ if (!(sec2 = *psec2 = kzalloc_obj(*sec2, GFP_KERNEL)))
return -ENOMEM;
ret = nvkm_engine_ctor(&r535_sec2, device, type, inst, true, &sec2->engine);
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c
index 20220d6d4a13..3201ab862764 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c
@@ -100,7 +100,7 @@ nvkm_sw_new_(const struct nvkm_sw_func *func, struct nvkm_device *device,
{
struct nvkm_sw *sw;
- if (!(sw = *psw = kzalloc(sizeof(*sw), GFP_KERNEL)))
+ if (!(sw = *psw = kzalloc_obj(*sw, GFP_KERNEL)))
return -ENOMEM;
INIT_LIST_HEAD(&sw->chan);
sw->func = func;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c b/drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
index a0273baf4c67..42a1fcacb45b 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
@@ -110,7 +110,7 @@ gf100_sw_chan_new(struct nvkm_sw *sw, struct nvkm_chan *fifoch,
struct nv50_sw_chan *chan;
int ret, i;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
*pobject = &chan->base.object;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c b/drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
index 8a1d112da894..d1fc9c58653d 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
@@ -111,7 +111,7 @@ nv04_sw_chan_new(struct nvkm_sw *sw, struct nvkm_chan *fifo,
{
struct nv04_sw_chan *chan;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
atomic_set(&chan->ref, 0);
*pobject = &chan->base.object;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/sw/nv10.c b/drivers/gpu/drm/nouveau/nvkm/engine/sw/nv10.c
index 742c75859569..cac43cedebf9 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/sw/nv10.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/sw/nv10.c
@@ -41,7 +41,7 @@ nv10_sw_chan_new(struct nvkm_sw *sw, struct nvkm_chan *fifo,
{
struct nvkm_sw_chan *chan;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
*pobject = &chan->object;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
index 99476d32c5af..62d719241cf6 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
@@ -106,7 +106,7 @@ nv50_sw_chan_new(struct nvkm_sw *sw, struct nvkm_chan *fifoch,
struct nv50_sw_chan *chan;
int ret, i;
- if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL)))
+ if (!(chan = kzalloc_obj(*chan, GFP_KERNEL)))
return -ENOMEM;
*pobject = &chan->base.object;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.c b/drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.c
index f5affa1c8f34..023b94c7abe0 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.c
@@ -64,7 +64,7 @@ nvkm_nvsw_new_(const struct nvkm_nvsw_func *func, struct nvkm_sw_chan *chan,
{
struct nvkm_nvsw *nvsw;
- if (!(nvsw = kzalloc(sizeof(*nvsw), GFP_KERNEL)))
+ if (!(nvsw = kzalloc_obj(*nvsw, GFP_KERNEL)))
return -ENOMEM;
*pobject = &nvsw->object;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c b/drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c
index 910a5bb2d191..e1fa755134d5 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c
@@ -181,7 +181,7 @@ nvkm_xtensa_new_(const struct nvkm_xtensa_func *func, struct nvkm_device *device
{
struct nvkm_xtensa *xtensa;
- if (!(xtensa = kzalloc(sizeof(*xtensa), GFP_KERNEL)))
+ if (!(xtensa = kzalloc_obj(*xtensa, GFP_KERNEL)))
return -ENOMEM;
xtensa->func = func;
xtensa->addr = addr;
diff --git a/drivers/gpu/drm/nouveau/nvkm/falcon/cmdq.c b/drivers/gpu/drm/nouveau/nvkm/falcon/cmdq.c
index 211ebe7afac6..449ef127e56c 100644
--- a/drivers/gpu/drm/nouveau/nvkm/falcon/cmdq.c
+++ b/drivers/gpu/drm/nouveau/nvkm/falcon/cmdq.c
@@ -203,7 +203,7 @@ nvkm_falcon_cmdq_new(struct nvkm_falcon_qmgr *qmgr, const char *name,
{
struct nvkm_falcon_cmdq *cmdq = *pcmdq;
- if (!(cmdq = *pcmdq = kzalloc(sizeof(*cmdq), GFP_KERNEL)))
+ if (!(cmdq = *pcmdq = kzalloc_obj(*cmdq, GFP_KERNEL)))
return -ENOMEM;
cmdq->qmgr = qmgr;
diff --git a/drivers/gpu/drm/nouveau/nvkm/falcon/msgq.c b/drivers/gpu/drm/nouveau/nvkm/falcon/msgq.c
index 16b246fda666..4bff735a08df 100644
--- a/drivers/gpu/drm/nouveau/nvkm/falcon/msgq.c
+++ b/drivers/gpu/drm/nouveau/nvkm/falcon/msgq.c
@@ -203,7 +203,7 @@ nvkm_falcon_msgq_new(struct nvkm_falcon_qmgr *qmgr, const char *name,
{
struct nvkm_falcon_msgq *msgq = *pmsgq;
- if (!(msgq = *pmsgq = kzalloc(sizeof(*msgq), GFP_KERNEL)))
+ if (!(msgq = *pmsgq = kzalloc_obj(*msgq, GFP_KERNEL)))
return -ENOMEM;
msgq->qmgr = qmgr;
diff --git a/drivers/gpu/drm/nouveau/nvkm/falcon/qmgr.c b/drivers/gpu/drm/nouveau/nvkm/falcon/qmgr.c
index a453de341a75..4e1518b43fed 100644
--- a/drivers/gpu/drm/nouveau/nvkm/falcon/qmgr.c
+++ b/drivers/gpu/drm/nouveau/nvkm/falcon/qmgr.c
@@ -73,7 +73,7 @@ nvkm_falcon_qmgr_new(struct nvkm_falcon *falcon,
struct nvkm_falcon_qmgr *qmgr;
int i;
- if (!(qmgr = *pqmgr = kzalloc(sizeof(*qmgr), GFP_KERNEL)))
+ if (!(qmgr = *pqmgr = kzalloc_obj(*qmgr, GFP_KERNEL)))
return -ENOMEM;
qmgr->falcon = falcon;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/base.c
index 13d829593180..0f83774f31a1 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/base.c
@@ -251,7 +251,7 @@ nvkm_acr_oneinit(struct nvkm_subdev *subdev)
nvkm_falcon_put(lsfw->falcon, subdev);
- if (!(lsf = kmalloc(sizeof(*lsf), GFP_KERNEL)))
+ if (!(lsf = kmalloc_obj(*lsf, GFP_KERNEL)))
return -ENOMEM;
lsf->func = lsfw->func;
lsf->falcon = lsfw->falcon;
@@ -422,7 +422,7 @@ nvkm_acr_new_(const struct nvkm_acr_fwif *fwif, struct nvkm_device *device,
struct nvkm_acr *acr;
long wprfw;
- if (!(acr = *pacr = kzalloc(sizeof(*acr), GFP_KERNEL)))
+ if (!(acr = *pacr = kzalloc_obj(*acr, GFP_KERNEL)))
return -ENOMEM;
nvkm_subdev_ctor(&nvkm_acr, device, type, inst, &acr->subdev);
INIT_LIST_HEAD(&acr->hsfw);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/ga100.c b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/ga100.c
index e3370c1551c0..70405ba5a87e 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/ga100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/ga100.c
@@ -37,7 +37,7 @@ ga100_acr_hsfw_ctor(struct nvkm_acr *acr, const char *bl, const char *fw,
{
struct nvkm_acr_hsfw *hsfw;
- if (!(hsfw = kzalloc(sizeof(*hsfw), GFP_KERNEL)))
+ if (!(hsfw = kzalloc_obj(*hsfw, GFP_KERNEL)))
return -ENOMEM;
hsfw->falcon_id = fwif->falcon_id;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/ga102.c b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/ga102.c
index c7d38609bb7e..77535b0d1d75 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/ga102.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/ga102.c
@@ -32,7 +32,7 @@ ga102_acr_wpr_patch(struct nvkm_acr *acr, s64 adjust)
struct nvkm_acr_lsfw *lsfw;
u32 offset = 0;
- lsb = kvmalloc(sizeof(*lsb), GFP_KERNEL);
+ lsb = kvmalloc_obj(*lsb, GFP_KERNEL);
if (!lsb)
return -ENOMEM;
@@ -67,7 +67,7 @@ ga102_acr_wpr_build_lsb(struct nvkm_acr *acr, struct nvkm_acr_lsfw *lsfw)
if (WARN_ON(lsfw->sig->size != sizeof(hdr->signature)))
return -EINVAL;
- hdr = kvzalloc(sizeof(*hdr), GFP_KERNEL);
+ hdr = kvzalloc_obj(*hdr, GFP_KERNEL);
if (!hdr)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c
index 31079c947758..5b812bed400d 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c
@@ -247,7 +247,7 @@ gm200_acr_hsfw_ctor(struct nvkm_acr *acr, const char *bl, const char *fw, const
{
struct nvkm_acr_hsfw *hsfw;
- if (!(hsfw = kzalloc(sizeof(*hsfw), GFP_KERNEL)))
+ if (!(hsfw = kzalloc_obj(*hsfw, GFP_KERNEL)))
return -ENOMEM;
hsfw->falcon_id = fwif->falcon_id;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/lsfw.c b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/lsfw.c
index bd104a030243..ecf7500dc135 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/lsfw.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/lsfw.c
@@ -71,7 +71,7 @@ nvkm_acr_lsfw_add(const struct nvkm_acr_lsf_func *func, struct nvkm_acr *acr,
}
if (!lsfw) {
- if (!(lsfw = kzalloc(sizeof(*lsfw), GFP_KERNEL)))
+ if (!(lsfw = kzalloc_obj(*lsfw, GFP_KERNEL)))
return ERR_PTR(-ENOMEM);
lsfw->id = id;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c
index e5e60915029c..8f45161e3f2b 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c
@@ -165,7 +165,7 @@ gf100_bar_new_(const struct nvkm_bar_func *func, struct nvkm_device *device,
enum nvkm_subdev_type type, int inst, struct nvkm_bar **pbar)
{
struct gf100_bar *bar;
- if (!(bar = kzalloc(sizeof(*bar), GFP_KERNEL)))
+ if (!(bar = kzalloc_obj(*bar, GFP_KERNEL)))
return -ENOMEM;
nvkm_bar_ctor(func, device, type, inst, &bar->base);
bar->bar2_halve = nvkm_boolopt(device->cfgopt, "NvBar2Halve", false);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c
index 6a881becb02c..eb66234bc478 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c
@@ -223,7 +223,7 @@ nv50_bar_new_(const struct nvkm_bar_func *func, struct nvkm_device *device,
enum nvkm_subdev_type type, int inst, u32 pgd_addr, struct nvkm_bar **pbar)
{
struct nv50_bar *bar;
- if (!(bar = kzalloc(sizeof(*bar), GFP_KERNEL)))
+ if (!(bar = kzalloc_obj(*bar, GFP_KERNEL)))
return -ENOMEM;
nvkm_bar_ctor(func, device, type, inst, &bar->base);
bar->pgd_addr = pgd_addr;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c
index 91f486ee4c42..9edc439ac790 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c
@@ -156,7 +156,7 @@ nvkm_bios_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct bit_entry bit_i;
int ret, idx = 0;
- if (!(bios = *pbios = kzalloc(sizeof(*bios), GFP_KERNEL)))
+ if (!(bios = *pbios = kzalloc_obj(*bios, GFP_KERNEL)))
return -ENOMEM;
nvkm_subdev_ctor(&nvkm_bios, device, type, inst, &bios->subdev);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/iccsense.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/iccsense.c
index dea444d48f94..f1fec267ebad 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/iccsense.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/iccsense.c
@@ -73,8 +73,7 @@ nvbios_iccsense_parse(struct nvkm_bios *bios, struct nvbios_iccsense *iccsense)
}
iccsense->nr_entry = cnt;
- iccsense->rail = kmalloc_array(cnt, sizeof(struct pwr_rail_t),
- GFP_KERNEL);
+ iccsense->rail = kmalloc_objs(struct pwr_rail_t, cnt, GFP_KERNEL);
if (!iccsense->rail)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c
index cb05f7f48a98..02c2551b82cf 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c
@@ -58,7 +58,7 @@ of_init(struct nvkm_bios *bios, const char *name)
struct priv *priv;
if (!(dn = pci_device_to_OF_node(pdev)))
return ERR_PTR(-ENODEV);
- if (!(priv = kzalloc(sizeof(*priv), GFP_KERNEL)))
+ if (!(priv = kzalloc_obj(*priv, GFP_KERNEL)))
return ERR_PTR(-ENOMEM);
if ((priv->data = of_get_property(dn, "NVDA,BMP", &priv->size)))
return priv;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c
index 8d9812a51ef6..72658f45cdf0 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c
@@ -65,7 +65,7 @@ pcirom_init(struct nvkm_bios *bios, const char *name)
if (!(ret = pci_enable_rom(pdev))) {
if (ret = -ENOMEM,
- (priv = kmalloc(sizeof(*priv), GFP_KERNEL))) {
+ (priv = kmalloc_obj(*priv, GFP_KERNEL))) {
if (ret = -EFAULT,
(priv->rom = pci_map_rom(pdev, &priv->size))) {
priv->pdev = pdev;
@@ -104,7 +104,7 @@ platform_init(struct nvkm_bios *bios, const char *name)
if (!pdev->rom || pdev->romlen == 0)
return ERR_PTR(-ENODEV);
- if ((priv = kmalloc(sizeof(*priv), GFP_KERNEL))) {
+ if ((priv = kmalloc_obj(*priv, GFP_KERNEL))) {
priv->size = pdev->romlen;
if (ret = -ENODEV,
(priv->rom = ioremap(pdev->rom, pdev->romlen)))
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.c
index 023ddc7c5399..0cae8502301a 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.c
@@ -102,7 +102,7 @@ pramin_init(struct nvkm_bios *bios, const char *name)
}
/* modify bar0 PRAMIN window to cover the bios image */
- if (!(priv = kmalloc(sizeof(*priv), GFP_KERNEL))) {
+ if (!(priv = kmalloc_obj(*priv, GFP_KERNEL))) {
nvkm_error(subdev, "... out of memory\n");
return ERR_PTR(-ENOMEM);
}
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bus/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bus/base.c
index 0e5a46db52ea..6c789ef5e341 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bus/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bus/base.c
@@ -56,7 +56,7 @@ nvkm_bus_new_(const struct nvkm_bus_func *func, struct nvkm_device *device,
enum nvkm_subdev_type type, int inst, struct nvkm_bus **pbus)
{
struct nvkm_bus *bus;
- if (!(bus = *pbus = kzalloc(sizeof(*bus), GFP_KERNEL)))
+ if (!(bus = *pbus = kzalloc_obj(*bus, GFP_KERNEL)))
return -ENOMEM;
nvkm_subdev_ctor(&nvkm_bus, device, type, inst, &bus->subdev);
bus->func = func;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.c
index 2a5668938f2f..8cb4bc5fdedf 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.c
@@ -45,7 +45,7 @@ nvkm_hwsq_init(struct nvkm_subdev *subdev, struct nvkm_hwsq **phwsq)
{
struct nvkm_hwsq *hwsq;
- hwsq = *phwsq = kmalloc(sizeof(*hwsq), GFP_KERNEL);
+ hwsq = *phwsq = kmalloc_obj(*hwsq, GFP_KERNEL);
if (hwsq) {
hwsq->subdev = subdev;
hwsq->addr = ~0;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
index 71420f81714b..39b88d995411 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c
@@ -239,7 +239,7 @@ nvkm_cstate_new(struct nvkm_clk *clk, int idx, struct nvkm_pstate *pstate)
if (volt && nvkm_volt_map_min(volt, cstepX.voltage) > volt->max_uv)
return -EINVAL;
- cstate = kzalloc(sizeof(*cstate), GFP_KERNEL);
+ cstate = kzalloc_obj(*cstate, GFP_KERNEL);
if (!cstate)
return -ENOMEM;
@@ -416,7 +416,7 @@ nvkm_pstate_new(struct nvkm_clk *clk, int idx)
if (perfE.pstate == 0xff)
return 0;
- pstate = kzalloc(sizeof(*pstate), GFP_KERNEL);
+ pstate = kzalloc_obj(*pstate, GFP_KERNEL);
if (!pstate)
return -ENOMEM;
@@ -710,7 +710,7 @@ int
nvkm_clk_new_(const struct nvkm_clk_func *func, struct nvkm_device *device,
enum nvkm_subdev_type type, int inst, bool allow_reclock, struct nvkm_clk **pclk)
{
- if (!(*pclk = kzalloc(sizeof(**pclk), GFP_KERNEL)))
+ if (!(*pclk = kzalloc_obj(**pclk, GFP_KERNEL)))
return -ENOMEM;
return nvkm_clk_ctor(func, device, type, inst, allow_reclock, *pclk);
}
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gf100.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gf100.c
index 6eea11aefb70..ec1effd3417b 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gf100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gf100.c
@@ -473,7 +473,7 @@ gf100_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
{
struct gf100_clk *clk;
- if (!(clk = kzalloc(sizeof(*clk), GFP_KERNEL)))
+ if (!(clk = kzalloc_obj(*clk, GFP_KERNEL)))
return -ENOMEM;
*pclk = &clk->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk104.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk104.c
index 0d8e2ddcc5ee..8ef413154f7e 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk104.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk104.c
@@ -509,7 +509,7 @@ gk104_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
{
struct gk104_clk *clk;
- if (!(clk = kzalloc(sizeof(*clk), GFP_KERNEL)))
+ if (!(clk = kzalloc_obj(*clk, GFP_KERNEL)))
return -ENOMEM;
*pclk = &clk->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c
index 65f5d0f1f3bf..4a87023154ec 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c
@@ -649,7 +649,7 @@ gk20a_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct gk20a_clk *clk;
int ret;
- clk = kzalloc(sizeof(*clk), GFP_KERNEL);
+ clk = kzalloc_obj(*clk, GFP_KERNEL);
if (!clk)
return -ENOMEM;
*pclk = &clk->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gm20b.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gm20b.c
index fa8ca53acbd1..59132544985a 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gm20b.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gm20b.c
@@ -919,7 +919,7 @@ gm20b_clk_new_speedo0(struct nvkm_device *device, enum nvkm_subdev_type type, in
struct gk20a_clk *clk;
int ret;
- clk = kzalloc(sizeof(*clk), GFP_KERNEL);
+ clk = kzalloc_obj(*clk, GFP_KERNEL);
if (!clk)
return -ENOMEM;
*pclk = &clk->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gp10b.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gp10b.c
index 492b62c0ee96..13fea8f3e5c0 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gp10b.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gp10b.c
@@ -165,7 +165,7 @@ gp10b_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct gp10b_clk *clk;
int ret, i;
- clk = kzalloc(sizeof(*clk), GFP_KERNEL);
+ clk = kzalloc_obj(*clk, GFP_KERNEL);
if (!clk)
return -ENOMEM;
*pclk = &clk->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.c
index b5f3969727a2..ed792f2b251e 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.c
@@ -542,7 +542,7 @@ gt215_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
{
struct gt215_clk *clk;
- if (!(clk = kzalloc(sizeof(*clk), GFP_KERNEL)))
+ if (!(clk = kzalloc_obj(*clk, GFP_KERNEL)))
return -ENOMEM;
*pclk = &clk->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/mcp77.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/mcp77.c
index 81f103f88dc8..4960cf6acb2d 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/mcp77.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/mcp77.c
@@ -414,7 +414,7 @@ mcp77_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
{
struct mcp77_clk *clk;
- if (!(clk = kzalloc(sizeof(*clk), GFP_KERNEL)))
+ if (!(clk = kzalloc_obj(*clk, GFP_KERNEL)))
return -ENOMEM;
*pclk = &clk->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv40.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv40.c
index 7ddd8cecb805..de429f26fa4f 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv40.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv40.c
@@ -223,7 +223,7 @@ nv40_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
{
struct nv40_clk *clk;
- if (!(clk = kzalloc(sizeof(*clk), GFP_KERNEL)))
+ if (!(clk = kzalloc_obj(*clk, GFP_KERNEL)))
return -ENOMEM;
clk->base.pll_calc = nv04_clk_pll_calc;
clk->base.pll_prog = nv04_clk_pll_prog;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c
index e1d31c62f9ec..aec4bb2b3550 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c
@@ -513,7 +513,7 @@ nv50_clk_new_(const struct nvkm_clk_func *func, struct nvkm_device *device,
struct nv50_clk *clk;
int ret;
- if (!(clk = kzalloc(sizeof(*clk), GFP_KERNEL)))
+ if (!(clk = kzalloc_obj(*clk, GFP_KERNEL)))
return -ENOMEM;
ret = nvkm_clk_ctor(func, device, type, inst, allow_reclock, &clk->base);
*pclk = &clk->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.c
index 88bc890f89a2..92b846d28869 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.c
@@ -439,7 +439,7 @@ nv04_devinit_new_(const struct nvkm_devinit_func *func, struct nvkm_device *devi
{
struct nv04_devinit *init;
- if (!(init = kzalloc(sizeof(*init), GFP_KERNEL)))
+ if (!(init = kzalloc_obj(*init, GFP_KERNEL)))
return -ENOMEM;
*pinit = &init->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.c
index 07ed8fd778b2..1eb0908dcb5c 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.c
@@ -150,7 +150,7 @@ nv50_devinit_new_(const struct nvkm_devinit_func *func, struct nvkm_device *devi
{
struct nv50_devinit *init;
- if (!(init = kzalloc(sizeof(*init), GFP_KERNEL)))
+ if (!(init = kzalloc_obj(*init, GFP_KERNEL)))
return -ENOMEM;
*pinit = &init->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/r535.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/r535.c
index 666eb93b1742..e226a2e24da5 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/r535.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/r535.c
@@ -36,7 +36,7 @@ r535_devinit_new(const struct nvkm_devinit_func *hw,
struct nvkm_devinit_func *rm;
int ret;
- if (!(rm = kzalloc(sizeof(*rm), GFP_KERNEL)))
+ if (!(rm = kzalloc_obj(*rm, GFP_KERNEL)))
return -ENOMEM;
rm->dtor = r535_devinit_dtor;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fault/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fault/base.c
index d8d32bb5bcd9..0ebda68c7d96 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fault/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fault/base.c
@@ -76,7 +76,7 @@ nvkm_fault_oneinit_buffer(struct nvkm_fault *fault, int id)
struct nvkm_fault_buffer *buffer;
int ret;
- if (!(buffer = kzalloc(sizeof(*buffer), GFP_KERNEL)))
+ if (!(buffer = kzalloc_obj(*buffer, GFP_KERNEL)))
return -ENOMEM;
buffer->fault = fault;
buffer->id = id;
@@ -156,7 +156,7 @@ nvkm_fault_new_(const struct nvkm_fault_func *func, struct nvkm_device *device,
enum nvkm_subdev_type type, int inst, struct nvkm_fault **pfault)
{
struct nvkm_fault *fault;
- if (!(fault = *pfault = kzalloc(sizeof(*fault), GFP_KERNEL)))
+ if (!(fault = *pfault = kzalloc_obj(*fault, GFP_KERNEL)))
return -ENOMEM;
nvkm_subdev_ctor(&nvkm_fault, device, type, inst, &fault->subdev);
fault->func = func;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c
index 7ce1b65e2c1c..f15635ea99b8 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c
@@ -296,7 +296,7 @@ int
nvkm_fb_new_(const struct nvkm_fb_func *func, struct nvkm_device *device,
enum nvkm_subdev_type type, int inst, struct nvkm_fb **pfb)
{
- if (!(*pfb = kzalloc(sizeof(**pfb), GFP_KERNEL)))
+ if (!(*pfb = kzalloc_obj(**pfb, GFP_KERNEL)))
return -ENOMEM;
return nvkm_fb_ctor(func, device, type, inst, *pfb);
}
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.c
index 64281a09fb39..0c3e52e29baa 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.c
@@ -112,7 +112,7 @@ gf100_fb_new_(const struct nvkm_fb_func *func, struct nvkm_device *device,
{
struct gf100_fb *fb;
- if (!(fb = kzalloc(sizeof(*fb), GFP_KERNEL)))
+ if (!(fb = kzalloc_obj(*fb, GFP_KERNEL)))
return -ENOMEM;
nvkm_fb_ctor(func, device, type, inst, &fb->base);
*pfb = &fb->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
index 076d968b7297..c2687ade0d7e 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
@@ -244,7 +244,7 @@ nv50_fb_new_(const struct nv50_fb_func *func, struct nvkm_device *device,
{
struct nv50_fb *fb;
- if (!(fb = kzalloc(sizeof(*fb), GFP_KERNEL)))
+ if (!(fb = kzalloc_obj(*fb, GFP_KERNEL)))
return -ENOMEM;
nvkm_fb_ctor(&nv50_fb_, device, type, inst, &fb->base);
fb->func = func;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/r535.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/r535.c
index d32515010167..167eb70143ce 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/r535.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/r535.c
@@ -35,7 +35,7 @@ r535_fb_ram_new(struct nvkm_fb *fb, struct nvkm_ram **pram)
struct nvkm_ram *ram;
int ret;
- if (!(ram = *pram = kzalloc(sizeof(*ram), GFP_KERNEL)))
+ if (!(ram = *pram = kzalloc_obj(*ram, GFP_KERNEL)))
return -ENOMEM;
ram->func = &r535_fb_ram;
@@ -71,7 +71,7 @@ r535_fb_new(const struct nvkm_fb_func *hw,
struct nvkm_fb_func *rm;
int ret;
- if (!(rm = kzalloc(sizeof(*rm), GFP_KERNEL)))
+ if (!(rm = kzalloc_obj(*rm, GFP_KERNEL)))
return -ENOMEM;
rm->dtor = r535_fb_dtor;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.c
index c826980bf70e..e3f161f27189 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.c
@@ -127,7 +127,7 @@ nvkm_ram_wrap(struct nvkm_device *device, u64 addr, u64 size,
return -ENODEV;
ram = device->fb->ram;
- if (!(vram = kzalloc(sizeof(*vram), GFP_KERNEL)))
+ if (!(vram = kzalloc_obj(*vram, GFP_KERNEL)))
return -ENOMEM;
nvkm_memory_ctor(&nvkm_vram, &vram->memory);
@@ -135,7 +135,7 @@ nvkm_ram_wrap(struct nvkm_device *device, u64 addr, u64 size,
vram->page = NVKM_RAM_MM_SHIFT;
*pmemory = &vram->memory;
- vram->mn = kzalloc(sizeof(*vram->mn), GFP_KERNEL);
+ vram->mn = kzalloc_obj(*vram->mn, GFP_KERNEL);
if (!vram->mn)
return -ENOMEM;
@@ -163,7 +163,7 @@ nvkm_ram_get(struct nvkm_device *device, u8 heap, u8 type, u8 rpage, u64 size,
ram = device->fb->ram;
mm = &ram->vram;
- if (!(vram = kzalloc(sizeof(*vram), GFP_KERNEL)))
+ if (!(vram = kzalloc_obj(*vram, GFP_KERNEL)))
return -ENOMEM;
nvkm_memory_ctor(&nvkm_vram, &vram->memory);
vram->ram = ram;
@@ -257,7 +257,7 @@ int
nvkm_ram_new_(const struct nvkm_ram_func *func, struct nvkm_fb *fb,
enum nvkm_ram_type type, u64 size, struct nvkm_ram **pram)
{
- if (!(*pram = kzalloc(sizeof(**pram), GFP_KERNEL)))
+ if (!(*pram = kzalloc_obj(**pram, GFP_KERNEL)))
return -ENOMEM;
return nvkm_ram_ctor(func, fb, type, size, *pram);
}
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf100.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf100.c
index ba43fe158b22..1367cb8adb8f 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf100.c
@@ -572,7 +572,7 @@ gf100_ram_new_(const struct nvkm_ram_func *func,
struct gf100_ram *ram;
int ret;
- if (!(ram = kzalloc(sizeof(*ram), GFP_KERNEL)))
+ if (!(ram = kzalloc_obj(*ram, GFP_KERNEL)))
return -ENOMEM;
*pram = &ram->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c
index 2b678b60b4d3..9bcbbe5469a3 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c
@@ -1371,7 +1371,7 @@ gk104_ram_train_init(struct nvkm_ram *ram)
struct gk104_ram_train *train;
int ret, i;
- if (!(train = kzalloc(sizeof(*train), GFP_KERNEL)))
+ if (!(train = kzalloc_obj(*train, GFP_KERNEL)))
return -ENOMEM;
for (i = 0; i < 0x100; i++) {
@@ -1446,7 +1446,7 @@ gk104_ram_ctor_data(struct gk104_ram *ram, u8 ramcfg, int i)
u32 data;
int ret;
- if (!(cfg = kmalloc(sizeof(*cfg), GFP_KERNEL)))
+ if (!(cfg = kmalloc_obj(*cfg, GFP_KERNEL)))
return -ENOMEM;
p = &list_last_entry(&ram->cfg, typeof(*cfg), head)->bios;
n = &cfg->bios;
@@ -1530,7 +1530,7 @@ gk104_ram_new_(const struct nvkm_ram_func *func, struct nvkm_fb *fb,
u8 ramcfg = nvbios_ramcfg_index(subdev);
u32 tmp;
- if (!(ram = kzalloc(sizeof(*ram), GFP_KERNEL)))
+ if (!(ram = kzalloc_obj(*ram, GFP_KERNEL)))
return -ENOMEM;
*pram = &ram->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgp100.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgp100.c
index 8987a21e81d1..fb958bb6c1d1 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgp100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgp100.c
@@ -91,7 +91,7 @@ gp100_ram_new(struct nvkm_fb *fb, struct nvkm_ram **pram)
{
struct nvkm_ram *ram;
- if (!(ram = *pram = kzalloc(sizeof(*ram), GFP_KERNEL)))
+ if (!(ram = *pram = kzalloc_obj(*ram, GFP_KERNEL)))
return -ENOMEM;
return gf100_ram_ctor(&gp100_ram, fb, ram);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c
index bbfde1cb3a17..6417ee503aaf 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c
@@ -942,7 +942,7 @@ gt215_ram_new(struct nvkm_fb *fb, struct nvkm_ram **pram)
struct gt215_ram *ram;
int ret, i;
- if (!(ram = kzalloc(sizeof(*ram), GFP_KERNEL)))
+ if (!(ram = kzalloc_obj(*ram, GFP_KERNEL)))
return -ENOMEM;
*pram = &ram->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/rammcp77.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/rammcp77.c
index 7de18e53ef45..2e1890ada5f9 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/rammcp77.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/rammcp77.c
@@ -66,7 +66,7 @@ mcp77_ram_new(struct nvkm_fb *fb, struct nvkm_ram **pram)
struct mcp77_ram *ram;
int ret;
- if (!(ram = kzalloc(sizeof(*ram), GFP_KERNEL)))
+ if (!(ram = kzalloc_obj(*ram, GFP_KERNEL)))
return -ENOMEM;
*pram = &ram->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.c
index 97b3a28ca5c0..5dc6012c67cd 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.c
@@ -192,7 +192,7 @@ nv40_ram_new_(struct nvkm_fb *fb, enum nvkm_ram_type type, u64 size,
struct nvkm_ram **pram)
{
struct nv40_ram *ram;
- if (!(ram = kzalloc(sizeof(*ram), GFP_KERNEL)))
+ if (!(ram = kzalloc_obj(*ram, GFP_KERNEL)))
return -ENOMEM;
*pram = &ram->base;
return nvkm_ram_ctor(&nv40_ram_func, fb, type, size, &ram->base);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.c
index 7b1eb44ff3da..d767a6488e4c 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.c
@@ -587,7 +587,7 @@ nv50_ram_new(struct nvkm_fb *fb, struct nvkm_ram **pram)
struct nv50_ram *ram;
int ret, i;
- if (!(ram = kzalloc(sizeof(*ram), GFP_KERNEL)))
+ if (!(ram = kzalloc_obj(*ram, GFP_KERNEL)))
return -ENOMEM;
*pram = &ram->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fsp/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fsp/base.c
index e366a980baa9..ba24758d5ed1 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fsp/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fsp/base.c
@@ -55,7 +55,7 @@ nvkm_fsp_new_(const struct nvkm_fsp_func *func,
{
struct nvkm_fsp *fsp;
- fsp = *pfsp = kzalloc(sizeof(*fsp), GFP_KERNEL);
+ fsp = *pfsp = kzalloc_obj(*fsp, GFP_KERNEL);
if (!fsp)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fuse/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fuse/base.c
index 375dfce09f84..ad5c0de62459 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fuse/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fuse/base.c
@@ -45,7 +45,7 @@ nvkm_fuse_new_(const struct nvkm_fuse_func *func, struct nvkm_device *device,
enum nvkm_subdev_type type, int inst, struct nvkm_fuse **pfuse)
{
struct nvkm_fuse *fuse;
- if (!(fuse = *pfuse = kzalloc(sizeof(*fuse), GFP_KERNEL)))
+ if (!(fuse = *pfuse = kzalloc_obj(*fuse, GFP_KERNEL)))
return -ENOMEM;
nvkm_subdev_ctor(&nvkm_fuse, device, type, inst, &fuse->subdev);
fuse->func = func;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c
index b2c34878a68f..d8b434a7276d 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c
@@ -227,7 +227,7 @@ nvkm_gpio_new_(const struct nvkm_gpio_func *func, struct nvkm_device *device,
{
struct nvkm_gpio *gpio;
- if (!(gpio = *pgpio = kzalloc(sizeof(*gpio), GFP_KERNEL)))
+ if (!(gpio = *pgpio = kzalloc_obj(*gpio, GFP_KERNEL)))
return -ENOMEM;
nvkm_subdev_ctor(&nvkm_gpio, device, type, inst, &gpio->subdev);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/base.c
index 30cb843ba35c..3952b96a5abb 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/base.c
@@ -132,7 +132,7 @@ nvkm_gsp_new_(const struct nvkm_gsp_fwif *fwif, struct nvkm_device *device,
{
struct nvkm_gsp *gsp;
- if (!(gsp = *pgsp = kzalloc(sizeof(*gsp), GFP_KERNEL)))
+ if (!(gsp = *pgsp = kzalloc_obj(*gsp, GFP_KERNEL)))
return -ENOMEM;
nvkm_subdev_ctor(&nvkm_gsp, device, type, inst, &gsp->subdev);
@@ -148,7 +148,7 @@ nvkm_gsp_new_(const struct nvkm_gsp_fwif *fwif, struct nvkm_device *device,
if (fwif->rm) {
nvkm_info(&gsp->subdev, "RM version: %s\n", fwif->ver);
- gsp->rm = kzalloc(sizeof(*gsp->rm), GFP_KERNEL);
+ gsp->rm = kzalloc_obj(*gsp->rm, GFP_KERNEL);
if (!gsp->rm)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/engine.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/engine.c
index 3b0e83b2f57f..01c90b592dca 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/engine.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/engine.c
@@ -44,7 +44,7 @@ nvkm_rm_engine_obj_new(struct nvkm_gsp_object *chan, int chid, const struct nvkm
struct nvkm_rm_engine_obj *obj;
int ret;
- obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ obj = kzalloc_obj(*obj, GFP_KERNEL);
if (!obj)
return -ENOMEM;
@@ -106,7 +106,7 @@ nvkm_rm_engine_ctor(void *(*dtor)(struct nvkm_engine *), struct nvkm_rm *rm,
{
struct nvkm_engine_func *func;
- func = kzalloc(struct_size(func, sclass, nclass + 1), GFP_KERNEL);
+ func = kzalloc_flex(*func, sclass, nclass + 1, GFP_KERNEL);
if (!func)
return -ENOMEM;
@@ -130,7 +130,7 @@ nvkm_rm_engine_new_(struct nvkm_rm *rm, enum nvkm_subdev_type type, int inst, u3
struct nvkm_engine *engine;
int ret;
- engine = kzalloc(sizeof(*engine), GFP_KERNEL);
+ engine = kzalloc_obj(*engine, GFP_KERNEL);
if (!engine)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/gr.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/gr.c
index f40b8fcc2bcb..c13aaeb9fc89 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/gr.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/gr.c
@@ -56,7 +56,7 @@ nvkm_rm_gr_new(struct nvkm_rm *rm)
struct nvkm_gr_func *func;
struct r535_gr *gr;
- func = kzalloc(struct_size(func, sclass, ARRAY_SIZE(classes) + 1), GFP_KERNEL);
+ func = kzalloc_flex(*func, sclass, ARRAY_SIZE(classes) + 1, GFP_KERNEL);
if (!func)
return -ENOMEM;
@@ -74,7 +74,7 @@ nvkm_rm_gr_new(struct nvkm_rm *rm)
func->sclass[i].ctor = nvkm_rm_gr_obj_ctor;
}
- gr = kzalloc(sizeof(*gr), GFP_KERNEL);
+ gr = kzalloc_obj(*gr, GFP_KERNEL);
if (!gr) {
kfree(func);
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/nvdec.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/nvdec.c
index d9fbfc377864..c0c6695bd547 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/nvdec.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/nvdec.c
@@ -17,7 +17,7 @@ nvkm_rm_nvdec_new(struct nvkm_rm *rm, int inst)
struct nvkm_nvdec *nvdec;
int ret;
- nvdec = kzalloc(sizeof(*nvdec), GFP_KERNEL);
+ nvdec = kzalloc_obj(*nvdec, GFP_KERNEL);
if (!nvdec)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/nvenc.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/nvenc.c
index 6dfa7b789e07..db1c8b508b08 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/nvenc.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/nvenc.c
@@ -17,7 +17,7 @@ nvkm_rm_nvenc_new(struct nvkm_rm *rm, int inst)
struct nvkm_nvenc *nvenc;
int ret;
- nvenc = kzalloc(sizeof(*nvenc), GFP_KERNEL);
+ nvenc = kzalloc_obj(*nvenc, GFP_KERNEL);
if (!nvenc)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/bar.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/bar.c
index d06bf95b9a4a..37d0e21905bf 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/bar.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/bar.c
@@ -169,7 +169,7 @@ r535_bar_new_(const struct nvkm_bar_func *hw, struct nvkm_device *device,
struct nvkm_bar *bar;
int ret;
- if (!(rm = kzalloc(sizeof(*rm), GFP_KERNEL)))
+ if (!(rm = kzalloc_obj(*rm, GFP_KERNEL)))
return -ENOMEM;
rm->dtor = r535_bar_dtor;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fbsr.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fbsr.c
index e962d0e8f837..c0d3d4f66d30 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fbsr.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fbsr.c
@@ -184,7 +184,7 @@ fbsr_vram(struct fbsr *fbsr, const char *type, u64 addr, u64 size)
{
struct fbsr_item *item;
- if (!(item = kzalloc(sizeof(*item), GFP_KERNEL)))
+ if (!(item = kzalloc_obj(*item, GFP_KERNEL)))
return false;
item->type = type;
@@ -309,7 +309,7 @@ r535_instmem_new(const struct nvkm_instmem_func *hw,
struct nvkm_instmem_func *rm;
int ret;
- if (!(rm = kzalloc(sizeof(*rm), GFP_KERNEL)))
+ if (!(rm = kzalloc_obj(*rm, GFP_KERNEL)))
return -ENOMEM;
rm->dtor = r535_instmem_dtor;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
index 4ed54b386a60..3d20574f5f70 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
@@ -591,7 +591,7 @@ r535_fifo_new(const struct nvkm_fifo_func *hw, struct nvkm_device *device,
const struct nvkm_rm_gpu *gpu = device->gsp->rm->gpu;
struct nvkm_fifo_func *rm;
- if (!(rm = kzalloc(sizeof(*rm), GFP_KERNEL)))
+ if (!(rm = kzalloc_obj(*rm, GFP_KERNEL)))
return -ENOMEM;
rm->dtor = r535_fifo_dtor;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gr.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gr.c
index ddb57d5e73d6..d9029a87c010 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gr.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gr.c
@@ -147,7 +147,7 @@ r535_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *chan, const struct nvkm
struct r535_gr_chan *grc;
int ret;
- if (!(grc = kzalloc(sizeof(*grc), GFP_KERNEL)))
+ if (!(grc = kzalloc_obj(*grc, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&r535_gr_chan, oclass, &grc->object);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c
index 7fb13434c051..9fd073619c38 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c
@@ -2003,7 +2003,7 @@ static void r535_gsp_retain_logging(struct nvkm_gsp *gsp)
goto exit;
}
- log = kzalloc(sizeof(*log), GFP_KERNEL);
+ log = kzalloc_obj(*log, GFP_KERNEL);
if (!log)
goto error;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/vmm.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/vmm.c
index f25ea610cd99..8ce33b757589 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/vmm.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/vmm.c
@@ -171,7 +171,7 @@ r535_mmu_new(const struct nvkm_mmu_func *hw,
struct nvkm_mmu_func *rm;
int ret;
- if (!(rm = kzalloc(sizeof(*rm), GFP_KERNEL)))
+ if (!(rm = kzalloc_obj(*rm, GFP_KERNEL)))
return -ENOMEM;
rm->dtor = r535_mmu_dtor;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/anx9805.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/anx9805.c
index 6c76e5e14b75..9e523e0d0a10 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/anx9805.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/anx9805.c
@@ -107,7 +107,7 @@ anx9805_bus_new(struct nvkm_i2c_pad *base, int id, u8 drive,
struct anx9805_bus *bus;
int ret;
- if (!(bus = kzalloc(sizeof(*bus), GFP_KERNEL)))
+ if (!(bus = kzalloc_obj(*bus, GFP_KERNEL)))
return -ENOMEM;
*pbus = &bus->base;
bus->pad = pad;
@@ -236,7 +236,7 @@ anx9805_aux_new(struct nvkm_i2c_pad *base, int id, u8 drive,
struct anx9805_aux *aux;
int ret;
- if (!(aux = kzalloc(sizeof(*aux), GFP_KERNEL)))
+ if (!(aux = kzalloc_obj(*aux, GFP_KERNEL)))
return -ENOMEM;
*pbus = &aux->base;
aux->pad = pad;
@@ -267,7 +267,7 @@ anx9805_pad_new(struct nvkm_i2c_bus *bus, int id, u8 addr,
{
struct anx9805_pad *pad;
- if (!(pad = kzalloc(sizeof(*pad), GFP_KERNEL)))
+ if (!(pad = kzalloc_obj(*pad, GFP_KERNEL)))
return -ENOMEM;
*ppad = &pad->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxch.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxch.c
index fafc634acbf6..62b8b9d2d03b 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxch.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxch.c
@@ -209,7 +209,7 @@ nvkm_i2c_aux_new_(const struct nvkm_i2c_aux_func *func,
struct nvkm_i2c_pad *pad, int id,
struct nvkm_i2c_aux **paux)
{
- if (!(*paux = kzalloc(sizeof(**paux), GFP_KERNEL)))
+ if (!(*paux = kzalloc_obj(**paux, GFP_KERNEL)))
return -ENOMEM;
return nvkm_i2c_aux_ctor(func, pad, id, *paux);
}
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.c
index 854bb4b5fdb4..4906dad21347 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.c
@@ -171,7 +171,7 @@ g94_i2c_aux_new_(const struct nvkm_i2c_aux_func *func,
{
struct g94_i2c_aux *aux;
- if (!(aux = kzalloc(sizeof(*aux), GFP_KERNEL)))
+ if (!(aux = kzalloc_obj(*aux, GFP_KERNEL)))
return -ENOMEM;
*paux = &aux->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.c
index 3c5005e3b330..3f0ed4057e9c 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.c
@@ -177,7 +177,7 @@ gm200_i2c_aux_new(struct nvkm_i2c_pad *pad, int index, u8 drive,
{
struct gm200_i2c_aux *aux;
- if (!(aux = kzalloc(sizeof(*aux), GFP_KERNEL)))
+ if (!(aux = kzalloc_obj(*aux, GFP_KERNEL)))
return -ENOMEM;
*paux = &aux->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.c
index 454bb21815a2..42b9df6d6825 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.c
@@ -266,7 +266,7 @@ nvkm_i2c_new_(const struct nvkm_i2c_func *func, struct nvkm_device *device,
u8 ver, hdr;
int ret, i, ids;
- if (!(i2c = *pi2c = kzalloc(sizeof(*i2c), GFP_KERNEL)))
+ if (!(i2c = *pi2c = kzalloc_obj(*i2c, GFP_KERNEL)))
return -ENOMEM;
nvkm_subdev_ctor(&nvkm_i2c, device, type, inst, &i2c->subdev);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.c
index ed50cc3736b9..84d6c0238be2 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.c
@@ -232,7 +232,7 @@ nvkm_i2c_bus_ctor(const struct nvkm_i2c_bus_func *func,
if ( bus->func->drive_scl &&
!nvkm_boolopt(device->cfgopt, "NvI2C", internal)) {
- if (!(bit = kzalloc(sizeof(*bit), GFP_KERNEL)))
+ if (!(bit = kzalloc_obj(*bit, GFP_KERNEL)))
return -ENOMEM;
bit->udelay = 10;
bit->timeout = usecs_to_jiffies(2200);
@@ -258,7 +258,7 @@ nvkm_i2c_bus_new_(const struct nvkm_i2c_bus_func *func,
struct nvkm_i2c_pad *pad, int id,
struct nvkm_i2c_bus **pbus)
{
- if (!(*pbus = kzalloc(sizeof(**pbus), GFP_KERNEL)))
+ if (!(*pbus = kzalloc_obj(**pbus, GFP_KERNEL)))
return -ENOMEM;
return nvkm_i2c_bus_ctor(func, pad, id, *pbus);
}
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busgf119.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busgf119.c
index 96bbdda0f439..598df4da20b6 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busgf119.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busgf119.c
@@ -85,7 +85,7 @@ gf119_i2c_bus_new(struct nvkm_i2c_pad *pad, int id, u8 drive,
{
struct gf119_i2c_bus *bus;
- if (!(bus = kzalloc(sizeof(*bus), GFP_KERNEL)))
+ if (!(bus = kzalloc_obj(*bus, GFP_KERNEL)))
return -ENOMEM;
*pbus = &bus->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv04.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv04.c
index a58db159231f..1a83c872d9d0 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv04.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv04.c
@@ -85,7 +85,7 @@ nv04_i2c_bus_new(struct nvkm_i2c_pad *pad, int id, u8 drive, u8 sense,
{
struct nv04_i2c_bus *bus;
- if (!(bus = kzalloc(sizeof(*bus), GFP_KERNEL)))
+ if (!(bus = kzalloc_obj(*bus, GFP_KERNEL)))
return -ENOMEM;
*pbus = &bus->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv4e.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv4e.c
index cdd73dcb1197..3019cab91e4b 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv4e.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv4e.c
@@ -76,7 +76,7 @@ nv4e_i2c_bus_new(struct nvkm_i2c_pad *pad, int id, u8 drive,
{
struct nv4e_i2c_bus *bus;
- if (!(bus = kzalloc(sizeof(*bus), GFP_KERNEL)))
+ if (!(bus = kzalloc_obj(*bus, GFP_KERNEL)))
return -ENOMEM;
*pbus = &bus->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv50.c
index 8db8399381ca..995abbf8ef61 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv50.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv50.c
@@ -102,7 +102,7 @@ nv50_i2c_bus_new(struct nvkm_i2c_pad *pad, int id, u8 drive,
return -ENODEV;
}
- if (!(bus = kzalloc(sizeof(*bus), GFP_KERNEL)))
+ if (!(bus = kzalloc_obj(*bus, GFP_KERNEL)))
return -ENOMEM;
*pbus = &bus->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/pad.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/pad.c
index 2c5fcb9c504b..7b167b691fc6 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/pad.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/pad.c
@@ -109,7 +109,7 @@ int
nvkm_i2c_pad_new_(const struct nvkm_i2c_pad_func *func, struct nvkm_i2c *i2c,
int id, struct nvkm_i2c_pad **ppad)
{
- if (!(*ppad = kzalloc(sizeof(**ppad), GFP_KERNEL)))
+ if (!(*ppad = kzalloc_obj(**ppad, GFP_KERNEL)))
return -ENOMEM;
nvkm_i2c_pad_ctor(func, i2c, id, *ppad);
return 0;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c
index 8f0ccd3664eb..365747909077 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.c
@@ -188,7 +188,7 @@ nvkm_iccsense_create_sensor(struct nvkm_iccsense *iccsense, u8 id)
return NULL;
}
- sensor = kmalloc(sizeof(*sensor), GFP_KERNEL);
+ sensor = kmalloc_obj(*sensor, GFP_KERNEL);
if (!sensor)
return NULL;
@@ -279,7 +279,7 @@ nvkm_iccsense_oneinit(struct nvkm_subdev *subdev)
continue;
}
- rail = kmalloc(sizeof(*rail), GFP_KERNEL);
+ rail = kmalloc_obj(*rail, GFP_KERNEL);
if (!rail)
return -ENOMEM;
@@ -322,7 +322,7 @@ int
nvkm_iccsense_new_(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_iccsense **iccsense)
{
- if (!(*iccsense = kzalloc(sizeof(**iccsense), GFP_KERNEL)))
+ if (!(*iccsense = kzalloc_obj(**iccsense, GFP_KERNEL)))
return -ENOMEM;
INIT_LIST_HEAD(&(*iccsense)->sensors);
INIT_LIST_HEAD(&(*iccsense)->rails);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c
index 201022ae9214..dab22c47d85e 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c
@@ -387,7 +387,7 @@ gk20a_instobj_ctor_dma(struct gk20a_instmem *imem, u32 npages, u32 align,
struct nvkm_subdev *subdev = &imem->base.subdev;
struct device *dev = subdev->device->dev;
- if (!(node = kzalloc(sizeof(*node), GFP_KERNEL)))
+ if (!(node = kzalloc_obj(*node, GFP_KERNEL)))
return -ENOMEM;
*_node = &node->base;
@@ -577,7 +577,7 @@ gk20a_instmem_new(struct nvkm_device *device, enum nvkm_subdev_type type, int in
struct nvkm_device_tegra *tdev = device->func->tegra(device);
struct gk20a_instmem *imem;
- if (!(imem = kzalloc(sizeof(*imem), GFP_KERNEL)))
+ if (!(imem = kzalloc_obj(*imem, GFP_KERNEL)))
return -ENOMEM;
nvkm_instmem_ctor(&gk20a_instmem, device, type, inst, &imem->base);
mutex_init(&imem->lock);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.c b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.c
index e5320ef849bf..247a7bf5fe39 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.c
@@ -125,7 +125,7 @@ nv04_instobj_new(struct nvkm_instmem *base, u32 size, u32 align, bool zero,
struct nv04_instobj *iobj;
int ret;
- if (!(iobj = kzalloc(sizeof(*iobj), GFP_KERNEL)))
+ if (!(iobj = kzalloc_obj(*iobj, GFP_KERNEL)))
return -ENOMEM;
*pmemory = &iobj->base.memory;
@@ -267,7 +267,7 @@ nv04_instmem_new(struct nvkm_device *device, enum nvkm_subdev_type type, int ins
{
struct nv04_instmem *imem;
- if (!(imem = kzalloc(sizeof(*imem), GFP_KERNEL)))
+ if (!(imem = kzalloc_obj(*imem, GFP_KERNEL)))
return -ENOMEM;
nvkm_instmem_ctor(&nv04_instmem, device, type, inst, &imem->base);
*pimem = &imem->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c
index 2544b9f0ec85..5a0f30d94198 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c
@@ -124,7 +124,7 @@ nv40_instobj_new(struct nvkm_instmem *base, u32 size, u32 align, bool zero,
struct nv40_instobj *iobj;
int ret;
- if (!(iobj = kzalloc(sizeof(*iobj), GFP_KERNEL)))
+ if (!(iobj = kzalloc_obj(*iobj, GFP_KERNEL)))
return -ENOMEM;
*pmemory = &iobj->base.memory;
@@ -240,7 +240,7 @@ nv40_instmem_new(struct nvkm_device *device, enum nvkm_subdev_type type, int ins
{
struct nv40_instmem *imem;
- if (!(imem = kzalloc(sizeof(*imem), GFP_KERNEL)))
+ if (!(imem = kzalloc_obj(*imem, GFP_KERNEL)))
return -ENOMEM;
nvkm_instmem_ctor(&nv40_instmem, device, type, inst, &imem->base);
*pimem = &imem->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c
index 4ca6fb30743d..d6c781ae57e9 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c
@@ -360,7 +360,7 @@ nv50_instobj_wrap(struct nvkm_instmem *base,
struct nv50_instmem *imem = nv50_instmem(base);
struct nv50_instobj *iobj;
- if (!(iobj = kzalloc(sizeof(*iobj), GFP_KERNEL)))
+ if (!(iobj = kzalloc_obj(*iobj, GFP_KERNEL)))
return -ENOMEM;
*pmemory = &iobj->base.memory;
@@ -431,7 +431,7 @@ nv50_instmem_new_(const struct nvkm_instmem_func *func,
{
struct nv50_instmem *imem;
- if (!(imem = kzalloc(sizeof(*imem), GFP_KERNEL)))
+ if (!(imem = kzalloc_obj(*imem, GFP_KERNEL)))
return -ENOMEM;
nvkm_instmem_ctor(func, device, type, inst, &imem->base);
INIT_LIST_HEAD(&imem->lru);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/ltc/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/ltc/base.c
index f742a7b7b175..7c1652bc28cd 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/ltc/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/ltc/base.c
@@ -133,7 +133,7 @@ nvkm_ltc_new_(const struct nvkm_ltc_func *func, struct nvkm_device *device,
{
struct nvkm_ltc *ltc;
- if (!(ltc = *pltc = kzalloc(sizeof(*ltc), GFP_KERNEL)))
+ if (!(ltc = *pltc = kzalloc_obj(*ltc, GFP_KERNEL)))
return -ENOMEM;
nvkm_subdev_ctor(&nvkm_ltc, device, type, inst, <c->subdev);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c
index c85600ba69f9..2d7e6d6f8760 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c
@@ -130,7 +130,7 @@ nvkm_mc_new_(const struct nvkm_mc_func *func, struct nvkm_device *device,
struct nvkm_mc *mc;
int ret;
- if (!(mc = *pmc = kzalloc(sizeof(*mc), GFP_KERNEL)))
+ if (!(mc = *pmc = kzalloc_obj(*mc, GFP_KERNEL)))
return -ENOMEM;
nvkm_subdev_ctor(&nvkm_mc, device, type, inst, &mc->subdev);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c
index b67ace7ae93c..2d9c4d6f9162 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c
@@ -68,13 +68,13 @@ nvkm_mmu_ptp_get(struct nvkm_mmu *mmu, u32 size, bool zero)
struct nvkm_mmu_ptp *ptp;
int slot;
- if (!(pt = kzalloc(sizeof(*pt), GFP_KERNEL)))
+ if (!(pt = kzalloc_obj(*pt, GFP_KERNEL)))
return NULL;
ptp = list_first_entry_or_null(&mmu->ptp.list, typeof(*ptp), head);
if (!ptp) {
/* Need to allocate a new parent to sub-allocate from. */
- if (!(ptp = kmalloc(sizeof(*ptp), GFP_KERNEL))) {
+ if (!(ptp = kmalloc_obj(*ptp, GFP_KERNEL))) {
kfree(pt);
return NULL;
}
@@ -126,7 +126,7 @@ nvkm_mmu_ptc_find(struct nvkm_mmu *mmu, u32 size)
return ptc;
}
- ptc = kmalloc(sizeof(*ptc), GFP_KERNEL);
+ ptc = kmalloc_obj(*ptc, GFP_KERNEL);
if (ptc) {
INIT_LIST_HEAD(&ptc->item);
ptc->size = size;
@@ -199,7 +199,7 @@ nvkm_mmu_ptc_get(struct nvkm_mmu *mmu, u32 size, u32 align, bool zero)
mutex_unlock(&mmu->ptc.mutex);
/* No such luck, we need to allocate. */
- if (!(pt = kmalloc(sizeof(*pt), GFP_KERNEL)))
+ if (!(pt = kmalloc_obj(*pt, GFP_KERNEL)))
return NULL;
pt->ptc = ptc;
pt->sub = false;
@@ -434,7 +434,7 @@ int
nvkm_mmu_new_(const struct nvkm_mmu_func *func, struct nvkm_device *device,
enum nvkm_subdev_type type, int inst, struct nvkm_mmu **pmmu)
{
- if (!(*pmmu = kzalloc(sizeof(**pmmu), GFP_KERNEL)))
+ if (!(*pmmu = kzalloc_obj(**pmmu, GFP_KERNEL)))
return -ENOMEM;
nvkm_mmu_ctor(func, device, type, inst, *pmmu);
return 0;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/mem.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/mem.c
index 92e363dbbc5a..96b620ed07ca 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/mem.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/mem.c
@@ -163,7 +163,7 @@ nvkm_mem_new_host(struct nvkm_mmu *mmu, int type, u8 page, u64 size,
if (page != PAGE_SHIFT)
return -EINVAL;
- if (!(mem = kzalloc(sizeof(*mem), GFP_KERNEL)))
+ if (!(mem = kzalloc_obj(*mem, GFP_KERNEL)))
return -ENOMEM;
mem->target = target;
mem->mmu = mmu;
@@ -191,9 +191,9 @@ nvkm_mem_new_host(struct nvkm_mmu *mmu, int type, u8 page, u64 size,
nvkm_memory_ctor(&nvkm_mem_dma, &mem->memory);
size = ALIGN(size, PAGE_SIZE) >> PAGE_SHIFT;
- if (!(mem->mem = kvmalloc_array(size, sizeof(*mem->mem), GFP_KERNEL)))
+ if (!(mem->mem = kvmalloc_objs(*mem->mem, size, GFP_KERNEL)))
return -ENOMEM;
- if (!(mem->dma = kvmalloc_array(size, sizeof(*mem->dma), GFP_KERNEL)))
+ if (!(mem->dma = kvmalloc_objs(*mem->dma, size, GFP_KERNEL)))
return -ENOMEM;
if (mmu->dma_bits > 32)
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/umem.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/umem.c
index e530bb8b3b17..79ab3a99d98c 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/umem.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/umem.c
@@ -161,7 +161,7 @@ nvkm_umem_new(const struct nvkm_oclass *oclass, void *argv, u32 argc,
if (type >= mmu->type_nr)
return -EINVAL;
- if (!(umem = kzalloc(sizeof(*umem), GFP_KERNEL)))
+ if (!(umem = kzalloc_obj(*umem, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&nvkm_umem, oclass, &umem->object);
umem->mmu = mmu;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/ummu.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/ummu.c
index 6870fda4b188..8de3a707b5c2 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/ummu.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/ummu.c
@@ -172,7 +172,7 @@ nvkm_ummu_new(struct nvkm_device *device, const struct nvkm_oclass *oclass,
} else
return ret;
- if (!(ummu = kzalloc(sizeof(*ummu), GFP_KERNEL)))
+ if (!(ummu = kzalloc_obj(*ummu, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&nvkm_ummu, oclass, &ummu->object);
ummu->mmu = mmu;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/uvmm.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/uvmm.c
index cf490ff2b9f1..1778daa0af3a 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/uvmm.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/uvmm.c
@@ -551,7 +551,7 @@ nvkm_uvmm_new(const struct nvkm_oclass *oclass, void *argv, u32 argc,
} else
return ret;
- if (!(uvmm = kzalloc(sizeof(*uvmm), GFP_KERNEL)))
+ if (!(uvmm = kzalloc_obj(*uvmm, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&nvkm_uvmm, oclass, &uvmm->object);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c
index 19a7407cf702..3a53ce15ea29 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c
@@ -59,7 +59,7 @@ nvkm_vmm_pt_new(const struct nvkm_vmm_desc *desc, bool sparse,
pgt->sparse = sparse;
if (desc->type == PGD) {
- pgt->pde = kvcalloc(pten, sizeof(*pgt->pde), GFP_KERNEL);
+ pgt->pde = kvzalloc_objs(*pgt->pde, pten, GFP_KERNEL);
if (!pgt->pde) {
kfree(pgt);
return NULL;
@@ -823,7 +823,7 @@ nvkm_vmm_ptes_get_map(struct nvkm_vmm *vmm, const struct nvkm_vmm_page *page,
struct nvkm_vma *
nvkm_vma_new(u64 addr, u64 size)
{
- struct nvkm_vma *vma = kzalloc(sizeof(*vma), GFP_KERNEL);
+ struct nvkm_vma *vma = kzalloc_obj(*vma, GFP_KERNEL);
if (vma) {
vma->addr = addr;
vma->size = size;
@@ -1226,7 +1226,7 @@ nvkm_vmm_new_(const struct nvkm_vmm_func *func, struct nvkm_mmu *mmu,
struct lock_class_key *key, const char *name,
struct nvkm_vmm **pvmm)
{
- if (!(*pvmm = kzalloc(sizeof(**pvmm), GFP_KERNEL)))
+ if (!(*pvmm = kzalloc_obj(**pvmm, GFP_KERNEL)))
return -ENOMEM;
return nvkm_vmm_ctor(func, mmu, hdr, managed, addr, size, key, name, *pvmm);
}
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv50.c
index ff08ad5005a9..86f038ebb360 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv50.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv50.c
@@ -346,7 +346,7 @@ nv50_vmm_join(struct nvkm_vmm *vmm, struct nvkm_memory *inst)
u64 data;
u32 pdei;
- if (!(join = kmalloc(sizeof(*join), GFP_KERNEL)))
+ if (!(join = kmalloc_obj(*join, GFP_KERNEL)))
return -ENOMEM;
join->inst = inst;
list_add_tail(&join->head, &vmm->join);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c
index c1acfe642da3..6d6c4b831a58 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c
@@ -238,7 +238,7 @@ nvkm_mxm_new_(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
u8 ver, len;
u16 data;
- if (!(mxm = *pmxm = kzalloc(sizeof(*mxm), GFP_KERNEL)))
+ if (!(mxm = *pmxm = kzalloc_obj(*mxm, GFP_KERNEL)))
return -ENOMEM;
nvkm_subdev_ctor(&nvkm_mxm, device, type, inst, &mxm->subdev);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c
index 0f3e0d324a52..f357d777bc96 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c
@@ -162,7 +162,7 @@ nvkm_pci_new_(const struct nvkm_pci_func *func, struct nvkm_device *device,
{
struct nvkm_pci *pci;
- if (!(pci = *ppci = kzalloc(sizeof(**ppci), GFP_KERNEL)))
+ if (!(pci = *ppci = kzalloc_obj(**ppci, GFP_KERNEL)))
return -ENOMEM;
nvkm_subdev_ctor(&nvkm_pci_func, device, type, inst, &pci->subdev);
pci->func = func;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c
index 9e9004ec4588..0d7cfd73ff17 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c
@@ -161,7 +161,7 @@ nvkm_pmu_new_(const struct nvkm_pmu_fwif *fwif, struct nvkm_device *device,
enum nvkm_subdev_type type, int inst, struct nvkm_pmu **ppmu)
{
struct nvkm_pmu *pmu;
- if (!(pmu = *ppmu = kzalloc(sizeof(*pmu), GFP_KERNEL)))
+ if (!(pmu = *ppmu = kzalloc_obj(*pmu, GFP_KERNEL)))
return -ENOMEM;
return nvkm_pmu_ctor(fwif, device, type, inst, *ppmu);
}
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c
index b5e52b35f5d0..46abf56cc830 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c
@@ -215,7 +215,7 @@ gk20a_pmu_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct gk20a_pmu *pmu;
int ret;
- if (!(pmu = kzalloc(sizeof(*pmu), GFP_KERNEL)))
+ if (!(pmu = kzalloc_obj(*pmu, GFP_KERNEL)))
return -ENOMEM;
*ppmu = &pmu->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/memx.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/memx.c
index 22eaebefced3..0fed890a8f95 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/memx.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/memx.c
@@ -53,7 +53,7 @@ nvkm_memx_init(struct nvkm_pmu *pmu, struct nvkm_memx **pmemx)
if (ret)
return ret;
- memx = *pmemx = kzalloc(sizeof(*memx), GFP_KERNEL);
+ memx = *pmemx = kzalloc_obj(*memx, GFP_KERNEL);
if (!memx)
return -ENOMEM;
memx->pmu = pmu;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
index 1510aba33956..2613f5872bcd 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
@@ -447,7 +447,7 @@ nvkm_therm_new_(const struct nvkm_therm_func *func, struct nvkm_device *device,
{
struct nvkm_therm *therm;
- if (!(therm = *ptherm = kzalloc(sizeof(*therm), GFP_KERNEL)))
+ if (!(therm = *ptherm = kzalloc_obj(*therm, GFP_KERNEL)))
return -ENOMEM;
nvkm_therm_ctor(therm, device, type, inst, func);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fannil.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fannil.c
index 8ae300f911b6..92737c2770b6 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fannil.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fannil.c
@@ -40,7 +40,7 @@ nvkm_fannil_create(struct nvkm_therm *therm)
{
struct nvkm_fan *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
therm->fan = priv;
if (!priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
index b13ba9b2f6be..aa13cd45785a 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
@@ -97,7 +97,7 @@ nvkm_fanpwm_create(struct nvkm_therm *therm, struct dcb_gpio_func *func)
therm->func->pwm_get(therm, func->line, &divs, &duty) == -ENODEV)
return -ENODEV;
- fan = kzalloc(sizeof(*fan), GFP_KERNEL);
+ fan = kzalloc_obj(*fan, GFP_KERNEL);
if (!fan)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
index bfdf4ca5625c..6cfe7fee54f0 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
@@ -99,7 +99,7 @@ nvkm_fantog_create(struct nvkm_therm *therm, struct dcb_gpio_func *func)
return ret;
}
- fan = kzalloc(sizeof(*fan), GFP_KERNEL);
+ fan = kzalloc_obj(*fan, GFP_KERNEL);
if (!fan)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
index 45e295c271fb..f58f4add5ef3 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.c
@@ -112,7 +112,7 @@ gk104_therm_new_(const struct nvkm_therm_func *func, struct nvkm_device *device,
const struct gf100_idle_filter *idle_filter,
struct nvkm_therm **ptherm)
{
- struct gk104_therm *therm = kzalloc(sizeof(*therm), GFP_KERNEL);
+ struct gk104_therm *therm = kzalloc_obj(*therm, GFP_KERNEL);
if (!therm)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
index ddb2b2c600ca..b828dec2e3e7 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
@@ -119,7 +119,7 @@ nvkm_therm_sensor_event(struct nvkm_therm *therm, enum nvkm_therm_thrs thrs,
if (active) {
struct work_struct *work;
- work = kmalloc(sizeof(*work), GFP_ATOMIC);
+ work = kmalloc_obj(*work, GFP_ATOMIC);
if (work) {
INIT_WORK(work, nv_poweroff_work);
schedule_work(work);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c
index a5c3c282b5d0..dcb4763e1c08 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c
@@ -187,7 +187,7 @@ nvkm_timer_new_(const struct nvkm_timer_func *func, struct nvkm_device *device,
{
struct nvkm_timer *tmr;
- if (!(tmr = *ptmr = kzalloc(sizeof(*tmr), GFP_KERNEL)))
+ if (!(tmr = *ptmr = kzalloc_obj(*tmr, GFP_KERNEL)))
return -ENOMEM;
nvkm_subdev_ctor(&nvkm_timer, device, type, inst, &tmr->subdev);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/top/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/top/base.c
index eb348dfc1d7a..fb55ff2b2a46 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/top/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/top/base.c
@@ -26,7 +26,7 @@
struct nvkm_top_device *
nvkm_top_device_new(struct nvkm_top *top)
{
- struct nvkm_top_device *info = kmalloc(sizeof(*info), GFP_KERNEL);
+ struct nvkm_top_device *info = kmalloc_obj(*info, GFP_KERNEL);
if (info) {
info->type = NVKM_SUBDEV_NR;
info->inst = -1;
@@ -152,7 +152,7 @@ nvkm_top_new_(const struct nvkm_top_func *func, struct nvkm_device *device,
enum nvkm_subdev_type type, int inst, struct nvkm_top **ptop)
{
struct nvkm_top *top;
- if (!(top = *ptop = kzalloc(sizeof(*top), GFP_KERNEL)))
+ if (!(top = *ptop = kzalloc_obj(*top, GFP_KERNEL)))
return -ENOMEM;
nvkm_subdev_ctor(&nvkm_top, device, type, inst, &top->subdev);
top->func = func;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/vfn/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/vfn/base.c
index 62e81d551f44..3d584be9e201 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/vfn/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/vfn/base.c
@@ -39,7 +39,7 @@ nvkm_vfn_new_(const struct nvkm_vfn_func *func, struct nvkm_device *device,
struct nvkm_vfn *vfn;
int ret;
- if (!(vfn = *pvfn = kzalloc(sizeof(*vfn), GFP_KERNEL)))
+ if (!(vfn = *pvfn = kzalloc_obj(*vfn, GFP_KERNEL)))
return -ENOMEM;
nvkm_subdev_ctor(&nvkm_vfn, device, type, inst, &vfn->subdev);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/vfn/r535.c b/drivers/gpu/drm/nouveau/nvkm/subdev/vfn/r535.c
index d294844d9eae..e01ea0dcd529 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/vfn/r535.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/vfn/r535.c
@@ -38,7 +38,7 @@ r535_vfn_new(const struct nvkm_vfn_func *hw,
struct nvkm_vfn_func *rm;
int ret;
- if (!(rm = kzalloc(sizeof(*rm), GFP_KERNEL)))
+ if (!(rm = kzalloc_obj(*rm, GFP_KERNEL)))
return -ENOMEM;
rm->dtor = r535_vfn_dtor;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/vfn/uvfn.c b/drivers/gpu/drm/nouveau/nvkm/subdev/vfn/uvfn.c
index 4e64d8843373..27fd15559796 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/vfn/uvfn.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/vfn/uvfn.c
@@ -56,7 +56,7 @@ nvkm_uvfn_new(struct nvkm_device *device, const struct nvkm_oclass *oclass,
if (argc != 0)
return -ENOSYS;
- if (!(uvfn = kzalloc(sizeof(*uvfn), GFP_KERNEL)))
+ if (!(uvfn = kzalloc_obj(*uvfn, GFP_KERNEL)))
return -ENOMEM;
nvkm_object_ctor(&nvkm_uvfn, oclass, &uvfn->object);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c
index 803b98df4858..8bb3761e547b 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c
@@ -321,7 +321,7 @@ int
nvkm_volt_new_(const struct nvkm_volt_func *func, struct nvkm_device *device,
enum nvkm_subdev_type type, int inst, struct nvkm_volt **pvolt)
{
- if (!(*pvolt = kzalloc(sizeof(**pvolt), GFP_KERNEL)))
+ if (!(*pvolt = kzalloc_obj(**pvolt, GFP_KERNEL)))
return -ENOMEM;
nvkm_volt_ctor(func, device, type, inst, *pvolt);
return 0;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk104.c b/drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk104.c
index d1ce4309cfb8..5146666ea0f5 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk104.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk104.c
@@ -113,7 +113,7 @@ gk104_volt_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
volt_func = &gk104_volt_pwm;
}
- if (!(volt = kzalloc(sizeof(*volt), GFP_KERNEL)))
+ if (!(volt = kzalloc_obj(*volt, GFP_KERNEL)))
return -ENOMEM;
nvkm_volt_ctor(volt_func, device, type, inst, &volt->base);
*pvolt = &volt->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.c
index ccac88da8864..5941a1eeabd9 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.c
@@ -176,7 +176,7 @@ gk20a_volt_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
{
struct gk20a_volt *volt;
- volt = kzalloc(sizeof(*volt), GFP_KERNEL);
+ volt = kzalloc_obj(*volt, GFP_KERNEL);
if (!volt)
return -ENOMEM;
*pvolt = &volt->base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/volt/gm20b.c b/drivers/gpu/drm/nouveau/nvkm/subdev/volt/gm20b.c
index c2e9694d333f..7348acb147bf 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/volt/gm20b.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/volt/gm20b.c
@@ -77,7 +77,7 @@ gm20b_volt_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
return -EINVAL;
}
- volt = kzalloc(sizeof(*volt), GFP_KERNEL);
+ volt = kzalloc_obj(*volt, GFP_KERNEL);
if (!volt)
return -ENOMEM;
*pvolt = &volt->base;
diff --git a/drivers/gpu/drm/omapdrm/dss/dispc.c b/drivers/gpu/drm/omapdrm/dss/dispc.c
index cf055815077c..c3cca5234f67 100644
--- a/drivers/gpu/drm/omapdrm/dss/dispc.c
+++ b/drivers/gpu/drm/omapdrm/dss/dispc.c
@@ -4603,7 +4603,7 @@ static int dispc_bind(struct device *dev, struct device *master, void *data)
int r = 0;
struct device_node *np = pdev->dev.of_node;
- dispc = kzalloc(sizeof(*dispc), GFP_KERNEL);
+ dispc = kzalloc_obj(*dispc, GFP_KERNEL);
if (!dispc)
return -ENOMEM;
diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c
index b129e5a8d791..1269978ba292 100644
--- a/drivers/gpu/drm/omapdrm/dss/dsi.c
+++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
@@ -1041,7 +1041,7 @@ static int dsi_dump_dsi_irqs(struct seq_file *s, void *p)
unsigned long flags;
struct dsi_irq_stats *stats;
- stats = kmalloc(sizeof(*stats), GFP_KERNEL);
+ stats = kmalloc_obj(*stats, GFP_KERNEL);
if (!stats)
return -ENOMEM;
diff --git a/drivers/gpu/drm/omapdrm/dss/dss.c b/drivers/gpu/drm/omapdrm/dss/dss.c
index 692df747e2ae..791d88933084 100644
--- a/drivers/gpu/drm/omapdrm/dss/dss.c
+++ b/drivers/gpu/drm/omapdrm/dss/dss.c
@@ -928,7 +928,7 @@ dss_debugfs_create_file(struct dss_device *dss, const char *name,
{
struct dss_debugfs_entry *entry;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return ERR_PTR(-ENOMEM);
@@ -1419,7 +1419,7 @@ static int dss_probe(struct platform_device *pdev)
struct dss_device *dss;
int r;
- dss = kzalloc(sizeof(*dss), GFP_KERNEL);
+ dss = kzalloc_obj(*dss, GFP_KERNEL);
if (!dss)
return -ENOMEM;
diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
index 1c2a1920c0a6..ba730242ad74 100644
--- a/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -716,7 +716,7 @@ static void omap_crtc_reset(struct drm_crtc *crtc)
kfree(crtc->state);
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state)
__drm_atomic_helper_crtc_reset(crtc, &state->base);
}
@@ -731,7 +731,7 @@ omap_crtc_duplicate_state(struct drm_crtc *crtc)
current_state = to_omap_crtc_state(crtc->state);
- state = kmalloc(sizeof(*state), GFP_KERNEL);
+ state = kmalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
@@ -793,7 +793,7 @@ struct drm_crtc *omap_crtc_init(struct drm_device *dev,
DBG("%s", channel_names[channel]);
- omap_crtc = kzalloc(sizeof(*omap_crtc), GFP_KERNEL);
+ omap_crtc = kzalloc_obj(*omap_crtc, GFP_KERNEL);
if (!omap_crtc)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
index bbe427ab43c1..8312c4d14348 100644
--- a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
+++ b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
@@ -536,7 +536,7 @@ struct tiler_block *tiler_reserve_2d(enum tiler_fmt fmt, u16 w,
unsigned long flags;
u32 slot_bytes;
- block = kzalloc(sizeof(*block), GFP_KERNEL);
+ block = kzalloc_obj(*block, GFP_KERNEL);
if (!block)
return ERR_PTR(-ENOMEM);
@@ -571,7 +571,7 @@ struct tiler_block *tiler_reserve_2d(enum tiler_fmt fmt, u16 w,
struct tiler_block *tiler_reserve_1d(size_t size)
{
- struct tiler_block *block = kzalloc(sizeof(*block), GFP_KERNEL);
+ struct tiler_block *block = kzalloc_obj(*block, GFP_KERNEL);
int num_pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT;
unsigned long flags;
@@ -774,7 +774,7 @@ static int omap_dmm_probe(struct platform_device *dev)
u32 hwinfo, pat_geom;
struct resource *mem;
- omap_dmm = kzalloc(sizeof(*omap_dmm), GFP_KERNEL);
+ omap_dmm = kzalloc_obj(*omap_dmm, GFP_KERNEL);
if (!omap_dmm)
goto fail;
@@ -885,8 +885,8 @@ static int omap_dmm_probe(struct platform_device *dev)
}
/* alloc engines */
- omap_dmm->engines = kcalloc(omap_dmm->num_engines,
- sizeof(*omap_dmm->engines), GFP_KERNEL);
+ omap_dmm->engines = kzalloc_objs(*omap_dmm->engines,
+ omap_dmm->num_engines, GFP_KERNEL);
if (!omap_dmm->engines) {
ret = -ENOMEM;
goto fail;
@@ -904,8 +904,8 @@ static int omap_dmm_probe(struct platform_device *dev)
list_add(&omap_dmm->engines[i].idle_node, &omap_dmm->idle_head);
}
- omap_dmm->tcm = kcalloc(omap_dmm->num_lut, sizeof(*omap_dmm->tcm),
- GFP_KERNEL);
+ omap_dmm->tcm = kzalloc_objs(*omap_dmm->tcm, omap_dmm->num_lut,
+ GFP_KERNEL);
if (!omap_dmm->tcm) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index 1b96343226a5..206018aab88e 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -146,7 +146,7 @@ static int omap_atomic_update_normalize_zpos(struct drm_device *dev,
struct drm_plane_state **states;
int ret = 0;
- states = kmalloc_array(total_planes, sizeof(*states), GFP_KERNEL);
+ states = kmalloc_objs(*states, total_planes, GFP_KERNEL);
if (!states)
return -ENOMEM;
@@ -285,7 +285,7 @@ static int omap_global_obj_init(struct drm_device *dev)
struct omap_drm_private *priv = dev->dev_private;
struct omap_global_state *state;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return -ENOMEM;
@@ -798,7 +798,7 @@ static int pdev_probe(struct platform_device *pdev)
}
/* Allocate and initialize the driver private structure. */
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/omapdrm/omap_encoder.c b/drivers/gpu/drm/omapdrm/omap_encoder.c
index 195715b162e3..2577ba92b1b9 100644
--- a/drivers/gpu/drm/omapdrm/omap_encoder.c
+++ b/drivers/gpu/drm/omapdrm/omap_encoder.c
@@ -122,7 +122,7 @@ struct drm_encoder *omap_encoder_init(struct drm_device *dev,
struct drm_encoder *encoder = NULL;
struct omap_encoder *omap_encoder;
- omap_encoder = kzalloc(sizeof(*omap_encoder), GFP_KERNEL);
+ omap_encoder = kzalloc_obj(*omap_encoder, GFP_KERNEL);
if (!omap_encoder)
goto fail;
diff --git a/drivers/gpu/drm/omapdrm/omap_fb.c b/drivers/gpu/drm/omapdrm/omap_fb.c
index b8c249ec1891..c3b1bea75f7f 100644
--- a/drivers/gpu/drm/omapdrm/omap_fb.c
+++ b/drivers/gpu/drm/omapdrm/omap_fb.c
@@ -390,7 +390,7 @@ struct drm_framebuffer *omap_framebuffer_init(struct drm_device *dev,
goto fail;
}
- omap_fb = kzalloc(sizeof(*omap_fb), GFP_KERNEL);
+ omap_fb = kzalloc_obj(*omap_fb, GFP_KERNEL);
if (!omap_fb) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/gpu/drm/omapdrm/omap_gem.c b/drivers/gpu/drm/omapdrm/omap_gem.c
index 71e79f53489a..63c4bfc9a5c0 100644
--- a/drivers/gpu/drm/omapdrm/omap_gem.c
+++ b/drivers/gpu/drm/omapdrm/omap_gem.c
@@ -254,7 +254,7 @@ static int omap_gem_attach_pages(struct drm_gem_object *obj)
* DSS, GPU, etc. are not cache coherent:
*/
if (omap_obj->flags & (OMAP_BO_WC|OMAP_BO_UNCACHED)) {
- addrs = kmalloc_array(npages, sizeof(*addrs), GFP_KERNEL);
+ addrs = kmalloc_objs(*addrs, npages, GFP_KERNEL);
if (!addrs) {
ret = -ENOMEM;
goto free_pages;
@@ -278,7 +278,7 @@ static int omap_gem_attach_pages(struct drm_gem_object *obj)
}
}
} else {
- addrs = kcalloc(npages, sizeof(*addrs), GFP_KERNEL);
+ addrs = kzalloc_objs(*addrs, npages, GFP_KERNEL);
if (!addrs) {
ret = -ENOMEM;
goto free_pages;
@@ -989,7 +989,7 @@ struct sg_table *omap_gem_get_sg(struct drm_gem_object *obj,
if (sgt)
goto out;
- sgt = kzalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kzalloc_obj(*sgt, GFP_KERNEL);
if (!sgt) {
ret = -ENOMEM;
goto err_unpin;
@@ -1319,7 +1319,7 @@ struct drm_gem_object *omap_gem_new(struct drm_device *dev,
}
/* Allocate the initialize the OMAP GEM object. */
- omap_obj = kzalloc(sizeof(*omap_obj), GFP_KERNEL);
+ omap_obj = kzalloc_obj(*omap_obj, GFP_KERNEL);
if (!omap_obj)
return NULL;
@@ -1410,7 +1410,7 @@ struct drm_gem_object *omap_gem_new_dmabuf(struct drm_device *dev, size_t size,
unsigned int ret;
npages = DIV_ROUND_UP(size, PAGE_SIZE);
- pages = kcalloc(npages, sizeof(*pages), GFP_KERNEL);
+ pages = kzalloc_objs(*pages, npages, GFP_KERNEL);
if (!pages) {
omap_gem_free_object(obj);
return ERR_PTR(-ENOMEM);
@@ -1470,7 +1470,7 @@ void omap_gem_init(struct drm_device *dev)
return;
}
- usergart = kcalloc(3, sizeof(*usergart), GFP_KERNEL);
+ usergart = kzalloc_objs(*usergart, 3, GFP_KERNEL);
if (!usergart)
return;
diff --git a/drivers/gpu/drm/omapdrm/omap_irq.c b/drivers/gpu/drm/omapdrm/omap_irq.c
index 943c5307da00..b1da72838824 100644
--- a/drivers/gpu/drm/omapdrm/omap_irq.c
+++ b/drivers/gpu/drm/omapdrm/omap_irq.c
@@ -43,7 +43,7 @@ struct omap_irq_wait * omap_irq_wait_init(struct drm_device *dev,
u32 irqmask, int count)
{
struct omap_drm_private *priv = dev->dev_private;
- struct omap_irq_wait *wait = kzalloc(sizeof(*wait), GFP_KERNEL);
+ struct omap_irq_wait *wait = kzalloc_obj(*wait, GFP_KERNEL);
unsigned long flags;
init_waitqueue_head(&wait->wq);
diff --git a/drivers/gpu/drm/omapdrm/omap_overlay.c b/drivers/gpu/drm/omapdrm/omap_overlay.c
index 6fb7510cbebb..3b673662bf99 100644
--- a/drivers/gpu/drm/omapdrm/omap_overlay.c
+++ b/drivers/gpu/drm/omapdrm/omap_overlay.c
@@ -159,7 +159,7 @@ static struct omap_hw_overlay *omap_overlay_init(enum omap_plane_id overlay_id,
{
struct omap_hw_overlay *overlay;
- overlay = kzalloc(sizeof(*overlay), GFP_KERNEL);
+ overlay = kzalloc_obj(*overlay, GFP_KERNEL);
if (!overlay)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c
index f9698890c989..ff2c692c3ede 100644
--- a/drivers/gpu/drm/omapdrm/omap_plane.c
+++ b/drivers/gpu/drm/omapdrm/omap_plane.c
@@ -410,7 +410,7 @@ static void omap_plane_reset(struct drm_plane *plane)
if (plane->state)
drm_atomic_helper_plane_destroy_state(plane, plane->state);
- omap_state = kzalloc(sizeof(*omap_state), GFP_KERNEL);
+ omap_state = kzalloc_obj(*omap_state, GFP_KERNEL);
if (!omap_state)
return;
@@ -427,7 +427,7 @@ omap_plane_atomic_duplicate_state(struct drm_plane *plane)
current_state = to_omap_plane_state(plane->state);
- state = kmalloc(sizeof(*state), GFP_KERNEL);
+ state = kmalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
@@ -533,7 +533,7 @@ struct drm_plane *omap_plane_init(struct drm_device *dev,
if (WARN_ON(idx >= num_planes))
return ERR_PTR(-EINVAL);
- omap_plane = kzalloc(sizeof(*omap_plane), GFP_KERNEL);
+ omap_plane = kzalloc_obj(*omap_plane, GFP_KERNEL);
if (!omap_plane)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
index 2f58a9b0773a..191d909f5845 100644
--- a/drivers/gpu/drm/panfrost/panfrost_drv.c
+++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
@@ -207,9 +207,8 @@ panfrost_lookup_bos(struct drm_device *dev,
if (ret)
return ret;
- job->mappings = kvmalloc_array(job->bo_count,
- sizeof(struct panfrost_gem_mapping *),
- GFP_KERNEL | __GFP_ZERO);
+ job->mappings = kvmalloc_objs(struct panfrost_gem_mapping *,
+ job->bo_count, GFP_KERNEL | __GFP_ZERO);
if (!job->mappings)
return -ENOMEM;
@@ -317,7 +316,7 @@ static int panfrost_ioctl_submit(struct drm_device *dev, void *data,
goto out_put_syncout;
}
- job = kzalloc(sizeof(*job), GFP_KERNEL);
+ job = kzalloc_obj(*job, GFP_KERNEL);
if (!job) {
ret = -ENOMEM;
goto out_put_jm_ctx;
@@ -598,7 +597,7 @@ static int panfrost_ioctl_sync_bo(struct drm_device *ddev, void *data,
if (!args->op_count)
return 0;
- ops = kvmalloc_array(args->op_count, sizeof(*ops), GFP_KERNEL);
+ ops = kvmalloc_objs(*ops, args->op_count, GFP_KERNEL);
if (!ops) {
DRM_DEBUG("Failed to allocate incoming BO sync ops array\n");
return -ENOMEM;
@@ -683,7 +682,7 @@ panfrost_open(struct drm_device *dev, struct drm_file *file)
struct panfrost_device *pfdev = to_panfrost_device(dev);
struct panfrost_file_priv *panfrost_priv;
- panfrost_priv = kzalloc(sizeof(*panfrost_priv), GFP_KERNEL);
+ panfrost_priv = kzalloc_obj(*panfrost_priv, GFP_KERNEL);
if (!panfrost_priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/panfrost/panfrost_gem.c b/drivers/gpu/drm/panfrost/panfrost_gem.c
index 47ac8386aabc..a70847a73f98 100644
--- a/drivers/gpu/drm/panfrost/panfrost_gem.c
+++ b/drivers/gpu/drm/panfrost/panfrost_gem.c
@@ -175,7 +175,7 @@ int panfrost_gem_open(struct drm_gem_object *obj, struct drm_file *file_priv)
struct panfrost_file_priv *priv = file_priv->driver_priv;
struct panfrost_gem_mapping *mapping;
- mapping = kzalloc(sizeof(*mapping), GFP_KERNEL);
+ mapping = kzalloc_obj(*mapping, GFP_KERNEL);
if (!mapping)
return -ENOMEM;
@@ -429,7 +429,7 @@ struct drm_gem_object *panfrost_gem_create_object(struct drm_device *dev, size_t
struct panfrost_device *pfdev = to_panfrost_device(dev);
struct panfrost_gem_object *obj;
- obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ obj = kzalloc_obj(*obj, GFP_KERNEL);
if (!obj)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/panfrost/panfrost_job.c b/drivers/gpu/drm/panfrost/panfrost_job.c
index 11894a6b9fcc..862acf9c8422 100644
--- a/drivers/gpu/drm/panfrost/panfrost_job.c
+++ b/drivers/gpu/drm/panfrost/panfrost_job.c
@@ -95,7 +95,7 @@ static struct dma_fence *panfrost_fence_create(struct panfrost_device *pfdev, in
struct panfrost_fence *fence;
struct panfrost_job_slot *js = pfdev->js;
- fence = kzalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kzalloc_obj(*fence, GFP_KERNEL);
if (!fence)
return ERR_PTR(-ENOMEM);
@@ -1053,7 +1053,7 @@ int panfrost_jm_ctx_create(struct drm_file *file,
struct panfrost_jm_ctx *jm_ctx;
int ret;
- jm_ctx = kzalloc(sizeof(*jm_ctx), GFP_KERNEL);
+ jm_ctx = kzalloc_obj(*jm_ctx, GFP_KERNEL);
if (!jm_ctx)
return -ENOMEM;
diff --git a/drivers/gpu/drm/panfrost/panfrost_mmu.c b/drivers/gpu/drm/panfrost/panfrost_mmu.c
index 50ff30849361..71eef57af549 100644
--- a/drivers/gpu/drm/panfrost/panfrost_mmu.c
+++ b/drivers/gpu/drm/panfrost/panfrost_mmu.c
@@ -620,14 +620,16 @@ static int panfrost_mmu_map_fault_addr(struct panfrost_device *pfdev, int as,
dma_resv_lock(obj->resv, NULL);
if (!bo->base.pages) {
- bo->sgts = kvmalloc_array(bo->base.base.size / SZ_2M,
- sizeof(struct sg_table), GFP_KERNEL | __GFP_ZERO);
+ bo->sgts = kvmalloc_objs(struct sg_table,
+ bo->base.base.size / SZ_2M,
+ GFP_KERNEL | __GFP_ZERO);
if (!bo->sgts) {
ret = -ENOMEM;
goto err_unlock;
}
- pages = kvmalloc_array(nr_pages, sizeof(struct page *), GFP_KERNEL | __GFP_ZERO);
+ pages = kvmalloc_objs(struct page *, nr_pages,
+ GFP_KERNEL | __GFP_ZERO);
if (!pages) {
kvfree(bo->sgts);
bo->sgts = NULL;
@@ -792,7 +794,7 @@ struct panfrost_mmu *panfrost_mmu_ctx_create(struct panfrost_device *pfdev)
fmt = ARM_MALI_LPAE;
}
- mmu = kzalloc(sizeof(*mmu), GFP_KERNEL);
+ mmu = kzalloc_obj(*mmu, GFP_KERNEL);
if (!mmu)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/panthor/panthor_drv.c b/drivers/gpu/drm/panthor/panthor_drv.c
index 165dddfde6ca..e1e51daba356 100644
--- a/drivers/gpu/drm/panthor/panthor_drv.c
+++ b/drivers/gpu/drm/panthor/panthor_drv.c
@@ -382,7 +382,7 @@ panthor_submit_ctx_add_sync_signal(struct panthor_submit_ctx *ctx, u32 handle, u
struct dma_fence *cur_fence;
int ret;
- sig_sync = kzalloc(sizeof(*sig_sync), GFP_KERNEL);
+ sig_sync = kzalloc_obj(*sig_sync, GFP_KERNEL);
if (!sig_sync)
return -ENOMEM;
@@ -723,8 +723,8 @@ panthor_submit_ctx_push_jobs(struct panthor_submit_ctx *ctx,
static int panthor_submit_ctx_init(struct panthor_submit_ctx *ctx,
struct drm_file *file, u32 job_count)
{
- ctx->jobs = kvmalloc_array(job_count, sizeof(*ctx->jobs),
- GFP_KERNEL | __GFP_ZERO);
+ ctx->jobs = kvmalloc_objs(*ctx->jobs, job_count,
+ GFP_KERNEL | __GFP_ZERO);
if (!ctx->jobs)
return -ENOMEM;
@@ -1471,7 +1471,7 @@ panthor_open(struct drm_device *ddev, struct drm_file *file)
struct panthor_file *pfile;
int ret;
- pfile = kzalloc(sizeof(*pfile), GFP_KERNEL);
+ pfile = kzalloc_obj(*pfile, GFP_KERNEL);
if (!pfile)
return -ENOMEM;
diff --git a/drivers/gpu/drm/panthor/panthor_gem.c b/drivers/gpu/drm/panthor/panthor_gem.c
index 2c215efb5320..3d94f9cc94d6 100644
--- a/drivers/gpu/drm/panthor/panthor_gem.c
+++ b/drivers/gpu/drm/panthor/panthor_gem.c
@@ -183,7 +183,7 @@ panthor_kernel_bo_create(struct panthor_device *ptdev, struct panthor_vm *vm,
if (drm_WARN_ON(&ptdev->base, !vm))
return ERR_PTR(-EINVAL);
- kbo = kzalloc(sizeof(*kbo), GFP_KERNEL);
+ kbo = kzalloc_obj(*kbo, GFP_KERNEL);
if (!kbo)
return ERR_PTR(-ENOMEM);
@@ -399,7 +399,7 @@ struct drm_gem_object *panthor_gem_create_object(struct drm_device *ddev, size_t
{
struct panthor_gem_object *obj;
- obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ obj = kzalloc_obj(*obj, GFP_KERNEL);
if (!obj)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/panthor/panthor_heap.c b/drivers/gpu/drm/panthor/panthor_heap.c
index 0b6ff4c0a11b..ded9cb83842c 100644
--- a/drivers/gpu/drm/panthor/panthor_heap.c
+++ b/drivers/gpu/drm/panthor/panthor_heap.c
@@ -145,7 +145,7 @@ static int panthor_alloc_heap_chunk(struct panthor_heap_pool *pool,
struct panthor_heap_chunk_header *hdr;
int ret;
- chunk = kmalloc(sizeof(*chunk), GFP_KERNEL);
+ chunk = kmalloc_obj(*chunk, GFP_KERNEL);
if (!chunk)
return -ENOMEM;
@@ -303,7 +303,7 @@ int panthor_heap_create(struct panthor_heap_pool *pool,
if (!vm)
return -EINVAL;
- heap = kzalloc(sizeof(*heap), GFP_KERNEL);
+ heap = kzalloc_obj(*heap, GFP_KERNEL);
if (!heap) {
ret = -ENOMEM;
goto err_put_vm;
@@ -541,7 +541,7 @@ panthor_heap_pool_create(struct panthor_device *ptdev, struct panthor_vm *vm)
struct panthor_heap_pool *pool;
int ret = 0;
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/panthor/panthor_mmu.c b/drivers/gpu/drm/panthor/panthor_mmu.c
index 198d59f42578..c482bbe6fffd 100644
--- a/drivers/gpu/drm/panthor/panthor_mmu.c
+++ b/drivers/gpu/drm/panthor/panthor_mmu.c
@@ -1159,7 +1159,7 @@ panthor_vm_op_ctx_prealloc_vmas(struct panthor_vm_op_ctx *op_ctx)
}
for (u32 i = 0; i < vma_count; i++) {
- struct panthor_vma *vma = kzalloc(sizeof(*vma), GFP_KERNEL);
+ struct panthor_vma *vma = kzalloc_obj(*vma, GFP_KERNEL);
if (!vma)
return -ENOMEM;
@@ -1257,9 +1257,8 @@ static int panthor_vm_prepare_map_op_ctx(struct panthor_vm_op_ctx *op_ctx,
((ALIGN(va + size, 1ull << 30) - ALIGN_DOWN(va, 1ull << 30)) >> 30) +
((ALIGN(va + size, 1ull << 21) - ALIGN_DOWN(va, 1ull << 21)) >> 21);
- op_ctx->rsvd_page_tables.pages = kcalloc(pt_count,
- sizeof(*op_ctx->rsvd_page_tables.pages),
- GFP_KERNEL);
+ op_ctx->rsvd_page_tables.pages = kzalloc_objs(*op_ctx->rsvd_page_tables.pages,
+ pt_count, GFP_KERNEL);
if (!op_ctx->rsvd_page_tables.pages) {
ret = -ENOMEM;
goto err_cleanup;
@@ -1312,9 +1311,9 @@ static int panthor_vm_prepare_unmap_op_ctx(struct panthor_vm_op_ctx *op_ctx,
goto err_cleanup;
if (pt_count) {
- op_ctx->rsvd_page_tables.pages = kcalloc(pt_count,
- sizeof(*op_ctx->rsvd_page_tables.pages),
- GFP_KERNEL);
+ op_ctx->rsvd_page_tables.pages = kzalloc_objs(*op_ctx->rsvd_page_tables.pages,
+ pt_count,
+ GFP_KERNEL);
if (!op_ctx->rsvd_page_tables.pages) {
ret = -ENOMEM;
goto err_cleanup;
@@ -1587,7 +1586,7 @@ void panthor_vm_pool_destroy(struct panthor_file *pfile)
*/
int panthor_vm_pool_create(struct panthor_file *pfile)
{
- pfile->vms = kzalloc(sizeof(*pfile->vms), GFP_KERNEL);
+ pfile->vms = kzalloc_obj(*pfile->vms, GFP_KERNEL);
if (!pfile->vms)
return -ENOMEM;
@@ -2426,7 +2425,7 @@ panthor_vm_create(struct panthor_device *ptdev, bool for_mcu,
struct panthor_vm *vm;
int ret;
- vm = kzalloc(sizeof(*vm), GFP_KERNEL);
+ vm = kzalloc_obj(*vm, GFP_KERNEL);
if (!vm)
return ERR_PTR(-ENOMEM);
@@ -2609,7 +2608,7 @@ panthor_vm_bind_job_create(struct drm_file *file,
if (vm->destroyed || vm->unusable)
return ERR_PTR(-EINVAL);
- job = kzalloc(sizeof(*job), GFP_KERNEL);
+ job = kzalloc_obj(*job, GFP_KERNEL);
if (!job)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/panthor/panthor_sched.c b/drivers/gpu/drm/panthor/panthor_sched.c
index ca272dbae14d..e40d7be90bb9 100644
--- a/drivers/gpu/drm/panthor/panthor_sched.c
+++ b/drivers/gpu/drm/panthor/panthor_sched.c
@@ -3512,7 +3512,7 @@ group_create_queue(struct panthor_group *group,
if (args->priority > CSF_MAX_QUEUE_PRIO)
return ERR_PTR(-EINVAL);
- queue = kzalloc(sizeof(*queue), GFP_KERNEL);
+ queue = kzalloc_obj(*queue, GFP_KERNEL);
if (!queue)
return ERR_PTR(-ENOMEM);
@@ -3659,7 +3659,7 @@ int panthor_group_create(struct panthor_file *pfile,
hweight64(group_args->tiler_core_mask) < group_args->max_tiler_cores)
return -EINVAL;
- group = kzalloc(sizeof(*group), GFP_KERNEL);
+ group = kzalloc_obj(*group, GFP_KERNEL);
if (!group)
return -ENOMEM;
@@ -3853,7 +3853,7 @@ int panthor_group_pool_create(struct panthor_file *pfile)
{
struct panthor_group_pool *gpool;
- gpool = kzalloc(sizeof(*gpool), GFP_KERNEL);
+ gpool = kzalloc_obj(*gpool, GFP_KERNEL);
if (!gpool)
return -ENOMEM;
@@ -3979,7 +3979,7 @@ panthor_job_create(struct panthor_file *pfile,
if (qsubmit->latest_flush & GENMASK(30, 24))
return ERR_PTR(-EINVAL);
- job = kzalloc(sizeof(*job), GFP_KERNEL);
+ job = kzalloc_obj(*job, GFP_KERNEL);
if (!job)
return ERR_PTR(-ENOMEM);
@@ -4011,7 +4011,7 @@ panthor_job_create(struct panthor_file *pfile,
* the previously submitted job.
*/
if (job->call_info.size) {
- job->done_fence = kzalloc(sizeof(*job->done_fence), GFP_KERNEL);
+ job->done_fence = kzalloc_obj(*job->done_fence, GFP_KERNEL);
if (!job->done_fence) {
ret = -ENOMEM;
goto err_put_job;
diff --git a/drivers/gpu/drm/qxl/qxl_cmd.c b/drivers/gpu/drm/qxl/qxl_cmd.c
index 2e3200db2f39..47c7f4e68dc6 100644
--- a/drivers/gpu/drm/qxl/qxl_cmd.c
+++ b/drivers/gpu/drm/qxl/qxl_cmd.c
@@ -63,7 +63,7 @@ qxl_ring_create(struct qxl_ring_header *header,
{
struct qxl_ring *ring;
- ring = kmalloc(sizeof(*ring), GFP_KERNEL);
+ ring = kmalloc_obj(*ring, GFP_KERNEL);
if (!ring)
return NULL;
diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
index a134820aac58..3b6e48b28480 100644
--- a/drivers/gpu/drm/qxl/qxl_display.c
+++ b/drivers/gpu/drm/qxl/qxl_display.c
@@ -58,9 +58,9 @@ static int qxl_alloc_client_monitors_config(struct qxl_device *qdev,
qdev->client_monitors_config = NULL;
}
if (!qdev->client_monitors_config) {
- qdev->client_monitors_config = kzalloc(
- struct_size(qdev->client_monitors_config,
- heads, count), GFP_KERNEL);
+ qdev->client_monitors_config = kzalloc_flex(*qdev->client_monitors_config,
+ heads, count,
+ GFP_KERNEL);
if (!qdev->client_monitors_config)
return -ENOMEM;
}
@@ -1008,7 +1008,7 @@ static int qdev_crtc_init(struct drm_device *dev, int crtc_id)
struct qxl_device *qdev = to_qxl(dev);
int r;
- qxl_crtc = kzalloc(sizeof(struct qxl_crtc), GFP_KERNEL);
+ qxl_crtc = kzalloc_obj(struct qxl_crtc, GFP_KERNEL);
if (!qxl_crtc)
return -ENOMEM;
@@ -1159,7 +1159,7 @@ static int qdev_output_init(struct drm_device *dev, int num_output)
struct drm_encoder *encoder;
int ret;
- qxl_output = kzalloc(sizeof(struct qxl_output), GFP_KERNEL);
+ qxl_output = kzalloc_obj(struct qxl_output, GFP_KERNEL);
if (!qxl_output)
return -ENOMEM;
@@ -1241,8 +1241,8 @@ int qxl_create_monitors_object(struct qxl_device *qdev)
qxl_bo_physical_address(qdev, qdev->monitors_config_bo, 0);
memset(qdev->monitors_config, 0, monitors_config_size);
- qdev->dumb_heads = kcalloc(qxl_num_crtc, sizeof(qdev->dumb_heads[0]),
- GFP_KERNEL);
+ qdev->dumb_heads = kzalloc_objs(qdev->dumb_heads[0], qxl_num_crtc,
+ GFP_KERNEL);
if (!qdev->dumb_heads) {
qxl_destroy_monitors_object(qdev);
return -ENOMEM;
diff --git a/drivers/gpu/drm/qxl/qxl_image.c b/drivers/gpu/drm/qxl/qxl_image.c
index 3cc45997533d..01c56913b582 100644
--- a/drivers/gpu/drm/qxl/qxl_image.c
+++ b/drivers/gpu/drm/qxl/qxl_image.c
@@ -40,7 +40,7 @@ qxl_allocate_chunk(struct qxl_device *qdev,
struct qxl_drm_chunk *chunk;
int ret;
- chunk = kmalloc(sizeof(struct qxl_drm_chunk), GFP_KERNEL);
+ chunk = kmalloc_obj(struct qxl_drm_chunk, GFP_KERNEL);
if (!chunk)
return -ENOMEM;
@@ -63,7 +63,7 @@ qxl_image_alloc_objects(struct qxl_device *qdev,
struct qxl_drm_image *image;
int ret;
- image = kmalloc(sizeof(struct qxl_drm_image), GFP_KERNEL);
+ image = kmalloc_obj(struct qxl_drm_image, GFP_KERNEL);
if (!image)
return -ENOMEM;
diff --git a/drivers/gpu/drm/qxl/qxl_ioctl.c b/drivers/gpu/drm/qxl/qxl_ioctl.c
index 336cbff26089..7370fb7f4f5f 100644
--- a/drivers/gpu/drm/qxl/qxl_ioctl.c
+++ b/drivers/gpu/drm/qxl/qxl_ioctl.c
@@ -168,8 +168,8 @@ static int qxl_process_single_command(struct qxl_device *qdev,
cmd->command_size))
return -EFAULT;
- reloc_info = kmalloc_array(cmd->relocs_num,
- sizeof(struct qxl_reloc_info), GFP_KERNEL);
+ reloc_info = kmalloc_objs(struct qxl_reloc_info, cmd->relocs_num,
+ GFP_KERNEL);
if (!reloc_info)
return -ENOMEM;
diff --git a/drivers/gpu/drm/qxl/qxl_object.c b/drivers/gpu/drm/qxl/qxl_object.c
index 66635c55cf85..14b325703034 100644
--- a/drivers/gpu/drm/qxl/qxl_object.c
+++ b/drivers/gpu/drm/qxl/qxl_object.c
@@ -116,7 +116,7 @@ int qxl_bo_create(struct qxl_device *qdev, unsigned long size,
else
type = ttm_bo_type_device;
*bo_ptr = NULL;
- bo = kzalloc(sizeof(struct qxl_bo), GFP_KERNEL);
+ bo = kzalloc_obj(struct qxl_bo, GFP_KERNEL);
if (bo == NULL)
return -ENOMEM;
size = roundup(size, PAGE_SIZE);
diff --git a/drivers/gpu/drm/qxl/qxl_release.c b/drivers/gpu/drm/qxl/qxl_release.c
index 7b3c9a6016db..ec2b1120aef9 100644
--- a/drivers/gpu/drm/qxl/qxl_release.c
+++ b/drivers/gpu/drm/qxl/qxl_release.c
@@ -177,7 +177,7 @@ int qxl_release_list_add(struct qxl_release *release, struct qxl_bo *bo)
return 0;
}
- entry = kmalloc(sizeof(struct qxl_bo_list), GFP_KERNEL);
+ entry = kmalloc_obj(struct qxl_bo_list, GFP_KERNEL);
if (!entry)
return -ENOMEM;
diff --git a/drivers/gpu/drm/qxl/qxl_ttm.c b/drivers/gpu/drm/qxl/qxl_ttm.c
index 1a40590077dd..7ac5e40ac851 100644
--- a/drivers/gpu/drm/qxl/qxl_ttm.c
+++ b/drivers/gpu/drm/qxl/qxl_ttm.c
@@ -109,7 +109,7 @@ static struct ttm_tt *qxl_ttm_tt_create(struct ttm_buffer_object *bo,
{
struct ttm_tt *ttm;
- ttm = kzalloc(sizeof(struct ttm_tt), GFP_KERNEL);
+ ttm = kzalloc_obj(struct ttm_tt, GFP_KERNEL);
if (ttm == NULL)
return NULL;
if (ttm_tt_init(ttm, bo, page_flags, ttm_cached, 0)) {
diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c
index b31125eb9a65..01bbbde30914 100644
--- a/drivers/gpu/drm/radeon/atom.c
+++ b/drivers/gpu/drm/radeon/atom.c
@@ -1281,7 +1281,7 @@ struct atom_context *atom_parse(struct card_info *card, void *bios)
{
int base;
struct atom_context *ctx =
- kzalloc(sizeof(struct atom_context), GFP_KERNEL);
+ kzalloc_obj(struct atom_context, GFP_KERNEL);
char *str;
char name[512];
int i;
diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
index 3d9f47bc807a..0ed85b5dd193 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -218,7 +218,7 @@ void radeon_atom_backlight_init(struct radeon_encoder *radeon_encoder,
return;
}
- pdata = kmalloc(sizeof(struct radeon_backlight_privdata), GFP_KERNEL);
+ pdata = kmalloc_obj(struct radeon_backlight_privdata, GFP_KERNEL);
if (!pdata) {
DRM_ERROR("Memory allocation failed\n");
goto error;
@@ -2625,7 +2625,8 @@ radeon_atombios_set_dac_info(struct radeon_encoder *radeon_encoder)
{
struct drm_device *dev = radeon_encoder->base.dev;
struct radeon_device *rdev = dev->dev_private;
- struct radeon_encoder_atom_dac *dac = kzalloc(sizeof(struct radeon_encoder_atom_dac), GFP_KERNEL);
+ struct radeon_encoder_atom_dac *dac = kzalloc_obj(struct radeon_encoder_atom_dac,
+ GFP_KERNEL);
if (!dac)
return NULL;
@@ -2638,7 +2639,8 @@ static struct radeon_encoder_atom_dig *
radeon_atombios_set_dig_info(struct radeon_encoder *radeon_encoder)
{
int encoder_enum = (radeon_encoder->encoder_enum & ENUM_ID_MASK) >> ENUM_ID_SHIFT;
- struct radeon_encoder_atom_dig *dig = kzalloc(sizeof(struct radeon_encoder_atom_dig), GFP_KERNEL);
+ struct radeon_encoder_atom_dig *dig = kzalloc_obj(struct radeon_encoder_atom_dig,
+ GFP_KERNEL);
if (!dig)
return NULL;
@@ -2676,7 +2678,7 @@ radeon_add_atom_encoder(struct drm_device *dev,
}
/* add a new one */
- radeon_encoder = kzalloc(sizeof(struct radeon_encoder), GFP_KERNEL);
+ radeon_encoder = kzalloc_obj(struct radeon_encoder, GFP_KERNEL);
if (!radeon_encoder)
return;
diff --git a/drivers/gpu/drm/radeon/btc_dpm.c b/drivers/gpu/drm/radeon/btc_dpm.c
index 70931b04bbac..36486a9c7b06 100644
--- a/drivers/gpu/drm/radeon/btc_dpm.c
+++ b/drivers/gpu/drm/radeon/btc_dpm.c
@@ -1992,7 +1992,7 @@ static int btc_initialize_mc_reg_table(struct radeon_device *rdev)
struct evergreen_mc_reg_table *eg_table = &eg_pi->mc_reg_table;
u8 module_index = rv770_get_memory_module_index(rdev);
- table = kzalloc(sizeof(struct atom_mc_reg_table), GFP_KERNEL);
+ table = kzalloc_obj(struct atom_mc_reg_table, GFP_KERNEL);
if (!table)
return -ENOMEM;
@@ -2526,7 +2526,7 @@ int btc_dpm_init(struct radeon_device *rdev)
struct atom_clock_dividers dividers;
int ret;
- eg_pi = kzalloc(sizeof(struct evergreen_power_info), GFP_KERNEL);
+ eg_pi = kzalloc_obj(struct evergreen_power_info, GFP_KERNEL);
if (eg_pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = eg_pi;
@@ -2552,9 +2552,8 @@ int btc_dpm_init(struct radeon_device *rdev)
return ret;
rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries =
- kcalloc(4,
- sizeof(struct radeon_clock_voltage_dependency_entry),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_clock_voltage_dependency_entry, 4,
+ GFP_KERNEL);
if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) {
r600_free_extended_power_table(rdev);
return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/ci_dpm.c b/drivers/gpu/drm/radeon/ci_dpm.c
index ba8db1d07c07..f8de657c3ed0 100644
--- a/drivers/gpu/drm/radeon/ci_dpm.c
+++ b/drivers/gpu/drm/radeon/ci_dpm.c
@@ -4579,7 +4579,7 @@ static int ci_initialize_mc_reg_table(struct radeon_device *rdev)
u8 module_index = rv770_get_memory_module_index(rdev);
int ret;
- table = kzalloc(sizeof(struct atom_mc_reg_table), GFP_KERNEL);
+ table = kzalloc_obj(struct atom_mc_reg_table, GFP_KERNEL);
if (!table)
return -ENOMEM;
@@ -5517,9 +5517,8 @@ static int ci_parse_power_table(struct radeon_device *rdev)
(mode_info->atom_context->bios + data_offset +
le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
- rdev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ state_array->ucNumEntries, GFP_KERNEL);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
power_state_offset = (u8 *)state_array->states;
@@ -5534,7 +5533,7 @@ static int ci_parse_power_table(struct radeon_device *rdev)
ret = -EINVAL;
goto err_free_ps;
}
- ps = kzalloc(sizeof(struct ci_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct ci_ps, GFP_KERNEL);
if (ps == NULL) {
ret = -ENOMEM;
goto err_free_ps;
@@ -5638,7 +5637,7 @@ int ci_dpm_init(struct radeon_device *rdev)
struct pci_dev *root = rdev->pdev->bus->self;
int ret;
- pi = kzalloc(sizeof(struct ci_power_info), GFP_KERNEL);
+ pi = kzalloc_obj(struct ci_power_info, GFP_KERNEL);
if (pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = pi;
@@ -5741,9 +5740,8 @@ int ci_dpm_init(struct radeon_device *rdev)
ci_set_private_data_variables_based_on_pptable(rdev);
rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries =
- kcalloc(4,
- sizeof(struct radeon_clock_voltage_dependency_entry),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_clock_voltage_dependency_entry, 4,
+ GFP_KERNEL);
if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) {
ci_dpm_fini(rdev);
return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/cypress_dpm.c b/drivers/gpu/drm/radeon/cypress_dpm.c
index 72a0768df00f..1fe0eecb3ea3 100644
--- a/drivers/gpu/drm/radeon/cypress_dpm.c
+++ b/drivers/gpu/drm/radeon/cypress_dpm.c
@@ -2028,7 +2028,7 @@ int cypress_dpm_init(struct radeon_device *rdev)
struct atom_clock_dividers dividers;
int ret;
- eg_pi = kzalloc(sizeof(struct evergreen_power_info), GFP_KERNEL);
+ eg_pi = kzalloc_obj(struct evergreen_power_info, GFP_KERNEL);
if (eg_pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = eg_pi;
diff --git a/drivers/gpu/drm/radeon/evergreen_cs.c b/drivers/gpu/drm/radeon/evergreen_cs.c
index 1162cb5d75ed..257caf19583a 100644
--- a/drivers/gpu/drm/radeon/evergreen_cs.c
+++ b/drivers/gpu/drm/radeon/evergreen_cs.c
@@ -2769,7 +2769,7 @@ int evergreen_cs_parse(struct radeon_cs_parser *p)
if (p->track == NULL) {
/* initialize tracker, we are in kms */
- track = kzalloc(sizeof(*track), GFP_KERNEL);
+ track = kzalloc_obj(*track, GFP_KERNEL);
if (track == NULL)
return -ENOMEM;
evergreen_cs_track_init(track);
diff --git a/drivers/gpu/drm/radeon/kv_dpm.c b/drivers/gpu/drm/radeon/kv_dpm.c
index 4aa050385284..7c896c24f03d 100644
--- a/drivers/gpu/drm/radeon/kv_dpm.c
+++ b/drivers/gpu/drm/radeon/kv_dpm.c
@@ -2457,9 +2457,8 @@ static int kv_parse_power_table(struct radeon_device *rdev)
(mode_info->atom_context->bios + data_offset +
le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
- rdev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ state_array->ucNumEntries, GFP_KERNEL);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
power_state_offset = (u8 *)state_array->states;
@@ -2471,7 +2470,7 @@ static int kv_parse_power_table(struct radeon_device *rdev)
&non_clock_info_array->nonClockInfo[non_clock_array_index];
if (!rdev->pm.power_state[i].clock_info)
return -EINVAL;
- ps = kzalloc(sizeof(struct kv_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct kv_ps, GFP_KERNEL);
if (ps == NULL) {
kfree(rdev->pm.dpm.ps);
return -ENOMEM;
@@ -2520,7 +2519,7 @@ int kv_dpm_init(struct radeon_device *rdev)
struct kv_power_info *pi;
int ret, i;
- pi = kzalloc(sizeof(struct kv_power_info), GFP_KERNEL);
+ pi = kzalloc_obj(struct kv_power_info, GFP_KERNEL);
if (pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = pi;
diff --git a/drivers/gpu/drm/radeon/ni_dpm.c b/drivers/gpu/drm/radeon/ni_dpm.c
index 82edbfb259bf..c4305bacd47d 100644
--- a/drivers/gpu/drm/radeon/ni_dpm.c
+++ b/drivers/gpu/drm/radeon/ni_dpm.c
@@ -2104,7 +2104,7 @@ static int ni_init_smc_spll_table(struct radeon_device *rdev)
if (ni_pi->spll_table_start == 0)
return -EINVAL;
- spll_table = kzalloc(sizeof(SMC_NISLANDS_SPLL_DIV_TABLE), GFP_KERNEL);
+ spll_table = kzalloc_obj(SMC_NISLANDS_SPLL_DIV_TABLE, GFP_KERNEL);
if (spll_table == NULL)
return -ENOMEM;
@@ -2879,7 +2879,7 @@ static int ni_initialize_mc_reg_table(struct radeon_device *rdev)
struct ni_mc_reg_table *ni_table = &ni_pi->mc_reg_table;
u8 module_index = rv770_get_memory_module_index(rdev);
- table = kzalloc(sizeof(struct atom_mc_reg_table), GFP_KERNEL);
+ table = kzalloc_obj(struct atom_mc_reg_table, GFP_KERNEL);
if (!table)
return -ENOMEM;
@@ -3147,7 +3147,7 @@ static int ni_initialize_smc_cac_tables(struct radeon_device *rdev)
if (ni_pi->enable_cac == false)
return 0;
- cac_tables = kzalloc(sizeof(PP_NIslands_CACTABLES), GFP_KERNEL);
+ cac_tables = kzalloc_obj(PP_NIslands_CACTABLES, GFP_KERNEL);
if (!cac_tables)
return -ENOMEM;
@@ -4000,9 +4000,9 @@ static int ni_parse_power_table(struct radeon_device *rdev)
return -EINVAL;
power_info = (union power_info *)(mode_info->atom_context->bios + data_offset);
- rdev->pm.dpm.ps = kcalloc(power_info->pplib.ucNumStates,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ power_info->pplib.ucNumStates,
+ GFP_KERNEL);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
@@ -4018,7 +4018,7 @@ static int ni_parse_power_table(struct radeon_device *rdev)
power_info->pplib.ucNonClockSize));
if (power_info->pplib.ucStateEntrySize - 1) {
u8 *idx;
- ps = kzalloc(sizeof(struct ni_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct ni_ps, GFP_KERNEL);
if (ps == NULL) {
kfree(rdev->pm.dpm.ps);
return -ENOMEM;
@@ -4051,7 +4051,7 @@ int ni_dpm_init(struct radeon_device *rdev)
struct atom_clock_dividers dividers;
int ret;
- ni_pi = kzalloc(sizeof(struct ni_power_info), GFP_KERNEL);
+ ni_pi = kzalloc_obj(struct ni_power_info, GFP_KERNEL);
if (ni_pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = ni_pi;
@@ -4078,9 +4078,8 @@ int ni_dpm_init(struct radeon_device *rdev)
return ret;
rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries =
- kcalloc(4,
- sizeof(struct radeon_clock_voltage_dependency_entry),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_clock_voltage_dependency_entry, 4,
+ GFP_KERNEL);
if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) {
r600_free_extended_power_table(rdev);
return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
index 07a9c523a17a..53d336b15662 100644
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
@@ -2063,7 +2063,7 @@ int r100_cs_parse(struct radeon_cs_parser *p)
struct r100_cs_track *track;
int r;
- track = kzalloc(sizeof(*track), GFP_KERNEL);
+ track = kzalloc_obj(*track, GFP_KERNEL);
if (!track)
return -ENOMEM;
r100_cs_track_clear(p->rdev, track);
diff --git a/drivers/gpu/drm/radeon/r300.c b/drivers/gpu/drm/radeon/r300.c
index d2ee6deec039..aad94b49671c 100644
--- a/drivers/gpu/drm/radeon/r300.c
+++ b/drivers/gpu/drm/radeon/r300.c
@@ -1284,7 +1284,7 @@ int r300_cs_parse(struct radeon_cs_parser *p)
struct r100_cs_track *track;
int r;
- track = kzalloc(sizeof(*track), GFP_KERNEL);
+ track = kzalloc_obj(*track, GFP_KERNEL);
if (track == NULL)
return -ENOMEM;
r100_cs_track_clear(p->rdev, track);
diff --git a/drivers/gpu/drm/radeon/r600_cs.c b/drivers/gpu/drm/radeon/r600_cs.c
index 8eeceeeca362..5db10ad3fd8b 100644
--- a/drivers/gpu/drm/radeon/r600_cs.c
+++ b/drivers/gpu/drm/radeon/r600_cs.c
@@ -2282,7 +2282,7 @@ int r600_cs_parse(struct radeon_cs_parser *p)
if (p->track == NULL) {
/* initialize tracker, we are in kms */
- track = kzalloc(sizeof(*track), GFP_KERNEL);
+ track = kzalloc_obj(*track, GFP_KERNEL);
if (track == NULL)
return -ENOMEM;
r600_cs_track_init(track);
diff --git a/drivers/gpu/drm/radeon/r600_dpm.c b/drivers/gpu/drm/radeon/r600_dpm.c
index 81d58ef667dd..cfe851bf1848 100644
--- a/drivers/gpu/drm/radeon/r600_dpm.c
+++ b/drivers/gpu/drm/radeon/r600_dpm.c
@@ -821,9 +821,9 @@ static int r600_parse_clk_voltage_dep_table(struct radeon_clock_voltage_dependen
int i;
ATOM_PPLIB_Clock_Voltage_Dependency_Record *entry;
- radeon_table->entries = kcalloc(atom_table->ucNumEntries,
- sizeof(struct radeon_clock_voltage_dependency_entry),
- GFP_KERNEL);
+ radeon_table->entries = kzalloc_objs(struct radeon_clock_voltage_dependency_entry,
+ atom_table->ucNumEntries,
+ GFP_KERNEL);
if (!radeon_table->entries)
return -ENOMEM;
@@ -988,9 +988,8 @@ int r600_parse_extended_power_table(struct radeon_device *rdev)
ATOM_PPLIB_PhaseSheddingLimits_Record *entry;
rdev->pm.dpm.dyn_state.phase_shedding_limits_table.entries =
- kcalloc(psl->ucNumEntries,
- sizeof(struct radeon_phase_shedding_limits_entry),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_phase_shedding_limits_entry,
+ psl->ucNumEntries, GFP_KERNEL);
if (!rdev->pm.dpm.dyn_state.phase_shedding_limits_table.entries) {
r600_free_extended_power_table(rdev);
return -ENOMEM;
@@ -1198,7 +1197,7 @@ int r600_parse_extended_power_table(struct radeon_device *rdev)
(mode_info->atom_context->bios + data_offset +
le16_to_cpu(ext_hdr->usPPMTableOffset));
rdev->pm.dpm.dyn_state.ppm_table =
- kzalloc(sizeof(struct radeon_ppm_table), GFP_KERNEL);
+ kzalloc_obj(struct radeon_ppm_table, GFP_KERNEL);
if (!rdev->pm.dpm.dyn_state.ppm_table) {
r600_free_extended_power_table(rdev);
return -ENOMEM;
@@ -1256,7 +1255,8 @@ int r600_parse_extended_power_table(struct radeon_device *rdev)
le16_to_cpu(ext_hdr->usPowerTuneTableOffset));
ATOM_PowerTune_Table *pt;
rdev->pm.dpm.dyn_state.cac_tdp_table =
- kzalloc(sizeof(struct radeon_cac_tdp_table), GFP_KERNEL);
+ kzalloc_obj(struct radeon_cac_tdp_table,
+ GFP_KERNEL);
if (!rdev->pm.dpm.dyn_state.cac_tdp_table) {
r600_free_extended_power_table(rdev);
return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/radeon_agp.c b/drivers/gpu/drm/radeon/radeon_agp.c
index 89d7b0e9e79f..fb75d0bb8726 100644
--- a/drivers/gpu/drm/radeon/radeon_agp.c
+++ b/drivers/gpu/drm/radeon/radeon_agp.c
@@ -132,7 +132,7 @@ struct radeon_agp_head *radeon_agp_head_init(struct drm_device *dev)
struct pci_dev *pdev = to_pci_dev(dev->dev);
struct radeon_agp_head *head;
- head = kzalloc(sizeof(*head), GFP_KERNEL);
+ head = kzalloc_obj(*head, GFP_KERNEL);
if (!head)
return NULL;
head->bridge = agp_find_bridge(pdev);
diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
index 81a0a91921b9..35c37b6054ad 100644
--- a/drivers/gpu/drm/radeon/radeon_atombios.c
+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -1632,7 +1632,7 @@ struct radeon_encoder_atom_dig *radeon_atombios_get_lvds_info(struct
lvds_info =
(union lvds_info *)(mode_info->atom_context->bios + data_offset);
lvds =
- kzalloc(sizeof(struct radeon_encoder_atom_dig), GFP_KERNEL);
+ kzalloc_obj(struct radeon_encoder_atom_dig, GFP_KERNEL);
if (!lvds)
return NULL;
@@ -1773,7 +1773,8 @@ radeon_atombios_get_primary_dac_info(struct radeon_encoder *encoder)
dac_info = (struct _COMPASSIONATE_DATA *)
(mode_info->atom_context->bios + data_offset);
- p_dac = kzalloc(sizeof(struct radeon_encoder_primary_dac), GFP_KERNEL);
+ p_dac = kzalloc_obj(struct radeon_encoder_primary_dac,
+ GFP_KERNEL);
if (!p_dac)
return NULL;
@@ -1960,7 +1961,7 @@ radeon_atombios_get_tv_dac_info(struct radeon_encoder *encoder)
dac_info = (struct _COMPASSIONATE_DATA *)
(mode_info->atom_context->bios + data_offset);
- tv_dac = kzalloc(sizeof(struct radeon_encoder_tv_dac), GFP_KERNEL);
+ tv_dac = kzalloc_obj(struct radeon_encoder_tv_dac, GFP_KERNEL);
if (!tv_dac)
return NULL;
@@ -2117,9 +2118,8 @@ static int radeon_atombios_parse_power_table_1_3(struct radeon_device *rdev)
num_modes = ATOM_MAX_NUMBEROF_POWER_BLOCK;
if (num_modes == 0)
return state_index;
- rdev->pm.power_state = kcalloc(num_modes,
- sizeof(struct radeon_power_state),
- GFP_KERNEL);
+ rdev->pm.power_state = kzalloc_objs(struct radeon_power_state,
+ num_modes, GFP_KERNEL);
if (!rdev->pm.power_state)
return state_index;
/* last mode is usually default, array is low to high */
@@ -2127,8 +2127,8 @@ static int radeon_atombios_parse_power_table_1_3(struct radeon_device *rdev)
/* avoid memory leaks from invalid modes or unknown frev. */
if (!rdev->pm.power_state[state_index].clock_info) {
rdev->pm.power_state[state_index].clock_info =
- kzalloc(sizeof(struct radeon_pm_clock_info),
- GFP_KERNEL);
+ kzalloc_obj(struct radeon_pm_clock_info,
+ GFP_KERNEL);
}
if (!rdev->pm.power_state[state_index].clock_info)
goto out;
@@ -2591,9 +2591,9 @@ static int radeon_atombios_parse_power_table_4_5(struct radeon_device *rdev)
radeon_atombios_add_pplib_thermal_controller(rdev, &power_info->pplib.sThermalController);
if (power_info->pplib.ucNumStates == 0)
return state_index;
- rdev->pm.power_state = kcalloc(power_info->pplib.ucNumStates,
- sizeof(struct radeon_power_state),
- GFP_KERNEL);
+ rdev->pm.power_state = kzalloc_objs(struct radeon_power_state,
+ power_info->pplib.ucNumStates,
+ GFP_KERNEL);
if (!rdev->pm.power_state)
return state_index;
/* first mode is usually default, followed by low to high */
@@ -2609,10 +2609,9 @@ static int radeon_atombios_parse_power_table_4_5(struct radeon_device *rdev)
(power_state->v1.ucNonClockStateIndex *
power_info->pplib.ucNonClockSize));
rdev->pm.power_state[i].clock_info =
- kcalloc((power_info->pplib.ucStateEntrySize - 1) ?
- (power_info->pplib.ucStateEntrySize - 1) : 1,
- sizeof(struct radeon_pm_clock_info),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_pm_clock_info,
+ (power_info->pplib.ucStateEntrySize - 1) ? (power_info->pplib.ucStateEntrySize - 1) : 1,
+ GFP_KERNEL);
if (!rdev->pm.power_state[i].clock_info)
return state_index;
if (power_info->pplib.ucStateEntrySize - 1) {
@@ -2694,9 +2693,9 @@ static int radeon_atombios_parse_power_table_6(struct radeon_device *rdev)
le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
if (state_array->ucNumEntries == 0)
return state_index;
- rdev->pm.power_state = kcalloc(state_array->ucNumEntries,
- sizeof(struct radeon_power_state),
- GFP_KERNEL);
+ rdev->pm.power_state = kzalloc_objs(struct radeon_power_state,
+ state_array->ucNumEntries,
+ GFP_KERNEL);
if (!rdev->pm.power_state)
return state_index;
power_state_offset = (u8 *)state_array->states;
@@ -2707,10 +2706,9 @@ static int radeon_atombios_parse_power_table_6(struct radeon_device *rdev)
non_clock_info = (struct _ATOM_PPLIB_NONCLOCK_INFO *)
&non_clock_info_array->nonClockInfo[non_clock_array_index];
rdev->pm.power_state[i].clock_info =
- kcalloc(power_state->v2.ucNumDPMLevels ?
- power_state->v2.ucNumDPMLevels : 1,
- sizeof(struct radeon_pm_clock_info),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_pm_clock_info,
+ power_state->v2.ucNumDPMLevels ? power_state->v2.ucNumDPMLevels : 1,
+ GFP_KERNEL);
if (!rdev->pm.power_state[i].clock_info)
return state_index;
if (power_state->v2.ucNumDPMLevels) {
@@ -2787,12 +2785,12 @@ void radeon_atombios_get_power_modes(struct radeon_device *rdev)
}
if (state_index == 0) {
- rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
+ rdev->pm.power_state = kzalloc_obj(struct radeon_power_state,
+ GFP_KERNEL);
if (rdev->pm.power_state) {
rdev->pm.power_state[0].clock_info =
- kcalloc(1,
- sizeof(struct radeon_pm_clock_info),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_pm_clock_info, 1,
+ GFP_KERNEL);
if (rdev->pm.power_state[0].clock_info) {
/* add the default mode */
rdev->pm.power_state[state_index].type =
diff --git a/drivers/gpu/drm/radeon/radeon_combios.c b/drivers/gpu/drm/radeon/radeon_combios.c
index df8d7f56b028..6cb0b7cfe510 100644
--- a/drivers/gpu/drm/radeon/radeon_combios.c
+++ b/drivers/gpu/drm/radeon/radeon_combios.c
@@ -851,8 +851,7 @@ struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct
struct radeon_encoder_primary_dac *p_dac;
int found = 0;
- p_dac = kzalloc(sizeof(struct radeon_encoder_primary_dac),
- GFP_KERNEL);
+ p_dac = kzalloc_obj(struct radeon_encoder_primary_dac, GFP_KERNEL);
if (!p_dac)
return NULL;
@@ -1002,7 +1001,7 @@ struct radeon_encoder_tv_dac *radeon_combios_get_tv_dac_info(struct
struct radeon_encoder_tv_dac *tv_dac;
int found = 0;
- tv_dac = kzalloc(sizeof(struct radeon_encoder_tv_dac), GFP_KERNEL);
+ tv_dac = kzalloc_obj(struct radeon_encoder_tv_dac, GFP_KERNEL);
if (!tv_dac)
return NULL;
@@ -1090,7 +1089,7 @@ static struct radeon_encoder_lvds *radeon_legacy_get_lvds_info_from_regs(struct
uint32_t ppll_div_sel, ppll_val;
uint32_t lvds_ss_gen_cntl = RREG32(RADEON_LVDS_SS_GEN_CNTL);
- lvds = kzalloc(sizeof(struct radeon_encoder_lvds), GFP_KERNEL);
+ lvds = kzalloc_obj(struct radeon_encoder_lvds, GFP_KERNEL);
if (!lvds)
return NULL;
@@ -1165,7 +1164,7 @@ struct radeon_encoder_lvds *radeon_combios_get_lvds_info(struct radeon_encoder
lcd_info = combios_get_table_offset(dev, COMBIOS_LCD_INFO_TABLE);
if (lcd_info) {
- lvds = kzalloc(sizeof(struct radeon_encoder_lvds), GFP_KERNEL);
+ lvds = kzalloc_obj(struct radeon_encoder_lvds, GFP_KERNEL);
if (!lvds)
return NULL;
@@ -2630,16 +2629,14 @@ void radeon_combios_get_power_modes(struct radeon_device *rdev)
rdev->pm.default_power_state_index = -1;
/* allocate 2 power states */
- rdev->pm.power_state = kcalloc(2, sizeof(struct radeon_power_state),
- GFP_KERNEL);
+ rdev->pm.power_state = kzalloc_objs(struct radeon_power_state, 2,
+ GFP_KERNEL);
if (rdev->pm.power_state) {
/* allocate 1 clock mode per state */
rdev->pm.power_state[0].clock_info =
- kcalloc(1, sizeof(struct radeon_pm_clock_info),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_pm_clock_info, 1, GFP_KERNEL);
rdev->pm.power_state[1].clock_info =
- kcalloc(1, sizeof(struct radeon_pm_clock_info),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_pm_clock_info, 1, GFP_KERNEL);
if (!rdev->pm.power_state[0].clock_info ||
!rdev->pm.power_state[1].clock_info)
goto pm_failed;
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
index 012d8b2295b8..e5bf06d7b981 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -1887,7 +1887,7 @@ radeon_add_atom_connector(struct drm_device *dev,
}
}
- radeon_connector = kzalloc(sizeof(struct radeon_connector), GFP_KERNEL);
+ radeon_connector = kzalloc_obj(struct radeon_connector, GFP_KERNEL);
if (!radeon_connector)
return;
@@ -1907,7 +1907,8 @@ radeon_add_atom_connector(struct drm_device *dev,
}
if (is_dp_bridge) {
- radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL);
+ radeon_dig_connector = kzalloc_obj(struct radeon_connector_atom_dig,
+ GFP_KERNEL);
if (!radeon_dig_connector)
goto failed;
radeon_dig_connector->igp_lane_info = igp_lane_info;
@@ -2078,7 +2079,8 @@ radeon_add_atom_connector(struct drm_device *dev,
break;
case DRM_MODE_CONNECTOR_DVII:
case DRM_MODE_CONNECTOR_DVID:
- radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL);
+ radeon_dig_connector = kzalloc_obj(struct radeon_connector_atom_dig,
+ GFP_KERNEL);
if (!radeon_dig_connector)
goto failed;
radeon_dig_connector->igp_lane_info = igp_lane_info;
@@ -2140,7 +2142,8 @@ radeon_add_atom_connector(struct drm_device *dev,
break;
case DRM_MODE_CONNECTOR_HDMIA:
case DRM_MODE_CONNECTOR_HDMIB:
- radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL);
+ radeon_dig_connector = kzalloc_obj(struct radeon_connector_atom_dig,
+ GFP_KERNEL);
if (!radeon_dig_connector)
goto failed;
radeon_dig_connector->igp_lane_info = igp_lane_info;
@@ -2195,7 +2198,8 @@ radeon_add_atom_connector(struct drm_device *dev,
connector->doublescan_allowed = false;
break;
case DRM_MODE_CONNECTOR_DisplayPort:
- radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL);
+ radeon_dig_connector = kzalloc_obj(struct radeon_connector_atom_dig,
+ GFP_KERNEL);
if (!radeon_dig_connector)
goto failed;
radeon_dig_connector->igp_lane_info = igp_lane_info;
@@ -2250,7 +2254,8 @@ radeon_add_atom_connector(struct drm_device *dev,
connector->doublescan_allowed = false;
break;
case DRM_MODE_CONNECTOR_eDP:
- radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL);
+ radeon_dig_connector = kzalloc_obj(struct radeon_connector_atom_dig,
+ GFP_KERNEL);
if (!radeon_dig_connector)
goto failed;
radeon_dig_connector->igp_lane_info = igp_lane_info;
@@ -2297,7 +2302,8 @@ radeon_add_atom_connector(struct drm_device *dev,
connector->doublescan_allowed = false;
break;
case DRM_MODE_CONNECTOR_LVDS:
- radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL);
+ radeon_dig_connector = kzalloc_obj(struct radeon_connector_atom_dig,
+ GFP_KERNEL);
if (!radeon_dig_connector)
goto failed;
radeon_dig_connector->igp_lane_info = igp_lane_info;
@@ -2379,7 +2385,7 @@ radeon_add_legacy_connector(struct drm_device *dev,
}
}
- radeon_connector = kzalloc(sizeof(struct radeon_connector), GFP_KERNEL);
+ radeon_connector = kzalloc_obj(struct radeon_connector, GFP_KERNEL);
if (!radeon_connector)
return;
diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c
index 3f9c0011244f..3b2cbd69b58b 100644
--- a/drivers/gpu/drm/radeon/radeon_cs.c
+++ b/drivers/gpu/drm/radeon/radeon_cs.c
@@ -93,8 +93,7 @@ static int radeon_cs_parser_relocs(struct radeon_cs_parser *p)
p->dma_reloc_idx = 0;
/* FIXME: we assume that each relocs use 4 dwords */
p->nrelocs = chunk->length_dw / 4;
- p->relocs = kvcalloc(p->nrelocs, sizeof(struct radeon_bo_list),
- GFP_KERNEL);
+ p->relocs = kvzalloc_objs(struct radeon_bo_list, p->nrelocs, GFP_KERNEL);
if (p->relocs == NULL) {
return -ENOMEM;
}
@@ -297,7 +296,8 @@ int radeon_cs_parser_init(struct radeon_cs_parser *p, void *data)
}
p->cs_flags = 0;
p->nchunks = cs->num_chunks;
- p->chunks = kvcalloc(p->nchunks, sizeof(struct radeon_cs_chunk), GFP_KERNEL);
+ p->chunks = kvzalloc_objs(struct radeon_cs_chunk, p->nchunks,
+ GFP_KERNEL);
if (p->chunks == NULL) {
return -ENOMEM;
}
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
index 5faae0361361..c58d24fe74f9 100644
--- a/drivers/gpu/drm/radeon/radeon_device.c
+++ b/drivers/gpu/drm/radeon/radeon_device.c
@@ -974,7 +974,7 @@ static uint32_t cail_ioreg_read(struct card_info *info, uint32_t reg)
int radeon_atombios_init(struct radeon_device *rdev)
{
struct card_info *atom_card_info =
- kzalloc(sizeof(struct card_info), GFP_KERNEL);
+ kzalloc_obj(struct card_info, GFP_KERNEL);
if (!atom_card_info)
return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index bc28117e01b4..4296ebd3dd94 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -494,7 +494,7 @@ static int radeon_crtc_page_flip_target(struct drm_crtc *crtc,
unsigned long flags;
int r;
- work = kzalloc(sizeof *work, GFP_KERNEL);
+ work = kzalloc_obj(*work, GFP_KERNEL);
if (work == NULL)
return -ENOMEM;
@@ -682,7 +682,7 @@ static void radeon_crtc_init(struct drm_device *dev, int index)
struct radeon_device *rdev = dev->dev_private;
struct radeon_crtc *radeon_crtc;
- radeon_crtc = kzalloc(sizeof(*radeon_crtc), GFP_KERNEL);
+ radeon_crtc = kzalloc_obj(*radeon_crtc, GFP_KERNEL);
if (radeon_crtc == NULL)
return;
@@ -1346,7 +1346,7 @@ radeon_user_framebuffer_create(struct drm_device *dev,
return ERR_PTR(-EINVAL);
}
- fb = kzalloc(sizeof(*fb), GFP_KERNEL);
+ fb = kzalloc_obj(*fb, GFP_KERNEL);
if (fb == NULL) {
drm_gem_object_put(obj);
return ERR_PTR(-ENOMEM);
@@ -1539,7 +1539,8 @@ static void radeon_afmt_init(struct radeon_device *rdev)
BUG_ON(num_afmt > ARRAY_SIZE(eg_offsets));
for (i = 0; i < num_afmt; i++) {
- rdev->mode_info.afmt[i] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL);
+ rdev->mode_info.afmt[i] = kzalloc_obj(struct radeon_afmt,
+ GFP_KERNEL);
if (rdev->mode_info.afmt[i]) {
rdev->mode_info.afmt[i]->offset = eg_offsets[i];
rdev->mode_info.afmt[i]->id = i;
@@ -1547,26 +1548,30 @@ static void radeon_afmt_init(struct radeon_device *rdev)
}
} else if (ASIC_IS_DCE3(rdev)) {
/* DCE3.x has 2 audio blocks tied to DIG encoders */
- rdev->mode_info.afmt[0] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL);
+ rdev->mode_info.afmt[0] = kzalloc_obj(struct radeon_afmt,
+ GFP_KERNEL);
if (rdev->mode_info.afmt[0]) {
rdev->mode_info.afmt[0]->offset = DCE3_HDMI_OFFSET0;
rdev->mode_info.afmt[0]->id = 0;
}
- rdev->mode_info.afmt[1] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL);
+ rdev->mode_info.afmt[1] = kzalloc_obj(struct radeon_afmt,
+ GFP_KERNEL);
if (rdev->mode_info.afmt[1]) {
rdev->mode_info.afmt[1]->offset = DCE3_HDMI_OFFSET1;
rdev->mode_info.afmt[1]->id = 1;
}
} else if (ASIC_IS_DCE2(rdev)) {
/* DCE2 has at least 1 routable audio block */
- rdev->mode_info.afmt[0] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL);
+ rdev->mode_info.afmt[0] = kzalloc_obj(struct radeon_afmt,
+ GFP_KERNEL);
if (rdev->mode_info.afmt[0]) {
rdev->mode_info.afmt[0]->offset = DCE2_HDMI_OFFSET0;
rdev->mode_info.afmt[0]->id = 0;
}
/* r6xx has 2 routable audio blocks */
if (rdev->family >= CHIP_R600) {
- rdev->mode_info.afmt[1] = kzalloc(sizeof(struct radeon_afmt), GFP_KERNEL);
+ rdev->mode_info.afmt[1] = kzalloc_obj(struct radeon_afmt,
+ GFP_KERNEL);
if (rdev->mode_info.afmt[1]) {
rdev->mode_info.afmt[1]->offset = DCE2_HDMI_OFFSET1;
rdev->mode_info.afmt[1]->id = 1;
diff --git a/drivers/gpu/drm/radeon/radeon_fbdev.c b/drivers/gpu/drm/radeon/radeon_fbdev.c
index fd083aaa91bb..9d760c221c5a 100644
--- a/drivers/gpu/drm/radeon/radeon_fbdev.c
+++ b/drivers/gpu/drm/radeon/radeon_fbdev.c
@@ -228,7 +228,7 @@ int radeon_fbdev_driver_fbdev_probe(struct drm_fb_helper *fb_helper,
}
rbo = gem_to_radeon_bo(gobj);
- fb = kzalloc(sizeof(*fb), GFP_KERNEL);
+ fb = kzalloc_obj(*fb, GFP_KERNEL);
if (!fb) {
ret = -ENOMEM;
goto err_radeon_fbdev_destroy_pinned_object;
diff --git a/drivers/gpu/drm/radeon/radeon_fence.c b/drivers/gpu/drm/radeon/radeon_fence.c
index 167d6f122b8e..6a13299089d5 100644
--- a/drivers/gpu/drm/radeon/radeon_fence.c
+++ b/drivers/gpu/drm/radeon/radeon_fence.c
@@ -137,7 +137,7 @@ int radeon_fence_emit(struct radeon_device *rdev,
u64 seq;
/* we are protected by the ring emission mutex */
- *fence = kmalloc(sizeof(struct radeon_fence), GFP_KERNEL);
+ *fence = kmalloc_obj(struct radeon_fence, GFP_KERNEL);
if ((*fence) == NULL)
return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/radeon_i2c.c b/drivers/gpu/drm/radeon/radeon_i2c.c
index f3ba4187092c..007d9353b1ab 100644
--- a/drivers/gpu/drm/radeon/radeon_i2c.c
+++ b/drivers/gpu/drm/radeon/radeon_i2c.c
@@ -912,7 +912,7 @@ struct radeon_i2c_chan *radeon_i2c_create(struct drm_device *dev,
if (rec->mm_i2c && (radeon_hw_i2c == 0))
return NULL;
- i2c = kzalloc(sizeof(struct radeon_i2c_chan), GFP_KERNEL);
+ i2c = kzalloc_obj(struct radeon_i2c_chan, GFP_KERNEL);
if (i2c == NULL)
return NULL;
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index 7cbe02ffb193..9833d77170fc 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -640,7 +640,7 @@ int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
/* new gpu have virtual address space support */
if (rdev->family >= CHIP_CAYMAN) {
- fpriv = kzalloc(sizeof(*fpriv), GFP_KERNEL);
+ fpriv = kzalloc_obj(*fpriv, GFP_KERNEL);
if (unlikely(!fpriv)) {
r = -ENOMEM;
goto err_suspend;
diff --git a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
index d1e8b9757a65..f2bb046a595e 100644
--- a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
+++ b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
@@ -394,7 +394,7 @@ void radeon_legacy_backlight_init(struct radeon_encoder *radeon_encoder,
return;
}
- pdata = kmalloc(sizeof(struct radeon_backlight_privdata), GFP_KERNEL);
+ pdata = kmalloc_obj(struct radeon_backlight_privdata, GFP_KERNEL);
if (!pdata) {
DRM_ERROR("Memory allocation failed\n");
goto error;
@@ -1695,7 +1695,7 @@ static struct radeon_encoder_int_tmds *radeon_legacy_get_tmds_info(struct radeon
struct radeon_encoder_int_tmds *tmds;
bool ret;
- tmds = kzalloc(sizeof(struct radeon_encoder_int_tmds), GFP_KERNEL);
+ tmds = kzalloc_obj(struct radeon_encoder_int_tmds, GFP_KERNEL);
if (!tmds)
return NULL;
@@ -1721,7 +1721,7 @@ static struct radeon_encoder_ext_tmds *radeon_legacy_get_ext_tmds_info(struct ra
if (rdev->is_atom_bios)
return NULL;
- tmds = kzalloc(sizeof(struct radeon_encoder_ext_tmds), GFP_KERNEL);
+ tmds = kzalloc_obj(struct radeon_encoder_ext_tmds, GFP_KERNEL);
if (!tmds)
return NULL;
@@ -1752,7 +1752,7 @@ radeon_add_legacy_encoder(struct drm_device *dev, uint32_t encoder_enum, uint32_
}
/* add a new one */
- radeon_encoder = kzalloc(sizeof(struct radeon_encoder), GFP_KERNEL);
+ radeon_encoder = kzalloc_obj(struct radeon_encoder, GFP_KERNEL);
if (!radeon_encoder)
return;
diff --git a/drivers/gpu/drm/radeon/radeon_semaphore.c b/drivers/gpu/drm/radeon/radeon_semaphore.c
index 1f0a9a4ff5ae..28331fef03c5 100644
--- a/drivers/gpu/drm/radeon/radeon_semaphore.c
+++ b/drivers/gpu/drm/radeon/radeon_semaphore.c
@@ -36,7 +36,7 @@ int radeon_semaphore_create(struct radeon_device *rdev,
{
int r;
- *semaphore = kmalloc(sizeof(struct radeon_semaphore), GFP_KERNEL);
+ *semaphore = kmalloc_obj(struct radeon_semaphore, GFP_KERNEL);
if (*semaphore == NULL) {
return -ENOMEM;
}
diff --git a/drivers/gpu/drm/radeon/radeon_test.c b/drivers/gpu/drm/radeon/radeon_test.c
index 818554e60537..cab04dccbd1d 100644
--- a/drivers/gpu/drm/radeon/radeon_test.c
+++ b/drivers/gpu/drm/radeon/radeon_test.c
@@ -60,7 +60,7 @@ static void radeon_do_test_moves(struct radeon_device *rdev, int flag)
n = rdev->mc.gtt_size - rdev->gart_pin_size;
n /= size;
- gtt_obj = kcalloc(n, sizeof(*gtt_obj), GFP_KERNEL);
+ gtt_obj = kzalloc_objs(*gtt_obj, n, GFP_KERNEL);
if (!gtt_obj) {
DRM_ERROR("Failed to allocate %d pointers\n", n);
r = 1;
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
index 695ac32f7535..4cb141b052b6 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -492,7 +492,7 @@ static struct ttm_tt *radeon_ttm_tt_create(struct ttm_buffer_object *bo,
#endif
rbo = container_of(bo, struct radeon_bo, tbo);
- gtt = kzalloc(sizeof(struct radeon_ttm_tt), GFP_KERNEL);
+ gtt = kzalloc_obj(struct radeon_ttm_tt, GFP_KERNEL);
if (gtt == NULL) {
return NULL;
}
@@ -533,7 +533,7 @@ static int radeon_ttm_tt_populate(struct ttm_device *bdev,
bool slave = !!(ttm->page_flags & TTM_TT_FLAG_EXTERNAL);
if (gtt && gtt->userptr) {
- ttm->sg = kzalloc(sizeof(struct sg_table), GFP_KERNEL);
+ ttm->sg = kzalloc_obj(struct sg_table, GFP_KERNEL);
if (!ttm->sg)
return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/radeon_vm.c b/drivers/gpu/drm/radeon/radeon_vm.c
index 21a5340aefdf..5be6cf123d8d 100644
--- a/drivers/gpu/drm/radeon/radeon_vm.c
+++ b/drivers/gpu/drm/radeon/radeon_vm.c
@@ -133,8 +133,8 @@ struct radeon_bo_list *radeon_vm_get_bos(struct radeon_device *rdev,
struct radeon_bo_list *list;
unsigned i, idx;
- list = kvmalloc_array(vm->max_pde_used + 2,
- sizeof(struct radeon_bo_list), GFP_KERNEL);
+ list = kvmalloc_objs(struct radeon_bo_list, vm->max_pde_used + 2,
+ GFP_KERNEL);
if (!list)
return NULL;
@@ -321,7 +321,7 @@ struct radeon_bo_va *radeon_vm_bo_add(struct radeon_device *rdev,
{
struct radeon_bo_va *bo_va;
- bo_va = kzalloc(sizeof(struct radeon_bo_va), GFP_KERNEL);
+ bo_va = kzalloc_obj(struct radeon_bo_va, GFP_KERNEL);
if (bo_va == NULL)
return NULL;
@@ -495,7 +495,7 @@ int radeon_vm_bo_set_addr(struct radeon_device *rdev,
if (bo_va->it.start || bo_va->it.last) {
/* add a clone of the bo_va to clear the old address */
struct radeon_bo_va *tmp;
- tmp = kzalloc(sizeof(struct radeon_bo_va), GFP_KERNEL);
+ tmp = kzalloc_obj(struct radeon_bo_va, GFP_KERNEL);
if (!tmp) {
mutex_unlock(&vm->mutex);
r = -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/rs780_dpm.c b/drivers/gpu/drm/radeon/rs780_dpm.c
index 24ad12409120..813ef291b349 100644
--- a/drivers/gpu/drm/radeon/rs780_dpm.c
+++ b/drivers/gpu/drm/radeon/rs780_dpm.c
@@ -804,9 +804,9 @@ static int rs780_parse_power_table(struct radeon_device *rdev)
return -EINVAL;
power_info = (union power_info *)(mode_info->atom_context->bios + data_offset);
- rdev->pm.dpm.ps = kcalloc(power_info->pplib.ucNumStates,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ power_info->pplib.ucNumStates,
+ GFP_KERNEL);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
@@ -826,7 +826,7 @@ static int rs780_parse_power_table(struct radeon_device *rdev)
le16_to_cpu(power_info->pplib.usClockInfoArrayOffset) +
(power_state->v1.ucClockStateIndices[0] *
power_info->pplib.ucClockInfoSize));
- ps = kzalloc(sizeof(struct igp_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct igp_ps, GFP_KERNEL);
if (ps == NULL) {
kfree(rdev->pm.dpm.ps);
return -ENOMEM;
@@ -853,7 +853,7 @@ int rs780_dpm_init(struct radeon_device *rdev)
u8 frev, crev;
int ret;
- pi = kzalloc(sizeof(struct igp_power_info), GFP_KERNEL);
+ pi = kzalloc_obj(struct igp_power_info, GFP_KERNEL);
if (pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = pi;
diff --git a/drivers/gpu/drm/radeon/rv6xx_dpm.c b/drivers/gpu/drm/radeon/rv6xx_dpm.c
index 69d380fff22a..2a4c5d79271b 100644
--- a/drivers/gpu/drm/radeon/rv6xx_dpm.c
+++ b/drivers/gpu/drm/radeon/rv6xx_dpm.c
@@ -1887,9 +1887,9 @@ static int rv6xx_parse_power_table(struct radeon_device *rdev)
return -EINVAL;
power_info = (union power_info *)(mode_info->atom_context->bios + data_offset);
- rdev->pm.dpm.ps = kcalloc(power_info->pplib.ucNumStates,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ power_info->pplib.ucNumStates,
+ GFP_KERNEL);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
@@ -1905,7 +1905,7 @@ static int rv6xx_parse_power_table(struct radeon_device *rdev)
power_info->pplib.ucNonClockSize));
if (power_info->pplib.ucStateEntrySize - 1) {
u8 *idx;
- ps = kzalloc(sizeof(struct rv6xx_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct rv6xx_ps, GFP_KERNEL);
if (ps == NULL) {
kfree(rdev->pm.dpm.ps);
return -ENOMEM;
@@ -1936,7 +1936,7 @@ int rv6xx_dpm_init(struct radeon_device *rdev)
struct rv6xx_power_info *pi;
int ret;
- pi = kzalloc(sizeof(struct rv6xx_power_info), GFP_KERNEL);
+ pi = kzalloc_obj(struct rv6xx_power_info, GFP_KERNEL);
if (pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = pi;
diff --git a/drivers/gpu/drm/radeon/rv770_dpm.c b/drivers/gpu/drm/radeon/rv770_dpm.c
index e3e1f6833f12..0de4b5171aac 100644
--- a/drivers/gpu/drm/radeon/rv770_dpm.c
+++ b/drivers/gpu/drm/radeon/rv770_dpm.c
@@ -2283,9 +2283,9 @@ int rv7xx_parse_power_table(struct radeon_device *rdev)
return -EINVAL;
power_info = (union power_info *)(mode_info->atom_context->bios + data_offset);
- rdev->pm.dpm.ps = kcalloc(power_info->pplib.ucNumStates,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ power_info->pplib.ucNumStates,
+ GFP_KERNEL);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
@@ -2301,7 +2301,7 @@ int rv7xx_parse_power_table(struct radeon_device *rdev)
power_info->pplib.ucNonClockSize));
if (power_info->pplib.ucStateEntrySize - 1) {
u8 *idx;
- ps = kzalloc(sizeof(struct rv7xx_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct rv7xx_ps, GFP_KERNEL);
if (ps == NULL) {
kfree(rdev->pm.dpm.ps);
return -ENOMEM;
@@ -2348,7 +2348,7 @@ int rv770_dpm_init(struct radeon_device *rdev)
struct atom_clock_dividers dividers;
int ret;
- pi = kzalloc(sizeof(struct rv7xx_power_info), GFP_KERNEL);
+ pi = kzalloc_obj(struct rv7xx_power_info, GFP_KERNEL);
if (pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = pi;
diff --git a/drivers/gpu/drm/radeon/si_dpm.c b/drivers/gpu/drm/radeon/si_dpm.c
index f12227145ef0..b7897f89dee8 100644
--- a/drivers/gpu/drm/radeon/si_dpm.c
+++ b/drivers/gpu/drm/radeon/si_dpm.c
@@ -2419,7 +2419,7 @@ static int si_initialize_smc_dte_tables(struct radeon_device *rdev)
if (dte_data->k <= 0)
return -EINVAL;
- dte_tables = kzalloc(sizeof(Smc_SIslands_DTE_Configuration), GFP_KERNEL);
+ dte_tables = kzalloc_obj(Smc_SIslands_DTE_Configuration, GFP_KERNEL);
if (dte_tables == NULL) {
si_pi->enable_dte = false;
return -ENOMEM;
@@ -2599,7 +2599,7 @@ static int si_initialize_smc_cac_tables(struct radeon_device *rdev)
if (ni_pi->enable_cac == false)
return 0;
- cac_tables = kzalloc(sizeof(PP_SIslands_CacConfig), GFP_KERNEL);
+ cac_tables = kzalloc_obj(PP_SIslands_CacConfig, GFP_KERNEL);
if (!cac_tables)
return -ENOMEM;
@@ -2794,7 +2794,7 @@ static int si_init_smc_spll_table(struct radeon_device *rdev)
if (si_pi->spll_table_start == 0)
return -EINVAL;
- spll_table = kzalloc(sizeof(SMC_SISLANDS_SPLL_DIV_TABLE), GFP_KERNEL);
+ spll_table = kzalloc_obj(SMC_SISLANDS_SPLL_DIV_TABLE, GFP_KERNEL);
if (spll_table == NULL)
return -ENOMEM;
@@ -5479,7 +5479,7 @@ static int si_initialize_mc_reg_table(struct radeon_device *rdev)
u8 module_index = rv770_get_memory_module_index(rdev);
int ret;
- table = kzalloc(sizeof(struct atom_mc_reg_table), GFP_KERNEL);
+ table = kzalloc_obj(struct atom_mc_reg_table, GFP_KERNEL);
if (!table)
return -ENOMEM;
@@ -6778,9 +6778,8 @@ static int si_parse_power_table(struct radeon_device *rdev)
(mode_info->atom_context->bios + data_offset +
le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
- rdev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ state_array->ucNumEntries, GFP_KERNEL);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
power_state_offset = (u8 *)state_array->states;
@@ -6792,7 +6791,7 @@ static int si_parse_power_table(struct radeon_device *rdev)
&non_clock_info_array->nonClockInfo[non_clock_array_index];
if (!rdev->pm.power_state[i].clock_info)
return -EINVAL;
- ps = kzalloc(sizeof(struct ni_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct ni_ps, GFP_KERNEL);
if (ps == NULL) {
kfree(rdev->pm.dpm.ps);
return -ENOMEM;
@@ -6849,7 +6848,7 @@ int si_dpm_init(struct radeon_device *rdev)
struct pci_dev *root = rdev->pdev->bus->self;
int ret;
- si_pi = kzalloc(sizeof(struct si_power_info), GFP_KERNEL);
+ si_pi = kzalloc_obj(struct si_power_info, GFP_KERNEL);
if (si_pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = si_pi;
@@ -6899,9 +6898,8 @@ int si_dpm_init(struct radeon_device *rdev)
return ret;
rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries =
- kcalloc(4,
- sizeof(struct radeon_clock_voltage_dependency_entry),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_clock_voltage_dependency_entry, 4,
+ GFP_KERNEL);
if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) {
r600_free_extended_power_table(rdev);
return -ENOMEM;
diff --git a/drivers/gpu/drm/radeon/sumo_dpm.c b/drivers/gpu/drm/radeon/sumo_dpm.c
index b11f7c5bbcbe..43d452b65c6a 100644
--- a/drivers/gpu/drm/radeon/sumo_dpm.c
+++ b/drivers/gpu/drm/radeon/sumo_dpm.c
@@ -1479,9 +1479,8 @@ static int sumo_parse_power_table(struct radeon_device *rdev)
(mode_info->atom_context->bios + data_offset +
le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
- rdev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ state_array->ucNumEntries, GFP_KERNEL);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
power_state_offset = (u8 *)state_array->states;
@@ -1495,7 +1494,7 @@ static int sumo_parse_power_table(struct radeon_device *rdev)
kfree(rdev->pm.dpm.ps);
return -EINVAL;
}
- ps = kzalloc(sizeof(struct sumo_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct sumo_ps, GFP_KERNEL);
if (ps == NULL) {
kfree(rdev->pm.dpm.ps);
return -ENOMEM;
@@ -1745,7 +1744,7 @@ int sumo_dpm_init(struct radeon_device *rdev)
u32 hw_rev = (RREG32(HW_REV) & ATI_REV_ID_MASK) >> ATI_REV_ID_SHIFT;
int ret;
- pi = kzalloc(sizeof(struct sumo_power_info), GFP_KERNEL);
+ pi = kzalloc_obj(struct sumo_power_info, GFP_KERNEL);
if (pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = pi;
diff --git a/drivers/gpu/drm/radeon/trinity_dpm.c b/drivers/gpu/drm/radeon/trinity_dpm.c
index b9a2c7ccc881..a8e8cb8e2b01 100644
--- a/drivers/gpu/drm/radeon/trinity_dpm.c
+++ b/drivers/gpu/drm/radeon/trinity_dpm.c
@@ -1710,9 +1710,8 @@ static int trinity_parse_power_table(struct radeon_device *rdev)
(mode_info->atom_context->bios + data_offset +
le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
- rdev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ state_array->ucNumEntries, GFP_KERNEL);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
power_state_offset = (u8 *)state_array->states;
@@ -1726,7 +1725,7 @@ static int trinity_parse_power_table(struct radeon_device *rdev)
kfree(rdev->pm.dpm.ps);
return -EINVAL;
}
- ps = kzalloc(sizeof(struct sumo_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct sumo_ps, GFP_KERNEL);
if (ps == NULL) {
kfree(rdev->pm.dpm.ps);
return -ENOMEM;
@@ -1903,7 +1902,7 @@ int trinity_dpm_init(struct radeon_device *rdev)
struct trinity_power_info *pi;
int ret, i;
- pi = kzalloc(sizeof(struct trinity_power_info), GFP_KERNEL);
+ pi = kzalloc_obj(struct trinity_power_info, GFP_KERNEL);
if (pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = pi;
diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_crtc.c
index 2e2906ab750b..dad019714c3e 100644
--- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_crtc.c
+++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_crtc.c
@@ -1006,7 +1006,7 @@ static void rcar_du_crtc_reset(struct drm_crtc *crtc)
crtc->state = NULL;
}
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state == NULL)
return;
diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
index 6294443f6068..6ef11717b2ff 100644
--- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
+++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
@@ -381,7 +381,7 @@ struct drm_gem_object *rcar_du_gem_prime_import_sg_table(struct drm_device *dev,
return drm_gem_dma_prime_import_sg_table(dev, attach, sgt);
/* Create a DMA GEM buffer. */
- dma_obj = kzalloc(sizeof(*dma_obj), GFP_KERNEL);
+ dma_obj = kzalloc_obj(*dma_obj, GFP_KERNEL);
if (!dma_obj)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_plane.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_plane.c
index c546ab0805d6..29d5574a5d8e 100644
--- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_plane.c
+++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_plane.c
@@ -721,7 +721,7 @@ static void rcar_du_plane_reset(struct drm_plane *plane)
plane->state = NULL;
}
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state == NULL)
return;
diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.c
index 7aa0373563a4..87eb80cb931e 100644
--- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.c
+++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_vsp.c
@@ -404,7 +404,7 @@ rcar_du_vsp_plane_atomic_duplicate_state(struct drm_plane *plane)
if (WARN_ON(!plane->state))
return NULL;
- copy = kzalloc(sizeof(*copy), GFP_KERNEL);
+ copy = kzalloc_obj(*copy, GFP_KERNEL);
if (copy == NULL)
return NULL;
@@ -429,7 +429,7 @@ static void rcar_du_vsp_plane_reset(struct drm_plane *plane)
plane->state = NULL;
}
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state == NULL)
return;
@@ -488,7 +488,7 @@ int rcar_du_vsp_init(struct rcar_du_vsp *vsp, struct device_node *np,
num_planes = rcdu->info->num_rpf;
- vsp->planes = kcalloc(num_planes, sizeof(*vsp->planes), GFP_KERNEL);
+ vsp->planes = kzalloc_objs(*vsp->planes, num_planes, GFP_KERNEL);
if (!vsp->planes)
return -ENOMEM;
diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
index 8cd37d7b8ae2..0d818663b1ce 100644
--- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
+++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
@@ -57,7 +57,7 @@ static int rcar_du_wb_prepare_job(struct drm_writeback_connector *connector,
if (!job->fb)
return 0;
- rjob = kzalloc(sizeof(*rjob), GFP_KERNEL);
+ rjob = kzalloc_obj(*rjob, GFP_KERNEL);
if (!rjob)
return -ENOMEM;
@@ -99,7 +99,7 @@ rcar_du_wb_conn_duplicate_state(struct drm_connector *connector)
if (WARN_ON(!connector->state))
return NULL;
- copy = kzalloc(sizeof(*copy), GFP_KERNEL);
+ copy = kzalloc_obj(*copy, GFP_KERNEL);
if (!copy)
return NULL;
@@ -124,7 +124,7 @@ static void rcar_du_wb_conn_reset(struct drm_connector *connector)
connector->state = NULL;
}
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state == NULL)
return;
diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c
index 6e7aac6219be..e9a95a026a2a 100644
--- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c
+++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c
@@ -336,7 +336,7 @@ static void rzg2l_du_crtc_reset(struct drm_crtc *crtc)
crtc->state = NULL;
}
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return;
diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c
index 040d4e4aff00..525889dba500 100644
--- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c
+++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c
@@ -249,7 +249,7 @@ rzg2l_du_vsp_plane_atomic_duplicate_state(struct drm_plane *plane)
if (WARN_ON(!plane->state))
return NULL;
- copy = kzalloc(sizeof(*copy), GFP_KERNEL);
+ copy = kzalloc_obj(*copy, GFP_KERNEL);
if (!copy)
return NULL;
@@ -274,7 +274,7 @@ static void rzg2l_du_vsp_plane_reset(struct drm_plane *plane)
plane->state = NULL;
}
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return;
diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
index 2e2f37b9d0a4..931d797c598a 100644
--- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
+++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
@@ -551,7 +551,7 @@ shmob_drm_connector_init(struct shmob_drm_device *sdev,
return ERR_PTR(-EINVAL);
}
- scon = kzalloc(sizeof(*scon), GFP_KERNEL);
+ scon = kzalloc_obj(*scon, GFP_KERNEL);
if (!scon)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_plane.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_plane.c
index 9d166ab2af8b..983e4c72002a 100644
--- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_plane.c
+++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_plane.c
@@ -260,7 +260,7 @@ static void shmob_drm_plane_reset(struct drm_plane *plane)
plane->state = NULL;
}
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state == NULL)
return;
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
index 2f469d370021..43688d0322d7 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
@@ -36,7 +36,7 @@ rockchip_fb_create(struct drm_device *dev, struct drm_file *file,
struct drm_afbc_framebuffer *afbc_fb;
int ret;
- afbc_fb = kzalloc(sizeof(*afbc_fb), GFP_KERNEL);
+ afbc_fb = kzalloc_obj(*afbc_fb, GFP_KERNEL);
if (!afbc_fb)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
index df9a8bff2e22..e6216773a6c4 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
@@ -289,7 +289,7 @@ static struct rockchip_gem_object *
size = round_up(size, PAGE_SIZE);
- rk_obj = kzalloc(sizeof(*rk_obj), GFP_KERNEL);
+ rk_obj = kzalloc_obj(*rk_obj, GFP_KERNEL);
if (!rk_obj)
return ERR_PTR(-ENOMEM);
@@ -434,7 +434,7 @@ struct sg_table *rockchip_gem_prime_get_sg_table(struct drm_gem_object *obj)
if (rk_obj->pages)
return drm_prime_pages_to_sg(obj->dev, rk_obj->pages, rk_obj->num_pages);
- sgt = kzalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kzalloc_obj(*sgt, GFP_KERNEL);
if (!sgt)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
index 1b466623b6c7..ab16765a407b 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
@@ -1658,8 +1658,8 @@ static void vop_crtc_destroy_state(struct drm_crtc *crtc,
static void vop_crtc_reset(struct drm_crtc *crtc)
{
- struct rockchip_crtc_state *crtc_state =
- kzalloc(sizeof(*crtc_state), GFP_KERNEL);
+ struct rockchip_crtc_state *crtc_state = kzalloc_obj(*crtc_state,
+ GFP_KERNEL);
if (crtc->state)
vop_crtc_destroy_state(crtc, crtc->state);
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
index ec3b4fde10db..b12970bcc588 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
@@ -2140,8 +2140,7 @@ static void vop2_crtc_destroy_state(struct drm_crtc *crtc,
static void vop2_crtc_reset(struct drm_crtc *crtc)
{
- struct rockchip_crtc_state *vcstate =
- kzalloc(sizeof(*vcstate), GFP_KERNEL);
+ struct rockchip_crtc_state *vcstate = kzalloc_obj(*vcstate, GFP_KERNEL);
if (crtc->state)
vop2_crtc_destroy_state(crtc, crtc->state);
diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
index bd7936c03da2..d0b3a10d808f 100644
--- a/drivers/gpu/drm/scheduler/sched_main.c
+++ b/drivers/gpu/drm/scheduler/sched_main.c
@@ -1352,13 +1352,14 @@ int drm_sched_init(struct drm_gpu_scheduler *sched, const struct drm_sched_init_
sched->own_submit_wq = true;
}
- sched->sched_rq = kmalloc_array(args->num_rqs, sizeof(*sched->sched_rq),
- GFP_KERNEL | __GFP_ZERO);
+ sched->sched_rq = kmalloc_objs(*sched->sched_rq, args->num_rqs,
+ GFP_KERNEL | __GFP_ZERO);
if (!sched->sched_rq)
goto Out_check_own;
sched->num_rqs = args->num_rqs;
for (i = DRM_SCHED_PRIORITY_KERNEL; i < sched->num_rqs; i++) {
- sched->sched_rq[i] = kzalloc(sizeof(*sched->sched_rq[i]), GFP_KERNEL);
+ sched->sched_rq[i] = kzalloc_obj(*sched->sched_rq[i],
+ GFP_KERNEL);
if (!sched->sched_rq[i])
goto Out_unroll;
drm_sched_rq_init(sched, sched->sched_rq[i]);
diff --git a/drivers/gpu/drm/sitronix/st7920.c b/drivers/gpu/drm/sitronix/st7920.c
index f35a157fdad8..21d9369d01c3 100644
--- a/drivers/gpu/drm/sitronix/st7920.c
+++ b/drivers/gpu/drm/sitronix/st7920.c
@@ -459,7 +459,7 @@ static void st7920_primary_plane_reset(struct drm_plane *plane)
drm_WARN_ON_ONCE(plane->dev, plane->state);
- st7920_state = kzalloc(sizeof(*st7920_state), GFP_KERNEL);
+ st7920_state = kzalloc_obj(*st7920_state, GFP_KERNEL);
if (!st7920_state)
return;
@@ -474,7 +474,7 @@ static struct drm_plane_state *st7920_primary_plane_duplicate_state(struct drm_p
if (drm_WARN_ON_ONCE(plane->dev, !plane->state))
return NULL;
- st7920_state = kzalloc(sizeof(*st7920_state), GFP_KERNEL);
+ st7920_state = kzalloc_obj(*st7920_state, GFP_KERNEL);
if (!st7920_state)
return NULL;
@@ -581,7 +581,7 @@ static void st7920_crtc_reset(struct drm_crtc *crtc)
drm_WARN_ON_ONCE(crtc->dev, crtc->state);
- st7920_state = kzalloc(sizeof(*st7920_state), GFP_KERNEL);
+ st7920_state = kzalloc_obj(*st7920_state, GFP_KERNEL);
if (!st7920_state)
return;
@@ -595,7 +595,7 @@ static struct drm_crtc_state *st7920_crtc_duplicate_state(struct drm_crtc *crtc)
if (drm_WARN_ON_ONCE(crtc->dev, !crtc->state))
return NULL;
- st7920_state = kzalloc(sizeof(*st7920_state), GFP_KERNEL);
+ st7920_state = kzalloc_obj(*st7920_state, GFP_KERNEL);
if (!st7920_state)
return NULL;
diff --git a/drivers/gpu/drm/solomon/ssd130x.c b/drivers/gpu/drm/solomon/ssd130x.c
index 96cf39320137..aa08e13e4bb7 100644
--- a/drivers/gpu/drm/solomon/ssd130x.c
+++ b/drivers/gpu/drm/solomon/ssd130x.c
@@ -1396,7 +1396,7 @@ static void ssd130x_primary_plane_reset(struct drm_plane *plane)
drm_WARN_ON_ONCE(plane->dev, plane->state);
- ssd130x_state = kzalloc(sizeof(*ssd130x_state), GFP_KERNEL);
+ ssd130x_state = kzalloc_obj(*ssd130x_state, GFP_KERNEL);
if (!ssd130x_state)
return;
@@ -1553,7 +1553,7 @@ static void ssd130x_crtc_reset(struct drm_crtc *crtc)
drm_WARN_ON_ONCE(crtc->dev, crtc->state);
- ssd130x_state = kzalloc(sizeof(*ssd130x_state), GFP_KERNEL);
+ ssd130x_state = kzalloc_obj(*ssd130x_state, GFP_KERNEL);
if (!ssd130x_state)
return;
diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
index f16345f01065..b0c73fe2731d 100644
--- a/drivers/gpu/drm/sti/sti_drv.c
+++ b/drivers/gpu/drm/sti/sti_drv.c
@@ -151,7 +151,7 @@ static int sti_init(struct drm_device *ddev)
{
struct sti_private *private;
- private = kzalloc(sizeof(*private), GFP_KERNEL);
+ private = kzalloc_obj(*private, GFP_KERNEL);
if (!private)
return -ENOMEM;
diff --git a/drivers/gpu/drm/sun4i/sun4i_layer.c b/drivers/gpu/drm/sun4i/sun4i_layer.c
index 98f3176366c0..10e8dbdc6a76 100644
--- a/drivers/gpu/drm/sun4i/sun4i_layer.c
+++ b/drivers/gpu/drm/sun4i/sun4i_layer.c
@@ -29,7 +29,7 @@ static void sun4i_backend_layer_reset(struct drm_plane *plane)
plane->state = NULL;
}
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state)
__drm_atomic_helper_plane_reset(plane, &state->state);
}
@@ -40,7 +40,7 @@ sun4i_backend_layer_duplicate_state(struct drm_plane *plane)
struct sun4i_layer_state *orig = state_to_sun4i_layer_state(plane->state);
struct sun4i_layer_state *copy;
- copy = kzalloc(sizeof(*copy), GFP_KERNEL);
+ copy = kzalloc_obj(*copy, GFP_KERNEL);
if (!copy)
return NULL;
diff --git a/drivers/gpu/drm/sysfb/drm_sysfb_modeset.c b/drivers/gpu/drm/sysfb/drm_sysfb_modeset.c
index 6214b7709b37..02c59d401b45 100644
--- a/drivers/gpu/drm/sysfb/drm_sysfb_modeset.c
+++ b/drivers/gpu/drm/sysfb/drm_sysfb_modeset.c
@@ -427,7 +427,7 @@ void drm_sysfb_plane_reset(struct drm_plane *plane)
if (plane->state)
drm_sysfb_plane_state_destroy(to_drm_sysfb_plane_state(plane->state));
- sysfb_plane_state = kzalloc(sizeof(*sysfb_plane_state), GFP_KERNEL);
+ sysfb_plane_state = kzalloc_obj(*sysfb_plane_state, GFP_KERNEL);
if (sysfb_plane_state)
__drm_gem_reset_shadow_plane(plane, &sysfb_plane_state->base);
else
@@ -447,7 +447,7 @@ struct drm_plane_state *drm_sysfb_plane_atomic_duplicate_state(struct drm_plane
return NULL;
sysfb_plane_state = to_drm_sysfb_plane_state(plane_state);
- new_sysfb_plane_state = kzalloc(sizeof(*new_sysfb_plane_state), GFP_KERNEL);
+ new_sysfb_plane_state = kzalloc_obj(*new_sysfb_plane_state, GFP_KERNEL);
if (!new_sysfb_plane_state)
return NULL;
new_shadow_plane_state = &new_sysfb_plane_state->base;
@@ -523,7 +523,7 @@ void drm_sysfb_crtc_reset(struct drm_crtc *crtc)
if (crtc->state)
drm_sysfb_crtc_state_destroy(to_drm_sysfb_crtc_state(crtc->state));
- sysfb_crtc_state = kzalloc(sizeof(*sysfb_crtc_state), GFP_KERNEL);
+ sysfb_crtc_state = kzalloc_obj(*sysfb_crtc_state, GFP_KERNEL);
if (sysfb_crtc_state) {
sysfb_crtc_state->format = sysfb->fb_format;
__drm_atomic_helper_crtc_reset(crtc, &sysfb_crtc_state->base);
@@ -543,7 +543,7 @@ struct drm_crtc_state *drm_sysfb_crtc_atomic_duplicate_state(struct drm_crtc *cr
if (drm_WARN_ON(dev, !crtc_state))
return NULL;
- new_sysfb_crtc_state = kzalloc(sizeof(*new_sysfb_crtc_state), GFP_KERNEL);
+ new_sysfb_crtc_state = kzalloc_obj(*new_sysfb_crtc_state, GFP_KERNEL);
if (!new_sysfb_crtc_state)
return NULL;
diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
index 01e9d5011dd8..21cadb50c671 100644
--- a/drivers/gpu/drm/tegra/dc.c
+++ b/drivers/gpu/drm/tegra/dc.c
@@ -812,7 +812,7 @@ static struct drm_plane *tegra_primary_plane_create(struct drm_device *drm,
const u32 *formats;
int err;
- plane = kzalloc(sizeof(*plane), GFP_KERNEL);
+ plane = kzalloc_obj(*plane, GFP_KERNEL);
if (!plane)
return ERR_PTR(-ENOMEM);
@@ -1115,7 +1115,7 @@ static struct drm_plane *tegra_dc_cursor_plane_create(struct drm_device *drm,
const u32 *formats;
int err;
- plane = kzalloc(sizeof(*plane), GFP_KERNEL);
+ plane = kzalloc_obj(*plane, GFP_KERNEL);
if (!plane)
return ERR_PTR(-ENOMEM);
@@ -1263,7 +1263,7 @@ static struct drm_plane *tegra_dc_overlay_plane_create(struct drm_device *drm,
const u32 *formats;
int err;
- plane = kzalloc(sizeof(*plane), GFP_KERNEL);
+ plane = kzalloc_obj(*plane, GFP_KERNEL);
if (!plane)
return ERR_PTR(-ENOMEM);
@@ -1389,7 +1389,7 @@ static void tegra_dc_destroy(struct drm_crtc *crtc)
static void tegra_crtc_reset(struct drm_crtc *crtc)
{
- struct tegra_dc_state *state = kzalloc(sizeof(*state), GFP_KERNEL);
+ struct tegra_dc_state *state = kzalloc_obj(*state, GFP_KERNEL);
if (crtc->state)
tegra_crtc_atomic_destroy_state(crtc, crtc->state);
@@ -1406,7 +1406,7 @@ tegra_crtc_atomic_duplicate_state(struct drm_crtc *crtc)
struct tegra_dc_state *state = to_dc_state(crtc->state);
struct tegra_dc_state *copy;
- copy = kmalloc(sizeof(*copy), GFP_KERNEL);
+ copy = kmalloc_obj(*copy, GFP_KERNEL);
if (!copy)
return NULL;
diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c
index f7222819d672..1d1bbeae4522 100644
--- a/drivers/gpu/drm/tegra/drm.c
+++ b/drivers/gpu/drm/tegra/drm.c
@@ -104,7 +104,7 @@ static int tegra_drm_open(struct drm_device *drm, struct drm_file *filp)
{
struct tegra_drm_file *fpriv;
- fpriv = kzalloc(sizeof(*fpriv), GFP_KERNEL);
+ fpriv = kzalloc_obj(*fpriv, GFP_KERNEL);
if (!fpriv)
return -ENOMEM;
@@ -212,7 +212,7 @@ int tegra_drm_submit(struct tegra_drm_context *context,
*/
num_refs = num_cmdbufs + num_relocs * 2;
- refs = kmalloc_array(num_refs, sizeof(*refs), GFP_KERNEL);
+ refs = kmalloc_objs(*refs, num_refs, GFP_KERNEL);
if (!refs) {
err = -ENOMEM;
goto put;
@@ -465,7 +465,7 @@ static int tegra_open_channel(struct drm_device *drm, void *data,
struct tegra_drm_client *client;
int err = -ENODEV;
- context = kzalloc(sizeof(*context), GFP_KERNEL);
+ context = kzalloc_obj(*context, GFP_KERNEL);
if (!context)
return -ENOMEM;
@@ -1147,7 +1147,7 @@ static int host1x_drm_probe(struct host1x_device *dev)
if (IS_ERR(drm))
return PTR_ERR(drm);
- tegra = kzalloc(sizeof(*tegra), GFP_KERNEL);
+ tegra = kzalloc_obj(*tegra, GFP_KERNEL);
if (!tegra) {
err = -ENOMEM;
goto put;
diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
index 8ee96b59fdbc..f28e7bd63508 100644
--- a/drivers/gpu/drm/tegra/dsi.c
+++ b/drivers/gpu/drm/tegra/dsi.c
@@ -772,7 +772,7 @@ static void tegra_dsi_soft_reset(struct tegra_dsi *dsi)
static void tegra_dsi_connector_reset(struct drm_connector *connector)
{
- struct tegra_dsi_state *state = kzalloc(sizeof(*state), GFP_KERNEL);
+ struct tegra_dsi_state *state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return;
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 1cef8c5cac50..e795570776fd 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -112,7 +112,7 @@ struct drm_framebuffer *tegra_fb_alloc(struct drm_device *drm,
unsigned int i;
int err;
- fb = kzalloc(sizeof(*fb), GFP_KERNEL);
+ fb = kzalloc_obj(*fb, GFP_KERNEL);
if (!fb)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c
index 6b14f1e919eb..c7355b11424c 100644
--- a/drivers/gpu/drm/tegra/gem.c
+++ b/drivers/gpu/drm/tegra/gem.c
@@ -64,7 +64,7 @@ static struct host1x_bo_mapping *tegra_bo_pin(struct device *dev, struct host1x_
struct host1x_bo_mapping *map;
int err;
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (!map)
return ERR_PTR(-ENOMEM);
@@ -103,7 +103,7 @@ static struct host1x_bo_mapping *tegra_bo_pin(struct device *dev, struct host1x_
* If we don't have a mapping for this buffer yet, return an SG table
* so that host1x can do the mapping for us via the DMA API.
*/
- map->sgt = kzalloc(sizeof(*map->sgt), GFP_KERNEL);
+ map->sgt = kzalloc_obj(*map->sgt, GFP_KERNEL);
if (!map->sgt) {
err = -ENOMEM;
goto free;
@@ -240,7 +240,7 @@ static int tegra_bo_iommu_map(struct tegra_drm *tegra, struct tegra_bo *bo)
if (bo->mm)
return -EBUSY;
- bo->mm = kzalloc(sizeof(*bo->mm), GFP_KERNEL);
+ bo->mm = kzalloc_obj(*bo->mm, GFP_KERNEL);
if (!bo->mm)
return -ENOMEM;
@@ -302,7 +302,7 @@ static struct tegra_bo *tegra_bo_alloc_object(struct drm_device *drm,
struct tegra_bo *bo;
int err;
- bo = kzalloc(sizeof(*bo), GFP_KERNEL);
+ bo = kzalloc_obj(*bo, GFP_KERNEL);
if (!bo)
return ERR_PTR(-ENOMEM);
@@ -639,7 +639,7 @@ tegra_gem_prime_map_dma_buf(struct dma_buf_attachment *attach,
struct tegra_bo *bo = to_tegra_bo(gem);
struct sg_table *sgt;
- sgt = kmalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kmalloc_obj(*sgt, GFP_KERNEL);
if (!sgt)
return NULL;
diff --git a/drivers/gpu/drm/tegra/hub.c b/drivers/gpu/drm/tegra/hub.c
index c924ffba4094..e0f84efb3b76 100644
--- a/drivers/gpu/drm/tegra/hub.c
+++ b/drivers/gpu/drm/tegra/hub.c
@@ -769,7 +769,7 @@ struct drm_plane *tegra_shared_plane_create(struct drm_device *drm,
const u32 *formats;
int err;
- plane = kzalloc(sizeof(*plane), GFP_KERNEL);
+ plane = kzalloc_obj(*plane, GFP_KERNEL);
if (!plane)
return ERR_PTR(-ENOMEM);
@@ -943,7 +943,7 @@ static int tegra_display_hub_init(struct host1x_client *client)
struct tegra_drm *tegra = drm->dev_private;
struct tegra_display_hub_state *state;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return -ENOMEM;
diff --git a/drivers/gpu/drm/tegra/plane.c b/drivers/gpu/drm/tegra/plane.c
index ffe5f06b770d..ce49c2de2c08 100644
--- a/drivers/gpu/drm/tegra/plane.c
+++ b/drivers/gpu/drm/tegra/plane.c
@@ -36,7 +36,7 @@ static void tegra_plane_reset(struct drm_plane *plane)
kfree(plane->state);
plane->state = NULL;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state) {
plane->state = &state->base;
plane->state->plane = plane;
@@ -55,7 +55,7 @@ tegra_plane_atomic_duplicate_state(struct drm_plane *plane)
struct tegra_plane_state *copy;
unsigned int i;
- copy = kmalloc(sizeof(*copy), GFP_KERNEL);
+ copy = kmalloc_obj(*copy, GFP_KERNEL);
if (!copy)
return NULL;
diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
index 4023cb5998f1..a2cb68f42612 100644
--- a/drivers/gpu/drm/tegra/sor.c
+++ b/drivers/gpu/drm/tegra/sor.c
@@ -1721,7 +1721,7 @@ static void tegra_sor_connector_reset(struct drm_connector *connector)
{
struct tegra_sor_state *state;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return;
diff --git a/drivers/gpu/drm/tegra/submit.c b/drivers/gpu/drm/tegra/submit.c
index 2430fcc97448..7747d5b9f3ca 100644
--- a/drivers/gpu/drm/tegra/submit.c
+++ b/drivers/gpu/drm/tegra/submit.c
@@ -71,7 +71,7 @@ gather_bo_pin(struct device *dev, struct host1x_bo *bo, enum dma_data_direction
struct host1x_bo_mapping *map;
int err;
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (!map)
return ERR_PTR(-ENOMEM);
@@ -80,7 +80,7 @@ gather_bo_pin(struct device *dev, struct host1x_bo *bo, enum dma_data_direction
map->direction = direction;
map->dev = dev;
- map->sgt = kzalloc(sizeof(*map->sgt), GFP_KERNEL);
+ map->sgt = kzalloc_obj(*map->sgt, GFP_KERNEL);
if (!map->sgt) {
err = -ENOMEM;
goto free;
@@ -193,7 +193,7 @@ static int submit_copy_gather_data(struct gather_bo **pbo, struct device *dev,
return -EINVAL;
}
- bo = kzalloc(sizeof(*bo), GFP_KERNEL);
+ bo = kzalloc_obj(*bo, GFP_KERNEL);
if (!bo) {
SUBMIT_ERR(context, "failed to allocate memory for bo info");
return -ENOMEM;
@@ -270,7 +270,7 @@ static int submit_process_bufs(struct tegra_drm_context *context, struct gather_
return PTR_ERR(bufs);
}
- mappings = kcalloc(args->num_bufs, sizeof(*mappings), GFP_KERNEL);
+ mappings = kzalloc_objs(*mappings, args->num_bufs, GFP_KERNEL);
if (!mappings) {
SUBMIT_ERR(context, "failed to allocate memory for mapping info");
err = -ENOMEM;
@@ -560,7 +560,7 @@ int tegra_drm_ioctl_channel_submit(struct drm_device *drm, void *data,
if (err)
goto unlock;
- job_data = kzalloc(sizeof(*job_data), GFP_KERNEL);
+ job_data = kzalloc_obj(*job_data, GFP_KERNEL);
if (!job_data) {
SUBMIT_ERR(context, "failed to allocate memory for job data");
err = -ENOMEM;
diff --git a/drivers/gpu/drm/tegra/uapi.c b/drivers/gpu/drm/tegra/uapi.c
index d0b6a1fa6efa..c4061d0f69a7 100644
--- a/drivers/gpu/drm/tegra/uapi.c
+++ b/drivers/gpu/drm/tegra/uapi.c
@@ -86,7 +86,7 @@ int tegra_drm_ioctl_channel_open(struct drm_device *drm, void *data, struct drm_
if (args->flags)
return -EINVAL;
- context = kzalloc(sizeof(*context), GFP_KERNEL);
+ context = kzalloc_obj(*context, GFP_KERNEL);
if (!context)
return -ENOMEM;
@@ -206,7 +206,7 @@ int tegra_drm_ioctl_channel_map(struct drm_device *drm, void *data, struct drm_f
return -EINVAL;
}
- mapping = kzalloc(sizeof(*mapping), GFP_KERNEL);
+ mapping = kzalloc_obj(*mapping, GFP_KERNEL);
if (!mapping) {
err = -ENOMEM;
goto unlock;
diff --git a/drivers/gpu/drm/tests/drm_gem_shmem_test.c b/drivers/gpu/drm/tests/drm_gem_shmem_test.c
index 4b459f21acfd..f401b9c42a9c 100644
--- a/drivers/gpu/drm/tests/drm_gem_shmem_test.c
+++ b/drivers/gpu/drm/tests/drm_gem_shmem_test.c
@@ -80,7 +80,7 @@ static void drm_gem_shmem_test_obj_create_private(struct kunit *test)
buf = kunit_kzalloc(test, TEST_SIZE, GFP_KERNEL);
KUNIT_ASSERT_NOT_NULL(test, buf);
- sgt = kzalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kzalloc_obj(*sgt, GFP_KERNEL);
KUNIT_ASSERT_NOT_NULL(test, sgt);
ret = kunit_add_action_or_reset(test, kfree_wrapper, sgt);
diff --git a/drivers/gpu/drm/tests/drm_mm_test.c b/drivers/gpu/drm/tests/drm_mm_test.c
index aec9eccdeae9..6a1a27ee5f36 100644
--- a/drivers/gpu/drm/tests/drm_mm_test.c
+++ b/drivers/gpu/drm/tests/drm_mm_test.c
@@ -252,7 +252,7 @@ static void drm_test_mm_align_pot(struct kunit *test, int max)
for (bit = max - 1; bit; bit--) {
u64 align, size;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node) {
KUNIT_FAIL(test, "failed to allocate node");
goto out;
diff --git a/drivers/gpu/drm/tests/drm_panic_test.c b/drivers/gpu/drm/tests/drm_panic_test.c
index d60150877df8..a36f5106c139 100644
--- a/drivers/gpu/drm/tests/drm_panic_test.c
+++ b/drivers/gpu/drm/tests/drm_panic_test.c
@@ -127,7 +127,7 @@ static void drm_test_panic_screen_user_page(struct kunit *test)
fb_size = params->width * params->height * sb->format->cpp[0];
npages = DIV_ROUND_UP(fb_size, PAGE_SIZE);
- pages = kmalloc_array(npages, sizeof(struct page *), GFP_KERNEL);
+ pages = kmalloc_objs(struct page *, npages, GFP_KERNEL);
KUNIT_ASSERT_NOT_NULL(test, pages);
for (p = 0; p < npages; p++) {
diff --git a/drivers/gpu/drm/tidss/tidss_crtc.c b/drivers/gpu/drm/tidss/tidss_crtc.c
index 8f81eb560b9e..e7fc496e2ce4 100644
--- a/drivers/gpu/drm/tidss/tidss_crtc.c
+++ b/drivers/gpu/drm/tidss/tidss_crtc.c
@@ -364,7 +364,7 @@ static void tidss_crtc_reset(struct drm_crtc *crtc)
if (crtc->state)
tidss_crtc_destroy_state(crtc, crtc->state);
- tstate = kzalloc(sizeof(*tstate), GFP_KERNEL);
+ tstate = kzalloc_obj(*tstate, GFP_KERNEL);
if (!tstate) {
crtc->state = NULL;
return;
@@ -382,7 +382,7 @@ static struct drm_crtc_state *tidss_crtc_duplicate_state(struct drm_crtc *crtc)
current_state = to_tidss_crtc_state(crtc->state);
- state = kmalloc(sizeof(*state), GFP_KERNEL);
+ state = kmalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
@@ -425,7 +425,7 @@ struct tidss_crtc *tidss_crtc_create(struct tidss_device *tidss,
bool has_ctm = tidss->feat->vp_feat.color.has_ctm;
int ret;
- tcrtc = kzalloc(sizeof(*tcrtc), GFP_KERNEL);
+ tcrtc = kzalloc_obj(*tcrtc, GFP_KERNEL);
if (!tcrtc)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/tidss/tidss_plane.c b/drivers/gpu/drm/tidss/tidss_plane.c
index bd10bc1b9961..a8e681c4e03b 100644
--- a/drivers/gpu/drm/tidss/tidss_plane.c
+++ b/drivers/gpu/drm/tidss/tidss_plane.c
@@ -203,7 +203,7 @@ struct tidss_plane *tidss_plane_create(struct tidss_device *tidss,
BIT(DRM_MODE_BLEND_COVERAGE));
int ret;
- tplane = kzalloc(sizeof(*tplane), GFP_KERNEL);
+ tplane = kzalloc_obj(*tplane, GFP_KERNEL);
if (!tplane)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_panel.c b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
index 262f290d85d9..ed0822b3a020 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_panel.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
@@ -272,7 +272,7 @@ static struct tilcdc_panel_info *of_get_panel_info(struct device_node *np)
return NULL;
}
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
goto put_node;
diff --git a/drivers/gpu/drm/tiny/appletbdrm.c b/drivers/gpu/drm/tiny/appletbdrm.c
index 751b05753c94..585c1a0ec025 100644
--- a/drivers/gpu/drm/tiny/appletbdrm.c
+++ b/drivers/gpu/drm/tiny/appletbdrm.c
@@ -225,7 +225,7 @@ static int appletbdrm_send_msg(struct appletbdrm_device *adev, __le32 msg)
struct appletbdrm_msg_simple_request *request;
int ret;
- request = kzalloc(sizeof(*request), GFP_KERNEL);
+ request = kzalloc_obj(*request, GFP_KERNEL);
if (!request)
return -ENOMEM;
@@ -260,7 +260,7 @@ static int appletbdrm_get_information(struct appletbdrm_device *adev)
__le32 pixel_format;
int ret;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
@@ -358,7 +358,8 @@ static int appletbdrm_primary_plane_helper_atomic_check(struct drm_plane *plane,
if (!appletbdrm_state->request)
return -ENOMEM;
- appletbdrm_state->response = kzalloc(sizeof(*appletbdrm_state->response), GFP_KERNEL);
+ appletbdrm_state->response = kzalloc_obj(*appletbdrm_state->response,
+ GFP_KERNEL);
if (!appletbdrm_state->response)
return -ENOMEM;
@@ -505,7 +506,7 @@ static void appletbdrm_primary_plane_reset(struct drm_plane *plane)
WARN_ON(plane->state);
- appletbdrm_state = kzalloc(sizeof(*appletbdrm_state), GFP_KERNEL);
+ appletbdrm_state = kzalloc_obj(*appletbdrm_state, GFP_KERNEL);
if (!appletbdrm_state)
return;
@@ -520,7 +521,7 @@ static struct drm_plane_state *appletbdrm_primary_plane_duplicate_state(struct d
if (WARN_ON(!plane->state))
return NULL;
- appletbdrm_state = kzalloc(sizeof(*appletbdrm_state), GFP_KERNEL);
+ appletbdrm_state = kzalloc_obj(*appletbdrm_state, GFP_KERNEL);
if (!appletbdrm_state)
return NULL;
diff --git a/drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.c b/drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.c
index 7b533e4e1e04..5cefc50304e4 100644
--- a/drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.c
+++ b/drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.c
@@ -49,7 +49,7 @@ static struct ttm_tt *ttm_tt_simple_create(struct ttm_buffer_object *bo, u32 pag
{
struct ttm_tt *tt;
- tt = kzalloc(sizeof(*tt), GFP_KERNEL);
+ tt = kzalloc_obj(*tt, GFP_KERNEL);
ttm_tt_init(tt, bo, page_flags, ttm_cached, 0);
return tt;
diff --git a/drivers/gpu/drm/ttm/tests/ttm_mock_manager.c b/drivers/gpu/drm/ttm/tests/ttm_mock_manager.c
index dd395229e388..d6558f5c7e48 100644
--- a/drivers/gpu/drm/ttm/tests/ttm_mock_manager.c
+++ b/drivers/gpu/drm/ttm/tests/ttm_mock_manager.c
@@ -35,7 +35,7 @@ static int ttm_mock_manager_alloc(struct ttm_resource_manager *man,
u64 lpfn, fpfn, alloc_size;
int err;
- mock_res = kzalloc(sizeof(*mock_res), GFP_KERNEL);
+ mock_res = kzalloc_obj(*mock_res, GFP_KERNEL);
if (!mock_res)
return -ENOMEM;
@@ -100,7 +100,7 @@ int ttm_mock_manager_init(struct ttm_device *bdev, u32 mem_type, u32 size)
struct ttm_resource_manager *base;
int err;
- manager = kzalloc(sizeof(*manager), GFP_KERNEL);
+ manager = kzalloc_obj(*manager, GFP_KERNEL);
if (!manager)
return -ENOMEM;
@@ -194,7 +194,7 @@ int ttm_bad_manager_init(struct ttm_device *bdev, u32 mem_type, u32 size)
{
struct ttm_resource_manager *man;
- man = kzalloc(sizeof(*man), GFP_KERNEL);
+ man = kzalloc_obj(*man, GFP_KERNEL);
if (!man)
return -ENOMEM;
diff --git a/drivers/gpu/drm/ttm/ttm_agp_backend.c b/drivers/gpu/drm/ttm/ttm_agp_backend.c
index fca0a1a3c6fd..a973aafd6f7f 100644
--- a/drivers/gpu/drm/ttm/ttm_agp_backend.c
+++ b/drivers/gpu/drm/ttm/ttm_agp_backend.c
@@ -128,7 +128,7 @@ struct ttm_tt *ttm_agp_tt_create(struct ttm_buffer_object *bo,
{
struct ttm_agp_backend *agp_be;
- agp_be = kmalloc(sizeof(*agp_be), GFP_KERNEL);
+ agp_be = kmalloc_obj(*agp_be, GFP_KERNEL);
if (!agp_be)
return NULL;
diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c
index cabcfeaa70dc..93871aaa33b2 100644
--- a/drivers/gpu/drm/ttm/ttm_bo_util.c
+++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
@@ -233,7 +233,7 @@ static int ttm_buffer_object_transfer(struct ttm_buffer_object *bo,
struct ttm_transfer_obj *fbo;
int ret;
- fbo = kmalloc(sizeof(*fbo), GFP_KERNEL);
+ fbo = kmalloc_obj(*fbo, GFP_KERNEL);
if (!fbo)
return -ENOMEM;
diff --git a/drivers/gpu/drm/ttm/ttm_pool.c b/drivers/gpu/drm/ttm/ttm_pool.c
index 217e45958099..b1fa78edad1f 100644
--- a/drivers/gpu/drm/ttm/ttm_pool.c
+++ b/drivers/gpu/drm/ttm/ttm_pool.c
@@ -164,7 +164,7 @@ static struct page *ttm_pool_alloc_page(struct ttm_pool *pool, gfp_t gfp_flags,
return p;
}
- dma = kmalloc(sizeof(*dma), GFP_KERNEL);
+ dma = kmalloc_obj(*dma, GFP_KERNEL);
if (!dma)
return NULL;
@@ -858,7 +858,7 @@ int ttm_pool_restore_and_alloc(struct ttm_pool *pool, struct ttm_tt *tt,
if (ctx->gfp_retry_mayfail)
gfp |= __GFP_RETRY_MAYFAIL;
- restore = kzalloc(sizeof(*restore), gfp);
+ restore = kzalloc_obj(*restore, gfp);
if (!restore)
return -ENOMEM;
diff --git a/drivers/gpu/drm/ttm/ttm_range_manager.c b/drivers/gpu/drm/ttm/ttm_range_manager.c
index db854b581d83..b223b873d0c6 100644
--- a/drivers/gpu/drm/ttm/ttm_range_manager.c
+++ b/drivers/gpu/drm/ttm/ttm_range_manager.c
@@ -73,7 +73,7 @@ static int ttm_range_man_alloc(struct ttm_resource_manager *man,
if (!lpfn)
lpfn = man->size;
- node = kzalloc(struct_size(node, mm_nodes, 1), GFP_KERNEL);
+ node = kzalloc_flex(*node, mm_nodes, 1, GFP_KERNEL);
if (!node)
return -ENOMEM;
@@ -184,7 +184,7 @@ int ttm_range_man_init_nocheck(struct ttm_device *bdev,
struct ttm_resource_manager *man;
struct ttm_range_manager *rman;
- rman = kzalloc(sizeof(*rman), GFP_KERNEL);
+ rman = kzalloc_obj(*rman, GFP_KERNEL);
if (!rman)
return -ENOMEM;
diff --git a/drivers/gpu/drm/ttm/ttm_sys_manager.c b/drivers/gpu/drm/ttm/ttm_sys_manager.c
index 2ced169513cb..fb3e9869704a 100644
--- a/drivers/gpu/drm/ttm/ttm_sys_manager.c
+++ b/drivers/gpu/drm/ttm/ttm_sys_manager.c
@@ -12,7 +12,7 @@ static int ttm_sys_man_alloc(struct ttm_resource_manager *man,
const struct ttm_place *place,
struct ttm_resource **res)
{
- *res = kzalloc(sizeof(**res), GFP_KERNEL);
+ *res = kzalloc_obj(**res, GFP_KERNEL);
if (!*res)
return -ENOMEM;
diff --git a/drivers/gpu/drm/ttm/ttm_tt.c b/drivers/gpu/drm/ttm/ttm_tt.c
index fbf713abd547..3497011eb8ff 100644
--- a/drivers/gpu/drm/ttm/ttm_tt.c
+++ b/drivers/gpu/drm/ttm/ttm_tt.c
@@ -137,8 +137,8 @@ static int ttm_dma_tt_alloc_page_directory(struct ttm_tt *ttm)
static int ttm_sg_tt_alloc_page_directory(struct ttm_tt *ttm)
{
- ttm->dma_address = kvcalloc(ttm->num_pages, sizeof(*ttm->dma_address),
- GFP_KERNEL);
+ ttm->dma_address = kvzalloc_objs(*ttm->dma_address, ttm->num_pages,
+ GFP_KERNEL);
if (!ttm->dma_address)
return -ENOMEM;
diff --git a/drivers/gpu/drm/udl/udl_main.c b/drivers/gpu/drm/udl/udl_main.c
index bc58991a6f14..27dac7cc50a6 100644
--- a/drivers/gpu/drm/udl/udl_main.c
+++ b/drivers/gpu/drm/udl/udl_main.c
@@ -218,7 +218,7 @@ static int udl_alloc_urb_list(struct udl_device *udl, int count, size_t size)
udl->urbs.size = size;
while (udl->urbs.count * size < wanted_size) {
- unode = kzalloc(sizeof(struct urb_node), GFP_KERNEL);
+ unode = kzalloc_obj(struct urb_node, GFP_KERNEL);
if (!unode)
break;
unode->dev = udl;
diff --git a/drivers/gpu/drm/v3d/v3d_bo.c b/drivers/gpu/drm/v3d/v3d_bo.c
index 36aae97cf6da..146bcb30f37b 100644
--- a/drivers/gpu/drm/v3d/v3d_bo.c
+++ b/drivers/gpu/drm/v3d/v3d_bo.c
@@ -86,7 +86,7 @@ struct drm_gem_object *v3d_create_object(struct drm_device *dev, size_t size)
if (size == 0)
return ERR_PTR(-EINVAL);
- bo = kzalloc(sizeof(*bo), GFP_KERNEL);
+ bo = kzalloc_obj(*bo, GFP_KERNEL);
if (!bo)
return ERR_PTR(-ENOMEM);
obj = &bo->base.base;
diff --git a/drivers/gpu/drm/v3d/v3d_drv.c b/drivers/gpu/drm/v3d/v3d_drv.c
index 8de4f151a5c0..0ed83100c95a 100644
--- a/drivers/gpu/drm/v3d/v3d_drv.c
+++ b/drivers/gpu/drm/v3d/v3d_drv.c
@@ -133,7 +133,7 @@ v3d_open(struct drm_device *dev, struct drm_file *file)
struct drm_gpu_scheduler *sched;
int i;
- v3d_priv = kzalloc(sizeof(*v3d_priv), GFP_KERNEL);
+ v3d_priv = kzalloc_obj(*v3d_priv, GFP_KERNEL);
if (!v3d_priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/v3d/v3d_fence.c b/drivers/gpu/drm/v3d/v3d_fence.c
index c82500a1df73..0deaf636387e 100644
--- a/drivers/gpu/drm/v3d/v3d_fence.c
+++ b/drivers/gpu/drm/v3d/v3d_fence.c
@@ -8,7 +8,7 @@ struct dma_fence *v3d_fence_create(struct v3d_dev *v3d, enum v3d_queue q)
struct v3d_queue_state *queue = &v3d->queue[q];
struct v3d_fence *fence;
- fence = kzalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kzalloc_obj(*fence, GFP_KERNEL);
if (!fence)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/v3d/v3d_perfmon.c b/drivers/gpu/drm/v3d/v3d_perfmon.c
index 9a3fe5255874..b1bde69e4517 100644
--- a/drivers/gpu/drm/v3d/v3d_perfmon.c
+++ b/drivers/gpu/drm/v3d/v3d_perfmon.c
@@ -353,8 +353,7 @@ int v3d_perfmon_create_ioctl(struct drm_device *dev, void *data,
return -EINVAL;
}
- perfmon = kzalloc(struct_size(perfmon, values, req->ncounters),
- GFP_KERNEL);
+ perfmon = kzalloc_flex(*perfmon, values, req->ncounters, GFP_KERNEL);
if (!perfmon)
return -ENOMEM;
diff --git a/drivers/gpu/drm/v3d/v3d_submit.c b/drivers/gpu/drm/v3d/v3d_submit.c
index 794c3571662d..d172cab1564c 100644
--- a/drivers/gpu/drm/v3d/v3d_submit.c
+++ b/drivers/gpu/drm/v3d/v3d_submit.c
@@ -335,9 +335,8 @@ v3d_get_multisync_post_deps(struct drm_file *file_priv,
return 0;
se->out_syncs = (struct v3d_submit_outsync *)
- kvmalloc_array(count,
- sizeof(struct v3d_submit_outsync),
- GFP_KERNEL);
+ kvmalloc_objs(struct v3d_submit_outsync, count,
+ GFP_KERNEL);
if (!se->out_syncs)
return -ENOMEM;
@@ -486,9 +485,8 @@ v3d_get_cpu_timestamp_query_params(struct drm_file *file_priv,
job->job_type = V3D_CPU_JOB_TYPE_TIMESTAMP_QUERY;
- query_info->queries = kvmalloc_array(timestamp.count,
- sizeof(struct v3d_timestamp_query),
- GFP_KERNEL);
+ query_info->queries = kvmalloc_objs(struct v3d_timestamp_query,
+ timestamp.count, GFP_KERNEL);
if (!query_info->queries)
return -ENOMEM;
@@ -545,9 +543,8 @@ v3d_get_cpu_reset_timestamp_params(struct drm_file *file_priv,
job->job_type = V3D_CPU_JOB_TYPE_RESET_TIMESTAMP_QUERY;
- query_info->queries = kvmalloc_array(reset.count,
- sizeof(struct v3d_timestamp_query),
- GFP_KERNEL);
+ query_info->queries = kvmalloc_objs(struct v3d_timestamp_query,
+ reset.count, GFP_KERNEL);
if (!query_info->queries)
return -ENOMEM;
@@ -602,9 +599,8 @@ v3d_get_cpu_copy_query_results_params(struct drm_file *file_priv,
job->job_type = V3D_CPU_JOB_TYPE_COPY_TIMESTAMP_QUERY;
- query_info->queries = kvmalloc_array(copy.count,
- sizeof(struct v3d_timestamp_query),
- GFP_KERNEL);
+ query_info->queries = kvmalloc_objs(struct v3d_timestamp_query,
+ copy.count, GFP_KERNEL);
if (!query_info->queries)
return -ENOMEM;
@@ -729,9 +725,8 @@ v3d_get_cpu_reset_performance_params(struct drm_file *file_priv,
job->job_type = V3D_CPU_JOB_TYPE_RESET_PERFORMANCE_QUERY;
query_info->queries =
- kvmalloc_array(reset.count,
- sizeof(struct v3d_performance_query),
- GFP_KERNEL);
+ kvmalloc_objs(struct v3d_performance_query, reset.count,
+ GFP_KERNEL);
if (!query_info->queries)
return -ENOMEM;
@@ -771,9 +766,8 @@ v3d_get_cpu_copy_performance_query_params(struct drm_file *file_priv,
job->job_type = V3D_CPU_JOB_TYPE_COPY_PERFORMANCE_QUERY;
query_info->queries =
- kvmalloc_array(copy.count,
- sizeof(struct v3d_performance_query),
- GFP_KERNEL);
+ kvmalloc_objs(struct v3d_performance_query, copy.count,
+ GFP_KERNEL);
if (!query_info->queries)
return -ENOMEM;
@@ -1082,8 +1076,8 @@ v3d_submit_tfu_ioctl(struct drm_device *dev, void *data,
goto fail;
}
- job->base.bo = kcalloc(ARRAY_SIZE(args->bo_handles),
- sizeof(*job->base.bo), GFP_KERNEL);
+ job->base.bo = kzalloc_objs(*job->base.bo, ARRAY_SIZE(args->bo_handles),
+ GFP_KERNEL);
if (!job->base.bo) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/gpu/drm/vboxvideo/vbox_mode.c b/drivers/gpu/drm/vboxvideo/vbox_mode.c
index d363c3f0afdf..86229323eeac 100644
--- a/drivers/gpu/drm/vboxvideo/vbox_mode.c
+++ b/drivers/gpu/drm/vboxvideo/vbox_mode.c
@@ -528,7 +528,7 @@ static struct drm_plane *vbox_create_plane(struct vbox_private *vbox,
return ERR_PTR(-EINVAL);
}
- plane = kzalloc(sizeof(*plane), GFP_KERNEL);
+ plane = kzalloc_obj(*plane, GFP_KERNEL);
if (!plane)
return ERR_PTR(-ENOMEM);
@@ -562,7 +562,7 @@ static struct vbox_crtc *vbox_crtc_init(struct drm_device *dev, unsigned int i)
if (ret)
return ERR_PTR(ret);
- vbox_crtc = kzalloc(sizeof(*vbox_crtc), GFP_KERNEL);
+ vbox_crtc = kzalloc_obj(*vbox_crtc, GFP_KERNEL);
if (!vbox_crtc)
return ERR_PTR(-ENOMEM);
@@ -622,7 +622,7 @@ static struct drm_encoder *vbox_encoder_init(struct drm_device *dev,
{
struct vbox_encoder *vbox_encoder;
- vbox_encoder = kzalloc(sizeof(*vbox_encoder), GFP_KERNEL);
+ vbox_encoder = kzalloc_obj(*vbox_encoder, GFP_KERNEL);
if (!vbox_encoder)
return NULL;
@@ -808,7 +808,7 @@ static int vbox_connector_init(struct drm_device *dev,
struct vbox_connector *vbox_connector;
struct drm_connector *connector;
- vbox_connector = kzalloc(sizeof(*vbox_connector), GFP_KERNEL);
+ vbox_connector = kzalloc_obj(*vbox_connector, GFP_KERNEL);
if (!vbox_connector)
return -ENOMEM;
diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c
index 46b4474ac41d..274cad424059 100644
--- a/drivers/gpu/drm/vc4/vc4_bo.c
+++ b/drivers/gpu/drm/vc4/vc4_bo.c
@@ -205,8 +205,7 @@ static struct list_head *vc4_get_cache_list_for_size(struct drm_device *dev,
struct list_head *new_list;
uint32_t i;
- new_list = kmalloc_array(new_size, sizeof(struct list_head),
- GFP_KERNEL);
+ new_list = kmalloc_objs(struct list_head, new_size, GFP_KERNEL);
if (!new_list)
return NULL;
@@ -400,7 +399,7 @@ struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size)
if (WARN_ON_ONCE(vc4->gen > VC4_GEN_4))
return ERR_PTR(-ENODEV);
- bo = kzalloc(sizeof(*bo), GFP_KERNEL);
+ bo = kzalloc_obj(*bo, GFP_KERNEL);
if (!bo)
return ERR_PTR(-ENOMEM);
@@ -1015,8 +1014,8 @@ int vc4_bo_cache_init(struct drm_device *dev)
* use. This lets us avoid a bunch of string reallocation in
* the kernel's draw and BO allocation paths.
*/
- vc4->bo_labels = kcalloc(VC4_BO_TYPE_COUNT, sizeof(*vc4->bo_labels),
- GFP_KERNEL);
+ vc4->bo_labels = kzalloc_objs(*vc4->bo_labels, VC4_BO_TYPE_COUNT,
+ GFP_KERNEL);
if (!vc4->bo_labels)
return -ENOMEM;
vc4->num_labels = VC4_BO_TYPE_COUNT;
diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c
index 2a48038abe7a..27a9eab1c2d0 100644
--- a/drivers/gpu/drm/vc4/vc4_crtc.c
+++ b/drivers/gpu/drm/vc4/vc4_crtc.c
@@ -997,7 +997,7 @@ vc4_async_page_flip_common(struct drm_crtc *crtc,
struct drm_plane *plane = crtc->primary;
struct vc4_async_flip_state *flip_state;
- flip_state = kzalloc(sizeof(*flip_state), GFP_KERNEL);
+ flip_state = kzalloc_obj(*flip_state, GFP_KERNEL);
if (!flip_state)
return -ENOMEM;
@@ -1105,7 +1105,7 @@ struct drm_crtc_state *vc4_crtc_duplicate_state(struct drm_crtc *crtc)
{
struct vc4_crtc_state *vc4_state, *old_vc4_state;
- vc4_state = kzalloc(sizeof(*vc4_state), GFP_KERNEL);
+ vc4_state = kzalloc_obj(*vc4_state, GFP_KERNEL);
if (!vc4_state)
return NULL;
@@ -1142,7 +1142,7 @@ void vc4_crtc_reset(struct drm_crtc *crtc)
if (crtc->state)
vc4_crtc_destroy_state(crtc, crtc->state);
- vc4_crtc_state = kzalloc(sizeof(*vc4_crtc_state), GFP_KERNEL);
+ vc4_crtc_state = kzalloc_obj(*vc4_crtc_state, GFP_KERNEL);
if (!vc4_crtc_state) {
crtc->state = NULL;
return;
diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index 3846996f9028..0677458e28f8 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -152,7 +152,7 @@ static int vc4_open(struct drm_device *dev, struct drm_file *file)
if (WARN_ON_ONCE(vc4->gen > VC4_GEN_4))
return -ENODEV;
- vc4file = kzalloc(sizeof(*vc4file), GFP_KERNEL);
+ vc4file = kzalloc_obj(*vc4file, GFP_KERNEL);
if (!vc4file)
return -ENOMEM;
vc4file->dev = vc4;
diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c
index ab16164b5eda..42b6dcbaa01b 100644
--- a/drivers/gpu/drm/vc4/vc4_gem.c
+++ b/drivers/gpu/drm/vc4/vc4_gem.c
@@ -110,7 +110,7 @@ vc4_get_hang_state_ioctl(struct drm_device *dev, void *data,
state->bo = get_state->bo;
memcpy(get_state, state, sizeof(*state));
- bo_state = kcalloc(state->bo_count, sizeof(*bo_state), GFP_KERNEL);
+ bo_state = kzalloc_objs(*bo_state, state->bo_count, GFP_KERNEL);
if (!bo_state) {
ret = -ENOMEM;
goto err_free;
@@ -161,7 +161,7 @@ vc4_save_hang_state(struct drm_device *dev)
unsigned long irqflags;
unsigned int i, j, k, unref_list_count;
- kernel_state = kcalloc(1, sizeof(*kernel_state), GFP_KERNEL);
+ kernel_state = kzalloc_objs(*kernel_state, 1, GFP_KERNEL);
if (!kernel_state)
return;
@@ -187,8 +187,8 @@ vc4_save_hang_state(struct drm_device *dev)
state->bo_count += exec[i]->bo_count + unref_list_count;
}
- kernel_state->bo = kcalloc(state->bo_count,
- sizeof(*kernel_state->bo), GFP_ATOMIC);
+ kernel_state->bo = kzalloc_objs(*kernel_state->bo, state->bo_count,
+ GFP_ATOMIC);
if (!kernel_state->bo) {
spin_unlock_irqrestore(&vc4->job_lock, irqflags);
@@ -622,7 +622,7 @@ vc4_queue_submit(struct drm_device *dev, struct vc4_exec_info *exec,
unsigned long irqflags;
struct vc4_fence *fence;
- fence = kzalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kzalloc_obj(*fence, GFP_KERNEL);
if (!fence)
return -ENOMEM;
fence->dev = dev;
@@ -1043,7 +1043,7 @@ vc4_submit_cl_ioctl(struct drm_device *dev, void *data,
return -EINVAL;
}
- exec = kcalloc(1, sizeof(*exec), GFP_KERNEL);
+ exec = kzalloc_objs(*exec, 1, GFP_KERNEL);
if (!exec)
return -ENOMEM;
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index 2ea31938168d..ef5825a00bc3 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -2941,8 +2941,7 @@ static int vc4_hdmi_build_regset(struct drm_device *drm,
unsigned int i;
int ret;
- regs = kcalloc(variant->num_registers, sizeof(*regs),
- GFP_KERNEL);
+ regs = kzalloc_objs(*regs, variant->num_registers, GFP_KERNEL);
if (!regs)
return -ENOMEM;
diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c
index e563c1210937..de39992bbaa2 100644
--- a/drivers/gpu/drm/vc4/vc4_kms.c
+++ b/drivers/gpu/drm/vc4/vc4_kms.c
@@ -103,7 +103,7 @@ static int vc4_ctm_obj_init(struct vc4_dev *vc4)
drm_modeset_lock_init(&vc4->ctm_state_lock);
- ctm_state = kzalloc(sizeof(*ctm_state), GFP_KERNEL);
+ ctm_state = kzalloc_obj(*ctm_state, GFP_KERNEL);
if (!ctm_state)
return -ENOMEM;
@@ -734,7 +734,7 @@ static int vc4_load_tracker_obj_init(struct vc4_dev *vc4)
{
struct vc4_load_tracker_state *load_state;
- load_state = kzalloc(sizeof(*load_state), GFP_KERNEL);
+ load_state = kzalloc_obj(*load_state, GFP_KERNEL);
if (!load_state)
return -ENOMEM;
@@ -752,7 +752,7 @@ vc4_hvs_channels_duplicate_state(struct drm_private_obj *obj)
struct vc4_hvs_state *state;
unsigned int i;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
@@ -817,7 +817,7 @@ static int vc4_hvs_channels_obj_init(struct vc4_dev *vc4)
{
struct vc4_hvs_state *state;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return -ENOMEM;
@@ -911,7 +911,7 @@ static int vc4_pv_muxing_atomic_check(struct drm_device *dev,
* If the layout changes and doesn't give us that in the future,
* we will need to have something smarter, but it works so far.
*/
- sorted_crtcs = kmalloc_array(dev->num_crtcs, sizeof(*sorted_crtcs), GFP_KERNEL);
+ sorted_crtcs = kmalloc_objs(*sorted_crtcs, dev->num_crtcs, GFP_KERNEL);
if (!sorted_crtcs)
return -ENOMEM;
diff --git a/drivers/gpu/drm/vc4/vc4_perfmon.c b/drivers/gpu/drm/vc4/vc4_perfmon.c
index 1ac80c0b258f..26e89e7054a0 100644
--- a/drivers/gpu/drm/vc4/vc4_perfmon.c
+++ b/drivers/gpu/drm/vc4/vc4_perfmon.c
@@ -172,8 +172,7 @@ int vc4_perfmon_create_ioctl(struct drm_device *dev, void *data,
return -EINVAL;
}
- perfmon = kzalloc(struct_size(perfmon, counters, req->ncounters),
- GFP_KERNEL);
+ perfmon = kzalloc_flex(*perfmon, counters, req->ncounters, GFP_KERNEL);
if (!perfmon)
return -ENOMEM;
perfmon->dev = vc4;
diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c
index f00d4076ba07..26392ae43b99 100644
--- a/drivers/gpu/drm/vc4/vc4_plane.c
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
@@ -374,7 +374,7 @@ static void vc4_plane_reset(struct drm_plane *plane)
kfree(plane->state);
- vc4_state = kzalloc(sizeof(*vc4_state), GFP_KERNEL);
+ vc4_state = kzalloc_obj(*vc4_state, GFP_KERNEL);
if (!vc4_state)
return;
diff --git a/drivers/gpu/drm/vc4/vc4_validate_shaders.c b/drivers/gpu/drm/vc4/vc4_validate_shaders.c
index b50b6cdac3f4..8e2fe5eef1b9 100644
--- a/drivers/gpu/drm/vc4/vc4_validate_shaders.c
+++ b/drivers/gpu/drm/vc4/vc4_validate_shaders.c
@@ -803,7 +803,7 @@ vc4_validate_shader(struct drm_gem_dma_object *shader_obj)
if (!validation_state.branch_targets)
goto fail;
- validated_shader = kcalloc(1, sizeof(*validated_shader), GFP_KERNEL);
+ validated_shader = kzalloc_objs(*validated_shader, 1, GFP_KERNEL);
if (!validated_shader)
goto fail;
diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c
index 260c64733972..7dc9e2e422f5 100644
--- a/drivers/gpu/drm/vgem/vgem_drv.c
+++ b/drivers/gpu/drm/vgem/vgem_drv.c
@@ -60,7 +60,7 @@ static int vgem_open(struct drm_device *dev, struct drm_file *file)
struct vgem_file *vfile;
int ret;
- vfile = kzalloc(sizeof(*vfile), GFP_KERNEL);
+ vfile = kzalloc_obj(*vfile, GFP_KERNEL);
if (!vfile)
return -ENOMEM;
@@ -94,7 +94,7 @@ static struct drm_gem_object *vgem_gem_create_object(struct drm_device *dev, siz
{
struct drm_gem_shmem_object *obj;
- obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ obj = kzalloc_obj(*obj, GFP_KERNEL);
if (!obj)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/vgem/vgem_fence.c b/drivers/gpu/drm/vgem/vgem_fence.c
index 07db319c3d7f..313e706abe37 100644
--- a/drivers/gpu/drm/vgem/vgem_fence.c
+++ b/drivers/gpu/drm/vgem/vgem_fence.c
@@ -71,7 +71,7 @@ static struct dma_fence *vgem_fence_create(struct vgem_file *vfile,
{
struct vgem_fence *fence;
- fence = kzalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kzalloc_obj(*fence, GFP_KERNEL);
if (!fence)
return NULL;
diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c
index 6a962c1d6e95..a4b7761d9250 100644
--- a/drivers/gpu/drm/virtio/virtgpu_display.c
+++ b/drivers/gpu/drm/virtio/virtgpu_display.c
@@ -334,7 +334,7 @@ virtio_gpu_user_framebuffer_create(struct drm_device *dev,
if (!obj)
return ERR_PTR(-EINVAL);
- virtio_gpu_fb = kzalloc(sizeof(*virtio_gpu_fb), GFP_KERNEL);
+ virtio_gpu_fb = kzalloc_obj(*virtio_gpu_fb, GFP_KERNEL);
if (virtio_gpu_fb == NULL) {
drm_gem_object_put(obj);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/virtio/virtgpu_fence.c b/drivers/gpu/drm/virtio/virtgpu_fence.c
index 44c1d8ef3c4d..7ee31fd89741 100644
--- a/drivers/gpu/drm/virtio/virtgpu_fence.c
+++ b/drivers/gpu/drm/virtio/virtgpu_fence.c
@@ -61,8 +61,8 @@ struct virtio_gpu_fence *virtio_gpu_fence_alloc(struct virtio_gpu_device *vgdev,
{
uint64_t fence_context = base_fence_ctx + ring_idx;
struct virtio_gpu_fence_driver *drv = &vgdev->fence_drv;
- struct virtio_gpu_fence *fence = kzalloc(sizeof(struct virtio_gpu_fence),
- GFP_KERNEL);
+ struct virtio_gpu_fence *fence = kzalloc_obj(struct virtio_gpu_fence,
+ GFP_KERNEL);
if (!fence)
return fence;
diff --git a/drivers/gpu/drm/virtio/virtgpu_gem.c b/drivers/gpu/drm/virtio/virtgpu_gem.c
index 90c99d83c4cf..a2f462aeec25 100644
--- a/drivers/gpu/drm/virtio/virtgpu_gem.c
+++ b/drivers/gpu/drm/virtio/virtgpu_gem.c
@@ -154,7 +154,7 @@ struct virtio_gpu_object_array *virtio_gpu_panic_array_alloc(void)
{
struct virtio_gpu_object_array *objs;
- objs = kmalloc(sizeof(struct virtio_gpu_object_array), GFP_ATOMIC);
+ objs = kmalloc_obj(struct virtio_gpu_object_array, GFP_ATOMIC);
if (!objs)
return NULL;
@@ -167,7 +167,7 @@ struct virtio_gpu_object_array *virtio_gpu_array_alloc(u32 nents)
{
struct virtio_gpu_object_array *objs;
- objs = kmalloc(struct_size(objs, objs, nents), GFP_KERNEL);
+ objs = kmalloc_flex(*objs, objs, nents, GFP_KERNEL);
if (!objs)
return NULL;
diff --git a/drivers/gpu/drm/virtio/virtgpu_kms.c b/drivers/gpu/drm/virtio/virtgpu_kms.c
index f3594695bb82..b1a13946d4db 100644
--- a/drivers/gpu/drm/virtio/virtgpu_kms.c
+++ b/drivers/gpu/drm/virtio/virtgpu_kms.c
@@ -316,7 +316,7 @@ int virtio_gpu_driver_open(struct drm_device *dev, struct drm_file *file)
return 0;
/* allocate a virt GPU context for this opener */
- vfpriv = kzalloc(sizeof(*vfpriv), GFP_KERNEL);
+ vfpriv = kzalloc_obj(*vfpriv, GFP_KERNEL);
if (!vfpriv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/virtio/virtgpu_object.c b/drivers/gpu/drm/virtio/virtgpu_object.c
index 4270bfede7b9..c7381c564492 100644
--- a/drivers/gpu/drm/virtio/virtgpu_object.c
+++ b/drivers/gpu/drm/virtio/virtgpu_object.c
@@ -149,7 +149,7 @@ struct drm_gem_object *virtio_gpu_create_object(struct drm_device *dev,
struct virtio_gpu_object_shmem *shmem;
struct drm_gem_shmem_object *dshmem;
- shmem = kzalloc(sizeof(*shmem), GFP_KERNEL);
+ shmem = kzalloc_obj(*shmem, GFP_KERNEL);
if (!shmem)
return ERR_PTR(-ENOMEM);
@@ -177,9 +177,7 @@ static int virtio_gpu_object_shmem_init(struct virtio_gpu_device *vgdev,
else
*nents = pages->orig_nents;
- *ents = kvmalloc_array(*nents,
- sizeof(struct virtio_gpu_mem_entry),
- GFP_KERNEL);
+ *ents = kvmalloc_objs(struct virtio_gpu_mem_entry, *nents, GFP_KERNEL);
if (!(*ents)) {
DRM_ERROR("failed to allocate ent list\n");
return -ENOMEM;
diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c b/drivers/gpu/drm/virtio/virtgpu_plane.c
index a7863f8ee4ee..9b72ece71264 100644
--- a/drivers/gpu/drm/virtio/virtgpu_plane.c
+++ b/drivers/gpu/drm/virtio/virtgpu_plane.c
@@ -79,7 +79,7 @@ drm_plane_state *virtio_gpu_plane_duplicate_state(struct drm_plane *plane)
if (WARN_ON(!plane->state))
return NULL;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return NULL;
diff --git a/drivers/gpu/drm/virtio/virtgpu_prime.c b/drivers/gpu/drm/virtio/virtgpu_prime.c
index ce49282198cb..9cae1f3b18e8 100644
--- a/drivers/gpu/drm/virtio/virtgpu_prime.c
+++ b/drivers/gpu/drm/virtio/virtgpu_prime.c
@@ -164,9 +164,8 @@ int virtgpu_dma_buf_import_sgt(struct virtio_gpu_mem_entry **ents,
if (IS_ERR(sgt))
return PTR_ERR(sgt);
- *ents = kvmalloc_array(sgt->nents,
- sizeof(struct virtio_gpu_mem_entry),
- GFP_KERNEL);
+ *ents = kvmalloc_objs(struct virtio_gpu_mem_entry, sgt->nents,
+ GFP_KERNEL);
if (!(*ents)) {
dma_buf_unmap_attachment(attach, sgt, DMA_BIDIRECTIONAL);
return -ENOMEM;
@@ -315,7 +314,7 @@ struct drm_gem_object *virtgpu_gem_prime_import(struct drm_device *dev,
if (!vgdev->has_resource_blob || vgdev->has_virgl_3d)
return drm_gem_prime_import(dev, buf);
- bo = kzalloc(sizeof(*bo), GFP_KERNEL);
+ bo = kzalloc_obj(*bo, GFP_KERNEL);
if (!bo)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/virtio/virtgpu_submit.c b/drivers/gpu/drm/virtio/virtgpu_submit.c
index 7d34cf83f5f2..8f171d87545f 100644
--- a/drivers/gpu/drm/virtio/virtgpu_submit.c
+++ b/drivers/gpu/drm/virtio/virtgpu_submit.c
@@ -104,7 +104,7 @@ virtio_gpu_parse_deps(struct virtio_gpu_submit *submit)
* internally for allocations larger than a page size, preventing
* storm of KMSG warnings.
*/
- syncobjs = kvcalloc(num_in_syncobjs, sizeof(*syncobjs), GFP_KERNEL);
+ syncobjs = kvzalloc_objs(*syncobjs, num_in_syncobjs, GFP_KERNEL);
if (!syncobjs)
return -ENOMEM;
@@ -195,7 +195,7 @@ static int virtio_gpu_parse_post_deps(struct virtio_gpu_submit *submit)
if (!num_out_syncobjs)
return 0;
- post_deps = kvcalloc(num_out_syncobjs, sizeof(*post_deps), GFP_KERNEL);
+ post_deps = kvzalloc_objs(*post_deps, num_out_syncobjs, GFP_KERNEL);
if (!post_deps)
return -ENOMEM;
@@ -277,7 +277,7 @@ static int virtio_gpu_fence_event_create(struct drm_device *dev,
struct virtio_gpu_fence_event *e = NULL;
int ret;
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e)
return -ENOMEM;
diff --git a/drivers/gpu/drm/virtio/virtgpu_vq.c b/drivers/gpu/drm/virtio/virtgpu_vq.c
index 0c194b4e9488..9a45a58e9f58 100644
--- a/drivers/gpu/drm/virtio/virtgpu_vq.c
+++ b/drivers/gpu/drm/virtio/virtgpu_vq.c
@@ -312,7 +312,7 @@ static struct sg_table *vmalloc_to_sgt(char *data, uint32_t size, int *sg_ents)
if (WARN_ON(!PAGE_ALIGNED(data)))
return NULL;
- sgt = kmalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kmalloc_obj(*sgt, GFP_KERNEL);
if (!sgt)
return NULL;
@@ -936,8 +936,7 @@ int virtio_gpu_cmd_get_display_info(struct virtio_gpu_device *vgdev)
struct virtio_gpu_vbuffer *vbuf;
void *resp_buf;
- resp_buf = kzalloc(sizeof(struct virtio_gpu_resp_display_info),
- GFP_KERNEL);
+ resp_buf = kzalloc_obj(struct virtio_gpu_resp_display_info, GFP_KERNEL);
if (!resp_buf)
return -ENOMEM;
@@ -959,8 +958,7 @@ int virtio_gpu_cmd_get_capset_info(struct virtio_gpu_device *vgdev, int idx)
struct virtio_gpu_vbuffer *vbuf;
void *resp_buf;
- resp_buf = kzalloc(sizeof(struct virtio_gpu_resp_capset_info),
- GFP_KERNEL);
+ resp_buf = kzalloc_obj(struct virtio_gpu_resp_capset_info, GFP_KERNEL);
if (!resp_buf)
return -ENOMEM;
@@ -995,7 +993,7 @@ int virtio_gpu_cmd_get_capset(struct virtio_gpu_device *vgdev,
if (version > vgdev->capsets[idx].max_version)
return -EINVAL;
- cache_ent = kzalloc(sizeof(*cache_ent), GFP_KERNEL);
+ cache_ent = kzalloc_obj(*cache_ent, GFP_KERNEL);
if (!cache_ent)
return -ENOMEM;
@@ -1063,8 +1061,7 @@ int virtio_gpu_cmd_get_edids(struct virtio_gpu_device *vgdev)
return -EINVAL;
for (scanout = 0; scanout < vgdev->num_scanouts; scanout++) {
- resp_buf = kzalloc(sizeof(struct virtio_gpu_resp_edid),
- GFP_KERNEL);
+ resp_buf = kzalloc_obj(struct virtio_gpu_resp_edid, GFP_KERNEL);
if (!resp_buf)
return -ENOMEM;
@@ -1341,7 +1338,7 @@ virtio_gpu_cmd_resource_assign_uuid(struct virtio_gpu_device *vgdev,
struct virtio_gpu_vbuffer *vbuf;
struct virtio_gpu_resp_resource_uuid *resp_buf;
- resp_buf = kzalloc(sizeof(*resp_buf), GFP_KERNEL);
+ resp_buf = kzalloc_obj(*resp_buf, GFP_KERNEL);
if (!resp_buf) {
spin_lock(&vgdev->resource_export_lock);
bo->uuid_state = STATE_ERR;
@@ -1394,7 +1391,7 @@ int virtio_gpu_cmd_map(struct virtio_gpu_device *vgdev,
struct virtio_gpu_vbuffer *vbuf;
struct virtio_gpu_resp_map_info *resp_buf;
- resp_buf = kzalloc(sizeof(*resp_buf), GFP_KERNEL);
+ resp_buf = kzalloc_obj(*resp_buf, GFP_KERNEL);
if (!resp_buf)
return -ENOMEM;
diff --git a/drivers/gpu/drm/virtio/virtgpu_vram.c b/drivers/gpu/drm/virtio/virtgpu_vram.c
index 5ad3b7c6f73c..da5d4ee8ddef 100644
--- a/drivers/gpu/drm/virtio/virtgpu_vram.c
+++ b/drivers/gpu/drm/virtio/virtgpu_vram.c
@@ -79,7 +79,7 @@ struct sg_table *virtio_gpu_vram_map_dma_buf(struct virtio_gpu_object *bo,
dma_addr_t addr;
int ret;
- sgt = kzalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kzalloc_obj(*sgt, GFP_KERNEL);
if (!sgt)
return ERR_PTR(-ENOMEM);
@@ -193,7 +193,7 @@ int virtio_gpu_vram_create(struct virtio_gpu_device *vgdev,
struct virtio_gpu_object_vram *vram;
int ret;
- vram = kzalloc(sizeof(*vram), GFP_KERNEL);
+ vram = kzalloc_obj(*vram, GFP_KERNEL);
if (!vram)
return -ENOMEM;
diff --git a/drivers/gpu/drm/vkms/vkms_colorop.c b/drivers/gpu/drm/vkms/vkms_colorop.c
index d03a1f2e9c41..8aeea73de617 100644
--- a/drivers/gpu/drm/vkms/vkms_colorop.c
+++ b/drivers/gpu/drm/vkms/vkms_colorop.c
@@ -24,7 +24,7 @@ static int vkms_initialize_color_pipeline(struct drm_plane *plane, struct drm_pr
memset(ops, 0, sizeof(ops));
/* 1st op: 1d curve */
- ops[i] = kzalloc(sizeof(*ops[i]), GFP_KERNEL);
+ ops[i] = kzalloc_obj(*ops[i], GFP_KERNEL);
if (!ops[i]) {
drm_err(dev, "KMS: Failed to allocate colorop\n");
ret = -ENOMEM;
@@ -41,7 +41,7 @@ static int vkms_initialize_color_pipeline(struct drm_plane *plane, struct drm_pr
i++;
/* 2nd op: 3x4 matrix */
- ops[i] = kzalloc(sizeof(*ops[i]), GFP_KERNEL);
+ ops[i] = kzalloc_obj(*ops[i], GFP_KERNEL);
if (!ops[i]) {
drm_err(dev, "KMS: Failed to allocate colorop\n");
ret = -ENOMEM;
@@ -57,7 +57,7 @@ static int vkms_initialize_color_pipeline(struct drm_plane *plane, struct drm_pr
i++;
/* 3rd op: 3x4 matrix */
- ops[i] = kzalloc(sizeof(*ops[i]), GFP_KERNEL);
+ ops[i] = kzalloc_obj(*ops[i], GFP_KERNEL);
if (!ops[i]) {
drm_err(dev, "KMS: Failed to allocate colorop\n");
ret = -ENOMEM;
@@ -73,7 +73,7 @@ static int vkms_initialize_color_pipeline(struct drm_plane *plane, struct drm_pr
i++;
/* 4th op: 1d curve */
- ops[i] = kzalloc(sizeof(*ops[i]), GFP_KERNEL);
+ ops[i] = kzalloc_obj(*ops[i], GFP_KERNEL);
if (!ops[i]) {
drm_err(dev, "KMS: Failed to allocate colorop\n");
ret = -ENOMEM;
diff --git a/drivers/gpu/drm/vkms/vkms_config.c b/drivers/gpu/drm/vkms/vkms_config.c
index 8788df9edb7c..8447b654e229 100644
--- a/drivers/gpu/drm/vkms/vkms_config.c
+++ b/drivers/gpu/drm/vkms/vkms_config.c
@@ -12,7 +12,7 @@ struct vkms_config *vkms_config_create(const char *dev_name)
{
struct vkms_config *config;
- config = kzalloc(sizeof(*config), GFP_KERNEL);
+ config = kzalloc_obj(*config, GFP_KERNEL);
if (!config)
return ERR_PTR(-ENOMEM);
@@ -388,7 +388,7 @@ struct vkms_config_plane *vkms_config_create_plane(struct vkms_config *config)
{
struct vkms_config_plane *plane_cfg;
- plane_cfg = kzalloc(sizeof(*plane_cfg), GFP_KERNEL);
+ plane_cfg = kzalloc_obj(*plane_cfg, GFP_KERNEL);
if (!plane_cfg)
return ERR_PTR(-ENOMEM);
@@ -448,7 +448,7 @@ struct vkms_config_crtc *vkms_config_create_crtc(struct vkms_config *config)
{
struct vkms_config_crtc *crtc_cfg;
- crtc_cfg = kzalloc(sizeof(*crtc_cfg), GFP_KERNEL);
+ crtc_cfg = kzalloc_obj(*crtc_cfg, GFP_KERNEL);
if (!crtc_cfg)
return ERR_PTR(-ENOMEM);
@@ -527,7 +527,7 @@ struct vkms_config_encoder *vkms_config_create_encoder(struct vkms_config *confi
{
struct vkms_config_encoder *encoder_cfg;
- encoder_cfg = kzalloc(sizeof(*encoder_cfg), GFP_KERNEL);
+ encoder_cfg = kzalloc_obj(*encoder_cfg, GFP_KERNEL);
if (!encoder_cfg)
return ERR_PTR(-ENOMEM);
@@ -591,7 +591,7 @@ struct vkms_config_connector *vkms_config_create_connector(struct vkms_config *c
{
struct vkms_config_connector *connector_cfg;
- connector_cfg = kzalloc(sizeof(*connector_cfg), GFP_KERNEL);
+ connector_cfg = kzalloc_obj(*connector_cfg, GFP_KERNEL);
if (!connector_cfg)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/vkms/vkms_configfs.c b/drivers/gpu/drm/vkms/vkms_configfs.c
index 506666e21c91..f6471ee9a58c 100644
--- a/drivers/gpu/drm/vkms/vkms_configfs.c
+++ b/drivers/gpu/drm/vkms/vkms_configfs.c
@@ -769,7 +769,7 @@ static struct config_group *make_device_group(struct config_group *group,
if (strcmp(name, DEFAULT_DEVICE_NAME) == 0)
return ERR_PTR(-EINVAL);
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c
index 9a7db1d51022..f5b99ebb37e3 100644
--- a/drivers/gpu/drm/vkms/vkms_crtc.c
+++ b/drivers/gpu/drm/vkms/vkms_crtc.c
@@ -62,7 +62,7 @@ vkms_atomic_crtc_duplicate_state(struct drm_crtc *crtc)
if (WARN_ON(!crtc->state))
return NULL;
- vkms_state = kzalloc(sizeof(*vkms_state), GFP_KERNEL);
+ vkms_state = kzalloc_obj(*vkms_state, GFP_KERNEL);
if (!vkms_state)
return NULL;
@@ -87,8 +87,8 @@ static void vkms_atomic_crtc_destroy_state(struct drm_crtc *crtc,
static void vkms_atomic_crtc_reset(struct drm_crtc *crtc)
{
- struct vkms_crtc_state *vkms_state =
- kzalloc(sizeof(*vkms_state), GFP_KERNEL);
+ struct vkms_crtc_state *vkms_state = kzalloc_obj(*vkms_state,
+ GFP_KERNEL);
if (crtc->state)
vkms_atomic_crtc_destroy_state(crtc, crtc->state);
@@ -137,7 +137,8 @@ static int vkms_crtc_atomic_check(struct drm_crtc *crtc,
i++;
}
- vkms_state->active_planes = kcalloc(i, sizeof(*vkms_state->active_planes), GFP_KERNEL);
+ vkms_state->active_planes = kzalloc_objs(*vkms_state->active_planes, i,
+ GFP_KERNEL);
if (!vkms_state->active_planes)
return -ENOMEM;
vkms_state->num_active_planes = i;
diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c
index 19fe6acad306..73d3c4af7743 100644
--- a/drivers/gpu/drm/vkms/vkms_plane.c
+++ b/drivers/gpu/drm/vkms/vkms_plane.c
@@ -56,11 +56,11 @@ vkms_plane_duplicate_state(struct drm_plane *plane)
struct vkms_plane_state *vkms_state;
struct vkms_frame_info *frame_info;
- vkms_state = kzalloc(sizeof(*vkms_state), GFP_KERNEL);
+ vkms_state = kzalloc_obj(*vkms_state, GFP_KERNEL);
if (!vkms_state)
return NULL;
- frame_info = kzalloc(sizeof(*frame_info), GFP_KERNEL);
+ frame_info = kzalloc_obj(*frame_info, GFP_KERNEL);
if (!frame_info) {
DRM_DEBUG_KMS("Couldn't allocate frame_info\n");
kfree(vkms_state);
@@ -104,7 +104,7 @@ static void vkms_plane_reset(struct drm_plane *plane)
plane->state = NULL; /* must be set to NULL here */
}
- vkms_state = kzalloc(sizeof(*vkms_state), GFP_KERNEL);
+ vkms_state = kzalloc_obj(*vkms_state, GFP_KERNEL);
if (!vkms_state) {
DRM_ERROR("Cannot allocate vkms_plane_state\n");
return;
diff --git a/drivers/gpu/drm/vkms/vkms_writeback.c b/drivers/gpu/drm/vkms/vkms_writeback.c
index 097ae1f0a230..1cd760f75779 100644
--- a/drivers/gpu/drm/vkms/vkms_writeback.c
+++ b/drivers/gpu/drm/vkms/vkms_writeback.c
@@ -81,7 +81,7 @@ static int vkms_wb_prepare_job(struct drm_writeback_connector *wb_connector,
if (!job->fb)
return 0;
- vkmsjob = kzalloc(sizeof(*vkmsjob), GFP_KERNEL);
+ vkmsjob = kzalloc_obj(*vkmsjob, GFP_KERNEL);
if (!vkmsjob)
return -ENOMEM;
diff --git a/drivers/gpu/drm/vmwgfx/ttm_object.c b/drivers/gpu/drm/vmwgfx/ttm_object.c
index 36d46b79562a..23ffb7069d01 100644
--- a/drivers/gpu/drm/vmwgfx/ttm_object.c
+++ b/drivers/gpu/drm/vmwgfx/ttm_object.c
@@ -318,7 +318,7 @@ int ttm_ref_object_add(struct ttm_object_file *tfile,
if (require_existed)
return -EPERM;
- ref = kmalloc(sizeof(*ref), GFP_KERNEL);
+ ref = kmalloc_obj(*ref, GFP_KERNEL);
if (unlikely(ref == NULL)) {
return -ENOMEM;
}
@@ -404,7 +404,7 @@ void ttm_object_file_release(struct ttm_object_file **p_tfile)
struct ttm_object_file *ttm_object_file_init(struct ttm_object_device *tdev)
{
- struct ttm_object_file *tfile = kmalloc(sizeof(*tfile), GFP_KERNEL);
+ struct ttm_object_file *tfile = kmalloc_obj(*tfile, GFP_KERNEL);
if (unlikely(tfile == NULL))
return NULL;
@@ -422,7 +422,7 @@ struct ttm_object_file *ttm_object_file_init(struct ttm_object_device *tdev)
struct ttm_object_device *
ttm_object_device_init(const struct dma_buf_ops *ops)
{
- struct ttm_object_device *tdev = kmalloc(sizeof(*tdev), GFP_KERNEL);
+ struct ttm_object_device *tdev = kmalloc_obj(*tdev, GFP_KERNEL);
if (unlikely(tdev == NULL))
return NULL;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c b/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c
index fa5841fda659..60ebcfe6d428 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c
@@ -586,8 +586,8 @@ int vmw_bo_cpu_blit(struct vmw_bo *vmw_dst,
w, h, diff);
if (!src->ttm->pages && src->ttm->sg) {
- src_pages = kvmalloc_array(src->ttm->num_pages,
- sizeof(struct page *), GFP_KERNEL);
+ src_pages = kvmalloc_objs(struct page *, src->ttm->num_pages,
+ GFP_KERNEL);
if (!src_pages)
return -ENOMEM;
ret = drm_prime_sg_to_page_array(src->ttm->sg, src_pages,
@@ -596,8 +596,8 @@ int vmw_bo_cpu_blit(struct vmw_bo *vmw_dst,
goto out;
}
if (!dst->ttm->pages && dst->ttm->sg) {
- dst_pages = kvmalloc_array(dst->ttm->num_pages,
- sizeof(struct page *), GFP_KERNEL);
+ dst_pages = kvmalloc_objs(struct page *, dst->ttm->num_pages,
+ GFP_KERNEL);
if (!dst_pages) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c b/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c
index b22887e8c881..97290b5d65d0 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c
@@ -449,7 +449,7 @@ int vmw_bo_create(struct vmw_private *vmw,
{
int ret;
- *p_bo = kmalloc(sizeof(**p_bo), GFP_KERNEL);
+ *p_bo = kmalloc_obj(**p_bo, GFP_KERNEL);
if (unlikely(!*p_bo)) {
DRM_ERROR("Failed to allocate a buffer.\n");
return -ENOMEM;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c b/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
index 8fe02131a6c4..cfecea9bfa24 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
@@ -103,7 +103,7 @@ struct vmw_fifo_state *vmw_fifo_create(struct vmw_private *dev_priv)
if (!dev_priv->fifo_mem)
return NULL;
- fifo = kzalloc(sizeof(*fifo), GFP_KERNEL);
+ fifo = kzalloc_obj(*fifo, GFP_KERNEL);
if (!fifo)
return ERR_PTR(-ENOMEM);
fifo->static_buffer_size = VMWGFX_FIFO_STATIC_SIZE;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c
index 94e8982f5616..5756af107555 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c
@@ -961,7 +961,7 @@ void *vmw_cmdbuf_alloc(struct vmw_cmdbuf_man *man,
*p_header = NULL;
- header = kzalloc(sizeof(*header), GFP_KERNEL);
+ header = kzalloc_obj(*header, GFP_KERNEL);
if (!header)
return ERR_PTR(-ENOMEM);
@@ -1296,7 +1296,7 @@ struct vmw_cmdbuf_man *vmw_cmdbuf_man_create(struct vmw_private *dev_priv)
if (!(dev_priv->capabilities & SVGA_CAP_COMMAND_BUFFERS))
return ERR_PTR(-ENOSYS);
- man = kzalloc(sizeof(*man), GFP_KERNEL);
+ man = kzalloc_obj(*man, GFP_KERNEL);
if (!man)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c b/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c
index 47bc0b411055..b8b4834d40fb 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c
@@ -200,7 +200,7 @@ int vmw_cmdbuf_res_add(struct vmw_cmdbuf_res_manager *man,
{
struct vmw_cmdbuf_res *cres;
- cres = kzalloc(sizeof(*cres), GFP_KERNEL);
+ cres = kzalloc_obj(*cres, GFP_KERNEL);
if (unlikely(!cres))
return -ENOMEM;
@@ -284,7 +284,7 @@ vmw_cmdbuf_res_man_create(struct vmw_private *dev_priv)
{
struct vmw_cmdbuf_res_manager *man;
- man = kzalloc(sizeof(*man), GFP_KERNEL);
+ man = kzalloc_obj(*man, GFP_KERNEL);
if (!man)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_context.c b/drivers/gpu/drm/vmwgfx/vmwgfx_context.c
index ecc503e42790..0845c00e777d 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_context.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_context.c
@@ -738,7 +738,7 @@ static int vmw_context_define(struct drm_device *dev, void *data,
return -EINVAL;
}
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (unlikely(!ctx)) {
ret = -ENOMEM;
goto out_ret;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c b/drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c
index 98331c4c0335..6220a1a0326a 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c
@@ -604,7 +604,7 @@ struct vmw_resource *vmw_cotable_alloc(struct vmw_private *dev_priv,
int ret;
u32 num_entries;
- vcotbl = kzalloc(sizeof(*vcotbl), GFP_KERNEL);
+ vcotbl = kzalloc_obj(*vcotbl, GFP_KERNEL);
if (unlikely(!vcotbl)) {
ret = -ENOMEM;
goto out_no_alloc;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
index 599052d07ae8..eb5695bcae89 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
@@ -1209,7 +1209,7 @@ static int vmw_driver_open(struct drm_device *dev, struct drm_file *file_priv)
struct vmw_fpriv *vmw_fp;
int ret = -ENOMEM;
- vmw_fp = kzalloc(sizeof(*vmw_fp), GFP_KERNEL);
+ vmw_fp = kzalloc_obj(*vmw_fp, GFP_KERNEL);
if (unlikely(!vmw_fp))
return ret;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
index 85795082fef9..4500771a8f42 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
@@ -129,7 +129,7 @@ static const struct dma_fence_ops vmw_fence_ops = {
struct vmw_fence_manager *vmw_fence_manager_init(struct vmw_private *dev_priv)
{
- struct vmw_fence_manager *fman = kzalloc(sizeof(*fman), GFP_KERNEL);
+ struct vmw_fence_manager *fman = kzalloc_obj(*fman, GFP_KERNEL);
if (unlikely(!fman))
return NULL;
@@ -251,7 +251,7 @@ int vmw_fence_create(struct vmw_fence_manager *fman,
struct vmw_fence_obj *fence;
int ret;
- fence = kzalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kzalloc_obj(*fence, GFP_KERNEL);
if (unlikely(!fence))
return -ENOMEM;
@@ -298,7 +298,7 @@ int vmw_user_fence_create(struct drm_file *file_priv,
struct vmw_fence_obj *tmp;
int ret;
- ufence = kzalloc(sizeof(*ufence), GFP_KERNEL);
+ ufence = kzalloc_obj(*ufence, GFP_KERNEL);
if (unlikely(!ufence)) {
ret = -ENOMEM;
goto out_no_object;
@@ -580,7 +580,7 @@ int vmw_event_fence_action_queue(struct drm_file *file_priv,
struct vmw_event_fence_action *eaction;
struct vmw_fence_manager *fman = fman_from_fence(fence);
- eaction = kzalloc(sizeof(*eaction), GFP_KERNEL);
+ eaction = kzalloc_obj(*eaction, GFP_KERNEL);
if (unlikely(!eaction))
return -ENOMEM;
@@ -612,7 +612,7 @@ static int vmw_event_fence_action_create(struct drm_file *file_priv,
struct drm_device *dev = &fman->dev_priv->drm;
int ret;
- event = kzalloc(sizeof(*event), GFP_KERNEL);
+ event = kzalloc_obj(*event, GFP_KERNEL);
if (unlikely(!event)) {
DRM_ERROR("Failed to allocate an event.\n");
ret = -ENOMEM;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
index 5bd967fbcf55..1a45220d3607 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
@@ -57,7 +57,7 @@ static int vmw_gmrid_man_get_node(struct ttm_resource_manager *man,
struct vmwgfx_gmrid_man *gman = to_gmrid_manager(man);
int id;
- *res = kmalloc(sizeof(**res), GFP_KERNEL);
+ *res = kmalloc_obj(**res, GFP_KERNEL);
if (!*res)
return -ENOMEM;
@@ -154,8 +154,7 @@ static const struct ttm_resource_manager_func vmw_gmrid_manager_func;
int vmw_gmrid_man_init(struct vmw_private *dev_priv, int type)
{
struct ttm_resource_manager *man;
- struct vmwgfx_gmrid_man *gman =
- kzalloc(sizeof(*gman), GFP_KERNEL);
+ struct vmwgfx_gmrid_man *gman = kzalloc_obj(*gman, GFP_KERNEL);
if (unlikely(!gman))
return -ENOMEM;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
index 835d1eed8dd9..1c4fc5f0d586 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
@@ -196,7 +196,7 @@ int vmw_present_ioctl(struct drm_device *dev, void *data,
goto out_clips;
}
- clips = kcalloc(num_clips, sizeof(*clips), GFP_KERNEL);
+ clips = kzalloc_objs(*clips, num_clips, GFP_KERNEL);
if (clips == NULL) {
DRM_ERROR("Failed to allocate clip rect list.\n");
ret = -ENOMEM;
@@ -273,7 +273,7 @@ int vmw_present_readback_ioctl(struct drm_device *dev, void *data,
goto out_clips;
}
- clips = kcalloc(num_clips, sizeof(*clips), GFP_KERNEL);
+ clips = kzalloc_objs(*clips, num_clips, GFP_KERNEL);
if (clips == NULL) {
DRM_ERROR("Failed to allocate clip rect list.\n");
ret = -ENOMEM;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
index bc51b5d55e38..ca6aec15f113 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
@@ -224,7 +224,7 @@ void vmw_du_crtc_reset(struct drm_crtc *crtc)
kfree(vmw_crtc_state_to_vcs(crtc->state));
}
- vcs = kzalloc(sizeof(*vcs), GFP_KERNEL);
+ vcs = kzalloc_obj(*vcs, GFP_KERNEL);
if (!vcs) {
DRM_ERROR("Cannot allocate vmw_crtc_state\n");
@@ -300,7 +300,7 @@ void vmw_du_plane_reset(struct drm_plane *plane)
if (plane->state)
vmw_du_plane_destroy_state(plane, plane->state);
- vps = kzalloc(sizeof(*vps), GFP_KERNEL);
+ vps = kzalloc_obj(*vps, GFP_KERNEL);
if (!vps) {
DRM_ERROR("Cannot allocate vmw_plane_state\n");
@@ -382,7 +382,7 @@ void vmw_du_connector_reset(struct drm_connector *connector)
kfree(vmw_connector_state_to_vcs(connector->state));
}
- vcs = kzalloc(sizeof(*vcs), GFP_KERNEL);
+ vcs = kzalloc_obj(*vcs, GFP_KERNEL);
if (!vcs) {
DRM_ERROR("Cannot allocate vmw_connector_state\n");
@@ -543,7 +543,7 @@ static int vmw_kms_new_framebuffer_surface(struct vmw_private *dev_priv,
return -EINVAL;
}
- vfbs = kzalloc(sizeof(*vfbs), GFP_KERNEL);
+ vfbs = kzalloc_obj(*vfbs, GFP_KERNEL);
if (!vfbs) {
ret = -ENOMEM;
goto out_err1;
@@ -632,7 +632,7 @@ static int vmw_kms_new_framebuffer_bo(struct vmw_private *dev_priv,
return -EINVAL;
}
- vfbd = kzalloc(sizeof(*vfbd), GFP_KERNEL);
+ vfbd = kzalloc_obj(*vfbd, GFP_KERNEL);
if (!vfbd) {
ret = -ENOMEM;
goto out_err1;
@@ -948,8 +948,8 @@ static int vmw_kms_check_topology(struct drm_device *dev,
uint32_t i;
int ret = 0;
- rects = kcalloc(dev->mode_config.num_crtc, sizeof(struct drm_rect),
- GFP_KERNEL);
+ rects = kzalloc_objs(struct drm_rect, dev->mode_config.num_crtc,
+ GFP_KERNEL);
if (!rects)
return -ENOMEM;
@@ -1422,8 +1422,7 @@ int vmw_kms_update_layout_ioctl(struct drm_device *dev, void *data,
}
rects_size = arg->num_outputs * sizeof(struct drm_vmw_rect);
- rects = kcalloc(arg->num_outputs, sizeof(struct drm_vmw_rect),
- GFP_KERNEL);
+ rects = kzalloc_objs(struct drm_vmw_rect, arg->num_outputs, GFP_KERNEL);
if (unlikely(!rects))
return -ENOMEM;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
index c23c9195f0dc..e07ee831064b 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
@@ -416,7 +416,7 @@ static int vmw_ldu_init(struct vmw_private *dev_priv, unsigned unit)
struct drm_crtc *crtc;
int ret;
- ldu = kzalloc(sizeof(*ldu), GFP_KERNEL);
+ ldu = kzalloc_obj(*ldu, GFP_KERNEL);
if (!ldu)
return -ENOMEM;
@@ -547,7 +547,7 @@ int vmw_kms_ldu_init_display(struct vmw_private *dev_priv)
return -EINVAL;
}
- dev_priv->ldu_priv = kmalloc(sizeof(*dev_priv->ldu_priv), GFP_KERNEL);
+ dev_priv->ldu_priv = kmalloc_obj(*dev_priv->ldu_priv, GFP_KERNEL);
if (!dev_priv->ldu_priv)
return -ENOMEM;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c b/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c
index d8204d4265d3..d29ac15a742b 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c
@@ -390,7 +390,7 @@ static unsigned long vmw_mob_calculate_pt_pages(unsigned long data_pages)
*/
struct vmw_mob *vmw_mob_create(unsigned long data_pages)
{
- struct vmw_mob *mob = kzalloc(sizeof(*mob), GFP_KERNEL);
+ struct vmw_mob *mob = kzalloc_obj(*mob, GFP_KERNEL);
if (unlikely(!mob))
return NULL;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c b/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c
index 1d9a42cbc88f..84237edf1ac0 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c
@@ -981,10 +981,9 @@ int vmw_mksstat_add_ioctl(struct drm_device *dev, void *data,
BUG_ON(dev_priv->mksstat_user_pages[slot]);
/* Allocate statically-sized temp arrays for pages -- too big to keep in frame */
- pages_stat = (struct page **)kmalloc_array(
- ARRAY_SIZE(pdesc->statPPNs) +
- ARRAY_SIZE(pdesc->infoPPNs) +
- ARRAY_SIZE(pdesc->strsPPNs), sizeof(*pages_stat), GFP_KERNEL);
+ pages_stat = (struct page **) kmalloc_objs(*pages_stat,
+ ARRAY_SIZE(pdesc->statPPNs) + ARRAY_SIZE(pdesc->infoPPNs) + ARRAY_SIZE(pdesc->strsPPNs),
+ GFP_KERNEL);
if (!pages_stat)
goto err_nomem;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c b/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c
index e20f64b67b26..9a75a35f605b 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c
@@ -539,7 +539,7 @@ int vmw_overlay_init(struct vmw_private *dev_priv)
if (dev_priv->overlay_priv)
return -EINVAL;
- overlay = kzalloc(sizeof(*overlay), GFP_KERNEL);
+ overlay = kzalloc_obj(*overlay, GFP_KERNEL);
if (!overlay)
return -ENOMEM;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
index 5f5f5a94301f..37bcdfb585ce 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
@@ -811,7 +811,7 @@ static int vmw_sou_init(struct vmw_private *dev_priv, unsigned unit)
struct drm_crtc *crtc;
int ret;
- sou = kzalloc(sizeof(*sou), GFP_KERNEL);
+ sou = kzalloc_obj(*sou, GFP_KERNEL);
if (!sou)
return -ENOMEM;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c b/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
index a8c8c9375d29..d74d9b72f80d 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
@@ -595,7 +595,7 @@ int vmw_dx_shader_add(struct vmw_cmdbuf_res_manager *man,
if (!vmw_shader_id_ok(user_key, shader_type))
return -EINVAL;
- shader = kmalloc(sizeof(*shader), GFP_KERNEL);
+ shader = kmalloc_obj(*shader, GFP_KERNEL);
if (!shader) {
return -ENOMEM;
}
@@ -696,7 +696,7 @@ static int vmw_user_shader_alloc(struct vmw_private *dev_priv,
struct vmw_resource *res, *tmp;
int ret;
- ushader = kzalloc(sizeof(*ushader), GFP_KERNEL);
+ ushader = kzalloc_obj(*ushader, GFP_KERNEL);
if (unlikely(!ushader)) {
ret = -ENOMEM;
goto out;
@@ -746,7 +746,7 @@ static struct vmw_resource *vmw_shader_alloc(struct vmw_private *dev_priv,
struct vmw_resource *res;
int ret;
- shader = kzalloc(sizeof(*shader), GFP_KERNEL);
+ shader = kzalloc_obj(*shader, GFP_KERNEL);
if (unlikely(!shader)) {
ret = -ENOMEM;
goto out_err;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
index 20aab725e53a..14f583ab4bac 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
@@ -1541,7 +1541,7 @@ static int vmw_stdu_init(struct vmw_private *dev_priv, unsigned unit)
struct drm_crtc *crtc;
int ret;
- stdu = kzalloc(sizeof(*stdu), GFP_KERNEL);
+ stdu = kzalloc_obj(*stdu, GFP_KERNEL);
if (!stdu)
return -ENOMEM;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_streamoutput.c b/drivers/gpu/drm/vmwgfx/vmwgfx_streamoutput.c
index edcc40659038..6805c03ae248 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_streamoutput.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_streamoutput.c
@@ -284,7 +284,7 @@ int vmw_dx_streamoutput_add(struct vmw_cmdbuf_res_manager *man,
struct vmw_private *dev_priv = ctx->dev_priv;
int ret;
- so = kmalloc(sizeof(*so), GFP_KERNEL);
+ so = kmalloc_obj(*so, GFP_KERNEL);
if (!so) {
return -ENOMEM;
}
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c b/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
index c4ac9b47e23a..9ff2d54d548e 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
@@ -741,7 +741,7 @@ int vmw_surface_define_ioctl(struct drm_device *dev, void *data,
return -EINVAL;
}
- user_srf = kzalloc(sizeof(*user_srf), GFP_KERNEL);
+ user_srf = kzalloc_obj(*user_srf, GFP_KERNEL);
if (unlikely(!user_srf)) {
ret = -ENOMEM;
goto out_unlock;
@@ -767,8 +767,8 @@ int vmw_surface_define_ioctl(struct drm_device *dev, void *data,
ret = PTR_ERR(metadata->sizes);
goto out_no_sizes;
}
- srf->offsets = kmalloc_array(metadata->num_sizes, sizeof(*srf->offsets),
- GFP_KERNEL);
+ srf->offsets = kmalloc_objs(*srf->offsets, metadata->num_sizes,
+ GFP_KERNEL);
if (unlikely(!srf->offsets)) {
ret = -ENOMEM;
goto out_no_offsets;
@@ -2144,7 +2144,7 @@ int vmw_gb_surface_define(struct vmw_private *dev_priv,
if (req->sizes != NULL)
return -EINVAL;
- user_srf = kzalloc(sizeof(*user_srf), GFP_KERNEL);
+ user_srf = kzalloc_obj(*user_srf, GFP_KERNEL);
if (unlikely(!user_srf)) {
ret = -ENOMEM;
goto out_unlock;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c b/drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c
index ee7964cbdaca..08b492534fe9 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c
@@ -37,7 +37,7 @@ static int vmw_sys_man_alloc(struct ttm_resource_manager *man,
const struct ttm_place *place,
struct ttm_resource **res)
{
- *res = kzalloc(sizeof(**res), GFP_KERNEL);
+ *res = kzalloc_obj(**res, GFP_KERNEL);
if (!*res)
return -ENOMEM;
@@ -60,8 +60,7 @@ static const struct ttm_resource_manager_func vmw_sys_manager_func = {
int vmw_sys_man_init(struct vmw_private *dev_priv)
{
struct ttm_device *bdev = &dev_priv->bdev;
- struct ttm_resource_manager *man =
- kzalloc(sizeof(*man), GFP_KERNEL);
+ struct ttm_resource_manager *man = kzalloc_obj(*man, GFP_KERNEL);
if (!man)
return -ENOMEM;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
index 5553892d7c3e..232c2b8ff520 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
@@ -404,7 +404,7 @@ static struct ttm_tt *vmw_ttm_tt_create(struct ttm_buffer_object *bo,
int ret;
bool external = bo->type == ttm_bo_type_sg;
- vmw_be = kzalloc(sizeof(*vmw_be), GFP_KERNEL);
+ vmw_be = kzalloc_obj(*vmw_be, GFP_KERNEL);
if (!vmw_be)
return NULL;
diff --git a/drivers/gpu/drm/xe/display/intel_bo.c b/drivers/gpu/drm/xe/display/intel_bo.c
index e8049a255d21..89ee5f3491c6 100644
--- a/drivers/gpu/drm/xe/display/intel_bo.c
+++ b/drivers/gpu/drm/xe/display/intel_bo.c
@@ -57,7 +57,7 @@ struct intel_frontbuffer *intel_bo_frontbuffer_get(struct drm_gem_object *obj)
{
struct xe_frontbuffer *front;
- front = kmalloc(sizeof(*front), GFP_KERNEL);
+ front = kmalloc_obj(*front, GFP_KERNEL);
if (!front)
return NULL;
diff --git a/drivers/gpu/drm/xe/display/xe_dsb_buffer.c b/drivers/gpu/drm/xe/display/xe_dsb_buffer.c
index fa0acb11eaad..1c35eb2def8c 100644
--- a/drivers/gpu/drm/xe/display/xe_dsb_buffer.c
+++ b/drivers/gpu/drm/xe/display/xe_dsb_buffer.c
@@ -43,7 +43,7 @@ struct intel_dsb_buffer *intel_dsb_buffer_create(struct drm_device *drm, size_t
struct xe_bo *obj;
int ret;
- dsb_buf = kzalloc(sizeof(*dsb_buf), GFP_KERNEL);
+ dsb_buf = kzalloc_obj(*dsb_buf, GFP_KERNEL);
if (!dsb_buf)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
index ed1f65f5ef4d..0266deccb31a 100644
--- a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
+++ b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
@@ -95,7 +95,7 @@ static struct intel_hdcp_gsc_context *intel_hdcp_gsc_context_alloc(struct drm_de
struct intel_hdcp_gsc_context *gsc_context;
int ret;
- gsc_context = kzalloc(sizeof(*gsc_context), GFP_KERNEL);
+ gsc_context = kzalloc_obj(*gsc_context, GFP_KERNEL);
if (!gsc_context)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/xe/display/xe_panic.c b/drivers/gpu/drm/xe/display/xe_panic.c
index e078494dc8ba..e68abd9268f2 100644
--- a/drivers/gpu/drm/xe/display/xe_panic.c
+++ b/drivers/gpu/drm/xe/display/xe_panic.c
@@ -79,7 +79,7 @@ static struct intel_panic *xe_panic_alloc(void)
{
struct intel_panic *panic;
- panic = kzalloc(sizeof(*panic), GFP_KERNEL);
+ panic = kzalloc_obj(*panic, GFP_KERNEL);
return panic;
}
diff --git a/drivers/gpu/drm/xe/display/xe_stolen.c b/drivers/gpu/drm/xe/display/xe_stolen.c
index 8dc2f86ec602..fac3d60e8a31 100644
--- a/drivers/gpu/drm/xe/display/xe_stolen.c
+++ b/drivers/gpu/drm/xe/display/xe_stolen.c
@@ -86,7 +86,7 @@ static struct intel_stolen_node *xe_stolen_node_alloc(struct drm_device *drm)
struct xe_device *xe = to_xe_device(drm);
struct intel_stolen_node *node;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return NULL;
diff --git a/drivers/gpu/drm/xe/tests/xe_bo.c b/drivers/gpu/drm/xe/tests/xe_bo.c
index b7d8e45804cf..acbc7802cc5e 100644
--- a/drivers/gpu/drm/xe/tests/xe_bo.c
+++ b/drivers/gpu/drm/xe/tests/xe_bo.c
@@ -482,7 +482,7 @@ static int shrink_test_run_device(struct xe_device *xe)
unsigned int mem_type;
struct xe_ttm_tt *xe_tt;
- link = kzalloc(sizeof(*link), GFP_KERNEL);
+ link = kzalloc_obj(*link, GFP_KERNEL);
if (!link) {
KUNIT_FAIL(test, "Unexpected link allocation failure\n");
failed = true;
diff --git a/drivers/gpu/drm/xe/xe_bb.c b/drivers/gpu/drm/xe/xe_bb.c
index 8b678297aaa2..18236fbe8e63 100644
--- a/drivers/gpu/drm/xe/xe_bb.c
+++ b/drivers/gpu/drm/xe/xe_bb.c
@@ -31,7 +31,7 @@ static int bb_prefetch(struct xe_gt *gt)
struct xe_bb *xe_bb_new(struct xe_gt *gt, u32 dwords, bool usm)
{
struct xe_tile *tile = gt_to_tile(gt);
- struct xe_bb *bb = kmalloc(sizeof(*bb), GFP_KERNEL);
+ struct xe_bb *bb = kmalloc_obj(*bb, GFP_KERNEL);
int err;
if (!bb)
@@ -62,7 +62,7 @@ struct xe_bb *xe_bb_new(struct xe_gt *gt, u32 dwords, bool usm)
struct xe_bb *xe_bb_ccs_new(struct xe_gt *gt, u32 dwords,
enum xe_sriov_vf_ccs_rw_ctxs ctx_id)
{
- struct xe_bb *bb = kmalloc(sizeof(*bb), GFP_KERNEL);
+ struct xe_bb *bb = kmalloc_obj(*bb, GFP_KERNEL);
struct xe_device *xe = gt_to_xe(gt);
struct xe_sa_manager *bb_pool;
int err;
diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
index 5dd8fcacbb80..31eacbbfe50a 100644
--- a/drivers/gpu/drm/xe/xe_bo.c
+++ b/drivers/gpu/drm/xe/xe_bo.c
@@ -480,7 +480,7 @@ static struct ttm_tt *xe_ttm_tt_create(struct ttm_buffer_object *ttm_bo,
enum ttm_caching caching = ttm_cached;
int err;
- xe_tt = kzalloc(sizeof(*xe_tt), GFP_KERNEL);
+ xe_tt = kzalloc_obj(*xe_tt, GFP_KERNEL);
if (!xe_tt)
return NULL;
@@ -2089,7 +2089,7 @@ static const struct drm_gem_object_funcs xe_gem_object_funcs = {
*/
struct xe_bo *xe_bo_alloc(void)
{
- struct xe_bo *bo = kzalloc(sizeof(*bo), GFP_KERNEL);
+ struct xe_bo *bo = kzalloc_obj(*bo, GFP_KERNEL);
if (!bo)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index 82edd0466005..b58191735e31 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -998,7 +998,7 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
if (!match)
return ERR_PTR(-ENOENT);
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/xe/xe_dep_scheduler.c b/drivers/gpu/drm/xe/xe_dep_scheduler.c
index 9bd3bfd2e526..f1620711fbd2 100644
--- a/drivers/gpu/drm/xe/xe_dep_scheduler.c
+++ b/drivers/gpu/drm/xe/xe_dep_scheduler.c
@@ -86,7 +86,7 @@ xe_dep_scheduler_create(struct xe_device *xe,
};
int err;
- dep_scheduler = kzalloc(sizeof(*dep_scheduler), GFP_KERNEL);
+ dep_scheduler = kzalloc_obj(*dep_scheduler, GFP_KERNEL);
if (!dep_scheduler)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 1581f4dab69d..f96d992b2ca4 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -86,7 +86,7 @@ static int xe_file_open(struct drm_device *dev, struct drm_file *file)
int ret = -ENOMEM;
struct task_struct *task = NULL;
- xef = kzalloc(sizeof(*xef), GFP_KERNEL);
+ xef = kzalloc_obj(*xef, GFP_KERNEL);
if (!xef)
return ret;
diff --git a/drivers/gpu/drm/xe/xe_drm_client.c b/drivers/gpu/drm/xe/xe_drm_client.c
index 2787bbb36141..b7284acc379c 100644
--- a/drivers/gpu/drm/xe/xe_drm_client.c
+++ b/drivers/gpu/drm/xe/xe_drm_client.c
@@ -88,7 +88,7 @@ struct xe_drm_client *xe_drm_client_alloc(void)
{
struct xe_drm_client *client;
- client = kzalloc(sizeof(*client), GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (!client)
return NULL;
diff --git a/drivers/gpu/drm/xe/xe_eu_stall.c b/drivers/gpu/drm/xe/xe_eu_stall.c
index a5c36a317a70..a9fa39bfeca7 100644
--- a/drivers/gpu/drm/xe/xe_eu_stall.c
+++ b/drivers/gpu/drm/xe/xe_eu_stall.c
@@ -238,7 +238,7 @@ int xe_eu_stall_init(struct xe_gt *gt)
if (!xe_eu_stall_supported_on_platform(xe))
return 0;
- gt->eu_stall = kzalloc(sizeof(*gt->eu_stall), GFP_KERNEL);
+ gt->eu_stall = kzalloc_obj(*gt->eu_stall, GFP_KERNEL);
if (!gt->eu_stall) {
ret = -ENOMEM;
goto exit;
@@ -636,7 +636,8 @@ static int xe_eu_stall_data_buf_alloc(struct xe_eu_stall_data_stream *stream,
struct xe_bo *bo;
u32 size;
- stream->xecore_buf = kcalloc(last_xecore, sizeof(*stream->xecore_buf), GFP_KERNEL);
+ stream->xecore_buf = kzalloc_objs(*stream->xecore_buf, last_xecore,
+ GFP_KERNEL);
if (!stream->xecore_buf)
return -ENOMEM;
@@ -905,7 +906,7 @@ static int xe_eu_stall_stream_open_locked(struct drm_device *dev,
return -EBUSY;
}
- stream = kzalloc(sizeof(*stream), GFP_KERNEL);
+ stream = kzalloc_obj(*stream, GFP_KERNEL);
if (!stream)
return -ENOMEM;
diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
index dbe6c006f1d6..45b7a7fd7a3b 100644
--- a/drivers/gpu/drm/xe/xe_exec.c
+++ b/drivers/gpu/drm/xe/xe_exec.c
@@ -162,7 +162,7 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
}
if (args->num_syncs) {
- syncs = kcalloc(args->num_syncs, sizeof(*syncs), GFP_KERNEL);
+ syncs = kzalloc_objs(*syncs, args->num_syncs, GFP_KERNEL);
if (!syncs) {
err = -ENOMEM;
goto err_exec_queue;
diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
index 9b6311f7fd4f..36b0bd32e2a6 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue.c
+++ b/drivers/gpu/drm/xe/xe_exec_queue.c
@@ -208,7 +208,7 @@ static struct xe_exec_queue *__xe_exec_queue_alloc(struct xe_device *xe,
/* only kernel queues can be permanent */
XE_WARN_ON((flags & EXEC_QUEUE_FLAG_PERMANENT) && !(flags & EXEC_QUEUE_FLAG_KERNEL));
- q = kzalloc(struct_size(q, lrc, width), GFP_KERNEL);
+ q = kzalloc_flex(*q, lrc, width, GFP_KERNEL);
if (!q)
return ERR_PTR(-ENOMEM);
@@ -681,7 +681,7 @@ static int xe_exec_queue_group_init(struct xe_device *xe, struct xe_exec_queue *
struct xe_exec_queue_group *group;
struct xe_bo *bo;
- group = kzalloc(sizeof(*group), GFP_KERNEL);
+ group = kzalloc_obj(*group, GFP_KERNEL);
if (!group)
return -ENOMEM;
diff --git a/drivers/gpu/drm/xe/xe_execlist.c b/drivers/gpu/drm/xe/xe_execlist.c
index 8bf330aeaec0..405069c72773 100644
--- a/drivers/gpu/drm/xe/xe_execlist.c
+++ b/drivers/gpu/drm/xe/xe_execlist.c
@@ -352,7 +352,7 @@ static int execlist_exec_queue_init(struct xe_exec_queue *q)
drm_info(&xe->drm, "Enabling execlist submission (GuC submission disabled)\n");
- exl = kzalloc(sizeof(*exl), GFP_KERNEL);
+ exl = kzalloc_obj(*exl, GFP_KERNEL);
if (!exl)
return -ENOMEM;
diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
index 60665ad1415b..2bda426a6986 100644
--- a/drivers/gpu/drm/xe/xe_ggtt.c
+++ b/drivers/gpu/drm/xe/xe_ggtt.c
@@ -702,7 +702,7 @@ int xe_ggtt_node_insert(struct xe_ggtt_node *node, u32 size, u32 align)
**/
struct xe_ggtt_node *xe_ggtt_node_init(struct xe_ggtt *ggtt)
{
- struct xe_ggtt_node *node = kzalloc(sizeof(*node), GFP_NOFS);
+ struct xe_ggtt_node *node = kzalloc_obj(*node, GFP_NOFS);
if (!node)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
index f97abb02aebd..8f45a1e72e1c 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
@@ -710,7 +710,7 @@ static int config_blob_open(struct inode *inode, struct file *file)
if (ret < 0)
return ret;
- cbd = kzalloc(struct_size(cbd, blob, ret), GFP_KERNEL);
+ cbd = kzalloc_flex(*cbd, blob, ret, GFP_KERNEL);
if (!cbd)
return -ENOMEM;
diff --git a/drivers/gpu/drm/xe/xe_gt_sysfs.c b/drivers/gpu/drm/xe/xe_gt_sysfs.c
index 1448be047b4a..e2ab22643c63 100644
--- a/drivers/gpu/drm/xe/xe_gt_sysfs.c
+++ b/drivers/gpu/drm/xe/xe_gt_sysfs.c
@@ -36,7 +36,7 @@ int xe_gt_sysfs_init(struct xe_gt *gt)
struct kobj_gt *kg;
int err;
- kg = kzalloc(sizeof(*kg), GFP_KERNEL);
+ kg = kzalloc_obj(*kg, GFP_KERNEL);
if (!kg)
return -ENOMEM;
diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
index dfbf76037b04..d04589140b77 100644
--- a/drivers/gpu/drm/xe/xe_guc_ct.c
+++ b/drivers/gpu/drm/xe/xe_guc_ct.c
@@ -1957,7 +1957,7 @@ static struct xe_guc_ct_snapshot *guc_ct_snapshot_alloc(struct xe_guc_ct *ct, bo
{
struct xe_guc_ct_snapshot *snapshot;
- snapshot = kzalloc(sizeof(*snapshot), atomic ? GFP_ATOMIC : GFP_KERNEL);
+ snapshot = kzalloc_obj(*snapshot, atomic ? GFP_ATOMIC : GFP_KERNEL);
if (!snapshot)
return NULL;
diff --git a/drivers/gpu/drm/xe/xe_guc_log.c b/drivers/gpu/drm/xe/xe_guc_log.c
index acac66a4eca7..538d4df0f7aa 100644
--- a/drivers/gpu/drm/xe/xe_guc_log.c
+++ b/drivers/gpu/drm/xe/xe_guc_log.c
@@ -116,7 +116,7 @@ static struct xe_guc_log_snapshot *xe_guc_log_snapshot_alloc(struct xe_guc_log *
size_t remain;
int i;
- snapshot = kzalloc(sizeof(*snapshot), atomic ? GFP_ATOMIC : GFP_KERNEL);
+ snapshot = kzalloc_obj(*snapshot, atomic ? GFP_ATOMIC : GFP_KERNEL);
if (!snapshot)
return NULL;
@@ -128,8 +128,8 @@ static struct xe_guc_log_snapshot *xe_guc_log_snapshot_alloc(struct xe_guc_log *
snapshot->size = xe_bo_size(log->bo);
snapshot->num_chunks = DIV_ROUND_UP(snapshot->size, GUC_LOG_CHUNK_SIZE);
- snapshot->copy = kcalloc(snapshot->num_chunks, sizeof(*snapshot->copy),
- atomic ? GFP_ATOMIC : GFP_KERNEL);
+ snapshot->copy = kzalloc_objs(*snapshot->copy, snapshot->num_chunks,
+ atomic ? GFP_ATOMIC : GFP_KERNEL);
if (!snapshot->copy)
goto fail_snap;
diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
index 1b2f66f4425b..e15a38ff7354 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -1903,7 +1903,7 @@ static int guc_exec_queue_init(struct xe_exec_queue *q)
xe_gt_assert(guc_to_gt(guc), xe_device_uc_enabled(guc_to_xe(guc)));
- ge = kzalloc(sizeof(*ge), GFP_KERNEL);
+ ge = kzalloc_obj(*ge, GFP_KERNEL);
if (!ge)
return -ENOMEM;
@@ -2057,7 +2057,7 @@ static int guc_exec_queue_set_priority(struct xe_exec_queue *q,
exec_queue_killed_or_banned_or_wedged(q))
return 0;
- msg = kmalloc(sizeof(*msg), GFP_KERNEL);
+ msg = kmalloc_obj(*msg, GFP_KERNEL);
if (!msg)
return -ENOMEM;
@@ -2075,7 +2075,7 @@ static int guc_exec_queue_set_timeslice(struct xe_exec_queue *q, u32 timeslice_u
exec_queue_killed_or_banned_or_wedged(q))
return 0;
- msg = kmalloc(sizeof(*msg), GFP_KERNEL);
+ msg = kmalloc_obj(*msg, GFP_KERNEL);
if (!msg)
return -ENOMEM;
@@ -2094,7 +2094,7 @@ static int guc_exec_queue_set_preempt_timeout(struct xe_exec_queue *q,
exec_queue_killed_or_banned_or_wedged(q))
return 0;
- msg = kmalloc(sizeof(*msg), GFP_KERNEL);
+ msg = kmalloc_obj(*msg, GFP_KERNEL);
if (!msg)
return -ENOMEM;
@@ -2115,7 +2115,7 @@ static int guc_exec_queue_set_multi_queue_priority(struct xe_exec_queue *q,
exec_queue_killed_or_banned_or_wedged(q))
return 0;
- msg = kmalloc(sizeof(*msg), GFP_KERNEL);
+ msg = kmalloc_obj(*msg, GFP_KERNEL);
if (!msg)
return -ENOMEM;
@@ -3128,7 +3128,7 @@ xe_guc_exec_queue_snapshot_capture(struct xe_exec_queue *q)
struct xe_guc_submit_exec_queue_snapshot *snapshot;
int i;
- snapshot = kzalloc(sizeof(*snapshot), GFP_ATOMIC);
+ snapshot = kzalloc_obj(*snapshot, GFP_ATOMIC);
if (!snapshot)
return NULL;
@@ -3144,8 +3144,8 @@ xe_guc_exec_queue_snapshot_capture(struct xe_exec_queue *q)
snapshot->sched_props.preempt_timeout_us =
q->sched_props.preempt_timeout_us;
- snapshot->lrc = kmalloc_array(q->width, sizeof(struct xe_lrc_snapshot *),
- GFP_ATOMIC);
+ snapshot->lrc = kmalloc_objs(struct xe_lrc_snapshot *, q->width,
+ GFP_ATOMIC);
if (snapshot->lrc) {
for (i = 0; i < q->width; ++i) {
diff --git a/drivers/gpu/drm/xe/xe_heci_gsc.c b/drivers/gpu/drm/xe/xe_heci_gsc.c
index c1f15313f92e..1e0eeb77427c 100644
--- a/drivers/gpu/drm/xe/xe_heci_gsc.c
+++ b/drivers/gpu/drm/xe/xe_heci_gsc.c
@@ -131,7 +131,7 @@ static int heci_gsc_add_device(struct xe_device *xe, const struct heci_gsc_def *
struct mei_aux_device *adev;
int ret;
- adev = kzalloc(sizeof(*adev), GFP_KERNEL);
+ adev = kzalloc_obj(*adev, GFP_KERNEL);
if (!adev)
return -ENOMEM;
adev->irq = heci_gsc->irq;
diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c
index 4d3ee5226e3a..688d645e0e73 100644
--- a/drivers/gpu/drm/xe/xe_hw_engine.c
+++ b/drivers/gpu/drm/xe/xe_hw_engine.c
@@ -927,7 +927,7 @@ xe_hw_engine_snapshot_capture(struct xe_hw_engine *hwe, struct xe_exec_queue *q)
if (!xe_hw_engine_is_valid(hwe))
return NULL;
- snapshot = kzalloc(sizeof(*snapshot), GFP_ATOMIC);
+ snapshot = kzalloc_obj(*snapshot, GFP_ATOMIC);
if (!snapshot)
return NULL;
diff --git a/drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.c b/drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.c
index 3c65becb39ad..4425a1ce140f 100644
--- a/drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.c
+++ b/drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.c
@@ -549,7 +549,7 @@ kobj_xe_hw_engine_class(struct xe_device *xe, struct kobject *parent, const char
struct kobj_eclass *keclass;
int err = 0;
- keclass = kzalloc(sizeof(*keclass), GFP_KERNEL);
+ keclass = kzalloc_obj(*keclass, GFP_KERNEL);
if (!keclass)
return NULL;
@@ -582,7 +582,7 @@ static int xe_add_hw_engine_class_defaults(struct xe_device *xe,
struct kobject *kobj;
int err = 0;
- kobj = kzalloc(sizeof(*kobj), GFP_KERNEL);
+ kobj = kzalloc_obj(*kobj, GFP_KERNEL);
if (!kobj)
return -ENOMEM;
@@ -629,7 +629,7 @@ int xe_hw_engine_class_sysfs_init(struct xe_gt *gt)
u16 class_mask = 0;
int err = 0;
- kobj = kzalloc(sizeof(*kobj), GFP_KERNEL);
+ kobj = kzalloc_obj(*kobj, GFP_KERNEL);
if (!kobj)
return -ENOMEM;
diff --git a/drivers/gpu/drm/xe/xe_lmtt.c b/drivers/gpu/drm/xe/xe_lmtt.c
index 2077e1ef8b43..0cff46a0f1f6 100644
--- a/drivers/gpu/drm/xe/xe_lmtt.c
+++ b/drivers/gpu/drm/xe/xe_lmtt.c
@@ -64,7 +64,7 @@ static struct xe_lmtt_pt *lmtt_pt_alloc(struct xe_lmtt *lmtt, unsigned int level
struct xe_bo *bo;
int err;
- pt = kzalloc(struct_size(pt, entries, num_entries), GFP_KERNEL);
+ pt = kzalloc_flex(*pt, entries, num_entries, GFP_KERNEL);
if (!pt) {
err = -ENOMEM;
goto out;
diff --git a/drivers/gpu/drm/xe/xe_lrc.c b/drivers/gpu/drm/xe/xe_lrc.c
index 3db7968aa5e2..4b2091d552fd 100644
--- a/drivers/gpu/drm/xe/xe_lrc.c
+++ b/drivers/gpu/drm/xe/xe_lrc.c
@@ -1616,7 +1616,7 @@ struct xe_lrc *xe_lrc_create(struct xe_hw_engine *hwe, struct xe_vm *vm,
struct xe_lrc *lrc;
int err;
- lrc = kzalloc(sizeof(*lrc), GFP_KERNEL);
+ lrc = kzalloc_obj(*lrc, GFP_KERNEL);
if (!lrc)
return ERR_PTR(-ENOMEM);
@@ -2269,7 +2269,7 @@ u32 *xe_lrc_emit_hwe_state_instructions(struct xe_exec_queue *q, u32 *cs)
struct xe_lrc_snapshot *xe_lrc_snapshot_capture(struct xe_lrc *lrc)
{
- struct xe_lrc_snapshot *snapshot = kmalloc(sizeof(*snapshot), GFP_NOWAIT);
+ struct xe_lrc_snapshot *snapshot = kmalloc_obj(*snapshot, GFP_NOWAIT);
if (!snapshot)
return NULL;
diff --git a/drivers/gpu/drm/xe/xe_migrate.c b/drivers/gpu/drm/xe/xe_migrate.c
index 078a9bc2821d..9d463a48a4d4 100644
--- a/drivers/gpu/drm/xe/xe_migrate.c
+++ b/drivers/gpu/drm/xe/xe_migrate.c
@@ -2303,7 +2303,7 @@ static struct drm_pagemap_addr *xe_migrate_dma_map(struct xe_device *xe,
struct drm_pagemap_addr *pagemap_addr;
unsigned long i, npages = DIV_ROUND_UP(len, PAGE_SIZE);
- pagemap_addr = kcalloc(npages, sizeof(*pagemap_addr), GFP_KERNEL);
+ pagemap_addr = kzalloc_objs(*pagemap_addr, npages, GFP_KERNEL);
if (!pagemap_addr)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/xe/xe_mmio_gem.c b/drivers/gpu/drm/xe/xe_mmio_gem.c
index 9a97c4387e4f..c4fb55d2dcce 100644
--- a/drivers/gpu/drm/xe/xe_mmio_gem.c
+++ b/drivers/gpu/drm/xe/xe_mmio_gem.c
@@ -78,7 +78,7 @@ struct xe_mmio_gem *xe_mmio_gem_create(struct xe_device *xe, struct drm_file *fi
if ((phys_addr % PAGE_SIZE != 0) || (size % PAGE_SIZE != 0))
return ERR_PTR(-EINVAL);
- obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ obj = kzalloc_obj(*obj, GFP_KERNEL);
if (!obj)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/xe/xe_nvm.c b/drivers/gpu/drm/xe/xe_nvm.c
index 6f9dd519371c..fb5eb9099921 100644
--- a/drivers/gpu/drm/xe/xe_nvm.c
+++ b/drivers/gpu/drm/xe/xe_nvm.c
@@ -133,7 +133,7 @@ int xe_nvm_init(struct xe_device *xe)
if (WARN_ON(xe->nvm))
return -EFAULT;
- xe->nvm = kzalloc(sizeof(*nvm), GFP_KERNEL);
+ xe->nvm = kzalloc_obj(*nvm, GFP_KERNEL);
if (!xe->nvm)
return -ENOMEM;
diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index abf87fe0b345..283cd72ef40b 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -905,7 +905,7 @@ __xe_oa_alloc_config_buffer(struct xe_oa_stream *stream, struct xe_oa_config *oa
size_t config_length;
struct xe_bb *bb;
- oa_bo = kzalloc(sizeof(*oa_bo), GFP_KERNEL);
+ oa_bo = kzalloc_obj(*oa_bo, GFP_KERNEL);
if (!oa_bo)
return ERR_PTR(-ENOMEM);
@@ -997,7 +997,7 @@ static int xe_oa_emit_oa_config(struct xe_oa_stream *stream, struct xe_oa_config
int i, err, num_signal = 0;
struct dma_fence *fence;
- ofence = kzalloc(sizeof(*ofence), GFP_KERNEL);
+ ofence = kzalloc_obj(*ofence, GFP_KERNEL);
if (!ofence) {
err = -ENOMEM;
goto exit;
@@ -1408,7 +1408,8 @@ static int xe_oa_parse_syncs(struct xe_oa *oa,
}
if (param->num_syncs) {
- param->syncs = kcalloc(param->num_syncs, sizeof(*param->syncs), GFP_KERNEL);
+ param->syncs = kzalloc_objs(*param->syncs, param->num_syncs,
+ GFP_KERNEL);
if (!param->syncs) {
ret = -ENOMEM;
goto exit;
@@ -1852,7 +1853,7 @@ static int xe_oa_stream_open_ioctl_locked(struct xe_oa *oa,
if (ret)
goto exit;
- stream = kzalloc(sizeof(*stream), GFP_KERNEL);
+ stream = kzalloc_obj(*stream, GFP_KERNEL);
if (!stream) {
ret = -ENOMEM;
goto err_syncobj;
@@ -2259,7 +2260,7 @@ xe_oa_alloc_regs(struct xe_oa *oa, bool (*is_valid)(struct xe_oa *oa, u32 addr),
int err;
u32 i;
- oa_regs = kmalloc_array(n_regs, sizeof(*oa_regs), GFP_KERNEL);
+ oa_regs = kmalloc_objs(*oa_regs, n_regs, GFP_KERNEL);
if (!oa_regs)
return ERR_PTR(-ENOMEM);
@@ -2361,7 +2362,7 @@ int xe_oa_add_config_ioctl(struct drm_device *dev, u64 data, struct drm_file *fi
XE_IOCTL_DBG(oa->xe, !arg->n_regs))
return -EINVAL;
- oa_config = kzalloc(sizeof(*oa_config), GFP_KERNEL);
+ oa_config = kzalloc_obj(*oa_config, GFP_KERNEL);
if (!oa_config)
return -ENOMEM;
diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c
index 0b20059dd7b3..ac8303509d48 100644
--- a/drivers/gpu/drm/xe/xe_pmu.c
+++ b/drivers/gpu/drm/xe/xe_pmu.c
@@ -142,7 +142,7 @@ static bool event_gt_forcewake(struct perf_event *event)
gt = xe_device_get_gt(xe, config_to_gt_id(config));
- fw_ref = kzalloc(sizeof(*fw_ref), GFP_KERNEL);
+ fw_ref = kzalloc_obj(*fw_ref, GFP_KERNEL);
if (!fw_ref)
return false;
diff --git a/drivers/gpu/drm/xe/xe_preempt_fence.c b/drivers/gpu/drm/xe/xe_preempt_fence.c
index 7f587ca3947d..85c792ee0818 100644
--- a/drivers/gpu/drm/xe/xe_preempt_fence.c
+++ b/drivers/gpu/drm/xe/xe_preempt_fence.c
@@ -101,7 +101,7 @@ struct xe_preempt_fence *xe_preempt_fence_alloc(void)
{
struct xe_preempt_fence *pfence;
- pfence = kmalloc(sizeof(*pfence), GFP_KERNEL);
+ pfence = kmalloc_obj(*pfence, GFP_KERNEL);
if (!pfence)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
index 6703a7049227..5d3a84baa80b 100644
--- a/drivers/gpu/drm/xe/xe_pt.c
+++ b/drivers/gpu/drm/xe/xe_pt.c
@@ -109,11 +109,11 @@ struct xe_pt *xe_pt_create(struct xe_vm *vm, struct xe_tile *tile,
int err;
if (level) {
- struct xe_pt_dir *dir = kzalloc(sizeof(*dir), GFP_KERNEL);
+ struct xe_pt_dir *dir = kzalloc_obj(*dir, GFP_KERNEL);
pt = (dir) ? &dir->pt : NULL;
} else {
- pt = kzalloc(sizeof(*pt), GFP_KERNEL);
+ pt = kzalloc_obj(*pt, GFP_KERNEL);
}
if (!pt)
return ERR_PTR(-ENOMEM);
@@ -368,9 +368,8 @@ xe_pt_new_shared(struct xe_walk_update *wupd, struct xe_pt *parent,
entry->pt_bo->update_index = -1;
if (alloc_entries) {
- entry->pt_entries = kmalloc_array(XE_PDES,
- sizeof(*entry->pt_entries),
- GFP_KERNEL);
+ entry->pt_entries = kmalloc_objs(*entry->pt_entries, XE_PDES,
+ GFP_KERNEL);
if (!entry->pt_entries)
return -ENOMEM;
}
@@ -2574,7 +2573,7 @@ xe_pt_update_ops_run(struct xe_tile *tile, struct xe_vma_ops *vops)
}
}
- rfence = kzalloc(sizeof(*rfence), GFP_KERNEL);
+ rfence = kzalloc_obj(*rfence, GFP_KERNEL);
if (!rfence) {
err = -ENOMEM;
goto free_ijob;
diff --git a/drivers/gpu/drm/xe/xe_reg_sr.c b/drivers/gpu/drm/xe/xe_reg_sr.c
index d3e13ea33123..80532bbce727 100644
--- a/drivers/gpu/drm/xe/xe_reg_sr.c
+++ b/drivers/gpu/drm/xe/xe_reg_sr.c
@@ -89,7 +89,7 @@ int xe_reg_sr_add(struct xe_reg_sr *sr,
return 0;
}
- pentry = kmalloc(sizeof(*pentry), GFP_KERNEL);
+ pentry = kmalloc_obj(*pentry, GFP_KERNEL);
if (!pentry) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/gpu/drm/xe/xe_shrinker.c b/drivers/gpu/drm/xe/xe_shrinker.c
index 90244fe59b59..f798404ac337 100644
--- a/drivers/gpu/drm/xe/xe_shrinker.c
+++ b/drivers/gpu/drm/xe/xe_shrinker.c
@@ -282,7 +282,7 @@ static void xe_shrinker_fini(struct drm_device *drm, void *arg)
*/
int xe_shrinker_create(struct xe_device *xe)
{
- struct xe_shrinker *shrinker = kzalloc(sizeof(*shrinker), GFP_KERNEL);
+ struct xe_shrinker *shrinker = kzalloc_obj(*shrinker, GFP_KERNEL);
if (!shrinker)
return -ENOMEM;
diff --git a/drivers/gpu/drm/xe/xe_sriov_packet.c b/drivers/gpu/drm/xe/xe_sriov_packet.c
index 7a4c3de662e5..26905bc61979 100644
--- a/drivers/gpu/drm/xe/xe_sriov_packet.c
+++ b/drivers/gpu/drm/xe/xe_sriov_packet.c
@@ -89,7 +89,7 @@ struct xe_sriov_packet *xe_sriov_packet_alloc(struct xe_device *xe)
{
struct xe_sriov_packet *data;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return NULL;
diff --git a/drivers/gpu/drm/xe/xe_sriov_pf_sysfs.c b/drivers/gpu/drm/xe/xe_sriov_pf_sysfs.c
index 82a1055985ba..457676713402 100644
--- a/drivers/gpu/drm/xe/xe_sriov_pf_sysfs.c
+++ b/drivers/gpu/drm/xe/xe_sriov_pf_sysfs.c
@@ -364,7 +364,7 @@ static struct kobject *create_xe_sriov_kobj(struct xe_device *xe, unsigned int v
xe_sriov_pf_assert_vfid(xe, vfid);
- vkobj = kzalloc(sizeof(*vkobj), GFP_KERNEL);
+ vkobj = kzalloc_obj(*vkobj, GFP_KERNEL);
if (!vkobj)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/xe/xe_svm.c b/drivers/gpu/drm/xe/xe_svm.c
index 78f4b2c60670..ead9a61b1cdb 100644
--- a/drivers/gpu/drm/xe/xe_svm.c
+++ b/drivers/gpu/drm/xe/xe_svm.c
@@ -109,7 +109,7 @@ xe_svm_range_alloc(struct drm_gpusvm *gpusvm)
{
struct xe_svm_range *range;
- range = kzalloc(sizeof(*range), GFP_KERNEL);
+ range = kzalloc_obj(*range, GFP_KERNEL);
if (!range)
return NULL;
@@ -1748,7 +1748,7 @@ static struct xe_pagemap *xe_pagemap_create(struct xe_device *xe, struct xe_vram
void *addr;
int err;
- xpagemap = kzalloc(sizeof(*xpagemap), GFP_KERNEL);
+ xpagemap = kzalloc_obj(*xpagemap, GFP_KERNEL);
if (!xpagemap)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/xe/xe_sync.c b/drivers/gpu/drm/xe/xe_sync.c
index c8fdcdbd6ae7..69a723a8c68e 100644
--- a/drivers/gpu/drm/xe/xe_sync.c
+++ b/drivers/gpu/drm/xe/xe_sync.c
@@ -59,7 +59,7 @@ static struct xe_user_fence *user_fence_create(struct xe_device *xe, u64 addr,
if (get_user(prefetch_val, ptr))
return ERR_PTR(-EFAULT);
- ufence = kzalloc(sizeof(*ufence), GFP_KERNEL);
+ ufence = kzalloc_obj(*ufence, GFP_KERNEL);
if (!ufence)
return ERR_PTR(-ENOMEM);
@@ -343,8 +343,7 @@ xe_sync_in_fence_get(struct xe_sync_entry *sync, int num_sync,
num_fence++;
}
- fences = kmalloc_array(num_fence, sizeof(*fences),
- GFP_KERNEL);
+ fences = kmalloc_objs(*fences, num_fence, GFP_KERNEL);
if (!fences)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/xe/xe_tile_sysfs.c b/drivers/gpu/drm/xe/xe_tile_sysfs.c
index 9e1236a9ec67..39f04b309e73 100644
--- a/drivers/gpu/drm/xe/xe_tile_sysfs.c
+++ b/drivers/gpu/drm/xe/xe_tile_sysfs.c
@@ -36,7 +36,7 @@ int xe_tile_sysfs_init(struct xe_tile *tile)
struct kobj_tile *kt;
int err;
- kt = kzalloc(sizeof(*kt), GFP_KERNEL);
+ kt = kzalloc_obj(*kt, GFP_KERNEL);
if (!kt)
return -ENOMEM;
diff --git a/drivers/gpu/drm/xe/xe_tlb_inval_job.c b/drivers/gpu/drm/xe/xe_tlb_inval_job.c
index 01c413a2537e..0560605588db 100644
--- a/drivers/gpu/drm/xe/xe_tlb_inval_job.c
+++ b/drivers/gpu/drm/xe/xe_tlb_inval_job.c
@@ -108,7 +108,7 @@ xe_tlb_inval_job_create(struct xe_exec_queue *q, struct xe_tlb_inval *tlb_inval,
xe_assert(vm->xe, type == XE_EXEC_QUEUE_TLB_INVAL_MEDIA_GT ||
type == XE_EXEC_QUEUE_TLB_INVAL_PRIMARY_GT);
- job = kmalloc(sizeof(*job), GFP_KERNEL);
+ job = kmalloc_obj(*job, GFP_KERNEL);
if (!job)
return ERR_PTR(-ENOMEM);
@@ -125,7 +125,7 @@ xe_tlb_inval_job_create(struct xe_exec_queue *q, struct xe_tlb_inval *tlb_inval,
xe_exec_queue_get(q); /* Pairs with put in xe_tlb_inval_job_destroy */
xe_vm_get(vm); /* Pairs with put in xe_tlb_inval_job_destroy */
- ifence = kmalloc(sizeof(*ifence), GFP_KERNEL);
+ ifence = kmalloc_obj(*ifence, GFP_KERNEL);
if (!ifence) {
err = -ENOMEM;
goto err_job;
diff --git a/drivers/gpu/drm/xe/xe_ttm_sys_mgr.c b/drivers/gpu/drm/xe/xe_ttm_sys_mgr.c
index 99fb7e99eb7f..18d58ad574cf 100644
--- a/drivers/gpu/drm/xe/xe_ttm_sys_mgr.c
+++ b/drivers/gpu/drm/xe/xe_ttm_sys_mgr.c
@@ -33,7 +33,7 @@ static int xe_ttm_sys_mgr_new(struct ttm_resource_manager *man,
struct xe_ttm_sys_node *node;
int r;
- node = kzalloc(struct_size(node, base.mm_nodes, 1), GFP_KERNEL);
+ node = kzalloc_flex(*node, base.mm_nodes, 1, GFP_KERNEL);
if (!node)
return -ENOMEM;
diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
index 6553a19f7cf2..93ad02ec76eb 100644
--- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
+++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
@@ -64,7 +64,7 @@ static int xe_ttm_vram_mgr_new(struct ttm_resource_manager *man,
if (tbo->base.size >> PAGE_SHIFT > (lpfn - place->fpfn))
return -E2BIG; /* don't trigger eviction for the impossible */
- vres = kzalloc(sizeof(*vres), GFP_KERNEL);
+ vres = kzalloc_obj(*vres, GFP_KERNEL);
if (!vres)
return -ENOMEM;
@@ -371,7 +371,7 @@ int xe_ttm_vram_mgr_alloc_sgt(struct xe_device *xe,
if (vres->used_visible_size < res->size)
return -EOPNOTSUPP;
- *sgt = kmalloc(sizeof(**sgt), GFP_KERNEL);
+ *sgt = kmalloc_obj(**sgt, GFP_KERNEL);
if (!*sgt)
return -ENOMEM;
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index dd6d99d7fca8..b53d76dc62b2 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -586,9 +586,9 @@ static int xe_vma_ops_alloc(struct xe_vma_ops *vops, bool array_of_binds)
continue;
vops->pt_update_ops[i].ops =
- kmalloc_array(vops->pt_update_ops[i].num_ops,
- sizeof(*vops->pt_update_ops[i].ops),
- GFP_KERNEL | __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
+ kmalloc_objs(*vops->pt_update_ops[i].ops,
+ vops->pt_update_ops[i].num_ops,
+ GFP_KERNEL | __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
if (!vops->pt_update_ops[i].ops)
return array_of_binds ? -ENOBUFS : -ENOMEM;
}
@@ -667,7 +667,7 @@ static int xe_vm_ops_add_rebind(struct xe_vma_ops *vops, struct xe_vma *vma,
{
struct xe_vma_op *op;
- op = kzalloc(sizeof(*op), GFP_KERNEL);
+ op = kzalloc_obj(*op, GFP_KERNEL);
if (!op)
return -ENOMEM;
@@ -803,7 +803,7 @@ xe_vm_ops_add_range_rebind(struct xe_vma_ops *vops,
{
struct xe_vma_op *op;
- op = kzalloc(sizeof(*op), GFP_KERNEL);
+ op = kzalloc_obj(*op, GFP_KERNEL);
if (!op)
return -ENOMEM;
@@ -889,7 +889,7 @@ xe_vm_ops_add_range_unbind(struct xe_vma_ops *vops,
{
struct xe_vma_op *op;
- op = kzalloc(sizeof(*op), GFP_KERNEL);
+ op = kzalloc_obj(*op, GFP_KERNEL);
if (!op)
return -ENOMEM;
@@ -1008,14 +1008,14 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
* matches what was allocated.
*/
if (!bo && !is_null && !is_cpu_addr_mirror) {
- struct xe_userptr_vma *uvma = kzalloc(sizeof(*uvma), GFP_KERNEL);
+ struct xe_userptr_vma *uvma = kzalloc_obj(*uvma, GFP_KERNEL);
if (!uvma)
return ERR_PTR(-ENOMEM);
vma = &uvma->vma;
} else {
- vma = kzalloc(sizeof(*vma), GFP_KERNEL);
+ vma = kzalloc_obj(*vma, GFP_KERNEL);
if (!vma)
return ERR_PTR(-ENOMEM);
@@ -1235,7 +1235,7 @@ static struct drm_gpuva_op *xe_vm_op_alloc(void)
{
struct xe_vma_op *op;
- op = kzalloc(sizeof(*op), GFP_KERNEL);
+ op = kzalloc_obj(*op, GFP_KERNEL);
if (unlikely(!op))
return NULL;
@@ -3161,7 +3161,7 @@ static struct dma_fence *ops_execute(struct xe_vm *vm,
++n_fence;
}
- fences = kmalloc_array(n_fence, sizeof(*fences), GFP_KERNEL);
+ fences = kmalloc_objs(*fences, n_fence, GFP_KERNEL);
if (!fences) {
fence = ERR_PTR(-ENOMEM);
goto err_trace;
@@ -3373,10 +3373,9 @@ static int vm_bind_ioctl_check_args(struct xe_device *xe, struct xe_vm *vm,
u64 __user *bind_user =
u64_to_user_ptr(args->vector_of_binds);
- *bind_ops = kvmalloc_array(args->num_binds,
- sizeof(struct drm_xe_vm_bind_op),
- GFP_KERNEL | __GFP_ACCOUNT |
- __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
+ *bind_ops = kvmalloc_objs(struct drm_xe_vm_bind_op,
+ args->num_binds,
+ GFP_KERNEL | __GFP_ACCOUNT | __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
if (!*bind_ops)
return args->num_binds > 1 ? -ENOBUFS : -ENOMEM;
@@ -3663,17 +3662,15 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
}
if (args->num_binds) {
- bos = kvcalloc(args->num_binds, sizeof(*bos),
- GFP_KERNEL | __GFP_ACCOUNT |
- __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
+ bos = kvzalloc_objs(*bos, args->num_binds,
+ GFP_KERNEL | __GFP_ACCOUNT | __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
if (!bos) {
err = -ENOMEM;
goto release_vm_lock;
}
- ops = kvcalloc(args->num_binds, sizeof(*ops),
- GFP_KERNEL | __GFP_ACCOUNT |
- __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
+ ops = kvzalloc_objs(*ops, args->num_binds,
+ GFP_KERNEL | __GFP_ACCOUNT | __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
if (!ops) {
err = -ENOMEM;
goto free_bos;
@@ -3708,7 +3705,7 @@ int xe_vm_bind_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
}
if (args->num_syncs) {
- syncs = kcalloc(args->num_syncs, sizeof(*syncs), GFP_KERNEL);
+ syncs = kzalloc_objs(*syncs, args->num_syncs, GFP_KERNEL);
if (!syncs) {
err = -ENOMEM;
goto put_obj;
diff --git a/drivers/gpu/drm/xe/xe_vm_madvise.c b/drivers/gpu/drm/xe/xe_vm_madvise.c
index 52147f5eaaa0..c5605e9d9090 100644
--- a/drivers/gpu/drm/xe/xe_vm_madvise.c
+++ b/drivers/gpu/drm/xe/xe_vm_madvise.c
@@ -47,7 +47,8 @@ static int get_vmas(struct xe_vm *vm, struct xe_vmas_in_madvise_range *madvise_r
lockdep_assert_held(&vm->lock);
madvise_range->num_vmas = 0;
- madvise_range->vmas = kmalloc_array(max_vmas, sizeof(*madvise_range->vmas), GFP_KERNEL);
+ madvise_range->vmas = kmalloc_objs(*madvise_range->vmas, max_vmas,
+ GFP_KERNEL);
if (!madvise_range->vmas)
return -ENOMEM;
diff --git a/drivers/gpu/drm/xen/xen_drm_front.c b/drivers/gpu/drm/xen/xen_drm_front.c
index 4fa45dbe1dcb..79dce72c9bc4 100644
--- a/drivers/gpu/drm/xen/xen_drm_front.c
+++ b/drivers/gpu/drm/xen/xen_drm_front.c
@@ -171,7 +171,7 @@ int xen_drm_front_dbuf_create(struct xen_drm_front_info *front_info,
if (unlikely(!evtchnl))
return -EIO;
- dbuf = kzalloc(sizeof(*dbuf), GFP_KERNEL);
+ dbuf = kzalloc_obj(*dbuf, GFP_KERNEL);
if (!dbuf)
return -ENOMEM;
@@ -496,7 +496,7 @@ static int xen_drm_drv_init(struct xen_drm_front_info *front_info)
DRM_INFO("Creating %s\n", xen_drm_driver.desc);
- drm_info = kzalloc(sizeof(*drm_info), GFP_KERNEL);
+ drm_info = kzalloc_obj(*drm_info, GFP_KERNEL);
if (!drm_info) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/gpu/drm/xen/xen_drm_front_evtchnl.c b/drivers/gpu/drm/xen/xen_drm_front_evtchnl.c
index e52afd792346..88cc85395791 100644
--- a/drivers/gpu/drm/xen/xen_drm_front_evtchnl.c
+++ b/drivers/gpu/drm/xen/xen_drm_front_evtchnl.c
@@ -212,9 +212,8 @@ int xen_drm_front_evtchnl_create_all(struct xen_drm_front_info *front_info)
cfg = &front_info->cfg;
front_info->evt_pairs =
- kcalloc(cfg->num_connectors,
- sizeof(struct xen_drm_front_evtchnl_pair),
- GFP_KERNEL);
+ kzalloc_objs(struct xen_drm_front_evtchnl_pair,
+ cfg->num_connectors, GFP_KERNEL);
if (!front_info->evt_pairs) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/gpu/drm/xen/xen_drm_front_gem.c b/drivers/gpu/drm/xen/xen_drm_front_gem.c
index 386ae7441093..afad19fe01d2 100644
--- a/drivers/gpu/drm/xen/xen_drm_front_gem.c
+++ b/drivers/gpu/drm/xen/xen_drm_front_gem.c
@@ -47,8 +47,8 @@ static int gem_alloc_pages_array(struct xen_gem_object *xen_obj,
size_t buf_size)
{
xen_obj->num_pages = DIV_ROUND_UP(buf_size, PAGE_SIZE);
- xen_obj->pages = kvmalloc_array(xen_obj->num_pages,
- sizeof(struct page *), GFP_KERNEL);
+ xen_obj->pages = kvmalloc_objs(struct page *, xen_obj->num_pages,
+ GFP_KERNEL);
return !xen_obj->pages ? -ENOMEM : 0;
}
@@ -118,7 +118,7 @@ static struct xen_gem_object *gem_create_obj(struct drm_device *dev,
struct xen_gem_object *xen_obj;
int ret;
- xen_obj = kzalloc(sizeof(*xen_obj), GFP_KERNEL);
+ xen_obj = kzalloc_obj(*xen_obj, GFP_KERNEL);
if (!xen_obj)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/xlnx/zynqmp_disp.c b/drivers/gpu/drm/xlnx/zynqmp_disp.c
index 80d1e499a18d..db1053161e35 100644
--- a/drivers/gpu/drm/xlnx/zynqmp_disp.c
+++ b/drivers/gpu/drm/xlnx/zynqmp_disp.c
@@ -1360,7 +1360,7 @@ int zynqmp_disp_probe(struct zynqmp_dpsub *dpsub)
struct zynqmp_disp *disp;
int ret;
- disp = kzalloc(sizeof(*disp), GFP_KERNEL);
+ disp = kzalloc_obj(*disp, GFP_KERNEL);
if (!disp)
return -ENOMEM;
diff --git a/drivers/gpu/drm/xlnx/zynqmp_dp.c b/drivers/gpu/drm/xlnx/zynqmp_dp.c
index 34ddbf98e81d..4f21dc062170 100644
--- a/drivers/gpu/drm/xlnx/zynqmp_dp.c
+++ b/drivers/gpu/drm/xlnx/zynqmp_dp.c
@@ -1739,7 +1739,7 @@ static const struct drm_edid *zynqmp_dp_bridge_edid_read(struct drm_bridge *brid
static u32 *zynqmp_dp_bridge_default_bus_fmts(unsigned int *num_input_fmts)
{
- u32 *formats = kzalloc(sizeof(*formats), GFP_KERNEL);
+ u32 *formats = kzalloc_obj(*formats, GFP_KERNEL);
if (formats)
*formats = MEDIA_BUS_FMT_FIXED;
diff --git a/drivers/gpu/drm/xlnx/zynqmp_dpsub.c b/drivers/gpu/drm/xlnx/zynqmp_dpsub.c
index 2764c4b17c5e..137d3e85e0fb 100644
--- a/drivers/gpu/drm/xlnx/zynqmp_dpsub.c
+++ b/drivers/gpu/drm/xlnx/zynqmp_dpsub.c
@@ -189,7 +189,7 @@ static int zynqmp_dpsub_probe(struct platform_device *pdev)
int ret;
/* Allocate private data. */
- dpsub = kzalloc(sizeof(*dpsub), GFP_KERNEL);
+ dpsub = kzalloc_obj(*dpsub, GFP_KERNEL);
if (!dpsub)
return -ENOMEM;
diff --git a/drivers/gpu/host1x/bus.c b/drivers/gpu/host1x/bus.c
index e2673bc7cb31..b0c12d63d7b4 100644
--- a/drivers/gpu/host1x/bus.c
+++ b/drivers/gpu/host1x/bus.c
@@ -43,7 +43,7 @@ static int host1x_subdev_add(struct host1x_device *device,
struct host1x_subdev *subdev;
int err;
- subdev = kzalloc(sizeof(*subdev), GFP_KERNEL);
+ subdev = kzalloc_obj(*subdev, GFP_KERNEL);
if (!subdev)
return -ENOMEM;
@@ -459,7 +459,7 @@ static int host1x_device_add(struct host1x *host1x,
struct host1x_device *device;
int err;
- device = kzalloc(sizeof(*device), GFP_KERNEL);
+ device = kzalloc_obj(*device, GFP_KERNEL);
if (!device)
return -ENOMEM;
diff --git a/drivers/gpu/host1x/channel.c b/drivers/gpu/host1x/channel.c
index 08077afe4cde..b2d434746167 100644
--- a/drivers/gpu/host1x/channel.c
+++ b/drivers/gpu/host1x/channel.c
@@ -16,8 +16,8 @@
int host1x_channel_list_init(struct host1x_channel_list *chlist,
unsigned int num_channels)
{
- chlist->channels = kcalloc(num_channels, sizeof(struct host1x_channel),
- GFP_KERNEL);
+ chlist->channels = kzalloc_objs(struct host1x_channel, num_channels,
+ GFP_KERNEL);
if (!chlist->channels)
return -ENOMEM;
diff --git a/drivers/gpu/host1x/context.c b/drivers/gpu/host1x/context.c
index a6f6779662a3..8d7719dab510 100644
--- a/drivers/gpu/host1x/context.c
+++ b/drivers/gpu/host1x/context.c
@@ -35,7 +35,7 @@ int host1x_memory_context_list_init(struct host1x *host1x)
return 0;
cdl->len = err / 4;
- cdl->devs = kcalloc(cdl->len, sizeof(*cdl->devs), GFP_KERNEL);
+ cdl->devs = kzalloc_objs(*cdl->devs, cdl->len, GFP_KERNEL);
if (!cdl->devs)
return -ENOMEM;
diff --git a/drivers/gpu/host1x/fence.c b/drivers/gpu/host1x/fence.c
index 139ad1afd935..d8f3aade9b2e 100644
--- a/drivers/gpu/host1x/fence.c
+++ b/drivers/gpu/host1x/fence.c
@@ -127,7 +127,7 @@ struct dma_fence *host1x_fence_create(struct host1x_syncpt *sp, u32 threshold,
{
struct host1x_syncpt_fence *fence;
- fence = kzalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kzalloc_obj(*fence, GFP_KERNEL);
if (!fence)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/host1x/mipi.c b/drivers/gpu/host1x/mipi.c
index e51b43dd15a3..90108d695f63 100644
--- a/drivers/gpu/host1x/mipi.c
+++ b/drivers/gpu/host1x/mipi.c
@@ -219,7 +219,7 @@ struct tegra_mipi_device *tegra_mipi_request(struct device *device,
if (err < 0)
return ERR_PTR(err);
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
err = -ENOMEM;
goto out;
diff --git a/drivers/gpu/ipu-v3/ipu-common.c b/drivers/gpu/ipu-v3/ipu-common.c
index 333f36e0a715..fa3a8f1f7aa7 100644
--- a/drivers/gpu/ipu-v3/ipu-common.c
+++ b/drivers/gpu/ipu-v3/ipu-common.c
@@ -183,7 +183,7 @@ struct ipuv3_channel *ipu_idmac_get(struct ipu_soc *ipu, unsigned num)
}
}
- channel = kzalloc(sizeof(*channel), GFP_KERNEL);
+ channel = kzalloc_obj(*channel, GFP_KERNEL);
if (!channel) {
channel = ERR_PTR(-ENOMEM);
goto out;
diff --git a/drivers/gpu/ipu-v3/ipu-image-convert.c b/drivers/gpu/ipu-v3/ipu-image-convert.c
index 3c33b4defab5..e994abcd7a0d 100644
--- a/drivers/gpu/ipu-v3/ipu-image-convert.c
+++ b/drivers/gpu/ipu-v3/ipu-image-convert.c
@@ -2082,7 +2082,7 @@ ipu_image_convert_prepare(struct ipu_soc *ipu, enum ipu_ic_task ic_task,
chan = &priv->chan[ic_task];
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return ERR_PTR(-ENOMEM);
@@ -2402,7 +2402,7 @@ ipu_image_convert(struct ipu_soc *ipu, enum ipu_ic_task ic_task,
if (IS_ERR(ctx))
return ERR_CAST(ctx);
- run = kzalloc(sizeof(*run), GFP_KERNEL);
+ run = kzalloc_obj(*run, GFP_KERNEL);
if (!run) {
ipu_image_convert_unprepare(ctx);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switcheroo.c
index 68e45a26e85f..1d7d52245197 100644
--- a/drivers/gpu/vga/vga_switcheroo.c
+++ b/drivers/gpu/vga/vga_switcheroo.c
@@ -297,7 +297,7 @@ static int register_client(struct pci_dev *pdev,
{
struct vga_switcheroo_client *client;
- client = kzalloc(sizeof(*client), GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (!client)
return -ENOMEM;
diff --git a/drivers/greybus/bundle.c b/drivers/greybus/bundle.c
index a6e1cca06172..f8aee6da89a4 100644
--- a/drivers/greybus/bundle.c
+++ b/drivers/greybus/bundle.c
@@ -197,7 +197,7 @@ struct gb_bundle *gb_bundle_create(struct gb_interface *intf, u8 bundle_id,
return NULL;
}
- bundle = kzalloc(sizeof(*bundle), GFP_KERNEL);
+ bundle = kzalloc_obj(*bundle, GFP_KERNEL);
if (!bundle)
return NULL;
diff --git a/drivers/greybus/connection.c b/drivers/greybus/connection.c
index 9c88861986c8..91fd5cbb716d 100644
--- a/drivers/greybus/connection.c
+++ b/drivers/greybus/connection.c
@@ -165,7 +165,7 @@ _gb_connection_create(struct gb_host_device *hd, int hd_cport_id,
}
hd_cport_id = ret;
- connection = kzalloc(sizeof(*connection), GFP_KERNEL);
+ connection = kzalloc_obj(*connection, GFP_KERNEL);
if (!connection) {
ret = -ENOMEM;
goto err_hd_cport_release;
diff --git a/drivers/greybus/control.c b/drivers/greybus/control.c
index b5cf49d09df2..8e5c8288bf5a 100644
--- a/drivers/greybus/control.c
+++ b/drivers/greybus/control.c
@@ -446,7 +446,7 @@ struct gb_control *gb_control_create(struct gb_interface *intf)
struct gb_connection *connection;
struct gb_control *control;
- control = kzalloc(sizeof(*control), GFP_KERNEL);
+ control = kzalloc_obj(*control, GFP_KERNEL);
if (!control)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/greybus/es2.c b/drivers/greybus/es2.c
index 7630a36ecf81..5acb238dde17 100644
--- a/drivers/greybus/es2.c
+++ b/drivers/greybus/es2.c
@@ -547,7 +547,7 @@ static int cport_enable(struct gb_host_device *hd, u16 cport_id,
u32 connection_flags;
int ret;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -883,7 +883,7 @@ static struct arpc *arpc_alloc(void *payload, u16 size, u8 type)
if (size + sizeof(*rpc->req) > ARPC_OUT_SIZE_MAX)
return NULL;
- rpc = kzalloc(sizeof(*rpc), GFP_KERNEL);
+ rpc = kzalloc_obj(*rpc, GFP_KERNEL);
if (!rpc)
return NULL;
@@ -892,7 +892,7 @@ static struct arpc *arpc_alloc(void *payload, u16 size, u8 type)
if (!rpc->req)
goto err_free_rpc;
- rpc->resp = kzalloc(sizeof(*rpc->resp), GFP_KERNEL);
+ rpc->resp = kzalloc_obj(*rpc->resp, GFP_KERNEL);
if (!rpc->resp)
goto err_free_req;
@@ -1203,7 +1203,7 @@ static int apb_get_cport_count(struct usb_device *udev)
int retval;
__le16 *cport_count;
- cport_count = kzalloc(sizeof(*cport_count), GFP_KERNEL);
+ cport_count = kzalloc_obj(*cport_count, GFP_KERNEL);
if (!cport_count)
return -ENOMEM;
diff --git a/drivers/greybus/interface.c b/drivers/greybus/interface.c
index a0f3e9422721..881eb5e545a0 100644
--- a/drivers/greybus/interface.c
+++ b/drivers/greybus/interface.c
@@ -789,7 +789,7 @@ struct gb_interface *gb_interface_create(struct gb_module *module,
struct gb_host_device *hd = module->hd;
struct gb_interface *intf;
- intf = kzalloc(sizeof(*intf), GFP_KERNEL);
+ intf = kzalloc_obj(*intf, GFP_KERNEL);
if (!intf)
return NULL;
diff --git a/drivers/greybus/manifest.c b/drivers/greybus/manifest.c
index dd7040697bde..0cb87bea249e 100644
--- a/drivers/greybus/manifest.c
+++ b/drivers/greybus/manifest.c
@@ -157,7 +157,7 @@ static int identify_descriptor(struct gb_interface *intf,
expected_size, desc_size);
}
- descriptor = kzalloc(sizeof(*descriptor), GFP_KERNEL);
+ descriptor = kzalloc_obj(*descriptor, GFP_KERNEL);
if (!descriptor)
return -ENOMEM;
@@ -275,8 +275,8 @@ static u32 gb_manifest_parse_cports(struct gb_bundle *bundle)
if (!count)
return 0;
- bundle->cport_desc = kcalloc(count, sizeof(*bundle->cport_desc),
- GFP_KERNEL);
+ bundle->cport_desc = kzalloc_objs(*bundle->cport_desc, count,
+ GFP_KERNEL);
if (!bundle->cport_desc)
goto exit;
diff --git a/drivers/greybus/module.c b/drivers/greybus/module.c
index 7f7153a1dd60..1f68516716be 100644
--- a/drivers/greybus/module.c
+++ b/drivers/greybus/module.c
@@ -93,8 +93,7 @@ struct gb_module *gb_module_create(struct gb_host_device *hd, u8 module_id,
struct gb_module *module;
int i;
- module = kzalloc(struct_size(module, interfaces, num_interfaces),
- GFP_KERNEL);
+ module = kzalloc_flex(*module, interfaces, num_interfaces, GFP_KERNEL);
if (!module)
return NULL;
diff --git a/drivers/greybus/svc.c b/drivers/greybus/svc.c
index 35ea7147dca6..4efe3dd5bc17 100644
--- a/drivers/greybus/svc.c
+++ b/drivers/greybus/svc.c
@@ -782,8 +782,8 @@ static void gb_svc_pwrmon_debugfs_init(struct gb_svc *svc)
if (!rail_names)
goto err_pwrmon_debugfs;
- svc->pwrmon_rails = kcalloc(rail_count, sizeof(*svc->pwrmon_rails),
- GFP_KERNEL);
+ svc->pwrmon_rails = kzalloc_objs(*svc->pwrmon_rails, rail_count,
+ GFP_KERNEL);
if (!svc->pwrmon_rails)
goto err_pwrmon_debugfs_free;
@@ -1128,7 +1128,7 @@ static int gb_svc_queue_deferred_request(struct gb_operation *operation)
struct gb_svc *svc = gb_connection_get_data(operation->connection);
struct gb_svc_deferred_request *dr;
- dr = kmalloc(sizeof(*dr), GFP_KERNEL);
+ dr = kmalloc_obj(*dr, GFP_KERNEL);
if (!dr)
return -ENOMEM;
@@ -1315,7 +1315,7 @@ struct gb_svc *gb_svc_create(struct gb_host_device *hd)
{
struct gb_svc *svc;
- svc = kzalloc(sizeof(*svc), GFP_KERNEL);
+ svc = kzalloc_obj(*svc, GFP_KERNEL);
if (!svc)
return NULL;
diff --git a/drivers/greybus/svc_watchdog.c b/drivers/greybus/svc_watchdog.c
index b6b1682c19c4..2d2171f95822 100644
--- a/drivers/greybus/svc_watchdog.c
+++ b/drivers/greybus/svc_watchdog.c
@@ -112,7 +112,7 @@ int gb_svc_watchdog_create(struct gb_svc *svc)
if (svc->watchdog)
return 0;
- watchdog = kmalloc(sizeof(*watchdog), GFP_KERNEL);
+ watchdog = kmalloc_obj(*watchdog, GFP_KERNEL);
if (!watchdog)
return -ENOMEM;
diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_client.c b/drivers/hid/amd-sfh-hid/amd_sfh_client.c
index 7017bfa59093..8b479441bf90 100644
--- a/drivers/hid/amd-sfh-hid/amd_sfh_client.c
+++ b/drivers/hid/amd-sfh-hid/amd_sfh_client.c
@@ -47,7 +47,7 @@ int amd_sfh_get_report(struct hid_device *hid, int report_id, int report_type)
guard(mutex)(&mp2->lock);
for (i = 0; i < cli_data->num_hid_devices; i++) {
if (cli_data->hid_sensor_hubs[i] == hid) {
- struct request_list *new = kzalloc(sizeof(*new), GFP_KERNEL);
+ struct request_list *new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return -ENOMEM;
diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_hid.c b/drivers/hid/amd-sfh-hid/amd_sfh_hid.c
index 81f3024b7b1b..59bc9a2e0cd7 100644
--- a/drivers/hid/amd-sfh-hid/amd_sfh_hid.c
+++ b/drivers/hid/amd-sfh-hid/amd_sfh_hid.c
@@ -135,7 +135,7 @@ int amdtp_hid_probe(u32 cur_hid_dev, struct amdtp_cl_data *cli_data)
if (IS_ERR(hid))
return PTR_ERR(hid);
- hid_data = kzalloc(sizeof(*hid_data), GFP_KERNEL);
+ hid_data = kzalloc_obj(*hid_data, GFP_KERNEL);
if (!hid_data) {
rc = -ENOMEM;
goto err_hid_data;
diff --git a/drivers/hid/bpf/hid_bpf_dispatch.c b/drivers/hid/bpf/hid_bpf_dispatch.c
index 892aca026ffa..c99d81789eb3 100644
--- a/drivers/hid/bpf/hid_bpf_dispatch.c
+++ b/drivers/hid/bpf/hid_bpf_dispatch.c
@@ -320,7 +320,7 @@ hid_bpf_allocate_context(unsigned int hid_id)
if (IS_ERR(hdev))
return NULL;
- ctx_kern = kzalloc(sizeof(*ctx_kern), GFP_KERNEL);
+ ctx_kern = kzalloc_obj(*ctx_kern, GFP_KERNEL);
if (!ctx_kern) {
hid_put_device(hdev);
return NULL;
diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c
index 233e367cce1d..189baafe2d1e 100644
--- a/drivers/hid/hid-apple.c
+++ b/drivers/hid/hid-apple.c
@@ -794,7 +794,7 @@ static int apple_backlight_set(struct hid_device *hdev, u16 value, u16 rate)
int ret = 0;
struct apple_backlight_set_report *rep;
- rep = kmalloc(sizeof(*rep), GFP_KERNEL);
+ rep = kmalloc_obj(*rep, GFP_KERNEL);
if (rep == NULL)
return -ENOMEM;
diff --git a/drivers/hid/hid-axff.c b/drivers/hid/hid-axff.c
index fbe4e16ab029..c7dcdffff9e6 100644
--- a/drivers/hid/hid-axff.c
+++ b/drivers/hid/hid-axff.c
@@ -96,7 +96,7 @@ static int axff_init(struct hid_device *hid)
return -ENODEV;
}
- axff = kzalloc(sizeof(struct axff_device), GFP_KERNEL);
+ axff = kzalloc_obj(struct axff_device, GFP_KERNEL);
if (!axff)
return -ENOMEM;
diff --git a/drivers/hid/hid-betopff.c b/drivers/hid/hid-betopff.c
index a6d5f030d023..d739b3746138 100644
--- a/drivers/hid/hid-betopff.c
+++ b/drivers/hid/hid-betopff.c
@@ -100,7 +100,7 @@ static int betopff_init(struct hid_device *hid)
}
}
- betopff = kzalloc(sizeof(*betopff), GFP_KERNEL);
+ betopff = kzalloc_obj(*betopff, GFP_KERNEL);
if (!betopff)
return -ENOMEM;
diff --git a/drivers/hid/hid-cmedia.c b/drivers/hid/hid-cmedia.c
index 528d7f361215..c81c34e5b41a 100644
--- a/drivers/hid/hid-cmedia.c
+++ b/drivers/hid/hid-cmedia.c
@@ -145,7 +145,7 @@ static int cmhid_probe(struct hid_device *hid, const struct hid_device_id *id)
int ret;
struct cmhid *cm;
- cm = kzalloc(sizeof(struct cmhid), GFP_KERNEL);
+ cm = kzalloc_obj(struct cmhid, GFP_KERNEL);
if (!cm) {
ret = -ENOMEM;
goto allocfail;
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index a5b3a8ca2fcb..d1ea455ce3d2 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -93,7 +93,7 @@ struct hid_report *hid_register_report(struct hid_device *device,
if (report_enum->report_id_hash[id])
return report_enum->report_id_hash[id];
- report = kzalloc(sizeof(struct hid_report), GFP_KERNEL);
+ report = kzalloc_obj(struct hid_report, GFP_KERNEL);
if (!report)
return NULL;
@@ -1319,8 +1319,9 @@ int hid_open_report(struct hid_device *device)
end = start + size;
- device->collection = kcalloc(HID_DEFAULT_NUM_COLLECTIONS,
- sizeof(struct hid_collection), GFP_KERNEL);
+ device->collection = kzalloc_objs(struct hid_collection,
+ HID_DEFAULT_NUM_COLLECTIONS,
+ GFP_KERNEL);
if (!device->collection) {
ret = -ENOMEM;
goto err;
@@ -1796,7 +1797,7 @@ static void hid_report_process_ordering(struct hid_device *hid,
}
/* allocate the memory to process the fields */
- entries = kcalloc(count, sizeof(*entries), GFP_KERNEL);
+ entries = kzalloc_objs(*entries, count, GFP_KERNEL);
if (!entries)
return;
@@ -2610,7 +2611,7 @@ static ssize_t new_id_store(struct device_driver *drv, const char *buf,
if (ret < 3)
return -EINVAL;
- dynid = kzalloc(sizeof(*dynid), GFP_KERNEL);
+ dynid = kzalloc_obj(*dynid, GFP_KERNEL);
if (!dynid)
return -ENOMEM;
@@ -2972,7 +2973,7 @@ struct hid_device *hid_allocate_device(void)
struct hid_device *hdev;
int ret = -ENOMEM;
- hdev = kzalloc(sizeof(*hdev), GFP_KERNEL);
+ hdev = kzalloc_obj(*hdev, GFP_KERNEL);
if (hdev == NULL)
return ERR_PTR(ret);
diff --git a/drivers/hid/hid-corsair.c b/drivers/hid/hid-corsair.c
index 62b99f5c3cf8..750cac0a2a69 100644
--- a/drivers/hid/hid-corsair.c
+++ b/drivers/hid/hid-corsair.c
@@ -427,7 +427,7 @@ static int k90_init_backlight(struct hid_device *dev)
size_t name_sz;
char *name;
- drvdata->backlight = kzalloc(sizeof(struct k90_led), GFP_KERNEL);
+ drvdata->backlight = kzalloc_obj(struct k90_led, GFP_KERNEL);
if (!drvdata->backlight) {
ret = -ENOMEM;
goto fail_backlight_alloc;
@@ -471,7 +471,7 @@ static int k90_init_macro_functions(struct hid_device *dev)
size_t name_sz;
char *name;
- k90 = kzalloc(sizeof(struct k90_drvdata), GFP_KERNEL);
+ k90 = kzalloc_obj(struct k90_drvdata, GFP_KERNEL);
if (!k90) {
ret = -ENOMEM;
goto fail_drvdata;
diff --git a/drivers/hid/hid-cougar.c b/drivers/hid/hid-cougar.c
index 5596dd940322..0b66a7c61ac6 100644
--- a/drivers/hid/hid-cougar.c
+++ b/drivers/hid/hid-cougar.c
@@ -166,7 +166,7 @@ static int cougar_bind_shared_data(struct hid_device *hdev,
shared = cougar_get_shared_data(hdev);
if (!shared) {
- shared = kzalloc(sizeof(*shared), GFP_KERNEL);
+ shared = kzalloc_obj(*shared, GFP_KERNEL);
if (!shared) {
error = -ENOMEM;
goto out;
diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c
index c5865b0d2aaa..220b497c573a 100644
--- a/drivers/hid/hid-debug.c
+++ b/drivers/hid/hid-debug.c
@@ -3681,7 +3681,7 @@ static int hid_debug_events_open(struct inode *inode, struct file *file)
struct hid_debug_list *list;
unsigned long flags;
- if (!(list = kzalloc(sizeof(struct hid_debug_list), GFP_KERNEL))) {
+ if (!(list = kzalloc_obj(struct hid_debug_list, GFP_KERNEL))) {
err = -ENOMEM;
goto out;
}
diff --git a/drivers/hid/hid-dr.c b/drivers/hid/hid-dr.c
index 84e1e90a266b..9923b222383a 100644
--- a/drivers/hid/hid-dr.c
+++ b/drivers/hid/hid-dr.c
@@ -104,7 +104,7 @@ static int drff_init(struct hid_device *hid)
return -ENODEV;
}
- drff = kzalloc(sizeof(struct drff_device), GFP_KERNEL);
+ drff = kzalloc_obj(struct drff_device, GFP_KERNEL);
if (!drff)
return -ENOMEM;
diff --git a/drivers/hid/hid-elo.c b/drivers/hid/hid-elo.c
index cf17bdd14d9c..465f04ed1a55 100644
--- a/drivers/hid/hid-elo.c
+++ b/drivers/hid/hid-elo.c
@@ -232,7 +232,7 @@ static int elo_probe(struct hid_device *hdev, const struct hid_device_id *id)
if (!hid_is_usb(hdev))
return -EINVAL;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/hid/hid-emsff.c b/drivers/hid/hid-emsff.c
index 60bfb6a924d7..0dbe598f2e48 100644
--- a/drivers/hid/hid-emsff.c
+++ b/drivers/hid/hid-emsff.c
@@ -76,7 +76,7 @@ static int emsff_init(struct hid_device *hid)
return -ENODEV;
}
- emsff = kzalloc(sizeof(struct emsff_device), GFP_KERNEL);
+ emsff = kzalloc_obj(struct emsff_device, GFP_KERNEL);
if (!emsff)
return -ENOMEM;
diff --git a/drivers/hid/hid-gaff.c b/drivers/hid/hid-gaff.c
index c6db8b6cc8ee..a9d305a193d2 100644
--- a/drivers/hid/hid-gaff.c
+++ b/drivers/hid/hid-gaff.c
@@ -96,7 +96,7 @@ static int gaff_init(struct hid_device *hid)
return -ENODEV;
}
- gaff = kzalloc(sizeof(struct gaff_device), GFP_KERNEL);
+ gaff = kzalloc_obj(struct gaff_device, GFP_KERNEL);
if (!gaff)
return -ENOMEM;
diff --git a/drivers/hid/hid-google-hammer.c b/drivers/hid/hid-google-hammer.c
index 4c1ccf7a267a..99b2e0919830 100644
--- a/drivers/hid/hid-google-hammer.c
+++ b/drivers/hid/hid-google-hammer.c
@@ -59,8 +59,8 @@ static int cbas_ec_query_base(struct cros_ec_device *ec_dev, bool get_state,
struct cros_ec_command *msg;
int ret;
- msg = kzalloc(struct_size(msg, data, max(sizeof(u32), sizeof(*params))),
- GFP_KERNEL);
+ msg = kzalloc_flex(*msg, data, max(sizeof(u32), sizeof(*params)),
+ GFP_KERNEL);
if (!msg)
return -ENOMEM;
diff --git a/drivers/hid/hid-haptic.c b/drivers/hid/hid-haptic.c
index fc8a9997f815..84f4b1ece777 100644
--- a/drivers/hid/hid-haptic.c
+++ b/drivers/hid/hid-haptic.c
@@ -474,8 +474,8 @@ int hid_haptic_init(struct hid_device *hdev,
ret = -ENOMEM;
goto duration_map;
}
- haptic->effect = kcalloc(FF_MAX_EFFECTS,
- sizeof(struct hid_haptic_effect), GFP_KERNEL);
+ haptic->effect = kzalloc_objs(struct hid_haptic_effect, FF_MAX_EFFECTS,
+ GFP_KERNEL);
if (!haptic->effect) {
ret = -ENOMEM;
goto output_queue;
diff --git a/drivers/hid/hid-holtekff.c b/drivers/hid/hid-holtekff.c
index 8619b80c834c..56980af08683 100644
--- a/drivers/hid/hid-holtekff.c
+++ b/drivers/hid/hid-holtekff.c
@@ -149,7 +149,7 @@ static int holtekff_init(struct hid_device *hid)
return -ENODEV;
}
- holtekff = kzalloc(sizeof(*holtekff), GFP_KERNEL);
+ holtekff = kzalloc_obj(*holtekff, GFP_KERNEL);
if (!holtekff)
return -ENOMEM;
diff --git a/drivers/hid/hid-hyperv.c b/drivers/hid/hid-hyperv.c
index 9eafff0b6ea4..f092547d08d2 100644
--- a/drivers/hid/hid-hyperv.c
+++ b/drivers/hid/hid-hyperv.c
@@ -149,7 +149,7 @@ static struct mousevsc_dev *mousevsc_alloc_device(struct hv_device *device)
{
struct mousevsc_dev *input_dev;
- input_dev = kzalloc(sizeof(struct mousevsc_dev), GFP_KERNEL);
+ input_dev = kzalloc_obj(struct mousevsc_dev, GFP_KERNEL);
if (!input_dev)
return NULL;
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index 2633fcd8f910..6137cc0aeeaf 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -531,7 +531,7 @@ static int hidinput_setup_battery(struct hid_device *dev, unsigned report_type,
if (quirks & HID_BATTERY_QUIRK_IGNORE)
return 0;
- psy_desc = kzalloc(sizeof(*psy_desc), GFP_KERNEL);
+ psy_desc = kzalloc_obj(*psy_desc, GFP_KERNEL);
if (!psy_desc)
return -ENOMEM;
@@ -2023,7 +2023,7 @@ static void report_features(struct hid_device *hid)
static struct hid_input *hidinput_allocate(struct hid_device *hid,
unsigned int application)
{
- struct hid_input *hidinput = kzalloc(sizeof(*hidinput), GFP_KERNEL);
+ struct hid_input *hidinput = kzalloc_obj(*hidinput, GFP_KERNEL);
struct input_dev *input_dev = input_allocate_device();
const char *suffix = NULL;
size_t suffix_len, name_len;
diff --git a/drivers/hid/hid-lg.c b/drivers/hid/hid-lg.c
index 9a2cfa018bd3..7cdf1e895b69 100644
--- a/drivers/hid/hid-lg.c
+++ b/drivers/hid/hid-lg.c
@@ -768,7 +768,7 @@ static int lg_probe(struct hid_device *hdev, const struct hid_device_id *id)
return -ENODEV;
}
- drv_data = kzalloc(sizeof(struct lg_drv_data), GFP_KERNEL);
+ drv_data = kzalloc_obj(struct lg_drv_data, GFP_KERNEL);
if (!drv_data) {
hid_err(hdev, "Insufficient memory, cannot allocate driver data\n");
return -ENOMEM;
diff --git a/drivers/hid/hid-lg2ff.c b/drivers/hid/hid-lg2ff.c
index 73d07e35f12a..e4a034bd4095 100644
--- a/drivers/hid/hid-lg2ff.c
+++ b/drivers/hid/hid-lg2ff.c
@@ -66,7 +66,7 @@ int lg2ff_init(struct hid_device *hid)
if (!report)
return -ENODEV;
- lg2ff = kmalloc(sizeof(struct lg2ff_device), GFP_KERNEL);
+ lg2ff = kmalloc_obj(struct lg2ff_device, GFP_KERNEL);
if (!lg2ff)
return -ENOMEM;
diff --git a/drivers/hid/hid-lg4ff.c b/drivers/hid/hid-lg4ff.c
index 32b711723f2a..4979f7779de8 100644
--- a/drivers/hid/hid-lg4ff.c
+++ b/drivers/hid/hid-lg4ff.c
@@ -1288,7 +1288,7 @@ int lg4ff_init(struct hid_device *hid)
hid_err(hid, "Cannot add device, private driver data not allocated\n");
return -1;
}
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
spin_lock_init(&entry->report_lock);
diff --git a/drivers/hid/hid-logitech-dj.c b/drivers/hid/hid-logitech-dj.c
index c41fded63f4b..2fb6a67bede2 100644
--- a/drivers/hid/hid-logitech-dj.c
+++ b/drivers/hid/hid-logitech-dj.c
@@ -733,7 +733,7 @@ static struct dj_receiver_dev *dj_get_receiver_dev(struct hid_device *hdev,
djrcv_dev = dj_find_receiver_dev(hdev, type);
if (!djrcv_dev) {
- djrcv_dev = kzalloc(sizeof(*djrcv_dev), GFP_KERNEL);
+ djrcv_dev = kzalloc_obj(*djrcv_dev, GFP_KERNEL);
if (!djrcv_dev)
goto out;
@@ -851,7 +851,7 @@ static void logi_dj_recv_add_djhid_device(struct dj_receiver_dev *djrcv_dev,
snprintf(tmpstr, sizeof(tmpstr), ":%d", device_index);
strlcat(dj_hiddev->phys, tmpstr, sizeof(dj_hiddev->phys));
- dj_dev = kzalloc(sizeof(struct dj_device), GFP_KERNEL);
+ dj_dev = kzalloc_obj(struct dj_device, GFP_KERNEL);
if (!dj_dev) {
hid_err(djrcv_hdev, "%s: failed allocating dj_dev\n", __func__);
@@ -1332,7 +1332,7 @@ static int logi_dj_recv_query_paired_devices(struct dj_receiver_dev *djrcv_dev)
goto out;
}
- dj_report = kzalloc(sizeof(struct dj_report), GFP_KERNEL);
+ dj_report = kzalloc_obj(struct dj_report, GFP_KERNEL);
if (!dj_report)
return -ENOMEM;
dj_report->report_id = REPORT_ID_DJ_SHORT;
@@ -1356,7 +1356,7 @@ static int logi_dj_recv_switch_to_dj_mode(struct dj_receiver_dev *djrcv_dev,
u8 *buf;
int retval = 0;
- dj_report = kzalloc(sizeof(struct dj_report), GFP_KERNEL);
+ dj_report = kzalloc_obj(struct dj_report, GFP_KERNEL);
if (!dj_report)
return -ENOMEM;
diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hidpp.c
index 02d83c3bd73d..4f3289b8a7c2 100644
--- a/drivers/hid/hid-logitech-hidpp.c
+++ b/drivers/hid/hid-logitech-hidpp.c
@@ -390,7 +390,7 @@ static int hidpp_send_fap_command_sync(struct hidpp_device *hidpp,
return -EINVAL;
}
- message = kzalloc(sizeof(struct hidpp_report), GFP_KERNEL);
+ message = kzalloc_obj(struct hidpp_report, GFP_KERNEL);
if (!message)
return -ENOMEM;
@@ -443,7 +443,7 @@ static int hidpp_send_rap_command_sync(struct hidpp_device *hidpp_dev,
if (param_count > max_count)
return -EINVAL;
- message = kzalloc(sizeof(struct hidpp_report), GFP_KERNEL);
+ message = kzalloc_obj(struct hidpp_report, GFP_KERNEL);
if (!message)
return -ENOMEM;
message->report_id = report_id;
@@ -2527,7 +2527,7 @@ static void hidpp_ff_work_handler(struct work_struct *w)
static int hidpp_ff_queue_work(struct hidpp_ff_private_data *data, int effect_id, u8 command, u8 *params, u8 size)
{
- struct hidpp_ff_work_data *wd = kzalloc(sizeof(*wd), GFP_KERNEL);
+ struct hidpp_ff_work_data *wd = kzalloc_obj(*wd, GFP_KERNEL);
int s;
if (!wd)
@@ -2853,7 +2853,7 @@ static int hidpp_ff_init(struct hidpp_device *hidpp,
data = kmemdup(data, sizeof(*data), GFP_KERNEL);
if (!data)
return -ENOMEM;
- data->effect_ids = kcalloc(num_slots, sizeof(int), GFP_KERNEL);
+ data->effect_ids = kzalloc_objs(int, num_slots, GFP_KERNEL);
if (!data->effect_ids) {
kfree(data);
return -ENOMEM;
diff --git a/drivers/hid/hid-megaworld.c b/drivers/hid/hid-megaworld.c
index 0476d7d16e7f..62f3e976f6b3 100644
--- a/drivers/hid/hid-megaworld.c
+++ b/drivers/hid/hid-megaworld.c
@@ -57,7 +57,7 @@ static int mwctrl_init(struct hid_device *hid)
return -ENODEV;
}
- mwctrl = kzalloc(sizeof(struct mwctrl_device), GFP_KERNEL);
+ mwctrl = kzalloc_obj(struct mwctrl_device, GFP_KERNEL);
if (!mwctrl)
return -ENOMEM;
diff --git a/drivers/hid/hid-mf.c b/drivers/hid/hid-mf.c
index 49a4052a1496..9a34645e92b6 100644
--- a/drivers/hid/hid-mf.c
+++ b/drivers/hid/hid-mf.c
@@ -88,7 +88,7 @@ static int mf_init(struct hid_device *hid)
input_ptr = input_ptr->next;
input = list_entry(input_ptr, struct hid_input, list);
- mf = kzalloc(sizeof(struct mf_device), GFP_KERNEL);
+ mf = kzalloc_obj(struct mf_device, GFP_KERNEL);
if (!mf)
return -ENOMEM;
diff --git a/drivers/hid/hid-ntrig.c b/drivers/hid/hid-ntrig.c
index a7f10c45f62b..f48dc2f34f79 100644
--- a/drivers/hid/hid-ntrig.c
+++ b/drivers/hid/hid-ntrig.c
@@ -900,7 +900,7 @@ static int ntrig_probe(struct hid_device *hdev, const struct hid_device_id *id)
hdev->quirks |= HID_QUIRK_MULTI_INPUT
| HID_QUIRK_NO_INIT_REPORTS;
- nd = kmalloc(sizeof(struct ntrig_data), GFP_KERNEL);
+ nd = kmalloc_obj(struct ntrig_data, GFP_KERNEL);
if (!nd) {
hid_err(hdev, "cannot allocate N-Trig data\n");
return -ENOMEM;
diff --git a/drivers/hid/hid-picolcd_core.c b/drivers/hid/hid-picolcd_core.c
index 6a88e6bc70f3..99cae54dc769 100644
--- a/drivers/hid/hid-picolcd_core.c
+++ b/drivers/hid/hid-picolcd_core.c
@@ -78,7 +78,7 @@ struct picolcd_pending *picolcd_send_and_wait(struct hid_device *hdev,
return NULL;
if (data->status & PICOLCD_FAILED)
return NULL;
- work = kzalloc(sizeof(*work), GFP_KERNEL);
+ work = kzalloc_obj(*work, GFP_KERNEL);
if (!work)
return NULL;
@@ -528,7 +528,7 @@ static int picolcd_probe(struct hid_device *hdev,
* Let's allocate the picolcd data structure, set some reasonable
* defaults, and associate it with the device
*/
- data = kzalloc(sizeof(struct picolcd_data), GFP_KERNEL);
+ data = kzalloc_obj(struct picolcd_data, GFP_KERNEL);
if (data == NULL) {
hid_err(hdev, "can't allocate space for Minibox PicoLCD device data\n");
return -ENOMEM;
diff --git a/drivers/hid/hid-pl.c b/drivers/hid/hid-pl.c
index dc11d5322fc0..967f93d9b46b 100644
--- a/drivers/hid/hid-pl.c
+++ b/drivers/hid/hid-pl.c
@@ -140,7 +140,7 @@ static int plff_init(struct hid_device *hid)
return -ENODEV;
}
- plff = kzalloc(sizeof(struct plff_device), GFP_KERNEL);
+ plff = kzalloc_obj(struct plff_device, GFP_KERNEL);
if (!plff)
return -ENOMEM;
diff --git a/drivers/hid/hid-playstation.c b/drivers/hid/hid-playstation.c
index 2ec6d4445e84..2458c6b61358 100644
--- a/drivers/hid/hid-playstation.c
+++ b/drivers/hid/hid-playstation.c
@@ -1658,7 +1658,7 @@ static int dualsense_reset_leds(struct dualsense *ds)
struct dualsense_output_report report;
struct dualsense_output_report_bt *buf;
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return -ENOMEM;
diff --git a/drivers/hid/hid-prodikeys.c b/drivers/hid/hid-prodikeys.c
index 6e413df38358..e69b3cb682bc 100644
--- a/drivers/hid/hid-prodikeys.c
+++ b/drivers/hid/hid-prodikeys.c
@@ -797,7 +797,7 @@ static int pk_probe(struct hid_device *hdev, const struct hid_device_id *id)
intf = to_usb_interface(hdev->dev.parent);
ifnum = intf->cur_altsetting->desc.bInterfaceNumber;
- pm = kzalloc(sizeof(*pm), GFP_KERNEL);
+ pm = kzalloc_obj(*pm, GFP_KERNEL);
if (pm == NULL) {
hid_err(hdev, "can't alloc descriptor\n");
return -ENOMEM;
diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
index 3217e436c052..b6a9cfb71ec9 100644
--- a/drivers/hid/hid-quirks.c
+++ b/drivers/hid/hid-quirks.c
@@ -1164,11 +1164,11 @@ static int hid_modify_dquirk(const struct hid_device_id *id,
int list_edited = 0;
int ret = 0;
- hdev = kzalloc(sizeof(*hdev), GFP_KERNEL);
+ hdev = kzalloc_obj(*hdev, GFP_KERNEL);
if (!hdev)
return -ENOMEM;
- q_new = kmalloc(sizeof(struct quirks_list_struct), GFP_KERNEL);
+ q_new = kmalloc_obj(struct quirks_list_struct, GFP_KERNEL);
if (!q_new) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/hid/hid-roccat-arvo.c b/drivers/hid/hid-roccat-arvo.c
index 7b09adfa44a1..f7318bc9e1a5 100644
--- a/drivers/hid/hid-roccat-arvo.c
+++ b/drivers/hid/hid-roccat-arvo.c
@@ -299,7 +299,7 @@ static int arvo_init_specials(struct hid_device *hdev)
return 0;
}
- arvo = kzalloc(sizeof(*arvo), GFP_KERNEL);
+ arvo = kzalloc_obj(*arvo, GFP_KERNEL);
if (!arvo) {
hid_err(hdev, "can't alloc device descriptor\n");
return -ENOMEM;
diff --git a/drivers/hid/hid-roccat-isku.c b/drivers/hid/hid-roccat-isku.c
index 339378771ed5..470c5e47d185 100644
--- a/drivers/hid/hid-roccat-isku.c
+++ b/drivers/hid/hid-roccat-isku.c
@@ -279,7 +279,7 @@ static int isku_init_specials(struct hid_device *hdev)
return 0;
}
- isku = kzalloc(sizeof(*isku), GFP_KERNEL);
+ isku = kzalloc_obj(*isku, GFP_KERNEL);
if (!isku) {
hid_err(hdev, "can't alloc device descriptor\n");
return -ENOMEM;
diff --git a/drivers/hid/hid-roccat-kone.c b/drivers/hid/hid-roccat-kone.c
index fabc08efcfd8..9ec3e015acb9 100644
--- a/drivers/hid/hid-roccat-kone.c
+++ b/drivers/hid/hid-roccat-kone.c
@@ -704,7 +704,7 @@ static int kone_init_specials(struct hid_device *hdev)
if (intf->cur_altsetting->desc.bInterfaceProtocol
== USB_INTERFACE_PROTOCOL_MOUSE) {
- kone = kzalloc(sizeof(*kone), GFP_KERNEL);
+ kone = kzalloc_obj(*kone, GFP_KERNEL);
if (!kone)
return -ENOMEM;
hid_set_drvdata(hdev, kone);
diff --git a/drivers/hid/hid-roccat-koneplus.c b/drivers/hid/hid-roccat-koneplus.c
index 77d45d36421a..534d67a2617e 100644
--- a/drivers/hid/hid-roccat-koneplus.c
+++ b/drivers/hid/hid-roccat-koneplus.c
@@ -384,7 +384,7 @@ static int koneplus_init_specials(struct hid_device *hdev)
if (intf->cur_altsetting->desc.bInterfaceProtocol
== USB_INTERFACE_PROTOCOL_MOUSE) {
- koneplus = kzalloc(sizeof(*koneplus), GFP_KERNEL);
+ koneplus = kzalloc_obj(*koneplus, GFP_KERNEL);
if (!koneplus) {
hid_err(hdev, "can't alloc device descriptor\n");
return -ENOMEM;
diff --git a/drivers/hid/hid-roccat-konepure.c b/drivers/hid/hid-roccat-konepure.c
index 027bfc55ef9c..1994efc4f26b 100644
--- a/drivers/hid/hid-roccat-konepure.c
+++ b/drivers/hid/hid-roccat-konepure.c
@@ -88,7 +88,7 @@ static int konepure_init_specials(struct hid_device *hdev)
return 0;
}
- konepure = kzalloc(sizeof(*konepure), GFP_KERNEL);
+ konepure = kzalloc_obj(*konepure, GFP_KERNEL);
if (!konepure) {
hid_err(hdev, "can't alloc device descriptor\n");
return -ENOMEM;
diff --git a/drivers/hid/hid-roccat-kovaplus.c b/drivers/hid/hid-roccat-kovaplus.c
index a66f1b4730f3..429d9b86b672 100644
--- a/drivers/hid/hid-roccat-kovaplus.c
+++ b/drivers/hid/hid-roccat-kovaplus.c
@@ -453,7 +453,7 @@ static int kovaplus_init_specials(struct hid_device *hdev)
if (intf->cur_altsetting->desc.bInterfaceProtocol
== USB_INTERFACE_PROTOCOL_MOUSE) {
- kovaplus = kzalloc(sizeof(*kovaplus), GFP_KERNEL);
+ kovaplus = kzalloc_obj(*kovaplus, GFP_KERNEL);
if (!kovaplus) {
hid_err(hdev, "can't alloc device descriptor\n");
return -ENOMEM;
diff --git a/drivers/hid/hid-roccat-lua.c b/drivers/hid/hid-roccat-lua.c
index 45e30549c236..a7ed873f8761 100644
--- a/drivers/hid/hid-roccat-lua.c
+++ b/drivers/hid/hid-roccat-lua.c
@@ -119,7 +119,7 @@ static int lua_init_specials(struct hid_device *hdev)
struct lua_device *lua;
int retval;
- lua = kzalloc(sizeof(*lua), GFP_KERNEL);
+ lua = kzalloc_obj(*lua, GFP_KERNEL);
if (!lua) {
hid_err(hdev, "can't alloc device descriptor\n");
return -ENOMEM;
diff --git a/drivers/hid/hid-roccat-pyra.c b/drivers/hid/hid-roccat-pyra.c
index de2da6086e0b..35fffc55eb4f 100644
--- a/drivers/hid/hid-roccat-pyra.c
+++ b/drivers/hid/hid-roccat-pyra.c
@@ -403,7 +403,7 @@ static int pyra_init_specials(struct hid_device *hdev)
if (intf->cur_altsetting->desc.bInterfaceProtocol
== USB_INTERFACE_PROTOCOL_MOUSE) {
- pyra = kzalloc(sizeof(*pyra), GFP_KERNEL);
+ pyra = kzalloc_obj(*pyra, GFP_KERNEL);
if (!pyra) {
hid_err(hdev, "can't alloc device descriptor\n");
return -ENOMEM;
diff --git a/drivers/hid/hid-roccat-ryos.c b/drivers/hid/hid-roccat-ryos.c
index 36911c9da4fe..0f4b52ef5404 100644
--- a/drivers/hid/hid-roccat-ryos.c
+++ b/drivers/hid/hid-roccat-ryos.c
@@ -96,7 +96,7 @@ static int ryos_init_specials(struct hid_device *hdev)
return 0;
}
- ryos = kzalloc(sizeof(*ryos), GFP_KERNEL);
+ ryos = kzalloc_obj(*ryos, GFP_KERNEL);
if (!ryos) {
hid_err(hdev, "can't alloc device descriptor\n");
return -ENOMEM;
diff --git a/drivers/hid/hid-roccat-savu.c b/drivers/hid/hid-roccat-savu.c
index fb2e464c3ada..90f9b0feb754 100644
--- a/drivers/hid/hid-roccat-savu.c
+++ b/drivers/hid/hid-roccat-savu.c
@@ -68,7 +68,7 @@ static int savu_init_specials(struct hid_device *hdev)
return 0;
}
- savu = kzalloc(sizeof(*savu), GFP_KERNEL);
+ savu = kzalloc_obj(*savu, GFP_KERNEL);
if (!savu) {
hid_err(hdev, "can't alloc device descriptor\n");
return -ENOMEM;
diff --git a/drivers/hid/hid-roccat.c b/drivers/hid/hid-roccat.c
index c7f7562e22e5..5fe16ec1849a 100644
--- a/drivers/hid/hid-roccat.c
+++ b/drivers/hid/hid-roccat.c
@@ -152,7 +152,7 @@ static int roccat_open(struct inode *inode, struct file *file)
struct roccat_device *device;
int error = 0;
- reader = kzalloc(sizeof(struct roccat_reader), GFP_KERNEL);
+ reader = kzalloc_obj(struct roccat_reader, GFP_KERNEL);
if (!reader)
return -ENOMEM;
@@ -301,7 +301,7 @@ int roccat_connect(const struct class *klass, struct hid_device *hid, int report
struct roccat_device *device;
int temp;
- device = kzalloc(sizeof(struct roccat_device), GFP_KERNEL);
+ device = kzalloc_obj(struct roccat_device, GFP_KERNEL);
if (!device)
return -ENOMEM;
diff --git a/drivers/hid/hid-sensor-custom.c b/drivers/hid/hid-sensor-custom.c
index 761760668f6d..75d827c85e14 100644
--- a/drivers/hid/hid-sensor-custom.c
+++ b/drivers/hid/hid-sensor-custom.c
@@ -912,7 +912,7 @@ hid_sensor_custom_get_known(struct hid_sensor_hub_device *hsdev,
hid_sensor_custom_known_table;
struct hid_sensor_custom_properties *prop;
- prop = kmalloc(sizeof(struct hid_sensor_custom_properties), GFP_KERNEL);
+ prop = kmalloc_obj(struct hid_sensor_custom_properties, GFP_KERNEL);
if (!prop)
return -ENOMEM;
diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
index 0edec902be41..90666ff629de 100644
--- a/drivers/hid/hid-sensor-hub.c
+++ b/drivers/hid/hid-sensor-hub.c
@@ -139,7 +139,7 @@ int sensor_hub_register_callback(struct hid_sensor_hub_device *hsdev,
spin_unlock_irqrestore(&pdata->dyn_callback_lock, flags);
return -EINVAL;
}
- callback = kzalloc(sizeof(*callback), GFP_ATOMIC);
+ callback = kzalloc_obj(*callback, GFP_ATOMIC);
if (!callback) {
spin_unlock_irqrestore(&pdata->dyn_callback_lock, flags);
return -ENOMEM;
diff --git a/drivers/hid/hid-sjoy.c b/drivers/hid/hid-sjoy.c
index d3a777f52a3f..e567c264aed3 100644
--- a/drivers/hid/hid-sjoy.c
+++ b/drivers/hid/hid-sjoy.c
@@ -83,7 +83,7 @@ static int sjoyff_init(struct hid_device *hid)
return -ENODEV;
}
- sjoyff = kzalloc(sizeof(struct sjoyff_device), GFP_KERNEL);
+ sjoyff = kzalloc_obj(struct sjoyff_device, GFP_KERNEL);
if (!sjoyff)
return -ENOMEM;
diff --git a/drivers/hid/hid-thrustmaster.c b/drivers/hid/hid-thrustmaster.c
index 0bf70664c35e..15847eef4ac0 100644
--- a/drivers/hid/hid-thrustmaster.c
+++ b/drivers/hid/hid-thrustmaster.c
@@ -308,7 +308,7 @@ static int thrustmaster_probe(struct hid_device *hdev, const struct hid_device_i
}
// Now we allocate the tm_wheel
- tm_wheel = kzalloc(sizeof(struct tm_wheel), GFP_KERNEL);
+ tm_wheel = kzalloc_obj(struct tm_wheel, GFP_KERNEL);
if (!tm_wheel) {
ret = -ENOMEM;
goto error1;
@@ -328,7 +328,7 @@ static int thrustmaster_probe(struct hid_device *hdev, const struct hid_device_i
goto error3;
}
- tm_wheel->response = kzalloc(sizeof(struct tm_wheel_response), GFP_KERNEL);
+ tm_wheel->response = kzalloc_obj(struct tm_wheel_response, GFP_KERNEL);
if (!tm_wheel->response) {
ret = -ENOMEM;
goto error4;
diff --git a/drivers/hid/hid-tmff.c b/drivers/hid/hid-tmff.c
index fcd859aa3a8c..ddb2629ed9e1 100644
--- a/drivers/hid/hid-tmff.c
+++ b/drivers/hid/hid-tmff.c
@@ -132,7 +132,7 @@ static int tmff_init(struct hid_device *hid, const signed short *ff_bits)
hidinput = list_entry(hid->inputs.next, struct hid_input, list);
input_dev = hidinput->input;
- tmff = kzalloc(sizeof(struct tmff_device), GFP_KERNEL);
+ tmff = kzalloc_obj(struct tmff_device, GFP_KERNEL);
if (!tmff)
return -ENOMEM;
diff --git a/drivers/hid/hid-uclogic-params.c b/drivers/hid/hid-uclogic-params.c
index e28176d9d9c9..21b1d865bd0d 100644
--- a/drivers/hid/hid-uclogic-params.c
+++ b/drivers/hid/hid-uclogic-params.c
@@ -1358,13 +1358,13 @@ static int uclogic_params_ugee_v2_init_event_hooks(struct hid_device *hdev,
if (!uclogic_params_ugee_v2_has_battery(hdev))
return 0;
- p->event_hooks = kzalloc(sizeof(*p->event_hooks), GFP_KERNEL);
+ p->event_hooks = kzalloc_obj(*p->event_hooks, GFP_KERNEL);
if (!p->event_hooks)
return -ENOMEM;
INIT_LIST_HEAD(&p->event_hooks->list);
- event_hook = kzalloc(sizeof(*event_hook), GFP_KERNEL);
+ event_hook = kzalloc_obj(*event_hook, GFP_KERNEL);
if (!event_hook)
return -ENOMEM;
diff --git a/drivers/hid/hid-wiimote-core.c b/drivers/hid/hid-wiimote-core.c
index 5b5fc460a4c5..c24ccfc7c05a 100644
--- a/drivers/hid/hid-wiimote-core.c
+++ b/drivers/hid/hid-wiimote-core.c
@@ -1737,7 +1737,7 @@ static struct wiimote_data *wiimote_create(struct hid_device *hdev)
{
struct wiimote_data *wdata;
- wdata = kzalloc(sizeof(*wdata), GFP_KERNEL);
+ wdata = kzalloc_obj(*wdata, GFP_KERNEL);
if (!wdata)
return NULL;
diff --git a/drivers/hid/hid-wiimote-debug.c b/drivers/hid/hid-wiimote-debug.c
index 00f9be55f148..07d7137acfd4 100644
--- a/drivers/hid/hid-wiimote-debug.c
+++ b/drivers/hid/hid-wiimote-debug.c
@@ -174,7 +174,7 @@ int wiidebug_init(struct wiimote_data *wdata)
struct wiimote_debug *dbg;
unsigned long flags;
- dbg = kzalloc(sizeof(*dbg), GFP_KERNEL);
+ dbg = kzalloc_obj(*dbg, GFP_KERNEL);
if (!dbg)
return -ENOMEM;
diff --git a/drivers/hid/hid-zpff.c b/drivers/hid/hid-zpff.c
index aacf7f137b18..b9d94b3fe8b2 100644
--- a/drivers/hid/hid-zpff.c
+++ b/drivers/hid/hid-zpff.c
@@ -71,7 +71,7 @@ static int zpff_init(struct hid_device *hid)
return -ENODEV;
}
- zpff = kzalloc(sizeof(struct zpff_device), GFP_KERNEL);
+ zpff = kzalloc_obj(struct zpff_device, GFP_KERNEL);
if (!zpff)
return -ENOMEM;
diff --git a/drivers/hid/hidraw.c b/drivers/hid/hidraw.c
index bbd6f23bce78..c3cd8521b695 100644
--- a/drivers/hid/hidraw.c
+++ b/drivers/hid/hidraw.c
@@ -281,7 +281,7 @@ static int hidraw_open(struct inode *inode, struct file *file)
unsigned long flags;
int err = 0;
- if (!(list = kzalloc(sizeof(struct hidraw_list), GFP_KERNEL))) {
+ if (!(list = kzalloc_obj(struct hidraw_list, GFP_KERNEL))) {
err = -ENOMEM;
goto out;
}
@@ -603,7 +603,7 @@ int hidraw_connect(struct hid_device *hid)
/* we accept any HID device, all applications */
- dev = kzalloc(sizeof(struct hidraw), GFP_KERNEL);
+ dev = kzalloc_obj(struct hidraw, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/hid/intel-ish-hid/ishtp-hid.c b/drivers/hid/intel-ish-hid/ishtp-hid.c
index be2c62fc8251..48f06c93a07b 100644
--- a/drivers/hid/intel-ish-hid/ishtp-hid.c
+++ b/drivers/hid/intel-ish-hid/ishtp-hid.c
@@ -214,7 +214,7 @@ int ishtp_hid_probe(unsigned int cur_hid_dev,
if (IS_ERR(hid))
return PTR_ERR(hid);
- hid_data = kzalloc(sizeof(*hid_data), GFP_KERNEL);
+ hid_data = kzalloc_obj(*hid_data, GFP_KERNEL);
if (!hid_data) {
rv = -ENOMEM;
goto err_hid_data;
diff --git a/drivers/hid/intel-ish-hid/ishtp/bus.c b/drivers/hid/intel-ish-hid/ishtp/bus.c
index b890fbf97a75..ff60be49f2b8 100644
--- a/drivers/hid/intel-ish-hid/ishtp/bus.c
+++ b/drivers/hid/intel-ish-hid/ishtp/bus.c
@@ -435,7 +435,7 @@ static struct ishtp_cl_device *ishtp_bus_add_device(struct ishtp_device *dev,
}
spin_unlock_irqrestore(&dev->device_list_lock, flags);
- device = kzalloc(sizeof(struct ishtp_cl_device), GFP_KERNEL);
+ device = kzalloc_obj(struct ishtp_cl_device, GFP_KERNEL);
if (!device)
return NULL;
diff --git a/drivers/hid/intel-ish-hid/ishtp/client-buffers.c b/drivers/hid/intel-ish-hid/ishtp/client-buffers.c
index 97f4026b1627..717276f8460a 100644
--- a/drivers/hid/intel-ish-hid/ishtp/client-buffers.c
+++ b/drivers/hid/intel-ish-hid/ishtp/client-buffers.c
@@ -66,7 +66,7 @@ int ishtp_cl_alloc_tx_ring(struct ishtp_cl *cl)
for (j = 0; j < cl->tx_ring_size; ++j) {
struct ishtp_cl_tx_ring *tx_buf;
- tx_buf = kzalloc(sizeof(struct ishtp_cl_tx_ring), GFP_KERNEL);
+ tx_buf = kzalloc_obj(struct ishtp_cl_tx_ring, GFP_KERNEL);
if (!tx_buf)
goto out;
@@ -183,7 +183,7 @@ struct ishtp_cl_rb *ishtp_io_rb_init(struct ishtp_cl *cl)
{
struct ishtp_cl_rb *rb;
- rb = kzalloc(sizeof(struct ishtp_cl_rb), GFP_KERNEL);
+ rb = kzalloc_obj(struct ishtp_cl_rb, GFP_KERNEL);
if (!rb)
return NULL;
diff --git a/drivers/hid/intel-ish-hid/ishtp/client.c b/drivers/hid/intel-ish-hid/ishtp/client.c
index 40f510b1c072..f22b2f85e70f 100644
--- a/drivers/hid/intel-ish-hid/ishtp/client.c
+++ b/drivers/hid/intel-ish-hid/ishtp/client.c
@@ -105,7 +105,7 @@ struct ishtp_cl *ishtp_cl_allocate(struct ishtp_cl_device *cl_device)
{
struct ishtp_cl *cl;
- cl = kmalloc(sizeof(struct ishtp_cl), GFP_KERNEL);
+ cl = kmalloc_obj(struct ishtp_cl, GFP_KERNEL);
if (!cl)
return NULL;
diff --git a/drivers/hid/intel-ish-hid/ishtp/hbm.c b/drivers/hid/intel-ish-hid/ishtp/hbm.c
index 97c4fcd9e3c6..9834dbd04726 100644
--- a/drivers/hid/intel-ish-hid/ishtp/hbm.c
+++ b/drivers/hid/intel-ish-hid/ishtp/hbm.c
@@ -34,8 +34,8 @@ static void ishtp_hbm_fw_cl_allocate(struct ishtp_device *dev)
return;
/* allocate storage for fw clients representation */
- clients = kcalloc(dev->fw_clients_num, sizeof(struct ishtp_fw_client),
- GFP_KERNEL);
+ clients = kzalloc_objs(struct ishtp_fw_client, dev->fw_clients_num,
+ GFP_KERNEL);
if (!clients) {
dev->dev_state = ISHTP_DEV_RESETTING;
ish_hw_reset(dev);
diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c
index 21a70420151e..a4f57143642c 100644
--- a/drivers/hid/uhid.c
+++ b/drivers/hid/uhid.c
@@ -110,7 +110,7 @@ static int uhid_queue_event(struct uhid_device *uhid, __u32 event)
unsigned long flags;
struct uhid_event *ev;
- ev = kzalloc(sizeof(*ev), GFP_KERNEL);
+ ev = kzalloc_obj(*ev, GFP_KERNEL);
if (!ev)
return -ENOMEM;
@@ -129,7 +129,7 @@ static int uhid_hid_start(struct hid_device *hid)
struct uhid_event *ev;
unsigned long flags;
- ev = kzalloc(sizeof(*ev), GFP_KERNEL);
+ ev = kzalloc_obj(*ev, GFP_KERNEL);
if (!ev)
return -ENOMEM;
@@ -240,7 +240,7 @@ static int uhid_hid_get_report(struct hid_device *hid, unsigned char rnum,
if (!READ_ONCE(uhid->running))
return -EIO;
- ev = kzalloc(sizeof(*ev), GFP_KERNEL);
+ ev = kzalloc_obj(*ev, GFP_KERNEL);
if (!ev)
return -ENOMEM;
@@ -282,7 +282,7 @@ static int uhid_hid_set_report(struct hid_device *hid, unsigned char rnum,
if (!READ_ONCE(uhid->running) || count > UHID_DATA_MAX)
return -EIO;
- ev = kzalloc(sizeof(*ev), GFP_KERNEL);
+ ev = kzalloc_obj(*ev, GFP_KERNEL);
if (!ev)
return -ENOMEM;
@@ -365,7 +365,7 @@ static int uhid_hid_output_raw(struct hid_device *hid, __u8 *buf, size_t count,
if (count < 1 || count > UHID_DATA_MAX)
return -EINVAL;
- ev = kzalloc(sizeof(*ev), GFP_KERNEL);
+ ev = kzalloc_obj(*ev, GFP_KERNEL);
if (!ev)
return -ENOMEM;
@@ -433,7 +433,7 @@ static int uhid_event_from_user(const char __user *buffer, size_t len,
*/
struct uhid_create_req_compat *compat;
- compat = kzalloc(sizeof(*compat), GFP_KERNEL);
+ compat = kzalloc_obj(*compat, GFP_KERNEL);
if (!compat)
return -ENOMEM;
@@ -636,7 +636,7 @@ static int uhid_char_open(struct inode *inode, struct file *file)
{
struct uhid_device *uhid;
- uhid = kzalloc(sizeof(*uhid), GFP_KERNEL);
+ uhid = kzalloc_obj(*uhid, GFP_KERNEL);
if (!uhid)
return -ENOMEM;
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index 758eb21430cd..922022a9c253 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -858,7 +858,7 @@ static int hid_alloc_buffers(struct usb_device *dev, struct hid_device *hid)
&usbhid->inbuf_dma);
usbhid->outbuf = usb_alloc_coherent(dev, usbhid->bufsize, GFP_KERNEL,
&usbhid->outbuf_dma);
- usbhid->cr = kmalloc(sizeof(*usbhid->cr), GFP_KERNEL);
+ usbhid->cr = kmalloc_obj(*usbhid->cr, GFP_KERNEL);
usbhid->ctrlbuf = usb_alloc_coherent(dev, usbhid->bufsize, GFP_KERNEL,
&usbhid->ctrlbuf_dma);
if (!usbhid->inbuf || !usbhid->outbuf || !usbhid->cr ||
@@ -1430,7 +1430,7 @@ static int usbhid_probe(struct usb_interface *intf, const struct usb_device_id *
if (usb_string(dev, dev->descriptor.iSerialNumber, hid->uniq, 64) <= 0)
hid->uniq[0] = 0;
- usbhid = kzalloc(sizeof(*usbhid), GFP_KERNEL);
+ usbhid = kzalloc_obj(*usbhid, GFP_KERNEL);
if (usbhid == NULL) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/hid/usbhid/hid-pidff.c b/drivers/hid/usbhid/hid-pidff.c
index a4e700b40ba9..6719c976a3c3 100644
--- a/drivers/hid/usbhid/hid-pidff.c
+++ b/drivers/hid/usbhid/hid-pidff.c
@@ -1528,7 +1528,7 @@ int hid_pidff_init_with_quirks(struct hid_device *hid, u32 initial_quirks)
return -ENODEV;
}
- pidff = kzalloc(sizeof(*pidff), GFP_KERNEL);
+ pidff = kzalloc_obj(*pidff, GFP_KERNEL);
if (!pidff)
return -ENOMEM;
diff --git a/drivers/hid/usbhid/hiddev.c b/drivers/hid/usbhid/hiddev.c
index 59cf3ddfdf78..3a115ea49cd2 100644
--- a/drivers/hid/usbhid/hiddev.c
+++ b/drivers/hid/usbhid/hiddev.c
@@ -434,7 +434,7 @@ static noinline int hiddev_ioctl_usage(struct hiddev *hiddev, unsigned int cmd,
struct hid_field *field;
int i;
- uref_multi = kmalloc(sizeof(struct hiddev_usage_ref_multi), GFP_KERNEL);
+ uref_multi = kmalloc_obj(struct hiddev_usage_ref_multi, GFP_KERNEL);
if (!uref_multi)
return -ENOMEM;
uref = &uref_multi->uref;
@@ -890,7 +890,7 @@ int hiddev_connect(struct hid_device *hid, unsigned int force)
return -EINVAL;
}
- if (!(hiddev = kzalloc(sizeof(struct hiddev), GFP_KERNEL)))
+ if (!(hiddev = kzalloc_obj(struct hiddev, GFP_KERNEL)))
return -ENOMEM;
init_waitqueue_head(&hiddev->wait);
diff --git a/drivers/hid/usbhid/usbkbd.c b/drivers/hid/usbhid/usbkbd.c
index af6bc76dbf64..d32a860c6979 100644
--- a/drivers/hid/usbhid/usbkbd.c
+++ b/drivers/hid/usbhid/usbkbd.c
@@ -241,7 +241,7 @@ static int usb_kbd_alloc_mem(struct usb_device *dev, struct usb_kbd *kbd)
return -1;
if (!(kbd->new = usb_alloc_coherent(dev, 8, GFP_KERNEL, &kbd->new_dma)))
return -1;
- if (!(kbd->cr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_KERNEL)))
+ if (!(kbd->cr = kmalloc_obj(struct usb_ctrlrequest, GFP_KERNEL)))
return -1;
if (!(kbd->leds = usb_alloc_coherent(dev, 1, GFP_KERNEL, &kbd->leds_dma)))
return -1;
@@ -281,7 +281,7 @@ static int usb_kbd_probe(struct usb_interface *iface,
pipe = usb_rcvintpipe(dev, endpoint->bEndpointAddress);
maxp = usb_maxpacket(dev, pipe);
- kbd = kzalloc(sizeof(struct usb_kbd), GFP_KERNEL);
+ kbd = kzalloc_obj(struct usb_kbd, GFP_KERNEL);
input_dev = input_allocate_device();
if (!kbd || !input_dev)
goto fail1;
diff --git a/drivers/hid/usbhid/usbmouse.c b/drivers/hid/usbhid/usbmouse.c
index 3fd93c2e4f4a..da0d30de1d26 100644
--- a/drivers/hid/usbhid/usbmouse.c
+++ b/drivers/hid/usbhid/usbmouse.c
@@ -125,7 +125,7 @@ static int usb_mouse_probe(struct usb_interface *intf, const struct usb_device_i
pipe = usb_rcvintpipe(dev, endpoint->bEndpointAddress);
maxp = usb_maxpacket(dev, pipe);
- mouse = kzalloc(sizeof(struct usb_mouse), GFP_KERNEL);
+ mouse = kzalloc_obj(struct usb_mouse, GFP_KERNEL);
input_dev = input_allocate_device();
if (!mouse || !input_dev)
goto fail1;
diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c
index afc900560706..e2e9f8afec11 100644
--- a/drivers/hid/wacom_sys.c
+++ b/drivers/hid/wacom_sys.c
@@ -892,7 +892,7 @@ static int wacom_add_shared_data(struct hid_device *hdev)
data = wacom_get_hdev_data(hdev);
if (!data) {
- data = kzalloc(sizeof(struct wacom_hdev_data), GFP_KERNEL);
+ data = kzalloc_obj(struct wacom_hdev_data, GFP_KERNEL);
if (!data) {
mutex_unlock(&wacom_udev_list_lock);
return -ENOMEM;
diff --git a/drivers/hsi/clients/cmt_speech.c b/drivers/hsi/clients/cmt_speech.c
index daa8e1bff5d9..5918401a4db9 100644
--- a/drivers/hsi/clients/cmt_speech.c
+++ b/drivers/hsi/clients/cmt_speech.c
@@ -139,7 +139,7 @@ static void cs_notify(u32 message, struct list_head *head)
goto out;
}
- entry = kmalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kmalloc_obj(*entry, GFP_ATOMIC);
if (!entry) {
dev_err(&cs_char_data.cl->device,
"Can't allocate new entry for the queue.\n");
@@ -273,7 +273,7 @@ static int cs_alloc_cmds(struct cs_hsi_iface *hi)
msg = hsi_alloc_msg(1, GFP_KERNEL);
if (!msg)
goto out;
- buf = kmalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kmalloc_obj(*buf, GFP_KERNEL);
if (!buf) {
hsi_free_msg(msg);
goto out;
@@ -985,7 +985,7 @@ static int cs_hsi_start(struct cs_hsi_iface **hi, struct hsi_client *cl,
unsigned long mmap_base, unsigned long mmap_size)
{
int err = 0;
- struct cs_hsi_iface *hsi_if = kzalloc(sizeof(*hsi_if), GFP_KERNEL);
+ struct cs_hsi_iface *hsi_if = kzalloc_obj(*hsi_if, GFP_KERNEL);
dev_dbg(&cl->device, "cs_hsi_start\n");
diff --git a/drivers/hsi/clients/hsi_char.c b/drivers/hsi/clients/hsi_char.c
index 71ce7dbfe31d..3258a7cf81ac 100644
--- a/drivers/hsi/clients/hsi_char.c
+++ b/drivers/hsi/clients/hsi_char.c
@@ -683,7 +683,7 @@ static int hsc_probe(struct device *dev)
int ret;
int i;
- cl_data = kzalloc(sizeof(*cl_data), GFP_KERNEL);
+ cl_data = kzalloc_obj(*cl_data, GFP_KERNEL);
if (!cl_data)
return -ENOMEM;
diff --git a/drivers/hsi/clients/ssi_protocol.c b/drivers/hsi/clients/ssi_protocol.c
index d10a01f3eb9e..e7bb2803ace5 100644
--- a/drivers/hsi/clients/ssi_protocol.c
+++ b/drivers/hsi/clients/ssi_protocol.c
@@ -259,7 +259,7 @@ static int ssip_alloc_cmds(struct ssi_protocol *ssi)
msg = hsi_alloc_msg(1, GFP_KERNEL);
if (!msg)
goto out;
- buf = kmalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kmalloc_obj(*buf, GFP_KERNEL);
if (!buf) {
hsi_free_msg(msg);
goto out;
@@ -1077,7 +1077,7 @@ static int ssi_protocol_probe(struct device *dev)
struct ssi_protocol *ssi;
int err;
- ssi = kzalloc(sizeof(*ssi), GFP_KERNEL);
+ ssi = kzalloc_obj(*ssi, GFP_KERNEL);
if (!ssi)
return -ENOMEM;
diff --git a/drivers/hsi/hsi_boardinfo.c b/drivers/hsi/hsi_boardinfo.c
index 52500e7fd836..109b0fb71a9a 100644
--- a/drivers/hsi/hsi_boardinfo.c
+++ b/drivers/hsi/hsi_boardinfo.c
@@ -36,7 +36,7 @@ int __init hsi_register_board_info(struct hsi_board_info const *info,
{
struct hsi_cl_info *cl_info;
- cl_info = kcalloc(len, sizeof(*cl_info), GFP_KERNEL);
+ cl_info = kzalloc_objs(*cl_info, len, GFP_KERNEL);
if (!cl_info)
return -ENOMEM;
diff --git a/drivers/hsi/hsi_core.c b/drivers/hsi/hsi_core.c
index 8113cb9d4015..84792da4caca 100644
--- a/drivers/hsi/hsi_core.c
+++ b/drivers/hsi/hsi_core.c
@@ -70,7 +70,7 @@ struct hsi_client *hsi_new_client(struct hsi_port *port,
struct hsi_client *cl;
size_t size;
- cl = kzalloc(sizeof(*cl), GFP_KERNEL);
+ cl = kzalloc_obj(*cl, GFP_KERNEL);
if (!cl)
goto err;
@@ -203,7 +203,7 @@ static void hsi_add_client_from_dt(struct hsi_port *port,
char name[32];
int length, cells, err, i, max_chan, mode;
- cl = kzalloc(sizeof(*cl), GFP_KERNEL);
+ cl = kzalloc_obj(*cl, GFP_KERNEL);
if (!cl)
return;
@@ -253,13 +253,13 @@ static void hsi_add_client_from_dt(struct hsi_port *port,
cl->rx_cfg.num_channels = cells;
cl->tx_cfg.num_channels = cells;
- cl->rx_cfg.channels = kcalloc(cells, sizeof(channel), GFP_KERNEL);
+ cl->rx_cfg.channels = kzalloc_objs(channel, cells, GFP_KERNEL);
if (!cl->rx_cfg.channels) {
err = -ENOMEM;
goto err;
}
- cl->tx_cfg.channels = kcalloc(cells, sizeof(channel), GFP_KERNEL);
+ cl->tx_cfg.channels = kzalloc_objs(channel, cells, GFP_KERNEL);
if (!cl->tx_cfg.channels) {
err = -ENOMEM;
goto err2;
@@ -468,10 +468,10 @@ struct hsi_controller *hsi_alloc_controller(unsigned int n_ports, gfp_t flags)
if (!n_ports)
return NULL;
- hsi = kzalloc(sizeof(*hsi), flags);
+ hsi = kzalloc_obj(*hsi, flags);
if (!hsi)
return NULL;
- port = kcalloc(n_ports, sizeof(*port), flags);
+ port = kzalloc_objs(*port, n_ports, flags);
if (!port) {
kfree(hsi);
return NULL;
@@ -482,7 +482,7 @@ struct hsi_controller *hsi_alloc_controller(unsigned int n_ports, gfp_t flags)
device_initialize(&hsi->device);
for (i = 0; i < n_ports; i++) {
- port[i] = kzalloc(sizeof(**port), flags);
+ port[i] = kzalloc_obj(**port, flags);
if (port[i] == NULL)
goto out;
port[i]->num = i;
@@ -538,7 +538,7 @@ struct hsi_msg *hsi_alloc_msg(unsigned int nents, gfp_t flags)
struct hsi_msg *msg;
int err;
- msg = kzalloc(sizeof(*msg), flags);
+ msg = kzalloc_obj(*msg, flags);
if (!msg)
return NULL;
diff --git a/drivers/hte/hte.c b/drivers/hte/hte.c
index 23a6eeb8c506..34f40ed46242 100644
--- a/drivers/hte/hte.c
+++ b/drivers/hte/hte.c
@@ -850,7 +850,7 @@ static int hte_register_chip(struct hte_chip *chip)
return -EINVAL;
}
- gdev = kzalloc(struct_size(gdev, ei, chip->nlines), GFP_KERNEL);
+ gdev = kzalloc_flex(*gdev, ei, chip->nlines, GFP_KERNEL);
if (!gdev)
return -ENOMEM;
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
index 74fed2c073d4..7c77ada12b2e 100644
--- a/drivers/hv/channel_mgmt.c
+++ b/drivers/hv/channel_mgmt.c
@@ -354,7 +354,7 @@ static struct vmbus_channel *alloc_channel(void)
{
struct vmbus_channel *channel;
- channel = kzalloc(sizeof(*channel), GFP_ATOMIC);
+ channel = kzalloc_obj(*channel, GFP_ATOMIC);
if (!channel)
return NULL;
diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
index 5d9cb5bf2d62..16b9959dba7e 100644
--- a/drivers/hv/connection.c
+++ b/drivers/hv/connection.c
@@ -313,9 +313,8 @@ int vmbus_connect(void)
pr_info("Vmbus version:%d.%d\n",
version >> 16, version & 0xFFFF);
- vmbus_connection.channels = kcalloc(MAX_CHANNEL_RELIDS,
- sizeof(struct vmbus_channel *),
- GFP_KERNEL);
+ vmbus_connection.channels = kzalloc_objs(struct vmbus_channel *,
+ MAX_CHANNEL_RELIDS, GFP_KERNEL);
if (vmbus_connection.channels == NULL) {
ret = -ENOMEM;
goto cleanup;
diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
index ea6835638505..4a2348b7f8a2 100644
--- a/drivers/hv/hv.c
+++ b/drivers/hv/hv.c
@@ -183,8 +183,8 @@ int hv_synic_alloc(void)
memset(hv_cpu, 0, sizeof(*hv_cpu));
}
- hv_context.hv_numa_map = kcalloc(nr_node_ids, sizeof(struct cpumask),
- GFP_KERNEL);
+ hv_context.hv_numa_map = kzalloc_objs(struct cpumask, nr_node_ids,
+ GFP_KERNEL);
if (!hv_context.hv_numa_map) {
pr_err("Unable to allocate NUMA map\n");
goto err;
diff --git a/drivers/hv/hv_balloon.c b/drivers/hv/hv_balloon.c
index 2b4080e51f97..a848400a59a2 100644
--- a/drivers/hv/hv_balloon.c
+++ b/drivers/hv/hv_balloon.c
@@ -801,7 +801,7 @@ static int pfn_covered(unsigned long start_pfn, unsigned long pfn_cnt)
* is, create a gap and update covered_end_pfn.
*/
if (has->covered_end_pfn != start_pfn) {
- gap = kzalloc(sizeof(struct hv_hotadd_gap), GFP_ATOMIC);
+ gap = kzalloc_obj(struct hv_hotadd_gap, GFP_ATOMIC);
if (!gap) {
ret = -ENOMEM;
break;
diff --git a/drivers/hv/hv_kvp.c b/drivers/hv/hv_kvp.c
index 62795f6cbb00..29ef1dc5c184 100644
--- a/drivers/hv/hv_kvp.c
+++ b/drivers/hv/hv_kvp.c
@@ -134,7 +134,7 @@ kvp_register(int reg_value)
struct hv_kvp_msg *kvp_msg;
char *version;
- kvp_msg = kzalloc(sizeof(*kvp_msg), GFP_KERNEL);
+ kvp_msg = kzalloc_obj(*kvp_msg, GFP_KERNEL);
if (kvp_msg) {
version = kvp_msg->body.kvp_register.version;
@@ -385,7 +385,7 @@ kvp_send_key(struct work_struct *dummy)
if (kvp_transaction.state != HVUTIL_HOSTMSG_RECEIVED)
return;
- message = kzalloc(sizeof(*message), GFP_KERNEL);
+ message = kzalloc_obj(*message, GFP_KERNEL);
if (!message)
return;
diff --git a/drivers/hv/hv_proc.c b/drivers/hv/hv_proc.c
index 5f4fd9c3231c..216a0e8fd15b 100644
--- a/drivers/hv/hv_proc.c
+++ b/drivers/hv/hv_proc.c
@@ -40,7 +40,7 @@ int hv_call_deposit_pages(int node, u64 partition_id, u32 num_pages)
return -ENOMEM;
pages = page_address(page);
- counts = kcalloc(HV_DEPOSIT_MAX, sizeof(int), GFP_KERNEL);
+ counts = kzalloc_objs(int, HV_DEPOSIT_MAX, GFP_KERNEL);
if (!counts) {
free_page((unsigned long)pages);
return -ENOMEM;
diff --git a/drivers/hv/hv_snapshot.c b/drivers/hv/hv_snapshot.c
index 2e7f537d53cf..50f9348789ee 100644
--- a/drivers/hv/hv_snapshot.c
+++ b/drivers/hv/hv_snapshot.c
@@ -184,7 +184,7 @@ static void vss_send_op(void)
return;
}
- vss_msg = kzalloc(sizeof(*vss_msg), GFP_KERNEL);
+ vss_msg = kzalloc_obj(*vss_msg, GFP_KERNEL);
if (!vss_msg)
return;
@@ -424,7 +424,7 @@ int hv_vss_pre_suspend(void)
* write() will fail with EINVAL (see vss_on_msg()), and the daemon
* will reset the device by closing and re-opening it.
*/
- vss_msg = kzalloc(sizeof(*vss_msg), GFP_KERNEL);
+ vss_msg = kzalloc_obj(*vss_msg, GFP_KERNEL);
if (!vss_msg)
return -ENOMEM;
diff --git a/drivers/hv/hv_utils_transport.c b/drivers/hv/hv_utils_transport.c
index b3de35ff6334..43b7ffae8852 100644
--- a/drivers/hv/hv_utils_transport.c
+++ b/drivers/hv/hv_utils_transport.c
@@ -274,7 +274,7 @@ struct hvutil_transport *hvutil_transport_init(const char *name,
{
struct hvutil_transport *hvt;
- hvt = kzalloc(sizeof(*hvt), GFP_KERNEL);
+ hvt = kzalloc_obj(*hvt, GFP_KERNEL);
if (!hvt)
return NULL;
diff --git a/drivers/hv/mshv_debugfs.c b/drivers/hv/mshv_debugfs.c
index ebf2549eb44d..6a080d728836 100644
--- a/drivers/hv/mshv_debugfs.c
+++ b/drivers/hv/mshv_debugfs.c
@@ -156,9 +156,8 @@ static int __init mshv_debugfs_lp_create(struct dentry *parent)
struct dentry *lp_dir;
int err, lp_index;
- mshv_lps_stats = kcalloc(mshv_lps_count,
- sizeof(*mshv_lps_stats),
- GFP_KERNEL_ACCOUNT);
+ mshv_lps_stats = kzalloc_objs(*mshv_lps_stats, mshv_lps_count,
+ GFP_KERNEL_ACCOUNT);
if (!mshv_lps_stats)
return -ENOMEM;
@@ -329,8 +328,8 @@ static int mshv_debugfs_partition_stats_create(u64 partition_id,
struct hv_stats_page **pstats;
int err;
- pstats = kcalloc(NUM_STATS_AREAS, sizeof(struct hv_stats_page *),
- GFP_KERNEL_ACCOUNT);
+ pstats = kzalloc_objs(struct hv_stats_page *, NUM_STATS_AREAS,
+ GFP_KERNEL_ACCOUNT);
if (!pstats)
return -ENOMEM;
@@ -472,8 +471,8 @@ static int __init parent_vp_debugfs_create(u32 vp_index,
struct hv_stats_page **pstats;
int err;
- pstats = kcalloc(NUM_STATS_AREAS, sizeof(struct hv_stats_page *),
- GFP_KERNEL_ACCOUNT);
+ pstats = kzalloc_objs(struct hv_stats_page *, NUM_STATS_AREAS,
+ GFP_KERNEL_ACCOUNT);
if (!pstats)
return -ENOMEM;
@@ -512,8 +511,7 @@ static int __init mshv_debugfs_parent_partition_create(void)
if (err)
goto remove_debugfs_partition;
- parent_vp_stats = kcalloc(nr_cpu_ids, sizeof(*parent_vp_stats),
- GFP_KERNEL);
+ parent_vp_stats = kzalloc_objs(*parent_vp_stats, nr_cpu_ids, GFP_KERNEL);
if (!parent_vp_stats) {
err = -ENOMEM;
goto remove_debugfs_partition;
diff --git a/drivers/hv/mshv_eventfd.c b/drivers/hv/mshv_eventfd.c
index 492c6258045c..5b3c09f08a1e 100644
--- a/drivers/hv/mshv_eventfd.c
+++ b/drivers/hv/mshv_eventfd.c
@@ -394,7 +394,7 @@ static int mshv_irqfd_assign(struct mshv_partition *pt,
CLASS(fd, f)(args->fd);
- irqfd = kzalloc(sizeof(*irqfd), GFP_KERNEL);
+ irqfd = kzalloc_obj(*irqfd, GFP_KERNEL);
if (!irqfd)
return -ENOMEM;
@@ -439,7 +439,7 @@ static int mshv_irqfd_assign(struct mshv_partition *pt,
}
if (!irqfd->irqfd_resampler) {
- rp = kzalloc(sizeof(*rp), GFP_KERNEL_ACCOUNT);
+ rp = kzalloc_obj(*rp, GFP_KERNEL_ACCOUNT);
if (!rp) {
ret = -ENOMEM;
mutex_unlock(&pt->irqfds_resampler_lock);
@@ -707,7 +707,7 @@ static int mshv_assign_ioeventfd(struct mshv_partition *pt,
if (IS_ERR(eventfd))
return PTR_ERR(eventfd);
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/hv/mshv_irq.c b/drivers/hv/mshv_irq.c
index 798e7e1ab06e..02c56fc3a498 100644
--- a/drivers/hv/mshv_irq.c
+++ b/drivers/hv/mshv_irq.c
@@ -37,8 +37,8 @@ int mshv_update_routing_table(struct mshv_partition *partition,
}
nr_rt_entries += 1;
- new = kzalloc(struct_size(new, mshv_girq_info_tbl, nr_rt_entries),
- GFP_KERNEL_ACCOUNT);
+ new = kzalloc_flex(*new, mshv_girq_info_tbl, nr_rt_entries,
+ GFP_KERNEL_ACCOUNT);
if (!new)
return -ENOMEM;
diff --git a/drivers/hv/mshv_root_main.c b/drivers/hv/mshv_root_main.c
index e6509c980763..4715d23d22f2 100644
--- a/drivers/hv/mshv_root_main.c
+++ b/drivers/hv/mshv_root_main.c
@@ -713,7 +713,7 @@ mshv_vp_ioctl_get_set_state_pfn(struct mshv_vp *vp,
return -EOVERFLOW;
/* Pin user pages so hypervisor can copy directly to them */
- pages = kcalloc(page_count, sizeof(struct page *), GFP_KERNEL);
+ pages = kzalloc_objs(struct page *, page_count, GFP_KERNEL);
if (!pages)
return -ENOMEM;
@@ -1072,7 +1072,7 @@ mshv_partition_ioctl_create_vp(struct mshv_partition *partition,
if (ret)
goto unmap_ghcb_page;
- vp = kzalloc(sizeof(*vp), GFP_KERNEL);
+ vp = kzalloc_obj(*vp, GFP_KERNEL);
if (!vp)
goto unmap_stats_pages;
@@ -1977,7 +1977,7 @@ mshv_ioctl_create_partition(void __user *user_arg, struct device *module_dev)
if (ret)
return ret;
- partition = kzalloc(sizeof(*partition), GFP_KERNEL);
+ partition = kzalloc_obj(*partition, GFP_KERNEL);
if (!partition)
return -ENOMEM;
diff --git a/drivers/hv/mshv_synic.c b/drivers/hv/mshv_synic.c
index f8b0337cdc82..49e3a59ffb90 100644
--- a/drivers/hv/mshv_synic.c
+++ b/drivers/hv/mshv_synic.c
@@ -605,7 +605,7 @@ mshv_register_doorbell(u64 partition_id, doorbell_cb_t doorbell_cb, void *data,
union hv_port_id port_id = { 0 };
int ret;
- port_table_info = kmalloc(sizeof(*port_table_info), GFP_KERNEL);
+ port_table_info = kmalloc_obj(*port_table_info, GFP_KERNEL);
if (!port_table_info)
return -ENOMEM;
diff --git a/drivers/hv/mshv_vtl_main.c b/drivers/hv/mshv_vtl_main.c
index 7bbbce009732..916021a175f3 100644
--- a/drivers/hv/mshv_vtl_main.c
+++ b/drivers/hv/mshv_vtl_main.c
@@ -117,7 +117,7 @@ mshv_ioctl_create_vtl(void __user *user_arg, struct device *module_dev)
struct file *file;
int fd;
- vtl = kzalloc(sizeof(*vtl), GFP_KERNEL);
+ vtl = kzalloc_obj(*vtl, GFP_KERNEL);
if (!vtl)
return -ENOMEM;
@@ -393,7 +393,7 @@ static int mshv_vtl_ioctl_add_vtl0_mem(struct mshv_vtl *vtl, void __user *arg)
return -EFAULT;
}
- pgmap = kzalloc(sizeof(*pgmap), GFP_KERNEL);
+ pgmap = kzalloc_obj(*pgmap, GFP_KERNEL);
if (!pgmap)
return -ENOMEM;
@@ -1344,7 +1344,7 @@ static int __init mshv_vtl_init(void)
/*
* "mshv vtl mem dev" device is later used to setup VTL0 memory.
*/
- mem_dev = kzalloc(sizeof(*mem_dev), GFP_KERNEL);
+ mem_dev = kzalloc_obj(*mem_dev, GFP_KERNEL);
if (!mem_dev) {
ret = -ENOMEM;
goto free_low;
diff --git a/drivers/hv/ring_buffer.c b/drivers/hv/ring_buffer.c
index 3c421a7f78c0..db3c2537360f 100644
--- a/drivers/hv/ring_buffer.c
+++ b/drivers/hv/ring_buffer.c
@@ -196,9 +196,8 @@ int hv_ringbuffer_init(struct hv_ring_buffer_info *ring_info,
* First page holds struct hv_ring_buffer, do wraparound mapping for
* the rest.
*/
- pages_wraparound = kcalloc(page_cnt * 2 - 1,
- sizeof(struct page *),
- GFP_KERNEL);
+ pages_wraparound = kzalloc_objs(struct page *, page_cnt * 2 - 1,
+ GFP_KERNEL);
if (!pages_wraparound)
return -ENOMEM;
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index 3e7a52918ce0..3119f68fd27b 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -756,7 +756,7 @@ static int vmbus_add_dynid(struct hv_driver *drv, guid_t *guid)
{
struct vmbus_dynid *dynid;
- dynid = kzalloc(sizeof(*dynid), GFP_KERNEL);
+ dynid = kzalloc_obj(*dynid, GFP_KERNEL);
if (!dynid)
return -ENOMEM;
@@ -1120,7 +1120,7 @@ static void __vmbus_on_msg_dpc(void *message_page_addr)
}
if (entry->handler_type == VMHT_BLOCKING) {
- ctx = kmalloc(struct_size(ctx, msg.payload, payload_size), GFP_ATOMIC);
+ ctx = kmalloc_flex(*ctx, msg.payload, payload_size, GFP_ATOMIC);
if (ctx == NULL)
return;
@@ -2156,7 +2156,7 @@ struct hv_device *vmbus_device_create(const guid_t *type,
{
struct hv_device *child_device_obj;
- child_device_obj = kzalloc(sizeof(struct hv_device), GFP_KERNEL);
+ child_device_obj = kzalloc_obj(struct hv_device, GFP_KERNEL);
if (!child_device_obj) {
pr_err("Unable to allocate device object for child device\n");
return NULL;
@@ -2318,7 +2318,7 @@ static acpi_status vmbus_walk_resources(struct acpi_resource *res, void *ctx)
if (end < 0x100000)
return AE_OK;
- new_res = kzalloc(sizeof(*new_res), GFP_ATOMIC);
+ new_res = kzalloc_obj(*new_res, GFP_ATOMIC);
if (!new_res)
return AE_NO_MEMORY;
@@ -2672,7 +2672,7 @@ static int vmbus_device_add(struct platform_device *pdev)
for_each_of_range(&parser, &range) {
struct resource *res;
- res = kzalloc(sizeof(*res), GFP_KERNEL);
+ res = kzalloc_obj(*res, GFP_KERNEL);
if (!res) {
vmbus_mmio_remove();
return -ENOMEM;
diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
index 7cb66216f358..1fa3657f4630 100644
--- a/drivers/hwmon/acpi_power_meter.c
+++ b/drivers/hwmon/acpi_power_meter.c
@@ -245,9 +245,8 @@ static int read_domain_devices(struct acpi_power_meter_resource *resource)
if (!pss->package.count)
goto end;
- resource->domain_devices = kcalloc(pss->package.count,
- sizeof(struct acpi_device *),
- GFP_KERNEL);
+ resource->domain_devices = kzalloc_objs(struct acpi_device *,
+ pss->package.count, GFP_KERNEL);
if (!resource->domain_devices) {
res = -ENOMEM;
goto end;
@@ -893,7 +892,7 @@ static int acpi_power_meter_add(struct acpi_device *device)
if (!device)
return -EINVAL;
- resource = kzalloc(sizeof(*resource), GFP_KERNEL);
+ resource = kzalloc_obj(*resource, GFP_KERNEL);
if (!resource)
return -ENOMEM;
diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
index fc6d6a9053ce..0dbad1d3808c 100644
--- a/drivers/hwmon/applesmc.c
+++ b/drivers/hwmon/applesmc.c
@@ -586,7 +586,7 @@ static int applesmc_init_smcreg_try(void)
s->key_count = count;
if (!s->cache)
- s->cache = kcalloc(s->key_count, sizeof(*s->cache), GFP_KERNEL);
+ s->cache = kzalloc_objs(*s->cache, s->key_count, GFP_KERNEL);
if (!s->cache)
return -ENOMEM;
@@ -1141,7 +1141,7 @@ static int applesmc_create_nodes(struct applesmc_node_group *groups, int num)
int ret, i;
for (grp = groups; grp->format; grp++) {
- grp->nodes = kcalloc(num + 1, sizeof(*node), GFP_KERNEL);
+ grp->nodes = kzalloc_objs(*node, num + 1, GFP_KERNEL);
if (!grp->nodes) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
index d2dfa4e30407..eb00a9f08955 100644
--- a/drivers/hwmon/coretemp.c
+++ b/drivers/hwmon/coretemp.c
@@ -492,13 +492,13 @@ init_temp_data(struct platform_data *pdata, unsigned int cpu, int pkg_flag)
* when this information becomes available.
*/
pdata->nr_cores = NUM_REAL_CORES;
- pdata->core_data = kcalloc(pdata->nr_cores, sizeof(struct temp_data *),
- GFP_KERNEL);
+ pdata->core_data = kzalloc_objs(struct temp_data *,
+ pdata->nr_cores, GFP_KERNEL);
if (!pdata->core_data)
return NULL;
}
- tdata = kzalloc(sizeof(struct temp_data), GFP_KERNEL);
+ tdata = kzalloc_obj(struct temp_data, GFP_KERNEL);
if (!tdata)
return NULL;
@@ -625,7 +625,7 @@ static int coretemp_device_add(int zoneid)
int err;
/* Initialize the per-zone data structures */
- pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
+ pdata = kzalloc_obj(*pdata, GFP_KERNEL);
if (!pdata)
return -ENOMEM;
@@ -804,8 +804,8 @@ static int __init coretemp_init(void)
return -ENODEV;
max_zones = topology_max_packages() * topology_max_dies_per_package();
- zone_devices = kcalloc(max_zones, sizeof(struct platform_device *),
- GFP_KERNEL);
+ zone_devices = kzalloc_objs(struct platform_device *, max_zones,
+ GFP_KERNEL);
if (!zone_devices)
return -ENOMEM;
diff --git a/drivers/hwmon/drivetemp.c b/drivers/hwmon/drivetemp.c
index 9c5b021aab86..f2fa7223be7a 100644
--- a/drivers/hwmon/drivetemp.c
+++ b/drivers/hwmon/drivetemp.c
@@ -556,7 +556,7 @@ static int drivetemp_add(struct device *dev)
struct drivetemp_data *st;
int err;
- st = kzalloc(sizeof(*st), GFP_KERNEL);
+ st = kzalloc_obj(*st, GFP_KERNEL);
if (!st)
return -ENOMEM;
diff --git a/drivers/hwmon/fschmd.c b/drivers/hwmon/fschmd.c
index a303959879ef..740d46634b4c 100644
--- a/drivers/hwmon/fschmd.c
+++ b/drivers/hwmon/fschmd.c
@@ -1088,7 +1088,7 @@ static int fschmd_probe(struct i2c_client *client)
int i, err;
enum chips kind = (uintptr_t)i2c_get_match_data(client);
- data = kzalloc(sizeof(struct fschmd_data), GFP_KERNEL);
+ data = kzalloc_obj(struct fschmd_data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/hwmon/hwmon.c b/drivers/hwmon/hwmon.c
index 714caa6a36a3..a1173ea0b029 100644
--- a/drivers/hwmon/hwmon.c
+++ b/drivers/hwmon/hwmon.c
@@ -533,7 +533,7 @@ static struct attribute *hwmon_genattr(const void *drvdata,
if ((mode & 0222) && !ops->write)
return ERR_PTR(-EINVAL);
- hattr = kzalloc(sizeof(*hattr), GFP_KERNEL);
+ hattr = kzalloc_obj(*hattr, GFP_KERNEL);
if (!hattr)
return ERR_PTR(-ENOMEM);
@@ -879,7 +879,7 @@ __hwmon_create_attrs(const void *drvdata, const struct hwmon_chip_info *chip)
if (nattrs == 0)
return ERR_PTR(-EINVAL);
- attrs = kcalloc(nattrs + 1, sizeof(*attrs), GFP_KERNEL);
+ attrs = kzalloc_objs(*attrs, nattrs + 1, GFP_KERNEL);
if (!attrs)
return ERR_PTR(-ENOMEM);
@@ -917,7 +917,7 @@ __hwmon_device_register(struct device *dev, const char *name, void *drvdata,
if (id < 0)
return ERR_PTR(id);
- hwdev = kzalloc(sizeof(*hwdev), GFP_KERNEL);
+ hwdev = kzalloc_obj(*hwdev, GFP_KERNEL);
if (hwdev == NULL) {
err = -ENOMEM;
goto ida_remove;
@@ -933,7 +933,7 @@ __hwmon_device_register(struct device *dev, const char *name, void *drvdata,
for (i = 0; groups[i]; i++)
ngroups++;
- hwdev->groups = kcalloc(ngroups, sizeof(*groups), GFP_KERNEL);
+ hwdev->groups = kzalloc_objs(*groups, ngroups, GFP_KERNEL);
if (!hwdev->groups) {
err = -ENOMEM;
goto free_hwmon;
diff --git a/drivers/hwmon/i5k_amb.c b/drivers/hwmon/i5k_amb.c
index b22e0423e324..f3835606179c 100644
--- a/drivers/hwmon/i5k_amb.c
+++ b/drivers/hwmon/i5k_amb.c
@@ -494,7 +494,7 @@ static int i5k_amb_probe(struct platform_device *pdev)
struct resource *reso;
int i, res;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/hwmon/ibmaem.c b/drivers/hwmon/ibmaem.c
index daed437d34a4..e62e7bab0865 100644
--- a/drivers/hwmon/ibmaem.c
+++ b/drivers/hwmon/ibmaem.c
@@ -517,7 +517,7 @@ static int aem_init_aem1_inst(struct aem_ipmi_data *probe, u8 module_handle)
int i;
int res = -ENOMEM;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return res;
mutex_init(&data->lock);
@@ -657,7 +657,7 @@ static int aem_init_aem2_inst(struct aem_ipmi_data *probe,
int i;
int res = -ENOMEM;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return res;
mutex_init(&data->lock);
diff --git a/drivers/hwmon/ibmpex.c b/drivers/hwmon/ibmpex.c
index 228c5f6c6f38..331aa8159ab8 100644
--- a/drivers/hwmon/ibmpex.c
+++ b/drivers/hwmon/ibmpex.c
@@ -367,8 +367,8 @@ static int ibmpex_find_sensors(struct ibmpex_bmc_data *data)
return -ENOENT;
data->num_sensors = err;
- data->sensors = kcalloc(data->num_sensors, sizeof(*data->sensors),
- GFP_KERNEL);
+ data->sensors = kzalloc_objs(*data->sensors, data->num_sensors,
+ GFP_KERNEL);
if (!data->sensors)
return -ENOMEM;
@@ -438,7 +438,7 @@ static void ibmpex_register_bmc(int iface, struct device *dev)
struct ibmpex_bmc_data *data;
int err;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return;
diff --git a/drivers/hwmon/sch56xx-common.c b/drivers/hwmon/sch56xx-common.c
index 98e075e54e9d..1b0442fe2bf3 100644
--- a/drivers/hwmon/sch56xx-common.c
+++ b/drivers/hwmon/sch56xx-common.c
@@ -330,7 +330,7 @@ struct regmap *devm_regmap_init_sch56xx(struct device *dev, struct mutex *lock,
if (config->reg_bits != 16 && config->val_bits != 8)
return ERR_PTR(-EOPNOTSUPP);
- context = kzalloc(sizeof(*context), GFP_KERNEL);
+ context = kzalloc_obj(*context, GFP_KERNEL);
if (!context)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/hwmon/via-cputemp.c b/drivers/hwmon/via-cputemp.c
index 823bff2871e1..72a4f514a78c 100644
--- a/drivers/hwmon/via-cputemp.c
+++ b/drivers/hwmon/via-cputemp.c
@@ -222,7 +222,7 @@ static int via_cputemp_online(unsigned int cpu)
goto exit;
}
- pdev_entry = kzalloc(sizeof(struct pdev_entry), GFP_KERNEL);
+ pdev_entry = kzalloc_obj(struct pdev_entry, GFP_KERNEL);
if (!pdev_entry) {
err = -ENOMEM;
goto exit_device_put;
diff --git a/drivers/hwmon/w83793.c b/drivers/hwmon/w83793.c
index 67728f60333f..8081ef3b1592 100644
--- a/drivers/hwmon/w83793.c
+++ b/drivers/hwmon/w83793.c
@@ -1650,7 +1650,7 @@ static int w83793_probe(struct i2c_client *client)
int files_pwm = ARRAY_SIZE(w83793_left_pwm) / 5;
int files_temp = ARRAY_SIZE(w83793_temp) / 6;
- data = kzalloc(sizeof(struct w83793_data), GFP_KERNEL);
+ data = kzalloc_obj(struct w83793_data, GFP_KERNEL);
if (!data) {
err = -ENOMEM;
goto exit;
diff --git a/drivers/hwtracing/coresight/coresight-catu.c b/drivers/hwtracing/coresight/coresight-catu.c
index 69b36bae97ab..4123d4e16bbe 100644
--- a/drivers/hwtracing/coresight/coresight-catu.c
+++ b/drivers/hwtracing/coresight/coresight-catu.c
@@ -337,7 +337,7 @@ static int catu_alloc_etr_buf(struct tmc_drvdata *tmc_drvdata,
csdev = tmc_etr_get_catu_device(tmc_drvdata);
if (!csdev)
return -ENODEV;
- catu_buf = kzalloc(sizeof(*catu_buf), GFP_KERNEL);
+ catu_buf = kzalloc_obj(*catu_buf, GFP_KERNEL);
if (!catu_buf)
return -ENOMEM;
diff --git a/drivers/hwtracing/coresight/coresight-core.c b/drivers/hwtracing/coresight/coresight-core.c
index c660cf8adb1c..b03d228f6bf7 100644
--- a/drivers/hwtracing/coresight/coresight-core.c
+++ b/drivers/hwtracing/coresight/coresight-core.c
@@ -821,7 +821,7 @@ static int _coresight_build_path(struct coresight_device *csdev,
if (ret)
return ret;
- node = kzalloc(sizeof(struct coresight_node), GFP_KERNEL);
+ node = kzalloc_obj(struct coresight_node, GFP_KERNEL);
if (!node)
return -ENOMEM;
@@ -840,7 +840,7 @@ struct coresight_path *coresight_build_path(struct coresight_device *source,
if (!sink)
return ERR_PTR(-EINVAL);
- path = kzalloc(sizeof(struct coresight_path), GFP_KERNEL);
+ path = kzalloc_obj(struct coresight_path, GFP_KERNEL);
if (!path)
return ERR_PTR(-ENOMEM);
@@ -1327,7 +1327,7 @@ struct coresight_device *coresight_register(struct coresight_desc *desc)
struct coresight_device *csdev;
bool registered = false;
- csdev = kzalloc(sizeof(*csdev), GFP_KERNEL);
+ csdev = kzalloc_obj(*csdev, GFP_KERNEL);
if (!csdev) {
ret = -ENOMEM;
goto err_out;
diff --git a/drivers/hwtracing/coresight/coresight-cti-platform.c b/drivers/hwtracing/coresight/coresight-cti-platform.c
index d0ae10bf6128..ecb0bdc2c3e6 100644
--- a/drivers/hwtracing/coresight/coresight-cti-platform.c
+++ b/drivers/hwtracing/coresight/coresight-cti-platform.c
@@ -325,7 +325,7 @@ static int cti_plat_process_filter_sigs(struct cti_drvdata *drvdata,
if (nr_filter_sigs > drvdata->config.nr_trig_max)
return -EINVAL;
- tg = kzalloc(sizeof(*tg), GFP_KERNEL);
+ tg = kzalloc_obj(*tg, GFP_KERNEL);
if (!tg)
return -ENOMEM;
diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.c b/drivers/hwtracing/coresight/coresight-etm-perf.c
index 3c8a6f795094..01d4c422fed9 100644
--- a/drivers/hwtracing/coresight/coresight-etm-perf.c
+++ b/drivers/hwtracing/coresight/coresight-etm-perf.c
@@ -260,7 +260,7 @@ static void *alloc_event_data(int cpu)
struct etm_event_data *event_data;
/* First get memory for the session's data */
- event_data = kzalloc(sizeof(struct etm_event_data), GFP_KERNEL);
+ event_data = kzalloc_obj(struct etm_event_data, GFP_KERNEL);
if (!event_data)
return NULL;
diff --git a/drivers/hwtracing/coresight/coresight-syscfg.c b/drivers/hwtracing/coresight/coresight-syscfg.c
index 6836b05986e8..de2f6947f521 100644
--- a/drivers/hwtracing/coresight/coresight-syscfg.c
+++ b/drivers/hwtracing/coresight/coresight-syscfg.c
@@ -756,7 +756,7 @@ static int cscfg_list_add_csdev(struct coresight_device *csdev,
struct cscfg_registered_csdev *csdev_item;
/* allocate the list entry structure */
- csdev_item = kzalloc(sizeof(struct cscfg_registered_csdev), GFP_KERNEL);
+ csdev_item = kzalloc_obj(struct cscfg_registered_csdev, GFP_KERNEL);
if (!csdev_item)
return -ENOMEM;
@@ -1190,7 +1190,7 @@ static int cscfg_create_device(void)
goto create_dev_exit_unlock;
}
- cscfg_mgr = kzalloc(sizeof(struct cscfg_manager), GFP_KERNEL);
+ cscfg_mgr = kzalloc_obj(struct cscfg_manager, GFP_KERNEL);
if (!cscfg_mgr)
goto create_dev_exit_unlock;
diff --git a/drivers/hwtracing/coresight/coresight-tmc-etr.c b/drivers/hwtracing/coresight/coresight-tmc-etr.c
index cee82e52c4ea..7aca22d6e335 100644
--- a/drivers/hwtracing/coresight/coresight-tmc-etr.c
+++ b/drivers/hwtracing/coresight/coresight-tmc-etr.c
@@ -204,12 +204,11 @@ static int tmc_pages_alloc(struct tmc_pages *tmc_pages,
struct device *real_dev = dev->parent;
nr_pages = tmc_pages->nr_pages;
- tmc_pages->daddrs = kcalloc(nr_pages, sizeof(*tmc_pages->daddrs),
+ tmc_pages->daddrs = kzalloc_objs(*tmc_pages->daddrs, nr_pages,
GFP_KERNEL);
if (!tmc_pages->daddrs)
return -ENOMEM;
- tmc_pages->pages = kcalloc(nr_pages, sizeof(*tmc_pages->pages),
- GFP_KERNEL);
+ tmc_pages->pages = kzalloc_objs(*tmc_pages->pages, nr_pages, GFP_KERNEL);
if (!tmc_pages->pages) {
kfree(tmc_pages->daddrs);
tmc_pages->daddrs = NULL;
@@ -332,7 +331,7 @@ struct tmc_sg_table *tmc_alloc_sg_table(struct device *dev,
long rc;
struct tmc_sg_table *sg_table;
- sg_table = kzalloc(sizeof(*sg_table), GFP_KERNEL);
+ sg_table = kzalloc_obj(*sg_table, GFP_KERNEL);
if (!sg_table)
return ERR_PTR(-ENOMEM);
sg_table->data_pages.nr_pages = nr_dpages;
@@ -575,7 +574,7 @@ tmc_init_etr_sg_table(struct device *dev, int node,
struct tmc_sg_table *sg_table;
struct etr_sg_table *etr_table;
- etr_table = kzalloc(sizeof(*etr_table), GFP_KERNEL);
+ etr_table = kzalloc_obj(*etr_table, GFP_KERNEL);
if (!etr_table)
return ERR_PTR(-ENOMEM);
nr_entries = tmc_etr_sg_table_entries(nr_dpages);
@@ -612,7 +611,7 @@ static int tmc_etr_alloc_flat_buf(struct tmc_drvdata *drvdata,
if (pages)
return -EINVAL;
- flat_buf = kzalloc(sizeof(*flat_buf), GFP_KERNEL);
+ flat_buf = kzalloc_obj(*flat_buf, GFP_KERNEL);
if (!flat_buf)
return -ENOMEM;
@@ -710,7 +709,7 @@ static int tmc_etr_alloc_resrv_buf(struct tmc_drvdata *drvdata,
if (pages)
return -EINVAL;
- resrv_buf = kzalloc(sizeof(*resrv_buf), GFP_KERNEL);
+ resrv_buf = kzalloc_obj(*resrv_buf, GFP_KERNEL);
if (!resrv_buf)
return -ENOMEM;
@@ -942,7 +941,7 @@ static struct etr_buf *tmc_alloc_etr_buf(struct tmc_drvdata *drvdata,
struct device *dev = &drvdata->csdev->dev;
get_etr_buf_hw(dev, &buf_hw);
- etr_buf = kzalloc(sizeof(*etr_buf), GFP_KERNEL);
+ etr_buf = kzalloc_obj(*etr_buf, GFP_KERNEL);
if (!etr_buf)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/hwtracing/coresight/coresight-trbe.c b/drivers/hwtracing/coresight/coresight-trbe.c
index 474861903f6c..257dd5689c81 100644
--- a/drivers/hwtracing/coresight/coresight-trbe.c
+++ b/drivers/hwtracing/coresight/coresight-trbe.c
@@ -751,7 +751,7 @@ static void *arm_trbe_alloc_buffer(struct coresight_device *csdev,
if (!buf)
return NULL;
- pglist = kcalloc(nr_pages, sizeof(*pglist), GFP_KERNEL);
+ pglist = kzalloc_objs(*pglist, nr_pages, GFP_KERNEL);
if (!pglist) {
kfree(buf);
return NULL;
diff --git a/drivers/hwtracing/intel_th/core.c b/drivers/hwtracing/intel_th/core.c
index 2482ecf5776b..641efa0016e0 100644
--- a/drivers/hwtracing/intel_th/core.c
+++ b/drivers/hwtracing/intel_th/core.c
@@ -891,7 +891,7 @@ intel_th_alloc(struct device *dev, const struct intel_th_drvdata *drvdata,
int err, r, nr_mmios = 0;
struct intel_th *th;
- th = kzalloc(sizeof(*th), GFP_KERNEL);
+ th = kzalloc_obj(*th, GFP_KERNEL);
if (!th)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/hwtracing/intel_th/msu-sink.c b/drivers/hwtracing/intel_th/msu-sink.c
index 256ce3260ad9..d3373be9109b 100644
--- a/drivers/hwtracing/intel_th/msu-sink.c
+++ b/drivers/hwtracing/intel_th/msu-sink.c
@@ -23,7 +23,7 @@ static void *msu_sink_assign(struct device *dev, int *mode)
{
struct msu_sink_private *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return NULL;
diff --git a/drivers/hwtracing/intel_th/msu.c b/drivers/hwtracing/intel_th/msu.c
index f3a13b300835..33e16c40f0ec 100644
--- a/drivers/hwtracing/intel_th/msu.c
+++ b/drivers/hwtracing/intel_th/msu.c
@@ -236,7 +236,7 @@ int intel_th_msu_buffer_register(const struct msu_buffer *mbuf,
struct msu_buffer_entry *mbe;
int ret = 0;
- mbe = kzalloc(sizeof(*mbe), GFP_KERNEL);
+ mbe = kzalloc_obj(*mbe, GFP_KERNEL);
if (!mbe)
return -ENOMEM;
@@ -450,7 +450,7 @@ static struct msc_iter *msc_iter_install(struct msc *msc)
{
struct msc_iter *iter;
- iter = kzalloc(sizeof(*iter), GFP_KERNEL);
+ iter = kzalloc_obj(*iter, GFP_KERNEL);
if (!iter)
return ERR_PTR(-ENOMEM);
@@ -1105,7 +1105,7 @@ static int msc_buffer_win_alloc(struct msc *msc, unsigned int nr_blocks)
if (!nr_blocks)
return 0;
- win = kzalloc(sizeof(*win), GFP_KERNEL);
+ win = kzalloc_obj(*win, GFP_KERNEL);
if (!win)
return -ENOMEM;
diff --git a/drivers/hwtracing/ptt/hisi_ptt.c b/drivers/hwtracing/ptt/hisi_ptt.c
index 3090479a2979..3d7a80dacce5 100644
--- a/drivers/hwtracing/ptt/hisi_ptt.c
+++ b/drivers/hwtracing/ptt/hisi_ptt.c
@@ -384,7 +384,7 @@ hisi_ptt_alloc_add_filter(struct hisi_ptt *hisi_ptt, u16 devid, bool is_port)
return NULL;
}
- filter = kzalloc(sizeof(*filter), GFP_KERNEL);
+ filter = kzalloc_obj(*filter, GFP_KERNEL);
if (!filter) {
pci_err(hisi_ptt->pdev, "failed to add filter for %s\n",
filter_name);
@@ -1043,11 +1043,11 @@ static void *hisi_ptt_pmu_setup_aux(struct perf_event *event, void **pages,
if (nr_pages < HISI_PTT_TRACE_TOTAL_BUF_SIZE / PAGE_SIZE)
return NULL;
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return NULL;
- pagelist = kcalloc(nr_pages, sizeof(*pagelist), GFP_KERNEL);
+ pagelist = kzalloc_objs(*pagelist, nr_pages, GFP_KERNEL);
if (!pagelist)
goto err;
diff --git a/drivers/hwtracing/stm/core.c b/drivers/hwtracing/stm/core.c
index cdba4e875b28..b3df3104aa3d 100644
--- a/drivers/hwtracing/stm/core.c
+++ b/drivers/hwtracing/stm/core.c
@@ -160,9 +160,9 @@ static int stp_master_alloc(struct stm_device *stm, unsigned int idx)
{
struct stp_master *master;
- master = kzalloc(struct_size(master, chan_map,
- BITS_TO_LONGS(stm->data->sw_nchannels)),
- GFP_ATOMIC);
+ master = kzalloc_flex(*master, chan_map,
+ BITS_TO_LONGS(stm->data->sw_nchannels),
+ GFP_ATOMIC);
if (!master)
return -ENOMEM;
@@ -406,7 +406,7 @@ int stm_register_protocol(const struct stm_protocol_driver *pdrv)
goto unlock;
}
- pe = kzalloc(sizeof(*pe), GFP_KERNEL);
+ pe = kzalloc_obj(*pe, GFP_KERNEL);
if (!pe)
goto unlock;
@@ -493,7 +493,7 @@ static int stm_char_open(struct inode *inode, struct file *file)
if (!dev)
return -ENODEV;
- stmf = kzalloc(sizeof(*stmf), GFP_KERNEL);
+ stmf = kzalloc_obj(*stmf, GFP_KERNEL);
if (!stmf)
goto err_put_device;
@@ -1229,7 +1229,7 @@ int stm_source_register_device(struct device *parent,
if (!stm_core_up)
return -EPROBE_DEFER;
- src = kzalloc(sizeof(*src), GFP_KERNEL);
+ src = kzalloc_obj(*src, GFP_KERNEL);
if (!src)
return -ENOMEM;
diff --git a/drivers/hwtracing/stm/p_sys-t.c b/drivers/hwtracing/stm/p_sys-t.c
index 1e75aa0025a3..bcbbc4d92325 100644
--- a/drivers/hwtracing/stm/p_sys-t.c
+++ b/drivers/hwtracing/stm/p_sys-t.c
@@ -128,7 +128,7 @@ static int sys_t_output_open(void *priv, struct stm_output *output)
struct sys_t_policy_node *pn = priv;
struct sys_t_output *opriv;
- opriv = kzalloc(sizeof(*opriv), GFP_ATOMIC);
+ opriv = kzalloc_obj(*opriv, GFP_ATOMIC);
if (!opriv)
return -ENOMEM;
diff --git a/drivers/hwtracing/stm/policy.c b/drivers/hwtracing/stm/policy.c
index 42103c3a177f..f0f8876008ed 100644
--- a/drivers/hwtracing/stm/policy.c
+++ b/drivers/hwtracing/stm/policy.c
@@ -437,7 +437,7 @@ stp_policy_make(struct config_group *group, const char *name)
goto unlock_policy;
}
- stm->policy = kzalloc(sizeof(*stm->policy), GFP_KERNEL);
+ stm->policy = kzalloc_obj(*stm->policy, GFP_KERNEL);
if (!stm->policy) {
ret = ERR_PTR(-ENOMEM);
goto unlock_policy;
diff --git a/drivers/i2c/busses/i2c-cp2615.c b/drivers/i2c/busses/i2c-cp2615.c
index e7720ea4045e..b9a86eb10cc2 100644
--- a/drivers/i2c/busses/i2c-cp2615.c
+++ b/drivers/i2c/busses/i2c-cp2615.c
@@ -124,7 +124,7 @@ static int cp2615_check_status(enum cp2615_i2c_status status)
static int
cp2615_i2c_send(struct usb_interface *usbif, struct cp2615_i2c_transfer *i2c_w)
{
- struct cp2615_iop_msg *msg = kzalloc(sizeof(*msg), GFP_KERNEL);
+ struct cp2615_iop_msg *msg = kzalloc_obj(*msg, GFP_KERNEL);
struct usb_device *usbdev = interface_to_usbdev(usbif);
int res = cp2615_init_i2c_msg(msg, i2c_w);
@@ -143,7 +143,7 @@ cp2615_i2c_recv(struct usb_interface *usbif, unsigned char tag, void *buf)
struct cp2615_i2c_transfer_result *i2c_r;
int res;
- msg = kzalloc(sizeof(*msg), GFP_KERNEL);
+ msg = kzalloc_obj(*msg, GFP_KERNEL);
if (!msg)
return -ENOMEM;
@@ -171,7 +171,7 @@ cp2615_i2c_recv(struct usb_interface *usbif, unsigned char tag, void *buf)
/* Checks if the IOP is functional by querying the part's ID */
static int cp2615_check_iop(struct usb_interface *usbif)
{
- struct cp2615_iop_msg *msg = kzalloc(sizeof(*msg), GFP_KERNEL);
+ struct cp2615_iop_msg *msg = kzalloc_obj(*msg, GFP_KERNEL);
struct cp2615_iop_accessory_info *info = (struct cp2615_iop_accessory_info *)&msg->data;
struct usb_device *usbdev = interface_to_usbdev(usbif);
int res = cp2615_init_iop_msg(msg, iop_GetAccessoryInfo, NULL, 0);
diff --git a/drivers/i2c/busses/i2c-cpm.c b/drivers/i2c/busses/i2c-cpm.c
index 260e1643c2cc..dbe90974167a 100644
--- a/drivers/i2c/busses/i2c-cpm.c
+++ b/drivers/i2c/busses/i2c-cpm.c
@@ -636,7 +636,7 @@ static int cpm_i2c_probe(struct platform_device *ofdev)
struct cpm_i2c *cpm;
const u32 *data;
- cpm = kzalloc(sizeof(struct cpm_i2c), GFP_KERNEL);
+ cpm = kzalloc_obj(struct cpm_i2c, GFP_KERNEL);
if (!cpm)
return -ENOMEM;
diff --git a/drivers/i2c/busses/i2c-designware-amdpsp.c b/drivers/i2c/busses/i2c-designware-amdpsp.c
index 404571ad61a8..c4d3b0ee6f4d 100644
--- a/drivers/i2c/busses/i2c-designware-amdpsp.c
+++ b/drivers/i2c/busses/i2c-designware-amdpsp.c
@@ -93,7 +93,7 @@ static int psp_send_i2c_req(enum psp_i2c_req_type i2c_req_type)
int status, ret;
/* Allocate command-response buffer */
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/drivers/i2c/busses/i2c-diolan-u2c.c b/drivers/i2c/busses/i2c-diolan-u2c.c
index c02459405b26..ba0a2e03f490 100644
--- a/drivers/i2c/busses/i2c-diolan-u2c.c
+++ b/drivers/i2c/busses/i2c-diolan-u2c.c
@@ -445,7 +445,7 @@ static int diolan_u2c_probe(struct usb_interface *interface,
return -ENODEV;
/* allocate memory for our device state and initialize it */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (dev == NULL) {
ret = -ENOMEM;
goto error;
diff --git a/drivers/i2c/busses/i2c-eg20t.c b/drivers/i2c/busses/i2c-eg20t.c
index 27ea3c130a16..65ac713e8a84 100644
--- a/drivers/i2c/busses/i2c-eg20t.c
+++ b/drivers/i2c/busses/i2c-eg20t.c
@@ -720,7 +720,7 @@ static int pch_i2c_probe(struct pci_dev *pdev,
pch_pci_dbg(pdev, "Entered.\n");
- adap_info = kzalloc((sizeof(struct adapter_info)), GFP_KERNEL);
+ adap_info = kzalloc_obj(struct adapter_info, GFP_KERNEL);
if (adap_info == NULL)
return -ENOMEM;
diff --git a/drivers/i2c/busses/i2c-fsi.c b/drivers/i2c/busses/i2c-fsi.c
index 3a7e577e6eac..77b4129e1ee6 100644
--- a/drivers/i2c/busses/i2c-fsi.c
+++ b/drivers/i2c/busses/i2c-fsi.c
@@ -707,7 +707,7 @@ static int fsi_i2c_probe(struct fsi_device *fsi_dev)
if (!of_device_is_available(np))
continue;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port) {
of_node_put(np);
break;
diff --git a/drivers/i2c/busses/i2c-highlander.c b/drivers/i2c/busses/i2c-highlander.c
index 78c5845e0877..ddea5847f0c5 100644
--- a/drivers/i2c/busses/i2c-highlander.c
+++ b/drivers/i2c/busses/i2c-highlander.c
@@ -365,7 +365,7 @@ static int highlander_i2c_probe(struct platform_device *pdev)
return -ENODEV;
}
- dev = kzalloc(sizeof(struct highlander_i2c_dev), GFP_KERNEL);
+ dev = kzalloc_obj(struct highlander_i2c_dev, GFP_KERNEL);
if (unlikely(!dev))
return -ENOMEM;
diff --git a/drivers/i2c/busses/i2c-ibm_iic.c b/drivers/i2c/busses/i2c-ibm_iic.c
index 6bf45d752ff9..ca2534bba932 100644
--- a/drivers/i2c/busses/i2c-ibm_iic.c
+++ b/drivers/i2c/busses/i2c-ibm_iic.c
@@ -687,7 +687,7 @@ static int iic_probe(struct platform_device *ofdev)
const u32 *freq;
int ret;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/i2c/busses/i2c-iop3xx.c b/drivers/i2c/busses/i2c-iop3xx.c
index ce5ca5b90b39..f5c1d2191c98 100644
--- a/drivers/i2c/busses/i2c-iop3xx.c
+++ b/drivers/i2c/busses/i2c-iop3xx.c
@@ -415,13 +415,13 @@ iop3xx_i2c_probe(struct platform_device *pdev)
struct i2c_adapter *new_adapter;
struct i2c_algo_iop3xx_data *adapter_data;
- new_adapter = kzalloc(sizeof(struct i2c_adapter), GFP_KERNEL);
+ new_adapter = kzalloc_obj(struct i2c_adapter, GFP_KERNEL);
if (!new_adapter) {
ret = -ENOMEM;
goto out;
}
- adapter_data = kzalloc(sizeof(struct i2c_algo_iop3xx_data), GFP_KERNEL);
+ adapter_data = kzalloc_obj(struct i2c_algo_iop3xx_data, GFP_KERNEL);
if (!adapter_data) {
ret = -ENOMEM;
goto free_adapter;
diff --git a/drivers/i2c/busses/i2c-nforce2.c b/drivers/i2c/busses/i2c-nforce2.c
index d58a308582e4..b673206313fc 100644
--- a/drivers/i2c/busses/i2c-nforce2.c
+++ b/drivers/i2c/busses/i2c-nforce2.c
@@ -359,7 +359,7 @@ static int nforce2_probe(struct pci_dev *dev, const struct pci_device_id *id)
int res1, res2;
/* we support 2 SMBus adapters */
- smbuses = kcalloc(2, sizeof(struct nforce2_smbus), GFP_KERNEL);
+ smbuses = kzalloc_objs(struct nforce2_smbus, 2, GFP_KERNEL);
if (!smbuses)
return -ENOMEM;
pci_set_drvdata(dev, smbuses);
diff --git a/drivers/i2c/busses/i2c-parport.c b/drivers/i2c/busses/i2c-parport.c
index 3249bbd5eb43..5ae1c7f8b9b5 100644
--- a/drivers/i2c/busses/i2c-parport.c
+++ b/drivers/i2c/busses/i2c-parport.c
@@ -288,7 +288,7 @@ static void i2c_parport_attach(struct parport *port)
return;
}
- adapter = kzalloc(sizeof(struct i2c_par), GFP_KERNEL);
+ adapter = kzalloc_obj(struct i2c_par, GFP_KERNEL);
if (!adapter)
return;
memset(&i2c_parport_cb, 0, sizeof(i2c_parport_cb));
diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c
index ac3bb550303f..e159a9aed41f 100644
--- a/drivers/i2c/busses/i2c-piix4.c
+++ b/drivers/i2c/busses/i2c-piix4.c
@@ -919,7 +919,7 @@ static int piix4_add_adapter(struct pci_dev *dev, unsigned short smba,
struct i2c_piix4_adapdata *adapdata;
int retval;
- adap = kzalloc(sizeof(*adap), GFP_KERNEL);
+ adap = kzalloc_obj(*adap, GFP_KERNEL);
if (adap == NULL) {
release_region(smba, SMBIOSIZE);
return -ENOMEM;
@@ -930,7 +930,7 @@ static int piix4_add_adapter(struct pci_dev *dev, unsigned short smba,
adap->algo = sb800_main ? &piix4_smbus_algorithm_sb800
: &smbus_algorithm;
- adapdata = kzalloc(sizeof(*adapdata), GFP_KERNEL);
+ adapdata = kzalloc_obj(*adapdata, GFP_KERNEL);
if (adapdata == NULL) {
kfree(adap);
release_region(smba, SMBIOSIZE);
diff --git a/drivers/i2c/busses/i2c-pxa-pci.c b/drivers/i2c/busses/i2c-pxa-pci.c
index af2094720a4d..c80a054fc4e9 100644
--- a/drivers/i2c/busses/i2c-pxa-pci.c
+++ b/drivers/i2c/busses/i2c-pxa-pci.c
@@ -112,7 +112,7 @@ static int ce4100_i2c_probe(struct pci_dev *dev,
dev_err(&dev->dev, "Missing device tree node.\n");
return -EINVAL;
}
- sds = kzalloc(sizeof(*sds), GFP_KERNEL);
+ sds = kzalloc_obj(*sds, GFP_KERNEL);
if (!sds)
return -ENOMEM;
diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c
index ae609bdd2ec4..9958920f635e 100644
--- a/drivers/i2c/busses/i2c-qcom-geni.c
+++ b/drivers/i2c/busses/i2c-qcom-geni.c
@@ -799,7 +799,8 @@ static int geni_i2c_gpi_xfer(struct geni_i2c_dev *gi2c, struct i2c_msg msgs[], i
if (gi2c->is_tx_multi_desc_xfer) {
tx_multi_xfer->dma_buf = kcalloc(num, sizeof(void *), GFP_KERNEL);
- tx_multi_xfer->dma_addr = kcalloc(num, sizeof(dma_addr_t), GFP_KERNEL);
+ tx_multi_xfer->dma_addr = kzalloc_objs(dma_addr_t, num,
+ GFP_KERNEL);
if (!tx_multi_xfer->dma_buf || !tx_multi_xfer->dma_addr) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/i2c/busses/i2c-scmi.c b/drivers/i2c/busses/i2c-scmi.c
index 10a5146b3aa5..c10ad0677949 100644
--- a/drivers/i2c/busses/i2c-scmi.c
+++ b/drivers/i2c/busses/i2c-scmi.c
@@ -359,7 +359,7 @@ static int smbus_cmi_probe(struct platform_device *device)
struct acpi_smbus_cmi *smbus_cmi;
int ret;
- smbus_cmi = kzalloc(sizeof(struct acpi_smbus_cmi), GFP_KERNEL);
+ smbus_cmi = kzalloc_obj(struct acpi_smbus_cmi, GFP_KERNEL);
if (!smbus_cmi)
return -ENOMEM;
diff --git a/drivers/i2c/busses/i2c-sh7760.c b/drivers/i2c/busses/i2c-sh7760.c
index 43f33988b98f..dcdf56398f70 100644
--- a/drivers/i2c/busses/i2c-sh7760.c
+++ b/drivers/i2c/busses/i2c-sh7760.c
@@ -443,7 +443,7 @@ static int sh7760_i2c_probe(struct platform_device *pdev)
goto out0;
}
- id = kzalloc(sizeof(*id), GFP_KERNEL);
+ id = kzalloc_obj(*id, GFP_KERNEL);
if (!id) {
ret = -ENOMEM;
goto out0;
diff --git a/drivers/i2c/busses/i2c-simtec.c b/drivers/i2c/busses/i2c-simtec.c
index d90606048611..9572357cc177 100644
--- a/drivers/i2c/busses/i2c-simtec.c
+++ b/drivers/i2c/busses/i2c-simtec.c
@@ -64,7 +64,7 @@ static int simtec_i2c_probe(struct platform_device *dev)
int size;
int ret;
- pd = kzalloc(sizeof(struct simtec_i2c_data), GFP_KERNEL);
+ pd = kzalloc_obj(struct simtec_i2c_data, GFP_KERNEL);
if (pd == NULL)
return -ENOMEM;
diff --git a/drivers/i2c/busses/i2c-stm32f7.c b/drivers/i2c/busses/i2c-stm32f7.c
index dc69ed934ec8..e2388862f29e 100644
--- a/drivers/i2c/busses/i2c-stm32f7.c
+++ b/drivers/i2c/busses/i2c-stm32f7.c
@@ -544,7 +544,7 @@ static int stm32f7_i2c_compute_timing(struct stm32f7_i2c_dev *i2c_dev,
if (((sdadel >= sdadel_min) &&
(sdadel <= sdadel_max)) &&
(p != p_prev)) {
- v = kmalloc(sizeof(*v), GFP_KERNEL);
+ v = kmalloc_obj(*v, GFP_KERNEL);
if (!v) {
ret = -ENOMEM;
goto exit;
diff --git a/drivers/i2c/busses/i2c-taos-evm.c b/drivers/i2c/busses/i2c-taos-evm.c
index cb97f72291bc..e8a89b7d2174 100644
--- a/drivers/i2c/busses/i2c-taos-evm.c
+++ b/drivers/i2c/busses/i2c-taos-evm.c
@@ -203,7 +203,7 @@ static int taos_connect(struct serio *serio, struct serio_driver *drv)
char *name;
int err;
- taos = kzalloc(sizeof(struct taos_data), GFP_KERNEL);
+ taos = kzalloc_obj(struct taos_data, GFP_KERNEL);
if (!taos) {
err = -ENOMEM;
goto exit;
diff --git a/drivers/i2c/busses/i2c-tiny-usb.c b/drivers/i2c/busses/i2c-tiny-usb.c
index 57dfe5f1a7d9..ab021042901b 100644
--- a/drivers/i2c/busses/i2c-tiny-usb.c
+++ b/drivers/i2c/busses/i2c-tiny-usb.c
@@ -55,7 +55,7 @@ static int usb_xfer(struct i2c_adapter *adapter, struct i2c_msg *msgs, int num)
struct i2c_msg *pmsg;
int i, ret;
- pstatus = kmalloc(sizeof(*pstatus), GFP_KERNEL);
+ pstatus = kmalloc_obj(*pstatus, GFP_KERNEL);
if (!pstatus)
return -ENOMEM;
@@ -123,7 +123,7 @@ static u32 usb_func(struct i2c_adapter *adapter)
__le32 *pfunc;
u32 ret;
- pfunc = kmalloc(sizeof(*pfunc), GFP_KERNEL);
+ pfunc = kmalloc_obj(*pfunc, GFP_KERNEL);
/* get functionality from adapter */
if (!pfunc || usb_read(adapter, CMD_GET_FUNC, 0, 0, pfunc,
@@ -233,7 +233,7 @@ static int i2c_tiny_usb_probe(struct usb_interface *interface,
dev_dbg(&interface->dev, "probing usb device\n");
/* allocate memory for our device state and initialize it */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
goto error;
diff --git a/drivers/i2c/busses/i2c-virtio.c b/drivers/i2c/busses/i2c-virtio.c
index af1381949f50..01ef98e90243 100644
--- a/drivers/i2c/busses/i2c-virtio.c
+++ b/drivers/i2c/busses/i2c-virtio.c
@@ -139,7 +139,7 @@ static int virtio_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs,
struct virtio_i2c_req *reqs;
int count;
- reqs = kcalloc(num, sizeof(*reqs), GFP_KERNEL);
+ reqs = kzalloc_objs(*reqs, num, GFP_KERNEL);
if (!reqs)
return -ENOMEM;
diff --git a/drivers/i2c/busses/scx200_acb.c b/drivers/i2c/busses/scx200_acb.c
index 06cf221557f2..1c76aef0a423 100644
--- a/drivers/i2c/busses/scx200_acb.c
+++ b/drivers/i2c/busses/scx200_acb.c
@@ -418,7 +418,7 @@ static struct scx200_acb_iface *scx200_create_iface(const char *text,
struct scx200_acb_iface *iface;
struct i2c_adapter *adapter;
- iface = kzalloc(sizeof(*iface), GFP_KERNEL);
+ iface = kzalloc_obj(*iface, GFP_KERNEL);
if (!iface)
return NULL;
diff --git a/drivers/i2c/i2c-atr.c b/drivers/i2c/i2c-atr.c
index dd194476b118..8e3fe365caaf 100644
--- a/drivers/i2c/i2c-atr.c
+++ b/drivers/i2c/i2c-atr.c
@@ -137,7 +137,7 @@ static struct i2c_atr_alias_pool *i2c_atr_alloc_alias_pool(size_t num_aliases, b
struct i2c_atr_alias_pool *alias_pool;
int ret;
- alias_pool = kzalloc(sizeof(*alias_pool), GFP_KERNEL);
+ alias_pool = kzalloc_obj(*alias_pool, GFP_KERNEL);
if (!alias_pool)
return ERR_PTR(-ENOMEM);
@@ -183,7 +183,7 @@ static struct i2c_atr_alias_pair *i2c_atr_create_c2a(struct i2c_atr_chan *chan,
lockdep_assert_held(&chan->alias_pairs_lock);
- c2a = kzalloc(sizeof(*c2a), GFP_KERNEL);
+ c2a = kzalloc_obj(*c2a, GFP_KERNEL);
if (!c2a)
return NULL;
@@ -724,7 +724,7 @@ struct i2c_atr *i2c_atr_new(struct i2c_adapter *parent, struct device *dev,
if (!ops || !ops->attach_addr || !ops->detach_addr)
return ERR_PTR(-EINVAL);
- atr = kzalloc(struct_size(atr, adapter, max_adapters), GFP_KERNEL);
+ atr = kzalloc_flex(*atr, adapter, max_adapters, GFP_KERNEL);
if (!atr)
return ERR_PTR(-ENOMEM);
@@ -800,7 +800,7 @@ int i2c_atr_add_adapter(struct i2c_atr *atr, struct i2c_atr_adap_desc *desc)
return -EEXIST;
}
- chan = kzalloc(sizeof(*chan), GFP_KERNEL);
+ chan = kzalloc_obj(*chan, GFP_KERNEL);
if (!chan)
return -ENOMEM;
diff --git a/drivers/i2c/i2c-boardinfo.c b/drivers/i2c/i2c-boardinfo.c
index 4df8ad092df3..31fcc051bf20 100644
--- a/drivers/i2c/i2c-boardinfo.c
+++ b/drivers/i2c/i2c-boardinfo.c
@@ -61,7 +61,7 @@ int i2c_register_board_info(int busnum, struct i2c_board_info const *info, unsig
for (status = 0; len; len--, info++) {
struct i2c_devinfo *devinfo;
- devinfo = kzalloc(sizeof(*devinfo), GFP_KERNEL);
+ devinfo = kzalloc_obj(*devinfo, GFP_KERNEL);
if (!devinfo) {
pr_debug("i2c-core: can't register boardinfo!\n");
status = -ENOMEM;
diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
index ed90858a27b7..5b16d76a5bc2 100644
--- a/drivers/i2c/i2c-core-acpi.c
+++ b/drivers/i2c/i2c-core-acpi.c
@@ -683,7 +683,7 @@ i2c_acpi_space_handler(u32 function, acpi_physical_address command,
if (ACPI_FAILURE(ret))
return ret;
- client = kzalloc(sizeof(*client), GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (!client) {
ret = AE_NO_MEMORY;
goto err;
@@ -793,8 +793,7 @@ int i2c_acpi_install_space_handler(struct i2c_adapter *adapter)
if (!handle)
return -ENODEV;
- data = kzalloc(sizeof(struct i2c_acpi_handler_data),
- GFP_KERNEL);
+ data = kzalloc_obj(struct i2c_acpi_handler_data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
index f0fb0cfd56e0..91b388070525 100644
--- a/drivers/i2c/i2c-core-base.c
+++ b/drivers/i2c/i2c-core-base.c
@@ -964,7 +964,7 @@ i2c_new_client_device(struct i2c_adapter *adap, struct i2c_board_info const *inf
bool need_put = false;
int status;
- client = kzalloc(sizeof *client, GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (!client)
return ERR_PTR(-ENOMEM);
@@ -2529,7 +2529,7 @@ static int i2c_detect(struct i2c_adapter *adapter, struct i2c_driver *driver)
return 0;
/* Set up a temporary client to help detect callback */
- temp_client = kzalloc(sizeof(*temp_client), GFP_KERNEL);
+ temp_client = kzalloc_obj(*temp_client, GFP_KERNEL);
if (!temp_client)
return -ENOMEM;
diff --git a/drivers/i2c/i2c-core-of-prober.c b/drivers/i2c/i2c-core-of-prober.c
index 0a66267e4836..8c820d70846a 100644
--- a/drivers/i2c/i2c-core-of-prober.c
+++ b/drivers/i2c/i2c-core-of-prober.c
@@ -63,7 +63,7 @@ static int i2c_of_probe_enable_node(struct device *dev, struct device_node *node
dev_dbg(dev, "Enabling %pOF\n", node);
- struct of_changeset *ocs __free(kfree) = kzalloc(sizeof(*ocs), GFP_KERNEL);
+ struct of_changeset *ocs __free(kfree) = kzalloc_obj(*ocs, GFP_KERNEL);
if (!ocs)
return -ENOMEM;
diff --git a/drivers/i2c/i2c-dev.c b/drivers/i2c/i2c-dev.c
index e9577f920286..e4ac9f2df8d5 100644
--- a/drivers/i2c/i2c-dev.c
+++ b/drivers/i2c/i2c-dev.c
@@ -74,7 +74,7 @@ static struct i2c_dev *get_free_i2c_dev(struct i2c_adapter *adap)
return ERR_PTR(-ENODEV);
}
- i2c_dev = kzalloc(sizeof(*i2c_dev), GFP_KERNEL);
+ i2c_dev = kzalloc_obj(*i2c_dev, GFP_KERNEL);
if (!i2c_dev)
return ERR_PTR(-ENOMEM);
i2c_dev->adap = adap;
@@ -552,8 +552,8 @@ static long compat_i2cdev_ioctl(struct file *file, unsigned int cmd, unsigned lo
if (rdwr_arg.nmsgs > I2C_RDWR_IOCTL_MAX_MSGS)
return -EINVAL;
- rdwr_pa = kmalloc_array(rdwr_arg.nmsgs, sizeof(struct i2c_msg),
- GFP_KERNEL);
+ rdwr_pa = kmalloc_objs(struct i2c_msg, rdwr_arg.nmsgs,
+ GFP_KERNEL);
if (!rdwr_pa)
return -ENOMEM;
@@ -612,7 +612,7 @@ static int i2cdev_open(struct inode *inode, struct file *file)
* or I2C core code!! It just holds private copies of addressing
* information and maybe a PEC flag.
*/
- client = kzalloc(sizeof(*client), GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (!client) {
i2c_put_adapter(adap);
return -ENOMEM;
diff --git a/drivers/i2c/i2c-mux.c b/drivers/i2c/i2c-mux.c
index d59644e50f14..2e7b4073a4df 100644
--- a/drivers/i2c/i2c-mux.c
+++ b/drivers/i2c/i2c-mux.c
@@ -277,7 +277,7 @@ int i2c_mux_add_adapter(struct i2c_mux_core *muxc,
return -EINVAL;
}
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/i2c/i2c-smbus.c b/drivers/i2c/i2c-smbus.c
index 0316b347f9e7..14e45590e97e 100644
--- a/drivers/i2c/i2c-smbus.c
+++ b/drivers/i2c/i2c-smbus.c
@@ -319,8 +319,7 @@ struct i2c_client *i2c_new_slave_host_notify_device(struct i2c_adapter *adapter)
struct i2c_client *client;
int ret;
- status = kzalloc(sizeof(struct i2c_slave_host_notify_status),
- GFP_KERNEL);
+ status = kzalloc_obj(struct i2c_slave_host_notify_status, GFP_KERNEL);
if (!status)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/i2c/i2c-stub.c b/drivers/i2c/i2c-stub.c
index 09e7b7bf4c5f..1d7d105c5643 100644
--- a/drivers/i2c/i2c-stub.c
+++ b/drivers/i2c/i2c-stub.c
@@ -372,8 +372,7 @@ static int __init i2c_stub_init(void)
/* Allocate memory for all chips at once */
stub_chips_nr = i;
- stub_chips = kcalloc(stub_chips_nr, sizeof(struct stub_chip),
- GFP_KERNEL);
+ stub_chips = kzalloc_objs(struct stub_chip, stub_chips_nr, GFP_KERNEL);
if (!stub_chips)
return -ENOMEM;
diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
index 0eae19b3823d..161eab16d17e 100644
--- a/drivers/i3c/master.c
+++ b/drivers/i3c/master.c
@@ -858,7 +858,7 @@ i3c_master_alloc_i2c_dev(struct i3c_master_controller *master,
{
struct i2c_dev_desc *dev;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
@@ -983,7 +983,7 @@ i3c_master_alloc_i3c_dev(struct i3c_master_controller *master,
{
struct i3c_dev_desc *dev;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
@@ -1742,7 +1742,7 @@ i3c_master_register_new_i3c_devs(struct i3c_master_controller *master)
if (desc->dev || !desc->info.dyn_addr || desc == master->this)
continue;
- desc->dev = kzalloc(sizeof(*desc->dev), GFP_KERNEL);
+ desc->dev = kzalloc_obj(*desc->dev, GFP_KERNEL);
if (!desc->dev)
continue;
@@ -1852,7 +1852,8 @@ struct i3c_dma *i3c_master_dma_map_single(struct device *dev, void *buf,
void *bounce __free(kfree) = NULL;
void *dma_buf = buf;
- struct i3c_dma *dma_xfer __free(kfree) = kzalloc(sizeof(*dma_xfer), GFP_KERNEL);
+ struct i3c_dma *dma_xfer __free(kfree) = kzalloc_obj(*dma_xfer,
+ GFP_KERNEL);
if (!dma_xfer)
return NULL;
@@ -2847,7 +2848,7 @@ i3c_generic_ibi_alloc_pool(struct i3c_dev_desc *dev,
unsigned int i;
int ret;
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return ERR_PTR(-ENOMEM);
@@ -2855,7 +2856,7 @@ i3c_generic_ibi_alloc_pool(struct i3c_dev_desc *dev,
INIT_LIST_HEAD(&pool->free_slots);
INIT_LIST_HEAD(&pool->pending);
- pool->slots = kcalloc(req->num_slots, sizeof(*slot), GFP_KERNEL);
+ pool->slots = kzalloc_objs(*slot, req->num_slots, GFP_KERNEL);
if (!pool->slots) {
ret = -ENOMEM;
goto err_free_pool;
@@ -3218,7 +3219,7 @@ int i3c_dev_request_ibi_locked(struct i3c_dev_desc *dev,
if (dev->ibi)
return -EBUSY;
- ibi = kzalloc(sizeof(*ibi), GFP_KERNEL);
+ ibi = kzalloc_obj(*ibi, GFP_KERNEL);
if (!ibi)
return -ENOMEM;
diff --git a/drivers/i3c/master/adi-i3c-master.c b/drivers/i3c/master/adi-i3c-master.c
index 6380a38e6d29..e60dc306a03e 100644
--- a/drivers/i3c/master/adi-i3c-master.c
+++ b/drivers/i3c/master/adi-i3c-master.c
@@ -187,7 +187,7 @@ static struct adi_i3c_xfer *adi_i3c_master_alloc_xfer(struct adi_i3c_master *mas
{
struct adi_i3c_xfer *xfer;
- xfer = kzalloc(struct_size(xfer, cmds, ncmds), GFP_KERNEL);
+ xfer = kzalloc_flex(*xfer, cmds, ncmds, GFP_KERNEL);
if (!xfer)
return NULL;
@@ -459,7 +459,7 @@ static int adi_i3c_master_attach_i3c_dev(struct i3c_dev_desc *dev)
int slot;
u8 addr;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -531,7 +531,7 @@ static int adi_i3c_master_attach_i2c_dev(struct i2c_dev_desc *dev)
if (slot < 0)
return slot;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/i3c/master/dw-i3c-master.c b/drivers/i3c/master/dw-i3c-master.c
index 7eb09ad10171..e4740cd07c66 100644
--- a/drivers/i3c/master/dw-i3c-master.c
+++ b/drivers/i3c/master/dw-i3c-master.c
@@ -382,7 +382,7 @@ dw_i3c_master_alloc_xfer(struct dw_i3c_master *master, unsigned int ncmds)
{
struct dw_i3c_xfer *xfer;
- xfer = kzalloc(struct_size(xfer, cmds, ncmds), GFP_KERNEL);
+ xfer = kzalloc_flex(*xfer, cmds, ncmds, GFP_KERNEL);
if (!xfer)
return NULL;
@@ -1044,7 +1044,7 @@ static int dw_i3c_master_attach_i3c_dev(struct i3c_dev_desc *dev)
if (pos < 0)
return pos;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -1162,7 +1162,7 @@ static int dw_i3c_master_attach_i2c_dev(struct i2c_dev_desc *dev)
if (pos < 0)
return pos;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/i3c/master/i3c-master-cdns.c b/drivers/i3c/master/i3c-master-cdns.c
index 8eb76b8ca2b0..2f31e7ef3ea8 100644
--- a/drivers/i3c/master/i3c-master-cdns.c
+++ b/drivers/i3c/master/i3c-master-cdns.c
@@ -498,7 +498,7 @@ cdns_i3c_master_alloc_xfer(struct cdns_i3c_master *master, unsigned int ncmds)
{
struct cdns_i3c_xfer *xfer;
- xfer = kzalloc(struct_size(xfer, cmds, ncmds), GFP_KERNEL);
+ xfer = kzalloc_flex(*xfer, cmds, ncmds, GFP_KERNEL);
if (!xfer)
return NULL;
@@ -940,7 +940,7 @@ static int cdns_i3c_master_attach_i3c_dev(struct i3c_dev_desc *dev)
struct cdns_i3c_i2c_dev_data *data;
int slot;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -991,7 +991,7 @@ static int cdns_i3c_master_attach_i2c_dev(struct i2c_dev_desc *dev)
if (slot < 0)
return slot;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/i3c/master/mipi-i3c-hci/core.c b/drivers/i3c/master/mipi-i3c-hci/core.c
index e925584113d1..a527e7305c09 100644
--- a/drivers/i3c/master/mipi-i3c-hci/core.c
+++ b/drivers/i3c/master/mipi-i3c-hci/core.c
@@ -410,7 +410,7 @@ static int i3c_hci_attach_i3c_dev(struct i3c_dev_desc *dev)
struct i3c_hci_dev_data *dev_data;
int ret;
- dev_data = kzalloc(sizeof(*dev_data), GFP_KERNEL);
+ dev_data = kzalloc_obj(*dev_data, GFP_KERNEL);
if (!dev_data)
return -ENOMEM;
if (hci->cmd == &mipi_i3c_hci_cmd_v1) {
@@ -460,7 +460,7 @@ static int i3c_hci_attach_i2c_dev(struct i2c_dev_desc *dev)
if (hci->cmd != &mipi_i3c_hci_cmd_v1)
return 0;
- dev_data = kzalloc(sizeof(*dev_data), GFP_KERNEL);
+ dev_data = kzalloc_obj(*dev_data, GFP_KERNEL);
if (!dev_data)
return -ENOMEM;
ret = mipi_i3c_hci_dat_v1.alloc_entry(hci);
diff --git a/drivers/i3c/master/mipi-i3c-hci/dma.c b/drivers/i3c/master/mipi-i3c-hci/dma.c
index 2e5b4974d431..cdba4c9c839d 100644
--- a/drivers/i3c/master/mipi-i3c-hci/dma.c
+++ b/drivers/i3c/master/mipi-i3c-hci/dma.c
@@ -328,7 +328,7 @@ static int hci_dma_init(struct i3c_hci *hci)
}
if (nr_rings > XFER_RINGS)
nr_rings = XFER_RINGS;
- rings = kzalloc(struct_size(rings, headers, nr_rings), GFP_KERNEL);
+ rings = kzalloc_flex(*rings, headers, nr_rings, GFP_KERNEL);
if (!rings)
return -ENOMEM;
hci->io_data = rings;
@@ -363,8 +363,8 @@ static int hci_dma_init(struct i3c_hci *hci)
rh->resp = dma_alloc_coherent(rings->sysdev, resps_sz,
&rh->resp_dma, GFP_KERNEL);
rh->src_xfers =
- kmalloc_array(rh->xfer_entries, sizeof(*rh->src_xfers),
- GFP_KERNEL);
+ kmalloc_objs(*rh->src_xfers, rh->xfer_entries,
+ GFP_KERNEL);
ret = -ENOMEM;
if (!rh->xfer || !rh->resp || !rh->src_xfers)
goto err_out;
@@ -636,7 +636,7 @@ static int hci_dma_request_ibi(struct i3c_hci *hci, struct i3c_dev_desc *dev,
struct i3c_generic_ibi_pool *pool;
struct hci_dma_dev_ibi_data *dev_ibi;
- dev_ibi = kmalloc(sizeof(*dev_ibi), GFP_KERNEL);
+ dev_ibi = kmalloc_obj(*dev_ibi, GFP_KERNEL);
if (!dev_ibi)
return -ENOMEM;
pool = i3c_generic_ibi_alloc_pool(dev, req);
diff --git a/drivers/i3c/master/mipi-i3c-hci/hci.h b/drivers/i3c/master/mipi-i3c-hci/hci.h
index 6035f74212db..7d57ebba0c24 100644
--- a/drivers/i3c/master/mipi-i3c-hci/hci.h
+++ b/drivers/i3c/master/mipi-i3c-hci/hci.h
@@ -107,7 +107,7 @@ struct hci_xfer {
static inline struct hci_xfer *hci_alloc_xfer(unsigned int n)
{
- return kcalloc(n, sizeof(struct hci_xfer), GFP_KERNEL);
+ return kzalloc_objs(struct hci_xfer, n, GFP_KERNEL);
}
static inline void hci_free_xfer(struct hci_xfer *xfer, unsigned int n)
diff --git a/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c b/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c
index 0f05a15c14c7..4fa3d5cf14d2 100644
--- a/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c
+++ b/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c
@@ -242,7 +242,7 @@ static void mipi_i3c_hci_pci_setup_cell(struct mipi_i3c_hci_pci *hci, int idx,
cell->resources = &data->res;
}
-#define mipi_i3c_hci_pci_alloc(h, x) kcalloc((h)->info->instance_count, sizeof(*(x)), GFP_KERNEL)
+#define mipi_i3c_hci_pci_alloc(h, x) kzalloc_objs(*(x), (h)->info->instance_count, GFP_KERNEL)
static int mipi_i3c_hci_pci_add_instances(struct mipi_i3c_hci_pci *hci)
{
diff --git a/drivers/i3c/master/mipi-i3c-hci/pio.c b/drivers/i3c/master/mipi-i3c-hci/pio.c
index 8e868e81acda..0c333e40378c 100644
--- a/drivers/i3c/master/mipi-i3c-hci/pio.c
+++ b/drivers/i3c/master/mipi-i3c-hci/pio.c
@@ -977,7 +977,7 @@ static int hci_pio_request_ibi(struct i3c_hci *hci, struct i3c_dev_desc *dev,
struct i3c_generic_ibi_pool *pool;
struct hci_pio_dev_ibi_data *dev_ibi;
- dev_ibi = kmalloc(sizeof(*dev_ibi), GFP_KERNEL);
+ dev_ibi = kmalloc_obj(*dev_ibi, GFP_KERNEL);
if (!dev_ibi)
return -ENOMEM;
pool = i3c_generic_ibi_alloc_pool(dev, req);
diff --git a/drivers/i3c/master/renesas-i3c.c b/drivers/i3c/master/renesas-i3c.c
index 528bccc2c68e..a100bbaabf2d 100644
--- a/drivers/i3c/master/renesas-i3c.c
+++ b/drivers/i3c/master/renesas-i3c.c
@@ -345,7 +345,7 @@ static struct renesas_i3c_xfer *renesas_i3c_alloc_xfer(struct renesas_i3c *i3c,
{
struct renesas_i3c_xfer *xfer;
- xfer = kzalloc(struct_size(xfer, cmds, ncmds), GFP_KERNEL);
+ xfer = kzalloc_flex(*xfer, cmds, ncmds, GFP_KERNEL);
if (!xfer)
return NULL;
@@ -874,7 +874,7 @@ static int renesas_i3c_attach_i3c_dev(struct i3c_dev_desc *dev)
if (pos < 0)
return pos;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -984,7 +984,7 @@ static int renesas_i3c_attach_i2c_dev(struct i2c_dev_desc *dev)
if (pos < 0)
return pos;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i3c-master.c
index 857504d36e18..0e3b1a7be6a4 100644
--- a/drivers/i3c/master/svc-i3c-master.c
+++ b/drivers/i3c/master/svc-i3c-master.c
@@ -900,7 +900,7 @@ static int svc_i3c_master_attach_i3c_dev(struct i3c_dev_desc *dev)
if (slot < 0)
return slot;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data) {
svc_i3c_master_release_slot(master, slot);
return -ENOMEM;
@@ -953,7 +953,7 @@ static int svc_i3c_master_attach_i2c_dev(struct i2c_dev_desc *dev)
if (slot < 0)
return slot;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data) {
svc_i3c_master_release_slot(master, slot);
return -ENOMEM;
@@ -1504,7 +1504,7 @@ svc_i3c_master_alloc_xfer(struct svc_i3c_master *master, unsigned int ncmds)
{
struct svc_i3c_xfer *xfer;
- xfer = kzalloc(struct_size(xfer, cmds, ncmds), GFP_KERNEL);
+ xfer = kzalloc_flex(*xfer, cmds, ncmds, GFP_KERNEL);
if (!xfer)
return NULL;
diff --git a/drivers/iio/adc/ti-tsc2046.c b/drivers/iio/adc/ti-tsc2046.c
index 8eb717b11cff..14d95d63f277 100644
--- a/drivers/iio/adc/ti-tsc2046.c
+++ b/drivers/iio/adc/ti-tsc2046.c
@@ -290,15 +290,15 @@ static int tsc2046_adc_read_one(struct tsc2046_adc_priv *priv, int ch_idx,
if (sizeof(struct tsc2046_adc_atom) * max_count > PAGE_SIZE)
return -ENOSPC;
- struct tsc2046_adc_atom *tx_buf __free(kfree) = kcalloc(max_count,
- sizeof(*tx_buf),
- GFP_KERNEL);
+ struct tsc2046_adc_atom *tx_buf __free(kfree) = kzalloc_objs(*tx_buf,
+ max_count,
+ GFP_KERNEL);
if (!tx_buf)
return -ENOMEM;
- struct tsc2046_adc_atom *rx_buf __free(kfree) = kcalloc(max_count,
- sizeof(*rx_buf),
- GFP_KERNEL);
+ struct tsc2046_adc_atom *rx_buf __free(kfree) = kzalloc_objs(*rx_buf,
+ max_count,
+ GFP_KERNEL);
if (!rx_buf)
return -ENOMEM;
diff --git a/drivers/iio/buffer/industrialio-buffer-cb.c b/drivers/iio/buffer/industrialio-buffer-cb.c
index f4ebff968493..7a251b030b7e 100644
--- a/drivers/iio/buffer/industrialio-buffer-cb.c
+++ b/drivers/iio/buffer/industrialio-buffer-cb.c
@@ -60,7 +60,7 @@ struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev,
return ERR_PTR(-EINVAL);
}
- cb_buff = kzalloc(sizeof(*cb_buff), GFP_KERNEL);
+ cb_buff = kzalloc_obj(*cb_buff, GFP_KERNEL);
if (cb_buff == NULL)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iio/buffer/industrialio-buffer-dma.c b/drivers/iio/buffer/industrialio-buffer-dma.c
index 1c94b334f987..2425e1113a7d 100644
--- a/drivers/iio/buffer/industrialio-buffer-dma.c
+++ b/drivers/iio/buffer/industrialio-buffer-dma.c
@@ -174,7 +174,7 @@ iio_dma_buffer_alloc_block(struct iio_dma_buffer_queue *queue, size_t size,
bool fileio)
{
struct iio_dma_buffer_block *block __free(kfree) =
- kzalloc(sizeof(*block), GFP_KERNEL);
+ kzalloc_obj(*block, GFP_KERNEL);
if (!block)
return NULL;
diff --git a/drivers/iio/buffer/industrialio-buffer-dmaengine.c b/drivers/iio/buffer/industrialio-buffer-dmaengine.c
index 0d3454f4adb0..23b4ac7cca9c 100644
--- a/drivers/iio/buffer/industrialio-buffer-dmaengine.c
+++ b/drivers/iio/buffer/industrialio-buffer-dmaengine.c
@@ -224,7 +224,7 @@ static struct iio_buffer *iio_dmaengine_buffer_alloc(struct dma_chan *chan)
if (ret < 0)
return ERR_PTR(ret);
- dmaengine_buffer = kzalloc(sizeof(*dmaengine_buffer), GFP_KERNEL);
+ dmaengine_buffer = kzalloc_obj(*dmaengine_buffer, GFP_KERNEL);
if (!dmaengine_buffer)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iio/buffer/industrialio-hw-consumer.c b/drivers/iio/buffer/industrialio-hw-consumer.c
index 526b2a8d725d..9745b3bd4ac7 100644
--- a/drivers/iio/buffer/industrialio-hw-consumer.c
+++ b/drivers/iio/buffer/industrialio-hw-consumer.c
@@ -60,7 +60,7 @@ static struct hw_consumer_buffer *iio_hw_consumer_get_buffer(
return buf;
}
- buf = kzalloc(struct_size(buf, scan_mask, mask_longs), GFP_KERNEL);
+ buf = kzalloc_flex(*buf, scan_mask, mask_longs, GFP_KERNEL);
if (!buf)
return NULL;
@@ -87,7 +87,7 @@ struct iio_hw_consumer *iio_hw_consumer_alloc(struct device *dev)
struct iio_channel *chan;
int ret;
- hwc = kzalloc(sizeof(*hwc), GFP_KERNEL);
+ hwc = kzalloc_obj(*hwc, GFP_KERNEL);
if (!hwc)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iio/buffer/kfifo_buf.c b/drivers/iio/buffer/kfifo_buf.c
index 38034c8bcc04..73e2cd7e7313 100644
--- a/drivers/iio/buffer/kfifo_buf.c
+++ b/drivers/iio/buffer/kfifo_buf.c
@@ -204,7 +204,7 @@ struct iio_buffer *iio_kfifo_allocate(void)
{
struct iio_kfifo *kf;
- kf = kzalloc(sizeof(*kf), GFP_KERNEL);
+ kf = kzalloc_obj(*kf, GFP_KERNEL);
if (!kf)
return NULL;
diff --git a/drivers/iio/common/ssp_sensors/ssp_spi.c b/drivers/iio/common/ssp_sensors/ssp_spi.c
index b7f093d7345b..5fd9ef819417 100644
--- a/drivers/iio/common/ssp_sensors/ssp_spi.c
+++ b/drivers/iio/common/ssp_sensors/ssp_spi.c
@@ -77,7 +77,7 @@ static struct ssp_msg *ssp_create_msg(u8 cmd, u16 len, u16 opt, u32 data)
struct ssp_msg_header h;
struct ssp_msg *msg;
- msg = kzalloc(sizeof(*msg), GFP_KERNEL);
+ msg = kzalloc_obj(*msg, GFP_KERNEL);
if (!msg)
return NULL;
diff --git a/drivers/iio/dac/ad5360.c b/drivers/iio/dac/ad5360.c
index 8271849b1c83..f95983f81f63 100644
--- a/drivers/iio/dac/ad5360.c
+++ b/drivers/iio/dac/ad5360.c
@@ -439,8 +439,8 @@ static int ad5360_alloc_channels(struct iio_dev *indio_dev)
struct iio_chan_spec *channels;
unsigned int i;
- channels = kcalloc(st->chip_info->num_channels,
- sizeof(struct iio_chan_spec), GFP_KERNEL);
+ channels = kzalloc_objs(struct iio_chan_spec,
+ st->chip_info->num_channels, GFP_KERNEL);
if (!channels)
return -ENOMEM;
diff --git a/drivers/iio/dummy/iio_dummy_evgen.c b/drivers/iio/dummy/iio_dummy_evgen.c
index 16d3f144dda0..84bc2281c03a 100644
--- a/drivers/iio/dummy/iio_dummy_evgen.c
+++ b/drivers/iio/dummy/iio_dummy_evgen.c
@@ -47,7 +47,7 @@ static int iio_dummy_evgen_create(void)
{
int ret;
- iio_evgen = kzalloc(sizeof(*iio_evgen), GFP_KERNEL);
+ iio_evgen = kzalloc_obj(*iio_evgen, GFP_KERNEL);
if (!iio_evgen)
return -ENOMEM;
diff --git a/drivers/iio/dummy/iio_simple_dummy.c b/drivers/iio/dummy/iio_simple_dummy.c
index 8575d4a08963..cba19b6a23cb 100644
--- a/drivers/iio/dummy/iio_simple_dummy.c
+++ b/drivers/iio/dummy/iio_simple_dummy.c
@@ -588,7 +588,7 @@ static struct iio_sw_device *iio_dummy_probe(const char *name)
* parent = &client->dev;
*/
- swd = kzalloc(sizeof(*swd), GFP_KERNEL);
+ swd = kzalloc_obj(*swd, GFP_KERNEL);
if (!swd)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iio/dummy/iio_simple_dummy_buffer.c b/drivers/iio/dummy/iio_simple_dummy_buffer.c
index e35e0596cbfb..5bbfda407bc2 100644
--- a/drivers/iio/dummy/iio_simple_dummy_buffer.c
+++ b/drivers/iio/dummy/iio_simple_dummy_buffer.c
@@ -60,7 +60,7 @@ static irqreturn_t iio_simple_dummy_trigger_h(int irq, void *p)
* - A buffer at the end of the structure accessed via iio_priv()
* that is marked __aligned(IIO_DMA_MINALIGN).
*/
- scan = kzalloc(sizeof(*scan), GFP_KERNEL);
+ scan = kzalloc_obj(*scan, GFP_KERNEL);
if (!scan)
goto done;
diff --git a/drivers/iio/imu/adis_buffer.c b/drivers/iio/imu/adis_buffer.c
index cd3db2388164..222b77781639 100644
--- a/drivers/iio/imu/adis_buffer.c
+++ b/drivers/iio/imu/adis_buffer.c
@@ -33,7 +33,7 @@ static int adis_update_scan_mode_burst(struct iio_dev *indio_dev,
else
burst_max_length = burst_length;
- adis->xfer = kcalloc(2, sizeof(*adis->xfer), GFP_KERNEL);
+ adis->xfer = kzalloc_objs(*adis->xfer, 2, GFP_KERNEL);
if (!adis->xfer)
return -ENOMEM;
@@ -81,7 +81,7 @@ int adis_update_scan_mode(struct iio_dev *indio_dev,
scan_count = indio_dev->scan_bytes / 2;
- adis->xfer = kcalloc(scan_count + 1, sizeof(*adis->xfer), GFP_KERNEL);
+ adis->xfer = kzalloc_objs(*adis->xfer, scan_count + 1, GFP_KERNEL);
if (!adis->xfer)
return -ENOMEM;
diff --git a/drivers/iio/industrialio-buffer.c b/drivers/iio/industrialio-buffer.c
index c6259213e150..ac141289a2f3 100644
--- a/drivers/iio/industrialio-buffer.c
+++ b/drivers/iio/industrialio-buffer.c
@@ -1024,7 +1024,7 @@ static int iio_buffer_add_demux(struct iio_buffer *buffer,
(*p)->to + (*p)->length == out_loc) {
(*p)->length += length;
} else {
- *p = kmalloc(sizeof(**p), GFP_KERNEL);
+ *p = kmalloc_obj(**p, GFP_KERNEL);
if (!(*p))
return -ENOMEM;
(*p)->from = in_loc;
@@ -1478,7 +1478,7 @@ static struct attribute *iio_buffer_wrap_attr(struct iio_buffer *buffer,
struct device_attribute *dattr = to_dev_attr(attr);
struct iio_dev_attr *iio_attr;
- iio_attr = kzalloc(sizeof(*iio_attr), GFP_KERNEL);
+ iio_attr = kzalloc_obj(*iio_attr, GFP_KERNEL);
if (!iio_attr)
return NULL;
@@ -1507,7 +1507,7 @@ static int iio_buffer_register_legacy_sysfs_groups(struct iio_dev *indio_dev,
struct attribute **attrs;
int ret;
- attrs = kcalloc(buffer_attrcount + 1, sizeof(*attrs), GFP_KERNEL);
+ attrs = kzalloc_objs(*attrs, buffer_attrcount + 1, GFP_KERNEL);
if (!attrs)
return -ENOMEM;
@@ -1521,7 +1521,7 @@ static int iio_buffer_register_legacy_sysfs_groups(struct iio_dev *indio_dev,
if (ret)
goto error_free_buffer_attrs;
- attrs = kcalloc(scan_el_attrcount + 1, sizeof(*attrs), GFP_KERNEL);
+ attrs = kzalloc_objs(*attrs, scan_el_attrcount + 1, GFP_KERNEL);
if (!attrs) {
ret = -ENOMEM;
goto error_free_buffer_attrs;
@@ -1674,7 +1674,7 @@ static int iio_buffer_attach_dmabuf(struct iio_dev_buffer_pair *ib,
if (copy_from_user(&fd, user_fd, sizeof(fd)))
return -EFAULT;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
@@ -1862,7 +1862,7 @@ static int iio_buffer_enqueue_dmabuf(struct iio_dev_buffer_pair *ib,
priv = attach->importer_priv;
- fence = kmalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kmalloc_obj(*fence, GFP_KERNEL);
if (!fence) {
ret = -ENOMEM;
goto err_attachment_put;
@@ -2035,7 +2035,7 @@ static long iio_device_buffer_getfd(struct iio_dev *indio_dev, unsigned long arg
goto error_iio_dev_put;
}
- ib = kzalloc(sizeof(*ib), GFP_KERNEL);
+ ib = kzalloc_obj(*ib, GFP_KERNEL);
if (!ib) {
ret = -ENOMEM;
goto error_clear_busy_bit;
@@ -2182,7 +2182,7 @@ static int __iio_buffer_alloc_sysfs_and_mask(struct iio_buffer *buffer,
}
attrn = buffer_attrcount + scan_el_attrcount;
- attr = kcalloc(attrn + 1, sizeof(*attr), GFP_KERNEL);
+ attr = kzalloc_objs(*attr, attrn + 1, GFP_KERNEL);
if (!attr) {
ret = -ENOMEM;
goto error_free_scan_mask;
diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
index 819bfb9c289e..9e3d23368413 100644
--- a/drivers/iio/industrialio-core.c
+++ b/drivers/iio/industrialio-core.c
@@ -1192,7 +1192,7 @@ int __iio_add_chan_devattr(const char *postfix,
int ret;
struct iio_dev_attr *iio_attr, *t;
- iio_attr = kzalloc(sizeof(*iio_attr), GFP_KERNEL);
+ iio_attr = kzalloc_obj(*iio_attr, GFP_KERNEL);
if (iio_attr == NULL)
return -ENOMEM;
ret = __iio_device_attr_init(&iio_attr->dev_attr,
@@ -1586,9 +1586,8 @@ static int iio_device_register_sysfs(struct iio_dev *indio_dev)
attrcount++;
iio_dev_opaque->chan_attr_group.attrs =
- kcalloc(attrcount + 1,
- sizeof(iio_dev_opaque->chan_attr_group.attrs[0]),
- GFP_KERNEL);
+ kzalloc_objs(iio_dev_opaque->chan_attr_group.attrs[0],
+ attrcount + 1, GFP_KERNEL);
if (iio_dev_opaque->chan_attr_group.attrs == NULL) {
ret = -ENOMEM;
goto error_clear_attrs;
@@ -1797,7 +1796,7 @@ static int iio_chrdev_open(struct inode *inode, struct file *filp)
iio_device_get(indio_dev);
- ib = kmalloc(sizeof(*ib), GFP_KERNEL);
+ ib = kmalloc_obj(*ib, GFP_KERNEL);
if (!ib) {
iio_device_put(indio_dev);
clear_bit(IIO_BUSY_BIT_POS, &iio_dev_opaque->flags);
diff --git a/drivers/iio/industrialio-event.c b/drivers/iio/industrialio-event.c
index 06295cfc2da8..43043ea897e0 100644
--- a/drivers/iio/industrialio-event.c
+++ b/drivers/iio/industrialio-event.c
@@ -583,7 +583,7 @@ int iio_device_register_eventset(struct iio_dev *indio_dev)
iio_check_for_dynamic_events(indio_dev)))
return 0;
- ev_int = kzalloc(sizeof(*ev_int), GFP_KERNEL);
+ ev_int = kzalloc_obj(*ev_int, GFP_KERNEL);
if (!ev_int)
return -ENOMEM;
@@ -606,9 +606,8 @@ int iio_device_register_eventset(struct iio_dev *indio_dev)
}
ev_int->group.name = iio_event_group_name;
- ev_int->group.attrs = kcalloc(attrcount + 1,
- sizeof(ev_int->group.attrs[0]),
- GFP_KERNEL);
+ ev_int->group.attrs = kzalloc_objs(ev_int->group.attrs[0],
+ attrcount + 1, GFP_KERNEL);
if (ev_int->group.attrs == NULL) {
ret = -ENOMEM;
goto error_free_setup_event_lines;
diff --git a/drivers/iio/industrialio-gts-helper.c b/drivers/iio/industrialio-gts-helper.c
index f35c36fd4a55..d7b52ca256b2 100644
--- a/drivers/iio/industrialio-gts-helper.c
+++ b/drivers/iio/industrialio-gts-helper.c
@@ -250,12 +250,12 @@ static int iio_gts_alloc_int_table_array(int ***arr, int num_tables, int num_tab
{
int i, **tmp;
- tmp = kcalloc(num_tables, sizeof(**arr), GFP_KERNEL);
+ tmp = kzalloc_objs(**arr, num_tables, GFP_KERNEL);
if (!tmp)
return -ENOMEM;
for (i = 0; i < num_tables; i++) {
- tmp[i] = kcalloc(num_table_items, sizeof(int), GFP_KERNEL);
+ tmp[i] = kzalloc_objs(int, num_table_items, GFP_KERNEL);
if (!tmp[i])
goto err_free;
}
@@ -432,7 +432,7 @@ static int iio_gts_build_avail_time_table(struct iio_gts *gts)
if (!gts->num_itime)
return 0;
- times = kcalloc(gts->num_itime, sizeof(int), GFP_KERNEL);
+ times = kzalloc_objs(int, gts->num_itime, GFP_KERNEL);
if (!times)
return -ENOMEM;
diff --git a/drivers/iio/industrialio-trigger.c b/drivers/iio/industrialio-trigger.c
index 54416a384232..97a808554609 100644
--- a/drivers/iio/industrialio-trigger.c
+++ b/drivers/iio/industrialio-trigger.c
@@ -372,7 +372,7 @@ struct iio_poll_func
va_list vargs;
struct iio_poll_func *pf;
- pf = kmalloc(sizeof(*pf), GFP_KERNEL);
+ pf = kmalloc_obj(*pf, GFP_KERNEL);
if (!pf)
return NULL;
va_start(vargs, fmt);
@@ -557,7 +557,7 @@ struct iio_trigger *viio_trigger_alloc(struct device *parent,
struct iio_trigger *trig;
int i;
- trig = kzalloc(sizeof(*trig), GFP_KERNEL);
+ trig = kzalloc_obj(*trig, GFP_KERNEL);
if (!trig)
return NULL;
diff --git a/drivers/iio/inkern.c b/drivers/iio/inkern.c
index 1e5eb5a41271..44600bc1b879 100644
--- a/drivers/iio/inkern.c
+++ b/drivers/iio/inkern.c
@@ -55,7 +55,7 @@ int iio_map_array_register(struct iio_dev *indio_dev, const struct iio_map *maps
guard(mutex)(&iio_map_list_lock);
while (maps[i].consumer_dev_name) {
- mapi = kzalloc(sizeof(*mapi), GFP_KERNEL);
+ mapi = kzalloc_obj(*mapi, GFP_KERNEL);
if (!mapi) {
ret = -ENOMEM;
goto error_ret;
@@ -188,7 +188,7 @@ static struct iio_channel *fwnode_iio_channel_get(struct fwnode_handle *fwnode,
return ERR_PTR(-EINVAL);
struct iio_channel *channel __free(kfree) =
- kzalloc(sizeof(*channel), GFP_KERNEL);
+ kzalloc_obj(*channel, GFP_KERNEL);
if (!channel)
return ERR_PTR(-ENOMEM);
@@ -302,7 +302,7 @@ static struct iio_channel *fwnode_iio_channel_get_all(struct device *dev)
/* NULL terminated array to save passing size */
struct iio_channel *chans __free(kfree) =
- kcalloc(nummaps + 1, sizeof(*chans), GFP_KERNEL);
+ kzalloc_objs(*chans, nummaps + 1, GFP_KERNEL);
if (!chans)
return ERR_PTR(-ENOMEM);
@@ -474,7 +474,7 @@ struct iio_channel *iio_channel_get_all(struct device *dev)
/* NULL terminated array to save passing size */
struct iio_channel *chans __free(kfree) =
- kcalloc(nummaps + 1, sizeof(*chans), GFP_KERNEL);
+ kzalloc_objs(*chans, nummaps + 1, GFP_KERNEL);
if (!chans)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iio/trigger/iio-trig-hrtimer.c b/drivers/iio/trigger/iio-trig-hrtimer.c
index 82c72baccb62..02f137ace26d 100644
--- a/drivers/iio/trigger/iio-trig-hrtimer.c
+++ b/drivers/iio/trigger/iio-trig-hrtimer.c
@@ -131,7 +131,7 @@ static struct iio_sw_trigger *iio_trig_hrtimer_probe(const char *name)
struct iio_hrtimer_info *trig_info;
int ret;
- trig_info = kzalloc(sizeof(*trig_info), GFP_KERNEL);
+ trig_info = kzalloc_obj(*trig_info, GFP_KERNEL);
if (!trig_info)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iio/trigger/iio-trig-interrupt.c b/drivers/iio/trigger/iio-trig-interrupt.c
index 21c6b6292a72..432c9b2f2c64 100644
--- a/drivers/iio/trigger/iio-trig-interrupt.c
+++ b/drivers/iio/trigger/iio-trig-interrupt.c
@@ -48,7 +48,7 @@ static int iio_interrupt_trigger_probe(struct platform_device *pdev)
goto error_ret;
}
- trig_info = kzalloc(sizeof(*trig_info), GFP_KERNEL);
+ trig_info = kzalloc_obj(*trig_info, GFP_KERNEL);
if (!trig_info) {
ret = -ENOMEM;
goto error_free_trigger;
diff --git a/drivers/iio/trigger/iio-trig-loop.c b/drivers/iio/trigger/iio-trig-loop.c
index 7aaed0611899..8996aaffb3f8 100644
--- a/drivers/iio/trigger/iio-trig-loop.c
+++ b/drivers/iio/trigger/iio-trig-loop.c
@@ -80,7 +80,7 @@ static struct iio_sw_trigger *iio_trig_loop_probe(const char *name)
struct iio_loop_info *trig_info;
int ret;
- trig_info = kzalloc(sizeof(*trig_info), GFP_KERNEL);
+ trig_info = kzalloc_obj(*trig_info, GFP_KERNEL);
if (!trig_info)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iio/trigger/iio-trig-sysfs.c b/drivers/iio/trigger/iio-trig-sysfs.c
index 575d725696a9..f242b3209307 100644
--- a/drivers/iio/trigger/iio-trig-sysfs.c
+++ b/drivers/iio/trigger/iio-trig-sysfs.c
@@ -140,7 +140,7 @@ static int iio_sysfs_trigger_probe(int id)
ret = -EINVAL;
goto err_unlock;
}
- t = kmalloc(sizeof(*t), GFP_KERNEL);
+ t = kmalloc_obj(*t, GFP_KERNEL);
if (t == NULL) {
ret = -ENOMEM;
goto err_unlock;
diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c
index 35ba852a172a..0764d71a9dd5 100644
--- a/drivers/infiniband/core/addr.c
+++ b/drivers/infiniband/core/addr.c
@@ -646,7 +646,7 @@ int rdma_resolve_ip(struct sockaddr *src_addr, const struct sockaddr *dst_addr,
struct addr_req *req;
int ret = 0;
- req = kzalloc(sizeof *req, GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/drivers/infiniband/core/agent.c b/drivers/infiniband/core/agent.c
index 25a060a28301..8b889cb85c59 100644
--- a/drivers/infiniband/core/agent.c
+++ b/drivers/infiniband/core/agent.c
@@ -162,7 +162,7 @@ int ib_agent_port_open(struct ib_device *device, int port_num)
int ret;
/* Create new device info */
- port_priv = kzalloc(sizeof *port_priv, GFP_KERNEL);
+ port_priv = kzalloc_obj(*port_priv, GFP_KERNEL);
if (!port_priv) {
ret = -ENOMEM;
goto error1;
diff --git a/drivers/infiniband/core/cache.c b/drivers/infiniband/core/cache.c
index 0fc1c5bce2f0..c3d542187129 100644
--- a/drivers/infiniband/core/cache.c
+++ b/drivers/infiniband/core/cache.c
@@ -296,14 +296,14 @@ alloc_gid_entry(const struct ib_gid_attr *attr)
struct ib_gid_table_entry *entry;
struct net_device *ndev;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return NULL;
ndev = rcu_dereference_protected(attr->ndev, 1);
if (ndev) {
- entry->ndev_storage = kzalloc(sizeof(*entry->ndev_storage),
- GFP_KERNEL);
+ entry->ndev_storage = kzalloc_obj(*entry->ndev_storage,
+ GFP_KERNEL);
if (!entry->ndev_storage) {
kfree(entry);
return NULL;
@@ -771,12 +771,12 @@ const struct ib_gid_attr *rdma_find_gid_by_filter(
static struct ib_gid_table *alloc_gid_table(int sz)
{
- struct ib_gid_table *table = kzalloc(sizeof(*table), GFP_KERNEL);
+ struct ib_gid_table *table = kzalloc_obj(*table, GFP_KERNEL);
if (!table)
return NULL;
- table->data_vec = kcalloc(sz, sizeof(*table->data_vec), GFP_KERNEL);
+ table->data_vec = kzalloc_objs(*table->data_vec, sz, GFP_KERNEL);
if (!table->data_vec)
goto err_free_table;
@@ -1452,7 +1452,7 @@ ib_cache_update(struct ib_device *device, u32 port, bool update_gids,
if (!rdma_is_port_valid(device, port))
return -EINVAL;
- tprops = kmalloc(sizeof *tprops, GFP_KERNEL);
+ tprops = kmalloc_obj(*tprops, GFP_KERNEL);
if (!tprops)
return -ENOMEM;
@@ -1472,9 +1472,8 @@ ib_cache_update(struct ib_device *device, u32 port, bool update_gids,
update_pkeys &= !!tprops->pkey_tbl_len;
if (update_pkeys) {
- pkey_cache = kmalloc(struct_size(pkey_cache, table,
- tprops->pkey_tbl_len),
- GFP_KERNEL);
+ pkey_cache = kmalloc_flex(*pkey_cache, table,
+ tprops->pkey_tbl_len, GFP_KERNEL);
if (!pkey_cache) {
ret = -ENOMEM;
goto err;
@@ -1583,7 +1582,7 @@ void ib_dispatch_event(const struct ib_event *event)
{
struct ib_update_work *work;
- work = kzalloc(sizeof(*work), GFP_ATOMIC);
+ work = kzalloc_obj(*work, GFP_ATOMIC);
if (!work)
return;
diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
index 024df6ee239d..c2fb11197d02 100644
--- a/drivers/infiniband/core/cm.c
+++ b/drivers/infiniband/core/cm.c
@@ -827,7 +827,7 @@ static struct cm_id_private *cm_alloc_id_priv(struct ib_device *device,
u32 id;
int ret;
- cm_id_priv = kzalloc(sizeof *cm_id_priv, GFP_KERNEL);
+ cm_id_priv = kzalloc_obj(*cm_id_priv, GFP_KERNEL);
if (!cm_id_priv)
return ERR_PTR(-ENOMEM);
@@ -976,7 +976,7 @@ static struct cm_timewait_info *cm_create_timewait_info(__be32 local_id)
{
struct cm_timewait_info *timewait_info;
- timewait_info = kzalloc(sizeof *timewait_info, GFP_KERNEL);
+ timewait_info = kzalloc_obj(*timewait_info, GFP_KERNEL);
if (!timewait_info)
return ERR_PTR(-ENOMEM);
@@ -3902,7 +3902,7 @@ static int cm_establish(struct ib_cm_id *cm_id)
if (!cm_dev)
return -ENODEV;
- work = kmalloc(sizeof *work, GFP_ATOMIC);
+ work = kmalloc_obj(*work, GFP_ATOMIC);
if (!work)
return -ENOMEM;
@@ -4050,7 +4050,7 @@ static void cm_recv_handler(struct ib_mad_agent *mad_agent,
attr_id = be16_to_cpu(mad_recv_wc->recv_buf.mad->mad_hdr.attr_id);
atomic_long_inc(&port->counters[CM_RECV][attr_id - CM_ATTR_ID_OFFSET]);
- work = kmalloc(struct_size(work, path, paths), GFP_KERNEL);
+ work = kmalloc_flex(*work, path, paths, GFP_KERNEL);
if (!work) {
ib_free_recv_mad(mad_recv_wc);
return;
@@ -4348,8 +4348,8 @@ static int cm_add_one(struct ib_device *ib_device)
int count = 0;
u32 i;
- cm_dev = kzalloc(struct_size(cm_dev, port, ib_device->phys_port_cnt),
- GFP_KERNEL);
+ cm_dev = kzalloc_flex(*cm_dev, port, ib_device->phys_port_cnt,
+ GFP_KERNEL);
if (!cm_dev)
return -ENOMEM;
@@ -4366,7 +4366,7 @@ static int cm_add_one(struct ib_device *ib_device)
if (!rdma_cap_ib_cm(ib_device, i))
continue;
- port = kzalloc(sizeof *port, GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port) {
ret = -ENOMEM;
goto error1;
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 0ee855a71ed4..e4bd705cc046 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -490,7 +490,7 @@ static int cma_add_id_to_tree(struct rdma_id_private *node_id_priv)
unsigned long flags;
int result;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return -ENOMEM;
@@ -1013,7 +1013,7 @@ __rdma_create_id(struct net *net, rdma_cm_event_handler event_handler,
{
struct rdma_id_private *id_priv;
- id_priv = kzalloc(sizeof *id_priv, GFP_KERNEL);
+ id_priv = kzalloc_obj(*id_priv, GFP_KERNEL);
if (!id_priv)
return ERR_PTR(-ENOMEM);
@@ -2300,8 +2300,8 @@ cma_ib_new_conn_id(const struct rdma_cm_id *listen_id,
rt = &id->route;
rt->num_pri_alt_paths = ib_event->param.req_rcvd.alternate_path ? 2 : 1;
- rt->path_rec = kmalloc_array(rt->num_pri_alt_paths,
- sizeof(*rt->path_rec), GFP_KERNEL);
+ rt->path_rec = kmalloc_objs(*rt->path_rec, rt->num_pri_alt_paths,
+ GFP_KERNEL);
if (!rt->path_rec)
goto err;
@@ -2880,8 +2880,8 @@ static int route_set_path_rec_inbound(struct cma_work *work,
struct rdma_route *route = &work->id->id.route;
if (!route->path_rec_inbound) {
- route->path_rec_inbound =
- kzalloc(sizeof(*route->path_rec_inbound), GFP_KERNEL);
+ route->path_rec_inbound = kzalloc_obj(*route->path_rec_inbound,
+ GFP_KERNEL);
if (!route->path_rec_inbound)
return -ENOMEM;
}
@@ -2896,8 +2896,8 @@ static int route_set_path_rec_outbound(struct cma_work *work,
struct rdma_route *route = &work->id->id.route;
if (!route->path_rec_outbound) {
- route->path_rec_outbound =
- kzalloc(sizeof(*route->path_rec_outbound), GFP_KERNEL);
+ route->path_rec_outbound = kzalloc_obj(*route->path_rec_outbound,
+ GFP_KERNEL);
if (!route->path_rec_outbound)
return -ENOMEM;
}
@@ -3083,14 +3083,14 @@ static int cma_resolve_ib_route(struct rdma_id_private *id_priv,
struct cma_work *work;
int ret;
- work = kzalloc(sizeof *work, GFP_KERNEL);
+ work = kzalloc_obj(*work, GFP_KERNEL);
if (!work)
return -ENOMEM;
cma_init_resolve_route_work(work, id_priv);
if (!route->path_rec)
- route->path_rec = kmalloc(sizeof *route->path_rec, GFP_KERNEL);
+ route->path_rec = kmalloc_obj(*route->path_rec, GFP_KERNEL);
if (!route->path_rec) {
ret = -ENOMEM;
goto err1;
@@ -3204,7 +3204,7 @@ static int cma_resolve_iw_route(struct rdma_id_private *id_priv)
{
struct cma_work *work;
- work = kzalloc(sizeof *work, GFP_KERNEL);
+ work = kzalloc_obj(*work, GFP_KERNEL);
if (!work)
return -ENOMEM;
@@ -3311,11 +3311,11 @@ static int cma_resolve_iboe_route(struct rdma_id_private *id_priv)
tos = id_priv->tos_set ? id_priv->tos : default_roce_tos;
mutex_unlock(&id_priv->qp_mutex);
- work = kzalloc(sizeof *work, GFP_KERNEL);
+ work = kzalloc_obj(*work, GFP_KERNEL);
if (!work)
return -ENOMEM;
- route->path_rec = kzalloc(sizeof *route->path_rec, GFP_KERNEL);
+ route->path_rec = kzalloc_obj(*route->path_rec, GFP_KERNEL);
if (!route->path_rec) {
ret = -ENOMEM;
goto err1;
@@ -3560,7 +3560,7 @@ static int cma_resolve_loopback(struct rdma_id_private *id_priv)
union ib_gid gid;
int ret;
- work = kzalloc(sizeof *work, GFP_KERNEL);
+ work = kzalloc_obj(*work, GFP_KERNEL);
if (!work)
return -ENOMEM;
@@ -3585,7 +3585,7 @@ static int cma_resolve_ib_addr(struct rdma_id_private *id_priv)
struct cma_work *work;
int ret;
- work = kzalloc(sizeof *work, GFP_KERNEL);
+ work = kzalloc_obj(*work, GFP_KERNEL);
if (!work)
return -ENOMEM;
@@ -3685,7 +3685,7 @@ static int cma_alloc_port(enum rdma_ucm_port_space ps,
lockdep_assert_held(&lock);
- bind_list = kzalloc(sizeof *bind_list, GFP_KERNEL);
+ bind_list = kzalloc_obj(*bind_list, GFP_KERNEL);
if (!bind_list)
return -ENOMEM;
@@ -5100,7 +5100,7 @@ int rdma_join_multicast(struct rdma_cm_id *id, struct sockaddr *addr,
if (id_priv->id.qp_type != IB_QPT_UD)
return -EINVAL;
- mc = kzalloc(sizeof(*mc), GFP_KERNEL);
+ mc = kzalloc_obj(*mc, GFP_KERNEL);
if (!mc)
return -ENOMEM;
@@ -5166,7 +5166,7 @@ static int cma_netdev_change(struct net_device *ndev, struct rdma_id_private *id
memcmp(dev_addr->src_dev_addr, ndev->dev_addr, ndev->addr_len)) {
pr_info("RDMA CM addr change for ndev %s used by id %p\n",
ndev->name, &id_priv->id);
- work = kzalloc(sizeof *work, GFP_KERNEL);
+ work = kzalloc_obj(*work, GFP_KERNEL);
if (!work)
return -ENOMEM;
@@ -5373,14 +5373,14 @@ static int cma_add_one(struct ib_device *device)
if (!cma_supported(device))
return -EOPNOTSUPP;
- cma_dev = kmalloc(sizeof(*cma_dev), GFP_KERNEL);
+ cma_dev = kmalloc_obj(*cma_dev, GFP_KERNEL);
if (!cma_dev)
return -ENOMEM;
cma_dev->device = device;
- cma_dev->default_gid_type = kcalloc(device->phys_port_cnt,
- sizeof(*cma_dev->default_gid_type),
- GFP_KERNEL);
+ cma_dev->default_gid_type = kzalloc_objs(*cma_dev->default_gid_type,
+ device->phys_port_cnt,
+ GFP_KERNEL);
if (!cma_dev->default_gid_type) {
ret = -ENOMEM;
goto free_cma_dev;
@@ -5570,7 +5570,7 @@ static void cma_query_ib_service_handler(int status,
}
id_priv->id.route.service_recs =
- kmalloc_array(num_recs, sizeof(*recs), GFP_KERNEL);
+ kmalloc_objs(*recs, num_recs, GFP_KERNEL);
if (!id_priv->id.route.service_recs) {
status = -ENOMEM;
goto fail;
@@ -5610,7 +5610,7 @@ static int cma_resolve_ib_service(struct rdma_id_private *id_priv,
ib_sa_comp_mask mask = 0;
struct cma_work *work;
- work = kzalloc(sizeof(*work), GFP_KERNEL);
+ work = kzalloc_obj(*work, GFP_KERNEL);
if (!work)
return -ENOMEM;
diff --git a/drivers/infiniband/core/cma_configfs.c b/drivers/infiniband/core/cma_configfs.c
index f2fb2d8a6597..a914edb8ffef 100644
--- a/drivers/infiniband/core/cma_configfs.c
+++ b/drivers/infiniband/core/cma_configfs.c
@@ -210,8 +210,7 @@ static int make_cma_ports(struct cma_dev_group *cma_dev_group,
return -ENODEV;
ports_num = ibdev->phys_port_cnt;
- ports = kcalloc(ports_num, sizeof(*cma_dev_group->ports),
- GFP_KERNEL);
+ ports = kzalloc_objs(*cma_dev_group->ports, ports_num, GFP_KERNEL);
if (!ports)
return -ENOMEM;
@@ -285,7 +284,7 @@ static struct config_group *make_cma_dev(struct config_group *group,
if (!cma_dev)
goto fail;
- cma_dev_group = kzalloc(sizeof(*cma_dev_group), GFP_KERNEL);
+ cma_dev_group = kzalloc_obj(*cma_dev_group, GFP_KERNEL);
if (!cma_dev_group) {
err = -ENOMEM;
diff --git a/drivers/infiniband/core/cq.c b/drivers/infiniband/core/cq.c
index 584537c71545..ffe357d01dce 100644
--- a/drivers/infiniband/core/cq.c
+++ b/drivers/infiniband/core/cq.c
@@ -58,7 +58,7 @@ static void rdma_dim_init(struct ib_cq *cq)
cq->poll_ctx == IB_POLL_DIRECT)
return;
- dim = kzalloc(sizeof(struct dim), GFP_KERNEL);
+ dim = kzalloc_obj(struct dim, GFP_KERNEL);
if (!dim)
return;
@@ -230,7 +230,7 @@ struct ib_cq *__ib_alloc_cq(struct ib_device *dev, void *private, int nr_cqe,
atomic_set(&cq->usecnt, 0);
cq->comp_vector = comp_vector;
- cq->wc = kmalloc_array(IB_POLL_BATCH, sizeof(*cq->wc), GFP_KERNEL);
+ cq->wc = kmalloc_objs(*cq->wc, IB_POLL_BATCH, GFP_KERNEL);
if (!cq->wc)
goto out_free_cq;
diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
index 2f2081e75bce..8d50ee81a6d1 100644
--- a/drivers/infiniband/core/device.c
+++ b/drivers/infiniband/core/device.c
@@ -811,9 +811,8 @@ static int alloc_port_data(struct ib_device *device)
* Therefore port_data is declared as a 1 based array with potential
* empty slots at the beginning.
*/
- pdata_rcu = kzalloc(struct_size(pdata_rcu, pdata,
- size_add(rdma_end_port(device), 1)),
- GFP_KERNEL);
+ pdata_rcu = kzalloc_flex(*pdata_rcu, pdata,
+ size_add(rdma_end_port(device), 1), GFP_KERNEL);
if (!pdata_rcu)
return -ENOMEM;
/*
@@ -958,7 +957,7 @@ static int add_one_compat_dev(struct ib_device *device,
if (ret)
goto done;
- cdev = kzalloc(sizeof(*cdev), GFP_KERNEL);
+ cdev = kzalloc_obj(*cdev, GFP_KERNEL);
if (!cdev) {
ret = -ENOMEM;
goto cdev_err;
diff --git a/drivers/infiniband/core/ib_core_uverbs.c b/drivers/infiniband/core/ib_core_uverbs.c
index 1de72ff4610c..9e26868e50b6 100644
--- a/drivers/infiniband/core/ib_core_uverbs.c
+++ b/drivers/infiniband/core/ib_core_uverbs.c
@@ -87,7 +87,7 @@ int rdma_user_mmap_io(struct ib_ucontext *ucontext, struct vm_area_struct *vma,
return -EINVAL;
lockdep_assert_held(&ufile->device->disassociate_srcu);
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/infiniband/core/iwcm.c b/drivers/infiniband/core/iwcm.c
index eb942ab9c405..73e6849140fb 100644
--- a/drivers/infiniband/core/iwcm.c
+++ b/drivers/infiniband/core/iwcm.c
@@ -171,7 +171,7 @@ static int alloc_work_entries(struct iwcm_id_private *cm_id_priv, int count)
BUG_ON(!list_empty(&cm_id_priv->work_free_list));
while (count--) {
- work = kmalloc(sizeof(struct iwcm_work), GFP_KERNEL);
+ work = kmalloc_obj(struct iwcm_work, GFP_KERNEL);
if (!work) {
dealloc_work_entries(cm_id_priv);
return -ENOMEM;
@@ -242,7 +242,7 @@ struct iw_cm_id *iw_create_cm_id(struct ib_device *device,
{
struct iwcm_id_private *cm_id_priv;
- cm_id_priv = kzalloc(sizeof(*cm_id_priv), GFP_KERNEL);
+ cm_id_priv = kzalloc_obj(*cm_id_priv, GFP_KERNEL);
if (!cm_id_priv)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/core/iwpm_msg.c b/drivers/infiniband/core/iwpm_msg.c
index 3c9a9869212b..69c85249b465 100644
--- a/drivers/infiniband/core/iwpm_msg.c
+++ b/drivers/infiniband/core/iwpm_msg.c
@@ -649,7 +649,7 @@ int iwpm_remote_info_cb(struct sk_buff *skb, struct netlink_callback *cb)
__func__);
return ret;
}
- rem_info = kzalloc(sizeof(struct iwpm_remote_info), GFP_ATOMIC);
+ rem_info = kzalloc_obj(struct iwpm_remote_info, GFP_ATOMIC);
if (!rem_info) {
ret = -ENOMEM;
return ret;
diff --git a/drivers/infiniband/core/iwpm_util.c b/drivers/infiniband/core/iwpm_util.c
index eecb369898f5..96c707a49a71 100644
--- a/drivers/infiniband/core/iwpm_util.c
+++ b/drivers/infiniband/core/iwpm_util.c
@@ -58,13 +58,13 @@ static struct iwpm_admin_data iwpm_admin;
*/
int iwpm_init(u8 nl_client)
{
- iwpm_hash_bucket = kcalloc(IWPM_MAPINFO_HASH_SIZE,
- sizeof(struct hlist_head), GFP_KERNEL);
+ iwpm_hash_bucket = kzalloc_objs(struct hlist_head,
+ IWPM_MAPINFO_HASH_SIZE, GFP_KERNEL);
if (!iwpm_hash_bucket)
return -ENOMEM;
- iwpm_reminfo_bucket = kcalloc(IWPM_REMINFO_HASH_SIZE,
- sizeof(struct hlist_head), GFP_KERNEL);
+ iwpm_reminfo_bucket = kzalloc_objs(struct hlist_head,
+ IWPM_REMINFO_HASH_SIZE, GFP_KERNEL);
if (!iwpm_reminfo_bucket) {
kfree(iwpm_hash_bucket);
return -ENOMEM;
@@ -113,7 +113,7 @@ int iwpm_create_mapinfo(struct sockaddr_storage *local_sockaddr,
unsigned long flags;
int ret = -EINVAL;
- map_info = kzalloc(sizeof(struct iwpm_mapping_info), GFP_KERNEL);
+ map_info = kzalloc_obj(struct iwpm_mapping_info, GFP_KERNEL);
if (!map_info)
return -ENOMEM;
@@ -310,7 +310,7 @@ struct iwpm_nlmsg_request *iwpm_get_nlmsg_request(__u32 nlmsg_seq,
struct iwpm_nlmsg_request *nlmsg_request;
unsigned long flags;
- nlmsg_request = kzalloc(sizeof(struct iwpm_nlmsg_request), gfp);
+ nlmsg_request = kzalloc_obj(struct iwpm_nlmsg_request, gfp);
if (!nlmsg_request)
return NULL;
diff --git a/drivers/infiniband/core/mad.c b/drivers/infiniband/core/mad.c
index 8f26bfb69586..a2b2cd4f8e0a 100644
--- a/drivers/infiniband/core/mad.c
+++ b/drivers/infiniband/core/mad.c
@@ -386,7 +386,7 @@ struct ib_mad_agent *ib_register_mad_agent(struct ib_device *device,
}
/* Allocate structures */
- mad_agent_priv = kzalloc(sizeof *mad_agent_priv, GFP_KERNEL);
+ mad_agent_priv = kzalloc_obj(*mad_agent_priv, GFP_KERNEL);
if (!mad_agent_priv) {
ret = ERR_PTR(-ENOMEM);
goto error1;
@@ -698,7 +698,7 @@ static int handle_outgoing_dr_smp(struct ib_mad_agent_private *mad_agent_priv,
goto out;
}
- local = kmalloc(sizeof *local, GFP_ATOMIC);
+ local = kmalloc_obj(*local, GFP_ATOMIC);
if (!local) {
ret = -ENOMEM;
goto out;
@@ -1400,7 +1400,7 @@ static int method_in_use(struct ib_mad_mgmt_method_table **method,
static int allocate_method_table(struct ib_mad_mgmt_method_table **method)
{
/* Allocate management method table */
- *method = kzalloc(sizeof **method, GFP_ATOMIC);
+ *method = kzalloc_obj(**method, GFP_ATOMIC);
return (*method) ? 0 : (-ENOMEM);
}
@@ -1488,7 +1488,7 @@ static int add_nonoui_reg_req(struct ib_mad_reg_req *mad_reg_req,
class = &port_priv->version[mad_reg_req->mgmt_class_version].class;
if (!*class) {
/* Allocate management class table for "new" class version */
- *class = kzalloc(sizeof **class, GFP_ATOMIC);
+ *class = kzalloc_obj(**class, GFP_ATOMIC);
if (!*class) {
ret = -ENOMEM;
goto error1;
@@ -1553,7 +1553,7 @@ static int add_oui_reg_req(struct ib_mad_reg_req *mad_reg_req,
mad_reg_req->mgmt_class_version].vendor;
if (!*vendor_table) {
/* Allocate mgmt vendor class table for "new" class version */
- vendor = kzalloc(sizeof *vendor, GFP_ATOMIC);
+ vendor = kzalloc_obj(*vendor, GFP_ATOMIC);
if (!vendor)
goto error1;
@@ -1561,7 +1561,7 @@ static int add_oui_reg_req(struct ib_mad_reg_req *mad_reg_req,
}
if (!(*vendor_table)->vendor_class[vclass]) {
/* Allocate table for this management vendor class */
- vendor_class = kzalloc(sizeof *vendor_class, GFP_ATOMIC);
+ vendor_class = kzalloc_obj(*vendor_class, GFP_ATOMIC);
if (!vendor_class)
goto error2;
@@ -2612,7 +2612,7 @@ static bool ib_mad_send_error(struct ib_mad_port_private *port_priv,
struct ib_qp_attr *attr;
/* Transition QP to RTS and fail offending send */
- attr = kmalloc(sizeof *attr, GFP_KERNEL);
+ attr = kmalloc_obj(*attr, GFP_KERNEL);
if (attr) {
attr->qp_state = IB_QPS_RTS;
attr->cur_qp_state = IB_QPS_SQE;
@@ -3042,7 +3042,7 @@ static int ib_mad_port_start(struct ib_mad_port_private *port_priv)
struct ib_qp *qp;
u16 pkey_index;
- attr = kmalloc(sizeof *attr, GFP_KERNEL);
+ attr = kmalloc_obj(*attr, GFP_KERNEL);
if (!attr)
return -ENOMEM;
@@ -3207,7 +3207,7 @@ static int ib_mad_port_open(struct ib_device *device,
return -EFAULT;
/* Create new device info */
- port_priv = kzalloc(sizeof *port_priv, GFP_KERNEL);
+ port_priv = kzalloc_obj(*port_priv, GFP_KERNEL);
if (!port_priv)
return -ENOMEM;
diff --git a/drivers/infiniband/core/mad_rmpp.c b/drivers/infiniband/core/mad_rmpp.c
index 1c5e0eaf1c94..7d577d26f3eb 100644
--- a/drivers/infiniband/core/mad_rmpp.c
+++ b/drivers/infiniband/core/mad_rmpp.c
@@ -279,7 +279,7 @@ create_rmpp_recv(struct ib_mad_agent_private *agent,
struct mad_rmpp_recv *rmpp_recv;
struct ib_mad_hdr *mad_hdr;
- rmpp_recv = kmalloc(sizeof *rmpp_recv, GFP_KERNEL);
+ rmpp_recv = kmalloc_obj(*rmpp_recv, GFP_KERNEL);
if (!rmpp_recv)
return NULL;
diff --git a/drivers/infiniband/core/multicast.c b/drivers/infiniband/core/multicast.c
index a236532a9026..ad2f009886d8 100644
--- a/drivers/infiniband/core/multicast.c
+++ b/drivers/infiniband/core/multicast.c
@@ -570,7 +570,7 @@ static struct mcast_group *acquire_group(struct mcast_port *port,
spin_unlock_irqrestore(&port->lock, flags);
}
- group = kzalloc(sizeof *group, gfp_mask);
+ group = kzalloc_obj(*group, gfp_mask);
if (!group)
return NULL;
@@ -621,7 +621,7 @@ ib_sa_join_multicast(struct ib_sa_client *client,
if (!dev)
return ERR_PTR(-ENODEV);
- member = kmalloc(sizeof *member, gfp_mask);
+ member = kmalloc_obj(*member, gfp_mask);
if (!member)
return ERR_PTR(-ENOMEM);
@@ -823,8 +823,7 @@ static int mcast_add_one(struct ib_device *device)
int i;
int count = 0;
- dev = kmalloc(struct_size(dev, port, device->phys_port_cnt),
- GFP_KERNEL);
+ dev = kmalloc_flex(*dev, port, device->phys_port_cnt, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/infiniband/core/restrack.c b/drivers/infiniband/core/restrack.c
index b097cfcade1c..87a9ac4bf987 100644
--- a/drivers/infiniband/core/restrack.c
+++ b/drivers/infiniband/core/restrack.c
@@ -25,7 +25,7 @@ int rdma_restrack_init(struct ib_device *dev)
struct rdma_restrack_root *rt;
int i;
- dev->res = kcalloc(RDMA_RESTRACK_MAX, sizeof(*rt), GFP_KERNEL);
+ dev->res = kzalloc_objs(*rt, RDMA_RESTRACK_MAX, GFP_KERNEL);
if (!dev->res)
return -ENOMEM;
diff --git a/drivers/infiniband/core/roce_gid_mgmt.c b/drivers/infiniband/core/roce_gid_mgmt.c
index a9f2c6b1b29e..22c83e44091d 100644
--- a/drivers/infiniband/core/roce_gid_mgmt.c
+++ b/drivers/infiniband/core/roce_gid_mgmt.c
@@ -352,7 +352,7 @@ static void enum_netdev_ipv4_ips(struct ib_device *ib_dev,
}
in_dev_for_each_ifa_rcu(ifa, in_dev) {
- struct sin_list *entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ struct sin_list *entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (!entry)
continue;
@@ -395,7 +395,7 @@ static void enum_netdev_ipv6_ips(struct ib_device *ib_dev,
read_lock_bh(&in6_dev->lock);
list_for_each_entry(ifp, &in6_dev->addr_list, if_list) {
- struct sin6_list *entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ struct sin6_list *entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (!entry)
continue;
@@ -556,7 +556,7 @@ struct upper_list {
static int netdev_upper_walk(struct net_device *upper,
struct netdev_nested_priv *priv)
{
- struct upper_list *entry = kmalloc(sizeof(*entry), GFP_ATOMIC);
+ struct upper_list *entry = kmalloc_obj(*entry, GFP_ATOMIC);
struct list_head *upper_list = (struct list_head *)priv->data;
if (!entry)
@@ -660,8 +660,8 @@ static int netdevice_queue_work(struct netdev_event_work_cmd *cmds,
struct net_device *ndev)
{
unsigned int i;
- struct netdev_event_work *ndev_work =
- kmalloc(sizeof(*ndev_work), GFP_KERNEL);
+ struct netdev_event_work *ndev_work = kmalloc_obj(*ndev_work,
+ GFP_KERNEL);
if (!ndev_work)
return NOTIFY_DONE;
@@ -858,7 +858,7 @@ static int addr_event(struct notifier_block *this, unsigned long event,
return NOTIFY_DONE;
}
- work = kmalloc(sizeof(*work), GFP_ATOMIC);
+ work = kmalloc_obj(*work, GFP_ATOMIC);
if (!work)
return NOTIFY_DONE;
diff --git a/drivers/infiniband/core/rw.c b/drivers/infiniband/core/rw.c
index 518095d82d5d..71345ccf1bf8 100644
--- a/drivers/infiniband/core/rw.c
+++ b/drivers/infiniband/core/rw.c
@@ -162,7 +162,7 @@ static int rdma_rw_init_mr_wrs(struct rdma_rw_ctx *ctx, struct ib_qp *qp,
int i, j, ret = 0, count = 0;
ctx->nr_ops = DIV_ROUND_UP(sg_cnt, pages_per_mr);
- ctx->reg = kcalloc(ctx->nr_ops, sizeof(*ctx->reg), GFP_KERNEL);
+ ctx->reg = kzalloc_objs(*ctx->reg, ctx->nr_ops, GFP_KERNEL);
if (!ctx->reg) {
ret = -ENOMEM;
goto out;
@@ -213,8 +213,8 @@ static int rdma_rw_init_mr_wrs_bvec(struct rdma_rw_ctx *ctx, struct ib_qp *qp,
int i, ret, count = 0;
u32 nents = 0;
- ctx->reg = kcalloc(DIV_ROUND_UP(nr_bvec, pages_per_mr),
- sizeof(*ctx->reg), GFP_KERNEL);
+ ctx->reg = kzalloc_objs(*ctx->reg, DIV_ROUND_UP(nr_bvec, pages_per_mr),
+ GFP_KERNEL);
if (!ctx->reg)
return -ENOMEM;
@@ -222,9 +222,8 @@ static int rdma_rw_init_mr_wrs_bvec(struct rdma_rw_ctx *ctx, struct ib_qp *qp,
* Build scatterlist from bvecs using the iterator. This follows
* the pattern from __blk_rq_map_sg.
*/
- ctx->reg[0].sgt.sgl = kmalloc_array(nr_bvec,
- sizeof(*ctx->reg[0].sgt.sgl),
- GFP_KERNEL);
+ ctx->reg[0].sgt.sgl = kmalloc_objs(*ctx->reg[0].sgt.sgl, nr_bvec,
+ GFP_KERNEL);
if (!ctx->reg[0].sgt.sgl) {
ret = -ENOMEM;
goto out_free_reg;
@@ -298,11 +297,11 @@ static int rdma_rw_init_map_wrs(struct rdma_rw_ctx *ctx, struct ib_qp *qp,
ctx->nr_ops = DIV_ROUND_UP(sg_cnt, max_sge);
- ctx->map.sges = sge = kcalloc(sg_cnt, sizeof(*sge), GFP_KERNEL);
+ ctx->map.sges = sge = kzalloc_objs(*sge, sg_cnt, GFP_KERNEL);
if (!ctx->map.sges)
goto out;
- ctx->map.wrs = kcalloc(ctx->nr_ops, sizeof(*ctx->map.wrs), GFP_KERNEL);
+ ctx->map.wrs = kzalloc_objs(*ctx->map.wrs, ctx->nr_ops, GFP_KERNEL);
if (!ctx->map.wrs)
goto out_free_sges;
@@ -757,7 +756,7 @@ int rdma_rw_ctx_signature_init(struct rdma_rw_ctx *ctx, struct ib_qp *qp,
ctx->type = RDMA_RW_SIG_MR;
ctx->nr_ops = 1;
- ctx->reg = kzalloc(sizeof(*ctx->reg), GFP_KERNEL);
+ ctx->reg = kzalloc_obj(*ctx->reg, GFP_KERNEL);
if (!ctx->reg) {
ret = -ENOMEM;
goto out_unmap_prot_sg;
diff --git a/drivers/infiniband/core/sa_query.c b/drivers/infiniband/core/sa_query.c
index c23e9c847314..cbea6fdd0e75 100644
--- a/drivers/infiniband/core/sa_query.c
+++ b/drivers/infiniband/core/sa_query.c
@@ -1607,7 +1607,7 @@ static void ib_sa_service_rec_callback(struct ib_sa_query *sa_query, int status,
return;
}
- rec = kmalloc_array(num_services, sizeof(*rec), GFP_KERNEL);
+ rec = kmalloc_objs(*rec, num_services, GFP_KERNEL);
if (!rec) {
query->callback(-ENOMEM, NULL, 0, query->context);
return;
@@ -1689,7 +1689,7 @@ int ib_sa_path_rec_get(struct ib_sa_client *client,
port = &sa_dev->port[port_num - sa_dev->start_port];
agent = port->agent;
- query = kzalloc(sizeof(*query), gfp_mask);
+ query = kzalloc_obj(*query, gfp_mask);
if (!query)
return -ENOMEM;
@@ -1702,8 +1702,7 @@ int ib_sa_path_rec_get(struct ib_sa_client *client,
} else if (status == PR_OPA_SUPPORTED) {
query->sa_query.flags |= IB_SA_QUERY_OPA;
} else {
- query->conv_pr =
- kmalloc(sizeof(*query->conv_pr), gfp_mask);
+ query->conv_pr = kmalloc_obj(*query->conv_pr, gfp_mask);
if (!query->conv_pr) {
ret = -ENOMEM;
goto err1;
@@ -1814,7 +1813,7 @@ int ib_sa_service_rec_get(struct ib_sa_client *client,
port = &sa_dev->port[port_num - sa_dev->start_port];
agent = port->agent;
- query = kzalloc(sizeof(*query), gfp_mask);
+ query = kzalloc_obj(*query, gfp_mask);
if (!query)
return -ENOMEM;
@@ -1906,7 +1905,7 @@ int ib_sa_mcmember_rec_query(struct ib_sa_client *client,
port = &sa_dev->port[port_num - sa_dev->start_port];
agent = port->agent;
- query = kzalloc(sizeof(*query), gfp_mask);
+ query = kzalloc_obj(*query, gfp_mask);
if (!query)
return -ENOMEM;
@@ -2002,7 +2001,7 @@ int ib_sa_guid_info_rec_query(struct ib_sa_client *client,
port = &sa_dev->port[port_num - sa_dev->start_port];
agent = port->agent;
- query = kzalloc(sizeof(*query), gfp_mask);
+ query = kzalloc_obj(*query, gfp_mask);
if (!query)
return -ENOMEM;
@@ -2131,7 +2130,7 @@ static int ib_sa_classport_info_rec_query(struct ib_sa_port *port,
agent = port->agent;
- query = kzalloc(sizeof(*query), gfp_mask);
+ query = kzalloc_obj(*query, gfp_mask);
if (!query)
return -ENOMEM;
@@ -2189,7 +2188,7 @@ static void update_ib_cpi(struct work_struct *work)
}
spin_unlock_irqrestore(&port->classport_lock, flags);
- cb_context = kmalloc(sizeof(*cb_context), GFP_KERNEL);
+ cb_context = kmalloc_obj(*cb_context, GFP_KERNEL);
if (!cb_context)
goto err_nomem;
@@ -2307,7 +2306,7 @@ static void update_sm_ah(struct work_struct *work)
return;
}
- new_ah = kmalloc(sizeof(*new_ah), GFP_KERNEL);
+ new_ah = kmalloc_obj(*new_ah, GFP_KERNEL);
if (!new_ah)
return;
@@ -2415,9 +2414,8 @@ static int ib_sa_add_one(struct ib_device *device)
s = rdma_start_port(device);
e = rdma_end_port(device);
- sa_dev = kzalloc(struct_size(sa_dev, port,
- size_add(size_sub(e, s), 1)),
- GFP_KERNEL);
+ sa_dev = kzalloc_flex(*sa_dev, port, size_add(size_sub(e, s), 1),
+ GFP_KERNEL);
if (!sa_dev)
return -ENOMEM;
diff --git a/drivers/infiniband/core/security.c b/drivers/infiniband/core/security.c
index 3512c2e54efc..deccd7b7eb51 100644
--- a/drivers/infiniband/core/security.c
+++ b/drivers/infiniband/core/security.c
@@ -258,7 +258,7 @@ static int port_pkey_list_insert(struct ib_port_pkey *pp)
if (!pkey) {
bool found = false;
- pkey = kzalloc(sizeof(*pkey), GFP_KERNEL);
+ pkey = kzalloc_obj(*pkey, GFP_KERNEL);
if (!pkey)
return -ENOMEM;
@@ -335,7 +335,7 @@ static struct ib_ports_pkeys *get_new_pps(const struct ib_qp *qp,
struct ib_ports_pkeys *new_pps;
struct ib_ports_pkeys *qp_pps = qp->qp_sec->ports_pkeys;
- new_pps = kzalloc(sizeof(*new_pps), GFP_KERNEL);
+ new_pps = kzalloc_obj(*new_pps, GFP_KERNEL);
if (!new_pps)
return NULL;
@@ -428,7 +428,7 @@ int ib_create_qp_security(struct ib_qp *qp, struct ib_device *dev)
if (!is_ib)
return 0;
- qp->qp_sec = kzalloc(sizeof(*qp->qp_sec), GFP_KERNEL);
+ qp->qp_sec = kzalloc_obj(*qp->qp_sec, GFP_KERNEL);
if (!qp->qp_sec)
return -ENOMEM;
diff --git a/drivers/infiniband/core/sysfs.c b/drivers/infiniband/core/sysfs.c
index bfaca07933d8..c2becb0b39a2 100644
--- a/drivers/infiniband/core/sysfs.c
+++ b/drivers/infiniband/core/sysfs.c
@@ -515,8 +515,8 @@ static int get_perf_mad(struct ib_device *dev, int port_num, __be16 attr,
if (!dev->ops.process_mad)
return -ENOSYS;
- in_mad = kzalloc(sizeof(*in_mad), GFP_KERNEL);
- out_mad = kzalloc(sizeof(*out_mad), GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kzalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad) {
ret = -ENOMEM;
goto out;
@@ -855,12 +855,12 @@ alloc_hw_stats_device(struct ib_device *ibdev)
* Two extra attribue elements here, one for the lifespan entry and
* one to NULL terminate the list for the sysfs core code
*/
- data = kzalloc(struct_size(data, attrs, size_add(stats->num_counters, 1)),
- GFP_KERNEL);
+ data = kzalloc_flex(*data, attrs, size_add(stats->num_counters, 1),
+ GFP_KERNEL);
if (!data)
goto err_free_stats;
- data->group.attrs = kcalloc(stats->num_counters + 2,
- sizeof(*data->group.attrs), GFP_KERNEL);
+ data->group.attrs = kzalloc_objs(*data->group.attrs,
+ stats->num_counters + 2, GFP_KERNEL);
if (!data->group.attrs)
goto err_free_data;
@@ -962,12 +962,12 @@ alloc_hw_stats_port(struct ib_port *port, struct attribute_group *group)
* Two extra attribue elements here, one for the lifespan entry and
* one to NULL terminate the list for the sysfs core code
*/
- data = kzalloc(struct_size(data, attrs, size_add(stats->num_counters, 1)),
- GFP_KERNEL);
+ data = kzalloc_flex(*data, attrs, size_add(stats->num_counters, 1),
+ GFP_KERNEL);
if (!data)
goto err_free_stats;
- group->attrs = kcalloc(stats->num_counters + 2,
- sizeof(*group->attrs), GFP_KERNEL);
+ group->attrs = kzalloc_objs(*group->attrs, stats->num_counters + 2,
+ GFP_KERNEL);
if (!group->attrs)
goto err_free_data;
@@ -1054,7 +1054,7 @@ alloc_port_table_group(const char *name, struct attribute_group *group,
struct attribute **attr_list;
int i;
- attr_list = kcalloc(num + 1, sizeof(*attr_list), GFP_KERNEL);
+ attr_list = kzalloc_objs(*attr_list, num + 1, GFP_KERNEL);
if (!attr_list)
return -ENOMEM;
@@ -1092,9 +1092,9 @@ static int setup_gid_attrs(struct ib_port *port,
struct gid_attr_group *gid_attr_group;
int ret;
- gid_attr_group = kzalloc(struct_size(gid_attr_group, attrs_list,
- size_mul(attr->gid_tbl_len, 2)),
- GFP_KERNEL);
+ gid_attr_group = kzalloc_flex(*gid_attr_group, attrs_list,
+ size_mul(attr->gid_tbl_len, 2),
+ GFP_KERNEL);
if (!gid_attr_group)
return -ENOMEM;
gid_attr_group->port = port;
@@ -1157,9 +1157,9 @@ static struct ib_port *setup_port(struct ib_core_device *coredev, int port_num,
struct ib_port *p;
int ret;
- p = kvzalloc(struct_size(p, attrs_list,
- size_add(attr->gid_tbl_len, attr->pkey_tbl_len)),
- GFP_KERNEL);
+ p = kvzalloc_flex(*p, attrs_list,
+ size_add(attr->gid_tbl_len, attr->pkey_tbl_len),
+ GFP_KERNEL);
if (!p)
return ERR_PTR(-ENOMEM);
p->ibdev = device;
diff --git a/drivers/infiniband/core/ucaps.c b/drivers/infiniband/core/ucaps.c
index de5cb8bf0a61..d5524f69b981 100644
--- a/drivers/infiniband/core/ucaps.c
+++ b/drivers/infiniband/core/ucaps.c
@@ -160,7 +160,7 @@ int ib_create_ucap(enum rdma_user_cap type)
return 0;
}
- ucap = kzalloc(sizeof(*ucap), GFP_KERNEL);
+ ucap = kzalloc_obj(*ucap, GFP_KERNEL);
if (!ucap) {
ret = -ENOMEM;
goto unlock;
diff --git a/drivers/infiniband/core/ucma.c b/drivers/infiniband/core/ucma.c
index ec3be65a2b88..f84c6a02eaff 100644
--- a/drivers/infiniband/core/ucma.c
+++ b/drivers/infiniband/core/ucma.c
@@ -195,7 +195,7 @@ static struct ucma_context *ucma_alloc_ctx(struct ucma_file *file)
{
struct ucma_context *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return NULL;
@@ -262,7 +262,7 @@ static struct ucma_event *ucma_create_uevent(struct ucma_context *ctx,
{
struct ucma_event *uevent;
- uevent = kzalloc(sizeof(*uevent), GFP_KERNEL);
+ uevent = kzalloc_obj(*uevent, GFP_KERNEL);
if (!uevent)
return NULL;
@@ -1529,7 +1529,7 @@ static ssize_t ucma_process_join(struct ucma_file *file,
if (IS_ERR(ctx))
return PTR_ERR(ctx);
- mc = kzalloc(sizeof(*mc), GFP_KERNEL);
+ mc = kzalloc_obj(*mc, GFP_KERNEL);
if (!mc) {
ret = -ENOMEM;
goto err_put_ctx;
@@ -1770,7 +1770,7 @@ static ssize_t ucma_write_cm_event(struct ucma_file *file,
event.status = cmd.status;
event.param.arg = cmd.param.arg;
- uevent = kzalloc(sizeof(*uevent), GFP_KERNEL);
+ uevent = kzalloc_obj(*uevent, GFP_KERNEL);
if (!uevent) {
ret = -ENOMEM;
goto out;
@@ -1885,7 +1885,7 @@ static int ucma_open(struct inode *inode, struct file *filp)
{
struct ucma_file *file;
- file = kmalloc(sizeof *file, GFP_KERNEL);
+ file = kmalloc_obj(*file, GFP_KERNEL);
if (!file)
return -ENOMEM;
diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c
index 8137031c2a65..8863fd1b85d8 100644
--- a/drivers/infiniband/core/umem.c
+++ b/drivers/infiniband/core/umem.c
@@ -189,7 +189,7 @@ struct ib_umem *ib_umem_get(struct ib_device *device, unsigned long addr,
if (access & IB_ACCESS_ON_DEMAND)
return ERR_PTR(-EOPNOTSUPP);
- umem = kzalloc(sizeof(*umem), GFP_KERNEL);
+ umem = kzalloc_obj(*umem, GFP_KERNEL);
if (!umem)
return ERR_PTR(-ENOMEM);
umem->ibdev = device;
diff --git a/drivers/infiniband/core/umem_dmabuf.c b/drivers/infiniband/core/umem_dmabuf.c
index 939da49b0dcc..dc35dbe18951 100644
--- a/drivers/infiniband/core/umem_dmabuf.c
+++ b/drivers/infiniband/core/umem_dmabuf.c
@@ -136,7 +136,7 @@ ib_umem_dmabuf_get_with_dma_device(struct ib_device *device,
if (dmabuf->size < end)
goto out_release_dmabuf;
- umem_dmabuf = kzalloc(sizeof(*umem_dmabuf), GFP_KERNEL);
+ umem_dmabuf = kzalloc_obj(*umem_dmabuf, GFP_KERNEL);
if (!umem_dmabuf) {
ret = ERR_PTR(-ENOMEM);
goto out_release_dmabuf;
diff --git a/drivers/infiniband/core/umem_odp.c b/drivers/infiniband/core/umem_odp.c
index 32267258a19c..d14bd597a2b7 100644
--- a/drivers/infiniband/core/umem_odp.c
+++ b/drivers/infiniband/core/umem_odp.c
@@ -140,7 +140,7 @@ struct ib_umem_odp *ib_umem_odp_alloc_implicit(struct ib_device *device,
if (access & IB_ACCESS_HUGETLB)
return ERR_PTR(-EINVAL);
- umem_odp = kzalloc(sizeof(*umem_odp), GFP_KERNEL);
+ umem_odp = kzalloc_obj(*umem_odp, GFP_KERNEL);
if (!umem_odp)
return ERR_PTR(-ENOMEM);
umem = &umem_odp->umem;
@@ -181,7 +181,7 @@ ib_umem_odp_alloc_child(struct ib_umem_odp *root, unsigned long addr,
if (WARN_ON(!root->is_implicit_odp))
return ERR_PTR(-EINVAL);
- odp_data = kzalloc(sizeof(*odp_data), GFP_KERNEL);
+ odp_data = kzalloc_obj(*odp_data, GFP_KERNEL);
if (!odp_data)
return ERR_PTR(-ENOMEM);
umem = &odp_data->umem;
@@ -241,7 +241,7 @@ struct ib_umem_odp *ib_umem_odp_get(struct ib_device *device,
if (WARN_ON_ONCE(!(access & IB_ACCESS_ON_DEMAND)))
return ERR_PTR(-EINVAL);
- umem_odp = kzalloc(sizeof(struct ib_umem_odp), GFP_KERNEL);
+ umem_odp = kzalloc_obj(struct ib_umem_odp, GFP_KERNEL);
if (!umem_odp)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/core/user_mad.c b/drivers/infiniband/core/user_mad.c
index 2f7e3c4483fc..0ff2b7ba6b79 100644
--- a/drivers/infiniband/core/user_mad.c
+++ b/drivers/infiniband/core/user_mad.c
@@ -247,7 +247,7 @@ static void recv_handler(struct ib_mad_agent *agent,
if (mad_recv_wc->wc->status != IB_WC_SUCCESS)
goto err1;
- packet = kzalloc(sizeof *packet, GFP_KERNEL);
+ packet = kzalloc_obj(*packet, GFP_KERNEL);
if (!packet)
goto err1;
@@ -1018,7 +1018,7 @@ static int ib_umad_open(struct inode *inode, struct file *filp)
goto out;
}
- file = kzalloc(sizeof(*file), GFP_KERNEL);
+ file = kzalloc_obj(*file, GFP_KERNEL);
if (!file) {
ret = -ENOMEM;
goto out;
@@ -1396,9 +1396,8 @@ static int ib_umad_add_one(struct ib_device *device)
s = rdma_start_port(device);
e = rdma_end_port(device);
- umad_dev = kzalloc(struct_size(umad_dev, ports,
- size_add(size_sub(e, s), 1)),
- GFP_KERNEL);
+ umad_dev = kzalloc_flex(*umad_dev, ports, size_add(size_sub(e, s), 1),
+ GFP_KERNEL);
if (!umad_dev)
return -ENOMEM;
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
index f4616deeca54..7aa7f1692c73 100644
--- a/drivers/infiniband/core/uverbs_cmd.c
+++ b/drivers/infiniband/core/uverbs_cmd.c
@@ -510,7 +510,7 @@ static int xrcd_table_insert(struct ib_uverbs_device *dev,
struct rb_node **p = &dev->xrcd_tree.rb_node;
struct rb_node *parent = NULL;
- entry = kmalloc(sizeof *entry, GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -1672,8 +1672,8 @@ static int ib_uverbs_query_qp(struct uverbs_attr_bundle *attrs)
if (ret)
return ret;
- attr = kmalloc(sizeof *attr, GFP_KERNEL);
- init_attr = kmalloc(sizeof *init_attr, GFP_KERNEL);
+ attr = kmalloc_obj(*attr, GFP_KERNEL);
+ init_attr = kmalloc_obj(*init_attr, GFP_KERNEL);
if (!attr || !init_attr) {
ret = -ENOMEM;
goto out;
@@ -1780,7 +1780,7 @@ static int modify_qp(struct uverbs_attr_bundle *attrs,
struct ib_qp *qp;
int ret;
- attr = kzalloc(sizeof(*attr), GFP_KERNEL);
+ attr = kzalloc_obj(*attr, GFP_KERNEL);
if (!attr)
return -ENOMEM;
@@ -2525,7 +2525,7 @@ static int ib_uverbs_attach_mcast(struct uverbs_attr_bundle *attrs)
goto out_put;
}
- mcast = kmalloc(sizeof *mcast, GFP_KERNEL);
+ mcast = kmalloc_obj(*mcast, GFP_KERNEL);
if (!mcast) {
ret = -ENOMEM;
goto out_put;
@@ -2595,7 +2595,7 @@ struct ib_uflow_resources *flow_resources_alloc(size_t num_specs)
{
struct ib_uflow_resources *resources;
- resources = kzalloc(sizeof(*resources), GFP_KERNEL);
+ resources = kzalloc_obj(*resources, GFP_KERNEL);
if (!resources)
return NULL;
@@ -2604,9 +2604,9 @@ struct ib_uflow_resources *flow_resources_alloc(size_t num_specs)
goto out;
resources->counters =
- kcalloc(num_specs, sizeof(*resources->counters), GFP_KERNEL);
+ kzalloc_objs(*resources->counters, num_specs, GFP_KERNEL);
resources->collection =
- kcalloc(num_specs, sizeof(*resources->collection), GFP_KERNEL);
+ kzalloc_objs(*resources->collection, num_specs, GFP_KERNEL);
if (!resources->counters || !resources->collection)
goto err;
@@ -3116,7 +3116,7 @@ static int ib_uverbs_ex_create_rwq_ind_table(struct uverbs_attr_bundle *attrs)
if (err)
goto err_free;
- wqs = kcalloc(num_wq_handles, sizeof(*wqs), GFP_KERNEL);
+ wqs = kzalloc_objs(*wqs, num_wq_handles, GFP_KERNEL);
if (!wqs) {
err = -ENOMEM;
goto err_free;
@@ -3292,8 +3292,8 @@ static int ib_uverbs_ex_create_flow(struct uverbs_attr_bundle *attrs)
goto err_put;
}
- flow_attr = kzalloc(struct_size(flow_attr, flows,
- cmd.flow_attr.num_of_specs), GFP_KERNEL);
+ flow_attr = kzalloc_flex(*flow_attr, flows, cmd.flow_attr.num_of_specs,
+ GFP_KERNEL);
if (!flow_attr) {
err = -ENOMEM;
goto err_put;
diff --git a/drivers/infiniband/core/uverbs_ioctl.c b/drivers/infiniband/core/uverbs_ioctl.c
index f80da6a67e24..f37bb447c230 100644
--- a/drivers/infiniband/core/uverbs_ioctl.c
+++ b/drivers/infiniband/core/uverbs_ioctl.c
@@ -120,7 +120,7 @@ __malloc void *_uverbs_alloc(struct uverbs_attr_bundle *bundle, size_t size,
if (new_used > pbundle->internal_avail) {
struct bundle_alloc_head *buf;
- buf = kvmalloc(struct_size(buf, data, size), flags);
+ buf = kvmalloc_flex(*buf, data, size, flags);
if (!buf)
return ERR_PTR(-ENOMEM);
buf->next = pbundle->allocated_mem;
diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c
index 973fe2c7ef53..2a3c8a5ead1c 100644
--- a/drivers/infiniband/core/uverbs_main.c
+++ b/drivers/infiniband/core/uverbs_main.c
@@ -382,7 +382,7 @@ void ib_uverbs_comp_handler(struct ib_cq *cq, void *cq_context)
return;
}
- entry = kmalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kmalloc_obj(*entry, GFP_ATOMIC);
if (!entry) {
spin_unlock_irqrestore(&ev_queue->lock, flags);
return;
@@ -417,7 +417,7 @@ void ib_uverbs_async_handler(struct ib_uverbs_async_event_file *async_file,
return;
}
- entry = kmalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kmalloc_obj(*entry, GFP_ATOMIC);
if (!entry) {
spin_unlock_irqrestore(&async_file->ev_queue.lock, flags);
return;
@@ -737,7 +737,7 @@ static void rdma_umap_open(struct vm_area_struct *vma)
if (!ufile->ucontext)
goto out_unlock;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
goto out_unlock;
rdma_umap_priv_init(priv, vma, opriv->entry);
@@ -966,7 +966,7 @@ static int ib_uverbs_open(struct inode *inode, struct file *filp)
}
}
- file = kzalloc(sizeof(*file), GFP_KERNEL);
+ file = kzalloc_obj(*file, GFP_KERNEL);
if (!file) {
ret = -ENOMEM;
if (module_dependent)
@@ -1154,7 +1154,7 @@ static int ib_uverbs_add_one(struct ib_device *device)
device->type == RDMA_DEVICE_TYPE_SMI)
return -EOPNOTSUPP;
- uverbs_dev = kzalloc(sizeof(*uverbs_dev), GFP_KERNEL);
+ uverbs_dev = kzalloc_obj(*uverbs_dev, GFP_KERNEL);
if (!uverbs_dev)
return -ENOMEM;
diff --git a/drivers/infiniband/core/uverbs_uapi.c b/drivers/infiniband/core/uverbs_uapi.c
index 38d0bbbee796..7e8b04658526 100644
--- a/drivers/infiniband/core/uverbs_uapi.c
+++ b/drivers/infiniband/core/uverbs_uapi.c
@@ -445,8 +445,8 @@ static int uapi_finalize(struct uverbs_api *uapi)
uapi->notsupp_method.handler = ib_uverbs_notsupp;
uapi->num_write = max_write + 1;
uapi->num_write_ex = max_write_ex + 1;
- data = kmalloc_array(uapi->num_write + uapi->num_write_ex,
- sizeof(*uapi->write_methods), GFP_KERNEL);
+ data = kmalloc_objs(*uapi->write_methods,
+ uapi->num_write + uapi->num_write_ex, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -648,7 +648,7 @@ struct uverbs_api *uverbs_alloc_api(struct ib_device *ibdev)
struct uverbs_api *uapi;
int rc;
- uapi = kzalloc(sizeof(*uapi), GFP_KERNEL);
+ uapi = kzalloc_obj(*uapi, GFP_KERNEL);
if (!uapi)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
index a2670a031faf..2e98f1e2e53f 100644
--- a/drivers/infiniband/core/verbs.c
+++ b/drivers/infiniband/core/verbs.c
@@ -1186,7 +1186,7 @@ static struct ib_qp *__ib_open_qp(struct ib_qp *real_qp,
unsigned long flags;
int err;
- qp = kzalloc(sizeof *qp, GFP_KERNEL);
+ qp = kzalloc_obj(*qp, GFP_KERNEL);
if (!qp)
return ERR_PTR(-ENOMEM);
@@ -2420,7 +2420,7 @@ struct ib_mr *ib_alloc_mr_integrity(struct ib_pd *pd,
goto out;
}
- sig_attrs = kzalloc(sizeof(struct ib_sig_attrs), GFP_KERNEL);
+ sig_attrs = kzalloc_obj(struct ib_sig_attrs, GFP_KERNEL);
if (!sig_attrs) {
mr = ERR_PTR(-ENOMEM);
goto out;
@@ -3205,7 +3205,7 @@ struct rdma_hw_stats *rdma_alloc_hw_stats_struct(
{
struct rdma_hw_stats *stats;
- stats = kzalloc(struct_size(stats, value, num_counters), GFP_KERNEL);
+ stats = kzalloc_flex(*stats, value, num_counters, GFP_KERNEL);
if (!stats)
return NULL;
diff --git a/drivers/infiniband/hw/bng_re/bng_dev.c b/drivers/infiniband/hw/bng_re/bng_dev.c
index d8f8d7f7075f..d43fa9a5b109 100644
--- a/drivers/infiniband/hw/bng_re/bng_dev.c
+++ b/drivers/infiniband/hw/bng_re/bng_dev.c
@@ -77,7 +77,7 @@ static int bng_re_setup_chip_ctx(struct bng_re_dev *rdev)
aux_dev = rdev->aux_dev;
rdev->bng_res.pdev = aux_dev->pdev;
rdev->rcfw.res = &rdev->bng_res;
- chip_ctx = kzalloc(sizeof(*chip_ctx), GFP_KERNEL);
+ chip_ctx = kzalloc_obj(*chip_ctx, GFP_KERNEL);
if (!chip_ctx)
return -ENOMEM;
chip_ctx->chip_num = aux_dev->chip_num;
@@ -85,7 +85,7 @@ static int bng_re_setup_chip_ctx(struct bng_re_dev *rdev)
rdev->chip_ctx = chip_ctx;
rdev->bng_res.cctx = rdev->chip_ctx;
- rdev->dev_attr = kzalloc(sizeof(*rdev->dev_attr), GFP_KERNEL);
+ rdev->dev_attr = kzalloc_obj(*rdev->dev_attr, GFP_KERNEL);
if (!rdev->dev_attr)
goto free_chip_ctx;
rdev->bng_res.dattr = rdev->dev_attr;
@@ -337,7 +337,7 @@ static int bng_re_dev_init(struct bng_re_dev *rdev)
}
/* Allocate nq record memory */
- rdev->nqr = kzalloc(sizeof(*rdev->nqr), GFP_KERNEL);
+ rdev->nqr = kzalloc_obj(*rdev->nqr, GFP_KERNEL);
if (!rdev->nqr) {
bng_re_destroy_chip_ctx(rdev);
bnge_unregister_dev(rdev->aux_dev);
@@ -464,7 +464,7 @@ static int bng_re_probe(struct auxiliary_device *adev,
struct bng_re_en_dev_info *en_info;
int rc;
- en_info = kzalloc(sizeof(*en_info), GFP_KERNEL);
+ en_info = kzalloc_obj(*en_info, GFP_KERNEL);
if (!en_info)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/bng_re/bng_fw.c b/drivers/infiniband/hw/bng_re/bng_fw.c
index 01b3e1cbe719..cd2d2670700d 100644
--- a/drivers/infiniband/hw/bng_re/bng_fw.c
+++ b/drivers/infiniband/hw/bng_re/bng_fw.c
@@ -98,8 +98,8 @@ int bng_re_alloc_fw_channel(struct bng_re_res *res,
goto fail;
}
- rcfw->crsqe_tbl = kcalloc(cmdq->hwq.max_elements,
- sizeof(*rcfw->crsqe_tbl), GFP_KERNEL);
+ rcfw->crsqe_tbl = kzalloc_objs(*rcfw->crsqe_tbl, cmdq->hwq.max_elements,
+ GFP_KERNEL);
if (!rcfw->crsqe_tbl)
goto fail;
diff --git a/drivers/infiniband/hw/bnxt_re/debugfs.c b/drivers/infiniband/hw/bnxt_re/debugfs.c
index e025217861c2..e43698156c61 100644
--- a/drivers/infiniband/hw/bnxt_re/debugfs.c
+++ b/drivers/infiniband/hw/bnxt_re/debugfs.c
@@ -467,7 +467,7 @@ static void bnxt_re_init_cq_coal_debugfs(struct bnxt_re_dev *rdev)
if (!_is_cq_coalescing_supported(rdev->dev_attr->dev_cap_flags2))
return;
- dbg_cq_coal_params = kzalloc(sizeof(*dbg_cq_coal_params), GFP_KERNEL);
+ dbg_cq_coal_params = kzalloc_obj(*dbg_cq_coal_params, GFP_KERNEL);
if (!dbg_cq_coal_params)
return;
@@ -497,7 +497,7 @@ void bnxt_re_debugfs_add_pdev(struct bnxt_re_dev *rdev)
bnxt_re_debugfs_add_info(rdev);
- rdev->cc_config_params = kzalloc(sizeof(*cc_params), GFP_KERNEL);
+ rdev->cc_config_params = kzalloc_obj(*cc_params, GFP_KERNEL);
for (i = 0; i < BNXT_RE_CC_PARAM_GEN0; i++) {
struct bnxt_re_cc_param *tmp_params = &rdev->cc_config_params->gen0_parms[i];
diff --git a/drivers/infiniband/hw/bnxt_re/ib_verbs.c b/drivers/infiniband/hw/bnxt_re/ib_verbs.c
index be3c3f1f87f7..ea1518ba5c02 100644
--- a/drivers/infiniband/hw/bnxt_re/ib_verbs.c
+++ b/drivers/infiniband/hw/bnxt_re/ib_verbs.c
@@ -461,7 +461,7 @@ int bnxt_re_add_gid(const struct ib_gid_attr *attr, void **context)
return rc;
}
- ctx = kmalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kmalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
ctx_tbl = sgid_tbl->ctx;
@@ -593,7 +593,7 @@ static int bnxt_re_create_fence_mr(struct bnxt_re_pd *pd)
fence->dma_addr = dma_addr;
/* Allocate a MR */
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr) {
rc = -ENOMEM;
goto fail;
@@ -651,7 +651,7 @@ bnxt_re_mmap_entry_insert(struct bnxt_re_ucontext *uctx, u64 mem_offset,
struct bnxt_re_user_mmap_entry *entry;
int ret;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return NULL;
@@ -1190,7 +1190,7 @@ static struct bnxt_re_ah *bnxt_re_create_shadow_qp_ah
union ib_gid sgid;
int rc;
- ah = kzalloc(sizeof(*ah), GFP_KERNEL);
+ ah = kzalloc_obj(*ah, GFP_KERNEL);
if (!ah)
return NULL;
@@ -1237,7 +1237,7 @@ static struct bnxt_re_qp *bnxt_re_create_shadow_qp
struct bnxt_re_qp *qp;
int rc;
- qp = kzalloc(sizeof(*qp), GFP_KERNEL);
+ qp = kzalloc_obj(*qp, GFP_KERNEL);
if (!qp)
return NULL;
@@ -1547,8 +1547,8 @@ static int bnxt_re_create_shadow_gsi(struct bnxt_re_qp *qp,
rdev = qp->rdev;
/* Create a shadow QP to handle the QP1 traffic */
- sqp_tbl = kcalloc(BNXT_RE_MAX_GSI_SQP_ENTRIES, sizeof(*sqp_tbl),
- GFP_KERNEL);
+ sqp_tbl = kzalloc_objs(*sqp_tbl, BNXT_RE_MAX_GSI_SQP_ENTRIES,
+ GFP_KERNEL);
if (!sqp_tbl)
return -ENOMEM;
rdev->gsi_ctx.sqp_tbl = sqp_tbl;
@@ -2359,7 +2359,7 @@ int bnxt_re_query_qp(struct ib_qp *ib_qp, struct ib_qp_attr *qp_attr,
struct bnxt_qplib_qp *qplib_qp;
int rc;
- qplib_qp = kzalloc(sizeof(*qplib_qp), GFP_KERNEL);
+ qplib_qp = kzalloc_obj(*qplib_qp, GFP_KERNEL);
if (!qplib_qp)
return -ENOMEM;
@@ -3194,8 +3194,8 @@ int bnxt_re_create_cq(struct ib_cq *ibcq, const struct ib_cq_init_attr *attr,
cq->qplib_cq.dpi = &uctx->dpi;
} else {
cq->max_cql = min_t(u32, entries, MAX_CQL_PER_POLL);
- cq->cql = kcalloc(cq->max_cql, sizeof(struct bnxt_qplib_cqe),
- GFP_KERNEL);
+ cq->cql = kzalloc_objs(struct bnxt_qplib_cqe, cq->max_cql,
+ GFP_KERNEL);
if (!cq->cql) {
rc = -ENOMEM;
goto fail;
@@ -4030,7 +4030,7 @@ struct ib_mr *bnxt_re_get_dma_mr(struct ib_pd *ib_pd, int mr_access_flags)
u32 active_mrs;
int rc;
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -4133,7 +4133,7 @@ struct ib_mr *bnxt_re_alloc_mr(struct ib_pd *ib_pd, enum ib_mr_type type,
if (max_num_sg > MAX_PBL_LVL_1_PGS)
return ERR_PTR(-EINVAL);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -4185,7 +4185,7 @@ struct ib_mw *bnxt_re_alloc_mw(struct ib_pd *ib_pd, enum ib_mw_type type,
u32 active_mws;
int rc;
- mw = kzalloc(sizeof(*mw), GFP_KERNEL);
+ mw = kzalloc_obj(*mw, GFP_KERNEL);
if (!mw)
return ERR_PTR(-ENOMEM);
mw->rdev = rdev;
@@ -4250,7 +4250,7 @@ static struct ib_mr *__bnxt_re_user_reg_mr(struct ib_pd *ib_pd, u64 length, u64
return ERR_PTR(-EINVAL);
}
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -4507,7 +4507,7 @@ struct ib_flow *bnxt_re_create_flow(struct ib_qp *ib_qp,
return ERR_PTR(-EBUSY);
}
- flow = kzalloc(sizeof(*flow), GFP_KERNEL);
+ flow = kzalloc_obj(*flow, GFP_KERNEL);
if (!flow) {
mutex_unlock(&rdev->qp_lock);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/bnxt_re/main.c b/drivers/infiniband/hw/bnxt_re/main.c
index ee882456319d..cbb56ba634fc 100644
--- a/drivers/infiniband/hw/bnxt_re/main.c
+++ b/drivers/infiniband/hw/bnxt_re/main.c
@@ -171,7 +171,7 @@ static int bnxt_re_setup_chip_ctx(struct bnxt_re_dev *rdev)
en_dev = rdev->en_dev;
rdev->qplib_res.pdev = en_dev->pdev;
- chip_ctx = kzalloc(sizeof(*chip_ctx), GFP_KERNEL);
+ chip_ctx = kzalloc_obj(*chip_ctx, GFP_KERNEL);
if (!chip_ctx)
return -ENOMEM;
chip_ctx->chip_num = en_dev->chip_num;
@@ -182,7 +182,7 @@ static int bnxt_re_setup_chip_ctx(struct bnxt_re_dev *rdev)
rdev->qplib_res.cctx = rdev->chip_ctx;
rdev->rcfw.res = &rdev->qplib_res;
- rdev->dev_attr = kzalloc(sizeof(*rdev->dev_attr), GFP_KERNEL);
+ rdev->dev_attr = kzalloc_obj(*rdev->dev_attr, GFP_KERNEL);
if (!rdev->dev_attr)
goto free_chip_ctx;
rdev->qplib_res.dattr = rdev->dev_attr;
@@ -420,7 +420,7 @@ static void bnxt_re_async_notifier(void *handle, struct hwrm_async_event_cmpl *c
switch (event_id) {
case ASYNC_EVENT_CMPL_EVENT_ID_DCB_CONFIG_CHANGE:
- dcb_work = kzalloc(sizeof(*dcb_work), GFP_ATOMIC);
+ dcb_work = kzalloc_obj(*dcb_work, GFP_ATOMIC);
if (!dcb_work)
break;
@@ -2033,7 +2033,7 @@ static int bnxt_re_ib_init(struct bnxt_re_dev *rdev)
static int bnxt_re_alloc_nqr_mem(struct bnxt_re_dev *rdev)
{
- rdev->nqr = kzalloc(sizeof(*rdev->nqr), GFP_KERNEL);
+ rdev->nqr = kzalloc_obj(*rdev->nqr, GFP_KERNEL);
if (!rdev->nqr)
return -ENOMEM;
@@ -2491,7 +2491,7 @@ static int bnxt_re_probe(struct auxiliary_device *adev,
en_dev = aux_priv->edev;
mutex_lock(&bnxt_re_mutex);
- en_info = kzalloc(sizeof(*en_info), GFP_KERNEL);
+ en_info = kzalloc_obj(*en_info, GFP_KERNEL);
if (!en_info) {
mutex_unlock(&bnxt_re_mutex);
return -ENOMEM;
diff --git a/drivers/infiniband/hw/bnxt_re/qplib_fp.c b/drivers/infiniband/hw/bnxt_re/qplib_fp.c
index 3e44311bf939..9a491e489b2f 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_fp.c
+++ b/drivers/infiniband/hw/bnxt_re/qplib_fp.c
@@ -688,8 +688,8 @@ int bnxt_qplib_create_srq(struct bnxt_qplib_res *res,
srq->start_idx = 0;
srq->last_idx = srq->hwq.max_elements - 1;
if (!srq->hwq.is_user) {
- srq->swq = kcalloc(srq->hwq.max_elements, sizeof(*srq->swq),
- GFP_KERNEL);
+ srq->swq = kzalloc_objs(*srq->swq, srq->hwq.max_elements,
+ GFP_KERNEL);
if (!srq->swq) {
rc = -ENOMEM;
goto fail;
@@ -799,7 +799,7 @@ static int bnxt_qplib_alloc_init_swq(struct bnxt_qplib_q *que)
{
int indx;
- que->swq = kcalloc(que->max_sw_wqe, sizeof(*que->swq), GFP_KERNEL);
+ que->swq = kzalloc_objs(*que->swq, que->max_sw_wqe, GFP_KERNEL);
if (!que->swq)
return -ENOMEM;
@@ -2096,7 +2096,7 @@ int bnxt_qplib_post_send(struct bnxt_qplib_qp *qp,
qp->wqe_cnt++;
done:
if (sch_handler) {
- nq_work = kzalloc(sizeof(*nq_work), GFP_ATOMIC);
+ nq_work = kzalloc_obj(*nq_work, GFP_ATOMIC);
if (nq_work) {
nq_work->cq = qp->scq;
nq_work->nq = qp->scq->nq;
@@ -2183,7 +2183,7 @@ int bnxt_qplib_post_recv(struct bnxt_qplib_qp *qp,
bnxt_qplib_hwq_incr_prod(&rq->dbinfo, hwq, swq->slots);
done:
if (sch_handler) {
- nq_work = kzalloc(sizeof(*nq_work), GFP_ATOMIC);
+ nq_work = kzalloc_obj(*nq_work, GFP_ATOMIC);
if (nq_work) {
nq_work->cq = qp->rcq;
nq_work->nq = qp->rcq->nq;
diff --git a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
index 4dad0cfcfa98..4ba87b0ed62f 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
+++ b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
@@ -968,8 +968,8 @@ int bnxt_qplib_alloc_rcfw_channel(struct bnxt_qplib_res *res,
goto fail;
}
- rcfw->crsqe_tbl = kcalloc(cmdq->hwq.max_elements,
- sizeof(*rcfw->crsqe_tbl), GFP_KERNEL);
+ rcfw->crsqe_tbl = kzalloc_objs(*rcfw->crsqe_tbl, cmdq->hwq.max_elements,
+ GFP_KERNEL);
if (!rcfw->crsqe_tbl)
goto fail;
diff --git a/drivers/infiniband/hw/bnxt_re/qplib_res.c b/drivers/infiniband/hw/bnxt_re/qplib_res.c
index 4d674a3aee1a..619947e2f114 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_res.c
+++ b/drivers/infiniband/hw/bnxt_re/qplib_res.c
@@ -556,7 +556,7 @@ static int bnxt_qplib_alloc_sgid_tbl(struct bnxt_qplib_res *res,
struct bnxt_qplib_sgid_tbl *sgid_tbl,
u16 max)
{
- sgid_tbl->tbl = kcalloc(max, sizeof(*sgid_tbl->tbl), GFP_KERNEL);
+ sgid_tbl->tbl = kzalloc_objs(*sgid_tbl->tbl, max, GFP_KERNEL);
if (!sgid_tbl->tbl)
return -ENOMEM;
@@ -872,8 +872,8 @@ int bnxt_qplib_alloc_res(struct bnxt_qplib_res *res, struct net_device *netdev)
/* Allocate one extra to hold the QP1 entries */
rcfw->qp_tbl_size = max_t(u32, BNXT_RE_MAX_QPC_COUNT + 1, dev_attr->max_qp);
- rcfw->qp_tbl = kcalloc(rcfw->qp_tbl_size, sizeof(struct bnxt_qplib_qp_node),
- GFP_KERNEL);
+ rcfw->qp_tbl = kzalloc_objs(struct bnxt_qplib_qp_node,
+ rcfw->qp_tbl_size, GFP_KERNEL);
if (!rcfw->qp_tbl)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/cxgb4/cq.c b/drivers/infiniband/hw/cxgb4/cq.c
index 14ced7b667fa..c891fc3177e9 100644
--- a/drivers/infiniband/hw/cxgb4/cq.c
+++ b/drivers/infiniband/hw/cxgb4/cq.c
@@ -1095,10 +1095,10 @@ int c4iw_create_cq(struct ib_cq *ibcq, const struct ib_cq_init_attr *attr,
if (ucontext) {
ret = -ENOMEM;
- mm = kmalloc(sizeof(*mm), GFP_KERNEL);
+ mm = kmalloc_obj(*mm, GFP_KERNEL);
if (!mm)
goto err_remove_handle;
- mm2 = kmalloc(sizeof(*mm2), GFP_KERNEL);
+ mm2 = kmalloc_obj(*mm2, GFP_KERNEL);
if (!mm2)
goto err_free_mm;
diff --git a/drivers/infiniband/hw/cxgb4/device.c b/drivers/infiniband/hw/cxgb4/device.c
index d892f55febe2..95e01f23c7b9 100644
--- a/drivers/infiniband/hw/cxgb4/device.c
+++ b/drivers/infiniband/hw/cxgb4/device.c
@@ -330,7 +330,7 @@ static int qp_open(struct inode *inode, struct file *file)
unsigned long index;
int count = 1;
- qpd = kmalloc(sizeof(*qpd), GFP_KERNEL);
+ qpd = kmalloc_obj(*qpd, GFP_KERNEL);
if (!qpd)
return -ENOMEM;
@@ -424,7 +424,7 @@ static int stag_open(struct inode *inode, struct file *file)
int ret = 0;
int count = 1;
- stagd = kmalloc(sizeof(*stagd), GFP_KERNEL);
+ stagd = kmalloc_obj(*stagd, GFP_KERNEL);
if (!stagd) {
ret = -ENOMEM;
goto out;
@@ -675,7 +675,7 @@ static int ep_open(struct inode *inode, struct file *file)
int ret = 0;
int count = 1;
- epd = kmalloc(sizeof(*epd), GFP_KERNEL);
+ epd = kmalloc_obj(*epd, GFP_KERNEL);
if (!epd) {
ret = -ENOMEM;
goto out;
@@ -881,9 +881,9 @@ static int c4iw_rdev_open(struct c4iw_rdev *rdev)
rdev->status_page->write_cmpl_supported = rdev->lldi.write_cmpl_support;
if (c4iw_wr_log) {
- rdev->wr_log = kcalloc(1 << c4iw_wr_log_size_order,
- sizeof(*rdev->wr_log),
- GFP_KERNEL);
+ rdev->wr_log = kzalloc_objs(*rdev->wr_log,
+ 1 << c4iw_wr_log_size_order,
+ GFP_KERNEL);
if (rdev->wr_log) {
rdev->wr_log_size = 1 << c4iw_wr_log_size_order;
atomic_set(&rdev->wr_log_idx, 0);
@@ -1078,7 +1078,7 @@ static void *c4iw_uld_add(const struct cxgb4_lld_info *infop)
pr_info("Chelsio T4/T5 RDMA Driver - version %s\n",
DRV_VERSION);
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
ctx = ERR_PTR(-ENOMEM);
goto out;
@@ -1439,7 +1439,7 @@ static void recover_queues(struct uld_ctx *ctx)
xa_for_each(&ctx->dev->qps, index, qp)
count++;
- qp_list.qps = kcalloc(count, sizeof(*qp_list.qps), GFP_ATOMIC);
+ qp_list.qps = kzalloc_objs(*qp_list.qps, count, GFP_ATOMIC);
if (!qp_list.qps) {
xa_unlock_irq(&ctx->dev->qps);
return;
@@ -1522,7 +1522,7 @@ struct c4iw_wr_wait *c4iw_alloc_wr_wait(gfp_t gfp)
{
struct c4iw_wr_wait *wr_waitp;
- wr_waitp = kzalloc(sizeof(*wr_waitp), gfp);
+ wr_waitp = kzalloc_obj(*wr_waitp, gfp);
if (wr_waitp) {
kref_init(&wr_waitp->kref);
pr_debug("wr_wait %p\n", wr_waitp);
diff --git a/drivers/infiniband/hw/cxgb4/mem.c b/drivers/infiniband/hw/cxgb4/mem.c
index adeed7447e7b..caa489c653ce 100644
--- a/drivers/infiniband/hw/cxgb4/mem.c
+++ b/drivers/infiniband/hw/cxgb4/mem.c
@@ -282,7 +282,7 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry,
if (c4iw_fatal_error(rdev))
return -EIO;
- tpt = kmalloc(sizeof(*tpt), GFP_KERNEL);
+ tpt = kmalloc_obj(*tpt, GFP_KERNEL);
if (!tpt)
return -ENOMEM;
@@ -439,7 +439,7 @@ struct ib_mr *c4iw_get_dma_mr(struct ib_pd *pd, int acc)
php = to_c4iw_pd(pd);
rhp = php->rhp;
- mhp = kzalloc(sizeof(*mhp), GFP_KERNEL);
+ mhp = kzalloc_obj(*mhp, GFP_KERNEL);
if (!mhp)
return ERR_PTR(-ENOMEM);
mhp->wr_waitp = c4iw_alloc_wr_wait(GFP_KERNEL);
@@ -517,7 +517,7 @@ struct ib_mr *c4iw_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
if (mr_exceeds_hw_limits(rhp, length))
return ERR_PTR(-EINVAL);
- mhp = kzalloc(sizeof(*mhp), GFP_KERNEL);
+ mhp = kzalloc_obj(*mhp, GFP_KERNEL);
if (!mhp)
return ERR_PTR(-ENOMEM);
mhp->wr_waitp = c4iw_alloc_wr_wait(GFP_KERNEL);
@@ -618,7 +618,7 @@ struct ib_mr *c4iw_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
use_dsgl))
return ERR_PTR(-EINVAL);
- mhp = kzalloc(sizeof(*mhp), GFP_KERNEL);
+ mhp = kzalloc_obj(*mhp, GFP_KERNEL);
if (!mhp) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/infiniband/hw/cxgb4/provider.c b/drivers/infiniband/hw/cxgb4/provider.c
index e059f92d90fd..03db946208b6 100644
--- a/drivers/infiniband/hw/cxgb4/provider.c
+++ b/drivers/infiniband/hw/cxgb4/provider.c
@@ -92,7 +92,7 @@ static int c4iw_alloc_ucontext(struct ib_ucontext *ucontext,
pr_err_once("Warning - downlevel libcxgb4 (non-fatal), device status page disabled\n");
rhp->rdev.flags |= T4_STATUS_PAGE_DISABLED;
} else {
- mm = kmalloc(sizeof(*mm), GFP_KERNEL);
+ mm = kmalloc_obj(*mm, GFP_KERNEL);
if (!mm) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/infiniband/hw/cxgb4/qp.c b/drivers/infiniband/hw/cxgb4/qp.c
index 955f061a55e9..f942a5428283 100644
--- a/drivers/infiniband/hw/cxgb4/qp.c
+++ b/drivers/infiniband/hw/cxgb4/qp.c
@@ -223,17 +223,16 @@ static int create_qp(struct c4iw_rdev *rdev, struct t4_wq *wq,
}
if (!user) {
- wq->sq.sw_sq = kcalloc(wq->sq.size, sizeof(*wq->sq.sw_sq),
- GFP_KERNEL);
+ wq->sq.sw_sq = kzalloc_objs(*wq->sq.sw_sq, wq->sq.size,
+ GFP_KERNEL);
if (!wq->sq.sw_sq) {
ret = -ENOMEM;
goto free_rq_qid;//FIXME
}
if (need_rq) {
- wq->rq.sw_rq = kcalloc(wq->rq.size,
- sizeof(*wq->rq.sw_rq),
- GFP_KERNEL);
+ wq->rq.sw_rq = kzalloc_objs(*wq->rq.sw_rq, wq->rq.size,
+ GFP_KERNEL);
if (!wq->rq.sw_rq) {
ret = -ENOMEM;
goto free_sw_sq;
@@ -2221,26 +2220,25 @@ int c4iw_create_qp(struct ib_qp *qp, struct ib_qp_init_attr *attrs,
goto err_destroy_qp;
if (udata && ucontext) {
- sq_key_mm = kmalloc(sizeof(*sq_key_mm), GFP_KERNEL);
+ sq_key_mm = kmalloc_obj(*sq_key_mm, GFP_KERNEL);
if (!sq_key_mm) {
ret = -ENOMEM;
goto err_remove_handle;
}
if (!attrs->srq) {
- rq_key_mm = kmalloc(sizeof(*rq_key_mm), GFP_KERNEL);
+ rq_key_mm = kmalloc_obj(*rq_key_mm, GFP_KERNEL);
if (!rq_key_mm) {
ret = -ENOMEM;
goto err_free_sq_key;
}
}
- sq_db_key_mm = kmalloc(sizeof(*sq_db_key_mm), GFP_KERNEL);
+ sq_db_key_mm = kmalloc_obj(*sq_db_key_mm, GFP_KERNEL);
if (!sq_db_key_mm) {
ret = -ENOMEM;
goto err_free_rq_key;
}
if (!attrs->srq) {
- rq_db_key_mm =
- kmalloc(sizeof(*rq_db_key_mm), GFP_KERNEL);
+ rq_db_key_mm = kmalloc_obj(*rq_db_key_mm, GFP_KERNEL);
if (!rq_db_key_mm) {
ret = -ENOMEM;
goto err_free_sq_db_key;
@@ -2248,8 +2246,8 @@ int c4iw_create_qp(struct ib_qp *qp, struct ib_qp_init_attr *attrs,
}
memset(&uresp, 0, sizeof(uresp));
if (t4_sq_onchip(&qhp->wq.sq)) {
- ma_sync_key_mm = kmalloc(sizeof(*ma_sync_key_mm),
- GFP_KERNEL);
+ ma_sync_key_mm = kmalloc_obj(*ma_sync_key_mm,
+ GFP_KERNEL);
if (!ma_sync_key_mm) {
ret = -ENOMEM;
goto err_free_rq_db_key;
@@ -2552,13 +2550,11 @@ static int alloc_srq_queue(struct c4iw_srq *srq, struct c4iw_dev_ucontext *uctx,
goto err;
if (!user) {
- wq->sw_rq = kcalloc(wq->size, sizeof(*wq->sw_rq),
- GFP_KERNEL);
+ wq->sw_rq = kzalloc_objs(*wq->sw_rq, wq->size, GFP_KERNEL);
if (!wq->sw_rq)
goto err_put_qpid;
- wq->pending_wrs = kcalloc(srq->wq.size,
- sizeof(*srq->wq.pending_wrs),
- GFP_KERNEL);
+ wq->pending_wrs = kzalloc_objs(*srq->wq.pending_wrs,
+ srq->wq.size, GFP_KERNEL);
if (!wq->pending_wrs)
goto err_free_sw_rq;
}
@@ -2761,12 +2757,12 @@ int c4iw_create_srq(struct ib_srq *ib_srq, struct ib_srq_init_attr *attrs,
srq->flags = T4_SRQ_LIMIT_SUPPORT;
if (udata) {
- srq_key_mm = kmalloc(sizeof(*srq_key_mm), GFP_KERNEL);
+ srq_key_mm = kmalloc_obj(*srq_key_mm, GFP_KERNEL);
if (!srq_key_mm) {
ret = -ENOMEM;
goto err_free_queue;
}
- srq_db_key_mm = kmalloc(sizeof(*srq_db_key_mm), GFP_KERNEL);
+ srq_db_key_mm = kmalloc_obj(*srq_db_key_mm, GFP_KERNEL);
if (!srq_db_key_mm) {
ret = -ENOMEM;
goto err_free_srq_key_mm;
diff --git a/drivers/infiniband/hw/cxgb4/resource.c b/drivers/infiniband/hw/cxgb4/resource.c
index e800e8e8bed5..224098e456c6 100644
--- a/drivers/infiniband/hw/cxgb4/resource.c
+++ b/drivers/infiniband/hw/cxgb4/resource.c
@@ -126,7 +126,7 @@ u32 c4iw_get_cqid(struct c4iw_rdev *rdev, struct c4iw_dev_ucontext *uctx)
rdev->stats.qid.cur += rdev->qpmask + 1;
mutex_unlock(&rdev->stats.lock);
for (i = qid+1; i & rdev->qpmask; i++) {
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
goto out;
entry->qid = i;
@@ -137,13 +137,13 @@ u32 c4iw_get_cqid(struct c4iw_rdev *rdev, struct c4iw_dev_ucontext *uctx)
* now put the same ids on the qp list since they all
* map to the same db/gts page.
*/
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
goto out;
entry->qid = qid;
list_add_tail(&entry->entry, &uctx->qpids);
for (i = qid+1; i & rdev->qpmask; i++) {
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
goto out;
entry->qid = i;
@@ -165,7 +165,7 @@ void c4iw_put_cqid(struct c4iw_rdev *rdev, u32 qid,
{
struct c4iw_qid_list *entry;
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return;
pr_debug("qid 0x%x\n", qid);
@@ -200,7 +200,7 @@ u32 c4iw_get_qpid(struct c4iw_rdev *rdev, struct c4iw_dev_ucontext *uctx)
rdev->stats.qid.cur += rdev->qpmask + 1;
mutex_unlock(&rdev->stats.lock);
for (i = qid+1; i & rdev->qpmask; i++) {
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
goto out;
entry->qid = i;
@@ -211,13 +211,13 @@ u32 c4iw_get_qpid(struct c4iw_rdev *rdev, struct c4iw_dev_ucontext *uctx)
* now put the same ids on the cq list since they all
* map to the same db/gts page.
*/
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
goto out;
entry->qid = qid;
list_add_tail(&entry->entry, &uctx->cqids);
for (i = qid + 1; i & rdev->qpmask; i++) {
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
goto out;
entry->qid = i;
@@ -239,7 +239,7 @@ void c4iw_put_qpid(struct c4iw_rdev *rdev, u32 qid,
{
struct c4iw_qid_list *entry;
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return;
pr_debug("qid 0x%x\n", qid);
diff --git a/drivers/infiniband/hw/cxgb4/restrack.c b/drivers/infiniband/hw/cxgb4/restrack.c
index fd22c85d35f4..d9fdedce0f21 100644
--- a/drivers/infiniband/hw/cxgb4/restrack.c
+++ b/drivers/infiniband/hw/cxgb4/restrack.c
@@ -209,7 +209,7 @@ int c4iw_fill_res_cm_id_entry(struct sk_buff *msg,
epcp = (struct c4iw_ep_common *)iw_cm_id->provider_data;
if (!epcp)
return 0;
- uep = kzalloc(sizeof(*uep), GFP_KERNEL);
+ uep = kzalloc_obj(*uep, GFP_KERNEL);
if (!uep)
return 0;
diff --git a/drivers/infiniband/hw/efa/efa_main.c b/drivers/infiniband/hw/efa/efa_main.c
index 6c415b9adb5f..2e6b37385e5a 100644
--- a/drivers/infiniband/hw/efa/efa_main.c
+++ b/drivers/infiniband/hw/efa/efa_main.c
@@ -332,7 +332,7 @@ static int efa_create_eqs(struct efa_dev *dev)
neqs = min_t(u32, neqs, dev->num_irq_vectors - EFA_COMP_EQS_VEC_BASE);
dev->neqs = neqs;
- dev->eqs = kcalloc(neqs, sizeof(*dev->eqs), GFP_KERNEL);
+ dev->eqs = kzalloc_objs(*dev->eqs, neqs, GFP_KERNEL);
if (!dev->eqs)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/efa/efa_verbs.c b/drivers/infiniband/hw/efa/efa_verbs.c
index 755bba8d58bb..29a4e51dc015 100644
--- a/drivers/infiniband/hw/efa/efa_verbs.c
+++ b/drivers/infiniband/hw/efa/efa_verbs.c
@@ -525,7 +525,7 @@ efa_user_mmap_entry_insert(struct ib_ucontext *ucontext,
u64 address, size_t length,
u8 mmap_flag, u64 *offset)
{
- struct efa_user_mmap_entry *entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ struct efa_user_mmap_entry *entry = kzalloc_obj(*entry, GFP_KERNEL);
int err;
if (!entry)
@@ -1335,7 +1335,7 @@ static struct scatterlist *efa_vmalloc_buf_to_sg(u64 *buf, int page_cnt)
struct page *pg;
int i;
- sglist = kmalloc_array(page_cnt, sizeof(*sglist), GFP_KERNEL);
+ sglist = kmalloc_objs(*sglist, page_cnt, GFP_KERNEL);
if (!sglist)
return NULL;
sg_init_table(sglist, page_cnt);
@@ -1374,9 +1374,8 @@ static int pbl_chunk_list_create(struct efa_dev *dev, struct pbl_context *pbl)
chunk_list_size = DIV_ROUND_UP(page_cnt, EFA_PTRS_PER_CHUNK);
chunk_list->size = chunk_list_size;
- chunk_list->chunks = kcalloc(chunk_list_size,
- sizeof(*chunk_list->chunks),
- GFP_KERNEL);
+ chunk_list->chunks = kzalloc_objs(*chunk_list->chunks, chunk_list_size,
+ GFP_KERNEL);
if (!chunk_list->chunks)
return -ENOMEM;
@@ -1682,7 +1681,7 @@ static struct efa_mr *efa_alloc_mr(struct ib_pd *ibpd, int access_flags,
return ERR_PTR(-EOPNOTSUPP);
}
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/erdma/erdma_cm.c b/drivers/infiniband/hw/erdma/erdma_cm.c
index ed21ba0037a4..3b164f645e6e 100644
--- a/drivers/infiniband/hw/erdma/erdma_cm.c
+++ b/drivers/infiniband/hw/erdma/erdma_cm.c
@@ -91,7 +91,7 @@ static void erdma_disassoc_listen_cep(struct erdma_cep *cep)
static struct erdma_cep *erdma_cep_alloc(struct erdma_dev *dev)
{
- struct erdma_cep *cep = kzalloc(sizeof(*cep), GFP_KERNEL);
+ struct erdma_cep *cep = kzalloc_obj(*cep, GFP_KERNEL);
unsigned long flags;
if (!cep)
@@ -217,7 +217,7 @@ static int erdma_cm_alloc_work(struct erdma_cep *cep, int num)
struct erdma_cm_work *work;
while (num--) {
- work = kmalloc(sizeof(*work), GFP_KERNEL);
+ work = kmalloc_obj(*work, GFP_KERNEL);
if (!work) {
if (!(list_empty(&cep->work_freelist)))
erdma_cm_free_work(cep);
@@ -1340,7 +1340,7 @@ int erdma_create_listen(struct iw_cm_id *id, int backlog)
if (!id->provider_data) {
id->provider_data =
- kmalloc(sizeof(struct list_head), GFP_KERNEL);
+ kmalloc_obj(struct list_head, GFP_KERNEL);
if (!id->provider_data) {
ret = -ENOMEM;
goto error;
diff --git a/drivers/infiniband/hw/erdma/erdma_verbs.c b/drivers/infiniband/hw/erdma/erdma_verbs.c
index 109a3f3de911..7adf95d1315b 100644
--- a/drivers/infiniband/hw/erdma/erdma_verbs.c
+++ b/drivers/infiniband/hw/erdma/erdma_verbs.c
@@ -291,8 +291,7 @@ static struct rdma_user_mmap_entry *
erdma_user_mmap_entry_insert(struct erdma_ucontext *uctx, void *address,
u32 size, u8 mmap_flag, u64 *mmap_offset)
{
- struct erdma_user_mmap_entry *entry =
- kzalloc(sizeof(*entry), GFP_KERNEL);
+ struct erdma_user_mmap_entry *entry = kzalloc_obj(*entry, GFP_KERNEL);
int ret;
if (!entry)
@@ -600,7 +599,7 @@ static struct erdma_mtt *erdma_create_cont_mtt(struct erdma_dev *dev,
{
struct erdma_mtt *mtt;
- mtt = kzalloc(sizeof(*mtt), GFP_KERNEL);
+ mtt = kzalloc_obj(*mtt, GFP_KERNEL);
if (!mtt)
return ERR_PTR(-ENOMEM);
@@ -725,7 +724,7 @@ static struct erdma_mtt *erdma_create_scatter_mtt(struct erdma_dev *dev,
struct erdma_mtt *mtt;
int ret = -ENOMEM;
- mtt = kzalloc(sizeof(*mtt), GFP_KERNEL);
+ mtt = kzalloc_obj(*mtt, GFP_KERNEL);
if (!mtt)
return ERR_PTR(-ENOMEM);
@@ -888,7 +887,7 @@ static int erdma_map_user_dbrecords(struct erdma_ucontext *ctx,
if (page->va == (dbrecords_va & PAGE_MASK))
goto found;
- page = kmalloc(sizeof(*page), GFP_KERNEL);
+ page = kmalloc_obj(*page, GFP_KERNEL);
if (!page) {
rv = -ENOMEM;
goto out;
@@ -1116,7 +1115,7 @@ struct ib_mr *erdma_get_dma_mr(struct ib_pd *ibpd, int acc)
u32 stag;
int ret;
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -1160,7 +1159,7 @@ struct ib_mr *erdma_ib_alloc_mr(struct ib_pd *ibpd, enum ib_mr_type mr_type,
if (max_num_sg > ERDMA_MR_MAX_MTT_CNT)
return ERR_PTR(-EINVAL);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -1246,7 +1245,7 @@ struct ib_mr *erdma_reg_user_mr(struct ib_pd *ibpd, u64 start, u64 len,
if (!len || len > dev->attrs.max_mr_size)
return ERR_PTR(-EINVAL);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/hfi1/affinity.c b/drivers/infiniband/hw/hfi1/affinity.c
index ee7fedc67b86..28ded5e12b42 100644
--- a/drivers/infiniband/hw/hfi1/affinity.c
+++ b/drivers/infiniband/hw/hfi1/affinity.c
@@ -199,7 +199,7 @@ static struct hfi1_affinity_node *node_affinity_allocate(int node)
{
struct hfi1_affinity_node *entry;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return NULL;
entry->node = node;
@@ -406,9 +406,9 @@ static int _dev_comp_vect_mappings_create(struct hfi1_devdata *dd,
return -ENOMEM;
}
- dd->comp_vect_mappings = kcalloc(dd->comp_vect_possible_cpus,
- sizeof(*dd->comp_vect_mappings),
- GFP_KERNEL);
+ dd->comp_vect_mappings = kzalloc_objs(*dd->comp_vect_mappings,
+ dd->comp_vect_possible_cpus,
+ GFP_KERNEL);
if (!dd->comp_vect_mappings) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/infiniband/hw/hfi1/chip.c b/drivers/infiniband/hw/hfi1/chip.c
index 0781ab756d44..b03f39ee1964 100644
--- a/drivers/infiniband/hw/hfi1/chip.c
+++ b/drivers/infiniband/hw/hfi1/chip.c
@@ -14221,7 +14221,7 @@ static struct rsm_map_table *alloc_rsm_map_table(struct hfi1_devdata *dd)
struct rsm_map_table *rmt;
u8 rxcontext = is_ax(dd) ? 0 : 0xff; /* 0 is default if a0 ver. */
- rmt = kmalloc(sizeof(*rmt), GFP_KERNEL);
+ rmt = kmalloc_obj(*rmt, GFP_KERNEL);
if (rmt) {
memset(rmt->map, rxcontext, sizeof(rmt->map));
rmt->used = 0;
@@ -14872,7 +14872,7 @@ static int init_asic_data(struct hfi1_devdata *dd)
int ret = 0;
/* pre-allocate the asic structure in case we are the first device */
- asic_data = kzalloc(sizeof(*dd->asic_data), GFP_KERNEL);
+ asic_data = kzalloc_obj(*dd->asic_data, GFP_KERNEL);
if (!asic_data)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/hfi1/efivar.c b/drivers/infiniband/hw/hfi1/efivar.c
index 9ed05e10020e..f311b2f328a9 100644
--- a/drivers/infiniband/hw/hfi1/efivar.c
+++ b/drivers/infiniband/hw/hfi1/efivar.c
@@ -41,7 +41,7 @@ static int read_efi_var(const char *name, unsigned long *size,
if (!efi_rt_services_supported(EFI_RT_SUPPORTED_GET_VARIABLE))
return -EOPNOTSUPP;
- uni_name = kcalloc(strlen(name) + 1, sizeof(efi_char16_t), GFP_KERNEL);
+ uni_name = kzalloc_objs(efi_char16_t, strlen(name) + 1, GFP_KERNEL);
temp_buffer = kzalloc(EFI_DATA_SIZE, GFP_KERNEL);
if (!uni_name || !temp_buffer) {
diff --git a/drivers/infiniband/hw/hfi1/fault.c b/drivers/infiniband/hw/hfi1/fault.c
index a45cbffd52c7..697210b84937 100644
--- a/drivers/infiniband/hw/hfi1/fault.c
+++ b/drivers/infiniband/hw/hfi1/fault.c
@@ -209,7 +209,7 @@ int hfi1_fault_init_debugfs(struct hfi1_ibdev *ibd)
struct dentry *parent = ibd->hfi1_ibdev_dbg;
struct dentry *fault_dir;
- ibd->fault = kzalloc(sizeof(*ibd->fault), GFP_KERNEL);
+ ibd->fault = kzalloc_obj(*ibd->fault, GFP_KERNEL);
if (!ibd->fault)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/hfi1/file_ops.c b/drivers/infiniband/hw/hfi1/file_ops.c
index 503abec709c9..9baedace9ccc 100644
--- a/drivers/infiniband/hw/hfi1/file_ops.c
+++ b/drivers/infiniband/hw/hfi1/file_ops.c
@@ -158,7 +158,7 @@ static int hfi1_file_open(struct inode *inode, struct file *fp)
/* The real work is performed later in assign_ctxt() */
- fd = kzalloc(sizeof(*fd), GFP_KERNEL);
+ fd = kzalloc_obj(*fd, GFP_KERNEL);
if (!fd || init_srcu_struct(&fd->pq_srcu))
goto nomem;
diff --git a/drivers/infiniband/hw/hfi1/init.c b/drivers/infiniband/hw/hfi1/init.c
index e4aef102dac0..5bc8250ffbb2 100644
--- a/drivers/infiniband/hw/hfi1/init.c
+++ b/drivers/infiniband/hw/hfi1/init.c
@@ -646,7 +646,7 @@ void hfi1_init_pportdata(struct pci_dev *pdev, struct hfi1_pportdata *ppd,
spin_lock_init(&ppd->cc_state_lock);
spin_lock_init(&ppd->cc_log_lock);
- cc_state = kzalloc(sizeof(*cc_state), GFP_KERNEL);
+ cc_state = kzalloc_obj(*cc_state, GFP_KERNEL);
RCU_INIT_POINTER(ppd->cc_state, cc_state);
if (!cc_state)
goto bail;
@@ -1282,7 +1282,7 @@ static struct hfi1_devdata *hfi1_alloc_devdata(struct pci_dev *pdev,
goto bail;
}
- dd->comp_vect = kzalloc(sizeof(*dd->comp_vect), GFP_KERNEL);
+ dd->comp_vect = kzalloc_obj(*dd->comp_vect, GFP_KERNEL);
if (!dd->comp_vect) {
ret = -ENOMEM;
goto bail;
diff --git a/drivers/infiniband/hw/hfi1/mad.c b/drivers/infiniband/hw/hfi1/mad.c
index 961fa07116f0..41791ade91bd 100644
--- a/drivers/infiniband/hw/hfi1/mad.c
+++ b/drivers/infiniband/hw/hfi1/mad.c
@@ -390,7 +390,7 @@ static struct trap_node *create_trap_node(u8 type, __be16 trap_num, u32 lid)
{
struct trap_node *trap;
- trap = kzalloc(sizeof(*trap), GFP_ATOMIC);
+ trap = kzalloc_obj(*trap, GFP_ATOMIC);
if (!trap)
return NULL;
@@ -3736,7 +3736,7 @@ static void apply_cc_state(struct hfi1_pportdata *ppd)
{
struct cc_state *old_cc_state, *new_cc_state;
- new_cc_state = kzalloc(sizeof(*new_cc_state), GFP_KERNEL);
+ new_cc_state = kzalloc_obj(*new_cc_state, GFP_KERNEL);
if (!new_cc_state)
return;
diff --git a/drivers/infiniband/hw/hfi1/msix.c b/drivers/infiniband/hw/hfi1/msix.c
index 77d2ece9a9cb..790a4fd79421 100644
--- a/drivers/infiniband/hw/hfi1/msix.c
+++ b/drivers/infiniband/hw/hfi1/msix.c
@@ -38,8 +38,7 @@ int msix_initialize(struct hfi1_devdata *dd)
return ret;
}
- entries = kcalloc(total, sizeof(*dd->msix_info.msix_entries),
- GFP_KERNEL);
+ entries = kzalloc_objs(*dd->msix_info.msix_entries, total, GFP_KERNEL);
if (!entries) {
pci_free_irq_vectors(dd->pcidev);
return -ENOMEM;
diff --git a/drivers/infiniband/hw/hfi1/pin_system.c b/drivers/infiniband/hw/hfi1/pin_system.c
index cce56134519b..d8109b06aa70 100644
--- a/drivers/infiniband/hw/hfi1/pin_system.c
+++ b/drivers/infiniband/hw/hfi1/pin_system.c
@@ -119,7 +119,7 @@ static int pin_system_pages(struct user_sdma_request *req,
int pinned, cleared;
struct page **pages;
- pages = kcalloc(npages, sizeof(*pages), GFP_KERNEL);
+ pages = kzalloc_objs(*pages, npages, GFP_KERNEL);
if (!pages)
return -ENOMEM;
@@ -173,7 +173,7 @@ static int add_system_pinning(struct user_sdma_request *req,
struct sdma_mmu_node *node;
int ret;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/hfi1/pio.c b/drivers/infiniband/hw/hfi1/pio.c
index 764286da2ce8..fdf7cecb8336 100644
--- a/drivers/infiniband/hw/hfi1/pio.c
+++ b/drivers/infiniband/hw/hfi1/pio.c
@@ -407,9 +407,8 @@ int init_send_contexts(struct hfi1_devdata *dd)
dd->hw_to_sw = kmalloc_array(TXE_NUM_CONTEXTS, sizeof(u8),
GFP_KERNEL);
- dd->send_contexts = kcalloc(dd->num_send_contexts,
- sizeof(struct send_context_info),
- GFP_KERNEL);
+ dd->send_contexts = kzalloc_objs(struct send_context_info,
+ dd->num_send_contexts, GFP_KERNEL);
if (!dd->send_contexts || !dd->hw_to_sw) {
kfree(dd->hw_to_sw);
kfree(dd->send_contexts);
@@ -1883,8 +1882,8 @@ int pio_map_init(struct hfi1_devdata *dd, u8 port, u8 num_vls, u8 *vl_scontexts)
vl_scontexts[i] = sc_per_vl + (extra > 0 ? 1 : 0);
}
/* build new map */
- newmap = kzalloc(struct_size(newmap, map, roundup_pow_of_two(num_vls)),
- GFP_KERNEL);
+ newmap = kzalloc_flex(*newmap, map, roundup_pow_of_two(num_vls),
+ GFP_KERNEL);
if (!newmap)
goto bail;
newmap->actual_vls = num_vls;
@@ -1898,9 +1897,8 @@ int pio_map_init(struct hfi1_devdata *dd, u8 port, u8 num_vls, u8 *vl_scontexts)
int sz = roundup_pow_of_two(vl_scontexts[i]);
/* only allocate once */
- newmap->map[i] = kzalloc(struct_size(newmap->map[i],
- ksc, sz),
- GFP_KERNEL);
+ newmap->map[i] = kzalloc_flex(*newmap->map[i], ksc, sz,
+ GFP_KERNEL);
if (!newmap->map[i])
goto bail;
newmap->map[i]->mask = (1 << ilog2(sz)) - 1;
@@ -2054,10 +2052,8 @@ int init_credit_return(struct hfi1_devdata *dd)
int ret;
int i;
- dd->cr_base = kcalloc(
- node_affinity.num_possible_nodes,
- sizeof(struct credit_return_base),
- GFP_KERNEL);
+ dd->cr_base = kzalloc_objs(struct credit_return_base,
+ node_affinity.num_possible_nodes, GFP_KERNEL);
if (!dd->cr_base) {
ret = -ENOMEM;
goto done;
diff --git a/drivers/infiniband/hw/hfi1/qsfp.c b/drivers/infiniband/hw/hfi1/qsfp.c
index 3b7842a7f634..7c133037397c 100644
--- a/drivers/infiniband/hw/hfi1/qsfp.c
+++ b/drivers/infiniband/hw/hfi1/qsfp.c
@@ -107,7 +107,7 @@ static struct hfi1_i2c_bus *init_i2c_bus(struct hfi1_devdata *dd,
struct hfi1_i2c_bus *bus;
int ret;
- bus = kzalloc(sizeof(*bus), GFP_KERNEL);
+ bus = kzalloc_obj(*bus, GFP_KERNEL);
if (!bus)
return NULL;
diff --git a/drivers/infiniband/hw/hfi1/sdma.c b/drivers/infiniband/hw/hfi1/sdma.c
index 5cfa4f8fbf3d..04763f50ff60 100644
--- a/drivers/infiniband/hw/hfi1/sdma.c
+++ b/drivers/infiniband/hw/hfi1/sdma.c
@@ -937,7 +937,7 @@ ssize_t sdma_set_cpu_to_sde_map(struct sdma_engine *sde, const char *buf,
rht_node = rhashtable_lookup_fast(dd->sdma_rht, &cpu,
sdma_rht_params);
if (!rht_node) {
- rht_node = kzalloc(sizeof(*rht_node), GFP_KERNEL);
+ rht_node = kzalloc_obj(*rht_node, GFP_KERNEL);
if (!rht_node) {
ret = -ENOMEM;
goto out;
@@ -1481,7 +1481,7 @@ int sdma_init(struct hfi1_devdata *dd, u8 port)
if (ret < 0)
goto bail;
- tmp_sdma_rht = kzalloc(sizeof(*tmp_sdma_rht), GFP_KERNEL);
+ tmp_sdma_rht = kzalloc_obj(*tmp_sdma_rht, GFP_KERNEL);
if (!tmp_sdma_rht) {
ret = -ENOMEM;
goto bail;
@@ -3017,7 +3017,7 @@ static int _extend_sdma_tx_descs(struct hfi1_devdata *dd, struct sdma_txreq *tx)
if (unlikely(tx->num_desc == MAX_DESC))
goto enomem;
- descp = kmalloc_array(MAX_DESC, sizeof(struct sdma_desc), GFP_ATOMIC);
+ descp = kmalloc_objs(struct sdma_desc, MAX_DESC, GFP_ATOMIC);
if (!descp)
goto enomem;
tx->descp = descp;
diff --git a/drivers/infiniband/hw/hfi1/tid_rdma.c b/drivers/infiniband/hw/hfi1/tid_rdma.c
index eafd2f157e32..90ddd59f1e1b 100644
--- a/drivers/infiniband/hw/hfi1/tid_rdma.c
+++ b/drivers/infiniband/hw/hfi1/tid_rdma.c
@@ -233,7 +233,7 @@ bool tid_rdma_conn_reply(struct rvt_qp *qp, u64 data)
* * at the responder, 0 being returned to the requester so as to
* disable TID RDMA at both the requester and the responder
*/
- remote = kzalloc(sizeof(*remote), GFP_ATOMIC);
+ remote = kzalloc_obj(*remote, GFP_ATOMIC);
if (!remote) {
ret = false;
goto null;
diff --git a/drivers/infiniband/hw/hfi1/user_exp_rcv.c b/drivers/infiniband/hw/hfi1/user_exp_rcv.c
index 62b4f16dab27..1c16d4f9e1ab 100644
--- a/drivers/infiniband/hw/hfi1/user_exp_rcv.c
+++ b/drivers/infiniband/hw/hfi1/user_exp_rcv.c
@@ -52,17 +52,16 @@ int hfi1_user_exp_rcv_init(struct hfi1_filedata *fd,
{
int ret = 0;
- fd->entry_to_rb = kcalloc(uctxt->expected_count,
- sizeof(*fd->entry_to_rb),
- GFP_KERNEL);
+ fd->entry_to_rb = kzalloc_objs(*fd->entry_to_rb, uctxt->expected_count,
+ GFP_KERNEL);
if (!fd->entry_to_rb)
return -ENOMEM;
if (!HFI1_CAP_UGET_MASK(uctxt->flags, TID_UNMAP)) {
fd->invalid_tid_idx = 0;
- fd->invalid_tids = kcalloc(uctxt->expected_count,
- sizeof(*fd->invalid_tids),
- GFP_KERNEL);
+ fd->invalid_tids = kzalloc_objs(*fd->invalid_tids,
+ uctxt->expected_count,
+ GFP_KERNEL);
if (!fd->invalid_tids) {
kfree(fd->entry_to_rb);
fd->entry_to_rb = NULL;
@@ -170,7 +169,7 @@ static int pin_rcv_pages(struct hfi1_filedata *fd, struct tid_user_buf *tidbuf)
}
/* Allocate the array of struct page pointers needed for pinning */
- pages = kcalloc(npages, sizeof(*pages), GFP_KERNEL);
+ pages = kzalloc_objs(*pages, npages, GFP_KERNEL);
if (!pages)
return -ENOMEM;
@@ -736,7 +735,7 @@ static int set_rcvarray_entry(struct hfi1_filedata *fd,
* Allocate the node first so we can handle a potential
* failure before we've programmed anything.
*/
- node = kzalloc(struct_size(node, pages, npages), GFP_KERNEL);
+ node = kzalloc_flex(*node, pages, npages, GFP_KERNEL);
if (!node)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/hfi1/user_sdma.c b/drivers/infiniband/hw/hfi1/user_sdma.c
index 9b1aece1b080..f2642fef0bf4 100644
--- a/drivers/infiniband/hw/hfi1/user_sdma.c
+++ b/drivers/infiniband/hw/hfi1/user_sdma.c
@@ -120,7 +120,7 @@ int hfi1_user_sdma_alloc_queues(struct hfi1_ctxtdata *uctxt,
dd = uctxt->dd;
- pq = kzalloc(sizeof(*pq), GFP_KERNEL);
+ pq = kzalloc_obj(*pq, GFP_KERNEL);
if (!pq)
return -ENOMEM;
pq->dd = dd;
@@ -135,9 +135,7 @@ int hfi1_user_sdma_alloc_queues(struct hfi1_ctxtdata *uctxt,
activate_packet_queue, NULL, NULL);
pq->reqidx = 0;
- pq->reqs = kcalloc(hfi1_sdma_comp_ring_size,
- sizeof(*pq->reqs),
- GFP_KERNEL);
+ pq->reqs = kzalloc_objs(*pq->reqs, hfi1_sdma_comp_ring_size, GFP_KERNEL);
if (!pq->reqs)
goto pq_reqs_nomem;
@@ -158,7 +156,7 @@ int hfi1_user_sdma_alloc_queues(struct hfi1_ctxtdata *uctxt,
goto pq_txreq_nomem;
}
- cq = kzalloc(sizeof(*cq), GFP_KERNEL);
+ cq = kzalloc_obj(*cq, GFP_KERNEL);
if (!cq)
goto cq_nomem;
diff --git a/drivers/infiniband/hw/hns/hns_roce_alloc.c b/drivers/infiniband/hw/hns/hns_roce_alloc.c
index 6ee911f6885b..8e802f118bc9 100644
--- a/drivers/infiniband/hw/hns/hns_roce_alloc.c
+++ b/drivers/infiniband/hw/hns/hns_roce_alloc.c
@@ -77,7 +77,7 @@ struct hns_roce_buf *hns_roce_buf_alloc(struct hns_roce_dev *hr_dev, u32 size,
return ERR_PTR(-EINVAL);
gfp_flags = (flags & HNS_ROCE_BUF_NOSLEEP) ? GFP_ATOMIC : GFP_KERNEL;
- buf = kzalloc(sizeof(*buf), gfp_flags);
+ buf = kzalloc_obj(*buf, gfp_flags);
if (!buf)
return ERR_PTR(-ENOMEM);
@@ -93,7 +93,7 @@ struct hns_roce_buf *hns_roce_buf_alloc(struct hns_roce_dev *hr_dev, u32 size,
ntrunk = DIV_ROUND_UP(size, 1 << buf->trunk_shift);
}
- trunks = kcalloc(ntrunk, sizeof(*trunks), gfp_flags);
+ trunks = kzalloc_objs(*trunks, ntrunk, gfp_flags);
if (!trunks) {
kfree(buf);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/hns/hns_roce_bond.c b/drivers/infiniband/hw/hns/hns_roce_bond.c
index cc85f3ce1f3e..e3ffd7e20160 100644
--- a/drivers/infiniband/hw/hns/hns_roce_bond.c
+++ b/drivers/infiniband/hw/hns/hns_roce_bond.c
@@ -253,7 +253,7 @@ static struct hns_roce_die_info *alloc_die_info(int bus_num)
struct hns_roce_die_info *die_info;
int ret;
- die_info = kzalloc(sizeof(*die_info), GFP_KERNEL);
+ die_info = kzalloc_obj(*die_info, GFP_KERNEL);
if (!die_info)
return NULL;
@@ -855,7 +855,7 @@ int hns_roce_alloc_bond_grp(struct hns_roce_dev *hr_dev)
return 0;
for (i = 0; i < ROCE_BOND_NUM_MAX; i++) {
- bond_grp = kvzalloc(sizeof(*bond_grp), GFP_KERNEL);
+ bond_grp = kvzalloc_obj(*bond_grp, GFP_KERNEL);
if (!bond_grp) {
ret = -ENOMEM;
goto mem_err;
diff --git a/drivers/infiniband/hw/hns/hns_roce_cmd.c b/drivers/infiniband/hw/hns/hns_roce_cmd.c
index 873e8a69a1b9..f8a42ea6acac 100644
--- a/drivers/infiniband/hw/hns/hns_roce_cmd.c
+++ b/drivers/infiniband/hw/hns/hns_roce_cmd.c
@@ -219,7 +219,7 @@ int hns_roce_cmd_use_events(struct hns_roce_dev *hr_dev)
int i;
hr_cmd->context =
- kcalloc(hr_cmd->max_cmds, sizeof(*hr_cmd->context), GFP_KERNEL);
+ kzalloc_objs(*hr_cmd->context, hr_cmd->max_cmds, GFP_KERNEL);
if (!hr_cmd->context) {
hr_dev->cmd_mod = 0;
return -ENOMEM;
@@ -254,7 +254,7 @@ hns_roce_alloc_cmd_mailbox(struct hns_roce_dev *hr_dev)
{
struct hns_roce_cmd_mailbox *mailbox;
- mailbox = kmalloc(sizeof(*mailbox), GFP_KERNEL);
+ mailbox = kmalloc_obj(*mailbox, GFP_KERNEL);
if (!mailbox)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/hns/hns_roce_db.c b/drivers/infiniband/hw/hns/hns_roce_db.c
index 5c4c0480832b..ad8fcaf613b9 100644
--- a/drivers/infiniband/hw/hns/hns_roce_db.c
+++ b/drivers/infiniband/hw/hns/hns_roce_db.c
@@ -21,7 +21,7 @@ int hns_roce_db_map_user(struct hns_roce_ucontext *context, unsigned long virt,
if (page->user_virt == page_addr)
goto found;
- page = kmalloc(sizeof(*page), GFP_KERNEL);
+ page = kmalloc_obj(*page, GFP_KERNEL);
if (!page) {
ret = -ENOMEM;
goto out;
@@ -72,7 +72,7 @@ static struct hns_roce_db_pgdir *hns_roce_alloc_db_pgdir(
{
struct hns_roce_db_pgdir *pgdir;
- pgdir = kzalloc(sizeof(*pgdir), GFP_KERNEL);
+ pgdir = kzalloc_obj(*pgdir, GFP_KERNEL);
if (!pgdir)
return NULL;
diff --git a/drivers/infiniband/hw/hns/hns_roce_hem.c b/drivers/infiniband/hw/hns/hns_roce_hem.c
index 3d479c63b117..11ba69dde716 100644
--- a/drivers/infiniband/hw/hns/hns_roce_hem.c
+++ b/drivers/infiniband/hw/hns/hns_roce_hem.c
@@ -262,7 +262,7 @@ static struct hns_roce_hem *hns_roce_alloc_hem(struct hns_roce_dev *hr_dev,
return NULL;
}
- hem = kmalloc(sizeof(*hem), GFP_KERNEL);
+ hem = kmalloc_obj(*hem, GFP_KERNEL);
if (!hem)
return NULL;
@@ -737,7 +737,7 @@ int hns_roce_init_hem_table(struct hns_roce_dev *hr_dev,
obj_per_chunk = table->table_chunk_size / obj_size;
num_hem = DIV_ROUND_UP(nobj, obj_per_chunk);
- table->hem = kcalloc(num_hem, sizeof(*table->hem), GFP_KERNEL);
+ table->hem = kzalloc_objs(*table->hem, num_hem, GFP_KERNEL);
if (!table->hem)
return -ENOMEM;
} else {
@@ -763,8 +763,7 @@ int hns_roce_init_hem_table(struct hns_roce_dev *hr_dev,
if (type >= HEM_TYPE_MTT)
num_bt_l0 = bt_chunk_num;
- table->hem = kcalloc(num_hem, sizeof(*table->hem),
- GFP_KERNEL);
+ table->hem = kzalloc_objs(*table->hem, num_hem, GFP_KERNEL);
if (!table->hem)
goto err_kcalloc_hem_buf;
@@ -778,9 +777,9 @@ int hns_roce_init_hem_table(struct hns_roce_dev *hr_dev,
if (!table->bt_l1)
goto err_kcalloc_bt_l1;
- table->bt_l1_dma_addr = kcalloc(num_bt_l1,
- sizeof(*table->bt_l1_dma_addr),
- GFP_KERNEL);
+ table->bt_l1_dma_addr = kzalloc_objs(*table->bt_l1_dma_addr,
+ num_bt_l1,
+ GFP_KERNEL);
if (!table->bt_l1_dma_addr)
goto err_kcalloc_l1_dma;
@@ -793,9 +792,9 @@ int hns_roce_init_hem_table(struct hns_roce_dev *hr_dev,
if (!table->bt_l0)
goto err_kcalloc_bt_l0;
- table->bt_l0_dma_addr = kcalloc(num_bt_l0,
- sizeof(*table->bt_l0_dma_addr),
- GFP_KERNEL);
+ table->bt_l0_dma_addr = kzalloc_objs(*table->bt_l0_dma_addr,
+ num_bt_l0,
+ GFP_KERNEL);
if (!table->bt_l0_dma_addr)
goto err_kcalloc_l0_dma;
}
@@ -939,7 +938,7 @@ hem_list_alloc_item(struct hns_roce_dev *hr_dev, int start, int end, int count,
{
struct hns_roce_hem_item *hem;
- hem = kzalloc(sizeof(*hem), GFP_KERNEL);
+ hem = kzalloc_obj(*hem, GFP_KERNEL);
if (!hem)
return NULL;
diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
index 5d0a8662249d..3440a6f21c02 100644
--- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
+++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
@@ -1948,7 +1948,7 @@ static int hns_roce_hw_v2_query_counter(struct hns_roce_dev *hr_dev,
return -EINVAL;
desc_num = DIV_ROUND_UP(HNS_ROCE_HW_CNT_TOTAL, CNT_PER_DESC);
- desc = kcalloc(desc_num, sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_objs(*desc, desc_num, GFP_KERNEL);
if (!desc)
return -ENOMEM;
@@ -2881,7 +2881,7 @@ static struct ib_pd *free_mr_init_pd(struct hns_roce_dev *hr_dev)
struct hns_roce_pd *hr_pd;
struct ib_pd *pd;
- hr_pd = kzalloc(sizeof(*hr_pd), GFP_KERNEL);
+ hr_pd = kzalloc_obj(*hr_pd, GFP_KERNEL);
if (!hr_pd)
return NULL;
pd = &hr_pd->ibpd;
@@ -2912,7 +2912,7 @@ static struct ib_cq *free_mr_init_cq(struct hns_roce_dev *hr_dev)
cq_init_attr.cqe = HNS_ROCE_FREE_MR_USED_CQE_NUM;
- hr_cq = kzalloc(sizeof(*hr_cq), GFP_KERNEL);
+ hr_cq = kzalloc_obj(*hr_cq, GFP_KERNEL);
if (!hr_cq)
return NULL;
@@ -2945,7 +2945,7 @@ static int free_mr_init_qp(struct hns_roce_dev *hr_dev, struct ib_cq *cq,
struct ib_qp *qp;
int ret;
- hr_qp = kzalloc(sizeof(*hr_qp), GFP_KERNEL);
+ hr_qp = kzalloc_obj(*hr_qp, GFP_KERNEL);
if (!hr_qp)
return -ENOMEM;
@@ -5021,7 +5021,7 @@ static int alloc_dip_entry(struct xarray *dip_xa, u32 qpn)
if (hr_dip)
return 0;
- hr_dip = kzalloc(sizeof(*hr_dip), GFP_KERNEL);
+ hr_dip = kzalloc_obj(*hr_dip, GFP_KERNEL);
if (!hr_dip)
return -ENOMEM;
@@ -5635,8 +5635,8 @@ static int hns_roce_v2_modify_qp(struct ib_qp *ibqp,
* we should set all bits of the relevant fields in context mask to
* 0 at the same time, else set them to 0x1.
*/
- context = kvzalloc(sizeof(*context), GFP_KERNEL);
- qpc_mask = kvzalloc(sizeof(*qpc_mask), GFP_KERNEL);
+ context = kvzalloc_obj(*context, GFP_KERNEL);
+ qpc_mask = kvzalloc_obj(*qpc_mask, GFP_KERNEL);
if (!context || !qpc_mask)
goto out;
@@ -6450,7 +6450,7 @@ static void hns_roce_v2_init_irq_work(struct hns_roce_dev *hr_dev,
{
struct hns_roce_work *irq_work;
- irq_work = kzalloc(sizeof(struct hns_roce_work), GFP_ATOMIC);
+ irq_work = kzalloc_obj(struct hns_roce_work, GFP_ATOMIC);
if (!irq_work)
return;
@@ -7107,7 +7107,7 @@ static int hns_roce_v2_init_eq_table(struct hns_roce_dev *hr_dev)
eq_num = comp_num + aeq_num;
irq_num = eq_num + other_num;
- eq_table->eq = kcalloc(eq_num, sizeof(*eq_table->eq), GFP_KERNEL);
+ eq_table->eq = kzalloc_objs(*eq_table->eq, eq_num, GFP_KERNEL);
if (!eq_table->eq)
return -ENOMEM;
@@ -7309,7 +7309,7 @@ static int __hns_roce_hw_v2_init_instance(struct hnae3_handle *handle)
if (!hr_dev)
return -ENOMEM;
- hr_dev->priv = kzalloc(sizeof(struct hns_roce_v2_priv), GFP_KERNEL);
+ hr_dev->priv = kzalloc_obj(struct hns_roce_v2_priv, GFP_KERNEL);
if (!hr_dev->priv) {
ret = -ENOMEM;
goto error_failed_kzalloc;
diff --git a/drivers/infiniband/hw/hns/hns_roce_main.c b/drivers/infiniband/hw/hns/hns_roce_main.c
index a3490bab297a..349910dd99c6 100644
--- a/drivers/infiniband/hw/hns/hns_roce_main.c
+++ b/drivers/infiniband/hw/hns/hns_roce_main.c
@@ -366,7 +366,7 @@ hns_roce_user_mmap_entry_insert(struct ib_ucontext *ucontext, u64 address,
struct hns_user_mmap_entry *entry;
int ret;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return NULL;
@@ -1153,8 +1153,8 @@ void hns_roce_handle_device_err(struct hns_roce_dev *hr_dev)
static int hns_roce_alloc_dfx_cnt(struct hns_roce_dev *hr_dev)
{
- hr_dev->dfx_cnt = kvcalloc(HNS_ROCE_DFX_CNT_TOTAL, sizeof(atomic64_t),
- GFP_KERNEL);
+ hr_dev->dfx_cnt = kvzalloc_objs(atomic64_t, HNS_ROCE_DFX_CNT_TOTAL,
+ GFP_KERNEL);
if (!hr_dev->dfx_cnt)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/hns/hns_roce_mr.c b/drivers/infiniband/hw/hns/hns_roce_mr.c
index 31cb8699e198..80917b8926c1 100644
--- a/drivers/infiniband/hw/hns/hns_roce_mr.c
+++ b/drivers/infiniband/hw/hns/hns_roce_mr.c
@@ -200,7 +200,7 @@ struct ib_mr *hns_roce_get_dma_mr(struct ib_pd *pd, int acc)
struct hns_roce_mr *mr;
int ret;
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -243,7 +243,7 @@ struct ib_mr *hns_roce_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
goto err_out;
}
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr) {
ret = -ENOMEM;
goto err_out;
@@ -395,7 +395,7 @@ struct ib_mr *hns_roce_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
return ERR_PTR(-EINVAL);
}
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -458,8 +458,9 @@ int hns_roce_map_mr_sg(struct ib_mr *ibmr, struct scatterlist *sg, int sg_nents,
return sg_num;
mr->npages = 0;
- mr->page_list = kvcalloc(mr->pbl_mtr.hem_cfg.buf_pg_count,
- sizeof(dma_addr_t), GFP_KERNEL);
+ mr->page_list = kvzalloc_objs(dma_addr_t,
+ mr->pbl_mtr.hem_cfg.buf_pg_count,
+ GFP_KERNEL);
if (!mr->page_list)
return sg_num;
@@ -650,7 +651,7 @@ static int mtr_map_bufs(struct hns_roce_dev *hr_dev, struct hns_roce_mtr *mtr)
page_shift = need_split_huge_page(mtr) ? HNS_HW_PAGE_SHIFT :
mtr->hem_cfg.buf_pg_shift;
/* alloc a tmp array to store buffer's dma address */
- pages = kvcalloc(page_count, sizeof(dma_addr_t), GFP_KERNEL);
+ pages = kvzalloc_objs(dma_addr_t, page_count, GFP_KERNEL);
if (!pages)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/ionic/ionic_admin.c b/drivers/infiniband/hw/ionic/ionic_admin.c
index 2537aa55d12d..850bd40ae3cc 100644
--- a/drivers/infiniband/hw/ionic/ionic_admin.c
+++ b/drivers/infiniband/hw/ionic/ionic_admin.c
@@ -520,7 +520,7 @@ static struct ionic_vcq *ionic_create_rdma_admincq(struct ionic_ibdev *dev,
struct ionic_cq *cq;
int rc;
- vcq = kzalloc(sizeof(*vcq), GFP_KERNEL);
+ vcq = kzalloc_obj(*vcq, GFP_KERNEL);
if (!vcq)
return ERR_PTR(-ENOMEM);
@@ -558,7 +558,7 @@ static struct ionic_aq *__ionic_create_rdma_adminq(struct ionic_ibdev *dev,
struct ionic_aq *aq;
int rc;
- aq = kzalloc(sizeof(*aq), GFP_KERNEL);
+ aq = kzalloc_obj(*aq, GFP_KERNEL);
if (!aq)
return ERR_PTR(-ENOMEM);
@@ -575,7 +575,7 @@ static struct ionic_aq *__ionic_create_rdma_adminq(struct ionic_ibdev *dev,
ionic_queue_dbell_init(&aq->q, aq->aqid);
- aq->q_wr = kcalloc((u32)aq->q.mask + 1, sizeof(*aq->q_wr), GFP_KERNEL);
+ aq->q_wr = kzalloc_objs(*aq->q_wr, (u32)aq->q.mask + 1, GFP_KERNEL);
if (!aq->q_wr) {
rc = -ENOMEM;
goto err_wr;
@@ -983,7 +983,7 @@ static struct ionic_eq *ionic_create_eq(struct ionic_ibdev *dev, int eqid)
struct ionic_eq *eq;
int rc;
- eq = kzalloc(sizeof(*eq), GFP_KERNEL);
+ eq = kzalloc_obj(*eq, GFP_KERNEL);
if (!eq)
return ERR_PTR(-ENOMEM);
@@ -1095,8 +1095,8 @@ int ionic_create_rdma_admin(struct ionic_ibdev *dev)
goto out;
}
- dev->eq_vec = kmalloc_array(dev->lif_cfg.eq_count, sizeof(*dev->eq_vec),
- GFP_KERNEL);
+ dev->eq_vec = kmalloc_objs(*dev->eq_vec, dev->lif_cfg.eq_count,
+ GFP_KERNEL);
if (!dev->eq_vec) {
rc = -ENOMEM;
goto out;
@@ -1126,8 +1126,8 @@ int ionic_create_rdma_admin(struct ionic_ibdev *dev)
dev->lif_cfg.eq_count = eq_i;
- dev->aq_vec = kmalloc_array(dev->lif_cfg.aq_count, sizeof(*dev->aq_vec),
- GFP_KERNEL);
+ dev->aq_vec = kmalloc_objs(*dev->aq_vec, dev->lif_cfg.aq_count,
+ GFP_KERNEL);
if (!dev->aq_vec) {
rc = -ENOMEM;
goto out;
diff --git a/drivers/infiniband/hw/ionic/ionic_controlpath.c b/drivers/infiniband/hw/ionic/ionic_controlpath.c
index ea12d9b8e125..9a2b09b783e0 100644
--- a/drivers/infiniband/hw/ionic/ionic_controlpath.c
+++ b/drivers/infiniband/hw/ionic/ionic_controlpath.c
@@ -343,7 +343,7 @@ ionic_mmap_entry_insert(struct ionic_ctx *ctx, unsigned long size,
struct ionic_mmap_entry *entry;
int rc;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return NULL;
@@ -852,7 +852,7 @@ struct ib_mr *ionic_get_dma_mr(struct ib_pd *ibpd, int access)
struct ionic_pd *pd = to_ionic_pd(ibpd);
struct ionic_mr *mr;
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -878,7 +878,7 @@ struct ib_mr *ionic_reg_user_mr(struct ib_pd *ibpd, u64 start, u64 length,
if (dmah)
return ERR_PTR(-EOPNOTSUPP);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -945,7 +945,7 @@ struct ib_mr *ionic_reg_user_mr_dmabuf(struct ib_pd *ibpd, u64 offset,
if (dmah)
return ERR_PTR(-EOPNOTSUPP);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -1039,7 +1039,7 @@ struct ib_mr *ionic_alloc_mr(struct ib_pd *ibpd, enum ib_mr_type type,
if (type != IB_MR_TYPE_MEM_REG)
return ERR_PTR(-EINVAL);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -1868,9 +1868,8 @@ static int ionic_qp_sq_init(struct ionic_ibdev *dev, struct ionic_ctx *ctx,
ionic_queue_dbell_init(&qp->sq, qp->qpid);
- qp->sq_meta = kmalloc_array((u32)qp->sq.mask + 1,
- sizeof(*qp->sq_meta),
- GFP_KERNEL);
+ qp->sq_meta = kmalloc_objs(*qp->sq_meta, (u32)qp->sq.mask + 1,
+ GFP_KERNEL);
if (!qp->sq_meta) {
rc = -ENOMEM;
goto err_sq_meta;
@@ -2083,9 +2082,8 @@ static int ionic_qp_rq_init(struct ionic_ibdev *dev, struct ionic_ctx *ctx,
ionic_queue_dbell_init(&qp->rq, qp->qpid);
- qp->rq_meta = kmalloc_array((u32)qp->rq.mask + 1,
- sizeof(*qp->rq_meta),
- GFP_KERNEL);
+ qp->rq_meta = kmalloc_objs(*qp->rq_meta, (u32)qp->rq.mask + 1,
+ GFP_KERNEL);
if (!qp->rq_meta) {
rc = -ENOMEM;
goto err_rq_meta;
@@ -2205,7 +2203,7 @@ int ionic_create_qp(struct ib_qp *ibqp, struct ib_qp_init_attr *attr,
qp->has_ah = attr->qp_type == IB_QPT_RC;
if (qp->has_ah) {
- qp->hdr = kzalloc(sizeof(*qp->hdr), GFP_KERNEL);
+ qp->hdr = kzalloc_obj(*qp->hdr, GFP_KERNEL);
if (!qp->hdr) {
rc = -ENOMEM;
goto err_ah_alloc;
diff --git a/drivers/infiniband/hw/ionic/ionic_hw_stats.c b/drivers/infiniband/hw/ionic/ionic_hw_stats.c
index 244a80dde08f..3fbdc007dd05 100644
--- a/drivers/infiniband/hw/ionic/ionic_hw_stats.c
+++ b/drivers/infiniband/hw/ionic/ionic_hw_stats.c
@@ -155,9 +155,8 @@ static int ionic_init_hw_stats(struct ionic_ibdev *dev)
dev->hw_stats_count = hw_stats_count;
/* alloc and init array of names, for alloc_hw_stats */
- dev->hw_stats_hdrs = kcalloc(hw_stats_count,
- sizeof(*dev->hw_stats_hdrs),
- GFP_KERNEL);
+ dev->hw_stats_hdrs = kzalloc_objs(*dev->hw_stats_hdrs, hw_stats_count,
+ GFP_KERNEL);
if (!dev->hw_stats_hdrs) {
rc = -ENOMEM;
goto err_dma;
@@ -241,7 +240,7 @@ ionic_counter_alloc_stats(struct rdma_counter *counter)
struct ionic_counter *cntr;
int err;
- cntr = kzalloc(sizeof(*cntr), GFP_KERNEL);
+ cntr = kzalloc_obj(*cntr, GFP_KERNEL);
if (!cntr)
return NULL;
@@ -402,8 +401,8 @@ static int ionic_alloc_counters(struct ionic_ibdev *dev)
cs->queue_stats_count = hw_stats_count;
/* alloc and init array of names */
- cs->stats_hdrs = kcalloc(hw_stats_count, sizeof(*cs->stats_hdrs),
- GFP_KERNEL);
+ cs->stats_hdrs = kzalloc_objs(*cs->stats_hdrs, hw_stats_count,
+ GFP_KERNEL);
if (!cs->stats_hdrs) {
rc = -ENOMEM;
goto err_dma;
@@ -449,8 +448,8 @@ void ionic_stats_init(struct ionic_ibdev *dev)
}
if (stats_type & IONIC_LIF_RDMA_STAT_QP) {
- dev->counter_stats = kzalloc(sizeof(*dev->counter_stats),
- GFP_KERNEL);
+ dev->counter_stats = kzalloc_obj(*dev->counter_stats,
+ GFP_KERNEL);
if (!dev->counter_stats)
return;
diff --git a/drivers/infiniband/hw/irdma/cm.c b/drivers/infiniband/hw/irdma/cm.c
index f4f4f92ba63a..aaff968138e2 100644
--- a/drivers/infiniband/hw/irdma/cm.c
+++ b/drivers/infiniband/hw/irdma/cm.c
@@ -234,7 +234,7 @@ static struct irdma_cm_event *irdma_create_event(struct irdma_cm_node *cm_node,
if (!cm_node->cm_id)
return NULL;
- event = kzalloc(sizeof(*event), GFP_ATOMIC);
+ event = kzalloc_obj(*event, GFP_ATOMIC);
if (!event)
return NULL;
@@ -1136,7 +1136,7 @@ int irdma_schedule_cm_timer(struct irdma_cm_node *cm_node,
u32 was_timer_set;
unsigned long flags;
- new_send = kzalloc(sizeof(*new_send), GFP_ATOMIC);
+ new_send = kzalloc_obj(*new_send, GFP_ATOMIC);
if (!new_send) {
if (type != IRDMA_TIMER_TYPE_CLOSE)
irdma_free_sqbuf(vsi, sqbuf);
@@ -1683,7 +1683,8 @@ static int irdma_add_mqh_6(struct irdma_device *iwdev,
ibdev_dbg(&iwdev->ibdev, "CM: IP=%pI6, vlan_id=%d, MAC=%pM\n",
&ifp->addr, rdma_vlan_dev_vlan_id(ip_dev),
ip_dev->dev_addr);
- child_listen_node = kzalloc(sizeof(*child_listen_node), GFP_KERNEL);
+ child_listen_node = kzalloc_obj(*child_listen_node,
+ GFP_KERNEL);
ibdev_dbg(&iwdev->ibdev, "CM: Allocating child listener %p\n",
child_listen_node);
if (!child_listen_node) {
@@ -1771,7 +1772,8 @@ static int irdma_add_mqh_4(struct irdma_device *iwdev,
"CM: Allocating child CM Listener forIP=%pI4, vlan_id=%d, MAC=%pM\n",
&ifa->ifa_address, rdma_vlan_dev_vlan_id(ip_dev),
ip_dev->dev_addr);
- child_listen_node = kzalloc(sizeof(*child_listen_node), GFP_KERNEL);
+ child_listen_node = kzalloc_obj(*child_listen_node,
+ GFP_KERNEL);
cm_parent_listen_node->cm_core->stats_listen_nodes_created++;
ibdev_dbg(&iwdev->ibdev, "CM: Allocating child listener %p\n",
child_listen_node);
@@ -2243,7 +2245,7 @@ irdma_make_cm_node(struct irdma_cm_core *cm_core, struct irdma_device *iwdev,
struct net_device *netdev = iwdev->netdev;
/* create an hte and cm_node for this instance */
- cm_node = kzalloc(sizeof(*cm_node), GFP_ATOMIC);
+ cm_node = kzalloc_obj(*cm_node, GFP_ATOMIC);
if (!cm_node)
return NULL;
@@ -2967,7 +2969,7 @@ irdma_make_listen_node(struct irdma_cm_core *cm_core,
/* create a CM listen node
* 1/2 node to compare incoming traffic to
*/
- listener = kzalloc(sizeof(*listener), GFP_KERNEL);
+ listener = kzalloc_obj(*listener, GFP_KERNEL);
if (!listener)
return NULL;
cm_core->stats_listen_nodes_created++;
@@ -3444,7 +3446,7 @@ void irdma_cm_disconn(struct irdma_qp *iwqp)
struct disconn_work *work;
unsigned long flags;
- work = kzalloc(sizeof(*work), GFP_ATOMIC);
+ work = kzalloc_obj(*work, GFP_ATOMIC);
if (!work)
return;
diff --git a/drivers/infiniband/hw/irdma/hw.c b/drivers/infiniband/hw/irdma/hw.c
index 31c67b753fc0..8da3b2799593 100644
--- a/drivers/infiniband/hw/irdma/hw.c
+++ b/drivers/infiniband/hw/irdma/hw.c
@@ -1029,7 +1029,7 @@ static int irdma_create_cqp(struct irdma_pci_f *rf)
u16 maj_err, min_err;
int i, status;
- cqp->cqp_requests = kcalloc(sqsize, sizeof(*cqp->cqp_requests), GFP_KERNEL);
+ cqp->cqp_requests = kzalloc_objs(*cqp->cqp_requests, sqsize, GFP_KERNEL);
if (!cqp->cqp_requests)
return -ENOMEM;
@@ -1039,8 +1039,7 @@ static int irdma_create_cqp(struct irdma_pci_f *rf)
goto err_scratch;
}
- cqp->oop_op_array = kcalloc(sqsize, sizeof(*cqp->oop_op_array),
- GFP_KERNEL);
+ cqp->oop_op_array = kzalloc_objs(*cqp->oop_op_array, sqsize, GFP_KERNEL);
if (!cqp->oop_op_array) {
status = -ENOMEM;
goto err_oop;
@@ -1366,7 +1365,7 @@ static int irdma_setup_ceq_0(struct irdma_pci_f *rf)
u32 num_ceqs;
num_ceqs = min(rf->msix_count, rf->sc_dev.hmc_fpm_misc.max_ceqs);
- rf->ceqlist = kcalloc(num_ceqs, sizeof(*rf->ceqlist), GFP_KERNEL);
+ rf->ceqlist = kzalloc_objs(*rf->ceqlist, num_ceqs, GFP_KERNEL);
if (!rf->ceqlist) {
status = -ENOMEM;
goto exit;
@@ -2466,7 +2465,7 @@ struct irdma_apbvt_entry *irdma_add_apbvt(struct irdma_device *iwdev, u16 port)
return entry;
}
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (!entry) {
spin_unlock_irqrestore(&cm_core->apbvt_lock, flags);
return NULL;
diff --git a/drivers/infiniband/hw/irdma/i40iw_if.c b/drivers/infiniband/hw/irdma/i40iw_if.c
index 15e036ddaffb..eea222ae125a 100644
--- a/drivers/infiniband/hw/irdma/i40iw_if.c
+++ b/drivers/infiniband/hw/irdma/i40iw_if.c
@@ -120,7 +120,7 @@ static int i40iw_open(struct i40e_info *cdev_info, struct i40e_client *client)
if (!iwdev)
return -ENOMEM;
- iwdev->rf = kzalloc(sizeof(*rf), GFP_KERNEL);
+ iwdev->rf = kzalloc_obj(*rf, GFP_KERNEL);
if (!iwdev->rf) {
ib_dealloc_device(&iwdev->ibdev);
return -ENOMEM;
diff --git a/drivers/infiniband/hw/irdma/icrdma_if.c b/drivers/infiniband/hw/irdma/icrdma_if.c
index b49fd9cf2476..60f3c7f1547d 100644
--- a/drivers/infiniband/hw/irdma/icrdma_if.c
+++ b/drivers/infiniband/hw/irdma/icrdma_if.c
@@ -167,8 +167,8 @@ static int icrdma_init_interrupts(struct irdma_pci_f *rf, struct iidc_rdma_core_
int i;
rf->msix_count = num_online_cpus() + IRDMA_NUM_AEQ_MSIX;
- rf->msix_entries = kcalloc(rf->msix_count, sizeof(*rf->msix_entries),
- GFP_KERNEL);
+ rf->msix_entries = kzalloc_objs(*rf->msix_entries, rf->msix_count,
+ GFP_KERNEL);
if (!rf->msix_entries)
return -ENOMEM;
@@ -258,7 +258,7 @@ static int icrdma_probe(struct auxiliary_device *aux_dev, const struct auxiliary
iwdev = ib_alloc_device(irdma_device, ibdev);
if (!iwdev)
return -ENOMEM;
- iwdev->rf = kzalloc(sizeof(*rf), GFP_KERNEL);
+ iwdev->rf = kzalloc_obj(*rf, GFP_KERNEL);
if (!iwdev->rf) {
ib_dealloc_device(&iwdev->ibdev);
return -ENOMEM;
diff --git a/drivers/infiniband/hw/irdma/ig3rdma_if.c b/drivers/infiniband/hw/irdma/ig3rdma_if.c
index e1d6670d9396..4d581ec341f3 100644
--- a/drivers/infiniband/hw/irdma/ig3rdma_if.c
+++ b/drivers/infiniband/hw/irdma/ig3rdma_if.c
@@ -101,8 +101,8 @@ static int ig3rdma_cfg_regions(struct irdma_hw *hw,
return -ENOMEM;
hw->num_io_regions = le16_to_cpu(idc_priv->num_memory_regions);
- hw->io_regs = kcalloc(hw->num_io_regions,
- sizeof(struct irdma_mmio_region), GFP_KERNEL);
+ hw->io_regs = kzalloc_objs(struct irdma_mmio_region, hw->num_io_regions,
+ GFP_KERNEL);
if (!hw->io_regs) {
iounmap(hw->rdma_reg.addr);
@@ -175,7 +175,7 @@ static int ig3rdma_core_probe(struct auxiliary_device *aux_dev,
struct irdma_pci_f *rf;
int err;
- rf = kzalloc(sizeof(*rf), GFP_KERNEL);
+ rf = kzalloc_obj(*rf, GFP_KERNEL);
if (!rf)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/irdma/utils.c b/drivers/infiniband/hw/irdma/utils.c
index 960432bf7fc9..ab8c5284d4be 100644
--- a/drivers/infiniband/hw/irdma/utils.c
+++ b/drivers/infiniband/hw/irdma/utils.c
@@ -438,7 +438,7 @@ struct irdma_cqp_request *irdma_alloc_and_get_cqp_request(struct irdma_cqp *cqp,
}
spin_unlock_irqrestore(&cqp->req_lock, flags);
if (!cqp_request) {
- cqp_request = kzalloc(sizeof(*cqp_request), GFP_ATOMIC);
+ cqp_request = kzalloc_obj(*cqp_request, GFP_ATOMIC);
if (cqp_request) {
cqp_request->dynamic = true;
if (wait)
@@ -2025,7 +2025,7 @@ int irdma_puda_create_ah(struct irdma_sc_dev *dev,
struct irdma_pci_f *rf = dev_to_rf(dev);
int err;
- ah = kzalloc(sizeof(*ah), GFP_ATOMIC);
+ ah = kzalloc_obj(*ah, GFP_ATOMIC);
*ah_ret = ah;
if (!ah)
return -ENOMEM;
@@ -2431,7 +2431,7 @@ void irdma_generate_flush_completions(struct irdma_qp *iwqp)
spin_lock_irqsave(&iwqp->lock, flags2);
while (IRDMA_RING_MORE_WORK(*sq_ring)) {
- cmpl = kzalloc(sizeof(*cmpl), GFP_ATOMIC);
+ cmpl = kzalloc_obj(*cmpl, GFP_ATOMIC);
if (!cmpl) {
spin_unlock_irqrestore(&iwqp->lock, flags2);
spin_unlock_irqrestore(&iwscq->lock, flags1);
@@ -2475,7 +2475,7 @@ void irdma_generate_flush_completions(struct irdma_qp *iwqp)
spin_lock_irqsave(&iwqp->lock, flags2);
while (IRDMA_RING_MORE_WORK(*rq_ring)) {
- cmpl = kzalloc(sizeof(*cmpl), GFP_ATOMIC);
+ cmpl = kzalloc_obj(*cmpl, GFP_ATOMIC);
if (!cmpl) {
spin_unlock_irqrestore(&iwqp->lock, flags2);
spin_unlock_irqrestore(&iwrcq->lock, flags1);
diff --git a/drivers/infiniband/hw/irdma/verbs.c b/drivers/infiniband/hw/irdma/verbs.c
index cf8d19150574..818ea15d5d92 100644
--- a/drivers/infiniband/hw/irdma/verbs.c
+++ b/drivers/infiniband/hw/irdma/verbs.c
@@ -157,7 +157,7 @@ static struct rdma_user_mmap_entry*
irdma_user_mmap_entry_insert(struct irdma_ucontext *ucontext, u64 bar_offset,
enum irdma_mmap_flag mmap_flag, u64 *mmap_offset)
{
- struct irdma_user_mmap_entry *entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ struct irdma_user_mmap_entry *entry = kzalloc_obj(*entry, GFP_KERNEL);
int ret;
if (!entry)
@@ -709,12 +709,14 @@ static int irdma_setup_kmode_qp(struct irdma_device *iwdev,
return status;
iwqp->kqp.sq_wrid_mem =
- kcalloc(ukinfo->sq_depth, sizeof(*iwqp->kqp.sq_wrid_mem), GFP_KERNEL);
+ kzalloc_objs(*iwqp->kqp.sq_wrid_mem, ukinfo->sq_depth,
+ GFP_KERNEL);
if (!iwqp->kqp.sq_wrid_mem)
return -ENOMEM;
iwqp->kqp.rq_wrid_mem =
- kcalloc(ukinfo->rq_depth, sizeof(*iwqp->kqp.rq_wrid_mem), GFP_KERNEL);
+ kzalloc_objs(*iwqp->kqp.rq_wrid_mem, ukinfo->rq_depth,
+ GFP_KERNEL);
if (!iwqp->kqp.rq_wrid_mem) {
kfree(iwqp->kqp.sq_wrid_mem);
@@ -2109,7 +2111,7 @@ static int irdma_resize_cq(struct ib_cq *ibcq, int entries,
info.cq_base = kmem_buf.va;
info.cq_pa = kmem_buf.pa;
- cq_buf = kzalloc(sizeof(*cq_buf), GFP_KERNEL);
+ cq_buf = kzalloc_obj(*cq_buf, GFP_KERNEL);
if (!cq_buf) {
ret = -ENOMEM;
goto error;
@@ -3151,7 +3153,7 @@ static struct ib_mr *irdma_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
u32 stag;
int err_code;
- iwmr = kzalloc(sizeof(*iwmr), GFP_KERNEL);
+ iwmr = kzalloc_obj(*iwmr, GFP_KERNEL);
if (!iwmr)
return ERR_PTR(-ENOMEM);
@@ -3368,7 +3370,7 @@ static struct irdma_mr *irdma_alloc_iwmr(struct ib_umem *region,
struct irdma_mr *iwmr;
unsigned long pgsz_bitmap;
- iwmr = kzalloc(sizeof(*iwmr), GFP_KERNEL);
+ iwmr = kzalloc_obj(*iwmr, GFP_KERNEL);
if (!iwmr)
return ERR_PTR(-ENOMEM);
@@ -3807,7 +3809,7 @@ struct ib_mr *irdma_reg_phys_mr(struct ib_pd *pd, u64 addr, u64 size, int access
u32 stag;
int ret;
- iwmr = kzalloc(sizeof(*iwmr), GFP_KERNEL);
+ iwmr = kzalloc_obj(*iwmr, GFP_KERNEL);
if (!iwmr)
return ERR_PTR(-ENOMEM);
@@ -4849,7 +4851,7 @@ static int irdma_attach_mcast(struct ib_qp *ibqp, union ib_gid *ibgid, u16 lid)
struct irdma_dma_mem *dma_mem_mc;
spin_unlock_irqrestore(&rf->qh_list_lock, flags);
- mc_qht_elem = kzalloc(sizeof(*mc_qht_elem), GFP_KERNEL);
+ mc_qht_elem = kzalloc_obj(*mc_qht_elem, GFP_KERNEL);
if (!mc_qht_elem)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/mana/cq.c b/drivers/infiniband/hw/mana/cq.c
index 974dd610dcbf..413fde213120 100644
--- a/drivers/infiniband/hw/mana/cq.c
+++ b/drivers/infiniband/hw/mana/cq.c
@@ -147,7 +147,7 @@ int mana_ib_install_cq_cb(struct mana_ib_dev *mdev, struct mana_ib_cq *cq)
if (cq->queue.kmem)
gdma_cq = cq->queue.kmem;
else
- gdma_cq = kzalloc(sizeof(*gdma_cq), GFP_KERNEL);
+ gdma_cq = kzalloc_obj(*gdma_cq, GFP_KERNEL);
if (!gdma_cq)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/mana/main.c b/drivers/infiniband/hw/mana/main.c
index fac159f7128d..3d6a9c427269 100644
--- a/drivers/infiniband/hw/mana/main.c
+++ b/drivers/infiniband/hw/mana/main.c
@@ -793,8 +793,8 @@ int mana_ib_create_eqs(struct mana_ib_dev *mdev)
if (err)
return err;
- mdev->eqs = kcalloc(mdev->ib_dev.num_comp_vectors, sizeof(struct gdma_queue *),
- GFP_KERNEL);
+ mdev->eqs = kzalloc_objs(struct gdma_queue *,
+ mdev->ib_dev.num_comp_vectors, GFP_KERNEL);
if (!mdev->eqs) {
err = -ENOMEM;
goto destroy_fatal_eq;
diff --git a/drivers/infiniband/hw/mana/mr.c b/drivers/infiniband/hw/mana/mr.c
index f979f26adc3b..b67d94842721 100644
--- a/drivers/infiniband/hw/mana/mr.c
+++ b/drivers/infiniband/hw/mana/mr.c
@@ -137,7 +137,7 @@ struct ib_mr *mana_ib_reg_user_mr(struct ib_pd *ibpd, u64 start, u64 length,
if (access_flags & ~VALID_MR_FLAGS)
return ERR_PTR(-EINVAL);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -221,7 +221,7 @@ struct ib_mr *mana_ib_reg_user_mr_dmabuf(struct ib_pd *ibpd, u64 start, u64 leng
if (access_flags & ~VALID_MR_FLAGS)
return ERR_PTR(-EOPNOTSUPP);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -286,7 +286,7 @@ struct ib_mr *mana_ib_get_dma_mr(struct ib_pd *ibpd, int access_flags)
if (access_flags & ~VALID_DMA_MR_FLAGS)
return ERR_PTR(-EINVAL);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -360,7 +360,7 @@ struct ib_dm *mana_ib_alloc_dm(struct ib_device *ibdev,
struct mana_ib_dm *dm;
int err;
- dm = kzalloc(sizeof(*dm), GFP_KERNEL);
+ dm = kzalloc_obj(*dm, GFP_KERNEL);
if (!dm)
return ERR_PTR(-ENOMEM);
@@ -425,7 +425,7 @@ struct ib_mr *mana_ib_reg_dm_mr(struct ib_pd *ibpd, struct ib_dm *ibdm,
if (attr->access_flags & ~VALID_MR_FLAGS)
return ERR_PTR(-EOPNOTSUPP);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/mana/qp.c b/drivers/infiniband/hw/mana/qp.c
index 48c1f4977f21..811b8e0eab67 100644
--- a/drivers/infiniband/hw/mana/qp.c
+++ b/drivers/infiniband/hw/mana/qp.c
@@ -164,8 +164,7 @@ static int mana_ib_create_qp_rss(struct ib_qp *ibqp, struct ib_pd *pd,
ibdev_dbg(&mdev->ib_dev, "rx_hash_function %d port %d\n",
ucmd.rx_hash_function, port);
- mana_ind_table = kcalloc(ind_tbl_size, sizeof(mana_handle_t),
- GFP_KERNEL);
+ mana_ind_table = kzalloc_objs(mana_handle_t, ind_tbl_size, GFP_KERNEL);
if (!mana_ind_table) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/infiniband/hw/mana/wq.c b/drivers/infiniband/hw/mana/wq.c
index f959f4b9244f..05789069369b 100644
--- a/drivers/infiniband/hw/mana/wq.c
+++ b/drivers/infiniband/hw/mana/wq.c
@@ -25,7 +25,7 @@ struct ib_wq *mana_ib_create_wq(struct ib_pd *pd,
return ERR_PTR(err);
}
- wq = kzalloc(sizeof(*wq), GFP_KERNEL);
+ wq = kzalloc_obj(*wq, GFP_KERNEL);
if (!wq)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/mlx4/alias_GUID.c b/drivers/infiniband/hw/mlx4/alias_GUID.c
index d7327735b8d0..82c01b99b60d 100644
--- a/drivers/infiniband/hw/mlx4/alias_GUID.c
+++ b/drivers/infiniband/hw/mlx4/alias_GUID.c
@@ -513,7 +513,7 @@ static int set_guid_rec(struct ib_device *ibdev,
goto new_schedule;
}
- callback_context = kmalloc(sizeof *callback_context, GFP_KERNEL);
+ callback_context = kmalloc_obj(*callback_context, GFP_KERNEL);
if (!callback_context) {
err = -ENOMEM;
resched_delay = HZ * 5;
@@ -754,7 +754,7 @@ static void alias_guid_work(struct work_struct *work)
alias_guid);
struct mlx4_ib_dev *dev = container_of(ib_sriov, struct mlx4_ib_dev, sriov);
- rec = kzalloc(sizeof *rec, GFP_KERNEL);
+ rec = kzalloc_obj(*rec, GFP_KERNEL);
if (!rec)
return;
@@ -835,8 +835,8 @@ int mlx4_ib_init_alias_guid_service(struct mlx4_ib_dev *dev)
if (!mlx4_is_master(dev->dev))
return 0;
- dev->sriov.alias_guid.sa_client =
- kzalloc(sizeof *dev->sriov.alias_guid.sa_client, GFP_KERNEL);
+ dev->sriov.alias_guid.sa_client = kzalloc_obj(*dev->sriov.alias_guid.sa_client,
+ GFP_KERNEL);
if (!dev->sriov.alias_guid.sa_client)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/mlx4/cm.c b/drivers/infiniband/hw/mlx4/cm.c
index 03aacd526860..a71603353dbd 100644
--- a/drivers/infiniband/hw/mlx4/cm.c
+++ b/drivers/infiniband/hw/mlx4/cm.c
@@ -235,7 +235,7 @@ id_map_alloc(struct ib_device *ibdev, int slave_id, u32 sl_cm_id)
struct id_map_entry *ent;
struct mlx4_ib_sriov *sriov = &to_mdev(ibdev)->sriov;
- ent = kmalloc(sizeof (struct id_map_entry), GFP_KERNEL);
+ ent = kmalloc_obj(struct id_map_entry, GFP_KERNEL);
if (!ent)
return ERR_PTR(-ENOMEM);
@@ -376,7 +376,7 @@ static int alloc_rej_tmout(struct mlx4_ib_sriov *sriov, u32 rem_pv_cm_id, int sl
}
xa_unlock(&sriov->xa_rej_tmout);
- item = kmalloc(sizeof(*item), GFP_KERNEL);
+ item = kmalloc_obj(*item, GFP_KERNEL);
if (!item)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/mlx4/cq.c b/drivers/infiniband/hw/mlx4/cq.c
index c592374f4a58..dc05b3d88fe4 100644
--- a/drivers/infiniband/hw/mlx4/cq.c
+++ b/drivers/infiniband/hw/mlx4/cq.c
@@ -300,7 +300,7 @@ static int mlx4_alloc_resize_buf(struct mlx4_ib_dev *dev, struct mlx4_ib_cq *cq,
if (cq->resize_buf)
return -EBUSY;
- cq->resize_buf = kmalloc(sizeof *cq->resize_buf, GFP_KERNEL);
+ cq->resize_buf = kmalloc_obj(*cq->resize_buf, GFP_KERNEL);
if (!cq->resize_buf)
return -ENOMEM;
@@ -328,7 +328,7 @@ static int mlx4_alloc_resize_umem(struct mlx4_ib_dev *dev, struct mlx4_ib_cq *cq
if (ib_copy_from_udata(&ucmd, udata, sizeof ucmd))
return -EFAULT;
- cq->resize_buf = kmalloc(sizeof *cq->resize_buf, GFP_KERNEL);
+ cq->resize_buf = kmalloc_obj(*cq->resize_buf, GFP_KERNEL);
if (!cq->resize_buf)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/mlx4/doorbell.c b/drivers/infiniband/hw/mlx4/doorbell.c
index 9bbd695a9fd5..62f9c65ca140 100644
--- a/drivers/infiniband/hw/mlx4/doorbell.c
+++ b/drivers/infiniband/hw/mlx4/doorbell.c
@@ -56,7 +56,7 @@ int mlx4_ib_db_map_user(struct ib_udata *udata, unsigned long virt,
if (page->user_virt == (virt & PAGE_MASK))
goto found;
- page = kmalloc(sizeof *page, GFP_KERNEL);
+ page = kmalloc_obj(*page, GFP_KERNEL);
if (!page) {
err = -ENOMEM;
goto out;
diff --git a/drivers/infiniband/hw/mlx4/mad.c b/drivers/infiniband/hw/mlx4/mad.c
index 91c714f72099..ac58fc6e3730 100644
--- a/drivers/infiniband/hw/mlx4/mad.c
+++ b/drivers/infiniband/hw/mlx4/mad.c
@@ -1133,8 +1133,8 @@ static void handle_slaves_guid_change(struct mlx4_ib_dev *dev, u32 port_num,
if (!mlx4_is_mfunc(dev->dev) || !mlx4_is_master(dev->dev))
return;
- in_mad = kmalloc(sizeof *in_mad, GFP_KERNEL);
- out_mad = kmalloc(sizeof *out_mad, GFP_KERNEL);
+ in_mad = kmalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
goto out;
@@ -1612,15 +1612,12 @@ static int mlx4_ib_alloc_pv_bufs(struct mlx4_ib_demux_pv_ctx *ctx,
tun_qp = &ctx->qp[qp_type];
- tun_qp->ring = kcalloc(nmbr_bufs,
- sizeof(struct mlx4_ib_buf),
- GFP_KERNEL);
+ tun_qp->ring = kzalloc_objs(struct mlx4_ib_buf, nmbr_bufs, GFP_KERNEL);
if (!tun_qp->ring)
return -ENOMEM;
- tun_qp->tx_ring = kcalloc(nmbr_bufs,
- sizeof (struct mlx4_ib_tun_tx_buf),
- GFP_KERNEL);
+ tun_qp->tx_ring = kzalloc_objs(struct mlx4_ib_tun_tx_buf, nmbr_bufs,
+ GFP_KERNEL);
if (!tun_qp->tx_ring) {
kfree(tun_qp->ring);
tun_qp->ring = NULL;
@@ -1958,7 +1955,7 @@ static int alloc_pv_object(struct mlx4_ib_dev *dev, int slave, int port,
struct mlx4_ib_demux_pv_ctx *ctx;
*ret_ctx = NULL;
- ctx = kzalloc(sizeof (struct mlx4_ib_demux_pv_ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(struct mlx4_ib_demux_pv_ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -2161,8 +2158,8 @@ static int mlx4_ib_alloc_demux_ctx(struct mlx4_ib_dev *dev,
int ret = 0;
int i;
- ctx->tun = kcalloc(dev->dev->caps.sqp_demux,
- sizeof (struct mlx4_ib_demux_pv_ctx *), GFP_KERNEL);
+ ctx->tun = kzalloc_objs(struct mlx4_ib_demux_pv_ctx *,
+ dev->dev->caps.sqp_demux, GFP_KERNEL);
if (!ctx->tun)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c
index dd35e03402ab..1dab78eb7a03 100644
--- a/drivers/infiniband/hw/mlx4/main.c
+++ b/drivers/infiniband/hw/mlx4/main.c
@@ -295,7 +295,8 @@ static int mlx4_ib_add_gid(const struct ib_gid_attr *attr, void **context)
if (free < 0) {
ret = -ENOSPC;
} else {
- port_gid_table->gids[free].ctx = kmalloc(sizeof(*port_gid_table->gids[free].ctx), GFP_ATOMIC);
+ port_gid_table->gids[free].ctx = kmalloc_obj(*port_gid_table->gids[free].ctx,
+ GFP_ATOMIC);
if (!port_gid_table->gids[free].ctx) {
ret = -ENOMEM;
} else {
@@ -314,8 +315,7 @@ static int mlx4_ib_add_gid(const struct ib_gid_attr *attr, void **context)
ctx->refcount++;
}
if (!ret && hw_update) {
- gids = kmalloc_array(MLX4_MAX_PORT_GIDS, sizeof(*gids),
- GFP_ATOMIC);
+ gids = kmalloc_objs(*gids, MLX4_MAX_PORT_GIDS, GFP_ATOMIC);
if (!gids) {
ret = -ENOMEM;
*context = NULL;
@@ -373,8 +373,7 @@ static int mlx4_ib_del_gid(const struct ib_gid_attr *attr, void **context)
if (!ret && hw_update) {
int i;
- gids = kmalloc_array(MLX4_MAX_PORT_GIDS, sizeof(*gids),
- GFP_ATOMIC);
+ gids = kmalloc_objs(*gids, MLX4_MAX_PORT_GIDS, GFP_ATOMIC);
if (!gids) {
ret = -ENOMEM;
} else {
@@ -462,8 +461,8 @@ static int mlx4_ib_query_device(struct ib_device *ibdev,
resp.response_length = offsetof(typeof(resp), response_length) +
sizeof(resp.response_length);
- in_mad = kzalloc(sizeof *in_mad, GFP_KERNEL);
- out_mad = kmalloc(sizeof *out_mad, GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
err = -ENOMEM;
if (!in_mad || !out_mad)
goto out;
@@ -661,8 +660,8 @@ static int ib_link_query_port(struct ib_device *ibdev, u32 port,
int mad_ifc_flags = MLX4_MAD_IFC_IGNORE_KEYS;
int err = -ENOMEM;
- in_mad = kzalloc(sizeof *in_mad, GFP_KERNEL);
- out_mad = kmalloc(sizeof *out_mad, GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
goto out;
@@ -840,8 +839,8 @@ int __mlx4_ib_query_gid(struct ib_device *ibdev, u32 port, int index,
int clear = 0;
int mad_ifc_flags = MLX4_MAD_IFC_IGNORE_KEYS;
- in_mad = kzalloc(sizeof *in_mad, GFP_KERNEL);
- out_mad = kmalloc(sizeof *out_mad, GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
goto out;
@@ -909,8 +908,8 @@ static int mlx4_ib_query_sl2vl(struct ib_device *ibdev, u32 port,
return 0;
}
- in_mad = kzalloc(sizeof(*in_mad), GFP_KERNEL);
- out_mad = kmalloc(sizeof(*out_mad), GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
goto out;
@@ -963,8 +962,8 @@ int __mlx4_ib_query_pkey(struct ib_device *ibdev, u32 port, u16 index,
int mad_ifc_flags = MLX4_MAD_IFC_IGNORE_KEYS;
int err = -ENOMEM;
- in_mad = kzalloc(sizeof *in_mad, GFP_KERNEL);
- out_mad = kmalloc(sizeof *out_mad, GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
goto out;
@@ -1268,7 +1267,7 @@ static int add_gid_entry(struct ib_qp *ibqp, union ib_gid *gid)
struct mlx4_ib_dev *mdev = to_mdev(ibqp->device);
struct mlx4_ib_gid_entry *ge;
- ge = kzalloc(sizeof *ge, GFP_KERNEL);
+ ge = kzalloc_obj(*ge, GFP_KERNEL);
if (!ge)
return -ENOMEM;
@@ -1708,7 +1707,7 @@ static struct ib_flow *mlx4_ib_create_flow(struct ib_qp *qp,
memset(type, 0, sizeof(type));
- mflow = kzalloc(sizeof(*mflow), GFP_KERNEL);
+ mflow = kzalloc_obj(*mflow, GFP_KERNEL);
if (!mflow) {
err = -ENOMEM;
goto err_free;
@@ -1845,7 +1844,7 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid)
if (mdev->dev->caps.steering_mode ==
MLX4_STEERING_MODE_DEVICE_MANAGED) {
- ib_steering = kmalloc(sizeof(*ib_steering), GFP_KERNEL);
+ ib_steering = kmalloc_obj(*ib_steering, GFP_KERNEL);
if (!ib_steering)
return -ENOMEM;
}
@@ -1979,8 +1978,8 @@ static int init_node_data(struct mlx4_ib_dev *dev)
int mad_ifc_flags = MLX4_MAD_IFC_IGNORE_KEYS;
int err = -ENOMEM;
- in_mad = kzalloc(sizeof *in_mad, GFP_KERNEL);
- out_mad = kmalloc(sizeof *out_mad, GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
goto out;
@@ -2158,8 +2157,7 @@ static int __mlx4_ib_alloc_diag_counters(struct mlx4_ib_dev *ibdev,
if (!port)
num_counters += ARRAY_SIZE(diag_device_only);
- *pdescs = kcalloc(num_counters, sizeof(struct rdma_stat_desc),
- GFP_KERNEL);
+ *pdescs = kzalloc_objs(struct rdma_stat_desc, num_counters, GFP_KERNEL);
if (!*pdescs)
return -ENOMEM;
@@ -2427,8 +2425,8 @@ static void mlx4_ib_alloc_eqs(struct mlx4_dev *dev, struct mlx4_ib_dev *ibdev)
{
int i, j, eq = 0, total_eqs = 0;
- ibdev->eq_table = kcalloc(dev->caps.num_comp_vectors,
- sizeof(ibdev->eq_table[0]), GFP_KERNEL);
+ ibdev->eq_table = kzalloc_objs(ibdev->eq_table[0],
+ dev->caps.num_comp_vectors, GFP_KERNEL);
if (!ibdev->eq_table)
return;
@@ -2732,8 +2730,7 @@ static int mlx4_ib_probe(struct auxiliary_device *adev,
counter_index = mlx4_get_default_counter_index(dev,
i + 1);
}
- new_counter_index = kmalloc(sizeof(*new_counter_index),
- GFP_KERNEL);
+ new_counter_index = kmalloc_obj(*new_counter_index, GFP_KERNEL);
if (!new_counter_index) {
err = -ENOMEM;
if (allocated)
@@ -2751,8 +2748,8 @@ static int mlx4_ib_probe(struct auxiliary_device *adev,
if (mlx4_is_bonded(dev))
for (i = 1; i < ibdev->num_ports ; ++i) {
new_counter_index =
- kmalloc(sizeof(struct counter_index),
- GFP_KERNEL);
+ kmalloc_obj(struct counter_index,
+ GFP_KERNEL);
if (!new_counter_index) {
err = -ENOMEM;
goto err_counter;
@@ -3035,12 +3032,12 @@ static void do_slave_init(struct mlx4_ib_dev *ibdev, int slave, int do_init)
ports = bitmap_weight(actv_ports.ports, dev->caps.num_ports);
first_port = find_first_bit(actv_ports.ports, dev->caps.num_ports);
- dm = kcalloc(ports, sizeof(*dm), GFP_ATOMIC);
+ dm = kzalloc_objs(*dm, ports, GFP_ATOMIC);
if (!dm)
return;
for (i = 0; i < ports; i++) {
- dm[i] = kmalloc(sizeof (struct mlx4_ib_demux_work), GFP_ATOMIC);
+ dm[i] = kmalloc_obj(struct mlx4_ib_demux_work, GFP_ATOMIC);
if (!dm[i]) {
while (--i >= 0)
kfree(dm[i]);
@@ -3195,7 +3192,7 @@ void mlx4_sched_ib_sl2vl_update_work(struct mlx4_ib_dev *ibdev,
{
struct ib_event_work *ew;
- ew = kmalloc(sizeof(*ew), GFP_ATOMIC);
+ ew = kmalloc_obj(*ew, GFP_ATOMIC);
if (ew) {
INIT_WORK(&ew->work, ib_sl2vl_update_work);
ew->port = port;
@@ -3218,7 +3215,7 @@ static int mlx4_ib_event(struct notifier_block *this, unsigned long event,
if (mlx4_is_bonded(dev) &&
((event == MLX4_DEV_EVENT_PORT_UP) ||
(event == MLX4_DEV_EVENT_PORT_DOWN))) {
- ew = kmalloc(sizeof(*ew), GFP_ATOMIC);
+ ew = kmalloc_obj(*ew, GFP_ATOMIC);
if (!ew)
return NOTIFY_DONE;
INIT_WORK(&ew->work, handle_bonded_port_state_event);
@@ -3267,7 +3264,7 @@ static int mlx4_ib_event(struct notifier_block *this, unsigned long event,
break;
case MLX4_DEV_EVENT_PORT_MGMT_CHANGE:
- ew = kmalloc(sizeof *ew, GFP_ATOMIC);
+ ew = kmalloc_obj(*ew, GFP_ATOMIC);
if (!ew)
return NOTIFY_DONE;
diff --git a/drivers/infiniband/hw/mlx4/mcg.c b/drivers/infiniband/hw/mlx4/mcg.c
index e279e69b9a51..ef4ab3bc6ffd 100644
--- a/drivers/infiniband/hw/mlx4/mcg.c
+++ b/drivers/infiniband/hw/mlx4/mcg.c
@@ -824,7 +824,7 @@ static struct mcast_group *acquire_group(struct mlx4_ib_demux_ctx *ctx,
if (!create)
return ERR_PTR(-ENOENT);
- group = kzalloc(sizeof(*group), GFP_KERNEL);
+ group = kzalloc_obj(*group, GFP_KERNEL);
if (!group)
return ERR_PTR(-ENOMEM);
@@ -946,7 +946,7 @@ int mlx4_ib_mcg_multiplex_handler(struct ib_device *ibdev, int port,
may_create = 1;
fallthrough;
case IB_SA_METHOD_DELETE:
- req = kzalloc(sizeof *req, GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -1150,7 +1150,7 @@ void mlx4_ib_mcg_port_cleanup(struct mlx4_ib_demux_ctx *ctx, int destroy_wq)
return;
}
- work = kmalloc(sizeof *work, GFP_KERNEL);
+ work = kmalloc_obj(*work, GFP_KERNEL);
if (!work) {
ctx->flushing = 0;
return;
@@ -1211,7 +1211,7 @@ static int push_deleteing_req(struct mcast_group *group, int slave)
if (!group->func[slave].join_state)
return 0;
- req = kzalloc(sizeof *req, GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/mlx4/mr.c b/drivers/infiniband/hw/mlx4/mr.c
index 94464f1694d9..27038065ee67 100644
--- a/drivers/infiniband/hw/mlx4/mr.c
+++ b/drivers/infiniband/hw/mlx4/mr.c
@@ -60,7 +60,7 @@ struct ib_mr *mlx4_ib_get_dma_mr(struct ib_pd *pd, int acc)
struct mlx4_ib_mr *mr;
int err;
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -151,7 +151,7 @@ struct ib_mr *mlx4_ib_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
if (dmah)
return ERR_PTR(-EOPNOTSUPP);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -394,7 +394,7 @@ struct ib_mr *mlx4_ib_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
max_num_sg > MLX4_MAX_FAST_REG_PAGES)
return ERR_PTR(-EINVAL);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c
index f2887ae6390e..c7dd9d6e4f8f 100644
--- a/drivers/infiniband/hw/mlx4/qp.c
+++ b/drivers/infiniband/hw/mlx4/qp.c
@@ -267,7 +267,7 @@ static void mlx4_ib_qp_event(struct mlx4_qp *qp, enum mlx4_event type)
if (!ibqp->event_handler)
goto out_no_handler;
- qpe_work = kzalloc(sizeof(*qpe_work), GFP_ATOMIC);
+ qpe_work = kzalloc_obj(*qpe_work, GFP_ATOMIC);
if (!qpe_work)
goto out_no_handler;
@@ -472,14 +472,12 @@ static int alloc_proxy_bufs(struct ib_device *dev, struct mlx4_ib_qp *qp)
int i;
qp->sqp_proxy_rcv =
- kmalloc_array(qp->rq.wqe_cnt, sizeof(struct mlx4_ib_buf),
- GFP_KERNEL);
+ kmalloc_objs(struct mlx4_ib_buf, qp->rq.wqe_cnt, GFP_KERNEL);
if (!qp->sqp_proxy_rcv)
return -ENOMEM;
for (i = 0; i < qp->rq.wqe_cnt; i++) {
qp->sqp_proxy_rcv[i].addr =
- kmalloc(sizeof (struct mlx4_ib_proxy_sqp_hdr),
- GFP_KERNEL);
+ kmalloc_obj(struct mlx4_ib_proxy_sqp_hdr, GFP_KERNEL);
if (!qp->sqp_proxy_rcv[i].addr)
goto err;
qp->sqp_proxy_rcv[i].map =
@@ -683,7 +681,7 @@ static int create_qp_rss(struct mlx4_ib_dev *dev,
qp->mtt = (to_mqp(
(struct ib_qp *)init_attr->rwq_ind_tbl->ind_tbl[0]))->mtt;
- qp->rss_ctx = kzalloc(sizeof(*qp->rss_ctx), GFP_KERNEL);
+ qp->rss_ctx = kzalloc_obj(*qp->rss_ctx, GFP_KERNEL);
if (!qp->rss_ctx) {
err = -ENOMEM;
goto err_qp_alloc;
@@ -793,7 +791,7 @@ static int mlx4_ib_alloc_wqn(struct mlx4_ib_ucontext *context,
struct mlx4_wqn_range, list);
if (!range || (range->refcount == range->size) || range->dirty) {
- range = kzalloc(sizeof(*range), GFP_KERNEL);
+ range = kzalloc_obj(*range, GFP_KERNEL);
if (!range) {
err = -ENOMEM;
goto out;
@@ -1051,7 +1049,7 @@ static int create_qp_common(struct ib_pd *pd, struct ib_qp_init_attr *init_attr,
qp_type == MLX4_IB_QPT_GSI ||
(qp_type & (MLX4_IB_QPT_PROXY_SMI | MLX4_IB_QPT_PROXY_SMI_OWNER |
MLX4_IB_QPT_PROXY_GSI | MLX4_IB_QPT_TUN_SMI_OWNER))) {
- qp->sqp = kzalloc(sizeof(struct mlx4_ib_sqp), GFP_KERNEL);
+ qp->sqp = kzalloc_obj(struct mlx4_ib_sqp, GFP_KERNEL);
if (!qp->sqp)
return -ENOMEM;
}
@@ -1972,7 +1970,7 @@ static int create_qp_lb_counter(struct mlx4_ib_dev *dev, struct mlx4_ib_qp *qp)
if (err)
return err;
- new_counter_index = kmalloc(sizeof(*new_counter_index), GFP_KERNEL);
+ new_counter_index = kmalloc_obj(*new_counter_index, GFP_KERNEL);
if (!new_counter_index) {
mlx4_counter_free(dev->dev, tmp_idx);
return -ENOMEM;
@@ -2165,7 +2163,7 @@ static int __mlx4_ib_modify_qp(void *src, enum mlx4_ib_source_type src_type,
IB_LINK_LAYER_ETHERNET)
return -ENOTSUPP;
- context = kzalloc(sizeof *context, GFP_KERNEL);
+ context = kzalloc_obj(*context, GFP_KERNEL);
if (!context)
return -ENOMEM;
@@ -4167,7 +4165,7 @@ struct ib_wq *mlx4_ib_create_wq(struct ib_pd *pd,
return ERR_PTR(-EOPNOTSUPP);
}
- qp = kzalloc(sizeof(*qp), GFP_KERNEL);
+ qp = kzalloc_obj(*qp, GFP_KERNEL);
if (!qp)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/mlx4/sysfs.c b/drivers/infiniband/hw/mlx4/sysfs.c
index 88f534cf690e..ba0356aa3038 100644
--- a/drivers/infiniband/hw/mlx4/sysfs.c
+++ b/drivers/infiniband/hw/mlx4/sysfs.c
@@ -244,8 +244,8 @@ static int add_port_entries(struct mlx4_ib_dev *device, int port_num)
* gids (operational)
* mcg_table
*/
- port->dentr_ar = kzalloc(sizeof (struct mlx4_ib_iov_sysfs_attr_ar),
- GFP_KERNEL);
+ port->dentr_ar = kzalloc_obj(struct mlx4_ib_iov_sysfs_attr_ar,
+ GFP_KERNEL);
if (!port->dentr_ar) {
ret = -ENOMEM;
goto err;
@@ -500,13 +500,12 @@ alloc_group_attrs(ssize_t (*show)(struct mlx4_port *,
struct port_table_attribute *element;
int i;
- tab_attr = kcalloc(1 + len, sizeof (struct attribute *), GFP_KERNEL);
+ tab_attr = kzalloc_objs(struct attribute *, 1 + len, GFP_KERNEL);
if (!tab_attr)
return NULL;
for (i = 0; i < len; i++) {
- element = kzalloc(sizeof (struct port_table_attribute),
- GFP_KERNEL);
+ element = kzalloc_obj(struct port_table_attribute, GFP_KERNEL);
if (!element)
goto err;
if (snprintf(element->name, sizeof (element->name),
@@ -630,7 +629,7 @@ static int add_port(struct mlx4_ib_dev *dev, int port_num, int slave)
int is_eth = rdma_port_get_link_layer(&dev->ib_dev, port_num) ==
IB_LINK_LAYER_ETHERNET;
- p = kzalloc(sizeof *p, GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/mlx5/cong.c b/drivers/infiniband/hw/mlx5/cong.c
index a78a067e3ce7..fb2bc450f4ff 100644
--- a/drivers/infiniband/hw/mlx5/cong.c
+++ b/drivers/infiniband/hw/mlx5/cong.c
@@ -449,7 +449,7 @@ void mlx5_ib_init_cong_debugfs(struct mlx5_ib_dev *dev, u32 port_num)
!MLX5_CAP_GEN(mdev, cc_modify_allowed))
goto put_mdev;
- dbg_cc_params = kzalloc(sizeof(*dbg_cc_params), GFP_KERNEL);
+ dbg_cc_params = kzalloc_obj(*dbg_cc_params, GFP_KERNEL);
if (!dbg_cc_params)
goto err;
diff --git a/drivers/infiniband/hw/mlx5/counters.c b/drivers/infiniband/hw/mlx5/counters.c
index e042e0719ead..10feeb77d569 100644
--- a/drivers/infiniband/hw/mlx5/counters.c
+++ b/drivers/infiniband/hw/mlx5/counters.c
@@ -858,13 +858,12 @@ static int __mlx5_ib_alloc_counters(struct mlx5_ib_dev *dev,
skip_non_qcounters:
cnts->num_op_counters = num_op_counters;
num_counters += num_op_counters;
- cnts->descs = kcalloc(num_counters,
- sizeof(struct rdma_stat_desc), GFP_KERNEL);
+ cnts->descs = kzalloc_objs(struct rdma_stat_desc, num_counters,
+ GFP_KERNEL);
if (!cnts->descs)
return -ENOMEM;
- cnts->offsets = kcalloc(num_counters,
- sizeof(*cnts->offsets), GFP_KERNEL);
+ cnts->offsets = kzalloc_objs(*cnts->offsets, num_counters, GFP_KERNEL);
if (!cnts->offsets)
goto err;
@@ -1074,9 +1073,8 @@ int mlx5_ib_flow_counters_set_data(struct ib_counters *ibcounters,
if (cntrs_data->ncounters > MAX_COUNTERS_NUM)
return -EINVAL;
- desc_data = kcalloc(cntrs_data->ncounters,
- sizeof(*desc_data),
- GFP_KERNEL);
+ desc_data = kzalloc_objs(*desc_data, cntrs_data->ncounters,
+ GFP_KERNEL);
if (!desc_data)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/mlx5/cq.c b/drivers/infiniband/hw/mlx5/cq.c
index 651d76bca114..c0e06c05555b 100644
--- a/drivers/infiniband/hw/mlx5/cq.c
+++ b/drivers/infiniband/hw/mlx5/cq.c
@@ -1210,7 +1210,7 @@ static int resize_kernel(struct mlx5_ib_dev *dev, struct mlx5_ib_cq *cq,
{
int err;
- cq->resize_buf = kzalloc(sizeof(*cq->resize_buf), GFP_KERNEL);
+ cq->resize_buf = kzalloc_obj(*cq->resize_buf, GFP_KERNEL);
if (!cq->resize_buf)
return -ENOMEM;
@@ -1449,7 +1449,7 @@ int mlx5_ib_generate_wc(struct ib_cq *ibcq, struct ib_wc *wc)
struct mlx5_ib_cq *cq = to_mcq(ibcq);
unsigned long flags;
- soft_wc = kmalloc(sizeof(*soft_wc), GFP_ATOMIC);
+ soft_wc = kmalloc_obj(*soft_wc, GFP_ATOMIC);
if (!soft_wc)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/mlx5/data_direct.c b/drivers/infiniband/hw/mlx5/data_direct.c
index b81ac5709b56..a93e31e23dc2 100644
--- a/drivers/infiniband/hw/mlx5/data_direct.c
+++ b/drivers/infiniband/hw/mlx5/data_direct.c
@@ -83,7 +83,7 @@ int mlx5_data_direct_ib_reg(struct mlx5_ib_dev *ibdev, char *vuid)
struct mlx5_data_direct_registration *reg;
struct mlx5_data_direct_dev *dev;
- reg = kzalloc(sizeof(*reg), GFP_KERNEL);
+ reg = kzalloc_obj(*reg, GFP_KERNEL);
if (!reg)
return -ENOMEM;
@@ -160,7 +160,7 @@ static int mlx5_data_direct_probe(struct pci_dev *pdev, const struct pci_device_
struct mlx5_data_direct_dev *dev;
int err;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/mlx5/devx.c
index d31d7f3005c6..5e1cefeaa494 100644
--- a/drivers/infiniband/hw/mlx5/devx.c
+++ b/drivers/infiniband/hw/mlx5/devx.c
@@ -1950,7 +1950,7 @@ subscribe_event_xa_alloc(struct mlx5_devx_event_table *devx_event_table,
event = xa_load(&devx_event_table->event_xa, key_level1);
if (!event) {
- event = kzalloc(sizeof(*event), GFP_KERNEL);
+ event = kzalloc_obj(*event, GFP_KERNEL);
if (!event)
return -ENOMEM;
@@ -1972,7 +1972,7 @@ subscribe_event_xa_alloc(struct mlx5_devx_event_table *devx_event_table,
obj_event = xa_load(&event->object_ids, key_level2);
if (!obj_event) {
- obj_event = kzalloc(sizeof(*obj_event), GFP_KERNEL);
+ obj_event = kzalloc_obj(*obj_event, GFP_KERNEL);
if (!obj_event)
/* Level1 is valid for future use, no need to free */
return -ENOMEM;
@@ -2697,7 +2697,7 @@ void mlx5_ib_ufile_hw_cleanup(struct ib_uverbs_file *ufile)
int head = 0;
int tail = 0;
- async_cmd = kcalloc(MAX_ASYNC_CMDS, sizeof(*async_cmd), GFP_KERNEL);
+ async_cmd = kzalloc_objs(*async_cmd, MAX_ASYNC_CMDS, GFP_KERNEL);
if (!async_cmd)
return;
diff --git a/drivers/infiniband/hw/mlx5/dm.c b/drivers/infiniband/hw/mlx5/dm.c
index 9ded2b7c1e31..db45ff9b64a8 100644
--- a/drivers/infiniband/hw/mlx5/dm.c
+++ b/drivers/infiniband/hw/mlx5/dm.c
@@ -285,7 +285,7 @@ static struct ib_dm *handle_alloc_dm_memic(struct ib_ucontext *ctx,
if (!dm_db || !MLX5_CAP_DEV_MEM(dm_db->dev, memic))
return ERR_PTR(-EOPNOTSUPP);
- dm = kzalloc(sizeof(*dm), GFP_KERNEL);
+ dm = kzalloc_obj(*dm, GFP_KERNEL);
if (!dm)
return ERR_PTR(-ENOMEM);
@@ -382,7 +382,7 @@ static struct ib_dm *handle_alloc_dm_sw_icm(struct ib_ucontext *ctx,
return ERR_PTR(-EOPNOTSUPP);
}
- dm = kzalloc(sizeof(*dm), GFP_KERNEL);
+ dm = kzalloc_obj(*dm, GFP_KERNEL);
if (!dm)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/mlx5/doorbell.c b/drivers/infiniband/hw/mlx5/doorbell.c
index e32111117a5e..277e16a2c714 100644
--- a/drivers/infiniband/hw/mlx5/doorbell.c
+++ b/drivers/infiniband/hw/mlx5/doorbell.c
@@ -58,7 +58,7 @@ int mlx5_ib_db_map_user(struct mlx5_ib_ucontext *context, unsigned long virt,
(page->user_virt == (virt & PAGE_MASK)))
goto found;
- page = kmalloc(sizeof(*page), GFP_KERNEL);
+ page = kmalloc_obj(*page, GFP_KERNEL);
if (!page) {
err = -ENOMEM;
goto out;
diff --git a/drivers/infiniband/hw/mlx5/fs.c b/drivers/infiniband/hw/mlx5/fs.c
index d17823ce7f38..3c23bf34b3ab 100644
--- a/drivers/infiniband/hw/mlx5/fs.c
+++ b/drivers/infiniband/hw/mlx5/fs.c
@@ -1021,7 +1021,7 @@ static struct mlx5_per_qp_opfc *get_per_qp_opfc(struct xarray *qpn_opfc_xa,
per_qp_opfc = xa_load(qpn_opfc_xa, qp_num);
if (per_qp_opfc)
return per_qp_opfc;
- per_qp_opfc = kzalloc(sizeof(*per_qp_opfc), GFP_KERNEL);
+ per_qp_opfc = kzalloc_obj(*per_qp_opfc, GFP_KERNEL);
if (!per_qp_opfc)
return NULL;
@@ -1057,7 +1057,7 @@ static int add_op_fc_rules(struct mlx5_ib_dev *dev,
opfc->fc = fc_arr[type];
- spec = kcalloc(MAX_OPFC_RULES, sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_objs(*spec, MAX_OPFC_RULES, GFP_KERNEL);
if (!spec) {
err = -ENOMEM;
goto null_fc;
@@ -1231,7 +1231,7 @@ int mlx5_ib_fs_add_op_fc(struct mlx5_ib_dev *dev, u32 port_num,
struct mlx5_ib_flow_prio *prio;
struct mlx5_flow_spec *spec;
- spec = kcalloc(MAX_OPFC_RULES, sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_objs(*spec, MAX_OPFC_RULES, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -1532,8 +1532,8 @@ static struct mlx5_ib_flow_handler *_create_flow_rule(struct mlx5_ib_dev *dev,
if (dev->is_rep && is_egress)
return ERR_PTR(-EINVAL);
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
- handler = kzalloc(sizeof(*handler), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
+ handler = kzalloc_obj(*handler, GFP_KERNEL);
if (!handler || !spec) {
err = -ENOMEM;
goto free;
@@ -1792,7 +1792,7 @@ static struct ib_flow *mlx5_ib_create_flow(struct ib_qp *qp,
goto free_ucmd;
}
- dst = kzalloc(sizeof(*dst), GFP_KERNEL);
+ dst = kzalloc_obj(*dst, GFP_KERNEL);
if (!dst) {
err = -ENOMEM;
goto free_ucmd;
@@ -2060,8 +2060,8 @@ _create_raw_flow_rule(struct mlx5_ib_dev *dev,
struct mlx5_flow_table *ft = ft_prio->flow_table;
int err = 0;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
- handler = kzalloc(sizeof(*handler), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
+ handler = kzalloc_obj(*handler, GFP_KERNEL);
if (!handler || !spec) {
err = -ENOMEM;
goto free;
@@ -2153,7 +2153,7 @@ static struct mlx5_ib_flow_handler *raw_fs_rule_add(
if (fs_matcher->priority > MLX5_IB_FLOW_LAST_PRIO)
return ERR_PTR(-ENOMEM);
- dst = kcalloc(2, sizeof(*dst), GFP_KERNEL);
+ dst = kzalloc_objs(*dst, 2, GFP_KERNEL);
if (!dst)
return ERR_PTR(-ENOMEM);
@@ -3080,7 +3080,7 @@ mlx5_ib_create_modify_header(struct mlx5_ib_dev *dev,
if (ret)
return ERR_PTR(-EINVAL);
- maction = kzalloc(sizeof(*maction), GFP_KERNEL);
+ maction = kzalloc_obj(*maction, GFP_KERNEL);
if (!maction)
return ERR_PTR(-ENOMEM);
@@ -3479,23 +3479,23 @@ int mlx5_ib_fs_init(struct mlx5_ib_dev *dev)
{
int i, j;
- dev->flow_db = kzalloc(sizeof(*dev->flow_db), GFP_KERNEL);
+ dev->flow_db = kzalloc_obj(*dev->flow_db, GFP_KERNEL);
if (!dev->flow_db)
return -ENOMEM;
for (i = 0; i < MLX5_RDMA_TRANSPORT_BYPASS_PRIO; i++) {
dev->flow_db->rdma_transport_rx[i] =
- kcalloc(dev->num_ports,
- sizeof(struct mlx5_ib_flow_prio), GFP_KERNEL);
+ kzalloc_objs(struct mlx5_ib_flow_prio, dev->num_ports,
+ GFP_KERNEL);
if (!dev->flow_db->rdma_transport_rx[i])
goto free_rdma_transport_rx;
}
for (j = 0; j < MLX5_RDMA_TRANSPORT_BYPASS_PRIO; j++) {
dev->flow_db->rdma_transport_tx[j] =
- kcalloc(dev->num_ports,
- sizeof(struct mlx5_ib_flow_prio), GFP_KERNEL);
+ kzalloc_objs(struct mlx5_ib_flow_prio, dev->num_ports,
+ GFP_KERNEL);
if (!dev->flow_db->rdma_transport_tx[j])
goto free_rdma_transport_tx;
}
diff --git a/drivers/infiniband/hw/mlx5/gsi.c b/drivers/infiniband/hw/mlx5/gsi.c
index d5487834ed25..f572d75f6fd6 100644
--- a/drivers/infiniband/hw/mlx5/gsi.c
+++ b/drivers/infiniband/hw/mlx5/gsi.c
@@ -104,13 +104,13 @@ int mlx5_ib_create_gsi(struct ib_pd *pd, struct mlx5_ib_qp *mqp,
}
gsi = &mqp->gsi;
- gsi->tx_qps = kcalloc(num_qps, sizeof(*gsi->tx_qps), GFP_KERNEL);
+ gsi->tx_qps = kzalloc_objs(*gsi->tx_qps, num_qps, GFP_KERNEL);
if (!gsi->tx_qps)
return -ENOMEM;
gsi->outstanding_wrs =
- kcalloc(attr->cap.max_send_wr, sizeof(*gsi->outstanding_wrs),
- GFP_KERNEL);
+ kzalloc_objs(*gsi->outstanding_wrs, attr->cap.max_send_wr,
+ GFP_KERNEL);
if (!gsi->outstanding_wrs) {
ret = -ENOMEM;
goto err_free_tx;
diff --git a/drivers/infiniband/hw/mlx5/ib_rep.c b/drivers/infiniband/hw/mlx5/ib_rep.c
index bbecca405171..72c870f4f54b 100644
--- a/drivers/infiniband/hw/mlx5/ib_rep.c
+++ b/drivers/infiniband/hw/mlx5/ib_rep.c
@@ -158,8 +158,7 @@ mlx5_ib_vport_rep_load(struct mlx5_core_dev *dev, struct mlx5_eswitch_rep *rep)
goto release_transport;
}
- ibdev->port = kcalloc(num_ports, sizeof(*ibdev->port),
- GFP_KERNEL);
+ ibdev->port = kzalloc_objs(*ibdev->port, num_ports, GFP_KERNEL);
if (!ibdev->port) {
ret = -ENOMEM;
goto fail_port;
diff --git a/drivers/infiniband/hw/mlx5/ib_virt.c b/drivers/infiniband/hw/mlx5/ib_virt.c
index afeb5e53254f..beb99db3f76f 100644
--- a/drivers/infiniband/hw/mlx5/ib_virt.c
+++ b/drivers/infiniband/hw/mlx5/ib_virt.c
@@ -55,7 +55,7 @@ int mlx5_ib_get_vf_config(struct ib_device *device, int vf, u32 port,
struct mlx5_hca_vport_context *rep;
int err;
- rep = kzalloc(sizeof(*rep), GFP_KERNEL);
+ rep = kzalloc_obj(*rep, GFP_KERNEL);
if (!rep)
return -ENOMEM;
@@ -98,7 +98,7 @@ int mlx5_ib_set_vf_link_state(struct ib_device *device, int vf,
struct mlx5_vf_context *vfs_ctx = mdev->priv.sriov.vfs_ctx;
int err;
- in = kzalloc(sizeof(*in), GFP_KERNEL);
+ in = kzalloc_obj(*in, GFP_KERNEL);
if (!in)
return -ENOMEM;
@@ -157,7 +157,7 @@ static int set_vf_node_guid(struct ib_device *device, int vf, u32 port,
struct mlx5_vf_context *vfs_ctx = mdev->priv.sriov.vfs_ctx;
int err;
- in = kzalloc(sizeof(*in), GFP_KERNEL);
+ in = kzalloc_obj(*in, GFP_KERNEL);
if (!in)
return -ENOMEM;
@@ -181,7 +181,7 @@ static int set_vf_port_guid(struct ib_device *device, int vf, u32 port,
struct mlx5_vf_context *vfs_ctx = mdev->priv.sriov.vfs_ctx;
int err;
- in = kzalloc(sizeof(*in), GFP_KERNEL);
+ in = kzalloc_obj(*in, GFP_KERNEL);
if (!in)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/mlx5/macsec.c b/drivers/infiniband/hw/mlx5/macsec.c
index 3c56eb5eddf3..f93ce56d7515 100644
--- a/drivers/infiniband/hw/mlx5/macsec.c
+++ b/drivers/infiniband/hw/mlx5/macsec.c
@@ -52,7 +52,7 @@ static struct mlx5_macsec_device *get_macsec_device(void *macdev,
if (macsec_device)
return macsec_device;
- macsec_device = kzalloc(sizeof(*macsec_device), GFP_KERNEL);
+ macsec_device = kzalloc_obj(*macsec_device, GFP_KERNEL);
if (!macsec_device)
return NULL;
@@ -82,7 +82,7 @@ static void mlx5_macsec_save_roce_gid(struct mlx5_macsec_device *macsec_device,
{
struct mlx5_roce_gids *roce_gids;
- roce_gids = kzalloc(sizeof(*roce_gids), GFP_KERNEL);
+ roce_gids = kzalloc_obj(*roce_gids, GFP_KERNEL);
if (!roce_gids)
return;
@@ -180,9 +180,8 @@ int mlx5r_macsec_init_gids_and_devlist(struct mlx5_ib_dev *dev)
max_gids = MLX5_CAP_ROCE(dev->mdev, roce_address_table_size);
for (i = 0; i < dev->num_ports; i++) {
- dev->port[i].reserved_gids = kcalloc(max_gids,
- sizeof(*dev->port[i].reserved_gids),
- GFP_KERNEL);
+ dev->port[i].reserved_gids = kzalloc_objs(*dev->port[i].reserved_gids,
+ max_gids, GFP_KERNEL);
if (!dev->port[i].reserved_gids)
goto err;
diff --git a/drivers/infiniband/hw/mlx5/mad.c b/drivers/infiniband/hw/mlx5/mad.c
index 2453ae4384a7..41dd186deffd 100644
--- a/drivers/infiniband/hw/mlx5/mad.c
+++ b/drivers/infiniband/hw/mlx5/mad.c
@@ -367,8 +367,8 @@ int mlx5_query_ext_port_caps(struct mlx5_ib_dev *dev, unsigned int port)
int err = -ENOMEM;
u16 packet_error;
- in_mad = kzalloc(sizeof(*in_mad), GFP_KERNEL);
- out_mad = kmalloc(sizeof(*out_mad), GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
goto out;
@@ -395,7 +395,7 @@ static int mlx5_query_mad_ifc_smp_attr_node_info(struct ib_device *ibdev,
struct ib_smp *in_mad;
int err;
- in_mad = kzalloc(sizeof(*in_mad), GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
if (!in_mad)
return -ENOMEM;
@@ -415,7 +415,7 @@ int mlx5_query_mad_ifc_system_image_guid(struct ib_device *ibdev,
struct ib_smp *out_mad;
int err;
- out_mad = kmalloc(sizeof(*out_mad), GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!out_mad)
return -ENOMEM;
@@ -437,7 +437,7 @@ int mlx5_query_mad_ifc_max_pkeys(struct ib_device *ibdev,
struct ib_smp *out_mad;
int err;
- out_mad = kmalloc(sizeof(*out_mad), GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!out_mad)
return -ENOMEM;
@@ -459,7 +459,7 @@ int mlx5_query_mad_ifc_vendor_id(struct ib_device *ibdev,
struct ib_smp *out_mad;
int err;
- out_mad = kmalloc(sizeof(*out_mad), GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!out_mad)
return -ENOMEM;
@@ -481,8 +481,8 @@ int mlx5_query_mad_ifc_node_desc(struct mlx5_ib_dev *dev, char *node_desc)
struct ib_smp *out_mad;
int err = -ENOMEM;
- in_mad = kzalloc(sizeof(*in_mad), GFP_KERNEL);
- out_mad = kmalloc(sizeof(*out_mad), GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
goto out;
@@ -506,8 +506,8 @@ int mlx5_query_mad_ifc_node_guid(struct mlx5_ib_dev *dev, __be64 *node_guid)
struct ib_smp *out_mad;
int err = -ENOMEM;
- in_mad = kzalloc(sizeof(*in_mad), GFP_KERNEL);
- out_mad = kmalloc(sizeof(*out_mad), GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
goto out;
@@ -532,8 +532,8 @@ int mlx5_query_mad_ifc_pkey(struct ib_device *ibdev, u32 port, u16 index,
struct ib_smp *out_mad;
int err = -ENOMEM;
- in_mad = kzalloc(sizeof(*in_mad), GFP_KERNEL);
- out_mad = kmalloc(sizeof(*out_mad), GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
goto out;
@@ -561,8 +561,8 @@ int mlx5_query_mad_ifc_gids(struct ib_device *ibdev, u32 port, int index,
struct ib_smp *out_mad;
int err = -ENOMEM;
- in_mad = kzalloc(sizeof(*in_mad), GFP_KERNEL);
- out_mad = kmalloc(sizeof(*out_mad), GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
goto out;
@@ -604,8 +604,8 @@ int mlx5_query_mad_ifc_port(struct ib_device *ibdev, u32 port,
int ext_active_speed;
int err = -ENOMEM;
- in_mad = kzalloc(sizeof(*in_mad), GFP_KERNEL);
- out_mad = kmalloc(sizeof(*out_mad), GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
goto out;
diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c
index 5e06177ace26..a5425f6d5527 100644
--- a/drivers/infiniband/hw/mlx5/main.c
+++ b/drivers/infiniband/hw/mlx5/main.c
@@ -1460,7 +1460,7 @@ static int mlx5_query_hca_port(struct ib_device *ibdev, u32 port,
int err;
u16 ib_link_width_oper;
- rep = kzalloc(sizeof(*rep), GFP_KERNEL);
+ rep = kzalloc_obj(*rep, GFP_KERNEL);
if (!rep) {
err = -ENOMEM;
goto out;
@@ -3121,7 +3121,7 @@ static int mlx5_ib_event(struct notifier_block *nb,
{
struct mlx5_ib_event_work *work;
- work = kmalloc(sizeof(*work), GFP_ATOMIC);
+ work = kmalloc_obj(*work, GFP_ATOMIC);
if (!work)
return NOTIFY_DONE;
@@ -3141,7 +3141,7 @@ static int mlx5_ib_event_slave_port(struct notifier_block *nb,
{
struct mlx5_ib_event_work *work;
- work = kmalloc(sizeof(*work), GFP_ATOMIC);
+ work = kmalloc_obj(*work, GFP_ATOMIC);
if (!work)
return NOTIFY_DONE;
@@ -3188,7 +3188,7 @@ static int mlx5_ib_sys_error_event(struct notifier_block *nb,
if (event != MLX5_DEV_EVENT_SYS_ERROR)
return NOTIFY_DONE;
- work = kmalloc(sizeof(*work), GFP_ATOMIC);
+ work = kmalloc_obj(*work, GFP_ATOMIC);
if (!work)
return NOTIFY_DONE;
@@ -4042,7 +4042,7 @@ static int mlx5_ib_init_multiport_master(struct mlx5_ib_dev *dev)
/* build a stub multiport info struct for the native port. */
if (i == port_num) {
- mpi = kzalloc(sizeof(*mpi), GFP_KERNEL);
+ mpi = kzalloc_obj(*mpi, GFP_KERNEL);
if (!mpi) {
mutex_unlock(&mlx5_ib_multiport_mutex);
mlx5_nic_vport_disable_roce(dev->mdev);
@@ -4148,7 +4148,7 @@ alloc_var_entry(struct mlx5_ib_ucontext *c)
int err;
var_table = &to_mdev(c->ibucontext.device)->var_table;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return ERR_PTR(-ENOMEM);
@@ -4269,7 +4269,7 @@ alloc_uar_entry(struct mlx5_ib_ucontext *c,
u32 uar_index;
int err;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return ERR_PTR(-ENOMEM);
@@ -5204,8 +5204,9 @@ static struct ib_device *mlx5_ib_add_sub_dev(struct ib_device *parent,
if (!mplane)
return ERR_PTR(-ENOMEM);
- mplane->port = kcalloc(mparent->num_plane * mparent->num_ports,
- sizeof(*mplane->port), GFP_KERNEL);
+ mplane->port = kzalloc_objs(*mplane->port,
+ mparent->num_plane * mparent->num_ports,
+ GFP_KERNEL);
if (!mplane->port) {
ret = -ENOMEM;
goto fail_kcalloc;
@@ -5249,7 +5250,7 @@ static int mlx5r_mp_probe(struct auxiliary_device *adev,
bool bound = false;
int err;
- mpi = kzalloc(sizeof(*mpi), GFP_KERNEL);
+ mpi = kzalloc_obj(*mpi, GFP_KERNEL);
if (!mpi)
return -ENOMEM;
@@ -5325,8 +5326,7 @@ static int mlx5r_probe(struct auxiliary_device *adev,
goto fail;
}
- dev->port = kcalloc(num_ports, sizeof(*dev->port),
- GFP_KERNEL);
+ dev->port = kzalloc_objs(*dev->port, num_ports, GFP_KERNEL);
if (!dev->port) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/infiniband/hw/mlx5/mr.c b/drivers/infiniband/hw/mlx5/mr.c
index a7b37e3df072..0444be024ff9 100644
--- a/drivers/infiniband/hw/mlx5/mr.c
+++ b/drivers/infiniband/hw/mlx5/mr.c
@@ -156,7 +156,7 @@ static int push_mkey_locked(struct mlx5_cache_ent *ent, u32 mkey)
lockdep_assert_held(&ent->mkeys_queue.lock);
if (ent->mkeys_queue.ci >=
ent->mkeys_queue.num_pages * NUM_MKEYS_PER_PAGE) {
- page = kzalloc(sizeof(*page), GFP_ATOMIC);
+ page = kzalloc_obj(*page, GFP_ATOMIC);
if (!page)
return -ENOMEM;
ent->mkeys_queue.num_pages++;
@@ -276,8 +276,8 @@ static int add_keys(struct mlx5_cache_ent *ent, unsigned int num)
int i;
for (i = 0; i < num; i++) {
- async_create = kzalloc(sizeof(struct mlx5r_async_create_mkey),
- GFP_KERNEL);
+ async_create = kzalloc_obj(struct mlx5r_async_create_mkey,
+ GFP_KERNEL);
if (!async_create)
return -ENOMEM;
mkc = MLX5_ADDR_OF(create_mkey_in, async_create->in,
@@ -742,7 +742,7 @@ static struct mlx5_ib_mr *_mlx5_mr_cache_alloc(struct mlx5_ib_dev *dev,
struct mlx5_ib_mr *mr;
int err;
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -867,7 +867,7 @@ static int mlx5r_mkeys_init(struct mlx5_cache_ent *ent)
{
struct mlx5_mkeys_page *page;
- page = kzalloc(sizeof(*page), GFP_KERNEL);
+ page = kzalloc_obj(*page, GFP_KERNEL);
if (!page)
return -ENOMEM;
INIT_LIST_HEAD(&ent->mkeys_queue.pages_list);
@@ -897,7 +897,7 @@ mlx5r_cache_create_ent_locked(struct mlx5_ib_dev *dev,
int order;
int ret;
- ent = kzalloc(sizeof(*ent), GFP_KERNEL);
+ ent = kzalloc_obj(*ent, GFP_KERNEL);
if (!ent)
return ERR_PTR(-ENOMEM);
@@ -1059,7 +1059,7 @@ struct ib_mr *mlx5_ib_get_dma_mr(struct ib_pd *pd, int acc)
u32 *in;
int err;
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -1207,7 +1207,7 @@ reg_create_crossing_vhca_mr(struct ib_pd *pd, u64 iova, u64 length, int access_f
if (!MLX5_CAP_GEN(dev->mdev, crossing_vhca_mkey))
return ERR_PTR(-EOPNOTSUPP);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -1272,7 +1272,7 @@ static struct mlx5_ib_mr *reg_create(struct ib_pd *pd, struct ib_umem *umem,
if (!page_size)
return ERR_PTR(-EINVAL);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -1370,7 +1370,7 @@ static struct ib_mr *mlx5_ib_get_dm_mr(struct ib_pd *pd, u64 start_addr,
u32 *in;
int err;
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -2343,7 +2343,7 @@ static struct mlx5_ib_mr *mlx5_ib_alloc_pi_mr(struct ib_pd *pd,
u32 *in;
int err;
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -2400,7 +2400,7 @@ static int mlx5_alloc_integrity_descs(struct ib_pd *pd, struct mlx5_ib_mr *mr,
void *mkc;
int err;
- mr->sig = kzalloc(sizeof(*mr->sig), GFP_KERNEL);
+ mr->sig = kzalloc_obj(*mr->sig, GFP_KERNEL);
if (!mr->sig)
return -ENOMEM;
@@ -2480,7 +2480,7 @@ static struct ib_mr *__mlx5_ib_alloc_mr(struct ib_pd *pd,
u32 *in;
int err;
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/mlx5/odp.c b/drivers/infiniband/hw/mlx5/odp.c
index e71ee3d52eb0..ed73d3e82ea5 100644
--- a/drivers/infiniband/hw/mlx5/odp.c
+++ b/drivers/infiniband/hw/mlx5/odp.c
@@ -1092,7 +1092,7 @@ static int pagefault_single_data_segment(struct mlx5_ib_dev *dev,
continue;
}
- frame = kzalloc(sizeof(*frame), GFP_KERNEL);
+ frame = kzalloc_obj(*frame, GFP_KERNEL);
if (!frame) {
ret = -ENOMEM;
goto end;
@@ -2097,7 +2097,7 @@ int mlx5_ib_advise_mr_prefetch(struct ib_pd *pd,
return mlx5_ib_prefetch_sg_list(pd, advice, pf_flags, sg_list,
num_sge);
- work = kvzalloc(struct_size(work, frags, num_sge), GFP_KERNEL);
+ work = kvzalloc_flex(*work, frags, num_sge, GFP_KERNEL);
if (!work)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c
index 0324909e3151..762a2dfc4455 100644
--- a/drivers/infiniband/hw/mlx5/qp.c
+++ b/drivers/infiniband/hw/mlx5/qp.c
@@ -416,7 +416,7 @@ static void mlx5_ib_qp_event(struct mlx5_core_qp *qp, int type)
if (!ibqp->event_handler)
goto out_no_handler;
- qpe_work = kzalloc(sizeof(*qpe_work), GFP_ATOMIC);
+ qpe_work = kzalloc_obj(*qpe_work, GFP_ATOMIC);
if (!qpe_work)
goto out_no_handler;
@@ -1185,8 +1185,8 @@ static int _create_kernel_qp(struct mlx5_ib_dev *dev,
sizeof(*qp->sq.wr_data), GFP_KERNEL);
qp->rq.wrid = kvmalloc_array(qp->rq.wqe_cnt,
sizeof(*qp->rq.wrid), GFP_KERNEL);
- qp->sq.w_list = kvmalloc_array(qp->sq.wqe_cnt,
- sizeof(*qp->sq.w_list), GFP_KERNEL);
+ qp->sq.w_list = kvmalloc_objs(*qp->sq.w_list, qp->sq.wqe_cnt,
+ GFP_KERNEL);
qp->sq.wqe_head = kvmalloc_array(qp->sq.wqe_cnt,
sizeof(*qp->sq.wqe_head), GFP_KERNEL);
@@ -5488,7 +5488,7 @@ struct ib_wq *mlx5_ib_create_wq(struct ib_pd *pd,
dev = to_mdev(pd->device);
switch (init_attr->wq_type) {
case IB_WQT_RQ:
- rwq = kzalloc(sizeof(*rwq), GFP_KERNEL);
+ rwq = kzalloc_obj(*rwq, GFP_KERNEL);
if (!rwq)
return ERR_PTR(-ENOMEM);
err = prepare_user_rq(pd, init_attr, udata, rwq);
diff --git a/drivers/infiniband/hw/mlx5/srq.c b/drivers/infiniband/hw/mlx5/srq.c
index bcb6b324af50..6e79e7a1015e 100644
--- a/drivers/infiniband/hw/mlx5/srq.c
+++ b/drivers/infiniband/hw/mlx5/srq.c
@@ -358,7 +358,7 @@ int mlx5_ib_query_srq(struct ib_srq *ibsrq, struct ib_srq_attr *srq_attr)
int ret;
struct mlx5_srq_attr *out;
- out = kzalloc(sizeof(*out), GFP_KERNEL);
+ out = kzalloc_obj(*out, GFP_KERNEL);
if (!out)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/mthca/mthca_allocator.c b/drivers/infiniband/hw/mthca/mthca_allocator.c
index 9f0f79d02d3c..2532ea4e1278 100644
--- a/drivers/infiniband/hw/mthca/mthca_allocator.c
+++ b/drivers/infiniband/hw/mthca/mthca_allocator.c
@@ -157,8 +157,7 @@ int mthca_array_init(struct mthca_array *array, int nent)
int npage = (nent * sizeof (void *) + PAGE_SIZE - 1) / PAGE_SIZE;
int i;
- array->page_list = kmalloc_array(npage, sizeof(*array->page_list),
- GFP_KERNEL);
+ array->page_list = kmalloc_objs(*array->page_list, npage, GFP_KERNEL);
if (!array->page_list)
return -ENOMEM;
@@ -231,9 +230,8 @@ int mthca_buf_alloc(struct mthca_dev *dev, int size, int max_direct,
if (!dma_list)
return -ENOMEM;
- buf->page_list = kmalloc_array(npages,
- sizeof(*buf->page_list),
- GFP_KERNEL);
+ buf->page_list = kmalloc_objs(*buf->page_list, npages,
+ GFP_KERNEL);
if (!buf->page_list)
goto err_out;
diff --git a/drivers/infiniband/hw/mthca/mthca_av.c b/drivers/infiniband/hw/mthca/mthca_av.c
index 3df1f5ff7932..83a7ba41fa04 100644
--- a/drivers/infiniband/hw/mthca/mthca_av.c
+++ b/drivers/infiniband/hw/mthca/mthca_av.c
@@ -161,7 +161,7 @@ int mthca_create_ah(struct mthca_dev *dev,
ah->type = MTHCA_AH_PCI_POOL;
if (mthca_is_memfree(dev)) {
- ah->av = kmalloc(sizeof *ah->av, GFP_ATOMIC);
+ ah->av = kmalloc_obj(*ah->av, GFP_ATOMIC);
if (!ah->av)
return -ENOMEM;
@@ -175,7 +175,7 @@ int mthca_create_ah(struct mthca_dev *dev,
if (index == -1)
goto on_hca_fail;
- av = kmalloc(sizeof *av, GFP_ATOMIC);
+ av = kmalloc_obj(*av, GFP_ATOMIC);
if (!av)
goto on_hca_fail;
diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.c b/drivers/infiniband/hw/mthca/mthca_cmd.c
index 8fe0cef7e2be..1c51814d5354 100644
--- a/drivers/infiniband/hw/mthca/mthca_cmd.c
+++ b/drivers/infiniband/hw/mthca/mthca_cmd.c
@@ -559,9 +559,8 @@ int mthca_cmd_use_events(struct mthca_dev *dev)
{
int i;
- dev->cmd.context = kmalloc_array(dev->cmd.max_cmds,
- sizeof(struct mthca_cmd_context),
- GFP_KERNEL);
+ dev->cmd.context = kmalloc_objs(struct mthca_cmd_context,
+ dev->cmd.max_cmds, GFP_KERNEL);
if (!dev->cmd.context)
return -ENOMEM;
@@ -611,7 +610,7 @@ struct mthca_mailbox *mthca_alloc_mailbox(struct mthca_dev *dev,
{
struct mthca_mailbox *mailbox;
- mailbox = kmalloc(sizeof *mailbox, gfp_mask);
+ mailbox = kmalloc_obj(*mailbox, gfp_mask);
if (!mailbox)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/mthca/mthca_eq.c b/drivers/infiniband/hw/mthca/mthca_eq.c
index 97287c544da8..5f109a116390 100644
--- a/drivers/infiniband/hw/mthca/mthca_eq.c
+++ b/drivers/infiniband/hw/mthca/mthca_eq.c
@@ -479,8 +479,7 @@ static int mthca_create_eq(struct mthca_dev *dev,
eq->nent = roundup_pow_of_two(max(nent, 2));
npages = ALIGN(eq->nent * MTHCA_EQ_ENTRY_SIZE, PAGE_SIZE) / PAGE_SIZE;
- eq->page_list = kmalloc_array(npages, sizeof(*eq->page_list),
- GFP_KERNEL);
+ eq->page_list = kmalloc_objs(*eq->page_list, npages, GFP_KERNEL);
if (!eq->page_list)
goto err_out;
diff --git a/drivers/infiniband/hw/mthca/mthca_mad.c b/drivers/infiniband/hw/mthca/mthca_mad.c
index 04252700790e..8df1bdd1a1bf 100644
--- a/drivers/infiniband/hw/mthca/mthca_mad.c
+++ b/drivers/infiniband/hw/mthca/mthca_mad.c
@@ -52,7 +52,7 @@ static int mthca_update_rate(struct mthca_dev *dev, u8 port_num)
struct ib_port_attr *tprops = NULL;
int ret;
- tprops = kmalloc(sizeof *tprops, GFP_KERNEL);
+ tprops = kmalloc_obj(*tprops, GFP_KERNEL);
if (!tprops)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/mthca/mthca_memfree.c b/drivers/infiniband/hw/mthca/mthca_memfree.c
index f2734a5c5f26..e59df6ed0f21 100644
--- a/drivers/infiniband/hw/mthca/mthca_memfree.c
+++ b/drivers/infiniband/hw/mthca/mthca_memfree.c
@@ -145,7 +145,7 @@ struct mthca_icm *mthca_alloc_icm(struct mthca_dev *dev, int npages,
/* We use sg_set_buf for coherent allocs, which assumes low memory */
BUG_ON(coherent && (gfp_mask & __GFP_HIGHMEM));
- icm = kmalloc(sizeof *icm, gfp_mask & ~(__GFP_HIGHMEM | __GFP_NOWARN));
+ icm = kmalloc_obj(*icm, gfp_mask & ~(__GFP_HIGHMEM | __GFP_NOWARN));
if (!icm)
return icm;
@@ -156,8 +156,8 @@ struct mthca_icm *mthca_alloc_icm(struct mthca_dev *dev, int npages,
while (npages > 0) {
if (!chunk) {
- chunk = kmalloc(sizeof *chunk,
- gfp_mask & ~(__GFP_HIGHMEM | __GFP_NOWARN));
+ chunk = kmalloc_obj(*chunk,
+ gfp_mask & ~(__GFP_HIGHMEM | __GFP_NOWARN));
if (!chunk)
goto fail;
@@ -367,7 +367,7 @@ struct mthca_icm_table *mthca_alloc_icm_table(struct mthca_dev *dev,
obj_per_chunk = MTHCA_TABLE_CHUNK_SIZE / obj_size;
num_icm = DIV_ROUND_UP(nobj, obj_per_chunk);
- table = kmalloc(struct_size(table, icm, num_icm), GFP_KERNEL);
+ table = kmalloc_flex(*table, icm, num_icm, GFP_KERNEL);
if (!table)
return NULL;
@@ -532,7 +532,7 @@ struct mthca_user_db_table *mthca_init_user_db_tab(struct mthca_dev *dev)
return NULL;
npages = dev->uar_table.uarc_size / MTHCA_ICM_PAGE_SIZE;
- db_tab = kmalloc(struct_size(db_tab, page, npages), GFP_KERNEL);
+ db_tab = kmalloc_flex(*db_tab, page, npages, GFP_KERNEL);
if (!db_tab)
return ERR_PTR(-ENOMEM);
@@ -707,7 +707,7 @@ int mthca_init_db_tab(struct mthca_dev *dev)
if (!mthca_is_memfree(dev))
return 0;
- dev->db_tab = kmalloc(sizeof *dev->db_tab, GFP_KERNEL);
+ dev->db_tab = kmalloc_obj(*dev->db_tab, GFP_KERNEL);
if (!dev->db_tab)
return -ENOMEM;
@@ -717,9 +717,8 @@ int mthca_init_db_tab(struct mthca_dev *dev)
dev->db_tab->max_group1 = 0;
dev->db_tab->min_group2 = dev->db_tab->npages - 1;
- dev->db_tab->page = kmalloc_array(dev->db_tab->npages,
- sizeof(*dev->db_tab->page),
- GFP_KERNEL);
+ dev->db_tab->page = kmalloc_objs(*dev->db_tab->page,
+ dev->db_tab->npages, GFP_KERNEL);
if (!dev->db_tab->page) {
kfree(dev->db_tab);
return -ENOMEM;
diff --git a/drivers/infiniband/hw/mthca/mthca_mr.c b/drivers/infiniband/hw/mthca/mthca_mr.c
index dacb8ceeebe0..eae6c92e7515 100644
--- a/drivers/infiniband/hw/mthca/mthca_mr.c
+++ b/drivers/infiniband/hw/mthca/mthca_mr.c
@@ -146,8 +146,8 @@ static int mthca_buddy_init(struct mthca_buddy *buddy, int max_order)
buddy->bits = kcalloc(buddy->max_order + 1, sizeof(*buddy->bits),
GFP_KERNEL);
- buddy->num_free = kcalloc((buddy->max_order + 1), sizeof *buddy->num_free,
- GFP_KERNEL);
+ buddy->num_free = kzalloc_objs(*buddy->num_free, (buddy->max_order + 1),
+ GFP_KERNEL);
if (!buddy->bits || !buddy->num_free)
goto err_out;
@@ -212,7 +212,7 @@ static struct mthca_mtt *__mthca_alloc_mtt(struct mthca_dev *dev, int size,
if (size <= 0)
return ERR_PTR(-EINVAL);
- mtt = kmalloc(sizeof *mtt, GFP_KERNEL);
+ mtt = kmalloc_obj(*mtt, GFP_KERNEL);
if (!mtt)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/mthca/mthca_profile.c b/drivers/infiniband/hw/mthca/mthca_profile.c
index 69af65f1b332..230c073dd11f 100644
--- a/drivers/infiniband/hw/mthca/mthca_profile.c
+++ b/drivers/infiniband/hw/mthca/mthca_profile.c
@@ -77,7 +77,7 @@ s64 mthca_make_profile(struct mthca_dev *dev,
struct mthca_resource *profile;
int i, j;
- profile = kcalloc(MTHCA_RES_NUM, sizeof(*profile), GFP_KERNEL);
+ profile = kzalloc_objs(*profile, MTHCA_RES_NUM, GFP_KERNEL);
if (!profile)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/mthca/mthca_provider.c b/drivers/infiniband/hw/mthca/mthca_provider.c
index dd572d76866c..88ce64eb4704 100644
--- a/drivers/infiniband/hw/mthca/mthca_provider.c
+++ b/drivers/infiniband/hw/mthca/mthca_provider.c
@@ -61,8 +61,8 @@ static int mthca_query_device(struct ib_device *ibdev, struct ib_device_attr *pr
if (uhw->inlen || uhw->outlen)
return -EINVAL;
- in_mad = kzalloc(sizeof *in_mad, GFP_KERNEL);
- out_mad = kmalloc(sizeof *out_mad, GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
goto out;
@@ -125,8 +125,8 @@ static int mthca_query_port(struct ib_device *ibdev,
struct ib_smp *out_mad;
int err = -ENOMEM;
- in_mad = kzalloc(sizeof *in_mad, GFP_KERNEL);
- out_mad = kmalloc(sizeof *out_mad, GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
goto out;
@@ -221,8 +221,8 @@ static int mthca_query_pkey(struct ib_device *ibdev,
struct ib_smp *out_mad;
int err = -ENOMEM;
- in_mad = kzalloc(sizeof *in_mad, GFP_KERNEL);
- out_mad = kmalloc(sizeof *out_mad, GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
goto out;
@@ -250,8 +250,8 @@ static int mthca_query_gid(struct ib_device *ibdev, u32 port,
struct ib_smp *out_mad;
int err = -ENOMEM;
- in_mad = kzalloc(sizeof *in_mad, GFP_KERNEL);
- out_mad = kmalloc(sizeof *out_mad, GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
goto out;
@@ -516,7 +516,7 @@ static int mthca_create_qp(struct ib_qp *ibqp,
case IB_QPT_SMI:
case IB_QPT_GSI:
{
- qp->sqp = kzalloc(sizeof(struct mthca_sqp), GFP_KERNEL);
+ qp->sqp = kzalloc_obj(struct mthca_sqp, GFP_KERNEL);
if (!qp->sqp)
return -ENOMEM;
@@ -660,7 +660,7 @@ static int mthca_alloc_resize_buf(struct mthca_dev *dev, struct mthca_cq *cq,
goto unlock;
}
- cq->resize_buf = kmalloc(sizeof *cq->resize_buf, GFP_ATOMIC);
+ cq->resize_buf = kmalloc_obj(*cq->resize_buf, GFP_ATOMIC);
if (!cq->resize_buf) {
ret = -ENOMEM;
goto unlock;
@@ -806,7 +806,7 @@ static struct ib_mr *mthca_get_dma_mr(struct ib_pd *pd, int acc)
struct mthca_mr *mr;
int err;
- mr = kmalloc(sizeof *mr, GFP_KERNEL);
+ mr = kmalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -853,7 +853,7 @@ static struct ib_mr *mthca_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
} else if (ib_copy_from_udata(&ucmd, udata, sizeof ucmd))
return ERR_PTR(-EFAULT);
- mr = kmalloc(sizeof *mr, GFP_KERNEL);
+ mr = kmalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -998,8 +998,8 @@ static int mthca_init_node_data(struct mthca_dev *dev)
struct ib_smp *out_mad;
int err = -ENOMEM;
- in_mad = kzalloc(sizeof *in_mad, GFP_KERNEL);
- out_mad = kmalloc(sizeof *out_mad, GFP_KERNEL);
+ in_mad = kzalloc_obj(*in_mad, GFP_KERNEL);
+ out_mad = kmalloc_obj(*out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
goto out;
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
index 56f06c68f31a..c6a55323408a 100644
--- a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
+++ b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
@@ -355,7 +355,7 @@ static void *ocrdma_init_emb_mqe(u8 opcode, u32 cmd_len)
{
struct ocrdma_mqe *mqe;
- mqe = kzalloc(sizeof(struct ocrdma_mqe), GFP_KERNEL);
+ mqe = kzalloc_obj(struct ocrdma_mqe, GFP_KERNEL);
if (!mqe)
return NULL;
mqe->hdr.spcl_sge_cnt_emb |=
@@ -1289,7 +1289,7 @@ int ocrdma_mbx_rdma_stats(struct ocrdma_dev *dev, bool reset)
struct ocrdma_rdma_stats_resp *old_stats;
int status;
- old_stats = kmalloc(sizeof(*old_stats), GFP_KERNEL);
+ old_stats = kmalloc_obj(*old_stats, GFP_KERNEL);
if (old_stats == NULL)
return -ENOMEM;
@@ -1332,7 +1332,7 @@ static int ocrdma_mbx_get_ctrl_attribs(struct ocrdma_dev *dev)
struct ocrdma_get_ctrl_attribs_rsp *ctrl_attr_rsp;
struct mgmt_hba_attribs *hba_attribs;
- mqe = kzalloc(sizeof(struct ocrdma_mqe), GFP_KERNEL);
+ mqe = kzalloc_obj(struct ocrdma_mqe, GFP_KERNEL);
if (!mqe)
return status;
@@ -1592,8 +1592,7 @@ void ocrdma_alloc_pd_pool(struct ocrdma_dev *dev)
{
int status;
- dev->pd_mgr = kzalloc(sizeof(struct ocrdma_pd_resource_mgr),
- GFP_KERNEL);
+ dev->pd_mgr = kzalloc_obj(struct ocrdma_pd_resource_mgr, GFP_KERNEL);
if (!dev->pd_mgr)
return;
@@ -3082,7 +3081,7 @@ static int ocrdma_create_eqs(struct ocrdma_dev *dev)
if (!num_eq)
return -EINVAL;
- dev->eq_tbl = kcalloc(num_eq, sizeof(struct ocrdma_eq), GFP_KERNEL);
+ dev->eq_tbl = kzalloc_objs(struct ocrdma_eq, num_eq, GFP_KERNEL);
if (!dev->eq_tbl)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_main.c b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
index 5d4b3bc16493..16e3e0ff97b8 100644
--- a/drivers/infiniband/hw/ocrdma/ocrdma_main.c
+++ b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
@@ -219,15 +219,14 @@ static int ocrdma_register_device(struct ocrdma_dev *dev)
static int ocrdma_alloc_resources(struct ocrdma_dev *dev)
{
mutex_init(&dev->dev_lock);
- dev->cq_tbl = kcalloc(OCRDMA_MAX_CQ, sizeof(struct ocrdma_cq *),
- GFP_KERNEL);
+ dev->cq_tbl = kzalloc_objs(struct ocrdma_cq *, OCRDMA_MAX_CQ,
+ GFP_KERNEL);
if (!dev->cq_tbl)
goto alloc_err;
if (dev->attr.max_qp) {
- dev->qp_tbl = kcalloc(OCRDMA_MAX_QP,
- sizeof(struct ocrdma_qp *),
- GFP_KERNEL);
+ dev->qp_tbl = kzalloc_objs(struct ocrdma_qp *, OCRDMA_MAX_QP,
+ GFP_KERNEL);
if (!dev->qp_tbl)
goto alloc_err;
}
@@ -271,7 +270,7 @@ static struct ocrdma_dev *ocrdma_add(struct be_dev_info *dev_info)
return NULL;
}
- dev->mbx_cmd = kzalloc(sizeof(struct ocrdma_mqe_emb_cmd), GFP_KERNEL);
+ dev->mbx_cmd = kzalloc_obj(struct ocrdma_mqe_emb_cmd, GFP_KERNEL);
if (!dev->mbx_cmd)
goto init_err;
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
index 46d911fd38de..e9840337e694 100644
--- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
@@ -195,7 +195,7 @@ static int ocrdma_add_mmap(struct ocrdma_ucontext *uctx, u64 phy_addr,
{
struct ocrdma_mm *mm;
- mm = kzalloc(sizeof(*mm), GFP_KERNEL);
+ mm = kzalloc_obj(*mm, GFP_KERNEL);
if (mm == NULL)
return -ENOMEM;
mm->key.phy_addr = phy_addr;
@@ -727,7 +727,7 @@ struct ib_mr *ocrdma_get_dma_mr(struct ib_pd *ibpd, int acc)
return ERR_PTR(-EINVAL);
}
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -794,8 +794,8 @@ static int ocrdma_build_pbl_tbl(struct ocrdma_dev *dev, struct ocrdma_hw_mr *mr)
void *va;
dma_addr_t pa;
- mr->pbl_table = kcalloc(mr->num_pbls, sizeof(struct ocrdma_pbl),
- GFP_KERNEL);
+ mr->pbl_table = kzalloc_objs(struct ocrdma_pbl, mr->num_pbls,
+ GFP_KERNEL);
if (!mr->pbl_table)
return -ENOMEM;
@@ -863,7 +863,7 @@ struct ib_mr *ocrdma_reg_user_mr(struct ib_pd *ibpd, u64 start, u64 len,
if (acc & IB_ACCESS_REMOTE_WRITE && !(acc & IB_ACCESS_LOCAL_WRITE))
return ERR_PTR(-EINVAL);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(status);
mr->umem = ib_umem_get(ibpd->device, start, len, acc);
@@ -1255,8 +1255,7 @@ static void ocrdma_set_qp_db(struct ocrdma_dev *dev, struct ocrdma_qp *qp,
static int ocrdma_alloc_wr_id_tbl(struct ocrdma_qp *qp)
{
qp->wqe_wr_id_tbl =
- kcalloc(qp->sq.max_cnt, sizeof(*(qp->wqe_wr_id_tbl)),
- GFP_KERNEL);
+ kzalloc_objs(*(qp->wqe_wr_id_tbl), qp->sq.max_cnt, GFP_KERNEL);
if (qp->wqe_wr_id_tbl == NULL)
return -ENOMEM;
qp->rqe_wr_id_tbl =
@@ -2911,7 +2910,7 @@ struct ib_mr *ocrdma_alloc_mr(struct ib_pd *ibpd, enum ib_mr_type mr_type,
if (max_num_sg > dev->attr.max_pages_per_frmr)
return ERR_PTR(-EINVAL);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/qedr/main.c b/drivers/infiniband/hw/qedr/main.c
index ecdfeff3d44f..8b074d8982e5 100644
--- a/drivers/infiniband/hw/qedr/main.c
+++ b/drivers/infiniband/hw/qedr/main.c
@@ -333,8 +333,7 @@ static int qedr_alloc_resources(struct qedr_dev *dev)
__le16 *cons_pi;
int i, rc;
- dev->sgid_tbl = kcalloc(QEDR_MAX_SGID, sizeof(union ib_gid),
- GFP_KERNEL);
+ dev->sgid_tbl = kzalloc_objs(union ib_gid, QEDR_MAX_SGID, GFP_KERNEL);
if (!dev->sgid_tbl)
return -ENOMEM;
@@ -351,15 +350,13 @@ static int qedr_alloc_resources(struct qedr_dev *dev)
}
/* Allocate Status blocks for CNQ */
- dev->sb_array = kcalloc(dev->num_cnq, sizeof(*dev->sb_array),
- GFP_KERNEL);
+ dev->sb_array = kzalloc_objs(*dev->sb_array, dev->num_cnq, GFP_KERNEL);
if (!dev->sb_array) {
rc = -ENOMEM;
goto err_destroy_wq;
}
- dev->cnq_array = kcalloc(dev->num_cnq,
- sizeof(*dev->cnq_array), GFP_KERNEL);
+ dev->cnq_array = kzalloc_objs(*dev->cnq_array, dev->num_cnq, GFP_KERNEL);
if (!dev->cnq_array) {
rc = -ENOMEM;
goto err2;
@@ -789,7 +786,7 @@ static int qedr_init_hw(struct qedr_dev *dev)
int rc = 0;
int i;
- in_params = kzalloc(sizeof(*in_params), GFP_KERNEL);
+ in_params = kzalloc_obj(*in_params, GFP_KERNEL);
if (!in_params) {
rc = -ENOMEM;
goto out;
diff --git a/drivers/infiniband/hw/qedr/qedr_iw_cm.c b/drivers/infiniband/hw/qedr/qedr_iw_cm.c
index 259303b9907c..ff1f138ec34f 100644
--- a/drivers/infiniband/hw/qedr/qedr_iw_cm.c
+++ b/drivers/infiniband/hw/qedr/qedr_iw_cm.c
@@ -108,7 +108,7 @@ qedr_iw_mpa_request(void *context, struct qed_iwarp_cm_event_params *params)
struct iw_cm_event event;
struct qedr_iw_ep *ep;
- ep = kzalloc(sizeof(*ep), GFP_ATOMIC);
+ ep = kzalloc_obj(*ep, GFP_ATOMIC);
if (!ep)
return;
@@ -258,7 +258,7 @@ qedr_iw_disconnect_event(void *context,
struct qedr_iw_ep *ep = (struct qedr_iw_ep *)context;
struct qedr_dev *dev = ep->dev;
- work = kzalloc(sizeof(*work), GFP_ATOMIC);
+ work = kzalloc_obj(*work, GFP_ATOMIC);
if (!work)
return;
@@ -560,7 +560,7 @@ int qedr_iw_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
if (!laddr->sin_port || !raddr->sin_port)
return -EINVAL;
- ep = kzalloc(sizeof(*ep), GFP_KERNEL);
+ ep = kzalloc_obj(*ep, GFP_KERNEL);
if (!ep)
return -ENOMEM;
@@ -672,7 +672,7 @@ int qedr_iw_create_listen(struct iw_cm_id *cm_id, int backlog)
DP_DEBUG(dev, QEDR_MSG_IWARP,
"Create Listener address: %pISpc\n", &cm_id->local_addr);
- listener = kzalloc(sizeof(*listener), GFP_KERNEL);
+ listener = kzalloc_obj(*listener, GFP_KERNEL);
if (!listener)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/qedr/qedr_roce_cm.c b/drivers/infiniband/hw/qedr/qedr_roce_cm.c
index 859f66a51bd2..f0e0ae154302 100644
--- a/drivers/infiniband/hw/qedr/qedr_roce_cm.c
+++ b/drivers/infiniband/hw/qedr/qedr_roce_cm.c
@@ -339,12 +339,10 @@ int qedr_create_gsi_qp(struct qedr_dev *dev, struct ib_qp_init_attr *attrs,
qp->rq.max_wr = attrs->cap.max_recv_wr;
qp->sq.max_wr = attrs->cap.max_send_wr;
- qp->rqe_wr_id = kcalloc(qp->rq.max_wr, sizeof(*qp->rqe_wr_id),
- GFP_KERNEL);
+ qp->rqe_wr_id = kzalloc_objs(*qp->rqe_wr_id, qp->rq.max_wr, GFP_KERNEL);
if (!qp->rqe_wr_id)
goto err;
- qp->wqe_wr_id = kcalloc(qp->sq.max_wr, sizeof(*qp->wqe_wr_id),
- GFP_KERNEL);
+ qp->wqe_wr_id = kzalloc_objs(*qp->wqe_wr_id, qp->sq.max_wr, GFP_KERNEL);
if (!qp->wqe_wr_id)
goto err;
@@ -507,7 +505,7 @@ static inline int qedr_gsi_build_packet(struct qedr_dev *dev,
header_size = ib_ud_header_pack(&udh, &ud_header_buffer);
- packet = kzalloc(sizeof(*packet), GFP_ATOMIC);
+ packet = kzalloc_obj(*packet, GFP_ATOMIC);
if (!packet)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c
index ab9bf0922979..ed7d4fc20b21 100644
--- a/drivers/infiniband/hw/qedr/verbs.c
+++ b/drivers/infiniband/hw/qedr/verbs.c
@@ -296,7 +296,7 @@ int qedr_alloc_ucontext(struct ib_ucontext *uctx, struct ib_udata *udata)
ctx->dpi_addr = oparams.dpi_addr;
ctx->dpi_phys_addr = oparams.dpi_phys_addr;
ctx->dpi_size = oparams.dpi_size;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
rc = -ENOMEM;
goto err;
@@ -537,7 +537,7 @@ static struct qedr_pbl *qedr_alloc_pbl_tbl(struct qedr_dev *dev,
void *va;
int i;
- pbl_table = kcalloc(pbl_info->num_pbls, sizeof(*pbl_table), flags);
+ pbl_table = kzalloc_objs(*pbl_table, pbl_info->num_pbls, flags);
if (!pbl_table)
return ERR_PTR(-ENOMEM);
@@ -761,7 +761,7 @@ static int qedr_init_user_db_rec(struct ib_udata *udata,
return -ENOMEM;
}
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
goto err_free_db_data;
@@ -820,7 +820,7 @@ static inline int qedr_init_user_queue(struct ib_udata *udata,
qedr_populate_pbls(dev, q->umem, q->pbl_tbl, &q->pbl_info,
FW_PAGE_SHIFT);
} else {
- q->pbl_tbl = kzalloc(sizeof(*q->pbl_tbl), GFP_KERNEL);
+ q->pbl_tbl = kzalloc_obj(*q->pbl_tbl, GFP_KERNEL);
if (!q->pbl_tbl) {
rc = -ENOMEM;
goto err0;
@@ -2187,8 +2187,7 @@ static int qedr_create_kernel_qp(struct qedr_dev *dev,
qp->sq.max_wr = min_t(u32, attrs->cap.max_send_wr * dev->wq_multiplier,
dev->attr.max_sqe);
- qp->wqe_wr_id = kcalloc(qp->sq.max_wr, sizeof(*qp->wqe_wr_id),
- GFP_KERNEL);
+ qp->wqe_wr_id = kzalloc_objs(*qp->wqe_wr_id, qp->sq.max_wr, GFP_KERNEL);
if (!qp->wqe_wr_id) {
DP_ERR(dev, "create qp: failed SQ shadow memory allocation\n");
return -ENOMEM;
@@ -2205,8 +2204,7 @@ static int qedr_create_kernel_qp(struct qedr_dev *dev,
qp->rq.max_wr = (u16) max_t(u32, attrs->cap.max_recv_wr, 1);
/* Allocate driver internal RQ array */
- qp->rqe_wr_id = kcalloc(qp->rq.max_wr, sizeof(*qp->rqe_wr_id),
- GFP_KERNEL);
+ qp->rqe_wr_id = kzalloc_objs(*qp->rqe_wr_id, qp->rq.max_wr, GFP_KERNEL);
if (!qp->rqe_wr_id) {
DP_ERR(dev,
"create qp: failed RQ shadow memory allocation\n");
@@ -2972,7 +2970,7 @@ struct ib_mr *qedr_reg_user_mr(struct ib_pd *ibpd, u64 start, u64 len,
if (acc & IB_ACCESS_REMOTE_WRITE && !(acc & IB_ACCESS_LOCAL_WRITE))
return ERR_PTR(-EINVAL);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(rc);
@@ -3080,7 +3078,7 @@ static struct qedr_mr *__qedr_alloc_mr(struct ib_pd *ibpd,
"qedr_alloc_frmr pd = %d max_page_list_len= %d\n", pd->pd_id,
max_page_list_len);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(rc);
@@ -3221,7 +3219,7 @@ struct ib_mr *qedr_get_dma_mr(struct ib_pd *ibpd, int acc)
struct qedr_mr *mr;
int rc;
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/usnic/usnic_fwd.c b/drivers/infiniband/hw/usnic/usnic_fwd.c
index 18a70850b738..7dd66ee61a4e 100644
--- a/drivers/infiniband/hw/usnic/usnic_fwd.c
+++ b/drivers/infiniband/hw/usnic/usnic_fwd.c
@@ -85,7 +85,7 @@ struct usnic_fwd_dev *usnic_fwd_dev_alloc(struct pci_dev *pdev)
{
struct usnic_fwd_dev *ufdev;
- ufdev = kzalloc(sizeof(*ufdev), GFP_KERNEL);
+ ufdev = kzalloc_obj(*ufdev, GFP_KERNEL);
if (!ufdev)
return NULL;
@@ -210,7 +210,7 @@ usnic_fwd_alloc_flow(struct usnic_fwd_dev *ufdev, struct filter *filter,
tlv_size = (2*sizeof(struct filter_tlv) + sizeof(struct filter) +
sizeof(struct filter_action));
- flow = kzalloc(sizeof(*flow), GFP_ATOMIC);
+ flow = kzalloc_obj(*flow, GFP_ATOMIC);
if (!flow)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/usnic/usnic_ib_main.c b/drivers/infiniband/hw/usnic/usnic_ib_main.c
index 11eca39b73a9..91e91f78f35b 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_main.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_main.c
@@ -556,7 +556,7 @@ static int usnic_ib_pci_probe(struct pci_dev *pdev,
return -EPERM;
}
- vf = kzalloc(sizeof(*vf), GFP_KERNEL);
+ vf = kzalloc_obj(*vf, GFP_KERNEL);
if (!vf)
return -ENOMEM;
diff --git a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
index 59bfbfaee325..a7327c7a7465 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
@@ -232,7 +232,7 @@ create_roce_custom_flow(struct usnic_ib_qp_grp *qp_grp,
}
/* Create Flow Handle */
- qp_flow = kzalloc(sizeof(*qp_flow), GFP_ATOMIC);
+ qp_flow = kzalloc_obj(*qp_flow, GFP_ATOMIC);
if (!qp_flow) {
err = -ENOMEM;
goto out_dealloc_flow;
@@ -305,7 +305,7 @@ create_udp_flow(struct usnic_ib_qp_grp *qp_grp,
}
/* Create qp_flow */
- qp_flow = kzalloc(sizeof(*qp_flow), GFP_ATOMIC);
+ qp_flow = kzalloc_obj(*qp_flow, GFP_ATOMIC);
if (!qp_flow) {
err = -ENOMEM;
goto out_dealloc_flow;
@@ -542,8 +542,8 @@ alloc_res_chunk_list(struct usnic_vnic *vnic,
/* Do Nothing */
}
- res_chunk_list = kcalloc(res_lst_sz + 1, sizeof(*res_chunk_list),
- GFP_ATOMIC);
+ res_chunk_list = kzalloc_objs(*res_chunk_list, res_lst_sz + 1,
+ GFP_ATOMIC);
if (!res_chunk_list)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
index ae5df96589d9..bbbea014b784 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
@@ -604,7 +604,7 @@ struct ib_mr *usnic_ib_reg_mr(struct ib_pd *pd, u64 start, u64 length,
if (dmah)
return ERR_PTR(-EOPNOTSUPP);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/usnic/usnic_uiom.c b/drivers/infiniband/hw/usnic/usnic_uiom.c
index 3fbf99757b11..c659c80a37a6 100644
--- a/drivers/infiniband/hw/usnic/usnic_uiom.c
+++ b/drivers/infiniband/hw/usnic/usnic_uiom.c
@@ -149,9 +149,9 @@ static int usnic_uiom_get_pages(unsigned long addr, size_t size, int writable,
off = 0;
while (ret) {
- chunk = kmalloc(struct_size(chunk, page_list,
- min_t(int, ret, USNIC_UIOM_PAGE_CHUNK)),
- GFP_KERNEL);
+ chunk = kmalloc_flex(*chunk, page_list,
+ min_t(int, ret, USNIC_UIOM_PAGE_CHUNK),
+ GFP_KERNEL);
if (!chunk) {
ret = -ENOMEM;
goto out;
@@ -351,7 +351,7 @@ struct usnic_uiom_reg *usnic_uiom_reg_get(struct usnic_uiom_pd *pd,
vpn_start = (addr & PAGE_MASK) >> PAGE_SHIFT;
vpn_last = vpn_start + npages - 1;
- uiomr = kmalloc(sizeof(*uiomr), GFP_KERNEL);
+ uiomr = kmalloc_obj(*uiomr, GFP_KERNEL);
if (!uiomr)
return ERR_PTR(-ENOMEM);
@@ -439,7 +439,7 @@ struct usnic_uiom_pd *usnic_uiom_alloc_pd(struct device *dev)
struct usnic_uiom_pd *pd;
void *domain;
- pd = kzalloc(sizeof(*pd), GFP_KERNEL);
+ pd = kzalloc_obj(*pd, GFP_KERNEL);
if (!pd)
return ERR_PTR(-ENOMEM);
@@ -469,7 +469,7 @@ int usnic_uiom_attach_dev_to_pd(struct usnic_uiom_pd *pd, struct device *dev)
struct usnic_uiom_dev *uiom_dev;
int err;
- uiom_dev = kzalloc(sizeof(*uiom_dev), GFP_ATOMIC);
+ uiom_dev = kzalloc_obj(*uiom_dev, GFP_ATOMIC);
if (!uiom_dev)
return -ENOMEM;
uiom_dev->dev = dev;
@@ -533,7 +533,7 @@ struct device **usnic_uiom_get_dev_list(struct usnic_uiom_pd *pd)
int i = 0;
spin_lock(&pd->lock);
- devs = kcalloc(pd->dev_cnt + 1, sizeof(*devs), GFP_ATOMIC);
+ devs = kzalloc_objs(*devs, pd->dev_cnt + 1, GFP_ATOMIC);
if (!devs) {
devs = ERR_PTR(-ENOMEM);
goto out;
diff --git a/drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c b/drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
index 29d71267af78..235d3a124242 100644
--- a/drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
+++ b/drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
@@ -70,7 +70,7 @@ static struct usnic_uiom_interval_node*
usnic_uiom_interval_node_alloc(long int start, long int last, int ref_cnt,
int flags)
{
- struct usnic_uiom_interval_node *interval = kzalloc(sizeof(*interval),
+ struct usnic_uiom_interval_node *interval = kzalloc_obj(*interval,
GFP_ATOMIC);
if (!interval)
return NULL;
diff --git a/drivers/infiniband/hw/usnic/usnic_vnic.c b/drivers/infiniband/hw/usnic/usnic_vnic.c
index 0c47f73aaed5..2565b1e136cf 100644
--- a/drivers/infiniband/hw/usnic/usnic_vnic.c
+++ b/drivers/infiniband/hw/usnic/usnic_vnic.c
@@ -239,12 +239,12 @@ usnic_vnic_get_resources(struct usnic_vnic *vnic, enum usnic_vnic_res_type type,
if (usnic_vnic_res_free_cnt(vnic, type) < cnt || cnt < 0 || !owner)
return ERR_PTR(-EINVAL);
- ret = kzalloc(sizeof(*ret), GFP_ATOMIC);
+ ret = kzalloc_obj(*ret, GFP_ATOMIC);
if (!ret)
return ERR_PTR(-ENOMEM);
if (cnt > 0) {
- ret->res = kcalloc(cnt, sizeof(*(ret->res)), GFP_ATOMIC);
+ ret->res = kzalloc_objs(*(ret->res), cnt, GFP_ATOMIC);
if (!ret->res) {
kfree(ret);
return ERR_PTR(-ENOMEM);
@@ -311,12 +311,12 @@ static int usnic_vnic_alloc_res_chunk(struct usnic_vnic *vnic,
}
chunk->cnt = chunk->free_cnt = cnt;
- chunk->res = kcalloc(cnt, sizeof(*(chunk->res)), GFP_KERNEL);
+ chunk->res = kzalloc_objs(*(chunk->res), cnt, GFP_KERNEL);
if (!chunk->res)
return -ENOMEM;
for (i = 0; i < cnt; i++) {
- res = kzalloc(sizeof(*res), GFP_KERNEL);
+ res = kzalloc_obj(*res, GFP_KERNEL);
if (!res) {
err = -ENOMEM;
goto fail;
@@ -445,7 +445,7 @@ struct usnic_vnic *usnic_vnic_alloc(struct pci_dev *pdev)
return ERR_PTR(-EINVAL);
}
- vnic = kzalloc(sizeof(*vnic), GFP_KERNEL);
+ vnic = kzalloc_obj(*vnic, GFP_KERNEL);
if (!vnic)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c
index 1664d1d7d969..81970a53a049 100644
--- a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c
+++ b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c
@@ -257,14 +257,14 @@ static int pvrdma_register_device(struct pvrdma_dev *dev)
mutex_init(&dev->port_mutex);
spin_lock_init(&dev->desc_lock);
- dev->cq_tbl = kcalloc(dev->dsr->caps.max_cq, sizeof(struct pvrdma_cq *),
- GFP_KERNEL);
+ dev->cq_tbl = kzalloc_objs(struct pvrdma_cq *, dev->dsr->caps.max_cq,
+ GFP_KERNEL);
if (!dev->cq_tbl)
return ret;
spin_lock_init(&dev->cq_tbl_lock);
- dev->qp_tbl = kcalloc(dev->dsr->caps.max_qp, sizeof(struct pvrdma_qp *),
- GFP_KERNEL);
+ dev->qp_tbl = kzalloc_objs(struct pvrdma_qp *, dev->dsr->caps.max_qp,
+ GFP_KERNEL);
if (!dev->qp_tbl)
goto err_cq_free;
spin_lock_init(&dev->qp_tbl_lock);
@@ -273,9 +273,8 @@ static int pvrdma_register_device(struct pvrdma_dev *dev)
if (dev->dsr->caps.max_srq) {
ib_set_device_ops(&dev->ib_dev, &pvrdma_dev_srq_ops);
- dev->srq_tbl = kcalloc(dev->dsr->caps.max_srq,
- sizeof(struct pvrdma_srq *),
- GFP_KERNEL);
+ dev->srq_tbl = kzalloc_objs(struct pvrdma_srq *,
+ dev->dsr->caps.max_srq, GFP_KERNEL);
if (!dev->srq_tbl)
goto err_qp_free;
}
@@ -752,7 +751,7 @@ static int pvrdma_netdevice_event(struct notifier_block *this,
struct net_device *event_netdev = netdev_notifier_info_to_dev(ptr);
struct pvrdma_netdevice_work *netdev_work;
- netdev_work = kmalloc(sizeof(*netdev_work), GFP_ATOMIC);
+ netdev_work = kmalloc_obj(*netdev_work, GFP_ATOMIC);
if (!netdev_work)
return NOTIFY_BAD;
@@ -985,8 +984,8 @@ static int pvrdma_pci_probe(struct pci_dev *pdev,
}
/* Allocate GID table */
- dev->sgid_tbl = kcalloc(dev->dsr->caps.gid_tbl_len,
- sizeof(union ib_gid), GFP_KERNEL);
+ dev->sgid_tbl = kzalloc_objs(union ib_gid, dev->dsr->caps.gid_tbl_len,
+ GFP_KERNEL);
if (!dev->sgid_tbl) {
ret = -ENOMEM;
goto err_free_uar_table;
diff --git a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_misc.c b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_misc.c
index ba43ad07898c..a4da1b61c27f 100644
--- a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_misc.c
+++ b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_misc.c
@@ -81,8 +81,7 @@ int pvrdma_page_dir_init(struct pvrdma_dev *dev, struct pvrdma_page_dir *pdir,
pdir->npages = npages;
if (alloc_pages) {
- pdir->pages = kcalloc(npages, sizeof(*pdir->pages),
- GFP_KERNEL);
+ pdir->pages = kzalloc_objs(*pdir->pages, npages, GFP_KERNEL);
if (!pdir->pages)
goto err;
diff --git a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c
index ec7a00c8285b..b53fb23c3c86 100644
--- a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c
+++ b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c
@@ -72,7 +72,7 @@ struct ib_mr *pvrdma_get_dma_mr(struct ib_pd *pd, int acc)
return ERR_PTR(-EOPNOTSUPP);
}
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -146,7 +146,7 @@ struct ib_mr *pvrdma_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
goto err_umem;
}
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr) {
ret = -ENOMEM;
goto err_umem;
@@ -222,7 +222,7 @@ struct ib_mr *pvrdma_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
max_num_sg > PVRDMA_MAX_FAST_REG_PAGES)
return ERR_PTR(-EINVAL);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/sw/rdmavt/mcast.c b/drivers/infiniband/sw/rdmavt/mcast.c
index 59045bdce2a9..987e9c0b0466 100644
--- a/drivers/infiniband/sw/rdmavt/mcast.c
+++ b/drivers/infiniband/sw/rdmavt/mcast.c
@@ -34,7 +34,7 @@ static struct rvt_mcast_qp *rvt_mcast_qp_alloc(struct rvt_qp *qp)
{
struct rvt_mcast_qp *mqp;
- mqp = kmalloc(sizeof(*mqp), GFP_KERNEL);
+ mqp = kmalloc_obj(*mqp, GFP_KERNEL);
if (!mqp)
goto bail;
@@ -66,7 +66,7 @@ static struct rvt_mcast *rvt_mcast_alloc(union ib_gid *mgid, u16 lid)
{
struct rvt_mcast *mcast;
- mcast = kzalloc(sizeof(*mcast), GFP_KERNEL);
+ mcast = kzalloc_obj(*mcast, GFP_KERNEL);
if (!mcast)
goto bail;
diff --git a/drivers/infiniband/sw/rdmavt/mr.c b/drivers/infiniband/sw/rdmavt/mr.c
index 86e482593a85..89b1c7410920 100644
--- a/drivers/infiniband/sw/rdmavt/mr.c
+++ b/drivers/infiniband/sw/rdmavt/mr.c
@@ -242,7 +242,7 @@ static struct rvt_mr *__rvt_alloc_mr(int count, struct ib_pd *pd)
/* Allocate struct plus pointers to first level page tables. */
m = (count + RVT_SEGSZ - 1) / RVT_SEGSZ;
- mr = kzalloc(struct_size(mr, mr.map, m), GFP_KERNEL);
+ mr = kzalloc_flex(*mr, mr.map, m, GFP_KERNEL);
if (!mr)
goto bail;
@@ -292,7 +292,7 @@ struct ib_mr *rvt_get_dma_mr(struct ib_pd *pd, int acc)
if (ibpd_to_rvtpd(pd)->user)
return ERR_PTR(-EPERM);
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr) {
ret = ERR_PTR(-ENOMEM);
goto bail;
diff --git a/drivers/infiniband/sw/rdmavt/qp.c b/drivers/infiniband/sw/rdmavt/qp.c
index 134a79eecfcb..8108660b2d33 100644
--- a/drivers/infiniband/sw/rdmavt/qp.c
+++ b/drivers/infiniband/sw/rdmavt/qp.c
@@ -2650,7 +2650,7 @@ struct rvt_qp_iter *rvt_qp_iter_init(struct rvt_dev_info *rdi,
{
struct rvt_qp_iter *i;
- i = kzalloc(sizeof(*i), GFP_KERNEL);
+ i = kzalloc_obj(*i, GFP_KERNEL);
if (!i)
return NULL;
diff --git a/drivers/infiniband/sw/rdmavt/vt.c b/drivers/infiniband/sw/rdmavt/vt.c
index d22d610c2696..3a7b1f3c4ac6 100644
--- a/drivers/infiniband/sw/rdmavt/vt.c
+++ b/drivers/infiniband/sw/rdmavt/vt.c
@@ -53,7 +53,7 @@ struct rvt_dev_info *rvt_alloc_device(size_t size, int nports)
if (!rdi)
return rdi;
- rdi->ports = kcalloc(nports, sizeof(*rdi->ports), GFP_KERNEL);
+ rdi->ports = kzalloc_objs(*rdi->ports, nports, GFP_KERNEL);
if (!rdi->ports)
ib_dealloc_device(&rdi->ibdev);
diff --git a/drivers/infiniband/sw/rxe/rxe_mcast.c b/drivers/infiniband/sw/rxe/rxe_mcast.c
index 07ff47bae31d..6c3c78ddedc9 100644
--- a/drivers/infiniband/sw/rxe/rxe_mcast.c
+++ b/drivers/infiniband/sw/rxe/rxe_mcast.c
@@ -223,7 +223,7 @@ static struct rxe_mcg *rxe_get_mcg(struct rxe_dev *rxe, union ib_gid *mgid)
}
/* speculative alloc of new mcg */
- mcg = kzalloc(sizeof(*mcg), GFP_KERNEL);
+ mcg = kzalloc_obj(*mcg, GFP_KERNEL);
if (!mcg) {
err = -ENOMEM;
goto err_dec;
@@ -363,7 +363,7 @@ static int rxe_attach_mcg(struct rxe_mcg *mcg, struct rxe_qp *qp)
spin_unlock_bh(&rxe->mcg_lock);
/* speculative alloc new mca without using GFP_ATOMIC */
- mca = kzalloc(sizeof(*mca), GFP_KERNEL);
+ mca = kzalloc_obj(*mca, GFP_KERNEL);
if (!mca)
return -ENOMEM;
diff --git a/drivers/infiniband/sw/rxe/rxe_mmap.c b/drivers/infiniband/sw/rxe/rxe_mmap.c
index 6b7f2bd69879..6afd158b4b0b 100644
--- a/drivers/infiniband/sw/rxe/rxe_mmap.c
+++ b/drivers/infiniband/sw/rxe/rxe_mmap.c
@@ -120,7 +120,7 @@ struct rxe_mmap_info *rxe_create_mmap_info(struct rxe_dev *rxe, u32 size,
if (!udata)
return ERR_PTR(-EINVAL);
- ip = kmalloc(sizeof(*ip), GFP_KERNEL);
+ ip = kmalloc_obj(*ip, GFP_KERNEL);
if (!ip)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/sw/rxe/rxe_mr.c b/drivers/infiniband/sw/rxe/rxe_mr.c
index c71ab780e379..e2a4eb72a56e 100644
--- a/drivers/infiniband/sw/rxe/rxe_mr.c
+++ b/drivers/infiniband/sw/rxe/rxe_mr.c
@@ -156,8 +156,7 @@ static int rxe_mr_fill_pages_from_sgt(struct rxe_mr *mr, struct sg_table *sgt)
static int __alloc_mr_page_info(struct rxe_mr *mr, int num_pages)
{
- mr->page_info = kcalloc(num_pages, sizeof(struct rxe_mr_page),
- GFP_KERNEL);
+ mr->page_info = kzalloc_objs(struct rxe_mr_page, num_pages, GFP_KERNEL);
if (!mr->page_info)
return -ENOMEM;
diff --git a/drivers/infiniband/sw/rxe/rxe_odp.c b/drivers/infiniband/sw/rxe/rxe_odp.c
index d3a54bfaf92f..81b7d5cc8313 100644
--- a/drivers/infiniband/sw/rxe/rxe_odp.c
+++ b/drivers/infiniband/sw/rxe/rxe_odp.c
@@ -523,7 +523,7 @@ static int rxe_ib_advise_mr_prefetch(struct ib_pd *ibpd,
num_sge);
/* Asynchronous call is "best-effort" and allowed to fail */
- work = kvzalloc(struct_size(work, frags, num_sge), GFP_KERNEL);
+ work = kvzalloc_flex(*work, frags, num_sge, GFP_KERNEL);
if (!work)
return -ENOMEM;
diff --git a/drivers/infiniband/sw/rxe/rxe_qp.c b/drivers/infiniband/sw/rxe/rxe_qp.c
index 845bdd03ca28..3e00b1c3db0a 100644
--- a/drivers/infiniband/sw/rxe/rxe_qp.c
+++ b/drivers/infiniband/sw/rxe/rxe_qp.c
@@ -152,7 +152,7 @@ static int alloc_rd_atomic_resources(struct rxe_qp *qp, unsigned int n)
{
qp->resp.res_head = 0;
qp->resp.res_tail = 0;
- qp->resp.resources = kcalloc(n, sizeof(struct resp_res), GFP_KERNEL);
+ qp->resp.resources = kzalloc_objs(struct resp_res, n, GFP_KERNEL);
if (!qp->resp.resources)
return -ENOMEM;
diff --git a/drivers/infiniband/sw/rxe/rxe_queue.c b/drivers/infiniband/sw/rxe/rxe_queue.c
index 9611ee191a46..e27d57ac687f 100644
--- a/drivers/infiniband/sw/rxe/rxe_queue.c
+++ b/drivers/infiniband/sw/rxe/rxe_queue.c
@@ -63,7 +63,7 @@ struct rxe_queue *rxe_queue_init(struct rxe_dev *rxe, int *num_elem,
if (*num_elem < 0)
return NULL;
- q = kzalloc(sizeof(*q), GFP_KERNEL);
+ q = kzalloc_obj(*q, GFP_KERNEL);
if (!q)
return NULL;
diff --git a/drivers/infiniband/sw/rxe/rxe_verbs.c b/drivers/infiniband/sw/rxe/rxe_verbs.c
index 38d8c408320f..5d1e0b3228c4 100644
--- a/drivers/infiniband/sw/rxe/rxe_verbs.c
+++ b/drivers/infiniband/sw/rxe/rxe_verbs.c
@@ -1245,7 +1245,7 @@ static struct ib_mr *rxe_get_dma_mr(struct ib_pd *ibpd, int access)
struct rxe_mr *mr;
int err;
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -1288,7 +1288,7 @@ static struct ib_mr *rxe_reg_user_mr(struct ib_pd *ibpd, u64 start,
return ERR_PTR(-EOPNOTSUPP);
}
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
@@ -1373,7 +1373,7 @@ static struct ib_mr *rxe_alloc_mr(struct ib_pd *ibpd, enum ib_mr_type mr_type,
goto err_out;
}
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/sw/siw/siw_cm.c b/drivers/infiniband/sw/siw/siw_cm.c
index 1d3de8209bfa..22fa54cacab9 100644
--- a/drivers/infiniband/sw/siw/siw_cm.c
+++ b/drivers/infiniband/sw/siw/siw_cm.c
@@ -205,7 +205,7 @@ static void siw_cep_socket_assoc(struct siw_cep *cep, struct socket *s)
static struct siw_cep *siw_cep_alloc(struct siw_device *sdev)
{
- struct siw_cep *cep = kzalloc(sizeof(*cep), GFP_KERNEL);
+ struct siw_cep *cep = kzalloc_obj(*cep, GFP_KERNEL);
unsigned long flags;
if (!cep)
@@ -334,7 +334,7 @@ static int siw_cm_alloc_work(struct siw_cep *cep, int num)
struct siw_cm_work *work;
while (num--) {
- work = kmalloc(sizeof(*work), GFP_KERNEL);
+ work = kmalloc_obj(*work, GFP_KERNEL);
if (!work) {
if (!(list_empty(&cep->work_freelist)))
siw_cm_free_work(cep);
@@ -1915,7 +1915,7 @@ int siw_create_listen(struct iw_cm_id *id, int backlog)
*/
if (!id->provider_data) {
id->provider_data =
- kmalloc(sizeof(struct list_head), GFP_KERNEL);
+ kmalloc_obj(struct list_head, GFP_KERNEL);
if (!id->provider_data) {
rv = -ENOMEM;
goto error;
diff --git a/drivers/infiniband/sw/siw/siw_main.c b/drivers/infiniband/sw/siw/siw_main.c
index 5168307229a9..a896b527bcee 100644
--- a/drivers/infiniband/sw/siw/siw_main.c
+++ b/drivers/infiniband/sw/siw/siw_main.c
@@ -128,14 +128,14 @@ static int siw_init_cpulist(void)
siw_cpu_info.num_nodes = num_nodes;
siw_cpu_info.tx_valid_cpus =
- kcalloc(num_nodes, sizeof(struct cpumask *), GFP_KERNEL);
+ kzalloc_objs(struct cpumask *, num_nodes, GFP_KERNEL);
if (!siw_cpu_info.tx_valid_cpus) {
siw_cpu_info.num_nodes = 0;
return -ENOMEM;
}
for (i = 0; i < siw_cpu_info.num_nodes; i++) {
siw_cpu_info.tx_valid_cpus[i] =
- kzalloc(sizeof(struct cpumask), GFP_KERNEL);
+ kzalloc_obj(struct cpumask, GFP_KERNEL);
if (!siw_cpu_info.tx_valid_cpus[i])
goto out_err;
diff --git a/drivers/infiniband/sw/siw/siw_mem.c b/drivers/infiniband/sw/siw/siw_mem.c
index d5ddeb17bd22..56d3e5c410ce 100644
--- a/drivers/infiniband/sw/siw/siw_mem.c
+++ b/drivers/infiniband/sw/siw/siw_mem.c
@@ -58,7 +58,7 @@ int siw_mr_add_mem(struct siw_mr *mr, struct ib_pd *pd, void *mem_obj,
u64 start, u64 len, int rights)
{
struct siw_device *sdev = to_siw_dev(pd->device);
- struct siw_mem *mem = kzalloc(sizeof(*mem), GFP_KERNEL);
+ struct siw_mem *mem = kzalloc_obj(*mem, GFP_KERNEL);
struct xa_limit limit = XA_LIMIT(1, SIW_STAG_MAX_INDEX);
u32 id, next;
@@ -321,7 +321,7 @@ struct siw_pbl *siw_pbl_alloc(u32 num_buf)
if (num_buf == 0)
return ERR_PTR(-EINVAL);
- pbl = kzalloc(struct_size(pbl, pbe, num_buf), GFP_KERNEL);
+ pbl = kzalloc_flex(*pbl, pbe, num_buf, GFP_KERNEL);
if (!pbl)
return ERR_PTR(-ENOMEM);
@@ -347,12 +347,12 @@ struct siw_umem *siw_umem_get(struct ib_device *base_dev, u64 start,
num_pages = PAGE_ALIGN(start + len - first_page_va) >> PAGE_SHIFT;
num_chunks = (num_pages >> CHUNK_SHIFT) + 1;
- umem = kzalloc(sizeof(*umem), GFP_KERNEL);
+ umem = kzalloc_obj(*umem, GFP_KERNEL);
if (!umem)
return ERR_PTR(-ENOMEM);
umem->page_chunk =
- kcalloc(num_chunks, sizeof(struct siw_page_chunk), GFP_KERNEL);
+ kzalloc_objs(struct siw_page_chunk, num_chunks, GFP_KERNEL);
if (!umem->page_chunk) {
rv = -ENOMEM;
goto err_out;
@@ -376,7 +376,7 @@ struct siw_umem *siw_umem_get(struct ib_device *base_dev, u64 start,
for (i = 0; num_pages > 0; i++) {
int nents = min_t(int, num_pages, PAGES_PER_CHUNK);
struct page **plist =
- kcalloc(nents, sizeof(struct page *), GFP_KERNEL);
+ kzalloc_objs(struct page *, nents, GFP_KERNEL);
if (!plist) {
rv = -ENOMEM;
diff --git a/drivers/infiniband/sw/siw/siw_qp.c b/drivers/infiniband/sw/siw/siw_qp.c
index c1e6e7d6e32f..cccfef1e27bf 100644
--- a/drivers/infiniband/sw/siw/siw_qp.c
+++ b/drivers/infiniband/sw/siw/siw_qp.c
@@ -391,7 +391,7 @@ void siw_send_terminate(struct siw_qp *qp)
return;
}
- term = kzalloc(sizeof(*term), GFP_KERNEL);
+ term = kzalloc_obj(*term, GFP_KERNEL);
if (!term)
return;
@@ -405,7 +405,7 @@ void siw_send_terminate(struct siw_qp *qp)
if ((qp->term_info.layer == TERM_ERROR_LAYER_DDP) ||
((qp->term_info.layer == TERM_ERROR_LAYER_RDMAP) &&
(qp->term_info.etype != RDMAP_ETYPE_CATASTROPHIC))) {
- err_hdr = kzalloc(sizeof(*err_hdr), GFP_KERNEL);
+ err_hdr = kzalloc_obj(*err_hdr, GFP_KERNEL);
if (!err_hdr) {
kfree(term);
return;
diff --git a/drivers/infiniband/sw/siw/siw_verbs.c b/drivers/infiniband/sw/siw/siw_verbs.c
index efa2f097b582..12719394f1ea 100644
--- a/drivers/infiniband/sw/siw/siw_verbs.c
+++ b/drivers/infiniband/sw/siw/siw_verbs.c
@@ -274,7 +274,7 @@ siw_mmap_entry_insert(struct siw_ucontext *uctx,
void *address, size_t length,
u64 *offset)
{
- struct siw_user_mmap_entry *entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ struct siw_user_mmap_entry *entry = kzalloc_obj(*entry, GFP_KERNEL);
int rv;
*offset = SIW_INVAL_UOBJ_KEY;
@@ -1360,7 +1360,7 @@ struct ib_mr *siw_reg_user_mr(struct ib_pd *pd, u64 start, u64 len,
umem = NULL;
goto err_out;
}
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr) {
rv = -ENOMEM;
goto err_out;
@@ -1441,7 +1441,7 @@ struct ib_mr *siw_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
pbl = NULL;
goto err_out;
}
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr) {
rv = -ENOMEM;
goto err_out;
@@ -1556,7 +1556,7 @@ struct ib_mr *siw_get_dma_mr(struct ib_pd *pd, int rights)
rv = -ENOMEM;
goto err_out;
}
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr) {
rv = -ENOMEM;
goto err_out;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
index b610d36295bb..54de2be1494b 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
@@ -360,7 +360,7 @@ static int ipoib_cm_nonsrq_init_rx(struct net_device *dev, struct ib_cm_id *cm_i
if (!rx->rx_ring)
return -ENOMEM;
- t = kmalloc(sizeof(*t), GFP_KERNEL);
+ t = kmalloc_obj(*t, GFP_KERNEL);
if (!t) {
ret = -ENOMEM;
goto err_free_1;
@@ -449,7 +449,7 @@ static int ipoib_cm_req_handler(struct ib_cm_id *cm_id,
int ret;
ipoib_dbg(priv, "REQ arrived\n");
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return -ENOMEM;
p->dev = dev;
@@ -1304,7 +1304,7 @@ struct ipoib_cm_tx *ipoib_cm_create_tx(struct net_device *dev, struct ipoib_path
struct ipoib_dev_priv *priv = ipoib_priv(dev);
struct ipoib_cm_tx *tx;
- tx = kzalloc(sizeof(*tx), GFP_ATOMIC);
+ tx = kzalloc_obj(*tx, GFP_ATOMIC);
if (!tx)
return NULL;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
index 10b0dbda6cd5..44354d661e65 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
@@ -59,7 +59,7 @@ struct ipoib_ah *ipoib_create_ah(struct net_device *dev,
struct ipoib_ah *ah;
struct ib_ah *vah;
- ah = kmalloc(sizeof(*ah), GFP_KERNEL);
+ ah = kmalloc_obj(*ah, GFP_KERNEL);
if (!ah)
return ERR_PTR(-ENOMEM);
@@ -422,7 +422,7 @@ static void ipoib_ib_handle_tx_wc(struct net_device *dev, struct ib_wc *wc)
ipoib_warn(priv,
"failed send event (status=%d, wrid=%d vend_err %#x)\n",
wc->status, wr_id, wc->vendor_err);
- qp_work = kzalloc(sizeof(*qp_work), GFP_ATOMIC);
+ qp_work = kzalloc_obj(*qp_work, GFP_ATOMIC);
if (!qp_work)
return;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index 4a504b7c4293..934d8e5a8f11 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -169,7 +169,7 @@ static void ipoib_schedule_ifupdown_task(struct net_device *dev, bool up)
(!up && !(dev->flags & IFF_UP)))
return;
- work = kmalloc(sizeof(*work), GFP_KERNEL);
+ work = kmalloc_obj(*work, GFP_KERNEL);
if (!work)
return;
work->dev = dev;
@@ -673,7 +673,7 @@ struct ipoib_path_iter *ipoib_path_iter_init(struct net_device *dev)
{
struct ipoib_path_iter *iter;
- iter = kmalloc(sizeof(*iter), GFP_KERNEL);
+ iter = kmalloc_obj(*iter, GFP_KERNEL);
if (!iter)
return NULL;
@@ -924,7 +924,7 @@ static struct ipoib_path *path_rec_create(struct net_device *dev, void *gid)
if (!priv->broadcast)
return NULL;
- path = kzalloc(sizeof(*path), GFP_ATOMIC);
+ path = kzalloc_obj(*path, GFP_ATOMIC);
if (!path)
return NULL;
@@ -1443,7 +1443,7 @@ static struct ipoib_neigh *ipoib_neigh_ctor(u8 *daddr,
{
struct ipoib_neigh *neigh;
- neigh = kzalloc(sizeof(*neigh), GFP_ATOMIC);
+ neigh = kzalloc_obj(*neigh, GFP_ATOMIC);
if (!neigh)
return NULL;
@@ -1593,11 +1593,11 @@ static int ipoib_neigh_hash_init(struct ipoib_dev_priv *priv)
clear_bit(IPOIB_NEIGH_TBL_FLUSH, &priv->flags);
ntbl->htbl = NULL;
- htbl = kzalloc(sizeof(*htbl), GFP_KERNEL);
+ htbl = kzalloc_obj(*htbl, GFP_KERNEL);
if (!htbl)
return -ENOMEM;
size = roundup_pow_of_two(arp_tbl.gc_thresh3);
- buckets = kvcalloc(size, sizeof(*buckets), GFP_KERNEL);
+ buckets = kvzalloc_objs(*buckets, size, GFP_KERNEL);
if (!buckets) {
kfree(htbl);
return -ENOMEM;
@@ -1773,9 +1773,8 @@ static int ipoib_dev_init_default(struct net_device *dev)
ipoib_napi_add(dev);
/* Allocate RX/TX "rings" to hold queued skbs */
- priv->rx_ring = kcalloc(ipoib_recvq_size,
- sizeof(*priv->rx_ring),
- GFP_KERNEL);
+ priv->rx_ring = kzalloc_objs(*priv->rx_ring, ipoib_recvq_size,
+ GFP_KERNEL);
if (!priv->rx_ring)
goto out;
@@ -2278,7 +2277,7 @@ int ipoib_intf_init(struct ib_device *hca, u32 port, const char *name,
struct ipoib_dev_priv *priv;
int rc;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
@@ -2664,7 +2663,7 @@ static int ipoib_add_one(struct ib_device *device)
unsigned int p;
int count = 0;
- dev_list = kmalloc(sizeof(*dev_list), GFP_KERNEL);
+ dev_list = kmalloc_obj(*dev_list, GFP_KERNEL);
if (!dev_list)
return -ENOMEM;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
index 8a4ab9ff0a68..7b04186f659e 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -139,7 +139,7 @@ static struct ipoib_mcast *ipoib_mcast_alloc(struct net_device *dev)
{
struct ipoib_mcast *mcast;
- mcast = kzalloc(sizeof(*mcast), GFP_ATOMIC);
+ mcast = kzalloc_obj(*mcast, GFP_ATOMIC);
if (!mcast)
return NULL;
@@ -980,7 +980,7 @@ struct ipoib_mcast_iter *ipoib_mcast_iter_init(struct net_device *dev)
{
struct ipoib_mcast_iter *iter;
- iter = kmalloc(sizeof(*iter), GFP_KERNEL);
+ iter = kmalloc_obj(*iter, GFP_KERNEL);
if (!iter)
return NULL;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_verbs.c b/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
index 86983080d28b..55a612ad2b07 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
@@ -52,7 +52,7 @@ int ipoib_mcast_attach(struct net_device *dev, struct ib_device *hca,
if (set_qkey) {
ret = -ENOMEM;
- qp_attr = kmalloc(sizeof(*qp_attr), GFP_KERNEL);
+ qp_attr = kmalloc_obj(*qp_attr, GFP_KERNEL);
if (!qp_attr)
goto out;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_vlan.c b/drivers/infiniband/ulp/ipoib/ipoib_vlan.c
index 243e8f555eca..df98b4936c32 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_vlan.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_vlan.c
@@ -274,7 +274,7 @@ int ipoib_vlan_delete(struct net_device *pdev, unsigned short pkey)
priv->child_type == IPOIB_LEGACY_CHILD) {
struct ipoib_vlan_delete_work *work;
- work = kmalloc(sizeof(*work), GFP_KERNEL);
+ work = kmalloc_obj(*work, GFP_KERNEL);
if (!work) {
rc = -ENOMEM;
goto out;
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
index dc531fad73de..2e1e97acf342 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -802,7 +802,7 @@ static struct iscsi_endpoint *iscsi_iser_ep_connect(struct Scsi_Host *shost,
if (!ep)
return ERR_PTR(-ENOMEM);
- iser_conn = kzalloc(sizeof(*iser_conn), GFP_KERNEL);
+ iser_conn = kzalloc_obj(*iser_conn, GFP_KERNEL);
if (!iser_conn) {
err = -ENOMEM;
goto failure;
diff --git a/drivers/infiniband/ulp/iser/iser_initiator.c b/drivers/infiniband/ulp/iser/iser_initiator.c
index f5f090dc4f1e..0ae0f7722e0f 100644
--- a/drivers/infiniband/ulp/iser/iser_initiator.c
+++ b/drivers/infiniband/ulp/iser/iser_initiator.c
@@ -240,9 +240,8 @@ int iser_alloc_rx_descriptors(struct iser_conn *iser_conn,
goto alloc_login_buf_fail;
iser_conn->num_rx_descs = session->cmds_max;
- iser_conn->rx_descs = kmalloc_array(iser_conn->num_rx_descs,
- sizeof(struct iser_rx_desc),
- GFP_KERNEL);
+ iser_conn->rx_descs = kmalloc_objs(struct iser_rx_desc,
+ iser_conn->num_rx_descs, GFP_KERNEL);
if (!iser_conn->rx_descs)
goto rx_desc_alloc_fail;
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c
index 6801b70dc9e0..f08dea6721c4 100644
--- a/drivers/infiniband/ulp/iser/iser_verbs.c
+++ b/drivers/infiniband/ulp/iser/iser_verbs.c
@@ -105,7 +105,7 @@ iser_create_fastreg_desc(struct iser_device *device,
enum ib_mr_type mr_type;
int ret;
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
return ERR_PTR(-ENOMEM);
@@ -305,7 +305,7 @@ struct iser_device *iser_device_find_by_ib_device(struct rdma_cm_id *cma_id)
if (device->ib_device->node_guid == cma_id->device->node_guid)
goto inc_refcnt;
- device = kzalloc(sizeof *device, GFP_KERNEL);
+ device = kzalloc_obj(*device, GFP_KERNEL);
if (!device)
goto out;
diff --git a/drivers/infiniband/ulp/isert/ib_isert.c b/drivers/infiniband/ulp/isert/ib_isert.c
index af811d060cc8..ab5d8790cf87 100644
--- a/drivers/infiniband/ulp/isert/ib_isert.c
+++ b/drivers/infiniband/ulp/isert/ib_isert.c
@@ -152,9 +152,8 @@ isert_alloc_rx_descriptors(struct isert_conn *isert_conn)
u64 dma_addr;
int i, j;
- isert_conn->rx_descs = kcalloc(ISERT_QP_MAX_RECV_DTOS,
- sizeof(struct iser_rx_desc),
- GFP_KERNEL);
+ isert_conn->rx_descs = kzalloc_objs(struct iser_rx_desc,
+ ISERT_QP_MAX_RECV_DTOS, GFP_KERNEL);
if (!isert_conn->rx_descs)
return -ENOMEM;
@@ -275,7 +274,7 @@ isert_device_get(struct rdma_cm_id *cma_id)
}
}
- device = kzalloc(sizeof(struct isert_device), GFP_KERNEL);
+ device = kzalloc_obj(struct isert_device, GFP_KERNEL);
if (!device) {
mutex_unlock(&device_list_mutex);
return ERR_PTR(-ENOMEM);
@@ -333,8 +332,8 @@ isert_alloc_login_buf(struct isert_conn *isert_conn,
{
int ret;
- isert_conn->login_desc = kzalloc(sizeof(*isert_conn->login_desc),
- GFP_KERNEL);
+ isert_conn->login_desc = kzalloc_obj(*isert_conn->login_desc,
+ GFP_KERNEL);
if (!isert_conn->login_desc)
return -ENOMEM;
@@ -429,7 +428,7 @@ isert_connect_request(struct rdma_cm_id *cma_id, struct rdma_cm_event *event)
isert_dbg("cma_id: %p, portal: %p\n",
cma_id, cma_id->context);
- isert_conn = kzalloc(sizeof(struct isert_conn), GFP_KERNEL);
+ isert_conn = kzalloc_obj(struct isert_conn, GFP_KERNEL);
if (!isert_conn)
return -ENOMEM;
@@ -2269,7 +2268,7 @@ isert_setup_np(struct iscsi_np *np,
struct rdma_cm_id *isert_lid;
int ret;
- isert_np = kzalloc(sizeof(struct isert_np), GFP_KERNEL);
+ isert_np = kzalloc_obj(struct isert_np, GFP_KERNEL);
if (!isert_np)
return -ENOMEM;
diff --git a/drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.c b/drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.c
index 31cd361416ac..6d3dbf45e9f5 100644
--- a/drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.c
+++ b/drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.c
@@ -238,7 +238,7 @@ int opa_vnic_update_mac_tbl(struct opa_vnic_adapter *adapter,
if (!memcmp(mac_addr, empty_mac, ARRAY_SIZE(empty_mac)))
continue;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node) {
rc = -ENOMEM;
goto updt_done;
@@ -265,7 +265,7 @@ int opa_vnic_update_mac_tbl(struct opa_vnic_adapter *adapter,
(node->index < (loffset + lnum_entries)))
continue;
- new_node = kzalloc(sizeof(*new_node), GFP_KERNEL);
+ new_node = kzalloc_obj(*new_node, GFP_KERNEL);
if (!new_node) {
rc = -ENOMEM;
goto updt_done;
diff --git a/drivers/infiniband/ulp/opa_vnic/opa_vnic_netdev.c b/drivers/infiniband/ulp/opa_vnic/opa_vnic_netdev.c
index 071f35711468..6d5f642ff3d3 100644
--- a/drivers/infiniband/ulp/opa_vnic/opa_vnic_netdev.c
+++ b/drivers/infiniband/ulp/opa_vnic/opa_vnic_netdev.c
@@ -337,7 +337,7 @@ struct opa_vnic_adapter *opa_vnic_add_netdev(struct ib_device *ibdev,
return ERR_CAST(netdev);
rn = netdev_priv(netdev);
- adapter = kzalloc(sizeof(*adapter), GFP_KERNEL);
+ adapter = kzalloc_obj(*adapter, GFP_KERNEL);
if (!adapter) {
rc = -ENOMEM;
goto adapter_err;
diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt.c b/drivers/infiniband/ulp/rtrs/rtrs-clt.c
index 59e30640f94a..67405a19ea10 100644
--- a/drivers/infiniband/ulp/rtrs/rtrs-clt.c
+++ b/drivers/infiniband/ulp/rtrs/rtrs-clt.c
@@ -1364,9 +1364,8 @@ static int alloc_path_reqs(struct rtrs_clt_path *clt_path)
enum ib_mr_type mr_type;
int i, err = -ENOMEM;
- clt_path->reqs = kcalloc(clt_path->queue_depth,
- sizeof(*clt_path->reqs),
- GFP_KERNEL);
+ clt_path->reqs = kzalloc_objs(*clt_path->reqs, clt_path->queue_depth,
+ GFP_KERNEL);
if (!clt_path->reqs)
return -ENOMEM;
@@ -1384,7 +1383,7 @@ static int alloc_path_reqs(struct rtrs_clt_path *clt_path)
if (!req->iu)
goto out;
- req->sge = kcalloc(2, sizeof(*req->sge), GFP_KERNEL);
+ req->sge = kzalloc_objs(*req->sge, 2, GFP_KERNEL);
if (!req->sge)
goto out;
@@ -1538,7 +1537,7 @@ static struct rtrs_clt_path *alloc_path(struct rtrs_clt_sess *clt,
int cpu;
size_t total_con;
- clt_path = kzalloc(sizeof(*clt_path), GFP_KERNEL);
+ clt_path = kzalloc_obj(*clt_path, GFP_KERNEL);
if (!clt_path)
goto err;
@@ -1547,15 +1546,14 @@ static struct rtrs_clt_path *alloc_path(struct rtrs_clt_sess *clt,
* +1: Extra connection for user messages
*/
total_con = con_num + nr_poll_queues + 1;
- clt_path->s.con = kcalloc(total_con, sizeof(*clt_path->s.con),
- GFP_KERNEL);
+ clt_path->s.con = kzalloc_objs(*clt_path->s.con, total_con, GFP_KERNEL);
if (!clt_path->s.con)
goto err_free_path;
clt_path->s.con_num = total_con;
clt_path->s.irq_con_num = con_num + 1;
- clt_path->stats = kzalloc(sizeof(*clt_path->stats), GFP_KERNEL);
+ clt_path->stats = kzalloc_obj(*clt_path->stats, GFP_KERNEL);
if (!clt_path->stats)
goto err_free_con;
@@ -1622,7 +1620,7 @@ static int create_con(struct rtrs_clt_path *clt_path, unsigned int cid)
{
struct rtrs_clt_con *con;
- con = kzalloc(sizeof(*con), GFP_KERNEL);
+ con = kzalloc_obj(*con, GFP_KERNEL);
if (!con)
return -ENOMEM;
@@ -1873,9 +1871,8 @@ static int rtrs_rdma_conn_established(struct rtrs_clt_con *con,
}
if (!clt_path->rbufs) {
- clt_path->rbufs = kcalloc(queue_depth,
- sizeof(*clt_path->rbufs),
- GFP_KERNEL);
+ clt_path->rbufs = kzalloc_objs(*clt_path->rbufs,
+ queue_depth, GFP_KERNEL);
if (!clt_path->rbufs)
return -ENOMEM;
}
@@ -2730,7 +2727,7 @@ static struct rtrs_clt_sess *alloc_clt(const char *sessname, size_t paths_num,
if (strlen(sessname) >= sizeof(clt->sessname))
return ERR_PTR(-EINVAL);
- clt = kzalloc(sizeof(*clt), GFP_KERNEL);
+ clt = kzalloc_obj(*clt, GFP_KERNEL);
if (!clt)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/infiniband/ulp/rtrs/rtrs-srv.c b/drivers/infiniband/ulp/rtrs/rtrs-srv.c
index 2e09811a10b2..c66929b74805 100644
--- a/drivers/infiniband/ulp/rtrs/rtrs-srv.c
+++ b/drivers/infiniband/ulp/rtrs/rtrs-srv.c
@@ -138,14 +138,13 @@ static int rtrs_srv_alloc_ops_ids(struct rtrs_srv_path *srv_path)
struct rtrs_srv_op *id;
int i, ret;
- srv_path->ops_ids = kcalloc(srv->queue_depth,
- sizeof(*srv_path->ops_ids),
- GFP_KERNEL);
+ srv_path->ops_ids = kzalloc_objs(*srv_path->ops_ids, srv->queue_depth,
+ GFP_KERNEL);
if (!srv_path->ops_ids)
goto err;
for (i = 0; i < srv->queue_depth; ++i) {
- id = kzalloc(sizeof(*id), GFP_KERNEL);
+ id = kzalloc_obj(*id, GFP_KERNEL);
if (!id)
goto err;
@@ -589,7 +588,7 @@ static int map_cont_bufs(struct rtrs_srv_path *srv_path)
chunks_per_mr = DIV_ROUND_UP(srv->queue_depth, mrs_num);
}
- srv_path->mrs = kcalloc(mrs_num, sizeof(*srv_path->mrs), GFP_KERNEL);
+ srv_path->mrs = kzalloc_objs(*srv_path->mrs, mrs_num, GFP_KERNEL);
if (!srv_path->mrs)
return -ENOMEM;
@@ -837,7 +836,7 @@ static int process_info_req(struct rtrs_srv_con *con,
strscpy(srv_path->s.sessname, msg->pathname,
sizeof(srv_path->s.sessname));
- rwr = kcalloc(srv_path->mrs_num, sizeof(*rwr), GFP_KERNEL);
+ rwr = kzalloc_objs(*rwr, srv_path->mrs_num, GFP_KERNEL);
if (!rwr)
return -ENOMEM;
@@ -1436,7 +1435,7 @@ static struct rtrs_srv_sess *get_or_create_srv(struct rtrs_srv_ctx *ctx,
}
/* need to allocate a new srv */
- srv = kzalloc(sizeof(*srv), GFP_KERNEL);
+ srv = kzalloc_obj(*srv, GFP_KERNEL);
if (!srv)
return ERR_PTR(-ENOMEM);
@@ -1449,8 +1448,7 @@ static struct rtrs_srv_sess *get_or_create_srv(struct rtrs_srv_ctx *ctx,
device_initialize(&srv->dev);
srv->dev.release = rtrs_srv_dev_release;
- srv->chunks = kcalloc(srv->queue_depth, sizeof(*srv->chunks),
- GFP_KERNEL);
+ srv->chunks = kzalloc_objs(*srv->chunks, srv->queue_depth, GFP_KERNEL);
if (!srv->chunks)
goto err_free_srv;
@@ -1715,7 +1713,7 @@ static int create_con(struct rtrs_srv_path *srv_path,
u32 cq_num, max_send_wr, max_recv_wr, wr_limit;
int err, cq_vector;
- con = kzalloc(sizeof(*con), GFP_KERNEL);
+ con = kzalloc_obj(*con, GFP_KERNEL);
if (!con) {
err = -ENOMEM;
goto err;
@@ -1808,11 +1806,11 @@ static struct rtrs_srv_path *__alloc_path(struct rtrs_srv_sess *srv,
err = -EEXIST;
goto err;
}
- srv_path = kzalloc(sizeof(*srv_path), GFP_KERNEL);
+ srv_path = kzalloc_obj(*srv_path, GFP_KERNEL);
if (!srv_path)
goto err;
- srv_path->stats = kzalloc(sizeof(*srv_path->stats), GFP_KERNEL);
+ srv_path->stats = kzalloc_obj(*srv_path->stats, GFP_KERNEL);
if (!srv_path->stats)
goto err_free_sess;
@@ -1822,14 +1820,12 @@ static struct rtrs_srv_path *__alloc_path(struct rtrs_srv_sess *srv,
srv_path->stats->srv_path = srv_path;
- srv_path->dma_addr = kcalloc(srv->queue_depth,
- sizeof(*srv_path->dma_addr),
- GFP_KERNEL);
+ srv_path->dma_addr = kzalloc_objs(*srv_path->dma_addr, srv->queue_depth,
+ GFP_KERNEL);
if (!srv_path->dma_addr)
goto err_free_percpu;
- srv_path->s.con = kcalloc(con_num, sizeof(*srv_path->s.con),
- GFP_KERNEL);
+ srv_path->s.con = kzalloc_objs(*srv_path->s.con, con_num, GFP_KERNEL);
if (!srv_path->s.con)
goto err_free_dma_addr;
@@ -2162,7 +2158,7 @@ static struct rtrs_srv_ctx *alloc_srv_ctx(struct rtrs_srv_ops *ops)
{
struct rtrs_srv_ctx *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return NULL;
diff --git a/drivers/infiniband/ulp/rtrs/rtrs.c b/drivers/infiniband/ulp/rtrs/rtrs.c
index bc1208ae8216..f316cbe5e62c 100644
--- a/drivers/infiniband/ulp/rtrs/rtrs.c
+++ b/drivers/infiniband/ulp/rtrs/rtrs.c
@@ -26,7 +26,7 @@ struct rtrs_iu *rtrs_iu_alloc(u32 iu_num, size_t size, gfp_t gfp_mask,
struct rtrs_iu *ius, *iu;
int i;
- ius = kcalloc(iu_num, sizeof(*ius), gfp_mask);
+ ius = kzalloc_objs(*ius, iu_num, gfp_mask);
if (!ius)
return NULL;
for (i = 0; i < iu_num; i++) {
@@ -618,7 +618,7 @@ rtrs_ib_dev_find_or_add(struct ib_device *ib_dev,
goto out_unlock;
}
mutex_unlock(&pool->mutex);
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
goto out_err;
diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index 510f16004ecd..e1dfc097f774 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -225,7 +225,7 @@ static struct srp_iu *srp_alloc_iu(struct srp_host *host, size_t size,
{
struct srp_iu *iu;
- iu = kmalloc(sizeof *iu, gfp_mask);
+ iu = kmalloc_obj(*iu, gfp_mask);
if (!iu)
goto out;
@@ -274,7 +274,7 @@ static int srp_init_ib_qp(struct srp_target_port *target,
struct ib_qp_attr *attr;
int ret;
- attr = kmalloc(sizeof *attr, GFP_KERNEL);
+ attr = kmalloc_obj(*attr, GFP_KERNEL);
if (!attr)
return -ENOMEM;
@@ -418,7 +418,7 @@ static struct srp_fr_pool *srp_create_fr_pool(struct ib_device *device,
if (pool_size <= 0)
goto err;
ret = -ENOMEM;
- pool = kzalloc(struct_size(pool, desc, pool_size), GFP_KERNEL);
+ pool = kzalloc_flex(*pool, desc, pool_size, GFP_KERNEL);
if (!pool)
goto err;
pool->size = pool_size;
@@ -533,7 +533,7 @@ static int srp_create_ch_ib(struct srp_rdma_ch *ch)
const int m = 1 + dev->use_fast_reg * target->mr_per_cmd * 2;
int ret;
- init_attr = kzalloc(sizeof *init_attr, GFP_KERNEL);
+ init_attr = kzalloc_obj(*init_attr, GFP_KERNEL);
if (!init_attr)
return -ENOMEM;
@@ -806,7 +806,7 @@ static int srp_send_req(struct srp_rdma_ch *ch, uint32_t max_iu_len,
char *ipi, *tpi;
int status;
- req = kzalloc(sizeof *req, GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -2257,12 +2257,10 @@ static int srp_alloc_iu_bufs(struct srp_rdma_ch *ch)
struct srp_target_port *target = ch->target;
int i;
- ch->rx_ring = kcalloc(target->queue_size, sizeof(*ch->rx_ring),
- GFP_KERNEL);
+ ch->rx_ring = kzalloc_objs(*ch->rx_ring, target->queue_size, GFP_KERNEL);
if (!ch->rx_ring)
goto err_no_ring;
- ch->tx_ring = kcalloc(target->queue_size, sizeof(*ch->tx_ring),
- GFP_KERNEL);
+ ch->tx_ring = kzalloc_objs(*ch->tx_ring, target->queue_size, GFP_KERNEL);
if (!ch->tx_ring)
goto err_no_ring;
@@ -2387,7 +2385,7 @@ static void srp_cm_rep_handler(struct ib_cm_id *cm_id,
if (!target->using_rdma_cm) {
ret = -ENOMEM;
- qp_attr = kmalloc(sizeof(*qp_attr), GFP_KERNEL);
+ qp_attr = kmalloc_obj(*qp_attr, GFP_KERNEL);
if (!qp_attr)
goto error;
@@ -3824,8 +3822,7 @@ static ssize_t add_target_store(struct device *dev,
num_online_cpus());
}
- target->ch = kcalloc(target->ch_count, sizeof(*target->ch),
- GFP_KERNEL);
+ target->ch = kzalloc_objs(*target->ch, target->ch_count, GFP_KERNEL);
if (!target->ch)
goto out;
@@ -3960,7 +3957,7 @@ static struct srp_host *srp_add_port(struct srp_device *device, u32 port)
{
struct srp_host *host;
- host = kzalloc(sizeof *host, GFP_KERNEL);
+ host = kzalloc_obj(*host, GFP_KERNEL);
if (!host)
return NULL;
@@ -4010,7 +4007,7 @@ static int srp_add_one(struct ib_device *device)
u64 max_pages_per_mr;
unsigned int flags = 0;
- srp_dev = kzalloc(sizeof(*srp_dev), GFP_KERNEL);
+ srp_dev = kzalloc_obj(*srp_dev, GFP_KERNEL);
if (!srp_dev)
return -ENOMEM;
diff --git a/drivers/infiniband/ulp/srpt/ib_srpt.c b/drivers/infiniband/ulp/srpt/ib_srpt.c
index e314e6a84d96..6e371b264054 100644
--- a/drivers/infiniband/ulp/srpt/ib_srpt.c
+++ b/drivers/infiniband/ulp/srpt/ib_srpt.c
@@ -127,7 +127,7 @@ static struct kmem_cache *srpt_cache_get(unsigned int object_size)
return e->c;
}
snprintf(name, sizeof(name), "srpt-%u", object_size);
- e = kmalloc(sizeof(*e), GFP_KERNEL);
+ e = kmalloc_obj(*e, GFP_KERNEL);
if (!e)
return NULL;
refcount_set(&e->ref, 1);
@@ -790,7 +790,7 @@ static struct srpt_ioctx **srpt_alloc_ioctx_ring(struct srpt_device *sdev,
WARN_ON(ioctx_size != sizeof(struct srpt_recv_ioctx) &&
ioctx_size != sizeof(struct srpt_send_ioctx));
- ring = kvmalloc_array(ring_size, sizeof(ring[0]), GFP_KERNEL);
+ ring = kvmalloc_objs(ring[0], ring_size, GFP_KERNEL);
if (!ring)
goto out;
for (i = 0; i < ring_size; ++i) {
@@ -965,8 +965,8 @@ static int srpt_alloc_rw_ctxs(struct srpt_send_ioctx *ioctx,
if (nbufs == 1) {
ioctx->rw_ctxs = &ioctx->s_rw_ctx;
} else {
- ioctx->rw_ctxs = kmalloc_array(nbufs, sizeof(*ioctx->rw_ctxs),
- GFP_KERNEL);
+ ioctx->rw_ctxs = kmalloc_objs(*ioctx->rw_ctxs, nbufs,
+ GFP_KERNEL);
if (!ioctx->rw_ctxs)
return -ENOMEM;
}
@@ -1181,7 +1181,7 @@ static int srpt_init_ch_qp(struct srpt_rdma_ch *ch, struct ib_qp *qp)
WARN_ON_ONCE(ch->using_rdma_cm);
- attr = kzalloc(sizeof(*attr), GFP_KERNEL);
+ attr = kzalloc_obj(*attr, GFP_KERNEL);
if (!attr)
return -ENOMEM;
@@ -1857,7 +1857,7 @@ static int srpt_create_ch_ib(struct srpt_rdma_ch *ch)
WARN_ON(ch->rq_size < 1);
ret = -ENOMEM;
- qp_init = kzalloc(sizeof(*qp_init), GFP_KERNEL);
+ qp_init = kzalloc_obj(*qp_init, GFP_KERNEL);
if (!qp_init)
goto out;
@@ -2089,7 +2089,7 @@ static struct srpt_nexus *srpt_get_nexus(struct srpt_port *sport,
if (nexus)
break;
- tmp_nexus = kzalloc(sizeof(*nexus), GFP_KERNEL);
+ tmp_nexus = kzalloc_obj(*nexus, GFP_KERNEL);
if (!tmp_nexus) {
nexus = ERR_PTR(-ENOMEM);
break;
@@ -2241,9 +2241,9 @@ static int srpt_cm_req_recv(struct srpt_device *const sdev,
}
ret = -ENOMEM;
- rsp = kzalloc(sizeof(*rsp), GFP_KERNEL);
- rej = kzalloc(sizeof(*rej), GFP_KERNEL);
- rep_param = kzalloc(sizeof(*rep_param), GFP_KERNEL);
+ rsp = kzalloc_obj(*rsp, GFP_KERNEL);
+ rej = kzalloc_obj(*rej, GFP_KERNEL);
+ rep_param = kzalloc_obj(*rep_param, GFP_KERNEL);
if (!rsp || !rej || !rep_param)
goto out;
@@ -2273,7 +2273,7 @@ static int srpt_cm_req_recv(struct srpt_device *const sdev,
}
ret = -ENOMEM;
- ch = kzalloc(sizeof(*ch), GFP_KERNEL);
+ ch = kzalloc_obj(*ch, GFP_KERNEL);
if (!ch) {
rej->reason = cpu_to_be32(SRP_LOGIN_REJ_INSUFFICIENT_RESOURCES);
pr_err("rejected SRP_LOGIN_REQ because out of memory.\n");
@@ -3210,8 +3210,7 @@ static int srpt_add_one(struct ib_device *device)
pr_debug("device = %p\n", device);
- sdev = kzalloc(struct_size(sdev, port, device->phys_port_cnt),
- GFP_KERNEL);
+ sdev = kzalloc_flex(*sdev, port, device->phys_port_cnt, GFP_KERNEL);
if (!sdev)
return -ENOMEM;
@@ -3790,7 +3789,7 @@ static struct se_portal_group *srpt_make_tpg(struct se_wwn *wwn,
struct srpt_tpg *stpg;
int res = -ENOMEM;
- stpg = kzalloc(sizeof(*stpg), GFP_KERNEL);
+ stpg = kzalloc_obj(*stpg, GFP_KERNEL);
if (!stpg)
return ERR_PTR(res);
stpg->sport_id = sport_id;
@@ -3847,7 +3846,7 @@ static struct se_wwn *srpt_make_tport(struct target_fabric_configfs *tf,
WARN_ON_ONCE(true);
return &(*papi.port_id)->wwn;
}
- port_id = kzalloc(sizeof(*port_id), GFP_KERNEL);
+ port_id = kzalloc_obj(*port_id, GFP_KERNEL);
if (!port_id) {
srpt_sdev_put(sport->sdev);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/input/apm-power.c b/drivers/input/apm-power.c
index 70a9e1dfba33..211ab2c0793a 100644
--- a/drivers/input/apm-power.c
+++ b/drivers/input/apm-power.c
@@ -52,7 +52,7 @@ static int apmpower_connect(struct input_handler *handler,
struct input_handle *handle;
int error;
- handle = kzalloc(sizeof(struct input_handle), GFP_KERNEL);
+ handle = kzalloc_obj(struct input_handle, GFP_KERNEL);
if (!handle)
return -ENOMEM;
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
index 90ff6be85cf4..884b525e799c 100644
--- a/drivers/input/evdev.c
+++ b/drivers/input/evdev.c
@@ -465,7 +465,7 @@ static int evdev_open(struct inode *inode, struct file *file)
struct evdev_client *client;
int error;
- client = kvzalloc(struct_size(client, buffer, bufsize), GFP_KERNEL);
+ client = kvzalloc_flex(*client, buffer, bufsize, GFP_KERNEL);
if (!client)
return -ENOMEM;
@@ -1346,7 +1346,7 @@ static int evdev_connect(struct input_handler *handler, struct input_dev *dev,
return error;
}
- evdev = kzalloc(sizeof(struct evdev), GFP_KERNEL);
+ evdev = kzalloc_obj(struct evdev, GFP_KERNEL);
if (!evdev) {
error = -ENOMEM;
goto err_free_minor;
diff --git a/drivers/input/ff-core.c b/drivers/input/ff-core.c
index 66f7ffe8c7e0..d6e2c3017435 100644
--- a/drivers/input/ff-core.c
+++ b/drivers/input/ff-core.c
@@ -303,12 +303,11 @@ int input_ff_create(struct input_dev *dev, unsigned int max_effects)
}
struct ff_device *ff __free(kfree) =
- kzalloc(struct_size(ff, effect_owners, max_effects),
- GFP_KERNEL);
+ kzalloc_flex(*ff, effect_owners, max_effects, GFP_KERNEL);
if (!ff)
return -ENOMEM;
- ff->effects = kcalloc(max_effects, sizeof(*ff->effects), GFP_KERNEL);
+ ff->effects = kzalloc_objs(*ff->effects, max_effects, GFP_KERNEL);
if (!ff->effects)
return -ENOMEM;
diff --git a/drivers/input/ff-memless.c b/drivers/input/ff-memless.c
index e0c1c61aae71..e018ea328dda 100644
--- a/drivers/input/ff-memless.c
+++ b/drivers/input/ff-memless.c
@@ -508,7 +508,7 @@ int input_ff_create_memless(struct input_dev *dev, void *data,
int error;
int i;
- struct ml_device *ml __free(kfree) = kzalloc(sizeof(*ml), GFP_KERNEL);
+ struct ml_device *ml __free(kfree) = kzalloc_obj(*ml, GFP_KERNEL);
if (!ml)
return -ENOMEM;
diff --git a/drivers/input/gameport/emu10k1-gp.c b/drivers/input/gameport/emu10k1-gp.c
index 4f4583048f24..cbb67f97d0ca 100644
--- a/drivers/input/gameport/emu10k1-gp.c
+++ b/drivers/input/gameport/emu10k1-gp.c
@@ -43,7 +43,7 @@ static int emu_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
struct gameport *port;
int error;
- emu = kzalloc(sizeof(*emu), GFP_KERNEL);
+ emu = kzalloc_obj(*emu, GFP_KERNEL);
port = gameport_allocate_port();
if (!emu || !port) {
printk(KERN_ERR "emu10k1-gp: Memory allocation failed\n");
diff --git a/drivers/input/gameport/fm801-gp.c b/drivers/input/gameport/fm801-gp.c
index 7ae5009385cc..f5b1a683d1b4 100644
--- a/drivers/input/gameport/fm801-gp.c
+++ b/drivers/input/gameport/fm801-gp.c
@@ -68,7 +68,7 @@ static int fm801_gp_probe(struct pci_dev *pci, const struct pci_device_id *id)
struct gameport *port;
int error;
- gp = kzalloc(sizeof(*gp), GFP_KERNEL);
+ gp = kzalloc_obj(*gp, GFP_KERNEL);
port = gameport_allocate_port();
if (!gp || !port) {
printk(KERN_ERR "fm801-gp: Memory allocation failed\n");
diff --git a/drivers/input/gameport/gameport.c b/drivers/input/gameport/gameport.c
index f4f12dd00fff..9707b155bc94 100644
--- a/drivers/input/gameport/gameport.c
+++ b/drivers/input/gameport/gameport.c
@@ -374,7 +374,7 @@ static int gameport_queue_event(void *object, struct module *owner,
}
}
- event = kmalloc(sizeof(*event), GFP_ATOMIC);
+ event = kmalloc_obj(*event, GFP_ATOMIC);
if (!event) {
pr_err("Not enough memory to queue event %d\n", event_type);
retval = -ENOMEM;
diff --git a/drivers/input/gameport/ns558.c b/drivers/input/gameport/ns558.c
index 880e714b49bc..cb04b49a82be 100644
--- a/drivers/input/gameport/ns558.c
+++ b/drivers/input/gameport/ns558.c
@@ -120,7 +120,7 @@ static int ns558_isa_probe(int io)
return -EBUSY;
}
- ns558 = kzalloc(sizeof(*ns558), GFP_KERNEL);
+ ns558 = kzalloc_obj(*ns558, GFP_KERNEL);
port = gameport_allocate_port();
if (!ns558 || !port) {
printk(KERN_ERR "ns558: Memory allocation failed.\n");
@@ -192,7 +192,7 @@ static int ns558_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *did)
if (!request_region(ioport, iolen, "ns558-pnp"))
return -EBUSY;
- ns558 = kzalloc(sizeof(*ns558), GFP_KERNEL);
+ ns558 = kzalloc_obj(*ns558, GFP_KERNEL);
port = gameport_allocate_port();
if (!ns558 || !port) {
printk(KERN_ERR "ns558: Memory allocation failed\n");
diff --git a/drivers/input/input-leds.c b/drivers/input/input-leds.c
index 6bbf3806ea37..f0fa83ab9339 100644
--- a/drivers/input/input-leds.c
+++ b/drivers/input/input-leds.c
@@ -101,7 +101,7 @@ static int input_leds_connect(struct input_handler *handler,
if (!num_leds)
return -ENXIO;
- leds = kzalloc(struct_size(leds, leds, num_leds), GFP_KERNEL);
+ leds = kzalloc_flex(*leds, leds, num_leds, GFP_KERNEL);
if (!leds)
return -ENOMEM;
diff --git a/drivers/input/input-mt.c b/drivers/input/input-mt.c
index 09f518897d4a..0d4043797e4c 100644
--- a/drivers/input/input-mt.c
+++ b/drivers/input/input-mt.c
@@ -50,7 +50,7 @@ int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots,
return -EINVAL;
struct input_mt *mt __free(kfree) =
- kzalloc(struct_size(mt, slots, num_slots), GFP_KERNEL);
+ kzalloc_flex(*mt, slots, num_slots, GFP_KERNEL);
if (!mt)
return -ENOMEM;
@@ -84,7 +84,7 @@ int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots,
__set_bit(INPUT_PROP_SEMI_MT, dev->propbit);
if (flags & INPUT_MT_TRACK) {
unsigned int n2 = num_slots * num_slots;
- mt->red = kcalloc(n2, sizeof(*mt->red), GFP_KERNEL);
+ mt->red = kzalloc_objs(*mt->red, n2, GFP_KERNEL);
if (!mt->red)
return -ENOMEM;
}
diff --git a/drivers/input/input-poller.c b/drivers/input/input-poller.c
index 1ce83d6521bb..fa0c7089f3bb 100644
--- a/drivers/input/input-poller.c
+++ b/drivers/input/input-poller.c
@@ -71,7 +71,7 @@ int input_setup_polling(struct input_dev *dev,
{
struct input_dev_poller *poller;
- poller = kzalloc(sizeof(*poller), GFP_KERNEL);
+ poller = kzalloc_obj(*poller, GFP_KERNEL);
if (!poller) {
/*
* We want to show message even though kzalloc() may have
diff --git a/drivers/input/input.c b/drivers/input/input.c
index a500e1e276c2..9486a9ea1541 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -439,7 +439,7 @@ void input_alloc_absinfo(struct input_dev *dev)
if (dev->absinfo)
return;
- dev->absinfo = kcalloc(ABS_CNT, sizeof(*dev->absinfo), GFP_KERNEL);
+ dev->absinfo = kzalloc_objs(*dev->absinfo, ABS_CNT, GFP_KERNEL);
if (!dev->absinfo) {
dev_err(dev->dev.parent ?: &dev->dev,
"%s: unable to allocate memory\n", __func__);
@@ -1887,7 +1887,7 @@ struct input_dev *input_allocate_device(void)
static atomic_t input_no = ATOMIC_INIT(-1);
struct input_dev *dev;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return NULL;
@@ -1897,7 +1897,7 @@ struct input_dev *input_allocate_device(void)
* when we register the device.
*/
dev->max_vals = 10;
- dev->vals = kcalloc(dev->max_vals, sizeof(*dev->vals), GFP_KERNEL);
+ dev->vals = kzalloc_objs(*dev->vals, dev->max_vals, GFP_KERNEL);
if (!dev->vals) {
kfree(dev);
return NULL;
diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c
index ba2b17288bcd..5c773f94646f 100644
--- a/drivers/input/joydev.c
+++ b/drivers/input/joydev.c
@@ -261,7 +261,7 @@ static int joydev_open(struct inode *inode, struct file *file)
struct joydev_client *client;
int error;
- client = kzalloc(sizeof(struct joydev_client), GFP_KERNEL);
+ client = kzalloc_obj(struct joydev_client, GFP_KERNEL);
if (!client)
return -ENOMEM;
@@ -921,7 +921,7 @@ static int joydev_connect(struct input_handler *handler, struct input_dev *dev,
return error;
}
- joydev = kzalloc(sizeof(struct joydev), GFP_KERNEL);
+ joydev = kzalloc_obj(struct joydev, GFP_KERNEL);
if (!joydev) {
error = -ENOMEM;
goto err_free_minor;
diff --git a/drivers/input/joystick/a3d.c b/drivers/input/joystick/a3d.c
index 15182f16ed19..07bd0083d654 100644
--- a/drivers/input/joystick/a3d.c
+++ b/drivers/input/joystick/a3d.c
@@ -249,7 +249,7 @@ static int a3d_connect(struct gameport *gameport, struct gameport_driver *drv)
int i;
int err;
- a3d = kzalloc(sizeof(*a3d), GFP_KERNEL);
+ a3d = kzalloc_obj(*a3d, GFP_KERNEL);
input_dev = input_allocate_device();
if (!a3d || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/joystick/adi.c b/drivers/input/joystick/adi.c
index 963250de24b7..fa7d0b80e7b7 100644
--- a/drivers/input/joystick/adi.c
+++ b/drivers/input/joystick/adi.c
@@ -456,7 +456,7 @@ static int adi_connect(struct gameport *gameport, struct gameport_driver *drv)
int i;
int err;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return -ENOMEM;
diff --git a/drivers/input/joystick/analog.c b/drivers/input/joystick/analog.c
index c709b58d770a..79ed2363b8e5 100644
--- a/drivers/input/joystick/analog.c
+++ b/drivers/input/joystick/analog.c
@@ -582,7 +582,7 @@ static int analog_connect(struct gameport *gameport, struct gameport_driver *drv
int i;
int err;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return -ENOMEM;
diff --git a/drivers/input/joystick/as5011.c b/drivers/input/joystick/as5011.c
index 49a0dfbbeb49..2d1a23866e64 100644
--- a/drivers/input/joystick/as5011.c
+++ b/drivers/input/joystick/as5011.c
@@ -237,7 +237,7 @@ static int as5011_probe(struct i2c_client *client)
return -ENODEV;
}
- as5011 = kmalloc(sizeof(*as5011), GFP_KERNEL);
+ as5011 = kmalloc_obj(*as5011, GFP_KERNEL);
input_dev = input_allocate_device();
if (!as5011 || !input_dev) {
dev_err(&client->dev,
diff --git a/drivers/input/joystick/cobra.c b/drivers/input/joystick/cobra.c
index 5a0ea3ad5efa..781cec6b2b24 100644
--- a/drivers/input/joystick/cobra.c
+++ b/drivers/input/joystick/cobra.c
@@ -141,7 +141,7 @@ static int cobra_connect(struct gameport *gameport, struct gameport_driver *drv)
int i, j;
int err;
- cobra = kzalloc(sizeof(*cobra), GFP_KERNEL);
+ cobra = kzalloc_obj(*cobra, GFP_KERNEL);
if (!cobra)
return -ENOMEM;
diff --git a/drivers/input/joystick/db9.c b/drivers/input/joystick/db9.c
index d5c67a927404..165096fc0a55 100644
--- a/drivers/input/joystick/db9.c
+++ b/drivers/input/joystick/db9.c
@@ -585,7 +585,7 @@ static void db9_attach(struct parport *pp)
return;
}
- db9 = kzalloc(sizeof(*db9), GFP_KERNEL);
+ db9 = kzalloc_obj(*db9, GFP_KERNEL);
if (!db9)
goto err_unreg_pardev;
diff --git a/drivers/input/joystick/fsia6b.c b/drivers/input/joystick/fsia6b.c
index 7e3bc99d766f..0bd7d4bd562a 100644
--- a/drivers/input/joystick/fsia6b.c
+++ b/drivers/input/joystick/fsia6b.c
@@ -132,7 +132,7 @@ static int fsia6b_serio_connect(struct serio *serio, struct serio_driver *drv)
int i, j;
int sw_id = 0;
- fsia6b = kzalloc(sizeof(*fsia6b), GFP_KERNEL);
+ fsia6b = kzalloc_obj(*fsia6b, GFP_KERNEL);
if (!fsia6b)
return -ENOMEM;
diff --git a/drivers/input/joystick/gamecon.c b/drivers/input/joystick/gamecon.c
index ae95cb3d0ae9..03d0e491b688 100644
--- a/drivers/input/joystick/gamecon.c
+++ b/drivers/input/joystick/gamecon.c
@@ -291,7 +291,7 @@ static int gc_n64_init_ff(struct input_dev *dev, int i)
struct gc_subdev *sdev;
int err;
- sdev = kmalloc(sizeof(*sdev), GFP_KERNEL);
+ sdev = kmalloc_obj(*sdev, GFP_KERNEL);
if (!sdev)
return -ENOMEM;
@@ -948,7 +948,7 @@ static void gc_attach(struct parport *pp)
return;
}
- gc = kzalloc(sizeof(*gc), GFP_KERNEL);
+ gc = kzalloc_obj(*gc, GFP_KERNEL);
if (!gc) {
pr_err("Not enough memory\n");
goto err_unreg_pardev;
diff --git a/drivers/input/joystick/gf2k.c b/drivers/input/joystick/gf2k.c
index e7ff7bdb1a3a..23dc98146ccd 100644
--- a/drivers/input/joystick/gf2k.c
+++ b/drivers/input/joystick/gf2k.c
@@ -222,7 +222,7 @@ static int gf2k_connect(struct gameport *gameport, struct gameport_driver *drv)
unsigned char data[GF2K_LENGTH];
int i, err;
- gf2k = kzalloc(sizeof(*gf2k), GFP_KERNEL);
+ gf2k = kzalloc_obj(*gf2k, GFP_KERNEL);
input_dev = input_allocate_device();
if (!gf2k || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/joystick/grip.c b/drivers/input/joystick/grip.c
index f339ce2b7a33..f500a32d1ea7 100644
--- a/drivers/input/joystick/grip.c
+++ b/drivers/input/joystick/grip.c
@@ -284,7 +284,7 @@ static int grip_connect(struct gameport *gameport, struct gameport_driver *drv)
int i, j, t;
int err;
- grip = kzalloc(sizeof(*grip), GFP_KERNEL);
+ grip = kzalloc_obj(*grip, GFP_KERNEL);
if (!grip)
return -ENOMEM;
diff --git a/drivers/input/joystick/grip_mp.c b/drivers/input/joystick/grip_mp.c
index 5eadb5a3ca37..7d90d8e5485b 100644
--- a/drivers/input/joystick/grip_mp.c
+++ b/drivers/input/joystick/grip_mp.c
@@ -632,7 +632,7 @@ static int grip_connect(struct gameport *gameport, struct gameport_driver *drv)
struct grip_mp *grip;
int err;
- grip = kzalloc(sizeof(*grip), GFP_KERNEL);
+ grip = kzalloc_obj(*grip, GFP_KERNEL);
if (!grip)
return -ENOMEM;
diff --git a/drivers/input/joystick/guillemot.c b/drivers/input/joystick/guillemot.c
index 1c5a76f72239..eb7faaf3f020 100644
--- a/drivers/input/joystick/guillemot.c
+++ b/drivers/input/joystick/guillemot.c
@@ -163,7 +163,7 @@ static int guillemot_connect(struct gameport *gameport, struct gameport_driver *
int i, t;
int err;
- guillemot = kzalloc(sizeof(*guillemot), GFP_KERNEL);
+ guillemot = kzalloc_obj(*guillemot, GFP_KERNEL);
input_dev = input_allocate_device();
if (!guillemot || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/joystick/iforce/iforce-serio.c b/drivers/input/joystick/iforce/iforce-serio.c
index 75b85c46dfa4..0ca2f9bfb17b 100644
--- a/drivers/input/joystick/iforce/iforce-serio.c
+++ b/drivers/input/joystick/iforce/iforce-serio.c
@@ -185,7 +185,7 @@ static int iforce_serio_connect(struct serio *serio, struct serio_driver *drv)
struct iforce_serio *iforce_serio;
int err;
- iforce_serio = kzalloc(sizeof(*iforce_serio), GFP_KERNEL);
+ iforce_serio = kzalloc_obj(*iforce_serio, GFP_KERNEL);
if (!iforce_serio)
return -ENOMEM;
diff --git a/drivers/input/joystick/iforce/iforce-usb.c b/drivers/input/joystick/iforce/iforce-usb.c
index 1f00f76b0174..b41d0b962e3d 100644
--- a/drivers/input/joystick/iforce/iforce-usb.c
+++ b/drivers/input/joystick/iforce/iforce-usb.c
@@ -207,7 +207,7 @@ static int iforce_usb_probe(struct usb_interface *intf,
if (!usb_endpoint_is_int_out(epout))
return -ENODEV;
- iforce_usb = kzalloc(sizeof(*iforce_usb), GFP_KERNEL);
+ iforce_usb = kzalloc_obj(*iforce_usb, GFP_KERNEL);
if (!iforce_usb)
goto fail;
diff --git a/drivers/input/joystick/interact.c b/drivers/input/joystick/interact.c
index 262f022e5695..88aa77d1fc36 100644
--- a/drivers/input/joystick/interact.c
+++ b/drivers/input/joystick/interact.c
@@ -192,7 +192,7 @@ static int interact_connect(struct gameport *gameport, struct gameport_driver *d
int i, t;
int err;
- interact = kzalloc(sizeof(*interact), GFP_KERNEL);
+ interact = kzalloc_obj(*interact, GFP_KERNEL);
input_dev = input_allocate_device();
if (!interact || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/joystick/joydump.c b/drivers/input/joystick/joydump.c
index 865652a7821d..9feda59dccde 100644
--- a/drivers/input/joystick/joydump.c
+++ b/drivers/input/joystick/joydump.c
@@ -61,7 +61,7 @@ static int joydump_connect(struct gameport *gameport, struct gameport_driver *dr
timeout = gameport_time(gameport, 10000); /* 10 ms */
- buf = kmalloc_array(BUF_SIZE, sizeof(struct joydump), GFP_KERNEL);
+ buf = kmalloc_objs(struct joydump, BUF_SIZE, GFP_KERNEL);
if (!buf) {
printk(KERN_INFO "joydump: no memory for testing\n");
goto jd_end;
diff --git a/drivers/input/joystick/magellan.c b/drivers/input/joystick/magellan.c
index 7622638e5bb8..3b7f5840caeb 100644
--- a/drivers/input/joystick/magellan.c
+++ b/drivers/input/joystick/magellan.c
@@ -132,7 +132,7 @@ static int magellan_connect(struct serio *serio, struct serio_driver *drv)
int err = -ENOMEM;
int i;
- magellan = kzalloc(sizeof(*magellan), GFP_KERNEL);
+ magellan = kzalloc_obj(*magellan, GFP_KERNEL);
input_dev = input_allocate_device();
if (!magellan || !input_dev)
goto fail1;
diff --git a/drivers/input/joystick/maplecontrol.c b/drivers/input/joystick/maplecontrol.c
index 8b54f9b18e7c..2a811f302173 100644
--- a/drivers/input/joystick/maplecontrol.c
+++ b/drivers/input/joystick/maplecontrol.c
@@ -102,7 +102,7 @@ static int probe_maple_controller(struct device *dev)
struct input_dev *idev;
unsigned long data = be32_to_cpu(mdev->devinfo.function_data[0]);
- pad = kzalloc(sizeof(*pad), GFP_KERNEL);
+ pad = kzalloc_obj(*pad, GFP_KERNEL);
idev = input_allocate_device();
if (!pad || !idev) {
error = -ENOMEM;
diff --git a/drivers/input/joystick/n64joy.c b/drivers/input/joystick/n64joy.c
index 94d2f4e96fe6..b4203825e9e6 100644
--- a/drivers/input/joystick/n64joy.c
+++ b/drivers/input/joystick/n64joy.c
@@ -243,7 +243,7 @@ static int __init n64joy_probe(struct platform_device *pdev)
int err = 0;
u32 i, j, found = 0;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
mutex_init(&priv->n64joy_mutex);
diff --git a/drivers/input/joystick/sidewinder.c b/drivers/input/joystick/sidewinder.c
index 3a5873e5fcb3..645c822638ad 100644
--- a/drivers/input/joystick/sidewinder.c
+++ b/drivers/input/joystick/sidewinder.c
@@ -578,7 +578,7 @@ static int sw_connect(struct gameport *gameport, struct gameport_driver *drv)
comment[0] = 0;
- sw = kzalloc(sizeof(*sw), GFP_KERNEL);
+ sw = kzalloc_obj(*sw, GFP_KERNEL);
buf = kmalloc(SW_LENGTH, GFP_KERNEL);
idbuf = kmalloc(SW_LENGTH, GFP_KERNEL);
if (!sw || !buf || !idbuf) {
diff --git a/drivers/input/joystick/spaceball.c b/drivers/input/joystick/spaceball.c
index 4f2221001a95..d562275aa4bc 100644
--- a/drivers/input/joystick/spaceball.c
+++ b/drivers/input/joystick/spaceball.c
@@ -199,7 +199,7 @@ static int spaceball_connect(struct serio *serio, struct serio_driver *drv)
if ((id = serio->id.id) > SPACEBALL_MAX_ID)
return -ENODEV;
- spaceball = kmalloc(sizeof(*spaceball), GFP_KERNEL);
+ spaceball = kmalloc_obj(*spaceball, GFP_KERNEL);
input_dev = input_allocate_device();
if (!spaceball || !input_dev)
goto fail1;
diff --git a/drivers/input/joystick/spaceorb.c b/drivers/input/joystick/spaceorb.c
index 7250d74d62a1..3aee84c19a25 100644
--- a/drivers/input/joystick/spaceorb.c
+++ b/drivers/input/joystick/spaceorb.c
@@ -147,7 +147,7 @@ static int spaceorb_connect(struct serio *serio, struct serio_driver *drv)
int err = -ENOMEM;
int i;
- spaceorb = kzalloc(sizeof(*spaceorb), GFP_KERNEL);
+ spaceorb = kzalloc_obj(*spaceorb, GFP_KERNEL);
input_dev = input_allocate_device();
if (!spaceorb || !input_dev)
goto fail1;
diff --git a/drivers/input/joystick/stinger.c b/drivers/input/joystick/stinger.c
index 1b24ea21aa30..81d4d1aa1752 100644
--- a/drivers/input/joystick/stinger.c
+++ b/drivers/input/joystick/stinger.c
@@ -118,7 +118,7 @@ static int stinger_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *input_dev;
int err = -ENOMEM;
- stinger = kmalloc(sizeof(*stinger), GFP_KERNEL);
+ stinger = kmalloc_obj(*stinger, GFP_KERNEL);
input_dev = input_allocate_device();
if (!stinger || !input_dev)
goto fail1;
diff --git a/drivers/input/joystick/tmdc.c b/drivers/input/joystick/tmdc.c
index 514b1026e379..8d1367fdc400 100644
--- a/drivers/input/joystick/tmdc.c
+++ b/drivers/input/joystick/tmdc.c
@@ -264,7 +264,7 @@ static int tmdc_setup_port(struct tmdc *tmdc, int idx, unsigned char *data)
int i, j, b = 0;
int err;
- tmdc->port[idx] = port = kzalloc(sizeof (struct tmdc_port), GFP_KERNEL);
+ tmdc->port[idx] = port = kzalloc_obj(struct tmdc_port, GFP_KERNEL);
input_dev = input_allocate_device();
if (!port || !input_dev) {
err = -ENOMEM;
@@ -348,7 +348,7 @@ static int tmdc_connect(struct gameport *gameport, struct gameport_driver *drv)
int i;
int err;
- tmdc = kzalloc(sizeof(*tmdc), GFP_KERNEL);
+ tmdc = kzalloc_obj(*tmdc, GFP_KERNEL);
if (!tmdc)
return -ENOMEM;
diff --git a/drivers/input/joystick/turbografx.c b/drivers/input/joystick/turbografx.c
index 5f69aef01791..90cddb12efbb 100644
--- a/drivers/input/joystick/turbografx.c
+++ b/drivers/input/joystick/turbografx.c
@@ -170,7 +170,7 @@ static void tgfx_attach(struct parport *pp)
return;
}
- tgfx = kzalloc(sizeof(*tgfx), GFP_KERNEL);
+ tgfx = kzalloc_obj(*tgfx, GFP_KERNEL);
if (!tgfx) {
printk(KERN_ERR "turbografx.c: Not enough memory\n");
goto err_unreg_pardev;
diff --git a/drivers/input/joystick/twidjoy.c b/drivers/input/joystick/twidjoy.c
index ab99d76e5d8d..e8f81d3a4d99 100644
--- a/drivers/input/joystick/twidjoy.c
+++ b/drivers/input/joystick/twidjoy.c
@@ -171,7 +171,7 @@ static int twidjoy_connect(struct serio *serio, struct serio_driver *drv)
int err = -ENOMEM;
int i;
- twidjoy = kzalloc(sizeof(*twidjoy), GFP_KERNEL);
+ twidjoy = kzalloc_obj(*twidjoy, GFP_KERNEL);
input_dev = input_allocate_device();
if (!twidjoy || !input_dev)
goto fail1;
diff --git a/drivers/input/joystick/warrior.c b/drivers/input/joystick/warrior.c
index ebeab441e9ec..45027058a777 100644
--- a/drivers/input/joystick/warrior.c
+++ b/drivers/input/joystick/warrior.c
@@ -124,7 +124,7 @@ static int warrior_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *input_dev;
int err = -ENOMEM;
- warrior = kzalloc(sizeof(*warrior), GFP_KERNEL);
+ warrior = kzalloc_obj(*warrior, GFP_KERNEL);
input_dev = input_allocate_device();
if (!warrior || !input_dev)
goto fail1;
diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
index 363d50949386..58ff39dee70c 100644
--- a/drivers/input/joystick/xpad.c
+++ b/drivers/input/joystick/xpad.c
@@ -1744,7 +1744,7 @@ static int xpad_led_probe(struct usb_xpad *xpad)
if (xpad->xtype != XTYPE_XBOX360 && xpad->xtype != XTYPE_XBOX360W)
return 0;
- xpad->led = led = kzalloc(sizeof(*led), GFP_KERNEL);
+ xpad->led = led = kzalloc_obj(*led, GFP_KERNEL);
if (!led)
return -ENOMEM;
@@ -2077,7 +2077,7 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
break;
}
- xpad = kzalloc(sizeof(*xpad), GFP_KERNEL);
+ xpad = kzalloc_obj(*xpad, GFP_KERNEL);
if (!xpad)
return -ENOMEM;
diff --git a/drivers/input/joystick/zhenhua.c b/drivers/input/joystick/zhenhua.c
index cc0e2a77ac5e..873e71fe6580 100644
--- a/drivers/input/joystick/zhenhua.c
+++ b/drivers/input/joystick/zhenhua.c
@@ -131,7 +131,7 @@ static int zhenhua_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *input_dev;
int err = -ENOMEM;
- zhenhua = kzalloc(sizeof(*zhenhua), GFP_KERNEL);
+ zhenhua = kzalloc_obj(*zhenhua, GFP_KERNEL);
input_dev = input_allocate_device();
if (!zhenhua || !input_dev)
goto fail1;
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index 422e28ad1e8e..f149ed800a45 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -1277,7 +1277,7 @@ static int atkbd_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *dev;
int err = -ENOMEM;
- atkbd = kzalloc(sizeof(*atkbd), GFP_KERNEL);
+ atkbd = kzalloc_obj(*atkbd, GFP_KERNEL);
dev = input_allocate_device();
if (!atkbd || !dev)
goto fail1;
diff --git a/drivers/input/keyboard/hil_kbd.c b/drivers/input/keyboard/hil_kbd.c
index 54afb38601b9..8f246865a5ee 100644
--- a/drivers/input/keyboard/hil_kbd.c
+++ b/drivers/input/keyboard/hil_kbd.c
@@ -447,7 +447,7 @@ static int hil_dev_connect(struct serio *serio, struct serio_driver *drv)
uint8_t did, *idd;
int error;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
input_dev = input_allocate_device();
if (!dev || !input_dev) {
error = -ENOMEM;
diff --git a/drivers/input/keyboard/lkkbd.c b/drivers/input/keyboard/lkkbd.c
index 2f130f819363..f0daee8887cb 100644
--- a/drivers/input/keyboard/lkkbd.c
+++ b/drivers/input/keyboard/lkkbd.c
@@ -608,7 +608,7 @@ static int lkkbd_connect(struct serio *serio, struct serio_driver *drv)
int i;
int err;
- lk = kzalloc(sizeof(*lk), GFP_KERNEL);
+ lk = kzalloc_obj(*lk, GFP_KERNEL);
input_dev = input_allocate_device();
if (!lk || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/keyboard/locomokbd.c b/drivers/input/keyboard/locomokbd.c
index 58d4f2096cf9..b6b9354b3354 100644
--- a/drivers/input/keyboard/locomokbd.c
+++ b/drivers/input/keyboard/locomokbd.c
@@ -224,7 +224,7 @@ static int locomokbd_probe(struct locomo_dev *dev)
struct input_dev *input_dev;
int i, err;
- locomokbd = kzalloc(sizeof(*locomokbd), GFP_KERNEL);
+ locomokbd = kzalloc_obj(*locomokbd, GFP_KERNEL);
input_dev = input_allocate_device();
if (!locomokbd || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/keyboard/maple_keyb.c b/drivers/input/keyboard/maple_keyb.c
index 1a8f1fa53fbb..52dfdcab55f2 100644
--- a/drivers/input/keyboard/maple_keyb.c
+++ b/drivers/input/keyboard/maple_keyb.c
@@ -151,7 +151,7 @@ static int probe_maple_kbd(struct device *dev)
mdev = to_maple_dev(dev);
mdrv = to_maple_driver(dev->driver);
- kbd = kzalloc(sizeof(*kbd), GFP_KERNEL);
+ kbd = kzalloc_obj(*kbd, GFP_KERNEL);
if (!kbd) {
error = -ENOMEM;
goto fail;
diff --git a/drivers/input/keyboard/newtonkbd.c b/drivers/input/keyboard/newtonkbd.c
index 71e0a3f830dd..ee142a2d7c84 100644
--- a/drivers/input/keyboard/newtonkbd.c
+++ b/drivers/input/keyboard/newtonkbd.c
@@ -68,7 +68,7 @@ static int nkbd_connect(struct serio *serio, struct serio_driver *drv)
int err = -ENOMEM;
int i;
- nkbd = kzalloc(sizeof(*nkbd), GFP_KERNEL);
+ nkbd = kzalloc_obj(*nkbd, GFP_KERNEL);
input_dev = input_allocate_device();
if (!nkbd || !input_dev)
goto fail1;
diff --git a/drivers/input/keyboard/omap-keypad.c b/drivers/input/keyboard/omap-keypad.c
index 9e13f3f70a81..8fd909407ec8 100644
--- a/drivers/input/keyboard/omap-keypad.c
+++ b/drivers/input/keyboard/omap-keypad.c
@@ -193,7 +193,7 @@ static int omap_kp_probe(struct platform_device *pdev)
row_shift = get_count_order(pdata->cols);
keycodemax = pdata->rows << row_shift;
- omap_kp = kzalloc(struct_size(omap_kp, keymap, keycodemax), GFP_KERNEL);
+ omap_kp = kzalloc_flex(*omap_kp, keymap, keycodemax, GFP_KERNEL);
input_dev = input_allocate_device();
if (!omap_kp || !input_dev) {
kfree(omap_kp);
diff --git a/drivers/input/keyboard/sh_keysc.c b/drivers/input/keyboard/sh_keysc.c
index 159f41eedd41..7ad799efc539 100644
--- a/drivers/input/keyboard/sh_keysc.c
+++ b/drivers/input/keyboard/sh_keysc.c
@@ -184,7 +184,7 @@ static int sh_keysc_probe(struct platform_device *pdev)
if (irq < 0)
goto err0;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (priv == NULL) {
dev_err(&pdev->dev, "failed to allocate driver data\n");
error = -ENOMEM;
diff --git a/drivers/input/keyboard/stowaway.c b/drivers/input/keyboard/stowaway.c
index 7ef0b3f4f549..592801876291 100644
--- a/drivers/input/keyboard/stowaway.c
+++ b/drivers/input/keyboard/stowaway.c
@@ -72,7 +72,7 @@ static int skbd_connect(struct serio *serio, struct serio_driver *drv)
int err = -ENOMEM;
int i;
- skbd = kzalloc(sizeof(*skbd), GFP_KERNEL);
+ skbd = kzalloc_obj(*skbd, GFP_KERNEL);
input_dev = input_allocate_device();
if (!skbd || !input_dev)
goto fail1;
diff --git a/drivers/input/keyboard/sunkbd.c b/drivers/input/keyboard/sunkbd.c
index 3299e1919b37..d2783e9a5583 100644
--- a/drivers/input/keyboard/sunkbd.c
+++ b/drivers/input/keyboard/sunkbd.c
@@ -262,7 +262,7 @@ static int sunkbd_connect(struct serio *serio, struct serio_driver *drv)
int err = -ENOMEM;
int i;
- sunkbd = kzalloc(sizeof(*sunkbd), GFP_KERNEL);
+ sunkbd = kzalloc_obj(*sunkbd, GFP_KERNEL);
input_dev = input_allocate_device();
if (!sunkbd || !input_dev)
goto fail1;
diff --git a/drivers/input/keyboard/xtkbd.c b/drivers/input/keyboard/xtkbd.c
index befa713268ae..ce061bd76623 100644
--- a/drivers/input/keyboard/xtkbd.c
+++ b/drivers/input/keyboard/xtkbd.c
@@ -70,7 +70,7 @@ static int xtkbd_connect(struct serio *serio, struct serio_driver *drv)
int err = -ENOMEM;
int i;
- xtkbd = kmalloc(sizeof(*xtkbd), GFP_KERNEL);
+ xtkbd = kmalloc_obj(*xtkbd, GFP_KERNEL);
input_dev = input_allocate_device();
if (!xtkbd || !input_dev)
goto fail1;
diff --git a/drivers/input/misc/88pm80x_onkey.c b/drivers/input/misc/88pm80x_onkey.c
index 9159b5fec129..32d2f4450b7c 100644
--- a/drivers/input/misc/88pm80x_onkey.c
+++ b/drivers/input/misc/88pm80x_onkey.c
@@ -57,7 +57,7 @@ static int pm80x_onkey_probe(struct platform_device *pdev)
struct pm80x_onkey_info *info;
int err;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/input/misc/ati_remote2.c b/drivers/input/misc/ati_remote2.c
index e84649af801d..faa03c0b8c92 100644
--- a/drivers/input/misc/ati_remote2.c
+++ b/drivers/input/misc/ati_remote2.c
@@ -772,7 +772,7 @@ static int ati_remote2_probe(struct usb_interface *interface, const struct usb_d
if (alt->desc.bInterfaceNumber)
return -ENODEV;
- ar2 = kzalloc(sizeof (struct ati_remote2), GFP_KERNEL);
+ ar2 = kzalloc_obj(struct ati_remote2, GFP_KERNEL);
if (!ar2)
return -ENOMEM;
diff --git a/drivers/input/misc/cm109.c b/drivers/input/misc/cm109.c
index 0cfe5d4a573c..3fbdd160fb2c 100644
--- a/drivers/input/misc/cm109.c
+++ b/drivers/input/misc/cm109.c
@@ -696,7 +696,7 @@ static int cm109_usb_probe(struct usb_interface *intf,
if (!usb_endpoint_is_int_in(endpoint))
return -ENODEV;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
@@ -721,7 +721,7 @@ static int cm109_usb_probe(struct usb_interface *intf,
if (!dev->ctl_data)
goto err_out;
- dev->ctl_req = kmalloc(sizeof(*(dev->ctl_req)), GFP_KERNEL);
+ dev->ctl_req = kmalloc_obj(*(dev->ctl_req), GFP_KERNEL);
if (!dev->ctl_req)
goto err_out;
diff --git a/drivers/input/misc/cma3000_d0x.c b/drivers/input/misc/cma3000_d0x.c
index b4232b0a3957..b5047f74f632 100644
--- a/drivers/input/misc/cma3000_d0x.c
+++ b/drivers/input/misc/cma3000_d0x.c
@@ -285,7 +285,7 @@ struct cma3000_accl_data *cma3000_init(struct device *dev, int irq,
goto err_out;
}
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
input_dev = input_allocate_device();
if (!data || !input_dev) {
error = -ENOMEM;
diff --git a/drivers/input/misc/cs40l50-vibra.c b/drivers/input/misc/cs40l50-vibra.c
index 90410025bbae..e6c8c9d165d3 100644
--- a/drivers/input/misc/cs40l50-vibra.c
+++ b/drivers/input/misc/cs40l50-vibra.c
@@ -276,7 +276,7 @@ static void cs40l50_add_worker(struct work_struct *work)
/* Update effect if already uploaded, otherwise create new effect */
effect = cs40l50_find_effect(work_data->effect->id, &vib->effect_head);
if (!effect) {
- effect = kzalloc(sizeof(*effect), GFP_KERNEL);
+ effect = kzalloc_obj(*effect, GFP_KERNEL);
if (!effect) {
error = -ENOMEM;
goto err_pm;
@@ -392,7 +392,7 @@ static int cs40l50_playback(struct input_dev *dev, int effect_id, int val)
struct cs40l50_vibra *vib = input_get_drvdata(dev);
struct cs40l50_work *work_data;
- work_data = kzalloc(sizeof(*work_data), GFP_ATOMIC);
+ work_data = kzalloc_obj(*work_data, GFP_ATOMIC);
if (!work_data)
return -ENOMEM;
diff --git a/drivers/input/misc/da9052_onkey.c b/drivers/input/misc/da9052_onkey.c
index cc23625019e3..49112b3ff445 100644
--- a/drivers/input/misc/da9052_onkey.c
+++ b/drivers/input/misc/da9052_onkey.c
@@ -80,7 +80,7 @@ static int da9052_onkey_probe(struct platform_device *pdev)
return -EINVAL;
}
- onkey = kzalloc(sizeof(*onkey), GFP_KERNEL);
+ onkey = kzalloc_obj(*onkey, GFP_KERNEL);
input_dev = input_allocate_device();
if (!onkey || !input_dev) {
dev_err(&pdev->dev, "Failed to allocate memory\n");
diff --git a/drivers/input/misc/ims-pcu.c b/drivers/input/misc/ims-pcu.c
index 4581f1c53644..52ad6e3a8112 100644
--- a/drivers/input/misc/ims-pcu.c
+++ b/drivers/input/misc/ims-pcu.c
@@ -286,7 +286,7 @@ static int ims_pcu_setup_gamepad(struct ims_pcu *pcu)
struct input_dev *input;
int error;
- gamepad = kzalloc(sizeof(*gamepad), GFP_KERNEL);
+ gamepad = kzalloc_obj(*gamepad, GFP_KERNEL);
input = input_allocate_device();
if (!gamepad || !input) {
dev_err(pcu->dev,
@@ -1991,7 +1991,7 @@ static int ims_pcu_probe(struct usb_interface *intf,
struct ims_pcu *pcu;
int error;
- pcu = kzalloc(sizeof(*pcu), GFP_KERNEL);
+ pcu = kzalloc_obj(*pcu, GFP_KERNEL);
if (!pcu)
return -ENOMEM;
diff --git a/drivers/input/misc/keyspan_remote.c b/drivers/input/misc/keyspan_remote.c
index bee4b1376491..219a7a92e5b6 100644
--- a/drivers/input/misc/keyspan_remote.c
+++ b/drivers/input/misc/keyspan_remote.c
@@ -453,7 +453,7 @@ static int keyspan_probe(struct usb_interface *interface, const struct usb_devic
if (!endpoint)
return -ENODEV;
- remote = kzalloc(sizeof(*remote), GFP_KERNEL);
+ remote = kzalloc_obj(*remote, GFP_KERNEL);
input_dev = input_allocate_device();
if (!remote || !input_dev) {
error = -ENOMEM;
diff --git a/drivers/input/misc/max8997_haptic.c b/drivers/input/misc/max8997_haptic.c
index d5e051a25a74..290c03d8b972 100644
--- a/drivers/input/misc/max8997_haptic.c
+++ b/drivers/input/misc/max8997_haptic.c
@@ -247,7 +247,7 @@ static int max8997_haptic_probe(struct platform_device *pdev)
return -EINVAL;
}
- chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+ chip = kzalloc_obj(*chip, GFP_KERNEL);
input_dev = input_allocate_device();
if (!chip || !input_dev) {
dev_err(&pdev->dev, "unable to allocate memory\n");
diff --git a/drivers/input/misc/mc13783-pwrbutton.c b/drivers/input/misc/mc13783-pwrbutton.c
index b83d762ae2e9..d75af824033a 100644
--- a/drivers/input/misc/mc13783-pwrbutton.c
+++ b/drivers/input/misc/mc13783-pwrbutton.c
@@ -108,7 +108,7 @@ static int mc13783_pwrbutton_probe(struct platform_device *pdev)
return -ENOMEM;
}
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
err = -ENOMEM;
dev_dbg(&pdev->dev, "Can't allocate power button\n");
diff --git a/drivers/input/misc/palmas-pwrbutton.c b/drivers/input/misc/palmas-pwrbutton.c
index d9c5aae143dc..c1608cdee7f2 100644
--- a/drivers/input/misc/palmas-pwrbutton.c
+++ b/drivers/input/misc/palmas-pwrbutton.c
@@ -164,7 +164,7 @@ static int palmas_pwron_probe(struct platform_device *pdev)
palmas_pwron_params_ofinit(dev, &config);
- pwron = kzalloc(sizeof(*pwron), GFP_KERNEL);
+ pwron = kzalloc_obj(*pwron, GFP_KERNEL);
if (!pwron)
return -ENOMEM;
diff --git a/drivers/input/misc/pcap_keys.c b/drivers/input/misc/pcap_keys.c
index fe43fd72ba7b..003bc50f83a6 100644
--- a/drivers/input/misc/pcap_keys.c
+++ b/drivers/input/misc/pcap_keys.c
@@ -49,7 +49,7 @@ static int pcap_keys_probe(struct platform_device *pdev)
struct pcap_keys *pcap_keys;
struct input_dev *input_dev;
- pcap_keys = kmalloc(sizeof(*pcap_keys), GFP_KERNEL);
+ pcap_keys = kmalloc_obj(*pcap_keys, GFP_KERNEL);
if (!pcap_keys)
return err;
diff --git a/drivers/input/misc/pcf8574_keypad.c b/drivers/input/misc/pcf8574_keypad.c
index 3632cb206e34..bcef6a251237 100644
--- a/drivers/input/misc/pcf8574_keypad.c
+++ b/drivers/input/misc/pcf8574_keypad.c
@@ -91,7 +91,7 @@ static int pcf8574_kp_probe(struct i2c_client *client)
return -ENODEV;
}
- lp = kzalloc(sizeof(*lp), GFP_KERNEL);
+ lp = kzalloc_obj(*lp, GFP_KERNEL);
if (!lp)
return -ENOMEM;
diff --git a/drivers/input/misc/powermate.c b/drivers/input/misc/powermate.c
index ecb92ee5ebbc..dfcab914d5f3 100644
--- a/drivers/input/misc/powermate.c
+++ b/drivers/input/misc/powermate.c
@@ -275,7 +275,7 @@ static int powermate_alloc_buffers(struct usb_device *udev, struct powermate_dev
if (!pm->data)
return -1;
- pm->configcr = kmalloc(sizeof(*(pm->configcr)), GFP_KERNEL);
+ pm->configcr = kmalloc_obj(*(pm->configcr), GFP_KERNEL);
if (!pm->configcr)
return -ENOMEM;
@@ -313,7 +313,7 @@ static int powermate_probe(struct usb_interface *intf, const struct usb_device_i
0, interface->desc.bInterfaceNumber, NULL, 0,
USB_CTRL_SET_TIMEOUT);
- pm = kzalloc(sizeof(*pm), GFP_KERNEL);
+ pm = kzalloc_obj(*pm, GFP_KERNEL);
input_dev = input_allocate_device();
if (!pm || !input_dev)
goto fail1;
diff --git a/drivers/input/misc/uinput.c b/drivers/input/misc/uinput.c
index 13336a2fd49c..f34bda9b1a74 100644
--- a/drivers/input/misc/uinput.c
+++ b/drivers/input/misc/uinput.c
@@ -379,7 +379,7 @@ static int uinput_open(struct inode *inode, struct file *file)
{
struct uinput_device *newdev;
- newdev = kzalloc(sizeof(*newdev), GFP_KERNEL);
+ newdev = kzalloc_obj(*newdev, GFP_KERNEL);
if (!newdev)
return -ENOMEM;
diff --git a/drivers/input/misc/xen-kbdfront.c b/drivers/input/misc/xen-kbdfront.c
index 67f1c7364c95..b046df24a433 100644
--- a/drivers/input/misc/xen-kbdfront.c
+++ b/drivers/input/misc/xen-kbdfront.c
@@ -205,7 +205,7 @@ static int xenkbd_probe(struct xenbus_device *dev,
struct xenkbd_info *info;
struct input_dev *kbd, *ptr, *mtouch;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info) {
xenbus_dev_fatal(dev, -ENOMEM, "allocating info structure");
return -ENOMEM;
diff --git a/drivers/input/misc/yealink.c b/drivers/input/misc/yealink.c
index 08dc53ae1b3c..10a85f60f6d1 100644
--- a/drivers/input/misc/yealink.c
+++ b/drivers/input/misc/yealink.c
@@ -831,7 +831,7 @@ static int usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
if (!usb_endpoint_is_int_in(endpoint))
return -ENODEV;
- yld = kzalloc(sizeof(*yld), GFP_KERNEL);
+ yld = kzalloc_obj(*yld, GFP_KERNEL);
if (!yld)
return -ENOMEM;
@@ -854,7 +854,7 @@ static int usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
if (!yld->ctl_data)
return usb_cleanup(yld, -ENOMEM);
- yld->ctl_req = kmalloc(sizeof(*(yld->ctl_req)), GFP_KERNEL);
+ yld->ctl_req = kmalloc_obj(*(yld->ctl_req), GFP_KERNEL);
if (yld->ctl_req == NULL)
return usb_cleanup(yld, -ENOMEM);
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
index df8953a5196e..700dad83f6d0 100644
--- a/drivers/input/mouse/alps.c
+++ b/drivers/input/mouse/alps.c
@@ -3206,7 +3206,7 @@ int alps_detect(struct psmouse *psmouse, bool set_properties)
*/
psmouse_reset(psmouse);
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/input/mouse/appletouch.c b/drivers/input/mouse/appletouch.c
index 3ce63fb35992..f9b8a4aa24e3 100644
--- a/drivers/input/mouse/appletouch.c
+++ b/drivers/input/mouse/appletouch.c
@@ -852,7 +852,7 @@ static int atp_probe(struct usb_interface *iface,
}
/* allocate memory for our device state and initialize it */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
input_dev = input_allocate_device();
if (!dev || !input_dev) {
dev_err(&iface->dev, "Out of memory\n");
diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c
index dfdfb59cc8b5..a193dc4f8b09 100644
--- a/drivers/input/mouse/bcm5974.c
+++ b/drivers/input/mouse/bcm5974.c
@@ -895,7 +895,7 @@ static int bcm5974_probe(struct usb_interface *iface,
cfg = bcm5974_get_config(udev);
/* allocate memory for our device state and initialize it */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
input_dev = input_allocate_device();
if (!dev || !input_dev) {
dev_err(&iface->dev, "out of memory\n");
diff --git a/drivers/input/mouse/byd.c b/drivers/input/mouse/byd.c
index 7f85c7ab68c5..ec9306e15a07 100644
--- a/drivers/input/mouse/byd.c
+++ b/drivers/input/mouse/byd.c
@@ -469,7 +469,7 @@ int byd_init(struct psmouse *psmouse)
if (byd_reset_touchpad(psmouse))
return -EIO;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/input/mouse/cypress_ps2.c b/drivers/input/mouse/cypress_ps2.c
index 9446657a5f35..e96b838afcf7 100644
--- a/drivers/input/mouse/cypress_ps2.c
+++ b/drivers/input/mouse/cypress_ps2.c
@@ -624,7 +624,7 @@ int cypress_init(struct psmouse *psmouse)
struct cytp_data *cytp;
int error;
- cytp = kzalloc(sizeof(*cytp), GFP_KERNEL);
+ cytp = kzalloc_obj(*cytp, GFP_KERNEL);
if (!cytp)
return -ENOMEM;
diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
index 79ad98cc1e79..c7f510fcb04f 100644
--- a/drivers/input/mouse/elantech.c
+++ b/drivers/input/mouse/elantech.c
@@ -2074,7 +2074,7 @@ static int elantech_setup_ps2(struct psmouse *psmouse,
int error = -EINVAL;
struct input_dev *tp_dev;
- psmouse->private = etd = kzalloc(sizeof(*etd), GFP_KERNEL);
+ psmouse->private = etd = kzalloc_obj(*etd, GFP_KERNEL);
if (!etd)
return -ENOMEM;
diff --git a/drivers/input/mouse/focaltech.c b/drivers/input/mouse/focaltech.c
index 356b99d48544..1e8e3f166b47 100644
--- a/drivers/input/mouse/focaltech.c
+++ b/drivers/input/mouse/focaltech.c
@@ -408,7 +408,7 @@ int focaltech_init(struct psmouse *psmouse)
struct focaltech_data *priv;
int error;
- psmouse->private = priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ psmouse->private = priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/input/mouse/hgpk.c b/drivers/input/mouse/hgpk.c
index 6125652e5ad8..23840c8fba32 100644
--- a/drivers/input/mouse/hgpk.c
+++ b/drivers/input/mouse/hgpk.c
@@ -981,7 +981,7 @@ int hgpk_init(struct psmouse *psmouse)
struct hgpk_data *priv;
int err;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
err = -ENOMEM;
goto alloc_fail;
diff --git a/drivers/input/mouse/lifebook.c b/drivers/input/mouse/lifebook.c
index 283ef46f039f..6af7153e9dc7 100644
--- a/drivers/input/mouse/lifebook.c
+++ b/drivers/input/mouse/lifebook.c
@@ -273,7 +273,7 @@ static int lifebook_create_relative_device(struct psmouse *psmouse)
struct lifebook_data *priv;
int error = -ENOMEM;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
dev2 = input_allocate_device();
if (!priv || !dev2)
goto err_out;
diff --git a/drivers/input/mouse/maplemouse.c b/drivers/input/mouse/maplemouse.c
index baef4be14b54..ca4901eb7717 100644
--- a/drivers/input/mouse/maplemouse.c
+++ b/drivers/input/mouse/maplemouse.c
@@ -73,7 +73,7 @@ static int probe_maple_mouse(struct device *dev)
struct input_dev *input_dev;
struct dc_mouse *mse;
- mse = kzalloc(sizeof(*mse), GFP_KERNEL);
+ mse = kzalloc_obj(*mse, GFP_KERNEL);
if (!mse) {
error = -ENOMEM;
goto fail;
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
index 77ea7da3b1c5..46907609d3d4 100644
--- a/drivers/input/mouse/psmouse-base.c
+++ b/drivers/input/mouse/psmouse-base.c
@@ -1591,7 +1591,7 @@ static int psmouse_connect(struct serio *serio, struct serio_driver *drv)
psmouse_deactivate(parent);
}
- psmouse = kzalloc(sizeof(*psmouse), GFP_KERNEL);
+ psmouse = kzalloc_obj(*psmouse, GFP_KERNEL);
input_dev = input_allocate_device();
if (!psmouse || !input_dev)
goto err_free;
diff --git a/drivers/input/mouse/psmouse-smbus.c b/drivers/input/mouse/psmouse-smbus.c
index 15bd49ccad22..96df86872017 100644
--- a/drivers/input/mouse/psmouse-smbus.c
+++ b/drivers/input/mouse/psmouse-smbus.c
@@ -154,7 +154,7 @@ static void psmouse_smbus_schedule_remove(struct i2c_client *client)
{
struct psmouse_smbus_removal_work *rwork;
- rwork = kzalloc(sizeof(*rwork), GFP_KERNEL);
+ rwork = kzalloc_obj(*rwork, GFP_KERNEL);
if (rwork) {
INIT_WORK(&rwork->work, psmouse_smbus_remove_i2c_device);
rwork->client = client;
diff --git a/drivers/input/mouse/sentelic.c b/drivers/input/mouse/sentelic.c
index 44b136fc29aa..4d1fc22f9732 100644
--- a/drivers/input/mouse/sentelic.c
+++ b/drivers/input/mouse/sentelic.c
@@ -1028,7 +1028,7 @@ int fsp_init(struct psmouse *psmouse)
"Finger Sensing Pad, hw: %d.%d.%d, sn: %x, sw: %s\n",
ver >> 4, ver & 0x0F, rev, sn, fsp_drv_ver);
- psmouse->private = priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ psmouse->private = priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/input/mouse/sermouse.c b/drivers/input/mouse/sermouse.c
index 218c8432a13b..c38779fcff72 100644
--- a/drivers/input/mouse/sermouse.c
+++ b/drivers/input/mouse/sermouse.c
@@ -231,7 +231,7 @@ static int sermouse_connect(struct serio *serio, struct serio_driver *drv)
unsigned char c = serio->id.extra;
int err = -ENOMEM;
- sermouse = kzalloc(sizeof(*sermouse), GFP_KERNEL);
+ sermouse = kzalloc_obj(*sermouse, GFP_KERNEL);
input_dev = input_allocate_device();
if (!sermouse || !input_dev)
goto fail1;
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index c5c88a75a019..b9dfcdbefaed 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -741,7 +741,7 @@ static void synaptics_pt_create(struct psmouse *psmouse)
{
struct serio *serio;
- serio = kzalloc(sizeof(*serio), GFP_KERNEL);
+ serio = kzalloc_obj(*serio, GFP_KERNEL);
if (!serio) {
psmouse_err(psmouse,
"not enough memory for pass-through port\n");
@@ -1597,7 +1597,7 @@ static int synaptics_init_ps2(struct psmouse *psmouse,
synaptics_apply_quirks(psmouse, info);
- psmouse->private = priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ psmouse->private = priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/input/mouse/synaptics_usb.c b/drivers/input/mouse/synaptics_usb.c
index 75e45f3ae675..296de386fafe 100644
--- a/drivers/input/mouse/synaptics_usb.c
+++ b/drivers/input/mouse/synaptics_usb.c
@@ -311,7 +311,7 @@ static int synusb_probe(struct usb_interface *intf,
if (!ep)
return -ENODEV;
- synusb = kzalloc(sizeof(*synusb), GFP_KERNEL);
+ synusb = kzalloc_obj(*synusb, GFP_KERNEL);
input_dev = input_allocate_device();
if (!synusb || !input_dev) {
error = -ENOMEM;
diff --git a/drivers/input/mouse/trackpoint.c b/drivers/input/mouse/trackpoint.c
index 5f6643b69a2c..c2b2cd057ca3 100644
--- a/drivers/input/mouse/trackpoint.c
+++ b/drivers/input/mouse/trackpoint.c
@@ -409,7 +409,7 @@ int trackpoint_detect(struct psmouse *psmouse, bool set_properties)
if (!set_properties)
return 0;
- tp = kzalloc(sizeof(*tp), GFP_KERNEL);
+ tp = kzalloc_obj(*tp, GFP_KERNEL);
if (!tp)
return -ENOMEM;
diff --git a/drivers/input/mouse/vmmouse.c b/drivers/input/mouse/vmmouse.c
index fb1d986a6895..eda8f9192423 100644
--- a/drivers/input/mouse/vmmouse.c
+++ b/drivers/input/mouse/vmmouse.c
@@ -409,7 +409,7 @@ int vmmouse_init(struct psmouse *psmouse)
if (error)
return error;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
abs_dev = input_allocate_device();
if (!priv || !abs_dev) {
error = -ENOMEM;
diff --git a/drivers/input/mouse/vsxxxaa.c b/drivers/input/mouse/vsxxxaa.c
index 707cd28f4ba6..4556c5232a82 100644
--- a/drivers/input/mouse/vsxxxaa.c
+++ b/drivers/input/mouse/vsxxxaa.c
@@ -456,7 +456,7 @@ static int vsxxxaa_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *input_dev;
int err = -ENOMEM;
- mouse = kzalloc(sizeof(*mouse), GFP_KERNEL);
+ mouse = kzalloc_obj(*mouse, GFP_KERNEL);
input_dev = input_allocate_device();
if (!mouse || !input_dev)
goto fail1;
diff --git a/drivers/input/mousedev.c b/drivers/input/mousedev.c
index 505c562a5daa..0b842077a7b4 100644
--- a/drivers/input/mousedev.c
+++ b/drivers/input/mousedev.c
@@ -543,7 +543,7 @@ static int mousedev_open(struct inode *inode, struct file *file)
#endif
mousedev = container_of(inode->i_cdev, struct mousedev, cdev);
- client = kzalloc(sizeof(struct mousedev_client), GFP_KERNEL);
+ client = kzalloc_obj(struct mousedev_client, GFP_KERNEL);
if (!client)
return -ENOMEM;
@@ -853,7 +853,7 @@ static struct mousedev *mousedev_create(struct input_dev *dev,
goto err_out;
}
- mousedev = kzalloc(sizeof(struct mousedev), GFP_KERNEL);
+ mousedev = kzalloc_obj(struct mousedev, GFP_KERNEL);
if (!mousedev) {
error = -ENOMEM;
goto err_free_minor;
diff --git a/drivers/input/rmi4/rmi_bus.c b/drivers/input/rmi4/rmi_bus.c
index b85ee9db87b0..0e2bb94e67cc 100644
--- a/drivers/input/rmi4/rmi_bus.c
+++ b/drivers/input/rmi4/rmi_bus.c
@@ -78,7 +78,7 @@ int rmi_register_transport_device(struct rmi_transport_dev *xport)
struct rmi_device *rmi_dev;
int error;
- rmi_dev = kzalloc(sizeof(struct rmi_device), GFP_KERNEL);
+ rmi_dev = kzalloc_obj(struct rmi_device, GFP_KERNEL);
if (!rmi_dev)
return -ENOMEM;
diff --git a/drivers/input/rmi4/rmi_f03.c b/drivers/input/rmi4/rmi_f03.c
index e1157ff0f00a..1c7be2d9df42 100644
--- a/drivers/input/rmi4/rmi_f03.c
+++ b/drivers/input/rmi4/rmi_f03.c
@@ -171,7 +171,7 @@ static int rmi_f03_register_pt(struct f03_data *f03)
{
struct serio *serio;
- serio = kzalloc(sizeof(struct serio), GFP_KERNEL);
+ serio = kzalloc_obj(struct serio, GFP_KERNEL);
if (!serio)
return -ENOMEM;
diff --git a/drivers/input/serio/altera_ps2.c b/drivers/input/serio/altera_ps2.c
index 761aaaa3e571..b2f5fec9290c 100644
--- a/drivers/input/serio/altera_ps2.c
+++ b/drivers/input/serio/altera_ps2.c
@@ -100,7 +100,7 @@ static int altera_ps2_probe(struct platform_device *pdev)
return error;
}
- serio = kzalloc(sizeof(*serio), GFP_KERNEL);
+ serio = kzalloc_obj(*serio, GFP_KERNEL);
if (!serio)
return -ENOMEM;
diff --git a/drivers/input/serio/ambakmi.c b/drivers/input/serio/ambakmi.c
index de4b3915c37d..5a4ef62fa3d3 100644
--- a/drivers/input/serio/ambakmi.c
+++ b/drivers/input/serio/ambakmi.c
@@ -114,8 +114,8 @@ static int amba_kmi_probe(struct amba_device *dev,
if (ret)
return ret;
- kmi = kzalloc(sizeof(*kmi), GFP_KERNEL);
- io = kzalloc(sizeof(*io), GFP_KERNEL);
+ kmi = kzalloc_obj(*kmi, GFP_KERNEL);
+ io = kzalloc_obj(*io, GFP_KERNEL);
if (!kmi || !io) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/input/serio/ams_delta_serio.c b/drivers/input/serio/ams_delta_serio.c
index 81b3a053df81..206e6dc3f502 100644
--- a/drivers/input/serio/ams_delta_serio.c
+++ b/drivers/input/serio/ams_delta_serio.c
@@ -150,7 +150,7 @@ static int ams_delta_serio_init(struct platform_device *pdev)
return err;
}
- serio = kzalloc(sizeof(*serio), GFP_KERNEL);
+ serio = kzalloc_obj(*serio, GFP_KERNEL);
if (!serio)
return -ENOMEM;
diff --git a/drivers/input/serio/apbps2.c b/drivers/input/serio/apbps2.c
index a5fbb27088be..5828a4e9fe82 100644
--- a/drivers/input/serio/apbps2.c
+++ b/drivers/input/serio/apbps2.c
@@ -165,7 +165,7 @@ static int apbps2_of_probe(struct platform_device *ofdev)
/* Set reload register to core freq in kHz/10 */
iowrite32be(freq_hz / 10000, &priv->regs->reload);
- priv->io = kzalloc(sizeof(*priv->io), GFP_KERNEL);
+ priv->io = kzalloc_obj(*priv->io, GFP_KERNEL);
if (!priv->io)
return -ENOMEM;
diff --git a/drivers/input/serio/arc_ps2.c b/drivers/input/serio/arc_ps2.c
index 29095d8804d2..bce8d6308f8d 100644
--- a/drivers/input/serio/arc_ps2.c
+++ b/drivers/input/serio/arc_ps2.c
@@ -155,7 +155,7 @@ static int arc_ps2_create_port(struct platform_device *pdev,
struct arc_ps2_port *port = &arc_ps2->port[index];
struct serio *io;
- io = kzalloc(sizeof(*io), GFP_KERNEL);
+ io = kzalloc_obj(*io, GFP_KERNEL);
if (!io)
return -ENOMEM;
diff --git a/drivers/input/serio/ct82c710.c b/drivers/input/serio/ct82c710.c
index 053a15988c45..3a7424bdf877 100644
--- a/drivers/input/serio/ct82c710.c
+++ b/drivers/input/serio/ct82c710.c
@@ -158,7 +158,7 @@ static int __init ct82c710_detect(void)
static int ct82c710_probe(struct platform_device *dev)
{
- ct82c710_port = kzalloc(sizeof(*ct82c710_port), GFP_KERNEL);
+ ct82c710_port = kzalloc_obj(*ct82c710_port, GFP_KERNEL);
if (!ct82c710_port)
return -ENOMEM;
diff --git a/drivers/input/serio/gscps2.c b/drivers/input/serio/gscps2.c
index 9c6ff04c46cf..59c242f97fd3 100644
--- a/drivers/input/serio/gscps2.c
+++ b/drivers/input/serio/gscps2.c
@@ -350,8 +350,8 @@ static int __init gscps2_probe(struct parisc_device *dev)
if (dev->id.sversion == 0x96)
hpa += GSC_DINO_OFFSET;
- ps2port = kzalloc(sizeof(*ps2port), GFP_KERNEL);
- serio = kzalloc(sizeof(*serio), GFP_KERNEL);
+ ps2port = kzalloc_obj(*ps2port, GFP_KERNEL);
+ serio = kzalloc_obj(*serio, GFP_KERNEL);
if (!ps2port || !serio) {
ret = -ENOMEM;
goto fail_nomem;
diff --git a/drivers/input/serio/hil_mlc.c b/drivers/input/serio/hil_mlc.c
index 3fedfc5abc73..f56252d6df5b 100644
--- a/drivers/input/serio/hil_mlc.c
+++ b/drivers/input/serio/hil_mlc.c
@@ -939,7 +939,7 @@ int hil_mlc_register(hil_mlc *mlc)
for (i = 0; i < HIL_MLC_DEVMEM; i++) {
struct serio *mlc_serio;
hil_mlc_copy_di_scratch(mlc, i);
- mlc_serio = kzalloc(sizeof(*mlc_serio), GFP_KERNEL);
+ mlc_serio = kzalloc_obj(*mlc_serio, GFP_KERNEL);
mlc->serio[i] = mlc_serio;
if (!mlc->serio[i]) {
for (; i >= 0; i--)
diff --git a/drivers/input/serio/hyperv-keyboard.c b/drivers/input/serio/hyperv-keyboard.c
index 0ee7505427ac..7cbf726b47a7 100644
--- a/drivers/input/serio/hyperv-keyboard.c
+++ b/drivers/input/serio/hyperv-keyboard.c
@@ -316,8 +316,8 @@ static int hv_kbd_probe(struct hv_device *hv_dev,
struct serio *hv_serio;
int error;
- kbd_dev = kzalloc(sizeof(*kbd_dev), GFP_KERNEL);
- hv_serio = kzalloc(sizeof(*hv_serio), GFP_KERNEL);
+ kbd_dev = kzalloc_obj(*kbd_dev, GFP_KERNEL);
+ hv_serio = kzalloc_obj(*hv_serio, GFP_KERNEL);
if (!kbd_dev || !hv_serio) {
error = -ENOMEM;
goto err_free_mem;
diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
index c135254665b6..1a5a7f2f0214 100644
--- a/drivers/input/serio/i8042.c
+++ b/drivers/input/serio/i8042.c
@@ -1324,7 +1324,7 @@ static int i8042_create_kbd_port(void)
struct serio *serio;
struct i8042_port *port = &i8042_ports[I8042_KBD_PORT_NO];
- serio = kzalloc(sizeof(*serio), GFP_KERNEL);
+ serio = kzalloc_obj(*serio, GFP_KERNEL);
if (!serio)
return -ENOMEM;
@@ -1354,7 +1354,7 @@ static int i8042_create_aux_port(int idx)
int port_no = idx < 0 ? I8042_AUX_PORT_NO : I8042_MUX_PORT_NO + idx;
struct i8042_port *port = &i8042_ports[port_no];
- serio = kzalloc(sizeof(*serio), GFP_KERNEL);
+ serio = kzalloc_obj(*serio, GFP_KERNEL);
if (!serio)
return -ENOMEM;
diff --git a/drivers/input/serio/ioc3kbd.c b/drivers/input/serio/ioc3kbd.c
index d2c7ffb9a946..650758115bf0 100644
--- a/drivers/input/serio/ioc3kbd.c
+++ b/drivers/input/serio/ioc3kbd.c
@@ -139,11 +139,11 @@ static int ioc3kbd_probe(struct platform_device *pdev)
if (!d)
return -ENOMEM;
- sk = kzalloc(sizeof(*sk), GFP_KERNEL);
+ sk = kzalloc_obj(*sk, GFP_KERNEL);
if (!sk)
return -ENOMEM;
- sa = kzalloc(sizeof(*sa), GFP_KERNEL);
+ sa = kzalloc_obj(*sa, GFP_KERNEL);
if (!sa) {
kfree(sk);
return -ENOMEM;
diff --git a/drivers/input/serio/maceps2.c b/drivers/input/serio/maceps2.c
index 3d28a5cddd61..dda52b7d2c1d 100644
--- a/drivers/input/serio/maceps2.c
+++ b/drivers/input/serio/maceps2.c
@@ -117,7 +117,7 @@ static struct serio *maceps2_allocate_port(int idx)
{
struct serio *serio;
- serio = kzalloc(sizeof(*serio), GFP_KERNEL);
+ serio = kzalloc_obj(*serio, GFP_KERNEL);
if (serio) {
serio->id.type = SERIO_8042;
serio->write = maceps2_write;
diff --git a/drivers/input/serio/olpc_apsp.c b/drivers/input/serio/olpc_apsp.c
index c07fb8a1799d..14c235b0b4e4 100644
--- a/drivers/input/serio/olpc_apsp.c
+++ b/drivers/input/serio/olpc_apsp.c
@@ -188,7 +188,7 @@ static int olpc_apsp_probe(struct platform_device *pdev)
return priv->irq;
/* KEYBOARD */
- kb_serio = kzalloc(sizeof(*kb_serio), GFP_KERNEL);
+ kb_serio = kzalloc_obj(*kb_serio, GFP_KERNEL);
if (!kb_serio)
return -ENOMEM;
kb_serio->id.type = SERIO_8042_XL;
@@ -203,7 +203,7 @@ static int olpc_apsp_probe(struct platform_device *pdev)
serio_register_port(kb_serio);
/* TOUCHPAD */
- pad_serio = kzalloc(sizeof(*pad_serio), GFP_KERNEL);
+ pad_serio = kzalloc_obj(*pad_serio, GFP_KERNEL);
if (!pad_serio) {
error = -ENOMEM;
goto err_pad;
diff --git a/drivers/input/serio/parkbd.c b/drivers/input/serio/parkbd.c
index 22fe55490572..a4b830b499f6 100644
--- a/drivers/input/serio/parkbd.c
+++ b/drivers/input/serio/parkbd.c
@@ -165,7 +165,7 @@ static struct serio *parkbd_allocate_serio(void)
{
struct serio *serio;
- serio = kzalloc(sizeof(*serio), GFP_KERNEL);
+ serio = kzalloc_obj(*serio, GFP_KERNEL);
if (serio) {
serio->id.type = parkbd_mode;
serio->write = parkbd_write;
diff --git a/drivers/input/serio/pcips2.c b/drivers/input/serio/pcips2.c
index 6b9abb2e18c9..9e5d022fa502 100644
--- a/drivers/input/serio/pcips2.c
+++ b/drivers/input/serio/pcips2.c
@@ -137,8 +137,8 @@ static int pcips2_probe(struct pci_dev *dev, const struct pci_device_id *id)
if (ret)
goto disable;
- ps2if = kzalloc(sizeof(*ps2if), GFP_KERNEL);
- serio = kzalloc(sizeof(*serio), GFP_KERNEL);
+ ps2if = kzalloc_obj(*ps2if, GFP_KERNEL);
+ serio = kzalloc_obj(*serio, GFP_KERNEL);
if (!ps2if || !serio) {
ret = -ENOMEM;
goto release;
diff --git a/drivers/input/serio/ps2-gpio.c b/drivers/input/serio/ps2-gpio.c
index 46fb7667b244..a52ce59952a9 100644
--- a/drivers/input/serio/ps2-gpio.c
+++ b/drivers/input/serio/ps2-gpio.c
@@ -405,7 +405,7 @@ static int ps2_gpio_probe(struct platform_device *pdev)
int error;
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
- serio = kzalloc(sizeof(*serio), GFP_KERNEL);
+ serio = kzalloc_obj(*serio, GFP_KERNEL);
if (!drvdata || !serio) {
error = -ENOMEM;
goto err_free_serio;
diff --git a/drivers/input/serio/ps2mult.c b/drivers/input/serio/ps2mult.c
index b96cee52fc52..e0462ac3aa1d 100644
--- a/drivers/input/serio/ps2mult.c
+++ b/drivers/input/serio/ps2mult.c
@@ -122,7 +122,7 @@ static int ps2mult_create_port(struct ps2mult *psm, int i)
struct serio *mx_serio = psm->mx_serio;
struct serio *serio;
- serio = kzalloc(sizeof(*serio), GFP_KERNEL);
+ serio = kzalloc_obj(*serio, GFP_KERNEL);
if (!serio)
return -ENOMEM;
@@ -160,7 +160,7 @@ static int ps2mult_connect(struct serio *serio, struct serio_driver *drv)
if (!serio->write)
return -EINVAL;
- psm = kzalloc(sizeof(*psm), GFP_KERNEL);
+ psm = kzalloc_obj(*psm, GFP_KERNEL);
if (!psm)
return -ENOMEM;
diff --git a/drivers/input/serio/q40kbd.c b/drivers/input/serio/q40kbd.c
index ae55c4de092f..55c254fbdb24 100644
--- a/drivers/input/serio/q40kbd.c
+++ b/drivers/input/serio/q40kbd.c
@@ -102,8 +102,8 @@ static int q40kbd_probe(struct platform_device *pdev)
struct serio *port;
int error;
- q40kbd = kzalloc(sizeof(*q40kbd), GFP_KERNEL);
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ q40kbd = kzalloc_obj(*q40kbd, GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!q40kbd || !port) {
error = -ENOMEM;
goto err_free_mem;
diff --git a/drivers/input/serio/rpckbd.c b/drivers/input/serio/rpckbd.c
index c65c552b0c45..c097716da53e 100644
--- a/drivers/input/serio/rpckbd.c
+++ b/drivers/input/serio/rpckbd.c
@@ -108,8 +108,8 @@ static int rpckbd_probe(struct platform_device *dev)
if (tx_irq < 0)
return tx_irq;
- serio = kzalloc(sizeof(*serio), GFP_KERNEL);
- rpckbd = kzalloc(sizeof(*rpckbd), GFP_KERNEL);
+ serio = kzalloc_obj(*serio, GFP_KERNEL);
+ rpckbd = kzalloc_obj(*rpckbd, GFP_KERNEL);
if (!serio || !rpckbd) {
kfree(rpckbd);
kfree(serio);
diff --git a/drivers/input/serio/sa1111ps2.c b/drivers/input/serio/sa1111ps2.c
index 375c6f5f905c..32752d898797 100644
--- a/drivers/input/serio/sa1111ps2.c
+++ b/drivers/input/serio/sa1111ps2.c
@@ -254,8 +254,8 @@ static int ps2_probe(struct sa1111_dev *dev)
struct serio *serio;
int ret;
- ps2if = kzalloc(sizeof(*ps2if), GFP_KERNEL);
- serio = kzalloc(sizeof(*serio), GFP_KERNEL);
+ ps2if = kzalloc_obj(*ps2if, GFP_KERNEL);
+ serio = kzalloc_obj(*serio, GFP_KERNEL);
if (!ps2if || !serio) {
ret = -ENOMEM;
goto free;
diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c
index 2b5ddc5dac19..54dd26249b02 100644
--- a/drivers/input/serio/serio.c
+++ b/drivers/input/serio/serio.c
@@ -244,7 +244,7 @@ static int serio_queue_event(void *object, struct module *owner,
}
}
- event = kmalloc(sizeof(*event), GFP_ATOMIC);
+ event = kmalloc_obj(*event, GFP_ATOMIC);
if (!event) {
pr_err("Not enough memory to queue event %d\n", event_type);
return -ENOMEM;
diff --git a/drivers/input/serio/serio_raw.c b/drivers/input/serio/serio_raw.c
index 4d6395088986..70df54435a94 100644
--- a/drivers/input/serio/serio_raw.c
+++ b/drivers/input/serio/serio_raw.c
@@ -270,7 +270,7 @@ static int serio_raw_connect(struct serio *serio, struct serio_driver *drv)
struct serio_raw *serio_raw;
int err;
- serio_raw = kzalloc(sizeof(*serio_raw), GFP_KERNEL);
+ serio_raw = kzalloc_obj(*serio_raw, GFP_KERNEL);
if (!serio_raw) {
dev_dbg(&serio->dev, "can't allocate memory for a device\n");
return -ENOMEM;
diff --git a/drivers/input/serio/serport.c b/drivers/input/serio/serport.c
index 74ac88796187..46087c02c340 100644
--- a/drivers/input/serio/serport.c
+++ b/drivers/input/serio/serport.c
@@ -78,7 +78,7 @@ static int serport_ldisc_open(struct tty_struct *tty)
if (!capable(CAP_SYS_ADMIN))
return -EPERM;
- serport = kzalloc(sizeof(*serport), GFP_KERNEL);
+ serport = kzalloc_obj(*serport, GFP_KERNEL);
if (!serport)
return -ENOMEM;
@@ -159,7 +159,7 @@ static ssize_t serport_ldisc_read(struct tty_struct * tty, struct file * file,
if (test_and_set_bit(SERPORT_BUSY, &serport->flags))
return -EBUSY;
- serport->serio = serio = kzalloc(sizeof(*serio), GFP_KERNEL);
+ serport->serio = serio = kzalloc_obj(*serio, GFP_KERNEL);
if (!serio)
return -ENOMEM;
diff --git a/drivers/input/serio/sun4i-ps2.c b/drivers/input/serio/sun4i-ps2.c
index 524929ce1cae..5b46c66b2100 100644
--- a/drivers/input/serio/sun4i-ps2.c
+++ b/drivers/input/serio/sun4i-ps2.c
@@ -209,8 +209,8 @@ static int sun4i_ps2_probe(struct platform_device *pdev)
struct device *dev = &pdev->dev;
int error;
- drvdata = kzalloc(sizeof(*drvdata), GFP_KERNEL);
- serio = kzalloc(sizeof(*serio), GFP_KERNEL);
+ drvdata = kzalloc_obj(*drvdata, GFP_KERNEL);
+ serio = kzalloc_obj(*serio, GFP_KERNEL);
if (!drvdata || !serio) {
error = -ENOMEM;
goto err_free_mem;
diff --git a/drivers/input/serio/userio.c b/drivers/input/serio/userio.c
index 7f627b08055e..3bdb17b4dd25 100644
--- a/drivers/input/serio/userio.c
+++ b/drivers/input/serio/userio.c
@@ -73,7 +73,7 @@ static int userio_device_write(struct serio *id, unsigned char val)
static int userio_char_open(struct inode *inode, struct file *file)
{
struct userio_device *userio __free(kfree) =
- kzalloc(sizeof(*userio), GFP_KERNEL);
+ kzalloc_obj(*userio, GFP_KERNEL);
if (!userio)
return -ENOMEM;
@@ -81,7 +81,7 @@ static int userio_char_open(struct inode *inode, struct file *file)
spin_lock_init(&userio->buf_lock);
init_waitqueue_head(&userio->waitq);
- userio->serio = kzalloc(sizeof(*userio->serio), GFP_KERNEL);
+ userio->serio = kzalloc_obj(*userio->serio, GFP_KERNEL);
if (!userio->serio)
return -ENOMEM;
diff --git a/drivers/input/serio/xilinx_ps2.c b/drivers/input/serio/xilinx_ps2.c
index 01433f0b48f1..0c9ddc532c31 100644
--- a/drivers/input/serio/xilinx_ps2.c
+++ b/drivers/input/serio/xilinx_ps2.c
@@ -247,8 +247,8 @@ static int xps2_of_probe(struct platform_device *ofdev)
return -ENODEV;
}
- drvdata = kzalloc(sizeof(*drvdata), GFP_KERNEL);
- serio = kzalloc(sizeof(*serio), GFP_KERNEL);
+ drvdata = kzalloc_obj(*drvdata, GFP_KERNEL);
+ serio = kzalloc_obj(*serio, GFP_KERNEL);
if (!drvdata || !serio) {
error = -ENOMEM;
goto failed1;
diff --git a/drivers/input/tablet/acecad.c b/drivers/input/tablet/acecad.c
index 0ac16f32b31f..6f39938d5bbc 100644
--- a/drivers/input/tablet/acecad.c
+++ b/drivers/input/tablet/acecad.c
@@ -129,7 +129,7 @@ static int usb_acecad_probe(struct usb_interface *intf, const struct usb_device_
pipe = usb_rcvintpipe(dev, endpoint->bEndpointAddress);
maxp = usb_maxpacket(dev, pipe);
- acecad = kzalloc(sizeof(*acecad), GFP_KERNEL);
+ acecad = kzalloc_obj(*acecad, GFP_KERNEL);
input_dev = input_allocate_device();
if (!acecad || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/tablet/aiptek.c b/drivers/input/tablet/aiptek.c
index 2b3fbb0455d5..df9ed01dcdb3 100644
--- a/drivers/input/tablet/aiptek.c
+++ b/drivers/input/tablet/aiptek.c
@@ -1673,7 +1673,7 @@ aiptek_probe(struct usb_interface *intf, const struct usb_device_id *id)
*/
speeds[0] = programmableDelay;
- aiptek = kzalloc(sizeof(*aiptek), GFP_KERNEL);
+ aiptek = kzalloc_obj(*aiptek, GFP_KERNEL);
inputdev = input_allocate_device();
if (!aiptek || !inputdev) {
dev_warn(&intf->dev,
diff --git a/drivers/input/tablet/hanwang.c b/drivers/input/tablet/hanwang.c
index 42c1e5eaddd5..264cb9c6e807 100644
--- a/drivers/input/tablet/hanwang.c
+++ b/drivers/input/tablet/hanwang.c
@@ -322,7 +322,7 @@ static int hanwang_probe(struct usb_interface *intf, const struct usb_device_id
if (intf->cur_altsetting->desc.bNumEndpoints < 1)
return -ENODEV;
- hanwang = kzalloc(sizeof(*hanwang), GFP_KERNEL);
+ hanwang = kzalloc_obj(*hanwang, GFP_KERNEL);
input_dev = input_allocate_device();
if (!hanwang || !input_dev) {
error = -ENOMEM;
diff --git a/drivers/input/tablet/kbtab.c b/drivers/input/tablet/kbtab.c
index 794caa102909..658cf6c144bb 100644
--- a/drivers/input/tablet/kbtab.c
+++ b/drivers/input/tablet/kbtab.c
@@ -121,7 +121,7 @@ static int kbtab_probe(struct usb_interface *intf, const struct usb_device_id *i
if (!usb_endpoint_is_int_in(endpoint))
return -ENODEV;
- kbtab = kzalloc(sizeof(*kbtab), GFP_KERNEL);
+ kbtab = kzalloc_obj(*kbtab, GFP_KERNEL);
input_dev = input_allocate_device();
if (!kbtab || !input_dev)
goto fail1;
diff --git a/drivers/input/tablet/pegasus_notetaker.c b/drivers/input/tablet/pegasus_notetaker.c
index eabb4a0b8a0d..8ba71855421b 100644
--- a/drivers/input/tablet/pegasus_notetaker.c
+++ b/drivers/input/tablet/pegasus_notetaker.c
@@ -293,7 +293,7 @@ static int pegasus_probe(struct usb_interface *intf,
endpoint = &intf->cur_altsetting->endpoint[0].desc;
- pegasus = kzalloc(sizeof(*pegasus), GFP_KERNEL);
+ pegasus = kzalloc_obj(*pegasus, GFP_KERNEL);
input_dev = input_allocate_device();
if (!pegasus || !input_dev) {
error = -ENOMEM;
diff --git a/drivers/input/tablet/wacom_serial4.c b/drivers/input/tablet/wacom_serial4.c
index cf7cea77dabc..218eb157288b 100644
--- a/drivers/input/tablet/wacom_serial4.c
+++ b/drivers/input/tablet/wacom_serial4.c
@@ -521,7 +521,7 @@ static int wacom_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *input_dev;
int err = -ENOMEM;
- wacom = kzalloc(sizeof(*wacom), GFP_KERNEL);
+ wacom = kzalloc_obj(*wacom, GFP_KERNEL);
input_dev = input_allocate_device();
if (!wacom || !input_dev)
goto free_device;
diff --git a/drivers/input/touchscreen/ad7877.c b/drivers/input/touchscreen/ad7877.c
index c9aa1847265a..404a4b7f4021 100644
--- a/drivers/input/touchscreen/ad7877.c
+++ b/drivers/input/touchscreen/ad7877.c
@@ -201,7 +201,7 @@ static int ad7877_read(struct spi_device *spi, u16 reg)
struct ser_req *req;
int status, ret;
- req = kzalloc(sizeof *req, GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -232,7 +232,7 @@ static int ad7877_write(struct spi_device *spi, u16 reg, u16 val)
struct ser_req *req;
int status;
- req = kzalloc(sizeof *req, GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -259,7 +259,7 @@ static int ad7877_read_adc(struct spi_device *spi, unsigned command)
int sample;
int i;
- req = kzalloc(sizeof *req, GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
index 67264c5b49cb..656e907bc13d 100644
--- a/drivers/input/touchscreen/ads7846.c
+++ b/drivers/input/touchscreen/ads7846.c
@@ -357,7 +357,7 @@ static int ads7846_read12_ser(struct device *dev, unsigned command)
struct ser_req *req;
int status;
- req = kzalloc(sizeof *req, GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -442,7 +442,7 @@ static int ads7845_read12_ser(struct device *dev, unsigned command)
struct ads7845_ser_req *req;
int status;
- req = kzalloc(sizeof *req, GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/drivers/input/touchscreen/da9052_tsi.c b/drivers/input/touchscreen/da9052_tsi.c
index c2d3252f8466..ab36ecf2ab3b 100644
--- a/drivers/input/touchscreen/da9052_tsi.c
+++ b/drivers/input/touchscreen/da9052_tsi.c
@@ -232,7 +232,7 @@ static int da9052_ts_probe(struct platform_device *pdev)
if (!da9052)
return -EINVAL;
- tsi = kzalloc(sizeof(*tsi), GFP_KERNEL);
+ tsi = kzalloc_obj(*tsi, GFP_KERNEL);
input_dev = input_allocate_device();
if (!tsi || !input_dev) {
error = -ENOMEM;
diff --git a/drivers/input/touchscreen/dynapro.c b/drivers/input/touchscreen/dynapro.c
index 998d5ca8071e..6d9a25269639 100644
--- a/drivers/input/touchscreen/dynapro.c
+++ b/drivers/input/touchscreen/dynapro.c
@@ -110,7 +110,7 @@ static int dynapro_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *input_dev;
int err;
- pdynapro = kzalloc(sizeof(*pdynapro), GFP_KERNEL);
+ pdynapro = kzalloc_obj(*pdynapro, GFP_KERNEL);
input_dev = input_allocate_device();
if (!pdynapro || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/touchscreen/egalax_ts_serial.c b/drivers/input/touchscreen/egalax_ts_serial.c
index 5f284490a298..b741843719ab 100644
--- a/drivers/input/touchscreen/egalax_ts_serial.c
+++ b/drivers/input/touchscreen/egalax_ts_serial.c
@@ -99,7 +99,7 @@ static int egalax_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *input_dev;
int error;
- egalax = kzalloc(sizeof(*egalax), GFP_KERNEL);
+ egalax = kzalloc_obj(*egalax, GFP_KERNEL);
input_dev = input_allocate_device();
if (!egalax || !input_dev) {
error = -ENOMEM;
diff --git a/drivers/input/touchscreen/elo.c b/drivers/input/touchscreen/elo.c
index 137a5f69b83e..f75ea0caf7f9 100644
--- a/drivers/input/touchscreen/elo.c
+++ b/drivers/input/touchscreen/elo.c
@@ -307,7 +307,7 @@ static int elo_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *input_dev;
int err;
- elo = kzalloc(sizeof(*elo), GFP_KERNEL);
+ elo = kzalloc_obj(*elo, GFP_KERNEL);
input_dev = input_allocate_device();
if (!elo || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/touchscreen/fujitsu_ts.c b/drivers/input/touchscreen/fujitsu_ts.c
index cef2e93c17bc..3a4f47e37ae7 100644
--- a/drivers/input/touchscreen/fujitsu_ts.c
+++ b/drivers/input/touchscreen/fujitsu_ts.c
@@ -99,7 +99,7 @@ static int fujitsu_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *input_dev;
int err;
- fujitsu = kzalloc(sizeof(*fujitsu), GFP_KERNEL);
+ fujitsu = kzalloc_obj(*fujitsu, GFP_KERNEL);
input_dev = input_allocate_device();
if (!fujitsu || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/touchscreen/gunze.c b/drivers/input/touchscreen/gunze.c
index 426d2bc80a93..0311f80d263e 100644
--- a/drivers/input/touchscreen/gunze.c
+++ b/drivers/input/touchscreen/gunze.c
@@ -97,7 +97,7 @@ static int gunze_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *input_dev;
int err;
- gunze = kzalloc(sizeof(*gunze), GFP_KERNEL);
+ gunze = kzalloc_obj(*gunze, GFP_KERNEL);
input_dev = input_allocate_device();
if (!gunze || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/touchscreen/hampshire.c b/drivers/input/touchscreen/hampshire.c
index 0a9af8d0218c..b6423c982726 100644
--- a/drivers/input/touchscreen/hampshire.c
+++ b/drivers/input/touchscreen/hampshire.c
@@ -109,7 +109,7 @@ static int hampshire_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *input_dev;
int err;
- phampshire = kzalloc(sizeof(*phampshire), GFP_KERNEL);
+ phampshire = kzalloc_obj(*phampshire, GFP_KERNEL);
input_dev = input_allocate_device();
if (!phampshire || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/touchscreen/inexio.c b/drivers/input/touchscreen/inexio.c
index a7604f2c4e3a..72caa754381e 100644
--- a/drivers/input/touchscreen/inexio.c
+++ b/drivers/input/touchscreen/inexio.c
@@ -114,7 +114,7 @@ static int inexio_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *input_dev;
int err;
- pinexio = kzalloc(sizeof(*pinexio), GFP_KERNEL);
+ pinexio = kzalloc_obj(*pinexio, GFP_KERNEL);
input_dev = input_allocate_device();
if (!pinexio || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/touchscreen/mc13783_ts.c b/drivers/input/touchscreen/mc13783_ts.c
index 47b8da00027f..f539339ee6a0 100644
--- a/drivers/input/touchscreen/mc13783_ts.c
+++ b/drivers/input/touchscreen/mc13783_ts.c
@@ -168,7 +168,7 @@ static int __init mc13783_ts_probe(struct platform_device *pdev)
struct input_dev *idev;
int ret = -ENOMEM;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
idev = input_allocate_device();
if (!priv || !idev)
goto err_free_mem;
diff --git a/drivers/input/touchscreen/migor_ts.c b/drivers/input/touchscreen/migor_ts.c
index 7511a134e302..c7d5ca01beba 100644
--- a/drivers/input/touchscreen/migor_ts.c
+++ b/drivers/input/touchscreen/migor_ts.c
@@ -122,7 +122,7 @@ static int migor_ts_probe(struct i2c_client *client)
struct input_dev *input;
int error;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
input = input_allocate_device();
if (!priv || !input) {
dev_err(&client->dev, "failed to allocate memory\n");
diff --git a/drivers/input/touchscreen/mtouch.c b/drivers/input/touchscreen/mtouch.c
index 0427ae08c39d..f4e99ccee363 100644
--- a/drivers/input/touchscreen/mtouch.c
+++ b/drivers/input/touchscreen/mtouch.c
@@ -128,7 +128,7 @@ static int mtouch_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *input_dev;
int err;
- mtouch = kzalloc(sizeof(*mtouch), GFP_KERNEL);
+ mtouch = kzalloc_obj(*mtouch, GFP_KERNEL);
input_dev = input_allocate_device();
if (!mtouch || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/touchscreen/pcap_ts.c b/drivers/input/touchscreen/pcap_ts.c
index 083206a3457b..05e90b36246f 100644
--- a/drivers/input/touchscreen/pcap_ts.c
+++ b/drivers/input/touchscreen/pcap_ts.c
@@ -138,7 +138,7 @@ static int pcap_ts_probe(struct platform_device *pdev)
struct pcap_ts *pcap_ts;
int err = -ENOMEM;
- pcap_ts = kzalloc(sizeof(*pcap_ts), GFP_KERNEL);
+ pcap_ts = kzalloc_obj(*pcap_ts, GFP_KERNEL);
if (!pcap_ts)
return err;
diff --git a/drivers/input/touchscreen/penmount.c b/drivers/input/touchscreen/penmount.c
index e027c71cffd9..c4979ce707b8 100644
--- a/drivers/input/touchscreen/penmount.c
+++ b/drivers/input/touchscreen/penmount.c
@@ -199,7 +199,7 @@ static int pm_connect(struct serio *serio, struct serio_driver *drv)
int max_x, max_y;
int err;
- pm = kzalloc(sizeof(*pm), GFP_KERNEL);
+ pm = kzalloc_obj(*pm, GFP_KERNEL);
input_dev = input_allocate_device();
if (!pm || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/touchscreen/sur40.c b/drivers/input/touchscreen/sur40.c
index 7b3b10cbfcfc..dbe3ddb1194a 100644
--- a/drivers/input/touchscreen/sur40.c
+++ b/drivers/input/touchscreen/sur40.c
@@ -672,7 +672,7 @@ static int sur40_probe(struct usb_interface *interface,
return -ENODEV;
/* Allocate memory for our device state and initialize it. */
- sur40 = kzalloc(sizeof(*sur40), GFP_KERNEL);
+ sur40 = kzalloc_obj(*sur40, GFP_KERNEL);
if (!sur40)
return -ENOMEM;
diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c
index 0534b2ba650b..d03076da7f04 100644
--- a/drivers/input/touchscreen/ti_am335x_tsc.c
+++ b/drivers/input/touchscreen/ti_am335x_tsc.c
@@ -422,7 +422,7 @@ static int titsc_probe(struct platform_device *pdev)
int err;
/* Allocate memory for device */
- ts_dev = kzalloc(sizeof(*ts_dev), GFP_KERNEL);
+ ts_dev = kzalloc_obj(*ts_dev, GFP_KERNEL);
input_dev = input_allocate_device();
if (!ts_dev || !input_dev) {
dev_err(&pdev->dev, "failed to allocate memory.\n");
diff --git a/drivers/input/touchscreen/touchit213.c b/drivers/input/touchscreen/touchit213.c
index 53c39ed849f7..6fc1f60fd7a9 100644
--- a/drivers/input/touchscreen/touchit213.c
+++ b/drivers/input/touchscreen/touchit213.c
@@ -139,7 +139,7 @@ static int touchit213_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *input_dev;
int err;
- touchit213 = kzalloc(sizeof(*touchit213), GFP_KERNEL);
+ touchit213 = kzalloc_obj(*touchit213, GFP_KERNEL);
input_dev = input_allocate_device();
if (!touchit213 || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/touchscreen/touchright.c b/drivers/input/touchscreen/touchright.c
index 9be7c6bf5e7f..0493ead34b34 100644
--- a/drivers/input/touchscreen/touchright.c
+++ b/drivers/input/touchscreen/touchright.c
@@ -102,7 +102,7 @@ static int tr_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *input_dev;
int err;
- tr = kzalloc(sizeof(*tr), GFP_KERNEL);
+ tr = kzalloc_obj(*tr, GFP_KERNEL);
input_dev = input_allocate_device();
if (!tr || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/touchscreen/touchwin.c b/drivers/input/touchscreen/touchwin.c
index 4b92e8711e1d..687fee4a71b9 100644
--- a/drivers/input/touchscreen/touchwin.c
+++ b/drivers/input/touchscreen/touchwin.c
@@ -109,7 +109,7 @@ static int tw_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *input_dev;
int err;
- tw = kzalloc(sizeof(*tw), GFP_KERNEL);
+ tw = kzalloc_obj(*tw, GFP_KERNEL);
input_dev = input_allocate_device();
if (!tw || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/input/touchscreen/tsc40.c b/drivers/input/touchscreen/tsc40.c
index c5dabebaf96d..b83b839d7d5e 100644
--- a/drivers/input/touchscreen/tsc40.c
+++ b/drivers/input/touchscreen/tsc40.c
@@ -83,7 +83,7 @@ static int tsc_connect(struct serio *serio, struct serio_driver *drv)
struct input_dev *input_dev;
int error;
- ptsc = kzalloc(sizeof(*ptsc), GFP_KERNEL);
+ ptsc = kzalloc_obj(*ptsc, GFP_KERNEL);
input_dev = input_allocate_device();
if (!ptsc || !input_dev) {
error = -ENOMEM;
diff --git a/drivers/input/touchscreen/usbtouchscreen.c b/drivers/input/touchscreen/usbtouchscreen.c
index 7567efabe014..01dcf448a025 100644
--- a/drivers/input/touchscreen/usbtouchscreen.c
+++ b/drivers/input/touchscreen/usbtouchscreen.c
@@ -378,7 +378,7 @@ static int mtouch_alloc(struct usbtouch_usb *usbtouch)
{
struct mtouch_priv *priv;
- priv = kmalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kmalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
@@ -938,7 +938,7 @@ static int nexio_alloc(struct usbtouch_usb *usbtouch)
struct nexio_priv *priv;
int ret = -ENOMEM;
- priv = kmalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kmalloc_obj(*priv, GFP_KERNEL);
if (!priv)
goto out_buf;
@@ -1458,7 +1458,7 @@ static int usbtouch_probe(struct usb_interface *intf,
if (!endpoint)
return -ENXIO;
- usbtouch = kzalloc(sizeof(*usbtouch), GFP_KERNEL);
+ usbtouch = kzalloc_obj(*usbtouch, GFP_KERNEL);
input_dev = input_allocate_device();
if (!usbtouch || !input_dev)
goto out_free;
diff --git a/drivers/input/touchscreen/wacom_w8001.c b/drivers/input/touchscreen/wacom_w8001.c
index ed2ca8a689d5..4ddca1128d35 100644
--- a/drivers/input/touchscreen/wacom_w8001.c
+++ b/drivers/input/touchscreen/wacom_w8001.c
@@ -596,7 +596,7 @@ static int w8001_connect(struct serio *serio, struct serio_driver *drv)
char basename[64] = "Wacom Serial";
int err, err_pen, err_touch;
- w8001 = kzalloc(sizeof(*w8001), GFP_KERNEL);
+ w8001 = kzalloc_obj(*w8001, GFP_KERNEL);
input_dev_pen = input_allocate_device();
input_dev_touch = input_allocate_device();
if (!w8001 || !input_dev_pen || !input_dev_touch) {
diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c
index 6cc979b26151..e4e236798357 100644
--- a/drivers/interconnect/core.c
+++ b/drivers/interconnect/core.c
@@ -172,7 +172,7 @@ static struct icc_path *path_init(struct device *dev, struct icc_node *dst,
struct icc_path *path;
int i;
- path = kzalloc(struct_size(path, reqs, num_nodes), GFP_KERNEL);
+ path = kzalloc_flex(*path, reqs, num_nodes, GFP_KERNEL);
if (!path)
return ERR_PTR(-ENOMEM);
@@ -408,7 +408,7 @@ struct icc_node_data *of_icc_get_from_provider(const struct of_phandle_args *spe
return ERR_CAST(node);
if (!data) {
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return ERR_PTR(-ENOMEM);
data->node = node;
@@ -827,7 +827,7 @@ static struct icc_node *icc_node_create_nolock(int id)
if (node)
return node;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/interconnect/debugfs-client.c b/drivers/interconnect/debugfs-client.c
index 24d7b5a57794..227235b4b184 100644
--- a/drivers/interconnect/debugfs-client.c
+++ b/drivers/interconnect/debugfs-client.c
@@ -86,7 +86,7 @@ static int icc_get_set(void *data, u64 val)
goto err_free;
}
- debugfs_path = kzalloc(sizeof(*debugfs_path), GFP_KERNEL);
+ debugfs_path = kzalloc_obj(*debugfs_path, GFP_KERNEL);
if (!debugfs_path) {
ret = -ENOMEM;
goto err_put;
diff --git a/drivers/interconnect/qcom/icc-common.c b/drivers/interconnect/qcom/icc-common.c
index 9b8a9c69e0cb..5f90fcf7b22e 100644
--- a/drivers/interconnect/qcom/icc-common.c
+++ b/drivers/interconnect/qcom/icc-common.c
@@ -19,7 +19,7 @@ struct icc_node_data *qcom_icc_xlate_extended(const struct of_phandle_args *spec
if (IS_ERR(node))
return ERR_CAST(node);
- ndata = kzalloc(sizeof(*ndata), GFP_KERNEL);
+ ndata = kzalloc_obj(*ndata, GFP_KERNEL);
if (!ndata)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c
index 5a797c1b31e2..cdda0eb8056f 100644
--- a/drivers/iommu/amd/init.c
+++ b/drivers/iommu/amd/init.c
@@ -659,9 +659,9 @@ static inline void free_dev_table(struct amd_iommu_pci_seg *pci_seg)
/* Allocate per PCI segment IOMMU rlookup table. */
static inline int __init alloc_rlookup_table(struct amd_iommu_pci_seg *pci_seg)
{
- pci_seg->rlookup_table = kvcalloc(pci_seg->last_bdf + 1,
- sizeof(*pci_seg->rlookup_table),
- GFP_KERNEL);
+ pci_seg->rlookup_table = kvzalloc_objs(*pci_seg->rlookup_table,
+ pci_seg->last_bdf + 1,
+ GFP_KERNEL);
if (pci_seg->rlookup_table == NULL)
return -ENOMEM;
@@ -676,9 +676,9 @@ static inline void free_rlookup_table(struct amd_iommu_pci_seg *pci_seg)
static inline int __init alloc_irq_lookup_table(struct amd_iommu_pci_seg *pci_seg)
{
- pci_seg->irq_lookup_table = kvcalloc(pci_seg->last_bdf + 1,
- sizeof(*pci_seg->irq_lookup_table),
- GFP_KERNEL);
+ pci_seg->irq_lookup_table = kvzalloc_objs(*pci_seg->irq_lookup_table,
+ pci_seg->last_bdf + 1,
+ GFP_KERNEL);
if (pci_seg->irq_lookup_table == NULL)
return -ENOMEM;
@@ -695,9 +695,8 @@ static int __init alloc_alias_table(struct amd_iommu_pci_seg *pci_seg)
{
int i;
- pci_seg->alias_table = kvmalloc_array(pci_seg->last_bdf + 1,
- sizeof(*pci_seg->alias_table),
- GFP_KERNEL);
+ pci_seg->alias_table = kvmalloc_objs(*pci_seg->alias_table,
+ pci_seg->last_bdf + 1, GFP_KERNEL);
if (!pci_seg->alias_table)
return -ENOMEM;
@@ -1285,7 +1284,7 @@ set_dev_entry_from_acpi_range(struct amd_iommu *iommu, u16 first, u16 last,
if (search_ivhd_dte_flags(iommu->pci_seg->id, first, last))
return;
- d = kzalloc(sizeof(struct ivhd_dte_flags), GFP_KERNEL);
+ d = kzalloc_obj(struct ivhd_dte_flags, GFP_KERNEL);
if (!d)
return;
@@ -1357,7 +1356,7 @@ int __init add_special_device(u8 type, u8 id, u32 *devid, bool cmd_line)
return 0;
}
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -1388,7 +1387,7 @@ static int __init add_acpi_hid_device(u8 *hid, u8 *uid, u32 *devid,
return 0;
}
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -1721,7 +1720,7 @@ static struct amd_iommu_pci_seg *__init alloc_pci_segment(u16 id,
if (last_bdf < 0)
return NULL;
- pci_seg = kzalloc(sizeof(struct amd_iommu_pci_seg), GFP_KERNEL);
+ pci_seg = kzalloc_obj(struct amd_iommu_pci_seg, GFP_KERNEL);
if (pci_seg == NULL)
return NULL;
@@ -2041,7 +2040,7 @@ static int __init init_iommu_all(struct acpi_table_header *table)
DUMP_printk(" mmio-addr: %016llx\n",
h->mmio_phys);
- iommu = kzalloc(sizeof(struct amd_iommu), GFP_KERNEL);
+ iommu = kzalloc_obj(struct amd_iommu, GFP_KERNEL);
if (iommu == NULL)
return -ENOMEM;
@@ -2642,7 +2641,7 @@ static int __init init_unity_map_range(struct ivmd_header *m,
if (pci_seg == NULL)
return -ENOMEM;
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (e == NULL)
return -ENOMEM;
diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c
index ab61ef61e670..e26f94feeaa5 100644
--- a/drivers/iommu/amd/iommu.c
+++ b/drivers/iommu/amd/iommu.c
@@ -372,7 +372,7 @@ static struct iommu_dev_data *alloc_dev_data(struct amd_iommu *iommu, u16 devid)
struct iommu_dev_data *dev_data;
struct amd_iommu_pci_seg *pci_seg = iommu->pci_seg;
- dev_data = kzalloc(sizeof(*dev_data), GFP_KERNEL);
+ dev_data = kzalloc_obj(*dev_data, GFP_KERNEL);
if (!dev_data)
return NULL;
@@ -2277,7 +2277,7 @@ static int pdom_attach_iommu(struct amd_iommu *iommu,
goto out_unlock;
}
- pdom_iommu_info = kzalloc(sizeof(*pdom_iommu_info), GFP_ATOMIC);
+ pdom_iommu_info = kzalloc_obj(*pdom_iommu_info, GFP_ATOMIC);
if (!pdom_iommu_info) {
ret = -ENOMEM;
goto out_unlock;
@@ -2547,7 +2547,7 @@ struct protection_domain *protection_domain_alloc(void)
struct protection_domain *domain;
int domid;
- domain = kzalloc(sizeof(*domain), GFP_KERNEL);
+ domain = kzalloc_obj(*domain, GFP_KERNEL);
if (!domain)
return NULL;
@@ -3248,7 +3248,7 @@ static struct irq_remap_table *__alloc_irq_table(int nid, size_t size)
{
struct irq_remap_table *table;
- table = kzalloc(sizeof(*table), GFP_KERNEL);
+ table = kzalloc_obj(*table, GFP_KERNEL);
if (!table)
return NULL;
@@ -3799,15 +3799,14 @@ static int irq_remapping_alloc(struct irq_domain *domain, unsigned int virq,
}
ret = -ENOMEM;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
goto out_free_data;
if (!AMD_IOMMU_GUEST_IR_GA(amd_iommu_guest_ir))
- data->entry = kzalloc(sizeof(union irte), GFP_KERNEL);
+ data->entry = kzalloc_obj(union irte, GFP_KERNEL);
else
- data->entry = kzalloc(sizeof(struct irte_ga),
- GFP_KERNEL);
+ data->entry = kzalloc_obj(struct irte_ga, GFP_KERNEL);
if (!data->entry) {
kfree(data);
goto out_free_data;
diff --git a/drivers/iommu/amd/iommufd.c b/drivers/iommu/amd/iommufd.c
index 96ec6a4a760d..760b3afaaf13 100644
--- a/drivers/iommu/amd/iommufd.c
+++ b/drivers/iommu/amd/iommufd.c
@@ -19,7 +19,7 @@ void *amd_iommufd_hw_info(struct device *dev, u32 *length, enum iommu_hw_info_ty
*type != IOMMU_HW_INFO_TYPE_AMD)
return ERR_PTR(-EOPNOTSUPP);
- hwinfo = kzalloc(sizeof(*hwinfo), GFP_KERNEL);
+ hwinfo = kzalloc_obj(*hwinfo, GFP_KERNEL);
if (!hwinfo)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iommu/amd/nested.c b/drivers/iommu/amd/nested.c
index 66cc36133c8b..1a5ff73db628 100644
--- a/drivers/iommu/amd/nested.c
+++ b/drivers/iommu/amd/nested.c
@@ -68,7 +68,7 @@ static void *gdom_info_load_or_alloc_locked(struct xarray *xa, unsigned long ind
return elm;
xa_unlock(xa);
- elm = kzalloc(sizeof(struct guest_domain_mapping_info), GFP_KERNEL);
+ elm = kzalloc_obj(struct guest_domain_mapping_info, GFP_KERNEL);
xa_lock(xa);
if (!elm)
return ERR_PTR(-ENOMEM);
@@ -102,7 +102,7 @@ amd_iommu_alloc_domain_nested(struct iommufd_viommu *viommu, u32 flags,
if (user_data->type != IOMMU_HWPT_DATA_AMD_GUEST)
return ERR_PTR(-EOPNOTSUPP);
- ndom = kzalloc(sizeof(*ndom), GFP_KERNEL);
+ ndom = kzalloc_obj(*ndom, GFP_KERNEL);
if (!ndom)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iommu/amd/pasid.c b/drivers/iommu/amd/pasid.c
index 77c8e9a91cbc..38cf8f519477 100644
--- a/drivers/iommu/amd/pasid.c
+++ b/drivers/iommu/amd/pasid.c
@@ -121,7 +121,7 @@ int iommu_sva_set_dev_pasid(struct iommu_domain *domain,
return ret;
/* Add PASID to protection domain pasid list */
- pdom_dev_data = kzalloc(sizeof(*pdom_dev_data), GFP_KERNEL);
+ pdom_dev_data = kzalloc_obj(*pdom_dev_data, GFP_KERNEL);
if (pdom_dev_data == NULL)
return ret;
diff --git a/drivers/iommu/apple-dart.c b/drivers/iommu/apple-dart.c
index 83a5aabcd15d..6b679fa53c3e 100644
--- a/drivers/iommu/apple-dart.c
+++ b/drivers/iommu/apple-dart.c
@@ -768,7 +768,7 @@ static struct iommu_domain *apple_dart_domain_alloc_paging(struct device *dev)
{
struct apple_dart_domain *dart_domain;
- dart_domain = kzalloc(sizeof(*dart_domain), GFP_KERNEL);
+ dart_domain = kzalloc_obj(*dart_domain, GFP_KERNEL);
if (!dart_domain)
return NULL;
@@ -812,7 +812,7 @@ static int apple_dart_of_xlate(struct device *dev,
sid = args->args[0];
if (!cfg) {
- cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
+ cfg = kzalloc_obj(*cfg, GFP_KERNEL);
if (!cfg)
return -ENOMEM;
/* Will be ANDed with DART capabilities */
diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c
index 823461a26659..973afced466c 100644
--- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c
+++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-iommufd.c
@@ -23,7 +23,7 @@ void *arm_smmu_hw_info(struct device *dev, u32 *length,
return impl_ops->hw_info(master->smmu, length, type);
}
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return ERR_PTR(-ENOMEM);
@@ -121,7 +121,7 @@ int arm_smmu_attach_prepare_vmaster(struct arm_smmu_attach_state *state,
return ret;
}
- vmaster = kzalloc(sizeof(*vmaster), GFP_KERNEL);
+ vmaster = kzalloc_obj(*vmaster, GFP_KERNEL);
if (!vmaster)
return -ENOMEM;
vmaster->vsmmu = nested_domain->vsmmu;
@@ -261,7 +261,7 @@ arm_vsmmu_alloc_domain_nested(struct iommufd_viommu *viommu, u32 flags,
if (ret)
return ERR_PTR(ret);
- nested_domain = kzalloc(sizeof(*nested_domain), GFP_KERNEL_ACCOUNT);
+ nested_domain = kzalloc_obj(*nested_domain, GFP_KERNEL_ACCOUNT);
if (!nested_domain)
return ERR_PTR(-ENOMEM);
@@ -361,7 +361,7 @@ int arm_vsmmu_cache_invalidate(struct iommufd_viommu *viommu,
struct arm_vsmmu_invalidation_cmd *end;
int ret;
- cmds = kcalloc(array->entry_num, sizeof(*cmds), GFP_KERNEL);
+ cmds = kzalloc_objs(*cmds, array->entry_num, GFP_KERNEL);
if (!cmds)
return -ENOMEM;
cur = cmds;
diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
index b397d1714d97..bee947ad5640 100644
--- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
+++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
@@ -1514,9 +1514,9 @@ static int arm_smmu_alloc_cd_tables(struct arm_smmu_master *master)
cd_table->l2.num_l1_ents =
DIV_ROUND_UP(max_contexts, CTXDESC_L2_ENTRIES);
- cd_table->l2.l2ptrs = kcalloc(cd_table->l2.num_l1_ents,
- sizeof(*cd_table->l2.l2ptrs),
- GFP_KERNEL);
+ cd_table->l2.l2ptrs = kzalloc_objs(*cd_table->l2.l2ptrs,
+ cd_table->l2.num_l1_ents,
+ GFP_KERNEL);
if (!cd_table->l2.l2ptrs)
return -ENOMEM;
@@ -2524,7 +2524,7 @@ struct arm_smmu_domain *arm_smmu_domain_alloc(void)
{
struct arm_smmu_domain *smmu_domain;
- smmu_domain = kzalloc(sizeof(*smmu_domain), GFP_KERNEL);
+ smmu_domain = kzalloc_obj(*smmu_domain, GFP_KERNEL);
if (!smmu_domain)
return ERR_PTR(-ENOMEM);
@@ -2965,7 +2965,7 @@ int arm_smmu_attach_prepare(struct arm_smmu_attach_state *state,
return ret;
}
- master_domain = kzalloc(sizeof(*master_domain), GFP_KERNEL);
+ master_domain = kzalloc_obj(*master_domain, GFP_KERNEL);
if (!master_domain) {
ret = -ENOMEM;
goto err_free_vmaster;
@@ -3517,8 +3517,8 @@ static int arm_smmu_insert_master(struct arm_smmu_device *smmu,
int ret = 0;
struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(master->dev);
- master->streams = kcalloc(fwspec->num_ids, sizeof(*master->streams),
- GFP_KERNEL);
+ master->streams = kzalloc_objs(*master->streams, fwspec->num_ids,
+ GFP_KERNEL);
if (!master->streams)
return -ENOMEM;
master->num_streams = fwspec->num_ids;
@@ -3597,7 +3597,7 @@ static struct iommu_device *arm_smmu_probe_device(struct device *dev)
if (!smmu)
return ERR_PTR(-ENODEV);
- master = kzalloc(sizeof(*master), GFP_KERNEL);
+ master = kzalloc_obj(*master, GFP_KERNEL);
if (!master)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c b/drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c
index 156b87fe456d..c7892443258d 100644
--- a/drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c
+++ b/drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c
@@ -693,7 +693,7 @@ tegra241_vintf_alloc_lvcmdq(struct tegra241_vintf *vintf, u16 lidx)
char header[64];
int ret;
- vcmdq = kzalloc(sizeof(*vcmdq), GFP_KERNEL);
+ vcmdq = kzalloc_obj(*vcmdq, GFP_KERNEL);
if (!vcmdq)
return ERR_PTR(-ENOMEM);
@@ -742,8 +742,8 @@ static int tegra241_cmdqv_init_vintf(struct tegra241_cmdqv *cmdqv, u16 max_idx,
vintf->cmdqv = cmdqv;
vintf->base = cmdqv->base + TEGRA241_VINTF(idx);
- vintf->lvcmdqs = kcalloc(cmdqv->num_lvcmdqs_per_vintf,
- sizeof(*vintf->lvcmdqs), GFP_KERNEL);
+ vintf->lvcmdqs = kzalloc_objs(*vintf->lvcmdqs,
+ cmdqv->num_lvcmdqs_per_vintf, GFP_KERNEL);
if (!vintf->lvcmdqs) {
ida_free(&cmdqv->vintf_ids, idx);
return -ENOMEM;
@@ -818,7 +818,7 @@ static void *tegra241_cmdqv_hw_info(struct arm_smmu_device *smmu, u32 *length,
if (*type != IOMMU_HW_INFO_TYPE_TEGRA241_CMDQV)
return ERR_PTR(-EOPNOTSUPP);
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return ERR_PTR(-ENOMEM);
@@ -860,7 +860,7 @@ static int tegra241_cmdqv_init_structures(struct arm_smmu_device *smmu)
int lidx;
int ret;
- vintf = kzalloc(sizeof(*vintf), GFP_KERNEL);
+ vintf = kzalloc_obj(*vintf, GFP_KERNEL);
if (!vintf)
return -ENOMEM;
@@ -947,7 +947,7 @@ __tegra241_cmdqv_probe(struct arm_smmu_device *smmu, struct resource *res,
1 << FIELD_GET(CMDQV_NUM_SID_PER_VM_LOG2, regval);
cmdqv->vintfs =
- kcalloc(cmdqv->num_vintfs, sizeof(*cmdqv->vintfs), GFP_KERNEL);
+ kzalloc_objs(*cmdqv->vintfs, cmdqv->num_vintfs, GFP_KERNEL);
if (!cmdqv->vintfs)
goto free_irq;
diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu.c b/drivers/iommu/arm/arm-smmu/arm-smmu.c
index 1e218fbea35a..a31e90fcfefe 100644
--- a/drivers/iommu/arm/arm-smmu/arm-smmu.c
+++ b/drivers/iommu/arm/arm-smmu/arm-smmu.c
@@ -927,7 +927,7 @@ static struct iommu_domain *arm_smmu_domain_alloc_paging(struct device *dev)
* We can't really do anything meaningful until we've added a
* master.
*/
- smmu_domain = kzalloc(sizeof(*smmu_domain), GFP_KERNEL);
+ smmu_domain = kzalloc_obj(*smmu_domain, GFP_KERNEL);
if (!smmu_domain)
return NULL;
diff --git a/drivers/iommu/arm/arm-smmu/qcom_iommu.c b/drivers/iommu/arm/arm-smmu/qcom_iommu.c
index c98bed38c58a..7126431c966d 100644
--- a/drivers/iommu/arm/arm-smmu/qcom_iommu.c
+++ b/drivers/iommu/arm/arm-smmu/qcom_iommu.c
@@ -329,7 +329,7 @@ static struct iommu_domain *qcom_iommu_domain_alloc_paging(struct device *dev)
* We can't really do anything meaningful until we've added a
* master.
*/
- qcom_domain = kzalloc(sizeof(*qcom_domain), GFP_KERNEL);
+ qcom_domain = kzalloc_obj(*qcom_domain, GFP_KERNEL);
if (!qcom_domain)
return NULL;
diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index aeaf8fad985c..d1ecb722b546 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -372,7 +372,7 @@ int iommu_get_dma_cookie(struct iommu_domain *domain)
if (domain->cookie_type != IOMMU_COOKIE_NONE)
return -EEXIST;
- cookie = kzalloc(sizeof(*cookie), GFP_KERNEL);
+ cookie = kzalloc_obj(*cookie, GFP_KERNEL);
if (!cookie)
return -ENOMEM;
@@ -404,7 +404,7 @@ int iommu_get_msi_cookie(struct iommu_domain *domain, dma_addr_t base)
if (domain->cookie_type != IOMMU_COOKIE_NONE)
return -EEXIST;
- cookie = kzalloc(sizeof(*cookie), GFP_KERNEL);
+ cookie = kzalloc_obj(*cookie, GFP_KERNEL);
if (!cookie)
return -ENOMEM;
@@ -480,7 +480,7 @@ static int cookie_init_hw_msi_region(struct iommu_dma_cookie *cookie,
num_pages = iova_align(iovad, end - start) >> iova_shift(iovad);
for (i = 0; i < num_pages; i++) {
- msi_page = kmalloc(sizeof(*msi_page), GFP_KERNEL);
+ msi_page = kmalloc_obj(*msi_page, GFP_KERNEL);
if (!msi_page)
return -ENOMEM;
@@ -880,7 +880,7 @@ static struct page **__iommu_dma_alloc_pages(struct device *dev,
if (!order_mask)
return NULL;
- pages = kvcalloc(count, sizeof(*pages), GFP_KERNEL);
+ pages = kvzalloc_objs(*pages, count, GFP_KERNEL);
if (!pages)
return NULL;
@@ -1045,7 +1045,7 @@ struct sg_table *iommu_dma_alloc_noncontiguous(struct device *dev, size_t size,
{
struct dma_sgt_handle *sh;
- sh = kmalloc(sizeof(*sh), gfp);
+ sh = kmalloc_obj(*sh, gfp);
if (!sh)
return NULL;
@@ -2157,7 +2157,7 @@ static struct iommu_dma_msi_page *iommu_dma_get_msi_page(struct device *dev,
if (msi_page->phys == msi_addr)
return msi_page;
- msi_page = kzalloc(sizeof(*msi_page), GFP_KERNEL);
+ msi_page = kzalloc_obj(*msi_page, GFP_KERNEL);
if (!msi_page)
return NULL;
diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
index b512c6b939ac..2e439699382d 100644
--- a/drivers/iommu/exynos-iommu.c
+++ b/drivers/iommu/exynos-iommu.c
@@ -899,7 +899,7 @@ static struct iommu_domain *exynos_iommu_domain_alloc_paging(struct device *dev)
/* Check if correct PTE offsets are initialized */
BUG_ON(PG_ENT_SHIFT < 0 || !dma_dev);
- domain = kzalloc(sizeof(*domain), GFP_KERNEL);
+ domain = kzalloc_obj(*domain, GFP_KERNEL);
if (!domain)
return NULL;
@@ -1451,7 +1451,7 @@ static int exynos_iommu_of_xlate(struct device *dev,
return -ENODEV;
if (!owner) {
- owner = kzalloc(sizeof(*owner), GFP_KERNEL);
+ owner = kzalloc_obj(*owner, GFP_KERNEL);
if (!owner)
return -ENOMEM;
diff --git a/drivers/iommu/fsl_pamu.c b/drivers/iommu/fsl_pamu.c
index f37d3b044131..8db71fe57894 100644
--- a/drivers/iommu/fsl_pamu.c
+++ b/drivers/iommu/fsl_pamu.c
@@ -785,7 +785,7 @@ static int fsl_pamu_probe(struct platform_device *pdev)
goto error;
}
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data) {
ret = -ENOMEM;
goto error;
diff --git a/drivers/iommu/hyperv-iommu.c b/drivers/iommu/hyperv-iommu.c
index 0961ac805944..b776c52aca6b 100644
--- a/drivers/iommu/hyperv-iommu.c
+++ b/drivers/iommu/hyperv-iommu.c
@@ -276,7 +276,7 @@ static int hyperv_root_irq_remapping_alloc(struct irq_domain *domain,
if (ret < 0)
return ret;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data) {
irq_domain_free_irqs_common(domain, virq, nr_irqs);
return -ENOMEM;
diff --git a/drivers/iommu/intel/cache.c b/drivers/iommu/intel/cache.c
index 385ae5cfb30d..e43c93fb9b1d 100644
--- a/drivers/iommu/intel/cache.c
+++ b/drivers/iommu/intel/cache.c
@@ -49,7 +49,7 @@ int cache_tag_assign(struct dmar_domain *domain, u16 did, struct device *dev,
struct list_head *prev;
unsigned long flags;
- tag = kzalloc(sizeof(*tag), GFP_KERNEL);
+ tag = kzalloc_obj(*tag, GFP_KERNEL);
if (!tag)
return -ENOMEM;
@@ -123,7 +123,7 @@ static int domain_qi_batch_alloc(struct dmar_domain *domain)
if (domain->qi_batch)
goto out_unlock;
- domain->qi_batch = kzalloc(sizeof(*domain->qi_batch), GFP_ATOMIC);
+ domain->qi_batch = kzalloc_obj(*domain->qi_batch, GFP_ATOMIC);
if (!domain->qi_batch)
ret = -ENOMEM;
out_unlock:
diff --git a/drivers/iommu/intel/dmar.c b/drivers/iommu/intel/dmar.c
index ec975c73cfe6..4a2143036b94 100644
--- a/drivers/iommu/intel/dmar.c
+++ b/drivers/iommu/intel/dmar.c
@@ -99,7 +99,7 @@ void *dmar_alloc_dev_scope(void *start, void *end, int *cnt)
if (*cnt == 0)
return NULL;
- return kcalloc(*cnt, sizeof(struct dmar_dev_scope), GFP_KERNEL);
+ return kzalloc_objs(struct dmar_dev_scope, *cnt, GFP_KERNEL);
}
void dmar_free_dev_scope(struct dmar_dev_scope **devices, int *cnt)
@@ -1046,7 +1046,7 @@ static int alloc_iommu(struct dmar_drhd_unit *drhd)
return -EINVAL;
}
- iommu = kzalloc(sizeof(*iommu), GFP_KERNEL);
+ iommu = kzalloc_obj(*iommu, GFP_KERNEL);
if (!iommu)
return -ENOMEM;
@@ -1692,7 +1692,7 @@ int dmar_enable_qi(struct intel_iommu *iommu)
if (iommu->qi)
return 0;
- iommu->qi = kmalloc(sizeof(*qi), GFP_ATOMIC);
+ iommu->qi = kmalloc_obj(*qi, GFP_ATOMIC);
if (!iommu->qi)
return -ENOMEM;
@@ -1713,7 +1713,7 @@ int dmar_enable_qi(struct intel_iommu *iommu)
qi->desc = desc;
- qi->desc_status = kcalloc(QI_LENGTH, sizeof(int), GFP_ATOMIC);
+ qi->desc_status = kzalloc_objs(int, QI_LENGTH, GFP_ATOMIC);
if (!qi->desc_status) {
iommu_free_pages(qi->desc);
kfree(qi);
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
index 705828b06e32..3505ced050f0 100644
--- a/drivers/iommu/intel/iommu.c
+++ b/drivers/iommu/intel/iommu.c
@@ -1030,7 +1030,7 @@ int domain_attach_iommu(struct dmar_domain *domain, struct intel_iommu *iommu)
if (domain->domain.type == IOMMU_DOMAIN_SVA)
return 0;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
@@ -1926,7 +1926,7 @@ int __init dmar_parse_one_rmrr(struct acpi_dmar_header *header, void *arg)
add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
}
- rmrru = kzalloc(sizeof(*rmrru), GFP_KERNEL);
+ rmrru = kzalloc_obj(*rmrru, GFP_KERNEL);
if (!rmrru)
goto out;
@@ -2779,7 +2779,7 @@ static struct dmar_domain *paging_domain_alloc(void)
{
struct dmar_domain *domain;
- domain = kzalloc(sizeof(*domain), GFP_KERNEL);
+ domain = kzalloc_obj(*domain, GFP_KERNEL);
if (!domain)
return ERR_PTR(-ENOMEM);
@@ -3237,7 +3237,7 @@ static struct iommu_device *intel_iommu_probe_device(struct device *dev)
if (!iommu || !iommu->iommu.ops)
return ERR_PTR(-ENODEV);
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return ERR_PTR(-ENOMEM);
@@ -3576,7 +3576,7 @@ domain_add_dev_pasid(struct iommu_domain *domain,
unsigned long flags;
int ret;
- dev_pasid = kzalloc(sizeof(*dev_pasid), GFP_KERNEL);
+ dev_pasid = kzalloc_obj(*dev_pasid, GFP_KERNEL);
if (!dev_pasid)
return ERR_PTR(-ENOMEM);
@@ -3672,7 +3672,7 @@ static void *intel_iommu_hw_info(struct device *dev, u32 *length,
*type != IOMMU_HW_INFO_TYPE_INTEL_VTD)
return ERR_PTR(-EOPNOTSUPP);
- vtd = kzalloc(sizeof(*vtd), GFP_KERNEL);
+ vtd = kzalloc_obj(*vtd, GFP_KERNEL);
if (!vtd)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iommu/intel/irq_remapping.c b/drivers/iommu/intel/irq_remapping.c
index ecb591e98565..105958b4a29e 100644
--- a/drivers/iommu/intel/irq_remapping.c
+++ b/drivers/iommu/intel/irq_remapping.c
@@ -533,7 +533,7 @@ static int intel_setup_irq_remapping(struct intel_iommu *iommu)
if (iommu->ir_table)
return 0;
- ir_table = kzalloc(sizeof(struct ir_table), GFP_KERNEL);
+ ir_table = kzalloc_obj(struct ir_table, GFP_KERNEL);
if (!ir_table)
return -ENOMEM;
@@ -1426,7 +1426,7 @@ static int intel_irq_remapping_alloc(struct irq_domain *domain,
return ret;
ret = -ENOMEM;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
goto out_free_parent;
@@ -1448,7 +1448,7 @@ static int intel_irq_remapping_alloc(struct irq_domain *domain,
}
if (i > 0) {
- ird = kzalloc(sizeof(*ird), GFP_KERNEL);
+ ird = kzalloc_obj(*ird, GFP_KERNEL);
if (!ird)
goto out_free_data;
/* Initialize the common data */
diff --git a/drivers/iommu/intel/nested.c b/drivers/iommu/intel/nested.c
index e9a440e9c960..2b979bec56ce 100644
--- a/drivers/iommu/intel/nested.c
+++ b/drivers/iommu/intel/nested.c
@@ -218,7 +218,7 @@ intel_iommu_domain_alloc_nested(struct device *dev, struct iommu_domain *parent,
if (ret)
return ERR_PTR(ret);
- domain = kzalloc(sizeof(*domain), GFP_KERNEL_ACCOUNT);
+ domain = kzalloc_obj(*domain, GFP_KERNEL_ACCOUNT);
if (!domain)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iommu/intel/pasid.c b/drivers/iommu/intel/pasid.c
index b63a71904cfb..5ffe84dee862 100644
--- a/drivers/iommu/intel/pasid.c
+++ b/drivers/iommu/intel/pasid.c
@@ -50,7 +50,7 @@ int intel_pasid_alloc_table(struct device *dev)
if (WARN_ON(info->pasid_table))
return -EEXIST;
- pasid_table = kzalloc(sizeof(*pasid_table), GFP_KERNEL);
+ pasid_table = kzalloc_obj(*pasid_table, GFP_KERNEL);
if (!pasid_table)
return -ENOMEM;
diff --git a/drivers/iommu/intel/perf.c b/drivers/iommu/intel/perf.c
index dceeadc3ee7c..02168f2f20a4 100644
--- a/drivers/iommu/intel/perf.c
+++ b/drivers/iommu/intel/perf.c
@@ -33,8 +33,8 @@ int dmar_latency_enable(struct intel_iommu *iommu, enum latency_type type)
spin_lock_irqsave(&latency_lock, flags);
if (!iommu->perf_statistic) {
- iommu->perf_statistic = kcalloc(DMAR_LATENCY_NUM, sizeof(*lstat),
- GFP_ATOMIC);
+ iommu->perf_statistic = kzalloc_objs(*lstat, DMAR_LATENCY_NUM,
+ GFP_ATOMIC);
if (!iommu->perf_statistic) {
ret = -ENOMEM;
goto unlock_out;
diff --git a/drivers/iommu/intel/perfmon.c b/drivers/iommu/intel/perfmon.c
index 75f493bcb353..76b62f2c8d92 100644
--- a/drivers/iommu/intel/perfmon.c
+++ b/drivers/iommu/intel/perfmon.c
@@ -591,7 +591,7 @@ int alloc_iommu_pmu(struct intel_iommu *iommu)
if (!ecmd_has_pmu_essential(iommu))
return -ENODEV;
- iommu_pmu = kzalloc(sizeof(*iommu_pmu), GFP_KERNEL);
+ iommu_pmu = kzalloc_obj(*iommu_pmu, GFP_KERNEL);
if (!iommu_pmu)
return -ENOMEM;
diff --git a/drivers/iommu/intel/svm.c b/drivers/iommu/intel/svm.c
index 71de7947971f..be165cb9d01e 100644
--- a/drivers/iommu/intel/svm.c
+++ b/drivers/iommu/intel/svm.c
@@ -210,7 +210,7 @@ struct iommu_domain *intel_svm_domain_alloc(struct device *dev,
if (ret)
return ERR_PTR(ret);
- domain = kzalloc(sizeof(*domain), GFP_KERNEL);
+ domain = kzalloc_obj(*domain, GFP_KERNEL);
if (!domain)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iommu/io-pgfault.c b/drivers/iommu/io-pgfault.c
index 8b5926c1452e..a0d8fd7f2e84 100644
--- a/drivers/iommu/io-pgfault.c
+++ b/drivers/iommu/io-pgfault.c
@@ -65,7 +65,7 @@ static int report_partial_fault(struct iommu_fault_param *fault_param,
{
struct iopf_fault *iopf;
- iopf = kzalloc(sizeof(*iopf), GFP_KERNEL);
+ iopf = kzalloc_obj(*iopf, GFP_KERNEL);
if (!iopf)
return -ENOMEM;
@@ -85,7 +85,7 @@ static struct iopf_group *iopf_group_alloc(struct iommu_fault_param *iopf_param,
struct iopf_fault *iopf, *next;
struct iopf_group *group;
- group = kzalloc(sizeof(*group), GFP_KERNEL);
+ group = kzalloc_obj(*group, GFP_KERNEL);
if (!group) {
/*
* We always need to construct the group as we need it to abort
@@ -400,7 +400,7 @@ int iopf_queue_add_device(struct iopf_queue *queue, struct device *dev)
goto done_unlock;
}
- fault_param = kzalloc(sizeof(*fault_param), GFP_KERNEL);
+ fault_param = kzalloc_obj(*fault_param, GFP_KERNEL);
if (!fault_param) {
ret = -ENOMEM;
goto done_unlock;
@@ -503,7 +503,7 @@ struct iopf_queue *iopf_queue_alloc(const char *name)
{
struct iopf_queue *queue;
- queue = kzalloc(sizeof(*queue), GFP_KERNEL);
+ queue = kzalloc_obj(*queue, GFP_KERNEL);
if (!queue)
return NULL;
diff --git a/drivers/iommu/io-pgtable-arm-v7s.c b/drivers/iommu/io-pgtable-arm-v7s.c
index 523355e91a2c..67ce99ca82b3 100644
--- a/drivers/iommu/io-pgtable-arm-v7s.c
+++ b/drivers/iommu/io-pgtable-arm-v7s.c
@@ -692,7 +692,7 @@ static struct io_pgtable *arm_v7s_alloc_pgtable(struct io_pgtable_cfg *cfg,
!arm_v7s_is_mtk_enabled(cfg))
return NULL;
- data = kmalloc(sizeof(*data), GFP_KERNEL);
+ data = kmalloc_obj(*data, GFP_KERNEL);
if (!data)
return NULL;
diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c
index 05d63fe92e43..c5076caf17aa 100644
--- a/drivers/iommu/io-pgtable-arm.c
+++ b/drivers/iommu/io-pgtable-arm.c
@@ -930,7 +930,7 @@ arm_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg)
if (cfg->oas > ARM_LPAE_MAX_ADDR_BITS)
return NULL;
- data = kmalloc(sizeof(*data), GFP_KERNEL);
+ data = kmalloc_obj(*data, GFP_KERNEL);
if (!data)
return NULL;
diff --git a/drivers/iommu/io-pgtable-dart.c b/drivers/iommu/io-pgtable-dart.c
index 54d287cc0dd1..d31f00ff1206 100644
--- a/drivers/iommu/io-pgtable-dart.c
+++ b/drivers/iommu/io-pgtable-dart.c
@@ -388,7 +388,7 @@ dart_alloc_pgtable(struct io_pgtable_cfg *cfg)
if (tbl_bits > max_tbl_bits)
return NULL;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return NULL;
diff --git a/drivers/iommu/iommu-sva.c b/drivers/iommu/iommu-sva.c
index e1e63c2be82b..6f3b26a823ec 100644
--- a/drivers/iommu/iommu-sva.c
+++ b/drivers/iommu/iommu-sva.c
@@ -35,7 +35,7 @@ static struct iommu_mm_data *iommu_alloc_mm_data(struct mm_struct *mm, struct de
return iommu_mm;
}
- iommu_mm = kzalloc(sizeof(struct iommu_mm_data), GFP_KERNEL);
+ iommu_mm = kzalloc_obj(struct iommu_mm_data, GFP_KERNEL);
if (!iommu_mm)
return ERR_PTR(-ENOMEM);
@@ -108,7 +108,7 @@ struct iommu_sva *iommu_sva_bind_device(struct device *dev, struct mm_struct *mm
goto out_unlock;
}
- handle = kzalloc(sizeof(*handle), GFP_KERNEL);
+ handle = kzalloc_obj(*handle, GFP_KERNEL);
if (!handle) {
ret = -ENOMEM;
goto out_unlock;
diff --git a/drivers/iommu/iommu-sysfs.c b/drivers/iommu/iommu-sysfs.c
index 170022c09536..cf72d58fcb7c 100644
--- a/drivers/iommu/iommu-sysfs.c
+++ b/drivers/iommu/iommu-sysfs.c
@@ -59,7 +59,7 @@ int iommu_device_sysfs_add(struct iommu_device *iommu,
va_list vargs;
int ret;
- iommu->dev = kzalloc(sizeof(*iommu->dev), GFP_KERNEL);
+ iommu->dev = kzalloc_obj(*iommu->dev, GFP_KERNEL);
if (!iommu->dev)
return -ENOMEM;
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index 4926a43118e6..1a98d65fb35d 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -233,7 +233,7 @@ static int __init iommu_subsys_init(void)
(iommu_cmd_line & IOMMU_CMD_LINE_STRICT) ?
" (set via kernel command line)" : "");
- nb = kcalloc(ARRAY_SIZE(iommu_buses), sizeof(*nb), GFP_KERNEL);
+ nb = kzalloc_objs(*nb, ARRAY_SIZE(iommu_buses), GFP_KERNEL);
if (!nb)
return -ENOMEM;
@@ -383,7 +383,7 @@ static struct dev_iommu *dev_iommu_get(struct device *dev)
if (param)
return param;
- param = kzalloc(sizeof(*param), GFP_KERNEL);
+ param = kzalloc_obj(*param, GFP_KERNEL);
if (!param)
return NULL;
@@ -1053,7 +1053,7 @@ struct iommu_group *iommu_group_alloc(void)
struct iommu_group *group;
int ret;
- group = kzalloc(sizeof(*group), GFP_KERNEL);
+ group = kzalloc_obj(*group, GFP_KERNEL);
if (!group)
return ERR_PTR(-ENOMEM);
@@ -1244,7 +1244,7 @@ static struct group_device *iommu_group_alloc_device(struct iommu_group *group,
int ret, i = 0;
struct group_device *device;
- device = kzalloc(sizeof(*device), GFP_KERNEL);
+ device = kzalloc_obj(*device, GFP_KERNEL);
if (!device)
return ERR_PTR(-ENOMEM);
@@ -2939,7 +2939,7 @@ struct iommu_resv_region *iommu_alloc_resv_region(phys_addr_t start,
{
struct iommu_resv_region *region;
- region = kzalloc(sizeof(*region), gfp);
+ region = kzalloc_obj(*region, gfp);
if (!region)
return NULL;
@@ -3010,7 +3010,7 @@ int iommu_fwspec_init(struct device *dev, struct fwnode_handle *iommu_fwnode)
return -ENOMEM;
/* Preallocate for the overwhelmingly common case of 1 ID */
- fwspec = kzalloc(struct_size(fwspec, ids, 1), GFP_KERNEL);
+ fwspec = kzalloc_flex(*fwspec, ids, 1, GFP_KERNEL);
if (!fwspec)
return -ENOMEM;
diff --git a/drivers/iommu/iommufd/device.c b/drivers/iommu/iommufd/device.c
index 4c842368289f..5a2628854a05 100644
--- a/drivers/iommu/iommufd/device.c
+++ b/drivers/iommu/iommufd/device.c
@@ -87,7 +87,7 @@ static struct iommufd_group *iommufd_get_group(struct iommufd_ctx *ictx,
}
xa_unlock(&ictx->groups);
- new_igroup = kzalloc(sizeof(*new_igroup), GFP_KERNEL);
+ new_igroup = kzalloc_obj(*new_igroup, GFP_KERNEL);
if (!new_igroup) {
iommu_group_put(group);
return ERR_PTR(-ENOMEM);
@@ -508,7 +508,7 @@ static int iommufd_hwpt_attach_device(struct iommufd_hw_pagetable *hwpt,
if (rc)
return rc;
- handle = kzalloc(sizeof(*handle), GFP_KERNEL);
+ handle = kzalloc_obj(*handle, GFP_KERNEL);
if (!handle)
return -ENOMEM;
@@ -575,7 +575,7 @@ static int iommufd_hwpt_replace_device(struct iommufd_device *idev,
old_handle = iommufd_device_get_attach_handle(idev, pasid);
- handle = kzalloc(sizeof(*handle), GFP_KERNEL);
+ handle = kzalloc_obj(*handle, GFP_KERNEL);
if (!handle)
return -ENOMEM;
@@ -619,7 +619,7 @@ int iommufd_hw_pagetable_attach(struct iommufd_hw_pagetable *hwpt,
}
if (!attach) {
- attach = kzalloc(sizeof(*attach), GFP_KERNEL);
+ attach = kzalloc_obj(*attach, GFP_KERNEL);
if (!attach) {
rc = -ENOMEM;
goto err_release_pasid;
diff --git a/drivers/iommu/iommufd/driver.c b/drivers/iommu/iommufd/driver.c
index 21d4a35538f6..b71fb2472945 100644
--- a/drivers/iommu/iommufd/driver.c
+++ b/drivers/iommu/iommufd/driver.c
@@ -155,7 +155,7 @@ int iommufd_viommu_report_event(struct iommufd_viommu *viommu,
goto out_set_header;
}
- vevent = kzalloc(struct_size(vevent, event_data, data_len), GFP_ATOMIC);
+ vevent = kzalloc_flex(*vevent, event_data, data_len, GFP_ATOMIC);
if (!vevent) {
rc = -ENOMEM;
vevent = &veventq->lost_events_header;
@@ -202,7 +202,7 @@ iommufd_sw_msi_get_map(struct iommufd_ctx *ictx, phys_addr_t msi_addr,
BITS_PER_BYTE * sizeof_field(struct iommufd_sw_msi_maps, bitmap))
return ERR_PTR(-EOVERFLOW);
- cur = kzalloc(sizeof(*cur), GFP_KERNEL);
+ cur = kzalloc_obj(*cur, GFP_KERNEL);
if (!cur)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iommu/iommufd/eventq.c b/drivers/iommu/iommufd/eventq.c
index e23d9ee4fe38..f1e686b3a265 100644
--- a/drivers/iommu/iommufd/eventq.c
+++ b/drivers/iommu/iommufd/eventq.c
@@ -262,7 +262,7 @@ iommufd_veventq_deliver_fetch(struct iommufd_veventq *veventq)
next = list_first_entry(list, struct iommufd_vevent, node);
/* Make a copy of the lost_events_header for copy_to_user */
if (next == &veventq->lost_events_header) {
- vevent = kzalloc(sizeof(*vevent), GFP_ATOMIC);
+ vevent = kzalloc_obj(*vevent, GFP_ATOMIC);
if (!vevent)
goto out_unlock;
}
diff --git a/drivers/iommu/iommufd/io_pagetable.c b/drivers/iommu/iommufd/io_pagetable.c
index 436992331111..ee003bb2f647 100644
--- a/drivers/iommu/iommufd/io_pagetable.c
+++ b/drivers/iommu/iommufd/io_pagetable.c
@@ -245,7 +245,7 @@ static struct iopt_area *iopt_area_alloc(void)
{
struct iopt_area *area;
- area = kzalloc(sizeof(*area), GFP_KERNEL_ACCOUNT);
+ area = kzalloc_obj(*area, GFP_KERNEL_ACCOUNT);
if (!area)
return NULL;
RB_CLEAR_NODE(&area->node.rb);
@@ -715,7 +715,7 @@ int iopt_get_pages(struct io_pagetable *iopt, unsigned long iova,
struct iopt_pages_list *elm;
unsigned long last = min(last_iova, iopt_area_last_iova(area));
- elm = kzalloc(sizeof(*elm), GFP_KERNEL_ACCOUNT);
+ elm = kzalloc_obj(*elm, GFP_KERNEL_ACCOUNT);
if (!elm) {
rc = -ENOMEM;
goto err_free;
@@ -888,7 +888,7 @@ int iopt_reserve_iova(struct io_pagetable *iopt, unsigned long start,
iopt_allowed_iter_first(iopt, start, last))
return -EADDRINUSE;
- reserved = kzalloc(sizeof(*reserved), GFP_KERNEL_ACCOUNT);
+ reserved = kzalloc_obj(*reserved, GFP_KERNEL_ACCOUNT);
if (!reserved)
return -ENOMEM;
reserved->node.start = start;
diff --git a/drivers/iommu/iommufd/ioas.c b/drivers/iommu/iommufd/ioas.c
index f4721afedadc..fed06c2b728e 100644
--- a/drivers/iommu/iommufd/ioas.c
+++ b/drivers/iommu/iommufd/ioas.c
@@ -132,7 +132,7 @@ static int iommufd_ioas_load_iovas(struct rb_root_cached *itree,
if (interval_tree_iter_first(itree, range.start, range.last))
return -EINVAL;
- allowed = kzalloc(sizeof(*allowed), GFP_KERNEL_ACCOUNT);
+ allowed = kzalloc_obj(*allowed, GFP_KERNEL_ACCOUNT);
if (!allowed)
return -ENOMEM;
allowed->node.start = range.start;
diff --git a/drivers/iommu/iommufd/iova_bitmap.c b/drivers/iommu/iommufd/iova_bitmap.c
index b5b67a9d3fb3..151285e0521e 100644
--- a/drivers/iommu/iommufd/iova_bitmap.c
+++ b/drivers/iommu/iommufd/iova_bitmap.c
@@ -247,7 +247,7 @@ struct iova_bitmap *iova_bitmap_alloc(unsigned long iova, size_t length,
struct iova_bitmap *bitmap;
int rc;
- bitmap = kzalloc(sizeof(*bitmap), GFP_KERNEL);
+ bitmap = kzalloc_obj(*bitmap, GFP_KERNEL);
if (!bitmap)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iommu/iommufd/main.c b/drivers/iommu/iommufd/main.c
index 5cc4b08c25f5..8c6d43601afb 100644
--- a/drivers/iommu/iommufd/main.c
+++ b/drivers/iommu/iommufd/main.c
@@ -296,7 +296,7 @@ static int iommufd_fops_open(struct inode *inode, struct file *filp)
{
struct iommufd_ctx *ictx;
- ictx = kzalloc(sizeof(*ictx), GFP_KERNEL_ACCOUNT);
+ ictx = kzalloc_obj(*ictx, GFP_KERNEL_ACCOUNT);
if (!ictx)
return -ENOMEM;
diff --git a/drivers/iommu/iommufd/pages.c b/drivers/iommu/iommufd/pages.c
index f863fea75b98..38efabe95dba 100644
--- a/drivers/iommu/iommufd/pages.c
+++ b/drivers/iommu/iommufd/pages.c
@@ -1372,7 +1372,7 @@ static struct iopt_pages *iopt_alloc_pages(unsigned long start_byte,
if (length > SIZE_MAX - PAGE_SIZE || length == 0)
return ERR_PTR(-EINVAL);
- pages = kzalloc(sizeof(*pages), GFP_KERNEL_ACCOUNT);
+ pages = kzalloc_obj(*pages, GFP_KERNEL_ACCOUNT);
if (!pages)
return ERR_PTR(-ENOMEM);
@@ -1575,7 +1575,7 @@ int iopt_dmabuf_track_domain(struct iopt_pages *pages, struct iopt_area *area,
if (WARN_ON(track->domain == domain && track->area == area))
return -EINVAL;
- track = kzalloc(sizeof(*track), GFP_KERNEL);
+ track = kzalloc_obj(*track, GFP_KERNEL);
if (!track)
return -ENOMEM;
track->domain = domain;
@@ -2455,7 +2455,7 @@ int iopt_area_add_access(struct iopt_area *area, unsigned long start_index,
return 0;
}
- access = kzalloc(sizeof(*access), GFP_KERNEL_ACCOUNT);
+ access = kzalloc_obj(*access, GFP_KERNEL_ACCOUNT);
if (!access) {
rc = -ENOMEM;
goto err_unlock;
diff --git a/drivers/iommu/iommufd/selftest.c b/drivers/iommu/iommufd/selftest.c
index 989d8c4c60a7..530202748016 100644
--- a/drivers/iommu/iommufd/selftest.c
+++ b/drivers/iommu/iommufd/selftest.c
@@ -308,7 +308,7 @@ static void *mock_domain_hw_info(struct device *dev, u32 *length,
*type != IOMMU_HW_INFO_TYPE_SELFTEST)
return ERR_PTR(-EOPNOTSUPP);
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return ERR_PTR(-ENOMEM);
@@ -353,7 +353,7 @@ __mock_domain_alloc_nested(const struct iommu_user_data *user_data)
if (rc)
return ERR_PTR(rc);
- mock_nested = kzalloc(sizeof(*mock_nested), GFP_KERNEL);
+ mock_nested = kzalloc_obj(*mock_nested, GFP_KERNEL);
if (!mock_nested)
return ERR_PTR(-ENOMEM);
mock_nested->domain.ops = &domain_nested_ops;
@@ -441,7 +441,7 @@ mock_domain_alloc_pgtable(struct device *dev,
struct mock_iommu_domain *mock;
int rc;
- mock = kzalloc(sizeof(*mock), GFP_KERNEL);
+ mock = kzalloc_obj(*mock, GFP_KERNEL);
if (!mock)
return ERR_PTR(-ENOMEM);
mock->domain.type = IOMMU_DOMAIN_UNMANAGED;
@@ -674,7 +674,7 @@ static int mock_viommu_cache_invalidate(struct iommufd_viommu *viommu,
return 0;
}
- cmds = kcalloc(array->entry_num, sizeof(*cmds), GFP_KERNEL);
+ cmds = kzalloc_objs(*cmds, array->entry_num, GFP_KERNEL);
if (!cmds)
return -ENOMEM;
cur = cmds;
@@ -1023,7 +1023,7 @@ static struct mock_dev *mock_dev_create(unsigned long dev_flags)
if (dev_flags & ~valid_flags)
return ERR_PTR(-EINVAL);
- mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
+ mdev = kzalloc_obj(*mdev, GFP_KERNEL);
if (!mdev)
return ERR_PTR(-ENOMEM);
@@ -1448,7 +1448,7 @@ static struct selftest_access *iommufd_test_alloc_access(void)
struct selftest_access *staccess;
struct file *filep;
- staccess = kzalloc(sizeof(*staccess), GFP_KERNEL_ACCOUNT);
+ staccess = kzalloc_obj(*staccess, GFP_KERNEL_ACCOUNT);
if (!staccess)
return ERR_PTR(-ENOMEM);
INIT_LIST_HEAD(&staccess->items);
@@ -1592,7 +1592,7 @@ static int iommufd_test_access_pages(struct iommufd_ucmd *ucmd,
npages = (ALIGN(iova + length, PAGE_SIZE) -
ALIGN_DOWN(iova, PAGE_SIZE)) /
PAGE_SIZE;
- pages = kvcalloc(npages, sizeof(*pages), GFP_KERNEL_ACCOUNT);
+ pages = kvzalloc_objs(*pages, npages, GFP_KERNEL_ACCOUNT);
if (!pages) {
rc = -ENOMEM;
goto out_put;
@@ -1622,7 +1622,7 @@ static int iommufd_test_access_pages(struct iommufd_ucmd *ucmd,
goto out_unaccess;
}
- item = kzalloc(sizeof(*item), GFP_KERNEL_ACCOUNT);
+ item = kzalloc_obj(*item, GFP_KERNEL_ACCOUNT);
if (!item) {
rc = -ENOMEM;
goto out_unaccess;
@@ -2032,7 +2032,7 @@ static int iommufd_test_dmabuf_get(struct iommufd_ucmd *ucmd,
if (len == 0 || len > PAGE_SIZE * 512)
return -EINVAL;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/iommu/iommufd/viommu.c b/drivers/iommu/iommufd/viommu.c
index 462b457ffd0c..4081deda9b33 100644
--- a/drivers/iommu/iommufd/viommu.c
+++ b/drivers/iommu/iommufd/viommu.c
@@ -312,7 +312,7 @@ iommufd_hw_queue_alloc_phys(struct iommu_hw_queue_alloc *cmd,
* Use kvcalloc() to avoid memory fragmentation for a large page array.
* Set __GFP_NOWARN to avoid syzkaller blowups
*/
- pages = kvcalloc(max_npages, sizeof(*pages), GFP_KERNEL | __GFP_NOWARN);
+ pages = kvzalloc_objs(*pages, max_npages, GFP_KERNEL | __GFP_NOWARN);
if (!pages)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iommu/iova.c b/drivers/iommu/iova.c
index 18f839721813..ac9d6a4c1432 100644
--- a/drivers/iommu/iova.c
+++ b/drivers/iommu/iova.c
@@ -715,9 +715,8 @@ int iova_domain_init_rcaches(struct iova_domain *iovad)
unsigned int cpu;
int i, ret;
- iovad->rcaches = kcalloc(IOVA_RANGE_CACHE_MAX_SIZE,
- sizeof(struct iova_rcache),
- GFP_KERNEL);
+ iovad->rcaches = kzalloc_objs(struct iova_rcache,
+ IOVA_RANGE_CACHE_MAX_SIZE, GFP_KERNEL);
if (!iovad->rcaches)
return -ENOMEM;
diff --git a/drivers/iommu/ipmmu-vmsa.c b/drivers/iommu/ipmmu-vmsa.c
index ca848288dbf2..bd18c3a7ee54 100644
--- a/drivers/iommu/ipmmu-vmsa.c
+++ b/drivers/iommu/ipmmu-vmsa.c
@@ -566,7 +566,7 @@ static struct iommu_domain *ipmmu_domain_alloc_paging(struct device *dev)
{
struct ipmmu_vmsa_domain *domain;
- domain = kzalloc(sizeof(*domain), GFP_KERNEL);
+ domain = kzalloc_obj(*domain, GFP_KERNEL);
if (!domain)
return NULL;
diff --git a/drivers/iommu/msm_iommu.c b/drivers/iommu/msm_iommu.c
index 819add75a665..00b4ea90e500 100644
--- a/drivers/iommu/msm_iommu.c
+++ b/drivers/iommu/msm_iommu.c
@@ -306,7 +306,7 @@ static struct iommu_domain *msm_iommu_domain_alloc_paging(struct device *dev)
{
struct msm_priv *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
goto fail_nomem;
@@ -605,7 +605,7 @@ static int insert_iommu_master(struct device *dev,
int sid;
if (list_empty(&(*iommu)->ctx_list)) {
- master = kzalloc(sizeof(*master), GFP_ATOMIC);
+ master = kzalloc_obj(*master, GFP_ATOMIC);
if (!master) {
dev_err(dev, "Failed to allocate iommu_master\n");
return -ENOMEM;
diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
index 60fcd3d3b5eb..6dd60f4a8087 100644
--- a/drivers/iommu/mtk_iommu.c
+++ b/drivers/iommu/mtk_iommu.c
@@ -704,7 +704,7 @@ static struct iommu_domain *mtk_iommu_domain_alloc_paging(struct device *dev)
{
struct mtk_iommu_domain *dom;
- dom = kzalloc(sizeof(*dom), GFP_KERNEL);
+ dom = kzalloc_obj(*dom, GFP_KERNEL);
if (!dom)
return NULL;
mutex_init(&dom->mutex);
diff --git a/drivers/iommu/mtk_iommu_v1.c b/drivers/iommu/mtk_iommu_v1.c
index c8d8eff5373d..e5ad7fa6e4e7 100644
--- a/drivers/iommu/mtk_iommu_v1.c
+++ b/drivers/iommu/mtk_iommu_v1.c
@@ -284,7 +284,7 @@ static struct iommu_domain *mtk_iommu_v1_domain_alloc_paging(struct device *dev)
{
struct mtk_iommu_v1_domain *dom;
- dom = kzalloc(sizeof(*dom), GFP_KERNEL);
+ dom = kzalloc_obj(*dom, GFP_KERNEL);
if (!dom)
return NULL;
diff --git a/drivers/iommu/omap-iommu-debug.c b/drivers/iommu/omap-iommu-debug.c
index 259f65291d90..b0853f69f98d 100644
--- a/drivers/iommu/omap-iommu-debug.c
+++ b/drivers/iommu/omap-iommu-debug.c
@@ -147,7 +147,7 @@ static size_t omap_dump_tlb_entries(struct omap_iommu *obj, struct seq_file *s)
num = obj->nr_tlb_entries;
- cr = kcalloc(num, sizeof(*cr), GFP_KERNEL);
+ cr = kzalloc_objs(*cr, num, GFP_KERNEL);
if (!cr)
return 0;
diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c
index 768973b7e511..f4fd0fba6a8c 100644
--- a/drivers/iommu/omap-iommu.c
+++ b/drivers/iommu/omap-iommu.c
@@ -311,7 +311,7 @@ static struct cr_regs *iotlb_alloc_cr(struct omap_iommu *obj,
return ERR_PTR(-EINVAL);
}
- cr = kmalloc(sizeof(*cr), GFP_KERNEL);
+ cr = kmalloc_obj(*cr, GFP_KERNEL);
if (!cr)
return ERR_PTR(-ENOMEM);
@@ -1395,8 +1395,7 @@ static int omap_iommu_attach_init(struct device *dev,
if (!odomain->num_iommus)
return -ENODEV;
- odomain->iommus = kcalloc(odomain->num_iommus, sizeof(*iommu),
- GFP_ATOMIC);
+ odomain->iommus = kzalloc_objs(*iommu, odomain->num_iommus, GFP_ATOMIC);
if (!odomain->iommus)
return -ENOMEM;
@@ -1564,7 +1563,7 @@ static struct iommu_domain *omap_iommu_domain_alloc_paging(struct device *dev)
{
struct omap_iommu_domain *omap_domain;
- omap_domain = kzalloc(sizeof(*omap_domain), GFP_KERNEL);
+ omap_domain = kzalloc_obj(*omap_domain, GFP_KERNEL);
if (!omap_domain)
return NULL;
@@ -1656,7 +1655,7 @@ static struct iommu_device *omap_iommu_probe_device(struct device *dev)
if (num_iommus < 0)
return ERR_PTR(-ENODEV);
- arch_data = kcalloc(num_iommus + 1, sizeof(*arch_data), GFP_KERNEL);
+ arch_data = kzalloc_objs(*arch_data, num_iommus + 1, GFP_KERNEL);
if (!arch_data)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/iommu/riscv/iommu.c b/drivers/iommu/riscv/iommu.c
index 2d8fb0859f30..26068cefa837 100644
--- a/drivers/iommu/riscv/iommu.c
+++ b/drivers/iommu/riscv/iommu.c
@@ -853,7 +853,7 @@ static int riscv_iommu_bond_link(struct riscv_iommu_domain *domain,
struct riscv_iommu_bond *bond;
struct list_head *bonds;
- bond = kzalloc(sizeof(*bond), GFP_KERNEL);
+ bond = kzalloc_obj(*bond, GFP_KERNEL);
if (!bond)
return -ENOMEM;
bond->dev = dev;
@@ -1380,7 +1380,7 @@ static struct iommu_domain *riscv_iommu_alloc_paging_domain(struct device *dev)
return ERR_PTR(-ENODEV);
}
- domain = kzalloc(sizeof(*domain), GFP_KERNEL);
+ domain = kzalloc_obj(*domain, GFP_KERNEL);
if (!domain)
return ERR_PTR(-ENOMEM);
@@ -1504,7 +1504,7 @@ static struct iommu_device *riscv_iommu_probe_device(struct device *dev)
if (iommu->ddt_mode <= RISCV_IOMMU_DDTP_IOMMU_MODE_BARE)
return ERR_PTR(-ENODEV);
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return ERR_PTR(-ENOMEM);
/*
diff --git a/drivers/iommu/rockchip-iommu.c b/drivers/iommu/rockchip-iommu.c
index 85f3667e797c..e0cfe7bbef8c 100644
--- a/drivers/iommu/rockchip-iommu.c
+++ b/drivers/iommu/rockchip-iommu.c
@@ -1064,7 +1064,7 @@ static struct iommu_domain *rk_iommu_domain_alloc_paging(struct device *dev)
struct rk_iommu_domain *rk_domain;
struct rk_iommu *iommu;
- rk_domain = kzalloc(sizeof(*rk_domain), GFP_KERNEL);
+ rk_domain = kzalloc_obj(*rk_domain, GFP_KERNEL);
if (!rk_domain)
return NULL;
diff --git a/drivers/iommu/s390-iommu.c b/drivers/iommu/s390-iommu.c
index fe679850af28..dcef361f9806 100644
--- a/drivers/iommu/s390-iommu.c
+++ b/drivers/iommu/s390-iommu.c
@@ -531,7 +531,7 @@ static struct iommu_domain *s390_domain_alloc_paging(struct device *dev)
struct s390_domain *s390_domain;
u64 aperture_size;
- s390_domain = kzalloc(sizeof(*s390_domain), GFP_KERNEL);
+ s390_domain = kzalloc_obj(*s390_domain, GFP_KERNEL);
if (!s390_domain)
return NULL;
diff --git a/drivers/iommu/sprd-iommu.c b/drivers/iommu/sprd-iommu.c
index 555d4505c747..0164c08ed9dc 100644
--- a/drivers/iommu/sprd-iommu.c
+++ b/drivers/iommu/sprd-iommu.c
@@ -137,7 +137,7 @@ static struct iommu_domain *sprd_iommu_domain_alloc_paging(struct device *dev)
{
struct sprd_iommu_domain *dom;
- dom = kzalloc(sizeof(*dom), GFP_KERNEL);
+ dom = kzalloc_obj(*dom, GFP_KERNEL);
if (!dom)
return NULL;
diff --git a/drivers/iommu/sun50i-iommu.c b/drivers/iommu/sun50i-iommu.c
index 90b26fe21817..30f93e691c09 100644
--- a/drivers/iommu/sun50i-iommu.c
+++ b/drivers/iommu/sun50i-iommu.c
@@ -686,7 +686,7 @@ sun50i_iommu_domain_alloc_paging(struct device *dev)
{
struct sun50i_iommu_domain *sun50i_domain;
- sun50i_domain = kzalloc(sizeof(*sun50i_domain), GFP_KERNEL);
+ sun50i_domain = kzalloc_obj(*sun50i_domain, GFP_KERNEL);
if (!sun50i_domain)
return NULL;
diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
index c391e7f2cde6..4890a88ac169 100644
--- a/drivers/iommu/tegra-smmu.c
+++ b/drivers/iommu/tegra-smmu.c
@@ -289,7 +289,7 @@ static struct iommu_domain *tegra_smmu_domain_alloc_paging(struct device *dev)
{
struct tegra_smmu_as *as;
- as = kzalloc(sizeof(*as), GFP_KERNEL);
+ as = kzalloc_obj(*as, GFP_KERNEL);
if (!as)
return NULL;
@@ -308,7 +308,7 @@ static struct iommu_domain *tegra_smmu_domain_alloc_paging(struct device *dev)
return NULL;
}
- as->pts = kcalloc(SMMU_NUM_PDE, sizeof(*as->pts), GFP_KERNEL);
+ as->pts = kzalloc_objs(*as->pts, SMMU_NUM_PDE, GFP_KERNEL);
if (!as->pts) {
kfree(as->count);
iommu_free_pages(as->pd);
diff --git a/drivers/iommu/virtio-iommu.c b/drivers/iommu/virtio-iommu.c
index d314fa5cd847..ba8a70fdb494 100644
--- a/drivers/iommu/virtio-iommu.c
+++ b/drivers/iommu/virtio-iommu.c
@@ -231,7 +231,7 @@ static int __viommu_add_req(struct viommu_dev *viommu, void *buf, size_t len,
if (write_offset <= 0)
return -EINVAL;
- req = kzalloc(struct_size(req, buf, len), GFP_ATOMIC);
+ req = kzalloc_flex(*req, buf, len, GFP_ATOMIC);
if (!req)
return -ENOMEM;
@@ -333,7 +333,7 @@ static int viommu_add_mapping(struct viommu_domain *vdomain, u64 iova, u64 end,
unsigned long irqflags;
struct viommu_mapping *mapping;
- mapping = kzalloc(sizeof(*mapping), GFP_ATOMIC);
+ mapping = kzalloc_obj(*mapping, GFP_ATOMIC);
if (!mapping)
return -ENOMEM;
@@ -670,7 +670,7 @@ static struct iommu_domain *viommu_domain_alloc_paging(struct device *dev)
return ERR_PTR(-ENODEV);
}
- vdomain = kzalloc(sizeof(*vdomain), GFP_KERNEL);
+ vdomain = kzalloc_obj(*vdomain, GFP_KERNEL);
if (!vdomain)
return ERR_PTR(-ENOMEM);
@@ -1028,7 +1028,7 @@ static struct iommu_device *viommu_probe_device(struct device *dev)
if (!viommu)
return ERR_PTR(-ENODEV);
- vdev = kzalloc(sizeof(*vdev), GFP_KERNEL);
+ vdev = kzalloc_obj(*vdev, GFP_KERNEL);
if (!vdev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/ipack/carriers/tpci200.c b/drivers/ipack/carriers/tpci200.c
index cbfdadecb23b..6d1058dc8faa 100644
--- a/drivers/ipack/carriers/tpci200.c
+++ b/drivers/ipack/carriers/tpci200.c
@@ -209,7 +209,7 @@ static int tpci200_request_irq(struct ipack_device *dev,
goto out_unlock;
}
- slot_irq = kzalloc(sizeof(struct slot_irq), GFP_KERNEL);
+ slot_irq = kzalloc_obj(struct slot_irq, GFP_KERNEL);
if (slot_irq == NULL) {
dev_err(&dev->dev,
"Slot [%d:%d] unable to allocate memory for IRQ !\n",
@@ -461,8 +461,8 @@ static int tpci200_install(struct tpci200_board *tpci200)
{
int res;
- tpci200->slots = kcalloc(TPCI200_NB_SLOT, sizeof(struct tpci200_slot),
- GFP_KERNEL);
+ tpci200->slots = kzalloc_objs(struct tpci200_slot, TPCI200_NB_SLOT,
+ GFP_KERNEL);
if (tpci200->slots == NULL)
return -ENOMEM;
@@ -487,7 +487,7 @@ static int tpci200_create_device(struct tpci200_board *tpci200, int i)
int ret;
enum ipack_space space;
struct ipack_device *dev =
- kzalloc(sizeof(struct ipack_device), GFP_KERNEL);
+ kzalloc_obj(struct ipack_device, GFP_KERNEL);
if (!dev)
return -ENOMEM;
dev->slot = i;
@@ -521,11 +521,11 @@ static int tpci200_pci_probe(struct pci_dev *pdev,
struct tpci200_board *tpci200;
u32 reg32;
- tpci200 = kzalloc(sizeof(struct tpci200_board), GFP_KERNEL);
+ tpci200 = kzalloc_obj(struct tpci200_board, GFP_KERNEL);
if (!tpci200)
return -ENOMEM;
- tpci200->info = kzalloc(sizeof(struct tpci200_infos), GFP_KERNEL);
+ tpci200->info = kzalloc_obj(struct tpci200_infos, GFP_KERNEL);
if (!tpci200->info) {
ret = -ENOMEM;
goto err_tpci200;
diff --git a/drivers/ipack/devices/ipoctal.c b/drivers/ipack/devices/ipoctal.c
index ba2e9e52d72b..563fdf197101 100644
--- a/drivers/ipack/devices/ipoctal.c
+++ b/drivers/ipack/devices/ipoctal.c
@@ -688,7 +688,7 @@ static int ipoctal_probe(struct ipack_device *dev)
int res;
struct ipoctal *ipoctal;
- ipoctal = kzalloc(sizeof(struct ipoctal), GFP_KERNEL);
+ ipoctal = kzalloc_obj(struct ipoctal, GFP_KERNEL);
if (ipoctal == NULL)
return -ENOMEM;
diff --git a/drivers/ipack/ipack.c b/drivers/ipack/ipack.c
index 57d232c909f9..d4ec786bf98d 100644
--- a/drivers/ipack/ipack.c
+++ b/drivers/ipack/ipack.c
@@ -203,7 +203,7 @@ struct ipack_bus_device *ipack_bus_register(struct device *parent, int slots,
int bus_nr;
struct ipack_bus_device *bus;
- bus = kzalloc(sizeof(*bus), GFP_KERNEL);
+ bus = kzalloc_obj(*bus, GFP_KERNEL);
if (!bus)
return NULL;
diff --git a/drivers/irqchip/exynos-combiner.c b/drivers/irqchip/exynos-combiner.c
index 495848442b35..8776f2ba4bae 100644
--- a/drivers/irqchip/exynos-combiner.c
+++ b/drivers/irqchip/exynos-combiner.c
@@ -176,7 +176,7 @@ static void __init combiner_init(void __iomem *combiner_base,
nr_irq = max_nr * IRQ_IN_COMBINER;
- combiner_data = kcalloc(max_nr, sizeof (*combiner_data), GFP_KERNEL);
+ combiner_data = kzalloc_objs(*combiner_data, max_nr, GFP_KERNEL);
if (!combiner_data)
return;
diff --git a/drivers/irqchip/irq-al-fic.c b/drivers/irqchip/irq-al-fic.c
index 8f300843bbca..f6b637bebcc0 100644
--- a/drivers/irqchip/irq-al-fic.c
+++ b/drivers/irqchip/irq-al-fic.c
@@ -194,7 +194,7 @@ static struct al_fic *al_fic_wire_init(struct device_node *node,
int ret;
u32 control = CONTROL_MASK_MSI_X;
- fic = kzalloc(sizeof(*fic), GFP_KERNEL);
+ fic = kzalloc_obj(*fic, GFP_KERNEL);
if (!fic)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/irqchip/irq-alpine-msi.c b/drivers/irqchip/irq-alpine-msi.c
index 159d9ec7c0dd..0fb09ddc43ef 100644
--- a/drivers/irqchip/irq-alpine-msi.c
+++ b/drivers/irqchip/irq-alpine-msi.c
@@ -192,7 +192,8 @@ static int alpine_msix_init_domains(struct alpine_msix_data *priv, struct device
static int alpine_msix_init(struct device_node *node, struct device_node *parent)
{
- struct alpine_msix_data *priv __free(kfree) = kzalloc(sizeof(*priv), GFP_KERNEL);
+ struct alpine_msix_data *priv __free(kfree) = kzalloc_obj(*priv,
+ GFP_KERNEL);
struct resource res;
int ret;
diff --git a/drivers/irqchip/irq-apple-aic.c b/drivers/irqchip/irq-apple-aic.c
index 3c70364e7cdd..e09939e279f6 100644
--- a/drivers/irqchip/irq-apple-aic.c
+++ b/drivers/irqchip/irq-apple-aic.c
@@ -921,7 +921,7 @@ static void build_fiq_affinity(struct aic_irq_chip *ic, struct device_node *aff)
if (WARN_ON(n < 0))
return;
- ic->fiq_aff[fiq] = kzalloc(sizeof(*ic->fiq_aff[fiq]), GFP_KERNEL);
+ ic->fiq_aff[fiq] = kzalloc_obj(*ic->fiq_aff[fiq], GFP_KERNEL);
if (!ic->fiq_aff[fiq])
return;
@@ -959,7 +959,7 @@ static int __init aic_of_ic_init(struct device_node *node, struct device_node *p
if (WARN_ON(!regs))
return -EIO;
- irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
+ irqc = kzalloc_obj(*irqc, GFP_KERNEL);
if (!irqc) {
iounmap(regs);
return -ENOMEM;
diff --git a/drivers/irqchip/irq-armada-370-xp.c b/drivers/irqchip/irq-armada-370-xp.c
index a4d03a2d1569..84e8f204edef 100644
--- a/drivers/irqchip/irq-armada-370-xp.c
+++ b/drivers/irqchip/irq-armada-370-xp.c
@@ -835,7 +835,7 @@ static int __init mpic_of_init(struct device_node *node, struct device_node *par
struct mpic *mpic;
int err;
- mpic = kzalloc(sizeof(*mpic), GFP_KERNEL);
+ mpic = kzalloc_obj(*mpic, GFP_KERNEL);
if (WARN_ON(!mpic))
return -ENOMEM;
diff --git a/drivers/irqchip/irq-aspeed-i2c-ic.c b/drivers/irqchip/irq-aspeed-i2c-ic.c
index 87c1feb999ff..35189fd06b3d 100644
--- a/drivers/irqchip/irq-aspeed-i2c-ic.c
+++ b/drivers/irqchip/irq-aspeed-i2c-ic.c
@@ -66,7 +66,7 @@ static int __init aspeed_i2c_ic_of_init(struct device_node *node,
struct aspeed_i2c_ic *i2c_ic;
int ret = 0;
- i2c_ic = kzalloc(sizeof(*i2c_ic), GFP_KERNEL);
+ i2c_ic = kzalloc_obj(*i2c_ic, GFP_KERNEL);
if (!i2c_ic)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-aspeed-intc.c b/drivers/irqchip/irq-aspeed-intc.c
index 8330221799a0..f3ae18de3b95 100644
--- a/drivers/irqchip/irq-aspeed-intc.c
+++ b/drivers/irqchip/irq-aspeed-intc.c
@@ -89,7 +89,7 @@ static int __init aspeed_intc_ic_of_init(struct device_node *node,
struct aspeed_intc_ic *intc_ic;
int irq, i, ret = 0;
- intc_ic = kzalloc(sizeof(*intc_ic), GFP_KERNEL);
+ intc_ic = kzalloc_obj(*intc_ic, GFP_KERNEL);
if (!intc_ic)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-aspeed-scu-ic.c b/drivers/irqchip/irq-aspeed-scu-ic.c
index 7398c3b9eace..170fc82091da 100644
--- a/drivers/irqchip/irq-aspeed-scu-ic.c
+++ b/drivers/irqchip/irq-aspeed-scu-ic.c
@@ -270,7 +270,7 @@ static int __init aspeed_scu_ic_of_init(struct device_node *node, struct device_
if (!variant)
return -ENODEV;
- scu_ic = kzalloc(sizeof(*scu_ic), GFP_KERNEL);
+ scu_ic = kzalloc_obj(*scu_ic, GFP_KERNEL);
if (!scu_ic)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-aspeed-vic.c b/drivers/irqchip/irq-aspeed-vic.c
index 9b665b5bb531..35cd50aaed81 100644
--- a/drivers/irqchip/irq-aspeed-vic.c
+++ b/drivers/irqchip/irq-aspeed-vic.c
@@ -196,7 +196,7 @@ static int __init avic_of_init(struct device_node *node,
if (WARN_ON(!regs))
return -EIO;
- vic = kzalloc(sizeof(struct aspeed_vic), GFP_KERNEL);
+ vic = kzalloc_obj(struct aspeed_vic, GFP_KERNEL);
if (WARN_ON(!vic)) {
iounmap(regs);
return -ENOMEM;
diff --git a/drivers/irqchip/irq-atmel-aic-common.c b/drivers/irqchip/irq-atmel-aic-common.c
index e68853815c7a..087eed7ed6db 100644
--- a/drivers/irqchip/irq-atmel-aic-common.c
+++ b/drivers/irqchip/irq-atmel-aic-common.c
@@ -213,7 +213,7 @@ struct irq_domain *__init aic_common_of_init(struct device_node *node,
if (!reg_base)
return ERR_PTR(-ENOMEM);
- aic = kcalloc(nchips, sizeof(*aic), GFP_KERNEL);
+ aic = kzalloc_objs(*aic, nchips, GFP_KERNEL);
if (!aic) {
ret = -ENOMEM;
goto err_iounmap;
diff --git a/drivers/irqchip/irq-bcm2712-mip.c b/drivers/irqchip/irq-bcm2712-mip.c
index 4761974ad650..118ab4ac6714 100644
--- a/drivers/irqchip/irq-bcm2712-mip.c
+++ b/drivers/irqchip/irq-bcm2712-mip.c
@@ -238,7 +238,7 @@ static int mip_msi_probe(struct platform_device *pdev, struct device_node *paren
struct mip_priv *mip;
int ret;
- mip = kzalloc(sizeof(*mip), GFP_KERNEL);
+ mip = kzalloc_obj(*mip, GFP_KERNEL);
if (!mip)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-bcm6345-l1.c b/drivers/irqchip/irq-bcm6345-l1.c
index ca4e141c5bc2..956c53dffca3 100644
--- a/drivers/irqchip/irq-bcm6345-l1.c
+++ b/drivers/irqchip/irq-bcm6345-l1.c
@@ -238,8 +238,8 @@ static int __init bcm6345_l1_init_one(struct device_node *dn,
else if (intc->n_words != n_words)
return -EINVAL;
- cpu = intc->cpus[idx] = kzalloc(struct_size(cpu, enable_cache, n_words),
- GFP_KERNEL);
+ cpu = intc->cpus[idx] = kzalloc_flex(*cpu, enable_cache, n_words,
+ GFP_KERNEL);
if (!cpu)
return -ENOMEM;
@@ -296,7 +296,7 @@ static int __init bcm6345_l1_of_init(struct device_node *dn,
unsigned int idx;
int ret;
- intc = kzalloc(sizeof(*intc), GFP_KERNEL);
+ intc = kzalloc_obj(*intc, GFP_KERNEL);
if (!intc)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-bcm7038-l1.c b/drivers/irqchip/irq-bcm7038-l1.c
index 45c4824be92f..3f838f019f4d 100644
--- a/drivers/irqchip/irq-bcm7038-l1.c
+++ b/drivers/irqchip/irq-bcm7038-l1.c
@@ -242,8 +242,8 @@ static int bcm7038_l1_init_one(struct device_node *dn, unsigned int idx,
return -EINVAL;
}
- cpu = intc->cpus[idx] = kzalloc(struct_size(cpu, mask_cache, n_words),
- GFP_KERNEL);
+ cpu = intc->cpus[idx] = kzalloc_flex(*cpu, mask_cache, n_words,
+ GFP_KERNEL);
if (!cpu)
return -ENOMEM;
@@ -398,7 +398,7 @@ static int bcm7038_l1_probe(struct platform_device *pdev, struct device_node *pa
struct bcm7038_l1_chip *intc;
int idx, ret;
- intc = kzalloc(sizeof(*intc), GFP_KERNEL);
+ intc = kzalloc_obj(*intc, GFP_KERNEL);
if (!intc)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-bcm7120-l2.c b/drivers/irqchip/irq-bcm7120-l2.c
index 518c9d4366a5..341b4e62b942 100644
--- a/drivers/irqchip/irq-bcm7120-l2.c
+++ b/drivers/irqchip/irq-bcm7120-l2.c
@@ -220,7 +220,7 @@ static int bcm7120_l2_intc_probe(struct platform_device *pdev, struct device_nod
unsigned int idx, irq, flags;
u32 valid_mask[MAX_WORDS] = { };
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -231,8 +231,8 @@ static int bcm7120_l2_intc_probe(struct platform_device *pdev, struct device_nod
goto out_unmap;
}
- data->l1_data = kcalloc(data->num_parent_irqs, sizeof(*data->l1_data),
- GFP_KERNEL);
+ data->l1_data = kzalloc_objs(*data->l1_data, data->num_parent_irqs,
+ GFP_KERNEL);
if (!data->l1_data) {
ret = -ENOMEM;
goto out_free_l1_data;
diff --git a/drivers/irqchip/irq-brcmstb-l2.c b/drivers/irqchip/irq-brcmstb-l2.c
index bb7078d6524f..c5f4c79e7ea9 100644
--- a/drivers/irqchip/irq-brcmstb-l2.c
+++ b/drivers/irqchip/irq-brcmstb-l2.c
@@ -151,7 +151,7 @@ static int brcmstb_l2_intc_probe(struct platform_device *pdev, struct device_nod
int parent_irq;
void __iomem *base;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-clps711x.c b/drivers/irqchip/irq-clps711x.c
index c4b73ba2323b..80b9f7bc7bbd 100644
--- a/drivers/irqchip/irq-clps711x.c
+++ b/drivers/irqchip/irq-clps711x.c
@@ -155,7 +155,7 @@ static int __init _clps711x_intc_init(struct device_node *np,
{
int err;
- clps711x_intc = kzalloc(sizeof(*clps711x_intc), GFP_KERNEL);
+ clps711x_intc = kzalloc_obj(*clps711x_intc, GFP_KERNEL);
if (!clps711x_intc)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-crossbar.c b/drivers/irqchip/irq-crossbar.c
index 66bb39e24a52..c3ddffc28bbd 100644
--- a/drivers/irqchip/irq-crossbar.c
+++ b/drivers/irqchip/irq-crossbar.c
@@ -199,7 +199,7 @@ static int __init crossbar_of_init(struct device_node *node)
const __be32 *irqsr;
int ret = -ENOMEM;
- cb = kzalloc(sizeof(*cb), GFP_KERNEL);
+ cb = kzalloc_obj(*cb, GFP_KERNEL);
if (!cb)
return ret;
@@ -268,7 +268,7 @@ static int __init crossbar_of_init(struct device_node *node)
}
- cb->register_offsets = kcalloc(max, sizeof(int), GFP_KERNEL);
+ cb->register_offsets = kzalloc_objs(int, max, GFP_KERNEL);
if (!cb->register_offsets)
goto err_irq_map;
diff --git a/drivers/irqchip/irq-gic-v2m.c b/drivers/irqchip/irq-gic-v2m.c
index 8a3410c2b7b5..d9215d785bcc 100644
--- a/drivers/irqchip/irq-gic-v2m.c
+++ b/drivers/irqchip/irq-gic-v2m.c
@@ -293,7 +293,7 @@ static int __init gicv2m_init_one(struct fwnode_handle *fwnode,
int ret;
struct v2m_data *v2m;
- v2m = kzalloc(sizeof(struct v2m_data), GFP_KERNEL);
+ v2m = kzalloc_obj(struct v2m_data, GFP_KERNEL);
if (!v2m)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index 2988def30972..4f3212caa1ef 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -1926,8 +1926,8 @@ static int its_vlpi_map(struct irq_data *d, struct its_cmd_info *info)
if (!its_dev->event_map.vm) {
struct its_vlpi_map *maps;
- maps = kcalloc(its_dev->event_map.nr_lpis, sizeof(*maps),
- GFP_ATOMIC);
+ maps = kzalloc_objs(*maps, its_dev->event_map.nr_lpis,
+ GFP_ATOMIC);
if (!maps)
return -ENOMEM;
@@ -2108,7 +2108,7 @@ static struct lpi_range *mk_lpi_range(u32 base, u32 span)
{
struct lpi_range *range;
- range = kmalloc(sizeof(*range), GFP_KERNEL);
+ range = kmalloc_obj(*range, GFP_KERNEL);
if (range) {
range->base_id = base;
range->span = span;
@@ -2927,7 +2927,7 @@ static int allocate_vpe_l1_table(void)
if (val & GICR_VPROPBASER_4_1_VALID)
goto out;
- gic_data_rdist()->vpe_table_mask = kzalloc(sizeof(cpumask_t), GFP_ATOMIC);
+ gic_data_rdist()->vpe_table_mask = kzalloc_obj(cpumask_t, GFP_ATOMIC);
if (!gic_data_rdist()->vpe_table_mask)
return -ENOMEM;
@@ -3025,8 +3025,8 @@ static int its_alloc_collections(struct its_node *its)
{
int i;
- its->collections = kcalloc(nr_cpu_ids, sizeof(*its->collections),
- GFP_KERNEL);
+ its->collections = kzalloc_objs(*its->collections, nr_cpu_ids,
+ GFP_KERNEL);
if (!its->collections)
return -ENOMEM;
@@ -3493,7 +3493,7 @@ static struct its_device *its_create_device(struct its_node *its, u32 dev_id,
itt = itt_alloc_pool(its->numa_node, sz);
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (alloc_lpis) {
lpi_map = its_lpi_alloc(nvecs, &lpi_base, &nr_lpis);
@@ -5139,7 +5139,7 @@ static int its_init_domain(struct its_node *its)
};
struct msi_domain_info *info;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
@@ -5169,8 +5169,7 @@ static int its_init_vpe_domain(void)
its = list_first_entry(&its_nodes, struct its_node, entry);
entries = roundup_pow_of_two(nr_cpu_ids);
- vpe_proxy.vpes = kcalloc(entries, sizeof(*vpe_proxy.vpes),
- GFP_KERNEL);
+ vpe_proxy.vpes = kzalloc_objs(*vpe_proxy.vpes, entries, GFP_KERNEL);
if (!vpe_proxy.vpes)
return -ENOMEM;
@@ -5514,7 +5513,7 @@ static struct its_node __init *its_node_init(struct resource *res,
pr_info("ITS %pR\n", res);
- its = kzalloc(sizeof(*its), GFP_KERNEL);
+ its = kzalloc_obj(*its, GFP_KERNEL);
if (!its)
goto out_unmap;
@@ -5680,8 +5679,7 @@ static void __init acpi_table_parse_srat_its(void)
if (count <= 0)
return;
- its_srat_maps = kmalloc_array(count, sizeof(struct its_srat_map),
- GFP_KERNEL);
+ its_srat_maps = kmalloc_objs(struct its_srat_map, count, GFP_KERNEL);
if (!its_srat_maps)
return;
diff --git a/drivers/irqchip/irq-gic-v3-mbi.c b/drivers/irqchip/irq-gic-v3-mbi.c
index aa11bbe8026a..9254a5e92577 100644
--- a/drivers/irqchip/irq-gic-v3-mbi.c
+++ b/drivers/irqchip/irq-gic-v3-mbi.c
@@ -231,7 +231,7 @@ int __init mbi_init(struct fwnode_handle *fwnode, struct irq_domain *parent)
return -EINVAL;
mbi_range_nr = n / 2;
- mbi_ranges = kcalloc(mbi_range_nr, sizeof(*mbi_ranges), GFP_KERNEL);
+ mbi_ranges = kzalloc_objs(*mbi_ranges, mbi_range_nr, GFP_KERNEL);
if (!mbi_ranges)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
index 6607ab58f72e..602870a2b8f8 100644
--- a/drivers/irqchip/irq-gic-v3.c
+++ b/drivers/irqchip/irq-gic-v3.c
@@ -2090,7 +2090,7 @@ static void __init gic_populate_ppi_partitions(struct device_node *gic_node)
if (!nr_parts)
goto out_put_node;
- parts = kcalloc(nr_parts, sizeof(*parts), GFP_KERNEL);
+ parts = kzalloc_objs(*parts, nr_parts, GFP_KERNEL);
if (WARN_ON(!parts))
goto out_put_node;
@@ -2218,8 +2218,7 @@ static int __init gic_of_init(struct device_node *node, struct device_node *pare
if (of_property_read_u32(node, "#redistributor-regions", &nr_redist_regions))
nr_redist_regions = 1;
- rdist_regs = kcalloc(nr_redist_regions, sizeof(*rdist_regs),
- GFP_KERNEL);
+ rdist_regs = kzalloc_objs(*rdist_regs, nr_redist_regions, GFP_KERNEL);
if (!rdist_regs) {
err = -ENOMEM;
goto out_unmap_dist;
diff --git a/drivers/irqchip/irq-gic-v5-irs.c b/drivers/irqchip/irq-gic-v5-irs.c
index 8bc4bb121088..8379e975a172 100644
--- a/drivers/irqchip/irq-gic-v5-irs.c
+++ b/drivers/irqchip/irq-gic-v5-irs.c
@@ -727,7 +727,7 @@ static int __init gicv5_irs_of_init(struct device_node *node)
u32 idr;
int ret;
- irs_data = kzalloc(sizeof(*irs_data), GFP_KERNEL);
+ irs_data = kzalloc_obj(*irs_data, GFP_KERNEL);
if (!irs_data)
return -ENOMEM;
@@ -913,7 +913,7 @@ static int __init gic_acpi_parse_madt_irs(union acpi_subtable_headers *header,
int ret;
/* Per-IRS data structure */
- irs_data = kzalloc(sizeof(*irs_data), GFP_KERNEL);
+ irs_data = kzalloc_obj(*irs_data, GFP_KERNEL);
if (!irs_data)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-gic-v5-its.c b/drivers/irqchip/irq-gic-v5-its.c
index 8c4cf8430871..96c67e168e6f 100644
--- a/drivers/irqchip/irq-gic-v5-its.c
+++ b/drivers/irqchip/irq-gic-v5-its.c
@@ -757,7 +757,7 @@ static struct gicv5_its_dev *gicv5_its_alloc_device(struct gicv5_its_chip_data *
return ERR_PTR(-EBUSY);
}
- its_dev = kzalloc(sizeof(*its_dev), GFP_KERNEL);
+ its_dev = kzalloc_obj(*its_dev, GFP_KERNEL);
if (!its_dev)
return ERR_PTR(-ENOMEM);
@@ -1100,7 +1100,7 @@ static int gicv5_its_init_domain(struct gicv5_its_chip_data *its, struct irq_dom
};
struct msi_domain_info *info;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
@@ -1125,7 +1125,7 @@ static int __init gicv5_its_init_bases(void __iomem *its_base, struct fwnode_han
bool enabled;
int ret;
- its_node = kzalloc(sizeof(*its_node), GFP_KERNEL);
+ its_node = kzalloc_obj(*its_node, GFP_KERNEL);
if (!its_node)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-gic-v5-iwb.c b/drivers/irqchip/irq-gic-v5-iwb.c
index c7d5fd34d053..562d3f0df24e 100644
--- a/drivers/irqchip/irq-gic-v5-iwb.c
+++ b/drivers/irqchip/irq-gic-v5-iwb.c
@@ -219,8 +219,8 @@ gicv5_iwb_init_bases(void __iomem *iwb_base, struct platform_device *pdev)
unsigned int n;
int ret;
- struct gicv5_iwb_chip_data *iwb_node __free(kfree) = kzalloc(sizeof(*iwb_node),
- GFP_KERNEL);
+ struct gicv5_iwb_chip_data *iwb_node __free(kfree) = kzalloc_obj(*iwb_node,
+ GFP_KERNEL);
if (!iwb_node)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/irqchip/irq-goldfish-pic.c b/drivers/irqchip/irq-goldfish-pic.c
index a8b23b507ecd..c2047ccf4360 100644
--- a/drivers/irqchip/irq-goldfish-pic.c
+++ b/drivers/irqchip/irq-goldfish-pic.c
@@ -61,7 +61,7 @@ static int __init goldfish_pic_of_init(struct device_node *of_node,
unsigned int parent_irq;
int ret = 0;
- gfpic = kzalloc(sizeof(*gfpic), GFP_KERNEL);
+ gfpic = kzalloc_obj(*gfpic, GFP_KERNEL);
if (!gfpic) {
ret = -ENOMEM;
goto out_err;
diff --git a/drivers/irqchip/irq-idt3243x.c b/drivers/irqchip/irq-idt3243x.c
index f8324fb1fe8f..6812396c6268 100644
--- a/drivers/irqchip/irq-idt3243x.c
+++ b/drivers/irqchip/irq-idt3243x.c
@@ -52,7 +52,7 @@ static int idt_pic_init(struct device_node *of_node, struct device_node *parent)
unsigned int parent_irq;
int ret = 0;
- idtpic = kzalloc(sizeof(*idtpic), GFP_KERNEL);
+ idtpic = kzalloc_obj(*idtpic, GFP_KERNEL);
if (!idtpic) {
ret = -ENOMEM;
goto out_err;
diff --git a/drivers/irqchip/irq-imx-gpcv2.c b/drivers/irqchip/irq-imx-gpcv2.c
index 04f7ba0657be..7fff14c7b917 100644
--- a/drivers/irqchip/irq-imx-gpcv2.c
+++ b/drivers/irqchip/irq-imx-gpcv2.c
@@ -231,7 +231,7 @@ static int __init imx_gpcv2_irqchip_init(struct device_node *node,
return -ENXIO;
}
- cd = kzalloc(sizeof(struct gpcv2_irqchip_data), GFP_KERNEL);
+ cd = kzalloc_obj(struct gpcv2_irqchip_data, GFP_KERNEL);
if (!cd)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-ingenic-tcu.c b/drivers/irqchip/irq-ingenic-tcu.c
index 794ecba717c9..e4028ddeb0e8 100644
--- a/drivers/irqchip/irq-ingenic-tcu.c
+++ b/drivers/irqchip/irq-ingenic-tcu.c
@@ -96,7 +96,7 @@ static int __init ingenic_tcu_irq_init(struct device_node *np,
if (IS_ERR(map))
return PTR_ERR(map);
- tcu = kzalloc(sizeof(*tcu), GFP_KERNEL);
+ tcu = kzalloc_obj(*tcu, GFP_KERNEL);
if (!tcu)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-ingenic.c b/drivers/irqchip/irq-ingenic.c
index 52393724f213..fbbe655fa234 100644
--- a/drivers/irqchip/irq-ingenic.c
+++ b/drivers/irqchip/irq-ingenic.c
@@ -67,7 +67,7 @@ static int __init ingenic_intc_of_init(struct device_node *node,
int parent_irq, err = 0;
unsigned i;
- intc = kzalloc(sizeof(*intc), GFP_KERNEL);
+ intc = kzalloc_obj(*intc, GFP_KERNEL);
if (!intc) {
err = -ENOMEM;
goto out_err;
diff --git a/drivers/irqchip/irq-loongarch-avec.c b/drivers/irqchip/irq-loongarch-avec.c
index fb8efde95393..cbea378c25c3 100644
--- a/drivers/irqchip/irq-loongarch-avec.c
+++ b/drivers/irqchip/irq-loongarch-avec.c
@@ -276,7 +276,7 @@ static int avecintc_domain_alloc(struct irq_domain *domain, unsigned int virq,
{
for (unsigned int i = 0; i < nr_irqs; i++) {
struct irq_data *irqd = irq_domain_get_irq_data(domain, virq + i);
- struct avecintc_data *adata = kzalloc(sizeof(*adata), GFP_KERNEL);
+ struct avecintc_data *adata = kzalloc_obj(*adata, GFP_KERNEL);
int ret;
if (!adata)
diff --git a/drivers/irqchip/irq-loongson-eiointc.c b/drivers/irqchip/irq-loongson-eiointc.c
index 37e7e1f9bbe3..b219cd18a8f7 100644
--- a/drivers/irqchip/irq-loongson-eiointc.c
+++ b/drivers/irqchip/irq-loongson-eiointc.c
@@ -584,7 +584,7 @@ int __init eiointc_acpi_init(struct irq_domain *parent,
struct eiointc_priv *priv;
int node;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
@@ -633,7 +633,7 @@ static int __init eiointc_of_init(struct device_node *of_node,
struct irq_data *irq_data;
int parent_irq, ret;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-loongson-htpic.c b/drivers/irqchip/irq-loongson-htpic.c
index 1c691c4be989..f0ea5dad7a1c 100644
--- a/drivers/irqchip/irq-loongson-htpic.c
+++ b/drivers/irqchip/irq-loongson-htpic.c
@@ -95,7 +95,7 @@ static int __init htpic_of_init(struct device_node *node, struct device_node *pa
return -ENODEV;
}
- htpic = kzalloc(sizeof(*htpic), GFP_KERNEL);
+ htpic = kzalloc_obj(*htpic, GFP_KERNEL);
if (!htpic)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-loongson-htvec.c b/drivers/irqchip/irq-loongson-htvec.c
index 5a3339da97ad..4645948222ee 100644
--- a/drivers/irqchip/irq-loongson-htvec.c
+++ b/drivers/irqchip/irq-loongson-htvec.c
@@ -192,7 +192,7 @@ static int htvec_init(phys_addr_t addr, unsigned long size,
int i;
struct htvec *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-loongson-liointc.c b/drivers/irqchip/irq-loongson-liointc.c
index 551597e2c428..44b03de6091a 100644
--- a/drivers/irqchip/irq-loongson-liointc.c
+++ b/drivers/irqchip/irq-loongson-liointc.c
@@ -205,7 +205,7 @@ static int liointc_init(phys_addr_t addr, unsigned long size, int revision,
struct irq_domain *domain;
struct liointc_priv *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-loongson-pch-lpc.c b/drivers/irqchip/irq-loongson-pch-lpc.c
index 3a125f3e4287..7a074077d8ba 100644
--- a/drivers/irqchip/irq-loongson-pch-lpc.c
+++ b/drivers/irqchip/irq-loongson-pch-lpc.c
@@ -183,7 +183,7 @@ int __init pch_lpc_acpi_init(struct irq_domain *parent,
struct irq_fwspec fwspec;
struct fwnode_handle *irq_handle;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-loongson-pch-msi.c b/drivers/irqchip/irq-loongson-pch-msi.c
index 91c856c65d9d..9a2d3804bc6e 100644
--- a/drivers/irqchip/irq-loongson-pch-msi.c
+++ b/drivers/irqchip/irq-loongson-pch-msi.c
@@ -177,7 +177,7 @@ static int pch_msi_init(phys_addr_t msg_address, int irq_base, int irq_count,
int ret;
struct pch_msi_data *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-loongson-pch-pic.c b/drivers/irqchip/irq-loongson-pch-pic.c
index f2acaf93f552..b50fd928e1f6 100644
--- a/drivers/irqchip/irq-loongson-pch-pic.c
+++ b/drivers/irqchip/irq-loongson-pch-pic.c
@@ -329,7 +329,7 @@ static int pch_pic_init(phys_addr_t addr, unsigned long size, int vec_base,
struct pch_pic *priv;
int i;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-lpc32xx.c b/drivers/irqchip/irq-lpc32xx.c
index 14cca44baa14..7dfd46d8dab2 100644
--- a/drivers/irqchip/irq-lpc32xx.c
+++ b/drivers/irqchip/irq-lpc32xx.c
@@ -198,7 +198,7 @@ static int __init lpc32xx_of_ic_init(struct device_node *node,
const __be32 *reg = of_get_property(node, "reg", NULL);
u32 parent_irq, i, addr = reg ? be32_to_cpu(*reg) : 0;
- irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
+ irqc = kzalloc_obj(*irqc, GFP_KERNEL);
if (!irqc)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-ls1x.c b/drivers/irqchip/irq-ls1x.c
index 589d32007fca..5c39e02d40aa 100644
--- a/drivers/irqchip/irq-ls1x.c
+++ b/drivers/irqchip/irq-ls1x.c
@@ -108,7 +108,7 @@ static int __init ls1x_intc_of_init(struct device_node *node,
struct ls1x_intc_priv *priv;
int parent_irq, err = 0;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-mchp-eic.c b/drivers/irqchip/irq-mchp-eic.c
index 31093a8ab67c..15f4d17a2612 100644
--- a/drivers/irqchip/irq-mchp-eic.c
+++ b/drivers/irqchip/irq-mchp-eic.c
@@ -209,7 +209,7 @@ static int mchp_eic_probe(struct platform_device *pdev, struct device_node *pare
struct irq_domain *parent_domain = NULL;
int ret, i;
- eic = kzalloc(sizeof(*eic), GFP_KERNEL);
+ eic = kzalloc_obj(*eic, GFP_KERNEL);
if (!eic)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-meson-gpio.c b/drivers/irqchip/irq-meson-gpio.c
index 3fcbb044ae60..a19fa5a5ba3e 100644
--- a/drivers/irqchip/irq-meson-gpio.c
+++ b/drivers/irqchip/irq-meson-gpio.c
@@ -601,7 +601,7 @@ static int meson_gpio_irq_probe(struct platform_device *pdev, struct device_node
return -ENXIO;
}
- ctl = kzalloc(sizeof(*ctl), GFP_KERNEL);
+ ctl = kzalloc_obj(*ctl, GFP_KERNEL);
if (!ctl)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-mips-cpu.c b/drivers/irqchip/irq-mips-cpu.c
index ac784ef3ed4b..37a8221be9fa 100644
--- a/drivers/irqchip/irq-mips-cpu.c
+++ b/drivers/irqchip/irq-mips-cpu.c
@@ -237,7 +237,7 @@ static void mips_cpu_register_ipi_domain(struct device_node *of_node)
{
struct cpu_ipi_domain_state *ipi_domain_state;
- ipi_domain_state = kzalloc(sizeof(*ipi_domain_state), GFP_KERNEL);
+ ipi_domain_state = kzalloc_obj(*ipi_domain_state, GFP_KERNEL);
ipi_domain = irq_domain_create_hierarchy(irq_domain, IRQ_DOMAIN_FLAG_IPI_SINGLE, 2,
of_fwnode_handle(of_node),
&mips_cpu_ipi_chip_ops, ipi_domain_state);
diff --git a/drivers/irqchip/irq-mst-intc.c b/drivers/irqchip/irq-mst-intc.c
index 7f760f555a76..e4c1281e9ae4 100644
--- a/drivers/irqchip/irq-mst-intc.c
+++ b/drivers/irqchip/irq-mst-intc.c
@@ -263,7 +263,7 @@ static int __init mst_intc_of_init(struct device_node *dn,
of_property_read_u32_index(dn, "mstar,irqs-map-range", 1, &irq_end))
return -EINVAL;
- cd = kzalloc(sizeof(*cd), GFP_KERNEL);
+ cd = kzalloc_obj(*cd, GFP_KERNEL);
if (!cd)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-mtk-cirq.c b/drivers/irqchip/irq-mtk-cirq.c
index 9571f622774e..1ac2b2ae94cf 100644
--- a/drivers/irqchip/irq-mtk-cirq.c
+++ b/drivers/irqchip/irq-mtk-cirq.c
@@ -311,7 +311,7 @@ static int __init mtk_cirq_of_init(struct device_node *node,
return -EINVAL;
}
- cirq_data = kzalloc(sizeof(*cirq_data), GFP_KERNEL);
+ cirq_data = kzalloc_obj(*cirq_data, GFP_KERNEL);
if (!cirq_data)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-mtk-sysirq.c b/drivers/irqchip/irq-mtk-sysirq.c
index 6895e7096b27..1988bb02b4d3 100644
--- a/drivers/irqchip/irq-mtk-sysirq.c
+++ b/drivers/irqchip/irq-mtk-sysirq.c
@@ -133,7 +133,7 @@ static int __init mtk_sysirq_of_init(struct device_node *node,
return -EINVAL;
}
- chip_data = kzalloc(sizeof(*chip_data), GFP_KERNEL);
+ chip_data = kzalloc_obj(*chip_data, GFP_KERNEL);
if (!chip_data)
return -ENOMEM;
@@ -154,9 +154,8 @@ static int __init mtk_sysirq_of_init(struct device_node *node,
goto out_free_chip;
}
- chip_data->intpol_bases = kcalloc(nr_intpol_bases,
- sizeof(*chip_data->intpol_bases),
- GFP_KERNEL);
+ chip_data->intpol_bases = kzalloc_objs(*chip_data->intpol_bases,
+ nr_intpol_bases, GFP_KERNEL);
if (!chip_data->intpol_bases) {
ret = -ENOMEM;
goto out_free_intpol_words;
diff --git a/drivers/irqchip/irq-mvebu-odmi.c b/drivers/irqchip/irq-mvebu-odmi.c
index e5b2bde3d933..933511ec6d1f 100644
--- a/drivers/irqchip/irq-mvebu-odmi.c
+++ b/drivers/irqchip/irq-mvebu-odmi.c
@@ -178,7 +178,7 @@ static int __init mvebu_odmi_init(struct device_node *node,
if (of_property_read_u32(node, "marvell,odmi-frames", &odmis_count))
return -EINVAL;
- odmis = kcalloc(odmis_count, sizeof(struct odmi_data), GFP_KERNEL);
+ odmis = kzalloc_objs(struct odmi_data, odmis_count, GFP_KERNEL);
if (!odmis)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-owl-sirq.c b/drivers/irqchip/irq-owl-sirq.c
index 3d93d21f6732..f1985a2dc6a1 100644
--- a/drivers/irqchip/irq-owl-sirq.c
+++ b/drivers/irqchip/irq-owl-sirq.c
@@ -288,7 +288,7 @@ static int __init owl_sirq_init(const struct owl_sirq_params *params,
return -ENXIO;
}
- chip_data = kzalloc(sizeof(*chip_data), GFP_KERNEL);
+ chip_data = kzalloc_obj(*chip_data, GFP_KERNEL);
if (!chip_data)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-pic32-evic.c b/drivers/irqchip/irq-pic32-evic.c
index d87aca73c009..be99b64bc35d 100644
--- a/drivers/irqchip/irq-pic32-evic.c
+++ b/drivers/irqchip/irq-pic32-evic.c
@@ -221,7 +221,7 @@ static int __init pic32_of_init(struct device_node *node,
if (!evic_base)
return -ENOMEM;
- priv = kcalloc(nchips, sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_objs(*priv, nchips, GFP_KERNEL);
if (!priv) {
ret = -ENOMEM;
goto err_iounmap;
diff --git a/drivers/irqchip/irq-riscv-imsic-state.c b/drivers/irqchip/irq-riscv-imsic-state.c
index 7566c8aa2d48..101b871a6014 100644
--- a/drivers/irqchip/irq-riscv-imsic-state.c
+++ b/drivers/irqchip/irq-riscv-imsic-state.c
@@ -512,8 +512,8 @@ static int __init imsic_local_init(void)
#endif
/* Allocate vector array */
- lpriv->vectors = kcalloc(global->nr_ids + 1, sizeof(*lpriv->vectors),
- GFP_KERNEL);
+ lpriv->vectors = kzalloc_objs(*lpriv->vectors,
+ global->nr_ids + 1, GFP_KERNEL);
if (!lpriv->vectors)
goto fail_local_cleanup;
@@ -810,7 +810,7 @@ int __init imsic_setup_state(struct fwnode_handle *fwnode, void *opaque)
return -ENODEV;
}
- imsic = kzalloc(sizeof(*imsic), GFP_KERNEL);
+ imsic = kzalloc_obj(*imsic, GFP_KERNEL);
if (!imsic)
return -ENOMEM;
imsic->fwnode = fwnode;
@@ -828,14 +828,14 @@ int __init imsic_setup_state(struct fwnode_handle *fwnode, void *opaque)
goto out_free_local;
/* Allocate MMIO resource array */
- mmios = kcalloc(nr_mmios, sizeof(*mmios), GFP_KERNEL);
+ mmios = kzalloc_objs(*mmios, nr_mmios, GFP_KERNEL);
if (!mmios) {
rc = -ENOMEM;
goto out_free_local;
}
/* Allocate MMIO virtual address array */
- mmios_va = kcalloc(nr_mmios, sizeof(*mmios_va), GFP_KERNEL);
+ mmios_va = kzalloc_objs(*mmios_va, nr_mmios, GFP_KERNEL);
if (!mmios_va) {
rc = -ENOMEM;
goto out_iounmap;
diff --git a/drivers/irqchip/irq-riscv-intc.c b/drivers/irqchip/irq-riscv-intc.c
index 70290b35b317..8533a516de1c 100644
--- a/drivers/irqchip/irq-riscv-intc.c
+++ b/drivers/irqchip/irq-riscv-intc.c
@@ -349,13 +349,14 @@ static int __init riscv_intc_acpi_init(union acpi_subtable_headers *header,
if (count <= 0)
return -EINVAL;
- rintc_acpi_data = kcalloc(count, sizeof(*rintc_acpi_data), GFP_KERNEL);
+ rintc_acpi_data = kzalloc_objs(*rintc_acpi_data, count,
+ GFP_KERNEL);
if (!rintc_acpi_data)
return -ENOMEM;
}
rintc = (struct acpi_madt_rintc *)header;
- rintc_acpi_data[nr_rintc] = kzalloc(sizeof(*rintc_acpi_data[0]), GFP_KERNEL);
+ rintc_acpi_data[nr_rintc] = kzalloc_obj(*rintc_acpi_data[0], GFP_KERNEL);
if (!rintc_acpi_data[nr_rintc])
return -ENOMEM;
diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive-plic.c
index 60fd8f91762b..39e85561e8b3 100644
--- a/drivers/irqchip/irq-sifive-plic.c
+++ b/drivers/irqchip/irq-sifive-plic.c
@@ -640,7 +640,7 @@ static int plic_probe(struct fwnode_handle *fwnode)
if (error)
goto fail_free_regs;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
error = -ENOMEM;
goto fail_free_regs;
diff --git a/drivers/irqchip/irq-sni-exiu.c b/drivers/irqchip/irq-sni-exiu.c
index 0cad68aa8388..2e5596048988 100644
--- a/drivers/irqchip/irq-sni-exiu.c
+++ b/drivers/irqchip/irq-sni-exiu.c
@@ -199,7 +199,7 @@ static struct exiu_irq_data *exiu_init(const struct fwnode_handle *fwnode,
struct exiu_irq_data *data;
int err;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/irqchip/irq-starfive-jh8100-intc.c b/drivers/irqchip/irq-starfive-jh8100-intc.c
index 705361b4ebe0..aa0a15f97ccf 100644
--- a/drivers/irqchip/irq-starfive-jh8100-intc.c
+++ b/drivers/irqchip/irq-starfive-jh8100-intc.c
@@ -123,7 +123,7 @@ static int starfive_intc_probe(struct platform_device *pdev, struct device_node
int parent_irq;
int ret;
- irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
+ irqc = kzalloc_obj(*irqc, GFP_KERNEL);
if (!irqc)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-stm32-exti.c b/drivers/irqchip/irq-stm32-exti.c
index 978811f2abe8..c27aaf7e506a 100644
--- a/drivers/irqchip/irq-stm32-exti.c
+++ b/drivers/irqchip/irq-stm32-exti.c
@@ -269,14 +269,13 @@ stm32_exti_host_data *stm32_exti_host_init(const struct stm32_exti_drv_data *dd,
{
struct stm32_exti_host_data *host_data;
- host_data = kzalloc(sizeof(*host_data), GFP_KERNEL);
+ host_data = kzalloc_obj(*host_data, GFP_KERNEL);
if (!host_data)
return NULL;
host_data->drv_data = dd;
- host_data->chips_data = kcalloc(dd->bank_nr,
- sizeof(struct stm32_exti_chip_data),
- GFP_KERNEL);
+ host_data->chips_data = kzalloc_objs(struct stm32_exti_chip_data,
+ dd->bank_nr, GFP_KERNEL);
if (!host_data->chips_data)
goto free_host_data;
diff --git a/drivers/irqchip/irq-sun4i.c b/drivers/irqchip/irq-sun4i.c
index 9c2c9caeca2a..dde777304171 100644
--- a/drivers/irqchip/irq-sun4i.c
+++ b/drivers/irqchip/irq-sun4i.c
@@ -146,7 +146,7 @@ static int __init sun4i_of_init(struct device_node *node,
static int __init sun4i_ic_of_init(struct device_node *node,
struct device_node *parent)
{
- irq_ic_data = kzalloc(sizeof(struct sun4i_irq_chip_data), GFP_KERNEL);
+ irq_ic_data = kzalloc_obj(struct sun4i_irq_chip_data, GFP_KERNEL);
if (!irq_ic_data)
return -ENOMEM;
@@ -161,7 +161,7 @@ IRQCHIP_DECLARE(allwinner_sun4i_ic, "allwinner,sun4i-a10-ic", sun4i_ic_of_init);
static int __init suniv_ic_of_init(struct device_node *node,
struct device_node *parent)
{
- irq_ic_data = kzalloc(sizeof(struct sun4i_irq_chip_data), GFP_KERNEL);
+ irq_ic_data = kzalloc_obj(struct sun4i_irq_chip_data, GFP_KERNEL);
if (!irq_ic_data)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-tegra.c b/drivers/irqchip/irq-tegra.c
index b6382cf6359a..f0cd19f88cf0 100644
--- a/drivers/irqchip/irq-tegra.c
+++ b/drivers/irqchip/irq-tegra.c
@@ -302,7 +302,7 @@ static int __init tegra_ictlr_init(struct device_node *node,
soc = match->data;
- lic = kzalloc(sizeof(*lic), GFP_KERNEL);
+ lic = kzalloc_obj(*lic, GFP_KERNEL);
if (!lic)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-ti-sci-inta.c b/drivers/irqchip/irq-ti-sci-inta.c
index 01963d36cfaf..93aaf19fc4bc 100644
--- a/drivers/irqchip/irq-ti-sci-inta.c
+++ b/drivers/irqchip/irq-ti-sci-inta.c
@@ -222,7 +222,7 @@ static struct ti_sci_inta_vint_desc *ti_sci_inta_alloc_parent_irq(struct irq_dom
goto free_vint;
}
- vint_desc = kzalloc(sizeof(*vint_desc), GFP_KERNEL);
+ vint_desc = kzalloc_obj(*vint_desc, GFP_KERNEL);
if (!vint_desc) {
ret = -ENOMEM;
goto free_vint;
diff --git a/drivers/irqchip/irq-vf610-mscm-ir.c b/drivers/irqchip/irq-vf610-mscm-ir.c
index 5d9c7503aa7f..750b3d5b4c1d 100644
--- a/drivers/irqchip/irq-vf610-mscm-ir.c
+++ b/drivers/irqchip/irq-vf610-mscm-ir.c
@@ -188,7 +188,7 @@ static int __init vf610_mscm_ir_of_init(struct device_node *node,
return -EINVAL;
}
- mscm_ir_data = kzalloc(sizeof(*mscm_ir_data), GFP_KERNEL);
+ mscm_ir_data = kzalloc_obj(*mscm_ir_data, GFP_KERNEL);
if (!mscm_ir_data)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-vt8500.c b/drivers/irqchip/irq-vt8500.c
index 3b742590aec8..48bd0ac5cf63 100644
--- a/drivers/irqchip/irq-vt8500.c
+++ b/drivers/irqchip/irq-vt8500.c
@@ -203,7 +203,7 @@ static int __init vt8500_irq_init(struct device_node *node,
struct vt8500_irq_data *intc;
int irq, i, ret = 0;
- intc = kzalloc(sizeof(*intc), GFP_KERNEL);
+ intc = kzalloc_obj(*intc, GFP_KERNEL);
if (!intc)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-wpcm450-aic.c b/drivers/irqchip/irq-wpcm450-aic.c
index a8ed4894d29e..22ee3cfbfa03 100644
--- a/drivers/irqchip/irq-wpcm450-aic.c
+++ b/drivers/irqchip/irq-wpcm450-aic.c
@@ -139,7 +139,7 @@ static int __init wpcm450_aic_of_init(struct device_node *node,
if (parent)
return -EINVAL;
- aic = kzalloc(sizeof(*aic), GFP_KERNEL);
+ aic = kzalloc_obj(*aic, GFP_KERNEL);
if (!aic)
return -ENOMEM;
diff --git a/drivers/irqchip/irq-xilinx-intc.c b/drivers/irqchip/irq-xilinx-intc.c
index 92dcb9fdcb25..b922226adbee 100644
--- a/drivers/irqchip/irq-xilinx-intc.c
+++ b/drivers/irqchip/irq-xilinx-intc.c
@@ -171,7 +171,7 @@ static int __init xilinx_intc_of_init(struct device_node *intc,
struct xintc_irq_chip *irqc;
int ret, irq;
- irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
+ irqc = kzalloc_obj(*irqc, GFP_KERNEL);
if (!irqc)
return -ENOMEM;
irqc->base = of_iomap(intc, 0);
diff --git a/drivers/irqchip/qcom-pdc.c b/drivers/irqchip/qcom-pdc.c
index 518f7f0f3dab..10d54ab3ad90 100644
--- a/drivers/irqchip/qcom-pdc.c
+++ b/drivers/irqchip/qcom-pdc.c
@@ -318,7 +318,7 @@ static int pdc_setup_pin_mapping(struct device_node *np)
return -EINVAL;
pdc_region_cnt = n / 3;
- pdc_region = kcalloc(pdc_region_cnt, sizeof(*pdc_region), GFP_KERNEL);
+ pdc_region = kzalloc_objs(*pdc_region, pdc_region_cnt, GFP_KERNEL);
if (!pdc_region) {
pdc_region_cnt = 0;
return -ENOMEM;
diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c
index 78e6e7748fb9..b1b367353b4f 100644
--- a/drivers/isdn/capi/capi.c
+++ b/drivers/isdn/capi/capi.c
@@ -148,7 +148,7 @@ static int capiminor_add_ack(struct capiminor *mp, u16 datahandle)
{
struct ackqueue_entry *n;
- n = kmalloc(sizeof(*n), GFP_ATOMIC);
+ n = kmalloc_obj(*n, GFP_ATOMIC);
if (unlikely(!n)) {
printk(KERN_ERR "capi: alloc datahandle failed\n");
return -1;
@@ -215,7 +215,7 @@ static struct capiminor *capiminor_alloc(struct capi20_appl *ap, u32 ncci)
struct device *dev;
unsigned int minor;
- mp = kzalloc(sizeof(*mp), GFP_KERNEL);
+ mp = kzalloc_obj(*mp, GFP_KERNEL);
if (!mp) {
printk(KERN_ERR "capi: can't alloc capiminor\n");
return NULL;
@@ -341,7 +341,7 @@ static struct capincci *capincci_alloc(struct capidev *cdev, u32 ncci)
{
struct capincci *np;
- np = kzalloc(sizeof(*np), GFP_KERNEL);
+ np = kzalloc_obj(*np, GFP_KERNEL);
if (!np)
return NULL;
np->ncci = ncci;
@@ -981,7 +981,7 @@ static int capi_open(struct inode *inode, struct file *file)
{
struct capidev *cdev;
- cdev = kzalloc(sizeof(*cdev), GFP_KERNEL);
+ cdev = kzalloc_obj(*cdev, GFP_KERNEL);
if (!cdev)
return -ENOMEM;
@@ -1259,8 +1259,8 @@ static int __init capinc_tty_init(void)
if (capi_ttyminors <= 0)
capi_ttyminors = CAPINC_NR_PORTS;
- capiminors = kcalloc(capi_ttyminors, sizeof(struct capiminor *),
- GFP_KERNEL);
+ capiminors = kzalloc_objs(struct capiminor *, capi_ttyminors,
+ GFP_KERNEL);
if (!capiminors)
return -ENOMEM;
diff --git a/drivers/isdn/capi/capiutil.c b/drivers/isdn/capi/capiutil.c
index d7ae42edc4a8..298029340ba8 100644
--- a/drivers/isdn/capi/capiutil.c
+++ b/drivers/isdn/capi/capiutil.c
@@ -538,7 +538,7 @@ static _cdebbuf *cdebbuf_alloc(void)
cdb = g_debbuf;
goto init;
} else
- cdb = kmalloc(sizeof(_cdebbuf), GFP_ATOMIC);
+ cdb = kmalloc_obj(_cdebbuf, GFP_ATOMIC);
if (!cdb)
return NULL;
cdb->buf = kmalloc(CDEBUG_SIZE, GFP_ATOMIC);
@@ -592,7 +592,7 @@ _cdebbuf *capi_message2str(u8 *msg)
if (likely(cdb == g_debbuf))
cmsg = g_cmsg;
else
- cmsg = kmalloc(sizeof(_cmsg), GFP_ATOMIC);
+ cmsg = kmalloc_obj(_cmsg, GFP_ATOMIC);
if (unlikely(!cmsg)) {
cdebbuf_free(cdb);
return NULL;
@@ -618,10 +618,10 @@ _cdebbuf *capi_message2str(u8 *msg)
int __init cdebug_init(void)
{
- g_cmsg = kmalloc(sizeof(_cmsg), GFP_KERNEL);
+ g_cmsg = kmalloc_obj(_cmsg, GFP_KERNEL);
if (!g_cmsg)
return -ENOMEM;
- g_debbuf = kmalloc(sizeof(_cdebbuf), GFP_KERNEL);
+ g_debbuf = kmalloc_obj(_cdebbuf, GFP_KERNEL);
if (!g_debbuf) {
kfree(g_cmsg);
return -ENOMEM;
diff --git a/drivers/isdn/capi/kcapi.c b/drivers/isdn/capi/kcapi.c
index e8f7e52354bc..f9fa17d68095 100644
--- a/drivers/isdn/capi/kcapi.c
+++ b/drivers/isdn/capi/kcapi.c
@@ -253,7 +253,7 @@ static void do_notify_work(struct work_struct *work)
static int notify_push(unsigned int event_type, u32 controller)
{
- struct capictr_event *event = kmalloc(sizeof(*event), GFP_ATOMIC);
+ struct capictr_event *event = kmalloc_obj(*event, GFP_ATOMIC);
if (!event)
return -ENOMEM;
diff --git a/drivers/isdn/hardware/mISDN/avmfritz.c b/drivers/isdn/hardware/mISDN/avmfritz.c
index 044e4961376c..e833b45834d2 100644
--- a/drivers/isdn/hardware/mISDN/avmfritz.c
+++ b/drivers/isdn/hardware/mISDN/avmfritz.c
@@ -1090,7 +1090,7 @@ fritzpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
int err = -ENOMEM;
struct fritzcard *card;
- card = kzalloc(sizeof(struct fritzcard), GFP_KERNEL);
+ card = kzalloc_obj(struct fritzcard, GFP_KERNEL);
if (!card) {
pr_info("No kmem for fritzcard\n");
return err;
diff --git a/drivers/isdn/hardware/mISDN/hfcmulti.c b/drivers/isdn/hardware/mISDN/hfcmulti.c
index f6c27ca92c01..23db1ca03fa6 100644
--- a/drivers/isdn/hardware/mISDN/hfcmulti.c
+++ b/drivers/isdn/hardware/mISDN/hfcmulti.c
@@ -4777,7 +4777,7 @@ init_e1_port(struct hfc_multi *hc, struct hm_map *m, int pt)
char name[MISDN_MAX_IDLEN];
int bcount = 0;
- dch = kzalloc(sizeof(struct dchannel), GFP_KERNEL);
+ dch = kzalloc_obj(struct dchannel, GFP_KERNEL);
if (!dch)
return -ENOMEM;
dch->debug = debug;
@@ -4795,7 +4795,7 @@ init_e1_port(struct hfc_multi *hc, struct hm_map *m, int pt)
for (ch = 1; ch <= 31; ch++) {
if (!((1 << ch) & hc->bmask[pt])) /* skip unused channel */
continue;
- bch = kzalloc(sizeof(struct bchannel), GFP_KERNEL);
+ bch = kzalloc_obj(struct bchannel, GFP_KERNEL);
if (!bch) {
printk(KERN_ERR "%s: no memory for bchannel\n",
__func__);
@@ -4850,7 +4850,7 @@ init_multi_port(struct hfc_multi *hc, int pt)
int ch, i, ret = 0;
char name[MISDN_MAX_IDLEN];
- dch = kzalloc(sizeof(struct dchannel), GFP_KERNEL);
+ dch = kzalloc_obj(struct dchannel, GFP_KERNEL);
if (!dch)
return -ENOMEM;
dch->debug = debug;
@@ -4868,7 +4868,7 @@ init_multi_port(struct hfc_multi *hc, int pt)
hc->chan[i + 2].port = pt;
hc->chan[i + 2].nt_timer = -1;
for (ch = 0; ch < dch->dev.nrbchan; ch++) {
- bch = kzalloc(sizeof(struct bchannel), GFP_KERNEL);
+ bch = kzalloc_obj(struct bchannel, GFP_KERNEL);
if (!bch) {
printk(KERN_ERR "%s: no memory for bchannel\n",
__func__);
@@ -4991,7 +4991,7 @@ hfcmulti_init(struct hm_map *m, struct pci_dev *pdev,
type[HFC_cnt]);
/* allocate card+fifo structure */
- hc = kzalloc(sizeof(struct hfc_multi), GFP_KERNEL);
+ hc = kzalloc_obj(struct hfc_multi, GFP_KERNEL);
if (!hc) {
printk(KERN_ERR "No kmem for HFC-Multi card\n");
return -ENOMEM;
diff --git a/drivers/isdn/hardware/mISDN/hfcpci.c b/drivers/isdn/hardware/mISDN/hfcpci.c
index ea8a0ab47afd..6446eea8d9bb 100644
--- a/drivers/isdn/hardware/mISDN/hfcpci.c
+++ b/drivers/isdn/hardware/mISDN/hfcpci.c
@@ -2225,7 +2225,7 @@ hfc_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
struct hfc_pci *card;
struct _hfc_map *m = (struct _hfc_map *)ent->driver_data;
- card = kzalloc(sizeof(struct hfc_pci), GFP_KERNEL);
+ card = kzalloc_obj(struct hfc_pci, GFP_KERNEL);
if (!card) {
printk(KERN_ERR "No kmem for HFC card\n");
return err;
diff --git a/drivers/isdn/hardware/mISDN/hfcsusb.c b/drivers/isdn/hardware/mISDN/hfcsusb.c
index 541a20cb58f1..293add6adeaf 100644
--- a/drivers/isdn/hardware/mISDN/hfcsusb.c
+++ b/drivers/isdn/hardware/mISDN/hfcsusb.c
@@ -249,7 +249,7 @@ hfcsusb_ph_info(struct hfcsusb *hw)
struct dchannel *dch = &hw->dch;
int i;
- phi = kzalloc(struct_size(phi, bch, dch->dev.nrbchan), GFP_ATOMIC);
+ phi = kzalloc_flex(*phi, bch, dch->dev.nrbchan, GFP_ATOMIC);
if (!phi)
return -ENOMEM;
@@ -1696,7 +1696,7 @@ hfcsusb_stop_endpoint(struct hfcsusb *hw, int channel)
static int
setup_hfcsusb(struct hfcsusb *hw)
{
- void *dmabuf = kmalloc(sizeof(u_char), GFP_KERNEL);
+ void *dmabuf = kmalloc_obj(u_char, GFP_KERNEL);
u_char b;
int ret;
@@ -2018,7 +2018,7 @@ hfcsusb_probe(struct usb_interface *intf, const struct usb_device_id *id)
return -EIO;
iface = iface_used;
- hw = kzalloc(sizeof(struct hfcsusb), GFP_KERNEL);
+ hw = kzalloc_obj(struct hfcsusb, GFP_KERNEL);
if (!hw)
return -ENOMEM; /* got no mem */
snprintf(hw->name, MISDN_MAX_IDLEN - 1, "%s", DRIVER_NAME);
diff --git a/drivers/isdn/hardware/mISDN/mISDNinfineon.c b/drivers/isdn/hardware/mISDN/mISDNinfineon.c
index 30876a012711..09d85c5f2ca5 100644
--- a/drivers/isdn/hardware/mISDN/mISDNinfineon.c
+++ b/drivers/isdn/hardware/mISDN/mISDNinfineon.c
@@ -1074,7 +1074,7 @@ inf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
int err = -ENOMEM;
struct inf_hw *card;
- card = kzalloc(sizeof(struct inf_hw), GFP_KERNEL);
+ card = kzalloc_obj(struct inf_hw, GFP_KERNEL);
if (!card) {
pr_info("No memory for Infineon ISDN card\n");
return err;
@@ -1108,7 +1108,7 @@ inf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
struct inf_hw *sc;
for (i = 1; i < 4; i++) {
- sc = kzalloc(sizeof(struct inf_hw), GFP_KERNEL);
+ sc = kzalloc_obj(struct inf_hw, GFP_KERNEL);
if (!sc) {
release_card(card);
pci_disable_device(pdev);
diff --git a/drivers/isdn/hardware/mISDN/netjet.c b/drivers/isdn/hardware/mISDN/netjet.c
index d163850c295e..e5c28f25d190 100644
--- a/drivers/isdn/hardware/mISDN/netjet.c
+++ b/drivers/isdn/hardware/mISDN/netjet.c
@@ -1070,7 +1070,7 @@ nj_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
return -ENODEV;
}
- card = kzalloc(sizeof(struct tiger_hw), GFP_KERNEL);
+ card = kzalloc_obj(struct tiger_hw, GFP_KERNEL);
if (!card) {
pr_info("No kmem for Netjet\n");
return err;
diff --git a/drivers/isdn/hardware/mISDN/speedfax.c b/drivers/isdn/hardware/mISDN/speedfax.c
index 0c405261d940..5df9fd5b0c9c 100644
--- a/drivers/isdn/hardware/mISDN/speedfax.c
+++ b/drivers/isdn/hardware/mISDN/speedfax.c
@@ -443,7 +443,7 @@ static int
sfaxpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{
int err = -ENOMEM;
- struct sfax_hw *card = kzalloc(sizeof(struct sfax_hw), GFP_KERNEL);
+ struct sfax_hw *card = kzalloc_obj(struct sfax_hw, GFP_KERNEL);
if (!card) {
pr_info("No memory for Speedfax+ PCI\n");
diff --git a/drivers/isdn/hardware/mISDN/w6692.c b/drivers/isdn/hardware/mISDN/w6692.c
index 168fc345dcdc..60bb2f302b1c 100644
--- a/drivers/isdn/hardware/mISDN/w6692.c
+++ b/drivers/isdn/hardware/mISDN/w6692.c
@@ -1342,7 +1342,7 @@ w6692_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
struct w6692_hw *card;
struct w6692map *m = (struct w6692map *)ent->driver_data;
- card = kzalloc(sizeof(struct w6692_hw), GFP_KERNEL);
+ card = kzalloc_obj(struct w6692_hw, GFP_KERNEL);
if (!card) {
pr_info("No kmem for w6692 card\n");
return err;
diff --git a/drivers/isdn/mISDN/clock.c b/drivers/isdn/mISDN/clock.c
index f71eb61db131..2668be9de20a 100644
--- a/drivers/isdn/mISDN/clock.c
+++ b/drivers/isdn/mISDN/clock.c
@@ -91,7 +91,7 @@ struct mISDNclock
if (*debug & (DEBUG_CORE | DEBUG_CLOCK))
printk(KERN_DEBUG "%s: %s %d\n", __func__, name, pri);
- iclock = kzalloc(sizeof(struct mISDNclock), GFP_ATOMIC);
+ iclock = kzalloc_obj(struct mISDNclock, GFP_ATOMIC);
if (!iclock) {
printk(KERN_ERR "%s: No memory for clock entry.\n", __func__);
return NULL;
diff --git a/drivers/isdn/mISDN/dsp_cmx.c b/drivers/isdn/mISDN/dsp_cmx.c
index 53fad9487574..d5eb2349c414 100644
--- a/drivers/isdn/mISDN/dsp_cmx.c
+++ b/drivers/isdn/mISDN/dsp_cmx.c
@@ -226,7 +226,7 @@ dsp_cmx_add_conf_member(struct dsp *dsp, struct dsp_conf *conf)
return -EINVAL;
}
- member = kzalloc(sizeof(struct dsp_conf_member), GFP_ATOMIC);
+ member = kzalloc_obj(struct dsp_conf_member, GFP_ATOMIC);
if (!member) {
printk(KERN_ERR "kzalloc struct dsp_conf_member failed\n");
return -ENOMEM;
@@ -305,7 +305,7 @@ static struct dsp_conf
return NULL;
}
- conf = kzalloc(sizeof(struct dsp_conf), GFP_ATOMIC);
+ conf = kzalloc_obj(struct dsp_conf, GFP_ATOMIC);
if (!conf) {
printk(KERN_ERR "kzalloc struct dsp_conf failed\n");
return NULL;
diff --git a/drivers/isdn/mISDN/dsp_pipeline.c b/drivers/isdn/mISDN/dsp_pipeline.c
index b4ed0bb8ddfb..55693dc7206b 100644
--- a/drivers/isdn/mISDN/dsp_pipeline.c
+++ b/drivers/isdn/mISDN/dsp_pipeline.c
@@ -75,7 +75,7 @@ int mISDN_dsp_element_register(struct mISDN_dsp_element *elem)
if (!elem)
return -EINVAL;
- entry = kzalloc(sizeof(struct dsp_element_entry), GFP_ATOMIC);
+ entry = kzalloc_obj(struct dsp_element_entry, GFP_ATOMIC);
if (!entry)
return -ENOMEM;
@@ -223,8 +223,8 @@ int dsp_pipeline_build(struct dsp_pipeline *pipeline, const char *cfg)
if (!strcmp(entry->elem->name, name)) {
elem = entry->elem;
- pipeline_entry = kmalloc(sizeof(struct
- dsp_pipeline_entry), GFP_ATOMIC);
+ pipeline_entry = kmalloc_obj(struct dsp_pipeline_entry,
+ GFP_ATOMIC);
if (!pipeline_entry) {
printk(KERN_ERR "%s: failed to add "
"entry to pipeline: %s (out of "
diff --git a/drivers/isdn/mISDN/l1oip_core.c b/drivers/isdn/mISDN/l1oip_core.c
index 6ab036e4a35f..2e02a81fe760 100644
--- a/drivers/isdn/mISDN/l1oip_core.c
+++ b/drivers/isdn/mISDN/l1oip_core.c
@@ -1370,7 +1370,7 @@ init_card(struct l1oip *hc, int pri, int bundle)
(hc->remoteip >> 8) & 0xff, hc->remoteip & 0xff,
hc->remoteport, hc->ondemand);
- dch = kzalloc(sizeof(struct dchannel), GFP_KERNEL);
+ dch = kzalloc_obj(struct dchannel, GFP_KERNEL);
if (!dch)
return -ENOMEM;
dch->debug = debug;
@@ -1391,7 +1391,7 @@ init_card(struct l1oip *hc, int pri, int bundle)
for (ch = 0; ch < dch->dev.nrbchan; ch++) {
if (ch == 15)
i++;
- bch = kzalloc(sizeof(struct bchannel), GFP_KERNEL);
+ bch = kzalloc_obj(struct bchannel, GFP_KERNEL);
if (!bch) {
printk(KERN_ERR "%s: no memory for bchannel\n",
__func__);
@@ -1477,7 +1477,7 @@ l1oip_init(void)
bundle ? "bundled IP packet for all B-channels" :
"separate IP packets for every B-channel");
- hc = kzalloc(sizeof(struct l1oip), GFP_ATOMIC);
+ hc = kzalloc_obj(struct l1oip, GFP_ATOMIC);
if (!hc) {
printk(KERN_ERR "No kmem for L1-over-IP driver.\n");
l1oip_cleanup();
diff --git a/drivers/isdn/mISDN/layer1.c b/drivers/isdn/mISDN/layer1.c
index 7b31c25a550e..3fbc170acf9a 100644
--- a/drivers/isdn/mISDN/layer1.c
+++ b/drivers/isdn/mISDN/layer1.c
@@ -374,7 +374,7 @@ int
create_l1(struct dchannel *dch, dchannel_l1callback *dcb) {
struct layer1 *nl1;
- nl1 = kzalloc(sizeof(struct layer1), GFP_ATOMIC);
+ nl1 = kzalloc_obj(struct layer1, GFP_ATOMIC);
if (!nl1) {
printk(KERN_ERR "kmalloc struct layer1 failed\n");
return -ENOMEM;
diff --git a/drivers/isdn/mISDN/layer2.c b/drivers/isdn/mISDN/layer2.c
index 5bf7fcb282c4..ea32330c1612 100644
--- a/drivers/isdn/mISDN/layer2.c
+++ b/drivers/isdn/mISDN/layer2.c
@@ -2111,7 +2111,7 @@ create_l2(struct mISDNchannel *ch, u_int protocol, u_long options, int tei,
struct layer2 *l2;
struct channel_req rq;
- l2 = kzalloc(sizeof(struct layer2), GFP_KERNEL);
+ l2 = kzalloc_obj(struct layer2, GFP_KERNEL);
if (!l2) {
printk(KERN_ERR "kzalloc layer2 failed\n");
return NULL;
diff --git a/drivers/isdn/mISDN/stack.c b/drivers/isdn/mISDN/stack.c
index c2f76f398613..4226bae0f8c6 100644
--- a/drivers/isdn/mISDN/stack.c
+++ b/drivers/isdn/mISDN/stack.c
@@ -366,7 +366,7 @@ create_stack(struct mISDNdevice *dev)
int err;
DECLARE_COMPLETION_ONSTACK(done);
- newst = kzalloc(sizeof(struct mISDNstack), GFP_KERNEL);
+ newst = kzalloc_obj(struct mISDNstack, GFP_KERNEL);
if (!newst) {
printk(KERN_ERR "kmalloc mISDN_stack failed\n");
return -ENOMEM;
diff --git a/drivers/isdn/mISDN/tei.c b/drivers/isdn/mISDN/tei.c
index 59d28cb19738..e7c1d465cef3 100644
--- a/drivers/isdn/mISDN/tei.c
+++ b/drivers/isdn/mISDN/tei.c
@@ -803,7 +803,7 @@ create_new_tei(struct manager *mgr, int tei, int sapi)
printk(KERN_WARNING "%s:no memory for layer2\n", __func__);
return NULL;
}
- l2->tm = kzalloc(sizeof(struct teimgr), GFP_KERNEL);
+ l2->tm = kzalloc_obj(struct teimgr, GFP_KERNEL);
if (!l2->tm) {
kfree(l2);
printk(KERN_WARNING "%s:no memory for teimgr\n", __func__);
@@ -1046,7 +1046,7 @@ create_teimgr(struct manager *mgr, struct channel_req *crq)
crq->adr.tei, crq->adr.sapi);
if (!l2)
return -ENOMEM;
- l2->tm = kzalloc(sizeof(struct teimgr), GFP_KERNEL);
+ l2->tm = kzalloc_obj(struct teimgr, GFP_KERNEL);
if (!l2->tm) {
kfree(l2);
printk(KERN_ERR "kmalloc teimgr failed\n");
@@ -1345,7 +1345,7 @@ create_teimanager(struct mISDNdevice *dev)
{
struct manager *mgr;
- mgr = kzalloc(sizeof(struct manager), GFP_KERNEL);
+ mgr = kzalloc_obj(struct manager, GFP_KERNEL);
if (!mgr)
return -ENOMEM;
INIT_LIST_HEAD(&mgr->layer2);
diff --git a/drivers/isdn/mISDN/timerdev.c b/drivers/isdn/mISDN/timerdev.c
index 33521c328a82..25b9625b1cd8 100644
--- a/drivers/isdn/mISDN/timerdev.c
+++ b/drivers/isdn/mISDN/timerdev.c
@@ -47,7 +47,7 @@ mISDN_open(struct inode *ino, struct file *filep)
if (*debug & DEBUG_TIMER)
printk(KERN_DEBUG "%s(%p,%p)\n", __func__, ino, filep);
- dev = kmalloc(sizeof(struct mISDNtimerdev) , GFP_KERNEL);
+ dev = kmalloc_obj(struct mISDNtimerdev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
dev->next_id = 1;
@@ -179,7 +179,7 @@ misdn_add_timer(struct mISDNtimerdev *dev, int timeout)
wake_up_interruptible(&dev->wait);
id = 0;
} else {
- timer = kzalloc(sizeof(struct mISDNtimer), GFP_KERNEL);
+ timer = kzalloc_obj(struct mISDNtimer, GFP_KERNEL);
if (!timer)
return -ENOMEM;
timer->dev = dev;
diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c
index 3799dcc1cf07..2fdb713307c3 100644
--- a/drivers/leds/led-triggers.c
+++ b/drivers/leds/led-triggers.c
@@ -486,7 +486,7 @@ void led_trigger_register_simple(const char *name, struct led_trigger **tp)
struct led_trigger *trig;
int err;
- trig = kzalloc(sizeof(struct led_trigger), GFP_KERNEL);
+ trig = kzalloc_obj(struct led_trigger, GFP_KERNEL);
if (trig) {
trig->name = name;
diff --git a/drivers/leds/rgb/leds-qcom-lpg.c b/drivers/leds/rgb/leds-qcom-lpg.c
index f54851dfb42f..138c8fb3514c 100644
--- a/drivers/leds/rgb/leds-qcom-lpg.c
+++ b/drivers/leds/rgb/leds-qcom-lpg.c
@@ -996,7 +996,7 @@ static int lpg_pattern_set(struct lpg_led *led, struct led_pattern *led_pattern,
if (len % 2)
return -EINVAL;
- pattern = kcalloc(len / 2, sizeof(*pattern), GFP_KERNEL);
+ pattern = kzalloc_objs(*pattern, len / 2, GFP_KERNEL);
if (!pattern)
return -ENOMEM;
diff --git a/drivers/leds/trigger/ledtrig-activity.c b/drivers/leds/trigger/ledtrig-activity.c
index c973246a57f9..4f0c16b04876 100644
--- a/drivers/leds/trigger/ledtrig-activity.c
+++ b/drivers/leds/trigger/ledtrig-activity.c
@@ -188,7 +188,7 @@ static int activity_activate(struct led_classdev *led_cdev)
{
struct activity_data *activity_data;
- activity_data = kzalloc(sizeof(*activity_data), GFP_KERNEL);
+ activity_data = kzalloc_obj(*activity_data, GFP_KERNEL);
if (!activity_data)
return -ENOMEM;
diff --git a/drivers/leds/trigger/ledtrig-backlight.c b/drivers/leds/trigger/ledtrig-backlight.c
index c1f0f5becaee..80b33f13beee 100644
--- a/drivers/leds/trigger/ledtrig-backlight.c
+++ b/drivers/leds/trigger/ledtrig-backlight.c
@@ -102,7 +102,7 @@ static int bl_trig_activate(struct led_classdev *led)
{
struct bl_trig_notifier *n;
- n = kzalloc(sizeof(struct bl_trig_notifier), GFP_KERNEL);
+ n = kzalloc_obj(struct bl_trig_notifier, GFP_KERNEL);
if (!n)
return -ENOMEM;
led_set_trigger_data(led, n);
diff --git a/drivers/leds/trigger/ledtrig-gpio.c b/drivers/leds/trigger/ledtrig-gpio.c
index 7f6a2352b0ac..eec6de5ea3bc 100644
--- a/drivers/leds/trigger/ledtrig-gpio.c
+++ b/drivers/leds/trigger/ledtrig-gpio.c
@@ -78,7 +78,7 @@ static int gpio_trig_activate(struct led_classdev *led)
struct device *dev = led->dev;
int ret;
- gpio_data = kzalloc(sizeof(*gpio_data), GFP_KERNEL);
+ gpio_data = kzalloc_obj(*gpio_data, GFP_KERNEL);
if (!gpio_data)
return -ENOMEM;
diff --git a/drivers/leds/trigger/ledtrig-heartbeat.c b/drivers/leds/trigger/ledtrig-heartbeat.c
index 40eb61b6d54e..6ad8b486b058 100644
--- a/drivers/leds/trigger/ledtrig-heartbeat.c
+++ b/drivers/leds/trigger/ledtrig-heartbeat.c
@@ -129,7 +129,7 @@ static int heartbeat_trig_activate(struct led_classdev *led_cdev)
{
struct heartbeat_trig_data *heartbeat_data;
- heartbeat_data = kzalloc(sizeof(*heartbeat_data), GFP_KERNEL);
+ heartbeat_data = kzalloc_obj(*heartbeat_data, GFP_KERNEL);
if (!heartbeat_data)
return -ENOMEM;
diff --git a/drivers/leds/trigger/ledtrig-input-events.c b/drivers/leds/trigger/ledtrig-input-events.c
index 3c6414259c27..dcdea964311d 100644
--- a/drivers/leds/trigger/ledtrig-input-events.c
+++ b/drivers/leds/trigger/ledtrig-input-events.c
@@ -75,7 +75,7 @@ static int input_events_connect(struct input_handler *handler, struct input_dev
struct input_handle *handle;
int ret;
- handle = kzalloc(sizeof(*handle), GFP_KERNEL);
+ handle = kzalloc_obj(*handle, GFP_KERNEL);
if (!handle)
return -ENOMEM;
diff --git a/drivers/leds/trigger/ledtrig-netdev.c b/drivers/leds/trigger/ledtrig-netdev.c
index c15efe3e5078..e15e7dcdbcd9 100644
--- a/drivers/leds/trigger/ledtrig-netdev.c
+++ b/drivers/leds/trigger/ledtrig-netdev.c
@@ -691,7 +691,7 @@ static int netdev_trig_activate(struct led_classdev *led_cdev)
struct device *dev;
int rc;
- trigger_data = kzalloc(sizeof(struct led_netdev_data), GFP_KERNEL);
+ trigger_data = kzalloc_obj(struct led_netdev_data, GFP_KERNEL);
if (!trigger_data)
return -ENOMEM;
diff --git a/drivers/leds/trigger/ledtrig-oneshot.c b/drivers/leds/trigger/ledtrig-oneshot.c
index bee3bd452abf..b825e607bb9f 100644
--- a/drivers/leds/trigger/ledtrig-oneshot.c
+++ b/drivers/leds/trigger/ledtrig-oneshot.c
@@ -159,7 +159,7 @@ static int oneshot_trig_activate(struct led_classdev *led_cdev)
{
struct oneshot_trig_data *oneshot_data;
- oneshot_data = kzalloc(sizeof(*oneshot_data), GFP_KERNEL);
+ oneshot_data = kzalloc_obj(*oneshot_data, GFP_KERNEL);
if (!oneshot_data)
return -ENOMEM;
diff --git a/drivers/leds/trigger/ledtrig-pattern.c b/drivers/leds/trigger/ledtrig-pattern.c
index 9af3c18f14f4..9eaae7757c8e 100644
--- a/drivers/leds/trigger/ledtrig-pattern.c
+++ b/drivers/leds/trigger/ledtrig-pattern.c
@@ -465,7 +465,7 @@ static int pattern_trig_activate(struct led_classdev *led_cdev)
{
struct pattern_trig_data *data;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/leds/trigger/ledtrig-transient.c b/drivers/leds/trigger/ledtrig-transient.c
index 20f1351464b1..258e5d8db5b2 100644
--- a/drivers/leds/trigger/ledtrig-transient.c
+++ b/drivers/leds/trigger/ledtrig-transient.c
@@ -164,7 +164,7 @@ static int transient_trig_activate(struct led_classdev *led_cdev)
{
struct transient_trig_data *tdata;
- tdata = kzalloc(sizeof(struct transient_trig_data), GFP_KERNEL);
+ tdata = kzalloc_obj(struct transient_trig_data, GFP_KERNEL);
if (!tdata)
return -ENOMEM;
diff --git a/drivers/leds/trigger/ledtrig-tty.c b/drivers/leds/trigger/ledtrig-tty.c
index 8cf1485e8165..4ce915e417f8 100644
--- a/drivers/leds/trigger/ledtrig-tty.c
+++ b/drivers/leds/trigger/ledtrig-tty.c
@@ -312,7 +312,7 @@ static int ledtrig_tty_activate(struct led_classdev *led_cdev)
{
struct ledtrig_tty_data *trigger_data;
- trigger_data = kzalloc(sizeof(*trigger_data), GFP_KERNEL);
+ trigger_data = kzalloc_obj(*trigger_data, GFP_KERNEL);
if (!trigger_data)
return -ENOMEM;
diff --git a/drivers/leds/uleds.c b/drivers/leds/uleds.c
index 374a841f18c3..b70d203d0b16 100644
--- a/drivers/leds/uleds.c
+++ b/drivers/leds/uleds.c
@@ -53,7 +53,7 @@ static int uleds_open(struct inode *inode, struct file *file)
{
struct uleds_device *udev;
- udev = kzalloc(sizeof(*udev), GFP_KERNEL);
+ udev = kzalloc_obj(*udev, GFP_KERNEL);
if (!udev)
return -ENOMEM;
diff --git a/drivers/macintosh/adb.c b/drivers/macintosh/adb.c
index 88adee42ba82..959cfbee7387 100644
--- a/drivers/macintosh/adb.c
+++ b/drivers/macintosh/adb.c
@@ -674,7 +674,7 @@ static int adb_open(struct inode *inode, struct file *file)
ret = -ENXIO;
goto out;
}
- state = kmalloc(sizeof(struct adbdev_state), GFP_KERNEL);
+ state = kmalloc_obj(struct adbdev_state, GFP_KERNEL);
if (!state) {
ret = -ENOMEM;
goto out;
@@ -783,8 +783,7 @@ static ssize_t adb_write(struct file *file, const char __user *buf,
if (adb_controller == NULL)
return -ENXIO;
- req = kmalloc(sizeof(struct adb_request),
- GFP_KERNEL);
+ req = kmalloc_obj(struct adb_request, GFP_KERNEL);
if (req == NULL)
return -ENOMEM;
diff --git a/drivers/macintosh/adbhid.c b/drivers/macintosh/adbhid.c
index c5aabf238d0a..c995f1155a94 100644
--- a/drivers/macintosh/adbhid.c
+++ b/drivers/macintosh/adbhid.c
@@ -764,7 +764,7 @@ adbhid_input_register(int id, int default_id, int original_handler_id,
return -EEXIST;
}
- adbhid[id] = hid = kzalloc(sizeof(struct adbhid), GFP_KERNEL);
+ adbhid[id] = hid = kzalloc_obj(struct adbhid, GFP_KERNEL);
input_dev = input_allocate_device();
if (!hid || !input_dev) {
err = -ENOMEM;
diff --git a/drivers/macintosh/mac_hid.c b/drivers/macintosh/mac_hid.c
index 06fd910b3fd1..37f25b1f68c9 100644
--- a/drivers/macintosh/mac_hid.c
+++ b/drivers/macintosh/mac_hid.c
@@ -102,7 +102,7 @@ static int mac_hid_emumouse_connect(struct input_handler *handler,
if (dev == mac_hid_emumouse_dev)
return -ENODEV;
- handle = kzalloc(sizeof(struct input_handle), GFP_KERNEL);
+ handle = kzalloc_obj(struct input_handle, GFP_KERNEL);
if (!handle)
return -ENOMEM;
diff --git a/drivers/macintosh/macio_asic.c b/drivers/macintosh/macio_asic.c
index bede200e32e8..b11809c41417 100644
--- a/drivers/macintosh/macio_asic.c
+++ b/drivers/macintosh/macio_asic.c
@@ -368,7 +368,7 @@ static struct macio_dev * macio_add_one_device(struct macio_chip *chip,
if (np == NULL)
return NULL;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return NULL;
diff --git a/drivers/macintosh/rack-meter.c b/drivers/macintosh/rack-meter.c
index 896a43bd819f..f720c6c64b86 100644
--- a/drivers/macintosh/rack-meter.c
+++ b/drivers/macintosh/rack-meter.c
@@ -396,7 +396,7 @@ static int rackmeter_probe(struct macio_dev* mdev,
}
/* Create and initialize our instance data */
- rm = kzalloc(sizeof(*rm), GFP_KERNEL);
+ rm = kzalloc_obj(*rm, GFP_KERNEL);
if (rm == NULL) {
printk(KERN_ERR "rackmeter: failed to allocate memory !\n");
rc = -ENOMEM;
diff --git a/drivers/macintosh/smu.c b/drivers/macintosh/smu.c
index a1534cc6c641..8f1f57a00981 100644
--- a/drivers/macintosh/smu.c
+++ b/drivers/macintosh/smu.c
@@ -1081,7 +1081,7 @@ static int smu_open(struct inode *inode, struct file *file)
struct smu_private *pp;
unsigned long flags;
- pp = kzalloc(sizeof(struct smu_private), GFP_KERNEL);
+ pp = kzalloc_obj(struct smu_private, GFP_KERNEL);
if (!pp)
return -ENOMEM;
spin_lock_init(&pp->lock);
diff --git a/drivers/macintosh/therm_adt746x.c b/drivers/macintosh/therm_adt746x.c
index 00693741f744..0f8ac254ecee 100644
--- a/drivers/macintosh/therm_adt746x.c
+++ b/drivers/macintosh/therm_adt746x.c
@@ -498,7 +498,7 @@ static int probe_thermostat(struct i2c_client *client)
}
}
- th = kzalloc(sizeof(struct thermostat), GFP_KERNEL);
+ th = kzalloc_obj(struct thermostat, GFP_KERNEL);
if (!th)
return -ENOMEM;
diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c
index 5fe47e784d43..e721c84f51c3 100644
--- a/drivers/macintosh/via-pmu.c
+++ b/drivers/macintosh/via-pmu.c
@@ -2147,7 +2147,7 @@ pmu_open(struct inode *inode, struct file *file)
struct pmu_private *pp;
unsigned long flags;
- pp = kmalloc(sizeof(struct pmu_private), GFP_KERNEL);
+ pp = kmalloc_obj(struct pmu_private, GFP_KERNEL);
if (!pp)
return -ENOMEM;
pp->rb_get = pp->rb_put = 0;
diff --git a/drivers/macintosh/windfarm_ad7417_sensor.c b/drivers/macintosh/windfarm_ad7417_sensor.c
index 3ff4577ba847..40af189795d8 100644
--- a/drivers/macintosh/windfarm_ad7417_sensor.c
+++ b/drivers/macintosh/windfarm_ad7417_sensor.c
@@ -260,7 +260,7 @@ static int wf_ad7417_probe(struct i2c_client *client)
return -ENXIO;
}
- pv = kzalloc(sizeof(struct wf_ad7417_priv), GFP_KERNEL);
+ pv = kzalloc_obj(struct wf_ad7417_priv, GFP_KERNEL);
if (pv == NULL)
return -ENODEV;
diff --git a/drivers/macintosh/windfarm_cpufreq_clamp.c b/drivers/macintosh/windfarm_cpufreq_clamp.c
index 28d18ef22bbb..570b5428da1a 100644
--- a/drivers/macintosh/windfarm_cpufreq_clamp.c
+++ b/drivers/macintosh/windfarm_cpufreq_clamp.c
@@ -94,7 +94,7 @@ static int __init wf_cpufreq_clamp_init(void)
goto fail;
}
- clamp = kmalloc(sizeof(struct wf_control), GFP_KERNEL);
+ clamp = kmalloc_obj(struct wf_control, GFP_KERNEL);
if (clamp == NULL) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/macintosh/windfarm_fcu_controls.c b/drivers/macintosh/windfarm_fcu_controls.c
index 82365f19adb4..c3b95f968592 100644
--- a/drivers/macintosh/windfarm_fcu_controls.c
+++ b/drivers/macintosh/windfarm_fcu_controls.c
@@ -363,7 +363,7 @@ static void wf_fcu_add_fan(struct wf_fcu_priv *pv, const char *name,
{
struct wf_fcu_fan *fan;
- fan = kzalloc(sizeof(*fan), GFP_KERNEL);
+ fan = kzalloc_obj(*fan, GFP_KERNEL);
if (!fan)
return;
fan->fcu_priv = pv;
@@ -518,7 +518,7 @@ static int wf_fcu_probe(struct i2c_client *client)
{
struct wf_fcu_priv *pv;
- pv = kzalloc(sizeof(*pv), GFP_KERNEL);
+ pv = kzalloc_obj(*pv, GFP_KERNEL);
if (!pv)
return -ENOMEM;
diff --git a/drivers/macintosh/windfarm_lm75_sensor.c b/drivers/macintosh/windfarm_lm75_sensor.c
index b5d9c2e40148..188a1a56e34c 100644
--- a/drivers/macintosh/windfarm_lm75_sensor.c
+++ b/drivers/macintosh/windfarm_lm75_sensor.c
@@ -130,7 +130,7 @@ static int wf_lm75_probe(struct i2c_client *client)
return -ENXIO;
- lm = kzalloc(sizeof(struct wf_lm75_sensor), GFP_KERNEL);
+ lm = kzalloc_obj(struct wf_lm75_sensor, GFP_KERNEL);
if (lm == NULL)
return -ENODEV;
diff --git a/drivers/macintosh/windfarm_lm87_sensor.c b/drivers/macintosh/windfarm_lm87_sensor.c
index 16635e2b180b..dcaba5c7bec1 100644
--- a/drivers/macintosh/windfarm_lm87_sensor.c
+++ b/drivers/macintosh/windfarm_lm87_sensor.c
@@ -128,7 +128,7 @@ static int wf_lm87_probe(struct i2c_client *client)
return -ENODEV;
}
- lm = kzalloc(sizeof(struct wf_lm87_sensor), GFP_KERNEL);
+ lm = kzalloc_obj(struct wf_lm87_sensor, GFP_KERNEL);
if (lm == NULL)
return -ENODEV;
diff --git a/drivers/macintosh/windfarm_max6690_sensor.c b/drivers/macintosh/windfarm_max6690_sensor.c
index d734b31b8236..be9e75e2d3cf 100644
--- a/drivers/macintosh/windfarm_max6690_sensor.c
+++ b/drivers/macintosh/windfarm_max6690_sensor.c
@@ -85,7 +85,7 @@ static int wf_max6690_probe(struct i2c_client *client)
else
return -ENXIO;
- max = kzalloc(sizeof(struct wf_6690_sensor), GFP_KERNEL);
+ max = kzalloc_obj(struct wf_6690_sensor, GFP_KERNEL);
if (max == NULL) {
printk(KERN_ERR "windfarm: Couldn't create MAX6690 sensor: "
"no memory\n");
diff --git a/drivers/macintosh/windfarm_pm121.c b/drivers/macintosh/windfarm_pm121.c
index 660180c843a3..82e2e4aa6b2e 100644
--- a/drivers/macintosh/windfarm_pm121.c
+++ b/drivers/macintosh/windfarm_pm121.c
@@ -531,8 +531,8 @@ static void pm121_create_sys_fans(int loop_id)
control = controls[param->control_id];
/* Alloc & initialize state */
- pm121_sys_state[loop_id] = kmalloc(sizeof(struct pm121_sys_state),
- GFP_KERNEL);
+ pm121_sys_state[loop_id] = kmalloc_obj(struct pm121_sys_state,
+ GFP_KERNEL);
if (pm121_sys_state[loop_id] == NULL) {
printk(KERN_WARNING "pm121: Memory allocation error\n");
goto fail;
@@ -668,8 +668,7 @@ static void pm121_create_cpu_fans(void)
tmax = 0x5e0000; /* 94 degree default */
/* Alloc & initialize state */
- pm121_cpu_state = kmalloc(sizeof(struct pm121_cpu_state),
- GFP_KERNEL);
+ pm121_cpu_state = kmalloc_obj(struct pm121_cpu_state, GFP_KERNEL);
if (pm121_cpu_state == NULL)
goto fail;
pm121_cpu_state->ticks = 1;
diff --git a/drivers/macintosh/windfarm_pm81.c b/drivers/macintosh/windfarm_pm81.c
index ada97377e19e..f62a647a66a3 100644
--- a/drivers/macintosh/windfarm_pm81.c
+++ b/drivers/macintosh/windfarm_pm81.c
@@ -283,8 +283,7 @@ static void wf_smu_create_sys_fans(void)
}
/* Alloc & initialize state */
- wf_smu_sys_fans = kmalloc(sizeof(struct wf_smu_sys_fans_state),
- GFP_KERNEL);
+ wf_smu_sys_fans = kmalloc_obj(struct wf_smu_sys_fans_state, GFP_KERNEL);
if (wf_smu_sys_fans == NULL) {
printk(KERN_WARNING "windfarm: Memory allocation error"
" max fan speed\n");
@@ -419,8 +418,7 @@ static void wf_smu_create_cpu_fans(void)
tmax = 0x5e0000; /* 94 degree default */
/* Alloc & initialize state */
- wf_smu_cpu_fans = kmalloc(sizeof(struct wf_smu_cpu_fans_state),
- GFP_KERNEL);
+ wf_smu_cpu_fans = kmalloc_obj(struct wf_smu_cpu_fans_state, GFP_KERNEL);
if (wf_smu_cpu_fans == NULL)
goto fail;
wf_smu_cpu_fans->ticks = 1;
diff --git a/drivers/macintosh/windfarm_pm91.c b/drivers/macintosh/windfarm_pm91.c
index 108d7938e714..398e61352e16 100644
--- a/drivers/macintosh/windfarm_pm91.c
+++ b/drivers/macintosh/windfarm_pm91.c
@@ -168,8 +168,7 @@ static void wf_smu_create_cpu_fans(void)
tmax = 0x5e0000; /* 94 degree default */
/* Alloc & initialize state */
- wf_smu_cpu_fans = kmalloc(sizeof(struct wf_smu_cpu_fans_state),
- GFP_KERNEL);
+ wf_smu_cpu_fans = kmalloc_obj(struct wf_smu_cpu_fans_state, GFP_KERNEL);
if (wf_smu_cpu_fans == NULL)
goto fail;
wf_smu_cpu_fans->ticks = 1;
@@ -300,8 +299,8 @@ static void wf_smu_create_drive_fans(void)
};
/* Alloc & initialize state */
- wf_smu_drive_fans = kmalloc(sizeof(struct wf_smu_drive_fans_state),
- GFP_KERNEL);
+ wf_smu_drive_fans = kmalloc_obj(struct wf_smu_drive_fans_state,
+ GFP_KERNEL);
if (wf_smu_drive_fans == NULL) {
printk(KERN_WARNING "windfarm: Memory allocation error"
" max fan speed\n");
@@ -381,8 +380,8 @@ static void wf_smu_create_slots_fans(void)
};
/* Alloc & initialize state */
- wf_smu_slots_fans = kmalloc(sizeof(struct wf_smu_slots_fans_state),
- GFP_KERNEL);
+ wf_smu_slots_fans = kmalloc_obj(struct wf_smu_slots_fans_state,
+ GFP_KERNEL);
if (wf_smu_slots_fans == NULL) {
printk(KERN_WARNING "windfarm: Memory allocation error"
" max fan speed\n");
diff --git a/drivers/macintosh/windfarm_smu_controls.c b/drivers/macintosh/windfarm_smu_controls.c
index bdd92b27da2a..4cba2b51bd8a 100644
--- a/drivers/macintosh/windfarm_smu_controls.c
+++ b/drivers/macintosh/windfarm_smu_controls.c
@@ -162,7 +162,7 @@ static struct smu_fan_control *smu_fan_create(struct device_node *node,
const u32 *reg;
const char *l;
- fct = kmalloc(sizeof(struct smu_fan_control), GFP_KERNEL);
+ fct = kmalloc_obj(struct smu_fan_control, GFP_KERNEL);
if (fct == NULL)
return NULL;
fct->ctrl.ops = &smu_fan_ops;
diff --git a/drivers/macintosh/windfarm_smu_sat.c b/drivers/macintosh/windfarm_smu_sat.c
index ff8805ecf2e5..c613484d7a80 100644
--- a/drivers/macintosh/windfarm_smu_sat.c
+++ b/drivers/macintosh/windfarm_smu_sat.c
@@ -203,7 +203,7 @@ static int wf_sat_probe(struct i2c_client *client)
char *name;
int vsens[2], isens[2];
- sat = kzalloc(sizeof(struct wf_sat), GFP_KERNEL);
+ sat = kzalloc_obj(struct wf_sat, GFP_KERNEL);
if (sat == NULL)
return -ENOMEM;
sat->nr = -1;
diff --git a/drivers/macintosh/windfarm_smu_sensors.c b/drivers/macintosh/windfarm_smu_sensors.c
index 2bdb73b34d29..d7c934c5759d 100644
--- a/drivers/macintosh/windfarm_smu_sensors.c
+++ b/drivers/macintosh/windfarm_smu_sensors.c
@@ -200,7 +200,7 @@ static struct smu_ad_sensor *smu_ads_create(struct device_node *node)
const char *l;
const u32 *v;
- ads = kmalloc(sizeof(struct smu_ad_sensor), GFP_KERNEL);
+ ads = kmalloc_obj(struct smu_ad_sensor, GFP_KERNEL);
if (ads == NULL)
return NULL;
l = of_get_property(node, "location", NULL);
@@ -338,7 +338,7 @@ smu_cpu_power_create(struct wf_sensor *volts, struct wf_sensor *amps)
{
struct smu_cpu_power_sensor *pow;
- pow = kmalloc(sizeof(struct smu_cpu_power_sensor), GFP_KERNEL);
+ pow = kmalloc_obj(struct smu_cpu_power_sensor, GFP_KERNEL);
if (pow == NULL)
return NULL;
pow->sens.ops = &smu_cpu_power_ops;
diff --git a/drivers/mailbox/bcm74110-mailbox.c b/drivers/mailbox/bcm74110-mailbox.c
index 2e7e86f3e6a4..344cfc35984b 100644
--- a/drivers/mailbox/bcm74110-mailbox.c
+++ b/drivers/mailbox/bcm74110-mailbox.c
@@ -140,7 +140,7 @@ static void bcm74110_rx_push_init_msg(struct bcm74110_mbox *mbox, u32 val)
{
struct bcm74110_mbox_msg *msg;
- msg = kzalloc(sizeof(*msg), GFP_ATOMIC);
+ msg = kzalloc_obj(*msg, GFP_ATOMIC);
if (!msg)
return;
diff --git a/drivers/mailbox/mtk-cmdq-mailbox.c b/drivers/mailbox/mtk-cmdq-mailbox.c
index 9da16b30eb41..d7c6b38888a3 100644
--- a/drivers/mailbox/mtk-cmdq-mailbox.c
+++ b/drivers/mailbox/mtk-cmdq-mailbox.c
@@ -456,7 +456,7 @@ static int cmdq_mbox_send_data(struct mbox_chan *chan, void *data)
/* Client should not flush new tasks if suspended. */
WARN_ON(cmdq->suspended);
- task = kzalloc(sizeof(*task), GFP_ATOMIC);
+ task = kzalloc_obj(*task, GFP_ATOMIC);
if (!task)
return -ENOMEM;
diff --git a/drivers/mcb/mcb-core.c b/drivers/mcb/mcb-core.c
index 3d487d75c483..ce17092d5c1f 100644
--- a/drivers/mcb/mcb-core.c
+++ b/drivers/mcb/mcb-core.c
@@ -274,7 +274,7 @@ struct mcb_bus *mcb_alloc_bus(struct device *carrier)
int bus_nr;
int rc;
- bus = kzalloc(sizeof(struct mcb_bus), GFP_KERNEL);
+ bus = kzalloc_obj(struct mcb_bus, GFP_KERNEL);
if (!bus)
return ERR_PTR(-ENOMEM);
@@ -366,7 +366,7 @@ struct mcb_device *mcb_alloc_dev(struct mcb_bus *bus)
{
struct mcb_device *dev;
- dev = kzalloc(sizeof(struct mcb_device), GFP_KERNEL);
+ dev = kzalloc_obj(struct mcb_device, GFP_KERNEL);
if (!dev)
return NULL;
diff --git a/drivers/mcb/mcb-parse.c b/drivers/mcb/mcb-parse.c
index bf0d7d58c8b0..934f8d96922d 100644
--- a/drivers/mcb/mcb-parse.c
+++ b/drivers/mcb/mcb-parse.c
@@ -146,15 +146,14 @@ static int chameleon_get_bar(void __iomem **base, phys_addr_t mapbase,
if (bar_count <= 0 || bar_count > CHAMELEON_BAR_MAX)
return -ENODEV;
- c = kcalloc(bar_count, sizeof(struct chameleon_bar),
- GFP_KERNEL);
+ c = kzalloc_objs(struct chameleon_bar, bar_count, GFP_KERNEL);
if (!c)
return -ENOMEM;
chameleon_parse_bar(*base, c, bar_count);
*base += BAR_DESC_SIZE(bar_count);
} else {
- c = kzalloc(sizeof(struct chameleon_bar), GFP_KERNEL);
+ c = kzalloc_obj(struct chameleon_bar, GFP_KERNEL);
if (!c)
return -ENOMEM;
diff --git a/drivers/md/bcache/alloc.c b/drivers/md/bcache/alloc.c
index 7708d92df23e..90cc6ed4bd6d 100644
--- a/drivers/md/bcache/alloc.c
+++ b/drivers/md/bcache/alloc.c
@@ -697,7 +697,7 @@ int bch_open_buckets_alloc(struct cache_set *c)
spin_lock_init(&c->data_bucket_lock);
for (i = 0; i < MAX_OPEN_BUCKETS; i++) {
- struct open_bucket *b = kzalloc(sizeof(*b), GFP_KERNEL);
+ struct open_bucket *b = kzalloc_obj(*b, GFP_KERNEL);
if (!b)
return -ENOMEM;
diff --git a/drivers/md/bcache/btree.c b/drivers/md/bcache/btree.c
index 3ed39c823826..27a129d47d0a 100644
--- a/drivers/md/bcache/btree.c
+++ b/drivers/md/bcache/btree.c
@@ -585,7 +585,7 @@ static struct btree *mca_bucket_alloc(struct cache_set *c,
* kzalloc() is necessary here for initialization,
* see code comments in bch_btree_keys_init().
*/
- struct btree *b = kzalloc(sizeof(struct btree), gfp);
+ struct btree *b = kzalloc_obj(struct btree, gfp);
if (!b)
return NULL;
diff --git a/drivers/md/bcache/debug.c b/drivers/md/bcache/debug.c
index f327456fc4e0..55f5e202015d 100644
--- a/drivers/md/bcache/debug.c
+++ b/drivers/md/bcache/debug.c
@@ -208,7 +208,7 @@ static int bch_dump_open(struct inode *inode, struct file *file)
struct cache_set *c = inode->i_private;
struct dump_iterator *i;
- i = kzalloc(sizeof(struct dump_iterator), GFP_KERNEL);
+ i = kzalloc_obj(struct dump_iterator, GFP_KERNEL);
if (!i)
return -ENOMEM;
diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
index 238d12ffdae8..a304ef80820b 100644
--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -1527,8 +1527,7 @@ static CLOSURE_CALLBACK(flash_dev_flush)
static int flash_dev_run(struct cache_set *c, struct uuid_entry *u)
{
int err = -ENOMEM;
- struct bcache_device *d = kzalloc(sizeof(struct bcache_device),
- GFP_KERNEL);
+ struct bcache_device *d = kzalloc_obj(struct bcache_device, GFP_KERNEL);
if (!d)
goto err_ret;
@@ -1864,7 +1863,7 @@ struct cache_set *bch_cache_set_alloc(struct cache_sb *sb)
{
int iter_size;
struct cache *ca = container_of(sb, struct cache, sb);
- struct cache_set *c = kzalloc(sizeof(struct cache_set), GFP_KERNEL);
+ struct cache_set *c = kzalloc_obj(struct cache_set, GFP_KERNEL);
if (!c)
return NULL;
@@ -2543,8 +2542,8 @@ static void register_device_async(struct async_reg_args *args)
static void *alloc_holder_object(struct cache_sb *sb)
{
if (SB_IS_BDEV(sb))
- return kzalloc(sizeof(struct cached_dev), GFP_KERNEL);
- return kzalloc(sizeof(struct cache), GFP_KERNEL);
+ return kzalloc_obj(struct cached_dev, GFP_KERNEL);
+ return kzalloc_obj(struct cache, GFP_KERNEL);
}
static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
@@ -2581,7 +2580,7 @@ static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
if (!path)
goto out_module_put;
- sb = kmalloc(sizeof(struct cache_sb), GFP_KERNEL);
+ sb = kmalloc_obj(struct cache_sb, GFP_KERNEL);
if (!sb)
goto out_free_path;
@@ -2633,7 +2632,7 @@ static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
if (async_registration) {
/* register in asynchronous way */
struct async_reg_args *args =
- kzalloc(sizeof(struct async_reg_args), GFP_KERNEL);
+ kzalloc_obj(struct async_reg_args, GFP_KERNEL);
if (!args) {
ret = -ENOMEM;
@@ -2710,7 +2709,7 @@ static ssize_t bch_pending_bdevs_cleanup(struct kobject *k,
mutex_lock(&bch_register_lock);
list_for_each_entry_safe(dc, tdc, &uncached_devices, list) {
- pdev = kmalloc(sizeof(struct pdev), GFP_KERNEL);
+ pdev = kmalloc_obj(struct pdev, GFP_KERNEL);
if (!pdev)
break;
pdev->dc = dc;
diff --git a/drivers/md/bcache/sysfs.c b/drivers/md/bcache/sysfs.c
index 72f38e5b6f5c..b30424075106 100644
--- a/drivers/md/bcache/sysfs.c
+++ b/drivers/md/bcache/sysfs.c
@@ -415,7 +415,7 @@ STORE(__cached_dev)
buf, SB_LABEL_SIZE);
bch_uuid_write(dc->disk.c);
}
- env = kzalloc(sizeof(struct kobj_uevent_env), GFP_KERNEL);
+ env = kzalloc_obj(struct kobj_uevent_env, GFP_KERNEL);
if (!env)
return -ENOMEM;
add_uevent_var(env, "DRIVER=bcache");
diff --git a/drivers/md/dm-bio-prison-v1.c b/drivers/md/dm-bio-prison-v1.c
index b4d1c4329df3..fc8bb30dc533 100644
--- a/drivers/md/dm-bio-prison-v1.c
+++ b/drivers/md/dm-bio-prison-v1.c
@@ -44,7 +44,7 @@ struct dm_bio_prison *dm_bio_prison_create(void)
struct dm_bio_prison *prison;
num_locks = dm_num_hash_locks();
- prison = kzalloc(struct_size(prison, regions, num_locks), GFP_KERNEL);
+ prison = kzalloc_flex(*prison, regions, num_locks, GFP_KERNEL);
if (!prison)
return NULL;
prison->num_locks = num_locks;
@@ -301,7 +301,7 @@ struct dm_deferred_set *dm_deferred_set_create(void)
int i;
struct dm_deferred_set *ds;
- ds = kmalloc(sizeof(*ds), GFP_KERNEL);
+ ds = kmalloc_obj(*ds, GFP_KERNEL);
if (!ds)
return NULL;
diff --git a/drivers/md/dm-bio-prison-v2.c b/drivers/md/dm-bio-prison-v2.c
index cf433b0cf742..d4daf426c2c7 100644
--- a/drivers/md/dm-bio-prison-v2.c
+++ b/drivers/md/dm-bio-prison-v2.c
@@ -36,7 +36,7 @@ static struct kmem_cache *_cell_cache;
*/
struct dm_bio_prison_v2 *dm_bio_prison_create_v2(struct workqueue_struct *wq)
{
- struct dm_bio_prison_v2 *prison = kzalloc(sizeof(*prison), GFP_KERNEL);
+ struct dm_bio_prison_v2 *prison = kzalloc_obj(*prison, GFP_KERNEL);
int ret;
if (!prison)
diff --git a/drivers/md/dm-cache-background-tracker.c b/drivers/md/dm-cache-background-tracker.c
index b4165f172d62..fb5efaab11a3 100644
--- a/drivers/md/dm-cache-background-tracker.c
+++ b/drivers/md/dm-cache-background-tracker.c
@@ -26,7 +26,7 @@ struct kmem_cache *btracker_work_cache = NULL;
struct background_tracker *btracker_create(unsigned int max_work)
{
- struct background_tracker *b = kmalloc(sizeof(*b), GFP_KERNEL);
+ struct background_tracker *b = kmalloc_obj(*b, GFP_KERNEL);
if (!b) {
DMERR("couldn't create background_tracker");
diff --git a/drivers/md/dm-cache-metadata.c b/drivers/md/dm-cache-metadata.c
index a9a1ab284076..5060a58605a2 100644
--- a/drivers/md/dm-cache-metadata.c
+++ b/drivers/md/dm-cache-metadata.c
@@ -760,7 +760,7 @@ static struct dm_cache_metadata *metadata_open(struct block_device *bdev,
int r;
struct dm_cache_metadata *cmd;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
DMERR("could not allocate metadata struct");
return ERR_PTR(-ENOMEM);
diff --git a/drivers/md/dm-cache-policy-smq.c b/drivers/md/dm-cache-policy-smq.c
index 7e1e8cc0e33a..bec1b5e95170 100644
--- a/drivers/md/dm-cache-policy-smq.c
+++ b/drivers/md/dm-cache-policy-smq.c
@@ -1735,7 +1735,7 @@ __smq_create(dm_cblock_t cache_size, sector_t origin_size, sector_t cache_block_
unsigned int i;
unsigned int nr_sentinels_per_queue = 2u * NR_CACHE_LEVELS;
unsigned int total_sentinels = 2u * nr_sentinels_per_queue;
- struct smq_policy *mq = kzalloc(sizeof(*mq), GFP_KERNEL);
+ struct smq_policy *mq = kzalloc_obj(*mq, GFP_KERNEL);
if (!mq)
return NULL;
diff --git a/drivers/md/dm-cache-target.c b/drivers/md/dm-cache-target.c
index 62d1060619dd..be1af992b931 100644
--- a/drivers/md/dm-cache-target.c
+++ b/drivers/md/dm-cache-target.c
@@ -2387,7 +2387,7 @@ static int cache_create(struct cache_args *ca, struct cache **result)
struct dm_cache_metadata *cmd;
bool may_format = ca->features.mode == CM_WRITE;
- cache = kzalloc(sizeof(*cache), GFP_KERNEL);
+ cache = kzalloc_obj(*cache, GFP_KERNEL);
if (!cache)
return -ENOMEM;
@@ -2612,7 +2612,7 @@ static int cache_ctr(struct dm_target *ti, unsigned int argc, char **argv)
struct cache_args *ca;
struct cache *cache = NULL;
- ca = kzalloc(sizeof(*ca), GFP_KERNEL);
+ ca = kzalloc_obj(*ca, GFP_KERNEL);
if (!ca) {
ti->error = "Error allocating memory for cache";
return -ENOMEM;
diff --git a/drivers/md/dm-clone-metadata.c b/drivers/md/dm-clone-metadata.c
index 14c5c28d938b..cb474e852548 100644
--- a/drivers/md/dm-clone-metadata.c
+++ b/drivers/md/dm-clone-metadata.c
@@ -553,7 +553,7 @@ struct dm_clone_metadata *dm_clone_metadata_open(struct block_device *bdev,
int r;
struct dm_clone_metadata *cmd;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
DMERR("Failed to allocate memory for dm-clone metadata");
return ERR_PTR(-ENOMEM);
diff --git a/drivers/md/dm-clone-target.c b/drivers/md/dm-clone-target.c
index a7f73861a8cd..c9b25af70063 100644
--- a/drivers/md/dm-clone-target.c
+++ b/drivers/md/dm-clone-target.c
@@ -580,7 +580,7 @@ static int hash_table_init(struct clone *clone)
sz = 1 << HASH_TABLE_BITS;
- clone->ht = kvmalloc_array(sz, sizeof(struct hash_table_bucket), GFP_KERNEL);
+ clone->ht = kvmalloc_objs(struct hash_table_bucket, sz, GFP_KERNEL);
if (!clone->ht)
return -ENOMEM;
@@ -1766,7 +1766,7 @@ static int clone_ctr(struct dm_target *ti, unsigned int argc, char **argv)
as.argc = argc;
as.argv = argv;
- clone = kzalloc(sizeof(*clone), GFP_KERNEL);
+ clone = kzalloc_obj(*clone, GFP_KERNEL);
if (!clone) {
ti->error = "Failed to allocate clone structure";
return -ENOMEM;
diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
index 339976d4c2ca..a2f9f0f0db5e 100644
--- a/drivers/md/dm-crypt.c
+++ b/drivers/md/dm-crypt.c
@@ -2334,9 +2334,8 @@ static int crypt_alloc_tfms_skcipher(struct crypt_config *cc, char *ciphermode)
unsigned int i;
int err;
- cc->cipher_tfm.tfms = kcalloc(cc->tfms_count,
- sizeof(struct crypto_skcipher *),
- GFP_KERNEL);
+ cc->cipher_tfm.tfms = kzalloc_objs(struct crypto_skcipher *,
+ cc->tfms_count, GFP_KERNEL);
if (!cc->cipher_tfm.tfms)
return -ENOMEM;
@@ -2364,7 +2363,7 @@ static int crypt_alloc_tfms_aead(struct crypt_config *cc, char *ciphermode)
{
int err;
- cc->cipher_tfm.tfms = kmalloc(sizeof(struct crypto_skcipher *), GFP_KERNEL);
+ cc->cipher_tfm.tfms = kmalloc_obj(struct crypto_skcipher *, GFP_KERNEL);
if (!cc->cipher_tfm.tfms)
return -ENOMEM;
@@ -3238,7 +3237,7 @@ static int crypt_ctr(struct dm_target *ti, unsigned int argc, char **argv)
return -EINVAL;
}
- cc = kzalloc(struct_size(cc, key, key_size), GFP_KERNEL);
+ cc = kzalloc_flex(*cc, key, key_size, GFP_KERNEL);
if (!cc) {
ti->error = "Cannot allocate encryption context";
return -ENOMEM;
diff --git a/drivers/md/dm-delay.c b/drivers/md/dm-delay.c
index 029f04776490..5d2dd07a19b0 100644
--- a/drivers/md/dm-delay.c
+++ b/drivers/md/dm-delay.c
@@ -224,7 +224,7 @@ static int delay_ctr(struct dm_target *ti, unsigned int argc, char **argv)
return -EINVAL;
}
- dc = kzalloc(sizeof(*dc), GFP_KERNEL);
+ dc = kzalloc_obj(*dc, GFP_KERNEL);
if (!dc) {
ti->error = "Cannot allocate context";
return -ENOMEM;
diff --git a/drivers/md/dm-dust.c b/drivers/md/dm-dust.c
index e75310232bbf..a91f96bad0b9 100644
--- a/drivers/md/dm-dust.c
+++ b/drivers/md/dm-dust.c
@@ -108,7 +108,7 @@ static int dust_add_block(struct dust_device *dd, unsigned long long block,
struct badblock *bblock;
unsigned long flags;
- bblock = kmalloc(sizeof(*bblock), GFP_KERNEL);
+ bblock = kmalloc_obj(*bblock, GFP_KERNEL);
if (bblock == NULL) {
if (!dd->quiet_mode)
DMERR("%s: badblock allocation failed", __func__);
@@ -360,7 +360,7 @@ static int dust_ctr(struct dm_target *ti, unsigned int argc, char **argv)
return -EINVAL;
}
- dd = kzalloc(sizeof(struct dust_device), GFP_KERNEL);
+ dd = kzalloc_obj(struct dust_device, GFP_KERNEL);
if (dd == NULL) {
ti->error = "Cannot allocate context";
return -ENOMEM;
diff --git a/drivers/md/dm-ebs-target.c b/drivers/md/dm-ebs-target.c
index b354e74a670e..4c9a25ae90d6 100644
--- a/drivers/md/dm-ebs-target.c
+++ b/drivers/md/dm-ebs-target.c
@@ -257,7 +257,7 @@ static int ebs_ctr(struct dm_target *ti, unsigned int argc, char **argv)
return -EINVAL;
}
- ec = ti->private = kzalloc(sizeof(*ec), GFP_KERNEL);
+ ec = ti->private = kzalloc_obj(*ec, GFP_KERNEL);
if (!ec) {
ti->error = "Cannot allocate ebs context";
return -ENOMEM;
diff --git a/drivers/md/dm-era-target.c b/drivers/md/dm-era-target.c
index 9c84e9d13eca..9bec72f04b9b 100644
--- a/drivers/md/dm-era-target.c
+++ b/drivers/md/dm-era-target.c
@@ -808,7 +808,7 @@ static struct era_metadata *metadata_open(struct block_device *bdev,
bool may_format)
{
int r;
- struct era_metadata *md = kzalloc(sizeof(*md), GFP_KERNEL);
+ struct era_metadata *md = kzalloc_obj(*md, GFP_KERNEL);
if (!md)
return NULL;
@@ -1473,7 +1473,7 @@ static int era_ctr(struct dm_target *ti, unsigned int argc, char **argv)
return -EINVAL;
}
- era = kzalloc(sizeof(*era), GFP_KERNEL);
+ era = kzalloc_obj(*era, GFP_KERNEL);
if (!era) {
ti->error = "Error allocating era structure";
return -ENOMEM;
diff --git a/drivers/md/dm-exception-store.c b/drivers/md/dm-exception-store.c
index 88f119a0a2ae..91d541c66709 100644
--- a/drivers/md/dm-exception-store.c
+++ b/drivers/md/dm-exception-store.c
@@ -204,7 +204,7 @@ int dm_exception_store_create(struct dm_target *ti, int argc, char **argv,
return -EINVAL;
}
- tmp_store = kzalloc(sizeof(*tmp_store), GFP_KERNEL);
+ tmp_store = kzalloc_obj(*tmp_store, GFP_KERNEL);
if (!tmp_store) {
ti->error = "Exception store allocation failed";
return -ENOMEM;
diff --git a/drivers/md/dm-flakey.c b/drivers/md/dm-flakey.c
index 08925aca838c..922e75bfcf17 100644
--- a/drivers/md/dm-flakey.c
+++ b/drivers/md/dm-flakey.c
@@ -277,7 +277,7 @@ static int flakey_ctr(struct dm_target *ti, unsigned int argc, char **argv)
return -EINVAL;
}
- fc = kzalloc(sizeof(*fc), GFP_KERNEL);
+ fc = kzalloc_obj(*fc, GFP_KERNEL);
if (!fc) {
ti->error = "Cannot allocate context";
return -ENOMEM;
diff --git a/drivers/md/dm-init.c b/drivers/md/dm-init.c
index b37bbe762500..703250739a8a 100644
--- a/drivers/md/dm-init.c
+++ b/drivers/md/dm-init.c
@@ -127,7 +127,7 @@ static char __init *dm_parse_table_entry(struct dm_device *dev, char *str)
/* Delimit last field that can be terminated by comma */
next = str_field_delimit(&field[i], ',');
- sp = kzalloc(sizeof(*sp), GFP_KERNEL);
+ sp = kzalloc_obj(*sp, GFP_KERNEL);
if (!sp)
return ERR_PTR(-ENOMEM);
dev->table[n] = sp;
@@ -244,7 +244,7 @@ static int __init dm_parse_devices(struct list_head *devices, char *str)
DMDEBUG("parsing \"%s\"", str);
while (device) {
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
list_add_tail(&dev->list, devices);
diff --git a/drivers/md/dm-integrity.c b/drivers/md/dm-integrity.c
index 681b00958d42..3da3ce600758 100644
--- a/drivers/md/dm-integrity.c
+++ b/drivers/md/dm-integrity.c
@@ -4243,7 +4243,8 @@ static struct page_list *dm_integrity_alloc_page_list(unsigned int n_pages)
struct page_list *pl;
unsigned int i;
- pl = kvmalloc_array(n_pages + 1, sizeof(struct page_list), GFP_KERNEL | __GFP_ZERO);
+ pl = kvmalloc_objs(struct page_list, n_pages + 1,
+ GFP_KERNEL | __GFP_ZERO);
if (!pl)
return NULL;
@@ -4277,9 +4278,8 @@ static struct scatterlist **dm_integrity_alloc_journal_scatterlist(struct dm_int
struct scatterlist **sl;
unsigned int i;
- sl = kvmalloc_array(ic->journal_sections,
- sizeof(struct scatterlist *),
- GFP_KERNEL | __GFP_ZERO);
+ sl = kvmalloc_objs(struct scatterlist *, ic->journal_sections,
+ GFP_KERNEL | __GFP_ZERO);
if (!sl)
return NULL;
@@ -4296,8 +4296,7 @@ static struct scatterlist **dm_integrity_alloc_journal_scatterlist(struct dm_int
n_pages = (end_index - start_index + 1);
- s = kvmalloc_array(n_pages, sizeof(struct scatterlist),
- GFP_KERNEL);
+ s = kvmalloc_objs(struct scatterlist, n_pages, GFP_KERNEL);
if (!s) {
dm_integrity_free_journal_scatterlist(ic, sl);
return NULL;
@@ -4500,9 +4499,8 @@ static int create_journal(struct dm_integrity_c *ic, char **error)
goto bad;
}
- sg = kvmalloc_array(ic->journal_pages + 1,
- sizeof(struct scatterlist),
- GFP_KERNEL);
+ sg = kvmalloc_objs(struct scatterlist,
+ ic->journal_pages + 1, GFP_KERNEL);
if (!sg) {
*error = "Unable to allocate sg list";
r = -ENOMEM;
@@ -4569,9 +4567,9 @@ static int create_journal(struct dm_integrity_c *ic, char **error)
r = -ENOMEM;
goto bad;
}
- ic->sk_requests = kvmalloc_array(ic->journal_sections,
- sizeof(struct skcipher_request *),
- GFP_KERNEL | __GFP_ZERO);
+ ic->sk_requests = kvmalloc_objs(struct skcipher_request *,
+ ic->journal_sections,
+ GFP_KERNEL | __GFP_ZERO);
if (!ic->sk_requests) {
*error = "Unable to allocate sk requests";
r = -ENOMEM;
@@ -4703,7 +4701,7 @@ static int dm_integrity_ctr(struct dm_target *ti, unsigned int argc, char **argv
return -EINVAL;
}
- ic = kzalloc(sizeof(struct dm_integrity_c), GFP_KERNEL);
+ ic = kzalloc_obj(struct dm_integrity_c, GFP_KERNEL);
if (!ic) {
ti->error = "Cannot allocate integrity context";
return -ENOMEM;
@@ -5272,7 +5270,8 @@ static int dm_integrity_ctr(struct dm_target *ti, unsigned int argc, char **argv
r = -ENOMEM;
goto bad;
}
- ic->bbs = kvmalloc_array(ic->n_bitmap_blocks, sizeof(struct bitmap_block_status), GFP_KERNEL);
+ ic->bbs = kvmalloc_objs(struct bitmap_block_status,
+ ic->n_bitmap_blocks, GFP_KERNEL);
if (!ic->bbs) {
ti->error = "Could not allocate memory for bitmap";
r = -ENOMEM;
diff --git a/drivers/md/dm-io.c b/drivers/md/dm-io.c
index c37668790577..d08399b40dac 100644
--- a/drivers/md/dm-io.c
+++ b/drivers/md/dm-io.c
@@ -52,7 +52,7 @@ struct dm_io_client *dm_io_client_create(void)
unsigned int min_ios = dm_get_reserved_bio_based_ios();
int ret;
- client = kzalloc(sizeof(*client), GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (!client)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c
index fd4bf8e1d73e..7ab970430acd 100644
--- a/drivers/md/dm-ioctl.c
+++ b/drivers/md/dm-ioctl.c
@@ -218,7 +218,7 @@ static struct hash_cell *alloc_cell(const char *name, const char *uuid,
{
struct hash_cell *hc;
- hc = kmalloc(sizeof(*hc), GFP_KERNEL);
+ hc = kmalloc_obj(*hc, GFP_KERNEL);
if (!hc)
return NULL;
@@ -2136,7 +2136,7 @@ static int dm_open(struct inode *inode, struct file *filp)
if (unlikely(r))
return r;
- priv = filp->private_data = kmalloc(sizeof(struct dm_file), GFP_KERNEL);
+ priv = filp->private_data = kmalloc_obj(struct dm_file, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/md/dm-kcopyd.c b/drivers/md/dm-kcopyd.c
index cec9a60227b6..03b81b39c65c 100644
--- a/drivers/md/dm-kcopyd.c
+++ b/drivers/md/dm-kcopyd.c
@@ -219,7 +219,7 @@ static struct page_list *alloc_pl(gfp_t gfp)
{
struct page_list *pl;
- pl = kmalloc(sizeof(*pl), gfp);
+ pl = kmalloc_obj(*pl, gfp);
if (!pl)
return NULL;
@@ -918,7 +918,7 @@ struct dm_kcopyd_client *dm_kcopyd_client_create(struct dm_kcopyd_throttle *thro
unsigned int reserve_pages;
struct dm_kcopyd_client *kc;
- kc = kzalloc(sizeof(*kc), GFP_KERNEL);
+ kc = kzalloc_obj(*kc, GFP_KERNEL);
if (!kc)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/md/dm-linear.c b/drivers/md/dm-linear.c
index 73bf290af181..3123227a6e1d 100644
--- a/drivers/md/dm-linear.c
+++ b/drivers/md/dm-linear.c
@@ -39,7 +39,7 @@ static int linear_ctr(struct dm_target *ti, unsigned int argc, char **argv)
return -EINVAL;
}
- lc = kmalloc(sizeof(*lc), GFP_KERNEL);
+ lc = kmalloc_obj(*lc, GFP_KERNEL);
if (lc == NULL) {
ti->error = "Cannot allocate linear context";
return -ENOMEM;
diff --git a/drivers/md/dm-log-userspace-base.c b/drivers/md/dm-log-userspace-base.c
index 607436804a8b..d1bc7d0c89d9 100644
--- a/drivers/md/dm-log-userspace-base.c
+++ b/drivers/md/dm-log-userspace-base.c
@@ -205,7 +205,7 @@ static int userspace_ctr(struct dm_dirty_log *log, struct dm_target *ti,
return -EINVAL;
}
- lc = kzalloc(sizeof(*lc), GFP_KERNEL);
+ lc = kzalloc_obj(*lc, GFP_KERNEL);
if (!lc) {
DMWARN("Unable to allocate userspace log context.");
return -ENOMEM;
diff --git a/drivers/md/dm-log-writes.c b/drivers/md/dm-log-writes.c
index f0c84e7a5daa..a1040e8049aa 100644
--- a/drivers/md/dm-log-writes.c
+++ b/drivers/md/dm-log-writes.c
@@ -519,7 +519,7 @@ static int log_writes_ctr(struct dm_target *ti, unsigned int argc, char **argv)
return -EINVAL;
}
- lc = kzalloc(sizeof(struct log_writes_c), GFP_KERNEL);
+ lc = kzalloc_obj(struct log_writes_c, GFP_KERNEL);
if (!lc) {
ti->error = "Cannot allocate context";
return -ENOMEM;
@@ -587,7 +587,7 @@ static int log_mark(struct log_writes_c *lc, char *data)
struct pending_block *block;
size_t maxsize = lc->sectorsize - sizeof(struct log_write_entry);
- block = kzalloc(sizeof(struct pending_block), GFP_KERNEL);
+ block = kzalloc_obj(struct pending_block, GFP_KERNEL);
if (!block) {
DMERR("Error allocating pending block");
return -ENOMEM;
diff --git a/drivers/md/dm-log.c b/drivers/md/dm-log.c
index bced5a783ee3..7865002678f5 100644
--- a/drivers/md/dm-log.c
+++ b/drivers/md/dm-log.c
@@ -153,7 +153,7 @@ struct dm_dirty_log *dm_dirty_log_create(const char *type_name,
struct dm_dirty_log_type *type;
struct dm_dirty_log *log;
- log = kmalloc(sizeof(*log), GFP_KERNEL);
+ log = kmalloc_obj(*log, GFP_KERNEL);
if (!log)
return NULL;
@@ -402,7 +402,7 @@ static int create_log_context(struct dm_dirty_log *log, struct dm_target *ti,
region_count = dm_sector_div_up(ti->len, region_size);
- lc = kmalloc(sizeof(*lc), GFP_KERNEL);
+ lc = kmalloc_obj(*lc, GFP_KERNEL);
if (!lc) {
DMWARN("couldn't allocate core log");
return -ENOMEM;
diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
index de03f9b06584..e47cfdf4f5d1 100644
--- a/drivers/md/dm-mpath.c
+++ b/drivers/md/dm-mpath.c
@@ -160,7 +160,7 @@ static bool mpath_double_check_test_bit(int MPATHF_bit, struct multipath *m)
*/
static struct pgpath *alloc_pgpath(void)
{
- struct pgpath *pgpath = kzalloc(sizeof(*pgpath), GFP_KERNEL);
+ struct pgpath *pgpath = kzalloc_obj(*pgpath, GFP_KERNEL);
if (!pgpath)
return NULL;
@@ -179,7 +179,7 @@ static struct priority_group *alloc_priority_group(void)
{
struct priority_group *pg;
- pg = kzalloc(sizeof(*pg), GFP_KERNEL);
+ pg = kzalloc_obj(*pg, GFP_KERNEL);
if (pg)
INIT_LIST_HEAD(&pg->pgpaths);
@@ -216,7 +216,7 @@ static struct multipath *alloc_multipath(struct dm_target *ti)
{
struct multipath *m;
- m = kzalloc(sizeof(*m), GFP_KERNEL);
+ m = kzalloc_obj(*m, GFP_KERNEL);
if (m) {
INIT_LIST_HEAD(&m->priority_groups);
spin_lock_init(&m->lock);
diff --git a/drivers/md/dm-path-selector.c b/drivers/md/dm-path-selector.c
index 2b0ac200f1c0..28dc759e957a 100644
--- a/drivers/md/dm-path-selector.c
+++ b/drivers/md/dm-path-selector.c
@@ -87,7 +87,7 @@ void dm_put_path_selector(struct path_selector_type *pst)
static struct ps_internal *_alloc_path_selector(struct path_selector_type *pst)
{
- struct ps_internal *psi = kzalloc(sizeof(*psi), GFP_KERNEL);
+ struct ps_internal *psi = kzalloc_obj(*psi, GFP_KERNEL);
if (psi)
psi->pst = *pst;
diff --git a/drivers/md/dm-pcache/cache.c b/drivers/md/dm-pcache/cache.c
index 534bf07b794f..a616255b83e2 100644
--- a/drivers/md/dm-pcache/cache.c
+++ b/drivers/md/dm-pcache/cache.c
@@ -138,7 +138,8 @@ static int cache_init(struct dm_pcache *pcache)
struct pcache_cache_dev *cache_dev = &pcache->cache_dev;
int ret;
- cache->segments = kvcalloc(cache_dev->seg_num, sizeof(struct pcache_cache_segment), GFP_KERNEL);
+ cache->segments = kvzalloc_objs(struct pcache_cache_segment,
+ cache_dev->seg_num, GFP_KERNEL);
if (!cache->segments) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/md/dm-pcache/cache_key.c b/drivers/md/dm-pcache/cache_key.c
index 2b77e121f89b..3de356abf952 100644
--- a/drivers/md/dm-pcache/cache_key.c
+++ b/drivers/md/dm-pcache/cache_key.c
@@ -837,7 +837,8 @@ int cache_tree_init(struct pcache_cache *cache, struct pcache_cache_tree *cache_
* Each element is a cache tree structure that contains
* an RB tree root and a spinlock for protecting its contents.
*/
- cache_tree->subtrees = kvcalloc(cache_tree->n_subtrees, sizeof(struct pcache_cache_subtree), GFP_KERNEL);
+ cache_tree->subtrees = kvzalloc_objs(struct pcache_cache_subtree,
+ cache_tree->n_subtrees, GFP_KERNEL);
if (!cache_tree->subtrees) {
ret = -ENOMEM;
goto key_pool_exit;
diff --git a/drivers/md/dm-pcache/dm_pcache.c b/drivers/md/dm-pcache/dm_pcache.c
index e5f5936fa6f0..c36f2afdadc1 100644
--- a/drivers/md/dm-pcache/dm_pcache.c
+++ b/drivers/md/dm-pcache/dm_pcache.c
@@ -281,7 +281,7 @@ static int dm_pcache_ctr(struct dm_target *ti, unsigned int argc, char **argv)
}
/* Allocate memory for the cache structure */
- pcache = kzalloc(sizeof(struct dm_pcache), GFP_KERNEL);
+ pcache = kzalloc_obj(struct dm_pcache, GFP_KERNEL);
if (!pcache)
return -ENOMEM;
diff --git a/drivers/md/dm-ps-historical-service-time.c b/drivers/md/dm-ps-historical-service-time.c
index f07e773d9cc0..a526b5ab0453 100644
--- a/drivers/md/dm-ps-historical-service-time.c
+++ b/drivers/md/dm-ps-historical-service-time.c
@@ -129,7 +129,7 @@ static u64 fixed_ema(u64 last, u64 next, u64 weight)
static struct selector *alloc_selector(void)
{
- struct selector *s = kmalloc(sizeof(*s), GFP_KERNEL);
+ struct selector *s = kmalloc_obj(*s, GFP_KERNEL);
if (s) {
INIT_LIST_HEAD(&s->valid_paths);
@@ -289,7 +289,7 @@ static int hst_add_path(struct path_selector *ps, struct dm_path *path,
}
/* allocate the path */
- pi = kmalloc(sizeof(*pi), GFP_KERNEL);
+ pi = kmalloc_obj(*pi, GFP_KERNEL);
if (!pi) {
*error = "historical-service-time ps: Error allocating path context";
return -ENOMEM;
diff --git a/drivers/md/dm-ps-io-affinity.c b/drivers/md/dm-ps-io-affinity.c
index 80415a045c68..5d69a4a93684 100644
--- a/drivers/md/dm-ps-io-affinity.c
+++ b/drivers/md/dm-ps-io-affinity.c
@@ -53,7 +53,7 @@ static int ioa_add_path(struct path_selector *ps, struct dm_path *path,
return -EINVAL;
}
- pi = kzalloc(sizeof(*pi), GFP_KERNEL);
+ pi = kzalloc_obj(*pi, GFP_KERNEL);
if (!pi) {
*error = "io-affinity ps: Error allocating path context";
return -ENOMEM;
@@ -112,12 +112,11 @@ static int ioa_create(struct path_selector *ps, unsigned int argc, char **argv)
{
struct selector *s;
- s = kmalloc(sizeof(*s), GFP_KERNEL);
+ s = kmalloc_obj(*s, GFP_KERNEL);
if (!s)
return -ENOMEM;
- s->path_map = kcalloc(nr_cpu_ids, sizeof(struct path_info *),
- GFP_KERNEL);
+ s->path_map = kzalloc_objs(struct path_info *, nr_cpu_ids, GFP_KERNEL);
if (!s->path_map)
goto free_selector;
diff --git a/drivers/md/dm-ps-queue-length.c b/drivers/md/dm-ps-queue-length.c
index 9c68701ed7a4..d2663b1b136c 100644
--- a/drivers/md/dm-ps-queue-length.c
+++ b/drivers/md/dm-ps-queue-length.c
@@ -42,7 +42,7 @@ struct path_info {
static struct selector *alloc_selector(void)
{
- struct selector *s = kmalloc(sizeof(*s), GFP_KERNEL);
+ struct selector *s = kmalloc_obj(*s, GFP_KERNEL);
if (s) {
INIT_LIST_HEAD(&s->valid_paths);
@@ -142,7 +142,7 @@ static int ql_add_path(struct path_selector *ps, struct dm_path *path,
}
/* Allocate the path information structure */
- pi = kmalloc(sizeof(*pi), GFP_KERNEL);
+ pi = kmalloc_obj(*pi, GFP_KERNEL);
if (!pi) {
*error = "queue-length ps: Error allocating path information";
return -ENOMEM;
diff --git a/drivers/md/dm-ps-round-robin.c b/drivers/md/dm-ps-round-robin.c
index 0c12f4073461..ec8b9f27d3e7 100644
--- a/drivers/md/dm-ps-round-robin.c
+++ b/drivers/md/dm-ps-round-robin.c
@@ -55,7 +55,7 @@ struct selector {
static struct selector *alloc_selector(void)
{
- struct selector *s = kmalloc(sizeof(*s), GFP_KERNEL);
+ struct selector *s = kmalloc_obj(*s, GFP_KERNEL);
if (s) {
INIT_LIST_HEAD(&s->valid_paths);
@@ -144,7 +144,7 @@ static int rr_add_path(struct path_selector *ps, struct dm_path *path,
}
/* allocate the path */
- pi = kmalloc(sizeof(*pi), GFP_KERNEL);
+ pi = kmalloc_obj(*pi, GFP_KERNEL);
if (!pi) {
*error = "round-robin ps: Error allocating path context";
return -ENOMEM;
diff --git a/drivers/md/dm-ps-service-time.c b/drivers/md/dm-ps-service-time.c
index 0543fe7969c4..dc119955fadd 100644
--- a/drivers/md/dm-ps-service-time.c
+++ b/drivers/md/dm-ps-service-time.c
@@ -38,7 +38,7 @@ struct path_info {
static struct selector *alloc_selector(void)
{
- struct selector *s = kmalloc(sizeof(*s), GFP_KERNEL);
+ struct selector *s = kmalloc_obj(*s, GFP_KERNEL);
if (s) {
INIT_LIST_HEAD(&s->valid_paths);
@@ -153,7 +153,7 @@ static int st_add_path(struct path_selector *ps, struct dm_path *path,
}
/* allocate the path */
- pi = kmalloc(sizeof(*pi), GFP_KERNEL);
+ pi = kmalloc_obj(*pi, GFP_KERNEL);
if (!pi) {
*error = "service-time ps: Error allocating path context";
return -ENOMEM;
diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c
index 4bacdc499984..939d403fda30 100644
--- a/drivers/md/dm-raid.c
+++ b/drivers/md/dm-raid.c
@@ -744,7 +744,7 @@ static struct raid_set *raid_set_alloc(struct dm_target *ti, struct raid_type *r
return ERR_PTR(-EINVAL);
}
- rs = kzalloc(struct_size(rs, dev, raid_devs), GFP_KERNEL);
+ rs = kzalloc_flex(*rs, dev, raid_devs, GFP_KERNEL);
if (!rs) {
ti->error = "Cannot allocate raid context";
return ERR_PTR(-ENOMEM);
diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
index 943c0c6b2087..9fb2182ef287 100644
--- a/drivers/md/dm-raid1.c
+++ b/drivers/md/dm-raid1.c
@@ -890,7 +890,7 @@ static struct mirror_set *alloc_context(unsigned int nr_mirrors,
struct dm_dirty_log *dl)
{
struct mirror_set *ms =
- kzalloc(struct_size(ms, mirror, nr_mirrors), GFP_KERNEL);
+ kzalloc_flex(*ms, mirror, nr_mirrors, GFP_KERNEL);
if (!ms) {
ti->error = "Cannot allocate mirror context";
diff --git a/drivers/md/dm-region-hash.c b/drivers/md/dm-region-hash.c
index e9b47b659976..a3489965103c 100644
--- a/drivers/md/dm-region-hash.c
+++ b/drivers/md/dm-region-hash.c
@@ -184,7 +184,7 @@ struct dm_region_hash *dm_region_hash_create(
;
nr_buckets >>= 1;
- rh = kzalloc(sizeof(*rh), GFP_KERNEL);
+ rh = kzalloc_obj(*rh, GFP_KERNEL);
if (!rh) {
DMERR("unable to allocate region hash memory");
return ERR_PTR(-ENOMEM);
@@ -294,7 +294,7 @@ static struct dm_region *__rh_alloc(struct dm_region_hash *rh, region_t region)
nreg = mempool_alloc(&rh->region_pool, GFP_ATOMIC);
if (unlikely(!nreg))
- nreg = kmalloc(sizeof(*nreg), GFP_NOIO | __GFP_NOFAIL);
+ nreg = kmalloc_obj(*nreg, GFP_NOIO | __GFP_NOFAIL);
nreg->state = rh->log->type->in_sync(rh->log, region, 1) ?
DM_RH_CLEAN : DM_RH_NOSYNC;
diff --git a/drivers/md/dm-snap-persistent.c b/drivers/md/dm-snap-persistent.c
index 0e13d60bfdd1..c8128af1dcad 100644
--- a/drivers/md/dm-snap-persistent.c
+++ b/drivers/md/dm-snap-persistent.c
@@ -626,8 +626,8 @@ static int persistent_read_metadata(struct dm_exception_store *store,
*/
ps->exceptions_per_area = (ps->store->chunk_size << SECTOR_SHIFT) /
sizeof(struct disk_exception);
- ps->callbacks = kvcalloc(ps->exceptions_per_area,
- sizeof(*ps->callbacks), GFP_KERNEL);
+ ps->callbacks = kvzalloc_objs(*ps->callbacks, ps->exceptions_per_area,
+ GFP_KERNEL);
if (!ps->callbacks)
return -ENOMEM;
@@ -854,7 +854,7 @@ static int persistent_ctr(struct dm_exception_store *store, char *options)
int r;
/* allocate the pstore */
- ps = kzalloc(sizeof(*ps), GFP_KERNEL);
+ ps = kzalloc_obj(*ps, GFP_KERNEL);
if (!ps)
return -ENOMEM;
diff --git a/drivers/md/dm-snap-transient.c b/drivers/md/dm-snap-transient.c
index 1e07a745bedd..b7b449db6c34 100644
--- a/drivers/md/dm-snap-transient.c
+++ b/drivers/md/dm-snap-transient.c
@@ -77,7 +77,7 @@ static int transient_ctr(struct dm_exception_store *store, char *options)
{
struct transient_c *tc;
- tc = kmalloc(sizeof(struct transient_c), GFP_KERNEL);
+ tc = kmalloc_obj(struct transient_c, GFP_KERNEL);
if (!tc)
return -ENOMEM;
diff --git a/drivers/md/dm-snap.c b/drivers/md/dm-snap.c
index dbd148967de4..5a77ccd33232 100644
--- a/drivers/md/dm-snap.c
+++ b/drivers/md/dm-snap.c
@@ -354,8 +354,7 @@ static int init_origin_hash(void)
{
int i;
- _origins = kmalloc_array(ORIGIN_HASH_SIZE, sizeof(struct list_head),
- GFP_KERNEL);
+ _origins = kmalloc_objs(struct list_head, ORIGIN_HASH_SIZE, GFP_KERNEL);
if (!_origins) {
DMERR("unable to allocate memory for _origins");
return -ENOMEM;
@@ -363,9 +362,8 @@ static int init_origin_hash(void)
for (i = 0; i < ORIGIN_HASH_SIZE; i++)
INIT_LIST_HEAD(_origins + i);
- _dm_origins = kmalloc_array(ORIGIN_HASH_SIZE,
- sizeof(struct list_head),
- GFP_KERNEL);
+ _dm_origins = kmalloc_objs(struct list_head, ORIGIN_HASH_SIZE,
+ GFP_KERNEL);
if (!_dm_origins) {
DMERR("unable to allocate memory for _dm_origins");
kfree(_origins);
@@ -559,7 +557,7 @@ static int register_snapshot(struct dm_snapshot *snap)
struct block_device *bdev = snap->origin->bdev;
int r = 0;
- new_o = kmalloc(sizeof(*new_o), GFP_KERNEL);
+ new_o = kmalloc_obj(*new_o, GFP_KERNEL);
if (!new_o)
return -ENOMEM;
@@ -666,8 +664,7 @@ static int dm_exception_table_init(struct dm_exception_table *et,
et->hash_shift = hash_shift;
et->hash_mask = size - 1;
- et->table = kvmalloc_array(size, sizeof(struct dm_hlist_head),
- GFP_KERNEL);
+ et->table = kvmalloc_objs(struct dm_hlist_head, size, GFP_KERNEL);
if (!et->table)
return -ENOMEM;
@@ -1252,7 +1249,7 @@ static int snapshot_ctr(struct dm_target *ti, unsigned int argc, char **argv)
origin_mode = BLK_OPEN_WRITE;
}
- s = kzalloc(sizeof(*s), GFP_KERNEL);
+ s = kzalloc_obj(*s, GFP_KERNEL);
if (!s) {
ti->error = "Cannot allocate private snapshot structure";
r = -ENOMEM;
@@ -2626,7 +2623,7 @@ static int origin_ctr(struct dm_target *ti, unsigned int argc, char **argv)
return -EINVAL;
}
- o = kmalloc(sizeof(struct dm_origin), GFP_KERNEL);
+ o = kmalloc_obj(struct dm_origin, GFP_KERNEL);
if (!o) {
ti->error = "Cannot allocate private origin structure";
r = -ENOMEM;
diff --git a/drivers/md/dm-stats.c b/drivers/md/dm-stats.c
index 1e5d988f44da..b26656dea4ec 100644
--- a/drivers/md/dm-stats.c
+++ b/drivers/md/dm-stats.c
@@ -971,9 +971,8 @@ static int parse_histogram(const char *h, unsigned int *n_histogram_entries,
if (*q == ',')
(*n_histogram_entries)++;
- *histogram_boundaries = kmalloc_array(*n_histogram_entries,
- sizeof(unsigned long long),
- GFP_KERNEL);
+ *histogram_boundaries = kmalloc_objs(unsigned long long,
+ *n_histogram_entries, GFP_KERNEL);
if (!*histogram_boundaries)
return -ENOMEM;
diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
index 20cce876d80c..e06bb1f7518e 100644
--- a/drivers/md/dm-stripe.c
+++ b/drivers/md/dm-stripe.c
@@ -129,7 +129,7 @@ static int stripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
return -EINVAL;
}
- sc = kmalloc(struct_size(sc, stripe, stripes), GFP_KERNEL);
+ sc = kmalloc_flex(*sc, stripe, stripes, GFP_KERNEL);
if (!sc) {
ti->error = "Memory allocation for striped context failed";
return -ENOMEM;
diff --git a/drivers/md/dm-switch.c b/drivers/md/dm-switch.c
index 50a52ca50b34..00dffd4a9ea8 100644
--- a/drivers/md/dm-switch.c
+++ b/drivers/md/dm-switch.c
@@ -62,7 +62,7 @@ static struct switch_ctx *alloc_switch_ctx(struct dm_target *ti, unsigned int nr
{
struct switch_ctx *sctx;
- sctx = kzalloc(struct_size(sctx, path_list, nr_paths), GFP_KERNEL);
+ sctx = kzalloc_flex(*sctx, path_list, nr_paths, GFP_KERNEL);
if (!sctx)
return NULL;
diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
index 7be1d8dc8bdd..4b4712e54797 100644
--- a/drivers/md/dm-table.c
+++ b/drivers/md/dm-table.c
@@ -133,7 +133,7 @@ int dm_table_create(struct dm_table **result, blk_mode_t mode,
if (num_targets > DM_MAX_TARGETS)
return -EOVERFLOW;
- t = kzalloc(sizeof(*t), GFP_KERNEL);
+ t = kzalloc_obj(*t, GFP_KERNEL);
if (!t)
return -ENOMEM;
@@ -381,7 +381,7 @@ int dm_get_device(struct dm_target *ti, const char *path, blk_mode_t mode,
dd = find_device(&t->devices, dev);
if (!dd) {
- dd = kmalloc(sizeof(*dd), GFP_KERNEL);
+ dd = kmalloc_obj(*dd, GFP_KERNEL);
if (!dd)
return -ENOMEM;
@@ -1391,7 +1391,7 @@ static int dm_table_construct_crypto_profile(struct dm_table *t)
unsigned int i;
bool empty_profile = true;
- dmcp = kmalloc(sizeof(*dmcp), GFP_KERNEL);
+ dmcp = kmalloc_obj(*dmcp, GFP_KERNEL);
if (!dmcp)
return -ENOMEM;
dmcp->md = t->md;
diff --git a/drivers/md/dm-target.c b/drivers/md/dm-target.c
index 1fd41289de36..a138e8a24327 100644
--- a/drivers/md/dm-target.c
+++ b/drivers/md/dm-target.c
@@ -128,7 +128,7 @@ static int io_err_get_args(struct dm_target *tt, unsigned int argc, char **args)
char dummy;
int ret;
- ioec = kmalloc(sizeof(*ioec), GFP_KERNEL);
+ ioec = kmalloc_obj(*ioec, GFP_KERNEL);
if (!ioec) {
tt->error = "Cannot allocate io_err context";
return -ENOMEM;
diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c
index f90679cfec5b..c924ec4d300d 100644
--- a/drivers/md/dm-thin-metadata.c
+++ b/drivers/md/dm-thin-metadata.c
@@ -957,7 +957,7 @@ struct dm_pool_metadata *dm_pool_metadata_open(struct block_device *bdev,
int r;
struct dm_pool_metadata *pmd;
- pmd = kmalloc(sizeof(*pmd), GFP_KERNEL);
+ pmd = kmalloc_obj(*pmd, GFP_KERNEL);
if (!pmd) {
DMERR("could not allocate metadata struct");
return ERR_PTR(-ENOMEM);
@@ -1077,7 +1077,7 @@ static int __open_device(struct dm_pool_metadata *pmd,
details_le.snapshotted_time = cpu_to_le32(pmd->time);
}
- *td = kmalloc(sizeof(**td), GFP_NOIO);
+ *td = kmalloc_obj(**td, GFP_NOIO);
if (!*td)
return -ENOMEM;
diff --git a/drivers/md/dm-thin.c b/drivers/md/dm-thin.c
index 52ffb495f5a8..492ead2d9356 100644
--- a/drivers/md/dm-thin.c
+++ b/drivers/md/dm-thin.c
@@ -2949,7 +2949,7 @@ static struct pool *pool_create(struct mapped_device *pool_md,
return ERR_CAST(pmd);
}
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool) {
*error = "Error allocating memory for pool";
err_p = ERR_PTR(-ENOMEM);
@@ -3354,7 +3354,7 @@ static int pool_ctr(struct dm_target *ti, unsigned int argc, char **argv)
goto out;
}
- pt = kzalloc(sizeof(*pt), GFP_KERNEL);
+ pt = kzalloc_obj(*pt, GFP_KERNEL);
if (!pt) {
r = -ENOMEM;
goto out;
@@ -4193,7 +4193,7 @@ static int thin_ctr(struct dm_target *ti, unsigned int argc, char **argv)
goto out_unlock;
}
- tc = ti->private = kzalloc(sizeof(*tc), GFP_KERNEL);
+ tc = ti->private = kzalloc_obj(*tc, GFP_KERNEL);
if (!tc) {
ti->error = "Out of memory";
r = -ENOMEM;
diff --git a/drivers/md/dm-unstripe.c b/drivers/md/dm-unstripe.c
index 17be48359564..c595d0a138fc 100644
--- a/drivers/md/dm-unstripe.c
+++ b/drivers/md/dm-unstripe.c
@@ -48,7 +48,7 @@ static int unstripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
return -EINVAL;
}
- uc = kzalloc(sizeof(*uc), GFP_KERNEL);
+ uc = kzalloc_obj(*uc, GFP_KERNEL);
if (!uc) {
ti->error = "Memory allocation for unstriped context failed";
return -ENOMEM;
diff --git a/drivers/md/dm-verity-fec.c b/drivers/md/dm-verity-fec.c
index 7583607a8aa6..08bb75f00891 100644
--- a/drivers/md/dm-verity-fec.c
+++ b/drivers/md/dm-verity-fec.c
@@ -607,7 +607,7 @@ int verity_fec_ctr_alloc(struct dm_verity *v)
{
struct dm_verity_fec *f;
- f = kzalloc(sizeof(struct dm_verity_fec), GFP_KERNEL);
+ f = kzalloc_obj(struct dm_verity_fec, GFP_KERNEL);
if (!f) {
v->ti->error = "Cannot allocate FEC structure";
return -ENOMEM;
diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c
index 8089cb74b75d..9dd0c195091f 100644
--- a/drivers/md/dm-verity-target.c
+++ b/drivers/md/dm-verity-target.c
@@ -764,8 +764,8 @@ static void verity_submit_prefetch(struct dm_verity *v, struct dm_verity_io *io,
return;
}
- pw = kmalloc(sizeof(struct dm_verity_prefetch_work),
- GFP_NOIO | __GFP_NORETRY | __GFP_NOMEMALLOC | __GFP_NOWARN);
+ pw = kmalloc_obj(struct dm_verity_prefetch_work,
+ GFP_NOIO | __GFP_NORETRY | __GFP_NOMEMALLOC | __GFP_NOWARN);
if (!pw)
return;
@@ -1369,7 +1369,7 @@ static int verity_setup_salt_and_hashstate(struct dm_verity *v, const char *arg)
if (likely(v->use_sha256_lib)) {
/* Implies version 1: salt at beginning */
v->initial_hashstate.sha256 =
- kmalloc(sizeof(struct sha256_ctx), GFP_KERNEL);
+ kmalloc_obj(struct sha256_ctx, GFP_KERNEL);
if (!v->initial_hashstate.sha256) {
ti->error = "Cannot allocate initial hash state";
return -ENOMEM;
@@ -1430,7 +1430,7 @@ static int verity_ctr(struct dm_target *ti, unsigned int argc, char **argv)
char dummy;
char *root_hash_digest_to_validate;
- v = kzalloc(sizeof(struct dm_verity), GFP_KERNEL);
+ v = kzalloc_obj(struct dm_verity, GFP_KERNEL);
if (!v) {
ti->error = "Cannot allocate verity structure";
return -ENOMEM;
diff --git a/drivers/md/dm-writecache.c b/drivers/md/dm-writecache.c
index af54e289bceb..bca442478a8d 100644
--- a/drivers/md/dm-writecache.c
+++ b/drivers/md/dm-writecache.c
@@ -1848,9 +1848,8 @@ static void __writecache_writeback_pmem(struct dm_writecache *wc, struct writeba
bio->bi_iter.bi_sector = read_original_sector(wc, e);
if (unlikely(max_pages > WB_LIST_INLINE))
- wb->wc_list = kmalloc_array(max_pages, sizeof(struct wc_entry *),
- GFP_NOIO | __GFP_NORETRY |
- __GFP_NOMEMALLOC | __GFP_NOWARN);
+ wb->wc_list = kmalloc_objs(struct wc_entry *, max_pages,
+ GFP_NOIO | __GFP_NORETRY | __GFP_NOMEMALLOC | __GFP_NOWARN);
if (likely(max_pages <= WB_LIST_INLINE) || unlikely(!wb->wc_list)) {
wb->wc_list = wb->wc_list_inline;
@@ -2246,7 +2245,7 @@ static int writecache_ctr(struct dm_target *ti, unsigned int argc, char **argv)
as.argc = argc;
as.argv = argv;
- wc = kzalloc(sizeof(struct dm_writecache), GFP_KERNEL);
+ wc = kzalloc_obj(struct dm_writecache, GFP_KERNEL);
if (!wc) {
ti->error = "Cannot allocate writecache structure";
r = -ENOMEM;
diff --git a/drivers/md/dm-zoned-metadata.c b/drivers/md/dm-zoned-metadata.c
index 83fcd7b31ed9..b9a473ffdb70 100644
--- a/drivers/md/dm-zoned-metadata.c
+++ b/drivers/md/dm-zoned-metadata.c
@@ -303,7 +303,7 @@ static struct dm_zone *dmz_get(struct dmz_metadata *zmd, unsigned int zone_id)
static struct dm_zone *dmz_insert(struct dmz_metadata *zmd,
unsigned int zone_id, struct dmz_dev *dev)
{
- struct dm_zone *zone = kzalloc(sizeof(struct dm_zone), GFP_KERNEL);
+ struct dm_zone *zone = kzalloc_obj(struct dm_zone, GFP_KERNEL);
if (!zone)
return ERR_PTR(-ENOMEM);
@@ -419,7 +419,7 @@ static struct dmz_mblock *dmz_alloc_mblock(struct dmz_metadata *zmd,
}
/* Allocate a new block */
- mblk = kmalloc(sizeof(struct dmz_mblock), GFP_NOIO);
+ mblk = kmalloc_obj(struct dmz_mblock, GFP_NOIO);
if (!mblk)
return NULL;
@@ -1311,7 +1311,7 @@ static int dmz_load_sb(struct dmz_metadata *zmd)
int i;
struct dmz_sb *sb;
- sb = kzalloc(sizeof(struct dmz_sb), GFP_KERNEL);
+ sb = kzalloc_obj(struct dmz_sb, GFP_KERNEL);
if (!sb)
return -ENOMEM;
for (i = 1; i < zmd->nr_devs; i++) {
@@ -1686,8 +1686,8 @@ static int dmz_load_mapping(struct dmz_metadata *zmd)
unsigned int bzone_id;
/* Metadata block array for the chunk mapping table */
- zmd->map_mblk = kcalloc(zmd->nr_map_blocks,
- sizeof(struct dmz_mblock *), GFP_KERNEL);
+ zmd->map_mblk = kzalloc_objs(struct dmz_mblock *, zmd->nr_map_blocks,
+ GFP_KERNEL);
if (!zmd->map_mblk)
return -ENOMEM;
@@ -2868,7 +2868,7 @@ int dmz_ctr_metadata(struct dmz_dev *dev, int num_dev,
struct dm_zone *zone;
int ret;
- zmd = kzalloc(sizeof(struct dmz_metadata), GFP_KERNEL);
+ zmd = kzalloc_obj(struct dmz_metadata, GFP_KERNEL);
if (!zmd)
return -ENOMEM;
diff --git a/drivers/md/dm-zoned-reclaim.c b/drivers/md/dm-zoned-reclaim.c
index 76e2c6868548..8598cc9eb40f 100644
--- a/drivers/md/dm-zoned-reclaim.c
+++ b/drivers/md/dm-zoned-reclaim.c
@@ -556,7 +556,7 @@ int dmz_ctr_reclaim(struct dmz_metadata *zmd,
struct dmz_reclaim *zrc;
int ret;
- zrc = kzalloc(sizeof(struct dmz_reclaim), GFP_KERNEL);
+ zrc = kzalloc_obj(struct dmz_reclaim, GFP_KERNEL);
if (!zrc)
return -ENOMEM;
diff --git a/drivers/md/dm-zoned-target.c b/drivers/md/dm-zoned-target.c
index 9da329078ea4..0e6ddfb96e03 100644
--- a/drivers/md/dm-zoned-target.c
+++ b/drivers/md/dm-zoned-target.c
@@ -545,7 +545,7 @@ static int dmz_queue_chunk_work(struct dmz_target *dmz, struct bio *bio)
dmz_get_chunk_work(cw);
} else {
/* Create a new chunk work */
- cw = kmalloc(sizeof(struct dm_chunk_work), GFP_NOIO);
+ cw = kmalloc_obj(struct dm_chunk_work, GFP_NOIO);
if (unlikely(!cw)) {
ret = -ENOMEM;
goto out;
@@ -838,18 +838,18 @@ static int dmz_ctr(struct dm_target *ti, unsigned int argc, char **argv)
}
/* Allocate and initialize the target descriptor */
- dmz = kzalloc(sizeof(struct dmz_target), GFP_KERNEL);
+ dmz = kzalloc_obj(struct dmz_target, GFP_KERNEL);
if (!dmz) {
ti->error = "Unable to allocate the zoned target descriptor";
return -ENOMEM;
}
- dmz->dev = kcalloc(argc, sizeof(struct dmz_dev), GFP_KERNEL);
+ dmz->dev = kzalloc_objs(struct dmz_dev, argc, GFP_KERNEL);
if (!dmz->dev) {
ti->error = "Unable to allocate the zoned device descriptors";
kfree(dmz);
return -ENOMEM;
}
- dmz->ddev = kcalloc(argc, sizeof(struct dm_dev *), GFP_KERNEL);
+ dmz->ddev = kzalloc_objs(struct dm_dev *, argc, GFP_KERNEL);
if (!dmz->ddev) {
ti->error = "Unable to allocate the dm device descriptors";
ret = -ENOMEM;
diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c
index 1d4a050dab3a..ca833f147c6a 100644
--- a/drivers/md/md-bitmap.c
+++ b/drivers/md/md-bitmap.c
@@ -1025,8 +1025,7 @@ static int md_bitmap_storage_alloc(struct bitmap_storage *store,
num_pages = DIV_ROUND_UP(bytes, PAGE_SIZE);
offset = slot_number * num_pages;
- store->filemap = kmalloc_array(num_pages, sizeof(struct page *),
- GFP_KERNEL);
+ store->filemap = kmalloc_objs(struct page *, num_pages, GFP_KERNEL);
if (!store->filemap)
return -ENOMEM;
@@ -2121,7 +2120,7 @@ static struct bitmap *__bitmap_create(struct mddev *mddev, int slot)
return ERR_PTR(-EBUSY);
}
- bitmap = kzalloc(sizeof(*bitmap), GFP_KERNEL);
+ bitmap = kzalloc_obj(*bitmap, GFP_KERNEL);
if (!bitmap)
return ERR_PTR(-ENOMEM);
@@ -2436,7 +2435,7 @@ static int __bitmap_resize(struct bitmap *bitmap, sector_t blocks,
pages = DIV_ROUND_UP(chunks, PAGE_COUNTER_RATIO);
- new_bp = kcalloc(pages, sizeof(*new_bp), GFP_KERNEL);
+ new_bp = kzalloc_objs(*new_bp, pages, GFP_KERNEL);
ret = -ENOMEM;
if (!new_bp) {
md_bitmap_file_unmap(&store);
diff --git a/drivers/md/md-cluster.c b/drivers/md/md-cluster.c
index 896279988dfd..c588c972ad54 100644
--- a/drivers/md/md-cluster.c
+++ b/drivers/md/md-cluster.c
@@ -196,7 +196,7 @@ static struct dlm_lock_resource *lockres_init(struct mddev *mddev,
int ret, namelen;
struct md_cluster_info *cinfo = mddev->cluster_info;
- res = kzalloc(sizeof(struct dlm_lock_resource), GFP_KERNEL);
+ res = kzalloc_obj(struct dlm_lock_resource, GFP_KERNEL);
if (!res)
return NULL;
init_waitqueue_head(&res->sync_locking);
@@ -886,7 +886,7 @@ static int join(struct mddev *mddev, int nodes)
int ret, ops_rv;
char str[64];
- cinfo = kzalloc(sizeof(struct md_cluster_info), GFP_KERNEL);
+ cinfo = kzalloc_obj(struct md_cluster_info, GFP_KERNEL);
if (!cinfo)
return -ENOMEM;
@@ -1543,8 +1543,8 @@ static int lock_all_bitmaps(struct mddev *mddev)
struct md_cluster_info *cinfo = mddev->cluster_info;
cinfo->other_bitmap_lockres =
- kcalloc(mddev->bitmap_info.nodes - 1,
- sizeof(struct dlm_lock_resource *), GFP_KERNEL);
+ kzalloc_objs(struct dlm_lock_resource *,
+ mddev->bitmap_info.nodes - 1, GFP_KERNEL);
if (!cinfo->other_bitmap_lockres) {
pr_err("md: can't alloc mem for other bitmap locks\n");
return 0;
diff --git a/drivers/md/md-linear.c b/drivers/md/md-linear.c
index 8d7b82c4a723..beeb88274da4 100644
--- a/drivers/md/md-linear.c
+++ b/drivers/md/md-linear.c
@@ -92,7 +92,7 @@ static struct linear_conf *linear_conf(struct mddev *mddev, int raid_disks)
int cnt;
int i;
- conf = kzalloc(struct_size(conf, disks, raid_disks), GFP_KERNEL);
+ conf = kzalloc_flex(*conf, disks, raid_disks, GFP_KERNEL);
if (!conf)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/md/md-llbitmap.c b/drivers/md/md-llbitmap.c
index cd713a7dc270..e8d7af0c665a 100644
--- a/drivers/md/md-llbitmap.c
+++ b/drivers/md/md-llbitmap.c
@@ -982,7 +982,7 @@ static int llbitmap_create(struct mddev *mddev)
if (ret)
return ret;
- llbitmap = kzalloc(sizeof(*llbitmap), GFP_KERNEL);
+ llbitmap = kzalloc_obj(*llbitmap, GFP_KERNEL);
if (!llbitmap)
return -ENOMEM;
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 72a1c7267851..b7ac2440fbbb 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -853,7 +853,7 @@ static struct mddev *mddev_alloc(dev_t unit)
if (unit && MAJOR(unit) != MD_MAJOR)
unit &= ~((1 << MdpMinorShift) - 1);
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return ERR_PTR(-ENOMEM);
@@ -1222,8 +1222,8 @@ static int md_sb_equal(mdp_super_t *sb1, mdp_super_t *sb2)
int ret;
mdp_super_t *tmp1, *tmp2;
- tmp1 = kmalloc(sizeof(*tmp1),GFP_KERNEL);
- tmp2 = kmalloc(sizeof(*tmp2),GFP_KERNEL);
+ tmp1 = kmalloc_obj(*tmp1, GFP_KERNEL);
+ tmp2 = kmalloc_obj(*tmp2, GFP_KERNEL);
if (!tmp1 || !tmp2) {
ret = 0;
@@ -3817,7 +3817,7 @@ static struct md_rdev *md_import_device(dev_t newdev, int super_format, int supe
sector_t size;
int err;
- rdev = kzalloc(sizeof(*rdev), GFP_KERNEL);
+ rdev = kzalloc_obj(*rdev, GFP_KERNEL);
if (!rdev)
return ERR_PTR(-ENOMEM);
@@ -7238,7 +7238,7 @@ static int get_bitmap_file(struct mddev *mddev, void __user * arg)
char *ptr;
int err;
- file = kzalloc(sizeof(*file), GFP_NOIO);
+ file = kzalloc_obj(*file, GFP_NOIO);
if (!file)
return -ENOMEM;
@@ -8541,7 +8541,7 @@ struct md_thread *md_register_thread(void (*run) (struct md_thread *),
{
struct md_thread *thread;
- thread = kzalloc(sizeof(struct md_thread), GFP_KERNEL);
+ thread = kzalloc_obj(struct md_thread, GFP_KERNEL);
if (!thread)
return NULL;
@@ -10749,7 +10749,7 @@ void md_autodetect_dev(dev_t dev)
{
struct detected_devices_node *node_detected_dev;
- node_detected_dev = kzalloc(sizeof(*node_detected_dev), GFP_KERNEL);
+ node_detected_dev = kzalloc_obj(*node_detected_dev, GFP_KERNEL);
if (node_detected_dev) {
node_detected_dev->dev = dev;
mutex_lock(&detected_devices_mutex);
diff --git a/drivers/md/persistent-data/dm-block-manager.c b/drivers/md/persistent-data/dm-block-manager.c
index 1ef71e5fcde7..43bd64b77a7d 100644
--- a/drivers/md/persistent-data/dm-block-manager.c
+++ b/drivers/md/persistent-data/dm-block-manager.c
@@ -388,7 +388,7 @@ struct dm_block_manager *dm_block_manager_create(struct block_device *bdev,
int r;
struct dm_block_manager *bm;
- bm = kmalloc(sizeof(*bm), GFP_KERNEL);
+ bm = kmalloc_obj(*bm, GFP_KERNEL);
if (!bm) {
r = -ENOMEM;
goto bad;
diff --git a/drivers/md/persistent-data/dm-btree.c b/drivers/md/persistent-data/dm-btree.c
index 0c7a2e8d1846..dd02eee4a23c 100644
--- a/drivers/md/persistent-data/dm-btree.c
+++ b/drivers/md/persistent-data/dm-btree.c
@@ -280,7 +280,7 @@ int dm_btree_del(struct dm_btree_info *info, dm_block_t root)
* considered an FS op. We can't recurse back into the FS, so we
* allocate GFP_NOFS.
*/
- s = kmalloc(sizeof(*s), GFP_NOFS);
+ s = kmalloc_obj(*s, GFP_NOFS);
if (!s)
return -ENOMEM;
s->info = info;
diff --git a/drivers/md/persistent-data/dm-space-map-disk.c b/drivers/md/persistent-data/dm-space-map-disk.c
index f4241f54e20e..1d3cfc87701a 100644
--- a/drivers/md/persistent-data/dm-space-map-disk.c
+++ b/drivers/md/persistent-data/dm-space-map-disk.c
@@ -220,7 +220,7 @@ struct dm_space_map *dm_sm_disk_create(struct dm_transaction_manager *tm,
int r;
struct sm_disk *smd;
- smd = kmalloc(sizeof(*smd), GFP_KERNEL);
+ smd = kmalloc_obj(*smd, GFP_KERNEL);
if (!smd)
return ERR_PTR(-ENOMEM);
@@ -254,7 +254,7 @@ struct dm_space_map *dm_sm_disk_open(struct dm_transaction_manager *tm,
int r;
struct sm_disk *smd;
- smd = kmalloc(sizeof(*smd), GFP_KERNEL);
+ smd = kmalloc_obj(*smd, GFP_KERNEL);
if (!smd)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/md/persistent-data/dm-space-map-metadata.c b/drivers/md/persistent-data/dm-space-map-metadata.c
index d48c4fafc779..3c82a715ceed 100644
--- a/drivers/md/persistent-data/dm-space-map-metadata.c
+++ b/drivers/md/persistent-data/dm-space-map-metadata.c
@@ -772,7 +772,7 @@ struct dm_space_map *dm_sm_metadata_init(void)
{
struct sm_metadata *smm;
- smm = kvmalloc(sizeof(*smm), GFP_KERNEL);
+ smm = kvmalloc_obj(*smm, GFP_KERNEL);
if (!smm)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/md/persistent-data/dm-transaction-manager.c b/drivers/md/persistent-data/dm-transaction-manager.c
index 98c745d90f48..1f50f50665ef 100644
--- a/drivers/md/persistent-data/dm-transaction-manager.c
+++ b/drivers/md/persistent-data/dm-transaction-manager.c
@@ -137,7 +137,7 @@ static void insert_shadow(struct dm_transaction_manager *tm, dm_block_t b)
unsigned int bucket;
struct shadow_info *si;
- si = kmalloc(sizeof(*si), GFP_NOIO);
+ si = kmalloc_obj(*si, GFP_NOIO);
if (si) {
struct rb_node **node, *parent;
si->where = b;
@@ -185,7 +185,7 @@ static struct dm_transaction_manager *dm_tm_create(struct dm_block_manager *bm,
unsigned int i;
struct dm_transaction_manager *tm;
- tm = kmalloc(sizeof(*tm), GFP_KERNEL);
+ tm = kmalloc_obj(*tm, GFP_KERNEL);
if (!tm)
return ERR_PTR(-ENOMEM);
@@ -207,7 +207,7 @@ struct dm_transaction_manager *dm_tm_create_non_blocking_clone(struct dm_transac
{
struct dm_transaction_manager *tm;
- tm = kmalloc(sizeof(*tm), GFP_KERNEL);
+ tm = kmalloc_obj(*tm, GFP_KERNEL);
if (tm) {
tm->is_clone = 1;
tm->real = real;
diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c
index d83b2b1c0049..f316267a2c02 100644
--- a/drivers/md/raid0.c
+++ b/drivers/md/raid0.c
@@ -69,7 +69,7 @@ static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf)
struct md_rdev *smallest, *rdev1, *rdev2, *rdev, **dev;
struct strip_zone *zone;
int cnt;
- struct r0conf *conf = kzalloc(sizeof(*conf), GFP_KERNEL);
+ struct r0conf *conf = kzalloc_obj(*conf, GFP_KERNEL);
unsigned int blksize = 512;
if (!mddev_is_dm(mddev))
@@ -143,9 +143,8 @@ static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf)
}
err = -ENOMEM;
- conf->strip_zone = kcalloc(conf->nr_strip_zones,
- sizeof(struct strip_zone),
- GFP_KERNEL);
+ conf->strip_zone = kzalloc_objs(struct strip_zone, conf->nr_strip_zones,
+ GFP_KERNEL);
if (!conf->strip_zone)
goto abort;
conf->devlist = kzalloc(array3_size(sizeof(struct md_rdev *),
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index 867db18bc3ba..d5fd7841dd9f 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -155,8 +155,7 @@ static void * r1buf_pool_alloc(gfp_t gfp_flags, void *data)
if (!r1_bio)
return NULL;
- rps = kmalloc_array(conf->raid_disks * 2, sizeof(struct resync_pages),
- gfp_flags);
+ rps = kmalloc_objs(struct resync_pages, conf->raid_disks * 2, gfp_flags);
if (!rps)
goto out_free_r1bio;
@@ -3070,27 +3069,25 @@ static struct r1conf *setup_conf(struct mddev *mddev)
size_t r1bio_size;
int err = -ENOMEM;
- conf = kzalloc(sizeof(struct r1conf), GFP_KERNEL);
+ conf = kzalloc_obj(struct r1conf, GFP_KERNEL);
if (!conf)
goto abort;
- conf->nr_pending = kcalloc(BARRIER_BUCKETS_NR,
- sizeof(atomic_t), GFP_KERNEL);
+ conf->nr_pending = kzalloc_objs(atomic_t, BARRIER_BUCKETS_NR,
+ GFP_KERNEL);
if (!conf->nr_pending)
goto abort;
- conf->nr_waiting = kcalloc(BARRIER_BUCKETS_NR,
- sizeof(atomic_t), GFP_KERNEL);
+ conf->nr_waiting = kzalloc_objs(atomic_t, BARRIER_BUCKETS_NR,
+ GFP_KERNEL);
if (!conf->nr_waiting)
goto abort;
- conf->nr_queued = kcalloc(BARRIER_BUCKETS_NR,
- sizeof(atomic_t), GFP_KERNEL);
+ conf->nr_queued = kzalloc_objs(atomic_t, BARRIER_BUCKETS_NR, GFP_KERNEL);
if (!conf->nr_queued)
goto abort;
- conf->barrier = kcalloc(BARRIER_BUCKETS_NR,
- sizeof(atomic_t), GFP_KERNEL);
+ conf->barrier = kzalloc_objs(atomic_t, BARRIER_BUCKETS_NR, GFP_KERNEL);
if (!conf->barrier)
goto abort;
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index 9debb20cf129..bdd3a7feaea7 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -152,7 +152,7 @@ static void * r10buf_pool_alloc(gfp_t gfp_flags, void *data)
nalloc_rp = nalloc;
else
nalloc_rp = nalloc * 2;
- rps = kmalloc_array(nalloc_rp, sizeof(struct resync_pages), gfp_flags);
+ rps = kmalloc_objs(struct resync_pages, nalloc_rp, gfp_flags);
if (!rps)
goto out_free_r10bio;
@@ -3852,14 +3852,14 @@ static struct r10conf *setup_conf(struct mddev *mddev)
}
err = -ENOMEM;
- conf = kzalloc(sizeof(struct r10conf), GFP_KERNEL);
+ conf = kzalloc_obj(struct r10conf, GFP_KERNEL);
if (!conf)
goto out;
/* FIXME calc properly */
- conf->mirrors = kcalloc(mddev->raid_disks + max(0, -mddev->delta_disks),
- sizeof(struct raid10_info),
- GFP_KERNEL);
+ conf->mirrors = kzalloc_objs(struct raid10_info,
+ mddev->raid_disks + max(0, -mddev->delta_disks),
+ GFP_KERNEL);
if (!conf->mirrors)
goto out;
@@ -4281,9 +4281,9 @@ static int raid10_check_reshape(struct mddev *mddev)
if (mddev->delta_disks > 0) {
/* allocate new 'mirrors' list */
conf->mirrors_new =
- kcalloc(mddev->raid_disks + mddev->delta_disks,
- sizeof(struct raid10_info),
- GFP_KERNEL);
+ kzalloc_objs(struct raid10_info,
+ mddev->raid_disks + mddev->delta_disks,
+ GFP_KERNEL);
if (!conf->mirrors_new)
return -ENOMEM;
}
@@ -4918,7 +4918,7 @@ static int handle_reshape_read_error(struct mddev *mddev,
int idx = 0;
struct page **pages;
- r10b = kmalloc(struct_size(r10b, devs, conf->copies), GFP_NOIO);
+ r10b = kmalloc_flex(*r10b, devs, conf->copies, GFP_NOIO);
if (!r10b) {
set_bit(MD_RECOVERY_INTR, &mddev->recovery);
return -ENOMEM;
diff --git a/drivers/md/raid5-cache.c b/drivers/md/raid5-cache.c
index e29e69335c69..3ae22f6aacda 100644
--- a/drivers/md/raid5-cache.c
+++ b/drivers/md/raid5-cache.c
@@ -2447,7 +2447,7 @@ static int r5l_recovery_log(struct r5l_log *log)
int ret;
sector_t pos;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -3071,7 +3071,7 @@ int r5l_init_log(struct r5conf *conf, struct md_rdev *rdev)
return -EINVAL;
}
- log = kzalloc(sizeof(*log), GFP_KERNEL);
+ log = kzalloc_obj(*log, GFP_KERNEL);
if (!log)
return -ENOMEM;
log->rdev = rdev;
diff --git a/drivers/md/raid5-ppl.c b/drivers/md/raid5-ppl.c
index 56b234683ee6..9dfa07ed723f 100644
--- a/drivers/md/raid5-ppl.c
+++ b/drivers/md/raid5-ppl.c
@@ -1352,7 +1352,7 @@ int ppl_init_log(struct r5conf *conf)
return -EINVAL;
}
- ppl_conf = kzalloc(sizeof(struct ppl_conf), GFP_KERNEL);
+ ppl_conf = kzalloc_obj(struct ppl_conf, GFP_KERNEL);
if (!ppl_conf)
return -ENOMEM;
@@ -1378,8 +1378,8 @@ int ppl_init_log(struct r5conf *conf)
goto err;
ppl_conf->count = conf->raid_disks;
- ppl_conf->child_logs = kcalloc(ppl_conf->count, sizeof(struct ppl_log),
- GFP_KERNEL);
+ ppl_conf->child_logs = kzalloc_objs(struct ppl_log, ppl_conf->count,
+ GFP_KERNEL);
if (!ppl_conf->child_logs) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index 8854e024f311..ba8381cbb2f1 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -513,7 +513,7 @@ init_stripe_shared_pages(struct stripe_head *sh, struct r5conf *conf, int disks)
cnt = PAGE_SIZE / conf->stripe_size;
nr_pages = (disks + cnt - 1) / cnt;
- sh->pages = kcalloc(nr_pages, sizeof(struct page *), GFP_KERNEL);
+ sh->pages = kzalloc_objs(struct page *, nr_pages, GFP_KERNEL);
if (!sh->pages)
return -ENOMEM;
sh->nr_pages = nr_pages;
@@ -2610,7 +2610,7 @@ static int resize_stripes(struct r5conf *conf, int newsize)
* is completely stalled, so now is a good time to resize
* conf->disks and the scribble region
*/
- ndisks = kcalloc(newsize, sizeof(struct disk_info), GFP_NOIO);
+ ndisks = kzalloc_objs(struct disk_info, newsize, GFP_NOIO);
if (ndisks) {
for (i = 0; i < conf->pool_size; i++)
ndisks[i] = conf->disks[i];
@@ -7267,8 +7267,8 @@ static int alloc_thread_groups(struct r5conf *conf, int cnt, int *group_cnt,
*group_cnt = num_possible_nodes();
size = sizeof(struct r5worker) * cnt;
workers = kcalloc(size, *group_cnt, GFP_NOIO);
- *worker_groups = kcalloc(*group_cnt, sizeof(struct r5worker_group),
- GFP_NOIO);
+ *worker_groups = kzalloc_objs(struct r5worker_group, *group_cnt,
+ GFP_NOIO);
if (!*worker_groups || !workers) {
kfree(workers);
kfree(*worker_groups);
@@ -7497,7 +7497,7 @@ static struct r5conf *setup_conf(struct mddev *mddev)
return ERR_PTR(-EINVAL);
}
- conf = kzalloc(sizeof(struct r5conf), GFP_KERNEL);
+ conf = kzalloc_obj(struct r5conf, GFP_KERNEL);
if (conf == NULL)
goto abort;
@@ -7508,9 +7508,8 @@ static struct r5conf *setup_conf(struct mddev *mddev)
#endif
INIT_LIST_HEAD(&conf->free_list);
INIT_LIST_HEAD(&conf->pending_list);
- conf->pending_data = kcalloc(PENDING_IO_MAX,
- sizeof(struct r5pending_data),
- GFP_KERNEL);
+ conf->pending_data = kzalloc_objs(struct r5pending_data, PENDING_IO_MAX,
+ GFP_KERNEL);
if (!conf->pending_data)
goto abort;
for (i = 0; i < PENDING_IO_MAX; i++)
@@ -7557,8 +7556,7 @@ static struct r5conf *setup_conf(struct mddev *mddev)
conf->previous_raid_disks = mddev->raid_disks - mddev->delta_disks;
max_disks = max(conf->raid_disks, conf->previous_raid_disks);
- conf->disks = kcalloc(max_disks, sizeof(struct disk_info),
- GFP_KERNEL);
+ conf->disks = kzalloc_objs(struct disk_info, max_disks, GFP_KERNEL);
if (!conf->disks)
goto abort;
diff --git a/drivers/media/cec/core/cec-adap.c b/drivers/media/cec/core/cec-adap.c
index ba6828ef540e..b81cdf343209 100644
--- a/drivers/media/cec/core/cec-adap.c
+++ b/drivers/media/cec/core/cec-adap.c
@@ -95,7 +95,7 @@ void cec_queue_event_fh(struct cec_fh *fh,
if (ev_idx < CEC_NUM_CORE_EVENTS)
entry = &fh->core_events[ev_idx];
else
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (entry) {
if (new_ev->event == CEC_EVENT_LOST_MSGS &&
fh->queued_events[ev_idx]) {
@@ -218,7 +218,7 @@ static void cec_queue_msg_fh(struct cec_fh *fh, const struct cec_msg *msg)
struct cec_msg_entry *entry;
mutex_lock(&fh->lock);
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (entry) {
entry->msg = *msg;
/* Add new msg at the end of the queue */
@@ -922,7 +922,7 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct cec_msg *msg,
return -EBUSY;
}
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/media/cec/core/cec-api.c b/drivers/media/cec/core/cec-api.c
index 2b50578d107e..c634185a3446 100644
--- a/drivers/media/cec/core/cec-api.c
+++ b/drivers/media/cec/core/cec-api.c
@@ -555,7 +555,7 @@ static int cec_open(struct inode *inode, struct file *filp)
struct cec_devnode *devnode =
container_of(inode->i_cdev, struct cec_devnode, cdev);
struct cec_adapter *adap = to_cec_adapter(devnode);
- struct cec_fh *fh = kzalloc(sizeof(*fh), GFP_KERNEL);
+ struct cec_fh *fh = kzalloc_obj(*fh, GFP_KERNEL);
/*
* Initial events that are automatically sent when the cec device is
* opened.
diff --git a/drivers/media/cec/core/cec-core.c b/drivers/media/cec/core/cec-core.c
index dd6e24a0899b..e6d958662d37 100644
--- a/drivers/media/cec/core/cec-core.c
+++ b/drivers/media/cec/core/cec-core.c
@@ -237,7 +237,7 @@ struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops,
return ERR_PTR(-EINVAL);
if (WARN_ON(!available_las || available_las > CEC_MAX_LOG_ADDRS))
return ERR_PTR(-EINVAL);
- adap = kzalloc(sizeof(*adap), GFP_KERNEL);
+ adap = kzalloc_obj(*adap, GFP_KERNEL);
if (!adap)
return ERR_PTR(-ENOMEM);
strscpy(adap->name, name, sizeof(adap->name));
diff --git a/drivers/media/cec/core/cec-notifier.c b/drivers/media/cec/core/cec-notifier.c
index 1fed0b1c71e9..026476ce6bfb 100644
--- a/drivers/media/cec/core/cec-notifier.c
+++ b/drivers/media/cec/core/cec-notifier.c
@@ -63,7 +63,7 @@ cec_notifier_get_conn(struct device *hdmi_dev, const char *port_name)
return n;
}
}
- n = kzalloc(sizeof(*n), GFP_KERNEL);
+ n = kzalloc_obj(*n, GFP_KERNEL);
if (!n)
goto unlock;
n->hdmi_dev = hdmi_dev;
diff --git a/drivers/media/cec/core/cec-pin.c b/drivers/media/cec/core/cec-pin.c
index 4d7155281daa..5299d944b526 100644
--- a/drivers/media/cec/core/cec-pin.c
+++ b/drivers/media/cec/core/cec-pin.c
@@ -1367,7 +1367,7 @@ struct cec_adapter *cec_pin_allocate_adapter(const struct cec_pin_ops *pin_ops,
void *priv, const char *name, u32 caps)
{
struct cec_adapter *adap;
- struct cec_pin *pin = kzalloc(sizeof(*pin), GFP_KERNEL);
+ struct cec_pin *pin = kzalloc_obj(*pin, GFP_KERNEL);
if (pin == NULL)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/cec/usb/extron-da-hd-4k-plus/extron-da-hd-4k-plus.c b/drivers/media/cec/usb/extron-da-hd-4k-plus/extron-da-hd-4k-plus.c
index bf92576bb2fc..8249d3bb11e4 100644
--- a/drivers/media/cec/usb/extron-da-hd-4k-plus/extron-da-hd-4k-plus.c
+++ b/drivers/media/cec/usb/extron-da-hd-4k-plus/extron-da-hd-4k-plus.c
@@ -1494,7 +1494,7 @@ static int extron_setup(struct extron *extron)
if (vendor_id)
caps &= ~CEC_CAP_LOG_ADDRS;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return -ENOMEM;
@@ -1769,7 +1769,7 @@ static int extron_connect(struct serio *serio, struct serio_driver *drv)
manufacturer_name[0] = 0;
}
- extron = kzalloc(sizeof(*extron), GFP_KERNEL);
+ extron = kzalloc_obj(*extron, GFP_KERNEL);
if (!extron)
return -ENOMEM;
diff --git a/drivers/media/cec/usb/pulse8/pulse8-cec.c b/drivers/media/cec/usb/pulse8/pulse8-cec.c
index 60569f1670fe..d000416d25c4 100644
--- a/drivers/media/cec/usb/pulse8/pulse8-cec.c
+++ b/drivers/media/cec/usb/pulse8/pulse8-cec.c
@@ -840,7 +840,7 @@ static int pulse8_connect(struct serio *serio, struct serio_driver *drv)
struct cec_log_addrs log_addrs = {};
u16 pa = CEC_PHYS_ADDR_INVALID;
- pulse8 = kzalloc(sizeof(*pulse8), GFP_KERNEL);
+ pulse8 = kzalloc_obj(*pulse8, GFP_KERNEL);
if (!pulse8)
return -ENOMEM;
diff --git a/drivers/media/cec/usb/rainshadow/rainshadow-cec.c b/drivers/media/cec/usb/rainshadow/rainshadow-cec.c
index 6c0cee4b066f..5457fe240654 100644
--- a/drivers/media/cec/usb/rainshadow/rainshadow-cec.c
+++ b/drivers/media/cec/usb/rainshadow/rainshadow-cec.c
@@ -313,7 +313,7 @@ static int rain_connect(struct serio *serio, struct serio_driver *drv)
struct cec_log_addrs log_addrs = {};
u16 pa = CEC_PHYS_ADDR_INVALID;
- rain = kzalloc(sizeof(*rain), GFP_KERNEL);
+ rain = kzalloc_obj(*rain, GFP_KERNEL);
if (!rain)
return -ENOMEM;
diff --git a/drivers/media/common/b2c2/flexcop.c b/drivers/media/common/b2c2/flexcop.c
index 8506de48ba45..88668065a308 100644
--- a/drivers/media/common/b2c2/flexcop.c
+++ b/drivers/media/common/b2c2/flexcop.c
@@ -214,8 +214,8 @@ void flexcop_reset_block_300(struct flexcop_device *fc)
struct flexcop_device *flexcop_device_kmalloc(size_t bus_specific_len)
{
void *bus;
- struct flexcop_device *fc = kzalloc(sizeof(struct flexcop_device),
- GFP_KERNEL);
+ struct flexcop_device *fc = kzalloc_obj(struct flexcop_device,
+ GFP_KERNEL);
if (!fc) {
err("no memory");
return NULL;
diff --git a/drivers/media/common/cypress_firmware.c b/drivers/media/common/cypress_firmware.c
index cdc7050ed3ac..c1c110428928 100644
--- a/drivers/media/common/cypress_firmware.c
+++ b/drivers/media/common/cypress_firmware.c
@@ -75,7 +75,7 @@ int cypress_load_firmware(struct usb_device *udev,
struct hexline *hx;
int ret, pos = 0;
- hx = kmalloc(sizeof(*hx), GFP_KERNEL);
+ hx = kmalloc_obj(*hx, GFP_KERNEL);
if (!hx)
return -ENOMEM;
diff --git a/drivers/media/common/saa7146/saa7146_core.c b/drivers/media/common/saa7146/saa7146_core.c
index 27c53eed8fe3..fc0f88b16dc3 100644
--- a/drivers/media/common/saa7146/saa7146_core.c
+++ b/drivers/media/common/saa7146/saa7146_core.c
@@ -141,7 +141,7 @@ static struct scatterlist* vmalloc_to_sg(unsigned char *virt, int nr_pages)
struct page *pg;
int i;
- sglist = kmalloc_array(nr_pages, sizeof(struct scatterlist), GFP_KERNEL);
+ sglist = kmalloc_objs(struct scatterlist, nr_pages, GFP_KERNEL);
if (NULL == sglist)
return NULL;
sg_init_table(sglist, nr_pages);
@@ -334,7 +334,7 @@ static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent
int err = -ENOMEM;
/* clear out mem for sure */
- dev = kzalloc(sizeof(struct saa7146_dev), GFP_KERNEL);
+ dev = kzalloc_obj(struct saa7146_dev, GFP_KERNEL);
if (!dev) {
ERR("out of memory\n");
goto out;
diff --git a/drivers/media/common/saa7146/saa7146_fops.c b/drivers/media/common/saa7146/saa7146_fops.c
index a9e3bad76d54..f448c0a0e05f 100644
--- a/drivers/media/common/saa7146/saa7146_fops.c
+++ b/drivers/media/common/saa7146/saa7146_fops.c
@@ -266,7 +266,7 @@ int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv)
}
dev->v4l2_dev.ctrl_handler = hdl;
- vv = kzalloc(sizeof(struct saa7146_vv), GFP_KERNEL);
+ vv = kzalloc_obj(struct saa7146_vv, GFP_KERNEL);
if (vv == NULL) {
ERR("out of memory. aborting.\n");
v4l2_ctrl_handler_free(hdl);
diff --git a/drivers/media/common/siano/smscoreapi.c b/drivers/media/common/siano/smscoreapi.c
index 3732367e0c62..489a8dd0a161 100644
--- a/drivers/media/common/siano/smscoreapi.c
+++ b/drivers/media/common/siano/smscoreapi.c
@@ -439,7 +439,7 @@ static struct smscore_registry_entry_t *smscore_find_registry(char *devpath)
return entry;
}
}
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (entry) {
entry->mode = default_mode;
strscpy(entry->devpath, devpath, sizeof(entry->devpath));
@@ -528,7 +528,7 @@ int smscore_register_hotplug(hotplug_t hotplug)
int rc = 0;
mutex_lock(&g_smscore_deviceslock);
- notifyee = kmalloc(sizeof(*notifyee), GFP_KERNEL);
+ notifyee = kmalloc_obj(*notifyee, GFP_KERNEL);
if (notifyee) {
/* now notify callback about existing devices */
first = &g_smscore_devices;
@@ -617,7 +617,7 @@ smscore_buffer_t *smscore_createbuffer(u8 *buffer, void *common_buffer,
{
struct smscore_buffer_t *cb;
- cb = kzalloc(sizeof(*cb), GFP_KERNEL);
+ cb = kzalloc_obj(*cb, GFP_KERNEL);
if (!cb)
return NULL;
@@ -647,7 +647,7 @@ int smscore_register_device(struct smsdevice_params_t *params,
struct smscore_device_t *dev;
u8 *buffer;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
@@ -1678,7 +1678,7 @@ static int smscore_validate_client(struct smscore_device_t *coredev,
pr_err("The msg ID already registered to another client.\n");
return -EEXIST;
}
- listentry = kzalloc(sizeof(*listentry), GFP_KERNEL);
+ listentry = kzalloc_obj(*listentry, GFP_KERNEL);
if (!listentry)
return -ENOMEM;
@@ -1715,7 +1715,7 @@ int smscore_register_client(struct smscore_device_t *coredev,
return -EEXIST;
}
- newclient = kzalloc(sizeof(*newclient), GFP_KERNEL);
+ newclient = kzalloc_obj(*newclient, GFP_KERNEL);
if (!newclient)
return -ENOMEM;
diff --git a/drivers/media/common/siano/smsdvb-debugfs.c b/drivers/media/common/siano/smsdvb-debugfs.c
index d14ba271db50..e5fbc08d4192 100644
--- a/drivers/media/common/siano/smsdvb-debugfs.c
+++ b/drivers/media/common/siano/smsdvb-debugfs.c
@@ -358,7 +358,7 @@ int smsdvb_debugfs_create(struct smsdvb_client_t *client)
if (!smsdvb_debugfs_usb_root || !coredev->is_usb_device)
return -ENODEV;
- debug_data = kzalloc(sizeof(*client->debug_data), GFP_KERNEL);
+ debug_data = kzalloc_obj(*client->debug_data, GFP_KERNEL);
if (!debug_data)
return -ENOMEM;
diff --git a/drivers/media/common/siano/smsdvb-main.c b/drivers/media/common/siano/smsdvb-main.c
index 9b1a650ed055..f49845a266e5 100644
--- a/drivers/media/common/siano/smsdvb-main.c
+++ b/drivers/media/common/siano/smsdvb-main.c
@@ -1110,7 +1110,7 @@ static int smsdvb_hotplug(struct smscore_device_t *coredev,
/* device removal handled by onremove callback */
if (!arrival)
return 0;
- client = kzalloc(sizeof(struct smsdvb_client_t), GFP_KERNEL);
+ client = kzalloc_obj(struct smsdvb_client_t, GFP_KERNEL);
if (!client)
return -ENOMEM;
diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c
index 2d1f253b4929..a70181f8d9d9 100644
--- a/drivers/media/common/videobuf2/videobuf2-core.c
+++ b/drivers/media/common/videobuf2/videobuf2-core.c
@@ -841,7 +841,7 @@ static bool verify_coherency_flags(struct vb2_queue *q, bool non_coherent_mem)
static int vb2_core_allocated_buffers_storage(struct vb2_queue *q)
{
if (!q->bufs)
- q->bufs = kcalloc(q->max_num_buffers, sizeof(*q->bufs), GFP_KERNEL);
+ q->bufs = kzalloc_objs(*q->bufs, q->max_num_buffers, GFP_KERNEL);
if (!q->bufs)
return -ENOMEM;
@@ -2861,7 +2861,7 @@ static int __vb2_init_fileio(struct vb2_queue *q, int read)
(read) ? "read" : "write", q->min_reqbufs_allocation, q->fileio_read_once,
q->fileio_write_immediately);
- fileio = kzalloc(sizeof(*fileio), GFP_KERNEL);
+ fileio = kzalloc_obj(*fileio, GFP_KERNEL);
if (fileio == NULL)
return -ENOMEM;
@@ -3256,7 +3256,7 @@ int vb2_thread_start(struct vb2_queue *q, vb2_thread_fnc fnc, void *priv,
if (WARN_ON(q->fileio))
return -EBUSY;
- threadio = kzalloc(sizeof(*threadio), GFP_KERNEL);
+ threadio = kzalloc_obj(*threadio, GFP_KERNEL);
if (threadio == NULL)
return -ENOMEM;
threadio->fnc = fnc;
diff --git a/drivers/media/common/videobuf2/videobuf2-dma-contig.c b/drivers/media/common/videobuf2/videobuf2-dma-contig.c
index 7123c5fae92c..983de3b99acb 100644
--- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c
+++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c
@@ -238,7 +238,7 @@ static void *vb2_dc_alloc(struct vb2_buffer *vb,
if (WARN_ON(!dev))
return ERR_PTR(-EINVAL);
- buf = kzalloc(sizeof *buf, GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return ERR_PTR(-ENOMEM);
@@ -325,7 +325,7 @@ static int vb2_dc_dmabuf_ops_attach(struct dma_buf *dbuf,
struct vb2_dc_buf *buf = dbuf->priv;
int ret;
- attach = kzalloc(sizeof(*attach), GFP_KERNEL);
+ attach = kzalloc_obj(*attach, GFP_KERNEL);
if (!attach)
return -ENOMEM;
@@ -479,7 +479,7 @@ static struct sg_table *vb2_dc_get_base_sgt(struct vb2_dc_buf *buf)
if (buf->non_coherent_mem)
return buf->dma_sgt;
- sgt = kmalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kmalloc_obj(*sgt, GFP_KERNEL);
if (!sgt) {
dev_err(buf->dev, "failed to alloc sg table\n");
return NULL;
@@ -587,7 +587,7 @@ static void *vb2_dc_get_userptr(struct vb2_buffer *vb, struct device *dev,
if (WARN_ON(!dev))
return ERR_PTR(-EINVAL);
- buf = kzalloc(sizeof *buf, GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return ERR_PTR(-ENOMEM);
@@ -624,7 +624,7 @@ static void *vb2_dc_get_userptr(struct vb2_buffer *vb, struct device *dev,
goto out;
}
- sgt = kzalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kzalloc_obj(*sgt, GFP_KERNEL);
if (!sgt) {
pr_err("failed to allocate sg table\n");
ret = -ENOMEM;
@@ -779,7 +779,7 @@ static void *vb2_dc_attach_dmabuf(struct vb2_buffer *vb, struct device *dev,
if (WARN_ON(!dev))
return ERR_PTR(-EINVAL);
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/common/videobuf2/videobuf2-dma-sg.c b/drivers/media/common/videobuf2/videobuf2-dma-sg.c
index b3bf2173c14e..76a9301fb85b 100644
--- a/drivers/media/common/videobuf2/videobuf2-dma-sg.c
+++ b/drivers/media/common/videobuf2/videobuf2-dma-sg.c
@@ -109,7 +109,7 @@ static void *vb2_dma_sg_alloc(struct vb2_buffer *vb, struct device *dev,
if (WARN_ON(!dev) || WARN_ON(!size))
return ERR_PTR(-EINVAL);
- buf = kzalloc(sizeof *buf, GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return ERR_PTR(-ENOMEM);
@@ -126,7 +126,7 @@ static void *vb2_dma_sg_alloc(struct vb2_buffer *vb, struct device *dev,
* there is no memory consistency guarantee, hence dma-sg ignores DMA
* attributes passed from the upper layer.
*/
- buf->pages = kvcalloc(buf->num_pages, sizeof(struct page *), GFP_KERNEL);
+ buf->pages = kvzalloc_objs(struct page *, buf->num_pages, GFP_KERNEL);
if (!buf->pages)
goto fail_pages_array_alloc;
@@ -230,7 +230,7 @@ static void *vb2_dma_sg_get_userptr(struct vb2_buffer *vb, struct device *dev,
if (WARN_ON(!dev))
return ERR_PTR(-EINVAL);
- buf = kzalloc(sizeof *buf, GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return ERR_PTR(-ENOMEM);
@@ -375,7 +375,7 @@ static int vb2_dma_sg_dmabuf_ops_attach(struct dma_buf *dbuf,
struct vb2_dma_sg_buf *buf = dbuf->priv;
int ret;
- attach = kzalloc(sizeof(*attach), GFP_KERNEL);
+ attach = kzalloc_obj(*attach, GFP_KERNEL);
if (!attach)
return -ENOMEM;
@@ -626,7 +626,7 @@ static void *vb2_dma_sg_attach_dmabuf(struct vb2_buffer *vb, struct device *dev,
if (dbuf->size < size)
return ERR_PTR(-EFAULT);
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/common/videobuf2/videobuf2-dvb.c b/drivers/media/common/videobuf2/videobuf2-dvb.c
index 3746bf6d1c15..e37dd9007b19 100644
--- a/drivers/media/common/videobuf2/videobuf2-dvb.c
+++ b/drivers/media/common/videobuf2/videobuf2-dvb.c
@@ -299,7 +299,7 @@ struct vb2_dvb_frontend *vb2_dvb_alloc_frontend(
{
struct vb2_dvb_frontend *fe;
- fe = kzalloc(sizeof(struct vb2_dvb_frontend), GFP_KERNEL);
+ fe = kzalloc_obj(struct vb2_dvb_frontend, GFP_KERNEL);
if (fe == NULL)
return NULL;
diff --git a/drivers/media/common/videobuf2/videobuf2-vmalloc.c b/drivers/media/common/videobuf2/videobuf2-vmalloc.c
index 3f777068cd34..a410e9078626 100644
--- a/drivers/media/common/videobuf2/videobuf2-vmalloc.c
+++ b/drivers/media/common/videobuf2/videobuf2-vmalloc.c
@@ -39,7 +39,7 @@ static void *vb2_vmalloc_alloc(struct vb2_buffer *vb, struct device *dev,
{
struct vb2_vmalloc_buf *buf;
- buf = kzalloc(sizeof(*buf), GFP_KERNEL | vb->vb2_queue->gfp_flags);
+ buf = kzalloc_obj(*buf, GFP_KERNEL | vb->vb2_queue->gfp_flags);
if (!buf)
return ERR_PTR(-ENOMEM);
@@ -78,7 +78,7 @@ static void *vb2_vmalloc_get_userptr(struct vb2_buffer *vb, struct device *dev,
int n_pages, offset, i;
int ret = -ENOMEM;
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return ERR_PTR(-ENOMEM);
@@ -221,7 +221,7 @@ static int vb2_vmalloc_dmabuf_ops_attach(struct dma_buf *dbuf,
int ret;
int i;
- attach = kzalloc(sizeof(*attach), GFP_KERNEL);
+ attach = kzalloc_obj(*attach, GFP_KERNEL);
if (!attach)
return -ENOMEM;
@@ -409,7 +409,7 @@ static void *vb2_vmalloc_attach_dmabuf(struct vb2_buffer *vb,
if (dbuf->size < size)
return ERR_PTR(-EFAULT);
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/dvb-core/dmxdev.c b/drivers/media/dvb-core/dmxdev.c
index c946c8ea6e39..254d56059863 100644
--- a/drivers/media/dvb-core/dmxdev.c
+++ b/drivers/media/dvb-core/dmxdev.c
@@ -892,7 +892,7 @@ static int dvb_dmxdev_add_pid(struct dmxdev *dmxdev,
(!list_empty(&filter->feed.ts)))
return -EINVAL;
- feed = kzalloc(sizeof(struct dmxdev_feed), GFP_KERNEL);
+ feed = kzalloc_obj(struct dmxdev_feed, GFP_KERNEL);
if (feed == NULL)
return -ENOMEM;
diff --git a/drivers/media/dvb-core/dvb_ca_en50221.c b/drivers/media/dvb-core/dvb_ca_en50221.c
index 7b591aa1179f..d25d4522240a 100644
--- a/drivers/media/dvb-core/dvb_ca_en50221.c
+++ b/drivers/media/dvb-core/dvb_ca_en50221.c
@@ -1880,7 +1880,7 @@ int dvb_ca_en50221_init(struct dvb_adapter *dvb_adapter,
return -EINVAL;
/* initialise the system data */
- ca = kzalloc(sizeof(*ca), GFP_KERNEL);
+ ca = kzalloc_obj(*ca, GFP_KERNEL);
if (!ca) {
ret = -ENOMEM;
goto exit;
@@ -1889,8 +1889,7 @@ int dvb_ca_en50221_init(struct dvb_adapter *dvb_adapter,
ca->pub = pubca;
ca->flags = flags;
ca->slot_count = slot_count;
- ca->slot_info = kcalloc(slot_count, sizeof(struct dvb_ca_slot),
- GFP_KERNEL);
+ ca->slot_info = kzalloc_objs(struct dvb_ca_slot, slot_count, GFP_KERNEL);
if (!ca->slot_info) {
ret = -ENOMEM;
goto free_ca;
diff --git a/drivers/media/dvb-core/dvb_frontend.c b/drivers/media/dvb-core/dvb_frontend.c
index a05aa271a1ba..6ba5857d280f 100644
--- a/drivers/media/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb-core/dvb_frontend.c
@@ -3021,7 +3021,7 @@ int dvb_register_frontend(struct dvb_adapter *dvb,
if (mutex_lock_interruptible(&frontend_mutex))
return -ERESTARTSYS;
- fe->frontend_priv = kzalloc(sizeof(struct dvb_frontend_private), GFP_KERNEL);
+ fe->frontend_priv = kzalloc_obj(struct dvb_frontend_private, GFP_KERNEL);
if (!fe->frontend_priv) {
mutex_unlock(&frontend_mutex);
return -ENOMEM;
diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c
index 8b980d371a45..00476e7ee048 100644
--- a/drivers/media/dvb-core/dvbdev.c
+++ b/drivers/media/dvb-core/dvbdev.c
@@ -251,13 +251,13 @@ static int dvb_create_tsout_entity(struct dvb_device *dvbdev,
{
int i;
- dvbdev->tsout_pads = kcalloc(npads, sizeof(*dvbdev->tsout_pads),
- GFP_KERNEL);
+ dvbdev->tsout_pads = kzalloc_objs(*dvbdev->tsout_pads, npads,
+ GFP_KERNEL);
if (!dvbdev->tsout_pads)
return -ENOMEM;
- dvbdev->tsout_entity = kcalloc(npads, sizeof(*dvbdev->tsout_entity),
- GFP_KERNEL);
+ dvbdev->tsout_entity = kzalloc_objs(*dvbdev->tsout_entity, npads,
+ GFP_KERNEL);
if (!dvbdev->tsout_entity)
return -ENOMEM;
@@ -328,15 +328,14 @@ static int dvb_create_media_entity(struct dvb_device *dvbdev,
return 0;
}
- dvbdev->entity = kzalloc(sizeof(*dvbdev->entity), GFP_KERNEL);
+ dvbdev->entity = kzalloc_obj(*dvbdev->entity, GFP_KERNEL);
if (!dvbdev->entity)
return -ENOMEM;
dvbdev->entity->name = dvbdev->name;
if (npads) {
- dvbdev->pads = kcalloc(npads, sizeof(*dvbdev->pads),
- GFP_KERNEL);
+ dvbdev->pads = kzalloc_objs(*dvbdev->pads, npads, GFP_KERNEL);
if (!dvbdev->pads) {
kfree(dvbdev->entity);
dvbdev->entity = NULL;
@@ -472,7 +471,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
return -ENFILE;
}
- *pdvbdev = dvbdev = kzalloc(sizeof(*dvbdev), GFP_KERNEL);
+ *pdvbdev = dvbdev = kzalloc_obj(*dvbdev, GFP_KERNEL);
if (!dvbdev) {
mutex_unlock(&dvbdev_register_lock);
return -ENOMEM;
@@ -500,7 +499,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
return -ENOMEM;
}
- new_node = kzalloc(sizeof(*new_node), GFP_KERNEL);
+ new_node = kzalloc_obj(*new_node, GFP_KERNEL);
if (!new_node) {
kfree(dvbdevfops);
kfree(dvbdev);
@@ -712,12 +711,12 @@ int dvb_create_media_graph(struct dvb_adapter *adap,
demod = NULL;
if (create_rf_connector) {
- conn = kzalloc(sizeof(*conn), GFP_KERNEL);
+ conn = kzalloc_obj(*conn, GFP_KERNEL);
if (!conn)
return -ENOMEM;
adap->conn = conn;
- adap->conn_pads = kzalloc(sizeof(*adap->conn_pads), GFP_KERNEL);
+ adap->conn_pads = kzalloc_obj(*adap->conn_pads, GFP_KERNEL);
if (!adap->conn_pads)
return -ENOMEM;
@@ -1027,7 +1026,7 @@ struct i2c_client *dvb_module_probe(const char *module_name,
struct i2c_client *client;
struct i2c_board_info *board_info;
- board_info = kzalloc(sizeof(*board_info), GFP_KERNEL);
+ board_info = kzalloc_obj(*board_info, GFP_KERNEL);
if (!board_info)
return NULL;
diff --git a/drivers/media/dvb-frontends/a8293.c b/drivers/media/dvb-frontends/a8293.c
index bf2773c5b97a..c1eeed1d08e6 100644
--- a/drivers/media/dvb-frontends/a8293.c
+++ b/drivers/media/dvb-frontends/a8293.c
@@ -218,7 +218,7 @@ static int a8293_probe(struct i2c_client *client)
int ret;
u8 buf[2];
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/dvb-frontends/af9013.c b/drivers/media/dvb-frontends/af9013.c
index befd6a4eafd9..d004ec9e94f0 100644
--- a/drivers/media/dvb-frontends/af9013.c
+++ b/drivers/media/dvb-frontends/af9013.c
@@ -1447,7 +1447,7 @@ static int af9013_probe(struct i2c_client *client)
.val_bits = 8,
};
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/dvb-frontends/af9033.c b/drivers/media/dvb-frontends/af9033.c
index eed2ea4da8fa..584cc0405e4a 100644
--- a/drivers/media/dvb-frontends/af9033.c
+++ b/drivers/media/dvb-frontends/af9033.c
@@ -1062,7 +1062,7 @@ static int af9033_probe(struct i2c_client *client)
};
/* Allocate memory for the internal state */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/dvb-frontends/as102_fe.c b/drivers/media/dvb-frontends/as102_fe.c
index bc72d954dc1f..5b17d0b6f3ea 100644
--- a/drivers/media/dvb-frontends/as102_fe.c
+++ b/drivers/media/dvb-frontends/as102_fe.c
@@ -447,7 +447,7 @@ struct dvb_frontend *as102_attach(const char *name,
struct as102_state *state;
struct dvb_frontend *fe;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/media/dvb-frontends/ascot2e.c b/drivers/media/dvb-frontends/ascot2e.c
index cf8e5f1bd101..0d28a3422cae 100644
--- a/drivers/media/dvb-frontends/ascot2e.c
+++ b/drivers/media/dvb-frontends/ascot2e.c
@@ -477,7 +477,7 @@ struct dvb_frontend *ascot2e_attach(struct dvb_frontend *fe,
u8 data[4];
struct ascot2e_priv *priv = NULL;
- priv = kzalloc(sizeof(struct ascot2e_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct ascot2e_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
priv->i2c_address = (config->i2c_address >> 1);
diff --git a/drivers/media/dvb-frontends/atbm8830.c b/drivers/media/dvb-frontends/atbm8830.c
index 778c865085bf..2b9dbd748ebc 100644
--- a/drivers/media/dvb-frontends/atbm8830.c
+++ b/drivers/media/dvb-frontends/atbm8830.c
@@ -458,7 +458,7 @@ struct dvb_frontend *atbm8830_attach(const struct atbm8830_config *config,
if (config == NULL || i2c == NULL)
return NULL;
- priv = kzalloc(sizeof(struct atbm_state), GFP_KERNEL);
+ priv = kzalloc_obj(struct atbm_state, GFP_KERNEL);
if (priv == NULL)
goto error_out;
diff --git a/drivers/media/dvb-frontends/bcm3510.c b/drivers/media/dvb-frontends/bcm3510.c
index d935fb10e620..50f43f9c7aef 100644
--- a/drivers/media/dvb-frontends/bcm3510.c
+++ b/drivers/media/dvb-frontends/bcm3510.c
@@ -800,7 +800,7 @@ struct dvb_frontend* bcm3510_attach(const struct bcm3510_config *config,
bcm3510_register_value v;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct bcm3510_state), GFP_KERNEL);
+ state = kzalloc_obj(struct bcm3510_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/cx22700.c b/drivers/media/dvb-frontends/cx22700.c
index 1d04c0a652b2..9f36c837fd66 100644
--- a/drivers/media/dvb-frontends/cx22700.c
+++ b/drivers/media/dvb-frontends/cx22700.c
@@ -376,7 +376,7 @@ struct dvb_frontend* cx22700_attach(const struct cx22700_config* config,
struct cx22700_state* state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct cx22700_state), GFP_KERNEL);
+ state = kzalloc_obj(struct cx22700_state, GFP_KERNEL);
if (state == NULL) goto error;
/* setup the state */
diff --git a/drivers/media/dvb-frontends/cx22702.c b/drivers/media/dvb-frontends/cx22702.c
index 61ad34b7004b..acdc8712d343 100644
--- a/drivers/media/dvb-frontends/cx22702.c
+++ b/drivers/media/dvb-frontends/cx22702.c
@@ -582,7 +582,7 @@ struct dvb_frontend *cx22702_attach(const struct cx22702_config *config,
struct cx22702_state *state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct cx22702_state), GFP_KERNEL);
+ state = kzalloc_obj(struct cx22702_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/cx24110.c b/drivers/media/dvb-frontends/cx24110.c
index 65dd9b72ea55..a413dd023aa9 100644
--- a/drivers/media/dvb-frontends/cx24110.c
+++ b/drivers/media/dvb-frontends/cx24110.c
@@ -588,7 +588,7 @@ struct dvb_frontend* cx24110_attach(const struct cx24110_config* config,
int ret;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct cx24110_state), GFP_KERNEL);
+ state = kzalloc_obj(struct cx24110_state, GFP_KERNEL);
if (state == NULL) goto error;
/* setup the state */
diff --git a/drivers/media/dvb-frontends/cx24113.c b/drivers/media/dvb-frontends/cx24113.c
index 203cb6b3f941..450e9d02e950 100644
--- a/drivers/media/dvb-frontends/cx24113.c
+++ b/drivers/media/dvb-frontends/cx24113.c
@@ -542,7 +542,7 @@ struct dvb_frontend *cx24113_attach(struct dvb_frontend *fe,
const struct cx24113_config *config, struct i2c_adapter *i2c)
{
/* allocate memory for the internal state */
- struct cx24113_state *state = kzalloc(sizeof(*state), GFP_KERNEL);
+ struct cx24113_state *state = kzalloc_obj(*state, GFP_KERNEL);
int rc;
if (!state)
diff --git a/drivers/media/dvb-frontends/cx24116.c b/drivers/media/dvb-frontends/cx24116.c
index f5dd3a81725a..f7c2d7b165ce 100644
--- a/drivers/media/dvb-frontends/cx24116.c
+++ b/drivers/media/dvb-frontends/cx24116.c
@@ -1116,7 +1116,7 @@ struct dvb_frontend *cx24116_attach(const struct cx24116_config *config,
dprintk("%s\n", __func__);
/* allocate memory for the internal state */
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state == NULL)
return NULL;
diff --git a/drivers/media/dvb-frontends/cx24117.c b/drivers/media/dvb-frontends/cx24117.c
index 75fc7ad263d0..99555db3c537 100644
--- a/drivers/media/dvb-frontends/cx24117.c
+++ b/drivers/media/dvb-frontends/cx24117.c
@@ -1184,7 +1184,7 @@ struct dvb_frontend *cx24117_attach(const struct cx24117_config *config,
}
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct cx24117_state), GFP_KERNEL);
+ state = kzalloc_obj(struct cx24117_state, GFP_KERNEL);
if (state == NULL)
goto error2;
diff --git a/drivers/media/dvb-frontends/cx24120.c b/drivers/media/dvb-frontends/cx24120.c
index 44515fdbe91d..2602fe350d35 100644
--- a/drivers/media/dvb-frontends/cx24120.c
+++ b/drivers/media/dvb-frontends/cx24120.c
@@ -268,7 +268,7 @@ struct dvb_frontend *cx24120_attach(const struct cx24120_config *config,
int demod_rev;
info("Conexant cx24120/cx24118 - DVBS/S2 Satellite demod/tuner\n");
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state) {
err("Unable to allocate memory for cx24120_state\n");
goto error;
diff --git a/drivers/media/dvb-frontends/cx24123.c b/drivers/media/dvb-frontends/cx24123.c
index 539889e638cc..ecc1a017cbe1 100644
--- a/drivers/media/dvb-frontends/cx24123.c
+++ b/drivers/media/dvb-frontends/cx24123.c
@@ -1043,7 +1043,7 @@ struct dvb_frontend *cx24123_attach(const struct cx24123_config *config,
{
/* allocate memory for the internal state */
struct cx24123_state *state =
- kzalloc(sizeof(struct cx24123_state), GFP_KERNEL);
+ kzalloc_obj(struct cx24123_state, GFP_KERNEL);
dprintk("\n");
if (state == NULL) {
diff --git a/drivers/media/dvb-frontends/cxd2099.c b/drivers/media/dvb-frontends/cxd2099.c
index 5e6e18819a0d..80ca00f22d07 100644
--- a/drivers/media/dvb-frontends/cxd2099.c
+++ b/drivers/media/dvb-frontends/cxd2099.c
@@ -609,7 +609,7 @@ static int cxd2099_probe(struct i2c_client *client)
unsigned int val;
int ret;
- ci = kzalloc(sizeof(*ci), GFP_KERNEL);
+ ci = kzalloc_obj(*ci, GFP_KERNEL);
if (!ci) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/dvb-frontends/cxd2820r_core.c b/drivers/media/dvb-frontends/cxd2820r_core.c
index 5aa3d45a691a..ed3f535db949 100644
--- a/drivers/media/dvb-frontends/cxd2820r_core.c
+++ b/drivers/media/dvb-frontends/cxd2820r_core.c
@@ -594,7 +594,7 @@ static int cxd2820r_probe(struct i2c_client *client)
dev_dbg(&client->dev, "\n");
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/dvb-frontends/cxd2841er.c b/drivers/media/dvb-frontends/cxd2841er.c
index 8fcb4417ba22..db58803c85df 100644
--- a/drivers/media/dvb-frontends/cxd2841er.c
+++ b/drivers/media/dvb-frontends/cxd2841er.c
@@ -3844,7 +3844,7 @@ static struct dvb_frontend *cxd2841er_attach(struct cxd2841er_config *cfg,
struct cxd2841er_priv *priv = NULL;
/* allocate memory for the internal state */
- priv = kzalloc(sizeof(struct cxd2841er_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct cxd2841er_priv, GFP_KERNEL);
if (!priv)
return NULL;
priv->i2c = i2c;
diff --git a/drivers/media/dvb-frontends/cxd2880/cxd2880_top.c b/drivers/media/dvb-frontends/cxd2880/cxd2880_top.c
index a06d8368ca79..1a1ed41f7555 100644
--- a/drivers/media/dvb-frontends/cxd2880/cxd2880_top.c
+++ b/drivers/media/dvb-frontends/cxd2880/cxd2880_top.c
@@ -1887,7 +1887,7 @@ struct dvb_frontend *cxd2880_attach(struct dvb_frontend *fe,
return NULL;
}
- priv = kzalloc(sizeof(struct cxd2880_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct cxd2880_priv, GFP_KERNEL);
if (!priv)
return NULL;
diff --git a/drivers/media/dvb-frontends/dib0070.c b/drivers/media/dvb-frontends/dib0070.c
index 9a8e7cdd2a24..de91a6e497a7 100644
--- a/drivers/media/dvb-frontends/dib0070.c
+++ b/drivers/media/dvb-frontends/dib0070.c
@@ -738,7 +738,8 @@ static const struct dvb_tuner_ops dib0070_ops = {
struct dvb_frontend *dib0070_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct dib0070_config *cfg)
{
- struct dib0070_state *state = kzalloc(sizeof(struct dib0070_state), GFP_KERNEL);
+ struct dib0070_state *state = kzalloc_obj(struct dib0070_state,
+ GFP_KERNEL);
if (state == NULL)
return NULL;
diff --git a/drivers/media/dvb-frontends/dib0090.c b/drivers/media/dvb-frontends/dib0090.c
index 6cbbb351d545..f11083a955ec 100644
--- a/drivers/media/dvb-frontends/dib0090.c
+++ b/drivers/media/dvb-frontends/dib0090.c
@@ -2606,7 +2606,7 @@ static const struct dib0090_wbd_slope dib0090_wbd_table_default[] = {
struct dvb_frontend *dib0090_register(struct dvb_frontend *fe, struct i2c_adapter *i2c, const struct dib0090_config *config)
{
- struct dib0090_state *st = kzalloc(sizeof(struct dib0090_state), GFP_KERNEL);
+ struct dib0090_state *st = kzalloc_obj(struct dib0090_state, GFP_KERNEL);
if (st == NULL)
return NULL;
@@ -2638,7 +2638,8 @@ EXPORT_SYMBOL_GPL(dib0090_register);
struct dvb_frontend *dib0090_fw_register(struct dvb_frontend *fe, struct i2c_adapter *i2c, const struct dib0090_config *config)
{
- struct dib0090_fw_state *st = kzalloc(sizeof(struct dib0090_fw_state), GFP_KERNEL);
+ struct dib0090_fw_state *st = kzalloc_obj(struct dib0090_fw_state,
+ GFP_KERNEL);
if (st == NULL)
return NULL;
diff --git a/drivers/media/dvb-frontends/dib3000mb.c b/drivers/media/dvb-frontends/dib3000mb.c
index 63bc7b74bc8b..ab7046a4ff96 100644
--- a/drivers/media/dvb-frontends/dib3000mb.c
+++ b/drivers/media/dvb-frontends/dib3000mb.c
@@ -746,7 +746,7 @@ struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config,
struct dib3000_state* state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct dib3000_state), GFP_KERNEL);
+ state = kzalloc_obj(struct dib3000_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/dib3000mc.c b/drivers/media/dvb-frontends/dib3000mc.c
index c2fca8289aba..12ee8a5d3b6e 100644
--- a/drivers/media/dvb-frontends/dib3000mc.c
+++ b/drivers/media/dvb-frontends/dib3000mc.c
@@ -861,7 +861,7 @@ int dib3000mc_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 defa
static const u8 DIB3000MC_I2C_ADDRESS[] = { 20, 22, 24, 26 };
- dmcst = kzalloc(sizeof(struct dib3000mc_state), GFP_KERNEL);
+ dmcst = kzalloc_obj(struct dib3000mc_state, GFP_KERNEL);
if (dmcst == NULL)
return -ENOMEM;
@@ -910,7 +910,7 @@ struct dvb_frontend * dib3000mc_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr
{
struct dvb_frontend *demod;
struct dib3000mc_state *st;
- st = kzalloc(sizeof(struct dib3000mc_state), GFP_KERNEL);
+ st = kzalloc_obj(struct dib3000mc_state, GFP_KERNEL);
if (st == NULL)
return NULL;
diff --git a/drivers/media/dvb-frontends/dib7000m.c b/drivers/media/dvb-frontends/dib7000m.c
index fdb22f32e3a1..ffbc313915ed 100644
--- a/drivers/media/dvb-frontends/dib7000m.c
+++ b/drivers/media/dvb-frontends/dib7000m.c
@@ -1403,7 +1403,7 @@ struct dvb_frontend * dib7000m_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr,
{
struct dvb_frontend *demod;
struct dib7000m_state *st;
- st = kzalloc(sizeof(struct dib7000m_state), GFP_KERNEL);
+ st = kzalloc_obj(struct dib7000m_state, GFP_KERNEL);
if (st == NULL)
return NULL;
diff --git a/drivers/media/dvb-frontends/dib7000p.c b/drivers/media/dvb-frontends/dib7000p.c
index 7d3a994b7cc4..2d0c85fb11a0 100644
--- a/drivers/media/dvb-frontends/dib7000p.c
+++ b/drivers/media/dvb-frontends/dib7000p.c
@@ -2081,7 +2081,7 @@ static int dib7000p_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u
int k = 0;
u8 new_addr = 0;
- dpst = kzalloc(sizeof(struct dib7000p_state), GFP_KERNEL);
+ dpst = kzalloc_obj(struct dib7000p_state, GFP_KERNEL);
if (!dpst)
return -ENOMEM;
@@ -2741,7 +2741,7 @@ static struct dvb_frontend *dib7000p_init(struct i2c_adapter *i2c_adap, u8 i2c_a
{
struct dvb_frontend *demod;
struct dib7000p_state *st;
- st = kzalloc(sizeof(struct dib7000p_state), GFP_KERNEL);
+ st = kzalloc_obj(struct dib7000p_state, GFP_KERNEL);
if (st == NULL)
return NULL;
diff --git a/drivers/media/dvb-frontends/dib8000.c b/drivers/media/dvb-frontends/dib8000.c
index d90f1b0b2051..2266178f0a22 100644
--- a/drivers/media/dvb-frontends/dib8000.c
+++ b/drivers/media/dvb-frontends/dib8000.c
@@ -4307,7 +4307,7 @@ static int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods,
ret = -ENOMEM;
goto error_memory_read;
}
- client.i2c_buffer_lock = kzalloc(sizeof(struct mutex), GFP_KERNEL);
+ client.i2c_buffer_lock = kzalloc_obj(struct mutex, GFP_KERNEL);
if (!client.i2c_buffer_lock) {
dprintk("%s: not enough memory\n", __func__);
ret = -ENOMEM;
@@ -4448,10 +4448,10 @@ static struct dvb_frontend *dib8000_init(struct i2c_adapter *i2c_adap, u8 i2c_ad
dprintk("dib8000_init\n");
- state = kzalloc(sizeof(struct dib8000_state), GFP_KERNEL);
+ state = kzalloc_obj(struct dib8000_state, GFP_KERNEL);
if (state == NULL)
return NULL;
- fe = kzalloc(sizeof(struct dvb_frontend), GFP_KERNEL);
+ fe = kzalloc_obj(struct dvb_frontend, GFP_KERNEL);
if (fe == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/dib9000.c b/drivers/media/dvb-frontends/dib9000.c
index 83cf6eadd49c..b2e5fe1af78a 100644
--- a/drivers/media/dvb-frontends/dib9000.c
+++ b/drivers/media/dvb-frontends/dib9000.c
@@ -2474,10 +2474,10 @@ struct dvb_frontend *dib9000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, c
{
struct dvb_frontend *fe;
struct dib9000_state *st;
- st = kzalloc(sizeof(struct dib9000_state), GFP_KERNEL);
+ st = kzalloc_obj(struct dib9000_state, GFP_KERNEL);
if (st == NULL)
return NULL;
- fe = kzalloc(sizeof(struct dvb_frontend), GFP_KERNEL);
+ fe = kzalloc_obj(struct dvb_frontend, GFP_KERNEL);
if (fe == NULL) {
kfree(st);
return NULL;
diff --git a/drivers/media/dvb-frontends/drx39xyj/drxj.c b/drivers/media/dvb-frontends/drx39xyj/drxj.c
index 428b31e60874..c7a91f90ed10 100644
--- a/drivers/media/dvb-frontends/drx39xyj/drxj.c
+++ b/drivers/media/dvb-frontends/drx39xyj/drxj.c
@@ -12276,7 +12276,7 @@ struct dvb_frontend *drx39xxj_attach(struct i2c_adapter *i2c)
int result;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct drx39xxj_state), GFP_KERNEL);
+ state = kzalloc_obj(struct drx39xxj_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/drxd_hard.c b/drivers/media/dvb-frontends/drxd_hard.c
index 6a531937f4bb..aefdd620ce2c 100644
--- a/drivers/media/dvb-frontends/drxd_hard.c
+++ b/drivers/media/dvb-frontends/drxd_hard.c
@@ -2910,7 +2910,7 @@ struct dvb_frontend *drxd_attach(const struct drxd_config *config,
{
struct drxd_state *state = NULL;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/media/dvb-frontends/drxk_hard.c b/drivers/media/dvb-frontends/drxk_hard.c
index 9ef367918824..7fb5f46aa1d4 100644
--- a/drivers/media/dvb-frontends/drxk_hard.c
+++ b/drivers/media/dvb-frontends/drxk_hard.c
@@ -6722,7 +6722,7 @@ struct dvb_frontend *drxk_attach(const struct drxk_config *config,
int status;
dprintk(1, "\n");
- state = kzalloc(sizeof(struct drxk_state), GFP_KERNEL);
+ state = kzalloc_obj(struct drxk_state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c
index 515aa7c7baf2..d300c357f177 100644
--- a/drivers/media/dvb-frontends/ds3000.c
+++ b/drivers/media/dvb-frontends/ds3000.c
@@ -827,7 +827,7 @@ struct dvb_frontend *ds3000_attach(const struct ds3000_config *config,
dprintk("%s\n", __func__);
/* allocate memory for the internal state */
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/media/dvb-frontends/dvb-pll.c b/drivers/media/dvb-frontends/dvb-pll.c
index 1775a4aa0a18..078596bd0361 100644
--- a/drivers/media/dvb-frontends/dvb-pll.c
+++ b/drivers/media/dvb-frontends/dvb-pll.c
@@ -820,7 +820,7 @@ struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe, int pll_addr,
fe->ops.i2c_gate_ctrl(fe, 0);
}
- priv = kzalloc(sizeof(struct dvb_pll_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct dvb_pll_priv, GFP_KERNEL);
if (!priv)
goto out;
diff --git a/drivers/media/dvb-frontends/dvb_dummy_fe.c b/drivers/media/dvb-frontends/dvb_dummy_fe.c
index 9ff1ebaa5e04..9ed03df364d6 100644
--- a/drivers/media/dvb-frontends/dvb_dummy_fe.c
+++ b/drivers/media/dvb-frontends/dvb_dummy_fe.c
@@ -114,7 +114,7 @@ struct dvb_frontend *dvb_dummy_fe_ofdm_attach(void)
struct dvb_dummy_fe_state *state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct dvb_dummy_fe_state), GFP_KERNEL);
+ state = kzalloc_obj(struct dvb_dummy_fe_state, GFP_KERNEL);
if (!state)
return NULL;
@@ -135,7 +135,7 @@ struct dvb_frontend *dvb_dummy_fe_qpsk_attach(void)
struct dvb_dummy_fe_state *state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct dvb_dummy_fe_state), GFP_KERNEL);
+ state = kzalloc_obj(struct dvb_dummy_fe_state, GFP_KERNEL);
if (!state)
return NULL;
@@ -156,7 +156,7 @@ struct dvb_frontend *dvb_dummy_fe_qam_attach(void)
struct dvb_dummy_fe_state *state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct dvb_dummy_fe_state), GFP_KERNEL);
+ state = kzalloc_obj(struct dvb_dummy_fe_state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/media/dvb-frontends/ec100.c b/drivers/media/dvb-frontends/ec100.c
index 2ad0a3c2f756..be9ee1c90434 100644
--- a/drivers/media/dvb-frontends/ec100.c
+++ b/drivers/media/dvb-frontends/ec100.c
@@ -276,7 +276,7 @@ struct dvb_frontend *ec100_attach(const struct ec100_config *config,
u8 tmp;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct ec100_state), GFP_KERNEL);
+ state = kzalloc_obj(struct ec100_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/gp8psk-fe.c b/drivers/media/dvb-frontends/gp8psk-fe.c
index ed671e951a17..8893de2758f6 100644
--- a/drivers/media/dvb-frontends/gp8psk-fe.c
+++ b/drivers/media/dvb-frontends/gp8psk-fe.c
@@ -332,7 +332,7 @@ struct dvb_frontend *gp8psk_fe_attach(const struct gp8psk_fe_ops *ops,
return NULL;
}
- st = kzalloc(sizeof(struct gp8psk_fe_state), GFP_KERNEL);
+ st = kzalloc_obj(struct gp8psk_fe_state, GFP_KERNEL);
if (!st)
return NULL;
diff --git a/drivers/media/dvb-frontends/helene.c b/drivers/media/dvb-frontends/helene.c
index f127adee3ebb..0b68fa8b2664 100644
--- a/drivers/media/dvb-frontends/helene.c
+++ b/drivers/media/dvb-frontends/helene.c
@@ -997,7 +997,7 @@ struct dvb_frontend *helene_attach_s(struct dvb_frontend *fe,
{
struct helene_priv *priv = NULL;
- priv = kzalloc(sizeof(struct helene_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct helene_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
priv->i2c_address = (config->i2c_address >> 1);
@@ -1033,7 +1033,7 @@ struct dvb_frontend *helene_attach(struct dvb_frontend *fe,
{
struct helene_priv *priv = NULL;
- priv = kzalloc(sizeof(struct helene_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct helene_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
priv->i2c_address = (config->i2c_address >> 1);
diff --git a/drivers/media/dvb-frontends/horus3a.c b/drivers/media/dvb-frontends/horus3a.c
index 0330b78a5b3f..618301eb26aa 100644
--- a/drivers/media/dvb-frontends/horus3a.c
+++ b/drivers/media/dvb-frontends/horus3a.c
@@ -339,7 +339,7 @@ struct dvb_frontend *horus3a_attach(struct dvb_frontend *fe,
u8 buf[3], val;
struct horus3a_priv *priv = NULL;
- priv = kzalloc(sizeof(struct horus3a_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct horus3a_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
priv->i2c_address = (config->i2c_address >> 1);
diff --git a/drivers/media/dvb-frontends/isl6405.c b/drivers/media/dvb-frontends/isl6405.c
index 7d28a743f97e..96635db2eabc 100644
--- a/drivers/media/dvb-frontends/isl6405.c
+++ b/drivers/media/dvb-frontends/isl6405.c
@@ -106,7 +106,7 @@ static void isl6405_release(struct dvb_frontend *fe)
struct dvb_frontend *isl6405_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c,
u8 i2c_addr, u8 override_set, u8 override_clear)
{
- struct isl6405 *isl6405 = kmalloc(sizeof(struct isl6405), GFP_KERNEL);
+ struct isl6405 *isl6405 = kmalloc_obj(struct isl6405, GFP_KERNEL);
if (!isl6405)
return NULL;
diff --git a/drivers/media/dvb-frontends/isl6421.c b/drivers/media/dvb-frontends/isl6421.c
index 2e9f6f12f849..02d9e3b4e91d 100644
--- a/drivers/media/dvb-frontends/isl6421.c
+++ b/drivers/media/dvb-frontends/isl6421.c
@@ -177,7 +177,7 @@ static void isl6421_release(struct dvb_frontend *fe)
struct dvb_frontend *isl6421_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 i2c_addr,
u8 override_set, u8 override_clear, bool override_tone)
{
- struct isl6421 *isl6421 = kmalloc(sizeof(struct isl6421), GFP_KERNEL);
+ struct isl6421 *isl6421 = kmalloc_obj(struct isl6421, GFP_KERNEL);
if (!isl6421)
return NULL;
diff --git a/drivers/media/dvb-frontends/isl6423.c b/drivers/media/dvb-frontends/isl6423.c
index a0d0a3834057..6bffcc381fed 100644
--- a/drivers/media/dvb-frontends/isl6423.c
+++ b/drivers/media/dvb-frontends/isl6423.c
@@ -258,7 +258,7 @@ struct dvb_frontend *isl6423_attach(struct dvb_frontend *fe,
{
struct isl6423_dev *isl6423;
- isl6423 = kzalloc(sizeof(struct isl6423_dev), GFP_KERNEL);
+ isl6423 = kzalloc_obj(struct isl6423_dev, GFP_KERNEL);
if (!isl6423)
return NULL;
diff --git a/drivers/media/dvb-frontends/itd1000.c b/drivers/media/dvb-frontends/itd1000.c
index f8f362f50e78..6c1863efe227 100644
--- a/drivers/media/dvb-frontends/itd1000.c
+++ b/drivers/media/dvb-frontends/itd1000.c
@@ -365,7 +365,7 @@ struct dvb_frontend *itd1000_attach(struct dvb_frontend *fe, struct i2c_adapter
struct itd1000_state *state = NULL;
u8 i = 0;
- state = kzalloc(sizeof(struct itd1000_state), GFP_KERNEL);
+ state = kzalloc_obj(struct itd1000_state, GFP_KERNEL);
if (state == NULL)
return NULL;
diff --git a/drivers/media/dvb-frontends/ix2505v.c b/drivers/media/dvb-frontends/ix2505v.c
index 3212e333d472..db0875f65de8 100644
--- a/drivers/media/dvb-frontends/ix2505v.c
+++ b/drivers/media/dvb-frontends/ix2505v.c
@@ -267,7 +267,7 @@ struct dvb_frontend *ix2505v_attach(struct dvb_frontend *fe,
goto error;
}
- state = kzalloc(sizeof(struct ix2505v_state), GFP_KERNEL);
+ state = kzalloc_obj(struct ix2505v_state, GFP_KERNEL);
if (NULL == state)
return NULL;
diff --git a/drivers/media/dvb-frontends/l64781.c b/drivers/media/dvb-frontends/l64781.c
index fe5af2453d55..cfec598001db 100644
--- a/drivers/media/dvb-frontends/l64781.c
+++ b/drivers/media/dvb-frontends/l64781.c
@@ -497,7 +497,7 @@ struct dvb_frontend* l64781_attach(const struct l64781_config* config,
{ .addr = config->demod_address, .flags = I2C_M_RD, .buf = b1, .len = 1 } };
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct l64781_state), GFP_KERNEL);
+ state = kzalloc_obj(struct l64781_state, GFP_KERNEL);
if (state == NULL) goto error;
/* setup the state */
diff --git a/drivers/media/dvb-frontends/lg2160.c b/drivers/media/dvb-frontends/lg2160.c
index fe700aa56bff..5c9ebfec4524 100644
--- a/drivers/media/dvb-frontends/lg2160.c
+++ b/drivers/media/dvb-frontends/lg2160.c
@@ -1396,7 +1396,7 @@ struct dvb_frontend *lg2160_attach(const struct lg2160_config *config,
i2c_adap ? i2c_adapter_id(i2c_adap) : 0,
config ? config->i2c_addr : 0);
- state = kzalloc(sizeof(struct lg216x_state), GFP_KERNEL);
+ state = kzalloc_obj(struct lg216x_state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/media/dvb-frontends/lgdt3305.c b/drivers/media/dvb-frontends/lgdt3305.c
index bdc8311e1c0b..9fcac3361618 100644
--- a/drivers/media/dvb-frontends/lgdt3305.c
+++ b/drivers/media/dvb-frontends/lgdt3305.c
@@ -1103,7 +1103,7 @@ struct dvb_frontend *lgdt3305_attach(const struct lgdt3305_config *config,
i2c_adap ? i2c_adapter_id(i2c_adap) : 0,
config ? config->i2c_addr : 0);
- state = kzalloc(sizeof(struct lgdt3305_state), GFP_KERNEL);
+ state = kzalloc_obj(struct lgdt3305_state, GFP_KERNEL);
if (state == NULL)
goto fail;
diff --git a/drivers/media/dvb-frontends/lgdt3306a.c b/drivers/media/dvb-frontends/lgdt3306a.c
index 6ab9d4de65ce..a6d885d951a5 100644
--- a/drivers/media/dvb-frontends/lgdt3306a.c
+++ b/drivers/media/dvb-frontends/lgdt3306a.c
@@ -1802,7 +1802,7 @@ struct dvb_frontend *lgdt3306a_attach(const struct lgdt3306a_config *config,
i2c_adap ? i2c_adapter_id(i2c_adap) : 0,
config ? config->i2c_addr : 0);
- state = kzalloc(sizeof(struct lgdt3306a_state), GFP_KERNEL);
+ state = kzalloc_obj(struct lgdt3306a_state, GFP_KERNEL);
if (state == NULL)
goto fail;
diff --git a/drivers/media/dvb-frontends/lgdt330x.c b/drivers/media/dvb-frontends/lgdt330x.c
index 8c34a5b850bc..43e45c2317e0 100644
--- a/drivers/media/dvb-frontends/lgdt330x.c
+++ b/drivers/media/dvb-frontends/lgdt330x.c
@@ -863,7 +863,7 @@ static int lgdt330x_probe(struct i2c_client *client)
u8 buf[1];
/* Allocate memory for the internal state */
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
goto error;
diff --git a/drivers/media/dvb-frontends/lgs8gl5.c b/drivers/media/dvb-frontends/lgs8gl5.c
index 872abb70d1b6..07e422cb53da 100644
--- a/drivers/media/dvb-frontends/lgs8gl5.c
+++ b/drivers/media/dvb-frontends/lgs8gl5.c
@@ -375,7 +375,7 @@ lgs8gl5_attach(const struct lgs8gl5_config *config, struct i2c_adapter *i2c)
dprintk("%s\n", __func__);
/* Allocate memory for the internal state */
- state = kzalloc(sizeof(struct lgs8gl5_state), GFP_KERNEL);
+ state = kzalloc_obj(struct lgs8gl5_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/lgs8gxx.c b/drivers/media/dvb-frontends/lgs8gxx.c
index ffaf60e16ecd..8904f767e4ad 100644
--- a/drivers/media/dvb-frontends/lgs8gxx.c
+++ b/drivers/media/dvb-frontends/lgs8gxx.c
@@ -1012,7 +1012,7 @@ struct dvb_frontend *lgs8gxx_attach(const struct lgs8gxx_config *config,
if (config == NULL || i2c == NULL)
return NULL;
- priv = kzalloc(sizeof(struct lgs8gxx_state), GFP_KERNEL);
+ priv = kzalloc_obj(struct lgs8gxx_state, GFP_KERNEL);
if (priv == NULL)
goto error_out;
diff --git a/drivers/media/dvb-frontends/lnbh25.c b/drivers/media/dvb-frontends/lnbh25.c
index 41bec050642b..e4e4c43465cf 100644
--- a/drivers/media/dvb-frontends/lnbh25.c
+++ b/drivers/media/dvb-frontends/lnbh25.c
@@ -148,7 +148,7 @@ struct dvb_frontend *lnbh25_attach(struct dvb_frontend *fe,
struct lnbh25_priv *priv;
dev_dbg(&i2c->dev, "%s()\n", __func__);
- priv = kzalloc(sizeof(struct lnbh25_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct lnbh25_priv, GFP_KERNEL);
if (!priv)
return NULL;
priv->i2c_address = (cfg->i2c_address >> 1);
diff --git a/drivers/media/dvb-frontends/lnbh29.c b/drivers/media/dvb-frontends/lnbh29.c
index 410bae099c32..2bb9f8b9d325 100644
--- a/drivers/media/dvb-frontends/lnbh29.c
+++ b/drivers/media/dvb-frontends/lnbh29.c
@@ -135,7 +135,7 @@ struct dvb_frontend *lnbh29_attach(struct dvb_frontend *fe,
{
struct lnbh29_priv *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return NULL;
diff --git a/drivers/media/dvb-frontends/lnbp21.c b/drivers/media/dvb-frontends/lnbp21.c
index 32593b1f75a3..b68fa4424acd 100644
--- a/drivers/media/dvb-frontends/lnbp21.c
+++ b/drivers/media/dvb-frontends/lnbp21.c
@@ -113,7 +113,7 @@ static struct dvb_frontend *lnbx2x_attach(struct dvb_frontend *fe,
struct i2c_adapter *i2c, u8 override_set,
u8 override_clear, u8 i2c_addr, u8 config)
{
- struct lnbp21 *lnbp21 = kmalloc(sizeof(struct lnbp21), GFP_KERNEL);
+ struct lnbp21 *lnbp21 = kmalloc_obj(struct lnbp21, GFP_KERNEL);
if (!lnbp21)
return NULL;
diff --git a/drivers/media/dvb-frontends/lnbp22.c b/drivers/media/dvb-frontends/lnbp22.c
index cb4ea5d3fad4..98e54f74f306 100644
--- a/drivers/media/dvb-frontends/lnbp22.c
+++ b/drivers/media/dvb-frontends/lnbp22.c
@@ -96,7 +96,7 @@ static void lnbp22_release(struct dvb_frontend *fe)
struct dvb_frontend *lnbp22_attach(struct dvb_frontend *fe,
struct i2c_adapter *i2c)
{
- struct lnbp22 *lnbp22 = kmalloc(sizeof(struct lnbp22), GFP_KERNEL);
+ struct lnbp22 *lnbp22 = kmalloc_obj(struct lnbp22, GFP_KERNEL);
if (!lnbp22)
return NULL;
diff --git a/drivers/media/dvb-frontends/m88ds3103.c b/drivers/media/dvb-frontends/m88ds3103.c
index 5a03485686d9..e419551ca46e 100644
--- a/drivers/media/dvb-frontends/m88ds3103.c
+++ b/drivers/media/dvb-frontends/m88ds3103.c
@@ -1775,7 +1775,7 @@ static int m88ds3103_probe(struct i2c_client *client)
int ret;
unsigned int utmp;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/dvb-frontends/m88rs2000.c b/drivers/media/dvb-frontends/m88rs2000.c
index 2aa98203cd65..1804c31ebe0f 100644
--- a/drivers/media/dvb-frontends/m88rs2000.c
+++ b/drivers/media/dvb-frontends/m88rs2000.c
@@ -786,7 +786,7 @@ struct dvb_frontend *m88rs2000_attach(const struct m88rs2000_config *config,
struct m88rs2000_state *state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct m88rs2000_state), GFP_KERNEL);
+ state = kzalloc_obj(struct m88rs2000_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/mb86a16.c b/drivers/media/dvb-frontends/mb86a16.c
index 9033e39d75f4..0c9bd4a47be4 100644
--- a/drivers/media/dvb-frontends/mb86a16.c
+++ b/drivers/media/dvb-frontends/mb86a16.c
@@ -1833,7 +1833,7 @@ struct dvb_frontend *mb86a16_attach(const struct mb86a16_config *config,
u8 dev_id = 0;
struct mb86a16_state *state = NULL;
- state = kmalloc(sizeof(struct mb86a16_state), GFP_KERNEL);
+ state = kmalloc_obj(struct mb86a16_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/mb86a20s.c b/drivers/media/dvb-frontends/mb86a20s.c
index f8e4bbee5bd5..eb596d3b9da5 100644
--- a/drivers/media/dvb-frontends/mb86a20s.c
+++ b/drivers/media/dvb-frontends/mb86a20s.c
@@ -2052,7 +2052,7 @@ struct dvb_frontend *mb86a20s_attach(const struct mb86a20s_config *config,
dev_dbg(&i2c->dev, "%s called.\n", __func__);
/* allocate memory for the internal state */
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/media/dvb-frontends/mn88472.c b/drivers/media/dvb-frontends/mn88472.c
index 729751671c3d..ce3ae7d8d13f 100644
--- a/drivers/media/dvb-frontends/mn88472.c
+++ b/drivers/media/dvb-frontends/mn88472.c
@@ -586,7 +586,7 @@ static int mn88472_probe(struct i2c_client *client)
dev_dbg(&client->dev, "\n");
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/dvb-frontends/mn88473.c b/drivers/media/dvb-frontends/mn88473.c
index fefc640d8afb..371f9faa3038 100644
--- a/drivers/media/dvb-frontends/mn88473.c
+++ b/drivers/media/dvb-frontends/mn88473.c
@@ -626,7 +626,7 @@ static int mn88473_probe(struct i2c_client *client)
goto err;
}
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (dev == NULL) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/dvb-frontends/mt312.c b/drivers/media/dvb-frontends/mt312.c
index fb867dd8a26b..06d7153f57d8 100644
--- a/drivers/media/dvb-frontends/mt312.c
+++ b/drivers/media/dvb-frontends/mt312.c
@@ -780,7 +780,7 @@ struct dvb_frontend *mt312_attach(const struct mt312_config *config,
struct mt312_state *state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct mt312_state), GFP_KERNEL);
+ state = kzalloc_obj(struct mt312_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/mt352.c b/drivers/media/dvb-frontends/mt352.c
index 1b2889f5cf67..3f57ac209654 100644
--- a/drivers/media/dvb-frontends/mt352.c
+++ b/drivers/media/dvb-frontends/mt352.c
@@ -533,7 +533,7 @@ struct dvb_frontend* mt352_attach(const struct mt352_config* config,
struct mt352_state* state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct mt352_state), GFP_KERNEL);
+ state = kzalloc_obj(struct mt352_state, GFP_KERNEL);
if (state == NULL) goto error;
/* setup the state */
diff --git a/drivers/media/dvb-frontends/mxl5xx.c b/drivers/media/dvb-frontends/mxl5xx.c
index 930da176e5bf..43d953c898fd 100644
--- a/drivers/media/dvb-frontends/mxl5xx.c
+++ b/drivers/media/dvb-frontends/mxl5xx.c
@@ -1829,7 +1829,7 @@ struct dvb_frontend *mxl5xx_attach(struct i2c_adapter *i2c,
struct mxl *state;
struct mxl_base *base;
- state = kzalloc(sizeof(struct mxl), GFP_KERNEL);
+ state = kzalloc_obj(struct mxl, GFP_KERNEL);
if (!state)
return NULL;
@@ -1845,7 +1845,7 @@ struct dvb_frontend *mxl5xx_attach(struct i2c_adapter *i2c,
goto fail;
state->base = base;
} else {
- base = kzalloc(sizeof(struct mxl_base), GFP_KERNEL);
+ base = kzalloc_obj(struct mxl_base, GFP_KERNEL);
if (!base)
goto fail;
base->i2c = i2c;
diff --git a/drivers/media/dvb-frontends/mxl692.c b/drivers/media/dvb-frontends/mxl692.c
index bbc2bc778225..68455628b03d 100644
--- a/drivers/media/dvb-frontends/mxl692.c
+++ b/drivers/media/dvb-frontends/mxl692.c
@@ -1314,7 +1314,7 @@ static int mxl692_probe(struct i2c_client *client)
struct mxl692_dev *dev;
int ret = 0;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
dev_dbg(&client->dev, "kzalloc() failed\n");
diff --git a/drivers/media/dvb-frontends/nxt200x.c b/drivers/media/dvb-frontends/nxt200x.c
index 1c549ada6ebf..5b0762938c86 100644
--- a/drivers/media/dvb-frontends/nxt200x.c
+++ b/drivers/media/dvb-frontends/nxt200x.c
@@ -1128,7 +1128,7 @@ struct dvb_frontend* nxt200x_attach(const struct nxt200x_config* config,
u8 buf [] = {0,0,0,0,0};
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct nxt200x_state), GFP_KERNEL);
+ state = kzalloc_obj(struct nxt200x_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/nxt6000.c b/drivers/media/dvb-frontends/nxt6000.c
index e8d4940370dd..ed12ef9cd9df 100644
--- a/drivers/media/dvb-frontends/nxt6000.c
+++ b/drivers/media/dvb-frontends/nxt6000.c
@@ -560,7 +560,7 @@ struct dvb_frontend* nxt6000_attach(const struct nxt6000_config* config,
struct nxt6000_state* state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct nxt6000_state), GFP_KERNEL);
+ state = kzalloc_obj(struct nxt6000_state, GFP_KERNEL);
if (state == NULL) goto error;
/* setup the state */
diff --git a/drivers/media/dvb-frontends/or51132.c b/drivers/media/dvb-frontends/or51132.c
index 74e04c7cca1e..4b0063823736 100644
--- a/drivers/media/dvb-frontends/or51132.c
+++ b/drivers/media/dvb-frontends/or51132.c
@@ -552,7 +552,7 @@ struct dvb_frontend* or51132_attach(const struct or51132_config* config,
struct or51132_state* state = NULL;
/* Allocate memory for the internal state */
- state = kzalloc(sizeof(struct or51132_state), GFP_KERNEL);
+ state = kzalloc_obj(struct or51132_state, GFP_KERNEL);
if (state == NULL)
return NULL;
diff --git a/drivers/media/dvb-frontends/or51211.c b/drivers/media/dvb-frontends/or51211.c
index 2e8e7071a67a..2a52b1dc9d0a 100644
--- a/drivers/media/dvb-frontends/or51211.c
+++ b/drivers/media/dvb-frontends/or51211.c
@@ -501,7 +501,7 @@ struct dvb_frontend* or51211_attach(const struct or51211_config* config,
struct or51211_state* state = NULL;
/* Allocate memory for the internal state */
- state = kzalloc(sizeof(struct or51211_state), GFP_KERNEL);
+ state = kzalloc_obj(struct or51211_state, GFP_KERNEL);
if (state == NULL)
return NULL;
diff --git a/drivers/media/dvb-frontends/rtl2830.c b/drivers/media/dvb-frontends/rtl2830.c
index aa4ef9aedf17..ee6ba9b7c016 100644
--- a/drivers/media/dvb-frontends/rtl2830.c
+++ b/drivers/media/dvb-frontends/rtl2830.c
@@ -807,7 +807,7 @@ static int rtl2830_probe(struct i2c_client *client)
}
/* allocate memory for the internal state */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (dev == NULL) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/dvb-frontends/rtl2832.c b/drivers/media/dvb-frontends/rtl2832.c
index 3b4e46dac1bf..19ec892debb7 100644
--- a/drivers/media/dvb-frontends/rtl2832.c
+++ b/drivers/media/dvb-frontends/rtl2832.c
@@ -1043,7 +1043,7 @@ static int rtl2832_probe(struct i2c_client *client)
dev_dbg(&client->dev, "\n");
/* allocate memory for the internal state */
- dev = kzalloc(sizeof(struct rtl2832_dev), GFP_KERNEL);
+ dev = kzalloc_obj(struct rtl2832_dev, GFP_KERNEL);
if (dev == NULL) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/dvb-frontends/rtl2832_sdr.c b/drivers/media/dvb-frontends/rtl2832_sdr.c
index 0357624968f1..5a59bdde8f7b 100644
--- a/drivers/media/dvb-frontends/rtl2832_sdr.c
+++ b/drivers/media/dvb-frontends/rtl2832_sdr.c
@@ -1330,7 +1330,7 @@ static int rtl2832_sdr_probe(struct platform_device *pdev)
ret = -EINVAL;
goto err;
}
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (dev == NULL) {
ret = -ENOMEM;
goto err_module_put;
diff --git a/drivers/media/dvb-frontends/s5h1409.c b/drivers/media/dvb-frontends/s5h1409.c
index 28b1dca077ea..33f820e2d6d3 100644
--- a/drivers/media/dvb-frontends/s5h1409.c
+++ b/drivers/media/dvb-frontends/s5h1409.c
@@ -946,7 +946,7 @@ struct dvb_frontend *s5h1409_attach(const struct s5h1409_config *config,
u16 reg;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct s5h1409_state), GFP_KERNEL);
+ state = kzalloc_obj(struct s5h1409_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/s5h1411.c b/drivers/media/dvb-frontends/s5h1411.c
index fc48e659c2d8..c6379da7361e 100644
--- a/drivers/media/dvb-frontends/s5h1411.c
+++ b/drivers/media/dvb-frontends/s5h1411.c
@@ -861,7 +861,7 @@ struct dvb_frontend *s5h1411_attach(const struct s5h1411_config *config,
u16 reg;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct s5h1411_state), GFP_KERNEL);
+ state = kzalloc_obj(struct s5h1411_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/s5h1420.c b/drivers/media/dvb-frontends/s5h1420.c
index d700de1ea6c2..623900e732c1 100644
--- a/drivers/media/dvb-frontends/s5h1420.c
+++ b/drivers/media/dvb-frontends/s5h1420.c
@@ -872,7 +872,8 @@ struct dvb_frontend *s5h1420_attach(const struct s5h1420_config *config,
struct i2c_adapter *i2c)
{
/* allocate memory for the internal state */
- struct s5h1420_state *state = kzalloc(sizeof(struct s5h1420_state), GFP_KERNEL);
+ struct s5h1420_state *state = kzalloc_obj(struct s5h1420_state,
+ GFP_KERNEL);
u8 i;
if (state == NULL)
diff --git a/drivers/media/dvb-frontends/s5h1432.c b/drivers/media/dvb-frontends/s5h1432.c
index ff5d3bdf3bc6..6261df9f383c 100644
--- a/drivers/media/dvb-frontends/s5h1432.c
+++ b/drivers/media/dvb-frontends/s5h1432.c
@@ -337,7 +337,7 @@ struct dvb_frontend *s5h1432_attach(const struct s5h1432_config *config,
printk(KERN_INFO " Enter s5h1432_attach(). attach success!\n");
/* allocate memory for the internal state */
- state = kmalloc(sizeof(struct s5h1432_state), GFP_KERNEL);
+ state = kmalloc_obj(struct s5h1432_state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/media/dvb-frontends/s921.c b/drivers/media/dvb-frontends/s921.c
index 7e461ac159fc..6d38c9742f1d 100644
--- a/drivers/media/dvb-frontends/s921.c
+++ b/drivers/media/dvb-frontends/s921.c
@@ -476,7 +476,7 @@ struct dvb_frontend *s921_attach(const struct s921_config *config,
{
/* allocate memory for the internal state */
struct s921_state *state =
- kzalloc(sizeof(struct s921_state), GFP_KERNEL);
+ kzalloc_obj(struct s921_state, GFP_KERNEL);
dprintk("\n");
if (!state) {
diff --git a/drivers/media/dvb-frontends/si2165.c b/drivers/media/dvb-frontends/si2165.c
index f87c9357cee3..cb6802b81e41 100644
--- a/drivers/media/dvb-frontends/si2165.c
+++ b/drivers/media/dvb-frontends/si2165.c
@@ -1158,7 +1158,7 @@ static int si2165_probe(struct i2c_client *client)
};
/* allocate memory for the internal state */
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state) {
ret = -ENOMEM;
goto error;
diff --git a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c
index d6b6b8bc7d4e..f7a1d2fc3cfb 100644
--- a/drivers/media/dvb-frontends/si2168.c
+++ b/drivers/media/dvb-frontends/si2168.c
@@ -681,7 +681,7 @@ static int si2168_probe(struct i2c_client *client)
dev_dbg(&client->dev, "\n");
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/dvb-frontends/si21xx.c b/drivers/media/dvb-frontends/si21xx.c
index 210ccd356e2b..ac50df3c40fb 100644
--- a/drivers/media/dvb-frontends/si21xx.c
+++ b/drivers/media/dvb-frontends/si21xx.c
@@ -902,7 +902,7 @@ struct dvb_frontend *si21xx_attach(const struct si21xx_config *config,
dprintk("%s\n", __func__);
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct si21xx_state), GFP_KERNEL);
+ state = kzalloc_obj(struct si21xx_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/sp2.c b/drivers/media/dvb-frontends/sp2.c
index 75adf2a4589f..50103c4a36f9 100644
--- a/drivers/media/dvb-frontends/sp2.c
+++ b/drivers/media/dvb-frontends/sp2.c
@@ -371,7 +371,7 @@ static int sp2_probe(struct i2c_client *client)
dev_dbg(&client->dev, "\n");
- s = kzalloc(sizeof(*s), GFP_KERNEL);
+ s = kzalloc_obj(*s, GFP_KERNEL);
if (!s) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/dvb-frontends/sp887x.c b/drivers/media/dvb-frontends/sp887x.c
index f59c0f96416b..235ecfd45376 100644
--- a/drivers/media/dvb-frontends/sp887x.c
+++ b/drivers/media/dvb-frontends/sp887x.c
@@ -568,7 +568,7 @@ struct dvb_frontend* sp887x_attach(const struct sp887x_config* config,
struct sp887x_state* state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct sp887x_state), GFP_KERNEL);
+ state = kzalloc_obj(struct sp887x_state, GFP_KERNEL);
if (state == NULL) goto error;
/* setup the state */
diff --git a/drivers/media/dvb-frontends/stb0899_drv.c b/drivers/media/dvb-frontends/stb0899_drv.c
index 35634f9a8ab5..19a31a296e0f 100644
--- a/drivers/media/dvb-frontends/stb0899_drv.c
+++ b/drivers/media/dvb-frontends/stb0899_drv.c
@@ -1613,7 +1613,7 @@ struct dvb_frontend *stb0899_attach(struct stb0899_config *config, struct i2c_ad
{
struct stb0899_state *state = NULL;
- state = kzalloc(sizeof (struct stb0899_state), GFP_KERNEL);
+ state = kzalloc_obj(struct stb0899_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/stb6000.c b/drivers/media/dvb-frontends/stb6000.c
index d74e34677b92..85900e616490 100644
--- a/drivers/media/dvb-frontends/stb6000.c
+++ b/drivers/media/dvb-frontends/stb6000.c
@@ -218,7 +218,7 @@ struct dvb_frontend *stb6000_attach(struct dvb_frontend *fe, int addr,
if (ret != 2)
return NULL;
- priv = kzalloc(sizeof(struct stb6000_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct stb6000_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
diff --git a/drivers/media/dvb-frontends/stb6100.c b/drivers/media/dvb-frontends/stb6100.c
index c5818a15a0d7..97238cf98067 100644
--- a/drivers/media/dvb-frontends/stb6100.c
+++ b/drivers/media/dvb-frontends/stb6100.c
@@ -534,7 +534,7 @@ struct dvb_frontend *stb6100_attach(struct dvb_frontend *fe,
{
struct stb6100_state *state = NULL;
- state = kzalloc(sizeof (struct stb6100_state), GFP_KERNEL);
+ state = kzalloc_obj(struct stb6100_state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/media/dvb-frontends/stv0288.c b/drivers/media/dvb-frontends/stv0288.c
index a5581bd60f9e..40648b74edd4 100644
--- a/drivers/media/dvb-frontends/stv0288.c
+++ b/drivers/media/dvb-frontends/stv0288.c
@@ -557,7 +557,7 @@ struct dvb_frontend *stv0288_attach(const struct stv0288_config *config,
int id;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct stv0288_state), GFP_KERNEL);
+ state = kzalloc_obj(struct stv0288_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/stv0297.c b/drivers/media/dvb-frontends/stv0297.c
index 9d4dbd99a5a7..c0634e2436b3 100644
--- a/drivers/media/dvb-frontends/stv0297.c
+++ b/drivers/media/dvb-frontends/stv0297.c
@@ -654,7 +654,7 @@ struct dvb_frontend *stv0297_attach(const struct stv0297_config *config,
struct stv0297_state *state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct stv0297_state), GFP_KERNEL);
+ state = kzalloc_obj(struct stv0297_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/stv0299.c b/drivers/media/dvb-frontends/stv0299.c
index ba4bb3685095..cc15bb93b7dc 100644
--- a/drivers/media/dvb-frontends/stv0299.c
+++ b/drivers/media/dvb-frontends/stv0299.c
@@ -671,7 +671,7 @@ struct dvb_frontend* stv0299_attach(const struct stv0299_config* config,
int id;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct stv0299_state), GFP_KERNEL);
+ state = kzalloc_obj(struct stv0299_state, GFP_KERNEL);
if (state == NULL) goto error;
/* setup the state */
diff --git a/drivers/media/dvb-frontends/stv0367.c b/drivers/media/dvb-frontends/stv0367.c
index 72540ef4e5f8..cf6b1b646b10 100644
--- a/drivers/media/dvb-frontends/stv0367.c
+++ b/drivers/media/dvb-frontends/stv0367.c
@@ -1698,10 +1698,10 @@ struct dvb_frontend *stv0367ter_attach(const struct stv0367_config *config,
struct stv0367ter_state *ter_state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct stv0367_state), GFP_KERNEL);
+ state = kzalloc_obj(struct stv0367_state, GFP_KERNEL);
if (state == NULL)
goto error;
- ter_state = kzalloc(sizeof(struct stv0367ter_state), GFP_KERNEL);
+ ter_state = kzalloc_obj(struct stv0367ter_state, GFP_KERNEL);
if (ter_state == NULL)
goto error;
@@ -2865,10 +2865,10 @@ struct dvb_frontend *stv0367cab_attach(const struct stv0367_config *config,
struct stv0367cab_state *cab_state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct stv0367_state), GFP_KERNEL);
+ state = kzalloc_obj(struct stv0367_state, GFP_KERNEL);
if (state == NULL)
goto error;
- cab_state = kzalloc(sizeof(struct stv0367cab_state), GFP_KERNEL);
+ cab_state = kzalloc_obj(struct stv0367cab_state, GFP_KERNEL);
if (cab_state == NULL)
goto error;
@@ -3274,13 +3274,13 @@ struct dvb_frontend *stv0367ddb_attach(const struct stv0367_config *config,
struct stv0367cab_state *cab_state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct stv0367_state), GFP_KERNEL);
+ state = kzalloc_obj(struct stv0367_state, GFP_KERNEL);
if (state == NULL)
goto error;
- ter_state = kzalloc(sizeof(struct stv0367ter_state), GFP_KERNEL);
+ ter_state = kzalloc_obj(struct stv0367ter_state, GFP_KERNEL);
if (ter_state == NULL)
goto error;
- cab_state = kzalloc(sizeof(struct stv0367cab_state), GFP_KERNEL);
+ cab_state = kzalloc_obj(struct stv0367cab_state, GFP_KERNEL);
if (cab_state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/stv0900_core.c b/drivers/media/dvb-frontends/stv0900_core.c
index e7b9b9b11d7d..3f1edc8559c5 100644
--- a/drivers/media/dvb-frontends/stv0900_core.c
+++ b/drivers/media/dvb-frontends/stv0900_core.c
@@ -85,14 +85,14 @@ static struct stv0900_inode *append_internal(struct stv0900_internal *internal)
struct stv0900_inode *new_node = stv0900_first_inode;
if (new_node == NULL) {
- new_node = kmalloc(sizeof(struct stv0900_inode), GFP_KERNEL);
+ new_node = kmalloc_obj(struct stv0900_inode, GFP_KERNEL);
stv0900_first_inode = new_node;
} else {
while (new_node->next_inode != NULL)
new_node = new_node->next_inode;
- new_node->next_inode = kmalloc(sizeof(struct stv0900_inode),
- GFP_KERNEL);
+ new_node->next_inode = kmalloc_obj(struct stv0900_inode,
+ GFP_KERNEL);
if (new_node->next_inode != NULL)
new_node = new_node->next_inode;
else
@@ -1348,8 +1348,8 @@ static enum fe_stv0900_error stv0900_init_internal(struct dvb_frontend *fe,
dprintk("%s: Find Internal Structure!\n", __func__);
return STV0900_NO_ERROR;
} else {
- state->internal = kmalloc(sizeof(struct stv0900_internal),
- GFP_KERNEL);
+ state->internal = kmalloc_obj(struct stv0900_internal,
+ GFP_KERNEL);
if (state->internal == NULL)
return STV0900_INVALID_HANDLE;
temp_int = append_internal(state->internal);
@@ -1903,7 +1903,7 @@ struct dvb_frontend *stv0900_attach(const struct stv0900_config *config,
struct stv0900_init_params init_params;
enum fe_stv0900_error err_stv0900;
- state = kzalloc(sizeof(struct stv0900_state), GFP_KERNEL);
+ state = kzalloc_obj(struct stv0900_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/stv090x.c b/drivers/media/dvb-frontends/stv090x.c
index f273efa330cf..16ff5c8cf417 100644
--- a/drivers/media/dvb-frontends/stv090x.c
+++ b/drivers/media/dvb-frontends/stv090x.c
@@ -85,7 +85,7 @@ static struct stv090x_dev *append_internal(struct stv090x_internal *internal)
struct stv090x_dev *new_dev;
struct stv090x_dev *temp_dev;
- new_dev = kmalloc(sizeof(struct stv090x_dev), GFP_KERNEL);
+ new_dev = kmalloc_obj(struct stv090x_dev, GFP_KERNEL);
if (new_dev != NULL) {
new_dev->internal = internal;
new_dev->next_dev = NULL;
@@ -4906,7 +4906,7 @@ static int stv090x_setup_compound(struct stv090x_state *state)
state->internal->num_used++;
dprintk(FE_INFO, 1, "Found Internal Structure!");
} else {
- state->internal = kmalloc(sizeof(*state->internal), GFP_KERNEL);
+ state->internal = kmalloc_obj(*state->internal, GFP_KERNEL);
if (!state->internal)
goto error;
temp_int = append_internal(state->internal);
@@ -5002,7 +5002,7 @@ static int stv090x_probe(struct i2c_client *client)
struct stv090x_state *state = NULL;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state) {
ret = -ENOMEM;
goto error;
@@ -5050,7 +5050,7 @@ struct dvb_frontend *stv090x_attach(struct stv090x_config *config,
int ret = 0;
struct stv090x_state *state = NULL;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
goto error;
diff --git a/drivers/media/dvb-frontends/stv0910.c b/drivers/media/dvb-frontends/stv0910.c
index 069dec75129c..666562f7ca17 100644
--- a/drivers/media/dvb-frontends/stv0910.c
+++ b/drivers/media/dvb-frontends/stv0910.c
@@ -1766,7 +1766,7 @@ struct dvb_frontend *stv0910_attach(struct i2c_adapter *i2c,
struct stv *state;
struct stv_base *base;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
@@ -1788,7 +1788,7 @@ struct dvb_frontend *stv0910_attach(struct i2c_adapter *i2c,
base->count++;
state->base = base;
} else {
- base = kzalloc(sizeof(*base), GFP_KERNEL);
+ base = kzalloc_obj(*base, GFP_KERNEL);
if (!base)
goto fail;
base->i2c = i2c;
diff --git a/drivers/media/dvb-frontends/stv6110.c b/drivers/media/dvb-frontends/stv6110.c
index 1cf9c095dbff..beb1c832a13d 100644
--- a/drivers/media/dvb-frontends/stv6110.c
+++ b/drivers/media/dvb-frontends/stv6110.c
@@ -408,7 +408,7 @@ struct dvb_frontend *stv6110_attach(struct dvb_frontend *fe,
if (ret != 1)
return NULL;
- priv = kzalloc(sizeof(struct stv6110_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct stv6110_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
diff --git a/drivers/media/dvb-frontends/stv6110x.c b/drivers/media/dvb-frontends/stv6110x.c
index 33c8105da1c3..4122f7655b0a 100644
--- a/drivers/media/dvb-frontends/stv6110x.c
+++ b/drivers/media/dvb-frontends/stv6110x.c
@@ -412,7 +412,7 @@ static int stv6110x_probe(struct i2c_client *client)
struct stv6110x_state *stv6110x;
- stv6110x = kzalloc(sizeof(*stv6110x), GFP_KERNEL);
+ stv6110x = kzalloc_obj(*stv6110x, GFP_KERNEL);
if (!stv6110x)
return -ENOMEM;
@@ -448,7 +448,7 @@ const struct stv6110x_devctl *stv6110x_attach(struct dvb_frontend *fe,
{
struct stv6110x_state *stv6110x;
- stv6110x = kzalloc(sizeof(*stv6110x), GFP_KERNEL);
+ stv6110x = kzalloc_obj(*stv6110x, GFP_KERNEL);
if (!stv6110x)
return NULL;
diff --git a/drivers/media/dvb-frontends/stv6111.c b/drivers/media/dvb-frontends/stv6111.c
index 0ac15273922d..d367ee7f3cbe 100644
--- a/drivers/media/dvb-frontends/stv6111.c
+++ b/drivers/media/dvb-frontends/stv6111.c
@@ -653,7 +653,7 @@ struct dvb_frontend *stv6111_attach(struct dvb_frontend *fe,
int stat = -ENODEV;
int gatestat = 0;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
state->adr = adr;
diff --git a/drivers/media/dvb-frontends/tc90522.c b/drivers/media/dvb-frontends/tc90522.c
index 1f8cbf45554a..3ac0b7a0844f 100644
--- a/drivers/media/dvb-frontends/tc90522.c
+++ b/drivers/media/dvb-frontends/tc90522.c
@@ -647,7 +647,7 @@ tc90522_master_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
for (i = 0; i < num; i++)
if (msgs[i].flags & I2C_M_RD)
rd_num++;
- new_msgs = kmalloc_array(num + rd_num, sizeof(*new_msgs), GFP_KERNEL);
+ new_msgs = kmalloc_objs(*new_msgs, num + rd_num, GFP_KERNEL);
if (!new_msgs)
return -ENOMEM;
@@ -788,7 +788,7 @@ static int tc90522_probe(struct i2c_client *client)
struct i2c_adapter *adap;
int ret;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return -ENOMEM;
state->i2c_client = client;
diff --git a/drivers/media/dvb-frontends/tda10021.c b/drivers/media/dvb-frontends/tda10021.c
index 462e12ab6bd1..9a950ee9562e 100644
--- a/drivers/media/dvb-frontends/tda10021.c
+++ b/drivers/media/dvb-frontends/tda10021.c
@@ -451,7 +451,7 @@ struct dvb_frontend* tda10021_attach(const struct tda1002x_config* config,
u8 id;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct tda10021_state), GFP_KERNEL);
+ state = kzalloc_obj(struct tda10021_state, GFP_KERNEL);
if (state == NULL) goto error;
/* setup the state */
diff --git a/drivers/media/dvb-frontends/tda10023.c b/drivers/media/dvb-frontends/tda10023.c
index 4c2541ecd743..c8b1cc0f7abb 100644
--- a/drivers/media/dvb-frontends/tda10023.c
+++ b/drivers/media/dvb-frontends/tda10023.c
@@ -511,7 +511,7 @@ struct dvb_frontend *tda10023_attach(const struct tda10023_config *config,
struct tda10023_state* state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct tda10023_state), GFP_KERNEL);
+ state = kzalloc_obj(struct tda10023_state, GFP_KERNEL);
if (state == NULL) goto error;
/* setup the state */
diff --git a/drivers/media/dvb-frontends/tda10048.c b/drivers/media/dvb-frontends/tda10048.c
index 1f87eb0dcf2a..fe9685cbf7a5 100644
--- a/drivers/media/dvb-frontends/tda10048.c
+++ b/drivers/media/dvb-frontends/tda10048.c
@@ -1097,7 +1097,7 @@ struct dvb_frontend *tda10048_attach(const struct tda10048_config *config,
dprintk(1, "%s()\n", __func__);
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct tda10048_state), GFP_KERNEL);
+ state = kzalloc_obj(struct tda10048_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/tda1004x.c b/drivers/media/dvb-frontends/tda1004x.c
index 6f306db6c615..0a1bf80211d3 100644
--- a/drivers/media/dvb-frontends/tda1004x.c
+++ b/drivers/media/dvb-frontends/tda1004x.c
@@ -1271,7 +1271,7 @@ struct dvb_frontend* tda10045_attach(const struct tda1004x_config* config,
int id;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct tda1004x_state), GFP_KERNEL);
+ state = kzalloc_obj(struct tda1004x_state, GFP_KERNEL);
if (!state) {
printk(KERN_ERR "Can't allocate memory for tda10045 state\n");
return NULL;
@@ -1341,7 +1341,7 @@ struct dvb_frontend* tda10046_attach(const struct tda1004x_config* config,
int id;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct tda1004x_state), GFP_KERNEL);
+ state = kzalloc_obj(struct tda1004x_state, GFP_KERNEL);
if (!state) {
printk(KERN_ERR "Can't allocate memory for tda10046 state\n");
return NULL;
diff --git a/drivers/media/dvb-frontends/tda10071.c b/drivers/media/dvb-frontends/tda10071.c
index e23794b821cd..430702da6e79 100644
--- a/drivers/media/dvb-frontends/tda10071.c
+++ b/drivers/media/dvb-frontends/tda10071.c
@@ -1156,7 +1156,7 @@ static int tda10071_probe(struct i2c_client *client)
.val_bits = 8,
};
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/dvb-frontends/tda10086.c b/drivers/media/dvb-frontends/tda10086.c
index b449514ae585..5e63ded2cfbf 100644
--- a/drivers/media/dvb-frontends/tda10086.c
+++ b/drivers/media/dvb-frontends/tda10086.c
@@ -737,7 +737,7 @@ struct dvb_frontend* tda10086_attach(const struct tda10086_config* config,
dprintk ("%s\n", __func__);
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct tda10086_state), GFP_KERNEL);
+ state = kzalloc_obj(struct tda10086_state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/media/dvb-frontends/tda18271c2dd.c b/drivers/media/dvb-frontends/tda18271c2dd.c
index c11563853c07..f10d74ff192c 100644
--- a/drivers/media/dvb-frontends/tda18271c2dd.c
+++ b/drivers/media/dvb-frontends/tda18271c2dd.c
@@ -1215,7 +1215,7 @@ struct dvb_frontend *tda18271c2dd_attach(struct dvb_frontend *fe,
{
struct tda_state *state;
- state = kzalloc(sizeof(struct tda_state), GFP_KERNEL);
+ state = kzalloc_obj(struct tda_state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/media/dvb-frontends/tda665x.c b/drivers/media/dvb-frontends/tda665x.c
index 346be5011fb7..f9dcbb69e949 100644
--- a/drivers/media/dvb-frontends/tda665x.c
+++ b/drivers/media/dvb-frontends/tda665x.c
@@ -207,7 +207,7 @@ struct dvb_frontend *tda665x_attach(struct dvb_frontend *fe,
struct tda665x_state *state = NULL;
struct dvb_tuner_info *info;
- state = kzalloc(sizeof(struct tda665x_state), GFP_KERNEL);
+ state = kzalloc_obj(struct tda665x_state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/media/dvb-frontends/tda8083.c b/drivers/media/dvb-frontends/tda8083.c
index 44f53624557b..c9f280cdd7db 100644
--- a/drivers/media/dvb-frontends/tda8083.c
+++ b/drivers/media/dvb-frontends/tda8083.c
@@ -417,7 +417,7 @@ struct dvb_frontend* tda8083_attach(const struct tda8083_config* config,
struct tda8083_state* state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct tda8083_state), GFP_KERNEL);
+ state = kzalloc_obj(struct tda8083_state, GFP_KERNEL);
if (state == NULL) goto error;
/* setup the state */
diff --git a/drivers/media/dvb-frontends/tda8261.c b/drivers/media/dvb-frontends/tda8261.c
index 8b06f92745dc..73c90442f403 100644
--- a/drivers/media/dvb-frontends/tda8261.c
+++ b/drivers/media/dvb-frontends/tda8261.c
@@ -168,7 +168,7 @@ struct dvb_frontend *tda8261_attach(struct dvb_frontend *fe,
{
struct tda8261_state *state = NULL;
- if ((state = kzalloc(sizeof (struct tda8261_state), GFP_KERNEL)) == NULL)
+ if ((state = kzalloc_obj(struct tda8261_state, GFP_KERNEL)) == NULL)
goto exit;
state->config = config;
diff --git a/drivers/media/dvb-frontends/tda826x.c b/drivers/media/dvb-frontends/tda826x.c
index eafcf5f7da3d..b51da4053ef5 100644
--- a/drivers/media/dvb-frontends/tda826x.c
+++ b/drivers/media/dvb-frontends/tda826x.c
@@ -150,7 +150,7 @@ struct dvb_frontend *tda826x_attach(struct dvb_frontend *fe, int addr, struct i2
if (!(b1[1] & 0x80))
return NULL;
- priv = kzalloc(sizeof(struct tda826x_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct tda826x_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
diff --git a/drivers/media/dvb-frontends/ts2020.c b/drivers/media/dvb-frontends/ts2020.c
index e25add6cc38e..2368214781a6 100644
--- a/drivers/media/dvb-frontends/ts2020.c
+++ b/drivers/media/dvb-frontends/ts2020.c
@@ -566,7 +566,7 @@ static int ts2020_probe(struct i2c_client *client)
}
fe = pdata->fe;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/dvb-frontends/tua6100.c b/drivers/media/dvb-frontends/tua6100.c
index 41dd9b6d3190..2d052bfb8a23 100644
--- a/drivers/media/dvb-frontends/tua6100.c
+++ b/drivers/media/dvb-frontends/tua6100.c
@@ -175,7 +175,7 @@ struct dvb_frontend *tua6100_attach(struct dvb_frontend *fe, int addr, struct i2
if (ret != 2)
return NULL;
- priv = kzalloc(sizeof(struct tua6100_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct tua6100_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
diff --git a/drivers/media/dvb-frontends/ves1820.c b/drivers/media/dvb-frontends/ves1820.c
index ee5620e731e9..56bbd52d1783 100644
--- a/drivers/media/dvb-frontends/ves1820.c
+++ b/drivers/media/dvb-frontends/ves1820.c
@@ -366,7 +366,7 @@ struct dvb_frontend* ves1820_attach(const struct ves1820_config* config,
struct ves1820_state* state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct ves1820_state), GFP_KERNEL);
+ state = kzalloc_obj(struct ves1820_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/ves1x93.c b/drivers/media/dvb-frontends/ves1x93.c
index c60e21d26b88..5c8abcebbd88 100644
--- a/drivers/media/dvb-frontends/ves1x93.c
+++ b/drivers/media/dvb-frontends/ves1x93.c
@@ -450,7 +450,7 @@ struct dvb_frontend* ves1x93_attach(const struct ves1x93_config* config,
u8 identity;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct ves1x93_state), GFP_KERNEL);
+ state = kzalloc_obj(struct ves1x93_state, GFP_KERNEL);
if (state == NULL) goto error;
/* setup the state */
diff --git a/drivers/media/dvb-frontends/zd1301_demod.c b/drivers/media/dvb-frontends/zd1301_demod.c
index e8b9e67a8717..0c244fd17623 100644
--- a/drivers/media/dvb-frontends/zd1301_demod.c
+++ b/drivers/media/dvb-frontends/zd1301_demod.c
@@ -470,7 +470,7 @@ static int zd1301_demod_probe(struct platform_device *pdev)
goto err;
}
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/dvb-frontends/zl10036.c b/drivers/media/dvb-frontends/zl10036.c
index 5ad987c6861b..3d05828e499a 100644
--- a/drivers/media/dvb-frontends/zl10036.c
+++ b/drivers/media/dvb-frontends/zl10036.c
@@ -457,7 +457,7 @@ struct dvb_frontend *zl10036_attach(struct dvb_frontend *fe,
return NULL;
}
- state = kzalloc(sizeof(struct zl10036_state), GFP_KERNEL);
+ state = kzalloc_obj(struct zl10036_state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/media/dvb-frontends/zl10039.c b/drivers/media/dvb-frontends/zl10039.c
index a3e4d219400c..54e1e4267c1d 100644
--- a/drivers/media/dvb-frontends/zl10039.c
+++ b/drivers/media/dvb-frontends/zl10039.c
@@ -254,7 +254,7 @@ struct dvb_frontend *zl10039_attach(struct dvb_frontend *fe,
struct zl10039_state *state = NULL;
dprintk("%s\n", __func__);
- state = kmalloc(sizeof(struct zl10039_state), GFP_KERNEL);
+ state = kmalloc_obj(struct zl10039_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/dvb-frontends/zl10353.c b/drivers/media/dvb-frontends/zl10353.c
index 8849d05475c2..a9f23b142301 100644
--- a/drivers/media/dvb-frontends/zl10353.c
+++ b/drivers/media/dvb-frontends/zl10353.c
@@ -598,7 +598,7 @@ struct dvb_frontend *zl10353_attach(const struct zl10353_config *config,
int id;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct zl10353_state), GFP_KERNEL);
+ state = kzalloc_obj(struct zl10353_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/firewire/firedtv-fw.c b/drivers/media/firewire/firedtv-fw.c
index 5f6e97a8d1c0..5ee96f290fef 100644
--- a/drivers/media/firewire/firedtv-fw.c
+++ b/drivers/media/firewire/firedtv-fw.c
@@ -135,7 +135,7 @@ int fdtv_start_iso(struct firedtv *fdtv)
struct fw_device *device = device_of(fdtv);
int i, err;
- ctx = kmalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kmalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -255,7 +255,7 @@ static int node_probe(struct fw_unit *unit, const struct ieee1394_device_id *id)
char name[MAX_MODEL_NAME_LEN];
int name_len, i, err;
- fdtv = kzalloc(sizeof(*fdtv), GFP_KERNEL);
+ fdtv = kzalloc_obj(*fdtv, GFP_KERNEL);
if (!fdtv)
return -ENOMEM;
diff --git a/drivers/media/i2c/alvium-csi2.c b/drivers/media/i2c/alvium-csi2.c
index 1f088acecf36..c063da7d568d 100644
--- a/drivers/media/i2c/alvium-csi2.c
+++ b/drivers/media/i2c/alvium-csi2.c
@@ -1094,7 +1094,7 @@ static int alvium_setup_mipi_fmt(struct alvium_dev *alvium)
/* init alvium_csi2_fmt array */
alvium->alvium_csi2_fmt_n = sz;
alvium->alvium_csi2_fmt =
- kmalloc_array(sz, sizeof(struct alvium_pixfmt), GFP_KERNEL);
+ kmalloc_objs(struct alvium_pixfmt, sz, GFP_KERNEL);
if (!alvium->alvium_csi2_fmt)
return -ENOMEM;
diff --git a/drivers/media/i2c/cs3308.c b/drivers/media/i2c/cs3308.c
index 078e0066ce4b..cc4bd7fd7cdb 100644
--- a/drivers/media/i2c/cs3308.c
+++ b/drivers/media/i2c/cs3308.c
@@ -79,7 +79,7 @@ static int cs3308_probe(struct i2c_client *client)
v4l_info(client, "chip found @ 0x%x (%s)\n",
client->addr << 1, client->adapter->name);
- sd = kzalloc(sizeof(struct v4l2_subdev), GFP_KERNEL);
+ sd = kzalloc_obj(struct v4l2_subdev, GFP_KERNEL);
if (sd == NULL)
return -ENOMEM;
diff --git a/drivers/media/i2c/ds90ub960.c b/drivers/media/i2c/ds90ub960.c
index 3156f6d6c6de..98f45dcad667 100644
--- a/drivers/media/i2c/ds90ub960.c
+++ b/drivers/media/i2c/ds90ub960.c
@@ -1379,7 +1379,7 @@ static int ub960_parse_dt_txport(struct ub960_data *priv,
struct ub960_txport *txport;
int ret;
- txport = kzalloc(sizeof(*txport), GFP_KERNEL);
+ txport = kzalloc_obj(*txport, GFP_KERNEL);
if (!txport)
return -ENOMEM;
@@ -4573,7 +4573,7 @@ static int ub960_parse_dt_rxport(struct ub960_data *priv, unsigned int nport,
struct ub960_rxport *rxport;
int ret;
- rxport = kzalloc(sizeof(*rxport), GFP_KERNEL);
+ rxport = kzalloc_obj(*rxport, GFP_KERNEL);
if (!rxport)
return -ENOMEM;
diff --git a/drivers/media/i2c/tda1997x.c b/drivers/media/i2c/tda1997x.c
index 3532766cd795..bf4f7b44d42e 100644
--- a/drivers/media/i2c/tda1997x.c
+++ b/drivers/media/i2c/tda1997x.c
@@ -2538,7 +2538,7 @@ static int tda1997x_probe(struct i2c_client *client)
if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
return -EIO;
- state = kzalloc(sizeof(struct tda1997x_state), GFP_KERNEL);
+ state = kzalloc_obj(struct tda1997x_state, GFP_KERNEL);
if (!state)
return -ENOMEM;
diff --git a/drivers/media/i2c/video-i2c.c b/drivers/media/i2c/video-i2c.c
index 1eee2d4f5b40..eebca7a0fb9b 100644
--- a/drivers/media/i2c/video-i2c.c
+++ b/drivers/media/i2c/video-i2c.c
@@ -750,7 +750,7 @@ static int video_i2c_probe(struct i2c_client *client)
struct vb2_queue *queue;
int ret = -ENODEV;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/media/mc/mc-dev-allocator.c b/drivers/media/mc/mc-dev-allocator.c
index ae17887dec59..b8a170aaee04 100644
--- a/drivers/media/mc/mc-dev-allocator.c
+++ b/drivers/media/mc/mc-dev-allocator.c
@@ -81,7 +81,7 @@ static struct media_device *__media_device_get(struct device *dev,
return &mdi->mdev;
}
- mdi = kzalloc(sizeof(*mdi), GFP_KERNEL);
+ mdi = kzalloc_obj(*mdi, GFP_KERNEL);
if (!mdi)
return NULL;
diff --git a/drivers/media/mc/mc-device.c b/drivers/media/mc/mc-device.c
index 5a4465b290f0..a27afa530592 100644
--- a/drivers/media/mc/mc-device.c
+++ b/drivers/media/mc/mc-device.c
@@ -737,7 +737,7 @@ int __must_check __media_device_register(struct media_device *mdev,
struct media_devnode *devnode;
int ret;
- devnode = kzalloc(sizeof(*devnode), GFP_KERNEL);
+ devnode = kzalloc_obj(*devnode, GFP_KERNEL);
if (!devnode)
return -ENOMEM;
diff --git a/drivers/media/mc/mc-entity.c b/drivers/media/mc/mc-entity.c
index 9519a537bfa2..a078488874b2 100644
--- a/drivers/media/mc/mc-entity.c
+++ b/drivers/media/mc/mc-entity.c
@@ -587,7 +587,7 @@ static int media_pipeline_add_pad(struct media_pipeline *pipe,
}
}
- ppad = kzalloc(sizeof(*ppad), GFP_KERNEL);
+ ppad = kzalloc_obj(*ppad, GFP_KERNEL);
if (!ppad)
return -ENOMEM;
@@ -977,7 +977,7 @@ __must_check int media_pipeline_alloc_start(struct media_pad *pad)
*/
pipe = media_pad_pipeline(pad);
if (!pipe) {
- new_pipe = kzalloc(sizeof(*new_pipe), GFP_KERNEL);
+ new_pipe = kzalloc_obj(*new_pipe, GFP_KERNEL);
if (!new_pipe) {
ret = -ENOMEM;
goto out;
@@ -1061,7 +1061,7 @@ static struct media_link *media_add_link(struct list_head *head)
{
struct media_link *link;
- link = kzalloc(sizeof(*link), GFP_KERNEL);
+ link = kzalloc_obj(*link, GFP_KERNEL);
if (link == NULL)
return NULL;
@@ -1547,7 +1547,7 @@ struct media_intf_devnode *media_devnode_create(struct media_device *mdev,
{
struct media_intf_devnode *devnode;
- devnode = kzalloc(sizeof(*devnode), GFP_KERNEL);
+ devnode = kzalloc_obj(*devnode, GFP_KERNEL);
if (!devnode)
return NULL;
diff --git a/drivers/media/mc/mc-request.c b/drivers/media/mc/mc-request.c
index 8ad10c72f9db..6668f44359ce 100644
--- a/drivers/media/mc/mc-request.c
+++ b/drivers/media/mc/mc-request.c
@@ -293,7 +293,7 @@ int media_request_alloc(struct media_device *mdev, int *alloc_fd)
if (mdev->ops->req_alloc)
req = mdev->ops->req_alloc(mdev);
else
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/drivers/media/mmc/siano/smssdio.c b/drivers/media/mmc/siano/smssdio.c
index 8199077faf36..8dc11576f4e8 100644
--- a/drivers/media/mmc/siano/smssdio.c
+++ b/drivers/media/mmc/siano/smssdio.c
@@ -244,7 +244,7 @@ static int smssdio_probe(struct sdio_func *func,
board_id = id->driver_data;
- smsdev = kzalloc(sizeof(struct smssdio_device), GFP_KERNEL);
+ smsdev = kzalloc_obj(struct smssdio_device, GFP_KERNEL);
if (!smsdev)
return -ENOMEM;
diff --git a/drivers/media/pci/bt8xx/bttv-driver.c b/drivers/media/pci/bt8xx/bttv-driver.c
index 17e4529e537a..26cc0f6b7571 100644
--- a/drivers/media/pci/bt8xx/bttv-driver.c
+++ b/drivers/media/pci/bt8xx/bttv-driver.c
@@ -3216,7 +3216,7 @@ static int bttv_probe(struct pci_dev *dev, const struct pci_device_id *pci_id)
if (bttv_num == BTTV_MAX)
return -ENOMEM;
pr_info("Bt8xx card found (%d)\n", bttv_num);
- bttvs[bttv_num] = btv = kzalloc(sizeof(*btv), GFP_KERNEL);
+ bttvs[bttv_num] = btv = kzalloc_obj(*btv, GFP_KERNEL);
if (btv == NULL) {
pr_err("out of memory\n");
return -ENOMEM;
diff --git a/drivers/media/pci/bt8xx/bttv-gpio.c b/drivers/media/pci/bt8xx/bttv-gpio.c
index 59a6f160aac7..5b4c6336d2d5 100644
--- a/drivers/media/pci/bt8xx/bttv-gpio.c
+++ b/drivers/media/pci/bt8xx/bttv-gpio.c
@@ -73,7 +73,7 @@ int bttv_sub_add_device(struct bttv_core *core, char *name)
struct bttv_sub_device *sub;
int err;
- sub = kzalloc(sizeof(*sub),GFP_KERNEL);
+ sub = kzalloc_obj(*sub, GFP_KERNEL);
if (NULL == sub)
return -ENOMEM;
diff --git a/drivers/media/pci/bt8xx/bttv-input.c b/drivers/media/pci/bt8xx/bttv-input.c
index 84aa269248fd..45e30ebdc5f8 100644
--- a/drivers/media/pci/bt8xx/bttv-input.c
+++ b/drivers/media/pci/bt8xx/bttv-input.c
@@ -416,7 +416,7 @@ int bttv_input_init(struct bttv *btv)
if (!btv->has_remote)
return -ENODEV;
- ir = kzalloc(sizeof(*ir),GFP_KERNEL);
+ ir = kzalloc_obj(*ir, GFP_KERNEL);
rc = rc_allocate_device(RC_DRIVER_SCANCODE);
if (!ir || !rc)
goto err_out_free;
diff --git a/drivers/media/pci/bt8xx/dst_ca.c b/drivers/media/pci/bt8xx/dst_ca.c
index a9cc6e7a57f9..f26ece10d926 100644
--- a/drivers/media/pci/bt8xx/dst_ca.c
+++ b/drivers/media/pci/bt8xx/dst_ca.c
@@ -454,7 +454,7 @@ static int ca_send_message(struct dst_state *state, struct ca_msg *p_ca_message,
struct ca_msg *hw_buffer;
int result = 0;
- hw_buffer = kmalloc(sizeof(*hw_buffer), GFP_KERNEL);
+ hw_buffer = kmalloc_obj(*hw_buffer, GFP_KERNEL);
if (!hw_buffer)
return -ENOMEM;
dprintk(verbose, DST_CA_DEBUG, 1, " ");
@@ -535,9 +535,9 @@ static long dst_ca_ioctl(struct file *file, unsigned int cmd, unsigned long ioct
mutex_lock(&dst_ca_mutex);
dvbdev = file->private_data;
state = dvbdev->priv;
- p_ca_message = kmalloc(sizeof (struct ca_msg), GFP_KERNEL);
- p_ca_slot_info = kmalloc(sizeof (struct ca_slot_info), GFP_KERNEL);
- p_ca_caps = kmalloc(sizeof (struct ca_caps), GFP_KERNEL);
+ p_ca_message = kmalloc_obj(struct ca_msg, GFP_KERNEL);
+ p_ca_slot_info = kmalloc_obj(struct ca_slot_info, GFP_KERNEL);
+ p_ca_caps = kmalloc_obj(struct ca_caps, GFP_KERNEL);
if (!p_ca_message || !p_ca_slot_info || !p_ca_caps) {
result = -ENOMEM;
goto free_mem_and_exit;
diff --git a/drivers/media/pci/bt8xx/dvb-bt8xx.c b/drivers/media/pci/bt8xx/dvb-bt8xx.c
index f0fbb468aea2..b9c712c078d2 100644
--- a/drivers/media/pci/bt8xx/dvb-bt8xx.c
+++ b/drivers/media/pci/bt8xx/dvb-bt8xx.c
@@ -657,7 +657,7 @@ static void frontend_init(struct dvb_bt8xx_card *card, u32 type)
case BTTV_BOARD_TWINHAN_DST:
/* DST is not a frontend driver !!! */
- state = kmalloc(sizeof (struct dst_state), GFP_KERNEL);
+ state = kmalloc_obj(struct dst_state, GFP_KERNEL);
if (!state) {
pr_err("No memory\n");
break;
@@ -809,7 +809,7 @@ static int dvb_bt8xx_probe(struct bttv_sub_device *sub)
struct pci_dev* bttv_pci_dev;
int ret;
- if (!(card = kzalloc(sizeof(struct dvb_bt8xx_card), GFP_KERNEL)))
+ if (!(card = kzalloc_obj(struct dvb_bt8xx_card, GFP_KERNEL)))
return -ENOMEM;
mutex_init(&card->lock);
diff --git a/drivers/media/pci/cobalt/cobalt-alsa-main.c b/drivers/media/pci/cobalt/cobalt-alsa-main.c
index c57f87a68269..1b30b44ad112 100644
--- a/drivers/media/pci/cobalt/cobalt-alsa-main.c
+++ b/drivers/media/pci/cobalt/cobalt-alsa-main.c
@@ -45,7 +45,7 @@ static int snd_cobalt_card_create(struct cobalt_stream *s,
struct snd_card *sc,
struct snd_cobalt_card **cobsc)
{
- *cobsc = kzalloc(sizeof(struct snd_cobalt_card), GFP_KERNEL);
+ *cobsc = kzalloc_obj(struct snd_cobalt_card, GFP_KERNEL);
if (*cobsc == NULL)
return -ENOMEM;
diff --git a/drivers/media/pci/cobalt/cobalt-driver.c b/drivers/media/pci/cobalt/cobalt-driver.c
index b7695705fdee..1c2b00278c55 100644
--- a/drivers/media/pci/cobalt/cobalt-driver.c
+++ b/drivers/media/pci/cobalt/cobalt-driver.c
@@ -663,7 +663,7 @@ static int cobalt_probe(struct pci_dev *pci_dev,
/* FIXME - module parameter arrays constrain max instances */
i = atomic_inc_return(&cobalt_instance) - 1;
- cobalt = kzalloc(sizeof(struct cobalt), GFP_KERNEL);
+ cobalt = kzalloc_obj(struct cobalt, GFP_KERNEL);
if (cobalt == NULL)
return -ENOMEM;
cobalt->pci_dev = pci_dev;
diff --git a/drivers/media/pci/cx18/cx18-alsa-main.c b/drivers/media/pci/cx18/cx18-alsa-main.c
index 9dc361886284..6214e29a5cd6 100644
--- a/drivers/media/pci/cx18/cx18-alsa-main.c
+++ b/drivers/media/pci/cx18/cx18-alsa-main.c
@@ -77,7 +77,7 @@ static int snd_cx18_card_create(struct v4l2_device *v4l2_dev,
struct snd_card *sc,
struct snd_cx18_card **cxsc)
{
- *cxsc = kzalloc(sizeof(struct snd_cx18_card), GFP_KERNEL);
+ *cxsc = kzalloc_obj(struct snd_cx18_card, GFP_KERNEL);
if (*cxsc == NULL)
return -ENOMEM;
diff --git a/drivers/media/pci/cx18/cx18-driver.c b/drivers/media/pci/cx18/cx18-driver.c
index 74c59a94b2b0..bdfdd403a039 100644
--- a/drivers/media/pci/cx18/cx18-driver.c
+++ b/drivers/media/pci/cx18/cx18-driver.c
@@ -314,7 +314,7 @@ void cx18_read_eeprom(struct cx18 *cx, struct tveeprom *tv)
memset(tv, 0, sizeof(*tv));
- c = kzalloc(sizeof(*c), GFP_KERNEL);
+ c = kzalloc_obj(*c, GFP_KERNEL);
if (!c)
return;
@@ -899,7 +899,7 @@ static int cx18_probe(struct pci_dev *pci_dev,
return -ENOMEM;
}
- cx = kzalloc(sizeof(*cx), GFP_KERNEL);
+ cx = kzalloc_obj(*cx, GFP_KERNEL);
if (!cx)
return -ENOMEM;
diff --git a/drivers/media/pci/cx18/cx18-fileops.c b/drivers/media/pci/cx18/cx18-fileops.c
index 4944033dbb20..b3d3a6f67ea8 100644
--- a/drivers/media/pci/cx18/cx18-fileops.c
+++ b/drivers/media/pci/cx18/cx18-fileops.c
@@ -732,7 +732,7 @@ static int cx18_serialized_open(struct cx18_stream *s, struct file *filp)
CX18_DEBUG_FILE("open %s\n", s->name);
/* Allocate memory */
- item = kzalloc(sizeof(struct cx18_open_id), GFP_KERNEL);
+ item = kzalloc_obj(struct cx18_open_id, GFP_KERNEL);
if (NULL == item) {
CX18_DEBUG_WARN("nomem on v4l2 open\n");
return -ENOMEM;
diff --git a/drivers/media/pci/cx18/cx18-queue.c b/drivers/media/pci/cx18/cx18-queue.c
index eeb5513b1d52..04d6828f0259 100644
--- a/drivers/media/pci/cx18/cx18-queue.c
+++ b/drivers/media/pci/cx18/cx18-queue.c
@@ -361,12 +361,11 @@ int cx18_stream_alloc(struct cx18_stream *s)
struct cx18_buffer *buf;
/* 1 MDL per buffer to handle the worst & also default case */
- mdl = kzalloc(sizeof(struct cx18_mdl), GFP_KERNEL|__GFP_NOWARN);
+ mdl = kzalloc_obj(struct cx18_mdl, GFP_KERNEL | __GFP_NOWARN);
if (mdl == NULL)
break;
- buf = kzalloc(sizeof(struct cx18_buffer),
- GFP_KERNEL|__GFP_NOWARN);
+ buf = kzalloc_obj(struct cx18_buffer, GFP_KERNEL | __GFP_NOWARN);
if (buf == NULL) {
kfree(mdl);
break;
diff --git a/drivers/media/pci/cx18/cx18-streams.c b/drivers/media/pci/cx18/cx18-streams.c
index 48203ba16387..b5b969fa9530 100644
--- a/drivers/media/pci/cx18/cx18-streams.c
+++ b/drivers/media/pci/cx18/cx18-streams.c
@@ -343,7 +343,7 @@ static int cx18_prep_dev(struct cx18 *cx, int type)
/* Allocate the cx18_dvb struct only for the TS on cards with DTV */
if (type == CX18_ENC_STREAM_TYPE_TS) {
if (cx->card->hw_all & CX18_HW_DVB) {
- s->dvb = kzalloc(sizeof(struct cx18_dvb), GFP_KERNEL);
+ s->dvb = kzalloc_obj(struct cx18_dvb, GFP_KERNEL);
if (s->dvb == NULL) {
CX18_ERR("Couldn't allocate cx18_dvb structure for %s\n",
s->name);
diff --git a/drivers/media/pci/cx23885/altera-ci.c b/drivers/media/pci/cx23885/altera-ci.c
index 0dc348215b72..7eae29e002ea 100644
--- a/drivers/media/pci/cx23885/altera-ci.c
+++ b/drivers/media/pci/cx23885/altera-ci.c
@@ -224,14 +224,14 @@ static struct fpga_inode *append_internal(struct fpga_internal *internal)
struct fpga_inode *new_node = fpga_first_inode;
if (new_node == NULL) {
- new_node = kmalloc(sizeof(struct fpga_inode), GFP_KERNEL);
+ new_node = kmalloc_obj(struct fpga_inode, GFP_KERNEL);
fpga_first_inode = new_node;
} else {
while (new_node->next_inode != NULL)
new_node = new_node->next_inode;
new_node->next_inode =
- kmalloc(sizeof(struct fpga_inode), GFP_KERNEL);
+ kmalloc_obj(struct fpga_inode, GFP_KERNEL);
if (new_node->next_inode != NULL)
new_node = new_node->next_inode;
else
@@ -634,7 +634,7 @@ static int altera_hw_filt_init(struct altera_ci_config *config, int hw_filt_nr)
struct fpga_internal *inter = NULL;
int ret = 0;
- pid_filt = kzalloc(sizeof(struct netup_hw_pid_filter), GFP_KERNEL);
+ pid_filt = kzalloc_obj(struct netup_hw_pid_filter, GFP_KERNEL);
ci_dbg_print("%s\n", __func__);
@@ -648,7 +648,7 @@ static int altera_hw_filt_init(struct altera_ci_config *config, int hw_filt_nr)
(inter->filts_used)++;
ci_dbg_print("%s: Find Internal Structure!\n", __func__);
} else {
- inter = kzalloc(sizeof(struct fpga_internal), GFP_KERNEL);
+ inter = kzalloc_obj(struct fpga_internal, GFP_KERNEL);
if (!inter) {
ret = -ENOMEM;
goto err;
@@ -706,7 +706,7 @@ int altera_ci_init(struct altera_ci_config *config, int ci_nr)
int ret = 0;
u8 store = 0;
- state = kzalloc(sizeof(struct altera_ci_state), GFP_KERNEL);
+ state = kzalloc_obj(struct altera_ci_state, GFP_KERNEL);
ci_dbg_print("%s\n", __func__);
@@ -721,7 +721,7 @@ int altera_ci_init(struct altera_ci_config *config, int ci_nr)
inter->fpga_rw = config->fpga_rw;
ci_dbg_print("%s: Find Internal Structure!\n", __func__);
} else {
- inter = kzalloc(sizeof(struct fpga_internal), GFP_KERNEL);
+ inter = kzalloc_obj(struct fpga_internal, GFP_KERNEL);
if (!inter) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/pci/cx23885/cimax2.c b/drivers/media/pci/cx23885/cimax2.c
index 06e41f92092d..f0ecc92fc444 100644
--- a/drivers/media/pci/cx23885/cimax2.c
+++ b/drivers/media/pci/cx23885/cimax2.c
@@ -451,7 +451,7 @@ int netup_ci_init(struct cx23885_tsport *port)
int ret;
ci_dbg_print("%s\n", __func__);
- state = kzalloc(sizeof(struct netup_ci_state), GFP_KERNEL);
+ state = kzalloc_obj(struct netup_ci_state, GFP_KERNEL);
if (!state) {
ci_dbg_print("%s: Unable create CI structure!\n", __func__);
ret = -ENOMEM;
diff --git a/drivers/media/pci/cx23885/cx23885-alsa.c b/drivers/media/pci/cx23885/cx23885-alsa.c
index 717fc6c9ef21..e56c5b7d84bc 100644
--- a/drivers/media/pci/cx23885/cx23885-alsa.c
+++ b/drivers/media/pci/cx23885/cx23885-alsa.c
@@ -374,7 +374,7 @@ static int snd_cx23885_hw_params(struct snd_pcm_substream *substream,
BUG_ON(!chip->dma_size);
BUG_ON(chip->num_periods & (chip->num_periods-1));
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (NULL == buf)
return -ENOMEM;
diff --git a/drivers/media/pci/cx23885/cx23885-core.c b/drivers/media/pci/cx23885/cx23885-core.c
index a39f445ce22a..ef2d00db794c 100644
--- a/drivers/media/pci/cx23885/cx23885-core.c
+++ b/drivers/media/pci/cx23885/cx23885-core.c
@@ -2124,7 +2124,7 @@ static int cx23885_initdev(struct pci_dev *pci_dev,
struct v4l2_ctrl_handler *hdl;
int err;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (NULL == dev)
return -ENOMEM;
diff --git a/drivers/media/pci/cx23885/cx23885-input.c b/drivers/media/pci/cx23885/cx23885-input.c
index d2e84c6457e0..9c6e5b360bab 100644
--- a/drivers/media/pci/cx23885/cx23885-input.c
+++ b/drivers/media/pci/cx23885/cx23885-input.c
@@ -327,7 +327,7 @@ int cx23885_input_init(struct cx23885_dev *dev)
}
/* cx23885 board instance kernel IR state */
- kernel_ir = kzalloc(sizeof(struct cx23885_kernel_ir), GFP_KERNEL);
+ kernel_ir = kzalloc_obj(struct cx23885_kernel_ir, GFP_KERNEL);
if (kernel_ir == NULL)
return -ENOMEM;
diff --git a/drivers/media/pci/cx23885/cx23888-ir.c b/drivers/media/pci/cx23885/cx23888-ir.c
index 222d04421468..242b47a7d0af 100644
--- a/drivers/media/pci/cx23885/cx23888-ir.c
+++ b/drivers/media/pci/cx23885/cx23888-ir.c
@@ -1142,7 +1142,7 @@ int cx23888_ir_probe(struct cx23885_dev *dev)
struct v4l2_subdev_ir_parameters default_params;
int ret;
- state = kzalloc(sizeof(struct cx23888_ir_state), GFP_KERNEL);
+ state = kzalloc_obj(struct cx23888_ir_state, GFP_KERNEL);
if (state == NULL)
return -ENOMEM;
diff --git a/drivers/media/pci/cx25821/cx25821-alsa.c b/drivers/media/pci/cx25821/cx25821-alsa.c
index f463365163b7..a8197a9b0abf 100644
--- a/drivers/media/pci/cx25821/cx25821-alsa.c
+++ b/drivers/media/pci/cx25821/cx25821-alsa.c
@@ -512,7 +512,7 @@ static int snd_cx25821_hw_params(struct snd_pcm_substream *substream,
BUG_ON(!chip->dma_size);
BUG_ON(chip->num_periods & (chip->num_periods - 1));
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (NULL == buf)
return -ENOMEM;
diff --git a/drivers/media/pci/cx25821/cx25821-core.c b/drivers/media/pci/cx25821/cx25821-core.c
index a7336be44474..d64712f3aed4 100644
--- a/drivers/media/pci/cx25821/cx25821-core.c
+++ b/drivers/media/pci/cx25821/cx25821-core.c
@@ -1266,7 +1266,7 @@ static int cx25821_initdev(struct pci_dev *pci_dev,
struct cx25821_dev *dev;
int err = 0;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (NULL == dev)
return -ENOMEM;
diff --git a/drivers/media/pci/cx88/cx88-alsa.c b/drivers/media/pci/cx88/cx88-alsa.c
index 4e574d8390b4..3b8622dd056c 100644
--- a/drivers/media/pci/cx88/cx88-alsa.c
+++ b/drivers/media/pci/cx88/cx88-alsa.c
@@ -465,7 +465,7 @@ static int snd_cx88_hw_params(struct snd_pcm_substream *substream,
WARN_ON(!chip->dma_size);
WARN_ON(chip->num_periods & (chip->num_periods - 1));
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return -ENOMEM;
diff --git a/drivers/media/pci/cx88/cx88-cards.c b/drivers/media/pci/cx88/cx88-cards.c
index f01e48c23f8e..3e11bb066f31 100644
--- a/drivers/media/pci/cx88/cx88-cards.c
+++ b/drivers/media/pci/cx88/cx88-cards.c
@@ -3700,7 +3700,7 @@ struct cx88_core *cx88_core_create(struct pci_dev *pci, int nr)
struct cx88_core *core;
int i;
- core = kzalloc(sizeof(*core), GFP_KERNEL);
+ core = kzalloc_obj(*core, GFP_KERNEL);
if (!core)
return NULL;
diff --git a/drivers/media/pci/cx88/cx88-dsp.c b/drivers/media/pci/cx88/cx88-dsp.c
index e378f3b215c7..1d7049edd252 100644
--- a/drivers/media/pci/cx88/cx88-dsp.c
+++ b/drivers/media/pci/cx88/cx88-dsp.c
@@ -252,7 +252,7 @@ static s16 *read_rds_samples(struct cx88_core *core, u32 *N)
current_address,
current_address - srch->fifo_start, sample_count,
cx_read(MO_AUD_INTSTAT));
- samples = kmalloc_array(sample_count, sizeof(*samples), GFP_KERNEL);
+ samples = kmalloc_objs(*samples, sample_count, GFP_KERNEL);
if (!samples)
return NULL;
diff --git a/drivers/media/pci/cx88/cx88-input.c b/drivers/media/pci/cx88/cx88-input.c
index b9f2c14d62b4..f94d75c64cf9 100644
--- a/drivers/media/pci/cx88/cx88-input.c
+++ b/drivers/media/pci/cx88/cx88-input.c
@@ -267,7 +267,7 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci)
* used with a full-code IR table
*/
- ir = kzalloc(sizeof(*ir), GFP_KERNEL);
+ ir = kzalloc_obj(*ir, GFP_KERNEL);
dev = rc_allocate_device(RC_DRIVER_IR_RAW);
if (!ir || !dev)
goto err_out_free;
diff --git a/drivers/media/pci/cx88/cx88-mpeg.c b/drivers/media/pci/cx88/cx88-mpeg.c
index 2c1d5137ac47..1ed77f812784 100644
--- a/drivers/media/pci/cx88/cx88-mpeg.c
+++ b/drivers/media/pci/cx88/cx88-mpeg.c
@@ -619,7 +619,7 @@ int cx8802_register_driver(struct cx8802_driver *drv)
dev->core->boardnr);
/* Bring up a new struct for each driver instance */
- driver = kzalloc(sizeof(*drv), GFP_KERNEL);
+ driver = kzalloc_obj(*drv, GFP_KERNEL);
if (!driver) {
err = -ENOMEM;
goto out;
@@ -715,7 +715,7 @@ static int cx8802_probe(struct pci_dev *pci_dev,
goto fail_core;
err = -ENOMEM;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
goto fail_core;
dev->pci = pci_dev;
diff --git a/drivers/media/pci/cx88/cx88-video.c b/drivers/media/pci/cx88/cx88-video.c
index 0c87327689d3..87752ce17df8 100644
--- a/drivers/media/pci/cx88/cx88-video.c
+++ b/drivers/media/pci/cx88/cx88-video.c
@@ -1261,7 +1261,7 @@ static int cx8800_initdev(struct pci_dev *pci_dev,
int err;
int i;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/media/pci/cx88/cx88-vp3054-i2c.c b/drivers/media/pci/cx88/cx88-vp3054-i2c.c
index ac7f76dc5e21..e421589edf4c 100644
--- a/drivers/media/pci/cx88/cx88-vp3054-i2c.c
+++ b/drivers/media/pci/cx88/cx88-vp3054-i2c.c
@@ -97,7 +97,7 @@ int vp3054_i2c_probe(struct cx8802_dev *dev)
if (core->boardnr != CX88_BOARD_DNTV_LIVE_DVB_T_PRO)
return 0;
- vp3054_i2c = kzalloc(sizeof(*vp3054_i2c), GFP_KERNEL);
+ vp3054_i2c = kzalloc_obj(*vp3054_i2c, GFP_KERNEL);
if (!vp3054_i2c)
return -ENOMEM;
dev->vp3054 = vp3054_i2c;
diff --git a/drivers/media/pci/ddbridge/ddbridge-ci.c b/drivers/media/pci/ddbridge/ddbridge-ci.c
index ee20813c33ff..2602256b9f4a 100644
--- a/drivers/media/pci/ddbridge/ddbridge-ci.c
+++ b/drivers/media/pci/ddbridge/ddbridge-ci.c
@@ -155,7 +155,7 @@ static void ci_attach(struct ddb_port *port)
{
struct ddb_ci *ci;
- ci = kzalloc(sizeof(*ci), GFP_KERNEL);
+ ci = kzalloc_obj(*ci, GFP_KERNEL);
if (!ci)
return;
memcpy(&ci->en, &en_templ, sizeof(en_templ));
@@ -288,7 +288,7 @@ static void ci_xo2_attach(struct ddb_port *port)
{
struct ddb_ci *ci;
- ci = kzalloc(sizeof(*ci), GFP_KERNEL);
+ ci = kzalloc_obj(*ci, GFP_KERNEL);
if (!ci)
return;
memcpy(&ci->en, &en_xo2_templ, sizeof(en_xo2_templ));
diff --git a/drivers/media/pci/ddbridge/ddbridge-dummy-fe.c b/drivers/media/pci/ddbridge/ddbridge-dummy-fe.c
index 520ebd16b0c4..57192c5cb9c3 100644
--- a/drivers/media/pci/ddbridge/ddbridge-dummy-fe.c
+++ b/drivers/media/pci/ddbridge/ddbridge-dummy-fe.c
@@ -100,7 +100,7 @@ struct dvb_frontend *ddbridge_dummy_fe_qam_attach(void)
struct ddbridge_dummy_fe_state *state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct ddbridge_dummy_fe_state), GFP_KERNEL);
+ state = kzalloc_obj(struct ddbridge_dummy_fe_state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/media/pci/dm1105/dm1105.c b/drivers/media/pci/dm1105/dm1105.c
index 9e9c7c071acc..1e1d4bda7c56 100644
--- a/drivers/media/pci/dm1105/dm1105.c
+++ b/drivers/media/pci/dm1105/dm1105.c
@@ -976,7 +976,7 @@ static int dm1105_probe(struct pci_dev *pdev,
if (dm1105_devcount >= ARRAY_SIZE(card))
return -ENODEV;
- dev = kzalloc(sizeof(struct dm1105_dev), GFP_KERNEL);
+ dev = kzalloc_obj(struct dm1105_dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/media/pci/intel/ipu-bridge.c b/drivers/media/pci/intel/ipu-bridge.c
index b2b710094914..72ebe4016ca2 100644
--- a/drivers/media/pci/intel/ipu-bridge.c
+++ b/drivers/media/pci/intel/ipu-bridge.c
@@ -638,7 +638,7 @@ int ipu_bridge_instantiate_vcm(struct device *sensor)
return 0;
}
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data) {
fwnode_handle_put(vcm_fwnode);
return -ENOMEM;
@@ -851,7 +851,7 @@ int ipu_bridge_init(struct device *dev,
return dev_err_probe(dev, -EPROBE_DEFER,
"waiting for IVSC to become ready\n");
- bridge = kzalloc(sizeof(*bridge), GFP_KERNEL);
+ bridge = kzalloc_obj(*bridge, GFP_KERNEL);
if (!bridge)
return -ENOMEM;
diff --git a/drivers/media/pci/intel/ipu6/ipu6-bus.c b/drivers/media/pci/intel/ipu6/ipu6-bus.c
index 5cee2748983b..59879e4861ed 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-bus.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-bus.c
@@ -90,7 +90,7 @@ ipu6_bus_initialize_device(struct pci_dev *pdev, struct device *parent,
struct ipu6_device *isp = pci_get_drvdata(pdev);
int ret;
- adev = kzalloc(sizeof(*adev), GFP_KERNEL);
+ adev = kzalloc_obj(*adev, GFP_KERNEL);
if (!adev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/pci/intel/ipu6/ipu6-buttress.c b/drivers/media/pci/intel/ipu6/ipu6-buttress.c
index 103386c4f6ae..8b90ecf49e45 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-buttress.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-buttress.c
@@ -552,7 +552,7 @@ int ipu6_buttress_map_fw_image(struct ipu6_bus_device *sys,
n_pages = PFN_UP(fw->size);
- pages = kmalloc_array(n_pages, sizeof(*pages), GFP_KERNEL);
+ pages = kmalloc_objs(*pages, n_pages, GFP_KERNEL);
if (!pages)
return -ENOMEM;
diff --git a/drivers/media/pci/intel/ipu6/ipu6-dma.c b/drivers/media/pci/intel/ipu6/ipu6-dma.c
index 7296373d36b0..cefb16040c21 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-dma.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-dma.c
@@ -164,7 +164,7 @@ void *ipu6_dma_alloc(struct ipu6_bus_device *sys, size_t size,
unsigned int i;
int ret;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return NULL;
diff --git a/drivers/media/pci/intel/ipu6/ipu6-fw-com.c b/drivers/media/pci/intel/ipu6/ipu6-fw-com.c
index 40d8ce138a67..13ee09f6d32a 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-fw-com.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-fw-com.c
@@ -170,7 +170,7 @@ void *ipu6_fw_com_prepare(struct ipu6_fw_com_cfg *cfg,
if (!cfg || !cfg->cell_start || !cfg->cell_ready)
return NULL;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return NULL;
ctx->dmem_addr = base + cfg->dmem_addr + REGMEM_OFFSET;
diff --git a/drivers/media/pci/intel/ipu6/ipu6-mmu.c b/drivers/media/pci/intel/ipu6/ipu6-mmu.c
index 85cc6d5b4dd1..9eadde7142a3 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-mmu.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-mmu.c
@@ -549,7 +549,7 @@ static struct ipu6_mmu_info *ipu6_mmu_alloc(struct ipu6_device *isp)
struct ipu6_mmu_info *mmu_info;
int ret;
- mmu_info = kzalloc(sizeof(*mmu_info), GFP_KERNEL);
+ mmu_info = kzalloc_obj(*mmu_info, GFP_KERNEL);
if (!mmu_info)
return NULL;
@@ -613,7 +613,7 @@ static struct ipu6_dma_mapping *alloc_dma_mapping(struct ipu6_device *isp)
{
struct ipu6_dma_mapping *dmap;
- dmap = kzalloc(sizeof(*dmap), GFP_KERNEL);
+ dmap = kzalloc_obj(*dmap, GFP_KERNEL);
if (!dmap)
return NULL;
diff --git a/drivers/media/pci/intel/ipu6/ipu6.c b/drivers/media/pci/intel/ipu6/ipu6.c
index 24238f8311a6..57fe13ebb621 100644
--- a/drivers/media/pci/intel/ipu6/ipu6.c
+++ b/drivers/media/pci/intel/ipu6/ipu6.c
@@ -381,7 +381,7 @@ ipu6_isys_init(struct pci_dev *pdev, struct device *parent,
return ERR_PTR(ret);
}
- pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
+ pdata = kzalloc_obj(*pdata, GFP_KERNEL);
if (!pdata)
return ERR_PTR(-ENOMEM);
@@ -425,7 +425,7 @@ ipu6_psys_init(struct pci_dev *pdev, struct device *parent,
struct ipu6_psys_pdata *pdata;
int ret;
- pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
+ pdata = kzalloc_obj(*pdata, GFP_KERNEL);
if (!pdata)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/pci/ivtv/ivtv-alsa-main.c b/drivers/media/pci/ivtv/ivtv-alsa-main.c
index 9e13a7128a53..05d499241c02 100644
--- a/drivers/media/pci/ivtv/ivtv-alsa-main.c
+++ b/drivers/media/pci/ivtv/ivtv-alsa-main.c
@@ -74,7 +74,7 @@ static int snd_ivtv_card_create(struct v4l2_device *v4l2_dev,
struct snd_card *sc,
struct snd_ivtv_card **itvsc)
{
- *itvsc = kzalloc(sizeof(struct snd_ivtv_card), GFP_KERNEL);
+ *itvsc = kzalloc_obj(struct snd_ivtv_card, GFP_KERNEL);
if (*itvsc == NULL)
return -ENOMEM;
diff --git a/drivers/media/pci/ivtv/ivtv-driver.c b/drivers/media/pci/ivtv/ivtv-driver.c
index 459eb6cc370c..9d0d4faf9867 100644
--- a/drivers/media/pci/ivtv/ivtv-driver.c
+++ b/drivers/media/pci/ivtv/ivtv-driver.c
@@ -953,7 +953,7 @@ static int ivtv_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
int vbi_buf_size;
struct ivtv *itv;
- itv = kzalloc(sizeof(struct ivtv), GFP_KERNEL);
+ itv = kzalloc_obj(struct ivtv, GFP_KERNEL);
if (itv == NULL)
return -ENOMEM;
itv->pdev = pdev;
diff --git a/drivers/media/pci/ivtv/ivtv-fileops.c b/drivers/media/pci/ivtv/ivtv-fileops.c
index ef9ec062c03a..87c0ef449beb 100644
--- a/drivers/media/pci/ivtv/ivtv-fileops.c
+++ b/drivers/media/pci/ivtv/ivtv-fileops.c
@@ -990,7 +990,7 @@ static int ivtv_open(struct file *filp)
}
/* Allocate memory */
- item = kzalloc(sizeof(struct ivtv_open_id), GFP_KERNEL);
+ item = kzalloc_obj(struct ivtv_open_id, GFP_KERNEL);
if (NULL == item) {
IVTV_DEBUG_WARN("nomem on v4l2 open\n");
return -ENOMEM;
diff --git a/drivers/media/pci/ivtv/ivtv-queue.c b/drivers/media/pci/ivtv/ivtv-queue.c
index f7d2d159d800..9e339ef0c82d 100644
--- a/drivers/media/pci/ivtv/ivtv-queue.c
+++ b/drivers/media/pci/ivtv/ivtv-queue.c
@@ -207,8 +207,8 @@ int ivtv_stream_alloc(struct ivtv_stream *s)
}
s->sg_processing_size = 0;
- s->sg_dma = kzalloc(sizeof(struct ivtv_sg_element),
- GFP_KERNEL|__GFP_NOWARN);
+ s->sg_dma = kzalloc_obj(struct ivtv_sg_element,
+ GFP_KERNEL | __GFP_NOWARN);
if (s->sg_dma == NULL) {
IVTV_ERR("Could not allocate sg_dma for %s stream\n", s->name);
kfree(s->sg_pending);
@@ -226,8 +226,8 @@ int ivtv_stream_alloc(struct ivtv_stream *s)
/* allocate stream buffers. Initially all buffers are in q_free. */
for (i = 0; i < s->buffers; i++) {
- struct ivtv_buffer *buf = kzalloc(sizeof(struct ivtv_buffer),
- GFP_KERNEL|__GFP_NOWARN);
+ struct ivtv_buffer *buf = kzalloc_obj(struct ivtv_buffer,
+ GFP_KERNEL | __GFP_NOWARN);
if (buf == NULL)
break;
diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c
index 90c584cf97c2..4f55b44738c9 100644
--- a/drivers/media/pci/ivtv/ivtvfb.c
+++ b/drivers/media/pci/ivtv/ivtvfb.c
@@ -1176,8 +1176,7 @@ static int ivtvfb_init_card(struct ivtv *itv)
return -EBUSY;
}
- itv->osd_info = kzalloc(sizeof(struct osd_info),
- GFP_KERNEL|__GFP_NOWARN);
+ itv->osd_info = kzalloc_obj(struct osd_info, GFP_KERNEL | __GFP_NOWARN);
if (itv->osd_info == NULL) {
IVTVFB_ERR("Failed to allocate memory for osd_info\n");
return -ENOMEM;
diff --git a/drivers/media/pci/mantis/hopper_cards.c b/drivers/media/pci/mantis/hopper_cards.c
index b85aef4e2b24..132b5e21868b 100644
--- a/drivers/media/pci/mantis/hopper_cards.c
+++ b/drivers/media/pci/mantis/hopper_cards.c
@@ -149,7 +149,7 @@ static int hopper_pci_probe(struct pci_dev *pdev,
struct mantis_hwconfig *config;
int err;
- mantis = kzalloc(sizeof(*mantis), GFP_KERNEL);
+ mantis = kzalloc_obj(*mantis, GFP_KERNEL);
if (!mantis) {
err = -ENOMEM;
goto fail0;
diff --git a/drivers/media/pci/mantis/mantis_ca.c b/drivers/media/pci/mantis/mantis_ca.c
index 0fad0a923e35..a0998b16ba9e 100644
--- a/drivers/media/pci/mantis/mantis_ca.c
+++ b/drivers/media/pci/mantis/mantis_ca.c
@@ -137,7 +137,7 @@ int mantis_ca_init(struct mantis_pci *mantis)
int ca_flags = 0, result;
dprintk(MANTIS_DEBUG, 1, "Initializing Mantis CA");
- ca = kzalloc(sizeof(struct mantis_ca), GFP_KERNEL);
+ ca = kzalloc_obj(struct mantis_ca, GFP_KERNEL);
if (!ca) {
dprintk(MANTIS_ERROR, 1, "Out of memory!, exiting ..");
result = -ENOMEM;
diff --git a/drivers/media/pci/mantis/mantis_cards.c b/drivers/media/pci/mantis/mantis_cards.c
index b44b4cf42f86..3c46e1db8e4a 100644
--- a/drivers/media/pci/mantis/mantis_cards.c
+++ b/drivers/media/pci/mantis/mantis_cards.c
@@ -158,7 +158,7 @@ static int mantis_pci_probe(struct pci_dev *pdev,
struct mantis_hwconfig *config;
int err;
- mantis = kzalloc(sizeof(*mantis), GFP_KERNEL);
+ mantis = kzalloc_obj(*mantis, GFP_KERNEL);
if (!mantis)
return -ENOMEM;
diff --git a/drivers/media/pci/mgb4/mgb4_core.c b/drivers/media/pci/mgb4/mgb4_core.c
index a7cb8dc50b53..cd23758fb9b4 100644
--- a/drivers/media/pci/mgb4/mgb4_core.c
+++ b/drivers/media/pci/mgb4/mgb4_core.c
@@ -522,7 +522,7 @@ static int mgb4_probe(struct pci_dev *pdev, const struct pci_device_id *id)
};
int irqs = pci_msix_vec_count(pdev);
- mgbdev = kzalloc(sizeof(*mgbdev), GFP_KERNEL);
+ mgbdev = kzalloc_obj(*mgbdev, GFP_KERNEL);
if (!mgbdev)
return -ENOMEM;
diff --git a/drivers/media/pci/mgb4/mgb4_vin.c b/drivers/media/pci/mgb4/mgb4_vin.c
index e782db79686f..815c87b9210f 100644
--- a/drivers/media/pci/mgb4/mgb4_vin.c
+++ b/drivers/media/pci/mgb4/mgb4_vin.c
@@ -946,7 +946,7 @@ struct mgb4_vin_dev *mgb4_vin_create(struct mgb4_dev *mgbdev, int id)
struct device *dev = &pdev->dev;
int vin_irq, err_irq;
- vindev = kzalloc(sizeof(*vindev), GFP_KERNEL);
+ vindev = kzalloc_obj(*vindev, GFP_KERNEL);
if (!vindev)
return NULL;
diff --git a/drivers/media/pci/mgb4/mgb4_vout.c b/drivers/media/pci/mgb4/mgb4_vout.c
index 44e9565d4d06..cd5a36a41333 100644
--- a/drivers/media/pci/mgb4/mgb4_vout.c
+++ b/drivers/media/pci/mgb4/mgb4_vout.c
@@ -761,7 +761,7 @@ struct mgb4_vout_dev *mgb4_vout_create(struct mgb4_dev *mgbdev, int id)
struct pci_dev *pdev = mgbdev->pdev;
struct device *dev = &pdev->dev;
- voutdev = kzalloc(sizeof(*voutdev), GFP_KERNEL);
+ voutdev = kzalloc_obj(*voutdev, GFP_KERNEL);
if (!voutdev)
return NULL;
diff --git a/drivers/media/pci/netup_unidvb/netup_unidvb_core.c b/drivers/media/pci/netup_unidvb/netup_unidvb_core.c
index 9f2ac33cffa7..08af6717b1c9 100644
--- a/drivers/media/pci/netup_unidvb/netup_unidvb_core.c
+++ b/drivers/media/pci/netup_unidvb/netup_unidvb_core.c
@@ -799,7 +799,7 @@ static int netup_unidvb_initdev(struct pci_dev *pci_dev,
}
/* allocate device context */
- ndev = kzalloc(sizeof(*ndev), GFP_KERNEL);
+ ndev = kzalloc_obj(*ndev, GFP_KERNEL);
if (!ndev)
goto dev_alloc_err;
diff --git a/drivers/media/pci/pluto2/pluto2.c b/drivers/media/pci/pluto2/pluto2.c
index 6ac9b9bd7435..38bd167e821d 100644
--- a/drivers/media/pci/pluto2/pluto2.c
+++ b/drivers/media/pci/pluto2/pluto2.c
@@ -582,7 +582,7 @@ static int pluto2_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
struct dmx_demux *dmx;
int ret = -ENOMEM;
- pluto = kzalloc(sizeof(struct pluto), GFP_KERNEL);
+ pluto = kzalloc_obj(struct pluto, GFP_KERNEL);
if (!pluto)
goto out;
diff --git a/drivers/media/pci/pt1/pt1.c b/drivers/media/pci/pt1/pt1.c
index 1ced093583ac..21a9a3166588 100644
--- a/drivers/media/pci/pt1/pt1.c
+++ b/drivers/media/pci/pt1/pt1.c
@@ -833,7 +833,7 @@ pt1_alloc_adapter(struct pt1 *pt1)
struct dmxdev *dmxdev;
int ret;
- adap = kzalloc(sizeof(struct pt1_adapter), GFP_KERNEL);
+ adap = kzalloc_obj(struct pt1_adapter, GFP_KERNEL);
if (!adap) {
ret = -ENOMEM;
goto err;
@@ -1356,7 +1356,7 @@ static int pt1_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
goto err_pci_release_regions;
}
- pt1 = kzalloc(sizeof(struct pt1), GFP_KERNEL);
+ pt1 = kzalloc_obj(struct pt1, GFP_KERNEL);
if (!pt1) {
ret = -ENOMEM;
goto err_pci_iounmap;
diff --git a/drivers/media/pci/pt3/pt3.c b/drivers/media/pci/pt3/pt3.c
index c55aa782b72c..f0fb92017e8f 100644
--- a/drivers/media/pci/pt3/pt3.c
+++ b/drivers/media/pci/pt3/pt3.c
@@ -529,7 +529,7 @@ static int pt3_alloc_adapter(struct pt3_board *pt3, int index)
struct pt3_adapter *adap;
struct dvb_adapter *da;
- adap = kzalloc(sizeof(*adap), GFP_KERNEL);
+ adap = kzalloc_obj(*adap, GFP_KERNEL);
if (!adap)
return -ENOMEM;
diff --git a/drivers/media/pci/saa7134/saa7134-alsa.c b/drivers/media/pci/saa7134/saa7134-alsa.c
index f86a44dfe6e3..ad1a640d7f76 100644
--- a/drivers/media/pci/saa7134/saa7134-alsa.c
+++ b/drivers/media/pci/saa7134/saa7134-alsa.c
@@ -816,7 +816,7 @@ static int snd_card_saa7134_capture_open(struct snd_pcm_substream * substream)
mutex_unlock(&dev->dmasound.lock);
- pcm = kzalloc(sizeof(*pcm), GFP_KERNEL);
+ pcm = kzalloc_obj(*pcm, GFP_KERNEL);
if (pcm == NULL)
return -ENOMEM;
diff --git a/drivers/media/pci/saa7134/saa7134-core.c b/drivers/media/pci/saa7134/saa7134-core.c
index 537aa65acdc8..5acad9554a61 100644
--- a/drivers/media/pci/saa7134/saa7134-core.c
+++ b/drivers/media/pci/saa7134/saa7134-core.c
@@ -1010,7 +1010,7 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
if (saa7134_devcount == SAA7134_MAXBOARDS)
return -ENOMEM;
- dev = kzalloc(sizeof(*dev),GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (NULL == dev)
return -ENOMEM;
@@ -1018,7 +1018,7 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
sprintf(dev->name, "saa%x[%d]", pci_dev->device, dev->nr);
#ifdef CONFIG_MEDIA_CONTROLLER
- dev->media_dev = kzalloc(sizeof(*dev->media_dev), GFP_KERNEL);
+ dev->media_dev = kzalloc_obj(*dev->media_dev, GFP_KERNEL);
if (!dev->media_dev) {
err = -ENOMEM;
goto err_free_dev;
diff --git a/drivers/media/pci/saa7134/saa7134-go7007.c b/drivers/media/pci/saa7134/saa7134-go7007.c
index bd37db5ce363..05f9606b9012 100644
--- a/drivers/media/pci/saa7134/saa7134-go7007.c
+++ b/drivers/media/pci/saa7134/saa7134-go7007.c
@@ -414,7 +414,7 @@ static int saa7134_go7007_init(struct saa7134_dev *dev)
if (go == NULL)
return -ENOMEM;
- saa = kzalloc(sizeof(struct saa7134_go7007), GFP_KERNEL);
+ saa = kzalloc_obj(struct saa7134_go7007, GFP_KERNEL);
if (saa == NULL) {
kfree(go);
return -ENOMEM;
diff --git a/drivers/media/pci/saa7134/saa7134-input.c b/drivers/media/pci/saa7134/saa7134-input.c
index 468dbe8d552f..22fbcc2cb585 100644
--- a/drivers/media/pci/saa7134/saa7134-input.c
+++ b/drivers/media/pci/saa7134/saa7134-input.c
@@ -768,7 +768,7 @@ int saa7134_input_init1(struct saa7134_dev *dev)
return -ENODEV;
}
- ir = kzalloc(sizeof(*ir), GFP_KERNEL);
+ ir = kzalloc_obj(*ir, GFP_KERNEL);
rc = rc_allocate_device(RC_DRIVER_SCANCODE);
if (!ir || !rc) {
err = -ENOMEM;
diff --git a/drivers/media/pci/saa7146/hexium_gemini.c b/drivers/media/pci/saa7146/hexium_gemini.c
index 40b35098f3ea..371beecd92e1 100644
--- a/drivers/media/pci/saa7146/hexium_gemini.c
+++ b/drivers/media/pci/saa7146/hexium_gemini.c
@@ -250,7 +250,7 @@ static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_d
DEB_EE("\n");
- hexium = kzalloc(sizeof(*hexium), GFP_KERNEL);
+ hexium = kzalloc_obj(*hexium, GFP_KERNEL);
if (!hexium)
return -ENOMEM;
diff --git a/drivers/media/pci/saa7146/hexium_orion.c b/drivers/media/pci/saa7146/hexium_orion.c
index a2076728c621..f713d543971e 100644
--- a/drivers/media/pci/saa7146/hexium_orion.c
+++ b/drivers/media/pci/saa7146/hexium_orion.c
@@ -209,7 +209,7 @@ static int hexium_probe(struct saa7146_dev *dev)
return -EFAULT;
}
- hexium = kzalloc(sizeof(*hexium), GFP_KERNEL);
+ hexium = kzalloc_obj(*hexium, GFP_KERNEL);
if (!hexium)
return -ENOMEM;
diff --git a/drivers/media/pci/saa7146/mxb.c b/drivers/media/pci/saa7146/mxb.c
index a14b839098b8..1999d45f2986 100644
--- a/drivers/media/pci/saa7146/mxb.c
+++ b/drivers/media/pci/saa7146/mxb.c
@@ -226,7 +226,7 @@ static int mxb_probe(struct saa7146_dev *dev)
V4L2_CID_AUDIO_MUTE, 0, 1, 1, 1);
if (hdl->error)
return hdl->error;
- mxb = kzalloc(sizeof(struct mxb), GFP_KERNEL);
+ mxb = kzalloc_obj(struct mxb, GFP_KERNEL);
if (mxb == NULL) {
DEB_D("not enough kernel memory\n");
return -ENOMEM;
diff --git a/drivers/media/pci/saa7164/saa7164-buffer.c b/drivers/media/pci/saa7164/saa7164-buffer.c
index 7820e4f47fd5..9d1fa04990f7 100644
--- a/drivers/media/pci/saa7164/saa7164-buffer.c
+++ b/drivers/media/pci/saa7164/saa7164-buffer.c
@@ -68,7 +68,7 @@ struct saa7164_buffer *saa7164_buffer_alloc(struct saa7164_port *port,
goto ret;
}
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
goto ret;
@@ -252,7 +252,7 @@ struct saa7164_user_buffer *saa7164_buffer_alloc_user(struct saa7164_dev *dev,
{
struct saa7164_user_buffer *buf;
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return NULL;
diff --git a/drivers/media/pci/saa7164/saa7164-core.c b/drivers/media/pci/saa7164/saa7164-core.c
index a8a004f28ca0..eac9bc9f640c 100644
--- a/drivers/media/pci/saa7164/saa7164-core.c
+++ b/drivers/media/pci/saa7164/saa7164-core.c
@@ -1238,7 +1238,7 @@ static int saa7164_initdev(struct pci_dev *pci_dev,
int err, i;
u32 version;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (NULL == dev)
return -ENOMEM;
diff --git a/drivers/media/pci/saa7164/saa7164-encoder.c b/drivers/media/pci/saa7164/saa7164-encoder.c
index 66d650b5f69a..cae31f11d076 100644
--- a/drivers/media/pci/saa7164/saa7164-encoder.c
+++ b/drivers/media/pci/saa7164/saa7164-encoder.c
@@ -719,7 +719,7 @@ static int fops_open(struct file *file)
dprintk(DBGLVL_ENC, "%s()\n", __func__);
/* allocate + initialize per filehandle data */
- fh = kzalloc(sizeof(*fh), GFP_KERNEL);
+ fh = kzalloc_obj(*fh, GFP_KERNEL);
if (NULL == fh)
return -ENOMEM;
diff --git a/drivers/media/pci/saa7164/saa7164-vbi.c b/drivers/media/pci/saa7164/saa7164-vbi.c
index 57e4362c0d19..fcb9f99890e5 100644
--- a/drivers/media/pci/saa7164/saa7164-vbi.c
+++ b/drivers/media/pci/saa7164/saa7164-vbi.c
@@ -422,7 +422,7 @@ static int fops_open(struct file *file)
dprintk(DBGLVL_VBI, "%s()\n", __func__);
/* allocate + initialize per filehandle data */
- fh = kzalloc(sizeof(*fh), GFP_KERNEL);
+ fh = kzalloc_obj(*fh, GFP_KERNEL);
if (NULL == fh)
return -ENOMEM;
diff --git a/drivers/media/pci/smipcie/smipcie-main.c b/drivers/media/pci/smipcie/smipcie-main.c
index 7db6d443fc54..5bfba2721231 100644
--- a/drivers/media/pci/smipcie/smipcie-main.c
+++ b/drivers/media/pci/smipcie/smipcie-main.c
@@ -946,7 +946,7 @@ static int smi_probe(struct pci_dev *pdev, const struct pci_device_id *id)
if (pci_enable_device(pdev) < 0)
return -ENODEV;
- dev = kzalloc(sizeof(struct smi_dev), GFP_KERNEL);
+ dev = kzalloc_obj(struct smi_dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto err_pci_disable_device;
diff --git a/drivers/media/pci/solo6x10/solo6x10-core.c b/drivers/media/pci/solo6x10/solo6x10-core.c
index d1d3a83d0122..78335a6838c6 100644
--- a/drivers/media/pci/solo6x10/solo6x10-core.c
+++ b/drivers/media/pci/solo6x10/solo6x10-core.c
@@ -449,7 +449,7 @@ static int solo_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
int ret;
u8 chip_id;
- solo_dev = kzalloc(sizeof(*solo_dev), GFP_KERNEL);
+ solo_dev = kzalloc_obj(*solo_dev, GFP_KERNEL);
if (solo_dev == NULL)
return -ENOMEM;
diff --git a/drivers/media/pci/solo6x10/solo6x10-g723.c b/drivers/media/pci/solo6x10/solo6x10-g723.c
index 1db9f40ee0c0..5906fd47b583 100644
--- a/drivers/media/pci/solo6x10/solo6x10-g723.c
+++ b/drivers/media/pci/solo6x10/solo6x10-g723.c
@@ -120,7 +120,7 @@ static int snd_solo_pcm_open(struct snd_pcm_substream *ss)
struct solo_dev *solo_dev = snd_pcm_substream_chip(ss);
struct solo_snd_pcm *solo_pcm;
- solo_pcm = kzalloc(sizeof(*solo_pcm), GFP_KERNEL);
+ solo_pcm = kzalloc_obj(*solo_pcm, GFP_KERNEL);
if (solo_pcm == NULL)
goto oom;
diff --git a/drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c b/drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
index 5ee59b3844cc..d7168b9c9e61 100644
--- a/drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
+++ b/drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
@@ -1208,7 +1208,7 @@ static struct solo_enc_dev *solo_enc_alloc(struct solo_dev *solo_dev,
struct v4l2_ctrl_handler *hdl;
int ret;
- solo_enc = kzalloc(sizeof(*solo_enc), GFP_KERNEL);
+ solo_enc = kzalloc_obj(*solo_enc, GFP_KERNEL);
if (!solo_enc)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/pci/ttpci/budget-av.c b/drivers/media/pci/ttpci/budget-av.c
index 69f5e810f9b5..482e71c0fdcc 100644
--- a/drivers/media/pci/ttpci/budget-av.c
+++ b/drivers/media/pci/ttpci/budget-av.c
@@ -1437,7 +1437,7 @@ static int budget_av_attach(struct saa7146_dev *dev, struct saa7146_pci_extensio
dprintk(2, "dev: %p\n", dev);
- budget_av = kzalloc(sizeof(struct budget_av), GFP_KERNEL);
+ budget_av = kzalloc_obj(struct budget_av, GFP_KERNEL);
if (!budget_av)
return -ENOMEM;
diff --git a/drivers/media/pci/ttpci/budget-ci.c b/drivers/media/pci/ttpci/budget-ci.c
index 33f08adf4feb..86edb4310366 100644
--- a/drivers/media/pci/ttpci/budget-ci.c
+++ b/drivers/media/pci/ttpci/budget-ci.c
@@ -1456,7 +1456,7 @@ static int budget_ci_attach(struct saa7146_dev *dev, struct saa7146_pci_extensio
struct budget_ci *budget_ci;
int err;
- budget_ci = kzalloc(sizeof(struct budget_ci), GFP_KERNEL);
+ budget_ci = kzalloc_obj(struct budget_ci, GFP_KERNEL);
if (!budget_ci) {
err = -ENOMEM;
goto out1;
diff --git a/drivers/media/pci/ttpci/budget.c b/drivers/media/pci/ttpci/budget.c
index f623c250909b..ebdc6d2bce4e 100644
--- a/drivers/media/pci/ttpci/budget.c
+++ b/drivers/media/pci/ttpci/budget.c
@@ -788,7 +788,7 @@ static int budget_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_d
struct budget *budget = NULL;
int err;
- budget = kmalloc(sizeof(struct budget), GFP_KERNEL);
+ budget = kmalloc_obj(struct budget, GFP_KERNEL);
if (budget == NULL)
return -ENOMEM;
diff --git a/drivers/media/pci/tw686x/tw686x-core.c b/drivers/media/pci/tw686x/tw686x-core.c
index f39e0e34deb6..bcf93f4a5c83 100644
--- a/drivers/media/pci/tw686x/tw686x-core.c
+++ b/drivers/media/pci/tw686x/tw686x-core.c
@@ -243,22 +243,22 @@ static int tw686x_probe(struct pci_dev *pci_dev,
struct tw686x_dev *dev;
int err;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
dev->type = pci_id->driver_data;
dev->dma_mode = dma_mode;
sprintf(dev->name, "tw%04X", pci_dev->device);
- dev->video_channels = kcalloc(max_channels(dev),
- sizeof(*dev->video_channels), GFP_KERNEL);
+ dev->video_channels = kzalloc_objs(*dev->video_channels,
+ max_channels(dev), GFP_KERNEL);
if (!dev->video_channels) {
err = -ENOMEM;
goto free_dev;
}
- dev->audio_channels = kcalloc(max_channels(dev),
- sizeof(*dev->audio_channels), GFP_KERNEL);
+ dev->audio_channels = kzalloc_objs(*dev->audio_channels,
+ max_channels(dev), GFP_KERNEL);
if (!dev->audio_channels) {
err = -ENOMEM;
goto free_video;
diff --git a/drivers/media/pci/zoran/videocodec.c b/drivers/media/pci/zoran/videocodec.c
index 8efc5e06b0f7..2874247ad300 100644
--- a/drivers/media/pci/zoran/videocodec.c
+++ b/drivers/media/pci/zoran/videocodec.c
@@ -73,7 +73,7 @@ struct videocodec *videocodec_attach(struct videocodec_master *master)
res = codec->setup(codec);
if (res == 0) {
zrdev_dbg(zr, "%s: '%s'\n", __func__, codec->name);
- ptr = kzalloc(sizeof(*ptr), GFP_KERNEL);
+ ptr = kzalloc_obj(*ptr, GFP_KERNEL);
if (!ptr)
goto out_kfree;
ptr->codec = codec;
@@ -180,7 +180,7 @@ int videocodec_register(const struct videocodec *codec)
"videocodec: register '%s', type: %x, flags %lx, magic %lx\n",
codec->name, codec->type, codec->flags, codec->magic);
- ptr = kzalloc(sizeof(*ptr), GFP_KERNEL);
+ ptr = kzalloc_obj(*ptr, GFP_KERNEL);
if (!ptr)
return -ENOMEM;
ptr->codec = codec;
diff --git a/drivers/media/pci/zoran/zr36016.c b/drivers/media/pci/zoran/zr36016.c
index d2e136c48a1b..4c6a0a00578b 100644
--- a/drivers/media/pci/zoran/zr36016.c
+++ b/drivers/media/pci/zoran/zr36016.c
@@ -344,7 +344,7 @@ static int zr36016_setup(struct videocodec *codec)
return -ENOSPC;
}
//mem structure init
- ptr = kzalloc(sizeof(*ptr), GFP_KERNEL);
+ ptr = kzalloc_obj(*ptr, GFP_KERNEL);
codec->data = ptr;
if (!ptr)
return -ENOMEM;
diff --git a/drivers/media/pci/zoran/zr36050.c b/drivers/media/pci/zoran/zr36050.c
index c17965073557..701e4ef7ec22 100644
--- a/drivers/media/pci/zoran/zr36050.c
+++ b/drivers/media/pci/zoran/zr36050.c
@@ -741,7 +741,7 @@ static int zr36050_setup(struct videocodec *codec)
return -ENOSPC;
}
//mem structure init
- ptr = kzalloc(sizeof(*ptr), GFP_KERNEL);
+ ptr = kzalloc_obj(*ptr, GFP_KERNEL);
codec->data = ptr;
if (!ptr)
return -ENOMEM;
diff --git a/drivers/media/pci/zoran/zr36060.c b/drivers/media/pci/zoran/zr36060.c
index d6c12efc5bb6..ddd822e4495a 100644
--- a/drivers/media/pci/zoran/zr36060.c
+++ b/drivers/media/pci/zoran/zr36060.c
@@ -796,7 +796,7 @@ static int zr36060_setup(struct videocodec *codec)
return -ENOSPC;
}
//mem structure init
- ptr = kzalloc(sizeof(*ptr), GFP_KERNEL);
+ ptr = kzalloc_obj(*ptr, GFP_KERNEL);
codec->data = ptr;
if (!ptr)
return -ENOMEM;
diff --git a/drivers/media/platform/allegro-dvt/allegro-core.c b/drivers/media/platform/allegro-dvt/allegro-core.c
index eec0b8b30b7f..a6589cd6359e 100644
--- a/drivers/media/platform/allegro-dvt/allegro-core.c
+++ b/drivers/media/platform/allegro-dvt/allegro-core.c
@@ -967,7 +967,7 @@ static int allegro_mbox_notify(struct allegro_mbox *mbox)
u32 *tmp;
int err;
- msg = kmalloc(sizeof(*msg), GFP_KERNEL);
+ msg = kmalloc_obj(*msg, GFP_KERNEL);
if (!msg)
return -ENOMEM;
@@ -1551,7 +1551,7 @@ static int allocate_buffers_internal(struct allegro_channel *channel,
struct allegro_buffer *buffer, *tmp;
for (i = 0; i < n; i++) {
- buffer = kmalloc(sizeof(*buffer), GFP_KERNEL);
+ buffer = kmalloc_obj(*buffer, GFP_KERNEL);
if (!buffer) {
err = -ENOMEM;
goto err;
@@ -1632,7 +1632,7 @@ static ssize_t allegro_h264_write_sps(struct allegro_channel *channel,
unsigned int cpb_size;
unsigned int cpb_size_scale;
- sps = kzalloc(sizeof(*sps), GFP_KERNEL);
+ sps = kzalloc_obj(*sps, GFP_KERNEL);
if (!sps)
return -ENOMEM;
@@ -1729,7 +1729,7 @@ static ssize_t allegro_h264_write_pps(struct allegro_channel *channel,
struct nal_h264_pps *pps;
ssize_t size;
- pps = kzalloc(sizeof(*pps), GFP_KERNEL);
+ pps = kzalloc_obj(*pps, GFP_KERNEL);
if (!pps)
return -ENOMEM;
@@ -1780,7 +1780,7 @@ static ssize_t allegro_hevc_write_vps(struct allegro_channel *channel,
s32 level = v4l2_ctrl_g_ctrl(channel->mpeg_video_hevc_level);
s32 tier = v4l2_ctrl_g_ctrl(channel->mpeg_video_hevc_tier);
- vps = kzalloc(sizeof(*vps), GFP_KERNEL);
+ vps = kzalloc_obj(*vps, GFP_KERNEL);
if (!vps)
return -ENOMEM;
@@ -1822,7 +1822,7 @@ static ssize_t allegro_hevc_write_sps(struct allegro_channel *channel,
s32 level = v4l2_ctrl_g_ctrl(channel->mpeg_video_hevc_level);
s32 tier = v4l2_ctrl_g_ctrl(channel->mpeg_video_hevc_tier);
- sps = kzalloc(sizeof(*sps), GFP_KERNEL);
+ sps = kzalloc_obj(*sps, GFP_KERNEL);
if (!sps)
return -ENOMEM;
@@ -1929,7 +1929,7 @@ static ssize_t allegro_hevc_write_pps(struct allegro_channel *channel,
ssize_t size;
int i;
- pps = kzalloc(sizeof(*pps), GFP_KERNEL);
+ pps = kzalloc_obj(*pps, GFP_KERNEL);
if (!pps)
return -ENOMEM;
diff --git a/drivers/media/platform/amlogic/meson-ge2d/ge2d.c b/drivers/media/platform/amlogic/meson-ge2d/ge2d.c
index c51c6f4e41dc..0b499ed7795f 100644
--- a/drivers/media/platform/amlogic/meson-ge2d/ge2d.c
+++ b/drivers/media/platform/amlogic/meson-ge2d/ge2d.c
@@ -834,7 +834,7 @@ static int ge2d_open(struct file *file)
struct ge2d_ctx *ctx = NULL;
int ret = 0;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
ctx->ge2d = ge2d;
diff --git a/drivers/media/platform/amphion/vdec.c b/drivers/media/platform/amphion/vdec.c
index adf53b49020e..3302994dbf3f 100644
--- a/drivers/media/platform/amphion/vdec.c
+++ b/drivers/media/platform/amphion/vdec.c
@@ -1927,19 +1927,18 @@ static int vdec_open(struct file *file)
struct vdec_t *vdec;
int ret;
- inst = kzalloc(sizeof(*inst), GFP_KERNEL);
+ inst = kzalloc_obj(*inst, GFP_KERNEL);
if (!inst)
return -ENOMEM;
- vdec = kzalloc(sizeof(*vdec), GFP_KERNEL);
+ vdec = kzalloc_obj(*vdec, GFP_KERNEL);
if (!vdec) {
kfree(inst);
return -ENOMEM;
}
- vdec->slots = kmalloc_array(VDEC_SLOT_CNT_DFT,
- sizeof(*vdec->slots),
- GFP_KERNEL | __GFP_ZERO);
+ vdec->slots = kmalloc_objs(*vdec->slots, VDEC_SLOT_CNT_DFT,
+ GFP_KERNEL | __GFP_ZERO);
if (!vdec->slots) {
kfree(vdec);
kfree(inst);
diff --git a/drivers/media/platform/amphion/venc.c b/drivers/media/platform/amphion/venc.c
index 9e5cbc2b0d3f..4f13566fed49 100644
--- a/drivers/media/platform/amphion/venc.c
+++ b/drivers/media/platform/amphion/venc.c
@@ -858,7 +858,7 @@ static int venc_frame_encoded(struct vpu_inst *inst, void *arg)
if (!info)
return -EINVAL;
venc = inst->priv;
- frame = kzalloc(sizeof(*frame), GFP_KERNEL);
+ frame = kzalloc_obj(*frame, GFP_KERNEL);
if (!frame)
return -ENOMEM;
@@ -1307,11 +1307,11 @@ static int venc_open(struct file *file)
struct venc_t *venc;
int ret;
- inst = kzalloc(sizeof(*inst), GFP_KERNEL);
+ inst = kzalloc_obj(*inst, GFP_KERNEL);
if (!inst)
return -ENOMEM;
- venc = kzalloc(sizeof(*venc), GFP_KERNEL);
+ venc = kzalloc_obj(*venc, GFP_KERNEL);
if (!venc) {
kfree(inst);
return -ENOMEM;
diff --git a/drivers/media/platform/amphion/vpu_cmds.c b/drivers/media/platform/amphion/vpu_cmds.c
index ab69412e0aa7..00eda558a739 100644
--- a/drivers/media/platform/amphion/vpu_cmds.c
+++ b/drivers/media/platform/amphion/vpu_cmds.c
@@ -83,11 +83,11 @@ static struct vpu_cmd_t *vpu_alloc_cmd(struct vpu_inst *inst, u32 id, void *data
int i;
int ret;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return NULL;
- cmd->pkt = kzalloc(sizeof(*cmd->pkt), GFP_KERNEL);
+ cmd->pkt = kzalloc_obj(*cmd->pkt, GFP_KERNEL);
if (!cmd->pkt) {
kfree(cmd);
return NULL;
diff --git a/drivers/media/platform/broadcom/bcm2835-unicam.c b/drivers/media/platform/broadcom/bcm2835-unicam.c
index f10064107d54..9d00ea315763 100644
--- a/drivers/media/platform/broadcom/bcm2835-unicam.c
+++ b/drivers/media/platform/broadcom/bcm2835-unicam.c
@@ -2642,7 +2642,7 @@ static int unicam_probe(struct platform_device *pdev)
struct unicam_device *unicam;
int ret;
- unicam = kzalloc(sizeof(*unicam), GFP_KERNEL);
+ unicam = kzalloc_obj(*unicam, GFP_KERNEL);
if (!unicam)
return -ENOMEM;
diff --git a/drivers/media/platform/cadence/cdns-csi2rx.c b/drivers/media/platform/cadence/cdns-csi2rx.c
index 8c19f125da3e..df299f29756f 100644
--- a/drivers/media/platform/cadence/cdns-csi2rx.c
+++ b/drivers/media/platform/cadence/cdns-csi2rx.c
@@ -824,7 +824,7 @@ static int csi2rx_probe(struct platform_device *pdev)
unsigned int i;
int ret;
- csi2rx = kzalloc(sizeof(*csi2rx), GFP_KERNEL);
+ csi2rx = kzalloc_obj(*csi2rx, GFP_KERNEL);
if (!csi2rx)
return -ENOMEM;
platform_set_drvdata(pdev, csi2rx);
diff --git a/drivers/media/platform/cadence/cdns-csi2tx.c b/drivers/media/platform/cadence/cdns-csi2tx.c
index e22b133f346d..80aefdbe259b 100644
--- a/drivers/media/platform/cadence/cdns-csi2tx.c
+++ b/drivers/media/platform/cadence/cdns-csi2tx.c
@@ -573,7 +573,7 @@ static int csi2tx_probe(struct platform_device *pdev)
unsigned int i;
int ret;
- csi2tx = kzalloc(sizeof(*csi2tx), GFP_KERNEL);
+ csi2tx = kzalloc_obj(*csi2tx, GFP_KERNEL);
if (!csi2tx)
return -ENOMEM;
platform_set_drvdata(pdev, csi2tx);
diff --git a/drivers/media/platform/chips-media/coda/coda-bit.c b/drivers/media/platform/chips-media/coda/coda-bit.c
index fa6b72c3bd93..aab26194ad1b 100644
--- a/drivers/media/platform/chips-media/coda/coda-bit.c
+++ b/drivers/media/platform/chips-media/coda/coda-bit.c
@@ -397,7 +397,7 @@ void coda_fill_bitstream(struct coda_ctx *ctx, struct list_head *buffer_list)
*/
src_buf = v4l2_m2m_src_buf_remove(ctx->fh.m2m_ctx);
- meta = kmalloc(sizeof(*meta), GFP_KERNEL);
+ meta = kmalloc_obj(*meta, GFP_KERNEL);
if (meta) {
meta->sequence = src_buf->sequence;
meta->timecode = src_buf->timecode;
diff --git a/drivers/media/platform/chips-media/coda/coda-common.c b/drivers/media/platform/chips-media/coda/coda-common.c
index 33f712ff8556..fea7682b2217 100644
--- a/drivers/media/platform/chips-media/coda/coda-common.c
+++ b/drivers/media/platform/chips-media/coda/coda-common.c
@@ -2606,7 +2606,7 @@ static int coda_open(struct file *file)
int ret;
int idx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/chips-media/coda/coda-jpeg.c b/drivers/media/platform/chips-media/coda/coda-jpeg.c
index fb150b87c773..487d08491a42 100644
--- a/drivers/media/platform/chips-media/coda/coda-jpeg.c
+++ b/drivers/media/platform/chips-media/coda/coda-jpeg.c
@@ -355,7 +355,7 @@ int coda_jpeg_decode_header(struct coda_ctx *ctx, struct vb2_buffer *vb)
}
huff_tab = ctx->params.jpeg_huff_tab;
if (!huff_tab) {
- huff_tab = kzalloc(sizeof(struct coda_huff_tab), GFP_KERNEL);
+ huff_tab = kzalloc_obj(struct coda_huff_tab, GFP_KERNEL);
if (!huff_tab)
return -ENOMEM;
ctx->params.jpeg_huff_tab = huff_tab;
@@ -593,7 +593,7 @@ static int coda9_jpeg_gen_enc_huff_tab(struct coda_ctx *ctx, int tab_num,
};
int ret = -EINVAL;
- huff = kzalloc(sizeof(*huff), GFP_KERNEL);
+ huff = kzalloc_obj(*huff, GFP_KERNEL);
if (!huff)
return -ENOMEM;
@@ -723,7 +723,7 @@ static int coda9_jpeg_load_huff_tab(struct coda_ctx *ctx)
int i, j;
int ret;
- huff = kzalloc(sizeof(*huff), GFP_KERNEL);
+ huff = kzalloc_obj(*huff, GFP_KERNEL);
if (!huff)
return -ENOMEM;
diff --git a/drivers/media/platform/chips-media/coda/imx-vdoa.c b/drivers/media/platform/chips-media/coda/imx-vdoa.c
index c3561fcecb98..2e85043a7f01 100644
--- a/drivers/media/platform/chips-media/coda/imx-vdoa.c
+++ b/drivers/media/platform/chips-media/coda/imx-vdoa.c
@@ -201,7 +201,7 @@ struct vdoa_ctx *vdoa_context_create(struct vdoa_data *vdoa)
struct vdoa_ctx *ctx;
int err;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return NULL;
diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c
index 8917542b993c..097ab7f595b0 100644
--- a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c
+++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c
@@ -1822,7 +1822,7 @@ static int wave5_vpu_open_dec(struct file *filp)
struct v4l2_m2m_ctx *m2m_ctx;
int ret = 0;
- inst = kzalloc(sizeof(*inst), GFP_KERNEL);
+ inst = kzalloc_obj(*inst, GFP_KERNEL);
if (!inst)
return -ENOMEM;
@@ -1834,7 +1834,7 @@ static int wave5_vpu_open_dec(struct file *filp)
mutex_init(&inst->feed_lock);
INIT_LIST_HEAD(&inst->avail_src_bufs);
- inst->codec_info = kzalloc(sizeof(*inst->codec_info), GFP_KERNEL);
+ inst->codec_info = kzalloc_obj(*inst->codec_info, GFP_KERNEL);
if (!inst->codec_info) {
kfree(inst);
return -ENOMEM;
diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c b/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c
index 24fc0d0d3f4a..f9373ed9a97b 100644
--- a/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c
+++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c
@@ -1571,7 +1571,7 @@ static int wave5_vpu_open_enc(struct file *filp)
struct v4l2_ctrl_handler *v4l2_ctrl_hdl;
int ret = 0;
- inst = kzalloc(sizeof(*inst), GFP_KERNEL);
+ inst = kzalloc_obj(*inst, GFP_KERNEL);
if (!inst)
return -ENOMEM;
v4l2_ctrl_hdl = &inst->v4l2_ctrl_hdl;
@@ -1580,7 +1580,7 @@ static int wave5_vpu_open_enc(struct file *filp)
inst->type = VPU_INST_TYPE_ENC;
inst->ops = &wave5_vpu_enc_inst_ops;
- inst->codec_info = kzalloc(sizeof(*inst->codec_info), GFP_KERNEL);
+ inst->codec_info = kzalloc_obj(*inst->codec_info, GFP_KERNEL);
if (!inst->codec_info) {
kfree(inst);
return -ENOMEM;
diff --git a/drivers/media/platform/imagination/e5010-jpeg-enc.c b/drivers/media/platform/imagination/e5010-jpeg-enc.c
index 1c6e076033ec..803470d12bdb 100644
--- a/drivers/media/platform/imagination/e5010-jpeg-enc.c
+++ b/drivers/media/platform/imagination/e5010-jpeg-enc.c
@@ -728,7 +728,7 @@ static int e5010_open(struct file *file)
struct e5010_context *ctx;
int ret = 0;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/intel/pxa_camera.c b/drivers/media/platform/intel/pxa_camera.c
index bef1e7137f23..dbd465708f6f 100644
--- a/drivers/media/platform/intel/pxa_camera.c
+++ b/drivers/media/platform/intel/pxa_camera.c
@@ -741,7 +741,7 @@ static struct pxa_camera_format_xlate *pxa_mbus_build_fmts_xlate(
if (!fmts)
return ERR_PTR(-ENXIO);
- user_formats = kcalloc(fmts + 1, sizeof(*user_formats), GFP_KERNEL);
+ user_formats = kzalloc_objs(*user_formats, fmts + 1, GFP_KERNEL);
if (!user_formats)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/platform/m2m-deinterlace.c b/drivers/media/platform/m2m-deinterlace.c
index af098874ead5..568193243869 100644
--- a/drivers/media/platform/m2m-deinterlace.c
+++ b/drivers/media/platform/m2m-deinterlace.c
@@ -835,7 +835,7 @@ static int deinterlace_open(struct file *file)
struct deinterlace_dev *pcdev = video_drvdata(file);
struct deinterlace_ctx *ctx = NULL;
- ctx = kzalloc(sizeof *ctx, GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/marvell/cafe-driver.c b/drivers/media/platform/marvell/cafe-driver.c
index f9796de92aa7..a447099b40cc 100644
--- a/drivers/media/platform/marvell/cafe-driver.c
+++ b/drivers/media/platform/marvell/cafe-driver.c
@@ -327,7 +327,7 @@ static int cafe_smbus_setup(struct cafe_camera *cam)
struct i2c_adapter *adap;
int ret;
- adap = kzalloc(sizeof(*adap), GFP_KERNEL);
+ adap = kzalloc_obj(*adap, GFP_KERNEL);
if (adap == NULL)
return -ENOMEM;
adap->owner = THIS_MODULE;
@@ -485,7 +485,7 @@ static int cafe_pci_probe(struct pci_dev *pdev,
* Start putting together one of our big camera structures.
*/
ret = -ENOMEM;
- cam = kzalloc(sizeof(struct cafe_camera), GFP_KERNEL);
+ cam = kzalloc_obj(struct cafe_camera, GFP_KERNEL);
if (cam == NULL)
goto out;
pci_set_drvdata(pdev, cam);
diff --git a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c b/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c
index d08fe365cbb2..7a506b1f03da 100644
--- a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c
+++ b/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c
@@ -1151,7 +1151,7 @@ static int mtk_jpeg_open(struct file *file)
struct mtk_jpeg_ctx *ctx;
int ret = 0;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/mediatek/mdp/mtk_mdp_m2m.c b/drivers/media/platform/mediatek/mdp/mtk_mdp_m2m.c
index 03c07948dfdd..e069e326d2bd 100644
--- a/drivers/media/platform/mediatek/mdp/mtk_mdp_m2m.c
+++ b/drivers/media/platform/mediatek/mdp/mtk_mdp_m2m.c
@@ -1053,7 +1053,7 @@ static int mtk_mdp_m2m_open(struct file *file)
int ret;
struct v4l2_format default_format;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
index e5ccf673e152..d4dd2cad0d7f 100644
--- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
+++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
@@ -564,7 +564,7 @@ static struct mdp_cmdq_cmd *mdp_cmdq_prepare(struct mdp_dev *mdp,
goto err_uninit;
}
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto err_uninit;
@@ -583,13 +583,13 @@ static struct mdp_cmdq_cmd *mdp_cmdq_prepare(struct mdp_dev *mdp,
goto err_destroy_pkt;
}
- comps = kcalloc(num_comp, sizeof(*comps), GFP_KERNEL);
+ comps = kzalloc_objs(*comps, num_comp, GFP_KERNEL);
if (!comps) {
ret = -ENOMEM;
goto err_destroy_pkt;
}
- path = kzalloc(sizeof(*path), GFP_KERNEL);
+ path = kzalloc_obj(*path, GFP_KERNEL);
if (!path) {
ret = -ENOMEM;
goto err_free_comps;
diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c
index f20d2ed1f2bb..978bf12cc1d0 100644
--- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c
+++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c
@@ -221,7 +221,7 @@ static int mdp_probe(struct platform_device *pdev)
struct resource *res;
int ret, i, mutex_id;
- mdp = kzalloc(sizeof(*mdp), GFP_KERNEL);
+ mdp = kzalloc_obj(*mdp, GFP_KERNEL);
if (!mdp) {
ret = -ENOMEM;
goto err_return;
diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c
index 44140987cf5f..bb8f70a42f32 100644
--- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c
+++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c
@@ -568,7 +568,7 @@ static int mdp_m2m_open(struct file *file)
struct v4l2_format default_format = {};
const struct mdp_limit *limit = mdp->mdp_data->def_limit;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs.c b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs.c
index 643d6fff088b..c4566eb52db8 100644
--- a/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs.c
+++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs.c
@@ -149,7 +149,7 @@ void mtk_vcodec_dbgfs_create(struct mtk_vcodec_dec_ctx *ctx)
struct mtk_vcodec_dbgfs_inst *dbgfs_inst;
struct mtk_vcodec_dec_dev *vcodec_dev = ctx->dev;
- dbgfs_inst = kzalloc(sizeof(*dbgfs_inst), GFP_KERNEL);
+ dbgfs_inst = kzalloc_obj(*dbgfs_inst, GFP_KERNEL);
if (!dbgfs_inst)
return;
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c
index 3b81fae9f913..066bb304a34c 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c
@@ -200,7 +200,7 @@ static int fops_vcodec_open(struct file *file)
struct vb2_queue *src_vq;
unsigned long flags;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
index 8e1cf16a168a..85b88aa45f5b 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
@@ -735,7 +735,7 @@ static struct media_request *fops_media_request_alloc(struct media_device *mdev)
{
struct mtk_vcodec_dec_request *req;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
return &req->req;
}
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c
index 7be4b6086920..a3ea4d2a9fb0 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c
@@ -1879,7 +1879,7 @@ static int vdec_av1_slice_init(struct mtk_vcodec_dec_ctx *ctx)
struct vdec_av1_slice_init_vsi *vsi;
int ret;
- instance = kzalloc(sizeof(*instance), GFP_KERNEL);
+ instance = kzalloc_obj(*instance, GFP_KERNEL);
if (!instance)
return -ENOMEM;
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_if.c
index 795cb19b075d..a754b96ae84b 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_if.c
@@ -270,7 +270,7 @@ static int vdec_h264_init(struct mtk_vcodec_dec_ctx *ctx)
struct vdec_h264_inst *inst = NULL;
int err;
- inst = kzalloc(sizeof(*inst), GFP_KERNEL);
+ inst = kzalloc_obj(*inst, GFP_KERNEL);
if (!inst)
return -ENOMEM;
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_if.c
index b9a5ea7887d3..9cf7ff35731e 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_if.c
@@ -273,7 +273,7 @@ static int vdec_h264_slice_init(struct mtk_vcodec_dec_ctx *ctx)
struct vdec_h264_slice_inst *inst;
int err;
- inst = kzalloc(sizeof(*inst), GFP_KERNEL);
+ inst = kzalloc_obj(*inst, GFP_KERNEL);
if (!inst)
return -ENOMEM;
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_multi_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_multi_if.c
index 9a9dc2f88d6e..d761e70f5933 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_multi_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_multi_if.c
@@ -1208,7 +1208,7 @@ static int vdec_h264_slice_init(struct mtk_vcodec_dec_ctx *ctx)
int err, vsi_size;
unsigned char *temp;
- inst = kzalloc(sizeof(*inst), GFP_KERNEL);
+ inst = kzalloc_obj(*inst, GFP_KERNEL);
if (!inst)
return -ENOMEM;
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_hevc_req_multi_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_hevc_req_multi_if.c
index 88eca50c2017..1c925deaa721 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_hevc_req_multi_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_hevc_req_multi_if.c
@@ -858,7 +858,7 @@ static int vdec_hevc_slice_init(struct mtk_vcodec_dec_ctx *ctx)
struct vdec_hevc_slice_inst *inst;
int err, vsi_size;
- inst = kzalloc(sizeof(*inst), GFP_KERNEL);
+ inst = kzalloc_obj(*inst, GFP_KERNEL);
if (!inst)
return -ENOMEM;
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
index 5f848691cea4..af5bd3c24729 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_if.c
@@ -390,7 +390,7 @@ static int vdec_vp8_init(struct mtk_vcodec_dec_ctx *ctx)
struct vdec_vp8_inst *inst;
int err;
- inst = kzalloc(sizeof(*inst), GFP_KERNEL);
+ inst = kzalloc_obj(*inst, GFP_KERNEL);
if (!inst)
return -ENOMEM;
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_req_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_req_if.c
index e1d4960553f2..27d6af7836b9 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_req_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_req_if.c
@@ -275,7 +275,7 @@ static int vdec_vp8_slice_init(struct mtk_vcodec_dec_ctx *ctx)
struct vdec_vp8_slice_inst *inst;
int err;
- inst = kzalloc(sizeof(*inst), GFP_KERNEL);
+ inst = kzalloc_obj(*inst, GFP_KERNEL);
if (!inst)
return -ENOMEM;
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
index cd1935014d76..1b4bc0f60b8b 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
@@ -1848,7 +1848,7 @@ static int vdec_vp9_slice_init(struct mtk_vcodec_dec_ctx *ctx)
struct vdec_vp9_slice_init_vsi *vsi;
int ret;
- instance = kzalloc(sizeof(*instance), GFP_KERNEL);
+ instance = kzalloc_obj(*instance, GFP_KERNEL);
if (!instance)
return -ENOMEM;
diff --git a/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c
index 82b8ff38e8f1..c02cdb7acd63 100644
--- a/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c
+++ b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c
@@ -119,7 +119,7 @@ static int fops_vcodec_open(struct file *file)
struct vb2_queue *src_vq;
unsigned long flags;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c b/drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c
index 0f63657d8bad..d7630d9ae305 100644
--- a/drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c
+++ b/drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c
@@ -588,7 +588,7 @@ static int h264_enc_init(struct mtk_vcodec_enc_ctx *ctx)
int ret = 0;
struct venc_h264_inst *inst;
- inst = kzalloc(sizeof(*inst), GFP_KERNEL);
+ inst = kzalloc_obj(*inst, GFP_KERNEL);
if (!inst)
return -ENOMEM;
diff --git a/drivers/media/platform/mediatek/vcodec/encoder/venc/venc_vp8_if.c b/drivers/media/platform/mediatek/vcodec/encoder/venc/venc_vp8_if.c
index 05abca91e742..b85b177ebcce 100644
--- a/drivers/media/platform/mediatek/vcodec/encoder/venc/venc_vp8_if.c
+++ b/drivers/media/platform/mediatek/vcodec/encoder/venc/venc_vp8_if.c
@@ -316,7 +316,7 @@ static int vp8_enc_init(struct mtk_vcodec_enc_ctx *ctx)
int ret = 0;
struct venc_vp8_inst *inst;
- inst = kzalloc(sizeof(*inst), GFP_KERNEL);
+ inst = kzalloc_obj(*inst, GFP_KERNEL);
if (!inst)
return -ENOMEM;
diff --git a/drivers/media/platform/nuvoton/npcm-video.c b/drivers/media/platform/nuvoton/npcm-video.c
index 44e904e61801..eccd92774344 100644
--- a/drivers/media/platform/nuvoton/npcm-video.c
+++ b/drivers/media/platform/nuvoton/npcm-video.c
@@ -411,7 +411,7 @@ static unsigned int npcm_video_add_rect(struct npcm_video *video,
struct rect_list *list = NULL;
struct v4l2_rect *r;
- list = kzalloc(sizeof(*list), GFP_KERNEL);
+ list = kzalloc_obj(*list, GFP_KERNEL);
if (!list)
return 0;
@@ -466,7 +466,7 @@ static struct rect_list *npcm_video_new_rect(struct npcm_video *video,
struct rect_list *list = NULL;
struct v4l2_rect *r;
- list = kzalloc(sizeof(*list), GFP_KERNEL);
+ list = kzalloc_obj(*list, GFP_KERNEL);
if (!list)
return NULL;
@@ -1733,7 +1733,7 @@ static int npcm_video_init(struct npcm_video *video)
static int npcm_video_probe(struct platform_device *pdev)
{
- struct npcm_video *video = kzalloc(sizeof(*video), GFP_KERNEL);
+ struct npcm_video *video = kzalloc_obj(*video, GFP_KERNEL);
int rc;
void __iomem *regs;
diff --git a/drivers/media/platform/nvidia/tegra-vde/dmabuf-cache.c b/drivers/media/platform/nvidia/tegra-vde/dmabuf-cache.c
index b34244ea14dd..4e4b8c09d5be 100644
--- a/drivers/media/platform/nvidia/tegra-vde/dmabuf-cache.c
+++ b/drivers/media/platform/nvidia/tegra-vde/dmabuf-cache.c
@@ -115,7 +115,7 @@ int tegra_vde_dmabuf_cache_map(struct tegra_vde *vde,
goto err_unmap;
}
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
err = -ENOMEM;
goto err_unmap;
diff --git a/drivers/media/platform/nvidia/tegra-vde/v4l2.c b/drivers/media/platform/nvidia/tegra-vde/v4l2.c
index d94978ae2baf..d877802352d3 100644
--- a/drivers/media/platform/nvidia/tegra-vde/v4l2.c
+++ b/drivers/media/platform/nvidia/tegra-vde/v4l2.c
@@ -811,8 +811,7 @@ static int tegra_open(struct file *file)
struct tegra_ctx *ctx;
int err;
- ctx = kzalloc(struct_size(ctx, ctrls, ARRAY_SIZE(ctrl_cfgs)),
- GFP_KERNEL);
+ ctx = kzalloc_flex(*ctx, ctrls, ARRAY_SIZE(ctrl_cfgs), GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/nvidia/tegra-vde/vde.c b/drivers/media/platform/nvidia/tegra-vde/vde.c
index 3232392c60e2..a1d4a1ab12f9 100644
--- a/drivers/media/platform/nvidia/tegra-vde/vde.c
+++ b/drivers/media/platform/nvidia/tegra-vde/vde.c
@@ -61,7 +61,7 @@ int tegra_vde_alloc_bo(struct tegra_vde *vde,
struct tegra_vde_bo *bo;
int err;
- bo = kzalloc(sizeof(*bo), GFP_KERNEL);
+ bo = kzalloc_obj(*bo, GFP_KERNEL);
if (!bo)
return -ENOMEM;
diff --git a/drivers/media/platform/nxp/dw100/dw100.c b/drivers/media/platform/nxp/dw100/dw100.c
index 4aaf9c3fff53..cf20f1ffc1d1 100644
--- a/drivers/media/platform/nxp/dw100/dw100.c
+++ b/drivers/media/platform/nxp/dw100/dw100.c
@@ -601,7 +601,7 @@ static int dw100_open(struct file *file)
struct v4l2_pix_format_mplane *pix_fmt;
int ret, i;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c
index b558700d1d96..100320ddf545 100644
--- a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c
+++ b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c
@@ -2200,7 +2200,7 @@ static int mxc_jpeg_open(struct file *file)
struct mxc_jpeg_ctx *ctx;
int ret = 0;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/nxp/imx-pxp.c b/drivers/media/platform/nxp/imx-pxp.c
index 3f9a67a6bd4d..ad31a3459b94 100644
--- a/drivers/media/platform/nxp/imx-pxp.c
+++ b/drivers/media/platform/nxp/imx-pxp.c
@@ -1646,7 +1646,7 @@ static int pxp_open(struct file *file)
if (mutex_lock_interruptible(&dev->dev_mutex))
return -ERESTARTSYS;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
rc = -ENOMEM;
goto open_unlock;
diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
index 18146978bdf5..87346979ef09 100644
--- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
+++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
@@ -474,8 +474,8 @@ static int mxc_isi_probe(struct platform_device *pdev)
isi->pdata = of_device_get_match_data(dev);
- isi->pipes = kcalloc(isi->pdata->num_channels, sizeof(isi->pipes[0]),
- GFP_KERNEL);
+ isi->pipes = kzalloc_objs(isi->pipes[0], isi->pdata->num_channels,
+ GFP_KERNEL);
if (!isi->pipes)
return -ENOMEM;
diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c
index 3c26cfef93d1..2cd014a79006 100644
--- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c
+++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c
@@ -189,7 +189,7 @@ static int mxc_isi_crossbar_init_state(struct v4l2_subdev *sd,
* pipelines by default.
*/
routing.num_routes = min(xbar->num_sinks - 1, xbar->num_sources);
- routes = kcalloc(routing.num_routes, sizeof(*routes), GFP_KERNEL);
+ routes = kzalloc_objs(*routes, routing.num_routes, GFP_KERNEL);
if (!routes)
return -ENOMEM;
@@ -454,12 +454,11 @@ int mxc_isi_crossbar_init(struct mxc_isi_dev *isi)
xbar->num_sources = isi->pdata->num_channels;
num_pads = xbar->num_sinks + xbar->num_sources;
- xbar->pads = kcalloc(num_pads, sizeof(*xbar->pads), GFP_KERNEL);
+ xbar->pads = kzalloc_objs(*xbar->pads, num_pads, GFP_KERNEL);
if (!xbar->pads)
return -ENOMEM;
- xbar->inputs = kcalloc(xbar->num_sinks, sizeof(*xbar->inputs),
- GFP_KERNEL);
+ xbar->inputs = kzalloc_objs(*xbar->inputs, xbar->num_sinks, GFP_KERNEL);
if (!xbar->inputs) {
ret = -ENOMEM;
goto err_free;
diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c
index f425ac786854..e6ad1044b954 100644
--- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c
+++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c
@@ -624,7 +624,7 @@ static int mxc_isi_m2m_open(struct file *file)
struct mxc_isi_m2m_ctx *ctx;
int ret;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/nxp/mx2_emmaprp.c b/drivers/media/platform/nxp/mx2_emmaprp.c
index 02d57229b9b3..8f588688f049 100644
--- a/drivers/media/platform/nxp/mx2_emmaprp.c
+++ b/drivers/media/platform/nxp/mx2_emmaprp.c
@@ -718,7 +718,7 @@ static int emmaprp_open(struct file *file)
struct emmaprp_dev *pcdev = video_drvdata(file);
struct emmaprp_ctx *ctx;
- ctx = kzalloc(sizeof *ctx, GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/qcom/iris/iris_buffer.c b/drivers/media/platform/qcom/iris/iris_buffer.c
index f1f003a787bf..f0fdba0ae987 100644
--- a/drivers/media/platform/qcom/iris/iris_buffer.c
+++ b/drivers/media/platform/qcom/iris/iris_buffer.c
@@ -342,7 +342,7 @@ static int iris_create_internal_buffer(struct iris_inst *inst,
if (!buffers->size)
return 0;
- buffer = kzalloc(sizeof(*buffer), GFP_KERNEL);
+ buffer = kzalloc_obj(*buffer, GFP_KERNEL);
if (!buffer)
return -ENOMEM;
diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c b/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c
index 11815f6f5bac..abffd20cf25b 100644
--- a/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c
+++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c
@@ -1087,5 +1087,5 @@ void iris_hfi_gen1_command_ops_init(struct iris_core *core)
struct iris_inst *iris_hfi_gen1_get_instance(void)
{
- return kzalloc(sizeof(struct iris_inst), GFP_KERNEL);
+ return kzalloc_obj(struct iris_inst, GFP_KERNEL);
}
diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
index 715ec9575b90..d45cecd5e544 100644
--- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
+++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
@@ -1329,7 +1329,7 @@ struct iris_inst *iris_hfi_gen2_get_instance(void)
struct iris_inst_hfi_gen2 *out;
/* The allocation is intentionally larger than struct iris_inst. */
- out = kzalloc(sizeof(*out), GFP_KERNEL);
+ out = kzalloc_obj(*out, GFP_KERNEL);
return &out->inst;
}
diff --git a/drivers/media/platform/qcom/iris/iris_vdec.c b/drivers/media/platform/qcom/iris/iris_vdec.c
index 467d00044a2f..3cfbdc04d3a9 100644
--- a/drivers/media/platform/qcom/iris/iris_vdec.c
+++ b/drivers/media/platform/qcom/iris/iris_vdec.c
@@ -21,8 +21,8 @@ int iris_vdec_inst_init(struct iris_inst *inst)
struct iris_core *core = inst->core;
struct v4l2_format *f;
- inst->fmt_src = kzalloc(sizeof(*inst->fmt_src), GFP_KERNEL);
- inst->fmt_dst = kzalloc(sizeof(*inst->fmt_dst), GFP_KERNEL);
+ inst->fmt_src = kzalloc_obj(*inst->fmt_src, GFP_KERNEL);
+ inst->fmt_dst = kzalloc_obj(*inst->fmt_dst, GFP_KERNEL);
inst->fw_min_count = MIN_BUFFERS;
diff --git a/drivers/media/platform/qcom/iris/iris_venc.c b/drivers/media/platform/qcom/iris/iris_venc.c
index 6461d9c9d598..d3531a3cc2a2 100644
--- a/drivers/media/platform/qcom/iris/iris_venc.c
+++ b/drivers/media/platform/qcom/iris/iris_venc.c
@@ -19,8 +19,8 @@ int iris_venc_inst_init(struct iris_inst *inst)
struct iris_core *core = inst->core;
struct v4l2_format *f;
- inst->fmt_src = kzalloc(sizeof(*inst->fmt_src), GFP_KERNEL);
- inst->fmt_dst = kzalloc(sizeof(*inst->fmt_dst), GFP_KERNEL);
+ inst->fmt_src = kzalloc_obj(*inst->fmt_src, GFP_KERNEL);
+ inst->fmt_dst = kzalloc_obj(*inst->fmt_dst, GFP_KERNEL);
if (!inst->fmt_src || !inst->fmt_dst) {
kfree(inst->fmt_src);
kfree(inst->fmt_dst);
diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
index 24d2b2fd0340..db3536956131 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -213,7 +213,7 @@ static int venus_enumerate_codecs(struct venus_core *core, u32 type)
if (core->res->hfi_version != HFI_VERSION_1XX)
return 0;
- inst = kzalloc(sizeof(*inst), GFP_KERNEL);
+ inst = kzalloc_obj(*inst, GFP_KERNEL);
if (!inst)
return -ENOMEM;
@@ -329,7 +329,7 @@ static int venus_add_dynamic_nodes(struct venus_core *core)
struct device *dev = core->dev;
int ret;
- core->ocs = kmalloc(sizeof(*core->ocs), GFP_KERNEL);
+ core->ocs = kmalloc_obj(*core->ocs, GFP_KERNEL);
if (!core->ocs)
return -ENOMEM;
diff --git a/drivers/media/platform/qcom/venus/helpers.c b/drivers/media/platform/qcom/venus/helpers.c
index 2e4363f82231..f4223470f0dd 100644
--- a/drivers/media/platform/qcom/venus/helpers.c
+++ b/drivers/media/platform/qcom/venus/helpers.c
@@ -192,7 +192,7 @@ int venus_helper_alloc_dpb_bufs(struct venus_inst *inst)
count = hfi_bufreq_get_count_min(&bufreq, ver);
for (i = 0; i < count; i++) {
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf) {
ret = -ENOMEM;
goto fail;
@@ -248,7 +248,7 @@ static int intbufs_set_buffer(struct venus_inst *inst, u32 type)
return 0;
for (i = 0; i < bufreq.count_actual; i++) {
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/media/platform/qcom/venus/hfi_venus.c b/drivers/media/platform/qcom/venus/hfi_venus.c
index d3da35f67fd5..a6cf17e379f7 100644
--- a/drivers/media/platform/qcom/venus/hfi_venus.c
+++ b/drivers/media/platform/qcom/venus/hfi_venus.c
@@ -1702,7 +1702,7 @@ int venus_hfi_create(struct venus_core *core)
struct venus_hfi_device *hdev;
int ret;
- hdev = kzalloc(sizeof(*hdev), GFP_KERNEL);
+ hdev = kzalloc_obj(*hdev, GFP_KERNEL);
if (!hdev)
return -ENOMEM;
diff --git a/drivers/media/platform/qcom/venus/vdec.c b/drivers/media/platform/qcom/venus/vdec.c
index 21ca4947a849..3f46e2d8ccce 100644
--- a/drivers/media/platform/qcom/venus/vdec.c
+++ b/drivers/media/platform/qcom/venus/vdec.c
@@ -1684,7 +1684,7 @@ static int vdec_open(struct file *file)
struct venus_inst *inst;
int ret;
- inst = kzalloc(sizeof(*inst), GFP_KERNEL);
+ inst = kzalloc_obj(*inst, GFP_KERNEL);
if (!inst)
return -ENOMEM;
diff --git a/drivers/media/platform/qcom/venus/venc.c b/drivers/media/platform/qcom/venus/venc.c
index 0b5843ba536f..32185f29eee5 100644
--- a/drivers/media/platform/qcom/venus/venc.c
+++ b/drivers/media/platform/qcom/venus/venc.c
@@ -1466,7 +1466,7 @@ static int venc_open(struct file *file)
struct venus_inst *inst;
int ret;
- inst = kzalloc(sizeof(*inst), GFP_KERNEL);
+ inst = kzalloc_obj(*inst, GFP_KERNEL);
if (!inst)
return -ENOMEM;
diff --git a/drivers/media/platform/raspberrypi/rp1-cfe/cfe.c b/drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
index 62dca76b468d..a02a966d9c3b 100644
--- a/drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
+++ b/drivers/media/platform/raspberrypi/rp1-cfe/cfe.c
@@ -2279,7 +2279,7 @@ static int cfe_probe(struct platform_device *pdev)
char debugfs_name[32];
int ret;
- cfe = kzalloc(sizeof(*cfe), GFP_KERNEL);
+ cfe = kzalloc_obj(*cfe, GFP_KERNEL);
if (!cfe)
return -ENOMEM;
diff --git a/drivers/media/platform/renesas/rcar-vin/rcar-core.c b/drivers/media/platform/renesas/rcar-vin/rcar-core.c
index 100105b620e3..36421defa598 100644
--- a/drivers/media/platform/renesas/rcar-vin/rcar-core.c
+++ b/drivers/media/platform/renesas/rcar-vin/rcar-core.c
@@ -128,7 +128,7 @@ static int rvin_group_get(struct rvin_dev *vin,
group = rvin_group_data;
kref_get(&group->refcount);
} else {
- group = kzalloc(sizeof(*group), GFP_KERNEL);
+ group = kzalloc_obj(*group, GFP_KERNEL);
if (!group) {
ret = -ENOMEM;
goto err_group;
diff --git a/drivers/media/platform/renesas/rcar_fdp1.c b/drivers/media/platform/renesas/rcar_fdp1.c
index 672869815f63..791cff4a48ea 100644
--- a/drivers/media/platform/renesas/rcar_fdp1.c
+++ b/drivers/media/platform/renesas/rcar_fdp1.c
@@ -2078,7 +2078,7 @@ static int fdp1_open(struct file *file)
if (mutex_lock_interruptible(&fdp1->dev_mutex))
return -ERESTARTSYS;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
ret = -ENOMEM;
goto done;
diff --git a/drivers/media/platform/renesas/rcar_jpu.c b/drivers/media/platform/renesas/rcar_jpu.c
index a6d26b446494..3a3aa6bba9d2 100644
--- a/drivers/media/platform/renesas/rcar_jpu.c
+++ b/drivers/media/platform/renesas/rcar_jpu.c
@@ -1212,7 +1212,7 @@ static int jpu_open(struct file *file)
struct jpu_ctx *ctx;
int ret;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/renesas/renesas-ceu.c b/drivers/media/platform/renesas/renesas-ceu.c
index deed49d0fb10..a827a4cf6826 100644
--- a/drivers/media/platform/renesas/renesas-ceu.c
+++ b/drivers/media/platform/renesas/renesas-ceu.c
@@ -1616,7 +1616,7 @@ static int ceu_probe(struct platform_device *pdev)
int num_subdevs;
int ret;
- ceudev = kzalloc(sizeof(*ceudev), GFP_KERNEL);
+ ceudev = kzalloc_obj(*ceudev, GFP_KERNEL);
if (!ceudev)
return -ENOMEM;
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_dl.c b/drivers/media/platform/renesas/vsp1/vsp1_dl.c
index d732b4ed1180..f6b5623bf7d5 100644
--- a/drivers/media/platform/renesas/vsp1/vsp1_dl.c
+++ b/drivers/media/platform/renesas/vsp1/vsp1_dl.c
@@ -259,7 +259,7 @@ vsp1_dl_body_pool_create(struct vsp1_device *vsp1, unsigned int num_bodies,
size_t dlb_size;
unsigned int i;
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return NULL;
@@ -274,7 +274,7 @@ vsp1_dl_body_pool_create(struct vsp1_device *vsp1, unsigned int num_bodies,
dlb_size = num_entries * sizeof(struct vsp1_dl_entry) + extra_size;
pool->size = dlb_size * num_bodies;
- pool->bodies = kcalloc(num_bodies, sizeof(*pool->bodies), GFP_KERNEL);
+ pool->bodies = kzalloc_objs(*pool->bodies, num_bodies, GFP_KERNEL);
if (!pool->bodies) {
kfree(pool);
return NULL;
@@ -434,7 +434,7 @@ vsp1_dl_cmd_pool_create(struct vsp1_device *vsp1, enum vsp1_extcmd_type type,
unsigned int i;
size_t cmd_size;
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return NULL;
@@ -443,7 +443,7 @@ vsp1_dl_cmd_pool_create(struct vsp1_device *vsp1, enum vsp1_extcmd_type type,
spin_lock_init(&pool->lock);
INIT_LIST_HEAD(&pool->free);
- pool->cmds = kcalloc(num_cmds, sizeof(*pool->cmds), GFP_KERNEL);
+ pool->cmds = kzalloc_objs(*pool->cmds, num_cmds, GFP_KERNEL);
if (!pool->cmds) {
kfree(pool);
return NULL;
@@ -557,7 +557,7 @@ static struct vsp1_dl_list *vsp1_dl_list_alloc(struct vsp1_dl_manager *dlm)
struct vsp1_dl_list *dl;
size_t header_offset;
- dl = kzalloc(sizeof(*dl), GFP_KERNEL);
+ dl = kzalloc_obj(*dl, GFP_KERNEL);
if (!dl)
return NULL;
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_video.c b/drivers/media/platform/renesas/vsp1/vsp1_video.c
index 75f9a1a85d55..e1f1c2a933ab 100644
--- a/drivers/media/platform/renesas/vsp1/vsp1_video.c
+++ b/drivers/media/platform/renesas/vsp1/vsp1_video.c
@@ -565,7 +565,7 @@ static struct vsp1_pipeline *vsp1_video_pipeline_get(struct vsp1_video *video)
* when the last reference is released.
*/
if (!video->rwpf->entity.pipe) {
- pipe = kzalloc(sizeof(*pipe), GFP_KERNEL);
+ pipe = kzalloc_obj(*pipe, GFP_KERNEL);
if (!pipe)
return ERR_PTR(-ENOMEM);
@@ -720,8 +720,8 @@ static int vsp1_video_pipeline_setup_partitions(struct vsp1_pipeline *pipe)
}
pipe->partitions = DIV_ROUND_UP(format->width, div_size);
- pipe->part_table = kcalloc(pipe->partitions, sizeof(*pipe->part_table),
- GFP_KERNEL);
+ pipe->part_table = kzalloc_objs(*pipe->part_table, pipe->partitions,
+ GFP_KERNEL);
if (!pipe->part_table)
return -ENOMEM;
@@ -1074,7 +1074,7 @@ static int vsp1_video_open(struct file *file)
struct v4l2_fh *vfh;
int ret = 0;
- vfh = kzalloc(sizeof(*vfh), GFP_KERNEL);
+ vfh = kzalloc_obj(*vfh, GFP_KERNEL);
if (vfh == NULL)
return -ENOMEM;
diff --git a/drivers/media/platform/rockchip/rga/rga.c b/drivers/media/platform/rockchip/rga/rga.c
index 43f6a8d99381..736072635ed5 100644
--- a/drivers/media/platform/rockchip/rga/rga.c
+++ b/drivers/media/platform/rockchip/rga/rga.c
@@ -370,7 +370,7 @@ static int rga_open(struct file *file)
struct rga_ctx *ctx = NULL;
int ret = 0;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
ctx->rga = rga;
diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec-h264.c b/drivers/media/platform/rockchip/rkvdec/rkvdec-h264.c
index a1af12c97914..377607c94092 100644
--- a/drivers/media/platform/rockchip/rkvdec/rkvdec-h264.c
+++ b/drivers/media/platform/rockchip/rkvdec/rkvdec-h264.c
@@ -375,7 +375,7 @@ static int rkvdec_h264_start(struct rkvdec_ctx *ctx)
if (ret)
return ret;
- h264_ctx = kzalloc(sizeof(*h264_ctx), GFP_KERNEL);
+ h264_ctx = kzalloc_obj(*h264_ctx, GFP_KERNEL);
if (!h264_ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec-hevc.c b/drivers/media/platform/rockchip/rkvdec/rkvdec-hevc.c
index 3276f584f5c7..abb695ebe258 100644
--- a/drivers/media/platform/rockchip/rkvdec/rkvdec-hevc.c
+++ b/drivers/media/platform/rockchip/rkvdec/rkvdec-hevc.c
@@ -528,7 +528,7 @@ static int rkvdec_hevc_start(struct rkvdec_ctx *ctx)
struct rkvdec_hevc_priv_tbl *priv_tbl;
struct rkvdec_hevc_ctx *hevc_ctx;
- hevc_ctx = kzalloc(sizeof(*hevc_ctx), GFP_KERNEL);
+ hevc_ctx = kzalloc_obj(*hevc_ctx, GFP_KERNEL);
if (!hevc_ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu381-h264.c b/drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu381-h264.c
index cd0aa3f3a13d..218377f91a0b 100644
--- a/drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu381-h264.c
+++ b/drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu381-h264.c
@@ -383,7 +383,7 @@ static int rkvdec_h264_start(struct rkvdec_ctx *ctx)
if (ret)
return ret;
- h264_ctx = kzalloc(sizeof(*h264_ctx), GFP_KERNEL);
+ h264_ctx = kzalloc_obj(*h264_ctx, GFP_KERNEL);
if (!h264_ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu381-hevc.c b/drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu381-hevc.c
index 5f1c11ffb9f0..b5f20c8d4285 100644
--- a/drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu381-hevc.c
+++ b/drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu381-hevc.c
@@ -551,7 +551,7 @@ static int rkvdec_hevc_start(struct rkvdec_ctx *ctx)
if (ret)
return ret;
- hevc_ctx = kzalloc(sizeof(*hevc_ctx), GFP_KERNEL);
+ hevc_ctx = kzalloc_obj(*hevc_ctx, GFP_KERNEL);
if (!hevc_ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-h264.c b/drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-h264.c
index 6ab3167addc8..bb53163efe41 100644
--- a/drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-h264.c
+++ b/drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-h264.c
@@ -447,7 +447,7 @@ static int rkvdec_h264_start(struct rkvdec_ctx *ctx)
if (ret)
return ret;
- h264_ctx = kzalloc(sizeof(*h264_ctx), GFP_KERNEL);
+ h264_ctx = kzalloc_obj(*h264_ctx, GFP_KERNEL);
if (!h264_ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-hevc.c b/drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-hevc.c
index 085c0a63a80c..0e5a58e48608 100644
--- a/drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-hevc.c
+++ b/drivers/media/platform/rockchip/rkvdec/rkvdec-vdpu383-hevc.c
@@ -559,7 +559,7 @@ static int rkvdec_hevc_start(struct rkvdec_ctx *ctx)
if (ret)
return ret;
- hevc_ctx = kzalloc(sizeof(*hevc_ctx), GFP_KERNEL);
+ hevc_ctx = kzalloc_obj(*hevc_ctx, GFP_KERNEL);
if (!hevc_ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec-vp9.c b/drivers/media/platform/rockchip/rkvdec/rkvdec-vp9.c
index ba51a7c2fe55..1e66333e4589 100644
--- a/drivers/media/platform/rockchip/rkvdec/rkvdec-vp9.c
+++ b/drivers/media/platform/rockchip/rkvdec/rkvdec-vp9.c
@@ -971,7 +971,7 @@ static int rkvdec_vp9_start(struct rkvdec_ctx *ctx)
unsigned char *count_tbl;
int ret;
- vp9_ctx = kzalloc(sizeof(*vp9_ctx), GFP_KERNEL);
+ vp9_ctx = kzalloc_obj(*vp9_ctx, GFP_KERNEL);
if (!vp9_ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec.c b/drivers/media/platform/rockchip/rkvdec/rkvdec.c
index 967c452ab61f..2d4493434077 100644
--- a/drivers/media/platform/rockchip/rkvdec/rkvdec.c
+++ b/drivers/media/platform/rockchip/rkvdec/rkvdec.c
@@ -1282,7 +1282,7 @@ static int rkvdec_open(struct file *filp)
struct rkvdec_ctx *ctx;
int ret;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/samsung/exynos-gsc/gsc-m2m.c b/drivers/media/platform/samsung/exynos-gsc/gsc-m2m.c
index 722e2531e23f..9d15a2115c23 100644
--- a/drivers/media/platform/samsung/exynos-gsc/gsc-m2m.c
+++ b/drivers/media/platform/samsung/exynos-gsc/gsc-m2m.c
@@ -612,7 +612,7 @@ static int gsc_m2m_open(struct file *file)
if (mutex_lock_interruptible(&gsc->lock))
return -ERESTARTSYS;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
ret = -ENOMEM;
goto unlock;
diff --git a/drivers/media/platform/samsung/exynos4-is/fimc-capture.c b/drivers/media/platform/samsung/exynos4-is/fimc-capture.c
index 5b412afd7d60..0b8327e4a875 100644
--- a/drivers/media/platform/samsung/exynos4-is/fimc-capture.c
+++ b/drivers/media/platform/samsung/exynos4-is/fimc-capture.c
@@ -1718,7 +1718,7 @@ static int fimc_register_capture_device(struct fimc_dev *fimc,
struct fimc_ctx *ctx;
int ret = -ENOMEM;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/samsung/exynos4-is/fimc-m2m.c b/drivers/media/platform/samsung/exynos4-is/fimc-m2m.c
index 562c57f186c6..2aa9c22df72b 100644
--- a/drivers/media/platform/samsung/exynos4-is/fimc-m2m.c
+++ b/drivers/media/platform/samsung/exynos4-is/fimc-m2m.c
@@ -616,7 +616,7 @@ static int fimc_m2m_open(struct file *file)
if (test_bit(ST_CAPT_BUSY, &fimc->state))
goto unlock;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
ret = -ENOMEM;
goto unlock;
diff --git a/drivers/media/platform/samsung/exynos4-is/media-dev.c b/drivers/media/platform/samsung/exynos4-is/media-dev.c
index bc7087eb761a..56d8b7cd3b5a 100644
--- a/drivers/media/platform/samsung/exynos4-is/media-dev.c
+++ b/drivers/media/platform/samsung/exynos4-is/media-dev.c
@@ -373,7 +373,7 @@ static struct exynos_media_pipeline *fimc_md_pipeline_create(
{
struct fimc_pipeline *p;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return NULL;
diff --git a/drivers/media/platform/samsung/s5p-g2d/g2d.c b/drivers/media/platform/samsung/s5p-g2d/g2d.c
index e765dfcc2830..a1d6315d8c4a 100644
--- a/drivers/media/platform/samsung/s5p-g2d/g2d.c
+++ b/drivers/media/platform/samsung/s5p-g2d/g2d.c
@@ -237,7 +237,7 @@ static int g2d_open(struct file *file)
struct g2d_ctx *ctx = NULL;
int ret = 0;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
ctx->dev = dev;
diff --git a/drivers/media/platform/samsung/s5p-jpeg/jpeg-core.c b/drivers/media/platform/samsung/s5p-jpeg/jpeg-core.c
index ff28482759ec..68250d7bb02d 100644
--- a/drivers/media/platform/samsung/s5p-jpeg/jpeg-core.c
+++ b/drivers/media/platform/samsung/s5p-jpeg/jpeg-core.c
@@ -953,7 +953,7 @@ static int s5p_jpeg_open(struct file *file)
struct s5p_jpeg_fmt *out_fmt, *cap_fmt;
int ret = 0;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c
index 4948d734eb02..e79441f01a51 100644
--- a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c
+++ b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c
@@ -794,7 +794,7 @@ static int s5p_mfc_open(struct file *file)
}
dev->num_inst++; /* It is guarded by mfc_mutex in vfd */
/* Allocate memory for context */
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
ret = -ENOMEM;
goto err_alloc;
diff --git a/drivers/media/platform/st/sti/bdisp/bdisp-v4l2.c b/drivers/media/platform/st/sti/bdisp/bdisp-v4l2.c
index 56169b70652d..6f7b3f0db48e 100644
--- a/drivers/media/platform/st/sti/bdisp/bdisp-v4l2.c
+++ b/drivers/media/platform/st/sti/bdisp/bdisp-v4l2.c
@@ -583,7 +583,7 @@ static int bdisp_open(struct file *file)
return -ERESTARTSYS;
/* Allocate memory for both context and node */
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
ret = -ENOMEM;
goto unlock;
diff --git a/drivers/media/platform/st/sti/delta/delta-mjpeg-dec.c b/drivers/media/platform/st/sti/delta/delta-mjpeg-dec.c
index a078f1107300..ed05feac6944 100644
--- a/drivers/media/platform/st/sti/delta/delta-mjpeg-dec.c
+++ b/drivers/media/platform/st/sti/delta/delta-mjpeg-dec.c
@@ -324,7 +324,7 @@ static int delta_mjpeg_open(struct delta_ctx *pctx)
{
struct delta_mjpeg_ctx *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
pctx->priv = ctx;
diff --git a/drivers/media/platform/st/sti/delta/delta-v4l2.c b/drivers/media/platform/st/sti/delta/delta-v4l2.c
index 6c1a53c771f7..b3fb25bd0f60 100644
--- a/drivers/media/platform/st/sti/delta/delta-v4l2.c
+++ b/drivers/media/platform/st/sti/delta/delta-v4l2.c
@@ -164,7 +164,7 @@ static void delta_push_dts(struct delta_ctx *ctx, u64 val)
{
struct delta_dts *dts;
- dts = kzalloc(sizeof(*dts), GFP_KERNEL);
+ dts = kzalloc_obj(*dts, GFP_KERNEL);
if (!dts)
return;
@@ -1629,7 +1629,7 @@ static int delta_open(struct file *file)
mutex_lock(&delta->lock);
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/platform/st/sti/hva/hva-v4l2.c b/drivers/media/platform/st/sti/hva/hva-v4l2.c
index 3581b73a99b8..4b2100b7242b 100644
--- a/drivers/media/platform/st/sti/hva/hva-v4l2.c
+++ b/drivers/media/platform/st/sti/hva/hva-v4l2.c
@@ -1165,7 +1165,7 @@ static int hva_open(struct file *file)
struct hva_ctx *ctx;
int ret;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/media/platform/st/stm32/dma2d/dma2d.c b/drivers/media/platform/st/stm32/dma2d/dma2d.c
index 72488aa922fc..fb11794c6b17 100644
--- a/drivers/media/platform/st/stm32/dma2d/dma2d.c
+++ b/drivers/media/platform/st/stm32/dma2d/dma2d.c
@@ -280,7 +280,7 @@ static int dma2d_open(struct file *file)
struct dma2d_ctx *ctx = NULL;
int ret = 0;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
ctx->dev = dev;
diff --git a/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-bytecap.c b/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-bytecap.c
index 19e6b187be22..ccf3c19883c0 100644
--- a/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-bytecap.c
+++ b/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-bytecap.c
@@ -867,7 +867,7 @@ struct dcmipp_ent_device *dcmipp_bytecap_ent_init(struct device *dev,
int ret = 0;
/* Allocate the dcmipp_bytecap_device struct */
- vcap = kzalloc(sizeof(*vcap), GFP_KERNEL);
+ vcap = kzalloc_obj(*vcap, GFP_KERNEL);
if (!vcap)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-byteproc.c b/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-byteproc.c
index f9e4a3a9ef3f..4704cc4d6111 100644
--- a/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-byteproc.c
+++ b/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-byteproc.c
@@ -581,7 +581,7 @@ dcmipp_byteproc_ent_init(struct device *dev, const char *entity_name,
int ret;
/* Allocate the byteproc struct */
- byteproc = kzalloc(sizeof(*byteproc), GFP_KERNEL);
+ byteproc = kzalloc_obj(*byteproc, GFP_KERNEL);
if (!byteproc)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-common.c b/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-common.c
index 562933e08d62..f6e83e72c940 100644
--- a/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-common.c
+++ b/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-common.c
@@ -20,7 +20,7 @@ struct media_pad *dcmipp_pads_init(u16 num_pads, const unsigned long *pads_flags
unsigned int i;
/* Allocate memory for the pads */
- pads = kcalloc(num_pads, sizeof(*pads), GFP_KERNEL);
+ pads = kzalloc_objs(*pads, num_pads, GFP_KERNEL);
if (!pads)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-input.c b/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-input.c
index c4bc76909b1c..ac19ed966521 100644
--- a/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-input.c
+++ b/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-input.c
@@ -527,7 +527,7 @@ struct dcmipp_ent_device *dcmipp_inp_ent_init(struct device *dev,
int ret;
/* Allocate the inp struct */
- inp = kzalloc(sizeof(*inp), GFP_KERNEL);
+ inp = kzalloc_obj(*inp, GFP_KERNEL);
if (!inp)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c b/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c
index 7c4dd1ac772d..a2e4dae765ee 100644
--- a/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c
+++ b/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c
@@ -709,7 +709,7 @@ static int deinterlace_open(struct file *file)
if (mutex_lock_interruptible(&dev->dev_mutex))
return -ERESTARTSYS;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
mutex_unlock(&dev->dev_mutex);
return -ENOMEM;
diff --git a/drivers/media/platform/sunxi/sun8i-rotate/sun8i_rotate.c b/drivers/media/platform/sunxi/sun8i-rotate/sun8i_rotate.c
index 2deab920884a..05b51e5fc01f 100644
--- a/drivers/media/platform/sunxi/sun8i-rotate/sun8i_rotate.c
+++ b/drivers/media/platform/sunxi/sun8i-rotate/sun8i_rotate.c
@@ -642,7 +642,7 @@ static int rotate_open(struct file *file)
if (mutex_lock_interruptible(&dev->dev_mutex))
return -ERESTARTSYS;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
mutex_unlock(&dev->dev_mutex);
return -ENOMEM;
diff --git a/drivers/media/platform/ti/cal/cal.c b/drivers/media/platform/ti/cal/cal.c
index 3e25ce0c3c3b..c0883b948cbc 100644
--- a/drivers/media/platform/ti/cal/cal.c
+++ b/drivers/media/platform/ti/cal/cal.c
@@ -1012,7 +1012,7 @@ static struct cal_ctx *cal_ctx_create(struct cal_dev *cal, int inst)
struct cal_ctx *ctx;
int ret;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return NULL;
diff --git a/drivers/media/platform/ti/davinci/vpif.c b/drivers/media/platform/ti/davinci/vpif.c
index 969d623fc842..f0d724efb494 100644
--- a/drivers/media/platform/ti/davinci/vpif.c
+++ b/drivers/media/platform/ti/davinci/vpif.c
@@ -450,7 +450,7 @@ static int vpif_probe(struct platform_device *pdev)
if (IS_ERR(vpif_base))
return PTR_ERR(vpif_base);
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -482,7 +482,7 @@ static int vpif_probe(struct platform_device *pdev)
res_irq = DEFINE_RES_IRQ_NAMED(irq, of_node_full_name(pdev->dev.of_node));
res_irq.flags |= irq_get_trigger_type(irq);
- pdev_capture = kzalloc(sizeof(*pdev_capture), GFP_KERNEL);
+ pdev_capture = kzalloc_obj(*pdev_capture, GFP_KERNEL);
if (!pdev_capture) {
ret = -ENOMEM;
goto err_put_rpm;
@@ -501,7 +501,7 @@ static int vpif_probe(struct platform_device *pdev)
if (ret)
goto err_put_pdev_capture;
- pdev_display = kzalloc(sizeof(*pdev_display), GFP_KERNEL);
+ pdev_display = kzalloc_obj(*pdev_display, GFP_KERNEL);
if (!pdev_display) {
ret = -ENOMEM;
goto err_del_pdev_capture;
diff --git a/drivers/media/platform/ti/davinci/vpif_capture.c b/drivers/media/platform/ti/davinci/vpif_capture.c
index 243c6196b024..6b7d19a7529a 100644
--- a/drivers/media/platform/ti/davinci/vpif_capture.c
+++ b/drivers/media/platform/ti/davinci/vpif_capture.c
@@ -1335,8 +1335,7 @@ static int initialize_vpif(void)
/* Allocate memory for six channel objects */
for (i = 0; i < VPIF_CAPTURE_MAX_DEVICES; i++) {
- vpif_obj.dev[i] =
- kzalloc(sizeof(*vpif_obj.dev[i]), GFP_KERNEL);
+ vpif_obj.dev[i] = kzalloc_obj(*vpif_obj.dev[i], GFP_KERNEL);
/* If memory allocation fails, return error */
if (!vpif_obj.dev[i]) {
free_channel_objects_index = i;
@@ -1651,7 +1650,7 @@ static int vpif_probe(struct platform_device *pdev)
vpif_obj.config = pdev->dev.platform_data;
subdev_count = vpif_obj.config->subdev_count;
- vpif_obj.sd = kcalloc(subdev_count, sizeof(*vpif_obj.sd), GFP_KERNEL);
+ vpif_obj.sd = kzalloc_objs(*vpif_obj.sd, subdev_count, GFP_KERNEL);
if (!vpif_obj.sd) {
err = -ENOMEM;
goto probe_subdev_out;
diff --git a/drivers/media/platform/ti/davinci/vpif_display.c b/drivers/media/platform/ti/davinci/vpif_display.c
index 1e7815e9f8e0..b8349ebcde33 100644
--- a/drivers/media/platform/ti/davinci/vpif_display.c
+++ b/drivers/media/platform/ti/davinci/vpif_display.c
@@ -1089,7 +1089,7 @@ static int initialize_vpif(void)
/* Allocate memory for six channel objects */
for (i = 0; i < VPIF_DISPLAY_MAX_DEVICES; i++) {
vpif_obj.dev[i] =
- kzalloc(sizeof(struct channel_obj), GFP_KERNEL);
+ kzalloc_obj(struct channel_obj, GFP_KERNEL);
/* If memory allocation fails, return error */
if (!vpif_obj.dev[i]) {
free_channel_objects_index = i;
@@ -1264,7 +1264,7 @@ static int vpif_probe(struct platform_device *pdev)
vpif_obj.config = pdev->dev.platform_data;
subdev_count = vpif_obj.config->subdev_count;
subdevdata = vpif_obj.config->subdevinfo;
- vpif_obj.sd = kcalloc(subdev_count, sizeof(*vpif_obj.sd), GFP_KERNEL);
+ vpif_obj.sd = kzalloc_objs(*vpif_obj.sd, subdev_count, GFP_KERNEL);
if (!vpif_obj.sd) {
err = -ENOMEM;
goto vpif_unregister;
diff --git a/drivers/media/platform/ti/omap/omap_vout.c b/drivers/media/platform/ti/omap/omap_vout.c
index 22782e9f1f4e..b88c78d724d6 100644
--- a/drivers/media/platform/ti/omap/omap_vout.c
+++ b/drivers/media/platform/ti/omap/omap_vout.c
@@ -1452,7 +1452,7 @@ static int __init omap_vout_create_video_devices(struct platform_device *pdev)
for (k = 0; k < pdev->num_resources; k++) {
- vout = kzalloc(sizeof(struct omap_vout_device), GFP_KERNEL);
+ vout = kzalloc_obj(struct omap_vout_device, GFP_KERNEL);
if (!vout) {
dev_err(&pdev->dev, ": could not allocate memory\n");
return -ENOMEM;
@@ -1611,7 +1611,7 @@ static int __init omap_vout_probe(struct platform_device *pdev)
goto err_dss_init;
}
- vid_dev = kzalloc(sizeof(struct omap2video_device), GFP_KERNEL);
+ vid_dev = kzalloc_obj(struct omap2video_device, GFP_KERNEL);
if (vid_dev == NULL) {
ret = -ENOMEM;
goto err_dss_init;
diff --git a/drivers/media/platform/ti/omap3isp/isp.c b/drivers/media/platform/ti/omap3isp/isp.c
index 8ac2bdcdf87b..23a433455459 100644
--- a/drivers/media/platform/ti/omap3isp/isp.c
+++ b/drivers/media/platform/ti/omap3isp/isp.c
@@ -2231,7 +2231,7 @@ static int isp_probe(struct platform_device *pdev)
int ret;
int i, m;
- isp = kzalloc(sizeof(*isp), GFP_KERNEL);
+ isp = kzalloc_obj(*isp, GFP_KERNEL);
if (!isp) {
dev_err(&pdev->dev, "could not allocate memory\n");
return -ENOMEM;
diff --git a/drivers/media/platform/ti/omap3isp/ispccdc.c b/drivers/media/platform/ti/omap3isp/ispccdc.c
index 9dbf06ac058d..2e2daadbd575 100644
--- a/drivers/media/platform/ti/omap3isp/ispccdc.c
+++ b/drivers/media/platform/ti/omap3isp/ispccdc.c
@@ -419,7 +419,7 @@ static int ccdc_lsc_config(struct isp_ccdc_device *ccdc,
return -EINVAL;
}
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (req == NULL)
return -ENOMEM;
diff --git a/drivers/media/platform/ti/omap3isp/isph3a_aewb.c b/drivers/media/platform/ti/omap3isp/isph3a_aewb.c
index ae93da9c4542..1da1b71773bb 100644
--- a/drivers/media/platform/ti/omap3isp/isph3a_aewb.c
+++ b/drivers/media/platform/ti/omap3isp/isph3a_aewb.c
@@ -291,7 +291,7 @@ int omap3isp_h3a_aewb_init(struct isp_device *isp)
struct omap3isp_h3a_aewb_config *aewb_recover_cfg = NULL;
int ret;
- aewb_cfg = kzalloc(sizeof(*aewb_cfg), GFP_KERNEL);
+ aewb_cfg = kzalloc_obj(*aewb_cfg, GFP_KERNEL);
if (!aewb_cfg)
return -ENOMEM;
@@ -301,7 +301,7 @@ int omap3isp_h3a_aewb_init(struct isp_device *isp)
aewb->isp = isp;
/* Set recover state configuration */
- aewb_recover_cfg = kzalloc(sizeof(*aewb_recover_cfg), GFP_KERNEL);
+ aewb_recover_cfg = kzalloc_obj(*aewb_recover_cfg, GFP_KERNEL);
if (!aewb_recover_cfg) {
dev_err(aewb->isp->dev,
"AEWB: cannot allocate memory for recover configuration.\n");
diff --git a/drivers/media/platform/ti/omap3isp/isph3a_af.c b/drivers/media/platform/ti/omap3isp/isph3a_af.c
index ca478da4ad34..ff806d162529 100644
--- a/drivers/media/platform/ti/omap3isp/isph3a_af.c
+++ b/drivers/media/platform/ti/omap3isp/isph3a_af.c
@@ -354,7 +354,7 @@ int omap3isp_h3a_af_init(struct isp_device *isp)
struct omap3isp_h3a_af_config *af_recover_cfg = NULL;
int ret;
- af_cfg = kzalloc(sizeof(*af_cfg), GFP_KERNEL);
+ af_cfg = kzalloc_obj(*af_cfg, GFP_KERNEL);
if (af_cfg == NULL)
return -ENOMEM;
@@ -364,7 +364,7 @@ int omap3isp_h3a_af_init(struct isp_device *isp)
af->isp = isp;
/* Set recover state configuration */
- af_recover_cfg = kzalloc(sizeof(*af_recover_cfg), GFP_KERNEL);
+ af_recover_cfg = kzalloc_obj(*af_recover_cfg, GFP_KERNEL);
if (!af_recover_cfg) {
dev_err(af->isp->dev,
"AF: cannot allocate memory for recover configuration.\n");
diff --git a/drivers/media/platform/ti/omap3isp/isphist.c b/drivers/media/platform/ti/omap3isp/isphist.c
index 7851ad13d84f..8459fd9d5fc4 100644
--- a/drivers/media/platform/ti/omap3isp/isphist.c
+++ b/drivers/media/platform/ti/omap3isp/isphist.c
@@ -477,7 +477,7 @@ int omap3isp_hist_init(struct isp_device *isp)
struct omap3isp_hist_config *hist_cfg;
int ret;
- hist_cfg = kzalloc(sizeof(*hist_cfg), GFP_KERNEL);
+ hist_cfg = kzalloc_obj(*hist_cfg, GFP_KERNEL);
if (hist_cfg == NULL)
return -ENOMEM;
diff --git a/drivers/media/platform/ti/omap3isp/ispstat.c b/drivers/media/platform/ti/omap3isp/ispstat.c
index 64bc71d830c4..ad34cc2c6f05 100644
--- a/drivers/media/platform/ti/omap3isp/ispstat.c
+++ b/drivers/media/platform/ti/omap3isp/ispstat.c
@@ -1047,7 +1047,7 @@ int omap3isp_stat_init(struct ispstat *stat, const char *name,
{
int ret;
- stat->buf = kcalloc(STAT_MAX_BUFS, sizeof(*stat->buf), GFP_KERNEL);
+ stat->buf = kzalloc_objs(*stat->buf, STAT_MAX_BUFS, GFP_KERNEL);
if (!stat->buf)
return -ENOMEM;
diff --git a/drivers/media/platform/ti/omap3isp/ispvideo.c b/drivers/media/platform/ti/omap3isp/ispvideo.c
index 86cb27b6ca4e..f2a48387d158 100644
--- a/drivers/media/platform/ti/omap3isp/ispvideo.c
+++ b/drivers/media/platform/ti/omap3isp/ispvideo.c
@@ -1371,7 +1371,7 @@ static int isp_video_open(struct file *file)
struct vb2_queue *queue;
int ret = 0;
- handle = kzalloc(sizeof(*handle), GFP_KERNEL);
+ handle = kzalloc_obj(*handle, GFP_KERNEL);
if (handle == NULL)
return -ENOMEM;
diff --git a/drivers/media/platform/ti/vpe/vip.c b/drivers/media/platform/ti/vpe/vip.c
index d4236ac6d867..33805f3b0a81 100644
--- a/drivers/media/platform/ti/vpe/vip.c
+++ b/drivers/media/platform/ti/vpe/vip.c
@@ -3035,7 +3035,7 @@ static int alloc_stream(struct vip_port *port, int stream_id, int vfl_type)
struct list_head *pos, *tmp;
int ret, i;
- stream = kzalloc(sizeof(*stream), GFP_KERNEL);
+ stream = kzalloc_obj(*stream, GFP_KERNEL);
if (!stream)
return -ENOMEM;
@@ -3079,7 +3079,7 @@ static int alloc_stream(struct vip_port *port, int stream_id, int vfl_type)
/* Allocate/populate Drop queue entries */
INIT_LIST_HEAD(&stream->dropq);
for (i = 0; i < VIP_DROPQ_SIZE; i++) {
- buf = kzalloc(sizeof(*buf), GFP_ATOMIC);
+ buf = kzalloc_obj(*buf, GFP_ATOMIC);
if (!buf) {
ret = -ENOMEM;
goto do_free_dropq;
diff --git a/drivers/media/platform/ti/vpe/vpe.c b/drivers/media/platform/ti/vpe/vpe.c
index 1a549775cabe..5effa0558f0f 100644
--- a/drivers/media/platform/ti/vpe/vpe.c
+++ b/drivers/media/platform/ti/vpe/vpe.c
@@ -2272,7 +2272,7 @@ static int vpe_open(struct file *file)
vpe_dbg(dev, "vpe_open\n");
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/verisilicon/hantro_drv.c b/drivers/media/platform/verisilicon/hantro_drv.c
index 94f58f4e4a4e..0a14970f0472 100644
--- a/drivers/media/platform/verisilicon/hantro_drv.c
+++ b/drivers/media/platform/verisilicon/hantro_drv.c
@@ -640,7 +640,7 @@ static int hantro_open(struct file *filp)
* helper functions used here.
*/
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/media/platform/via/via-camera.c b/drivers/media/platform/via/via-camera.c
index 5702eff664d4..fe8d94906e37 100644
--- a/drivers/media/platform/via/via-camera.c
+++ b/drivers/media/platform/via/via-camera.c
@@ -1164,7 +1164,7 @@ static int viacam_probe(struct platform_device *pdev)
/*
* Basic structure initialization.
*/
- cam = kzalloc (sizeof(struct via_camera), GFP_KERNEL);
+ cam = kzalloc_obj(struct via_camera, GFP_KERNEL);
if (cam == NULL)
return -ENOMEM;
via_cam_info = cam;
diff --git a/drivers/media/radio/dsbr100.c b/drivers/media/radio/dsbr100.c
index 9a45cda05779..dab1deea05ea 100644
--- a/drivers/media/radio/dsbr100.c
+++ b/drivers/media/radio/dsbr100.c
@@ -338,7 +338,7 @@ static int usb_dsbr100_probe(struct usb_interface *intf,
struct v4l2_device *v4l2_dev;
int retval;
- radio = kzalloc(sizeof(struct dsbr100_device), GFP_KERNEL);
+ radio = kzalloc_obj(struct dsbr100_device, GFP_KERNEL);
if (!radio)
return -ENOMEM;
diff --git a/drivers/media/radio/radio-aimslab.c b/drivers/media/radio/radio-aimslab.c
index 2c1d413e8636..5a477ac9487b 100644
--- a/drivers/media/radio/radio-aimslab.c
+++ b/drivers/media/radio/radio-aimslab.c
@@ -67,7 +67,7 @@ struct rtrack {
static struct radio_isa_card *rtrack_alloc(void)
{
- struct rtrack *rt = kzalloc(sizeof(struct rtrack), GFP_KERNEL);
+ struct rtrack *rt = kzalloc_obj(struct rtrack, GFP_KERNEL);
if (rt)
rt->curvol = 0xff;
diff --git a/drivers/media/radio/radio-aztech.c b/drivers/media/radio/radio-aztech.c
index 0a4667bb7034..4e4721ed61e7 100644
--- a/drivers/media/radio/radio-aztech.c
+++ b/drivers/media/radio/radio-aztech.c
@@ -82,7 +82,7 @@ static void aztech_set_pins(void *handle, u8 pins)
static struct radio_isa_card *aztech_alloc(void)
{
- struct aztech *az = kzalloc(sizeof(*az), GFP_KERNEL);
+ struct aztech *az = kzalloc_obj(*az, GFP_KERNEL);
return az ? &az->isa : NULL;
}
diff --git a/drivers/media/radio/radio-gemtek.c b/drivers/media/radio/radio-gemtek.c
index a3265f1dd189..5f2637ffabae 100644
--- a/drivers/media/radio/radio-gemtek.c
+++ b/drivers/media/radio/radio-gemtek.c
@@ -179,7 +179,7 @@ static unsigned long gemtek_convfreq(unsigned long freq)
static struct radio_isa_card *gemtek_alloc(void)
{
- struct gemtek *gt = kzalloc(sizeof(*gt), GFP_KERNEL);
+ struct gemtek *gt = kzalloc_obj(*gt, GFP_KERNEL);
if (gt)
gt->muted = true;
diff --git a/drivers/media/radio/radio-keene.c b/drivers/media/radio/radio-keene.c
index c133305fd019..a26da2e9fbab 100644
--- a/drivers/media/radio/radio-keene.c
+++ b/drivers/media/radio/radio-keene.c
@@ -311,7 +311,7 @@ static int usb_keene_probe(struct usb_interface *intf,
if (dev->product && strcmp(dev->product, "B-LINK USB Audio "))
return -ENODEV;
- radio = kzalloc(sizeof(struct keene_device), GFP_KERNEL);
+ radio = kzalloc_obj(struct keene_device, GFP_KERNEL);
if (radio)
radio->buffer = kmalloc(BUFFER_LENGTH, GFP_KERNEL);
diff --git a/drivers/media/radio/radio-ma901.c b/drivers/media/radio/radio-ma901.c
index 657c3dda6648..e768c40ab73d 100644
--- a/drivers/media/radio/radio-ma901.c
+++ b/drivers/media/radio/radio-ma901.c
@@ -346,7 +346,7 @@ static int usb_ma901radio_probe(struct usb_interface *intf,
|| strncmp(dev->manufacturer, "www.masterkit.ru", 16) != 0))
return -ENODEV;
- radio = kzalloc(sizeof(struct ma901radio_device), GFP_KERNEL);
+ radio = kzalloc_obj(struct ma901radio_device, GFP_KERNEL);
if (!radio) {
dev_err(&intf->dev, "kzalloc for ma901radio_device failed\n");
retval = -ENOMEM;
diff --git a/drivers/media/radio/radio-maxiradio.c b/drivers/media/radio/radio-maxiradio.c
index 1a5dbae24ef4..cfa0568791fd 100644
--- a/drivers/media/radio/radio-maxiradio.c
+++ b/drivers/media/radio/radio-maxiradio.c
@@ -122,7 +122,7 @@ static int maxiradio_probe(struct pci_dev *pdev,
struct v4l2_device *v4l2_dev;
int retval = -ENOMEM;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (dev == NULL) {
dev_err(&pdev->dev, "not enough memory\n");
return -ENOMEM;
diff --git a/drivers/media/radio/radio-mr800.c b/drivers/media/radio/radio-mr800.c
index cb0437b4c331..2e74f915c873 100644
--- a/drivers/media/radio/radio-mr800.c
+++ b/drivers/media/radio/radio-mr800.c
@@ -501,7 +501,7 @@ static int usb_amradio_probe(struct usb_interface *intf,
struct amradio_device *radio;
int retval;
- radio = kzalloc(sizeof(struct amradio_device), GFP_KERNEL);
+ radio = kzalloc_obj(struct amradio_device, GFP_KERNEL);
if (!radio) {
dev_err(&intf->dev, "kmalloc for amradio_device failed\n");
diff --git a/drivers/media/radio/radio-raremono.c b/drivers/media/radio/radio-raremono.c
index f60775b005e1..45b491ad1601 100644
--- a/drivers/media/radio/radio-raremono.c
+++ b/drivers/media/radio/radio-raremono.c
@@ -301,7 +301,7 @@ static int usb_raremono_probe(struct usb_interface *intf,
struct raremono_device *radio;
int retval = 0;
- radio = kzalloc(sizeof(*radio), GFP_KERNEL);
+ radio = kzalloc_obj(*radio, GFP_KERNEL);
if (!radio)
return -ENOMEM;
radio->buffer = kmalloc(BUFFER_LENGTH, GFP_KERNEL);
diff --git a/drivers/media/radio/radio-rtrack2.c b/drivers/media/radio/radio-rtrack2.c
index efc02069bf9d..1e24e2d9cbbc 100644
--- a/drivers/media/radio/radio-rtrack2.c
+++ b/drivers/media/radio/radio-rtrack2.c
@@ -47,7 +47,7 @@ MODULE_PARM_DESC(radio_nr, "Radio device numbers");
static struct radio_isa_card *rtrack2_alloc(void)
{
- return kzalloc(sizeof(struct radio_isa_card), GFP_KERNEL);
+ return kzalloc_obj(struct radio_isa_card, GFP_KERNEL);
}
static void zero(struct radio_isa_card *isa)
diff --git a/drivers/media/radio/radio-sf16fmr2.c b/drivers/media/radio/radio-sf16fmr2.c
index d0dde55b7930..cdd489ca2d9a 100644
--- a/drivers/media/radio/radio-sf16fmr2.c
+++ b/drivers/media/radio/radio-sf16fmr2.c
@@ -252,7 +252,7 @@ static int fmr2_probe(struct fmr2 *fmr2, struct device *pdev, int io)
static int fmr2_isa_match(struct device *pdev, unsigned int ndev)
{
- struct fmr2 *fmr2 = kzalloc(sizeof(*fmr2), GFP_KERNEL);
+ struct fmr2 *fmr2 = kzalloc_obj(*fmr2, GFP_KERNEL);
if (!fmr2)
return 0;
@@ -269,7 +269,7 @@ static int fmr2_isa_match(struct device *pdev, unsigned int ndev)
static int fmr2_pnp_probe(struct pnp_dev *pdev, const struct pnp_device_id *id)
{
int ret;
- struct fmr2 *fmr2 = kzalloc(sizeof(*fmr2), GFP_KERNEL);
+ struct fmr2 *fmr2 = kzalloc_obj(*fmr2, GFP_KERNEL);
if (!fmr2)
return -ENOMEM;
diff --git a/drivers/media/radio/radio-shark.c b/drivers/media/radio/radio-shark.c
index 127a3be0e0f0..381196d6c675 100644
--- a/drivers/media/radio/radio-shark.c
+++ b/drivers/media/radio/radio-shark.c
@@ -327,7 +327,7 @@ static int usb_shark_probe(struct usb_interface *intf,
return -EINVAL;
}
- shark = kzalloc(sizeof(struct shark_device), GFP_KERNEL);
+ shark = kzalloc_obj(struct shark_device, GFP_KERNEL);
if (!shark)
return retval;
diff --git a/drivers/media/radio/radio-shark2.c b/drivers/media/radio/radio-shark2.c
index e3e6aa87fe08..9e1d00d6bac1 100644
--- a/drivers/media/radio/radio-shark2.c
+++ b/drivers/media/radio/radio-shark2.c
@@ -293,7 +293,7 @@ static int usb_shark_probe(struct usb_interface *intf,
return -EINVAL;
}
- shark = kzalloc(sizeof(struct shark_device), GFP_KERNEL);
+ shark = kzalloc_obj(struct shark_device, GFP_KERNEL);
if (!shark)
return retval;
diff --git a/drivers/media/radio/radio-tea5764.c b/drivers/media/radio/radio-tea5764.c
index dd85b0b1bcd9..ec953b8cb7ab 100644
--- a/drivers/media/radio/radio-tea5764.c
+++ b/drivers/media/radio/radio-tea5764.c
@@ -420,7 +420,7 @@ static int tea5764_i2c_probe(struct i2c_client *client)
int ret;
PDEBUG("probe");
- radio = kzalloc(sizeof(struct tea5764_device), GFP_KERNEL);
+ radio = kzalloc_obj(struct tea5764_device, GFP_KERNEL);
if (!radio)
return -ENOMEM;
diff --git a/drivers/media/radio/radio-terratec.c b/drivers/media/radio/radio-terratec.c
index 43817dd0a0fe..a160bcc2643f 100644
--- a/drivers/media/radio/radio-terratec.c
+++ b/drivers/media/radio/radio-terratec.c
@@ -56,7 +56,7 @@ MODULE_PARM_DESC(radio_nr, "Radio device number");
static struct radio_isa_card *terratec_alloc(void)
{
- return kzalloc(sizeof(struct radio_isa_card), GFP_KERNEL);
+ return kzalloc_obj(struct radio_isa_card, GFP_KERNEL);
}
static int terratec_s_mute_volume(struct radio_isa_card *isa, bool mute, int vol)
diff --git a/drivers/media/radio/radio-trust.c b/drivers/media/radio/radio-trust.c
index dfb8b62f0e2b..31d5e5efafaa 100644
--- a/drivers/media/radio/radio-trust.c
+++ b/drivers/media/radio/radio-trust.c
@@ -55,7 +55,7 @@ struct trust {
static struct radio_isa_card *trust_alloc(void)
{
- struct trust *tr = kzalloc(sizeof(*tr), GFP_KERNEL);
+ struct trust *tr = kzalloc_obj(*tr, GFP_KERNEL);
return tr ? &tr->isa : NULL;
}
diff --git a/drivers/media/radio/radio-typhoon.c b/drivers/media/radio/radio-typhoon.c
index 1aa856df70df..4c49d9103135 100644
--- a/drivers/media/radio/radio-typhoon.c
+++ b/drivers/media/radio/radio-typhoon.c
@@ -75,7 +75,7 @@ struct typhoon {
static struct radio_isa_card *typhoon_alloc(void)
{
- struct typhoon *ty = kzalloc(sizeof(*ty), GFP_KERNEL);
+ struct typhoon *ty = kzalloc_obj(*ty, GFP_KERNEL);
return ty ? &ty->isa : NULL;
}
diff --git a/drivers/media/radio/radio-zoltrix.c b/drivers/media/radio/radio-zoltrix.c
index e043bee52384..cf1a823e0aa9 100644
--- a/drivers/media/radio/radio-zoltrix.c
+++ b/drivers/media/radio/radio-zoltrix.c
@@ -79,7 +79,7 @@ struct zoltrix {
static struct radio_isa_card *zoltrix_alloc(void)
{
- struct zoltrix *zol = kzalloc(sizeof(*zol), GFP_KERNEL);
+ struct zoltrix *zol = kzalloc_obj(*zol, GFP_KERNEL);
return zol ? &zol->isa : NULL;
}
diff --git a/drivers/media/radio/saa7706h.c b/drivers/media/radio/saa7706h.c
index d9eecddffd91..71850c3b02a4 100644
--- a/drivers/media/radio/saa7706h.c
+++ b/drivers/media/radio/saa7706h.c
@@ -344,7 +344,7 @@ static int saa7706h_probe(struct i2c_client *client)
v4l_info(client, "chip found @ 0x%02x (%s)\n",
client->addr << 1, client->adapter->name);
- state = kzalloc(sizeof(struct saa7706h_state), GFP_KERNEL);
+ state = kzalloc_obj(struct saa7706h_state, GFP_KERNEL);
if (state == NULL)
return -ENOMEM;
sd = &state->sd;
diff --git a/drivers/media/radio/si470x/radio-si470x-usb.c b/drivers/media/radio/si470x/radio-si470x-usb.c
index aa7a580dbecc..79208c0b5c4a 100644
--- a/drivers/media/radio/si470x/radio-si470x-usb.c
+++ b/drivers/media/radio/si470x/radio-si470x-usb.c
@@ -570,7 +570,7 @@ static int si470x_usb_driver_probe(struct usb_interface *intf,
unsigned char version_warning = 0;
/* private data allocation and initialization */
- radio = kzalloc(sizeof(struct si470x_device), GFP_KERNEL);
+ radio = kzalloc_obj(struct si470x_device, GFP_KERNEL);
if (!radio) {
retval = -ENOMEM;
goto err_initial;
diff --git a/drivers/media/radio/si4713/radio-usb-si4713.c b/drivers/media/radio/si4713/radio-usb-si4713.c
index 2cf36c8abdde..a4bfda695413 100644
--- a/drivers/media/radio/si4713/radio-usb-si4713.c
+++ b/drivers/media/radio/si4713/radio-usb-si4713.c
@@ -420,7 +420,7 @@ static int usb_si4713_probe(struct usb_interface *intf,
id->idVendor, id->idProduct);
/* Initialize local device structure */
- radio = kzalloc(sizeof(struct si4713_usb_device), GFP_KERNEL);
+ radio = kzalloc_obj(struct si4713_usb_device, GFP_KERNEL);
if (radio)
radio->buffer = kmalloc(BUFFER_LENGTH, GFP_KERNEL);
diff --git a/drivers/media/radio/tef6862.c b/drivers/media/radio/tef6862.c
index b00ccf651922..7f95498a5551 100644
--- a/drivers/media/radio/tef6862.c
+++ b/drivers/media/radio/tef6862.c
@@ -153,7 +153,7 @@ static int tef6862_probe(struct i2c_client *client)
v4l_info(client, "chip found @ 0x%02x (%s)\n",
client->addr << 1, client->adapter->name);
- state = kzalloc(sizeof(struct tef6862_state), GFP_KERNEL);
+ state = kzalloc_obj(struct tef6862_state, GFP_KERNEL);
if (state == NULL)
return -ENOMEM;
state->freq = TEF6862_LO_FREQ;
diff --git a/drivers/media/rc/ati_remote.c b/drivers/media/rc/ati_remote.c
index a733914a2574..6bde5c913e99 100644
--- a/drivers/media/rc/ati_remote.c
+++ b/drivers/media/rc/ati_remote.c
@@ -839,7 +839,7 @@ static int ati_remote_probe(struct usb_interface *interface,
return -ENODEV;
}
- ati_remote = kzalloc(sizeof (struct ati_remote), GFP_KERNEL);
+ ati_remote = kzalloc_obj(struct ati_remote, GFP_KERNEL);
rc_dev = rc_allocate_device(RC_DRIVER_SCANCODE);
if (!ati_remote || !rc_dev)
goto exit_free_dev_rdev;
diff --git a/drivers/media/rc/ene_ir.c b/drivers/media/rc/ene_ir.c
index d6c54a3bccc2..6e61173ba233 100644
--- a/drivers/media/rc/ene_ir.c
+++ b/drivers/media/rc/ene_ir.c
@@ -993,7 +993,7 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id)
struct ene_device *dev;
/* allocate memory */
- dev = kzalloc(sizeof(struct ene_device), GFP_KERNEL);
+ dev = kzalloc_obj(struct ene_device, GFP_KERNEL);
rdev = rc_allocate_device(RC_DRIVER_IR_RAW);
if (!dev || !rdev)
goto exit_free_dev_rdev;
diff --git a/drivers/media/rc/fintek-cir.c b/drivers/media/rc/fintek-cir.c
index 3fb0968efd57..92a38d04d979 100644
--- a/drivers/media/rc/fintek-cir.c
+++ b/drivers/media/rc/fintek-cir.c
@@ -465,7 +465,7 @@ static int fintek_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id
struct rc_dev *rdev;
int ret = -ENOMEM;
- fintek = kzalloc(sizeof(struct fintek_dev), GFP_KERNEL);
+ fintek = kzalloc_obj(struct fintek_dev, GFP_KERNEL);
if (!fintek)
return ret;
diff --git a/drivers/media/rc/iguanair.c b/drivers/media/rc/iguanair.c
index 8af94246e591..bb5bd62c8645 100644
--- a/drivers/media/rc/iguanair.c
+++ b/drivers/media/rc/iguanair.c
@@ -392,7 +392,7 @@ static int iguanair_probe(struct usb_interface *intf,
if (idesc->desc.bNumEndpoints < 2)
return -ENODEV;
- ir = kzalloc(sizeof(*ir), GFP_KERNEL);
+ ir = kzalloc_obj(*ir, GFP_KERNEL);
rc = rc_allocate_device(RC_DRIVER_IR_RAW);
if (!ir || !rc) {
ret = -ENOMEM;
diff --git a/drivers/media/rc/imon.c b/drivers/media/rc/imon.c
index 35b9e07003d8..0cb2ad180728 100644
--- a/drivers/media/rc/imon.c
+++ b/drivers/media/rc/imon.c
@@ -614,7 +614,7 @@ static int send_packet(struct imon_context *ictx)
ictx->tx_urb->actual_length = 0;
} else {
/* fill request into kmalloc'ed space: */
- control_req = kmalloc(sizeof(*control_req), GFP_KERNEL);
+ control_req = kmalloc_obj(*control_req, GFP_KERNEL);
if (control_req == NULL)
return -ENOMEM;
@@ -2233,7 +2233,7 @@ static struct imon_context *imon_init_intf0(struct usb_interface *intf,
struct usb_host_interface *iface_desc;
int ret = -ENOMEM;
- ictx = kzalloc(sizeof(*ictx), GFP_KERNEL);
+ ictx = kzalloc_obj(*ictx, GFP_KERNEL);
if (!ictx)
goto exit;
diff --git a/drivers/media/rc/ir_toy.c b/drivers/media/rc/ir_toy.c
index 533faa117517..cf3b27817131 100644
--- a/drivers/media/rc/ir_toy.c
+++ b/drivers/media/rc/ir_toy.c
@@ -418,7 +418,7 @@ static int irtoy_probe(struct usb_interface *intf,
return -ENODEV;
}
- irtoy = kzalloc(sizeof(*irtoy), GFP_KERNEL);
+ irtoy = kzalloc_obj(*irtoy, GFP_KERNEL);
if (!irtoy)
return -ENOMEM;
diff --git a/drivers/media/rc/ite-cir.c b/drivers/media/rc/ite-cir.c
index 2bacecb02262..448f5c5db616 100644
--- a/drivers/media/rc/ite-cir.c
+++ b/drivers/media/rc/ite-cir.c
@@ -1304,7 +1304,7 @@ static int ite_probe(struct pnp_dev *pdev, const struct pnp_device_id
int model_no;
int io_rsrc_no;
- itdev = kzalloc(sizeof(struct ite_dev), GFP_KERNEL);
+ itdev = kzalloc_obj(struct ite_dev, GFP_KERNEL);
if (!itdev)
return ret;
diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c
index 7d4942925993..735b0630b172 100644
--- a/drivers/media/rc/lirc_dev.c
+++ b/drivers/media/rc/lirc_dev.c
@@ -128,7 +128,7 @@ static int lirc_open(struct inode *inode, struct file *file)
{
struct rc_dev *dev = container_of(inode->i_cdev, struct rc_dev,
lirc_cdev);
- struct lirc_fh *fh = kzalloc(sizeof(*fh), GFP_KERNEL);
+ struct lirc_fh *fh = kzalloc_obj(*fh, GFP_KERNEL);
unsigned long flags;
int retval;
@@ -267,7 +267,7 @@ static ssize_t lirc_transmit(struct file *file, const char __user *buf,
goto out_unlock;
}
- raw = kmalloc_array(LIRCBUF_SIZE, sizeof(*raw), GFP_KERNEL);
+ raw = kmalloc_objs(*raw, LIRCBUF_SIZE, GFP_KERNEL);
if (!raw) {
ret = -ENOMEM;
goto out_unlock;
diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c
index 044767eb3a38..d35fff006ac9 100644
--- a/drivers/media/rc/mceusb.c
+++ b/drivers/media/rc/mceusb.c
@@ -1715,7 +1715,7 @@ static int mceusb_dev_probe(struct usb_interface *intf,
pipe = usb_rcvbulkpipe(dev, ep_in->bEndpointAddress);
maxp = usb_maxpacket(dev, pipe);
- ir = kzalloc(sizeof(struct mceusb_dev), GFP_KERNEL);
+ ir = kzalloc_obj(struct mceusb_dev, GFP_KERNEL);
if (!ir)
goto mem_alloc_fail;
diff --git a/drivers/media/rc/nuvoton-cir.c b/drivers/media/rc/nuvoton-cir.c
index 2214d41ef579..4cf74ac2d76c 100644
--- a/drivers/media/rc/nuvoton-cir.c
+++ b/drivers/media/rc/nuvoton-cir.c
@@ -639,7 +639,7 @@ static int nvt_ir_raw_set_wakeup_filter(struct rc_dev *dev,
if (!sc_filter->mask)
return 0;
- raw = kmalloc_array(WAKEUP_MAX_SIZE, sizeof(*raw), GFP_KERNEL);
+ raw = kmalloc_objs(*raw, WAKEUP_MAX_SIZE, GFP_KERNEL);
if (!raw)
return -ENOMEM;
diff --git a/drivers/media/rc/rc-ir-raw.c b/drivers/media/rc/rc-ir-raw.c
index 5dafe11f61c6..d1f8bb6af874 100644
--- a/drivers/media/rc/rc-ir-raw.c
+++ b/drivers/media/rc/rc-ir-raw.c
@@ -615,7 +615,7 @@ int ir_raw_event_prepare(struct rc_dev *dev)
if (!dev)
return -EINVAL;
- dev->raw = kzalloc(sizeof(*dev->raw), GFP_KERNEL);
+ dev->raw = kzalloc_obj(*dev->raw, GFP_KERNEL);
if (!dev->raw)
return -ENOMEM;
diff --git a/drivers/media/rc/rc-loopback.c b/drivers/media/rc/rc-loopback.c
index 8288366f891f..959a1167d376 100644
--- a/drivers/media/rc/rc-loopback.c
+++ b/drivers/media/rc/rc-loopback.c
@@ -185,7 +185,7 @@ static int loop_set_wakeup_filter(struct rc_dev *dev,
return 0;
/* encode the specified filter and loop it back */
- raw = kmalloc_array(max, sizeof(*raw), GFP_KERNEL);
+ raw = kmalloc_objs(*raw, max, GFP_KERNEL);
if (!raw)
return -ENOMEM;
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
index b9bf5cdcde4a..b67af602fbe6 100644
--- a/drivers/media/rc/rc-main.c
+++ b/drivers/media/rc/rc-main.c
@@ -1701,7 +1701,7 @@ struct rc_dev *rc_allocate_device(enum rc_driver_type type)
{
struct rc_dev *dev;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return NULL;
diff --git a/drivers/media/rc/redrat3.c b/drivers/media/rc/redrat3.c
index a49173f54a4d..2471bb4d66b8 100644
--- a/drivers/media/rc/redrat3.c
+++ b/drivers/media/rc/redrat3.c
@@ -502,7 +502,7 @@ static int redrat3_set_timeout(struct rc_dev *rc_dev, unsigned int timeoutus)
__be32 *timeout;
int ret;
- timeout = kmalloc(sizeof(*timeout), GFP_KERNEL);
+ timeout = kmalloc_obj(*timeout, GFP_KERNEL);
if (!timeout)
return -ENOMEM;
@@ -768,13 +768,11 @@ static int redrat3_transmit_ir(struct rc_dev *rcdev, unsigned *txbuf,
/* rr3 will disable rc detector on transmit */
rr3->transmitting = true;
- sample_lens = kcalloc(RR3_DRIVER_MAXLENS,
- sizeof(*sample_lens),
- GFP_KERNEL);
+ sample_lens = kzalloc_objs(*sample_lens, RR3_DRIVER_MAXLENS, GFP_KERNEL);
if (!sample_lens)
return -ENOMEM;
- irdata = kzalloc(sizeof(*irdata), GFP_KERNEL);
+ irdata = kzalloc_obj(*irdata, GFP_KERNEL);
if (!irdata) {
ret = -ENOMEM;
goto out;
@@ -1022,7 +1020,7 @@ static int redrat3_dev_probe(struct usb_interface *intf,
}
/* allocate memory for our device state and initialize it */
- rr3 = kzalloc(sizeof(*rr3), GFP_KERNEL);
+ rr3 = kzalloc_obj(*rr3, GFP_KERNEL);
if (!rr3)
goto no_endpoints;
diff --git a/drivers/media/rc/streamzap.c b/drivers/media/rc/streamzap.c
index d3b48a0dd1f4..38e0db1b4964 100644
--- a/drivers/media/rc/streamzap.c
+++ b/drivers/media/rc/streamzap.c
@@ -285,7 +285,7 @@ static int streamzap_probe(struct usb_interface *intf,
int pipe, maxp;
/* Allocate space for device driver specific data */
- sz = kzalloc(sizeof(struct streamzap_ir), GFP_KERNEL);
+ sz = kzalloc_obj(struct streamzap_ir, GFP_KERNEL);
if (!sz)
return -ENOMEM;
diff --git a/drivers/media/rc/ttusbir.c b/drivers/media/rc/ttusbir.c
index 560a26f3965c..8b70c1e809ed 100644
--- a/drivers/media/rc/ttusbir.c
+++ b/drivers/media/rc/ttusbir.c
@@ -187,7 +187,7 @@ static int ttusbir_probe(struct usb_interface *intf,
int i, j, ret;
int altsetting = -1;
- tt = kzalloc(sizeof(*tt), GFP_KERNEL);
+ tt = kzalloc_obj(*tt, GFP_KERNEL);
rc = rc_allocate_device(RC_DRIVER_IR_RAW);
if (!tt || !rc) {
ret = -ENOMEM;
diff --git a/drivers/media/rc/winbond-cir.c b/drivers/media/rc/winbond-cir.c
index 25884a79985c..875ead5240a5 100644
--- a/drivers/media/rc/winbond-cir.c
+++ b/drivers/media/rc/winbond-cir.c
@@ -1017,7 +1017,7 @@ wbcir_probe(struct pnp_dev *device, const struct pnp_device_id *dev_id)
return -ENODEV;
}
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data) {
err = -ENOMEM;
goto exit;
diff --git a/drivers/media/rc/xbox_remote.c b/drivers/media/rc/xbox_remote.c
index a1572381d097..79c3bfe60437 100644
--- a/drivers/media/rc/xbox_remote.c
+++ b/drivers/media/rc/xbox_remote.c
@@ -213,7 +213,7 @@ static int xbox_remote_probe(struct usb_interface *interface,
return -ENODEV;
}
- xbox_remote = kzalloc(sizeof(*xbox_remote), GFP_KERNEL);
+ xbox_remote = kzalloc_obj(*xbox_remote, GFP_KERNEL);
rc_dev = rc_allocate_device(RC_DRIVER_SCANCODE);
if (!xbox_remote || !rc_dev)
goto exit_free_dev_rdev;
diff --git a/drivers/media/spi/cxd2880-spi.c b/drivers/media/spi/cxd2880-spi.c
index 65fa7f857fca..352ff42b9121 100644
--- a/drivers/media/spi/cxd2880-spi.c
+++ b/drivers/media/spi/cxd2880-spi.c
@@ -516,7 +516,7 @@ cxd2880_spi_probe(struct spi_device *spi)
return -EINVAL;
}
- dvb_spi = kzalloc(sizeof(struct cxd2880_dvb_spi), GFP_KERNEL);
+ dvb_spi = kzalloc_obj(struct cxd2880_dvb_spi, GFP_KERNEL);
if (!dvb_spi)
return -ENOMEM;
diff --git a/drivers/media/test-drivers/vicodec/vicodec-core.c b/drivers/media/test-drivers/vicodec/vicodec-core.c
index be846f711969..d3d4bb41c8ea 100644
--- a/drivers/media/test-drivers/vicodec/vicodec-core.c
+++ b/drivers/media/test-drivers/vicodec/vicodec-core.c
@@ -1836,7 +1836,7 @@ static int vicodec_open(struct file *file)
if (mutex_lock_interruptible(vfd->lock))
return -ERESTARTSYS;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
rc = -ENOMEM;
goto open_unlock;
@@ -2105,7 +2105,7 @@ static int vicodec_probe(struct platform_device *pdev)
struct vicodec_dev *dev;
int ret;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/media/test-drivers/vidtv/vidtv_bridge.c b/drivers/media/test-drivers/vidtv/vidtv_bridge.c
index 438483c62fac..03bb7c79df47 100644
--- a/drivers/media/test-drivers/vidtv/vidtv_bridge.c
+++ b/drivers/media/test-drivers/vidtv/vidtv_bridge.c
@@ -490,7 +490,7 @@ static int vidtv_bridge_probe(struct platform_device *pdev)
struct vidtv_dvb *dvb;
int ret;
- dvb = kzalloc(sizeof(*dvb), GFP_KERNEL);
+ dvb = kzalloc_obj(*dvb, GFP_KERNEL);
if (!dvb)
return -ENOMEM;
diff --git a/drivers/media/test-drivers/vidtv/vidtv_channel.c b/drivers/media/test-drivers/vidtv/vidtv_channel.c
index 3541155c6fc6..4ba65853c3ed 100644
--- a/drivers/media/test-drivers/vidtv/vidtv_channel.c
+++ b/drivers/media/test-drivers/vidtv/vidtv_channel.c
@@ -67,7 +67,7 @@ struct vidtv_channel
const u16 s302m_beethoven_event_id = 1;
struct vidtv_channel *s302m;
- s302m = kzalloc(sizeof(*s302m), GFP_KERNEL);
+ s302m = kzalloc_obj(*s302m, GFP_KERNEL);
if (!s302m)
return NULL;
@@ -389,7 +389,7 @@ static struct vidtv_psi_desc_service_list_entry
s_desc = (struct vidtv_psi_desc_service *)desc;
- curr_e = kzalloc(sizeof(*curr_e), GFP_KERNEL);
+ curr_e = kzalloc_obj(*curr_e, GFP_KERNEL);
if (!curr_e) {
vidtv_channel_destroy_service_list(head_e);
return NULL;
diff --git a/drivers/media/test-drivers/vidtv/vidtv_demod.c b/drivers/media/test-drivers/vidtv/vidtv_demod.c
index 505f96fccbf3..31ee6d706744 100644
--- a/drivers/media/test-drivers/vidtv/vidtv_demod.c
+++ b/drivers/media/test-drivers/vidtv/vidtv_demod.c
@@ -418,7 +418,7 @@ static int vidtv_demod_i2c_probe(struct i2c_client *client)
struct vidtv_demod_state *state;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return -ENOMEM;
diff --git a/drivers/media/test-drivers/vidtv/vidtv_mux.c b/drivers/media/test-drivers/vidtv/vidtv_mux.c
index f99878eff7ac..01bed6d82437 100644
--- a/drivers/media/test-drivers/vidtv/vidtv_mux.c
+++ b/drivers/media/test-drivers/vidtv/vidtv_mux.c
@@ -50,7 +50,7 @@ static struct vidtv_mux_pid_ctx
if (ctx)
return ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return NULL;
@@ -480,7 +480,7 @@ struct vidtv_mux *vidtv_mux_init(struct dvb_frontend *fe,
{
struct vidtv_mux *m;
- m = kzalloc(sizeof(*m), GFP_KERNEL);
+ m = kzalloc_obj(*m, GFP_KERNEL);
if (!m)
return NULL;
diff --git a/drivers/media/test-drivers/vidtv/vidtv_psi.c b/drivers/media/test-drivers/vidtv/vidtv_psi.c
index 2a51c898c11e..2cd3f5d7c142 100644
--- a/drivers/media/test-drivers/vidtv/vidtv_psi.c
+++ b/drivers/media/test-drivers/vidtv/vidtv_psi.c
@@ -285,7 +285,7 @@ struct vidtv_psi_desc_service *vidtv_psi_service_desc_init(struct vidtv_psi_desc
u32 service_name_len = service_name ? strlen(service_name) : 0;
u32 provider_name_len = provider_name ? strlen(provider_name) : 0;
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
return NULL;
@@ -360,7 +360,7 @@ struct vidtv_psi_desc_network_name
u32 network_name_len = network_name ? strlen(network_name) : 0;
struct vidtv_psi_desc_network_name *desc;
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
return NULL;
@@ -390,14 +390,14 @@ struct vidtv_psi_desc_service_list
struct vidtv_psi_desc_service_list *desc;
u16 length = 0;
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
return NULL;
desc->type = SERVICE_LIST_DESCRIPTOR;
while (entry) {
- curr_e = kzalloc(sizeof(*curr_e), GFP_KERNEL);
+ curr_e = kzalloc_obj(*curr_e, GFP_KERNEL);
if (!curr_e) {
while (head_e) {
curr_e = head_e;
@@ -441,7 +441,7 @@ struct vidtv_psi_desc_short_event
struct vidtv_psi_desc_short_event *desc;
u32 text_len = text ? strlen(text) : 0;
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
return NULL;
@@ -895,7 +895,7 @@ vidtv_psi_pat_program_init(struct vidtv_psi_table_pat_program *head,
struct vidtv_psi_table_pat_program *program;
const u16 RESERVED = 0x07;
- program = kzalloc(sizeof(*program), GFP_KERNEL);
+ program = kzalloc_obj(*program, GFP_KERNEL);
if (!program)
return NULL;
@@ -967,7 +967,7 @@ struct vidtv_psi_table_pat *vidtv_psi_pat_table_init(u16 transport_stream_id)
const u16 ZERO = 0x0;
const u16 ONES = 0x03;
- pat = kzalloc(sizeof(*pat), GFP_KERNEL);
+ pat = kzalloc_obj(*pat, GFP_KERNEL);
if (!pat)
return NULL;
@@ -1067,7 +1067,7 @@ vidtv_psi_pmt_stream_init(struct vidtv_psi_table_pmt_stream *head,
const u16 ZERO = 0x0;
u16 desc_loop_len;
- stream = kzalloc(sizeof(*stream), GFP_KERNEL);
+ stream = kzalloc_obj(*stream, GFP_KERNEL);
if (!stream)
return NULL;
@@ -1153,7 +1153,7 @@ struct vidtv_psi_table_pmt *vidtv_psi_pmt_table_init(u16 program_number,
const u16 ZERO = 0x0;
u16 desc_loop_len;
- pmt = kzalloc(sizeof(*pmt), GFP_KERNEL);
+ pmt = kzalloc_obj(*pmt, GFP_KERNEL);
if (!pmt)
return NULL;
@@ -1298,7 +1298,7 @@ struct vidtv_psi_table_sdt *vidtv_psi_sdt_table_init(u16 network_id,
const u16 ONES = 0x03;
const u16 ONE = 0x1;
- sdt = kzalloc(sizeof(*sdt), GFP_KERNEL);
+ sdt = kzalloc_obj(*sdt, GFP_KERNEL);
if (!sdt)
return NULL;
@@ -1438,7 +1438,7 @@ struct vidtv_psi_table_sdt_service
{
struct vidtv_psi_table_sdt_service *service;
- service = kzalloc(sizeof(*service), GFP_KERNEL);
+ service = kzalloc_obj(*service, GFP_KERNEL);
if (!service)
return NULL;
@@ -1523,9 +1523,8 @@ vidtv_psi_pmt_create_sec_for_each_pat_entry(struct vidtv_psi_table_pat *pat,
program = program->next;
}
- pmt_secs = kcalloc(num_pmt,
- sizeof(struct vidtv_psi_table_pmt *),
- GFP_KERNEL);
+ pmt_secs = kzalloc_objs(struct vidtv_psi_table_pmt *, num_pmt,
+ GFP_KERNEL);
if (!pmt_secs)
return NULL;
@@ -1622,11 +1621,11 @@ struct vidtv_psi_table_nit
const u16 ONES = 0x03;
const u16 ONE = 0x1;
- nit = kzalloc(sizeof(*nit), GFP_KERNEL);
+ nit = kzalloc_obj(*nit, GFP_KERNEL);
if (!nit)
return NULL;
- transport = kzalloc(sizeof(*transport), GFP_KERNEL);
+ transport = kzalloc_obj(*transport, GFP_KERNEL);
if (!transport)
goto free_nit;
@@ -1857,7 +1856,7 @@ struct vidtv_psi_table_eit
const u16 ONE = 0x1;
const u16 ONES = 0x03;
- eit = kzalloc(sizeof(*eit), GFP_KERNEL);
+ eit = kzalloc_obj(*eit, GFP_KERNEL);
if (!eit)
return NULL;
@@ -1982,7 +1981,7 @@ struct vidtv_psi_table_eit_event
int mjd, l;
__be16 mjd_be;
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e)
return NULL;
diff --git a/drivers/media/test-drivers/vidtv/vidtv_s302m.c b/drivers/media/test-drivers/vidtv/vidtv_s302m.c
index 9da18eac04b5..1a2ffcf0796f 100644
--- a/drivers/media/test-drivers/vidtv/vidtv_s302m.c
+++ b/drivers/media/test-drivers/vidtv/vidtv_s302m.c
@@ -148,7 +148,7 @@ static struct vidtv_access_unit *vidtv_s302m_access_unit_init(struct vidtv_acces
{
struct vidtv_access_unit *au;
- au = kzalloc(sizeof(*au), GFP_KERNEL);
+ au = kzalloc_obj(*au, GFP_KERNEL);
if (!au)
return NULL;
@@ -445,7 +445,7 @@ struct vidtv_encoder
struct vidtv_s302m_ctx *ctx;
struct vidtv_encoder *e;
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e)
return NULL;
diff --git a/drivers/media/test-drivers/vidtv/vidtv_tuner.c b/drivers/media/test-drivers/vidtv/vidtv_tuner.c
index 4ba302d569d6..735eb3b6824d 100644
--- a/drivers/media/test-drivers/vidtv/vidtv_tuner.c
+++ b/drivers/media/test-drivers/vidtv/vidtv_tuner.c
@@ -396,7 +396,7 @@ static int vidtv_tuner_i2c_probe(struct i2c_client *client)
struct dvb_frontend *fe = config->fe;
struct vidtv_tuner_dev *tuner_dev = NULL;
- tuner_dev = kzalloc(sizeof(*tuner_dev), GFP_KERNEL);
+ tuner_dev = kzalloc_obj(*tuner_dev, GFP_KERNEL);
if (!tuner_dev)
return -ENOMEM;
diff --git a/drivers/media/test-drivers/vim2m.c b/drivers/media/test-drivers/vim2m.c
index c33c18ea5210..ae091cb67794 100644
--- a/drivers/media/test-drivers/vim2m.c
+++ b/drivers/media/test-drivers/vim2m.c
@@ -1365,7 +1365,7 @@ static int vim2m_open(struct file *file)
if (mutex_lock_interruptible(&dev->dev_mutex))
return -ERESTARTSYS;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
rc = -ENOMEM;
goto open_unlock;
@@ -1492,7 +1492,7 @@ static int vim2m_probe(struct platform_device *pdev)
struct video_device *vfd;
int ret;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/media/test-drivers/vimc/vimc-capture.c b/drivers/media/test-drivers/vimc/vimc-capture.c
index 7f6124025fc9..e8a91f78a484 100644
--- a/drivers/media/test-drivers/vimc/vimc-capture.c
+++ b/drivers/media/test-drivers/vimc/vimc-capture.c
@@ -397,7 +397,7 @@ static struct vimc_ent_device *vimc_capture_add(struct vimc_device *vimc,
int ret;
/* Allocate the vimc_capture_device struct */
- vcapture = kzalloc(sizeof(*vcapture), GFP_KERNEL);
+ vcapture = kzalloc_obj(*vcapture, GFP_KERNEL);
if (!vcapture)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/test-drivers/vimc/vimc-core.c b/drivers/media/test-drivers/vimc/vimc-core.c
index f632c77e52f5..7267766662fa 100644
--- a/drivers/media/test-drivers/vimc/vimc-core.c
+++ b/drivers/media/test-drivers/vimc/vimc-core.c
@@ -287,8 +287,8 @@ static int vimc_register_devices(struct vimc_device *vimc)
return ret;
}
/* allocate ent_devs */
- vimc->ent_devs = kcalloc(vimc->pipe_cfg->num_ents,
- sizeof(*vimc->ent_devs), GFP_KERNEL);
+ vimc->ent_devs = kzalloc_objs(*vimc->ent_devs, vimc->pipe_cfg->num_ents,
+ GFP_KERNEL);
if (!vimc->ent_devs) {
ret = -ENOMEM;
goto err_v4l2_unregister;
@@ -354,7 +354,7 @@ static int vimc_probe(struct platform_device *pdev)
if (vimc_allocator == VIMC_ALLOCATOR_DMA_CONTIG)
dma_coerce_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
- vimc = kzalloc(sizeof(*vimc), GFP_KERNEL);
+ vimc = kzalloc_obj(*vimc, GFP_KERNEL);
if (!vimc)
return -ENOMEM;
diff --git a/drivers/media/test-drivers/vimc/vimc-debayer.c b/drivers/media/test-drivers/vimc/vimc-debayer.c
index bbb7c7a86df0..9f86944a04a5 100644
--- a/drivers/media/test-drivers/vimc/vimc-debayer.c
+++ b/drivers/media/test-drivers/vimc/vimc-debayer.c
@@ -564,7 +564,7 @@ static struct vimc_ent_device *vimc_debayer_add(struct vimc_device *vimc,
int ret;
/* Allocate the vdebayer struct */
- vdebayer = kzalloc(sizeof(*vdebayer), GFP_KERNEL);
+ vdebayer = kzalloc_obj(*vdebayer, GFP_KERNEL);
if (!vdebayer)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/test-drivers/vimc/vimc-lens.c b/drivers/media/test-drivers/vimc/vimc-lens.c
index 96399057a2b5..9b7909ded8d6 100644
--- a/drivers/media/test-drivers/vimc/vimc-lens.c
+++ b/drivers/media/test-drivers/vimc/vimc-lens.c
@@ -54,7 +54,7 @@ static struct vimc_ent_device *vimc_lens_add(struct vimc_device *vimc,
int ret;
/* Allocate the vlens struct */
- vlens = kzalloc(sizeof(*vlens), GFP_KERNEL);
+ vlens = kzalloc_obj(*vlens, GFP_KERNEL);
if (!vlens)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/test-drivers/vimc/vimc-scaler.c b/drivers/media/test-drivers/vimc/vimc-scaler.c
index 47d0d63865a0..eb0a45944e4f 100644
--- a/drivers/media/test-drivers/vimc/vimc-scaler.c
+++ b/drivers/media/test-drivers/vimc/vimc-scaler.c
@@ -392,7 +392,7 @@ static struct vimc_ent_device *vimc_scaler_add(struct vimc_device *vimc,
int ret;
/* Allocate the vscaler struct */
- vscaler = kzalloc(sizeof(*vscaler), GFP_KERNEL);
+ vscaler = kzalloc_obj(*vscaler, GFP_KERNEL);
if (!vscaler)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/test-drivers/vimc/vimc-sensor.c b/drivers/media/test-drivers/vimc/vimc-sensor.c
index 027767777763..e53d28e59ac3 100644
--- a/drivers/media/test-drivers/vimc/vimc-sensor.c
+++ b/drivers/media/test-drivers/vimc/vimc-sensor.c
@@ -382,7 +382,7 @@ static struct vimc_ent_device *vimc_sensor_add(struct vimc_device *vimc,
int ret;
/* Allocate the vsensor struct */
- vsensor = kzalloc(sizeof(*vsensor), GFP_KERNEL);
+ vsensor = kzalloc_obj(*vsensor, GFP_KERNEL);
if (!vsensor)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/test-drivers/visl/visl-core.c b/drivers/media/test-drivers/visl/visl-core.c
index 26c6c6835f79..5ef662fa6cfa 100644
--- a/drivers/media/test-drivers/visl/visl-core.c
+++ b/drivers/media/test-drivers/visl/visl-core.c
@@ -332,7 +332,7 @@ static int visl_open(struct file *file)
if (mutex_lock_interruptible(&dev->dev_mutex))
return -ERESTARTSYS;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
rc = -ENOMEM;
goto unlock;
@@ -437,7 +437,7 @@ static int visl_probe(struct platform_device *pdev)
int ret;
int rc;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/media/test-drivers/visl/visl-debugfs.c b/drivers/media/test-drivers/visl/visl-debugfs.c
index 45f2a8268014..8cb75c63aca6 100644
--- a/drivers/media/test-drivers/visl/visl-debugfs.c
+++ b/drivers/media/test-drivers/visl/visl-debugfs.c
@@ -45,7 +45,7 @@ void visl_trace_bitstream(struct visl_ctx *ctx, struct visl_run *run)
struct dentry *dentry;
char name[32];
- blob = kzalloc(sizeof(*blob), GFP_KERNEL);
+ blob = kzalloc_obj(*blob, GFP_KERNEL);
if (!blob)
return;
diff --git a/drivers/media/test-drivers/vivid/vivid-core.c b/drivers/media/test-drivers/vivid/vivid-core.c
index 9c0b1a32b5c9..5d73701f9080 100644
--- a/drivers/media/test-drivers/vivid/vivid-core.c
+++ b/drivers/media/test-drivers/vivid/vivid-core.c
@@ -1814,7 +1814,7 @@ static int vivid_create_instance(struct platform_device *pdev, int inst)
int i;
/* allocate main vivid state structure */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/media/tuners/e4000.c b/drivers/media/tuners/e4000.c
index 549b2009f974..3c2d90fe4349 100644
--- a/drivers/media/tuners/e4000.c
+++ b/drivers/media/tuners/e4000.c
@@ -621,7 +621,7 @@ static int e4000_probe(struct i2c_client *client)
.val_bits = 8,
};
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/tuners/fc0011.c b/drivers/media/tuners/fc0011.c
index 3d3b54be2955..e982c1834fe4 100644
--- a/drivers/media/tuners/fc0011.c
+++ b/drivers/media/tuners/fc0011.c
@@ -485,7 +485,7 @@ struct dvb_frontend *fc0011_attach(struct dvb_frontend *fe,
{
struct fc0011_priv *priv;
- priv = kzalloc(sizeof(struct fc0011_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct fc0011_priv, GFP_KERNEL);
if (!priv)
return NULL;
diff --git a/drivers/media/tuners/fc0012.c b/drivers/media/tuners/fc0012.c
index 81e65acbdb17..efe0fd2f4673 100644
--- a/drivers/media/tuners/fc0012.c
+++ b/drivers/media/tuners/fc0012.c
@@ -435,7 +435,7 @@ struct dvb_frontend *fc0012_attach(struct dvb_frontend *fe,
if (fe->ops.i2c_gate_ctrl)
fe->ops.i2c_gate_ctrl(fe, 1);
- priv = kzalloc(sizeof(struct fc0012_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct fc0012_priv, GFP_KERNEL);
if (!priv) {
ret = -ENOMEM;
dev_err(&i2c->dev, "%s: kzalloc() failed\n", KBUILD_MODNAME);
diff --git a/drivers/media/tuners/fc0013.c b/drivers/media/tuners/fc0013.c
index 90d2ef067594..d0049a302689 100644
--- a/drivers/media/tuners/fc0013.c
+++ b/drivers/media/tuners/fc0013.c
@@ -526,7 +526,7 @@ struct dvb_frontend *fc0013_attach(struct dvb_frontend *fe,
{
struct fc0013_priv *priv = NULL;
- priv = kzalloc(sizeof(struct fc0013_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct fc0013_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
diff --git a/drivers/media/tuners/fc2580.c b/drivers/media/tuners/fc2580.c
index 046389896dc5..992e716a0703 100644
--- a/drivers/media/tuners/fc2580.c
+++ b/drivers/media/tuners/fc2580.c
@@ -518,7 +518,7 @@ static int fc2580_probe(struct i2c_client *client)
.val_bits = 8,
};
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/tuners/it913x.c b/drivers/media/tuners/it913x.c
index 9186174a46fd..a78ce6c76b9c 100644
--- a/drivers/media/tuners/it913x.c
+++ b/drivers/media/tuners/it913x.c
@@ -385,7 +385,7 @@ static int it913x_probe(struct platform_device *pdev)
int ret;
char *chip_ver_str;
- dev = kzalloc(sizeof(struct it913x_dev), GFP_KERNEL);
+ dev = kzalloc_obj(struct it913x_dev, GFP_KERNEL);
if (dev == NULL) {
ret = -ENOMEM;
dev_err(&pdev->dev, "kzalloc() failed\n");
diff --git a/drivers/media/tuners/m88rs6000t.c b/drivers/media/tuners/m88rs6000t.c
index cc57980ed417..16144f4b363e 100644
--- a/drivers/media/tuners/m88rs6000t.c
+++ b/drivers/media/tuners/m88rs6000t.c
@@ -612,7 +612,7 @@ static int m88rs6000t_probe(struct i2c_client *client)
{0x75, 0xFC},
};
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
dev_err(&client->dev, "kzalloc() failed\n");
diff --git a/drivers/media/tuners/max2165.c b/drivers/media/tuners/max2165.c
index 1575ab94e1c8..04c25efb3baa 100644
--- a/drivers/media/tuners/max2165.c
+++ b/drivers/media/tuners/max2165.c
@@ -394,7 +394,7 @@ struct dvb_frontend *max2165_attach(struct dvb_frontend *fe,
i2c ? i2c_adapter_id(i2c) : -1,
cfg ? cfg->i2c_address : -1);
- priv = kzalloc(sizeof(struct max2165_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct max2165_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
diff --git a/drivers/media/tuners/mc44s803.c b/drivers/media/tuners/mc44s803.c
index ed8bdf7ebd99..fb5dc3bef84f 100644
--- a/drivers/media/tuners/mc44s803.c
+++ b/drivers/media/tuners/mc44s803.c
@@ -315,7 +315,7 @@ struct dvb_frontend *mc44s803_attach(struct dvb_frontend *fe,
reg = 0;
- priv = kzalloc(sizeof(struct mc44s803_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct mc44s803_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
diff --git a/drivers/media/tuners/msi001.c b/drivers/media/tuners/msi001.c
index ad6c72c1ed04..071847007e65 100644
--- a/drivers/media/tuners/msi001.c
+++ b/drivers/media/tuners/msi001.c
@@ -426,7 +426,7 @@ static int msi001_probe(struct spi_device *spi)
dev_dbg(&spi->dev, "\n");
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/tuners/mt2060.c b/drivers/media/tuners/mt2060.c
index 4b9dca2f17cc..3ae1c4de9dd3 100644
--- a/drivers/media/tuners/mt2060.c
+++ b/drivers/media/tuners/mt2060.c
@@ -407,7 +407,7 @@ struct dvb_frontend * mt2060_attach(struct dvb_frontend *fe, struct i2c_adapter
struct mt2060_priv *priv = NULL;
u8 id = 0;
- priv = kzalloc(sizeof(struct mt2060_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct mt2060_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
diff --git a/drivers/media/tuners/mt2063.c b/drivers/media/tuners/mt2063.c
index 2c8ce74ddca4..5e226618321a 100644
--- a/drivers/media/tuners/mt2063.c
+++ b/drivers/media/tuners/mt2063.c
@@ -2212,7 +2212,7 @@ struct dvb_frontend *mt2063_attach(struct dvb_frontend *fe,
dprintk(2, "\n");
- state = kzalloc(sizeof(struct mt2063_state), GFP_KERNEL);
+ state = kzalloc_obj(struct mt2063_state, GFP_KERNEL);
if (!state)
return NULL;
diff --git a/drivers/media/tuners/mt20xx.c b/drivers/media/tuners/mt20xx.c
index baf708f42428..5d89b84e4fb9 100644
--- a/drivers/media/tuners/mt20xx.c
+++ b/drivers/media/tuners/mt20xx.c
@@ -596,7 +596,7 @@ struct dvb_frontend *microtune_attach(struct dvb_frontend *fe,
unsigned char buf[21];
int company_code;
- priv = kzalloc(sizeof(struct microtune_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct microtune_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
fe->tuner_priv = priv;
diff --git a/drivers/media/tuners/mt2131.c b/drivers/media/tuners/mt2131.c
index eebc06088341..31ada489ba27 100644
--- a/drivers/media/tuners/mt2131.c
+++ b/drivers/media/tuners/mt2131.c
@@ -248,7 +248,7 @@ struct dvb_frontend * mt2131_attach(struct dvb_frontend *fe,
dprintk(1, "%s()\n", __func__);
- priv = kzalloc(sizeof(struct mt2131_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct mt2131_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
diff --git a/drivers/media/tuners/mt2266.c b/drivers/media/tuners/mt2266.c
index 2e92885a6bcb..84bba08ae0a4 100644
--- a/drivers/media/tuners/mt2266.c
+++ b/drivers/media/tuners/mt2266.c
@@ -313,7 +313,7 @@ struct dvb_frontend * mt2266_attach(struct dvb_frontend *fe, struct i2c_adapter
struct mt2266_priv *priv = NULL;
u8 id = 0;
- priv = kzalloc(sizeof(struct mt2266_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct mt2266_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
diff --git a/drivers/media/tuners/mxl301rf.c b/drivers/media/tuners/mxl301rf.c
index 3b61c3afed18..4cae9d2d37d2 100644
--- a/drivers/media/tuners/mxl301rf.c
+++ b/drivers/media/tuners/mxl301rf.c
@@ -289,7 +289,7 @@ static int mxl301rf_probe(struct i2c_client *client)
struct mxl301rf_config *cfg;
struct dvb_frontend *fe;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return -ENOMEM;
diff --git a/drivers/media/tuners/mxl5005s.c b/drivers/media/tuners/mxl5005s.c
index 0e811c5eae6c..5538066a57ed 100644
--- a/drivers/media/tuners/mxl5005s.c
+++ b/drivers/media/tuners/mxl5005s.c
@@ -4103,7 +4103,7 @@ struct dvb_frontend *mxl5005s_attach(struct dvb_frontend *fe,
struct mxl5005s_state *state = NULL;
dprintk(1, "%s()\n", __func__);
- state = kzalloc(sizeof(struct mxl5005s_state), GFP_KERNEL);
+ state = kzalloc_obj(struct mxl5005s_state, GFP_KERNEL);
if (state == NULL)
return NULL;
diff --git a/drivers/media/tuners/qm1d1b0004.c b/drivers/media/tuners/qm1d1b0004.c
index c53aeb558413..dae101ac56f1 100644
--- a/drivers/media/tuners/qm1d1b0004.c
+++ b/drivers/media/tuners/qm1d1b0004.c
@@ -208,7 +208,7 @@ qm1d1b0004_probe(struct i2c_client *client)
fe = cfg->fe;
i2c_set_clientdata(client, fe);
- fe->tuner_priv = kzalloc(sizeof(struct qm1d1b0004_state), GFP_KERNEL);
+ fe->tuner_priv = kzalloc_obj(struct qm1d1b0004_state, GFP_KERNEL);
if (!fe->tuner_priv) {
ret = -ENOMEM;
goto err_mem;
diff --git a/drivers/media/tuners/qm1d1c0042.c b/drivers/media/tuners/qm1d1c0042.c
index c58f5b6526f1..3a9037a2a74b 100644
--- a/drivers/media/tuners/qm1d1c0042.c
+++ b/drivers/media/tuners/qm1d1c0042.c
@@ -407,7 +407,7 @@ static int qm1d1c0042_probe(struct i2c_client *client)
struct qm1d1c0042_config *cfg;
struct dvb_frontend *fe;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return -ENOMEM;
state->i2c = client;
diff --git a/drivers/media/tuners/qt1010.c b/drivers/media/tuners/qt1010.c
index 48fc79cd4027..2aee4556ad53 100644
--- a/drivers/media/tuners/qt1010.c
+++ b/drivers/media/tuners/qt1010.c
@@ -411,7 +411,7 @@ struct dvb_frontend * qt1010_attach(struct dvb_frontend *fe,
struct qt1010_priv *priv = NULL;
u8 id;
- priv = kzalloc(sizeof(struct qt1010_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct qt1010_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
diff --git a/drivers/media/tuners/si2157.c b/drivers/media/tuners/si2157.c
index def06c262ea2..1239206a0ac4 100644
--- a/drivers/media/tuners/si2157.c
+++ b/drivers/media/tuners/si2157.c
@@ -884,7 +884,7 @@ static int si2157_probe(struct i2c_client *client)
struct si2157_cmd cmd;
int ret;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
dev_err(&client->dev, "kzalloc() failed\n");
diff --git a/drivers/media/tuners/tda18212.c b/drivers/media/tuners/tda18212.c
index 39f2dc9c2845..435189d37655 100644
--- a/drivers/media/tuners/tda18212.c
+++ b/drivers/media/tuners/tda18212.c
@@ -186,7 +186,7 @@ static int tda18212_probe(struct i2c_client *client)
.val_bits = 8,
};
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (dev == NULL) {
ret = -ENOMEM;
dev_err(&client->dev, "kzalloc() failed\n");
diff --git a/drivers/media/tuners/tda18218.c b/drivers/media/tuners/tda18218.c
index 7d8d84dcb245..f3b54e815657 100644
--- a/drivers/media/tuners/tda18218.c
+++ b/drivers/media/tuners/tda18218.c
@@ -292,7 +292,7 @@ struct dvb_frontend *tda18218_attach(struct dvb_frontend *fe,
0x8a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xf6
};
- priv = kzalloc(sizeof(struct tda18218_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct tda18218_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
diff --git a/drivers/media/tuners/tda18250.c b/drivers/media/tuners/tda18250.c
index 68d0275f29e1..4e77ebc10114 100644
--- a/drivers/media/tuners/tda18250.c
+++ b/drivers/media/tuners/tda18250.c
@@ -769,7 +769,7 @@ static int tda18250_probe(struct i2c_client *client)
.volatile_table = &tda18250_volatile_table,
};
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/tuners/tda827x.c b/drivers/media/tuners/tda827x.c
index ad68ee6c5ed4..adc00ee687a1 100644
--- a/drivers/media/tuners/tda827x.c
+++ b/drivers/media/tuners/tda827x.c
@@ -873,7 +873,7 @@ struct dvb_frontend *tda827x_attach(struct dvb_frontend *fe, int addr,
struct tda827x_priv *priv = NULL;
dprintk("%s:\n", __func__);
- priv = kzalloc(sizeof(struct tda827x_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct tda827x_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
diff --git a/drivers/media/tuners/tda8290.c b/drivers/media/tuners/tda8290.c
index 98851482c0cc..f15dca8f5b08 100644
--- a/drivers/media/tuners/tda8290.c
+++ b/drivers/media/tuners/tda8290.c
@@ -734,7 +734,7 @@ struct dvb_frontend *tda829x_attach(struct dvb_frontend *fe,
struct tda8290_priv *priv = NULL;
char *name;
- priv = kzalloc(sizeof(struct tda8290_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct tda8290_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
fe->analog_demod_priv = priv;
diff --git a/drivers/media/tuners/tea5761.c b/drivers/media/tuners/tea5761.c
index 425e9fd3f3d4..1e3ea4fd7013 100644
--- a/drivers/media/tuners/tea5761.c
+++ b/drivers/media/tuners/tea5761.c
@@ -315,7 +315,7 @@ struct dvb_frontend *tea5761_attach(struct dvb_frontend *fe,
if (tea5761_autodetection(i2c_adap, i2c_addr) != 0)
return NULL;
- priv = kzalloc(sizeof(struct tea5761_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct tea5761_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
fe->tuner_priv = priv;
diff --git a/drivers/media/tuners/tea5767.c b/drivers/media/tuners/tea5767.c
index ef4acb1f1bfa..81deab8f2b20 100644
--- a/drivers/media/tuners/tea5767.c
+++ b/drivers/media/tuners/tea5767.c
@@ -441,7 +441,7 @@ struct dvb_frontend *tea5767_attach(struct dvb_frontend *fe,
{
struct tea5767_priv *priv = NULL;
- priv = kzalloc(sizeof(struct tea5767_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct tea5767_priv, GFP_KERNEL);
if (priv == NULL)
return NULL;
fe->tuner_priv = priv;
diff --git a/drivers/media/tuners/tua9001.c b/drivers/media/tuners/tua9001.c
index 562a7a5c26f5..59bd15ba6280 100644
--- a/drivers/media/tuners/tua9001.c
+++ b/drivers/media/tuners/tua9001.c
@@ -178,7 +178,7 @@ static int tua9001_probe(struct i2c_client *client)
.val_bits = 16,
};
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/tuners/tuner-i2c.h b/drivers/media/tuners/tuner-i2c.h
index 724952e001cd..336acbbc622b 100644
--- a/drivers/media/tuners/tuner-i2c.h
+++ b/drivers/media/tuners/tuner-i2c.h
@@ -132,7 +132,7 @@ static inline int tuner_i2c_xfer_send_recv(struct tuner_i2c_props *props,
} \
} \
if (0 == __ret) { \
- state = kzalloc(sizeof(type), GFP_KERNEL); \
+ state = kzalloc_obj(type, GFP_KERNEL); \
if (NULL == state) \
goto __fail; \
state->i2c_props.addr = i2caddr; \
diff --git a/drivers/media/tuners/xc2028.c b/drivers/media/tuners/xc2028.c
index 807585d2dfde..f0f99142941f 100644
--- a/drivers/media/tuners/xc2028.c
+++ b/drivers/media/tuners/xc2028.c
@@ -332,7 +332,7 @@ static int load_all_firmwares(struct dvb_frontend *fe,
n_array, priv->fname, name,
priv->firm_version >> 8, priv->firm_version & 0xff);
- priv->firm = kcalloc(n_array, sizeof(*priv->firm), GFP_KERNEL);
+ priv->firm = kzalloc_objs(*priv->firm, n_array, GFP_KERNEL);
if (priv->firm == NULL) {
tuner_err("Not enough memory to load firmware file.\n");
rc = -ENOMEM;
diff --git a/drivers/media/tuners/xc4000.c b/drivers/media/tuners/xc4000.c
index b44c97e4e5ec..674e863839c9 100644
--- a/drivers/media/tuners/xc4000.c
+++ b/drivers/media/tuners/xc4000.c
@@ -763,7 +763,7 @@ static int xc4000_fwupload(struct dvb_frontend *fe)
n_array, fname, name,
priv->firm_version >> 8, priv->firm_version & 0xff);
- priv->firm = kcalloc(n_array, sizeof(*priv->firm), GFP_KERNEL);
+ priv->firm = kzalloc_objs(*priv->firm, n_array, GFP_KERNEL);
if (priv->firm == NULL) {
printk(KERN_ERR "Not enough memory to load firmware file.\n");
rc = -ENOMEM;
diff --git a/drivers/media/usb/airspy/airspy.c b/drivers/media/usb/airspy/airspy.c
index 08f0920cf6ca..1751a67842bc 100644
--- a/drivers/media/usb/airspy/airspy.c
+++ b/drivers/media/usb/airspy/airspy.c
@@ -968,7 +968,7 @@ static int airspy_probe(struct usb_interface *intf,
buf = NULL;
ret = -ENOMEM;
- s = kzalloc(sizeof(struct airspy), GFP_KERNEL);
+ s = kzalloc_obj(struct airspy, GFP_KERNEL);
if (s == NULL) {
dev_err(&intf->dev, "Could not allocate memory for state\n");
return -ENOMEM;
diff --git a/drivers/media/usb/as102/as102_fw.c b/drivers/media/usb/as102/as102_fw.c
index 514764247588..6c14b2754b83 100644
--- a/drivers/media/usb/as102/as102_fw.c
+++ b/drivers/media/usb/as102/as102_fw.c
@@ -96,7 +96,7 @@ static int as102_firmware_upload(struct as10x_bus_adapter_t *bus_adap,
int total_read_bytes = 0, errno = 0;
unsigned char addr_has_changed = 0;
- fw_pkt = kmalloc(sizeof(*fw_pkt), GFP_KERNEL);
+ fw_pkt = kmalloc_obj(*fw_pkt, GFP_KERNEL);
if (!fw_pkt)
return -ENOMEM;
diff --git a/drivers/media/usb/as102/as102_usb_drv.c b/drivers/media/usb/as102/as102_usb_drv.c
index e0ef66a522e2..594dde4578ce 100644
--- a/drivers/media/usb/as102/as102_usb_drv.c
+++ b/drivers/media/usb/as102/as102_usb_drv.c
@@ -345,7 +345,7 @@ static int as102_usb_probe(struct usb_interface *intf,
return -EINVAL;
}
- as102_dev = kzalloc(sizeof(struct as102_dev_t), GFP_KERNEL);
+ as102_dev = kzalloc_obj(struct as102_dev_t, GFP_KERNEL);
if (as102_dev == NULL)
return -ENOMEM;
diff --git a/drivers/media/usb/au0828/au0828-core.c b/drivers/media/usb/au0828/au0828-core.c
index 1e246b47766d..d99f32d5d06f 100644
--- a/drivers/media/usb/au0828/au0828-core.c
+++ b/drivers/media/usb/au0828/au0828-core.c
@@ -670,7 +670,7 @@ static int au0828_usb_probe(struct usb_interface *interface,
return -ENODEV;
}
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (dev == NULL) {
pr_err("%s() Unable to allocate memory\n", __func__);
return -ENOMEM;
diff --git a/drivers/media/usb/au0828/au0828-input.c b/drivers/media/usb/au0828/au0828-input.c
index 3d3368202cd0..9de5e7fdbbef 100644
--- a/drivers/media/usb/au0828/au0828-input.c
+++ b/drivers/media/usb/au0828/au0828-input.c
@@ -283,7 +283,7 @@ int au0828_rc_register(struct au0828_dev *dev)
if (!i2c_rc_dev_addr)
return -ENODEV;
- ir = kzalloc(sizeof(*ir), GFP_KERNEL);
+ ir = kzalloc_obj(*ir, GFP_KERNEL);
rc = rc_allocate_device(RC_DRIVER_IR_RAW);
if (!ir || !rc)
goto error;
diff --git a/drivers/media/usb/cx231xx/cx231xx-cards.c b/drivers/media/usb/cx231xx/cx231xx-cards.c
index 691f073892b3..00029ea23c63 100644
--- a/drivers/media/usb/cx231xx/cx231xx-cards.c
+++ b/drivers/media/usb/cx231xx/cx231xx-cards.c
@@ -1295,7 +1295,7 @@ void cx231xx_card_setup(struct cx231xx *dev)
u8 eeprom[256];
struct i2c_client client;
};
- struct eeprom *e = kzalloc(sizeof(*e), GFP_KERNEL);
+ struct eeprom *e = kzalloc_obj(*e, GFP_KERNEL);
if (e == NULL) {
dev_err(dev->dev,
@@ -1381,7 +1381,7 @@ static int cx231xx_media_device_init(struct cx231xx *dev,
#ifdef CONFIG_MEDIA_CONTROLLER
struct media_device *mdev;
- mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
+ mdev = kzalloc_obj(*mdev, GFP_KERNEL);
if (!mdev)
return -ENOMEM;
diff --git a/drivers/media/usb/cx231xx/cx231xx-dvb.c b/drivers/media/usb/cx231xx/cx231xx-dvb.c
index 0037b4b1381e..913d53abd0e4 100644
--- a/drivers/media/usb/cx231xx/cx231xx-dvb.c
+++ b/drivers/media/usb/cx231xx/cx231xx-dvb.c
@@ -627,7 +627,7 @@ static int dvb_init(struct cx231xx *dev)
return 0;
}
- dvb = kzalloc(sizeof(struct cx231xx_dvb), GFP_KERNEL);
+ dvb = kzalloc_obj(struct cx231xx_dvb, GFP_KERNEL);
if (dvb == NULL) {
dev_info(dev->dev,
diff --git a/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c b/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
index f1c79f351ec8..acbc951dbdc0 100644
--- a/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
+++ b/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
@@ -392,7 +392,7 @@ static int dvb_usbv2_media_device_init(struct dvb_usb_adapter *adap)
struct dvb_usb_device *d = adap_to_d(adap);
struct usb_device *udev = d->udev;
- mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
+ mdev = kzalloc_obj(*mdev, GFP_KERNEL);
if (!mdev)
return -ENOMEM;
@@ -904,7 +904,7 @@ int dvb_usbv2_probe(struct usb_interface *intf,
goto err;
}
- d = kzalloc(sizeof(struct dvb_usb_device), GFP_KERNEL);
+ d = kzalloc_obj(struct dvb_usb_device, GFP_KERNEL);
if (!d) {
dev_err(&udev->dev, "%s: kzalloc() failed\n", KBUILD_MODNAME);
ret = -ENOMEM;
diff --git a/drivers/media/usb/dvb-usb-v2/mxl111sf-demod.c b/drivers/media/usb/dvb-usb-v2/mxl111sf-demod.c
index a6ad5f477520..4811f4d1ac87 100644
--- a/drivers/media/usb/dvb-usb-v2/mxl111sf-demod.c
+++ b/drivers/media/usb/dvb-usb-v2/mxl111sf-demod.c
@@ -577,7 +577,7 @@ struct dvb_frontend *mxl111sf_demod_attach(struct mxl111sf_state *mxl_state,
mxl_dbg("()");
- state = kzalloc(sizeof(struct mxl111sf_demod_state), GFP_KERNEL);
+ state = kzalloc_obj(struct mxl111sf_demod_state, GFP_KERNEL);
if (state == NULL)
return NULL;
diff --git a/drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.c b/drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.c
index 6686f75cbd94..0cc78fd8e916 100644
--- a/drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.c
+++ b/drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.c
@@ -482,7 +482,7 @@ struct dvb_frontend *mxl111sf_tuner_attach(struct dvb_frontend *fe,
mxl_dbg("()");
- state = kzalloc(sizeof(struct mxl111sf_tuner_state), GFP_KERNEL);
+ state = kzalloc_obj(struct mxl111sf_tuner_state, GFP_KERNEL);
if (state == NULL)
return NULL;
diff --git a/drivers/media/usb/dvb-usb/af9005-fe.c b/drivers/media/usb/dvb-usb/af9005-fe.c
index 404e56b32145..b6fb72c97aef 100644
--- a/drivers/media/usb/dvb-usb/af9005-fe.c
+++ b/drivers/media/usb/dvb-usb/af9005-fe.c
@@ -1423,7 +1423,7 @@ struct dvb_frontend *af9005_fe_attach(struct dvb_usb_device *d)
struct af9005_fe_state *state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct af9005_fe_state), GFP_KERNEL);
+ state = kzalloc_obj(struct af9005_fe_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/usb/dvb-usb/cinergyT2-fe.c b/drivers/media/usb/dvb-usb/cinergyT2-fe.c
index efb207c23a64..84f167a463ce 100644
--- a/drivers/media/usb/dvb-usb/cinergyT2-fe.c
+++ b/drivers/media/usb/dvb-usb/cinergyT2-fe.c
@@ -268,8 +268,8 @@ static const struct dvb_frontend_ops cinergyt2_fe_ops;
struct dvb_frontend *cinergyt2_fe_attach(struct dvb_usb_device *d)
{
- struct cinergyt2_fe_state *s = kzalloc(sizeof(
- struct cinergyt2_fe_state), GFP_KERNEL);
+ struct cinergyt2_fe_state *s = kzalloc_obj(struct cinergyt2_fe_state,
+ GFP_KERNEL);
if (s == NULL)
return NULL;
diff --git a/drivers/media/usb/dvb-usb/dtt200u-fe.c b/drivers/media/usb/dvb-usb/dtt200u-fe.c
index 586afe22d817..30d2e6d46b5b 100644
--- a/drivers/media/usb/dvb-usb/dtt200u-fe.c
+++ b/drivers/media/usb/dvb-usb/dtt200u-fe.c
@@ -206,7 +206,7 @@ struct dvb_frontend* dtt200u_fe_attach(struct dvb_usb_device *d)
struct dtt200u_fe_state* state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(struct dtt200u_fe_state), GFP_KERNEL);
+ state = kzalloc_obj(struct dtt200u_fe_state, GFP_KERNEL);
if (state == NULL)
goto error;
diff --git a/drivers/media/usb/dvb-usb/dvb-usb-dvb.c b/drivers/media/usb/dvb-usb/dvb-usb-dvb.c
index 0a7f8ba90992..94e1e7ce278d 100644
--- a/drivers/media/usb/dvb-usb/dvb-usb-dvb.c
+++ b/drivers/media/usb/dvb-usb/dvb-usb-dvb.c
@@ -103,7 +103,7 @@ static int dvb_usb_media_device_init(struct dvb_usb_adapter *adap)
struct dvb_usb_device *d = adap->dev;
struct usb_device *udev = d->udev;
- mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
+ mdev = kzalloc_obj(*mdev, GFP_KERNEL);
if (!mdev)
return -ENOMEM;
diff --git a/drivers/media/usb/dvb-usb/dvb-usb-init.c b/drivers/media/usb/dvb-usb/dvb-usb-init.c
index fbf58012becd..656401276d09 100644
--- a/drivers/media/usb/dvb-usb/dvb-usb-init.c
+++ b/drivers/media/usb/dvb-usb/dvb-usb-init.c
@@ -278,7 +278,7 @@ int dvb_usb_device_init(struct usb_interface *intf,
if (du != NULL)
*du = NULL;
- d = kzalloc(sizeof(*d), GFP_KERNEL);
+ d = kzalloc_obj(*d, GFP_KERNEL);
if (!d) {
err("no memory for 'struct dvb_usb_device'");
return -ENOMEM;
diff --git a/drivers/media/usb/dvb-usb/vp702x-fe.c b/drivers/media/usb/dvb-usb/vp702x-fe.c
index c1e7931900ee..0f9bd7abbcec 100644
--- a/drivers/media/usb/dvb-usb/vp702x-fe.c
+++ b/drivers/media/usb/dvb-usb/vp702x-fe.c
@@ -323,7 +323,8 @@ static const struct dvb_frontend_ops vp702x_fe_ops;
struct dvb_frontend * vp702x_fe_attach(struct dvb_usb_device *d)
{
- struct vp702x_fe_state *s = kzalloc(sizeof(struct vp702x_fe_state), GFP_KERNEL);
+ struct vp702x_fe_state *s = kzalloc_obj(struct vp702x_fe_state,
+ GFP_KERNEL);
if (s == NULL)
goto error;
diff --git a/drivers/media/usb/dvb-usb/vp7045-fe.c b/drivers/media/usb/dvb-usb/vp7045-fe.c
index e99740ec2650..a6555fc0b79a 100644
--- a/drivers/media/usb/dvb-usb/vp7045-fe.c
+++ b/drivers/media/usb/dvb-usb/vp7045-fe.c
@@ -140,7 +140,8 @@ static const struct dvb_frontend_ops vp7045_fe_ops;
struct dvb_frontend * vp7045_fe_attach(struct dvb_usb_device *d)
{
- struct vp7045_fe_state *s = kzalloc(sizeof(struct vp7045_fe_state), GFP_KERNEL);
+ struct vp7045_fe_state *s = kzalloc_obj(struct vp7045_fe_state,
+ GFP_KERNEL);
if (s == NULL)
goto error;
diff --git a/drivers/media/usb/em28xx/em28xx-audio.c b/drivers/media/usb/em28xx/em28xx-audio.c
index ce1b0d9e0741..ca8432d47301 100644
--- a/drivers/media/usb/em28xx/em28xx-audio.c
+++ b/drivers/media/usb/em28xx/em28xx-audio.c
@@ -750,7 +750,7 @@ static int em28xx_audio_urb_init(struct em28xx *dev)
if (!dev->adev.transfer_buffer)
return -ENOMEM;
- dev->adev.urb = kcalloc(num_urb, sizeof(*dev->adev.urb), GFP_KERNEL);
+ dev->adev.urb = kzalloc_objs(*dev->adev.urb, num_urb, GFP_KERNEL);
if (!dev->adev.urb) {
kfree(dev->adev.transfer_buffer);
return -ENOMEM;
diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c
index a51cbcf429e1..2fa43caaa968 100644
--- a/drivers/media/usb/em28xx/em28xx-cards.c
+++ b/drivers/media/usb/em28xx/em28xx-cards.c
@@ -3488,7 +3488,7 @@ static int em28xx_media_device_init(struct em28xx *dev,
#ifdef CONFIG_MEDIA_CONTROLLER
struct media_device *mdev;
- mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
+ mdev = kzalloc_obj(*mdev, GFP_KERNEL);
if (!mdev)
return -ENOMEM;
@@ -3905,7 +3905,7 @@ static int em28xx_usb_probe(struct usb_interface *intf,
}
/* allocate memory for our device state and initialize it */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
retval = -ENOMEM;
goto err;
diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c
index b94f5c70ab75..c6151d2a21a6 100644
--- a/drivers/media/usb/em28xx/em28xx-dvb.c
+++ b/drivers/media/usb/em28xx/em28xx-dvb.c
@@ -1500,7 +1500,7 @@ static int em28xx_dvb_init(struct em28xx *dev)
dev_info(&dev->intf->dev, "Binding DVB extension\n");
- dvb = kzalloc(sizeof(*dvb), GFP_KERNEL);
+ dvb = kzalloc_obj(*dvb, GFP_KERNEL);
if (!dvb)
return -ENOMEM;
diff --git a/drivers/media/usb/em28xx/em28xx-input.c b/drivers/media/usb/em28xx/em28xx-input.c
index 5f3b00869bdb..f8de173affd5 100644
--- a/drivers/media/usb/em28xx/em28xx-input.c
+++ b/drivers/media/usb/em28xx/em28xx-input.c
@@ -724,7 +724,7 @@ static int em28xx_ir_init(struct em28xx *dev)
dev_info(&dev->intf->dev, "Registering input extension\n");
- ir = kzalloc(sizeof(*ir), GFP_KERNEL);
+ ir = kzalloc_obj(*ir, GFP_KERNEL);
if (!ir)
goto ref_put;
rc = rc_allocate_device(RC_DRIVER_SCANCODE);
@@ -765,7 +765,7 @@ static int em28xx_ir_init(struct em28xx *dev)
goto error;
}
- ir->i2c_client = kzalloc(sizeof(*ir->i2c_client), GFP_KERNEL);
+ ir->i2c_client = kzalloc_obj(*ir->i2c_client, GFP_KERNEL);
if (!ir->i2c_client)
goto error;
ir->i2c_client->adapter = &ir->dev->i2c_adap[dev->def_i2c_bus];
diff --git a/drivers/media/usb/em28xx/em28xx-video.c b/drivers/media/usb/em28xx/em28xx-video.c
index 2dfa3242a7ab..ca88b6b13724 100644
--- a/drivers/media/usb/em28xx/em28xx-video.c
+++ b/drivers/media/usb/em28xx/em28xx-video.c
@@ -2529,7 +2529,7 @@ static int em28xx_v4l2_init(struct em28xx *dev)
mutex_lock(&dev->lock);
- v4l2 = kzalloc(sizeof(*v4l2), GFP_KERNEL);
+ v4l2 = kzalloc_obj(*v4l2, GFP_KERNEL);
if (!v4l2) {
mutex_unlock(&dev->lock);
return -ENOMEM;
diff --git a/drivers/media/usb/go7007/go7007-driver.c b/drivers/media/usb/go7007/go7007-driver.c
index 468406302cd5..77f4d9a249ea 100644
--- a/drivers/media/usb/go7007/go7007-driver.c
+++ b/drivers/media/usb/go7007/go7007-driver.c
@@ -694,7 +694,7 @@ struct go7007 *go7007_alloc(const struct go7007_board_info *board,
{
struct go7007 *go;
- go = kzalloc(sizeof(struct go7007), GFP_KERNEL);
+ go = kzalloc_obj(struct go7007, GFP_KERNEL);
if (go == NULL)
return NULL;
go->dev = dev;
diff --git a/drivers/media/usb/go7007/go7007-usb.c b/drivers/media/usb/go7007/go7007-usb.c
index 334cdde81a5c..8a42aaac9cba 100644
--- a/drivers/media/usb/go7007/go7007-usb.c
+++ b/drivers/media/usb/go7007/go7007-usb.c
@@ -1115,7 +1115,7 @@ static int go7007_usb_probe(struct usb_interface *intf,
if (go == NULL)
return -ENOMEM;
- usb = kzalloc(sizeof(struct go7007_usb), GFP_KERNEL);
+ usb = kzalloc_obj(struct go7007_usb, GFP_KERNEL);
if (usb == NULL) {
kfree(go);
return -ENOMEM;
diff --git a/drivers/media/usb/go7007/s2250-board.c b/drivers/media/usb/go7007/s2250-board.c
index a155b987282f..23f577b0cfbf 100644
--- a/drivers/media/usb/go7007/s2250-board.c
+++ b/drivers/media/usb/go7007/s2250-board.c
@@ -509,7 +509,7 @@ static int s2250_probe(struct i2c_client *client)
if (IS_ERR(audio))
return PTR_ERR(audio);
- state = kzalloc(sizeof(struct s2250), GFP_KERNEL);
+ state = kzalloc_obj(struct s2250, GFP_KERNEL);
if (state == NULL) {
i2c_unregister_device(audio);
return -ENOMEM;
diff --git a/drivers/media/usb/go7007/snd-go7007.c b/drivers/media/usb/go7007/snd-go7007.c
index 9a6bd87fce03..c294c9486611 100644
--- a/drivers/media/usb/go7007/snd-go7007.c
+++ b/drivers/media/usb/go7007/snd-go7007.c
@@ -207,7 +207,7 @@ int go7007_snd_init(struct go7007 *go)
dev++;
return -ENOENT;
}
- gosnd = kmalloc(sizeof(struct go7007_snd), GFP_KERNEL);
+ gosnd = kmalloc_obj(struct go7007_snd, GFP_KERNEL);
if (gosnd == NULL)
return -ENOMEM;
spin_lock_init(&gosnd->lock);
diff --git a/drivers/media/usb/gspca/stv06xx/stv06xx_hdcs.c b/drivers/media/usb/gspca/stv06xx/stv06xx_hdcs.c
index 303b055fefea..ecb73b0b186b 100644
--- a/drivers/media/usb/gspca/stv06xx/stv06xx_hdcs.c
+++ b/drivers/media/usb/gspca/stv06xx/stv06xx_hdcs.c
@@ -368,7 +368,7 @@ static int hdcs_probe_1x00(struct sd *sd)
sd->gspca_dev.cam.cam_mode = hdcs1x00_mode;
sd->gspca_dev.cam.nmodes = ARRAY_SIZE(hdcs1x00_mode);
- hdcs = kmalloc(sizeof(struct hdcs), GFP_KERNEL);
+ hdcs = kmalloc_obj(struct hdcs, GFP_KERNEL);
if (!hdcs)
return -ENOMEM;
@@ -425,7 +425,7 @@ static int hdcs_probe_1020(struct sd *sd)
sd->gspca_dev.cam.cam_mode = hdcs1020_mode;
sd->gspca_dev.cam.nmodes = ARRAY_SIZE(hdcs1020_mode);
- hdcs = kmalloc(sizeof(struct hdcs), GFP_KERNEL);
+ hdcs = kmalloc_obj(struct hdcs, GFP_KERNEL);
if (!hdcs)
return -ENOMEM;
diff --git a/drivers/media/usb/gspca/stv06xx/stv06xx_pb0100.c b/drivers/media/usb/gspca/stv06xx/stv06xx_pb0100.c
index ae382b3b5f7f..984e6283ce83 100644
--- a/drivers/media/usb/gspca/stv06xx/stv06xx_pb0100.c
+++ b/drivers/media/usb/gspca/stv06xx/stv06xx_pb0100.c
@@ -126,7 +126,7 @@ static int pb0100_init_controls(struct sd *sd)
.def = 1,
};
- ctrls = kzalloc(sizeof(*ctrls), GFP_KERNEL);
+ ctrls = kzalloc_obj(*ctrls, GFP_KERNEL);
if (!ctrls)
return -ENOMEM;
diff --git a/drivers/media/usb/hackrf/hackrf.c b/drivers/media/usb/hackrf/hackrf.c
index 0b50de8775a3..599ebcad2bcc 100644
--- a/drivers/media/usb/hackrf/hackrf.c
+++ b/drivers/media/usb/hackrf/hackrf.c
@@ -1348,7 +1348,7 @@ static int hackrf_probe(struct usb_interface *intf,
int ret;
u8 u8tmp, buf[BUF_SIZE];
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/usb/hdpvr/hdpvr-core.c b/drivers/media/usb/hdpvr/hdpvr-core.c
index 52e05a69c46e..eba330e00fb7 100644
--- a/drivers/media/usb/hdpvr/hdpvr-core.c
+++ b/drivers/media/usb/hdpvr/hdpvr-core.c
@@ -276,7 +276,7 @@ static int hdpvr_probe(struct usb_interface *interface,
int retval = -ENOMEM;
/* allocate memory for our device state and initialize it */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
dev_err(&interface->dev, "Out of memory\n");
goto error;
diff --git a/drivers/media/usb/hdpvr/hdpvr-video.c b/drivers/media/usb/hdpvr/hdpvr-video.c
index 8c7ae362d992..54c0484a14d8 100644
--- a/drivers/media/usb/hdpvr/hdpvr-video.c
+++ b/drivers/media/usb/hdpvr/hdpvr-video.c
@@ -147,7 +147,7 @@ int hdpvr_alloc_buffers(struct hdpvr_device *dev, uint count)
for (i = 0; i < count; i++) {
- buf = kzalloc(sizeof(struct hdpvr_buffer), GFP_KERNEL);
+ buf = kzalloc_obj(struct hdpvr_buffer, GFP_KERNEL);
if (!buf) {
v4l2_err(&dev->v4l2_dev, "cannot allocate buffer\n");
goto exit;
@@ -379,7 +379,7 @@ static int hdpvr_stop_streaming(struct hdpvr_device *dev)
static int hdpvr_open(struct file *file)
{
- struct hdpvr_fh *fh = kzalloc(sizeof(*fh), GFP_KERNEL);
+ struct hdpvr_fh *fh = kzalloc_obj(*fh, GFP_KERNEL);
if (fh == NULL)
return -ENOMEM;
diff --git a/drivers/media/usb/msi2500/msi2500.c b/drivers/media/usb/msi2500/msi2500.c
index 33099f39146a..330955ddb703 100644
--- a/drivers/media/usb/msi2500/msi2500.c
+++ b/drivers/media/usb/msi2500/msi2500.c
@@ -1170,7 +1170,7 @@ static int msi2500_probe(struct usb_interface *intf,
.max_speed_hz = 12000000,
};
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/media/usb/pvrusb2/pvrusb2-context.c b/drivers/media/usb/pvrusb2/pvrusb2-context.c
index 73c95ba2328a..ca970f7f4bc0 100644
--- a/drivers/media/usb/pvrusb2/pvrusb2-context.c
+++ b/drivers/media/usb/pvrusb2/pvrusb2-context.c
@@ -204,7 +204,7 @@ struct pvr2_context *pvr2_context_create(
void (*setup_func)(struct pvr2_context *))
{
struct pvr2_context *mp = NULL;
- mp = kzalloc(sizeof(*mp),GFP_KERNEL);
+ mp = kzalloc_obj(*mp, GFP_KERNEL);
if (!mp) goto done;
pvr2_trace(PVR2_TRACE_CTXT,"pvr2_context %p (create)",mp);
mp->setup_func = setup_func;
diff --git a/drivers/media/usb/pvrusb2/pvrusb2-dvb.c b/drivers/media/usb/pvrusb2/pvrusb2-dvb.c
index 3610139fb9ad..064c11b7effe 100644
--- a/drivers/media/usb/pvrusb2/pvrusb2-dvb.c
+++ b/drivers/media/usb/pvrusb2/pvrusb2-dvb.c
@@ -449,7 +449,7 @@ struct pvr2_dvb_adapter *pvr2_dvb_create(struct pvr2_context *pvr)
the DVB side of the driver either. For now. */
return NULL;
}
- adap = kzalloc(sizeof(*adap), GFP_KERNEL);
+ adap = kzalloc_obj(*adap, GFP_KERNEL);
if (!adap) return adap;
pvr2_channel_init(&adap->channel, pvr);
adap->channel.check_func = pvr2_dvb_internal_check;
diff --git a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
index 5807734ae26c..fe988c6b693f 100644
--- a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
@@ -2367,7 +2367,7 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,
goto fail;
}
- hdw = kzalloc(sizeof(*hdw),GFP_KERNEL);
+ hdw = kzalloc_obj(*hdw, GFP_KERNEL);
pvr2_trace(PVR2_TRACE_INIT,"pvr2_hdw_create: hdw=%p, type \"%s\"",
hdw,hdw_desc->description);
pvr2_trace(PVR2_TRACE_INFO, "Hardware description: %s",
@@ -2424,8 +2424,8 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,
hdw->control_cnt = CTRLDEF_COUNT;
hdw->control_cnt += MPEGDEF_COUNT;
- hdw->controls = kcalloc(hdw->control_cnt, sizeof(struct pvr2_ctrl),
- GFP_KERNEL);
+ hdw->controls = kzalloc_objs(struct pvr2_ctrl, hdw->control_cnt,
+ GFP_KERNEL);
if (!hdw->controls) goto fail;
hdw->hdw_desc = hdw_desc;
hdw->ir_scheme_active = hdw->hdw_desc->ir_scheme;
@@ -2450,9 +2450,8 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,
}
/* Define and configure additional controls from cx2341x module. */
- hdw->mpeg_ctrl_info = kcalloc(MPEGDEF_COUNT,
- sizeof(*(hdw->mpeg_ctrl_info)),
- GFP_KERNEL);
+ hdw->mpeg_ctrl_info = kzalloc_objs(*(hdw->mpeg_ctrl_info),
+ MPEGDEF_COUNT, GFP_KERNEL);
if (!hdw->mpeg_ctrl_info) goto fail;
for (idx = 0; idx < MPEGDEF_COUNT; idx++) {
cptr = hdw->controls + idx + CTRLDEF_COUNT;
diff --git a/drivers/media/usb/pvrusb2/pvrusb2-io.c b/drivers/media/usb/pvrusb2/pvrusb2-io.c
index 28ffe7981f8c..1341967ac666 100644
--- a/drivers/media/usb/pvrusb2/pvrusb2-io.c
+++ b/drivers/media/usb/pvrusb2/pvrusb2-io.c
@@ -299,7 +299,7 @@ static int pvr2_stream_buffer_count(struct pvr2_stream *sp, unsigned int cnt)
if (scnt > sp->buffer_slot_count) {
struct pvr2_buffer **nb;
- nb = kmalloc_array(scnt, sizeof(*nb), GFP_KERNEL);
+ nb = kmalloc_objs(*nb, scnt, GFP_KERNEL);
if (!nb) return -ENOMEM;
if (sp->buffer_slot_count) {
memcpy(nb, sp->buffers,
@@ -311,7 +311,7 @@ static int pvr2_stream_buffer_count(struct pvr2_stream *sp, unsigned int cnt)
}
while (sp->buffer_total_count < cnt) {
struct pvr2_buffer *bp;
- bp = kmalloc(sizeof(*bp), GFP_KERNEL);
+ bp = kmalloc_obj(*bp, GFP_KERNEL);
if (!bp) return -ENOMEM;
ret = pvr2_buffer_init(bp, sp, sp->buffer_total_count);
if (ret) {
@@ -460,7 +460,7 @@ static void buffer_complete(struct urb *urb)
struct pvr2_stream *pvr2_stream_create(void)
{
struct pvr2_stream *sp;
- sp = kzalloc(sizeof(*sp), GFP_KERNEL);
+ sp = kzalloc_obj(*sp, GFP_KERNEL);
if (!sp) return sp;
pvr2_trace(PVR2_TRACE_INIT, "pvr2_stream_create: sp=%p", sp);
pvr2_stream_init(sp);
diff --git a/drivers/media/usb/pvrusb2/pvrusb2-ioread.c b/drivers/media/usb/pvrusb2/pvrusb2-ioread.c
index 46f8013849b9..d397231f153d 100644
--- a/drivers/media/usb/pvrusb2/pvrusb2-ioread.c
+++ b/drivers/media/usb/pvrusb2/pvrusb2-ioread.c
@@ -73,7 +73,7 @@ static void pvr2_ioread_done(struct pvr2_ioread *cp)
struct pvr2_ioread *pvr2_ioread_create(void)
{
struct pvr2_ioread *cp;
- cp = kzalloc(sizeof(*cp),GFP_KERNEL);
+ cp = kzalloc_obj(*cp, GFP_KERNEL);
if (!cp) return NULL;
pvr2_trace(PVR2_TRACE_STRUCT,"pvr2_ioread_create id=%p",cp);
if (pvr2_ioread_init(cp) < 0) {
diff --git a/drivers/media/usb/pvrusb2/pvrusb2-sysfs.c b/drivers/media/usb/pvrusb2/pvrusb2-sysfs.c
index 3077399901aa..f2cb644ca3d7 100644
--- a/drivers/media/usb/pvrusb2/pvrusb2-sysfs.c
+++ b/drivers/media/usb/pvrusb2/pvrusb2-sysfs.c
@@ -289,7 +289,7 @@ static void pvr2_sysfs_add_control(struct pvr2_sysfs *sfp,int ctl_id)
cptr = pvr2_hdw_get_ctrl_by_index(sfp->channel.hdw,ctl_id);
if (!cptr) return;
- cip = kzalloc(sizeof(*cip),GFP_KERNEL);
+ cip = kzalloc_obj(*cip, GFP_KERNEL);
if (!cip) return;
pvr2_sysfs_trace("Creating pvr2_sysfs_ctl_item id=%p",cip);
@@ -411,7 +411,7 @@ static void pvr2_sysfs_add_debugifc(struct pvr2_sysfs *sfp)
struct pvr2_sysfs_debugifc *dip;
int ret;
- dip = kzalloc(sizeof(*dip),GFP_KERNEL);
+ dip = kzalloc_obj(*dip, GFP_KERNEL);
if (!dip) return;
sysfs_attr_init(&dip->attr_debugcmd.attr);
dip->attr_debugcmd.attr.name = "debugcmd";
@@ -615,7 +615,7 @@ static void class_dev_create(struct pvr2_sysfs *sfp)
usb_dev = pvr2_hdw_get_dev(sfp->channel.hdw);
if (!usb_dev) return;
- class_dev = kzalloc(sizeof(*class_dev),GFP_KERNEL);
+ class_dev = kzalloc_obj(*class_dev, GFP_KERNEL);
if (!class_dev) return;
pvr2_sysfs_trace("Creating class_dev id=%p",class_dev);
@@ -748,7 +748,7 @@ static void pvr2_sysfs_internal_check(struct pvr2_channel *chp)
void pvr2_sysfs_create(struct pvr2_context *mp)
{
struct pvr2_sysfs *sfp;
- sfp = kzalloc(sizeof(*sfp),GFP_KERNEL);
+ sfp = kzalloc_obj(*sfp, GFP_KERNEL);
if (!sfp)
return;
pvr2_trace(PVR2_TRACE_STRUCT,"Creating pvr2_sysfs id=%p",sfp);
diff --git a/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c b/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c
index f9535a484738..6fd0bfb5f699 100644
--- a/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c
+++ b/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c
@@ -944,7 +944,7 @@ static int pvr2_v4l2_open(struct file *file)
return -EIO;
}
- fhp = kzalloc(sizeof(*fhp),GFP_KERNEL);
+ fhp = kzalloc_obj(*fhp, GFP_KERNEL);
if (!fhp) {
return -ENOMEM;
}
@@ -1236,7 +1236,7 @@ struct pvr2_v4l2 *pvr2_v4l2_create(struct pvr2_context *mnp)
{
struct pvr2_v4l2 *vp;
- vp = kzalloc(sizeof(*vp),GFP_KERNEL);
+ vp = kzalloc_obj(*vp, GFP_KERNEL);
if (!vp) return vp;
pvr2_channel_init(&vp->channel,mnp);
pvr2_trace(PVR2_TRACE_STRUCT,"Creating pvr2_v4l2 id=%p",vp);
@@ -1244,12 +1244,12 @@ struct pvr2_v4l2 *pvr2_v4l2_create(struct pvr2_context *mnp)
vp->channel.check_func = pvr2_v4l2_internal_check;
/* register streams */
- vp->dev_video = kzalloc(sizeof(*vp->dev_video),GFP_KERNEL);
+ vp->dev_video = kzalloc_obj(*vp->dev_video, GFP_KERNEL);
if (!vp->dev_video) goto fail;
pvr2_v4l2_dev_init(vp->dev_video,vp,VFL_TYPE_VIDEO);
if (pvr2_hdw_get_input_available(vp->channel.mc_head->hdw) &
(1 << PVR2_CVAL_INPUT_RADIO)) {
- vp->dev_radio = kzalloc(sizeof(*vp->dev_radio),GFP_KERNEL);
+ vp->dev_radio = kzalloc_obj(*vp->dev_radio, GFP_KERNEL);
if (!vp->dev_radio) goto fail;
pvr2_v4l2_dev_init(vp->dev_radio,vp,VFL_TYPE_RADIO);
}
diff --git a/drivers/media/usb/pwc/pwc-if.c b/drivers/media/usb/pwc/pwc-if.c
index c6e5d031f068..b57502237f3a 100644
--- a/drivers/media/usb/pwc/pwc-if.c
+++ b/drivers/media/usb/pwc/pwc-if.c
@@ -1026,7 +1026,7 @@ static int usb_pwc_probe(struct usb_interface *intf, const struct usb_device_id
PWC_WARNING("Warning: more than 1 configuration available.\n");
/* Allocate structure, initialize pointers, mutexes, etc. and link it to the usb_device */
- pdev = kzalloc(sizeof(struct pwc_device), GFP_KERNEL);
+ pdev = kzalloc_obj(struct pwc_device, GFP_KERNEL);
if (pdev == NULL) {
PWC_ERROR("Oops, could not allocate memory for pwc_device.\n");
return -ENOMEM;
diff --git a/drivers/media/usb/s2255/s2255drv.c b/drivers/media/usb/s2255/s2255drv.c
index 8332f2c5aed7..189a356eaf34 100644
--- a/drivers/media/usb/s2255/s2255drv.c
+++ b/drivers/media/usb/s2255/s2255drv.c
@@ -2207,7 +2207,7 @@ static int s2255_probe(struct usb_interface *interface,
int fw_size;
/* allocate memory for our device state and initialize it to zero */
- dev = kzalloc(sizeof(struct s2255_dev), GFP_KERNEL);
+ dev = kzalloc_obj(struct s2255_dev, GFP_KERNEL);
if (dev == NULL) {
s2255_dev_err(&interface->dev, "out of memory\n");
return -ENOMEM;
@@ -2221,7 +2221,7 @@ static int s2255_probe(struct usb_interface *interface,
refcount_set(&dev->num_channels, 0);
dev->pid = id->idProduct;
- dev->fw_data = kzalloc(sizeof(struct s2255_fw), GFP_KERNEL);
+ dev->fw_data = kzalloc_obj(struct s2255_fw, GFP_KERNEL);
if (!dev->fw_data)
goto errorFWDATA1;
mutex_init(&dev->lock);
diff --git a/drivers/media/usb/siano/smsusb.c b/drivers/media/usb/siano/smsusb.c
index 2c8179a84991..4d9cb4184ca2 100644
--- a/drivers/media/usb/siano/smsusb.c
+++ b/drivers/media/usb/siano/smsusb.c
@@ -367,7 +367,7 @@ static void *siano_media_device_register(struct smsusb_device_t *dev,
struct sms_board *board = sms_get_board(board_id);
int ret;
- mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
+ mdev = kzalloc_obj(*mdev, GFP_KERNEL);
if (!mdev)
return NULL;
@@ -397,7 +397,7 @@ static int smsusb_init_device(struct usb_interface *intf, int board_id)
int align = 0;
/* create device object */
- dev = kzalloc(sizeof(struct smsusb_device_t), GFP_KERNEL);
+ dev = kzalloc_obj(struct smsusb_device_t, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/media/usb/stk1160/stk1160-core.c b/drivers/media/usb/stk1160/stk1160-core.c
index 25d725c2ab3c..ec4a9e2f42ab 100644
--- a/drivers/media/usb/stk1160/stk1160-core.c
+++ b/drivers/media/usb/stk1160/stk1160-core.c
@@ -295,7 +295,7 @@ static int stk1160_probe(struct usb_interface *interface,
return rc;
}
- dev = kzalloc(sizeof(struct stk1160), GFP_KERNEL);
+ dev = kzalloc_obj(struct stk1160, GFP_KERNEL);
if (dev == NULL) {
kfree(alt_max_pkt_size);
return -ENOMEM;
diff --git a/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c b/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
index 9e016b71aa91..9cd0ea41300c 100644
--- a/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
+++ b/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
@@ -1606,7 +1606,7 @@ static int ttusb_probe(struct usb_interface *intf, const struct usb_device_id *i
if (intf->altsetting->desc.bInterfaceNumber != 1) return -ENODEV;
- if (!(ttusb = kzalloc(sizeof(struct ttusb), GFP_KERNEL)))
+ if (!(ttusb = kzalloc_obj(struct ttusb, GFP_KERNEL)))
return -ENOMEM;
ttusb->dev = udev;
diff --git a/drivers/media/usb/ttusb-dec/ttusb_dec.c b/drivers/media/usb/ttusb-dec/ttusb_dec.c
index b4575fe89c95..24ba5c1c48d2 100644
--- a/drivers/media/usb/ttusb-dec/ttusb_dec.c
+++ b/drivers/media/usb/ttusb-dec/ttusb_dec.c
@@ -809,8 +809,7 @@ static void ttusb_dec_process_urb(struct urb *urb)
b = urb->transfer_buffer + d->offset;
length = d->actual_length;
- if ((frame = kmalloc(sizeof(struct urb_frame),
- GFP_ATOMIC))) {
+ if ((frame = kmalloc_obj(struct urb_frame, GFP_ATOMIC))) {
unsigned long flags;
memcpy(frame->data, b, length);
@@ -1061,8 +1060,7 @@ static int ttusb_dec_start_sec_feed(struct dvb_demux_feed *dvbdmxfeed)
if (!result) {
if (c_length == 2) {
- if (!(finfo = kmalloc(sizeof(struct filter_info),
- GFP_ATOMIC)))
+ if (!(finfo = kmalloc_obj(struct filter_info, GFP_ATOMIC)))
return -ENOMEM;
finfo->stream_id = c[1];
@@ -1644,7 +1642,7 @@ static int ttusb_dec_probe(struct usb_interface *intf,
udev = interface_to_usbdev(intf);
- if (!(dec = kzalloc(sizeof(struct ttusb_dec), GFP_KERNEL))) {
+ if (!(dec = kzalloc_obj(struct ttusb_dec, GFP_KERNEL))) {
printk("%s: couldn't allocate memory.\n", __func__);
return -ENOMEM;
}
diff --git a/drivers/media/usb/ttusb-dec/ttusbdecfe.c b/drivers/media/usb/ttusb-dec/ttusbdecfe.c
index dff6bf532ce3..df4ade291db4 100644
--- a/drivers/media/usb/ttusb-dec/ttusbdecfe.c
+++ b/drivers/media/usb/ttusb-dec/ttusbdecfe.c
@@ -198,7 +198,7 @@ struct dvb_frontend* ttusbdecfe_dvbt_attach(const struct ttusbdecfe_config* conf
struct ttusbdecfe_state* state = NULL;
/* allocate memory for the internal state */
- state = kmalloc(sizeof(struct ttusbdecfe_state), GFP_KERNEL);
+ state = kmalloc_obj(struct ttusbdecfe_state, GFP_KERNEL);
if (state == NULL)
return NULL;
@@ -218,7 +218,7 @@ struct dvb_frontend* ttusbdecfe_dvbs_attach(const struct ttusbdecfe_config* conf
struct ttusbdecfe_state* state = NULL;
/* allocate memory for the internal state */
- state = kmalloc(sizeof(struct ttusbdecfe_state), GFP_KERNEL);
+ state = kmalloc_obj(struct ttusbdecfe_state, GFP_KERNEL);
if (state == NULL)
return NULL;
diff --git a/drivers/media/usb/usbtv/usbtv-core.c b/drivers/media/usb/usbtv/usbtv-core.c
index 1f7620cd2996..12ed28253d0c 100644
--- a/drivers/media/usb/usbtv/usbtv-core.c
+++ b/drivers/media/usb/usbtv/usbtv-core.c
@@ -87,7 +87,7 @@ static int usbtv_probe(struct usb_interface *intf,
size = size * usb_endpoint_maxp_mult(&ep->desc);
/* Device structure */
- usbtv = kzalloc(sizeof(struct usbtv), GFP_KERNEL);
+ usbtv = kzalloc_obj(struct usbtv, GFP_KERNEL);
if (usbtv == NULL)
return -ENOMEM;
usbtv->dev = dev;
diff --git a/drivers/media/usb/uvc/uvc_ctrl.c b/drivers/media/usb/uvc/uvc_ctrl.c
index f0f6f8454d9c..2c511d1d9bf9 100644
--- a/drivers/media/usb/uvc/uvc_ctrl.c
+++ b/drivers/media/usb/uvc/uvc_ctrl.c
@@ -600,7 +600,7 @@ static const struct uvc_control_mapping *uvc_ctrl_filter_plf_mapping(
u8 init_val;
int ret;
- buf = kmalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kmalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return NULL;
@@ -3339,8 +3339,7 @@ static int uvc_ctrl_init_chain(struct uvc_video_chain *chain)
if (ncontrols == 0)
continue;
- entity->controls = kcalloc(ncontrols, sizeof(*ctrl),
- GFP_KERNEL);
+ entity->controls = kzalloc_objs(*ctrl, ncontrols, GFP_KERNEL);
if (entity->controls == NULL)
return -ENOMEM;
entity->ncontrols = ncontrols;
diff --git a/drivers/media/usb/uvc/uvc_debugfs.c b/drivers/media/usb/uvc/uvc_debugfs.c
index 14fa41cb8148..1ea4a4e82662 100644
--- a/drivers/media/usb/uvc/uvc_debugfs.c
+++ b/drivers/media/usb/uvc/uvc_debugfs.c
@@ -29,7 +29,7 @@ static int uvc_debugfs_stats_open(struct inode *inode, struct file *file)
struct uvc_streaming *stream = inode->i_private;
struct uvc_debugfs_buffer *buf;
- buf = kmalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kmalloc_obj(*buf, GFP_KERNEL);
if (buf == NULL)
return -ENOMEM;
diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
index aa3e8d295e0f..05c5f70c0a93 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -200,7 +200,7 @@ static struct uvc_streaming *uvc_stream_new(struct uvc_device *dev,
{
struct uvc_streaming *stream;
- stream = kzalloc(sizeof(*stream), GFP_KERNEL);
+ stream = kzalloc_obj(*stream, GFP_KERNEL);
if (stream == NULL)
return NULL;
@@ -1761,7 +1761,7 @@ static struct uvc_video_chain *uvc_alloc_chain(struct uvc_device *dev)
{
struct uvc_video_chain *chain;
- chain = kzalloc(sizeof(*chain), GFP_KERNEL);
+ chain = kzalloc_obj(*chain, GFP_KERNEL);
if (chain == NULL)
return NULL;
@@ -2193,7 +2193,7 @@ static int uvc_probe(struct usb_interface *intf,
int ret;
/* Allocate memory for the device and initialize it. */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (dev == NULL)
return -ENOMEM;
diff --git a/drivers/media/usb/uvc/uvc_metadata.c b/drivers/media/usb/uvc/uvc_metadata.c
index c23b174965c3..59e2b05aaf21 100644
--- a/drivers/media/usb/uvc/uvc_metadata.c
+++ b/drivers/media/usb/uvc/uvc_metadata.c
@@ -181,7 +181,7 @@ static int uvc_meta_detect_msxu(struct uvc_device *dev)
* USB requires buffers aligned in a special way, simplest way is to
* make sure that query_ctrl will work is to kmalloc() them.
*/
- data = kmalloc(sizeof(*data), GFP_KERNEL);
+ data = kmalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/media/usb/uvc/uvc_status.c b/drivers/media/usb/uvc/uvc_status.c
index 231cfee8e7c2..018d25101bb8 100644
--- a/drivers/media/usb/uvc/uvc_status.c
+++ b/drivers/media/usb/uvc/uvc_status.c
@@ -263,7 +263,7 @@ int uvc_status_init(struct uvc_device *dev)
if (ep == NULL)
return 0;
- dev->status = kzalloc(sizeof(*dev->status), GFP_KERNEL);
+ dev->status = kzalloc_obj(*dev->status, GFP_KERNEL);
if (!dev->status)
return -ENOMEM;
diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c
index 30c160daed8c..98e6c4135dfd 100644
--- a/drivers/media/usb/uvc/uvc_v4l2.c
+++ b/drivers/media/usb/uvc/uvc_v4l2.c
@@ -133,7 +133,7 @@ static int uvc_ioctl_xu_ctrl_map(struct uvc_video_chain *chain,
return -EINVAL;
}
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (map == NULL)
return -ENOMEM;
@@ -572,7 +572,7 @@ static int uvc_v4l2_open(struct file *file)
uvc_dbg(stream->dev, CALLS, "%s\n", __func__);
/* Create the device handle. */
- handle = kzalloc(sizeof(*handle), GFP_KERNEL);
+ handle = kzalloc_obj(*handle, GFP_KERNEL);
if (!handle)
return -ENOMEM;
diff --git a/drivers/media/usb/uvc/uvc_video.c b/drivers/media/usb/uvc/uvc_video.c
index 59eb95a4b70c..249a225563f9 100644
--- a/drivers/media/usb/uvc/uvc_video.c
+++ b/drivers/media/usb/uvc/uvc_video.c
@@ -682,8 +682,7 @@ static int uvc_video_clock_init(struct uvc_clock *clock)
spin_lock_init(&clock->lock);
clock->size = 32;
- clock->samples = kmalloc_array(clock->size, sizeof(*clock->samples),
- GFP_KERNEL);
+ clock->samples = kmalloc_objs(*clock->samples, clock->size, GFP_KERNEL);
if (clock->samples == NULL)
return -ENOMEM;
diff --git a/drivers/media/v4l2-core/tuner-core.c b/drivers/media/v4l2-core/tuner-core.c
index 5687089bea6e..b6e7c11ef7e5 100644
--- a/drivers/media/v4l2-core/tuner-core.c
+++ b/drivers/media/v4l2-core/tuner-core.c
@@ -633,7 +633,7 @@ static int tuner_probe(struct i2c_client *client)
int ret;
#endif
- t = kzalloc(sizeof(struct tuner), GFP_KERNEL);
+ t = kzalloc_obj(struct tuner, GFP_KERNEL);
if (NULL == t)
return -ENOMEM;
v4l2_i2c_subdev_init(&t->sd, client, &tuner_ops);
diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c
index 1c08bba9ecb9..c04a0e7c6edf 100644
--- a/drivers/media/v4l2-core/v4l2-async.c
+++ b/drivers/media/v4l2-core/v4l2-async.c
@@ -779,7 +779,7 @@ int v4l2_async_subdev_endpoint_add(struct v4l2_subdev *sd,
{
struct v4l2_async_subdev_endpoint *ase;
- ase = kmalloc(sizeof(*ase), GFP_KERNEL);
+ ase = kmalloc_obj(*ase, GFP_KERNEL);
if (!ase)
return -ENOMEM;
diff --git a/drivers/media/v4l2-core/v4l2-ctrls-api.c b/drivers/media/v4l2-core/v4l2-ctrls-api.c
index 0078a04c5445..03040c8eaa79 100644
--- a/drivers/media/v4l2-core/v4l2-ctrls-api.c
+++ b/drivers/media/v4l2-core/v4l2-ctrls-api.c
@@ -431,8 +431,7 @@ int v4l2_g_ext_ctrls_common(struct v4l2_ctrl_handler *hdl,
return class_check(hdl, cs->which);
if (cs->count > ARRAY_SIZE(helper)) {
- helpers = kvmalloc_array(cs->count, sizeof(helper[0]),
- GFP_KERNEL);
+ helpers = kvmalloc_objs(helper[0], cs->count, GFP_KERNEL);
if (!helpers)
return -ENOMEM;
}
@@ -617,8 +616,7 @@ int try_set_ext_ctrls_common(struct v4l2_fh *fh,
return class_check(hdl, cs->which);
if (cs->count > ARRAY_SIZE(helper)) {
- helpers = kvmalloc_array(cs->count, sizeof(helper[0]),
- GFP_KERNEL);
+ helpers = kvmalloc_objs(helper[0], cs->count, GFP_KERNEL);
if (!helpers)
return -ENOMEM;
}
diff --git a/drivers/media/v4l2-core/v4l2-ctrls-core.c b/drivers/media/v4l2-core/v4l2-ctrls-core.c
index 79a157975f70..3e8b4a38b8ae 100644
--- a/drivers/media/v4l2-core/v4l2-ctrls-core.c
+++ b/drivers/media/v4l2-core/v4l2-ctrls-core.c
@@ -1725,8 +1725,8 @@ int v4l2_ctrl_handler_init_class(struct v4l2_ctrl_handler *hdl,
INIT_LIST_HEAD(&hdl->ctrls);
INIT_LIST_HEAD(&hdl->ctrl_refs);
hdl->nr_of_buckets = 1 + nr_of_controls_hint / 8;
- hdl->buckets = kvcalloc(hdl->nr_of_buckets, sizeof(hdl->buckets[0]),
- GFP_KERNEL);
+ hdl->buckets = kvzalloc_objs(hdl->buckets[0], hdl->nr_of_buckets,
+ GFP_KERNEL);
hdl->error = hdl->buckets ? 0 : -ENOMEM;
v4l2_ctrl_handler_init_request(hdl);
return hdl->error;
diff --git a/drivers/media/v4l2-core/v4l2-ctrls-request.c b/drivers/media/v4l2-core/v4l2-ctrls-request.c
index e77f722b36a4..e6d7f731d01a 100644
--- a/drivers/media/v4l2-core/v4l2-ctrls-request.c
+++ b/drivers/media/v4l2-core/v4l2-ctrls-request.c
@@ -198,7 +198,7 @@ v4l2_ctrls_find_req_obj(struct v4l2_ctrl_handler *hdl,
if (!set)
return ERR_PTR(-ENOMEM);
- new_hdl = kzalloc(sizeof(*new_hdl), GFP_KERNEL);
+ new_hdl = kzalloc_obj(*new_hdl, GFP_KERNEL);
if (!new_hdl)
return ERR_PTR(-ENOMEM);
@@ -341,7 +341,7 @@ void v4l2_ctrl_request_complete(struct media_request *req,
int ret;
/* Create a new request so the driver can return controls */
- hdl = kzalloc(sizeof(*hdl), GFP_KERNEL);
+ hdl = kzalloc_obj(*hdl, GFP_KERNEL);
if (!hdl)
return;
diff --git a/drivers/media/v4l2-core/v4l2-dev.c b/drivers/media/v4l2-core/v4l2-dev.c
index 10a126e50c1c..8add56232e84 100644
--- a/drivers/media/v4l2-core/v4l2-dev.c
+++ b/drivers/media/v4l2-core/v4l2-dev.c
@@ -146,7 +146,7 @@ static inline int devnode_find(struct video_device *vdev, int from, int to)
struct video_device *video_device_alloc(void)
{
- return kzalloc(sizeof(struct video_device), GFP_KERNEL);
+ return kzalloc_obj(struct video_device, GFP_KERNEL);
}
EXPORT_SYMBOL(video_device_alloc);
diff --git a/drivers/media/v4l2-core/v4l2-device.c b/drivers/media/v4l2-core/v4l2-device.c
index 63b12ef9d4d9..779ae282ab11 100644
--- a/drivers/media/v4l2-core/v4l2-device.c
+++ b/drivers/media/v4l2-core/v4l2-device.c
@@ -205,7 +205,7 @@ int __v4l2_device_register_subdev_nodes(struct v4l2_device *v4l2_dev,
if (sd->devnode)
continue;
- vdev = kzalloc(sizeof(*vdev), GFP_KERNEL);
+ vdev = kzalloc_obj(*vdev, GFP_KERNEL);
if (!vdev) {
err = -ENOMEM;
goto clean_up;
diff --git a/drivers/media/v4l2-core/v4l2-dv-timings.c b/drivers/media/v4l2-core/v4l2-dv-timings.c
index 346d1b0e10ce..a6233bdab3d4 100644
--- a/drivers/media/v4l2-core/v4l2-dv-timings.c
+++ b/drivers/media/v4l2-core/v4l2-dv-timings.c
@@ -1237,7 +1237,7 @@ struct v4l2_debugfs_if *v4l2_debugfs_if_alloc(struct dentry *root, u32 if_types,
if (IS_ERR_OR_NULL(root) || !if_types || !if_read)
return NULL;
- infoframes = kzalloc(sizeof(*infoframes), GFP_KERNEL);
+ infoframes = kzalloc_obj(*infoframes, GFP_KERNEL);
if (!infoframes)
return NULL;
diff --git a/drivers/media/v4l2-core/v4l2-event.c b/drivers/media/v4l2-core/v4l2-event.c
index 3898ff7edddb..b92561fb65d4 100644
--- a/drivers/media/v4l2-core/v4l2-event.c
+++ b/drivers/media/v4l2-core/v4l2-event.c
@@ -235,7 +235,7 @@ int v4l2_event_subscribe(struct v4l2_fh *fh,
if (elems < 1)
elems = 1;
- sev = kvzalloc(struct_size(sev, events, elems), GFP_KERNEL);
+ sev = kvzalloc_flex(*sev, events, elems, GFP_KERNEL);
if (!sev)
return -ENOMEM;
sev->elems = elems;
diff --git a/drivers/media/v4l2-core/v4l2-fh.c b/drivers/media/v4l2-core/v4l2-fh.c
index df3ba9d4674b..fdd247b945a3 100644
--- a/drivers/media/v4l2-core/v4l2-fh.c
+++ b/drivers/media/v4l2-core/v4l2-fh.c
@@ -57,7 +57,7 @@ EXPORT_SYMBOL_GPL(v4l2_fh_add);
int v4l2_fh_open(struct file *filp)
{
struct video_device *vdev = video_devdata(filp);
- struct v4l2_fh *fh = kzalloc(sizeof(*fh), GFP_KERNEL);
+ struct v4l2_fh *fh = kzalloc_obj(*fh, GFP_KERNEL);
if (fh == NULL)
return -ENOMEM;
diff --git a/drivers/media/v4l2-core/v4l2-flash-led-class.c b/drivers/media/v4l2-core/v4l2-flash-led-class.c
index 355595a0fefa..735434d4b4c2 100644
--- a/drivers/media/v4l2-core/v4l2-flash-led-class.c
+++ b/drivers/media/v4l2-core/v4l2-flash-led-class.c
@@ -443,8 +443,8 @@ static int v4l2_flash_init_controls(struct v4l2_flash *v4l2_flash,
return -ENOMEM;
/* allocate memory dynamically so as not to exceed stack frame size */
- ctrl_init_data = kcalloc(NUM_FLASH_CTRLS, sizeof(*ctrl_init_data),
- GFP_KERNEL);
+ ctrl_init_data = kzalloc_objs(*ctrl_init_data, NUM_FLASH_CTRLS,
+ GFP_KERNEL);
if (!ctrl_init_data)
return -ENOMEM;
diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
index 22ec702a4567..c3ea009b8ffb 100644
--- a/drivers/media/v4l2-core/v4l2-fwnode.c
+++ b/drivers/media/v4l2-core/v4l2-fwnode.c
@@ -785,7 +785,7 @@ int v4l2_fwnode_connector_add_link(struct fwnode_handle *fwnode,
if (!connector_ep)
return -ENOTCONN;
- link = kzalloc(sizeof(*link), GFP_KERNEL);
+ link = kzalloc_obj(*link, GFP_KERNEL);
if (!link) {
err = -ENOMEM;
goto err;
@@ -1257,7 +1257,7 @@ int v4l2_async_register_subdev_sensor(struct v4l2_subdev *sd)
if (WARN_ON(!sd->dev))
return -ENODEV;
- notifier = kzalloc(sizeof(*notifier), GFP_KERNEL);
+ notifier = kzalloc_obj(*notifier, GFP_KERNEL);
if (!notifier)
return -ENOMEM;
diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c
index b661f483dad3..2c933f4644aa 100644
--- a/drivers/media/v4l2-core/v4l2-mem2mem.c
+++ b/drivers/media/v4l2-core/v4l2-mem2mem.c
@@ -1190,7 +1190,7 @@ struct v4l2_m2m_dev *v4l2_m2m_init(const struct v4l2_m2m_ops *m2m_ops)
if (!m2m_ops || WARN_ON(!m2m_ops->device_run))
return ERR_PTR(-EINVAL);
- m2m_dev = kzalloc(sizeof *m2m_dev, GFP_KERNEL);
+ m2m_dev = kzalloc_obj(*m2m_dev, GFP_KERNEL);
if (!m2m_dev)
return ERR_PTR(-ENOMEM);
@@ -1238,7 +1238,7 @@ struct v4l2_m2m_ctx *v4l2_m2m_ctx_init(struct v4l2_m2m_dev *m2m_dev,
struct v4l2_m2m_queue_ctx *out_q_ctx, *cap_q_ctx;
int ret;
- m2m_ctx = kzalloc(sizeof *m2m_ctx, GFP_KERNEL);
+ m2m_ctx = kzalloc_obj(*m2m_ctx, GFP_KERNEL);
if (!m2m_ctx)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c
index 66842b975f91..c358cb40b829 100644
--- a/drivers/media/v4l2-core/v4l2-subdev.c
+++ b/drivers/media/v4l2-core/v4l2-subdev.c
@@ -99,7 +99,7 @@ static int subdev_open(struct file *file)
struct v4l2_subdev_fh *subdev_fh;
int ret;
- subdev_fh = kzalloc(sizeof(*subdev_fh), GFP_KERNEL);
+ subdev_fh = kzalloc_obj(*subdev_fh, GFP_KERNEL);
if (subdev_fh == NULL)
return -ENOMEM;
@@ -1606,7 +1606,7 @@ __v4l2_subdev_state_alloc(struct v4l2_subdev *sd, const char *lock_name,
struct v4l2_subdev_state *state;
int ret;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return ERR_PTR(-ENOMEM);
@@ -1620,8 +1620,8 @@ __v4l2_subdev_state_alloc(struct v4l2_subdev *sd, const char *lock_name,
/* Drivers that support streams do not need the legacy pad config */
if (!(sd->flags & V4L2_SUBDEV_FL_STREAMS) && sd->entity.num_pads) {
- state->pads = kvcalloc(sd->entity.num_pads,
- sizeof(*state->pads), GFP_KERNEL);
+ state->pads = kvzalloc_objs(*state->pads, sd->entity.num_pads,
+ GFP_KERNEL);
if (!state->pads) {
ret = -ENOMEM;
goto err;
@@ -1889,9 +1889,9 @@ v4l2_subdev_init_stream_configs(struct v4l2_subdev_stream_configs *stream_config
}
if (new_configs.num_configs) {
- new_configs.configs = kvcalloc(new_configs.num_configs,
- sizeof(*new_configs.configs),
- GFP_KERNEL);
+ new_configs.configs = kvzalloc_objs(*new_configs.configs,
+ new_configs.num_configs,
+ GFP_KERNEL);
if (!new_configs.configs)
return -ENOMEM;
diff --git a/drivers/memory/samsung/exynos-srom.c b/drivers/memory/samsung/exynos-srom.c
index d913fb901973..1863c85642dd 100644
--- a/drivers/memory/samsung/exynos-srom.c
+++ b/drivers/memory/samsung/exynos-srom.c
@@ -54,7 +54,7 @@ exynos_srom_alloc_reg_dump(const unsigned long *rdump,
struct exynos_srom_reg_dump *rd;
unsigned int i;
- rd = kcalloc(nr_rdump, sizeof(*rd), GFP_KERNEL);
+ rd = kzalloc_objs(*rd, nr_rdump, GFP_KERNEL);
if (!rd)
return NULL;
diff --git a/drivers/memory/tegra/tegra124-emc.c b/drivers/memory/tegra/tegra124-emc.c
index 9978ff911c47..68496f9012ff 100644
--- a/drivers/memory/tegra/tegra124-emc.c
+++ b/drivers/memory/tegra/tegra124-emc.c
@@ -1291,7 +1291,7 @@ emc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data)
if (node->id != TEGRA_ICC_EMEM)
continue;
- ndata = kzalloc(sizeof(*ndata), GFP_KERNEL);
+ ndata = kzalloc_obj(*ndata, GFP_KERNEL);
if (!ndata)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/memory/tegra/tegra124.c b/drivers/memory/tegra/tegra124.c
index 9d7393e19f12..965bfab127f5 100644
--- a/drivers/memory/tegra/tegra124.c
+++ b/drivers/memory/tegra/tegra124.c
@@ -1182,7 +1182,7 @@ tegra124_mc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data
if (node->id != idx)
continue;
- ndata = kzalloc(sizeof(*ndata), GFP_KERNEL);
+ ndata = kzalloc_obj(*ndata, GFP_KERNEL);
if (!ndata)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/memory/tegra/tegra20-emc.c b/drivers/memory/tegra/tegra20-emc.c
index 398cb8ae2e38..48a546315d1c 100644
--- a/drivers/memory/tegra/tegra20-emc.c
+++ b/drivers/memory/tegra/tegra20-emc.c
@@ -958,7 +958,7 @@ emc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data)
if (node->id != TEGRA_ICC_EMEM)
continue;
- ndata = kzalloc(sizeof(*ndata), GFP_KERNEL);
+ ndata = kzalloc_obj(*ndata, GFP_KERNEL);
if (!ndata)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/memory/tegra/tegra20.c b/drivers/memory/tegra/tegra20.c
index a3022e715dee..40bee3ff4a45 100644
--- a/drivers/memory/tegra/tegra20.c
+++ b/drivers/memory/tegra/tegra20.c
@@ -401,7 +401,7 @@ tegra20_mc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data)
if (node->id != idx)
continue;
- ndata = kzalloc(sizeof(*ndata), GFP_KERNEL);
+ ndata = kzalloc_obj(*ndata, GFP_KERNEL);
if (!ndata)
return ERR_PTR(-ENOMEM);
@@ -615,7 +615,7 @@ static int tegra20_mc_stats_show(struct seq_file *s, void *unused)
struct tegra20_mc_client_stat *stats;
unsigned int i;
- stats = kcalloc(mc->soc->num_clients + 1, sizeof(*stats), GFP_KERNEL);
+ stats = kzalloc_objs(*stats, mc->soc->num_clients + 1, GFP_KERNEL);
if (!stats)
return -ENOMEM;
diff --git a/drivers/memory/tegra/tegra30-emc.c b/drivers/memory/tegra/tegra30-emc.c
index 914116d8ec16..8226cadc1f8f 100644
--- a/drivers/memory/tegra/tegra30-emc.c
+++ b/drivers/memory/tegra/tegra30-emc.c
@@ -1476,7 +1476,7 @@ emc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data)
if (node->id != TEGRA_ICC_EMEM)
continue;
- ndata = kzalloc(sizeof(*ndata), GFP_KERNEL);
+ ndata = kzalloc_obj(*ndata, GFP_KERNEL);
if (!ndata)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/memory/tegra/tegra30.c b/drivers/memory/tegra/tegra30.c
index d3e685c8431f..d9f255da5c0e 100644
--- a/drivers/memory/tegra/tegra30.c
+++ b/drivers/memory/tegra/tegra30.c
@@ -1344,7 +1344,7 @@ tegra30_mc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data)
if (node->id != idx)
continue;
- ndata = kzalloc(sizeof(*ndata), GFP_KERNEL);
+ ndata = kzalloc_obj(*ndata, GFP_KERNEL);
if (!ndata)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/memstick/core/memstick.c b/drivers/memstick/core/memstick.c
index acafc910bbac..d3641ba53bc9 100644
--- a/drivers/memstick/core/memstick.c
+++ b/drivers/memstick/core/memstick.c
@@ -380,8 +380,7 @@ EXPORT_SYMBOL(memstick_set_rw_addr);
static struct memstick_dev *memstick_alloc_card(struct memstick_host *host)
{
- struct memstick_dev *card = kzalloc(sizeof(struct memstick_dev),
- GFP_KERNEL);
+ struct memstick_dev *card = kzalloc_obj(struct memstick_dev, GFP_KERNEL);
struct memstick_dev *old_card = host->card;
struct ms_id_register id_reg;
diff --git a/drivers/memstick/core/ms_block.c b/drivers/memstick/core/ms_block.c
index 1af157ce0a63..6835849bf309 100644
--- a/drivers/memstick/core/ms_block.c
+++ b/drivers/memstick/core/ms_block.c
@@ -1203,8 +1203,7 @@ static int msb_read_boot_blocks(struct msb_data *msb)
dbg_verbose("Start of a scan for the boot blocks");
if (!msb->boot_page) {
- page = kmalloc_array(2, sizeof(struct ms_boot_page),
- GFP_KERNEL);
+ page = kmalloc_objs(struct ms_boot_page, 2, GFP_KERNEL);
if (!page)
return -ENOMEM;
@@ -2151,7 +2150,7 @@ static int msb_probe(struct memstick_dev *card)
struct msb_data *msb;
int rc = 0;
- msb = kzalloc(sizeof(struct msb_data), GFP_KERNEL);
+ msb = kzalloc_obj(struct msb_data, GFP_KERNEL);
if (!msb)
return -ENOMEM;
memstick_set_drvdata(card, msb);
@@ -2225,7 +2224,7 @@ static int msb_resume(struct memstick_dev *card)
#endif
mutex_lock(&card->host->lock);
- new_msb = kzalloc(sizeof(struct msb_data), GFP_KERNEL);
+ new_msb = kzalloc_obj(struct msb_data, GFP_KERNEL);
if (!new_msb)
goto out;
diff --git a/drivers/memstick/core/mspro_block.c b/drivers/memstick/core/mspro_block.c
index e507bb11c802..57c2b28f88bd 100644
--- a/drivers/memstick/core/mspro_block.c
+++ b/drivers/memstick/core/mspro_block.c
@@ -939,9 +939,8 @@ static int mspro_block_read_attributes(struct memstick_dev *card)
} else
attr_count = attr->count;
- msb->attr_group.attrs = kcalloc(attr_count + 1,
- sizeof(*msb->attr_group.attrs),
- GFP_KERNEL);
+ msb->attr_group.attrs = kzalloc_objs(*msb->attr_group.attrs,
+ attr_count + 1, GFP_KERNEL);
if (!msb->attr_group.attrs) {
rc = -ENOMEM;
goto out_free_attr;
@@ -955,7 +954,7 @@ static int mspro_block_read_attributes(struct memstick_dev *card)
}
for (cnt = 0; cnt < attr_count; ++cnt) {
- s_attr = kzalloc(sizeof(struct mspro_sys_attr), GFP_KERNEL);
+ s_attr = kzalloc_obj(struct mspro_sys_attr, GFP_KERNEL);
if (!s_attr) {
rc = -ENOMEM;
goto out_free_buffer;
@@ -1211,7 +1210,7 @@ static int mspro_block_probe(struct memstick_dev *card)
struct mspro_block_data *msb;
int rc = 0;
- msb = kzalloc(sizeof(struct mspro_block_data), GFP_KERNEL);
+ msb = kzalloc_obj(struct mspro_block_data, GFP_KERNEL);
if (!msb)
return -ENOMEM;
memstick_set_drvdata(card, msb);
@@ -1298,7 +1297,7 @@ static int mspro_block_resume(struct memstick_dev *card)
unsigned char cnt;
mutex_lock(&host->lock);
- new_msb = kzalloc(sizeof(struct mspro_block_data), GFP_KERNEL);
+ new_msb = kzalloc_obj(struct mspro_block_data, GFP_KERNEL);
if (!new_msb) {
rc = -ENOMEM;
goto out_unlock;
diff --git a/drivers/memstick/host/jmb38x_ms.c b/drivers/memstick/host/jmb38x_ms.c
index 79e66e30417c..122300b89279 100644
--- a/drivers/memstick/host/jmb38x_ms.c
+++ b/drivers/memstick/host/jmb38x_ms.c
@@ -926,7 +926,7 @@ static int jmb38x_ms_probe(struct pci_dev *pdev,
goto err_out_int;
}
- jm = kzalloc(struct_size(jm, hosts, cnt), GFP_KERNEL);
+ jm = kzalloc_flex(*jm, hosts, cnt, GFP_KERNEL);
if (!jm) {
rc = -ENOMEM;
goto err_out_int;
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
index e60a8d3947c9..de771eb6facd 100644
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@ -1771,7 +1771,7 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id)
struct proc_dir_entry *dent;
#endif
- ioc = kzalloc(sizeof(MPT_ADAPTER), GFP_KERNEL);
+ ioc = kzalloc_obj(MPT_ADAPTER, GFP_KERNEL);
if (ioc == NULL) {
printk(KERN_ERR MYNAM ": ERROR - Insufficient memory to add adapter!\n");
return -ENOMEM;
@@ -5700,8 +5700,7 @@ mpt_inactive_raid_volumes(MPT_ADAPTER *ioc, u8 channel, u8 id)
buffer->PhysDisk[i].PhysDiskNum, &phys_disk) != 0)
continue;
- if ((component_info = kmalloc(sizeof (*component_info),
- GFP_KERNEL)) == NULL)
+ if ((component_info = kmalloc_obj(*component_info, GFP_KERNEL)) == NULL)
continue;
component_info->volumeID = id;
diff --git a/drivers/message/fusion/mptfc.c b/drivers/message/fusion/mptfc.c
index cd52db6fe76c..b65bc679106a 100644
--- a/drivers/message/fusion/mptfc.c
+++ b/drivers/message/fusion/mptfc.c
@@ -484,7 +484,7 @@ mptfc_register_dev(MPT_ADAPTER *ioc, int channel, FCDevicePage0_t *pg0)
}
}
if (new_ri) { /* allocate one */
- ri = kzalloc(sizeof(struct mptfc_rport_info), GFP_KERNEL);
+ ri = kzalloc_obj(struct mptfc_rport_info, GFP_KERNEL);
if (!ri)
return;
list_add_tail(&ri->list, &ioc->fc_rports);
@@ -572,7 +572,7 @@ mptfc_target_alloc(struct scsi_target *starget)
struct mptfc_rport_info *ri;
int rc;
- vtarget = kzalloc(sizeof(VirtTarget), GFP_KERNEL);
+ vtarget = kzalloc_obj(VirtTarget, GFP_KERNEL);
if (!vtarget)
return -ENOMEM;
starget->hostdata = vtarget;
@@ -650,7 +650,7 @@ mptfc_sdev_init(struct scsi_device *sdev)
hd = shost_priv(sdev->host);
ioc = hd->ioc;
- vdevice = kzalloc(sizeof(VirtDevice), GFP_KERNEL);
+ vdevice = kzalloc_obj(VirtDevice, GFP_KERNEL);
if (!vdevice) {
printk(MYIOC_s_ERR_FMT "sdev_init kmalloc(%zd) FAILED!\n",
ioc->name, sizeof(VirtDevice));
diff --git a/drivers/message/fusion/mptlan.c b/drivers/message/fusion/mptlan.c
index de2e7bcf4784..0da0d472aaff 100644
--- a/drivers/message/fusion/mptlan.c
+++ b/drivers/message/fusion/mptlan.c
@@ -391,14 +391,13 @@ mpt_lan_open(struct net_device *dev)
"a moment.\n");
}
- priv->mpt_txfidx = kmalloc_array(priv->tx_max_out, sizeof(int),
- GFP_KERNEL);
+ priv->mpt_txfidx = kmalloc_objs(int, priv->tx_max_out, GFP_KERNEL);
if (priv->mpt_txfidx == NULL)
goto out;
priv->mpt_txfidx_tail = -1;
- priv->SendCtl = kcalloc(priv->tx_max_out, sizeof(struct BufferControl),
- GFP_KERNEL);
+ priv->SendCtl = kzalloc_objs(struct BufferControl, priv->tx_max_out,
+ GFP_KERNEL);
if (priv->SendCtl == NULL)
goto out_mpt_txfidx;
for (i = 0; i < priv->tx_max_out; i++)
@@ -406,15 +405,13 @@ mpt_lan_open(struct net_device *dev)
dlprintk((KERN_INFO MYNAM "@lo: Finished initializing SendCtl\n"));
- priv->mpt_rxfidx = kmalloc_array(priv->max_buckets_out, sizeof(int),
- GFP_KERNEL);
+ priv->mpt_rxfidx = kmalloc_objs(int, priv->max_buckets_out, GFP_KERNEL);
if (priv->mpt_rxfidx == NULL)
goto out_SendCtl;
priv->mpt_rxfidx_tail = -1;
- priv->RcvCtl = kcalloc(priv->max_buckets_out,
- sizeof(struct BufferControl),
- GFP_KERNEL);
+ priv->RcvCtl = kzalloc_objs(struct BufferControl, priv->max_buckets_out,
+ GFP_KERNEL);
if (priv->RcvCtl == NULL)
goto out_mpt_rxfidx;
for (i = 0; i < priv->max_buckets_out; i++)
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index 5276bdb7acc2..0b9e787ae3d5 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -603,7 +603,7 @@ mptsas_add_device_component(MPT_ADAPTER *ioc, u8 channel, u8 id,
}
}
- sas_info = kzalloc(sizeof(struct mptsas_device_info), GFP_KERNEL);
+ sas_info = kzalloc_obj(struct mptsas_device_info, GFP_KERNEL);
if (!sas_info)
goto out;
@@ -756,7 +756,7 @@ mptsas_add_device_component_starget_ir(MPT_ADAPTER *ioc,
}
}
- sas_info = kzalloc(sizeof(struct mptsas_device_info), GFP_KERNEL);
+ sas_info = kzalloc_obj(struct mptsas_device_info, GFP_KERNEL);
if (sas_info) {
sas_info->fw.id = starget->id;
sas_info->os.id = starget->id;
@@ -907,8 +907,8 @@ mptsas_setup_wide_ports(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info)
* Forming a port
*/
if (!port_details) {
- port_details = kzalloc(sizeof(struct
- mptsas_portinfo_details), GFP_KERNEL);
+ port_details = kzalloc_obj(struct mptsas_portinfo_details,
+ GFP_KERNEL);
if (!port_details)
goto out;
port_details->num_phys = 1;
@@ -1038,7 +1038,7 @@ mptsas_queue_rescan(MPT_ADAPTER *ioc)
{
struct fw_event_work *fw_event;
- fw_event = kzalloc(sizeof(*fw_event), GFP_ATOMIC);
+ fw_event = kzalloc_obj(*fw_event, GFP_ATOMIC);
if (!fw_event) {
printk(MYIOC_s_WARN_FMT "%s: failed at (line=%d)\n",
ioc->name, __func__, __LINE__);
@@ -1150,8 +1150,8 @@ mptsas_target_reset_queue(MPT_ADAPTER *ioc,
vtarget->deleted = 1; /* block IO */
}
- target_reset_list = kzalloc(sizeof(struct mptsas_target_reset_event),
- GFP_ATOMIC);
+ target_reset_list = kzalloc_obj(struct mptsas_target_reset_event,
+ GFP_ATOMIC);
if (!target_reset_list) {
dfailprintk(ioc, printk(MYIOC_s_WARN_FMT
"%s, failed to allocate mem @%d..!!\n",
@@ -1751,7 +1751,7 @@ mptsas_target_alloc(struct scsi_target *starget)
int i;
MPT_ADAPTER *ioc = hd->ioc;
- vtarget = kzalloc(sizeof(VirtTarget), GFP_KERNEL);
+ vtarget = kzalloc_obj(VirtTarget, GFP_KERNEL);
if (!vtarget)
return -ENOMEM;
@@ -1878,7 +1878,7 @@ mptsas_sdev_init(struct scsi_device *sdev)
int i;
MPT_ADAPTER *ioc = hd->ioc;
- vdevice = kzalloc(sizeof(VirtDevice), GFP_KERNEL);
+ vdevice = kzalloc_obj(VirtDevice, GFP_KERNEL);
if (!vdevice) {
printk(MYIOC_s_ERR_FMT "sdev_init kzalloc(%zd) FAILED!\n",
ioc->name, sizeof(VirtDevice));
@@ -2428,8 +2428,8 @@ mptsas_sas_io_unit_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info)
goto out_free_consistent;
port_info->num_phys = buffer->NumPhys;
- port_info->phy_info = kcalloc(port_info->num_phys,
- sizeof(struct mptsas_phyinfo), GFP_KERNEL);
+ port_info->phy_info = kzalloc_objs(struct mptsas_phyinfo,
+ port_info->num_phys, GFP_KERNEL);
if (!port_info->phy_info) {
error = -ENOMEM;
goto out_free_consistent;
@@ -2719,8 +2719,8 @@ mptsas_sas_expander_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info,
/* save config data */
port_info->num_phys = (buffer->NumPhys) ? buffer->NumPhys : 1;
- port_info->phy_info = kcalloc(port_info->num_phys,
- sizeof(struct mptsas_phyinfo), GFP_KERNEL);
+ port_info->phy_info = kzalloc_objs(struct mptsas_phyinfo,
+ port_info->num_phys, GFP_KERNEL);
if (!port_info->phy_info) {
error = -ENOMEM;
goto out_free_consistent;
@@ -3309,7 +3309,7 @@ mptsas_probe_hba_phys(MPT_ADAPTER *ioc)
struct mptsas_portinfo *port_info, *hba;
int error = -ENOMEM, i;
- hba = kzalloc(sizeof(struct mptsas_portinfo), GFP_KERNEL);
+ hba = kzalloc_obj(struct mptsas_portinfo, GFP_KERNEL);
if (! hba)
goto out;
@@ -3444,12 +3444,12 @@ mptsas_expander_event_add(MPT_ADAPTER *ioc,
int i;
__le64 sas_address;
- port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_KERNEL);
+ port_info = kzalloc_obj(struct mptsas_portinfo, GFP_KERNEL);
BUG_ON(!port_info);
port_info->num_phys = (expander_data->NumPhys) ?
expander_data->NumPhys : 1;
- port_info->phy_info = kcalloc(port_info->num_phys,
- sizeof(struct mptsas_phyinfo), GFP_KERNEL);
+ port_info->phy_info = kzalloc_objs(struct mptsas_phyinfo,
+ port_info->num_phys, GFP_KERNEL);
BUG_ON(!port_info->phy_info);
memcpy(&sas_address, &expander_data->SASAddress, sizeof(__le64));
for (i = 0; i < port_info->num_phys; i++) {
@@ -3677,7 +3677,7 @@ mptsas_expander_add(MPT_ADAPTER *ioc, u16 handle)
MPI_SAS_EXPAND_PGAD_FORM_SHIFT), handle)))
return NULL;
- port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_KERNEL);
+ port_info = kzalloc_obj(struct mptsas_portinfo, GFP_KERNEL);
if (!port_info) {
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
"%s: exit at line=%d\n", ioc->name,
@@ -3945,7 +3945,7 @@ mptsas_probe_expanders(MPT_ADAPTER *ioc)
continue;
}
- port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_KERNEL);
+ port_info = kzalloc_obj(struct mptsas_portinfo, GFP_KERNEL);
if (!port_info) {
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
"%s: exit at line=%d\n", ioc->name,
diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c
index 14707d19fbbd..62cf9d582386 100644
--- a/drivers/message/fusion/mptspi.c
+++ b/drivers/message/fusion/mptspi.c
@@ -405,7 +405,7 @@ static int mptspi_target_alloc(struct scsi_target *starget)
return -ENODEV;
ioc = hd->ioc;
- vtarget = kzalloc(sizeof(VirtTarget), GFP_KERNEL);
+ vtarget = kzalloc_obj(VirtTarget, GFP_KERNEL);
if (!vtarget)
return -ENOMEM;
@@ -725,7 +725,7 @@ static int mptspi_sdev_init(struct scsi_device *sdev)
mptscsih_is_phys_disk(ioc, 0, sdev->id) == 0)
return -ENXIO;
- vdevice = kzalloc(sizeof(VirtDevice), GFP_KERNEL);
+ vdevice = kzalloc_obj(VirtDevice, GFP_KERNEL);
if (!vdevice) {
printk(MYIOC_s_ERR_FMT "sdev_init kmalloc(%zd) FAILED!\n",
ioc->name, sizeof(VirtDevice));
@@ -1152,7 +1152,7 @@ static void mpt_work_wrapper(struct work_struct *work)
static void mpt_dv_raid(struct _MPT_SCSI_HOST *hd, int disk)
{
- struct work_queue_wrapper *wqw = kmalloc(sizeof(*wqw), GFP_ATOMIC);
+ struct work_queue_wrapper *wqw = kmalloc_obj(*wqw, GFP_ATOMIC);
MPT_ADAPTER *ioc = hd->ioc;
if (!wqw) {
@@ -1288,7 +1288,7 @@ mptspi_dv_renegotiate_work(struct work_struct *work)
static void
mptspi_dv_renegotiate(struct _MPT_SCSI_HOST *hd)
{
- struct work_queue_wrapper *wqw = kmalloc(sizeof(*wqw), GFP_ATOMIC);
+ struct work_queue_wrapper *wqw = kmalloc_obj(*wqw, GFP_ATOMIC);
if (!wqw)
return;
diff --git a/drivers/mfd/cros_ec_dev.c b/drivers/mfd/cros_ec_dev.c
index dc80a272726b..777cb2a24983 100644
--- a/drivers/mfd/cros_ec_dev.c
+++ b/drivers/mfd/cros_ec_dev.c
@@ -188,7 +188,7 @@ static int ec_device_probe(struct platform_device *pdev)
struct device_node *node;
struct device *dev = &pdev->dev;
struct cros_ec_platform *ec_platform = dev_get_platdata(dev);
- struct cros_ec_dev *ec = kzalloc(sizeof(*ec), GFP_KERNEL);
+ struct cros_ec_dev *ec = kzalloc_obj(*ec, GFP_KERNEL);
struct ec_response_pchg_count pchg_count;
int i;
diff --git a/drivers/mfd/dln2.c b/drivers/mfd/dln2.c
index fbbe82c6e75b..eb70156e5abf 100644
--- a/drivers/mfd/dln2.c
+++ b/drivers/mfd/dln2.c
@@ -125,7 +125,7 @@ int dln2_register_event_cb(struct platform_device *pdev, u16 id,
unsigned long flags;
int ret = 0;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -778,7 +778,7 @@ static int dln2_probe(struct usb_interface *interface,
if (ret)
return ret;
- dln2 = kzalloc(sizeof(*dln2), GFP_KERNEL);
+ dln2 = kzalloc_obj(*dln2, GFP_KERNEL);
if (!dln2)
return -ENOMEM;
diff --git a/drivers/mfd/ezx-pcap.c b/drivers/mfd/ezx-pcap.c
index 1be4557b7bdd..d98a02a073ac 100644
--- a/drivers/mfd/ezx-pcap.c
+++ b/drivers/mfd/ezx-pcap.c
@@ -302,7 +302,7 @@ int pcap_adc_async(struct pcap_chip *pcap, u8 bank, u32 flags, u8 ch[],
unsigned long irq_flags;
/* This will be freed after we have a result */
- req = kmalloc(sizeof(struct pcap_adc_request), GFP_KERNEL);
+ req = kmalloc_obj(struct pcap_adc_request, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/drivers/mfd/sm501.c b/drivers/mfd/sm501.c
index 50bf3260f65d..ae6af552f6d2 100644
--- a/drivers/mfd/sm501.c
+++ b/drivers/mfd/sm501.c
@@ -1335,7 +1335,7 @@ static int sm501_plat_probe(struct platform_device *dev)
struct sm501_devdata *sm;
int ret;
- sm = kzalloc(sizeof(*sm), GFP_KERNEL);
+ sm = kzalloc_obj(*sm, GFP_KERNEL);
if (!sm) {
ret = -ENOMEM;
goto err1;
@@ -1518,7 +1518,7 @@ static int sm501_pci_probe(struct pci_dev *dev,
struct sm501_devdata *sm;
int err;
- sm = kzalloc(sizeof(*sm), GFP_KERNEL);
+ sm = kzalloc_obj(*sm, GFP_KERNEL);
if (!sm) {
err = -ENOMEM;
goto err1;
diff --git a/drivers/mfd/syscon.c b/drivers/mfd/syscon.c
index e5d5def594f6..6bf0bcf49ff4 100644
--- a/drivers/mfd/syscon.c
+++ b/drivers/mfd/syscon.c
@@ -51,7 +51,7 @@ static struct syscon *of_syscon_register(struct device_node *np, bool check_res)
WARN_ON(!mutex_is_locked(&syscon_list_lock));
- struct syscon *syscon __free(kfree) = kzalloc(sizeof(*syscon), GFP_KERNEL);
+ struct syscon *syscon __free(kfree) = kzalloc_obj(*syscon, GFP_KERNEL);
if (!syscon)
return ERR_PTR(-ENOMEM);
@@ -212,7 +212,7 @@ int of_syscon_register_regmap(struct device_node *np, struct regmap *regmap)
if (!np || !regmap)
return -EINVAL;
- syscon = kzalloc(sizeof(*syscon), GFP_KERNEL);
+ syscon = kzalloc_obj(*syscon, GFP_KERNEL);
if (!syscon)
return -ENOMEM;
diff --git a/drivers/mfd/timberdale.c b/drivers/mfd/timberdale.c
index b059713db875..b44af8ca1360 100644
--- a/drivers/mfd/timberdale.c
+++ b/drivers/mfd/timberdale.c
@@ -649,7 +649,7 @@ static int timb_probe(struct pci_dev *dev,
struct msix_entry *msix_entries = NULL;
u8 ip_setup;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
@@ -698,8 +698,8 @@ static int timb_probe(struct pci_dev *dev,
goto err_config;
}
- msix_entries = kcalloc(TIMBERDALE_NR_IRQS, sizeof(*msix_entries),
- GFP_KERNEL);
+ msix_entries = kzalloc_objs(*msix_entries, TIMBERDALE_NR_IRQS,
+ GFP_KERNEL);
if (!msix_entries)
goto err_config;
diff --git a/drivers/mfd/twl4030-irq.c b/drivers/mfd/twl4030-irq.c
index d3ab40651307..4def9eeb964f 100644
--- a/drivers/mfd/twl4030-irq.c
+++ b/drivers/mfd/twl4030-irq.c
@@ -631,7 +631,7 @@ int twl4030_sih_setup(struct device *dev, int module, int irq_base)
return status;
}
- agent = kzalloc(sizeof(*agent), GFP_KERNEL);
+ agent = kzalloc_obj(*agent, GFP_KERNEL);
if (!agent)
return -ENOMEM;
diff --git a/drivers/mfd/ucb1x00-core.c b/drivers/mfd/ucb1x00-core.c
index 4b450d78a65f..b2f304984505 100644
--- a/drivers/mfd/ucb1x00-core.c
+++ b/drivers/mfd/ucb1x00-core.c
@@ -395,7 +395,7 @@ static int ucb1x00_add_dev(struct ucb1x00 *ucb, struct ucb1x00_driver *drv)
struct ucb1x00_dev *dev;
int ret;
- dev = kmalloc(sizeof(struct ucb1x00_dev), GFP_KERNEL);
+ dev = kmalloc_obj(struct ucb1x00_dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
@@ -513,7 +513,7 @@ static int ucb1x00_probe(struct mcp *mcp)
goto out;
}
- ucb = kzalloc(sizeof(struct ucb1x00), GFP_KERNEL);
+ ucb = kzalloc_obj(struct ucb1x00, GFP_KERNEL);
ret = -ENOMEM;
if (!ucb)
goto out;
diff --git a/drivers/mfd/ucb1x00-ts.c b/drivers/mfd/ucb1x00-ts.c
index 6e1b38f9f26c..ff1b018969d5 100644
--- a/drivers/mfd/ucb1x00-ts.c
+++ b/drivers/mfd/ucb1x00-ts.c
@@ -367,7 +367,7 @@ static int ucb1x00_ts_add(struct ucb1x00_dev *dev)
struct input_dev *idev;
int err;
- ts = kzalloc(sizeof(struct ucb1x00_ts), GFP_KERNEL);
+ ts = kzalloc_obj(struct ucb1x00_ts, GFP_KERNEL);
idev = input_allocate_device();
if (!ts || !idev) {
err = -ENOMEM;
diff --git a/drivers/mfd/viperboard.c b/drivers/mfd/viperboard.c
index ba867b7ecfad..7c0b1ae0c6bc 100644
--- a/drivers/mfd/viperboard.c
+++ b/drivers/mfd/viperboard.c
@@ -53,7 +53,7 @@ static int vprbrd_probe(struct usb_interface *interface,
int pipe, ret;
/* allocate memory for our device state and initialize it */
- vb = kzalloc(sizeof(*vb), GFP_KERNEL);
+ vb = kzalloc_obj(*vb, GFP_KERNEL);
if (!vb)
return -ENOMEM;
diff --git a/drivers/mfd/wm831x-auxadc.c b/drivers/mfd/wm831x-auxadc.c
index 18618a8f9206..5db027c904ad 100644
--- a/drivers/mfd/wm831x-auxadc.c
+++ b/drivers/mfd/wm831x-auxadc.c
@@ -35,7 +35,7 @@ static int wm831x_auxadc_read_irq(struct wm831x *wm831x,
int ret;
bool ena = false;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/drivers/misc/ad525x_dpot.c b/drivers/misc/ad525x_dpot.c
index 04683b981e54..8024378b4e61 100644
--- a/drivers/misc/ad525x_dpot.c
+++ b/drivers/misc/ad525x_dpot.c
@@ -686,7 +686,7 @@ int ad_dpot_probe(struct device *dev,
struct dpot_data *data;
int i, err = 0;
- data = kzalloc(sizeof(struct dpot_data), GFP_KERNEL);
+ data = kzalloc_obj(struct dpot_data, GFP_KERNEL);
if (!data) {
err = -ENOMEM;
goto exit;
diff --git a/drivers/misc/altera-stapl/altera.c b/drivers/misc/altera-stapl/altera.c
index bbe3967c3a4c..334117d3a214 100644
--- a/drivers/misc/altera-stapl/altera.c
+++ b/drivers/misc/altera-stapl/altera.c
@@ -290,13 +290,13 @@ static int altera_execute(struct altera_state *astate,
if (sym_count <= 0)
goto exit_done;
- vars = kcalloc(sym_count, sizeof(long), GFP_KERNEL);
+ vars = kzalloc_objs(long, sym_count, GFP_KERNEL);
if (vars == NULL)
status = -ENOMEM;
if (status == 0) {
- var_size = kcalloc(sym_count, sizeof(s32), GFP_KERNEL);
+ var_size = kzalloc_objs(s32, sym_count, GFP_KERNEL);
if (var_size == NULL)
status = -ENOMEM;
@@ -1098,8 +1098,8 @@ static int altera_execute(struct altera_state *astate,
/* Allocate a writable buffer for this array */
count = var_size[variable_id];
long_tmp = vars[variable_id];
- longptr_tmp = kcalloc(count, sizeof(long),
- GFP_KERNEL);
+ longptr_tmp = kzalloc_objs(long, count,
+ GFP_KERNEL);
vars[variable_id] = (long)longptr_tmp;
if (vars[variable_id] == 0) {
@@ -2342,8 +2342,7 @@ static int altera_get_act_info(u8 *p,
(p[proc_table + (13 * act_proc_id) + 8] & 0x03);
procptr =
- kzalloc(sizeof(struct altera_procinfo),
- GFP_KERNEL);
+ kzalloc_obj(struct altera_procinfo, GFP_KERNEL);
if (procptr == NULL)
status = -ENOMEM;
@@ -2399,7 +2398,7 @@ int altera_init(struct altera_config *config, const struct firmware *fw)
retval = -ENOMEM;
goto free_key;
}
- astate = kzalloc(sizeof(struct altera_state), GFP_KERNEL);
+ astate = kzalloc_obj(struct altera_state, GFP_KERNEL);
if (!astate) {
retval = -ENOMEM;
goto free_value;
diff --git a/drivers/misc/apds9802als.c b/drivers/misc/apds9802als.c
index 6db4db975b9a..26d5e002dfa4 100644
--- a/drivers/misc/apds9802als.c
+++ b/drivers/misc/apds9802als.c
@@ -217,7 +217,7 @@ static int apds9802als_probe(struct i2c_client *client)
int res;
struct als_data *data;
- data = kzalloc(sizeof(struct als_data), GFP_KERNEL);
+ data = kzalloc_obj(struct als_data, GFP_KERNEL);
if (data == NULL) {
dev_err(&client->dev, "Memory allocation failed\n");
return -ENOMEM;
diff --git a/drivers/misc/apds990x.c b/drivers/misc/apds990x.c
index 58946c4ff1a5..b057e659135f 100644
--- a/drivers/misc/apds990x.c
+++ b/drivers/misc/apds990x.c
@@ -1055,7 +1055,7 @@ static int apds990x_probe(struct i2c_client *client)
struct apds990x_chip *chip;
int err;
- chip = kzalloc(sizeof *chip, GFP_KERNEL);
+ chip = kzalloc_obj(*chip, GFP_KERNEL);
if (!chip)
return -ENOMEM;
diff --git a/drivers/misc/bcm-vk/bcm_vk_dev.c b/drivers/misc/bcm-vk/bcm_vk_dev.c
index d4a96137728d..cdcf334f0ede 100644
--- a/drivers/misc/bcm-vk/bcm_vk_dev.c
+++ b/drivers/misc/bcm-vk/bcm_vk_dev.c
@@ -1289,7 +1289,7 @@ static int bcm_vk_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
u32 boot_status;
/* allocate vk structure which is tied to kref for freeing */
- vk = kzalloc(sizeof(*vk), GFP_KERNEL);
+ vk = kzalloc_obj(*vk, GFP_KERNEL);
if (!vk)
return -ENOMEM;
diff --git a/drivers/misc/bcm-vk/bcm_vk_msg.c b/drivers/misc/bcm-vk/bcm_vk_msg.c
index 665a3888708a..8537c76e2541 100644
--- a/drivers/misc/bcm-vk/bcm_vk_msg.c
+++ b/drivers/misc/bcm-vk/bcm_vk_msg.c
@@ -700,7 +700,7 @@ int bcm_vk_send_shutdown_msg(struct bcm_vk *vk, u32 shut_type,
return -EINVAL;
}
- entry = kzalloc(struct_size(entry, to_v_msg, 1), GFP_KERNEL);
+ entry = kzalloc_flex(*entry, to_v_msg, 1, GFP_KERNEL);
if (!entry)
return -ENOMEM;
entry->to_v_blks = 1; /* always 1 block */
diff --git a/drivers/misc/bcm-vk/bcm_vk_sg.c b/drivers/misc/bcm-vk/bcm_vk_sg.c
index d309216ee181..bd8c726fdc0f 100644
--- a/drivers/misc/bcm-vk/bcm_vk_sg.c
+++ b/drivers/misc/bcm-vk/bcm_vk_sg.c
@@ -60,9 +60,7 @@ static int bcm_vk_dma_alloc(struct device *dev,
dma->nr_pages = last - first + 1;
/* Allocate DMA pages */
- dma->pages = kmalloc_array(dma->nr_pages,
- sizeof(struct page *),
- GFP_KERNEL);
+ dma->pages = kmalloc_objs(struct page *, dma->nr_pages, GFP_KERNEL);
if (!dma->pages)
return -ENOMEM;
diff --git a/drivers/misc/c2port/core.c b/drivers/misc/c2port/core.c
index babdb60cc46c..707871bc4a50 100644
--- a/drivers/misc/c2port/core.c
+++ b/drivers/misc/c2port/core.c
@@ -912,7 +912,7 @@ struct c2port_device *c2port_device_register(char *name,
unlikely(!ops->c2d_get) || unlikely(!ops->c2d_set))
return ERR_PTR(-EINVAL);
- c2dev = kzalloc(sizeof(struct c2port_device), GFP_KERNEL);
+ c2dev = kzalloc_obj(struct c2port_device, GFP_KERNEL);
if (unlikely(!c2dev))
return ERR_PTR(-ENOMEM);
diff --git a/drivers/misc/cardreader/rtsx_pcr.c b/drivers/misc/cardreader/rtsx_pcr.c
index f9952d76d6ed..d7211b305918 100644
--- a/drivers/misc/cardreader/rtsx_pcr.c
+++ b/drivers/misc/cardreader/rtsx_pcr.c
@@ -1385,8 +1385,7 @@ static int rtsx_pci_init_chip(struct rtsx_pcr *pcr)
pcr_dbg(pcr, "PID: 0x%04x, IC version: 0x%02x\n",
PCI_PID(pcr), pcr->ic_version);
- pcr->slots = kcalloc(pcr->num_slots, sizeof(struct rtsx_slot),
- GFP_KERNEL);
+ pcr->slots = kzalloc_objs(struct rtsx_slot, pcr->num_slots, GFP_KERNEL);
if (!pcr->slots)
return -ENOMEM;
@@ -1494,13 +1493,13 @@ static int rtsx_pci_probe(struct pci_dev *pcidev,
if (ret)
goto disable;
- pcr = kzalloc(sizeof(*pcr), GFP_KERNEL);
+ pcr = kzalloc_obj(*pcr, GFP_KERNEL);
if (!pcr) {
ret = -ENOMEM;
goto release_pci;
}
- handle = kzalloc(sizeof(*handle), GFP_KERNEL);
+ handle = kzalloc_obj(*handle, GFP_KERNEL);
if (!handle) {
ret = -ENOMEM;
goto free_pcr;
diff --git a/drivers/misc/cs5535-mfgpt.c b/drivers/misc/cs5535-mfgpt.c
index 2b6778d8d166..f0bfc6210dab 100644
--- a/drivers/misc/cs5535-mfgpt.c
+++ b/drivers/misc/cs5535-mfgpt.c
@@ -187,7 +187,7 @@ struct cs5535_mfgpt_timer *cs5535_mfgpt_alloc_timer(int timer_nr, int domain)
if (timer_nr < 0)
goto done;
- timer = kmalloc(sizeof(*timer), GFP_KERNEL);
+ timer = kmalloc_obj(*timer, GFP_KERNEL);
if (!timer) {
/* aw hell */
spin_lock_irqsave(&mfgpt->lock, flags);
diff --git a/drivers/misc/eeprom/max6875.c b/drivers/misc/eeprom/max6875.c
index a3e4cada3b51..dae682d8c4a7 100644
--- a/drivers/misc/eeprom/max6875.c
+++ b/drivers/misc/eeprom/max6875.c
@@ -144,7 +144,7 @@ static int max6875_probe(struct i2c_client *client)
if (client->addr & 1)
return -ENODEV;
- data = kzalloc(sizeof(struct max6875_data), GFP_KERNEL);
+ data = kzalloc_obj(struct max6875_data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/misc/enclosure.c b/drivers/misc/enclosure.c
index ca4c420e4a2f..7c2964762ef0 100644
--- a/drivers/misc/enclosure.c
+++ b/drivers/misc/enclosure.c
@@ -117,7 +117,7 @@ enclosure_register(struct device *dev, const char *name, int components,
struct enclosure_component_callbacks *cb)
{
struct enclosure_device *edev =
- kzalloc(struct_size(edev, component, components), GFP_KERNEL);
+ kzalloc_flex(*edev, component, components, GFP_KERNEL);
int err, i;
BUG_ON(!cb);
diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c
index 4f5a79c50f58..d212649fe7f9 100644
--- a/drivers/misc/fastrpc.c
+++ b/drivers/misc/fastrpc.c
@@ -424,7 +424,7 @@ static int __fastrpc_buf_alloc(struct fastrpc_user *fl, struct device *dev,
{
struct fastrpc_buf *buf;
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return -ENOMEM;
@@ -600,7 +600,7 @@ static struct fastrpc_invoke_ctx *fastrpc_context_alloc(
unsigned long flags;
int ret;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return ERR_PTR(-ENOMEM);
@@ -611,14 +611,13 @@ static struct fastrpc_invoke_ctx *fastrpc_context_alloc(
REMOTE_SCALARS_OUTBUFS(sc);
if (ctx->nscalars) {
- ctx->maps = kcalloc(ctx->nscalars,
- sizeof(*ctx->maps), GFP_KERNEL);
+ ctx->maps = kzalloc_objs(*ctx->maps, ctx->nscalars, GFP_KERNEL);
if (!ctx->maps) {
kfree(ctx);
return ERR_PTR(-ENOMEM);
}
- ctx->olaps = kcalloc(ctx->nscalars,
- sizeof(*ctx->olaps), GFP_KERNEL);
+ ctx->olaps = kzalloc_objs(*ctx->olaps, ctx->nscalars,
+ GFP_KERNEL);
if (!ctx->olaps) {
kfree(ctx->maps);
kfree(ctx);
@@ -705,7 +704,7 @@ static int fastrpc_dma_buf_attach(struct dma_buf *dmabuf,
struct fastrpc_buf *buffer = dmabuf->priv;
int ret;
- a = kzalloc(sizeof(*a), GFP_KERNEL);
+ a = kzalloc_obj(*a, GFP_KERNEL);
if (!a)
return -ENOMEM;
@@ -787,7 +786,7 @@ static int fastrpc_map_attach(struct fastrpc_user *fl, int fd,
struct scatterlist *sgl = NULL;
int err = 0, sgl_index = 0;
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (!map)
return -ENOMEM;
@@ -1307,7 +1306,8 @@ static int fastrpc_init_create_static_process(struct fastrpc_user *fl,
} inbuf;
u32 sc;
- args = kcalloc(FASTRPC_CREATE_STATIC_PROCESS_NARGS, sizeof(*args), GFP_KERNEL);
+ args = kzalloc_objs(*args, FASTRPC_CREATE_STATIC_PROCESS_NARGS,
+ GFP_KERNEL);
if (!args)
return -ENOMEM;
@@ -1432,7 +1432,7 @@ static int fastrpc_init_create_process(struct fastrpc_user *fl,
u32 sc;
bool unsigned_module = false;
- args = kcalloc(FASTRPC_CREATE_PROCESS_NARGS, sizeof(*args), GFP_KERNEL);
+ args = kzalloc_objs(*args, FASTRPC_CREATE_PROCESS_NARGS, GFP_KERNEL);
if (!args)
return -ENOMEM;
@@ -1627,7 +1627,7 @@ static int fastrpc_device_open(struct inode *inode, struct file *filp)
fdevice = miscdev_to_fdevice(filp->private_data);
cctx = fdevice->cctx;
- fl = kzalloc(sizeof(*fl), GFP_KERNEL);
+ fl = kzalloc_obj(*fl, GFP_KERNEL);
if (!fl)
return -ENOMEM;
@@ -1734,7 +1734,7 @@ static int fastrpc_invoke(struct fastrpc_user *fl, char __user *argp)
/* nscalars is truncated here to max supported value */
nscalars = REMOTE_SCALARS_LENGTH(inv.sc);
if (nscalars) {
- args = kcalloc(nscalars, sizeof(*args), GFP_KERNEL);
+ args = kzalloc_objs(*args, nscalars, GFP_KERNEL);
if (!args)
return -ENOMEM;
@@ -2371,7 +2371,7 @@ static int fastrpc_rpmsg_probe(struct rpmsg_device *rpdev)
else if (!qcom_scm_is_available())
return -EPROBE_DEFER;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/misc/genwqe/card_base.c b/drivers/misc/genwqe/card_base.c
index 224a7e97cbea..75b970d1012e 100644
--- a/drivers/misc/genwqe/card_base.c
+++ b/drivers/misc/genwqe/card_base.c
@@ -141,7 +141,7 @@ static struct genwqe_dev *genwqe_dev_alloc(void)
if (i >= GENWQE_CARD_NO_MAX)
return ERR_PTR(-ENODEV);
- cd = kzalloc(sizeof(struct genwqe_dev), GFP_KERNEL);
+ cd = kzalloc_obj(struct genwqe_dev, GFP_KERNEL);
if (!cd)
return ERR_PTR(-ENOMEM);
@@ -403,8 +403,7 @@ static int genwqe_ffdc_buffs_alloc(struct genwqe_dev *cd)
/* currently support only the debug units mentioned here */
cd->ffdc[type].entries = e;
cd->ffdc[type].regs =
- kmalloc_array(e, sizeof(struct genwqe_reg),
- GFP_KERNEL);
+ kmalloc_objs(struct genwqe_reg, e, GFP_KERNEL);
/*
* regs == NULL is ok, the using code treats this as no regs,
* Printing warning is ok in this case.
diff --git a/drivers/misc/genwqe/card_ddcb.c b/drivers/misc/genwqe/card_ddcb.c
index fd7d5cd50d39..87286ad04a4b 100644
--- a/drivers/misc/genwqe/card_ddcb.c
+++ b/drivers/misc/genwqe/card_ddcb.c
@@ -194,7 +194,7 @@ struct genwqe_ddcb_cmd *ddcb_requ_alloc(void)
{
struct ddcb_requ *req;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return NULL;
@@ -1046,16 +1046,15 @@ static int setup_ddcb_queue(struct genwqe_dev *cd, struct ddcb_queue *queue)
"[%s] **err: could not allocate DDCB **\n", __func__);
return -ENOMEM;
}
- queue->ddcb_req = kcalloc(queue->ddcb_max, sizeof(struct ddcb_requ *),
- GFP_KERNEL);
+ queue->ddcb_req = kzalloc_objs(struct ddcb_requ *, queue->ddcb_max,
+ GFP_KERNEL);
if (!queue->ddcb_req) {
rc = -ENOMEM;
goto free_ddcbs;
}
- queue->ddcb_waitqs = kcalloc(queue->ddcb_max,
- sizeof(wait_queue_head_t),
- GFP_KERNEL);
+ queue->ddcb_waitqs = kzalloc_objs(wait_queue_head_t, queue->ddcb_max,
+ GFP_KERNEL);
if (!queue->ddcb_waitqs) {
rc = -ENOMEM;
goto free_requs;
diff --git a/drivers/misc/genwqe/card_debugfs.c b/drivers/misc/genwqe/card_debugfs.c
index 491fb4482da2..7fc0dce42aa7 100644
--- a/drivers/misc/genwqe/card_debugfs.c
+++ b/drivers/misc/genwqe/card_debugfs.c
@@ -53,7 +53,7 @@ static int curr_dbg_uidn_show(struct seq_file *s, void *unused, int uid)
if (entries == 0)
return 0;
- regs = kcalloc(entries, sizeof(*regs), GFP_KERNEL);
+ regs = kzalloc_objs(*regs, entries, GFP_KERNEL);
if (regs == NULL)
return -ENOMEM;
@@ -122,7 +122,7 @@ static int curr_regs_show(struct seq_file *s, void *unused)
unsigned int i;
struct genwqe_reg *regs;
- regs = kcalloc(GENWQE_FFDC_REGS, sizeof(*regs), GFP_KERNEL);
+ regs = kzalloc_objs(*regs, GENWQE_FFDC_REGS, GFP_KERNEL);
if (regs == NULL)
return -ENOMEM;
diff --git a/drivers/misc/genwqe/card_dev.c b/drivers/misc/genwqe/card_dev.c
index 4441aca2280a..9b5458c10053 100644
--- a/drivers/misc/genwqe/card_dev.c
+++ b/drivers/misc/genwqe/card_dev.c
@@ -301,7 +301,7 @@ static int genwqe_open(struct inode *inode, struct file *filp)
struct genwqe_dev *cd;
struct genwqe_file *cfile;
- cfile = kzalloc(sizeof(*cfile), GFP_KERNEL);
+ cfile = kzalloc_obj(*cfile, GFP_KERNEL);
if (cfile == NULL)
return -ENOMEM;
@@ -446,7 +446,7 @@ static int genwqe_mmap(struct file *filp, struct vm_area_struct *vma)
if (get_order(vsize) > MAX_PAGE_ORDER)
return -ENOMEM;
- dma_map = kzalloc(sizeof(struct dma_mapping), GFP_KERNEL);
+ dma_map = kzalloc_obj(struct dma_mapping, GFP_KERNEL);
if (dma_map == NULL)
return -ENOMEM;
@@ -783,7 +783,7 @@ static int genwqe_pin_mem(struct genwqe_file *cfile, struct genwqe_mem *m)
map_addr = (m->addr & PAGE_MASK);
map_size = round_up(m->size + (m->addr & ~PAGE_MASK), PAGE_SIZE);
- dma_map = kzalloc(sizeof(struct dma_mapping), GFP_KERNEL);
+ dma_map = kzalloc_obj(struct dma_mapping, GFP_KERNEL);
if (dma_map == NULL)
return -ENOMEM;
diff --git a/drivers/misc/hpilo.c b/drivers/misc/hpilo.c
index 04bd34c8c506..174cabc7307f 100644
--- a/drivers/misc/hpilo.c
+++ b/drivers/misc/hpilo.c
@@ -570,7 +570,7 @@ static int ilo_open(struct inode *ip, struct file *fp)
hw = container_of(ip->i_cdev, struct ilo_hwinfo, cdev);
/* new ccb allocation */
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -798,7 +798,7 @@ static int ilo_probe(struct pci_dev *pdev,
/* track global allocations for this device */
error = -ENOMEM;
- ilo_hw = kzalloc(sizeof(*ilo_hw), GFP_KERNEL);
+ ilo_hw = kzalloc_obj(*ilo_hw, GFP_KERNEL);
if (!ilo_hw)
goto out;
diff --git a/drivers/misc/ibmasm/command.c b/drivers/misc/ibmasm/command.c
index 733dd30fbacc..9e4f45be78d7 100644
--- a/drivers/misc/ibmasm/command.c
+++ b/drivers/misc/ibmasm/command.c
@@ -24,7 +24,7 @@ struct command *ibmasm_new_command(struct service_processor *sp, size_t buffer_s
if (buffer_size > IBMASM_CMD_MAX_BUFFER_SIZE)
return NULL;
- cmd = kzalloc(sizeof(struct command), GFP_KERNEL);
+ cmd = kzalloc_obj(struct command, GFP_KERNEL);
if (cmd == NULL)
return NULL;
diff --git a/drivers/misc/ibmasm/event.c b/drivers/misc/ibmasm/event.c
index 40ce75f8970c..41aabfcd256f 100644
--- a/drivers/misc/ibmasm/event.c
+++ b/drivers/misc/ibmasm/event.c
@@ -139,7 +139,7 @@ int ibmasm_event_buffer_init(struct service_processor *sp)
struct ibmasm_event *event;
int i;
- buffer = kmalloc(sizeof(struct event_buffer), GFP_KERNEL);
+ buffer = kmalloc_obj(struct event_buffer, GFP_KERNEL);
if (!buffer)
return -ENOMEM;
diff --git a/drivers/misc/ibmasm/ibmasmfs.c b/drivers/misc/ibmasm/ibmasmfs.c
index 824c5b664985..f203bc3e8068 100644
--- a/drivers/misc/ibmasm/ibmasmfs.c
+++ b/drivers/misc/ibmasm/ibmasmfs.c
@@ -235,7 +235,7 @@ static int command_file_open(struct inode *inode, struct file *file)
if (!inode->i_private)
return -ENODEV;
- command_data = kmalloc(sizeof(struct ibmasmfs_command_data), GFP_KERNEL);
+ command_data = kmalloc_obj(struct ibmasmfs_command_data, GFP_KERNEL);
if (!command_data)
return -ENOMEM;
@@ -344,7 +344,7 @@ static int event_file_open(struct inode *inode, struct file *file)
sp = inode->i_private;
- event_data = kmalloc(sizeof(struct ibmasmfs_event_data), GFP_KERNEL);
+ event_data = kmalloc_obj(struct ibmasmfs_event_data, GFP_KERNEL);
if (!event_data)
return -ENOMEM;
@@ -430,7 +430,7 @@ static int r_heartbeat_file_open(struct inode *inode, struct file *file)
if (!inode->i_private)
return -ENODEV;
- rhbeat = kmalloc(sizeof(struct ibmasmfs_heartbeat_data), GFP_KERNEL);
+ rhbeat = kmalloc_obj(struct ibmasmfs_heartbeat_data, GFP_KERNEL);
if (!rhbeat)
return -ENOMEM;
diff --git a/drivers/misc/ibmasm/module.c b/drivers/misc/ibmasm/module.c
index dc8a06c06c63..ea625673826b 100644
--- a/drivers/misc/ibmasm/module.c
+++ b/drivers/misc/ibmasm/module.c
@@ -64,7 +64,7 @@ static int ibmasm_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
/* vnc client won't work without bus-mastering */
pci_set_master(pdev);
- sp = kzalloc(sizeof(struct service_processor), GFP_KERNEL);
+ sp = kzalloc_obj(struct service_processor, GFP_KERNEL);
if (sp == NULL) {
dev_err(&pdev->dev, "Failed to allocate memory\n");
result = -ENOMEM;
diff --git a/drivers/misc/ibmvmc.c b/drivers/misc/ibmvmc.c
index e5f935b5249d..78ecc28f00fb 100644
--- a/drivers/misc/ibmvmc.c
+++ b/drivers/misc/ibmvmc.c
@@ -830,7 +830,7 @@ static int ibmvmc_open(struct inode *inode, struct file *file)
(unsigned long)inode, (unsigned long)file,
ibmvmc.state);
- session = kzalloc(sizeof(*session), GFP_KERNEL);
+ session = kzalloc_obj(*session, GFP_KERNEL);
if (!session)
return -ENOMEM;
diff --git a/drivers/misc/ics932s401.c b/drivers/misc/ics932s401.c
index 4cdb1087838f..df4d36fe46ac 100644
--- a/drivers/misc/ics932s401.c
+++ b/drivers/misc/ics932s401.c
@@ -433,7 +433,7 @@ static int ics932s401_probe(struct i2c_client *client)
struct ics932s401_data *data;
int err;
- data = kzalloc(sizeof(struct ics932s401_data), GFP_KERNEL);
+ data = kzalloc_obj(struct ics932s401_data, GFP_KERNEL);
if (!data) {
err = -ENOMEM;
goto exit;
diff --git a/drivers/misc/isl29003.c b/drivers/misc/isl29003.c
index 9f26db467a81..ea56dde9183d 100644
--- a/drivers/misc/isl29003.c
+++ b/drivers/misc/isl29003.c
@@ -383,7 +383,7 @@ static int isl29003_probe(struct i2c_client *client)
if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE))
return -EIO;
- data = kzalloc(sizeof(struct isl29003_data), GFP_KERNEL);
+ data = kzalloc_obj(struct isl29003_data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/misc/keba/cp500.c b/drivers/misc/keba/cp500.c
index d0c6113dcff3..6039a718d92f 100644
--- a/drivers/misc/keba/cp500.c
+++ b/drivers/misc/keba/cp500.c
@@ -335,7 +335,7 @@ static int cp500_register_i2c(struct cp500 *cp500)
{
int ret;
- cp500->i2c = kzalloc(sizeof(*cp500->i2c), GFP_KERNEL);
+ cp500->i2c = kzalloc_obj(*cp500->i2c, GFP_KERNEL);
if (!cp500->i2c)
return -ENOMEM;
@@ -386,7 +386,7 @@ static int cp500_register_spi(struct cp500 *cp500, u8 esc_type)
int info_size;
int ret;
- cp500->spi = kzalloc(sizeof(*cp500->spi), GFP_KERNEL);
+ cp500->spi = kzalloc_obj(*cp500->spi, GFP_KERNEL);
if (!cp500->spi)
return -ENOMEM;
@@ -443,7 +443,7 @@ static int cp500_register_fan(struct cp500 *cp500)
{
int ret;
- cp500->fan = kzalloc(sizeof(*cp500->fan), GFP_KERNEL);
+ cp500->fan = kzalloc_obj(*cp500->fan, GFP_KERNEL);
if (!cp500->fan)
return -ENOMEM;
@@ -491,7 +491,7 @@ static int cp500_register_batt(struct cp500 *cp500)
{
int ret;
- cp500->batt = kzalloc(sizeof(*cp500->batt), GFP_KERNEL);
+ cp500->batt = kzalloc_obj(*cp500->batt, GFP_KERNEL);
if (!cp500->batt)
return -ENOMEM;
@@ -541,7 +541,7 @@ static int cp500_register_uart(struct cp500 *cp500,
{
int ret;
- *uart = kzalloc(sizeof(**uart), GFP_KERNEL);
+ *uart = kzalloc_obj(**uart, GFP_KERNEL);
if (!*uart)
return -ENOMEM;
diff --git a/drivers/misc/lan966x_pci.c b/drivers/misc/lan966x_pci.c
index 9c79b58137e5..6245ea993d1b 100644
--- a/drivers/misc/lan966x_pci.c
+++ b/drivers/misc/lan966x_pci.c
@@ -58,7 +58,7 @@ static struct pci_dev_intr_ctrl *pci_dev_create_intr_ctrl(struct pci_dev *pdev)
if (!fwnode)
return ERR_PTR(-ENODEV);
- intr_ctrl = kmalloc(sizeof(*intr_ctrl), GFP_KERNEL);
+ intr_ctrl = kmalloc_obj(*intr_ctrl, GFP_KERNEL);
if (!intr_ctrl)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/lis3lv02d.c
index 1a634ac1a241..f5adec86ca28 100644
--- a/drivers/misc/lis3lv02d/lis3lv02d.c
+++ b/drivers/misc/lis3lv02d/lis3lv02d.c
@@ -952,7 +952,7 @@ int lis3lv02d_init_dt(struct lis3lv02d *lis3)
if (!lis3->of_node)
return 0;
- pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
+ pdata = kzalloc_obj(*pdata, GFP_KERNEL);
if (!pdata)
return -ENOMEM;
diff --git a/drivers/misc/lkdtm/bugs.c b/drivers/misc/lkdtm/bugs.c
index b2aee36b956d..6de369f0ccd2 100644
--- a/drivers/misc/lkdtm/bugs.c
+++ b/drivers/misc/lkdtm/bugs.c
@@ -477,7 +477,7 @@ static void lkdtm_FAM_BOUNDS(void)
{
struct lkdtm_cb_fam *inst;
- inst = kzalloc(struct_size(inst, array, element_count + 1), GFP_KERNEL);
+ inst = kzalloc_flex(*inst, array, element_count + 1, GFP_KERNEL);
if (!inst) {
pr_err("FAIL: could not allocate test struct!\n");
return;
@@ -533,7 +533,7 @@ static void lkdtm_PTR_BOUNDS(void)
{
struct lkdtm_cb_ptr *inst;
- inst = kzalloc(sizeof(*inst), GFP_KERNEL);
+ inst = kzalloc_obj(*inst, GFP_KERNEL);
if (!inst) {
pr_err("FAIL: could not allocate struct lkdtm_cb_ptr!\n");
return;
@@ -547,7 +547,7 @@ static void lkdtm_PTR_BOUNDS(void)
inst->len = element_count;
/* Double element_count */
- inst->extra = kcalloc(element_count * 2, sizeof(*inst->extra), GFP_KERNEL);
+ inst->extra = kzalloc_objs(*inst->extra, element_count * 2, GFP_KERNEL);
inst->nr_extra = element_count * 2;
pr_info("Pointer access within bounds ...\n");
diff --git a/drivers/misc/mchp_pci1xxxx/mchp_pci1xxxx_gp.c b/drivers/misc/mchp_pci1xxxx/mchp_pci1xxxx_gp.c
index 34c9be437432..30c24a3e728f 100644
--- a/drivers/misc/mchp_pci1xxxx/mchp_pci1xxxx_gp.c
+++ b/drivers/misc/mchp_pci1xxxx/mchp_pci1xxxx_gp.c
@@ -42,8 +42,8 @@ static int gp_aux_bus_probe(struct pci_dev *pdev, const struct pci_device_id *id
if (!aux_bus)
return -ENOMEM;
- aux_bus->aux_device_wrapper[0] = kzalloc(sizeof(*aux_bus->aux_device_wrapper[0]),
- GFP_KERNEL);
+ aux_bus->aux_device_wrapper[0] = kzalloc_obj(*aux_bus->aux_device_wrapper[0],
+ GFP_KERNEL);
if (!aux_bus->aux_device_wrapper[0])
return -ENOMEM;
@@ -67,8 +67,8 @@ static int gp_aux_bus_probe(struct pci_dev *pdev, const struct pci_device_id *id
if (retval)
goto err_aux_dev_add_0;
- aux_bus->aux_device_wrapper[1] = kzalloc(sizeof(*aux_bus->aux_device_wrapper[1]),
- GFP_KERNEL);
+ aux_bus->aux_device_wrapper[1] = kzalloc_obj(*aux_bus->aux_device_wrapper[1],
+ GFP_KERNEL);
if (!aux_bus->aux_device_wrapper[1]) {
retval = -ENOMEM;
goto err_aux_dev_add_0;
diff --git a/drivers/misc/mei/bus.c b/drivers/misc/mei/bus.c
index 2c810ab12e62..fb311b6633d6 100644
--- a/drivers/misc/mei/bus.c
+++ b/drivers/misc/mei/bus.c
@@ -1363,7 +1363,7 @@ static struct mei_cl_device *mei_cl_bus_dev_alloc(struct mei_device *bus,
struct mei_cl_device *cldev;
struct mei_cl *cl;
- cldev = kzalloc(sizeof(*cldev), GFP_KERNEL);
+ cldev = kzalloc_obj(*cldev, GFP_KERNEL);
if (!cldev)
return NULL;
diff --git a/drivers/misc/mei/client.c b/drivers/misc/mei/client.c
index 5dc665515263..2ad20921ffb7 100644
--- a/drivers/misc/mei/client.c
+++ b/drivers/misc/mei/client.c
@@ -370,7 +370,7 @@ static struct mei_cl_cb *mei_io_cb_init(struct mei_cl *cl,
{
struct mei_cl_cb *cb;
- cb = kzalloc(sizeof(*cb), GFP_KERNEL);
+ cb = kzalloc_obj(*cb, GFP_KERNEL);
if (!cb)
return NULL;
@@ -605,7 +605,7 @@ struct mei_cl *mei_cl_allocate(struct mei_device *dev)
{
struct mei_cl *cl;
- cl = kmalloc(sizeof(*cl), GFP_KERNEL);
+ cl = kmalloc_obj(*cl, GFP_KERNEL);
if (!cl)
return NULL;
@@ -1273,7 +1273,7 @@ struct mei_cl_vtag *mei_cl_vtag_alloc(struct file *fp, u8 vtag)
{
struct mei_cl_vtag *cl_vtag;
- cl_vtag = kzalloc(sizeof(*cl_vtag), GFP_KERNEL);
+ cl_vtag = kzalloc_obj(*cl_vtag, GFP_KERNEL);
if (!cl_vtag)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/misc/mei/gsc_proxy/mei_gsc_proxy.c b/drivers/misc/mei/gsc_proxy/mei_gsc_proxy.c
index f52fe23a6c0b..00467dc56b9b 100644
--- a/drivers/misc/mei/gsc_proxy/mei_gsc_proxy.c
+++ b/drivers/misc/mei/gsc_proxy/mei_gsc_proxy.c
@@ -141,7 +141,7 @@ static int mei_gsc_proxy_probe(struct mei_cl_device *cldev,
goto enable_err_exit;
}
- comp_master = kzalloc(sizeof(*comp_master), GFP_KERNEL);
+ comp_master = kzalloc_obj(*comp_master, GFP_KERNEL);
if (!comp_master) {
ret = -ENOMEM;
goto err_exit;
diff --git a/drivers/misc/mei/hbm.c b/drivers/misc/mei/hbm.c
index ccd9df5d1c7d..19db57456f2c 100644
--- a/drivers/misc/mei/hbm.c
+++ b/drivers/misc/mei/hbm.c
@@ -409,7 +409,7 @@ static int mei_hbm_me_cl_add(struct mei_device *dev,
mei_me_cl_rm_by_uuid(dev, uuid);
- me_cl = kzalloc(sizeof(*me_cl), GFP_KERNEL);
+ me_cl = kzalloc_obj(*me_cl, GFP_KERNEL);
if (!me_cl)
return -ENOMEM;
diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c
index 323f10620d90..68cb4da376f9 100644
--- a/drivers/misc/mei/hdcp/mei_hdcp.c
+++ b/drivers/misc/mei/hdcp/mei_hdcp.c
@@ -819,7 +819,7 @@ static int mei_hdcp_probe(struct mei_cl_device *cldev,
goto enable_err_exit;
}
- comp_arbiter = kzalloc(sizeof(*comp_arbiter), GFP_KERNEL);
+ comp_arbiter = kzalloc_obj(*comp_arbiter, GFP_KERNEL);
if (!comp_arbiter) {
ret = -ENOMEM;
goto err_exit;
diff --git a/drivers/misc/mei/interrupt.c b/drivers/misc/mei/interrupt.c
index 3f210413fd32..d11d19e75726 100644
--- a/drivers/misc/mei/interrupt.c
+++ b/drivers/misc/mei/interrupt.c
@@ -133,7 +133,8 @@ static int mei_cl_irq_read_msg(struct mei_cl *cl,
break;
case MEI_EXT_HDR_GSC:
gsc_f2h = (struct mei_ext_hdr_gsc_f2h *)ext;
- cb->ext_hdr = (struct mei_ext_hdr *)kzalloc(sizeof(*gsc_f2h), GFP_KERNEL);
+ cb->ext_hdr = (struct mei_ext_hdr *) kzalloc_obj(*gsc_f2h,
+ GFP_KERNEL);
if (!cb->ext_hdr) {
cb->status = -ENOMEM;
goto discard;
diff --git a/drivers/misc/mei/pxp/mei_pxp.c b/drivers/misc/mei/pxp/mei_pxp.c
index 2820d389c88e..b79573c32a4d 100644
--- a/drivers/misc/mei/pxp/mei_pxp.c
+++ b/drivers/misc/mei/pxp/mei_pxp.c
@@ -273,7 +273,7 @@ static int mei_pxp_probe(struct mei_cl_device *cldev,
goto enable_err_exit;
}
- comp_master = kzalloc(sizeof(*comp_master), GFP_KERNEL);
+ comp_master = kzalloc_obj(*comp_master, GFP_KERNEL);
if (!comp_master) {
ret = -ENOMEM;
goto err_exit;
diff --git a/drivers/misc/mei/vsc-fw-loader.c b/drivers/misc/mei/vsc-fw-loader.c
index 43abefa806e1..dc32510c9ddb 100644
--- a/drivers/misc/mei/vsc-fw-loader.c
+++ b/drivers/misc/mei/vsc-fw-loader.c
@@ -721,7 +721,7 @@ int vsc_tp_init(struct vsc_tp *tp, struct device *dev)
void *rx_buf __free(kfree) = NULL;
int ret;
- fw_loader = kzalloc(sizeof(*fw_loader), GFP_KERNEL);
+ fw_loader = kzalloc_obj(*fw_loader, GFP_KERNEL);
if (!fw_loader)
return -ENOMEM;
diff --git a/drivers/misc/ntsync.c b/drivers/misc/ntsync.c
index 9087f045e362..727d9bbe1a29 100644
--- a/drivers/misc/ntsync.c
+++ b/drivers/misc/ntsync.c
@@ -705,7 +705,7 @@ static struct ntsync_obj *ntsync_alloc_obj(struct ntsync_device *dev,
{
struct ntsync_obj *obj;
- obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ obj = kzalloc_obj(*obj, GFP_KERNEL);
if (!obj)
return NULL;
obj->type = type;
@@ -884,7 +884,7 @@ static int setup_wait(struct ntsync_device *dev,
if (args->alert)
fds[count] = args->alert;
- q = kmalloc(struct_size(q, entries, total_count), GFP_KERNEL);
+ q = kmalloc_flex(*q, entries, total_count, GFP_KERNEL);
if (!q)
return -ENOMEM;
q->task = current;
@@ -1145,7 +1145,7 @@ static int ntsync_char_open(struct inode *inode, struct file *file)
{
struct ntsync_device *dev;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/misc/ocxl/afu_irq.c b/drivers/misc/ocxl/afu_irq.c
index f6b821fc274c..3969fc9d58e2 100644
--- a/drivers/misc/ocxl/afu_irq.c
+++ b/drivers/misc/ocxl/afu_irq.c
@@ -107,7 +107,7 @@ int ocxl_afu_irq_alloc(struct ocxl_context *ctx, int *irq_id)
struct afu_irq *irq;
int rc;
- irq = kzalloc(sizeof(struct afu_irq), GFP_KERNEL);
+ irq = kzalloc_obj(struct afu_irq, GFP_KERNEL);
if (!irq)
return -ENOMEM;
diff --git a/drivers/misc/ocxl/context.c b/drivers/misc/ocxl/context.c
index cded7d1caf32..3ca1c442fb39 100644
--- a/drivers/misc/ocxl/context.c
+++ b/drivers/misc/ocxl/context.c
@@ -10,7 +10,7 @@ int ocxl_context_alloc(struct ocxl_context **context, struct ocxl_afu *afu,
int pasid;
struct ocxl_context *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/misc/ocxl/core.c b/drivers/misc/ocxl/core.c
index aebfc53a2d09..608ac6a2d855 100644
--- a/drivers/misc/ocxl/core.c
+++ b/drivers/misc/ocxl/core.c
@@ -17,7 +17,7 @@ static struct ocxl_afu *alloc_afu(struct ocxl_fn *fn)
{
struct ocxl_afu *afu;
- afu = kzalloc(sizeof(struct ocxl_afu), GFP_KERNEL);
+ afu = kzalloc_obj(struct ocxl_afu, GFP_KERNEL);
if (!afu)
return NULL;
@@ -300,7 +300,7 @@ static struct ocxl_fn *alloc_function(void)
{
struct ocxl_fn *fn;
- fn = kzalloc(sizeof(struct ocxl_fn), GFP_KERNEL);
+ fn = kzalloc_obj(struct ocxl_fn, GFP_KERNEL);
if (!fn)
return NULL;
diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c
index 7eb74711ac96..fc03b82c3eb6 100644
--- a/drivers/misc/ocxl/file.c
+++ b/drivers/misc/ocxl/file.c
@@ -526,7 +526,7 @@ int ocxl_file_register_afu(struct ocxl_afu *afu)
struct ocxl_fn *fn = afu->fn;
struct pci_dev *pci_dev = to_pci_dev(fn->dev.parent);
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (info == NULL)
return -ENOMEM;
diff --git a/drivers/misc/ocxl/link.c b/drivers/misc/ocxl/link.c
index 03402203cacd..c413d065abe7 100644
--- a/drivers/misc/ocxl/link.c
+++ b/drivers/misc/ocxl/link.c
@@ -345,7 +345,7 @@ static int alloc_spa(struct pci_dev *dev, struct ocxl_link *link)
{
struct spa *spa;
- spa = kzalloc(sizeof(struct spa), GFP_KERNEL);
+ spa = kzalloc_obj(struct spa, GFP_KERNEL);
if (!spa)
return -ENOMEM;
@@ -387,7 +387,7 @@ static int alloc_link(struct pci_dev *dev, int PE_mask, struct ocxl_link **out_l
struct ocxl_link *link;
int rc;
- link = kzalloc(sizeof(struct ocxl_link), GFP_KERNEL);
+ link = kzalloc_obj(struct ocxl_link, GFP_KERNEL);
if (!link)
return -ENOMEM;
@@ -559,7 +559,7 @@ int ocxl_link_add_pe(void *link_handle, int pasid, u32 pidr, u32 tidr,
goto unlock;
}
- pe_data = kmalloc(sizeof(*pe_data), GFP_KERNEL);
+ pe_data = kmalloc_obj(*pe_data, GFP_KERNEL);
if (!pe_data) {
rc = -ENOMEM;
goto unlock;
diff --git a/drivers/misc/ocxl/pasid.c b/drivers/misc/ocxl/pasid.c
index d14cb56e6920..677870f49290 100644
--- a/drivers/misc/ocxl/pasid.c
+++ b/drivers/misc/ocxl/pasid.c
@@ -28,7 +28,7 @@ static int range_alloc(struct list_head *head, u32 size, int max_id,
struct id_range *cur, *new;
int rc, last_end;
- new = kmalloc(sizeof(struct id_range), GFP_KERNEL);
+ new = kmalloc_obj(struct id_range, GFP_KERNEL);
if (!new)
return -ENOMEM;
diff --git a/drivers/misc/pch_phub.c b/drivers/misc/pch_phub.c
index 0d63e834dbe7..c69a88a09332 100644
--- a/drivers/misc/pch_phub.c
+++ b/drivers/misc/pch_phub.c
@@ -666,7 +666,7 @@ static int pch_phub_probe(struct pci_dev *pdev,
int ret;
struct pch_phub_reg *chip;
- chip = kzalloc(sizeof(struct pch_phub_reg), GFP_KERNEL);
+ chip = kzalloc_obj(struct pch_phub_reg, GFP_KERNEL);
if (chip == NULL)
return -ENOMEM;
diff --git a/drivers/misc/phantom.c b/drivers/misc/phantom.c
index 701db2c5859b..cb7f7d9243d3 100644
--- a/drivers/misc/phantom.c
+++ b/drivers/misc/phantom.c
@@ -362,7 +362,7 @@ static int phantom_probe(struct pci_dev *pdev,
}
retval = -ENOMEM;
- pht = kzalloc(sizeof(*pht), GFP_KERNEL);
+ pht = kzalloc_obj(*pht, GFP_KERNEL);
if (pht == NULL) {
dev_err(&pdev->dev, "unable to allocate device\n");
goto err_reg;
diff --git a/drivers/misc/rpmb-core.c b/drivers/misc/rpmb-core.c
index 2d653926cdbb..2bd557665d1a 100644
--- a/drivers/misc/rpmb-core.c
+++ b/drivers/misc/rpmb-core.c
@@ -161,7 +161,7 @@ struct rpmb_dev *rpmb_dev_register(struct device *dev,
!descr->dev_id_len)
return ERR_PTR(-EINVAL);
- rdev = kzalloc(sizeof(*rdev), GFP_KERNEL);
+ rdev = kzalloc_obj(*rdev, GFP_KERNEL);
if (!rdev)
return ERR_PTR(-ENOMEM);
rdev->descr = *descr;
diff --git a/drivers/misc/sgi-gru/grumain.c b/drivers/misc/sgi-gru/grumain.c
index 3036c15f3689..171d38913dcf 100644
--- a/drivers/misc/sgi-gru/grumain.c
+++ b/drivers/misc/sgi-gru/grumain.c
@@ -356,7 +356,7 @@ struct gru_vma_data *gru_alloc_vma_data(struct vm_area_struct *vma, int tsid)
{
struct gru_vma_data *vdata = NULL;
- vdata = kmalloc(sizeof(*vdata), GFP_KERNEL);
+ vdata = kmalloc_obj(*vdata, GFP_KERNEL);
if (!vdata)
return NULL;
diff --git a/drivers/misc/sgi-gru/grutlbpurge.c b/drivers/misc/sgi-gru/grutlbpurge.c
index 1107dd3e2e9f..1bb07781a105 100644
--- a/drivers/misc/sgi-gru/grutlbpurge.c
+++ b/drivers/misc/sgi-gru/grutlbpurge.c
@@ -237,7 +237,7 @@ static struct mmu_notifier *gru_alloc_notifier(struct mm_struct *mm)
{
struct gru_mm_struct *gms;
- gms = kzalloc(sizeof(*gms), GFP_KERNEL);
+ gms = kzalloc_obj(*gms, GFP_KERNEL);
if (!gms)
return ERR_PTR(-ENOMEM);
STAT(gms_alloc);
diff --git a/drivers/misc/sgi-xp/xpc_main.c b/drivers/misc/sgi-xp/xpc_main.c
index 9fe816bf3957..4e608379d6e7 100644
--- a/drivers/misc/sgi-xp/xpc_main.c
+++ b/drivers/misc/sgi-xp/xpc_main.c
@@ -400,9 +400,8 @@ xpc_setup_ch_structures(struct xpc_partition *part)
* memory.
*/
DBUG_ON(part->channels != NULL);
- part->channels = kcalloc(XPC_MAX_NCHANNELS,
- sizeof(struct xpc_channel),
- GFP_KERNEL);
+ part->channels = kzalloc_objs(struct xpc_channel, XPC_MAX_NCHANNELS,
+ GFP_KERNEL);
if (part->channels == NULL) {
dev_err(xpc_chan, "can't get memory for channels\n");
return xpNoMemory;
@@ -890,9 +889,8 @@ xpc_setup_partitions(void)
short partid;
struct xpc_partition *part;
- xpc_partitions = kcalloc(xp_max_npartitions,
- sizeof(struct xpc_partition),
- GFP_KERNEL);
+ xpc_partitions = kzalloc_objs(struct xpc_partition, xp_max_npartitions,
+ GFP_KERNEL);
if (xpc_partitions == NULL) {
dev_err(xpc_part, "can't get memory for partition structure\n");
return -ENOMEM;
diff --git a/drivers/misc/sgi-xp/xpc_uv.c b/drivers/misc/sgi-xp/xpc_uv.c
index 2f03a7080d96..ccd3047580c5 100644
--- a/drivers/misc/sgi-xp/xpc_uv.c
+++ b/drivers/misc/sgi-xp/xpc_uv.c
@@ -147,7 +147,7 @@ xpc_create_gru_mq_uv(unsigned int mq_size, int cpu, char *irq_name,
struct xpc_gru_mq_uv *mq;
struct uv_IO_APIC_route_entry *mmr_value;
- mq = kmalloc(sizeof(struct xpc_gru_mq_uv), GFP_KERNEL);
+ mq = kmalloc_obj(struct xpc_gru_mq_uv, GFP_KERNEL);
if (mq == NULL) {
dev_err(xpc_part, "xpc_create_gru_mq_uv() failed to kmalloc() "
"a xpc_gru_mq_uv structure\n");
@@ -155,8 +155,7 @@ xpc_create_gru_mq_uv(unsigned int mq_size, int cpu, char *irq_name,
goto out_0;
}
- mq->gru_mq_desc = kzalloc(sizeof(struct gru_message_queue_desc),
- GFP_KERNEL);
+ mq->gru_mq_desc = kzalloc_obj(struct gru_message_queue_desc, GFP_KERNEL);
if (mq->gru_mq_desc == NULL) {
dev_err(xpc_part, "xpc_create_gru_mq_uv() failed to kmalloc() "
"a gru_message_queue_desc structure\n");
@@ -623,9 +622,8 @@ xpc_send_activate_IRQ_uv(struct xpc_partition *part, void *msg, size_t msg_size,
if (!(part_uv->flags & XPC_P_CACHED_ACTIVATE_GRU_MQ_DESC_UV)) {
gru_mq_desc = part_uv->cached_activate_gru_mq_desc;
if (gru_mq_desc == NULL) {
- gru_mq_desc = kmalloc(sizeof(struct
- gru_message_queue_desc),
- GFP_ATOMIC);
+ gru_mq_desc = kmalloc_obj(struct gru_message_queue_desc,
+ GFP_ATOMIC);
if (gru_mq_desc == NULL) {
ret = xpNoMemory;
goto done;
@@ -1075,9 +1073,8 @@ xpc_setup_msg_structures_uv(struct xpc_channel *ch)
DBUG_ON(ch->flags & XPC_C_SETUP);
- ch_uv->cached_notify_gru_mq_desc = kmalloc(sizeof(struct
- gru_message_queue_desc),
- GFP_KERNEL);
+ ch_uv->cached_notify_gru_mq_desc = kmalloc_obj(struct gru_message_queue_desc,
+ GFP_KERNEL);
if (ch_uv->cached_notify_gru_mq_desc == NULL)
return xpNoMemory;
diff --git a/drivers/misc/sgi-xp/xpnet.c b/drivers/misc/sgi-xp/xpnet.c
index 2396ba3b03bd..1533b72d57b1 100644
--- a/drivers/misc/sgi-xp/xpnet.c
+++ b/drivers/misc/sgi-xp/xpnet.c
@@ -431,7 +431,7 @@ xpnet_dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
* xpc_send_notifies are relying on this skb. When none
* remain, release the skb.
*/
- queued_msg = kmalloc(sizeof(struct xpnet_pending_msg), GFP_ATOMIC);
+ queued_msg = kmalloc_obj(struct xpnet_pending_msg, GFP_ATOMIC);
if (queued_msg == NULL) {
dev_warn(xpnet, "failed to kmalloc %ld bytes; dropping "
"packet\n", sizeof(struct xpnet_pending_msg));
diff --git a/drivers/misc/sram.c b/drivers/misc/sram.c
index c98ff8aa221c..39b38d639638 100644
--- a/drivers/misc/sram.c
+++ b/drivers/misc/sram.c
@@ -191,7 +191,7 @@ static int sram_reserve_regions(struct sram_dev *sram, struct resource *res)
* after the reserved blocks from the dt are processed.
*/
nblocks = (np) ? of_get_available_child_count(np) + 1 : 1;
- rblocks = kcalloc(nblocks, sizeof(*rblocks), GFP_KERNEL);
+ rblocks = kzalloc_objs(*rblocks, nblocks, GFP_KERNEL);
if (!rblocks)
return -ENOMEM;
diff --git a/drivers/misc/tifm_core.c b/drivers/misc/tifm_core.c
index 12355d34e193..96ad091089a7 100644
--- a/drivers/misc/tifm_core.c
+++ b/drivers/misc/tifm_core.c
@@ -176,7 +176,7 @@ struct tifm_adapter *tifm_alloc_adapter(unsigned int num_sockets,
{
struct tifm_adapter *fm;
- fm = kzalloc(struct_size(fm, sockets, num_sockets), GFP_KERNEL);
+ fm = kzalloc_flex(*fm, sockets, num_sockets, GFP_KERNEL);
if (fm) {
fm->dev.class = &tifm_adapter_class;
fm->dev.parent = dev;
@@ -252,7 +252,7 @@ struct tifm_dev *tifm_alloc_device(struct tifm_adapter *fm, unsigned int id,
if (!tifm_media_type_name(type, 0))
return sock;
- sock = kzalloc(sizeof(struct tifm_dev), GFP_KERNEL);
+ sock = kzalloc_obj(struct tifm_dev, GFP_KERNEL);
if (sock) {
spin_lock_init(&sock->lock);
sock->type = type;
diff --git a/drivers/misc/tsl2550.c b/drivers/misc/tsl2550.c
index 1a7796ab3fad..8f592afe1a32 100644
--- a/drivers/misc/tsl2550.c
+++ b/drivers/misc/tsl2550.c
@@ -343,7 +343,7 @@ static int tsl2550_probe(struct i2c_client *client)
goto exit;
}
- data = kzalloc(sizeof(struct tsl2550_data), GFP_KERNEL);
+ data = kzalloc_obj(struct tsl2550_data, GFP_KERNEL);
if (!data) {
err = -ENOMEM;
goto exit;
diff --git a/drivers/misc/uacce/uacce.c b/drivers/misc/uacce/uacce.c
index 6d71355528d3..55735335ce12 100644
--- a/drivers/misc/uacce/uacce.c
+++ b/drivers/misc/uacce/uacce.c
@@ -158,7 +158,7 @@ static int uacce_fops_open(struct inode *inode, struct file *filep)
if (!uacce)
return -ENODEV;
- q = kzalloc(sizeof(struct uacce_queue), GFP_KERNEL);
+ q = kzalloc_obj(struct uacce_queue, GFP_KERNEL);
if (!q)
return -ENOMEM;
@@ -251,7 +251,7 @@ static int uacce_fops_mmap(struct file *filep, struct vm_area_struct *vma)
else
return -EINVAL;
- qfr = kzalloc(sizeof(*qfr), GFP_KERNEL);
+ qfr = kzalloc_obj(*qfr, GFP_KERNEL);
if (!qfr)
return -ENOMEM;
@@ -506,7 +506,7 @@ struct uacce_device *uacce_alloc(struct device *parent,
struct uacce_device *uacce;
int ret;
- uacce = kzalloc(sizeof(struct uacce_device), GFP_KERNEL);
+ uacce = kzalloc_obj(struct uacce_device, GFP_KERNEL);
if (!uacce)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/misc/vmw_balloon.c b/drivers/misc/vmw_balloon.c
index 216a16395968..5ae13779bd1a 100644
--- a/drivers/misc/vmw_balloon.c
+++ b/drivers/misc/vmw_balloon.c
@@ -1616,7 +1616,7 @@ static int vmballoon_enable_stats(struct vmballoon *b)
if (b->stats)
goto out;
- b->stats = kzalloc(sizeof(*b->stats), GFP_KERNEL);
+ b->stats = kzalloc_obj(*b->stats, GFP_KERNEL);
if (!b->stats) {
/* allocation failed */
diff --git a/drivers/misc/vmw_vmci/vmci_context.c b/drivers/misc/vmw_vmci/vmci_context.c
index 8069d271ed81..0a87d5430385 100644
--- a/drivers/misc/vmw_vmci/vmci_context.c
+++ b/drivers/misc/vmw_vmci/vmci_context.c
@@ -104,7 +104,7 @@ struct vmci_ctx *vmci_ctx_create(u32 cid, u32 priv_flags,
goto err_out;
}
- context = kzalloc(sizeof(*context), GFP_KERNEL);
+ context = kzalloc_obj(*context, GFP_KERNEL);
if (!context) {
pr_warn("Failed to allocate memory for VMCI context\n");
error = -ENOMEM;
@@ -294,7 +294,7 @@ int vmci_ctx_enqueue_datagram(u32 cid, struct vmci_datagram *dg)
}
/* Allocate guest call entry and add it to the target VM's queue. */
- dq_entry = kmalloc(sizeof(*dq_entry), GFP_KERNEL);
+ dq_entry = kmalloc_obj(*dq_entry, GFP_KERNEL);
if (dq_entry == NULL) {
pr_warn("Failed to allocate memory for datagram\n");
vmci_ctx_put(context);
@@ -598,7 +598,7 @@ int vmci_ctx_add_notification(u32 context_id, u32 remote_cid)
goto out;
}
- notifier = kmalloc(sizeof(struct vmci_handle_list), GFP_KERNEL);
+ notifier = kmalloc_obj(struct vmci_handle_list, GFP_KERNEL);
if (!notifier) {
result = VMCI_ERROR_NO_MEM;
goto out;
diff --git a/drivers/misc/vmw_vmci/vmci_datagram.c b/drivers/misc/vmw_vmci/vmci_datagram.c
index 3964d9e5a39b..1a276717e20a 100644
--- a/drivers/misc/vmw_vmci/vmci_datagram.c
+++ b/drivers/misc/vmw_vmci/vmci_datagram.c
@@ -71,7 +71,7 @@ static int dg_create_handle(u32 resource_id,
handle = vmci_make_handle(context_id, resource_id);
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
pr_warn("Failed allocating memory for datagram entry\n");
return VMCI_ERROR_NO_MEM;
@@ -224,8 +224,8 @@ static int dg_dispatch_as_host(u32 context_id, struct vmci_datagram *dg)
return VMCI_ERROR_NO_MEM;
}
- dg_info = kmalloc(struct_size(dg_info, msg_payload, dg->payload_size),
- GFP_ATOMIC);
+ dg_info = kmalloc_flex(*dg_info, msg_payload,
+ dg->payload_size, GFP_ATOMIC);
if (!dg_info) {
atomic_dec(&delayed_dg_host_queue_size);
vmci_resource_put(resource);
diff --git a/drivers/misc/vmw_vmci/vmci_doorbell.c b/drivers/misc/vmw_vmci/vmci_doorbell.c
index 53eeb9e6cb56..c2db2d4ab7f6 100644
--- a/drivers/misc/vmw_vmci/vmci_doorbell.c
+++ b/drivers/misc/vmw_vmci/vmci_doorbell.c
@@ -402,7 +402,7 @@ int vmci_doorbell_create(struct vmci_handle *handle,
priv_flags & ~VMCI_PRIVILEGE_ALL_FLAGS)
return VMCI_ERROR_INVALID_ARGS;
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (entry == NULL) {
pr_warn("Failed allocating memory for datagram entry\n");
return VMCI_ERROR_NO_MEM;
diff --git a/drivers/misc/vmw_vmci/vmci_event.c b/drivers/misc/vmw_vmci/vmci_event.c
index 9a41ab65378d..85dc12860f17 100644
--- a/drivers/misc/vmw_vmci/vmci_event.c
+++ b/drivers/misc/vmw_vmci/vmci_event.c
@@ -151,7 +151,7 @@ int vmci_event_subscribe(u32 event,
return VMCI_ERROR_INVALID_ARGS;
}
- sub = kzalloc(sizeof(*sub), GFP_KERNEL);
+ sub = kzalloc_obj(*sub, GFP_KERNEL);
if (!sub)
return VMCI_ERROR_NO_MEM;
diff --git a/drivers/misc/vmw_vmci/vmci_handle_array.c b/drivers/misc/vmw_vmci/vmci_handle_array.c
index 681b3500125a..fd94e4f90322 100644
--- a/drivers/misc/vmw_vmci/vmci_handle_array.c
+++ b/drivers/misc/vmw_vmci/vmci_handle_array.c
@@ -19,7 +19,7 @@ struct vmci_handle_arr *vmci_handle_arr_create(u32 capacity, u32 max_capacity)
capacity = min((u32)VMCI_HANDLE_ARRAY_DEFAULT_CAPACITY,
max_capacity);
- array = kmalloc(struct_size(array, entries, capacity), GFP_ATOMIC);
+ array = kmalloc_flex(*array, entries, capacity, GFP_ATOMIC);
if (!array)
return NULL;
diff --git a/drivers/misc/vmw_vmci/vmci_host.c b/drivers/misc/vmw_vmci/vmci_host.c
index b64944367ac5..88fea05203d5 100644
--- a/drivers/misc/vmw_vmci/vmci_host.c
+++ b/drivers/misc/vmw_vmci/vmci_host.c
@@ -120,7 +120,7 @@ static int vmci_host_open(struct inode *inode, struct file *filp)
{
struct vmci_host_dev *vmci_host_dev;
- vmci_host_dev = kzalloc(sizeof(struct vmci_host_dev), GFP_KERNEL);
+ vmci_host_dev = kzalloc_obj(struct vmci_host_dev, GFP_KERNEL);
if (vmci_host_dev == NULL)
return -ENOMEM;
diff --git a/drivers/misc/vmw_vmci/vmci_queue_pair.c b/drivers/misc/vmw_vmci/vmci_queue_pair.c
index b88ac144ad32..d2a7f79f4e8d 100644
--- a/drivers/misc/vmw_vmci/vmci_queue_pair.c
+++ b/drivers/misc/vmw_vmci/vmci_queue_pair.c
@@ -895,7 +895,7 @@ qp_guest_endpoint_create(struct vmci_handle handle,
handle = vmci_make_handle(context_id, VMCI_INVALID_ID);
}
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (entry) {
entry->qp.peer = peer;
entry->qp.flags = flags;
@@ -1318,7 +1318,7 @@ static int qp_broker_create(struct vmci_handle handle,
if (is_local && peer != VMCI_INVALID_ID && context_id != peer)
return VMCI_ERROR_NO_ACCESS;
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (!entry)
return VMCI_ERROR_NO_MEM;
@@ -2722,7 +2722,7 @@ int vmci_qpair_alloc(struct vmci_qp **qpair,
return VMCI_ERROR_INVALID_ARGS;
}
- my_qpair = kzalloc(sizeof(*my_qpair), GFP_KERNEL);
+ my_qpair = kzalloc_obj(*my_qpair, GFP_KERNEL);
if (!my_qpair)
return VMCI_ERROR_NO_MEM;
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
index fb6eb2d79b4f..b39cd61cea44 100644
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
@@ -422,7 +422,7 @@ static struct mmc_blk_ioc_data *mmc_blk_ioctl_copy_from_user(
struct mmc_blk_ioc_data *idata;
int err;
- idata = kzalloc(sizeof(*idata), GFP_KERNEL);
+ idata = kzalloc_obj(*idata, GFP_KERNEL);
if (!idata) {
err = -ENOMEM;
goto out;
@@ -737,7 +737,7 @@ static int mmc_blk_ioctl_multi_cmd(struct mmc_blk_data *md,
return -EINVAL;
n = num_of_cmds;
- idata = kcalloc(n, sizeof(*idata), GFP_KERNEL);
+ idata = kzalloc_objs(*idata, n, GFP_KERNEL);
if (!idata)
return -ENOMEM;
@@ -2562,7 +2562,7 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card,
return ERR_PTR(devidx);
}
- md = kzalloc(sizeof(*md), GFP_KERNEL);
+ md = kzalloc_obj(*md, GFP_KERNEL);
if (!md) {
ret = -ENOMEM;
goto out;
@@ -2794,12 +2794,12 @@ static struct mmc_blk_ioc_data **alloc_idata(struct mmc_rpmb_data *rpmb,
struct mmc_blk_ioc_data **idata;
unsigned int n;
- idata = kcalloc(cmd_count, sizeof(*idata), GFP_KERNEL);
+ idata = kzalloc_objs(*idata, cmd_count, GFP_KERNEL);
if (!idata)
return NULL;
for (n = 0; n < cmd_count; n++) {
- idata[n] = kcalloc(1, sizeof(**idata), GFP_KERNEL);
+ idata[n] = kzalloc_objs(**idata, 1, GFP_KERNEL);
if (!idata[n]) {
free_idata(idata, n);
return NULL;
@@ -2942,7 +2942,7 @@ static int mmc_blk_alloc_rpmb_part(struct mmc_card *card,
if (devidx < 0)
return devidx;
- rpmb = kzalloc(sizeof(*rpmb), GFP_KERNEL);
+ rpmb = kzalloc_obj(*rpmb, GFP_KERNEL);
if (!rpmb) {
ida_free(&mmc_rpmb_ida, devidx);
return -ENOMEM;
diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c
index ec4f3462bf80..740b082da3e2 100644
--- a/drivers/mmc/core/bus.c
+++ b/drivers/mmc/core/bus.c
@@ -279,7 +279,7 @@ struct mmc_card *mmc_alloc_card(struct mmc_host *host, const struct device_type
{
struct mmc_card *card;
- card = kzalloc(sizeof(struct mmc_card), GFP_KERNEL);
+ card = kzalloc_obj(struct mmc_card, GFP_KERNEL);
if (!card)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/mmc/core/mmc_test.c b/drivers/mmc/core/mmc_test.c
index 01d1e62c2ce7..70cc83a8a1ee 100644
--- a/drivers/mmc/core/mmc_test.c
+++ b/drivers/mmc/core/mmc_test.c
@@ -348,11 +348,11 @@ static struct mmc_test_mem *mmc_test_alloc_mem(unsigned long min_sz,
if (max_segs > max_page_cnt)
max_segs = max_page_cnt;
- mem = kzalloc(sizeof(*mem), GFP_KERNEL);
+ mem = kzalloc_obj(*mem, GFP_KERNEL);
if (!mem)
return NULL;
- mem->arr = kcalloc(max_segs, sizeof(*mem->arr), GFP_KERNEL);
+ mem->arr = kzalloc_objs(*mem->arr, max_segs, GFP_KERNEL);
if (!mem->arr)
goto out_free;
@@ -533,7 +533,7 @@ static void mmc_test_save_transfer_result(struct mmc_test_card *test,
if (!test->gr)
return;
- tr = kmalloc(sizeof(*tr), GFP_KERNEL);
+ tr = kmalloc_obj(*tr, GFP_KERNEL);
if (!tr)
return;
@@ -765,7 +765,7 @@ static void mmc_test_req_reset(struct mmc_test_req *rq)
static struct mmc_test_req *mmc_test_req_alloc(void)
{
- struct mmc_test_req *rq = kmalloc(sizeof(*rq), GFP_KERNEL);
+ struct mmc_test_req *rq = kmalloc_obj(*rq, GFP_KERNEL);
if (rq)
mmc_test_req_reset(rq);
@@ -1570,14 +1570,13 @@ static int mmc_test_area_init(struct mmc_test_card *test, int erase, int fill)
if (!t->mem)
return -ENOMEM;
- t->sg = kmalloc_array(t->max_segs, sizeof(*t->sg), GFP_KERNEL);
+ t->sg = kmalloc_objs(*t->sg, t->max_segs, GFP_KERNEL);
if (!t->sg) {
ret = -ENOMEM;
goto out_free;
}
- t->sg_areq = kmalloc_array(t->max_segs, sizeof(*t->sg_areq),
- GFP_KERNEL);
+ t->sg_areq = kmalloc_objs(*t->sg_areq, t->max_segs, GFP_KERNEL);
if (!t->sg_areq) {
ret = -ENOMEM;
goto out_free;
@@ -2968,7 +2967,7 @@ static void mmc_test_run(struct mmc_test_card *test, int testcase)
}
}
- gr = kzalloc(sizeof(*gr), GFP_KERNEL);
+ gr = kzalloc_obj(*gr, GFP_KERNEL);
if (gr) {
INIT_LIST_HEAD(&gr->tr_lst);
@@ -3100,7 +3099,7 @@ static ssize_t mtf_test_write(struct file *file, const char __user *buf,
if (ret)
return ret;
- test = kzalloc(sizeof(*test), GFP_KERNEL);
+ test = kzalloc_obj(*test, GFP_KERNEL);
if (!test)
return -ENOMEM;
@@ -3189,7 +3188,7 @@ static int __mmc_test_register_dbgfs_file(struct mmc_card *card,
file = debugfs_create_file(name, mode, card->debugfs_root,
card, fops);
- df = kmalloc(sizeof(*df), GFP_KERNEL);
+ df = kmalloc_obj(*df, GFP_KERNEL);
if (!df) {
debugfs_remove(file);
return -ENOMEM;
diff --git a/drivers/mmc/core/queue.c b/drivers/mmc/core/queue.c
index 284856c8f655..13000fc57e2e 100644
--- a/drivers/mmc/core/queue.c
+++ b/drivers/mmc/core/queue.c
@@ -167,7 +167,7 @@ static struct scatterlist *mmc_alloc_sg(unsigned short sg_len, gfp_t gfp)
{
struct scatterlist *sg;
- sg = kmalloc_array(sg_len, sizeof(*sg), gfp);
+ sg = kmalloc_objs(*sg, sg_len, gfp);
if (sg)
sg_init_table(sg, sg_len);
diff --git a/drivers/mmc/core/sdio_bus.c b/drivers/mmc/core/sdio_bus.c
index 6e5bdc2f0cc8..060da5c4ea75 100644
--- a/drivers/mmc/core/sdio_bus.c
+++ b/drivers/mmc/core/sdio_bus.c
@@ -337,7 +337,7 @@ struct sdio_func *sdio_alloc_func(struct mmc_card *card)
{
struct sdio_func *func;
- func = kzalloc(sizeof(struct sdio_func), GFP_KERNEL);
+ func = kzalloc_obj(struct sdio_func, GFP_KERNEL);
if (!func)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/mmc/core/sdio_uart.c b/drivers/mmc/core/sdio_uart.c
index 7423a601e1e5..a37d91347931 100644
--- a/drivers/mmc/core/sdio_uart.c
+++ b/drivers/mmc/core/sdio_uart.c
@@ -1021,7 +1021,7 @@ static int sdio_uart_probe(struct sdio_func *func,
struct sdio_uart_port *port;
int ret;
- port = kzalloc(sizeof(struct sdio_uart_port), GFP_KERNEL);
+ port = kzalloc_obj(struct sdio_uart_port, GFP_KERNEL);
if (!port)
return -ENOMEM;
diff --git a/drivers/mmc/host/dw_mmc-rockchip.c b/drivers/mmc/host/dw_mmc-rockchip.c
index 62c68cda1e21..2a2aee4054f7 100644
--- a/drivers/mmc/host/dw_mmc-rockchip.c
+++ b/drivers/mmc/host/dw_mmc-rockchip.c
@@ -306,8 +306,7 @@ static int dw_mci_rk3288_execute_tuning(struct dw_mci_slot *slot, u32 opcode)
return -EIO;
}
- ranges = kmalloc_array(priv->num_phases / 2 + 1,
- sizeof(*ranges), GFP_KERNEL);
+ ranges = kmalloc_objs(*ranges, priv->num_phases / 2 + 1, GFP_KERNEL);
if (!ranges)
return -ENOMEM;
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index 9e74b675e92d..1e0c3904cded 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -834,7 +834,7 @@ static int dw_mci_edmac_start_dma(struct dw_mci *host,
static int dw_mci_edmac_init(struct dw_mci *host)
{
/* Request external dma channel */
- host->dms = kzalloc(sizeof(struct dw_mci_dma_slave), GFP_KERNEL);
+ host->dms = kzalloc_obj(struct dw_mci_dma_slave, GFP_KERNEL);
if (!host->dms)
return -ENOMEM;
diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c
index 42936e248c55..8ab52b4de02e 100644
--- a/drivers/mmc/host/mmc_spi.c
+++ b/drivers/mmc/host/mmc_spi.c
@@ -1236,7 +1236,7 @@ static int mmc_spi_probe(struct spi_device *spi)
}
/* Preallocate buffers */
- host->data = kmalloc(sizeof(*host->data), GFP_KERNEL);
+ host->data = kmalloc_obj(*host->data, GFP_KERNEL);
if (!host->data)
goto fail_nobuf1;
diff --git a/drivers/mmc/host/of_mmc_spi.c b/drivers/mmc/host/of_mmc_spi.c
index 05939f30a5ae..d3137d23533c 100644
--- a/drivers/mmc/host/of_mmc_spi.c
+++ b/drivers/mmc/host/of_mmc_spi.c
@@ -57,7 +57,7 @@ struct mmc_spi_platform_data *mmc_spi_get_pdata(struct spi_device *spi)
if (dev->platform_data || !dev_fwnode(dev))
return dev->platform_data;
- oms = kzalloc(sizeof(*oms), GFP_KERNEL);
+ oms = kzalloc_obj(*oms, GFP_KERNEL);
if (!oms)
return NULL;
diff --git a/drivers/mmc/host/ushc.c b/drivers/mmc/host/ushc.c
index 2b7456e942f7..6a4274bac5c0 100644
--- a/drivers/mmc/host/ushc.c
+++ b/drivers/mmc/host/ushc.c
@@ -462,7 +462,7 @@ static int ushc_probe(struct usb_interface *intf, const struct usb_device_id *id
ret = -ENOMEM;
goto err;
}
- ushc->int_data = kzalloc(sizeof(struct ushc_int_data), GFP_KERNEL);
+ ushc->int_data = kzalloc_obj(struct ushc_int_data, GFP_KERNEL);
if (ushc->int_data == NULL) {
ret = -ENOMEM;
goto err;
@@ -479,7 +479,7 @@ static int ushc_probe(struct usb_interface *intf, const struct usb_device_id *id
ret = -ENOMEM;
goto err;
}
- ushc->cbw = kzalloc(sizeof(struct ushc_cbw), GFP_KERNEL);
+ ushc->cbw = kzalloc_obj(struct ushc_cbw, GFP_KERNEL);
if (ushc->cbw == NULL) {
ret = -ENOMEM;
goto err;
@@ -501,7 +501,7 @@ static int ushc_probe(struct usb_interface *intf, const struct usb_device_id *id
ret = -ENOMEM;
goto err;
}
- ushc->csw = kzalloc(sizeof(struct ushc_csw), GFP_KERNEL);
+ ushc->csw = kzalloc_obj(struct ushc_csw, GFP_KERNEL);
if (ushc->csw == NULL) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/most/configfs.c b/drivers/most/configfs.c
index 36d8c917f65f..03b977a4c070 100644
--- a/drivers/most/configfs.c
+++ b/drivers/most/configfs.c
@@ -426,7 +426,7 @@ static struct config_item *most_common_make_item(struct config_group *group,
struct mdev_link *mdev_link;
struct most_common *mc = to_most_common(group->cg_subsys);
- mdev_link = kzalloc(sizeof(*mdev_link), GFP_KERNEL);
+ mdev_link = kzalloc_obj(*mdev_link, GFP_KERNEL);
if (!mdev_link)
return ERR_PTR(-ENOMEM);
@@ -526,7 +526,7 @@ static struct config_item *most_snd_grp_make_item(struct config_group *group,
{
struct mdev_link *mdev_link;
- mdev_link = kzalloc(sizeof(*mdev_link), GFP_KERNEL);
+ mdev_link = kzalloc_obj(*mdev_link, GFP_KERNEL);
if (!mdev_link)
return ERR_PTR(-ENOMEM);
@@ -607,7 +607,7 @@ static struct config_group *most_sound_make_group(struct config_group *group,
}
if (!try_module_get(ms->mod))
return ERR_PTR(-ENOLCK);
- most = kzalloc(sizeof(*most), GFP_KERNEL);
+ most = kzalloc_obj(*most, GFP_KERNEL);
if (!most) {
module_put(ms->mod);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/most/core.c b/drivers/most/core.c
index 40d63e38fef5..3bbe8bed402a 100644
--- a/drivers/most/core.c
+++ b/drivers/most/core.c
@@ -880,7 +880,7 @@ static int arm_mbo_chain(struct most_channel *c, int dir,
atomic_set(&c->mbo_nq_level, 0);
for (i = 0; i < c->cfg.num_buffers; i++) {
- mbo = kzalloc(sizeof(*mbo), GFP_KERNEL);
+ mbo = kzalloc_obj(*mbo, GFP_KERNEL);
if (!mbo)
goto flush_fifos;
@@ -1300,7 +1300,7 @@ int most_register_interface(struct most_interface *iface)
return id;
}
- iface->p = kzalloc(sizeof(*iface->p), GFP_KERNEL);
+ iface->p = kzalloc_obj(*iface->p, GFP_KERNEL);
if (!iface->p) {
ida_free(&mdev_id, id);
put_device(iface->dev);
@@ -1324,7 +1324,7 @@ int most_register_interface(struct most_interface *iface)
for (i = 0; i < iface->num_channels; i++) {
const char *name_suffix = iface->channel_vector[i].name_suffix;
- c = kzalloc(sizeof(*c), GFP_KERNEL);
+ c = kzalloc_obj(*c, GFP_KERNEL);
if (!c)
goto err_free_resources;
if (!name_suffix)
diff --git a/drivers/most/most_cdev.c b/drivers/most/most_cdev.c
index b9423f82373d..87f770b03466 100644
--- a/drivers/most/most_cdev.c
+++ b/drivers/most/most_cdev.c
@@ -429,7 +429,7 @@ static int comp_probe(struct most_interface *iface, int channel_id,
if (current_minor < 0)
return current_minor;
- c = kzalloc(sizeof(*c), GFP_KERNEL);
+ c = kzalloc_obj(*c, GFP_KERNEL);
if (!c) {
retval = -ENOMEM;
goto err_remove_ida;
diff --git a/drivers/most/most_snd.c b/drivers/most/most_snd.c
index 45d762804c5e..ffd51f2d0d9b 100644
--- a/drivers/most/most_snd.c
+++ b/drivers/most/most_snd.c
@@ -542,7 +542,7 @@ static int audio_probe_channel(struct most_interface *iface, int channel_id,
adpt->pcm_dev_idx++;
goto skip_adpt_alloc;
}
- adpt = kzalloc(sizeof(*adpt), GFP_KERNEL);
+ adpt = kzalloc_obj(*adpt, GFP_KERNEL);
if (!adpt)
return -ENOMEM;
@@ -574,7 +574,7 @@ static int audio_probe_channel(struct most_interface *iface, int channel_id,
capture_count = 1;
direction = SNDRV_PCM_STREAM_CAPTURE;
}
- channel = kzalloc(sizeof(*channel), GFP_KERNEL);
+ channel = kzalloc_obj(*channel, GFP_KERNEL);
if (!channel) {
ret = -ENOMEM;
goto err_free_adpt;
diff --git a/drivers/most/most_usb.c b/drivers/most/most_usb.c
index 41ee169f80c5..0c61d023ac0a 100644
--- a/drivers/most/most_usb.c
+++ b/drivers/most/most_usb.c
@@ -142,7 +142,7 @@ static inline int drci_rd_reg(struct usb_device *dev, u16 reg, u16 *buf)
__le16 *dma_buf;
u8 req_type = USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE;
- dma_buf = kzalloc(sizeof(*dma_buf), GFP_KERNEL);
+ dma_buf = kzalloc_obj(*dma_buf, GFP_KERNEL);
if (!dma_buf)
return -ENOMEM;
@@ -960,7 +960,7 @@ hdm_probe(struct usb_interface *interface, const struct usb_device_id *id)
struct usb_endpoint_descriptor *ep_desc;
int ret = -ENOMEM;
- mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
+ mdev = kzalloc_obj(*mdev, GFP_KERNEL);
if (!mdev)
return -ENOMEM;
@@ -1000,11 +1000,11 @@ hdm_probe(struct usb_interface *interface, const struct usb_device_id *id)
mdev->dev.init_name = mdev->description;
mdev->dev.parent = &interface->dev;
mdev->dev.release = release_mdev;
- mdev->conf = kcalloc(num_endpoints, sizeof(*mdev->conf), GFP_KERNEL);
+ mdev->conf = kzalloc_objs(*mdev->conf, num_endpoints, GFP_KERNEL);
if (!mdev->conf)
goto err_free_mdev;
- mdev->cap = kcalloc(num_endpoints, sizeof(*mdev->cap), GFP_KERNEL);
+ mdev->cap = kzalloc_objs(*mdev->cap, num_endpoints, GFP_KERNEL);
if (!mdev->cap)
goto err_free_conf;
@@ -1015,7 +1015,7 @@ hdm_probe(struct usb_interface *interface, const struct usb_device_id *id)
goto err_free_cap;
mdev->busy_urbs =
- kcalloc(num_endpoints, sizeof(*mdev->busy_urbs), GFP_KERNEL);
+ kzalloc_objs(*mdev->busy_urbs, num_endpoints, GFP_KERNEL);
if (!mdev->busy_urbs)
goto err_free_ep_address;
@@ -1064,7 +1064,7 @@ hdm_probe(struct usb_interface *interface, const struct usb_device_id *id)
if (le16_to_cpu(usb_dev->descriptor.idProduct) == USB_DEV_ID_OS81118 ||
le16_to_cpu(usb_dev->descriptor.idProduct) == USB_DEV_ID_OS81119 ||
le16_to_cpu(usb_dev->descriptor.idProduct) == USB_DEV_ID_OS81210) {
- mdev->dci = kzalloc(sizeof(*mdev->dci), GFP_KERNEL);
+ mdev->dci = kzalloc_obj(*mdev->dci, GFP_KERNEL);
if (!mdev->dci) {
mutex_unlock(&mdev->io_mutex);
most_deregister_interface(&mdev->iface);
diff --git a/drivers/mtd/chips/cfi_cmdset_0001.c b/drivers/mtd/chips/cfi_cmdset_0001.c
index c10693ba265b..9a54e390cd44 100644
--- a/drivers/mtd/chips/cfi_cmdset_0001.c
+++ b/drivers/mtd/chips/cfi_cmdset_0001.c
@@ -501,7 +501,7 @@ struct mtd_info *cfi_cmdset_0001(struct map_info *map, int primary)
struct mtd_info *mtd;
int i;
- mtd = kzalloc(sizeof(*mtd), GFP_KERNEL);
+ mtd = kzalloc_obj(*mtd, GFP_KERNEL);
if (!mtd)
return NULL;
mtd->priv = map;
@@ -627,9 +627,8 @@ static struct mtd_info *cfi_intelext_setup(struct mtd_info *mtd)
mtd->size = devsize * cfi->numchips;
mtd->numeraseregions = cfi->cfiq->NumEraseRegions * cfi->numchips;
- mtd->eraseregions = kcalloc(mtd->numeraseregions,
- sizeof(struct mtd_erase_region_info),
- GFP_KERNEL);
+ mtd->eraseregions = kzalloc_objs(struct mtd_erase_region_info,
+ mtd->numeraseregions, GFP_KERNEL);
if (!mtd->eraseregions)
goto setup_err;
@@ -777,13 +776,11 @@ static int cfi_intelext_partition_fixup(struct mtd_info *mtd,
}
numvirtchips = cfi->numchips * numparts;
- newcfi = kmalloc(struct_size(newcfi, chips, numvirtchips),
- GFP_KERNEL);
+ newcfi = kmalloc_flex(*newcfi, chips, numvirtchips, GFP_KERNEL);
if (!newcfi)
return -ENOMEM;
- shared = kmalloc_array(cfi->numchips,
- sizeof(struct flchip_shared),
- GFP_KERNEL);
+ shared = kmalloc_objs(struct flchip_shared, cfi->numchips,
+ GFP_KERNEL);
if (!shared) {
kfree(newcfi);
return -ENOMEM;
diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
index 7c91429a670b..efb3ba02432e 100644
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -604,7 +604,7 @@ struct mtd_info *cfi_cmdset_0002(struct map_info *map, int primary)
struct mtd_info *mtd;
int i;
- mtd = kzalloc(sizeof(*mtd), GFP_KERNEL);
+ mtd = kzalloc_obj(*mtd, GFP_KERNEL);
if (!mtd)
return NULL;
mtd->priv = map;
@@ -776,9 +776,8 @@ static struct mtd_info *cfi_amdstd_setup(struct mtd_info *mtd)
mtd->size = devsize * cfi->numchips;
mtd->numeraseregions = cfi->cfiq->NumEraseRegions * cfi->numchips;
- mtd->eraseregions = kmalloc_array(mtd->numeraseregions,
- sizeof(struct mtd_erase_region_info),
- GFP_KERNEL);
+ mtd->eraseregions = kmalloc_objs(struct mtd_erase_region_info,
+ mtd->numeraseregions, GFP_KERNEL);
if (!mtd->eraseregions)
goto setup_err;
@@ -2819,7 +2818,7 @@ static int __maybe_unused cfi_ppb_unlock(struct mtd_info *mtd, loff_t ofs,
for (i = 0; i < mtd->numeraseregions; i++)
max_sectors += regions[i].numblocks;
- sect = kcalloc(max_sectors, sizeof(struct ppb_lock), GFP_KERNEL);
+ sect = kzalloc_objs(struct ppb_lock, max_sectors, GFP_KERNEL);
if (!sect)
return -ENOMEM;
diff --git a/drivers/mtd/chips/cfi_cmdset_0020.c b/drivers/mtd/chips/cfi_cmdset_0020.c
index 5e5266e2c2e1..5665d3b72da1 100644
--- a/drivers/mtd/chips/cfi_cmdset_0020.c
+++ b/drivers/mtd/chips/cfi_cmdset_0020.c
@@ -172,7 +172,7 @@ static struct mtd_info *cfi_staa_setup(struct map_info *map)
int i,j;
unsigned long devsize = (1<<cfi->cfiq->DevSize) * cfi->interleave;
- mtd = kzalloc(sizeof(*mtd), GFP_KERNEL);
+ mtd = kzalloc_obj(*mtd, GFP_KERNEL);
//printk(KERN_DEBUG "number of CFI chips: %d\n", cfi->numchips);
if (!mtd) {
@@ -185,9 +185,8 @@ static struct mtd_info *cfi_staa_setup(struct map_info *map)
mtd->size = devsize * cfi->numchips;
mtd->numeraseregions = cfi->cfiq->NumEraseRegions * cfi->numchips;
- mtd->eraseregions = kmalloc_array(mtd->numeraseregions,
- sizeof(struct mtd_erase_region_info),
- GFP_KERNEL);
+ mtd->eraseregions = kmalloc_objs(struct mtd_erase_region_info,
+ mtd->numeraseregions, GFP_KERNEL);
if (!mtd->eraseregions) {
kfree(cfi->cmdset_priv);
kfree(mtd);
diff --git a/drivers/mtd/chips/cfi_probe.c b/drivers/mtd/chips/cfi_probe.c
index e254f9cd2796..926bf7b61e59 100644
--- a/drivers/mtd/chips/cfi_probe.c
+++ b/drivers/mtd/chips/cfi_probe.c
@@ -208,7 +208,8 @@ static int __xipram cfi_chip_setup(struct map_info *map,
if (!num_erase_regions)
return 0;
- cfi->cfiq = kmalloc(struct_size(cfi->cfiq, EraseRegionInfo, num_erase_regions), GFP_KERNEL);
+ cfi->cfiq = kmalloc_flex(*cfi->cfiq, EraseRegionInfo, num_erase_regions,
+ GFP_KERNEL);
if (!cfi->cfiq)
return 0;
diff --git a/drivers/mtd/chips/gen_probe.c b/drivers/mtd/chips/gen_probe.c
index 9e53fcd7600d..ebf653ba8f6a 100644
--- a/drivers/mtd/chips/gen_probe.c
+++ b/drivers/mtd/chips/gen_probe.c
@@ -134,7 +134,7 @@ static struct cfi_private *genprobe_ident_chips(struct map_info *map, struct chi
* our caller, and copy the appropriate data into them.
*/
- retcfi = kmalloc(struct_size(retcfi, chips, cfi.numchips), GFP_KERNEL);
+ retcfi = kmalloc_flex(*retcfi, chips, cfi.numchips, GFP_KERNEL);
if (!retcfi) {
kfree(cfi.cfiq);
diff --git a/drivers/mtd/chips/jedec_probe.c b/drivers/mtd/chips/jedec_probe.c
index 3c631608f6d6..d7acf0425e4f 100644
--- a/drivers/mtd/chips/jedec_probe.c
+++ b/drivers/mtd/chips/jedec_probe.c
@@ -1985,7 +1985,8 @@ static int cfi_jedec_setup(struct map_info *map, struct cfi_private *cfi, int in
num_erase_regions = jedec_table[index].nr_regions;
- cfi->cfiq = kmalloc(struct_size(cfi->cfiq, EraseRegionInfo, num_erase_regions), GFP_KERNEL);
+ cfi->cfiq = kmalloc_flex(*cfi->cfiq, EraseRegionInfo, num_erase_regions,
+ GFP_KERNEL);
if (!cfi->cfiq) {
//xx printk(KERN_WARNING "%s: kmalloc failed for CFI ident structure\n", map->name);
return 0;
diff --git a/drivers/mtd/chips/map_absent.c b/drivers/mtd/chips/map_absent.c
index fc68557f49c0..6a9bd84a6def 100644
--- a/drivers/mtd/chips/map_absent.c
+++ b/drivers/mtd/chips/map_absent.c
@@ -46,7 +46,7 @@ static struct mtd_info *map_absent_probe(struct map_info *map)
{
struct mtd_info *mtd;
- mtd = kzalloc(sizeof(*mtd), GFP_KERNEL);
+ mtd = kzalloc_obj(*mtd, GFP_KERNEL);
if (!mtd) {
return NULL;
}
diff --git a/drivers/mtd/chips/map_ram.c b/drivers/mtd/chips/map_ram.c
index f9d3e32ef8e9..f94d20672423 100644
--- a/drivers/mtd/chips/map_ram.c
+++ b/drivers/mtd/chips/map_ram.c
@@ -57,7 +57,7 @@ static struct mtd_info *map_ram_probe(struct map_info *map)
#endif
/* OK. It seems to be RAM. */
- mtd = kzalloc(sizeof(*mtd), GFP_KERNEL);
+ mtd = kzalloc_obj(*mtd, GFP_KERNEL);
if (!mtd)
return NULL;
diff --git a/drivers/mtd/chips/map_rom.c b/drivers/mtd/chips/map_rom.c
index 0823b15aaadb..644ef8d62cc8 100644
--- a/drivers/mtd/chips/map_rom.c
+++ b/drivers/mtd/chips/map_rom.c
@@ -45,7 +45,7 @@ static struct mtd_info *map_rom_probe(struct map_info *map)
{
struct mtd_info *mtd;
- mtd = kzalloc(sizeof(*mtd), GFP_KERNEL);
+ mtd = kzalloc_obj(*mtd, GFP_KERNEL);
if (!mtd)
return NULL;
diff --git a/drivers/mtd/devices/block2mtd.c b/drivers/mtd/devices/block2mtd.c
index b06c8dd51562..41b1c1348efe 100644
--- a/drivers/mtd/devices/block2mtd.c
+++ b/drivers/mtd/devices/block2mtd.c
@@ -271,7 +271,7 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size,
if (!devname)
return NULL;
- dev = kzalloc(sizeof(struct block2mtd_dev), GFP_KERNEL);
+ dev = kzalloc_obj(struct block2mtd_dev, GFP_KERNEL);
if (!dev)
return NULL;
diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c
index c93769c233d9..8db760b2c900 100644
--- a/drivers/mtd/devices/docg3.c
+++ b/drivers/mtd/devices/docg3.c
@@ -1810,10 +1810,10 @@ doc_probe_device(struct docg3_cascade *cascade, int floor, struct device *dev)
struct mtd_info *mtd;
ret = -ENOMEM;
- docg3 = kzalloc(sizeof(struct docg3), GFP_KERNEL);
+ docg3 = kzalloc_obj(struct docg3, GFP_KERNEL);
if (!docg3)
goto nomem1;
- mtd = kzalloc(sizeof(struct mtd_info), GFP_KERNEL);
+ mtd = kzalloc_obj(struct mtd_info, GFP_KERNEL);
if (!mtd)
goto nomem2;
mtd->priv = docg3;
diff --git a/drivers/mtd/devices/ms02-nv.c b/drivers/mtd/devices/ms02-nv.c
index 08f76ff839a7..0a5d6ca1fe2f 100644
--- a/drivers/mtd/devices/ms02-nv.c
+++ b/drivers/mtd/devices/ms02-nv.c
@@ -117,7 +117,7 @@ static int __init ms02nv_init_one(ulong addr)
int ret = -ENODEV;
/* The module decodes 8MiB of address space. */
- mod_res = kzalloc(sizeof(*mod_res), GFP_KERNEL);
+ mod_res = kzalloc_obj(*mod_res, GFP_KERNEL);
if (!mod_res)
return -ENOMEM;
@@ -138,10 +138,10 @@ static int __init ms02nv_init_one(ulong addr)
}
ret = -ENOMEM;
- mtd = kzalloc(sizeof(*mtd), GFP_KERNEL);
+ mtd = kzalloc_obj(*mtd, GFP_KERNEL);
if (!mtd)
goto err_out_mod_res_rel;
- mp = kzalloc(sizeof(*mp), GFP_KERNEL);
+ mp = kzalloc_obj(*mp, GFP_KERNEL);
if (!mp)
goto err_out_mtd;
@@ -149,7 +149,7 @@ static int __init ms02nv_init_one(ulong addr)
mp->resource.module = mod_res;
/* Firmware's diagnostic NVRAM area. */
- diag_res = kzalloc(sizeof(*diag_res), GFP_KERNEL);
+ diag_res = kzalloc_obj(*diag_res, GFP_KERNEL);
if (!diag_res)
goto err_out_mp;
@@ -162,7 +162,7 @@ static int __init ms02nv_init_one(ulong addr)
mp->resource.diag_ram = diag_res;
/* User-available general-purpose NVRAM area. */
- user_res = kzalloc(sizeof(*user_res), GFP_KERNEL);
+ user_res = kzalloc_obj(*user_res, GFP_KERNEL);
if (!user_res)
goto err_out_diag_res;
@@ -175,7 +175,7 @@ static int __init ms02nv_init_one(ulong addr)
mp->resource.user_ram = user_res;
/* Control and status register. */
- csr_res = kzalloc(sizeof(*csr_res), GFP_KERNEL);
+ csr_res = kzalloc_obj(*csr_res, GFP_KERNEL);
if (!csr_res)
goto err_out_user_res;
diff --git a/drivers/mtd/devices/mtd_dataflash.c b/drivers/mtd/devices/mtd_dataflash.c
index ec52277e3dd5..3eebca290f50 100644
--- a/drivers/mtd/devices/mtd_dataflash.c
+++ b/drivers/mtd/devices/mtd_dataflash.c
@@ -627,7 +627,7 @@ static int add_dataflash_otp(struct spi_device *spi, char *name, int nr_pages,
char *otp_tag = "";
int err = 0;
- priv = kzalloc(sizeof *priv, GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/mtd/devices/mtd_intel_dg.c b/drivers/mtd/devices/mtd_intel_dg.c
index 7f751c48a76d..ed5a07459012 100644
--- a/drivers/mtd/devices/mtd_intel_dg.c
+++ b/drivers/mtd/devices/mtd_intel_dg.c
@@ -720,7 +720,7 @@ static int intel_dg_nvm_init_mtd(struct intel_dg_nvm *nvm, struct device *device
nvm->mtd.erasesize = SZ_4K; /* 4K bytes granularity */
nvm->mtd.size = nvm->size;
- parts = kcalloc(nvm->nregions, sizeof(*parts), GFP_KERNEL);
+ parts = kzalloc_objs(*parts, nvm->nregions, GFP_KERNEL);
if (!parts)
return -ENOMEM;
@@ -764,7 +764,7 @@ static int intel_dg_mtd_probe(struct auxiliary_device *aux_dev,
return -ENODEV;
}
- nvm = kzalloc(struct_size(nvm, regions, nregions), GFP_KERNEL);
+ nvm = kzalloc_flex(*nvm, regions, nregions, GFP_KERNEL);
if (!nvm)
return -ENOMEM;
diff --git a/drivers/mtd/devices/mtdram.c b/drivers/mtd/devices/mtdram.c
index 1c97fabc4bf9..5418cfcfb1d9 100644
--- a/drivers/mtd/devices/mtdram.c
+++ b/drivers/mtd/devices/mtdram.c
@@ -158,7 +158,7 @@ static int __init init_mtdram(void)
return -EINVAL;
/* Allocate some memory */
- mtd_info = kmalloc(sizeof(struct mtd_info), GFP_KERNEL);
+ mtd_info = kmalloc_obj(struct mtd_info, GFP_KERNEL);
if (!mtd_info)
return -ENOMEM;
diff --git a/drivers/mtd/devices/phram.c b/drivers/mtd/devices/phram.c
index fd9ec165e61a..d35f43dec8e3 100644
--- a/drivers/mtd/devices/phram.c
+++ b/drivers/mtd/devices/phram.c
@@ -130,7 +130,7 @@ static int register_device(struct platform_device *pdev, const char *name,
struct phram_mtd_list *new;
int ret = -ENOMEM;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
goto out0;
diff --git a/drivers/mtd/devices/pmc551.c b/drivers/mtd/devices/pmc551.c
index 6597fc2aad34..1d793bf7ad71 100644
--- a/drivers/mtd/devices/pmc551.c
+++ b/drivers/mtd/devices/pmc551.c
@@ -715,11 +715,11 @@ static int __init init_pmc551(void)
msize = length;
}
- mtd = kzalloc(sizeof(struct mtd_info), GFP_KERNEL);
+ mtd = kzalloc_obj(struct mtd_info, GFP_KERNEL);
if (!mtd)
break;
- priv = kzalloc(sizeof(struct mypriv), GFP_KERNEL);
+ priv = kzalloc_obj(struct mypriv, GFP_KERNEL);
if (!priv) {
kfree(mtd);
break;
diff --git a/drivers/mtd/devices/slram.c b/drivers/mtd/devices/slram.c
index 8297b366a066..1ac94e837f26 100644
--- a/drivers/mtd/devices/slram.c
+++ b/drivers/mtd/devices/slram.c
@@ -135,17 +135,17 @@ static int register_device(char *name, unsigned long start, unsigned long length
curmtd = &(*curmtd)->next;
}
- *curmtd = kmalloc(sizeof(slram_mtd_list_t), GFP_KERNEL);
+ *curmtd = kmalloc_obj(slram_mtd_list_t, GFP_KERNEL);
if (!(*curmtd)) {
E("slram: Cannot allocate new MTD device.\n");
return(-ENOMEM);
}
- (*curmtd)->mtdinfo = kzalloc(sizeof(struct mtd_info), GFP_KERNEL);
+ (*curmtd)->mtdinfo = kzalloc_obj(struct mtd_info, GFP_KERNEL);
(*curmtd)->next = NULL;
if ((*curmtd)->mtdinfo) {
(*curmtd)->mtdinfo->priv =
- kzalloc(sizeof(slram_priv_t), GFP_KERNEL);
+ kzalloc_obj(slram_priv_t, GFP_KERNEL);
if (!(*curmtd)->mtdinfo->priv) {
kfree((*curmtd)->mtdinfo);
diff --git a/drivers/mtd/ftl.c b/drivers/mtd/ftl.c
index 59a901549257..bc372a0c040d 100644
--- a/drivers/mtd/ftl.c
+++ b/drivers/mtd/ftl.c
@@ -201,16 +201,14 @@ static int build_maps(partition_t *part)
/* Set up erase unit maps */
part->DataUnits = le16_to_cpu(part->header.NumEraseUnits) -
part->header.NumTransferUnits;
- part->EUNInfo = kmalloc_array(part->DataUnits, sizeof(struct eun_info_t),
- GFP_KERNEL);
+ part->EUNInfo = kmalloc_objs(struct eun_info_t, part->DataUnits, GFP_KERNEL);
if (!part->EUNInfo)
goto out;
for (i = 0; i < part->DataUnits; i++)
part->EUNInfo[i].Offset = 0xffffffff;
part->XferInfo =
- kmalloc_array(part->header.NumTransferUnits,
- sizeof(struct xfer_info_t),
- GFP_KERNEL);
+ kmalloc_objs(struct xfer_info_t, part->header.NumTransferUnits,
+ GFP_KERNEL);
if (!part->XferInfo)
goto out_EUNInfo;
@@ -339,7 +337,7 @@ static int erase_xfer(partition_t *part,
/* Is there a free erase slot? Always in MTD. */
- erase=kmalloc(sizeof(struct erase_info), GFP_KERNEL);
+ erase=kmalloc_obj(struct erase_info, GFP_KERNEL);
if (!erase)
return -ENOMEM;
@@ -1007,7 +1005,7 @@ static void ftl_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
{
partition_t *partition;
- partition = kzalloc(sizeof(partition_t), GFP_KERNEL);
+ partition = kzalloc_obj(partition_t, GFP_KERNEL);
if (!partition) {
printk(KERN_WARNING "No memory to scan for FTL on %s\n",
diff --git a/drivers/mtd/inftlcore.c b/drivers/mtd/inftlcore.c
index 58c6e1743f5c..cde1e3f52a49 100644
--- a/drivers/mtd/inftlcore.c
+++ b/drivers/mtd/inftlcore.c
@@ -52,7 +52,7 @@ static void inftl_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
pr_debug("INFTL: add_mtd for %s\n", mtd->name);
- inftl = kzalloc(sizeof(*inftl), GFP_KERNEL);
+ inftl = kzalloc_obj(*inftl, GFP_KERNEL);
if (!inftl)
return;
diff --git a/drivers/mtd/lpddr/lpddr_cmds.c b/drivers/mtd/lpddr/lpddr_cmds.c
index cd37d58abacb..97f960af44b4 100644
--- a/drivers/mtd/lpddr/lpddr_cmds.c
+++ b/drivers/mtd/lpddr/lpddr_cmds.c
@@ -41,7 +41,7 @@ struct mtd_info *lpddr_cmdset(struct map_info *map)
int numchips;
int i, j;
- mtd = kzalloc(sizeof(*mtd), GFP_KERNEL);
+ mtd = kzalloc_obj(*mtd, GFP_KERNEL);
if (!mtd)
return NULL;
mtd->priv = map;
@@ -65,8 +65,7 @@ struct mtd_info *lpddr_cmdset(struct map_info *map)
mtd->erasesize = 1 << lpddr->qinfo->UniformBlockSizeShift;
mtd->writesize = 1 << lpddr->qinfo->BufSizeShift;
- shared = kmalloc_array(lpddr->numchips, sizeof(struct flchip_shared),
- GFP_KERNEL);
+ shared = kmalloc_objs(struct flchip_shared, lpddr->numchips, GFP_KERNEL);
if (!shared) {
kfree(mtd);
return NULL;
diff --git a/drivers/mtd/lpddr/qinfo_probe.c b/drivers/mtd/lpddr/qinfo_probe.c
index 42281e460c62..9339da9f09a1 100644
--- a/drivers/mtd/lpddr/qinfo_probe.c
+++ b/drivers/mtd/lpddr/qinfo_probe.c
@@ -120,7 +120,7 @@ static int lpddr_pfow_present(struct map_info *map, struct lpddr_private *lpddr)
static int lpddr_chip_setup(struct map_info *map, struct lpddr_private *lpddr)
{
- lpddr->qinfo = kzalloc(sizeof(struct qinfo_chip), GFP_KERNEL);
+ lpddr->qinfo = kzalloc_obj(struct qinfo_chip, GFP_KERNEL);
if (!lpddr->qinfo)
return 0;
@@ -167,8 +167,7 @@ static struct lpddr_private *lpddr_probe_chip(struct map_info *map)
lpddr.numchips = 1;
numvirtchips = lpddr.numchips * lpddr.qinfo->HWPartsNum;
- retlpddr = kzalloc(struct_size(retlpddr, chips, numvirtchips),
- GFP_KERNEL);
+ retlpddr = kzalloc_flex(*retlpddr, chips, numvirtchips, GFP_KERNEL);
if (!retlpddr)
return NULL;
diff --git a/drivers/mtd/maps/amd76xrom.c b/drivers/mtd/maps/amd76xrom.c
index 281fcbaa74e7..1825f8e2898f 100644
--- a/drivers/mtd/maps/amd76xrom.c
+++ b/drivers/mtd/maps/amd76xrom.c
@@ -188,7 +188,7 @@ static int amd76xrom_init_one(struct pci_dev *pdev,
int i;
if (!map) {
- map = kmalloc(sizeof(*map), GFP_KERNEL);
+ map = kmalloc_obj(*map, GFP_KERNEL);
if (!map)
goto out;
}
diff --git a/drivers/mtd/maps/ck804xrom.c b/drivers/mtd/maps/ck804xrom.c
index c0216bc740cc..0ac4b26b1dd7 100644
--- a/drivers/mtd/maps/ck804xrom.c
+++ b/drivers/mtd/maps/ck804xrom.c
@@ -218,7 +218,7 @@ static int __init ck804xrom_init_one(struct pci_dev *pdev,
int i;
if (!map) {
- map = kmalloc(sizeof(*map), GFP_KERNEL);
+ map = kmalloc_obj(*map, GFP_KERNEL);
if (!map)
goto out;
}
diff --git a/drivers/mtd/maps/esb2rom.c b/drivers/mtd/maps/esb2rom.c
index 15d5b76ff504..14d050a5629f 100644
--- a/drivers/mtd/maps/esb2rom.c
+++ b/drivers/mtd/maps/esb2rom.c
@@ -278,7 +278,7 @@ static int __init esb2rom_init_one(struct pci_dev *pdev,
int i;
if (!map) {
- map = kmalloc(sizeof(*map), GFP_KERNEL);
+ map = kmalloc_obj(*map, GFP_KERNEL);
if (!map)
goto out;
}
diff --git a/drivers/mtd/maps/ichxrom.c b/drivers/mtd/maps/ichxrom.c
index c8b2793691db..b940beb70b65 100644
--- a/drivers/mtd/maps/ichxrom.c
+++ b/drivers/mtd/maps/ichxrom.c
@@ -212,7 +212,7 @@ static int __init ichxrom_init_one(struct pci_dev *pdev,
int i;
if (!map) {
- map = kmalloc(sizeof(*map), GFP_KERNEL);
+ map = kmalloc_obj(*map, GFP_KERNEL);
if (!map)
goto out;
}
diff --git a/drivers/mtd/maps/pci.c b/drivers/mtd/maps/pci.c
index ca00d211e73e..b70b8edceb1b 100644
--- a/drivers/mtd/maps/pci.c
+++ b/drivers/mtd/maps/pci.c
@@ -264,7 +264,7 @@ static int mtd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
if (err)
goto out;
- map = kmalloc(sizeof(*map), GFP_KERNEL);
+ map = kmalloc_obj(*map, GFP_KERNEL);
err = -ENOMEM;
if (!map)
goto release;
diff --git a/drivers/mtd/maps/pcmciamtd.c b/drivers/mtd/maps/pcmciamtd.c
index 206a3c463e6e..8b7192ff6f04 100644
--- a/drivers/mtd/maps/pcmciamtd.c
+++ b/drivers/mtd/maps/pcmciamtd.c
@@ -674,7 +674,7 @@ static int pcmciamtd_probe(struct pcmcia_device *link)
struct pcmciamtd_dev *dev;
/* Create new memory card device */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) return -ENOMEM;
pr_debug("dev=0x%p\n", dev);
diff --git a/drivers/mtd/maps/pismo.c b/drivers/mtd/maps/pismo.c
index ecf68922da73..30b95fd3352d 100644
--- a/drivers/mtd/maps/pismo.c
+++ b/drivers/mtd/maps/pismo.c
@@ -218,7 +218,7 @@ static int pismo_probe(struct i2c_client *client)
return -EIO;
}
- pismo = kzalloc(sizeof(*pismo), GFP_KERNEL);
+ pismo = kzalloc_obj(*pismo, GFP_KERNEL);
if (!pismo)
return -ENOMEM;
diff --git a/drivers/mtd/maps/plat-ram.c b/drivers/mtd/maps/plat-ram.c
index 1c541eaf477a..d0f9b81ad7c5 100644
--- a/drivers/mtd/maps/plat-ram.c
+++ b/drivers/mtd/maps/plat-ram.c
@@ -109,7 +109,7 @@ static int platram_probe(struct platform_device *pdev)
pdata = dev_get_platdata(&pdev->dev);
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (info == NULL) {
err = -ENOMEM;
goto exit_error;
diff --git a/drivers/mtd/maps/pxa2xx-flash.c b/drivers/mtd/maps/pxa2xx-flash.c
index f27c25db6778..5ad7ae7a311c 100644
--- a/drivers/mtd/maps/pxa2xx-flash.c
+++ b/drivers/mtd/maps/pxa2xx-flash.c
@@ -51,7 +51,7 @@ static int pxa2xx_flash_probe(struct platform_device *pdev)
if (!res)
return -ENODEV;
- info = kzalloc(sizeof(struct pxa2xx_flash_info), GFP_KERNEL);
+ info = kzalloc_obj(struct pxa2xx_flash_info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/mtd/maps/sa1100-flash.c b/drivers/mtd/maps/sa1100-flash.c
index 6a54a84d0d9c..ed69df084352 100644
--- a/drivers/mtd/maps/sa1100-flash.c
+++ b/drivers/mtd/maps/sa1100-flash.c
@@ -170,7 +170,7 @@ static struct sa_info *sa1100_setup_mtd(struct platform_device *pdev,
/*
* Allocate the map_info structs in one go.
*/
- info = kzalloc(struct_size(info, subdev, nr), GFP_KERNEL);
+ info = kzalloc_flex(*info, subdev, nr, GFP_KERNEL);
if (!info) {
ret = -ENOMEM;
goto out;
@@ -222,7 +222,7 @@ static struct sa_info *sa1100_setup_mtd(struct platform_device *pdev,
} else if (info->num_subdev > 1) {
struct mtd_info **cdev;
- cdev = kmalloc_array(nr, sizeof(*cdev), GFP_KERNEL);
+ cdev = kmalloc_objs(*cdev, nr, GFP_KERNEL);
if (!cdev) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/mtd/maps/sun_uflash.c b/drivers/mtd/maps/sun_uflash.c
index ea3aa026b55b..aebbf2931f1c 100644
--- a/drivers/mtd/maps/sun_uflash.c
+++ b/drivers/mtd/maps/sun_uflash.c
@@ -61,7 +61,7 @@ static int uflash_devinit(struct platform_device *op, struct device_node *dp)
return -ENODEV;
}
- up = kzalloc(sizeof(struct uflash_dev), GFP_KERNEL);
+ up = kzalloc_obj(struct uflash_dev, GFP_KERNEL);
if (!up)
return -ENOMEM;
diff --git a/drivers/mtd/maps/vmu-flash.c b/drivers/mtd/maps/vmu-flash.c
index 53019d313db7..bd4ebcde51db 100644
--- a/drivers/mtd/maps/vmu-flash.c
+++ b/drivers/mtd/maps/vmu-flash.c
@@ -73,7 +73,7 @@ static struct vmu_block *ofs_to_block(unsigned long src_ofs,
if (num > card->parts[partition].numblocks)
goto failed;
- vblock = kmalloc(sizeof(struct vmu_block), GFP_KERNEL);
+ vblock = kmalloc_obj(struct vmu_block, GFP_KERNEL);
if (!vblock)
goto failed;
@@ -539,7 +539,7 @@ static void vmu_queryblocks(struct mapleq *mq)
mtd_cur->_sync = vmu_flash_sync;
mtd_cur->writesize = card->blocklen;
- mpart = kmalloc(sizeof(struct mdev_part), GFP_KERNEL);
+ mpart = kmalloc_obj(struct mdev_part, GFP_KERNEL);
if (!mpart)
goto fail_mpart;
@@ -548,7 +548,7 @@ static void vmu_queryblocks(struct mapleq *mq)
mtd_cur->priv = mpart;
mtd_cur->owner = THIS_MODULE;
- pcache = kzalloc(sizeof(struct vmu_cache), GFP_KERNEL);
+ pcache = kzalloc_obj(struct vmu_cache, GFP_KERNEL);
if (!pcache)
goto fail_cache_create;
part_cur->pcache = pcache;
@@ -609,7 +609,7 @@ static int vmu_connect(struct maple_device *mdev)
basic_flash_data = be32_to_cpu(mdev->devinfo.function_data[c - 1]);
- card = kmalloc(sizeof(struct memcard), GFP_KERNEL);
+ card = kmalloc_obj(struct memcard, GFP_KERNEL);
if (!card) {
error = -ENOMEM;
goto fail_nomem;
@@ -627,15 +627,13 @@ static int vmu_connect(struct maple_device *mdev)
* Not sure there are actually any multi-partition devices in the
* real world, but the hardware supports them, so, so will we
*/
- card->parts = kmalloc_array(card->partitions, sizeof(struct vmupart),
- GFP_KERNEL);
+ card->parts = kmalloc_objs(struct vmupart, card->partitions, GFP_KERNEL);
if (!card->parts) {
error = -ENOMEM;
goto fail_partitions;
}
- card->mtd = kmalloc_array(card->partitions, sizeof(struct mtd_info),
- GFP_KERNEL);
+ card->mtd = kmalloc_objs(struct mtd_info, card->partitions, GFP_KERNEL);
if (!card->mtd) {
error = -ENOMEM;
goto fail_mtd_info;
diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c
index 28e09d080440..470a838cbab7 100644
--- a/drivers/mtd/mtd_blkdevs.c
+++ b/drivers/mtd/mtd_blkdevs.c
@@ -324,7 +324,7 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
new->readonly = 1;
ret = -ENOMEM;
- new->tag_set = kzalloc(sizeof(*new->tag_set), GFP_KERNEL);
+ new->tag_set = kzalloc_obj(*new->tag_set, GFP_KERNEL);
if (!new->tag_set)
goto out_list_del;
diff --git a/drivers/mtd/mtdblock.c b/drivers/mtd/mtdblock.c
index 9751416c2a91..80614f218228 100644
--- a/drivers/mtd/mtdblock.c
+++ b/drivers/mtd/mtdblock.c
@@ -316,7 +316,7 @@ static int mtdblock_flush(struct mtd_blktrans_dev *dev)
static void mtdblock_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
{
- struct mtdblk_dev *dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ struct mtdblk_dev *dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return;
diff --git a/drivers/mtd/mtdblock_ro.c b/drivers/mtd/mtdblock_ro.c
index ef6299af60e4..e82f27eec5ae 100644
--- a/drivers/mtd/mtdblock_ro.c
+++ b/drivers/mtd/mtdblock_ro.c
@@ -36,7 +36,7 @@ static int mtdblock_writesect(struct mtd_blktrans_dev *dev,
static void mtdblock_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
{
- struct mtd_blktrans_dev *dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ struct mtd_blktrans_dev *dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return;
diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c
index 335c702633ff..35b31fea77f3 100644
--- a/drivers/mtd/mtdchar.c
+++ b/drivers/mtd/mtdchar.c
@@ -72,7 +72,7 @@ static int mtdchar_open(struct inode *inode, struct file *file)
goto out1;
}
- mfi = kzalloc(sizeof(*mfi), GFP_KERNEL);
+ mfi = kzalloc_obj(*mfi, GFP_KERNEL);
if (!mfi) {
ret = -ENOMEM;
goto out1;
@@ -923,7 +923,7 @@ static int mtdchar_ioctl(struct file *file, u_int cmd, u_long arg)
{
struct erase_info *erase;
- erase=kzalloc(sizeof(struct erase_info),GFP_KERNEL);
+ erase=kzalloc_obj(struct erase_info, GFP_KERNEL);
if (!erase)
ret = -ENOMEM;
else {
@@ -1162,7 +1162,7 @@ static int mtdchar_ioctl(struct file *file, u_int cmd, u_long arg)
if (!master->ooblayout)
return -EOPNOTSUPP;
- usrlay = kmalloc(sizeof(*usrlay), GFP_KERNEL);
+ usrlay = kmalloc_obj(*usrlay, GFP_KERNEL);
if (!usrlay)
return -ENOMEM;
diff --git a/drivers/mtd/mtdconcat.c b/drivers/mtd/mtdconcat.c
index f56f44aa8625..c4145ba218df 100644
--- a/drivers/mtd/mtdconcat.c
+++ b/drivers/mtd/mtdconcat.c
@@ -416,7 +416,7 @@ static int concat_erase(struct mtd_info *mtd, struct erase_info *instr)
}
/* make a local copy of instr to avoid modifying the caller's struct */
- erase = kmalloc(sizeof (struct erase_info), GFP_KERNEL);
+ erase = kmalloc_obj(struct erase_info, GFP_KERNEL);
if (!erase)
return -ENOMEM;
@@ -823,9 +823,8 @@ struct mtd_info *mtd_concat_create(struct mtd_info *subdev[], /* subdevices to c
concat->mtd.erasesize = max_erasesize;
concat->mtd.numeraseregions = num_erase_region;
concat->mtd.eraseregions = erase_region_p =
- kmalloc_array(num_erase_region,
- sizeof(struct mtd_erase_region_info),
- GFP_KERNEL);
+ kmalloc_objs(struct mtd_erase_region_info, num_erase_region,
+ GFP_KERNEL);
if (!erase_region_p) {
kfree(concat);
printk
diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
index 2876501a7814..2c0be153a96e 100644
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -53,7 +53,7 @@ static struct mtd_info *allocate_partition(struct mtd_info *parent,
u64 tmp;
/* allocate the partition structure */
- child = kzalloc(sizeof(*child), GFP_KERNEL);
+ child = kzalloc_obj(*child, GFP_KERNEL);
name = kstrdup(part->name, GFP_KERNEL);
if (!name || !child) {
printk(KERN_ERR"memory allocation error while creating partitions for \"%s\"\n",
diff --git a/drivers/mtd/mtdswap.c b/drivers/mtd/mtdswap.c
index d8f2e5be2d31..a2d072da1bbe 100644
--- a/drivers/mtd/mtdswap.c
+++ b/drivers/mtd/mtdswap.c
@@ -1413,11 +1413,11 @@ static void mtdswap_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
"%u spare, %u bad blocks\n",
MTDSWAP_PREFIX, part, swap_size / 1024, spare_cnt, bad_blocks);
- d = kzalloc(sizeof(struct mtdswap_dev), GFP_KERNEL);
+ d = kzalloc_obj(struct mtdswap_dev, GFP_KERNEL);
if (!d)
return;
- mbd_dev = kzalloc(sizeof(struct mtd_blktrans_dev), GFP_KERNEL);
+ mbd_dev = kzalloc_obj(struct mtd_blktrans_dev, GFP_KERNEL);
if (!mbd_dev) {
kfree(d);
return;
diff --git a/drivers/mtd/nand/ecc-sw-bch.c b/drivers/mtd/nand/ecc-sw-bch.c
index 0d9310dd6f52..8ed20f176521 100644
--- a/drivers/mtd/nand/ecc-sw-bch.c
+++ b/drivers/mtd/nand/ecc-sw-bch.c
@@ -227,7 +227,7 @@ int nand_ecc_sw_bch_init_ctx(struct nand_device *nand)
return -EINVAL;
}
- engine_conf = kzalloc(sizeof(*engine_conf), GFP_KERNEL);
+ engine_conf = kzalloc_obj(*engine_conf, GFP_KERNEL);
if (!engine_conf)
return -ENOMEM;
diff --git a/drivers/mtd/nand/ecc-sw-hamming.c b/drivers/mtd/nand/ecc-sw-hamming.c
index bc62a71f9fdd..65fe971a409d 100644
--- a/drivers/mtd/nand/ecc-sw-hamming.c
+++ b/drivers/mtd/nand/ecc-sw-hamming.c
@@ -496,7 +496,7 @@ int nand_ecc_sw_hamming_init_ctx(struct nand_device *nand)
if (conf->step_size != 256 && conf->step_size != 512)
conf->step_size = 256;
- engine_conf = kzalloc(sizeof(*engine_conf), GFP_KERNEL);
+ engine_conf = kzalloc_obj(*engine_conf, GFP_KERNEL);
if (!engine_conf)
return -ENOMEM;
diff --git a/drivers/mtd/nand/onenand/generic.c b/drivers/mtd/nand/onenand/generic.c
index 4e6fd1c34484..69ca617985c8 100644
--- a/drivers/mtd/nand/onenand/generic.c
+++ b/drivers/mtd/nand/onenand/generic.c
@@ -37,7 +37,7 @@ static int generic_onenand_probe(struct platform_device *pdev)
unsigned long size = resource_size(res);
int err;
- info = kzalloc(sizeof(struct onenand_info), GFP_KERNEL);
+ info = kzalloc_obj(struct onenand_info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/mtd/nand/onenand/onenand_base.c b/drivers/mtd/nand/onenand/onenand_base.c
index 0dc2ea4fc857..e69f46ff2b11 100644
--- a/drivers/mtd/nand/onenand/onenand_base.c
+++ b/drivers/mtd/nand/onenand/onenand_base.c
@@ -3728,9 +3728,8 @@ static int onenand_probe(struct mtd_info *mtd)
/* Maximum possible erase regions */
mtd->numeraseregions = this->dies << 1;
mtd->eraseregions =
- kcalloc(this->dies << 1,
- sizeof(struct mtd_erase_region_info),
- GFP_KERNEL);
+ kzalloc_objs(struct mtd_erase_region_info,
+ this->dies << 1, GFP_KERNEL);
if (!mtd->eraseregions)
return -ENOMEM;
}
diff --git a/drivers/mtd/nand/onenand/onenand_bbt.c b/drivers/mtd/nand/onenand/onenand_bbt.c
index d7fe35bc45cb..380e5051595f 100644
--- a/drivers/mtd/nand/onenand/onenand_bbt.c
+++ b/drivers/mtd/nand/onenand/onenand_bbt.c
@@ -231,7 +231,7 @@ int onenand_default_bbt(struct mtd_info *mtd)
struct onenand_chip *this = mtd->priv;
struct bbm_info *bbm;
- this->bbm = kzalloc(sizeof(struct bbm_info), GFP_KERNEL);
+ this->bbm = kzalloc_obj(struct bbm_info, GFP_KERNEL);
if (!this->bbm)
return -ENOMEM;
diff --git a/drivers/mtd/nand/qpic_common.c b/drivers/mtd/nand/qpic_common.c
index db6c46a6fe01..0acd6c65f326 100644
--- a/drivers/mtd/nand/qpic_common.c
+++ b/drivers/mtd/nand/qpic_common.c
@@ -156,7 +156,7 @@ int qcom_prepare_bam_async_desc(struct qcom_nand_controller *nandc,
enum dma_transfer_direction dir_eng;
struct dma_async_tx_descriptor *dma_desc;
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
return -ENOMEM;
@@ -364,7 +364,7 @@ int qcom_prep_adm_dma_desc(struct qcom_nand_controller *nandc, bool read,
struct scatterlist *sgl;
int ret;
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
return -ENOMEM;
diff --git a/drivers/mtd/nand/raw/au1550nd.c b/drivers/mtd/nand/raw/au1550nd.c
index 04d64724c400..6b09eb643ed2 100644
--- a/drivers/mtd/nand/raw/au1550nd.c
+++ b/drivers/mtd/nand/raw/au1550nd.c
@@ -266,7 +266,7 @@ static int au1550nd_probe(struct platform_device *pdev)
return -ENODEV;
}
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/mtd/nand/raw/cafe_nand.c b/drivers/mtd/nand/raw/cafe_nand.c
index 66385c4fb994..b05a41ce2e35 100644
--- a/drivers/mtd/nand/raw/cafe_nand.c
+++ b/drivers/mtd/nand/raw/cafe_nand.c
@@ -678,7 +678,7 @@ static int cafe_nand_probe(struct pci_dev *pdev,
pci_set_master(pdev);
- cafe = kzalloc(sizeof(*cafe), GFP_KERNEL);
+ cafe = kzalloc_obj(*cafe, GFP_KERNEL);
if (!cafe) {
err = -ENOMEM;
goto out_disable_device;
diff --git a/drivers/mtd/nand/raw/cs553x_nand.c b/drivers/mtd/nand/raw/cs553x_nand.c
index ec95d787001b..ca2a7e16b5d8 100644
--- a/drivers/mtd/nand/raw/cs553x_nand.c
+++ b/drivers/mtd/nand/raw/cs553x_nand.c
@@ -273,7 +273,7 @@ static int __init cs553x_init_one(int cs, int mmio, unsigned long adr)
}
/* Allocate memory for MTD device structure and private data */
- controller = kzalloc(sizeof(*controller), GFP_KERNEL);
+ controller = kzalloc_obj(*controller, GFP_KERNEL);
if (!controller) {
err = -ENOMEM;
goto out;
diff --git a/drivers/mtd/nand/raw/fsl_elbc_nand.c b/drivers/mtd/nand/raw/fsl_elbc_nand.c
index 03dbe37df021..fdca096d74ba 100644
--- a/drivers/mtd/nand/raw/fsl_elbc_nand.c
+++ b/drivers/mtd/nand/raw/fsl_elbc_nand.c
@@ -895,13 +895,13 @@ static int fsl_elbc_nand_probe(struct platform_device *pdev)
return -ENODEV;
}
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
mutex_lock(&fsl_elbc_nand_mutex);
if (!fsl_lbc_ctrl_dev->nand) {
- elbc_fcm_ctrl = kzalloc(sizeof(*elbc_fcm_ctrl), GFP_KERNEL);
+ elbc_fcm_ctrl = kzalloc_obj(*elbc_fcm_ctrl, GFP_KERNEL);
if (!elbc_fcm_ctrl) {
mutex_unlock(&fsl_elbc_nand_mutex);
ret = -ENOMEM;
diff --git a/drivers/mtd/nand/raw/fsl_ifc_nand.c b/drivers/mtd/nand/raw/fsl_ifc_nand.c
index 7be95d0be248..6eb507f6a204 100644
--- a/drivers/mtd/nand/raw/fsl_ifc_nand.c
+++ b/drivers/mtd/nand/raw/fsl_ifc_nand.c
@@ -1018,7 +1018,7 @@ static int fsl_ifc_nand_probe(struct platform_device *dev)
mutex_lock(&fsl_ifc_nand_mutex);
if (!fsl_ifc_ctrl_dev->nand) {
- ifc_nand_ctrl = kzalloc(sizeof(*ifc_nand_ctrl), GFP_KERNEL);
+ ifc_nand_ctrl = kzalloc_obj(*ifc_nand_ctrl, GFP_KERNEL);
if (!ifc_nand_ctrl) {
mutex_unlock(&fsl_ifc_nand_mutex);
return -ENOMEM;
diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c
index f2322de93ab4..29f603fb2d8f 100644
--- a/drivers/mtd/nand/raw/nand_base.c
+++ b/drivers/mtd/nand/raw/nand_base.c
@@ -1062,7 +1062,7 @@ static int nand_choose_interface_config(struct nand_chip *chip)
if (!nand_controller_can_setup_interface(chip))
return 0;
- iface = kzalloc(sizeof(*iface), GFP_KERNEL);
+ iface = kzalloc_obj(*iface, GFP_KERNEL);
if (!iface)
return -ENOMEM;
@@ -5429,8 +5429,8 @@ static int of_get_nand_secure_regions(struct nand_chip *chip)
return nr_elem;
chip->nr_secure_regions = nr_elem / 2;
- chip->secure_regions = kcalloc(chip->nr_secure_regions, sizeof(*chip->secure_regions),
- GFP_KERNEL);
+ chip->secure_regions = kzalloc_objs(*chip->secure_regions,
+ chip->nr_secure_regions, GFP_KERNEL);
if (!chip->secure_regions)
return -ENOMEM;
diff --git a/drivers/mtd/nand/raw/nand_bbt.c b/drivers/mtd/nand/raw/nand_bbt.c
index 3050ab7e6eb6..5e500bf2a3c2 100644
--- a/drivers/mtd/nand/raw/nand_bbt.c
+++ b/drivers/mtd/nand/raw/nand_bbt.c
@@ -1375,7 +1375,7 @@ static int nand_create_badblock_pattern(struct nand_chip *this)
pr_warn("Bad block pattern already allocated; not replacing\n");
return -EINVAL;
}
- bd = kzalloc(sizeof(*bd), GFP_KERNEL);
+ bd = kzalloc_obj(*bd, GFP_KERNEL);
if (!bd)
return -ENOMEM;
bd->options = this->bbt_options & BADBLOCK_SCAN_MASK;
diff --git a/drivers/mtd/nand/raw/nand_hynix.c b/drivers/mtd/nand/raw/nand_hynix.c
index b663659b2f49..12f4e5d1038e 100644
--- a/drivers/mtd/nand/raw/nand_hynix.c
+++ b/drivers/mtd/nand/raw/nand_hynix.c
@@ -705,7 +705,7 @@ static int hynix_nand_init(struct nand_chip *chip)
else
chip->options |= NAND_BBM_FIRSTPAGE | NAND_BBM_SECONDPAGE;
- hynix = kzalloc(sizeof(*hynix), GFP_KERNEL);
+ hynix = kzalloc_obj(*hynix, GFP_KERNEL);
if (!hynix)
return -ENOMEM;
diff --git a/drivers/mtd/nand/raw/nand_jedec.c b/drivers/mtd/nand/raw/nand_jedec.c
index 89e6dd8ed1a8..8b2725863fbf 100644
--- a/drivers/mtd/nand/raw/nand_jedec.c
+++ b/drivers/mtd/nand/raw/nand_jedec.c
@@ -42,7 +42,7 @@ int nand_jedec_detect(struct nand_chip *chip)
return 0;
/* JEDEC chip: allocate a buffer to hold its parameter page */
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return -ENOMEM;
diff --git a/drivers/mtd/nand/raw/nand_micron.c b/drivers/mtd/nand/raw/nand_micron.c
index c0192881906b..b97a2bd606ae 100644
--- a/drivers/mtd/nand/raw/nand_micron.c
+++ b/drivers/mtd/nand/raw/nand_micron.c
@@ -484,7 +484,7 @@ static int micron_nand_init(struct nand_chip *chip)
int ondie;
int ret;
- micron = kzalloc(sizeof(*micron), GFP_KERNEL);
+ micron = kzalloc_obj(*micron, GFP_KERNEL);
if (!micron)
return -ENOMEM;
diff --git a/drivers/mtd/nand/raw/nand_onfi.c b/drivers/mtd/nand/raw/nand_onfi.c
index 11954440e4de..c4e7304372f1 100644
--- a/drivers/mtd/nand/raw/nand_onfi.c
+++ b/drivers/mtd/nand/raw/nand_onfi.c
@@ -306,7 +306,7 @@ int nand_onfi_detect(struct nand_chip *chip)
if (le16_to_cpu(p->opt_cmd) & ONFI_OPT_CMD_READ_CACHE)
chip->parameters.supports_read_cache = true;
- onfi = kzalloc(sizeof(*onfi), GFP_KERNEL);
+ onfi = kzalloc_obj(*onfi, GFP_KERNEL);
if (!onfi) {
ret = -ENOMEM;
goto free_model;
diff --git a/drivers/mtd/nand/raw/nandsim.c b/drivers/mtd/nand/raw/nandsim.c
index 84942e7e528f..4e7ea6c11a15 100644
--- a/drivers/mtd/nand/raw/nandsim.c
+++ b/drivers/mtd/nand/raw/nandsim.c
@@ -851,7 +851,7 @@ static int ns_parse_weakblocks(void)
}
if (*w == ',')
w += 1;
- wb = kzalloc(sizeof(*wb), GFP_KERNEL);
+ wb = kzalloc_obj(*wb, GFP_KERNEL);
if (!wb) {
NS_ERR("unable to allocate memory.\n");
return -ENOMEM;
@@ -902,7 +902,7 @@ static int ns_parse_weakpages(void)
}
if (*w == ',')
w += 1;
- wp = kzalloc(sizeof(*wp), GFP_KERNEL);
+ wp = kzalloc_obj(*wp, GFP_KERNEL);
if (!wp) {
NS_ERR("unable to allocate memory.\n");
return -ENOMEM;
@@ -953,7 +953,7 @@ static int ns_parse_gravepages(void)
}
if (*g == ',')
g += 1;
- gp = kzalloc(sizeof(*gp), GFP_KERNEL);
+ gp = kzalloc_obj(*gp, GFP_KERNEL);
if (!gp) {
NS_ERR("unable to allocate memory.\n");
return -ENOMEM;
@@ -2268,7 +2268,7 @@ static int __init ns_init_module(void)
return -EINVAL;
}
- ns = kzalloc(sizeof(struct nandsim), GFP_KERNEL);
+ ns = kzalloc_obj(struct nandsim, GFP_KERNEL);
if (!ns) {
NS_ERR("unable to allocate core structures.\n");
return -ENOMEM;
diff --git a/drivers/mtd/nand/raw/pasemi_nand.c b/drivers/mtd/nand/raw/pasemi_nand.c
index 0b1f7670660e..05d3e58c50dc 100644
--- a/drivers/mtd/nand/raw/pasemi_nand.c
+++ b/drivers/mtd/nand/raw/pasemi_nand.c
@@ -113,7 +113,7 @@ static int pasemi_nand_probe(struct platform_device *ofdev)
dev_dbg(dev, "pasemi_nand at %pR\n", &res);
/* Allocate memory for MTD device structure and private data */
- ddata = kzalloc(sizeof(*ddata), GFP_KERNEL);
+ ddata = kzalloc_obj(*ddata, GFP_KERNEL);
if (!ddata) {
err = -ENOMEM;
goto out;
diff --git a/drivers/mtd/nand/raw/r852.c b/drivers/mtd/nand/raw/r852.c
index 918974d088cf..24e702919b87 100644
--- a/drivers/mtd/nand/raw/r852.c
+++ b/drivers/mtd/nand/raw/r852.c
@@ -867,7 +867,7 @@ static int r852_probe(struct pci_dev *pci_dev, const struct pci_device_id *id)
error = -ENOMEM;
/* init nand chip, but register it only on card insert */
- chip = kzalloc(sizeof(struct nand_chip), GFP_KERNEL);
+ chip = kzalloc_obj(struct nand_chip, GFP_KERNEL);
if (!chip)
goto error4;
@@ -883,7 +883,7 @@ static int r852_probe(struct pci_dev *pci_dev, const struct pci_device_id *id)
chip->legacy.write_buf = r852_write_buf;
/* init our device structure */
- dev = kzalloc(sizeof(struct r852_device), GFP_KERNEL);
+ dev = kzalloc_obj(struct r852_device, GFP_KERNEL);
if (!dev)
goto error5;
diff --git a/drivers/mtd/nand/raw/sharpsl.c b/drivers/mtd/nand/raw/sharpsl.c
index 142e93b200a3..d74097783036 100644
--- a/drivers/mtd/nand/raw/sharpsl.c
+++ b/drivers/mtd/nand/raw/sharpsl.c
@@ -132,7 +132,7 @@ static int sharpsl_nand_probe(struct platform_device *pdev)
}
/* Allocate memory for MTD device structure and private data */
- sharpsl = kzalloc(sizeof(struct sharpsl_nand), GFP_KERNEL);
+ sharpsl = kzalloc_obj(struct sharpsl_nand, GFP_KERNEL);
if (!sharpsl)
return -ENOMEM;
diff --git a/drivers/mtd/nand/raw/txx9ndfmc.c b/drivers/mtd/nand/raw/txx9ndfmc.c
index 907fb5de4269..e49c38abef68 100644
--- a/drivers/mtd/nand/raw/txx9ndfmc.c
+++ b/drivers/mtd/nand/raw/txx9ndfmc.c
@@ -319,8 +319,7 @@ static int txx9ndfmc_probe(struct platform_device *dev)
if (!(plat->ch_mask & (1 << i)))
continue;
- txx9_priv = kzalloc(sizeof(struct txx9ndfmc_priv),
- GFP_KERNEL);
+ txx9_priv = kzalloc_obj(struct txx9ndfmc_priv, GFP_KERNEL);
if (!txx9_priv)
continue;
chip = &txx9_priv->chip;
diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c
index 29fb2ac19569..86dee7d13a38 100644
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -350,7 +350,7 @@ static int spinand_ondie_ecc_init_ctx(struct nand_device *nand)
nand->ecc.ctx.conf.step_size = nand->ecc.requirements.step_size;
nand->ecc.ctx.conf.strength = nand->ecc.requirements.strength;
- engine_conf = kzalloc(sizeof(*engine_conf), GFP_KERNEL);
+ engine_conf = kzalloc_obj(*engine_conf, GFP_KERNEL);
if (!engine_conf)
return -ENOMEM;
diff --git a/drivers/mtd/nand/spi/gigadevice.c b/drivers/mtd/nand/spi/gigadevice.c
index e4380208edd0..137571093ec0 100644
--- a/drivers/mtd/nand/spi/gigadevice.c
+++ b/drivers/mtd/nand/spi/gigadevice.c
@@ -642,7 +642,7 @@ static int gd5fxgm9_spinand_init(struct spinand_device *spinand)
{
struct gigadevice_priv *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/mtd/nand/spi/macronix.c b/drivers/mtd/nand/spi/macronix.c
index 84be5e0402b5..2e6b9be9c58b 100644
--- a/drivers/mtd/nand/spi/macronix.c
+++ b/drivers/mtd/nand/spi/macronix.c
@@ -499,7 +499,7 @@ static int macronix_spinand_init(struct spinand_device *spinand)
{
struct macronix_priv *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/mtd/nftlcore.c b/drivers/mtd/nftlcore.c
index 868aa3d35d09..9f3c193fb0c4 100644
--- a/drivers/mtd/nftlcore.c
+++ b/drivers/mtd/nftlcore.c
@@ -45,7 +45,7 @@ static void nftl_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
pr_debug("NFTL: add_mtd for %s\n", mtd->name);
- nftl = kzalloc(sizeof(struct NFTLrecord), GFP_KERNEL);
+ nftl = kzalloc_obj(struct NFTLrecord, GFP_KERNEL);
if (!nftl)
return;
diff --git a/drivers/mtd/parsers/bcm47xxpart.c b/drivers/mtd/parsers/bcm47xxpart.c
index 49c8e7f27f21..b8ba7d2f22e1 100644
--- a/drivers/mtd/parsers/bcm47xxpart.c
+++ b/drivers/mtd/parsers/bcm47xxpart.c
@@ -106,8 +106,8 @@ static int bcm47xxpart_parse(struct mtd_info *master,
blocksize = 0x1000;
/* Alloc */
- parts = kcalloc(BCM47XXPART_MAX_PARTS, sizeof(struct mtd_partition),
- GFP_KERNEL);
+ parts = kzalloc_objs(struct mtd_partition, BCM47XXPART_MAX_PARTS,
+ GFP_KERNEL);
if (!parts)
return -ENOMEM;
diff --git a/drivers/mtd/parsers/brcm_u-boot.c b/drivers/mtd/parsers/brcm_u-boot.c
index 984f98923446..168cd629c277 100644
--- a/drivers/mtd/parsers/brcm_u-boot.c
+++ b/drivers/mtd/parsers/brcm_u-boot.c
@@ -37,7 +37,7 @@ static int brcm_u_boot_parse(struct mtd_info *mtd,
int err;
int i = 0;
- parts = kcalloc(BRCM_U_BOOT_MAX_PARTS, sizeof(*parts), GFP_KERNEL);
+ parts = kzalloc_objs(*parts, BRCM_U_BOOT_MAX_PARTS, GFP_KERNEL);
if (!parts)
return -ENOMEM;
diff --git a/drivers/mtd/parsers/ofpart_core.c b/drivers/mtd/parsers/ofpart_core.c
index 599adb69eba6..02cf6a539e3f 100644
--- a/drivers/mtd/parsers/ofpart_core.c
+++ b/drivers/mtd/parsers/ofpart_core.c
@@ -102,7 +102,7 @@ static int parse_fixed_partitions(struct mtd_info *master,
return 0;
}
- parts = kcalloc(nr_parts, sizeof(*parts), GFP_KERNEL);
+ parts = kzalloc_objs(*parts, nr_parts, GFP_KERNEL);
if (!parts) {
if (dedicated)
of_node_put(ofpart_node);
@@ -249,7 +249,7 @@ static int parse_ofoldpart_partitions(struct mtd_info *master,
nr_parts = plen / sizeof(part[0]);
- parts = kcalloc(nr_parts, sizeof(*parts), GFP_KERNEL);
+ parts = kzalloc_objs(*parts, nr_parts, GFP_KERNEL);
if (!parts)
return -ENOMEM;
diff --git a/drivers/mtd/parsers/parser_trx.c b/drivers/mtd/parsers/parser_trx.c
index 4814cf218e17..cfd9ab8caff5 100644
--- a/drivers/mtd/parsers/parser_trx.c
+++ b/drivers/mtd/parsers/parser_trx.c
@@ -65,8 +65,8 @@ static int parser_trx_parse(struct mtd_info *mtd,
if (err != 0 && err != -EINVAL)
pr_err("failed to parse \"brcm,trx-magic\" DT attribute, using default: %d\n", err);
- parts = kcalloc(TRX_PARSER_MAX_PARTS, sizeof(struct mtd_partition),
- GFP_KERNEL);
+ parts = kzalloc_objs(struct mtd_partition, TRX_PARSER_MAX_PARTS,
+ GFP_KERNEL);
if (!parts)
return -ENOMEM;
diff --git a/drivers/mtd/parsers/qcomsmempart.c b/drivers/mtd/parsers/qcomsmempart.c
index 4311b89d8df0..dd595387946b 100644
--- a/drivers/mtd/parsers/qcomsmempart.c
+++ b/drivers/mtd/parsers/qcomsmempart.c
@@ -123,7 +123,7 @@ static int parse_qcomsmem_part(struct mtd_info *mtd,
numparts++;
}
- parts = kcalloc(numparts, sizeof(*parts), GFP_KERNEL);
+ parts = kzalloc_objs(*parts, numparts, GFP_KERNEL);
if (!parts)
return -ENOMEM;
diff --git a/drivers/mtd/parsers/redboot.c b/drivers/mtd/parsers/redboot.c
index 3b55b676ca6b..4f3f5145ea83 100644
--- a/drivers/mtd/parsers/redboot.c
+++ b/drivers/mtd/parsers/redboot.c
@@ -203,7 +203,7 @@ static int parse_redboot_partitions(struct mtd_info *master,
if (!redboot_checksum(&buf[i]))
break;
- new_fl = kmalloc(sizeof(struct fis_list), GFP_KERNEL);
+ new_fl = kmalloc_obj(struct fis_list, GFP_KERNEL);
namelen += strlen(buf[i].name) + 1;
if (!new_fl) {
ret = -ENOMEM;
diff --git a/drivers/mtd/parsers/scpart.c b/drivers/mtd/parsers/scpart.c
index 6e5e11c37078..84b89499b200 100644
--- a/drivers/mtd/parsers/scpart.c
+++ b/drivers/mtd/parsers/scpart.c
@@ -80,7 +80,7 @@ static int scpart_scan_partmap(struct mtd_info *master, loff_t partmap_offs,
if (cnt > 0) {
int bytes = cnt * sizeof(*pdesc);
- pdesc = kcalloc(cnt, sizeof(*pdesc), GFP_KERNEL);
+ pdesc = kzalloc_objs(*pdesc, cnt, GFP_KERNEL);
if (!pdesc) {
res = -ENOMEM;
goto free;
@@ -171,8 +171,8 @@ static int scpart_parse(struct mtd_info *master,
goto free;
}
- parts = kcalloc(of_get_child_count(ofpart_node), sizeof(*parts),
- GFP_KERNEL);
+ parts = kzalloc_objs(*parts, of_get_child_count(ofpart_node),
+ GFP_KERNEL);
if (!parts) {
res = -ENOMEM;
goto free;
diff --git a/drivers/mtd/parsers/sharpslpart.c b/drivers/mtd/parsers/sharpslpart.c
index 671a61845bd5..ce1e255b707d 100644
--- a/drivers/mtd/parsers/sharpslpart.c
+++ b/drivers/mtd/parsers/sharpslpart.c
@@ -362,9 +362,8 @@ static int sharpsl_parse_mtd_partitions(struct mtd_info *master,
return err;
}
- sharpsl_nand_parts = kcalloc(SHARPSL_NAND_PARTS,
- sizeof(*sharpsl_nand_parts),
- GFP_KERNEL);
+ sharpsl_nand_parts = kzalloc_objs(*sharpsl_nand_parts,
+ SHARPSL_NAND_PARTS, GFP_KERNEL);
if (!sharpsl_nand_parts)
return -ENOMEM;
diff --git a/drivers/mtd/parsers/tplink_safeloader.c b/drivers/mtd/parsers/tplink_safeloader.c
index 4fcaf92d22e4..3a4e9b84277f 100644
--- a/drivers/mtd/parsers/tplink_safeloader.c
+++ b/drivers/mtd/parsers/tplink_safeloader.c
@@ -82,7 +82,7 @@ static int mtd_parser_tplink_safeloader_parse(struct mtd_info *mtd,
int idx;
int err;
- parts = kcalloc(TPLINK_SAFELOADER_MAX_PARTS, sizeof(*parts), GFP_KERNEL);
+ parts = kzalloc_objs(*parts, TPLINK_SAFELOADER_MAX_PARTS, GFP_KERNEL);
if (!parts) {
err = -ENOMEM;
goto err_out;
diff --git a/drivers/mtd/rfd_ftl.c b/drivers/mtd/rfd_ftl.c
index be26cc67a1c4..f7d5591e8858 100644
--- a/drivers/mtd/rfd_ftl.c
+++ b/drivers/mtd/rfd_ftl.c
@@ -185,8 +185,8 @@ static int scan_header(struct partition *part)
if (!part->header_cache)
goto err;
- part->blocks = kcalloc(part->total_blocks, sizeof(struct block),
- GFP_KERNEL);
+ part->blocks = kzalloc_objs(struct block, part->total_blocks,
+ GFP_KERNEL);
if (!part->blocks)
goto err;
@@ -270,7 +270,7 @@ static int erase_block(struct partition *part, int block)
struct erase_info *erase;
int rc;
- erase = kmalloc(sizeof(struct erase_info), GFP_KERNEL);
+ erase = kmalloc_obj(struct erase_info, GFP_KERNEL);
if (!erase)
return -ENOMEM;
@@ -752,7 +752,7 @@ static void rfd_ftl_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
mtd->size > UINT_MAX)
return;
- part = kzalloc(sizeof(struct partition), GFP_KERNEL);
+ part = kzalloc_obj(struct partition, GFP_KERNEL);
if (!part)
return;
diff --git a/drivers/mtd/sm_ftl.c b/drivers/mtd/sm_ftl.c
index 5988cba30eb3..5da82a4612b6 100644
--- a/drivers/mtd/sm_ftl.c
+++ b/drivers/mtd/sm_ftl.c
@@ -64,7 +64,7 @@ static struct attribute_group *sm_create_sysfs_attributes(struct sm_ftl *ftl)
/* Initialize sysfs attributes */
vendor_attribute =
- kzalloc(sizeof(struct sm_sysfs_attribute), GFP_KERNEL);
+ kzalloc_obj(struct sm_sysfs_attribute, GFP_KERNEL);
if (!vendor_attribute)
goto error2;
@@ -78,14 +78,14 @@ static struct attribute_group *sm_create_sysfs_attributes(struct sm_ftl *ftl)
/* Create array of pointers to the attributes */
- attributes = kcalloc(NUM_ATTRIBUTES + 1, sizeof(struct attribute *),
- GFP_KERNEL);
+ attributes = kzalloc_objs(struct attribute *, NUM_ATTRIBUTES + 1,
+ GFP_KERNEL);
if (!attributes)
goto error3;
attributes[0] = &vendor_attribute->dev_attr.attr;
/* Finally create the attribute group */
- attr_group = kzalloc(sizeof(struct attribute_group), GFP_KERNEL);
+ attr_group = kzalloc_obj(struct attribute_group, GFP_KERNEL);
if (!attr_group)
goto error4;
attr_group->attrs = attributes;
@@ -1134,7 +1134,7 @@ static void sm_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
struct sm_ftl *ftl;
/* Allocate & initialize our private structure */
- ftl = kzalloc(sizeof(struct sm_ftl), GFP_KERNEL);
+ ftl = kzalloc_obj(struct sm_ftl, GFP_KERNEL);
if (!ftl)
goto error1;
@@ -1156,8 +1156,7 @@ static void sm_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
goto error2;
/* Allocate zone array, it will be initialized on demand */
- ftl->zones = kcalloc(ftl->zone_count, sizeof(struct ftl_zone),
- GFP_KERNEL);
+ ftl->zones = kzalloc_objs(struct ftl_zone, ftl->zone_count, GFP_KERNEL);
if (!ftl->zones)
goto error3;
@@ -1171,7 +1170,7 @@ static void sm_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
/* Allocate upper layer structure and initialize it */
- trans = kzalloc(sizeof(struct mtd_blktrans_dev), GFP_KERNEL);
+ trans = kzalloc_obj(struct mtd_blktrans_dev, GFP_KERNEL);
if (!trans)
goto error5;
diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
index d3f8a78efd3b..d48170eceec6 100644
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -1553,7 +1553,7 @@ spi_nor_init_erase_cmd(const struct spi_nor_erase_region *region,
{
struct spi_nor_erase_command *cmd;
- cmd = kmalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kmalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/mtd/spi-nor/sfdp.c b/drivers/mtd/spi-nor/sfdp.c
index a8324c2da0ac..1514f21c8557 100644
--- a/drivers/mtd/spi-nor/sfdp.c
+++ b/drivers/mtd/spi-nor/sfdp.c
@@ -760,7 +760,7 @@ static const u32 *spi_nor_get_map_in_use(struct spi_nor *nor, const u32 *smpt,
u8 read_data_mask, map_id;
/* Use a kmalloc'ed bounce buffer to guarantee it is DMA-able. */
- buf = kmalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kmalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/mtd/ssfdc.c b/drivers/mtd/ssfdc.c
index 46c01fa2ec46..b4e9a1c11c54 100644
--- a/drivers/mtd/ssfdc.c
+++ b/drivers/mtd/ssfdc.c
@@ -295,7 +295,7 @@ static void ssfdcr_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd)
if (cis_sector == -1)
return;
- ssfdc = kzalloc(sizeof(*ssfdc), GFP_KERNEL);
+ ssfdc = kzalloc_obj(*ssfdc, GFP_KERNEL);
if (!ssfdc)
return;
diff --git a/drivers/mtd/tests/stresstest.c b/drivers/mtd/tests/stresstest.c
index 8062098930d6..ec5d7bd93b77 100644
--- a/drivers/mtd/tests/stresstest.c
+++ b/drivers/mtd/tests/stresstest.c
@@ -178,7 +178,7 @@ static int __init mtd_stresstest_init(void)
err = -ENOMEM;
readbuf = vmalloc(bufsize);
writebuf = vmalloc(bufsize);
- offsets = kmalloc_array(ebcnt, sizeof(int), GFP_KERNEL);
+ offsets = kmalloc_objs(int, ebcnt, GFP_KERNEL);
if (!readbuf || !writebuf || !offsets)
goto out;
for (i = 0; i < ebcnt; i++)
diff --git a/drivers/mtd/ubi/attach.c b/drivers/mtd/ubi/attach.c
index 884171871d0e..9823e0bd7a51 100644
--- a/drivers/mtd/ubi/attach.c
+++ b/drivers/mtd/ubi/attach.c
@@ -131,7 +131,7 @@ static struct ubi_ainf_volume *find_or_add_av(struct ubi_attach_info *ai,
return NULL;
/* The volume is absent - add it */
- av = kzalloc(sizeof(*av), GFP_KERNEL);
+ av = kzalloc_obj(*av, GFP_KERNEL);
if (!av)
return ERR_PTR(-ENOMEM);
@@ -1451,7 +1451,7 @@ static struct ubi_attach_info *alloc_ai(const char *slab_name)
{
struct ubi_attach_info *ai;
- ai = kzalloc(sizeof(struct ubi_attach_info), GFP_KERNEL);
+ ai = kzalloc_obj(struct ubi_attach_info, GFP_KERNEL);
if (!ai)
return ai;
diff --git a/drivers/mtd/ubi/block.c b/drivers/mtd/ubi/block.c
index b53fd147fa65..4428486fb287 100644
--- a/drivers/mtd/ubi/block.c
+++ b/drivers/mtd/ubi/block.c
@@ -368,7 +368,7 @@ int ubiblock_create(struct ubi_volume_info *vi)
goto out_unlock;
}
- dev = kzalloc(sizeof(struct ubiblock), GFP_KERNEL);
+ dev = kzalloc_obj(struct ubiblock, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto out_unlock;
diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
index ef6a22f372f9..d7493b61bee4 100644
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
@@ -930,7 +930,7 @@ int ubi_attach_mtd_dev(struct mtd_info *mtd, int ubi_num,
}
}
- ubi = kzalloc(sizeof(struct ubi_device), GFP_KERNEL);
+ ubi = kzalloc_obj(struct ubi_device, GFP_KERNEL);
if (!ubi)
return -ENOMEM;
diff --git a/drivers/mtd/ubi/cdev.c b/drivers/mtd/ubi/cdev.c
index b700a0efaa93..0b233b6a2d9c 100644
--- a/drivers/mtd/ubi/cdev.c
+++ b/drivers/mtd/ubi/cdev.c
@@ -727,7 +727,7 @@ static int rename_volumes(struct ubi_device *ubi,
int name_len = req->ents[i].name_len;
const char *name = req->ents[i].name;
- re = kzalloc(sizeof(struct ubi_rename_entry), GFP_KERNEL);
+ re = kzalloc_obj(struct ubi_rename_entry, GFP_KERNEL);
if (!re) {
err = -ENOMEM;
goto out_free;
@@ -801,7 +801,7 @@ static int rename_volumes(struct ubi_device *ubi,
goto out_free;
}
- re1 = kzalloc(sizeof(struct ubi_rename_entry), GFP_KERNEL);
+ re1 = kzalloc_obj(struct ubi_rename_entry, GFP_KERNEL);
if (!re1) {
err = -ENOMEM;
ubi_close_volume(desc);
@@ -1007,7 +1007,7 @@ static long ubi_cdev_ioctl(struct file *file, unsigned int cmd,
struct ubi_rnvol_req *req;
dbg_gen("re-name volumes");
- req = kmalloc(sizeof(struct ubi_rnvol_req), GFP_KERNEL);
+ req = kmalloc_obj(struct ubi_rnvol_req, GFP_KERNEL);
if (!req) {
err = -ENOMEM;
break;
diff --git a/drivers/mtd/ubi/eba.c b/drivers/mtd/ubi/eba.c
index c7ba7a15c9f7..dbc448e2b7a6 100644
--- a/drivers/mtd/ubi/eba.c
+++ b/drivers/mtd/ubi/eba.c
@@ -124,12 +124,11 @@ struct ubi_eba_table *ubi_eba_create_table(struct ubi_volume *vol,
int err = -ENOMEM;
int i;
- tbl = kzalloc(sizeof(*tbl), GFP_KERNEL);
+ tbl = kzalloc_obj(*tbl, GFP_KERNEL);
if (!tbl)
return ERR_PTR(-ENOMEM);
- tbl->entries = kmalloc_array(nentries, sizeof(*tbl->entries),
- GFP_KERNEL);
+ tbl->entries = kmalloc_objs(*tbl->entries, nentries, GFP_KERNEL);
if (!tbl->entries)
goto err;
@@ -248,7 +247,7 @@ static struct ubi_ltree_entry *ltree_add_entry(struct ubi_device *ubi,
{
struct ubi_ltree_entry *le, *le1, *le_free;
- le = kmalloc(sizeof(struct ubi_ltree_entry), GFP_NOFS);
+ le = kmalloc_obj(struct ubi_ltree_entry, GFP_NOFS);
if (!le)
return ERR_PTR(-ENOMEM);
@@ -1536,11 +1535,11 @@ int self_check_eba(struct ubi_device *ubi, struct ubi_attach_info *ai_fastmap,
num_volumes = ubi->vtbl_slots + UBI_INT_VOL_COUNT;
- scan_eba = kmalloc_array(num_volumes, sizeof(*scan_eba), GFP_KERNEL);
+ scan_eba = kmalloc_objs(*scan_eba, num_volumes, GFP_KERNEL);
if (!scan_eba)
return -ENOMEM;
- fm_eba = kmalloc_array(num_volumes, sizeof(*fm_eba), GFP_KERNEL);
+ fm_eba = kmalloc_objs(*fm_eba, num_volumes, GFP_KERNEL);
if (!fm_eba) {
kfree(scan_eba);
return -ENOMEM;
@@ -1551,17 +1550,15 @@ int self_check_eba(struct ubi_device *ubi, struct ubi_attach_info *ai_fastmap,
if (!vol)
continue;
- scan_eba[i] = kmalloc_array(vol->reserved_pebs,
- sizeof(**scan_eba),
- GFP_KERNEL);
+ scan_eba[i] = kmalloc_objs(**scan_eba, vol->reserved_pebs,
+ GFP_KERNEL);
if (!scan_eba[i]) {
ret = -ENOMEM;
goto out_free;
}
- fm_eba[i] = kmalloc_array(vol->reserved_pebs,
- sizeof(**fm_eba),
- GFP_KERNEL);
+ fm_eba[i] = kmalloc_objs(**fm_eba, vol->reserved_pebs,
+ GFP_KERNEL);
if (!fm_eba[i]) {
ret = -ENOMEM;
kfree(scan_eba[i]);
diff --git a/drivers/mtd/ubi/fastmap-wl.c b/drivers/mtd/ubi/fastmap-wl.c
index e2bc1122bfd3..a0f750411f9d 100644
--- a/drivers/mtd/ubi/fastmap-wl.c
+++ b/drivers/mtd/ubi/fastmap-wl.c
@@ -466,7 +466,7 @@ int ubi_ensure_anchor_pebs(struct ubi_device *ubi)
ubi->wl_scheduled = 1;
spin_unlock(&ubi->wl_lock);
- wrk = kmalloc(sizeof(struct ubi_work), GFP_NOFS);
+ wrk = kmalloc_obj(struct ubi_work, GFP_NOFS);
if (!wrk) {
spin_lock(&ubi->wl_lock);
ubi->wl_scheduled = 0;
diff --git a/drivers/mtd/ubi/fastmap.c b/drivers/mtd/ubi/fastmap.c
index 9a4940874be5..30953ff2ff52 100644
--- a/drivers/mtd/ubi/fastmap.c
+++ b/drivers/mtd/ubi/fastmap.c
@@ -889,13 +889,13 @@ int ubi_scan_fastmap(struct ubi_device *ubi, struct ubi_attach_info *ai,
down_write(&ubi->fm_protect);
memset(ubi->fm_buf, 0, ubi->fm_size);
- fmsb = kmalloc(sizeof(*fmsb), GFP_KERNEL);
+ fmsb = kmalloc_obj(*fmsb, GFP_KERNEL);
if (!fmsb) {
ret = -ENOMEM;
goto out;
}
- fm = kzalloc(sizeof(*fm), GFP_KERNEL);
+ fm = kzalloc_obj(*fm, GFP_KERNEL);
if (!fm) {
ret = -ENOMEM;
kfree(fmsb);
@@ -1416,7 +1416,7 @@ static int invalidate_fastmap(struct ubi_device *ubi)
ubi->fm = NULL;
ret = -ENOMEM;
- fm = kzalloc(sizeof(*fm), GFP_NOFS);
+ fm = kzalloc_obj(*fm, GFP_NOFS);
if (!fm)
goto out;
@@ -1501,7 +1501,7 @@ int ubi_update_fastmap(struct ubi_device *ubi)
return 0;
}
- new_fm = kzalloc(sizeof(*new_fm), GFP_NOFS);
+ new_fm = kzalloc_obj(*new_fm, GFP_NOFS);
if (!new_fm) {
up_write(&ubi->fm_eba_sem);
up_write(&ubi->work_sem);
diff --git a/drivers/mtd/ubi/gluebi.c b/drivers/mtd/ubi/gluebi.c
index 1b980d15d9fb..e56b4172264c 100644
--- a/drivers/mtd/ubi/gluebi.c
+++ b/drivers/mtd/ubi/gluebi.c
@@ -281,7 +281,7 @@ static int gluebi_create(struct ubi_device_info *di,
struct gluebi_device *gluebi, *g;
struct mtd_info *mtd;
- gluebi = kzalloc(sizeof(struct gluebi_device), GFP_KERNEL);
+ gluebi = kzalloc_obj(struct gluebi_device, GFP_KERNEL);
if (!gluebi)
return -ENOMEM;
diff --git a/drivers/mtd/ubi/kapi.c b/drivers/mtd/ubi/kapi.c
index df0a5a57b072..7cc239245e42 100644
--- a/drivers/mtd/ubi/kapi.c
+++ b/drivers/mtd/ubi/kapi.c
@@ -140,7 +140,7 @@ struct ubi_volume_desc *ubi_open_volume(int ubi_num, int vol_id, int mode)
goto out_put_ubi;
}
- desc = kmalloc(sizeof(struct ubi_volume_desc), GFP_KERNEL);
+ desc = kmalloc_obj(struct ubi_volume_desc, GFP_KERNEL);
if (!desc) {
err = -ENOMEM;
goto out_put_ubi;
diff --git a/drivers/mtd/ubi/nvmem.c b/drivers/mtd/ubi/nvmem.c
index 34f8c1d3cdee..bc2cfb355d5c 100644
--- a/drivers/mtd/ubi/nvmem.c
+++ b/drivers/mtd/ubi/nvmem.c
@@ -75,7 +75,7 @@ static int ubi_nvmem_add(struct ubi_volume_info *vi)
WARN_ON_ONCE(vi->size <= 0))
return -EINVAL;
- unv = kzalloc(sizeof(struct ubi_nvmem), GFP_KERNEL);
+ unv = kzalloc_obj(struct ubi_nvmem, GFP_KERNEL);
if (!unv)
return -ENOMEM;
diff --git a/drivers/mtd/ubi/ubi.h b/drivers/mtd/ubi/ubi.h
index 44803d3329f4..af466cd83ae0 100644
--- a/drivers/mtd/ubi/ubi.h
+++ b/drivers/mtd/ubi/ubi.h
@@ -1100,7 +1100,7 @@ ubi_alloc_vid_buf(const struct ubi_device *ubi, gfp_t gfp_flags)
struct ubi_vid_io_buf *vidb;
void *buf;
- vidb = kzalloc(sizeof(*vidb), gfp_flags);
+ vidb = kzalloc_obj(*vidb, gfp_flags);
if (!vidb)
return NULL;
diff --git a/drivers/mtd/ubi/vmt.c b/drivers/mtd/ubi/vmt.c
index e5cf3bdca3b0..ffec2c649698 100644
--- a/drivers/mtd/ubi/vmt.c
+++ b/drivers/mtd/ubi/vmt.c
@@ -172,7 +172,7 @@ int ubi_create_volume(struct ubi_device *ubi, struct ubi_mkvol_req *req)
if (ubi->ro_mode)
return -EROFS;
- vol = kzalloc(sizeof(struct ubi_volume), GFP_KERNEL);
+ vol = kzalloc_obj(struct ubi_volume, GFP_KERNEL);
if (!vol)
return -ENOMEM;
diff --git a/drivers/mtd/ubi/vtbl.c b/drivers/mtd/ubi/vtbl.c
index 6e5489e233dd..74427a03e896 100644
--- a/drivers/mtd/ubi/vtbl.c
+++ b/drivers/mtd/ubi/vtbl.c
@@ -531,7 +531,7 @@ static int init_volumes(struct ubi_device *ubi,
if (be32_to_cpu(vtbl[i].reserved_pebs) == 0)
continue; /* Empty record */
- vol = kzalloc(sizeof(struct ubi_volume), GFP_KERNEL);
+ vol = kzalloc_obj(struct ubi_volume, GFP_KERNEL);
if (!vol)
return -ENOMEM;
@@ -623,7 +623,7 @@ static int init_volumes(struct ubi_device *ubi,
}
/* And add the layout volume */
- vol = kzalloc(sizeof(struct ubi_volume), GFP_KERNEL);
+ vol = kzalloc_obj(struct ubi_volume, GFP_KERNEL);
if (!vol)
return -ENOMEM;
diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c
index fbd399cf6503..e3705db8e570 100644
--- a/drivers/mtd/ubi/wl.c
+++ b/drivers/mtd/ubi/wl.c
@@ -602,7 +602,7 @@ static int schedule_erase(struct ubi_device *ubi, struct ubi_wl_entry *e,
dbg_wl("schedule erasure of PEB %d, EC %d, torture %d",
e->pnum, e->ec, torture);
- wl_wrk = kmalloc(sizeof(struct ubi_work), GFP_NOFS);
+ wl_wrk = kmalloc_obj(struct ubi_work, GFP_NOFS);
if (!wl_wrk)
return -ENOMEM;
@@ -1071,7 +1071,7 @@ static int ensure_wear_leveling(struct ubi_device *ubi, int nested)
ubi->wl_scheduled = 1;
spin_unlock(&ubi->wl_lock);
- wrk = kmalloc(sizeof(struct ubi_work), GFP_NOFS);
+ wrk = kmalloc_obj(struct ubi_work, GFP_NOFS);
if (!wrk) {
err = -ENOMEM;
goto out_cancel;
diff --git a/drivers/mux/core.c b/drivers/mux/core.c
index a3840fe0995f..236e4f02f38e 100644
--- a/drivers/mux/core.c
+++ b/drivers/mux/core.c
@@ -681,7 +681,7 @@ static struct mux_state *mux_state_get(struct device *dev, const char *mux_name)
{
struct mux_state *mstate;
- mstate = kzalloc(sizeof(*mstate), GFP_KERNEL);
+ mstate = kzalloc_obj(*mstate, GFP_KERNEL);
if (!mstate)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/amt.c b/drivers/net/amt.c
index 902c817a0dea..f2f3139e38a5 100644
--- a/drivers/net/amt.c
+++ b/drivers/net/amt.c
@@ -368,7 +368,7 @@ static struct amt_source_node *amt_alloc_snode(struct amt_group_node *gnode,
{
struct amt_source_node *snode;
- snode = kzalloc(sizeof(*snode), GFP_ATOMIC);
+ snode = kzalloc_obj(*snode, GFP_ATOMIC);
if (!snode)
return NULL;
diff --git a/drivers/net/arcnet/com20020_cs.c b/drivers/net/arcnet/com20020_cs.c
index 75f08aa7528b..a6d9207cfc16 100644
--- a/drivers/net/arcnet/com20020_cs.c
+++ b/drivers/net/arcnet/com20020_cs.c
@@ -119,7 +119,7 @@ static int com20020_probe(struct pcmcia_device *p_dev)
dev_dbg(&p_dev->dev, "com20020_attach()\n");
/* Create new network device */
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
goto fail_alloc_info;
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 55a960da42b5..cddcbb5883c6 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -491,7 +491,7 @@ static int bond_ipsec_add_sa(struct net_device *bond_dev,
goto out;
}
- ipsec = kmalloc(sizeof(*ipsec), GFP_KERNEL);
+ ipsec = kmalloc_obj(*ipsec, GFP_KERNEL);
if (!ipsec) {
err = -ENOMEM;
goto out;
@@ -1387,7 +1387,7 @@ static inline int slave_enable_netpoll(struct slave *slave)
struct netpoll *np;
int err = 0;
- np = kzalloc(sizeof(*np), GFP_KERNEL);
+ np = kzalloc_obj(*np, GFP_KERNEL);
err = -ENOMEM;
if (!np)
goto out;
@@ -1711,7 +1711,7 @@ static struct slave *bond_alloc_slave(struct bonding *bond,
{
struct slave *slave = NULL;
- slave = kzalloc(sizeof(*slave), GFP_KERNEL);
+ slave = kzalloc_obj(*slave, GFP_KERNEL);
if (!slave)
return NULL;
@@ -1723,8 +1723,8 @@ static struct slave *bond_alloc_slave(struct bonding *bond,
return NULL;
if (BOND_MODE(bond) == BOND_MODE_8023AD) {
- SLAVE_AD_INFO(slave) = kzalloc(sizeof(struct ad_slave_info),
- GFP_KERNEL);
+ SLAVE_AD_INFO(slave) = kzalloc_obj(struct ad_slave_info,
+ GFP_KERNEL);
if (!SLAVE_AD_INFO(slave)) {
kobject_put(&slave->kobj);
return NULL;
@@ -2982,7 +2982,7 @@ struct bond_vlan_tag *bond_verify_device_path(struct net_device *start_dev,
struct list_head *iter;
if (start_dev == end_dev) {
- tags = kcalloc(level + 1, sizeof(*tags), GFP_ATOMIC);
+ tags = kzalloc_objs(*tags, level + 1, GFP_ATOMIC);
if (!tags)
return ERR_PTR(-ENOMEM);
tags[level].vlan_proto = BOND_VLAN_PROTO_NONE;
@@ -5097,10 +5097,9 @@ int bond_update_slave_arr(struct bonding *bond, struct slave *skipslave)
might_sleep();
- usable_slaves = kzalloc(struct_size(usable_slaves, arr,
- bond->slave_cnt), GFP_KERNEL);
- all_slaves = kzalloc(struct_size(all_slaves, arr,
- bond->slave_cnt), GFP_KERNEL);
+ usable_slaves = kzalloc_flex(*usable_slaves, arr, bond->slave_cnt,
+ GFP_KERNEL);
+ all_slaves = kzalloc_flex(*all_slaves, arr, bond->slave_cnt, GFP_KERNEL);
if (!usable_slaves || !all_slaves) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/net/caif/caif_virtio.c b/drivers/net/caif/caif_virtio.c
index c60386bf2d1a..8ac1a4b8e055 100644
--- a/drivers/net/caif/caif_virtio.c
+++ b/drivers/net/caif/caif_virtio.c
@@ -493,7 +493,7 @@ static struct buf_info *cfv_alloc_and_copy_to_shm(struct cfv_info *cfv,
goto err;
}
- buf_info = kmalloc(sizeof(struct buf_info), GFP_ATOMIC);
+ buf_info = kmalloc_obj(struct buf_info, GFP_ATOMIC);
if (unlikely(!buf_info))
goto err;
diff --git a/drivers/net/can/ctucanfd/ctucanfd_pci.c b/drivers/net/can/ctucanfd/ctucanfd_pci.c
index 9da09e7dd63a..2d731a6f0be0 100644
--- a/drivers/net/can/ctucanfd/ctucanfd_pci.c
+++ b/drivers/net/can/ctucanfd/ctucanfd_pci.c
@@ -153,7 +153,7 @@ static int ctucan_pci_probe(struct pci_dev *pdev,
ntxbufs = 4;
- bdata = kzalloc(sizeof(*bdata), GFP_KERNEL);
+ bdata = kzalloc_obj(*bdata, GFP_KERNEL);
if (!bdata) {
ret = -ENOMEM;
goto err_pci_iounmap_bar0;
diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c
index 3b1b09943436..56758ddf939b 100644
--- a/drivers/net/can/grcan.c
+++ b/drivers/net/can/grcan.c
@@ -1054,8 +1054,7 @@ static int grcan_open(struct net_device *dev)
return err;
}
- priv->echo_skb = kcalloc(dma->tx.size, sizeof(*priv->echo_skb),
- GFP_KERNEL);
+ priv->echo_skb = kzalloc_objs(*priv->echo_skb, dma->tx.size, GFP_KERNEL);
if (!priv->echo_skb) {
err = -ENOMEM;
goto exit_free_dma_buffers;
diff --git a/drivers/net/can/sja1000/ems_pci.c b/drivers/net/can/sja1000/ems_pci.c
index 5bca719d61f5..c4716df2e00f 100644
--- a/drivers/net/can/sja1000/ems_pci.c
+++ b/drivers/net/can/sja1000/ems_pci.c
@@ -260,7 +260,7 @@ static int ems_pci_add_card(struct pci_dev *pdev,
}
/* Allocating card structures to hold addresses, ... */
- card = kzalloc(sizeof(*card), GFP_KERNEL);
+ card = kzalloc_obj(*card, GFP_KERNEL);
if (!card) {
pci_disable_device(pdev);
return -ENOMEM;
diff --git a/drivers/net/can/sja1000/ems_pcmcia.c b/drivers/net/can/sja1000/ems_pcmcia.c
index 4642b6d4aaf7..fad4c51767ed 100644
--- a/drivers/net/can/sja1000/ems_pcmcia.c
+++ b/drivers/net/can/sja1000/ems_pcmcia.c
@@ -165,7 +165,7 @@ static int ems_pcmcia_add_card(struct pcmcia_device *pdev, unsigned long base)
int err, i;
/* Allocating card structures to hold addresses, ... */
- card = kzalloc(sizeof(struct ems_pcmcia_card), GFP_KERNEL);
+ card = kzalloc_obj(struct ems_pcmcia_card, GFP_KERNEL);
if (!card)
return -ENOMEM;
diff --git a/drivers/net/can/sja1000/peak_pci.c b/drivers/net/can/sja1000/peak_pci.c
index 10d88cbda465..4ab825636092 100644
--- a/drivers/net/can/sja1000/peak_pci.c
+++ b/drivers/net/can/sja1000/peak_pci.c
@@ -452,7 +452,7 @@ static int peak_pciec_probe(struct pci_dev *pdev, struct net_device *dev)
/* channel is the first one: do the init part */
} else {
/* create the bit banging I2C adapter structure */
- card = kzalloc(sizeof(*card), GFP_KERNEL);
+ card = kzalloc_obj(*card, GFP_KERNEL);
if (!card)
return -ENOMEM;
diff --git a/drivers/net/can/sja1000/peak_pcmcia.c b/drivers/net/can/sja1000/peak_pcmcia.c
index e1610b527d13..04b37c746620 100644
--- a/drivers/net/can/sja1000/peak_pcmcia.c
+++ b/drivers/net/can/sja1000/peak_pcmcia.c
@@ -650,7 +650,7 @@ static int pcan_probe(struct pcmcia_device *pdev)
goto probe_err_1;
}
- card = kzalloc(sizeof(struct pcan_pccard), GFP_KERNEL);
+ card = kzalloc_obj(struct pcan_pccard, GFP_KERNEL);
if (!card) {
err = -ENOMEM;
goto probe_err_2;
diff --git a/drivers/net/can/sja1000/plx_pci.c b/drivers/net/can/sja1000/plx_pci.c
index 67e5316c6372..d1c9427f6a5d 100644
--- a/drivers/net/can/sja1000/plx_pci.c
+++ b/drivers/net/can/sja1000/plx_pci.c
@@ -629,7 +629,7 @@ static int plx_pci_add_card(struct pci_dev *pdev,
ci->name, PCI_SLOT(pdev->devfn));
/* Allocate card structures to hold addresses, ... */
- card = kzalloc(sizeof(*card), GFP_KERNEL);
+ card = kzalloc_obj(*card, GFP_KERNEL);
if (!card) {
pci_disable_device(pdev);
return -ENOMEM;
diff --git a/drivers/net/can/softing/softing_cs.c b/drivers/net/can/softing/softing_cs.c
index e5c939b63fa6..c37390fa7e6a 100644
--- a/drivers/net/can/softing/softing_cs.c
+++ b/drivers/net/can/softing/softing_cs.c
@@ -256,7 +256,7 @@ static int softingcs_probe(struct pcmcia_device *pcmcia)
}
/* create softing platform device */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
ret = -ENOMEM;
goto mem_failed;
diff --git a/drivers/net/can/softing/softing_main.c b/drivers/net/can/softing/softing_main.c
index 79bc64395ac4..4872f636e367 100644
--- a/drivers/net/can/softing/softing_main.c
+++ b/drivers/net/can/softing/softing_main.c
@@ -767,7 +767,7 @@ static int softing_pdev_probe(struct platform_device *pdev)
return -EINVAL;
}
- card = kzalloc(sizeof(*card), GFP_KERNEL);
+ card = kzalloc_obj(*card, GFP_KERNEL);
if (!card)
return -ENOMEM;
card->pdat = pdat;
diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
index 5134ebb85880..6ef8a3fa2f1e 100644
--- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
+++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
@@ -1961,11 +1961,11 @@ mcp251xfd_register_get_dev_id(const struct mcp251xfd_priv *priv, u32 *dev_id,
struct spi_transfer xfer[2] = { };
int err;
- buf_rx = kzalloc(sizeof(*buf_rx), GFP_KERNEL);
+ buf_rx = kzalloc_obj(*buf_rx, GFP_KERNEL);
if (!buf_rx)
return -ENOMEM;
- buf_tx = kzalloc(sizeof(*buf_tx), GFP_KERNEL);
+ buf_tx = kzalloc_obj(*buf_tx, GFP_KERNEL);
if (!buf_tx) {
err = -ENOMEM;
goto out_kfree_buf_rx;
diff --git a/drivers/net/can/usb/esd_usb.c b/drivers/net/can/usb/esd_usb.c
index 8cc924c47042..029a321bac10 100644
--- a/drivers/net/can/usb/esd_usb.c
+++ b/drivers/net/can/usb/esd_usb.c
@@ -726,7 +726,7 @@ static int esd_usb_start(struct esd_usb_net_priv *priv)
union esd_usb_msg *msg;
int err, i;
- msg = kmalloc(sizeof(*msg), GFP_KERNEL);
+ msg = kmalloc_obj(*msg, GFP_KERNEL);
if (!msg) {
err = -ENOMEM;
goto out;
@@ -962,7 +962,7 @@ static int esd_usb_stop(struct esd_usb_net_priv *priv)
int err;
int i;
- msg = kmalloc(sizeof(*msg), GFP_KERNEL);
+ msg = kmalloc_obj(*msg, GFP_KERNEL);
if (!msg)
return -ENOMEM;
@@ -1068,7 +1068,7 @@ static int esd_usb_2_set_bittiming(struct net_device *netdev)
if (priv->can.ctrlmode & CAN_CTRLMODE_3_SAMPLES)
canbtr |= ESD_USB_TRIPLE_SAMPLES;
- msg = kmalloc(sizeof(*msg), GFP_KERNEL);
+ msg = kmalloc_obj(*msg, GFP_KERNEL);
if (!msg)
return -ENOMEM;
@@ -1130,7 +1130,7 @@ static int esd_usb_3_set_bittiming(struct net_device *netdev)
u16 flags = 0;
int err;
- msg = kmalloc(sizeof(*msg), GFP_KERNEL);
+ msg = kmalloc_obj(*msg, GFP_KERNEL);
if (!msg)
return -ENOMEM;
@@ -1302,7 +1302,7 @@ static int esd_usb_probe(struct usb_interface *intf,
union esd_usb_msg *msg;
int i, err;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
err = -ENOMEM;
goto done;
@@ -1314,7 +1314,7 @@ static int esd_usb_probe(struct usb_interface *intf,
usb_set_intfdata(intf, dev);
- msg = kmalloc(sizeof(*msg), GFP_KERNEL);
+ msg = kmalloc_obj(*msg, GFP_KERNEL);
if (!msg) {
err = -ENOMEM;
goto free_msg;
diff --git a/drivers/net/can/usb/f81604.c b/drivers/net/can/usb/f81604.c
index efe61ece79ea..435c7d878138 100644
--- a/drivers/net/can/usb/f81604.c
+++ b/drivers/net/can/usb/f81604.c
@@ -678,7 +678,7 @@ static int f81604_register_urbs(struct f81604_port_priv *priv)
break;
}
- frame = kmalloc(sizeof(*frame), GFP_KERNEL);
+ frame = kmalloc_obj(*frame, GFP_KERNEL);
if (!frame) {
usb_free_urb(rx_urb);
ret = -ENOMEM;
@@ -717,7 +717,7 @@ static int f81604_register_urbs(struct f81604_port_priv *priv)
goto error;
}
- int_data = kmalloc(sizeof(*int_data), GFP_KERNEL);
+ int_data = kmalloc_obj(*int_data, GFP_KERNEL);
if (!int_data) {
usb_free_urb(int_urb);
ret = -ENOMEM;
@@ -919,7 +919,7 @@ static netdev_tx_t f81604_start_xmit(struct sk_buff *skb,
if (!write_urb)
goto nomem_urb;
- frame = kzalloc(sizeof(*frame), GFP_ATOMIC);
+ frame = kzalloc_obj(*frame, GFP_ATOMIC);
if (!frame)
goto nomem_buf;
diff --git a/drivers/net/can/usb/gs_usb.c b/drivers/net/can/usb/gs_usb.c
index d8b2dd74b3a1..95de036c4410 100644
--- a/drivers/net/can/usb/gs_usb.c
+++ b/drivers/net/can/usb/gs_usb.c
@@ -1560,7 +1560,7 @@ static int gs_usb_probe(struct usb_interface *intf,
return -EINVAL;
}
- parent = kzalloc(struct_size(parent, canch, icount), GFP_KERNEL);
+ parent = kzalloc_flex(*parent, canch, icount, GFP_KERNEL);
if (!parent)
return -ENOMEM;
diff --git a/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c b/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c
index a59f20dad692..e765210626ce 100644
--- a/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c
+++ b/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c
@@ -580,7 +580,7 @@ static int kvaser_usb_hydra_send_simple_cmd(struct kvaser_usb *dev,
size_t cmd_len;
int err;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -621,7 +621,7 @@ kvaser_usb_hydra_send_simple_cmd_async(struct kvaser_usb_net_priv *priv,
size_t cmd_len;
int err;
- cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC);
+ cmd = kzalloc_obj(*cmd, GFP_ATOMIC);
if (!cmd)
return -ENOMEM;
@@ -742,7 +742,7 @@ static int kvaser_usb_hydra_map_channel(struct kvaser_usb *dev, u16 transid,
struct kvaser_cmd *cmd;
int err;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -784,7 +784,7 @@ static int kvaser_usb_hydra_get_single_capability(struct kvaser_usb *dev,
int err;
int i;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -1465,7 +1465,7 @@ kvaser_usb_hydra_frame_to_cmd_ext(const struct kvaser_usb_net_priv *priv,
u32 kcan_id;
u32 kcan_header;
- cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC);
+ cmd = kzalloc_obj(*cmd, GFP_ATOMIC);
if (!cmd)
return NULL;
@@ -1544,7 +1544,7 @@ kvaser_usb_hydra_frame_to_cmd_std(const struct kvaser_usb_net_priv *priv,
u32 flags;
u32 id;
- cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC);
+ cmd = kzalloc_obj(*cmd, GFP_ATOMIC);
if (!cmd)
return NULL;
@@ -1610,7 +1610,7 @@ static int kvaser_usb_hydra_get_busparams(struct kvaser_usb_net_priv *priv,
if (!hydra)
return -EINVAL;
- cmd = kcalloc(1, sizeof(struct kvaser_cmd), GFP_KERNEL);
+ cmd = kzalloc_objs(struct kvaser_cmd, 1, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -1655,7 +1655,7 @@ static int kvaser_usb_hydra_set_bittiming(const struct net_device *netdev,
size_t cmd_len;
int err;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -1685,7 +1685,7 @@ static int kvaser_usb_hydra_set_data_bittiming(const struct net_device *netdev,
size_t cmd_len;
int err;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -1842,7 +1842,7 @@ static int kvaser_usb_hydra_get_software_details(struct kvaser_usb *dev)
u32 fw_version;
struct kvaser_usb_dev_card_data *card_data = &dev->card_data;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -1985,7 +1985,7 @@ static int kvaser_usb_hydra_set_led(struct kvaser_usb_net_priv *priv,
size_t cmd_len;
int ret;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -2021,7 +2021,7 @@ static int kvaser_usb_hydra_set_opt_mode(const struct kvaser_usb_net_priv *priv)
return -EINVAL;
}
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
diff --git a/drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c b/drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c
index 1167d38344f1..8e32d98ab0a3 100644
--- a/drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c
+++ b/drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c
@@ -616,7 +616,7 @@ kvaser_usb_leaf_frame_to_cmd(const struct kvaser_usb_net_priv *priv,
u8 *cmd_tx_can_flags = NULL; /* GCC */
struct can_frame *cf = (struct can_frame *)skb->data;
- cmd = kmalloc(sizeof(*cmd), GFP_ATOMIC);
+ cmd = kmalloc_obj(*cmd, GFP_ATOMIC);
if (cmd) {
cmd->u.tx_can.tid = transid & 0xff;
cmd->len = *cmd_len = CMD_HEADER_LEN +
@@ -723,7 +723,7 @@ static int kvaser_usb_leaf_send_simple_cmd(const struct kvaser_usb *dev,
struct kvaser_cmd *cmd;
int rc;
- cmd = kmalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kmalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -873,7 +873,7 @@ static int kvaser_usb_leaf_get_single_capability(struct kvaser_usb *dev,
int err;
int i;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -970,7 +970,7 @@ static int kvaser_usb_leaf_set_led(struct kvaser_usb_net_priv *priv,
struct kvaser_cmd *cmd;
int ret;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -1079,7 +1079,7 @@ static int kvaser_usb_leaf_simple_cmd_async(struct kvaser_usb_net_priv *priv,
struct kvaser_cmd *cmd;
int err;
- cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC);
+ cmd = kzalloc_obj(*cmd, GFP_ATOMIC);
if (!cmd)
return -ENOMEM;
@@ -1752,7 +1752,7 @@ static int kvaser_usb_leaf_set_opt_mode(const struct kvaser_usb_net_priv *priv)
struct kvaser_cmd *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -1824,7 +1824,7 @@ static int kvaser_usb_leaf_flush_queue(struct kvaser_usb_net_priv *priv)
struct kvaser_cmd *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -1881,7 +1881,7 @@ static int kvaser_usb_leaf_set_bittiming(const struct net_device *netdev,
struct kvaser_cmd *cmd;
int rc;
- cmd = kmalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kmalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
diff --git a/drivers/net/can/usb/nct6694_canfd.c b/drivers/net/can/usb/nct6694_canfd.c
index dd6df2ec3742..de60c2d1cdd1 100644
--- a/drivers/net/can/usb/nct6694_canfd.c
+++ b/drivers/net/can/usb/nct6694_canfd.c
@@ -527,7 +527,7 @@ static int nct6694_canfd_start(struct net_device *ndev)
u32 en_tdc;
int ret;
- setting = kzalloc(sizeof(*setting), GFP_KERNEL);
+ setting = kzalloc_obj(*setting, GFP_KERNEL);
if (!setting)
return -ENOMEM;
@@ -596,7 +596,7 @@ static void nct6694_canfd_stop(struct net_device *ndev)
* mode allows the device to monitor bus activity without actively
* participating in communication.
*/
- setting = kzalloc(sizeof(*setting), GFP_KERNEL);
+ setting = kzalloc_obj(*setting, GFP_KERNEL);
if (!setting)
return;
@@ -707,7 +707,7 @@ static int nct6694_canfd_get_clock(struct nct6694_canfd_priv *priv)
};
int ret;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_fd.c b/drivers/net/can/usb/peak_usb/pcan_usb_fd.c
index be84191cde56..fbdc9b644241 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb_fd.c
+++ b/drivers/net/can/usb/peak_usb/pcan_usb_fd.c
@@ -939,7 +939,7 @@ static int pcan_usb_fd_init(struct peak_usb_device *dev)
/* do this for 1st channel only */
if (!dev->prev_siblings) {
/* allocate netdevices common structure attached to first one */
- pdev->usb_if = kzalloc(sizeof(*pdev->usb_if), GFP_KERNEL);
+ pdev->usb_if = kzalloc_obj(*pdev->usb_if, GFP_KERNEL);
if (!pdev->usb_if)
goto err_out;
diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_pro.c b/drivers/net/can/usb/peak_usb/pcan_usb_pro.c
index 7be286293b1a..db5d43bd4220 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb_pro.c
+++ b/drivers/net/can/usb/peak_usb/pcan_usb_pro.c
@@ -870,10 +870,9 @@ static int pcan_usb_pro_init(struct peak_usb_device *dev)
/* do this for 1st channel only */
if (!dev->prev_siblings) {
/* allocate netdevices common structure attached to first one */
- usb_if = kzalloc(sizeof(struct pcan_usb_pro_interface),
- GFP_KERNEL);
- fi = kmalloc(sizeof(struct pcan_usb_pro_fwinfo), GFP_KERNEL);
- bi = kmalloc(sizeof(struct pcan_usb_pro_blinfo), GFP_KERNEL);
+ usb_if = kzalloc_obj(struct pcan_usb_pro_interface, GFP_KERNEL);
+ fi = kmalloc_obj(struct pcan_usb_pro_fwinfo, GFP_KERNEL);
+ bi = kmalloc_obj(struct pcan_usb_pro_blinfo, GFP_KERNEL);
if (!usb_if || !fi || !bi) {
err = -ENOMEM;
goto err_out;
diff --git a/drivers/net/can/usb/ucan.c b/drivers/net/can/usb/ucan.c
index de61d9da99e3..906aca08cf5c 100644
--- a/drivers/net/can/usb/ucan.c
+++ b/drivers/net/can/usb/ucan.c
@@ -330,9 +330,8 @@ static int ucan_alloc_context_array(struct ucan_priv *up)
/* release contexts if any */
ucan_release_context_array(up);
- up->context_array = kcalloc(up->device_info.tx_fifo,
- sizeof(*up->context_array),
- GFP_KERNEL);
+ up->context_array = kzalloc_objs(*up->context_array,
+ up->device_info.tx_fifo, GFP_KERNEL);
if (!up->context_array) {
netdev_err(up->netdev,
"Not enough memory to allocate tx contexts\n");
diff --git a/drivers/net/dsa/bcm_sf2_cfp.c b/drivers/net/dsa/bcm_sf2_cfp.c
index e22362e6f0cd..8df91e4c1237 100644
--- a/drivers/net/dsa/bcm_sf2_cfp.c
+++ b/drivers/net/dsa/bcm_sf2_cfp.c
@@ -950,7 +950,7 @@ static int bcm_sf2_cfp_rule_set(struct dsa_switch *ds, int port,
if (ret == 0)
return -EEXIST;
- rule = kzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
return -ENOMEM;
diff --git a/drivers/net/dsa/hirschmann/hellcreek.c b/drivers/net/dsa/hirschmann/hellcreek.c
index dd5f263ab984..1e1917eafd7a 100644
--- a/drivers/net/dsa/hirschmann/hellcreek.c
+++ b/drivers/net/dsa/hirschmann/hellcreek.c
@@ -1265,7 +1265,7 @@ static int hellcreek_devlink_region_vlan_snapshot(struct devlink *dl,
struct hellcreek *hellcreek = ds->priv;
int i;
- table = kcalloc(VLAN_N_VID, sizeof(*entry), GFP_KERNEL);
+ table = kzalloc_objs(*entry, VLAN_N_VID, GFP_KERNEL);
if (!table)
return -ENOMEM;
@@ -1293,7 +1293,7 @@ static int hellcreek_devlink_region_fdb_snapshot(struct devlink *dl,
struct hellcreek *hellcreek = ds->priv;
size_t i;
- table = kcalloc(hellcreek->fdb_entries, sizeof(*entry), GFP_KERNEL);
+ table = kzalloc_objs(*entry, hellcreek->fdb_entries, GFP_KERNEL);
if (!table)
return -ENOMEM;
diff --git a/drivers/net/dsa/microchip/ksz9477_acl.c b/drivers/net/dsa/microchip/ksz9477_acl.c
index 7ba778df63ac..efd1da08bb45 100644
--- a/drivers/net/dsa/microchip/ksz9477_acl.c
+++ b/drivers/net/dsa/microchip/ksz9477_acl.c
@@ -1060,7 +1060,7 @@ int ksz9477_port_acl_init(struct ksz_device *dev, int port)
struct ksz9477_acl_priv *acl;
int ret, i;
- acl = kzalloc(sizeof(*acl), GFP_KERNEL);
+ acl = kzalloc_obj(*acl, GFP_KERNEL);
if (!acl)
return -ENOMEM;
diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c
index e5fa1f5fc09b..ddcbb1be4818 100644
--- a/drivers/net/dsa/microchip/ksz_common.c
+++ b/drivers/net/dsa/microchip/ksz_common.c
@@ -4835,7 +4835,7 @@ int ksz_switch_macaddr_get(struct dsa_switch *ds, int port,
return 0;
}
- switch_macaddr = kzalloc(sizeof(*switch_macaddr), GFP_KERNEL);
+ switch_macaddr = kzalloc_obj(*switch_macaddr, GFP_KERNEL);
if (!switch_macaddr)
return -ENOMEM;
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index 09002c853b78..7a43110e74b7 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -2024,7 +2024,7 @@ static int mv88e6xxx_mst_get(struct mv88e6xxx_chip *chip, struct net_device *br,
if (err)
goto err;
- mst = kzalloc(sizeof(*mst), GFP_KERNEL);
+ mst = kzalloc_obj(*mst, GFP_KERNEL);
if (!mst) {
err = -ENOMEM;
goto err;
diff --git a/drivers/net/dsa/mv88e6xxx/devlink.c b/drivers/net/dsa/mv88e6xxx/devlink.c
index da69e0b85879..f241e7df6eb5 100644
--- a/drivers/net/dsa/mv88e6xxx/devlink.c
+++ b/drivers/net/dsa/mv88e6xxx/devlink.c
@@ -378,9 +378,8 @@ static int mv88e6xxx_region_atu_snapshot(struct devlink *dl,
struct mv88e6xxx_chip *chip = ds->priv;
int fid = -1, err = 0, count = 0;
- table = kcalloc(mv88e6xxx_num_databases(chip),
- sizeof(struct mv88e6xxx_devlink_atu_entry),
- GFP_KERNEL);
+ table = kzalloc_objs(struct mv88e6xxx_devlink_atu_entry,
+ mv88e6xxx_num_databases(chip), GFP_KERNEL);
if (!table)
return -ENOMEM;
@@ -440,9 +439,8 @@ static int mv88e6xxx_region_vtu_snapshot(struct devlink *dl,
struct mv88e6xxx_vtu_entry vlan;
int err;
- table = kcalloc(mv88e6xxx_max_vid(chip) + 1,
- sizeof(struct mv88e6xxx_devlink_vtu_entry),
- GFP_KERNEL);
+ table = kzalloc_objs(struct mv88e6xxx_devlink_vtu_entry,
+ mv88e6xxx_max_vid(chip) + 1, GFP_KERNEL);
if (!table)
return -ENOMEM;
@@ -523,9 +521,8 @@ static int mv88e6xxx_region_stu_snapshot(struct devlink *dl,
struct mv88e6xxx_stu_entry stu;
int err;
- table = kcalloc(mv88e6xxx_max_sid(chip) + 1,
- sizeof(struct mv88e6xxx_devlink_stu_entry),
- GFP_KERNEL);
+ table = kzalloc_objs(struct mv88e6xxx_devlink_stu_entry,
+ mv88e6xxx_max_sid(chip) + 1, GFP_KERNEL);
if (!table)
return -ENOMEM;
diff --git a/drivers/net/dsa/mv88e6xxx/pcs-6185.c b/drivers/net/dsa/mv88e6xxx/pcs-6185.c
index af7e06d265f7..176480cdee5a 100644
--- a/drivers/net/dsa/mv88e6xxx/pcs-6185.c
+++ b/drivers/net/dsa/mv88e6xxx/pcs-6185.c
@@ -131,7 +131,7 @@ static int mv88e6185_pcs_init(struct mv88e6xxx_chip *chip, int port)
dev = chip->dev;
- mpcs = kzalloc(sizeof(*mpcs), GFP_KERNEL);
+ mpcs = kzalloc_obj(*mpcs, GFP_KERNEL);
if (!mpcs)
return -ENOMEM;
diff --git a/drivers/net/dsa/mv88e6xxx/pcs-6352.c b/drivers/net/dsa/mv88e6xxx/pcs-6352.c
index 36993400837e..ecd8b5efccf6 100644
--- a/drivers/net/dsa/mv88e6xxx/pcs-6352.c
+++ b/drivers/net/dsa/mv88e6xxx/pcs-6352.c
@@ -267,7 +267,7 @@ static struct marvell_c22_pcs *marvell_c22_pcs_alloc(struct device *dev,
{
struct marvell_c22_pcs *mpcs;
- mpcs = kzalloc(sizeof(*mpcs), GFP_KERNEL);
+ mpcs = kzalloc_obj(*mpcs, GFP_KERNEL);
if (!mpcs)
return NULL;
diff --git a/drivers/net/dsa/mv88e6xxx/pcs-639x.c b/drivers/net/dsa/mv88e6xxx/pcs-639x.c
index 5db17c0b77f5..c7728b00297d 100644
--- a/drivers/net/dsa/mv88e6xxx/pcs-639x.c
+++ b/drivers/net/dsa/mv88e6xxx/pcs-639x.c
@@ -67,7 +67,7 @@ mv88e639x_pcs_alloc(struct device *dev, struct mii_bus *bus, unsigned int addr,
{
struct mv88e639x_pcs *mpcs;
- mpcs = kzalloc(sizeof(*mpcs), GFP_KERNEL);
+ mpcs = kzalloc_obj(*mpcs, GFP_KERNEL);
if (!mpcs)
return NULL;
diff --git a/drivers/net/dsa/ocelot/felix.c b/drivers/net/dsa/ocelot/felix.c
index 5d34eb82e639..1587dd33a557 100644
--- a/drivers/net/dsa/ocelot/felix.c
+++ b/drivers/net/dsa/ocelot/felix.c
@@ -109,8 +109,7 @@ static int felix_tag_8021q_vlan_add_rx(struct dsa_switch *ds, int port,
key_length = ocelot->vcap[VCAP_ES0].keys[VCAP_ES0_IGR_PORT].length;
- outer_tagging_rule = kzalloc(sizeof(struct ocelot_vcap_filter),
- GFP_KERNEL);
+ outer_tagging_rule = kzalloc_obj(struct ocelot_vcap_filter, GFP_KERNEL);
if (!outer_tagging_rule)
return -ENOMEM;
@@ -178,11 +177,11 @@ static int felix_tag_8021q_vlan_add_tx(struct dsa_switch *ds, int port,
unsigned long cookie;
int err;
- untagging_rule = kzalloc(sizeof(struct ocelot_vcap_filter), GFP_KERNEL);
+ untagging_rule = kzalloc_obj(struct ocelot_vcap_filter, GFP_KERNEL);
if (!untagging_rule)
return -ENOMEM;
- redirect_rule = kzalloc(sizeof(struct ocelot_vcap_filter), GFP_KERNEL);
+ redirect_rule = kzalloc_obj(struct ocelot_vcap_filter, GFP_KERNEL);
if (!redirect_rule) {
kfree(untagging_rule);
return -ENOMEM;
@@ -1540,8 +1539,8 @@ static int felix_init_structs(struct felix *felix, int num_phys_ports)
ocelot->npi_xtr_prefix = OCELOT_TAG_PREFIX_SHORT;
ocelot->devlink = felix->ds->devlink;
- port_phy_modes = kcalloc(num_phys_ports, sizeof(phy_interface_t),
- GFP_KERNEL);
+ port_phy_modes = kzalloc_objs(phy_interface_t, num_phys_ports,
+ GFP_KERNEL);
if (!port_phy_modes)
return -ENOMEM;
diff --git a/drivers/net/dsa/ocelot/felix_vsc9959.c b/drivers/net/dsa/ocelot/felix_vsc9959.c
index 8cf4c8986587..86b9a24d3e33 100644
--- a/drivers/net/dsa/ocelot/felix_vsc9959.c
+++ b/drivers/net/dsa/ocelot/felix_vsc9959.c
@@ -2201,7 +2201,7 @@ static int vsc9959_psfp_sgi_table_add(struct ocelot *ocelot,
return 0;
}
- tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
return -ENOMEM;
diff --git a/drivers/net/dsa/sja1105/sja1105_devlink.c b/drivers/net/dsa/sja1105/sja1105_devlink.c
index 30b1f1ba762f..c1dd9ccc32d0 100644
--- a/drivers/net/dsa/sja1105/sja1105_devlink.c
+++ b/drivers/net/dsa/sja1105/sja1105_devlink.c
@@ -82,8 +82,8 @@ static int sja1105_setup_devlink_regions(struct dsa_switch *ds)
struct devlink_region *region;
u64 size;
- priv->regions = kcalloc(num_regions, sizeof(struct devlink_region *),
- GFP_KERNEL);
+ priv->regions = kzalloc_objs(struct devlink_region *, num_regions,
+ GFP_KERNEL);
if (!priv->regions)
return -ENOMEM;
diff --git a/drivers/net/dsa/sja1105/sja1105_flower.c b/drivers/net/dsa/sja1105/sja1105_flower.c
index 05d8ed3121e7..c91f7371471c 100644
--- a/drivers/net/dsa/sja1105/sja1105_flower.c
+++ b/drivers/net/dsa/sja1105/sja1105_flower.c
@@ -41,7 +41,7 @@ static int sja1105_setup_bcast_policer(struct sja1105_private *priv,
int rc;
if (!rule) {
- rule = kzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
return -ENOMEM;
@@ -112,7 +112,7 @@ static int sja1105_setup_tc_policer(struct sja1105_private *priv,
int rc;
if (!rule) {
- rule = kzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
return -ENOMEM;
diff --git a/drivers/net/dsa/sja1105/sja1105_tas.c b/drivers/net/dsa/sja1105/sja1105_tas.c
index d5949d2c3e71..a3090c70b428 100644
--- a/drivers/net/dsa/sja1105/sja1105_tas.c
+++ b/drivers/net/dsa/sja1105/sja1105_tas.c
@@ -477,7 +477,7 @@ bool sja1105_gating_check_conflicts(struct sja1105_private *priv, int port,
if (list_empty(&gating_cfg->entries))
return false;
- dummy = kzalloc(struct_size(dummy, entries, num_entries), GFP_KERNEL);
+ dummy = kzalloc_flex(*dummy, entries, num_entries, GFP_KERNEL);
if (!dummy) {
NL_SET_ERR_MSG_MOD(extack, "Failed to allocate memory");
return true;
diff --git a/drivers/net/dsa/sja1105/sja1105_vl.c b/drivers/net/dsa/sja1105/sja1105_vl.c
index b7e95d60a6e4..7ec1ce5edf07 100644
--- a/drivers/net/dsa/sja1105/sja1105_vl.c
+++ b/drivers/net/dsa/sja1105/sja1105_vl.c
@@ -16,7 +16,7 @@ static int sja1105_insert_gate_entry(struct sja1105_gating_config *gating_cfg,
struct sja1105_gate_entry *e;
int rc;
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e)
return -ENOMEM;
@@ -524,7 +524,7 @@ int sja1105_vl_redirect(struct sja1105_private *priv, int port,
}
if (!rule) {
- rule = kzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
return -ENOMEM;
@@ -622,7 +622,7 @@ int sja1105_vl_gate(struct sja1105_private *priv, int port,
}
if (!rule) {
- rule = kzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
return -ENOMEM;
@@ -635,9 +635,8 @@ int sja1105_vl_gate(struct sja1105_private *priv, int port,
rule->vl.base_time = base_time;
rule->vl.cycle_time = cycle_time;
rule->vl.num_entries = num_entries;
- rule->vl.entries = kcalloc(num_entries,
- sizeof(struct action_gate_entry),
- GFP_KERNEL);
+ rule->vl.entries = kzalloc_objs(struct action_gate_entry,
+ num_entries, GFP_KERNEL);
if (!rule->vl.entries) {
rc = -ENOMEM;
goto out;
diff --git a/drivers/net/dsa/vitesse-vsc73xx-core.c b/drivers/net/dsa/vitesse-vsc73xx-core.c
index 9d31b8258268..a2feb30843b6 100644
--- a/drivers/net/dsa/vitesse-vsc73xx-core.c
+++ b/drivers/net/dsa/vitesse-vsc73xx-core.c
@@ -1664,7 +1664,7 @@ static int vsc73xx_port_vlan_add(struct dsa_switch *ds, int port,
vsc73xx_vlan = vsc73xx_bridge_vlan_find(vsc, vlan->vid);
if (!vsc73xx_vlan) {
- vsc73xx_vlan = kzalloc(sizeof(*vsc73xx_vlan), GFP_KERNEL);
+ vsc73xx_vlan = kzalloc_obj(*vsc73xx_vlan, GFP_KERNEL);
if (!vsc73xx_vlan)
return -ENOMEM;
diff --git a/drivers/net/eql.c b/drivers/net/eql.c
index 9ba10efd3794..3fccbe2a63a0 100644
--- a/drivers/net/eql.c
+++ b/drivers/net/eql.c
@@ -425,7 +425,7 @@ static int eql_enslave(struct net_device *master_dev, slaving_request_t __user *
if ((master_dev->flags & IFF_UP) == IFF_UP) {
/* slave is not a master & not already a slave: */
if (!eql_is_master(slave_dev) && !eql_is_slave(slave_dev)) {
- slave_t *s = kzalloc(sizeof(*s), GFP_KERNEL);
+ slave_t *s = kzalloc_obj(*s, GFP_KERNEL);
equalizer_t *eql = netdev_priv(master_dev);
int ret;
diff --git a/drivers/net/ethernet/adi/adin1110.c b/drivers/net/ethernet/adi/adin1110.c
index 1b4e37d000b9..53fac3dc8be6 100644
--- a/drivers/net/ethernet/adi/adin1110.c
+++ b/drivers/net/ethernet/adi/adin1110.c
@@ -1492,7 +1492,7 @@ static int adin1110_switchdev_event(struct notifier_block *unused,
if (!adin1110_port_dev_check(netdev))
return NOTIFY_DONE;
- switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC);
+ switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC);
if (WARN_ON(!switchdev_work))
return NOTIFY_BAD;
diff --git a/drivers/net/ethernet/agere/et131x.c b/drivers/net/ethernet/agere/et131x.c
index 5c8217638dda..30cc8acd2b8c 100644
--- a/drivers/net/ethernet/agere/et131x.c
+++ b/drivers/net/ethernet/agere/et131x.c
@@ -1866,10 +1866,10 @@ static int et131x_rx_dma_memory_alloc(struct et131x_adapter *adapter)
struct fbr_lookup *fbr;
/* Alloc memory for the lookup table */
- rx_ring->fbr[0] = kzalloc(sizeof(*fbr), GFP_KERNEL);
+ rx_ring->fbr[0] = kzalloc_obj(*fbr, GFP_KERNEL);
if (rx_ring->fbr[0] == NULL)
return -ENOMEM;
- rx_ring->fbr[1] = kzalloc(sizeof(*fbr), GFP_KERNEL);
+ rx_ring->fbr[1] = kzalloc_obj(*fbr, GFP_KERNEL);
if (rx_ring->fbr[1] == NULL)
return -ENOMEM;
@@ -2089,7 +2089,7 @@ static int et131x_init_recv(struct et131x_adapter *adapter)
/* Setup each RFD */
for (rfdct = 0; rfdct < rx_ring->num_rfd; rfdct++) {
- rfd = kzalloc(sizeof(*rfd), GFP_ATOMIC | GFP_DMA);
+ rfd = kzalloc_obj(*rfd, GFP_ATOMIC | GFP_DMA);
if (!rfd)
return -ENOMEM;
@@ -2357,8 +2357,8 @@ static int et131x_tx_dma_memory_alloc(struct et131x_adapter *adapter)
struct tx_ring *tx_ring = &adapter->tx_ring;
/* Allocate memory for the TCB's (Transmit Control Block) */
- tx_ring->tcb_ring = kcalloc(NUM_TCB, sizeof(struct tcb),
- GFP_KERNEL | GFP_DMA);
+ tx_ring->tcb_ring = kzalloc_objs(struct tcb, NUM_TCB,
+ GFP_KERNEL | GFP_DMA);
if (!tx_ring->tcb_ring)
return -ENOMEM;
diff --git a/drivers/net/ethernet/airoha/airoha_npu.c b/drivers/net/ethernet/airoha/airoha_npu.c
index 89f22f3f47dc..84090dee9814 100644
--- a/drivers/net/ethernet/airoha/airoha_npu.c
+++ b/drivers/net/ethernet/airoha/airoha_npu.c
@@ -333,7 +333,7 @@ static int airoha_npu_ppe_init(struct airoha_npu *npu)
struct ppe_mbox_data *ppe_data;
int err;
- ppe_data = kzalloc(sizeof(*ppe_data), GFP_KERNEL);
+ ppe_data = kzalloc_obj(*ppe_data, GFP_KERNEL);
if (!ppe_data)
return -ENOMEM;
@@ -354,7 +354,7 @@ static int airoha_npu_ppe_deinit(struct airoha_npu *npu)
struct ppe_mbox_data *ppe_data;
int err;
- ppe_data = kzalloc(sizeof(*ppe_data), GFP_KERNEL);
+ ppe_data = kzalloc_obj(*ppe_data, GFP_KERNEL);
if (!ppe_data)
return -ENOMEM;
@@ -375,7 +375,7 @@ static int airoha_npu_ppe_flush_sram_entries(struct airoha_npu *npu,
struct ppe_mbox_data *ppe_data;
int err;
- ppe_data = kzalloc(sizeof(*ppe_data), GFP_KERNEL);
+ ppe_data = kzalloc_obj(*ppe_data, GFP_KERNEL);
if (!ppe_data)
return -ENOMEM;
@@ -399,7 +399,7 @@ static int airoha_npu_foe_commit_entry(struct airoha_npu *npu,
struct ppe_mbox_data *ppe_data;
int err;
- ppe_data = kzalloc(sizeof(*ppe_data), GFP_ATOMIC);
+ ppe_data = kzalloc_obj(*ppe_data, GFP_ATOMIC);
if (!ppe_data)
return -ENOMEM;
@@ -434,7 +434,7 @@ static int airoha_npu_ppe_stats_setup(struct airoha_npu *npu,
int err, size = num_stats_entries * sizeof(*npu->stats);
struct ppe_mbox_data *ppe_data;
- ppe_data = kzalloc(sizeof(*ppe_data), GFP_ATOMIC);
+ ppe_data = kzalloc_obj(*ppe_data, GFP_ATOMIC);
if (!ppe_data)
return -ENOMEM;
diff --git a/drivers/net/ethernet/airoha/airoha_ppe.c b/drivers/net/ethernet/airoha/airoha_ppe.c
index 2221bafaf7c9..a0f4c6e33bfc 100644
--- a/drivers/net/ethernet/airoha/airoha_ppe.c
+++ b/drivers/net/ethernet/airoha/airoha_ppe.c
@@ -778,7 +778,7 @@ airoha_ppe_foe_commit_subflow_entry(struct airoha_ppe *ppe,
if (!hwe_p)
return -EINVAL;
- f = kzalloc(sizeof(*f), GFP_ATOMIC);
+ f = kzalloc_obj(*f, GFP_ATOMIC);
if (!f)
return -ENOMEM;
@@ -1173,7 +1173,7 @@ static int airoha_ppe_flow_offload_replace(struct airoha_eth *eth,
return err;
}
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e)
return -ENOMEM;
diff --git a/drivers/net/ethernet/alacritech/slicoss.c b/drivers/net/ethernet/alacritech/slicoss.c
index 7488fb6ace0b..808ee88dcdc8 100644
--- a/drivers/net/ethernet/alacritech/slicoss.c
+++ b/drivers/net/ethernet/alacritech/slicoss.c
@@ -192,7 +192,7 @@ static int slic_new_upr(struct slic_device *sdev, unsigned int type,
{
struct slic_upr *upr;
- upr = kmalloc(sizeof(*upr), GFP_ATOMIC);
+ upr = kmalloc_obj(*upr, GFP_ATOMIC);
if (!upr)
return -ENOMEM;
upr->type = type;
@@ -845,7 +845,7 @@ static int slic_init_tx_queue(struct slic_device *sdev)
txq->put_idx = 0;
txq->done_idx = 0;
- txq->txbuffs = kcalloc(txq->len, sizeof(*buff), GFP_KERNEL);
+ txq->txbuffs = kzalloc_objs(*buff, txq->len, GFP_KERNEL);
if (!txq->txbuffs)
return -ENOMEM;
@@ -922,7 +922,7 @@ static int slic_init_rx_queue(struct slic_device *sdev)
rxq->done_idx = 0;
rxq->put_idx = 0;
- buff = kcalloc(rxq->len, sizeof(*buff), GFP_KERNEL);
+ buff = kzalloc_objs(*buff, rxq->len, GFP_KERNEL);
if (!buff)
return -ENOMEM;
diff --git a/drivers/net/ethernet/allwinner/sun4i-emac.c b/drivers/net/ethernet/allwinner/sun4i-emac.c
index 2f516b950f4e..fc7341a5cbb7 100644
--- a/drivers/net/ethernet/allwinner/sun4i-emac.c
+++ b/drivers/net/ethernet/allwinner/sun4i-emac.c
@@ -223,7 +223,7 @@ emac_alloc_dma_req(struct emac_board_info *db,
{
struct emac_dma_req *req;
- req = kzalloc(sizeof(struct emac_dma_req), GFP_ATOMIC);
+ req = kzalloc_obj(struct emac_dma_req, GFP_ATOMIC);
if (!req)
return NULL;
diff --git a/drivers/net/ethernet/alteon/acenic.c b/drivers/net/ethernet/alteon/acenic.c
index 9e6f91df2ba0..81f57bc6b3a2 100644
--- a/drivers/net/ethernet/alteon/acenic.c
+++ b/drivers/net/ethernet/alteon/acenic.c
@@ -1149,7 +1149,7 @@ static int ace_init(struct net_device *dev)
/*
* Get the memory for the skb rings.
*/
- if (!(ap->skb = kzalloc(sizeof(struct ace_skb), GFP_KERNEL))) {
+ if (!(ap->skb = kzalloc_obj(struct ace_skb, GFP_KERNEL))) {
ecode = -EAGAIN;
goto init_error;
}
diff --git a/drivers/net/ethernet/altera/altera_tse_main.c b/drivers/net/ethernet/altera/altera_tse_main.c
index ca55c5fd11df..2893fbaa51ca 100644
--- a/drivers/net/ethernet/altera/altera_tse_main.c
+++ b/drivers/net/ethernet/altera/altera_tse_main.c
@@ -258,14 +258,12 @@ static int alloc_init_skbufs(struct altera_tse_private *priv)
int i;
/* Create Rx ring buffer */
- priv->rx_ring = kcalloc(rx_descs, sizeof(struct tse_buffer),
- GFP_KERNEL);
+ priv->rx_ring = kzalloc_objs(struct tse_buffer, rx_descs, GFP_KERNEL);
if (!priv->rx_ring)
goto err_rx_ring;
/* Create Tx ring buffer */
- priv->tx_ring = kcalloc(tx_descs, sizeof(struct tse_buffer),
- GFP_KERNEL);
+ priv->tx_ring = kzalloc_objs(struct tse_buffer, tx_descs, GFP_KERNEL);
if (!priv->tx_ring)
goto err_tx_ring;
diff --git a/drivers/net/ethernet/amd/lance.c b/drivers/net/ethernet/amd/lance.c
index b1e6620ad41d..98afd8cb0efb 100644
--- a/drivers/net/ethernet/amd/lance.c
+++ b/drivers/net/ethernet/amd/lance.c
@@ -551,7 +551,7 @@ static int __init lance_probe1(struct net_device *dev, int ioaddr, int irq, int
dev->base_addr = ioaddr;
/* Make certain the data structures used by the LANCE are aligned and DMAble. */
- lp = kzalloc(sizeof(*lp), GFP_DMA | GFP_KERNEL);
+ lp = kzalloc_obj(*lp, GFP_DMA | GFP_KERNEL);
if (!lp)
return -ENOMEM;
if (lance_debug > 6) printk(" (#0x%05lx)", (unsigned long)lp);
diff --git a/drivers/net/ethernet/amd/pcnet32.c b/drivers/net/ethernet/amd/pcnet32.c
index 9eaefa0f5e80..e0705a54366b 100644
--- a/drivers/net/ethernet/amd/pcnet32.c
+++ b/drivers/net/ethernet/amd/pcnet32.c
@@ -491,11 +491,11 @@ static void pcnet32_realloc_tx_ring(struct net_device *dev,
if (!new_tx_ring)
return;
- new_dma_addr_list = kcalloc(entries, sizeof(dma_addr_t), GFP_ATOMIC);
+ new_dma_addr_list = kzalloc_objs(dma_addr_t, entries, GFP_ATOMIC);
if (!new_dma_addr_list)
goto free_new_tx_ring;
- new_skb_list = kcalloc(entries, sizeof(struct sk_buff *), GFP_ATOMIC);
+ new_skb_list = kzalloc_objs(struct sk_buff *, entries, GFP_ATOMIC);
if (!new_skb_list)
goto free_new_lists;
@@ -550,11 +550,11 @@ static void pcnet32_realloc_rx_ring(struct net_device *dev,
if (!new_rx_ring)
return;
- new_dma_addr_list = kcalloc(entries, sizeof(dma_addr_t), GFP_ATOMIC);
+ new_dma_addr_list = kzalloc_objs(dma_addr_t, entries, GFP_ATOMIC);
if (!new_dma_addr_list)
goto free_new_rx_ring;
- new_skb_list = kcalloc(entries, sizeof(struct sk_buff *), GFP_ATOMIC);
+ new_skb_list = kzalloc_objs(struct sk_buff *, entries, GFP_ATOMIC);
if (!new_skb_list)
goto free_new_lists;
@@ -2035,23 +2035,21 @@ static int pcnet32_alloc_ring(struct net_device *dev, const char *name)
return -ENOMEM;
}
- lp->tx_dma_addr = kcalloc(lp->tx_ring_size, sizeof(dma_addr_t),
- GFP_KERNEL);
+ lp->tx_dma_addr = kzalloc_objs(dma_addr_t, lp->tx_ring_size, GFP_KERNEL);
if (!lp->tx_dma_addr)
return -ENOMEM;
- lp->rx_dma_addr = kcalloc(lp->rx_ring_size, sizeof(dma_addr_t),
- GFP_KERNEL);
+ lp->rx_dma_addr = kzalloc_objs(dma_addr_t, lp->rx_ring_size, GFP_KERNEL);
if (!lp->rx_dma_addr)
return -ENOMEM;
- lp->tx_skbuff = kcalloc(lp->tx_ring_size, sizeof(struct sk_buff *),
- GFP_KERNEL);
+ lp->tx_skbuff = kzalloc_objs(struct sk_buff *, lp->tx_ring_size,
+ GFP_KERNEL);
if (!lp->tx_skbuff)
return -ENOMEM;
- lp->rx_skbuff = kcalloc(lp->rx_ring_size, sizeof(struct sk_buff *),
- GFP_KERNEL);
+ lp->rx_skbuff = kzalloc_objs(struct sk_buff *, lp->rx_ring_size,
+ GFP_KERNEL);
if (!lp->rx_skbuff)
return -ENOMEM;
diff --git a/drivers/net/ethernet/amd/pds_core/auxbus.c b/drivers/net/ethernet/amd/pds_core/auxbus.c
index 92f359f2b449..6f0ffdf14e96 100644
--- a/drivers/net/ethernet/amd/pds_core/auxbus.c
+++ b/drivers/net/ethernet/amd/pds_core/auxbus.c
@@ -140,7 +140,7 @@ static struct pds_auxiliary_dev *pdsc_auxbus_dev_register(struct pdsc *cf,
struct pds_auxiliary_dev *padev;
int err;
- padev = kzalloc(sizeof(*padev), GFP_KERNEL);
+ padev = kzalloc_obj(*padev, GFP_KERNEL);
if (!padev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/amd/pds_core/core.c b/drivers/net/ethernet/amd/pds_core/core.c
index 076dfe2910c7..af2f2c7f5de5 100644
--- a/drivers/net/ethernet/amd/pds_core/core.c
+++ b/drivers/net/ethernet/amd/pds_core/core.c
@@ -415,9 +415,9 @@ static int pdsc_viftypes_init(struct pdsc *pdsc)
{
enum pds_core_vif_types vt;
- pdsc->viftype_status = kcalloc(ARRAY_SIZE(pdsc_viftype_defaults),
- sizeof(*pdsc->viftype_status),
- GFP_KERNEL);
+ pdsc->viftype_status = kzalloc_objs(*pdsc->viftype_status,
+ ARRAY_SIZE(pdsc_viftype_defaults),
+ GFP_KERNEL);
if (!pdsc->viftype_status)
return -ENOMEM;
diff --git a/drivers/net/ethernet/amd/pds_core/dev.c b/drivers/net/ethernet/amd/pds_core/dev.c
index 495ef4ef8c10..6ae27bfb3375 100644
--- a/drivers/net/ethernet/amd/pds_core/dev.c
+++ b/drivers/net/ethernet/amd/pds_core/dev.c
@@ -359,7 +359,7 @@ int pdsc_dev_init(struct pdsc *pdsc)
nintrs = min_t(unsigned int, num_online_cpus(), nintrs);
/* Get intr_info struct array for tracking */
- pdsc->intr_info = kcalloc(nintrs, sizeof(*pdsc->intr_info), GFP_KERNEL);
+ pdsc->intr_info = kzalloc_objs(*pdsc->intr_info, nintrs, GFP_KERNEL);
if (!pdsc->intr_info)
return -ENOMEM;
diff --git a/drivers/net/ethernet/amd/pds_core/main.c b/drivers/net/ethernet/amd/pds_core/main.c
index c7a2eff57632..743b154d2a88 100644
--- a/drivers/net/ethernet/amd/pds_core/main.c
+++ b/drivers/net/ethernet/amd/pds_core/main.c
@@ -146,8 +146,7 @@ static int pdsc_sriov_configure(struct pci_dev *pdev, int num_vfs)
int ret = 0;
if (num_vfs > 0) {
- pdsc->vfs = kcalloc(num_vfs, sizeof(struct pdsc_vf),
- GFP_KERNEL);
+ pdsc->vfs = kzalloc_objs(struct pdsc_vf, num_vfs, GFP_KERNEL);
if (!pdsc->vfs)
return -ENOMEM;
pdsc->num_vfs = num_vfs;
diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-selftest.c b/drivers/net/ethernet/amd/xgbe/xgbe-selftest.c
index 55e5e467facd..488f96bec1e7 100644
--- a/drivers/net/ethernet/amd/xgbe/xgbe-selftest.c
+++ b/drivers/net/ethernet/amd/xgbe/xgbe-selftest.c
@@ -112,7 +112,7 @@ static int __xgbe_test_loopback(struct xgbe_prv_data *pdata,
struct sk_buff *skb = NULL;
int ret = 0;
- tdata = kzalloc(sizeof(*tdata), GFP_KERNEL);
+ tdata = kzalloc_obj(*tdata, GFP_KERNEL);
if (!tdata)
return -ENOMEM;
diff --git a/drivers/net/ethernet/apm/xgene-v2/main.c b/drivers/net/ethernet/apm/xgene-v2/main.c
index d7ca847d44c7..b88764615994 100644
--- a/drivers/net/ethernet/apm/xgene-v2/main.c
+++ b/drivers/net/ethernet/apm/xgene-v2/main.c
@@ -405,7 +405,7 @@ static struct xge_desc_ring *xge_create_desc_ring(struct net_device *ndev)
struct xge_desc_ring *ring;
u16 size;
- ring = kzalloc(sizeof(*ring), GFP_KERNEL);
+ ring = kzalloc_obj(*ring, GFP_KERNEL);
if (!ring)
return NULL;
@@ -417,8 +417,8 @@ static struct xge_desc_ring *xge_create_desc_ring(struct net_device *ndev)
if (!ring->desc_addr)
goto err;
- ring->pkt_info = kcalloc(XGENE_ENET_NUM_DESC, sizeof(*ring->pkt_info),
- GFP_KERNEL);
+ ring->pkt_info = kzalloc_objs(*ring->pkt_info, XGENE_ENET_NUM_DESC,
+ GFP_KERNEL);
if (!ring->pkt_info)
goto err;
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_filters.c b/drivers/net/ethernet/aquantia/atlantic/aq_filters.c
index 30a573db02bb..4f0b66917ce0 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_filters.c
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_filters.c
@@ -688,7 +688,7 @@ int aq_add_rxnfc_rule(struct aq_nic_s *aq_nic, const struct ethtool_rxnfc *cmd)
if (err)
goto err_exit;
- aq_rx_fltr = kzalloc(sizeof(*aq_rx_fltr), GFP_KERNEL);
+ aq_rx_fltr = kzalloc_obj(*aq_rx_fltr, GFP_KERNEL);
if (unlikely(!aq_rx_fltr)) {
err = -ENOMEM;
goto err_exit;
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_macsec.c b/drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
index 6afff8af5e86..a47d5ec74b94 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
@@ -1462,7 +1462,7 @@ int aq_macsec_init(struct aq_nic_s *nic)
if (!(caps_lo & BIT(CAPS_LO_MACSEC)))
return 0;
- nic->macsec_cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
+ nic->macsec_cfg = kzalloc_obj(*cfg, GFP_KERNEL);
if (!nic->macsec_cfg)
return -ENOMEM;
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
index ed5231dece3f..05d656fb4a27 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
@@ -244,7 +244,7 @@ static int aq_pci_probe(struct pci_dev *pdev,
if (err)
goto err_ioremap;
- self->aq_hw = kzalloc(sizeof(*self->aq_hw), GFP_KERNEL);
+ self->aq_hw = kzalloc_obj(*self->aq_hw, GFP_KERNEL);
if (!self->aq_hw) {
err = -ENOMEM;
goto err_ioremap;
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_ptp.c b/drivers/net/ethernet/aquantia/atlantic/aq_ptp.c
index 0fa0f891c0e0..83216657d1d8 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_ptp.c
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_ptp.c
@@ -1130,8 +1130,8 @@ static void aq_ptp_gpio_init(struct ptp_clock_info *info,
if (!info->n_pins)
return;
- info->pin_config = kcalloc(info->n_pins, sizeof(struct ptp_pin_desc),
- GFP_KERNEL);
+ info->pin_config = kzalloc_objs(struct ptp_pin_desc, info->n_pins,
+ GFP_KERNEL);
if (!info->pin_config)
return;
@@ -1183,7 +1183,7 @@ int aq_ptp_init(struct aq_nic_s *aq_nic, unsigned int idx_vec)
aq_ptp_offset_init(&mbox.info.ptp_offset);
- aq_ptp = kzalloc(sizeof(*aq_ptp), GFP_KERNEL);
+ aq_ptp = kzalloc_obj(*aq_ptp, GFP_KERNEL);
if (!aq_ptp) {
err = -ENOMEM;
goto err_exit;
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_ring.c b/drivers/net/ethernet/aquantia/atlantic/aq_ring.c
index d23d23bed39f..62478c605503 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_ring.c
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_ring.c
@@ -138,7 +138,7 @@ static int aq_ring_alloc(struct aq_ring_s *self,
int err = 0;
self->buff_ring =
- kcalloc(self->size, sizeof(struct aq_ring_buff_s), GFP_KERNEL);
+ kzalloc_objs(struct aq_ring_buff_s, self->size, GFP_KERNEL);
if (!self->buff_ring) {
err = -ENOMEM;
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_vec.c b/drivers/net/ethernet/aquantia/atlantic/aq_vec.c
index 9769ab4f9bef..90eaf11076d2 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_vec.c
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_vec.c
@@ -104,7 +104,7 @@ struct aq_vec_s *aq_vec_alloc(struct aq_nic_s *aq_nic, unsigned int idx,
{
struct aq_vec_s *self = NULL;
- self = kzalloc(sizeof(*self), GFP_KERNEL);
+ self = kzalloc_obj(*self, GFP_KERNEL);
if (!self)
goto err_exit;
diff --git a/drivers/net/ethernet/atheros/ag71xx.c b/drivers/net/ethernet/atheros/ag71xx.c
index cbc730c7cff2..13e3bd7fe82b 100644
--- a/drivers/net/ethernet/atheros/ag71xx.c
+++ b/drivers/net/ethernet/atheros/ag71xx.c
@@ -1305,7 +1305,7 @@ static int ag71xx_rings_init(struct ag71xx *ag)
ring_size = BIT(tx->order) + BIT(rx->order);
tx_size = BIT(tx->order);
- tx->buf = kcalloc(ring_size, sizeof(*tx->buf), GFP_KERNEL);
+ tx->buf = kzalloc_objs(*tx->buf, ring_size, GFP_KERNEL);
if (!tx->buf)
return -ENOMEM;
diff --git a/drivers/net/ethernet/atheros/alx/main.c b/drivers/net/ethernet/atheros/alx/main.c
index ad6d6abd885f..9b1923055293 100644
--- a/drivers/net/ethernet/atheros/alx/main.c
+++ b/drivers/net/ethernet/atheros/alx/main.c
@@ -616,7 +616,7 @@ static int alx_set_mac_address(struct net_device *netdev, void *data)
static int alx_alloc_tx_ring(struct alx_priv *alx, struct alx_tx_queue *txq,
int offset)
{
- txq->bufs = kcalloc(txq->count, sizeof(struct alx_buffer), GFP_KERNEL);
+ txq->bufs = kzalloc_objs(struct alx_buffer, txq->count, GFP_KERNEL);
if (!txq->bufs)
return -ENOMEM;
@@ -630,7 +630,7 @@ static int alx_alloc_tx_ring(struct alx_priv *alx, struct alx_tx_queue *txq,
static int alx_alloc_rx_ring(struct alx_priv *alx, struct alx_rx_queue *rxq,
int offset)
{
- rxq->bufs = kcalloc(rxq->count, sizeof(struct alx_buffer), GFP_KERNEL);
+ rxq->bufs = kzalloc_objs(struct alx_buffer, rxq->count, GFP_KERNEL);
if (!rxq->bufs)
return -ENOMEM;
@@ -746,7 +746,7 @@ static int alx_alloc_napis(struct alx_priv *alx)
/* allocate alx_napi structures */
for (i = 0; i < alx->num_napi; i++) {
- np = kzalloc(sizeof(struct alx_napi), GFP_KERNEL);
+ np = kzalloc_obj(struct alx_napi, GFP_KERNEL);
if (!np)
goto err_out;
@@ -758,7 +758,7 @@ static int alx_alloc_napis(struct alx_priv *alx)
/* allocate tx queues */
for (i = 0; i < alx->num_txq; i++) {
np = alx->qnapi[i];
- txq = kzalloc(sizeof(*txq), GFP_KERNEL);
+ txq = kzalloc_obj(*txq, GFP_KERNEL);
if (!txq)
goto err_out;
@@ -775,7 +775,7 @@ static int alx_alloc_napis(struct alx_priv *alx)
/* allocate rx queues */
np = alx->qnapi[0];
- rxq = kzalloc(sizeof(*rxq), GFP_KERNEL);
+ rxq = kzalloc_obj(*rxq, GFP_KERNEL);
if (!rxq)
goto err_out;
diff --git a/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c b/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c
index d0a480430a95..612abed61fff 100644
--- a/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c
+++ b/drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c
@@ -689,8 +689,8 @@ static int bcmasp_alloc_buffers(struct bcmasp_intf *intf)
if (!intf->tx_spb_cpu)
goto free_rx_edpkt_dma;
- intf->tx_cbs = kcalloc(DESC_RING_COUNT, sizeof(struct bcmasp_tx_cb),
- GFP_KERNEL);
+ intf->tx_cbs = kzalloc_objs(struct bcmasp_tx_cb, DESC_RING_COUNT,
+ GFP_KERNEL);
if (!intf->tx_cbs)
goto free_tx_spb_dma;
diff --git a/drivers/net/ethernet/broadcom/bcm4908_enet.c b/drivers/net/ethernet/broadcom/bcm4908_enet.c
index 203e8d0dd04b..fa1fd5667596 100644
--- a/drivers/net/ethernet/broadcom/bcm4908_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm4908_enet.c
@@ -181,7 +181,7 @@ static int bcm4908_dma_alloc_buf_descs(struct bcm4908_enet *enet,
goto err_free_buf_descs;
}
- ring->slots = kcalloc(ring->length, sizeof(*ring->slots), GFP_KERNEL);
+ ring->slots = kzalloc_objs(*ring->slots, ring->length, GFP_KERNEL);
if (!ring->slots)
goto err_free_buf_descs;
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
index 92204fea1f08..00408af127e1 100644
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
@@ -981,8 +981,8 @@ static int bcm_enet_open(struct net_device *dev)
priv->tx_desc_alloc_size = size;
priv->tx_desc_cpu = p;
- priv->tx_skb = kcalloc(priv->tx_ring_size, sizeof(struct sk_buff *),
- GFP_KERNEL);
+ priv->tx_skb = kzalloc_objs(struct sk_buff *, priv->tx_ring_size,
+ GFP_KERNEL);
if (!priv->tx_skb) {
ret = -ENOMEM;
goto out_free_tx_ring;
@@ -2149,8 +2149,8 @@ static int bcm_enetsw_open(struct net_device *dev)
priv->tx_desc_alloc_size = size;
priv->tx_desc_cpu = p;
- priv->tx_skb = kcalloc(priv->tx_ring_size, sizeof(struct sk_buff *),
- GFP_KERNEL);
+ priv->tx_skb = kzalloc_objs(struct sk_buff *, priv->tx_ring_size,
+ GFP_KERNEL);
if (!priv->tx_skb) {
dev_err(kdev, "cannot allocate tx skb queue\n");
ret = -ENOMEM;
diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ethernet/broadcom/bcmsysport.c
index bc4e1f3b3752..f81392cbedd1 100644
--- a/drivers/net/ethernet/broadcom/bcmsysport.c
+++ b/drivers/net/ethernet/broadcom/bcmsysport.c
@@ -1486,7 +1486,7 @@ static int bcm_sysport_init_tx_ring(struct bcm_sysport_priv *priv,
/* Simple descriptors partitioning for now */
size = 256;
- ring->cbs = kcalloc(size, sizeof(struct bcm_sysport_cb), GFP_KERNEL);
+ ring->cbs = kzalloc_objs(struct bcm_sysport_cb, size, GFP_KERNEL);
if (!ring->cbs) {
netif_err(priv, hw, priv->netdev, "CB allocation failed\n");
return -ENOMEM;
@@ -1665,8 +1665,8 @@ static int bcm_sysport_init_rx_ring(struct bcm_sysport_priv *priv)
priv->rx_bds = priv->base + SYS_PORT_RDMA_OFFSET;
priv->rx_c_index = 0;
priv->rx_read_ptr = 0;
- priv->rx_cbs = kcalloc(priv->num_rx_bds, sizeof(struct bcm_sysport_cb),
- GFP_KERNEL);
+ priv->rx_cbs = kzalloc_objs(struct bcm_sysport_cb, priv->num_rx_bds,
+ GFP_KERNEL);
if (!priv->rx_cbs) {
netif_err(priv, hw, priv->netdev, "CB allocation failed\n");
return -ENOMEM;
diff --git a/drivers/net/ethernet/broadcom/bnge/bnge_auxr.c b/drivers/net/ethernet/broadcom/bnge/bnge_auxr.c
index 5f4cb4991964..d530046e027d 100644
--- a/drivers/net/ethernet/broadcom/bnge/bnge_auxr.c
+++ b/drivers/net/ethernet/broadcom/bnge/bnge_auxr.c
@@ -210,7 +210,7 @@ void bnge_rdma_aux_device_init(struct bnge_dev *bd)
if (!bnge_is_roce_en(bd))
return;
- aux_priv = kzalloc(sizeof(*aux_priv), GFP_KERNEL);
+ aux_priv = kzalloc_obj(*aux_priv, GFP_KERNEL);
if (!aux_priv)
goto exit;
@@ -235,13 +235,13 @@ void bnge_rdma_aux_device_init(struct bnge_dev *bd)
}
bd->aux_priv = aux_priv;
- auxr_dev = kzalloc(sizeof(*auxr_dev), GFP_KERNEL);
+ auxr_dev = kzalloc_obj(*auxr_dev, GFP_KERNEL);
if (!auxr_dev)
goto aux_dev_uninit;
aux_priv->auxr_dev = auxr_dev;
- auxr_info = kzalloc(sizeof(*auxr_info), GFP_KERNEL);
+ auxr_info = kzalloc_obj(*auxr_info, GFP_KERNEL);
if (!auxr_info)
goto aux_dev_uninit;
diff --git a/drivers/net/ethernet/broadcom/bnge/bnge_hwrm.c b/drivers/net/ethernet/broadcom/bnge/bnge_hwrm.c
index c3087e5cd875..cf6e503d63a6 100644
--- a/drivers/net/ethernet/broadcom/bnge/bnge_hwrm.c
+++ b/drivers/net/ethernet/broadcom/bnge/bnge_hwrm.c
@@ -229,7 +229,7 @@ bnge_hwrm_create_token(struct bnge_dev *bd, enum bnge_hwrm_chnl dst)
{
struct bnge_hwrm_wait_token *token;
- token = kzalloc(sizeof(*token), GFP_KERNEL);
+ token = kzalloc_obj(*token, GFP_KERNEL);
if (!token)
return NULL;
diff --git a/drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c b/drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c
index 91a4ef9e3150..579943445b24 100644
--- a/drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c
+++ b/drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c
@@ -242,7 +242,7 @@ static int bnge_alloc_all_ctx_pg_info(struct bnge_dev *bd, int ctx_max)
if (ctxm->instance_bmap)
n = hweight32(ctxm->instance_bmap);
- ctxm->pg_info = kcalloc(n, sizeof(*ctxm->pg_info), GFP_KERNEL);
+ ctxm->pg_info = kzalloc_objs(*ctxm->pg_info, n, GFP_KERNEL);
if (!ctxm->pg_info)
return -ENOMEM;
}
@@ -269,7 +269,7 @@ int bnge_hwrm_func_backing_store_qcaps(struct bnge_dev *bd)
if (rc)
return rc;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
bd->ctx = ctx;
diff --git a/drivers/net/ethernet/broadcom/bnge/bnge_netdev.c b/drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
index b8e258842c61..74b552ee1796 100644
--- a/drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
+++ b/drivers/net/ethernet/broadcom/bnge/bnge_netdev.c
@@ -127,11 +127,11 @@ static void bnge_free_cp_desc_arr(struct bnge_cp_ring_info *cpr)
static int bnge_alloc_nq_desc_arr(struct bnge_nq_ring_info *nqr, int n)
{
- nqr->desc_ring = kcalloc(n, sizeof(*nqr->desc_ring), GFP_KERNEL);
+ nqr->desc_ring = kzalloc_objs(*nqr->desc_ring, n, GFP_KERNEL);
if (!nqr->desc_ring)
return -ENOMEM;
- nqr->desc_mapping = kcalloc(n, sizeof(*nqr->desc_mapping), GFP_KERNEL);
+ nqr->desc_mapping = kzalloc_objs(*nqr->desc_mapping, n, GFP_KERNEL);
if (!nqr->desc_mapping)
goto err_free_desc_ring;
return 0;
@@ -144,11 +144,11 @@ static int bnge_alloc_nq_desc_arr(struct bnge_nq_ring_info *nqr, int n)
static int bnge_alloc_cp_desc_arr(struct bnge_cp_ring_info *cpr, int n)
{
- cpr->desc_ring = kcalloc(n, sizeof(*cpr->desc_ring), GFP_KERNEL);
+ cpr->desc_ring = kzalloc_objs(*cpr->desc_ring, n, GFP_KERNEL);
if (!cpr->desc_ring)
return -ENOMEM;
- cpr->desc_mapping = kcalloc(n, sizeof(*cpr->desc_mapping), GFP_KERNEL);
+ cpr->desc_mapping = kzalloc_objs(*cpr->desc_mapping, n, GFP_KERNEL);
if (!cpr->desc_mapping)
goto err_free_desc_ring;
return 0;
@@ -287,8 +287,7 @@ static int bnge_alloc_nq_tree(struct bnge_net *bn)
tx = 1;
}
- nqr->cp_ring_arr = kcalloc(cp_count, sizeof(*cpr),
- GFP_KERNEL);
+ nqr->cp_ring_arr = kzalloc_objs(*cpr, cp_count, GFP_KERNEL);
if (!nqr->cp_ring_arr) {
rc = -ENOMEM;
goto err_free_nq_tree;
@@ -510,21 +509,21 @@ static int bnge_alloc_tpa_info(struct bnge_net *bn)
for (i = 0; i < bd->rx_nr_rings; i++) {
struct bnge_rx_ring_info *rxr = &bn->rx_ring[i];
- rxr->rx_tpa = kcalloc(bn->max_tpa, sizeof(struct bnge_tpa_info),
- GFP_KERNEL);
+ rxr->rx_tpa = kzalloc_objs(struct bnge_tpa_info, bn->max_tpa,
+ GFP_KERNEL);
if (!rxr->rx_tpa)
goto err_free_tpa_info;
for (j = 0; j < bn->max_tpa; j++) {
struct rx_agg_cmp *agg;
- agg = kcalloc(MAX_SKB_FRAGS, sizeof(*agg), GFP_KERNEL);
+ agg = kzalloc_objs(*agg, MAX_SKB_FRAGS, GFP_KERNEL);
if (!agg)
goto err_free_tpa_info;
rxr->rx_tpa[j].agg_arr = agg;
}
- rxr->rx_tpa_idx_map = kzalloc(sizeof(*rxr->rx_tpa_idx_map),
- GFP_KERNEL);
+ rxr->rx_tpa_idx_map = kzalloc_obj(*rxr->rx_tpa_idx_map,
+ GFP_KERNEL);
if (!rxr->rx_tpa_idx_map)
goto err_free_tpa_info;
}
@@ -813,8 +812,8 @@ static int bnge_alloc_vnics(struct bnge_net *bn)
*/
num_vnics = 1;
- bn->vnic_info = kcalloc(num_vnics, sizeof(struct bnge_vnic_info),
- GFP_KERNEL);
+ bn->vnic_info = kzalloc_objs(struct bnge_vnic_info, num_vnics,
+ GFP_KERNEL);
if (!bn->vnic_info)
return -ENOMEM;
@@ -841,9 +840,8 @@ static int bnge_init_ring_grps(struct bnge_net *bn)
struct bnge_dev *bd = bn->bd;
int i;
- bn->grp_info = kcalloc(bd->nq_nr_rings,
- sizeof(struct bnge_ring_grp_info),
- GFP_KERNEL);
+ bn->grp_info = kzalloc_objs(struct bnge_ring_grp_info, bd->nq_nr_rings,
+ GFP_KERNEL);
if (!bn->grp_info)
return -ENOMEM;
for (i = 0; i < bd->nq_nr_rings; i++) {
@@ -903,9 +901,8 @@ static int bnge_alloc_core(struct bnge_net *bn)
nqr->ring_struct.ring_mem.flags = BNGE_RMEM_RING_PTE_FLAG;
}
- bn->rx_ring = kcalloc(bd->rx_nr_rings,
- sizeof(struct bnge_rx_ring_info),
- GFP_KERNEL);
+ bn->rx_ring = kzalloc_objs(struct bnge_rx_ring_info, bd->rx_nr_rings,
+ GFP_KERNEL);
if (!bn->rx_ring)
goto err_free_core;
@@ -920,9 +917,8 @@ static int bnge_alloc_core(struct bnge_net *bn)
bn->bnapi[i]->rx_ring = &bn->rx_ring[i];
}
- bn->tx_ring = kcalloc(bd->tx_nr_rings,
- sizeof(struct bnge_tx_ring_info),
- GFP_KERNEL);
+ bn->tx_ring = kzalloc_objs(struct bnge_tx_ring_info, bd->tx_nr_rings,
+ GFP_KERNEL);
if (!bn->tx_ring)
goto err_free_core;
@@ -1778,7 +1774,7 @@ static struct bnge_l2_filter *bnge_alloc_l2_filter(struct bnge_net *bn,
if (fltr)
return fltr;
- fltr = kzalloc(sizeof(*fltr), gfp);
+ fltr = kzalloc_obj(*fltr, gfp);
if (!fltr)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/broadcom/bnge/bnge_resc.c b/drivers/net/ethernet/broadcom/bnge/bnge_resc.c
index 943df5f60f01..155b48cd2af8 100644
--- a/drivers/net/ethernet/broadcom/bnge/bnge_resc.c
+++ b/drivers/net/ethernet/broadcom/bnge/bnge_resc.c
@@ -389,7 +389,7 @@ int bnge_alloc_irqs(struct bnge_dev *bd)
num_entries = irqs_demand;
if (pci_msix_can_alloc_dyn(bd->pdev))
num_entries = max;
- bd->irq_tbl = kcalloc(num_entries, sizeof(*bd->irq_tbl), GFP_KERNEL);
+ bd->irq_tbl = kzalloc_objs(*bd->irq_tbl, num_entries, GFP_KERNEL);
if (!bd->irq_tbl) {
rc = -ENOMEM;
goto err_free_irqs;
diff --git a/drivers/net/ethernet/broadcom/bnge/bnge_rmem.c b/drivers/net/ethernet/broadcom/bnge/bnge_rmem.c
index ee97be440c33..fb89737b481d 100644
--- a/drivers/net/ethernet/broadcom/bnge/bnge_rmem.c
+++ b/drivers/net/ethernet/broadcom/bnge/bnge_rmem.c
@@ -158,8 +158,8 @@ static int bnge_alloc_ctx_pg_tbls(struct bnge_dev *bd,
int nr_tbls, i;
rmem->depth = 2;
- ctx_pg->ctx_pg_tbl = kcalloc(MAX_CTX_PAGES, sizeof(ctx_pg),
- GFP_KERNEL);
+ ctx_pg->ctx_pg_tbl = kzalloc_objs(ctx_pg, MAX_CTX_PAGES,
+ GFP_KERNEL);
if (!ctx_pg->ctx_pg_tbl)
return -ENOMEM;
nr_tbls = DIV_ROUND_UP(ctx_pg->nr_pages, MAX_CTX_PAGES);
@@ -170,7 +170,7 @@ static int bnge_alloc_ctx_pg_tbls(struct bnge_dev *bd,
for (i = 0; i < nr_tbls; i++) {
struct bnge_ctx_pg_info *pg_tbl;
- pg_tbl = kzalloc(sizeof(*pg_tbl), GFP_KERNEL);
+ pg_tbl = kzalloc_obj(*pg_tbl, GFP_KERNEL);
if (!pg_tbl)
return -ENOMEM;
ctx_pg->ctx_pg_tbl[i] = pg_tbl;
diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c
index 805daae9dd36..97aafe021477 100644
--- a/drivers/net/ethernet/broadcom/bnx2.c
+++ b/drivers/net/ethernet/broadcom/bnx2.c
@@ -8084,7 +8084,7 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev)
bp->phy_flags = 0;
bp->temp_stats_blk =
- kzalloc(sizeof(struct statistics_block), GFP_KERNEL);
+ kzalloc_obj(struct statistics_block, GFP_KERNEL);
if (!bp->temp_stats_blk) {
rc = -ENOMEM;
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
index e59530357e2c..ea0fc6add87d 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -4582,9 +4582,9 @@ static int bnx2x_alloc_fp_mem_at(struct bnx2x *bp, int index)
"allocating tx memory of fp %d cos %d\n",
index, cos);
- txdata->tx_buf_ring = kcalloc(NUM_TX_BD,
- sizeof(struct sw_tx_bd),
- GFP_KERNEL);
+ txdata->tx_buf_ring = kzalloc_objs(struct sw_tx_bd,
+ NUM_TX_BD,
+ GFP_KERNEL);
if (!txdata->tx_buf_ring)
goto alloc_mem_err;
txdata->tx_desc_ring = BNX2X_PCI_ALLOC(&txdata->tx_desc_mapping,
@@ -4598,7 +4598,7 @@ static int bnx2x_alloc_fp_mem_at(struct bnx2x *bp, int index)
if (!skip_rx_queue(bp, index)) {
/* fastpath rx rings: rx_buf rx_desc rx_comp */
bnx2x_fp(bp, index, rx_buf_ring) =
- kcalloc(NUM_RX_BD, sizeof(struct sw_rx_bd), GFP_KERNEL);
+ kzalloc_objs(struct sw_rx_bd, NUM_RX_BD, GFP_KERNEL);
if (!bnx2x_fp(bp, index, rx_buf_ring))
goto alloc_mem_err;
bnx2x_fp(bp, index, rx_desc_ring) =
@@ -4616,8 +4616,7 @@ static int bnx2x_alloc_fp_mem_at(struct bnx2x *bp, int index)
/* SGE ring */
bnx2x_fp(bp, index, rx_page_ring) =
- kcalloc(NUM_RX_SGE, sizeof(struct sw_rx_page),
- GFP_KERNEL);
+ kzalloc_objs(struct sw_rx_page, NUM_RX_SGE, GFP_KERNEL);
if (!bnx2x_fp(bp, index, rx_page_ring))
goto alloc_mem_err;
bnx2x_fp(bp, index, rx_sge_ring) =
@@ -4747,13 +4746,14 @@ int bnx2x_alloc_mem_bp(struct bnx2x *bp)
bp->fp_array_size = fp_array_size;
BNX2X_DEV_INFO("fp_array_size %d\n", bp->fp_array_size);
- fp = kcalloc(bp->fp_array_size, sizeof(*fp), GFP_KERNEL);
+ fp = kzalloc_objs(*fp, bp->fp_array_size, GFP_KERNEL);
if (!fp)
goto alloc_err;
for (i = 0; i < bp->fp_array_size; i++) {
fp[i].tpa_info =
- kcalloc(ETH_MAX_AGGREGATION_QUEUES_E1H_E2,
- sizeof(struct bnx2x_agg_info), GFP_KERNEL);
+ kzalloc_objs(struct bnx2x_agg_info,
+ ETH_MAX_AGGREGATION_QUEUES_E1H_E2,
+ GFP_KERNEL);
if (!(fp[i].tpa_info))
goto alloc_err;
}
@@ -4761,14 +4761,14 @@ int bnx2x_alloc_mem_bp(struct bnx2x *bp)
bp->fp = fp;
/* allocate sp objs */
- bp->sp_objs = kcalloc(bp->fp_array_size, sizeof(struct bnx2x_sp_objs),
- GFP_KERNEL);
+ bp->sp_objs = kzalloc_objs(struct bnx2x_sp_objs, bp->fp_array_size,
+ GFP_KERNEL);
if (!bp->sp_objs)
goto alloc_err;
/* allocate fp_stats */
- bp->fp_stats = kcalloc(bp->fp_array_size, sizeof(struct bnx2x_fp_stats),
- GFP_KERNEL);
+ bp->fp_stats = kzalloc_objs(struct bnx2x_fp_stats, bp->fp_array_size,
+ GFP_KERNEL);
if (!bp->fp_stats)
goto alloc_err;
@@ -4777,19 +4777,19 @@ int bnx2x_alloc_mem_bp(struct bnx2x *bp)
BNX2X_MAX_RSS_COUNT(bp) * BNX2X_MULTI_TX_COS + CNIC_SUPPORT(bp);
BNX2X_DEV_INFO("txq_array_size %d", txq_array_size);
- bp->bnx2x_txq = kcalloc(txq_array_size, sizeof(struct bnx2x_fp_txdata),
- GFP_KERNEL);
+ bp->bnx2x_txq = kzalloc_objs(struct bnx2x_fp_txdata, txq_array_size,
+ GFP_KERNEL);
if (!bp->bnx2x_txq)
goto alloc_err;
/* msix table */
- tbl = kcalloc(msix_table_size, sizeof(*tbl), GFP_KERNEL);
+ tbl = kzalloc_objs(*tbl, msix_table_size, GFP_KERNEL);
if (!tbl)
goto alloc_err;
bp->msix_table = tbl;
/* ilt */
- ilt = kzalloc(sizeof(*ilt), GFP_KERNEL);
+ ilt = kzalloc_obj(*ilt, GFP_KERNEL);
if (!ilt)
goto alloc_err;
bp->ilt = ilt;
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index 6a1cc2032bf3..745b023e2e08 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -6577,7 +6577,7 @@ static int bnx2x_gunzip_init(struct bnx2x *bp)
if (bp->gunzip_buf == NULL)
goto gunzip_nomem1;
- bp->strm = kmalloc(sizeof(*bp->strm), GFP_KERNEL);
+ bp->strm = kmalloc_obj(*bp->strm, GFP_KERNEL);
if (bp->strm == NULL)
goto gunzip_nomem2;
@@ -8396,8 +8396,8 @@ int bnx2x_alloc_mem(struct bnx2x *bp)
goto alloc_mem_err;
allocated += bp->context[i].size;
}
- bp->ilt->lines = kcalloc(ILT_MAX_LINES, sizeof(struct ilt_line),
- GFP_KERNEL);
+ bp->ilt->lines = kzalloc_objs(struct ilt_line, ILT_MAX_LINES,
+ GFP_KERNEL);
if (!bp->ilt->lines)
goto alloc_mem_err;
@@ -10660,7 +10660,7 @@ static int bnx2x_prev_mark_path(struct bnx2x *bp, bool after_undi)
up(&bnx2x_prev_sem);
/* Create an entry for this path and add it */
- tmp_list = kmalloc(sizeof(struct bnx2x_prev_path_list), GFP_KERNEL);
+ tmp_list = kmalloc_obj(struct bnx2x_prev_path_list, GFP_KERNEL);
if (!tmp_list) {
BNX2X_ERR("Failed to allocate 'bnx2x_prev_path_list'\n");
return -ENOMEM;
@@ -12954,7 +12954,7 @@ static int bnx2x_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid)
DP(NETIF_MSG_IFUP, "Adding VLAN %d\n", vid);
- vlan = kmalloc(sizeof(*vlan), GFP_KERNEL);
+ vlan = kmalloc_obj(*vlan, GFP_KERNEL);
if (!vlan)
return -ENOMEM;
@@ -14841,7 +14841,7 @@ static int bnx2x_get_fc_npiv(struct net_device *dev,
DP(BNX2X_MSG_MCP, "About to read the FC-NPIV table\n");
- tbl = kmalloc(sizeof(*tbl), GFP_KERNEL);
+ tbl = kmalloc_obj(*tbl, GFP_KERNEL);
if (!tbl) {
BNX2X_ERR("Failed to allocate fc_npiv table\n");
goto out;
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
index 02c8213915a5..07a908a2c72f 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
@@ -251,7 +251,7 @@ static inline struct bnx2x_exeq_elem *bnx2x_exe_queue_alloc_elem(
struct bnx2x *bp)
{
DP(BNX2X_MSG_SP, "Allocating a new exe_queue element\n");
- return kzalloc(sizeof(struct bnx2x_exeq_elem), GFP_ATOMIC);
+ return kzalloc_obj(struct bnx2x_exeq_elem, GFP_ATOMIC);
}
/************************ raw_obj functions ***********************************/
@@ -1736,7 +1736,7 @@ static inline int bnx2x_vlan_mac_get_registry_elem(
/* Allocate a new registry element if needed. */
if (!restore &&
((cmd == BNX2X_VLAN_MAC_ADD) || (cmd == BNX2X_VLAN_MAC_MOVE))) {
- reg_elem = kzalloc(sizeof(*reg_elem), GFP_ATOMIC);
+ reg_elem = kzalloc_obj(*reg_elem, GFP_ATOMIC);
if (!reg_elem)
return -ENOMEM;
@@ -2688,7 +2688,7 @@ static int bnx2x_mcast_enqueue_cmd(struct bnx2x *bp,
return 0;
/* Add mcast is called under spin_lock, thus calling with GFP_ATOMIC */
- new_cmd = kzalloc(sizeof(*new_cmd), GFP_ATOMIC);
+ new_cmd = kzalloc_obj(*new_cmd, GFP_ATOMIC);
if (!new_cmd)
return -ENOMEM;
@@ -3846,7 +3846,7 @@ static inline int bnx2x_mcast_refresh_registry_e1(struct bnx2x *bp,
if (!list_empty(&o->registry.exact_match.macs))
return 0;
- elem = kcalloc(len, sizeof(*elem), GFP_ATOMIC);
+ elem = kzalloc_objs(*elem, len, GFP_ATOMIC);
if (!elem) {
BNX2X_ERR("Failed to allocate registry memory\n");
return -ENOMEM;
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
index 12198fc3ab22..5aeb5b6a64b5 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
@@ -551,8 +551,8 @@ int bnx2x_vf_mcast(struct bnx2x *bp, struct bnx2x_virtf *vf,
else
set_bit(RAMROD_COMP_WAIT, &mcast.ramrod_flags);
if (mc_num) {
- mc = kcalloc(mc_num, sizeof(struct bnx2x_mcast_list_elem),
- GFP_KERNEL);
+ mc = kzalloc_objs(struct bnx2x_mcast_list_elem, mc_num,
+ GFP_KERNEL);
if (!mc) {
BNX2X_ERR("Cannot Configure multicasts due to lack of memory\n");
return -ENOMEM;
@@ -1218,7 +1218,7 @@ int bnx2x_iov_init_one(struct bnx2x *bp, int int_mode_param,
}
/* allocate the vfs database */
- bp->vfdb = kzalloc(sizeof(*(bp->vfdb)), GFP_KERNEL);
+ bp->vfdb = kzalloc_obj(*(bp->vfdb), GFP_KERNEL);
if (!bp->vfdb) {
BNX2X_ERR("failed to allocate vf database\n");
err = -ENOMEM;
@@ -1247,9 +1247,8 @@ int bnx2x_iov_init_one(struct bnx2x *bp, int int_mode_param,
num_vfs_param, iov->nr_virtfn);
/* allocate the vf array */
- bp->vfdb->vfs = kcalloc(BNX2X_NR_VIRTFN(bp),
- sizeof(struct bnx2x_virtf),
- GFP_KERNEL);
+ bp->vfdb->vfs = kzalloc_objs(struct bnx2x_virtf, BNX2X_NR_VIRTFN(bp),
+ GFP_KERNEL);
if (!bp->vfdb->vfs) {
BNX2X_ERR("failed to allocate vf array\n");
err = -ENOMEM;
@@ -1275,9 +1274,8 @@ int bnx2x_iov_init_one(struct bnx2x *bp, int int_mode_param,
}
/* allocate the queue arrays for all VFs */
- bp->vfdb->vfqs = kcalloc(BNX2X_MAX_NUM_VF_QUEUES,
- sizeof(struct bnx2x_vf_queue),
- GFP_KERNEL);
+ bp->vfdb->vfqs = kzalloc_objs(struct bnx2x_vf_queue,
+ BNX2X_MAX_NUM_VF_QUEUES, GFP_KERNEL);
if (!bp->vfdb->vfqs) {
BNX2X_ERR("failed to allocate vf queue array\n");
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c
index 8946a931e87e..818481f7a3ea 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c
@@ -1654,8 +1654,7 @@ static int bnx2x_vf_mbx_macvlan_list(struct bnx2x *bp,
int i, j;
struct bnx2x_vf_mac_vlan_filters *fl = NULL;
- fl = kzalloc(struct_size(fl, filters, tlv->n_mac_vlan_filters),
- GFP_KERNEL);
+ fl = kzalloc_flex(*fl, filters, tlv->n_mac_vlan_filters, GFP_KERNEL);
if (!fl)
return -ENOMEM;
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
index fb45e1dd1dd7..ad5035cd8ac3 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
@@ -3752,21 +3752,20 @@ static int bnxt_alloc_one_tpa_info(struct bnxt *bp,
struct rx_agg_cmp *agg;
int i;
- rxr->rx_tpa = kcalloc(bp->max_tpa, sizeof(struct bnxt_tpa_info),
- GFP_KERNEL);
+ rxr->rx_tpa = kzalloc_objs(struct bnxt_tpa_info, bp->max_tpa,
+ GFP_KERNEL);
if (!rxr->rx_tpa)
return -ENOMEM;
if (!(bp->flags & BNXT_FLAG_CHIP_P5_PLUS))
return 0;
for (i = 0; i < bp->max_tpa; i++) {
- agg = kcalloc(MAX_SKB_FRAGS, sizeof(*agg), GFP_KERNEL);
+ agg = kzalloc_objs(*agg, MAX_SKB_FRAGS, GFP_KERNEL);
if (!agg)
return -ENOMEM;
rxr->rx_tpa[i].agg_arr = agg;
}
- rxr->rx_tpa_idx_map = kzalloc(sizeof(*rxr->rx_tpa_idx_map),
- GFP_KERNEL);
+ rxr->rx_tpa_idx_map = kzalloc_obj(*rxr->rx_tpa_idx_map, GFP_KERNEL);
if (!rxr->rx_tpa_idx_map)
return -ENOMEM;
@@ -4081,11 +4080,11 @@ static void bnxt_free_cp_arrays(struct bnxt_cp_ring_info *cpr)
static int bnxt_alloc_cp_arrays(struct bnxt_cp_ring_info *cpr, int n)
{
- cpr->cp_desc_ring = kcalloc(n, sizeof(*cpr->cp_desc_ring), GFP_KERNEL);
+ cpr->cp_desc_ring = kzalloc_objs(*cpr->cp_desc_ring, n, GFP_KERNEL);
if (!cpr->cp_desc_ring)
return -ENOMEM;
- cpr->cp_desc_mapping = kcalloc(n, sizeof(*cpr->cp_desc_mapping),
- GFP_KERNEL);
+ cpr->cp_desc_mapping = kzalloc_objs(*cpr->cp_desc_mapping, n,
+ GFP_KERNEL);
if (!cpr->cp_desc_mapping)
return -ENOMEM;
return 0;
@@ -4232,8 +4231,7 @@ static int bnxt_alloc_cp_rings(struct bnxt *bp)
tx = 1;
}
- cpr->cp_ring_arr = kcalloc(cp_count, sizeof(*cpr),
- GFP_KERNEL);
+ cpr->cp_ring_arr = kzalloc_objs(*cpr, cp_count, GFP_KERNEL);
if (!cpr->cp_ring_arr)
return -ENOMEM;
cpr->cp_ring_count = cp_count;
@@ -4627,9 +4625,8 @@ static int bnxt_init_ring_grps(struct bnxt *bp, bool irq_re_init)
int i;
if (irq_re_init) {
- bp->grp_info = kcalloc(bp->cp_nr_rings,
- sizeof(struct bnxt_ring_grp_info),
- GFP_KERNEL);
+ bp->grp_info = kzalloc_objs(struct bnxt_ring_grp_info,
+ bp->cp_nr_rings, GFP_KERNEL);
if (!bp->grp_info)
return -ENOMEM;
}
@@ -4667,8 +4664,8 @@ static int bnxt_alloc_vnics(struct bnxt *bp)
if (BNXT_CHIP_TYPE_NITRO_A0(bp))
num_vnics++;
- bp->vnic_info = kcalloc(num_vnics, sizeof(struct bnxt_vnic_info),
- GFP_KERNEL);
+ bp->vnic_info = kzalloc_objs(struct bnxt_vnic_info, num_vnics,
+ GFP_KERNEL);
if (!bp->vnic_info)
return -ENOMEM;
@@ -5248,7 +5245,7 @@ static int bnxt_alloc_stats(struct bnxt *bp)
struct bnxt_napi *bnapi = bp->bnapi[i];
struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
- cpr->sw_stats = kzalloc(sizeof(*cpr->sw_stats), GFP_KERNEL);
+ cpr->sw_stats = kzalloc_obj(*cpr->sw_stats, GFP_KERNEL);
if (!cpr->sw_stats)
return -ENOMEM;
@@ -5516,9 +5513,8 @@ static int bnxt_alloc_mem(struct bnxt *bp, bool irq_re_init)
}
}
- bp->rx_ring = kcalloc(bp->rx_nr_rings,
- sizeof(struct bnxt_rx_ring_info),
- GFP_KERNEL);
+ bp->rx_ring = kzalloc_objs(struct bnxt_rx_ring_info,
+ bp->rx_nr_rings, GFP_KERNEL);
if (!bp->rx_ring)
return -ENOMEM;
@@ -5537,9 +5533,8 @@ static int bnxt_alloc_mem(struct bnxt *bp, bool irq_re_init)
bp->bnapi[i]->rx_ring = &bp->rx_ring[i];
}
- bp->tx_ring = kcalloc(bp->tx_nr_rings,
- sizeof(struct bnxt_tx_ring_info),
- GFP_KERNEL);
+ bp->tx_ring = kzalloc_objs(struct bnxt_tx_ring_info,
+ bp->tx_nr_rings, GFP_KERNEL);
if (!bp->tx_ring)
return -ENOMEM;
@@ -6096,7 +6091,7 @@ static struct bnxt_l2_filter *bnxt_alloc_l2_filter(struct bnxt *bp,
if (fltr)
return fltr;
- fltr = kzalloc(sizeof(*fltr), gfp);
+ fltr = kzalloc_obj(*fltr, gfp);
if (!fltr)
return ERR_PTR(-ENOMEM);
spin_lock_bh(&bp->ntp_fltr_lock);
@@ -6125,7 +6120,7 @@ struct bnxt_l2_filter *bnxt_alloc_new_l2_filter(struct bnxt *bp,
fltr = ERR_PTR(-EEXIST);
goto l2_filter_exit;
}
- fltr = kzalloc(sizeof(*fltr), GFP_ATOMIC);
+ fltr = kzalloc_obj(*fltr, GFP_ATOMIC);
if (!fltr) {
fltr = ERR_PTR(-ENOMEM);
goto l2_filter_exit;
@@ -8655,7 +8650,7 @@ static int bnxt_alloc_all_ctx_pg_info(struct bnxt *bp, int ctx_max)
if (ctxm->instance_bmap)
n = hweight32(ctxm->instance_bmap);
- ctxm->pg_info = kcalloc(n, sizeof(*ctxm->pg_info), GFP_KERNEL);
+ ctxm->pg_info = kzalloc_objs(*ctxm->pg_info, n, GFP_KERNEL);
if (!ctxm->pg_info)
return -ENOMEM;
}
@@ -8682,7 +8677,7 @@ static int bnxt_hwrm_func_backing_store_qcaps_v2(struct bnxt *bp)
return rc;
if (!ctx) {
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
bp->ctx = ctx;
@@ -8769,7 +8764,7 @@ static int bnxt_hwrm_func_backing_store_qcaps(struct bnxt *bp)
ctx = bp->ctx;
if (!ctx) {
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
rc = -ENOMEM;
goto ctx_err;
@@ -9048,8 +9043,8 @@ static int bnxt_alloc_ctx_pg_tbls(struct bnxt *bp,
int nr_tbls, i;
rmem->depth = 2;
- ctx_pg->ctx_pg_tbl = kcalloc(MAX_CTX_PAGES, sizeof(ctx_pg),
- GFP_KERNEL);
+ ctx_pg->ctx_pg_tbl = kzalloc_objs(ctx_pg, MAX_CTX_PAGES,
+ GFP_KERNEL);
if (!ctx_pg->ctx_pg_tbl)
return -ENOMEM;
nr_tbls = DIV_ROUND_UP(ctx_pg->nr_pages, MAX_CTX_PAGES);
@@ -9060,7 +9055,7 @@ static int bnxt_alloc_ctx_pg_tbls(struct bnxt *bp,
for (i = 0; i < nr_tbls; i++) {
struct bnxt_ctx_pg_info *pg_tbl;
- pg_tbl = kzalloc(sizeof(*pg_tbl), GFP_KERNEL);
+ pg_tbl = kzalloc_obj(*pg_tbl, GFP_KERNEL);
if (!pg_tbl)
return -ENOMEM;
ctx_pg->ctx_pg_tbl[i] = pg_tbl;
@@ -9569,8 +9564,7 @@ static int bnxt_alloc_crash_dump_mem(struct bnxt *bp)
if (bp->fw_crash_mem)
bnxt_free_ctx_pg_tbls(bp, bp->fw_crash_mem);
else
- bp->fw_crash_mem = kzalloc(sizeof(*bp->fw_crash_mem),
- GFP_KERNEL);
+ bp->fw_crash_mem = kzalloc_obj(*bp->fw_crash_mem, GFP_KERNEL);
if (!bp->fw_crash_mem)
return -ENOMEM;
@@ -9677,7 +9671,7 @@ static int __bnxt_hwrm_ptp_qcfg(struct bnxt *bp)
goto exit;
}
if (!ptp) {
- ptp = kzalloc(sizeof(*ptp), GFP_KERNEL);
+ ptp = kzalloc_obj(*ptp, GFP_KERNEL);
if (!ptp) {
rc = -ENOMEM;
goto exit;
@@ -9949,7 +9943,7 @@ static int __bnxt_alloc_fw_health(struct bnxt *bp)
if (bp->fw_health)
return 0;
- bp->fw_health = kzalloc(sizeof(*bp->fw_health), GFP_KERNEL);
+ bp->fw_health = kzalloc_obj(*bp->fw_health, GFP_KERNEL);
if (!bp->fw_health)
return -ENOMEM;
@@ -11460,7 +11454,7 @@ static int bnxt_init_int_mode(struct bnxt *bp)
tbl_size = total_vecs;
if (pci_msix_can_alloc_dyn(bp->pdev))
tbl_size = max;
- bp->irq_tbl = kcalloc(tbl_size, sizeof(*bp->irq_tbl), GFP_KERNEL);
+ bp->irq_tbl = kzalloc_objs(*bp->irq_tbl, tbl_size, GFP_KERNEL);
if (bp->irq_tbl) {
for (i = 0; i < total_vecs; i++)
bp->irq_tbl[i].vector = pci_irq_vector(bp->pdev, i);
@@ -12957,7 +12951,7 @@ static int bnxt_set_xps_mapping(struct bnxt *bp)
cpumask_t *q_map;
int rc = 0;
- q_map = kcalloc(bp->tx_nr_rings_per_tc, sizeof(*q_map), GFP_KERNEL);
+ q_map = kzalloc_objs(*q_map, bp->tx_nr_rings_per_tc, GFP_KERNEL);
if (!q_map)
return -ENOMEM;
@@ -15650,7 +15644,7 @@ static int bnxt_rx_flow_steer(struct net_device *dev, const struct sk_buff *skb,
return -EINVAL;
}
}
- new_fltr = kzalloc(sizeof(*new_fltr), GFP_ATOMIC);
+ new_fltr = kzalloc_obj(*new_fltr, GFP_ATOMIC);
if (!new_fltr) {
bnxt_del_l2_filter(bp, l2_fltr);
return -ENOMEM;
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
index a00b67334f9b..00e3ef076d93 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
@@ -529,7 +529,7 @@ static int bnxt_dcbnl_ieee_getets(struct net_device *dev, struct ieee_ets *ets)
if (bp->dcbx_cap & DCB_CAP_DCBX_HOST)
return 0;
- my_ets = kzalloc(sizeof(*my_ets), GFP_KERNEL);
+ my_ets = kzalloc_obj(*my_ets, GFP_KERNEL);
if (!my_ets)
return -ENOMEM;
rc = bnxt_hwrm_queue_cos2bw_qcfg(bp, my_ets);
@@ -568,7 +568,7 @@ static int bnxt_dcbnl_ieee_setets(struct net_device *dev, struct ieee_ets *ets)
rc = bnxt_ets_validate(bp, ets, &max_tc);
if (!rc) {
if (!my_ets) {
- my_ets = kzalloc(sizeof(*my_ets), GFP_KERNEL);
+ my_ets = kzalloc_obj(*my_ets, GFP_KERNEL);
if (!my_ets)
return -ENOMEM;
/* initialize PRI2TC mappings to invalid value */
@@ -604,7 +604,7 @@ static int bnxt_dcbnl_ieee_getpfc(struct net_device *dev, struct ieee_pfc *pfc)
if (bp->dcbx_cap & DCB_CAP_DCBX_HOST)
return 0;
- my_pfc = kzalloc(sizeof(*my_pfc), GFP_KERNEL);
+ my_pfc = kzalloc_obj(*my_pfc, GFP_KERNEL);
if (!my_pfc)
return 0;
bp->ieee_pfc = my_pfc;
@@ -642,7 +642,7 @@ static int bnxt_dcbnl_ieee_setpfc(struct net_device *dev, struct ieee_pfc *pfc)
return -EINVAL;
if (!my_pfc) {
- my_pfc = kzalloc(sizeof(*my_pfc), GFP_KERNEL);
+ my_pfc = kzalloc_obj(*my_pfc, GFP_KERNEL);
if (!my_pfc)
return -ENOMEM;
bp->ieee_pfc = my_pfc;
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
index 53a83b6680c4..e7455ef8984a 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
@@ -1371,7 +1371,7 @@ static int bnxt_add_ntuple_cls_rule(struct bnxt *bp,
return -EOPNOTSUPP;
}
- new_fltr = kzalloc(sizeof(*new_fltr), GFP_KERNEL);
+ new_fltr = kzalloc_obj(*new_fltr, GFP_KERNEL);
if (!new_fltr)
return -ENOMEM;
@@ -5485,7 +5485,7 @@ void bnxt_ethtool_init(struct bnxt *bp)
test_info = bp->test_info;
if (!test_info) {
- test_info = kzalloc(sizeof(*bp->test_info), GFP_KERNEL);
+ test_info = kzalloc_obj(*bp->test_info, GFP_KERNEL);
if (!test_info)
return;
bp->test_info = test_info;
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c
index 5ce190f50120..fcb4edb24012 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c
@@ -371,7 +371,7 @@ __hwrm_acquire_token(struct bnxt *bp, enum bnxt_hwrm_chnl dst)
{
struct bnxt_hwrm_wait_token *token;
- token = kzalloc(sizeof(*token), GFP_KERNEL);
+ token = kzalloc_obj(*token, GFP_KERNEL);
if (!token)
return NULL;
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
index ad89c5fa9b40..0135c53d4b47 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
@@ -983,9 +983,8 @@ static int bnxt_ptp_pps_init(struct bnxt *bp)
pps_info = &ptp->pps_info;
pps_info->num_pins = resp->num_pins;
ptp_info->n_pins = pps_info->num_pins;
- ptp_info->pin_config = kcalloc(ptp_info->n_pins,
- sizeof(*ptp_info->pin_config),
- GFP_KERNEL);
+ ptp_info->pin_config = kzalloc_objs(*ptp_info->pin_config,
+ ptp_info->n_pins, GFP_KERNEL);
if (!ptp_info->pin_config) {
hwrm_req_drop(bp, req);
return -ENOMEM;
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
index be7deb9cc410..d0f5f2ad5b26 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
@@ -459,7 +459,7 @@ static int bnxt_alloc_vf_resources(struct bnxt *bp, int num_vfs)
struct pci_dev *pdev = bp->pdev;
u32 nr_pages, size, i, j, k = 0;
- bp->pf.vf = kcalloc(num_vfs, sizeof(struct bnxt_vf_info), GFP_KERNEL);
+ bp->pf.vf = kzalloc_objs(struct bnxt_vf_info, num_vfs, GFP_KERNEL);
if (!bp->pf.vf)
return -ENOMEM;
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
index 2d66bf59cd64..c678305d588c 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c
@@ -977,7 +977,7 @@ bnxt_tc_get_l2_node(struct bnxt *bp, struct rhashtable *l2_table,
l2_node = rhashtable_lookup_fast(l2_table, l2_key, ht_params);
if (!l2_node) {
- l2_node = kzalloc(sizeof(*l2_node), GFP_KERNEL);
+ l2_node = kzalloc_obj(*l2_node, GFP_KERNEL);
if (!l2_node) {
rc = -ENOMEM;
return NULL;
@@ -1128,7 +1128,7 @@ bnxt_tc_get_tunnel_node(struct bnxt *bp, struct rhashtable *tunnel_table,
tunnel_node = rhashtable_lookup_fast(tunnel_table, tun_key, *ht_params);
if (!tunnel_node) {
- tunnel_node = kzalloc(sizeof(*tunnel_node), GFP_KERNEL);
+ tunnel_node = kzalloc_obj(*tunnel_node, GFP_KERNEL);
if (!tunnel_node) {
rc = -ENOMEM;
goto err;
@@ -1535,7 +1535,7 @@ static int bnxt_tc_add_flow(struct bnxt *bp, u16 src_fid,
int rc;
/* allocate memory for the new flow and it's node */
- new_node = kzalloc(sizeof(*new_node), GFP_KERNEL);
+ new_node = kzalloc_obj(*new_node, GFP_KERNEL);
if (!new_node) {
rc = -ENOMEM;
goto done;
@@ -1915,7 +1915,7 @@ static int bnxt_tc_setup_indr_block(struct net_device *netdev, struct Qdisc *sch
switch (f->command) {
case FLOW_BLOCK_BIND:
- cb_priv = kmalloc(sizeof(*cb_priv), GFP_KERNEL);
+ cb_priv = kmalloc_obj(*cb_priv, GFP_KERNEL);
if (!cb_priv)
return -ENOMEM;
@@ -2018,7 +2018,7 @@ int bnxt_init_tc(struct bnxt *bp)
if (bp->hwrm_spec_code < 0x10803)
return 0;
- tc_info = kzalloc(sizeof(*tc_info), GFP_KERNEL);
+ tc_info = kzalloc_obj(*tc_info, GFP_KERNEL);
if (!tc_info)
return -ENOMEM;
mutex_init(&tc_info->lock);
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
index 927971c362f1..ca95f6e70dde 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
@@ -333,8 +333,8 @@ void bnxt_ulp_irq_restart(struct bnxt *bp, int err)
return;
if (!err) {
- ent = kcalloc(ulp->msix_requested, sizeof(*ent),
- GFP_KERNEL);
+ ent = kzalloc_objs(*ent, ulp->msix_requested,
+ GFP_KERNEL);
if (!ent)
return;
bnxt_fill_msix_vecs(bp, ent);
@@ -479,7 +479,7 @@ void bnxt_rdma_aux_device_init(struct bnxt *bp)
if (!(bp->flags & BNXT_FLAG_ROCE_CAP))
return;
- aux_priv = kzalloc(sizeof(*bp->aux_priv), GFP_KERNEL);
+ aux_priv = kzalloc_obj(*bp->aux_priv, GFP_KERNEL);
if (!aux_priv)
goto exit;
@@ -509,13 +509,13 @@ void bnxt_rdma_aux_device_init(struct bnxt *bp)
* any error unwinding will need to include a call to
* auxiliary_device_uninit.
*/
- edev = kzalloc(sizeof(*edev), GFP_KERNEL);
+ edev = kzalloc_obj(*edev, GFP_KERNEL);
if (!edev)
goto aux_dev_uninit;
aux_priv->edev = edev;
- ulp = kzalloc(sizeof(*ulp), GFP_KERNEL);
+ ulp = kzalloc_obj(*ulp, GFP_KERNEL);
if (!ulp)
goto aux_dev_uninit;
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c
index bd116fd578d8..d0a67616f927 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c
@@ -496,7 +496,7 @@ int bnxt_vf_reps_create(struct bnxt *bp)
if (!(bp->flags & BNXT_FLAG_DSN_VALID))
return -ENODEV;
- bp->vf_reps = kcalloc(num_vfs, sizeof(vf_rep), GFP_KERNEL);
+ bp->vf_reps = kzalloc_objs(vf_rep, num_vfs, GFP_KERNEL);
if (!bp->vf_reps)
return -ENOMEM;
diff --git a/drivers/net/ethernet/broadcom/cnic.c b/drivers/net/ethernet/broadcom/cnic.c
index 6e97a5a7daaf..bd4238737fef 100644
--- a/drivers/net/ethernet/broadcom/cnic.c
+++ b/drivers/net/ethernet/broadcom/cnic.c
@@ -1062,7 +1062,7 @@ static int cnic_alloc_uio_rings(struct cnic_dev *dev, int pages)
}
}
- udev = kzalloc(sizeof(struct cnic_uio_dev), GFP_ATOMIC);
+ udev = kzalloc_obj(struct cnic_uio_dev, GFP_ATOMIC);
if (!udev)
return -ENOMEM;
@@ -1208,7 +1208,7 @@ static int cnic_alloc_bnx2x_context(struct cnic_dev *dev)
if (blks > cp->ethdev->ctx_tbl_len)
return -ENOMEM;
- cp->ctx_arr = kcalloc(blks, sizeof(struct cnic_ctx), GFP_KERNEL);
+ cp->ctx_arr = kzalloc_objs(struct cnic_ctx, blks, GFP_KERNEL);
if (cp->ctx_arr == NULL)
return -ENOMEM;
@@ -1261,13 +1261,13 @@ static int cnic_alloc_bnx2x_resc(struct cnic_dev *dev)
cp->fcoe_init_cid = 0x10;
}
- cp->iscsi_tbl = kcalloc(MAX_ISCSI_TBL_SZ, sizeof(struct cnic_iscsi),
- GFP_KERNEL);
+ cp->iscsi_tbl = kzalloc_objs(struct cnic_iscsi, MAX_ISCSI_TBL_SZ,
+ GFP_KERNEL);
if (!cp->iscsi_tbl)
goto error;
- cp->ctx_tbl = kcalloc(cp->max_cid_space, sizeof(struct cnic_context),
- GFP_KERNEL);
+ cp->ctx_tbl = kzalloc_objs(struct cnic_context, cp->max_cid_space,
+ GFP_KERNEL);
if (!cp->ctx_tbl)
goto error;
@@ -4105,8 +4105,8 @@ static int cnic_cm_alloc_mem(struct cnic_dev *dev)
u32 port_id;
int i;
- cp->csk_tbl = kvcalloc(MAX_CM_SK_TBL_SZ, sizeof(struct cnic_sock),
- GFP_KERNEL);
+ cp->csk_tbl = kvzalloc_objs(struct cnic_sock, MAX_CM_SK_TBL_SZ,
+ GFP_KERNEL);
if (!cp->csk_tbl)
return -ENOMEM;
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index 05512aa10c20..a6f8805e1932 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -3083,8 +3083,8 @@ static int bcmgenet_init_dma(struct bcmgenet_priv *priv, bool flush_rx)
/* Initialize common Rx ring structures */
priv->rx_bds = priv->base + priv->hw_params->rdma_offset;
priv->num_rx_bds = TOTAL_DESC;
- priv->rx_cbs = kcalloc(priv->num_rx_bds, sizeof(struct enet_cb),
- GFP_KERNEL);
+ priv->rx_cbs = kzalloc_objs(struct enet_cb, priv->num_rx_bds,
+ GFP_KERNEL);
if (!priv->rx_cbs)
return -ENOMEM;
@@ -3096,8 +3096,8 @@ static int bcmgenet_init_dma(struct bcmgenet_priv *priv, bool flush_rx)
/* Initialize common TX ring structures */
priv->tx_bds = priv->base + priv->hw_params->tdma_offset;
priv->num_tx_bds = TOTAL_DESC;
- priv->tx_cbs = kcalloc(priv->num_tx_bds, sizeof(struct enet_cb),
- GFP_KERNEL);
+ priv->tx_cbs = kzalloc_objs(struct enet_cb, priv->num_tx_bds,
+ GFP_KERNEL);
if (!priv->tx_cbs) {
kfree(priv->rx_cbs);
return -ENOMEM;
diff --git a/drivers/net/ethernet/broadcom/sb1250-mac.c b/drivers/net/ethernet/broadcom/sb1250-mac.c
index 30865fe03eeb..4787ea610edc 100644
--- a/drivers/net/ethernet/broadcom/sb1250-mac.c
+++ b/drivers/net/ethernet/broadcom/sb1250-mac.c
@@ -622,9 +622,9 @@ static void sbdma_initctx(struct sbmacdma *d, struct sbmac_softc *s, int chan,
d->sbdma_maxdescr = maxdescr;
- d->sbdma_dscrtable_unaligned = kcalloc(d->sbdma_maxdescr + 1,
- sizeof(*d->sbdma_dscrtable),
- GFP_KERNEL);
+ d->sbdma_dscrtable_unaligned = kzalloc_objs(*d->sbdma_dscrtable,
+ d->sbdma_maxdescr + 1,
+ GFP_KERNEL);
/*
* The descriptor table must be aligned to at least 16 bytes or the
@@ -642,8 +642,8 @@ static void sbdma_initctx(struct sbmacdma *d, struct sbmac_softc *s, int chan,
* And context table
*/
- d->sbdma_ctxtable = kcalloc(d->sbdma_maxdescr,
- sizeof(*d->sbdma_ctxtable), GFP_KERNEL);
+ d->sbdma_ctxtable = kzalloc_objs(*d->sbdma_ctxtable, d->sbdma_maxdescr,
+ GFP_KERNEL);
#ifdef CONFIG_SBMAC_COALESCE
/*
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
index 75f66587983d..746c95dc11cd 100644
--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -8729,9 +8729,8 @@ static int tg3_mem_tx_acquire(struct tg3 *tp)
tnapi++;
for (i = 0; i < tp->txq_cnt; i++, tnapi++) {
- tnapi->tx_buffers = kcalloc(TG3_TX_RING_SIZE,
- sizeof(struct tg3_tx_ring_info),
- GFP_KERNEL);
+ tnapi->tx_buffers = kzalloc_objs(struct tg3_tx_ring_info,
+ TG3_TX_RING_SIZE, GFP_KERNEL);
if (!tnapi->tx_buffers)
goto err_out;
diff --git a/drivers/net/ethernet/brocade/bna/bnad.c b/drivers/net/ethernet/brocade/bna/bnad.c
index 9bed33295839..ec3750f055b8 100644
--- a/drivers/net/ethernet/brocade/bna/bnad.c
+++ b/drivers/net/ethernet/brocade/bna/bnad.c
@@ -1345,8 +1345,8 @@ bnad_mem_alloc(struct bnad *bnad,
return 0;
}
- mem_info->mdl = kcalloc(mem_info->num, sizeof(struct bna_mem_descr),
- GFP_KERNEL);
+ mem_info->mdl = kzalloc_objs(struct bna_mem_descr, mem_info->num,
+ GFP_KERNEL);
if (mem_info->mdl == NULL)
return -ENOMEM;
@@ -1458,9 +1458,8 @@ bnad_txrx_irq_alloc(struct bnad *bnad, enum bnad_intr_source src,
if (cfg_flags & BNAD_CF_MSIX) {
intr_info->intr_type = BNA_INTR_T_MSIX;
- intr_info->idl = kcalloc(intr_info->num,
- sizeof(struct bna_intr_descr),
- GFP_KERNEL);
+ intr_info->idl = kzalloc_objs(struct bna_intr_descr,
+ intr_info->num, GFP_KERNEL);
if (!intr_info->idl)
return -ENOMEM;
@@ -1484,9 +1483,8 @@ bnad_txrx_irq_alloc(struct bnad *bnad, enum bnad_intr_source src,
} else {
intr_info->intr_type = BNA_INTR_T_INTX;
intr_info->num = 1;
- intr_info->idl = kcalloc(intr_info->num,
- sizeof(struct bna_intr_descr),
- GFP_KERNEL);
+ intr_info->idl = kzalloc_objs(struct bna_intr_descr,
+ intr_info->num, GFP_KERNEL);
if (!intr_info->idl)
return -ENOMEM;
@@ -2642,7 +2640,7 @@ bnad_enable_msix(struct bnad *bnad)
return;
bnad->msix_table =
- kcalloc(bnad->msix_num, sizeof(struct msix_entry), GFP_KERNEL);
+ kzalloc_objs(struct msix_entry, bnad->msix_num, GFP_KERNEL);
if (!bnad->msix_table)
goto intx_mode;
diff --git a/drivers/net/ethernet/brocade/bna/bnad_debugfs.c b/drivers/net/ethernet/brocade/bna/bnad_debugfs.c
index 8f0972e6737c..8a2eb4504760 100644
--- a/drivers/net/ethernet/brocade/bna/bnad_debugfs.c
+++ b/drivers/net/ethernet/brocade/bna/bnad_debugfs.c
@@ -45,7 +45,7 @@ bnad_debugfs_open_fwtrc(struct inode *inode, struct file *file)
unsigned long flags;
int rc;
- fw_debug = kzalloc(sizeof(struct bnad_debug_info), GFP_KERNEL);
+ fw_debug = kzalloc_obj(struct bnad_debug_info, GFP_KERNEL);
if (!fw_debug)
return -ENOMEM;
@@ -85,7 +85,7 @@ bnad_debugfs_open_fwsave(struct inode *inode, struct file *file)
unsigned long flags;
int rc;
- fw_debug = kzalloc(sizeof(struct bnad_debug_info), GFP_KERNEL);
+ fw_debug = kzalloc_obj(struct bnad_debug_info, GFP_KERNEL);
if (!fw_debug)
return -ENOMEM;
@@ -122,7 +122,7 @@ bnad_debugfs_open_reg(struct inode *inode, struct file *file)
{
struct bnad_debug_info *reg_debug;
- reg_debug = kzalloc(sizeof(struct bnad_debug_info), GFP_KERNEL);
+ reg_debug = kzalloc_obj(struct bnad_debug_info, GFP_KERNEL);
if (!reg_debug)
return -ENOMEM;
@@ -185,7 +185,7 @@ bnad_debugfs_open_drvinfo(struct inode *inode, struct file *file)
struct bnad_debug_info *drv_info;
int rc;
- drv_info = kzalloc(sizeof(struct bnad_debug_info), GFP_KERNEL);
+ drv_info = kzalloc_obj(struct bnad_debug_info, GFP_KERNEL);
if (!drv_info)
return -ENOMEM;
diff --git a/drivers/net/ethernet/brocade/bna/bnad_ethtool.c b/drivers/net/ethernet/brocade/bna/bnad_ethtool.c
index 216e25f26dbb..446234e3ca53 100644
--- a/drivers/net/ethernet/brocade/bna/bnad_ethtool.c
+++ b/drivers/net/ethernet/brocade/bna/bnad_ethtool.c
@@ -285,7 +285,7 @@ bnad_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo)
strscpy(drvinfo->driver, BNAD_NAME, sizeof(drvinfo->driver));
- ioc_attr = kzalloc(sizeof(*ioc_attr), GFP_KERNEL);
+ ioc_attr = kzalloc_obj(*ioc_attr, GFP_KERNEL);
if (ioc_attr) {
spin_lock_irqsave(&bnad->bna_lock, flags);
bfa_nw_ioc_get_attr(&bnad->bna.ioceth.ioc, ioc_attr);
@@ -900,7 +900,7 @@ bnad_get_flash_partition_by_offset(struct bnad *bnad, u32 offset,
u32 i, flash_part = 0, ret;
unsigned long flags = 0;
- flash_attr = kzalloc(sizeof(struct bfa_flash_attr), GFP_KERNEL);
+ flash_attr = kzalloc_obj(struct bfa_flash_attr, GFP_KERNEL);
if (!flash_attr)
return 0;
diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index 43cd013bb70e..86f516563db6 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -3734,7 +3734,7 @@ static int gem_add_flow_filter(struct net_device *netdev,
int ret = -EINVAL;
bool added = false;
- newfs = kmalloc(sizeof(*newfs), GFP_KERNEL);
+ newfs = kmalloc_obj(*newfs, GFP_KERNEL);
if (newfs == NULL)
return -ENOMEM;
memcpy(&newfs->fs, fs, sizeof(newfs->fs));
diff --git a/drivers/net/ethernet/calxeda/xgmac.c b/drivers/net/ethernet/calxeda/xgmac.c
index 331ac6a3dc38..283948d784da 100644
--- a/drivers/net/ethernet/calxeda/xgmac.c
+++ b/drivers/net/ethernet/calxeda/xgmac.c
@@ -729,8 +729,8 @@ static int xgmac_dma_desc_rings_init(struct net_device *dev)
netdev_dbg(priv->dev, "mtu [%d] bfsize [%d]\n", dev->mtu, bfsize);
- priv->rx_skbuff = kcalloc(DMA_RX_RING_SZ, sizeof(struct sk_buff *),
- GFP_KERNEL);
+ priv->rx_skbuff = kzalloc_objs(struct sk_buff *, DMA_RX_RING_SZ,
+ GFP_KERNEL);
if (!priv->rx_skbuff)
return -ENOMEM;
@@ -742,8 +742,8 @@ static int xgmac_dma_desc_rings_init(struct net_device *dev)
if (!priv->dma_rx)
goto err_dma_rx;
- priv->tx_skbuff = kcalloc(DMA_TX_RING_SZ, sizeof(struct sk_buff *),
- GFP_KERNEL);
+ priv->tx_skbuff = kzalloc_objs(struct sk_buff *, DMA_TX_RING_SZ,
+ GFP_KERNEL);
if (!priv->tx_skbuff)
goto err_tx_skb;
diff --git a/drivers/net/ethernet/cavium/liquidio/lio_core.c b/drivers/net/ethernet/cavium/liquidio/lio_core.c
index 215dac201b4a..baccb0169068 100644
--- a/drivers/net/ethernet/cavium/liquidio/lio_core.c
+++ b/drivers/net/ethernet/cavium/liquidio/lio_core.c
@@ -89,12 +89,12 @@ int lio_setup_glists(struct octeon_device *oct, struct lio *lio, int num_iqs)
int i, j;
lio->glist_lock =
- kcalloc(num_iqs, sizeof(*lio->glist_lock), GFP_KERNEL);
+ kzalloc_objs(*lio->glist_lock, num_iqs, GFP_KERNEL);
if (!lio->glist_lock)
return -ENOMEM;
lio->glist =
- kcalloc(num_iqs, sizeof(*lio->glist), GFP_KERNEL);
+ kzalloc_objs(*lio->glist, num_iqs, GFP_KERNEL);
if (!lio->glist) {
kfree(lio->glist_lock);
lio->glist_lock = NULL;
@@ -107,10 +107,10 @@ int lio_setup_glists(struct octeon_device *oct, struct lio *lio, int num_iqs)
/* allocate memory to store virtual and dma base address of
* per glist consistent memory
*/
- lio->glists_virt_base = kcalloc(num_iqs, sizeof(*lio->glists_virt_base),
- GFP_KERNEL);
- lio->glists_dma_base = kcalloc(num_iqs, sizeof(*lio->glists_dma_base),
- GFP_KERNEL);
+ lio->glists_virt_base = kzalloc_objs(*lio->glists_virt_base, num_iqs,
+ GFP_KERNEL);
+ lio->glists_dma_base = kzalloc_objs(*lio->glists_dma_base, num_iqs,
+ GFP_KERNEL);
if (!lio->glists_virt_base || !lio->glists_dma_base) {
lio_delete_glists(lio);
@@ -138,7 +138,7 @@ int lio_setup_glists(struct octeon_device *oct, struct lio *lio, int num_iqs)
g = kzalloc_node(sizeof(*g), GFP_KERNEL,
numa_node);
if (!g)
- g = kzalloc(sizeof(*g), GFP_KERNEL);
+ g = kzalloc_obj(*g, GFP_KERNEL);
if (!g)
break;
@@ -1051,9 +1051,8 @@ int octeon_setup_interrupt(struct octeon_device *oct, u32 num_ioqs)
aux_irq_name = &queue_irq_names
[IRQ_NAME_OFF(MAX_IOQ_INTERRUPTS_PER_PF)];
- oct->msix_entries = kcalloc(oct->num_msix_irqs,
- sizeof(struct msix_entry),
- GFP_KERNEL);
+ oct->msix_entries = kzalloc_objs(struct msix_entry,
+ oct->num_msix_irqs, GFP_KERNEL);
if (!oct->msix_entries) {
dev_err(&oct->pci_dev->dev, "Memory Alloc failed...\n");
kfree(oct->irq_name_storage);
diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_device.c b/drivers/net/ethernet/cavium/liquidio/octeon_device.c
index 1753bb87dfbd..e61f18467a15 100644
--- a/drivers/net/ethernet/cavium/liquidio/octeon_device.c
+++ b/drivers/net/ethernet/cavium/liquidio/octeon_device.c
@@ -1164,7 +1164,7 @@ octeon_register_dispatch_fn(struct octeon_device *oct,
dev_dbg(&oct->pci_dev->dev,
"Adding opcode to dispatch list linked list\n");
- dispatch = kmalloc(sizeof(*dispatch), GFP_KERNEL);
+ dispatch = kmalloc_obj(*dispatch, GFP_KERNEL);
if (!dispatch)
return 1;
diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_main.c b/drivers/net/ethernet/cavium/thunder/nicvf_main.c
index 0b6e30a8feb0..7ef2a9f606a1 100644
--- a/drivers/net/ethernet/cavium/thunder/nicvf_main.c
+++ b/drivers/net/ethernet/cavium/thunder/nicvf_main.c
@@ -1465,7 +1465,7 @@ int nicvf_open(struct net_device *netdev)
/* Register NAPI handler for processing CQEs */
for (qidx = 0; qidx < qs->cq_cnt; qidx++) {
- cq_poll = kzalloc(sizeof(*cq_poll), GFP_KERNEL);
+ cq_poll = kzalloc_obj(*cq_poll, GFP_KERNEL);
if (!cq_poll) {
err = -ENOMEM;
goto napi_del;
@@ -2052,9 +2052,9 @@ static void nicvf_set_rx_mode(struct net_device *netdev)
mode |= BGX_XCAST_MCAST_FILTER;
/* here we need to copy mc addrs */
if (netdev_mc_count(netdev)) {
- mc_list = kmalloc(struct_size(mc_list, mc,
- netdev_mc_count(netdev)),
- GFP_ATOMIC);
+ mc_list = kmalloc_flex(*mc_list, mc,
+ netdev_mc_count(netdev),
+ GFP_ATOMIC);
if (unlikely(!mc_list))
return;
mc_list->count = 0;
diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
index 5211759bfe47..12bea0b6a4e6 100644
--- a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
+++ b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
@@ -289,8 +289,7 @@ static int nicvf_init_rbdr(struct nicvf *nic, struct rbdr *rbdr,
rbdr->is_xdp = true;
}
rbdr->pgcnt = roundup_pow_of_two(rbdr->pgcnt);
- rbdr->pgcache = kcalloc(rbdr->pgcnt, sizeof(*rbdr->pgcache),
- GFP_KERNEL);
+ rbdr->pgcache = kzalloc_objs(*rbdr->pgcache, rbdr->pgcnt, GFP_KERNEL);
if (!rbdr->pgcache)
return -ENOMEM;
rbdr->pgidx = 0;
diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
index 9efb60842ad1..87723e4140b0 100644
--- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
+++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
@@ -1086,8 +1086,7 @@ static int bgx_lmac_enable(struct bgx *bgx, u8 lmacid)
/* actual number of filters available to exact LMAC */
lmac->dmacs_count = (RX_DMAC_COUNT / bgx->lmac_count);
- lmac->dmacs = kcalloc(lmac->dmacs_count, sizeof(*lmac->dmacs),
- GFP_KERNEL);
+ lmac->dmacs = kzalloc_objs(*lmac->dmacs, lmac->dmacs_count, GFP_KERNEL);
if (!lmac->dmacs)
return -ENOMEM;
diff --git a/drivers/net/ethernet/chelsio/cxgb/espi.c b/drivers/net/ethernet/chelsio/cxgb/espi.c
index ef70569435be..a7dd518b6ea9 100644
--- a/drivers/net/ethernet/chelsio/cxgb/espi.c
+++ b/drivers/net/ethernet/chelsio/cxgb/espi.c
@@ -280,7 +280,7 @@ void t1_espi_destroy(struct peespi *espi)
struct peespi *t1_espi_create(adapter_t *adapter)
{
- struct peespi *espi = kzalloc(sizeof(*espi), GFP_KERNEL);
+ struct peespi *espi = kzalloc_obj(*espi, GFP_KERNEL);
if (espi)
espi->adapter = adapter;
diff --git a/drivers/net/ethernet/chelsio/cxgb/mv88e1xxx.c b/drivers/net/ethernet/chelsio/cxgb/mv88e1xxx.c
index 30b003484fc1..4c4a43828110 100644
--- a/drivers/net/ethernet/chelsio/cxgb/mv88e1xxx.c
+++ b/drivers/net/ethernet/chelsio/cxgb/mv88e1xxx.c
@@ -358,7 +358,7 @@ static struct cphy *mv88e1xxx_phy_create(struct net_device *dev, int phy_addr,
const struct mdio_ops *mdio_ops)
{
struct adapter *adapter = netdev_priv(dev);
- struct cphy *cphy = kzalloc(sizeof(*cphy), GFP_KERNEL);
+ struct cphy *cphy = kzalloc_obj(*cphy, GFP_KERNEL);
if (!cphy)
return NULL;
diff --git a/drivers/net/ethernet/chelsio/cxgb/mv88x201x.c b/drivers/net/ethernet/chelsio/cxgb/mv88x201x.c
index 556c8ad68fa8..8c3d3250b72c 100644
--- a/drivers/net/ethernet/chelsio/cxgb/mv88x201x.c
+++ b/drivers/net/ethernet/chelsio/cxgb/mv88x201x.c
@@ -203,7 +203,7 @@ static struct cphy *mv88x201x_phy_create(struct net_device *dev, int phy_addr,
const struct mdio_ops *mdio_ops)
{
u32 val;
- struct cphy *cphy = kzalloc(sizeof(*cphy), GFP_KERNEL);
+ struct cphy *cphy = kzalloc_obj(*cphy, GFP_KERNEL);
if (!cphy)
return NULL;
diff --git a/drivers/net/ethernet/chelsio/cxgb/my3126.c b/drivers/net/ethernet/chelsio/cxgb/my3126.c
index 60aa45b375b6..9d29f0767dcb 100644
--- a/drivers/net/ethernet/chelsio/cxgb/my3126.c
+++ b/drivers/net/ethernet/chelsio/cxgb/my3126.c
@@ -171,7 +171,7 @@ static const struct cphy_ops my3126_ops = {
static struct cphy *my3126_phy_create(struct net_device *dev,
int phy_addr, const struct mdio_ops *mdio_ops)
{
- struct cphy *cphy = kzalloc(sizeof (*cphy), GFP_KERNEL);
+ struct cphy *cphy = kzalloc_obj(*cphy, GFP_KERNEL);
if (!cphy)
return NULL;
diff --git a/drivers/net/ethernet/chelsio/cxgb/sge.c b/drivers/net/ethernet/chelsio/cxgb/sge.c
index 5f354cf62cdd..21d7f84af72e 100644
--- a/drivers/net/ethernet/chelsio/cxgb/sge.c
+++ b/drivers/net/ethernet/chelsio/cxgb/sge.c
@@ -366,7 +366,7 @@ static int tx_sched_init(struct sge *sge)
struct sched *s;
int i;
- s = kzalloc(sizeof (struct sched), GFP_KERNEL);
+ s = kzalloc_obj(struct sched, GFP_KERNEL);
if (!s)
return -ENOMEM;
@@ -2095,7 +2095,7 @@ static void espibug_workaround(struct timer_list *t)
*/
struct sge *t1_sge_create(struct adapter *adapter, struct sge_params *p)
{
- struct sge *sge = kzalloc(sizeof(*sge), GFP_KERNEL);
+ struct sge *sge = kzalloc_obj(*sge, GFP_KERNEL);
int i;
if (!sge)
diff --git a/drivers/net/ethernet/chelsio/cxgb/tp.c b/drivers/net/ethernet/chelsio/cxgb/tp.c
index 4337cee0763e..66dfe57b9f01 100644
--- a/drivers/net/ethernet/chelsio/cxgb/tp.c
+++ b/drivers/net/ethernet/chelsio/cxgb/tp.c
@@ -58,7 +58,7 @@ void t1_tp_destroy(struct petp *tp)
struct petp *t1_tp_create(adapter_t *adapter, struct tp_params *p)
{
- struct petp *tp = kzalloc(sizeof(*tp), GFP_KERNEL);
+ struct petp *tp = kzalloc_obj(*tp, GFP_KERNEL);
if (!tp)
return NULL;
diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
index 3b1321c8ed14..ce9880805a42 100644
--- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
@@ -3242,7 +3242,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
mmio_len = pci_resource_len(pdev, 0);
ai = t3_get_adapter_info(ent->driver_data);
- adapter = kzalloc(sizeof(*adapter), GFP_KERNEL);
+ adapter = kzalloc_obj(*adapter, GFP_KERNEL);
if (!adapter) {
err = -ENOMEM;
goto out_release_regions;
diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c
index 5a9f6925e1fa..cf8916f4e3d6 100644
--- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c
+++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c
@@ -1185,7 +1185,7 @@ int cxgb3_offload_activate(struct adapter *adapter)
unsigned int l2t_capacity;
struct l2t_data *l2td;
- t = kzalloc(sizeof(*t), GFP_KERNEL);
+ t = kzalloc_obj(*t, GFP_KERNEL);
if (!t)
return -ENOMEM;
diff --git a/drivers/net/ethernet/chelsio/cxgb3/l2t.c b/drivers/net/ethernet/chelsio/cxgb3/l2t.c
index 5d5f3380ecca..6bcb952fe832 100644
--- a/drivers/net/ethernet/chelsio/cxgb3/l2t.c
+++ b/drivers/net/ethernet/chelsio/cxgb3/l2t.c
@@ -408,7 +408,7 @@ struct l2t_data *t3_init_l2t(unsigned int l2t_capacity)
struct l2t_data *d;
int i;
- d = kvzalloc(struct_size(d, l2tab, l2t_capacity), GFP_KERNEL);
+ d = kvzalloc_flex(*d, l2tab, l2t_capacity, GFP_KERNEL);
if (!d)
return NULL;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c b/drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c
index 5060d3998889..fb958857bfd6 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c
@@ -287,7 +287,7 @@ struct clip_tbl *t4_init_clip_tbl(unsigned int clipt_start,
if (clipt_size < CLIPT_MIN_HASH_BUCKETS)
return NULL;
- ctbl = kvzalloc(struct_size(ctbl, hash_list, clipt_size), GFP_KERNEL);
+ ctbl = kvzalloc_flex(*ctbl, hash_list, clipt_size, GFP_KERNEL);
if (!ctbl)
return NULL;
@@ -301,7 +301,7 @@ struct clip_tbl *t4_init_clip_tbl(unsigned int clipt_start,
for (i = 0; i < ctbl->clipt_size; ++i)
INIT_LIST_HEAD(&ctbl->hash_list[i]);
- cl_list = kvcalloc(clipt_size, sizeof(struct clip_entry), GFP_KERNEL);
+ cl_list = kvzalloc_objs(struct clip_entry, clipt_size, GFP_KERNEL);
if (!cl_list) {
kvfree(ctbl);
return NULL;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
index 14e0d989c3ba..6e2e5644b825 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
@@ -860,7 +860,7 @@ static int cctrl_tbl_show(struct seq_file *seq, void *v)
u16 (*incr)[NCCTRL_WIN];
struct adapter *adap = seq->private;
- incr = kmalloc_array(NMTUS, sizeof(*incr), GFP_KERNEL);
+ incr = kmalloc_objs(*incr, NMTUS, GFP_KERNEL);
if (!incr)
return -ENOMEM;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c
index faf8f7e86520..3c66db1f765a 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c
@@ -2250,13 +2250,12 @@ int cxgb4_init_ethtool_filters(struct adapter *adap)
u32 nentries, i;
int ret;
- eth_filter = kzalloc(sizeof(*eth_filter), GFP_KERNEL);
+ eth_filter = kzalloc_obj(*eth_filter, GFP_KERNEL);
if (!eth_filter)
return -ENOMEM;
- eth_filter_info = kcalloc(adap->params.nports,
- sizeof(*eth_filter_info),
- GFP_KERNEL);
+ eth_filter_info = kzalloc_objs(*eth_filter_info, adap->params.nports,
+ GFP_KERNEL);
if (!eth_filter_info) {
ret = -ENOMEM;
goto free_eth_filter;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
index dd9e68465e69..dad0e72a52ab 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
@@ -1389,7 +1389,7 @@ static int cxgb4_set_hash_filter(struct net_device *dev,
if (iq < 0)
return iq;
- f = kzalloc(sizeof(*f), GFP_KERNEL);
+ f = kzalloc_obj(*f, GFP_KERNEL);
if (!f)
return -ENOMEM;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
index 043733c5c812..20eeb4deab49 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
@@ -388,7 +388,7 @@ static int cxgb4_mac_sync(struct net_device *netdev, const u8 *mac_addr)
* list and program it
*/
if (uhash || mhash) {
- new_entry = kzalloc(sizeof(*new_entry), GFP_ATOMIC);
+ new_entry = kzalloc_obj(*new_entry, GFP_ATOMIC);
if (!new_entry)
return -ENOMEM;
ether_addr_copy(new_entry->addr, mac_addr);
@@ -478,7 +478,7 @@ int cxgb4_change_mac(struct port_info *pi, unsigned int viid,
goto set_hash;
}
}
- new_entry = kzalloc(sizeof(*new_entry), GFP_KERNEL);
+ new_entry = kzalloc_obj(*new_entry, GFP_KERNEL);
if (!new_entry)
return -ENOMEM;
ether_addr_copy(new_entry->addr, addr);
@@ -1330,7 +1330,7 @@ static int cxgb4_port_mirror_alloc_queues(struct net_device *dev)
if (s->mirror_rxq[pi->port_id])
return 0;
- mirror_rxq = kcalloc(pi->nmirrorqsets, sizeof(*mirror_rxq), GFP_KERNEL);
+ mirror_rxq = kzalloc_objs(*mirror_rxq, pi->nmirrorqsets, GFP_KERNEL);
if (!mirror_rxq)
return -ENOMEM;
@@ -4057,7 +4057,7 @@ static int adap_config_hma(struct adapter *adapter)
page_size = HMA_PAGE_SIZE;
page_order = HMA_PAGE_ORDER;
- adapter->hma.sgt = kzalloc(sizeof(*adapter->hma.sgt), GFP_KERNEL);
+ adapter->hma.sgt = kzalloc_obj(*adapter->hma.sgt, GFP_KERNEL);
if (unlikely(!adapter->hma.sgt)) {
dev_err(adapter->pdev_dev, "HMA SG table allocation failed\n");
return -ENOMEM;
@@ -4097,8 +4097,7 @@ static int adap_config_hma(struct adapter *adapter)
}
adapter->hma.flags |= HMA_DMA_MAPPED_FLAG;
- adapter->hma.phy_addr = kcalloc(sgt->nents, sizeof(dma_addr_t),
- GFP_KERNEL);
+ adapter->hma.phy_addr = kzalloc_objs(dma_addr_t, sgt->nents, GFP_KERNEL);
if (unlikely(!adapter->hma.phy_addr))
goto free_hma;
@@ -4812,7 +4811,7 @@ static int adap_init0(struct adapter *adap, int vpd_skip)
/* allocate memory to read the header of the firmware on the
* card
*/
- card_fw = kvzalloc(sizeof(*card_fw), GFP_KERNEL);
+ card_fw = kvzalloc_obj(*card_fw, GFP_KERNEL);
if (!card_fw) {
ret = -ENOMEM;
goto bye;
@@ -5022,15 +5021,15 @@ static int adap_init0(struct adapter *adap, int vpd_skip)
adap->sge.egr_sz = val[0] - adap->sge.egr_start + 1;
adap->sge.ingr_sz = val[1] - adap->sge.ingr_start + 1;
- adap->sge.egr_map = kcalloc(adap->sge.egr_sz,
- sizeof(*adap->sge.egr_map), GFP_KERNEL);
+ adap->sge.egr_map = kzalloc_objs(*adap->sge.egr_map, adap->sge.egr_sz,
+ GFP_KERNEL);
if (!adap->sge.egr_map) {
ret = -ENOMEM;
goto bye;
}
- adap->sge.ingr_map = kcalloc(adap->sge.ingr_sz,
- sizeof(*adap->sge.ingr_map), GFP_KERNEL);
+ adap->sge.ingr_map = kzalloc_objs(*adap->sge.ingr_map,
+ adap->sge.ingr_sz, GFP_KERNEL);
if (!adap->sge.ingr_map) {
ret = -ENOMEM;
goto bye;
@@ -5836,7 +5835,7 @@ static int alloc_msix_info(struct adapter *adap, u32 num_vec)
{
struct msix_info *msix_info;
- msix_info = kcalloc(num_vec, sizeof(*msix_info), GFP_KERNEL);
+ msix_info = kzalloc_objs(*msix_info, num_vec, GFP_KERNEL);
if (!msix_info)
return -ENOMEM;
@@ -5935,7 +5934,7 @@ static int enable_msix(struct adapter *adap)
want += EXTRA_VECS;
need += EXTRA_VECS;
- entries = kmalloc_array(want, sizeof(*entries), GFP_KERNEL);
+ entries = kmalloc_objs(*entries, want, GFP_KERNEL);
if (!entries)
return -ENOMEM;
@@ -6350,8 +6349,9 @@ static int cxgb4_iov_configure(struct pci_dev *pdev, int num_vfs)
return err;
}
/* Allocate and set up VF Information. */
- adap->vfinfo = kcalloc(pci_sriov_get_totalvfs(pdev),
- sizeof(struct vf_info), GFP_KERNEL);
+ adap->vfinfo = kzalloc_objs(struct vf_info,
+ pci_sriov_get_totalvfs(pdev),
+ GFP_KERNEL);
if (!adap->vfinfo) {
unregister_netdev(adap->port[0]);
free_netdev(adap->port[0]);
@@ -6604,7 +6604,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
goto out_disable_device;
}
- adapter = kzalloc(sizeof(*adapter), GFP_KERNEL);
+ adapter = kzalloc_obj(*adapter, GFP_KERNEL);
if (!adapter) {
err = -ENOMEM;
goto out_unmap_bar0;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_mps.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_mps.c
index 60f4d5b5eb3a..94c8ce39310b 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_mps.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_mps.c
@@ -42,7 +42,7 @@ static int cxgb4_mps_ref_inc(struct adapter *adap, const u8 *mac_addr,
goto unlock;
}
}
- mps_entry = kzalloc(sizeof(*mps_entry), GFP_ATOMIC);
+ mps_entry = kzalloc_obj(*mps_entry, GFP_ATOMIC);
if (!mps_entry) {
ret = -ENOMEM;
goto unlock;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c
index e2b5554531b5..79db92f3ba62 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c
@@ -145,7 +145,7 @@ static void cxgb4_action_natmode_tweak(struct ch_filter_specification *fs,
static struct ch_tc_flower_entry *allocate_flower_entry(void)
{
- struct ch_tc_flower_entry *new = kzalloc(sizeof(*new), GFP_KERNEL);
+ struct ch_tc_flower_entry *new = kzalloc_obj(*new, GFP_KERNEL);
if (new)
spin_lock_init(&new->lock);
return new;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_matchall.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_matchall.c
index f8dcf0b4abcd..4d53744b2130 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_matchall.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_matchall.c
@@ -531,13 +531,12 @@ int cxgb4_init_tc_matchall(struct adapter *adap)
struct cxgb4_tc_matchall *tc_matchall;
int ret;
- tc_matchall = kzalloc(sizeof(*tc_matchall), GFP_KERNEL);
+ tc_matchall = kzalloc_obj(*tc_matchall, GFP_KERNEL);
if (!tc_matchall)
return -ENOMEM;
- tc_port_matchall = kcalloc(adap->params.nports,
- sizeof(*tc_port_matchall),
- GFP_KERNEL);
+ tc_port_matchall = kzalloc_objs(*tc_port_matchall, adap->params.nports,
+ GFP_KERNEL);
if (!tc_port_matchall) {
ret = -ENOMEM;
goto out_free_matchall;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c
index a2dcd2e24263..9d07540e2955 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_mqprio.c
@@ -100,8 +100,7 @@ static int cxgb4_init_eosw_txq(struct net_device *dev,
memset(eosw_txq, 0, sizeof(*eosw_txq));
- ring = kcalloc(CXGB4_EOSW_TXQ_DEFAULT_DESC_NUM,
- sizeof(*ring), GFP_KERNEL);
+ ring = kzalloc_objs(*ring, CXGB4_EOSW_TXQ_DEFAULT_DESC_NUM, GFP_KERNEL);
if (!ring)
return -ENOMEM;
@@ -157,15 +156,13 @@ static int cxgb4_mqprio_alloc_hw_resources(struct net_device *dev)
/* Allocate ETHOFLD hardware queue structures if not done already */
if (!refcount_read(&adap->tc_mqprio->refcnt)) {
- adap->sge.eohw_rxq = kcalloc(adap->sge.eoqsets,
- sizeof(struct sge_ofld_rxq),
- GFP_KERNEL);
+ adap->sge.eohw_rxq = kzalloc_objs(struct sge_ofld_rxq,
+ adap->sge.eoqsets, GFP_KERNEL);
if (!adap->sge.eohw_rxq)
return -ENOMEM;
- adap->sge.eohw_txq = kcalloc(adap->sge.eoqsets,
- sizeof(struct sge_eohw_txq),
- GFP_KERNEL);
+ adap->sge.eohw_txq = kzalloc_objs(struct sge_eohw_txq,
+ adap->sge.eoqsets, GFP_KERNEL);
if (!adap->sge.eohw_txq) {
kfree(adap->sge.eohw_rxq);
return -ENOMEM;
@@ -657,12 +654,12 @@ int cxgb4_init_tc_mqprio(struct adapter *adap)
int ret = 0;
u8 i;
- tc_mqprio = kzalloc(sizeof(*tc_mqprio), GFP_KERNEL);
+ tc_mqprio = kzalloc_obj(*tc_mqprio, GFP_KERNEL);
if (!tc_mqprio)
return -ENOMEM;
- tc_port_mqprio = kcalloc(adap->params.nports, sizeof(*tc_port_mqprio),
- GFP_KERNEL);
+ tc_port_mqprio = kzalloc_objs(*tc_port_mqprio, adap->params.nports,
+ GFP_KERNEL);
if (!tc_port_mqprio) {
ret = -ENOMEM;
goto out_free_mqprio;
@@ -673,8 +670,8 @@ int cxgb4_init_tc_mqprio(struct adapter *adap)
tc_mqprio->port_mqprio = tc_port_mqprio;
for (i = 0; i < adap->params.nports; i++) {
port_mqprio = &tc_mqprio->port_mqprio[i];
- eosw_txq = kcalloc(adap->tids.neotids, sizeof(*eosw_txq),
- GFP_KERNEL);
+ eosw_txq = kzalloc_objs(*eosw_txq, adap->tids.neotids,
+ GFP_KERNEL);
if (!eosw_txq) {
ret = -ENOMEM;
goto out_free_ports;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
index 8524246fd67e..dbfa657c04b9 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.c
@@ -501,7 +501,7 @@ struct cxgb4_tc_u32_table *cxgb4_init_tc_u32(struct adapter *adap)
if (!max_tids)
return NULL;
- t = kvzalloc(struct_size(t, table, max_tids), GFP_KERNEL);
+ t = kvzalloc_flex(*t, table, max_tids, GFP_KERNEL);
if (!t)
return NULL;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c
index 5c13bcb4550d..c1fe70fc3286 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c
@@ -241,7 +241,7 @@ static int cfg_queues_uld(struct adapter *adap, unsigned int uld_type,
struct sge_uld_rxq_info *rxq_info;
int i, nrxq, ciq_size;
- rxq_info = kzalloc(sizeof(*rxq_info), GFP_KERNEL);
+ rxq_info = kzalloc_obj(*rxq_info, GFP_KERNEL);
if (!rxq_info)
return -ENOMEM;
@@ -269,8 +269,7 @@ static int cfg_queues_uld(struct adapter *adap, unsigned int uld_type,
}
nrxq = rxq_info->nrxq + rxq_info->nciq; /* total rxq's */
- rxq_info->uldrxq = kcalloc(nrxq, sizeof(struct sge_ofld_rxq),
- GFP_KERNEL);
+ rxq_info->uldrxq = kzalloc_objs(struct sge_ofld_rxq, nrxq, GFP_KERNEL);
if (!rxq_info->uldrxq) {
kfree(rxq_info);
return -ENOMEM;
@@ -472,7 +471,7 @@ setup_sge_txq_uld(struct adapter *adap, unsigned int uld_type,
(atomic_inc_return(&txq_info->users) > 1))
return 0;
- txq_info = kzalloc(sizeof(*txq_info), GFP_KERNEL);
+ txq_info = kzalloc_obj(*txq_info, GFP_KERNEL);
if (!txq_info)
return -ENOMEM;
if (uld_type == CXGB4_ULD_CRYPTO) {
@@ -489,8 +488,8 @@ setup_sge_txq_uld(struct adapter *adap, unsigned int uld_type,
i = min_t(int, uld_info->ntxq, num_online_cpus());
txq_info->ntxq = roundup(i, adap->params.nports);
}
- txq_info->uldtxq = kcalloc(txq_info->ntxq, sizeof(struct sge_uld_txq),
- GFP_KERNEL);
+ txq_info->uldtxq = kzalloc_objs(struct sge_uld_txq, txq_info->ntxq,
+ GFP_KERNEL);
if (!txq_info->uldtxq) {
kfree(txq_info);
return -ENOMEM;
@@ -525,19 +524,17 @@ int t4_uld_mem_alloc(struct adapter *adap)
{
struct sge *s = &adap->sge;
- adap->uld = kcalloc(CXGB4_ULD_MAX, sizeof(*adap->uld), GFP_KERNEL);
+ adap->uld = kzalloc_objs(*adap->uld, CXGB4_ULD_MAX, GFP_KERNEL);
if (!adap->uld)
return -ENOMEM;
- s->uld_rxq_info = kcalloc(CXGB4_ULD_MAX,
- sizeof(struct sge_uld_rxq_info *),
- GFP_KERNEL);
+ s->uld_rxq_info = kzalloc_objs(struct sge_uld_rxq_info *, CXGB4_ULD_MAX,
+ GFP_KERNEL);
if (!s->uld_rxq_info)
goto err_uld;
- s->uld_txq_info = kcalloc(CXGB4_TX_MAX,
- sizeof(struct sge_uld_txq_info *),
- GFP_KERNEL);
+ s->uld_txq_info = kzalloc_objs(struct sge_uld_txq_info *, CXGB4_TX_MAX,
+ GFP_KERNEL);
if (!s->uld_txq_info)
goto err_uld_rx;
return 0;
@@ -805,7 +802,7 @@ void cxgb4_register_uld(enum cxgb4_uld type,
if (type >= CXGB4_ULD_MAX)
return;
- uld_entry = kzalloc(sizeof(*uld_entry), GFP_KERNEL);
+ uld_entry = kzalloc_obj(*uld_entry, GFP_KERNEL);
if (!uld_entry)
return;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/l2t.c b/drivers/net/ethernet/chelsio/cxgb4/l2t.c
index c02b4e9c06b2..1e2a6bac25ba 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/l2t.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/l2t.c
@@ -620,7 +620,7 @@ struct l2t_data *t4_init_l2t(unsigned int l2t_start, unsigned int l2t_end)
if (l2t_size < L2T_MIN_HASH_BUCKETS)
return NULL;
- d = kvzalloc(struct_size(d, l2tab, l2t_size), GFP_KERNEL);
+ d = kvzalloc_flex(*d, l2tab, l2t_size, GFP_KERNEL);
if (!d)
return NULL;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/sched.c b/drivers/net/ethernet/chelsio/cxgb4/sched.c
index 38a30aeee122..8e73a5c49529 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/sched.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/sched.c
@@ -225,7 +225,7 @@ static int t4_sched_queue_bind(struct port_info *pi, struct ch_sched_queue *p)
if (p->queue < 0 || p->queue >= pi->nqsets)
return -ERANGE;
- qe = kvzalloc(sizeof(struct sched_queue_entry), GFP_KERNEL);
+ qe = kvzalloc_obj(struct sched_queue_entry, GFP_KERNEL);
if (!qe)
return -ENOMEM;
@@ -294,7 +294,7 @@ static int t4_sched_flowc_bind(struct port_info *pi, struct ch_sched_flowc *p)
if (p->tid < 0 || p->tid >= adap->tids.neotids)
return -ERANGE;
- fe = kvzalloc(sizeof(*fe), GFP_KERNEL);
+ fe = kvzalloc_obj(*fe, GFP_KERNEL);
if (!fe)
return -ENOMEM;
@@ -653,7 +653,7 @@ struct sched_table *t4_init_sched(unsigned int sched_size)
struct sched_table *s;
unsigned int i;
- s = kvzalloc(struct_size(s, tab, sched_size), GFP_KERNEL);
+ s = kvzalloc_flex(*s, tab, sched_size, GFP_KERNEL);
if (!s)
return NULL;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/smt.c b/drivers/net/ethernet/chelsio/cxgb4/smt.c
index e617e4aabbcc..315c7605622f 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/smt.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/smt.c
@@ -47,7 +47,7 @@ struct smt_data *t4_init_smt(void)
smt_size = SMT_SIZE;
- s = kvzalloc(struct_size(s, smtab, smt_size), GFP_KERNEL);
+ s = kvzalloc_flex(*s, smtab, smt_size, GFP_KERNEL);
if (!s)
return NULL;
s->smt_size = smt_size;
diff --git a/drivers/net/ethernet/chelsio/cxgb4/srq.c b/drivers/net/ethernet/chelsio/cxgb4/srq.c
index a77d6ac1ee8c..1f7e2dece66c 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/srq.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/srq.c
@@ -40,7 +40,7 @@ struct srq_data *t4_init_srq(int srq_size)
{
struct srq_data *s;
- s = kvzalloc(sizeof(*s), GFP_KERNEL);
+ s = kvzalloc_obj(*s, GFP_KERNEL);
if (!s)
return NULL;
diff --git a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
index 2fbe0f059a0b..592f736f6c85 100644
--- a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
@@ -288,7 +288,7 @@ static int cxgb4vf_change_mac(struct port_info *pi, unsigned int viid,
goto set_hash;
}
}
- new_entry = kzalloc(sizeof(*new_entry), GFP_KERNEL);
+ new_entry = kzalloc_obj(*new_entry, GFP_KERNEL);
if (!new_entry)
return -ENOMEM;
ether_addr_copy(new_entry->addr, addr);
@@ -953,7 +953,7 @@ static int cxgb4vf_mac_sync(struct net_device *netdev, const u8 *mac_addr)
* list and program it
*/
if (uhash || mhash) {
- new_entry = kzalloc(sizeof(*new_entry), GFP_ATOMIC);
+ new_entry = kzalloc_obj(*new_entry, GFP_ATOMIC);
if (!new_entry)
return -ENOMEM;
ether_addr_copy(new_entry->addr, mac_addr);
@@ -2935,7 +2935,7 @@ static int cxgb4vf_pci_probe(struct pci_dev *pdev,
/*
* Allocate our adapter data structure and attach it to the device.
*/
- adapter = kzalloc(sizeof(*adapter), GFP_KERNEL);
+ adapter = kzalloc_obj(*adapter, GFP_KERNEL);
if (!adapter) {
err = -ENOMEM;
goto err_release_regions;
diff --git a/drivers/net/ethernet/chelsio/inline_crypto/ch_ipsec/chcr_ipsec.c b/drivers/net/ethernet/chelsio/inline_crypto/ch_ipsec/chcr_ipsec.c
index 074717d4bb16..e89150c0f2c7 100644
--- a/drivers/net/ethernet/chelsio/inline_crypto/ch_ipsec/chcr_ipsec.c
+++ b/drivers/net/ethernet/chelsio/inline_crypto/ch_ipsec/chcr_ipsec.c
@@ -104,7 +104,7 @@ static void *ch_ipsec_uld_add(const struct cxgb4_lld_info *infop)
pr_info_once("%s - version %s\n", CHIPSEC_DRV_DESC,
CHIPSEC_DRV_VERSION);
- u_ctx = kzalloc(sizeof(*u_ctx), GFP_KERNEL);
+ u_ctx = kzalloc_obj(*u_ctx, GFP_KERNEL);
if (!u_ctx) {
u_ctx = ERR_PTR(-ENOMEM);
goto out;
@@ -295,7 +295,7 @@ static int ch_ipsec_xfrm_add_state(struct net_device *dev,
return -ENODEV;
}
- sa_entry = kzalloc(sizeof(*sa_entry), GFP_KERNEL);
+ sa_entry = kzalloc_obj(*sa_entry, GFP_KERNEL);
if (!sa_entry) {
res = -ENOMEM;
module_put(THIS_MODULE);
diff --git a/drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c b/drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c
index b8ebb56de65e..eb53e3a3ccf9 100644
--- a/drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c
+++ b/drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c
@@ -442,7 +442,7 @@ static int chcr_ktls_dev_add(struct net_device *netdev, struct sock *sk,
if (u_ctx && u_ctx->detach)
goto out;
- tx_info = kvzalloc(sizeof(*tx_info), GFP_KERNEL);
+ tx_info = kvzalloc_obj(*tx_info, GFP_KERNEL);
if (!tx_info)
goto out;
@@ -2117,7 +2117,7 @@ static void *chcr_ktls_uld_add(const struct cxgb4_lld_info *lldi)
pr_info_once("%s - version %s\n", CHCR_KTLS_DRV_DESC,
CHCR_KTLS_DRV_VERSION);
- u_ctx = kzalloc(sizeof(*u_ctx), GFP_KERNEL);
+ u_ctx = kzalloc_obj(*u_ctx, GFP_KERNEL);
if (!u_ctx) {
u_ctx = ERR_PTR(-ENOMEM);
goto out;
diff --git a/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c b/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c
index ee0154337a9c..caa46c191268 100644
--- a/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c
+++ b/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c
@@ -57,7 +57,7 @@ static unsigned char new_state[16] = {
static struct chtls_sock *chtls_sock_create(struct chtls_dev *cdev)
{
- struct chtls_sock *csk = kzalloc(sizeof(*csk), GFP_ATOMIC);
+ struct chtls_sock *csk = kzalloc_obj(*csk, GFP_ATOMIC);
if (!csk)
return NULL;
@@ -548,7 +548,7 @@ static struct listen_info *listen_hash_add(struct chtls_dev *cdev,
struct sock *sk,
unsigned int stid)
{
- struct listen_info *p = kmalloc(sizeof(*p), GFP_KERNEL);
+ struct listen_info *p = kmalloc_obj(*p, GFP_KERNEL);
if (p) {
int key = listen_hashfn(sk);
@@ -666,7 +666,7 @@ int chtls_listen_start(struct chtls_dev *cdev, struct sock *sk)
if (listen_hash_find(cdev, sk) >= 0) /* already have it */
return -EADDRINUSE;
- ctx = kmalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kmalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_main.c b/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_main.c
index daa1ebaef511..511ca3bfce3f 100644
--- a/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_main.c
+++ b/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_main.c
@@ -95,7 +95,7 @@ static int chtls_start_listen(struct chtls_dev *cdev, struct sock *sk)
return -EADDRNOTAVAIL;
sk->sk_backlog_rcv = listen_backlog_rcv;
- clisten = kmalloc(sizeof(*clisten), GFP_KERNEL);
+ clisten = kmalloc_obj(*clisten, GFP_KERNEL);
if (!clisten)
return -ENOMEM;
clisten->cdev = cdev;
@@ -114,7 +114,7 @@ static void chtls_stop_listen(struct chtls_dev *cdev, struct sock *sk)
if (sk->sk_protocol != IPPROTO_TCP)
return;
- clisten = kmalloc(sizeof(*clisten), GFP_KERNEL);
+ clisten = kmalloc_obj(*clisten, GFP_KERNEL);
if (!clisten)
return;
clisten->cdev = cdev;
@@ -238,11 +238,11 @@ static void *chtls_uld_add(const struct cxgb4_lld_info *info)
struct chtls_dev *cdev;
int i, j;
- cdev = kzalloc(sizeof(*cdev), GFP_KERNEL);
+ cdev = kzalloc_obj(*cdev, GFP_KERNEL);
if (!cdev)
goto out;
- lldi = kzalloc(sizeof(*lldi), GFP_KERNEL);
+ lldi = kzalloc_obj(*lldi, GFP_KERNEL);
if (!lldi)
goto out_lldi;
diff --git a/drivers/net/ethernet/cisco/enic/enic_clsf.c b/drivers/net/ethernet/cisco/enic/enic_clsf.c
index 837f954873ee..581e89da9091 100644
--- a/drivers/net/ethernet/cisco/enic/enic_clsf.c
+++ b/drivers/net/ethernet/cisco/enic/enic_clsf.c
@@ -235,7 +235,7 @@ int enic_rx_flow_steer(struct net_device *dev, const struct sk_buff *skb,
struct hlist_head *head;
head = &enic->rfs_h.ht_head[tbl_idx];
- d = kmalloc(sizeof(*d), GFP_ATOMIC);
+ d = kmalloc_obj(*d, GFP_ATOMIC);
if (d) {
d->fltr_id = n->fltr_id;
INIT_HLIST_NODE(&d->node);
@@ -257,7 +257,7 @@ int enic_rx_flow_steer(struct net_device *dev, const struct sk_buff *skb,
goto ret_unlock;
}
- n = kmalloc(sizeof(*n), GFP_ATOMIC);
+ n = kmalloc_obj(*n, GFP_ATOMIC);
if (!n) {
res = -ENOMEM;
enic->rfs_h.free++;
diff --git a/drivers/net/ethernet/cisco/enic/enic_main.c b/drivers/net/ethernet/cisco/enic/enic_main.c
index 6bc8dfdb3d4b..14dc4c5aa825 100644
--- a/drivers/net/ethernet/cisco/enic/enic_main.c
+++ b/drivers/net/ethernet/cisco/enic/enic_main.c
@@ -2456,35 +2456,35 @@ static void enic_free_enic_resources(struct enic *enic)
static int enic_alloc_enic_resources(struct enic *enic)
{
- enic->wq = kcalloc(enic->wq_avail, sizeof(struct enic_wq), GFP_KERNEL);
+ enic->wq = kzalloc_objs(struct enic_wq, enic->wq_avail, GFP_KERNEL);
if (!enic->wq)
goto free_queues;
- enic->rq = kcalloc(enic->rq_avail, sizeof(struct enic_rq), GFP_KERNEL);
+ enic->rq = kzalloc_objs(struct enic_rq, enic->rq_avail, GFP_KERNEL);
if (!enic->rq)
goto free_queues;
- enic->cq = kcalloc(enic->cq_avail, sizeof(struct vnic_cq), GFP_KERNEL);
+ enic->cq = kzalloc_objs(struct vnic_cq, enic->cq_avail, GFP_KERNEL);
if (!enic->cq)
goto free_queues;
- enic->napi = kcalloc(enic->wq_avail + enic->rq_avail,
- sizeof(struct napi_struct), GFP_KERNEL);
+ enic->napi = kzalloc_objs(struct napi_struct,
+ enic->wq_avail + enic->rq_avail, GFP_KERNEL);
if (!enic->napi)
goto free_queues;
- enic->msix_entry = kcalloc(enic->intr_avail, sizeof(struct msix_entry),
- GFP_KERNEL);
+ enic->msix_entry = kzalloc_objs(struct msix_entry, enic->intr_avail,
+ GFP_KERNEL);
if (!enic->msix_entry)
goto free_queues;
- enic->msix = kcalloc(enic->intr_avail, sizeof(struct enic_msix_entry),
- GFP_KERNEL);
+ enic->msix = kzalloc_objs(struct enic_msix_entry, enic->intr_avail,
+ GFP_KERNEL);
if (!enic->msix)
goto free_queues;
- enic->intr = kcalloc(enic->intr_avail, sizeof(struct vnic_intr),
- GFP_KERNEL);
+ enic->intr = kzalloc_objs(struct vnic_intr, enic->intr_avail,
+ GFP_KERNEL);
if (!enic->intr)
goto free_queues;
@@ -2737,7 +2737,7 @@ static int enic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
#endif
/* Allocate structure for port profiles */
- enic->pp = kcalloc(num_pps, sizeof(*enic->pp), GFP_KERNEL);
+ enic->pp = kzalloc_objs(*enic->pp, num_pps, GFP_KERNEL);
if (!enic->pp) {
err = -ENOMEM;
goto err_out_disable_sriov_pp;
diff --git a/drivers/net/ethernet/cisco/enic/vnic_dev.c b/drivers/net/ethernet/cisco/enic/vnic_dev.c
index 9f6089e81608..5a8a49f8c44f 100644
--- a/drivers/net/ethernet/cisco/enic/vnic_dev.c
+++ b/drivers/net/ethernet/cisco/enic/vnic_dev.c
@@ -371,7 +371,7 @@ static int vnic_dev_init_devcmd2(struct vnic_dev *vdev)
if (vdev->devcmd2)
return 0;
- vdev->devcmd2 = kzalloc(sizeof(*vdev->devcmd2), GFP_KERNEL);
+ vdev->devcmd2 = kzalloc_obj(*vdev->devcmd2, GFP_KERNEL);
if (!vdev->devcmd2)
return -ENOMEM;
@@ -1053,7 +1053,7 @@ struct vnic_dev *vnic_dev_register(struct vnic_dev *vdev,
unsigned int num_bars)
{
if (!vdev) {
- vdev = kzalloc(sizeof(struct vnic_dev), GFP_KERNEL);
+ vdev = kzalloc_obj(struct vnic_dev, GFP_KERNEL);
if (!vdev)
return NULL;
}
diff --git a/drivers/net/ethernet/cortina/gemini.c b/drivers/net/ethernet/cortina/gemini.c
index 6a2004bbe87f..d5608611cee8 100644
--- a/drivers/net/ethernet/cortina/gemini.c
+++ b/drivers/net/ethernet/cortina/gemini.c
@@ -554,7 +554,7 @@ static int gmac_setup_txqs(struct net_device *netdev)
rwptr_reg = port->dma_base + GMAC_SW_TX_QUEUE0_PTR_REG;
- skb_tab = kcalloc(len, sizeof(*skb_tab), GFP_KERNEL);
+ skb_tab = kzalloc_objs(*skb_tab, len, GFP_KERNEL);
if (!skb_tab)
return -ENOMEM;
@@ -940,8 +940,7 @@ static int geth_setup_freeq(struct gemini_ethernet *geth)
}
/* Allocate a mapping to page look-up index */
- geth->freeq_pages = kcalloc(pages, sizeof(*geth->freeq_pages),
- GFP_KERNEL);
+ geth->freeq_pages = kzalloc_objs(*geth->freeq_pages, pages, GFP_KERNEL);
if (!geth->freeq_pages)
goto err_freeq;
geth->num_freeq_pages = pages;
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index 52e10467b3e4..fb9c9d8bc659 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -4207,8 +4207,7 @@ static int be_vf_setup_init(struct be_adapter *adapter)
struct be_vf_cfg *vf_cfg;
int vf;
- adapter->vf_cfg = kcalloc(adapter->num_vfs, sizeof(*vf_cfg),
- GFP_KERNEL);
+ adapter->vf_cfg = kzalloc_objs(*vf_cfg, adapter->num_vfs, GFP_KERNEL);
if (!adapter->vf_cfg)
return -ENOMEM;
@@ -4686,13 +4685,13 @@ static int be_if_create(struct be_adapter *adapter)
if (!adapter->pmac_id)
return -ENOMEM;
- adapter->mc_list = kcalloc(be_max_mc(adapter),
- sizeof(*adapter->mc_list), GFP_KERNEL);
+ adapter->mc_list = kzalloc_objs(*adapter->mc_list, be_max_mc(adapter),
+ GFP_KERNEL);
if (!adapter->mc_list)
return -ENOMEM;
- adapter->uc_list = kcalloc(be_max_uc(adapter),
- sizeof(*adapter->uc_list), GFP_KERNEL);
+ adapter->uc_list = kzalloc_objs(*adapter->uc_list, be_max_uc(adapter),
+ GFP_KERNEL);
if (!adapter->uc_list)
return -ENOMEM;
@@ -5048,7 +5047,7 @@ static struct be_cmd_work *be_alloc_work(struct be_adapter *adapter,
{
struct be_cmd_work *work;
- work = kzalloc(sizeof(*work), GFP_ATOMIC);
+ work = kzalloc_obj(*work, GFP_ATOMIC);
if (!work) {
dev_err(&adapter->pdev->dev,
"be_work memory allocation failed\n");
diff --git a/drivers/net/ethernet/engleder/tsnep_main.c b/drivers/net/ethernet/engleder/tsnep_main.c
index b118407c30e8..eddfde68d503 100644
--- a/drivers/net/ethernet/engleder/tsnep_main.c
+++ b/drivers/net/ethernet/engleder/tsnep_main.c
@@ -2102,14 +2102,12 @@ int tsnep_enable_xsk(struct tsnep_queue *queue, struct xsk_buff_pool *pool)
if (frame_size < TSNEP_XSK_RX_BUF_SIZE)
return -EOPNOTSUPP;
- queue->rx->page_buffer = kcalloc(TSNEP_RING_SIZE,
- sizeof(*queue->rx->page_buffer),
- GFP_KERNEL);
+ queue->rx->page_buffer = kzalloc_objs(*queue->rx->page_buffer,
+ TSNEP_RING_SIZE, GFP_KERNEL);
if (!queue->rx->page_buffer)
return -ENOMEM;
- queue->rx->xdp_batch = kcalloc(TSNEP_RING_SIZE,
- sizeof(*queue->rx->xdp_batch),
- GFP_KERNEL);
+ queue->rx->xdp_batch = kzalloc_objs(*queue->rx->xdp_batch,
+ TSNEP_RING_SIZE, GFP_KERNEL);
if (!queue->rx->xdp_batch) {
kfree(queue->rx->page_buffer);
queue->rx->page_buffer = NULL;
diff --git a/drivers/net/ethernet/engleder/tsnep_rxnfc.c b/drivers/net/ethernet/engleder/tsnep_rxnfc.c
index 9ac2a0cf3833..9342dff7a073 100644
--- a/drivers/net/ethernet/engleder/tsnep_rxnfc.c
+++ b/drivers/net/ethernet/engleder/tsnep_rxnfc.c
@@ -231,7 +231,7 @@ int tsnep_rxnfc_add_rule(struct tsnep_adapter *adapter,
return -EINVAL;
}
- rule = kzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
return -ENOMEM;
diff --git a/drivers/net/ethernet/engleder/tsnep_selftests.c b/drivers/net/ethernet/engleder/tsnep_selftests.c
index 8a9145f93147..1a67d3136456 100644
--- a/drivers/net/ethernet/engleder/tsnep_selftests.c
+++ b/drivers/net/ethernet/engleder/tsnep_selftests.c
@@ -354,7 +354,7 @@ static bool tsnep_test_taprio(struct tsnep_adapter *adapter)
struct tc_taprio_qopt_offload *qopt;
int i;
- qopt = kzalloc(struct_size(qopt, entries, 255), GFP_KERNEL);
+ qopt = kzalloc_flex(*qopt, entries, 255, GFP_KERNEL);
if (!qopt)
return false;
for (i = 0; i < 255; i++)
@@ -451,7 +451,7 @@ static bool tsnep_test_taprio_change(struct tsnep_adapter *adapter)
struct tc_taprio_qopt_offload *qopt;
int i;
- qopt = kzalloc(struct_size(qopt, entries, 255), GFP_KERNEL);
+ qopt = kzalloc_flex(*qopt, entries, 255, GFP_KERNEL);
if (!qopt)
return false;
for (i = 0; i < 255; i++)
@@ -604,7 +604,7 @@ static bool tsnep_test_taprio_extension(struct tsnep_adapter *adapter)
struct tc_taprio_qopt_offload *qopt;
int i;
- qopt = kzalloc(struct_size(qopt, entries, 255), GFP_KERNEL);
+ qopt = kzalloc_flex(*qopt, entries, 255, GFP_KERNEL);
if (!qopt)
return false;
for (i = 0; i < 255; i++)
diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c b/drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c
index ed3fa80af8c3..0071d9538661 100644
--- a/drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c
+++ b/drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c
@@ -421,7 +421,7 @@ static int dpaa_set_coalesce(struct net_device *dev,
bool *needs_revert;
int cpu, res;
- needs_revert = kcalloc(num_possible_cpus(), sizeof(bool), GFP_KERNEL);
+ needs_revert = kzalloc_objs(bool, num_possible_cpus(), GFP_KERNEL);
if (!needs_revert)
return -ENOMEM;
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-devlink.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-devlink.c
index 76f808d38066..0db00bebb268 100644
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-devlink.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-devlink.c
@@ -237,14 +237,14 @@ int dpaa2_eth_dl_traps_register(struct dpaa2_eth_priv *priv)
struct device *dev = net_dev->dev.parent;
int err;
- dpaa2_eth_trap_data = kzalloc(sizeof(*dpaa2_eth_trap_data), GFP_KERNEL);
+ dpaa2_eth_trap_data = kzalloc_obj(*dpaa2_eth_trap_data, GFP_KERNEL);
if (!dpaa2_eth_trap_data)
return -ENOMEM;
priv->trap_data = dpaa2_eth_trap_data;
- dpaa2_eth_trap_data->trap_items_arr = kcalloc(ARRAY_SIZE(dpaa2_eth_traps_arr),
- sizeof(struct dpaa2_eth_trap_item),
- GFP_KERNEL);
+ dpaa2_eth_trap_data->trap_items_arr = kzalloc_objs(struct dpaa2_eth_trap_item,
+ ARRAY_SIZE(dpaa2_eth_traps_arr),
+ GFP_KERNEL);
if (!dpaa2_eth_trap_data->trap_items_arr) {
err = -ENOMEM;
goto trap_data_free;
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
index 18d86badd6ea..70691bf85e2d 100644
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
@@ -920,7 +920,7 @@ static int dpaa2_eth_build_sg_fd(struct dpaa2_eth_priv *priv,
if (unlikely(PAGE_SIZE / sizeof(struct scatterlist) < nr_frags + 1))
return -EINVAL;
- scl = kmalloc_array(nr_frags + 1, sizeof(struct scatterlist), GFP_ATOMIC);
+ scl = kmalloc_objs(struct scatterlist, nr_frags + 1, GFP_ATOMIC);
if (unlikely(!scl))
return -ENOMEM;
@@ -3125,7 +3125,7 @@ static struct dpaa2_eth_channel *dpaa2_eth_alloc_channel(struct dpaa2_eth_priv *
struct device *dev = priv->net_dev->dev.parent;
int err;
- channel = kzalloc(sizeof(*channel), GFP_KERNEL);
+ channel = kzalloc_obj(*channel, GFP_KERNEL);
if (!channel)
return NULL;
@@ -3392,7 +3392,7 @@ struct dpaa2_eth_bp *dpaa2_eth_allocate_dpbp(struct dpaa2_eth_priv *priv)
return ERR_PTR(err);
}
- bp = kzalloc(sizeof(*bp), GFP_KERNEL);
+ bp = kzalloc_obj(*bp, GFP_KERNEL);
if (!bp) {
err = -ENOMEM;
goto err_alloc;
@@ -4673,7 +4673,7 @@ static int dpaa2_eth_connect_mac(struct dpaa2_eth_priv *priv)
goto out_put_device;
}
- mac = kzalloc(sizeof(struct dpaa2_mac), GFP_KERNEL);
+ mac = kzalloc_obj(struct dpaa2_mac, GFP_KERNEL);
if (!mac) {
err = -ENOMEM;
goto out_put_device;
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch-flower.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch-flower.c
index 701a87370737..388f81713f1e 100644
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch-flower.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch-flower.c
@@ -505,7 +505,7 @@ dpaa2_switch_cls_flower_replace_acl(struct dpaa2_switch_filter_block *block,
return -ENOMEM;
}
- acl_entry = kzalloc(sizeof(*acl_entry), GFP_KERNEL);
+ acl_entry = kzalloc_obj(*acl_entry, GFP_KERNEL);
if (!acl_entry)
return -ENOMEM;
@@ -633,7 +633,7 @@ dpaa2_switch_cls_flower_replace_mirror(struct dpaa2_switch_filter_block *block,
}
}
- mirror_entry = kzalloc(sizeof(*mirror_entry), GFP_KERNEL);
+ mirror_entry = kzalloc_obj(*mirror_entry, GFP_KERNEL);
if (!mirror_entry)
return -ENOMEM;
@@ -708,7 +708,7 @@ dpaa2_switch_cls_matchall_replace_acl(struct dpaa2_switch_filter_block *block,
return -ENOMEM;
}
- acl_entry = kzalloc(sizeof(*acl_entry), GFP_KERNEL);
+ acl_entry = kzalloc_obj(*acl_entry, GFP_KERNEL);
if (!acl_entry)
return -ENOMEM;
@@ -780,7 +780,7 @@ dpaa2_switch_cls_matchall_replace_mirror(struct dpaa2_switch_filter_block *block
}
}
- mirror_entry = kzalloc(sizeof(*mirror_entry), GFP_KERNEL);
+ mirror_entry = kzalloc_obj(*mirror_entry, GFP_KERNEL);
if (!mirror_entry)
return -ENOMEM;
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c
index 66240c340492..2b0cac347fec 100644
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c
@@ -1456,7 +1456,7 @@ static int dpaa2_switch_port_connect_mac(struct ethsw_port_priv *port_priv)
goto out_put_device;
}
- mac = kzalloc(sizeof(*mac), GFP_KERNEL);
+ mac = kzalloc_obj(*mac, GFP_KERNEL);
if (!mac) {
err = -ENOMEM;
goto out_put_device;
@@ -2334,7 +2334,7 @@ static int dpaa2_switch_port_event(struct notifier_block *nb,
if (!dpaa2_switch_port_dev_check(dev))
return NOTIFY_DONE;
- switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC);
+ switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC);
if (!switchdev_work)
return NOTIFY_BAD;
@@ -3385,7 +3385,7 @@ static int dpaa2_switch_probe(struct fsl_mc_device *sw_dev)
int i, err;
/* Allocate switch core*/
- ethsw = kzalloc(sizeof(*ethsw), GFP_KERNEL);
+ ethsw = kzalloc_obj(*ethsw, GFP_KERNEL);
if (!ethsw)
return -ENOMEM;
@@ -3408,23 +3408,22 @@ static int dpaa2_switch_probe(struct fsl_mc_device *sw_dev)
if (err)
goto err_free_cmdport;
- ethsw->ports = kcalloc(ethsw->sw_attr.num_ifs, sizeof(*ethsw->ports),
- GFP_KERNEL);
+ ethsw->ports = kzalloc_objs(*ethsw->ports, ethsw->sw_attr.num_ifs,
+ GFP_KERNEL);
if (!(ethsw->ports)) {
err = -ENOMEM;
goto err_teardown;
}
- ethsw->fdbs = kcalloc(ethsw->sw_attr.num_ifs, sizeof(*ethsw->fdbs),
- GFP_KERNEL);
+ ethsw->fdbs = kzalloc_objs(*ethsw->fdbs, ethsw->sw_attr.num_ifs,
+ GFP_KERNEL);
if (!ethsw->fdbs) {
err = -ENOMEM;
goto err_free_ports;
}
- ethsw->filter_blocks = kcalloc(ethsw->sw_attr.num_ifs,
- sizeof(*ethsw->filter_blocks),
- GFP_KERNEL);
+ ethsw->filter_blocks = kzalloc_objs(*ethsw->filter_blocks,
+ ethsw->sw_attr.num_ifs, GFP_KERNEL);
if (!ethsw->filter_blocks) {
err = -ENOMEM;
goto err_free_fdbs;
diff --git a/drivers/net/ethernet/freescale/enetc/enetc.c b/drivers/net/ethernet/freescale/enetc/enetc.c
index e380a4f39855..d6575a446adf 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc.c
@@ -2268,7 +2268,7 @@ enetc_alloc_tx_resources(struct enetc_ndev_priv *priv)
struct enetc_bdr_resource *tx_res;
int i, err;
- tx_res = kcalloc(priv->num_tx_rings, sizeof(*tx_res), GFP_KERNEL);
+ tx_res = kzalloc_objs(*tx_res, priv->num_tx_rings, GFP_KERNEL);
if (!tx_res)
return ERR_PTR(-ENOMEM);
@@ -2340,7 +2340,7 @@ enetc_alloc_rx_resources(struct enetc_ndev_priv *priv, bool extended)
struct enetc_bdr_resource *rx_res;
int i, err;
- rx_res = kcalloc(priv->num_rx_rings, sizeof(*rx_res), GFP_KERNEL);
+ rx_res = kzalloc_objs(*rx_res, priv->num_rx_rings, GFP_KERNEL);
if (!rx_res)
return ERR_PTR(-ENOMEM);
@@ -2469,7 +2469,7 @@ static int enetc_setup_default_rss_table(struct enetc_si *si, int num_groups)
int *rss_table;
int i;
- rss_table = kmalloc_array(si->num_rss, sizeof(*rss_table), GFP_KERNEL);
+ rss_table = kmalloc_objs(*rss_table, si->num_rss, GFP_KERNEL);
if (!rss_table)
return -ENOMEM;
@@ -2562,8 +2562,8 @@ int enetc_alloc_si_resources(struct enetc_ndev_priv *priv)
{
struct enetc_si *si = priv->si;
- priv->cls_rules = kcalloc(si->num_fs_entries, sizeof(*priv->cls_rules),
- GFP_KERNEL);
+ priv->cls_rules = kzalloc_objs(*priv->cls_rules, si->num_fs_entries,
+ GFP_KERNEL);
if (!priv->cls_rules)
return -ENOMEM;
@@ -3454,7 +3454,7 @@ static int enetc_int_vector_init(struct enetc_ndev_priv *priv, int i,
struct enetc_bdr *bdr;
int j, err;
- v = kzalloc(struct_size(v, tx_ring, v_tx_rings), GFP_KERNEL);
+ v = kzalloc_flex(*v, tx_ring, v_tx_rings, GFP_KERNEL);
if (!v)
return -ENOMEM;
diff --git a/drivers/net/ethernet/freescale/enetc/enetc4_pf.c b/drivers/net/ethernet/freescale/enetc/enetc4_pf.c
index 5850540634b0..689b9f13c5eb 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc4_pf.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc4_pf.c
@@ -192,7 +192,7 @@ static int enetc4_pf_set_uc_exact_filter(struct enetc_pf *pf)
goto unlock_netif_addr;
}
- mac_tbl = kcalloc(mac_cnt, sizeof(*mac_tbl), GFP_ATOMIC);
+ mac_tbl = kzalloc_objs(*mac_tbl, mac_cnt, GFP_ATOMIC);
if (!mac_tbl) {
err = -ENOMEM;
goto unlock_netif_addr;
diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c b/drivers/net/ethernet/freescale/enetc/enetc_pf.c
index de0fb272c847..eb3a50a94df7 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c
@@ -814,7 +814,7 @@ static int enetc_init_port_rss_memory(struct enetc_si *si)
if (!num_rss)
return 0;
- rss_table = kcalloc(num_rss, sizeof(*rss_table), GFP_KERNEL);
+ rss_table = kzalloc_objs(*rss_table, num_rss, GFP_KERNEL);
if (!rss_table)
return -ENOMEM;
@@ -958,8 +958,8 @@ static int enetc_pf_probe(struct pci_dev *pdev,
pf->total_vfs = pci_sriov_get_totalvfs(pdev);
if (pf->total_vfs) {
- pf->vf_state = kcalloc(pf->total_vfs, sizeof(struct enetc_vf_state),
- GFP_KERNEL);
+ pf->vf_state = kzalloc_objs(struct enetc_vf_state,
+ pf->total_vfs, GFP_KERNEL);
if (!pf->vf_state)
goto err_alloc_vf_state;
}
diff --git a/drivers/net/ethernet/freescale/enetc/enetc_ptp.c b/drivers/net/ethernet/freescale/enetc/enetc_ptp.c
index b8413d3b4f16..dbf35abea7f7 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc_ptp.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc_ptp.c
@@ -53,7 +53,7 @@ static int enetc_ptp_probe(struct pci_dev *pdev,
pci_set_master(pdev);
- ptp_qoriq = kzalloc(sizeof(*ptp_qoriq), GFP_KERNEL);
+ ptp_qoriq = kzalloc_obj(*ptp_qoriq, GFP_KERNEL);
if (!ptp_qoriq) {
err = -ENOMEM;
goto err_alloc_ptp;
diff --git a/drivers/net/ethernet/freescale/enetc/enetc_qos.c b/drivers/net/ethernet/freescale/enetc/enetc_qos.c
index ccf86651455c..6ff65108cc97 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc_qos.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc_qos.c
@@ -1153,7 +1153,7 @@ static int enetc_psfp_parse_clsflower(struct enetc_ndev_priv *priv,
if (!entryg)
return -EINVAL;
- filter = kzalloc(sizeof(*filter), GFP_KERNEL);
+ filter = kzalloc_obj(*filter, GFP_KERNEL);
if (!filter)
return -ENOMEM;
@@ -1266,7 +1266,7 @@ static int enetc_psfp_parse_clsflower(struct enetc_ndev_priv *priv,
filter->sgi_index = sgi->index;
- sfi = kzalloc(sizeof(*sfi), GFP_KERNEL);
+ sfi = kzalloc_obj(*sfi, GFP_KERNEL);
if (!sfi) {
err = -ENOMEM;
goto free_gate;
@@ -1283,7 +1283,7 @@ static int enetc_psfp_parse_clsflower(struct enetc_ndev_priv *priv,
goto free_sfi;
if (entryp->police.burst) {
- fmi = kzalloc(sizeof(*fmi), GFP_KERNEL);
+ fmi = kzalloc_obj(*fmi, GFP_KERNEL);
if (!fmi) {
err = -ENOMEM;
goto free_sfi;
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index 0d926bf18195..c43539d4bab0 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -3952,7 +3952,7 @@ static int fec_enet_alloc_queue(struct net_device *ndev)
struct fec_enet_priv_tx_q *txq;
for (i = 0; i < fep->num_tx_queues; i++) {
- txq = kzalloc(sizeof(*txq), GFP_KERNEL);
+ txq = kzalloc_obj(*txq, GFP_KERNEL);
if (!txq) {
ret = -ENOMEM;
goto alloc_failed;
@@ -3975,8 +3975,7 @@ static int fec_enet_alloc_queue(struct net_device *ndev)
}
for (i = 0; i < fep->num_rx_queues; i++) {
- fep->rx_queue[i] = kzalloc(sizeof(*fep->rx_queue[i]),
- GFP_KERNEL);
+ fep->rx_queue[i] = kzalloc_obj(*fep->rx_queue[i], GFP_KERNEL);
if (!fep->rx_queue[i]) {
ret = -ENOMEM;
goto alloc_failed;
@@ -4426,7 +4425,7 @@ fec_alloc_new_rxq_xsk(struct fec_enet_private *fep, int queue,
union fec_rx_buffer *buf;
int i;
- rxq = kzalloc(sizeof(*rxq), GFP_KERNEL);
+ rxq = kzalloc_obj(*rxq, GFP_KERNEL);
if (!rxq)
return NULL;
@@ -4467,7 +4466,7 @@ fec_alloc_new_rxq_pp(struct fec_enet_private *fep, int queue)
union fec_rx_buffer *buf;
int i = 0;
- rxq = kzalloc(sizeof(*rxq), GFP_KERNEL);
+ rxq = kzalloc_obj(*rxq, GFP_KERNEL);
if (!rxq)
return NULL;
diff --git a/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c b/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c
index 3d073f0fae63..f182480909f1 100644
--- a/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c
+++ b/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c
@@ -74,7 +74,7 @@ static int mpc52xx_fec_mdio_probe(struct platform_device *of)
bus = mdiobus_alloc();
if (bus == NULL)
return -ENOMEM;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (priv == NULL) {
err = -ENOMEM;
goto out_free;
diff --git a/drivers/net/ethernet/freescale/fman/fman.c b/drivers/net/ethernet/freescale/fman/fman.c
index 11887458f050..b8d603fb70dc 100644
--- a/drivers/net/ethernet/freescale/fman/fman.c
+++ b/drivers/net/ethernet/freescale/fman/fman.c
@@ -1688,12 +1688,12 @@ static int fman_config(struct fman *fman)
base_addr = fman->dts_params.base_addr;
- fman->state = kzalloc(sizeof(*fman->state), GFP_KERNEL);
+ fman->state = kzalloc_obj(*fman->state, GFP_KERNEL);
if (!fman->state)
goto err_fm_state;
/* Allocate the FM driver's parameters structure */
- fman->cfg = kzalloc(sizeof(*fman->cfg), GFP_KERNEL);
+ fman->cfg = kzalloc_obj(*fman->cfg, GFP_KERNEL);
if (!fman->cfg)
goto err_fm_drv;
@@ -2697,7 +2697,7 @@ static struct fman *read_dts_node(struct platform_device *of_dev)
struct clk *clk;
u32 clk_rate;
- fman = kzalloc(sizeof(*fman), GFP_KERNEL);
+ fman = kzalloc_obj(*fman, GFP_KERNEL);
if (!fman)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/freescale/fman/fman_dtsec.c b/drivers/net/ethernet/freescale/fman/fman_dtsec.c
index 51402dff72c5..12d739808f16 100644
--- a/drivers/net/ethernet/freescale/fman/fman_dtsec.c
+++ b/drivers/net/ethernet/freescale/fman/fman_dtsec.c
@@ -1055,7 +1055,7 @@ static int dtsec_add_hash_mac_address(struct fman_mac *dtsec,
set_bucket(dtsec->regs, bucket, true);
/* Create element to be added to the driver hash table */
- hash_entry = kmalloc(sizeof(*hash_entry), GFP_ATOMIC);
+ hash_entry = kmalloc_obj(*hash_entry, GFP_ATOMIC);
if (!hash_entry)
return -ENOMEM;
hash_entry->addr = addr;
@@ -1348,12 +1348,12 @@ static struct fman_mac *dtsec_config(struct mac_device *mac_dev,
struct dtsec_cfg *dtsec_drv_param;
/* allocate memory for the UCC GETH data structure. */
- dtsec = kzalloc(sizeof(*dtsec), GFP_KERNEL);
+ dtsec = kzalloc_obj(*dtsec, GFP_KERNEL);
if (!dtsec)
return NULL;
/* allocate memory for the d_tsec driver parameters data structure. */
- dtsec_drv_param = kzalloc(sizeof(*dtsec_drv_param), GFP_KERNEL);
+ dtsec_drv_param = kzalloc_obj(*dtsec_drv_param, GFP_KERNEL);
if (!dtsec_drv_param)
goto err_dtsec;
diff --git a/drivers/net/ethernet/freescale/fman/fman_keygen.c b/drivers/net/ethernet/freescale/fman/fman_keygen.c
index e73f6ef3c6ee..f4b83b5eb018 100644
--- a/drivers/net/ethernet/freescale/fman/fman_keygen.c
+++ b/drivers/net/ethernet/freescale/fman/fman_keygen.c
@@ -629,7 +629,7 @@ struct fman_keygen *keygen_init(struct fman_kg_regs __iomem *keygen_regs)
int i;
/* Allocate memory for KeyGen driver */
- keygen = kzalloc(sizeof(*keygen), GFP_KERNEL);
+ keygen = kzalloc_obj(*keygen, GFP_KERNEL);
if (!keygen)
return NULL;
diff --git a/drivers/net/ethernet/freescale/fman/fman_mac.h b/drivers/net/ethernet/freescale/fman/fman_mac.h
index e5d6cddea731..83d53f33abc2 100644
--- a/drivers/net/ethernet/freescale/fman/fman_mac.h
+++ b/drivers/net/ethernet/freescale/fman/fman_mac.h
@@ -224,14 +224,13 @@ static inline struct eth_hash_t *alloc_hash_table(u16 size)
struct eth_hash_t *hash;
/* Allocate address hash table */
- hash = kmalloc(sizeof(*hash), GFP_KERNEL);
+ hash = kmalloc_obj(*hash, GFP_KERNEL);
if (!hash)
return NULL;
hash->size = size;
- hash->lsts = kmalloc_array(hash->size, sizeof(struct list_head),
- GFP_KERNEL);
+ hash->lsts = kmalloc_objs(struct list_head, hash->size, GFP_KERNEL);
if (!hash->lsts) {
kfree(hash);
return NULL;
diff --git a/drivers/net/ethernet/freescale/fman/fman_memac.c b/drivers/net/ethernet/freescale/fman/fman_memac.c
index c84f0336c94c..f9461bba1a66 100644
--- a/drivers/net/ethernet/freescale/fman/fman_memac.c
+++ b/drivers/net/ethernet/freescale/fman/fman_memac.c
@@ -811,7 +811,7 @@ static int memac_add_hash_mac_address(struct fman_mac *memac,
hash = get_mac_addr_hash_code(addr) & HASH_CTRL_ADDR_MASK;
/* Create element to be added to the driver hash table */
- hash_entry = kmalloc(sizeof(*hash_entry), GFP_ATOMIC);
+ hash_entry = kmalloc_obj(*hash_entry, GFP_ATOMIC);
if (!hash_entry)
return -ENOMEM;
hash_entry->addr = addr;
@@ -1086,12 +1086,12 @@ static struct fman_mac *memac_config(struct mac_device *mac_dev,
struct memac_cfg *memac_drv_param;
/* allocate memory for the m_emac data structure */
- memac = kzalloc(sizeof(*memac), GFP_KERNEL);
+ memac = kzalloc_obj(*memac, GFP_KERNEL);
if (!memac)
return NULL;
/* allocate memory for the m_emac driver parameters data structure */
- memac_drv_param = kzalloc(sizeof(*memac_drv_param), GFP_KERNEL);
+ memac_drv_param = kzalloc_obj(*memac_drv_param, GFP_KERNEL);
if (!memac_drv_param) {
memac_free(memac);
return NULL;
diff --git a/drivers/net/ethernet/freescale/fman/fman_muram.c b/drivers/net/ethernet/freescale/fman/fman_muram.c
index 1ed245a2ee01..eb85c54c9408 100644
--- a/drivers/net/ethernet/freescale/fman/fman_muram.c
+++ b/drivers/net/ethernet/freescale/fman/fman_muram.c
@@ -40,7 +40,7 @@ struct muram_info *fman_muram_init(phys_addr_t base, size_t size)
void __iomem *vaddr;
int ret;
- muram = kzalloc(sizeof(*muram), GFP_KERNEL);
+ muram = kzalloc_obj(*muram, GFP_KERNEL);
if (!muram)
return NULL;
diff --git a/drivers/net/ethernet/freescale/fman/fman_port.c b/drivers/net/ethernet/freescale/fman/fman_port.c
index e977389f7088..a3e8c77dbb57 100644
--- a/drivers/net/ethernet/freescale/fman/fman_port.c
+++ b/drivers/net/ethernet/freescale/fman/fman_port.c
@@ -1297,7 +1297,7 @@ int fman_port_config(struct fman_port *port, struct fman_port_params *params)
int err;
/* Allocate the FM driver's parameters structure */
- port->cfg = kzalloc(sizeof(*port->cfg), GFP_KERNEL);
+ port->cfg = kzalloc_obj(*port->cfg, GFP_KERNEL);
if (!port->cfg)
return -EINVAL;
@@ -1753,7 +1753,7 @@ static int fman_port_probe(struct platform_device *of_dev)
u16 port_speed;
u8 port_id;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return -ENOMEM;
diff --git a/drivers/net/ethernet/freescale/fman/fman_tgec.c b/drivers/net/ethernet/freescale/fman/fman_tgec.c
index fecfca6eba03..05edac07ba6c 100644
--- a/drivers/net/ethernet/freescale/fman/fman_tgec.c
+++ b/drivers/net/ethernet/freescale/fman/fman_tgec.c
@@ -505,7 +505,7 @@ static int tgec_add_hash_mac_address(struct fman_mac *tgec,
hash = (crc >> TGEC_HASH_MCAST_SHIFT) & TGEC_HASH_ADR_MSK;
/* Create element to be added to the driver hash table */
- hash_entry = kmalloc(sizeof(*hash_entry), GFP_ATOMIC);
+ hash_entry = kmalloc_obj(*hash_entry, GFP_ATOMIC);
if (!hash_entry)
return -ENOMEM;
hash_entry->addr = addr;
@@ -711,12 +711,12 @@ static struct fman_mac *tgec_config(struct mac_device *mac_dev,
struct tgec_cfg *cfg;
/* allocate memory for the UCC GETH data structure. */
- tgec = kzalloc(sizeof(*tgec), GFP_KERNEL);
+ tgec = kzalloc_obj(*tgec, GFP_KERNEL);
if (!tgec)
return NULL;
/* allocate memory for the 10G MAC driver parameters data structure. */
- cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
+ cfg = kzalloc_obj(*cfg, GFP_KERNEL);
if (!cfg) {
tgec_free(tgec);
return NULL;
diff --git a/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c b/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
index f563692a4a00..3ba98561f566 100644
--- a/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
+++ b/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
@@ -866,7 +866,7 @@ static int fs_enet_probe(struct platform_device *ofdev)
if (!ops)
return -EINVAL;
- fpi = kzalloc(sizeof(*fpi), GFP_KERNEL);
+ fpi = kzalloc_obj(*fpi, GFP_KERNEL);
if (!fpi)
return -ENOMEM;
diff --git a/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c b/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c
index 66038e2a4ae3..2a27dc0b5653 100644
--- a/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c
+++ b/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c
@@ -152,7 +152,7 @@ static int fs_enet_mdio_probe(struct platform_device *ofdev)
struct bb_info *bitbang;
int ret = -ENOMEM;
- bitbang = kzalloc(sizeof(struct bb_info), GFP_KERNEL);
+ bitbang = kzalloc_obj(struct bb_info, GFP_KERNEL);
if (!bitbang)
goto out;
diff --git a/drivers/net/ethernet/freescale/fs_enet/mii-fec.c b/drivers/net/ethernet/freescale/fs_enet/mii-fec.c
index dec31b638941..512e897cea08 100644
--- a/drivers/net/ethernet/freescale/fs_enet/mii-fec.c
+++ b/drivers/net/ethernet/freescale/fs_enet/mii-fec.c
@@ -108,7 +108,7 @@ static int fs_enet_mdio_probe(struct platform_device *ofdev)
if (!new_bus)
goto out;
- fec = kzalloc(sizeof(struct fec_info), GFP_KERNEL);
+ fec = kzalloc_obj(struct fec_info, GFP_KERNEL);
if (!fec)
goto out_mii;
diff --git a/drivers/net/ethernet/freescale/gianfar.c b/drivers/net/ethernet/freescale/gianfar.c
index 7c0f049f0938..a58cd09b4c0d 100644
--- a/drivers/net/ethernet/freescale/gianfar.c
+++ b/drivers/net/ethernet/freescale/gianfar.c
@@ -413,8 +413,8 @@ static int gfar_alloc_tx_queues(struct gfar_private *priv)
int i;
for (i = 0; i < priv->num_tx_queues; i++) {
- priv->tx_queue[i] = kzalloc(sizeof(struct gfar_priv_tx_q),
- GFP_KERNEL);
+ priv->tx_queue[i] = kzalloc_obj(struct gfar_priv_tx_q,
+ GFP_KERNEL);
if (!priv->tx_queue[i])
return -ENOMEM;
@@ -431,8 +431,8 @@ static int gfar_alloc_rx_queues(struct gfar_private *priv)
int i;
for (i = 0; i < priv->num_rx_queues; i++) {
- priv->rx_queue[i] = kzalloc(sizeof(struct gfar_priv_rx_q),
- GFP_KERNEL);
+ priv->rx_queue[i] = kzalloc_obj(struct gfar_priv_rx_q,
+ GFP_KERNEL);
if (!priv->rx_queue[i])
return -ENOMEM;
@@ -507,8 +507,7 @@ static int gfar_parse_group(struct device_node *np,
int i;
for (i = 0; i < GFAR_NUM_IRQS; i++) {
- grp->irqinfo[i] = kzalloc(sizeof(struct gfar_irqinfo),
- GFP_KERNEL);
+ grp->irqinfo[i] = kzalloc_obj(struct gfar_irqinfo, GFP_KERNEL);
if (!grp->irqinfo[i])
return -ENOMEM;
}
@@ -1376,9 +1375,8 @@ static int gfar_alloc_skb_resources(struct net_device *ndev)
for (i = 0; i < priv->num_tx_queues; i++) {
tx_queue = priv->tx_queue[i];
tx_queue->tx_skbuff =
- kmalloc_array(tx_queue->tx_ring_size,
- sizeof(*tx_queue->tx_skbuff),
- GFP_KERNEL);
+ kmalloc_objs(*tx_queue->tx_skbuff,
+ tx_queue->tx_ring_size, GFP_KERNEL);
if (!tx_queue->tx_skbuff)
goto cleanup;
@@ -1388,9 +1386,9 @@ static int gfar_alloc_skb_resources(struct net_device *ndev)
for (i = 0; i < priv->num_rx_queues; i++) {
rx_queue = priv->rx_queue[i];
- rx_queue->rx_buff = kcalloc(rx_queue->rx_ring_size,
- sizeof(*rx_queue->rx_buff),
- GFP_KERNEL);
+ rx_queue->rx_buff = kzalloc_objs(*rx_queue->rx_buff,
+ rx_queue->rx_ring_size,
+ GFP_KERNEL);
if (!rx_queue->rx_buff)
goto cleanup;
}
diff --git a/drivers/net/ethernet/freescale/gianfar_ethtool.c b/drivers/net/ethernet/freescale/gianfar_ethtool.c
index 6fa752d3b60d..528a0717084c 100644
--- a/drivers/net/ethernet/freescale/gianfar_ethtool.c
+++ b/drivers/net/ethernet/freescale/gianfar_ethtool.c
@@ -1241,7 +1241,7 @@ static int gfar_process_filer_changes(struct gfar_private *priv)
s32 ret = 0;
/* So index is set to zero, too! */
- tab = kzalloc(sizeof(*tab), GFP_KERNEL);
+ tab = kzalloc_obj(*tab, GFP_KERNEL);
if (tab == NULL)
return -ENOMEM;
@@ -1293,7 +1293,7 @@ static int gfar_add_cls(struct gfar_private *priv,
struct ethtool_flow_spec_container *temp, *comp;
int ret = 0;
- temp = kmalloc(sizeof(*temp), GFP_KERNEL);
+ temp = kmalloc_obj(*temp, GFP_KERNEL);
if (temp == NULL)
return -ENOMEM;
memcpy(&temp->fs, flow, sizeof(temp->fs));
diff --git a/drivers/net/ethernet/freescale/ucc_geth.c b/drivers/net/ethernet/freescale/ucc_geth.c
index 131d1210dc4a..b1ced6432f26 100644
--- a/drivers/net/ethernet/freescale/ucc_geth.c
+++ b/drivers/net/ethernet/freescale/ucc_geth.c
@@ -2071,8 +2071,8 @@ static int ucc_geth_alloc_tx(struct ucc_geth_private *ugeth)
for (j = 0; j < ucc_geth_tx_queues(ug_info); j++) {
/* Setup the skbuff rings */
ugeth->tx_skbuff[j] =
- kcalloc(ugeth->ug_info->bdRingLenTx[j],
- sizeof(struct sk_buff *), GFP_KERNEL);
+ kzalloc_objs(struct sk_buff *,
+ ugeth->ug_info->bdRingLenTx[j], GFP_KERNEL);
if (ugeth->tx_skbuff[j] == NULL) {
if (netif_msg_ifup(ugeth))
@@ -2129,8 +2129,8 @@ static int ucc_geth_alloc_rx(struct ucc_geth_private *ugeth)
for (j = 0; j < ucc_geth_rx_queues(ug_info); j++) {
/* Setup the skbuff rings */
ugeth->rx_skbuff[j] =
- kcalloc(ugeth->ug_info->bdRingLenRx[j],
- sizeof(struct sk_buff *), GFP_KERNEL);
+ kzalloc_objs(struct sk_buff *,
+ ugeth->ug_info->bdRingLenRx[j], GFP_KERNEL);
if (ugeth->rx_skbuff[j] == NULL) {
if (netif_msg_ifup(ugeth))
@@ -2677,7 +2677,7 @@ static int ucc_geth_startup(struct ucc_geth_private *ugeth)
* allocated resources can be released when the channel is freed.
*/
if (!(ugeth->p_init_enet_param_shadow =
- kzalloc(sizeof(struct ucc_geth_init_pram), GFP_KERNEL))) {
+ kzalloc_obj(struct ucc_geth_init_pram, GFP_KERNEL))) {
if (netif_msg_ifup(ugeth))
pr_err("Can not allocate memory for p_UccInitEnetParamShadows\n");
return -ENOMEM;
diff --git a/drivers/net/ethernet/fungible/funcore/fun_dev.c b/drivers/net/ethernet/fungible/funcore/fun_dev.c
index ce97b76f9ae0..1c1e66068fed 100644
--- a/drivers/net/ethernet/fungible/funcore/fun_dev.c
+++ b/drivers/net/ethernet/fungible/funcore/fun_dev.c
@@ -210,7 +210,7 @@ static int fun_init_cmd_ctx(struct fun_dev *fdev, unsigned int ntags)
{
unsigned int i;
- fdev->cmd_ctx = kvcalloc(ntags, sizeof(*fdev->cmd_ctx), GFP_KERNEL);
+ fdev->cmd_ctx = kvzalloc_objs(*fdev->cmd_ctx, ntags, GFP_KERNEL);
if (!fdev->cmd_ctx)
return -ENOMEM;
diff --git a/drivers/net/ethernet/fungible/funcore/fun_queue.c b/drivers/net/ethernet/fungible/funcore/fun_queue.c
index d07ee3e4f52a..200983145606 100644
--- a/drivers/net/ethernet/fungible/funcore/fun_queue.c
+++ b/drivers/net/ethernet/fungible/funcore/fun_queue.c
@@ -405,7 +405,7 @@ void fun_free_queue(struct fun_queue *funq)
struct fun_queue *fun_alloc_queue(struct fun_dev *fdev, int qid,
const struct fun_queue_alloc_req *req)
{
- struct fun_queue *funq = kzalloc(sizeof(*funq), GFP_KERNEL);
+ struct fun_queue *funq = kzalloc_obj(*funq, GFP_KERNEL);
if (!funq)
return NULL;
diff --git a/drivers/net/ethernet/fungible/funeth/funeth_main.c b/drivers/net/ethernet/fungible/funeth/funeth_main.c
index 792cddac6f1b..2255f203674a 100644
--- a/drivers/net/ethernet/fungible/funeth/funeth_main.c
+++ b/drivers/net/ethernet/fungible/funeth/funeth_main.c
@@ -424,7 +424,7 @@ static struct funeth_txq **alloc_xdpqs(struct net_device *dev, unsigned int nqs,
unsigned int i;
int err;
- xdpqs = kcalloc(nqs, sizeof(*xdpqs), GFP_KERNEL);
+ xdpqs = kzalloc_objs(*xdpqs, nqs, GFP_KERNEL);
if (!xdpqs)
return ERR_PTR(-ENOMEM);
@@ -486,7 +486,7 @@ static int fun_alloc_rings(struct net_device *netdev, struct fun_qset *qset)
if (err)
return err;
- rxqs = kcalloc(qset->ntxqs + qset->nrxqs, sizeof(*rxqs), GFP_KERNEL);
+ rxqs = kzalloc_objs(*rxqs, qset->ntxqs + qset->nrxqs, GFP_KERNEL);
if (!rxqs)
return -ENOMEM;
@@ -1175,7 +1175,7 @@ static int fun_init_vports(struct fun_ethdev *ed, unsigned int n)
if (ed->num_vports)
return -EINVAL;
- ed->vport_info = kvcalloc(n, sizeof(*ed->vport_info), GFP_KERNEL);
+ ed->vport_info = kvzalloc_objs(*ed->vport_info, n, GFP_KERNEL);
if (!ed->vport_info)
return -ENOMEM;
ed->num_vports = n;
@@ -1833,7 +1833,7 @@ static int fun_create_ports(struct fun_ethdev *ed, unsigned int nports)
return -EINVAL;
}
- ed->netdevs = kcalloc(nports, sizeof(*ed->netdevs), GFP_KERNEL);
+ ed->netdevs = kzalloc_objs(*ed->netdevs, nports, GFP_KERNEL);
if (!ed->netdevs)
return -ENOMEM;
diff --git a/drivers/net/ethernet/google/gve/gve_ethtool.c b/drivers/net/ethernet/google/gve/gve_ethtool.c
index 42a0a6f7b296..a2b5aeee0831 100644
--- a/drivers/net/ethernet/google/gve/gve_ethtool.c
+++ b/drivers/net/ethernet/google/gve/gve_ethtool.c
@@ -176,8 +176,8 @@ gve_get_ethtool_stats(struct net_device *netdev,
priv = netdev_priv(netdev);
num_tx_queues = gve_num_tx_queues(priv);
report_stats = priv->stats_report->stats;
- rx_qid_to_stats_idx = kmalloc_array(priv->rx_cfg.num_queues,
- sizeof(int), GFP_KERNEL);
+ rx_qid_to_stats_idx = kmalloc_objs(int, priv->rx_cfg.num_queues,
+ GFP_KERNEL);
if (!rx_qid_to_stats_idx)
return;
for (ring = 0; ring < priv->rx_cfg.num_queues; ring++) {
@@ -185,8 +185,7 @@ gve_get_ethtool_stats(struct net_device *netdev,
if (!gve_rx_was_added_to_block(priv, ring))
num_stopped_rxqs++;
}
- tx_qid_to_stats_idx = kmalloc_array(num_tx_queues,
- sizeof(int), GFP_KERNEL);
+ tx_qid_to_stats_idx = kmalloc_objs(int, num_tx_queues, GFP_KERNEL);
if (!tx_qid_to_stats_idx) {
kfree(rx_qid_to_stats_idx);
return;
diff --git a/drivers/net/ethernet/google/gve/gve_flow_rule.c b/drivers/net/ethernet/google/gve/gve_flow_rule.c
index 0bb8cd1876a3..f97b124b1c6a 100644
--- a/drivers/net/ethernet/google/gve/gve_flow_rule.c
+++ b/drivers/net/ethernet/google/gve/gve_flow_rule.c
@@ -269,7 +269,7 @@ int gve_add_flow_rule(struct gve_priv *priv, struct ethtool_rxnfc *cmd)
if (!priv->max_flow_rules)
return -EOPNOTSUPP;
- rule = kvzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kvzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
return -ENOMEM;
diff --git a/drivers/net/ethernet/google/gve/gve_main.c b/drivers/net/ethernet/google/gve/gve_main.c
index 0ee864b0afe0..75c4748f9de2 100644
--- a/drivers/net/ethernet/google/gve/gve_main.c
+++ b/drivers/net/ethernet/google/gve/gve_main.c
@@ -151,8 +151,8 @@ static int gve_alloc_flow_rule_caches(struct gve_priv *priv)
return 0;
flow_rules_cache->rules_cache =
- kvcalloc(GVE_FLOW_RULES_CACHE_SIZE, sizeof(*flow_rules_cache->rules_cache),
- GFP_KERNEL);
+ kvzalloc_objs(*flow_rules_cache->rules_cache,
+ GVE_FLOW_RULES_CACHE_SIZE, GFP_KERNEL);
if (!flow_rules_cache->rules_cache) {
dev_err(&priv->pdev->dev, "Cannot alloc flow rules cache\n");
return -ENOMEM;
@@ -485,8 +485,8 @@ static int gve_alloc_notify_blocks(struct gve_priv *priv)
int i, j;
int err;
- priv->msix_vectors = kvcalloc(num_vecs_requested,
- sizeof(*priv->msix_vectors), GFP_KERNEL);
+ priv->msix_vectors = kvzalloc_objs(*priv->msix_vectors,
+ num_vecs_requested, GFP_KERNEL);
if (!priv->msix_vectors)
return -ENOMEM;
for (i = 0; i < num_vecs_requested; i++)
@@ -666,8 +666,8 @@ static int gve_setup_device_resources(struct gve_priv *priv)
}
if (!gve_is_gqi(priv)) {
- priv->ptype_lut_dqo = kvzalloc(sizeof(*priv->ptype_lut_dqo),
- GFP_KERNEL);
+ priv->ptype_lut_dqo = kvzalloc_obj(*priv->ptype_lut_dqo,
+ GFP_KERNEL);
if (!priv->ptype_lut_dqo) {
err = -ENOMEM;
goto abort_with_stats_report;
@@ -1090,17 +1090,17 @@ struct gve_queue_page_list *gve_alloc_queue_page_list(struct gve_priv *priv,
int err;
int i;
- qpl = kvzalloc(sizeof(*qpl), GFP_KERNEL);
+ qpl = kvzalloc_obj(*qpl, GFP_KERNEL);
if (!qpl)
return NULL;
qpl->id = id;
qpl->num_entries = 0;
- qpl->pages = kvcalloc(pages, sizeof(*qpl->pages), GFP_KERNEL);
+ qpl->pages = kvzalloc_objs(*qpl->pages, pages, GFP_KERNEL);
if (!qpl->pages)
goto abort;
- qpl->page_buses = kvcalloc(pages, sizeof(*qpl->page_buses), GFP_KERNEL);
+ qpl->page_buses = kvzalloc_objs(*qpl->page_buses, pages, GFP_KERNEL);
if (!qpl->page_buses)
goto abort;
diff --git a/drivers/net/ethernet/google/gve/gve_ptp.c b/drivers/net/ethernet/google/gve/gve_ptp.c
index de42fc2c19a1..eb836ebcbd60 100644
--- a/drivers/net/ethernet/google/gve/gve_ptp.c
+++ b/drivers/net/ethernet/google/gve/gve_ptp.c
@@ -70,7 +70,7 @@ static int gve_ptp_init(struct gve_priv *priv)
struct gve_ptp *ptp;
int err;
- priv->ptp = kzalloc(sizeof(*priv->ptp), GFP_KERNEL);
+ priv->ptp = kzalloc_obj(*priv->ptp, GFP_KERNEL);
if (!priv->ptp)
return -ENOMEM;
diff --git a/drivers/net/ethernet/google/gve/gve_rx.c b/drivers/net/ethernet/google/gve/gve_rx.c
index ec424d2f4f57..197513da0fe5 100644
--- a/drivers/net/ethernet/google/gve/gve_rx.c
+++ b/drivers/net/ethernet/google/gve/gve_rx.c
@@ -390,8 +390,8 @@ int gve_rx_alloc_rings_gqi(struct gve_priv *priv,
int err = 0;
int i, j;
- rx = kvcalloc(cfg->qcfg_rx->max_queues, sizeof(struct gve_rx_ring),
- GFP_KERNEL);
+ rx = kvzalloc_objs(struct gve_rx_ring, cfg->qcfg_rx->max_queues,
+ GFP_KERNEL);
if (!rx)
return -ENOMEM;
diff --git a/drivers/net/ethernet/google/gve/gve_rx_dqo.c b/drivers/net/ethernet/google/gve/gve_rx_dqo.c
index 63a96106a693..282c10e50d53 100644
--- a/drivers/net/ethernet/google/gve/gve_rx_dqo.c
+++ b/drivers/net/ethernet/google/gve/gve_rx_dqo.c
@@ -320,8 +320,8 @@ int gve_rx_alloc_rings_dqo(struct gve_priv *priv,
int err;
int i;
- rx = kvcalloc(cfg->qcfg_rx->max_queues, sizeof(struct gve_rx_ring),
- GFP_KERNEL);
+ rx = kvzalloc_objs(struct gve_rx_ring, cfg->qcfg_rx->max_queues,
+ GFP_KERNEL);
if (!rx)
return -ENOMEM;
diff --git a/drivers/net/ethernet/google/gve/gve_tx.c b/drivers/net/ethernet/google/gve/gve_tx.c
index 97efc8d27e6f..d2023cee1f35 100644
--- a/drivers/net/ethernet/google/gve/gve_tx.c
+++ b/drivers/net/ethernet/google/gve/gve_tx.c
@@ -345,8 +345,8 @@ int gve_tx_alloc_rings_gqi(struct gve_priv *priv,
return -EINVAL;
}
- tx = kvcalloc(cfg->qcfg->max_queues, sizeof(struct gve_tx_ring),
- GFP_KERNEL);
+ tx = kvzalloc_objs(struct gve_tx_ring, cfg->qcfg->max_queues,
+ GFP_KERNEL);
if (!tx)
return -ENOMEM;
diff --git a/drivers/net/ethernet/google/gve/gve_tx_dqo.c b/drivers/net/ethernet/google/gve/gve_tx_dqo.c
index 28e85730f785..44980f61e330 100644
--- a/drivers/net/ethernet/google/gve/gve_tx_dqo.c
+++ b/drivers/net/ethernet/google/gve/gve_tx_dqo.c
@@ -266,9 +266,8 @@ static int gve_tx_qpl_buf_init(struct gve_tx_ring *tx)
tx->dqo.qpl->num_entries;
int i;
- tx->dqo.tx_qpl_buf_next = kvcalloc(num_tx_qpl_bufs,
- sizeof(tx->dqo.tx_qpl_buf_next[0]),
- GFP_KERNEL);
+ tx->dqo.tx_qpl_buf_next = kvzalloc_objs(tx->dqo.tx_qpl_buf_next[0],
+ num_tx_qpl_bufs, GFP_KERNEL);
if (!tx->dqo.tx_qpl_buf_next)
return -ENOMEM;
@@ -337,9 +336,9 @@ static int gve_tx_alloc_ring_dqo(struct gve_priv *priv,
num_pending_packets /= 2;
tx->dqo.num_pending_packets = min_t(int, num_pending_packets, S16_MAX);
- tx->dqo.pending_packets = kvcalloc(tx->dqo.num_pending_packets,
- sizeof(tx->dqo.pending_packets[0]),
- GFP_KERNEL);
+ tx->dqo.pending_packets = kvzalloc_objs(tx->dqo.pending_packets[0],
+ tx->dqo.num_pending_packets,
+ GFP_KERNEL);
if (!tx->dqo.pending_packets)
goto err;
@@ -417,8 +416,8 @@ int gve_tx_alloc_rings_dqo(struct gve_priv *priv,
return -EINVAL;
}
- tx = kvcalloc(cfg->qcfg->max_queues, sizeof(struct gve_tx_ring),
- GFP_KERNEL);
+ tx = kvzalloc_objs(struct gve_tx_ring, cfg->qcfg->max_queues,
+ GFP_KERNEL);
if (!tx)
return -ENOMEM;
diff --git a/drivers/net/ethernet/hisilicon/hns/hnae.c b/drivers/net/ethernet/hisilicon/hns/hnae.c
index d4293f76d69d..5c3b4eaf144b 100644
--- a/drivers/net/ethernet/hisilicon/hns/hnae.c
+++ b/drivers/net/ethernet/hisilicon/hns/hnae.c
@@ -208,8 +208,8 @@ hnae_init_ring(struct hnae_queue *q, struct hnae_ring *ring, int flags)
assert(ring->next_to_use == 0);
assert(ring->next_to_clean == 0);
- ring->desc_cb = kcalloc(ring->desc_num, sizeof(ring->desc_cb[0]),
- GFP_KERNEL);
+ ring->desc_cb = kzalloc_objs(ring->desc_cb[0], ring->desc_num,
+ GFP_KERNEL);
if (!ring->desc_cb) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c b/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
index 8ce910f8d0cc..a4f4c4d14035 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
@@ -81,8 +81,7 @@ static struct hnae_handle *hns_ae_get_handle(struct hnae_ae_dev *dev,
vfnum_per_port = hns_ae_get_vf_num_per_port(dsaf_dev, port_id);
qnum_per_vf = hns_ae_get_q_num_per_vf(dsaf_dev, port_id);
- vf_cb = kzalloc(struct_size(vf_cb, ae_handle.qs, qnum_per_vf),
- GFP_KERNEL);
+ vf_cb = kzalloc_flex(*vf_cb, ae_handle.qs, qnum_per_vf, GFP_KERNEL);
if (unlikely(!vf_cb)) {
dev_err(dsaf_dev->dev, "malloc vf_cb fail!\n");
ae_handle = ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
index 6d746a9fb687..dbc6d5c6644c 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
@@ -1099,8 +1099,8 @@ static struct hns3_enet_ring *hns3_backup_ringparam(struct hns3_nic_priv *priv)
struct hns3_enet_ring *tmp_rings;
int i;
- tmp_rings = kcalloc(handle->kinfo.num_tqps * 2,
- sizeof(struct hns3_enet_ring), GFP_KERNEL);
+ tmp_rings = kzalloc_objs(struct hns3_enet_ring,
+ handle->kinfo.num_tqps * 2, GFP_KERNEL);
if (!tmp_rings)
return NULL;
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
index b76d25074e99..5a7ce1eea30c 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
@@ -800,7 +800,7 @@ hclge_dbg_dump_reg_tqp(struct hclge_dev *hdev,
if (ret)
return ret;
- desc_src = kcalloc(bd_num, sizeof(struct hclge_desc), GFP_KERNEL);
+ desc_src = kzalloc_objs(struct hclge_desc, bd_num, GFP_KERNEL);
if (!desc_src)
return -ENOMEM;
@@ -852,7 +852,7 @@ hclge_dbg_dump_reg_common(struct hclge_dev *hdev,
if (ret)
return ret;
- desc_src = kcalloc(bd_num, sizeof(struct hclge_desc), GFP_KERNEL);
+ desc_src = kzalloc_objs(struct hclge_desc, bd_num, GFP_KERNEL);
if (!desc_src)
return -ENOMEM;
@@ -2278,7 +2278,7 @@ static int hclge_dbg_get_imp_stats_info(struct seq_file *s, void *data)
return -EINVAL;
}
- desc_src = kcalloc(bd_num, sizeof(struct hclge_desc), GFP_KERNEL);
+ desc_src = kzalloc_objs(struct hclge_desc, bd_num, GFP_KERNEL);
if (!desc_src)
return -ENOMEM;
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c
index cc7f46c0b35f..02d21c5e8e0e 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c
@@ -2481,7 +2481,7 @@ static int hclge_handle_all_ras_errors(struct hclge_dev *hdev)
return ret;
bd_num = max_t(u32, mpf_bd_num, pf_bd_num);
- desc = kcalloc(bd_num, sizeof(struct hclge_desc), GFP_KERNEL);
+ desc = kzalloc_objs(struct hclge_desc, bd_num, GFP_KERNEL);
if (!desc)
return -ENOMEM;
@@ -3038,7 +3038,7 @@ static int hclge_handle_all_hw_msix_error(struct hclge_dev *hdev,
goto out;
bd_num = max_t(u32, mpf_bd_num, pf_bd_num);
- desc = kcalloc(bd_num, sizeof(struct hclge_desc), GFP_KERNEL);
+ desc = kzalloc_objs(struct hclge_desc, bd_num, GFP_KERNEL);
if (!desc)
return -ENOMEM;
@@ -3127,7 +3127,7 @@ void hclge_handle_all_hns_hw_errors(struct hnae3_ae_dev *ae_dev)
return;
bd_num = max_t(u32, mpf_bd_num, pf_bd_num);
- desc = kcalloc(bd_num, sizeof(struct hclge_desc), GFP_KERNEL);
+ desc = kzalloc_objs(struct hclge_desc, bd_num, GFP_KERNEL);
if (!desc)
return;
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
index edec994981c7..80aa566ad31f 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
@@ -492,7 +492,7 @@ static int hclge_mac_update_stats_complete(struct hclge_dev *hdev)
/* This may be called inside atomic sections,
* so GFP_ATOMIC is more suitable here
*/
- desc = kcalloc(desc_num, sizeof(struct hclge_desc), GFP_ATOMIC);
+ desc = kzalloc_objs(struct hclge_desc, desc_num, GFP_ATOMIC);
if (!desc)
return -ENOMEM;
@@ -2418,7 +2418,7 @@ int hclge_buffer_alloc(struct hclge_dev *hdev)
struct hclge_pkt_buf_alloc *pkt_buf;
int ret;
- pkt_buf = kzalloc(sizeof(*pkt_buf), GFP_KERNEL);
+ pkt_buf = kzalloc_obj(*pkt_buf, GFP_KERNEL);
if (!pkt_buf)
return -ENOMEM;
@@ -6582,7 +6582,7 @@ static int hclge_add_fd_entry(struct hnae3_handle *handle,
if (ret)
return ret;
- rule = kzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
return -ENOMEM;
@@ -7124,7 +7124,7 @@ static int hclge_add_fd_entry_by_arfs(struct hnae3_handle *handle, u16 queue_id,
return -ENOSPC;
}
- rule = kzalloc(sizeof(*rule), GFP_ATOMIC);
+ rule = kzalloc_obj(*rule, GFP_ATOMIC);
if (!rule) {
spin_unlock_bh(&hdev->fd_rule_lock);
return -ENOMEM;
@@ -7410,7 +7410,7 @@ static int hclge_add_cls_flower(struct hnae3_handle *handle,
return ret;
}
- rule = kzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
return -ENOMEM;
@@ -8578,7 +8578,7 @@ int hclge_update_mac_list(struct hclge_vport *vport,
return -ENOENT;
}
- mac_node = kzalloc(sizeof(*mac_node), GFP_ATOMIC);
+ mac_node = kzalloc_obj(*mac_node, GFP_ATOMIC);
if (!mac_node) {
spin_unlock_bh(&vport->mac_list_lock);
return -ENOMEM;
@@ -8986,7 +8986,7 @@ static void hclge_sync_vport_mac_table(struct hclge_vport *vport,
list_move_tail(&mac_node->node, &tmp_del_list);
break;
case HCLGE_MAC_TO_ADD:
- new_node = kzalloc(sizeof(*new_node), GFP_ATOMIC);
+ new_node = kzalloc_obj(*new_node, GFP_ATOMIC);
if (!new_node)
goto stop_traverse;
ether_addr_copy(new_node->mac_addr, mac_node->mac_addr);
@@ -9328,7 +9328,7 @@ int hclge_update_mac_node_for_dev_addr(struct hclge_vport *vport,
new_node = hclge_find_mac_node(list, new_addr);
if (!new_node) {
- new_node = kzalloc(sizeof(*new_node), GFP_ATOMIC);
+ new_node = kzalloc_obj(*new_node, GFP_ATOMIC);
if (!new_node)
return -ENOMEM;
@@ -10093,7 +10093,7 @@ static void hclge_add_vport_vlan_table(struct hclge_vport *vport, u16 vlan_id,
}
}
- vlan = kzalloc(sizeof(*vlan), GFP_KERNEL);
+ vlan = kzalloc_obj(*vlan, GFP_KERNEL);
if (!vlan) {
mutex_unlock(&hdev->vport_lock);
return;
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
index b7d4e06a55d4..7801c39df38d 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
@@ -212,7 +212,7 @@ static int hclge_get_ring_chain_from_mbx(
cur_chain = ring_chain;
for (i = 1; i < ring_num; i++) {
- new_chain = kzalloc(sizeof(*new_chain), GFP_KERNEL);
+ new_chain = kzalloc_obj(*new_chain, GFP_KERNEL);
if (!new_chain)
goto err;
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_regs.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_regs.c
index 8c057192aae6..3bd3195d789e 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_regs.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_regs.c
@@ -190,7 +190,7 @@ static int hclge_get_32_bit_regs(struct hclge_dev *hdev, u32 regs_num,
nodata_num = HCLGE_32_BIT_DESC_NODATA_LEN;
cmd_num = DIV_ROUND_UP(regs_num + nodata_num,
HCLGE_32_BIT_REG_RTN_DATANUM);
- desc = kcalloc(cmd_num, sizeof(struct hclge_desc), GFP_KERNEL);
+ desc = kzalloc_objs(struct hclge_desc, cmd_num, GFP_KERNEL);
if (!desc)
return -ENOMEM;
@@ -244,7 +244,7 @@ static int hclge_get_64_bit_regs(struct hclge_dev *hdev, u32 regs_num,
nodata_len = HCLGE_64_BIT_DESC_NODATA_LEN;
cmd_num = DIV_ROUND_UP(regs_num + nodata_len,
HCLGE_64_BIT_REG_RTN_DATANUM);
- desc = kcalloc(cmd_num, sizeof(struct hclge_desc), GFP_KERNEL);
+ desc = kzalloc_objs(struct hclge_desc, cmd_num, GFP_KERNEL);
if (!desc)
return -ENOMEM;
@@ -394,7 +394,7 @@ static int hclge_get_dfx_reg_len(struct hclge_dev *hdev, int *len)
int ret;
u32 i;
- bd_num_list = kcalloc(dfx_reg_type_num, sizeof(int), GFP_KERNEL);
+ bd_num_list = kzalloc_objs(int, dfx_reg_type_num, GFP_KERNEL);
if (!bd_num_list)
return -ENOMEM;
@@ -455,7 +455,7 @@ static int hclge_get_dfx_reg(struct hclge_dev *hdev, void *data)
int ret;
u32 i;
- bd_num_list = kcalloc(dfx_reg_type_num, sizeof(int), GFP_KERNEL);
+ bd_num_list = kzalloc_objs(int, dfx_reg_type_num, GFP_KERNEL);
if (!bd_num_list)
return -ENOMEM;
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
index 70327a73dee3..0cc911e6c732 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
@@ -977,7 +977,7 @@ static int hclgevf_update_mac_list(struct hnae3_handle *handle,
return -ENOENT;
}
- mac_node = kzalloc(sizeof(*mac_node), GFP_ATOMIC);
+ mac_node = kzalloc_obj(*mac_node, GFP_ATOMIC);
if (!mac_node) {
spin_unlock_bh(&hdev->mac_table.mac_list_lock);
return -ENOMEM;
@@ -1156,7 +1156,7 @@ static void hclgevf_sync_mac_list(struct hclgevf_dev *hdev,
list_move_tail(&mac_node->node, &tmp_del_list);
break;
case HCLGEVF_MAC_TO_ADD:
- new_node = kzalloc(sizeof(*new_node), GFP_ATOMIC);
+ new_node = kzalloc_obj(*new_node, GFP_ATOMIC);
if (!new_node)
goto stop_traverse;
diff --git a/drivers/net/ethernet/huawei/hinic/hinic_debugfs.c b/drivers/net/ethernet/huawei/hinic/hinic_debugfs.c
index 061952c6c21a..39ceba2820bf 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_debugfs.c
+++ b/drivers/net/ethernet/huawei/hinic/hinic_debugfs.c
@@ -88,7 +88,7 @@ static int hinic_dbg_get_func_table(struct hinic_dev *nic_dev, int idx)
int ret = ~0;
int err;
- read_data = kzalloc(sizeof(*read_data), GFP_KERNEL);
+ read_data = kzalloc_obj(*read_data, GFP_KERNEL);
if (!read_data)
return ~0;
@@ -182,7 +182,7 @@ static int create_dbg_files(struct hinic_dev *dev, enum hinic_dbg_type type, voi
struct hinic_debug_priv *tmp;
int i;
- tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
return -ENOMEM;
diff --git a/drivers/net/ethernet/huawei/hinic/hinic_devlink.c b/drivers/net/ethernet/huawei/hinic/hinic_devlink.c
index 300bc267a259..f4d34fdbc014 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_devlink.c
+++ b/drivers/net/ethernet/huawei/hinic/hinic_devlink.c
@@ -130,7 +130,7 @@ static int hinic_flash_fw(struct hinic_devlink_priv *priv, const u8 *data,
int total_len_flag = 0;
int err;
- fw_update_msg = kzalloc(sizeof(*fw_update_msg), GFP_KERNEL);
+ fw_update_msg = kzalloc_obj(*fw_update_msg, GFP_KERNEL);
if (!fw_update_msg)
return -ENOMEM;
diff --git a/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c b/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c
index f28528df5aac..d4787347d0c5 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c
+++ b/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c
@@ -1392,7 +1392,7 @@ static void hinic_get_ethtool_stats(struct net_device *netdev,
sizeof(u64)) ? *(u64 *)p : *(u32 *)p;
}
- port_stats = kzalloc(sizeof(*port_stats), GFP_KERNEL);
+ port_stats = kzalloc_obj(*port_stats, GFP_KERNEL);
if (!port_stats) {
memset(&data[i], 0,
ARRAY_SIZE(hinic_port_stats) * sizeof(*data));
diff --git a/drivers/net/ethernet/huawei/hinic/hinic_hw_mbox.c b/drivers/net/ethernet/huawei/hinic/hinic_hw_mbox.c
index 97c1584dc05b..f8aef328f8c0 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_hw_mbox.c
+++ b/drivers/net/ethernet/huawei/hinic/hinic_hw_mbox.c
@@ -487,7 +487,7 @@ static void recv_mbox_handler(struct hinic_mbox_func_to_func *func_to_func,
if (!rcv_mbox_temp->buf_out)
goto err_alloc_rcv_mbox_buf;
- mbox_work = kzalloc(sizeof(*mbox_work), GFP_KERNEL);
+ mbox_work = kzalloc_obj(*mbox_work, GFP_KERNEL);
if (!mbox_work)
goto err_alloc_mbox_work;
@@ -603,7 +603,7 @@ static bool check_vf_mbox_random_id(struct hinic_mbox_func_to_func *func_to_func
"The mailbox random id(0x%x) of func_id(0x%x) doesn't match with pf reservation(0x%x)\n",
random_id, src, func_to_func->vf_mbx_rand_id[src]);
- mbox_work = kzalloc(sizeof(*mbox_work), GFP_KERNEL);
+ mbox_work = kzalloc_obj(*mbox_work, GFP_KERNEL);
if (!mbox_work)
return false;
@@ -1402,7 +1402,7 @@ int hinic_func_to_func_init(struct hinic_hwdev *hwdev)
int err;
pfhwdev = container_of(hwdev, struct hinic_pfhwdev, hwdev);
- func_to_func = kzalloc(sizeof(*func_to_func), GFP_KERNEL);
+ func_to_func = kzalloc_obj(*func_to_func, GFP_KERNEL);
if (!func_to_func)
return -ENOMEM;
diff --git a/drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c b/drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c
index 4aa1f433ed24..8bda0a26a345 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c
+++ b/drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c
@@ -441,7 +441,7 @@ static void mgmt_recv_msg_handler(struct hinic_pf_to_mgmt *pf_to_mgmt,
{
struct hinic_mgmt_msg_handle_work *mgmt_work = NULL;
- mgmt_work = kzalloc(sizeof(*mgmt_work), GFP_KERNEL);
+ mgmt_work = kzalloc_obj(*mgmt_work, GFP_KERNEL);
if (!mgmt_work)
return;
diff --git a/drivers/net/ethernet/huawei/hinic/hinic_port.c b/drivers/net/ethernet/huawei/hinic/hinic_port.c
index 486fb0e20bef..868e666cc392 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_port.c
+++ b/drivers/net/ethernet/huawei/hinic/hinic_port.c
@@ -1032,7 +1032,7 @@ int hinic_get_phy_port_stats(struct hinic_dev *nic_dev,
struct pci_dev *pdev = hwif->pdev;
int err;
- port_stats = kzalloc(sizeof(*port_stats), GFP_KERNEL);
+ port_stats = kzalloc_obj(*port_stats, GFP_KERNEL);
if (!port_stats)
return -ENOMEM;
diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_cmdq.c b/drivers/net/ethernet/huawei/hinic3/hinic3_cmdq.c
index 86720bb119e9..ab38da085ae5 100644
--- a/drivers/net/ethernet/huawei/hinic3/hinic3_cmdq.c
+++ b/drivers/net/ethernet/huawei/hinic3/hinic3_cmdq.c
@@ -123,7 +123,7 @@ struct hinic3_cmd_buf *hinic3_alloc_cmd_buf(struct hinic3_hwdev *hwdev)
cmdqs = hwdev->cmdqs;
- cmd_buf = kmalloc(sizeof(*cmd_buf), GFP_ATOMIC);
+ cmd_buf = kmalloc_obj(*cmd_buf, GFP_ATOMIC);
if (!cmd_buf)
return NULL;
@@ -614,8 +614,8 @@ static int init_cmdq(struct hinic3_cmdq *cmdq, struct hinic3_hwdev *hwdev,
spin_lock_init(&cmdq->cmdq_lock);
- cmdq->cmd_infos = kcalloc(cmdq->wq.q_depth, sizeof(*cmdq->cmd_infos),
- GFP_KERNEL);
+ cmdq->cmd_infos = kzalloc_objs(*cmdq->cmd_infos, cmdq->wq.q_depth,
+ GFP_KERNEL);
if (!cmdq->cmd_infos) {
err = -ENOMEM;
return err;
@@ -738,7 +738,7 @@ static int init_cmdqs(struct hinic3_hwdev *hwdev)
{
struct hinic3_cmdqs *cmdqs;
- cmdqs = kzalloc(sizeof(*cmdqs), GFP_KERNEL);
+ cmdqs = kzalloc_obj(*cmdqs, GFP_KERNEL);
if (!cmdqs)
return -ENOMEM;
diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_eqs.c b/drivers/net/ethernet/huawei/hinic3/hinic3_eqs.c
index a2c3962116d5..78f50dc6513a 100644
--- a/drivers/net/ethernet/huawei/hinic3/hinic3_eqs.c
+++ b/drivers/net/ethernet/huawei/hinic3/hinic3_eqs.c
@@ -648,7 +648,7 @@ int hinic3_aeqs_init(struct hinic3_hwdev *hwdev, u16 num_aeqs,
u16 q_id;
int err;
- aeqs = kzalloc(sizeof(*aeqs), GFP_KERNEL);
+ aeqs = kzalloc_obj(*aeqs, GFP_KERNEL);
if (!aeqs)
return -ENOMEM;
@@ -720,7 +720,7 @@ int hinic3_ceqs_init(struct hinic3_hwdev *hwdev, u16 num_ceqs,
u16 q_id;
int err;
- ceqs = kzalloc(sizeof(*ceqs), GFP_KERNEL);
+ ceqs = kzalloc_obj(*ceqs, GFP_KERNEL);
if (!ceqs)
return -ENOMEM;
diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_filter.c b/drivers/net/ethernet/huawei/hinic3/hinic3_filter.c
index 6349d71f574b..6d378c86aabd 100644
--- a/drivers/net/ethernet/huawei/hinic3/hinic3_filter.c
+++ b/drivers/net/ethernet/huawei/hinic3/hinic3_filter.c
@@ -75,7 +75,7 @@ static void hinic3_add_filter(struct net_device *netdev,
struct hinic3_nic_dev *nic_dev = netdev_priv(netdev);
struct hinic3_mac_filter *f;
- f = kzalloc(sizeof(*f), GFP_ATOMIC);
+ f = kzalloc_obj(*f, GFP_ATOMIC);
if (!f)
return;
@@ -110,7 +110,7 @@ hinic3_mac_filter_entry_clone(const struct hinic3_mac_filter *src)
{
struct hinic3_mac_filter *f;
- f = kzalloc(sizeof(*f), GFP_ATOMIC);
+ f = kzalloc_obj(*f, GFP_ATOMIC);
if (!f)
return NULL;
diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_hw_cfg.c b/drivers/net/ethernet/huawei/hinic3/hinic3_hw_cfg.c
index 7827c1f626db..c65dec383535 100644
--- a/drivers/net/ethernet/huawei/hinic3/hinic3_hw_cfg.c
+++ b/drivers/net/ethernet/huawei/hinic3/hinic3_hw_cfg.c
@@ -86,8 +86,7 @@ static int hinic3_init_irq_info(struct hinic3_hwdev *hwdev)
}
irq_info = &cfg_mgmt->irq_info;
- irq_info->irq = kcalloc(intr_num, sizeof(struct hinic3_irq),
- GFP_KERNEL);
+ irq_info->irq = kzalloc_objs(struct hinic3_irq, intr_num, GFP_KERNEL);
if (!irq_info->irq)
return -ENOMEM;
@@ -130,7 +129,7 @@ int hinic3_init_cfg_mgmt(struct hinic3_hwdev *hwdev)
struct hinic3_cfg_mgmt_info *cfg_mgmt;
int err;
- cfg_mgmt = kzalloc(sizeof(*cfg_mgmt), GFP_KERNEL);
+ cfg_mgmt = kzalloc_obj(*cfg_mgmt, GFP_KERNEL);
if (!cfg_mgmt)
return -ENOMEM;
diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_hwdev.c b/drivers/net/ethernet/huawei/hinic3/hinic3_hwdev.c
index 7906d4057cf2..f0b402b792b9 100644
--- a/drivers/net/ethernet/huawei/hinic3/hinic3_hwdev.c
+++ b/drivers/net/ethernet/huawei/hinic3/hinic3_hwdev.c
@@ -528,7 +528,7 @@ int hinic3_init_hwdev(struct pci_dev *pdev)
struct hinic3_hwdev *hwdev;
int err;
- hwdev = kzalloc(sizeof(*hwdev), GFP_KERNEL);
+ hwdev = kzalloc_obj(*hwdev, GFP_KERNEL);
if (!hwdev)
return -ENOMEM;
diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_hwif.c b/drivers/net/ethernet/huawei/hinic3/hinic3_hwif.c
index 801f48e241f8..c1eeedbe0c15 100644
--- a/drivers/net/ethernet/huawei/hinic3/hinic3_hwif.c
+++ b/drivers/net/ethernet/huawei/hinic3/hinic3_hwif.c
@@ -432,7 +432,7 @@ int hinic3_init_hwif(struct hinic3_hwdev *hwdev)
u32 attr1, attr4, attr5;
int err;
- hwif = kzalloc(sizeof(*hwif), GFP_KERNEL);
+ hwif = kzalloc_obj(*hwif, GFP_KERNEL);
if (!hwif)
return -ENOMEM;
diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_lld.c b/drivers/net/ethernet/huawei/hinic3/hinic3_lld.c
index 87413e192f10..b5d026c95d39 100644
--- a/drivers/net/ethernet/huawei/hinic3/hinic3_lld.c
+++ b/drivers/net/ethernet/huawei/hinic3/hinic3_lld.c
@@ -60,7 +60,7 @@ static struct hinic3_adev *hinic3_add_one_adev(struct hinic3_hwdev *hwdev,
const char *svc_name;
int ret;
- hadev = kzalloc(sizeof(*hadev), GFP_KERNEL);
+ hadev = kzalloc_obj(*hadev, GFP_KERNEL);
if (!hadev)
return NULL;
@@ -250,7 +250,7 @@ static int hinic3_pci_init(struct pci_dev *pdev)
struct hinic3_pcidev *pci_adapter;
int err;
- pci_adapter = kzalloc(sizeof(*pci_adapter), GFP_KERNEL);
+ pci_adapter = kzalloc_obj(*pci_adapter, GFP_KERNEL);
if (!pci_adapter)
return -ENOMEM;
diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_main.c b/drivers/net/ethernet/huawei/hinic3/hinic3_main.c
index 6275d94dfefd..3c9efe037793 100644
--- a/drivers/net/ethernet/huawei/hinic3/hinic3_main.c
+++ b/drivers/net/ethernet/huawei/hinic3/hinic3_main.c
@@ -57,9 +57,8 @@ static int hinic3_init_intr_coalesce(struct net_device *netdev)
{
struct hinic3_nic_dev *nic_dev = netdev_priv(netdev);
- nic_dev->intr_coalesce = kcalloc(nic_dev->max_qps,
- sizeof(*nic_dev->intr_coalesce),
- GFP_KERNEL);
+ nic_dev->intr_coalesce = kzalloc_objs(*nic_dev->intr_coalesce,
+ nic_dev->max_qps, GFP_KERNEL);
if (!nic_dev->intr_coalesce)
return -ENOMEM;
diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_mbox.c b/drivers/net/ethernet/huawei/hinic3/hinic3_mbox.c
index c871fd0fb109..8c7bb38cc57d 100644
--- a/drivers/net/ethernet/huawei/hinic3/hinic3_mbox.c
+++ b/drivers/net/ethernet/huawei/hinic3/hinic3_mbox.c
@@ -320,7 +320,7 @@ static int hinic3_init_func_mbox_msg_channel(struct hinic3_hwdev *hwdev)
int err;
mbox = hwdev->mbox;
- mbox->func_msg = kzalloc(sizeof(*mbox->func_msg), GFP_KERNEL);
+ mbox->func_msg = kzalloc_obj(*mbox->func_msg, GFP_KERNEL);
if (!mbox->func_msg)
return -ENOMEM;
@@ -412,7 +412,7 @@ int hinic3_init_mbox(struct hinic3_hwdev *hwdev)
struct hinic3_mbox *mbox;
int err;
- mbox = kzalloc(sizeof(*mbox), GFP_KERNEL);
+ mbox = kzalloc_obj(*mbox, GFP_KERNEL);
if (!mbox)
return -ENOMEM;
diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_mgmt.c b/drivers/net/ethernet/huawei/hinic3/hinic3_mgmt.c
index be2a2ae75fc0..29422ac14bb8 100644
--- a/drivers/net/ethernet/huawei/hinic3/hinic3_mgmt.c
+++ b/drivers/net/ethernet/huawei/hinic3/hinic3_mgmt.c
@@ -120,7 +120,7 @@ static void hinic3_init_mgmt_msg_work(struct hinic3_msg_pf_to_mgmt *pf_to_mgmt,
{
struct mgmt_msg_handle_work *mgmt_work;
- mgmt_work = kmalloc(sizeof(*mgmt_work), GFP_KERNEL);
+ mgmt_work = kmalloc_obj(*mgmt_work, GFP_KERNEL);
if (!mgmt_work)
return;
@@ -252,7 +252,7 @@ int hinic3_pf_to_mgmt_init(struct hinic3_hwdev *hwdev)
struct hinic3_msg_pf_to_mgmt *pf_to_mgmt;
int err;
- pf_to_mgmt = kzalloc(sizeof(*pf_to_mgmt), GFP_KERNEL);
+ pf_to_mgmt = kzalloc_obj(*pf_to_mgmt, GFP_KERNEL);
if (!pf_to_mgmt)
return -ENOMEM;
diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_netdev_ops.c b/drivers/net/ethernet/huawei/hinic3/hinic3_netdev_ops.c
index 75adfe897e81..7830bff30859 100644
--- a/drivers/net/ethernet/huawei/hinic3/hinic3_netdev_ops.c
+++ b/drivers/net/ethernet/huawei/hinic3/hinic3_netdev_ops.c
@@ -99,9 +99,8 @@ static int hinic3_setup_num_qps(struct net_device *netdev)
nic_dev->num_qp_irq = 0;
- nic_dev->qps_msix_entries = kcalloc(nic_dev->max_qps,
- sizeof(struct msix_entry),
- GFP_KERNEL);
+ nic_dev->qps_msix_entries = kzalloc_objs(struct msix_entry,
+ nic_dev->max_qps, GFP_KERNEL);
if (!nic_dev->qps_msix_entries)
return -ENOMEM;
@@ -127,20 +126,20 @@ static int hinic3_alloc_txrxq_resources(struct net_device *netdev,
{
int err;
- q_params->txqs_res = kcalloc(q_params->num_qps,
- sizeof(*q_params->txqs_res), GFP_KERNEL);
+ q_params->txqs_res = kzalloc_objs(*q_params->txqs_res,
+ q_params->num_qps, GFP_KERNEL);
if (!q_params->txqs_res)
return -ENOMEM;
- q_params->rxqs_res = kcalloc(q_params->num_qps,
- sizeof(*q_params->rxqs_res), GFP_KERNEL);
+ q_params->rxqs_res = kzalloc_objs(*q_params->rxqs_res,
+ q_params->num_qps, GFP_KERNEL);
if (!q_params->rxqs_res) {
err = -ENOMEM;
goto err_free_txqs_res_arr;
}
- q_params->irq_cfg = kcalloc(q_params->num_qps,
- sizeof(*q_params->irq_cfg), GFP_KERNEL);
+ q_params->irq_cfg = kzalloc_objs(*q_params->irq_cfg, q_params->num_qps,
+ GFP_KERNEL);
if (!q_params->irq_cfg) {
err = -ENOMEM;
goto err_free_rxqs_res_arr;
diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_nic_io.c b/drivers/net/ethernet/huawei/hinic3/hinic3_nic_io.c
index 90887d2bb127..0ded1000b369 100644
--- a/drivers/net/ethernet/huawei/hinic3/hinic3_nic_io.c
+++ b/drivers/net/ethernet/huawei/hinic3/hinic3_nic_io.c
@@ -212,7 +212,7 @@ int hinic3_init_nic_io(struct hinic3_nic_dev *nic_dev)
struct hinic3_nic_io *nic_io;
int err;
- nic_io = kzalloc(sizeof(*nic_io), GFP_KERNEL);
+ nic_io = kzalloc_obj(*nic_io, GFP_KERNEL);
if (!nic_io)
return -ENOMEM;
@@ -408,13 +408,13 @@ int hinic3_alloc_qps(struct hinic3_nic_dev *nic_dev,
if (qp_params->num_qps > nic_io->max_qps || !qp_params->num_qps)
return -EINVAL;
- sqs = kcalloc(qp_params->num_qps, sizeof(*sqs), GFP_KERNEL);
+ sqs = kzalloc_objs(*sqs, qp_params->num_qps, GFP_KERNEL);
if (!sqs) {
err = -ENOMEM;
goto err_out;
}
- rqs = kcalloc(qp_params->num_qps, sizeof(*rqs), GFP_KERNEL);
+ rqs = kzalloc_objs(*rqs, qp_params->num_qps, GFP_KERNEL);
if (!rqs) {
err = -ENOMEM;
goto err_free_sqs;
diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_queue_common.c b/drivers/net/ethernet/huawei/hinic3/hinic3_queue_common.c
index fab9011de9ad..9c00d1ed825a 100644
--- a/drivers/net/ethernet/huawei/hinic3/hinic3_queue_common.c
+++ b/drivers/net/ethernet/huawei/hinic3/hinic3_queue_common.c
@@ -44,8 +44,8 @@ int hinic3_queue_pages_alloc(struct hinic3_hwdev *hwdev,
u32 pg_idx;
int err;
- qpages->pages = kcalloc(qpages->num_pages, sizeof(qpages->pages[0]),
- GFP_KERNEL);
+ qpages->pages = kzalloc_objs(qpages->pages[0], qpages->num_pages,
+ GFP_KERNEL);
if (!qpages->pages)
return -ENOMEM;
diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_rx.c b/drivers/net/ethernet/huawei/hinic3/hinic3_rx.c
index 159c291fa293..f2d43beab444 100644
--- a/drivers/net/ethernet/huawei/hinic3/hinic3_rx.c
+++ b/drivers/net/ethernet/huawei/hinic3/hinic3_rx.c
@@ -66,7 +66,7 @@ int hinic3_alloc_rxqs(struct net_device *netdev)
struct hinic3_rxq *rxq;
u16 q_id;
- nic_dev->rxqs = kcalloc(num_rxqs, sizeof(*nic_dev->rxqs), GFP_KERNEL);
+ nic_dev->rxqs = kzalloc_objs(*nic_dev->rxqs, num_rxqs, GFP_KERNEL);
if (!nic_dev->rxqs)
return -ENOMEM;
@@ -419,8 +419,8 @@ int hinic3_alloc_rxqs_res(struct net_device *netdev, u16 num_rq,
for (idx = 0; idx < num_rq; idx++) {
rqres = &rxqs_res[idx];
- rqres->rx_info = kcalloc(rq_depth, sizeof(*rqres->rx_info),
- GFP_KERNEL);
+ rqres->rx_info = kzalloc_objs(*rqres->rx_info, rq_depth,
+ GFP_KERNEL);
if (!rqres->rx_info)
goto err_free_rqres;
diff --git a/drivers/net/ethernet/huawei/hinic3/hinic3_tx.c b/drivers/net/ethernet/huawei/hinic3/hinic3_tx.c
index 6d3dc930ca97..8c988df8963e 100644
--- a/drivers/net/ethernet/huawei/hinic3/hinic3_tx.c
+++ b/drivers/net/ethernet/huawei/hinic3/hinic3_tx.c
@@ -48,7 +48,7 @@ int hinic3_alloc_txqs(struct net_device *netdev)
struct pci_dev *pdev = nic_dev->pdev;
struct hinic3_txq *txq;
- nic_dev->txqs = kcalloc(num_txqs, sizeof(*nic_dev->txqs), GFP_KERNEL);
+ nic_dev->txqs = kzalloc_objs(*nic_dev->txqs, num_txqs, GFP_KERNEL);
if (!nic_dev->txqs)
return -ENOMEM;
@@ -681,14 +681,14 @@ int hinic3_alloc_txqs_res(struct net_device *netdev, u16 num_sq,
for (idx = 0; idx < num_sq; idx++) {
tqres = &txqs_res[idx];
- tqres->tx_info = kcalloc(sq_depth, sizeof(*tqres->tx_info),
- GFP_KERNEL);
+ tqres->tx_info = kzalloc_objs(*tqres->tx_info, sq_depth,
+ GFP_KERNEL);
if (!tqres->tx_info)
goto err_free_tqres;
- tqres->bds = kcalloc(sq_depth * HINIC3_BDS_PER_SQ_WQEBB +
- HINIC3_MAX_SQ_SGE, sizeof(*tqres->bds),
- GFP_KERNEL);
+ tqres->bds = kzalloc_objs(*tqres->bds,
+ sq_depth * HINIC3_BDS_PER_SQ_WQEBB + HINIC3_MAX_SQ_SGE,
+ GFP_KERNEL);
if (!tqres->bds) {
kfree(tqres->tx_info);
goto err_free_tqres;
diff --git a/drivers/net/ethernet/ibm/ehea/ehea_main.c b/drivers/net/ethernet/ibm/ehea/ehea_main.c
index 9b006bc353a1..a2d7f5468590 100644
--- a/drivers/net/ethernet/ibm/ehea/ehea_main.c
+++ b/drivers/net/ethernet/ibm/ehea/ehea_main.c
@@ -173,7 +173,7 @@ static void ehea_update_firmware_handles(void)
num_portres * EHEA_NUM_PORTRES_FW_HANDLES;
if (num_fw_handles) {
- arr = kcalloc(num_fw_handles, sizeof(*arr), GFP_KERNEL);
+ arr = kzalloc_objs(*arr, num_fw_handles, GFP_KERNEL);
if (!arr)
goto out; /* Keep the existing array */
} else
@@ -256,7 +256,7 @@ static void ehea_update_bcmc_registrations(void)
}
if (num_registrations) {
- arr = kcalloc(num_registrations, sizeof(*arr), GFP_ATOMIC);
+ arr = kzalloc_objs(*arr, num_registrations, GFP_ATOMIC);
if (!arr)
goto out; /* Keep the existing array */
} else
@@ -1487,7 +1487,7 @@ static int ehea_init_port_res(struct ehea_port *port, struct ehea_port_res *pr,
pr->send_cq->attr.act_nr_of_cqes,
pr->recv_cq->attr.act_nr_of_cqes);
- init_attr = kzalloc(sizeof(*init_attr), GFP_KERNEL);
+ init_attr = kzalloc_obj(*init_attr, GFP_KERNEL);
if (!init_attr) {
ret = -ENOMEM;
pr_err("no mem for ehea_qp_init_attr\n");
@@ -1899,7 +1899,7 @@ static void ehea_add_multicast_entry(struct ehea_port *port, u8 *mc_mac_addr)
struct ehea_mc_list *ehea_mcl_entry;
u64 hret;
- ehea_mcl_entry = kzalloc(sizeof(*ehea_mcl_entry), GFP_ATOMIC);
+ ehea_mcl_entry = kzalloc_obj(*ehea_mcl_entry, GFP_ATOMIC);
if (!ehea_mcl_entry)
return;
@@ -2968,7 +2968,7 @@ static struct ehea_port *ehea_setup_single_port(struct ehea_adapter *adapter,
port->msg_enable = netif_msg_init(msg_level, EHEA_MSG_DEFAULT);
- port->mc_list = kzalloc(sizeof(struct ehea_mc_list), GFP_KERNEL);
+ port->mc_list = kzalloc_obj(struct ehea_mc_list, GFP_KERNEL);
if (!port->mc_list) {
ret = -ENOMEM;
goto out_free_ethdev;
diff --git a/drivers/net/ethernet/ibm/ehea/ehea_qmr.c b/drivers/net/ethernet/ibm/ehea/ehea_qmr.c
index db45373ea31c..e9d51e65efe8 100644
--- a/drivers/net/ethernet/ibm/ehea/ehea_qmr.c
+++ b/drivers/net/ethernet/ibm/ehea/ehea_qmr.c
@@ -114,7 +114,7 @@ struct ehea_cq *ehea_create_cq(struct ehea_adapter *adapter,
int ret;
void *vpage;
- cq = kzalloc(sizeof(*cq), GFP_KERNEL);
+ cq = kzalloc_obj(*cq, GFP_KERNEL);
if (!cq)
goto out_nomem;
@@ -235,7 +235,7 @@ struct ehea_eq *ehea_create_eq(struct ehea_adapter *adapter,
void *vpage;
struct ehea_eq *eq;
- eq = kzalloc(sizeof(*eq), GFP_KERNEL);
+ eq = kzalloc_obj(*eq, GFP_KERNEL);
if (!eq)
return NULL;
@@ -404,7 +404,7 @@ struct ehea_qp *ehea_create_qp(struct ehea_adapter *adapter,
u32 wqe_size_in_bytes_rq2, wqe_size_in_bytes_rq3;
- qp = kzalloc(sizeof(*qp), GFP_KERNEL);
+ qp = kzalloc_obj(*qp, GFP_KERNEL);
if (!qp)
return NULL;
@@ -542,7 +542,7 @@ static inline int ehea_init_top_bmap(struct ehea_top_bmap *ehea_top_bmap,
{
if (!ehea_top_bmap->dir[dir]) {
ehea_top_bmap->dir[dir] =
- kzalloc(sizeof(struct ehea_dir_bmap), GFP_KERNEL);
+ kzalloc_obj(struct ehea_dir_bmap, GFP_KERNEL);
if (!ehea_top_bmap->dir[dir])
return -ENOMEM;
}
@@ -553,7 +553,7 @@ static inline int ehea_init_bmap(struct ehea_bmap *ehea_bmap, int top, int dir)
{
if (!ehea_bmap->top[top]) {
ehea_bmap->top[top] =
- kzalloc(sizeof(struct ehea_top_bmap), GFP_KERNEL);
+ kzalloc_obj(struct ehea_top_bmap, GFP_KERNEL);
if (!ehea_bmap->top[top])
return -ENOMEM;
}
@@ -613,7 +613,7 @@ static int ehea_update_busmap(unsigned long pfn, unsigned long nr_pages, int add
return 0;
if (!ehea_bmap) {
- ehea_bmap = kzalloc(sizeof(struct ehea_bmap), GFP_KERNEL);
+ ehea_bmap = kzalloc_obj(struct ehea_bmap, GFP_KERNEL);
if (!ehea_bmap)
return -ENOMEM;
}
diff --git a/drivers/net/ethernet/ibm/ibmveth.c b/drivers/net/ethernet/ibm/ibmveth.c
index 6f0821f1e798..3108bf50576f 100644
--- a/drivers/net/ethernet/ibm/ibmveth.c
+++ b/drivers/net/ethernet/ibm/ibmveth.c
@@ -169,7 +169,7 @@ static int ibmveth_alloc_buffer_pool(struct ibmveth_buff_pool *pool)
if (!pool->free_map)
return -1;
- pool->dma_addr = kcalloc(pool->size, sizeof(dma_addr_t), GFP_KERNEL);
+ pool->dma_addr = kzalloc_objs(dma_addr_t, pool->size, GFP_KERNEL);
if (!pool->dma_addr) {
kfree(pool->free_map);
pool->free_map = NULL;
diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c
index 3808148c1fc7..1241be315d58 100644
--- a/drivers/net/ethernet/ibm/ibmvnic.c
+++ b/drivers/net/ethernet/ibm/ibmvnic.c
@@ -932,16 +932,14 @@ static void release_stats_buffers(struct ibmvnic_adapter *adapter)
static int init_stats_buffers(struct ibmvnic_adapter *adapter)
{
adapter->tx_stats_buffers =
- kcalloc(IBMVNIC_MAX_QUEUES,
- sizeof(struct ibmvnic_tx_queue_stats),
- GFP_KERNEL);
+ kzalloc_objs(struct ibmvnic_tx_queue_stats,
+ IBMVNIC_MAX_QUEUES, GFP_KERNEL);
if (!adapter->tx_stats_buffers)
return -ENOMEM;
adapter->rx_stats_buffers =
- kcalloc(IBMVNIC_MAX_QUEUES,
- sizeof(struct ibmvnic_rx_queue_stats),
- GFP_KERNEL);
+ kzalloc_objs(struct ibmvnic_rx_queue_stats,
+ IBMVNIC_MAX_QUEUES, GFP_KERNEL);
if (!adapter->rx_stats_buffers)
return -ENOMEM;
@@ -1096,9 +1094,8 @@ static int init_rx_pools(struct net_device *netdev)
/* Allocate/populate the pools. */
release_rx_pools(adapter);
- adapter->rx_pool = kcalloc(num_pools,
- sizeof(struct ibmvnic_rx_pool),
- GFP_KERNEL);
+ adapter->rx_pool = kzalloc_objs(struct ibmvnic_rx_pool, num_pools,
+ GFP_KERNEL);
if (!adapter->rx_pool) {
dev_err(dev, "Failed to allocate rx pools\n");
return -ENOMEM;
@@ -1120,17 +1117,15 @@ static int init_rx_pools(struct net_device *netdev)
rx_pool->index = i;
rx_pool->buff_size = ALIGN(buff_size, L1_CACHE_BYTES);
- rx_pool->free_map = kcalloc(rx_pool->size, sizeof(int),
- GFP_KERNEL);
+ rx_pool->free_map = kzalloc_objs(int, rx_pool->size, GFP_KERNEL);
if (!rx_pool->free_map) {
dev_err(dev, "Couldn't alloc free_map %d\n", i);
rc = -ENOMEM;
goto out_release;
}
- rx_pool->rx_buff = kcalloc(rx_pool->size,
- sizeof(struct ibmvnic_rx_buff),
- GFP_KERNEL);
+ rx_pool->rx_buff = kzalloc_objs(struct ibmvnic_rx_buff,
+ rx_pool->size, GFP_KERNEL);
if (!rx_pool->rx_buff) {
dev_err(dev, "Couldn't alloc rx buffers\n");
rc = -ENOMEM;
@@ -1243,13 +1238,12 @@ static int init_one_tx_pool(struct net_device *netdev,
{
int i;
- tx_pool->tx_buff = kcalloc(pool_size,
- sizeof(struct ibmvnic_tx_buff),
- GFP_KERNEL);
+ tx_pool->tx_buff = kzalloc_objs(struct ibmvnic_tx_buff, pool_size,
+ GFP_KERNEL);
if (!tx_pool->tx_buff)
return -ENOMEM;
- tx_pool->free_map = kcalloc(pool_size, sizeof(int), GFP_KERNEL);
+ tx_pool->free_map = kzalloc_objs(int, pool_size, GFP_KERNEL);
if (!tx_pool->free_map) {
kfree(tx_pool->tx_buff);
tx_pool->tx_buff = NULL;
@@ -1341,13 +1335,13 @@ static int init_tx_pools(struct net_device *netdev)
pool_size = adapter->req_tx_entries_per_subcrq;
num_pools = adapter->num_active_tx_scrqs;
- adapter->tx_pool = kcalloc(num_pools,
- sizeof(struct ibmvnic_tx_pool), GFP_KERNEL);
+ adapter->tx_pool = kzalloc_objs(struct ibmvnic_tx_pool, num_pools,
+ GFP_KERNEL);
if (!adapter->tx_pool)
return -ENOMEM;
- adapter->tso_pool = kcalloc(num_pools,
- sizeof(struct ibmvnic_tx_pool), GFP_KERNEL);
+ adapter->tso_pool = kzalloc_objs(struct ibmvnic_tx_pool, num_pools,
+ GFP_KERNEL);
/* To simplify release_tx_pools() ensure that ->tx_pool and
* ->tso_pool are either both NULL or both non-NULL.
*/
@@ -1471,8 +1465,8 @@ static int init_napi(struct ibmvnic_adapter *adapter)
{
int i;
- adapter->napi = kcalloc(adapter->req_rx_queues,
- sizeof(struct napi_struct), GFP_KERNEL);
+ adapter->napi = kzalloc_objs(struct napi_struct, adapter->req_rx_queues,
+ GFP_KERNEL);
if (!adapter->napi)
return -ENOMEM;
@@ -1859,7 +1853,7 @@ static int init_resources(struct ibmvnic_adapter *adapter)
if (rc)
return rc;
- adapter->vpd = kzalloc(sizeof(*adapter->vpd), GFP_KERNEL);
+ adapter->vpd = kzalloc_obj(*adapter->vpd, GFP_KERNEL);
if (!adapter->vpd)
return -ENOMEM;
@@ -3450,7 +3444,7 @@ static int ibmvnic_reset(struct ibmvnic_adapter *adapter,
}
}
- rwi = kzalloc(sizeof(*rwi), GFP_ATOMIC);
+ rwi = kzalloc_obj(*rwi, GFP_ATOMIC);
if (!rwi) {
ret = ENOMEM;
goto err;
@@ -4055,7 +4049,7 @@ static struct ibmvnic_sub_crq_queue *init_sub_crq_queue(struct ibmvnic_adapter
struct ibmvnic_sub_crq_queue *scrq;
int rc;
- scrq = kzalloc(sizeof(*scrq), GFP_KERNEL);
+ scrq = kzalloc_obj(*scrq, GFP_KERNEL);
if (!scrq)
return NULL;
@@ -4447,7 +4441,7 @@ static int init_sub_crqs(struct ibmvnic_adapter *adapter)
total_queues = adapter->req_tx_queues + adapter->req_rx_queues;
- allqueues = kcalloc(total_queues, sizeof(*allqueues), GFP_KERNEL);
+ allqueues = kzalloc_objs(*allqueues, total_queues, GFP_KERNEL);
if (!allqueues)
return -ENOMEM;
@@ -4486,8 +4480,8 @@ static int init_sub_crqs(struct ibmvnic_adapter *adapter)
}
}
- adapter->tx_scrq = kcalloc(adapter->req_tx_queues,
- sizeof(*adapter->tx_scrq), GFP_KERNEL);
+ adapter->tx_scrq = kzalloc_objs(*adapter->tx_scrq,
+ adapter->req_tx_queues, GFP_KERNEL);
if (!adapter->tx_scrq)
goto tx_failed;
@@ -4497,8 +4491,8 @@ static int init_sub_crqs(struct ibmvnic_adapter *adapter)
adapter->num_active_tx_scrqs++;
}
- adapter->rx_scrq = kcalloc(adapter->req_rx_queues,
- sizeof(*adapter->rx_scrq), GFP_KERNEL);
+ adapter->rx_scrq = kzalloc_objs(*adapter->rx_scrq,
+ adapter->req_rx_queues, GFP_KERNEL);
if (!adapter->rx_scrq)
goto rx_failed;
diff --git a/drivers/net/ethernet/intel/e100.c b/drivers/net/ethernet/intel/e100.c
index 5c56c1edd492..321a15a220a6 100644
--- a/drivers/net/ethernet/intel/e100.c
+++ b/drivers/net/ethernet/intel/e100.c
@@ -2156,7 +2156,7 @@ static int e100_rx_alloc_list(struct nic *nic)
nic->rx_to_use = nic->rx_to_clean = NULL;
nic->ru_running = RU_UNINITIALIZED;
- if (!(nic->rxs = kcalloc(count, sizeof(struct rx), GFP_KERNEL)))
+ if (!(nic->rxs = kzalloc_objs(struct rx, count, GFP_KERNEL)))
return -ENOMEM;
for (rx = nic->rxs, i = 0; i < count; rx++, i++) {
diff --git a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
index 726365c567ef..132644a387ef 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
@@ -582,13 +582,13 @@ static int e1000_set_ringparam(struct net_device *netdev,
rx_old = adapter->rx_ring;
err = -ENOMEM;
- txdr = kcalloc(adapter->num_tx_queues, sizeof(struct e1000_tx_ring),
- GFP_KERNEL);
+ txdr = kzalloc_objs(struct e1000_tx_ring, adapter->num_tx_queues,
+ GFP_KERNEL);
if (!txdr)
goto err_alloc_tx;
- rxdr = kcalloc(adapter->num_rx_queues, sizeof(struct e1000_rx_ring),
- GFP_KERNEL);
+ rxdr = kzalloc_objs(struct e1000_rx_ring, adapter->num_rx_queues,
+ GFP_KERNEL);
if (!rxdr)
goto err_alloc_rx;
@@ -984,8 +984,8 @@ static int e1000_setup_desc_rings(struct e1000_adapter *adapter)
if (!txdr->count)
txdr->count = E1000_DEFAULT_TXD;
- txdr->buffer_info = kcalloc(txdr->count, sizeof(struct e1000_tx_buffer),
- GFP_KERNEL);
+ txdr->buffer_info = kzalloc_objs(struct e1000_tx_buffer, txdr->count,
+ GFP_KERNEL);
if (!txdr->buffer_info) {
ret_val = 1;
goto err_nomem;
@@ -1043,8 +1043,8 @@ static int e1000_setup_desc_rings(struct e1000_adapter *adapter)
if (!rxdr->count)
rxdr->count = E1000_DEFAULT_RXD;
- rxdr->buffer_info = kcalloc(rxdr->count, sizeof(struct e1000_rx_buffer),
- GFP_KERNEL);
+ rxdr->buffer_info = kzalloc_objs(struct e1000_rx_buffer, rxdr->count,
+ GFP_KERNEL);
if (!rxdr->buffer_info) {
ret_val = 5;
goto err_nomem;
diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
index 7f078ec9c14c..b0ecd3413ffb 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_main.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
@@ -1322,13 +1322,13 @@ static int e1000_sw_init(struct e1000_adapter *adapter)
**/
static int e1000_alloc_queues(struct e1000_adapter *adapter)
{
- adapter->tx_ring = kcalloc(adapter->num_tx_queues,
- sizeof(struct e1000_tx_ring), GFP_KERNEL);
+ adapter->tx_ring = kzalloc_objs(struct e1000_tx_ring,
+ adapter->num_tx_queues, GFP_KERNEL);
if (!adapter->tx_ring)
return -ENOMEM;
- adapter->rx_ring = kcalloc(adapter->num_rx_queues,
- sizeof(struct e1000_rx_ring), GFP_KERNEL);
+ adapter->rx_ring = kzalloc_objs(struct e1000_rx_ring,
+ adapter->num_rx_queues, GFP_KERNEL);
if (!adapter->rx_ring) {
kfree(adapter->tx_ring);
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/e1000e/ethtool.c b/drivers/net/ethernet/intel/e1000e/ethtool.c
index 7b1ac90b3de4..21094a03189a 100644
--- a/drivers/net/ethernet/intel/e1000e/ethtool.c
+++ b/drivers/net/ethernet/intel/e1000e/ethtool.c
@@ -1173,8 +1173,8 @@ static int e1000_setup_desc_rings(struct e1000_adapter *adapter)
if (!tx_ring->count)
tx_ring->count = E1000_DEFAULT_TXD;
- tx_ring->buffer_info = kcalloc(tx_ring->count,
- sizeof(struct e1000_buffer), GFP_KERNEL);
+ tx_ring->buffer_info = kzalloc_objs(struct e1000_buffer, tx_ring->count,
+ GFP_KERNEL);
if (!tx_ring->buffer_info) {
ret_val = 1;
goto err_nomem;
@@ -1234,8 +1234,8 @@ static int e1000_setup_desc_rings(struct e1000_adapter *adapter)
if (!rx_ring->count)
rx_ring->count = E1000_DEFAULT_RXD;
- rx_ring->buffer_info = kcalloc(rx_ring->count,
- sizeof(struct e1000_buffer), GFP_KERNEL);
+ rx_ring->buffer_info = kzalloc_objs(struct e1000_buffer, rx_ring->count,
+ GFP_KERNEL);
if (!rx_ring->buffer_info) {
ret_val = 5;
goto err_nomem;
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index ddbe2f7d8112..edd503b79f98 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -2050,10 +2050,9 @@ void e1000e_set_interrupt_capability(struct e1000_adapter *adapter)
case E1000E_INT_MODE_MSIX:
if (adapter->flags & FLAG_HAS_MSIX) {
adapter->num_vectors = 3; /* RxQ0, TxQ0 and other */
- adapter->msix_entries = kcalloc(adapter->num_vectors,
- sizeof(struct
- msix_entry),
- GFP_KERNEL);
+ adapter->msix_entries = kzalloc_objs(struct msix_entry,
+ adapter->num_vectors,
+ GFP_KERNEL);
if (adapter->msix_entries) {
struct e1000_adapter *a = adapter;
@@ -2370,9 +2369,9 @@ int e1000e_setup_rx_resources(struct e1000_ring *rx_ring)
for (i = 0; i < rx_ring->count; i++) {
buffer_info = &rx_ring->buffer_info[i];
- buffer_info->ps_pages = kcalloc(PS_PAGE_BUFFERS,
- sizeof(struct e1000_ps_page),
- GFP_KERNEL);
+ buffer_info->ps_pages = kzalloc_objs(struct e1000_ps_page,
+ PS_PAGE_BUFFERS,
+ GFP_KERNEL);
if (!buffer_info->ps_pages)
goto err_pages;
}
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_main.c b/drivers/net/ethernet/intel/fm10k/fm10k_main.c
index b8c15b837fda..9f2620a14484 100644
--- a/drivers/net/ethernet/intel/fm10k/fm10k_main.c
+++ b/drivers/net/ethernet/intel/fm10k/fm10k_main.c
@@ -1597,7 +1597,7 @@ static int fm10k_alloc_q_vector(struct fm10k_intfc *interface,
ring_count = txr_count + rxr_count;
/* allocate q_vector and rings */
- q_vector = kzalloc(struct_size(q_vector, ring, ring_count), GFP_KERNEL);
+ q_vector = kzalloc_flex(*q_vector, ring, ring_count, GFP_KERNEL);
if (!q_vector)
return -ENOMEM;
@@ -1825,8 +1825,8 @@ static int fm10k_init_msix_capability(struct fm10k_intfc *interface)
v_budget = min_t(int, v_budget, hw->mac.max_msix_vectors);
/* A failure in MSI-X entry allocation is fatal. */
- interface->msix_entries = kcalloc(v_budget, sizeof(struct msix_entry),
- GFP_KERNEL);
+ interface->msix_entries = kzalloc_objs(struct msix_entry, v_budget,
+ GFP_KERNEL);
if (!interface->msix_entries)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c b/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
index 34ab5ff9823b..c86701be4364 100644
--- a/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
+++ b/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
@@ -649,7 +649,7 @@ int fm10k_queue_vlan_request(struct fm10k_intfc *interface,
/* This must be atomic since we may be called while the netdev
* addr_list_lock is held
*/
- request = kzalloc(sizeof(*request), GFP_ATOMIC);
+ request = kzalloc_obj(*request, GFP_ATOMIC);
if (!request)
return -ENOMEM;
@@ -688,7 +688,7 @@ int fm10k_queue_mac_request(struct fm10k_intfc *interface, u16 glort,
/* This must be atomic since we may be called while the netdev
* addr_list_lock is held
*/
- request = kzalloc(sizeof(*request), GFP_ATOMIC);
+ request = kzalloc_obj(*request, GFP_ATOMIC);
if (!request)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/i40e/i40e_client.c b/drivers/net/ethernet/intel/i40e/i40e_client.c
index 518bc738ea3b..dacebf773adf 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_client.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_client.c
@@ -291,7 +291,7 @@ static int i40e_register_auxiliary_dev(struct i40e_info *ldev, const char *name)
struct auxiliary_device *aux_dev;
int ret;
- i40e_aux_dev = kzalloc(sizeof(*i40e_aux_dev), GFP_KERNEL);
+ i40e_aux_dev = kzalloc_obj(*i40e_aux_dev, GFP_KERNEL);
if (!i40e_aux_dev)
return -ENOMEM;
@@ -337,7 +337,7 @@ static void i40e_client_add_instance(struct i40e_pf *pf)
struct i40e_client_instance *cdev = NULL;
struct netdev_hw_addr *mac = NULL;
- cdev = kzalloc(sizeof(*cdev), GFP_KERNEL);
+ cdev = kzalloc_obj(*cdev, GFP_KERNEL);
if (!cdev)
return;
@@ -466,7 +466,7 @@ int i40e_lan_add_device(struct i40e_pf *pf)
goto out;
}
}
- ldev = kzalloc(sizeof(*ldev), GFP_KERNEL);
+ ldev = kzalloc_obj(*ldev, GFP_KERNEL);
if (!ldev) {
ret = -ENOMEM;
goto out;
@@ -566,8 +566,8 @@ static int i40e_client_setup_qvlist(struct i40e_info *ldev,
struct i40e_qv_info *qv_info;
u32 v_idx, i, reg_idx, reg;
- ldev->qvlist_info = kzalloc(struct_size(ldev->qvlist_info, qv_info,
- qvlist_info->num_vectors), GFP_KERNEL);
+ ldev->qvlist_info = kzalloc_flex(*ldev->qvlist_info, qv_info,
+ qvlist_info->num_vectors, GFP_KERNEL);
if (!ldev->qvlist_info)
return -ENOMEM;
ldev->qvlist_info->num_vectors = qvlist_info->num_vectors;
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index c17b5d290f0a..8056fa9d9cf2 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -983,9 +983,8 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
int i, ret;
u16 switch_id;
- bw_data = kzalloc(sizeof(
- struct i40e_aqc_query_port_ets_config_resp),
- GFP_KERNEL);
+ bw_data = kzalloc_obj(struct i40e_aqc_query_port_ets_config_resp,
+ GFP_KERNEL);
if (!bw_data) {
ret = -ENOMEM;
goto command_write_done;
@@ -1229,7 +1228,7 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
struct libie_aq_desc *desc;
int ret;
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
goto command_write_done;
cnt = sscanf(&cmd_buf[11],
@@ -1277,7 +1276,7 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
u8 *buff;
int ret;
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
goto command_write_done;
cnt = sscanf(&cmd_buf[20],
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index 6a47ea0927e9..3ddc29db8dc5 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -2120,8 +2120,8 @@ static int i40e_set_ringparam(struct net_device *netdev,
netdev_info(netdev,
"Changing Tx descriptor count from %d to %d.\n",
vsi->tx_rings[0]->count, new_tx_count);
- tx_rings = kcalloc(tx_alloc_queue_pairs,
- sizeof(struct i40e_ring), GFP_KERNEL);
+ tx_rings = kzalloc_objs(struct i40e_ring, tx_alloc_queue_pairs,
+ GFP_KERNEL);
if (!tx_rings) {
err = -ENOMEM;
goto done;
@@ -2159,8 +2159,8 @@ static int i40e_set_ringparam(struct net_device *netdev,
netdev_info(netdev,
"Changing Rx descriptor count from %d to %d\n",
vsi->rx_rings[0]->count, new_rx_count);
- rx_rings = kcalloc(vsi->alloc_queue_pairs,
- sizeof(struct i40e_ring), GFP_KERNEL);
+ rx_rings = kzalloc_objs(struct i40e_ring,
+ vsi->alloc_queue_pairs, GFP_KERNEL);
if (!rx_rings) {
err = -ENOMEM;
goto free_tx;
@@ -3976,7 +3976,7 @@ static int i40e_add_flex_offset(struct list_head *flex_pit_list,
{
struct i40e_flex_pit *new_pit, *entry;
- new_pit = kzalloc(sizeof(*entry), GFP_KERNEL);
+ new_pit = kzalloc_obj(*entry, GFP_KERNEL);
if (!new_pit)
return -ENOMEM;
@@ -4867,7 +4867,7 @@ static int i40e_add_fdir_ethtool(struct i40e_vsi *vsi,
q_index = ring;
}
- input = kzalloc(sizeof(*input), GFP_KERNEL);
+ input = kzalloc_obj(*input, GFP_KERNEL);
if (!input)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 02de186dcc8f..05dc5ddc918c 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -1462,7 +1462,7 @@ static int i40e_correct_mac_vlan_filters(struct i40e_vsi *vsi,
return -ENOMEM;
/* Create a temporary i40e_new_mac_filter */
- new = kzalloc(sizeof(*new), GFP_ATOMIC);
+ new = kzalloc_obj(*new, GFP_ATOMIC);
if (!new)
return -ENOMEM;
@@ -1574,7 +1574,7 @@ static int i40e_correct_vf_mac_vlan_filters(struct i40e_vsi *vsi,
if (!add_head)
return -ENOMEM;
/* Create a temporary i40e_new_mac_filter */
- new_mac = kzalloc(sizeof(*new_mac), GFP_ATOMIC);
+ new_mac = kzalloc_obj(*new_mac, GFP_ATOMIC);
if (!new_mac)
return -ENOMEM;
new_mac->f = add_head;
@@ -1651,7 +1651,7 @@ struct i40e_mac_filter *i40e_add_filter(struct i40e_vsi *vsi,
f = i40e_find_filter(vsi, macaddr, vlan);
if (!f) {
- f = kzalloc(sizeof(*f), GFP_ATOMIC);
+ f = kzalloc_obj(*f, GFP_ATOMIC);
if (!f)
return NULL;
@@ -2606,7 +2606,7 @@ int i40e_sync_vsi_filters(struct i40e_vsi *vsi)
}
if (f->state == I40E_FILTER_NEW) {
/* Create a temporary i40e_new_mac_filter */
- new = kzalloc(sizeof(*new), GFP_ATOMIC);
+ new = kzalloc_obj(*new, GFP_ATOMIC);
if (!new)
goto err_no_memory_locked;
@@ -6686,7 +6686,7 @@ static int i40e_configure_queue_channels(struct i40e_vsi *vsi)
vsi->tc_seid_map[0] = vsi->seid;
for (i = 1; i < I40E_MAX_TRAFFIC_CLASS; i++) {
if (vsi->tc_config.enabled_tc & BIT(i)) {
- ch = kzalloc(sizeof(*ch), GFP_KERNEL);
+ ch = kzalloc_obj(*ch, GFP_KERNEL);
if (!ch) {
ret = -ENOMEM;
goto err_free;
@@ -7962,7 +7962,7 @@ static int i40e_setup_macvlans(struct i40e_vsi *vsi, u16 macvlan_cnt, u16 qcnt,
/* Create channels for macvlans */
INIT_LIST_HEAD(&vsi->macvlan_list);
for (i = 0; i < macvlan_cnt; i++) {
- ch = kzalloc(sizeof(*ch), GFP_KERNEL);
+ ch = kzalloc_obj(*ch, GFP_KERNEL);
if (!ch) {
ret = -ENOMEM;
goto err_free;
@@ -8074,7 +8074,7 @@ static void *i40e_fwd_add(struct net_device *netdev, struct net_device *vdev)
return ERR_PTR(-EBUSY);
/* create the fwd struct */
- fwd = kzalloc(sizeof(*fwd), GFP_KERNEL);
+ fwd = kzalloc_obj(*fwd, GFP_KERNEL);
if (!fwd)
return ERR_PTR(-ENOMEM);
@@ -8835,7 +8835,7 @@ static int i40e_configure_clsflower(struct i40e_vsi *vsi,
clear_bit(I40E_FLAG_FD_SB_TO_CLOUD_FILTER, vsi->back->flags);
}
- filter = kzalloc(sizeof(*filter), GFP_KERNEL);
+ filter = kzalloc_obj(*filter, GFP_KERNEL);
if (!filter)
return -ENOMEM;
@@ -11540,7 +11540,7 @@ static int i40e_vsi_mem_alloc(struct i40e_pf *pf, enum i40e_vsi_type type)
}
pf->next_vsi = ++i;
- vsi = kzalloc(sizeof(*vsi), GFP_KERNEL);
+ vsi = kzalloc_obj(*vsi, GFP_KERNEL);
if (!vsi) {
ret = -ENOMEM;
goto unlock_pf;
@@ -11711,7 +11711,7 @@ static int i40e_alloc_rings(struct i40e_vsi *vsi)
/* Set basic values in the rings to be used later during open() */
for (i = 0; i < vsi->alloc_queue_pairs; i++) {
/* allocate space for both Tx and Rx in one shot */
- ring = kcalloc(qpv, sizeof(struct i40e_ring), GFP_KERNEL);
+ ring = kzalloc_objs(struct i40e_ring, qpv, GFP_KERNEL);
if (!ring)
goto err_out;
@@ -11914,8 +11914,7 @@ static int i40e_init_msix(struct i40e_pf *pf)
"Calculation of remaining vectors underflowed. This is an accounting bug when determining total MSI-X vectors.\n");
v_budget += pf->num_lan_msix;
- pf->msix_entries = kcalloc(v_budget, sizeof(struct msix_entry),
- GFP_KERNEL);
+ pf->msix_entries = kzalloc_objs(struct msix_entry, v_budget, GFP_KERNEL);
if (!pf->msix_entries)
return -ENOMEM;
@@ -12028,7 +12027,7 @@ static int i40e_vsi_alloc_q_vector(struct i40e_vsi *vsi, int v_idx)
struct i40e_q_vector *q_vector;
/* allocate q_vector */
- q_vector = kzalloc(sizeof(struct i40e_q_vector), GFP_KERNEL);
+ q_vector = kzalloc_obj(struct i40e_q_vector, GFP_KERNEL);
if (!q_vector)
return -ENOMEM;
@@ -14581,7 +14580,7 @@ static int i40e_veb_mem_alloc(struct i40e_pf *pf)
goto err_alloc_veb; /* out of VEB slots! */
}
- veb = kzalloc(sizeof(*veb), GFP_KERNEL);
+ veb = kzalloc_obj(*veb, GFP_KERNEL);
if (!veb) {
ret = -ENOMEM;
goto err_alloc_veb;
@@ -15441,8 +15440,7 @@ static int i40e_init_recovery_mode(struct i40e_pf *pf, struct i40e_hw *hw)
pf->num_alloc_vsi = pf->hw.func_caps.num_vsis;
/* Set up the vsi struct and our local tracking of the MAIN PF vsi. */
- pf->vsi = kcalloc(pf->num_alloc_vsi, sizeof(struct i40e_vsi *),
- GFP_KERNEL);
+ pf->vsi = kzalloc_objs(struct i40e_vsi *, pf->num_alloc_vsi, GFP_KERNEL);
if (!pf->vsi) {
err = -ENOMEM;
goto err_switch_setup;
@@ -15865,8 +15863,7 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
}
/* Set up the *vsi struct and our local tracking of the MAIN PF vsi. */
- pf->vsi = kcalloc(pf->num_alloc_vsi, sizeof(struct i40e_vsi *),
- GFP_KERNEL);
+ pf->vsi = kzalloc_objs(struct i40e_vsi *, pf->num_alloc_vsi, GFP_KERNEL);
if (!pf->vsi) {
err = -ENOMEM;
goto err_switch_setup;
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ptp.c b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
index 33535418178b..416b42743439 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ptp.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
@@ -1132,7 +1132,7 @@ int i40e_ptp_alloc_pins(struct i40e_pf *pf)
return 0;
pf->ptp_pins =
- kzalloc(sizeof(struct i40e_ptp_pins_settings), GFP_KERNEL);
+ kzalloc_obj(struct i40e_ptp_pins_settings, GFP_KERNEL);
if (!pf->ptp_pins) {
dev_warn(&pf->pdev->dev, "Cannot allocate memory for PTP pins structure.\n");
@@ -1344,9 +1344,8 @@ static int i40e_init_pin_config(struct i40e_pf *pf)
pf->ptp_caps.pps = 1;
pf->ptp_caps.n_per_out = 2;
- pf->ptp_caps.pin_config = kcalloc(pf->ptp_caps.n_pins,
- sizeof(*pf->ptp_caps.pin_config),
- GFP_KERNEL);
+ pf->ptp_caps.pin_config = kzalloc_objs(*pf->ptp_caps.pin_config,
+ pf->ptp_caps.n_pins, GFP_KERNEL);
if (!pf->ptp_caps.pin_config)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
index cc0b9efc2637..f89927bfa9d1 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -1572,7 +1572,7 @@ int i40e_setup_rx_descriptors(struct i40e_ring *rx_ring)
rx_ring->xdp_prog = rx_ring->vsi->xdp_prog;
rx_ring->rx_bi =
- kcalloc(rx_ring->count, sizeof(*rx_ring->rx_bi), GFP_KERNEL);
+ kzalloc_objs(*rx_ring->rx_bi, rx_ring->count, GFP_KERNEL);
if (!rx_ring->rx_bi)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
index 1fa877b52f61..fb4560cc42f4 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
@@ -1261,7 +1261,7 @@ static void i40e_get_vlan_list_sync(struct i40e_vsi *vsi, u16 *num_vlans,
spin_lock_bh(&vsi->mac_filter_hash_lock);
*num_vlans = __i40e_getnum_vf_vsi_vlan_filters(vsi);
- *vlan_list = kcalloc(*num_vlans, sizeof(**vlan_list), GFP_ATOMIC);
+ *vlan_list = kzalloc_objs(**vlan_list, *num_vlans, GFP_ATOMIC);
if (!(*vlan_list))
goto err;
@@ -1844,7 +1844,7 @@ int i40e_alloc_vfs(struct i40e_pf *pf, u16 num_alloc_vfs)
}
}
/* allocate memory */
- vfs = kcalloc(num_alloc_vfs, sizeof(struct i40e_vf), GFP_KERNEL);
+ vfs = kzalloc_objs(struct i40e_vf, num_alloc_vfs, GFP_KERNEL);
if (!vfs) {
ret = -ENOMEM;
goto err_alloc;
@@ -3956,7 +3956,7 @@ static int i40e_vc_add_cloud_filter(struct i40e_vf *vf, u8 *msg)
goto err_out;
}
- cfilter = kzalloc(sizeof(*cfilter), GFP_KERNEL);
+ cfilter = kzalloc_obj(*cfilter, GFP_KERNEL);
if (!cfilter) {
aq_ret = -ENOMEM;
goto err_out;
diff --git a/drivers/net/ethernet/intel/iavf/iavf_ethtool.c b/drivers/net/ethernet/intel/iavf/iavf_ethtool.c
index 2cc21289a707..e0163e2e022b 100644
--- a/drivers/net/ethernet/intel/iavf/iavf_ethtool.c
+++ b/drivers/net/ethernet/intel/iavf/iavf_ethtool.c
@@ -1276,7 +1276,7 @@ static int iavf_add_fdir_ethtool(struct iavf_adapter *adapter, struct ethtool_rx
}
spin_unlock_bh(&adapter->fdir_fltr_lock);
- fltr = kzalloc(sizeof(*fltr), GFP_KERNEL);
+ fltr = kzalloc_obj(*fltr, GFP_KERNEL);
if (!fltr)
return -ENOMEM;
@@ -1519,7 +1519,7 @@ iavf_set_rxfh_fields(struct net_device *netdev,
if (hash_flds == IAVF_ADV_RSS_HASH_INVALID)
return -EINVAL;
- rss_new = kzalloc(sizeof(*rss_new), GFP_KERNEL);
+ rss_new = kzalloc_obj(*rss_new, GFP_KERNEL);
if (!rss_new)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c b/drivers/net/ethernet/intel/iavf/iavf_main.c
index 4b0fc8f354bc..5ee145d9dd0b 100644
--- a/drivers/net/ethernet/intel/iavf/iavf_main.c
+++ b/drivers/net/ethernet/intel/iavf/iavf_main.c
@@ -771,7 +771,7 @@ iavf_vlan_filter *iavf_add_vlan(struct iavf_adapter *adapter,
f = iavf_find_vlan(adapter, vlan);
if (!f) {
- f = kzalloc(sizeof(*f), GFP_ATOMIC);
+ f = kzalloc_obj(*f, GFP_ATOMIC);
if (!f)
goto clearout;
@@ -978,7 +978,7 @@ struct iavf_mac_filter *iavf_add_filter(struct iavf_adapter *adapter,
f = iavf_find_filter(adapter, macaddr);
if (!f) {
- f = kzalloc(sizeof(*f), GFP_ATOMIC);
+ f = kzalloc_obj(*f, GFP_ATOMIC);
if (!f)
return f;
@@ -1585,12 +1585,12 @@ static int iavf_alloc_queues(struct iavf_adapter *adapter)
(int)(num_online_cpus()));
- adapter->tx_rings = kcalloc(num_active_queues,
- sizeof(struct iavf_ring), GFP_KERNEL);
+ adapter->tx_rings = kzalloc_objs(struct iavf_ring, num_active_queues,
+ GFP_KERNEL);
if (!adapter->tx_rings)
goto err_out;
- adapter->rx_rings = kcalloc(num_active_queues,
- sizeof(struct iavf_ring), GFP_KERNEL);
+ adapter->rx_rings = kzalloc_objs(struct iavf_ring, num_active_queues,
+ GFP_KERNEL);
if (!adapter->rx_rings)
goto err_out;
@@ -1653,8 +1653,8 @@ static int iavf_set_interrupt_capability(struct iavf_adapter *adapter)
v_budget = min_t(int, pairs + NONQ_VECS,
(int)adapter->vf_res->max_vectors);
- adapter->msix_entries = kcalloc(v_budget,
- sizeof(struct msix_entry), GFP_KERNEL);
+ adapter->msix_entries = kzalloc_objs(struct msix_entry, v_budget,
+ GFP_KERNEL);
if (!adapter->msix_entries) {
err = -ENOMEM;
goto out;
@@ -1812,8 +1812,7 @@ static int iavf_alloc_q_vectors(struct iavf_adapter *adapter)
struct iavf_q_vector *q_vector;
num_q_vectors = adapter->num_msix_vectors - NONQ_VECS;
- adapter->q_vectors = kcalloc(num_q_vectors, sizeof(*q_vector),
- GFP_KERNEL);
+ adapter->q_vectors = kzalloc_objs(*q_vector, num_q_vectors, GFP_KERNEL);
if (!adapter->q_vectors)
return -ENOMEM;
@@ -4119,7 +4118,7 @@ static int iavf_configure_clsflower(struct iavf_adapter *adapter,
return -EINVAL;
}
- filter = kzalloc(sizeof(*filter), GFP_KERNEL);
+ filter = kzalloc_obj(*filter, GFP_KERNEL);
if (!filter)
return -ENOMEM;
filter->cookie = cls_flower->cookie;
@@ -4234,7 +4233,7 @@ static int iavf_add_cls_u32(struct iavf_adapter *adapter,
return -EOPNOTSUPP;
}
- fltr = kzalloc(sizeof(*fltr), GFP_KERNEL);
+ fltr = kzalloc_obj(*fltr, GFP_KERNEL);
if (!fltr)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/iavf/iavf_ptp.c b/drivers/net/ethernet/intel/iavf/iavf_ptp.c
index 9cbd8c154031..f2f3411878e1 100644
--- a/drivers/net/ethernet/intel/iavf/iavf_ptp.c
+++ b/drivers/net/ethernet/intel/iavf/iavf_ptp.c
@@ -133,7 +133,7 @@ static struct iavf_ptp_aq_cmd *iavf_allocate_ptp_cmd(enum virtchnl_ops v_opcode,
{
struct iavf_ptp_aq_cmd *cmd;
- cmd = kzalloc(struct_size(cmd, msg, msglen), GFP_KERNEL);
+ cmd = kzalloc_flex(*cmd, msg, msglen, GFP_KERNEL);
if (!cmd)
return NULL;
diff --git a/drivers/net/ethernet/intel/ice/devlink/devlink.c b/drivers/net/ethernet/intel/ice/devlink/devlink.c
index 2ef39cc70c21..38081776ce65 100644
--- a/drivers/net/ethernet/intel/ice/devlink/devlink.c
+++ b/drivers/net/ethernet/intel/ice/devlink/devlink.c
@@ -285,7 +285,7 @@ static int ice_devlink_info_get(struct devlink *devlink,
return err;
}
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ice/devlink/port.c b/drivers/net/ethernet/intel/ice/devlink/port.c
index 63fb36fc4b3d..ce830213e73a 100644
--- a/drivers/net/ethernet/intel/ice/devlink/port.c
+++ b/drivers/net/ethernet/intel/ice/devlink/port.c
@@ -58,8 +58,9 @@ static void ice_devlink_port_options_print(struct ice_pf *pf)
const char *str;
int status;
- options = kcalloc(ICE_AQC_PORT_OPT_MAX * ICE_MAX_PORT_PER_PCI_DEV,
- sizeof(*options), GFP_KERNEL);
+ options = kzalloc_objs(*options,
+ ICE_AQC_PORT_OPT_MAX * ICE_MAX_PORT_PER_PCI_DEV,
+ GFP_KERNEL);
if (!options)
return;
@@ -920,7 +921,7 @@ ice_alloc_dynamic_port(struct ice_pf *pf,
if (err)
return err;
- dyn_port = kzalloc(sizeof(*dyn_port), GFP_KERNEL);
+ dyn_port = kzalloc_obj(*dyn_port, GFP_KERNEL);
if (!dyn_port) {
err = -ENOMEM;
goto unroll_reserve_sf_num;
diff --git a/drivers/net/ethernet/intel/ice/ice_adapter.c b/drivers/net/ethernet/intel/ice/ice_adapter.c
index 0a8a48cd4bce..d5b857b07f21 100644
--- a/drivers/net/ethernet/intel/ice/ice_adapter.c
+++ b/drivers/net/ethernet/intel/ice/ice_adapter.c
@@ -55,7 +55,7 @@ static struct ice_adapter *ice_adapter_new(struct pci_dev *pdev)
{
struct ice_adapter *adapter;
- adapter = kzalloc(sizeof(*adapter), GFP_KERNEL);
+ adapter = kzalloc_obj(*adapter, GFP_KERNEL);
if (!adapter)
return NULL;
diff --git a/drivers/net/ethernet/intel/ice/ice_arfs.c b/drivers/net/ethernet/intel/ice/ice_arfs.c
index 1f7834c03550..fe9b40654df2 100644
--- a/drivers/net/ethernet/intel/ice/ice_arfs.c
+++ b/drivers/net/ethernet/intel/ice/ice_arfs.c
@@ -534,13 +534,12 @@ static int ice_init_arfs_cntrs(struct ice_vsi *vsi)
if (!vsi || vsi->type != ICE_VSI_PF)
return -EINVAL;
- vsi->arfs_fltr_cntrs = kzalloc(sizeof(*vsi->arfs_fltr_cntrs),
- GFP_KERNEL);
+ vsi->arfs_fltr_cntrs = kzalloc_obj(*vsi->arfs_fltr_cntrs, GFP_KERNEL);
if (!vsi->arfs_fltr_cntrs)
return -ENOMEM;
- vsi->arfs_last_fltr_id = kzalloc(sizeof(*vsi->arfs_last_fltr_id),
- GFP_KERNEL);
+ vsi->arfs_last_fltr_id = kzalloc_obj(*vsi->arfs_last_fltr_id,
+ GFP_KERNEL);
if (!vsi->arfs_last_fltr_id) {
kfree(vsi->arfs_fltr_cntrs);
vsi->arfs_fltr_cntrs = NULL;
@@ -562,8 +561,8 @@ void ice_init_arfs(struct ice_vsi *vsi)
if (!vsi || vsi->type != ICE_VSI_PF || ice_is_arfs_active(vsi))
return;
- arfs_fltr_list = kcalloc(ICE_MAX_ARFS_LIST, sizeof(*arfs_fltr_list),
- GFP_KERNEL);
+ arfs_fltr_list = kzalloc_objs(*arfs_fltr_list, ICE_MAX_ARFS_LIST,
+ GFP_KERNEL);
if (!arfs_fltr_list)
return;
diff --git a/drivers/net/ethernet/intel/ice/ice_base.c b/drivers/net/ethernet/intel/ice/ice_base.c
index afbff8aa9ceb..35089e80e810 100644
--- a/drivers/net/ethernet/intel/ice/ice_base.c
+++ b/drivers/net/ethernet/intel/ice/ice_base.c
@@ -107,7 +107,7 @@ static int ice_vsi_alloc_q_vector(struct ice_vsi *vsi, u16 v_idx)
int err;
/* allocate q_vector */
- q_vector = kzalloc(sizeof(*q_vector), GFP_KERNEL);
+ q_vector = kzalloc_obj(*q_vector, GFP_KERNEL);
if (!q_vector)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ice/ice_common.c b/drivers/net/ethernet/intel/ice/ice_common.c
index 64e798b8f18f..651cd5476f88 100644
--- a/drivers/net/ethernet/intel/ice/ice_common.c
+++ b/drivers/net/ethernet/intel/ice/ice_common.c
@@ -1067,7 +1067,7 @@ int ice_init_hw(struct ice_hw *hw)
if (status)
goto err_unroll_sched;
- pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL);
+ pcaps = kzalloc_obj(*pcaps, GFP_KERNEL);
if (!pcaps) {
status = -ENOMEM;
goto err_unroll_sched;
@@ -1103,8 +1103,8 @@ int ice_init_hw(struct ice_hw *hw)
/* Get MAC information */
/* A single port can report up to two (LAN and WoL) addresses */
- mac_buf = kcalloc(2, sizeof(struct ice_aqc_manage_mac_read_resp),
- GFP_KERNEL);
+ mac_buf = kzalloc_objs(struct ice_aqc_manage_mac_read_resp, 2,
+ GFP_KERNEL);
if (!mac_buf) {
status = -ENOMEM;
goto err_unroll_fltr_mgmt_struct;
@@ -3630,7 +3630,7 @@ int ice_update_link_info(struct ice_port_info *pi)
if (li->link_info & ICE_AQ_MEDIA_AVAILABLE) {
struct ice_aqc_get_phy_caps_data *pcaps __free(kfree) = NULL;
- pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL);
+ pcaps = kzalloc_obj(*pcaps, GFP_KERNEL);
if (!pcaps)
return -ENOMEM;
@@ -3881,7 +3881,7 @@ ice_set_fc(struct ice_port_info *pi, u8 *aq_failures, bool ena_auto_link_update)
*aq_failures = 0;
hw = pi->hw;
- pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL);
+ pcaps = kzalloc_obj(*pcaps, GFP_KERNEL);
if (!pcaps)
return -ENOMEM;
@@ -4020,7 +4020,7 @@ ice_cfg_phy_fec(struct ice_port_info *pi, struct ice_aqc_set_phy_cfg_data *cfg,
hw = pi->hw;
- pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL);
+ pcaps = kzalloc_obj(*pcaps, GFP_KERNEL);
if (!pcaps)
return -ENOMEM;
@@ -4358,7 +4358,7 @@ int ice_get_phy_lane_number(struct ice_hw *hw)
hw->device_id == ICE_DEV_ID_E825C_SGMII)
return hw->pf_id;
- options = kcalloc(ICE_AQC_PORT_OPT_MAX, sizeof(*options), GFP_KERNEL);
+ options = kzalloc_objs(*options, ICE_AQC_PORT_OPT_MAX, GFP_KERNEL);
if (!options)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ice/ice_dcb_lib.c b/drivers/net/ethernet/intel/ice/ice_dcb_lib.c
index 9fc8681cc58e..9d0e71598948 100644
--- a/drivers/net/ethernet/intel/ice/ice_dcb_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_dcb_lib.c
@@ -399,7 +399,7 @@ int ice_pf_dcb_cfg(struct ice_pf *pf, struct ice_dcbx_cfg *new_cfg, bool locked)
}
/* Notify AUX drivers about impending change to TCs */
- event = kzalloc(sizeof(*event), GFP_KERNEL);
+ event = kzalloc_obj(*event, GFP_KERNEL);
if (!event) {
ret = -ENOMEM;
goto free_cfg;
@@ -575,7 +575,7 @@ void ice_dcb_rebuild(struct ice_pf *pf)
dcb_error:
dev_err(dev, "Disabling DCB until new settings occur\n");
- err_cfg = kzalloc(sizeof(*err_cfg), GFP_KERNEL);
+ err_cfg = kzalloc_obj(*err_cfg, GFP_KERNEL);
if (!err_cfg) {
mutex_unlock(&pf->tc_mutex);
return;
@@ -641,7 +641,7 @@ int ice_dcb_sw_dflt_cfg(struct ice_pf *pf, bool ets_willing, bool locked)
hw = &pf->hw;
pi = hw->port_info;
- dcbcfg = kzalloc(sizeof(*dcbcfg), GFP_KERNEL);
+ dcbcfg = kzalloc_obj(*dcbcfg, GFP_KERNEL);
if (!dcbcfg)
return -ENOMEM;
@@ -791,7 +791,7 @@ void ice_pf_dcb_recfg(struct ice_pf *pf, bool locked)
privd = cdev->iidc_priv;
ice_setup_dcb_qos_info(pf, &privd->qos_info);
/* Notify the AUX drivers that TC change is finished */
- event = kzalloc(sizeof(*event), GFP_KERNEL);
+ event = kzalloc_obj(*event, GFP_KERNEL);
if (!event)
return;
diff --git a/drivers/net/ethernet/intel/ice/ice_dpll.c b/drivers/net/ethernet/intel/ice/ice_dpll.c
index baf02512d041..23bbfcbca490 100644
--- a/drivers/net/ethernet/intel/ice/ice_dpll.c
+++ b/drivers/net/ethernet/intel/ice/ice_dpll.c
@@ -3276,7 +3276,7 @@ static int ice_dpll_pin_notify(struct notifier_block *nb, unsigned long action,
if (pin->fwnode != info->fwnode)
return NOTIFY_DONE; /* Not this pin */
- work = kzalloc(sizeof(*work), GFP_KERNEL);
+ work = kzalloc_obj(*work, GFP_KERNEL);
if (!work)
return NOTIFY_DONE;
@@ -4145,7 +4145,7 @@ static int ice_dpll_init_info_e825c(struct ice_pf *pf)
d->clock_id = ice_generate_clock_id(pf);
d->num_inputs = ICE_SYNCE_CLK_NUM;
- d->inputs = kcalloc(d->num_inputs, sizeof(*d->inputs), GFP_KERNEL);
+ d->inputs = kzalloc_objs(*d->inputs, d->num_inputs, GFP_KERNEL);
if (!d->inputs)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ice/ice_eswitch_br.c b/drivers/net/ethernet/intel/ice/ice_eswitch_br.c
index cccb7ddf61c9..e043e8ddbc9d 100644
--- a/drivers/net/ethernet/intel/ice/ice_eswitch_br.c
+++ b/drivers/net/ethernet/intel/ice/ice_eswitch_br.c
@@ -129,11 +129,11 @@ ice_eswitch_br_fwd_rule_create(struct ice_hw *hw, int vsi_idx, int port_type,
lkups_cnt = ice_eswitch_br_get_lkups_cnt(vid);
- rule = kzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
return ERR_PTR(-ENOMEM);
- list = kcalloc(lkups_cnt, sizeof(*list), GFP_ATOMIC);
+ list = kzalloc_objs(*list, lkups_cnt, GFP_ATOMIC);
if (!list) {
err = -ENOMEM;
goto err_list_alloc;
@@ -190,11 +190,11 @@ ice_eswitch_br_guard_rule_create(struct ice_hw *hw, u16 vsi_idx,
lkups_cnt = ice_eswitch_br_get_lkups_cnt(vid);
- rule = kzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
goto err_exit;
- list = kcalloc(lkups_cnt, sizeof(*list), GFP_ATOMIC);
+ list = kzalloc_objs(*list, lkups_cnt, GFP_ATOMIC);
if (!list)
goto err_list_alloc;
@@ -233,7 +233,7 @@ ice_eswitch_br_flow_create(struct device *dev, struct ice_hw *hw, int vsi_idx,
struct ice_esw_br_flow *flow;
int err;
- flow = kzalloc(sizeof(*flow), GFP_KERNEL);
+ flow = kzalloc_obj(*flow, GFP_KERNEL);
if (!flow)
return ERR_PTR(-ENOMEM);
@@ -418,7 +418,7 @@ ice_eswitch_br_fdb_entry_create(struct net_device *netdev,
if (fdb_entry)
ice_eswitch_br_fdb_entry_notify_and_cleanup(bridge, fdb_entry);
- fdb_entry = kzalloc(sizeof(*fdb_entry), GFP_KERNEL);
+ fdb_entry = kzalloc_obj(*fdb_entry, GFP_KERNEL);
if (!fdb_entry) {
err = -ENOMEM;
goto err_exit;
@@ -513,7 +513,7 @@ ice_eswitch_br_fdb_work_alloc(struct switchdev_notifier_fdb_info *fdb_info,
struct ice_esw_br_fdb_work *work;
unsigned char *mac;
- work = kzalloc(sizeof(*work), GFP_ATOMIC);
+ work = kzalloc_obj(*work, GFP_ATOMIC);
if (!work)
return ERR_PTR(-ENOMEM);
@@ -698,7 +698,7 @@ ice_eswitch_br_vlan_create(u16 vid, u16 flags, struct ice_esw_br_port *port)
struct ice_esw_br_vlan *vlan;
int err;
- vlan = kzalloc(sizeof(*vlan), GFP_KERNEL);
+ vlan = kzalloc_obj(*vlan, GFP_KERNEL);
if (!vlan)
return ERR_PTR(-ENOMEM);
@@ -916,7 +916,7 @@ ice_eswitch_br_port_init(struct ice_esw_br *bridge)
{
struct ice_esw_br_port *br_port;
- br_port = kzalloc(sizeof(*br_port), GFP_KERNEL);
+ br_port = kzalloc_obj(*br_port, GFP_KERNEL);
if (!br_port)
return ERR_PTR(-ENOMEM);
@@ -1013,7 +1013,7 @@ ice_eswitch_br_init(struct ice_esw_br_offloads *br_offloads, int ifindex)
struct ice_esw_br *bridge;
int err;
- bridge = kzalloc(sizeof(*bridge), GFP_KERNEL);
+ bridge = kzalloc_obj(*bridge, GFP_KERNEL);
if (!bridge)
return ERR_PTR(-ENOMEM);
@@ -1217,7 +1217,7 @@ ice_eswitch_br_offloads_alloc(struct ice_pf *pf)
if (pf->eswitch.br_offloads)
return ERR_PTR(-EEXIST);
- br_offloads = kzalloc(sizeof(*br_offloads), GFP_KERNEL);
+ br_offloads = kzalloc_obj(*br_offloads, GFP_KERNEL);
if (!br_offloads)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c b/drivers/net/ethernet/intel/ice/ice_ethtool.c
index c6bc29cfb8e6..4cce51840369 100644
--- a/drivers/net/ethernet/intel/ice/ice_ethtool.c
+++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c
@@ -1652,7 +1652,7 @@ ice_get_fecparam(struct net_device *netdev, struct ethtool_fecparam *fecparam)
break;
}
- caps = kzalloc(sizeof(*caps), GFP_KERNEL);
+ caps = kzalloc_obj(*caps, GFP_KERNEL);
if (!caps)
return -ENOMEM;
@@ -2364,7 +2364,7 @@ ice_get_link_ksettings(struct net_device *netdev,
/* flow control is symmetric and always supported */
ethtool_link_ksettings_add_link_mode(ks, supported, Pause);
- caps = kzalloc(sizeof(*caps), GFP_KERNEL);
+ caps = kzalloc_obj(*caps, GFP_KERNEL);
if (!caps)
return -ENOMEM;
@@ -2629,7 +2629,7 @@ ice_set_link_ksettings(struct net_device *netdev,
pi->phy.link_info.link_info & ICE_AQ_LINK_UP)
return -EOPNOTSUPP;
- phy_caps = kzalloc(sizeof(*phy_caps), GFP_KERNEL);
+ phy_caps = kzalloc_obj(*phy_caps, GFP_KERNEL);
if (!phy_caps)
return -ENOMEM;
@@ -3265,7 +3265,7 @@ ice_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring,
netdev_info(netdev, "Changing Tx descriptor count from %d to %d\n",
vsi->tx_rings[0]->count, new_tx_cnt);
- tx_rings = kcalloc(vsi->num_txq, sizeof(*tx_rings), GFP_KERNEL);
+ tx_rings = kzalloc_objs(*tx_rings, vsi->num_txq, GFP_KERNEL);
if (!tx_rings) {
err = -ENOMEM;
goto done;
@@ -3295,7 +3295,7 @@ ice_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring,
netdev_info(netdev, "Changing XDP descriptor count from %d to %d\n",
vsi->xdp_rings[0]->count, new_tx_cnt);
- xdp_rings = kcalloc(vsi->num_xdp_txq, sizeof(*xdp_rings), GFP_KERNEL);
+ xdp_rings = kzalloc_objs(*xdp_rings, vsi->num_xdp_txq, GFP_KERNEL);
if (!xdp_rings) {
err = -ENOMEM;
goto free_tx;
@@ -3325,7 +3325,7 @@ ice_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring,
netdev_info(netdev, "Changing Rx descriptor count from %d to %d\n",
vsi->rx_rings[0]->count, new_rx_cnt);
- rx_rings = kcalloc(vsi->num_rxq, sizeof(*rx_rings), GFP_KERNEL);
+ rx_rings = kzalloc_objs(*rx_rings, vsi->num_rxq, GFP_KERNEL);
if (!rx_rings) {
err = -ENOMEM;
goto done;
@@ -3445,7 +3445,7 @@ ice_get_pauseparam(struct net_device *netdev, struct ethtool_pauseparam *pause)
dcbx_cfg = &pi->qos_cfg.local_dcbx_cfg;
- pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL);
+ pcaps = kzalloc_obj(*pcaps, GFP_KERNEL);
if (!pcaps)
return;
@@ -3511,7 +3511,7 @@ ice_set_pauseparam(struct net_device *netdev, struct ethtool_pauseparam *pause)
* so compare pause->autoneg with SW configured to prevent the user from
* using set pause param to chance autoneg.
*/
- pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL);
+ pcaps = kzalloc_obj(*pcaps, GFP_KERNEL);
if (!pcaps)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ice/ice_flex_pipe.c b/drivers/net/ethernet/intel/ice/ice_flex_pipe.c
index c0dbec369366..28516878fa53 100644
--- a/drivers/net/ethernet/intel/ice/ice_flex_pipe.c
+++ b/drivers/net/ethernet/intel/ice/ice_flex_pipe.c
@@ -3734,7 +3734,7 @@ ice_adj_prof_priorities(struct ice_hw *hw, enum ice_block blk, u16 vsig,
int status = 0;
u16 idx;
- attr_used = kcalloc(ICE_MAX_PTG_ATTRS, sizeof(*attr_used), GFP_KERNEL);
+ attr_used = kzalloc_objs(*attr_used, ICE_MAX_PTG_ATTRS, GFP_KERNEL);
if (!attr_used)
return -ENOMEM;
@@ -4021,7 +4021,7 @@ ice_find_prof_vsig(struct ice_hw *hw, enum ice_block blk, u64 hdl, u16 *vsig)
INIT_LIST_HEAD(&lst);
- t = kzalloc(sizeof(*t), GFP_KERNEL);
+ t = kzalloc_obj(*t, GFP_KERNEL);
if (!t)
return false;
diff --git a/drivers/net/ethernet/intel/ice/ice_flow.c b/drivers/net/ethernet/intel/ice/ice_flow.c
index c9b6d0a84bd1..51f718020073 100644
--- a/drivers/net/ethernet/intel/ice/ice_flow.c
+++ b/drivers/net/ethernet/intel/ice/ice_flow.c
@@ -1468,7 +1468,7 @@ ice_flow_add_prof_sync(struct ice_hw *hw, enum ice_block blk,
if (prof_id >= ids->count)
return -ENOSPC;
- params = kzalloc(sizeof(*params), GFP_KERNEL);
+ params = kzalloc_obj(*params, GFP_KERNEL);
if (!params)
return -ENOMEM;
@@ -1661,7 +1661,7 @@ ice_flow_set_parser_prof(struct ice_hw *hw, u16 dest_vsi, u16 fdir_vsi,
int status;
int i, idx;
- params = kzalloc(sizeof(*params), GFP_KERNEL);
+ params = kzalloc_obj(*params, GFP_KERNEL);
if (!params)
return -ENOMEM;
@@ -2552,7 +2552,7 @@ ice_add_rss_cfg_sync(struct ice_hw *hw, u16 vsi_handle,
segs_cnt = (cfg->hdr_type == ICE_RSS_OUTER_HEADERS) ?
ICE_FLOW_SEG_SINGLE : ICE_FLOW_SEG_MAX;
- segs = kcalloc(segs_cnt, sizeof(*segs), GFP_KERNEL);
+ segs = kzalloc_objs(*segs, segs_cnt, GFP_KERNEL);
if (!segs)
return -ENOMEM;
@@ -2699,7 +2699,7 @@ ice_rem_rss_cfg_sync(struct ice_hw *hw, u16 vsi_handle,
segs_cnt = (cfg->hdr_type == ICE_RSS_OUTER_HEADERS) ?
ICE_FLOW_SEG_SINGLE : ICE_FLOW_SEG_MAX;
- segs = kcalloc(segs_cnt, sizeof(*segs), GFP_KERNEL);
+ segs = kzalloc_objs(*segs, segs_cnt, GFP_KERNEL);
if (!segs)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ice/ice_fw_update.c b/drivers/net/ethernet/intel/ice/ice_fw_update.c
index 973a13d3d92a..b67fde32577a 100644
--- a/drivers/net/ethernet/intel/ice/ice_fw_update.c
+++ b/drivers/net/ethernet/intel/ice/ice_fw_update.c
@@ -862,7 +862,7 @@ int ice_get_pending_updates(struct ice_pf *pf, u8 *pending,
struct ice_hw *hw = &pf->hw;
int err;
- dev_caps = kzalloc(sizeof(*dev_caps), GFP_KERNEL);
+ dev_caps = kzalloc_obj(*dev_caps, GFP_KERNEL);
if (!dev_caps)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ice/ice_gnss.c b/drivers/net/ethernet/intel/ice/ice_gnss.c
index 6b26290452d4..e81d46412043 100644
--- a/drivers/net/ethernet/intel/ice/ice_gnss.c
+++ b/drivers/net/ethernet/intel/ice/ice_gnss.c
@@ -174,7 +174,7 @@ static struct gnss_serial *ice_gnss_struct_init(struct ice_pf *pf)
struct kthread_worker *kworker;
struct gnss_serial *gnss;
- gnss = kzalloc(sizeof(*gnss), GFP_KERNEL);
+ gnss = kzalloc_obj(*gnss, GFP_KERNEL);
if (!gnss)
return NULL;
diff --git a/drivers/net/ethernet/intel/ice/ice_idc.c b/drivers/net/ethernet/intel/ice/ice_idc.c
index 420d45c2558b..5487edc36260 100644
--- a/drivers/net/ethernet/intel/ice/ice_idc.c
+++ b/drivers/net/ethernet/intel/ice/ice_idc.c
@@ -308,7 +308,7 @@ int ice_plug_aux_dev(struct ice_pf *pf)
if (!cdev)
return -ENODEV;
- iadev = kzalloc(sizeof(*iadev), GFP_KERNEL);
+ iadev = kzalloc_obj(*iadev, GFP_KERNEL);
if (!iadev)
return -ENOMEM;
@@ -376,13 +376,13 @@ int ice_init_rdma(struct ice_pf *pf)
return 0;
}
- cdev = kzalloc(sizeof(*cdev), GFP_KERNEL);
+ cdev = kzalloc_obj(*cdev, GFP_KERNEL);
if (!cdev)
return -ENOMEM;
pf->cdev_info = cdev;
- privd = kzalloc(sizeof(*privd), GFP_KERNEL);
+ privd = kzalloc_obj(*privd, GFP_KERNEL);
if (!privd) {
ret = -ENOMEM;
goto err_privd_alloc;
diff --git a/drivers/net/ethernet/intel/ice/ice_irq.c b/drivers/net/ethernet/intel/ice/ice_irq.c
index 1d9b2d646474..3864fdcdeae0 100644
--- a/drivers/net/ethernet/intel/ice/ice_irq.c
+++ b/drivers/net/ethernet/intel/ice/ice_irq.c
@@ -81,7 +81,7 @@ static struct ice_irq_entry *ice_get_irq_res(struct ice_pf *pf,
unsigned int index;
int ret;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return NULL;
diff --git a/drivers/net/ethernet/intel/ice/ice_lag.c b/drivers/net/ethernet/intel/ice/ice_lag.c
index d2576d606e10..af285bba3b1a 100644
--- a/drivers/net/ethernet/intel/ice/ice_lag.c
+++ b/drivers/net/ethernet/intel/ice/ice_lag.c
@@ -742,7 +742,7 @@ static void ice_lag_build_netdev_list(struct ice_lag *lag,
INIT_LIST_HEAD(&ndlist->node);
rcu_read_lock();
for_each_netdev_in_bond_rcu(lag->upper_netdev, tmp_nd) {
- nl = kzalloc(sizeof(*nl), GFP_ATOMIC);
+ nl = kzalloc_obj(*nl, GFP_ATOMIC);
if (!nl)
break;
@@ -2310,7 +2310,7 @@ ice_lag_event_handler(struct notifier_block *notif_blk, unsigned long event,
return NOTIFY_DONE;
/* This memory will be freed at the end of ice_lag_process_event */
- lag_work = kzalloc(sizeof(*lag_work), GFP_KERNEL);
+ lag_work = kzalloc_obj(*lag_work, GFP_KERNEL);
if (!lag_work)
return -ENOMEM;
@@ -2332,7 +2332,7 @@ ice_lag_event_handler(struct notifier_block *notif_blk, unsigned long event,
rcu_read_lock();
for_each_netdev_in_bond_rcu(upper_netdev, tmp_nd) {
- nd_list = kzalloc(sizeof(*nd_list), GFP_ATOMIC);
+ nd_list = kzalloc_obj(*nd_list, GFP_ATOMIC);
if (!nd_list)
break;
@@ -2577,7 +2577,7 @@ int ice_init_lag(struct ice_pf *pf)
if (!ice_is_feature_supported(pf, ICE_F_SRIOV_LAG))
return 0;
- pf->lag = kzalloc(sizeof(*lag), GFP_KERNEL);
+ pf->lag = kzalloc_obj(*lag, GFP_KERNEL);
if (!pf->lag)
return -ENOMEM;
lag = pf->lag;
diff --git a/drivers/net/ethernet/intel/ice/ice_lib.c b/drivers/net/ethernet/intel/ice/ice_lib.c
index d921269e1fe7..c5695b2e2319 100644
--- a/drivers/net/ethernet/intel/ice/ice_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_lib.c
@@ -290,7 +290,7 @@ static void ice_vsi_delete_from_hw(struct ice_vsi *vsi)
int status;
ice_fltr_remove_all(vsi);
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (!ctxt)
return;
@@ -396,7 +396,7 @@ static int ice_vsi_alloc_ring_stats(struct ice_vsi *vsi)
ring_stats = tx_ring_stats[i];
if (!ring_stats) {
- ring_stats = kzalloc(sizeof(*ring_stats), GFP_KERNEL);
+ ring_stats = kzalloc_obj(*ring_stats, GFP_KERNEL);
if (!ring_stats)
goto err_out;
@@ -417,7 +417,7 @@ static int ice_vsi_alloc_ring_stats(struct ice_vsi *vsi)
ring_stats = rx_ring_stats[i];
if (!ring_stats) {
- ring_stats = kzalloc(sizeof(*ring_stats), GFP_KERNEL);
+ ring_stats = kzalloc_obj(*ring_stats, GFP_KERNEL);
if (!ring_stats)
goto err_out;
@@ -533,19 +533,19 @@ static int ice_vsi_alloc_stat_arrays(struct ice_vsi *vsi)
/* realloc will happen in rebuild path */
return 0;
- vsi_stat = kzalloc(sizeof(*vsi_stat), GFP_KERNEL);
+ vsi_stat = kzalloc_obj(*vsi_stat, GFP_KERNEL);
if (!vsi_stat)
return -ENOMEM;
vsi_stat->tx_ring_stats =
- kcalloc(vsi->alloc_txq, sizeof(*vsi_stat->tx_ring_stats),
- GFP_KERNEL);
+ kzalloc_objs(*vsi_stat->tx_ring_stats, vsi->alloc_txq,
+ GFP_KERNEL);
if (!vsi_stat->tx_ring_stats)
goto err_alloc_tx;
vsi_stat->rx_ring_stats =
- kcalloc(vsi->alloc_rxq, sizeof(*vsi_stat->rx_ring_stats),
- GFP_KERNEL);
+ kzalloc_objs(*vsi_stat->rx_ring_stats, vsi->alloc_rxq,
+ GFP_KERNEL);
if (!vsi_stat->rx_ring_stats)
goto err_alloc_rx;
@@ -1239,7 +1239,7 @@ static int ice_vsi_init(struct ice_vsi *vsi, u32 vsi_flags)
int ret = 0;
dev = ice_pf_to_dev(pf);
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (!ctxt)
return -ENOMEM;
@@ -1403,7 +1403,7 @@ static int ice_vsi_alloc_rings(struct ice_vsi *vsi)
struct ice_tx_ring *ring;
/* allocate with kzalloc(), free with kfree_rcu() */
- ring = kzalloc(sizeof(*ring), GFP_KERNEL);
+ ring = kzalloc_obj(*ring, GFP_KERNEL);
if (!ring)
goto err_out;
@@ -1427,7 +1427,7 @@ static int ice_vsi_alloc_rings(struct ice_vsi *vsi)
struct ice_rx_ring *ring;
/* allocate with kzalloc(), free with kfree_rcu() */
- ring = kzalloc(sizeof(*ring), GFP_KERNEL);
+ ring = kzalloc_obj(*ring, GFP_KERNEL);
if (!ring)
goto err_out;
@@ -3104,8 +3104,8 @@ int ice_vsi_rebuild(struct ice_vsi *vsi, u32 vsi_flags)
if (ret)
goto unlock;
- coalesce = kcalloc(vsi->num_q_vectors,
- sizeof(struct ice_coalesce_stored), GFP_KERNEL);
+ coalesce = kzalloc_objs(struct ice_coalesce_stored, vsi->num_q_vectors,
+ GFP_KERNEL);
if (!coalesce) {
ret = -ENOMEM;
goto decfg;
@@ -3387,7 +3387,7 @@ int ice_vsi_cfg_tc(struct ice_vsi *vsi, u8 ena_tc)
vsi->tc_cfg.ena_tc = ena_tc;
vsi->tc_cfg.numtc = num_tc;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index 4da37caa3ec9..45036a066012 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -875,7 +875,7 @@ void ice_print_link_msg(struct ice_vsi *vsi, bool isup)
an = "False";
/* Get FEC mode requested based on PHY caps last SW configuration */
- caps = kzalloc(sizeof(*caps), GFP_KERNEL);
+ caps = kzalloc_obj(*caps, GFP_KERNEL);
if (!caps) {
fec_req = "Unknown";
an_advertised = "Unknown";
@@ -1951,7 +1951,7 @@ static int ice_force_phys_link_state(struct ice_vsi *vsi, bool link_up)
pi = vsi->port_info;
- pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL);
+ pcaps = kzalloc_obj(*pcaps, GFP_KERNEL);
if (!pcaps)
return -ENOMEM;
@@ -2010,7 +2010,7 @@ static int ice_init_nvm_phy_type(struct ice_port_info *pi)
struct ice_pf *pf = pi->hw->back;
int err;
- pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL);
+ pcaps = kzalloc_obj(*pcaps, GFP_KERNEL);
if (!pcaps)
return -ENOMEM;
@@ -2122,7 +2122,7 @@ static int ice_init_phy_user_cfg(struct ice_port_info *pi)
if (!(phy->link_info.link_info & ICE_AQ_MEDIA_AVAILABLE))
return -EIO;
- pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL);
+ pcaps = kzalloc_obj(*pcaps, GFP_KERNEL);
if (!pcaps)
return -ENOMEM;
@@ -2202,7 +2202,7 @@ static int ice_configure_phy(struct ice_vsi *vsi)
if (test_bit(ICE_FLAG_LINK_DOWN_ON_CLOSE_ENA, pf->flags))
return ice_force_phys_link_state(vsi, true);
- pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL);
+ pcaps = kzalloc_obj(*pcaps, GFP_KERNEL);
if (!pcaps)
return -ENOMEM;
@@ -2236,7 +2236,7 @@ static int ice_configure_phy(struct ice_vsi *vsi)
goto done;
}
- cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
+ cfg = kzalloc_obj(*cfg, GFP_KERNEL);
if (!cfg) {
err = -ENOMEM;
goto done;
@@ -2385,7 +2385,7 @@ static void ice_service_task(struct work_struct *work)
if (test_and_clear_bit(ICE_AUX_ERR_PENDING, pf->state)) {
struct iidc_rdma_event *event;
- event = kzalloc(sizeof(*event), GFP_KERNEL);
+ event = kzalloc_obj(*event, GFP_KERNEL);
if (event) {
set_bit(IIDC_RDMA_EVENT_CRIT_ERR, event->type);
/* report the entire OICR value to AUX driver */
@@ -2408,7 +2408,7 @@ static void ice_service_task(struct work_struct *work)
if (test_and_clear_bit(ICE_FLAG_MTU_CHANGED, pf->flags)) {
struct iidc_rdma_event *event;
- event = kzalloc(sizeof(*event), GFP_KERNEL);
+ event = kzalloc_obj(*event, GFP_KERNEL);
if (event) {
set_bit(IIDC_RDMA_EVENT_AFTER_MTU_CHANGE, event->type);
ice_send_event_to_aux(pf, event);
@@ -2609,11 +2609,11 @@ static int ice_xdp_alloc_setup_rings(struct ice_vsi *vsi)
struct ice_ring_stats *ring_stats;
struct ice_tx_ring *xdp_ring;
- xdp_ring = kzalloc(sizeof(*xdp_ring), GFP_KERNEL);
+ xdp_ring = kzalloc_obj(*xdp_ring, GFP_KERNEL);
if (!xdp_ring)
goto free_xdp_rings;
- ring_stats = kzalloc(sizeof(*ring_stats), GFP_KERNEL);
+ ring_stats = kzalloc_obj(*ring_stats, GFP_KERNEL);
if (!ring_stats) {
ice_free_tx_ring(xdp_ring);
goto free_xdp_rings;
@@ -4204,7 +4204,7 @@ static void ice_set_safe_mode_vlan_cfg(struct ice_pf *pf)
if (!vsi)
return;
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (!ctxt)
return;
@@ -4910,7 +4910,7 @@ static int ice_init_pf_sw(struct ice_pf *pf)
int err;
/* create switch struct for the switch element created by FW on boot */
- pf->first_sw = kzalloc(sizeof(*pf->first_sw), GFP_KERNEL);
+ pf->first_sw = kzalloc_obj(*pf->first_sw, GFP_KERNEL);
if (!pf->first_sw)
return -ENOMEM;
@@ -8096,7 +8096,7 @@ int ice_set_rss_hfunc(struct ice_vsi *vsi, u8 hfunc)
hfunc != ICE_AQ_VSI_Q_OPT_RSS_HASH_SYM_TPLZ)
return -EOPNOTSUPP;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -8168,7 +8168,7 @@ static int ice_vsi_update_bridge_mode(struct ice_vsi *vsi, u16 bmode)
vsi_props = &vsi->info;
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (!ctxt)
return -ENOMEM;
@@ -9142,7 +9142,7 @@ static int ice_create_q_channels(struct ice_vsi *vsi)
if (!(vsi->all_enatc & BIT(i)))
continue;
- ch = kzalloc(sizeof(*ch), GFP_KERNEL);
+ ch = kzalloc_obj(*ch, GFP_KERNEL);
if (!ch) {
ret = -ENOMEM;
goto err_free;
@@ -9573,7 +9573,7 @@ ice_indr_setup_tc_block(struct net_device *netdev, struct Qdisc *sch,
if (indr_priv)
return -EEXIST;
- indr_priv = kzalloc(sizeof(*indr_priv), GFP_KERNEL);
+ indr_priv = kzalloc_obj(*indr_priv, GFP_KERNEL);
if (!indr_priv)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ice/ice_parser.c b/drivers/net/ethernet/intel/ice/ice_parser.c
index 664beb64f557..4dd3f666daa8 100644
--- a/drivers/net/ethernet/intel/ice/ice_parser.c
+++ b/drivers/net/ethernet/intel/ice/ice_parser.c
@@ -1895,7 +1895,7 @@ static struct ice_xlt_kb *ice_xlt_kb_get(struct ice_hw *hw, u32 sect_type)
if (!seg)
return ERR_PTR(-EINVAL);
- kb = kzalloc(sizeof(*kb), GFP_KERNEL);
+ kb = kzalloc_obj(*kb, GFP_KERNEL);
if (!kb)
return ERR_PTR(-ENOMEM);
@@ -2000,7 +2000,7 @@ struct ice_parser *ice_parser_create(struct ice_hw *hw)
struct ice_parser *p;
void *err;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c b/drivers/net/ethernet/intel/ice/ice_ptp.c
index 22c3986b910a..db2213e0e1b5 100644
--- a/drivers/net/ethernet/intel/ice/ice_ptp.c
+++ b/drivers/net/ethernet/intel/ice/ice_ptp.c
@@ -706,7 +706,7 @@ ice_ptp_alloc_tx_tracker(struct ice_ptp_tx *tx)
unsigned long *in_use, *stale;
struct ice_tx_tstamp *tstamps;
- tstamps = kcalloc(tx->len, sizeof(*tstamps), GFP_KERNEL);
+ tstamps = kzalloc_objs(*tstamps, tx->len, GFP_KERNEL);
in_use = bitmap_zalloc(tx->len, GFP_KERNEL);
stale = bitmap_zalloc(tx->len, GFP_KERNEL);
diff --git a/drivers/net/ethernet/intel/ice/ice_repr.c b/drivers/net/ethernet/intel/ice/ice_repr.c
index cb08746556a6..7bdcc0e5986b 100644
--- a/drivers/net/ethernet/intel/ice/ice_repr.c
+++ b/drivers/net/ethernet/intel/ice/ice_repr.c
@@ -369,7 +369,7 @@ static struct ice_repr *ice_repr_create(struct ice_vsi *src_vsi)
struct ice_repr *repr;
int err;
- repr = kzalloc(sizeof(*repr), GFP_KERNEL);
+ repr = kzalloc_obj(*repr, GFP_KERNEL);
if (!repr)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/intel/ice/ice_sf_eth.c b/drivers/net/ethernet/intel/ice/ice_sf_eth.c
index 1a2c94375ca7..93e62050e00a 100644
--- a/drivers/net/ethernet/intel/ice/ice_sf_eth.c
+++ b/drivers/net/ethernet/intel/ice/ice_sf_eth.c
@@ -273,7 +273,7 @@ ice_sf_eth_activate(struct ice_dynamic_port *dyn_port,
return err;
}
- sf_dev = kzalloc(sizeof(*sf_dev), GFP_KERNEL);
+ sf_dev = kzalloc_obj(*sf_dev, GFP_KERNEL);
if (!sf_dev) {
err = -ENOMEM;
NL_SET_ERR_MSG_MOD(extack, "Could not allocate SF memory");
diff --git a/drivers/net/ethernet/intel/ice/ice_sriov.c b/drivers/net/ethernet/intel/ice/ice_sriov.c
index 6b1126ddb561..7c15d62bb14b 100644
--- a/drivers/net/ethernet/intel/ice/ice_sriov.c
+++ b/drivers/net/ethernet/intel/ice/ice_sriov.c
@@ -695,7 +695,7 @@ static int ice_create_vf_entries(struct ice_pf *pf, u16 num_vfs)
pci_read_config_word(pdev, pos + PCI_SRIOV_VF_DID, &vf_pdev_id);
for (u16 vf_id = 0; vf_id < num_vfs; vf_id++) {
- vf = kzalloc(sizeof(*vf), GFP_KERNEL);
+ vf = kzalloc_obj(*vf, GFP_KERNEL);
if (!vf) {
err = -ENOMEM;
goto err_free_entries;
diff --git a/drivers/net/ethernet/intel/ice/ice_switch.c b/drivers/net/ethernet/intel/ice/ice_switch.c
index 84848f0123e7..515e96c44bfa 100644
--- a/drivers/net/ethernet/intel/ice/ice_switch.c
+++ b/drivers/net/ethernet/intel/ice/ice_switch.c
@@ -1847,7 +1847,7 @@ ice_cfg_rdma_fltr(struct ice_hw *hw, u16 vsi_handle, bool enable)
if (!cached_ctx)
return -ENOENT;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -2069,7 +2069,7 @@ ice_update_recipe_lkup_idx(struct ice_hw *hw,
u16 num_recps = ICE_MAX_NUM_RECIPES;
int status;
- rcp_list = kcalloc(num_recps, sizeof(*rcp_list), GFP_KERNEL);
+ rcp_list = kzalloc_objs(*rcp_list, num_recps, GFP_KERNEL);
if (!rcp_list)
return -ENOMEM;
@@ -2326,7 +2326,7 @@ ice_get_recp_frm_fw(struct ice_hw *hw, struct ice_sw_recipe *recps, u8 rid,
bitmap_zero(result_bm, ICE_MAX_FV_WORDS);
/* we need a buffer big enough to accommodate all the recipes */
- tmp = kcalloc(ICE_MAX_NUM_RECIPES, sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_objs(*tmp, ICE_MAX_NUM_RECIPES, GFP_KERNEL);
if (!tmp)
return -ENOMEM;
@@ -5096,7 +5096,7 @@ ice_add_sw_recipe(struct ice_hw *hw, struct ice_sw_recipe *rm,
if (recp_cnt > ICE_MAX_CHAIN_RECIPE_RES)
return -E2BIG;
- buf = kcalloc(recp_cnt, sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_objs(*buf, recp_cnt, GFP_KERNEL);
if (!buf)
return -ENOMEM;
@@ -5324,7 +5324,7 @@ ice_add_adv_recipe(struct ice_hw *hw, struct ice_adv_lkup_elem *lkups,
if (!lkups_cnt)
return -EINVAL;
- lkup_exts = kzalloc(sizeof(*lkup_exts), GFP_KERNEL);
+ lkup_exts = kzalloc_obj(*lkup_exts, GFP_KERNEL);
if (!lkup_exts)
return -ENOMEM;
@@ -5346,7 +5346,7 @@ ice_add_adv_recipe(struct ice_hw *hw, struct ice_adv_lkup_elem *lkups,
}
}
- rm = kzalloc(sizeof(*rm), GFP_KERNEL);
+ rm = kzalloc_obj(*rm, GFP_KERNEL);
if (!rm) {
status = -ENOMEM;
goto err_free_lkup_exts;
@@ -5530,7 +5530,7 @@ ice_dummy_packet_add_vlan(const struct ice_dummy_pkt_profile *dummy_pkt,
memcpy(pkt + etype_off + off, dummy_pkt->pkt + etype_off,
dummy_pkt->pkt_len - etype_off);
- profile = kzalloc(sizeof(*profile), GFP_KERNEL);
+ profile = kzalloc_obj(*profile, GFP_KERNEL);
if (!profile) {
kfree(offsets);
kfree(pkt);
diff --git a/drivers/net/ethernet/intel/ice/ice_tc_lib.c b/drivers/net/ethernet/intel/ice/ice_tc_lib.c
index fb9ea7f8ef44..c687da8d950d 100644
--- a/drivers/net/ethernet/intel/ice/ice_tc_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_tc_lib.c
@@ -931,7 +931,7 @@ ice_eswitch_add_tc_fltr(struct ice_vsi *vsi, struct ice_tc_flower_fltr *fltr)
return ice_pass_vf_tx_lldp(vsi, false);
lkups_cnt = ice_tc_count_lkups(flags, fltr);
- list = kcalloc(lkups_cnt, sizeof(*list), GFP_ATOMIC);
+ list = kzalloc_objs(*list, lkups_cnt, GFP_ATOMIC);
if (!list)
return -ENOMEM;
@@ -1177,7 +1177,7 @@ ice_add_tc_flower_adv_fltr(struct ice_vsi *vsi,
}
lkups_cnt = ice_tc_count_lkups(flags, tc_fltr);
- list = kcalloc(lkups_cnt, sizeof(*list), GFP_ATOMIC);
+ list = kzalloc_objs(*list, lkups_cnt, GFP_ATOMIC);
if (!list)
return -ENOMEM;
@@ -2191,7 +2191,7 @@ ice_add_tc_fltr(struct net_device *netdev, struct ice_vsi *vsi,
/* by default, set output to be INVALID */
*__fltr = NULL;
- fltr = kzalloc(sizeof(*fltr), GFP_KERNEL);
+ fltr = kzalloc_obj(*fltr, GFP_KERNEL);
if (!fltr)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ice/ice_txrx.c b/drivers/net/ethernet/intel/ice/ice_txrx.c
index 6fa201a14f51..642b761c38a2 100644
--- a/drivers/net/ethernet/intel/ice/ice_txrx.c
+++ b/drivers/net/ethernet/intel/ice/ice_txrx.c
@@ -397,7 +397,7 @@ static int ice_alloc_tstamp_ring(struct ice_tx_ring *tx_ring)
struct ice_tstamp_ring *tstamp_ring;
/* allocate with kzalloc(), free with kfree_rcu() */
- tstamp_ring = kzalloc(sizeof(*tstamp_ring), GFP_KERNEL);
+ tstamp_ring = kzalloc_obj(*tstamp_ring, GFP_KERNEL);
if (!tstamp_ring)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ice/ice_vf_lib.c b/drivers/net/ethernet/intel/ice/ice_vf_lib.c
index de9e81ccee66..dba56e317b77 100644
--- a/drivers/net/ethernet/intel/ice/ice_vf_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_vf_lib.c
@@ -1112,7 +1112,7 @@ static int ice_cfg_mac_antispoof(struct ice_vsi *vsi, bool enable)
struct ice_vsi_ctx *ctx;
int err;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ice/ice_vsi_vlan_lib.c b/drivers/net/ethernet/intel/ice/ice_vsi_vlan_lib.c
index ada78f83b3ac..79f18e693e04 100644
--- a/drivers/net/ethernet/intel/ice/ice_vsi_vlan_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_vsi_vlan_lib.c
@@ -94,7 +94,7 @@ static int ice_vsi_manage_vlan_insertion(struct ice_vsi *vsi)
struct ice_vsi_ctx *ctxt;
int err;
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (!ctxt)
return -ENOMEM;
@@ -141,7 +141,7 @@ static int ice_vsi_manage_vlan_stripping(struct ice_vsi *vsi, bool ena)
if (vsi->info.port_based_inner_vlan)
return 0;
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (!ctxt)
return -ENOMEM;
@@ -239,7 +239,7 @@ static int __ice_vsi_set_inner_port_vlan(struct ice_vsi *vsi, u16 pvid_info)
struct ice_vsi_ctx *ctxt;
int ret;
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (!ctxt)
return -ENOMEM;
@@ -292,7 +292,7 @@ int ice_vsi_clear_inner_port_vlan(struct ice_vsi *vsi)
struct ice_vsi_ctx *ctxt;
int ret;
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (!ctxt)
return -ENOMEM;
@@ -336,7 +336,7 @@ static int ice_cfg_vlan_pruning(struct ice_vsi *vsi, bool ena)
return 0;
pf = vsi->back;
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (!ctxt)
return -ENOMEM;
@@ -382,7 +382,7 @@ static int ice_cfg_vlan_antispoof(struct ice_vsi *vsi, bool enable)
struct ice_vsi_ctx *ctx;
int err;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -478,7 +478,7 @@ int ice_vsi_ena_outer_stripping(struct ice_vsi *vsi, u16 tpid)
if (tpid_to_vsi_outer_vlan_type(tpid, &tag_type))
return -EINVAL;
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (!ctxt)
return -ENOMEM;
@@ -529,7 +529,7 @@ int ice_vsi_dis_outer_stripping(struct ice_vsi *vsi)
if (vsi->info.port_based_outer_vlan)
return 0;
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (!ctxt)
return -ENOMEM;
@@ -584,7 +584,7 @@ int ice_vsi_ena_outer_insertion(struct ice_vsi *vsi, u16 tpid)
if (tpid_to_vsi_outer_vlan_type(tpid, &tag_type))
return -EINVAL;
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (!ctxt)
return -ENOMEM;
@@ -636,7 +636,7 @@ int ice_vsi_dis_outer_insertion(struct ice_vsi *vsi)
if (vsi->info.port_based_outer_vlan)
return 0;
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (!ctxt)
return -ENOMEM;
@@ -694,7 +694,7 @@ __ice_vsi_set_outer_port_vlan(struct ice_vsi *vsi, u16 vlan_info, u16 tpid)
if (tpid_to_vsi_outer_vlan_type(tpid, &tag_type))
return -EINVAL;
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (!ctxt)
return -ENOMEM;
@@ -767,7 +767,7 @@ int ice_vsi_clear_outer_port_vlan(struct ice_vsi *vsi)
struct ice_vsi_ctx *ctxt;
int err;
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (!ctxt)
return -ENOMEM;
@@ -794,7 +794,7 @@ int ice_vsi_clear_port_vlan(struct ice_vsi *vsi)
struct ice_vsi_ctx *ctxt;
int err;
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (!ctxt)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ice/ice_xsk.c b/drivers/net/ethernet/intel/ice/ice_xsk.c
index 953e68ed0f9a..e01eae07b6ed 100644
--- a/drivers/net/ethernet/intel/ice/ice_xsk.c
+++ b/drivers/net/ethernet/intel/ice/ice_xsk.c
@@ -174,9 +174,8 @@ int
ice_realloc_rx_xdp_bufs(struct ice_rx_ring *rx_ring, bool pool_present)
{
if (pool_present) {
- rx_ring->xdp_buf = kcalloc(rx_ring->count,
- sizeof(*rx_ring->xdp_buf),
- GFP_KERNEL);
+ rx_ring->xdp_buf = kzalloc_objs(*rx_ring->xdp_buf,
+ rx_ring->count, GFP_KERNEL);
if (!rx_ring->xdp_buf)
return -ENOMEM;
} else {
diff --git a/drivers/net/ethernet/intel/ice/virt/fdir.c b/drivers/net/ethernet/intel/ice/virt/fdir.c
index ae83c3914e29..8b2c882fb39c 100644
--- a/drivers/net/ethernet/intel/ice/virt/fdir.c
+++ b/drivers/net/ethernet/intel/ice/virt/fdir.c
@@ -875,7 +875,7 @@ ice_vc_fdir_parse_raw(struct ice_vf *vf,
if (hw->debug_mask & ICE_DBG_PARSER)
ice_parser_result_dump(hw, &rslt);
- conf->prof = kzalloc(sizeof(*conf->prof), GFP_KERNEL);
+ conf->prof = kzalloc_obj(*conf->prof, GFP_KERNEL);
if (!conf->prof) {
status = -ENOMEM;
goto err_parser_destroy;
@@ -2128,7 +2128,7 @@ int ice_vc_add_fdir_fltr(struct ice_vf *vf, u8 *msg)
goto err_exit;
}
- stat = kzalloc(sizeof(*stat), GFP_KERNEL);
+ stat = kzalloc_obj(*stat, GFP_KERNEL);
if (!stat) {
v_ret = VIRTCHNL_STATUS_ERR_NO_MEMORY;
dev_dbg(dev, "Alloc stat for VF %d failed\n", vf->vf_id);
@@ -2332,7 +2332,7 @@ int ice_vc_del_fdir_fltr(struct ice_vf *vf, u8 *msg)
goto err_exit;
}
- stat = kzalloc(sizeof(*stat), GFP_KERNEL);
+ stat = kzalloc_obj(*stat, GFP_KERNEL);
if (!stat) {
v_ret = VIRTCHNL_STATUS_ERR_NO_MEMORY;
dev_dbg(dev, "Alloc stat for VF %d failed\n", vf->vf_id);
diff --git a/drivers/net/ethernet/intel/ice/virt/rss.c b/drivers/net/ethernet/intel/ice/virt/rss.c
index 085e69ec0cfc..2f259b261512 100644
--- a/drivers/net/ethernet/intel/ice/virt/rss.c
+++ b/drivers/net/ethernet/intel/ice/virt/rss.c
@@ -380,7 +380,7 @@ ice_vc_rss_hash_update(struct ice_hw *hw, struct ice_vsi *vsi, u8 hash_type)
struct ice_vsi_ctx *ctx;
int ret;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ice/virt/virtchnl.c b/drivers/net/ethernet/intel/ice/virt/virtchnl.c
index f3f921134379..9abfba8ae6bd 100644
--- a/drivers/net/ethernet/intel/ice/virt/virtchnl.c
+++ b/drivers/net/ethernet/intel/ice/virt/virtchnl.c
@@ -1658,7 +1658,7 @@ static int ice_vc_get_offload_vlan_v2_caps(struct ice_vf *vf)
goto out;
}
- caps = kzalloc(sizeof(*caps), GFP_KERNEL);
+ caps = kzalloc_obj(*caps, GFP_KERNEL);
if (!caps) {
v_ret = VIRTCHNL_STATUS_ERR_NO_MEMORY;
goto out;
@@ -2477,7 +2477,7 @@ static int ice_vc_get_phc_time(struct ice_vf *vf)
v_ret = VIRTCHNL_STATUS_SUCCESS;
- phc_time = kzalloc(sizeof(*phc_time), GFP_KERNEL);
+ phc_time = kzalloc_obj(*phc_time, GFP_KERNEL);
if (!phc_time) {
v_ret = VIRTCHNL_STATUS_ERR_NO_MEMORY;
goto err;
diff --git a/drivers/net/ethernet/intel/idpf/idpf_controlq.c b/drivers/net/ethernet/intel/idpf/idpf_controlq.c
index 67894eda2d29..e3681dedc888 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_controlq.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_controlq.c
@@ -127,7 +127,7 @@ int idpf_ctlq_add(struct idpf_hw *hw,
bool is_rxq = false;
int err;
- cq = kzalloc(sizeof(*cq), GFP_KERNEL);
+ cq = kzalloc_obj(*cq, GFP_KERNEL);
if (!cq)
return -ENOMEM;
@@ -159,9 +159,8 @@ int idpf_ctlq_add(struct idpf_hw *hw,
idpf_ctlq_init_rxq_bufs(cq);
} else {
/* Allocate the array of msg pointers for TX queues */
- cq->bi.tx_msg = kcalloc(qinfo->len,
- sizeof(struct idpf_ctlq_msg *),
- GFP_KERNEL);
+ cq->bi.tx_msg = kzalloc_objs(struct idpf_ctlq_msg *, qinfo->len,
+ GFP_KERNEL);
if (!cq->bi.tx_msg) {
err = -ENOMEM;
goto init_dealloc_q_mem;
diff --git a/drivers/net/ethernet/intel/idpf/idpf_controlq_setup.c b/drivers/net/ethernet/intel/idpf/idpf_controlq_setup.c
index a942a6385d06..dfdbfb89b090 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_controlq_setup.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_controlq_setup.c
@@ -40,8 +40,8 @@ static int idpf_ctlq_alloc_bufs(struct idpf_hw *hw,
/* We'll be allocating the buffer info memory first, then we can
* allocate the mapped buffers for the event processing
*/
- cq->bi.rx_buff = kcalloc(cq->ring_size, sizeof(struct idpf_dma_mem *),
- GFP_KERNEL);
+ cq->bi.rx_buff = kzalloc_objs(struct idpf_dma_mem *, cq->ring_size,
+ GFP_KERNEL);
if (!cq->bi.rx_buff)
return -ENOMEM;
@@ -50,8 +50,8 @@ static int idpf_ctlq_alloc_bufs(struct idpf_hw *hw,
struct idpf_dma_mem *bi;
int num = 1; /* number of idpf_dma_mem to be allocated */
- cq->bi.rx_buff[i] = kcalloc(num, sizeof(struct idpf_dma_mem),
- GFP_KERNEL);
+ cq->bi.rx_buff[i] = kzalloc_objs(struct idpf_dma_mem, num,
+ GFP_KERNEL);
if (!cq->bi.rx_buff[i])
goto unwind_alloc_cq_bufs;
diff --git a/drivers/net/ethernet/intel/idpf/idpf_dev.c b/drivers/net/ethernet/intel/idpf/idpf_dev.c
index a4625638cf3f..c7c38e22c975 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_dev.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_dev.c
@@ -83,8 +83,7 @@ static int idpf_intr_reg_init(struct idpf_vport *vport,
u16 total_vecs;
total_vecs = idpf_get_reserved_vecs(vport->adapter);
- reg_vals = kcalloc(total_vecs, sizeof(struct idpf_vec_regs),
- GFP_KERNEL);
+ reg_vals = kzalloc_objs(struct idpf_vec_regs, total_vecs, GFP_KERNEL);
if (!reg_vals)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/idpf/idpf_ethtool.c b/drivers/net/ethernet/intel/idpf/idpf_ethtool.c
index 1d78a621d65b..8cfb09ff8ebd 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_ethtool.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_ethtool.c
@@ -200,11 +200,11 @@ static int idpf_add_flow_steer(struct net_device *netdev,
if (q_index >= num_rxq)
return -EINVAL;
- rule = kzalloc(struct_size(rule, rule_info, 1), GFP_KERNEL);
+ rule = kzalloc_flex(*rule, rule_info, 1, GFP_KERNEL);
if (!rule)
return -ENOMEM;
- fltr = kzalloc(sizeof(*fltr), GFP_KERNEL);
+ fltr = kzalloc_obj(*fltr, GFP_KERNEL);
if (!fltr) {
err = -ENOMEM;
goto out_free_rule;
@@ -310,7 +310,7 @@ static int idpf_del_flow_steer(struct net_device *netdev,
if (!idpf_sideband_action_ena(vport, fsp))
return -EOPNOTSUPP;
- rule = kzalloc(struct_size(rule, rule_info, 1), GFP_KERNEL);
+ rule = kzalloc_flex(*rule, rule_info, 1, GFP_KERNEL);
if (!rule)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/idpf/idpf_idc.c b/drivers/net/ethernet/intel/idpf/idpf_idc.c
index 6dad0593f7f2..42fb8659142a 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_idc.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_idc.c
@@ -60,7 +60,7 @@ static int idpf_plug_vport_aux_dev(struct iidc_rdma_core_dev_info *cdev_info,
struct auxiliary_device *adev;
int ret;
- iadev = kzalloc(sizeof(*iadev), GFP_KERNEL);
+ iadev = kzalloc_obj(*iadev, GFP_KERNEL);
if (!iadev)
return -ENOMEM;
@@ -120,7 +120,7 @@ static int idpf_idc_init_aux_vport_dev(struct idpf_vport *vport)
if (!(le16_to_cpu(vport_msg->vport_flags) & VIRTCHNL2_VPORT_ENABLE_RDMA))
return 0;
- vport->vdev_info = kzalloc(sizeof(*vdev_info), GFP_KERNEL);
+ vport->vdev_info = kzalloc_obj(*vdev_info, GFP_KERNEL);
if (!vport->vdev_info)
return -ENOMEM;
@@ -198,7 +198,7 @@ static int idpf_plug_core_aux_dev(struct iidc_rdma_core_dev_info *cdev_info)
struct auxiliary_device *adev;
int ret;
- iadev = kzalloc(sizeof(*iadev), GFP_KERNEL);
+ iadev = kzalloc_obj(*iadev, GFP_KERNEL);
if (!iadev)
return -ENOMEM;
@@ -414,12 +414,12 @@ int idpf_idc_init_aux_core_dev(struct idpf_adapter *adapter,
struct iidc_rdma_priv_dev_info *privd;
int err, i;
- adapter->cdev_info = kzalloc(sizeof(*cdev_info), GFP_KERNEL);
+ adapter->cdev_info = kzalloc_obj(*cdev_info, GFP_KERNEL);
if (!adapter->cdev_info)
return -ENOMEM;
cdev_info = adapter->cdev_info;
- privd = kzalloc(sizeof(*privd), GFP_KERNEL);
+ privd = kzalloc_obj(*privd, GFP_KERNEL);
if (!privd) {
err = -ENOMEM;
goto err_privd_alloc;
@@ -431,9 +431,8 @@ int idpf_idc_init_aux_core_dev(struct idpf_adapter *adapter,
privd->ftype = ftype;
privd->mapped_mem_regions =
- kcalloc(adapter->hw.num_lan_regs,
- sizeof(struct iidc_rdma_lan_mapped_mem_region),
- GFP_KERNEL);
+ kzalloc_objs(struct iidc_rdma_lan_mapped_mem_region,
+ adapter->hw.num_lan_regs, GFP_KERNEL);
if (!privd->mapped_mem_regions) {
err = -ENOMEM;
goto err_plug_aux_dev;
diff --git a/drivers/net/ethernet/intel/idpf/idpf_lib.c b/drivers/net/ethernet/intel/idpf/idpf_lib.c
index 94da5fbd56f1..a70f8ba7aad2 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_lib.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_lib.c
@@ -359,9 +359,9 @@ int idpf_intr_req(struct idpf_adapter *adapter)
num_rdma_vecs = IDPF_MIN_RDMA_VEC;
}
- adapter->rdma_msix_entries = kcalloc(num_rdma_vecs,
- sizeof(struct msix_entry),
- GFP_KERNEL);
+ adapter->rdma_msix_entries = kzalloc_objs(struct msix_entry,
+ num_rdma_vecs,
+ GFP_KERNEL);
if (!adapter->rdma_msix_entries) {
err = -ENOMEM;
goto free_irq;
@@ -369,8 +369,8 @@ int idpf_intr_req(struct idpf_adapter *adapter)
}
num_lan_vecs = actual_vecs - num_rdma_vecs;
- adapter->msix_entries = kcalloc(num_lan_vecs, sizeof(struct msix_entry),
- GFP_KERNEL);
+ adapter->msix_entries = kzalloc_objs(struct msix_entry, num_lan_vecs,
+ GFP_KERNEL);
if (!adapter->msix_entries) {
err = -ENOMEM;
goto free_rdma_msix;
@@ -577,7 +577,7 @@ static int __idpf_add_mac_filter(struct idpf_vport_config *vport_config,
return 0;
}
- f = kzalloc(sizeof(*f), GFP_ATOMIC);
+ f = kzalloc_obj(*f, GFP_ATOMIC);
if (!f) {
spin_unlock_bh(&vport_config->mac_filter_list_lock);
@@ -1239,7 +1239,7 @@ static struct idpf_vport *idpf_vport_alloc(struct idpf_adapter *adapter,
if (idx == IDPF_NO_FREE_SLOT)
return NULL;
- vport = kzalloc(sizeof(*vport), GFP_KERNEL);
+ vport = kzalloc_obj(*vport, GFP_KERNEL);
if (!vport)
return vport;
@@ -1248,14 +1248,14 @@ static struct idpf_vport *idpf_vport_alloc(struct idpf_adapter *adapter,
struct idpf_vport_config *vport_config;
struct idpf_q_coalesce *q_coal;
- vport_config = kzalloc(sizeof(*vport_config), GFP_KERNEL);
+ vport_config = kzalloc_obj(*vport_config, GFP_KERNEL);
if (!vport_config) {
kfree(vport);
return NULL;
}
- q_coal = kcalloc(num_max_q, sizeof(*q_coal), GFP_KERNEL);
+ q_coal = kzalloc_objs(*q_coal, num_max_q, GFP_KERNEL);
if (!q_coal) {
kfree(vport_config);
kfree(vport);
@@ -2027,7 +2027,7 @@ int idpf_initiate_soft_reset(struct idpf_vport *vport,
* error occurred, the existing vport will be untouched.
*
*/
- new_vport = kzalloc(sizeof(*vport), GFP_KERNEL);
+ new_vport = kzalloc_obj(*vport, GFP_KERNEL);
if (!new_vport)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/idpf/idpf_main.c b/drivers/net/ethernet/intel/idpf/idpf_main.c
index de5d722cc21d..be6760249dc8 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_main.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_main.c
@@ -238,7 +238,7 @@ static int idpf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
struct idpf_adapter *adapter;
int err;
- adapter = kzalloc(sizeof(*adapter), GFP_KERNEL);
+ adapter = kzalloc_obj(*adapter, GFP_KERNEL);
if (!adapter)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/idpf/idpf_ptp.c b/drivers/net/ethernet/intel/idpf/idpf_ptp.c
index 4a805a9541f0..c098d3f66a34 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_ptp.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_ptp.c
@@ -936,7 +936,7 @@ int idpf_ptp_init(struct idpf_adapter *adapter)
return -EOPNOTSUPP;
}
- adapter->ptp = kzalloc(sizeof(*adapter->ptp), GFP_KERNEL);
+ adapter->ptp = kzalloc_obj(*adapter->ptp, GFP_KERNEL);
if (!adapter->ptp)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/idpf/idpf_txrx.c b/drivers/net/ethernet/intel/idpf/idpf_txrx.c
index 376050308b06..259316af9ec5 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_txrx.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_txrx.c
@@ -183,8 +183,8 @@ static int idpf_tx_buf_alloc_all(struct idpf_tx_queue *tx_q)
tx_q->buf_pool_size = U16_MAX;
else
tx_q->buf_pool_size = tx_q->desc_count;
- tx_q->tx_buf = kcalloc(tx_q->buf_pool_size, sizeof(*tx_q->tx_buf),
- GFP_KERNEL);
+ tx_q->tx_buf = kzalloc_objs(*tx_q->tx_buf, tx_q->buf_pool_size,
+ GFP_KERNEL);
if (!tx_q->tx_buf)
return -ENOMEM;
@@ -1204,9 +1204,9 @@ static int idpf_qp_enable(const struct idpf_vport *vport,
if (!rsrc->xdp_txq_offset)
goto config;
- q_vector->xsksq = kcalloc(DIV_ROUND_UP(rsrc->num_rxq_grp,
- rsrc->num_q_vectors),
- sizeof(*q_vector->xsksq), GFP_KERNEL);
+ q_vector->xsksq = kzalloc_objs(*q_vector->xsksq,
+ DIV_ROUND_UP(rsrc->num_rxq_grp, rsrc->num_q_vectors),
+ GFP_KERNEL);
if (!q_vector->xsksq)
return -ENOMEM;
@@ -1439,8 +1439,7 @@ static int idpf_vport_init_fast_path_txqs(struct idpf_vport *vport,
struct work_struct *tstamp_task = &vport->tstamp_task;
int k = 0;
- vport->txqs = kcalloc(rsrc->num_txq, sizeof(*vport->txqs),
- GFP_KERNEL);
+ vport->txqs = kzalloc_objs(*vport->txqs, rsrc->num_txq, GFP_KERNEL);
if (!vport->txqs)
return -ENOMEM;
@@ -1711,8 +1710,8 @@ static int idpf_txq_group_alloc(struct idpf_vport *vport,
{
bool split, flow_sch_en;
- rsrc->txq_grps = kcalloc(rsrc->num_txq_grp,
- sizeof(*rsrc->txq_grps), GFP_KERNEL);
+ rsrc->txq_grps = kzalloc_objs(*rsrc->txq_grps, rsrc->num_txq_grp,
+ GFP_KERNEL);
if (!rsrc->txq_grps)
return -ENOMEM;
@@ -1728,8 +1727,8 @@ static int idpf_txq_group_alloc(struct idpf_vport *vport,
tx_qgrp->num_txq = num_txq;
for (unsigned int j = 0; j < tx_qgrp->num_txq; j++) {
- tx_qgrp->txqs[j] = kzalloc(sizeof(*tx_qgrp->txqs[j]),
- GFP_KERNEL);
+ tx_qgrp->txqs[j] = kzalloc_obj(*tx_qgrp->txqs[j],
+ GFP_KERNEL);
if (!tx_qgrp->txqs[j])
goto err_alloc;
}
@@ -1756,7 +1755,7 @@ static int idpf_txq_group_alloc(struct idpf_vport *vport,
idpf_queue_set(FLOW_SCH_EN, q);
- q->refillq = kzalloc(sizeof(*q->refillq), GFP_KERNEL);
+ q->refillq = kzalloc_obj(*q->refillq, GFP_KERNEL);
if (!q->refillq)
goto err_alloc;
@@ -1767,9 +1766,9 @@ static int idpf_txq_group_alloc(struct idpf_vport *vport,
if (!split)
continue;
- tx_qgrp->complq = kcalloc(IDPF_COMPLQ_PER_GROUP,
- sizeof(*tx_qgrp->complq),
- GFP_KERNEL);
+ tx_qgrp->complq = kzalloc_objs(*tx_qgrp->complq,
+ IDPF_COMPLQ_PER_GROUP,
+ GFP_KERNEL);
if (!tx_qgrp->complq)
goto err_alloc;
@@ -1806,8 +1805,8 @@ static int idpf_rxq_group_alloc(struct idpf_vport *vport,
bool hs, rsc;
int err = 0;
- rsrc->rxq_grps = kcalloc(rsrc->num_rxq_grp,
- sizeof(struct idpf_rxq_group), GFP_KERNEL);
+ rsrc->rxq_grps = kzalloc_objs(struct idpf_rxq_group, rsrc->num_rxq_grp,
+ GFP_KERNEL);
if (!rsrc->rxq_grps)
return -ENOMEM;
@@ -1821,9 +1820,8 @@ static int idpf_rxq_group_alloc(struct idpf_vport *vport,
if (!idpf_is_queue_model_split(rsrc->rxq_model)) {
rx_qgrp->singleq.num_rxq = num_rxq;
for (unsigned int j = 0; j < num_rxq; j++) {
- rx_qgrp->singleq.rxqs[j] =
- kzalloc(sizeof(*rx_qgrp->singleq.rxqs[j]),
- GFP_KERNEL);
+ rx_qgrp->singleq.rxqs[j] = kzalloc_obj(*rx_qgrp->singleq.rxqs[j],
+ GFP_KERNEL);
if (!rx_qgrp->singleq.rxqs[j]) {
err = -ENOMEM;
goto err_alloc;
@@ -1835,17 +1833,16 @@ static int idpf_rxq_group_alloc(struct idpf_vport *vport,
for (unsigned int j = 0; j < num_rxq; j++) {
rx_qgrp->splitq.rxq_sets[j] =
- kzalloc(sizeof(struct idpf_rxq_set),
- GFP_KERNEL);
+ kzalloc_obj(struct idpf_rxq_set, GFP_KERNEL);
if (!rx_qgrp->splitq.rxq_sets[j]) {
err = -ENOMEM;
goto err_alloc;
}
}
- rx_qgrp->splitq.bufq_sets = kcalloc(rsrc->num_bufqs_per_qgrp,
- sizeof(struct idpf_bufq_set),
- GFP_KERNEL);
+ rx_qgrp->splitq.bufq_sets = kzalloc_objs(struct idpf_bufq_set,
+ rsrc->num_bufqs_per_qgrp,
+ GFP_KERNEL);
if (!rx_qgrp->splitq.bufq_sets) {
err = -ENOMEM;
goto err_alloc;
@@ -1880,9 +1877,9 @@ static int idpf_rxq_group_alloc(struct idpf_vport *vport,
rsrc->bufq_desc_count[j];
idpf_queue_set(GEN_CHK, refillq);
idpf_queue_set(RFL_GEN_CHK, refillq);
- refillq->ring = kcalloc(refillq->desc_count,
- sizeof(*refillq->ring),
- GFP_KERNEL);
+ refillq->ring = kzalloc_objs(*refillq->ring,
+ refillq->desc_count,
+ GFP_KERNEL);
if (!refillq->ring) {
err = -ENOMEM;
goto err_alloc;
@@ -4567,8 +4564,8 @@ int idpf_vport_intr_alloc(struct idpf_vport *vport,
user_config = &vport->adapter->vport_config[idx]->user_config;
- rsrc->q_vectors = kcalloc(rsrc->num_q_vectors,
- sizeof(struct idpf_q_vector), GFP_KERNEL);
+ rsrc->q_vectors = kzalloc_objs(struct idpf_q_vector,
+ rsrc->num_q_vectors, GFP_KERNEL);
if (!rsrc->q_vectors)
return -ENOMEM;
@@ -4595,37 +4592,34 @@ int idpf_vport_intr_alloc(struct idpf_vport *vport,
q_vector->rx_intr_mode = q_coal->rx_intr_mode;
q_vector->rx_itr_idx = VIRTCHNL2_ITR_IDX_0;
- q_vector->tx = kcalloc(txqs_per_vector, sizeof(*q_vector->tx),
- GFP_KERNEL);
+ q_vector->tx = kzalloc_objs(*q_vector->tx, txqs_per_vector,
+ GFP_KERNEL);
if (!q_vector->tx)
goto error;
- q_vector->rx = kcalloc(rxqs_per_vector, sizeof(*q_vector->rx),
- GFP_KERNEL);
+ q_vector->rx = kzalloc_objs(*q_vector->rx, rxqs_per_vector,
+ GFP_KERNEL);
if (!q_vector->rx)
goto error;
if (!idpf_is_queue_model_split(rsrc->rxq_model))
continue;
- q_vector->bufq = kcalloc(bufqs_per_vector,
- sizeof(*q_vector->bufq),
- GFP_KERNEL);
+ q_vector->bufq = kzalloc_objs(*q_vector->bufq, bufqs_per_vector,
+ GFP_KERNEL);
if (!q_vector->bufq)
goto error;
- q_vector->complq = kcalloc(complqs_per_vector,
- sizeof(*q_vector->complq),
- GFP_KERNEL);
+ q_vector->complq = kzalloc_objs(*q_vector->complq,
+ complqs_per_vector, GFP_KERNEL);
if (!q_vector->complq)
goto error;
if (!rsrc->xdp_txq_offset)
continue;
- q_vector->xsksq = kcalloc(rxqs_per_vector,
- sizeof(*q_vector->xsksq),
- GFP_KERNEL);
+ q_vector->xsksq = kzalloc_objs(*q_vector->xsksq,
+ rxqs_per_vector, GFP_KERNEL);
if (!q_vector->xsksq)
goto error;
}
diff --git a/drivers/net/ethernet/intel/idpf/idpf_vf_dev.c b/drivers/net/ethernet/intel/idpf/idpf_vf_dev.c
index 7527b967e2e7..57559a2bc9dd 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_vf_dev.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_vf_dev.c
@@ -82,8 +82,7 @@ static int idpf_vf_intr_reg_init(struct idpf_vport *vport,
u16 total_vecs;
total_vecs = idpf_get_reserved_vecs(vport->adapter);
- reg_vals = kcalloc(total_vecs, sizeof(struct idpf_vec_regs),
- GFP_KERNEL);
+ reg_vals = kzalloc_objs(struct idpf_vec_regs, total_vecs, GFP_KERNEL);
if (!reg_vals)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c b/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c
index d46affaf7185..f1a8ae9d8118 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c
@@ -132,7 +132,7 @@ static int idpf_mb_clean(struct idpf_adapter *adapter,
struct idpf_dma_mem *dma_mem;
int err;
- q_msg = kcalloc(num_q_msg, sizeof(struct idpf_ctlq_msg *), GFP_ATOMIC);
+ q_msg = kzalloc_objs(struct idpf_ctlq_msg *, num_q_msg, GFP_ATOMIC);
if (!q_msg)
return -ENOMEM;
@@ -238,11 +238,11 @@ int idpf_send_mb_msg(struct idpf_adapter *adapter, struct idpf_ctlq_info *asq,
if (err)
return err;
- ctlq_msg = kzalloc(sizeof(*ctlq_msg), GFP_ATOMIC);
+ ctlq_msg = kzalloc_obj(*ctlq_msg, GFP_ATOMIC);
if (!ctlq_msg)
return -ENOMEM;
- dma_mem = kzalloc(sizeof(*dma_mem), GFP_ATOMIC);
+ dma_mem = kzalloc_obj(*dma_mem, GFP_ATOMIC);
if (!dma_mem) {
err = -ENOMEM;
goto dma_mem_error;
@@ -740,7 +740,7 @@ struct idpf_queue_set *idpf_alloc_queue_set(struct idpf_adapter *adapter,
{
struct idpf_queue_set *qp;
- qp = kzalloc(struct_size(qp, qs, num), GFP_KERNEL);
+ qp = kzalloc_flex(*qp, qs, num, GFP_KERNEL);
if (!qp)
return NULL;
@@ -1059,7 +1059,7 @@ static int idpf_send_get_lan_memory_regions(struct idpf_adapter *adapter)
return -EINVAL;
hw = &adapter->hw;
- hw->lan_regs = kcalloc(num_regions, sizeof(*hw->lan_regs), GFP_KERNEL);
+ hw->lan_regs = kzalloc_objs(*hw->lan_regs, num_regions, GFP_KERNEL);
if (!hw->lan_regs)
return -ENOMEM;
@@ -1091,8 +1091,7 @@ static int idpf_calc_remaining_mmio_regs(struct idpf_adapter *adapter)
struct idpf_hw *hw = &adapter->hw;
hw->num_lan_regs = IDPF_MMIO_MAP_FALLBACK_MAX_REMAINING;
- hw->lan_regs = kcalloc(hw->num_lan_regs, sizeof(*hw->lan_regs),
- GFP_KERNEL);
+ hw->lan_regs = kzalloc_objs(*hw->lan_regs, hw->num_lan_regs, GFP_KERNEL);
if (!hw->lan_regs)
return -ENOMEM;
@@ -1291,8 +1290,8 @@ idpf_vport_init_queue_reg_chunks(struct idpf_vport_config *vport_config,
kfree(q_info->queue_chunks);
- q_info->queue_chunks = kcalloc(num_chunks, sizeof(*q_info->queue_chunks),
- GFP_KERNEL);
+ q_info->queue_chunks = kzalloc_objs(*q_info->queue_chunks, num_chunks,
+ GFP_KERNEL);
if (!q_info->queue_chunks) {
q_info->num_chunks = 0;
return -ENOMEM;
@@ -1845,7 +1844,7 @@ static int idpf_send_config_tx_queue_set_msg(const struct idpf_queue_set *qs)
.chunk_sz = sizeof(*qi),
};
- qi = kcalloc(qs->num, sizeof(*qi), GFP_KERNEL);
+ qi = kzalloc_objs(*qi, qs->num, GFP_KERNEL);
if (!qi)
return -ENOMEM;
@@ -2034,7 +2033,7 @@ static int idpf_send_config_rx_queue_set_msg(const struct idpf_queue_set *qs)
.chunk_sz = sizeof(*qi),
};
- qi = kcalloc(qs->num, sizeof(*qi), GFP_KERNEL);
+ qi = kzalloc_objs(*qi, qs->num, GFP_KERNEL);
if (!qi)
return -ENOMEM;
@@ -2161,7 +2160,7 @@ static int idpf_send_ena_dis_queue_set_msg(const struct idpf_queue_set *qs,
.num_chunks = qs->num,
};
- qc = kcalloc(qs->num, sizeof(*qc), GFP_KERNEL);
+ qc = kzalloc_objs(*qc, qs->num, GFP_KERNEL);
if (!qc)
return -ENOMEM;
@@ -2328,7 +2327,7 @@ idpf_send_map_unmap_queue_set_vector_msg(const struct idpf_queue_set *qs,
};
bool split;
- vqv = kcalloc(qs->num, sizeof(*vqv), GFP_KERNEL);
+ vqv = kzalloc_objs(*vqv, qs->num, GFP_KERNEL);
if (!vqv)
return -ENOMEM;
@@ -3198,16 +3197,16 @@ static int idpf_send_get_rx_ptype_msg(struct idpf_adapter *adapter)
u16 next_ptype_id = 0;
ssize_t reply_sz;
- singleq_pt_lkup = kcalloc(IDPF_RX_MAX_BASE_PTYPE,
- sizeof(*singleq_pt_lkup), GFP_KERNEL);
+ singleq_pt_lkup = kzalloc_objs(*singleq_pt_lkup, IDPF_RX_MAX_BASE_PTYPE,
+ GFP_KERNEL);
if (!singleq_pt_lkup)
return -ENOMEM;
- splitq_pt_lkup = kcalloc(max_ptype, sizeof(*splitq_pt_lkup), GFP_KERNEL);
+ splitq_pt_lkup = kzalloc_objs(*splitq_pt_lkup, max_ptype, GFP_KERNEL);
if (!splitq_pt_lkup)
return -ENOMEM;
- get_ptype_info = kzalloc(sizeof(*get_ptype_info), GFP_KERNEL);
+ get_ptype_info = kzalloc_obj(*get_ptype_info, GFP_KERNEL);
if (!get_ptype_info)
return -ENOMEM;
@@ -3435,15 +3434,13 @@ static int idpf_vport_params_buf_alloc(struct idpf_adapter *adapter)
{
u16 num_max_vports = idpf_get_max_vports(adapter);
- adapter->vport_params_reqd = kcalloc(num_max_vports,
- sizeof(*adapter->vport_params_reqd),
- GFP_KERNEL);
+ adapter->vport_params_reqd = kzalloc_objs(*adapter->vport_params_reqd,
+ num_max_vports, GFP_KERNEL);
if (!adapter->vport_params_reqd)
return -ENOMEM;
- adapter->vport_params_recvd = kcalloc(num_max_vports,
- sizeof(*adapter->vport_params_recvd),
- GFP_KERNEL);
+ adapter->vport_params_recvd = kzalloc_objs(*adapter->vport_params_recvd,
+ num_max_vports, GFP_KERNEL);
if (!adapter->vport_params_recvd)
goto err_mem;
@@ -3454,9 +3451,8 @@ static int idpf_vport_params_buf_alloc(struct idpf_adapter *adapter)
if (adapter->vport_config)
return 0;
- adapter->vport_config = kcalloc(num_max_vports,
- sizeof(*adapter->vport_config),
- GFP_KERNEL);
+ adapter->vport_config = kzalloc_objs(*adapter->vport_config,
+ num_max_vports, GFP_KERNEL);
if (!adapter->vport_config)
goto err_mem;
@@ -3488,7 +3484,8 @@ int idpf_vc_core_init(struct idpf_adapter *adapter)
int err = 0;
if (!adapter->vcxn_mngr) {
- adapter->vcxn_mngr = kzalloc(sizeof(*adapter->vcxn_mngr), GFP_KERNEL);
+ adapter->vcxn_mngr = kzalloc_obj(*adapter->vcxn_mngr,
+ GFP_KERNEL);
if (!adapter->vcxn_mngr) {
err = -ENOMEM;
goto init_failed;
@@ -3560,15 +3557,14 @@ int idpf_vc_core_init(struct idpf_adapter *adapter)
pci_sriov_set_totalvfs(adapter->pdev, idpf_get_max_vfs(adapter));
num_max_vports = idpf_get_max_vports(adapter);
adapter->max_vports = num_max_vports;
- adapter->vports = kcalloc(num_max_vports, sizeof(*adapter->vports),
- GFP_KERNEL);
+ adapter->vports = kzalloc_objs(*adapter->vports, num_max_vports,
+ GFP_KERNEL);
if (!adapter->vports)
return -ENOMEM;
if (!adapter->netdevs) {
- adapter->netdevs = kcalloc(num_max_vports,
- sizeof(struct net_device *),
- GFP_KERNEL);
+ adapter->netdevs = kzalloc_objs(struct net_device *,
+ num_max_vports, GFP_KERNEL);
if (!adapter->netdevs) {
err = -ENOMEM;
goto err_netdev_alloc;
@@ -4335,8 +4331,8 @@ int idpf_add_del_mac_filters(struct idpf_adapter *adapter,
}
/* Fill all the new filters into virtchannel message */
- mac_addr = kcalloc(total_filters, sizeof(struct virtchnl2_mac_addr),
- GFP_ATOMIC);
+ mac_addr = kzalloc_objs(struct virtchnl2_mac_addr, total_filters,
+ GFP_ATOMIC);
if (!mac_addr) {
spin_unlock_bh(&vport_config->mac_filter_list_lock);
diff --git a/drivers/net/ethernet/intel/idpf/idpf_virtchnl_ptp.c b/drivers/net/ethernet/intel/idpf/idpf_virtchnl_ptp.c
index 61cedb6f2854..2980164ba9fb 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_virtchnl_ptp.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_virtchnl_ptp.c
@@ -39,8 +39,8 @@ int idpf_ptp_get_caps(struct idpf_adapter *adapter)
u32 temp_offset;
int reply_sz;
- recv_ptp_caps_msg = kzalloc(sizeof(struct virtchnl2_ptp_get_caps),
- GFP_KERNEL);
+ recv_ptp_caps_msg = kzalloc_obj(struct virtchnl2_ptp_get_caps,
+ GFP_KERNEL);
if (!recv_ptp_caps_msg)
return -ENOMEM;
@@ -395,7 +395,7 @@ int idpf_ptp_get_vport_tstamps_caps(struct idpf_vport *vport)
for (u16 i = 0; i < tstamp_caps->num_entries; i++) {
__le32 offset_l, offset_h;
- ptp_tx_tstamp = kzalloc(sizeof(*ptp_tx_tstamp), GFP_KERNEL);
+ ptp_tx_tstamp = kzalloc_obj(*ptp_tx_tstamp, GFP_KERNEL);
if (!ptp_tx_tstamp) {
err = -ENOMEM;
goto err_free_ptp_tx_stamp_list;
diff --git a/drivers/net/ethernet/intel/idpf/xdp.c b/drivers/net/ethernet/intel/idpf/xdp.c
index 2b60f2a78684..a94bde86f84f 100644
--- a/drivers/net/ethernet/intel/idpf/xdp.c
+++ b/drivers/net/ethernet/intel/idpf/xdp.c
@@ -154,7 +154,7 @@ int idpf_xdpsqs_get(const struct idpf_vport *vport)
if (!idpf_xdp_enabled(vport))
return 0;
- timers = kvcalloc(vport->num_xdp_txq, sizeof(*timers), GFP_KERNEL);
+ timers = kvzalloc_objs(*timers, vport->num_xdp_txq, GFP_KERNEL);
if (!timers)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c
index b507576b28b2..117d2a0ca620 100644
--- a/drivers/net/ethernet/intel/igb/igb_ethtool.c
+++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c
@@ -2919,7 +2919,7 @@ static int igb_add_ethtool_nfc_entry(struct igb_adapter *adapter,
if ((fsp->flow_type & ~FLOW_EXT) != ETHER_FLOW)
return -EINVAL;
- input = kzalloc(sizeof(*input), GFP_KERNEL);
+ input = kzalloc_obj(*input, GFP_KERNEL);
if (!input)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index dbea37269d2c..5dc97daf6ac1 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -2711,7 +2711,7 @@ static int igb_configure_clsflower(struct igb_adapter *adapter,
return -EINVAL;
}
- filter = kzalloc(sizeof(*filter), GFP_KERNEL);
+ filter = kzalloc_obj(*filter, GFP_KERNEL);
if (!filter)
return -ENOMEM;
@@ -3775,8 +3775,9 @@ static int igb_enable_sriov(struct pci_dev *pdev, int num_vfs, bool reinit)
} else
adapter->vfs_allocated_count = num_vfs;
- adapter->vf_data = kcalloc(adapter->vfs_allocated_count,
- sizeof(struct vf_data_storage), GFP_KERNEL);
+ adapter->vf_data = kzalloc_objs(struct vf_data_storage,
+ adapter->vfs_allocated_count,
+ GFP_KERNEL);
/* if allocation failed then we do not support SR-IOV */
if (!adapter->vf_data) {
@@ -3794,9 +3795,8 @@ static int igb_enable_sriov(struct pci_dev *pdev, int num_vfs, bool reinit)
(1 + IGB_PF_MAC_FILTERS_RESERVED +
adapter->vfs_allocated_count);
- adapter->vf_mac_list = kcalloc(num_vf_mac_filters,
- sizeof(struct vf_mac_filter),
- GFP_KERNEL);
+ adapter->vf_mac_list = kzalloc_objs(struct vf_mac_filter,
+ num_vf_mac_filters, GFP_KERNEL);
mac_list = adapter->vf_mac_list;
INIT_LIST_HEAD(&adapter->vf_macs.l);
@@ -4091,9 +4091,8 @@ static int igb_sw_init(struct igb_adapter *adapter)
/* Assume MSI-X interrupts, will be checked during IRQ allocation */
adapter->flags |= IGB_FLAG_HAS_MSIX;
- adapter->mac_table = kcalloc(hw->mac.rar_entry_count,
- sizeof(struct igb_mac_addr),
- GFP_KERNEL);
+ adapter->mac_table = kzalloc_objs(struct igb_mac_addr,
+ hw->mac.rar_entry_count, GFP_KERNEL);
if (!adapter->mac_table)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/igbvf/netdev.c b/drivers/net/ethernet/intel/igbvf/netdev.c
index ac57212ab02b..72ea2e6ce15b 100644
--- a/drivers/net/ethernet/intel/igbvf/netdev.c
+++ b/drivers/net/ethernet/intel/igbvf/netdev.c
@@ -1017,8 +1017,7 @@ static void igbvf_set_interrupt_capability(struct igbvf_adapter *adapter)
int i;
/* we allocate 3 vectors, 1 for Tx, 1 for Rx, one for PF messages */
- adapter->msix_entries = kcalloc(3, sizeof(struct msix_entry),
- GFP_KERNEL);
+ adapter->msix_entries = kzalloc_objs(struct msix_entry, 3, GFP_KERNEL);
if (adapter->msix_entries) {
for (i = 0; i < 3; i++)
adapter->msix_entries[i].entry = i;
@@ -1098,11 +1097,11 @@ static int igbvf_alloc_queues(struct igbvf_adapter *adapter)
{
struct net_device *netdev = adapter->netdev;
- adapter->tx_ring = kzalloc(sizeof(struct igbvf_ring), GFP_KERNEL);
+ adapter->tx_ring = kzalloc_obj(struct igbvf_ring, GFP_KERNEL);
if (!adapter->tx_ring)
return -ENOMEM;
- adapter->rx_ring = kzalloc(sizeof(struct igbvf_ring), GFP_KERNEL);
+ adapter->rx_ring = kzalloc_obj(struct igbvf_ring, GFP_KERNEL);
if (!adapter->rx_ring) {
kfree(adapter->tx_ring);
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c
index 3172cdbca9cc..35b74213ca8b 100644
--- a/drivers/net/ethernet/intel/igc/igc_ethtool.c
+++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c
@@ -1395,7 +1395,7 @@ static int igc_ethtool_add_nfc_rule(struct igc_adapter *adapter,
return -EINVAL;
}
- rule = kzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/igc/igc_leds.c b/drivers/net/ethernet/intel/igc/igc_leds.c
index 3929b25b6ae6..d6e011695adc 100644
--- a/drivers/net/ethernet/intel/igc/igc_leds.c
+++ b/drivers/net/ethernet/intel/igc/igc_leds.c
@@ -268,7 +268,7 @@ int igc_led_setup(struct igc_adapter *adapter)
mutex_init(&adapter->led_mutex);
- leds = kcalloc(IGC_NUM_LEDS, sizeof(*leds), GFP_KERNEL);
+ leds = kzalloc_objs(*leds, IGC_NUM_LEDS, GFP_KERNEL);
if (!leds)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index 89a321a344d2..73d841e63d2d 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -4633,8 +4633,8 @@ static void igc_set_interrupt_capability(struct igc_adapter *adapter,
/* add 1 vector for link status interrupts */
numvecs++;
- adapter->msix_entries = kcalloc(numvecs, sizeof(struct msix_entry),
- GFP_KERNEL);
+ adapter->msix_entries = kzalloc_objs(struct msix_entry, numvecs,
+ GFP_KERNEL);
if (!adapter->msix_entries)
return;
@@ -4863,8 +4863,7 @@ static int igc_alloc_q_vector(struct igc_adapter *adapter,
/* allocate q_vector and rings */
q_vector = adapter->q_vector[v_idx];
if (!q_vector)
- q_vector = kzalloc(struct_size(q_vector, ring, ring_count),
- GFP_KERNEL);
+ q_vector = kzalloc_flex(*q_vector, ring, ring_count, GFP_KERNEL);
else
memset(q_vector, 0, struct_size(q_vector, ring, ring_count));
if (!q_vector)
diff --git a/drivers/net/ethernet/intel/ixgbe/devlink/devlink.c b/drivers/net/ethernet/intel/ixgbe/devlink/devlink.c
index d227f4d2a2d1..165a8f12745f 100644
--- a/drivers/net/ethernet/intel/ixgbe/devlink/devlink.c
+++ b/drivers/net/ethernet/intel/ixgbe/devlink/devlink.c
@@ -318,7 +318,7 @@ static int ixgbe_devlink_info_get(struct devlink *devlink,
struct ixgbe_info_ctx *ctx;
int err;
- ctx = kmalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kmalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
index 3dd5a16a14df..0ecc4f7d0288 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
@@ -516,8 +516,8 @@ static int ixgbe_dcbnl_ieee_setets(struct net_device *dev,
return -EINVAL;
if (!adapter->ixgbe_ieee_ets) {
- adapter->ixgbe_ieee_ets = kmalloc(sizeof(struct ieee_ets),
- GFP_KERNEL);
+ adapter->ixgbe_ieee_ets = kmalloc_obj(struct ieee_ets,
+ GFP_KERNEL);
if (!adapter->ixgbe_ieee_ets)
return -ENOMEM;
@@ -593,8 +593,8 @@ static int ixgbe_dcbnl_ieee_setpfc(struct net_device *dev,
return -EINVAL;
if (!adapter->ixgbe_ieee_pfc) {
- adapter->ixgbe_ieee_pfc = kmalloc(sizeof(struct ieee_pfc),
- GFP_KERNEL);
+ adapter->ixgbe_ieee_pfc = kmalloc_obj(struct ieee_pfc,
+ GFP_KERNEL);
if (!adapter->ixgbe_ieee_pfc)
return -ENOMEM;
}
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
index c2f8189a0738..f8a4331e8fe3 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
@@ -1285,7 +1285,7 @@ int ixgbe_update_link_info(struct ixgbe_hw *hw)
if (!(li->link_info & IXGBE_ACI_MEDIA_AVAILABLE))
return 0;
- pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL);
+ pcaps = kzalloc_obj(*pcaps, GFP_KERNEL);
if (!pcaps)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
index bb4b53fee234..56aabaa5caec 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
@@ -2981,7 +2981,7 @@ static int ixgbe_add_ethtool_fdir_entry(struct ixgbe_adapter *adapter,
return -EINVAL;
}
- input = kzalloc(sizeof(*input), GFP_ATOMIC);
+ input = kzalloc_obj(*input, GFP_ATOMIC);
if (!input)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_fw_update.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_fw_update.c
index e5479fc07a07..c44c9bf53cc4 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_fw_update.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_fw_update.c
@@ -516,7 +516,7 @@ int ixgbe_get_pending_updates(struct ixgbe_adapter *adapter, u8 *pending,
struct ixgbe_hw *hw = &adapter->hw;
int err;
- dev_caps = kzalloc(sizeof(*dev_caps), GFP_KERNEL);
+ dev_caps = kzalloc_obj(*dev_caps, GFP_KERNEL);
if (!dev_caps)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
index d1f4073b36f9..6da3e52cea7a 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
@@ -904,7 +904,7 @@ int ixgbe_ipsec_vf_add_sa(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf)
goto err_out;
}
- xs = kzalloc(sizeof(*xs), GFP_ATOMIC);
+ xs = kzalloc_obj(*xs, GFP_ATOMIC);
if (unlikely(!xs)) {
err = -ENOMEM;
goto err_out;
@@ -1233,7 +1233,7 @@ void ixgbe_init_ipsec_offload(struct ixgbe_adapter *adapter)
if (t_dis || r_dis)
return;
- ipsec = kzalloc(sizeof(*ipsec), GFP_KERNEL);
+ ipsec = kzalloc_obj(*ipsec, GFP_KERNEL);
if (!ipsec)
goto err1;
hash_init(ipsec->rx_sa_list);
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
index a1d04914fbbc..f5c00cf57d43 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
@@ -768,9 +768,8 @@ static int ixgbe_acquire_msix_vectors(struct ixgbe_adapter *adapter)
*/
vector_threshold = MIN_MSIX_COUNT;
- adapter->msix_entries = kcalloc(vectors,
- sizeof(struct msix_entry),
- GFP_KERNEL);
+ adapter->msix_entries = kzalloc_objs(struct msix_entry, vectors,
+ GFP_KERNEL);
if (!adapter->msix_entries)
return -ENOMEM;
@@ -859,8 +858,7 @@ static int ixgbe_alloc_q_vector(struct ixgbe_adapter *adapter,
q_vector = kzalloc_node(struct_size(q_vector, ring, ring_count),
GFP_KERNEL, node);
if (!q_vector)
- q_vector = kzalloc(struct_size(q_vector, ring, ring_count),
- GFP_KERNEL);
+ q_vector = kzalloc_flex(*q_vector, ring, ring_count, GFP_KERNEL);
if (!q_vector)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index c58051e4350b..59b3acb62134 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -6895,8 +6895,8 @@ static int ixgbe_sw_init(struct ixgbe_adapter *adapter,
#endif /* IXGBE_FCOE */
/* initialize static ixgbe jump table entries */
- adapter->jump_tables[0] = kzalloc(sizeof(*adapter->jump_tables[0]),
- GFP_KERNEL);
+ adapter->jump_tables[0] = kzalloc_obj(*adapter->jump_tables[0],
+ GFP_KERNEL);
if (!adapter->jump_tables[0])
return -ENOMEM;
adapter->jump_tables[0]->mat = ixgbe_ipv4_fields;
@@ -6904,9 +6904,8 @@ static int ixgbe_sw_init(struct ixgbe_adapter *adapter,
for (i = 1; i < IXGBE_MAX_LINK_HANDLE; i++)
adapter->jump_tables[i] = NULL;
- adapter->mac_table = kcalloc(hw->mac.num_rar_entries,
- sizeof(struct ixgbe_mac_addr),
- GFP_KERNEL);
+ adapter->mac_table = kzalloc_objs(struct ixgbe_mac_addr,
+ hw->mac.num_rar_entries, GFP_KERNEL);
if (!adapter->mac_table)
return -ENOMEM;
@@ -10273,15 +10272,15 @@ static int ixgbe_configure_clsu32(struct ixgbe_adapter *adapter,
(__force u32)cls->knode.sel->offmask)
return err;
- jump = kzalloc(sizeof(*jump), GFP_KERNEL);
+ jump = kzalloc_obj(*jump, GFP_KERNEL);
if (!jump)
return -ENOMEM;
- input = kzalloc(sizeof(*input), GFP_KERNEL);
+ input = kzalloc_obj(*input, GFP_KERNEL);
if (!input) {
err = -ENOMEM;
goto free_jump;
}
- mask = kzalloc(sizeof(*mask), GFP_KERNEL);
+ mask = kzalloc_obj(*mask, GFP_KERNEL);
if (!mask) {
err = -ENOMEM;
goto free_input;
@@ -10305,10 +10304,10 @@ static int ixgbe_configure_clsu32(struct ixgbe_adapter *adapter,
return 0;
}
- input = kzalloc(sizeof(*input), GFP_KERNEL);
+ input = kzalloc_obj(*input, GFP_KERNEL);
if (!input)
return -ENOMEM;
- mask = kzalloc(sizeof(*mask), GFP_KERNEL);
+ mask = kzalloc_obj(*mask, GFP_KERNEL);
if (!mask) {
err = -ENOMEM;
goto free_input;
@@ -10786,7 +10785,7 @@ static void *ixgbe_fwd_add(struct net_device *pdev, struct net_device *vdev)
return ERR_PTR(-ENOMEM);
}
- accel = kzalloc(sizeof(*accel), GFP_KERNEL);
+ accel = kzalloc_obj(*accel, GFP_KERNEL);
if (!accel)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
index ee133d6749b3..40dfdf62ab33 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
@@ -37,8 +37,7 @@ static inline void ixgbe_alloc_vf_macvlans(struct ixgbe_adapter *adapter,
if (!num_vf_macvlans)
return;
- mv_list = kcalloc(num_vf_macvlans, sizeof(struct vf_macvlans),
- GFP_KERNEL);
+ mv_list = kzalloc_objs(struct vf_macvlans, num_vf_macvlans, GFP_KERNEL);
if (mv_list) {
for (i = 0; i < num_vf_macvlans; i++) {
mv_list[i].vf = -1;
@@ -65,8 +64,8 @@ static int __ixgbe_enable_sriov(struct ixgbe_adapter *adapter,
IXGBE_FLAG_VMDQ_ENABLED;
/* Allocate memory for per VF control structures */
- adapter->vfinfo = kcalloc(num_vfs, sizeof(struct vf_data_storage),
- GFP_KERNEL);
+ adapter->vfinfo = kzalloc_objs(struct vf_data_storage, num_vfs,
+ GFP_KERNEL);
if (!adapter->vfinfo)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/ixgbevf/ipsec.c b/drivers/net/ethernet/intel/ixgbevf/ipsec.c
index fce35924ff8b..780ebcdbd4a7 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ipsec.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ipsec.c
@@ -628,7 +628,7 @@ void ixgbevf_init_ipsec_offload(struct ixgbevf_adapter *adapter)
return;
}
- ipsec = kzalloc(sizeof(*ipsec), GFP_KERNEL);
+ ipsec = kzalloc_obj(*ipsec, GFP_KERNEL);
if (!ipsec)
goto err1;
hash_init(ipsec->rx_sa_list);
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
index d5ce20f47def..38af1f35b339 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -2716,8 +2716,8 @@ static int ixgbevf_set_interrupt_capability(struct ixgbevf_adapter *adapter)
v_budget = min_t(int, v_budget, num_online_cpus());
v_budget += NON_Q_VECTORS;
- adapter->msix_entries = kcalloc(v_budget,
- sizeof(struct msix_entry), GFP_KERNEL);
+ adapter->msix_entries = kzalloc_objs(struct msix_entry, v_budget,
+ GFP_KERNEL);
if (!adapter->msix_entries)
return -ENOMEM;
diff --git a/drivers/net/ethernet/intel/libie/fwlog.c b/drivers/net/ethernet/intel/libie/fwlog.c
index f39cc11cb7c5..5b69a26ef2bd 100644
--- a/drivers/net/ethernet/intel/libie/fwlog.c
+++ b/drivers/net/ethernet/intel/libie/fwlog.c
@@ -153,7 +153,7 @@ static void libie_fwlog_realloc_rings(struct libie_fwlog *fwlog, int index)
* old rings and buffers. that way if we don't have enough
* memory then we at least have what we had before
*/
- ring.rings = kcalloc(ring_size, sizeof(*ring.rings), GFP_KERNEL);
+ ring.rings = kzalloc_objs(*ring.rings, ring_size, GFP_KERNEL);
if (!ring.rings)
return;
@@ -208,7 +208,7 @@ libie_aq_fwlog_set(struct libie_fwlog *fwlog,
int status;
int i;
- fw_modules = kcalloc(num_entries, sizeof(*fw_modules), GFP_KERNEL);
+ fw_modules = kzalloc_objs(*fw_modules, num_entries, GFP_KERNEL);
if (!fw_modules)
return -ENOMEM;
@@ -838,8 +838,8 @@ static void libie_debugfs_fwlog_init(struct libie_fwlog *fwlog,
/* allocate space for this first because if it fails then we don't
* need to unwind
*/
- fw_modules = kcalloc(LIBIE_NR_FW_LOG_MODULES, sizeof(*fw_modules),
- GFP_KERNEL);
+ fw_modules = kzalloc_objs(*fw_modules, LIBIE_NR_FW_LOG_MODULES,
+ GFP_KERNEL);
if (!fw_modules)
return;
@@ -978,7 +978,7 @@ static void libie_fwlog_set_supported(struct libie_fwlog *fwlog)
fwlog->supported = false;
- cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
+ cfg = kzalloc_obj(*cfg, GFP_KERNEL);
if (!cfg)
return;
@@ -1013,9 +1013,9 @@ int libie_fwlog_init(struct libie_fwlog *fwlog, struct libie_fwlog_api *api)
if (status)
return status;
- fwlog->ring.rings = kcalloc(LIBIE_FWLOG_RING_SIZE_DFLT,
- sizeof(*fwlog->ring.rings),
- GFP_KERNEL);
+ fwlog->ring.rings = kzalloc_objs(*fwlog->ring.rings,
+ LIBIE_FWLOG_RING_SIZE_DFLT,
+ GFP_KERNEL);
if (!fwlog->ring.rings) {
dev_warn(&fwlog->pdev->dev, "Unable to allocate memory for FW log rings\n");
return -ENOMEM;
diff --git a/drivers/net/ethernet/jme.c b/drivers/net/ethernet/jme.c
index d8be0e4dcb07..25ec5f757c68 100644
--- a/drivers/net/ethernet/jme.c
+++ b/drivers/net/ethernet/jme.c
@@ -576,9 +576,9 @@ jme_setup_tx_resources(struct jme_adapter *jme)
atomic_set(&txring->next_to_clean, 0);
atomic_set(&txring->nr_free, jme->tx_ring_size);
- txring->bufinf = kcalloc(jme->tx_ring_size,
- sizeof(struct jme_buffer_info),
- GFP_ATOMIC);
+ txring->bufinf = kzalloc_objs(struct jme_buffer_info,
+ jme->tx_ring_size,
+ GFP_ATOMIC);
if (unlikely(!(txring->bufinf)))
goto err_free_txring;
@@ -819,9 +819,9 @@ jme_setup_rx_resources(struct jme_adapter *jme)
rxring->next_to_use = 0;
atomic_set(&rxring->next_to_clean, 0);
- rxring->bufinf = kcalloc(jme->rx_ring_size,
- sizeof(struct jme_buffer_info),
- GFP_ATOMIC);
+ rxring->bufinf = kzalloc_objs(struct jme_buffer_info,
+ jme->rx_ring_size,
+ GFP_ATOMIC);
if (unlikely(!(rxring->bufinf)))
goto err_free_rxring;
diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c
index 0ab52c57c648..1bc31e0b443d 100644
--- a/drivers/net/ethernet/marvell/mv643xx_eth.c
+++ b/drivers/net/ethernet/marvell/mv643xx_eth.c
@@ -1967,8 +1967,7 @@ static int rxq_init(struct mv643xx_eth_private *mp, int index)
memset(rxq->rx_desc_area, 0, size);
rxq->rx_desc_area_size = size;
- rxq->rx_skb = kcalloc(rxq->rx_ring_size, sizeof(*rxq->rx_skb),
- GFP_KERNEL);
+ rxq->rx_skb = kzalloc_objs(*rxq->rx_skb, rxq->rx_ring_size, GFP_KERNEL);
if (rxq->rx_skb == NULL)
goto out_free;
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index 7af44f858fa3..c058df3bb85f 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -3554,7 +3554,7 @@ static int mvneta_txq_sw_init(struct mvneta_port *pp,
txq->last_desc = txq->size - 1;
- txq->buf = kmalloc_array(txq->size, sizeof(*txq->buf), GFP_KERNEL);
+ txq->buf = kmalloc_objs(*txq->buf, txq->size, GFP_KERNEL);
if (!txq->buf)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c
index c116da7d7f18..83ba45f54180 100644
--- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c
+++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c
@@ -1367,7 +1367,7 @@ int mvpp2_ethtool_cls_rule_ins(struct mvpp2_port *port,
if (info->fs.location >= MVPP2_N_RFS_ENTRIES_PER_FLOW)
return -EINVAL;
- efs = kzalloc(sizeof(*efs), GFP_KERNEL);
+ efs = kzalloc_obj(*efs, GFP_KERNEL);
if (!efs)
return -ENOMEM;
@@ -1503,8 +1503,7 @@ static int mvpp22_rss_context_create(struct mvpp2_port *port, u32 *rss_ctx)
if (ctx == MVPP22_N_RSS_TABLES)
return -EINVAL;
- priv->rss_tables[ctx] = kzalloc(sizeof(*priv->rss_tables[ctx]),
- GFP_KERNEL);
+ priv->rss_tables[ctx] = kzalloc_obj(*priv->rss_tables[ctx], GFP_KERNEL);
if (!priv->rss_tables[ctx])
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c
index 0f9bc4f8ec3b..2aef0c77f4d6 100644
--- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c
+++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c
@@ -706,7 +706,7 @@ void mvpp2_dbgfs_init(struct mvpp2 *priv, const char *name)
mvpp2_dir = debugfs_create_dir(name, mvpp2_root);
priv->dbgfs_dir = mvpp2_dir;
- priv->dbgfs_entries = kzalloc(sizeof(*priv->dbgfs_entries), GFP_KERNEL);
+ priv->dbgfs_entries = kzalloc_obj(*priv->dbgfs_entries, GFP_KERNEL);
if (!priv->dbgfs_entries)
goto err;
diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
index 33426fded919..58f77972c86a 100644
--- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
+++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
@@ -3151,9 +3151,8 @@ static int mvpp2_txq_init(struct mvpp2_port *port,
for (thread = 0; thread < port->priv->nthreads; thread++) {
txq_pcpu = per_cpu_ptr(txq->pcpu, thread);
txq_pcpu->size = txq->size;
- txq_pcpu->buffs = kmalloc_array(txq_pcpu->size,
- sizeof(*txq_pcpu->buffs),
- GFP_KERNEL);
+ txq_pcpu->buffs = kmalloc_objs(*txq_pcpu->buffs, txq_pcpu->size,
+ GFP_KERNEL);
if (!txq_pcpu->buffs)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/octeon_ep/octep_main.c b/drivers/net/ethernet/marvell/octeon_ep/octep_main.c
index 57db7ea2f5be..fd9abcfeb4e0 100644
--- a/drivers/net/ethernet/marvell/octeon_ep/octep_main.c
+++ b/drivers/net/ethernet/marvell/octeon_ep/octep_main.c
@@ -115,8 +115,8 @@ static int octep_enable_msix_range(struct octep_device *oct)
/* Generic interrupts apart from input/output queues */
num_msix = oct->num_oqs + CFG_GET_NON_IOQ_MSIX(oct->conf);
- oct->msix_entries = kcalloc(num_msix,
- sizeof(struct msix_entry), GFP_KERNEL);
+ oct->msix_entries = kzalloc_objs(struct msix_entry, num_msix,
+ GFP_KERNEL);
if (!oct->msix_entries)
goto msix_alloc_err;
@@ -1293,7 +1293,7 @@ int octep_device_setup(struct octep_device *oct)
int i, ret;
/* allocate memory for oct->conf */
- oct->conf = kzalloc(sizeof(*oct->conf), GFP_KERNEL);
+ oct->conf = kzalloc_obj(*oct->conf, GFP_KERNEL);
if (!oct->conf)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_main.c b/drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_main.c
index 1d9760b4b8f4..b794b517c304 100644
--- a/drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_main.c
+++ b/drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_main.c
@@ -113,7 +113,8 @@ static int octep_vf_enable_msix_range(struct octep_vf_device *oct)
/* Generic interrupts apart from input/output queues */
//num_msix = oct->num_oqs + CFG_GET_NON_IOQ_MSIX(oct->conf);
num_msix = oct->num_oqs;
- oct->msix_entries = kcalloc(num_msix, sizeof(struct msix_entry), GFP_KERNEL);
+ oct->msix_entries = kzalloc_objs(struct msix_entry, num_msix,
+ GFP_KERNEL);
if (!oct->msix_entries)
goto msix_alloc_err;
@@ -951,7 +952,7 @@ int octep_vf_device_setup(struct octep_vf_device *oct)
struct pci_dev *pdev = oct->pdev;
/* allocate memory for oct->conf */
- oct->conf = kzalloc(sizeof(*oct->conf), GFP_KERNEL);
+ oct->conf = kzalloc_obj(*oct->conf, GFP_KERNEL);
if (!oct->conf)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/cgx.c b/drivers/net/ethernet/marvell/octeontx2/af/cgx.c
index fd4792e432bf..dc4537623578 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/cgx.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/cgx.c
@@ -1725,7 +1725,7 @@ static int cgx_lmac_init(struct cgx *cgx)
cgx->lmac_count = cgx->max_lmac_per_mac;
for (i = 0; i < cgx->lmac_count; i++) {
- lmac = kzalloc(sizeof(struct lmac), GFP_KERNEL);
+ lmac = kzalloc_obj(struct lmac, GFP_KERNEL);
if (!lmac)
return -ENOMEM;
lmac->name = kcalloc(1, sizeof("cgx_fwi_xxx_yyy"), GFP_KERNEL);
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/mbox.c b/drivers/net/ethernet/marvell/octeontx2/af/mbox.c
index 75872d257eca..ad62be730bbc 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/mbox.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/mbox.c
@@ -133,7 +133,7 @@ int cn20k_mbox_setup(struct otx2_mbox *mbox, struct pci_dev *pdev,
mbox->reg_base = reg_base;
mbox->pdev = pdev;
- mbox->dev = kcalloc(ndevs, sizeof(struct otx2_mbox_dev), GFP_KERNEL);
+ mbox->dev = kzalloc_objs(struct otx2_mbox_dev, ndevs, GFP_KERNEL);
if (!mbox->dev) {
otx2_mbox_destroy(mbox);
return -ENOMEM;
@@ -211,7 +211,7 @@ static int otx2_mbox_setup(struct otx2_mbox *mbox, struct pci_dev *pdev,
mbox->reg_base = reg_base;
mbox->pdev = pdev;
- mbox->dev = kcalloc(ndevs, sizeof(struct otx2_mbox_dev), GFP_KERNEL);
+ mbox->dev = kzalloc_objs(struct otx2_mbox_dev, ndevs, GFP_KERNEL);
if (!mbox->dev) {
otx2_mbox_destroy(mbox);
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c b/drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c
index a80c8e7c94f2..d98b49f47970 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c
@@ -105,7 +105,7 @@ int mcs_add_intr_wq_entry(struct mcs *mcs, struct mcs_intr_event *event)
if (!(pfvf->intr_mask && event->intr_mask))
return 0;
- qentry = kmalloc(sizeof(*qentry), GFP_ATOMIC);
+ qentry = kmalloc_obj(*qentry, GFP_ATOMIC);
if (!qentry)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/ptp.c b/drivers/net/ethernet/marvell/octeontx2/af/ptp.c
index 66749b3649c1..f38b5addd4d8 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/ptp.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/ptp.c
@@ -520,7 +520,7 @@ static int ptp_probe(struct pci_dev *pdev,
struct ptp *ptp;
int err;
- ptp = kzalloc(sizeof(*ptp), GFP_KERNEL);
+ ptp = kzalloc_obj(*ptp, GFP_KERNEL);
if (!ptp) {
err = -ENOMEM;
goto error;
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu.c
index 8530df8b3fda..2e3b3345a362 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu.c
@@ -2516,7 +2516,7 @@ static int rvu_mbox_init(struct rvu *rvu, struct mbox_wq_info *mw,
if (!pf_bmap)
return -ENOMEM;
- ng_rvu_mbox = kzalloc(sizeof(*ng_rvu_mbox), GFP_KERNEL);
+ ng_rvu_mbox = kzalloc_obj(*ng_rvu_mbox, GFP_KERNEL);
if (!ng_rvu_mbox) {
err = -ENOMEM;
goto free_bitmap;
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
index 3d91a34f8b57..b9980253dcb0 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
@@ -184,7 +184,7 @@ static int rvu_cgx_send_link_info(int cgx_id, int lmac_id, struct rvu *rvu)
unsigned long flags;
int err;
- qentry = kmalloc(sizeof(*qentry), GFP_KERNEL);
+ qentry = kmalloc_obj(*qentry, GFP_KERNEL);
if (!qentry)
return -ENOMEM;
@@ -215,7 +215,7 @@ static int cgx_lmac_postevent(struct cgx_link_event *event, void *data)
struct rvu *rvu = data;
/* post event to the event queue */
- qentry = kmalloc(sizeof(*qentry), GFP_ATOMIC);
+ qentry = kmalloc_obj(*qentry, GFP_ATOMIC);
if (!qentry)
return -ENOMEM;
qentry->link_event = *event;
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c
index 0f9953eaf1b0..71c411d8eb83 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c
@@ -494,12 +494,12 @@ static int rvu_nix_register_reporters(struct rvu_devlink *rvu_dl)
struct rvu_nix_event_ctx *nix_event_context;
struct rvu *rvu = rvu_dl->rvu;
- rvu_reporters = kzalloc(sizeof(*rvu_reporters), GFP_KERNEL);
+ rvu_reporters = kzalloc_obj(*rvu_reporters, GFP_KERNEL);
if (!rvu_reporters)
return -ENOMEM;
rvu_dl->rvu_nix_health_reporter = rvu_reporters;
- nix_event_context = kzalloc(sizeof(*nix_event_context), GFP_KERNEL);
+ nix_event_context = kzalloc_obj(*nix_event_context, GFP_KERNEL);
if (!nix_event_context)
return -ENOMEM;
@@ -1048,12 +1048,12 @@ static int rvu_npa_register_reporters(struct rvu_devlink *rvu_dl)
struct rvu_npa_event_ctx *npa_event_context;
struct rvu *rvu = rvu_dl->rvu;
- rvu_reporters = kzalloc(sizeof(*rvu_reporters), GFP_KERNEL);
+ rvu_reporters = kzalloc_obj(*rvu_reporters, GFP_KERNEL);
if (!rvu_reporters)
return -ENOMEM;
rvu_dl->rvu_npa_health_reporter = rvu_reporters;
- npa_event_context = kzalloc(sizeof(*npa_event_context), GFP_KERNEL);
+ npa_event_context = kzalloc_obj(*npa_event_context, GFP_KERNEL);
if (!npa_event_context)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
index 49f7ff5eddfc..0964a85b536f 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
@@ -2455,7 +2455,7 @@ static int nix_smq_flush(struct rvu *rvu, int blkaddr,
}
/* XOFF all TL2s whose parent TL1 matches SMQ tree TL1 */
- smq_flush_ctx = kzalloc(sizeof(*smq_flush_ctx), GFP_KERNEL);
+ smq_flush_ctx = kzalloc_obj(*smq_flush_ctx, GFP_KERNEL);
if (!smq_flush_ctx)
return -ENOMEM;
nix_smq_flush_fill_ctx(rvu, blkaddr, smq, smq_flush_ctx);
@@ -3373,7 +3373,7 @@ static int nix_add_mce_list_entry(struct rvu *rvu,
mce_list = &elem->mcast_mce_list;
for (i = 0; i < num_entry; i++) {
- mce = kzalloc(sizeof(*mce), GFP_KERNEL);
+ mce = kzalloc_obj(*mce, GFP_KERNEL);
if (!mce)
goto free_mce;
@@ -3435,7 +3435,7 @@ static int nix_update_mce_list_entry(struct nix_mce_list *mce_list,
return 0;
/* Add a new one to the list, at the tail */
- mce = kzalloc(sizeof(*mce), GFP_KERNEL);
+ mce = kzalloc_obj(*mce, GFP_KERNEL);
if (!mce)
return -ENOMEM;
mce->pcifunc = pcifunc;
@@ -6420,7 +6420,7 @@ int rvu_mbox_handler_nix_mcast_grp_create(struct rvu *rvu,
return err;
mcast_grp = &nix_hw->mcast_grp;
- elem = kzalloc(sizeof(*elem), GFP_KERNEL);
+ elem = kzalloc_obj(*elem, GFP_KERNEL);
if (!elem)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c
index b56395ac5a74..1b7dd4e771c7 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c
@@ -1297,7 +1297,7 @@ static int npc_install_flow(struct rvu *rvu, int blkaddr, u16 target,
find_rule:
rule = rvu_mcam_find_rule(mcam, entry_index);
if (!rule) {
- rule = kzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
return -ENOMEM;
new = true;
@@ -1741,7 +1741,7 @@ int npc_install_mcam_drop_rule(struct rvu *rvu, int mcam_idx, u16 *counter_idx,
}
/* Add this entry to mcam rules list */
- rule = kzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
index 999f6d93c7fe..7ed5750435c1 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
@@ -796,7 +796,7 @@ static int rvu_npc_exact_add_to_list(struct rvu *rvu, enum npc_exact_opc_type op
return -EFAULT;
}
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
rvu_npc_exact_free_id(rvu, *seq_id);
dev_err(rvu->dev, "%s: Memory allocation failed\n", __func__);
@@ -1896,7 +1896,7 @@ int rvu_npc_exact_init(struct rvu *rvu)
/* Set capability to true */
rvu->hw->cap.npc_exact_match_enabled = true;
- table = kzalloc(sizeof(*table), GFP_KERNEL);
+ table = kzalloc_obj(*table, GFP_KERNEL);
if (!table)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_rep.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_rep.c
index 4415d0ce9aef..901f6fd40fd4 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_rep.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_rep.c
@@ -97,7 +97,7 @@ int rvu_mbox_handler_rep_event_notify(struct rvu *rvu, struct rep_event *req,
{
struct rep_evtq_ent *qentry;
- qentry = kmalloc(sizeof(*qentry), GFP_ATOMIC);
+ qentry = kmalloc_obj(*qentry, GFP_ATOMIC);
if (!qentry)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/cn10k_macsec.c b/drivers/net/ethernet/marvell/octeontx2/nic/cn10k_macsec.c
index 060c715ebad0..5f90f38071da 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/cn10k_macsec.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/cn10k_macsec.c
@@ -914,7 +914,7 @@ static struct cn10k_mcs_txsc *cn10k_mcs_create_txsc(struct otx2_nic *pfvf)
struct cn10k_mcs_txsc *txsc;
int ret;
- txsc = kzalloc(sizeof(*txsc), GFP_KERNEL);
+ txsc = kzalloc_obj(*txsc, GFP_KERNEL);
if (!txsc)
return ERR_PTR(-ENOMEM);
@@ -987,7 +987,7 @@ static struct cn10k_mcs_rxsc *cn10k_mcs_create_rxsc(struct otx2_nic *pfvf)
struct cn10k_mcs_rxsc *rxsc;
int ret;
- rxsc = kzalloc(sizeof(*rxsc), GFP_KERNEL);
+ rxsc = kzalloc_obj(*rxsc, GFP_KERNEL);
if (!rxsc)
return ERR_PTR(-ENOMEM);
@@ -1772,7 +1772,7 @@ int cn10k_mcs_init(struct otx2_nic *pfvf)
if (!test_bit(CN10K_HW_MACSEC, &pfvf->hw.cap_flag))
return 0;
- cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
+ cfg = kzalloc_obj(*cfg, GFP_KERNEL);
if (!cfg)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
index 75ebb17419c4..768503b255fb 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
@@ -1005,7 +1005,7 @@ int otx2_sq_init(struct otx2_nic *pfvf, u16 qidx, u16 sqb_aura)
}
sq->sqe_base = sq->sqe->base;
- sq->sg = kcalloc(qset->sqe_cnt, sizeof(struct sg_list), GFP_KERNEL);
+ sq->sg = kzalloc_objs(struct sg_list, qset->sqe_cnt, GFP_KERNEL);
if (!sq->sg)
return -ENOMEM;
@@ -1585,7 +1585,7 @@ int otx2_sq_aura_pool_init(struct otx2_nic *pfvf)
sq = &qset->sq[qidx];
sq->sqb_count = 0;
- sq->sqb_ptrs = kcalloc(num_sqbs, sizeof(*sq->sqb_ptrs), GFP_KERNEL);
+ sq->sqb_ptrs = kzalloc_objs(*sq->sqb_ptrs, num_sqbs, GFP_KERNEL);
if (!sq->sqb_ptrs) {
err = -ENOMEM;
goto err_mem;
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c
index 64c6d9162ef6..f61730e8d73a 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c
@@ -1063,7 +1063,7 @@ static int otx2_add_flow_with_pfmac(struct otx2_nic *pfvf,
struct otx2_flow *pf_mac;
struct ethhdr *eth_hdr;
- pf_mac = kzalloc(sizeof(*pf_mac), GFP_KERNEL);
+ pf_mac = kzalloc_obj(*pf_mac, GFP_KERNEL);
if (!pf_mac)
return -ENOMEM;
@@ -1131,7 +1131,7 @@ int otx2_add_flow(struct otx2_nic *pfvf, struct ethtool_rxnfc *nfc)
flow = otx2_find_flow(pfvf, fsp->location);
if (!flow) {
- flow = kzalloc(sizeof(*flow), GFP_KERNEL);
+ flow = kzalloc_obj(*flow, GFP_KERNEL);
if (!flow)
return -ENOMEM;
flow->location = fsp->location;
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
index 444bb67494ab..333071ac7598 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
@@ -1936,7 +1936,7 @@ int otx2_alloc_queue_mem(struct otx2_nic *pf)
pf->qset.cq_cnt = pf->hw.rx_queues + otx2_get_total_tx_queues(pf);
- qset->napi = kcalloc(pf->hw.cint_cnt, sizeof(*cq_poll), GFP_KERNEL);
+ qset->napi = kzalloc_objs(*cq_poll, pf->hw.cint_cnt, GFP_KERNEL);
if (!qset->napi)
return -ENOMEM;
@@ -1945,18 +1945,18 @@ int otx2_alloc_queue_mem(struct otx2_nic *pf)
/* CQ size of SQ */
qset->sqe_cnt = qset->sqe_cnt ? qset->sqe_cnt : Q_COUNT(Q_SIZE_4K);
- qset->cq = kcalloc(pf->qset.cq_cnt,
- sizeof(struct otx2_cq_queue), GFP_KERNEL);
+ qset->cq = kzalloc_objs(struct otx2_cq_queue, pf->qset.cq_cnt,
+ GFP_KERNEL);
if (!qset->cq)
goto err_free_mem;
- qset->sq = kcalloc(otx2_get_total_tx_queues(pf),
- sizeof(struct otx2_snd_queue), GFP_KERNEL);
+ qset->sq = kzalloc_objs(struct otx2_snd_queue,
+ otx2_get_total_tx_queues(pf), GFP_KERNEL);
if (!qset->sq)
goto err_free_mem;
- qset->rq = kcalloc(pf->hw.rx_queues,
- sizeof(struct otx2_rcv_queue), GFP_KERNEL);
+ qset->rq = kzalloc_objs(struct otx2_rcv_queue, pf->hw.rx_queues,
+ GFP_KERNEL);
if (!qset->rq)
goto err_free_mem;
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
index dedd586ed310..de9b90e498cc 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
@@ -408,7 +408,7 @@ int otx2_ptp_init(struct otx2_nic *pfvf)
}
mutex_unlock(&pfvf->mbox.lock);
- ptp_ptr = kzalloc(sizeof(*ptp_ptr), GFP_KERNEL);
+ ptp_ptr = kzalloc_obj(*ptp_ptr, GFP_KERNEL);
if (!ptp_ptr) {
err = -ENOMEM;
goto error;
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
index 26a08d2cfbb1..9b569e0d6222 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
@@ -1271,7 +1271,7 @@ static int otx2_tc_add_flow(struct otx2_nic *nic,
}
/* allocate memory for the new flow and it's node */
- new_node = kzalloc(sizeof(*new_node), GFP_KERNEL);
+ new_node = kzalloc_obj(*new_node, GFP_KERNEL);
if (!new_node)
return -ENOMEM;
spin_lock_init(&new_node->lock);
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/qos.c b/drivers/net/ethernet/marvell/octeontx2/nic/qos.c
index 5765bac119f0..435c176c2643 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/qos.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/qos.c
@@ -407,7 +407,7 @@ otx2_qos_alloc_root(struct otx2_nic *pfvf)
{
struct otx2_qos_node *node;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return ERR_PTR(-ENOMEM);
@@ -463,7 +463,7 @@ static int otx2_qos_alloc_txschq_node(struct otx2_nic *pfvf,
parent = node;
for (lvl = node->level - 1; lvl >= NIX_TXSCH_LVL_MDQ; lvl--) {
- txschq_node = kzalloc(sizeof(*txschq_node), GFP_KERNEL);
+ txschq_node = kzalloc_obj(*txschq_node, GFP_KERNEL);
if (!txschq_node)
goto err_out;
@@ -508,7 +508,7 @@ otx2_qos_sw_create_leaf_node(struct otx2_nic *pfvf,
struct otx2_qos_node *node;
int err;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return ERR_PTR(-ENOMEM);
@@ -1045,7 +1045,7 @@ static int otx2_qos_root_add(struct otx2_nic *pfvf, u16 htb_maj_id, u16 htb_defc
}
/* allocate txschq queue */
- new_cfg = kzalloc(sizeof(*new_cfg), GFP_KERNEL);
+ new_cfg = kzalloc_obj(*new_cfg, GFP_KERNEL);
if (!new_cfg) {
NL_SET_ERR_MSG_MOD(extack, "Memory allocation error");
err = -ENOMEM;
@@ -1279,7 +1279,7 @@ static int otx2_qos_leaf_alloc_queue(struct otx2_nic *pfvf, u16 classid,
set_bit(prio, parent->prio_bmap);
/* read current txschq configuration */
- old_cfg = kzalloc(sizeof(*old_cfg), GFP_KERNEL);
+ old_cfg = kzalloc_obj(*old_cfg, GFP_KERNEL);
if (!old_cfg) {
NL_SET_ERR_MSG_MOD(extack, "Memory allocation error");
ret = -ENOMEM;
@@ -1308,7 +1308,7 @@ static int otx2_qos_leaf_alloc_queue(struct otx2_nic *pfvf, u16 classid,
}
/* push new txschq config to hw */
- new_cfg = kzalloc(sizeof(*new_cfg), GFP_KERNEL);
+ new_cfg = kzalloc_obj(*new_cfg, GFP_KERNEL);
if (!new_cfg) {
NL_SET_ERR_MSG_MOD(extack, "Memory allocation error");
ret = -ENOMEM;
@@ -1417,7 +1417,7 @@ static int otx2_qos_leaf_to_inner(struct otx2_nic *pfvf, u16 classid,
qid = node->qid;
/* read current txschq configuration */
- old_cfg = kzalloc(sizeof(*old_cfg), GFP_KERNEL);
+ old_cfg = kzalloc_obj(*old_cfg, GFP_KERNEL);
if (!old_cfg) {
NL_SET_ERR_MSG_MOD(extack, "Memory allocation error");
ret = -ENOMEM;
@@ -1445,7 +1445,7 @@ static int otx2_qos_leaf_to_inner(struct otx2_nic *pfvf, u16 classid,
}
/* push new txschq config to hw */
- new_cfg = kzalloc(sizeof(*new_cfg), GFP_KERNEL);
+ new_cfg = kzalloc_obj(*new_cfg, GFP_KERNEL);
if (!new_cfg) {
NL_SET_ERR_MSG_MOD(extack, "Memory allocation error");
ret = -ENOMEM;
@@ -1668,7 +1668,7 @@ static int otx2_qos_leaf_del_last(struct otx2_nic *pfvf, u16 classid, bool force
__set_bit(qid, pfvf->qos.qos_sq_bmap);
/* push new txschq config to hw */
- new_cfg = kzalloc(sizeof(*new_cfg), GFP_KERNEL);
+ new_cfg = kzalloc_obj(*new_cfg, GFP_KERNEL);
if (!new_cfg) {
NL_SET_ERR_MSG_MOD(extack, "Memory allocation error");
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/rep.c b/drivers/net/ethernet/marvell/octeontx2/nic/rep.c
index b476733a0234..7706ec417d2b 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/rep.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/rep.c
@@ -40,7 +40,7 @@ static int rvu_rep_mcam_flow_init(struct rep_dev *rep)
int ent, allocated = 0;
int count;
- rep->flow_cfg = kcalloc(1, sizeof(struct otx2_flow_config), GFP_KERNEL);
+ rep->flow_cfg = kzalloc_objs(struct otx2_flow_config, 1, GFP_KERNEL);
if (!rep->flow_cfg)
return -ENOMEM;
@@ -504,7 +504,7 @@ static int rvu_rep_napi_init(struct otx2_nic *priv,
int err = 0, qidx, vec;
char *irq_name;
- qset->napi = kcalloc(hw->cint_cnt, sizeof(*cq_poll), GFP_KERNEL);
+ qset->napi = kzalloc_objs(*cq_poll, hw->cint_cnt, GFP_KERNEL);
if (!qset->napi)
return -ENOMEM;
@@ -656,7 +656,7 @@ int rvu_rep_create(struct otx2_nic *priv, struct netlink_ext_ack *extack)
if (err)
return -ENOMEM;
- priv->reps = kcalloc(rep_cnt, sizeof(struct rep_dev *), GFP_KERNEL);
+ priv->reps = kzalloc_objs(struct rep_dev *, rep_cnt, GFP_KERNEL);
if (!priv->reps)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/prestera/prestera_acl.c b/drivers/net/ethernet/marvell/prestera/prestera_acl.c
index cba89fda504b..02f113f9af9f 100644
--- a/drivers/net/ethernet/marvell/prestera/prestera_acl.c
+++ b/drivers/net/ethernet/marvell/prestera/prestera_acl.c
@@ -144,7 +144,7 @@ prestera_acl_ruleset_create(struct prestera_acl *acl,
if (!prestera_acl_chain_is_supported(chain_index, block->ingress))
return ERR_PTR(-EINVAL);
- ruleset = kzalloc(sizeof(*ruleset), GFP_KERNEL);
+ ruleset = kzalloc_obj(*ruleset, GFP_KERNEL);
if (!ruleset)
return ERR_PTR(-ENOMEM);
@@ -438,7 +438,7 @@ prestera_acl_rule_create(struct prestera_acl_ruleset *ruleset,
{
struct prestera_acl_rule *rule;
- rule = kzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
return ERR_PTR(-ENOMEM);
@@ -713,7 +713,7 @@ prestera_acl_rule_entry_create(struct prestera_acl *acl,
struct prestera_acl_rule_entry *e;
int err;
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e)
goto err_kzalloc;
@@ -816,7 +816,7 @@ int prestera_acl_vtcam_id_get(struct prestera_acl *acl, u8 lookup, u8 dir,
}
/* vtcam not found, try to create new one */
- vtcam = kzalloc(sizeof(*vtcam), GFP_KERNEL);
+ vtcam = kzalloc_obj(*vtcam, GFP_KERNEL);
if (!vtcam)
return -ENOMEM;
@@ -880,7 +880,7 @@ int prestera_acl_init(struct prestera_switch *sw)
struct prestera_acl *acl;
int err;
- acl = kzalloc(sizeof(*acl), GFP_KERNEL);
+ acl = kzalloc_obj(*acl, GFP_KERNEL);
if (!acl)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/prestera/prestera_counter.c b/drivers/net/ethernet/marvell/prestera/prestera_counter.c
index 634f4543c1d7..c59ed115c700 100644
--- a/drivers/net/ethernet/marvell/prestera/prestera_counter.c
+++ b/drivers/net/ethernet/marvell/prestera/prestera_counter.c
@@ -147,7 +147,7 @@ prestera_counter_block_get(struct prestera_counter *counter, u32 client)
if (block)
return block;
- block = kzalloc(sizeof(*block), GFP_KERNEL);
+ block = kzalloc_obj(*block, GFP_KERNEL);
if (!block)
return ERR_PTR(-ENOMEM);
@@ -157,8 +157,8 @@ prestera_counter_block_get(struct prestera_counter *counter, u32 client)
if (err)
goto err_block;
- block->stats = kcalloc(block->num_counters,
- sizeof(*block->stats), GFP_KERNEL);
+ block->stats = kzalloc_objs(*block->stats, block->num_counters,
+ GFP_KERNEL);
if (!block->stats) {
err = -ENOMEM;
goto err_stats;
@@ -437,11 +437,11 @@ int prestera_counter_init(struct prestera_switch *sw)
{
struct prestera_counter *counter;
- counter = kzalloc(sizeof(*counter), GFP_KERNEL);
+ counter = kzalloc_obj(*counter, GFP_KERNEL);
if (!counter)
return -ENOMEM;
- counter->block_list = kzalloc(sizeof(*counter->block_list), GFP_KERNEL);
+ counter->block_list = kzalloc_obj(*counter->block_list, GFP_KERNEL);
if (!counter->block_list) {
kfree(counter);
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/prestera/prestera_devlink.c b/drivers/net/ethernet/marvell/prestera/prestera_devlink.c
index e63d95c1842f..981b9e835be7 100644
--- a/drivers/net/ethernet/marvell/prestera/prestera_devlink.c
+++ b/drivers/net/ethernet/marvell/prestera/prestera_devlink.c
@@ -451,13 +451,12 @@ int prestera_devlink_traps_register(struct prestera_switch *sw)
struct prestera_trap *prestera_trap;
int err, i;
- trap_data = kzalloc(sizeof(*trap_data), GFP_KERNEL);
+ trap_data = kzalloc_obj(*trap_data, GFP_KERNEL);
if (!trap_data)
return -ENOMEM;
- trap_data->trap_items_arr = kcalloc(traps_count,
- sizeof(struct prestera_trap_item),
- GFP_KERNEL);
+ trap_data->trap_items_arr = kzalloc_objs(struct prestera_trap_item,
+ traps_count, GFP_KERNEL);
if (!trap_data->trap_items_arr) {
err = -ENOMEM;
goto err_trap_items_alloc;
diff --git a/drivers/net/ethernet/marvell/prestera/prestera_flow.c b/drivers/net/ethernet/marvell/prestera/prestera_flow.c
index 9f4267f326b0..21c052bfa6e8 100644
--- a/drivers/net/ethernet/marvell/prestera/prestera_flow.c
+++ b/drivers/net/ethernet/marvell/prestera/prestera_flow.c
@@ -82,7 +82,7 @@ prestera_flow_block_create(struct prestera_switch *sw,
{
struct prestera_flow_block *block;
- block = kzalloc(sizeof(*block), GFP_KERNEL);
+ block = kzalloc_obj(*block, GFP_KERNEL);
if (!block)
return NULL;
@@ -130,7 +130,7 @@ static int prestera_flow_block_bind(struct prestera_flow_block *block,
struct prestera_flow_block_binding *binding;
int err;
- binding = kzalloc(sizeof(*binding), GFP_KERNEL);
+ binding = kzalloc_obj(*binding, GFP_KERNEL);
if (!binding)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/prestera/prestera_flower.c b/drivers/net/ethernet/marvell/prestera/prestera_flower.c
index 418101a93149..28077005efaa 100644
--- a/drivers/net/ethernet/marvell/prestera/prestera_flower.c
+++ b/drivers/net/ethernet/marvell/prestera/prestera_flower.c
@@ -495,7 +495,7 @@ int prestera_flower_tmplt_create(struct prestera_flow_block *block,
if (err)
return err;
- template = kmalloc(sizeof(*template), GFP_KERNEL);
+ template = kmalloc_obj(*template, GFP_KERNEL);
if (!template) {
err = -ENOMEM;
goto err_malloc;
diff --git a/drivers/net/ethernet/marvell/prestera/prestera_hw.c b/drivers/net/ethernet/marvell/prestera/prestera_hw.c
index 197198ba61b1..e20bd0eca18d 100644
--- a/drivers/net/ethernet/marvell/prestera/prestera_hw.c
+++ b/drivers/net/ethernet/marvell/prestera/prestera_hw.c
@@ -2256,7 +2256,7 @@ int prestera_hw_event_handler_register(struct prestera_switch *sw,
if (eh)
return -EEXIST;
- eh = kmalloc(sizeof(*eh), GFP_KERNEL);
+ eh = kmalloc_obj(*eh, GFP_KERNEL);
if (!eh)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/prestera/prestera_main.c b/drivers/net/ethernet/marvell/prestera/prestera_main.c
index 65e7ef033bde..0d12ed32586b 100644
--- a/drivers/net/ethernet/marvell/prestera/prestera_main.c
+++ b/drivers/net/ethernet/marvell/prestera/prestera_main.c
@@ -1014,7 +1014,7 @@ static int prestera_lag_init(struct prestera_switch *sw)
{
u16 id;
- sw->lags = kcalloc(sw->lag_max, sizeof(*sw->lags), GFP_KERNEL);
+ sw->lags = kzalloc_objs(*sw->lags, sw->lag_max, GFP_KERNEL);
if (!sw->lags)
return -ENOMEM;
@@ -1209,7 +1209,7 @@ prestera_mdb_entry_create(struct prestera_switch *sw,
struct prestera_flood_domain *flood_domain;
struct prestera_mdb_entry *mdb_entry;
- mdb_entry = kzalloc(sizeof(*mdb_entry), GFP_KERNEL);
+ mdb_entry = kzalloc_obj(*mdb_entry, GFP_KERNEL);
if (!mdb_entry)
goto err_mdb_alloc;
@@ -1247,7 +1247,7 @@ prestera_flood_domain_create(struct prestera_switch *sw)
{
struct prestera_flood_domain *domain;
- domain = kzalloc(sizeof(*domain), GFP_KERNEL);
+ domain = kzalloc_obj(*domain, GFP_KERNEL);
if (!domain)
return NULL;
@@ -1279,7 +1279,7 @@ prestera_flood_domain_port_create(struct prestera_flood_domain *flood_domain,
bool is_first_port_in_list = false;
int err;
- flood_domain_port = kzalloc(sizeof(*flood_domain_port), GFP_KERNEL);
+ flood_domain_port = kzalloc_obj(*flood_domain_port, GFP_KERNEL);
if (!flood_domain_port) {
err = -ENOMEM;
goto err_port_alloc;
diff --git a/drivers/net/ethernet/marvell/prestera/prestera_router.c b/drivers/net/ethernet/marvell/prestera/prestera_router.c
index de317179a7dc..a75764610eef 100644
--- a/drivers/net/ethernet/marvell/prestera/prestera_router.c
+++ b/drivers/net/ethernet/marvell/prestera/prestera_router.c
@@ -485,7 +485,7 @@ __prestera_kern_neigh_cache_create(struct prestera_switch *sw,
struct prestera_kern_neigh_cache *n_cache;
int err;
- n_cache = kzalloc(sizeof(*n_cache), GFP_KERNEL);
+ n_cache = kzalloc_obj(*n_cache, GFP_KERNEL);
if (!n_cache)
goto err_kzalloc;
@@ -623,7 +623,7 @@ prestera_kern_fib_cache_create(struct prestera_switch *sw,
struct prestera_kern_fib_cache *fib_cache;
int err;
- fib_cache = kzalloc(sizeof(*fib_cache), GFP_KERNEL);
+ fib_cache = kzalloc_obj(*fib_cache, GFP_KERNEL);
if (!fib_cache)
goto err_kzalloc;
@@ -1448,7 +1448,7 @@ static int __prestera_router_fib_event(struct notifier_block *nb,
if (!fen_info->fi)
return NOTIFY_DONE;
- fib_work = kzalloc(sizeof(*fib_work), GFP_ATOMIC);
+ fib_work = kzalloc_obj(*fib_work, GFP_ATOMIC);
if (WARN_ON(!fib_work))
return NOTIFY_BAD;
@@ -1503,7 +1503,7 @@ static int prestera_router_netevent_event(struct notifier_block *nb,
if (n->tbl->family != AF_INET)
return NOTIFY_DONE;
- net_work = kzalloc(sizeof(*net_work), GFP_ATOMIC);
+ net_work = kzalloc_obj(*net_work, GFP_ATOMIC);
if (WARN_ON(!net_work))
return NOTIFY_BAD;
@@ -1550,7 +1550,7 @@ int prestera_router_init(struct prestera_switch *sw)
struct prestera_router *router;
int err, nhgrp_cache_bytes;
- router = kzalloc(sizeof(*sw->router), GFP_KERNEL);
+ router = kzalloc_obj(*sw->router, GFP_KERNEL);
if (!router)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/prestera/prestera_router_hw.c b/drivers/net/ethernet/marvell/prestera/prestera_router_hw.c
index 02faaea2aefa..b94e28d403e7 100644
--- a/drivers/net/ethernet/marvell/prestera/prestera_router_hw.c
+++ b/drivers/net/ethernet/marvell/prestera/prestera_router_hw.c
@@ -127,7 +127,7 @@ static struct prestera_vr *__prestera_vr_create(struct prestera_switch *sw,
struct prestera_vr *vr;
int err;
- vr = kzalloc(sizeof(*vr), GFP_KERNEL);
+ vr = kzalloc_obj(*vr, GFP_KERNEL);
if (!vr) {
err = -ENOMEM;
goto err_alloc_vr;
@@ -252,7 +252,7 @@ prestera_rif_entry_create(struct prestera_switch *sw,
struct prestera_rif_entry *e;
struct prestera_iface iface;
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e)
goto err_kzalloc;
@@ -301,7 +301,7 @@ __prestera_nh_neigh_create(struct prestera_switch *sw,
struct prestera_nh_neigh *neigh;
int err;
- neigh = kzalloc(sizeof(*neigh), GFP_KERNEL);
+ neigh = kzalloc_obj(*neigh, GFP_KERNEL);
if (!neigh)
goto err_kzalloc;
@@ -397,7 +397,7 @@ __prestera_nexthop_group_create(struct prestera_switch *sw,
struct prestera_nh_neigh *nh_neigh;
int nh_cnt, err, gid;
- nh_grp = kzalloc(sizeof(*nh_grp), GFP_KERNEL);
+ nh_grp = kzalloc_obj(*nh_grp, GFP_KERNEL);
if (!nh_grp)
goto err_kzalloc;
@@ -628,7 +628,7 @@ prestera_fib_node_create(struct prestera_switch *sw,
struct prestera_vr *vr;
int err;
- fib_node = kzalloc(sizeof(*fib_node), GFP_KERNEL);
+ fib_node = kzalloc_obj(*fib_node, GFP_KERNEL);
if (!fib_node)
goto err_kzalloc;
diff --git a/drivers/net/ethernet/marvell/prestera/prestera_rxtx.c b/drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
index 39d9bf82c115..696625d6dcbc 100644
--- a/drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
+++ b/drivers/net/ethernet/marvell/prestera/prestera_rxtx.c
@@ -379,7 +379,7 @@ static int prestera_sdma_rx_init(struct prestera_sdma *sdma)
struct prestera_sdma_buf *head, *tail, *next, *prev;
struct prestera_rx_ring *ring = &sdma->rx_ring[q];
- ring->bufs = kmalloc_array(bnum, sizeof(*head), GFP_KERNEL);
+ ring->bufs = kmalloc_objs(*head, bnum, GFP_KERNEL);
if (!ring->bufs)
return -ENOMEM;
@@ -529,7 +529,7 @@ static int prestera_sdma_tx_init(struct prestera_sdma *sdma)
INIT_WORK(&sdma->tx_work, prestera_sdma_tx_recycle_work_fn);
spin_lock_init(&sdma->tx_lock);
- tx_ring->bufs = kmalloc_array(bnum, sizeof(*head), GFP_KERNEL);
+ tx_ring->bufs = kmalloc_objs(*head, bnum, GFP_KERNEL);
if (!tx_ring->bufs)
return -ENOMEM;
@@ -784,7 +784,7 @@ int prestera_rxtx_switch_init(struct prestera_switch *sw)
struct prestera_rxtx *rxtx;
int err;
- rxtx = kzalloc(sizeof(*rxtx), GFP_KERNEL);
+ rxtx = kzalloc_obj(*rxtx, GFP_KERNEL);
if (!rxtx)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/prestera/prestera_span.c b/drivers/net/ethernet/marvell/prestera/prestera_span.c
index 1005182ce3bc..dd86164e6a19 100644
--- a/drivers/net/ethernet/marvell/prestera/prestera_span.c
+++ b/drivers/net/ethernet/marvell/prestera/prestera_span.c
@@ -27,7 +27,7 @@ prestera_span_entry_create(struct prestera_port *port, u8 span_id)
{
struct prestera_span_entry *entry;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return ERR_PTR(-ENOMEM);
@@ -170,7 +170,7 @@ int prestera_span_init(struct prestera_switch *sw)
{
struct prestera_span *span;
- span = kzalloc(sizeof(*span), GFP_KERNEL);
+ span = kzalloc_obj(*span, GFP_KERNEL);
if (!span)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/prestera/prestera_switchdev.c b/drivers/net/ethernet/marvell/prestera/prestera_switchdev.c
index e548cd32582e..1ca197fb08a6 100644
--- a/drivers/net/ethernet/marvell/prestera/prestera_switchdev.c
+++ b/drivers/net/ethernet/marvell/prestera/prestera_switchdev.c
@@ -180,7 +180,7 @@ prestera_bridge_vlan_create(struct prestera_bridge_port *br_port, u16 vid)
{
struct prestera_bridge_vlan *br_vlan;
- br_vlan = kzalloc(sizeof(*br_vlan), GFP_KERNEL);
+ br_vlan = kzalloc_obj(*br_vlan, GFP_KERNEL);
if (!br_vlan)
return NULL;
@@ -263,7 +263,7 @@ prestera_port_vlan_create(struct prestera_port *port, u16 vid, bool untagged)
if (err)
return ERR_PTR(err);
- port_vlan = kzalloc(sizeof(*port_vlan), GFP_KERNEL);
+ port_vlan = kzalloc_obj(*port_vlan, GFP_KERNEL);
if (!port_vlan) {
err = -ENOMEM;
goto err_port_vlan_alloc;
@@ -443,7 +443,7 @@ prestera_bridge_create(struct prestera_switchdev *swdev, struct net_device *dev)
return ERR_PTR(-EINVAL);
}
- bridge = kzalloc(sizeof(*bridge), GFP_KERNEL);
+ bridge = kzalloc_obj(*bridge, GFP_KERNEL);
if (!bridge)
return ERR_PTR(-ENOMEM);
@@ -562,7 +562,7 @@ prestera_bridge_port_create(struct prestera_bridge *bridge,
{
struct prestera_bridge_port *br_port;
- br_port = kzalloc(sizeof(*br_port), GFP_KERNEL);
+ br_port = kzalloc_obj(*br_port, GFP_KERNEL);
if (!br_port)
return NULL;
@@ -1313,7 +1313,7 @@ static int prestera_switchdev_event(struct notifier_block *unused,
if (!netif_is_bridge_master(upper))
return NOTIFY_DONE;
- swdev_work = kzalloc(sizeof(*swdev_work), GFP_ATOMIC);
+ swdev_work = kzalloc_obj(*swdev_work, GFP_ATOMIC);
if (!swdev_work)
return NOTIFY_BAD;
@@ -1498,7 +1498,7 @@ prestera_br_mdb_entry_create(struct prestera_switch *sw,
struct prestera_br_mdb_entry *br_mdb_entry;
struct prestera_mdb_entry *mdb_entry;
- br_mdb_entry = kzalloc(sizeof(*br_mdb_entry), GFP_KERNEL);
+ br_mdb_entry = kzalloc_obj(*br_mdb_entry, GFP_KERNEL);
if (!br_mdb_entry)
return NULL;
@@ -1530,7 +1530,7 @@ static int prestera_br_mdb_port_add(struct prestera_br_mdb_entry *br_mdb,
if (br_mdb_port->br_port == br_port)
return 0;
- br_mdb_port = kzalloc(sizeof(*br_mdb_port), GFP_KERNEL);
+ br_mdb_port = kzalloc_obj(*br_mdb_port, GFP_KERNEL);
if (!br_mdb_port)
return -ENOMEM;
@@ -1873,7 +1873,7 @@ int prestera_switchdev_init(struct prestera_switch *sw)
struct prestera_switchdev *swdev;
int err;
- swdev = kzalloc(sizeof(*swdev), GFP_KERNEL);
+ swdev = kzalloc_obj(*swdev, GFP_KERNEL);
if (!swdev)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/pxa168_eth.c b/drivers/net/ethernet/marvell/pxa168_eth.c
index 68f8a1e36aa6..a2f6622e6ff5 100644
--- a/drivers/net/ethernet/marvell/pxa168_eth.c
+++ b/drivers/net/ethernet/marvell/pxa168_eth.c
@@ -1024,7 +1024,7 @@ static int rxq_init(struct net_device *dev)
int rx_desc_num = pep->rx_ring_size;
/* Allocate RX skb rings */
- pep->rx_skb = kcalloc(rx_desc_num, sizeof(*pep->rx_skb), GFP_KERNEL);
+ pep->rx_skb = kzalloc_objs(*pep->rx_skb, rx_desc_num, GFP_KERNEL);
if (!pep->rx_skb)
return -ENOMEM;
@@ -1083,7 +1083,7 @@ static int txq_init(struct net_device *dev)
int size = 0, i = 0;
int tx_desc_num = pep->tx_ring_size;
- pep->tx_skb = kcalloc(tx_desc_num, sizeof(*pep->tx_skb), GFP_KERNEL);
+ pep->tx_skb = kzalloc_objs(*pep->tx_skb, tx_desc_num, GFP_KERNEL);
if (!pep->tx_skb)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/skge.c b/drivers/net/ethernet/marvell/skge.c
index cf4e26d337bb..49942779418c 100644
--- a/drivers/net/ethernet/marvell/skge.c
+++ b/drivers/net/ethernet/marvell/skge.c
@@ -918,7 +918,7 @@ static int skge_ring_alloc(struct skge_ring *ring, void *vaddr, u32 base)
struct skge_element *e;
int i;
- ring->start = kcalloc(ring->count, sizeof(*e), GFP_KERNEL);
+ ring->start = kzalloc_objs(*e, ring->count, GFP_KERNEL);
if (!ring->start)
return -ENOMEM;
diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
index 3831f533b9db..27af9627394a 100644
--- a/drivers/net/ethernet/marvell/sky2.c
+++ b/drivers/net/ethernet/marvell/sky2.c
@@ -1601,8 +1601,8 @@ static int sky2_alloc_buffers(struct sky2_port *sky2)
if (!sky2->tx_le)
goto nomem;
- sky2->tx_ring = kcalloc(sky2->tx_ring_size, sizeof(struct tx_ring_info),
- GFP_KERNEL);
+ sky2->tx_ring = kzalloc_objs(struct tx_ring_info, sky2->tx_ring_size,
+ GFP_KERNEL);
if (!sky2->tx_ring)
goto nomem;
@@ -1611,8 +1611,8 @@ static int sky2_alloc_buffers(struct sky2_port *sky2)
if (!sky2->rx_le)
goto nomem;
- sky2->rx_ring = kcalloc(sky2->rx_pending, sizeof(struct rx_ring_info),
- GFP_KERNEL);
+ sky2->rx_ring = kzalloc_objs(struct rx_ring_info, sky2->rx_pending,
+ GFP_KERNEL);
if (!sky2->rx_ring)
goto nomem;
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 35fef28ee2f9..61065fb30acb 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -2647,8 +2647,7 @@ static int mtk_tx_alloc(struct mtk_eth *eth)
else
ring_size = soc->tx.dma_size;
- ring->buf = kcalloc(ring_size, sizeof(*ring->buf),
- GFP_KERNEL);
+ ring->buf = kzalloc_objs(*ring->buf, ring_size, GFP_KERNEL);
if (!ring->buf)
goto no_tx_mem;
diff --git a/drivers/net/ethernet/mediatek/mtk_ppe.c b/drivers/net/ethernet/mediatek/mtk_ppe.c
index ada852adc5f7..75f7728fc796 100644
--- a/drivers/net/ethernet/mediatek/mtk_ppe.c
+++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
@@ -705,7 +705,7 @@ mtk_foe_entry_commit_subflow(struct mtk_ppe *ppe, struct mtk_flow_entry *entry,
u32 ib1_mask = mtk_get_ib1_pkt_type_mask(ppe->eth) | MTK_FOE_IB1_UDP;
int type;
- flow_info = kzalloc(sizeof(*flow_info), GFP_ATOMIC);
+ flow_info = kzalloc_obj(*flow_info, GFP_ATOMIC);
if (!flow_info)
return;
diff --git a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
index e9bd32741983..bc53b08ff205 100644
--- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
+++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
@@ -469,7 +469,7 @@ mtk_flow_offload_replace(struct mtk_eth *eth, struct flow_cls_offload *f,
if (wed_index >= 0 && (err = mtk_wed_flow_add(wed_index)) < 0)
return err;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mediatek/mtk_wed.c b/drivers/net/ethernet/mediatek/mtk_wed.c
index 1ed1f88dd7f8..303e3945b72c 100644
--- a/drivers/net/ethernet/mediatek/mtk_wed.c
+++ b/drivers/net/ethernet/mediatek/mtk_wed.c
@@ -656,7 +656,7 @@ mtk_wed_tx_buffer_alloc(struct mtk_wed_device *dev)
}
n_pages = dev->tx_buf_ring.size / MTK_WED_BUF_PER_PAGE;
- page_list = kcalloc(n_pages, sizeof(*page_list), GFP_KERNEL);
+ page_list = kzalloc_objs(*page_list, n_pages, GFP_KERNEL);
if (!page_list)
return -ENOMEM;
@@ -780,7 +780,7 @@ mtk_wed_hwrro_buffer_alloc(struct mtk_wed_device *dev)
if (!dev->wlan.hw_rro)
return 0;
- page_list = kcalloc(n_pages, sizeof(*page_list), GFP_KERNEL);
+ page_list = kzalloc_objs(*page_list, n_pages, GFP_KERNEL);
if (!page_list)
return -ENOMEM;
@@ -2718,7 +2718,7 @@ mtk_wed_setup_tc_block(struct mtk_wed_hw *hw, struct net_device *dev,
return 0;
}
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
@@ -2822,7 +2822,7 @@ void mtk_wed_add_hw(struct device_node *np, struct mtk_eth *eth,
if (WARN_ON(hw_list[index]))
goto unlock;
- hw = kzalloc(sizeof(*hw), GFP_KERNEL);
+ hw = kzalloc_obj(*hw, GFP_KERNEL);
if (!hw)
goto unlock;
diff --git a/drivers/net/ethernet/mellanox/mlx4/alloc.c b/drivers/net/ethernet/mellanox/mlx4/alloc.c
index 07b061a97a6e..7e4d1998fd0d 100644
--- a/drivers/net/ethernet/mellanox/mlx4/alloc.c
+++ b/drivers/net/ethernet/mellanox/mlx4/alloc.c
@@ -223,7 +223,7 @@ struct mlx4_zone_entry {
struct mlx4_zone_allocator *mlx4_zone_allocator_create(enum mlx4_zone_alloc_flags flags)
{
- struct mlx4_zone_allocator *zones = kmalloc(sizeof(*zones), GFP_KERNEL);
+ struct mlx4_zone_allocator *zones = kmalloc_obj(*zones, GFP_KERNEL);
if (NULL == zones)
return NULL;
@@ -247,7 +247,7 @@ int mlx4_zone_add_one(struct mlx4_zone_allocator *zone_alloc,
{
u32 mask = mlx4_bitmap_masked_value(bitmap, (u32)-1);
struct mlx4_zone_entry *it;
- struct mlx4_zone_entry *zone = kmalloc(sizeof(*zone), GFP_KERNEL);
+ struct mlx4_zone_entry *zone = kmalloc_obj(*zone, GFP_KERNEL);
if (NULL == zone)
return -ENOMEM;
@@ -594,8 +594,8 @@ int mlx4_buf_alloc(struct mlx4_dev *dev, int size, int max_direct,
buf->nbufs = DIV_ROUND_UP(size, PAGE_SIZE);
buf->npages = buf->nbufs;
buf->page_shift = PAGE_SHIFT;
- buf->page_list = kcalloc(buf->nbufs, sizeof(*buf->page_list),
- GFP_KERNEL);
+ buf->page_list = kzalloc_objs(*buf->page_list, buf->nbufs,
+ GFP_KERNEL);
if (!buf->page_list)
return -ENOMEM;
@@ -642,7 +642,7 @@ static struct mlx4_db_pgdir *mlx4_alloc_db_pgdir(struct device *dma_device)
{
struct mlx4_db_pgdir *pgdir;
- pgdir = kzalloc(sizeof(*pgdir), GFP_KERNEL);
+ pgdir = kzalloc_obj(*pgdir, GFP_KERNEL);
if (!pgdir)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx4/cmd.c b/drivers/net/ethernet/mellanox/mlx4/cmd.c
index 7f20813456e2..150ede6eb18f 100644
--- a/drivers/net/ethernet/mellanox/mlx4/cmd.c
+++ b/drivers/net/ethernet/mellanox/mlx4/cmd.c
@@ -1674,7 +1674,7 @@ static int mlx4_master_process_vhcr(struct mlx4_dev *dev, int slave,
int err = 0;
/* Create sw representation of Virtual HCR */
- vhcr = kzalloc(sizeof(struct mlx4_vhcr), GFP_KERNEL);
+ vhcr = kzalloc_obj(struct mlx4_vhcr, GFP_KERNEL);
if (!vhcr)
return -ENOMEM;
@@ -1873,7 +1873,7 @@ static int mlx4_master_immediate_activate_vlan_qos(struct mlx4_priv *priv,
vp_admin->default_vlan, vp_admin->default_qos,
vp_admin->link_state);
- work = kzalloc(sizeof(*work), GFP_KERNEL);
+ work = kzalloc_obj(*work, GFP_KERNEL);
if (!work)
return -ENOMEM;
@@ -2368,23 +2368,20 @@ int mlx4_multi_func_init(struct mlx4_dev *dev)
struct mlx4_vf_admin_state *vf_admin;
priv->mfunc.master.slave_state =
- kcalloc(dev->num_slaves,
- sizeof(struct mlx4_slave_state),
- GFP_KERNEL);
+ kzalloc_objs(struct mlx4_slave_state, dev->num_slaves,
+ GFP_KERNEL);
if (!priv->mfunc.master.slave_state)
goto err_comm;
priv->mfunc.master.vf_admin =
- kcalloc(dev->num_slaves,
- sizeof(struct mlx4_vf_admin_state),
- GFP_KERNEL);
+ kzalloc_objs(struct mlx4_vf_admin_state,
+ dev->num_slaves, GFP_KERNEL);
if (!priv->mfunc.master.vf_admin)
goto err_comm_admin;
priv->mfunc.master.vf_oper =
- kcalloc(dev->num_slaves,
- sizeof(struct mlx4_vf_oper_state),
- GFP_KERNEL);
+ kzalloc_objs(struct mlx4_vf_oper_state, dev->num_slaves,
+ GFP_KERNEL);
if (!priv->mfunc.master.vf_oper)
goto err_comm_oper;
@@ -2408,8 +2405,8 @@ int mlx4_multi_func_init(struct mlx4_dev *dev)
struct mlx4_vport_state *oper_vport;
s_state->vlan_filter[port] =
- kzalloc(sizeof(struct mlx4_vlan_fltr),
- GFP_KERNEL);
+ kzalloc_obj(struct mlx4_vlan_fltr,
+ GFP_KERNEL);
if (!s_state->vlan_filter[port]) {
if (--port)
kfree(s_state->vlan_filter[port]);
@@ -2625,9 +2622,8 @@ int mlx4_cmd_use_events(struct mlx4_dev *dev)
int i;
int err = 0;
- priv->cmd.context = kmalloc_array(priv->cmd.max_cmds,
- sizeof(struct mlx4_cmd_context),
- GFP_KERNEL);
+ priv->cmd.context = kmalloc_objs(struct mlx4_cmd_context,
+ priv->cmd.max_cmds, GFP_KERNEL);
if (!priv->cmd.context)
return -ENOMEM;
@@ -2693,7 +2689,7 @@ struct mlx4_cmd_mailbox *mlx4_alloc_cmd_mailbox(struct mlx4_dev *dev)
{
struct mlx4_cmd_mailbox *mailbox;
- mailbox = kmalloc(sizeof(*mailbox), GFP_KERNEL);
+ mailbox = kmalloc_obj(*mailbox, GFP_KERNEL);
if (!mailbox)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
index ad6298456639..2e914a254a16 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
@@ -1158,7 +1158,7 @@ static int mlx4_en_set_ringparam(struct net_device *dev,
tx_size == priv->tx_ring[TX][0]->size)
return 0;
- tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
return -ENOMEM;
@@ -1452,8 +1452,8 @@ static int add_ip_rule(struct mlx4_en_priv *priv,
struct mlx4_spec_list *spec_l3;
struct ethtool_usrip4_spec *l3_mask = &cmd->fs.m_u.usr_ip4_spec;
- spec_l3 = kzalloc(sizeof(*spec_l3), GFP_KERNEL);
- spec_l2 = kzalloc(sizeof(*spec_l2), GFP_KERNEL);
+ spec_l3 = kzalloc_obj(*spec_l3, GFP_KERNEL);
+ spec_l2 = kzalloc_obj(*spec_l2, GFP_KERNEL);
if (!spec_l2 || !spec_l3) {
err = -ENOMEM;
goto free_spec;
@@ -1491,9 +1491,9 @@ static int add_tcp_udp_rule(struct mlx4_en_priv *priv,
struct mlx4_spec_list *spec_l4;
struct ethtool_tcpip4_spec *l4_mask = &cmd->fs.m_u.tcp_ip4_spec;
- spec_l2 = kzalloc(sizeof(*spec_l2), GFP_KERNEL);
- spec_l3 = kzalloc(sizeof(*spec_l3), GFP_KERNEL);
- spec_l4 = kzalloc(sizeof(*spec_l4), GFP_KERNEL);
+ spec_l2 = kzalloc_obj(*spec_l2, GFP_KERNEL);
+ spec_l3 = kzalloc_obj(*spec_l3, GFP_KERNEL);
+ spec_l4 = kzalloc_obj(*spec_l4, GFP_KERNEL);
if (!spec_l2 || !spec_l3 || !spec_l4) {
err = -ENOMEM;
goto free_spec;
@@ -1564,7 +1564,7 @@ static int mlx4_en_ethtool_to_net_trans_rule(struct net_device *dev,
switch (cmd->fs.flow_type & ~(FLOW_EXT | FLOW_MAC_EXT)) {
case ETHER_FLOW:
- spec_l2 = kzalloc(sizeof(*spec_l2), GFP_KERNEL);
+ spec_l2 = kzalloc_obj(*spec_l2, GFP_KERNEL);
if (!spec_l2)
return -ENOMEM;
@@ -1833,7 +1833,7 @@ static int mlx4_en_set_channels(struct net_device *dev,
if (!channel->tx_count || !channel->rx_count)
return -EINVAL;
- tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_main.c b/drivers/net/ethernet/mellanox/mlx4/en_main.c
index d8f4d00ad26b..1374a81945b2 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_main.c
@@ -271,7 +271,7 @@ static int mlx4_en_probe(struct auxiliary_device *adev,
printk_once(KERN_INFO "%s", mlx4_en_version);
- mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
+ mdev = kzalloc_obj(*mdev, GFP_KERNEL);
if (!mdev) {
err = -ENOMEM;
goto err_free_res;
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
index 81bf8908b897..ee1ea70cdd34 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
@@ -99,7 +99,7 @@ int mlx4_en_alloc_tx_queue_per_tc(struct net_device *dev, u8 tc)
int port_up = 0;
int err = 0;
- tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
return -ENOMEM;
@@ -295,7 +295,7 @@ mlx4_en_filter_alloc(struct mlx4_en_priv *priv, int rxq_index, __be32 src_ip,
{
struct mlx4_en_filter *filter;
- filter = kzalloc(sizeof(struct mlx4_en_filter), GFP_ATOMIC);
+ filter = kzalloc_obj(struct mlx4_en_filter, GFP_ATOMIC);
if (!filter)
return NULL;
@@ -827,7 +827,7 @@ static void mlx4_en_cache_mclist(struct net_device *dev)
mlx4_en_clear_list(dev);
netdev_for_each_mc_addr(ha, dev) {
- tmp = kzalloc(sizeof(struct mlx4_en_mc_list), GFP_ATOMIC);
+ tmp = kzalloc_obj(struct mlx4_en_mc_list, GFP_ATOMIC);
if (!tmp) {
mlx4_en_clear_list(dev);
return;
@@ -1209,7 +1209,7 @@ static void mlx4_en_do_uc_filter(struct mlx4_en_priv *priv,
}
if (!found) {
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
en_err(priv, "Failed adding MAC %pM on port:%d (out of memory)\n",
ha->addr, priv->port);
@@ -1317,7 +1317,7 @@ static int mlx4_en_set_rss_steer_rules(struct mlx4_en_priv *priv)
if (err)
goto tunnel_err;
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
err = -ENOMEM;
goto alloc_err;
@@ -2240,15 +2240,13 @@ static int mlx4_en_copy_priv(struct mlx4_en_priv *dst,
if (!dst->tx_ring_num[t])
continue;
- dst->tx_ring[t] = kcalloc(MAX_TX_RINGS,
- sizeof(struct mlx4_en_tx_ring *),
- GFP_KERNEL);
+ dst->tx_ring[t] = kzalloc_objs(struct mlx4_en_tx_ring *,
+ MAX_TX_RINGS, GFP_KERNEL);
if (!dst->tx_ring[t])
goto err_free_tx;
- dst->tx_cq[t] = kcalloc(MAX_TX_RINGS,
- sizeof(struct mlx4_en_cq *),
- GFP_KERNEL);
+ dst->tx_cq[t] = kzalloc_objs(struct mlx4_en_cq *, MAX_TX_RINGS,
+ GFP_KERNEL);
if (!dst->tx_cq[t]) {
kfree(dst->tx_ring[t]);
goto err_free_tx;
@@ -2754,7 +2752,7 @@ static int mlx4_xdp_set(struct net_device *dev, struct bpf_prog *prog)
if (!mlx4_en_check_xdp_mtu(dev, dev->mtu))
return -EOPNOTSUPP;
- tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
return -ENOMEM;
@@ -3217,16 +3215,14 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port,
if (!priv->tx_ring_num[t])
continue;
- priv->tx_ring[t] = kcalloc(MAX_TX_RINGS,
- sizeof(struct mlx4_en_tx_ring *),
- GFP_KERNEL);
+ priv->tx_ring[t] = kzalloc_objs(struct mlx4_en_tx_ring *,
+ MAX_TX_RINGS, GFP_KERNEL);
if (!priv->tx_ring[t]) {
err = -ENOMEM;
goto out;
}
- priv->tx_cq[t] = kcalloc(MAX_TX_RINGS,
- sizeof(struct mlx4_en_cq *),
- GFP_KERNEL);
+ priv->tx_cq[t] = kzalloc_objs(struct mlx4_en_cq *, MAX_TX_RINGS,
+ GFP_KERNEL);
if (!priv->tx_cq[t]) {
err = -ENOMEM;
goto out;
@@ -3525,7 +3521,7 @@ int mlx4_en_reset_config(struct net_device *dev,
return -EINVAL;
}
- tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_rx.c b/drivers/net/ethernet/mellanox/mlx4/en_rx.c
index 13666d50b90f..de45de8fa41b 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_rx.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_rx.c
@@ -1094,7 +1094,7 @@ static int mlx4_en_config_rss_qp(struct mlx4_en_priv *priv, int qpn,
struct mlx4_qp_context *context;
int err = 0;
- context = kzalloc(sizeof(*context), GFP_KERNEL);
+ context = kzalloc_obj(*context, GFP_KERNEL);
if (!context)
return -ENOMEM;
@@ -1208,7 +1208,7 @@ int mlx4_en_config_rss_steer(struct mlx4_en_priv *priv)
return 0;
}
- rss_map->indir_qp = kzalloc(sizeof(*rss_map->indir_qp), GFP_KERNEL);
+ rss_map->indir_qp = kzalloc_obj(*rss_map->indir_qp, GFP_KERNEL);
if (!rss_map->indir_qp) {
err = -ENOMEM;
goto rss_err;
diff --git a/drivers/net/ethernet/mellanox/mlx4/eq.c b/drivers/net/ethernet/mellanox/mlx4/eq.c
index 9572a45f6143..9891d33c7ecb 100644
--- a/drivers/net/ethernet/mellanox/mlx4/eq.c
+++ b/drivers/net/ethernet/mellanox/mlx4/eq.c
@@ -987,8 +987,7 @@ static int mlx4_create_eq(struct mlx4_dev *dev, int nent,
*/
npages = PAGE_ALIGN(eq->nent * dev->caps.eqe_size) / PAGE_SIZE;
- eq->page_list = kmalloc_array(npages, sizeof(*eq->page_list),
- GFP_KERNEL);
+ eq->page_list = kmalloc_objs(*eq->page_list, npages, GFP_KERNEL);
if (!eq->page_list)
goto err_out;
@@ -1158,8 +1157,9 @@ int mlx4_alloc_eq_table(struct mlx4_dev *dev)
{
struct mlx4_priv *priv = mlx4_priv(dev);
- priv->eq_table.eq = kcalloc(dev->caps.num_eqs - dev->caps.reserved_eqs,
- sizeof(*priv->eq_table.eq), GFP_KERNEL);
+ priv->eq_table.eq = kzalloc_objs(*priv->eq_table.eq,
+ dev->caps.num_eqs - dev->caps.reserved_eqs,
+ GFP_KERNEL);
if (!priv->eq_table.eq)
return -ENOMEM;
@@ -1177,9 +1177,8 @@ int mlx4_init_eq_table(struct mlx4_dev *dev)
int err;
int i;
- priv->eq_table.uar_map = kcalloc(mlx4_num_eq_uar(dev),
- sizeof(*priv->eq_table.uar_map),
- GFP_KERNEL);
+ priv->eq_table.uar_map = kzalloc_objs(*priv->eq_table.uar_map,
+ mlx4_num_eq_uar(dev), GFP_KERNEL);
if (!priv->eq_table.uar_map) {
err = -ENOMEM;
goto err_out_free;
diff --git a/drivers/net/ethernet/mellanox/mlx4/icm.c b/drivers/net/ethernet/mellanox/mlx4/icm.c
index 59b8b3c73582..c076d26a0b12 100644
--- a/drivers/net/ethernet/mellanox/mlx4/icm.c
+++ b/drivers/net/ethernet/mellanox/mlx4/icm.c
@@ -145,8 +145,8 @@ struct mlx4_icm *mlx4_alloc_icm(struct mlx4_dev *dev, int npages,
gfp_mask & ~(__GFP_HIGHMEM | __GFP_NOWARN),
dev->numa_node);
if (!icm) {
- icm = kmalloc(sizeof(*icm),
- gfp_mask & ~(__GFP_HIGHMEM | __GFP_NOWARN));
+ icm = kmalloc_obj(*icm,
+ gfp_mask & ~(__GFP_HIGHMEM | __GFP_NOWARN));
if (!icm)
return NULL;
}
@@ -163,9 +163,8 @@ struct mlx4_icm *mlx4_alloc_icm(struct mlx4_dev *dev, int npages,
__GFP_NOWARN),
dev->numa_node);
if (!chunk) {
- chunk = kzalloc(sizeof(*chunk),
- gfp_mask & ~(__GFP_HIGHMEM |
- __GFP_NOWARN));
+ chunk = kzalloc_obj(*chunk,
+ gfp_mask & ~(__GFP_HIGHMEM | __GFP_NOWARN));
if (!chunk)
goto fail;
}
@@ -427,7 +426,7 @@ int mlx4_init_icm_table(struct mlx4_dev *dev, struct mlx4_icm_table *table,
return -EINVAL;
num_icm = DIV_ROUND_UP(nobj, obj_per_chunk);
- table->icm = kvcalloc(num_icm, sizeof(*table->icm), GFP_KERNEL);
+ table->icm = kvzalloc_objs(*table->icm, num_icm, GFP_KERNEL);
if (!table->icm)
return -ENOMEM;
table->virt = virt;
diff --git a/drivers/net/ethernet/mellanox/mlx4/intf.c b/drivers/net/ethernet/mellanox/mlx4/intf.c
index a371b970ac1e..e1db44df72f6 100644
--- a/drivers/net/ethernet/mellanox/mlx4/intf.c
+++ b/drivers/net/ethernet/mellanox/mlx4/intf.c
@@ -78,8 +78,8 @@ int mlx4_adev_init(struct mlx4_dev *dev)
if (priv->adev_idx < 0)
return priv->adev_idx;
- priv->adev = kcalloc(ARRAY_SIZE(mlx4_adev_devices),
- sizeof(struct mlx4_adev *), GFP_KERNEL);
+ priv->adev = kzalloc_objs(struct mlx4_adev *,
+ ARRAY_SIZE(mlx4_adev_devices), GFP_KERNEL);
if (!priv->adev) {
ida_free(&mlx4_adev_ida, priv->adev_idx);
return -ENOMEM;
@@ -115,7 +115,7 @@ static struct mlx4_adev *add_adev(struct mlx4_dev *dev, int idx)
struct mlx4_adev *madev;
int ret;
- madev = kzalloc(sizeof(*madev), GFP_KERNEL);
+ madev = kzalloc_obj(*madev, GFP_KERNEL);
if (!madev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
index 4293f8e33f44..2e5032658fcd 100644
--- a/drivers/net/ethernet/mellanox/mlx4/main.c
+++ b/drivers/net/ethernet/mellanox/mlx4/main.c
@@ -867,8 +867,9 @@ static int mlx4_slave_special_qp_cap(struct mlx4_dev *dev)
struct mlx4_caps *caps = &dev->caps;
int i, err = 0;
- func_cap = kzalloc(sizeof(*func_cap), GFP_KERNEL);
- caps->spec_qps = kcalloc(caps->num_ports, sizeof(*caps->spec_qps), GFP_KERNEL);
+ func_cap = kzalloc_obj(*func_cap, GFP_KERNEL);
+ caps->spec_qps = kzalloc_objs(*caps->spec_qps, caps->num_ports,
+ GFP_KERNEL);
if (!func_cap || !caps->spec_qps) {
mlx4_err(dev, "Failed to allocate memory for special qps cap\n");
@@ -911,9 +912,9 @@ static int mlx4_slave_cap(struct mlx4_dev *dev)
struct mlx4_func_cap *func_cap;
struct mlx4_init_hca_param *hca_param;
- hca_param = kzalloc(sizeof(*hca_param), GFP_KERNEL);
- func_cap = kzalloc(sizeof(*func_cap), GFP_KERNEL);
- dev_cap = kzalloc(sizeof(*dev_cap), GFP_KERNEL);
+ hca_param = kzalloc_obj(*hca_param, GFP_KERNEL);
+ func_cap = kzalloc_obj(*func_cap, GFP_KERNEL);
+ dev_cap = kzalloc_obj(*dev_cap, GFP_KERNEL);
if (!hca_param || !func_cap || !dev_cap) {
mlx4_err(dev, "Failed to allocate memory for slave_cap\n");
err = -ENOMEM;
@@ -1548,7 +1549,7 @@ int mlx4_queue_bond_work(struct mlx4_dev *dev, int is_bonded, u8 v2p_p1,
{
struct mlx4_bond *bond;
- bond = kzalloc(sizeof(*bond), GFP_ATOMIC);
+ bond = kzalloc_obj(*bond, GFP_ATOMIC);
if (!bond)
return -ENOMEM;
@@ -2323,8 +2324,8 @@ static int mlx4_init_hca(struct mlx4_dev *dev)
int err;
if (!mlx4_is_slave(dev)) {
- dev_cap = kzalloc(sizeof(*dev_cap), GFP_KERNEL);
- init_hca = kzalloc(sizeof(*init_hca), GFP_KERNEL);
+ dev_cap = kzalloc_obj(*dev_cap, GFP_KERNEL);
+ init_hca = kzalloc_obj(*init_hca, GFP_KERNEL);
if (!dev_cap || !init_hca) {
err = -ENOMEM;
@@ -2965,7 +2966,7 @@ static void mlx4_enable_msi_x(struct mlx4_dev *dev)
if (msi_x > 1)
nreq = min_t(int, nreq, msi_x);
- entries = kcalloc(nreq, sizeof(*entries), GFP_KERNEL);
+ entries = kzalloc_objs(*entries, nreq, GFP_KERNEL);
if (!entries)
goto no_msi;
@@ -3173,8 +3174,7 @@ static int mlx4_init_steering(struct mlx4_dev *dev)
int num_entries = dev->caps.num_ports;
int i, j;
- priv->steer = kcalloc(num_entries, sizeof(struct mlx4_steer),
- GFP_KERNEL);
+ priv->steer = kzalloc_objs(struct mlx4_steer, num_entries, GFP_KERNEL);
if (!priv->steer)
return -ENOMEM;
@@ -3279,8 +3279,8 @@ static u64 mlx4_enable_sriov(struct mlx4_dev *dev, struct pci_dev *pdev,
MLX4_MAX_NUM_VF);
if (reset_flow) {
- dev->dev_vfs = kcalloc(total_vfs, sizeof(*dev->dev_vfs),
- GFP_KERNEL);
+ dev->dev_vfs = kzalloc_objs(*dev->dev_vfs, total_vfs,
+ GFP_KERNEL);
if (!dev->dev_vfs)
goto free_mem;
return dev_flags;
@@ -3295,7 +3295,7 @@ static u64 mlx4_enable_sriov(struct mlx4_dev *dev, struct pci_dev *pdev,
}
}
- dev->dev_vfs = kcalloc(total_vfs, sizeof(*dev->dev_vfs), GFP_KERNEL);
+ dev->dev_vfs = kzalloc_objs(*dev->dev_vfs, total_vfs, GFP_KERNEL);
if (NULL == dev->dev_vfs) {
mlx4_err(dev, "Failed to allocate memory for VFs\n");
goto disable_sriov;
@@ -3494,7 +3494,7 @@ static int mlx4_load_one(struct pci_dev *pdev, int pci_dev_data,
if (mlx4_is_master(dev)) {
/* when we hit the goto slave_start below, dev_cap already initialized */
if (!dev_cap) {
- dev_cap = kzalloc(sizeof(*dev_cap), GFP_KERNEL);
+ dev_cap = kzalloc_obj(*dev_cap, GFP_KERNEL);
if (!dev_cap) {
err = -ENOMEM;
@@ -4034,7 +4034,7 @@ static int mlx4_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
priv = devlink_priv(devlink);
dev = &priv->dev;
- dev->persist = kzalloc(sizeof(*dev->persist), GFP_KERNEL);
+ dev->persist = kzalloc_obj(*dev->persist, GFP_KERNEL);
if (!dev->persist) {
ret = -ENOMEM;
goto err_devlink_free;
diff --git a/drivers/net/ethernet/mellanox/mlx4/mcg.c b/drivers/net/ethernet/mellanox/mlx4/mcg.c
index 24d0c7c46878..7ab766a81452 100644
--- a/drivers/net/ethernet/mellanox/mlx4/mcg.c
+++ b/drivers/net/ethernet/mellanox/mlx4/mcg.c
@@ -162,7 +162,7 @@ static int new_steering_entry(struct mlx4_dev *dev, u8 port,
return -EINVAL;
s_steer = &mlx4_priv(dev)->steer[port - 1];
- new_entry = kzalloc(sizeof(*new_entry), GFP_KERNEL);
+ new_entry = kzalloc_obj(*new_entry, GFP_KERNEL);
if (!new_entry)
return -ENOMEM;
@@ -175,7 +175,7 @@ static int new_steering_entry(struct mlx4_dev *dev, u8 port,
*/
pqp = get_promisc_qp(dev, port, steer, qpn);
if (pqp) {
- dqp = kmalloc(sizeof(*dqp), GFP_KERNEL);
+ dqp = kmalloc_obj(*dqp, GFP_KERNEL);
if (!dqp) {
err = -ENOMEM;
goto out_alloc;
@@ -274,7 +274,7 @@ static int existing_steering_entry(struct mlx4_dev *dev, u8 port,
}
/* add the qp as a duplicate on this index */
- dqp = kmalloc(sizeof(*dqp), GFP_KERNEL);
+ dqp = kmalloc_obj(*dqp, GFP_KERNEL);
if (!dqp)
return -ENOMEM;
dqp->qpn = qpn;
@@ -443,7 +443,7 @@ static int add_promisc_qp(struct mlx4_dev *dev, u8 port,
goto out_mutex;
}
- pqp = kmalloc(sizeof(*pqp), GFP_KERNEL);
+ pqp = kmalloc_obj(*pqp, GFP_KERNEL);
if (!pqp) {
err = -ENOMEM;
goto out_mutex;
@@ -479,7 +479,7 @@ static int add_promisc_qp(struct mlx4_dev *dev, u8 port,
/* Entry already exists.
* Add to duplicates.
*/
- dqp = kmalloc(sizeof(*dqp), GFP_KERNEL);
+ dqp = kmalloc_obj(*dqp, GFP_KERNEL);
if (!dqp) {
err = -ENOMEM;
goto out_mailbox;
diff --git a/drivers/net/ethernet/mellanox/mlx4/pd.c b/drivers/net/ethernet/mellanox/mlx4/pd.c
index 6fc156a3918d..b29e067da2e2 100644
--- a/drivers/net/ethernet/mellanox/mlx4/pd.c
+++ b/drivers/net/ethernet/mellanox/mlx4/pd.c
@@ -189,7 +189,7 @@ int mlx4_bf_alloc(struct mlx4_dev *dev, struct mlx4_bf *bf, int node)
}
uar = kmalloc_node(sizeof(*uar), GFP_KERNEL, node);
if (!uar) {
- uar = kmalloc(sizeof(*uar), GFP_KERNEL);
+ uar = kmalloc_obj(*uar, GFP_KERNEL);
if (!uar) {
err = -ENOMEM;
goto out;
diff --git a/drivers/net/ethernet/mellanox/mlx4/profile.c b/drivers/net/ethernet/mellanox/mlx4/profile.c
index ba361c5fbda3..828c14074f81 100644
--- a/drivers/net/ethernet/mellanox/mlx4/profile.c
+++ b/drivers/net/ethernet/mellanox/mlx4/profile.c
@@ -85,7 +85,7 @@ u64 mlx4_make_profile(struct mlx4_dev *dev,
struct sysinfo si;
int i, j;
- profile = kcalloc(MLX4_RES_NUM, sizeof(*profile), GFP_KERNEL);
+ profile = kzalloc_objs(*profile, MLX4_RES_NUM, GFP_KERNEL);
if (!profile)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx4/qp.c b/drivers/net/ethernet/mellanox/mlx4/qp.c
index 913ed255990f..50002356697f 100644
--- a/drivers/net/ethernet/mellanox/mlx4/qp.c
+++ b/drivers/net/ethernet/mellanox/mlx4/qp.c
@@ -564,7 +564,7 @@ static int mlx4_create_zones(struct mlx4_dev *dev,
if (NULL == qp_table->zones)
return -ENOMEM;
- bitmap = kmalloc(sizeof(*bitmap), GFP_KERNEL);
+ bitmap = kmalloc_obj(*bitmap, GFP_KERNEL);
if (NULL == bitmap) {
err = -ENOMEM;
@@ -853,9 +853,9 @@ int mlx4_init_qp_table(struct mlx4_dev *dev)
/* In mfunc, calculate proxy and tunnel qp offsets for the PF here,
* since the PF does not call mlx4_slave_caps */
- dev->caps.spec_qps = kcalloc(dev->caps.num_ports,
- sizeof(*dev->caps.spec_qps),
- GFP_KERNEL);
+ dev->caps.spec_qps = kzalloc_objs(*dev->caps.spec_qps,
+ dev->caps.num_ports,
+ GFP_KERNEL);
if (!dev->caps.spec_qps) {
err = -ENOMEM;
goto err_mem;
diff --git a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
index 771b92019af1..dba5709ff96f 100644
--- a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
+++ b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
@@ -505,8 +505,7 @@ int mlx4_init_resource_tracker(struct mlx4_dev *dev)
int t;
priv->mfunc.master.res_tracker.slave_list =
- kcalloc(dev->num_slaves, sizeof(struct slave_list),
- GFP_KERNEL);
+ kzalloc_objs(struct slave_list, dev->num_slaves, GFP_KERNEL);
if (!priv->mfunc.master.res_tracker.slave_list)
return -ENOMEM;
@@ -525,21 +524,20 @@ int mlx4_init_resource_tracker(struct mlx4_dev *dev)
for (i = 0; i < MLX4_NUM_OF_RESOURCE_TYPE; i++) {
struct resource_allocator *res_alloc =
&priv->mfunc.master.res_tracker.res_alloc[i];
- res_alloc->quota = kmalloc_array(dev->persist->num_vfs + 1,
- sizeof(int),
- GFP_KERNEL);
- res_alloc->guaranteed = kmalloc_array(dev->persist->num_vfs + 1,
- sizeof(int),
- GFP_KERNEL);
+ res_alloc->quota = kmalloc_objs(int, dev->persist->num_vfs + 1,
+ GFP_KERNEL);
+ res_alloc->guaranteed = kmalloc_objs(int,
+ dev->persist->num_vfs + 1,
+ GFP_KERNEL);
if (i == RES_MAC || i == RES_VLAN)
res_alloc->allocated =
- kcalloc(MLX4_MAX_PORTS *
- (dev->persist->num_vfs + 1),
- sizeof(int), GFP_KERNEL);
+ kzalloc_objs(int,
+ MLX4_MAX_PORTS * (dev->persist->num_vfs + 1),
+ GFP_KERNEL);
else
res_alloc->allocated =
- kcalloc(dev->persist->num_vfs + 1,
- sizeof(int), GFP_KERNEL);
+ kzalloc_objs(int, dev->persist->num_vfs + 1,
+ GFP_KERNEL);
/* Reduce the sink counter */
if (i == RES_COUNTER)
res_alloc->res_free = dev->caps.max_counters - 1;
@@ -1051,7 +1049,7 @@ static struct res_common *alloc_qp_tr(int id)
{
struct res_qp *ret;
- ret = kzalloc(sizeof(*ret), GFP_KERNEL);
+ ret = kzalloc_obj(*ret, GFP_KERNEL);
if (!ret)
return NULL;
@@ -1069,7 +1067,7 @@ static struct res_common *alloc_mtt_tr(int id, int order)
{
struct res_mtt *ret;
- ret = kzalloc(sizeof(*ret), GFP_KERNEL);
+ ret = kzalloc_obj(*ret, GFP_KERNEL);
if (!ret)
return NULL;
@@ -1085,7 +1083,7 @@ static struct res_common *alloc_mpt_tr(int id, int key)
{
struct res_mpt *ret;
- ret = kzalloc(sizeof(*ret), GFP_KERNEL);
+ ret = kzalloc_obj(*ret, GFP_KERNEL);
if (!ret)
return NULL;
@@ -1100,7 +1098,7 @@ static struct res_common *alloc_eq_tr(int id)
{
struct res_eq *ret;
- ret = kzalloc(sizeof(*ret), GFP_KERNEL);
+ ret = kzalloc_obj(*ret, GFP_KERNEL);
if (!ret)
return NULL;
@@ -1114,7 +1112,7 @@ static struct res_common *alloc_cq_tr(int id)
{
struct res_cq *ret;
- ret = kzalloc(sizeof(*ret), GFP_KERNEL);
+ ret = kzalloc_obj(*ret, GFP_KERNEL);
if (!ret)
return NULL;
@@ -1129,7 +1127,7 @@ static struct res_common *alloc_srq_tr(int id)
{
struct res_srq *ret;
- ret = kzalloc(sizeof(*ret), GFP_KERNEL);
+ ret = kzalloc_obj(*ret, GFP_KERNEL);
if (!ret)
return NULL;
@@ -1144,7 +1142,7 @@ static struct res_common *alloc_counter_tr(int id, int port)
{
struct res_counter *ret;
- ret = kzalloc(sizeof(*ret), GFP_KERNEL);
+ ret = kzalloc_obj(*ret, GFP_KERNEL);
if (!ret)
return NULL;
@@ -1159,7 +1157,7 @@ static struct res_common *alloc_xrcdn_tr(int id)
{
struct res_xrcdn *ret;
- ret = kzalloc(sizeof(*ret), GFP_KERNEL);
+ ret = kzalloc_obj(*ret, GFP_KERNEL);
if (!ret)
return NULL;
@@ -1173,7 +1171,7 @@ static struct res_common *alloc_fs_rule_tr(u64 id, int qpn)
{
struct res_fs_rule *ret;
- ret = kzalloc(sizeof(*ret), GFP_KERNEL);
+ ret = kzalloc_obj(*ret, GFP_KERNEL);
if (!ret)
return NULL;
@@ -1240,8 +1238,8 @@ int mlx4_calc_vf_counters(struct mlx4_dev *dev, int slave, int port,
memset(data, 0, sizeof(*data));
- counters_arr = kmalloc_array(dev->caps.max_counters,
- sizeof(*counters_arr), GFP_KERNEL);
+ counters_arr = kmalloc_objs(*counters_arr, dev->caps.max_counters,
+ GFP_KERNEL);
if (!counters_arr)
return -ENOMEM;
@@ -1285,7 +1283,7 @@ static int add_res_range(struct mlx4_dev *dev, int slave, u64 base, int count,
struct mlx4_resource_tracker *tracker = &priv->mfunc.master.res_tracker;
struct rb_root *root = &tracker->res_tree[type];
- res_arr = kcalloc(count, sizeof(*res_arr), GFP_KERNEL);
+ res_arr = kzalloc_objs(*res_arr, count, GFP_KERNEL);
if (!res_arr)
return -ENOMEM;
@@ -2038,7 +2036,7 @@ static int mac_add_to_slave(struct mlx4_dev *dev, int slave, u64 mac, int port,
if (mlx4_grant_resource(dev, slave, RES_MAC, 1, port))
return -EINVAL;
- res = kzalloc(sizeof(*res), GFP_KERNEL);
+ res = kzalloc_obj(*res, GFP_KERNEL);
if (!res) {
mlx4_release_resource(dev, slave, RES_MAC, 1, port);
return -ENOMEM;
@@ -2145,7 +2143,7 @@ static int vlan_add_to_slave(struct mlx4_dev *dev, int slave, u16 vlan,
if (mlx4_grant_resource(dev, slave, RES_VLAN, 1, port))
return -EINVAL;
- res = kzalloc(sizeof(*res), GFP_KERNEL);
+ res = kzalloc_obj(*res, GFP_KERNEL);
if (!res) {
mlx4_release_resource(dev, slave, RES_VLAN, 1, port);
return -ENOMEM;
@@ -4032,7 +4030,7 @@ static int add_mcg_res(struct mlx4_dev *dev, int slave, struct res_qp *rqp,
struct res_gid *res;
int err;
- res = kzalloc(sizeof(*res), GFP_KERNEL);
+ res = kzalloc_obj(*res, GFP_KERNEL);
if (!res)
return -ENOMEM;
@@ -5187,8 +5185,8 @@ static void rem_slave_counters(struct mlx4_dev *dev, int slave)
mlx4_warn(dev, "rem_slave_counters: Could not move all counters - too busy for slave %d\n",
slave);
- counters_arr = kmalloc_array(dev->caps.max_counters,
- sizeof(*counters_arr), GFP_KERNEL);
+ counters_arr = kmalloc_objs(*counters_arr, dev->caps.max_counters,
+ GFP_KERNEL);
if (!counters_arr)
return;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/alloc.c b/drivers/net/ethernet/mellanox/mlx5/core/alloc.c
index 6aca004e88cd..058b7b2497ac 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/alloc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/alloc.c
@@ -79,8 +79,7 @@ int mlx5_frag_buf_alloc_node(struct mlx5_core_dev *dev, int size,
buf->size = size;
buf->npages = DIV_ROUND_UP(size, PAGE_SIZE);
buf->page_shift = PAGE_SHIFT;
- buf->frags = kcalloc(buf->npages, sizeof(struct mlx5_buf_list),
- GFP_KERNEL);
+ buf->frags = kzalloc_objs(struct mlx5_buf_list, buf->npages, GFP_KERNEL);
if (!buf->frags)
goto err_out;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
index 5b08e5ffe0e2..6c99c7f36163 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
@@ -123,7 +123,7 @@ cmd_alloc_ent(struct mlx5_cmd *cmd, struct mlx5_cmd_msg *in,
gfp_t alloc_flags = cbk ? GFP_ATOMIC : GFP_KERNEL;
struct mlx5_cmd_work_ent *ent;
- ent = kzalloc(sizeof(*ent), alloc_flags);
+ ent = kzalloc_obj(*ent, alloc_flags);
if (!ent)
return ERR_PTR(-ENOMEM);
@@ -1436,7 +1436,7 @@ static struct mlx5_cmd_mailbox *alloc_cmd_box(struct mlx5_core_dev *dev,
{
struct mlx5_cmd_mailbox *mailbox;
- mailbox = kmalloc(sizeof(*mailbox), flags);
+ mailbox = kmalloc_obj(*mailbox, flags);
if (!mailbox)
return ERR_PTR(-ENOMEM);
@@ -1470,7 +1470,7 @@ static struct mlx5_cmd_msg *mlx5_alloc_cmd_msg(struct mlx5_core_dev *dev,
int n;
int i;
- msg = kzalloc(sizeof(*msg), flags);
+ msg = kzalloc_obj(*msg, flags);
if (!msg)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/debugfs.c b/drivers/net/ethernet/mellanox/mlx5/core/debugfs.c
index 1301c56e20d6..f2aa14e07e92 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/debugfs.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/debugfs.c
@@ -201,7 +201,7 @@ static const struct file_operations slots_fops = {
static struct mlx5_cmd_stats *
mlx5_cmdif_alloc_stats(struct xarray *stats_xa, int opcode)
{
- struct mlx5_cmd_stats *stats = kzalloc(sizeof(*stats), GFP_KERNEL);
+ struct mlx5_cmd_stats *stats = kzalloc_obj(*stats, GFP_KERNEL);
int err;
if (!stats)
@@ -509,7 +509,7 @@ static int add_res_tree(struct mlx5_core_dev *dev, enum dbg_rsc_type type,
char resn[32];
int i;
- d = kzalloc(struct_size(d, fields, nfile), GFP_KERNEL);
+ d = kzalloc_flex(*d, fields, nfile, GFP_KERNEL);
if (!d)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/dev.c b/drivers/net/ethernet/mellanox/mlx5/core/dev.c
index 781e39b5aa1d..bed0b6bfba7e 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/dev.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/dev.c
@@ -277,8 +277,8 @@ int mlx5_adev_init(struct mlx5_core_dev *dev)
{
struct mlx5_priv *priv = &dev->priv;
- priv->adev = kcalloc(ARRAY_SIZE(mlx5_adev_devices),
- sizeof(struct mlx5_adev *), GFP_KERNEL);
+ priv->adev = kzalloc_objs(struct mlx5_adev *,
+ ARRAY_SIZE(mlx5_adev_devices), GFP_KERNEL);
if (!priv->adev)
return -ENOMEM;
@@ -310,7 +310,7 @@ static struct mlx5_adev *add_adev(struct mlx5_core_dev *dev, int idx)
struct mlx5_adev *madev;
int ret;
- madev = kzalloc(sizeof(*madev), GFP_KERNEL);
+ madev = kzalloc_obj(*madev, GFP_KERNEL);
if (!madev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c b/drivers/net/ethernet/mellanox/mlx5/core/devlink.c
index ea77fbd98396..18cfb7655805 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/devlink.c
@@ -294,7 +294,7 @@ static int mlx5_devlink_trap_init(struct devlink *devlink, const struct devlink_
struct mlx5_core_dev *dev = devlink_priv(devlink);
struct mlx5_devlink_trap *dl_trap;
- dl_trap = kzalloc(sizeof(*dl_trap), GFP_KERNEL);
+ dl_trap = kzalloc_obj(*dl_trap, GFP_KERNEL);
if (!dl_trap)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c b/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
index 6b4ec457ce22..d2e2c9f0f340 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c
@@ -412,7 +412,7 @@ static struct tracer_string_format *mlx5_tracer_message_insert(struct mlx5_fw_tr
&tracer->hash[mlx5_tracer_message_hash(tracer_event->string_event.tmsn)];
struct tracer_string_format *cur_string;
- cur_string = kzalloc(sizeof(*cur_string), GFP_KERNEL);
+ cur_string = kzalloc_obj(*cur_string, GFP_KERNEL);
if (!cur_string)
return NULL;
@@ -1023,7 +1023,7 @@ struct mlx5_fw_tracer *mlx5_fw_tracer_create(struct mlx5_core_dev *dev)
return NULL;
}
- tracer = kvzalloc(sizeof(*tracer), GFP_KERNEL);
+ tracer = kvzalloc_obj(*tracer, GFP_KERNEL);
if (!tracer)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/diag/rsc_dump.c b/drivers/net/ethernet/mellanox/mlx5/core/diag/rsc_dump.c
index c5b560a8b026..9bcc2d8edc76 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/diag/rsc_dump.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/diag/rsc_dump.c
@@ -137,7 +137,7 @@ struct mlx5_rsc_dump_cmd *mlx5_rsc_dump_cmd_create(struct mlx5_core_dev *dev,
if (!sgmt_type && key->rsc != MLX5_SGMT_TYPE_MENU)
return ERR_PTR(-EOPNOTSUPP);
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
mlx5_core_err(dev, "Resource dump: Failed to allocate command\n");
return ERR_PTR(-ENOMEM);
@@ -255,7 +255,7 @@ struct mlx5_rsc_dump *mlx5_rsc_dump_create(struct mlx5_core_dev *dev)
mlx5_core_dbg(dev, "Resource dump: capability not present\n");
return NULL;
}
- rsc_dump = kzalloc(sizeof(*rsc_dump), GFP_KERNEL);
+ rsc_dump = kzalloc_obj(*rsc_dump, GFP_KERNEL);
if (!rsc_dump)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/dpll.c b/drivers/net/ethernet/mellanox/mlx5/core/dpll.c
index 3981dd81d4c1..abb678fe3021 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/dpll.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/dpll.c
@@ -433,7 +433,7 @@ static int mlx5_dpll_probe(struct auxiliary_device *adev,
if (err)
return err;
- mdpll = kzalloc(sizeof(*mdpll), GFP_KERNEL);
+ mdpll = kzalloc_obj(*mdpll, GFP_KERNEL);
if (!mdpll)
return -ENOMEM;
mdpll->mdev = mdev;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c b/drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c
index 671adbad0a40..8b418e8538ca 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c
@@ -90,7 +90,7 @@ mlx5e_fs_tt_redirect_udp_add_rule(struct mlx5e_flow_steering *fs,
if (type == FS_UDP_NUM_TYPES)
return ERR_PTR(-EINVAL);
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return ERR_PTR(-ENOMEM);
@@ -150,7 +150,7 @@ static int fs_udp_create_groups(struct mlx5e_flow_table *ft, enum fs_udp_type ty
int err;
u8 *mc;
- ft->g = kcalloc(MLX5E_FS_UDP_NUM_GROUPS, sizeof(*ft->g), GFP_KERNEL);
+ ft->g = kzalloc_objs(*ft->g, MLX5E_FS_UDP_NUM_GROUPS, GFP_KERNEL);
in = kvzalloc(inlen, GFP_KERNEL);
if (!in || !ft->g) {
kfree(ft->g);
@@ -325,7 +325,7 @@ int mlx5e_fs_tt_redirect_udp_create(struct mlx5e_flow_steering *fs)
return 0;
}
- udp = kzalloc(sizeof(*udp), GFP_KERNEL);
+ udp = kzalloc_obj(*udp, GFP_KERNEL);
if (!udp)
return -ENOMEM;
mlx5e_fs_set_udp(fs, udp);
@@ -372,7 +372,7 @@ mlx5e_fs_tt_redirect_any_add_rule(struct mlx5e_flow_steering *fs,
struct mlx5_flow_spec *spec;
int err;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return ERR_PTR(-ENOMEM);
@@ -432,7 +432,7 @@ static int fs_any_create_groups(struct mlx5e_flow_table *ft)
int err;
u8 *mc;
- ft->g = kcalloc(MLX5E_FS_UDP_NUM_GROUPS, sizeof(*ft->g), GFP_KERNEL);
+ ft->g = kzalloc_objs(*ft->g, MLX5E_FS_UDP_NUM_GROUPS, GFP_KERNEL);
in = kvzalloc(inlen, GFP_KERNEL);
if (!in || !ft->g) {
kfree(ft->g);
@@ -589,7 +589,7 @@ int mlx5e_fs_tt_redirect_any_create(struct mlx5e_flow_steering *fs)
return 0;
}
- fs_any = kzalloc(sizeof(*fs_any), GFP_KERNEL);
+ fs_any = kzalloc_obj(*fs_any, GFP_KERNEL);
if (!fs_any)
return -ENOMEM;
mlx5e_fs_set_any(fs, fs_any);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/htb.c b/drivers/net/ethernet/mellanox/mlx5/core/en/htb.c
index 09d441ecb9f6..c63b8022fae6 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/htb.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/htb.c
@@ -72,7 +72,7 @@ mlx5e_htb_node_create_leaf(struct mlx5e_htb *htb, u16 classid, u16 qid,
{
struct mlx5e_qos_node *node;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return ERR_PTR(-ENOMEM);
@@ -93,7 +93,7 @@ static struct mlx5e_qos_node *mlx5e_htb_node_create_root(struct mlx5e_htb *htb)
{
struct mlx5e_qos_node *node;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return ERR_PTR(-ENOMEM);
@@ -694,7 +694,7 @@ mlx5e_htb_node_modify(struct mlx5e_htb *htb, u16 classid, u64 rate, u64 ceil,
struct mlx5e_htb *mlx5e_htb_alloc(void)
{
- return kvzalloc(sizeof(struct mlx5e_htb), GFP_KERNEL);
+ return kvzalloc_obj(struct mlx5e_htb, GFP_KERNEL);
}
void mlx5e_htb_free(struct mlx5e_htb *htb)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/mapping.c b/drivers/net/ethernet/mellanox/mlx5/core/en/mapping.c
index 1de18c7e96ec..b1a84a01a81c 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/mapping.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/mapping.c
@@ -198,7 +198,7 @@ mapping_create(size_t data_size, u32 max_id, bool delayed_removal)
{
struct mapping_ctx *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c b/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
index 74660e7fe674..5f4a7ca15518 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
@@ -883,7 +883,7 @@ int mlx5e_ptp_open(struct mlx5e_priv *priv, struct mlx5e_params *params,
c = kvzalloc_node(sizeof(*c), GFP_KERNEL, dev_to_node(mlx5_core_dma_dev(mdev)));
- cparams = kvzalloc(sizeof(*cparams), GFP_KERNEL);
+ cparams = kvzalloc_obj(*cparams, GFP_KERNEL);
if (!c || !cparams) {
err = -ENOMEM;
goto err_free;
@@ -988,7 +988,7 @@ int mlx5e_ptp_alloc_rx_fs(struct mlx5e_flow_steering *fs,
if (!mlx5e_profile_feature_cap(profile, PTP_RX))
return 0;
- ptp_fs = kzalloc(sizeof(*ptp_fs), GFP_KERNEL);
+ ptp_fs = kzalloc_obj(*ptp_fs, GFP_KERNEL);
if (!ptp_fs)
return -ENOMEM;
mlx5e_fs_set_ptp(fs, ptp_fs);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/qos.c b/drivers/net/ethernet/mellanox/mlx5/core/en/qos.c
index 4e461cb03b83..cebcff010eac 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/qos.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/qos.c
@@ -87,8 +87,9 @@ int mlx5e_open_qos_sq(struct mlx5e_priv *priv, struct mlx5e_channels *chs,
if (!priv->htb_qos_sq_stats) {
struct mlx5e_sq_stats **stats_list;
- stats_list = kvcalloc(mlx5e_qos_max_leaf_nodes(priv->mdev),
- sizeof(*stats_list), GFP_KERNEL);
+ stats_list = kvzalloc_objs(*stats_list,
+ mlx5e_qos_max_leaf_nodes(priv->mdev),
+ GFP_KERNEL);
if (!stats_list)
return -ENOMEM;
@@ -98,7 +99,7 @@ int mlx5e_open_qos_sq(struct mlx5e_priv *priv, struct mlx5e_channels *chs,
if (!priv->htb_qos_sq_stats[node_qid]) {
struct mlx5e_sq_stats *stats;
- stats = kzalloc(sizeof(*stats), GFP_KERNEL);
+ stats = kzalloc_obj(*stats, GFP_KERNEL);
if (!stats)
return -ENOMEM;
@@ -114,7 +115,7 @@ int mlx5e_open_qos_sq(struct mlx5e_priv *priv, struct mlx5e_channels *chs,
c = chs->c[ix];
qos_sqs = mlx5e_state_dereference(priv, c->qos_sqs);
- sq = kzalloc(sizeof(*sq), GFP_KERNEL);
+ sq = kzalloc_obj(*sq, GFP_KERNEL);
if (!sq)
return -ENOMEM;
@@ -276,7 +277,8 @@ int mlx5e_qos_alloc_queues(struct mlx5e_priv *priv, struct mlx5e_channels *chs)
for (i = 0; i < chs->num; i++) {
struct mlx5e_txqsq **sqs;
- sqs = kvcalloc(qos_sqs_size, sizeof(struct mlx5e_txqsq *), GFP_KERNEL);
+ sqs = kvzalloc_objs(struct mlx5e_txqsq *, qos_sqs_size,
+ GFP_KERNEL);
if (!sqs)
goto err_free;
@@ -460,7 +462,7 @@ struct mlx5e_mqprio_rl {
struct mlx5e_mqprio_rl *mlx5e_mqprio_rl_alloc(void)
{
- return kvzalloc(sizeof(struct mlx5e_mqprio_rl), GFP_KERNEL);
+ return kvzalloc_obj(struct mlx5e_mqprio_rl, GFP_KERNEL);
}
void mlx5e_mqprio_rl_free(struct mlx5e_mqprio_rl *rl)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bond.c b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bond.c
index 016a61c52c45..8038deae35a7 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bond.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bond.c
@@ -92,7 +92,7 @@ int mlx5e_rep_bond_enslave(struct mlx5_eswitch *esw, struct net_device *netdev,
mdata = mlx5e_lookup_rep_bond_metadata(&rpriv->uplink_priv, lag_dev);
if (!mdata) {
/* First netdev becomes slave, no metadata presents the lag_dev. Create one */
- mdata = kzalloc(sizeof(*mdata), GFP_KERNEL);
+ mdata = kzalloc_obj(*mdata, GFP_KERNEL);
if (!mdata)
return -ENOMEM;
@@ -110,7 +110,7 @@ int mlx5e_rep_bond_enslave(struct mlx5_eswitch *esw, struct net_device *netdev,
mdata->metadata_reg_c_0);
}
- s_entry = kzalloc(sizeof(*s_entry), GFP_KERNEL);
+ s_entry = kzalloc_obj(*s_entry, GFP_KERNEL);
if (!s_entry) {
err = -ENOMEM;
goto entry_alloc_err;
@@ -315,7 +315,7 @@ int mlx5e_rep_bond_init(struct mlx5e_rep_priv *rpriv)
if (!mlx5_esw_acl_egress_fwd2vport_supported(priv->mdev->priv.eswitch))
goto out;
- uplink_priv->bond = kvzalloc(sizeof(*uplink_priv->bond), GFP_KERNEL);
+ uplink_priv->bond = kvzalloc_obj(*uplink_priv->bond, GFP_KERNEL);
if (!uplink_priv->bond) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c
index 87a2ad69526d..baac38bece14 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c
@@ -394,7 +394,7 @@ mlx5_esw_bridge_init_switchdev_fdb_work(struct net_device *dev, bool add,
struct mlx5_bridge_switchdev_fdb_work *work;
u8 *addr;
- work = kzalloc(sizeof(*work), GFP_ATOMIC);
+ work = kzalloc_obj(*work, GFP_ATOMIC);
if (!work)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/neigh.c b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/neigh.c
index 2e9bee4e5209..cbfb0cc32a3b 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/neigh.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/neigh.c
@@ -173,7 +173,7 @@ static struct neigh_update_work *mlx5e_alloc_neigh_update_work(struct mlx5e_priv
struct mlx5e_neigh_hash_entry *nhe;
struct mlx5e_neigh m_neigh = {};
- update_work = kzalloc(sizeof(*update_work), GFP_ATOMIC);
+ update_work = kzalloc_obj(*update_work, GFP_ATOMIC);
if (WARN_ON(!update_work))
return NULL;
@@ -376,7 +376,7 @@ int mlx5e_rep_neigh_entry_create(struct mlx5e_priv *priv,
{
int err;
- *nhe = kzalloc(sizeof(**nhe), GFP_KERNEL);
+ *nhe = kzalloc_obj(**nhe, GFP_KERNEL);
if (!*nhe)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c
index a55452c69f06..2dc5e139c99c 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c
@@ -503,7 +503,7 @@ mlx5e_rep_indr_setup_block(struct net_device *netdev, struct Qdisc *sch,
if (indr_priv)
return -EEXIST;
- indr_priv = kmalloc(sizeof(*indr_priv), GFP_KERNEL);
+ indr_priv = kmalloc_obj(*indr_priv, GFP_KERNEL);
if (!indr_priv)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/rss.c b/drivers/net/ethernet/mellanox/mlx5/core/en/rss.c
index 88b0e1050d1a..c9d141b8650b 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/rss.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rss.c
@@ -93,7 +93,7 @@ void mlx5e_rss_params_indir_modify_actual_size(struct mlx5e_rss *rss, u32 num_ch
int mlx5e_rss_params_indir_init(struct mlx5e_rss_params_indir *indir,
u32 actual_table_size, u32 max_table_size)
{
- indir->table = kvmalloc_array(max_table_size, sizeof(*indir->table), GFP_KERNEL);
+ indir->table = kvmalloc_objs(*indir->table, max_table_size, GFP_KERNEL);
if (!indir->table)
return -ENOMEM;
@@ -134,7 +134,7 @@ static struct mlx5e_rss *mlx5e_rss_init_copy(const struct mlx5e_rss *from)
struct mlx5e_rss *rss;
int err;
- rss = kvzalloc(sizeof(*rss), GFP_KERNEL);
+ rss = kvzalloc_obj(*rss, GFP_KERNEL);
if (!rss)
return ERR_PTR(-ENOMEM);
@@ -216,7 +216,7 @@ mlx5e_rss_create_tir(struct mlx5e_rss *rss, enum mlx5_traffic_types tt,
if (*tir_p)
return -EINVAL;
- tir = kvzalloc(sizeof(*tir), GFP_KERNEL);
+ tir = kvzalloc_obj(*tir, GFP_KERNEL);
if (!tir)
return -ENOMEM;
@@ -372,7 +372,7 @@ mlx5e_rss_init(struct mlx5_core_dev *mdev,
struct mlx5e_rss *rss;
int err;
- rss = kvzalloc(sizeof(*rss), GFP_KERNEL);
+ rss = kvzalloc_obj(*rss, GFP_KERNEL);
if (!rss)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.c b/drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.c
index 55c117b7d8c4..a9f55ffb894e 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.c
@@ -325,7 +325,7 @@ static struct mlx5e_rx_res *mlx5e_rx_res_alloc(struct mlx5_core_dev *mdev, unsig
{
struct mlx5e_rx_res *rx_res;
- rx_res = kvzalloc(sizeof(*rx_res), GFP_KERNEL);
+ rx_res = kvzalloc_obj(*rx_res, GFP_KERNEL);
if (!rx_res)
return NULL;
@@ -359,7 +359,7 @@ static int mlx5e_rx_res_channels_init(struct mlx5e_rx_res *res)
if (!builder)
return -ENOMEM;
- res->channels = kvcalloc(res->max_nch, sizeof(*res->channels), GFP_KERNEL);
+ res->channels = kvzalloc_objs(*res->channels, res->max_nch, GFP_KERNEL);
if (!res->channels) {
err = -ENOMEM;
goto out;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/selq.c b/drivers/net/ethernet/mellanox/mlx5/core/en/selq.c
index f66bbc846464..4598d922385a 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/selq.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/selq.c
@@ -30,11 +30,11 @@ int mlx5e_selq_init(struct mlx5e_selq *selq, struct mutex *state_lock)
selq->state_lock = state_lock;
- selq->standby = kvzalloc(sizeof(*selq->standby), GFP_KERNEL);
+ selq->standby = kvzalloc_obj(*selq->standby, GFP_KERNEL);
if (!selq->standby)
return -ENOMEM;
- init_params = kvzalloc(sizeof(*selq->active), GFP_KERNEL);
+ init_params = kvzalloc_obj(*selq->active, GFP_KERNEL);
if (!init_params) {
kvfree(selq->standby);
selq->standby = NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/act_stats.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/act_stats.c
index 7aa926e542d3..45ff384b66d4 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/act_stats.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/act_stats.c
@@ -36,7 +36,7 @@ mlx5e_tc_act_stats_create(void)
struct mlx5e_tc_act_stats_handle *handle;
int err;
- handle = kvzalloc(sizeof(*handle), GFP_KERNEL);
+ handle = kvzalloc_obj(*handle, GFP_KERNEL);
if (!handle)
return ERR_PTR(-ENOMEM);
@@ -67,7 +67,7 @@ mlx5e_tc_act_stats_add(struct mlx5e_tc_act_stats_handle *handle,
u64 lastused;
int err = 0;
- act_stats = kvzalloc(sizeof(*act_stats), GFP_KERNEL);
+ act_stats = kvzalloc_obj(*act_stats, GFP_KERNEL);
if (!act_stats)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_dmfs.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_dmfs.c
index 64a82aafaaca..e983da2574ec 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_dmfs.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_dmfs.c
@@ -34,7 +34,7 @@ mlx5_ct_fs_dmfs_ct_rule_add(struct mlx5_ct_fs *fs, struct mlx5_flow_spec *spec,
struct mlx5_ct_fs_dmfs_rule *dmfs_rule;
int err;
- dmfs_rule = kzalloc(sizeof(*dmfs_rule), GFP_KERNEL);
+ dmfs_rule = kzalloc_obj(*dmfs_rule, GFP_KERNEL);
if (!dmfs_rule)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_hmfs.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_hmfs.c
index d3db6146fcad..59aa6ee5be05 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_hmfs.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_hmfs.c
@@ -203,7 +203,7 @@ mlx5_ct_fs_hmfs_ct_rule_add(struct mlx5_ct_fs *fs, struct mlx5_flow_spec *spec,
if (!mlx5e_tc_ct_is_valid_flow_rule(fs->netdev, flow_rule))
return ERR_PTR(-EOPNOTSUPP);
- hmfs_rule = kzalloc(sizeof(*hmfs_rule), GFP_KERNEL);
+ hmfs_rule = kzalloc_obj(*hmfs_rule, GFP_KERNEL);
if (!hmfs_rule)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_smfs.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_smfs.c
index 4d6924b644c9..897d8f7ed7f2 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_smfs.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_smfs.c
@@ -92,7 +92,7 @@ mlx5_ct_fs_smfs_matcher_create(struct mlx5_ct_fs *fs, struct mlx5dr_table *tbl,
struct mlx5dr_matcher *dr_matcher;
struct mlx5_flow_spec *spec;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return ERR_PTR(-ENOMEM);
@@ -234,7 +234,7 @@ mlx5_ct_fs_smfs_ct_rule_add(struct mlx5_ct_fs *fs, struct mlx5_flow_spec *spec,
if (!mlx5e_tc_ct_is_valid_flow_rule(fs->netdev, flow_rule))
return ERR_PTR(-EOPNOTSUPP);
- smfs_rule = kzalloc(sizeof(*smfs_rule), GFP_KERNEL);
+ smfs_rule = kzalloc_obj(*smfs_rule, GFP_KERNEL);
if (!smfs_rule)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/int_port.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/int_port.c
index 991f47050643..11754c8ae986 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/int_port.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/int_port.c
@@ -69,7 +69,7 @@ mlx5e_int_port_create_rx_rule(struct mlx5_eswitch *esw,
struct mlx5_flow_spec *spec;
void *misc;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return ERR_PTR(-ENOMEM);
@@ -167,7 +167,7 @@ mlx5e_int_port_add(struct mlx5e_tc_int_port_priv *priv,
return ERR_PTR(-ENOSPC);
}
- int_port = kzalloc(sizeof(*int_port), GFP_KERNEL);
+ int_port = kzalloc_obj(*int_port, GFP_KERNEL);
if (!int_port)
return ERR_PTR(-ENOMEM);
@@ -313,7 +313,7 @@ mlx5e_tc_int_port_init(struct mlx5e_priv *priv)
if (!mlx5e_tc_int_port_supported(esw))
return NULL;
- int_port_priv = kzalloc(sizeof(*int_port_priv), GFP_KERNEL);
+ int_port_priv = kzalloc_obj(*int_port_priv, GFP_KERNEL);
if (!int_port_priv)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c
index d5d9146efca6..80ddbe373f97 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c
@@ -247,7 +247,7 @@ __mlx5e_flow_meter_alloc(struct mlx5e_flow_meters *flow_meters, bool alloc_aso)
int err, pos, total;
u32 id;
- meter = kzalloc(sizeof(*meter), GFP_KERNEL);
+ meter = kzalloc_obj(*meter, GFP_KERNEL);
if (!meter)
return ERR_PTR(-ENOMEM);
@@ -526,7 +526,7 @@ mlx5e_flow_meters_init(struct mlx5e_priv *priv,
return ERR_PTR(-EOPNOTSUPP);
}
- flow_meters = kzalloc(sizeof(*flow_meters), GFP_KERNEL);
+ flow_meters = kzalloc_obj(*flow_meters, GFP_KERNEL);
if (!flow_meters)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_act.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_act.c
index b500cc2c9689..62184531b3e6 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_act.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_act.c
@@ -42,7 +42,7 @@ mlx5e_tc_post_act_init(struct mlx5e_priv *priv, struct mlx5_fs_chains *chains,
goto err_check;
}
- post_act = kzalloc(sizeof(*post_act), GFP_KERNEL);
+ post_act = kzalloc_obj(*post_act, GFP_KERNEL);
if (!post_act) {
err = -ENOMEM;
goto err_check;
@@ -86,7 +86,7 @@ mlx5e_tc_post_act_offload(struct mlx5e_post_act *post_act,
if (IS_ERR(post_act))
return PTR_ERR(post_act);
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -117,7 +117,7 @@ mlx5e_tc_post_act_add(struct mlx5e_post_act *post_act, struct mlx5_flow_attr *po
if (IS_ERR(post_act))
return ERR_CAST(post_act);
- handle = kzalloc(sizeof(*handle), GFP_KERNEL);
+ handle = kzalloc_obj(*handle, GFP_KERNEL);
if (!handle)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_meter.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_meter.c
index 50b60fd00946..e5467a94e9dc 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_meter.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_meter.c
@@ -156,7 +156,7 @@ mlx5e_post_meter_rate_rules_create(struct mlx5e_priv *priv,
struct mlx5_flow_spec *spec;
int err;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -402,7 +402,7 @@ mlx5e_post_meter_init(struct mlx5e_priv *priv,
struct mlx5e_post_meter_priv *post_meter;
int err;
- post_meter = kzalloc(sizeof(*post_meter), GFP_KERNEL);
+ post_meter = kzalloc_obj(*post_meter, GFP_KERNEL);
if (!post_meter)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/sample.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/sample.c
index 5db239cae814..938961520f6c 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/sample.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/sample.c
@@ -183,7 +183,7 @@ sampler_get(struct mlx5e_tc_psample *tc_psample, u32 sample_ratio, u32 default_t
sample_ratio, default_table_id))
goto add_ref;
- sampler = kzalloc(sizeof(*sampler), GFP_KERNEL);
+ sampler = kzalloc_obj(*sampler, GFP_KERNEL);
if (!sampler) {
err = -ENOMEM;
goto err_alloc;
@@ -273,7 +273,7 @@ sample_restore_get(struct mlx5e_tc_psample *tc_psample, u32 obj_id,
if (restore->obj_id == obj_id)
goto add_ref;
- restore = kzalloc(sizeof(*restore), GFP_KERNEL);
+ restore = kzalloc_obj(*restore, GFP_KERNEL);
if (!restore) {
err = -ENOMEM;
goto err_alloc;
@@ -485,7 +485,7 @@ mlx5e_tc_sample_offload(struct mlx5e_tc_psample *tc_psample,
if (IS_ERR_OR_NULL(tc_psample))
return ERR_PTR(-EOPNOTSUPP);
- sample_flow = kzalloc(sizeof(*sample_flow), GFP_KERNEL);
+ sample_flow = kzalloc_obj(*sample_flow, GFP_KERNEL);
if (!sample_flow)
return ERR_PTR(-ENOMEM);
sample_attr = &attr->sample_attr;
@@ -619,7 +619,7 @@ mlx5e_tc_sample_init(struct mlx5_eswitch *esw, struct mlx5e_post_act *post_act)
struct mlx5e_tc_psample *tc_psample;
int err;
- tc_psample = kzalloc(sizeof(*tc_psample), GFP_KERNEL);
+ tc_psample = kzalloc_obj(*tc_psample, GFP_KERNEL);
if (!tc_psample)
return ERR_PTR(-ENOMEM);
if (IS_ERR_OR_NULL(post_act)) {
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c
index fc0e57403d25..2d3654faabfa 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c
@@ -812,7 +812,7 @@ mlx5_tc_ct_entry_add_rule(struct mlx5_tc_ct_priv *ct_priv,
zone_rule->nat = nat;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -887,7 +887,7 @@ mlx5_tc_ct_entry_update_rule(struct mlx5_tc_ct_priv *ct_priv,
struct mlx5_flow_spec *spec;
int err;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -1021,7 +1021,7 @@ mlx5_tc_ct_counter_create(struct mlx5_tc_ct_priv *ct_priv)
struct mlx5_ct_counter *counter;
int ret;
- counter = kzalloc(sizeof(*counter), GFP_KERNEL);
+ counter = kzalloc_obj(*counter, GFP_KERNEL);
if (!counter)
return ERR_PTR(-ENOMEM);
@@ -1219,7 +1219,7 @@ mlx5_tc_ct_block_flow_offload_add(struct mlx5_ct_ft *ft,
}
spin_unlock_bh(&ct_priv->ht_lock);
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -1620,7 +1620,7 @@ static int tc_ct_pre_ct_add_rules(struct mlx5_ct_ft *ct_ft,
u16 zone;
int err;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -1856,7 +1856,7 @@ mlx5_tc_ct_add_ft_cb(struct mlx5_tc_ct_priv *ct_priv, u16 zone,
return ft;
}
- ft = kzalloc(sizeof(*ft), GFP_KERNEL);
+ ft = kzalloc_obj(*ft, GFP_KERNEL);
if (!ft)
return ERR_PTR(-ENOMEM);
@@ -2298,7 +2298,7 @@ mlx5_tc_ct_init(struct mlx5e_priv *priv, struct mlx5_fs_chains *chains,
if (err)
goto err_support;
- ct_priv = kzalloc(sizeof(*ct_priv), GFP_KERNEL);
+ ct_priv = kzalloc_obj(*ct_priv, GFP_KERNEL);
if (!ct_priv)
goto err_alloc;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
index 0735d10f2bac..9a7c6df78640 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
@@ -87,7 +87,7 @@ int mlx5e_tc_set_attr_rx_tun(struct mlx5e_tc_flow *flow,
void *daddr, *saddr;
u8 ip_version;
- tun_attr = kvzalloc(sizeof(*tun_attr), GFP_KERNEL);
+ tun_attr = kvzalloc_obj(*tun_attr, GFP_KERNEL);
if (!tun_attr)
return -ENOMEM;
@@ -864,7 +864,7 @@ int mlx5e_attach_encap(struct mlx5e_priv *priv,
goto attach_flow;
}
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e) {
err = -ENOMEM;
goto out_err;
@@ -976,7 +976,7 @@ int mlx5e_attach_decap(struct mlx5e_priv *priv,
goto found;
}
- d = kzalloc(sizeof(*d), GFP_KERNEL);
+ d = kzalloc_obj(*d, GFP_KERNEL);
if (!d) {
err = -ENOMEM;
goto out_err;
@@ -1205,7 +1205,7 @@ mlx5e_route_get_create(struct mlx5e_priv *priv,
return r;
}
- r = kzalloc(sizeof(*r), GFP_KERNEL);
+ r = kzalloc_obj(*r, GFP_KERNEL);
if (!r)
return ERR_PTR(-ENOMEM);
@@ -1251,7 +1251,7 @@ mlx5e_tc_init_fib_work(unsigned long event, struct net_device *ul_dev, gfp_t fla
{
struct mlx5e_tc_fib_event_data *fib_work;
- fib_work = kzalloc(sizeof(*fib_work), flags);
+ fib_work = kzalloc_obj(*fib_work, flags);
if (WARN_ON(!fib_work))
return NULL;
@@ -1862,7 +1862,7 @@ struct mlx5e_tc_tun_encap *mlx5e_tc_tun_init(struct mlx5e_priv *priv)
struct mlx5e_tc_tun_encap *encap;
int err;
- encap = kvzalloc(sizeof(*encap), GFP_KERNEL);
+ encap = kvzalloc_obj(*encap, GFP_KERNEL);
if (!encap)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tir.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tir.c
index 0b55e77f19c8..e02f04a7b211 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tir.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tir.c
@@ -22,7 +22,7 @@ struct mlx5e_tir_builder *mlx5e_tir_builder_alloc(bool modify)
{
struct mlx5e_tir_builder *builder;
- builder = kvzalloc(sizeof(*builder), GFP_KERNEL);
+ builder = kvzalloc_obj(*builder, GFP_KERNEL);
if (!builder)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
index 5c5360a25c64..52de57d7c7dc 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
@@ -23,8 +23,8 @@ static void mlx5e_xsk_unmap_pool(struct mlx5e_priv *priv,
static int mlx5e_xsk_get_pools(struct mlx5e_xsk *xsk)
{
if (!xsk->pools) {
- xsk->pools = kcalloc(MLX5E_MAX_NUM_CHANNELS,
- sizeof(*xsk->pools), GFP_KERNEL);
+ xsk->pools = kzalloc_objs(*xsk->pools, MLX5E_MAX_NUM_CHANNELS,
+ GFP_KERNEL);
if (unlikely(!xsk->pools))
return -ENOMEM;
}
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c
index 5981c71cae2d..bd0cf822cea9 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c
@@ -123,7 +123,7 @@ int mlx5e_open_xsk(struct mlx5e_priv *priv, struct mlx5e_params *params,
if (!mlx5e_validate_xsk_param(params, xsk, priv->mdev))
return -EINVAL;
- cparam = kvzalloc(sizeof(*cparam), GFP_KERNEL);
+ cparam = kvzalloc_obj(*cparam, GFP_KERNEL);
if (!cparam)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c
index 1febdc5b81f9..64fe7921f380 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c
@@ -82,7 +82,7 @@ struct mlx5_flow_handle *mlx5e_accel_fs_add_sk(struct mlx5e_flow_steering *fs,
struct mlx5_flow_handle *flow;
struct mlx5_flow_spec *spec;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return ERR_PTR(-ENOMEM);
@@ -186,7 +186,7 @@ static int accel_fs_tcp_create_groups(struct mlx5e_flow_table *ft,
int err;
u8 *mc;
- ft->g = kcalloc(MLX5E_ACCEL_FS_TCP_NUM_GROUPS, sizeof(*ft->g), GFP_KERNEL);
+ ft->g = kzalloc_objs(*ft->g, MLX5E_ACCEL_FS_TCP_NUM_GROUPS, GFP_KERNEL);
in = kvzalloc(inlen, GFP_KERNEL);
if (!in || !ft->g) {
kfree(ft->g);
@@ -378,7 +378,7 @@ int mlx5e_accel_fs_tcp_create(struct mlx5e_flow_steering *fs)
if (!MLX5_CAP_FLOWTABLE_NIC_RX(mlx5e_fs_get_mdev(fs), ft_field_support.outer_ip_version))
return -EOPNOTSUPP;
- accel_tcp = kzalloc(sizeof(*accel_tcp), GFP_KERNEL);
+ accel_tcp = kzalloc_obj(*accel_tcp, GFP_KERNEL);
if (!accel_tcp)
return -ENOMEM;
mlx5e_fs_set_accel_tcp(fs, accel_tcp);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c
index 9c7064187ed0..6ae17d24e64d 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c
@@ -712,21 +712,20 @@ static int mlx5_ipsec_create_work(struct mlx5e_ipsec_sa_entry *sa_entry)
break;
}
- work = kzalloc(sizeof(*work), GFP_KERNEL);
+ work = kzalloc_obj(*work, GFP_KERNEL);
if (!work)
return -ENOMEM;
switch (x->xso.type) {
case XFRM_DEV_OFFLOAD_CRYPTO:
- data = kzalloc(sizeof(*sa_entry), GFP_KERNEL);
+ data = kzalloc_obj(*sa_entry, GFP_KERNEL);
if (!data)
goto free_work;
INIT_WORK(&work->work, mlx5e_ipsec_modify_state);
break;
case XFRM_DEV_OFFLOAD_PACKET:
- data = kzalloc(sizeof(struct mlx5e_ipsec_netevent_data),
- GFP_KERNEL);
+ data = kzalloc_obj(struct mlx5e_ipsec_netevent_data, GFP_KERNEL);
if (!data)
goto free_work;
@@ -760,7 +759,7 @@ static int mlx5e_ipsec_create_dwork(struct mlx5e_ipsec_sa_entry *sa_entry)
x->lft.hard_byte_limit == XFRM_INF)
return 0;
- dwork = kzalloc(sizeof(*dwork), GFP_KERNEL);
+ dwork = kzalloc_obj(*dwork, GFP_KERNEL);
if (!dwork)
return -ENOMEM;
@@ -787,7 +786,7 @@ static int mlx5e_xfrm_add_state(struct net_device *dev,
ipsec = priv->ipsec;
gfp = (x->xso.flags & XFRM_DEV_OFFLOAD_FLAG_ACQ) ? GFP_ATOMIC : GFP_KERNEL;
- sa_entry = kzalloc(sizeof(*sa_entry), gfp);
+ sa_entry = kzalloc_obj(*sa_entry, gfp);
if (!sa_entry)
return -ENOMEM;
@@ -989,7 +988,7 @@ void mlx5e_ipsec_init(struct mlx5e_priv *priv)
return;
}
- ipsec = kzalloc(sizeof(*ipsec), GFP_KERNEL);
+ ipsec = kzalloc_obj(*ipsec, GFP_KERNEL);
if (!ipsec)
return;
@@ -1277,7 +1276,7 @@ static int mlx5e_xfrm_add_policy(struct xfrm_policy *x,
if (err)
return err;
- pol_entry = kzalloc(sizeof(*pol_entry), GFP_KERNEL);
+ pol_entry = kzalloc_obj(*pol_entry, GFP_KERNEL);
if (!pol_entry)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c
index feef86fff4bf..8139772387f1 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c
@@ -208,7 +208,7 @@ static int rx_add_rule_drop_auth_trailer(struct mlx5e_ipsec_sa_entry *sa_entry,
struct mlx5_flow_spec *spec;
int err;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -287,7 +287,7 @@ static int rx_add_rule_drop_replay(struct mlx5e_ipsec_sa_entry *sa_entry, struct
struct mlx5_flow_spec *spec;
int err;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -347,7 +347,7 @@ static int ipsec_rx_status_drop_all_create(struct mlx5e_ipsec *ipsec,
int err = 0;
flow_group_in = kvzalloc(inlen, GFP_KERNEL);
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!flow_group_in || !spec) {
err = -ENOMEM;
goto err_out;
@@ -454,7 +454,7 @@ ipsec_rx_status_pass_create(struct mlx5e_ipsec *ipsec,
struct mlx5_flow_spec *spec;
int err;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return ERR_PTR(-ENOMEM);
@@ -554,7 +554,7 @@ static int ipsec_miss_create(struct mlx5_core_dev *mdev,
int err = 0;
flow_group_in = kvzalloc(inlen, GFP_KERNEL);
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!flow_group_in || !spec) {
err = -ENOMEM;
goto out;
@@ -1226,7 +1226,7 @@ static int ipsec_counter_rule_tx(struct mlx5_core_dev *mdev, struct mlx5e_ipsec_
struct mlx5_flow_spec *spec;
int err;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -1962,7 +1962,7 @@ static int rx_add_rule_sa_selector(struct mlx5e_ipsec_sa_entry *sa_entry,
struct mlx5_flow_spec *spec;
int err = 0;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -2046,7 +2046,7 @@ static int rx_add_rule(struct mlx5e_ipsec_sa_entry *sa_entry)
if (IS_ERR(rx))
return PTR_ERR(rx);
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec) {
err = -ENOMEM;
goto err_alloc;
@@ -2176,7 +2176,7 @@ static int tx_add_rule(struct mlx5e_ipsec_sa_entry *sa_entry)
if (IS_ERR(tx))
return PTR_ERR(tx);
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec) {
err = -ENOMEM;
goto err_alloc;
@@ -2267,7 +2267,7 @@ static int tx_add_policy(struct mlx5e_ipsec_pol_entry *pol_entry)
if (IS_ERR(ft))
return PTR_ERR(ft);
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec) {
err = -ENOMEM;
goto err_alloc;
@@ -2354,7 +2354,7 @@ static int rx_add_policy(struct mlx5e_ipsec_pol_entry *pol_entry)
rx = ipsec_rx(pol_entry->ipsec, attrs->addrs.family, attrs->type);
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec) {
err = -ENOMEM;
goto err_alloc;
@@ -2434,7 +2434,7 @@ static struct mlx5e_ipsec_fc *ipsec_fs_init_single_counter(struct mlx5_core_dev
struct mlx5_fc *counter;
int err;
- fc = kzalloc(sizeof(*fc), GFP_KERNEL);
+ fc = kzalloc_obj(*fc, GFP_KERNEL);
if (!fc)
return ERR_PTR(-ENOMEM);
@@ -2778,24 +2778,24 @@ int mlx5e_accel_ipsec_fs_init(struct mlx5e_ipsec *ipsec,
if (!ns_esw)
return -EOPNOTSUPP;
- ipsec->tx_esw = kzalloc(sizeof(*ipsec->tx_esw), GFP_KERNEL);
+ ipsec->tx_esw = kzalloc_obj(*ipsec->tx_esw, GFP_KERNEL);
if (!ipsec->tx_esw)
return -ENOMEM;
- ipsec->rx_esw = kzalloc(sizeof(*ipsec->rx_esw), GFP_KERNEL);
+ ipsec->rx_esw = kzalloc_obj(*ipsec->rx_esw, GFP_KERNEL);
if (!ipsec->rx_esw)
goto err_rx_esw;
}
- ipsec->tx = kzalloc(sizeof(*ipsec->tx), GFP_KERNEL);
+ ipsec->tx = kzalloc_obj(*ipsec->tx, GFP_KERNEL);
if (!ipsec->tx)
goto err_tx;
- ipsec->rx_ipv4 = kzalloc(sizeof(*ipsec->rx_ipv4), GFP_KERNEL);
+ ipsec->rx_ipv4 = kzalloc_obj(*ipsec->rx_ipv4, GFP_KERNEL);
if (!ipsec->rx_ipv4)
goto err_rx_ipv4;
- ipsec->rx_ipv6 = kzalloc(sizeof(*ipsec->rx_ipv6), GFP_KERNEL);
+ ipsec->rx_ipv6 = kzalloc_obj(*ipsec->rx_ipv6, GFP_KERNEL);
if (!ipsec->rx_ipv6)
goto err_rx_ipv6;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_offload.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_offload.c
index ef7322d381af..14d7a63f752e 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_offload.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_offload.c
@@ -503,7 +503,7 @@ static int mlx5e_ipsec_event(struct notifier_block *nb, unsigned long event,
if (!sa_entry)
return NOTIFY_DONE;
- work = kmalloc(sizeof(*work), GFP_ATOMIC);
+ work = kmalloc_obj(*work, GFP_ATOMIC);
if (!work)
return NOTIFY_DONE;
@@ -522,7 +522,7 @@ int mlx5e_ipsec_aso_init(struct mlx5e_ipsec *ipsec)
struct device *pdev;
int err;
- aso = kzalloc(sizeof(*ipsec->aso), GFP_KERNEL);
+ aso = kzalloc_obj(*ipsec->aso, GFP_KERNEL);
if (!aso)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c
index 1c2cc2aad2b0..ac348aacdb0d 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c
@@ -199,7 +199,7 @@ int mlx5e_ktls_init(struct mlx5e_priv *priv)
if (!mlx5e_is_ktls_device(priv->mdev))
return 0;
- tls = kzalloc(sizeof(*tls), GFP_KERNEL);
+ tls = kzalloc_obj(*tls, GFP_KERNEL);
if (!tls)
return -ENOMEM;
tls->mdev = priv->mdev;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c
index 5d8fe252799e..47de07467e0c 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c
@@ -90,7 +90,7 @@ mlx5e_ktls_rx_resync_create_resp_list(void)
{
struct mlx5e_ktls_resync_resp *resp_list;
- resp_list = kvzalloc(sizeof(*resp_list), GFP_KERNEL);
+ resp_list = kvzalloc_obj(*resp_list, GFP_KERNEL);
if (!resp_list)
return ERR_PTR(-ENOMEM);
@@ -261,7 +261,7 @@ resync_post_get_progress_params(struct mlx5e_icosq *sq,
int err;
u16 pi;
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (unlikely(!buf)) {
err = -ENOMEM;
goto err_out;
@@ -643,7 +643,7 @@ int mlx5e_ktls_add_rx(struct net_device *netdev, struct sock *sk,
tls_ctx = tls_get_ctx(sk);
priv = netdev_priv(netdev);
- priv_rx = kzalloc(sizeof(*priv_rx), GFP_KERNEL);
+ priv_rx = kzalloc_obj(*priv_rx, GFP_KERNEL);
if (unlikely(!priv_rx))
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c
index 08f06984407b..b93f7d41a692 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c
@@ -196,7 +196,7 @@ mlx5e_tls_priv_tx_init(struct mlx5_core_dev *mdev, struct mlx5e_tls_sw_stats *sw
struct mlx5e_ktls_offload_context_tx *priv_tx;
int err;
- priv_tx = kzalloc(sizeof(*priv_tx), GFP_KERNEL);
+ priv_tx = kzalloc_obj(*priv_tx, GFP_KERNEL);
if (!priv_tx)
return ERR_PTR(-ENOMEM);
@@ -360,7 +360,7 @@ static struct mlx5e_tls_tx_pool *mlx5e_tls_tx_pool_init(struct mlx5_core_dev *md
BUILD_BUG_ON(MLX5E_TLS_TX_POOL_LOW + MLX5E_TLS_TX_POOL_BULK >= MLX5E_TLS_TX_POOL_HIGH);
- pool = kvzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kvzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
index 90b3bc5f9166..14db0a2af406 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
@@ -165,7 +165,7 @@ static int mlx5e_macsec_aso_reg_mr(struct mlx5_core_dev *mdev, struct mlx5e_macs
dma_addr_t dma_addr;
int err;
- umr = kzalloc(sizeof(*umr), GFP_KERNEL);
+ umr = kzalloc_obj(*umr, GFP_KERNEL);
if (!umr) {
err = -ENOMEM;
return err;
@@ -530,7 +530,7 @@ static int mlx5e_macsec_add_txsa(struct macsec_context *ctx)
goto out;
}
- tx_sa = kzalloc(sizeof(*tx_sa), GFP_KERNEL);
+ tx_sa = kzalloc_obj(*tx_sa, GFP_KERNEL);
if (!tx_sa) {
err = -ENOMEM;
goto out;
@@ -701,13 +701,13 @@ static int mlx5e_macsec_add_rxsc(struct macsec_context *ctx)
goto out;
}
- rx_sc = kzalloc(sizeof(*rx_sc), GFP_KERNEL);
+ rx_sc = kzalloc_obj(*rx_sc, GFP_KERNEL);
if (!rx_sc) {
err = -ENOMEM;
goto out;
}
- sc_xarray_element = kzalloc(sizeof(*sc_xarray_element), GFP_KERNEL);
+ sc_xarray_element = kzalloc_obj(*sc_xarray_element, GFP_KERNEL);
if (!sc_xarray_element) {
err = -ENOMEM;
goto destroy_rx_sc;
@@ -912,7 +912,7 @@ static int mlx5e_macsec_add_rxsa(struct macsec_context *ctx)
goto out;
}
- rx_sa = kzalloc(sizeof(*rx_sa), GFP_KERNEL);
+ rx_sa = kzalloc_obj(*rx_sa, GFP_KERNEL);
if (!rx_sa) {
err = -ENOMEM;
goto out;
@@ -1093,7 +1093,7 @@ static int mlx5e_macsec_add_secy(struct macsec_context *ctx)
goto out;
}
- macsec_device = kzalloc(sizeof(*macsec_device), GFP_KERNEL);
+ macsec_device = kzalloc_obj(*macsec_device, GFP_KERNEL);
if (!macsec_device) {
err = -ENOMEM;
goto out;
@@ -1565,7 +1565,7 @@ static int macsec_obj_change_event(struct notifier_block *nb, unsigned long even
if (obj_type != MLX5_GENERAL_OBJECT_TYPES_MACSEC)
return NOTIFY_DONE;
- async_work = kzalloc(sizeof(*async_work), GFP_ATOMIC);
+ async_work = kzalloc_obj(*async_work, GFP_ATOMIC);
if (!async_work)
return NOTIFY_DONE;
@@ -1730,7 +1730,7 @@ int mlx5e_macsec_init(struct mlx5e_priv *priv)
return 0;
}
- macsec = kzalloc(sizeof(*macsec), GFP_KERNEL);
+ macsec = kzalloc_obj(*macsec, GFP_KERNEL);
if (!macsec)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/psp.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/psp.c
index 9a74438ce10a..ea250eecbed1 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/psp.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/psp.c
@@ -142,7 +142,7 @@ static int accel_psp_fs_rx_err_add_rule(struct mlx5e_psp_fs *fs,
struct mlx5_flow_spec *spec;
int err = 0;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -344,7 +344,7 @@ static int accel_psp_fs_rx_create_ft(struct mlx5e_psp_fs *fs,
int err = 0;
flow_group_in = kvzalloc(inlen, GFP_KERNEL);
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!flow_group_in || !spec) {
err = -ENOMEM;
goto out;
@@ -560,7 +560,7 @@ static int accel_psp_fs_init_rx(struct mlx5e_psp_fs *fs)
enum accel_fs_psp_type i;
int err;
- accel_psp = kzalloc(sizeof(*accel_psp), GFP_KERNEL);
+ accel_psp = kzalloc_obj(*accel_psp, GFP_KERNEL);
if (!accel_psp)
return -ENOMEM;
@@ -686,7 +686,7 @@ static int accel_psp_fs_tx_create_ft_table(struct mlx5e_psp_fs *fs)
struct mlx5_flow_group *fg;
int err = 0;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
in = kvzalloc(inlen, GFP_KERNEL);
if (!spec || !in) {
err = -ENOMEM;
@@ -815,7 +815,7 @@ static int accel_psp_fs_init_tx(struct mlx5e_psp_fs *fs)
if (!ns)
return -EOPNOTSUPP;
- tx_fs = kzalloc(sizeof(*tx_fs), GFP_KERNEL);
+ tx_fs = kzalloc_obj(*tx_fs, GFP_KERNEL);
if (!tx_fs)
return -ENOMEM;
@@ -896,7 +896,7 @@ static struct mlx5e_psp_fs *mlx5e_accel_psp_fs_init(struct mlx5e_priv *priv)
struct mlx5e_psp_fs *fs;
int err = 0;
- fs = kzalloc(sizeof(*fs), GFP_KERNEL);
+ fs = kzalloc_obj(*fs, GFP_KERNEL);
if (!fs)
return ERR_PTR(-ENOMEM);
@@ -1127,7 +1127,7 @@ int mlx5e_psp_init(struct mlx5e_priv *priv)
return 0;
}
- psp = kzalloc(sizeof(*psp), GFP_KERNEL);
+ psp = kzalloc_obj(*psp, GFP_KERNEL);
if (!psp)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c b/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c
index 93cf23278d93..dbe824a62f22 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c
@@ -260,8 +260,7 @@ static int arfs_create_groups(struct mlx5e_flow_table *ft,
int err;
u8 *mc;
- ft->g = kcalloc(MLX5E_ARFS_NUM_GROUPS,
- sizeof(*ft->g), GFP_KERNEL);
+ ft->g = kzalloc_objs(*ft->g, MLX5E_ARFS_NUM_GROUPS, GFP_KERNEL);
if (!ft->g)
return -ENOMEM;
@@ -392,7 +391,7 @@ int mlx5e_arfs_create_tables(struct mlx5e_flow_steering *fs,
if (!ntuple)
return 0;
- arfs = kvzalloc(sizeof(*arfs), GFP_KERNEL);
+ arfs = kvzalloc_obj(*arfs, GFP_KERNEL);
if (!arfs)
return -ENOMEM;
@@ -523,7 +522,7 @@ static struct mlx5_flow_handle *arfs_add_rule(struct mlx5e_priv *priv,
struct mlx5_flow_table *ft;
int err = 0;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec) {
priv->channel_stats[arfs_rule->rxq]->rq.arfs_err++;
err = -ENOMEM;
@@ -662,7 +661,7 @@ static struct arfs_rule *arfs_alloc_rule(struct mlx5e_priv *priv,
struct arfs_rule *rule;
struct arfs_tuple *tuple;
- rule = kzalloc(sizeof(*rule), GFP_ATOMIC);
+ rule = kzalloc_obj(*rule, GFP_ATOMIC);
if (!rule) {
priv->channel_stats[rxq]->rq.arfs_err++;
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_common.c b/drivers/net/ethernet/mellanox/mlx5/core/en_common.c
index 5a2ac7b6f260..5da0a13d92f1 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_common.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_common.c
@@ -179,7 +179,7 @@ int mlx5e_create_mdev_resources(struct mlx5_core_dev *mdev, bool create_tises)
num_doorbells = min(mlx5e_get_devlink_param_num_doorbells(mdev),
mlx5e_get_max_num_channels(mdev));
- res->bfregs = kcalloc(num_doorbells, sizeof(*res->bfregs), GFP_KERNEL);
+ res->bfregs = kzalloc_objs(*res->bfregs, num_doorbells, GFP_KERNEL);
if (!res->bfregs) {
err = -ENOMEM;
goto err_destroy_mkey;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
index 8928d2dcd43f..1dd5f916597b 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs.c
@@ -128,7 +128,7 @@ static void mlx5e_add_l2_to_hash(struct hlist_head *hash, const u8 *addr)
return;
}
- hn = kzalloc(sizeof(*hn), GFP_ATOMIC);
+ hn = kzalloc_obj(*hn, GFP_ATOMIC);
if (!hn)
return;
@@ -295,7 +295,7 @@ static int mlx5e_add_vlan_rule(struct mlx5e_flow_steering *fs,
struct mlx5_flow_spec *spec;
int err = 0;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -372,7 +372,7 @@ mlx5e_add_trap_rule(struct mlx5_flow_table *ft, int trap_id, int tir_num)
struct mlx5_flow_handle *rule;
struct mlx5_flow_spec *spec;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return ERR_PTR(-ENOMEM);
spec->flow_context.flags |= FLOW_CONTEXT_HAS_TAG;
@@ -754,7 +754,7 @@ static int mlx5e_add_promisc_rule(struct mlx5e_flow_steering *fs)
struct mlx5_flow_spec *spec;
int err = 0;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
dest.type = MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE;
@@ -984,7 +984,7 @@ static int mlx5e_add_l2_flow_rule(struct mlx5e_flow_steering *fs,
u8 *mc_dmac;
u8 *mv_dmac;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -1039,7 +1039,7 @@ static int mlx5e_create_l2_table_groups(struct mlx5e_l2_table *l2_table)
int err;
u8 *mc;
- ft->g = kcalloc(MLX5E_NUM_L2_GROUPS, sizeof(*ft->g), GFP_KERNEL);
+ ft->g = kzalloc_objs(*ft->g, MLX5E_NUM_L2_GROUPS, GFP_KERNEL);
if (!ft->g)
return -ENOMEM;
in = kvzalloc(inlen, GFP_KERNEL);
@@ -1251,7 +1251,7 @@ static int mlx5e_fs_create_vlan_table(struct mlx5e_flow_steering *fs)
if (IS_ERR(ft->t))
return PTR_ERR(ft->t);
- ft->g = kcalloc(MLX5E_NUM_VLAN_GROUPS, sizeof(*ft->g), GFP_KERNEL);
+ ft->g = kzalloc_objs(*ft->g, MLX5E_NUM_VLAN_GROUPS, GFP_KERNEL);
if (!ft->g) {
err = -ENOMEM;
goto err_destroy_vlan_table;
@@ -1394,7 +1394,7 @@ void mlx5e_destroy_flow_steering(struct mlx5e_flow_steering *fs, bool ntuple,
static int mlx5e_fs_vlan_alloc(struct mlx5e_flow_steering *fs)
{
- fs->vlan = kvzalloc(sizeof(*fs->vlan), GFP_KERNEL);
+ fs->vlan = kvzalloc_obj(*fs->vlan, GFP_KERNEL);
if (!fs->vlan)
return -ENOMEM;
return 0;
@@ -1466,7 +1466,7 @@ struct mlx5e_flow_steering *mlx5e_fs_init(const struct mlx5e_profile *profile,
struct mlx5e_flow_steering *fs;
int err;
- fs = kvzalloc(sizeof(*fs), GFP_KERNEL);
+ fs = kvzalloc_obj(*fs, GFP_KERNEL);
if (!fs)
goto err;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
index 63bdef5b4ba5..d01636af3d02 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
@@ -465,7 +465,7 @@ add_ethtool_flow_rule(struct mlx5e_priv *priv,
struct mlx5_flow_spec *spec;
int err = 0;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return ERR_PTR(-ENOMEM);
err = set_flow_attrs(spec->match_criteria, spec->match_value,
@@ -476,7 +476,7 @@ add_ethtool_flow_rule(struct mlx5e_priv *priv,
if (fs->ring_cookie == RX_CLS_FLOW_DISC) {
flow_act.action = MLX5_FLOW_CONTEXT_ACTION_DROP;
} else {
- dst = kzalloc(sizeof(*dst), GFP_KERNEL);
+ dst = kzalloc_obj(*dst, GFP_KERNEL);
if (!dst) {
err = -ENOMEM;
goto free;
@@ -541,7 +541,7 @@ static struct mlx5e_ethtool_rule *get_ethtool_rule(struct mlx5e_priv *priv,
if (eth_rule)
del_ethtool_rule(priv->fs, eth_rule);
- eth_rule = kzalloc(sizeof(*eth_rule), GFP_KERNEL);
+ eth_rule = kzalloc_obj(*eth_rule, GFP_KERNEL);
if (!eth_rule)
return ERR_PTR(-ENOMEM);
@@ -836,7 +836,7 @@ mlx5e_ethtool_get_all_flows(struct mlx5e_priv *priv,
int mlx5e_ethtool_alloc(struct mlx5e_ethtool_steering **ethtool)
{
- *ethtool = kvzalloc(sizeof(**ethtool), GFP_KERNEL);
+ *ethtool = kvzalloc_obj(**ethtool, GFP_KERNEL);
if (!*ethtool)
return -ENOMEM;
return 0;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index 7eb691c2a1bd..41edda3d0c70 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -2791,7 +2791,7 @@ static int mlx5e_open_channel(struct mlx5e_priv *priv, int ix,
return err;
c = kvzalloc_node(sizeof(*c), GFP_KERNEL, cpu_to_node(cpu));
- cparam = kvzalloc(sizeof(*cparam), GFP_KERNEL);
+ cparam = kvzalloc_obj(*cparam, GFP_KERNEL);
if (!c || !cparam) {
err = -ENOMEM;
goto err_free;
@@ -2911,7 +2911,7 @@ int mlx5e_open_channels(struct mlx5e_priv *priv,
chs->num = chs->params.num_channels;
- chs->c = kcalloc(chs->num, sizeof(struct mlx5e_channel *), GFP_KERNEL);
+ chs->c = kzalloc_objs(struct mlx5e_channel *, chs->num, GFP_KERNEL);
if (!chs->c)
goto err_out;
@@ -3415,8 +3415,8 @@ int mlx5e_safe_switch_params(struct mlx5e_priv *priv,
if (!reset)
return mlx5e_switch_priv_params(priv, params, preactivate, context);
- old_chs = kzalloc(sizeof(*old_chs), GFP_KERNEL);
- new_chs = kzalloc(sizeof(*new_chs), GFP_KERNEL);
+ old_chs = kzalloc_obj(*old_chs, GFP_KERNEL);
+ new_chs = kzalloc_obj(*new_chs, GFP_KERNEL);
if (!old_chs || !new_chs) {
err = -ENOMEM;
goto err_free_chs;
@@ -6258,8 +6258,8 @@ int mlx5e_priv_init(struct mlx5e_priv *priv,
if (!priv->channel_stats)
goto err_free_tx_rates;
- priv->fec_ranges = kcalloc(ETHTOOL_FEC_HIST_MAX,
- sizeof(*priv->fec_ranges), GFP_KERNEL);
+ priv->fec_ranges = kzalloc_objs(*priv->fec_ranges, ETHTOOL_FEC_HIST_MAX,
+ GFP_KERNEL);
if (!priv->fec_ranges)
goto err_free_channel_stats;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
index 6eec88fa6d10..b0bc37669305 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
@@ -476,7 +476,7 @@ static int mlx5e_sqs2vport_add_peers_rules(struct mlx5_eswitch *esw, struct mlx5
struct mlx5e_rep_sq_peer *sq_peer;
int err;
- sq_peer = kzalloc(sizeof(*sq_peer), GFP_KERNEL);
+ sq_peer = kzalloc_obj(*sq_peer, GFP_KERNEL);
if (!sq_peer)
return -ENOMEM;
@@ -521,7 +521,7 @@ static int mlx5e_sqs2vport_start(struct mlx5_eswitch *esw,
devcom_locked = true;
for (i = 0; i < sqns_num; i++) {
- rep_sq = kzalloc(sizeof(*rep_sq), GFP_KERNEL);
+ rep_sq = kzalloc_obj(*rep_sq, GFP_KERNEL);
if (!rep_sq) {
err = -ENOMEM;
goto out_err;
@@ -1621,7 +1621,7 @@ mlx5e_vport_rep_load(struct mlx5_core_dev *dev, struct mlx5_eswitch_rep *rep)
struct mlx5e_rep_priv *rpriv;
int err;
- rpriv = kvzalloc(sizeof(*rpriv), GFP_KERNEL);
+ rpriv = kvzalloc_obj(*rpriv, GFP_KERNEL);
if (!rpriv)
return -ENOMEM;
@@ -1731,7 +1731,7 @@ static int mlx5e_vport_rep_event_pair(struct mlx5_eswitch *esw,
sq_peer->peer = peer_esw;
continue;
}
- sq_peer = kzalloc(sizeof(*sq_peer), GFP_KERNEL);
+ sq_peer = kzalloc_obj(*sq_peer, GFP_KERNEL);
if (!sq_peer) {
err = -ENOMEM;
goto err_sq_alloc;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c b/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c
index fcad464bc4d5..4066778f702d 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c
@@ -270,7 +270,7 @@ static int mlx5e_test_loopback(struct mlx5e_priv *priv)
return -ENODEV;
}
- lbtp = kzalloc(sizeof(*lbtp), GFP_KERNEL);
+ lbtp = kzalloc_obj(*lbtp, GFP_KERNEL);
if (!lbtp)
return -ENOMEM;
lbtp->loopback_ok = false;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
index 424786f489ec..761cfd2d95f1 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
@@ -153,7 +153,7 @@ struct mlx5e_tc_table *mlx5e_tc_table_alloc(void)
{
struct mlx5e_tc_table *tc;
- tc = kvzalloc(sizeof(*tc), GFP_KERNEL);
+ tc = kvzalloc_obj(*tc, GFP_KERNEL);
return tc ? tc : ERR_PTR(-ENOMEM);
}
@@ -905,7 +905,7 @@ mlx5e_hairpin_create(struct mlx5e_priv *priv, struct mlx5_hairpin_params *params
struct mlx5_hairpin *pair;
int err;
- hp = kzalloc(sizeof(*hp), GFP_KERNEL);
+ hp = kzalloc_obj(*hp, GFP_KERNEL);
if (!hp)
return ERR_PTR(-ENOMEM);
@@ -1139,7 +1139,7 @@ static int mlx5e_hairpin_flow_add(struct mlx5e_priv *priv,
goto attach_flow;
}
- hpe = kzalloc(sizeof(*hpe), GFP_KERNEL);
+ hpe = kzalloc_obj(*hpe, GFP_KERNEL);
if (!hpe) {
mutex_unlock(&tc->hairpin_tbl_lock);
return -ENOMEM;
@@ -1794,7 +1794,7 @@ extra_split_attr_dests(struct mlx5e_tc_flow *flow,
return PTR_ERR(post_act);
attr2 = mlx5_alloc_flow_attr(mlx5e_get_flow_namespace(flow));
- parse_attr2 = kvzalloc(sizeof(*parse_attr), GFP_KERNEL);
+ parse_attr2 = kvzalloc_obj(*parse_attr, GFP_KERNEL);
if (!attr2 || !parse_attr2) {
err = -ENOMEM;
goto err_free;
@@ -2570,7 +2570,7 @@ static int parse_tunnel_attr(struct mlx5e_priv *priv,
} else if (tunnel) {
struct mlx5_flow_spec *tmp_spec;
- tmp_spec = kvzalloc(sizeof(*tmp_spec), GFP_KERNEL);
+ tmp_spec = kvzalloc_obj(*tmp_spec, GFP_KERNEL);
if (!tmp_spec) {
NL_SET_ERR_MSG_MOD(extack, "Failed to allocate memory for tunnel tmp spec");
netdev_warn(priv->netdev, "Failed to allocate memory for tunnel tmp spec");
@@ -3671,7 +3671,7 @@ mlx5e_clone_flow_attr_for_post_act(struct mlx5_flow_attr *attr,
struct mlx5_flow_attr *attr2;
attr2 = mlx5_alloc_flow_attr(ns_type);
- parse_attr = kvzalloc(sizeof(*parse_attr), GFP_KERNEL);
+ parse_attr = kvzalloc_obj(*parse_attr, GFP_KERNEL);
if (!attr2 || !parse_attr) {
kvfree(parse_attr);
kfree(attr2);
@@ -4448,8 +4448,8 @@ mlx5e_alloc_flow(struct mlx5e_priv *priv, int attr_size,
int err = -ENOMEM;
int out_index;
- flow = kzalloc(sizeof(*flow), GFP_KERNEL);
- parse_attr = kvzalloc(sizeof(*parse_attr), GFP_KERNEL);
+ flow = kzalloc_obj(*flow, GFP_KERNEL);
+ parse_attr = kvzalloc_obj(*parse_attr, GFP_KERNEL);
if (!parse_attr || !flow)
goto err_free;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eq.c b/drivers/net/ethernet/mellanox/mlx5/core/eq.c
index 25499da177bc..cc679500b3dc 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eq.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eq.c
@@ -881,7 +881,7 @@ static int comp_irq_request_sf(struct mlx5_core_dev *dev, u16 vecidx)
if (!mlx5_irq_pool_is_sf_pool(pool))
return comp_irq_request_pci(dev, vecidx);
- af_desc = kvzalloc(sizeof(*af_desc), GFP_KERNEL);
+ af_desc = kvzalloc_obj(*af_desc, GFP_KERNEL);
if (!af_desc)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.c
index 3ce455c2535c..a95d12860fed 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.c
@@ -58,7 +58,7 @@ int esw_egress_acl_vlan_create(struct mlx5_eswitch *esw,
if (vport->egress.allowed_vlan)
return -EEXIST;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_lgcy.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_lgcy.c
index 49a637829c59..f8ca68ea685e 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_lgcy.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_lgcy.c
@@ -200,7 +200,7 @@ int esw_acl_ingress_lgcy_setup(struct mlx5_eswitch *esw,
"vport[%d] configure ingress rules, vlan(%d) qos(%d)\n",
vport->vport, vport->info.vlan, vport->info.qos);
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec) {
err = -ENOMEM;
goto out;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_ofld.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_ofld.c
index a436ce895e45..4ffaa7b4b5b1 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_ofld.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_ofld.c
@@ -29,7 +29,7 @@ static int esw_acl_ingress_prio_tag_create(struct mlx5_eswitch *esw,
* required, allow
* Unmatched traffic is allowed by default
*/
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.c
index 60e10047770f..b9e9505ff76e 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.c
@@ -586,7 +586,7 @@ mlx5_esw_bridge_ingress_flow_with_esw_create(u16 vport_num, const unsigned char
struct mlx5_flow_handle *handle;
u8 *smac_v, *smac_c;
- rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL);
+ rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL);
if (!rule_spec)
return ERR_PTR(-ENOMEM);
@@ -700,7 +700,7 @@ mlx5_esw_bridge_ingress_filter_flow_create(u16 vport_num, const unsigned char *a
struct mlx5_flow_handle *handle;
u8 *smac_v, *smac_c;
- rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL);
+ rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL);
if (!rule_spec)
return ERR_PTR(-ENOMEM);
@@ -753,7 +753,7 @@ mlx5_esw_bridge_egress_flow_create(u16 vport_num, u16 esw_owner_vhca_id, const u
struct mlx5_flow_handle *handle;
u8 *dmac_v, *dmac_c;
- rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL);
+ rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL);
if (!rule_spec)
return ERR_PTR(-ENOMEM);
@@ -821,7 +821,7 @@ mlx5_esw_bridge_egress_miss_flow_create(struct mlx5_flow_table *egress_ft,
struct mlx5_flow_spec *rule_spec;
struct mlx5_flow_handle *handle;
- rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL);
+ rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL);
if (!rule_spec)
return ERR_PTR(-ENOMEM);
@@ -844,7 +844,7 @@ static struct mlx5_esw_bridge *mlx5_esw_bridge_create(struct net_device *br_netd
struct mlx5_esw_bridge *bridge;
int err;
- bridge = kvzalloc(sizeof(*bridge), GFP_KERNEL);
+ bridge = kvzalloc_obj(*bridge, GFP_KERNEL);
if (!bridge)
return ERR_PTR(-ENOMEM);
@@ -1179,7 +1179,7 @@ mlx5_esw_bridge_vlan_create(u16 vlan_proto, u16 vid, u16 flags, struct mlx5_esw_
struct mlx5_esw_bridge_vlan *vlan;
int err;
- vlan = kvzalloc(sizeof(*vlan), GFP_KERNEL);
+ vlan = kvzalloc_obj(*vlan, GFP_KERNEL);
if (!vlan)
return ERR_PTR(-ENOMEM);
@@ -1365,7 +1365,7 @@ mlx5_esw_bridge_fdb_entry_init(struct net_device *dev, u16 vport_num, u16 esw_ow
if (entry)
mlx5_esw_bridge_fdb_entry_notify_and_cleanup(entry, bridge);
- entry = kvzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kvzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return ERR_PTR(-ENOMEM);
@@ -1550,7 +1550,7 @@ static int mlx5_esw_bridge_vport_init(u16 vport_num, u16 esw_owner_vhca_id, u16
struct mlx5_esw_bridge_port *port;
int err;
- port = kvzalloc(sizeof(*port), GFP_KERNEL);
+ port = kvzalloc_obj(*port, GFP_KERNEL);
if (!port)
return -ENOMEM;
@@ -1924,7 +1924,7 @@ struct mlx5_esw_bridge_offloads *mlx5_esw_bridge_init(struct mlx5_eswitch *esw)
ASSERT_RTNL();
- br_offloads = kvzalloc(sizeof(*br_offloads), GFP_KERNEL);
+ br_offloads = kvzalloc_obj(*br_offloads, GFP_KERNEL);
if (!br_offloads)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge_mcast.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge_mcast.c
index 22dd30cf8033..15e5a05f5dd8 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge_mcast.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge_mcast.c
@@ -65,11 +65,11 @@ mlx5_esw_bridge_mdb_flow_create(u16 esw_owner_vhca_id, struct mlx5_esw_bridge_md
u8 *dmac_v, *dmac_c;
unsigned long idx;
- rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL);
+ rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL);
if (!rule_spec)
return ERR_PTR(-ENOMEM);
- dests = kvcalloc(num_dests, sizeof(*dests), GFP_KERNEL);
+ dests = kvzalloc_objs(*dests, num_dests, GFP_KERNEL);
if (!dests) {
kvfree(rule_spec);
return ERR_PTR(-ENOMEM);
@@ -152,7 +152,7 @@ mlx5_esw_bridge_port_mdb_entry_init(struct mlx5_esw_bridge_port *port,
struct mlx5_esw_bridge_mdb_entry *entry;
int err;
- entry = kvzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kvzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return ERR_PTR(-ENOMEM);
@@ -516,7 +516,7 @@ mlx5_esw_bridge_mcast_flow_with_esw_create(struct mlx5_esw_bridge_port *port,
struct mlx5_flow_spec *rule_spec;
struct mlx5_flow_handle *handle;
- rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL);
+ rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL);
if (!rule_spec)
return ERR_PTR(-ENOMEM);
@@ -584,7 +584,7 @@ mlx5_esw_bridge_mcast_vlan_flow_create(u16 vlan_proto, struct mlx5_esw_bridge_po
struct mlx5_flow_spec *rule_spec;
struct mlx5_flow_handle *handle;
- rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL);
+ rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL);
if (!rule_spec)
return ERR_PTR(-ENOMEM);
@@ -656,7 +656,7 @@ mlx5_esw_bridge_mcast_fwd_flow_create(struct mlx5_esw_bridge_port *port)
struct mlx5_flow_spec *rule_spec;
struct mlx5_flow_handle *handle;
- rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL);
+ rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL);
if (!rule_spec)
return ERR_PTR(-ENOMEM);
@@ -890,7 +890,7 @@ mlx5_esw_bridge_ingress_igmp_fh_create(struct mlx5_flow_table *ingress_ft,
struct mlx5_flow_spec *rule_spec;
struct mlx5_flow_handle *handle;
- rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL);
+ rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL);
if (!rule_spec)
return ERR_PTR(-ENOMEM);
@@ -922,7 +922,7 @@ mlx5_esw_bridge_ingress_mld_fh_create(u8 type, struct mlx5_flow_table *ingress_f
struct mlx5_flow_spec *rule_spec;
struct mlx5_flow_handle *handle;
- rule_spec = kvzalloc(sizeof(*rule_spec), GFP_KERNEL);
+ rule_spec = kvzalloc_obj(*rule_spec, GFP_KERNEL);
if (!rule_spec)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/devlink_port.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/devlink_port.c
index cd60bc500ec5..0b8bb42af33f 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/esw/devlink_port.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/devlink_port.c
@@ -70,7 +70,7 @@ int mlx5_esw_offloads_pf_vf_devlink_port_init(struct mlx5_eswitch *esw,
if (!mlx5_esw_devlink_port_supported(esw, vport_num))
return 0;
- dl_port = kzalloc(sizeof(*dl_port), GFP_KERNEL);
+ dl_port = kzalloc_obj(*dl_port, GFP_KERNEL);
if (!dl_port)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/indir_table.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/indir_table.c
index 9959e9fd15a1..1a135c3e48df 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/esw/indir_table.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/indir_table.c
@@ -46,7 +46,7 @@ struct mlx5_esw_indir_table {
struct mlx5_esw_indir_table *
mlx5_esw_indir_table_init(void)
{
- struct mlx5_esw_indir_table *indir = kvzalloc(sizeof(*indir), GFP_KERNEL);
+ struct mlx5_esw_indir_table *indir = kvzalloc_obj(*indir, GFP_KERNEL);
if (!indir)
return ERR_PTR(-ENOMEM);
@@ -111,7 +111,7 @@ static int mlx5_esw_indir_table_rule_get(struct mlx5_eswitch *esw,
return 0;
}
- rule = kzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
return -ENOMEM;
@@ -258,7 +258,7 @@ mlx5_esw_indir_table_entry_create(struct mlx5_eswitch *esw, struct mlx5_flow_att
if (!root_ns)
return ERR_PTR(-ENOENT);
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c
index 929adeb50a98..0ee931bca98b 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c
@@ -259,7 +259,7 @@ static int _mlx5_eswitch_set_vepa_locked(struct mlx5_eswitch *esw,
if (err)
return err;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec) {
err = -ENOMEM;
goto out;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
index 4278bcb04c72..2f9e59790584 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
@@ -38,7 +38,7 @@ static struct mlx5_qos_domain *esw_qos_domain_alloc(void)
{
struct mlx5_qos_domain *qos_domain;
- qos_domain = kzalloc(sizeof(*qos_domain), GFP_KERNEL);
+ qos_domain = kzalloc_obj(*qos_domain, GFP_KERNEL);
if (!qos_domain)
return NULL;
@@ -518,7 +518,7 @@ __esw_qos_alloc_node(struct mlx5_eswitch *esw, u32 tsar_ix, enum sched_node_type
{
struct mlx5_esw_sched_node *node;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return NULL;
@@ -916,9 +916,8 @@ esw_qos_create_vport_tc_sched_elements(struct mlx5_vport *vport,
int err, num_tcs = esw_qos_num_tcs(vport_node->esw->dev);
u32 rate_limit_elem_ix;
- vport->qos.sched_nodes = kcalloc(num_tcs,
- sizeof(struct mlx5_esw_sched_node *),
- GFP_KERNEL);
+ vport->qos.sched_nodes = kzalloc_objs(struct mlx5_esw_sched_node *,
+ num_tcs, GFP_KERNEL);
if (!vport->qos.sched_nodes) {
NL_SET_ERR_MSG_MOD(extack,
"Allocating the vport TC scheduling elements failed.");
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/vporttbl.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/vporttbl.c
index 407062096a82..5628182faf57 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/esw/vporttbl.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/vporttbl.c
@@ -96,7 +96,7 @@ mlx5_esw_vporttbl_get(struct mlx5_eswitch *esw, struct mlx5_vport_tbl_attr *attr
goto out;
}
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e) {
fdb = ERR_PTR(-ENOMEM);
goto err_alloc;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
index 5fbfabe28bdb..d31a74ae1dd7 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
@@ -221,7 +221,7 @@ __esw_fdb_set_vport_rule(struct mlx5_eswitch *esw, u16 vport, bool rx_rule,
if (rx_rule)
match_header |= MLX5_MATCH_MISC_PARAMETERS;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return NULL;
@@ -1862,7 +1862,7 @@ int mlx5_esw_vport_alloc(struct mlx5_eswitch *esw, int index, u16 vport_num)
struct mlx5_vport *vport;
int err;
- vport = kzalloc(sizeof(*vport), GFP_KERNEL);
+ vport = kzalloc_obj(*vport, GFP_KERNEL);
if (!vport)
return -ENOMEM;
@@ -2022,7 +2022,7 @@ int mlx5_eswitch_init(struct mlx5_core_dev *dev)
if (!MLX5_VPORT_MANAGER(dev) && !MLX5_ESWITCH_MANAGER(dev))
return 0;
- esw = kzalloc(sizeof(*esw), GFP_KERNEL);
+ esw = kzalloc_obj(*esw, GFP_KERNEL);
if (!esw)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
index 1b439cef3719..1693f2dd5d6a 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -680,7 +680,7 @@ mlx5_eswitch_add_offloaded_rule(struct mlx5_eswitch *esw,
if (!esw_flow_dests_fwd_ipsec_check(esw, esw_attr))
return ERR_PTR(-EOPNOTSUPP);
- dest = kcalloc(MLX5_MAX_FLOW_FWD_VPORTS + 1, sizeof(*dest), GFP_KERNEL);
+ dest = kzalloc_objs(*dest, MLX5_MAX_FLOW_FWD_VPORTS + 1, GFP_KERNEL);
if (!dest)
return ERR_PTR(-ENOMEM);
@@ -808,7 +808,7 @@ mlx5_eswitch_add_fwd_rule(struct mlx5_eswitch *esw,
struct mlx5_flow_handle *rule;
int i, err = 0;
- dest = kcalloc(MLX5_MAX_FLOW_FWD_VPORTS + 1, sizeof(*dest), GFP_KERNEL);
+ dest = kzalloc_objs(*dest, MLX5_MAX_FLOW_FWD_VPORTS + 1, GFP_KERNEL);
if (!dest)
return ERR_PTR(-ENOMEM);
@@ -947,7 +947,7 @@ mlx5_eswitch_add_send_to_vport_rule(struct mlx5_eswitch *on_esw,
void *misc;
u16 vport;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec) {
flow_rule = ERR_PTR(-ENOMEM);
goto out;
@@ -1044,7 +1044,7 @@ mlx5_eswitch_add_send_to_vport_meta_rule(struct mlx5_eswitch *esw, u16 vport_num
struct mlx5_flow_handle *flow_rule;
struct mlx5_flow_spec *spec;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return ERR_PTR(-ENOMEM);
@@ -1198,13 +1198,13 @@ static int esw_add_fdb_peer_miss_rules(struct mlx5_eswitch *esw,
!mlx5_core_is_ecpf_esw_manager(peer_dev))
return 0;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
peer_miss_rules_setup(esw, peer_dev, spec, &dest);
- flows = kvcalloc(peer_esw->total_vports, sizeof(*flows), GFP_KERNEL);
+ flows = kvzalloc_objs(*flows, peer_esw->total_vports, GFP_KERNEL);
if (!flows) {
err = -ENOMEM;
goto alloc_flows_err;
@@ -1368,7 +1368,7 @@ static int esw_add_fdb_miss_rule(struct mlx5_eswitch *esw)
u8 *dmac_c;
u8 *dmac_v;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec) {
err = -ENOMEM;
goto out;
@@ -1430,7 +1430,7 @@ esw_add_restore_rule(struct mlx5_eswitch *esw, u32 tag)
if (!mlx5_eswitch_reg_c1_loopback_supported(esw))
return ERR_PTR(-EOPNOTSUPP);
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return ERR_PTR(-ENOMEM);
@@ -2148,7 +2148,7 @@ mlx5_eswitch_create_vport_rx_rule(struct mlx5_eswitch *esw, u16 vport,
struct mlx5_flow_handle *flow_rule;
struct mlx5_flow_spec *spec;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec) {
flow_rule = ERR_PTR(-ENOMEM);
goto out;
@@ -2525,7 +2525,7 @@ int mlx5_esw_offloads_rep_add(struct mlx5_eswitch *esw,
int rep_type;
int err;
- rep = kzalloc(sizeof(*rep), GFP_KERNEL);
+ rep = kzalloc_obj(*rep, GFP_KERNEL);
if (!rep)
return -ENOMEM;
@@ -2861,7 +2861,7 @@ static int __esw_set_master_egress_rule(struct mlx5_core_dev *master,
int err = 0;
void *misc;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -3640,7 +3640,7 @@ int mlx5_esw_funcs_changed_handler(struct notifier_block *nb, unsigned long type
struct mlx5_host_work *host_work;
struct mlx5_eswitch *esw;
- host_work = kzalloc(sizeof(*host_work), GFP_ATOMIC);
+ host_work = kzalloc_obj(*host_work, GFP_ATOMIC);
if (!host_work)
return NOTIFY_DONE;
@@ -4470,7 +4470,7 @@ int mlx5_esw_vport_vhca_id_map(struct mlx5_eswitch *esw,
}
vhca_id = vport->vhca_id;
- vhca_map_entry = kmalloc(sizeof(*vhca_map_entry), GFP_KERNEL);
+ vhca_map_entry = kmalloc_obj(*vhca_map_entry, GFP_KERNEL);
if (!vhca_map_entry)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c
index 40bdc677f051..af82232d53ef 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c
@@ -132,7 +132,7 @@ mlx5_eswitch_termtbl_get_create(struct mlx5_eswitch *esw,
if (found)
goto tt_add_ref;
- tt = kzalloc(sizeof(*tt), GFP_KERNEL);
+ tt = kzalloc_obj(*tt, GFP_KERNEL);
if (!tt) {
err = -ENOMEM;
goto tt_create_err;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/events.c b/drivers/net/ethernet/mellanox/mlx5/core/events.c
index 01c5f5990f9a..23ecc8e8a219 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/events.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/events.c
@@ -374,7 +374,7 @@ static int forward_event(struct notifier_block *nb, unsigned long event, void *d
int mlx5_events_init(struct mlx5_core_dev *dev)
{
- struct mlx5_events *events = kzalloc(sizeof(*events), GFP_KERNEL);
+ struct mlx5_events *events = kzalloc_obj(*events, GFP_KERNEL);
if (!events)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c b/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
index ccef64fb40b6..2b029dc3f0c8 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
@@ -531,17 +531,15 @@ static int mlx5_fpga_conn_create_qp(struct mlx5_fpga_conn *conn,
if (err)
goto out;
- conn->qp.rq.bufs = kvcalloc(conn->qp.rq.size,
- sizeof(conn->qp.rq.bufs[0]),
- GFP_KERNEL);
+ conn->qp.rq.bufs = kvzalloc_objs(conn->qp.rq.bufs[0], conn->qp.rq.size,
+ GFP_KERNEL);
if (!conn->qp.rq.bufs) {
err = -ENOMEM;
goto err_wq;
}
- conn->qp.sq.bufs = kvcalloc(conn->qp.sq.size,
- sizeof(conn->qp.sq.bufs[0]),
- GFP_KERNEL);
+ conn->qp.sq.bufs = kvzalloc_objs(conn->qp.sq.bufs[0], conn->qp.sq.size,
+ GFP_KERNEL);
if (!conn->qp.sq.bufs) {
err = -ENOMEM;
goto err_rq_bufs;
@@ -816,7 +814,7 @@ struct mlx5_fpga_conn *mlx5_fpga_conn_create(struct mlx5_fpga_device *fdev,
if (!attr->recv_cb)
return ERR_PTR(-EINVAL);
- conn = kzalloc(sizeof(*conn), GFP_KERNEL);
+ conn = kzalloc_obj(*conn, GFP_KERNEL);
if (!conn)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fpga/core.c b/drivers/net/ethernet/mellanox/mlx5/core/fpga/core.c
index 1ec61164e6b5..ae87ca14cae4 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/fpga/core.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/fpga/core.c
@@ -59,7 +59,7 @@ static struct mlx5_fpga_device *mlx5_fpga_device_alloc(void)
{
struct mlx5_fpga_device *fdev;
- fdev = kzalloc(sizeof(*fdev), GFP_KERNEL);
+ fdev = kzalloc_obj(*fdev, GFP_KERNEL);
if (!fdev)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c
index 0a6031a64c6f..80950d84d07a 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c
@@ -947,7 +947,7 @@ alloc_flow_table(struct mlx5_flow_table_attr *ft_attr, u16 vport,
struct mlx5_flow_table *ft;
int ret;
- ft = kzalloc(sizeof(*ft), GFP_KERNEL);
+ ft = kzalloc_obj(*ft, GFP_KERNEL);
if (!ft)
return ERR_PTR(-ENOMEM);
@@ -1530,7 +1530,7 @@ static struct mlx5_flow_rule *alloc_rule(struct mlx5_flow_destination *dest)
{
struct mlx5_flow_rule *rule;
- rule = kzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
return NULL;
@@ -1548,7 +1548,7 @@ static struct mlx5_flow_handle *alloc_handle(int num_rules)
{
struct mlx5_flow_handle *handle;
- handle = kzalloc(struct_size(handle, rule, num_rules), GFP_KERNEL);
+ handle = kzalloc_flex(*handle, rule, num_rules, GFP_KERNEL);
if (!handle)
return NULL;
@@ -2096,7 +2096,7 @@ static int build_match_list(struct match_list *match_head,
if (unlikely(!tree_get_node(&g->node)))
continue;
- curr_match = kmalloc(sizeof(*curr_match), GFP_ATOMIC);
+ curr_match = kmalloc_obj(*curr_match, GFP_ATOMIC);
if (!curr_match) {
rcu_read_unlock();
free_match_list(match_head, ft_locked);
@@ -2178,7 +2178,7 @@ add_rule_dup_match_fte(struct fs_fte *fte,
int i = 0;
if (!fte->dup) {
- dup = kvzalloc(sizeof(*dup), GFP_KERNEL);
+ dup = kvzalloc_obj(*dup, GFP_KERNEL);
if (!dup)
return ERR_PTR(-ENOMEM);
/* dup will be freed when the fte is freed
@@ -2471,8 +2471,7 @@ mlx5_add_flow_rules(struct mlx5_flow_table *ft,
goto unlock;
}
- gen_dest = kcalloc(num_dest + 1, sizeof(*dest),
- GFP_KERNEL);
+ gen_dest = kzalloc_objs(*dest, num_dest + 1, GFP_KERNEL);
if (!gen_dest) {
handle = ERR_PTR(-ENOMEM);
goto unlock;
@@ -2849,7 +2848,7 @@ static struct fs_prio *_fs_create_prio(struct mlx5_flow_namespace *ns,
{
struct fs_prio *fs_prio;
- fs_prio = kzalloc(sizeof(*fs_prio), GFP_KERNEL);
+ fs_prio = kzalloc_obj(*fs_prio, GFP_KERNEL);
if (!fs_prio)
return ERR_PTR(-ENOMEM);
@@ -2889,7 +2888,7 @@ static struct mlx5_flow_namespace *fs_create_namespace(struct fs_prio *prio,
{
struct mlx5_flow_namespace *ns;
- ns = kzalloc(sizeof(*ns), GFP_KERNEL);
+ ns = kzalloc_obj(*ns, GFP_KERNEL);
if (!ns)
return ERR_PTR(-ENOMEM);
@@ -3020,7 +3019,7 @@ static struct mlx5_flow_root_namespace
struct mlx5_flow_namespace *ns;
/* Create the root namespace */
- root_ns = kzalloc(sizeof(*root_ns), GFP_KERNEL);
+ root_ns = kzalloc_obj(*root_ns, GFP_KERNEL);
if (!root_ns)
return NULL;
@@ -3375,9 +3374,8 @@ static int init_rdma_transport_rx_root_ns(struct mlx5_flow_steering *steering)
total_vports = mlx5_eswitch_get_total_vports(dev) ?: 1;
steering->rdma_transport_rx_root_ns =
- kcalloc(total_vports,
- sizeof(*steering->rdma_transport_rx_root_ns),
- GFP_KERNEL);
+ kzalloc_objs(*steering->rdma_transport_rx_root_ns,
+ total_vports, GFP_KERNEL);
if (!steering->rdma_transport_rx_root_ns)
return -ENOMEM;
@@ -3408,9 +3406,8 @@ static int init_rdma_transport_tx_root_ns(struct mlx5_flow_steering *steering)
total_vports = mlx5_eswitch_get_total_vports(dev) ?: 1;
steering->rdma_transport_tx_root_ns =
- kcalloc(total_vports,
- sizeof(*steering->rdma_transport_tx_root_ns),
- GFP_KERNEL);
+ kzalloc_objs(*steering->rdma_transport_tx_root_ns,
+ total_vports, GFP_KERNEL);
if (!steering->rdma_transport_tx_root_ns)
return -ENOMEM;
@@ -3518,9 +3515,8 @@ static int create_fdb_fast_path(struct mlx5_flow_steering *steering)
{
int err;
- steering->fdb_sub_ns = kcalloc(FDB_NUM_CHAINS,
- sizeof(*steering->fdb_sub_ns),
- GFP_KERNEL);
+ steering->fdb_sub_ns = kzalloc_objs(*steering->fdb_sub_ns,
+ FDB_NUM_CHAINS, GFP_KERNEL);
if (!steering->fdb_sub_ns)
return -ENOMEM;
@@ -3674,7 +3670,7 @@ mlx5_fs_add_vport_acl_root_ns(struct mlx5_flow_steering *steering,
if (xa_load(esw_acl_root_ns, vport_idx))
return -EEXIST;
- vport_ns = kzalloc(sizeof(*vport_ns), GFP_KERNEL);
+ vport_ns = kzalloc_obj(*vport_ns, GFP_KERNEL);
if (!vport_ns)
return -ENOMEM;
@@ -3993,7 +3989,7 @@ int mlx5_fs_core_alloc(struct mlx5_core_dev *dev)
if (err)
goto err;
- steering = kzalloc(sizeof(*steering), GFP_KERNEL);
+ steering = kzalloc_obj(*steering, GFP_KERNEL);
if (!steering) {
err = -ENOMEM;
goto err;
@@ -4034,7 +4030,7 @@ int mlx5_fs_add_rx_underlay_qpn(struct mlx5_core_dev *dev, u32 underlay_qpn)
struct mlx5_ft_underlay_qp *new_uqp;
int err = 0;
- new_uqp = kzalloc(sizeof(*new_uqp), GFP_KERNEL);
+ new_uqp = kzalloc_obj(*new_uqp, GFP_KERNEL);
if (!new_uqp)
return -ENOMEM;
@@ -4137,7 +4133,7 @@ struct mlx5_modify_hdr *mlx5_modify_header_alloc(struct mlx5_core_dev *dev,
if (!root)
return ERR_PTR(-EOPNOTSUPP);
- modify_hdr = kzalloc(sizeof(*modify_hdr), GFP_KERNEL);
+ modify_hdr = kzalloc_obj(*modify_hdr, GFP_KERNEL);
if (!modify_hdr)
return ERR_PTR(-ENOMEM);
@@ -4178,7 +4174,7 @@ struct mlx5_pkt_reformat *mlx5_packet_reformat_alloc(struct mlx5_core_dev *dev,
if (!root)
return ERR_PTR(-EOPNOTSUPP);
- pkt_reformat = kzalloc(sizeof(*pkt_reformat), GFP_KERNEL);
+ pkt_reformat = kzalloc_obj(*pkt_reformat, GFP_KERNEL);
if (!pkt_reformat)
return ERR_PTR(-ENOMEM);
@@ -4226,7 +4222,7 @@ mlx5_create_match_definer(struct mlx5_core_dev *dev,
if (!root)
return ERR_PTR(-EOPNOTSUPP);
- definer = kzalloc(sizeof(*definer), GFP_KERNEL);
+ definer = kzalloc_obj(*definer, GFP_KERNEL);
if (!definer)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c b/drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c
index fe7caa910219..b2b3a12493f4 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c
@@ -234,11 +234,11 @@ static struct mlx5_fc *mlx5_fc_single_alloc(struct mlx5_core_dev *dev)
struct mlx5_fc *counter;
int err;
- counter = kzalloc(sizeof(*counter), GFP_KERNEL);
+ counter = kzalloc_obj(*counter, GFP_KERNEL);
if (!counter)
return ERR_PTR(-ENOMEM);
- fc_bulk = kzalloc(sizeof(*fc_bulk), GFP_KERNEL);
+ fc_bulk = kzalloc_obj(*fc_bulk, GFP_KERNEL);
if (!fc_bulk) {
err = -ENOMEM;
goto free_counter;
@@ -328,7 +328,7 @@ int mlx5_init_fc_stats(struct mlx5_core_dev *dev)
{
struct mlx5_fc_stats *fc_stats;
- fc_stats = kzalloc(sizeof(*fc_stats), GFP_KERNEL);
+ fc_stats = kzalloc_obj(*fc_stats, GFP_KERNEL);
if (!fc_stats)
return -ENOMEM;
dev->priv.fc_stats = fc_stats;
@@ -460,7 +460,7 @@ static struct mlx5_fs_bulk *mlx5_fc_bulk_create(struct mlx5_core_dev *dev,
alloc_bitmask = MLX5_CAP_GEN(dev, flow_counter_bulk_alloc);
bulk_len = alloc_bitmask > 0 ? MLX5_FC_BULK_NUM_FCS(alloc_bitmask) : 1;
- fc_bulk = kvzalloc(struct_size(fc_bulk, fcs, bulk_len), GFP_KERNEL);
+ fc_bulk = kvzalloc_flex(*fc_bulk, fcs, bulk_len, GFP_KERNEL);
if (!fc_bulk)
return NULL;
@@ -572,10 +572,10 @@ mlx5_fc_local_create(u32 counter_id, u32 offset, u32 bulk_size)
struct mlx5_fc_bulk *fc_bulk;
struct mlx5_fc *counter;
- counter = kzalloc(sizeof(*counter), GFP_KERNEL);
+ counter = kzalloc_obj(*counter, GFP_KERNEL);
if (!counter)
return ERR_PTR(-ENOMEM);
- fc_bulk = kzalloc(sizeof(*fc_bulk), GFP_KERNEL);
+ fc_bulk = kzalloc_obj(*fc_bulk, GFP_KERNEL);
if (!fc_bulk) {
kfree(counter);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.c b/drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.c
index f6abfd00d7e6..847e940d4d70 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.c
@@ -26,7 +26,7 @@ int mlx5_ft_pool_init(struct mlx5_core_dev *dev)
struct mlx5_ft_pool *ft_pool;
int i;
- ft_pool = kzalloc(sizeof(*ft_pool), GFP_KERNEL);
+ ft_pool = kzalloc_obj(*ft_pool, GFP_KERNEL);
if (!ft_pool)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c b/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c
index ae10665c53f3..c0e23bc2d96a 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c
@@ -899,7 +899,7 @@ int mlx5_fw_reset_init(struct mlx5_core_dev *dev)
if (!MLX5_CAP_MCAM_REG(dev, mfrl))
return 0;
- fw_reset = kzalloc(sizeof(*fw_reset), GFP_KERNEL);
+ fw_reset = kzalloc_obj(*fw_reset, GFP_KERNEL);
if (!fw_reset)
return -ENOMEM;
fw_reset->wq = create_singlethread_workqueue("mlx5_fw_reset_events");
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/hwmon.c b/drivers/net/ethernet/mellanox/mlx5/core/hwmon.c
index 4ba2636d7fb6..ab005d7d184b 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/hwmon.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/hwmon.c
@@ -298,7 +298,7 @@ static struct mlx5_hwmon *mlx5_hwmon_alloc(struct mlx5_core_dev *mdev)
u32 sensors_count;
int err;
- hwmon = kzalloc(sizeof(*mdev->hwmon), GFP_KERNEL);
+ hwmon = kzalloc_obj(*mdev->hwmon, GFP_KERNEL);
if (!hwmon)
return ERR_PTR(-ENOMEM);
@@ -313,8 +313,8 @@ static struct mlx5_hwmon *mlx5_hwmon_alloc(struct mlx5_core_dev *mdev)
hwmon->module_scount = mon_cap ? 1 : 0;
sensors_count = hwmon->asic_platform_scount + hwmon->module_scount;
- hwmon->temp_channel_desc = kcalloc(sensors_count, sizeof(*hwmon->temp_channel_desc),
- GFP_KERNEL);
+ hwmon->temp_channel_desc = kzalloc_objs(*hwmon->temp_channel_desc,
+ sensors_count, GFP_KERNEL);
if (!hwmon->temp_channel_desc) {
err = -ENOMEM;
goto err_free_hwmon;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c b/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c
index 04444dad3a0d..96a75b8ef779 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c
@@ -51,7 +51,7 @@ int mlx5i_pkey_qpn_ht_init(struct net_device *netdev)
struct mlx5i_priv *ipriv = netdev_priv(netdev);
struct mlx5i_pkey_qpn_ht *qpn_htbl;
- qpn_htbl = kzalloc(sizeof(*qpn_htbl), GFP_KERNEL);
+ qpn_htbl = kzalloc_obj(*qpn_htbl, GFP_KERNEL);
if (!qpn_htbl)
return -ENOMEM;
@@ -89,7 +89,7 @@ int mlx5i_pkey_add_qpn(struct net_device *netdev, u32 qpn)
u8 key = hash_32(qpn, MLX5I_MAX_LOG_PKEY_SUP);
struct qpn_to_netdev *new_node;
- new_node = kzalloc(sizeof(*new_node), GFP_KERNEL);
+ new_node = kzalloc_obj(*new_node, GFP_KERNEL);
if (!new_node)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c b/drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c
index 14d339eceb92..0be0b614938c 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c
@@ -52,7 +52,7 @@ irq_pool_request_irq(struct mlx5_irq_pool *pool, struct irq_affinity_desc *af_de
u32 irq_index;
int err;
- auto_desc = kvzalloc(sizeof(*auto_desc), GFP_KERNEL);
+ auto_desc = kvzalloc_obj(*auto_desc, GFP_KERNEL);
if (!auto_desc)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
index 9fe47c836ebd..0eed75f5ccc2 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
@@ -272,7 +272,7 @@ static struct mlx5_lag *mlx5_lag_dev_alloc(struct mlx5_core_dev *dev)
struct mlx5_lag *ldev;
int err;
- ldev = kzalloc(sizeof(*ldev), GFP_KERNEL);
+ ldev = kzalloc_obj(*ldev, GFP_KERNEL);
if (!ldev)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c
index cdc99fe5c956..c4c2bf33ef35 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c
@@ -291,7 +291,7 @@ mlx5_lag_init_fib_work(struct mlx5_lag *ldev, unsigned long event)
{
struct mlx5_fib_event_work *fib_work;
- fib_work = kzalloc(sizeof(*fib_work), GFP_ATOMIC);
+ fib_work = kzalloc_obj(*fib_work, GFP_ATOMIC);
if (WARN_ON(!fib_work))
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c
index 04762562d7d9..d3458adcc1e5 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c
@@ -171,7 +171,7 @@ static int mlx5_lag_mpesw_queue_work(struct mlx5_core_dev *dev,
if (!ldev)
return 0;
- work = kzalloc(sizeof(*work), GFP_KERNEL);
+ work = kzalloc_obj(*work, GFP_KERNEL);
if (!work)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/port_sel.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/port_sel.c
index d832a12ffec0..63071fcb3a51 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lag/port_sel.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/port_sel.c
@@ -308,7 +308,7 @@ mlx5_lag_create_definer(struct mlx5_lag *ldev, enum netdev_lag_hash hash,
return ERR_PTR(-EINVAL);
dev = ldev->pf[first_idx].dev;
- lag_definer = kzalloc(sizeof(*lag_definer), GFP_KERNEL);
+ lag_definer = kzalloc_obj(*lag_definer, GFP_KERNEL);
if (!lag_definer)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c
index 129725159a93..004077710a34 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c
@@ -311,7 +311,7 @@ struct mlx5_aso *mlx5_aso_create(struct mlx5_core_dev *mdev, u32 pdn)
struct mlx5_aso *aso;
int err;
- aso = kzalloc(sizeof(*aso), GFP_KERNEL);
+ aso = kzalloc_obj(*aso, GFP_KERNEL);
if (!aso)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
index 0ba0ef8bae42..6067d3ac3cb8 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
@@ -1082,9 +1082,8 @@ static void mlx5_init_pin_config(struct mlx5_core_dev *mdev)
return;
clock->ptp_info.pin_config =
- kcalloc(clock->ptp_info.n_pins,
- sizeof(*clock->ptp_info.pin_config),
- GFP_KERNEL);
+ kzalloc_objs(*clock->ptp_info.pin_config,
+ clock->ptp_info.n_pins, GFP_KERNEL);
if (!clock->ptp_info.pin_config)
return;
clock->ptp_info.enable = mlx5_ptp_enable;
@@ -1407,7 +1406,7 @@ static int mlx5_clock_alloc(struct mlx5_core_dev *mdev, bool shared)
struct mlx5_clock_priv *cpriv;
struct mlx5_clock *clock;
- cpriv = kzalloc(sizeof(*cpriv), GFP_KERNEL);
+ cpriv = kzalloc_obj(*cpriv, GFP_KERNEL);
if (!cpriv)
return -ENOMEM;
@@ -1604,7 +1603,7 @@ int mlx5_init_clock(struct mlx5_core_dev *mdev)
return 0;
}
- clock_state = kzalloc(sizeof(*clock_state), GFP_KERNEL);
+ clock_state = kzalloc_obj(*clock_state, GFP_KERNEL);
if (!clock_state)
return -ENOMEM;
clock_state->mdev = mdev;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/crypto.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/crypto.c
index 3a94b8f8031e..b47e828406f9 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/crypto.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/crypto.c
@@ -293,7 +293,7 @@ mlx5_crypto_dek_bulk_create(struct mlx5_crypto_dek_pool *pool)
int num_deks, base_obj_id;
int err;
- bulk = kzalloc(sizeof(*bulk), GFP_KERNEL);
+ bulk = kzalloc_obj(*bulk, GFP_KERNEL);
if (!bulk)
return ERR_PTR(-ENOMEM);
@@ -611,7 +611,7 @@ struct mlx5_crypto_dek *mlx5_crypto_dek_create(struct mlx5_crypto_dek_pool *dek_
int obj_offset;
int err;
- dek = kzalloc(sizeof(*dek), GFP_KERNEL);
+ dek = kzalloc_obj(*dek, GFP_KERNEL);
if (!dek)
return ERR_PTR(-ENOMEM);
@@ -683,7 +683,7 @@ mlx5_crypto_dek_pool_create(struct mlx5_core_dev *mdev, int key_purpose)
{
struct mlx5_crypto_dek_pool *pool;
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return ERR_PTR(-ENOMEM);
@@ -748,7 +748,7 @@ struct mlx5_crypto_dek_priv *mlx5_crypto_dek_init(struct mlx5_core_dev *mdev)
if (!MLX5_CAP_CRYPTO(mdev, log_dek_max_alloc))
return NULL;
- dek_priv = kzalloc(sizeof(*dek_priv), GFP_KERNEL);
+ dek_priv = kzalloc_obj(*dek_priv, GFP_KERNEL);
if (!dek_priv)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
index e749618229bc..d681c063be4e 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c
@@ -64,7 +64,7 @@ mlx5_devcom_dev_alloc(struct mlx5_core_dev *dev)
{
struct mlx5_devcom_dev *devc;
- devc = kzalloc(sizeof(*devc), GFP_KERNEL);
+ devc = kzalloc_obj(*devc, GFP_KERNEL);
if (!devc)
return NULL;
@@ -120,7 +120,7 @@ mlx5_devcom_comp_alloc(u64 id, const struct mlx5_devcom_match_attr *attr,
{
struct mlx5_devcom_comp *comp;
- comp = kzalloc(sizeof(*comp), GFP_KERNEL);
+ comp = kzalloc_obj(*comp, GFP_KERNEL);
if (!comp)
return NULL;
@@ -158,7 +158,7 @@ devcom_alloc_comp_dev(struct mlx5_devcom_dev *devc,
{
struct mlx5_devcom_comp_dev *devcom;
- devcom = kzalloc(sizeof(*devcom), GFP_KERNEL);
+ devcom = kzalloc_obj(*devcom, GFP_KERNEL);
if (!devcom)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/dm.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/dm.c
index 8115071c34a4..b6fc7ca4bcc0 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/dm.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/dm.c
@@ -28,7 +28,7 @@ struct mlx5_dm *mlx5_dm_create(struct mlx5_core_dev *dev)
if (!(MLX5_CAP_GEN_64(dev, general_obj_types) & MLX5_GENERAL_OBJ_TYPES_CAP_SW_ICM))
return NULL;
- dm = kzalloc(sizeof(*dm), GFP_KERNEL);
+ dm = kzalloc_obj(*dm, GFP_KERNEL);
if (!dm)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c
index 0a3c260af377..d8242edec30f 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c
@@ -314,7 +314,7 @@ mlx5_chains_create_chain(struct mlx5_fs_chains *chains, u32 chain)
struct fs_chain *chain_s = NULL;
int err;
- chain_s = kvzalloc(sizeof(*chain_s), GFP_KERNEL);
+ chain_s = kvzalloc_obj(*chain_s, GFP_KERNEL);
if (!chain_s)
return ERR_PTR(-ENOMEM);
@@ -481,7 +481,7 @@ mlx5_chains_create_prio(struct mlx5_fs_chains *chains,
if (IS_ERR(chain_s))
return ERR_CAST(chain_s);
- prio_s = kvzalloc(sizeof(*prio_s), GFP_KERNEL);
+ prio_s = kvzalloc_obj(*prio_s, GFP_KERNEL);
flow_group_in = kvzalloc(inlen, GFP_KERNEL);
if (!prio_s || !flow_group_in) {
err = -ENOMEM;
@@ -728,7 +728,7 @@ mlx5_chains_init(struct mlx5_core_dev *dev, struct mlx5_chains_attr *attr)
struct mlx5_fs_chains *chains;
int err;
- chains = kzalloc(sizeof(*chains), GFP_KERNEL);
+ chains = kzalloc_obj(*chains, GFP_KERNEL);
if (!chains)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_ttc.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_ttc.c
index 7adad784ad46..feed745cddab 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_ttc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_ttc.c
@@ -359,7 +359,7 @@ mlx5_generate_ttc_rule(struct mlx5_core_dev *dev, struct mlx5_flow_table *ft,
struct mlx5_flow_spec *spec;
int err = 0;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return ERR_PTR(-ENOMEM);
@@ -536,7 +536,7 @@ static int mlx5_create_ttc_table_groups(struct mlx5_ttc_table *ttc,
int err;
u8 *mc;
- ttc->g = kcalloc(groups->num_groups, sizeof(*ttc->g), GFP_KERNEL);
+ ttc->g = kzalloc_objs(*ttc->g, groups->num_groups, GFP_KERNEL);
if (!ttc->g)
return -ENOMEM;
in = kvzalloc(inlen, GFP_KERNEL);
@@ -630,7 +630,7 @@ mlx5_generate_inner_ttc_rule(struct mlx5_core_dev *dev,
int err = 0;
u8 ipv;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return ERR_PTR(-ENOMEM);
@@ -713,7 +713,7 @@ static int mlx5_create_inner_ttc_table_groups(struct mlx5_ttc_table *ttc,
int err;
u8 *mc;
- ttc->g = kcalloc(groups->num_groups, sizeof(*ttc->g), GFP_KERNEL);
+ ttc->g = kzalloc_objs(*ttc->g, groups->num_groups, GFP_KERNEL);
if (!ttc->g)
return -ENOMEM;
in = kvzalloc(inlen, GFP_KERNEL);
@@ -804,7 +804,7 @@ struct mlx5_ttc_table *mlx5_create_inner_ttc_table(struct mlx5_core_dev *dev,
return ERR_PTR(-EINVAL);
}
- ttc = kvzalloc(sizeof(*ttc), GFP_KERNEL);
+ ttc = kvzalloc_obj(*ttc, GFP_KERNEL);
if (!ttc)
return ERR_PTR(-ENOMEM);
@@ -882,7 +882,7 @@ struct mlx5_ttc_table *mlx5_create_ttc_table(struct mlx5_core_dev *dev,
return ERR_PTR(-EINVAL);
}
- ttc = kvzalloc(sizeof(*ttc), GFP_KERNEL);
+ ttc = kvzalloc_obj(*ttc, GFP_KERNEL);
if (!ttc)
return ERR_PTR(-ENOMEM);
@@ -1029,7 +1029,7 @@ mlx5_ttc_create_ipsec_outer_rule(struct mlx5_ttc_table *ttc,
if (err)
return ERR_PTR(err);
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return ERR_PTR(-ENOMEM);
@@ -1070,7 +1070,7 @@ mlx5_ttc_create_ipsec_inner_rule(struct mlx5_ttc_table *ttc,
if (err)
return ERR_PTR(err);
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/geneve.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/geneve.c
index 6dc83e871cd7..7664a74cbf18 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/geneve.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/geneve.c
@@ -134,8 +134,7 @@ void mlx5_geneve_tlv_option_del(struct mlx5_geneve *geneve)
struct mlx5_geneve *mlx5_geneve_create(struct mlx5_core_dev *mdev)
{
- struct mlx5_geneve *geneve =
- kzalloc(sizeof(*geneve), GFP_KERNEL);
+ struct mlx5_geneve *geneve = kzalloc_obj(*geneve, GFP_KERNEL);
if (!geneve)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c
index 30564d9b00e9..6b3f906653bd 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c
@@ -42,7 +42,7 @@ struct mlx5_hv_vhca *mlx5_hv_vhca_create(struct mlx5_core_dev *dev)
{
struct mlx5_hv_vhca *hv_vhca;
- hv_vhca = kzalloc(sizeof(*hv_vhca), GFP_KERNEL);
+ hv_vhca = kzalloc_obj(*hv_vhca, GFP_KERNEL);
if (!hv_vhca)
return ERR_PTR(-ENOMEM);
@@ -98,7 +98,7 @@ void mlx5_hv_vhca_invalidate(void *context, u64 block_mask)
struct mlx5_hv_vhca *hv_vhca = (struct mlx5_hv_vhca *)context;
struct mlx5_hv_vhca_work *work;
- work = kzalloc(sizeof(*work), GFP_ATOMIC);
+ work = kzalloc_obj(*work, GFP_ATOMIC);
if (!work)
return;
@@ -152,7 +152,7 @@ mlx5_hv_vhca_control_agent_invalidate(struct mlx5_hv_vhca_agent *agent,
u32 capabilities = 0;
int err;
- block = kzalloc(sizeof(*block), GFP_KERNEL);
+ block = kzalloc_obj(*block, GFP_KERNEL);
if (!block)
return;
@@ -273,7 +273,7 @@ mlx5_hv_vhca_agent_create(struct mlx5_hv_vhca *hv_vhca,
}
mutex_unlock(&hv_vhca->agents_lock);
- agent = kzalloc(sizeof(*agent), GFP_KERNEL);
+ agent = kzalloc_obj(*agent, GFP_KERNEL);
if (!agent)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.c
index d524f0220513..ddde75bd3012 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.c
@@ -139,7 +139,7 @@ ipsec_fs_roce_rx_rule_setup(struct mlx5_core_dev *mdev,
struct mlx5_flow_spec *spec;
int err = 0;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -242,7 +242,7 @@ static int ipsec_fs_roce_tx_mpv_rule_setup(struct mlx5_core_dev *mdev,
struct mlx5_flow_spec *spec;
int err = 0;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -850,7 +850,7 @@ struct mlx5_ipsec_fs *mlx5_ipsec_fs_roce_init(struct mlx5_core_dev *mdev,
return NULL;
}
- roce_ipsec = kzalloc(sizeof(*roce_ipsec), GFP_KERNEL);
+ roce_ipsec = kzalloc_obj(*roce_ipsec, GFP_KERNEL);
if (!roce_ipsec)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.c
index e6be2f01daf4..eafd6bcf1675 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/macsec_fs.c
@@ -267,7 +267,7 @@ static int macsec_fs_tx_create_crypto_table_groups(struct mlx5_macsec_flow_table
int err;
u8 *mc;
- ft->g = kcalloc(TX_CRYPTO_TABLE_NUM_GROUPS, sizeof(*ft->g), GFP_KERNEL);
+ ft->g = kzalloc_objs(*ft->g, TX_CRYPTO_TABLE_NUM_GROUPS, GFP_KERNEL);
if (!ft->g)
return -ENOMEM;
in = kvzalloc(inlen, GFP_KERNEL);
@@ -404,7 +404,7 @@ static int macsec_fs_tx_create(struct mlx5_macsec_fs *macsec_fs)
if (!ns)
return -ENOMEM;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -713,7 +713,7 @@ static int macsec_fs_id_add(struct list_head *macsec_devices_list, u32 fs_id,
rcu_read_unlock();
}
- fs_id_iter = kzalloc(sizeof(*fs_id_iter), GFP_KERNEL);
+ fs_id_iter = kzalloc_obj(*fs_id_iter, GFP_KERNEL);
if (!fs_id_iter)
return -ENOMEM;
@@ -725,7 +725,7 @@ static int macsec_fs_id_add(struct list_head *macsec_devices_list, u32 fs_id,
}
if (!macsec_device) { /* first time adding a SA to that device */
- macsec_device = kzalloc(sizeof(*macsec_device), GFP_KERNEL);
+ macsec_device = kzalloc_obj(*macsec_device, GFP_KERNEL);
if (!macsec_device) {
err = -ENOMEM;
goto err_alloc_dev;
@@ -813,7 +813,7 @@ macsec_fs_tx_add_rule(struct mlx5_macsec_fs *macsec_fs,
tx_tables = &tx_fs->tables;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return NULL;
@@ -821,7 +821,7 @@ macsec_fs_tx_add_rule(struct mlx5_macsec_fs *macsec_fs,
if (err)
goto out_spec;
- macsec_rule = kzalloc(sizeof(*macsec_rule), GFP_KERNEL);
+ macsec_rule = kzalloc_obj(*macsec_rule, GFP_KERNEL);
if (!macsec_rule) {
macsec_fs_tx_ft_put(macsec_fs);
goto out_spec;
@@ -931,7 +931,7 @@ static int macsec_fs_tx_init(struct mlx5_macsec_fs *macsec_fs)
struct mlx5_fc *flow_counter;
int err;
- tx_fs = kzalloc(sizeof(*tx_fs), GFP_KERNEL);
+ tx_fs = kzalloc_obj(*tx_fs, GFP_KERNEL);
if (!tx_fs)
return -ENOMEM;
@@ -1055,7 +1055,7 @@ static int macsec_fs_rx_create_crypto_table_groups(struct mlx5_macsec_flow_table
int err;
u8 *mc;
- ft->g = kcalloc(RX_CRYPTO_TABLE_NUM_GROUPS, sizeof(*ft->g), GFP_KERNEL);
+ ft->g = kzalloc_objs(*ft->g, RX_CRYPTO_TABLE_NUM_GROUPS, GFP_KERNEL);
if (!ft->g)
return -ENOMEM;
@@ -1327,7 +1327,7 @@ static int macsec_fs_rx_roce_jump_to_rdma_rules_create(struct mlx5_macsec_fs *ma
struct mlx5_flow_spec *spec;
int err;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -1510,7 +1510,7 @@ static int macsec_fs_rx_create(struct mlx5_macsec_fs *macsec_fs)
if (!ns)
return -ENOMEM;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -1739,7 +1739,7 @@ macsec_fs_rx_add_rule(struct mlx5_macsec_fs *macsec_fs,
struct mlx5_flow_spec *spec;
int err = 0;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return NULL;
@@ -1747,7 +1747,7 @@ macsec_fs_rx_add_rule(struct mlx5_macsec_fs *macsec_fs,
if (err)
goto out_spec;
- macsec_rule = kzalloc(sizeof(*macsec_rule), GFP_KERNEL);
+ macsec_rule = kzalloc_obj(*macsec_rule, GFP_KERNEL);
if (!macsec_rule) {
macsec_fs_rx_ft_put(macsec_fs);
goto out_spec;
@@ -1847,7 +1847,7 @@ static int macsec_fs_rx_init(struct mlx5_macsec_fs *macsec_fs)
struct mlx5_fc *flow_counter;
int err;
- rx_fs = kzalloc(sizeof(*rx_fs), GFP_KERNEL);
+ rx_fs = kzalloc_obj(*rx_fs, GFP_KERNEL);
if (!rx_fs)
return -ENOMEM;
@@ -2132,11 +2132,11 @@ static int mlx5_macsec_fs_add_roce_rule_rx(struct mlx5_macsec_fs *macsec_fs, u32
struct mlx5_flow_spec *spec;
int err = 0;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
- rx_rule = kzalloc(sizeof(*rx_rule), GFP_KERNEL);
+ rx_rule = kzalloc_obj(*rx_rule, GFP_KERNEL);
if (!rx_rule) {
err = -ENOMEM;
goto out;
@@ -2201,11 +2201,11 @@ static int mlx5_macsec_fs_add_roce_rule_tx(struct mlx5_macsec_fs *macsec_fs, u32
struct mlx5_flow_spec *spec;
int err = 0;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
- tx_rule = kzalloc(sizeof(*tx_rule), GFP_KERNEL);
+ tx_rule = kzalloc_obj(*tx_rule, GFP_KERNEL);
if (!tx_rule) {
err = -ENOMEM;
goto out;
@@ -2361,7 +2361,7 @@ mlx5_macsec_fs_init(struct mlx5_core_dev *mdev)
struct mlx5_macsec_fs *macsec_fs;
int err;
- macsec_fs = kzalloc(sizeof(*macsec_fs), GFP_KERNEL);
+ macsec_fs = kzalloc_obj(*macsec_fs, GFP_KERNEL);
if (!macsec_fs)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c
index 4a88a42ae4f7..5352f9b61415 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c
@@ -103,7 +103,7 @@ int mlx5_mpfs_init(struct mlx5_core_dev *dev)
if (!MLX5_ESWITCH_MANAGER(dev) || l2table_size == 1)
return 0;
- mpfs = kzalloc(sizeof(*mpfs), GFP_KERNEL);
+ mpfs = kzalloc_obj(*mpfs, GFP_KERNEL);
if (!mpfs)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.h b/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.h
index 9c63838ce1f3..e864e5c430e0 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.h
@@ -72,7 +72,7 @@ struct l2addr_node {
int ix = MLX5_L2_ADDR_HASH(mac); \
type *ptr = NULL; \
\
- ptr = kzalloc(sizeof(type), gfp); \
+ ptr = kzalloc_obj(type, gfp); \
if (ptr) { \
ether_addr_copy(ptr->node.addr, mac); \
hlist_add_head(&ptr->node.hlist, &(hash)[ix]);\
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/sd.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/sd.c
index 8e17daae48af..ca99b4375b66 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/sd.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/sd.c
@@ -187,7 +187,7 @@ static int sd_init(struct mlx5_core_dev *dev)
return 0;
}
- sd = kzalloc(sizeof(*sd), GFP_KERNEL);
+ sd = kzalloc_obj(*sd, GFP_KERNEL);
if (!sd)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/st.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/st.c
index ef06fe6cbb51..2de8a80415f1 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/st.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/st.c
@@ -59,7 +59,7 @@ struct mlx5_st *mlx5_st_create(struct mlx5_core_dev *dev)
if (ret)
return NULL;
- st = kzalloc(sizeof(*st), GFP_KERNEL);
+ st = kzalloc_obj(*st, GFP_KERNEL);
if (!st)
goto end;
@@ -124,7 +124,7 @@ int mlx5_st_alloc_index(struct mlx5_core_dev *dev, enum tph_mem_type mem_type,
}
}
- idx_data = kzalloc(sizeof(*idx_data), GFP_KERNEL);
+ idx_data = kzalloc_obj(*idx_data, GFP_KERNEL);
if (!idx_data) {
ret = -ENOMEM;
goto end;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c
index e223e0e46433..5c2ebf74b6a5 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c
@@ -37,7 +37,7 @@ int mlx5_tout_init(struct mlx5_core_dev *dev)
{
int i;
- dev->timeouts = kmalloc(sizeof(*dev->timeouts), GFP_KERNEL);
+ dev->timeouts = kmalloc_obj(*dev->timeouts, GFP_KERNEL);
if (!dev->timeouts)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/vxlan.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/vxlan.c
index 304912637c35..906d1ce3879f 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/vxlan.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/vxlan.c
@@ -103,7 +103,7 @@ int mlx5_vxlan_add_port(struct mlx5_vxlan *vxlan, u16 port)
struct mlx5_vxlan_port *vxlanp;
int ret;
- vxlanp = kzalloc(sizeof(*vxlanp), GFP_KERNEL);
+ vxlanp = kzalloc_obj(*vxlanp, GFP_KERNEL);
if (!vxlanp)
return -ENOMEM;
vxlanp->udp_port = port;
@@ -151,7 +151,7 @@ struct mlx5_vxlan *mlx5_vxlan_create(struct mlx5_core_dev *mdev)
if (!MLX5_CAP_ETH(mdev, tunnel_stateless_vxlan) || !mlx5_core_is_pf(mdev))
return ERR_PTR(-EOPNOTSUPP);
- vxlan = kzalloc(sizeof(*vxlan), GFP_KERNEL);
+ vxlan = kzalloc_obj(*vxlan, GFP_KERNEL);
if (!vxlan)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c
index 55b4e0cceae2..a6c838cce13c 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c
@@ -1792,7 +1792,7 @@ static int mlx5_hca_caps_alloc(struct mlx5_core_dev *dev)
int i;
for (i = 0; i < ARRAY_SIZE(types); i++) {
- cap = kzalloc(sizeof(*cap), GFP_KERNEL);
+ cap = kzalloc_obj(*cap, GFP_KERNEL);
if (!cap)
goto err;
type = types[i];
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c b/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
index cd68c4b2c0bf..91aa78052462 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
@@ -107,7 +107,7 @@ static struct rb_root *page_root_per_function(struct mlx5_core_dev *dev, u32 fun
if (root)
return root;
- root = kzalloc(sizeof(*root), GFP_KERNEL);
+ root = kzalloc_obj(*root, GFP_KERNEL);
if (!root)
return ERR_PTR(-ENOMEM);
@@ -148,7 +148,7 @@ static int insert_page(struct mlx5_core_dev *dev, u64 addr, struct page *page, u
return -EEXIST;
}
- nfp = kzalloc(sizeof(*nfp), GFP_KERNEL);
+ nfp = kzalloc_obj(*nfp, GFP_KERNEL);
if (!nfp)
return -ENOMEM;
@@ -639,7 +639,7 @@ static int req_pages_handler(struct notifier_block *nb,
RELEASE_ALL_PAGES_MASK;
mlx5_core_dbg(dev, "page request for func 0x%x, npages %d, release_all %d\n",
func_id, npages, release_all);
- req = kzalloc(sizeof(*req), GFP_ATOMIC);
+ req = kzalloc_obj(*req, GFP_ATOMIC);
if (!req) {
mlx5_core_warn(dev, "failed to allocate pages request\n");
return NOTIFY_DONE;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c b/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c
index aa3b5878e3da..c23d2c710256 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c
@@ -261,7 +261,7 @@ struct mlx5_irq *mlx5_irq_alloc(struct mlx5_irq_pool *pool, int i,
struct mlx5_irq *irq;
int err;
- irq = kzalloc(sizeof(*irq), GFP_KERNEL);
+ irq = kzalloc_obj(*irq, GFP_KERNEL);
if (!irq || !zalloc_cpumask_var(&irq->mask, GFP_KERNEL)) {
kfree(irq);
return ERR_PTR(-ENOMEM);
@@ -471,7 +471,7 @@ struct mlx5_irq *mlx5_ctrl_irq_request(struct mlx5_core_dev *dev)
struct irq_affinity_desc *af_desc;
struct mlx5_irq *irq;
- af_desc = kvzalloc(sizeof(*af_desc), GFP_KERNEL);
+ af_desc = kvzalloc_obj(*af_desc, GFP_KERNEL);
if (!af_desc)
return ERR_PTR(-ENOMEM);
@@ -556,7 +556,7 @@ struct mlx5_irq *mlx5_irq_request_vector(struct mlx5_core_dev *dev, u16 cpu,
struct irq_affinity_desc *af_desc;
struct mlx5_irq *irq;
- af_desc = kvzalloc(sizeof(*af_desc), GFP_KERNEL);
+ af_desc = kvzalloc_obj(*af_desc, GFP_KERNEL);
if (!af_desc)
return ERR_PTR(-ENOMEM);
@@ -578,7 +578,7 @@ static struct mlx5_irq_pool *
irq_pool_alloc(struct mlx5_core_dev *dev, int start, int size, char *name,
u32 min_threshold, u32 max_threshold)
{
- struct mlx5_irq_pool *pool = kvzalloc(sizeof(*pool), GFP_KERNEL);
+ struct mlx5_irq_pool *pool = kvzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/rdma.c b/drivers/net/ethernet/mellanox/mlx5/core/rdma.c
index 5c552b71e371..aebb67a7964d 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/rdma.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/rdma.c
@@ -41,7 +41,7 @@ static int mlx5_rdma_enable_roce_steering(struct mlx5_core_dev *dev)
flow_group_in = kvzalloc(inlen, GFP_KERNEL);
if (!flow_group_in)
return -ENOMEM;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec) {
kvfree(flow_group_in);
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/rl.c b/drivers/net/ethernet/mellanox/mlx5/core/rl.c
index 39a209b9b684..477526f04cd9 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/rl.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/rl.c
@@ -247,8 +247,8 @@ static int mlx5_rl_table_get(struct mlx5_rl_table *table)
return 0;
}
- table->rl_entry = kcalloc(table->max_size, sizeof(struct mlx5_rl_entry),
- GFP_KERNEL);
+ table->rl_entry = kzalloc_objs(struct mlx5_rl_entry, table->max_size,
+ GFP_KERNEL);
if (!table->rl_entry)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c b/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c
index f310bde3d11f..e41da4da4c4f 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c
@@ -99,7 +99,7 @@ static void mlx5_sf_dev_add(struct mlx5_core_dev *dev, u16 sf_index, u16 fn_id,
goto add_err;
}
- sf_dev = kzalloc(sizeof(*sf_dev), GFP_KERNEL);
+ sf_dev = kzalloc_obj(*sf_dev, GFP_KERNEL);
if (!sf_dev) {
mlx5_adev_idx_free(id);
err = -ENOMEM;
@@ -280,7 +280,7 @@ static void mlx5_sf_dev_queue_active_works(struct work_struct *_work)
continue;
sw_func_id = MLX5_GET(query_vhca_state_out, out, vhca_state_context.sw_function_id);
- work_ctx = kzalloc(sizeof(*work_ctx), GFP_KERNEL);
+ work_ctx = kzalloc_obj(*work_ctx, GFP_KERNEL);
if (!work_ctx)
return;
@@ -336,7 +336,7 @@ void mlx5_sf_dev_table_create(struct mlx5_core_dev *dev)
if (!mlx5_sf_dev_supported(dev))
return;
- table = kzalloc(sizeof(*table), GFP_KERNEL);
+ table = kzalloc_obj(*table, GFP_KERNEL);
if (!table) {
err = -ENOMEM;
goto table_err;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/sf/devlink.c b/drivers/net/ethernet/mellanox/mlx5/core/sf/devlink.c
index b82323b8449e..894567e905b4 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/sf/devlink.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/sf/devlink.c
@@ -70,7 +70,7 @@ mlx5_sf_alloc(struct mlx5_sf_table *table, struct mlx5_eswitch *esw,
goto id_err;
}
- sf = kzalloc(sizeof(*sf), GFP_KERNEL);
+ sf = kzalloc_obj(*sf, GFP_KERNEL);
if (!sf) {
err = -ENOMEM;
goto alloc_err;
@@ -509,7 +509,7 @@ int mlx5_sf_table_init(struct mlx5_core_dev *dev)
if (!mlx5_sf_table_supported(dev) || !mlx5_vhca_event_supported(dev))
return 0;
- table = kzalloc(sizeof(*table), GFP_KERNEL);
+ table = kzalloc_obj(*table, GFP_KERNEL);
if (!table)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/sf/hw_table.c b/drivers/net/ethernet/mellanox/mlx5/core/sf/hw_table.c
index bd968f3b3855..b50a50f7d909 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/sf/hw_table.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/sf/hw_table.c
@@ -233,7 +233,7 @@ static int mlx5_sf_hw_table_hwc_init(struct mlx5_sf_hwc_table *hwc, u16 max_fn,
if (!max_fn)
return 0;
- sfs = kcalloc(max_fn, sizeof(*sfs), GFP_KERNEL);
+ sfs = kzalloc_objs(*sfs, max_fn, GFP_KERNEL);
if (!sfs)
return -ENOMEM;
@@ -298,7 +298,7 @@ int mlx5_sf_hw_table_init(struct mlx5_core_dev *dev)
if (!max_fn && !max_ext_fn)
return 0;
- table = kzalloc(sizeof(*table), GFP_KERNEL);
+ table = kzalloc_obj(*table, GFP_KERNEL);
if (!table) {
err = -ENOMEM;
goto alloc_err;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/sf/vhca_event.c b/drivers/net/ethernet/mellanox/mlx5/core/sf/vhca_event.c
index b04cf6cf8956..809643870526 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/sf/vhca_event.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/sf/vhca_event.c
@@ -114,7 +114,7 @@ mlx5_vhca_state_change_notifier(struct notifier_block *nb, unsigned long type, v
struct mlx5_eqe *eqe = data;
int wq_idx;
- work = kzalloc(sizeof(*work), GFP_ATOMIC);
+ work = kzalloc_obj(*work, GFP_ATOMIC);
if (!work)
return NOTIFY_DONE;
INIT_WORK(&work->work, &mlx5_vhca_state_work_handler);
@@ -153,7 +153,7 @@ int mlx5_vhca_event_init(struct mlx5_core_dev *dev)
if (!mlx5_vhca_event_supported(dev))
return 0;
- events = kzalloc(sizeof(*events), GFP_KERNEL);
+ events = kzalloc_obj(*events, GFP_KERNEL);
if (!events)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/sriov.c b/drivers/net/ethernet/mellanox/mlx5/core/sriov.c
index a2fc937d5461..143278b70a64 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/sriov.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/sriov.c
@@ -47,7 +47,7 @@ static int sriov_restore_guids(struct mlx5_core_dev *dev, int vf, u16 func_id)
if (sriov->vfs_ctx[vf].node_guid ||
sriov->vfs_ctx[vf].port_guid ||
sriov->vfs_ctx[vf].policy != MLX5_POLICY_INVALID) {
- in = kzalloc(sizeof(*in), GFP_KERNEL);
+ in = kzalloc_obj(*in, GFP_KERNEL);
if (!in)
return -ENOMEM;
@@ -305,7 +305,7 @@ int mlx5_sriov_init(struct mlx5_core_dev *dev)
sriov->max_vfs = mlx5_get_max_vfs(dev);
sriov->num_vfs = pci_num_vf(pdev);
sriov->max_ec_vfs = mlx5_core_ec_sriov_enabled(dev) ? pci_sriov_get_totalvfs(dev->pdev) : 0;
- sriov->vfs_ctx = kcalloc(total_vfs, sizeof(*sriov->vfs_ctx), GFP_KERNEL);
+ sriov->vfs_ctx = kzalloc_objs(*sriov->vfs_ctx, total_vfs, GFP_KERNEL);
if (!sriov->vfs_ctx)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/action.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/action.c
index fe56b59e24c5..d8a003119be5 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/action.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/action.c
@@ -92,7 +92,7 @@ static int hws_action_get_shared_stc_nic(struct mlx5hws_context *ctx,
return 0;
}
- shared_stc = kzalloc(sizeof(*shared_stc), GFP_KERNEL);
+ shared_stc = kzalloc_obj(*shared_stc, GFP_KERNEL);
if (!shared_stc) {
ret = -ENOMEM;
goto unlock_and_out;
@@ -632,7 +632,7 @@ hws_action_create_generic_bulk(struct mlx5hws_context *ctx,
if (!hws_action_validate_hws_action(ctx, flags))
return NULL;
- action = kcalloc(bulk_sz, sizeof(*action), GFP_KERNEL);
+ action = kzalloc_objs(*action, bulk_sz, GFP_KERNEL);
if (!action)
return NULL;
@@ -1383,7 +1383,7 @@ mlx5hws_action_create_dest_array(struct mlx5hws_context *ctx, size_t num_dest,
return NULL;
}
- dest_list = kcalloc(num_dest, sizeof(*dest_list), GFP_KERNEL);
+ dest_list = kzalloc_objs(*dest_list, num_dest, GFP_KERNEL);
if (!dest_list)
return NULL;
@@ -1477,7 +1477,7 @@ mlx5hws_action_create_insert_header(struct mlx5hws_context *ctx,
if (!action)
return NULL;
- reformat_hdrs = kcalloc(num_of_hdrs, sizeof(*reformat_hdrs), GFP_KERNEL);
+ reformat_hdrs = kzalloc_objs(*reformat_hdrs, num_of_hdrs, GFP_KERNEL);
if (!reformat_hdrs)
goto free_action;
@@ -1557,7 +1557,7 @@ hws_action_create_dest_match_range_definer(struct mlx5hws_context *ctx)
__be32 *tag;
int ret;
- definer = kzalloc(sizeof(*definer), GFP_KERNEL);
+ definer = kzalloc_obj(*definer, GFP_KERNEL);
if (!definer)
return NULL;
@@ -1600,7 +1600,7 @@ hws_action_create_dest_match_range_table(struct mlx5hws_context *ctx,
return NULL;
}
- table_ste = kzalloc(sizeof(*table_ste), GFP_KERNEL);
+ table_ste = kzalloc_obj(*table_ste, GFP_KERNEL);
if (!table_ste)
return NULL;
@@ -2019,7 +2019,7 @@ __must_hold(&ctx->ctrl_lock)
return 0;
}
- default_stc = kzalloc(sizeof(*default_stc), GFP_KERNEL);
+ default_stc = kzalloc_obj(*default_stc, GFP_KERNEL);
if (!default_stc)
return -ENOMEM;
@@ -2621,7 +2621,7 @@ mlx5hws_action_template_create(enum mlx5hws_action_type action_type[])
u8 num_actions = 0;
int i;
- at = kzalloc(sizeof(*at), GFP_KERNEL);
+ at = kzalloc_obj(*at, GFP_KERNEL);
if (!at)
return NULL;
@@ -2629,7 +2629,8 @@ mlx5hws_action_template_create(enum mlx5hws_action_type action_type[])
;
at->num_actions = num_actions - 1;
- at->action_type_arr = kcalloc(num_actions, sizeof(*action_type), GFP_KERNEL);
+ at->action_type_arr = kzalloc_objs(*action_type, num_actions,
+ GFP_KERNEL);
if (!at->action_type_arr)
goto free_at;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/action_ste_pool.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/action_ste_pool.c
index 5766a9c82f96..f5ab9f3c694b 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/action_ste_pool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/action_ste_pool.c
@@ -141,7 +141,7 @@ hws_action_ste_table_alloc(struct mlx5hws_action_ste_pool_element *parent_elem)
MLX5HWS_ACTION_STE_TABLE_INIT_LOG_SZ,
MLX5HWS_ACTION_STE_TABLE_MAX_LOG_SZ);
- action_tbl = kzalloc(sizeof(*action_tbl), GFP_KERNEL);
+ action_tbl = kzalloc_obj(*action_tbl, GFP_KERNEL);
if (!action_tbl)
return ERR_PTR(-ENOMEM);
@@ -329,7 +329,7 @@ int mlx5hws_action_ste_pool_init(struct mlx5hws_context *ctx)
size_t queues = ctx->queues;
int i, err;
- pool = kcalloc(queues, sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_objs(*pool, queues, GFP_KERNEL);
if (!pool)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
index b9aef80ba094..147e176b6f9a 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
@@ -54,7 +54,7 @@ struct mlx5hws_buddy_mem *mlx5hws_buddy_create(u32 max_order)
{
struct mlx5hws_buddy_mem *buddy;
- buddy = kzalloc(sizeof(*buddy), GFP_KERNEL);
+ buddy = kzalloc_obj(*buddy, GFP_KERNEL);
if (!buddy)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/bwc.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/bwc.c
index 6ef0c4be27e1..6f69b97a8c2b 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/bwc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/bwc.c
@@ -236,7 +236,8 @@ int mlx5hws_bwc_matcher_create_simple(struct mlx5hws_bwc_matcher *bwc_matcher,
struct mlx5hws_matcher_attr attr = {0};
int i;
- bwc_matcher->rules = kcalloc(bwc_queues, sizeof(*bwc_matcher->rules), GFP_KERNEL);
+ bwc_matcher->rules = kzalloc_objs(*bwc_matcher->rules, bwc_queues,
+ GFP_KERNEL);
if (!bwc_matcher->rules)
goto err;
@@ -253,8 +254,9 @@ int mlx5hws_bwc_matcher_create_simple(struct mlx5hws_bwc_matcher *bwc_matcher,
bwc_matcher->priority = priority;
bwc_matcher->size_of_at_array = MLX5HWS_BWC_MATCHER_ATTACH_AT_NUM;
- bwc_matcher->at = kcalloc(bwc_matcher->size_of_at_array,
- sizeof(*bwc_matcher->at), GFP_KERNEL);
+ bwc_matcher->at = kzalloc_objs(*bwc_matcher->at,
+ bwc_matcher->size_of_at_array,
+ GFP_KERNEL);
if (!bwc_matcher->at)
goto free_bwc_matcher_rules;
@@ -332,7 +334,7 @@ mlx5hws_bwc_matcher_create(struct mlx5hws_table *table,
return NULL;
}
- bwc_matcher = kzalloc(sizeof(*bwc_matcher), GFP_KERNEL);
+ bwc_matcher = kzalloc_obj(*bwc_matcher, GFP_KERNEL);
if (!bwc_matcher)
return NULL;
@@ -481,11 +483,11 @@ mlx5hws_bwc_rule_alloc(struct mlx5hws_bwc_matcher *bwc_matcher)
{
struct mlx5hws_bwc_rule *bwc_rule;
- bwc_rule = kzalloc(sizeof(*bwc_rule), GFP_KERNEL);
+ bwc_rule = kzalloc_obj(*bwc_rule, GFP_KERNEL);
if (unlikely(!bwc_rule))
goto out_err;
- bwc_rule->rule = kzalloc(sizeof(*bwc_rule->rule), GFP_KERNEL);
+ bwc_rule->rule = kzalloc_obj(*bwc_rule->rule, GFP_KERNEL);
if (unlikely(!bwc_rule->rule))
goto free_rule;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/cmd.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/cmd.c
index f22eaf506d28..25b8ad504acc 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/cmd.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/cmd.c
@@ -299,7 +299,7 @@ mlx5hws_cmd_forward_tbl_create(struct mlx5_core_dev *mdev,
struct mlx5hws_cmd_forward_tbl *tbl;
int ret;
- tbl = kzalloc(sizeof(*tbl), GFP_KERNEL);
+ tbl = kzalloc_obj(*tbl, GFP_KERNEL);
if (!tbl)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/context.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/context.c
index 428dae869706..6e5b2c1a8b0b 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/context.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/context.c
@@ -192,7 +192,7 @@ struct mlx5hws_context *mlx5hws_context_open(struct mlx5_core_dev *mdev,
struct mlx5hws_context *ctx;
int ret;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return NULL;
@@ -201,7 +201,7 @@ struct mlx5hws_context *mlx5hws_context_open(struct mlx5_core_dev *mdev,
mutex_init(&ctx->ctrl_lock);
xa_init(&ctx->peer_ctx_xa);
- ctx->caps = kzalloc(sizeof(*ctx->caps), GFP_KERNEL);
+ ctx->caps = kzalloc_obj(*ctx->caps, GFP_KERNEL);
if (!ctx->caps)
goto free_ctx;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.c
index 82fd122d4284..d5902cfa8146 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.c
@@ -1688,7 +1688,7 @@ hws_definer_alloc_compressed_fc(struct mlx5hws_definer_fc *fc)
u32 fc_sz = 0;
int i;
- compressed_fc = kcalloc(definer_size, sizeof(*compressed_fc), GFP_KERNEL);
+ compressed_fc = kzalloc_objs(*compressed_fc, definer_size, GFP_KERNEL);
if (!compressed_fc)
return NULL;
@@ -1731,7 +1731,7 @@ hws_definer_alloc_fc(struct mlx5hws_context *ctx,
struct mlx5hws_definer_fc *fc;
int i;
- fc = kcalloc(len, sizeof(*fc), GFP_KERNEL);
+ fc = kzalloc_objs(*fc, len, GFP_KERNEL);
if (!fc)
return NULL;
@@ -2139,7 +2139,7 @@ int mlx5hws_definer_init_cache(struct mlx5hws_definer_cache **cache)
{
struct mlx5hws_definer_cache *new_cache;
- new_cache = kzalloc(sizeof(*new_cache), GFP_KERNEL);
+ new_cache = kzalloc_obj(*new_cache, GFP_KERNEL);
if (!new_cache)
return -ENOMEM;
@@ -2183,7 +2183,7 @@ int mlx5hws_definer_get_obj(struct mlx5hws_context *ctx,
if (ret)
return -1;
- cached_definer = kzalloc(sizeof(*cached_definer), GFP_KERNEL);
+ cached_definer = kzalloc_obj(*cached_definer, GFP_KERNEL);
if (!cached_definer)
goto free_definer_obj;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws.c
index 6a4c4cccd643..d684a49900a5 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws.c
@@ -478,7 +478,7 @@ mlx5_fs_get_cached_hws_data(struct xarray *cache_xa, unsigned long index)
xa_lock(cache_xa);
fs_hws_data = xa_load(cache_xa, index);
if (!fs_hws_data) {
- fs_hws_data = kzalloc(sizeof(*fs_hws_data), GFP_ATOMIC);
+ fs_hws_data = kzalloc_obj(*fs_hws_data, GFP_ATOMIC);
if (!fs_hws_data) {
xa_unlock(cache_xa);
return NULL;
@@ -759,22 +759,22 @@ static int mlx5_fs_fte_get_hws_actions(struct mlx5_flow_root_namespace *ns,
int num_actions = 0;
int err;
- *ractions = kcalloc(MLX5_FLOW_CONTEXT_ACTION_MAX, sizeof(**ractions),
- GFP_KERNEL);
+ *ractions = kzalloc_objs(**ractions, MLX5_FLOW_CONTEXT_ACTION_MAX,
+ GFP_KERNEL);
if (!*ractions) {
err = -ENOMEM;
goto out_err;
}
- fs_actions = kcalloc(MLX5_FLOW_CONTEXT_ACTION_MAX,
- sizeof(*fs_actions), GFP_KERNEL);
+ fs_actions = kzalloc_objs(*fs_actions, MLX5_FLOW_CONTEXT_ACTION_MAX,
+ GFP_KERNEL);
if (!fs_actions) {
err = -ENOMEM;
goto free_actions_alloc;
}
- dest_actions = kcalloc(MLX5_FLOW_CONTEXT_ACTION_MAX,
- sizeof(*dest_actions), GFP_KERNEL);
+ dest_actions = kzalloc_objs(*dest_actions, MLX5_FLOW_CONTEXT_ACTION_MAX,
+ GFP_KERNEL);
if (!dest_actions) {
err = -ENOMEM;
goto free_fs_actions_alloc;
@@ -1239,7 +1239,7 @@ mlx5_fs_get_pr_encap_pool(struct mlx5_core_dev *dev, struct xarray *pr_pools,
if (pr_pool)
return pr_pool;
- pr_pool = kzalloc(sizeof(*pr_pool), GFP_KERNEL);
+ pr_pool = kzalloc_obj(*pr_pool, GFP_KERNEL);
if (!pr_pool)
return ERR_PTR(-ENOMEM);
err = mlx5_fs_hws_pr_pool_init(pr_pool, dev, size, reformat_type);
@@ -1430,7 +1430,7 @@ mlx5_fs_create_mh_pool(struct mlx5_core_dev *dev,
struct mlx5_fs_pool *pool;
int err;
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return ERR_PTR(-ENOMEM);
err = mlx5_fs_hws_mh_pool_init(pool, dev, pattern);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws_pools.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws_pools.c
index 5bc8e97ecf1c..d24eb6723b85 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws_pools.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws_pools.c
@@ -117,7 +117,7 @@ mlx5_fs_hws_pr_bulk_create(struct mlx5_core_dev *dev, void *pool_ctx)
return NULL;
pr_pool_ctx = pool_ctx;
bulk_len = MLX5_FS_HWS_DEFAULT_BULK_LEN;
- pr_bulk = kvzalloc(struct_size(pr_bulk, prs_data, bulk_len), GFP_KERNEL);
+ pr_bulk = kvzalloc_flex(*pr_bulk, prs_data, bulk_len, GFP_KERNEL);
if (!pr_bulk)
return NULL;
@@ -186,7 +186,7 @@ int mlx5_fs_hws_pr_pool_init(struct mlx5_fs_pool *pr_pool,
reformat_type != MLX5HWS_ACTION_TYP_REFORMAT_L2_TO_TNL_L2)
return -EOPNOTSUPP;
- pr_pool_ctx = kzalloc(sizeof(*pr_pool_ctx), GFP_KERNEL);
+ pr_pool_ctx = kzalloc_obj(*pr_pool_ctx, GFP_KERNEL);
if (!pr_pool_ctx)
return -ENOMEM;
pr_pool_ctx->reformat_type = reformat_type;
@@ -273,7 +273,7 @@ mlx5_fs_hws_mh_bulk_create(struct mlx5_core_dev *dev, void *pool_ctx)
pattern = pool_ctx;
bulk_len = MLX5_FS_HWS_DEFAULT_BULK_LEN;
- mh_bulk = kvzalloc(struct_size(mh_bulk, mhs_data, bulk_len), GFP_KERNEL);
+ mh_bulk = kvzalloc_flex(*mh_bulk, mhs_data, bulk_len, GFP_KERNEL);
if (!mh_bulk)
return NULL;
@@ -331,7 +331,7 @@ int mlx5_fs_hws_mh_pool_init(struct mlx5_fs_pool *fs_hws_mh_pool,
{
struct mlx5hws_action_mh_pattern *pool_pattern;
- pool_pattern = kzalloc(sizeof(*pool_pattern), GFP_KERNEL);
+ pool_pattern = kzalloc_obj(*pool_pattern, GFP_KERNEL);
if (!pool_pattern)
return -ENOMEM;
pool_pattern->data = kmemdup(pattern->data, pattern->sz, GFP_KERNEL);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/matcher.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/matcher.c
index 32f87fdf3213..c78ae73e5411 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/matcher.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/matcher.c
@@ -912,7 +912,7 @@ hws_matcher_create_col_matcher(struct mlx5hws_matcher *matcher)
!hws_matcher_requires_col_tbl(size_tx->rule.num_log))
return 0;
- col_matcher = kzalloc(sizeof(*matcher), GFP_KERNEL);
+ col_matcher = kzalloc_obj(*matcher, GFP_KERNEL);
if (!col_matcher)
return -ENOMEM;
@@ -1084,14 +1084,14 @@ hws_matcher_set_templates(struct mlx5hws_matcher *matcher,
return -EOPNOTSUPP;
}
- matcher->mt = kcalloc(num_of_mt, sizeof(*matcher->mt), GFP_KERNEL);
+ matcher->mt = kzalloc_objs(*matcher->mt, num_of_mt, GFP_KERNEL);
if (!matcher->mt)
return -ENOMEM;
matcher->size_of_at_array =
num_of_at + matcher->attr.max_num_of_at_attach;
- matcher->at = kvcalloc(matcher->size_of_at_array, sizeof(*matcher->at),
- GFP_KERNEL);
+ matcher->at = kvzalloc_objs(*matcher->at, matcher->size_of_at_array,
+ GFP_KERNEL);
if (!matcher->at) {
mlx5hws_err(ctx, "Failed to allocate action template array\n");
ret = -ENOMEM;
@@ -1133,7 +1133,7 @@ mlx5hws_matcher_create(struct mlx5hws_table *tbl,
struct mlx5hws_matcher *matcher;
int ret;
- matcher = kzalloc(sizeof(*matcher), GFP_KERNEL);
+ matcher = kzalloc_obj(*matcher, GFP_KERNEL);
if (!matcher)
return NULL;
@@ -1179,7 +1179,7 @@ mlx5hws_match_template_create(struct mlx5hws_context *ctx,
{
struct mlx5hws_match_template *mt;
- mt = kzalloc(sizeof(*mt), GFP_KERNEL);
+ mt = kzalloc_obj(*mt, GFP_KERNEL);
if (!mt)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
index d56271a9e4f0..49c8f3c872d9 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pat_arg.c
@@ -78,7 +78,7 @@ int mlx5hws_pat_init_pattern_cache(struct mlx5hws_pattern_cache **cache)
{
struct mlx5hws_pattern_cache *new_cache;
- new_cache = kzalloc(sizeof(*new_cache), GFP_KERNEL);
+ new_cache = kzalloc_obj(*new_cache, GFP_KERNEL);
if (!new_cache)
return -ENOMEM;
@@ -168,7 +168,7 @@ mlx5hws_pat_add_pattern_to_cache(struct mlx5hws_pattern_cache *cache,
{
struct mlx5hws_pattern_cache_item *cached_pattern;
- cached_pattern = kzalloc(sizeof(*cached_pattern), GFP_KERNEL);
+ cached_pattern = kzalloc_obj(*cached_pattern, GFP_KERNEL);
if (!cached_pattern)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
index 7b5071c3df36..4b6642642346 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
@@ -41,7 +41,7 @@ hws_pool_create_one_resource(struct mlx5hws_pool *pool, u32 log_range,
u32 obj_id = 0;
int ret;
- resource = kzalloc(sizeof(*resource), GFP_KERNEL);
+ resource = kzalloc_obj(*resource, GFP_KERNEL);
if (!resource)
return NULL;
@@ -347,7 +347,7 @@ mlx5hws_pool_create(struct mlx5hws_context *ctx, struct mlx5hws_pool_attr *pool_
enum mlx5hws_db_type res_db_type;
struct mlx5hws_pool *pool;
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.c
index a94f094e72ba..3c966476479d 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/rule.c
@@ -136,7 +136,7 @@ hws_rule_save_resize_info(struct mlx5hws_rule *rule,
/* resize_info might already exist (if we're in update flow) */
if (likely(!rule->resize_info)) {
- rule->resize_info = kzalloc(sizeof(*rule->resize_info), GFP_KERNEL);
+ rule->resize_info = kzalloc_obj(*rule->resize_info, GFP_KERNEL);
if (unlikely(!rule->resize_info)) {
pr_warn("HWS: resize info isn't allocated for rule\n");
return;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/send.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/send.c
index 7510c46e58a5..4fef376d63a2 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/send.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/send.c
@@ -701,7 +701,7 @@ static int hws_send_ring_alloc_sq(struct mlx5_core_dev *mdev,
wq->db = &wq->db[MLX5_SND_DBR];
buf_sz = queue->num_entries * MAX_WQES_PER_RULE;
- sq->dep_wqe = kcalloc(queue->num_entries, sizeof(*sq->dep_wqe), GFP_KERNEL);
+ sq->dep_wqe = kzalloc_objs(*sq->dep_wqe, queue->num_entries, GFP_KERNEL);
if (!sq->dep_wqe) {
err = -ENOMEM;
goto destroy_wq_cyc;
@@ -1033,9 +1033,8 @@ static int mlx5hws_send_queue_open(struct mlx5hws_context *ctx,
queue->num_entries = roundup_pow_of_two(queue_size);
queue->used_entries = 0;
- queue->completed.entries = kcalloc(queue->num_entries,
- sizeof(queue->completed.entries[0]),
- GFP_KERNEL);
+ queue->completed.entries = kzalloc_objs(queue->completed.entries[0],
+ queue->num_entries, GFP_KERNEL);
if (!queue->completed.entries)
return -ENOMEM;
@@ -1094,16 +1093,14 @@ static int hws_bwc_send_queues_init(struct mlx5hws_context *ctx)
ctx->queues += bwc_queues;
- ctx->bwc_send_queue_locks = kcalloc(bwc_queues,
- sizeof(*ctx->bwc_send_queue_locks),
- GFP_KERNEL);
+ ctx->bwc_send_queue_locks = kzalloc_objs(*ctx->bwc_send_queue_locks,
+ bwc_queues, GFP_KERNEL);
if (!ctx->bwc_send_queue_locks)
return -ENOMEM;
- ctx->bwc_lock_class_keys = kcalloc(bwc_queues,
- sizeof(*ctx->bwc_lock_class_keys),
- GFP_KERNEL);
+ ctx->bwc_lock_class_keys = kzalloc_objs(*ctx->bwc_lock_class_keys,
+ bwc_queues, GFP_KERNEL);
if (!ctx->bwc_lock_class_keys)
goto err_lock_class_keys;
@@ -1135,7 +1132,8 @@ int mlx5hws_send_queues_open(struct mlx5hws_context *ctx,
if (err)
return err;
- ctx->send_queue = kcalloc(ctx->queues, sizeof(*ctx->send_queue), GFP_KERNEL);
+ ctx->send_queue = kzalloc_objs(*ctx->send_queue, ctx->queues,
+ GFP_KERNEL);
if (!ctx->send_queue) {
err = -ENOMEM;
goto free_bwc_locks;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/table.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/table.c
index 6113383ae47b..2bf42f5df285 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/table.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/table.c
@@ -238,7 +238,7 @@ struct mlx5hws_table *mlx5hws_table_create(struct mlx5hws_context *ctx,
return NULL;
}
- tbl = kzalloc(sizeof(*tbl), GFP_KERNEL);
+ tbl = kzalloc_obj(*tbl, GFP_KERNEL);
if (!tbl)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_action.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_action.c
index 2ebb61ef3ea9..9889149569fe 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_action.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_action.c
@@ -1194,14 +1194,14 @@ mlx5dr_action_create_mult_dest_tbl(struct mlx5dr_domain *dmn,
return NULL;
}
- hw_dests = kcalloc(num_of_dests, sizeof(*hw_dests), GFP_KERNEL);
+ hw_dests = kzalloc_objs(*hw_dests, num_of_dests, GFP_KERNEL);
if (!hw_dests)
return NULL;
if (unlikely(check_mul_overflow(num_of_dests, 2u, &ref_act_cnt)))
goto free_hw_dests;
- ref_actions = kcalloc(ref_act_cnt, sizeof(*ref_actions), GFP_KERNEL);
+ ref_actions = kzalloc_objs(*ref_actions, ref_act_cnt, GFP_KERNEL);
if (!ref_actions)
goto free_hw_dests;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_arg.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_arg.c
index 01ed6442095d..b276f9e966bc 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_arg.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_arg.c
@@ -68,7 +68,7 @@ static int dr_arg_pool_alloc_objs(struct dr_arg_pool *pool)
}
for (i = 0; i < num_of_objects; i++) {
- arg_obj = kzalloc(sizeof(*arg_obj), GFP_KERNEL);
+ arg_obj = kzalloc_obj(*arg_obj, GFP_KERNEL);
if (!arg_obj) {
ret = -ENOMEM;
goto clean_arg_obj;
@@ -132,7 +132,7 @@ static struct dr_arg_pool *dr_arg_pool_create(struct mlx5dr_domain *dmn,
{
struct dr_arg_pool *pool;
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return NULL;
@@ -235,7 +235,7 @@ mlx5dr_arg_mgr_create(struct mlx5dr_domain *dmn)
if (!mlx5dr_domain_is_support_ptrn_arg(dmn))
return NULL;
- pool_mgr = kzalloc(sizeof(*pool_mgr), GFP_KERNEL);
+ pool_mgr = kzalloc_obj(*pool_mgr, GFP_KERNEL);
if (!pool_mgr)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
index fe228d948b47..3af4218381a1 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
@@ -16,12 +16,10 @@ int mlx5dr_buddy_init(struct mlx5dr_icm_buddy_mem *buddy,
INIT_LIST_HEAD(&buddy->list_node);
- buddy->bitmap = kcalloc(buddy->max_order + 1,
- sizeof(*buddy->bitmap),
- GFP_KERNEL);
- buddy->num_free = kcalloc(buddy->max_order + 1,
- sizeof(*buddy->num_free),
- GFP_KERNEL);
+ buddy->bitmap = kzalloc_objs(*buddy->bitmap, buddy->max_order + 1,
+ GFP_KERNEL);
+ buddy->num_free = kzalloc_objs(*buddy->num_free, buddy->max_order + 1,
+ GFP_KERNEL);
if (!buddy->bitmap || !buddy->num_free)
goto err_free_all;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_dbg.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_dbg.c
index 8803fa071c50..c8904955ec54 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_dbg.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_dbg.c
@@ -60,7 +60,7 @@ mlx5dr_dbg_dump_data_init_new_buff(struct mlx5dr_dbg_dump_data *dump_data)
{
struct mlx5dr_dbg_dump_buff *new_buff;
- new_buff = kzalloc(sizeof(*new_buff), GFP_KERNEL);
+ new_buff = kzalloc_obj(*new_buff, GFP_KERNEL);
if (!new_buff)
return NULL;
@@ -81,7 +81,7 @@ mlx5dr_dbg_create_dump_data(void)
{
struct mlx5dr_dbg_dump_data *dump_data;
- dump_data = kzalloc(sizeof(*dump_data), GFP_KERNEL);
+ dump_data = kzalloc_obj(*dump_data, GFP_KERNEL);
if (!dump_data)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_definer.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_definer.c
index d5ea97751945..282088205d4c 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_definer.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_definer.c
@@ -60,7 +60,7 @@ dr_definer_create_obj(struct mlx5dr_domain *dmn, u16 format_id,
struct dr_definer_object *definer_obj;
int ret = 0;
- definer_obj = kzalloc(sizeof(*definer_obj), GFP_KERNEL);
+ definer_obj = kzalloc_obj(*definer_obj, GFP_KERNEL);
if (!definer_obj)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_domain.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_domain.c
index e8c67ed9f748..5c0a8dc6cff0 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_domain.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_domain.c
@@ -282,7 +282,7 @@ dr_domain_add_vport_cap(struct mlx5dr_domain *dmn, u16 vport)
struct mlx5dr_cmd_vport_cap *vport_caps;
int ret;
- vport_caps = kvzalloc(sizeof(*vport_caps), GFP_KERNEL);
+ vport_caps = kvzalloc_obj(*vport_caps, GFP_KERNEL);
if (!vport_caps)
return NULL;
@@ -467,7 +467,7 @@ mlx5dr_domain_create(struct mlx5_core_dev *mdev, enum mlx5dr_domain_type type)
if (type > MLX5DR_DOMAIN_TYPE_FDB)
return NULL;
- dmn = kzalloc(sizeof(*dmn), GFP_KERNEL);
+ dmn = kzalloc_obj(*dmn, GFP_KERNEL);
if (!dmn)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_fw.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_fw.c
index f05ef0cd54ba..df34beefda11 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_fw.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_fw.c
@@ -13,7 +13,7 @@ mlx5dr_fw_create_recalc_cs_ft(struct mlx5dr_domain *dmn, u16 vport_num)
u64 rx_icm_addr, modify_ttl_action;
int ret;
- recalc_cs_ft = kzalloc(sizeof(*recalc_cs_ft), GFP_KERNEL);
+ recalc_cs_ft = kzalloc_obj(*recalc_cs_ft, GFP_KERNEL);
if (!recalc_cs_ft)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
index 0b5af9f3f605..79f0adecc2aa 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
@@ -116,7 +116,7 @@ dr_icm_pool_mr_create(struct mlx5dr_icm_pool *pool)
size_t log_align_base = 0;
int err;
- icm_mr = kvzalloc(sizeof(*icm_mr), GFP_KERNEL);
+ icm_mr = kvzalloc_obj(*icm_mr, GFP_KERNEL);
if (!icm_mr)
return NULL;
@@ -227,8 +227,8 @@ static int dr_icm_buddy_init_ste_cache(struct mlx5dr_icm_buddy_mem *buddy)
int num_of_entries =
mlx5dr_icm_pool_chunk_size_to_entries(buddy->pool->max_log_chunk_sz);
- buddy->ste_arr = kvcalloc(num_of_entries,
- sizeof(struct mlx5dr_ste), GFP_KERNEL);
+ buddy->ste_arr = kvzalloc_objs(struct mlx5dr_ste, num_of_entries,
+ GFP_KERNEL);
if (!buddy->ste_arr)
return -ENOMEM;
@@ -269,7 +269,7 @@ static int dr_icm_buddy_create(struct mlx5dr_icm_pool *pool)
if (!icm_mr)
return -ENOMEM;
- buddy = kvzalloc(sizeof(*buddy), GFP_KERNEL);
+ buddy = kvzalloc_obj(*buddy, GFP_KERNEL);
if (!buddy)
goto free_mr;
@@ -509,7 +509,7 @@ struct mlx5dr_icm_pool *mlx5dr_icm_pool_create(struct mlx5dr_domain *dmn,
struct mlx5dr_icm_pool *pool;
u32 max_hot_size = 0;
- pool = kvzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kvzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return NULL;
@@ -548,9 +548,8 @@ struct mlx5dr_icm_pool *mlx5dr_icm_pool_create(struct mlx5dr_domain *dmn,
num_of_chunks = DIV_ROUND_UP(max_hot_size, entry_size) + 1;
pool->th = max_hot_size;
- pool->hot_chunks_arr = kvcalloc(num_of_chunks,
- sizeof(struct mlx5dr_icm_hot_chunk),
- GFP_KERNEL);
+ pool->hot_chunks_arr = kvzalloc_objs(struct mlx5dr_icm_hot_chunk,
+ num_of_chunks, GFP_KERNEL);
if (!pool->hot_chunks_arr)
goto free_pool;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_matcher.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_matcher.c
index 0726848eb3ff..b171fdb5a622 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_matcher.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_matcher.c
@@ -996,7 +996,7 @@ mlx5dr_matcher_create(struct mlx5dr_table *tbl,
refcount_inc(&tbl->refcount);
- matcher = kzalloc(sizeof(*matcher), GFP_KERNEL);
+ matcher = kzalloc_obj(*matcher, GFP_KERNEL);
if (!matcher)
goto dec_ref;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ptrn.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ptrn.c
index 8ca534ef5d03..094a6bea9a8a 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ptrn.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ptrn.c
@@ -94,7 +94,7 @@ dr_ptrn_alloc_pattern(struct mlx5dr_ptrn_mgr *mgr,
mgr->dmn->info.caps.hdr_modify_pattern_icm_addr) /
DR_ACTION_CACHE_LINE_SIZE;
- pattern = kzalloc(sizeof(*pattern), GFP_KERNEL);
+ pattern = kzalloc_obj(*pattern, GFP_KERNEL);
if (!pattern)
goto free_chunk;
@@ -201,7 +201,7 @@ struct mlx5dr_ptrn_mgr *mlx5dr_ptrn_mgr_create(struct mlx5dr_domain *dmn)
if (!mlx5dr_domain_is_support_ptrn_arg(dmn))
return NULL;
- mgr = kzalloc(sizeof(*mgr), GFP_KERNEL);
+ mgr = kzalloc_obj(*mgr, GFP_KERNEL);
if (!mgr)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_rule.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_rule.c
index d1db04baa1fa..8d925c3e2b11 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_rule.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_rule.c
@@ -593,7 +593,7 @@ static int dr_rule_add_action_members(struct mlx5dr_rule *rule,
int i;
for (i = 0; i < num_actions; i++) {
- action_mem = kvzalloc(sizeof(*action_mem), GFP_KERNEL);
+ action_mem = kvzalloc_obj(*action_mem, GFP_KERNEL);
if (!action_mem)
goto free_action_members;
@@ -1298,7 +1298,7 @@ dr_rule_create_rule(struct mlx5dr_matcher *matcher,
if (!dr_rule_verify(matcher, value, ¶m))
return NULL;
- rule = kzalloc(sizeof(*rule), GFP_KERNEL);
+ rule = kzalloc_obj(*rule, GFP_KERNEL);
if (!rule)
return NULL;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_send.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_send.c
index d034372fa047..78d7c83a98b0 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_send.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_send.c
@@ -72,7 +72,7 @@ static int dr_send_info_pool_fill(struct mlx5dr_send_info_pool *pool)
int i;
for (i = 0; i < DR_SEND_INFO_POOL_SIZE; i++) {
- pool_obj = kzalloc(sizeof(*pool_obj), GFP_KERNEL);
+ pool_obj = kzalloc_obj(*pool_obj, GFP_KERNEL);
if (!pool_obj)
goto clean_pool;
@@ -114,7 +114,7 @@ static struct mlx5dr_send_info_pool *dr_send_info_pool_create(void)
struct mlx5dr_send_info_pool *pool;
int ret;
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return NULL;
@@ -258,7 +258,7 @@ static struct mlx5dr_qp *dr_create_rc_qp(struct mlx5_core_dev *mdev,
void *in;
int err;
- dr_qp = kzalloc(sizeof(*dr_qp), GFP_KERNEL);
+ dr_qp = kzalloc_obj(*dr_qp, GFP_KERNEL);
if (!dr_qp)
return NULL;
@@ -1063,7 +1063,7 @@ static struct mlx5dr_cq *dr_create_cq(struct mlx5_core_dev *mdev,
__be64 *pas;
u32 i;
- cq = kzalloc(sizeof(*cq), GFP_KERNEL);
+ cq = kzalloc_obj(*cq, GFP_KERNEL);
if (!cq)
return NULL;
@@ -1158,7 +1158,7 @@ static int dr_create_mkey(struct mlx5_core_dev *mdev, u32 pdn, u32 *mkey)
static struct mlx5dr_mr *dr_reg_mr(struct mlx5_core_dev *mdev,
u32 pdn, void *buf, size_t size)
{
- struct mlx5dr_mr *mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ struct mlx5dr_mr *mr = kzalloc_obj(*mr, GFP_KERNEL);
struct device *dma_device;
dma_addr_t dma_addr;
int err;
@@ -1207,7 +1207,7 @@ int mlx5dr_send_ring_alloc(struct mlx5dr_domain *dmn)
int size;
int ret;
- dmn->send_ring = kzalloc(sizeof(*dmn->send_ring), GFP_KERNEL);
+ dmn->send_ring = kzalloc_obj(*dmn->send_ring, GFP_KERNEL);
if (!dmn->send_ring)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_table.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_table.c
index 69294a66fd7f..ab4c360c64e0 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_table.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_table.c
@@ -255,7 +255,7 @@ struct mlx5dr_table *mlx5dr_table_create(struct mlx5dr_domain *dmn, u32 level,
refcount_inc(&dmn->refcount);
- tbl = kzalloc(sizeof(*tbl), GFP_KERNEL);
+ tbl = kzalloc_obj(*tbl, GFP_KERNEL);
if (!tbl)
goto dec_ref;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/fs_dr.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/fs_dr.c
index f367997ab61e..4d29c6347902 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/fs_dr.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/fs_dr.c
@@ -275,22 +275,22 @@ static int mlx5_cmd_dr_create_fte(struct mlx5_flow_root_namespace *ns,
if (mlx5_fs_cmd_is_fw_term_table(ft))
return mlx5_fs_cmd_get_fw_cmds()->create_fte(ns, ft, group, fte);
- actions = kcalloc(MLX5_FLOW_CONTEXT_ACTION_MAX, sizeof(*actions),
- GFP_KERNEL);
+ actions = kzalloc_objs(*actions, MLX5_FLOW_CONTEXT_ACTION_MAX,
+ GFP_KERNEL);
if (!actions) {
err = -ENOMEM;
goto out_err;
}
- fs_dr_actions = kcalloc(MLX5_FLOW_CONTEXT_ACTION_MAX,
- sizeof(*fs_dr_actions), GFP_KERNEL);
+ fs_dr_actions = kzalloc_objs(*fs_dr_actions,
+ MLX5_FLOW_CONTEXT_ACTION_MAX, GFP_KERNEL);
if (!fs_dr_actions) {
err = -ENOMEM;
goto free_actions_alloc;
}
- term_actions = kcalloc(MLX5_FLOW_CONTEXT_ACTION_MAX,
- sizeof(*term_actions), GFP_KERNEL);
+ term_actions = kzalloc_objs(*term_actions, MLX5_FLOW_CONTEXT_ACTION_MAX,
+ GFP_KERNEL);
if (!term_actions) {
err = -ENOMEM;
goto free_fs_dr_actions_alloc;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/vport.c b/drivers/net/ethernet/mellanox/mlx5/core/vport.c
index cb098d3eb2fa..3b41a507ea05 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/vport.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/vport.c
@@ -832,7 +832,7 @@ int mlx5_query_hca_vport_system_image_guid(struct mlx5_core_dev *dev,
struct mlx5_hca_vport_context *rep;
int err;
- rep = kvzalloc(sizeof(*rep), GFP_KERNEL);
+ rep = kvzalloc_obj(*rep, GFP_KERNEL);
if (!rep)
return -ENOMEM;
@@ -851,7 +851,7 @@ int mlx5_query_hca_vport_node_guid(struct mlx5_core_dev *dev,
struct mlx5_hca_vport_context *rep;
int err;
- rep = kvzalloc(sizeof(*rep), GFP_KERNEL);
+ rep = kvzalloc_obj(*rep, GFP_KERNEL);
if (!rep)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/wc.c b/drivers/net/ethernet/mellanox/mlx5/core/wc.c
index 04d03be1bb77..aa989841f375 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/wc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/wc.c
@@ -366,7 +366,7 @@ static void mlx5_core_test_wc(struct mlx5_core_dev *mdev)
if (mdev->wc_state != MLX5_WC_STATE_UNINITIALIZED)
return;
- sq = kzalloc(sizeof(*sq), GFP_KERNEL);
+ sq = kzalloc_obj(*sq, GFP_KERNEL);
if (!sq)
return;
diff --git a/drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2.c b/drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2.c
index e6f677e42007..b2335f56b481 100644
--- a/drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2.c
+++ b/drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2.c
@@ -267,7 +267,7 @@ struct mlxfw_mfa2_file *mlxfw_mfa2_file_init(const struct firmware *fw)
const void *first_tlv_ptr;
const void *cb_top_ptr;
- mfa2_file = kzalloc(sizeof(*mfa2_file), GFP_KERNEL);
+ mfa2_file = kzalloc_obj(*mfa2_file, GFP_KERNEL);
if (!mfa2_file)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlxsw/core.c b/drivers/net/ethernet/mellanox/mlxsw/core.c
index 83c7cf3bbea3..6d2353324eda 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/core.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/core.c
@@ -150,8 +150,8 @@ static int mlxsw_ports_init(struct mlxsw_core *mlxsw_core, bool reload)
else
mlxsw_core->max_ports = MLXSW_PORT_MAX_PORTS_DEFAULT + 1;
- mlxsw_core->ports = kcalloc(mlxsw_core->max_ports,
- sizeof(struct mlxsw_core_port), GFP_KERNEL);
+ mlxsw_core->ports = kzalloc_objs(struct mlxsw_core_port,
+ mlxsw_core->max_ports, GFP_KERNEL);
if (!mlxsw_core->ports)
return -ENOMEM;
@@ -1793,7 +1793,7 @@ static void mlxsw_core_health_listener_func(const struct mlxsw_reg_info *reg,
struct mlxsw_core_health_event *event;
struct mlxsw_core *mlxsw_core = priv;
- event = kmalloc(sizeof(*event), GFP_ATOMIC);
+ event = kmalloc_obj(*event, GFP_ATOMIC);
if (!event)
return;
event->mlxsw_core = mlxsw_core;
@@ -2376,7 +2376,7 @@ int mlxsw_core_rx_listener_register(struct mlxsw_core *mlxsw_core,
rxl_item = __find_rx_listener_item(mlxsw_core, rxl);
if (rxl_item)
return -EEXIST;
- rxl_item = kmalloc(sizeof(*rxl_item), GFP_KERNEL);
+ rxl_item = kmalloc_obj(*rxl_item, GFP_KERNEL);
if (!rxl_item)
return -ENOMEM;
rxl_item->rxl = *rxl;
@@ -2475,7 +2475,7 @@ int mlxsw_core_event_listener_register(struct mlxsw_core *mlxsw_core,
el_item = __find_event_listener_item(mlxsw_core, el);
if (el_item)
return -EEXIST;
- el_item = kmalloc(sizeof(*el_item), GFP_KERNEL);
+ el_item = kmalloc_obj(*el_item, GFP_KERNEL);
if (!el_item)
return -ENOMEM;
el_item->mlxsw_core = mlxsw_core;
@@ -2684,7 +2684,7 @@ static int mlxsw_core_reg_access_emad(struct mlxsw_core *mlxsw_core,
struct mlxsw_reg_trans *trans;
int err;
- trans = kzalloc(sizeof(*trans), GFP_KERNEL);
+ trans = kzalloc_obj(*trans, GFP_KERNEL);
if (!trans)
return -ENOMEM;
@@ -2785,7 +2785,7 @@ int mlxsw_core_irq_event_handler_register(struct mlxsw_core *mlxsw_core,
{
struct mlxsw_core_irq_event_handler_item *item;
- item = kzalloc(sizeof(*item), GFP_KERNEL);
+ item = kzalloc_obj(*item, GFP_KERNEL);
if (!item)
return -ENOMEM;
item->cb = cb;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c
index 1915fa41c622..08168f95987a 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c
@@ -201,7 +201,7 @@ struct mlxsw_afa *mlxsw_afa_create(unsigned int max_acts_per_set,
struct mlxsw_afa *mlxsw_afa;
int err;
- mlxsw_afa = kzalloc(sizeof(*mlxsw_afa), GFP_KERNEL);
+ mlxsw_afa = kzalloc_obj(*mlxsw_afa, GFP_KERNEL);
if (!mlxsw_afa)
return ERR_PTR(-ENOMEM);
err = rhashtable_init(&mlxsw_afa->set_ht, &mlxsw_afa_set_ht_params);
@@ -276,7 +276,7 @@ static struct mlxsw_afa_set *mlxsw_afa_set_create(bool is_first)
{
struct mlxsw_afa_set *set;
- set = kzalloc(sizeof(*set), GFP_KERNEL);
+ set = kzalloc_obj(*set, GFP_KERNEL);
if (!set)
return NULL;
/* Need to initialize the set to pass by default */
@@ -406,7 +406,7 @@ struct mlxsw_afa_block *mlxsw_afa_block_create(struct mlxsw_afa *mlxsw_afa)
{
struct mlxsw_afa_block *block;
- block = kzalloc(sizeof(*block), GFP_KERNEL);
+ block = kzalloc_obj(*block, GFP_KERNEL);
if (!block)
return ERR_PTR(-ENOMEM);
INIT_LIST_HEAD(&block->resource_list);
@@ -560,7 +560,7 @@ mlxsw_afa_fwd_entry_create(struct mlxsw_afa *mlxsw_afa, u16 local_port)
struct mlxsw_afa_fwd_entry *fwd_entry;
int err;
- fwd_entry = kzalloc(sizeof(*fwd_entry), GFP_KERNEL);
+ fwd_entry = kzalloc_obj(*fwd_entry, GFP_KERNEL);
if (!fwd_entry)
return ERR_PTR(-ENOMEM);
fwd_entry->ht_key.local_port = local_port;
@@ -653,7 +653,7 @@ mlxsw_afa_fwd_entry_ref_create(struct mlxsw_afa_block *block, u16 local_port)
struct mlxsw_afa_fwd_entry *fwd_entry;
int err;
- fwd_entry_ref = kzalloc(sizeof(*fwd_entry_ref), GFP_KERNEL);
+ fwd_entry_ref = kzalloc_obj(*fwd_entry_ref, GFP_KERNEL);
if (!fwd_entry_ref)
return ERR_PTR(-ENOMEM);
fwd_entry = mlxsw_afa_fwd_entry_get(block->afa, local_port);
@@ -702,7 +702,7 @@ mlxsw_afa_counter_create(struct mlxsw_afa_block *block)
struct mlxsw_afa_counter *counter;
int err;
- counter = kzalloc(sizeof(*counter), GFP_KERNEL);
+ counter = kzalloc_obj(*counter, GFP_KERNEL);
if (!counter)
return ERR_PTR(-ENOMEM);
@@ -847,7 +847,7 @@ mlxsw_afa_cookie_ref_create(struct mlxsw_afa_block *block,
struct mlxsw_afa_cookie *cookie;
int err;
- cookie_ref = kzalloc(sizeof(*cookie_ref), GFP_KERNEL);
+ cookie_ref = kzalloc_obj(*cookie_ref, GFP_KERNEL);
if (!cookie_ref)
return ERR_PTR(-ENOMEM);
cookie = mlxsw_afa_cookie_get(block->afa, fa_cookie);
@@ -873,7 +873,7 @@ mlxsw_afa_policer_create(struct mlxsw_afa *mlxsw_afa, u32 fa_index,
struct mlxsw_afa_policer *policer;
int err;
- policer = kzalloc(sizeof(*policer), GFP_KERNEL);
+ policer = kzalloc_obj(*policer, GFP_KERNEL);
if (!policer)
return ERR_PTR(-ENOMEM);
@@ -974,7 +974,7 @@ mlxsw_afa_policer_ref_create(struct mlxsw_afa_block *block, u32 fa_index,
struct mlxsw_afa_policer *policer;
int err;
- policer_ref = kzalloc(sizeof(*policer_ref), GFP_KERNEL);
+ policer_ref = kzalloc_obj(*policer_ref, GFP_KERNEL);
if (!policer_ref)
return ERR_PTR(-ENOMEM);
@@ -1386,7 +1386,7 @@ mlxsw_afa_mirror_create(struct mlxsw_afa_block *block, u16 local_in_port,
struct mlxsw_afa_mirror *mirror;
int err;
- mirror = kzalloc(sizeof(*mirror), GFP_KERNEL);
+ mirror = kzalloc_obj(*mirror, GFP_KERNEL);
if (!mirror)
return ERR_PTR(-ENOMEM);
@@ -2187,7 +2187,7 @@ mlxsw_afa_sampler_create(struct mlxsw_afa_block *block, u16 local_port,
struct mlxsw_afa_sampler *sampler;
int err;
- sampler = kzalloc(sizeof(*sampler), GFP_KERNEL);
+ sampler = kzalloc_obj(*sampler, GFP_KERNEL);
if (!sampler)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.c b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.c
index 7aa1a462a103..030eefcd3eda 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.c
@@ -86,7 +86,7 @@ struct mlxsw_afk *mlxsw_afk_create(unsigned int max_blocks,
{
struct mlxsw_afk *mlxsw_afk;
- mlxsw_afk = kzalloc(sizeof(*mlxsw_afk), GFP_KERNEL);
+ mlxsw_afk = kzalloc_obj(*mlxsw_afk, GFP_KERNEL);
if (!mlxsw_afk)
return NULL;
INIT_LIST_HEAD(&mlxsw_afk->key_info_list);
@@ -262,7 +262,7 @@ static int mlxsw_afk_picker(struct mlxsw_afk *mlxsw_afk,
enum mlxsw_afk_element element;
int err;
- picker = kcalloc(mlxsw_afk->blocks_count, sizeof(*picker), GFP_KERNEL);
+ picker = kzalloc_objs(*picker, mlxsw_afk->blocks_count, GFP_KERNEL);
if (!picker)
return -ENOMEM;
@@ -327,8 +327,8 @@ mlxsw_afk_key_info_create(struct mlxsw_afk *mlxsw_afk,
struct mlxsw_afk_key_info *key_info;
int err;
- key_info = kzalloc(struct_size(key_info, blocks, mlxsw_afk->max_blocks),
- GFP_KERNEL);
+ key_info = kzalloc_flex(*key_info, blocks, mlxsw_afk->max_blocks,
+ GFP_KERNEL);
if (!key_info)
return ERR_PTR(-ENOMEM);
err = mlxsw_afk_picker(mlxsw_afk, key_info, elusage);
diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_env.c b/drivers/net/ethernet/mellanox/mlxsw/core_env.c
index 294e758f1067..3b6b17c48a18 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/core_env.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/core_env.c
@@ -986,7 +986,7 @@ mlxsw_env_mtwe_listener_func(const struct mlxsw_reg_info *reg, char *mtwe_pl,
struct mlxsw_env_module_temp_warn_event *event;
struct mlxsw_env *mlxsw_env = priv;
- event = kmalloc(sizeof(*event), GFP_ATOMIC);
+ event = kmalloc_obj(*event, GFP_ATOMIC);
if (!event)
return;
@@ -1080,7 +1080,7 @@ mlxsw_env_pmpe_listener_func(const struct mlxsw_reg_info *reg, char *pmpe_pl,
if (module_status != MLXSW_REG_PMPE_MODULE_STATUS_PLUGGED_ENABLED)
return;
- event = kmalloc(sizeof(*event), GFP_ATOMIC);
+ event = kmalloc_obj(*event, GFP_ATOMIC);
if (!event)
return;
@@ -1243,10 +1243,10 @@ static int mlxsw_env_line_cards_alloc(struct mlxsw_env *env)
int i, j;
for (i = 0; i < env->num_of_slots; i++) {
- env->line_cards[i] = kzalloc(struct_size(env->line_cards[i],
- module_info,
- env->max_module_count),
- GFP_KERNEL);
+ env->line_cards[i] = kzalloc_flex(*env->line_cards[i],
+ module_info,
+ env->max_module_count,
+ GFP_KERNEL);
if (!env->line_cards[i])
goto kzalloc_err;
@@ -1453,8 +1453,7 @@ int mlxsw_env_init(struct mlxsw_core *mlxsw_core,
mlxsw_reg_mgpir_max_modules_per_slot_get(mgpir_pl) :
module_count;
- env = kzalloc(struct_size(env, line_cards, num_of_slots + 1),
- GFP_KERNEL);
+ env = kzalloc_flex(*env, line_cards, num_of_slots + 1, GFP_KERNEL);
if (!env)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c b/drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c
index 9c12e1feb643..e7081614f597 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c
@@ -871,8 +871,8 @@ int mlxsw_hwmon_init(struct mlxsw_core *mlxsw_core,
mlxsw_reg_mgpir_unpack(mgpir_pl, NULL, NULL, NULL, NULL,
&num_of_slots);
- mlxsw_hwmon = kzalloc(struct_size(mlxsw_hwmon, line_cards,
- num_of_slots + 1), GFP_KERNEL);
+ mlxsw_hwmon = kzalloc_flex(*mlxsw_hwmon, line_cards, num_of_slots + 1,
+ GFP_KERNEL);
if (!mlxsw_hwmon)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_linecard_dev.c b/drivers/net/ethernet/mellanox/mlxsw/core_linecard_dev.c
index e8d6fe35bf36..a689c79122cf 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/core_linecard_dev.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/core_linecard_dev.c
@@ -57,7 +57,7 @@ int mlxsw_linecard_bdev_add(struct mlxsw_linecard *linecard)
if (id < 0)
return id;
- linecard_bdev = kzalloc(sizeof(*linecard_bdev), GFP_KERNEL);
+ linecard_bdev = kzalloc_obj(*linecard_bdev, GFP_KERNEL);
if (!linecard_bdev) {
mlxsw_linecard_bdev_id_free(id);
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_linecards.c b/drivers/net/ethernet/mellanox/mlxsw/core_linecards.c
index 10f5bc4892fc..ef13fee48b1a 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/core_linecards.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/core_linecards.c
@@ -531,7 +531,7 @@ int mlxsw_linecards_event_ops_register(struct mlxsw_core *mlxsw_core,
if (!linecards)
return 0;
- item = kzalloc(sizeof(*item), GFP_KERNEL);
+ item = kzalloc_obj(*item, GFP_KERNEL);
if (!item)
return -ENOMEM;
item->event_ops = ops;
@@ -1192,7 +1192,7 @@ mlxsw_linecard_status_listener_func(const struct mlxsw_reg_info *reg,
struct mlxsw_linecard_status_event *event;
struct mlxsw_core *mlxsw_core = priv;
- event = kmalloc(sizeof(*event), GFP_ATOMIC);
+ event = kmalloc_obj(*event, GFP_ATOMIC);
if (!event)
return;
event->mlxsw_core = mlxsw_core;
@@ -1225,7 +1225,7 @@ mlxsw_linecard_bct_listener_func(const struct mlxsw_reg_info *reg,
struct mlxsw_linecard_bct_event *event;
struct mlxsw_core *mlxsw_core = priv;
- event = kmalloc(sizeof(*event), GFP_ATOMIC);
+ event = kmalloc_obj(*event, GFP_ATOMIC);
if (!event)
return;
event->mlxsw_core = mlxsw_core;
@@ -1446,7 +1446,7 @@ static int mlxsw_linecard_types_init(struct mlxsw_core *mlxsw_core,
return 0;
}
- types_info = kzalloc(sizeof(*types_info), GFP_KERNEL);
+ types_info = kzalloc_obj(*types_info, GFP_KERNEL);
if (!types_info) {
release_firmware(firmware);
return -ENOMEM;
@@ -1469,9 +1469,8 @@ static int mlxsw_linecard_types_init(struct mlxsw_core *mlxsw_core,
goto err_type_file_file_validate;
}
- types_info->ini_files = kmalloc_array(types_info->count,
- sizeof(struct mlxsw_linecard_ini_file *),
- GFP_KERNEL);
+ types_info->ini_files = kmalloc_objs(struct mlxsw_linecard_ini_file *,
+ types_info->count, GFP_KERNEL);
if (!types_info->ini_files) {
err = -ENOMEM;
goto err_ini_files_alloc;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c b/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
index eac9a14a6058..4c9b04ca5154 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
@@ -431,9 +431,8 @@ mlxsw_thermal_modules_init(struct device *dev, struct mlxsw_core *core,
if (!area->tz_module_num)
return 0;
- area->tz_module_arr = kcalloc(area->tz_module_num,
- sizeof(*area->tz_module_arr),
- GFP_KERNEL);
+ area->tz_module_arr = kzalloc_objs(*area->tz_module_arr,
+ area->tz_module_num, GFP_KERNEL);
if (!area->tz_module_arr)
return -ENOMEM;
@@ -522,9 +521,8 @@ mlxsw_thermal_gearboxes_init(struct device *dev, struct mlxsw_core *core,
return 0;
area->tz_gearbox_num = gbox_num;
- area->tz_gearbox_arr = kcalloc(area->tz_gearbox_num,
- sizeof(*area->tz_gearbox_arr),
- GFP_KERNEL);
+ area->tz_gearbox_arr = kzalloc_objs(*area->tz_gearbox_arr,
+ area->tz_gearbox_num, GFP_KERNEL);
if (!area->tz_gearbox_arr)
return -ENOMEM;
@@ -644,8 +642,8 @@ int mlxsw_thermal_init(struct mlxsw_core *core,
mlxsw_reg_mgpir_unpack(mgpir_pl, NULL, NULL, NULL, NULL,
&num_of_slots);
- thermal = kzalloc(struct_size(thermal, line_cards, num_of_slots + 1),
- GFP_KERNEL);
+ thermal = kzalloc_flex(*thermal, line_cards, num_of_slots + 1,
+ GFP_KERNEL);
if (!thermal)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/minimal.c b/drivers/net/ethernet/mellanox/mlxsw/minimal.c
index 828c65036a4c..9871b9e1d094 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/minimal.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/minimal.c
@@ -398,14 +398,12 @@ static int mlxsw_m_linecards_init(struct mlxsw_m *mlxsw_m)
/* Add slot for main board. */
mlxsw_m->num_of_slots += 1;
- mlxsw_m->ports = kcalloc(max_ports, sizeof(*mlxsw_m->ports),
- GFP_KERNEL);
+ mlxsw_m->ports = kzalloc_objs(*mlxsw_m->ports, max_ports, GFP_KERNEL);
if (!mlxsw_m->ports)
return -ENOMEM;
- mlxsw_m->line_cards = kcalloc(mlxsw_m->num_of_slots,
- sizeof(*mlxsw_m->line_cards),
- GFP_KERNEL);
+ mlxsw_m->line_cards = kzalloc_objs(*mlxsw_m->line_cards,
+ mlxsw_m->num_of_slots, GFP_KERNEL);
if (!mlxsw_m->line_cards) {
err = -ENOMEM;
goto err_kcalloc;
@@ -413,10 +411,8 @@ static int mlxsw_m_linecards_init(struct mlxsw_m *mlxsw_m)
for (i = 0; i < mlxsw_m->num_of_slots; i++) {
mlxsw_m->line_cards[i] =
- kzalloc(struct_size(mlxsw_m->line_cards[i],
- module_to_port,
- mlxsw_m->max_modules_per_slot),
- GFP_KERNEL);
+ kzalloc_flex(*mlxsw_m->line_cards[i], module_to_port,
+ mlxsw_m->max_modules_per_slot, GFP_KERNEL);
if (!mlxsw_m->line_cards[i]) {
err = -ENOMEM;
goto err_kmalloc_array;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c
index 7da9ef254b72..9b378e9d084d 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/pci.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c
@@ -1264,7 +1264,7 @@ static int mlxsw_pci_queue_init(struct mlxsw_pci *mlxsw_pci, char *mbox,
if (!mem_item->buf)
return -ENOMEM;
- q->elem_info = kcalloc(q->count, sizeof(*q->elem_info), GFP_KERNEL);
+ q->elem_info = kzalloc_objs(*q->elem_info, q->count, GFP_KERNEL);
if (!q->elem_info) {
err = -ENOMEM;
goto err_elem_info_alloc;
@@ -1316,7 +1316,7 @@ static int mlxsw_pci_queue_group_init(struct mlxsw_pci *mlxsw_pci, char *mbox,
int err;
queue_group = mlxsw_pci_queue_type_group_get(mlxsw_pci, q_ops->type);
- queue_group->q = kcalloc(num_qs, sizeof(*queue_group->q), GFP_KERNEL);
+ queue_group->q = kzalloc_objs(*queue_group->q, num_qs, GFP_KERNEL);
if (!queue_group->q)
return -ENOMEM;
@@ -1667,8 +1667,8 @@ static int mlxsw_pci_fw_area_init(struct mlxsw_pci *mlxsw_pci, char *mbox,
int i;
int err;
- mlxsw_pci->fw_area.items = kcalloc(num_pages, sizeof(*mem_item),
- GFP_KERNEL);
+ mlxsw_pci->fw_area.items = kzalloc_objs(*mem_item, num_pages,
+ GFP_KERNEL);
if (!mlxsw_pci->fw_area.items)
return -ENOMEM;
mlxsw_pci->fw_area.count = num_pages;
@@ -2414,7 +2414,7 @@ static int mlxsw_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
struct mlxsw_pci *mlxsw_pci;
int err;
- mlxsw_pci = kzalloc(sizeof(*mlxsw_pci), GFP_KERNEL);
+ mlxsw_pci = kzalloc_obj(*mlxsw_pci, GFP_KERNEL);
if (!mlxsw_pci)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
index 9a2d64a0a858..dbc032ff4963 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
@@ -972,7 +972,7 @@ mlxsw_sp_port_vlan_create(struct mlxsw_sp_port *mlxsw_sp_port, u16 vid)
if (err)
return ERR_PTR(err);
- mlxsw_sp_port_vlan = kzalloc(sizeof(*mlxsw_sp_port_vlan), GFP_KERNEL);
+ mlxsw_sp_port_vlan = kzalloc_obj(*mlxsw_sp_port_vlan, GFP_KERNEL);
if (!mlxsw_sp_port_vlan) {
err = -ENOMEM;
goto err_port_vlan_alloc;
@@ -1776,7 +1776,7 @@ static int mlxsw_sp_cpu_port_create(struct mlxsw_sp *mlxsw_sp)
struct mlxsw_sp_port *mlxsw_sp_port;
int err;
- mlxsw_sp_port = kzalloc(sizeof(*mlxsw_sp_port), GFP_KERNEL);
+ mlxsw_sp_port = kzalloc_obj(*mlxsw_sp_port, GFP_KERNEL);
if (!mlxsw_sp_port)
return -ENOMEM;
@@ -1898,7 +1898,7 @@ mlxsw_sp_port_mapping_listener_func(const struct mlxsw_reg_info *reg,
return;
events = &mlxsw_sp->port_mapping_events;
- event = kmalloc(sizeof(*event), GFP_ATOMIC);
+ event = kmalloc_obj(*event, GFP_ATOMIC);
if (!event)
return;
memcpy(event->pmlp_pl, pmlp_pl, sizeof(event->pmlp_pl));
@@ -2019,9 +2019,8 @@ static int mlxsw_sp_port_module_info_init(struct mlxsw_sp *mlxsw_sp)
int i;
int err;
- mlxsw_sp->port_mapping = kcalloc(max_ports,
- sizeof(struct mlxsw_sp_port_mapping),
- GFP_KERNEL);
+ mlxsw_sp->port_mapping = kzalloc_objs(struct mlxsw_sp_port_mapping,
+ max_ports, GFP_KERNEL);
if (!mlxsw_sp->port_mapping)
return -ENOMEM;
@@ -2490,8 +2489,8 @@ static int mlxsw_sp_traps_init(struct mlxsw_sp *mlxsw_sp)
if (!MLXSW_CORE_RES_VALID(mlxsw_sp->core, MAX_CPU_POLICERS))
return -EIO;
max_policers = MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_CPU_POLICERS);
- trap = kzalloc(struct_size(trap, policers_usage,
- BITS_TO_LONGS(max_policers)), GFP_KERNEL);
+ trap = kzalloc_flex(*trap, policers_usage, BITS_TO_LONGS(max_policers),
+ GFP_KERNEL);
if (!trap)
return -ENOMEM;
trap->max_policers = max_policers;
@@ -2624,8 +2623,8 @@ static int mlxsw_sp_lag_init(struct mlxsw_sp *mlxsw_sp)
if (err)
return err;
- mlxsw_sp->lags = kcalloc(mlxsw_sp->max_lag, sizeof(struct mlxsw_sp_lag),
- GFP_KERNEL);
+ mlxsw_sp->lags = kzalloc_objs(struct mlxsw_sp_lag, mlxsw_sp->max_lag,
+ GFP_KERNEL);
if (!mlxsw_sp->lags) {
err = -ENOMEM;
goto err_kcalloc;
@@ -2748,7 +2747,7 @@ mlxsw_sp_sample_trigger_node_init(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_sample_trigger_node *trigger_node;
int err;
- trigger_node = kzalloc(sizeof(*trigger_node), GFP_KERNEL);
+ trigger_node = kzalloc_obj(*trigger_node, GFP_KERNEL);
if (!trigger_node)
return -ENOMEM;
@@ -2894,7 +2893,7 @@ mlxsw_sp_ipv6_addr_init(struct mlxsw_sp *mlxsw_sp, const struct in6_addr *addr6,
if (err)
goto err_rips_write;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node) {
err = -ENOMEM;
goto err_node_alloc;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c
index 1e3fc989393c..6aa1252cbe49 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c
@@ -224,8 +224,7 @@ mlxsw_sp1_kvdl_part_init(struct mlxsw_sp *mlxsw_sp,
}
nr_entries = div_u64(resource_size, info->alloc_size);
- part = kzalloc(struct_size(part, usage, BITS_TO_LONGS(nr_entries)),
- GFP_KERNEL);
+ part = kzalloc_flex(*part, usage, BITS_TO_LONGS(nr_entries), GFP_KERNEL);
if (!part)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c
index c8c67536917b..814b704de294 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c
@@ -259,8 +259,8 @@ mlxsw_sp1_mr_tcam_region_init(struct mlxsw_sp *mlxsw_sp,
}
mr_tcam_region->parman = parman;
- parman_prios = kmalloc_array(MLXSW_SP_MR_ROUTE_PRIO_MAX + 1,
- sizeof(*parman_prios), GFP_KERNEL);
+ parman_prios = kmalloc_objs(*parman_prios,
+ MLXSW_SP_MR_ROUTE_PRIO_MAX + 1, GFP_KERNEL);
if (!parman_prios) {
err = -ENOMEM;
goto err_parman_prios_alloc;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c
index 3e70cee4d2f3..aaaa586e8569 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c
@@ -318,7 +318,7 @@ mlxsw_sp_acl_rulei_create(struct mlxsw_sp_acl *acl,
struct mlxsw_sp_acl_rule_info *rulei;
int err;
- rulei = kzalloc(sizeof(*rulei), GFP_KERNEL);
+ rulei = kzalloc_obj(*rulei, GFP_KERNEL);
if (!rulei)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c
index 07cb1e26ca3e..b6e1fc77f0c0 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c
@@ -74,7 +74,7 @@ mlxsw_sp_acl_atcam_region_generic_init(struct mlxsw_sp_acl_atcam_region *aregion
{
struct mlxsw_sp_acl_atcam_region_generic *region_generic;
- region_generic = kzalloc(sizeof(*region_generic), GFP_KERNEL);
+ region_generic = kzalloc_obj(*region_generic, GFP_KERNEL);
if (!region_generic)
return -ENOMEM;
@@ -126,7 +126,7 @@ mlxsw_sp_acl_atcam_region_12kb_init(struct mlxsw_sp_acl_atcam_region *aregion)
return -EIO;
max_lkey_id = MLXSW_CORE_RES_GET(mlxsw_sp->core, ACL_MAX_LARGE_KEY_ID);
- region_12kb = kzalloc(sizeof(*region_12kb), GFP_KERNEL);
+ region_12kb = kzalloc_obj(*region_12kb, GFP_KERNEL);
if (!region_12kb)
return -ENOMEM;
@@ -179,7 +179,7 @@ mlxsw_sp_acl_atcam_lkey_id_create(struct mlxsw_sp_acl_atcam_region *aregion,
else
return ERR_PTR(-ENOBUFS);
- lkey_id = kzalloc(sizeof(*lkey_id), GFP_KERNEL);
+ lkey_id = kzalloc_obj(*lkey_id, GFP_KERNEL);
if (!lkey_id) {
err = -ENOMEM;
goto err_lkey_id_alloc;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_bloom_filter.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_bloom_filter.c
index 067f0055a55a..d6c55a80a7ce 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_bloom_filter.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_bloom_filter.c
@@ -513,8 +513,8 @@ mlxsw_sp_acl_bf_init(struct mlxsw_sp *mlxsw_sp, unsigned int num_erp_banks)
* is 2^ACL_MAX_BF_LOG
*/
bf_bank_size = 1 << MLXSW_CORE_RES_GET(mlxsw_sp->core, ACL_MAX_BF_LOG);
- bf = kzalloc(struct_size(bf, refcnt, size_mul(bf_bank_size, num_erp_banks)),
- GFP_KERNEL);
+ bf = kzalloc_flex(*bf, refcnt, size_mul(bf_bank_size, num_erp_banks),
+ GFP_KERNEL);
if (!bf)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
index 9eee229303cc..80307d6554a2 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c
@@ -254,7 +254,7 @@ mlxsw_sp_acl_erp_generic_create(struct mlxsw_sp_acl_erp_table *erp_table,
struct mlxsw_sp_acl_erp *erp;
int err;
- erp = kzalloc(sizeof(*erp), GFP_KERNEL);
+ erp = kzalloc_obj(*erp, GFP_KERNEL);
if (!erp)
return ERR_PTR(-ENOMEM);
@@ -798,7 +798,7 @@ mlxsw_sp_acl_erp_ctcam_mask_create(struct mlxsw_sp_acl_erp_table *erp_table,
struct mlxsw_sp_acl_erp *erp;
int err;
- erp = kzalloc(sizeof(*erp), GFP_KERNEL);
+ erp = kzalloc_obj(*erp, GFP_KERNEL);
if (!erp)
return ERR_PTR(-ENOMEM);
@@ -1236,7 +1236,7 @@ static void *mlxsw_sp_acl_erp_delta_create(void *priv, void *parent_obj,
if (err)
return ERR_PTR(-EINVAL);
- delta = kzalloc(sizeof(*delta), GFP_KERNEL);
+ delta = kzalloc_obj(*delta, GFP_KERNEL);
if (!delta)
return ERR_PTR(-ENOMEM);
delta->start = delta_start;
@@ -1309,7 +1309,7 @@ mlxsw_sp_acl_erp_table_create(struct mlxsw_sp_acl_atcam_region *aregion,
struct mlxsw_sp_acl_erp_table *erp_table;
int err;
- erp_table = kzalloc(sizeof(*erp_table), GFP_KERNEL);
+ erp_table = kzalloc_obj(*erp_table, GFP_KERNEL);
if (!erp_table)
return ERR_PTR(-ENOMEM);
@@ -1563,7 +1563,7 @@ int mlxsw_sp_acl_erps_init(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_erp_core *erp_core;
int err;
- erp_core = kzalloc(sizeof(*erp_core), GFP_KERNEL);
+ erp_core = kzalloc_obj(*erp_core, GFP_KERNEL);
if (!erp_core)
return -ENOMEM;
erp_core->mlxsw_sp = mlxsw_sp;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c
index 69f9da9fb305..5a282cb4b52d 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c
@@ -778,7 +778,7 @@ mlxsw_sp_acl_tcam_vregion_create(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_acl_tcam_vregion *vregion;
int err;
- vregion = kzalloc(sizeof(*vregion), GFP_KERNEL);
+ vregion = kzalloc_obj(*vregion, GFP_KERNEL);
if (!vregion)
return ERR_PTR(-ENOMEM);
INIT_LIST_HEAD(&vregion->vchunk_list);
@@ -939,7 +939,7 @@ mlxsw_sp_acl_tcam_vchunk_create(struct mlxsw_sp *mlxsw_sp,
if (priority == MLXSW_SP_ACL_TCAM_CATCHALL_PRIO)
return ERR_PTR(-EINVAL);
- vchunk = kzalloc(sizeof(*vchunk), GFP_KERNEL);
+ vchunk = kzalloc_obj(*vchunk, GFP_KERNEL);
if (!vchunk)
return ERR_PTR(-ENOMEM);
INIT_LIST_HEAD(&vchunk->ventry_list);
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c
index 2c0cfa79d138..fd6b36c3d475 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c
@@ -628,8 +628,7 @@ static int mlxsw_sp_sb_port_init(struct mlxsw_sp *mlxsw_sp,
{
struct mlxsw_sp_sb_pm *pms;
- pms = kcalloc(mlxsw_sp->sb_vals->pool_count, sizeof(*pms),
- GFP_KERNEL);
+ pms = kzalloc_objs(*pms, mlxsw_sp->sb_vals->pool_count, GFP_KERNEL);
if (!pms)
return -ENOMEM;
sb_port->pms = pms;
@@ -648,14 +647,12 @@ static int mlxsw_sp_sb_ports_init(struct mlxsw_sp *mlxsw_sp)
int i;
int err;
- mlxsw_sp->sb->ports = kcalloc(max_ports,
- sizeof(struct mlxsw_sp_sb_port),
- GFP_KERNEL);
+ mlxsw_sp->sb->ports = kzalloc_objs(struct mlxsw_sp_sb_port, max_ports,
+ GFP_KERNEL);
if (!mlxsw_sp->sb->ports)
return -ENOMEM;
- prs = kcalloc(mlxsw_sp->sb_vals->pool_count, sizeof(*prs),
- GFP_KERNEL);
+ prs = kzalloc_objs(*prs, mlxsw_sp->sb_vals->pool_count, GFP_KERNEL);
if (!prs) {
err = -ENOMEM;
goto err_alloc_prs;
@@ -1264,7 +1261,7 @@ int mlxsw_sp_buffers_init(struct mlxsw_sp *mlxsw_sp)
if (!MLXSW_CORE_RES_VALID(mlxsw_sp->core, MAX_HEADROOM_SIZE))
return -EIO;
- mlxsw_sp->sb = kzalloc(sizeof(*mlxsw_sp->sb), GFP_KERNEL);
+ mlxsw_sp->sb = kzalloc_obj(*mlxsw_sp->sb, GFP_KERNEL);
if (!mlxsw_sp->sb)
return -ENOMEM;
mlxsw_sp->sb->cell_size = MLXSW_CORE_RES_GET(mlxsw_sp->core, CELL_SIZE);
@@ -1327,7 +1324,7 @@ int mlxsw_sp_port_buffers_init(struct mlxsw_sp_port *mlxsw_sp_port)
{
int err;
- mlxsw_sp_port->hdroom = kzalloc(sizeof(*mlxsw_sp_port->hdroom), GFP_KERNEL);
+ mlxsw_sp_port->hdroom = kzalloc_obj(*mlxsw_sp_port->hdroom, GFP_KERNEL);
if (!mlxsw_sp_port->hdroom)
return -ENOMEM;
mlxsw_sp_port->hdroom->mtu = mlxsw_sp_port->dev->mtu;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c
index b1094aaffa5f..33ef49de4e0b 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c
@@ -124,8 +124,7 @@ int mlxsw_sp_counter_pool_init(struct mlxsw_sp *mlxsw_sp)
struct mlxsw_sp_counter_pool *pool;
int err;
- pool = kzalloc(struct_size(pool, sub_pools, sub_pools_count),
- GFP_KERNEL);
+ pool = kzalloc_flex(*pool, sub_pools, sub_pools_count, GFP_KERNEL);
if (!pool)
return -ENOMEM;
mlxsw_sp->counter_pool = pool;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dcb.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dcb.c
index aff6d4f35cd2..69ab4f8cf05d 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dcb.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dcb.c
@@ -654,8 +654,8 @@ static const struct dcbnl_rtnl_ops mlxsw_sp_dcbnl_ops = {
static int mlxsw_sp_port_ets_init(struct mlxsw_sp_port *mlxsw_sp_port)
{
- mlxsw_sp_port->dcb.ets = kzalloc(sizeof(*mlxsw_sp_port->dcb.ets),
- GFP_KERNEL);
+ mlxsw_sp_port->dcb.ets = kzalloc_obj(*mlxsw_sp_port->dcb.ets,
+ GFP_KERNEL);
if (!mlxsw_sp_port->dcb.ets)
return -ENOMEM;
@@ -673,8 +673,8 @@ static int mlxsw_sp_port_maxrate_init(struct mlxsw_sp_port *mlxsw_sp_port)
{
int i;
- mlxsw_sp_port->dcb.maxrate = kmalloc(sizeof(*mlxsw_sp_port->dcb.maxrate),
- GFP_KERNEL);
+ mlxsw_sp_port->dcb.maxrate = kmalloc_obj(*mlxsw_sp_port->dcb.maxrate,
+ GFP_KERNEL);
if (!mlxsw_sp_port->dcb.maxrate)
return -ENOMEM;
@@ -691,8 +691,8 @@ static void mlxsw_sp_port_maxrate_fini(struct mlxsw_sp_port *mlxsw_sp_port)
static int mlxsw_sp_port_pfc_init(struct mlxsw_sp_port *mlxsw_sp_port)
{
- mlxsw_sp_port->dcb.pfc = kzalloc(sizeof(*mlxsw_sp_port->dcb.pfc),
- GFP_KERNEL);
+ mlxsw_sp_port->dcb.pfc = kzalloc_obj(*mlxsw_sp_port->dcb.pfc,
+ GFP_KERNEL);
if (!mlxsw_sp_port->dcb.pfc)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c
index 65562ab208b3..2e9c35f5f992 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c
@@ -1022,7 +1022,7 @@ mlxsw_sp_fid_port_vid_list_add(struct mlxsw_sp_fid *fid, u16 local_port,
{
struct mlxsw_sp_fid_port_vid *port_vid, *tmp_port_vid;
- port_vid = kzalloc(sizeof(*port_vid), GFP_KERNEL);
+ port_vid = kzalloc_obj(*port_vid, GFP_KERNEL);
if (!port_vid)
return -ENOMEM;
@@ -2295,7 +2295,7 @@ mlxsw_sp_fids_init(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_fid_core *fid_core;
int err, i;
- fid_core = kzalloc(sizeof(*mlxsw_sp->fid_core), GFP_KERNEL);
+ fid_core = kzalloc_obj(*mlxsw_sp->fid_core, GFP_KERNEL);
if (!fid_core)
return -ENOMEM;
mlxsw_sp->fid_core = fid_core;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_flow.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_flow.c
index 9e50c823a354..6e341b4a9805 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_flow.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_flow.c
@@ -14,7 +14,7 @@ mlxsw_sp_flow_block_create(struct mlxsw_sp *mlxsw_sp, struct net *net)
{
struct mlxsw_sp_flow_block *block;
- block = kzalloc(sizeof(*block), GFP_KERNEL);
+ block = kzalloc_obj(*block, GFP_KERNEL);
if (!block)
return NULL;
INIT_LIST_HEAD(&block->binding_list);
@@ -75,7 +75,7 @@ static int mlxsw_sp_flow_block_bind(struct mlxsw_sp *mlxsw_sp,
if (err)
return err;
- binding = kzalloc(sizeof(*binding), GFP_KERNEL);
+ binding = kzalloc_obj(*binding, GFP_KERNEL);
if (!binding) {
err = -ENOMEM;
goto err_binding_alloc;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_matchall.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_matchall.c
index 07b371cd9818..a5fdc1a7555a 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_matchall.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_matchall.c
@@ -243,7 +243,7 @@ int mlxsw_sp_mall_replace(struct mlxsw_sp *mlxsw_sp,
return -EOPNOTSUPP;
}
- mall_entry = kzalloc(sizeof(*mall_entry), GFP_KERNEL);
+ mall_entry = kzalloc_obj(*mall_entry, GFP_KERNEL);
if (!mall_entry)
return -ENOMEM;
mall_entry->cookie = f->cookie;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c
index 81935f87bfcd..1ca8a15a9cb2 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c
@@ -172,7 +172,7 @@ static int mlxsw_sp_mr_route_evif_link(struct mlxsw_sp_mr_route *mr_route,
{
struct mlxsw_sp_mr_route_vif_entry *rve;
- rve = kzalloc(sizeof(*rve), GFP_KERNEL);
+ rve = kzalloc_obj(*rve, GFP_KERNEL);
if (!rve)
return -ENOMEM;
rve->mr_route = mr_route;
@@ -305,7 +305,7 @@ mlxsw_sp_mr_route_create(struct mlxsw_sp_mr_table *mr_table,
int i;
/* Allocate and init a new route and fill it with parameters */
- mr_route = kzalloc(sizeof(*mr_route), GFP_KERNEL);
+ mr_route = kzalloc_obj(*mr_route, GFP_KERNEL);
if (!mr_route)
return ERR_PTR(-ENOMEM);
INIT_LIST_HEAD(&mr_route->evif_list);
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c
index 01d81ae3662a..f652630cbac1 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c
@@ -52,7 +52,7 @@ mlxsw_sp_mr_erif_sublist_create(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_mr_erif_sublist *erif_sublist;
int err;
- erif_sublist = kzalloc(sizeof(*erif_sublist), GFP_KERNEL);
+ erif_sublist = kzalloc_obj(*erif_sublist, GFP_KERNEL);
if (!erif_sublist)
return ERR_PTR(-ENOMEM);
err = mlxsw_sp_kvdl_alloc(mlxsw_sp, MLXSW_SP_KVDL_ENTRY_TYPE_MCRIGR,
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve.c
index 5479a1c19d2e..8068502c8c2b 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_nve.c
@@ -216,7 +216,7 @@ mlxsw_sp_nve_mc_list_create(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_nve_mc_list *mc_list;
int err;
- mc_list = kmalloc(sizeof(*mc_list), GFP_KERNEL);
+ mc_list = kmalloc_obj(*mc_list, GFP_KERNEL);
if (!mc_list)
return ERR_PTR(-ENOMEM);
@@ -277,8 +277,8 @@ mlxsw_sp_nve_mc_record_create(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_nve_mc_record *mc_record;
int err;
- mc_record = kzalloc(struct_size(mc_record, entries, num_max_entries),
- GFP_KERNEL);
+ mc_record = kzalloc_flex(*mc_record, entries, num_max_entries,
+ GFP_KERNEL);
if (!mc_record)
return ERR_PTR(-ENOMEM);
@@ -848,7 +848,7 @@ static int mlxsw_sp_nve_ipv6_ht_insert(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_nve *nve = mlxsw_sp->nve;
int err;
- ipv6_ht_node = kzalloc(sizeof(*ipv6_ht_node), GFP_KERNEL);
+ ipv6_ht_node = kzalloc_obj(*ipv6_ht_node, GFP_KERNEL);
if (!ipv6_ht_node)
return -ENOMEM;
@@ -1119,7 +1119,7 @@ int mlxsw_sp_nve_init(struct mlxsw_sp *mlxsw_sp)
struct mlxsw_sp_nve *nve;
int err;
- nve = kzalloc(sizeof(*mlxsw_sp->nve), GFP_KERNEL);
+ nve = kzalloc_obj(*mlxsw_sp->nve, GFP_KERNEL);
if (!nve)
return -ENOMEM;
mlxsw_sp->nve = nve;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_pgt.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_pgt.c
index 4ef81bac17d6..0b6269a40c5a 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_pgt.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_pgt.c
@@ -116,7 +116,7 @@ mlxsw_sp_pgt_entry_create(struct mlxsw_sp_pgt *pgt, u16 mid, u16 smpe)
void *ret;
int err;
- pgt_entry = kzalloc(sizeof(*pgt_entry), GFP_KERNEL);
+ pgt_entry = kzalloc_obj(*pgt_entry, GFP_KERNEL);
if (!pgt_entry)
return ERR_PTR(-ENOMEM);
@@ -211,7 +211,7 @@ mlxsw_sp_pgt_entry_port_create(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_pgt_entry_port *pgt_entry_port;
int err;
- pgt_entry_port = kzalloc(sizeof(*pgt_entry_port), GFP_KERNEL);
+ pgt_entry_port = kzalloc_obj(*pgt_entry_port, GFP_KERNEL);
if (!pgt_entry_port)
return ERR_PTR(-ENOMEM);
@@ -315,7 +315,7 @@ int mlxsw_sp_pgt_init(struct mlxsw_sp *mlxsw_sp)
if (!MLXSW_CORE_RES_VALID(mlxsw_sp->core, PGT_SIZE))
return -EIO;
- pgt = kzalloc(sizeof(*mlxsw_sp->pgt), GFP_KERNEL);
+ pgt = kzalloc_obj(*mlxsw_sp->pgt, GFP_KERNEL);
if (!pgt)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_policer.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_policer.c
index 22ebb207ce4d..a6d849c7bb3d 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_policer.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_policer.c
@@ -243,7 +243,7 @@ int mlxsw_sp_policer_add(struct mlxsw_sp *mlxsw_sp,
if (err)
return err;
- policer = kmalloc(sizeof(*policer), GFP_KERNEL);
+ policer = kmalloc_obj(*policer, GFP_KERNEL);
if (!policer)
return -ENOMEM;
policer->params = *params;
@@ -357,7 +357,7 @@ int mlxsw_sp_policers_init(struct mlxsw_sp *mlxsw_sp)
struct mlxsw_sp_policer_core *policer_core;
int i, err;
- policer_core = kzalloc(sizeof(*policer_core), GFP_KERNEL);
+ policer_core = kzalloc_obj(*policer_core, GFP_KERNEL);
if (!policer_core)
return -ENOMEM;
mlxsw_sp->policer_core = policer_core;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_port_range.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_port_range.c
index 2d193de12be6..4afcb32e7d14 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_port_range.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_port_range.c
@@ -52,7 +52,7 @@ mlxsw_sp_port_range_reg_create(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_port_range_reg *prr;
int err;
- prr = kzalloc(sizeof(*prr), GFP_KERNEL);
+ prr = kzalloc_obj(*prr, GFP_KERNEL);
if (!prr)
return ERR_PTR(-ENOMEM);
@@ -172,7 +172,7 @@ int mlxsw_sp_port_range_init(struct mlxsw_sp *mlxsw_sp)
*/
WARN_ON(max > BITS_PER_BYTE * sizeof(u16));
- pr_core = kzalloc(sizeof(*mlxsw_sp->pr_core), GFP_KERNEL);
+ pr_core = kzalloc_obj(*mlxsw_sp->pr_core, GFP_KERNEL);
if (!pr_core)
return -ENOMEM;
mlxsw_sp->pr_core = pr_core;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
index 5b9f0844b8f6..4025b556b39c 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
@@ -277,7 +277,7 @@ mlxsw_sp1_ptp_clock_init(struct mlxsw_sp *mlxsw_sp, struct device *dev)
struct mlxsw_sp1_ptp_clock *clock;
int err;
- clock = kzalloc(sizeof(*clock), GFP_KERNEL);
+ clock = kzalloc_obj(*clock, GFP_KERNEL);
if (!clock)
return ERR_PTR(-ENOMEM);
@@ -446,7 +446,7 @@ mlxsw_sp2_ptp_clock_init(struct mlxsw_sp *mlxsw_sp, struct device *dev)
struct mlxsw_sp_ptp_clock *clock;
int err;
- clock = kzalloc(sizeof(*clock), GFP_KERNEL);
+ clock = kzalloc_obj(*clock, GFP_KERNEL);
if (!clock)
return ERR_PTR(-ENOMEM);
@@ -524,7 +524,7 @@ mlxsw_sp1_ptp_unmatched_save(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp1_ptp_unmatched *unmatched;
int err;
- unmatched = kzalloc(sizeof(*unmatched), GFP_ATOMIC);
+ unmatched = kzalloc_obj(*unmatched, GFP_ATOMIC);
if (!unmatched)
return -ENOMEM;
@@ -1032,7 +1032,7 @@ struct mlxsw_sp_ptp_state *mlxsw_sp1_ptp_init(struct mlxsw_sp *mlxsw_sp)
if (err)
return ERR_PTR(err);
- ptp_state = kzalloc(sizeof(*ptp_state), GFP_KERNEL);
+ ptp_state = kzalloc_obj(*ptp_state, GFP_KERNEL);
if (!ptp_state)
return ERR_PTR(-ENOMEM);
ptp_state->common.mlxsw_sp = mlxsw_sp;
@@ -1358,7 +1358,7 @@ struct mlxsw_sp_ptp_state *mlxsw_sp2_ptp_init(struct mlxsw_sp *mlxsw_sp)
if (!MLXSW_CORE_RES_VALID(mlxsw_sp->core, FID))
return ERR_PTR(-EIO);
- ptp_state = kzalloc(sizeof(*ptp_state), GFP_KERNEL);
+ ptp_state = kzalloc_obj(*ptp_state, GFP_KERNEL);
if (!ptp_state)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
index 4243d3b883ff..5e159b326100 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
@@ -365,9 +365,9 @@ static int mlxsw_sp_qdisc_create(struct mlxsw_sp_port *mlxsw_sp_port,
return err;
if (ops->num_classes) {
- mlxsw_sp_qdisc->qdiscs = kcalloc(ops->num_classes,
- sizeof(*mlxsw_sp_qdisc->qdiscs),
- GFP_KERNEL);
+ mlxsw_sp_qdisc->qdiscs = kzalloc_objs(*mlxsw_sp_qdisc->qdiscs,
+ ops->num_classes,
+ GFP_KERNEL);
if (!mlxsw_sp_qdisc->qdiscs)
return -ENOMEM;
@@ -1332,7 +1332,7 @@ __mlxsw_sp_qdisc_ets_replace(struct mlxsw_sp_port *mlxsw_sp_port,
int err;
if (!ets_data) {
- ets_data = kzalloc(sizeof(*ets_data), GFP_KERNEL);
+ ets_data = kzalloc_obj(*ets_data, GFP_KERNEL);
if (!ets_data)
return -ENOMEM;
mlxsw_sp_qdisc->ets_data = ets_data;
@@ -2021,7 +2021,7 @@ static int mlxsw_sp_qevent_mall_replace(struct mlxsw_sp *mlxsw_sp,
return -EOPNOTSUPP;
}
- mall_entry = kzalloc(sizeof(*mall_entry), GFP_KERNEL);
+ mall_entry = kzalloc_obj(*mall_entry, GFP_KERNEL);
if (!mall_entry)
return -ENOMEM;
mall_entry->cookie = f->cookie;
@@ -2100,7 +2100,7 @@ static struct mlxsw_sp_qevent_block *mlxsw_sp_qevent_block_create(struct mlxsw_s
{
struct mlxsw_sp_qevent_block *qevent_block;
- qevent_block = kzalloc(sizeof(*qevent_block), GFP_KERNEL);
+ qevent_block = kzalloc_obj(*qevent_block, GFP_KERNEL);
if (!qevent_block)
return NULL;
@@ -2132,7 +2132,7 @@ mlxsw_sp_qevent_binding_create(struct mlxsw_sp_port *mlxsw_sp_port, u32 handle,
{
struct mlxsw_sp_qevent_binding *binding;
- binding = kzalloc(sizeof(*binding), GFP_KERNEL);
+ binding = kzalloc_obj(*binding, GFP_KERNEL);
if (!binding)
return ERR_PTR(-ENOMEM);
@@ -2321,7 +2321,7 @@ int mlxsw_sp_tc_qdisc_init(struct mlxsw_sp_port *mlxsw_sp_port)
{
struct mlxsw_sp_qdisc_state *qdisc_state;
- qdisc_state = kzalloc(sizeof(*qdisc_state), GFP_KERNEL);
+ qdisc_state = kzalloc_obj(*qdisc_state, GFP_KERNEL);
if (!qdisc_state)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
index 2d0e89bd2fb9..417431895268 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
@@ -538,7 +538,7 @@ static struct mlxsw_sp_fib *mlxsw_sp_fib_create(struct mlxsw_sp *mlxsw_sp,
int err;
lpm_tree = mlxsw_sp->router->lpm.proto_trees[proto];
- fib = kzalloc(sizeof(*fib), GFP_KERNEL);
+ fib = kzalloc_obj(*fib, GFP_KERNEL);
if (!fib)
return ERR_PTR(-ENOMEM);
err = rhashtable_init(&fib->ht, &mlxsw_sp_fib_ht_params);
@@ -717,9 +717,9 @@ static int mlxsw_sp_lpm_init(struct mlxsw_sp *mlxsw_sp)
max_trees = MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_LPM_TREES);
mlxsw_sp->router->lpm.tree_count = max_trees - MLXSW_SP_LPM_TREE_MIN;
- mlxsw_sp->router->lpm.trees = kcalloc(mlxsw_sp->router->lpm.tree_count,
- sizeof(struct mlxsw_sp_lpm_tree),
- GFP_KERNEL);
+ mlxsw_sp->router->lpm.trees = kzalloc_objs(struct mlxsw_sp_lpm_tree,
+ mlxsw_sp->router->lpm.tree_count,
+ GFP_KERNEL);
if (!mlxsw_sp->router->lpm.trees)
return -ENOMEM;
@@ -1038,8 +1038,8 @@ static int mlxsw_sp_vrs_init(struct mlxsw_sp *mlxsw_sp)
return -EIO;
max_vrs = MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_VRS);
- mlxsw_sp->router->vrs = kcalloc(max_vrs, sizeof(struct mlxsw_sp_vr),
- GFP_KERNEL);
+ mlxsw_sp->router->vrs = kzalloc_objs(struct mlxsw_sp_vr, max_vrs,
+ GFP_KERNEL);
if (!mlxsw_sp->router->vrs)
return -ENOMEM;
@@ -1095,7 +1095,7 @@ mlxsw_sp_crif_alloc(struct net_device *dev)
{
struct mlxsw_sp_crif *crif;
- crif = kzalloc(sizeof(*crif), GFP_KERNEL);
+ crif = kzalloc_obj(*crif, GFP_KERNEL);
if (!crif)
return NULL;
@@ -1178,7 +1178,7 @@ mlxsw_sp_ipip_entry_alloc(struct mlxsw_sp *mlxsw_sp,
int err;
ipip_ops = mlxsw_sp->router->ipip_ops_arr[ipipt];
- ipip_entry = kzalloc(sizeof(*ipip_entry), GFP_KERNEL);
+ ipip_entry = kzalloc_obj(*ipip_entry, GFP_KERNEL);
if (!ipip_entry)
return ERR_PTR(-ENOMEM);
@@ -2261,7 +2261,7 @@ mlxsw_sp_neigh_entry_alloc(struct mlxsw_sp *mlxsw_sp, struct neighbour *n,
{
struct mlxsw_sp_neigh_entry *neigh_entry;
- neigh_entry = kzalloc(sizeof(*neigh_entry), GFP_KERNEL);
+ neigh_entry = kzalloc_obj(*neigh_entry, GFP_KERNEL);
if (!neigh_entry)
return NULL;
@@ -2856,7 +2856,7 @@ static int mlxsw_sp_router_schedule_work(struct net *net,
if (!net_eq(net, mlxsw_sp_net(router->mlxsw_sp)))
return NOTIFY_DONE;
- net_work = kzalloc(sizeof(*net_work), GFP_ATOMIC);
+ net_work = kzalloc_obj(*net_work, GFP_ATOMIC);
if (!net_work)
return NOTIFY_BAD;
@@ -3172,7 +3172,7 @@ mlxsw_sp_nexthop_counter_alloc(struct mlxsw_sp *mlxsw_sp)
struct mlxsw_sp_nexthop_counter *nhct;
int err;
- nhct = kzalloc(sizeof(*nhct), GFP_KERNEL);
+ nhct = kzalloc_obj(*nhct, GFP_KERNEL);
if (!nhct)
return ERR_PTR(-ENOMEM);
@@ -3404,7 +3404,7 @@ mlxsw_sp_nexthop_group_vr_entry_create(struct mlxsw_sp_nexthop_group *nh_grp,
struct mlxsw_sp_nexthop_group_vr_entry *vr_entry;
int err;
- vr_entry = kzalloc(sizeof(*vr_entry), GFP_KERNEL);
+ vr_entry = kzalloc_obj(*vr_entry, GFP_KERNEL);
if (!vr_entry)
return -ENOMEM;
@@ -5198,7 +5198,7 @@ mlxsw_sp_nexthop_obj_group_info_init(struct mlxsw_sp *mlxsw_sp,
return -EINVAL;
}
- nhgi = kzalloc(struct_size(nhgi, nexthops, nhs), GFP_KERNEL);
+ nhgi = kzalloc_flex(*nhgi, nexthops, nhs, GFP_KERNEL);
if (!nhgi)
return -ENOMEM;
nh_grp->nhgi = nhgi;
@@ -5304,7 +5304,7 @@ mlxsw_sp_nexthop_obj_group_create(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_nexthop_group *nh_grp;
int err;
- nh_grp = kzalloc(sizeof(*nh_grp), GFP_KERNEL);
+ nh_grp = kzalloc_obj(*nh_grp, GFP_KERNEL);
if (!nh_grp)
return ERR_PTR(-ENOMEM);
INIT_LIST_HEAD(&nh_grp->vr_list);
@@ -5779,7 +5779,7 @@ mlxsw_sp_nexthop4_group_info_init(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_nexthop *nh;
int err, i;
- nhgi = kzalloc(struct_size(nhgi, nexthops, nhs), GFP_KERNEL);
+ nhgi = kzalloc_flex(*nhgi, nexthops, nhs, GFP_KERNEL);
if (!nhgi)
return -ENOMEM;
nh_grp->nhgi = nhgi;
@@ -5841,7 +5841,7 @@ mlxsw_sp_nexthop4_group_create(struct mlxsw_sp *mlxsw_sp, struct fib_info *fi)
struct mlxsw_sp_nexthop_group *nh_grp;
int err;
- nh_grp = kzalloc(sizeof(*nh_grp), GFP_KERNEL);
+ nh_grp = kzalloc_obj(*nh_grp, GFP_KERNEL);
if (!nh_grp)
return ERR_PTR(-ENOMEM);
INIT_LIST_HEAD(&nh_grp->vr_list);
@@ -6481,7 +6481,7 @@ mlxsw_sp_fib4_entry_create(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_fib_entry *fib_entry;
int err;
- fib4_entry = kzalloc(sizeof(*fib4_entry), GFP_KERNEL);
+ fib4_entry = kzalloc_obj(*fib4_entry, GFP_KERNEL);
if (!fib4_entry)
return ERR_PTR(-ENOMEM);
fib_entry = &fib4_entry->common;
@@ -6601,7 +6601,7 @@ mlxsw_sp_fib_node_create(struct mlxsw_sp_fib *fib, const void *addr,
{
struct mlxsw_sp_fib_node *fib_node;
- fib_node = kzalloc(sizeof(*fib_node), GFP_KERNEL);
+ fib_node = kzalloc_obj(*fib_node, GFP_KERNEL);
if (!fib_node)
return NULL;
@@ -6906,7 +6906,7 @@ static struct mlxsw_sp_rt6 *mlxsw_sp_rt6_create(struct fib6_info *rt)
{
struct mlxsw_sp_rt6 *mlxsw_sp_rt6;
- mlxsw_sp_rt6 = kzalloc(sizeof(*mlxsw_sp_rt6), GFP_KERNEL);
+ mlxsw_sp_rt6 = kzalloc_obj(*mlxsw_sp_rt6, GFP_KERNEL);
if (!mlxsw_sp_rt6)
return ERR_PTR(-ENOMEM);
@@ -7032,8 +7032,7 @@ mlxsw_sp_nexthop6_group_info_init(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_nexthop *nh;
int err, i;
- nhgi = kzalloc(struct_size(nhgi, nexthops, fib6_entry->nrt6),
- GFP_KERNEL);
+ nhgi = kzalloc_flex(*nhgi, nexthops, fib6_entry->nrt6, GFP_KERNEL);
if (!nhgi)
return -ENOMEM;
nh_grp->nhgi = nhgi;
@@ -7099,7 +7098,7 @@ mlxsw_sp_nexthop6_group_create(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_nexthop_group *nh_grp;
int err;
- nh_grp = kzalloc(sizeof(*nh_grp), GFP_KERNEL);
+ nh_grp = kzalloc_obj(*nh_grp, GFP_KERNEL);
if (!nh_grp)
return ERR_PTR(-ENOMEM);
INIT_LIST_HEAD(&nh_grp->vr_list);
@@ -7378,7 +7377,7 @@ mlxsw_sp_fib6_entry_create(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_rt6 *mlxsw_sp_rt6;
int err, i;
- fib6_entry = kzalloc(sizeof(*fib6_entry), GFP_KERNEL);
+ fib6_entry = kzalloc_obj(*fib6_entry, GFP_KERNEL);
if (!fib6_entry)
return ERR_PTR(-ENOMEM);
fib_entry = &fib6_entry->common;
@@ -7827,7 +7826,7 @@ mlxsw_sp_router_fib6_work_init(struct mlxsw_sp_fib6_event_work *fib6_work,
nrt6 = fen6_info->nsiblings + 1;
- rt_arr = kcalloc(nrt6, sizeof(struct fib6_info *), GFP_ATOMIC);
+ rt_arr = kzalloc_objs(struct fib6_info *, nrt6, GFP_ATOMIC);
if (!rt_arr)
return -ENOMEM;
@@ -8139,7 +8138,7 @@ static int mlxsw_sp_router_fib_event(struct notifier_block *nb,
break;
}
- fib_work = kzalloc(sizeof(*fib_work), GFP_ATOMIC);
+ fib_work = kzalloc_obj(*fib_work, GFP_ATOMIC);
if (!fib_work)
return NOTIFY_BAD;
@@ -8542,7 +8541,7 @@ mlxsw_sp_router_hwstats_notify_schedule(struct net_device *dev)
* later.
*/
- hws_work = kzalloc(sizeof(*hws_work), GFP_KERNEL);
+ hws_work = kzalloc_obj(*hws_work, GFP_KERNEL);
if (!hws_work)
return;
@@ -8947,7 +8946,7 @@ mlxsw_sp_rif_mac_profile_alloc(const char *mac)
{
struct mlxsw_sp_rif_mac_profile *profile;
- profile = kzalloc(sizeof(*profile), GFP_KERNEL);
+ profile = kzalloc_obj(*profile, GFP_KERNEL);
if (!profile)
return NULL;
@@ -9594,7 +9593,7 @@ static int mlxsw_sp_inet6addr_event(struct notifier_block *nb,
if (event == NETDEV_UP)
return NOTIFY_DONE;
- inet6addr_work = kzalloc(sizeof(*inet6addr_work), GFP_ATOMIC);
+ inet6addr_work = kzalloc_obj(*inet6addr_work, GFP_ATOMIC);
if (!inet6addr_work)
return NOTIFY_BAD;
@@ -11069,9 +11068,8 @@ static int mlxsw_sp_rifs_init(struct mlxsw_sp *mlxsw_sp)
mlxsw_sp->router->max_rif_mac_profile =
MLXSW_CORE_RES_GET(core, MAX_RIF_MAC_PROFILES);
- mlxsw_sp->router->rifs = kcalloc(max_rifs,
- sizeof(struct mlxsw_sp_rif *),
- GFP_KERNEL);
+ mlxsw_sp->router->rifs = kzalloc_objs(struct mlxsw_sp_rif *, max_rifs,
+ GFP_KERNEL);
if (!mlxsw_sp->router->rifs)
return -ENOMEM;
@@ -11584,7 +11582,7 @@ int mlxsw_sp_router_init(struct mlxsw_sp *mlxsw_sp,
struct notifier_block *nb;
int err;
- router = kzalloc(sizeof(*mlxsw_sp->router), GFP_KERNEL);
+ router = kzalloc_obj(*mlxsw_sp->router, GFP_KERNEL);
if (!router)
return -ENOMEM;
mutex_init(&router->lock);
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
index 32d2e61f2b82..79b0ed4e4c71 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c
@@ -87,7 +87,7 @@ int mlxsw_sp_span_init(struct mlxsw_sp *mlxsw_sp)
return -EIO;
entries_count = MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_SPAN);
- span = kzalloc(struct_size(span, entries, entries_count), GFP_KERNEL);
+ span = kzalloc_flex(*span, entries, entries_count, GFP_KERNEL);
if (!span)
return -ENOMEM;
refcount_set(&span->policer_id_base_ref_count, 0);
@@ -1120,7 +1120,7 @@ mlxsw_sp_span_analyzed_port_create(struct mlxsw_sp_span *span,
struct mlxsw_sp_span_analyzed_port *analyzed_port;
int err;
- analyzed_port = kzalloc(sizeof(*analyzed_port), GFP_KERNEL);
+ analyzed_port = kzalloc_obj(*analyzed_port, GFP_KERNEL);
if (!analyzed_port)
return ERR_PTR(-ENOMEM);
@@ -1505,7 +1505,7 @@ mlxsw_sp_span_trigger_entry_create(struct mlxsw_sp_span *span,
struct mlxsw_sp_span_trigger_entry *trigger_entry;
int err;
- trigger_entry = kzalloc(sizeof(*trigger_entry), GFP_KERNEL);
+ trigger_entry = kzalloc_obj(*trigger_entry, GFP_KERNEL);
if (!trigger_entry)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
index a48bf342084d..7c386ee2ea74 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
@@ -262,7 +262,7 @@ mlxsw_sp_bridge_device_create(struct mlxsw_sp_bridge *bridge,
return ERR_PTR(-EINVAL);
}
- bridge_device = kzalloc(sizeof(*bridge_device), GFP_KERNEL);
+ bridge_device = kzalloc_obj(*bridge_device, GFP_KERNEL);
if (!bridge_device)
return ERR_PTR(-ENOMEM);
@@ -478,7 +478,7 @@ mlxsw_sp_bridge_port_create(struct mlxsw_sp_bridge_device *bridge_device,
struct mlxsw_sp_port *mlxsw_sp_port;
int err;
- bridge_port = kzalloc(sizeof(*bridge_port), GFP_KERNEL);
+ bridge_port = kzalloc_obj(*bridge_port, GFP_KERNEL);
if (!bridge_port)
return ERR_PTR(-ENOMEM);
@@ -625,7 +625,7 @@ mlxsw_sp_bridge_vlan_create(struct mlxsw_sp_bridge_port *bridge_port, u16 vid)
{
struct mlxsw_sp_bridge_vlan *bridge_vlan;
- bridge_vlan = kzalloc(sizeof(*bridge_vlan), GFP_KERNEL);
+ bridge_vlan = kzalloc_obj(*bridge_vlan, GFP_KERNEL);
if (!bridge_vlan)
return NULL;
@@ -1131,7 +1131,7 @@ mlxsw_sp_mdb_entry_port_get(struct mlxsw_sp *mlxsw_sp,
if (err)
return ERR_PTR(err);
- mdb_entry_port = kzalloc(sizeof(*mdb_entry_port), GFP_KERNEL);
+ mdb_entry_port = kzalloc_obj(*mdb_entry_port, GFP_KERNEL);
if (!mdb_entry_port) {
err = -ENOMEM;
goto err_mdb_entry_port_alloc;
@@ -1195,7 +1195,7 @@ mlxsw_sp_mdb_entry_mrouter_port_get(struct mlxsw_sp *mlxsw_sp,
if (err)
return ERR_PTR(err);
- mdb_entry_port = kzalloc(sizeof(*mdb_entry_port), GFP_KERNEL);
+ mdb_entry_port = kzalloc_obj(*mdb_entry_port, GFP_KERNEL);
if (!mdb_entry_port) {
err = -ENOMEM;
goto err_mdb_entry_port_alloc;
@@ -2027,7 +2027,7 @@ mlxsw_sp_mc_mdb_entry_init(struct mlxsw_sp *mlxsw_sp,
struct mlxsw_sp_mdb_entry *mdb_entry;
int err;
- mdb_entry = kzalloc(sizeof(*mdb_entry), GFP_KERNEL);
+ mdb_entry = kzalloc_obj(*mdb_entry, GFP_KERNEL);
if (!mdb_entry)
return ERR_PTR(-ENOMEM);
@@ -3784,7 +3784,7 @@ static int mlxsw_sp_switchdev_event(struct notifier_block *unused,
if (!mlxsw_sp_port_dev_lower_find_rcu(br_dev))
return NOTIFY_DONE;
- switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC);
+ switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC);
if (!switchdev_work)
return NOTIFY_BAD;
@@ -4169,7 +4169,7 @@ int mlxsw_sp_switchdev_init(struct mlxsw_sp *mlxsw_sp)
{
struct mlxsw_sp_bridge *bridge;
- bridge = kzalloc(sizeof(*mlxsw_sp->bridge), GFP_KERNEL);
+ bridge = kzalloc_obj(*mlxsw_sp->bridge, GFP_KERNEL);
if (!bridge)
return -ENOMEM;
mlxsw_sp->bridge = bridge;
diff --git a/drivers/net/ethernet/meta/fbnic/fbnic_txrx.c b/drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
index 4aaa928bf8ab..e4e1af365460 100644
--- a/drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
+++ b/drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
@@ -1640,7 +1640,7 @@ static int fbnic_alloc_napi_vector(struct fbnic_dev *fbd, struct fbnic_net *fbn,
return -EIO;
/* Allocate NAPI vector and queue triads */
- nv = kzalloc(struct_size(nv, qt, qt_count), GFP_KERNEL);
+ nv = kzalloc_flex(*nv, qt, qt_count, GFP_KERNEL);
if (!nv)
return -ENOMEM;
diff --git a/drivers/net/ethernet/micrel/ksz884x.c b/drivers/net/ethernet/micrel/ksz884x.c
index 491e9ce3d9b0..e594ea78b118 100644
--- a/drivers/net/ethernet/micrel/ksz884x.c
+++ b/drivers/net/ethernet/micrel/ksz884x.c
@@ -3991,8 +3991,8 @@ static void ksz_update_timer(struct ksz_timer_info *info)
*/
static int ksz_alloc_soft_desc(struct ksz_desc_info *desc_info, int transmit)
{
- desc_info->ring = kcalloc(desc_info->alloc, sizeof(struct ksz_desc),
- GFP_KERNEL);
+ desc_info->ring = kzalloc_objs(struct ksz_desc, desc_info->alloc,
+ GFP_KERNEL);
if (!desc_info->ring)
return 1;
hw_init_desc(desc_info, transmit);
@@ -6577,7 +6577,7 @@ static int pcidev_init(struct pci_dev *pdev, const struct pci_device_id *id)
result = -ENOMEM;
- info = kzalloc(sizeof(struct platform_info), GFP_KERNEL);
+ info = kzalloc_obj(struct platform_info, GFP_KERNEL);
if (!info)
goto pcidev_init_dev_err;
@@ -6630,7 +6630,7 @@ static int pcidev_init(struct pci_dev *pdev, const struct pci_device_id *id)
mib_port_count = SWITCH_PORT_NUM;
}
hw->mib_port_cnt = TOTAL_PORT_NUM;
- hw->ksz_switch = kzalloc(sizeof(struct ksz_switch), GFP_KERNEL);
+ hw->ksz_switch = kzalloc_obj(struct ksz_switch, GFP_KERNEL);
if (!hw->ksz_switch)
goto pcidev_init_alloc_err;
diff --git a/drivers/net/ethernet/microchip/lan743x_main.c b/drivers/net/ethernet/microchip/lan743x_main.c
index e4c542fc6c2b..7ab6ad877a3c 100644
--- a/drivers/net/ethernet/microchip/lan743x_main.c
+++ b/drivers/net/ethernet/microchip/lan743x_main.c
@@ -2141,7 +2141,7 @@ static int lan743x_tx_ring_init(struct lan743x_tx *tx)
tx->ring_cpu_ptr = (struct lan743x_tx_descriptor *)cpu_ptr;
tx->ring_dma_ptr = dma_ptr;
- cpu_ptr = kcalloc(tx->ring_size, sizeof(*tx->buffer_info), GFP_KERNEL);
+ cpu_ptr = kzalloc_objs(*tx->buffer_info, tx->ring_size, GFP_KERNEL);
if (!cpu_ptr) {
ret = -ENOMEM;
goto cleanup;
@@ -2686,8 +2686,7 @@ static int lan743x_rx_ring_init(struct lan743x_rx *rx)
rx->ring_cpu_ptr = (struct lan743x_rx_descriptor *)cpu_ptr;
rx->ring_dma_ptr = dma_ptr;
- cpu_ptr = kcalloc(rx->ring_size, sizeof(*rx->buffer_info),
- GFP_KERNEL);
+ cpu_ptr = kzalloc_objs(*rx->buffer_info, rx->ring_size, GFP_KERNEL);
if (!cpu_ptr) {
ret = -ENOMEM;
goto cleanup;
diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c b/drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
index 2ea263e893ee..cddd5dd35feb 100644
--- a/drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
+++ b/drivers/net/ethernet/microchip/lan966x/lan966x_fdb.c
@@ -46,7 +46,7 @@ static void lan966x_fdb_add_entry(struct lan966x *lan966x,
return;
}
- fdb_entry = kzalloc(sizeof(*fdb_entry), GFP_KERNEL);
+ fdb_entry = kzalloc_obj(*fdb_entry, GFP_KERNEL);
if (!fdb_entry)
return;
@@ -262,7 +262,7 @@ int lan966x_handle_fdb(struct net_device *dev,
!fdb_info->added_by_user)
break;
- fdb_work = kzalloc(sizeof(*fdb_work), GFP_ATOMIC);
+ fdb_work = kzalloc_obj(*fdb_work, GFP_ATOMIC);
if (!fdb_work)
return -ENOMEM;
diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c b/drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
index 502670718104..13e22179f57a 100644
--- a/drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
+++ b/drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
@@ -200,8 +200,8 @@ static int lan966x_fdma_tx_alloc(struct lan966x_tx *tx)
struct fdma *fdma = &tx->fdma;
int err;
- tx->dcbs_buf = kcalloc(fdma->n_dcbs, sizeof(struct lan966x_tx_dcb_buf),
- GFP_KERNEL);
+ tx->dcbs_buf = kzalloc_objs(struct lan966x_tx_dcb_buf, fdma->n_dcbs,
+ GFP_KERNEL);
if (!tx->dcbs_buf)
return -ENOMEM;
diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_mac.c b/drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
index baa3a30c039f..7a2294a0d099 100644
--- a/drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
+++ b/drivers/net/ethernet/microchip/lan966x/lan966x_mac.c
@@ -206,7 +206,7 @@ static struct lan966x_mac_entry *lan966x_mac_alloc_entry(struct lan966x_port *po
{
struct lan966x_mac_entry *mac_entry;
- mac_entry = kzalloc(sizeof(*mac_entry), GFP_ATOMIC);
+ mac_entry = kzalloc_obj(*mac_entry, GFP_ATOMIC);
if (!mac_entry)
return NULL;
diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c b/drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
index 2af55268bf4d..aef4bc288e05 100644
--- a/drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
+++ b/drivers/net/ethernet/microchip/lan966x/lan966x_mdb.c
@@ -74,7 +74,7 @@ lan966x_mdb_entry_add(struct lan966x *lan966x,
{
struct lan966x_mdb_entry *mdb_entry;
- mdb_entry = kzalloc(sizeof(*mdb_entry), GFP_KERNEL);
+ mdb_entry = kzalloc_obj(*mdb_entry, GFP_KERNEL);
if (!mdb_entry)
return ERR_PTR(-ENOMEM);
@@ -184,7 +184,7 @@ lan966x_pgid_entry_add(struct lan966x *lan966x, int index, u16 ports)
{
struct lan966x_pgid_entry *pgid_entry;
- pgid_entry = kzalloc(sizeof(*pgid_entry), GFP_KERNEL);
+ pgid_entry = kzalloc_obj(*pgid_entry, GFP_KERNEL);
if (!pgid_entry)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c b/drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
index 2a37fc1ba4bc..cb07178f55fa 100644
--- a/drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
+++ b/drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
@@ -611,7 +611,7 @@ lan966x_vcap_admin_alloc(struct lan966x *lan966x, struct vcap_control *ctrl,
{
struct vcap_admin *admin;
- admin = kzalloc(sizeof(*admin), GFP_KERNEL);
+ admin = kzalloc_obj(*admin, GFP_KERNEL);
if (!admin)
return ERR_PTR(-ENOMEM);
@@ -712,7 +712,7 @@ int lan966x_vcap_init(struct lan966x *lan966x)
struct vcap_admin *admin;
struct dentry *dir;
- ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL);
+ ctrl = kzalloc_obj(*ctrl, GFP_KERNEL);
if (!ctrl)
return -ENOMEM;
diff --git a/drivers/net/ethernet/microchip/sparx5/lan969x/lan969x_fdma.c b/drivers/net/ethernet/microchip/sparx5/lan969x/lan969x_fdma.c
index 1282f5c3ee6d..57a24cbfb398 100644
--- a/drivers/net/ethernet/microchip/sparx5/lan969x/lan969x_fdma.c
+++ b/drivers/net/ethernet/microchip/sparx5/lan969x/lan969x_fdma.c
@@ -186,9 +186,7 @@ static int lan969x_fdma_tx_alloc(struct sparx5 *sparx5)
struct fdma *fdma = &tx->fdma;
int err;
- tx->dbs = kcalloc(fdma->n_dcbs,
- sizeof(struct sparx5_tx_buf),
- GFP_KERNEL);
+ tx->dbs = kzalloc_objs(struct sparx5_tx_buf, fdma->n_dcbs, GFP_KERNEL);
if (!tx->dbs)
return -ENOMEM;
diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_calendar.c b/drivers/net/ethernet/microchip/sparx5/sparx5_calendar.c
index 5c46d81de530..19321de0712e 100644
--- a/drivers/net/ethernet/microchip/sparx5/sparx5_calendar.c
+++ b/drivers/net/ethernet/microchip/sparx5/sparx5_calendar.c
@@ -585,7 +585,7 @@ int sparx5_config_dsm_calendar(struct sparx5 *sparx5)
struct sparx5_calendar_data *data;
int err = 0;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_main.c b/drivers/net/ethernet/microchip/sparx5/sparx5_main.c
index 582145713cfd..8c7894a69e5c 100644
--- a/drivers/net/ethernet/microchip/sparx5/sparx5_main.c
+++ b/drivers/net/ethernet/microchip/sparx5/sparx5_main.c
@@ -889,8 +889,8 @@ static int mchp_sparx5_probe(struct platform_device *pdev)
}
sparx5->port_count = of_get_child_count(ports);
- configs = kcalloc(sparx5->port_count,
- sizeof(struct initial_port_config), GFP_KERNEL);
+ configs = kzalloc_objs(struct initial_port_config, sparx5->port_count,
+ GFP_KERNEL);
if (!configs) {
err = -ENOMEM;
goto cleanup_pnode;
diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_switchdev.c b/drivers/net/ethernet/microchip/sparx5/sparx5_switchdev.c
index 0a71abbd3da5..6743c5ef3efd 100644
--- a/drivers/net/ethernet/microchip/sparx5/sparx5_switchdev.c
+++ b/drivers/net/ethernet/microchip/sparx5/sparx5_switchdev.c
@@ -398,7 +398,7 @@ static int sparx5_switchdev_event(struct notifier_block *nb,
case SWITCHDEV_FDB_ADD_TO_DEVICE:
fallthrough;
case SWITCHDEV_FDB_DEL_TO_DEVICE:
- switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC);
+ switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC);
if (!switchdev_work)
return NOTIFY_BAD;
@@ -465,7 +465,7 @@ static int sparx5_alloc_mdb_entry(struct sparx5 *sparx5,
u16 pgid_idx;
int err;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c b/drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c
index 4dc1ebd5d510..57d88fe32752 100644
--- a/drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c
+++ b/drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c
@@ -1464,7 +1464,7 @@ static int sparx5_tc_flower_template_create(struct net_device *ndev,
return -EBUSY;
}
- ftp = kzalloc(sizeof(*ftp), GFP_KERNEL);
+ ftp = kzalloc_obj(*ftp, GFP_KERNEL);
if (!ftp)
return -ENOMEM;
diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_tc_matchall.c b/drivers/net/ethernet/microchip/sparx5/sparx5_tc_matchall.c
index 6b4d1d7b9730..cd0f44a6c88e 100644
--- a/drivers/net/ethernet/microchip/sparx5/sparx5_tc_matchall.c
+++ b/drivers/net/ethernet/microchip/sparx5/sparx5_tc_matchall.c
@@ -60,7 +60,7 @@ static int sparx5_tc_matchall_replace(struct net_device *ndev,
}
action = &tmo->rule->action.entries[0];
- mall_entry = kzalloc(sizeof(*mall_entry), GFP_KERNEL);
+ mall_entry = kzalloc_obj(*mall_entry, GFP_KERNEL);
if (!mall_entry)
return -ENOMEM;
diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c b/drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
index 25066ddb8d4d..4bf3be00d627 100644
--- a/drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
+++ b/drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
@@ -1944,7 +1944,7 @@ sparx5_vcap_admin_alloc(struct sparx5 *sparx5, struct vcap_control *ctrl,
{
struct vcap_admin *admin;
- admin = kzalloc(sizeof(*admin), GFP_KERNEL);
+ admin = kzalloc_obj(*admin, GFP_KERNEL);
if (!admin)
return ERR_PTR(-ENOMEM);
INIT_LIST_HEAD(&admin->list);
@@ -2047,7 +2047,7 @@ int sparx5_vcap_init(struct sparx5 *sparx5)
* - Initialize VCAP blocks
* - Configure port keysets
*/
- ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL);
+ ctrl = kzalloc_obj(*ctrl, GFP_KERNEL);
if (!ctrl)
return -ENOMEM;
diff --git a/drivers/net/ethernet/microchip/vcap/vcap_api.c b/drivers/net/ethernet/microchip/vcap/vcap_api.c
index 2687765abe52..29fe5101db4c 100644
--- a/drivers/net/ethernet/microchip/vcap/vcap_api.c
+++ b/drivers/net/ethernet/microchip/vcap/vcap_api.c
@@ -1004,7 +1004,7 @@ static struct vcap_rule_internal *vcap_dup_rule(struct vcap_rule_internal *ri,
struct vcap_rule_internal *duprule;
/* Allocate the client part */
- duprule = kzalloc(sizeof(*duprule), GFP_KERNEL);
+ duprule = kzalloc_obj(*duprule, GFP_KERNEL);
if (!duprule)
return ERR_PTR(-ENOMEM);
*duprule = *ri;
@@ -1309,7 +1309,7 @@ static void vcap_rule_alloc_keyfield(struct vcap_rule_internal *ri,
{
struct vcap_client_keyfield *field;
- field = kzalloc(sizeof(*field), GFP_KERNEL);
+ field = kzalloc_obj(*field, GFP_KERNEL);
if (!field)
return;
INIT_LIST_HEAD(&field->ctrl.list);
@@ -1418,7 +1418,7 @@ static void vcap_rule_alloc_actionfield(struct vcap_rule_internal *ri,
{
struct vcap_client_actionfield *field;
- field = kzalloc(sizeof(*field), GFP_KERNEL);
+ field = kzalloc_obj(*field, GFP_KERNEL);
if (!field)
return;
INIT_LIST_HEAD(&field->ctrl.list);
@@ -2345,7 +2345,7 @@ struct vcap_rule *vcap_alloc_rule(struct vcap_control *vctrl,
}
/* Create a container for the rule and return it */
- ri = kzalloc(sizeof(*ri), GFP_KERNEL);
+ ri = kzalloc_obj(*ri, GFP_KERNEL);
if (!ri) {
err = -ENOMEM;
goto out_unlock;
@@ -2689,7 +2689,7 @@ static int vcap_rule_add_key(struct vcap_rule *rule,
return -EINVAL;
}
- field = kzalloc(sizeof(*field), GFP_KERNEL);
+ field = kzalloc_obj(*field, GFP_KERNEL);
if (!field)
return -ENOMEM;
memcpy(&field->data, data, sizeof(field->data));
@@ -2857,7 +2857,7 @@ static int vcap_rule_add_action(struct vcap_rule *rule,
return -EINVAL;
}
- field = kzalloc(sizeof(*field), GFP_KERNEL);
+ field = kzalloc_obj(*field, GFP_KERNEL);
if (!field)
return -ENOMEM;
memcpy(&field->data, data, sizeof(field->data));
@@ -3125,7 +3125,7 @@ static int vcap_enable(struct vcap_control *vctrl, struct net_device *ndev,
if (!admin)
return -ENOENT;
- eport = kzalloc(sizeof(*eport), GFP_KERNEL);
+ eport = kzalloc_obj(*eport, GFP_KERNEL);
if (!eport)
return -ENOMEM;
diff --git a/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c b/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
index 16eb3de60eb6..c57919278783 100644
--- a/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
+++ b/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
@@ -2037,7 +2037,7 @@ static void vcap_api_filter_unsupported_keys_test(struct kunit *test)
/* Add all keys to the rule */
INIT_LIST_HEAD(&ri.data.keyfields);
for (idx = 0; idx < ARRAY_SIZE(keylist); idx++) {
- ckf = kzalloc(sizeof(*ckf), GFP_KERNEL);
+ ckf = kzalloc_obj(*ckf, GFP_KERNEL);
if (ckf) {
ckf->ctrl.key = keylist[idx];
list_add_tail(&ckf->ctrl.list, &ri.data.keyfields);
@@ -2161,7 +2161,7 @@ static void vcap_api_filter_keylist_test(struct kunit *test)
/* Add all keys to the rule */
INIT_LIST_HEAD(&ri.data.keyfields);
for (idx = 0; idx < ARRAY_SIZE(keylist); idx++) {
- ckf = kzalloc(sizeof(*ckf), GFP_KERNEL);
+ ckf = kzalloc_obj(*ckf, GFP_KERNEL);
if (ckf) {
ckf->ctrl.key = keylist[idx];
list_add_tail(&ckf->ctrl.list, &ri.data.keyfields);
diff --git a/drivers/net/ethernet/microsoft/mana/gdma_main.c b/drivers/net/ethernet/microsoft/mana/gdma_main.c
index 0055c231acf6..dc7c29240cac 100644
--- a/drivers/net/ethernet/microsoft/mana/gdma_main.c
+++ b/drivers/net/ethernet/microsoft/mana/gdma_main.c
@@ -634,7 +634,7 @@ static void mana_gd_process_eqe(struct gdma_queue *eq)
break;
}
- mns_wk = kzalloc(sizeof(*mns_wk), GFP_ATOMIC);
+ mns_wk = kzalloc_obj(*mns_wk, GFP_ATOMIC);
if (!mns_wk) {
module_put(THIS_MODULE);
break;
@@ -923,7 +923,7 @@ int mana_gd_create_hwc_queue(struct gdma_dev *gd,
struct gdma_queue *queue;
int err;
- queue = kzalloc(sizeof(*queue), GFP_KERNEL);
+ queue = kzalloc_obj(*queue, GFP_KERNEL);
if (!queue)
return -ENOMEM;
@@ -1062,7 +1062,7 @@ int mana_gd_create_mana_eq(struct gdma_dev *gd,
if (spec->type != GDMA_EQ)
return -EINVAL;
- queue = kzalloc(sizeof(*queue), GFP_KERNEL);
+ queue = kzalloc_obj(*queue, GFP_KERNEL);
if (!queue)
return -ENOMEM;
@@ -1115,7 +1115,7 @@ int mana_gd_create_mana_wq_cq(struct gdma_dev *gd,
spec->type != GDMA_RQ)
return -EINVAL;
- queue = kzalloc(sizeof(*queue), GFP_KERNEL);
+ queue = kzalloc_obj(*queue, GFP_KERNEL);
if (!queue)
return -ENOMEM;
@@ -1625,7 +1625,7 @@ static int mana_gd_setup_dyn_irqs(struct pci_dev *pdev, int nvec)
bool skip_first_cpu = false;
int *irqs, irq, err, i;
- irqs = kmalloc_array(nvec, sizeof(int), GFP_KERNEL);
+ irqs = kmalloc_objs(int, nvec, GFP_KERNEL);
if (!irqs)
return -ENOMEM;
@@ -1636,7 +1636,7 @@ static int mana_gd_setup_dyn_irqs(struct pci_dev *pdev, int nvec)
* further used in irq_setup()
*/
for (i = 1; i <= nvec; i++) {
- gic = kzalloc(sizeof(*gic), GFP_KERNEL);
+ gic = kzalloc_obj(*gic, GFP_KERNEL);
if (!gic) {
err = -ENOMEM;
goto free_irq;
@@ -1707,14 +1707,14 @@ static int mana_gd_setup_irqs(struct pci_dev *pdev, int nvec)
unsigned int cpu;
int err, i;
- irqs = kmalloc_array(nvec, sizeof(int), GFP_KERNEL);
+ irqs = kmalloc_objs(int, nvec, GFP_KERNEL);
if (!irqs)
return -ENOMEM;
start_irqs = irqs;
for (i = 0; i < nvec; i++) {
- gic = kzalloc(sizeof(*gic), GFP_KERNEL);
+ gic = kzalloc_obj(*gic, GFP_KERNEL);
if (!gic) {
err = -ENOMEM;
goto free_irq;
@@ -2071,7 +2071,7 @@ static int mana_gd_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
dev_info(&pdev->dev, "Start MANA recovery mode\n");
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return err;
diff --git a/drivers/net/ethernet/microsoft/mana/hw_channel.c b/drivers/net/ethernet/microsoft/mana/hw_channel.c
index aa4e2731e2ba..f2221e65a6a3 100644
--- a/drivers/net/ethernet/microsoft/mana/hw_channel.c
+++ b/drivers/net/ethernet/microsoft/mana/hw_channel.c
@@ -407,7 +407,7 @@ static int mana_hwc_create_cq(struct hw_channel_context *hwc, u16 q_depth,
if (cq_size < MANA_MIN_QSIZE)
cq_size = MANA_MIN_QSIZE;
- hwc_cq = kzalloc(sizeof(*hwc_cq), GFP_KERNEL);
+ hwc_cq = kzalloc_obj(*hwc_cq, GFP_KERNEL);
if (!hwc_cq)
return -ENOMEM;
@@ -426,7 +426,7 @@ static int mana_hwc_create_cq(struct hw_channel_context *hwc, u16 q_depth,
}
hwc_cq->gdma_cq = cq;
- comp_buf = kcalloc(q_depth, sizeof(*comp_buf), GFP_KERNEL);
+ comp_buf = kzalloc_objs(*comp_buf, q_depth, GFP_KERNEL);
if (!comp_buf) {
err = -ENOMEM;
goto out;
@@ -461,7 +461,7 @@ static int mana_hwc_alloc_dma_buf(struct hw_channel_context *hwc, u16 q_depth,
int err;
u16 i;
- dma_buf = kzalloc(struct_size(dma_buf, reqs, q_depth), GFP_KERNEL);
+ dma_buf = kzalloc_flex(*dma_buf, reqs, q_depth, GFP_KERNEL);
if (!dma_buf)
return -ENOMEM;
@@ -539,7 +539,7 @@ static int mana_hwc_create_wq(struct hw_channel_context *hwc,
if (queue_size < MANA_MIN_QSIZE)
queue_size = MANA_MIN_QSIZE;
- hwc_wq = kzalloc(sizeof(*hwc_wq), GFP_KERNEL);
+ hwc_wq = kzalloc_obj(*hwc_wq, GFP_KERNEL);
if (!hwc_wq)
return -ENOMEM;
@@ -644,7 +644,7 @@ static int mana_hwc_test_channel(struct hw_channel_context *hwc, u16 q_depth,
return err;
}
- ctx = kcalloc(q_depth, sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_objs(*ctx, q_depth, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -750,7 +750,7 @@ int mana_hwc_create_channel(struct gdma_context *gc)
u16 q_depth_max;
int err;
- hwc = kzalloc(sizeof(*hwc), GFP_KERNEL);
+ hwc = kzalloc_obj(*hwc, GFP_KERNEL);
if (!hwc)
return -ENOMEM;
diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c
index 9b5a72ada5c4..5c9704f2041a 100644
--- a/drivers/net/ethernet/microsoft/mana/mana_en.c
+++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
@@ -491,9 +491,8 @@ netdev_tx_t mana_start_xmit(struct sk_buff *skb, struct net_device *ndev)
if (pkg.wqe_req.num_sge <= ARRAY_SIZE(pkg.sgl_array)) {
pkg.wqe_req.sgl = pkg.sgl_array;
} else {
- pkg.sgl_ptr = kmalloc_array(pkg.wqe_req.num_sge,
- sizeof(struct gdma_sge),
- GFP_ATOMIC);
+ pkg.sgl_ptr = kmalloc_objs(struct gdma_sge, pkg.wqe_req.num_sge,
+ GFP_ATOMIC);
if (!pkg.sgl_ptr)
goto tx_drop_count;
@@ -804,7 +803,7 @@ int mana_pre_alloc_rxbufs(struct mana_port_context *mpc, int new_mtu, int num_qu
if (!mpc->rxbufs_pre)
goto error;
- mpc->das_pre = kmalloc_array(num_rxb, sizeof(dma_addr_t), GFP_KERNEL);
+ mpc->das_pre = kmalloc_objs(dma_addr_t, num_rxb, GFP_KERNEL);
if (!mpc->das_pre)
goto error;
@@ -996,8 +995,7 @@ static void mana_cleanup_indir_table(struct mana_port_context *apc)
static int mana_init_port_context(struct mana_port_context *apc)
{
- apc->rxqs = kcalloc(apc->num_queues, sizeof(struct mana_rxq *),
- GFP_KERNEL);
+ apc->rxqs = kzalloc_objs(struct mana_rxq *, apc->num_queues, GFP_KERNEL);
return !apc->rxqs ? -ENOMEM : 0;
}
@@ -1634,8 +1632,7 @@ static int mana_create_eq(struct mana_context *ac)
int err;
int i;
- ac->eqs = kcalloc(gc->max_num_queues, sizeof(struct mana_eq),
- GFP_KERNEL);
+ ac->eqs = kzalloc_objs(struct mana_eq, gc->max_num_queues, GFP_KERNEL);
if (!ac->eqs)
return -ENOMEM;
@@ -2329,8 +2326,8 @@ static int mana_create_txq(struct mana_port_context *apc,
int err;
int i;
- apc->tx_qp = kcalloc(apc->num_queues, sizeof(struct mana_tx_qp),
- GFP_KERNEL);
+ apc->tx_qp = kzalloc_objs(struct mana_tx_qp, apc->num_queues,
+ GFP_KERNEL);
if (!apc->tx_qp)
return -ENOMEM;
@@ -2640,8 +2637,7 @@ static struct mana_rxq *mana_create_rxq(struct mana_port_context *apc,
gc = gd->gdma_context;
- rxq = kzalloc(struct_size(rxq, rx_oobs, apc->rx_queue_size),
- GFP_KERNEL);
+ rxq = kzalloc_flex(*rxq, rx_oobs, apc->rx_queue_size, GFP_KERNEL);
if (!rxq)
return NULL;
@@ -2856,7 +2852,8 @@ static int mana_rss_table_alloc(struct mana_port_context *apc)
if (!apc->indir_table)
return -ENOMEM;
- apc->rxobj_table = kcalloc(apc->indir_table_sz, sizeof(mana_handle_t), GFP_KERNEL);
+ apc->rxobj_table = kzalloc_objs(mana_handle_t, apc->indir_table_sz,
+ GFP_KERNEL);
if (!apc->rxobj_table) {
kfree(apc->indir_table);
return -ENOMEM;
@@ -3418,7 +3415,7 @@ static int add_adev(struct gdma_dev *gd, const char *name)
struct mana_adev *madev;
int ret;
- madev = kzalloc(sizeof(*madev), GFP_KERNEL);
+ madev = kzalloc_obj(*madev, GFP_KERNEL);
if (!madev)
return -ENOMEM;
@@ -3511,7 +3508,7 @@ int mana_rdma_service_event(struct gdma_context *gc, enum gdma_service_type even
return 0;
}
- serv_work = kzalloc(sizeof(*serv_work), GFP_ATOMIC);
+ serv_work = kzalloc_obj(*serv_work, GFP_ATOMIC);
if (!serv_work)
return -ENOMEM;
@@ -3562,7 +3559,7 @@ int mana_probe(struct gdma_dev *gd, bool resuming)
return err;
if (!resuming) {
- ac = kzalloc(sizeof(*ac), GFP_KERNEL);
+ ac = kzalloc_obj(*ac, GFP_KERNEL);
if (!ac)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mscc/ocelot.c b/drivers/net/ethernet/mscc/ocelot.c
index c345d9b17c89..a572170506cb 100644
--- a/drivers/net/ethernet/mscc/ocelot.c
+++ b/drivers/net/ethernet/mscc/ocelot.c
@@ -576,7 +576,7 @@ static int ocelot_update_vlan_reclassify_rule(struct ocelot *ocelot, int port)
}
/* Filter doesn't exist, create it */
- filter = kzalloc(sizeof(*filter), GFP_KERNEL);
+ filter = kzalloc_obj(*filter, GFP_KERNEL);
if (!filter)
return -ENOMEM;
@@ -682,7 +682,7 @@ static int ocelot_vlan_member_add(struct ocelot *ocelot, int port, u16 vid,
return 0;
}
- vlan = kzalloc(sizeof(*vlan), GFP_KERNEL);
+ vlan = kzalloc_obj(*vlan, GFP_KERNEL);
if (!vlan)
return -ENOMEM;
@@ -1664,7 +1664,7 @@ int ocelot_trap_add(struct ocelot *ocelot, int port,
trap = ocelot_vcap_block_find_filter_by_id(block_vcap_is2, cookie,
false);
if (!trap) {
- trap = kzalloc(sizeof(*trap), GFP_KERNEL);
+ trap = kzalloc_obj(*trap, GFP_KERNEL);
if (!trap)
return -ENOMEM;
@@ -2046,7 +2046,7 @@ static struct ocelot_pgid *ocelot_pgid_alloc(struct ocelot *ocelot, int index,
{
struct ocelot_pgid *pgid;
- pgid = kzalloc(sizeof(*pgid), GFP_KERNEL);
+ pgid = kzalloc_obj(*pgid, GFP_KERNEL);
if (!pgid)
return ERR_PTR(-ENOMEM);
@@ -2563,7 +2563,7 @@ int ocelot_lag_fdb_add(struct ocelot *ocelot, struct net_device *bond,
struct ocelot_lag_fdb *fdb;
int lag, err;
- fdb = kzalloc(sizeof(*fdb), GFP_KERNEL);
+ fdb = kzalloc_obj(*fdb, GFP_KERNEL);
if (!fdb)
return -ENOMEM;
@@ -2894,7 +2894,7 @@ struct ocelot_mirror *ocelot_mirror_get(struct ocelot *ocelot, int to,
return m;
}
- m = kzalloc(sizeof(*m), GFP_KERNEL);
+ m = kzalloc_obj(*m, GFP_KERNEL);
if (!m)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/mscc/ocelot_flower.c b/drivers/net/ethernet/mscc/ocelot_flower.c
index 986b1f150e3b..4fccc8adad56 100644
--- a/drivers/net/ethernet/mscc/ocelot_flower.c
+++ b/drivers/net/ethernet/mscc/ocelot_flower.c
@@ -833,7 +833,7 @@ static struct ocelot_vcap_filter
{
struct ocelot_vcap_filter *filter;
- filter = kzalloc(sizeof(*filter), GFP_KERNEL);
+ filter = kzalloc_obj(*filter, GFP_KERNEL);
if (!filter)
return NULL;
diff --git a/drivers/net/ethernet/mscc/ocelot_mrp.c b/drivers/net/ethernet/mscc/ocelot_mrp.c
index 3ccec488a304..04ae7a156f22 100644
--- a/drivers/net/ethernet/mscc/ocelot_mrp.c
+++ b/drivers/net/ethernet/mscc/ocelot_mrp.c
@@ -54,7 +54,7 @@ static int ocelot_mrp_redirect_add_vcap(struct ocelot *ocelot, int src_port,
struct ocelot_vcap_filter *filter;
int err;
- filter = kzalloc(sizeof(*filter), GFP_KERNEL);
+ filter = kzalloc_obj(*filter, GFP_KERNEL);
if (!filter)
return -ENOMEM;
diff --git a/drivers/net/ethernet/mscc/ocelot_vcap.c b/drivers/net/ethernet/mscc/ocelot_vcap.c
index 5734b86aed5b..ec193ed18050 100644
--- a/drivers/net/ethernet/mscc/ocelot_vcap.c
+++ b/drivers/net/ethernet/mscc/ocelot_vcap.c
@@ -910,7 +910,7 @@ int ocelot_vcap_policer_add(struct ocelot *ocelot, u32 pol_ix,
return 0;
}
- tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
return -ENOMEM;
diff --git a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c
index d9b5d7999370..75ee09571af6 100644
--- a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c
+++ b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c
@@ -3703,8 +3703,8 @@ static void myri10ge_probe_slices(struct myri10ge_priv *mgp)
* slices. We give up on MSI-X if we can only get a single
* vector. */
- mgp->msix_vectors = kcalloc(mgp->num_slices, sizeof(*mgp->msix_vectors),
- GFP_KERNEL);
+ mgp->msix_vectors = kzalloc_objs(*mgp->msix_vectors, mgp->num_slices,
+ GFP_KERNEL);
if (mgp->msix_vectors == NULL)
goto no_msix;
for (i = 0; i < mgp->num_slices; i++) {
diff --git a/drivers/net/ethernet/netronome/nfp/abm/cls.c b/drivers/net/ethernet/netronome/nfp/abm/cls.c
index 23ebddfb9532..5cb4bb03b2a5 100644
--- a/drivers/net/ethernet/netronome/nfp/abm/cls.c
+++ b/drivers/net/ethernet/netronome/nfp/abm/cls.c
@@ -203,7 +203,7 @@ nfp_abm_u32_knode_replace(struct nfp_abm_link *alink,
}
if (!match) {
- match = kzalloc(sizeof(*match), GFP_KERNEL);
+ match = kzalloc_obj(*match, GFP_KERNEL);
if (!match)
return -ENOMEM;
list_add(&match->list, &alink->dscp_map);
diff --git a/drivers/net/ethernet/netronome/nfp/abm/main.c b/drivers/net/ethernet/netronome/nfp/abm/main.c
index 5d3df28c648f..b4c85bb0f787 100644
--- a/drivers/net/ethernet/netronome/nfp/abm/main.c
+++ b/drivers/net/ethernet/netronome/nfp/abm/main.c
@@ -317,7 +317,7 @@ nfp_abm_vnic_alloc(struct nfp_app *app, struct nfp_net *nn, unsigned int id)
struct nfp_abm_link *alink;
int err;
- alink = kzalloc(sizeof(*alink), GFP_KERNEL);
+ alink = kzalloc_obj(*alink, GFP_KERNEL);
if (!alink)
return -ENOMEM;
nn->app_priv = alink;
@@ -461,7 +461,7 @@ static int nfp_abm_init(struct nfp_app *app)
return -EINVAL;
}
- abm = kzalloc(sizeof(*abm), GFP_KERNEL);
+ abm = kzalloc_obj(*abm, GFP_KERNEL);
if (!abm)
return -ENOMEM;
app->priv = abm;
diff --git a/drivers/net/ethernet/netronome/nfp/abm/qdisc.c b/drivers/net/ethernet/netronome/nfp/abm/qdisc.c
index 2a5cc64227e9..a030b59901c9 100644
--- a/drivers/net/ethernet/netronome/nfp/abm/qdisc.c
+++ b/drivers/net/ethernet/netronome/nfp/abm/qdisc.c
@@ -344,7 +344,7 @@ nfp_abm_qdisc_alloc(struct net_device *netdev, struct nfp_abm_link *alink,
struct nfp_qdisc *qdisc;
int err;
- qdisc = kzalloc(sizeof(*qdisc), GFP_KERNEL);
+ qdisc = kzalloc_obj(*qdisc, GFP_KERNEL);
if (!qdisc)
return NULL;
diff --git a/drivers/net/ethernet/netronome/nfp/bpf/main.c b/drivers/net/ethernet/netronome/nfp/bpf/main.c
index f469950c7265..d9591ca44a8f 100644
--- a/drivers/net/ethernet/netronome/nfp/bpf/main.c
+++ b/drivers/net/ethernet/netronome/nfp/bpf/main.c
@@ -76,7 +76,7 @@ nfp_bpf_vnic_alloc(struct nfp_app *app, struct nfp_net *nn, unsigned int id)
return -EINVAL;
}
- bv = kzalloc(sizeof(*bv), GFP_KERNEL);
+ bv = kzalloc_obj(*bv, GFP_KERNEL);
if (!bv)
return -ENOMEM;
nn->app_priv = bv;
@@ -458,7 +458,7 @@ static int nfp_bpf_init(struct nfp_app *app)
struct nfp_app_bpf *bpf;
int err;
- bpf = kzalloc(sizeof(*bpf), GFP_KERNEL);
+ bpf = kzalloc_obj(*bpf, GFP_KERNEL);
if (!bpf)
return -ENOMEM;
bpf->app = app;
diff --git a/drivers/net/ethernet/netronome/nfp/bpf/offload.c b/drivers/net/ethernet/netronome/nfp/bpf/offload.c
index c03558adda91..2b22725fb8a6 100644
--- a/drivers/net/ethernet/netronome/nfp/bpf/offload.c
+++ b/drivers/net/ethernet/netronome/nfp/bpf/offload.c
@@ -48,7 +48,7 @@ nfp_map_ptr_record(struct nfp_app_bpf *bpf, struct nfp_prog *nfp_prog,
*/
bpf_map_inc(map);
- record = kmalloc(sizeof(*record), GFP_KERNEL);
+ record = kmalloc_obj(*record, GFP_KERNEL);
if (!record) {
err = -ENOMEM;
goto err_map_put;
@@ -123,9 +123,8 @@ nfp_map_ptrs_record(struct nfp_app_bpf *bpf, struct nfp_prog *nfp_prog,
if (!cnt)
goto out;
- nfp_prog->map_records = kmalloc_array(cnt,
- sizeof(nfp_prog->map_records[0]),
- GFP_KERNEL);
+ nfp_prog->map_records = kmalloc_objs(nfp_prog->map_records[0], cnt,
+ GFP_KERNEL);
if (!nfp_prog->map_records) {
err = -ENOMEM;
goto out;
@@ -155,7 +154,7 @@ nfp_prog_prepare(struct nfp_prog *nfp_prog, const struct bpf_insn *prog,
unsigned int i;
for (i = 0; i < cnt; i++) {
- meta = kzalloc(sizeof(*meta), GFP_KERNEL);
+ meta = kzalloc_obj(*meta, GFP_KERNEL);
if (!meta)
return -ENOMEM;
@@ -193,7 +192,7 @@ static int nfp_bpf_verifier_prep(struct bpf_prog *prog)
struct nfp_prog *nfp_prog;
int ret;
- nfp_prog = kzalloc(sizeof(*nfp_prog), GFP_KERNEL);
+ nfp_prog = kzalloc_obj(*nfp_prog, GFP_KERNEL);
if (!nfp_prog)
return -ENOMEM;
prog->aux->offload->dev_priv = nfp_prog;
diff --git a/drivers/net/ethernet/netronome/nfp/bpf/verifier.c b/drivers/net/ethernet/netronome/nfp/bpf/verifier.c
index 9d235c0ce46a..de9508282841 100644
--- a/drivers/net/ethernet/netronome/nfp/bpf/verifier.c
+++ b/drivers/net/ethernet/netronome/nfp/bpf/verifier.c
@@ -770,8 +770,8 @@ int nfp_bpf_finalize(struct bpf_verifier_env *env)
nfp_prog = env->prog->aux->offload->dev_priv;
nfp_prog->subprog_cnt = env->subprog_cnt;
- nfp_prog->subprog = kcalloc(nfp_prog->subprog_cnt,
- sizeof(nfp_prog->subprog[0]), GFP_KERNEL);
+ nfp_prog->subprog = kzalloc_objs(nfp_prog->subprog[0],
+ nfp_prog->subprog_cnt, GFP_KERNEL);
if (!nfp_prog->subprog)
return -ENOMEM;
diff --git a/drivers/net/ethernet/netronome/nfp/flower/conntrack.c b/drivers/net/ethernet/netronome/nfp/flower/conntrack.c
index 15180538b80a..178184a68816 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/conntrack.c
+++ b/drivers/net/ethernet/netronome/nfp/flower/conntrack.c
@@ -1355,7 +1355,7 @@ nfp_fl_ct_zone_entry *get_nfp_zone_entry(struct nfp_flower_priv *priv,
if (IS_ERR(zt) || zt->priv)
return zt;
} else {
- zt = kzalloc(sizeof(*zt), GFP_KERNEL);
+ zt = kzalloc_obj(*zt, GFP_KERNEL);
if (!zt)
return ERR_PTR(-ENOMEM);
}
@@ -1487,7 +1487,7 @@ nfp_fl_ct_flow_entry *nfp_fl_ct_add_flow(struct nfp_fl_ct_zone_entry *zt,
struct flow_action_entry *act;
int err, i;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return ERR_PTR(-ENOMEM);
@@ -1501,7 +1501,7 @@ nfp_fl_ct_flow_entry *nfp_fl_ct_add_flow(struct nfp_fl_ct_zone_entry *zt,
* to do a full copy instead of just a reference.
*/
if (is_nft) {
- nft_match = kzalloc(sizeof(*nft_match), GFP_KERNEL);
+ nft_match = kzalloc_obj(*nft_match, GFP_KERNEL);
if (!nft_match) {
err = -ENOMEM;
goto err_pre_ct_act;
diff --git a/drivers/net/ethernet/netronome/nfp/flower/lag_conf.c b/drivers/net/ethernet/netronome/nfp/flower/lag_conf.c
index 2c7bd6e80d99..9b78cc9600fe 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/lag_conf.c
+++ b/drivers/net/ethernet/netronome/nfp/flower/lag_conf.c
@@ -119,7 +119,7 @@ nfp_fl_lag_group_create(struct nfp_fl_lag *lag, struct net_device *master)
return ERR_PTR(id);
}
- group = kmalloc(sizeof(*group), GFP_KERNEL);
+ group = kmalloc_obj(*group, GFP_KERNEL);
if (!group) {
ida_free(&lag->ida_handle, id);
return ERR_PTR(-ENOMEM);
@@ -335,8 +335,8 @@ static void nfp_fl_lag_do_work(struct work_struct *work)
continue;
}
- acti_netdevs = kmalloc_array(entry->slave_cnt,
- sizeof(*acti_netdevs), GFP_KERNEL);
+ acti_netdevs = kmalloc_objs(*acti_netdevs, entry->slave_cnt,
+ GFP_KERNEL);
if (!acti_netdevs) {
schedule_delayed_work(&lag->work,
NFP_FL_LAG_DELAY);
diff --git a/drivers/net/ethernet/netronome/nfp/flower/main.c b/drivers/net/ethernet/netronome/nfp/flower/main.c
index 83eaa5ae3cd4..4677183322bc 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/main.c
+++ b/drivers/net/ethernet/netronome/nfp/flower/main.c
@@ -182,7 +182,7 @@ nfp_flower_non_repr_priv_get(struct nfp_app *app, struct net_device *netdev)
if (entry)
goto inc_ref;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return NULL;
@@ -406,7 +406,7 @@ nfp_flower_spawn_vnic_reprs(struct nfp_app *app,
goto err_reprs_clean;
}
- repr_priv = kzalloc(sizeof(*repr_priv), GFP_KERNEL);
+ repr_priv = kzalloc_obj(*repr_priv, GFP_KERNEL);
if (!repr_priv) {
err = -ENOMEM;
nfp_repr_free(repr);
@@ -524,7 +524,7 @@ nfp_flower_spawn_phy_reprs(struct nfp_app *app, struct nfp_flower_priv *priv)
goto err_reprs_clean;
}
- repr_priv = kzalloc(sizeof(*repr_priv), GFP_KERNEL);
+ repr_priv = kzalloc_obj(*repr_priv, GFP_KERNEL);
if (!repr_priv) {
err = -ENOMEM;
nfp_repr_free(repr);
diff --git a/drivers/net/ethernet/netronome/nfp/flower/metadata.c b/drivers/net/ethernet/netronome/nfp/flower/metadata.c
index dde60c4572fa..fbb858a5324b 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/metadata.c
+++ b/drivers/net/ethernet/netronome/nfp/flower/metadata.c
@@ -214,7 +214,7 @@ nfp_add_mask_table(struct nfp_app *app, char *mask_data, u32 mask_len)
if (nfp_mask_alloc(app, &mask_id))
return -ENOENT;
- mask_entry = kmalloc(sizeof(*mask_entry), GFP_KERNEL);
+ mask_entry = kmalloc_obj(*mask_entry, GFP_KERNEL);
if (!mask_entry) {
nfp_release_mask_id(app, mask_id);
return -ENOMEM;
@@ -324,7 +324,7 @@ int nfp_compile_flow_metadata(struct nfp_app *app, u32 cookie,
nfp_flow->meta.host_cookie = cpu_to_be64(cookie);
nfp_flow->ingress_dev = netdev;
- ctx_entry = kzalloc(sizeof(*ctx_entry), GFP_KERNEL);
+ ctx_entry = kzalloc_obj(*ctx_entry, GFP_KERNEL);
if (!ctx_entry) {
err = -ENOMEM;
goto err_release_stats;
@@ -557,8 +557,8 @@ int nfp_flower_metadata_init(struct nfp_app *app, u64 host_ctx_count,
/* Init timestamps for mask id*/
priv->mask_ids.last_used =
- kmalloc_array(NFP_FLOWER_MASK_ENTRY_RS,
- sizeof(*priv->mask_ids.last_used), GFP_KERNEL);
+ kmalloc_objs(*priv->mask_ids.last_used,
+ NFP_FLOWER_MASK_ENTRY_RS, GFP_KERNEL);
if (!priv->mask_ids.last_used)
goto err_free_mask_id;
@@ -573,8 +573,7 @@ int nfp_flower_metadata_init(struct nfp_app *app, u64 host_ctx_count,
stats_size = FIELD_PREP(NFP_FL_STAT_ID_STAT, host_ctx_count) |
FIELD_PREP(NFP_FL_STAT_ID_MU_NUM, host_num_mems - 1);
- priv->stats = kvmalloc_array(stats_size, sizeof(struct nfp_fl_stats),
- GFP_KERNEL);
+ priv->stats = kvmalloc_objs(struct nfp_fl_stats, stats_size, GFP_KERNEL);
if (!priv->stats)
goto err_free_ring_buf;
diff --git a/drivers/net/ethernet/netronome/nfp/flower/offload.c b/drivers/net/ethernet/netronome/nfp/flower/offload.c
index 46ffc2c20893..b6e1e33d3f27 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/offload.c
+++ b/drivers/net/ethernet/netronome/nfp/flower/offload.c
@@ -549,7 +549,7 @@ nfp_flower_allocate_new(struct nfp_fl_key_ls *key_layer)
{
struct nfp_fl_payload *flow_pay;
- flow_pay = kmalloc(sizeof(*flow_pay), GFP_KERNEL);
+ flow_pay = kmalloc_obj(*flow_pay, GFP_KERNEL);
if (!flow_pay)
return NULL;
@@ -979,7 +979,7 @@ static int nfp_flower_link_flows(struct nfp_fl_payload *merge_flow,
{
struct nfp_fl_payload_link *link;
- link = kmalloc(sizeof(*link), GFP_KERNEL);
+ link = kmalloc_obj(*link, GFP_KERNEL);
if (!link)
return -ENOMEM;
@@ -1067,7 +1067,7 @@ int nfp_flower_merge_offloaded_flows(struct nfp_app *app,
if (err)
goto err_release_metadata;
- merge_info = kmalloc(sizeof(*merge_info), GFP_KERNEL);
+ merge_info = kmalloc_obj(*merge_info, GFP_KERNEL);
if (!merge_info) {
err = -ENOMEM;
goto err_remove_rhash;
@@ -1354,7 +1354,7 @@ nfp_flower_add_offload(struct nfp_app *app, struct net_device *netdev,
if (!offload_pre_check(flow))
return -EOPNOTSUPP;
- key_layer = kmalloc(sizeof(*key_layer), GFP_KERNEL);
+ key_layer = kmalloc_obj(*key_layer, GFP_KERNEL);
if (!key_layer)
return -ENOMEM;
@@ -1400,7 +1400,7 @@ nfp_flower_add_offload(struct nfp_app *app, struct net_device *netdev,
if (priv->flower_ext_feats & NFP_FL_FEATS_DECAP_V2) {
struct nfp_predt_entry *predt;
- predt = kzalloc(sizeof(*predt), GFP_KERNEL);
+ predt = kzalloc_obj(*predt, GFP_KERNEL);
if (!predt) {
err = -ENOMEM;
goto err_remove_rhash;
@@ -1901,7 +1901,7 @@ nfp_flower_setup_indr_tc_block(struct net_device *netdev, struct Qdisc *sch, str
&nfp_block_cb_list))
return -EBUSY;
- cb_priv = kmalloc(sizeof(*cb_priv), GFP_KERNEL);
+ cb_priv = kmalloc_obj(*cb_priv, GFP_KERNEL);
if (!cb_priv)
return -ENOMEM;
diff --git a/drivers/net/ethernet/netronome/nfp/flower/qos_conf.c b/drivers/net/ethernet/netronome/nfp/flower/qos_conf.c
index e7180b4793c7..6a7f806b3fdf 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/qos_conf.c
+++ b/drivers/net/ethernet/netronome/nfp/flower/qos_conf.c
@@ -579,7 +579,7 @@ nfp_flower_add_meter_entry(struct nfp_app *app, u32 meter_id)
if (meter_entry)
return meter_entry;
- meter_entry = kzalloc(sizeof(*meter_entry), GFP_KERNEL);
+ meter_entry = kzalloc_obj(*meter_entry, GFP_KERNEL);
if (!meter_entry)
return NULL;
diff --git a/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c b/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c
index 0d7d138d6e0d..e0d32ddc80c3 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c
+++ b/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c
@@ -696,7 +696,7 @@ nfp_tun_alloc_neigh_update_work(struct nfp_app *app, struct neighbour *n)
{
struct nfp_neigh_update_work *update_work;
- update_work = kzalloc(sizeof(*update_work), GFP_ATOMIC);
+ update_work = kzalloc_obj(*update_work, GFP_ATOMIC);
if (!update_work)
return NULL;
@@ -884,7 +884,7 @@ void nfp_tunnel_add_ipv4_off(struct nfp_app *app, __be32 ipv4)
}
}
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
mutex_unlock(&priv->tun.ipv4_off_lock);
nfp_flower_cmsg_warn(app, "Mem error when offloading IP address.\n");
@@ -959,7 +959,7 @@ nfp_tunnel_add_ipv6_off(struct nfp_app *app, struct in6_addr *ipv6)
return entry;
}
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
mutex_unlock(&priv->tun.ipv6_off_lock);
nfp_flower_cmsg_warn(app, "Mem error when offloading IP address.\n");
@@ -1117,7 +1117,7 @@ nfp_tunnel_add_shared_mac(struct nfp_app *app, struct net_device *netdev,
}
if (!entry) {
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
err = -ENOMEM;
goto err_free_ida;
diff --git a/drivers/net/ethernet/netronome/nfp/nfd3/rings.c b/drivers/net/ethernet/netronome/nfp/nfd3/rings.c
index a03190c9313c..480b644afed5 100644
--- a/drivers/net/ethernet/netronome/nfp/nfd3/rings.c
+++ b/drivers/net/ethernet/netronome/nfp/nfd3/rings.c
@@ -140,8 +140,8 @@ nfp_nfd3_tx_ring_alloc(struct nfp_net_dp *dp, struct nfp_net_tx_ring *tx_ring)
goto err_alloc;
}
- tx_ring->txbufs = kvcalloc(tx_ring->cnt, sizeof(*tx_ring->txbufs),
- GFP_KERNEL);
+ tx_ring->txbufs = kvzalloc_objs(*tx_ring->txbufs, tx_ring->cnt,
+ GFP_KERNEL);
if (!tx_ring->txbufs)
goto err_alloc;
diff --git a/drivers/net/ethernet/netronome/nfp/nfdk/rings.c b/drivers/net/ethernet/netronome/nfp/nfdk/rings.c
index fdb8144a63e0..c0905469911c 100644
--- a/drivers/net/ethernet/netronome/nfp/nfdk/rings.c
+++ b/drivers/net/ethernet/netronome/nfp/nfdk/rings.c
@@ -105,8 +105,8 @@ nfp_nfdk_tx_ring_alloc(struct nfp_net_dp *dp, struct nfp_net_tx_ring *tx_ring)
goto err_alloc;
}
- tx_ring->ktxbufs = kvcalloc(tx_ring->cnt, sizeof(*tx_ring->ktxbufs),
- GFP_KERNEL);
+ tx_ring->ktxbufs = kvzalloc_objs(*tx_ring->ktxbufs, tx_ring->cnt,
+ GFP_KERNEL);
if (!tx_ring->ktxbufs)
goto err_alloc;
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_app.c b/drivers/net/ethernet/netronome/nfp/nfp_app.c
index bb3f46c74f77..f53418136c37 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_app.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_app.c
@@ -239,7 +239,7 @@ struct nfp_app *nfp_app_alloc(struct nfp_pf *pf, enum nfp_app_id id)
if (WARN_ON(!apps[id]->ctrl_msg_rx && apps[id]->ctrl_msg_rx_raw))
return ERR_PTR(-EINVAL);
- app = kzalloc(sizeof(*app), GFP_KERNEL);
+ app = kzalloc_obj(*app, GFP_KERNEL);
if (!app)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
index 9ef72f294117..bebf7e7c4a86 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
@@ -1554,7 +1554,7 @@ struct nfp_net_dp *nfp_net_clone_dp(struct nfp_net *nn)
{
struct nfp_net_dp *new;
- new = kmalloc(sizeof(*new), GFP_KERNEL);
+ new = kmalloc_obj(*new, GFP_KERNEL);
if (!new)
return NULL;
@@ -2537,8 +2537,8 @@ nfp_net_alloc(struct pci_dev *pdev, const struct nfp_dev_info *dev_info,
nn->dp.num_r_vecs, num_online_cpus());
nn->max_r_vecs = nn->dp.num_r_vecs;
- nn->dp.xsk_pools = kcalloc(nn->max_r_vecs, sizeof(*nn->dp.xsk_pools),
- GFP_KERNEL);
+ nn->dp.xsk_pools = kzalloc_objs(*nn->dp.xsk_pools, nn->max_r_vecs,
+ GFP_KERNEL);
if (!nn->dp.xsk_pools) {
err = -ENOMEM;
goto err_free_nn;
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_dp.c b/drivers/net/ethernet/netronome/nfp/nfp_net_dp.c
index 550df83b798c..cbb983729f22 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_dp.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_dp.c
@@ -184,8 +184,7 @@ int nfp_net_tx_rings_prepare(struct nfp_net *nn, struct nfp_net_dp *dp)
{
unsigned int r;
- dp->tx_rings = kcalloc(dp->num_tx_rings, sizeof(*dp->tx_rings),
- GFP_KERNEL);
+ dp->tx_rings = kzalloc_objs(*dp->tx_rings, dp->num_tx_rings, GFP_KERNEL);
if (!dp->tx_rings)
return -ENOMEM;
@@ -340,8 +339,7 @@ int nfp_net_rx_rings_prepare(struct nfp_net *nn, struct nfp_net_dp *dp)
{
unsigned int r;
- dp->rx_rings = kcalloc(dp->num_rx_rings, sizeof(*dp->rx_rings),
- GFP_KERNEL);
+ dp->rx_rings = kzalloc_objs(*dp->rx_rings, dp->num_rx_rings, GFP_KERNEL);
if (!dp->rx_rings)
return -ENOMEM;
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c b/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c
index e88b1c4732a5..16bf77708b9e 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c
@@ -713,7 +713,7 @@ static int nfp_test_nsp(struct net_device *netdev)
goto exit_close_nsp;
}
- nspi = kzalloc(sizeof(*nspi), GFP_KERNEL);
+ nspi = kzalloc_obj(*nspi, GFP_KERNEL);
if (!nspi) {
err = -ENOMEM;
goto exit_close_nsp;
@@ -1676,7 +1676,7 @@ static int nfp_net_fs_add(struct nfp_net *nn, struct ethtool_rxnfc *cmd)
if (unsupp_mask)
return -EOPNOTSUPP;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return -ENOMEM;
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_main.c b/drivers/net/ethernet/netronome/nfp/nfp_net_main.c
index cbe4972ba104..aeaa998e2f75 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_main.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_main.c
@@ -229,8 +229,8 @@ static int nfp_net_pf_alloc_irqs(struct nfp_pf *pf)
wanted_irqs = 0;
list_for_each_entry(nn, &pf->vnics, vnic_list)
wanted_irqs += NFP_NET_NON_Q_VECTORS + nn->dp.num_r_vecs;
- pf->irq_entries = kcalloc(wanted_irqs, sizeof(*pf->irq_entries),
- GFP_KERNEL);
+ pf->irq_entries = kzalloc_objs(*pf->irq_entries, wanted_irqs,
+ GFP_KERNEL);
if (!pf->irq_entries)
return -ENOMEM;
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
index 227e7a5d712e..bac4c61f8632 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
@@ -500,7 +500,7 @@ struct nfp_reprs *nfp_reprs_alloc(unsigned int num_reprs)
{
struct nfp_reprs *reprs;
- reprs = kzalloc(struct_size(reprs, reprs, num_reprs), GFP_KERNEL);
+ reprs = kzalloc_flex(*reprs, reprs, num_reprs, GFP_KERNEL);
if (!reprs)
return NULL;
reprs->num_reprs = num_reprs;
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_netvf_main.c b/drivers/net/ethernet/netronome/nfp/nfp_netvf_main.c
index e19bb0150cb5..061d1ba89760 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_netvf_main.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_netvf_main.c
@@ -93,7 +93,7 @@ static int nfp_netvf_pci_probe(struct pci_dev *pdev,
dev_info = &nfp_dev_info[pci_id->driver_data];
- vf = kzalloc(sizeof(*vf), GFP_KERNEL);
+ vf = kzalloc_obj(*vf, GFP_KERNEL);
if (!vf)
return -ENOMEM;
pci_set_drvdata(pdev, vf);
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_port.c b/drivers/net/ethernet/netronome/nfp/nfp_port.c
index 54640bcb70fb..1ce12ad44d2f 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_port.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_port.c
@@ -203,7 +203,7 @@ nfp_port_alloc(struct nfp_app *app, enum nfp_port_type type,
{
struct nfp_port *port;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_shared_buf.c b/drivers/net/ethernet/netronome/nfp/nfp_shared_buf.c
index ea2e3f829aba..eb5f9c2bf445 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_shared_buf.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_shared_buf.c
@@ -99,8 +99,8 @@ int nfp_shared_buf_register(struct nfp_pf *pf)
entry_sz = nfp_cpp_area_size(sb_desc_area) / num_entries;
- pf->shared_bufs = kmalloc_array(num_entries, sizeof(pf->shared_bufs[0]),
- GFP_KERNEL);
+ pf->shared_bufs = kmalloc_objs(pf->shared_bufs[0], num_entries,
+ GFP_KERNEL);
if (!pf->shared_bufs) {
err = -ENOMEM;
goto err_release_area;
diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c
index 7c2200b49ce4..ff16af23fc3a 100644
--- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c
+++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c
@@ -1320,7 +1320,7 @@ nfp_cpp_from_nfp6000_pcie(struct pci_dev *pdev, const struct nfp_dev_info *dev_i
dev_info->chip_names);
pcie_print_link_status(pdev);
- nfp = kzalloc(sizeof(*nfp), GFP_KERNEL);
+ nfp = kzalloc_obj(*nfp, GFP_KERNEL);
if (!nfp) {
err = -ENOMEM;
goto err_ret;
diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
index 669f9f8fb507..06ebad34c00b 100644
--- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
+++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c
@@ -802,7 +802,7 @@ int nfp_cpp_area_cache_add(struct nfp_cpp *cpp, size_t size)
if (!area)
return -ENOMEM;
- cache = kzalloc(sizeof(*cache), GFP_KERNEL);
+ cache = kzalloc_obj(*cache, GFP_KERNEL);
if (!cache) {
nfp_cpp_area_free(area);
return -ENOMEM;
@@ -1170,7 +1170,7 @@ nfp_cpp_from_operations(const struct nfp_cpp_operations *ops,
u32 xpbaddr;
size_t tgt;
- cpp = kzalloc(sizeof(*cpp), GFP_KERNEL);
+ cpp = kzalloc_obj(*cpp, GFP_KERNEL);
if (!cpp) {
err = -ENOMEM;
goto err_malloc;
diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_mip.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_mip.c
index 79e17943519e..93b11eaf7d9f 100644
--- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_mip.c
+++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_mip.c
@@ -101,7 +101,7 @@ const struct nfp_mip *nfp_mip_open(struct nfp_cpp *cpp)
struct nfp_mip *mip;
int err;
- mip = kmalloc(sizeof(*mip), GFP_KERNEL);
+ mip = kmalloc_obj(*mip, GFP_KERNEL);
if (!mip)
return NULL;
diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_mutex.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_mutex.c
index 7bc17b94ac60..d017b7779819 100644
--- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_mutex.c
+++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_mutex.c
@@ -140,7 +140,7 @@ struct nfp_cpp_mutex *nfp_cpp_mutex_alloc(struct nfp_cpp *cpp, int target,
if (tmp != key)
return NULL;
- mutex = kzalloc(sizeof(*mutex), GFP_KERNEL);
+ mutex = kzalloc_obj(*mutex, GFP_KERNEL);
if (!mutex)
return NULL;
diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nffw.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nffw.c
index e2e5fd003ad6..4ad0f7586ba1 100644
--- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nffw.c
+++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nffw.c
@@ -163,7 +163,7 @@ struct nfp_nffw_info *nfp_nffw_info_open(struct nfp_cpp *cpp)
u32 info_ver;
int err;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c
index 0bd6477292a6..a874a5f233a6 100644
--- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c
+++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c
@@ -280,7 +280,7 @@ struct nfp_nsp *nfp_nsp_open(struct nfp_cpp *cpp)
if (IS_ERR(res))
return ERR_CAST(res);
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state) {
nfp_resource_release(res);
return ERR_PTR(-ENOMEM);
@@ -514,7 +514,7 @@ nfp_nsp_command_buf_dma_sg(struct nfp_nsp *nsp,
dma_size = BIT_ULL(dma_order);
nseg = DIV_ROUND_UP(max_size, chunk_size);
- chunks = kcalloc(nseg, sizeof(*chunks), GFP_KERNEL);
+ chunks = kzalloc_objs(*chunks, nseg, GFP_KERNEL);
if (!chunks)
return -ENOMEM;
diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_cmds.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_cmds.c
index 0997d127144f..33ff357b6fc6 100644
--- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_cmds.c
+++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_cmds.c
@@ -29,7 +29,7 @@ struct nfp_nsp_identify *__nfp_nsp_identify(struct nfp_nsp *nsp)
if (nfp_nsp_get_abi_ver_minor(nsp) < 15)
return NULL;
- ni = kzalloc(sizeof(*ni), GFP_KERNEL);
+ ni = kzalloc_obj(*ni, GFP_KERNEL);
if (!ni)
return NULL;
@@ -40,7 +40,7 @@ struct nfp_nsp_identify *__nfp_nsp_identify(struct nfp_nsp *nsp)
goto exit_free;
}
- nspi = kzalloc(sizeof(*nspi), GFP_KERNEL);
+ nspi = kzalloc_obj(*nspi, GFP_KERNEL);
if (!nspi)
goto exit_free;
diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_eth.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_eth.c
index 5cfddc9a5d87..9a1f1849e0db 100644
--- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_eth.c
+++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_eth.c
@@ -319,7 +319,7 @@ __nfp_eth_read_ports(struct nfp_cpp *cpp, struct nfp_nsp *nsp)
goto err;
}
- table = kzalloc(struct_size(table, ports, cnt), GFP_KERNEL);
+ table = kzalloc_flex(*table, ports, cnt, GFP_KERNEL);
if (!table)
goto err;
diff --git a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_resource.c b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_resource.c
index 279ea0b56955..54089663bbd7 100644
--- a/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_resource.c
+++ b/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_resource.c
@@ -155,7 +155,7 @@ nfp_resource_acquire(struct nfp_cpp *cpp, const char *name)
struct nfp_resource *res;
int err;
- res = kzalloc(sizeof(*res), GFP_KERNEL);
+ res = kzalloc_obj(*res, GFP_KERNEL);
if (!res)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/netronome/nfp/nic/main.c b/drivers/net/ethernet/netronome/nfp/nic/main.c
index 9dd5afe37f6e..82ec6d9018b0 100644
--- a/drivers/net/ethernet/netronome/nfp/nic/main.c
+++ b/drivers/net/ethernet/netronome/nfp/nic/main.c
@@ -51,7 +51,7 @@ static int nfp_nic_vnic_alloc(struct nfp_app *app, struct nfp_net *nn,
return err;
if (sizeof(*app_pri)) {
- nn->app_priv = kzalloc(sizeof(*app_pri), GFP_KERNEL);
+ nn->app_priv = kzalloc_obj(*app_pri, GFP_KERNEL);
if (!nn->app_priv)
return -ENOMEM;
}
diff --git a/drivers/net/ethernet/nvidia/forcedeth.c b/drivers/net/ethernet/nvidia/forcedeth.c
index 19aa1f1538aa..bff27b223f5d 100644
--- a/drivers/net/ethernet/nvidia/forcedeth.c
+++ b/drivers/net/ethernet/nvidia/forcedeth.c
@@ -5854,8 +5854,10 @@ static int nv_probe(struct pci_dev *pci_dev, const struct pci_device_id *id)
goto out_unmap;
np->tx_ring.ex = &np->rx_ring.ex[np->rx_ring_size];
}
- np->rx_skb = kcalloc(np->rx_ring_size, sizeof(struct nv_skb_map), GFP_KERNEL);
- np->tx_skb = kcalloc(np->tx_ring_size, sizeof(struct nv_skb_map), GFP_KERNEL);
+ np->rx_skb = kzalloc_objs(struct nv_skb_map, np->rx_ring_size,
+ GFP_KERNEL);
+ np->tx_skb = kzalloc_objs(struct nv_skb_map, np->tx_ring_size,
+ GFP_KERNEL);
if (!np->rx_skb || !np->tx_skb)
goto out_freering;
diff --git a/drivers/net/ethernet/pasemi/pasemi_mac.c b/drivers/net/ethernet/pasemi/pasemi_mac.c
index 00909372ea61..f9a6471b36d0 100644
--- a/drivers/net/ethernet/pasemi/pasemi_mac.c
+++ b/drivers/net/ethernet/pasemi/pasemi_mac.c
@@ -381,9 +381,8 @@ static int pasemi_mac_setup_rx_resources(const struct net_device *dev)
spin_lock_init(&ring->lock);
ring->size = RX_RING_SIZE;
- ring->ring_info = kcalloc(RX_RING_SIZE,
- sizeof(struct pasemi_mac_buffer),
- GFP_KERNEL);
+ ring->ring_info = kzalloc_objs(struct pasemi_mac_buffer, RX_RING_SIZE,
+ GFP_KERNEL);
if (!ring->ring_info)
goto out_ring_info;
@@ -465,9 +464,8 @@ pasemi_mac_setup_tx_resources(const struct net_device *dev)
spin_lock_init(&ring->lock);
ring->size = TX_RING_SIZE;
- ring->ring_info = kcalloc(TX_RING_SIZE,
- sizeof(struct pasemi_mac_buffer),
- GFP_KERNEL);
+ ring->ring_info = kzalloc_objs(struct pasemi_mac_buffer, TX_RING_SIZE,
+ GFP_KERNEL);
if (!ring->ring_info)
goto out_ring_info;
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_aux.c b/drivers/net/ethernet/pensando/ionic/ionic_aux.c
index a2be338eb3e5..4c9db73cef23 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_aux.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_aux.c
@@ -26,7 +26,7 @@ int ionic_auxbus_register(struct ionic_lif *lif)
if (!(le64_to_cpu(lif->ionic->ident.lif.capabilities) & IONIC_LIF_CAP_RDMA))
return 0;
- ionic_adev = kzalloc(sizeof(*ionic_adev), GFP_KERNEL);
+ ionic_adev = kzalloc_obj(*ionic_adev, GFP_KERNEL);
if (!ionic_adev)
return -ENOMEM;
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c b/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c
index 0671deae9a28..104e1d35e0be 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c
@@ -151,7 +151,7 @@ static int ionic_vf_alloc(struct ionic *ionic, int num_vfs)
down_write(&ionic->vf_op_lock);
- ionic->vfs = kcalloc(num_vfs, sizeof(struct ionic_vf), GFP_KERNEL);
+ ionic->vfs = kzalloc_objs(struct ionic_vf, num_vfs, GFP_KERNEL);
if (!ionic->vfs) {
err = -ENOMEM;
goto out;
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_dev.c b/drivers/net/ethernet/pensando/ionic/ionic_dev.c
index ab27e9225c1e..3838c4a70766 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_dev.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_dev.c
@@ -35,7 +35,7 @@ static void ionic_watchdog_cb(struct timer_list *t)
if (test_bit(IONIC_LIF_F_FILTER_SYNC_NEEDED, lif->state) &&
!test_bit(IONIC_LIF_F_FW_RESET, lif->state)) {
- work = kzalloc(sizeof(*work), GFP_ATOMIC);
+ work = kzalloc_obj(*work, GFP_ATOMIC);
if (!work) {
netdev_err(lif->netdev, "rxmode change dropped\n");
return;
@@ -577,7 +577,7 @@ int ionic_heartbeat_check(struct ionic *ionic)
if (trigger) {
struct ionic_deferred_work *work;
- work = kzalloc(sizeof(*work), GFP_ATOMIC);
+ work = kzalloc_obj(*work, GFP_ATOMIC);
if (work) {
work->type = IONIC_DW_TYPE_LIF_RESET;
work->fw_status = fw_status_ready;
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c b/drivers/net/ethernet/pensando/ionic/ionic_lif.c
index 058eea86e141..050dd3168f6b 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_lif.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.c
@@ -203,7 +203,7 @@ void ionic_link_status_check_request(struct ionic_lif *lif, bool can_sleep)
return;
if (!can_sleep) {
- work = kzalloc(sizeof(*work), GFP_ATOMIC);
+ work = kzalloc_obj(*work, GFP_ATOMIC);
if (!work) {
clear_bit(IONIC_LIF_F_LINK_CHECK_REQUESTED, lif->state);
return;
@@ -1427,7 +1427,7 @@ static void ionic_ndo_set_rx_mode(struct net_device *netdev)
/* Shove off the rest of the rxmode work to the work task
* which will include syncing the filters to the firmware.
*/
- work = kzalloc(sizeof(*work), GFP_ATOMIC);
+ work = kzalloc_obj(*work, GFP_ATOMIC);
if (!work) {
netdev_err(lif->netdev, "rxmode change dropped\n");
return;
@@ -2694,7 +2694,7 @@ static int ionic_register_rxq_info(struct ionic_queue *q, unsigned int napi_id)
struct xdp_rxq_info *rxq_info;
int err;
- rxq_info = kzalloc(sizeof(*rxq_info), GFP_KERNEL);
+ rxq_info = kzalloc_obj(*rxq_info, GFP_KERNEL);
if (!rxq_info)
return -ENOMEM;
@@ -3177,7 +3177,7 @@ static int ionic_affinity_masks_alloc(struct ionic *ionic)
int nintrs = ionic->nintrs;
int i;
- affinity_masks = kcalloc(nintrs, sizeof(cpumask_var_t), GFP_KERNEL);
+ affinity_masks = kzalloc_objs(cpumask_var_t, nintrs, GFP_KERNEL);
if (!affinity_masks)
return -ENOMEM;
@@ -3218,7 +3218,7 @@ int ionic_lif_alloc(struct ionic *ionic)
int tbl_sz;
int err;
- lid = kzalloc(sizeof(*lid), GFP_KERNEL);
+ lid = kzalloc_obj(*lid, GFP_KERNEL);
if (!lid)
return -ENOMEM;
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_main.c b/drivers/net/ethernet/pensando/ionic/ionic_main.c
index 14dc055be3e9..3c5200e2fdb7 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_main.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_main.c
@@ -283,7 +283,7 @@ bool ionic_notifyq_service(struct ionic_cq *cq)
if (lif->ionic->idev.fw_status_ready &&
!test_bit(IONIC_LIF_F_FW_RESET, lif->state) &&
!test_and_set_bit(IONIC_LIF_F_FW_STOPPING, lif->state)) {
- work = kzalloc(sizeof(*work), GFP_ATOMIC);
+ work = kzalloc_obj(*work, GFP_ATOMIC);
if (!work) {
netdev_err(lif->netdev, "Reset event dropped\n");
clear_bit(IONIC_LIF_F_FW_STOPPING, lif->state);
diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
index 89c8b2349694..fff8dc84212d 100644
--- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
+++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
@@ -634,7 +634,7 @@ static int nx_p3_nic_add_mac(struct netxen_adapter *adapter,
}
}
- cur = kzalloc(sizeof(nx_mac_list_t), GFP_ATOMIC);
+ cur = kzalloc_obj(nx_mac_list_t, GFP_ATOMIC);
if (cur == NULL)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
index 51fa880eaf6c..a0466693e2d9 100644
--- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
+++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
@@ -185,7 +185,7 @@ int netxen_alloc_sw_resources(struct netxen_adapter *adapter)
struct netxen_cmd_buffer *cmd_buf_arr;
struct net_device *netdev = adapter->netdev;
- tx_ring = kzalloc(sizeof(struct nx_host_tx_ring), GFP_KERNEL);
+ tx_ring = kzalloc_obj(struct nx_host_tx_ring, GFP_KERNEL);
if (tx_ring == NULL)
return -ENOMEM;
@@ -202,8 +202,8 @@ int netxen_alloc_sw_resources(struct netxen_adapter *adapter)
recv_ctx = &adapter->recv_ctx;
- rds_ring = kcalloc(adapter->max_rds_rings,
- sizeof(struct nx_host_rds_ring), GFP_KERNEL);
+ rds_ring = kzalloc_objs(struct nx_host_rds_ring, adapter->max_rds_rings,
+ GFP_KERNEL);
if (rds_ring == NULL)
goto err_out;
@@ -451,7 +451,7 @@ int netxen_pinit_from_rom(struct netxen_adapter *adapter)
return -EIO;
}
- buf = kcalloc(n, sizeof(struct crb_addr_pair), GFP_KERNEL);
+ buf = kzalloc_objs(struct crb_addr_pair, n, GFP_KERNEL);
if (buf == NULL)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
index e8ff661fa4a5..5ee2bd9d6886 100644
--- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
+++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
@@ -3198,7 +3198,7 @@ netxen_list_config_ip(struct netxen_adapter *adapter,
goto out;
}
- cur = kzalloc(sizeof(struct nx_ip_list), GFP_ATOMIC);
+ cur = kzalloc_obj(struct nx_ip_list, GFP_ATOMIC);
if (cur == NULL)
goto out;
if (is_vlan_dev(dev))
diff --git a/drivers/net/ethernet/qlogic/qed/qed_cxt.c b/drivers/net/ethernet/qlogic/qed/qed_cxt.c
index 33f4f58ee51c..ddc1f9213a95 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_cxt.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_cxt.c
@@ -845,8 +845,8 @@ static int qed_cxt_src_t2_alloc(struct qed_hwfn *p_hwfn)
p_t2->num_pages = DIV_ROUND_UP(total_size, psz);
/* allocate t2 */
- p_t2->dma_mem = kcalloc(p_t2->num_pages, sizeof(struct phys_mem_desc),
- GFP_KERNEL);
+ p_t2->dma_mem = kzalloc_objs(struct phys_mem_desc, p_t2->num_pages,
+ GFP_KERNEL);
if (!p_t2->dma_mem) {
DP_NOTICE(p_hwfn, "Failed to allocate t2 table\n");
rc = -ENOMEM;
@@ -994,8 +994,8 @@ static int qed_ilt_shadow_alloc(struct qed_hwfn *p_hwfn)
int rc;
size = qed_cxt_ilt_shadow_size(clients);
- p_mngr->ilt_shadow = kcalloc(size, sizeof(struct phys_mem_desc),
- GFP_KERNEL);
+ p_mngr->ilt_shadow = kzalloc_objs(struct phys_mem_desc, size,
+ GFP_KERNEL);
if (!p_mngr->ilt_shadow) {
rc = -ENOMEM;
goto ilt_shadow_fail;
@@ -1114,7 +1114,7 @@ int qed_cxt_mngr_alloc(struct qed_hwfn *p_hwfn)
struct qed_cxt_mngr *p_mngr;
u32 i;
- p_mngr = kzalloc(sizeof(*p_mngr), GFP_KERNEL);
+ p_mngr = kzalloc_obj(*p_mngr, GFP_KERNEL);
if (!p_mngr)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_dcbx.c b/drivers/net/ethernet/qlogic/qed/qed_dcbx.c
index dc93ddea8906..593931ec7226 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_dcbx.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_dcbx.c
@@ -915,7 +915,7 @@ qed_dcbx_mib_update_event(struct qed_hwfn *p_hwfn,
int qed_dcbx_info_alloc(struct qed_hwfn *p_hwfn)
{
- p_hwfn->p_dcbx_info = kzalloc(sizeof(*p_hwfn->p_dcbx_info), GFP_KERNEL);
+ p_hwfn->p_dcbx_info = kzalloc_obj(*p_hwfn->p_dcbx_info, GFP_KERNEL);
if (!p_hwfn->p_dcbx_info)
return -ENOMEM;
@@ -1244,7 +1244,7 @@ int qed_dcbx_get_config_params(struct qed_hwfn *p_hwfn,
return 0;
}
- dcbx_info = kzalloc(sizeof(*dcbx_info), GFP_KERNEL);
+ dcbx_info = kzalloc_obj(*dcbx_info, GFP_KERNEL);
if (!dcbx_info)
return -ENOMEM;
@@ -1283,7 +1283,7 @@ static struct qed_dcbx_get *qed_dcbnl_get_dcbx(struct qed_hwfn *hwfn,
{
struct qed_dcbx_get *dcbx_info;
- dcbx_info = kzalloc(sizeof(*dcbx_info), GFP_ATOMIC);
+ dcbx_info = kzalloc_obj(*dcbx_info, GFP_ATOMIC);
if (!dcbx_info)
return NULL;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_debug.c b/drivers/net/ethernet/qlogic/qed/qed_debug.c
index 1f0cea3cae92..a869a2a7e918 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_debug.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_debug.c
@@ -6821,9 +6821,8 @@ qed_mcp_trace_alloc_meta_data(struct qed_hwfn *p_hwfn,
/* Read number of formats and allocate memory for all formats */
meta->formats_num = qed_read_dword_from_buf(meta_buf_bytes, &offset);
- meta->formats = kcalloc(meta->formats_num,
- sizeof(struct mcp_trace_format),
- GFP_KERNEL);
+ meta->formats = kzalloc_objs(struct mcp_trace_format, meta->formats_num,
+ GFP_KERNEL);
if (!meta->formats)
return DBG_STATUS_VIRT_MEM_ALLOC_FAILED;
@@ -7536,8 +7535,7 @@ enum dbg_status qed_dbg_user_set_bin_ptr(struct qed_hwfn *p_hwfn,
enum dbg_status qed_dbg_alloc_user_data(struct qed_hwfn *p_hwfn,
void **user_data_ptr)
{
- *user_data_ptr = kzalloc(sizeof(struct dbg_tools_user_data),
- GFP_KERNEL);
+ *user_data_ptr = kzalloc_obj(struct dbg_tools_user_data, GFP_KERNEL);
if (!(*user_data_ptr))
return DBG_STATUS_VIRT_MEM_ALLOC_FAILED;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_dev.c b/drivers/net/ethernet/qlogic/qed/qed_dev.c
index f3d2b2b3bad5..4c2027972347 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_dev.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_dev.c
@@ -146,7 +146,7 @@ int qed_db_recovery_add(struct qed_dev *cdev,
p_hwfn = qed_db_rec_find_hwfn(cdev, db_addr);
/* Create entry */
- db_entry = kzalloc(sizeof(*db_entry), GFP_KERNEL);
+ db_entry = kzalloc_obj(*db_entry, GFP_KERNEL);
if (!db_entry) {
DP_NOTICE(cdev, "Failed to allocate a db recovery entry\n");
return -ENOMEM;
@@ -383,7 +383,7 @@ static int qed_llh_alloc(struct qed_dev *cdev)
struct qed_llh_info *p_llh_info;
u32 size, i;
- p_llh_info = kzalloc(sizeof(*p_llh_info), GFP_KERNEL);
+ p_llh_info = kzalloc_obj(*p_llh_info, GFP_KERNEL);
if (!p_llh_info)
return -ENOMEM;
cdev->p_llh_info = p_llh_info;
@@ -2108,27 +2108,27 @@ static int qed_alloc_qm_data(struct qed_hwfn *p_hwfn)
if (rc)
goto alloc_err;
- qm_info->qm_pq_params = kcalloc(qed_init_qm_get_num_pqs(p_hwfn),
- sizeof(*qm_info->qm_pq_params),
- GFP_KERNEL);
+ qm_info->qm_pq_params = kzalloc_objs(*qm_info->qm_pq_params,
+ qed_init_qm_get_num_pqs(p_hwfn),
+ GFP_KERNEL);
if (!qm_info->qm_pq_params)
goto alloc_err;
- qm_info->qm_vport_params = kcalloc(qed_init_qm_get_num_vports(p_hwfn),
- sizeof(*qm_info->qm_vport_params),
- GFP_KERNEL);
+ qm_info->qm_vport_params = kzalloc_objs(*qm_info->qm_vport_params,
+ qed_init_qm_get_num_vports(p_hwfn),
+ GFP_KERNEL);
if (!qm_info->qm_vport_params)
goto alloc_err;
- qm_info->qm_port_params = kcalloc(p_hwfn->cdev->num_ports_in_engine,
- sizeof(*qm_info->qm_port_params),
- GFP_KERNEL);
+ qm_info->qm_port_params = kzalloc_objs(*qm_info->qm_port_params,
+ p_hwfn->cdev->num_ports_in_engine,
+ GFP_KERNEL);
if (!qm_info->qm_port_params)
goto alloc_err;
- qm_info->wfq_data = kcalloc(qed_init_qm_get_num_vports(p_hwfn),
- sizeof(*qm_info->wfq_data),
- GFP_KERNEL);
+ qm_info->wfq_data = kzalloc_objs(*qm_info->wfq_data,
+ qed_init_qm_get_num_vports(p_hwfn),
+ GFP_KERNEL);
if (!qm_info->wfq_data)
goto alloc_err;
@@ -2155,7 +2155,7 @@ int qed_resc_alloc(struct qed_dev *cdev)
return rc;
}
- cdev->fw_data = kzalloc(sizeof(*cdev->fw_data), GFP_KERNEL);
+ cdev->fw_data = kzalloc_obj(*cdev->fw_data, GFP_KERNEL);
if (!cdev->fw_data)
return -ENOMEM;
@@ -2345,7 +2345,7 @@ int qed_resc_alloc(struct qed_dev *cdev)
goto alloc_err;
}
- cdev->reset_stats = kzalloc(sizeof(*cdev->reset_stats), GFP_KERNEL);
+ cdev->reset_stats = kzalloc_obj(*cdev->reset_stats, GFP_KERNEL);
if (!cdev->reset_stats)
goto alloc_no_mem;
@@ -2642,7 +2642,7 @@ static int qed_hw_init_common(struct qed_hwfn *p_hwfn,
u32 concrete_fid;
int rc = 0;
- params = kzalloc(sizeof(*params), GFP_KERNEL);
+ params = kzalloc_obj(*params, GFP_KERNEL);
if (!params) {
DP_NOTICE(p_hwfn->cdev,
"Failed to allocate common init params\n");
diff --git a/drivers/net/ethernet/qlogic/qed/qed_fcoe.c b/drivers/net/ethernet/qlogic/qed/qed_fcoe.c
index 04602ac94708..9d91e4775b52 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_fcoe.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_fcoe.c
@@ -383,7 +383,7 @@ qed_fcoe_allocate_connection(struct qed_hwfn *p_hwfn,
}
spin_unlock_bh(&p_hwfn->p_fcoe_info->lock);
- p_conn = kzalloc(sizeof(*p_conn), GFP_KERNEL);
+ p_conn = kzalloc_obj(*p_conn, GFP_KERNEL);
if (!p_conn)
return -ENOMEM;
@@ -535,7 +535,7 @@ int qed_fcoe_alloc(struct qed_hwfn *p_hwfn)
struct qed_fcoe_info *p_fcoe_info;
/* Allocate LL2's set struct */
- p_fcoe_info = kzalloc(sizeof(*p_fcoe_info), GFP_KERNEL);
+ p_fcoe_info = kzalloc_obj(*p_fcoe_info, GFP_KERNEL);
if (!p_fcoe_info) {
DP_NOTICE(p_hwfn, "Failed to allocate qed_fcoe_info'\n");
return -ENOMEM;
@@ -817,8 +817,8 @@ static int qed_fcoe_start(struct qed_dev *cdev, struct qed_fcoe_tid *tasks)
hash_init(cdev->connections);
if (tasks) {
- struct qed_tid_mem *tid_info = kzalloc(sizeof(*tid_info),
- GFP_ATOMIC);
+ struct qed_tid_mem *tid_info = kzalloc_obj(*tid_info,
+ GFP_ATOMIC);
if (!tid_info) {
DP_NOTICE(cdev,
@@ -855,7 +855,7 @@ static int qed_fcoe_acquire_conn(struct qed_dev *cdev,
int rc;
/* Allocate a hashed connection */
- hash_con = kzalloc(sizeof(*hash_con), GFP_KERNEL);
+ hash_con = kzalloc_obj(*hash_con, GFP_KERNEL);
if (!hash_con) {
DP_NOTICE(cdev, "Failed to allocate hashed connection\n");
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_hw.c b/drivers/net/ethernet/qlogic/qed/qed_hw.c
index 9907973399dc..6fff9788101c 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_hw.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_hw.c
@@ -46,7 +46,7 @@ struct qed_ptt_pool {
int qed_ptt_pool_alloc(struct qed_hwfn *p_hwfn)
{
- struct qed_ptt_pool *p_pool = kmalloc(sizeof(*p_pool), GFP_KERNEL);
+ struct qed_ptt_pool *p_pool = kmalloc_obj(*p_pool, GFP_KERNEL);
int i;
if (!p_pool)
diff --git a/drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c b/drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
index aa20bb8caa9a..9b7b05362c68 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c
@@ -1692,8 +1692,8 @@ struct phys_mem_desc *qed_fw_overlay_mem_alloc(struct qed_hwfn *p_hwfn,
if (!buf_size)
return NULL;
- allocated_mem = kcalloc(NUM_STORMS, sizeof(struct phys_mem_desc),
- GFP_KERNEL);
+ allocated_mem = kzalloc_objs(struct phys_mem_desc, NUM_STORMS,
+ GFP_KERNEL);
if (!allocated_mem)
return NULL;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_init_ops.c b/drivers/net/ethernet/qlogic/qed/qed_init_ops.c
index b3bf9899c1a1..330c75d9ee07 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_init_ops.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_init_ops.c
@@ -210,8 +210,7 @@ int qed_init_alloc(struct qed_hwfn *p_hwfn)
if (IS_VF(p_hwfn->cdev))
return 0;
- rt_data->b_valid = kcalloc(RUNTIME_ARRAY_SIZE, sizeof(bool),
- GFP_KERNEL);
+ rt_data->b_valid = kzalloc_objs(bool, RUNTIME_ARRAY_SIZE, GFP_KERNEL);
if (!rt_data->b_valid)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_int.c b/drivers/net/ethernet/qlogic/qed/qed_int.c
index 2661c483c67e..a65827240d00 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_int.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_int.c
@@ -1412,7 +1412,7 @@ static int qed_int_sb_attn_alloc(struct qed_hwfn *p_hwfn,
void *p_virt;
/* SB struct */
- p_sb = kmalloc(sizeof(*p_sb), GFP_KERNEL);
+ p_sb = kmalloc_obj(*p_sb, GFP_KERNEL);
if (!p_sb)
return -ENOMEM;
@@ -1765,7 +1765,7 @@ static int qed_int_sp_sb_alloc(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)
void *p_virt;
/* SB struct */
- p_sb = kmalloc(sizeof(*p_sb), GFP_KERNEL);
+ p_sb = kmalloc_obj(*p_sb, GFP_KERNEL);
if (!p_sb)
return -ENOMEM;
@@ -2188,7 +2188,7 @@ int qed_int_igu_read_cam(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)
u32 min_vf = 0, max_vf = 0;
u16 igu_sb_id;
- p_hwfn->hw_info.p_igu_info = kzalloc(sizeof(*p_igu_info), GFP_KERNEL);
+ p_hwfn->hw_info.p_igu_info = kzalloc_obj(*p_igu_info, GFP_KERNEL);
if (!p_hwfn->hw_info.p_igu_info)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_iscsi.c b/drivers/net/ethernet/qlogic/qed/qed_iscsi.c
index 980e7289b481..758fa97be920 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_iscsi.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_iscsi.c
@@ -710,7 +710,7 @@ static int qed_iscsi_allocate_connection(struct qed_hwfn *p_hwfn,
/* Need to allocate a new connection */
p_params = &p_hwfn->pf_params.iscsi_pf_params;
- p_conn = kzalloc(sizeof(*p_conn), GFP_KERNEL);
+ p_conn = kzalloc_obj(*p_conn, GFP_KERNEL);
if (!p_conn)
return -ENOMEM;
@@ -845,7 +845,7 @@ int qed_iscsi_alloc(struct qed_hwfn *p_hwfn)
{
struct qed_iscsi_info *p_iscsi_info;
- p_iscsi_info = kzalloc(sizeof(*p_iscsi_info), GFP_KERNEL);
+ p_iscsi_info = kzalloc_obj(*p_iscsi_info, GFP_KERNEL);
if (!p_iscsi_info)
return -ENOMEM;
@@ -1125,7 +1125,7 @@ static int qed_iscsi_start(struct qed_dev *cdev,
if (!tasks)
return 0;
- tid_info = kzalloc(sizeof(*tid_info), GFP_KERNEL);
+ tid_info = kzalloc_obj(*tid_info, GFP_KERNEL);
if (!tid_info) {
qed_iscsi_stop(cdev);
@@ -1159,7 +1159,7 @@ static int qed_iscsi_acquire_conn(struct qed_dev *cdev,
int rc;
/* Allocate a hashed connection */
- hash_con = kzalloc(sizeof(*hash_con), GFP_ATOMIC);
+ hash_con = kzalloc_obj(*hash_con, GFP_ATOMIC);
if (!hash_con)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c
index 1d1d4caad680..3b1ff94a0588 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c
@@ -546,7 +546,7 @@ qed_iwarp_create_ep(struct qed_hwfn *p_hwfn, struct qed_iwarp_ep **ep_out)
struct qed_iwarp_ep *ep;
int rc;
- ep = kzalloc(sizeof(*ep), GFP_KERNEL);
+ ep = kzalloc_obj(*ep, GFP_KERNEL);
if (!ep)
return -ENOMEM;
@@ -2602,7 +2602,7 @@ qed_iwarp_ll2_alloc_buffers(struct qed_hwfn *p_hwfn,
int i;
for (i = 0; i < num_rx_bufs; i++) {
- buffer = kzalloc(sizeof(*buffer), GFP_KERNEL);
+ buffer = kzalloc_obj(*buffer, GFP_KERNEL);
if (!buffer) {
rc = -ENOMEM;
break;
@@ -2759,9 +2759,9 @@ qed_iwarp_ll2_start(struct qed_hwfn *p_hwfn,
if (rc)
goto err;
- iwarp_info->partial_fpdus = kcalloc((u16)p_hwfn->p_rdma_info->num_qps,
- sizeof(*iwarp_info->partial_fpdus),
- GFP_KERNEL);
+ iwarp_info->partial_fpdus = kzalloc_objs(*iwarp_info->partial_fpdus,
+ (u16)p_hwfn->p_rdma_info->num_qps,
+ GFP_KERNEL);
if (!iwarp_info->partial_fpdus) {
rc = -ENOMEM;
goto err;
@@ -2780,9 +2780,8 @@ qed_iwarp_ll2_start(struct qed_hwfn *p_hwfn,
* processing. We can't fail on allocation of such a struct therefore
* we allocate enough to take care of all rx packets
*/
- iwarp_info->mpa_bufs = kcalloc(data.input.rx_num_desc,
- sizeof(*iwarp_info->mpa_bufs),
- GFP_KERNEL);
+ iwarp_info->mpa_bufs = kzalloc_objs(*iwarp_info->mpa_bufs,
+ data.input.rx_num_desc, GFP_KERNEL);
if (!iwarp_info->mpa_bufs) {
rc = -ENOMEM;
goto err;
@@ -3167,7 +3166,7 @@ qed_iwarp_create_listen(void *rdma_cxt,
struct qed_hwfn *p_hwfn = rdma_cxt;
struct qed_iwarp_listener *listener;
- listener = kzalloc(sizeof(*listener), GFP_KERNEL);
+ listener = kzalloc_obj(*listener, GFP_KERNEL);
if (!listener)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_l2.c b/drivers/net/ethernet/qlogic/qed/qed_l2.c
index 970b9aabbc3d..e78f9c2ffc38 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_l2.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_l2.c
@@ -58,7 +58,7 @@ int qed_l2_alloc(struct qed_hwfn *p_hwfn)
if (!QED_IS_L2_PERSONALITY(p_hwfn))
return 0;
- p_l2_info = kzalloc(sizeof(*p_l2_info), GFP_KERNEL);
+ p_l2_info = kzalloc_obj(*p_l2_info, GFP_KERNEL);
if (!p_l2_info)
return -ENOMEM;
p_hwfn->p_l2_info = p_l2_info;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_ll2.c b/drivers/net/ethernet/qlogic/qed/qed_ll2.c
index ab5ef254a748..904bb1cd9bdb 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_ll2.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_ll2.c
@@ -1195,8 +1195,7 @@ qed_ll2_acquire_connection_rx(struct qed_hwfn *p_hwfn,
}
capacity = qed_chain_get_capacity(&p_ll2_info->rx_queue.rxq_chain);
- p_descq = kcalloc(capacity, sizeof(struct qed_ll2_rx_packet),
- GFP_KERNEL);
+ p_descq = kzalloc_objs(struct qed_ll2_rx_packet, capacity, GFP_KERNEL);
if (!p_descq) {
rc = -ENOMEM;
DP_NOTICE(p_hwfn, "Failed to allocate ll2 Rx desc\n");
@@ -1291,7 +1290,7 @@ qed_ll2_acquire_connection_ooo(struct qed_hwfn *p_hwfn,
for (buf_idx = 0; buf_idx < p_ll2_info->input.rx_num_ooo_buffers;
buf_idx++) {
- p_buf = kzalloc(sizeof(*p_buf), GFP_KERNEL);
+ p_buf = kzalloc_obj(*p_buf, GFP_KERNEL);
if (!p_buf) {
rc = -ENOMEM;
goto out;
@@ -2200,8 +2199,9 @@ int qed_ll2_alloc(struct qed_hwfn *p_hwfn)
u8 i;
/* Allocate LL2's set struct */
- p_ll2_connections = kcalloc(QED_MAX_NUM_OF_LL2_CONNECTIONS,
- sizeof(struct qed_ll2_info), GFP_KERNEL);
+ p_ll2_connections = kzalloc_objs(struct qed_ll2_info,
+ QED_MAX_NUM_OF_LL2_CONNECTIONS,
+ GFP_KERNEL);
if (!p_ll2_connections) {
DP_NOTICE(p_hwfn, "Failed to allocate `struct qed_ll2'\n");
return -ENOMEM;
@@ -2603,7 +2603,7 @@ static int qed_ll2_start(struct qed_dev *cdev, struct qed_ll2_params *params)
DP_INFO(cdev, "Allocating %d LL2 buffers of size %08x bytes\n",
rx_num_desc, cdev->ll2->rx_size);
for (i = 0; i < rx_num_desc; i++) {
- buffer = kzalloc(sizeof(*buffer), GFP_KERNEL);
+ buffer = kzalloc_obj(*buffer, GFP_KERNEL);
if (!buffer) {
DP_INFO(cdev, "Failed to allocate LL2 buffers\n");
rc = -ENOMEM;
@@ -2811,7 +2811,7 @@ const struct qed_ll2_ops qed_ll2_ops_pass = {
int qed_ll2_alloc_if(struct qed_dev *cdev)
{
- cdev->ll2 = kzalloc(sizeof(*cdev->ll2), GFP_KERNEL);
+ cdev->ll2 = kzalloc_obj(*cdev->ll2, GFP_KERNEL);
return cdev->ll2 ? 0 : -ENOMEM;
}
diff --git a/drivers/net/ethernet/qlogic/qed/qed_main.c b/drivers/net/ethernet/qlogic/qed/qed_main.c
index d4685ad4b169..544d790efdea 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_main.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_main.c
@@ -461,7 +461,7 @@ static struct qed_dev *qed_alloc_cdev(struct pci_dev *pdev)
{
struct qed_dev *cdev;
- cdev = kzalloc(sizeof(*cdev), GFP_KERNEL);
+ cdev = kzalloc_obj(*cdev, GFP_KERNEL);
if (!cdev)
return cdev;
@@ -612,7 +612,7 @@ static int qed_set_int_mode(struct qed_dev *cdev, bool force_mode)
case QED_INT_MODE_MSIX:
/* Allocate MSIX table */
cnt = int_params->in.num_vectors;
- int_params->msix_table = kcalloc(cnt, sizeof(*tbl), GFP_KERNEL);
+ int_params->msix_table = kzalloc_objs(*tbl, cnt, GFP_KERNEL);
if (!int_params->msix_table) {
rc = -ENOMEM;
goto out;
@@ -1050,7 +1050,7 @@ static int qed_alloc_stream_mem(struct qed_dev *cdev)
for_each_hwfn(cdev, i) {
struct qed_hwfn *p_hwfn = &cdev->hwfns[i];
- p_hwfn->stream = kzalloc(sizeof(*p_hwfn->stream), GFP_KERNEL);
+ p_hwfn->stream = kzalloc_obj(*p_hwfn->stream, GFP_KERNEL);
if (!p_hwfn->stream)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_mcp.c b/drivers/net/ethernet/qlogic/qed/qed_mcp.c
index c7f497c36f66..22802c793d68 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_mcp.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_mcp.c
@@ -104,7 +104,7 @@ qed_mcp_cmd_add_elem(struct qed_hwfn *p_hwfn,
{
struct qed_mcp_cmd_elem *p_cmd_elem = NULL;
- p_cmd_elem = kzalloc(sizeof(*p_cmd_elem), GFP_ATOMIC);
+ p_cmd_elem = kzalloc_obj(*p_cmd_elem, GFP_ATOMIC);
if (!p_cmd_elem)
goto out;
@@ -241,7 +241,7 @@ int qed_mcp_cmd_init(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)
u32 size;
/* Allocate mcp_info structure */
- p_hwfn->mcp_info = kzalloc(sizeof(*p_hwfn->mcp_info), GFP_KERNEL);
+ p_hwfn->mcp_info = kzalloc_obj(*p_hwfn->mcp_info, GFP_KERNEL);
if (!p_hwfn->mcp_info)
goto err;
p_info = p_hwfn->mcp_info;
@@ -3365,9 +3365,8 @@ int qed_mcp_nvm_info_populate(struct qed_hwfn *p_hwfn)
goto err0;
}
- nvm_info.image_att = kmalloc_array(nvm_info.num_images,
- sizeof(struct bist_nvm_image_att),
- GFP_KERNEL);
+ nvm_info.image_att = kmalloc_objs(struct bist_nvm_image_att,
+ nvm_info.num_images, GFP_KERNEL);
if (!nvm_info.image_att) {
rc = -ENOMEM;
goto err0;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_nvmetcp.c b/drivers/net/ethernet/qlogic/qed/qed_nvmetcp.c
index f19128c8d9cc..81823f4197f6 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_nvmetcp.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_nvmetcp.c
@@ -218,7 +218,7 @@ static int qed_nvmetcp_start(struct qed_dev *cdev,
if (!tasks)
return 0;
- tid_info = kzalloc(sizeof(*tid_info), GFP_KERNEL);
+ tid_info = kzalloc_obj(*tid_info, GFP_KERNEL);
if (!tid_info) {
qed_nvmetcp_stop(cdev);
@@ -477,7 +477,7 @@ static int qed_nvmetcp_allocate_connection(struct qed_hwfn *p_hwfn,
/* Need to allocate a new connection */
p_params = &p_hwfn->pf_params.nvmetcp_pf_params;
- p_conn = kzalloc(sizeof(*p_conn), GFP_KERNEL);
+ p_conn = kzalloc_obj(*p_conn, GFP_KERNEL);
if (!p_conn)
return -ENOMEM;
@@ -568,7 +568,7 @@ int qed_nvmetcp_alloc(struct qed_hwfn *p_hwfn)
{
struct qed_nvmetcp_info *p_nvmetcp_info;
- p_nvmetcp_info = kzalloc(sizeof(*p_nvmetcp_info), GFP_KERNEL);
+ p_nvmetcp_info = kzalloc_obj(*p_nvmetcp_info, GFP_KERNEL);
if (!p_nvmetcp_info)
return -ENOMEM;
@@ -611,7 +611,7 @@ static int qed_nvmetcp_acquire_conn(struct qed_dev *cdev,
int rc;
/* Allocate a hashed connection */
- hash_con = kzalloc(sizeof(*hash_con), GFP_ATOMIC);
+ hash_con = kzalloc_obj(*hash_con, GFP_ATOMIC);
if (!hash_con)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_ooo.c b/drivers/net/ethernet/qlogic/qed/qed_ooo.c
index 8be567a6ad44..23631e18858e 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_ooo.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_ooo.c
@@ -107,7 +107,7 @@ int qed_ooo_alloc(struct qed_hwfn *p_hwfn)
return -EINVAL;
}
- p_ooo_info = kzalloc(sizeof(*p_ooo_info), GFP_KERNEL);
+ p_ooo_info = kzalloc_obj(*p_ooo_info, GFP_KERNEL);
if (!p_ooo_info)
return -ENOMEM;
@@ -118,9 +118,8 @@ int qed_ooo_alloc(struct qed_hwfn *p_hwfn)
INIT_LIST_HEAD(&p_ooo_info->ready_buffers_list);
INIT_LIST_HEAD(&p_ooo_info->free_isles_list);
- p_ooo_info->p_isles_mem = kcalloc(max_num_isles,
- sizeof(struct qed_ooo_isle),
- GFP_KERNEL);
+ p_ooo_info->p_isles_mem = kzalloc_objs(struct qed_ooo_isle,
+ max_num_isles, GFP_KERNEL);
if (!p_ooo_info->p_isles_mem)
goto no_isles_mem;
@@ -131,9 +130,8 @@ int qed_ooo_alloc(struct qed_hwfn *p_hwfn)
}
p_ooo_info->p_archipelagos_mem =
- kcalloc(max_num_archipelagos,
- sizeof(struct qed_ooo_archipelago),
- GFP_KERNEL);
+ kzalloc_objs(struct qed_ooo_archipelago,
+ max_num_archipelagos, GFP_KERNEL);
if (!p_ooo_info->p_archipelagos_mem)
goto no_archipelagos_mem;
@@ -141,9 +139,9 @@ int qed_ooo_alloc(struct qed_hwfn *p_hwfn)
INIT_LIST_HEAD(&p_ooo_info->p_archipelagos_mem[i].isles_list);
p_ooo_info->ooo_history.p_cqes =
- kcalloc(QED_MAX_NUM_OOO_HISTORY_ENTRIES,
- sizeof(struct ooo_opaque),
- GFP_KERNEL);
+ kzalloc_objs(struct ooo_opaque,
+ QED_MAX_NUM_OOO_HISTORY_ENTRIES,
+ GFP_KERNEL);
if (!p_ooo_info->ooo_history.p_cqes)
goto no_history_mem;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_rdma.c b/drivers/net/ethernet/qlogic/qed/qed_rdma.c
index 9a1660a12c57..8872c9ebcd26 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_rdma.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_rdma.c
@@ -119,7 +119,7 @@ int qed_rdma_info_alloc(struct qed_hwfn *p_hwfn)
{
struct qed_rdma_info *p_rdma_info;
- p_rdma_info = kzalloc(sizeof(*p_rdma_info), GFP_KERNEL);
+ p_rdma_info = kzalloc_obj(*p_rdma_info, GFP_KERNEL);
if (!p_rdma_info)
return -ENOMEM;
@@ -168,12 +168,12 @@ static int qed_rdma_alloc(struct qed_hwfn *p_hwfn)
p_rdma_info->max_queue_zones = (u16)RESC_NUM(p_hwfn, QED_L2_QUEUE);
/* Allocate a struct with device params and fill it */
- p_rdma_info->dev = kzalloc(sizeof(*p_rdma_info->dev), GFP_KERNEL);
+ p_rdma_info->dev = kzalloc_obj(*p_rdma_info->dev, GFP_KERNEL);
if (!p_rdma_info->dev)
return rc;
/* Allocate a struct with port params and fill it */
- p_rdma_info->port = kzalloc(sizeof(*p_rdma_info->port), GFP_KERNEL);
+ p_rdma_info->port = kzalloc_obj(*p_rdma_info->port, GFP_KERNEL);
if (!p_rdma_info->port)
goto free_rdma_dev;
@@ -1293,7 +1293,7 @@ qed_rdma_create_qp(void *rdma_cxt,
}
}
- qp = kzalloc(sizeof(*qp), GFP_KERNEL);
+ qp = kzalloc_obj(*qp, GFP_KERNEL);
if (!qp)
return NULL;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_spq.c b/drivers/net/ethernet/qlogic/qed/qed_spq.c
index d01b9245f811..d0ef2782f5ba 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_spq.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_spq.c
@@ -407,7 +407,7 @@ int qed_eq_alloc(struct qed_hwfn *p_hwfn, u16 num_elem)
int ret;
/* Allocate EQ struct */
- p_eq = kzalloc(sizeof(*p_eq), GFP_KERNEL);
+ p_eq = kzalloc_obj(*p_eq, GFP_KERNEL);
if (!p_eq)
return -ENOMEM;
@@ -562,7 +562,7 @@ int qed_spq_alloc(struct qed_hwfn *p_hwfn)
int ret;
/* SPQ struct */
- p_spq = kzalloc(sizeof(*p_spq), GFP_KERNEL);
+ p_spq = kzalloc_obj(*p_spq, GFP_KERNEL);
if (!p_spq)
return -ENOMEM;
@@ -633,7 +633,7 @@ int qed_spq_get_entry(struct qed_hwfn *p_hwfn, struct qed_spq_entry **pp_ent)
spin_lock_bh(&p_spq->lock);
if (list_empty(&p_spq->free_pool)) {
- p_ent = kzalloc(sizeof(*p_ent), GFP_ATOMIC);
+ p_ent = kzalloc_obj(*p_ent, GFP_ATOMIC);
if (!p_ent) {
DP_NOTICE(p_hwfn,
"Failed to allocate an SPQ entry for a pending ramrod\n");
@@ -1013,7 +1013,7 @@ int qed_consq_alloc(struct qed_hwfn *p_hwfn)
int ret;
/* Allocate ConsQ struct */
- p_consq = kzalloc(sizeof(*p_consq), GFP_KERNEL);
+ p_consq = kzalloc_obj(*p_consq, GFP_KERNEL);
if (!p_consq)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_sriov.c b/drivers/net/ethernet/qlogic/qed/qed_sriov.c
index 5222a035fd19..cc9087abbacc 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_sriov.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_sriov.c
@@ -543,7 +543,7 @@ int qed_iov_alloc(struct qed_hwfn *p_hwfn)
return 0;
}
- p_sriov = kzalloc(sizeof(*p_sriov), GFP_KERNEL);
+ p_sriov = kzalloc_obj(*p_sriov, GFP_KERNEL);
if (!p_sriov)
return -ENOMEM;
@@ -600,7 +600,7 @@ int qed_iov_hw_info(struct qed_hwfn *p_hwfn)
}
/* Allocate a new struct for IOV information */
- cdev->p_iov_info = kzalloc(sizeof(*cdev->p_iov_info), GFP_KERNEL);
+ cdev->p_iov_info = kzalloc_obj(*cdev->p_iov_info, GFP_KERNEL);
if (!cdev->p_iov_info)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_vf.c b/drivers/net/ethernet/qlogic/qed/qed_vf.c
index 0e265ed1f501..b9ebf91e6b6a 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_vf.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_vf.c
@@ -454,7 +454,7 @@ int qed_vf_hw_prepare(struct qed_hwfn *p_hwfn)
p_hwfn->hw_info.concrete_fid = REG_RD(p_hwfn, reg);
/* Allocate vf sriov info */
- p_iov = kzalloc(sizeof(*p_iov), GFP_KERNEL);
+ p_iov = kzalloc_obj(*p_iov, GFP_KERNEL);
if (!p_iov)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/qede/qede_filter.c b/drivers/net/ethernet/qlogic/qede/qede_filter.c
index 7e341e026489..32bb653c50f7 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_filter.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_filter.c
@@ -413,7 +413,7 @@ qede_alloc_filter(struct qede_dev *edev, int min_hlen)
if (bit_id >= QEDE_RFS_MAX_FLTR)
return NULL;
- n = kzalloc(sizeof(*n), GFP_ATOMIC);
+ n = kzalloc_obj(*n, GFP_ATOMIC);
if (!n)
return NULL;
@@ -682,7 +682,7 @@ int qede_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid)
DP_VERBOSE(edev, NETIF_MSG_IFUP, "Adding vlan 0x%04x\n", vid);
- vlan = kzalloc(sizeof(*vlan), GFP_KERNEL);
+ vlan = kzalloc_obj(*vlan, GFP_KERNEL);
if (!vlan) {
DP_INFO(edev, "Failed to allocate struct for vlan\n");
return -ENOMEM;
@@ -1916,7 +1916,7 @@ int qede_add_tc_flower_fltr(struct qede_dev *edev, __be16 proto,
goto unlock;
}
- n = kzalloc(sizeof(*n), GFP_KERNEL);
+ n = kzalloc_obj(*n, GFP_KERNEL);
if (!n) {
rc = -ENOMEM;
goto unlock;
@@ -2059,7 +2059,7 @@ int qede_add_cls_rule(struct qede_dev *edev, struct ethtool_rxnfc *info)
goto unlock;
}
- n = kzalloc(sizeof(*n), GFP_KERNEL);
+ n = kzalloc_obj(*n, GFP_KERNEL);
if (!n) {
rc = -ENOMEM;
goto unlock;
diff --git a/drivers/net/ethernet/qlogic/qede/qede_main.c b/drivers/net/ethernet/qlogic/qede/qede_main.c
index 66ab1b9d65a1..dfa221b30e9e 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_main.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_main.c
@@ -963,17 +963,17 @@ static int qede_alloc_fp_array(struct qede_dev *edev)
struct qede_fastpath *fp;
int i;
- edev->fp_array = kcalloc(QEDE_QUEUE_CNT(edev),
- sizeof(*edev->fp_array), GFP_KERNEL);
+ edev->fp_array = kzalloc_objs(*edev->fp_array, QEDE_QUEUE_CNT(edev),
+ GFP_KERNEL);
if (!edev->fp_array) {
DP_NOTICE(edev, "fp array allocation failed\n");
goto err;
}
if (!edev->coal_entry) {
- edev->coal_entry = kcalloc(QEDE_MAX_RSS_CNT(edev),
- sizeof(*edev->coal_entry),
- GFP_KERNEL);
+ edev->coal_entry = kzalloc_objs(*edev->coal_entry,
+ QEDE_MAX_RSS_CNT(edev),
+ GFP_KERNEL);
if (!edev->coal_entry) {
DP_ERR(edev, "coalesce entry allocation failed\n");
goto err;
@@ -990,7 +990,7 @@ static int qede_alloc_fp_array(struct qede_dev *edev)
for_each_queue(i) {
fp = &edev->fp_array[i];
- fp->sb_info = kzalloc(sizeof(*fp->sb_info), GFP_KERNEL);
+ fp->sb_info = kzalloc_obj(*fp->sb_info, GFP_KERNEL);
if (!fp->sb_info) {
DP_NOTICE(edev, "sb info struct allocation failed\n");
goto err;
@@ -1007,20 +1007,20 @@ static int qede_alloc_fp_array(struct qede_dev *edev)
}
if (fp->type & QEDE_FASTPATH_TX) {
- fp->txq = kcalloc(edev->dev_info.num_tc,
- sizeof(*fp->txq), GFP_KERNEL);
+ fp->txq = kzalloc_objs(*fp->txq, edev->dev_info.num_tc,
+ GFP_KERNEL);
if (!fp->txq)
goto err;
}
if (fp->type & QEDE_FASTPATH_RX) {
- fp->rxq = kzalloc(sizeof(*fp->rxq), GFP_KERNEL);
+ fp->rxq = kzalloc_obj(*fp->rxq, GFP_KERNEL);
if (!fp->rxq)
goto err;
if (edev->xdp_prog) {
- fp->xdp_tx = kzalloc(sizeof(*fp->xdp_tx),
- GFP_KERNEL);
+ fp->xdp_tx = kzalloc_obj(*fp->xdp_tx,
+ GFP_KERNEL);
if (!fp->xdp_tx)
goto err;
fp->type |= QEDE_FASTPATH_XDP;
diff --git a/drivers/net/ethernet/qlogic/qede/qede_ptp.c b/drivers/net/ethernet/qlogic/qede/qede_ptp.c
index d351be5fbda1..774f77f9a55e 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_ptp.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_ptp.c
@@ -446,7 +446,7 @@ int qede_ptp_enable(struct qede_dev *edev)
struct qede_ptp *ptp;
int rc;
- ptp = kzalloc(sizeof(*ptp), GFP_KERNEL);
+ ptp = kzalloc_obj(*ptp, GFP_KERNEL);
if (!ptp) {
DP_INFO(edev, "Failed to allocate struct for PTP\n");
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/qede/qede_rdma.c b/drivers/net/ethernet/qlogic/qede/qede_rdma.c
index 6304514a6f2c..d0fff415871e 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_rdma.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_rdma.c
@@ -258,7 +258,7 @@ qede_rdma_get_free_event_node(struct qede_dev *edev)
}
if (!found) {
- event_node = kzalloc(sizeof(*event_node), GFP_ATOMIC);
+ event_node = kzalloc_obj(*event_node, GFP_ATOMIC);
if (!event_node) {
DP_NOTICE(edev,
"qedr: Could not allocate memory for rdma work\n");
diff --git a/drivers/net/ethernet/qlogic/qla3xxx.c b/drivers/net/ethernet/qlogic/qla3xxx.c
index fca94a69c777..b75b4708c300 100644
--- a/drivers/net/ethernet/qlogic/qla3xxx.c
+++ b/drivers/net/ethernet/qlogic/qla3xxx.c
@@ -2578,9 +2578,8 @@ static int ql_alloc_buffer_queues(struct ql3_adapter *qdev)
else
qdev->lrg_buf_q_alloc_size = qdev->lrg_buf_q_size * 2;
- qdev->lrg_buf = kmalloc_array(qdev->num_large_buffers,
- sizeof(struct ql_rcv_buf_cb),
- GFP_KERNEL);
+ qdev->lrg_buf = kmalloc_objs(struct ql_rcv_buf_cb,
+ qdev->num_large_buffers, GFP_KERNEL);
if (qdev->lrg_buf == NULL)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
index 91e7b38143ea..bae848bd5e26 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
@@ -1732,7 +1732,7 @@ int qlcnic_83xx_nic_set_promisc(struct qlcnic_adapter *adapter, u32 mode)
if (adapter->recv_ctx->state == QLCNIC_HOST_CTX_STATE_FREED)
return -EIO;
- cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC);
+ cmd = kzalloc_obj(*cmd, GFP_ATOMIC);
if (!cmd)
return -ENOMEM;
@@ -2103,7 +2103,7 @@ int qlcnic_83xx_sre_macaddr_change(struct qlcnic_adapter *adapter, u8 *addr,
if (adapter->recv_ctx->state == QLCNIC_HOST_CTX_STATE_FREED)
return -EIO;
- cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC);
+ cmd = kzalloc_obj(*cmd, GFP_ATOMIC);
if (!cmd)
return -ENOMEM;
@@ -4164,7 +4164,7 @@ int qlcnic_83xx_init_mailbox_work(struct qlcnic_adapter *adapter)
struct qlcnic_hardware_context *ahw = adapter->ahw;
struct qlcnic_mailbox *mbx;
- ahw->mailbox = kzalloc(sizeof(*mbx), GFP_KERNEL);
+ ahw->mailbox = kzalloc_obj(*mbx, GFP_KERNEL);
if (!ahw->mailbox)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
index 6145252d8ff8..42c8e5490ee7 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
@@ -2388,7 +2388,7 @@ static int qlcnic_83xx_get_fw_info(struct qlcnic_adapter *adapter)
struct qlc_83xx_fw_info *fw_info;
int err = 0;
- ahw->fw_info = kzalloc(sizeof(*fw_info), GFP_KERNEL);
+ ahw->fw_info = kzalloc_obj(*fw_info, GFP_KERNEL);
if (!ahw->fw_info) {
err = -ENOMEM;
} else {
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c
index 4d638f60f237..576340315e0d 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c
@@ -259,7 +259,7 @@ int qlcnic_register_dcb(struct qlcnic_adapter *adapter)
if (qlcnic_sriov_vf_check(adapter))
return 0;
- dcb = kzalloc(sizeof(struct qlcnic_dcb), GFP_ATOMIC);
+ dcb = kzalloc_obj(struct qlcnic_dcb, GFP_ATOMIC);
if (!dcb)
return -ENOMEM;
@@ -317,13 +317,13 @@ static int __qlcnic_dcb_attach(struct qlcnic_dcb *dcb)
return -1;
}
- dcb->cfg = kzalloc(sizeof(struct qlcnic_dcb_cfg), GFP_ATOMIC);
+ dcb->cfg = kzalloc_obj(struct qlcnic_dcb_cfg, GFP_ATOMIC);
if (!dcb->cfg) {
err = -ENOMEM;
goto out_free_wq;
}
- dcb->param = kzalloc(sizeof(struct qlcnic_dcb_mbx_params), GFP_ATOMIC);
+ dcb->param = kzalloc_obj(struct qlcnic_dcb_mbx_params, GFP_ATOMIC);
if (!dcb->param) {
err = -ENOMEM;
goto out_free_cfg;
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
index ae4ee0326ee1..e58176badc1f 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
@@ -489,7 +489,7 @@ int qlcnic_nic_add_mac(struct qlcnic_adapter *adapter, const u8 *addr, u16 vlan,
return 0;
}
- cur = kzalloc(sizeof(*cur), GFP_ATOMIC);
+ cur = kzalloc_obj(*cur, GFP_ATOMIC);
if (cur == NULL)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c
index 09f20c794754..e56ef10b6a2d 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c
@@ -189,8 +189,8 @@ int qlcnic_alloc_sw_resources(struct qlcnic_adapter *adapter)
recv_ctx = adapter->recv_ctx;
- rds_ring = kcalloc(adapter->max_rds_rings,
- sizeof(struct qlcnic_host_rds_ring), GFP_KERNEL);
+ rds_ring = kzalloc_objs(struct qlcnic_host_rds_ring,
+ adapter->max_rds_rings, GFP_KERNEL);
if (rds_ring == NULL)
goto err_out;
@@ -454,7 +454,7 @@ int qlcnic_pinit_from_rom(struct qlcnic_adapter *adapter)
return -EIO;
}
- buf = kcalloc(n, sizeof(struct crb_addr_pair), GFP_KERNEL);
+ buf = kzalloc_objs(struct crb_addr_pair, n, GFP_KERNEL);
if (buf == NULL)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
index b9dc0071c5de..537fd26da904 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
@@ -220,7 +220,7 @@ static void qlcnic_add_lb_filter(struct qlcnic_adapter *adapter,
return;
}
- fil = kzalloc(sizeof(struct qlcnic_filter), GFP_ATOMIC);
+ fil = kzalloc_obj(struct qlcnic_filter, GFP_ATOMIC);
if (!fil)
return;
@@ -346,7 +346,7 @@ static void qlcnic_send_filter(struct qlcnic_adapter *adapter,
return;
}
- fil = kzalloc(sizeof(struct qlcnic_filter), GFP_ATOMIC);
+ fil = kzalloc_obj(struct qlcnic_filter, GFP_ATOMIC);
if (!fil)
return;
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
index e051d8c7a28d..00eab09c1710 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
@@ -679,9 +679,8 @@ int qlcnic_setup_tss_rss_intr(struct qlcnic_adapter *adapter)
num_msix += 1;
if (!adapter->msix_entries) {
- adapter->msix_entries = kcalloc(num_msix,
- sizeof(struct msix_entry),
- GFP_KERNEL);
+ adapter->msix_entries = kzalloc_objs(struct msix_entry,
+ num_msix, GFP_KERNEL);
if (!adapter->msix_entries)
return -ENOMEM;
}
@@ -734,9 +733,8 @@ int qlcnic_enable_msix(struct qlcnic_adapter *adapter, u32 num_msix)
int err, vector;
if (!adapter->msix_entries) {
- adapter->msix_entries = kcalloc(num_msix,
- sizeof(struct msix_entry),
- GFP_KERNEL);
+ adapter->msix_entries = kzalloc_objs(struct msix_entry,
+ num_msix, GFP_KERNEL);
if (!adapter->msix_entries)
return -ENOMEM;
}
@@ -952,7 +950,7 @@ static int qlcnic_get_act_pci_func(struct qlcnic_adapter *adapter)
if (ahw->op_mode == QLCNIC_MGMT_FUNC)
return 0;
- pci_info = kcalloc(ahw->max_vnic_func, sizeof(*pci_info), GFP_KERNEL);
+ pci_info = kzalloc_objs(*pci_info, ahw->max_vnic_func, GFP_KERNEL);
if (!pci_info)
return -ENOMEM;
@@ -986,7 +984,7 @@ int qlcnic_init_pci_info(struct qlcnic_adapter *adapter)
u16 act_pci_func;
u8 pfn;
- pci_info = kcalloc(ahw->max_vnic_func, sizeof(*pci_info), GFP_KERNEL);
+ pci_info = kzalloc_objs(*pci_info, ahw->max_vnic_func, GFP_KERNEL);
if (!pci_info)
return -ENOMEM;
@@ -996,17 +994,15 @@ int qlcnic_init_pci_info(struct qlcnic_adapter *adapter)
act_pci_func = ahw->total_nic_func;
- adapter->npars = kcalloc(act_pci_func,
- sizeof(struct qlcnic_npar_info),
- GFP_KERNEL);
+ adapter->npars = kzalloc_objs(struct qlcnic_npar_info, act_pci_func,
+ GFP_KERNEL);
if (!adapter->npars) {
ret = -ENOMEM;
goto err_pci_info;
}
- adapter->eswitch = kcalloc(QLCNIC_NIU_MAX_XG_PORTS,
- sizeof(struct qlcnic_eswitch),
- GFP_KERNEL);
+ adapter->eswitch = kzalloc_objs(struct qlcnic_eswitch,
+ QLCNIC_NIU_MAX_XG_PORTS, GFP_KERNEL);
if (!adapter->eswitch) {
ret = -ENOMEM;
goto err_npars;
@@ -2059,8 +2055,7 @@ static int qlcnic_alloc_adapter_resources(struct qlcnic_adapter *adapter)
struct qlcnic_hardware_context *ahw = adapter->ahw;
int err = 0;
- adapter->recv_ctx = kzalloc(sizeof(struct qlcnic_recv_context),
- GFP_KERNEL);
+ adapter->recv_ctx = kzalloc_obj(struct qlcnic_recv_context, GFP_KERNEL);
if (!adapter->recv_ctx) {
err = -ENOMEM;
goto err_out;
@@ -2356,8 +2351,8 @@ int qlcnic_alloc_tx_rings(struct qlcnic_adapter *adapter,
struct qlcnic_host_tx_ring *tx_ring;
struct qlcnic_cmd_buffer *cmd_buf_arr;
- tx_ring = kcalloc(adapter->drv_tx_rings,
- sizeof(struct qlcnic_host_tx_ring), GFP_KERNEL);
+ tx_ring = kzalloc_objs(struct qlcnic_host_tx_ring,
+ adapter->drv_tx_rings, GFP_KERNEL);
if (tx_ring == NULL)
return -ENOMEM;
@@ -2444,7 +2439,7 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
pci_set_master(pdev);
- ahw = kzalloc(sizeof(struct qlcnic_hardware_context), GFP_KERNEL);
+ ahw = kzalloc_obj(struct qlcnic_hardware_context, GFP_KERNEL);
if (!ahw) {
err = -ENOMEM;
goto err_out_free_res;
@@ -2851,8 +2846,8 @@ void qlcnic_alloc_lb_filters_mem(struct qlcnic_adapter *adapter)
adapter->fhash.fbucket_size = QLC_83XX_LB_BUCKET_SIZE;
}
- head = kcalloc(adapter->fhash.fbucket_size,
- sizeof(struct hlist_head), GFP_ATOMIC);
+ head = kzalloc_objs(struct hlist_head, adapter->fhash.fbucket_size,
+ GFP_ATOMIC);
if (!head)
return;
@@ -2868,8 +2863,8 @@ void qlcnic_alloc_lb_filters_mem(struct qlcnic_adapter *adapter)
adapter->rx_fhash.fbucket_size = adapter->fhash.fbucket_size;
- head = kcalloc(adapter->rx_fhash.fbucket_size,
- sizeof(struct hlist_head), GFP_ATOMIC);
+ head = kzalloc_objs(struct hlist_head, adapter->rx_fhash.fbucket_size,
+ GFP_ATOMIC);
if (!head)
return;
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
index 7ecb3dfe30bd..c2bf5455092c 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
@@ -792,8 +792,7 @@ static u32 qlcnic_read_memory_pexdma(struct qlcnic_adapter *adapter,
}
/* Create DMA descriptor */
- dma_descr = kzalloc(sizeof(struct qlcnic_pex_dma_descriptor),
- GFP_KERNEL);
+ dma_descr = kzalloc_obj(struct qlcnic_pex_dma_descriptor, GFP_KERNEL);
if (!dma_descr) {
*ret = -ENOMEM;
return 0;
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c
index d57b976b9040..c6af69e5a700 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c
@@ -149,15 +149,15 @@ int qlcnic_sriov_init(struct qlcnic_adapter *adapter, int num_vfs)
if (!qlcnic_sriov_enable_check(adapter))
return -EIO;
- sriov = kzalloc(sizeof(struct qlcnic_sriov), GFP_KERNEL);
+ sriov = kzalloc_obj(struct qlcnic_sriov, GFP_KERNEL);
if (!sriov)
return -ENOMEM;
adapter->ahw->sriov = sriov;
sriov->num_vfs = num_vfs;
bc = &sriov->bc;
- sriov->vf_info = kcalloc(num_vfs, sizeof(struct qlcnic_vf_info),
- GFP_KERNEL);
+ sriov->vf_info = kzalloc_objs(struct qlcnic_vf_info, num_vfs,
+ GFP_KERNEL);
if (!sriov->vf_info) {
err = -ENOMEM;
goto qlcnic_free_sriov;
@@ -201,7 +201,7 @@ int qlcnic_sriov_init(struct qlcnic_adapter *adapter, int num_vfs)
INIT_WORK(&vf->trans_work, qlcnic_sriov_process_bc_cmd);
if (qlcnic_sriov_pf_check(adapter)) {
- vp = kzalloc(sizeof(struct qlcnic_vport), GFP_KERNEL);
+ vp = kzalloc_obj(struct qlcnic_vport, GFP_KERNEL);
if (!vp) {
err = -ENOMEM;
goto qlcnic_destroy_async_wq;
@@ -699,7 +699,7 @@ int qlcnic_sriov_func_to_index(struct qlcnic_adapter *adapter, u8 pci_func)
static inline int qlcnic_sriov_alloc_bc_trans(struct qlcnic_bc_trans **trans)
{
- *trans = kzalloc(sizeof(struct qlcnic_bc_trans), GFP_ATOMIC);
+ *trans = kzalloc_obj(struct qlcnic_bc_trans, GFP_ATOMIC);
if (!*trans)
return -ENOMEM;
@@ -710,7 +710,7 @@ static inline int qlcnic_sriov_alloc_bc_trans(struct qlcnic_bc_trans **trans)
static inline int qlcnic_sriov_alloc_bc_msg(struct qlcnic_bc_hdr **hdr,
u32 size)
{
- *hdr = kcalloc(size, sizeof(struct qlcnic_bc_hdr), GFP_ATOMIC);
+ *hdr = kzalloc_objs(struct qlcnic_bc_hdr, size, GFP_ATOMIC);
if (!*hdr)
return -ENOMEM;
@@ -1634,7 +1634,7 @@ qlcnic_sriov_alloc_async_cmd(struct qlcnic_back_channel *bc,
{
struct qlcnic_async_cmd *entry = NULL;
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (!entry)
return NULL;
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c
index 8dd7aa08ecfb..7052d34aad45 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c
@@ -799,7 +799,7 @@ static int qlcnic_sriov_cfg_vf_def_mac(struct qlcnic_adapter *adapter,
vp = vf->vp;
- cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC);
+ cmd = kzalloc_obj(*cmd, GFP_ATOMIC);
if (!cmd)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c
index 5296d9a6ee83..406101671602 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c
@@ -909,7 +909,7 @@ static ssize_t qlcnic_sysfs_read_pci_config(struct file *file,
int i, ret;
u32 count;
- pci_info = kcalloc(size, sizeof(*pci_info), GFP_KERNEL);
+ pci_info = kzalloc_objs(*pci_info, size, GFP_KERNEL);
if (!pci_info)
return -ENOMEM;
diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c b/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c
index ba8763cac9d9..723ddbb1a70a 100644
--- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c
+++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c
@@ -68,7 +68,7 @@ static int rmnet_register_real_device(struct net_device *real_dev,
return 0;
}
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return -ENOMEM;
@@ -143,7 +143,7 @@ static int rmnet_newlink(struct net_device *dev,
return -ENODEV;
}
- ep = kzalloc(sizeof(*ep), GFP_KERNEL);
+ ep = kzalloc_obj(*ep, GFP_KERNEL);
if (!ep)
return -ENOMEM;
diff --git a/drivers/net/ethernet/realtek/r8169_leds.c b/drivers/net/ethernet/realtek/r8169_leds.c
index e10bee706bc6..5da64cea5eb4 100644
--- a/drivers/net/ethernet/realtek/r8169_leds.c
+++ b/drivers/net/ethernet/realtek/r8169_leds.c
@@ -154,7 +154,7 @@ struct r8169_led_classdev *rtl8168_init_leds(struct net_device *ndev)
struct r8169_led_classdev *leds;
int i;
- leds = kcalloc(RTL8168_NUM_LEDS + 1, sizeof(*leds), GFP_KERNEL);
+ leds = kzalloc_objs(*leds, RTL8168_NUM_LEDS + 1, GFP_KERNEL);
if (!leds)
return NULL;
@@ -253,7 +253,7 @@ struct r8169_led_classdev *rtl8125_init_leds(struct net_device *ndev)
struct r8169_led_classdev *leds;
int i;
- leds = kcalloc(RTL8125_NUM_LEDS + 1, sizeof(*leds), GFP_KERNEL);
+ leds = kzalloc_objs(*leds, RTL8125_NUM_LEDS + 1, GFP_KERNEL);
if (!leds)
return NULL;
diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
index 2f7d9809c373..ad0e07e2a09d 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -2683,7 +2683,7 @@ static void rtl_request_firmware(struct rtl8169_private *tp)
if (tp->rtl_fw || !tp->fw_name)
return;
- rtl_fw = kzalloc(sizeof(*rtl_fw), GFP_KERNEL);
+ rtl_fw = kzalloc_obj(*rtl_fw, GFP_KERNEL);
if (!rtl_fw)
return;
diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
index 57b0db314fb5..85f2e23f2638 100644
--- a/drivers/net/ethernet/renesas/ravb_main.c
+++ b/drivers/net/ethernet/renesas/ravb_main.c
@@ -436,14 +436,14 @@ static int ravb_ring_init(struct net_device *ndev, int q)
goto error;
/* Allocate RX buffers */
- priv->rx_buffers[q] = kcalloc(priv->num_rx_ring[q],
- sizeof(*priv->rx_buffers[q]), GFP_KERNEL);
+ priv->rx_buffers[q] = kzalloc_objs(*priv->rx_buffers[q],
+ priv->num_rx_ring[q], GFP_KERNEL);
if (!priv->rx_buffers[q])
goto error;
/* Allocate TX skb rings */
- priv->tx_skb[q] = kcalloc(priv->num_tx_ring[q],
- sizeof(*priv->tx_skb[q]), GFP_KERNEL);
+ priv->tx_skb[q] = kzalloc_objs(*priv->tx_skb[q], priv->num_tx_ring[q],
+ GFP_KERNEL);
if (!priv->tx_skb[q])
goto error;
@@ -2199,7 +2199,7 @@ static netdev_tx_t ravb_start_xmit(struct sk_buff *skb, struct net_device *ndev)
/* TX timestamp required */
if (info->gptp || info->ccc_gac) {
if (q == RAVB_NC) {
- ts_skb = kmalloc(sizeof(*ts_skb), GFP_ATOMIC);
+ ts_skb = kmalloc_obj(*ts_skb, GFP_ATOMIC);
if (!ts_skb) {
if (num_tx_desc > 1) {
desc--;
diff --git a/drivers/net/ethernet/renesas/rswitch_main.c b/drivers/net/ethernet/renesas/rswitch_main.c
index 433eb2b00d10..421677d4b1d7 100644
--- a/drivers/net/ethernet/renesas/rswitch_main.c
+++ b/drivers/net/ethernet/renesas/rswitch_main.c
@@ -346,7 +346,8 @@ static int rswitch_gwca_queue_alloc(struct net_device *ndev,
gq->ndev = ndev;
if (!dir_tx) {
- gq->rx_bufs = kcalloc(gq->ring_size, sizeof(*gq->rx_bufs), GFP_KERNEL);
+ gq->rx_bufs = kzalloc_objs(*gq->rx_bufs, gq->ring_size,
+ GFP_KERNEL);
if (!gq->rx_bufs)
return -ENOMEM;
if (rswitch_gwca_queue_alloc_rx_buf(gq, 0, gq->ring_size) < 0)
@@ -356,10 +357,11 @@ static int rswitch_gwca_queue_alloc(struct net_device *ndev,
sizeof(struct rswitch_ext_ts_desc) *
(gq->ring_size + 1), &gq->ring_dma, GFP_KERNEL);
} else {
- gq->skbs = kcalloc(gq->ring_size, sizeof(*gq->skbs), GFP_KERNEL);
+ gq->skbs = kzalloc_objs(*gq->skbs, gq->ring_size, GFP_KERNEL);
if (!gq->skbs)
return -ENOMEM;
- gq->unmap_addrs = kcalloc(gq->ring_size, sizeof(*gq->unmap_addrs), GFP_KERNEL);
+ gq->unmap_addrs = kzalloc_objs(*gq->unmap_addrs, gq->ring_size,
+ GFP_KERNEL);
if (!gq->unmap_addrs)
goto out;
gq->tx_ring = dma_alloc_coherent(ndev->dev.parent,
diff --git a/drivers/net/ethernet/renesas/rtsn.c b/drivers/net/ethernet/renesas/rtsn.c
index 85052b47afb9..2850e76d7f6f 100644
--- a/drivers/net/ethernet/renesas/rtsn.c
+++ b/drivers/net/ethernet/renesas/rtsn.c
@@ -349,8 +349,8 @@ static int rtsn_chain_init(struct rtsn_private *priv, int tx_size, int rx_size)
priv->num_tx_ring = tx_size;
priv->num_rx_ring = rx_size;
- priv->tx_skb = kcalloc(tx_size, sizeof(*priv->tx_skb), GFP_KERNEL);
- priv->rx_skb = kcalloc(rx_size, sizeof(*priv->rx_skb), GFP_KERNEL);
+ priv->tx_skb = kzalloc_objs(*priv->tx_skb, tx_size, GFP_KERNEL);
+ priv->rx_skb = kzalloc_objs(*priv->rx_skb, rx_size, GFP_KERNEL);
if (!priv->rx_skb || !priv->tx_skb)
goto error;
diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c
index 6fb0ffc1c844..019828d3713f 100644
--- a/drivers/net/ethernet/renesas/sh_eth.c
+++ b/drivers/net/ethernet/renesas/sh_eth.c
@@ -1410,13 +1410,13 @@ static int sh_eth_ring_init(struct net_device *ndev)
mdp->rx_buf_sz += NET_IP_ALIGN;
/* Allocate RX and TX skb rings */
- mdp->rx_skbuff = kcalloc(mdp->num_rx_ring, sizeof(*mdp->rx_skbuff),
- GFP_KERNEL);
+ mdp->rx_skbuff = kzalloc_objs(*mdp->rx_skbuff, mdp->num_rx_ring,
+ GFP_KERNEL);
if (!mdp->rx_skbuff)
return -ENOMEM;
- mdp->tx_skbuff = kcalloc(mdp->num_tx_ring, sizeof(*mdp->tx_skbuff),
- GFP_KERNEL);
+ mdp->tx_skbuff = kzalloc_objs(*mdp->tx_skbuff, mdp->num_tx_ring,
+ GFP_KERNEL);
if (!mdp->tx_skbuff)
goto ring_free;
diff --git a/drivers/net/ethernet/rocker/rocker_main.c b/drivers/net/ethernet/rocker/rocker_main.c
index 2794f75df8fc..503a9869e1db 100644
--- a/drivers/net/ethernet/rocker/rocker_main.c
+++ b/drivers/net/ethernet/rocker/rocker_main.c
@@ -66,7 +66,7 @@ static struct rocker_wait *rocker_wait_create(void)
{
struct rocker_wait *wait;
- wait = kzalloc(sizeof(*wait), GFP_KERNEL);
+ wait = kzalloc_obj(*wait, GFP_KERNEL);
if (!wait)
return NULL;
return wait;
@@ -435,8 +435,7 @@ static int rocker_dma_ring_create(const struct rocker *rocker,
info->type = type;
info->head = 0;
info->tail = 0;
- info->desc_info = kcalloc(info->size, sizeof(*info->desc_info),
- GFP_KERNEL);
+ info->desc_info = kzalloc_objs(*info->desc_info, info->size, GFP_KERNEL);
if (!info->desc_info)
return -ENOMEM;
@@ -2155,7 +2154,7 @@ static int rocker_router_fib_event(struct notifier_block *nb,
if (info->family != AF_INET)
return NOTIFY_DONE;
- fib_work = kzalloc(sizeof(*fib_work), GFP_ATOMIC);
+ fib_work = kzalloc_obj(*fib_work, GFP_ATOMIC);
if (WARN_ON(!fib_work))
return NOTIFY_BAD;
@@ -2648,9 +2647,8 @@ static int rocker_msix_init(struct rocker *rocker)
if (msix_entries != ROCKER_MSIX_VEC_COUNT(rocker->port_count))
return -EINVAL;
- rocker->msix_entries = kmalloc_array(msix_entries,
- sizeof(struct msix_entry),
- GFP_KERNEL);
+ rocker->msix_entries = kmalloc_objs(struct msix_entry, msix_entries,
+ GFP_KERNEL);
if (!rocker->msix_entries)
return -ENOMEM;
@@ -2764,7 +2762,7 @@ static int rocker_switchdev_event(struct notifier_block *unused,
return rocker_switchdev_port_attr_set_event(dev, ptr);
rocker_port = netdev_priv(dev);
- switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC);
+ switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC);
if (WARN_ON(!switchdev_work))
return NOTIFY_BAD;
@@ -2850,7 +2848,7 @@ static int rocker_probe(struct pci_dev *pdev, const struct pci_device_id *id)
struct rocker *rocker;
int err;
- rocker = kzalloc(sizeof(*rocker), GFP_KERNEL);
+ rocker = kzalloc_obj(*rocker, GFP_KERNEL);
if (!rocker)
return -ENOMEM;
diff --git a/drivers/net/ethernet/rocker/rocker_ofdpa.c b/drivers/net/ethernet/rocker/rocker_ofdpa.c
index 61e50517c05b..a9795b79d1d4 100644
--- a/drivers/net/ethernet/rocker/rocker_ofdpa.c
+++ b/drivers/net/ethernet/rocker/rocker_ofdpa.c
@@ -838,7 +838,7 @@ static int ofdpa_flow_tbl_ig_port(struct ofdpa_port *ofdpa_port, int flags,
{
struct ofdpa_flow_tbl_entry *entry;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -860,7 +860,7 @@ static int ofdpa_flow_tbl_vlan(struct ofdpa_port *ofdpa_port,
{
struct ofdpa_flow_tbl_entry *entry;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -886,7 +886,7 @@ static int ofdpa_flow_tbl_term_mac(struct ofdpa_port *ofdpa_port,
{
struct ofdpa_flow_tbl_entry *entry;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -926,7 +926,7 @@ static int ofdpa_flow_tbl_bridge(struct ofdpa_port *ofdpa_port,
bool dflt = !eth_dst || eth_dst_mask;
bool wild = false;
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (!entry)
return -ENOMEM;
@@ -976,7 +976,7 @@ static int ofdpa_flow_tbl_ucast4_routing(struct ofdpa_port *ofdpa_port,
{
struct ofdpa_flow_tbl_entry *entry;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -1006,7 +1006,7 @@ static int ofdpa_flow_tbl_acl(struct ofdpa_port *ofdpa_port, int flags,
u32 priority;
struct ofdpa_flow_tbl_entry *entry;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -1150,7 +1150,7 @@ static int ofdpa_group_l2_interface(struct ofdpa_port *ofdpa_port,
{
struct ofdpa_group_tbl_entry *entry;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -1166,7 +1166,7 @@ static int ofdpa_group_l2_fan_out(struct ofdpa_port *ofdpa_port,
{
struct ofdpa_group_tbl_entry *entry;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -1199,7 +1199,7 @@ static int ofdpa_group_l3_unicast(struct ofdpa_port *ofdpa_port, int flags,
{
struct ofdpa_group_tbl_entry *entry;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -1273,7 +1273,7 @@ static int ofdpa_port_ipv4_neigh(struct ofdpa_port *ofdpa_port,
bool removing;
int err = 0;
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (!entry)
return -ENOMEM;
@@ -1386,7 +1386,7 @@ static int ofdpa_port_ipv4_nh(struct ofdpa_port *ofdpa_port,
bool resolved = true;
int err = 0;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -1866,7 +1866,7 @@ static int ofdpa_port_fdb_learn(struct ofdpa_port *ofdpa_port,
if (!(flags & OFDPA_OP_FLAG_LEARNED))
return 0;
- lw = kzalloc(sizeof(*lw), GFP_ATOMIC);
+ lw = kzalloc_obj(*lw, GFP_ATOMIC);
if (!lw)
return -ENOMEM;
@@ -1904,7 +1904,7 @@ static int ofdpa_port_fdb(struct ofdpa_port *ofdpa_port,
bool removing = (flags & OFDPA_OP_FLAG_REMOVE);
unsigned long lock_flags;
- fdb = kzalloc(sizeof(*fdb), GFP_KERNEL);
+ fdb = kzalloc_obj(*fdb, GFP_KERNEL);
if (!fdb)
return -ENOMEM;
@@ -2232,7 +2232,7 @@ static __be16 ofdpa_port_internal_vlan_id_get(struct ofdpa_port *ofdpa_port,
unsigned long lock_flags;
int i;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return 0;
diff --git a/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c b/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
index 849c5a6c2af1..437bcf8ad0c8 100644
--- a/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
+++ b/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
@@ -489,15 +489,14 @@ static int init_rx_ring(struct net_device *dev, u8 queue_no,
return -ENOMEM;
/* allocate memory for RX skbuff array */
- rx_ring->rx_skbuff_dma = kmalloc_array(rx_rsize,
- sizeof(dma_addr_t), GFP_KERNEL);
+ rx_ring->rx_skbuff_dma = kmalloc_objs(dma_addr_t, rx_rsize, GFP_KERNEL);
if (!rx_ring->rx_skbuff_dma) {
ret = -ENOMEM;
goto err_free_dma_rx;
}
- rx_ring->rx_skbuff = kmalloc_array(rx_rsize,
- sizeof(struct sk_buff *), GFP_KERNEL);
+ rx_ring->rx_skbuff = kmalloc_objs(struct sk_buff *, rx_rsize,
+ GFP_KERNEL);
if (!rx_ring->rx_skbuff) {
ret = -ENOMEM;
goto err_free_skbuff_dma;
@@ -2007,7 +2006,7 @@ static int sxgbe_hw_init(struct sxgbe_priv_data * const priv)
{
u32 ctrl_ids;
- priv->hw = kmalloc(sizeof(*priv->hw), GFP_KERNEL);
+ priv->hw = kmalloc_obj(*priv->hw, GFP_KERNEL);
if(!priv->hw)
return -ENOMEM;
diff --git a/drivers/net/ethernet/sfc/ef10.c b/drivers/net/ethernet/sfc/ef10.c
index fcec81f862ec..58d3a381271d 100644
--- a/drivers/net/ethernet/sfc/ef10.c
+++ b/drivers/net/ethernet/sfc/ef10.c
@@ -431,7 +431,7 @@ static int efx_ef10_add_vlan(struct efx_nic *efx, u16 vid)
}
rc = -ENOMEM;
- vlan = kzalloc(sizeof(*vlan), GFP_KERNEL);
+ vlan = kzalloc_obj(*vlan, GFP_KERNEL);
if (!vlan)
goto fail_alloc;
@@ -527,7 +527,7 @@ static int efx_ef10_probe(struct efx_nic *efx)
struct efx_ef10_nic_data *nic_data;
int i, rc;
- nic_data = kzalloc(sizeof(*nic_data), GFP_KERNEL);
+ nic_data = kzalloc_obj(*nic_data, GFP_KERNEL);
if (!nic_data)
return -ENOMEM;
efx->nic_data = nic_data;
@@ -3591,7 +3591,7 @@ static int efx_ef10_mtd_probe(struct efx_nic *efx)
MCDI_VAR_ARRAY_LEN(outlen, NVRAM_PARTITIONS_OUT_TYPE_ID))
return -EIO;
- parts = kcalloc(n_parts_total, sizeof(*parts), GFP_KERNEL);
+ parts = kzalloc_objs(*parts, n_parts_total, GFP_KERNEL);
if (!parts)
return -ENOMEM;
diff --git a/drivers/net/ethernet/sfc/ef100.c b/drivers/net/ethernet/sfc/ef100.c
index 6334992b0af4..d2f64e049be1 100644
--- a/drivers/net/ethernet/sfc/ef100.c
+++ b/drivers/net/ethernet/sfc/ef100.c
@@ -453,7 +453,7 @@ static int ef100_pci_probe(struct pci_dev *pci_dev,
int rc;
/* Allocate probe data and struct efx_nic */
- probe_data = kzalloc(sizeof(*probe_data), GFP_KERNEL);
+ probe_data = kzalloc_obj(*probe_data, GFP_KERNEL);
if (!probe_data)
return -ENOMEM;
probe_data->pci_dev = pci_dev;
diff --git a/drivers/net/ethernet/sfc/ef100_nic.c b/drivers/net/ethernet/sfc/ef100_nic.c
index 3ad95a4c8af2..da433a94a994 100644
--- a/drivers/net/ethernet/sfc/ef100_nic.c
+++ b/drivers/net/ethernet/sfc/ef100_nic.c
@@ -351,7 +351,7 @@ int ef100_phy_probe(struct efx_nic *efx)
int rc;
/* Probe for the PHY */
- efx->phy_data = kzalloc(sizeof(struct efx_mcdi_phy_data), GFP_KERNEL);
+ efx->phy_data = kzalloc_obj(struct efx_mcdi_phy_data, GFP_KERNEL);
if (!efx->phy_data)
return -ENOMEM;
@@ -1020,7 +1020,7 @@ static int ef100_probe_main(struct efx_nic *efx)
if (WARN_ON(bar_size == 0))
return -EIO;
- nic_data = kzalloc(sizeof(*nic_data), GFP_KERNEL);
+ nic_data = kzalloc_obj(*nic_data, GFP_KERNEL);
if (!nic_data)
return -ENOMEM;
efx->nic_data = nic_data;
diff --git a/drivers/net/ethernet/sfc/ef10_sriov.c b/drivers/net/ethernet/sfc/ef10_sriov.c
index 9aae0d8b713f..5b3377ca7220 100644
--- a/drivers/net/ethernet/sfc/ef10_sriov.c
+++ b/drivers/net/ethernet/sfc/ef10_sriov.c
@@ -189,8 +189,7 @@ static int efx_ef10_sriov_alloc_vf_vswitching(struct efx_nic *efx)
unsigned int i;
int rc;
- nic_data->vf = kcalloc(efx->vf_count, sizeof(struct ef10_vf),
- GFP_KERNEL);
+ nic_data->vf = kzalloc_objs(struct ef10_vf, efx->vf_count, GFP_KERNEL);
if (!nic_data->vf)
return -ENOMEM;
diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c
index 112e55b98ed3..133a23a9dd5a 100644
--- a/drivers/net/ethernet/sfc/efx.c
+++ b/drivers/net/ethernet/sfc/efx.c
@@ -1155,7 +1155,7 @@ static int efx_pci_probe(struct pci_dev *pci_dev,
int rc;
/* Allocate probe data and struct efx_nic */
- probe_data = kzalloc(sizeof(*probe_data), GFP_KERNEL);
+ probe_data = kzalloc_obj(*probe_data, GFP_KERNEL);
if (!probe_data)
return -ENOMEM;
probe_data->pci_dev = pci_dev;
diff --git a/drivers/net/ethernet/sfc/efx_channels.c b/drivers/net/ethernet/sfc/efx_channels.c
index ed3a96ebc7f3..84beb79f1969 100644
--- a/drivers/net/ethernet/sfc/efx_channels.c
+++ b/drivers/net/ethernet/sfc/efx_channels.c
@@ -534,7 +534,7 @@ static struct efx_channel *efx_alloc_channel(struct efx_nic *efx, int i)
struct efx_channel *channel;
int j;
- channel = kzalloc(sizeof(*channel), GFP_KERNEL);
+ channel = kzalloc_obj(*channel, GFP_KERNEL);
if (!channel)
return NULL;
@@ -604,7 +604,7 @@ struct efx_channel *efx_copy_channel(const struct efx_channel *old_channel)
struct efx_channel *channel;
int j;
- channel = kmalloc(sizeof(*channel), GFP_KERNEL);
+ channel = kmalloc_obj(*channel, GFP_KERNEL);
if (!channel)
return NULL;
@@ -934,9 +934,9 @@ int efx_set_channels(struct efx_nic *efx)
EFX_WARN_ON_PARANOID(efx->xdp_tx_queues);
/* Allocate array for XDP TX queue lookup. */
- efx->xdp_tx_queues = kcalloc(efx->xdp_tx_queue_count,
- sizeof(*efx->xdp_tx_queues),
- GFP_KERNEL);
+ efx->xdp_tx_queues = kzalloc_objs(*efx->xdp_tx_queues,
+ efx->xdp_tx_queue_count,
+ GFP_KERNEL);
if (!efx->xdp_tx_queues)
return -ENOMEM;
}
diff --git a/drivers/net/ethernet/sfc/efx_common.c b/drivers/net/ethernet/sfc/efx_common.c
index e8fdbb62d872..a41a840b3710 100644
--- a/drivers/net/ethernet/sfc/efx_common.c
+++ b/drivers/net/ethernet/sfc/efx_common.c
@@ -996,8 +996,8 @@ int efx_init_struct(struct efx_nic *efx, struct pci_dev *pci_dev)
mutex_init(&efx->rps_mutex);
spin_lock_init(&efx->rps_hash_lock);
/* Failure to allocate is not fatal, but may degrade ARFS performance */
- efx->rps_hash_table = kcalloc(EFX_ARFS_HASH_TABLE_SIZE,
- sizeof(*efx->rps_hash_table), GFP_KERNEL);
+ efx->rps_hash_table = kzalloc_objs(*efx->rps_hash_table,
+ EFX_ARFS_HASH_TABLE_SIZE, GFP_KERNEL);
#endif
spin_lock_init(&efx->vf_reps_lock);
INIT_LIST_HEAD(&efx->vf_reps);
diff --git a/drivers/net/ethernet/sfc/ethtool_common.c b/drivers/net/ethernet/sfc/ethtool_common.c
index 2fc42b1a2bfb..6b762153c8a4 100644
--- a/drivers/net/ethernet/sfc/ethtool_common.c
+++ b/drivers/net/ethernet/sfc/ethtool_common.c
@@ -133,7 +133,7 @@ void efx_ethtool_self_test(struct net_device *net_dev,
bool already_up;
int rc = -ENOMEM;
- efx_tests = kzalloc(sizeof(*efx_tests), GFP_KERNEL);
+ efx_tests = kzalloc_obj(*efx_tests, GFP_KERNEL);
if (!efx_tests)
goto fail;
diff --git a/drivers/net/ethernet/sfc/falcon/efx.c b/drivers/net/ethernet/sfc/falcon/efx.c
index 6ea41f6c9ef5..2852868c1003 100644
--- a/drivers/net/ethernet/sfc/falcon/efx.c
+++ b/drivers/net/ethernet/sfc/falcon/efx.c
@@ -423,7 +423,7 @@ ef4_alloc_channel(struct ef4_nic *efx, int i, struct ef4_channel *old_channel)
struct ef4_tx_queue *tx_queue;
int j;
- channel = kzalloc(sizeof(*channel), GFP_KERNEL);
+ channel = kzalloc_obj(*channel, GFP_KERNEL);
if (!channel)
return NULL;
@@ -456,7 +456,7 @@ ef4_copy_channel(const struct ef4_channel *old_channel)
struct ef4_tx_queue *tx_queue;
int j;
- channel = kmalloc(sizeof(*channel), GFP_KERNEL);
+ channel = kmalloc_obj(*channel, GFP_KERNEL);
if (!channel)
return NULL;
diff --git a/drivers/net/ethernet/sfc/falcon/ethtool.c b/drivers/net/ethernet/sfc/falcon/ethtool.c
index 049364031545..069269884396 100644
--- a/drivers/net/ethernet/sfc/falcon/ethtool.c
+++ b/drivers/net/ethernet/sfc/falcon/ethtool.c
@@ -493,7 +493,7 @@ static void ef4_ethtool_self_test(struct net_device *net_dev,
bool already_up;
int rc = -ENOMEM;
- ef4_tests = kzalloc(sizeof(*ef4_tests), GFP_KERNEL);
+ ef4_tests = kzalloc_obj(*ef4_tests, GFP_KERNEL);
if (!ef4_tests)
goto fail;
diff --git a/drivers/net/ethernet/sfc/falcon/falcon.c b/drivers/net/ethernet/sfc/falcon/falcon.c
index c44df8e4dd30..1603c5267654 100644
--- a/drivers/net/ethernet/sfc/falcon/falcon.c
+++ b/drivers/net/ethernet/sfc/falcon/falcon.c
@@ -929,7 +929,7 @@ static int falcon_mtd_probe(struct ef4_nic *efx)
ASSERT_RTNL();
/* Allocate space for maximum number of partitions */
- parts = kcalloc(2, sizeof(*parts), GFP_KERNEL);
+ parts = kzalloc_objs(*parts, 2, GFP_KERNEL);
if (!parts)
return -ENOMEM;
n_parts = 0;
@@ -2180,7 +2180,7 @@ static int falcon_probe_nvconfig(struct ef4_nic *efx)
struct falcon_nvconfig *nvconfig;
int rc;
- nvconfig = kmalloc(sizeof(*nvconfig), GFP_KERNEL);
+ nvconfig = kmalloc_obj(*nvconfig, GFP_KERNEL);
if (!nvconfig)
return -ENOMEM;
@@ -2289,7 +2289,7 @@ static int falcon_probe_nic(struct ef4_nic *efx)
efx->primary = efx; /* only one usable function per controller */
/* Allocate storage for hardware specific data */
- nic_data = kzalloc(sizeof(*nic_data), GFP_KERNEL);
+ nic_data = kzalloc_obj(*nic_data, GFP_KERNEL);
if (!nic_data)
return -ENOMEM;
efx->nic_data = nic_data;
diff --git a/drivers/net/ethernet/sfc/falcon/farch.c b/drivers/net/ethernet/sfc/falcon/farch.c
index 01017c41338e..67b62c3a9839 100644
--- a/drivers/net/ethernet/sfc/falcon/farch.c
+++ b/drivers/net/ethernet/sfc/falcon/farch.c
@@ -2701,7 +2701,7 @@ int ef4_farch_filter_table_probe(struct ef4_nic *efx)
struct ef4_farch_filter_table *table;
unsigned table_id;
- state = kzalloc(sizeof(struct ef4_farch_filter_state), GFP_KERNEL);
+ state = kzalloc_obj(struct ef4_farch_filter_state, GFP_KERNEL);
if (!state)
return -ENOMEM;
efx->filter_state = state;
diff --git a/drivers/net/ethernet/sfc/falcon/qt202x_phy.c b/drivers/net/ethernet/sfc/falcon/qt202x_phy.c
index 21af67e42296..dc6383ceb656 100644
--- a/drivers/net/ethernet/sfc/falcon/qt202x_phy.c
+++ b/drivers/net/ethernet/sfc/falcon/qt202x_phy.c
@@ -340,7 +340,7 @@ static int qt202x_phy_probe(struct ef4_nic *efx)
{
struct qt202x_phy_data *phy_data;
- phy_data = kzalloc(sizeof(struct qt202x_phy_data), GFP_KERNEL);
+ phy_data = kzalloc_obj(struct qt202x_phy_data, GFP_KERNEL);
if (!phy_data)
return -ENOMEM;
efx->phy_data = phy_data;
diff --git a/drivers/net/ethernet/sfc/falcon/rx.c b/drivers/net/ethernet/sfc/falcon/rx.c
index f69fcf6caca8..d32bab1b5783 100644
--- a/drivers/net/ethernet/sfc/falcon/rx.c
+++ b/drivers/net/ethernet/sfc/falcon/rx.c
@@ -701,8 +701,7 @@ int ef4_probe_rx_queue(struct ef4_rx_queue *rx_queue)
rx_queue->ptr_mask);
/* Allocate RX buffers */
- rx_queue->buffer = kcalloc(entries, sizeof(*rx_queue->buffer),
- GFP_KERNEL);
+ rx_queue->buffer = kzalloc_objs(*rx_queue->buffer, entries, GFP_KERNEL);
if (!rx_queue->buffer)
return -ENOMEM;
@@ -734,8 +733,8 @@ static void ef4_init_rx_recycle_ring(struct ef4_nic *efx,
page_ring_size = roundup_pow_of_two(bufs_in_recycle_ring /
efx->rx_bufs_per_page);
- rx_queue->page_ring = kcalloc(page_ring_size,
- sizeof(*rx_queue->page_ring), GFP_KERNEL);
+ rx_queue->page_ring = kzalloc_objs(*rx_queue->page_ring, page_ring_size,
+ GFP_KERNEL);
if (!rx_queue->page_ring)
rx_queue->page_ptr_mask = 0;
else
diff --git a/drivers/net/ethernet/sfc/falcon/selftest.c b/drivers/net/ethernet/sfc/falcon/selftest.c
index c3dc88e6c26c..8205a08132ae 100644
--- a/drivers/net/ethernet/sfc/falcon/selftest.c
+++ b/drivers/net/ethernet/sfc/falcon/selftest.c
@@ -545,8 +545,8 @@ ef4_test_loopback(struct ef4_tx_queue *tx_queue,
/* Determine how many packets to send */
state->packet_count = efx->txq_entries / 3;
state->packet_count = min(1 << (i << 2), state->packet_count);
- state->skbs = kcalloc(state->packet_count,
- sizeof(state->skbs[0]), GFP_KERNEL);
+ state->skbs = kzalloc_objs(state->skbs[0], state->packet_count,
+ GFP_KERNEL);
if (!state->skbs)
return -ENOMEM;
state->flush = false;
@@ -635,7 +635,7 @@ static int ef4_test_loopbacks(struct ef4_nic *efx, struct ef4_self_tests *tests,
/* Set the port loopback_selftest member. From this point on
* all received packets will be dropped. Mark the state as
* "flushing" so all inflight packets are dropped */
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state == NULL)
return -ENOMEM;
BUG_ON(efx->loopback_selftest);
diff --git a/drivers/net/ethernet/sfc/falcon/tenxpress.c b/drivers/net/ethernet/sfc/falcon/tenxpress.c
index e27824ef121f..4a5e24b4d174 100644
--- a/drivers/net/ethernet/sfc/falcon/tenxpress.c
+++ b/drivers/net/ethernet/sfc/falcon/tenxpress.c
@@ -165,7 +165,7 @@ static int tenxpress_phy_probe(struct ef4_nic *efx)
struct tenxpress_phy_data *phy_data;
/* Allocate phy private storage */
- phy_data = kzalloc(sizeof(*phy_data), GFP_KERNEL);
+ phy_data = kzalloc_obj(*phy_data, GFP_KERNEL);
if (!phy_data)
return -ENOMEM;
efx->phy_data = phy_data;
diff --git a/drivers/net/ethernet/sfc/falcon/tx.c b/drivers/net/ethernet/sfc/falcon/tx.c
index e6e80b039ca2..a295b40342a4 100644
--- a/drivers/net/ethernet/sfc/falcon/tx.c
+++ b/drivers/net/ethernet/sfc/falcon/tx.c
@@ -544,13 +544,13 @@ int ef4_probe_tx_queue(struct ef4_tx_queue *tx_queue)
tx_queue->queue, efx->txq_entries, tx_queue->ptr_mask);
/* Allocate software ring */
- tx_queue->buffer = kcalloc(entries, sizeof(*tx_queue->buffer),
- GFP_KERNEL);
+ tx_queue->buffer = kzalloc_objs(*tx_queue->buffer, entries, GFP_KERNEL);
if (!tx_queue->buffer)
return -ENOMEM;
- tx_queue->cb_page = kcalloc(ef4_tx_cb_page_count(tx_queue),
- sizeof(tx_queue->cb_page[0]), GFP_KERNEL);
+ tx_queue->cb_page = kzalloc_objs(tx_queue->cb_page[0],
+ ef4_tx_cb_page_count(tx_queue),
+ GFP_KERNEL);
if (!tx_queue->cb_page) {
rc = -ENOMEM;
goto fail1;
diff --git a/drivers/net/ethernet/sfc/falcon/txc43128_phy.c b/drivers/net/ethernet/sfc/falcon/txc43128_phy.c
index f3503965c52c..0025baff6efe 100644
--- a/drivers/net/ethernet/sfc/falcon/txc43128_phy.c
+++ b/drivers/net/ethernet/sfc/falcon/txc43128_phy.c
@@ -323,7 +323,7 @@ static int txc43128_phy_probe(struct ef4_nic *efx)
struct txc43128_data *phy_data;
/* Allocate phy private storage */
- phy_data = kzalloc(sizeof(*phy_data), GFP_KERNEL);
+ phy_data = kzalloc_obj(*phy_data, GFP_KERNEL);
if (!phy_data)
return -ENOMEM;
efx->phy_data = phy_data;
diff --git a/drivers/net/ethernet/sfc/mae.c b/drivers/net/ethernet/sfc/mae.c
index 7cfd9000f79d..6e8e90254792 100644
--- a/drivers/net/ethernet/sfc/mae.c
+++ b/drivers/net/ethernet/sfc/mae.c
@@ -255,14 +255,12 @@ static int efx_mae_table_get_desc(struct efx_nic *efx,
if (desc->scheme)
goto fail;
rc = -ENOMEM;
- desc->keys = kcalloc(desc->n_keys,
- sizeof(struct efx_tc_table_field_fmt),
- GFP_KERNEL);
+ desc->keys = kzalloc_objs(struct efx_tc_table_field_fmt,
+ desc->n_keys, GFP_KERNEL);
if (!desc->keys)
goto fail;
- desc->resps = kcalloc(desc->n_resps,
- sizeof(struct efx_tc_table_field_fmt),
- GFP_KERNEL);
+ desc->resps = kzalloc_objs(struct efx_tc_table_field_fmt,
+ desc->n_resps, GFP_KERNEL);
if (!desc->resps)
goto fail;
}
@@ -1160,7 +1158,7 @@ int efx_mae_enumerate_mports(struct efx_nic *efx)
for (i = 0; i < count; i++) {
struct mae_mport_desc *d;
- d = kzalloc(sizeof(*d), GFP_KERNEL);
+ d = kzalloc_obj(*d, GFP_KERNEL);
if (!d) {
rc = -ENOMEM;
goto fail;
@@ -2315,7 +2313,7 @@ int efx_init_mae(struct efx_nic *efx)
if (!nic_data->have_mport)
return -EINVAL;
- mae = kmalloc(sizeof(*mae), GFP_KERNEL);
+ mae = kmalloc_obj(*mae, GFP_KERNEL);
if (!mae)
return -ENOMEM;
diff --git a/drivers/net/ethernet/sfc/mcdi.c b/drivers/net/ethernet/sfc/mcdi.c
index 5e9b8def5e42..7a19bba484cd 100644
--- a/drivers/net/ethernet/sfc/mcdi.c
+++ b/drivers/net/ethernet/sfc/mcdi.c
@@ -63,7 +63,7 @@ int efx_mcdi_init(struct efx_nic *efx)
bool already_attached;
int rc = -ENOMEM;
- efx->mcdi = kzalloc(sizeof(*efx->mcdi), GFP_KERNEL);
+ efx->mcdi = kzalloc_obj(*efx->mcdi, GFP_KERNEL);
if (!efx->mcdi)
goto fail;
diff --git a/drivers/net/ethernet/sfc/mcdi_filters.c b/drivers/net/ethernet/sfc/mcdi_filters.c
index 3db589b90b68..80d53614e4fc 100644
--- a/drivers/net/ethernet/sfc/mcdi_filters.c
+++ b/drivers/net/ethernet/sfc/mcdi_filters.c
@@ -459,7 +459,7 @@ static s32 efx_mcdi_filter_insert_locked(struct efx_nic *efx,
replacing = true;
priv_flags = efx_mcdi_filter_entry_flags(table, ins_index);
} else {
- saved_spec = kmalloc(sizeof(*spec), GFP_ATOMIC);
+ saved_spec = kmalloc_obj(*spec, GFP_ATOMIC);
if (!saved_spec) {
rc = -ENOMEM;
goto out_unlock;
@@ -1310,7 +1310,7 @@ int efx_mcdi_filter_table_probe(struct efx_nic *efx, bool multicast_chaining)
if (efx->filter_state) /* already probed */
return 0;
- table = kzalloc(sizeof(*table), GFP_KERNEL);
+ table = kzalloc_obj(*table, GFP_KERNEL);
if (!table)
return -ENOMEM;
@@ -1586,7 +1586,7 @@ int efx_mcdi_filter_add_vlan(struct efx_nic *efx, u16 vid)
return -EALREADY;
}
- vlan = kzalloc(sizeof(*vlan), GFP_KERNEL);
+ vlan = kzalloc_obj(*vlan, GFP_KERNEL);
if (!vlan)
return -ENOMEM;
diff --git a/drivers/net/ethernet/sfc/mcdi_mon.c b/drivers/net/ethernet/sfc/mcdi_mon.c
index f5128db7c7e7..2d6472ec4a02 100644
--- a/drivers/net/ethernet/sfc/mcdi_mon.c
+++ b/drivers/net/ethernet/sfc/mcdi_mon.c
@@ -350,13 +350,13 @@ int efx_mcdi_mon_probe(struct efx_nic *efx)
* value, min, max, crit, alarm and label for each sensor.
*/
n_attrs = 6 * n_sensors;
- hwmon->attrs = kcalloc(n_attrs, sizeof(*hwmon->attrs), GFP_KERNEL);
+ hwmon->attrs = kzalloc_objs(*hwmon->attrs, n_attrs, GFP_KERNEL);
if (!hwmon->attrs) {
rc = -ENOMEM;
goto fail;
}
- hwmon->group.attrs = kcalloc(n_attrs + 1, sizeof(struct attribute *),
- GFP_KERNEL);
+ hwmon->group.attrs = kzalloc_objs(struct attribute *, n_attrs + 1,
+ GFP_KERNEL);
if (!hwmon->group.attrs) {
rc = -ENOMEM;
goto fail;
diff --git a/drivers/net/ethernet/sfc/mcdi_port_common.c b/drivers/net/ethernet/sfc/mcdi_port_common.c
index dae684194ac8..ba9e29ca9874 100644
--- a/drivers/net/ethernet/sfc/mcdi_port_common.c
+++ b/drivers/net/ethernet/sfc/mcdi_port_common.c
@@ -429,7 +429,7 @@ int efx_mcdi_phy_probe(struct efx_nic *efx)
int rc;
/* Initialise and populate phy_data */
- phy_data = kzalloc(sizeof(*phy_data), GFP_KERNEL);
+ phy_data = kzalloc_obj(*phy_data, GFP_KERNEL);
if (phy_data == NULL)
return -ENOMEM;
diff --git a/drivers/net/ethernet/sfc/ptp.c b/drivers/net/ethernet/sfc/ptp.c
index 4c7222bf26be..7268f049cf3d 100644
--- a/drivers/net/ethernet/sfc/ptp.c
+++ b/drivers/net/ethernet/sfc/ptp.c
@@ -1263,7 +1263,7 @@ static int efx_ptp_insert_filter(struct efx_nic *efx,
return 0;
}
- rxfilter = kzalloc(sizeof(*rxfilter), GFP_KERNEL);
+ rxfilter = kzalloc_obj(*rxfilter, GFP_KERNEL);
if (!rxfilter)
return -ENOMEM;
@@ -1565,7 +1565,7 @@ int efx_ptp_probe(struct efx_nic *efx, struct efx_channel *channel)
return 0;
}
- ptp = kzalloc(sizeof(struct efx_ptp_data), GFP_KERNEL);
+ ptp = kzalloc_obj(struct efx_ptp_data, GFP_KERNEL);
efx->ptp_data = ptp;
if (!efx->ptp_data)
return -ENOMEM;
diff --git a/drivers/net/ethernet/sfc/rx_common.c b/drivers/net/ethernet/sfc/rx_common.c
index 5306f4c44be4..809faeead09b 100644
--- a/drivers/net/ethernet/sfc/rx_common.c
+++ b/drivers/net/ethernet/sfc/rx_common.c
@@ -138,8 +138,8 @@ static void efx_init_rx_recycle_ring(struct efx_rx_queue *rx_queue)
bufs_in_recycle_ring = efx_rx_recycle_ring_size(efx);
page_ring_size = roundup_pow_of_two(bufs_in_recycle_ring /
efx->rx_bufs_per_page);
- rx_queue->page_ring = kcalloc(page_ring_size,
- sizeof(*rx_queue->page_ring), GFP_KERNEL);
+ rx_queue->page_ring = kzalloc_objs(*rx_queue->page_ring, page_ring_size,
+ GFP_KERNEL);
if (!rx_queue->page_ring)
rx_queue->page_ptr_mask = 0;
else
@@ -204,8 +204,7 @@ int efx_probe_rx_queue(struct efx_rx_queue *rx_queue)
rx_queue->ptr_mask);
/* Allocate RX buffers */
- rx_queue->buffer = kcalloc(entries, sizeof(*rx_queue->buffer),
- GFP_KERNEL);
+ rx_queue->buffer = kzalloc_objs(*rx_queue->buffer, entries, GFP_KERNEL);
if (!rx_queue->buffer)
return -ENOMEM;
@@ -709,7 +708,7 @@ struct efx_arfs_rule *efx_rps_hash_add(struct efx_nic *efx,
return rule;
}
}
- rule = kmalloc(sizeof(*rule), GFP_ATOMIC);
+ rule = kmalloc_obj(*rule, GFP_ATOMIC);
*new = true;
if (rule) {
memcpy(&rule->spec, spec, sizeof(rule->spec));
diff --git a/drivers/net/ethernet/sfc/selftest.c b/drivers/net/ethernet/sfc/selftest.c
index 894fad0bb5ea..ef37de056a19 100644
--- a/drivers/net/ethernet/sfc/selftest.c
+++ b/drivers/net/ethernet/sfc/selftest.c
@@ -542,8 +542,8 @@ efx_test_loopback(struct efx_tx_queue *tx_queue,
/* Determine how many packets to send */
state->packet_count = efx->txq_entries / 3;
state->packet_count = min(1 << (i << 2), state->packet_count);
- state->skbs = kcalloc(state->packet_count,
- sizeof(state->skbs[0]), GFP_KERNEL);
+ state->skbs = kzalloc_objs(state->skbs[0], state->packet_count,
+ GFP_KERNEL);
if (!state->skbs)
return -ENOMEM;
state->flush = false;
@@ -628,7 +628,7 @@ static int efx_test_loopbacks(struct efx_nic *efx, struct efx_self_tests *tests,
/* Set the port loopback_selftest member. From this point on
* all received packets will be dropped. Mark the state as
* "flushing" so all inflight packets are dropped */
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state == NULL)
return -ENOMEM;
BUG_ON(efx->loopback_selftest);
diff --git a/drivers/net/ethernet/sfc/siena/efx_channels.c b/drivers/net/ethernet/sfc/siena/efx_channels.c
index fc075ab6b7b5..f2ed3c8b1f5d 100644
--- a/drivers/net/ethernet/sfc/siena/efx_channels.c
+++ b/drivers/net/ethernet/sfc/siena/efx_channels.c
@@ -536,7 +536,7 @@ static struct efx_channel *efx_alloc_channel(struct efx_nic *efx, int i)
struct efx_channel *channel;
int j;
- channel = kzalloc(sizeof(*channel), GFP_KERNEL);
+ channel = kzalloc_obj(*channel, GFP_KERNEL);
if (!channel)
return NULL;
@@ -607,7 +607,7 @@ struct efx_channel *efx_copy_channel(const struct efx_channel *old_channel)
struct efx_channel *channel;
int j;
- channel = kmalloc(sizeof(*channel), GFP_KERNEL);
+ channel = kmalloc_obj(*channel, GFP_KERNEL);
if (!channel)
return NULL;
@@ -966,9 +966,9 @@ int efx_siena_set_channels(struct efx_nic *efx)
EFX_WARN_ON_PARANOID(efx->xdp_tx_queues);
/* Allocate array for XDP TX queue lookup. */
- efx->xdp_tx_queues = kcalloc(efx->xdp_tx_queue_count,
- sizeof(*efx->xdp_tx_queues),
- GFP_KERNEL);
+ efx->xdp_tx_queues = kzalloc_objs(*efx->xdp_tx_queues,
+ efx->xdp_tx_queue_count,
+ GFP_KERNEL);
if (!efx->xdp_tx_queues)
return -ENOMEM;
}
diff --git a/drivers/net/ethernet/sfc/siena/efx_common.c b/drivers/net/ethernet/sfc/siena/efx_common.c
index 35036cc902fe..07e650f2d13e 100644
--- a/drivers/net/ethernet/sfc/siena/efx_common.c
+++ b/drivers/net/ethernet/sfc/siena/efx_common.c
@@ -1023,8 +1023,8 @@ int efx_siena_init_struct(struct efx_nic *efx,
mutex_init(&efx->rps_mutex);
spin_lock_init(&efx->rps_hash_lock);
/* Failure to allocate is not fatal, but may degrade ARFS performance */
- efx->rps_hash_table = kcalloc(EFX_ARFS_HASH_TABLE_SIZE,
- sizeof(*efx->rps_hash_table), GFP_KERNEL);
+ efx->rps_hash_table = kzalloc_objs(*efx->rps_hash_table,
+ EFX_ARFS_HASH_TABLE_SIZE, GFP_KERNEL);
#endif
efx->mdio.dev = net_dev;
INIT_WORK(&efx->mac_work, efx_mac_work);
diff --git a/drivers/net/ethernet/sfc/siena/ethtool_common.c b/drivers/net/ethernet/sfc/siena/ethtool_common.c
index c56e0b54d854..cb19af6aafd9 100644
--- a/drivers/net/ethernet/sfc/siena/ethtool_common.c
+++ b/drivers/net/ethernet/sfc/siena/ethtool_common.c
@@ -355,7 +355,7 @@ void efx_siena_ethtool_self_test(struct net_device *net_dev,
bool already_up;
int rc = -ENOMEM;
- efx_tests = kzalloc(sizeof(*efx_tests), GFP_KERNEL);
+ efx_tests = kzalloc_obj(*efx_tests, GFP_KERNEL);
if (!efx_tests)
goto fail;
diff --git a/drivers/net/ethernet/sfc/siena/farch.c b/drivers/net/ethernet/sfc/siena/farch.c
index 562a038e38a7..ab2e36520fb9 100644
--- a/drivers/net/ethernet/sfc/siena/farch.c
+++ b/drivers/net/ethernet/sfc/siena/farch.c
@@ -2790,7 +2790,7 @@ int efx_farch_filter_table_probe(struct efx_nic *efx)
struct efx_farch_filter_table *table;
unsigned table_id;
- state = kzalloc(sizeof(struct efx_farch_filter_state), GFP_KERNEL);
+ state = kzalloc_obj(struct efx_farch_filter_state, GFP_KERNEL);
if (!state)
return -ENOMEM;
efx->filter_state = state;
diff --git a/drivers/net/ethernet/sfc/siena/mcdi.c b/drivers/net/ethernet/sfc/siena/mcdi.c
index c8f0fb43e285..3bee5c0e6edc 100644
--- a/drivers/net/ethernet/sfc/siena/mcdi.c
+++ b/drivers/net/ethernet/sfc/siena/mcdi.c
@@ -65,7 +65,7 @@ int efx_siena_mcdi_init(struct efx_nic *efx)
bool already_attached;
int rc = -ENOMEM;
- efx->mcdi = kzalloc(sizeof(*efx->mcdi), GFP_KERNEL);
+ efx->mcdi = kzalloc_obj(*efx->mcdi, GFP_KERNEL);
if (!efx->mcdi)
goto fail;
diff --git a/drivers/net/ethernet/sfc/siena/mcdi_mon.c b/drivers/net/ethernet/sfc/siena/mcdi_mon.c
index 56a9c56ed9e3..ddf7d712fb21 100644
--- a/drivers/net/ethernet/sfc/siena/mcdi_mon.c
+++ b/drivers/net/ethernet/sfc/siena/mcdi_mon.c
@@ -350,13 +350,13 @@ int efx_siena_mcdi_mon_probe(struct efx_nic *efx)
* value, min, max, crit, alarm and label for each sensor.
*/
n_attrs = 6 * n_sensors;
- hwmon->attrs = kcalloc(n_attrs, sizeof(*hwmon->attrs), GFP_KERNEL);
+ hwmon->attrs = kzalloc_objs(*hwmon->attrs, n_attrs, GFP_KERNEL);
if (!hwmon->attrs) {
rc = -ENOMEM;
goto fail;
}
- hwmon->group.attrs = kcalloc(n_attrs + 1, sizeof(struct attribute *),
- GFP_KERNEL);
+ hwmon->group.attrs = kzalloc_objs(struct attribute *, n_attrs + 1,
+ GFP_KERNEL);
if (!hwmon->group.attrs) {
rc = -ENOMEM;
goto fail;
diff --git a/drivers/net/ethernet/sfc/siena/mcdi_port_common.c b/drivers/net/ethernet/sfc/siena/mcdi_port_common.c
index 067fe0f4393a..6154d09f9dde 100644
--- a/drivers/net/ethernet/sfc/siena/mcdi_port_common.c
+++ b/drivers/net/ethernet/sfc/siena/mcdi_port_common.c
@@ -430,7 +430,7 @@ int efx_siena_mcdi_phy_probe(struct efx_nic *efx)
int rc;
/* Initialise and populate phy_data */
- phy_data = kzalloc(sizeof(*phy_data), GFP_KERNEL);
+ phy_data = kzalloc_obj(*phy_data, GFP_KERNEL);
if (phy_data == NULL)
return -ENOMEM;
diff --git a/drivers/net/ethernet/sfc/siena/ptp.c b/drivers/net/ethernet/sfc/siena/ptp.c
index 062c77c92077..2cb1d0fc9daa 100644
--- a/drivers/net/ethernet/sfc/siena/ptp.c
+++ b/drivers/net/ethernet/sfc/siena/ptp.c
@@ -1443,7 +1443,7 @@ static int efx_ptp_probe(struct efx_nic *efx, struct efx_channel *channel)
int rc = 0;
unsigned int pos;
- ptp = kzalloc(sizeof(struct efx_ptp_data), GFP_KERNEL);
+ ptp = kzalloc_obj(struct efx_ptp_data, GFP_KERNEL);
efx->ptp_data = ptp;
if (!efx->ptp_data)
return -ENOMEM;
diff --git a/drivers/net/ethernet/sfc/siena/rx_common.c b/drivers/net/ethernet/sfc/siena/rx_common.c
index 4ae09505e417..71549c21ebc1 100644
--- a/drivers/net/ethernet/sfc/siena/rx_common.c
+++ b/drivers/net/ethernet/sfc/siena/rx_common.c
@@ -141,8 +141,8 @@ static void efx_init_rx_recycle_ring(struct efx_rx_queue *rx_queue)
bufs_in_recycle_ring = efx_rx_recycle_ring_size(efx);
page_ring_size = roundup_pow_of_two(bufs_in_recycle_ring /
efx->rx_bufs_per_page);
- rx_queue->page_ring = kcalloc(page_ring_size,
- sizeof(*rx_queue->page_ring), GFP_KERNEL);
+ rx_queue->page_ring = kzalloc_objs(*rx_queue->page_ring, page_ring_size,
+ GFP_KERNEL);
if (!rx_queue->page_ring)
rx_queue->page_ptr_mask = 0;
else
@@ -207,8 +207,7 @@ int efx_siena_probe_rx_queue(struct efx_rx_queue *rx_queue)
rx_queue->ptr_mask);
/* Allocate RX buffers */
- rx_queue->buffer = kcalloc(entries, sizeof(*rx_queue->buffer),
- GFP_KERNEL);
+ rx_queue->buffer = kzalloc_objs(*rx_queue->buffer, entries, GFP_KERNEL);
if (!rx_queue->buffer)
return -ENOMEM;
@@ -696,7 +695,7 @@ static struct efx_arfs_rule *efx_rps_hash_add(struct efx_nic *efx,
return rule;
}
}
- rule = kmalloc(sizeof(*rule), GFP_ATOMIC);
+ rule = kmalloc_obj(*rule, GFP_ATOMIC);
*new = true;
if (rule) {
memcpy(&rule->spec, spec, sizeof(rule->spec));
diff --git a/drivers/net/ethernet/sfc/siena/selftest.c b/drivers/net/ethernet/sfc/siena/selftest.c
index 526da43d4b61..668e6771b8bf 100644
--- a/drivers/net/ethernet/sfc/siena/selftest.c
+++ b/drivers/net/ethernet/sfc/siena/selftest.c
@@ -543,8 +543,8 @@ efx_test_loopback(struct efx_tx_queue *tx_queue,
/* Determine how many packets to send */
state->packet_count = efx->txq_entries / 3;
state->packet_count = min(1 << (i << 2), state->packet_count);
- state->skbs = kcalloc(state->packet_count,
- sizeof(state->skbs[0]), GFP_KERNEL);
+ state->skbs = kzalloc_objs(state->skbs[0], state->packet_count,
+ GFP_KERNEL);
if (!state->skbs)
return -ENOMEM;
state->flush = false;
@@ -633,7 +633,7 @@ static int efx_test_loopbacks(struct efx_nic *efx, struct efx_self_tests *tests,
/* Set the port loopback_selftest member. From this point on
* all received packets will be dropped. Mark the state as
* "flushing" so all inflight packets are dropped */
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state == NULL)
return -ENOMEM;
BUG_ON(efx->loopback_selftest);
diff --git a/drivers/net/ethernet/sfc/siena/siena.c b/drivers/net/ethernet/sfc/siena/siena.c
index 49f0c8a1a90a..4718a31b4d94 100644
--- a/drivers/net/ethernet/sfc/siena/siena.c
+++ b/drivers/net/ethernet/sfc/siena/siena.c
@@ -266,7 +266,7 @@ static int siena_probe_nic(struct efx_nic *efx)
int rc;
/* Allocate storage for hardware specific data */
- nic_data = kzalloc(sizeof(struct siena_nic_data), GFP_KERNEL);
+ nic_data = kzalloc_obj(struct siena_nic_data, GFP_KERNEL);
if (!nic_data)
return -ENOMEM;
nic_data->efx = efx;
@@ -923,7 +923,7 @@ static int siena_mtd_probe(struct efx_nic *efx)
if (rc)
return rc;
- parts = kcalloc(hweight32(nvram_types), sizeof(*parts), GFP_KERNEL);
+ parts = kzalloc_objs(*parts, hweight32(nvram_types), GFP_KERNEL);
if (!parts)
return -ENOMEM;
diff --git a/drivers/net/ethernet/sfc/siena/siena_sriov.c b/drivers/net/ethernet/sfc/siena/siena_sriov.c
index 8353c15dc233..bcab299f7204 100644
--- a/drivers/net/ethernet/sfc/siena/siena_sriov.c
+++ b/drivers/net/ethernet/sfc/siena/siena_sriov.c
@@ -1123,7 +1123,7 @@ static void efx_siena_sriov_peer_work(struct work_struct *data)
++peer_count;
if (--peer_space == 0) {
if (list_empty(&pages)) {
- epp = kmalloc(sizeof(*epp), GFP_KERNEL);
+ epp = kmalloc_obj(*epp, GFP_KERNEL);
if (!epp)
break;
epp->ptr = dma_alloc_coherent(
@@ -1197,8 +1197,7 @@ static int efx_siena_sriov_vf_alloc(struct efx_nic *efx)
struct siena_vf *vf;
struct siena_nic_data *nic_data = efx->nic_data;
- nic_data->vf = kcalloc(efx->vf_count, sizeof(*nic_data->vf),
- GFP_KERNEL);
+ nic_data->vf = kzalloc_objs(*nic_data->vf, efx->vf_count, GFP_KERNEL);
if (!nic_data->vf)
return -ENOMEM;
diff --git a/drivers/net/ethernet/sfc/siena/tx_common.c b/drivers/net/ethernet/sfc/siena/tx_common.c
index 71f9b5ec5ae4..ca7f910a4847 100644
--- a/drivers/net/ethernet/sfc/siena/tx_common.c
+++ b/drivers/net/ethernet/sfc/siena/tx_common.c
@@ -36,13 +36,13 @@ int efx_siena_probe_tx_queue(struct efx_tx_queue *tx_queue)
tx_queue->queue, efx->txq_entries, tx_queue->ptr_mask);
/* Allocate software ring */
- tx_queue->buffer = kcalloc(entries, sizeof(*tx_queue->buffer),
- GFP_KERNEL);
+ tx_queue->buffer = kzalloc_objs(*tx_queue->buffer, entries, GFP_KERNEL);
if (!tx_queue->buffer)
return -ENOMEM;
- tx_queue->cb_page = kcalloc(efx_tx_cb_page_count(tx_queue),
- sizeof(tx_queue->cb_page[0]), GFP_KERNEL);
+ tx_queue->cb_page = kzalloc_objs(tx_queue->cb_page[0],
+ efx_tx_cb_page_count(tx_queue),
+ GFP_KERNEL);
if (!tx_queue->cb_page) {
rc = -ENOMEM;
goto fail1;
diff --git a/drivers/net/ethernet/sfc/tc.c b/drivers/net/ethernet/sfc/tc.c
index fa94aa3cd5fe..bf39fb5e4bb6 100644
--- a/drivers/net/ethernet/sfc/tc.c
+++ b/drivers/net/ethernet/sfc/tc.c
@@ -126,7 +126,7 @@ static struct efx_tc_mac_pedit_action *efx_tc_flower_get_mac(struct efx_nic *efx
struct efx_tc_mac_pedit_action *ped, *old;
int rc;
- ped = kzalloc(sizeof(*ped), GFP_USER);
+ ped = kzalloc_obj(*ped, GFP_USER);
if (!ped)
return ERR_PTR(-ENOMEM);
memcpy(ped->h_addr, h_addr, ETH_ALEN);
@@ -571,7 +571,7 @@ static int efx_tc_flower_record_encap_match(struct efx_nic *efx,
if (rc)
goto fail_pseudo;
- encap = kzalloc(sizeof(*encap), GFP_USER);
+ encap = kzalloc_obj(*encap, GFP_USER);
if (!encap) {
rc = -ENOMEM;
goto fail_pseudo;
@@ -694,7 +694,7 @@ static struct efx_tc_recirc_id *efx_tc_get_recirc_id(struct efx_nic *efx,
struct efx_tc_recirc_id *rid, *old;
int rc;
- rid = kzalloc(sizeof(*rid), GFP_USER);
+ rid = kzalloc_obj(*rid, GFP_USER);
if (!rid)
return ERR_PTR(-ENOMEM);
rid->chain_index = chain_index;
@@ -1505,7 +1505,7 @@ static int efx_tc_flower_replace_foreign_lhs_ar(struct efx_nic *efx,
if (rc)
goto release_encap_match;
- rule = kzalloc(sizeof(*rule), GFP_USER);
+ rule = kzalloc_obj(*rule, GFP_USER);
if (!rule) {
rc = -ENOMEM;
goto release_encap_match;
@@ -1618,7 +1618,7 @@ static int efx_tc_flower_replace_foreign_lhs(struct efx_nic *efx,
if (rc)
goto release_encap_match;
- rule = kzalloc(sizeof(*rule), GFP_USER);
+ rule = kzalloc_obj(*rule, GFP_USER);
if (!rule) {
rc = -ENOMEM;
goto release_encap_match;
@@ -1794,7 +1794,7 @@ static int efx_tc_flower_replace_foreign(struct efx_nic *efx,
goto release;
}
- rule = kzalloc(sizeof(*rule), GFP_USER);
+ rule = kzalloc_obj(*rule, GFP_USER);
if (!rule) {
rc = -ENOMEM;
goto release;
@@ -1815,7 +1815,7 @@ static int efx_tc_flower_replace_foreign(struct efx_nic *efx,
goto release;
}
- act = kzalloc(sizeof(*act), GFP_USER);
+ act = kzalloc_obj(*act, GFP_USER);
if (!act) {
rc = -ENOMEM;
goto release;
@@ -1901,7 +1901,7 @@ static int efx_tc_flower_replace_foreign(struct efx_nic *efx,
if (fa->id == FLOW_ACTION_REDIRECT)
break; /* end of the line */
/* Mirror, so continue on with saved act */
- act = kzalloc(sizeof(*act), GFP_USER);
+ act = kzalloc_obj(*act, GFP_USER);
if (!act) {
rc = -ENOMEM;
goto release;
@@ -2016,7 +2016,7 @@ static int efx_tc_flower_replace_lhs(struct efx_nic *efx,
if (rc)
return rc;
- rule = kzalloc(sizeof(*rule), GFP_USER);
+ rule = kzalloc_obj(*rule, GFP_USER);
if (!rule)
return -ENOMEM;
rule->cookie = tc->cookie;
@@ -2177,7 +2177,7 @@ static int efx_tc_flower_replace(struct efx_nic *efx,
if (rc)
goto release;
- rule = kzalloc(sizeof(*rule), GFP_USER);
+ rule = kzalloc_obj(*rule, GFP_USER);
if (!rule) {
rc = -ENOMEM;
goto release;
@@ -2199,7 +2199,7 @@ static int efx_tc_flower_replace(struct efx_nic *efx,
}
/* Parse actions */
- act = kzalloc(sizeof(*act), GFP_USER);
+ act = kzalloc_obj(*act, GFP_USER);
if (!act) {
rc = -ENOMEM;
goto release;
@@ -2340,7 +2340,7 @@ static int efx_tc_flower_replace(struct efx_nic *efx,
break; /* end of the line */
/* Mirror, so continue on with saved act */
save.count = NULL;
- act = kzalloc(sizeof(*act), GFP_USER);
+ act = kzalloc_obj(*act, GFP_USER);
if (!act) {
rc = -ENOMEM;
goto release;
@@ -2380,7 +2380,7 @@ static int efx_tc_flower_replace(struct efx_nic *efx,
break; /* end of the line */
/* Mirror, so continue on with saved act */
save.count = NULL;
- act = kzalloc(sizeof(*act), GFP_USER);
+ act = kzalloc_obj(*act, GFP_USER);
if (!act) {
rc = -ENOMEM;
goto release;
@@ -2672,7 +2672,7 @@ static int efx_tc_configure_default_rule(struct efx_nic *efx, u32 ing_port,
match->value.ingress_port = ing_port;
match->mask.ingress_port = ~0;
- act = kzalloc(sizeof(*act), GFP_KERNEL);
+ act = kzalloc_obj(*act, GFP_KERNEL);
if (!act)
return -ENOMEM;
act->deliver = 1;
@@ -2745,7 +2745,7 @@ static int efx_tc_configure_fallback_acts(struct efx_nic *efx, u32 eg_port,
struct efx_tc_action_set *act;
int rc;
- act = kzalloc(sizeof(*act), GFP_KERNEL);
+ act = kzalloc_obj(*act, GFP_KERNEL);
if (!act)
return -ENOMEM;
act->deliver = 1;
@@ -2988,10 +2988,10 @@ int efx_init_struct_tc(struct efx_nic *efx)
if (efx->type->is_vf)
return 0;
- efx->tc = kzalloc(sizeof(*efx->tc), GFP_KERNEL);
+ efx->tc = kzalloc_obj(*efx->tc, GFP_KERNEL);
if (!efx->tc)
return -ENOMEM;
- efx->tc->caps = kzalloc(sizeof(struct mae_caps), GFP_KERNEL);
+ efx->tc->caps = kzalloc_obj(struct mae_caps, GFP_KERNEL);
if (!efx->tc->caps) {
rc = -ENOMEM;
goto fail_alloc_caps;
diff --git a/drivers/net/ethernet/sfc/tc_bindings.c b/drivers/net/ethernet/sfc/tc_bindings.c
index 1b79c535c54e..c4b187b51a69 100644
--- a/drivers/net/ethernet/sfc/tc_bindings.c
+++ b/drivers/net/ethernet/sfc/tc_bindings.c
@@ -59,7 +59,7 @@ static struct efx_tc_block_binding *efx_tc_create_binding(
struct efx_nic *efx, struct efx_rep *efv,
struct net_device *otherdev, struct flow_block *block)
{
- struct efx_tc_block_binding *binding = kmalloc(sizeof(*binding), GFP_KERNEL);
+ struct efx_tc_block_binding *binding = kmalloc_obj(*binding, GFP_KERNEL);
if (!binding)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/sfc/tc_conntrack.c b/drivers/net/ethernet/sfc/tc_conntrack.c
index c0603f54cec3..77ce2eca43f2 100644
--- a/drivers/net/ethernet/sfc/tc_conntrack.c
+++ b/drivers/net/ethernet/sfc/tc_conntrack.c
@@ -365,7 +365,7 @@ static int efx_tc_ct_replace(struct efx_tc_ct_zone *ct_zone,
if (WARN_ON(!efx->tc->up))
return -ENETDOWN;
- conn = kzalloc(sizeof(*conn), GFP_USER);
+ conn = kzalloc_obj(*conn, GFP_USER);
if (!conn)
return -ENOMEM;
conn->cookie = tc->cookie;
@@ -562,7 +562,7 @@ struct efx_tc_ct_zone *efx_tc_ct_register_zone(struct efx_nic *efx, u16 zone,
struct efx_tc_ct_zone *ct_zone, *old;
int rc;
- ct_zone = kzalloc(sizeof(*ct_zone), GFP_USER);
+ ct_zone = kzalloc_obj(*ct_zone, GFP_USER);
if (!ct_zone)
return ERR_PTR(-ENOMEM);
ct_zone->zone = zone;
diff --git a/drivers/net/ethernet/sfc/tc_counters.c b/drivers/net/ethernet/sfc/tc_counters.c
index a421b0123506..d168282f30bf 100644
--- a/drivers/net/ethernet/sfc/tc_counters.c
+++ b/drivers/net/ethernet/sfc/tc_counters.c
@@ -135,7 +135,7 @@ struct efx_tc_counter *efx_tc_flower_allocate_counter(struct efx_nic *efx,
struct efx_tc_counter *cnt;
int rc, rc2;
- cnt = kzalloc(sizeof(*cnt), GFP_USER);
+ cnt = kzalloc_obj(*cnt, GFP_USER);
if (!cnt)
return ERR_PTR(-ENOMEM);
@@ -226,7 +226,7 @@ struct efx_tc_counter_index *efx_tc_flower_get_counter_index(
struct efx_tc_counter_index *ctr, *old;
struct efx_tc_counter *cnt;
- ctr = kzalloc(sizeof(*ctr), GFP_USER);
+ ctr = kzalloc_obj(*ctr, GFP_USER);
if (!ctr)
return ERR_PTR(-ENOMEM);
ctr->cookie = cookie;
diff --git a/drivers/net/ethernet/sfc/tc_encap_actions.c b/drivers/net/ethernet/sfc/tc_encap_actions.c
index eef06e48185d..da35705cc5e1 100644
--- a/drivers/net/ethernet/sfc/tc_encap_actions.c
+++ b/drivers/net/ethernet/sfc/tc_encap_actions.c
@@ -120,7 +120,7 @@ static int efx_bind_neigh(struct efx_nic *efx,
return -EOPNOTSUPP;
}
- neigh = kzalloc(sizeof(*neigh), GFP_KERNEL_ACCOUNT);
+ neigh = kzalloc_obj(*neigh, GFP_KERNEL_ACCOUNT);
if (!neigh)
return -ENOMEM;
neigh->net = get_net_track(net, &neigh->ns_tracker, GFP_KERNEL_ACCOUNT);
@@ -632,7 +632,7 @@ struct efx_tc_encap_action *efx_tc_flower_create_encap_md(
info->mode);
return ERR_PTR(-EOPNOTSUPP);
}
- encap = kzalloc(sizeof(*encap), GFP_KERNEL_ACCOUNT);
+ encap = kzalloc_obj(*encap, GFP_KERNEL_ACCOUNT);
if (!encap)
return ERR_PTR(-ENOMEM);
encap->type = type;
diff --git a/drivers/net/ethernet/sfc/tx_common.c b/drivers/net/ethernet/sfc/tx_common.c
index a22a0d634ffc..4437e2c424f7 100644
--- a/drivers/net/ethernet/sfc/tx_common.c
+++ b/drivers/net/ethernet/sfc/tx_common.c
@@ -36,13 +36,13 @@ int efx_probe_tx_queue(struct efx_tx_queue *tx_queue)
tx_queue->queue, efx->txq_entries, tx_queue->ptr_mask);
/* Allocate software ring */
- tx_queue->buffer = kcalloc(entries, sizeof(*tx_queue->buffer),
- GFP_KERNEL);
+ tx_queue->buffer = kzalloc_objs(*tx_queue->buffer, entries, GFP_KERNEL);
if (!tx_queue->buffer)
return -ENOMEM;
- tx_queue->cb_page = kcalloc(efx_tx_cb_page_count(tx_queue),
- sizeof(tx_queue->cb_page[0]), GFP_KERNEL);
+ tx_queue->cb_page = kzalloc_objs(tx_queue->cb_page[0],
+ efx_tx_cb_page_count(tx_queue),
+ GFP_KERNEL);
if (!tx_queue->cb_page) {
rc = -ENOMEM;
goto fail1;
diff --git a/drivers/net/ethernet/sis/sis190.c b/drivers/net/ethernet/sis/sis190.c
index 15e46e6ac262..c06387ed3bf1 100644
--- a/drivers/net/ethernet/sis/sis190.c
+++ b/drivers/net/ethernet/sis/sis190.c
@@ -1407,7 +1407,7 @@ static int sis190_mii_probe(struct net_device *dev)
if (status == 0xffff || status == 0x0000)
continue;
- phy = kmalloc(sizeof(*phy), GFP_KERNEL);
+ phy = kmalloc_obj(*phy, GFP_KERNEL);
if (!phy) {
sis190_free_phy(&tp->first_phy);
rc = -ENOMEM;
diff --git a/drivers/net/ethernet/sis/sis900.c b/drivers/net/ethernet/sis/sis900.c
index d85ac8cbeb00..b756eea09513 100644
--- a/drivers/net/ethernet/sis/sis900.c
+++ b/drivers/net/ethernet/sis/sis900.c
@@ -619,7 +619,7 @@ static int sis900_mii_probe(struct net_device *net_dev)
continue;
}
- if ((mii_phy = kmalloc(sizeof(struct mii_phy), GFP_KERNEL)) == NULL) {
+ if ((mii_phy = kmalloc_obj(struct mii_phy, GFP_KERNEL)) == NULL) {
mii_phy = sis_priv->first_mii;
while (mii_phy) {
struct mii_phy *phy;
diff --git a/drivers/net/ethernet/smsc/smsc9420.c b/drivers/net/ethernet/smsc/smsc9420.c
index f30d4b17c7fb..02482de18b56 100644
--- a/drivers/net/ethernet/smsc/smsc9420.c
+++ b/drivers/net/ethernet/smsc/smsc9420.c
@@ -1179,9 +1179,8 @@ static int smsc9420_alloc_tx_ring(struct smsc9420_pdata *pd)
BUG_ON(!pd->tx_ring);
- pd->tx_buffers = kmalloc_array(TX_RING_SIZE,
- sizeof(struct smsc9420_ring_info),
- GFP_KERNEL);
+ pd->tx_buffers = kmalloc_objs(struct smsc9420_ring_info, TX_RING_SIZE,
+ GFP_KERNEL);
if (!pd->tx_buffers)
return -ENOMEM;
@@ -1212,9 +1211,8 @@ static int smsc9420_alloc_rx_ring(struct smsc9420_pdata *pd)
BUG_ON(!pd->rx_ring);
- pd->rx_buffers = kmalloc_array(RX_RING_SIZE,
- sizeof(struct smsc9420_ring_info),
- GFP_KERNEL);
+ pd->rx_buffers = kmalloc_objs(struct smsc9420_ring_info, RX_RING_SIZE,
+ GFP_KERNEL);
if (pd->rx_buffers == NULL)
goto out;
diff --git a/drivers/net/ethernet/socionext/netsec.c b/drivers/net/ethernet/socionext/netsec.c
index ee890de69ffe..3b6008cad3a5 100644
--- a/drivers/net/ethernet/socionext/netsec.c
+++ b/drivers/net/ethernet/socionext/netsec.c
@@ -1263,7 +1263,7 @@ static int netsec_alloc_dring(struct netsec_priv *priv, enum ring_id id)
if (!dring->vaddr)
goto err;
- dring->desc = kcalloc(DESC_NUM, sizeof(*dring->desc), GFP_KERNEL);
+ dring->desc = kzalloc_objs(*dring->desc, DESC_NUM, GFP_KERNEL);
if (!dring->desc)
goto err;
diff --git a/drivers/net/ethernet/socionext/sni_ave.c b/drivers/net/ethernet/socionext/sni_ave.c
index 4700998c4837..3c581d71c00e 100644
--- a/drivers/net/ethernet/socionext/sni_ave.c
+++ b/drivers/net/ethernet/socionext/sni_ave.c
@@ -1273,15 +1273,13 @@ static int ave_open(struct net_device *ndev)
if (ret)
return ret;
- priv->tx.desc = kcalloc(priv->tx.ndesc, sizeof(*priv->tx.desc),
- GFP_KERNEL);
+ priv->tx.desc = kzalloc_objs(*priv->tx.desc, priv->tx.ndesc, GFP_KERNEL);
if (!priv->tx.desc) {
ret = -ENOMEM;
goto out_free_irq;
}
- priv->rx.desc = kcalloc(priv->rx.ndesc, sizeof(*priv->rx.desc),
- GFP_KERNEL);
+ priv->rx.desc = kzalloc_objs(*priv->rx.desc, priv->rx.ndesc, GFP_KERNEL);
if (!priv->rx.desc) {
kfree(priv->tx.desc);
ret = -ENOMEM;
diff --git a/drivers/net/ethernet/spacemit/k1_emac.c b/drivers/net/ethernet/spacemit/k1_emac.c
index dab0772c5b9d..870ab19395d6 100644
--- a/drivers/net/ethernet/spacemit/k1_emac.c
+++ b/drivers/net/ethernet/spacemit/k1_emac.c
@@ -391,9 +391,8 @@ static int emac_alloc_tx_resources(struct emac_priv *priv)
struct emac_desc_ring *tx_ring = &priv->tx_ring;
struct platform_device *pdev = priv->pdev;
- tx_ring->tx_desc_buf = kcalloc(tx_ring->total_cnt,
- sizeof(*tx_ring->tx_desc_buf),
- GFP_KERNEL);
+ tx_ring->tx_desc_buf = kzalloc_objs(*tx_ring->tx_desc_buf,
+ tx_ring->total_cnt, GFP_KERNEL);
if (!tx_ring->tx_desc_buf)
return -ENOMEM;
@@ -420,9 +419,8 @@ static int emac_alloc_rx_resources(struct emac_priv *priv)
struct emac_desc_ring *rx_ring = &priv->rx_ring;
struct platform_device *pdev = priv->pdev;
- rx_ring->rx_desc_buf = kcalloc(rx_ring->total_cnt,
- sizeof(*rx_ring->rx_desc_buf),
- GFP_KERNEL);
+ rx_ring->rx_desc_buf = kzalloc_objs(*rx_ring->rx_desc_buf,
+ rx_ring->total_cnt, GFP_KERNEL);
if (!rx_ring->rx_desc_buf)
return -ENOMEM;
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 82375d34ad57..ebda64cd1bf2 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -2212,9 +2212,8 @@ static int __alloc_dma_rx_desc_resources(struct stmmac_priv *priv,
return ret;
}
- rx_q->buf_pool = kcalloc(dma_conf->dma_rx_size,
- sizeof(*rx_q->buf_pool),
- GFP_KERNEL);
+ rx_q->buf_pool = kzalloc_objs(*rx_q->buf_pool, dma_conf->dma_rx_size,
+ GFP_KERNEL);
if (!rx_q->buf_pool)
return -ENOMEM;
@@ -2297,15 +2296,13 @@ static int __alloc_dma_tx_desc_resources(struct stmmac_priv *priv,
tx_q->queue_index = queue;
tx_q->priv_data = priv;
- tx_q->tx_skbuff_dma = kcalloc(dma_conf->dma_tx_size,
- sizeof(*tx_q->tx_skbuff_dma),
- GFP_KERNEL);
+ tx_q->tx_skbuff_dma = kzalloc_objs(*tx_q->tx_skbuff_dma,
+ dma_conf->dma_tx_size, GFP_KERNEL);
if (!tx_q->tx_skbuff_dma)
return -ENOMEM;
- tx_q->tx_skbuff = kcalloc(dma_conf->dma_tx_size,
- sizeof(struct sk_buff *),
- GFP_KERNEL);
+ tx_q->tx_skbuff = kzalloc_objs(struct sk_buff *, dma_conf->dma_tx_size,
+ GFP_KERNEL);
if (!tx_q->tx_skbuff)
return -ENOMEM;
@@ -4016,7 +4013,7 @@ stmmac_setup_dma_desc(struct stmmac_priv *priv, unsigned int mtu)
struct stmmac_dma_conf *dma_conf;
int chan, bfsize, ret;
- dma_conf = kzalloc(sizeof(*dma_conf), GFP_KERNEL);
+ dma_conf = kzalloc_obj(*dma_conf, GFP_KERNEL);
if (!dma_conf) {
netdev_err(priv->dev, "%s: DMA conf allocation failed\n",
__func__);
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c
index 08b60b7d5fd6..8f18a2eab33e 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c
@@ -324,7 +324,7 @@ static int __stmmac_test_loopback(struct stmmac_priv *priv,
struct sk_buff *skb = NULL;
int ret = 0;
- tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL);
+ tpriv = kzalloc_obj(*tpriv, GFP_KERNEL);
if (!tpriv)
return -ENOMEM;
@@ -434,11 +434,11 @@ static int stmmac_test_eee(struct stmmac_priv *priv)
if (!priv->dma_cap.eee || !priv->eee_active)
return -EOPNOTSUPP;
- initial = kzalloc(sizeof(*initial), GFP_KERNEL);
+ initial = kzalloc_obj(*initial, GFP_KERNEL);
if (!initial)
return -ENOMEM;
- final = kzalloc(sizeof(*final), GFP_KERNEL);
+ final = kzalloc_obj(*final, GFP_KERNEL);
if (!final) {
ret = -ENOMEM;
goto out_free_initial;
@@ -744,7 +744,7 @@ static int stmmac_test_flowctrl(struct stmmac_priv *priv)
if (!phydev || (!phydev->pause && !phydev->asym_pause))
return -EOPNOTSUPP;
- tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL);
+ tpriv = kzalloc_obj(*tpriv, GFP_KERNEL);
if (!tpriv)
return -ENOMEM;
@@ -898,7 +898,7 @@ static int __stmmac_test_vlanfilt(struct stmmac_priv *priv)
struct sk_buff *skb = NULL;
int ret = 0, i;
- tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL);
+ tpriv = kzalloc_obj(*tpriv, GFP_KERNEL);
if (!tpriv)
return -ENOMEM;
@@ -991,7 +991,7 @@ static int __stmmac_test_dvlanfilt(struct stmmac_priv *priv)
struct sk_buff *skb = NULL;
int ret = 0, i;
- tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL);
+ tpriv = kzalloc_obj(*tpriv, GFP_KERNEL);
if (!tpriv)
return -ENOMEM;
@@ -1095,23 +1095,23 @@ static int stmmac_test_rxp(struct stmmac_priv *priv)
if (!priv->dma_cap.frpsel)
return -EOPNOTSUPP;
- sel = kzalloc(struct_size(sel, keys, nk), GFP_KERNEL);
+ sel = kzalloc_flex(*sel, keys, nk, GFP_KERNEL);
if (!sel)
return -ENOMEM;
- exts = kzalloc(sizeof(*exts), GFP_KERNEL);
+ exts = kzalloc_obj(*exts, GFP_KERNEL);
if (!exts) {
ret = -ENOMEM;
goto cleanup_sel;
}
- actions = kcalloc(nk, sizeof(*actions), GFP_KERNEL);
+ actions = kzalloc_objs(*actions, nk, GFP_KERNEL);
if (!actions) {
ret = -ENOMEM;
goto cleanup_exts;
}
- gact = kcalloc(nk, sizeof(*gact), GFP_KERNEL);
+ gact = kzalloc_objs(*gact, nk, GFP_KERNEL);
if (!gact) {
ret = -ENOMEM;
goto cleanup_actions;
@@ -1266,7 +1266,7 @@ static int stmmac_test_vlanoff_common(struct stmmac_priv *priv, bool svlan)
if (!priv->dma_cap.vlins)
return -EOPNOTSUPP;
- tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL);
+ tpriv = kzalloc_obj(*tpriv, GFP_KERNEL);
if (!tpriv)
return -ENOMEM;
@@ -1349,7 +1349,7 @@ static int __stmmac_test_l3filt(struct stmmac_priv *priv, u32 dst, u32 src,
priv->plat->rx_queues_to_use);
}
- dissector = kzalloc(sizeof(*dissector), GFP_KERNEL);
+ dissector = kzalloc_obj(*dissector, GFP_KERNEL);
if (!dissector) {
ret = -ENOMEM;
goto cleanup_rss;
@@ -1358,7 +1358,7 @@ static int __stmmac_test_l3filt(struct stmmac_priv *priv, u32 dst, u32 src,
dissector->used_keys |= (1ULL << FLOW_DISSECTOR_KEY_IPV4_ADDRS);
dissector->offset[FLOW_DISSECTOR_KEY_IPV4_ADDRS] = 0;
- cls = kzalloc(sizeof(*cls), GFP_KERNEL);
+ cls = kzalloc_obj(*cls, GFP_KERNEL);
if (!cls) {
ret = -ENOMEM;
goto cleanup_dissector;
@@ -1368,7 +1368,7 @@ static int __stmmac_test_l3filt(struct stmmac_priv *priv, u32 dst, u32 src,
cls->command = FLOW_CLS_REPLACE;
cls->cookie = dummy_cookie;
- rule = kzalloc(struct_size(rule, action.entries, 1), GFP_KERNEL);
+ rule = kzalloc_flex(*rule, action.entries, 1, GFP_KERNEL);
if (!rule) {
ret = -ENOMEM;
goto cleanup_cls;
@@ -1475,7 +1475,7 @@ static int __stmmac_test_l4filt(struct stmmac_priv *priv, u32 dst, u32 src,
priv->plat->rx_queues_to_use);
}
- dissector = kzalloc(sizeof(*dissector), GFP_KERNEL);
+ dissector = kzalloc_obj(*dissector, GFP_KERNEL);
if (!dissector) {
ret = -ENOMEM;
goto cleanup_rss;
@@ -1486,7 +1486,7 @@ static int __stmmac_test_l4filt(struct stmmac_priv *priv, u32 dst, u32 src,
dissector->offset[FLOW_DISSECTOR_KEY_BASIC] = 0;
dissector->offset[FLOW_DISSECTOR_KEY_PORTS] = offsetof(typeof(keys), key);
- cls = kzalloc(sizeof(*cls), GFP_KERNEL);
+ cls = kzalloc_obj(*cls, GFP_KERNEL);
if (!cls) {
ret = -ENOMEM;
goto cleanup_dissector;
@@ -1496,7 +1496,7 @@ static int __stmmac_test_l4filt(struct stmmac_priv *priv, u32 dst, u32 src,
cls->command = FLOW_CLS_REPLACE;
cls->cookie = dummy_cookie;
- rule = kzalloc(struct_size(rule, action.entries, 1), GFP_KERNEL);
+ rule = kzalloc_flex(*rule, action.entries, 1, GFP_KERNEL);
if (!rule) {
ret = -ENOMEM;
goto cleanup_cls;
@@ -1628,7 +1628,7 @@ static int stmmac_test_arpoffload(struct stmmac_priv *priv)
if (!priv->dma_cap.arpoffsel)
return -EOPNOTSUPP;
- tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL);
+ tpriv = kzalloc_obj(*tpriv, GFP_KERNEL);
if (!tpriv)
return -ENOMEM;
diff --git a/drivers/net/ethernet/sun/cassini.c b/drivers/net/ethernet/sun/cassini.c
index acfb523214b9..fe00e7dd3fe4 100644
--- a/drivers/net/ethernet/sun/cassini.c
+++ b/drivers/net/ethernet/sun/cassini.c
@@ -465,7 +465,7 @@ static cas_page_t *cas_page_alloc(struct cas *cp, const gfp_t flags)
{
cas_page_t *page;
- page = kmalloc(sizeof(cas_page_t), flags);
+ page = kmalloc_obj(cas_page_t, flags);
if (!page)
return NULL;
diff --git a/drivers/net/ethernet/sun/ldmvsw.c b/drivers/net/ethernet/sun/ldmvsw.c
index 6fc37ab27f7b..c1102acbb1e0 100644
--- a/drivers/net/ethernet/sun/ldmvsw.c
+++ b/drivers/net/ethernet/sun/ldmvsw.c
@@ -202,7 +202,7 @@ static struct vnet *vsw_get_vnet(struct mdesc_handle *hp,
}
if (!vp) {
- vp = kzalloc(sizeof(*vp), GFP_KERNEL);
+ vp = kzalloc_obj(*vp, GFP_KERNEL);
if (unlikely(!vp)) {
mutex_unlock(&vnet_list_mutex);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/sun/niu.c b/drivers/net/ethernet/sun/niu.c
index f035e3bbbef8..2d31e6112ca6 100644
--- a/drivers/net/ethernet/sun/niu.c
+++ b/drivers/net/ethernet/sun/niu.c
@@ -4341,8 +4341,7 @@ static int niu_alloc_rx_ring_info(struct niu *np,
{
BUILD_BUG_ON(sizeof(struct rxdma_mailbox) != 64);
- rp->rxhash = kcalloc(MAX_RBR_RING_SIZE, sizeof(struct page *),
- GFP_KERNEL);
+ rp->rxhash = kzalloc_objs(struct page *, MAX_RBR_RING_SIZE, GFP_KERNEL);
if (!rp->rxhash)
return -ENOMEM;
@@ -4485,8 +4484,7 @@ static int niu_alloc_channels(struct niu *np)
num_rx_rings = parent->rxchan_per_port[port];
num_tx_rings = parent->txchan_per_port[port];
- rx_rings = kcalloc(num_rx_rings, sizeof(struct rx_ring_info),
- GFP_KERNEL);
+ rx_rings = kzalloc_objs(struct rx_ring_info, num_rx_rings, GFP_KERNEL);
err = -ENOMEM;
if (!rx_rings)
goto out_err;
@@ -4525,8 +4523,7 @@ static int niu_alloc_channels(struct niu *np)
goto out_err;
}
- tx_rings = kcalloc(num_tx_rings, sizeof(struct tx_ring_info),
- GFP_KERNEL);
+ tx_rings = kzalloc_objs(struct tx_ring_info, num_tx_rings, GFP_KERNEL);
err = -ENOMEM;
if (!tx_rings)
goto out_err;
@@ -9514,7 +9511,7 @@ static struct niu_parent *niu_new_parent(struct niu *np,
goto fail_unregister;
}
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
goto fail_unregister;
diff --git a/drivers/net/ethernet/sun/sunhme.c b/drivers/net/ethernet/sun/sunhme.c
index 666998082998..1984a6de65ee 100644
--- a/drivers/net/ethernet/sun/sunhme.c
+++ b/drivers/net/ethernet/sun/sunhme.c
@@ -2248,7 +2248,7 @@ static struct quattro *quattro_sbus_find(struct platform_device *child)
if (qp)
return qp;
- qp = kzalloc(sizeof(*qp), GFP_KERNEL);
+ qp = kzalloc_obj(*qp, GFP_KERNEL);
if (!qp)
return NULL;
@@ -2278,7 +2278,7 @@ static struct quattro *quattro_pci_find(struct pci_dev *pdev)
return qp;
}
- qp = kmalloc(sizeof(struct quattro), GFP_KERNEL);
+ qp = kmalloc_obj(struct quattro, GFP_KERNEL);
if (!qp)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ethernet/sun/sunqe.c b/drivers/net/ethernet/sun/sunqe.c
index 2920341b14a0..36187e85b7e6 100644
--- a/drivers/net/ethernet/sun/sunqe.c
+++ b/drivers/net/ethernet/sun/sunqe.c
@@ -771,7 +771,7 @@ static struct sunqec *get_qec(struct platform_device *child)
qecp = platform_get_drvdata(op);
if (!qecp) {
- qecp = kzalloc(sizeof(struct sunqec), GFP_KERNEL);
+ qecp = kzalloc_obj(struct sunqec, GFP_KERNEL);
if (qecp) {
u32 ctrl;
diff --git a/drivers/net/ethernet/sun/sunvnet.c b/drivers/net/ethernet/sun/sunvnet.c
index a2a3e94da4b8..7c756e07eb55 100644
--- a/drivers/net/ethernet/sun/sunvnet.c
+++ b/drivers/net/ethernet/sun/sunvnet.c
@@ -436,7 +436,7 @@ static int vnet_port_probe(struct vio_dev *vdev, const struct vio_device_id *id)
goto err_out_put_mdesc;
}
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
err = -ENOMEM;
if (!port)
goto err_out_put_mdesc;
diff --git a/drivers/net/ethernet/sun/sunvnet_common.c b/drivers/net/ethernet/sun/sunvnet_common.c
index 0212853c9430..5cca95869052 100644
--- a/drivers/net/ethernet/sun/sunvnet_common.c
+++ b/drivers/net/ethernet/sun/sunvnet_common.c
@@ -1571,7 +1571,7 @@ static void __update_mc_list(struct vnet *vp, struct net_device *dev)
}
if (!m) {
- m = kzalloc(sizeof(*m), GFP_ATOMIC);
+ m = kzalloc_obj(*m, GFP_ATOMIC);
if (!m)
continue;
memcpy(m->addr, ha->addr, ETH_ALEN);
diff --git a/drivers/net/ethernet/sunplus/spl2sw_desc.c b/drivers/net/ethernet/sunplus/spl2sw_desc.c
index 3f0d9f78b37d..f6b42cda693a 100644
--- a/drivers/net/ethernet/sunplus/spl2sw_desc.c
+++ b/drivers/net/ethernet/sunplus/spl2sw_desc.c
@@ -129,8 +129,9 @@ int spl2sw_rx_descs_init(struct spl2sw_common *comm)
u32 i, j;
for (i = 0; i < RX_DESC_QUEUE_NUM; i++) {
- comm->rx_skb_info[i] = kcalloc(comm->rx_desc_num[i], sizeof(*rx_skbinfo),
- GFP_KERNEL | GFP_DMA);
+ comm->rx_skb_info[i] = kzalloc_objs(*rx_skbinfo,
+ comm->rx_desc_num[i],
+ GFP_KERNEL | GFP_DMA);
if (!comm->rx_skb_info[i])
goto mem_alloc_fail;
diff --git a/drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c b/drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c
index 589797bad1f9..cda6ee474400 100644
--- a/drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c
+++ b/drivers/net/ethernet/synopsys/dwc-xlgmac-desc.c
@@ -140,9 +140,8 @@ static int xlgmac_init_ring(struct xlgmac_pdata *pdata,
return -ENOMEM;
/* Array of descriptor data */
- ring->desc_data_head = kcalloc(dma_desc_count,
- sizeof(struct xlgmac_desc_data),
- GFP_KERNEL);
+ ring->desc_data_head = kzalloc_objs(struct xlgmac_desc_data,
+ dma_desc_count, GFP_KERNEL);
if (!ring->desc_data_head)
return -ENOMEM;
@@ -234,21 +233,21 @@ static int xlgmac_alloc_channels(struct xlgmac_pdata *pdata)
int ret = -ENOMEM;
unsigned int i;
- channel_head = kcalloc(pdata->channel_count,
- sizeof(struct xlgmac_channel), GFP_KERNEL);
+ channel_head = kzalloc_objs(struct xlgmac_channel, pdata->channel_count,
+ GFP_KERNEL);
if (!channel_head)
return ret;
netif_dbg(pdata, drv, pdata->netdev,
"channel_head=%p\n", channel_head);
- tx_ring = kcalloc(pdata->tx_ring_count, sizeof(struct xlgmac_ring),
- GFP_KERNEL);
+ tx_ring = kzalloc_objs(struct xlgmac_ring, pdata->tx_ring_count,
+ GFP_KERNEL);
if (!tx_ring)
goto err_tx_ring;
- rx_ring = kcalloc(pdata->rx_ring_count, sizeof(struct xlgmac_ring),
- GFP_KERNEL);
+ rx_ring = kzalloc_objs(struct xlgmac_ring, pdata->rx_ring_count,
+ GFP_KERNEL);
if (!rx_ring)
goto err_rx_ring;
diff --git a/drivers/net/ethernet/ti/am65-cpsw-switchdev.c b/drivers/net/ethernet/ti/am65-cpsw-switchdev.c
index d4c56da98a6a..53cdac272b58 100644
--- a/drivers/net/ethernet/ti/am65-cpsw-switchdev.c
+++ b/drivers/net/ethernet/ti/am65-cpsw-switchdev.c
@@ -435,7 +435,7 @@ static int am65_cpsw_switchdev_event(struct notifier_block *unused,
if (!am65_cpsw_port_dev_check(ndev))
return NOTIFY_DONE;
- switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC);
+ switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC);
if (WARN_ON(!switchdev_work))
return NOTIFY_BAD;
diff --git a/drivers/net/ethernet/ti/cpsw_switchdev.c b/drivers/net/ethernet/ti/cpsw_switchdev.c
index ce85f7610273..7e06aac388a6 100644
--- a/drivers/net/ethernet/ti/cpsw_switchdev.c
+++ b/drivers/net/ethernet/ti/cpsw_switchdev.c
@@ -445,7 +445,7 @@ static int cpsw_switchdev_event(struct notifier_block *unused,
if (!cpsw_port_dev_check(ndev))
return NOTIFY_DONE;
- switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC);
+ switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC);
if (WARN_ON(!switchdev_work))
return NOTIFY_BAD;
diff --git a/drivers/net/ethernet/ti/icssg/icssg_switchdev.c b/drivers/net/ethernet/ti/icssg/icssg_switchdev.c
index 67e2927e176d..26a57be04665 100644
--- a/drivers/net/ethernet/ti/icssg/icssg_switchdev.c
+++ b/drivers/net/ethernet/ti/icssg/icssg_switchdev.c
@@ -193,7 +193,7 @@ static int prueth_switchdev_event(struct notifier_block *unused,
return notifier_from_errno(err);
}
- switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC);
+ switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC);
if (WARN_ON(!switchdev_work))
return NOTIFY_BAD;
diff --git a/drivers/net/ethernet/ti/icssm/icssm_prueth_switch.c b/drivers/net/ethernet/ti/icssm/icssm_prueth_switch.c
index 07c08564386e..fa9959ad966d 100644
--- a/drivers/net/ethernet/ti/icssm/icssm_prueth_switch.c
+++ b/drivers/net/ethernet/ti/icssm/icssm_prueth_switch.c
@@ -748,7 +748,7 @@ int icssm_prueth_sw_init_fdb_table(struct prueth *prueth)
if (prueth->emac_configured)
return 0;
- prueth->fdb_tbl = kmalloc(sizeof(*prueth->fdb_tbl), GFP_KERNEL);
+ prueth->fdb_tbl = kmalloc_obj(*prueth->fdb_tbl, GFP_KERNEL);
if (!prueth->fdb_tbl)
return -ENOMEM;
@@ -816,7 +816,7 @@ int icssm_prueth_sw_learn_fdb(struct prueth_emac *emac, u8 *src_mac)
{
struct icssm_prueth_sw_fdb_work *fdb_work;
- fdb_work = kzalloc(sizeof(*fdb_work), GFP_ATOMIC);
+ fdb_work = kzalloc_obj(*fdb_work, GFP_ATOMIC);
if (WARN_ON(!fdb_work))
return -ENOMEM;
@@ -835,7 +835,7 @@ int icssm_prueth_sw_purge_fdb(struct prueth_emac *emac)
{
struct icssm_prueth_sw_fdb_work *fdb_work;
- fdb_work = kzalloc(sizeof(*fdb_work), GFP_ATOMIC);
+ fdb_work = kzalloc_obj(*fdb_work, GFP_ATOMIC);
if (WARN_ON(!fdb_work))
return -ENOMEM;
diff --git a/drivers/net/ethernet/ti/icssm/icssm_switchdev.c b/drivers/net/ethernet/ti/icssm/icssm_switchdev.c
index 414ec9fc02a0..1c48023031dc 100644
--- a/drivers/net/ethernet/ti/icssm/icssm_switchdev.c
+++ b/drivers/net/ethernet/ti/icssm/icssm_switchdev.c
@@ -167,7 +167,7 @@ static int icssm_prueth_sw_switchdev_event(struct notifier_block *unused,
return notifier_from_errno(err);
}
- switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC);
+ switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC);
if (WARN_ON(!switchdev_work))
return NOTIFY_BAD;
diff --git a/drivers/net/ethernet/ti/k3-cppi-desc-pool.c b/drivers/net/ethernet/ti/k3-cppi-desc-pool.c
index 739bae8e11ee..58bb394fecdf 100644
--- a/drivers/net/ethernet/ti/k3-cppi-desc-pool.c
+++ b/drivers/net/ethernet/ti/k3-cppi-desc-pool.c
@@ -55,7 +55,7 @@ k3_cppi_desc_pool_create_name(struct device *dev, size_t size,
const char *pool_name = NULL;
int ret = -ENOMEM;
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return ERR_PTR(ret);
@@ -77,8 +77,8 @@ k3_cppi_desc_pool_create_name(struct device *dev, size_t size,
pool->gen_pool->name = pool_name;
- pool->desc_infos = kcalloc(pool->num_desc,
- sizeof(*pool->desc_infos), GFP_KERNEL);
+ pool->desc_infos = kzalloc_objs(*pool->desc_infos, pool->num_desc,
+ GFP_KERNEL);
if (!pool->desc_infos)
goto gen_pool_desc_infos_alloc_fail;
diff --git a/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c b/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c
index 4fbe4b7cd12a..67d96efcb8bc 100644
--- a/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c
+++ b/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c
@@ -209,7 +209,7 @@ static struct gelic_eurus_cmd *gelic_eurus_sync_cmd(struct gelic_wl_info *wl,
struct gelic_eurus_cmd *cmd;
/* allocate cmd */
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return NULL;
@@ -2305,9 +2305,8 @@ static struct net_device *gelic_wl_alloc(struct gelic_card *card)
pr_debug("%s: wl=%p port=%p\n", __func__, wl, port);
/* allocate scan list */
- wl->networks = kcalloc(GELIC_WL_BSS_MAX_ENT,
- sizeof(struct gelic_wl_scan_info),
- GFP_KERNEL);
+ wl->networks = kzalloc_objs(struct gelic_wl_scan_info,
+ GELIC_WL_BSS_MAX_ENT, GFP_KERNEL);
if (!wl->networks)
goto fail_bss;
diff --git a/drivers/net/ethernet/via/via-velocity.c b/drivers/net/ethernet/via/via-velocity.c
index 5aa93144a4f5..f761975aeda8 100644
--- a/drivers/net/ethernet/via/via-velocity.c
+++ b/drivers/net/ethernet/via/via-velocity.c
@@ -1631,8 +1631,8 @@ static int velocity_init_rd_ring(struct velocity_info *vptr)
{
int ret = -ENOMEM;
- vptr->rx.info = kcalloc(vptr->options.numrx,
- sizeof(struct velocity_rd_info), GFP_KERNEL);
+ vptr->rx.info = kzalloc_objs(struct velocity_rd_info,
+ vptr->options.numrx, GFP_KERNEL);
if (!vptr->rx.info)
goto out;
@@ -1664,9 +1664,9 @@ static int velocity_init_td_ring(struct velocity_info *vptr)
/* Init the TD ring entries */
for (j = 0; j < vptr->tx.numq; j++) {
- vptr->tx.infos[j] = kcalloc(vptr->options.numtx,
- sizeof(struct velocity_td_info),
- GFP_KERNEL);
+ vptr->tx.infos[j] = kzalloc_objs(struct velocity_td_info,
+ vptr->options.numtx,
+ GFP_KERNEL);
if (!vptr->tx.infos[j]) {
while (--j >= 0)
kfree(vptr->tx.infos[j]);
@@ -2304,7 +2304,7 @@ static int velocity_change_mtu(struct net_device *dev, int new_mtu)
struct rx_info rx;
struct tx_info tx;
- tmp_vptr = kzalloc(sizeof(*tmp_vptr), GFP_KERNEL);
+ tmp_vptr = kzalloc_obj(*tmp_vptr, GFP_KERNEL);
if (!tmp_vptr) {
ret = -ENOMEM;
goto out_0;
diff --git a/drivers/net/ethernet/wangxun/libwx/wx_hw.c b/drivers/net/ethernet/wangxun/libwx/wx_hw.c
index 58b8300e3d2c..c78e0775aeb5 100644
--- a/drivers/net/ethernet/wangxun/libwx/wx_hw.c
+++ b/drivers/net/ethernet/wangxun/libwx/wx_hw.c
@@ -2505,9 +2505,8 @@ int wx_sw_init(struct wx *wx)
wx->rss_flags = WX_RSS_FIELD_IPV4 | WX_RSS_FIELD_IPV4_TCP |
WX_RSS_FIELD_IPV6 | WX_RSS_FIELD_IPV6_TCP;
- wx->mac_table = kcalloc(wx->mac.num_rar_entries,
- sizeof(struct wx_mac_addr),
- GFP_KERNEL);
+ wx->mac_table = kzalloc_objs(struct wx_mac_addr,
+ wx->mac.num_rar_entries, GFP_KERNEL);
if (!wx->mac_table) {
wx_err(wx, "mac_table allocation failed\n");
kfree(wx->rss_key);
diff --git a/drivers/net/ethernet/wangxun/libwx/wx_lib.c b/drivers/net/ethernet/wangxun/libwx/wx_lib.c
index b31b48d26575..00c23bebdc72 100644
--- a/drivers/net/ethernet/wangxun/libwx/wx_lib.c
+++ b/drivers/net/ethernet/wangxun/libwx/wx_lib.c
@@ -1905,16 +1905,14 @@ static int wx_acquire_msix_vectors(struct wx *wx)
nvecs = min_t(int, nvecs, num_online_cpus());
nvecs = min_t(int, nvecs, wx->mac.max_msix_vectors);
- wx->msix_q_entries = kcalloc(nvecs, sizeof(struct msix_entry),
- GFP_KERNEL);
+ wx->msix_q_entries = kzalloc_objs(struct msix_entry, nvecs, GFP_KERNEL);
if (!wx->msix_q_entries)
return -ENOMEM;
/* One for non-queue interrupts */
nvecs += 1;
- wx->msix_entry = kcalloc(1, sizeof(struct msix_entry),
- GFP_KERNEL);
+ wx->msix_entry = kzalloc_objs(struct msix_entry, 1, GFP_KERNEL);
if (!wx->msix_entry) {
kfree(wx->msix_q_entries);
wx->msix_q_entries = NULL;
@@ -2097,8 +2095,7 @@ static int wx_alloc_q_vector(struct wx *wx,
/* note this will allocate space for the ring structure as well! */
ring_count = txr_count + rxr_count;
- q_vector = kzalloc(struct_size(q_vector, ring, ring_count),
- GFP_KERNEL);
+ q_vector = kzalloc_flex(*q_vector, ring, ring_count, GFP_KERNEL);
if (!q_vector)
return -ENOMEM;
diff --git a/drivers/net/ethernet/wangxun/libwx/wx_mbx.c b/drivers/net/ethernet/wangxun/libwx/wx_mbx.c
index 2aa03eadf064..d237814cbae5 100644
--- a/drivers/net/ethernet/wangxun/libwx/wx_mbx.c
+++ b/drivers/net/ethernet/wangxun/libwx/wx_mbx.c
@@ -403,8 +403,7 @@ int wx_read_mbx_vf(struct wx *wx, u32 *msg, u16 size)
int wx_init_mbx_params_vf(struct wx *wx)
{
- wx->vfinfo = kzalloc(sizeof(struct vf_data_storage),
- GFP_KERNEL);
+ wx->vfinfo = kzalloc_obj(struct vf_data_storage, GFP_KERNEL);
if (!wx->vfinfo)
return -ENOMEM;
diff --git a/drivers/net/ethernet/wangxun/libwx/wx_sriov.c b/drivers/net/ethernet/wangxun/libwx/wx_sriov.c
index 493da5fffdb6..70a5b00eb353 100644
--- a/drivers/net/ethernet/wangxun/libwx/wx_sriov.c
+++ b/drivers/net/ethernet/wangxun/libwx/wx_sriov.c
@@ -32,8 +32,7 @@ static int wx_alloc_vf_macvlans(struct wx *wx, u8 num_vfs)
if (!num_vf_macvlans)
return -EINVAL;
- mv_list = kcalloc(num_vf_macvlans, sizeof(struct vf_macvlans),
- GFP_KERNEL);
+ mv_list = kzalloc_objs(struct vf_macvlans, num_vf_macvlans, GFP_KERNEL);
if (!mv_list)
return -ENOMEM;
@@ -88,8 +87,7 @@ static int __wx_enable_sriov(struct wx *wx, u8 num_vfs)
wx->ring_feature[RING_F_VMDQ].limit = 1;
wx->ring_feature[RING_F_VMDQ].offset = num_vfs;
- wx->vfinfo = kcalloc(num_vfs, sizeof(struct vf_data_storage),
- GFP_KERNEL);
+ wx->vfinfo = kzalloc_objs(struct vf_data_storage, num_vfs, GFP_KERNEL);
if (!wx->vfinfo)
return -ENOMEM;
diff --git a/drivers/net/ethernet/wangxun/ngbe/ngbe_ethtool.c b/drivers/net/ethernet/wangxun/ngbe/ngbe_ethtool.c
index 662f28bdde8a..d42fd6d8d9c8 100644
--- a/drivers/net/ethernet/wangxun/ngbe/ngbe_ethtool.c
+++ b/drivers/net/ethernet/wangxun/ngbe/ngbe_ethtool.c
@@ -81,7 +81,7 @@ static int ngbe_set_ringparam(struct net_device *netdev,
/* allocate temporary buffer to store rings in */
i = max_t(int, wx->num_tx_queues, wx->num_rx_queues);
- temp_ring = kvmalloc_array(i, sizeof(struct wx_ring), GFP_KERNEL);
+ temp_ring = kvmalloc_objs(struct wx_ring, i, GFP_KERNEL);
if (!temp_ring) {
err = -ENOMEM;
goto clear_reset;
diff --git a/drivers/net/ethernet/wangxun/txgbe/txgbe_ethtool.c b/drivers/net/ethernet/wangxun/txgbe/txgbe_ethtool.c
index 59d758acccf0..cc0ebc3d030a 100644
--- a/drivers/net/ethernet/wangxun/txgbe/txgbe_ethtool.c
+++ b/drivers/net/ethernet/wangxun/txgbe/txgbe_ethtool.c
@@ -73,7 +73,7 @@ static int txgbe_set_ringparam(struct net_device *netdev,
/* allocate temporary buffer to store rings in */
i = max_t(int, wx->num_tx_queues, wx->num_rx_queues);
- temp_ring = kvmalloc_array(i, sizeof(struct wx_ring), GFP_KERNEL);
+ temp_ring = kvmalloc_objs(struct wx_ring, i, GFP_KERNEL);
if (!temp_ring) {
err = -ENOMEM;
goto clear_reset;
@@ -390,7 +390,7 @@ static int txgbe_add_ethtool_fdir_entry(struct txgbe *txgbe,
return -EINVAL;
}
- input = kzalloc(sizeof(*input), GFP_ATOMIC);
+ input = kzalloc_obj(*input, GFP_ATOMIC);
if (!input)
return -ENOMEM;
diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
index 998bacd508b8..8980c965b5fd 100644
--- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
+++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
@@ -1542,14 +1542,14 @@ static int axienet_init_dmaengine(struct net_device *ndev)
lp->tx_ring_head = 0;
lp->rx_ring_tail = 0;
lp->rx_ring_head = 0;
- lp->tx_skb_ring = kcalloc(TX_BD_NUM_MAX, sizeof(*lp->tx_skb_ring),
- GFP_KERNEL);
+ lp->tx_skb_ring = kzalloc_objs(*lp->tx_skb_ring, TX_BD_NUM_MAX,
+ GFP_KERNEL);
if (!lp->tx_skb_ring) {
ret = -ENOMEM;
goto err_dma_release_rx;
}
for (i = 0; i < TX_BD_NUM_MAX; i++) {
- skbuf_dma = kzalloc(sizeof(*skbuf_dma), GFP_KERNEL);
+ skbuf_dma = kzalloc_obj(*skbuf_dma, GFP_KERNEL);
if (!skbuf_dma) {
ret = -ENOMEM;
goto err_free_tx_skb_ring;
@@ -1557,14 +1557,14 @@ static int axienet_init_dmaengine(struct net_device *ndev)
lp->tx_skb_ring[i] = skbuf_dma;
}
- lp->rx_skb_ring = kcalloc(RX_BUF_NUM_DEFAULT, sizeof(*lp->rx_skb_ring),
- GFP_KERNEL);
+ lp->rx_skb_ring = kzalloc_objs(*lp->rx_skb_ring, RX_BUF_NUM_DEFAULT,
+ GFP_KERNEL);
if (!lp->rx_skb_ring) {
ret = -ENOMEM;
goto err_free_tx_skb_ring;
}
for (i = 0; i < RX_BUF_NUM_DEFAULT; i++) {
- skbuf_dma = kzalloc(sizeof(*skbuf_dma), GFP_KERNEL);
+ skbuf_dma = kzalloc_obj(*skbuf_dma, GFP_KERNEL);
if (!skbuf_dma) {
ret = -ENOMEM;
goto err_free_rx_skb_ring;
diff --git a/drivers/net/fjes/fjes_hw.c b/drivers/net/fjes/fjes_hw.c
index 5ad2673f213d..db40667413b4 100644
--- a/drivers/net/fjes/fjes_hw.c
+++ b/drivers/net/fjes/fjes_hw.c
@@ -212,8 +212,7 @@ static int fjes_hw_setup(struct fjes_hw *hw)
hw->hw_info.max_epid = &hw->max_epid;
hw->hw_info.my_epid = &hw->my_epid;
- buf = kcalloc(hw->max_epid, sizeof(struct ep_share_mem_info),
- GFP_KERNEL);
+ buf = kzalloc_objs(struct ep_share_mem_info, hw->max_epid, GFP_KERNEL);
if (!buf)
return -ENOMEM;
diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
index 0949d4579171..d482e5512fa8 100644
--- a/drivers/net/geneve.c
+++ b/drivers/net/geneve.c
@@ -980,7 +980,7 @@ static struct geneve_sock *geneve_socket_create(struct net *net, __be16 port,
struct udp_tunnel_sock_cfg tunnel_cfg;
int h;
- gs = kzalloc(sizeof(*gs), GFP_KERNEL);
+ gs = kzalloc_obj(*gs, GFP_KERNEL);
if (!gs)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c
index 4213c3b2d532..e8949f556209 100644
--- a/drivers/net/gtp.c
+++ b/drivers/net/gtp.c
@@ -1623,13 +1623,13 @@ static int gtp_hashtable_new(struct gtp_dev *gtp, int hsize)
{
int i;
- gtp->addr_hash = kmalloc_array(hsize, sizeof(struct hlist_head),
- GFP_KERNEL | __GFP_NOWARN);
+ gtp->addr_hash = kmalloc_objs(struct hlist_head, hsize,
+ GFP_KERNEL | __GFP_NOWARN);
if (gtp->addr_hash == NULL)
return -ENOMEM;
- gtp->tid_hash = kmalloc_array(hsize, sizeof(struct hlist_head),
- GFP_KERNEL | __GFP_NOWARN);
+ gtp->tid_hash = kmalloc_objs(struct hlist_head, hsize,
+ GFP_KERNEL | __GFP_NOWARN);
if (gtp->tid_hash == NULL)
goto err1;
@@ -1917,7 +1917,7 @@ static struct pdp_ctx *gtp_pdp_add(struct gtp_dev *gtp, struct sock *sk,
}
- pctx = kmalloc(sizeof(*pctx), GFP_ATOMIC);
+ pctx = kmalloc_obj(*pctx, GFP_ATOMIC);
if (pctx == NULL)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c
index f29997b20fd7..16220b740b8e 100644
--- a/drivers/net/hamradio/yam.c
+++ b/drivers/net/hamradio/yam.c
@@ -386,7 +386,7 @@ static unsigned char *add_mcs(unsigned char *bits, int bitrate,
}
/* Allocate a new mcs */
- if ((p = kmalloc(sizeof(struct yam_mcs), GFP_KERNEL)) == NULL) {
+ if ((p = kmalloc_obj(struct yam_mcs, GFP_KERNEL)) == NULL) {
release_firmware(fw);
return NULL;
}
diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c
index 60a4629fe6ba..d9fa2fc4c43c 100644
--- a/drivers/net/hyperv/netvsc.c
+++ b/drivers/net/hyperv/netvsc.c
@@ -129,7 +129,7 @@ static struct netvsc_device *alloc_net_device(void)
{
struct netvsc_device *net_device;
- net_device = kzalloc(sizeof(struct netvsc_device), GFP_KERNEL);
+ net_device = kzalloc_obj(struct netvsc_device, GFP_KERNEL);
if (!net_device)
return NULL;
@@ -1025,9 +1025,8 @@ static int netvsc_dma_map(struct hv_device *hv_dev,
if (!hv_is_isolation_supported())
return 0;
- packet->dma_range = kcalloc(page_count,
- sizeof(*packet->dma_range),
- GFP_ATOMIC);
+ packet->dma_range = kzalloc_objs(*packet->dma_range, page_count,
+ GFP_ATOMIC);
if (!packet->dma_range)
return -ENOMEM;
diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c
index cbd52cb79268..1a3f2a35519f 100644
--- a/drivers/net/hyperv/netvsc_drv.c
+++ b/drivers/net/hyperv/netvsc_drv.c
@@ -712,7 +712,7 @@ void netvsc_linkstatus_callback(struct net_device *net,
if (net->reg_state != NETREG_REGISTERED)
return;
- event = kzalloc(sizeof(*event), GFP_ATOMIC);
+ event = kzalloc_obj(*event, GFP_ATOMIC);
if (!event)
return;
event->event = indicate->status;
@@ -931,7 +931,7 @@ struct netvsc_device_info *netvsc_devinfo_get(struct netvsc_device *nvdev)
struct netvsc_device_info *dev_info;
struct bpf_prog *prog;
- dev_info = kzalloc(sizeof(*dev_info), GFP_ATOMIC);
+ dev_info = kzalloc_obj(*dev_info, GFP_ATOMIC);
if (!dev_info)
return NULL;
@@ -1524,9 +1524,8 @@ static void netvsc_get_ethtool_stats(struct net_device *dev,
data[i++] = xdp_tx;
}
- pcpu_sum = kvmalloc_array(nr_cpu_ids,
- sizeof(struct netvsc_ethtool_pcpu_stats),
- GFP_KERNEL);
+ pcpu_sum = kvmalloc_objs(struct netvsc_ethtool_pcpu_stats, nr_cpu_ids,
+ GFP_KERNEL);
if (!pcpu_sum)
return;
diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
index c35f9685b6bf..2fa77dc21d7e 100644
--- a/drivers/net/hyperv/rndis_filter.c
+++ b/drivers/net/hyperv/rndis_filter.c
@@ -64,7 +64,7 @@ static struct rndis_device *get_rndis_device(void)
{
struct rndis_device *device;
- device = kzalloc(sizeof(struct rndis_device), GFP_KERNEL);
+ device = kzalloc_obj(struct rndis_device, GFP_KERNEL);
if (!device)
return NULL;
@@ -87,7 +87,7 @@ static struct rndis_request *get_rndis_request(struct rndis_device *dev,
struct rndis_set_request *set;
unsigned long flags;
- request = kzalloc(sizeof(struct rndis_request), GFP_KERNEL);
+ request = kzalloc_obj(struct rndis_request, GFP_KERNEL);
if (!request)
return NULL;
diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c
index fd91f8a45bce..6156cf379916 100644
--- a/drivers/net/ieee802154/at86rf230.c
+++ b/drivers/net/ieee802154/at86rf230.c
@@ -788,7 +788,7 @@ static irqreturn_t at86rf230_isr(int irq, void *data)
disable_irq_nosync(irq);
- ctx = kzalloc(sizeof(*ctx), GFP_ATOMIC);
+ ctx = kzalloc_obj(*ctx, GFP_ATOMIC);
if (!ctx) {
enable_irq(irq);
return IRQ_NONE;
diff --git a/drivers/net/ieee802154/ca8210.c b/drivers/net/ieee802154/ca8210.c
index ebc4f1b18e7b..bb3ff9ce06b2 100644
--- a/drivers/net/ieee802154/ca8210.c
+++ b/drivers/net/ieee802154/ca8210.c
@@ -720,8 +720,8 @@ static void ca8210_rx_done(struct cas_control *cas_ctl)
&priv->spi->dev,
"Resetting MAC...\n");
- mlme_reset_wpc = kmalloc(sizeof(*mlme_reset_wpc),
- GFP_KERNEL);
+ mlme_reset_wpc = kmalloc_obj(*mlme_reset_wpc,
+ GFP_KERNEL);
if (!mlme_reset_wpc)
goto finish;
INIT_WORK(
@@ -884,7 +884,7 @@ static int ca8210_spi_transfer(
dev_dbg(&spi->dev, "%s called\n", __func__);
- cas_ctl = kzalloc(sizeof(*cas_ctl), GFP_ATOMIC);
+ cas_ctl = kzalloc_obj(*cas_ctl, GFP_ATOMIC);
if (!cas_ctl)
return -ENOMEM;
@@ -3067,7 +3067,7 @@ static int ca8210_probe(struct spi_device *spi_device)
ca8210_hw_setup(hw);
ieee802154_random_extended_addr(&hw->phy->perm_extended_addr);
- pdata = kmalloc(sizeof(*pdata), GFP_KERNEL);
+ pdata = kmalloc_obj(*pdata, GFP_KERNEL);
if (!pdata) {
ret = -ENOMEM;
goto error;
diff --git a/drivers/net/ieee802154/mac802154_hwsim.c b/drivers/net/ieee802154/mac802154_hwsim.c
index 1cab20b5a885..e449afd8e71f 100644
--- a/drivers/net/ieee802154/mac802154_hwsim.c
+++ b/drivers/net/ieee802154/mac802154_hwsim.c
@@ -98,7 +98,7 @@ static int hwsim_update_pib(struct ieee802154_hw *hw, u8 page, u8 channel,
struct hwsim_phy *phy = hw->priv;
struct hwsim_pib *pib, *pib_old;
- pib = kzalloc(sizeof(*pib), GFP_ATOMIC);
+ pib = kzalloc_obj(*pib, GFP_ATOMIC);
if (!pib)
return -ENOMEM;
@@ -545,11 +545,11 @@ static struct hwsim_edge *hwsim_alloc_edge(struct hwsim_phy *endpoint, u8 lqi)
struct hwsim_edge_info *einfo;
struct hwsim_edge *e;
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e)
return NULL;
- einfo = kzalloc(sizeof(*einfo), GFP_KERNEL);
+ einfo = kzalloc_obj(*einfo, GFP_KERNEL);
if (!einfo) {
kfree(e);
return NULL;
@@ -713,7 +713,7 @@ static int hwsim_set_edge_lqi(struct sk_buff *msg, struct genl_info *info)
return -ENOENT;
}
- einfo = kzalloc(sizeof(*einfo), GFP_KERNEL);
+ einfo = kzalloc_obj(*einfo, GFP_KERNEL);
if (!einfo) {
mutex_unlock(&hwsim_phys_lock);
return -ENOMEM;
@@ -946,7 +946,7 @@ static int hwsim_add_one(struct genl_info *info, struct device *dev,
/* hwsim phy channel 13 as default */
hw->phy->current_channel = 13;
- pib = kzalloc(sizeof(*pib), GFP_KERNEL);
+ pib = kzalloc_obj(*pib, GFP_KERNEL);
if (!pib) {
err = -ENOMEM;
goto err_pib;
diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c
index 6da801748189..4ad90264433a 100644
--- a/drivers/net/ifb.c
+++ b/drivers/net/ifb.c
@@ -187,7 +187,7 @@ static int ifb_dev_init(struct net_device *dev)
struct ifb_q_private *txp;
int i;
- txp = kcalloc(dev->num_tx_queues, sizeof(*txp), GFP_KERNEL);
+ txp = kzalloc_objs(*txp, dev->num_tx_queues, GFP_KERNEL);
if (!txp)
return -ENOMEM;
dp->tx_private = txp;
diff --git a/drivers/net/ipa/gsi_trans.c b/drivers/net/ipa/gsi_trans.c
index 19531883864a..f82484de39dd 100644
--- a/drivers/net/ipa/gsi_trans.c
+++ b/drivers/net/ipa/gsi_trans.c
@@ -730,8 +730,8 @@ int gsi_channel_trans_init(struct gsi *gsi, u32 channel_id)
* modulo that number to determine the next one that's free.
* Transactions are allocated one at a time.
*/
- trans_info->trans = kcalloc(tre_count, sizeof(*trans_info->trans),
- GFP_KERNEL);
+ trans_info->trans = kzalloc_objs(*trans_info->trans, tre_count,
+ GFP_KERNEL);
if (!trans_info->trans)
return -ENOMEM;
trans_info->free_id = 0; /* all modulo channel->tre_count */
@@ -746,8 +746,7 @@ int gsi_channel_trans_init(struct gsi *gsi, u32 channel_id)
* Each entry in this map records the transaction associated
* with a corresponding completed TRE.
*/
- trans_info->map = kcalloc(tre_count, sizeof(*trans_info->map),
- GFP_KERNEL);
+ trans_info->map = kzalloc_objs(*trans_info->map, tre_count, GFP_KERNEL);
if (!trans_info->map) {
ret = -ENOMEM;
goto err_trans_free;
diff --git a/drivers/net/ipa/ipa_interrupt.c b/drivers/net/ipa/ipa_interrupt.c
index 8336596b1247..9e8d75a98f05 100644
--- a/drivers/net/ipa/ipa_interrupt.c
+++ b/drivers/net/ipa/ipa_interrupt.c
@@ -329,7 +329,7 @@ struct ipa_interrupt *ipa_interrupt_init(struct platform_device *pdev)
if (irq <= 0)
return ERR_PTR(irq ? : -EINVAL);
- interrupt = kzalloc(sizeof(*interrupt), GFP_KERNEL);
+ interrupt = kzalloc_obj(*interrupt, GFP_KERNEL);
if (!interrupt)
return ERR_PTR(-ENOMEM);
interrupt->irq = irq;
diff --git a/drivers/net/ipa/ipa_main.c b/drivers/net/ipa/ipa_main.c
index 95a61bae3124..d09b4723f26c 100644
--- a/drivers/net/ipa/ipa_main.c
+++ b/drivers/net/ipa/ipa_main.c
@@ -830,7 +830,7 @@ static int ipa_probe(struct platform_device *pdev)
}
/* No more EPROBE_DEFER. Allocate and initialize the IPA structure */
- ipa = kzalloc(sizeof(*ipa), GFP_KERNEL);
+ ipa = kzalloc_obj(*ipa, GFP_KERNEL);
if (!ipa) {
ret = -ENOMEM;
goto err_power_exit;
diff --git a/drivers/net/ipa/ipa_smp2p.c b/drivers/net/ipa/ipa_smp2p.c
index 420098796eec..e96bdd9b68a8 100644
--- a/drivers/net/ipa/ipa_smp2p.c
+++ b/drivers/net/ipa/ipa_smp2p.c
@@ -242,7 +242,7 @@ ipa_smp2p_init(struct ipa *ipa, struct platform_device *pdev, bool modem_init)
if (enabled_bit >= 32) /* BITS_PER_U32 */
return -EINVAL;
- smp2p = kzalloc(sizeof(*smp2p), GFP_KERNEL);
+ smp2p = kzalloc_obj(*smp2p, GFP_KERNEL);
if (!smp2p)
return -ENOMEM;
diff --git a/drivers/net/ipvlan/ipvlan_main.c b/drivers/net/ipvlan/ipvlan_main.c
index baccdad695fd..6f4ea2234ccb 100644
--- a/drivers/net/ipvlan/ipvlan_main.c
+++ b/drivers/net/ipvlan/ipvlan_main.c
@@ -64,7 +64,7 @@ static int ipvlan_port_create(struct net_device *dev)
struct ipvl_port *port;
int err, idx;
- port = kzalloc(sizeof(struct ipvl_port), GFP_KERNEL);
+ port = kzalloc_obj(struct ipvl_port, GFP_KERNEL);
if (!port)
return -ENOMEM;
@@ -820,7 +820,7 @@ static int ipvlan_add_addr(struct ipvl_dev *ipvlan, void *iaddr, bool is_v6)
assert_spin_locked(&ipvlan->port->addrs_lock);
- addr = kzalloc(sizeof(struct ipvl_addr), GFP_ATOMIC);
+ addr = kzalloc_obj(struct ipvl_addr, GFP_ATOMIC);
if (!addr)
return -ENOMEM;
diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c
index c2cb2d20976b..1b523a56e7da 100644
--- a/drivers/net/macsec.c
+++ b/drivers/net/macsec.c
@@ -1465,7 +1465,7 @@ static struct macsec_rx_sc *create_rx_sc(struct net_device *dev, sci_t sci,
return ERR_PTR(-EEXIST);
}
- rx_sc = kzalloc(sizeof(*rx_sc), GFP_KERNEL);
+ rx_sc = kzalloc_obj(*rx_sc, GFP_KERNEL);
if (!rx_sc)
return ERR_PTR(-ENOMEM);
@@ -1797,7 +1797,7 @@ static int macsec_add_rxsa(struct sk_buff *skb, struct genl_info *info)
return -EBUSY;
}
- rx_sa = kmalloc(sizeof(*rx_sa), GFP_KERNEL);
+ rx_sa = kmalloc_obj(*rx_sa, GFP_KERNEL);
if (!rx_sa) {
rtnl_unlock();
return -ENOMEM;
@@ -2005,7 +2005,7 @@ static int macsec_add_txsa(struct sk_buff *skb, struct genl_info *info)
return -EBUSY;
}
- tx_sa = kmalloc(sizeof(*tx_sa), GFP_KERNEL);
+ tx_sa = kmalloc_obj(*tx_sa, GFP_KERNEL);
if (!tx_sa) {
rtnl_unlock();
return -ENOMEM;
@@ -4013,7 +4013,7 @@ static int register_macsec_dev(struct net_device *real_dev,
if (!rxd) {
int err;
- rxd = kmalloc(sizeof(*rxd), GFP_KERNEL);
+ rxd = kmalloc_obj(*rxd, GFP_KERNEL);
if (!rxd)
return -ENOMEM;
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
index 4433b8e95b6a..1b4e327e26e1 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -163,7 +163,7 @@ static int macvlan_hash_add_source(struct macvlan_dev *vlan,
if (entry)
return 0;
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -1131,7 +1131,7 @@ static int macvlan_dev_netpoll_setup(struct net_device *dev)
struct netpoll *netpoll;
int err;
- netpoll = kzalloc(sizeof(*netpoll), GFP_KERNEL);
+ netpoll = kzalloc_obj(*netpoll, GFP_KERNEL);
err = -ENOMEM;
if (!netpoll)
goto out;
@@ -1249,7 +1249,7 @@ static int macvlan_port_create(struct net_device *dev)
if (netdev_is_rx_handler_busy(dev))
return -EBUSY;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (port == NULL)
return -ENOMEM;
diff --git a/drivers/net/mctp/mctp-i2c.c b/drivers/net/mctp/mctp-i2c.c
index 8043b57bdf25..03f51a66933c 100644
--- a/drivers/net/mctp/mctp-i2c.c
+++ b/drivers/net/mctp/mctp-i2c.c
@@ -154,7 +154,7 @@ static struct mctp_i2c_client *mctp_i2c_new_client(struct i2c_client *client)
goto err;
}
- mcli = kzalloc(sizeof(*mcli), GFP_KERNEL);
+ mcli = kzalloc_obj(*mcli, GFP_KERNEL);
if (!mcli) {
rc = -ENOMEM;
goto err;
diff --git a/drivers/net/mctp/mctp-i3c.c b/drivers/net/mctp/mctp-i3c.c
index 36c2405677c2..0814b65c2843 100644
--- a/drivers/net/mctp/mctp-i3c.c
+++ b/drivers/net/mctp/mctp-i3c.c
@@ -259,7 +259,7 @@ __must_hold(&busdevs_lock)
struct mctp_i3c_device *mi = NULL;
int rc;
- mi = kzalloc(sizeof(*mi), GFP_KERNEL);
+ mi = kzalloc_obj(*mi, GFP_KERNEL);
if (!mi) {
rc = -ENOMEM;
goto err;
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
index d144787b2947..73604c019b25 100644
--- a/drivers/net/netconsole.c
+++ b/drivers/net/netconsole.c
@@ -348,7 +348,7 @@ static struct netconsole_target *alloc_and_init(void)
{
struct netconsole_target *nt;
- nt = kzalloc(sizeof(*nt), GFP_KERNEL);
+ nt = kzalloc_obj(*nt, GFP_KERNEL);
if (!nt)
return nt;
@@ -1270,7 +1270,7 @@ static struct config_item *userdatum_make_item(struct config_group *group,
if (count_userdata_entries(nt) >= MAX_USERDATA_ITEMS)
return ERR_PTR(-ENOSPC);
- udm = kzalloc(sizeof(*udm), GFP_KERNEL);
+ udm = kzalloc_obj(*udm, GFP_KERNEL);
if (!udm)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/netdevsim/bpf.c b/drivers/net/netdevsim/bpf.c
index 5f17f68f3c08..badf08add94f 100644
--- a/drivers/net/netdevsim/bpf.c
+++ b/drivers/net/netdevsim/bpf.c
@@ -222,7 +222,7 @@ static int nsim_bpf_create_prog(struct nsim_dev *nsim_dev,
char name[16];
int ret;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return -ENOMEM;
@@ -501,7 +501,7 @@ nsim_bpf_map_alloc(struct netdevsim *ns, struct bpf_offloaded_map *offmap)
if (offmap->map.map_flags)
return -EINVAL;
- nmap = kzalloc(sizeof(*nmap), GFP_KERNEL_ACCOUNT);
+ nmap = kzalloc_obj(*nmap, GFP_KERNEL_ACCOUNT);
if (!nmap)
return -ENOMEM;
diff --git a/drivers/net/netdevsim/bus.c b/drivers/net/netdevsim/bus.c
index d16b95304aa7..8de96fe6c02a 100644
--- a/drivers/net/netdevsim/bus.c
+++ b/drivers/net/netdevsim/bus.c
@@ -451,7 +451,7 @@ nsim_bus_dev_new(unsigned int id, unsigned int port_count, unsigned int num_queu
struct nsim_bus_dev *nsim_bus_dev;
int err;
- nsim_bus_dev = kzalloc(sizeof(*nsim_bus_dev), GFP_KERNEL);
+ nsim_bus_dev = kzalloc_obj(*nsim_bus_dev, GFP_KERNEL);
if (!nsim_bus_dev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/netdevsim/dev.c b/drivers/net/netdevsim/dev.c
index f7b32446d3b8..a227c0b9fe4c 100644
--- a/drivers/net/netdevsim/dev.c
+++ b/drivers/net/netdevsim/dev.c
@@ -267,8 +267,8 @@ static ssize_t nsim_bus_dev_max_vfs_write(struct file *file,
if (val > NSIM_DEV_VF_PORT_INDEX_MAX - NSIM_DEV_VF_PORT_INDEX_BASE)
return -ERANGE;
- vfconfigs = kcalloc(val, sizeof(struct nsim_vf_config),
- GFP_KERNEL | __GFP_NOWARN);
+ vfconfigs = kzalloc_objs(struct nsim_vf_config, val,
+ GFP_KERNEL | __GFP_NOWARN);
if (!vfconfigs)
return -ENOMEM;
@@ -935,13 +935,13 @@ static int nsim_dev_traps_init(struct devlink *devlink)
struct nsim_trap_data *nsim_trap_data;
int err;
- nsim_trap_data = kzalloc(sizeof(*nsim_trap_data), GFP_KERNEL);
+ nsim_trap_data = kzalloc_obj(*nsim_trap_data, GFP_KERNEL);
if (!nsim_trap_data)
return -ENOMEM;
- nsim_trap_data->trap_items_arr = kcalloc(ARRAY_SIZE(nsim_traps_arr),
- sizeof(struct nsim_trap_item),
- GFP_KERNEL);
+ nsim_trap_data->trap_items_arr = kzalloc_objs(struct nsim_trap_item,
+ ARRAY_SIZE(nsim_traps_arr),
+ GFP_KERNEL);
if (!nsim_trap_data->trap_items_arr) {
err = -ENOMEM;
goto err_trap_data_free;
@@ -1348,7 +1348,7 @@ static int nsim_rate_node_new(struct devlink_rate *node, void **priv,
return -EOPNOTSUPP;
}
- nsim_node = kzalloc(sizeof(*nsim_node), GFP_KERNEL);
+ nsim_node = kzalloc_obj(*nsim_node, GFP_KERNEL);
if (!nsim_node)
return -ENOMEM;
@@ -1464,7 +1464,7 @@ static int __nsim_dev_port_add(struct nsim_dev *nsim_dev, enum nsim_dev_port_typ
if (type == NSIM_DEV_PORT_TYPE_VF && !nsim_dev_get_vfs(nsim_dev))
return -EINVAL;
- nsim_dev_port = kzalloc(sizeof(*nsim_dev_port), GFP_KERNEL);
+ nsim_dev_port = kzalloc_obj(*nsim_dev_port, GFP_KERNEL);
if (!nsim_dev_port)
return -ENOMEM;
nsim_dev_port->port_index = nsim_dev_port_index(type, port_index);
@@ -1652,9 +1652,9 @@ int nsim_drv_probe(struct nsim_bus_dev *nsim_bus_dev)
dev_set_drvdata(&nsim_bus_dev->dev, nsim_dev);
- nsim_dev->vfconfigs = kcalloc(nsim_bus_dev->max_vfs,
- sizeof(struct nsim_vf_config),
- GFP_KERNEL | __GFP_NOWARN);
+ nsim_dev->vfconfigs = kzalloc_objs(struct nsim_vf_config,
+ nsim_bus_dev->max_vfs,
+ GFP_KERNEL | __GFP_NOWARN);
if (!nsim_dev->vfconfigs) {
err = -ENOMEM;
goto err_devlink_unlock;
diff --git a/drivers/net/netdevsim/fib.c b/drivers/net/netdevsim/fib.c
index 16c382c42227..b1292a8c0ef1 100644
--- a/drivers/net/netdevsim/fib.c
+++ b/drivers/net/netdevsim/fib.c
@@ -277,7 +277,7 @@ nsim_fib4_rt_create(struct nsim_fib_data *data,
{
struct nsim_fib4_rt *fib4_rt;
- fib4_rt = kzalloc(sizeof(*fib4_rt), GFP_KERNEL);
+ fib4_rt = kzalloc_obj(*fib4_rt, GFP_KERNEL);
if (!fib4_rt)
return NULL;
@@ -497,7 +497,7 @@ static int nsim_fib6_rt_nh_add(struct nsim_fib6_rt *fib6_rt,
{
struct nsim_fib6_rt_nh *fib6_rt_nh;
- fib6_rt_nh = kzalloc(sizeof(*fib6_rt_nh), GFP_KERNEL);
+ fib6_rt_nh = kzalloc_obj(*fib6_rt_nh, GFP_KERNEL);
if (!fib6_rt_nh)
return -ENOMEM;
@@ -544,7 +544,7 @@ nsim_fib6_rt_create(struct nsim_fib_data *data,
int i = 0;
int err;
- fib6_rt = kzalloc(sizeof(*fib6_rt), GFP_KERNEL);
+ fib6_rt = kzalloc_obj(*fib6_rt, GFP_KERNEL);
if (!fib6_rt)
return ERR_PTR(-ENOMEM);
@@ -807,7 +807,7 @@ static int nsim_fib6_event_init(struct nsim_fib6_event *fib6_event,
nrt6 = fen6_info->nsiblings + 1;
- rt_arr = kcalloc(nrt6, sizeof(struct fib6_info *), GFP_ATOMIC);
+ rt_arr = kzalloc_objs(struct fib6_info *, nrt6, GFP_ATOMIC);
if (!rt_arr)
return -ENOMEM;
@@ -987,7 +987,7 @@ static int nsim_fib_event_schedule_work(struct nsim_fib_data *data,
*/
return NOTIFY_DONE;
- fib_event = kzalloc(sizeof(*fib_event), GFP_ATOMIC);
+ fib_event = kzalloc_obj(*fib_event, GFP_ATOMIC);
if (!fib_event)
goto err_fib_event_alloc;
@@ -1116,7 +1116,7 @@ static struct nsim_nexthop *nsim_nexthop_create(struct nsim_fib_data *data,
u64 occ = 0;
int i;
- nexthop = kzalloc(sizeof(*nexthop), GFP_KERNEL);
+ nexthop = kzalloc_obj(*nexthop, GFP_KERNEL);
if (!nexthop)
return ERR_PTR(-ENOMEM);
@@ -1556,7 +1556,7 @@ struct nsim_fib_data *nsim_fib_create(struct devlink *devlink,
struct nsim_dev *nsim_dev;
int err;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return ERR_PTR(-ENOMEM);
data->devlink = devlink;
diff --git a/drivers/net/netdevsim/hwstats.c b/drivers/net/netdevsim/hwstats.c
index 1abe48e35ca3..57b782aa1046 100644
--- a/drivers/net/netdevsim/hwstats.c
+++ b/drivers/net/netdevsim/hwstats.c
@@ -238,7 +238,7 @@ nsim_dev_hwstats_enable_ifindex(struct nsim_dev_hwstats *hwstats,
goto out_unlock_list;
}
- hwsdev = kzalloc(sizeof(*hwsdev), GFP_KERNEL);
+ hwsdev = kzalloc_obj(*hwsdev, GFP_KERNEL);
if (!hwsdev) {
err = -ENOMEM;
goto out_put_netdev;
diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c
index 6285fbefe38a..5ec028a00c62 100644
--- a/drivers/net/netdevsim/netdev.c
+++ b/drivers/net/netdevsim/netdev.c
@@ -723,7 +723,7 @@ static struct nsim_rq *nsim_queue_alloc(void)
{
struct nsim_rq *rq;
- rq = kzalloc(sizeof(*rq), GFP_KERNEL_ACCOUNT);
+ rq = kzalloc_obj(*rq, GFP_KERNEL_ACCOUNT);
if (!rq)
return NULL;
@@ -997,8 +997,7 @@ static int nsim_queue_init(struct netdevsim *ns)
struct net_device *dev = ns->netdev;
int i;
- ns->rq = kcalloc(dev->num_rx_queues, sizeof(*ns->rq),
- GFP_KERNEL_ACCOUNT);
+ ns->rq = kzalloc_objs(*ns->rq, dev->num_rx_queues, GFP_KERNEL_ACCOUNT);
if (!ns->rq)
return -ENOMEM;
diff --git a/drivers/net/netdevsim/psample.c b/drivers/net/netdevsim/psample.c
index f0c6477dd0ae..39250b9d201f 100644
--- a/drivers/net/netdevsim/psample.c
+++ b/drivers/net/netdevsim/psample.c
@@ -200,7 +200,7 @@ int nsim_dev_psample_init(struct nsim_dev *nsim_dev)
struct nsim_dev_psample *psample;
int err;
- psample = kzalloc(sizeof(*psample), GFP_KERNEL);
+ psample = kzalloc_obj(*psample, GFP_KERNEL);
if (!psample)
return -ENOMEM;
nsim_dev->psample = psample;
diff --git a/drivers/net/netkit.c b/drivers/net/netkit.c
index 0a2fef7caccb..5c0e01396e06 100644
--- a/drivers/net/netkit.c
+++ b/drivers/net/netkit.c
@@ -796,7 +796,7 @@ int netkit_link_attach(const union bpf_attr *attr, struct bpf_prog *prog)
ret = PTR_ERR(dev);
goto out;
}
- nkl = kzalloc(sizeof(*nkl), GFP_KERNEL_ACCOUNT);
+ nkl = kzalloc_obj(*nkl, GFP_KERNEL_ACCOUNT);
if (!nkl) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/net/ovpn/bind.c b/drivers/net/ovpn/bind.c
index 24d2788a277e..e42b60cd04a9 100644
--- a/drivers/net/ovpn/bind.c
+++ b/drivers/net/ovpn/bind.c
@@ -32,7 +32,7 @@ struct ovpn_bind *ovpn_bind_from_sockaddr(const struct sockaddr_storage *ss)
else
return ERR_PTR(-EAFNOSUPPORT);
- bind = kzalloc(sizeof(*bind), GFP_ATOMIC);
+ bind = kzalloc_obj(*bind, GFP_ATOMIC);
if (unlikely(!bind))
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ovpn/crypto_aead.c b/drivers/net/ovpn/crypto_aead.c
index 2cca759feffa..de335ab81948 100644
--- a/drivers/net/ovpn/crypto_aead.c
+++ b/drivers/net/ovpn/crypto_aead.c
@@ -328,7 +328,7 @@ ovpn_aead_crypto_key_slot_new(const struct ovpn_key_config *kc)
return ERR_PTR(-EINVAL);
/* build the key slot */
- ks = kmalloc(sizeof(*ks), GFP_KERNEL);
+ ks = kmalloc_obj(*ks, GFP_KERNEL);
if (!ks)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ovpn/main.c b/drivers/net/ovpn/main.c
index 1bb1afe766a4..4554b0f8a409 100644
--- a/drivers/net/ovpn/main.c
+++ b/drivers/net/ovpn/main.c
@@ -57,7 +57,7 @@ static int ovpn_mp_alloc(struct ovpn_priv *ovpn)
/* the peer container is fairly large, therefore we allocate it only in
* MP mode
*/
- ovpn->peers = kzalloc(sizeof(*ovpn->peers), GFP_KERNEL);
+ ovpn->peers = kzalloc_obj(*ovpn->peers, GFP_KERNEL);
if (!ovpn->peers)
return -ENOMEM;
diff --git a/drivers/net/ovpn/peer.c b/drivers/net/ovpn/peer.c
index 0463b5b0542f..bac34068f0fc 100644
--- a/drivers/net/ovpn/peer.c
+++ b/drivers/net/ovpn/peer.c
@@ -95,7 +95,7 @@ struct ovpn_peer *ovpn_peer_new(struct ovpn_priv *ovpn, u32 id)
int ret;
/* alloc and init peer object */
- peer = kzalloc(sizeof(*peer), GFP_KERNEL);
+ peer = kzalloc_obj(*peer, GFP_KERNEL);
if (!peer)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ovpn/socket.c b/drivers/net/ovpn/socket.c
index 448cee3b3f9f..7be493f78440 100644
--- a/drivers/net/ovpn/socket.c
+++ b/drivers/net/ovpn/socket.c
@@ -191,7 +191,7 @@ struct ovpn_socket *ovpn_socket_new(struct socket *sock, struct ovpn_peer *peer)
/* socket is not owned: attach to this ovpn instance */
- ovpn_sock = kzalloc(sizeof(*ovpn_sock), GFP_KERNEL);
+ ovpn_sock = kzalloc_obj(*ovpn_sock, GFP_KERNEL);
if (!ovpn_sock) {
ovpn_sock = ERR_PTR(-ENOMEM);
goto sock_release;
diff --git a/drivers/net/pcs/pcs-lynx.c b/drivers/net/pcs/pcs-lynx.c
index 73e1364ad1ed..abf521f063cf 100644
--- a/drivers/net/pcs/pcs-lynx.c
+++ b/drivers/net/pcs/pcs-lynx.c
@@ -288,7 +288,7 @@ static struct phylink_pcs *lynx_pcs_create(struct mdio_device *mdio)
struct lynx_pcs *lynx;
int i;
- lynx = kzalloc(sizeof(*lynx), GFP_KERNEL);
+ lynx = kzalloc_obj(*lynx, GFP_KERNEL);
if (!lynx)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/pcs/pcs-mtk-lynxi.c b/drivers/net/pcs/pcs-mtk-lynxi.c
index 44006bb6ac0b..5587d572dcbc 100644
--- a/drivers/net/pcs/pcs-mtk-lynxi.c
+++ b/drivers/net/pcs/pcs-mtk-lynxi.c
@@ -334,7 +334,7 @@ struct phylink_pcs *mtk_pcs_lynxi_create(struct device *dev,
dev_dbg(dev, "MediaTek LynxI SGMII PCS (id 0x%08x, ver 0x%04x)\n", id,
ver);
- mpcs = kzalloc(sizeof(*mpcs), GFP_KERNEL);
+ mpcs = kzalloc_obj(*mpcs, GFP_KERNEL);
if (!mpcs)
return NULL;
diff --git a/drivers/net/pcs/pcs-rzn1-miic.c b/drivers/net/pcs/pcs-rzn1-miic.c
index 8d7f82c1df2f..4de8c426787e 100644
--- a/drivers/net/pcs/pcs-rzn1-miic.c
+++ b/drivers/net/pcs/pcs-rzn1-miic.c
@@ -487,7 +487,7 @@ struct phylink_pcs *miic_create(struct device *dev, struct device_node *np)
return ERR_PTR(-EINVAL);
}
- miic_port = kzalloc(sizeof(*miic_port), GFP_KERNEL);
+ miic_port = kzalloc_obj(*miic_port, GFP_KERNEL);
if (!miic_port) {
put_device(&pdev->dev);
return ERR_PTR(-ENOMEM);
@@ -679,8 +679,8 @@ static int miic_parse_dt(struct miic *miic, u32 *mode_cfg)
s8 *dt_val;
u32 conf;
- dt_val = kmalloc_array(miic->of_data->conf_conv_count,
- sizeof(*dt_val), GFP_KERNEL);
+ dt_val = kmalloc_objs(*dt_val, miic->of_data->conf_conv_count,
+ GFP_KERNEL);
if (!dt_val)
return -ENOMEM;
diff --git a/drivers/net/pcs/pcs-xpcs.c b/drivers/net/pcs/pcs-xpcs.c
index 9679f2b35a44..8566e6ad64e9 100644
--- a/drivers/net/pcs/pcs-xpcs.c
+++ b/drivers/net/pcs/pcs-xpcs.c
@@ -1528,7 +1528,7 @@ static struct dw_xpcs *xpcs_create_data(struct mdio_device *mdiodev)
{
struct dw_xpcs *xpcs;
- xpcs = kzalloc(sizeof(*xpcs), GFP_KERNEL);
+ xpcs = kzalloc_obj(*xpcs, GFP_KERNEL);
if (!xpcs)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/phy/as21xxx.c b/drivers/net/phy/as21xxx.c
index 005277360656..d3954ea6b1dd 100644
--- a/drivers/net/phy/as21xxx.c
+++ b/drivers/net/phy/as21xxx.c
@@ -907,7 +907,7 @@ static int as21xxx_match_phy_device(struct phy_device *phydev,
return phy_id == phydrv->phy_id;
/* Allocate temp priv and load the firmware */
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/net/phy/dp83640.c b/drivers/net/phy/dp83640.c
index b950acc9c49b..a56f4302840f 100644
--- a/drivers/net/phy/dp83640.c
+++ b/drivers/net/phy/dp83640.c
@@ -1027,13 +1027,12 @@ static struct dp83640_clock *dp83640_clock_get_bus(struct mii_bus *bus)
if (clock)
goto out;
- clock = kzalloc(sizeof(struct dp83640_clock), GFP_KERNEL);
+ clock = kzalloc_obj(struct dp83640_clock, GFP_KERNEL);
if (!clock)
goto out;
- clock->caps.pin_config = kcalloc(DP83640_N_PINS,
- sizeof(struct ptp_pin_desc),
- GFP_KERNEL);
+ clock->caps.pin_config = kzalloc_objs(struct ptp_pin_desc,
+ DP83640_N_PINS, GFP_KERNEL);
if (!clock->caps.pin_config) {
kfree(clock);
clock = NULL;
@@ -1412,7 +1411,7 @@ static int dp83640_probe(struct phy_device *phydev)
if (!clock)
goto no_clock;
- dp83640 = kzalloc(sizeof(struct dp83640_private), GFP_KERNEL);
+ dp83640 = kzalloc_obj(struct dp83640_private, GFP_KERNEL);
if (!dp83640)
goto no_memory;
diff --git a/drivers/net/phy/mdio_device.c b/drivers/net/phy/mdio_device.c
index 65636070a222..172fbfcb215c 100644
--- a/drivers/net/phy/mdio_device.c
+++ b/drivers/net/phy/mdio_device.c
@@ -41,7 +41,7 @@ struct mdio_device *mdio_device_create(struct mii_bus *bus, int addr)
struct mdio_device *mdiodev;
/* We allocate the device, and initialize the default values */
- mdiodev = kzalloc(sizeof(*mdiodev), GFP_KERNEL);
+ mdiodev = kzalloc_obj(*mdiodev, GFP_KERNEL);
if (!mdiodev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
index 663dcdc92204..5ef9248c6b49 100644
--- a/drivers/net/phy/micrel.c
+++ b/drivers/net/phy/micrel.c
@@ -4114,7 +4114,7 @@ static void lan8814_get_rx_ts(struct kszphy_ptp_priv *ptp_priv)
u32 reg;
do {
- rx_ts = kzalloc(sizeof(*rx_ts), GFP_KERNEL);
+ rx_ts = kzalloc_obj(*rx_ts, GFP_KERNEL);
if (!rx_ts)
return;
diff --git a/drivers/net/phy/microchip_rds_ptp.c b/drivers/net/phy/microchip_rds_ptp.c
index f5f2928e705f..9307df6f6d11 100644
--- a/drivers/net/phy/microchip_rds_ptp.c
+++ b/drivers/net/phy/microchip_rds_ptp.c
@@ -999,7 +999,7 @@ static struct mchp_rds_ptp_rx_ts
if (rc < 0)
goto error;
- rx_ts = kmalloc(sizeof(*rx_ts), GFP_KERNEL);
+ rx_ts = kmalloc_obj(*rx_ts, GFP_KERNEL);
if (!rx_ts)
return NULL;
diff --git a/drivers/net/phy/mii_timestamper.c b/drivers/net/phy/mii_timestamper.c
index 51ae0593a04f..259ed30897c7 100644
--- a/drivers/net/phy/mii_timestamper.c
+++ b/drivers/net/phy/mii_timestamper.c
@@ -28,7 +28,7 @@ int register_mii_tstamp_controller(struct device *device,
{
struct mii_timestamping_desc *desc;
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
return -ENOMEM;
diff --git a/drivers/net/phy/mscc/mscc_macsec.c b/drivers/net/phy/mscc/mscc_macsec.c
index 9a38a29cf397..ed0d445ce1e1 100644
--- a/drivers/net/phy/mscc/mscc_macsec.c
+++ b/drivers/net/phy/mscc/mscc_macsec.c
@@ -610,7 +610,7 @@ static struct macsec_flow *vsc8584_macsec_alloc_flow(struct vsc8531_private *pri
if (index == MSCC_MS_MAX_FLOWS)
return ERR_PTR(-ENOMEM);
- flow = kzalloc(sizeof(*flow), GFP_KERNEL);
+ flow = kzalloc_obj(*flow, GFP_KERNEL);
if (!flow)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/phy/nxp-c45-tja11xx-macsec.c b/drivers/net/phy/nxp-c45-tja11xx-macsec.c
index fc897ba79b03..21519a2d9f85 100644
--- a/drivers/net/phy/nxp-c45-tja11xx-macsec.c
+++ b/drivers/net/phy/nxp-c45-tja11xx-macsec.c
@@ -431,7 +431,7 @@ static struct nxp_c45_sa *nxp_c45_sa_alloc(struct list_head *sa_list, void *sa,
return ERR_PTR(-ENOSPC);
}
- tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
return ERR_PTR(-ENOMEM);
@@ -991,7 +991,7 @@ static int nxp_c45_mdo_add_secy(struct macsec_context *ctx)
if (idx == TX_SC_MAX)
return -ENOSPC;
- phy_secy = kzalloc(sizeof(*phy_secy), GFP_KERNEL);
+ phy_secy = kzalloc_obj(*phy_secy, GFP_KERNEL);
if (!phy_secy)
return -ENOMEM;
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 13dd1691886d..376bfa923349 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -736,7 +736,7 @@ int phy_ethtool_set_plca_cfg(struct phy_device *phydev,
goto out;
}
- curr_plca_cfg = kmalloc(sizeof(*curr_plca_cfg), GFP_KERNEL);
+ curr_plca_cfg = kmalloc_obj(*curr_plca_cfg, GFP_KERNEL);
if (!curr_plca_cfg) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 9b8eaac63b90..52c2ff7fc6ae 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -438,7 +438,7 @@ static SIMPLE_DEV_PM_OPS(mdio_bus_phy_pm_ops, mdio_bus_phy_suspend,
static int phy_register_fixup(const char *bus_id, u32 phy_uid, u32 phy_uid_mask,
int (*run)(struct phy_device *))
{
- struct phy_fixup *fixup = kzalloc(sizeof(*fixup), GFP_KERNEL);
+ struct phy_fixup *fixup = kzalloc_obj(*fixup, GFP_KERNEL);
if (!fixup)
return -ENOMEM;
@@ -754,7 +754,7 @@ struct phy_device *phy_device_create(struct mii_bus *bus, int addr, u32 phy_id,
int ret = 0;
/* We allocate the device, and initialize the default values */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/phy/phy_led_triggers.c b/drivers/net/phy/phy_led_triggers.c
index 60893691d4c3..7821fe19934c 100644
--- a/drivers/net/phy/phy_led_triggers.c
+++ b/drivers/net/phy/phy_led_triggers.c
@@ -93,8 +93,7 @@ int phy_led_triggers_register(struct phy_device *phy)
if (!phy->phy_num_led_triggers)
return 0;
- phy->led_link_trigger = kzalloc(sizeof(*phy->led_link_trigger),
- GFP_KERNEL);
+ phy->led_link_trigger = kzalloc_obj(*phy->led_link_trigger, GFP_KERNEL);
if (!phy->led_link_trigger) {
err = -ENOMEM;
goto out_clear;
@@ -104,9 +103,9 @@ int phy_led_triggers_register(struct phy_device *phy)
if (err)
goto out_free_link;
- phy->phy_led_triggers = kcalloc(phy->phy_num_led_triggers,
- sizeof(struct phy_led_trigger),
- GFP_KERNEL);
+ phy->phy_led_triggers = kzalloc_objs(struct phy_led_trigger,
+ phy->phy_num_led_triggers,
+ GFP_KERNEL);
if (!phy->phy_led_triggers) {
err = -ENOMEM;
goto out_unreg_link;
diff --git a/drivers/net/phy/phy_link_topology.c b/drivers/net/phy/phy_link_topology.c
index 0e9e987f37dd..ed15599dd38d 100644
--- a/drivers/net/phy/phy_link_topology.c
+++ b/drivers/net/phy/phy_link_topology.c
@@ -15,7 +15,7 @@ static int netdev_alloc_phy_link_topology(struct net_device *dev)
{
struct phy_link_topology *topo;
- topo = kzalloc(sizeof(*topo), GFP_KERNEL);
+ topo = kzalloc_obj(*topo, GFP_KERNEL);
if (!topo)
return -ENOMEM;
@@ -43,7 +43,7 @@ int phy_link_topo_add_phy(struct net_device *dev,
topo = dev->link_topo;
}
- pdn = kzalloc(sizeof(*pdn), GFP_KERNEL);
+ pdn = kzalloc_obj(*pdn, GFP_KERNEL);
if (!pdn)
return -ENOMEM;
diff --git a/drivers/net/phy/phy_package.c b/drivers/net/phy/phy_package.c
index 3024da0bbf7b..3137a8fecf21 100644
--- a/drivers/net/phy/phy_package.c
+++ b/drivers/net/phy/phy_package.c
@@ -219,7 +219,7 @@ int phy_package_join(struct phy_device *phydev, int base_addr, size_t priv_size)
shared = bus->shared[base_addr];
if (!shared) {
ret = -ENOMEM;
- shared = kzalloc(sizeof(*shared), GFP_KERNEL);
+ shared = kzalloc_obj(*shared, GFP_KERNEL);
if (!shared)
goto err_unlock;
if (priv_size) {
diff --git a/drivers/net/phy/phy_port.c b/drivers/net/phy/phy_port.c
index 63d1bb154dc7..cae133a25fb0 100644
--- a/drivers/net/phy/phy_port.c
+++ b/drivers/net/phy/phy_port.c
@@ -19,7 +19,7 @@ struct phy_port *phy_port_alloc(void)
{
struct phy_port *port;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return NULL;
diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c
index e1f01d7fc4da..f21a69e34d1c 100644
--- a/drivers/net/phy/phylink.c
+++ b/drivers/net/phy/phylink.c
@@ -1853,7 +1853,7 @@ struct phylink *phylink_create(struct phylink_config *config,
return ERR_PTR(-EINVAL);
}
- pl = kzalloc(sizeof(*pl), GFP_KERNEL);
+ pl = kzalloc_obj(*pl, GFP_KERNEL);
if (!pl)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/phy/sfp-bus.c b/drivers/net/phy/sfp-bus.c
index b945d75966d5..07175bf3ef60 100644
--- a/drivers/net/phy/sfp-bus.c
+++ b/drivers/net/phy/sfp-bus.c
@@ -388,7 +388,7 @@ static struct sfp_bus *sfp_bus_get(const struct fwnode_handle *fwnode)
{
struct sfp_bus *sfp, *new, *found = NULL;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
mutex_lock(&sfp_mutex);
diff --git a/drivers/net/phy/sfp.c b/drivers/net/phy/sfp.c
index 43aefdd8b70f..42a9c93f03b3 100644
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
@@ -3029,7 +3029,7 @@ static struct sfp *sfp_alloc(struct device *dev)
{
struct sfp *sfp;
- sfp = kzalloc(sizeof(*sfp), GFP_KERNEL);
+ sfp = kzalloc_obj(*sfp, GFP_KERNEL);
if (!sfp)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/ppp/bsd_comp.c b/drivers/net/ppp/bsd_comp.c
index f385b759d5cf..26bfa0feb7f5 100644
--- a/drivers/net/ppp/bsd_comp.c
+++ b/drivers/net/ppp/bsd_comp.c
@@ -395,8 +395,7 @@ static void *bsd_alloc (unsigned char *options, int opt_len, int decomp)
* Allocate the main control structure for this instance.
*/
maxmaxcode = MAXCODE(bits);
- db = kzalloc(sizeof (struct bsd_db),
- GFP_KERNEL);
+ db = kzalloc_obj(struct bsd_db, GFP_KERNEL);
if (!db)
{
return NULL;
diff --git a/drivers/net/ppp/ppp_async.c b/drivers/net/ppp/ppp_async.c
index c97406c6004d..ead937d95cd8 100644
--- a/drivers/net/ppp/ppp_async.c
+++ b/drivers/net/ppp/ppp_async.c
@@ -163,7 +163,7 @@ ppp_asynctty_open(struct tty_struct *tty)
return -EOPNOTSUPP;
err = -ENOMEM;
- ap = kzalloc(sizeof(*ap), GFP_KERNEL);
+ ap = kzalloc_obj(*ap, GFP_KERNEL);
if (!ap)
goto out;
diff --git a/drivers/net/ppp/ppp_deflate.c b/drivers/net/ppp/ppp_deflate.c
index d93aeacc0dba..1d8370d2f098 100644
--- a/drivers/net/ppp/ppp_deflate.c
+++ b/drivers/net/ppp/ppp_deflate.c
@@ -97,8 +97,7 @@ static void *z_comp_alloc(unsigned char *options, int opt_len)
if (w_size < DEFLATE_MIN_SIZE || w_size > DEFLATE_MAX_SIZE)
return NULL;
- state = kzalloc(sizeof(*state),
- GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state == NULL)
return NULL;
@@ -313,7 +312,7 @@ static void *z_decomp_alloc(unsigned char *options, int opt_len)
if (w_size < DEFLATE_MIN_SIZE || w_size > DEFLATE_MAX_SIZE)
return NULL;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state == NULL)
return NULL;
diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c
index f8814d7be6f1..fdf96999ba18 100644
--- a/drivers/net/ppp/ppp_generic.c
+++ b/drivers/net/ppp/ppp_generic.c
@@ -2926,7 +2926,7 @@ int ppp_register_net_channel(struct net *net, struct ppp_channel *chan)
struct channel *pch;
struct ppp_net *pn;
- pch = kzalloc(sizeof(struct channel), GFP_KERNEL);
+ pch = kzalloc_obj(struct channel, GFP_KERNEL);
if (!pch)
return -ENOMEM;
@@ -3277,7 +3277,7 @@ ppp_register_compressor(struct compressor *cp)
if (find_comp_entry(cp->compress_proto))
goto out;
ret = -ENOMEM;
- ce = kmalloc(sizeof(struct compressor_entry), GFP_ATOMIC);
+ ce = kmalloc_obj(struct compressor_entry, GFP_ATOMIC);
if (!ce)
goto out;
ret = 0;
diff --git a/drivers/net/ppp/ppp_mppe.c b/drivers/net/ppp/ppp_mppe.c
index 630cbf71c147..eacfe50b6955 100644
--- a/drivers/net/ppp/ppp_mppe.c
+++ b/drivers/net/ppp/ppp_mppe.c
@@ -158,7 +158,7 @@ static void *mppe_alloc(unsigned char *options, int optlen)
fips_enabled)
return NULL;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (state == NULL)
return NULL;
diff --git a/drivers/net/ppp/ppp_synctty.c b/drivers/net/ppp/ppp_synctty.c
index 9c4932198931..f49e60985171 100644
--- a/drivers/net/ppp/ppp_synctty.c
+++ b/drivers/net/ppp/ppp_synctty.c
@@ -162,7 +162,7 @@ ppp_sync_open(struct tty_struct *tty)
if (tty->ops->write == NULL)
return -EOPNOTSUPP;
- ap = kzalloc(sizeof(*ap), GFP_KERNEL);
+ ap = kzalloc_obj(*ap, GFP_KERNEL);
err = -ENOMEM;
if (!ap)
goto out;
diff --git a/drivers/net/pse-pd/pd692x0.c b/drivers/net/pse-pd/pd692x0.c
index 134435e90073..ef130eb75212 100644
--- a/drivers/net/pse-pd/pd692x0.c
+++ b/drivers/net/pse-pd/pd692x0.c
@@ -646,9 +646,9 @@ pd692x0_pi_get_pw_limit_ranges(struct pse_controller_dev *pcdev, int id,
int i;
pw_table = pd692x0_class_pw_table;
- c33_pw_limit_ranges = kcalloc(PD692X0_CLASS_PW_TABLE_SIZE,
- sizeof(*c33_pw_limit_ranges),
- GFP_KERNEL);
+ c33_pw_limit_ranges = kzalloc_objs(*c33_pw_limit_ranges,
+ PD692X0_CLASS_PW_TABLE_SIZE,
+ GFP_KERNEL);
if (!c33_pw_limit_ranges)
return -ENOMEM;
@@ -1259,7 +1259,7 @@ static int pd692x0_setup_pi_matrix(struct pse_controller_dev *pcdev)
struct pd692x0_manager *manager;
int ret;
- manager = kcalloc(PD692X0_MAX_MANAGERS, sizeof(*manager), GFP_KERNEL);
+ manager = kzalloc_objs(*manager, PD692X0_MAX_MANAGERS, GFP_KERNEL);
if (!manager)
return -ENOMEM;
diff --git a/drivers/net/pse-pd/pse_core.c b/drivers/net/pse-pd/pse_core.c
index 23eb3c9d0bcd..ccbcda0cc4a2 100644
--- a/drivers/net/pse-pd/pse_core.c
+++ b/drivers/net/pse-pd/pse_core.c
@@ -162,7 +162,7 @@ static int of_load_pse_pis(struct pse_controller_dev *pcdev)
if (!np)
return -ENODEV;
- pcdev->pi = kcalloc(pcdev->nr_lines, sizeof(*pcdev->pi), GFP_KERNEL);
+ pcdev->pi = kzalloc_objs(*pcdev->pi, pcdev->nr_lines, GFP_KERNEL);
if (!pcdev->pi)
return -ENOMEM;
@@ -1408,7 +1408,7 @@ pse_control_get_internal(struct pse_controller_dev *pcdev, unsigned int index,
}
}
- psec = kzalloc(sizeof(*psec), GFP_KERNEL);
+ psec = kzalloc_obj(*psec, GFP_KERNEL);
if (!psec)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/pse-pd/tps23881.c b/drivers/net/pse-pd/tps23881.c
index 76ec1555d60d..465b6cfa6253 100644
--- a/drivers/net/pse-pd/tps23881.c
+++ b/drivers/net/pse-pd/tps23881.c
@@ -523,8 +523,7 @@ tps23881_pi_get_pw_limit_ranges(struct pse_controller_dev *pcdev, int id,
{
struct ethtool_c33_pse_pw_limit_range *c33_pw_limit_ranges;
- c33_pw_limit_ranges = kzalloc(sizeof(*c33_pw_limit_ranges),
- GFP_KERNEL);
+ c33_pw_limit_ranges = kzalloc_obj(*c33_pw_limit_ranges, GFP_KERNEL);
if (!c33_pw_limit_ranges)
return -ENOMEM;
diff --git a/drivers/net/rionet.c b/drivers/net/rionet.c
index 318a0ef1af50..09fbb4ce8e38 100644
--- a/drivers/net/rionet.c
+++ b/drivers/net/rionet.c
@@ -603,7 +603,7 @@ static int rionet_add_dev(struct device *dev, struct subsys_interface *sif)
rnet = netdev_priv(nets[netid].ndev);
- peer = kzalloc(sizeof(*peer), GFP_KERNEL);
+ peer = kzalloc_obj(*peer, GFP_KERNEL);
if (!peer) {
rc = -ENOMEM;
goto out;
diff --git a/drivers/net/slip/slhc.c b/drivers/net/slip/slhc.c
index ee9fd3a94b96..98c4d5925694 100644
--- a/drivers/net/slip/slhc.c
+++ b/drivers/net/slip/slhc.c
@@ -98,7 +98,7 @@ slhc_init(int rslots, int tslots)
if (rslots < 0 || rslots > 255 || tslots < 0 || tslots > 255)
return ERR_PTR(-EINVAL);
- comp = kzalloc(sizeof(struct slcompress), GFP_KERNEL);
+ comp = kzalloc_obj(struct slcompress, GFP_KERNEL);
if (! comp)
goto out_fail;
diff --git a/drivers/net/slip/slip.c b/drivers/net/slip/slip.c
index c889fb374703..4019c6b4dafc 100644
--- a/drivers/net/slip/slip.c
+++ b/drivers/net/slip/slip.c
@@ -1297,8 +1297,7 @@ static int __init slip_init(void)
printk(KERN_INFO "SLIP linefill/keepalive option.\n");
#endif
- slip_devs = kcalloc(slip_maxdev, sizeof(struct net_device *),
- GFP_KERNEL);
+ slip_devs = kzalloc_objs(struct net_device *, slip_maxdev, GFP_KERNEL);
if (!slip_devs)
return -ENOMEM;
diff --git a/drivers/net/tap.c b/drivers/net/tap.c
index 1197f245e873..aee69767342e 100644
--- a/drivers/net/tap.c
+++ b/drivers/net/tap.c
@@ -1197,7 +1197,7 @@ int tap_queue_resize(struct tap_dev *tap)
int n = tap->numqueues;
int ret, i = 0;
- rings = kmalloc_array(n, sizeof(*rings), GFP_KERNEL);
+ rings = kmalloc_objs(*rings, n, GFP_KERNEL);
if (!rings)
return -ENOMEM;
@@ -1217,7 +1217,7 @@ static int tap_list_add(dev_t major, const char *device_name)
{
struct major_info *tap_major;
- tap_major = kzalloc(sizeof(*tap_major), GFP_ATOMIC);
+ tap_major = kzalloc_obj(*tap_major, GFP_ATOMIC);
if (!tap_major)
return -ENOMEM;
diff --git a/drivers/net/team/team_core.c b/drivers/net/team/team_core.c
index c08a5c1bd6e4..28c09ffd34b8 100644
--- a/drivers/net/team/team_core.c
+++ b/drivers/net/team/team_core.c
@@ -157,7 +157,7 @@ static int __team_option_inst_add(struct team *team, struct team_option *option,
array_size = 1; /* No array but still need one instance */
for (i = 0; i < array_size; i++) {
- opt_inst = kmalloc(sizeof(*opt_inst), GFP_KERNEL);
+ opt_inst = kmalloc_obj(*opt_inst, GFP_KERNEL);
if (!opt_inst)
return -ENOMEM;
opt_inst->option = option;
@@ -256,8 +256,7 @@ static int __team_options_register(struct team *team,
struct team_option **dst_opts;
int err;
- dst_opts = kcalloc(option_count, sizeof(struct team_option *),
- GFP_KERNEL);
+ dst_opts = kzalloc_objs(struct team_option *, option_count, GFP_KERNEL);
if (!dst_opts)
return -ENOMEM;
for (i = 0; i < option_count; i++, option++) {
@@ -434,7 +433,7 @@ int team_mode_register(const struct team_mode *mode)
mode->priv_size > TEAM_MODE_PRIV_SIZE)
return -EINVAL;
- mitem = kmalloc(sizeof(*mitem), GFP_KERNEL);
+ mitem = kmalloc_obj(*mitem, GFP_KERNEL);
if (!mitem)
return -ENOMEM;
@@ -780,8 +779,7 @@ static int team_queue_override_init(struct team *team)
if (!queue_cnt)
return 0;
- listarr = kmalloc_array(queue_cnt, sizeof(struct list_head),
- GFP_KERNEL);
+ listarr = kmalloc_objs(struct list_head, queue_cnt, GFP_KERNEL);
if (!listarr)
return -ENOMEM;
team->qom_lists = listarr;
@@ -1017,7 +1015,7 @@ static int __team_port_enable_netpoll(struct team_port *port)
struct netpoll *np;
int err;
- np = kzalloc(sizeof(*np), GFP_KERNEL);
+ np = kzalloc_obj(*np, GFP_KERNEL);
if (!np)
return -ENOMEM;
diff --git a/drivers/net/team/team_mode_loadbalance.c b/drivers/net/team/team_mode_loadbalance.c
index b14538bde2f8..b50c479f06ce 100644
--- a/drivers/net/team/team_mode_loadbalance.c
+++ b/drivers/net/team/team_mode_loadbalance.c
@@ -259,7 +259,7 @@ static int __fprog_create(struct sock_fprog_kern **pfprog, u32 data_len,
if (data_len % sizeof(struct sock_filter))
return -EINVAL;
- fprog = kmalloc(sizeof(*fprog), GFP_KERNEL);
+ fprog = kmalloc_obj(*fprog, GFP_KERNEL);
if (!fprog)
return -ENOMEM;
fprog->filter = kmemdup(filter, data_len, GFP_KERNEL);
@@ -594,7 +594,7 @@ static int lb_init(struct team *team)
BUG_ON(!func);
rcu_assign_pointer(lb_priv->select_tx_port_func, func);
- lb_priv->ex = kzalloc(sizeof(*lb_priv->ex), GFP_KERNEL);
+ lb_priv->ex = kzalloc_obj(*lb_priv->ex, GFP_KERNEL);
if (!lb_priv->ex)
return -ENOMEM;
lb_priv->ex->team = team;
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 8192740357a0..fcddbeb6d36a 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -318,7 +318,7 @@ static struct tun_flow_entry *tun_flow_create(struct tun_struct *tun,
struct hlist_head *head,
u32 rxhash, u16 queue_index)
{
- struct tun_flow_entry *e = kmalloc(sizeof(*e), GFP_ATOMIC);
+ struct tun_flow_entry *e = kmalloc_obj(*e, GFP_ATOMIC);
if (e) {
netif_info(tun, tx_queued, tun->dev,
@@ -2228,7 +2228,7 @@ static int __tun_set_ebpf(struct tun_struct *tun,
struct tun_prog *old, *new = NULL;
if (prog) {
- new = kmalloc(sizeof(*new), GFP_KERNEL);
+ new = kmalloc_obj(*new, GFP_KERNEL);
if (!new)
return -ENOMEM;
new->prog = prog;
@@ -3605,7 +3605,7 @@ static int tun_queue_resize(struct tun_struct *tun)
int n = tun->numqueues + tun->numdisabled;
int ret, i;
- rings = kmalloc_array(n, sizeof(*rings), GFP_KERNEL);
+ rings = kmalloc_objs(*rings, n, GFP_KERNEL);
if (!rings)
return -ENOMEM;
diff --git a/drivers/net/usb/aqc111.c b/drivers/net/usb/aqc111.c
index 0722050dbe32..5ab60f7c90dd 100644
--- a/drivers/net/usb/aqc111.c
+++ b/drivers/net/usb/aqc111.c
@@ -703,7 +703,7 @@ static int aqc111_bind(struct usbnet *dev, struct usb_interface *intf)
return ret;
}
- aqc111_data = kzalloc(sizeof(*aqc111_data), GFP_KERNEL);
+ aqc111_data = kzalloc_obj(*aqc111_data, GFP_KERNEL);
if (!aqc111_data)
return -ENOMEM;
diff --git a/drivers/net/usb/asix_devices.c b/drivers/net/usb/asix_devices.c
index 7eb6e86adb16..ca8a9d04a16b 100644
--- a/drivers/net/usb/asix_devices.c
+++ b/drivers/net/usb/asix_devices.c
@@ -1314,7 +1314,7 @@ static int ax88178_bind(struct usbnet *dev, struct usb_interface *intf)
dev->rx_urb_size = 2048;
}
- dev->driver_priv = kzalloc(sizeof(struct asix_common_private), GFP_KERNEL);
+ dev->driver_priv = kzalloc_obj(struct asix_common_private, GFP_KERNEL);
if (!dev->driver_priv)
return -ENOMEM;
diff --git a/drivers/net/usb/ax88172a.c b/drivers/net/usb/ax88172a.c
index 3100fbe153c0..54c0ba627b50 100644
--- a/drivers/net/usb/ax88172a.c
+++ b/drivers/net/usb/ax88172a.c
@@ -165,7 +165,7 @@ static int ax88172a_bind(struct usbnet *dev, struct usb_interface *intf)
if (ret)
return ret;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/net/usb/ax88179_178a.c b/drivers/net/usb/ax88179_178a.c
index 0e9ae89b840e..46e6c4dcda47 100644
--- a/drivers/net/usb/ax88179_178a.c
+++ b/drivers/net/usb/ax88179_178a.c
@@ -1287,7 +1287,7 @@ static int ax88179_bind(struct usbnet *dev, struct usb_interface *intf)
if (ret < 0)
return ret;
- ax179_data = kzalloc(sizeof(*ax179_data), GFP_KERNEL);
+ ax179_data = kzalloc_obj(*ax179_data, GFP_KERNEL);
if (!ax179_data)
return -ENOMEM;
diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c
index 5d123df0a866..39e8063b1f5b 100644
--- a/drivers/net/usb/cdc_ncm.c
+++ b/drivers/net/usb/cdc_ncm.c
@@ -827,7 +827,7 @@ int cdc_ncm_bind_common(struct usbnet *dev, struct usb_interface *intf, u8 data_
u8 iface_no;
struct usb_cdc_parsed_header hdr;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/net/usb/cx82310_eth.c b/drivers/net/usb/cx82310_eth.c
index 79a47e2fd437..54199fde1c64 100644
--- a/drivers/net/usb/cx82310_eth.c
+++ b/drivers/net/usb/cx82310_eth.c
@@ -173,7 +173,7 @@ static int cx82310_bind(struct usbnet *dev, struct usb_interface *intf)
if (!dev->partial_data)
return -ENOMEM;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
ret = -ENOMEM;
goto err_partial;
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
index 1aeb36119d3f..1da216248896 100644
--- a/drivers/net/usb/hso.c
+++ b/drivers/net/usb/hso.c
@@ -2313,7 +2313,7 @@ static struct hso_device *hso_create_device(struct usb_interface *intf,
{
struct hso_device *hso_dev;
- hso_dev = kzalloc(sizeof(*hso_dev), GFP_KERNEL);
+ hso_dev = kzalloc_obj(*hso_dev, GFP_KERNEL);
if (!hso_dev)
return NULL;
@@ -2617,7 +2617,7 @@ static struct hso_device *hso_create_bulk_serial_device(
if (!hso_dev)
return NULL;
- serial = kzalloc(sizeof(*serial), GFP_KERNEL);
+ serial = kzalloc_obj(*serial, GFP_KERNEL);
if (!serial)
goto exit;
@@ -2626,13 +2626,12 @@ static struct hso_device *hso_create_bulk_serial_device(
if ((port & HSO_PORT_MASK) == HSO_PORT_MODEM) {
num_urbs = 2;
- serial->tiocmget = kzalloc(sizeof(struct hso_tiocmget),
- GFP_KERNEL);
+ serial->tiocmget = kzalloc_obj(struct hso_tiocmget, GFP_KERNEL);
if (!serial->tiocmget)
goto exit;
serial->tiocmget->serial_state_notification
- = kzalloc(sizeof(struct hso_serial_state_notification),
- GFP_KERNEL);
+ = kzalloc_obj(struct hso_serial_state_notification,
+ GFP_KERNEL);
if (!serial->tiocmget->serial_state_notification)
goto exit;
tiocmget = serial->tiocmget;
@@ -2711,7 +2710,7 @@ struct hso_device *hso_create_mux_serial_device(struct usb_interface *interface,
if (!hso_dev)
return NULL;
- serial = kzalloc(sizeof(*serial), GFP_KERNEL);
+ serial = kzalloc_obj(*serial, GFP_KERNEL);
if (!serial)
goto err_free_dev;
@@ -2755,7 +2754,7 @@ static void hso_free_shared_int(struct hso_shared_int *mux)
static
struct hso_shared_int *hso_create_shared_int(struct usb_interface *interface)
{
- struct hso_shared_int *mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ struct hso_shared_int *mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return NULL;
diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index 00397a807393..92ec3e73edff 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -682,7 +682,7 @@ static int lan78xx_read_stats(struct lan78xx_net *dev,
u32 *src;
u32 *dst;
- stats = kmalloc(sizeof(*stats), GFP_KERNEL);
+ stats = kmalloc_obj(*stats, GFP_KERNEL);
if (!stats)
return -ENOMEM;
@@ -3728,7 +3728,7 @@ static int lan78xx_bind(struct lan78xx_net *dev, struct usb_interface *intf)
int ret;
int i;
- dev->data[0] = (unsigned long)kzalloc(sizeof(*pdata), GFP_KERNEL);
+ dev->data[0] = (unsigned long) kzalloc_obj(*pdata, GFP_KERNEL);
pdata = (struct lan78xx_priv *)(dev->data[0]);
if (!pdata) {
diff --git a/drivers/net/usb/lg-vl600.c b/drivers/net/usb/lg-vl600.c
index b2495fa80171..21f6a4795295 100644
--- a/drivers/net/usb/lg-vl600.c
+++ b/drivers/net/usb/lg-vl600.c
@@ -56,7 +56,7 @@ struct vl600_state {
static int vl600_bind(struct usbnet *dev, struct usb_interface *intf)
{
int ret;
- struct vl600_state *s = kzalloc(sizeof(struct vl600_state), GFP_KERNEL);
+ struct vl600_state *s = kzalloc_obj(struct vl600_state, GFP_KERNEL);
if (!s)
return -ENOMEM;
diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c
index 7b6d6eb60709..4f539b5d509a 100644
--- a/drivers/net/usb/pegasus.c
+++ b/drivers/net/usb/pegasus.c
@@ -140,7 +140,7 @@ static int update_eth_regs_async(pegasus_t *pegasus)
struct urb *async_urb;
struct usb_ctrlrequest *req;
- req = kmalloc(sizeof(struct usb_ctrlrequest), GFP_ATOMIC);
+ req = kmalloc_obj(struct usb_ctrlrequest, GFP_ATOMIC);
if (req == NULL)
return ret;
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
index 8d36162f36df..c224d2ee107c 100644
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
@@ -9647,7 +9647,7 @@ static u8 __rtl_get_hw_ver(struct usb_device *udev)
int ret;
int i;
- tmp = kmalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kmalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
return 0;
diff --git a/drivers/net/usb/rtl8150.c b/drivers/net/usb/rtl8150.c
index 2f1f134b5b48..4cda0643afb6 100644
--- a/drivers/net/usb/rtl8150.c
+++ b/drivers/net/usb/rtl8150.c
@@ -187,7 +187,7 @@ static int async_set_registers(rtl8150_t *dev, u16 indx, u16 size, u16 reg)
struct urb *async_urb;
struct async_req *req;
- req = kmalloc(sizeof(struct async_req), GFP_ATOMIC);
+ req = kmalloc_obj(struct async_req, GFP_ATOMIC);
if (req == NULL)
return res;
async_urb = usb_alloc_urb(0, GFP_ATOMIC);
diff --git a/drivers/net/usb/sierra_net.c b/drivers/net/usb/sierra_net.c
index 3ca60ebdd468..87a10f5ab557 100644
--- a/drivers/net/usb/sierra_net.c
+++ b/drivers/net/usb/sierra_net.c
@@ -683,7 +683,7 @@ static int sierra_net_bind(struct usbnet *dev, struct usb_interface *intf)
return -ENODEV;
}
/* Initialize sierra private data */
- priv = kzalloc(sizeof *priv, GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/net/usb/smsc75xx.c b/drivers/net/usb/smsc75xx.c
index 1a61a8bcf5d3..8fb6bb58b589 100644
--- a/drivers/net/usb/smsc75xx.c
+++ b/drivers/net/usb/smsc75xx.c
@@ -1450,8 +1450,8 @@ static int smsc75xx_bind(struct usbnet *dev, struct usb_interface *intf)
return ret;
}
- dev->data[0] = (unsigned long)kzalloc(sizeof(struct smsc75xx_priv),
- GFP_KERNEL);
+ dev->data[0] = (unsigned long) kzalloc_obj(struct smsc75xx_priv,
+ GFP_KERNEL);
pdata = (struct smsc75xx_priv *)(dev->data[0]);
if (!pdata)
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
index 7ecf98d97493..df2c4c1f8c0b 100644
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -1157,7 +1157,7 @@ static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf)
return ret;
}
- pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
+ pdata = kzalloc_obj(*pdata, GFP_KERNEL);
if (!pdata)
return -ENOMEM;
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
index 8e44feaf7ff1..ed86ba87ca4e 100644
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -1377,8 +1377,7 @@ static int build_dma_sg(const struct sk_buff *skb, struct urb *urb)
return 0;
/* reserve one for zero packet */
- urb->sg = kmalloc_array(num_sgs + 1, sizeof(struct scatterlist),
- GFP_ATOMIC);
+ urb->sg = kmalloc_objs(struct scatterlist, num_sgs + 1, GFP_ATOMIC);
if (!urb->sg)
return -ENOMEM;
@@ -2234,7 +2233,7 @@ int usbnet_write_cmd_async(struct usbnet *dev, u8 cmd, u8 reqtype,
}
}
- req = kmalloc(sizeof(struct usb_ctrlrequest), GFP_ATOMIC);
+ req = kmalloc_obj(struct usb_ctrlrequest, GFP_ATOMIC);
if (!req)
goto fail_free_buf;
diff --git a/drivers/net/veth.c b/drivers/net/veth.c
index 9982412fd7f2..e35df717e65e 100644
--- a/drivers/net/veth.c
+++ b/drivers/net/veth.c
@@ -1434,8 +1434,8 @@ static int veth_alloc_queues(struct net_device *dev)
struct veth_priv *priv = netdev_priv(dev);
int i;
- priv->rq = kvcalloc(dev->num_rx_queues, sizeof(*priv->rq),
- GFP_KERNEL_ACCOUNT | __GFP_RETRY_MAYFAIL);
+ priv->rq = kvzalloc_objs(*priv->rq, dev->num_rx_queues,
+ GFP_KERNEL_ACCOUNT | __GFP_RETRY_MAYFAIL);
if (!priv->rq)
return -ENOMEM;
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index db88dcaefb20..31ed78712e43 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -3732,7 +3732,7 @@ static int virtnet_set_queues(struct virtnet_info *vi, u16 queue_pairs)
goto succ;
}
- mq = kzalloc(sizeof(*mq), GFP_KERNEL);
+ mq = kzalloc_obj(*mq, GFP_KERNEL);
if (!mq)
return -ENOMEM;
@@ -3799,7 +3799,7 @@ static void virtnet_rx_mode_work(struct work_struct *work)
if (!virtio_has_feature(vi->vdev, VIRTIO_NET_F_CTRL_RX))
return;
- promisc_allmulti = kzalloc(sizeof(*promisc_allmulti), GFP_KERNEL);
+ promisc_allmulti = kzalloc_obj(*promisc_allmulti, GFP_KERNEL);
if (!promisc_allmulti) {
dev_warn(&dev->dev, "Failed to set RX mode, no memory.\n");
return;
@@ -3885,7 +3885,7 @@ static int virtnet_vlan_rx_add_vid(struct net_device *dev,
__virtio16 *_vid __free(kfree) = NULL;
struct scatterlist sg;
- _vid = kzalloc(sizeof(*_vid), GFP_KERNEL);
+ _vid = kzalloc_obj(*_vid, GFP_KERNEL);
if (!_vid)
return -ENOMEM;
@@ -3905,7 +3905,7 @@ static int virtnet_vlan_rx_kill_vid(struct net_device *dev,
__virtio16 *_vid __free(kfree) = NULL;
struct scatterlist sg;
- _vid = kzalloc(sizeof(*_vid), GFP_KERNEL);
+ _vid = kzalloc_obj(*_vid, GFP_KERNEL);
if (!_vid)
return -ENOMEM;
@@ -4028,7 +4028,7 @@ static int virtnet_send_ctrl_coal_vq_cmd(struct virtnet_info *vi,
struct virtio_net_ctrl_coal_vq *coal_vq __free(kfree) = NULL;
struct scatterlist sgs;
- coal_vq = kzalloc(sizeof(*coal_vq), GFP_KERNEL);
+ coal_vq = kzalloc_obj(*coal_vq, GFP_KERNEL);
if (!coal_vq)
return -ENOMEM;
@@ -4987,7 +4987,7 @@ static int virtnet_get_hw_stats(struct virtnet_info *vi,
qnum += 1;
}
- req = kcalloc(qnum, sizeof(*req), GFP_KERNEL);
+ req = kzalloc_objs(*req, qnum, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -5127,7 +5127,7 @@ static int virtnet_send_tx_notf_coal_cmds(struct virtnet_info *vi,
struct scatterlist sgs_tx;
int i;
- coal_tx = kzalloc(sizeof(*coal_tx), GFP_KERNEL);
+ coal_tx = kzalloc_obj(*coal_tx, GFP_KERNEL);
if (!coal_tx)
return -ENOMEM;
@@ -5175,7 +5175,7 @@ static int virtnet_send_rx_notf_coal_cmds(struct virtnet_info *vi,
return 0;
}
- coal_rx = kzalloc(sizeof(*coal_rx), GFP_KERNEL);
+ coal_rx = kzalloc_obj(*coal_rx, GFP_KERNEL);
if (!coal_rx)
return -ENOMEM;
@@ -5738,7 +5738,7 @@ static int virtnet_set_guest_offloads(struct virtnet_info *vi, u64 offloads)
__virtio64 *_offloads __free(kfree) = NULL;
struct scatterlist sg;
- _offloads = kzalloc(sizeof(*_offloads), GFP_KERNEL);
+ _offloads = kzalloc_obj(*_offloads, GFP_KERNEL);
if (!_offloads)
return -ENOMEM;
@@ -5882,7 +5882,7 @@ static int virtnet_xsk_pool_enable(struct net_device *dev,
size = virtqueue_get_vring_size(rq->vq);
- rq->xsk_buffs = kvcalloc(size, sizeof(*rq->xsk_buffs), GFP_KERNEL);
+ rq->xsk_buffs = kvzalloc_objs(*rq->xsk_buffs, size, GFP_KERNEL);
if (!rq->xsk_buffs)
return -ENOMEM;
@@ -6395,14 +6395,14 @@ static int virtnet_find_vqs(struct virtnet_info *vi)
virtio_has_feature(vi->vdev, VIRTIO_NET_F_CTRL_VQ);
/* Allocate space for find_vqs parameters */
- vqs = kcalloc(total_vqs, sizeof(*vqs), GFP_KERNEL);
+ vqs = kzalloc_objs(*vqs, total_vqs, GFP_KERNEL);
if (!vqs)
goto err_vq;
- vqs_info = kcalloc(total_vqs, sizeof(*vqs_info), GFP_KERNEL);
+ vqs_info = kzalloc_objs(*vqs_info, total_vqs, GFP_KERNEL);
if (!vqs_info)
goto err_vqs_info;
if (!vi->big_packets || vi->mergeable_rx_bufs) {
- ctx = kcalloc(total_vqs, sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_objs(*ctx, total_vqs, GFP_KERNEL);
if (!ctx)
goto err_ctx;
} else {
@@ -6460,16 +6460,16 @@ static int virtnet_alloc_queues(struct virtnet_info *vi)
int i;
if (vi->has_cvq) {
- vi->ctrl = kzalloc(sizeof(*vi->ctrl), GFP_KERNEL);
+ vi->ctrl = kzalloc_obj(*vi->ctrl, GFP_KERNEL);
if (!vi->ctrl)
goto err_ctrl;
} else {
vi->ctrl = NULL;
}
- vi->sq = kcalloc(vi->max_queue_pairs, sizeof(*vi->sq), GFP_KERNEL);
+ vi->sq = kzalloc_objs(*vi->sq, vi->max_queue_pairs, GFP_KERNEL);
if (!vi->sq)
goto err_sq;
- vi->rq = kcalloc(vi->max_queue_pairs, sizeof(*vi->rq), GFP_KERNEL);
+ vi->rq = kzalloc_objs(*vi->rq, vi->max_queue_pairs, GFP_KERNEL);
if (!vi->rq)
goto err_rq;
@@ -7016,7 +7016,7 @@ static int virtnet_probe(struct virtio_device *vdev)
struct scatterlist sg;
__le64 v;
- stats_cap = kzalloc(sizeof(*stats_cap), GFP_KERNEL);
+ stats_cap = kzalloc_obj(*stats_cap, GFP_KERNEL);
if (!stats_cap) {
rtnl_unlock();
err = -ENOMEM;
diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c
index 571847a7f86d..8c009bcaa8e7 100644
--- a/drivers/net/vrf.c
+++ b/drivers/net/vrf.c
@@ -158,7 +158,7 @@ static struct vrf_map_elem *vrf_map_elem_alloc(gfp_t flags)
{
struct vrf_map_elem *me;
- me = kmalloc(sizeof(*me), flags);
+ me = kmalloc_obj(*me, flags);
if (!me)
return NULL;
diff --git a/drivers/net/vxlan/vxlan_core.c b/drivers/net/vxlan/vxlan_core.c
index 7bd0ae0a6a33..c1cf3eff4c1b 100644
--- a/drivers/net/vxlan/vxlan_core.c
+++ b/drivers/net/vxlan/vxlan_core.c
@@ -580,7 +580,7 @@ static int vxlan_fdb_append(struct vxlan_fdb *f,
if (rd)
return 0;
- rd = kmalloc(sizeof(*rd), GFP_ATOMIC);
+ rd = kmalloc_obj(*rd, GFP_ATOMIC);
if (rd == NULL)
return -ENOMEM;
@@ -774,7 +774,7 @@ static struct vxlan_fdb *vxlan_fdb_alloc(struct vxlan_dev *vxlan, const u8 *mac,
{
struct vxlan_fdb *f;
- f = kmalloc(sizeof(*f), GFP_ATOMIC);
+ f = kmalloc_obj(*f, GFP_ATOMIC);
if (!f)
return NULL;
memset(&f->key, 0, sizeof(f->key));
@@ -3578,7 +3578,7 @@ static struct vxlan_sock *vxlan_socket_create(struct net *net, bool ipv6,
ASSERT_RTNL();
- vs = kzalloc(sizeof(*vs), GFP_KERNEL);
+ vs = kzalloc_obj(*vs, GFP_KERNEL);
if (!vs)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/vxlan/vxlan_mdb.c b/drivers/net/vxlan/vxlan_mdb.c
index 816ab1aa0526..8f53ae776613 100644
--- a/drivers/net/vxlan/vxlan_mdb.c
+++ b/drivers/net/vxlan/vxlan_mdb.c
@@ -430,7 +430,7 @@ static int vxlan_mdb_config_src_entry_init(struct vxlan_mdb_config *cfg,
extack))
return -EINVAL;
- src = kzalloc(sizeof(*src), GFP_KERNEL);
+ src = kzalloc_obj(*src, GFP_KERNEL);
if (!src)
return -ENOMEM;
@@ -697,7 +697,7 @@ static int vxlan_mdb_remote_rdst_init(const struct vxlan_mdb_config *cfg,
struct vxlan_rdst *rd;
int err;
- rd = kzalloc(sizeof(*rd), GFP_KERNEL);
+ rd = kzalloc_obj(*rd, GFP_KERNEL);
if (!rd)
return -ENOMEM;
@@ -767,7 +767,7 @@ vxlan_mdb_remote_src_entry_add(struct vxlan_mdb_remote *remote,
{
struct vxlan_mdb_src_entry *ent;
- ent = kzalloc(sizeof(*ent), GFP_KERNEL);
+ ent = kzalloc_obj(*ent, GFP_KERNEL);
if (!ent)
return NULL;
@@ -1139,7 +1139,7 @@ static int vxlan_mdb_remote_add(const struct vxlan_mdb_config *cfg,
return -ENOENT;
}
- remote = kzalloc(sizeof(*remote), GFP_KERNEL);
+ remote = kzalloc_obj(*remote, GFP_KERNEL);
if (!remote)
return -ENOMEM;
@@ -1187,7 +1187,7 @@ vxlan_mdb_entry_get(struct vxlan_dev *vxlan,
if (mdb_entry)
return mdb_entry;
- mdb_entry = kzalloc(sizeof(*mdb_entry), GFP_KERNEL);
+ mdb_entry = kzalloc_obj(*mdb_entry, GFP_KERNEL);
if (!mdb_entry)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/vxlan/vxlan_vnifilter.c b/drivers/net/vxlan/vxlan_vnifilter.c
index cde897d92f24..726a34d16fa2 100644
--- a/drivers/net/vxlan/vxlan_vnifilter.c
+++ b/drivers/net/vxlan/vxlan_vnifilter.c
@@ -697,7 +697,7 @@ static struct vxlan_vni_node *vxlan_vni_alloc(struct vxlan_dev *vxlan,
{
struct vxlan_vni_node *vninode;
- vninode = kzalloc(sizeof(*vninode), GFP_KERNEL);
+ vninode = kzalloc_obj(*vninode, GFP_KERNEL);
if (!vninode)
return NULL;
vninode->stats = netdev_alloc_pcpu_stats(struct vxlan_vni_stats_pcpu);
@@ -925,7 +925,7 @@ int vxlan_vnigroup_init(struct vxlan_dev *vxlan)
struct vxlan_vni_group *vg;
int ret;
- vg = kzalloc(sizeof(*vg), GFP_KERNEL);
+ vg = kzalloc_obj(*vg, GFP_KERNEL);
if (!vg)
return -ENOMEM;
ret = rhashtable_init(&vg->vni_hash, &vxlan_vni_rht_params);
diff --git a/drivers/net/wan/c101.c b/drivers/net/wan/c101.c
index 8dd14d916c3a..82ba8dfa979b 100644
--- a/drivers/net/wan/c101.c
+++ b/drivers/net/wan/c101.c
@@ -313,7 +313,7 @@ static int __init c101_run(unsigned long irq, unsigned long winbase)
return -ENODEV;
}
- card = kzalloc(sizeof(card_t), GFP_KERNEL);
+ card = kzalloc_obj(card_t, GFP_KERNEL);
if (!card)
return -ENOBUFS;
diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c
index 5b01642ca44e..9f989b2ff558 100644
--- a/drivers/net/wan/farsync.c
+++ b/drivers/net/wan/farsync.c
@@ -2359,7 +2359,7 @@ fst_add_one(struct pci_dev *pdev, const struct pci_device_id *ent)
}
/* Allocate driver private data */
- card = kzalloc(sizeof(struct fst_card_info), GFP_KERNEL);
+ card = kzalloc_obj(struct fst_card_info, GFP_KERNEL);
if (!card)
return -ENOMEM;
diff --git a/drivers/net/wan/framer/framer-core.c b/drivers/net/wan/framer/framer-core.c
index bf7ac7dd2804..66ed38e97336 100644
--- a/drivers/net/wan/framer/framer-core.c
+++ b/drivers/net/wan/framer/framer-core.c
@@ -615,7 +615,7 @@ struct framer *framer_create(struct device *dev, struct device_node *node,
if (WARN_ON((ops->flags & FRAMER_FLAG_POLL_STATUS) && !ops->get_status))
return ERR_PTR(-EINVAL);
- framer = kzalloc(sizeof(*framer), GFP_KERNEL);
+ framer = kzalloc_obj(*framer, GFP_KERNEL);
if (!framer)
return ERR_PTR(-ENOMEM);
@@ -771,7 +771,7 @@ __framer_provider_of_register(struct device *dev, struct module *owner,
{
struct framer_provider *framer_provider;
- framer_provider = kzalloc(sizeof(*framer_provider), GFP_KERNEL);
+ framer_provider = kzalloc_obj(*framer_provider, GFP_KERNEL);
if (!framer_provider)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/wan/framer/pef2256/pef2256.c b/drivers/net/wan/framer/pef2256/pef2256.c
index c058cc79137d..f7ed6b3dd2d7 100644
--- a/drivers/net/wan/framer/pef2256/pef2256.c
+++ b/drivers/net/wan/framer/pef2256/pef2256.c
@@ -638,7 +638,7 @@ static int pef2256_add_audio_devices(struct pef2256 *pef2256)
if (!count)
return 0;
- audio_devs = kcalloc(count, sizeof(*audio_devs), GFP_KERNEL);
+ audio_devs = kzalloc_objs(*audio_devs, count, GFP_KERNEL);
if (!audio_devs)
return -ENOMEM;
diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c
index dff84731343c..5e93e204da0c 100644
--- a/drivers/net/wan/fsl_ucc_hdlc.c
+++ b/drivers/net/wan/fsl_ucc_hdlc.c
@@ -203,17 +203,15 @@ static int uhdlc_init(struct ucc_hdlc_private *priv)
goto free_tx_bd;
}
- priv->rx_skbuff = kcalloc(priv->rx_ring_size,
- sizeof(*priv->rx_skbuff),
- GFP_KERNEL);
+ priv->rx_skbuff = kzalloc_objs(*priv->rx_skbuff, priv->rx_ring_size,
+ GFP_KERNEL);
if (!priv->rx_skbuff) {
ret = -ENOMEM;
goto free_ucc_pram;
}
- priv->tx_skbuff = kcalloc(priv->tx_ring_size,
- sizeof(*priv->tx_skbuff),
- GFP_KERNEL);
+ priv->tx_skbuff = kzalloc_objs(*priv->tx_skbuff, priv->tx_ring_size,
+ GFP_KERNEL);
if (!priv->tx_skbuff) {
ret = -ENOMEM;
goto free_rx_skbuff;
@@ -900,8 +898,7 @@ static int uhdlc_suspend(struct device *dev)
priv->gumr = ioread32be(&uf_regs->gumr);
priv->guemr = ioread8(&uf_regs->guemr);
- priv->ucc_pram_bak = kmalloc(sizeof(*priv->ucc_pram_bak),
- GFP_KERNEL);
+ priv->ucc_pram_bak = kmalloc_obj(*priv->ucc_pram_bak, GFP_KERNEL);
if (!priv->ucc_pram_bak)
return -ENOMEM;
@@ -1173,7 +1170,7 @@ static int ucc_hdlc_probe(struct platform_device *pdev)
ut_info->uf_info.regs = res.start;
ut_info->uf_info.irq = irq_of_parse_and_map(np, 0);
- uhdlc_priv = kzalloc(sizeof(*uhdlc_priv), GFP_KERNEL);
+ uhdlc_priv = kzalloc_obj(*uhdlc_priv, GFP_KERNEL);
if (!uhdlc_priv)
return -ENOMEM;
@@ -1186,7 +1183,7 @@ static int ucc_hdlc_probe(struct platform_device *pdev)
uhdlc_priv->hdlc_bus = of_property_read_bool(np, "fsl,hdlc-bus");
if (uhdlc_priv->tsa == 1) {
- utdm = kzalloc(sizeof(*utdm), GFP_KERNEL);
+ utdm = kzalloc_obj(*utdm, GFP_KERNEL);
if (!utdm) {
ret = -ENOMEM;
dev_err(&pdev->dev, "No mem to alloc ucc tdm data\n");
diff --git a/drivers/net/wan/hdlc_fr.c b/drivers/net/wan/hdlc_fr.c
index 08a0ba5ca471..5f0e54ed1ee1 100644
--- a/drivers/net/wan/hdlc_fr.c
+++ b/drivers/net/wan/hdlc_fr.c
@@ -192,7 +192,7 @@ static struct pvc_device *add_pvc(struct net_device *dev, u16 dlci)
pvc_p = &(*pvc_p)->next;
}
- pvc = kzalloc(sizeof(*pvc), GFP_ATOMIC);
+ pvc = kzalloc_obj(*pvc, GFP_ATOMIC);
#ifdef DEBUG_PVC
printk(KERN_DEBUG "add_pvc: allocated pvc %p, frad %p\n", pvc, dev);
#endif
diff --git a/drivers/net/wan/n2.c b/drivers/net/wan/n2.c
index f3e80722ba1d..1892ee67bf20 100644
--- a/drivers/net/wan/n2.c
+++ b/drivers/net/wan/n2.c
@@ -340,7 +340,7 @@ static int __init n2_run(unsigned long io, unsigned long irq,
return -ENODEV;
}
- card = kzalloc(sizeof(card_t), GFP_KERNEL);
+ card = kzalloc_obj(card_t, GFP_KERNEL);
if (!card)
return -ENOBUFS;
diff --git a/drivers/net/wan/pc300too.c b/drivers/net/wan/pc300too.c
index 4766446f0fa0..82ae9e1db51d 100644
--- a/drivers/net/wan/pc300too.c
+++ b/drivers/net/wan/pc300too.c
@@ -300,7 +300,7 @@ static int pc300_pci_init_one(struct pci_dev *pdev,
return i;
}
- card = kzalloc(sizeof(card_t), GFP_KERNEL);
+ card = kzalloc_obj(card_t, GFP_KERNEL);
if (!card) {
pci_release_regions(pdev);
pci_disable_device(pdev);
diff --git a/drivers/net/wan/pci200syn.c b/drivers/net/wan/pci200syn.c
index ea86c7035653..33f562919923 100644
--- a/drivers/net/wan/pci200syn.c
+++ b/drivers/net/wan/pci200syn.c
@@ -281,7 +281,7 @@ static int pci200_pci_init_one(struct pci_dev *pdev,
return i;
}
- card = kzalloc(sizeof(card_t), GFP_KERNEL);
+ card = kzalloc_obj(card_t, GFP_KERNEL);
if (!card) {
pci_release_regions(pdev);
pci_disable_device(pdev);
diff --git a/drivers/net/wan/wanxl.c b/drivers/net/wan/wanxl.c
index 5a9e262188ef..d24443390932 100644
--- a/drivers/net/wan/wanxl.c
+++ b/drivers/net/wan/wanxl.c
@@ -598,7 +598,7 @@ static int wanxl_pci_init_one(struct pci_dev *pdev,
ports = 4;
}
- card = kzalloc(struct_size(card, ports, ports), GFP_KERNEL);
+ card = kzalloc_flex(*card, ports, ports, GFP_KERNEL);
if (!card) {
pci_release_regions(pdev);
pci_disable_device(pdev);
diff --git a/drivers/net/wireguard/noise.c b/drivers/net/wireguard/noise.c
index 1fe8468f0bef..994b7c6f0613 100644
--- a/drivers/net/wireguard/noise.c
+++ b/drivers/net/wireguard/noise.c
@@ -97,7 +97,7 @@ void wg_noise_handshake_clear(struct noise_handshake *handshake)
static struct noise_keypair *keypair_create(struct wg_peer *peer)
{
- struct noise_keypair *keypair = kzalloc(sizeof(*keypair), GFP_KERNEL);
+ struct noise_keypair *keypair = kzalloc_obj(*keypair, GFP_KERNEL);
if (unlikely(!keypair))
return NULL;
diff --git a/drivers/net/wireguard/peerlookup.c b/drivers/net/wireguard/peerlookup.c
index f2783aa7a88f..5ae4e6c5e7c9 100644
--- a/drivers/net/wireguard/peerlookup.c
+++ b/drivers/net/wireguard/peerlookup.c
@@ -21,7 +21,7 @@ static struct hlist_head *pubkey_bucket(struct pubkey_hashtable *table,
struct pubkey_hashtable *wg_pubkey_hashtable_alloc(void)
{
- struct pubkey_hashtable *table = kvmalloc(sizeof(*table), GFP_KERNEL);
+ struct pubkey_hashtable *table = kvmalloc_obj(*table, GFP_KERNEL);
if (!table)
return NULL;
@@ -82,7 +82,7 @@ static struct hlist_head *index_bucket(struct index_hashtable *table,
struct index_hashtable *wg_index_hashtable_alloc(void)
{
- struct index_hashtable *table = kvmalloc(sizeof(*table), GFP_KERNEL);
+ struct index_hashtable *table = kvmalloc_obj(*table, GFP_KERNEL);
if (!table)
return NULL;
diff --git a/drivers/net/wireguard/ratelimiter.c b/drivers/net/wireguard/ratelimiter.c
index dd55e5c26f46..13d532a44294 100644
--- a/drivers/net/wireguard/ratelimiter.c
+++ b/drivers/net/wireguard/ratelimiter.c
@@ -176,12 +176,12 @@ int wg_ratelimiter_init(void)
(1U << 14) / sizeof(struct hlist_head)));
max_entries = table_size * 8;
- table_v4 = kvcalloc(table_size, sizeof(*table_v4), GFP_KERNEL);
+ table_v4 = kvzalloc_objs(*table_v4, table_size, GFP_KERNEL);
if (unlikely(!table_v4))
goto err_kmemcache;
#if IS_ENABLED(CONFIG_IPV6)
- table_v6 = kvcalloc(table_size, sizeof(*table_v6), GFP_KERNEL);
+ table_v6 = kvzalloc_objs(*table_v6, table_size, GFP_KERNEL);
if (unlikely(!table_v6)) {
kvfree(table_v4);
goto err_kmemcache;
diff --git a/drivers/net/wireguard/selftest/allowedips.c b/drivers/net/wireguard/selftest/allowedips.c
index 41837efa70cb..6c7c79e39ad4 100644
--- a/drivers/net/wireguard/selftest/allowedips.c
+++ b/drivers/net/wireguard/selftest/allowedips.c
@@ -181,7 +181,7 @@ static __init int
horrible_allowedips_insert_v4(struct horrible_allowedips *table,
struct in_addr *ip, u8 cidr, void *value)
{
- struct horrible_allowedips_node *node = kzalloc(sizeof(*node), GFP_KERNEL);
+ struct horrible_allowedips_node *node = kzalloc_obj(*node, GFP_KERNEL);
if (unlikely(!node))
return -ENOMEM;
@@ -198,7 +198,7 @@ static __init int
horrible_allowedips_insert_v6(struct horrible_allowedips *table,
struct in6_addr *ip, u8 cidr, void *value)
{
- struct horrible_allowedips_node *node = kzalloc(sizeof(*node), GFP_KERNEL);
+ struct horrible_allowedips_node *node = kzalloc_obj(*node, GFP_KERNEL);
if (unlikely(!node))
return -ENOMEM;
@@ -266,13 +266,13 @@ static __init bool randomized_test(void)
wg_allowedips_init(&t);
horrible_allowedips_init(&h);
- peers = kcalloc(NUM_PEERS, sizeof(*peers), GFP_KERNEL);
+ peers = kzalloc_objs(*peers, NUM_PEERS, GFP_KERNEL);
if (unlikely(!peers)) {
pr_err("allowedips random self-test malloc: FAIL\n");
goto free;
}
for (i = 0; i < NUM_PEERS; ++i) {
- peers[i] = kzalloc(sizeof(*peers[i]), GFP_KERNEL);
+ peers[i] = kzalloc_obj(*peers[i], GFP_KERNEL);
if (unlikely(!peers[i])) {
pr_err("allowedips random self-test malloc: FAIL\n");
goto free;
@@ -447,7 +447,7 @@ static __init inline struct in6_addr *ip6(u32 a, u32 b, u32 c, u32 d)
static __init struct wg_peer *init_peer(void)
{
- struct wg_peer *peer = kzalloc(sizeof(*peer), GFP_KERNEL);
+ struct wg_peer *peer = kzalloc_obj(*peer, GFP_KERNEL);
if (!peer)
return NULL;
diff --git a/drivers/net/wireguard/selftest/counter.c b/drivers/net/wireguard/selftest/counter.c
index ec3c156bf91b..13c5535a1fd6 100644
--- a/drivers/net/wireguard/selftest/counter.c
+++ b/drivers/net/wireguard/selftest/counter.c
@@ -10,7 +10,7 @@ bool __init wg_packet_counter_selftest(void)
unsigned int test_num = 0, i;
bool success = true;
- counter = kmalloc(sizeof(*counter), GFP_KERNEL);
+ counter = kmalloc_obj(*counter, GFP_KERNEL);
if (unlikely(!counter)) {
pr_err("nonce counter self-test malloc: FAIL\n");
return false;
diff --git a/drivers/net/wireless/ath/ar5523/ar5523.c b/drivers/net/wireless/ath/ar5523/ar5523.c
index 1230e6278f23..f1567365ac04 100644
--- a/drivers/net/wireless/ath/ar5523/ar5523.c
+++ b/drivers/net/wireless/ath/ar5523/ar5523.c
@@ -1512,11 +1512,11 @@ static int ar5523_load_firmware(struct usb_device *dev)
return -ENOENT;
}
- txblock = kzalloc(sizeof(*txblock), GFP_KERNEL);
+ txblock = kzalloc_obj(*txblock, GFP_KERNEL);
if (!txblock)
goto out;
- rxblock = kmalloc(sizeof(*rxblock), GFP_KERNEL);
+ rxblock = kmalloc_obj(*rxblock, GFP_KERNEL);
if (!rxblock)
goto out_free_txblock;
diff --git a/drivers/net/wireless/ath/ath10k/ce.c b/drivers/net/wireless/ath/ath10k/ce.c
index 82f120ee1c66..23e5163acc9a 100644
--- a/drivers/net/wireless/ath/ath10k/ce.c
+++ b/drivers/net/wireless/ath/ath10k/ce.c
@@ -1461,8 +1461,8 @@ ath10k_ce_alloc_src_ring(struct ath10k *ar, unsigned int ce_id,
nentries = roundup_pow_of_two(nentries);
- src_ring = kzalloc(struct_size(src_ring, per_transfer_context,
- nentries), GFP_KERNEL);
+ src_ring = kzalloc_flex(*src_ring, per_transfer_context, nentries,
+ GFP_KERNEL);
if (src_ring == NULL)
return ERR_PTR(-ENOMEM);
@@ -1519,8 +1519,8 @@ ath10k_ce_alloc_src_ring_64(struct ath10k *ar, unsigned int ce_id,
nentries = roundup_pow_of_two(nentries);
- src_ring = kzalloc(struct_size(src_ring, per_transfer_context,
- nentries), GFP_KERNEL);
+ src_ring = kzalloc_flex(*src_ring, per_transfer_context, nentries,
+ GFP_KERNEL);
if (!src_ring)
return ERR_PTR(-ENOMEM);
@@ -1575,8 +1575,8 @@ ath10k_ce_alloc_dest_ring(struct ath10k *ar, unsigned int ce_id,
nentries = roundup_pow_of_two(attr->dest_nentries);
- dest_ring = kzalloc(struct_size(dest_ring, per_transfer_context,
- nentries), GFP_KERNEL);
+ dest_ring = kzalloc_flex(*dest_ring, per_transfer_context, nentries,
+ GFP_KERNEL);
if (dest_ring == NULL)
return ERR_PTR(-ENOMEM);
@@ -1619,8 +1619,8 @@ ath10k_ce_alloc_dest_ring_64(struct ath10k *ar, unsigned int ce_id,
nentries = roundup_pow_of_two(attr->dest_nentries);
- dest_ring = kzalloc(struct_size(dest_ring, per_transfer_context,
- nentries), GFP_KERNEL);
+ dest_ring = kzalloc_flex(*dest_ring, per_transfer_context, nentries,
+ GFP_KERNEL);
if (!dest_ring)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c
index d7e429041065..bea2cd4e5ee4 100644
--- a/drivers/net/wireless/ath/ath10k/htt_rx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
@@ -807,8 +807,7 @@ int ath10k_htt_rx_alloc(struct ath10k_htt *htt)
}
htt->rx_ring.netbufs_ring =
- kcalloc(htt->rx_ring.size, sizeof(struct sk_buff *),
- GFP_KERNEL);
+ kzalloc_objs(struct sk_buff *, htt->rx_ring.size, GFP_KERNEL);
if (!htt->rx_ring.netbufs_ring)
goto err_netbuf;
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index da6f7957a0ae..ef595a939bde 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -6431,7 +6431,7 @@ static int ath10k_hw_scan(struct ieee80211_hw *hw,
if (ret)
goto exit;
- arg = kzalloc(sizeof(*arg), GFP_KERNEL);
+ arg = kzalloc_obj(*arg, GFP_KERNEL);
if (!arg) {
ret = -ENOMEM;
goto exit;
@@ -7559,8 +7559,8 @@ static int ath10k_sta_state(struct ieee80211_hw *hw,
}
if (ath10k_debug_is_extd_tx_stats_enabled(ar)) {
- arsta->tx_stats = kzalloc(sizeof(*arsta->tx_stats),
- GFP_KERNEL);
+ arsta->tx_stats = kzalloc_obj(*arsta->tx_stats,
+ GFP_KERNEL);
if (!arsta->tx_stats) {
ath10k_mac_dec_num_stations(arvif, sta);
ret = -ENOMEM;
@@ -7972,7 +7972,7 @@ static int ath10k_remain_on_channel(struct ieee80211_hw *hw,
scan_time_msec = ar->hw->wiphy->max_remain_on_channel_duration * 2;
- arg = kzalloc(sizeof(*arg), GFP_KERNEL);
+ arg = kzalloc_obj(*arg, GFP_KERNEL);
if (!arg) {
ret = -ENOMEM;
goto exit;
@@ -8954,8 +8954,7 @@ ath10k_mac_op_change_chanctx(struct ieee80211_hw *hw,
if (arg.n_vifs == 0)
goto radar;
- arg.vifs = kcalloc(arg.n_vifs, sizeof(arg.vifs[0]),
- GFP_KERNEL);
+ arg.vifs = kzalloc_objs(arg.vifs[0], arg.n_vifs, GFP_KERNEL);
if (!arg.vifs)
goto radar;
diff --git a/drivers/net/wireless/ath/ath10k/qmi.c b/drivers/net/wireless/ath/ath10k/qmi.c
index 8275345631a0..62c9ef500ee7 100644
--- a/drivers/net/wireless/ath/ath10k/qmi.c
+++ b/drivers/net/wireless/ath/ath10k/qmi.c
@@ -245,7 +245,7 @@ static int ath10k_qmi_bdf_dnld_send_sync(struct ath10k_qmi *qmi)
const u8 *temp;
int ret;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -437,7 +437,7 @@ ath10k_qmi_cfg_send_sync_msg(struct ath10k *ar,
int ret;
u32 i;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -578,7 +578,7 @@ static int ath10k_qmi_cap_send_sync_msg(struct ath10k_qmi *qmi)
struct qmi_txn txn;
int ret;
- resp = kzalloc(sizeof(*resp), GFP_KERNEL);
+ resp = kzalloc_obj(*resp, GFP_KERNEL);
if (!resp)
return -ENOMEM;
@@ -877,7 +877,7 @@ ath10k_qmi_driver_event_post(struct ath10k_qmi *qmi,
{
struct ath10k_qmi_driver_event *event;
- event = kzalloc(sizeof(*event), GFP_ATOMIC);
+ event = kzalloc_obj(*event, GFP_ATOMIC);
if (!event)
return -ENOMEM;
@@ -1075,7 +1075,7 @@ int ath10k_qmi_init(struct ath10k *ar, u32 msa_size)
struct ath10k_qmi *qmi;
int ret;
- qmi = kzalloc(sizeof(*qmi), GFP_KERNEL);
+ qmi = kzalloc_obj(*qmi, GFP_KERNEL);
if (!qmi)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath10k/sdio.c b/drivers/net/wireless/ath/ath10k/sdio.c
index 00d0556dafef..ff046cff7399 100644
--- a/drivers/net/wireless/ath/ath10k/sdio.c
+++ b/drivers/net/wireless/ath/ath10k/sdio.c
@@ -246,7 +246,7 @@ static int ath10k_sdio_writesb32(struct ath10k *ar, u32 addr, u32 val)
__le32 *buf;
int ret;
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return -ENOMEM;
@@ -1766,7 +1766,7 @@ static int ath10k_sdio_diag_read32(struct ath10k *ar, u32 address,
__le32 *val;
int ret;
- val = kzalloc(sizeof(*val), GFP_KERNEL);
+ val = kzalloc_obj(*val, GFP_KERNEL);
if (!val)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath10k/txrx.c b/drivers/net/wireless/ath/ath10k/txrx.c
index 493bfb410aff..50a3498a0bfd 100644
--- a/drivers/net/wireless/ath/ath10k/txrx.c
+++ b/drivers/net/wireless/ath/ath10k/txrx.c
@@ -230,7 +230,7 @@ void ath10k_peer_map_event(struct ath10k_htt *htt,
spin_lock_bh(&ar->data_lock);
peer = ath10k_peer_find(ar, ev->vdev_id, ev->addr);
if (!peer) {
- peer = kzalloc(sizeof(*peer), GFP_ATOMIC);
+ peer = kzalloc_obj(*peer, GFP_ATOMIC);
if (!peer)
goto exit;
diff --git a/drivers/net/wireless/ath/ath10k/usb.c b/drivers/net/wireless/ath/ath10k/usb.c
index 1732a4f98418..59969db56048 100644
--- a/drivers/net/wireless/ath/ath10k/usb.c
+++ b/drivers/net/wireless/ath/ath10k/usb.c
@@ -799,7 +799,7 @@ static int ath10k_usb_alloc_pipe_resources(struct ath10k *ar,
init_usb_anchor(&pipe->urb_submitted);
for (i = 0; i < urb_cnt; i++) {
- urb_context = kzalloc(sizeof(*urb_context), GFP_KERNEL);
+ urb_context = kzalloc_obj(*urb_context, GFP_KERNEL);
if (!urb_context)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath10k/wmi-tlv.c b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
index 16d07d619b4d..ec8e91707f84 100644
--- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c
+++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
@@ -145,7 +145,7 @@ ath10k_wmi_tlv_parse_alloc(struct ath10k *ar, const void *ptr,
const void **tb;
int ret;
- tb = kcalloc(WMI_TLV_TAG_MAX, sizeof(*tb), gfp);
+ tb = kzalloc_objs(*tb, WMI_TLV_TAG_MAX, gfp);
if (!tb)
return ERR_PTR(-ENOMEM);
@@ -1546,7 +1546,7 @@ static int ath10k_wmi_tlv_op_pull_fw_stats(struct ath10k *ar,
data += sizeof(*src);
data_len -= sizeof(*src);
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -1569,7 +1569,7 @@ static int ath10k_wmi_tlv_op_pull_fw_stats(struct ath10k *ar,
data += sizeof(*src);
data_len -= sizeof(*src);
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -1590,7 +1590,7 @@ static int ath10k_wmi_tlv_op_pull_fw_stats(struct ath10k *ar,
data += sizeof(*src);
data_len -= sizeof(*src);
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -3063,7 +3063,7 @@ ath10k_wmi_mgmt_tx_alloc_msdu_id(struct ath10k *ar, struct sk_buff *skb,
struct ath10k_mgmt_tx_pkt_addr *pkt_addr;
int ret;
- pkt_addr = kmalloc(sizeof(*pkt_addr), GFP_ATOMIC);
+ pkt_addr = kmalloc_obj(*pkt_addr, GFP_ATOMIC);
if (!pkt_addr)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
index ce22141e5efd..0bdb38edd915 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -3046,7 +3046,7 @@ static int ath10k_wmi_main_op_pull_fw_stats(struct ath10k *ar,
if (!skb_pull(skb, sizeof(*src)))
return -EPROTO;
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -3067,7 +3067,7 @@ static int ath10k_wmi_main_op_pull_fw_stats(struct ath10k *ar,
if (!skb_pull(skb, sizeof(*src)))
return -EPROTO;
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -3100,7 +3100,7 @@ static int ath10k_wmi_10x_op_pull_fw_stats(struct ath10k *ar,
if (!skb_pull(skb, sizeof(*src)))
return -EPROTO;
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -3122,7 +3122,7 @@ static int ath10k_wmi_10x_op_pull_fw_stats(struct ath10k *ar,
if (!skb_pull(skb, sizeof(*src)))
return -EPROTO;
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -3161,7 +3161,7 @@ static int ath10k_wmi_10_2_op_pull_fw_stats(struct ath10k *ar,
if (!skb_pull(skb, sizeof(*src)))
return -EPROTO;
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -3198,7 +3198,7 @@ static int ath10k_wmi_10_2_op_pull_fw_stats(struct ath10k *ar,
if (!skb_pull(skb, sizeof(*src)))
return -EPROTO;
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -3238,7 +3238,7 @@ static int ath10k_wmi_10_2_4_op_pull_fw_stats(struct ath10k *ar,
if (!skb_pull(skb, sizeof(*src)))
return -EPROTO;
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -3281,7 +3281,7 @@ static int ath10k_wmi_10_2_4_op_pull_fw_stats(struct ath10k *ar,
if (!skb_pull(skb, stats_len))
return -EPROTO;
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -3330,7 +3330,7 @@ static int ath10k_wmi_10_4_op_pull_fw_stats(struct ath10k *ar,
if (!skb_pull(skb, sizeof(*src)))
return -EPROTO;
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -3376,7 +3376,7 @@ static int ath10k_wmi_10_4_op_pull_fw_stats(struct ath10k *ar,
if (!skb_pull(skb, sizeof(*src)))
return -EPROTO;
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -3409,7 +3409,7 @@ static int ath10k_wmi_10_4_op_pull_fw_stats(struct ath10k *ar,
if (!skb_pull(skb, sizeof(*src)))
return -EPROTO;
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -3429,7 +3429,7 @@ static int ath10k_wmi_10_4_op_pull_fw_stats(struct ath10k *ar,
if (!skb_pull(skb, sizeof(*src)))
return -EPROTO;
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
ath10k_wmi_10_4_pull_vdev_stats(src, dst);
@@ -4912,7 +4912,7 @@ void ath10k_wmi_event_pdev_tpc_config(struct ath10k *ar, struct sk_buff *skb)
rate_max = WMI_TPC_RATE_MAX;
}
- tpc_stats = kzalloc(sizeof(*tpc_stats), GFP_ATOMIC);
+ tpc_stats = kzalloc_obj(*tpc_stats, GFP_ATOMIC);
if (!tpc_stats)
return;
@@ -5168,7 +5168,7 @@ void ath10k_wmi_event_tpc_final_table(struct ath10k *ar, struct sk_buff *skb)
rate_max = WMI_TPC_FINAL_RATE_MAX;
}
- tpc_stats = kzalloc(sizeof(*tpc_stats), GFP_ATOMIC);
+ tpc_stats = kzalloc_obj(*tpc_stats, GFP_ATOMIC);
if (!tpc_stats)
return;
diff --git a/drivers/net/wireless/ath/ath10k/wow.c b/drivers/net/wireless/ath/ath10k/wow.c
index aa7b2e703f3d..8b7f608b5265 100644
--- a/drivers/net/wireless/ath/ath10k/wow.c
+++ b/drivers/net/wireless/ath/ath10k/wow.c
@@ -301,7 +301,7 @@ static int ath10k_vif_wow_set_wakeups(struct ath10k_vif *arvif,
struct wmi_pno_scan_req *pno;
int ret;
- pno = kzalloc(sizeof(*pno), GFP_KERNEL);
+ pno = kzalloc_obj(*pno, GFP_KERNEL);
if (!pno)
return -ENOMEM;
@@ -413,7 +413,7 @@ static int ath10k_vif_wow_clean_nlo(struct ath10k_vif *arvif)
if (ar->nlo_enabled) {
struct wmi_pno_scan_req *pno;
- pno = kzalloc(sizeof(*pno), GFP_KERNEL);
+ pno = kzalloc_obj(*pno, GFP_KERNEL);
if (!pno)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath11k/ce.c b/drivers/net/wireless/ath/ath11k/ce.c
index a7a163621b21..b91f8bb9a81c 100644
--- a/drivers/net/wireless/ath/ath11k/ce.c
+++ b/drivers/net/wireless/ath/ath11k/ce.c
@@ -615,7 +615,7 @@ ath11k_ce_alloc_ring(struct ath11k_base *ab, int nentries, int desc_sz)
struct ath11k_ce_ring *ce_ring;
dma_addr_t base_addr;
- ce_ring = kzalloc(struct_size(ce_ring, skb, nentries), GFP_KERNEL);
+ ce_ring = kzalloc_flex(*ce_ring, skb, nentries, GFP_KERNEL);
if (ce_ring == NULL)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/wireless/ath/ath11k/cfr.c b/drivers/net/wireless/ath/ath11k/cfr.c
index 61bf1c0884f7..61ac656ece07 100644
--- a/drivers/net/wireless/ath/ath11k/cfr.c
+++ b/drivers/net/wireless/ath/ath11k/cfr.c
@@ -975,8 +975,7 @@ int ath11k_cfr_init(struct ath11k_base *ab)
spin_lock_init(&cfr->lut_lock);
num_lut_entries = min_t(u32, CFR_MAX_LUT_ENTRIES, db_cap.min_elem);
- cfr->lut = kcalloc(num_lut_entries, sizeof(*cfr->lut),
- GFP_KERNEL);
+ cfr->lut = kzalloc_objs(*cfr->lut, num_lut_entries, GFP_KERNEL);
if (!cfr->lut) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/net/wireless/ath/ath11k/dbring.c b/drivers/net/wireless/ath/ath11k/dbring.c
index d6994ce6ebff..6ac18f8a1e5f 100644
--- a/drivers/net/wireless/ath/ath11k/dbring.c
+++ b/drivers/net/wireless/ath/ath11k/dbring.c
@@ -127,7 +127,7 @@ static int ath11k_dbring_fill_bufs(struct ath11k *ar,
size = ring->buf_sz + align - 1;
while (num_remain > 0) {
- buff = kzalloc(sizeof(*buff), GFP_ATOMIC);
+ buff = kzalloc_obj(*buff, GFP_ATOMIC);
if (!buff)
break;
diff --git a/drivers/net/wireless/ath/ath11k/debugfs.c b/drivers/net/wireless/ath/ath11k/debugfs.c
index 50f344803e8f..9b8660e56a1a 100644
--- a/drivers/net/wireless/ath/ath11k/debugfs.c
+++ b/drivers/net/wireless/ath/ath11k/debugfs.c
@@ -1193,8 +1193,7 @@ static int ath11k_debugfs_dbr_dbg_init(struct ath11k *ar, int dbr_id)
if (ar->debug.dbr_debug[dbr_id])
return 0;
- ar->debug.dbr_debug[dbr_id] = kzalloc(sizeof(*dbr_debug),
- GFP_KERNEL);
+ ar->debug.dbr_debug[dbr_id] = kzalloc_obj(*dbr_debug, GFP_KERNEL);
if (!ar->debug.dbr_debug[dbr_id])
return -ENOMEM;
@@ -1216,9 +1215,9 @@ static int ath11k_debugfs_dbr_dbg_init(struct ath11k *ar, int dbr_id)
dbr_debug->dbr_debug_enabled = true;
dbr_dbg_data->num_ring_debug_entries = ATH11K_DEBUG_DBR_ENTRIES_MAX;
dbr_dbg_data->dbr_debug_idx = 0;
- dbr_dbg_data->entries = kcalloc(ATH11K_DEBUG_DBR_ENTRIES_MAX,
- sizeof(struct ath11k_dbg_dbr_entry),
- GFP_KERNEL);
+ dbr_dbg_data->entries = kzalloc_objs(struct ath11k_dbg_dbr_entry,
+ ATH11K_DEBUG_DBR_ENTRIES_MAX,
+ GFP_KERNEL);
if (!dbr_dbg_data->entries)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath11k/dp_rx.c b/drivers/net/wireless/ath/ath11k/dp_rx.c
index b9e976ddcbbf..49d959b2e148 100644
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -772,7 +772,7 @@ static void ath11k_dp_rx_tid_del_func(struct ath11k_dp *dp, void *ctx,
return;
}
- elem = kzalloc(sizeof(*elem), GFP_ATOMIC);
+ elem = kzalloc_obj(*elem, GFP_ATOMIC);
if (!elem)
goto free_desc;
@@ -1542,7 +1542,7 @@ struct htt_ppdu_stats_info *ath11k_dp_htt_get_ppdu_desc(struct ath11k *ar,
}
}
- ppdu_info = kzalloc(sizeof(*ppdu_info), GFP_ATOMIC);
+ ppdu_info = kzalloc_obj(*ppdu_info, GFP_ATOMIC);
if (!ppdu_info)
return NULL;
@@ -5485,7 +5485,7 @@ static int ath11k_dp_rx_full_mon_prepare_mpdu(struct ath11k_dp *dp,
struct sk_buff *head,
struct sk_buff *tail)
{
- mon_mpdu = kzalloc(sizeof(*mon_mpdu), GFP_ATOMIC);
+ mon_mpdu = kzalloc_obj(*mon_mpdu, GFP_ATOMIC);
if (!mon_mpdu)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath11k/dp_tx.c b/drivers/net/wireless/ath/ath11k/dp_tx.c
index 86e1e6c27b36..9c2310665713 100644
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -796,7 +796,7 @@ int ath11k_dp_tx_send_reo_cmd(struct ath11k_base *ab, struct dp_rx_tid *rx_tid,
* for tid delete command to free up the resource on the command status
* indication?
*/
- dp_cmd = kzalloc(sizeof(*dp_cmd), GFP_ATOMIC);
+ dp_cmd = kzalloc_obj(*dp_cmd, GFP_ATOMIC);
if (!dp_cmd)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index 4dfd08b58416..7ec87ea7620f 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -4221,7 +4221,7 @@ static int ath11k_mac_op_hw_scan(struct ieee80211_hw *hw,
if (ret)
goto exit;
- arg = kzalloc(sizeof(*arg), GFP_KERNEL);
+ arg = kzalloc_obj(*arg, GFP_KERNEL);
if (!arg) {
ret = -ENOMEM;
@@ -7876,7 +7876,7 @@ ath11k_mac_update_active_vif_chan(struct ath11k *ar,
if (arg.n_vifs == 0)
return;
- arg.vifs = kcalloc(arg.n_vifs, sizeof(arg.vifs[0]), GFP_KERNEL);
+ arg.vifs = kzalloc_objs(arg.vifs[0], arg.n_vifs, GFP_KERNEL);
if (!arg.vifs)
return;
@@ -9729,7 +9729,7 @@ static int ath11k_mac_op_remain_on_channel(struct ieee80211_hw *hw,
scan_time_msec = ar->hw->wiphy->max_remain_on_channel_duration * 2;
- arg = kzalloc(sizeof(*arg), GFP_KERNEL);
+ arg = kzalloc_obj(*arg, GFP_KERNEL);
if (!arg) {
ret = -ENOMEM;
goto exit;
@@ -9823,7 +9823,7 @@ static int ath11k_mac_station_add(struct ath11k *ar,
arvif->reinstall_group_keys = false;
}
- arsta->rx_stats = kzalloc(sizeof(*arsta->rx_stats), GFP_KERNEL);
+ arsta->rx_stats = kzalloc_obj(*arsta->rx_stats, GFP_KERNEL);
if (!arsta->rx_stats) {
ret = -ENOMEM;
goto dec_num_station;
@@ -9844,7 +9844,7 @@ static int ath11k_mac_station_add(struct ath11k *ar,
sta->addr, arvif->vdev_id);
if (ath11k_debugfs_is_extd_tx_stats_enabled(ar)) {
- arsta->tx_stats = kzalloc(sizeof(*arsta->tx_stats), GFP_KERNEL);
+ arsta->tx_stats = kzalloc_obj(*arsta->tx_stats, GFP_KERNEL);
if (!arsta->tx_stats) {
ret = -ENOMEM;
goto free_peer;
@@ -10278,7 +10278,7 @@ static void ath11k_mac_setup_mac_address_list(struct ath11k *ar)
return;
n_addresses = ar->ab->hw_params.num_vdevs;
- addresses = kcalloc(n_addresses, sizeof(*addresses), GFP_KERNEL);
+ addresses = kzalloc_objs(*addresses, n_addresses, GFP_KERNEL);
if (!addresses)
return;
@@ -10310,7 +10310,7 @@ static int ath11k_mac_setup_iface_combinations(struct ath11k *ar)
else
n_combos = 1;
- combinations = kcalloc(n_combos, sizeof(*combinations), GFP_KERNEL);
+ combinations = kzalloc_objs(*combinations, n_combos, GFP_KERNEL);
if (!combinations)
return -ENOMEM;
@@ -10319,7 +10319,7 @@ static int ath11k_mac_setup_iface_combinations(struct ath11k *ar)
else
n_limits = 2;
- limits = kcalloc(n_limits, sizeof(*limits), GFP_KERNEL);
+ limits = kzalloc_objs(*limits, n_limits, GFP_KERNEL);
if (!limits) {
kfree(combinations);
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath11k/mhi.c b/drivers/net/wireless/ath/ath11k/mhi.c
index d2c44f7f9b62..7cb91d23362f 100644
--- a/drivers/net/wireless/ath/ath11k/mhi.c
+++ b/drivers/net/wireless/ath/ath11k/mhi.c
@@ -207,7 +207,7 @@ static int ath11k_mhi_get_msi(struct ath11k_pci *ab_pci)
ath11k_dbg(ab, ATH11K_DBG_PCI, "num_vectors %d base_vector %d\n",
num_vectors, base_vector);
- irq = kcalloc(num_vectors, sizeof(int), GFP_KERNEL);
+ irq = kzalloc_objs(int, num_vectors, GFP_KERNEL);
if (!irq)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath11k/peer.c b/drivers/net/wireless/ath/ath11k/peer.c
index 6d0126c39301..027cc7aa58c8 100644
--- a/drivers/net/wireless/ath/ath11k/peer.c
+++ b/drivers/net/wireless/ath/ath11k/peer.c
@@ -125,7 +125,7 @@ void ath11k_peer_map_event(struct ath11k_base *ab, u8 vdev_id, u16 peer_id,
spin_lock_bh(&ab->base_lock);
peer = ath11k_peer_find(ab, vdev_id, mac_addr);
if (!peer) {
- peer = kzalloc(sizeof(*peer), GFP_ATOMIC);
+ peer = kzalloc_obj(*peer, GFP_ATOMIC);
if (!peer)
goto exit;
diff --git a/drivers/net/wireless/ath/ath11k/qmi.c b/drivers/net/wireless/ath/ath11k/qmi.c
index ff6a97e328b8..ea6f560abd98 100644
--- a/drivers/net/wireless/ath/ath11k/qmi.c
+++ b/drivers/net/wireless/ath/ath11k/qmi.c
@@ -1799,11 +1799,11 @@ static int ath11k_qmi_fw_ind_register_send(struct ath11k_base *ab)
struct qmi_txn txn;
int ret;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
- resp = kzalloc(sizeof(*resp), GFP_KERNEL);
+ resp = kzalloc_obj(*resp, GFP_KERNEL);
if (!resp) {
ret = -ENOMEM;
goto resp_out;
@@ -1878,7 +1878,7 @@ static int ath11k_qmi_respond_fw_mem_request(struct ath11k_base *ab)
int ret = 0, i;
bool delayed;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -2306,7 +2306,7 @@ static int ath11k_qmi_load_file_target_mem(struct ath11k_base *ab,
int ret = 0;
u32 remaining = len;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -2705,7 +2705,7 @@ static int ath11k_qmi_wlanfw_wlan_cfg_send(struct ath11k_base *ab)
ce_cfg = (struct ce_pipe_config *)ab->qmi.ce_cfg.tgt_ce;
svc_cfg = (struct service_to_pipe *)ab->qmi.ce_cfg.svc_to_ce_map;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -2929,7 +2929,7 @@ ath11k_qmi_driver_event_post(struct ath11k_qmi *qmi,
{
struct ath11k_qmi_driver_event *event;
- event = kzalloc(sizeof(*event), GFP_ATOMIC);
+ event = kzalloc_obj(*event, GFP_ATOMIC);
if (!event)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath11k/reg.c b/drivers/net/wireless/ath/ath11k/reg.c
index 49b79648752c..0cf830d97dbd 100644
--- a/drivers/net/wireless/ath/ath11k/reg.c
+++ b/drivers/net/wireless/ath/ath11k/reg.c
@@ -146,8 +146,7 @@ int ath11k_reg_update_chan_list(struct ath11k *ar, bool wait)
if (WARN_ON(!num_channels))
return -EINVAL;
- params = kzalloc(struct_size(params, ch_param, num_channels),
- GFP_KERNEL);
+ params = kzalloc_flex(*params, ch_param, num_channels, GFP_KERNEL);
if (!params)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath11k/wmi.c b/drivers/net/wireless/ath/ath11k/wmi.c
index 451cc4c719ae..40747fba3b0c 100644
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -249,7 +249,7 @@ const void **ath11k_wmi_tlv_parse_alloc(struct ath11k_base *ab,
const void **tb;
int ret;
- tb = kcalloc(WMI_TAG_MAX, sizeof(*tb), gfp);
+ tb = kzalloc_objs(*tb, WMI_TAG_MAX, gfp);
if (!tb)
return ERR_PTR(-ENOMEM);
@@ -4918,9 +4918,8 @@ static int ath11k_wmi_tlv_ext_soc_hal_reg_caps_parse(struct ath11k_base *soc,
}
if (!soc->reg_info_store) {
- soc->reg_info_store = kcalloc(soc->num_radios,
- sizeof(*soc->reg_info_store),
- GFP_ATOMIC);
+ soc->reg_info_store = kzalloc_objs(*soc->reg_info_store,
+ soc->num_radios, GFP_ATOMIC);
if (!soc->reg_info_store)
return -ENOMEM;
}
@@ -5238,8 +5237,7 @@ static struct cur_reg_rule
struct cur_reg_rule *reg_rule_ptr;
u32 count;
- reg_rule_ptr = kcalloc(num_reg_rules, sizeof(*reg_rule_ptr),
- GFP_ATOMIC);
+ reg_rule_ptr = kzalloc_objs(*reg_rule_ptr, num_reg_rules, GFP_ATOMIC);
if (!reg_rule_ptr)
return NULL;
@@ -5388,7 +5386,7 @@ static struct cur_reg_rule
struct cur_reg_rule *reg_rule_ptr;
u32 count;
- reg_rule_ptr = kcalloc(num_reg_rules, sizeof(*reg_rule_ptr), GFP_ATOMIC);
+ reg_rule_ptr = kzalloc_objs(*reg_rule_ptr, num_reg_rules, GFP_ATOMIC);
if (!reg_rule_ptr)
return NULL;
@@ -6694,7 +6692,7 @@ static int ath11k_wmi_tlv_fw_stats_data_parse(struct ath11k_base *ab,
data += sizeof(*src);
len -= sizeof(*src);
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -6737,7 +6735,7 @@ static int ath11k_wmi_tlv_fw_stats_data_parse(struct ath11k_base *ab,
data += sizeof(*src);
len -= sizeof(*src);
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -6760,7 +6758,7 @@ static int ath11k_wmi_tlv_fw_stats_data_parse(struct ath11k_base *ab,
data += sizeof(*src);
len -= sizeof(*src);
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -7247,7 +7245,7 @@ static int ath11k_reg_chan_list_event(struct ath11k_base *ab, struct sk_buff *sk
struct cur_regulatory_info *reg_info;
int ret;
- reg_info = kzalloc(sizeof(*reg_info), GFP_ATOMIC);
+ reg_info = kzalloc_obj(*reg_info, GFP_ATOMIC);
if (!reg_info)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath11k/wow.c b/drivers/net/wireless/ath/ath11k/wow.c
index b6f08755129f..7b696d1dd0e8 100644
--- a/drivers/net/wireless/ath/ath11k/wow.c
+++ b/drivers/net/wireless/ath/ath11k/wow.c
@@ -381,7 +381,7 @@ static int ath11k_vif_wow_set_wakeups(struct ath11k_vif *arvif,
struct wmi_pno_scan_req *pno;
int ret;
- pno = kzalloc(sizeof(*pno), GFP_KERNEL);
+ pno = kzalloc_obj(*pno, GFP_KERNEL);
if (!pno)
return -ENOMEM;
@@ -495,7 +495,7 @@ static int ath11k_vif_wow_clean_nlo(struct ath11k_vif *arvif)
if (ar->nlo_enabled) {
struct wmi_pno_scan_req *pno;
- pno = kzalloc(sizeof(*pno), GFP_KERNEL);
+ pno = kzalloc_obj(*pno, GFP_KERNEL);
if (!pno)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath12k/ce.c b/drivers/net/wireless/ath/ath12k/ce.c
index f13b260c5c96..1106671dc844 100644
--- a/drivers/net/wireless/ath/ath12k/ce.c
+++ b/drivers/net/wireless/ath/ath12k/ce.c
@@ -332,7 +332,7 @@ ath12k_ce_alloc_ring(struct ath12k_base *ab, int nentries, int desc_sz)
struct ath12k_ce_ring *ce_ring;
dma_addr_t base_addr;
- ce_ring = kzalloc(struct_size(ce_ring, skb, nentries), GFP_KERNEL);
+ ce_ring = kzalloc_flex(*ce_ring, skb, nentries, GFP_KERNEL);
if (!ce_ring)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/wireless/ath/ath12k/core.c b/drivers/net/wireless/ath/ath12k/core.c
index 9d6c50a94e64..d9b41fc90dcd 100644
--- a/drivers/net/wireless/ath/ath12k/core.c
+++ b/drivers/net/wireless/ath/ath12k/core.c
@@ -1805,7 +1805,7 @@ static struct ath12k_hw_group *ath12k_core_hw_group_alloc(struct ath12k_base *ab
list_for_each_entry(ag, &ath12k_hw_group_list, list)
count++;
- ag = kzalloc(sizeof(*ag), GFP_KERNEL);
+ ag = kzalloc_obj(*ag, GFP_KERNEL);
if (!ag)
return NULL;
diff --git a/drivers/net/wireless/ath/ath12k/dp.c b/drivers/net/wireless/ath/ath12k/dp.c
index ab54c8a84d3e..43f8ef03b1cf 100644
--- a/drivers/net/wireless/ath/ath12k/dp.c
+++ b/drivers/net/wireless/ath/ath12k/dp.c
@@ -407,9 +407,8 @@ static int ath12k_dp_init_bank_profiles(struct ath12k_base *ab)
int i;
dp->num_bank_profiles = num_tcl_banks;
- dp->bank_profiles = kmalloc_array(num_tcl_banks,
- sizeof(struct ath12k_dp_tx_bank_profile),
- GFP_KERNEL);
+ dp->bank_profiles = kmalloc_objs(struct ath12k_dp_tx_bank_profile,
+ num_tcl_banks, GFP_KERNEL);
if (!dp->bank_profiles)
return -ENOMEM;
@@ -1215,8 +1214,8 @@ static int ath12k_dp_cc_desc_init(struct ath12k_base *ab)
spin_lock_bh(&dp->rx_desc_lock);
- dp->rxbaddr = kcalloc(num_rx_spt_pages,
- sizeof(struct ath12k_rx_desc_info *), GFP_ATOMIC);
+ dp->rxbaddr = kzalloc_objs(struct ath12k_rx_desc_info *,
+ num_rx_spt_pages, GFP_ATOMIC);
if (!dp->rxbaddr) {
spin_unlock_bh(&dp->rx_desc_lock);
@@ -1227,8 +1226,8 @@ static int ath12k_dp_cc_desc_init(struct ath12k_base *ab)
* RX
*/
for (i = 0; i < num_rx_spt_pages; i++) {
- rx_descs = kcalloc(ATH12K_MAX_SPT_ENTRIES, sizeof(*rx_descs),
- GFP_ATOMIC);
+ rx_descs = kzalloc_objs(*rx_descs, ATH12K_MAX_SPT_ENTRIES,
+ GFP_ATOMIC);
if (!rx_descs) {
spin_unlock_bh(&dp->rx_desc_lock);
@@ -1253,8 +1252,8 @@ static int ath12k_dp_cc_desc_init(struct ath12k_base *ab)
spin_unlock_bh(&dp->rx_desc_lock);
- dp->txbaddr = kcalloc(ATH12K_NUM_TX_SPT_PAGES(ab),
- sizeof(struct ath12k_tx_desc_info *), GFP_ATOMIC);
+ dp->txbaddr = kzalloc_objs(struct ath12k_tx_desc_info *,
+ ATH12K_NUM_TX_SPT_PAGES(ab), GFP_ATOMIC);
if (!dp->txbaddr)
return -ENOMEM;
@@ -1262,8 +1261,9 @@ static int ath12k_dp_cc_desc_init(struct ath12k_base *ab)
for (pool_id = 0; pool_id < ATH12K_HW_MAX_QUEUES; pool_id++) {
spin_lock_bh(&dp->tx_desc_lock[pool_id]);
for (i = 0; i < ATH12K_TX_SPT_PAGES_PER_POOL(ab); i++) {
- tx_descs = kcalloc(ATH12K_MAX_SPT_ENTRIES, sizeof(*tx_descs),
- GFP_ATOMIC);
+ tx_descs = kzalloc_objs(*tx_descs,
+ ATH12K_MAX_SPT_ENTRIES,
+ GFP_ATOMIC);
if (!tx_descs) {
spin_unlock_bh(&dp->tx_desc_lock[pool_id]);
@@ -1362,8 +1362,8 @@ static int ath12k_dp_cc_init(struct ath12k_base *ab)
if (dp->num_spt_pages > ATH12K_MAX_PPT_ENTRIES)
dp->num_spt_pages = ATH12K_MAX_PPT_ENTRIES;
- dp->spt_info = kcalloc(dp->num_spt_pages, sizeof(struct ath12k_spt_info),
- GFP_KERNEL);
+ dp->spt_info = kzalloc_objs(struct ath12k_spt_info, dp->num_spt_pages,
+ GFP_KERNEL);
if (!dp->spt_info) {
ath12k_warn(ab, "SPT page allocation failure");
diff --git a/drivers/net/wireless/ath/ath12k/dp_htt.c b/drivers/net/wireless/ath/ath12k/dp_htt.c
index cc71c5c5de5a..e71bb71a6020 100644
--- a/drivers/net/wireless/ath/ath12k/dp_htt.c
+++ b/drivers/net/wireless/ath/ath12k/dp_htt.c
@@ -386,7 +386,7 @@ struct htt_ppdu_stats_info *ath12k_dp_htt_get_ppdu_desc(struct ath12k_pdev_dp *d
}
}
- ppdu_info = kzalloc(sizeof(*ppdu_info), GFP_ATOMIC);
+ ppdu_info = kzalloc_obj(*ppdu_info, GFP_ATOMIC);
if (!ppdu_info)
return NULL;
diff --git a/drivers/net/wireless/ath/ath12k/dp_peer.c b/drivers/net/wireless/ath/ath12k/dp_peer.c
index 2e66872b5572..95b5a4af4b2e 100644
--- a/drivers/net/wireless/ath/ath12k/dp_peer.c
+++ b/drivers/net/wireless/ath/ath12k/dp_peer.c
@@ -165,7 +165,7 @@ void ath12k_dp_link_peer_map_event(struct ath12k_base *ab, u8 vdev_id, u16 peer_
spin_lock_bh(&dp->dp_lock);
peer = ath12k_dp_link_peer_find_by_vdev_and_addr(dp, vdev_id, mac_addr);
if (!peer) {
- peer = kzalloc(sizeof(*peer), GFP_ATOMIC);
+ peer = kzalloc_obj(*peer, GFP_ATOMIC);
if (!peer)
goto exit;
@@ -179,8 +179,8 @@ void ath12k_dp_link_peer_map_event(struct ath12k_base *ab, u8 vdev_id, u16 peer_
ar = ath12k_mac_get_ar_by_vdev_id(ab, vdev_id);
if (ar && ath12k_debugfs_is_extd_rx_stats_enabled(ar) &&
!peer->peer_stats.rx_stats) {
- peer->peer_stats.rx_stats =
- kzalloc(sizeof(*peer->peer_stats.rx_stats), GFP_ATOMIC);
+ peer->peer_stats.rx_stats = kzalloc_obj(*peer->peer_stats.rx_stats,
+ GFP_ATOMIC);
}
rcu_read_unlock();
@@ -233,7 +233,7 @@ static int ath12k_dp_link_peer_rhash_addr_tbl_init(struct ath12k_dp *dp)
lockdep_assert_held(&dp->link_peer_rhash_tbl_lock);
- rhash_addr_tbl = kzalloc(sizeof(*dp->rhead_peer_addr), GFP_KERNEL);
+ rhash_addr_tbl = kzalloc_obj(*dp->rhead_peer_addr, GFP_KERNEL);
if (!rhash_addr_tbl)
return -ENOMEM;
@@ -463,7 +463,7 @@ int ath12k_dp_peer_create(struct ath12k_dp_hw *dp_hw, u8 *addr,
}
spin_unlock_bh(&dp_hw->peer_lock);
- dp_peer = kzalloc(sizeof(*dp_peer), GFP_ATOMIC);
+ dp_peer = kzalloc_obj(*dp_peer, GFP_ATOMIC);
if (!dp_peer)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath12k/dp_rx.c b/drivers/net/wireless/ath/ath12k/dp_rx.c
index a32ee9f8061a..5a82ede65dd3 100644
--- a/drivers/net/wireless/ath/ath12k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath12k/dp_rx.c
@@ -464,7 +464,7 @@ void ath12k_dp_rx_tid_del_func(struct ath12k_dp *dp, void *ctx,
ath12k_dp_rx_process_reo_cmd_update_rx_queue_list(dp);
spin_unlock_bh(&dp->dp_lock);
- elem = kzalloc(sizeof(*elem), GFP_ATOMIC);
+ elem = kzalloc_obj(*elem, GFP_ATOMIC);
if (!elem)
goto free_desc;
@@ -565,7 +565,7 @@ static int ath12k_dp_prepare_reo_update_elem(struct ath12k_dp *dp,
lockdep_assert_held(&dp->dp_lock);
- elem = kzalloc(sizeof(*elem), GFP_ATOMIC);
+ elem = kzalloc_obj(*elem, GFP_ATOMIC);
if (!elem)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c
index 68431a0e128e..007c91dbb269 100644
--- a/drivers/net/wireless/ath/ath12k/mac.c
+++ b/drivers/net/wireless/ath/ath12k/mac.c
@@ -3838,7 +3838,7 @@ static void ath12k_bss_assoc(struct ath12k *ar,
lockdep_assert_wiphy(ath12k_ar_to_hw(ar)->wiphy);
struct ath12k_wmi_peer_assoc_arg *peer_arg __free(kfree) =
- kzalloc(sizeof(*peer_arg), GFP_KERNEL);
+ kzalloc_obj(*peer_arg, GFP_KERNEL);
if (!peer_arg)
return;
@@ -4217,7 +4217,7 @@ static struct ath12k_link_vif *ath12k_mac_assign_link_vif(struct ath12k_hw *ah,
if (vif->type == NL80211_IFTYPE_STATION)
arvif->is_sta_assoc_link = true;
} else {
- arvif = kzalloc(sizeof(*arvif), GFP_KERNEL);
+ arvif = kzalloc_obj(*arvif, GFP_KERNEL);
if (!arvif)
return NULL;
}
@@ -5024,7 +5024,8 @@ static struct ath12k_vif_cache *ath12k_ahvif_get_link_cache(struct ath12k_vif *a
u8 link_id)
{
if (!ahvif->cache[link_id]) {
- ahvif->cache[link_id] = kzalloc(sizeof(*ahvif->cache[0]), GFP_KERNEL);
+ ahvif->cache[link_id] = kzalloc_obj(*ahvif->cache[0],
+ GFP_KERNEL);
if (ahvif->cache[link_id])
INIT_LIST_HEAD(&ahvif->cache[link_id]->key_conf.list);
}
@@ -5602,7 +5603,7 @@ static int ath12k_mac_initiate_hw_scan(struct ieee80211_hw *hw,
if (ret)
goto exit;
- arg = kzalloc(sizeof(*arg), GFP_KERNEL);
+ arg = kzalloc_obj(*arg, GFP_KERNEL);
if (!arg) {
ret = -ENOMEM;
goto exit;
@@ -5692,7 +5693,7 @@ int ath12k_mac_op_hw_scan(struct ieee80211_hw *hw,
lockdep_assert_wiphy(hw->wiphy);
- chan_list = kcalloc(hw_req->req.n_channels, sizeof(*chan_list), GFP_KERNEL);
+ chan_list = kzalloc_objs(*chan_list, hw_req->req.n_channels, GFP_KERNEL);
if (!chan_list)
return -ENOMEM;
@@ -6122,7 +6123,7 @@ static int ath12k_mac_update_key_cache(struct ath12k_vif_cache *cache,
}
if (cmd == SET_KEY) {
- key_conf = kzalloc(sizeof(*key_conf), GFP_KERNEL);
+ key_conf = kzalloc_obj(*key_conf, GFP_KERNEL);
if (!key_conf)
return -ENOMEM;
@@ -6456,7 +6457,7 @@ static int ath12k_mac_station_assoc(struct ath12k *ar,
mask = &arvif->bitrate_mask;
struct ath12k_wmi_peer_assoc_arg *peer_arg __free(kfree) =
- kzalloc(sizeof(*peer_arg), GFP_KERNEL);
+ kzalloc_obj(*peer_arg, GFP_KERNEL);
if (!peer_arg)
return -ENOMEM;
@@ -6619,7 +6620,7 @@ static void ath12k_sta_rc_update_wk(struct wiphy *wiphy, struct wiphy_work *wk)
nss = min(nss, mac_nss);
struct ath12k_wmi_peer_assoc_arg *peer_arg __free(kfree) =
- kzalloc(sizeof(*peer_arg), GFP_KERNEL);
+ kzalloc_obj(*peer_arg, GFP_KERNEL);
if (!peer_arg)
return;
@@ -7974,7 +7975,7 @@ static struct ath12k_link_sta *ath12k_mac_alloc_assign_link_sta(struct ath12k_hw
if (arsta)
return NULL;
- arsta = kmalloc(sizeof(*arsta), GFP_KERNEL);
+ arsta = kmalloc_obj(*arsta, GFP_KERNEL);
if (!arsta)
return NULL;
@@ -11549,7 +11550,7 @@ ath12k_mac_update_active_vif_chan(struct ath12k *ar,
if (arg.n_vifs == 0)
return;
- arg.vifs = kcalloc(arg.n_vifs, sizeof(arg.vifs[0]), GFP_KERNEL);
+ arg.vifs = kzalloc_objs(arg.vifs[0], arg.n_vifs, GFP_KERNEL);
if (!arg.vifs)
return;
@@ -13714,7 +13715,7 @@ int ath12k_mac_op_remain_on_channel(struct ieee80211_hw *hw,
scan_time_msec = hw->wiphy->max_remain_on_channel_duration * 2;
struct ath12k_wmi_scan_req_arg *arg __free(kfree) =
- kzalloc(sizeof(*arg), GFP_KERNEL);
+ kzalloc_obj(*arg, GFP_KERNEL);
if (!arg)
return -ENOMEM;
@@ -14122,7 +14123,7 @@ ath12k_mac_setup_radio_iface_comb(struct ath12k *ar,
max_interfaces = 1;
}
- limits = kcalloc(n_limits, sizeof(*limits), GFP_KERNEL);
+ limits = kzalloc_objs(*limits, n_limits, GFP_KERNEL);
if (!limits)
return -ENOMEM;
@@ -14186,7 +14187,7 @@ ath12k_mac_setup_global_iface_comb(struct ath12k_hw *ah,
else
n_limits = 1;
- limits = kcalloc(n_limits, sizeof(*limits), GFP_KERNEL);
+ limits = kzalloc_objs(*limits, n_limits, GFP_KERNEL);
if (!limits)
return -ENOMEM;
@@ -14249,8 +14250,8 @@ static int ath12k_mac_setup_iface_combinations(struct ath12k_hw *ah)
if (ar->ab->hw_params->single_pdev_only)
n_combinations = 2;
- combinations = kcalloc(n_combinations, sizeof(*combinations),
- GFP_KERNEL);
+ combinations = kzalloc_objs(*combinations, n_combinations,
+ GFP_KERNEL);
if (!combinations)
return -ENOMEM;
@@ -14271,20 +14272,20 @@ static int ath12k_mac_setup_iface_combinations(struct ath12k_hw *ah)
goto out;
}
- combinations = kcalloc(n_combinations, sizeof(*combinations), GFP_KERNEL);
+ combinations = kzalloc_objs(*combinations, n_combinations, GFP_KERNEL);
if (!combinations)
return -ENOMEM;
/* there are multiple radios */
- radio = kcalloc(ah->num_radio, sizeof(*radio), GFP_KERNEL);
+ radio = kzalloc_objs(*radio, ah->num_radio, GFP_KERNEL);
if (!radio) {
ret = -ENOMEM;
goto err_free_combinations;
}
for_each_ar(ah, ar, i) {
- comb = kzalloc(sizeof(*comb), GFP_KERNEL);
+ comb = kzalloc_obj(*comb, GFP_KERNEL);
if (!comb) {
ret = -ENOMEM;
goto err_free_radios;
diff --git a/drivers/net/wireless/ath/ath12k/mhi.c b/drivers/net/wireless/ath/ath12k/mhi.c
index 45c0f66dcc5e..8f07c00c51a2 100644
--- a/drivers/net/wireless/ath/ath12k/mhi.c
+++ b/drivers/net/wireless/ath/ath12k/mhi.c
@@ -80,7 +80,7 @@ static int ath12k_mhi_get_msi(struct ath12k_pci *ab_pci)
ath12k_dbg(ab, ATH12K_DBG_PCI, "Number of assigned MSI for MHI is %d, base vector is %d\n",
num_vectors, base_vector);
- irq = kcalloc(num_vectors, sizeof(*irq), GFP_KERNEL);
+ irq = kzalloc_objs(*irq, num_vectors, GFP_KERNEL);
if (!irq)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath12k/peer.c b/drivers/net/wireless/ath/ath12k/peer.c
index 5f3bd3b9a3e9..ad571a4cf974 100644
--- a/drivers/net/wireless/ath/ath12k/peer.c
+++ b/drivers/net/wireless/ath/ath12k/peer.c
@@ -413,7 +413,7 @@ int ath12k_link_sta_rhash_tbl_init(struct ath12k_base *ab)
struct rhashtable *rhash_addr_tbl;
int ret;
- rhash_addr_tbl = kzalloc(sizeof(*ab->rhead_sta_addr), GFP_KERNEL);
+ rhash_addr_tbl = kzalloc_obj(*ab->rhead_sta_addr, GFP_KERNEL);
if (!rhash_addr_tbl)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath12k/qmi.c b/drivers/net/wireless/ath/ath12k/qmi.c
index cfde4147c8fc..631041bf1dc1 100644
--- a/drivers/net/wireless/ath/ath12k/qmi.c
+++ b/drivers/net/wireless/ath/ath12k/qmi.c
@@ -2344,11 +2344,11 @@ static int ath12k_qmi_fw_ind_register_send(struct ath12k_base *ab)
struct qmi_txn txn;
int ret;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
- resp = kzalloc(sizeof(*resp), GFP_KERNEL);
+ resp = kzalloc_obj(*resp, GFP_KERNEL);
if (!resp) {
ret = -ENOMEM;
goto resp_out;
@@ -2416,7 +2416,7 @@ int ath12k_qmi_respond_fw_mem_request(struct ath12k_base *ab)
int ret = 0, i;
bool delayed;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -2968,7 +2968,7 @@ static int ath12k_qmi_load_file_target_mem(struct ath12k_base *ab,
int ret = 0;
u32 remaining = len;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -3465,7 +3465,7 @@ static int ath12k_qmi_wlanfw_wlan_cfg_send(struct ath12k_base *ab)
ce_cfg = (struct ce_pipe_config *)ab->qmi.ce_cfg.tgt_ce;
svc_cfg = (struct service_to_pipe *)ab->qmi.ce_cfg.svc_to_ce_map;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -3636,7 +3636,7 @@ ath12k_qmi_driver_event_post(struct ath12k_qmi *qmi,
{
struct ath12k_qmi_driver_event *event;
- event = kzalloc(sizeof(*event), GFP_ATOMIC);
+ event = kzalloc_obj(*event, GFP_ATOMIC);
if (!event)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath12k/reg.c b/drivers/net/wireless/ath/ath12k/reg.c
index 7898f6981e5a..cd9ed489369e 100644
--- a/drivers/net/wireless/ath/ath12k/reg.c
+++ b/drivers/net/wireless/ath/ath12k/reg.c
@@ -170,7 +170,7 @@ int ath12k_reg_update_chan_list(struct ath12k *ar, bool wait)
return -EINVAL;
}
- arg = kzalloc(struct_size(arg, channel, num_channels), GFP_KERNEL);
+ arg = kzalloc_flex(*arg, channel, num_channels, GFP_KERNEL);
if (!arg)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath12k/wifi7/dp.c b/drivers/net/wireless/ath/ath12k/wifi7/dp.c
index 2b194879ee80..8e0b83801346 100644
--- a/drivers/net/wireless/ath/ath12k/wifi7/dp.c
+++ b/drivers/net/wireless/ath/ath12k/wifi7/dp.c
@@ -161,7 +161,7 @@ struct ath12k_dp *ath12k_wifi7_dp_device_alloc(struct ath12k_base *ab)
struct ath12k_dp *dp;
/* TODO: align dp later if cache alignment becomes a bottleneck */
- dp = kzalloc(sizeof(*dp), GFP_KERNEL);
+ dp = kzalloc_obj(*dp, GFP_KERNEL);
if (!dp)
return NULL;
diff --git a/drivers/net/wireless/ath/ath12k/wifi7/dp_mon.c b/drivers/net/wireless/ath/ath12k/wifi7/dp_mon.c
index bd741532b7dc..c9cea597a92e 100644
--- a/drivers/net/wireless/ath/ath12k/wifi7/dp_mon.c
+++ b/drivers/net/wireless/ath/ath12k/wifi7/dp_mon.c
@@ -1800,7 +1800,7 @@ ath12k_wifi7_dp_mon_parse_rx_dest_tlv(struct ath12k_pdev_dp *dp_pdev,
if (WARN_ON_ONCE(pmon->mon_mpdu))
break;
- pmon->mon_mpdu = kzalloc(sizeof(*pmon->mon_mpdu), GFP_ATOMIC);
+ pmon->mon_mpdu = kzalloc_obj(*pmon->mon_mpdu, GFP_ATOMIC);
if (!pmon->mon_mpdu)
return -ENOMEM;
break;
@@ -1849,7 +1849,7 @@ ath12k_wifi7_dp_mon_tx_get_ppdu_info(struct ath12k_mon_data *pmon,
}
/* allocate new tx_ppdu_info */
- tx_ppdu_info = kzalloc(sizeof(*tx_ppdu_info), GFP_ATOMIC);
+ tx_ppdu_info = kzalloc_obj(*tx_ppdu_info, GFP_ATOMIC);
if (!tx_ppdu_info)
return NULL;
@@ -2383,7 +2383,7 @@ ath12k_wifi7_dp_mon_tx_parse_status_tlv(struct ath12k_base *ab,
case HAL_TX_MPDU_START: {
struct dp_mon_mpdu *mon_mpdu = tx_ppdu_info->tx_mon_mpdu;
- mon_mpdu = kzalloc(sizeof(*mon_mpdu), GFP_ATOMIC);
+ mon_mpdu = kzalloc_obj(*mon_mpdu, GFP_ATOMIC);
if (!mon_mpdu)
return DP_MON_TX_STATUS_PPDU_NOT_DONE;
status = DP_MON_TX_MPDU_START;
@@ -2853,7 +2853,7 @@ ath12k_wifi7_dp_rx_mon_dest_process(struct ath12k *ar, int mac_id,
}
if (head_msdu && tail_msdu) {
- tmp_mpdu = kzalloc(sizeof(*tmp_mpdu), GFP_ATOMIC);
+ tmp_mpdu = kzalloc_obj(*tmp_mpdu, GFP_ATOMIC);
if (!tmp_mpdu)
break;
diff --git a/drivers/net/wireless/ath/ath12k/wifi7/dp_rx.c b/drivers/net/wireless/ath/ath12k/wifi7/dp_rx.c
index 7450938adf65..038e339e8fb1 100644
--- a/drivers/net/wireless/ath/ath12k/wifi7/dp_rx.c
+++ b/drivers/net/wireless/ath/ath12k/wifi7/dp_rx.c
@@ -165,7 +165,7 @@ int ath12k_wifi7_dp_reo_cmd_send(struct ath12k_base *ab,
* for tid delete command to free up the resource on the command status
* indication?
*/
- dp_cmd = kzalloc(sizeof(*dp_cmd), GFP_ATOMIC);
+ dp_cmd = kzalloc_obj(*dp_cmd, GFP_ATOMIC);
if (!dp_cmd)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath12k/wmi.c b/drivers/net/wireless/ath/ath12k/wmi.c
index 7617fc3a2479..eb7615a289f7 100644
--- a/drivers/net/wireless/ath/ath12k/wmi.c
+++ b/drivers/net/wireless/ath/ath12k/wmi.c
@@ -303,7 +303,7 @@ ath12k_wmi_tlv_parse_alloc(struct ath12k_base *ab,
const void **tb;
int ret;
- tb = kcalloc(WMI_TAG_MAX, sizeof(*tb), gfp);
+ tb = kzalloc_objs(*tb, WMI_TAG_MAX, gfp);
if (!tb)
return ERR_PTR(-ENOMEM);
@@ -6867,7 +6867,7 @@ static int ath12k_reg_chan_list_event(struct ath12k_base *ab, struct sk_buff *sk
u8 pdev_idx = 255;
int ret;
- reg_info = kzalloc(sizeof(*reg_info), GFP_ATOMIC);
+ reg_info = kzalloc_obj(*reg_info, GFP_ATOMIC);
if (!reg_info) {
ret = -ENOMEM;
goto fallback;
@@ -8297,7 +8297,7 @@ static int ath12k_wmi_tlv_fw_stats_data_parse(struct ath12k_base *ab,
data += sizeof(*src);
len -= sizeof(*src);
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
ath12k_wmi_pull_vdev_stats(src, dst);
@@ -8316,7 +8316,7 @@ static int ath12k_wmi_tlv_fw_stats_data_parse(struct ath12k_base *ab,
data += sizeof(*src);
len -= sizeof(*src);
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
ath12k_wmi_pull_bcn_stats(src, dst);
@@ -8338,7 +8338,7 @@ static int ath12k_wmi_tlv_fw_stats_data_parse(struct ath12k_base *ab,
data += sizeof(*src);
len -= sizeof(*src);
- dst = kzalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kzalloc_obj(*dst, GFP_ATOMIC);
if (!dst)
continue;
@@ -9559,8 +9559,7 @@ static void ath12k_wmi_process_tpc_stats(struct ath12k_base *ab,
goto unlock;
}
ar->debug.tpc_stats =
- kzalloc(sizeof(struct wmi_tpc_stats_arg),
- GFP_ATOMIC);
+ kzalloc_obj(struct wmi_tpc_stats_arg, GFP_ATOMIC);
if (!ar->debug.tpc_stats) {
ath12k_warn(ab,
"Failed to allocate memory for tpc stats\n");
diff --git a/drivers/net/wireless/ath/ath12k/wow.c b/drivers/net/wireless/ath/ath12k/wow.c
index bb08e1740582..bdac483c58cf 100644
--- a/drivers/net/wireless/ath/ath12k/wow.c
+++ b/drivers/net/wireless/ath/ath12k/wow.c
@@ -395,7 +395,7 @@ static int ath12k_wow_vif_set_wakeups(struct ath12k_link_vif *arvif,
struct wmi_pno_scan_req_arg *pno;
int ret;
- pno = kzalloc(sizeof(*pno), GFP_KERNEL);
+ pno = kzalloc_obj(*pno, GFP_KERNEL);
if (!pno)
return -ENOMEM;
@@ -507,7 +507,7 @@ static int ath12k_wow_vdev_clean_nlo(struct ath12k *ar, u32 vdev_id)
if (!ar->nlo_enabled)
return 0;
- pno = kzalloc(sizeof(*pno), GFP_KERNEL);
+ pno = kzalloc_obj(*pno, GFP_KERNEL);
if (!pno)
return -ENOMEM;
@@ -748,7 +748,7 @@ static int ath12k_wow_arp_ns_offload(struct ath12k *ar, bool enable)
lockdep_assert_wiphy(ath12k_ar_to_hw(ar)->wiphy);
- offload = kmalloc(sizeof(*offload), GFP_KERNEL);
+ offload = kmalloc_obj(*offload, GFP_KERNEL);
if (!offload)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
index 4d88b02ffa79..7b945a010ea1 100644
--- a/drivers/net/wireless/ath/ath5k/base.c
+++ b/drivers/net/wireless/ath/ath5k/base.c
@@ -919,8 +919,8 @@ ath5k_desc_alloc(struct ath5k_hw *ah)
ATH5K_DBG(ah, ATH5K_DEBUG_ANY, "DMA map: %p (%zu) -> %llx\n",
ds, ah->desc_len, (unsigned long long)ah->desc_daddr);
- bf = kcalloc(1 + ATH_TXBUF + ATH_RXBUF + ATH_BCBUF,
- sizeof(struct ath5k_buf), GFP_KERNEL);
+ bf = kzalloc_objs(struct ath5k_buf,
+ 1 + ATH_TXBUF + ATH_RXBUF + ATH_BCBUF, GFP_KERNEL);
if (bf == NULL) {
ATH5K_ERR(ah, "can't allocate bufptr\n");
ret = -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath5k/debug.c b/drivers/net/wireless/ath/ath5k/debug.c
index ec130510aeb2..5e30316f4543 100644
--- a/drivers/net/wireless/ath/ath5k/debug.c
+++ b/drivers/net/wireless/ath/ath5k/debug.c
@@ -928,7 +928,7 @@ static int open_file_eeprom(struct inode *inode, struct file *file)
/* Create private struct and assign to file */
- ep = kmalloc(sizeof(*ep), GFP_KERNEL);
+ ep = kmalloc_obj(*ep, GFP_KERNEL);
if (!ep) {
ret = -ENOMEM;
goto freebuf;
diff --git a/drivers/net/wireless/ath/ath5k/eeprom.c b/drivers/net/wireless/ath/ath5k/eeprom.c
index 58d3e86f6256..a8b9c346c74b 100644
--- a/drivers/net/wireless/ath/ath5k/eeprom.c
+++ b/drivers/net/wireless/ath/ath5k/eeprom.c
@@ -727,9 +727,8 @@ ath5k_eeprom_convert_pcal_info_5111(struct ath5k_hw *ah, int mode,
/* Allocate pd_curves for this cal pier */
chinfo[pier].pd_curves =
- kcalloc(AR5K_EEPROM_N_PD_CURVES,
- sizeof(struct ath5k_pdgain_info),
- GFP_KERNEL);
+ kzalloc_objs(struct ath5k_pdgain_info,
+ AR5K_EEPROM_N_PD_CURVES, GFP_KERNEL);
if (!chinfo[pier].pd_curves)
goto err_out;
@@ -761,8 +760,8 @@ ath5k_eeprom_convert_pcal_info_5111(struct ath5k_hw *ah, int mode,
if (!pd->pd_step)
goto err_out;
- pd->pd_pwr = kcalloc(AR5K_EEPROM_N_PWR_POINTS_5111,
- sizeof(s16), GFP_KERNEL);
+ pd->pd_pwr = kzalloc_objs(s16, AR5K_EEPROM_N_PWR_POINTS_5111,
+ GFP_KERNEL);
if (!pd->pd_pwr)
goto err_out;
@@ -917,9 +916,9 @@ ath5k_eeprom_convert_pcal_info_5112(struct ath5k_hw *ah, int mode,
/* Allocate pd_curves for this cal pier */
chinfo[pier].pd_curves =
- kcalloc(AR5K_EEPROM_N_PD_CURVES,
- sizeof(struct ath5k_pdgain_info),
- GFP_KERNEL);
+ kzalloc_objs(struct ath5k_pdgain_info,
+ AR5K_EEPROM_N_PD_CURVES,
+ GFP_KERNEL);
if (!chinfo[pier].pd_curves)
goto err_out;
@@ -943,8 +942,8 @@ ath5k_eeprom_convert_pcal_info_5112(struct ath5k_hw *ah, int mode,
if (!pd->pd_step)
goto err_out;
- pd->pd_pwr = kcalloc(pd->pd_points,
- sizeof(s16), GFP_KERNEL);
+ pd->pd_pwr = kzalloc_objs(s16, pd->pd_points,
+ GFP_KERNEL);
if (!pd->pd_pwr)
goto err_out;
@@ -981,8 +980,8 @@ ath5k_eeprom_convert_pcal_info_5112(struct ath5k_hw *ah, int mode,
if (!pd->pd_step)
goto err_out;
- pd->pd_pwr = kcalloc(pd->pd_points,
- sizeof(s16), GFP_KERNEL);
+ pd->pd_pwr = kzalloc_objs(s16, pd->pd_points,
+ GFP_KERNEL);
if (!pd->pd_pwr)
goto err_out;
@@ -1209,9 +1208,9 @@ ath5k_eeprom_convert_pcal_info_2413(struct ath5k_hw *ah, int mode,
/* Allocate pd_curves for this cal pier */
chinfo[pier].pd_curves =
- kcalloc(AR5K_EEPROM_N_PD_CURVES,
- sizeof(struct ath5k_pdgain_info),
- GFP_KERNEL);
+ kzalloc_objs(struct ath5k_pdgain_info,
+ AR5K_EEPROM_N_PD_CURVES,
+ GFP_KERNEL);
if (!chinfo[pier].pd_curves)
goto err_out;
@@ -1237,8 +1236,8 @@ ath5k_eeprom_convert_pcal_info_2413(struct ath5k_hw *ah, int mode,
if (!pd->pd_step)
goto err_out;
- pd->pd_pwr = kcalloc(pd->pd_points,
- sizeof(s16), GFP_KERNEL);
+ pd->pd_pwr = kzalloc_objs(s16, pd->pd_points,
+ GFP_KERNEL);
if (!pd->pd_pwr)
goto err_out;
diff --git a/drivers/net/wireless/ath/ath6kl/core.c b/drivers/net/wireless/ath/ath6kl/core.c
index 830350bda531..8be852e832f3 100644
--- a/drivers/net/wireless/ath/ath6kl/core.c
+++ b/drivers/net/wireless/ath/ath6kl/core.c
@@ -311,7 +311,7 @@ struct ath6kl *ath6kl_core_create(struct device *dev)
ar->sta_list[ctr].mgmt_psq_len = 0;
INIT_LIST_HEAD(&ar->sta_list[ctr].mgmt_psq);
ar->sta_list[ctr].aggr_conn =
- kzalloc(sizeof(struct aggr_info_conn), GFP_KERNEL);
+ kzalloc_obj(struct aggr_info_conn, GFP_KERNEL);
if (!ar->sta_list[ctr].aggr_conn) {
ath6kl_err("Failed to allocate memory for sta aggregation information\n");
ath6kl_core_destroy(ar);
diff --git a/drivers/net/wireless/ath/ath6kl/htc_mbox.c b/drivers/net/wireless/ath/ath6kl/htc_mbox.c
index 122e07ef3965..19dfeb012c04 100644
--- a/drivers/net/wireless/ath/ath6kl/htc_mbox.c
+++ b/drivers/net/wireless/ath/ath6kl/htc_mbox.c
@@ -2792,7 +2792,7 @@ static int ath6kl_htc_reset(struct htc_target *target)
(HTC_MAX_CTRL_MSG_LEN + HTC_HDR_LENGTH);
for (i = 0; i < NUM_CONTROL_BUFFERS; i++) {
- packet = kzalloc(sizeof(*packet), GFP_KERNEL);
+ packet = kzalloc_obj(*packet, GFP_KERNEL);
if (!packet)
return -ENOMEM;
@@ -2842,13 +2842,13 @@ static void *ath6kl_htc_mbox_create(struct ath6kl *ar)
struct htc_target *target = NULL;
int status = 0;
- target = kzalloc(sizeof(*target), GFP_KERNEL);
+ target = kzalloc_obj(*target, GFP_KERNEL);
if (!target) {
ath6kl_err("unable to allocate memory\n");
return NULL;
}
- target->dev = kzalloc(sizeof(*target->dev), GFP_KERNEL);
+ target->dev = kzalloc_obj(*target->dev, GFP_KERNEL);
if (!target->dev) {
ath6kl_err("unable to allocate memory\n");
kfree(target);
diff --git a/drivers/net/wireless/ath/ath6kl/htc_pipe.c b/drivers/net/wireless/ath/ath6kl/htc_pipe.c
index 7b823be9d846..ba8a701087c3 100644
--- a/drivers/net/wireless/ath/ath6kl/htc_pipe.c
+++ b/drivers/net/wireless/ath/ath6kl/htc_pipe.c
@@ -510,7 +510,7 @@ static struct htc_packet *build_htc_txctrl_packet(void)
struct htc_packet *packet = NULL;
struct sk_buff *skb;
- packet = kzalloc(sizeof(struct htc_packet), GFP_KERNEL);
+ packet = kzalloc_obj(struct htc_packet, GFP_KERNEL);
if (packet == NULL)
return NULL;
@@ -1409,7 +1409,7 @@ static void *ath6kl_htc_pipe_create(struct ath6kl *ar)
struct htc_packet *packet;
int i;
- target = kzalloc(sizeof(struct htc_target), GFP_KERNEL);
+ target = kzalloc_obj(struct htc_target, GFP_KERNEL);
if (target == NULL) {
ath6kl_err("htc create unable to allocate memory\n");
status = -ENOMEM;
@@ -1423,13 +1423,13 @@ static void *ath6kl_htc_pipe_create(struct ath6kl *ar)
reset_endpoint_states(target);
for (i = 0; i < HTC_PACKET_CONTAINER_ALLOCATION; i++) {
- packet = kzalloc(sizeof(struct htc_packet), GFP_KERNEL);
+ packet = kzalloc_obj(struct htc_packet, GFP_KERNEL);
if (packet != NULL)
free_htc_packet_container(target, packet);
}
- target->dev = kzalloc(sizeof(*target->dev), GFP_KERNEL);
+ target->dev = kzalloc_obj(*target->dev, GFP_KERNEL);
if (!target->dev) {
ath6kl_err("unable to allocate memory\n");
status = -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath6kl/main.c b/drivers/net/wireless/ath/ath6kl/main.c
index 59068ea3879b..908cb87842f7 100644
--- a/drivers/net/wireless/ath/ath6kl/main.c
+++ b/drivers/net/wireless/ath/ath6kl/main.c
@@ -485,7 +485,7 @@ void ath6kl_connect_ap_mode_sta(struct ath6kl_vif *vif, u16 aid, u8 *mac_addr,
keymgmt, ucipher, auth, apsd_info);
/* send event to application */
- sinfo = kzalloc(sizeof(*sinfo), GFP_KERNEL);
+ sinfo = kzalloc_obj(*sinfo, GFP_KERNEL);
if (!sinfo)
return;
@@ -1249,8 +1249,8 @@ static void ath6kl_set_multicast_list(struct net_device *ndev)
}
if (!found) {
- mc_filter = kzalloc(sizeof(struct ath6kl_mc_filter),
- GFP_ATOMIC);
+ mc_filter = kzalloc_obj(struct ath6kl_mc_filter,
+ GFP_ATOMIC);
if (!mc_filter) {
WARN_ON(1);
goto out;
diff --git a/drivers/net/wireless/ath/ath6kl/sdio.c b/drivers/net/wireless/ath/ath6kl/sdio.c
index 83de40bc4445..c0a895ae882f 100644
--- a/drivers/net/wireless/ath/ath6kl/sdio.c
+++ b/drivers/net/wireless/ath/ath6kl/sdio.c
@@ -1316,7 +1316,7 @@ static int ath6kl_sdio_probe(struct sdio_func *func,
func->num, func->vendor, func->device,
func->max_blksize, func->cur_blksize);
- ar_sdio = kzalloc(sizeof(struct ath6kl_sdio), GFP_KERNEL);
+ ar_sdio = kzalloc_obj(struct ath6kl_sdio, GFP_KERNEL);
if (!ar_sdio)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath6kl/txrx.c b/drivers/net/wireless/ath/ath6kl/txrx.c
index c3b06b515c4f..623d134c4be7 100644
--- a/drivers/net/wireless/ath/ath6kl/txrx.c
+++ b/drivers/net/wireless/ath/ath6kl/txrx.c
@@ -1770,13 +1770,13 @@ struct aggr_info *aggr_init(struct ath6kl_vif *vif)
{
struct aggr_info *p_aggr = NULL;
- p_aggr = kzalloc(sizeof(struct aggr_info), GFP_KERNEL);
+ p_aggr = kzalloc_obj(struct aggr_info, GFP_KERNEL);
if (!p_aggr) {
ath6kl_err("failed to alloc memory for aggr_node\n");
return NULL;
}
- p_aggr->aggr_conn = kzalloc(sizeof(struct aggr_info_conn), GFP_KERNEL);
+ p_aggr->aggr_conn = kzalloc_obj(struct aggr_info_conn, GFP_KERNEL);
if (!p_aggr->aggr_conn) {
ath6kl_err("failed to alloc memory for connection specific aggr info\n");
kfree(p_aggr);
diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c
index 38bb501fc553..9362ab82cc30 100644
--- a/drivers/net/wireless/ath/ath6kl/usb.c
+++ b/drivers/net/wireless/ath/ath6kl/usb.c
@@ -190,8 +190,7 @@ static int ath6kl_usb_alloc_pipe_resources(struct ath6kl_usb_pipe *pipe,
init_usb_anchor(&pipe->urb_submitted);
for (i = 0; i < urb_cnt; i++) {
- urb_context = kzalloc(sizeof(struct ath6kl_urb_context),
- GFP_KERNEL);
+ urb_context = kzalloc_obj(struct ath6kl_urb_context, GFP_KERNEL);
if (urb_context == NULL) {
status = -ENOMEM;
goto fail_alloc_pipe_resources;
@@ -634,7 +633,7 @@ static struct ath6kl_usb *ath6kl_usb_create(struct usb_interface *interface)
int i;
/* ath6kl_usb_destroy() needs ar_usb != NULL && ar_usb->wq != NULL. */
- ar_usb = kzalloc(sizeof(struct ath6kl_usb), GFP_KERNEL);
+ ar_usb = kzalloc_obj(struct ath6kl_usb, GFP_KERNEL);
if (ar_usb == NULL)
return NULL;
ar_usb->wq = alloc_workqueue("ath6kl_wq", 0, 0);
diff --git a/drivers/net/wireless/ath/ath6kl/wmi.c b/drivers/net/wireless/ath/ath6kl/wmi.c
index 08a154bce139..c043ba9a2afa 100644
--- a/drivers/net/wireless/ath/ath6kl/wmi.c
+++ b/drivers/net/wireless/ath/ath6kl/wmi.c
@@ -4135,7 +4135,7 @@ void *ath6kl_wmi_init(struct ath6kl *dev)
{
struct wmi *wmi;
- wmi = kzalloc(sizeof(struct wmi), GFP_KERNEL);
+ wmi = kzalloc_obj(struct wmi, GFP_KERNEL);
if (!wmi)
return NULL;
diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c
index fe9abe8cd268..c7e063482f55 100644
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
@@ -107,7 +107,7 @@ static int hif_usb_send_regout(struct hif_device_usb *hif_dev,
if (urb == NULL)
return -ENOMEM;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL) {
usb_free_urb(urb);
return -ENOMEM;
@@ -190,7 +190,7 @@ static int hif_usb_send_mgmt(struct hif_device_usb *hif_dev,
if (urb == NULL)
return -ENOMEM;
- cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC);
+ cmd = kzalloc_obj(*cmd, GFP_ATOMIC);
if (cmd == NULL) {
usb_free_urb(urb);
return -ENOMEM;
@@ -849,7 +849,7 @@ static int ath9k_hif_usb_alloc_tx_urbs(struct hif_device_usb *hif_dev)
init_usb_anchor(&hif_dev->mgmt_submitted);
for (i = 0; i < MAX_TX_URB_NUM; i++) {
- tx_buf = kzalloc(sizeof(*tx_buf), GFP_KERNEL);
+ tx_buf = kzalloc_obj(*tx_buf, GFP_KERNEL);
if (!tx_buf)
goto err;
@@ -897,7 +897,7 @@ static int ath9k_hif_usb_alloc_rx_urbs(struct hif_device_usb *hif_dev)
for (i = 0; i < MAX_RX_URB_NUM; i++) {
- rx_buf = kzalloc(sizeof(*rx_buf), GFP_KERNEL);
+ rx_buf = kzalloc_obj(*rx_buf, GFP_KERNEL);
if (!rx_buf) {
ret = -ENOMEM;
goto err_rxb;
@@ -972,7 +972,7 @@ static int ath9k_hif_usb_alloc_reg_in_urbs(struct hif_device_usb *hif_dev)
for (i = 0; i < MAX_REG_IN_URB_NUM; i++) {
- rx_buf = kzalloc(sizeof(*rx_buf), GFP_KERNEL);
+ rx_buf = kzalloc_obj(*rx_buf, GFP_KERNEL);
if (!rx_buf) {
ret = -ENOMEM;
goto err_rxb;
@@ -1376,7 +1376,7 @@ static int ath9k_hif_usb_probe(struct usb_interface *interface,
if (id->driver_info == STORAGE_DEVICE)
return send_eject_command(interface);
- hif_dev = kzalloc(sizeof(struct hif_device_usb), GFP_KERNEL);
+ hif_dev = kzalloc_obj(struct hif_device_usb, GFP_KERNEL);
if (!hif_dev) {
ret = -ENOMEM;
goto err_alloc;
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_init.c b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
index 3633f9eb2c55..a57b1ca76891 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_init.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
@@ -611,7 +611,7 @@ static int ath9k_init_priv(struct ath9k_htc_priv *priv,
struct ath_common *common;
int i, ret = 0, csz = 0;
- ah = kzalloc(sizeof(struct ath_hw), GFP_KERNEL);
+ ah = kzalloc_obj(struct ath_hw, GFP_KERNEL);
if (!ah)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
index ee5945cfc10e..20e1f9b72b16 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
@@ -664,8 +664,8 @@ void ath9k_htc_txstatus(struct ath9k_htc_priv *priv, void *wmi_event)
* Store this event, so that the TX cleanup
* routine can check later for the needed packet.
*/
- tx_pend = kzalloc(sizeof(struct ath9k_htc_tx_event),
- GFP_ATOMIC);
+ tx_pend = kzalloc_obj(struct ath9k_htc_tx_event,
+ GFP_ATOMIC);
if (!tx_pend)
continue;
@@ -1193,7 +1193,7 @@ int ath9k_rx_init(struct ath9k_htc_priv *priv)
for (i = 0; i < ATH9K_HTC_RXBUF; i++) {
struct ath9k_htc_rxbuf *rxbuf =
- kzalloc(sizeof(struct ath9k_htc_rxbuf), GFP_KERNEL);
+ kzalloc_obj(struct ath9k_htc_rxbuf, GFP_KERNEL);
if (rxbuf == NULL)
goto err;
diff --git a/drivers/net/wireless/ath/ath9k/htc_hst.c b/drivers/net/wireless/ath/ath9k/htc_hst.c
index b5257b2b4aa5..a2fe131d8c00 100644
--- a/drivers/net/wireless/ath/ath9k/htc_hst.c
+++ b/drivers/net/wireless/ath/ath9k/htc_hst.c
@@ -499,7 +499,7 @@ struct htc_target *ath9k_htc_hw_alloc(void *hif_handle,
struct htc_endpoint *endpoint;
struct htc_target *target;
- target = kzalloc(sizeof(struct htc_target), GFP_KERNEL);
+ target = kzalloc_obj(struct htc_target, GFP_KERNEL);
if (!target)
return NULL;
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index 14de62c1a32b..e7bf63d257b2 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -3128,7 +3128,7 @@ struct ath_gen_timer *ath_gen_timer_alloc(struct ath_hw *ah,
!AR_SREV_9300_20_OR_LATER(ah))
return NULL;
- timer = kzalloc(sizeof(struct ath_gen_timer), GFP_KERNEL);
+ timer = kzalloc_obj(struct ath_gen_timer, GFP_KERNEL);
if (timer == NULL)
return NULL;
diff --git a/drivers/net/wireless/ath/ath9k/mci.c b/drivers/net/wireless/ath/ath9k/mci.c
index a0845002d6fe..f82bb2349928 100644
--- a/drivers/net/wireless/ath/ath9k/mci.c
+++ b/drivers/net/wireless/ath/ath9k/mci.c
@@ -53,7 +53,7 @@ static bool ath_mci_add_profile(struct ath_common *common,
(info->type != MCI_GPM_COEX_PROFILE_VOICE))
return false;
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (!entry)
return false;
diff --git a/drivers/net/wireless/ath/ath9k/wmi.c b/drivers/net/wireless/ath/ath9k/wmi.c
index 805ad31edba2..2f56b9cc0ab8 100644
--- a/drivers/net/wireless/ath/ath9k/wmi.c
+++ b/drivers/net/wireless/ath/ath9k/wmi.c
@@ -92,7 +92,7 @@ struct wmi *ath9k_init_wmi(struct ath9k_htc_priv *priv)
{
struct wmi *wmi;
- wmi = kzalloc(sizeof(struct wmi), GFP_KERNEL);
+ wmi = kzalloc_obj(struct wmi, GFP_KERNEL);
if (!wmi)
return NULL;
diff --git a/drivers/net/wireless/ath/carl9170/cmd.c b/drivers/net/wireless/ath/carl9170/cmd.c
index b8ed193c0195..402fd0633e09 100644
--- a/drivers/net/wireless/ath/carl9170/cmd.c
+++ b/drivers/net/wireless/ath/carl9170/cmd.c
@@ -120,7 +120,7 @@ struct carl9170_cmd *carl9170_cmd_buf(struct ar9170 *ar,
{
struct carl9170_cmd *tmp;
- tmp = kzalloc(sizeof(*tmp), GFP_ATOMIC);
+ tmp = kzalloc_obj(*tmp, GFP_ATOMIC);
if (tmp) {
tmp->hdr.cmd = cmd;
tmp->hdr.len = len;
diff --git a/drivers/net/wireless/ath/carl9170/main.c b/drivers/net/wireless/ath/carl9170/main.c
index a7a9345f3483..3262a279746f 100644
--- a/drivers/net/wireless/ath/carl9170/main.c
+++ b/drivers/net/wireless/ath/carl9170/main.c
@@ -1412,8 +1412,7 @@ static int carl9170_op_ampdu_action(struct ieee80211_hw *hw,
if (!sta_info->ht_sta)
return -EOPNOTSUPP;
- tid_info = kzalloc(sizeof(struct carl9170_sta_tid),
- GFP_KERNEL);
+ tid_info = kzalloc_obj(struct carl9170_sta_tid, GFP_KERNEL);
if (!tid_info)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/carl9170/tx.c b/drivers/net/wireless/ath/carl9170/tx.c
index b7717f9e1e9b..59caf1e4b158 100644
--- a/drivers/net/wireless/ath/carl9170/tx.c
+++ b/drivers/net/wireless/ath/carl9170/tx.c
@@ -1328,7 +1328,7 @@ static void carl9170_bar_check(struct ar9170 *ar, struct sk_buff *skb)
struct carl9170_bar_list_entry *entry;
unsigned int queue = skb_get_queue_mapping(skb);
- entry = kmalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kmalloc_obj(*entry, GFP_ATOMIC);
if (!WARN_ON_ONCE(!entry)) {
entry->skb = skb;
spin_lock_bh(&ar->bar_list_lock[queue]);
diff --git a/drivers/net/wireless/ath/dfs_pattern_detector.c b/drivers/net/wireless/ath/dfs_pattern_detector.c
index 700da9f4531e..a798ff11183d 100644
--- a/drivers/net/wireless/ath/dfs_pattern_detector.c
+++ b/drivers/net/wireless/ath/dfs_pattern_detector.c
@@ -199,7 +199,7 @@ channel_detector_create(struct dfs_pattern_detector *dpd, u16 freq)
u32 i;
struct channel_detector *cd;
- cd = kzalloc(struct_size(cd, detectors, dpd->num_radar_types), GFP_ATOMIC);
+ cd = kzalloc_flex(*cd, detectors, dpd->num_radar_types, GFP_ATOMIC);
if (cd == NULL)
goto fail;
@@ -354,7 +354,7 @@ dfs_pattern_detector_init(struct ath_common *common,
if (!IS_ENABLED(CONFIG_CFG80211_CERTIFICATION_ONUS))
return NULL;
- dpd = kmalloc(sizeof(*dpd), GFP_KERNEL);
+ dpd = kmalloc_obj(*dpd, GFP_KERNEL);
if (dpd == NULL)
return NULL;
diff --git a/drivers/net/wireless/ath/dfs_pri_detector.c b/drivers/net/wireless/ath/dfs_pri_detector.c
index d07c454c9c00..388f9d1913bd 100644
--- a/drivers/net/wireless/ath/dfs_pri_detector.c
+++ b/drivers/net/wireless/ath/dfs_pri_detector.c
@@ -202,7 +202,7 @@ static bool pulse_queue_enqueue(struct pri_detector *pde, u64 ts)
{
struct pulse_elem *p = pool_get_pulse_elem();
if (p == NULL) {
- p = kmalloc(sizeof(*p), GFP_ATOMIC);
+ p = kmalloc_obj(*p, GFP_ATOMIC);
if (p == NULL) {
DFS_POOL_STAT_INC(pulse_alloc_error);
return false;
@@ -284,7 +284,7 @@ static bool pseq_handler_create_sequences(struct pri_detector *pde,
ps.deadline_ts = ps.first_ts + ps.dur;
new_ps = pool_get_pseq_elem();
if (new_ps == NULL) {
- new_ps = kmalloc(sizeof(*new_ps), GFP_ATOMIC);
+ new_ps = kmalloc_obj(*new_ps, GFP_ATOMIC);
if (new_ps == NULL) {
DFS_POOL_STAT_INC(pseq_alloc_error);
return false;
@@ -418,7 +418,7 @@ struct pri_detector *pri_detector_init(const struct radar_detector_specs *rs)
{
struct pri_detector *de;
- de = kzalloc(sizeof(*de), GFP_ATOMIC);
+ de = kzalloc_obj(*de, GFP_ATOMIC);
if (de == NULL)
return NULL;
de->exit = pri_detector_exit;
diff --git a/drivers/net/wireless/ath/wcn36xx/dxe.c b/drivers/net/wireless/ath/wcn36xx/dxe.c
index 0f4df5585fd9..c6ec7a296240 100644
--- a/drivers/net/wireless/ath/wcn36xx/dxe.c
+++ b/drivers/net/wireless/ath/wcn36xx/dxe.c
@@ -74,7 +74,7 @@ static int wcn36xx_dxe_allocate_ctl_block(struct wcn36xx_dxe_ch *ch)
spin_lock_init(&ch->lock);
for (i = 0; i < ch->desc_num; i++) {
- cur_ctl = kzalloc(sizeof(*cur_ctl), GFP_KERNEL);
+ cur_ctl = kzalloc_obj(*cur_ctl, GFP_KERNEL);
if (!cur_ctl)
goto out_fail;
diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
index 02a525645bfa..c3f0860873de 100644
--- a/drivers/net/wireless/ath/wcn36xx/main.c
+++ b/drivers/net/wireless/ath/wcn36xx/main.c
@@ -462,7 +462,7 @@ static u64 wcn36xx_prepare_multicast(struct ieee80211_hw *hw,
struct netdev_hw_addr *ha;
wcn36xx_dbg(WCN36XX_DBG_MAC, "mac prepare multicast list\n");
- fp = kzalloc(sizeof(*fp), GFP_ATOMIC);
+ fp = kzalloc_obj(*fp, GFP_ATOMIC);
if (!fp) {
wcn36xx_err("Out of memory setting filters.\n");
return 0;
diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index 136acc414714..f9ebe13d0245 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -847,7 +847,7 @@ int wcn36xx_smd_start_hw_scan(struct wcn36xx *wcn, struct ieee80211_vif *vif,
return -EINVAL;
mutex_lock(&wcn->hal_mutex);
- msg_body = kzalloc(sizeof(*msg_body), GFP_KERNEL);
+ msg_body = kzalloc_obj(*msg_body, GFP_KERNEL);
if (!msg_body) {
ret = -ENOMEM;
goto out;
@@ -942,7 +942,7 @@ int wcn36xx_smd_update_channel_list(struct wcn36xx *wcn, struct cfg80211_scan_re
struct wcn36xx_hal_update_channel_list_req_msg *msg_body;
int ret, i;
- msg_body = kzalloc(sizeof(*msg_body), GFP_KERNEL);
+ msg_body = kzalloc_obj(*msg_body, GFP_KERNEL);
if (!msg_body)
return -ENOMEM;
@@ -1624,7 +1624,7 @@ static int wcn36xx_smd_config_bss_v1(struct wcn36xx *wcn,
struct cfg80211_chan_def *chandef;
int ret;
- msg_body = kzalloc(sizeof(*msg_body), GFP_KERNEL);
+ msg_body = kzalloc_obj(*msg_body, GFP_KERNEL);
if (!msg_body)
return -ENOMEM;
@@ -1744,7 +1744,7 @@ static int wcn36xx_smd_config_bss_v0(struct wcn36xx *wcn,
struct wcn36xx_hal_config_sta_params *sta_params;
int ret;
- msg = kzalloc(sizeof(*msg), GFP_KERNEL);
+ msg = kzalloc_obj(*msg, GFP_KERNEL);
if (!msg)
return -ENOMEM;
@@ -3306,7 +3306,7 @@ int wcn36xx_smd_rsp_process(struct rpmsg_device *rpdev,
case WCN36XX_HAL_DELETE_STA_CONTEXT_IND:
case WCN36XX_HAL_PRINT_REG_INFO_IND:
case WCN36XX_HAL_SCAN_OFFLOAD_IND:
- msg_ind = kmalloc(struct_size(msg_ind, msg, len), GFP_ATOMIC);
+ msg_ind = kmalloc_flex(*msg_ind, msg, len, GFP_ATOMIC);
if (!msg_ind) {
wcn36xx_err("Run out of memory while handling SMD_EVENT (%d)\n",
msg_header->msg_type);
diff --git a/drivers/net/wireless/ath/wil6210/cfg80211.c b/drivers/net/wireless/ath/wil6210/cfg80211.c
index 7218fe70f3bc..e0f39ef9ac78 100644
--- a/drivers/net/wireless/ath/wil6210/cfg80211.c
+++ b/drivers/net/wireless/ath/wil6210/cfg80211.c
@@ -691,7 +691,7 @@ wil_cfg80211_add_iface(struct wiphy *wiphy, const char *name,
return ERR_PTR(-EINVAL);
}
- p2p_wdev = kzalloc(sizeof(*p2p_wdev), GFP_KERNEL);
+ p2p_wdev = kzalloc_obj(*p2p_wdev, GFP_KERNEL);
if (!p2p_wdev)
return ERR_PTR(-ENOMEM);
@@ -2394,7 +2394,7 @@ static int wil_cfg80211_probe_client(struct wiphy *wiphy,
if (cid < 0)
return -ENOLINK;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/wil6210/debugfs.c b/drivers/net/wireless/ath/wil6210/debugfs.c
index c021ebcddee7..2e5c24245e6a 100644
--- a/drivers/net/wireless/ath/wil6210/debugfs.c
+++ b/drivers/net/wireless/ath/wil6210/debugfs.c
@@ -1392,7 +1392,7 @@ static int link_show(struct seq_file *s, void *data)
struct station_info *sinfo;
int i, rc = 0;
- sinfo = kzalloc(sizeof(*sinfo), GFP_KERNEL);
+ sinfo = kzalloc_obj(*sinfo, GFP_KERNEL);
if (!sinfo)
return -ENOMEM;
@@ -2441,9 +2441,8 @@ int wil6210_debugfs_init(struct wil6210_priv *wil)
if (IS_ERR_OR_NULL(dbg))
return -ENODEV;
- wil->dbg_data.data_arr = kcalloc(dbg_off_count,
- sizeof(struct wil_debugfs_iomem_data),
- GFP_KERNEL);
+ wil->dbg_data.data_arr = kzalloc_objs(struct wil_debugfs_iomem_data,
+ dbg_off_count, GFP_KERNEL);
if (!wil->dbg_data.data_arr) {
debugfs_remove_recursive(dbg);
wil->debug = NULL;
diff --git a/drivers/net/wireless/ath/wil6210/fw_inc.c b/drivers/net/wireless/ath/wil6210/fw_inc.c
index c3c0b289dcf3..bc172f5a70c9 100644
--- a/drivers/net/wireless/ath/wil6210/fw_inc.c
+++ b/drivers/net/wireless/ath/wil6210/fw_inc.c
@@ -160,8 +160,8 @@ fw_handle_brd_file(struct wil6210_priv *wil, const void *data,
return -EINVAL;
}
- wil->brd_info = kcalloc(max_num_ent, sizeof(struct wil_brd_info),
- GFP_KERNEL);
+ wil->brd_info = kzalloc_objs(struct wil_brd_info, max_num_ent,
+ GFP_KERNEL);
if (!wil->brd_info)
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/wil6210/pmc.c b/drivers/net/wireless/ath/wil6210/pmc.c
index a2f7b4c1da48..8d368c901122 100644
--- a/drivers/net/wireless/ath/wil6210/pmc.c
+++ b/drivers/net/wireless/ath/wil6210/pmc.c
@@ -85,9 +85,8 @@ void wil_pmc_alloc(struct wil6210_priv *wil,
num_descriptors, descriptor_size);
/* allocate descriptors info list in pmc context*/
- pmc->descriptors = kcalloc(num_descriptors,
- sizeof(struct desc_alloc_info),
- GFP_KERNEL);
+ pmc->descriptors = kzalloc_objs(struct desc_alloc_info, num_descriptors,
+ GFP_KERNEL);
if (!pmc->descriptors) {
wil_err(wil, "ERROR allocating pmc skb list\n");
goto no_release_err;
diff --git a/drivers/net/wireless/ath/wil6210/rx_reorder.c b/drivers/net/wireless/ath/wil6210/rx_reorder.c
index d385bc03033a..75bf9dbbf23a 100644
--- a/drivers/net/wireless/ath/wil6210/rx_reorder.c
+++ b/drivers/net/wireless/ath/wil6210/rx_reorder.c
@@ -241,13 +241,13 @@ void wil_rx_bar(struct wil6210_priv *wil, struct wil6210_vif *vif,
struct wil_tid_ampdu_rx *wil_tid_ampdu_rx_alloc(struct wil6210_priv *wil,
int size, u16 ssn)
{
- struct wil_tid_ampdu_rx *r = kzalloc(sizeof(*r), GFP_KERNEL);
+ struct wil_tid_ampdu_rx *r = kzalloc_obj(*r, GFP_KERNEL);
if (!r)
return NULL;
r->reorder_buf =
- kcalloc(size, sizeof(struct sk_buff *), GFP_KERNEL);
+ kzalloc_objs(struct sk_buff *, size, GFP_KERNEL);
if (!r->reorder_buf) {
kfree(r);
return NULL;
diff --git a/drivers/net/wireless/ath/wil6210/txrx.c b/drivers/net/wireless/ath/wil6210/txrx.c
index 19702b6f09c3..e11f30a7bb48 100644
--- a/drivers/net/wireless/ath/wil6210/txrx.c
+++ b/drivers/net/wireless/ath/wil6210/txrx.c
@@ -119,7 +119,7 @@ static int wil_vring_alloc(struct wil6210_priv *wil, struct wil_ring *vring)
vring->swhead = 0;
vring->swtail = 0;
- vring->ctx = kcalloc(vring->size, sizeof(vring->ctx[0]), GFP_KERNEL);
+ vring->ctx = kzalloc_objs(vring->ctx[0], vring->size, GFP_KERNEL);
if (!vring->ctx) {
vring->va = NULL;
return -ENOMEM;
diff --git a/drivers/net/wireless/ath/wil6210/txrx_edma.c b/drivers/net/wireless/ath/wil6210/txrx_edma.c
index 1ba1f21ebea2..e391951346c2 100644
--- a/drivers/net/wireless/ath/wil6210/txrx_edma.c
+++ b/drivers/net/wireless/ath/wil6210/txrx_edma.c
@@ -314,9 +314,8 @@ static int wil_init_rx_buff_arr(struct wil6210_priv *wil,
struct list_head *free = &wil->rx_buff_mgmt.free;
int i;
- wil->rx_buff_mgmt.buff_arr = kcalloc(size + 1,
- sizeof(struct wil_rx_buff),
- GFP_KERNEL);
+ wil->rx_buff_mgmt.buff_arr = kzalloc_objs(struct wil_rx_buff, size + 1,
+ GFP_KERNEL);
if (!wil->rx_buff_mgmt.buff_arr)
return -ENOMEM;
@@ -382,7 +381,7 @@ static int wil_ring_alloc_desc_ring(struct wil6210_priv *wil,
ring->swhead = 0;
ring->swtail = 0;
- ring->ctx = kcalloc(ring->size, sizeof(ring->ctx[0]), GFP_KERNEL);
+ ring->ctx = kzalloc_objs(ring->ctx[0], ring->size, GFP_KERNEL);
if (!ring->ctx)
goto err;
diff --git a/drivers/net/wireless/ath/wil6210/wmi.c b/drivers/net/wireless/ath/wil6210/wmi.c
index 6d376f85fbde..69f9fb19f01b 100644
--- a/drivers/net/wireless/ath/wil6210/wmi.c
+++ b/drivers/net/wireless/ath/wil6210/wmi.c
@@ -1080,7 +1080,7 @@ static void wmi_evt_connect(struct wil6210_vif *vif, int id, void *d, int len)
goto out;
}
- sinfo = kzalloc(sizeof(*sinfo), GFP_KERNEL);
+ sinfo = kzalloc_obj(*sinfo, GFP_KERNEL);
if (!sinfo) {
rc = -ENOMEM;
goto out;
diff --git a/drivers/net/wireless/atmel/at76c50x-usb.c b/drivers/net/wireless/atmel/at76c50x-usb.c
index aa683eacaf38..11554306a5f3 100644
--- a/drivers/net/wireless/atmel/at76c50x-usb.c
+++ b/drivers/net/wireless/atmel/at76c50x-usb.c
@@ -378,7 +378,7 @@ static int at76_usbdfu_download(struct usb_device *udev, u8 *buf, u32 size,
return -EINVAL;
}
- dfu_stat_buf = kmalloc(sizeof(*dfu_stat_buf), GFP_KERNEL);
+ dfu_stat_buf = kmalloc_obj(*dfu_stat_buf, GFP_KERNEL);
if (!dfu_stat_buf) {
ret = -ENOMEM;
goto exit;
@@ -607,7 +607,7 @@ static inline int at76_get_hw_cfg_intersil(struct usb_device *udev,
static int at76_get_hw_config(struct at76_priv *priv)
{
int ret;
- union at76_hwcfg *hwcfg = kmalloc(sizeof(*hwcfg), GFP_KERNEL);
+ union at76_hwcfg *hwcfg = kmalloc_obj(*hwcfg, GFP_KERNEL);
if (!hwcfg)
return -ENOMEM;
@@ -931,7 +931,7 @@ static void at76_dump_mib_mac_addr(struct at76_priv *priv)
{
int i;
int ret;
- struct mib_mac_addr *m = kmalloc(sizeof(*m), GFP_KERNEL);
+ struct mib_mac_addr *m = kmalloc_obj(*m, GFP_KERNEL);
if (!m)
return;
@@ -959,7 +959,7 @@ static void at76_dump_mib_mac_wep(struct at76_priv *priv)
int i;
int ret;
int key_len;
- struct mib_mac_wep *m = kmalloc(sizeof(*m), GFP_KERNEL);
+ struct mib_mac_wep *m = kmalloc_obj(*m, GFP_KERNEL);
if (!m)
return;
@@ -994,7 +994,7 @@ static void at76_dump_mib_mac_wep(struct at76_priv *priv)
static void at76_dump_mib_mac_mgmt(struct at76_priv *priv)
{
int ret;
- struct mib_mac_mgmt *m = kmalloc(sizeof(*m), GFP_KERNEL);
+ struct mib_mac_mgmt *m = kmalloc_obj(*m, GFP_KERNEL);
if (!m)
return;
@@ -1030,7 +1030,7 @@ static void at76_dump_mib_mac_mgmt(struct at76_priv *priv)
static void at76_dump_mib_mac(struct at76_priv *priv)
{
int ret;
- struct mib_mac *m = kmalloc(sizeof(*m), GFP_KERNEL);
+ struct mib_mac *m = kmalloc_obj(*m, GFP_KERNEL);
if (!m)
return;
@@ -1067,7 +1067,7 @@ static void at76_dump_mib_mac(struct at76_priv *priv)
static void at76_dump_mib_phy(struct at76_priv *priv)
{
int ret;
- struct mib_phy *m = kmalloc(sizeof(*m), GFP_KERNEL);
+ struct mib_phy *m = kmalloc_obj(*m, GFP_KERNEL);
if (!m)
return;
@@ -1100,7 +1100,7 @@ static void at76_dump_mib_phy(struct at76_priv *priv)
static void at76_dump_mib_local(struct at76_priv *priv)
{
int ret;
- struct mib_local *m = kmalloc(sizeof(*m), GFP_KERNEL);
+ struct mib_local *m = kmalloc_obj(*m, GFP_KERNEL);
if (!m)
return;
@@ -1125,7 +1125,7 @@ static void at76_dump_mib_local(struct at76_priv *priv)
static void at76_dump_mib_mdomain(struct at76_priv *priv)
{
int ret;
- struct mib_mdomain *m = kmalloc(sizeof(*m), GFP_KERNEL);
+ struct mib_mdomain *m = kmalloc_obj(*m, GFP_KERNEL);
if (!m)
return;
@@ -2442,7 +2442,7 @@ static int at76_probe(struct usb_interface *interface,
udev = usb_get_dev(interface_to_usbdev(interface));
- fwv = kmalloc(sizeof(*fwv), GFP_KERNEL);
+ fwv = kmalloc_obj(*fwv, GFP_KERNEL);
if (!fwv) {
ret = -ENOMEM;
goto exit;
diff --git a/drivers/net/wireless/broadcom/b43/bus.c b/drivers/net/wireless/broadcom/b43/bus.c
index fdb1c82892d6..b6c8697f782b 100644
--- a/drivers/net/wireless/broadcom/b43/bus.c
+++ b/drivers/net/wireless/broadcom/b43/bus.c
@@ -74,7 +74,7 @@ void b43_bus_bcma_block_write(struct b43_bus_dev *dev, const void *buffer,
struct b43_bus_dev *b43_bus_dev_bcma_init(struct bcma_device *core)
{
- struct b43_bus_dev *dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ struct b43_bus_dev *dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return NULL;
@@ -179,7 +179,7 @@ struct b43_bus_dev *b43_bus_dev_ssb_init(struct ssb_device *sdev)
{
struct b43_bus_dev *dev;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return NULL;
diff --git a/drivers/net/wireless/broadcom/b43/debugfs.c b/drivers/net/wireless/broadcom/b43/debugfs.c
index 5a49970afc8c..aa6768a66b03 100644
--- a/drivers/net/wireless/broadcom/b43/debugfs.c
+++ b/drivers/net/wireless/broadcom/b43/debugfs.c
@@ -670,15 +670,15 @@ void b43_debugfs_add_device(struct b43_wldev *dev)
char devdir[16];
B43_WARN_ON(!dev);
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e) {
b43err(dev->wl, "debugfs: add device OOM\n");
return;
}
e->dev = dev;
log = &e->txstatlog;
- log->log = kcalloc(B43_NR_LOGGED_TXSTATUS,
- sizeof(struct b43_txstatus), GFP_KERNEL);
+ log->log = kzalloc_objs(struct b43_txstatus, B43_NR_LOGGED_TXSTATUS,
+ GFP_KERNEL);
if (!log->log) {
b43err(dev->wl, "debugfs: add device txstatus OOM\n");
kfree(e);
diff --git a/drivers/net/wireless/broadcom/b43/dma.c b/drivers/net/wireless/broadcom/b43/dma.c
index 6ac7dcebfff9..eca39555718f 100644
--- a/drivers/net/wireless/broadcom/b43/dma.c
+++ b/drivers/net/wireless/broadcom/b43/dma.c
@@ -838,7 +838,7 @@ struct b43_dmaring *b43_setup_dmaring(struct b43_wldev *dev,
int i, err;
dma_addr_t dma_test;
- ring = kzalloc(sizeof(*ring), GFP_KERNEL);
+ ring = kzalloc_obj(*ring, GFP_KERNEL);
if (!ring)
goto out;
@@ -846,8 +846,8 @@ struct b43_dmaring *b43_setup_dmaring(struct b43_wldev *dev,
if (for_tx)
ring->nr_slots = B43_TXRING_SLOTS;
- ring->meta = kcalloc(ring->nr_slots, sizeof(struct b43_dmadesc_meta),
- GFP_KERNEL);
+ ring->meta = kzalloc_objs(struct b43_dmadesc_meta, ring->nr_slots,
+ GFP_KERNEL);
if (!ring->meta)
goto err_kfree_ring;
for (i = 0; i < ring->nr_slots; i++)
diff --git a/drivers/net/wireless/broadcom/b43/lo.c b/drivers/net/wireless/broadcom/b43/lo.c
index 338b6545a1e7..6fcd7205bda3 100644
--- a/drivers/net/wireless/broadcom/b43/lo.c
+++ b/drivers/net/wireless/broadcom/b43/lo.c
@@ -766,7 +766,7 @@ struct b43_lo_calib *b43_calibrate_lo_setting(struct b43_wldev *dev,
loctl.i, loctl.q);
}
- cal = kmalloc(sizeof(*cal), GFP_KERNEL);
+ cal = kmalloc_obj(*cal, GFP_KERNEL);
if (!cal) {
b43warn(dev->wl, "LO calib: out of memory\n");
return NULL;
diff --git a/drivers/net/wireless/broadcom/b43/main.c b/drivers/net/wireless/broadcom/b43/main.c
index f1a77c4c445f..97e222e9e613 100644
--- a/drivers/net/wireless/broadcom/b43/main.c
+++ b/drivers/net/wireless/broadcom/b43/main.c
@@ -2555,7 +2555,7 @@ static void b43_request_firmware(struct work_struct *work)
int err;
const char *errmsg;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return;
ctx->dev = dev;
@@ -5494,7 +5494,7 @@ static int b43_one_core_attach(struct b43_bus_dev *dev, struct b43_wl *wl)
struct b43_wldev *wldev;
int err = -ENOMEM;
- wldev = kzalloc(sizeof(*wldev), GFP_KERNEL);
+ wldev = kzalloc_obj(*wldev, GFP_KERNEL);
if (!wldev)
goto out;
diff --git a/drivers/net/wireless/broadcom/b43/phy_ac.c b/drivers/net/wireless/broadcom/b43/phy_ac.c
index 756cd44a8104..85af2d791d91 100644
--- a/drivers/net/wireless/broadcom/b43/phy_ac.c
+++ b/drivers/net/wireless/broadcom/b43/phy_ac.c
@@ -17,7 +17,7 @@ static int b43_phy_ac_op_allocate(struct b43_wldev *dev)
{
struct b43_phy_ac *phy_ac;
- phy_ac = kzalloc(sizeof(*phy_ac), GFP_KERNEL);
+ phy_ac = kzalloc_obj(*phy_ac, GFP_KERNEL);
if (!phy_ac)
return -ENOMEM;
dev->phy.ac = phy_ac;
diff --git a/drivers/net/wireless/broadcom/b43/phy_g.c b/drivers/net/wireless/broadcom/b43/phy_g.c
index ac72ca39e409..94038d427b39 100644
--- a/drivers/net/wireless/broadcom/b43/phy_g.c
+++ b/drivers/net/wireless/broadcom/b43/phy_g.c
@@ -2422,14 +2422,14 @@ static int b43_gphy_op_allocate(struct b43_wldev *dev)
struct b43_txpower_lo_control *lo;
int err;
- gphy = kzalloc(sizeof(*gphy), GFP_KERNEL);
+ gphy = kzalloc_obj(*gphy, GFP_KERNEL);
if (!gphy) {
err = -ENOMEM;
goto error;
}
dev->phy.g = gphy;
- lo = kzalloc(sizeof(*lo), GFP_KERNEL);
+ lo = kzalloc_obj(*lo, GFP_KERNEL);
if (!lo) {
err = -ENOMEM;
goto err_free_gphy;
diff --git a/drivers/net/wireless/broadcom/b43/phy_ht.c b/drivers/net/wireless/broadcom/b43/phy_ht.c
index 26a226126bc4..a1a5e699caf1 100644
--- a/drivers/net/wireless/broadcom/b43/phy_ht.c
+++ b/drivers/net/wireless/broadcom/b43/phy_ht.c
@@ -842,7 +842,7 @@ static int b43_phy_ht_op_allocate(struct b43_wldev *dev)
{
struct b43_phy_ht *phy_ht;
- phy_ht = kzalloc(sizeof(*phy_ht), GFP_KERNEL);
+ phy_ht = kzalloc_obj(*phy_ht, GFP_KERNEL);
if (!phy_ht)
return -ENOMEM;
dev->phy.ht = phy_ht;
diff --git a/drivers/net/wireless/broadcom/b43/phy_lcn.c b/drivers/net/wireless/broadcom/b43/phy_lcn.c
index 63bd29f070f7..67b61a915aa2 100644
--- a/drivers/net/wireless/broadcom/b43/phy_lcn.c
+++ b/drivers/net/wireless/broadcom/b43/phy_lcn.c
@@ -669,7 +669,7 @@ static int b43_phy_lcn_op_allocate(struct b43_wldev *dev)
{
struct b43_phy_lcn *phy_lcn;
- phy_lcn = kzalloc(sizeof(*phy_lcn), GFP_KERNEL);
+ phy_lcn = kzalloc_obj(*phy_lcn, GFP_KERNEL);
if (!phy_lcn)
return -ENOMEM;
dev->phy.lcn = phy_lcn;
diff --git a/drivers/net/wireless/broadcom/b43/phy_lp.c b/drivers/net/wireless/broadcom/b43/phy_lp.c
index 0e5c076e7544..622d4fe3b613 100644
--- a/drivers/net/wireless/broadcom/b43/phy_lp.c
+++ b/drivers/net/wireless/broadcom/b43/phy_lp.c
@@ -43,7 +43,7 @@ static int b43_lpphy_op_allocate(struct b43_wldev *dev)
{
struct b43_phy_lp *lpphy;
- lpphy = kzalloc(sizeof(*lpphy), GFP_KERNEL);
+ lpphy = kzalloc_obj(*lpphy, GFP_KERNEL);
if (!lpphy)
return -ENOMEM;
dev->phy.lp = lpphy;
diff --git a/drivers/net/wireless/broadcom/b43/phy_n.c b/drivers/net/wireless/broadcom/b43/phy_n.c
index 4bb005b93f2c..768d9576be41 100644
--- a/drivers/net/wireless/broadcom/b43/phy_n.c
+++ b/drivers/net/wireless/broadcom/b43/phy_n.c
@@ -1549,7 +1549,7 @@ static u16 b43_nphy_gen_load_samples(struct b43_wldev *dev, u32 freq, u16 max,
len = bw << 1;
}
- samples = kcalloc(len, sizeof(struct cordic_iq), GFP_KERNEL);
+ samples = kzalloc_objs(struct cordic_iq, len, GFP_KERNEL);
if (!samples) {
b43err(dev->wl, "allocation for samples generation failed\n");
return 0;
@@ -6417,7 +6417,7 @@ static int b43_nphy_op_allocate(struct b43_wldev *dev)
{
struct b43_phy_n *nphy;
- nphy = kzalloc(sizeof(*nphy), GFP_KERNEL);
+ nphy = kzalloc_obj(*nphy, GFP_KERNEL);
if (!nphy)
return -ENOMEM;
diff --git a/drivers/net/wireless/broadcom/b43/pio.c b/drivers/net/wireless/broadcom/b43/pio.c
index e41f2f5b4c26..135091bec6c4 100644
--- a/drivers/net/wireless/broadcom/b43/pio.c
+++ b/drivers/net/wireless/broadcom/b43/pio.c
@@ -127,7 +127,7 @@ static struct b43_pio_txqueue *b43_setup_pioqueue_tx(struct b43_wldev *dev,
struct b43_pio_txpacket *p;
unsigned int i;
- q = kzalloc(sizeof(*q), GFP_KERNEL);
+ q = kzalloc_obj(*q, GFP_KERNEL);
if (!q)
return NULL;
q->dev = dev;
@@ -161,7 +161,7 @@ static struct b43_pio_rxqueue *b43_setup_pioqueue_rx(struct b43_wldev *dev,
{
struct b43_pio_rxqueue *q;
- q = kzalloc(sizeof(*q), GFP_KERNEL);
+ q = kzalloc_obj(*q, GFP_KERNEL);
if (!q)
return NULL;
q->dev = dev;
diff --git a/drivers/net/wireless/broadcom/b43/sdio.c b/drivers/net/wireless/broadcom/b43/sdio.c
index 02b0cfd535ab..8d19fe48831f 100644
--- a/drivers/net/wireless/broadcom/b43/sdio.c
+++ b/drivers/net/wireless/broadcom/b43/sdio.c
@@ -139,7 +139,7 @@ static int b43_sdio_probe(struct sdio_func *func,
}
sdio_release_host(func);
- sdio = kzalloc(sizeof(*sdio), GFP_KERNEL);
+ sdio = kzalloc_obj(*sdio, GFP_KERNEL);
if (!sdio) {
error = -ENOMEM;
dev_err(&func->dev, "failed to allocate ssb bus\n");
diff --git a/drivers/net/wireless/broadcom/b43legacy/debugfs.c b/drivers/net/wireless/broadcom/b43legacy/debugfs.c
index 5d04bcc216e5..ec1f67f6d328 100644
--- a/drivers/net/wireless/broadcom/b43legacy/debugfs.c
+++ b/drivers/net/wireless/broadcom/b43legacy/debugfs.c
@@ -358,15 +358,15 @@ void b43legacy_debugfs_add_device(struct b43legacy_wldev *dev)
char devdir[16];
B43legacy_WARN_ON(!dev);
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e) {
b43legacyerr(dev->wl, "debugfs: add device OOM\n");
return;
}
e->dev = dev;
log = &e->txstatlog;
- log->log = kcalloc(B43legacy_NR_LOGGED_TXSTATUS,
- sizeof(struct b43legacy_txstatus), GFP_KERNEL);
+ log->log = kzalloc_objs(struct b43legacy_txstatus,
+ B43legacy_NR_LOGGED_TXSTATUS, GFP_KERNEL);
if (!log->log) {
b43legacyerr(dev->wl, "debugfs: add device txstatus OOM\n");
kfree(e);
diff --git a/drivers/net/wireless/broadcom/b43legacy/dma.c b/drivers/net/wireless/broadcom/b43legacy/dma.c
index 60e41de72f29..aff7e9161ffc 100644
--- a/drivers/net/wireless/broadcom/b43legacy/dma.c
+++ b/drivers/net/wireless/broadcom/b43legacy/dma.c
@@ -610,7 +610,7 @@ struct b43legacy_dmaring *b43legacy_setup_dmaring(struct b43legacy_wldev *dev,
int nr_slots;
dma_addr_t dma_test;
- ring = kzalloc(sizeof(*ring), GFP_KERNEL);
+ ring = kzalloc_obj(*ring, GFP_KERNEL);
if (!ring)
goto out;
ring->type = type;
@@ -620,8 +620,8 @@ struct b43legacy_dmaring *b43legacy_setup_dmaring(struct b43legacy_wldev *dev,
if (for_tx)
nr_slots = B43legacy_TXRING_SLOTS;
- ring->meta = kcalloc(nr_slots, sizeof(struct b43legacy_dmadesc_meta),
- GFP_KERNEL);
+ ring->meta = kzalloc_objs(struct b43legacy_dmadesc_meta, nr_slots,
+ GFP_KERNEL);
if (!ring->meta)
goto err_kfree_ring;
if (for_tx) {
diff --git a/drivers/net/wireless/broadcom/b43legacy/main.c b/drivers/net/wireless/broadcom/b43legacy/main.c
index aada342e0b80..0873014a9299 100644
--- a/drivers/net/wireless/broadcom/b43legacy/main.c
+++ b/drivers/net/wireless/broadcom/b43legacy/main.c
@@ -3269,9 +3269,8 @@ static int b43legacy_wireless_core_init(struct b43legacy_wldev *dev)
if ((phy->type == B43legacy_PHYTYPE_B) ||
(phy->type == B43legacy_PHYTYPE_G)) {
- phy->_lo_pairs = kcalloc(B43legacy_LO_COUNT,
- sizeof(struct b43legacy_lopair),
- GFP_KERNEL);
+ phy->_lo_pairs = kzalloc_objs(struct b43legacy_lopair,
+ B43legacy_LO_COUNT, GFP_KERNEL);
if (!phy->_lo_pairs)
return -ENOMEM;
}
@@ -3739,7 +3738,7 @@ static int b43legacy_one_core_attach(struct ssb_device *dev,
struct b43legacy_wldev *wldev;
int err = -ENOMEM;
- wldev = kzalloc(sizeof(*wldev), GFP_KERNEL);
+ wldev = kzalloc_obj(*wldev, GFP_KERNEL);
if (!wldev)
goto out;
diff --git a/drivers/net/wireless/broadcom/b43legacy/pio.c b/drivers/net/wireless/broadcom/b43legacy/pio.c
index aac413d0f629..fd9b79710350 100644
--- a/drivers/net/wireless/broadcom/b43legacy/pio.c
+++ b/drivers/net/wireless/broadcom/b43legacy/pio.c
@@ -320,7 +320,7 @@ struct b43legacy_pioqueue *b43legacy_setup_pioqueue(struct b43legacy_wldev *dev,
u32 value;
u16 qsize;
- queue = kzalloc(sizeof(*queue), GFP_KERNEL);
+ queue = kzalloc_obj(*queue, GFP_KERNEL);
if (!queue)
goto out;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
index f471c962104a..1a6cb3450d58 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
@@ -23,8 +23,7 @@ static int brcmf_bca_alloc_fweh_info(struct brcmf_pub *drvr)
{
struct brcmf_fweh_info *fweh;
- fweh = kzalloc(struct_size(fweh, evt_handler, BRCMF_BCA_E_LAST),
- GFP_KERNEL);
+ fweh = kzalloc_flex(*fweh, evt_handler, BRCMF_BCA_E_LAST, GFP_KERNEL);
if (!fweh)
return -ENOMEM;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c
index 9ec0c60b6da1..1817adc29cd8 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c
@@ -444,7 +444,7 @@ int brcmf_proto_bcdc_attach(struct brcmf_pub *drvr)
{
struct brcmf_bcdc *bcdc;
- bcdc = kzalloc(sizeof(*bcdc), GFP_ATOMIC);
+ bcdc = kzalloc_obj(*bcdc, GFP_ATOMIC);
if (!bcdc)
goto fail;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
index 6a3f187320fc..cf5cf1dce28d 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
@@ -794,7 +794,7 @@ static int brcmf_sdiod_freezer_attach(struct brcmf_sdio_dev *sdiodev)
if (!IS_ENABLED(CONFIG_PM_SLEEP))
return 0;
- sdiodev->freezer = kzalloc(sizeof(*sdiodev->freezer), GFP_KERNEL);
+ sdiodev->freezer = kzalloc_obj(*sdiodev->freezer, GFP_KERNEL);
if (!sdiodev->freezer)
return -ENOMEM;
atomic_set(&sdiodev->freezer->thread_count, 0);
@@ -1067,10 +1067,10 @@ static int brcmf_ops_sdio_probe(struct sdio_func *func,
if (func->num != 2)
return -ENODEV;
- bus_if = kzalloc(sizeof(*bus_if), GFP_KERNEL);
+ bus_if = kzalloc_obj(*bus_if, GFP_KERNEL);
if (!bus_if)
return -ENOMEM;
- sdiodev = kzalloc(sizeof(*sdiodev), GFP_KERNEL);
+ sdiodev = kzalloc_obj(*sdiodev, GFP_KERNEL);
if (!sdiodev) {
kfree(bus_if);
return -ENOMEM;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/btcoex.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/btcoex.c
index 67c0c5a92f99..5aa1dd33bf85 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/btcoex.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/btcoex.c
@@ -362,7 +362,7 @@ int brcmf_btcoex_attach(struct brcmf_cfg80211_info *cfg)
struct brcmf_btcoex_info *btci;
brcmf_dbg(TRACE, "enter\n");
- btci = kmalloc(sizeof(*btci), GFP_KERNEL);
+ btci = kmalloc_obj(*btci, GFP_KERNEL);
if (!btci)
return -ENOMEM;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
index 61f7e620cab3..a442c74423a6 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -2527,7 +2527,7 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev,
offsetof(struct brcmf_assoc_params_le, chanspec_list);
if (cfg->channel)
join_params_size += sizeof(u16);
- ext_join_params = kzalloc(sizeof(*ext_join_params), GFP_KERNEL);
+ ext_join_params = kzalloc_obj(*ext_join_params, GFP_KERNEL);
if (ext_join_params == NULL) {
err = -ENOMEM;
goto done;
@@ -4330,7 +4330,7 @@ brcmf_pmksa_v3_op(struct brcmf_if *ifp, struct cfg80211_pmksa *pmksa,
int length = offsetof(struct brcmf_pmk_op_v3_le, pmk);
int ret;
- pmk_op = kzalloc(sizeof(*pmk_op), GFP_KERNEL);
+ pmk_op = kzalloc_obj(*pmk_op, GFP_KERNEL);
if (!pmk_op)
return -ENOMEM;
@@ -5588,7 +5588,7 @@ brcmf_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
err = -EINVAL;
goto exit;
}
- af_params = kzalloc(sizeof(*af_params), GFP_KERNEL);
+ af_params = kzalloc_obj(*af_params, GFP_KERNEL);
if (af_params == NULL) {
bphy_err(drvr, "unable to allocate frame\n");
err = -ENOMEM;
@@ -6050,7 +6050,7 @@ struct brcmf_cfg80211_vif *brcmf_alloc_vif(struct brcmf_cfg80211_info *cfg,
brcmf_dbg(TRACE, "allocating virtual interface (size=%zu)\n",
sizeof(*vif));
- vif = kzalloc(sizeof(*vif), GFP_KERNEL);
+ vif = kzalloc_obj(*vif, GFP_KERNEL);
if (!vif)
return ERR_PTR(-ENOMEM);
@@ -6540,7 +6540,7 @@ brcmf_notify_connect_status_ap(struct brcmf_cfg80211_info *cfg,
return -EINVAL;
}
- sinfo = kzalloc(sizeof(*sinfo), GFP_KERNEL);
+ sinfo = kzalloc_obj(*sinfo, GFP_KERNEL);
if (!sinfo)
return -ENOMEM;
@@ -6828,7 +6828,7 @@ static void brcmf_deinit_priv_mem(struct brcmf_cfg80211_info *cfg)
static s32 brcmf_init_priv_mem(struct brcmf_cfg80211_info *cfg)
{
- cfg->conf = kzalloc(sizeof(*cfg->conf), GFP_KERNEL);
+ cfg->conf = kzalloc_obj(*cfg->conf, GFP_KERNEL);
if (!cfg->conf)
goto init_priv_mem_out;
cfg->extra_buf = kzalloc(WL_EXTRA_BUF_MAX, GFP_KERNEL);
@@ -7486,7 +7486,7 @@ static int brcmf_setup_ifmodes(struct wiphy *wiphy, struct brcmf_if *ifp)
mchan = brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MCHAN);
n_combos = 1 + !!(p2p && !rsdb) + !!mbss;
- combo = kcalloc(n_combos, sizeof(*combo), GFP_KERNEL);
+ combo = kzalloc_objs(*combo, n_combos, GFP_KERNEL);
if (!combo)
goto err;
@@ -7503,7 +7503,7 @@ static int brcmf_setup_ifmodes(struct wiphy *wiphy, struct brcmf_if *ifp)
c = 0;
i = 0;
n_limits = 1 + mon_flag + (p2p ? 2 : 0) + (rsdb || !p2p);
- c0_limits = kcalloc(n_limits, sizeof(*c0_limits), GFP_KERNEL);
+ c0_limits = kzalloc_objs(*c0_limits, n_limits, GFP_KERNEL);
if (!c0_limits)
goto err;
@@ -7542,7 +7542,7 @@ static int brcmf_setup_ifmodes(struct wiphy *wiphy, struct brcmf_if *ifp)
if (p2p && !rsdb) {
c++;
i = 0;
- p2p_limits = kcalloc(4, sizeof(*p2p_limits), GFP_KERNEL);
+ p2p_limits = kzalloc_objs(*p2p_limits, 4, GFP_KERNEL);
if (!p2p_limits)
goto err;
p2p_limits[i].max = 1;
@@ -7563,8 +7563,7 @@ static int brcmf_setup_ifmodes(struct wiphy *wiphy, struct brcmf_if *ifp)
c++;
i = 0;
n_limits = 1 + mon_flag;
- mbss_limits = kcalloc(n_limits, sizeof(*mbss_limits),
- GFP_KERNEL);
+ mbss_limits = kzalloc_objs(*mbss_limits, n_limits, GFP_KERNEL);
if (!mbss_limits)
goto err;
mbss_limits[i].max = 4;
@@ -8322,7 +8321,7 @@ struct brcmf_cfg80211_info *brcmf_cfg80211_attach(struct brcmf_pub *drvr,
return NULL;
}
- cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
+ cfg = kzalloc_obj(*cfg, GFP_KERNEL);
if (!cfg) {
bphy_err(drvr, "Could not allocate wiphy device\n");
return NULL;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
index 4239f2b21e54..a3bbbb76dd97 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
@@ -507,7 +507,7 @@ static struct brcmf_core *brcmf_chip_add_core(struct brcmf_chip_priv *ci,
{
struct brcmf_core_priv *core;
- core = kzalloc(sizeof(*core), GFP_KERNEL);
+ core = kzalloc_obj(*core, GFP_KERNEL);
if (!core)
return ERR_PTR(-ENOMEM);
@@ -1137,7 +1137,7 @@ struct brcmf_chip *brcmf_chip_attach(void *ctx, u16 devid,
if (err < 0)
return ERR_PTR(-EINVAL);
- chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+ chip = kzalloc_obj(*chip, GFP_KERNEL);
if (!chip)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
index 688f16c51319..cdc9dc733f5b 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
@@ -132,8 +132,7 @@ static int brcmf_c_download_blob(struct brcmf_if *ifp,
brcmf_dbg(TRACE, "Enter\n");
- chunk_buf = kzalloc(struct_size(chunk_buf, data, MAX_CHUNK_LEN),
- GFP_KERNEL);
+ chunk_buf = kzalloc_flex(*chunk_buf, data, MAX_CHUNK_LEN, GFP_KERNEL);
if (!chunk_buf) {
err = -ENOMEM;
return -ENOMEM;
@@ -521,7 +520,7 @@ struct brcmf_mp_device *brcmf_get_module_param(struct device *dev,
brcmf_dbg(INFO, "Enter, bus=%d, chip=%d, rev=%d\n", bus_type, chip,
chiprev);
- settings = kzalloc(sizeof(*settings), GFP_ATOMIC);
+ settings = kzalloc_obj(*settings, GFP_ATOMIC);
if (!settings)
return NULL;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
index 616885d6db3f..99d5fd453cf1 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
@@ -879,7 +879,7 @@ struct brcmf_if *brcmf_add_if(struct brcmf_pub *drvr, s32 bsscfgidx, s32 ifidx,
if (!drvr->settings->p2p_enable && is_p2pdev) {
/* this is P2P_DEVICE interface */
brcmf_dbg(INFO, "allocate non-netdev interface\n");
- ifp = kzalloc(sizeof(*ifp), GFP_KERNEL);
+ ifp = kzalloc_obj(*ifp, GFP_KERNEL);
if (!ifp)
return ERR_PTR(-ENOMEM);
} else {
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c
index 4f0ea4347840..abd38ac8c51e 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c
@@ -66,8 +66,7 @@ static int brcmf_cyw_alloc_fweh_info(struct brcmf_pub *drvr)
{
struct brcmf_fweh_info *fweh;
- fweh = kzalloc(struct_size(fweh, evt_handler, BRCMF_CYW_E_LAST),
- GFP_KERNEL);
+ fweh = kzalloc_flex(*fweh, evt_handler, BRCMF_CYW_E_LAST, GFP_KERNEL);
if (!fweh)
return -ENOMEM;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
index ef79924fd8f4..7b3b0bd1acaf 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
@@ -765,7 +765,7 @@ int brcmf_fw_get_firmwares(struct device *dev, struct brcmf_fw_request *req,
if (!brcmf_fw_request_is_valid(req))
return -EINVAL;
- fwctx = kzalloc(sizeof(*fwctx), GFP_KERNEL);
+ fwctx = kzalloc_obj(*fwctx, GFP_KERNEL);
if (!fwctx)
return -ENOMEM;
@@ -825,7 +825,7 @@ brcmf_fw_alloc_request(u32 chip, u32 chiprev,
return NULL;
}
- fwreq = kzalloc(struct_size(fwreq, items, n_fwnames), GFP_KERNEL);
+ fwreq = kzalloc_flex(*fwreq, items, n_fwnames, GFP_KERNEL);
if (!fwreq)
return NULL;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c
index e1127d7e086d..9184022600d6 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c
@@ -145,7 +145,7 @@ u32 brcmf_flowring_create(struct brcmf_flowring *flow, u8 da[ETH_ALEN],
if (i == flow->nrofrings)
return -ENOMEM;
- ring = kzalloc(sizeof(*ring), GFP_ATOMIC);
+ ring = kzalloc_obj(*ring, GFP_ATOMIC);
if (!ring)
return -ENOMEM;
@@ -360,7 +360,7 @@ struct brcmf_flowring *brcmf_flowring_attach(struct device *dev, u16 nrofrings)
struct brcmf_flowring *flow;
u32 i;
- flow = kzalloc(sizeof(*flow), GFP_KERNEL);
+ flow = kzalloc_obj(*flow, GFP_KERNEL);
if (flow) {
flow->dev = dev;
flow->nrofrings = nrofrings;
@@ -369,8 +369,7 @@ struct brcmf_flowring *brcmf_flowring_attach(struct device *dev, u16 nrofrings)
flow->addr_mode[i] = ADDR_INDIRECT;
for (i = 0; i < ARRAY_SIZE(flow->hash); i++)
flow->hash[i].ifidx = BRCMF_FLOWRING_INVALID_IFIDX;
- flow->rings = kcalloc(nrofrings, sizeof(*flow->rings),
- GFP_KERNEL);
+ flow->rings = kzalloc_objs(*flow->rings, nrofrings, GFP_KERNEL);
if (!flow->rings) {
kfree(flow);
flow = NULL;
@@ -480,7 +479,7 @@ void brcmf_flowring_add_tdls_peer(struct brcmf_flowring *flow, int ifidx,
struct brcmf_flowring_tdls_entry *tdls_entry;
struct brcmf_flowring_tdls_entry *search;
- tdls_entry = kzalloc(sizeof(*tdls_entry), GFP_ATOMIC);
+ tdls_entry = kzalloc_obj(*tdls_entry, GFP_ATOMIC);
if (tdls_entry == NULL)
return;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c
index c2d98ee6652f..984886481f4e 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c
@@ -497,7 +497,7 @@ void brcmf_fweh_process_event(struct brcmf_pub *drvr,
datalen + sizeof(*event_packet) > packet_len)
return;
- event = kzalloc(struct_size(event, data, datalen), gfp);
+ event = kzalloc_flex(*event, data, datalen, gfp);
if (!event)
return;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
index b70d20128f98..b6fab5eb6002 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
@@ -1712,8 +1712,7 @@ void brcmf_fws_rxreorder(struct brcmf_if *ifp, struct sk_buff *pkt)
/* allocate space for flow reorder info */
brcmf_dbg(INFO, "flow-%d: start, maxidx %d\n",
flow_id, max_idx);
- rfi = kzalloc(struct_size(rfi, pktslots, max_idx + 1),
- GFP_ATOMIC);
+ rfi = kzalloc_flex(*rfi, pktslots, max_idx + 1, GFP_ATOMIC);
if (rfi == NULL) {
bphy_err(drvr, "failed to alloc buffer\n");
brcmf_netif_rx(ifp, pkt);
@@ -2343,7 +2342,7 @@ struct brcmf_fws_info *brcmf_fws_attach(struct brcmf_pub *drvr)
int rc;
u32 mode;
- fws = kzalloc(sizeof(*fws), GFP_KERNEL);
+ fws = kzalloc_obj(*fws, GFP_KERNEL);
if (!fws) {
rc = -ENOMEM;
goto fail;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
index 45fbcbdc7d9e..7252cdb6d87a 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
@@ -299,11 +299,11 @@ brcmf_msgbuf_init_pktids(u32 nr_array_entries,
struct brcmf_msgbuf_pktid *array;
struct brcmf_msgbuf_pktids *pktids;
- array = kcalloc(nr_array_entries, sizeof(*array), GFP_KERNEL);
+ array = kzalloc_objs(*array, nr_array_entries, GFP_KERNEL);
if (!array)
return NULL;
- pktids = kzalloc(sizeof(*pktids), GFP_KERNEL);
+ pktids = kzalloc_obj(*pktids, GFP_KERNEL);
if (!pktids) {
kfree(array);
return NULL;
@@ -670,7 +670,7 @@ static u32 brcmf_msgbuf_flowring_create(struct brcmf_msgbuf *msgbuf, int ifidx,
u32 flowid;
ulong flags;
- create = kzalloc(sizeof(*create), GFP_ATOMIC);
+ create = kzalloc_obj(*create, GFP_ATOMIC);
if (create == NULL)
return BRCMF_FLOWRING_INVALID_ID;
@@ -1539,7 +1539,7 @@ int brcmf_proto_msgbuf_attach(struct brcmf_pub *drvr)
if_msgbuf->max_flowrings = BRCMF_FLOWRING_HASHSIZE - 1;
}
- msgbuf = kzalloc(sizeof(*msgbuf), GFP_KERNEL);
+ msgbuf = kzalloc_obj(*msgbuf, GFP_KERNEL);
if (!msgbuf)
goto fail;
@@ -1588,8 +1588,8 @@ int brcmf_proto_msgbuf_attach(struct brcmf_pub *drvr)
msgbuf->flowrings = (struct brcmf_commonring **)if_msgbuf->flowrings;
msgbuf->max_flowrings = if_msgbuf->max_flowrings;
msgbuf->flowring_dma_handle =
- kcalloc(msgbuf->max_flowrings,
- sizeof(*msgbuf->flowring_dma_handle), GFP_KERNEL);
+ kzalloc_objs(*msgbuf->flowring_dma_handle,
+ msgbuf->max_flowrings, GFP_KERNEL);
if (!msgbuf->flowring_dma_handle)
goto fail;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
index 6327f4eca500..d15b98273cd3 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
@@ -1155,7 +1155,7 @@ brcmf_pcie_alloc_dma_and_ring(struct brcmf_pciedev_info *devinfo, u32 ring_id,
addr = tcm_ring_phys_addr + BRCMF_RING_LEN_ITEMS_OFFSET;
brcmf_pcie_write_tcm16(devinfo, addr, ring_itemsize_array[ring_id]);
- ring = kzalloc(sizeof(*ring), GFP_KERNEL);
+ ring = kzalloc_obj(*ring, GFP_KERNEL);
if (!ring) {
dma_free_coherent(&devinfo->pdev->dev, size, dma_buf,
dma_handle);
@@ -1347,7 +1347,7 @@ static int brcmf_pcie_init_ringbuffers(struct brcmf_pciedev_info *devinfo)
devinfo->shared.max_flowrings = max_flowrings;
devinfo->shared.max_submissionrings = max_submissionrings;
devinfo->shared.max_completionrings = max_completionrings;
- rings = kcalloc(max_flowrings, sizeof(*ring), GFP_KERNEL);
+ rings = kzalloc_objs(*ring, max_flowrings, GFP_KERNEL);
if (!rings)
goto fail;
@@ -2199,8 +2199,8 @@ static void brcmf_pcie_setup(struct device *dev, int ret,
bus->msgbuf->commonrings[i] =
&devinfo->shared.commonrings[i]->commonring;
- flowrings = kcalloc(devinfo->shared.max_flowrings, sizeof(*flowrings),
- GFP_KERNEL);
+ flowrings = kzalloc_objs(*flowrings, devinfo->shared.max_flowrings,
+ GFP_KERNEL);
if (!flowrings)
goto fail;
@@ -2457,7 +2457,7 @@ brcmf_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id)
brcmf_dbg(PCIE, "Enter %x:%x\n", pdev->vendor, pdev->device);
ret = -ENOMEM;
- devinfo = kzalloc(sizeof(*devinfo), GFP_KERNEL);
+ devinfo = kzalloc_obj(*devinfo, GFP_KERNEL);
if (devinfo == NULL)
return ret;
@@ -2477,7 +2477,7 @@ brcmf_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id)
else
devinfo->reginfo = &brcmf_reginfo_default;
- pcie_bus_dev = kzalloc(sizeof(*pcie_bus_dev), GFP_KERNEL);
+ pcie_bus_dev = kzalloc_obj(*pcie_bus_dev, GFP_KERNEL);
if (pcie_bus_dev == NULL) {
ret = -ENOMEM;
goto fail;
@@ -2495,12 +2495,12 @@ brcmf_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id)
if (ret < 0)
goto fail;
- bus = kzalloc(sizeof(*bus), GFP_KERNEL);
+ bus = kzalloc_obj(*bus, GFP_KERNEL);
if (!bus) {
ret = -ENOMEM;
goto fail;
}
- bus->msgbuf = kzalloc(sizeof(*bus->msgbuf), GFP_KERNEL);
+ bus->msgbuf = kzalloc_obj(*bus->msgbuf, GFP_KERNEL);
if (!bus->msgbuf) {
ret = -ENOMEM;
kfree(bus);
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c
index 05f66ab13bed..34179e69d77d 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c
@@ -321,7 +321,7 @@ static int brcmf_pno_prep_fwconfig(struct brcmf_pno_info *pi,
}
*buckets = NULL;
- fw_buckets = kcalloc(pi->n_reqs, sizeof(*fw_buckets), GFP_KERNEL);
+ fw_buckets = kzalloc_objs(*fw_buckets, pi->n_reqs, GFP_KERNEL);
if (!fw_buckets)
return -ENOMEM;
@@ -517,7 +517,7 @@ int brcmf_pno_attach(struct brcmf_cfg80211_info *cfg)
struct brcmf_pno_info *pi;
brcmf_dbg(TRACE, "enter\n");
- pi = kzalloc(sizeof(*pi), GFP_KERNEL);
+ pi = kzalloc_obj(*pi, GFP_KERNEL);
if (!pi)
return -ENOMEM;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.c
index 2e911d4874af..7fc441859f52 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.c
@@ -23,7 +23,7 @@ int brcmf_proto_attach(struct brcmf_pub *drvr)
brcmf_dbg(TRACE, "Enter\n");
- proto = kzalloc(sizeof(*proto), GFP_ATOMIC);
+ proto = kzalloc_obj(*proto, GFP_ATOMIC);
if (!proto)
goto fail;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
index 8cf9d7e7c3f7..30c19591c018 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
@@ -4455,7 +4455,7 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
brcmf_dbg(TRACE, "Enter\n");
/* Allocate private bus interface state */
- bus = kzalloc(sizeof(*bus), GFP_ATOMIC);
+ bus = kzalloc_obj(*bus, GFP_ATOMIC);
if (!bus) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
index f0129d10d2b9..0b52f968b907 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
@@ -428,7 +428,7 @@ brcmf_usbdev_qinit(struct list_head *q, int qsize)
int i;
struct brcmf_usbreq *req, *reqs;
- reqs = kcalloc(qsize, sizeof(struct brcmf_usbreq), GFP_ATOMIC);
+ reqs = kzalloc_objs(struct brcmf_usbreq, qsize, GFP_ATOMIC);
if (reqs == NULL)
return NULL;
@@ -1255,7 +1255,7 @@ static int brcmf_usb_probe_cb(struct brcmf_usbdev_info *devinfo,
if (!bus_pub)
return -ENODEV;
- bus = kzalloc(sizeof(*bus), GFP_ATOMIC);
+ bus = kzalloc_obj(*bus, GFP_ATOMIC);
if (!bus) {
ret = -ENOMEM;
goto fail;
@@ -1359,7 +1359,7 @@ brcmf_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
brcmf_dbg(USB, "Enter 0x%04x:0x%04x\n", id->idVendor, id->idProduct);
- devinfo = kzalloc(sizeof(*devinfo), GFP_ATOMIC);
+ devinfo = kzalloc_obj(*devinfo, GFP_ATOMIC);
if (devinfo == NULL)
return -ENOMEM;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c
index 05d7c2a4fba5..9a8351537938 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c
@@ -24,8 +24,7 @@ static int brcmf_wcc_alloc_fweh_info(struct brcmf_pub *drvr)
{
struct brcmf_fweh_info *fweh;
- fweh = kzalloc(struct_size(fweh, evt_handler, BRCMF_WCC_E_LAST),
- GFP_KERNEL);
+ fweh = kzalloc_flex(*fweh, evt_handler, BRCMF_WCC_E_LAST, GFP_KERNEL);
if (!fweh)
return -ENOMEM;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/aiutils.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/aiutils.c
index 0cb64fc56783..6a67db07833e 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/aiutils.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/aiutils.c
@@ -512,7 +512,7 @@ ai_attach(struct bcma_bus *pbus)
struct si_info *sii;
/* alloc struct si_info */
- sii = kzalloc(sizeof(*sii), GFP_ATOMIC);
+ sii = kzalloc_obj(*sii, GFP_ATOMIC);
if (sii == NULL)
return NULL;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c
index e1d707a7c964..fc7a5dd2e5d8 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c
@@ -219,7 +219,7 @@ struct ampdu_info *brcms_c_ampdu_attach(struct brcms_c_info *wlc)
struct ampdu_info *ampdu;
int i;
- ampdu = kzalloc(sizeof(*ampdu), GFP_ATOMIC);
+ ampdu = kzalloc_obj(*ampdu, GFP_ATOMIC);
if (!ampdu)
return NULL;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/antsel.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/antsel.c
index f411bc6d795d..9a3e40528ff7 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/antsel.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/antsel.c
@@ -111,7 +111,7 @@ struct antsel_info *brcms_c_antsel_attach(struct brcms_c_info *wlc)
struct antsel_info *asi;
struct ssb_sprom *sprom = &wlc->hw->d11core->bus->sprom;
- asi = kzalloc(sizeof(*asi), GFP_ATOMIC);
+ asi = kzalloc_obj(*asi, GFP_ATOMIC);
if (!asi)
return NULL;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c
index 3878c4124e25..cdfe8635c012 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c
@@ -331,7 +331,7 @@ struct brcms_cm_info *brcms_c_channel_mgr_attach(struct brcms_c_info *wlc)
const char *ccode = sprom->alpha2;
int ccode_len = sizeof(sprom->alpha2);
- wlc_cm = kzalloc(sizeof(*wlc_cm), GFP_ATOMIC);
+ wlc_cm = kzalloc_obj(*wlc_cm, GFP_ATOMIC);
if (wlc_cm == NULL)
return NULL;
wlc_cm->pub = pub;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c
index c739bf7463b3..9f6ef7ce1b58 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c
@@ -558,7 +558,7 @@ struct dma_pub *dma_attach(char *name, struct brcms_c_info *wlc,
struct si_info *sii = container_of(sih, struct si_info, pub);
/* allocate private info structure */
- di = kzalloc(sizeof(*di), GFP_ATOMIC);
+ di = kzalloc_obj(*di, GFP_ATOMIC);
if (di == NULL)
return NULL;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c
index aadcff1e2b5d..6255d673d2d3 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c
@@ -1499,7 +1499,7 @@ struct brcms_timer *brcms_init_timer(struct brcms_info *wl,
{
struct brcms_timer *t;
- t = kzalloc(sizeof(*t), GFP_ATOMIC);
+ t = kzalloc_obj(*t, GFP_ATOMIC);
if (!t)
return NULL;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c
index c1a9c1e442ee..c7eaf160e1fa 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c
@@ -457,11 +457,11 @@ static struct brcms_bss_cfg *brcms_c_bsscfg_malloc(uint unit)
{
struct brcms_bss_cfg *cfg;
- cfg = kzalloc(sizeof(*cfg), GFP_ATOMIC);
+ cfg = kzalloc_obj(*cfg, GFP_ATOMIC);
if (cfg == NULL)
goto fail;
- cfg->current_bss = kzalloc(sizeof(*cfg->current_bss), GFP_ATOMIC);
+ cfg->current_bss = kzalloc_obj(*cfg->current_bss, GFP_ATOMIC);
if (cfg->current_bss == NULL)
goto fail;
@@ -477,14 +477,14 @@ brcms_c_attach_malloc(uint unit, uint *err, uint devid)
{
struct brcms_c_info *wlc;
- wlc = kzalloc(sizeof(*wlc), GFP_ATOMIC);
+ wlc = kzalloc_obj(*wlc, GFP_ATOMIC);
if (wlc == NULL) {
*err = 1002;
goto fail;
}
/* allocate struct brcms_c_pub state structure */
- wlc->pub = kzalloc(sizeof(*wlc->pub), GFP_ATOMIC);
+ wlc->pub = kzalloc_obj(*wlc->pub, GFP_ATOMIC);
if (wlc->pub == NULL) {
*err = 1003;
goto fail;
@@ -493,7 +493,7 @@ brcms_c_attach_malloc(uint unit, uint *err, uint devid)
/* allocate struct brcms_hardware state structure */
- wlc->hw = kzalloc(sizeof(*wlc->hw), GFP_ATOMIC);
+ wlc->hw = kzalloc_obj(*wlc->hw, GFP_ATOMIC);
if (wlc->hw == NULL) {
*err = 1005;
goto fail;
@@ -501,7 +501,7 @@ brcms_c_attach_malloc(uint unit, uint *err, uint devid)
wlc->hw->wlc = wlc;
wlc->hw->bandstate[0] =
- kcalloc(MAXBANDS, sizeof(struct brcms_hw_band), GFP_ATOMIC);
+ kzalloc_objs(struct brcms_hw_band, MAXBANDS, GFP_ATOMIC);
if (wlc->hw->bandstate[0] == NULL) {
*err = 1006;
goto fail;
@@ -515,14 +515,13 @@ brcms_c_attach_malloc(uint unit, uint *err, uint devid)
}
wlc->modulecb =
- kcalloc(BRCMS_MAXMODULES, sizeof(struct modulecb),
- GFP_ATOMIC);
+ kzalloc_objs(struct modulecb, BRCMS_MAXMODULES, GFP_ATOMIC);
if (wlc->modulecb == NULL) {
*err = 1009;
goto fail;
}
- wlc->default_bss = kzalloc(sizeof(*wlc->default_bss), GFP_ATOMIC);
+ wlc->default_bss = kzalloc_obj(*wlc->default_bss, GFP_ATOMIC);
if (wlc->default_bss == NULL) {
*err = 1010;
goto fail;
@@ -534,20 +533,20 @@ brcms_c_attach_malloc(uint unit, uint *err, uint devid)
goto fail;
}
- wlc->protection = kzalloc(sizeof(*wlc->protection), GFP_ATOMIC);
+ wlc->protection = kzalloc_obj(*wlc->protection, GFP_ATOMIC);
if (wlc->protection == NULL) {
*err = 1016;
goto fail;
}
- wlc->stf = kzalloc(sizeof(*wlc->stf), GFP_ATOMIC);
+ wlc->stf = kzalloc_obj(*wlc->stf, GFP_ATOMIC);
if (wlc->stf == NULL) {
*err = 1017;
goto fail;
}
wlc->bandstate[0] =
- kcalloc(MAXBANDS, sizeof(*wlc->bandstate[0]), GFP_ATOMIC);
+ kzalloc_objs(*wlc->bandstate[0], MAXBANDS, GFP_ATOMIC);
if (wlc->bandstate[0] == NULL) {
*err = 1025;
goto fail;
@@ -560,14 +559,14 @@ brcms_c_attach_malloc(uint unit, uint *err, uint devid)
+ (sizeof(struct brcms_band)*i));
}
- wlc->corestate = kzalloc(sizeof(*wlc->corestate), GFP_ATOMIC);
+ wlc->corestate = kzalloc_obj(*wlc->corestate, GFP_ATOMIC);
if (wlc->corestate == NULL) {
*err = 1026;
goto fail;
}
- wlc->corestate->macstat_snapshot =
- kzalloc(sizeof(*wlc->corestate->macstat_snapshot), GFP_ATOMIC);
+ wlc->corestate->macstat_snapshot = kzalloc_obj(*wlc->corestate->macstat_snapshot,
+ GFP_ATOMIC);
if (wlc->corestate->macstat_snapshot == NULL) {
*err = 1027;
goto fail;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c
index ce6ce2dea39c..7eae73ef7e94 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c
@@ -333,7 +333,7 @@ struct shared_phy *wlc_phy_shared_attach(struct shared_phy_params *shp)
{
struct shared_phy *sh;
- sh = kzalloc(sizeof(*sh), GFP_ATOMIC);
+ sh = kzalloc_obj(*sh, GFP_ATOMIC);
if (sh == NULL)
return NULL;
@@ -420,7 +420,7 @@ wlc_phy_attach(struct shared_phy *sh, struct bcma_device *d11core,
return &pi->pubpi_ro;
}
- pi = kzalloc(sizeof(*pi), GFP_ATOMIC);
+ pi = kzalloc_obj(*pi, GFP_ATOMIC);
if (pi == NULL)
return NULL;
pi->wiphy = wiphy;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c
index 5258681218ea..8cec5ad79fda 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c
@@ -1319,7 +1319,7 @@ wlc_lcnphy_rx_iq_cal(struct brcms_phy *pi,
s16 *ptr;
struct brcms_phy_lcnphy *pi_lcn = pi->u.pi_lcnphy;
- ptr = kmalloc_array(131, sizeof(s16), GFP_ATOMIC);
+ ptr = kmalloc_objs(s16, 131, GFP_ATOMIC);
if (NULL == ptr)
return false;
if (module == 2) {
@@ -3605,7 +3605,7 @@ wlc_lcnphy_a1(struct brcms_phy *pi, int cal_type, int num_levels,
u16 *phy_c32;
phy_c21 = 0;
phy_c10 = phy_c13 = phy_c14 = phy_c8 = 0;
- ptr = kmalloc_array(131, sizeof(s16), GFP_ATOMIC);
+ ptr = kmalloc_objs(s16, 131, GFP_ATOMIC);
if (NULL == ptr)
return;
@@ -4966,7 +4966,7 @@ bool wlc_phy_attach_lcnphy(struct brcms_phy *pi)
{
struct brcms_phy_lcnphy *pi_lcn;
- pi_lcn = kzalloc(sizeof(*pi_lcn), GFP_ATOMIC);
+ pi_lcn = kzalloc_obj(*pi_lcn, GFP_ATOMIC);
if (!pi_lcn)
return false;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c
index b03d5a1f1a93..86cfa3e87a04 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c
@@ -23049,8 +23049,7 @@ wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
tbl_len = (phy_bw << 1);
}
- tone_buf = kmalloc_array(tbl_len, sizeof(struct cordic_iq),
- GFP_ATOMIC);
+ tone_buf = kmalloc_objs(struct cordic_iq, tbl_len, GFP_ATOMIC);
if (tone_buf == NULL)
return 0;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c
index 8b852581c4e4..20cf6379e838 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c
@@ -40,7 +40,7 @@ struct phy_shim_info *wlc_phy_shim_attach(struct brcms_hardware *wlc_hw,
struct brcms_c_info *wlc) {
struct phy_shim_info *physhim;
- physhim = kzalloc(sizeof(*physhim), GFP_ATOMIC);
+ physhim = kzalloc_obj(*physhim, GFP_ATOMIC);
if (!physhim)
return NULL;
diff --git a/drivers/net/wireless/intel/ipw2x00/ipw2100.c b/drivers/net/wireless/intel/ipw2x00/ipw2100.c
index c7c5bc0f1650..029459df3343 100644
--- a/drivers/net/wireless/intel/ipw2x00/ipw2100.c
+++ b/drivers/net/wireless/intel/ipw2x00/ipw2100.c
@@ -1885,9 +1885,8 @@ static int ipw2100_wdev_init(struct net_device *dev)
bg_band->band = NL80211_BAND_2GHZ;
bg_band->n_channels = geo->bg_channels;
- bg_band->channels = kcalloc(geo->bg_channels,
- sizeof(struct ieee80211_channel),
- GFP_KERNEL);
+ bg_band->channels = kzalloc_objs(struct ieee80211_channel,
+ geo->bg_channels, GFP_KERNEL);
if (!bg_band->channels) {
ipw2100_down(priv);
return -ENOMEM;
@@ -3413,9 +3412,8 @@ static int ipw2100_msg_allocate(struct ipw2100_priv *priv)
dma_addr_t p;
priv->msg_buffers =
- kmalloc_array(IPW_COMMAND_POOL_SIZE,
- sizeof(struct ipw2100_tx_packet),
- GFP_KERNEL);
+ kmalloc_objs(struct ipw2100_tx_packet, IPW_COMMAND_POOL_SIZE,
+ GFP_KERNEL);
if (!priv->msg_buffers)
return -ENOMEM;
@@ -4410,9 +4408,8 @@ static int ipw2100_tx_allocate(struct ipw2100_priv *priv)
return err;
}
- priv->tx_buffers = kmalloc_array(TX_PENDED_QUEUE_LENGTH,
- sizeof(struct ipw2100_tx_packet),
- GFP_KERNEL);
+ priv->tx_buffers = kmalloc_objs(struct ipw2100_tx_packet,
+ TX_PENDED_QUEUE_LENGTH, GFP_KERNEL);
if (!priv->tx_buffers) {
bd_queue_free(priv, &priv->tx_queue);
return -ENOMEM;
@@ -4555,9 +4552,8 @@ static int ipw2100_rx_allocate(struct ipw2100_priv *priv)
/*
* allocate packets
*/
- priv->rx_buffers = kmalloc_array(RX_QUEUE_LENGTH,
- sizeof(struct ipw2100_rx_packet),
- GFP_KERNEL);
+ priv->rx_buffers = kmalloc_objs(struct ipw2100_rx_packet,
+ RX_QUEUE_LENGTH, GFP_KERNEL);
if (!priv->rx_buffers) {
IPW_DEBUG_INFO("can't allocate rx packet buffer table\n");
diff --git a/drivers/net/wireless/intel/ipw2x00/ipw2200.c b/drivers/net/wireless/intel/ipw2x00/ipw2200.c
index b0e769da9415..a39985e4a977 100644
--- a/drivers/net/wireless/intel/ipw2x00/ipw2200.c
+++ b/drivers/net/wireless/intel/ipw2x00/ipw2200.c
@@ -3153,8 +3153,7 @@ static int ipw_load_firmware(struct ipw_priv *priv, u8 * data, size_t len)
if (!virts)
return -ENOMEM;
- phys = kmalloc_array(CB_NUMBER_OF_ELEMENTS_SMALL, sizeof(dma_addr_t),
- GFP_KERNEL);
+ phys = kmalloc_objs(dma_addr_t, CB_NUMBER_OF_ELEMENTS_SMALL, GFP_KERNEL);
if (!phys) {
kfree(virts);
return -ENOMEM;
@@ -3723,7 +3722,7 @@ static int ipw_queue_tx_init(struct ipw_priv *priv,
{
struct pci_dev *dev = priv->pci_dev;
- q->txb = kmalloc_array(count, sizeof(q->txb[0]), GFP_KERNEL);
+ q->txb = kmalloc_objs(q->txb[0], count, GFP_KERNEL);
if (!q->txb)
return -ENOMEM;
@@ -5201,7 +5200,7 @@ static struct ipw_rx_queue *ipw_rx_queue_alloc(struct ipw_priv *priv)
struct ipw_rx_queue *rxq;
int i;
- rxq = kzalloc(sizeof(*rxq), GFP_KERNEL);
+ rxq = kzalloc_obj(*rxq, GFP_KERNEL);
if (unlikely(!rxq)) {
IPW_ERROR("memory allocation failed\n");
return NULL;
@@ -8103,7 +8102,7 @@ static int is_duplicate_packet(struct ipw_priv *priv,
break;
}
if (p == &priv->ibss_mac_hash[index]) {
- entry = kmalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kmalloc_obj(*entry, GFP_ATOMIC);
if (!entry) {
IPW_ERROR
("Cannot malloc new mac entry\n");
@@ -11119,8 +11118,7 @@ static int ipw_up(struct ipw_priv *priv)
return -EIO;
if (cmdlog && !priv->cmdlog) {
- priv->cmdlog = kcalloc(cmdlog, sizeof(*priv->cmdlog),
- GFP_KERNEL);
+ priv->cmdlog = kzalloc_objs(*priv->cmdlog, cmdlog, GFP_KERNEL);
if (priv->cmdlog == NULL) {
IPW_ERROR("Error allocating %d command log entries.\n",
cmdlog);
@@ -11279,9 +11277,8 @@ static int ipw_wdev_init(struct net_device *dev)
bg_band->band = NL80211_BAND_2GHZ;
bg_band->n_channels = geo->bg_channels;
- bg_band->channels = kcalloc(geo->bg_channels,
- sizeof(struct ieee80211_channel),
- GFP_KERNEL);
+ bg_band->channels = kzalloc_objs(struct ieee80211_channel,
+ geo->bg_channels, GFP_KERNEL);
if (!bg_band->channels) {
rc = -ENOMEM;
goto out;
@@ -11318,9 +11315,8 @@ static int ipw_wdev_init(struct net_device *dev)
a_band->band = NL80211_BAND_5GHZ;
a_band->n_channels = geo->a_channels;
- a_band->channels = kcalloc(geo->a_channels,
- sizeof(struct ieee80211_channel),
- GFP_KERNEL);
+ a_band->channels = kzalloc_objs(struct ieee80211_channel,
+ geo->a_channels, GFP_KERNEL);
if (!a_band->channels) {
rc = -ENOMEM;
goto out;
diff --git a/drivers/net/wireless/intel/ipw2x00/libipw_crypto.c b/drivers/net/wireless/intel/ipw2x00/libipw_crypto.c
index 243d0c5928a2..e39b95f68dd4 100644
--- a/drivers/net/wireless/intel/ipw2x00/libipw_crypto.c
+++ b/drivers/net/wireless/intel/ipw2x00/libipw_crypto.c
@@ -159,7 +159,7 @@ int libipw_register_crypto_ops(const struct libipw_crypto_ops *ops)
unsigned long flags;
struct libipw_crypto_alg *alg;
- alg = kzalloc(sizeof(*alg), GFP_KERNEL);
+ alg = kzalloc_obj(*alg, GFP_KERNEL);
if (alg == NULL)
return -ENOMEM;
diff --git a/drivers/net/wireless/intel/ipw2x00/libipw_crypto_ccmp.c b/drivers/net/wireless/intel/ipw2x00/libipw_crypto_ccmp.c
index bf900d8c8ad3..631a4dd86cab 100644
--- a/drivers/net/wireless/intel/ipw2x00/libipw_crypto_ccmp.c
+++ b/drivers/net/wireless/intel/ipw2x00/libipw_crypto_ccmp.c
@@ -53,7 +53,7 @@ static void *libipw_ccmp_init(int key_idx)
{
struct libipw_ccmp_data *priv;
- priv = kzalloc(sizeof(*priv), GFP_ATOMIC);
+ priv = kzalloc_obj(*priv, GFP_ATOMIC);
if (priv == NULL)
goto fail;
priv->key_idx = key_idx;
diff --git a/drivers/net/wireless/intel/ipw2x00/libipw_crypto_tkip.c b/drivers/net/wireless/intel/ipw2x00/libipw_crypto_tkip.c
index 32288697da4f..c6b0de8d91ae 100644
--- a/drivers/net/wireless/intel/ipw2x00/libipw_crypto_tkip.c
+++ b/drivers/net/wireless/intel/ipw2x00/libipw_crypto_tkip.c
@@ -87,7 +87,7 @@ static void *libipw_tkip_init(int key_idx)
if (fips_enabled)
return NULL;
- priv = kzalloc(sizeof(*priv), GFP_ATOMIC);
+ priv = kzalloc_obj(*priv, GFP_ATOMIC);
if (priv == NULL)
goto fail;
diff --git a/drivers/net/wireless/intel/ipw2x00/libipw_crypto_wep.c b/drivers/net/wireless/intel/ipw2x00/libipw_crypto_wep.c
index c3a4ccb9de17..96109e123a1a 100644
--- a/drivers/net/wireless/intel/ipw2x00/libipw_crypto_wep.c
+++ b/drivers/net/wireless/intel/ipw2x00/libipw_crypto_wep.c
@@ -37,7 +37,7 @@ static void *libipw_wep_init(int keyidx)
if (fips_enabled)
return NULL;
- priv = kzalloc(sizeof(*priv), GFP_ATOMIC);
+ priv = kzalloc_obj(*priv, GFP_ATOMIC);
if (priv == NULL)
return NULL;
priv->key_idx = keyidx;
diff --git a/drivers/net/wireless/intel/ipw2x00/libipw_module.c b/drivers/net/wireless/intel/ipw2x00/libipw_module.c
index 2ad085b1f492..cc771ee9bac3 100644
--- a/drivers/net/wireless/intel/ipw2x00/libipw_module.c
+++ b/drivers/net/wireless/intel/ipw2x00/libipw_module.c
@@ -57,8 +57,8 @@ static int libipw_networks_allocate(struct libipw_device *ieee)
int i, j;
for (i = 0; i < MAX_NETWORK_COUNT; i++) {
- ieee->networks[i] = kzalloc(sizeof(struct libipw_network),
- GFP_KERNEL);
+ ieee->networks[i] = kzalloc_obj(struct libipw_network,
+ GFP_KERNEL);
if (!ieee->networks[i]) {
LIBIPW_ERROR("Out of memory allocating beacons\n");
for (j = 0; j < i; j++)
diff --git a/drivers/net/wireless/intel/ipw2x00/libipw_tx.c b/drivers/net/wireless/intel/ipw2x00/libipw_tx.c
index 80edaa3dea9c..6e16060834b8 100644
--- a/drivers/net/wireless/intel/ipw2x00/libipw_tx.c
+++ b/drivers/net/wireless/intel/ipw2x00/libipw_tx.c
@@ -180,7 +180,7 @@ static struct libipw_txb *libipw_alloc_txb(int nr_frags, int txb_size,
struct libipw_txb *txb;
int i;
- txb = kzalloc(struct_size(txb, fragments, nr_frags), gfp_mask);
+ txb = kzalloc_flex(*txb, fragments, nr_frags, gfp_mask);
if (!txb)
return NULL;
diff --git a/drivers/net/wireless/intel/ipw2x00/libipw_wx.c b/drivers/net/wireless/intel/ipw2x00/libipw_wx.c
index db71d81b0d4f..3db31b740a0e 100644
--- a/drivers/net/wireless/intel/ipw2x00/libipw_wx.c
+++ b/drivers/net/wireless/intel/ipw2x00/libipw_wx.c
@@ -365,8 +365,7 @@ int libipw_wx_set_encode(struct libipw_device *ieee,
struct libipw_crypt_data *new_crypt;
/* take WEP into use */
- new_crypt = kzalloc(sizeof(struct libipw_crypt_data),
- GFP_KERNEL);
+ new_crypt = kzalloc_obj(struct libipw_crypt_data, GFP_KERNEL);
if (new_crypt == NULL)
return -ENOMEM;
new_crypt->ops = libipw_get_crypto_ops("WEP");
@@ -598,7 +597,7 @@ int libipw_wx_set_encodeext(struct libipw_device *ieee,
libipw_crypt_delayed_deinit(&ieee->crypt_info, crypt);
- new_crypt = kzalloc(sizeof(*new_crypt), GFP_KERNEL);
+ new_crypt = kzalloc_obj(*new_crypt, GFP_KERNEL);
if (new_crypt == NULL) {
ret = -ENOMEM;
goto done;
diff --git a/drivers/net/wireless/intel/iwlegacy/3945-mac.c b/drivers/net/wireless/intel/iwlegacy/3945-mac.c
index 54991f31c52c..c87579e4c7f9 100644
--- a/drivers/net/wireless/intel/iwlegacy/3945-mac.c
+++ b/drivers/net/wireless/intel/iwlegacy/3945-mac.c
@@ -269,7 +269,7 @@ il3945_get_free_frame(struct il_priv *il)
struct il3945_frame *frame;
struct list_head *element;
if (list_empty(&il->free_frames)) {
- frame = kzalloc(sizeof(*frame), GFP_KERNEL);
+ frame = kzalloc_obj(*frame, GFP_KERNEL);
if (!frame) {
IL_ERR("Could not allocate frame!\n");
return NULL;
diff --git a/drivers/net/wireless/intel/iwlegacy/4965-mac.c b/drivers/net/wireless/intel/iwlegacy/4965-mac.c
index 57fa866efd9f..8429b6f5768b 100644
--- a/drivers/net/wireless/intel/iwlegacy/4965-mac.c
+++ b/drivers/net/wireless/intel/iwlegacy/4965-mac.c
@@ -3027,7 +3027,7 @@ il4965_sta_alloc_lq(struct il_priv *il, u8 sta_id)
u32 rate_flags = 0;
__le32 rate_n_flags;
- link_cmd = kzalloc(sizeof(struct il_link_quality_cmd), GFP_KERNEL);
+ link_cmd = kzalloc_obj(struct il_link_quality_cmd, GFP_KERNEL);
if (!link_cmd) {
IL_ERR("Unable to allocate memory for LQ cmd.\n");
return NULL;
@@ -3709,7 +3709,7 @@ il4965_get_free_frame(struct il_priv *il)
struct il_frame *frame;
struct list_head *element;
if (list_empty(&il->free_frames)) {
- frame = kzalloc(sizeof(*frame), GFP_KERNEL);
+ frame = kzalloc_obj(*frame, GFP_KERNEL);
if (!frame) {
IL_ERR("Could not allocate frame!\n");
return NULL;
diff --git a/drivers/net/wireless/intel/iwlegacy/common.c b/drivers/net/wireless/intel/iwlegacy/common.c
index b7bd3ec4cc50..4a12703e9b46 100644
--- a/drivers/net/wireless/intel/iwlegacy/common.c
+++ b/drivers/net/wireless/intel/iwlegacy/common.c
@@ -907,8 +907,7 @@ il_init_channel_map(struct il_priv *il)
D_EEPROM("Parsing data for %d channels.\n", il->channel_count);
il->channel_info =
- kcalloc(il->channel_count, sizeof(struct il_channel_info),
- GFP_KERNEL);
+ kzalloc_objs(struct il_channel_info, il->channel_count, GFP_KERNEL);
if (!il->channel_info) {
IL_ERR("Could not allocate channel_info\n");
il->channel_count = 0;
@@ -2969,9 +2968,8 @@ il_tx_queue_alloc(struct il_priv *il, struct il_tx_queue *txq, u32 id)
/* Driver ilate data, only for Tx (not command) queues,
* not shared with device. */
if (id != il->cmd_queue) {
- txq->skbs = kcalloc(TFD_QUEUE_SIZE_MAX,
- sizeof(struct sk_buff *),
- GFP_KERNEL);
+ txq->skbs = kzalloc_objs(struct sk_buff *, TFD_QUEUE_SIZE_MAX,
+ GFP_KERNEL);
if (!txq->skbs) {
IL_ERR("Fail to alloc skbs\n");
goto error;
@@ -3024,9 +3022,9 @@ il_tx_queue_init(struct il_priv *il, u32 txq_id)
}
txq->meta =
- kcalloc(actual_slots, sizeof(struct il_cmd_meta), GFP_KERNEL);
+ kzalloc_objs(struct il_cmd_meta, actual_slots, GFP_KERNEL);
txq->cmd =
- kcalloc(actual_slots, sizeof(struct il_device_cmd *), GFP_KERNEL);
+ kzalloc_objs(struct il_device_cmd *, actual_slots, GFP_KERNEL);
if (!txq->meta || !txq->cmd)
goto out_free_arrays;
@@ -3444,12 +3442,12 @@ il_init_geos(struct il_priv *il)
}
channels =
- kcalloc(il->channel_count, sizeof(struct ieee80211_channel),
- GFP_KERNEL);
+ kzalloc_objs(struct ieee80211_channel, il->channel_count,
+ GFP_KERNEL);
if (!channels)
return -ENOMEM;
- rates = kcalloc(RATE_COUNT_LEGACY, sizeof(*rates), GFP_KERNEL);
+ rates = kzalloc_objs(*rates, RATE_COUNT_LEGACY, GFP_KERNEL);
if (!rates) {
kfree(channels);
return -ENOMEM;
@@ -4611,9 +4609,8 @@ il_alloc_txq_mem(struct il_priv *il)
{
if (!il->txq)
il->txq =
- kcalloc(il->cfg->num_of_queues,
- sizeof(struct il_tx_queue),
- GFP_KERNEL);
+ kzalloc_objs(struct il_tx_queue, il->cfg->num_of_queues,
+ GFP_KERNEL);
if (!il->txq) {
IL_ERR("Not enough memory for txq\n");
return -ENOMEM;
diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/calib.c b/drivers/net/wireless/intel/iwlwifi/dvm/calib.c
index f488620d2844..94c5d40cdf41 100644
--- a/drivers/net/wireless/intel/iwlwifi/dvm/calib.c
+++ b/drivers/net/wireless/intel/iwlwifi/dvm/calib.c
@@ -63,7 +63,7 @@ int iwl_calib_set(struct iwl_priv *priv,
if (check_sub_overflow(len, sizeof(*cmd), &len))
return -ENOMEM;
- res = kmalloc(struct_size(res, cmd.data, len), GFP_ATOMIC);
+ res = kmalloc_flex(*res, cmd.data, len, GFP_ATOMIC);
if (!res)
return -ENOMEM;
res->cmd = *cmd;
diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/devices.c b/drivers/net/wireless/intel/iwlwifi/dvm/devices.c
index be7e61e2b291..5c8665b5a1b7 100644
--- a/drivers/net/wireless/intel/iwlwifi/dvm/devices.c
+++ b/drivers/net/wireless/intel/iwlwifi/dvm/devices.c
@@ -567,7 +567,7 @@ static int iwl6000_hw_channel_switch(struct iwl_priv *priv,
};
int err;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/eeprom.c b/drivers/net/wireless/intel/iwlwifi/dvm/eeprom.c
index d337ab543eb0..f723884e2a62 100644
--- a/drivers/net/wireless/intel/iwlwifi/dvm/eeprom.c
+++ b/drivers/net/wireless/intel/iwlwifi/dvm/eeprom.c
@@ -1067,8 +1067,7 @@ iwl_parse_eeprom_data(struct iwl_trans *trans, const struct iwl_rf_cfg *cfg,
if (WARN_ON(!cfg || !cfg->eeprom_params))
return NULL;
- data = kzalloc(struct_size(data, channels, IWL_NUM_CHANNELS),
- GFP_KERNEL);
+ data = kzalloc_flex(*data, channels, IWL_NUM_CHANNELS, GFP_KERNEL);
if (!data)
return NULL;
diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/lib.c b/drivers/net/wireless/intel/iwlwifi/dvm/lib.c
index 48711dbcfa5a..bc14ed3060dd 100644
--- a/drivers/net/wireless/intel/iwlwifi/dvm/lib.c
+++ b/drivers/net/wireless/intel/iwlwifi/dvm/lib.c
@@ -1056,7 +1056,7 @@ int iwlagn_suspend(struct iwl_priv *priv, struct cfg80211_wowlan *wowlan)
int ret, i;
u16 seq;
- key_data.rsc_tsc = kzalloc(sizeof(*key_data.rsc_tsc), GFP_KERNEL);
+ key_data.rsc_tsc = kzalloc_obj(*key_data.rsc_tsc, GFP_KERNEL);
if (!key_data.rsc_tsc)
return -ENOMEM;
diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/main.c b/drivers/net/wireless/intel/iwlwifi/dvm/main.c
index 2b4dbebc71c2..ec30b5f3870b 100644
--- a/drivers/net/wireless/intel/iwlwifi/dvm/main.c
+++ b/drivers/net/wireless/intel/iwlwifi/dvm/main.c
@@ -205,7 +205,7 @@ int iwlagn_send_beacon_cmd(struct iwl_priv *priv)
/* Allocate beacon command */
if (!priv->beacon_cmd)
- priv->beacon_cmd = kzalloc(sizeof(*tx_beacon_cmd), GFP_KERNEL);
+ priv->beacon_cmd = kzalloc_obj(*tx_beacon_cmd, GFP_KERNEL);
tx_beacon_cmd = priv->beacon_cmd;
if (!tx_beacon_cmd)
return -ENOMEM;
diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/rx.c b/drivers/net/wireless/intel/iwlwifi/dvm/rx.c
index b34ee68f3dce..088302a238de 100644
--- a/drivers/net/wireless/intel/iwlwifi/dvm/rx.c
+++ b/drivers/net/wireless/intel/iwlwifi/dvm/rx.c
@@ -915,7 +915,7 @@ static void iwlagn_rx_noa_notification(struct iwl_priv *priv,
len += 1 + 2;
copylen += 1 + 2;
- new_data = kmalloc(struct_size(new_data, data, len), GFP_ATOMIC);
+ new_data = kmalloc_flex(*new_data, data, len, GFP_ATOMIC);
if (new_data) {
new_data->length = len;
new_data->data[0] = WLAN_EID_VENDOR_SPECIFIC;
diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/sta.c b/drivers/net/wireless/intel/iwlwifi/dvm/sta.c
index 8b01ab986cb1..b29859f9d7c0 100644
--- a/drivers/net/wireless/intel/iwlwifi/dvm/sta.c
+++ b/drivers/net/wireless/intel/iwlwifi/dvm/sta.c
@@ -864,7 +864,7 @@ iwl_sta_alloc_lq(struct iwl_priv *priv, struct iwl_rxon_context *ctx,
{
struct iwl_link_quality_cmd *link_cmd;
- link_cmd = kzalloc(sizeof(struct iwl_link_quality_cmd), GFP_KERNEL);
+ link_cmd = kzalloc_obj(struct iwl_link_quality_cmd, GFP_KERNEL);
if (!link_cmd) {
IWL_ERR(priv, "Unable to allocate memory for LQ cmd.\n");
return NULL;
diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/tt.c b/drivers/net/wireless/intel/iwlwifi/dvm/tt.c
index 96831ce8da6f..9bfdf033463b 100644
--- a/drivers/net/wireless/intel/iwlwifi/dvm/tt.c
+++ b/drivers/net/wireless/intel/iwlwifi/dvm/tt.c
@@ -595,13 +595,11 @@ void iwl_tt_initialize(struct iwl_priv *priv)
if (priv->lib->adv_thermal_throttle) {
IWL_DEBUG_TEMP(priv, "Advanced Thermal Throttling\n");
- tt->restriction = kcalloc(IWL_TI_STATE_MAX,
- sizeof(struct iwl_tt_restriction),
- GFP_KERNEL);
- tt->transaction = kcalloc(IWL_TI_STATE_MAX *
- (IWL_TI_STATE_MAX - 1),
- sizeof(struct iwl_tt_trans),
- GFP_KERNEL);
+ tt->restriction = kzalloc_objs(struct iwl_tt_restriction,
+ IWL_TI_STATE_MAX, GFP_KERNEL);
+ tt->transaction = kzalloc_objs(struct iwl_tt_trans,
+ IWL_TI_STATE_MAX * (IWL_TI_STATE_MAX - 1),
+ GFP_KERNEL);
if (!tt->restriction || !tt->transaction) {
IWL_ERR(priv, "Fallback to Legacy Throttling\n");
priv->thermal_throttle.advanced_tt = false;
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
index 2ce55859641c..a070593e085f 100644
--- a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
+++ b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
@@ -595,7 +595,7 @@ static struct scatterlist *alloc_sgtable(ssize_t size)
nents -= n_fill;
}
- new = kcalloc(n_alloc, sizeof(*new), GFP_KERNEL);
+ new = kzalloc_objs(*new, n_alloc, GFP_KERNEL);
if (!new) {
if (result)
_devcd_free_sgtable(result);
@@ -2958,8 +2958,8 @@ int iwl_fw_dbg_error_collect(struct iwl_fw_runtime *fwrt,
struct iwl_fw_dump_desc *iwl_dump_error_desc;
int ret;
- iwl_dump_error_desc =
- kmalloc(sizeof(*iwl_dump_error_desc), GFP_KERNEL);
+ iwl_dump_error_desc = kmalloc_obj(*iwl_dump_error_desc,
+ GFP_KERNEL);
if (!iwl_dump_error_desc)
return -ENOMEM;
@@ -3011,7 +3011,7 @@ int iwl_fw_dbg_collect(struct iwl_fw_runtime *fwrt,
delay = le32_to_cpu(trigger->stop_delay) * USEC_PER_MSEC;
}
- desc = kzalloc(struct_size(desc, trig_desc.data, len), GFP_ATOMIC);
+ desc = kzalloc_flex(*desc, trig_desc.data, len, GFP_ATOMIC);
if (!desc)
return -ENOMEM;
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/debugfs.c b/drivers/net/wireless/intel/iwlwifi/fw/debugfs.c
index 3c4bee85b825..21d889344796 100644
--- a/drivers/net/wireless/intel/iwlwifi/fw/debugfs.c
+++ b/drivers/net/wireless/intel/iwlwifi/fw/debugfs.c
@@ -360,7 +360,7 @@ static void *iwl_dbgfs_fw_info_seq_start(struct seq_file *seq, loff_t *pos)
if (*pos >= fw->ucode_capa.n_cmd_versions)
return NULL;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
state->pos = *pos;
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c b/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c
index f297e82d63d2..a45c3a9c223e 100644
--- a/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c
+++ b/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c
@@ -379,7 +379,7 @@ iwl_pnvm_load_pnvm_to_trans(struct iwl_trans *trans,
return;
}
- pnvm_data = kzalloc(sizeof(*pnvm_data), GFP_KERNEL);
+ pnvm_data = kzalloc_obj(*pnvm_data, GFP_KERNEL);
if (!pnvm_data)
goto free;
@@ -425,7 +425,7 @@ iwl_pnvm_load_reduce_power_to_trans(struct iwl_trans *trans,
return;
}
- pnvm_data = kzalloc(sizeof(*pnvm_data), GFP_KERNEL);
+ pnvm_data = kzalloc_obj(*pnvm_data, GFP_KERNEL);
if (!pnvm_data)
goto free;
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c b/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c
index 5240dacf1360..a6733224428a 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c
@@ -71,7 +71,7 @@ static struct iwl_ucode_tlv *iwl_dbg_tlv_add(const struct iwl_ucode_tlv *tlv,
u32 len = le32_to_cpu(tlv->length);
struct iwl_dbg_tlv_node *node;
- node = kzalloc(struct_size(node, tlv.data, len), GFP_KERNEL);
+ node = kzalloc_flex(*node, tlv.data, len, GFP_KERNEL);
if (!node)
return NULL;
@@ -618,7 +618,7 @@ static int iwl_dbg_tlv_alloc_fragments(struct iwl_fw_runtime *fwrt,
num_frags = min_t(u32, num_frags, remain_pages);
frag_pages = DIV_ROUND_UP(remain_pages, num_frags);
- fw_mon->frags = kcalloc(num_frags, sizeof(*fw_mon->frags), GFP_KERNEL);
+ fw_mon->frags = kzalloc_objs(*fw_mon->frags, num_frags, GFP_KERNEL);
if (!fw_mon->frags)
return -ENOMEM;
@@ -1001,7 +1001,7 @@ static void iwl_dbg_tlv_set_periodic_trigs(struct iwl_fw_runtime *fwrt)
collect_interval = le32_to_cpu(trig->data[0]);
- timer_node = kzalloc(sizeof(*timer_node), GFP_KERNEL);
+ timer_node = kzalloc_obj(*timer_node, GFP_KERNEL);
if (!timer_node) {
IWL_ERR(fwrt,
"WRT: Failed to allocate periodic trigger\n");
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
index f8fc6f30fbe5..39e362df0233 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
@@ -1459,7 +1459,7 @@ static int iwl_alloc_ucode_mem(struct fw_img *out, struct fw_img_parsing *img)
{
struct fw_desc *sec;
- sec = kcalloc(img->sec_counter, sizeof(*sec), GFP_KERNEL);
+ sec = kzalloc_objs(*sec, img->sec_counter, GFP_KERNEL);
if (!sec)
return -ENOMEM;
@@ -1622,7 +1622,7 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context)
/* dump all fw memory areas by default */
fw->dbg.dump_mask = 0xffffffff;
- pieces = kzalloc(sizeof(*pieces), GFP_KERNEL);
+ pieces = kzalloc_obj(*pieces, GFP_KERNEL);
if (!pieces)
goto out_free_fw;
@@ -1915,7 +1915,7 @@ struct iwl_drv *iwl_drv_start(struct iwl_trans *trans)
struct iwl_drv *drv;
int ret;
- drv = kzalloc(sizeof(*drv), GFP_KERNEL);
+ drv = kzalloc_obj(*drv, GFP_KERNEL);
if (!drv) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
index e021fc57d85d..75d1db91314b 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
@@ -1377,13 +1377,11 @@ iwl_parse_mei_nvm_data(struct iwl_trans *trans, const struct iwl_rf_cfg *cfg,
u8 tx_chains = fw->valid_rx_ant;
if (cfg->uhb_supported)
- data = kzalloc(struct_size(data, channels,
- IWL_NVM_NUM_CHANNELS_UHB),
- GFP_KERNEL);
+ data = kzalloc_flex(*data, channels, IWL_NVM_NUM_CHANNELS_UHB,
+ GFP_KERNEL);
else
- data = kzalloc(struct_size(data, channels,
- IWL_NVM_NUM_CHANNELS_EXT),
- GFP_KERNEL);
+ data = kzalloc_flex(*data, channels, IWL_NVM_NUM_CHANNELS_EXT,
+ GFP_KERNEL);
if (!data)
return NULL;
@@ -1446,17 +1444,14 @@ iwl_parse_nvm_data(struct iwl_trans *trans, const struct iwl_rf_cfg *cfg,
const __le16 *ch_section;
if (cfg->uhb_supported)
- data = kzalloc(struct_size(data, channels,
- IWL_NVM_NUM_CHANNELS_UHB),
- GFP_KERNEL);
+ data = kzalloc_flex(*data, channels, IWL_NVM_NUM_CHANNELS_UHB,
+ GFP_KERNEL);
else if (cfg->nvm_type != IWL_NVM_EXT)
- data = kzalloc(struct_size(data, channels,
- IWL_NVM_NUM_CHANNELS),
- GFP_KERNEL);
+ data = kzalloc_flex(*data, channels, IWL_NVM_NUM_CHANNELS,
+ GFP_KERNEL);
else
- data = kzalloc(struct_size(data, channels,
- IWL_NVM_NUM_CHANNELS_EXT),
- GFP_KERNEL);
+ data = kzalloc_flex(*data, channels, IWL_NVM_NUM_CHANNELS_EXT,
+ GFP_KERNEL);
if (!data)
return NULL;
@@ -1692,7 +1687,7 @@ iwl_parse_nvm_mcc_info(struct iwl_trans *trans,
num_of_ch);
/* build a regdomain rule for every valid channel */
- regd = kzalloc(struct_size(regd, reg_rules, num_of_ch), GFP_KERNEL);
+ regd = kzalloc_flex(*regd, reg_rules, num_of_ch, GFP_KERNEL);
if (!regd)
return ERR_PTR(-ENOMEM);
@@ -2041,7 +2036,7 @@ struct iwl_nvm_data *iwl_get_nvm(struct iwl_trans *trans,
if (empty_otp)
IWL_INFO(trans, "OTP is empty\n");
- nvm = kzalloc(struct_size(nvm, channels, IWL_NUM_CHANNELS), GFP_KERNEL);
+ nvm = kzalloc_flex(*nvm, channels, IWL_NUM_CHANNELS, GFP_KERNEL);
if (!nvm) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-phy-db.c b/drivers/net/wireless/intel/iwlwifi/iwl-phy-db.c
index 0a93ac769f66..a5e287daf440 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-phy-db.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-phy-db.c
@@ -59,8 +59,7 @@ struct iwl_phy_db_chg_txp {
struct iwl_phy_db *iwl_phy_db_init(struct iwl_trans *trans)
{
- struct iwl_phy_db *phy_db = kzalloc(sizeof(struct iwl_phy_db),
- GFP_KERNEL);
+ struct iwl_phy_db *phy_db = kzalloc_obj(struct iwl_phy_db, GFP_KERNEL);
if (!phy_db)
return phy_db;
@@ -172,9 +171,9 @@ int iwl_phy_db_set_section(struct iwl_phy_db *phy_db,
* Firmware sends the largest index first, so we can use
* it to know how much we should allocate.
*/
- phy_db->calib_ch_group_papd = kcalloc(chg_id + 1,
- sizeof(struct iwl_phy_db_entry),
- GFP_ATOMIC);
+ phy_db->calib_ch_group_papd = kzalloc_objs(struct iwl_phy_db_entry,
+ chg_id + 1,
+ GFP_ATOMIC);
if (!phy_db->calib_ch_group_papd)
return -ENOMEM;
phy_db->n_group_papd = chg_id + 1;
@@ -186,9 +185,9 @@ int iwl_phy_db_set_section(struct iwl_phy_db *phy_db,
* Firmware sends the largest index first, so we can use
* it to know how much we should allocate.
*/
- phy_db->calib_ch_group_txp = kcalloc(chg_id + 1,
- sizeof(struct iwl_phy_db_entry),
- GFP_ATOMIC);
+ phy_db->calib_ch_group_txp = kzalloc_objs(struct iwl_phy_db_entry,
+ chg_id + 1,
+ GFP_ATOMIC);
if (!phy_db->calib_ch_group_txp)
return -ENOMEM;
phy_db->n_group_txp = chg_id + 1;
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-trans.c b/drivers/net/wireless/intel/iwlwifi/iwl-trans.c
index fa1442246662..eebec9b8c169 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-trans.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-trans.c
@@ -46,7 +46,7 @@ iwl_trans_get_restart_data(struct device *dev)
if (data)
return data;
- data = kzalloc(struct_size(data, name, strlen(name) + 1), GFP_ATOMIC);
+ data = kzalloc_flex(*data, name, strlen(name) + 1, GFP_ATOMIC);
if (!data)
return NULL;
@@ -113,7 +113,7 @@ static void iwl_trans_schedule_reprobe(struct iwl_trans *trans,
return;
}
- reprobe = kzalloc(sizeof(*reprobe), GFP_KERNEL);
+ reprobe = kzalloc_obj(*reprobe, GFP_KERNEL);
if (!reprobe) {
module_put(THIS_MODULE);
return;
diff --git a/drivers/net/wireless/intel/iwlwifi/mei/main.c b/drivers/net/wireless/intel/iwlwifi/mei/main.c
index dce0b7cf7b26..f9358cb01103 100644
--- a/drivers/net/wireless/intel/iwlwifi/mei/main.c
+++ b/drivers/net/wireless/intel/iwlwifi/mei/main.c
@@ -702,7 +702,7 @@ static void iwl_mei_handle_csme_filters(struct mei_cl_device *cldev,
rcu_dereference_protected(mei->filters,
lockdep_is_held(&iwl_mei_mutex));
- new_filters = kzalloc(sizeof(*new_filters), GFP_KERNEL);
+ new_filters = kzalloc_obj(*new_filters, GFP_KERNEL);
if (!new_filters)
return;
@@ -886,7 +886,7 @@ static void iwl_mei_handle_nvm(struct mei_cl_device *cldev,
int i;
kfree(mei->nvm);
- mei->nvm = kzalloc(sizeof(*mei_nvm), GFP_KERNEL);
+ mei->nvm = kzalloc_obj(*mei_nvm, GFP_KERNEL);
if (!mei->nvm)
return;
diff --git a/drivers/net/wireless/intel/iwlwifi/mld/d3.c b/drivers/net/wireless/intel/iwlwifi/mld/d3.c
index 6595542e95cf..e7849183dff1 100644
--- a/drivers/net/wireless/intel/iwlwifi/mld/d3.c
+++ b/drivers/net/wireless/intel/iwlwifi/mld/d3.c
@@ -609,10 +609,9 @@ iwl_mld_handle_wowlan_info_notif(struct iwl_mld *mld,
5))
return true;
- converted_notif = kzalloc(struct_size(converted_notif,
- mlo_gtks,
- notif_v5->num_mlo_link_keys),
- GFP_ATOMIC);
+ converted_notif = kzalloc_flex(*converted_notif, mlo_gtks,
+ notif_v5->num_mlo_link_keys,
+ GFP_ATOMIC);
if (!converted_notif) {
IWL_ERR(mld,
"Failed to allocate memory for converted wowlan_info_notif\n");
@@ -1173,8 +1172,7 @@ iwl_mld_set_netdetect_info(struct iwl_mld *mld,
for (int k = 0; k < SCAN_OFFLOAD_MATCHING_CHANNELS_LEN; k++)
n_channels +=
hweight8(matches[i].matching_channels[k]);
- match = kzalloc(struct_size(match, channels, n_channels),
- GFP_KERNEL);
+ match = kzalloc_flex(*match, channels, n_channels, GFP_KERNEL);
if (!match)
return;
@@ -1251,8 +1249,8 @@ iwl_mld_process_netdetect_res(struct iwl_mld *mld,
goto out;
}
n_matches = hweight_long(matched_profiles);
- netdetect_info = kzalloc(struct_size(netdetect_info, matches,
- n_matches), GFP_KERNEL);
+ netdetect_info = kzalloc_flex(*netdetect_info, matches, n_matches,
+ GFP_KERNEL);
if (netdetect_info)
iwl_mld_set_netdetect_info(mld, netdetect_cfg, netdetect_info,
resume_data->netdetect_res,
@@ -1656,7 +1654,7 @@ iwl_mld_suspend_send_security_cmds(struct iwl_mld *mld,
struct iwl_mld_suspend_key_iter_data data = {};
int ret;
- data.rsc = kzalloc(sizeof(*data.rsc), GFP_KERNEL);
+ data.rsc = kzalloc_obj(*data.rsc, GFP_KERNEL);
if (!data.rsc)
return -ENOMEM;
@@ -2002,8 +2000,8 @@ int iwl_mld_wowlan_resume(struct iwl_mld *mld)
iwl_fw_dbg_read_d3_debug_data(&mld->fwrt);
- resume_data.wowlan_status = kzalloc(sizeof(*resume_data.wowlan_status),
- GFP_KERNEL);
+ resume_data.wowlan_status = kzalloc_obj(*resume_data.wowlan_status,
+ GFP_KERNEL);
if (!resume_data.wowlan_status)
return -ENOMEM;
diff --git a/drivers/net/wireless/intel/iwlwifi/mld/iface.c b/drivers/net/wireless/intel/iwlwifi/mld/iface.c
index 743e44ff19cf..b418cbeb30aa 100644
--- a/drivers/net/wireless/intel/iwlwifi/mld/iface.c
+++ b/drivers/net/wireless/intel/iwlwifi/mld/iface.c
@@ -542,7 +542,7 @@ void iwl_mld_handle_probe_resp_data_notif(struct iwl_mld *mld,
notif->noa_attr.len_low))
return;
- new_data = kzalloc(sizeof(*new_data), GFP_KERNEL);
+ new_data = kzalloc_obj(*new_data, GFP_KERNEL);
if (!new_data)
return;
diff --git a/drivers/net/wireless/intel/iwlwifi/mld/link.c b/drivers/net/wireless/intel/iwlwifi/mld/link.c
index d89840a1152b..5640de4662d7 100644
--- a/drivers/net/wireless/intel/iwlwifi/mld/link.c
+++ b/drivers/net/wireless/intel/iwlwifi/mld/link.c
@@ -468,7 +468,7 @@ int iwl_mld_add_link(struct iwl_mld *mld,
if (is_deflink) {
link = &mld_vif->deflink;
} else {
- link = kzalloc(sizeof(*link), GFP_KERNEL);
+ link = kzalloc_obj(*link, GFP_KERNEL);
if (!link)
return -ENOMEM;
}
diff --git a/drivers/net/wireless/intel/iwlwifi/mld/low_latency.c b/drivers/net/wireless/intel/iwlwifi/mld/low_latency.c
index 23362867b400..fb63c8ba800a 100644
--- a/drivers/net/wireless/intel/iwlwifi/mld/low_latency.c
+++ b/drivers/net/wireless/intel/iwlwifi/mld/low_latency.c
@@ -131,8 +131,8 @@ int iwl_mld_low_latency_init(struct iwl_mld *mld)
struct iwl_mld_low_latency *ll = &mld->low_latency;
unsigned long ts = jiffies;
- ll->pkts_counters = kcalloc(mld->trans->info.num_rxqs,
- sizeof(*ll->pkts_counters), GFP_KERNEL);
+ ll->pkts_counters = kzalloc_objs(*ll->pkts_counters,
+ mld->trans->info.num_rxqs, GFP_KERNEL);
if (!ll->pkts_counters)
return -ENOMEM;
diff --git a/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
index 3414b04a6953..54e128fd0141 100644
--- a/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
+++ b/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
@@ -2092,8 +2092,7 @@ static int iwl_mld_alloc_ptk_pn(struct iwl_mld *mld,
return -EINVAL;
WARN_ON(rcu_access_pointer(mld_sta->ptk_pn[keyidx]));
- *ptk_pn = kzalloc(struct_size(*ptk_pn, q, num_rx_queues),
- GFP_KERNEL);
+ *ptk_pn = kzalloc_flex(**ptk_pn, q, num_rx_queues, GFP_KERNEL);
if (!*ptk_pn)
return -ENOMEM;
diff --git a/drivers/net/wireless/intel/iwlwifi/mld/notif.c b/drivers/net/wireless/intel/iwlwifi/mld/notif.c
index 35356b244c0a..240526d8b632 100644
--- a/drivers/net/wireless/intel/iwlwifi/mld/notif.c
+++ b/drivers/net/wireless/intel/iwlwifi/mld/notif.c
@@ -557,7 +557,7 @@ static void iwl_mld_rx_notif(struct iwl_mld *mld,
break;
}
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
/* we can't do much... */
if (!entry)
return;
diff --git a/drivers/net/wireless/intel/iwlwifi/mld/scan.c b/drivers/net/wireless/intel/iwlwifi/mld/scan.c
index 16f48087a888..6679be028a6b 100644
--- a/drivers/net/wireless/intel/iwlwifi/mld/scan.c
+++ b/drivers/net/wireless/intel/iwlwifi/mld/scan.c
@@ -2083,9 +2083,9 @@ void iwl_mld_handle_channel_survey_notif(struct iwl_mld *mld,
n_channels += mld->wiphy->bands[band]->n_channels;
}
- mld->channel_survey = kzalloc(struct_size(mld->channel_survey,
- channels, n_channels),
- GFP_KERNEL);
+ mld->channel_survey = kzalloc_flex(*mld->channel_survey,
+ channels, n_channels,
+ GFP_KERNEL);
if (!mld->channel_survey)
return;
diff --git a/drivers/net/wireless/intel/iwlwifi/mld/sta.c b/drivers/net/wireless/intel/iwlwifi/mld/sta.c
index 6056a306f7cb..0869f2ee7cee 100644
--- a/drivers/net/wireless/intel/iwlwifi/mld/sta.c
+++ b/drivers/net/wireless/intel/iwlwifi/mld/sta.c
@@ -539,7 +539,7 @@ iwl_mld_add_link_sta(struct iwl_mld *mld, struct ieee80211_link_sta *link_sta)
if (link_sta == &link_sta->sta->deflink) {
mld_link_sta = &mld_sta->deflink;
} else {
- mld_link_sta = kzalloc(sizeof(*mld_link_sta), GFP_KERNEL);
+ mld_link_sta = kzalloc_obj(*mld_link_sta, GFP_KERNEL);
if (!mld_link_sta)
return -ENOMEM;
}
@@ -660,8 +660,8 @@ iwl_mld_alloc_dup_data(struct iwl_mld *mld, struct iwl_mld_sta *mld_sta)
if (mld->fw_status.in_hw_restart)
return 0;
- dup_data = kcalloc(mld->trans->info.num_rxqs, sizeof(*dup_data),
- GFP_KERNEL);
+ dup_data = kzalloc_objs(*dup_data, mld->trans->info.num_rxqs,
+ GFP_KERNEL);
if (!dup_data)
return -ENOMEM;
@@ -695,9 +695,9 @@ static void iwl_mld_alloc_mpdu_counters(struct iwl_mld *mld,
sta->tdls || !ieee80211_vif_is_mld(vif))
return;
- mld_sta->mpdu_counters = kcalloc(mld->trans->info.num_rxqs,
- sizeof(*mld_sta->mpdu_counters),
- GFP_KERNEL);
+ mld_sta->mpdu_counters = kzalloc_objs(*mld_sta->mpdu_counters,
+ mld->trans->info.num_rxqs,
+ GFP_KERNEL);
if (!mld_sta->mpdu_counters)
return;
diff --git a/drivers/net/wireless/intel/iwlwifi/mld/time_sync.c b/drivers/net/wireless/intel/iwlwifi/mld/time_sync.c
index 50799f9bfccb..ad6f5c40f23d 100644
--- a/drivers/net/wireless/intel/iwlwifi/mld/time_sync.c
+++ b/drivers/net/wireless/intel/iwlwifi/mld/time_sync.c
@@ -12,8 +12,8 @@
static int iwl_mld_init_time_sync(struct iwl_mld *mld, u32 protocols,
const u8 *addr)
{
- struct iwl_mld_time_sync_data *time_sync = kzalloc(sizeof(*time_sync),
- GFP_KERNEL);
+ struct iwl_mld_time_sync_data *time_sync = kzalloc_obj(*time_sync,
+ GFP_KERNEL);
if (!time_sync)
return -ENOMEM;
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c
index 6c225861db61..8df70323d426 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c
@@ -460,7 +460,7 @@ static int iwl_mvm_wowlan_config_rsc_tsc(struct iwl_mvm *mvm,
struct wowlan_key_rsc_v5_data data = {};
int i;
- data.rsc = kzalloc(sizeof(*data.rsc), GFP_KERNEL);
+ data.rsc = kzalloc_obj(*data.rsc, GFP_KERNEL);
if (!data.rsc)
return -ENOMEM;
@@ -483,7 +483,7 @@ static int iwl_mvm_wowlan_config_rsc_tsc(struct iwl_mvm *mvm,
} else if (ver == 2 || ver == IWL_FW_CMD_VER_UNKNOWN) {
struct wowlan_key_rsc_tsc_data data = {};
- data.rsc_tsc = kzalloc(sizeof(*data.rsc_tsc), GFP_KERNEL);
+ data.rsc_tsc = kzalloc_obj(*data.rsc_tsc, GFP_KERNEL);
if (!data.rsc_tsc)
return -ENOMEM;
@@ -2605,8 +2605,7 @@ static void iwl_mvm_query_netdetect_reasons(struct iwl_mvm *mvm,
n_matches = 0;
}
- net_detect = kzalloc(struct_size(net_detect, matches, n_matches),
- GFP_KERNEL);
+ net_detect = kzalloc_flex(*net_detect, matches, n_matches, GFP_KERNEL);
if (!net_detect || !n_matches)
goto out_report_nd;
net_detect->n_matches = n_matches;
@@ -2620,8 +2619,7 @@ static void iwl_mvm_query_netdetect_reasons(struct iwl_mvm *mvm,
d3_data->nd_results,
i);
- match = kzalloc(struct_size(match, channels, n_channels),
- GFP_KERNEL);
+ match = kzalloc_flex(*match, channels, n_channels, GFP_KERNEL);
if (!match)
goto out_report_nd;
match->n_channels = n_channels;
@@ -3093,7 +3091,7 @@ static int __iwl_mvm_resume(struct iwl_mvm *mvm)
}
if (resume_notif_based) {
- d3_data.status = kzalloc(sizeof(*d3_data.status), GFP_KERNEL);
+ d3_data.status = kzalloc_obj(*d3_data.status, GFP_KERNEL);
if (!d3_data.status) {
IWL_ERR(mvm, "Failed to allocate wowlan status\n");
ret = -ENOMEM;
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c b/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
index a493ef6bedc3..0a21670a9207 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
@@ -1124,7 +1124,7 @@ static void iwl_mvm_ftm_rtt_smoothing(struct iwl_mvm *mvm,
}
if (!resp) {
- resp = kzalloc(sizeof(*resp), GFP_KERNEL);
+ resp = kzalloc_obj(*resp, GFP_KERNEL);
if (!resp)
return;
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
index 0e5820c13523..a633f0d9c821 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
@@ -1764,7 +1764,7 @@ void iwl_mvm_probe_resp_data_notif(struct iwl_mvm *mvm,
notif->noa_attr.len_low))
return;
- new_data = kzalloc(sizeof(*new_data), GFP_KERNEL);
+ new_data = kzalloc_obj(*new_data, GFP_KERNEL);
if (!new_data)
return;
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
index 169c87588938..aeaa1d4b312d 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
@@ -4348,9 +4348,9 @@ static int __iwl_mvm_mac_set_key(struct ieee80211_hw *hw,
int tid, q;
WARN_ON(rcu_access_pointer(mvmsta->ptk_pn[keyidx]));
- ptk_pn = kzalloc(struct_size(ptk_pn, q,
- mvm->trans->info.num_rxqs),
- GFP_KERNEL);
+ ptk_pn = kzalloc_flex(*ptk_pn, q,
+ mvm->trans->info.num_rxqs,
+ GFP_KERNEL);
if (!ptk_pn) {
ret = -ENOMEM;
break;
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
index 075ff09e93cc..00ba47d5f499 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
@@ -905,7 +905,7 @@ iwl_mvm_mld_change_vif_links(struct ieee80211_hw *hw,
if (!(added & BIT(i)))
continue;
- new_link[i] = kzalloc(sizeof(*new_link[i]), GFP_KERNEL);
+ new_link[i] = kzalloc_obj(*new_link[i], GFP_KERNEL);
if (!new_link[i]) {
err = -ENOMEM;
goto free;
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c b/drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
index 1100d763ceb6..8417b76e8fdb 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c
@@ -547,7 +547,7 @@ static int iwl_mvm_mld_alloc_sta_link(struct iwl_mvm *mvm,
if (rcu_access_pointer(sta->link[link_id]) == &sta->deflink) {
link = &mvm_sta->deflink;
} else {
- link = kzalloc(sizeof(*link), GFP_KERNEL);
+ link = kzalloc_obj(*link, GFP_KERNEL);
if (!link)
return -ENOMEM;
}
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
index 5ebd046371f5..be328607e6f8 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
@@ -1097,7 +1097,7 @@ static void iwl_mvm_me_conn_status(void *priv, const struct iwl_mei_conn_info *c
*/
prev_conn_info = rcu_dereference_protected(mvm->csme_conn_info, true);
- curr_conn_info = kzalloc(sizeof(*curr_conn_info), GFP_KERNEL);
+ curr_conn_info = kzalloc_obj(*curr_conn_info, GFP_KERNEL);
if (!curr_conn_info)
return;
@@ -1747,7 +1747,7 @@ static void iwl_mvm_rx_common(struct iwl_mvm *mvm,
return;
}
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
/* we can't do much... */
if (!entry)
return;
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
index 9c51953d255d..3e39c243ddca 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
@@ -547,7 +547,7 @@ iwl_mvm_config_sched_scan_profiles(struct iwl_mvm *mvm,
else
blocklist_len = IWL_SCAN_MAX_BLACKLIST_LEN;
- blocklist = kcalloc(blocklist_len, sizeof(*blocklist), GFP_KERNEL);
+ blocklist = kzalloc_objs(*blocklist, blocklist_len, GFP_KERNEL);
if (!blocklist)
return -ENOMEM;
@@ -3603,9 +3603,8 @@ void iwl_mvm_rx_channel_survey_notif(struct iwl_mvm *mvm,
n_channels += mvm->hw->wiphy->bands[band]->n_channels;
}
- mvm->acs_survey = kzalloc(struct_size(mvm->acs_survey,
- channels, n_channels),
- GFP_KERNEL);
+ mvm->acs_survey = kzalloc_flex(*mvm->acs_survey, channels,
+ n_channels, GFP_KERNEL);
if (!mvm->acs_survey)
return;
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
index 363232bb74fa..5f37ee7b9ab1 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
@@ -1798,8 +1798,8 @@ int iwl_mvm_sta_init(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
if (iwl_mvm_has_new_rx_api(mvm)) {
int q;
- dup_data = kcalloc(mvm->trans->info.num_rxqs,
- sizeof(*dup_data), GFP_KERNEL);
+ dup_data = kzalloc_objs(*dup_data, mvm->trans->info.num_rxqs,
+ GFP_KERNEL);
if (!dup_data)
return -ENOMEM;
/*
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info.c b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info.c
index 0957223c776d..65b54f1e6347 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info.c
@@ -99,10 +99,10 @@ int iwl_pcie_init_fw_sec(struct iwl_trans *trans,
/* add 2 due to separators */
paging_cnt = iwl_pcie_get_num_sections(fw, lmac_cnt + umac_cnt + 2);
- dram->fw = kcalloc(umac_cnt + lmac_cnt, sizeof(*dram->fw), GFP_KERNEL);
+ dram->fw = kzalloc_objs(*dram->fw, umac_cnt + lmac_cnt, GFP_KERNEL);
if (!dram->fw)
return -ENOMEM;
- dram->paging = kcalloc(paging_cnt, sizeof(*dram->paging), GFP_KERNEL);
+ dram->paging = kzalloc_objs(*dram->paging, paging_cnt, GFP_KERNEL);
if (!dram->paging)
return -ENOMEM;
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/rx.c b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/rx.c
index 619a9505e6d9..4e23b292e4df 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/rx.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/rx.c
@@ -773,15 +773,14 @@ static int iwl_pcie_rx_alloc(struct iwl_trans *trans)
if (WARN_ON(trans_pcie->rxq))
return -EINVAL;
- trans_pcie->rxq = kcalloc(trans->info.num_rxqs, sizeof(struct iwl_rxq),
- GFP_KERNEL);
- trans_pcie->rx_pool = kcalloc(RX_POOL_SIZE(trans_pcie->num_rx_bufs),
- sizeof(trans_pcie->rx_pool[0]),
- GFP_KERNEL);
+ trans_pcie->rxq = kzalloc_objs(struct iwl_rxq, trans->info.num_rxqs,
+ GFP_KERNEL);
+ trans_pcie->rx_pool = kzalloc_objs(trans_pcie->rx_pool[0],
+ RX_POOL_SIZE(trans_pcie->num_rx_bufs),
+ GFP_KERNEL);
trans_pcie->global_table =
- kcalloc(RX_POOL_SIZE(trans_pcie->num_rx_bufs),
- sizeof(trans_pcie->global_table[0]),
- GFP_KERNEL);
+ kzalloc_objs(trans_pcie->global_table[0],
+ RX_POOL_SIZE(trans_pcie->num_rx_bufs), GFP_KERNEL);
if (!trans_pcie->rxq || !trans_pcie->rx_pool ||
!trans_pcie->global_table) {
ret = -ENOMEM;
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/trans.c b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/trans.c
index 415a19ea9f06..ec88aefb0913 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/trans.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/trans.c
@@ -2303,7 +2303,7 @@ void iwl_trans_pcie_reset(struct iwl_trans *trans, enum iwl_reset_mode mode)
return;
}
- removal = kzalloc(sizeof(*removal), GFP_ATOMIC);
+ removal = kzalloc_obj(*removal, GFP_ATOMIC);
if (!removal) {
module_put(THIS_MODULE);
return;
@@ -2748,7 +2748,7 @@ static void *iwl_dbgfs_tx_queue_seq_start(struct seq_file *seq, loff_t *pos)
if (*pos >= priv->trans->mac_cfg->base->num_of_queues)
return NULL;
- state = kmalloc(sizeof(*state), GFP_KERNEL);
+ state = kmalloc_obj(*state, GFP_KERNEL);
if (!state)
return NULL;
state->pos = *pos;
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/tx-gen2.c b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/tx-gen2.c
index df0545f09da9..f2752ab4c402 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/tx-gen2.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/tx-gen2.c
@@ -928,7 +928,7 @@ iwl_txq_dyn_alloc_dma(struct iwl_trans *trans, int size, unsigned int timeout)
if (WARN_ON(size > bc_tbl_entries))
return ERR_PTR(-EINVAL);
- txq = kzalloc(sizeof(*txq), GFP_KERNEL);
+ txq = kzalloc_obj(*txq, GFP_KERNEL);
if (!txq)
return ERR_PTR(-ENOMEM);
@@ -1152,7 +1152,7 @@ int iwl_txq_gen2_init(struct iwl_trans *trans, int txq_id, int queue_size)
/* alloc and init the tx queue */
if (!trans_pcie->txqs.txq[txq_id]) {
- queue = kzalloc(sizeof(*queue), GFP_KERNEL);
+ queue = kzalloc_obj(*queue, GFP_KERNEL);
if (!queue) {
IWL_ERR(trans, "Not enough memory for tx queue\n");
return -ENOMEM;
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/tx.c b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/tx.c
index 6e85aa519e1b..0b817e5c5679 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/tx.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/tx.c
@@ -741,9 +741,8 @@ int iwl_pcie_txq_alloc(struct iwl_trans *trans, struct iwl_txq *txq,
txq->n_window = slots_num;
- txq->entries = kcalloc(slots_num,
- sizeof(struct iwl_pcie_txq_entry),
- GFP_KERNEL);
+ txq->entries = kzalloc_objs(struct iwl_pcie_txq_entry, slots_num,
+ GFP_KERNEL);
if (!txq->entries)
goto error;
@@ -751,8 +750,7 @@ int iwl_pcie_txq_alloc(struct iwl_trans *trans, struct iwl_txq *txq,
if (cmd_queue)
for (i = 0; i < slots_num; i++) {
txq->entries[i].cmd =
- kmalloc(sizeof(struct iwl_device_cmd),
- GFP_KERNEL);
+ kmalloc_obj(struct iwl_device_cmd, GFP_KERNEL);
if (!txq->entries[i].cmd)
goto error;
}
@@ -838,8 +836,8 @@ static int iwl_pcie_tx_alloc(struct iwl_trans *trans)
}
trans_pcie->txq_memory =
- kcalloc(trans->mac_cfg->base->num_of_queues,
- sizeof(struct iwl_txq), GFP_KERNEL);
+ kzalloc_objs(struct iwl_txq,
+ trans->mac_cfg->base->num_of_queues, GFP_KERNEL);
if (!trans_pcie->txq_memory) {
IWL_ERR(trans, "Not enough memory for txq\n");
ret = -ENOMEM;
diff --git a/drivers/net/wireless/intersil/p54/eeprom.c b/drivers/net/wireless/intersil/p54/eeprom.c
index 5bd35c147e19..c338a7a7fc41 100644
--- a/drivers/net/wireless/intersil/p54/eeprom.c
+++ b/drivers/net/wireless/intersil/p54/eeprom.c
@@ -154,13 +154,12 @@ static int p54_generate_band(struct ieee80211_hw *dev,
if ((!list->entries) || (!list->band_channel_num[band]))
return -EINVAL;
- tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
goto err_out;
- tmp->channels = kcalloc(list->band_channel_num[band],
- sizeof(struct ieee80211_channel),
- GFP_KERNEL);
+ tmp->channels = kzalloc_objs(struct ieee80211_channel,
+ list->band_channel_num[band], GFP_KERNEL);
if (!tmp->channels)
goto err_out;
@@ -336,23 +335,22 @@ static int p54_generate_channel_lists(struct ieee80211_hw *dev)
max_channel_num = max_t(unsigned int, max_channel_num,
priv->curve_data->entries);
- list = kzalloc(sizeof(*list), GFP_KERNEL);
+ list = kzalloc_obj(*list, GFP_KERNEL);
if (!list) {
ret = -ENOMEM;
goto free;
}
priv->chan_num = max_channel_num;
- priv->survey = kcalloc(max_channel_num, sizeof(struct survey_info),
- GFP_KERNEL);
+ priv->survey = kzalloc_objs(struct survey_info, max_channel_num,
+ GFP_KERNEL);
if (!priv->survey) {
ret = -ENOMEM;
goto free;
}
list->max_entries = max_channel_num;
- list->channels = kcalloc(max_channel_num,
- sizeof(struct p54_channel_entry),
- GFP_KERNEL);
+ list->channels = kzalloc_objs(struct p54_channel_entry, max_channel_num,
+ GFP_KERNEL);
if (!list->channels) {
ret = -ENOMEM;
goto free;
diff --git a/drivers/net/wireless/intersil/p54/p54usb.c b/drivers/net/wireless/intersil/p54/p54usb.c
index cae47663b17b..c0d3b5329f4e 100644
--- a/drivers/net/wireless/intersil/p54/p54usb.c
+++ b/drivers/net/wireless/intersil/p54/p54usb.c
@@ -328,7 +328,7 @@ static void p54u_tx_net2280(struct ieee80211_hw *dev, struct sk_buff *skb)
struct net2280_reg_write *reg = NULL;
int err = -ENOMEM;
- reg = kmalloc(sizeof(*reg), GFP_ATOMIC);
+ reg = kmalloc_obj(*reg, GFP_ATOMIC);
if (!reg)
goto out;
diff --git a/drivers/net/wireless/marvell/libertas/cfg.c b/drivers/net/wireless/marvell/libertas/cfg.c
index caba7491cd5a..331b0b69ce62 100644
--- a/drivers/net/wireless/marvell/libertas/cfg.c
+++ b/drivers/net/wireless/marvell/libertas/cfg.c
@@ -2094,7 +2094,7 @@ struct wireless_dev *lbs_cfg_alloc(struct device *dev)
int ret = 0;
struct wireless_dev *wdev;
- wdev = kzalloc(sizeof(struct wireless_dev), GFP_KERNEL);
+ wdev = kzalloc_obj(struct wireless_dev, GFP_KERNEL);
if (!wdev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/wireless/marvell/libertas/debugfs.c b/drivers/net/wireless/marvell/libertas/debugfs.c
index c604613ab506..d2dc9128dae2 100644
--- a/drivers/net/wireless/marvell/libertas/debugfs.c
+++ b/drivers/net/wireless/marvell/libertas/debugfs.c
@@ -232,7 +232,7 @@ static ssize_t lbs_threshold_read(uint16_t tlv_type, uint16_t event_mask,
if (!buf)
return -ENOMEM;
- subscribed = kzalloc(sizeof(*subscribed), GFP_KERNEL);
+ subscribed = kzalloc_obj(*subscribed, GFP_KERNEL);
if (!subscribed) {
ret = -ENOMEM;
goto out_page;
@@ -288,7 +288,7 @@ static ssize_t lbs_threshold_write(uint16_t tlv_type, uint16_t event_mask,
ret = -EINVAL;
goto out_page;
}
- events = kzalloc(sizeof(*events), GFP_KERNEL);
+ events = kzalloc_obj(*events, GFP_KERNEL);
if (!events) {
ret = -ENOMEM;
goto out_page;
diff --git a/drivers/net/wireless/marvell/libertas/if_sdio.c b/drivers/net/wireless/marvell/libertas/if_sdio.c
index fc5318035822..b814cf9032ad 100644
--- a/drivers/net/wireless/marvell/libertas/if_sdio.c
+++ b/drivers/net/wireless/marvell/libertas/if_sdio.c
@@ -1158,7 +1158,7 @@ static int if_sdio_probe(struct sdio_func *func,
return -ENODEV;
}
- card = kzalloc(sizeof(struct if_sdio_card), GFP_KERNEL);
+ card = kzalloc_obj(struct if_sdio_card, GFP_KERNEL);
if (!card)
return -ENOMEM;
diff --git a/drivers/net/wireless/marvell/libertas/if_spi.c b/drivers/net/wireless/marvell/libertas/if_spi.c
index 8a2504a62840..a21f7bba13c5 100644
--- a/drivers/net/wireless/marvell/libertas/if_spi.c
+++ b/drivers/net/wireless/marvell/libertas/if_spi.c
@@ -1113,7 +1113,7 @@ static int if_spi_probe(struct spi_device *spi)
}
/* Allocate card structure to represent this specific device */
- card = kzalloc(sizeof(struct if_spi_card), GFP_KERNEL);
+ card = kzalloc_obj(struct if_spi_card, GFP_KERNEL);
if (!card) {
err = -ENOMEM;
goto teardown;
diff --git a/drivers/net/wireless/marvell/libertas/if_usb.c b/drivers/net/wireless/marvell/libertas/if_usb.c
index 924ab93b7b67..e02756d7e87a 100644
--- a/drivers/net/wireless/marvell/libertas/if_usb.c
+++ b/drivers/net/wireless/marvell/libertas/if_usb.c
@@ -203,7 +203,7 @@ static int if_usb_probe(struct usb_interface *intf,
udev = interface_to_usbdev(intf);
- cardp = kzalloc(sizeof(struct if_usb_card), GFP_KERNEL);
+ cardp = kzalloc_obj(struct if_usb_card, GFP_KERNEL);
if (!cardp)
goto error;
diff --git a/drivers/net/wireless/marvell/libertas/mesh.c b/drivers/net/wireless/marvell/libertas/mesh.c
index 2dd635935448..aa94b777da13 100644
--- a/drivers/net/wireless/marvell/libertas/mesh.c
+++ b/drivers/net/wireless/marvell/libertas/mesh.c
@@ -983,7 +983,7 @@ static int lbs_add_mesh(struct lbs_private *priv)
int ret = 0;
/* Allocate a virtual mesh device */
- mesh_wdev = kzalloc(sizeof(struct wireless_dev), GFP_KERNEL);
+ mesh_wdev = kzalloc_obj(struct wireless_dev, GFP_KERNEL);
if (!mesh_wdev) {
lbs_deb_mesh("init mshX wireless device failed\n");
ret = -ENOMEM;
diff --git a/drivers/net/wireless/marvell/libertas_tf/if_usb.c b/drivers/net/wireless/marvell/libertas_tf/if_usb.c
index 5662a244f82a..44c609205422 100644
--- a/drivers/net/wireless/marvell/libertas_tf/if_usb.c
+++ b/drivers/net/wireless/marvell/libertas_tf/if_usb.c
@@ -154,7 +154,7 @@ static int if_usb_probe(struct usb_interface *intf,
lbtf_deb_enter(LBTF_DEB_USB);
udev = interface_to_usbdev(intf);
- cardp = kzalloc(sizeof(struct if_usb_card), GFP_KERNEL);
+ cardp = kzalloc_obj(struct if_usb_card, GFP_KERNEL);
if (!cardp)
goto error;
diff --git a/drivers/net/wireless/marvell/mwifiex/11n.c b/drivers/net/wireless/marvell/mwifiex/11n.c
index 66f0f5377ac1..cef8a55427dd 100644
--- a/drivers/net/wireless/marvell/mwifiex/11n.c
+++ b/drivers/net/wireless/marvell/mwifiex/11n.c
@@ -547,8 +547,8 @@ void mwifiex_create_ba_tbl(struct mwifiex_private *priv, u8 *ra, int tid,
int tid_down;
if (!mwifiex_get_ba_tbl(priv, tid, ra)) {
- new_node = kzalloc(sizeof(struct mwifiex_tx_ba_stream_tbl),
- GFP_ATOMIC);
+ new_node = kzalloc_obj(struct mwifiex_tx_ba_stream_tbl,
+ GFP_ATOMIC);
if (!new_node)
return;
diff --git a/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c b/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
index f3397dc6c422..c00b385c0f58 100644
--- a/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
+++ b/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
@@ -344,7 +344,7 @@ mwifiex_11n_create_rx_reorder_tbl(struct mwifiex_private *priv, u8 *ta,
return;
}
/* if !tbl then create one */
- new_node = kzalloc(sizeof(struct mwifiex_rx_reorder_tbl), GFP_KERNEL);
+ new_node = kzalloc_obj(struct mwifiex_rx_reorder_tbl, GFP_KERNEL);
if (!new_node)
return;
diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
index a66d18e380fc..f387b26b086b 100644
--- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
+++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
@@ -756,7 +756,7 @@ mwifiex_cfg80211_set_wiphy_params(struct wiphy *wiphy, int radio_idx,
return -EINVAL;
}
- bss_cfg = kzalloc(sizeof(*bss_cfg), GFP_KERNEL);
+ bss_cfg = kzalloc_obj(*bss_cfg, GFP_KERNEL);
if (!bss_cfg)
return -ENOMEM;
@@ -2073,7 +2073,7 @@ static int mwifiex_cfg80211_start_ap(struct wiphy *wiphy,
if (GET_BSS_ROLE(priv) != MWIFIEX_BSS_ROLE_UAP)
return -1;
- bss_cfg = kzalloc(sizeof(struct mwifiex_uap_bss_param), GFP_KERNEL);
+ bss_cfg = kzalloc_obj(struct mwifiex_uap_bss_param, GFP_KERNEL);
if (!bss_cfg)
return -ENOMEM;
@@ -2683,7 +2683,7 @@ mwifiex_cfg80211_scan(struct wiphy *wiphy,
if (!mwifiex_stop_bg_scan(priv))
cfg80211_sched_scan_stopped_locked(priv->wdev.wiphy, 0);
- user_scan_cfg = kzalloc(sizeof(*user_scan_cfg), GFP_KERNEL);
+ user_scan_cfg = kzalloc_obj(*user_scan_cfg, GFP_KERNEL);
if (!user_scan_cfg)
return -ENOMEM;
@@ -2787,7 +2787,7 @@ mwifiex_cfg80211_sched_scan_start(struct wiphy *wiphy,
request->n_channels, request->scan_plans->interval,
(int)request->ie_len);
- bgscan_cfg = kzalloc(sizeof(*bgscan_cfg), GFP_KERNEL);
+ bgscan_cfg = kzalloc_obj(*bgscan_cfg, GFP_KERNEL);
if (!bgscan_cfg)
return -ENOMEM;
@@ -3452,7 +3452,7 @@ static int mwifiex_set_mef_filter(struct mwifiex_private *priv,
if (wowlan->n_patterns || wowlan->magic_pkt)
num_entries++;
- mef_entry = kcalloc(num_entries, sizeof(*mef_entry), GFP_KERNEL);
+ mef_entry = kzalloc_objs(*mef_entry, num_entries, GFP_KERNEL);
if (!mef_entry)
return -ENOMEM;
@@ -3989,7 +3989,7 @@ mwifiex_cfg80211_uap_add_station(struct mwifiex_private *priv, const u8 *mac,
if (!ret) {
struct station_info *sinfo;
- sinfo = kzalloc(sizeof(*sinfo), GFP_KERNEL);
+ sinfo = kzalloc_obj(*sinfo, GFP_KERNEL);
if (!sinfo)
return -ENOMEM;
@@ -4161,7 +4161,7 @@ static int mwifiex_tm_cmd(struct wiphy *wiphy, struct wireless_dev *wdev,
if (!tb[MWIFIEX_TM_ATTR_DATA])
return -EINVAL;
- hostcmd = kzalloc(sizeof(*hostcmd), GFP_KERNEL);
+ hostcmd = kzalloc_obj(*hostcmd, GFP_KERNEL);
if (!hostcmd)
return -ENOMEM;
@@ -4677,9 +4677,9 @@ int mwifiex_init_channel_scan_gap(struct mwifiex_adapter *adapter)
* additional active scan request for hidden SSIDs on passive channels.
*/
adapter->num_in_chan_stats = 2 * (n_channels_bg + n_channels_a);
- adapter->chan_stats = kcalloc(adapter->num_in_chan_stats,
- sizeof(*adapter->chan_stats),
- GFP_KERNEL);
+ adapter->chan_stats = kzalloc_objs(*adapter->chan_stats,
+ adapter->num_in_chan_stats,
+ GFP_KERNEL);
if (!adapter->chan_stats)
return -ENOMEM;
diff --git a/drivers/net/wireless/marvell/mwifiex/cmdevt.c b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
index 0f466c31337f..1bb30fbab12b 100644
--- a/drivers/net/wireless/marvell/mwifiex/cmdevt.c
+++ b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
@@ -389,8 +389,8 @@ int mwifiex_alloc_cmd_buffer(struct mwifiex_adapter *adapter)
u32 i;
/* Allocate and initialize struct cmd_ctrl_node */
- cmd_array = kcalloc(MWIFIEX_NUM_OF_CMD_BUFFER,
- sizeof(struct cmd_ctrl_node), GFP_KERNEL);
+ cmd_array = kzalloc_objs(struct cmd_ctrl_node,
+ MWIFIEX_NUM_OF_CMD_BUFFER, GFP_KERNEL);
if (!cmd_array)
return -ENOMEM;
diff --git a/drivers/net/wireless/marvell/mwifiex/ie.c b/drivers/net/wireless/marvell/mwifiex/ie.c
index 26694cee15d3..55af5e9b5bee 100644
--- a/drivers/net/wireless/marvell/mwifiex/ie.c
+++ b/drivers/net/wireless/marvell/mwifiex/ie.c
@@ -149,7 +149,7 @@ mwifiex_update_uap_custom_ie(struct mwifiex_private *priv,
u16 len;
int ret;
- ap_custom_ie = kzalloc(sizeof(*ap_custom_ie), GFP_KERNEL);
+ ap_custom_ie = kzalloc_obj(*ap_custom_ie, GFP_KERNEL);
if (!ap_custom_ie)
return -ENOMEM;
@@ -221,8 +221,7 @@ static int mwifiex_update_vs_ie(const u8 *ies, int ies_len,
vendor_ie = cfg80211_find_vendor_ie(oui, oui_type, ies, ies_len);
if (vendor_ie) {
if (!*ie_ptr) {
- *ie_ptr = kzalloc(sizeof(struct mwifiex_ie),
- GFP_KERNEL);
+ *ie_ptr = kzalloc_obj(struct mwifiex_ie, GFP_KERNEL);
if (!*ie_ptr)
return -ENOMEM;
ie = *ie_ptr;
@@ -326,7 +325,7 @@ static int mwifiex_uap_parse_tail_ies(struct mwifiex_private *priv,
if (!info->tail || !info->tail_len)
return 0;
- gen_ie = kzalloc(sizeof(*gen_ie), GFP_KERNEL);
+ gen_ie = kzalloc_obj(*gen_ie, GFP_KERNEL);
if (!gen_ie)
return -ENOMEM;
@@ -439,7 +438,7 @@ int mwifiex_del_mgmt_ies(struct mwifiex_private *priv)
int ret = 0;
if (priv->gen_idx != MWIFIEX_AUTO_IDX_MASK) {
- gen_ie = kmalloc(sizeof(*gen_ie), GFP_KERNEL);
+ gen_ie = kmalloc_obj(*gen_ie, GFP_KERNEL);
if (!gen_ie)
return -ENOMEM;
@@ -457,7 +456,7 @@ int mwifiex_del_mgmt_ies(struct mwifiex_private *priv)
}
if (priv->beacon_idx != MWIFIEX_AUTO_IDX_MASK) {
- beacon_ie = kmalloc(sizeof(struct mwifiex_ie), GFP_KERNEL);
+ beacon_ie = kmalloc_obj(struct mwifiex_ie, GFP_KERNEL);
if (!beacon_ie) {
ret = -ENOMEM;
goto done;
@@ -467,7 +466,7 @@ int mwifiex_del_mgmt_ies(struct mwifiex_private *priv)
beacon_ie->ie_length = 0;
}
if (priv->proberesp_idx != MWIFIEX_AUTO_IDX_MASK) {
- pr_ie = kmalloc(sizeof(struct mwifiex_ie), GFP_KERNEL);
+ pr_ie = kmalloc_obj(struct mwifiex_ie, GFP_KERNEL);
if (!pr_ie) {
ret = -ENOMEM;
goto done;
@@ -477,7 +476,7 @@ int mwifiex_del_mgmt_ies(struct mwifiex_private *priv)
pr_ie->ie_length = 0;
}
if (priv->assocresp_idx != MWIFIEX_AUTO_IDX_MASK) {
- ar_ie = kmalloc(sizeof(struct mwifiex_ie), GFP_KERNEL);
+ ar_ie = kmalloc_obj(struct mwifiex_ie, GFP_KERNEL);
if (!ar_ie) {
ret = -ENOMEM;
goto done;
diff --git a/drivers/net/wireless/marvell/mwifiex/init.c b/drivers/net/wireless/marvell/mwifiex/init.c
index 4820010a86f6..28ffcc780eab 100644
--- a/drivers/net/wireless/marvell/mwifiex/init.c
+++ b/drivers/net/wireless/marvell/mwifiex/init.c
@@ -25,7 +25,7 @@ static int mwifiex_add_bss_prio_tbl(struct mwifiex_private *priv)
struct mwifiex_bss_prio_node *bss_prio;
struct mwifiex_bss_prio_tbl *tbl = adapter->bss_prio_tbl;
- bss_prio = kzalloc(sizeof(struct mwifiex_bss_prio_node), GFP_KERNEL);
+ bss_prio = kzalloc_obj(struct mwifiex_bss_prio_node, GFP_KERNEL);
if (!bss_prio)
return -ENOMEM;
diff --git a/drivers/net/wireless/marvell/mwifiex/main.c b/drivers/net/wireless/marvell/mwifiex/main.c
index ff177b06f42d..d4c62fad8099 100644
--- a/drivers/net/wireless/marvell/mwifiex/main.c
+++ b/drivers/net/wireless/marvell/mwifiex/main.c
@@ -60,7 +60,7 @@ static int mwifiex_register(void *card, struct device *dev,
struct mwifiex_adapter *adapter;
int i;
- adapter = kzalloc(sizeof(struct mwifiex_adapter), GFP_KERNEL);
+ adapter = kzalloc_obj(struct mwifiex_adapter, GFP_KERNEL);
if (!adapter)
return -ENOMEM;
@@ -82,7 +82,7 @@ static int mwifiex_register(void *card, struct device *dev,
for (i = 0; i < MWIFIEX_MAX_BSS_NUM; i++) {
/* Allocate memory for private structure */
adapter->priv[i] =
- kzalloc(sizeof(struct mwifiex_private), GFP_KERNEL);
+ kzalloc_obj(struct mwifiex_private, GFP_KERNEL);
if (!adapter->priv[i])
goto error;
@@ -1180,7 +1180,7 @@ void mwifiex_drv_info_dump(struct mwifiex_adapter *adapter)
p += adapter->if_ops.reg_dump(adapter, p);
}
p += sprintf(p, "\n=== more debug information\n");
- debug_info = kzalloc(sizeof(*debug_info), GFP_KERNEL);
+ debug_info = kzalloc_obj(*debug_info, GFP_KERNEL);
if (debug_info) {
for (i = 0; i < adapter->priv_num; i++) {
if (!adapter->priv[i]->netdev)
@@ -1346,7 +1346,7 @@ void mwifiex_init_priv_params(struct mwifiex_private *priv,
if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA ||
GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_UAP) {
- priv->hist_data = kmalloc(sizeof(*priv->hist_data), GFP_KERNEL);
+ priv->hist_data = kmalloc_obj(*priv->hist_data, GFP_KERNEL);
if (priv->hist_data)
mwifiex_hist_data_reset(priv);
}
diff --git a/drivers/net/wireless/marvell/mwifiex/scan.c b/drivers/net/wireless/marvell/mwifiex/scan.c
index cab889af4c4a..b4858c0002e0 100644
--- a/drivers/net/wireless/marvell/mwifiex/scan.c
+++ b/drivers/net/wireless/marvell/mwifiex/scan.c
@@ -1503,16 +1503,15 @@ int mwifiex_scan_networks(struct mwifiex_private *priv,
adapter->scan_processing = true;
spin_unlock_bh(&adapter->mwifiex_cmd_lock);
- scan_cfg_out = kzalloc(sizeof(union mwifiex_scan_cmd_config_tlv),
- GFP_KERNEL);
+ scan_cfg_out = kzalloc_obj(union mwifiex_scan_cmd_config_tlv,
+ GFP_KERNEL);
if (!scan_cfg_out) {
ret = -ENOMEM;
goto done;
}
- scan_chan_list = kcalloc(MWIFIEX_USER_SCAN_CHAN_MAX,
- sizeof(struct mwifiex_chan_scan_param_set),
- GFP_KERNEL);
+ scan_chan_list = kzalloc_objs(struct mwifiex_chan_scan_param_set,
+ MWIFIEX_USER_SCAN_CHAN_MAX, GFP_KERNEL);
if (!scan_chan_list) {
kfree(scan_cfg_out);
ret = -ENOMEM;
@@ -1650,7 +1649,7 @@ static int mwifiex_save_hidden_ssid_channels(struct mwifiex_private *priv,
int chid;
/* Allocate and fill new bss descriptor */
- bss_desc = kzalloc(sizeof(*bss_desc), GFP_KERNEL);
+ bss_desc = kzalloc_obj(*bss_desc, GFP_KERNEL);
if (!bss_desc)
return -ENOMEM;
@@ -1693,7 +1692,7 @@ static int mwifiex_update_curr_bss_params(struct mwifiex_private *priv,
int ret;
/* Allocate and fill new bss descriptor */
- bss_desc = kzalloc(sizeof(struct mwifiex_bssdescriptor), GFP_KERNEL);
+ bss_desc = kzalloc_obj(struct mwifiex_bssdescriptor, GFP_KERNEL);
if (!bss_desc)
return -ENOMEM;
@@ -1932,7 +1931,7 @@ mwifiex_active_scan_req_for_passive_chan(struct mwifiex_private *priv)
mwifiex_dbg(adapter, INFO, "No BSS with hidden SSID found on DFS channels\n");
return 0;
}
- user_scan_cfg = kzalloc(sizeof(*user_scan_cfg), GFP_KERNEL);
+ user_scan_cfg = kzalloc_obj(*user_scan_cfg, GFP_KERNEL);
if (!user_scan_cfg)
return -ENOMEM;
@@ -2174,9 +2173,8 @@ int mwifiex_ret_802_11_scan(struct mwifiex_private *priv,
if (nd_config) {
adapter->nd_info =
- kzalloc(struct_size(adapter->nd_info, matches,
- scan_rsp->number_of_sets),
- GFP_ATOMIC);
+ kzalloc_flex(*adapter->nd_info, matches,
+ scan_rsp->number_of_sets, GFP_ATOMIC);
if (adapter->nd_info)
adapter->nd_info->n_matches = scan_rsp->number_of_sets;
@@ -2452,7 +2450,7 @@ int mwifiex_stop_bg_scan(struct mwifiex_private *priv)
return 0;
}
- bgscan_cfg = kzalloc(sizeof(*bgscan_cfg), GFP_KERNEL);
+ bgscan_cfg = kzalloc_obj(*bgscan_cfg, GFP_KERNEL);
if (!bgscan_cfg)
return -ENOMEM;
@@ -2779,7 +2777,7 @@ static int mwifiex_scan_specific_ssid(struct mwifiex_private *priv,
return -EBUSY;
}
- scan_cfg = kzalloc(sizeof(struct mwifiex_user_scan_cfg), GFP_KERNEL);
+ scan_cfg = kzalloc_obj(struct mwifiex_user_scan_cfg, GFP_KERNEL);
if (!scan_cfg)
return -ENOMEM;
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
index dcca71158fc6..b457ed6f18f5 100644
--- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
+++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
@@ -1516,7 +1516,7 @@ int mwifiex_send_rgpower_table(struct mwifiex_private *priv, const u8 *data,
struct mwifiex_adapter *adapter = priv->adapter;
struct mwifiex_ds_misc_cmd *hostcmd __free(kfree) = NULL;
- hostcmd = kzalloc(sizeof(*hostcmd), GFP_KERNEL);
+ hostcmd = kzalloc_obj(*hostcmd, GFP_KERNEL);
if (!hostcmd)
return -ENOMEM;
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
index 9c53825f222d..f8f84fc670f3 100644
--- a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
+++ b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
@@ -1052,7 +1052,7 @@ mwifiex_create_custom_regdomain(struct mwifiex_private *priv,
if (WARN_ON_ONCE(num_chan > NL80211_MAX_SUPP_REG_RULES))
return ERR_PTR(-EINVAL);
- regd = kzalloc(struct_size(regd, reg_rules, num_chan), GFP_KERNEL);
+ regd = kzalloc_flex(*regd, reg_rules, num_chan, GFP_KERNEL);
if (!regd)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c b/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
index ef6722ffdc74..46476cb752dd 100644
--- a/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
+++ b/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
@@ -330,8 +330,7 @@ int mwifiex_bss_start(struct mwifiex_private *priv, struct cfg80211_bss *bss,
return -EINVAL;
/* Allocate and fill new bss descriptor */
- bss_desc = kzalloc(sizeof(struct mwifiex_bssdescriptor),
- GFP_KERNEL);
+ bss_desc = kzalloc_obj(struct mwifiex_bssdescriptor, GFP_KERNEL);
if (!bss_desc)
return -ENOMEM;
diff --git a/drivers/net/wireless/marvell/mwifiex/tdls.c b/drivers/net/wireless/marvell/mwifiex/tdls.c
index 77a9a6de636d..a4cf323e704b 100644
--- a/drivers/net/wireless/marvell/mwifiex/tdls.c
+++ b/drivers/net/wireless/marvell/mwifiex/tdls.c
@@ -1356,7 +1356,7 @@ void mwifiex_add_auto_tdls_peer(struct mwifiex_private *priv, const u8 *mac)
}
/* create new TDLS peer */
- tdls_peer = kzalloc(sizeof(*tdls_peer), GFP_ATOMIC);
+ tdls_peer = kzalloc_obj(*tdls_peer, GFP_ATOMIC);
if (tdls_peer) {
ether_addr_copy(tdls_peer->mac_addr, mac);
tdls_peer->tdls_status = TDLS_SETUP_INPROGRESS;
diff --git a/drivers/net/wireless/marvell/mwifiex/uap_event.c b/drivers/net/wireless/marvell/mwifiex/uap_event.c
index 245cb99a3daa..9abd011aa295 100644
--- a/drivers/net/wireless/marvell/mwifiex/uap_event.c
+++ b/drivers/net/wireless/marvell/mwifiex/uap_event.c
@@ -105,7 +105,7 @@ int mwifiex_process_uap_event(struct mwifiex_private *priv)
switch (eventcause) {
case EVENT_UAP_STA_ASSOC:
- sinfo = kzalloc(sizeof(*sinfo), GFP_KERNEL);
+ sinfo = kzalloc_obj(*sinfo, GFP_KERNEL);
if (!sinfo)
return -ENOMEM;
diff --git a/drivers/net/wireless/marvell/mwifiex/util.c b/drivers/net/wireless/marvell/mwifiex/util.c
index 6882e90e90b2..7d3631d21223 100644
--- a/drivers/net/wireless/marvell/mwifiex/util.c
+++ b/drivers/net/wireless/marvell/mwifiex/util.c
@@ -694,7 +694,7 @@ mwifiex_add_sta_entry(struct mwifiex_private *priv, const u8 *mac)
if (node)
goto done;
- node = kzalloc(sizeof(*node), GFP_ATOMIC);
+ node = kzalloc_obj(*node, GFP_ATOMIC);
if (!node)
goto done;
diff --git a/drivers/net/wireless/marvell/mwifiex/wmm.c b/drivers/net/wireless/marvell/mwifiex/wmm.c
index 1b1222c73728..841505e83c7f 100644
--- a/drivers/net/wireless/marvell/mwifiex/wmm.c
+++ b/drivers/net/wireless/marvell/mwifiex/wmm.c
@@ -99,7 +99,7 @@ mwifiex_wmm_allocate_ralist_node(struct mwifiex_adapter *adapter, const u8 *ra)
{
struct mwifiex_ra_list_tbl *ra_list;
- ra_list = kzalloc(sizeof(struct mwifiex_ra_list_tbl), GFP_ATOMIC);
+ ra_list = kzalloc_obj(struct mwifiex_ra_list_tbl, GFP_ATOMIC);
if (!ra_list)
return NULL;
diff --git a/drivers/net/wireless/marvell/mwl8k.c b/drivers/net/wireless/marvell/mwl8k.c
index 54d6d00ecdf1..c505c83f8abc 100644
--- a/drivers/net/wireless/marvell/mwl8k.c
+++ b/drivers/net/wireless/marvell/mwl8k.c
@@ -1182,7 +1182,7 @@ static int mwl8k_rxq_init(struct ieee80211_hw *hw, int index)
return -ENOMEM;
}
- rxq->buf = kcalloc(MWL8K_RX_DESCS, sizeof(*rxq->buf), GFP_KERNEL);
+ rxq->buf = kzalloc_objs(*rxq->buf, MWL8K_RX_DESCS, GFP_KERNEL);
if (rxq->buf == NULL) {
dma_free_coherent(&priv->pdev->dev, size, rxq->rxd,
rxq->rxd_dma);
@@ -1478,7 +1478,7 @@ static int mwl8k_txq_init(struct ieee80211_hw *hw, int index)
return -ENOMEM;
}
- txq->skb = kcalloc(MWL8K_TX_DESCS, sizeof(*txq->skb), GFP_KERNEL);
+ txq->skb = kzalloc_objs(*txq->skb, MWL8K_TX_DESCS, GFP_KERNEL);
if (txq->skb == NULL) {
dma_free_coherent(&priv->pdev->dev, size, txq->txd,
txq->txd_dma);
@@ -2472,7 +2472,7 @@ static int mwl8k_cmd_get_hw_spec_sta(struct ieee80211_hw *hw)
int rc;
int i;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -2537,7 +2537,7 @@ static int mwl8k_cmd_get_hw_spec_ap(struct ieee80211_hw *hw)
int rc, i;
u32 api_version;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -2639,7 +2639,7 @@ static int mwl8k_cmd_set_hw_spec(struct ieee80211_hw *hw)
int rc;
int i;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -2753,7 +2753,7 @@ static int mwl8k_cmd_get_stat(struct ieee80211_hw *hw,
struct mwl8k_cmd_get_stat *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -2796,7 +2796,7 @@ mwl8k_cmd_radio_control(struct ieee80211_hw *hw, bool enable, bool force)
if (enable == priv->radio_on && !force)
return 0;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -2854,7 +2854,7 @@ static int mwl8k_cmd_rf_tx_power(struct ieee80211_hw *hw, int dBm)
struct mwl8k_cmd_rf_tx_power *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -2895,7 +2895,7 @@ static int mwl8k_cmd_tx_power(struct ieee80211_hw *hw,
int rc;
int i;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -2948,7 +2948,7 @@ mwl8k_cmd_rf_antenna(struct ieee80211_hw *hw, int antenna, int mask)
struct mwl8k_cmd_rf_antenna *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3066,7 +3066,7 @@ static int mwl8k_cmd_set_pre_scan(struct ieee80211_hw *hw)
struct mwl8k_cmd_set_pre_scan *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3099,7 +3099,7 @@ mwl8k_cmd_bbp_reg_access(struct ieee80211_hw *hw,
struct mwl8k_cmd_bbp_reg_access *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3135,7 +3135,7 @@ mwl8k_cmd_set_post_scan(struct ieee80211_hw *hw, const __u8 *mac)
struct mwl8k_cmd_set_post_scan *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3228,7 +3228,7 @@ static int mwl8k_cmd_set_rf_channel(struct ieee80211_hw *hw,
struct mwl8k_priv *priv = hw->priv;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3314,7 +3314,7 @@ mwl8k_cmd_set_aid(struct ieee80211_hw *hw,
u16 prot_mode;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3368,7 +3368,7 @@ mwl8k_cmd_set_rate(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
struct mwl8k_cmd_set_rate *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3402,7 +3402,7 @@ static int mwl8k_cmd_finalize_join(struct ieee80211_hw *hw, void *frame,
int payload_len;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3440,7 +3440,7 @@ mwl8k_cmd_set_rts_threshold(struct ieee80211_hw *hw, int radio_idx,
struct mwl8k_cmd_set_rts_threshold *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3469,7 +3469,7 @@ static int mwl8k_cmd_set_slot(struct ieee80211_hw *hw, bool short_slot_time)
struct mwl8k_cmd_set_slot *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3543,7 +3543,7 @@ mwl8k_cmd_set_edca_params(struct ieee80211_hw *hw, __u8 qnum,
struct mwl8k_cmd_set_edca_params *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3583,7 +3583,7 @@ static int mwl8k_cmd_set_wmm_mode(struct ieee80211_hw *hw, bool enable)
struct mwl8k_cmd_set_wmm_mode *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3615,7 +3615,7 @@ static int mwl8k_cmd_mimo_config(struct ieee80211_hw *hw, __u8 rx, __u8 tx)
struct mwl8k_cmd_mimo_config *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3658,7 +3658,7 @@ static int mwl8k_cmd_use_fixed_rate_sta(struct ieee80211_hw *hw)
struct mwl8k_cmd_use_fixed_rate_sta *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3698,7 +3698,7 @@ mwl8k_cmd_use_fixed_rate_ap(struct ieee80211_hw *hw, int mcast, int mgmt)
struct mwl8k_cmd_use_fixed_rate_ap *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3727,7 +3727,7 @@ static int mwl8k_cmd_enable_sniffer(struct ieee80211_hw *hw, bool enable)
struct mwl8k_cmd_enable_sniffer *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3782,7 +3782,7 @@ static int mwl8k_cmd_update_mac_addr(struct ieee80211_hw *hw,
mac_type = MWL8K_MAC_TYPE_SECONDARY_AP;
}
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3837,7 +3837,7 @@ static int mwl8k_cmd_set_rateadapt_mode(struct ieee80211_hw *hw, __u16 mode)
struct mwl8k_cmd_set_rate_adapt_mode *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3865,7 +3865,7 @@ static int mwl8k_cmd_get_watchdog_bitmap(struct ieee80211_hw *hw, u8 *bitmap)
struct mwl8k_cmd_get_watchdog_bitmap *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -3954,7 +3954,7 @@ static int mwl8k_cmd_bss_start(struct ieee80211_hw *hw,
if (!enable && !(priv->running_bsses & (1 << mwl8k_vif->macid)))
return 0;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -4046,7 +4046,7 @@ mwl8k_check_ba(struct ieee80211_hw *hw, struct mwl8k_ampdu_stream *stream,
struct mwl8k_cmd_bastream *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -4078,7 +4078,7 @@ mwl8k_create_ba(struct ieee80211_hw *hw, struct mwl8k_ampdu_stream *stream,
struct mwl8k_cmd_bastream *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -4121,7 +4121,7 @@ static void mwl8k_destroy_ba(struct ieee80211_hw *hw,
{
struct mwl8k_cmd_bastream *cmd;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return;
@@ -4173,7 +4173,7 @@ static int mwl8k_cmd_set_new_stn_add(struct ieee80211_hw *hw,
u32 rates;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -4211,7 +4211,7 @@ static int mwl8k_cmd_set_new_stn_add_self(struct ieee80211_hw *hw,
struct mwl8k_cmd_set_new_stn *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -4254,7 +4254,7 @@ static int mwl8k_cmd_set_new_stn_del(struct ieee80211_hw *hw,
spin_unlock(&priv->stream_lock);
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -4341,7 +4341,7 @@ static int mwl8k_cmd_update_encryption_enable(struct ieee80211_hw *hw,
struct mwl8k_cmd_update_encryption *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -4410,7 +4410,7 @@ static int mwl8k_cmd_encryption_set_key(struct ieee80211_hw *hw,
u8 idx;
struct mwl8k_vif *mwl8k_vif = MWL8K_VIF(vif);
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -4467,7 +4467,7 @@ static int mwl8k_cmd_encryption_remove_key(struct ieee80211_hw *hw,
int rc;
struct mwl8k_vif *mwl8k_vif = MWL8K_VIF(vif);
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -4604,7 +4604,7 @@ static int mwl8k_cmd_update_stadb_add(struct ieee80211_hw *hw,
u32 rates;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
@@ -4643,7 +4643,7 @@ static int mwl8k_cmd_update_stadb_del(struct ieee80211_hw *hw,
struct mwl8k_cmd_update_stadb *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
diff --git a/drivers/net/wireless/mediatek/mt76/agg-rx.c b/drivers/net/wireless/mediatek/mt76/agg-rx.c
index 3d34caf7e4f7..144c336e13a2 100644
--- a/drivers/net/wireless/mediatek/mt76/agg-rx.c
+++ b/drivers/net/wireless/mediatek/mt76/agg-rx.c
@@ -248,7 +248,7 @@ int mt76_rx_aggr_start(struct mt76_dev *dev, struct mt76_wcid *wcid, u8 tidno,
mt76_rx_aggr_stop(dev, wcid, tidno);
- tid = kzalloc(struct_size(tid, reorder_buf, size), GFP_KERNEL);
+ tid = kzalloc_flex(*tid, reorder_buf, size, GFP_KERNEL);
if (!tid)
return -ENOMEM;
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/mac.c b/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
index bd56cdb022a2..45992fdcec60 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
@@ -1055,7 +1055,7 @@ mt7615_mac_queue_rate_update(struct mt7615_phy *phy, struct mt7615_sta *sta,
if (work_pending(&dev->rate_work))
return -EBUSY;
- wrd = kzalloc(sizeof(*wrd), GFP_ATOMIC);
+ wrd = kzalloc_obj(*wrd, GFP_ATOMIC);
if (!wrd)
return -ENOMEM;
diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/main.c b/drivers/net/wireless/mediatek/mt76/mt7996/main.c
index beed795edb24..fee1f5ae0496 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7996/main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7996/main.c
@@ -966,7 +966,7 @@ mt7996_mac_sta_init_link(struct mt7996_dev *dev,
mtxq->wcid = idx;
}
} else {
- msta_link = kzalloc(sizeof(*msta_link), GFP_KERNEL);
+ msta_link = kzalloc_obj(*msta_link, GFP_KERNEL);
if (!msta_link)
return -ENOMEM;
diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
index 14a88ef79b6c..c0c042de477b 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
@@ -726,7 +726,7 @@ mt7996_mcu_wed_rro_event(struct mt7996_dev *dev, struct sk_buff *skb)
struct mt7996_wed_rro_session_id *session;
e = (void *)skb->data;
- session = kzalloc(sizeof(*session), GFP_ATOMIC);
+ session = kzalloc_obj(*session, GFP_ATOMIC);
if (!session)
break;
diff --git a/drivers/net/wireless/microchip/wilc1000/cfg80211.c b/drivers/net/wireless/microchip/wilc1000/cfg80211.c
index c39e7f313ea1..edd4e570fe9f 100644
--- a/drivers/net/wireless/microchip/wilc1000/cfg80211.c
+++ b/drivers/net/wireless/microchip/wilc1000/cfg80211.c
@@ -484,15 +484,15 @@ static int disconnect(struct wiphy *wiphy, struct net_device *dev,
static int wilc_wfi_cfg_allocate_wpa_entry(struct wilc_priv *priv, u8 idx)
{
if (!priv->wilc_gtk[idx]) {
- priv->wilc_gtk[idx] = kzalloc(sizeof(*priv->wilc_gtk[idx]),
- GFP_KERNEL);
+ priv->wilc_gtk[idx] = kzalloc_obj(*priv->wilc_gtk[idx],
+ GFP_KERNEL);
if (!priv->wilc_gtk[idx])
return -ENOMEM;
}
if (!priv->wilc_ptk[idx]) {
- priv->wilc_ptk[idx] = kzalloc(sizeof(*priv->wilc_ptk[idx]),
- GFP_KERNEL);
+ priv->wilc_ptk[idx] = kzalloc_obj(*priv->wilc_ptk[idx],
+ GFP_KERNEL);
if (!priv->wilc_ptk[idx])
return -ENOMEM;
}
@@ -504,8 +504,8 @@ static int wilc_wfi_cfg_allocate_wpa_igtk_entry(struct wilc_priv *priv, u8 idx)
{
idx -= 4;
if (!priv->wilc_igtk[idx]) {
- priv->wilc_igtk[idx] = kzalloc(sizeof(*priv->wilc_igtk[idx]),
- GFP_KERNEL);
+ priv->wilc_igtk[idx] = kzalloc_obj(*priv->wilc_igtk[idx],
+ GFP_KERNEL);
if (!priv->wilc_igtk[idx])
return -ENOMEM;
}
@@ -1178,7 +1178,7 @@ static int mgmt_tx(struct wiphy *wiphy,
if (!ieee80211_is_mgmt(mgmt->frame_control))
goto out;
- mgmt_tx = kmalloc(sizeof(*mgmt_tx), GFP_KERNEL);
+ mgmt_tx = kmalloc_obj(*mgmt_tx, GFP_KERNEL);
if (!mgmt_tx) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/net/wireless/microchip/wilc1000/hif.c b/drivers/net/wireless/microchip/wilc1000/hif.c
index a229c6cab332..bbd1794acb27 100644
--- a/drivers/net/wireless/microchip/wilc1000/hif.c
+++ b/drivers/net/wireless/microchip/wilc1000/hif.c
@@ -60,7 +60,7 @@ wilc_alloc_work(struct wilc_vif *vif, void (*work_fun)(struct work_struct *),
if (!work_fun)
return ERR_PTR(-EINVAL);
- msg = kzalloc(sizeof(*msg), GFP_ATOMIC);
+ msg = kzalloc_obj(*msg, GFP_ATOMIC);
if (!msg)
return ERR_PTR(-ENOMEM);
msg->fn = work_fun;
@@ -387,7 +387,7 @@ wilc_parse_join_bss_param(struct cfg80211_bss *bss,
u64 ies_tsf;
int ret;
- param = kzalloc(sizeof(*param), GFP_KERNEL);
+ param = kzalloc_obj(*param, GFP_KERNEL);
if (!param)
return NULL;
@@ -1039,7 +1039,7 @@ int wilc_set_external_auth_param(struct wilc_vif *vif,
wid.id = WID_EXTERNAL_AUTH_PARAM;
wid.type = WID_BIN_DATA;
wid.size = sizeof(*param);
- param = kzalloc(sizeof(*param), GFP_KERNEL);
+ param = kzalloc_obj(*param, GFP_KERNEL);
if (!param)
return -EINVAL;
@@ -1516,7 +1516,7 @@ int wilc_init(struct net_device *dev, struct host_if_drv **hif_drv_handler)
struct host_if_drv *hif_drv;
struct wilc_vif *vif = netdev_priv(dev);
- hif_drv = kzalloc(sizeof(*hif_drv), GFP_KERNEL);
+ hif_drv = kzalloc_obj(*hif_drv, GFP_KERNEL);
if (!hif_drv)
return -ENOMEM;
diff --git a/drivers/net/wireless/microchip/wilc1000/mon.c b/drivers/net/wireless/microchip/wilc1000/mon.c
index c3d27aaec297..b5cf6fa7a851 100644
--- a/drivers/net/wireless/microchip/wilc1000/mon.c
+++ b/drivers/net/wireless/microchip/wilc1000/mon.c
@@ -120,7 +120,7 @@ static int mon_mgmt_tx(struct net_device *dev, const u8 *buf, size_t len)
return -EFAULT;
netif_stop_queue(dev);
- mgmt_tx = kmalloc(sizeof(*mgmt_tx), GFP_ATOMIC);
+ mgmt_tx = kmalloc_obj(*mgmt_tx, GFP_ATOMIC);
if (!mgmt_tx)
return -ENOMEM;
diff --git a/drivers/net/wireless/microchip/wilc1000/netdev.c b/drivers/net/wireless/microchip/wilc1000/netdev.c
index af298021e050..956cb578bf37 100644
--- a/drivers/net/wireless/microchip/wilc1000/netdev.c
+++ b/drivers/net/wireless/microchip/wilc1000/netdev.c
@@ -752,7 +752,7 @@ netdev_tx_t wilc_mac_xmit(struct sk_buff *skb, struct net_device *ndev)
return NETDEV_TX_OK;
}
- tx_data = kmalloc(sizeof(*tx_data), GFP_ATOMIC);
+ tx_data = kmalloc_obj(*tx_data, GFP_ATOMIC);
if (!tx_data) {
dev_kfree_skb(skb);
netif_wake_queue(ndev);
diff --git a/drivers/net/wireless/microchip/wilc1000/sdio.c b/drivers/net/wireless/microchip/wilc1000/sdio.c
index af970f999111..64b1490b793d 100644
--- a/drivers/net/wireless/microchip/wilc1000/sdio.c
+++ b/drivers/net/wireless/microchip/wilc1000/sdio.c
@@ -145,7 +145,7 @@ static int wilc_sdio_probe(struct sdio_func *func,
int ret;
- sdio_priv = kzalloc(sizeof(*sdio_priv), GFP_KERNEL);
+ sdio_priv = kzalloc_obj(*sdio_priv, GFP_KERNEL);
if (!sdio_priv)
return -ENOMEM;
diff --git a/drivers/net/wireless/microchip/wilc1000/spi.c b/drivers/net/wireless/microchip/wilc1000/spi.c
index 5bcabb7decea..cad1fcf2e14f 100644
--- a/drivers/net/wireless/microchip/wilc1000/spi.c
+++ b/drivers/net/wireless/microchip/wilc1000/spi.c
@@ -211,7 +211,7 @@ static int wilc_bus_probe(struct spi_device *spi)
struct wilc *wilc;
int ret;
- spi_priv = kzalloc(sizeof(*spi_priv), GFP_KERNEL);
+ spi_priv = kzalloc_obj(*spi_priv, GFP_KERNEL);
if (!spi_priv)
return -ENOMEM;
diff --git a/drivers/net/wireless/microchip/wilc1000/wlan.c b/drivers/net/wireless/microchip/wilc1000/wlan.c
index fedc7d59216a..15a2221892cd 100644
--- a/drivers/net/wireless/microchip/wilc1000/wlan.c
+++ b/drivers/net/wireless/microchip/wilc1000/wlan.c
@@ -244,7 +244,7 @@ static int wilc_wlan_txq_add_cfg_pkt(struct wilc_vif *vif, u8 *buffer,
return 0;
}
- tqe = kmalloc(sizeof(*tqe), GFP_ATOMIC);
+ tqe = kmalloc_obj(*tqe, GFP_ATOMIC);
if (!tqe) {
complete(&wilc->cfg_event);
return 0;
@@ -413,7 +413,7 @@ int wilc_wlan_txq_add_net_pkt(struct net_device *dev,
return 0;
}
- tqe = kmalloc(sizeof(*tqe), GFP_ATOMIC);
+ tqe = kmalloc_obj(*tqe, GFP_ATOMIC);
if (!tqe) {
tx_complete_fn(tx_data, 0);
@@ -466,7 +466,7 @@ int wilc_wlan_txq_add_mgmt_pkt(struct net_device *dev, void *priv, u8 *buffer,
tx_complete_fn(priv, 0);
return 0;
}
- tqe = kmalloc(sizeof(*tqe), GFP_ATOMIC);
+ tqe = kmalloc_obj(*tqe, GFP_ATOMIC);
if (!tqe) {
tx_complete_fn(priv, 0);
@@ -1209,7 +1209,7 @@ static void wilc_wlan_handle_isr_ext(struct wilc *wilc, u32 int_status)
offset += size;
wilc->rx_buffer_offset = offset;
- rqe = kmalloc(sizeof(*rqe), GFP_KERNEL);
+ rqe = kmalloc_obj(*rqe, GFP_KERNEL);
if (!rqe)
return;
diff --git a/drivers/net/wireless/microchip/wilc1000/wlan_cfg.c b/drivers/net/wireless/microchip/wilc1000/wlan_cfg.c
index cfabd5aebb54..0163f0b17497 100644
--- a/drivers/net/wireless/microchip/wilc1000/wlan_cfg.c
+++ b/drivers/net/wireless/microchip/wilc1000/wlan_cfg.c
@@ -390,7 +390,7 @@ int wilc_wlan_cfg_init(struct wilc *wl)
if (!wl->cfg.s)
goto out_w;
- str_vals = kzalloc(sizeof(*str_vals), GFP_KERNEL);
+ str_vals = kzalloc_obj(*str_vals, GFP_KERNEL);
if (!str_vals)
goto out_s;
diff --git a/drivers/net/wireless/purelifi/plfxlc/usb.c b/drivers/net/wireless/purelifi/plfxlc/usb.c
index 711902a809db..09303aa6c1d7 100644
--- a/drivers/net/wireless/purelifi/plfxlc/usb.c
+++ b/drivers/net/wireless/purelifi/plfxlc/usb.c
@@ -204,7 +204,7 @@ static int __lf_x_usb_enable_rx(struct plfxlc_usb *usb)
int i, r;
r = -ENOMEM;
- urbs = kcalloc(RX_URBS_COUNT, sizeof(struct urb *), GFP_KERNEL);
+ urbs = kzalloc_objs(struct urb *, RX_URBS_COUNT, GFP_KERNEL);
if (!urbs)
goto error;
diff --git a/drivers/net/wireless/quantenna/qtnfmac/commands.c b/drivers/net/wireless/quantenna/qtnfmac/commands.c
index 956c5763662f..b1908fa90cfa 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/commands.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/commands.c
@@ -981,7 +981,7 @@ qtnf_parse_wowlan_info(struct qtnf_wmac *mac,
const struct qlink_wowlan_support *data1;
struct wiphy_wowlan_support *supp;
- supp = kzalloc(sizeof(*supp), GFP_KERNEL);
+ supp = kzalloc_obj(*supp, GFP_KERNEL);
if (!supp)
return;
@@ -1031,8 +1031,8 @@ qtnf_parse_variable_mac_info(struct qtnf_wmac *mac,
if (WARN_ON(resp->n_reg_rules > NL80211_MAX_SUPP_REG_RULES))
return -E2BIG;
- mac->rd = kzalloc(struct_size(mac->rd, reg_rules, resp->n_reg_rules),
- GFP_KERNEL);
+ mac->rd = kzalloc_flex(*mac->rd, reg_rules, resp->n_reg_rules,
+ GFP_KERNEL);
if (!mac->rd)
return -ENOMEM;
@@ -1084,8 +1084,8 @@ qtnf_parse_variable_mac_info(struct qtnf_wmac *mac,
return -EINVAL;
}
- limits = kcalloc(rec->n_limits, sizeof(*limits),
- GFP_KERNEL);
+ limits = kzalloc_objs(*limits, rec->n_limits,
+ GFP_KERNEL);
if (!limits)
return -ENOMEM;
@@ -1254,9 +1254,8 @@ qtnf_cmd_resp_proc_mac_info(struct qtnf_wmac *mac,
sizeof(mac_info->vht_cap_mod_mask));
mac_info->n_if_comb = resp_info->n_iface_combinations;
- mac_info->if_comb = kcalloc(mac->macinfo.n_if_comb,
- sizeof(*mac->macinfo.if_comb),
- GFP_KERNEL);
+ mac_info->if_comb = kzalloc_objs(*mac->macinfo.if_comb,
+ mac->macinfo.n_if_comb, GFP_KERNEL);
if (!mac->macinfo.if_comb)
return -ENOMEM;
@@ -1341,8 +1340,8 @@ static int qtnf_cmd_band_fill_iftype(const u8 *data,
if (band->n_iftype_data == 0)
return 0;
- iftype_data = kcalloc(band->n_iftype_data, sizeof(*iftype_data),
- GFP_KERNEL);
+ iftype_data = kzalloc_objs(*iftype_data, band->n_iftype_data,
+ GFP_KERNEL);
if (!iftype_data) {
band->n_iftype_data = 0;
return -ENOMEM;
@@ -1389,8 +1388,8 @@ qtnf_cmd_resp_fill_band_info(struct ieee80211_supported_band *band,
return 0;
if (!band->channels)
- band->channels = kcalloc(band->n_channels, sizeof(*chan),
- GFP_KERNEL);
+ band->channels = kzalloc_objs(*chan, band->n_channels,
+ GFP_KERNEL);
if (!band->channels) {
band->n_channels = 0;
return -ENOMEM;
diff --git a/drivers/net/wireless/quantenna/qtnfmac/core.c b/drivers/net/wireless/quantenna/qtnfmac/core.c
index 38af6cdc2843..4cab8dee332b 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/core.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/core.c
@@ -212,7 +212,7 @@ static int qtnf_mac_init_single_band(struct wiphy *wiphy,
{
int ret;
- wiphy->bands[band] = kzalloc(sizeof(*wiphy->bands[band]), GFP_KERNEL);
+ wiphy->bands[band] = kzalloc_obj(*wiphy->bands[band], GFP_KERNEL);
if (!wiphy->bands[band])
return -ENOMEM;
diff --git a/drivers/net/wireless/quantenna/qtnfmac/event.c b/drivers/net/wireless/quantenna/qtnfmac/event.c
index 71840f41b73c..c16cd1e5286a 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/event.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/event.c
@@ -41,7 +41,7 @@ qtnf_event_handle_sta_assoc(struct qtnf_wmac *mac, struct qtnf_vif *vif,
return -EPROTO;
}
- sinfo = kzalloc(sizeof(*sinfo), GFP_KERNEL);
+ sinfo = kzalloc_obj(*sinfo, GFP_KERNEL);
if (!sinfo)
return -ENOMEM;
diff --git a/drivers/net/wireless/quantenna/qtnfmac/util.c b/drivers/net/wireless/quantenna/qtnfmac/util.c
index cda6f5f3f38a..5c1a5a8f87a6 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/util.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/util.c
@@ -59,7 +59,7 @@ struct qtnf_sta_node *qtnf_sta_list_add(struct qtnf_vif *vif,
if (node)
goto done;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (unlikely(!node))
goto done;
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2400pci.c b/drivers/net/wireless/ralink/rt2x00/rt2400pci.c
index 42e21e9f303b..f2b55db0b27b 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2400pci.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2400pci.c
@@ -1589,7 +1589,7 @@ static int rt2400pci_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
/*
* Create channel information array
*/
- info = kcalloc(spec->num_channels, sizeof(*info), GFP_KERNEL);
+ info = kzalloc_objs(*info, spec->num_channels, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2500pci.c b/drivers/net/wireless/ralink/rt2x00/rt2500pci.c
index 36ddc5a69fa4..a6b26c5ef4cf 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2500pci.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2500pci.c
@@ -1907,7 +1907,7 @@ static int rt2500pci_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
/*
* Create channel information array
*/
- info = kcalloc(spec->num_channels, sizeof(*info), GFP_KERNEL);
+ info = kzalloc_objs(*info, spec->num_channels, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2500usb.c b/drivers/net/wireless/ralink/rt2x00/rt2500usb.c
index 09923765e2db..50f1eeddf913 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2500usb.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2500usb.c
@@ -1720,7 +1720,7 @@ static int rt2500usb_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
/*
* Create channel information array
*/
- info = kcalloc(spec->num_channels, sizeof(*info), GFP_KERNEL);
+ info = kzalloc_objs(*info, spec->num_channels, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index 65d0f805459c..6041f029857b 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -11907,13 +11907,13 @@ static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
/*
* Create channel information and survey arrays
*/
- info = kcalloc(spec->num_channels, sizeof(*info), GFP_KERNEL);
+ info = kzalloc_objs(*info, spec->num_channels, GFP_KERNEL);
if (!info)
return -ENOMEM;
rt2x00dev->chan_survey =
- kcalloc(spec->num_channels, sizeof(struct rt2x00_chan_survey),
- GFP_KERNEL);
+ kzalloc_objs(struct rt2x00_chan_survey, spec->num_channels,
+ GFP_KERNEL);
if (!rt2x00dev->chan_survey) {
kfree(info);
return -ENOMEM;
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800usb.c b/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
index b51a23300ba2..d1d94b0b0f31 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
@@ -179,7 +179,7 @@ static int rt2800usb_autorun_detect(struct rt2x00_dev *rt2x00dev)
u32 fw_mode;
int ret;
- reg = kmalloc(sizeof(*reg), GFP_KERNEL);
+ reg = kmalloc_obj(*reg, GFP_KERNEL);
if (reg == NULL)
return -ENOMEM;
/* cannot use rt2x00usb_register_read here as it uses different
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c b/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c
index f2395309ec00..edececd89572 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c
@@ -639,7 +639,7 @@ void rt2x00debug_register(struct rt2x00_dev *rt2x00dev)
struct dentry *queue_folder;
struct dentry *register_folder;
- intf = kzalloc(sizeof(struct rt2x00debug_intf), GFP_KERNEL);
+ intf = kzalloc_obj(struct rt2x00debug_intf, GFP_KERNEL);
if (!intf) {
rt2x00_err(rt2x00dev, "Failed to allocate debug handler\n");
return;
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
index 778a478ab53a..dee01472747f 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c
@@ -1020,11 +1020,11 @@ static int rt2x00lib_probe_hw_modes(struct rt2x00_dev *rt2x00dev,
if (spec->supported_rates & SUPPORT_RATE_OFDM)
num_rates += 8;
- channels = kcalloc(spec->num_channels, sizeof(*channels), GFP_KERNEL);
+ channels = kzalloc_objs(*channels, spec->num_channels, GFP_KERNEL);
if (!channels)
return -ENOMEM;
- rates = kcalloc(num_rates, sizeof(*rates), GFP_KERNEL);
+ rates = kzalloc_objs(*rates, num_rates, GFP_KERNEL);
if (!rates)
goto exit_free_channels;
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
index 13e48b1e7356..8fb336834ced 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
@@ -564,7 +564,7 @@ static void rt2x00queue_bar_check(struct queue_entry *entry)
if (likely(!ieee80211_is_back_req(bar->frame_control)))
return;
- bar_entry = kmalloc(sizeof(*bar_entry), GFP_ATOMIC);
+ bar_entry = kmalloc_obj(*bar_entry, GFP_ATOMIC);
/*
* If the alloc fails we still send the BAR out but just don't track
@@ -1244,7 +1244,7 @@ int rt2x00queue_allocate(struct rt2x00_dev *rt2x00dev)
*/
rt2x00dev->data_queues = 2 + rt2x00dev->ops->tx_queues + req_atim;
- queue = kcalloc(rt2x00dev->data_queues, sizeof(*queue), GFP_KERNEL);
+ queue = kzalloc_objs(*queue, rt2x00dev->data_queues, GFP_KERNEL);
if (!queue)
return -ENOMEM;
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c b/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
index a6d50149e0c3..54599cad78f9 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
@@ -196,7 +196,7 @@ void rt2x00usb_register_read_async(struct rt2x00_dev *rt2x00dev,
struct urb *urb;
struct rt2x00_async_read_data *rd;
- rd = kmalloc(sizeof(*rd), GFP_ATOMIC);
+ rd = kmalloc_obj(*rd, GFP_ATOMIC);
if (!rd)
return;
diff --git a/drivers/net/wireless/ralink/rt2x00/rt61pci.c b/drivers/net/wireless/ralink/rt2x00/rt61pci.c
index d1cd5694e3c7..aea74b6b28e4 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt61pci.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt61pci.c
@@ -2712,7 +2712,7 @@ static int rt61pci_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
/*
* Create channel information array
*/
- info = kcalloc(spec->num_channels, sizeof(*info), GFP_KERNEL);
+ info = kzalloc_objs(*info, spec->num_channels, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/net/wireless/ralink/rt2x00/rt73usb.c b/drivers/net/wireless/ralink/rt2x00/rt73usb.c
index b79dda952a33..c47f4689ffdd 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt73usb.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt73usb.c
@@ -2136,7 +2136,7 @@ static int rt73usb_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
/*
* Create channel information array
*/
- info = kcalloc(spec->num_channels, sizeof(*info), GFP_KERNEL);
+ info = kzalloc_objs(*info, spec->num_channels, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c b/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c
index 7aa2da0cd63c..7a2a31af9a79 100644
--- a/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c
+++ b/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c
@@ -129,7 +129,7 @@ static void rtl8187_iowrite_async(struct rtl8187_priv *priv, __le16 addr,
} *buf;
int rc;
- buf = kmalloc(sizeof(*buf), GFP_ATOMIC);
+ buf = kmalloc_obj(*buf, GFP_ATOMIC);
if (!buf)
return;
@@ -1463,7 +1463,7 @@ static int rtl8187_probe(struct usb_interface *intf,
priv->is_rtl8187b = (id->driver_info == DEVICE_RTL8187B);
/* allocate "DMA aware" buffer for register accesses */
- priv->io_dmabuf = kmalloc(sizeof(*priv->io_dmabuf), GFP_KERNEL);
+ priv->io_dmabuf = kmalloc_obj(*priv->io_dmabuf, GFP_KERNEL);
if (!priv->io_dmabuf) {
err = -ENOMEM;
goto err_free_dev;
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/core.c b/drivers/net/wireless/realtek/rtl8xxxu/core.c
index f9a527f6a175..721c95f13ec9 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/core.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/core.c
@@ -7323,7 +7323,7 @@ static void rtl8xxxu_collect_sta_iter(void *data, struct ieee80211_sta *sta)
struct rtl8xxxu_iter_stas_data *iter_stas = data;
struct rtl8xxxu_stas_entry *stas_entry;
- stas_entry = kmalloc(sizeof(*stas_entry), GFP_ATOMIC);
+ stas_entry = kmalloc_obj(*stas_entry, GFP_ATOMIC);
if (!stas_entry)
return;
@@ -7381,7 +7381,7 @@ static int rtl8xxxu_start(struct ieee80211_hw *hw)
}
for (i = 0; i < RTL8XXXU_TX_URBS; i++) {
- tx_urb = kmalloc(sizeof(struct rtl8xxxu_tx_urb), GFP_KERNEL);
+ tx_urb = kmalloc_obj(struct rtl8xxxu_tx_urb, GFP_KERNEL);
if (!tx_urb) {
if (!i)
ret = -ENOMEM;
@@ -7402,7 +7402,7 @@ static int rtl8xxxu_start(struct ieee80211_hw *hw)
spin_unlock_irqrestore(&priv->rx_urb_lock, flags);
for (i = 0; i < RTL8XXXU_RX_URBS; i++) {
- rx_urb = kmalloc(sizeof(struct rtl8xxxu_rx_urb), GFP_KERNEL);
+ rx_urb = kmalloc_obj(struct rtl8xxxu_rx_urb, GFP_KERNEL);
if (!rx_urb) {
if (!i)
ret = -ENOMEM;
diff --git a/drivers/net/wireless/realtek/rtlwifi/base.c b/drivers/net/wireless/realtek/rtlwifi/base.c
index 09e5a16d7252..0ac9cf0937aa 100644
--- a/drivers/net/wireless/realtek/rtlwifi/base.c
+++ b/drivers/net/wireless/realtek/rtlwifi/base.c
@@ -2011,7 +2011,7 @@ void rtl_collect_scan_list(struct ieee80211_hw *hw, struct sk_buff *skb)
}
if (!entry) {
- entry = kmalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kmalloc_obj(*entry, GFP_ATOMIC);
if (!entry)
goto label_err;
diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.c b/drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.c
index e88d92d3ae7a..332f90e4d83f 100644
--- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.c
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.c
@@ -132,10 +132,10 @@ static void rtl_btc_alloc_variable(struct rtl_priv *rtlpriv, bool wifi_only)
{
if (wifi_only)
rtlpriv->btcoexist.wifi_only_context =
- kzalloc(sizeof(struct wifi_only_cfg), GFP_KERNEL);
+ kzalloc_obj(struct wifi_only_cfg, GFP_KERNEL);
else
rtlpriv->btcoexist.btc_context =
- kzalloc(sizeof(struct btc_coexist), GFP_KERNEL);
+ kzalloc_obj(struct btc_coexist, GFP_KERNEL);
}
static void rtl_btc_free_variable(struct rtl_priv *rtlpriv)
diff --git a/drivers/net/wireless/realtek/rtlwifi/rc.c b/drivers/net/wireless/realtek/rtlwifi/rc.c
index a164364109ba..dcfaa98198b6 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rc.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rc.c
@@ -278,7 +278,7 @@ static void *rtl_rate_alloc_sta(void *ppriv,
struct rtl_priv *rtlpriv = ppriv;
struct rtl_rate_priv *rate_priv;
- rate_priv = kzalloc(sizeof(*rate_priv), gfp);
+ rate_priv = kzalloc_obj(*rate_priv, gfp);
if (!rate_priv)
return NULL;
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192du/sw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192du/sw.c
index cc699efa9c79..1f927dd9e152 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192du/sw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192du/sw.c
@@ -70,10 +70,10 @@ static int rtl92du_init_shared_data(struct ieee80211_hw *hw)
rtlpriv->curveindex_5g = kcalloc(TARGET_CHNL_NUM_5G,
sizeof(*rtlpriv->curveindex_5g),
GFP_KERNEL);
- rtlpriv->mutex_for_power_on_off =
- kzalloc(sizeof(*rtlpriv->mutex_for_power_on_off), GFP_KERNEL);
- rtlpriv->mutex_for_hw_init =
- kzalloc(sizeof(*rtlpriv->mutex_for_hw_init), GFP_KERNEL);
+ rtlpriv->mutex_for_power_on_off = kzalloc_obj(*rtlpriv->mutex_for_power_on_off,
+ GFP_KERNEL);
+ rtlpriv->mutex_for_hw_init = kzalloc_obj(*rtlpriv->mutex_for_hw_init,
+ GFP_KERNEL);
if (!rtlpriv->curveindex_2g || !rtlpriv->curveindex_5g ||
!rtlpriv->mutex_for_power_on_off || !rtlpriv->mutex_for_hw_init) {
diff --git a/drivers/net/wireless/realtek/rtw88/fw.c b/drivers/net/wireless/realtek/rtw88/fw.c
index c68a9fff6808..a3e5b0963cb7 100644
--- a/drivers/net/wireless/realtek/rtw88/fw.c
+++ b/drivers/net/wireless/realtek/rtw88/fw.c
@@ -1331,7 +1331,7 @@ static struct rtw_rsvd_page *rtw_alloc_rsvd_page(struct rtw_dev *rtwdev,
{
struct rtw_rsvd_page *rsvd_pkt = NULL;
- rsvd_pkt = kzalloc(sizeof(*rsvd_pkt), GFP_KERNEL);
+ rsvd_pkt = kzalloc_obj(*rsvd_pkt, GFP_KERNEL);
if (!rsvd_pkt)
return NULL;
diff --git a/drivers/net/wireless/realtek/rtw88/sdio.c b/drivers/net/wireless/realtek/rtw88/sdio.c
index 138e9e348c6c..b42840271051 100644
--- a/drivers/net/wireless/realtek/rtw88/sdio.c
+++ b/drivers/net/wireless/realtek/rtw88/sdio.c
@@ -1290,8 +1290,8 @@ static int rtw_sdio_init_tx(struct rtw_dev *rtwdev)
for (i = 0; i < RTK_MAX_TX_QUEUE_NUM; i++)
skb_queue_head_init(&rtwsdio->tx_queue[i]);
- rtwsdio->tx_handler_data = kmalloc(sizeof(*rtwsdio->tx_handler_data),
- GFP_KERNEL);
+ rtwsdio->tx_handler_data = kmalloc_obj(*rtwsdio->tx_handler_data,
+ GFP_KERNEL);
if (!rtwsdio->tx_handler_data)
goto err_destroy_wq;
diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
index db60e142268d..433b06c8d8a6 100644
--- a/drivers/net/wireless/realtek/rtw88/usb.c
+++ b/drivers/net/wireless/realtek/rtw88/usb.c
@@ -403,7 +403,7 @@ static bool rtw_usb_tx_agg_skb(struct rtw_usb *rtwusb, struct sk_buff_head *list
if (skb_queue_empty(list))
return false;
- txcb = kmalloc(sizeof(*txcb), GFP_ATOMIC);
+ txcb = kmalloc_obj(*txcb, GFP_ATOMIC);
if (!txcb)
return false;
diff --git a/drivers/net/wireless/realtek/rtw88/util.c b/drivers/net/wireless/realtek/rtw88/util.c
index 66819f694405..fcd6eb1ab32a 100644
--- a/drivers/net/wireless/realtek/rtw88/util.c
+++ b/drivers/net/wireless/realtek/rtw88/util.c
@@ -122,7 +122,7 @@ static void rtw_collect_sta_iter(void *data, struct ieee80211_sta *sta)
struct rtw_iter_stas_data *iter_stas = data;
struct rtw_stas_entry *stas_entry;
- stas_entry = kmalloc(sizeof(*stas_entry), GFP_ATOMIC);
+ stas_entry = kmalloc_obj(*stas_entry, GFP_ATOMIC);
if (!stas_entry)
return;
@@ -172,7 +172,7 @@ static void rtw_collect_vif_iter(void *data, u8 *mac, struct ieee80211_vif *vif)
struct rtw_iter_vifs_data *iter_stas = data;
struct rtw_vifs_entry *vifs_entry;
- vifs_entry = kmalloc(sizeof(*vifs_entry), GFP_ATOMIC);
+ vifs_entry = kmalloc_obj(*vifs_entry, GFP_ATOMIC);
if (!vifs_entry)
return;
diff --git a/drivers/net/wireless/realtek/rtw89/acpi.c b/drivers/net/wireless/realtek/rtw89/acpi.c
index f1e758a5f32b..0853b2e49675 100644
--- a/drivers/net/wireless/realtek/rtw89/acpi.c
+++ b/drivers/net/wireless/realtek/rtw89/acpi.c
@@ -115,7 +115,7 @@ rtw89_acpi_evaluate_method(struct rtw89_dev *rtwdev, const char *method)
goto out;
}
- data = kzalloc(struct_size(data, buf, len), GFP_KERNEL);
+ data = kzalloc_flex(*data, buf, len, GFP_KERNEL);
if (!data)
goto out;
diff --git a/drivers/net/wireless/realtek/rtw89/cam.c b/drivers/net/wireless/realtek/rtw89/cam.c
index 9f63d67777fa..949f304216e2 100644
--- a/drivers/net/wireless/realtek/rtw89/cam.c
+++ b/drivers/net/wireless/realtek/rtw89/cam.c
@@ -420,7 +420,7 @@ static int rtw89_cam_sec_key_install(struct rtw89_dev *rtwdev,
return ret;
}
- sec_cam = kzalloc(sizeof(*sec_cam), GFP_KERNEL);
+ sec_cam = kzalloc_obj(*sec_cam, GFP_KERNEL);
if (!sec_cam) {
ret = -ENOMEM;
goto err_release_cam;
diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c
index 6e77522bcd8f..3295f76a0f1c 100644
--- a/drivers/net/wireless/realtek/rtw89/core.c
+++ b/drivers/net/wireless/realtek/rtw89/core.c
@@ -4220,7 +4220,7 @@ int rtw89_core_send_nullfunc(struct rtw89_dev *rtwdev, struct rtw89_vif_link *rt
if (vif->type != NL80211_IFTYPE_STATION || !vif->cfg.assoc)
return 0;
- wait = kzalloc(sizeof(*wait), GFP_KERNEL);
+ wait = kzalloc_obj(*wait, GFP_KERNEL);
if (!wait)
return -ENOMEM;
@@ -5657,7 +5657,7 @@ rtw89_wait_for_cond_prep(struct rtw89_wait_info *wait, unsigned int cond)
if (cur != RTW89_WAIT_COND_IDLE)
return ERR_PTR(-EPERM);
- prep = kzalloc(sizeof(*prep), GFP_KERNEL);
+ prep = kzalloc_obj(*prep, GFP_KERNEL);
if (!prep)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/wireless/realtek/rtw89/debug.c b/drivers/net/wireless/realtek/rtw89/debug.c
index 06a9504d2bad..fb89660ba70c 100644
--- a/drivers/net/wireless/realtek/rtw89/debug.c
+++ b/drivers/net/wireless/realtek/rtw89/debug.c
@@ -3524,7 +3524,7 @@ rtw89_debug_priv_early_h2c_set(struct rtw89_dev *rtwdev,
goto out;
}
- early_h2c = kmalloc(sizeof(*early_h2c), GFP_KERNEL);
+ early_h2c = kmalloc_obj(*early_h2c, GFP_KERNEL);
if (!early_h2c) {
kfree(h2c);
return -EFAULT;
diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c
index f84726f04669..97c58a2fa399 100644
--- a/drivers/net/wireless/realtek/rtw89/fw.c
+++ b/drivers/net/wireless/realtek/rtw89/fw.c
@@ -1099,12 +1099,12 @@ int rtw89_build_phy_tbl_from_elm(struct rtw89_dev *rtwdev,
else if (*pp)
return 1; /* ignore if an element is existing */
- tbl = kzalloc(sizeof(*tbl), GFP_KERNEL);
+ tbl = kzalloc_obj(*tbl, GFP_KERNEL);
if (!tbl)
return -ENOMEM;
n_regs = le32_to_cpu(elm->size) / sizeof(tbl->regs[0]);
- regs = kcalloc(n_regs, sizeof(*regs), GFP_KERNEL);
+ regs = kzalloc_objs(*regs, n_regs, GFP_KERNEL);
if (!regs)
goto out;
@@ -1141,7 +1141,7 @@ int rtw89_fw_recognize_txpwr_from_elm(struct rtw89_dev *rtwdev,
struct rtw89_txpwr_conf *conf;
if (!rtwdev->rfe_data) {
- rtwdev->rfe_data = kzalloc(sizeof(*rtwdev->rfe_data), GFP_KERNEL);
+ rtwdev->rfe_data = kzalloc_obj(*rtwdev->rfe_data, GFP_KERNEL);
if (!rtwdev->rfe_data)
return -ENOMEM;
}
@@ -1201,7 +1201,7 @@ int rtw89_build_txpwr_trk_tbl_from_elm(struct rtw89_dev *rtwdev,
return -ENOENT;
}
- elm_info->txpwr_trk = kzalloc(sizeof(*elm_info->txpwr_trk), GFP_KERNEL);
+ elm_info->txpwr_trk = kzalloc_obj(*elm_info->txpwr_trk, GFP_KERNEL);
if (!elm_info->txpwr_trk)
return -ENOMEM;
@@ -1250,7 +1250,7 @@ int rtw89_build_rfk_log_fmt_from_elm(struct rtw89_dev *rtwdev,
if (elm_info->rfk_log_fmt)
goto allocated;
- elm_info->rfk_log_fmt = kzalloc(sizeof(*elm_info->rfk_log_fmt), GFP_KERNEL);
+ elm_info->rfk_log_fmt = kzalloc_obj(*elm_info->rfk_log_fmt, GFP_KERNEL);
if (!elm_info->rfk_log_fmt)
return 1; /* this is an optional element, so just ignore this */
@@ -2944,7 +2944,7 @@ static int rtw89_fw_h2c_add_general_pkt(struct rtw89_dev *rtwdev,
struct sk_buff *skb;
int ret;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
@@ -8138,7 +8138,7 @@ static int rtw89_append_probe_req_ie(struct rtw89_dev *rtwdev,
skb_put_data(new, ies->ies[band], ies->len[band]);
skb_put_data(new, ies->common_ies, ies->common_ie_len);
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info) {
ret = -ENOMEM;
kfree_skb(new);
@@ -8234,7 +8234,7 @@ static int rtw89_update_6ghz_rnr_chan_ax(struct rtw89_dev *rtwdev,
hdr = (struct ieee80211_hdr *)skb->data;
ether_addr_copy(hdr->addr3, params->bssid);
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info) {
ret = -ENOMEM;
kfree_skb(skb);
@@ -8527,7 +8527,7 @@ int rtw89_pno_scan_add_chan_list_ax(struct rtw89_dev *rtwdev,
idx < nd_config->n_channels && list_len < RTW89_SCAN_LIST_LIMIT_AX;
idx++, list_len++) {
channel = nd_config->channels[idx];
- ch_info = kzalloc(sizeof(*ch_info), GFP_KERNEL);
+ ch_info = kzalloc_obj(*ch_info, GFP_KERNEL);
if (!ch_info) {
ret = -ENOMEM;
goto out;
@@ -8567,7 +8567,7 @@ static int rtw89_hw_scan_add_op_types_ax(struct rtw89_dev *rtwdev,
{
struct rtw89_mac_chinfo_ax *tmp;
- tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
return -ENOMEM;
@@ -8613,7 +8613,7 @@ int rtw89_hw_scan_prep_chan_list_ax(struct rtw89_dev *rtwdev,
for (idx = 0; idx < req->n_channels; idx++) {
channel = req->channels[idx];
- ch_info = kzalloc(sizeof(*ch_info), GFP_KERNEL);
+ ch_info = kzalloc_obj(*ch_info, GFP_KERNEL);
if (!ch_info) {
ret = -ENOMEM;
goto out;
@@ -8745,7 +8745,7 @@ int rtw89_pno_scan_add_chan_list_be(struct rtw89_dev *rtwdev,
idx < nd_config->n_channels && list_len < RTW89_SCAN_LIST_LIMIT_BE;
idx++, list_len++) {
channel = nd_config->channels[idx];
- ch_info = kzalloc(sizeof(*ch_info), GFP_KERNEL);
+ ch_info = kzalloc_obj(*ch_info, GFP_KERNEL);
if (!ch_info) {
ret = -ENOMEM;
goto out;
@@ -8807,7 +8807,7 @@ int rtw89_hw_scan_prep_chan_list_be(struct rtw89_dev *rtwdev,
!cfg80211_channel_is_psc(channel) && chan_by_rnr)
continue;
- ch_info = kzalloc(sizeof(*ch_info), GFP_KERNEL);
+ ch_info = kzalloc_obj(*ch_info, GFP_KERNEL);
if (!ch_info) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/net/wireless/realtek/rtw89/mac80211.c b/drivers/net/wireless/realtek/rtw89/mac80211.c
index 315bb0d0759f..594af3b7201b 100644
--- a/drivers/net/wireless/realtek/rtw89/mac80211.c
+++ b/drivers/net/wireless/realtek/rtw89/mac80211.c
@@ -1666,7 +1666,7 @@ int rtw89_ops_change_vif_links(struct ieee80211_hw *hw,
return -EOPNOTSUPP;
if (removing_links) {
- snap = kzalloc(sizeof(*snap), GFP_KERNEL);
+ snap = kzalloc_obj(*snap, GFP_KERNEL);
if (!snap)
return -ENOMEM;
diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c
index 6c6d5f1da867..eb2e2191408a 100644
--- a/drivers/net/wireless/realtek/rtw89/phy.c
+++ b/drivers/net/wireless/realtek/rtw89/phy.c
@@ -1975,7 +1975,7 @@ void rtw89_phy_init_rf_reg(struct rtw89_dev *rtwdev, bool noio)
struct rtw89_fw_h2c_rf_reg_info *rf_reg_info;
u8 path;
- rf_reg_info = kzalloc(sizeof(*rf_reg_info), GFP_KERNEL);
+ rf_reg_info = kzalloc_obj(*rf_reg_info, GFP_KERNEL);
if (!rf_reg_info)
return;
diff --git a/drivers/net/wireless/realtek/rtw89/sar.c b/drivers/net/wireless/realtek/rtw89/sar.c
index ef7feccccd5e..994ebbd8d267 100644
--- a/drivers/net/wireless/realtek/rtw89/sar.c
+++ b/drivers/net/wireless/realtek/rtw89/sar.c
@@ -501,7 +501,7 @@ static void rtw89_set_sar_from_acpi(struct rtw89_dev *rtwdev)
struct rtw89_sar_cfg_acpi *cfg;
int ret;
- cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
+ cfg = kzalloc_obj(*cfg, GFP_KERNEL);
if (!cfg)
return;
diff --git a/drivers/net/wireless/realtek/rtw89/ser.c b/drivers/net/wireless/realtek/rtw89/ser.c
index 7fdc69578da3..f91e66133b30 100644
--- a/drivers/net/wireless/realtek/rtw89/ser.c
+++ b/drivers/net/wireless/realtek/rtw89/ser.c
@@ -210,7 +210,7 @@ static int ser_send_msg(struct rtw89_ser *ser, u8 event)
if (test_bit(RTW89_SER_DRV_STOP_RUN, ser->flags))
return -EIO;
- msg = kmalloc(sizeof(*msg), GFP_ATOMIC);
+ msg = kmalloc_obj(*msg, GFP_ATOMIC);
if (!msg)
return -ENOMEM;
diff --git a/drivers/net/wireless/realtek/rtw89/usb.c b/drivers/net/wireless/realtek/rtw89/usb.c
index e77561a4d971..95b5c1cfdce4 100644
--- a/drivers/net/wireless/realtek/rtw89/usb.c
+++ b/drivers/net/wireless/realtek/rtw89/usb.c
@@ -294,7 +294,7 @@ static void rtw89_usb_ops_tx_kick_off(struct rtw89_dev *rtwdev, u8 txch)
if (!skb)
break;
- txcb = kmalloc(sizeof(*txcb), GFP_ATOMIC);
+ txcb = kmalloc_obj(*txcb, GFP_ATOMIC);
if (!txcb) {
rtw89_usb_tx_free_skb(rtwdev, txch, skb);
continue;
@@ -931,8 +931,8 @@ static int rtw89_usb_intf_init(struct rtw89_dev *rtwdev,
if (ret)
return ret;
- rtwusb->vendor_req_buf = kmalloc(sizeof(*rtwusb->vendor_req_buf),
- GFP_KERNEL);
+ rtwusb->vendor_req_buf = kmalloc_obj(*rtwusb->vendor_req_buf,
+ GFP_KERNEL);
if (!rtwusb->vendor_req_buf)
return -ENOMEM;
diff --git a/drivers/net/wireless/realtek/rtw89/wow.c b/drivers/net/wireless/realtek/rtw89/wow.c
index b67ceda59e92..6954ca8f0b35 100644
--- a/drivers/net/wireless/realtek/rtw89/wow.c
+++ b/drivers/net/wireless/realtek/rtw89/wow.c
@@ -1490,7 +1490,7 @@ static int rtw89_pno_scan_update_probe_req(struct rtw89_dev *rtwdev,
skb_put_data(skb, basic_rate_ie, sizeof(basic_rate_ie));
skb_put_data(skb, nd_config->ie, nd_config->ie_len);
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info) {
kfree_skb(skb);
rtw89_fw_release_pno_pkt_list(rtwdev, rtwvif_link);
diff --git a/drivers/net/wireless/rsi/rsi_91x_coex.c b/drivers/net/wireless/rsi/rsi_91x_coex.c
index 372eaaa2b9ef..5bc8c30f2721 100644
--- a/drivers/net/wireless/rsi/rsi_91x_coex.c
+++ b/drivers/net/wireless/rsi/rsi_91x_coex.c
@@ -140,7 +140,7 @@ int rsi_coex_attach(struct rsi_common *common)
struct rsi_coex_ctrl_block *coex_cb;
int cnt;
- coex_cb = kzalloc(sizeof(*coex_cb), GFP_KERNEL);
+ coex_cb = kzalloc_obj(*coex_cb, GFP_KERNEL);
if (!coex_cb)
return -ENOMEM;
diff --git a/drivers/net/wireless/rsi/rsi_91x_debugfs.c b/drivers/net/wireless/rsi/rsi_91x_debugfs.c
index c528e6ca2c8d..ea1766b967ee 100644
--- a/drivers/net/wireless/rsi/rsi_91x_debugfs.c
+++ b/drivers/net/wireless/rsi/rsi_91x_debugfs.c
@@ -285,7 +285,7 @@ int rsi_init_dbgfs(struct rsi_hw *adapter)
int ii;
const struct rsi_dbg_files *files;
- dev_dbgfs = kzalloc(sizeof(*dev_dbgfs), GFP_KERNEL);
+ dev_dbgfs = kzalloc_obj(*dev_dbgfs, GFP_KERNEL);
if (!dev_dbgfs)
return -ENOMEM;
diff --git a/drivers/net/wireless/rsi/rsi_91x_hal.c b/drivers/net/wireless/rsi/rsi_91x_hal.c
index 7d26314a3e76..9e65db2f6460 100644
--- a/drivers/net/wireless/rsi/rsi_91x_hal.c
+++ b/drivers/net/wireless/rsi/rsi_91x_hal.c
@@ -647,7 +647,7 @@ static int bl_write_header(struct rsi_hw *adapter, u8 *flash_content,
u32 write_addr, write_len;
int status;
- bl_hdr = kzalloc(sizeof(*bl_hdr), GFP_KERNEL);
+ bl_hdr = kzalloc_obj(*bl_hdr, GFP_KERNEL);
if (!bl_hdr)
return -ENOMEM;
diff --git a/drivers/net/wireless/rsi/rsi_91x_main.c b/drivers/net/wireless/rsi/rsi_91x_main.c
index a9bb37d5d581..c936e40ac871 100644
--- a/drivers/net/wireless/rsi/rsi_91x_main.c
+++ b/drivers/net/wireless/rsi/rsi_91x_main.c
@@ -304,11 +304,11 @@ struct rsi_hw *rsi_91x_init(u16 oper_mode)
struct rsi_common *common = NULL;
u8 ii = 0;
- adapter = kzalloc(sizeof(*adapter), GFP_KERNEL);
+ adapter = kzalloc_obj(*adapter, GFP_KERNEL);
if (!adapter)
return NULL;
- adapter->priv = kzalloc(sizeof(*common), GFP_KERNEL);
+ adapter->priv = kzalloc_obj(*common, GFP_KERNEL);
if (adapter->priv == NULL) {
rsi_dbg(ERR_ZONE, "%s: Failed in allocation of memory\n",
__func__);
diff --git a/drivers/net/wireless/rsi/rsi_91x_sdio.c b/drivers/net/wireless/rsi/rsi_91x_sdio.c
index ee7ad81c858d..51932a434d89 100644
--- a/drivers/net/wireless/rsi/rsi_91x_sdio.c
+++ b/drivers/net/wireless/rsi/rsi_91x_sdio.c
@@ -828,7 +828,7 @@ static int rsi_init_sdio_interface(struct rsi_hw *adapter,
struct rsi_91x_sdiodev *rsi_91x_dev;
int status;
- rsi_91x_dev = kzalloc(sizeof(*rsi_91x_dev), GFP_KERNEL);
+ rsi_91x_dev = kzalloc_obj(*rsi_91x_dev, GFP_KERNEL);
if (!rsi_91x_dev)
return -ENOMEM;
diff --git a/drivers/net/wireless/rsi/rsi_91x_usb.c b/drivers/net/wireless/rsi/rsi_91x_usb.c
index dccc139cabb2..b0238103c13b 100644
--- a/drivers/net/wireless/rsi/rsi_91x_usb.c
+++ b/drivers/net/wireless/rsi/rsi_91x_usb.c
@@ -620,7 +620,7 @@ static int rsi_init_usb_interface(struct rsi_hw *adapter,
struct rsi_91x_usbdev *rsi_dev;
int status;
- rsi_dev = kzalloc(sizeof(*rsi_dev), GFP_KERNEL);
+ rsi_dev = kzalloc_obj(*rsi_dev, GFP_KERNEL);
if (!rsi_dev)
return -ENOMEM;
diff --git a/drivers/net/wireless/silabs/wfx/debug.c b/drivers/net/wireless/silabs/wfx/debug.c
index e8265208f9a5..6475a4a42afc 100644
--- a/drivers/net/wireless/silabs/wfx/debug.c
+++ b/drivers/net/wireless/silabs/wfx/debug.c
@@ -291,7 +291,7 @@ static ssize_t wfx_send_hif_msg_read(struct file *file, char __user *user_buf,
static int wfx_send_hif_msg_open(struct inode *inode, struct file *file)
{
- struct dbgfs_hif_msg *context = kzalloc(sizeof(*context), GFP_KERNEL);
+ struct dbgfs_hif_msg *context = kzalloc_obj(*context, GFP_KERNEL);
if (!context)
return -ENOMEM;
diff --git a/drivers/net/wireless/st/cw1200/cw1200_sdio.c b/drivers/net/wireless/st/cw1200/cw1200_sdio.c
index 00c4731d8f8e..b503112d3a3e 100644
--- a/drivers/net/wireless/st/cw1200/cw1200_sdio.c
+++ b/drivers/net/wireless/st/cw1200/cw1200_sdio.c
@@ -287,7 +287,7 @@ static int cw1200_sdio_probe(struct sdio_func *func,
if (func->num != 0x01)
return -ENODEV;
- self = kzalloc(sizeof(*self), GFP_KERNEL);
+ self = kzalloc_obj(*self, GFP_KERNEL);
if (!self) {
pr_err("Can't allocate SDIO hwbus_priv.\n");
return -ENOMEM;
diff --git a/drivers/net/wireless/st/cw1200/debug.c b/drivers/net/wireless/st/cw1200/debug.c
index 8686929c70df..6af080d0f21b 100644
--- a/drivers/net/wireless/st/cw1200/debug.c
+++ b/drivers/net/wireless/st/cw1200/debug.c
@@ -360,8 +360,8 @@ static const struct file_operations fops_wsm_dumps = {
int cw1200_debug_init(struct cw1200_common *priv)
{
int ret = -ENOMEM;
- struct cw1200_debug_priv *d = kzalloc(sizeof(struct cw1200_debug_priv),
- GFP_KERNEL);
+ struct cw1200_debug_priv *d = kzalloc_obj(struct cw1200_debug_priv,
+ GFP_KERNEL);
priv->debug = d;
if (!d)
return ret;
diff --git a/drivers/net/wireless/st/cw1200/pm.c b/drivers/net/wireless/st/cw1200/pm.c
index 2002e3f9fe45..ed2650b2a40b 100644
--- a/drivers/net/wireless/st/cw1200/pm.c
+++ b/drivers/net/wireless/st/cw1200/pm.c
@@ -207,7 +207,7 @@ int cw1200_wow_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
wsm_set_ether_type_filter(priv, &cw1200_ether_type_filter_on.hdr);
/* Allocate state */
- state = kzalloc(sizeof(struct cw1200_suspend_state), GFP_KERNEL);
+ state = kzalloc_obj(struct cw1200_suspend_state, GFP_KERNEL);
if (!state)
goto revert3;
diff --git a/drivers/net/wireless/st/cw1200/queue.c b/drivers/net/wireless/st/cw1200/queue.c
index a933e2c7dc2c..717da9c2cad9 100644
--- a/drivers/net/wireless/st/cw1200/queue.c
+++ b/drivers/net/wireless/st/cw1200/queue.c
@@ -153,8 +153,7 @@ int cw1200_queue_stats_init(struct cw1200_queue_stats *stats,
spin_lock_init(&stats->lock);
init_waitqueue_head(&stats->wait_link_id_empty);
- stats->link_map_cache = kcalloc(map_capacity, sizeof(int),
- GFP_KERNEL);
+ stats->link_map_cache = kzalloc_objs(int, map_capacity, GFP_KERNEL);
if (!stats->link_map_cache)
return -ENOMEM;
@@ -180,13 +179,13 @@ int cw1200_queue_init(struct cw1200_queue *queue,
spin_lock_init(&queue->lock);
timer_setup(&queue->gc, cw1200_queue_gc, 0);
- queue->pool = kcalloc(capacity, sizeof(struct cw1200_queue_item),
- GFP_KERNEL);
+ queue->pool = kzalloc_objs(struct cw1200_queue_item, capacity,
+ GFP_KERNEL);
if (!queue->pool)
return -ENOMEM;
- queue->link_map_cache = kcalloc(stats->map_capacity, sizeof(int),
- GFP_KERNEL);
+ queue->link_map_cache = kzalloc_objs(int, stats->map_capacity,
+ GFP_KERNEL);
if (!queue->link_map_cache) {
kfree(queue->pool);
queue->pool = NULL;
diff --git a/drivers/net/wireless/st/cw1200/scan.c b/drivers/net/wireless/st/cw1200/scan.c
index 1f856fbbc0ea..f0b902d2ecc1 100644
--- a/drivers/net/wireless/st/cw1200/scan.c
+++ b/drivers/net/wireless/st/cw1200/scan.c
@@ -225,9 +225,8 @@ void cw1200_scan_work(struct work_struct *work)
scan.type = WSM_SCAN_TYPE_BACKGROUND;
scan.flags = WSM_SCAN_FLAG_FORCE_BACKGROUND;
}
- scan.ch = kcalloc(it - priv->scan.curr,
- sizeof(struct wsm_scan_ch),
- GFP_KERNEL);
+ scan.ch = kzalloc_objs(struct wsm_scan_ch, it - priv->scan.curr,
+ GFP_KERNEL);
if (!scan.ch) {
priv->scan.status = -ENOMEM;
goto fail;
diff --git a/drivers/net/wireless/st/cw1200/wsm.c b/drivers/net/wireless/st/cw1200/wsm.c
index 4a9e4b5d3547..0b669b2f3ef4 100644
--- a/drivers/net/wireless/st/cw1200/wsm.c
+++ b/drivers/net/wireless/st/cw1200/wsm.c
@@ -922,7 +922,7 @@ static int wsm_event_indication(struct cw1200_common *priv, struct wsm_buf *buf)
return 0;
}
- event = kzalloc(sizeof(struct cw1200_wsm_event), GFP_KERNEL);
+ event = kzalloc_obj(struct cw1200_wsm_event, GFP_KERNEL);
if (!event)
return -ENOMEM;
diff --git a/drivers/net/wireless/ti/wl1251/acx.c b/drivers/net/wireless/ti/wl1251/acx.c
index 166efac812fe..b53ac17172c4 100644
--- a/drivers/net/wireless/ti/wl1251/acx.c
+++ b/drivers/net/wireless/ti/wl1251/acx.c
@@ -18,7 +18,7 @@ int wl1251_acx_frame_rates(struct wl1251 *wl, u8 ctrl_rate, u8 ctrl_mod,
wl1251_debug(DEBUG_ACX, "acx frame rates");
- rates = kzalloc(sizeof(*rates), GFP_KERNEL);
+ rates = kzalloc_obj(*rates, GFP_KERNEL);
if (!rates)
return -ENOMEM;
@@ -47,7 +47,7 @@ int wl1251_acx_station_id(struct wl1251 *wl)
wl1251_debug(DEBUG_ACX, "acx dot11_station_id");
- mac = kzalloc(sizeof(*mac), GFP_KERNEL);
+ mac = kzalloc_obj(*mac, GFP_KERNEL);
if (!mac)
return -ENOMEM;
@@ -67,7 +67,7 @@ int wl1251_acx_default_key(struct wl1251 *wl, u8 key_id)
wl1251_debug(DEBUG_ACX, "acx dot11_default_key (%d)", key_id);
- default_key = kzalloc(sizeof(*default_key), GFP_KERNEL);
+ default_key = kzalloc_obj(*default_key, GFP_KERNEL);
if (!default_key)
return -ENOMEM;
@@ -95,7 +95,7 @@ int wl1251_acx_wake_up_conditions(struct wl1251 *wl, u8 wake_up_event,
wl1251_debug(DEBUG_ACX, "acx wake up conditions");
- wake_up = kzalloc(sizeof(*wake_up), GFP_KERNEL);
+ wake_up = kzalloc_obj(*wake_up, GFP_KERNEL);
if (!wake_up)
return -ENOMEM;
@@ -121,7 +121,7 @@ int wl1251_acx_sleep_auth(struct wl1251 *wl, u8 sleep_auth)
wl1251_debug(DEBUG_ACX, "acx sleep auth");
- auth = kzalloc(sizeof(*auth), GFP_KERNEL);
+ auth = kzalloc_obj(*auth, GFP_KERNEL);
if (!auth)
return -ENOMEM;
@@ -140,7 +140,7 @@ int wl1251_acx_fw_version(struct wl1251 *wl, char *buf, size_t len)
wl1251_debug(DEBUG_ACX, "acx fw rev");
- rev = kzalloc(sizeof(*rev), GFP_KERNEL);
+ rev = kzalloc_obj(*rev, GFP_KERNEL);
if (!rev)
return -ENOMEM;
@@ -167,7 +167,7 @@ int wl1251_acx_tx_power(struct wl1251 *wl, int power)
if (power < 0 || power > 25)
return -EINVAL;
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx)
return -ENOMEM;
@@ -191,7 +191,7 @@ int wl1251_acx_feature_cfg(struct wl1251 *wl, u32 data_flow_options)
wl1251_debug(DEBUG_ACX, "acx feature cfg");
- feature = kzalloc(sizeof(*feature), GFP_KERNEL);
+ feature = kzalloc_obj(*feature, GFP_KERNEL);
if (!feature)
return -ENOMEM;
@@ -233,7 +233,7 @@ int wl1251_acx_data_path_params(struct wl1251 *wl,
wl1251_debug(DEBUG_ACX, "acx data path params");
- params = kzalloc(sizeof(*params), GFP_KERNEL);
+ params = kzalloc_obj(*params, GFP_KERNEL);
if (!params)
return -ENOMEM;
@@ -279,7 +279,7 @@ int wl1251_acx_rx_msdu_life_time(struct wl1251 *wl, u32 life_time)
wl1251_debug(DEBUG_ACX, "acx rx msdu life time");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx)
return -ENOMEM;
@@ -303,7 +303,7 @@ int wl1251_acx_rx_config(struct wl1251 *wl, u32 config, u32 filter)
wl1251_debug(DEBUG_ACX, "acx rx config");
- rx_config = kzalloc(sizeof(*rx_config), GFP_KERNEL);
+ rx_config = kzalloc_obj(*rx_config, GFP_KERNEL);
if (!rx_config)
return -ENOMEM;
@@ -329,7 +329,7 @@ int wl1251_acx_pd_threshold(struct wl1251 *wl)
wl1251_debug(DEBUG_ACX, "acx data pd threshold");
- pd = kzalloc(sizeof(*pd), GFP_KERNEL);
+ pd = kzalloc_obj(*pd, GFP_KERNEL);
if (!pd)
return -ENOMEM;
@@ -353,7 +353,7 @@ int wl1251_acx_slot(struct wl1251 *wl, enum acx_slot_type slot_time)
wl1251_debug(DEBUG_ACX, "acx slot");
- slot = kzalloc(sizeof(*slot), GFP_KERNEL);
+ slot = kzalloc_obj(*slot, GFP_KERNEL);
if (!slot)
return -ENOMEM;
@@ -379,7 +379,7 @@ int wl1251_acx_group_address_tbl(struct wl1251 *wl, bool enable,
wl1251_debug(DEBUG_ACX, "acx group address tbl");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx)
return -ENOMEM;
@@ -405,7 +405,7 @@ int wl1251_acx_service_period_timeout(struct wl1251 *wl)
struct acx_rx_timeout *rx_timeout;
int ret;
- rx_timeout = kzalloc(sizeof(*rx_timeout), GFP_KERNEL);
+ rx_timeout = kzalloc_obj(*rx_timeout, GFP_KERNEL);
if (!rx_timeout)
return -ENOMEM;
@@ -434,7 +434,7 @@ int wl1251_acx_rts_threshold(struct wl1251 *wl, u16 rts_threshold)
wl1251_debug(DEBUG_ACX, "acx rts threshold");
- rts = kzalloc(sizeof(*rts), GFP_KERNEL);
+ rts = kzalloc_obj(*rts, GFP_KERNEL);
if (!rts)
return -ENOMEM;
@@ -458,7 +458,7 @@ int wl1251_acx_beacon_filter_opt(struct wl1251 *wl, bool enable_filter)
wl1251_debug(DEBUG_ACX, "acx beacon filter opt");
- beacon_filter = kzalloc(sizeof(*beacon_filter), GFP_KERNEL);
+ beacon_filter = kzalloc_obj(*beacon_filter, GFP_KERNEL);
if (!beacon_filter)
return -ENOMEM;
@@ -485,7 +485,7 @@ int wl1251_acx_beacon_filter_table(struct wl1251 *wl)
wl1251_debug(DEBUG_ACX, "acx beacon filter table");
- ie_table = kzalloc(sizeof(*ie_table), GFP_KERNEL);
+ ie_table = kzalloc_obj(*ie_table, GFP_KERNEL);
if (!ie_table)
return -ENOMEM;
@@ -513,7 +513,7 @@ int wl1251_acx_conn_monit_params(struct wl1251 *wl)
wl1251_debug(DEBUG_ACX, "acx connection monitor parameters");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx)
return -ENOMEM;
@@ -540,7 +540,7 @@ int wl1251_acx_sg_enable(struct wl1251 *wl)
wl1251_debug(DEBUG_ACX, "acx sg enable");
- pta = kzalloc(sizeof(*pta), GFP_KERNEL);
+ pta = kzalloc_obj(*pta, GFP_KERNEL);
if (!pta)
return -ENOMEM;
@@ -564,7 +564,7 @@ int wl1251_acx_sg_cfg(struct wl1251 *wl)
wl1251_debug(DEBUG_ACX, "acx sg cfg");
- param = kzalloc(sizeof(*param), GFP_KERNEL);
+ param = kzalloc_obj(*param, GFP_KERNEL);
if (!param)
return -ENOMEM;
@@ -616,7 +616,7 @@ int wl1251_acx_cca_threshold(struct wl1251 *wl)
wl1251_debug(DEBUG_ACX, "acx cca threshold");
- detection = kzalloc(sizeof(*detection), GFP_KERNEL);
+ detection = kzalloc_obj(*detection, GFP_KERNEL);
if (!detection)
return -ENOMEM;
@@ -639,7 +639,7 @@ int wl1251_acx_bcn_dtim_options(struct wl1251 *wl)
wl1251_debug(DEBUG_ACX, "acx bcn dtim options");
- bb = kzalloc(sizeof(*bb), GFP_KERNEL);
+ bb = kzalloc_obj(*bb, GFP_KERNEL);
if (!bb)
return -ENOMEM;
@@ -666,7 +666,7 @@ int wl1251_acx_aid(struct wl1251 *wl, u16 aid)
wl1251_debug(DEBUG_ACX, "acx aid");
- acx_aid = kzalloc(sizeof(*acx_aid), GFP_KERNEL);
+ acx_aid = kzalloc_obj(*acx_aid, GFP_KERNEL);
if (!acx_aid)
return -ENOMEM;
@@ -690,7 +690,7 @@ int wl1251_acx_event_mbox_mask(struct wl1251 *wl, u32 event_mask)
wl1251_debug(DEBUG_ACX, "acx event mbox mask");
- mask = kzalloc(sizeof(*mask), GFP_KERNEL);
+ mask = kzalloc_obj(*mask, GFP_KERNEL);
if (!mask)
return -ENOMEM;
@@ -719,7 +719,7 @@ int wl1251_acx_low_rssi(struct wl1251 *wl, s8 threshold, u8 weight,
wl1251_debug(DEBUG_ACX, "acx low rssi");
- rssi = kzalloc(sizeof(*rssi), GFP_KERNEL);
+ rssi = kzalloc_obj(*rssi, GFP_KERNEL);
if (!rssi)
return -ENOMEM;
@@ -743,7 +743,7 @@ int wl1251_acx_set_preamble(struct wl1251 *wl, enum acx_preamble_type preamble)
wl1251_debug(DEBUG_ACX, "acx_set_preamble");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx)
return -ENOMEM;
@@ -768,7 +768,7 @@ int wl1251_acx_cts_protect(struct wl1251 *wl,
wl1251_debug(DEBUG_ACX, "acx_set_ctsprotect");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx)
return -ENOMEM;
@@ -790,7 +790,7 @@ int wl1251_acx_tsf_info(struct wl1251 *wl, u64 *mactime)
struct acx_tsf_info *tsf_info;
int ret;
- tsf_info = kzalloc(sizeof(*tsf_info), GFP_KERNEL);
+ tsf_info = kzalloc_obj(*tsf_info, GFP_KERNEL);
if (!tsf_info)
return -ENOMEM;
@@ -832,7 +832,7 @@ int wl1251_acx_mem_cfg(struct wl1251 *wl)
wl1251_debug(DEBUG_ACX, "acx mem cfg");
- mem_conf = kzalloc(sizeof(*mem_conf), GFP_KERNEL);
+ mem_conf = kzalloc_obj(*mem_conf, GFP_KERNEL);
if (!mem_conf)
return -ENOMEM;
@@ -877,7 +877,7 @@ int wl1251_acx_wr_tbtt_and_dtim(struct wl1251 *wl, u16 tbtt, u8 dtim)
wl1251_debug(DEBUG_ACX, "acx tbtt and dtim");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx)
return -ENOMEM;
@@ -904,7 +904,7 @@ int wl1251_acx_bet_enable(struct wl1251 *wl, enum wl1251_acx_bet_mode mode,
wl1251_debug(DEBUG_ACX, "acx bet enable");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx)
return -ENOMEM;
@@ -929,7 +929,7 @@ int wl1251_acx_arp_ip_filter(struct wl1251 *wl, bool enable, __be32 address)
wl1251_debug(DEBUG_ACX, "acx arp ip filter, enable: %d", enable);
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx)
return -ENOMEM;
@@ -957,7 +957,7 @@ int wl1251_acx_ac_cfg(struct wl1251 *wl, u8 ac, u8 cw_min, u16 cw_max,
wl1251_debug(DEBUG_ACX, "acx ac cfg %d cw_ming %d cw_max %d "
"aifs %d txop %d", ac, cw_min, cw_max, aifs, txop);
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx)
return -ENOMEM;
@@ -990,7 +990,7 @@ int wl1251_acx_tid_cfg(struct wl1251 *wl, u8 queue,
"ps_scheme %d ack_policy %d", queue, type, tsid,
ps_scheme, ack_policy);
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx)
return -ENOMEM;
diff --git a/drivers/net/wireless/ti/wl1251/cmd.c b/drivers/net/wireless/ti/wl1251/cmd.c
index c33ee0d4d323..19eb8806651f 100644
--- a/drivers/net/wireless/ti/wl1251/cmd.c
+++ b/drivers/net/wireless/ti/wl1251/cmd.c
@@ -133,7 +133,7 @@ int wl1251_cmd_vbm(struct wl1251 *wl, u8 identity,
wl1251_debug(DEBUG_CMD, "cmd vbm");
- vbm = kzalloc(sizeof(*vbm), GFP_KERNEL);
+ vbm = kzalloc_obj(*vbm, GFP_KERNEL);
if (!vbm)
return -ENOMEM;
@@ -169,7 +169,7 @@ int wl1251_cmd_data_path_rx(struct wl1251 *wl, u8 channel, bool enable)
wl1251_debug(DEBUG_CMD, "cmd data path");
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -203,7 +203,7 @@ int wl1251_cmd_data_path_tx(struct wl1251 *wl, u8 channel, bool enable)
wl1251_debug(DEBUG_CMD, "cmd data path");
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -233,7 +233,7 @@ int wl1251_cmd_join(struct wl1251 *wl, u8 bss_type, u8 channel,
int ret, i;
u8 *bssid;
- join = kzalloc(sizeof(*join), GFP_KERNEL);
+ join = kzalloc_obj(*join, GFP_KERNEL);
if (!join)
return -ENOMEM;
@@ -276,7 +276,7 @@ int wl1251_cmd_ps_mode(struct wl1251 *wl, u8 ps_mode)
wl1251_debug(DEBUG_CMD, "cmd set ps mode");
- ps_params = kzalloc(sizeof(*ps_params), GFP_KERNEL);
+ ps_params = kzalloc_obj(*ps_params, GFP_KERNEL);
if (!ps_params)
return -ENOMEM;
@@ -342,7 +342,7 @@ int wl1251_cmd_scan(struct wl1251 *wl, u8 *ssid, size_t ssid_len,
WARN_ON(n_channels > SCAN_MAX_NUM_OF_CHANNELS);
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -409,7 +409,7 @@ int wl1251_cmd_trigger_scan_to(struct wl1251 *wl, u32 timeout)
wl1251_debug(DEBUG_CMD, "cmd trigger scan to");
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
diff --git a/drivers/net/wireless/ti/wl1251/debugfs.c b/drivers/net/wireless/ti/wl1251/debugfs.c
index a1b778a0fda0..a68d57555318 100644
--- a/drivers/net/wireless/ti/wl1251/debugfs.c
+++ b/drivers/net/wireless/ti/wl1251/debugfs.c
@@ -444,7 +444,7 @@ void wl1251_debugfs_reset(struct wl1251 *wl)
int wl1251_debugfs_init(struct wl1251 *wl)
{
- wl->stats.fw_stats = kzalloc(sizeof(*wl->stats.fw_stats), GFP_KERNEL);
+ wl->stats.fw_stats = kzalloc_obj(*wl->stats.fw_stats, GFP_KERNEL);
if (!wl->stats.fw_stats)
return -ENOMEM;
diff --git a/drivers/net/wireless/ti/wl1251/event.c b/drivers/net/wireless/ti/wl1251/event.c
index e945aafd88ee..6135d7c6d109 100644
--- a/drivers/net/wireless/ti/wl1251/event.c
+++ b/drivers/net/wireless/ti/wl1251/event.c
@@ -208,7 +208,7 @@ int wl1251_event_handle(struct wl1251 *wl, u8 mbox_num)
if (mbox_num > 1)
return -EINVAL;
- mbox = kmalloc(sizeof(*mbox), GFP_KERNEL);
+ mbox = kmalloc_obj(*mbox, GFP_KERNEL);
if (!mbox) {
wl1251_error("can not allocate mbox buffer");
return -ENOMEM;
diff --git a/drivers/net/wireless/ti/wl1251/init.c b/drivers/net/wireless/ti/wl1251/init.c
index 5663f197ea69..0d7f08f0a41a 100644
--- a/drivers/net/wireless/ti/wl1251/init.c
+++ b/drivers/net/wireless/ti/wl1251/init.c
@@ -194,8 +194,7 @@ int wl1251_hw_init_mem_config(struct wl1251 *wl)
if (ret < 0)
return ret;
- wl->target_mem_map = kzalloc(sizeof(struct wl1251_acx_mem_map),
- GFP_KERNEL);
+ wl->target_mem_map = kzalloc_obj(struct wl1251_acx_mem_map, GFP_KERNEL);
if (!wl->target_mem_map) {
wl1251_error("couldn't allocate target memory map");
return -ENOMEM;
@@ -261,7 +260,7 @@ static int wl1251_hw_init_tx_queue_config(struct wl1251 *wl)
wl1251_debug(DEBUG_ACX, "acx tx queue config");
- config = kzalloc(sizeof(*config), GFP_KERNEL);
+ config = kzalloc_obj(*config, GFP_KERNEL);
if (!config) {
ret = -ENOMEM;
goto out;
@@ -294,8 +293,8 @@ static int wl1251_hw_init_data_path_config(struct wl1251 *wl)
int ret;
/* asking for the data path parameters */
- wl->data_path = kzalloc(sizeof(struct acx_data_path_params_resp),
- GFP_KERNEL);
+ wl->data_path = kzalloc_obj(struct acx_data_path_params_resp,
+ GFP_KERNEL);
if (!wl->data_path)
return -ENOMEM;
diff --git a/drivers/net/wireless/ti/wl1251/io.c b/drivers/net/wireless/ti/wl1251/io.c
index e8d567af74b4..84d497ebc7f2 100644
--- a/drivers/net/wireless/ti/wl1251/io.c
+++ b/drivers/net/wireless/ti/wl1251/io.c
@@ -123,7 +123,7 @@ void wl1251_set_partition(struct wl1251 *wl,
{
struct wl1251_partition_set *partition;
- partition = kmalloc(sizeof(*partition), GFP_KERNEL);
+ partition = kmalloc_obj(*partition, GFP_KERNEL);
if (!partition) {
wl1251_error("can not allocate partition buffer");
return;
diff --git a/drivers/net/wireless/ti/wl1251/main.c b/drivers/net/wireless/ti/wl1251/main.c
index 69fc51f183ad..0a5ec19f8abc 100644
--- a/drivers/net/wireless/ti/wl1251/main.c
+++ b/drivers/net/wireless/ti/wl1251/main.c
@@ -725,7 +725,7 @@ static u64 wl1251_op_prepare_multicast(struct ieee80211_hw *hw,
if (unlikely(wl->state == WL1251_STATE_OFF))
return 0;
- fp = kzalloc(sizeof(*fp), GFP_ATOMIC);
+ fp = kzalloc_obj(*fp, GFP_ATOMIC);
if (!fp) {
wl1251_error("Out of memory setting filters.");
return 0;
@@ -878,7 +878,7 @@ static int wl1251_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
wl1251_debug(DEBUG_MAC80211, "mac80211 set key");
- wl_cmd = kzalloc(sizeof(*wl_cmd), GFP_KERNEL);
+ wl_cmd = kzalloc_obj(*wl_cmd, GFP_KERNEL);
if (!wl_cmd) {
ret = -ENOMEM;
goto out;
@@ -1640,7 +1640,7 @@ struct ieee80211_hw *wl1251_alloc_hw(void)
wl->tx_mgmt_frm_rate = DEFAULT_HW_GEN_TX_RATE;
wl->tx_mgmt_frm_mod = DEFAULT_HW_GEN_MODULATION_TYPE;
- wl->rx_descriptor = kmalloc(sizeof(*wl->rx_descriptor), GFP_KERNEL);
+ wl->rx_descriptor = kmalloc_obj(*wl->rx_descriptor, GFP_KERNEL);
if (!wl->rx_descriptor) {
wl1251_error("could not allocate memory for rx descriptor");
ieee80211_free_hw(hw);
diff --git a/drivers/net/wireless/ti/wl1251/sdio.c b/drivers/net/wireless/ti/wl1251/sdio.c
index b45050243129..1ba35c9fb34b 100644
--- a/drivers/net/wireless/ti/wl1251/sdio.c
+++ b/drivers/net/wireless/ti/wl1251/sdio.c
@@ -204,7 +204,7 @@ static int wl1251_sdio_probe(struct sdio_func *func,
wl = hw->priv;
- wl_sdio = kzalloc(sizeof(*wl_sdio), GFP_KERNEL);
+ wl_sdio = kzalloc_obj(*wl_sdio, GFP_KERNEL);
if (wl_sdio == NULL) {
ret = -ENOMEM;
goto out_free_hw;
diff --git a/drivers/net/wireless/ti/wl1251/tx.c b/drivers/net/wireless/ti/wl1251/tx.c
index adb4840b0489..acd4834d8a54 100644
--- a/drivers/net/wireless/ti/wl1251/tx.c
+++ b/drivers/net/wireless/ti/wl1251/tx.c
@@ -451,7 +451,7 @@ void wl1251_tx_complete(struct wl1251 *wl)
if (unlikely(wl->state != WL1251_STATE_ON))
return;
- result = kmalloc_array(FW_TX_CMPLT_BLOCK_SIZE, sizeof(*result), GFP_KERNEL);
+ result = kmalloc_objs(*result, FW_TX_CMPLT_BLOCK_SIZE, GFP_KERNEL);
if (!result) {
wl1251_error("can not allocate result buffer");
return;
diff --git a/drivers/net/wireless/ti/wl12xx/acx.c b/drivers/net/wireless/ti/wl12xx/acx.c
index fb830d01b8ff..74e16f8c8b22 100644
--- a/drivers/net/wireless/ti/wl12xx/acx.c
+++ b/drivers/net/wireless/ti/wl12xx/acx.c
@@ -17,7 +17,7 @@ int wl1271_acx_host_if_cfg_bitmap(struct wl1271 *wl, u32 host_cfg_bitmap)
struct wl1271_acx_host_config_bitmap *bitmap_conf;
int ret;
- bitmap_conf = kzalloc(sizeof(*bitmap_conf), GFP_KERNEL);
+ bitmap_conf = kzalloc_obj(*bitmap_conf, GFP_KERNEL);
if (!bitmap_conf) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/net/wireless/ti/wl12xx/cmd.c b/drivers/net/wireless/ti/wl12xx/cmd.c
index 17434b3bb10b..d57f420baa60 100644
--- a/drivers/net/wireless/ti/wl12xx/cmd.c
+++ b/drivers/net/wireless/ti/wl12xx/cmd.c
@@ -22,7 +22,7 @@ int wl1271_cmd_ext_radio_parms(struct wl1271 *wl)
if (!wl->nvs)
return -ENODEV;
- ext_radio_parms = kzalloc(sizeof(*ext_radio_parms), GFP_KERNEL);
+ ext_radio_parms = kzalloc_obj(*ext_radio_parms, GFP_KERNEL);
if (!ext_radio_parms)
return -ENOMEM;
@@ -63,7 +63,7 @@ int wl1271_cmd_general_parms(struct wl1271 *wl)
return -EINVAL;
}
- gen_parms = kzalloc(sizeof(*gen_parms), GFP_KERNEL);
+ gen_parms = kzalloc_obj(*gen_parms, GFP_KERNEL);
if (!gen_parms)
return -ENOMEM;
@@ -130,7 +130,7 @@ int wl128x_cmd_general_parms(struct wl1271 *wl)
return -EINVAL;
}
- gen_parms = kzalloc(sizeof(*gen_parms), GFP_KERNEL);
+ gen_parms = kzalloc_obj(*gen_parms, GFP_KERNEL);
if (!gen_parms)
return -ENOMEM;
@@ -191,7 +191,7 @@ int wl1271_cmd_radio_parms(struct wl1271 *wl)
if (!wl->nvs)
return -ENODEV;
- radio_parms = kzalloc(sizeof(*radio_parms), GFP_KERNEL);
+ radio_parms = kzalloc_obj(*radio_parms, GFP_KERNEL);
if (!radio_parms)
return -ENOMEM;
@@ -235,7 +235,7 @@ int wl128x_cmd_radio_parms(struct wl1271 *wl)
if (!wl->nvs)
return -ENODEV;
- radio_parms = kzalloc(sizeof(*radio_parms), GFP_KERNEL);
+ radio_parms = kzalloc_obj(*radio_parms, GFP_KERNEL);
if (!radio_parms)
return -ENOMEM;
@@ -280,7 +280,7 @@ int wl12xx_cmd_channel_switch(struct wl1271 *wl,
wl1271_debug(DEBUG_ACX, "cmd channel switch");
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/net/wireless/ti/wl12xx/main.c b/drivers/net/wireless/ti/wl12xx/main.c
index ffbf54776330..f766845e2451 100644
--- a/drivers/net/wireless/ti/wl12xx/main.c
+++ b/drivers/net/wireless/ti/wl12xx/main.c
@@ -1882,7 +1882,7 @@ static int wl12xx_setup(struct wl1271 *wl)
wl1271_error("Invalid tcxo parameter %s", tcxo_param);
}
- priv->rx_mem_addr = kmalloc(sizeof(*priv->rx_mem_addr), GFP_KERNEL);
+ priv->rx_mem_addr = kmalloc_obj(*priv->rx_mem_addr, GFP_KERNEL);
if (!priv->rx_mem_addr)
return -ENOMEM;
diff --git a/drivers/net/wireless/ti/wl12xx/scan.c b/drivers/net/wireless/ti/wl12xx/scan.c
index 6c18e8552e4a..021c547bbab8 100644
--- a/drivers/net/wireless/ti/wl12xx/scan.c
+++ b/drivers/net/wireless/ti/wl12xx/scan.c
@@ -91,8 +91,8 @@ static int wl1271_scan_send(struct wl1271 *wl, struct wl12xx_vif *wlvif,
if (!passive && wl->scan.req->n_ssids == 0)
return WL1271_NOTHING_TO_SCAN;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
- trigger = kzalloc(sizeof(*trigger), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
+ trigger = kzalloc_obj(*trigger, GFP_KERNEL);
if (!cmd || !trigger) {
ret = -ENOMEM;
goto out;
@@ -184,7 +184,7 @@ int wl12xx_scan_stop(struct wl1271 *wl, struct wl12xx_vif *wlvif)
wl1271_debug(DEBUG_CMD, "cmd scan stop");
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -317,7 +317,7 @@ int wl1271_scan_sched_scan_config(struct wl1271 *wl,
wl1271_debug(DEBUG_CMD, "cmd sched_scan scan config");
- cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
+ cfg = kzalloc_obj(*cfg, GFP_KERNEL);
if (!cfg)
return -ENOMEM;
@@ -348,7 +348,7 @@ int wl1271_scan_sched_scan_config(struct wl1271 *wl,
wl1271_debug(DEBUG_SCAN, "filter_type = %d", cfg->filter_type);
- cfg_channels = kzalloc(sizeof(*cfg_channels), GFP_KERNEL);
+ cfg_channels = kzalloc_obj(*cfg_channels, GFP_KERNEL);
if (!cfg_channels) {
ret = -ENOMEM;
goto out;
@@ -425,7 +425,7 @@ int wl1271_scan_sched_scan_start(struct wl1271 *wl, struct wl12xx_vif *wlvif)
test_bit(WLVIF_FLAG_IN_USE, &wlvif->flags))
return -EBUSY;
- start = kzalloc(sizeof(*start), GFP_KERNEL);
+ start = kzalloc_obj(*start, GFP_KERNEL);
if (!start)
return -ENOMEM;
@@ -465,7 +465,7 @@ void wl12xx_scan_sched_scan_stop(struct wl1271 *wl, struct wl12xx_vif *wlvif)
wl1271_debug(DEBUG_CMD, "cmd periodic scan stop");
/* FIXME: what to do if alloc'ing to stop fails? */
- stop = kzalloc(sizeof(*stop), GFP_KERNEL);
+ stop = kzalloc_obj(*stop, GFP_KERNEL);
if (!stop) {
wl1271_error("failed to alloc memory to send sched scan stop");
return;
diff --git a/drivers/net/wireless/ti/wl18xx/acx.c b/drivers/net/wireless/ti/wl18xx/acx.c
index d1deef02f43e..f29dd27814f5 100644
--- a/drivers/net/wireless/ti/wl18xx/acx.c
+++ b/drivers/net/wireless/ti/wl18xx/acx.c
@@ -23,7 +23,7 @@ int wl18xx_acx_host_if_cfg_bitmap(struct wl1271 *wl, u32 host_cfg_bitmap,
host_cfg_bitmap, sdio_blk_size, extra_mem_blks,
len_field_size);
- bitmap_conf = kzalloc(sizeof(*bitmap_conf), GFP_KERNEL);
+ bitmap_conf = kzalloc_obj(*bitmap_conf, GFP_KERNEL);
if (!bitmap_conf) {
ret = -ENOMEM;
goto out;
@@ -54,7 +54,7 @@ int wl18xx_acx_set_checksum_state(struct wl1271 *wl)
wl1271_debug(DEBUG_ACX, "acx checksum state");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -80,7 +80,7 @@ int wl18xx_acx_clear_statistics(struct wl1271 *wl)
wl1271_debug(DEBUG_ACX, "acx clear statistics");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -105,7 +105,7 @@ int wl18xx_acx_peer_ht_operation_mode(struct wl1271 *wl, u8 hlid, bool wide)
wl1271_debug(DEBUG_ACX, "acx peer ht operation mode hlid %d bw %d",
hlid, wide);
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -146,7 +146,7 @@ int wl18xx_acx_set_peer_cap(struct wl1271 *wl,
"acx set cap ht_supp: %d ht_cap: %d rates: 0x%x",
ht_cap->ht_supported, ht_cap->cap, rate_set);
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -192,7 +192,7 @@ int wl18xx_acx_interrupt_notify_config(struct wl1271 *wl,
struct wl18xx_acx_interrupt_notify *acx;
int ret = 0;
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -219,7 +219,7 @@ int wl18xx_acx_rx_ba_filter(struct wl1271 *wl, bool action)
struct wl18xx_acx_rx_ba_filter *acx;
int ret = 0;
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -247,7 +247,7 @@ int wl18xx_acx_ap_sleep(struct wl1271 *wl)
wl1271_debug(DEBUG_ACX, "acx config ap sleep");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -277,7 +277,7 @@ int wl18xx_acx_dynamic_fw_traces(struct wl1271 *wl)
wl1271_debug(DEBUG_ACX, "acx dynamic fw traces config %d",
wl->dynamic_fw_traces);
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -305,7 +305,7 @@ int wl18xx_acx_time_sync_cfg(struct wl1271 *wl)
wl->conf.sg.params[WL18XX_CONF_SG_TIME_SYNC],
wl->zone_master_mac_addr);
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/net/wireless/ti/wl18xx/cmd.c b/drivers/net/wireless/ti/wl18xx/cmd.c
index 5f8620d90052..5a1dc648fd57 100644
--- a/drivers/net/wireless/ti/wl18xx/cmd.c
+++ b/drivers/net/wireless/ti/wl18xx/cmd.c
@@ -22,7 +22,7 @@ int wl18xx_cmd_channel_switch(struct wl1271 *wl,
wl1271_debug(DEBUG_ACX, "cmd channel switch (count=%d)",
ch_switch->count);
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -78,7 +78,7 @@ int wl18xx_cmd_smart_config_start(struct wl1271 *wl, u32 group_bitmap)
wl1271_debug(DEBUG_CMD, "cmd smart config start group_bitmap=0x%x",
group_bitmap);
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -105,7 +105,7 @@ int wl18xx_cmd_smart_config_stop(struct wl1271 *wl)
wl1271_debug(DEBUG_CMD, "cmd smart config stop");
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -137,7 +137,7 @@ int wl18xx_cmd_smart_config_set_group_key(struct wl1271 *wl, u16 group_id,
return -E2BIG;
}
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -167,7 +167,7 @@ int wl18xx_cmd_set_cac(struct wl1271 *wl, struct wl12xx_vif *wlvif, bool start)
wl1271_debug(DEBUG_CMD, "cmd cac (channel %d) %s",
wlvif->channel, start ? "start" : "stop");
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -198,7 +198,7 @@ int wl18xx_cmd_radar_detection_debug(struct wl1271 *wl, u8 channel)
wl1271_debug(DEBUG_CMD, "cmd radar detection debug (chan %d)",
channel);
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -224,7 +224,7 @@ int wl18xx_cmd_dfs_master_restart(struct wl1271 *wl, struct wl12xx_vif *wlvif)
wl1271_debug(DEBUG_CMD, "cmd dfs master restart (role %d)",
wlvif->role_id);
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
diff --git a/drivers/net/wireless/ti/wl18xx/scan.c b/drivers/net/wireless/ti/wl18xx/scan.c
index d9f4b715abf6..7e61403aa374 100644
--- a/drivers/net/wireless/ti/wl18xx/scan.c
+++ b/drivers/net/wireless/ti/wl18xx/scan.c
@@ -31,7 +31,7 @@ static int wl18xx_scan_send(struct wl1271 *wl, struct wl12xx_vif *wlvif,
struct wlcore_scan_channels *cmd_channels = NULL;
int ret;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -67,7 +67,7 @@ static int wl18xx_scan_send(struct wl1271 *wl, struct wl12xx_vif *wlvif,
/* configure channels */
WARN_ON(req->n_ssids > 1);
- cmd_channels = kzalloc(sizeof(*cmd_channels), GFP_KERNEL);
+ cmd_channels = kzalloc_obj(*cmd_channels, GFP_KERNEL);
if (!cmd_channels) {
ret = -ENOMEM;
goto out;
@@ -169,7 +169,7 @@ int wl18xx_scan_sched_scan_config(struct wl1271 *wl,
if (filter_type < 0)
return filter_type;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -201,7 +201,7 @@ int wl18xx_scan_sched_scan_config(struct wl1271 *wl,
/* don't stop scanning automatically when something is found */
cmd->terminate_after = 0;
- cmd_channels = kzalloc(sizeof(*cmd_channels), GFP_KERNEL);
+ cmd_channels = kzalloc_obj(*cmd_channels, GFP_KERNEL);
if (!cmd_channels) {
ret = -ENOMEM;
goto out;
@@ -301,7 +301,7 @@ static int __wl18xx_scan_stop(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_CMD, "cmd periodic scan stop");
- stop = kzalloc(sizeof(*stop), GFP_KERNEL);
+ stop = kzalloc_obj(*stop, GFP_KERNEL);
if (!stop) {
wl1271_error("failed to alloc memory to send sched scan stop");
return -ENOMEM;
diff --git a/drivers/net/wireless/ti/wlcore/acx.c b/drivers/net/wireless/ti/wlcore/acx.c
index e820fe694121..65d1df37828d 100644
--- a/drivers/net/wireless/ti/wlcore/acx.c
+++ b/drivers/net/wireless/ti/wlcore/acx.c
@@ -28,7 +28,7 @@ int wl1271_acx_wake_up_conditions(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_ACX, "acx wake up conditions (wake_up_event %d listen_interval %d)",
wake_up_event, listen_interval);
- wake_up = kzalloc(sizeof(*wake_up), GFP_KERNEL);
+ wake_up = kzalloc_obj(*wake_up, GFP_KERNEL);
if (!wake_up) {
ret = -ENOMEM;
goto out;
@@ -57,7 +57,7 @@ int wl1271_acx_sleep_auth(struct wl1271 *wl, u8 sleep_auth)
wl1271_debug(DEBUG_ACX, "acx sleep auth %d", sleep_auth);
- auth = kzalloc(sizeof(*auth), GFP_KERNEL);
+ auth = kzalloc_obj(*auth, GFP_KERNEL);
if (!auth) {
ret = -ENOMEM;
goto out;
@@ -90,7 +90,7 @@ int wl1271_acx_tx_power(struct wl1271 *wl, struct wl12xx_vif *wlvif,
if (power < 0 || power > 25)
return -EINVAL;
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -117,7 +117,7 @@ int wl1271_acx_feature_cfg(struct wl1271 *wl, struct wl12xx_vif *wlvif)
wl1271_debug(DEBUG_ACX, "acx feature cfg");
- feature = kzalloc(sizeof(*feature), GFP_KERNEL);
+ feature = kzalloc_obj(*feature, GFP_KERNEL);
if (!feature) {
ret = -ENOMEM;
goto out;
@@ -162,7 +162,7 @@ int wl1271_acx_rx_msdu_life_time(struct wl1271 *wl)
wl1271_debug(DEBUG_ACX, "acx rx msdu life time");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -189,7 +189,7 @@ int wl1271_acx_slot(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_ACX, "acx slot");
- slot = kzalloc(sizeof(*slot), GFP_KERNEL);
+ slot = kzalloc_obj(*slot, GFP_KERNEL);
if (!slot) {
ret = -ENOMEM;
goto out;
@@ -218,7 +218,7 @@ int wl1271_acx_group_address_tbl(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_ACX, "acx group address tbl");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -248,7 +248,7 @@ int wl1271_acx_service_period_timeout(struct wl1271 *wl,
struct acx_rx_timeout *rx_timeout;
int ret;
- rx_timeout = kzalloc(sizeof(*rx_timeout), GFP_KERNEL);
+ rx_timeout = kzalloc_obj(*rx_timeout, GFP_KERNEL);
if (!rx_timeout) {
ret = -ENOMEM;
goto out;
@@ -288,7 +288,7 @@ int wl1271_acx_rts_threshold(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_ACX, "acx rts threshold: %d", rts_threshold);
- rts = kzalloc(sizeof(*rts), GFP_KERNEL);
+ rts = kzalloc_obj(*rts, GFP_KERNEL);
if (!rts) {
ret = -ENOMEM;
goto out;
@@ -316,7 +316,7 @@ int wl1271_acx_dco_itrim_params(struct wl1271 *wl)
wl1271_debug(DEBUG_ACX, "acx dco itrim parameters");
- dco = kzalloc(sizeof(*dco), GFP_KERNEL);
+ dco = kzalloc_obj(*dco, GFP_KERNEL);
if (!dco) {
ret = -ENOMEM;
goto out;
@@ -350,7 +350,7 @@ int wl1271_acx_beacon_filter_opt(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl->conf.conn.bcn_filt_mode == CONF_BCN_FILT_MODE_DISABLED)
goto out;
- beacon_filter = kzalloc(sizeof(*beacon_filter), GFP_KERNEL);
+ beacon_filter = kzalloc_obj(*beacon_filter, GFP_KERNEL);
if (!beacon_filter) {
ret = -ENOMEM;
goto out;
@@ -387,7 +387,7 @@ int wl1271_acx_beacon_filter_table(struct wl1271 *wl,
wl1271_debug(DEBUG_ACX, "acx beacon filter table");
- ie_table = kzalloc(sizeof(*ie_table), GFP_KERNEL);
+ ie_table = kzalloc_obj(*ie_table, GFP_KERNEL);
if (!ie_table) {
ret = -ENOMEM;
goto out;
@@ -446,7 +446,7 @@ int wl1271_acx_conn_monit_params(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_ACX, "acx connection monitor parameters: %s",
enable ? "enabled" : "disabled");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -482,7 +482,7 @@ int wl1271_acx_sg_enable(struct wl1271 *wl, bool enable)
wl1271_debug(DEBUG_ACX, "acx sg enable");
- pta = kzalloc(sizeof(*pta), GFP_KERNEL);
+ pta = kzalloc_obj(*pta, GFP_KERNEL);
if (!pta) {
ret = -ENOMEM;
goto out;
@@ -512,7 +512,7 @@ int wl12xx_acx_sg_cfg(struct wl1271 *wl)
wl1271_debug(DEBUG_ACX, "acx sg cfg");
- param = kzalloc(sizeof(*param), GFP_KERNEL);
+ param = kzalloc_obj(*param, GFP_KERNEL);
if (!param) {
ret = -ENOMEM;
goto out;
@@ -541,7 +541,7 @@ int wl1271_acx_cca_threshold(struct wl1271 *wl)
wl1271_debug(DEBUG_ACX, "acx cca threshold");
- detection = kzalloc(sizeof(*detection), GFP_KERNEL);
+ detection = kzalloc_obj(*detection, GFP_KERNEL);
if (!detection) {
ret = -ENOMEM;
goto out;
@@ -567,7 +567,7 @@ int wl1271_acx_bcn_dtim_options(struct wl1271 *wl, struct wl12xx_vif *wlvif)
wl1271_debug(DEBUG_ACX, "acx bcn dtim options");
- bb = kzalloc(sizeof(*bb), GFP_KERNEL);
+ bb = kzalloc_obj(*bb, GFP_KERNEL);
if (!bb) {
ret = -ENOMEM;
goto out;
@@ -597,7 +597,7 @@ int wl1271_acx_aid(struct wl1271 *wl, struct wl12xx_vif *wlvif, u16 aid)
wl1271_debug(DEBUG_ACX, "acx aid");
- acx_aid = kzalloc(sizeof(*acx_aid), GFP_KERNEL);
+ acx_aid = kzalloc_obj(*acx_aid, GFP_KERNEL);
if (!acx_aid) {
ret = -ENOMEM;
goto out;
@@ -624,7 +624,7 @@ int wl1271_acx_event_mbox_mask(struct wl1271 *wl, u32 event_mask)
wl1271_debug(DEBUG_ACX, "acx event mbox mask");
- mask = kzalloc(sizeof(*mask), GFP_KERNEL);
+ mask = kzalloc_obj(*mask, GFP_KERNEL);
if (!mask) {
ret = -ENOMEM;
goto out;
@@ -654,7 +654,7 @@ int wl1271_acx_set_preamble(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_ACX, "acx_set_preamble");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -682,7 +682,7 @@ int wl1271_acx_cts_protect(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_ACX, "acx_set_ctsprotect");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -727,7 +727,7 @@ int wl1271_acx_sta_rate_policies(struct wl1271 *wl, struct wl12xx_vif *wlvif)
wl1271_debug(DEBUG_ACX, "acx rate policies");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
@@ -798,7 +798,7 @@ int wl1271_acx_ap_rate_policy(struct wl1271 *wl, struct conf_tx_rate_class *c,
wl1271_debug(DEBUG_ACX, "acx ap rate policy %d rates 0x%x",
idx, c->enabled_rates);
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -831,7 +831,7 @@ int wl1271_acx_ac_cfg(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_ACX, "acx ac cfg %d cw_ming %d cw_max %d "
"aifs %d txop %d", ac, cw_min, cw_max, aifsn, txop);
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
@@ -866,7 +866,7 @@ int wl1271_acx_tid_cfg(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_ACX, "acx tid config");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
@@ -907,7 +907,7 @@ int wl1271_acx_frag_threshold(struct wl1271 *wl, u32 frag_threshold)
wl1271_debug(DEBUG_ACX, "acx frag threshold: %d", frag_threshold);
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
@@ -933,7 +933,7 @@ int wl1271_acx_tx_config_options(struct wl1271 *wl)
wl1271_debug(DEBUG_ACX, "acx tx config options");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
@@ -961,7 +961,7 @@ int wl12xx_acx_mem_cfg(struct wl1271 *wl)
wl1271_debug(DEBUG_ACX, "wl1271 mem cfg");
- mem_conf = kzalloc(sizeof(*mem_conf), GFP_KERNEL);
+ mem_conf = kzalloc_obj(*mem_conf, GFP_KERNEL);
if (!mem_conf) {
ret = -ENOMEM;
goto out;
@@ -998,8 +998,7 @@ int wl1271_acx_init_mem_config(struct wl1271 *wl)
{
int ret;
- wl->target_mem_map = kzalloc(sizeof(struct wl1271_acx_mem_map),
- GFP_KERNEL);
+ wl->target_mem_map = kzalloc_obj(struct wl1271_acx_mem_map, GFP_KERNEL);
if (!wl->target_mem_map) {
wl1271_error("couldn't allocate target memory map");
return -ENOMEM;
@@ -1032,7 +1031,7 @@ int wl1271_acx_init_rx_interrupt(struct wl1271 *wl)
wl1271_debug(DEBUG_ACX, "wl1271 rx interrupt config");
- rx_conf = kzalloc(sizeof(*rx_conf), GFP_KERNEL);
+ rx_conf = kzalloc_obj(*rx_conf, GFP_KERNEL);
if (!rx_conf) {
ret = -ENOMEM;
goto out;
@@ -1066,7 +1065,7 @@ int wl1271_acx_bet_enable(struct wl1271 *wl, struct wl12xx_vif *wlvif,
if (enable && wl->conf.conn.bet_enable == CONF_BET_MODE_DISABLE)
goto out;
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -1095,7 +1094,7 @@ int wl1271_acx_arp_ip_filter(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_ACX, "acx arp ip filter, enable: %d", enable);
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -1128,7 +1127,7 @@ int wl1271_acx_pm_config(struct wl1271 *wl)
wl1271_debug(DEBUG_ACX, "acx pm config");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -1157,7 +1156,7 @@ int wl1271_acx_keep_alive_mode(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_ACX, "acx keep alive mode: %d", enable);
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -1185,7 +1184,7 @@ int wl1271_acx_keep_alive_config(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_ACX, "acx keep alive config");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -1217,7 +1216,7 @@ int wl1271_acx_rssi_snr_trigger(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_ACX, "acx rssi snr trigger");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -1259,7 +1258,7 @@ int wl1271_acx_rssi_snr_avg_weights(struct wl1271 *wl,
wl1271_debug(DEBUG_ACX, "acx rssi snr avg weights");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -1294,7 +1293,7 @@ int wl1271_acx_set_ht_capabilities(struct wl1271 *wl,
"sta supp: %d sta cap: %d", ht_cap->ht_supported,
ht_cap->cap);
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -1340,7 +1339,7 @@ int wl1271_acx_set_ht_information(struct wl1271 *wl,
wl1271_debug(DEBUG_ACX, "acx ht information setting");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -1376,7 +1375,7 @@ int wl12xx_acx_set_ba_initiator_policy(struct wl1271 *wl,
wl1271_debug(DEBUG_ACX, "acx ba initiator policy");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -1412,7 +1411,7 @@ int wl12xx_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index,
wl1271_debug(DEBUG_ACX, "acx ba receiver session setting");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -1451,7 +1450,7 @@ int wl12xx_acx_tsf_info(struct wl1271 *wl, struct wl12xx_vif *wlvif,
struct wl12xx_acx_fw_tsf_information *tsf_info;
int ret;
- tsf_info = kzalloc(sizeof(*tsf_info), GFP_KERNEL);
+ tsf_info = kzalloc_obj(*tsf_info, GFP_KERNEL);
if (!tsf_info) {
ret = -ENOMEM;
goto out;
@@ -1483,7 +1482,7 @@ int wl1271_acx_ps_rx_streaming(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_ACX, "acx ps rx streaming");
- rx_streaming = kzalloc(sizeof(*rx_streaming), GFP_KERNEL);
+ rx_streaming = kzalloc_obj(*rx_streaming, GFP_KERNEL);
if (!rx_streaming) {
ret = -ENOMEM;
goto out;
@@ -1530,7 +1529,7 @@ int wl1271_acx_ap_max_tx_retry(struct wl1271 *wl, struct wl12xx_vif *wlvif)
wl1271_debug(DEBUG_ACX, "acx ap max tx retry");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx)
return -ENOMEM;
@@ -1555,7 +1554,7 @@ int wl12xx_acx_config_ps(struct wl1271 *wl, struct wl12xx_vif *wlvif)
wl1271_debug(DEBUG_ACX, "acx config ps");
- config_ps = kzalloc(sizeof(*config_ps), GFP_KERNEL);
+ config_ps = kzalloc_obj(*config_ps, GFP_KERNEL);
if (!config_ps) {
ret = -ENOMEM;
goto out;
@@ -1586,7 +1585,7 @@ int wl1271_acx_set_inconnection_sta(struct wl1271 *wl,
wl1271_debug(DEBUG_ACX, "acx set inconnaction sta %pM", addr);
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx)
return -ENOMEM;
@@ -1612,7 +1611,7 @@ int wl1271_acx_fm_coex(struct wl1271 *wl)
wl1271_debug(DEBUG_ACX, "acx fm coex setting");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -1653,7 +1652,7 @@ int wl12xx_acx_set_rate_mgmt_params(struct wl1271 *wl)
wl1271_debug(DEBUG_ACX, "acx set rate mgmt params");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx)
return -ENOMEM;
@@ -1695,7 +1694,7 @@ int wl12xx_acx_config_hangover(struct wl1271 *wl)
wl1271_debug(DEBUG_ACX, "acx config hangover");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -1735,7 +1734,7 @@ int wlcore_acx_average_rssi(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_ACX, "acx roaming statistics");
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx) {
ret = -ENOMEM;
goto out;
@@ -1767,7 +1766,7 @@ int wl1271_acx_default_rx_filter_enable(struct wl1271 *wl, bool enable,
wl1271_debug(DEBUG_ACX, "acx default rx filter en: %d act: %d",
enable, action);
- acx = kzalloc(sizeof(*acx), GFP_KERNEL);
+ acx = kzalloc_obj(*acx, GFP_KERNEL);
if (!acx)
return -ENOMEM;
diff --git a/drivers/net/wireless/ti/wlcore/cmd.c b/drivers/net/wireless/ti/wlcore/cmd.c
index 9d73ba933a16..ded64bf9c5a6 100644
--- a/drivers/net/wireless/ti/wlcore/cmd.c
+++ b/drivers/net/wireless/ti/wlcore/cmd.c
@@ -172,7 +172,7 @@ int wlcore_cmd_wait_for_event_or_timeout(struct wl1271 *wl,
*timeout = false;
- events_vector = kmalloc(sizeof(*events_vector), GFP_KERNEL | GFP_DMA);
+ events_vector = kmalloc_obj(*events_vector, GFP_KERNEL | GFP_DMA);
if (!events_vector)
return -ENOMEM;
@@ -231,7 +231,7 @@ int wl12xx_cmd_role_enable(struct wl1271 *wl, u8 *addr, u8 role_type,
if (WARN_ON(*role_id != WL12XX_INVALID_ROLE_ID))
return -EBUSY;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -273,7 +273,7 @@ int wl12xx_cmd_role_disable(struct wl1271 *wl, u8 *role_id)
if (WARN_ON(*role_id == WL12XX_INVALID_ROLE_ID))
return -ENOENT;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -431,7 +431,7 @@ static int wl12xx_cmd_role_start_dev(struct wl1271 *wl,
struct wl12xx_cmd_role_start *cmd;
int ret;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -483,7 +483,7 @@ static int wl12xx_cmd_role_stop_dev(struct wl1271 *wl,
if (WARN_ON(wlvif->dev_hlid == WL12XX_INVALID_LINK_ID))
return -EINVAL;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -517,7 +517,7 @@ int wl12xx_cmd_role_start_sta(struct wl1271 *wl, struct wl12xx_vif *wlvif)
u32 supported_rates;
int ret;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -594,7 +594,7 @@ int wl12xx_cmd_role_stop_sta(struct wl1271 *wl, struct wl12xx_vif *wlvif)
if (WARN_ON(wlvif->sta.hlid == WL12XX_INVALID_LINK_ID))
return -EINVAL;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -641,7 +641,7 @@ int wl12xx_cmd_role_start_ap(struct wl1271 *wl, struct wl12xx_vif *wlvif)
}
}
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -736,7 +736,7 @@ int wl12xx_cmd_role_stop_ap(struct wl1271 *wl, struct wl12xx_vif *wlvif)
struct wl12xx_cmd_role_stop *cmd;
int ret;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -769,7 +769,7 @@ int wl12xx_cmd_role_start_ibss(struct wl1271 *wl, struct wl12xx_vif *wlvif)
struct ieee80211_bss_conf *bss_conf = &vif->bss_conf;
int ret;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -942,7 +942,7 @@ int wl1271_cmd_data_path(struct wl1271 *wl, bool enable)
wl1271_debug(DEBUG_CMD, "cmd data path");
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -993,7 +993,7 @@ int wl1271_cmd_ps_mode(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_CMD, "cmd set ps mode");
- ps_params = kzalloc(sizeof(*ps_params), GFP_KERNEL);
+ ps_params = kzalloc_obj(*ps_params, GFP_KERNEL);
if (!ps_params) {
ret = -ENOMEM;
goto out;
@@ -1028,7 +1028,7 @@ int wl1271_cmd_template_set(struct wl1271 *wl, u8 role_id,
WARN_ON(buf_len > WL1271_CMD_TEMPL_MAX_SIZE);
buf_len = min_t(size_t, buf_len, WL1271_CMD_TEMPL_MAX_SIZE);
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -1340,7 +1340,7 @@ int wl12xx_cmd_set_default_wep_key(struct wl1271 *wl, u8 id, u8 hlid)
wl1271_debug(DEBUG_CMD, "cmd set_default_wep_key %d", id);
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -1376,7 +1376,7 @@ int wl1271_cmd_set_sta_key(struct wl1271 *wl, struct wl12xx_vif *wlvif,
if (wlvif->sta.hlid == WL12XX_INVALID_LINK_ID)
return 0;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -1442,7 +1442,7 @@ int wl1271_cmd_set_ap_key(struct wl1271 *wl, struct wl12xx_vif *wlvif,
int ret = 0;
u8 lid_type;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -1505,7 +1505,7 @@ int wl12xx_cmd_set_peer_state(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_CMD, "cmd set peer state (hlid=%d)", hlid);
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -1540,7 +1540,7 @@ int wl12xx_cmd_add_peer(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_CMD, "cmd add peer %d", (int)hlid);
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -1599,7 +1599,7 @@ int wl12xx_cmd_remove_peer(struct wl1271 *wl, struct wl12xx_vif *wlvif,
wl1271_debug(DEBUG_CMD, "cmd remove peer %d", (int)hlid);
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -1733,7 +1733,7 @@ int wlcore_cmd_regdomain_config_locked(struct wl1271 *wl)
if (!memcmp(tmp_ch_bitmap, wl->reg_ch_conf_last, sizeof(tmp_ch_bitmap)))
goto out;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -1778,7 +1778,7 @@ int wl12xx_cmd_config_fwlog(struct wl1271 *wl)
wl1271_debug(DEBUG_CMD, "cmd config firmware logger");
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -1810,7 +1810,7 @@ int wl12xx_cmd_stop_fwlog(struct wl1271 *wl)
wl1271_debug(DEBUG_CMD, "cmd stop firmware logger");
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -1840,7 +1840,7 @@ static int wl12xx_cmd_roc(struct wl1271 *wl, struct wl12xx_vif *wlvif,
if (WARN_ON(role_id == WL12XX_INVALID_ROLE_ID))
return -EINVAL;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -1882,7 +1882,7 @@ static int wl12xx_cmd_croc(struct wl1271 *wl, u8 role_id)
wl1271_debug(DEBUG_CMD, "cmd croc (%d)", role_id);
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -1951,7 +1951,7 @@ int wl12xx_cmd_stop_channel_switch(struct wl1271 *wl, struct wl12xx_vif *wlvif)
wl1271_debug(DEBUG_ACX, "cmd stop channel switch");
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
@@ -2055,7 +2055,7 @@ int wlcore_cmd_generic_cfg(struct wl1271 *wl, struct wl12xx_vif *wlvif,
"cmd generic cfg (role %d feature %d enable %d value %d)",
wlvif->role_id, feature, enable, value);
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
diff --git a/drivers/net/wireless/ti/wlcore/init.c b/drivers/net/wireless/ti/wlcore/init.c
index 03b49baa9d89..3f544a900f67 100644
--- a/drivers/net/wireless/ti/wlcore/init.c
+++ b/drivers/net/wireless/ti/wlcore/init.c
@@ -148,7 +148,7 @@ static int wl1271_ap_init_deauth_template(struct wl1271 *wl,
int ret;
u32 rate;
- tmpl = kzalloc(sizeof(*tmpl), GFP_KERNEL);
+ tmpl = kzalloc_obj(*tmpl, GFP_KERNEL);
if (!tmpl) {
ret = -ENOMEM;
goto out;
@@ -175,7 +175,7 @@ static int wl1271_ap_init_null_template(struct wl1271 *wl,
int ret;
u32 rate;
- nullfunc = kzalloc(sizeof(*nullfunc), GFP_KERNEL);
+ nullfunc = kzalloc_obj(*nullfunc, GFP_KERNEL);
if (!nullfunc) {
ret = -ENOMEM;
goto out;
@@ -208,7 +208,7 @@ static int wl1271_ap_init_qos_null_template(struct wl1271 *wl,
int ret;
u32 rate;
- qosnull = kzalloc(sizeof(*qosnull), GFP_KERNEL);
+ qosnull = kzalloc_obj(*qosnull, GFP_KERNEL);
if (!qosnull) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c
index dce79bce2e3f..82e035aea874 100644
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
@@ -1070,11 +1070,11 @@ static int wl1271_setup(struct wl1271 *wl)
if (!wl->raw_fw_status)
goto err;
- wl->fw_status = kzalloc(sizeof(*wl->fw_status), GFP_KERNEL);
+ wl->fw_status = kzalloc_obj(*wl->fw_status, GFP_KERNEL);
if (!wl->fw_status)
goto err;
- wl->tx_res_if = kzalloc(sizeof(*wl->tx_res_if), GFP_KERNEL);
+ wl->tx_res_if = kzalloc_obj(*wl->tx_res_if, GFP_KERNEL);
if (!wl->tx_res_if)
goto err;
@@ -1477,7 +1477,7 @@ wl1271_validate_wowlan_pattern(struct cfg80211_pkt_pattern *p)
struct wl12xx_rx_filter *wl1271_rx_filter_alloc(void)
{
- return kzalloc(sizeof(struct wl12xx_rx_filter), GFP_KERNEL);
+ return kzalloc_obj(struct wl12xx_rx_filter, GFP_KERNEL);
}
void wl1271_rx_filter_free(struct wl12xx_rx_filter *filter)
@@ -3215,7 +3215,7 @@ static u64 wl1271_op_prepare_multicast(struct ieee80211_hw *hw,
struct wl1271_filter_params *fp;
struct netdev_hw_addr *ha;
- fp = kzalloc(sizeof(*fp), GFP_ATOMIC);
+ fp = kzalloc_obj(*fp, GFP_ATOMIC);
if (!fp) {
wl1271_error("Out of memory setting filters.");
return 0;
@@ -3346,7 +3346,7 @@ static int wl1271_record_ap_key(struct wl1271 *wl, struct wl12xx_vif *wlvif,
if (i == MAX_NUM_KEYS)
return -EBUSY;
- ap_key = kzalloc(sizeof(*ap_key), GFP_KERNEL);
+ ap_key = kzalloc_obj(*ap_key, GFP_KERNEL);
if (!ap_key)
return -ENOMEM;
@@ -6459,7 +6459,7 @@ struct ieee80211_hw *wlcore_alloc_hw(size_t priv_size, u32 aggr_buf_size,
goto err_fwlog;
}
- wl->buffer_32 = kmalloc(sizeof(*wl->buffer_32), GFP_KERNEL);
+ wl->buffer_32 = kmalloc_obj(*wl->buffer_32, GFP_KERNEL);
if (!wl->buffer_32) {
ret = -ENOMEM;
goto err_mbox;
diff --git a/drivers/net/wireless/ti/wlcore/scan.c b/drivers/net/wireless/ti/wlcore/scan.c
index f6dc54c1dbad..7cd58bb0efb6 100644
--- a/drivers/net/wireless/ti/wlcore/scan.c
+++ b/drivers/net/wireless/ti/wlcore/scan.c
@@ -389,7 +389,7 @@ wlcore_scan_sched_scan_ssid_list(struct wl1271 *wl,
goto out;
}
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/net/wireless/ti/wlcore/testmode.c b/drivers/net/wireless/ti/wlcore/testmode.c
index 7c0cb1b7fef0..caca2786d07c 100644
--- a/drivers/net/wireless/ti/wlcore/testmode.c
+++ b/drivers/net/wireless/ti/wlcore/testmode.c
@@ -159,7 +159,7 @@ static int wl1271_tm_cmd_interrogate(struct wl1271 *wl, struct nlattr *tb[])
if (ret < 0)
goto out;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
ret = -ENOMEM;
goto out_sleep;
diff --git a/drivers/net/wireless/virtual/mac80211_hwsim.c b/drivers/net/wireless/virtual/mac80211_hwsim.c
index 4d9f5f87e814..f4f37f71285e 100644
--- a/drivers/net/wireless/virtual/mac80211_hwsim.c
+++ b/drivers/net/wireless/virtual/mac80211_hwsim.c
@@ -6489,7 +6489,7 @@ static int hwsim_new_radio_nl(struct sk_buff *msg, struct genl_info *info)
if (info->attrs[HWSIM_ATTR_PMSR_SUPPORT]) {
struct cfg80211_pmsr_capabilities *pmsr_capa;
- pmsr_capa = kmalloc(sizeof(*pmsr_capa), GFP_KERNEL);
+ pmsr_capa = kmalloc_obj(*pmsr_capa, GFP_KERNEL);
if (!pmsr_capa) {
ret = -ENOMEM;
goto out_free;
diff --git a/drivers/net/wireless/virtual/virt_wifi.c b/drivers/net/wireless/virtual/virt_wifi.c
index 4eae89376feb..eac81ebf9551 100644
--- a/drivers/net/wireless/virtual/virt_wifi.c
+++ b/drivers/net/wireless/virtual/virt_wifi.c
@@ -558,7 +558,7 @@ static int virt_wifi_newlink(struct net_device *dev,
netif_stacked_transfer_operstate(priv->lowerdev, dev);
SET_NETDEV_DEV(dev, &priv->lowerdev->dev);
- dev->ieee80211_ptr = kzalloc(sizeof(*dev->ieee80211_ptr), GFP_KERNEL);
+ dev->ieee80211_ptr = kzalloc_obj(*dev->ieee80211_ptr, GFP_KERNEL);
if (!dev->ieee80211_ptr) {
err = -ENOMEM;
diff --git a/drivers/net/wireless/zydas/zd1211rw/zd_mac.c b/drivers/net/wireless/zydas/zd1211rw/zd_mac.c
index 0f6271d7259b..f5063efc8e42 100644
--- a/drivers/net/wireless/zydas/zd1211rw/zd_mac.c
+++ b/drivers/net/wireless/zydas/zd1211rw/zd_mac.c
@@ -722,8 +722,7 @@ static int zd_mac_config_beacon(struct ieee80211_hw *hw, struct sk_buff *beacon,
/* Alloc memory for full beacon write at once. */
num_cmds = 1 + zd_chip_is_zd1211b(&mac->chip) + full_len;
- ioreqs = kmalloc_array(num_cmds, sizeof(struct zd_ioreq32),
- GFP_KERNEL);
+ ioreqs = kmalloc_objs(struct zd_ioreq32, num_cmds, GFP_KERNEL);
if (!ioreqs) {
r = -ENOMEM;
goto out_nofree;
diff --git a/drivers/net/wireless/zydas/zd1211rw/zd_rf_uw2453.c b/drivers/net/wireless/zydas/zd1211rw/zd_rf_uw2453.c
index a4e7f187d82d..d15d95ff5aad 100644
--- a/drivers/net/wireless/zydas/zd1211rw/zd_rf_uw2453.c
+++ b/drivers/net/wireless/zydas/zd1211rw/zd_rf_uw2453.c
@@ -518,7 +518,7 @@ int zd_rf_init_uw2453(struct zd_rf *rf)
/* we have our own TX integration code */
rf->update_channel_int = 0;
- rf->priv = kmalloc(sizeof(struct uw2453_priv), GFP_KERNEL);
+ rf->priv = kmalloc_obj(struct uw2453_priv, GFP_KERNEL);
if (rf->priv == NULL)
return -ENOMEM;
diff --git a/drivers/net/wireless/zydas/zd1211rw/zd_usb.c b/drivers/net/wireless/zydas/zd1211rw/zd_usb.c
index 8ee15a15f4ca..e5c3be14ae4e 100644
--- a/drivers/net/wireless/zydas/zd1211rw/zd_usb.c
+++ b/drivers/net/wireless/zydas/zd1211rw/zd_usb.c
@@ -752,7 +752,7 @@ static int __zd_usb_enable_rx(struct zd_usb *usb)
dev_dbg_f(zd_usb_dev(usb), "\n");
r = -ENOMEM;
- urbs = kcalloc(RX_URBS_COUNT, sizeof(struct urb *), GFP_KERNEL);
+ urbs = kzalloc_objs(struct urb *, RX_URBS_COUNT, GFP_KERNEL);
if (!urbs)
goto error;
for (i = 0; i < RX_URBS_COUNT; i++) {
diff --git a/drivers/net/wwan/iosm/iosm_ipc_imem.c b/drivers/net/wwan/iosm/iosm_ipc_imem.c
index 530a3ea47a1a..f354e4514565 100644
--- a/drivers/net/wwan/iosm/iosm_ipc_imem.c
+++ b/drivers/net/wwan/iosm/iosm_ipc_imem.c
@@ -1334,7 +1334,7 @@ static int ipc_imem_config(struct iosm_imem *ipc_imem)
struct iosm_imem *ipc_imem_init(struct iosm_pcie *pcie, unsigned int device_id,
void __iomem *mmio, struct device *dev)
{
- struct iosm_imem *ipc_imem = kzalloc(sizeof(*pcie->imem), GFP_KERNEL);
+ struct iosm_imem *ipc_imem = kzalloc_obj(*pcie->imem, GFP_KERNEL);
enum ipc_mem_exec_stage stage;
if (!ipc_imem)
@@ -1359,8 +1359,7 @@ struct iosm_imem *ipc_imem_init(struct iosm_pcie *pcie, unsigned int device_id,
goto mmio_init_fail;
}
- ipc_imem->ipc_task = kzalloc(sizeof(*ipc_imem->ipc_task),
- GFP_KERNEL);
+ ipc_imem->ipc_task = kzalloc_obj(*ipc_imem->ipc_task, GFP_KERNEL);
/* Create tasklet for event handling*/
if (!ipc_imem->ipc_task)
diff --git a/drivers/net/wwan/iosm/iosm_ipc_mmio.c b/drivers/net/wwan/iosm/iosm_ipc_mmio.c
index 6764c13530b9..3319d7423101 100644
--- a/drivers/net/wwan/iosm/iosm_ipc_mmio.c
+++ b/drivers/net/wwan/iosm/iosm_ipc_mmio.c
@@ -82,7 +82,7 @@ void ipc_mmio_update_cp_capability(struct iosm_mmio *ipc_mmio)
struct iosm_mmio *ipc_mmio_init(void __iomem *mmio, struct device *dev)
{
- struct iosm_mmio *ipc_mmio = kzalloc(sizeof(*ipc_mmio), GFP_KERNEL);
+ struct iosm_mmio *ipc_mmio = kzalloc_obj(*ipc_mmio, GFP_KERNEL);
int retries = IPC_MMIO_EXEC_STAGE_TIMEOUT;
enum ipc_mem_exec_stage stage;
diff --git a/drivers/net/wwan/iosm/iosm_ipc_mux.c b/drivers/net/wwan/iosm/iosm_ipc_mux.c
index b846889fcb09..d370c7b7810a 100644
--- a/drivers/net/wwan/iosm/iosm_ipc_mux.c
+++ b/drivers/net/wwan/iosm/iosm_ipc_mux.c
@@ -278,7 +278,7 @@ static int ipc_mux_schedule(struct iosm_mux *ipc_mux, union mux_msg *msg)
struct iosm_mux *ipc_mux_init(struct ipc_mux_config *mux_cfg,
struct iosm_imem *imem)
{
- struct iosm_mux *ipc_mux = kzalloc(sizeof(*ipc_mux), GFP_KERNEL);
+ struct iosm_mux *ipc_mux = kzalloc_obj(*ipc_mux, GFP_KERNEL);
int i, j, ul_tds, ul_td_size;
struct sk_buff_head *free_list;
struct sk_buff *skb;
diff --git a/drivers/net/wwan/iosm/iosm_ipc_pcie.c b/drivers/net/wwan/iosm/iosm_ipc_pcie.c
index 08ff0d6ccfab..f7f693c2296a 100644
--- a/drivers/net/wwan/iosm/iosm_ipc_pcie.c
+++ b/drivers/net/wwan/iosm/iosm_ipc_pcie.c
@@ -260,7 +260,7 @@ static enum ipc_pcie_sleep_state ipc_pcie_read_bios_cfg(struct device *dev)
static int ipc_pcie_probe(struct pci_dev *pci,
const struct pci_device_id *pci_id)
{
- struct iosm_pcie *ipc_pcie = kzalloc(sizeof(*ipc_pcie), GFP_KERNEL);
+ struct iosm_pcie *ipc_pcie = kzalloc_obj(*ipc_pcie, GFP_KERNEL);
int ret;
pr_debug("Probing device 0x%X from the vendor 0x%X", pci_id->device,
diff --git a/drivers/net/wwan/iosm/iosm_ipc_port.c b/drivers/net/wwan/iosm/iosm_ipc_port.c
index 5d5b4183e14a..bf75d8b94682 100644
--- a/drivers/net/wwan/iosm/iosm_ipc_port.c
+++ b/drivers/net/wwan/iosm/iosm_ipc_port.c
@@ -48,7 +48,7 @@ static const struct wwan_port_ops ipc_wwan_ctrl_ops = {
struct iosm_cdev *ipc_port_init(struct iosm_imem *ipc_imem,
struct ipc_chnl_cfg ipc_port_cfg)
{
- struct iosm_cdev *ipc_port = kzalloc(sizeof(*ipc_port), GFP_KERNEL);
+ struct iosm_cdev *ipc_port = kzalloc_obj(*ipc_port, GFP_KERNEL);
enum wwan_port_type port_type = ipc_port_cfg.wwan_port_type;
enum ipc_channel_id chl_id = ipc_port_cfg.id;
diff --git a/drivers/net/wwan/iosm/iosm_ipc_protocol.c b/drivers/net/wwan/iosm/iosm_ipc_protocol.c
index 63fc7012f09f..851a24641c35 100644
--- a/drivers/net/wwan/iosm/iosm_ipc_protocol.c
+++ b/drivers/net/wwan/iosm/iosm_ipc_protocol.c
@@ -222,8 +222,8 @@ bool ipc_protocol_resume(struct iosm_protocol *ipc_protocol)
struct iosm_protocol *ipc_protocol_init(struct iosm_imem *ipc_imem)
{
- struct iosm_protocol *ipc_protocol =
- kzalloc(sizeof(*ipc_protocol), GFP_KERNEL);
+ struct iosm_protocol *ipc_protocol = kzalloc_obj(*ipc_protocol,
+ GFP_KERNEL);
struct ipc_protocol_context_info *p_ci;
u64 addr;
diff --git a/drivers/net/wwan/iosm/iosm_ipc_protocol_ops.c b/drivers/net/wwan/iosm/iosm_ipc_protocol_ops.c
index 4627847c6daa..f2f86f41fd10 100644
--- a/drivers/net/wwan/iosm/iosm_ipc_protocol_ops.c
+++ b/drivers/net/wwan/iosm/iosm_ipc_protocol_ops.c
@@ -69,7 +69,7 @@ static int ipc_protocol_msg_prepipe_open(struct iosm_protocol *ipc_protocol,
* SKB ring is internal memory allocation for driver. No need to
* re-calculate the start and end addresses.
*/
- skbr = kcalloc(pipe->nr_of_entries, sizeof(*skbr), GFP_ATOMIC);
+ skbr = kzalloc_objs(*skbr, pipe->nr_of_entries, GFP_ATOMIC);
if (!skbr)
return -ENOMEM;
diff --git a/drivers/net/wwan/iosm/iosm_ipc_task_queue.c b/drivers/net/wwan/iosm/iosm_ipc_task_queue.c
index 852a99166144..f9c1837781e5 100644
--- a/drivers/net/wwan/iosm/iosm_ipc_task_queue.c
+++ b/drivers/net/wwan/iosm/iosm_ipc_task_queue.c
@@ -174,8 +174,7 @@ int ipc_task_init(struct ipc_task *ipc_task)
{
struct ipc_task_queue *ipc_queue = &ipc_task->ipc_queue;
- ipc_task->ipc_tasklet = kzalloc(sizeof(*ipc_task->ipc_tasklet),
- GFP_KERNEL);
+ ipc_task->ipc_tasklet = kzalloc_obj(*ipc_task->ipc_tasklet, GFP_KERNEL);
if (!ipc_task->ipc_tasklet)
return -ENOMEM;
diff --git a/drivers/net/wwan/iosm/iosm_ipc_trace.c b/drivers/net/wwan/iosm/iosm_ipc_trace.c
index 9656254c1c6c..c6368131d786 100644
--- a/drivers/net/wwan/iosm/iosm_ipc_trace.c
+++ b/drivers/net/wwan/iosm/iosm_ipc_trace.c
@@ -140,7 +140,7 @@ struct iosm_trace *ipc_trace_init(struct iosm_imem *ipc_imem)
ipc_imem_channel_init(ipc_imem, IPC_CTYPE_CTRL, chnl_cfg,
IRQ_MOD_OFF);
- ipc_trace = kzalloc(sizeof(*ipc_trace), GFP_KERNEL);
+ ipc_trace = kzalloc_obj(*ipc_trace, GFP_KERNEL);
if (!ipc_trace)
return NULL;
diff --git a/drivers/net/wwan/iosm/iosm_ipc_uevent.c b/drivers/net/wwan/iosm/iosm_ipc_uevent.c
index d12188ffed7e..4073b70e2457 100644
--- a/drivers/net/wwan/iosm/iosm_ipc_uevent.c
+++ b/drivers/net/wwan/iosm/iosm_ipc_uevent.c
@@ -27,7 +27,7 @@ static void ipc_uevent_work(struct work_struct *data)
void ipc_uevent_send(struct device *dev, char *uevent)
{
- struct ipc_uevent_info *info = kzalloc(sizeof(*info), GFP_ATOMIC);
+ struct ipc_uevent_info *info = kzalloc_obj(*info, GFP_ATOMIC);
if (!info)
return;
diff --git a/drivers/net/wwan/iosm/iosm_ipc_wwan.c b/drivers/net/wwan/iosm/iosm_ipc_wwan.c
index ff747fc79aaf..7a299b6b41c9 100644
--- a/drivers/net/wwan/iosm/iosm_ipc_wwan.c
+++ b/drivers/net/wwan/iosm/iosm_ipc_wwan.c
@@ -290,7 +290,7 @@ struct iosm_wwan *ipc_wwan_init(struct iosm_imem *ipc_imem, struct device *dev)
{
struct iosm_wwan *ipc_wwan;
- ipc_wwan = kzalloc(sizeof(*ipc_wwan), GFP_KERNEL);
+ ipc_wwan = kzalloc_obj(*ipc_wwan, GFP_KERNEL);
if (!ipc_wwan)
return NULL;
diff --git a/drivers/net/wwan/mhi_wwan_ctrl.c b/drivers/net/wwan/mhi_wwan_ctrl.c
index e13c0b078175..33e0dd11abde 100644
--- a/drivers/net/wwan/mhi_wwan_ctrl.c
+++ b/drivers/net/wwan/mhi_wwan_ctrl.c
@@ -218,7 +218,7 @@ static int mhi_wwan_ctrl_probe(struct mhi_device *mhi_dev,
struct mhi_wwan_dev *mhiwwan;
struct wwan_port *port;
- mhiwwan = kzalloc(sizeof(*mhiwwan), GFP_KERNEL);
+ mhiwwan = kzalloc_obj(*mhiwwan, GFP_KERNEL);
if (!mhiwwan)
return -ENOMEM;
diff --git a/drivers/net/wwan/t7xx/t7xx_hif_cldma.c b/drivers/net/wwan/t7xx/t7xx_hif_cldma.c
index 43ac1c3f1ad0..a32378dcc392 100644
--- a/drivers/net/wwan/t7xx/t7xx_hif_cldma.c
+++ b/drivers/net/wwan/t7xx/t7xx_hif_cldma.c
@@ -391,7 +391,7 @@ static struct cldma_request *t7xx_alloc_rx_request(struct cldma_ctrl *md_ctrl, s
struct cldma_request *req;
int val;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return NULL;
@@ -451,7 +451,7 @@ static struct cldma_request *t7xx_alloc_tx_request(struct cldma_ctrl *md_ctrl)
{
struct cldma_request *req;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return NULL;
@@ -1206,7 +1206,7 @@ static int t7xx_cldma_suspend(struct t7xx_pci_dev *t7xx_dev, void *entity_param)
static int t7xx_cldma_pm_init(struct cldma_ctrl *md_ctrl)
{
- md_ctrl->pm_entity = kzalloc(sizeof(*md_ctrl->pm_entity), GFP_KERNEL);
+ md_ctrl->pm_entity = kzalloc_obj(*md_ctrl->pm_entity, GFP_KERNEL);
if (!md_ctrl->pm_entity)
return -ENOMEM;
diff --git a/drivers/net/wwan/t7xx/t7xx_state_monitor.c b/drivers/net/wwan/t7xx/t7xx_state_monitor.c
index cbdbb91e8381..091d7cabd630 100644
--- a/drivers/net/wwan/t7xx/t7xx_state_monitor.c
+++ b/drivers/net/wwan/t7xx/t7xx_state_monitor.c
@@ -486,7 +486,8 @@ int t7xx_fsm_append_cmd(struct t7xx_fsm_ctl *ctl, enum t7xx_fsm_cmd_state cmd_id
unsigned long flags;
int ret;
- cmd = kzalloc(sizeof(*cmd), flag & FSM_CMD_FLAG_IN_INTERRUPT ? GFP_ATOMIC : GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd,
+ flag & FSM_CMD_FLAG_IN_INTERRUPT ? GFP_ATOMIC : GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -532,8 +533,8 @@ int t7xx_fsm_append_event(struct t7xx_fsm_ctl *ctl, enum t7xx_fsm_event_state ev
return -EINVAL;
}
- event = kmalloc(struct_size(event, data, length),
- in_interrupt() ? GFP_ATOMIC : GFP_KERNEL);
+ event = kmalloc_flex(*event, data, length,
+ in_interrupt() ? GFP_ATOMIC : GFP_KERNEL);
if (!event)
return -ENOMEM;
diff --git a/drivers/net/wwan/wwan_core.c b/drivers/net/wwan/wwan_core.c
index 015213b3d687..ffa222b6dce8 100644
--- a/drivers/net/wwan/wwan_core.c
+++ b/drivers/net/wwan/wwan_core.c
@@ -250,7 +250,7 @@ static struct wwan_device *wwan_create_dev(struct device *parent)
goto done_unlock;
}
- wwandev = kzalloc(sizeof(*wwandev), GFP_KERNEL);
+ wwandev = kzalloc_obj(*wwandev, GFP_KERNEL);
if (!wwandev) {
wwandev = ERR_PTR(-ENOMEM);
ida_free(&wwan_dev_ids, id);
@@ -639,7 +639,7 @@ struct wwan_port *wwan_create_port(struct device *parent,
if (IS_ERR(wwandev))
return ERR_CAST(wwandev);
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port) {
err = -ENOMEM;
goto error_wwandev_remove;
diff --git a/drivers/net/wwan/wwan_hwsim.c b/drivers/net/wwan/wwan_hwsim.c
index 8541bd58e831..55d3b2bb4061 100644
--- a/drivers/net/wwan/wwan_hwsim.c
+++ b/drivers/net/wwan/wwan_hwsim.c
@@ -317,7 +317,7 @@ static struct wwan_hwsim_port *wwan_hwsim_port_new(struct wwan_hwsim_dev *dev,
else
return ERR_PTR(-EINVAL);
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return ERR_PTR(-ENOMEM);
@@ -390,7 +390,7 @@ static struct wwan_hwsim_dev *wwan_hwsim_dev_new(void)
struct wwan_hwsim_dev *dev;
int err;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/net/xen-netback/hash.c b/drivers/net/xen-netback/hash.c
index c6b2eba3511b..20c2c6c5bda1 100644
--- a/drivers/net/xen-netback/hash.c
+++ b/drivers/net/xen-netback/hash.c
@@ -39,7 +39,7 @@ static void xenvif_add_hash(struct xenvif *vif, const u8 *tag,
unsigned long flags;
bool found;
- new = kmalloc(sizeof(*entry), GFP_ATOMIC);
+ new = kmalloc_obj(*entry, GFP_ATOMIC);
if (!new)
return;
diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
index c759ebc56457..3cdb7fd659db 100644
--- a/drivers/net/xen-netback/netback.c
+++ b/drivers/net/xen-netback/netback.c
@@ -855,7 +855,7 @@ static int xenvif_mcast_add(struct xenvif *vif, const u8 *addr)
return -ENOSPC;
}
- mcast = kzalloc(sizeof(*mcast), GFP_ATOMIC);
+ mcast = kzalloc_obj(*mcast, GFP_ATOMIC);
if (!mcast)
return -ENOMEM;
diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c
index 61b547aab286..adb3967f00ee 100644
--- a/drivers/net/xen-netback/xenbus.c
+++ b/drivers/net/xen-netback/xenbus.c
@@ -1007,7 +1007,7 @@ static int netback_probe(struct xenbus_device *dev,
int err;
int sg;
const char *script;
- struct backend_info *be = kzalloc(sizeof(*be), GFP_KERNEL);
+ struct backend_info *be = kzalloc_obj(*be, GFP_KERNEL);
if (!be) {
xenbus_dev_fatal(dev, -ENOMEM,
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index 0969d5c9f6b7..c4e75cc53f64 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -2212,8 +2212,8 @@ static int xennet_create_queues(struct netfront_info *info,
unsigned int i;
int ret;
- info->queues = kcalloc(*num_queues, sizeof(struct netfront_queue),
- GFP_KERNEL);
+ info->queues = kzalloc_objs(struct netfront_queue, *num_queues,
+ GFP_KERNEL);
if (!info->queues)
return -ENOMEM;
diff --git a/drivers/nfc/mei_phy.c b/drivers/nfc/mei_phy.c
index f9cca885beec..5f8c9c2c7c06 100644
--- a/drivers/nfc/mei_phy.c
+++ b/drivers/nfc/mei_phy.c
@@ -373,7 +373,7 @@ struct nfc_mei_phy *nfc_mei_phy_alloc(struct mei_cl_device *cldev)
{
struct nfc_mei_phy *phy;
- phy = kzalloc(sizeof(struct nfc_mei_phy), GFP_KERNEL);
+ phy = kzalloc_obj(struct nfc_mei_phy, GFP_KERNEL);
if (!phy)
return NULL;
diff --git a/drivers/nfc/microread/microread.c b/drivers/nfc/microread/microread.c
index bb4d029bb888..60cdf4d09577 100644
--- a/drivers/nfc/microread/microread.c
+++ b/drivers/nfc/microread/microread.c
@@ -473,7 +473,7 @@ static void microread_target_discovered(struct nfc_hci_dev *hdev, u8 gate,
pr_info("target discovered to gate 0x%x\n", gate);
- targets = kzalloc(sizeof(struct nfc_target), GFP_KERNEL);
+ targets = kzalloc_obj(struct nfc_target, GFP_KERNEL);
if (targets == NULL) {
r = -ENOMEM;
goto exit;
@@ -650,7 +650,7 @@ int microread_probe(void *phy_id, const struct nfc_phy_ops *phy_ops,
struct nfc_hci_init_data init_data;
int r;
- info = kzalloc(sizeof(struct microread_info), GFP_KERNEL);
+ info = kzalloc_obj(struct microread_info, GFP_KERNEL);
if (!info) {
r = -ENOMEM;
goto err_info_alloc;
diff --git a/drivers/nfc/nfcmrvl/main.c b/drivers/nfc/nfcmrvl/main.c
index 141bc4b66dcb..2065befd3793 100644
--- a/drivers/nfc/nfcmrvl/main.c
+++ b/drivers/nfc/nfcmrvl/main.c
@@ -101,7 +101,7 @@ struct nfcmrvl_private *nfcmrvl_nci_register_dev(enum nfcmrvl_phy phy,
int tailroom;
u32 protocols;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/nfc/nfcsim.c b/drivers/nfc/nfcsim.c
index a55381f80cd6..6b2939e6a7cd 100644
--- a/drivers/nfc/nfcsim.c
+++ b/drivers/nfc/nfcsim.c
@@ -66,7 +66,7 @@ static struct nfcsim_link *nfcsim_link_new(void)
{
struct nfcsim_link *link;
- link = kzalloc(sizeof(struct nfcsim_link), GFP_KERNEL);
+ link = kzalloc_obj(struct nfcsim_link, GFP_KERNEL);
if (!link)
return NULL;
@@ -373,7 +373,7 @@ static struct nfcsim *nfcsim_device_new(struct nfcsim_link *link_in,
struct nfcsim *dev;
int rc;
- dev = kzalloc(sizeof(struct nfcsim), GFP_KERNEL);
+ dev = kzalloc_obj(struct nfcsim, GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/nfc/pn533/pn533.c b/drivers/nfc/pn533/pn533.c
index 2b043a9f9533..8d62084c3e92 100644
--- a/drivers/nfc/pn533/pn533.c
+++ b/drivers/nfc/pn533/pn533.c
@@ -444,7 +444,7 @@ static int __pn533_send_async(struct pn533 *dev, u8 cmd_code,
dev_dbg(dev->dev, "Sending command 0x%x\n", cmd_code);
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -518,7 +518,7 @@ static int pn533_send_cmd_direct_async(struct pn533 *dev, u8 cmd_code,
struct pn533_cmd *cmd;
int rc;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -2019,7 +2019,7 @@ static int pn533_dep_link_up(struct nfc_dev *nfc_dev, struct nfc_target *target,
*next = 0;
}
- arg = kmalloc(sizeof(*arg), GFP_KERNEL);
+ arg = kmalloc_obj(*arg, GFP_KERNEL);
if (!arg) {
dev_kfree_skb(skb);
return -ENOMEM;
@@ -2266,7 +2266,7 @@ static int pn533_transceive(struct nfc_dev *nfc_dev,
goto error;
}
- arg = kmalloc(sizeof(*arg), GFP_KERNEL);
+ arg = kmalloc_obj(*arg, GFP_KERNEL);
if (!arg) {
rc = -ENOMEM;
goto error;
@@ -2744,7 +2744,7 @@ struct pn533 *pn53x_common_init(u32 device_type,
{
struct pn533 *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/nfc/pn533/uart.c b/drivers/nfc/pn533/uart.c
index a081bce61c29..3355736e5e26 100644
--- a/drivers/nfc/pn533/uart.c
+++ b/drivers/nfc/pn533/uart.c
@@ -242,7 +242,7 @@ static int pn532_uart_probe(struct serdev_device *serdev)
int err;
err = -ENOMEM;
- pn532 = kzalloc(sizeof(*pn532), GFP_KERNEL);
+ pn532 = kzalloc_obj(*pn532, GFP_KERNEL);
if (!pn532)
goto err_exit;
diff --git a/drivers/nfc/pn544/pn544.c b/drivers/nfc/pn544/pn544.c
index 32a61a185142..87803f125f5e 100644
--- a/drivers/nfc/pn544/pn544.c
+++ b/drivers/nfc/pn544/pn544.c
@@ -910,7 +910,7 @@ int pn544_hci_probe(void *phy_id, const struct nfc_phy_ops *phy_ops,
struct nfc_hci_init_data init_data;
int r;
- info = kzalloc(sizeof(struct pn544_hci_info), GFP_KERNEL);
+ info = kzalloc_obj(struct pn544_hci_info, GFP_KERNEL);
if (!info) {
r = -ENOMEM;
goto err_info_alloc;
diff --git a/drivers/nfc/port100.c b/drivers/nfc/port100.c
index 00d8ea6dcb5d..3dcd13878535 100644
--- a/drivers/nfc/port100.c
+++ b/drivers/nfc/port100.c
@@ -859,7 +859,7 @@ static int port100_send_cmd_async(struct port100 *dev, u8 cmd_code,
if (!resp)
return -ENOMEM;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
dev_kfree_skb(resp);
return -ENOMEM;
@@ -1211,7 +1211,7 @@ static int port100_in_send_cmd(struct nfc_digital_dev *ddev,
struct port100_cb_arg *cb_arg;
__le16 timeout;
- cb_arg = kzalloc(sizeof(struct port100_cb_arg), GFP_KERNEL);
+ cb_arg = kzalloc_obj(struct port100_cb_arg, GFP_KERNEL);
if (!cb_arg)
return -ENOMEM;
@@ -1377,7 +1377,7 @@ static int port100_tg_send_cmd(struct nfc_digital_dev *ddev,
struct port100_tg_comm_rf_cmd *hdr;
struct port100_cb_arg *cb_arg;
- cb_arg = kzalloc(sizeof(struct port100_cb_arg), GFP_KERNEL);
+ cb_arg = kzalloc_obj(struct port100_cb_arg, GFP_KERNEL);
if (!cb_arg)
return -ENOMEM;
@@ -1418,7 +1418,7 @@ static int port100_listen_mdaa(struct nfc_digital_dev *ddev,
if (rc)
return rc;
- cb_arg = kzalloc(sizeof(struct port100_cb_arg), GFP_KERNEL);
+ cb_arg = kzalloc_obj(struct port100_cb_arg, GFP_KERNEL);
if (!cb_arg)
return -ENOMEM;
diff --git a/drivers/nfc/st21nfca/core.c b/drivers/nfc/st21nfca/core.c
index bec6f607c32c..31f6e7c9930f 100644
--- a/drivers/nfc/st21nfca/core.c
+++ b/drivers/nfc/st21nfca/core.c
@@ -946,7 +946,7 @@ int st21nfca_hci_probe(void *phy_id, const struct nfc_phy_ops *phy_ops,
struct nfc_hci_init_data init_data;
unsigned long quirks = 0;
- info = kzalloc(sizeof(struct st21nfca_hci_info), GFP_KERNEL);
+ info = kzalloc_obj(struct st21nfca_hci_info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/nfc/virtual_ncidev.c b/drivers/nfc/virtual_ncidev.c
index b957fce83b7c..81cc2e046ee6 100644
--- a/drivers/nfc/virtual_ncidev.c
+++ b/drivers/nfc/virtual_ncidev.c
@@ -135,7 +135,7 @@ static int virtual_ncidev_open(struct inode *inode, struct file *file)
int ret = 0;
struct virtual_nci_dev *vdev;
- vdev = kzalloc(sizeof(*vdev), GFP_KERNEL);
+ vdev = kzalloc_obj(*vdev, GFP_KERNEL);
if (!vdev)
return -ENOMEM;
vdev->ndev = nci_allocate_device(&virtual_nci_ops,
diff --git a/drivers/ntb/test/ntb_msi_test.c b/drivers/ntb/test/ntb_msi_test.c
index 4e18e08776c9..f52d409ba6d2 100644
--- a/drivers/ntb/test/ntb_msi_test.c
+++ b/drivers/ntb/test/ntb_msi_test.c
@@ -164,7 +164,7 @@ static void ntb_msit_db_event(void *ctx, int vec)
if (irq_count == -1)
continue;
- desc = kcalloc(irq_count, sizeof(*desc), GFP_ATOMIC);
+ desc = kzalloc_objs(*desc, irq_count, GFP_ATOMIC);
if (!desc)
continue;
diff --git a/drivers/nubus/nubus.c b/drivers/nubus/nubus.c
index 197c8c0de199..559dce302d06 100644
--- a/drivers/nubus/nubus.c
+++ b/drivers/nubus/nubus.c
@@ -510,7 +510,7 @@ nubus_get_functional_resource(struct nubus_board *board, int slot,
dir.procdir = nubus_proc_add_rsrc_dir(board->procdir, parent, board);
/* Actually we should probably panic if this fails */
- fres = kzalloc(sizeof(*fres), GFP_ATOMIC);
+ fres = kzalloc_obj(*fres, GFP_ATOMIC);
if (!fres)
return NULL;
fres->resid = parent->type;
@@ -739,7 +739,7 @@ static void __init nubus_add_board(int slot, int bytelanes)
nubus_rewind(&rp, FORMAT_BLOCK_SIZE, bytelanes);
/* Actually we should probably panic if this fails */
- if ((board = kzalloc(sizeof(*board), GFP_ATOMIC)) == NULL)
+ if ((board = kzalloc_obj(*board, GFP_ATOMIC)) == NULL)
return;
board->fblock = rp;
diff --git a/drivers/nubus/proc.c b/drivers/nubus/proc.c
index e7a347db708c..4d6773ef484e 100644
--- a/drivers/nubus/proc.c
+++ b/drivers/nubus/proc.c
@@ -96,7 +96,7 @@ nubus_proc_alloc_pde_data(unsigned char *ptr, unsigned int size)
{
struct nubus_proc_pde_data *pded;
- pded = kmalloc(sizeof(*pded), GFP_KERNEL);
+ pded = kmalloc_obj(*pded, GFP_KERNEL);
if (!pded)
return NULL;
diff --git a/drivers/nvdimm/badrange.c b/drivers/nvdimm/badrange.c
index 36c626db459a..7d2422f72e66 100644
--- a/drivers/nvdimm/badrange.c
+++ b/drivers/nvdimm/badrange.c
@@ -37,7 +37,7 @@ static int alloc_and_append_badrange_entry(struct badrange *badrange,
{
struct badrange_entry *bre;
- bre = kzalloc(sizeof(*bre), flags);
+ bre = kzalloc_obj(*bre, flags);
if (!bre)
return -ENOMEM;
@@ -50,7 +50,7 @@ static int add_badrange(struct badrange *badrange, u64 addr, u64 length)
struct badrange_entry *bre, *bre_new;
spin_unlock(&badrange->lock);
- bre_new = kzalloc(sizeof(*bre_new), GFP_KERNEL);
+ bre_new = kzalloc_obj(*bre_new, GFP_KERNEL);
spin_lock(&badrange->lock);
if (list_empty(&badrange->list)) {
diff --git a/drivers/nvdimm/btt.c b/drivers/nvdimm/btt.c
index 237edfa1c624..c47785274d3a 100644
--- a/drivers/nvdimm/btt.c
+++ b/drivers/nvdimm/btt.c
@@ -539,8 +539,8 @@ static int btt_freelist_init(struct arena_info *arena)
struct log_entry log_new;
u32 i, map_entry, log_oldmap, log_newmap;
- arena->freelist = kcalloc(arena->nfree, sizeof(struct free_entry),
- GFP_KERNEL);
+ arena->freelist = kzalloc_objs(struct free_entry, arena->nfree,
+ GFP_KERNEL);
if (!arena->freelist)
return -ENOMEM;
@@ -733,8 +733,8 @@ static int btt_maplocks_init(struct arena_info *arena)
{
u32 i;
- arena->map_locks = kcalloc(arena->nfree, sizeof(struct aligned_lock),
- GFP_KERNEL);
+ arena->map_locks = kzalloc_objs(struct aligned_lock, arena->nfree,
+ GFP_KERNEL);
if (!arena->map_locks)
return -ENOMEM;
@@ -751,7 +751,7 @@ static struct arena_info *alloc_arena(struct btt *btt, size_t size,
u64 logsize, mapsize, datasize;
u64 available = size;
- arena = kzalloc(sizeof(*arena), GFP_KERNEL);
+ arena = kzalloc_obj(*arena, GFP_KERNEL);
if (!arena)
return NULL;
arena->nd_btt = btt->nd_btt;
@@ -854,7 +854,7 @@ static int discover_arenas(struct btt *btt)
size_t cur_off = 0;
int num_arenas = 0;
- struct btt_sb *super __free(kfree) = kzalloc(sizeof(*super), GFP_KERNEL);
+ struct btt_sb *super __free(kfree) = kzalloc_obj(*super, GFP_KERNEL);
if (!super)
return -ENOMEM;
@@ -978,7 +978,7 @@ static int btt_arena_write_layout(struct arena_info *arena)
if (ret)
return ret;
- super = kzalloc(sizeof(*super), GFP_NOIO);
+ super = kzalloc_obj(*super, GFP_NOIO);
if (!super)
return -ENOMEM;
diff --git a/drivers/nvdimm/btt_devs.c b/drivers/nvdimm/btt_devs.c
index b3279b86bbfd..ab9d0ad53724 100644
--- a/drivers/nvdimm/btt_devs.c
+++ b/drivers/nvdimm/btt_devs.c
@@ -180,7 +180,7 @@ static struct device *__nd_btt_create(struct nd_region *nd_region,
struct nd_btt *nd_btt;
struct device *dev;
- nd_btt = kzalloc(sizeof(*nd_btt), GFP_KERNEL);
+ nd_btt = kzalloc_obj(*nd_btt, GFP_KERNEL);
if (!nd_btt)
return NULL;
diff --git a/drivers/nvdimm/bus.c b/drivers/nvdimm/bus.c
index 87178a53ff9c..767a4f1e27e5 100644
--- a/drivers/nvdimm/bus.c
+++ b/drivers/nvdimm/bus.c
@@ -336,7 +336,7 @@ struct nvdimm_bus *nvdimm_bus_register(struct device *parent,
struct nvdimm_bus *nvdimm_bus;
int rc;
- nvdimm_bus = kzalloc(sizeof(*nvdimm_bus), GFP_KERNEL);
+ nvdimm_bus = kzalloc_obj(*nvdimm_bus, GFP_KERNEL);
if (!nvdimm_bus)
return NULL;
INIT_LIST_HEAD(&nvdimm_bus->list);
@@ -736,7 +736,7 @@ int nvdimm_bus_create_ndctl(struct nvdimm_bus *nvdimm_bus)
struct device *dev;
int rc;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
device_initialize(dev);
diff --git a/drivers/nvdimm/core.c b/drivers/nvdimm/core.c
index 5ba204113fe1..5c2e4160e6ae 100644
--- a/drivers/nvdimm/core.c
+++ b/drivers/nvdimm/core.c
@@ -80,7 +80,7 @@ static struct nvdimm_map *alloc_nvdimm_map(struct device *dev,
struct nvdimm_bus *nvdimm_bus = walk_to_nvdimm_bus(dev);
struct nvdimm_map *nvdimm_map;
- nvdimm_map = kzalloc(sizeof(*nvdimm_map), GFP_KERNEL);
+ nvdimm_map = kzalloc_obj(*nvdimm_map, GFP_KERNEL);
if (!nvdimm_map)
return NULL;
diff --git a/drivers/nvdimm/dax_devs.c b/drivers/nvdimm/dax_devs.c
index ba4c409ede65..6d25a7fbf751 100644
--- a/drivers/nvdimm/dax_devs.c
+++ b/drivers/nvdimm/dax_devs.c
@@ -50,7 +50,7 @@ static struct nd_dax *nd_dax_alloc(struct nd_region *nd_region)
struct nd_dax *nd_dax;
struct device *dev;
- nd_dax = kzalloc(sizeof(*nd_dax), GFP_KERNEL);
+ nd_dax = kzalloc_obj(*nd_dax, GFP_KERNEL);
if (!nd_dax)
return NULL;
diff --git a/drivers/nvdimm/dimm.c b/drivers/nvdimm/dimm.c
index 2f6c26cc6a3e..f7c7ecee80a7 100644
--- a/drivers/nvdimm/dimm.c
+++ b/drivers/nvdimm/dimm.c
@@ -39,7 +39,7 @@ static int nvdimm_probe(struct device *dev)
*/
nvdimm_clear_locked(dev);
- ndd = kzalloc(sizeof(*ndd), GFP_KERNEL);
+ ndd = kzalloc_obj(*ndd, GFP_KERNEL);
if (!ndd)
return -ENOMEM;
diff --git a/drivers/nvdimm/dimm_devs.c b/drivers/nvdimm/dimm_devs.c
index e1349ef5f8fd..c0366fd5d6a0 100644
--- a/drivers/nvdimm/dimm_devs.c
+++ b/drivers/nvdimm/dimm_devs.c
@@ -575,7 +575,7 @@ struct nvdimm *__nvdimm_create(struct nvdimm_bus *nvdimm_bus,
const struct nvdimm_security_ops *sec_ops,
const struct nvdimm_fw_ops *fw_ops)
{
- struct nvdimm *nvdimm = kzalloc(sizeof(*nvdimm), GFP_KERNEL);
+ struct nvdimm *nvdimm = kzalloc_obj(*nvdimm, GFP_KERNEL);
struct device *dev;
if (!nvdimm)
diff --git a/drivers/nvdimm/label.c b/drivers/nvdimm/label.c
index 04f4a049599a..e370eaf17099 100644
--- a/drivers/nvdimm/label.c
+++ b/drivers/nvdimm/label.c
@@ -982,7 +982,7 @@ static int init_labels(struct nd_mapping *nd_mapping, int num_labels)
* they can be garbage collected after writing the new labels.
*/
for (i = old_num_labels; i < num_labels; i++) {
- label_ent = kzalloc(sizeof(*label_ent), GFP_KERNEL);
+ label_ent = kzalloc_obj(*label_ent, GFP_KERNEL);
if (!label_ent)
return -ENOMEM;
mutex_lock(&nd_mapping->lock);
diff --git a/drivers/nvdimm/namespace_devs.c b/drivers/nvdimm/namespace_devs.c
index a5edcacfe46d..6f2cd7d32467 100644
--- a/drivers/nvdimm/namespace_devs.c
+++ b/drivers/nvdimm/namespace_devs.c
@@ -1530,11 +1530,11 @@ static struct device **create_namespace_io(struct nd_region *nd_region)
struct device *dev, **devs;
struct resource *res;
- nsio = kzalloc(sizeof(*nsio), GFP_KERNEL);
+ nsio = kzalloc_obj(*nsio, GFP_KERNEL);
if (!nsio)
return NULL;
- devs = kcalloc(2, sizeof(struct device *), GFP_KERNEL);
+ devs = kzalloc_objs(struct device *, 2, GFP_KERNEL);
if (!devs) {
kfree(nsio);
return NULL;
@@ -1693,7 +1693,7 @@ static struct device *create_namespace_pmem(struct nd_region *nd_region,
nsl_uuid_raw(ndd, nd_label));
}
- nspm = kzalloc(sizeof(*nspm), GFP_KERNEL);
+ nspm = kzalloc_obj(*nspm, GFP_KERNEL);
if (!nspm)
return ERR_PTR(-ENOMEM);
@@ -1797,7 +1797,7 @@ static struct device *nd_namespace_pmem_create(struct nd_region *nd_region)
if (!is_memory(&nd_region->dev))
return NULL;
- nspm = kzalloc(sizeof(*nspm), GFP_KERNEL);
+ nspm = kzalloc_obj(*nspm, GFP_KERNEL);
if (!nspm)
return NULL;
@@ -1931,7 +1931,7 @@ static struct device **scan_labels(struct nd_region *nd_region)
struct nvdimm_drvdata *ndd = to_ndd(nd_mapping);
resource_size_t map_end = nd_mapping->start + nd_mapping->size - 1;
- devs = kcalloc(2, sizeof(dev), GFP_KERNEL);
+ devs = kzalloc_objs(dev, 2, GFP_KERNEL);
if (!devs)
return NULL;
@@ -1954,7 +1954,7 @@ static struct device **scan_labels(struct nd_region *nd_region)
if (i < count)
continue;
if (count) {
- __devs = kcalloc(count + 2, sizeof(dev), GFP_KERNEL);
+ __devs = kzalloc_objs(dev, count + 2, GFP_KERNEL);
if (!__devs)
goto err;
memcpy(__devs, devs, sizeof(dev) * count);
@@ -1984,7 +1984,7 @@ static struct device **scan_labels(struct nd_region *nd_region)
/* Publish a zero-sized namespace for userspace to configure. */
nd_mapping_free_labels(nd_mapping);
- nspm = kzalloc(sizeof(*nspm), GFP_KERNEL);
+ nspm = kzalloc_obj(*nspm, GFP_KERNEL);
if (!nspm)
goto err;
dev = &nspm->nsio.common.dev;
@@ -2118,7 +2118,7 @@ static int init_active_labels(struct nd_region *nd_region)
for (j = 0; j < count; j++) {
struct nd_namespace_label *label;
- label_ent = kzalloc(sizeof(*label_ent), GFP_KERNEL);
+ label_ent = kzalloc_obj(*label_ent, GFP_KERNEL);
if (!label_ent)
break;
label = nd_label_active(ndd, j);
diff --git a/drivers/nvdimm/nd_perf.c b/drivers/nvdimm/nd_perf.c
index 2b6dc80d8fb5..5338a440890b 100644
--- a/drivers/nvdimm/nd_perf.c
+++ b/drivers/nvdimm/nd_perf.c
@@ -184,7 +184,7 @@ static int create_cpumask_attr_group(struct nvdimm_pmu *nd_pmu)
struct attribute **attrs_group;
struct attribute_group *nvdimm_pmu_cpumask_group;
- pmu_events_attr = kzalloc(sizeof(*pmu_events_attr), GFP_KERNEL);
+ pmu_events_attr = kzalloc_obj(*pmu_events_attr, GFP_KERNEL);
if (!pmu_events_attr)
return -ENOMEM;
@@ -195,7 +195,8 @@ static int create_cpumask_attr_group(struct nvdimm_pmu *nd_pmu)
}
/* Allocate memory for cpumask attribute group */
- nvdimm_pmu_cpumask_group = kzalloc(sizeof(*nvdimm_pmu_cpumask_group), GFP_KERNEL);
+ nvdimm_pmu_cpumask_group = kzalloc_obj(*nvdimm_pmu_cpumask_group,
+ GFP_KERNEL);
if (!nvdimm_pmu_cpumask_group) {
kfree(pmu_events_attr);
kfree(attrs_group);
diff --git a/drivers/nvdimm/nd_virtio.c b/drivers/nvdimm/nd_virtio.c
index af82385be7c6..e70aee4ef7a9 100644
--- a/drivers/nvdimm/nd_virtio.c
+++ b/drivers/nvdimm/nd_virtio.c
@@ -55,7 +55,7 @@ static int virtio_pmem_flush(struct nd_region *nd_region)
return -EIO;
}
- req_data = kmalloc(sizeof(*req_data), GFP_KERNEL);
+ req_data = kmalloc_obj(*req_data, GFP_KERNEL);
if (!req_data)
return -ENOMEM;
diff --git a/drivers/nvdimm/of_pmem.c b/drivers/nvdimm/of_pmem.c
index 68bddab3fb46..f78aede2aab5 100644
--- a/drivers/nvdimm/of_pmem.c
+++ b/drivers/nvdimm/of_pmem.c
@@ -26,7 +26,7 @@ static int of_pmem_region_probe(struct platform_device *pdev)
if (!np)
return -ENXIO;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/nvdimm/pfn_devs.c b/drivers/nvdimm/pfn_devs.c
index 42b172fc5576..5d1e1c214847 100644
--- a/drivers/nvdimm/pfn_devs.c
+++ b/drivers/nvdimm/pfn_devs.c
@@ -311,7 +311,7 @@ static struct nd_pfn *nd_pfn_alloc(struct nd_region *nd_region)
struct nd_pfn *nd_pfn;
struct device *dev;
- nd_pfn = kzalloc(sizeof(*nd_pfn), GFP_KERNEL);
+ nd_pfn = kzalloc_obj(*nd_pfn, GFP_KERNEL);
if (!nd_pfn)
return NULL;
diff --git a/drivers/nvdimm/ramdax.c b/drivers/nvdimm/ramdax.c
index 954cb7919807..8d6cfffbb56c 100644
--- a/drivers/nvdimm/ramdax.c
+++ b/drivers/nvdimm/ramdax.c
@@ -40,7 +40,7 @@ static int ramdax_register_region(struct resource *res,
struct nd_interleave_set *nd_set;
int nid = phys_to_target_node(res->start);
- nd_set = kzalloc(sizeof(*nd_set), GFP_KERNEL);
+ nd_set = kzalloc_obj(*nd_set, GFP_KERNEL);
if (!nd_set)
return -ENOMEM;
@@ -80,7 +80,7 @@ static int ramdax_register_dimm(struct resource *res, void *data)
struct ramdax_dimm *dimm;
int err;
- dimm = kzalloc(sizeof(*dimm), GFP_KERNEL);
+ dimm = kzalloc_obj(*dimm, GFP_KERNEL);
if (!dimm)
return -ENOMEM;
diff --git a/drivers/nvdimm/region_devs.c b/drivers/nvdimm/region_devs.c
index 1220530a23b6..c1eebff582d9 100644
--- a/drivers/nvdimm/region_devs.c
+++ b/drivers/nvdimm/region_devs.c
@@ -1005,8 +1005,8 @@ static struct nd_region *nd_region_create(struct nvdimm_bus *nvdimm_bus,
}
nd_region =
- kzalloc(struct_size(nd_region, mapping, ndr_desc->num_mappings),
- GFP_KERNEL);
+ kzalloc_flex(*nd_region, mapping, ndr_desc->num_mappings,
+ GFP_KERNEL);
if (!nd_region)
return NULL;
diff --git a/drivers/nvme/host/auth.c b/drivers/nvme/host/auth.c
index 8f3ccb317e4d..20a7347fa258 100644
--- a/drivers/nvme/host/auth.c
+++ b/drivers/nvme/host/auth.c
@@ -1083,8 +1083,8 @@ int nvme_auth_init_ctrl(struct nvme_ctrl *ctrl)
if (!ctrl->opts->dhchap_secret && !ctrl->opts->dhchap_ctrl_secret)
return 0;
- ctrl->dhchap_ctxs = kvcalloc(ctrl_max_dhchaps(ctrl),
- sizeof(*chap), GFP_KERNEL);
+ ctrl->dhchap_ctxs = kvzalloc_objs(*chap, ctrl_max_dhchaps(ctrl),
+ GFP_KERNEL);
if (!ctrl->dhchap_ctxs) {
ret = -ENOMEM;
goto err_free_dhchap_ctrl_secret;
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 19b67cf5d550..fe05fb76afe6 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -1469,7 +1469,7 @@ static int nvme_identify_ctrl(struct nvme_ctrl *dev, struct nvme_id_ctrl **id)
c.identify.opcode = nvme_admin_identify;
c.identify.cns = NVME_ID_CNS_CTRL;
- *id = kmalloc(sizeof(struct nvme_id_ctrl), GFP_KERNEL);
+ *id = kmalloc_obj(struct nvme_id_ctrl, GFP_KERNEL);
if (!*id)
return -ENOMEM;
@@ -1599,7 +1599,7 @@ int nvme_identify_ns(struct nvme_ctrl *ctrl, unsigned nsid,
c.identify.nsid = cpu_to_le32(nsid);
c.identify.cns = NVME_ID_CNS_NS;
- *id = kmalloc(sizeof(**id), GFP_KERNEL);
+ *id = kmalloc_obj(**id, GFP_KERNEL);
if (!*id)
return -ENOMEM;
@@ -1663,7 +1663,7 @@ static int nvme_ns_info_from_id_cs_indep(struct nvme_ctrl *ctrl,
};
int ret;
- id = kmalloc(sizeof(*id), GFP_KERNEL);
+ id = kmalloc_obj(*id, GFP_KERNEL);
if (!id)
return -ENOMEM;
@@ -1923,7 +1923,7 @@ static int nvme_identify_ns_nvm(struct nvme_ctrl *ctrl, unsigned int nsid,
struct nvme_id_ns_nvm *nvm;
int ret;
- nvm = kzalloc(sizeof(*nvm), GFP_KERNEL);
+ nvm = kzalloc_obj(*nvm, GFP_KERNEL);
if (!nvm)
return -ENOMEM;
@@ -2784,7 +2784,7 @@ static int nvme_configure_host_options(struct nvme_ctrl *ctrl)
if (!acre && !lbafee)
return 0;
- host = kzalloc(sizeof(*host), GFP_KERNEL);
+ host = kzalloc_obj(*host, GFP_KERNEL);
if (!host)
return 0;
@@ -2873,7 +2873,7 @@ static int nvme_configure_apst(struct nvme_ctrl *ctrl)
return 0;
}
- table = kzalloc(sizeof(*table), GFP_KERNEL);
+ table = kzalloc_obj(*table, GFP_KERNEL);
if (!table)
return 0;
@@ -3208,7 +3208,7 @@ static int nvme_init_subsystem(struct nvme_ctrl *ctrl, struct nvme_id_ctrl *id)
struct nvme_subsystem *subsys, *found;
int ret;
- subsys = kzalloc(sizeof(*subsys), GFP_KERNEL);
+ subsys = kzalloc_obj(*subsys, GFP_KERNEL);
if (!subsys)
return -ENOMEM;
@@ -3326,7 +3326,7 @@ static int nvme_get_effects_log(struct nvme_ctrl *ctrl, u8 csi,
if (cel)
goto out;
- cel = kzalloc(sizeof(*cel), GFP_KERNEL);
+ cel = kzalloc_obj(*cel, GFP_KERNEL);
if (!cel)
return -ENOMEM;
@@ -3379,7 +3379,7 @@ static int nvme_init_non_mdts_limits(struct nvme_ctrl *ctrl)
test_bit(NVME_CTRL_SKIP_ID_CNS_CS, &ctrl->flags))
return 0;
- id = kzalloc(sizeof(*id), GFP_KERNEL);
+ id = kzalloc_obj(*id, GFP_KERNEL);
if (!id)
return -ENOMEM;
@@ -3408,7 +3408,7 @@ static int nvme_init_effects_log(struct nvme_ctrl *ctrl,
{
struct nvme_effects_log *effects, *old;
- effects = kzalloc(sizeof(*effects), GFP_KERNEL);
+ effects = kzalloc_obj(*effects, GFP_KERNEL);
if (!effects)
return -ENOMEM;
@@ -4688,7 +4688,7 @@ static void nvme_get_fw_slot_info(struct nvme_ctrl *ctrl)
struct nvme_fw_slot_info_log *log;
u8 next_fw_slot, cur_fw_slot;
- log = kmalloc(sizeof(*log), GFP_KERNEL);
+ log = kmalloc_obj(*log, GFP_KERNEL);
if (!log)
return;
diff --git a/drivers/nvme/host/fabrics.c b/drivers/nvme/host/fabrics.c
index 55a8afd2efd5..b4e4bdea1db0 100644
--- a/drivers/nvme/host/fabrics.c
+++ b/drivers/nvme/host/fabrics.c
@@ -26,7 +26,7 @@ static struct nvmf_host *nvmf_host_alloc(const char *hostnqn, uuid_t *id)
{
struct nvmf_host *host;
- host = kmalloc(sizeof(*host), GFP_KERNEL);
+ host = kmalloc_obj(*host, GFP_KERNEL);
if (!host)
return NULL;
@@ -396,7 +396,7 @@ static struct nvmf_connect_data *nvmf_connect_data_prep(struct nvme_ctrl *ctrl,
{
struct nvmf_connect_data *data;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return NULL;
@@ -1312,7 +1312,7 @@ nvmf_create_ctrl(struct device *dev, const char *buf)
struct nvme_ctrl *ctrl;
int ret;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/nvme/host/fc.c b/drivers/nvme/host/fc.c
index 6948de3f438a..0b65d1bab4c1 100644
--- a/drivers/nvme/host/fc.c
+++ b/drivers/nvme/host/fc.c
@@ -1724,15 +1724,15 @@ nvme_fc_rcv_ls_req(struct nvme_fc_remote_port *portptr,
goto out_put;
}
- lsop = kzalloc(sizeof(*lsop), GFP_KERNEL);
+ lsop = kzalloc_obj(*lsop, GFP_KERNEL);
if (!lsop) {
nvme_fc_rcv_ls_req_err_msg(lport, w0);
ret = -ENOMEM;
goto out_put;
}
- lsop->rqstbuf = kzalloc(sizeof(*lsop->rqstbuf), GFP_KERNEL);
- lsop->rspbuf = kzalloc(sizeof(*lsop->rspbuf), GFP_KERNEL);
+ lsop->rqstbuf = kzalloc_obj(*lsop->rqstbuf, GFP_KERNEL);
+ lsop->rspbuf = kzalloc_obj(*lsop->rspbuf, GFP_KERNEL);
if (!lsop->rqstbuf || !lsop->rspbuf) {
nvme_fc_rcv_ls_req_err_msg(lport, w0);
ret = -ENOMEM;
@@ -3443,7 +3443,7 @@ nvme_fc_alloc_ctrl(struct device *dev, struct nvmf_ctrl_options *opts,
goto out_fail;
}
- ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL);
+ ctrl = kzalloc_obj(*ctrl, GFP_KERNEL);
if (!ctrl) {
ret = -ENOMEM;
goto out_fail;
@@ -3497,8 +3497,8 @@ nvme_fc_alloc_ctrl(struct device *dev, struct nvmf_ctrl_options *opts,
ctrl->ctrl.cntlid = 0xffff;
ret = -ENOMEM;
- ctrl->queues = kcalloc(ctrl->ctrl.queue_count,
- sizeof(struct nvme_fc_queue), GFP_KERNEL);
+ ctrl->queues = kzalloc_objs(struct nvme_fc_queue,
+ ctrl->ctrl.queue_count, GFP_KERNEL);
if (!ctrl->queues)
goto out_free_ida;
diff --git a/drivers/nvme/host/hwmon.c b/drivers/nvme/host/hwmon.c
index 89a1a1043d63..c60bd960f03a 100644
--- a/drivers/nvme/host/hwmon.c
+++ b/drivers/nvme/host/hwmon.c
@@ -230,11 +230,11 @@ int nvme_hwmon_init(struct nvme_ctrl *ctrl)
struct device *hwmon;
int err;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
- data->log = kzalloc(sizeof(*data->log), GFP_KERNEL);
+ data->log = kzalloc_obj(*data->log, GFP_KERNEL);
if (!data->log) {
err = -ENOMEM;
goto err_free_data;
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 80df992d1ae8..89b5095d1b2e 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -2447,7 +2447,7 @@ static int nvme_alloc_host_mem_multi(struct nvme_dev *dev, u64 preferred,
if (!descs)
goto out;
- bufs = kcalloc(max_entries, sizeof(*bufs), GFP_KERNEL);
+ bufs = kzalloc_objs(*bufs, max_entries, GFP_KERNEL);
if (!bufs)
goto out_free_descs;
diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c
index 35c0822edb2d..718bbc9b87c1 100644
--- a/drivers/nvme/host/rdma.c
+++ b/drivers/nvme/host/rdma.c
@@ -215,7 +215,7 @@ static struct nvme_rdma_qe *nvme_rdma_alloc_ring(struct ib_device *ibdev,
struct nvme_rdma_qe *ring;
int i;
- ring = kcalloc(ib_queue_size, sizeof(struct nvme_rdma_qe), GFP_KERNEL);
+ ring = kzalloc_objs(struct nvme_rdma_qe, ib_queue_size, GFP_KERNEL);
if (!ring)
return NULL;
@@ -300,7 +300,7 @@ static int nvme_rdma_init_request(struct blk_mq_tag_set *set,
struct nvme_rdma_queue *queue = &ctrl->queues[queue_idx];
nvme_req(rq)->ctrl = &ctrl->ctrl;
- req->sqe.data = kzalloc(sizeof(struct nvme_command), GFP_KERNEL);
+ req->sqe.data = kzalloc_obj(struct nvme_command, GFP_KERNEL);
if (!req->sqe.data)
return -ENOMEM;
@@ -375,7 +375,7 @@ nvme_rdma_find_get_device(struct rdma_cm_id *cm_id)
goto out_unlock;
}
- ndev = kzalloc(sizeof(*ndev), GFP_KERNEL);
+ ndev = kzalloc_obj(*ndev, GFP_KERNEL);
if (!ndev)
goto out_err;
@@ -2240,7 +2240,7 @@ static struct nvme_rdma_ctrl *nvme_rdma_alloc_ctrl(struct device *dev,
struct nvme_rdma_ctrl *ctrl;
int ret;
- ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL);
+ ctrl = kzalloc_obj(*ctrl, GFP_KERNEL);
if (!ctrl)
return ERR_PTR(-ENOMEM);
ctrl->ctrl.opts = opts;
@@ -2290,8 +2290,8 @@ static struct nvme_rdma_ctrl *nvme_rdma_alloc_ctrl(struct device *dev,
ctrl->ctrl.kato = opts->kato;
ret = -ENOMEM;
- ctrl->queues = kcalloc(ctrl->ctrl.queue_count, sizeof(*ctrl->queues),
- GFP_KERNEL);
+ ctrl->queues = kzalloc_objs(*ctrl->queues, ctrl->ctrl.queue_count,
+ GFP_KERNEL);
if (!ctrl->queues)
goto out_free_ctrl;
diff --git a/drivers/nvme/host/tcp.c b/drivers/nvme/host/tcp.c
index 69cb04406b47..489102bdd057 100644
--- a/drivers/nvme/host/tcp.c
+++ b/drivers/nvme/host/tcp.c
@@ -1467,11 +1467,11 @@ static int nvme_tcp_init_connection(struct nvme_tcp_queue *queue)
u32 maxh2cdata;
int ret;
- icreq = kzalloc(sizeof(*icreq), GFP_KERNEL);
+ icreq = kzalloc_obj(*icreq, GFP_KERNEL);
if (!icreq)
return -ENOMEM;
- icresp = kzalloc(sizeof(*icresp), GFP_KERNEL);
+ icresp = kzalloc_obj(*icresp, GFP_KERNEL);
if (!icresp) {
ret = -ENOMEM;
goto free_icreq;
@@ -2891,7 +2891,7 @@ static struct nvme_tcp_ctrl *nvme_tcp_alloc_ctrl(struct device *dev,
struct nvme_tcp_ctrl *ctrl;
int ret;
- ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL);
+ ctrl = kzalloc_obj(*ctrl, GFP_KERNEL);
if (!ctrl)
return ERR_PTR(-ENOMEM);
@@ -2949,8 +2949,8 @@ static struct nvme_tcp_ctrl *nvme_tcp_alloc_ctrl(struct device *dev,
goto out_free_ctrl;
}
- ctrl->queues = kcalloc(ctrl->ctrl.queue_count, sizeof(*ctrl->queues),
- GFP_KERNEL);
+ ctrl->queues = kzalloc_objs(*ctrl->queues, ctrl->ctrl.queue_count,
+ GFP_KERNEL);
if (!ctrl->queues) {
ret = -ENOMEM;
goto out_free_ctrl;
diff --git a/drivers/nvme/host/zns.c b/drivers/nvme/host/zns.c
index deea2dbef5b8..68dbe78c90c4 100644
--- a/drivers/nvme/host/zns.c
+++ b/drivers/nvme/host/zns.c
@@ -13,7 +13,7 @@ static int nvme_set_max_append(struct nvme_ctrl *ctrl)
struct nvme_id_ctrl_zns *id;
int status;
- id = kzalloc(sizeof(*id), GFP_KERNEL);
+ id = kzalloc_obj(*id, GFP_KERNEL);
if (!id)
return -ENOMEM;
@@ -64,7 +64,7 @@ int nvme_query_zone_info(struct nvme_ns *ns, unsigned lbaf,
return status;
}
- id = kzalloc(sizeof(*id), GFP_KERNEL);
+ id = kzalloc_obj(*id, GFP_KERNEL);
if (!id)
return -ENOMEM;
diff --git a/drivers/nvme/target/admin-cmd.c b/drivers/nvme/target/admin-cmd.c
index 5e366502fb75..431702ff21fb 100644
--- a/drivers/nvme/target/admin-cmd.c
+++ b/drivers/nvme/target/admin-cmd.c
@@ -203,7 +203,7 @@ static void nvmet_execute_get_supported_log_pages(struct nvmet_req *req)
struct nvme_supported_log *logs;
u16 status;
- logs = kzalloc(sizeof(*logs), GFP_KERNEL);
+ logs = kzalloc_obj(*logs, GFP_KERNEL);
if (!logs) {
status = NVME_SC_INTERNAL;
goto out;
@@ -308,7 +308,7 @@ static void nvmet_execute_get_log_page_rmi(struct nvmet_req *req)
goto out;
}
- log = kzalloc(sizeof(*log), GFP_KERNEL);
+ log = kzalloc_obj(*log, GFP_KERNEL);
if (!log)
goto out;
@@ -334,7 +334,7 @@ static void nvmet_execute_get_log_page_smart(struct nvmet_req *req)
if (req->transfer_len != sizeof(*log))
goto out;
- log = kzalloc(sizeof(*log), GFP_KERNEL);
+ log = kzalloc_obj(*log, GFP_KERNEL);
if (!log)
goto out;
@@ -409,7 +409,7 @@ static void nvmet_execute_get_log_cmd_effects_ns(struct nvmet_req *req)
struct nvme_effects_log *log;
u16 status = NVME_SC_SUCCESS;
- log = kzalloc(sizeof(*log), GFP_KERNEL);
+ log = kzalloc_obj(*log, GFP_KERNEL);
if (!log) {
status = NVME_SC_INTERNAL;
goto out;
@@ -504,7 +504,7 @@ static void nvmet_execute_get_log_page_endgrp(struct nvmet_req *req)
if (status)
goto out;
- log = kzalloc(sizeof(*log), GFP_KERNEL);
+ log = kzalloc_obj(*log, GFP_KERNEL);
if (!log) {
status = NVME_SC_INTERNAL;
goto out;
@@ -542,8 +542,7 @@ static void nvmet_execute_get_log_page_ana(struct nvmet_req *req)
u16 status;
status = NVME_SC_INTERNAL;
- desc = kmalloc(struct_size(desc, nsids, NVMET_MAX_NAMESPACES),
- GFP_KERNEL);
+ desc = kmalloc_flex(*desc, nsids, NVMET_MAX_NAMESPACES, GFP_KERNEL);
if (!desc)
goto out;
@@ -581,7 +580,7 @@ static void nvmet_execute_get_log_page_features(struct nvmet_req *req)
struct nvme_supported_features_log *features;
u16 status;
- features = kzalloc(sizeof(*features), GFP_KERNEL);
+ features = kzalloc_obj(*features, GFP_KERNEL);
if (!features) {
status = NVME_SC_INTERNAL;
goto out;
@@ -660,7 +659,7 @@ static void nvmet_execute_identify_ctrl(struct nvmet_req *req)
mutex_unlock(&subsys->lock);
}
- id = kzalloc(sizeof(*id), GFP_KERNEL);
+ id = kzalloc_obj(*id, GFP_KERNEL);
if (!id) {
status = NVME_SC_INTERNAL;
goto out;
@@ -809,7 +808,7 @@ static void nvmet_execute_identify_ns(struct nvmet_req *req)
goto out;
}
- id = kzalloc(sizeof(*id), GFP_KERNEL);
+ id = kzalloc_obj(*id, GFP_KERNEL);
if (!id) {
status = NVME_SC_INTERNAL;
goto out;
@@ -1053,7 +1052,7 @@ static void nvme_execute_identify_ns_nvm(struct nvmet_req *req)
if (status)
goto out;
- id = kzalloc(sizeof(*id), GFP_KERNEL);
+ id = kzalloc_obj(*id, GFP_KERNEL);
if (!id) {
status = NVME_SC_INTERNAL;
goto out;
@@ -1073,7 +1072,7 @@ static void nvmet_execute_id_cs_indep(struct nvmet_req *req)
if (status)
goto out;
- id = kzalloc(sizeof(*id), GFP_KERNEL);
+ id = kzalloc_obj(*id, GFP_KERNEL);
if (!id) {
status = NVME_SC_INTERNAL;
goto out;
diff --git a/drivers/nvme/target/configfs.c b/drivers/nvme/target/configfs.c
index 127dae51fec1..6df2844dcec1 100644
--- a/drivers/nvme/target/configfs.c
+++ b/drivers/nvme/target/configfs.c
@@ -1040,7 +1040,7 @@ static int nvmet_port_subsys_allow_link(struct config_item *parent,
return -EINVAL;
}
subsys = to_subsys(target);
- link = kmalloc(sizeof(*link), GFP_KERNEL);
+ link = kmalloc_obj(*link, GFP_KERNEL);
if (!link)
return -ENOMEM;
link->subsys = subsys;
@@ -1120,7 +1120,7 @@ static int nvmet_allowed_hosts_allow_link(struct config_item *parent,
}
host = to_host(target);
- link = kmalloc(sizeof(*link), GFP_KERNEL);
+ link = kmalloc_obj(*link, GFP_KERNEL);
if (!link)
return -ENOMEM;
link->host = host;
@@ -1825,7 +1825,7 @@ static struct config_group *nvmet_referral_make(
{
struct nvmet_port *port;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return ERR_PTR(-ENOMEM);
@@ -1943,7 +1943,7 @@ static struct config_group *nvmet_ana_groups_make_group(
goto out;
ret = -ENOMEM;
- grp = kzalloc(sizeof(*grp), GFP_KERNEL);
+ grp = kzalloc_obj(*grp, GFP_KERNEL);
if (!grp)
goto out;
grp->port = port;
@@ -2022,12 +2022,12 @@ static struct config_group *nvmet_ports_make(struct config_group *group,
if (kstrtou16(name, 0, &portid))
return ERR_PTR(-EINVAL);
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return ERR_PTR(-ENOMEM);
- port->ana_state = kcalloc(NVMET_MAX_ANAGRPS + 1,
- sizeof(*port->ana_state), GFP_KERNEL);
+ port->ana_state = kzalloc_objs(*port->ana_state, NVMET_MAX_ANAGRPS + 1,
+ GFP_KERNEL);
if (!port->ana_state) {
kfree(port);
return ERR_PTR(-ENOMEM);
@@ -2257,7 +2257,7 @@ static struct config_group *nvmet_hosts_make_group(struct config_group *group,
{
struct nvmet_host *host;
- host = kzalloc(sizeof(*host), GFP_KERNEL);
+ host = kzalloc_obj(*host, GFP_KERNEL);
if (!host)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/nvme/target/core.c b/drivers/nvme/target/core.c
index eab3e4fc0f74..255a6c9b2548 100644
--- a/drivers/nvme/target/core.c
+++ b/drivers/nvme/target/core.c
@@ -194,7 +194,7 @@ void nvmet_add_async_event(struct nvmet_ctrl *ctrl, u8 event_type,
{
struct nvmet_async_event *aen;
- aen = kmalloc(sizeof(*aen), GFP_KERNEL);
+ aen = kmalloc_obj(*aen, GFP_KERNEL);
if (!aen)
return;
@@ -693,7 +693,7 @@ struct nvmet_ns *nvmet_ns_alloc(struct nvmet_subsys *subsys, u32 nsid)
if (subsys->nr_namespaces == NVMET_MAX_NAMESPACES)
goto out_unlock;
- ns = kzalloc(sizeof(*ns), GFP_KERNEL);
+ ns = kzalloc_obj(*ns, GFP_KERNEL);
if (!ns)
goto out_unlock;
@@ -1609,7 +1609,7 @@ struct nvmet_ctrl *nvmet_alloc_ctrl(struct nvmet_alloc_ctrl_args *args)
up_read(&nvmet_config_sem);
args->status = NVME_SC_INTERNAL;
- ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL);
+ ctrl = kzalloc_obj(*ctrl, GFP_KERNEL);
if (!ctrl)
goto out_put_subsystem;
mutex_init(&ctrl->lock);
@@ -1642,14 +1642,13 @@ struct nvmet_ctrl *nvmet_alloc_ctrl(struct nvmet_alloc_ctrl_args *args)
if (!ctrl->changed_ns_list)
goto out_free_ctrl;
- ctrl->sqs = kcalloc(subsys->max_qid + 1,
- sizeof(struct nvmet_sq *),
- GFP_KERNEL);
+ ctrl->sqs = kzalloc_objs(struct nvmet_sq *, subsys->max_qid + 1,
+ GFP_KERNEL);
if (!ctrl->sqs)
goto out_free_changed_ns_list;
- ctrl->cqs = kcalloc(subsys->max_qid + 1, sizeof(struct nvmet_cq *),
- GFP_KERNEL);
+ ctrl->cqs = kzalloc_objs(struct nvmet_cq *, subsys->max_qid + 1,
+ GFP_KERNEL);
if (!ctrl->cqs)
goto out_free_sqs;
@@ -1829,7 +1828,7 @@ struct nvmet_subsys *nvmet_subsys_alloc(const char *subsysnqn,
char serial[NVMET_SN_MAX_SIZE / 2];
int ret;
- subsys = kzalloc(sizeof(*subsys), GFP_KERNEL);
+ subsys = kzalloc_obj(*subsys, GFP_KERNEL);
if (!subsys)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/nvme/target/discovery.c b/drivers/nvme/target/discovery.c
index c06f3e04296c..8a4a33f82177 100644
--- a/drivers/nvme/target/discovery.c
+++ b/drivers/nvme/target/discovery.c
@@ -263,7 +263,7 @@ static void nvmet_execute_disc_identify(struct nvmet_req *req)
goto out;
}
- id = kzalloc(sizeof(*id), GFP_KERNEL);
+ id = kzalloc_obj(*id, GFP_KERNEL);
if (!id) {
status = NVME_SC_INTERNAL;
goto out;
diff --git a/drivers/nvme/target/fabrics-cmd.c b/drivers/nvme/target/fabrics-cmd.c
index 7b8d8b397802..5c0a1a3dd5b6 100644
--- a/drivers/nvme/target/fabrics-cmd.c
+++ b/drivers/nvme/target/fabrics-cmd.c
@@ -280,7 +280,7 @@ static void nvmet_execute_admin_connect(struct nvmet_req *req)
if (!nvmet_check_transfer_len(req, sizeof(struct nvmf_connect_data)))
return;
- d = kmalloc(sizeof(*d), GFP_KERNEL);
+ d = kmalloc_obj(*d, GFP_KERNEL);
if (!d) {
args.status = NVME_SC_INTERNAL;
goto complete;
@@ -344,7 +344,7 @@ static void nvmet_execute_io_connect(struct nvmet_req *req)
if (!nvmet_check_transfer_len(req, sizeof(struct nvmf_connect_data)))
return;
- d = kmalloc(sizeof(*d), GFP_KERNEL);
+ d = kmalloc_obj(*d, GFP_KERNEL);
if (!d) {
status = NVME_SC_INTERNAL;
goto complete;
diff --git a/drivers/nvme/target/fc.c b/drivers/nvme/target/fc.c
index 0d9784004c9b..69ab0830313d 100644
--- a/drivers/nvme/target/fc.c
+++ b/drivers/nvme/target/fc.c
@@ -528,8 +528,8 @@ nvmet_fc_alloc_ls_iodlist(struct nvmet_fc_tgtport *tgtport)
struct nvmet_fc_ls_iod *iod;
int i;
- iod = kcalloc(NVMET_LS_CTX_COUNT, sizeof(struct nvmet_fc_ls_iod),
- GFP_KERNEL);
+ iod = kzalloc_objs(struct nvmet_fc_ls_iod, NVMET_LS_CTX_COUNT,
+ GFP_KERNEL);
if (!iod)
return -ENOMEM;
@@ -789,7 +789,7 @@ nvmet_fc_alloc_target_queue(struct nvmet_fc_tgt_assoc *assoc,
if (qid > NVMET_NR_QUEUES)
return NULL;
- queue = kzalloc(struct_size(queue, fod, sqsize), GFP_KERNEL);
+ queue = kzalloc_flex(*queue, fod, sqsize, GFP_KERNEL);
if (!queue)
return NULL;
@@ -1034,7 +1034,7 @@ nvmet_fc_alloc_hostport(struct nvmet_fc_tgtport *tgtport, void *hosthandle)
if (match)
return match;
- newhost = kzalloc(sizeof(*newhost), GFP_KERNEL);
+ newhost = kzalloc_obj(*newhost, GFP_KERNEL);
if (!newhost)
return ERR_PTR(-ENOMEM);
@@ -1116,7 +1116,7 @@ nvmet_fc_alloc_target_assoc(struct nvmet_fc_tgtport *tgtport, void *hosthandle)
if (!tgtport->pe)
return NULL;
- assoc = kzalloc(sizeof(*assoc), GFP_KERNEL);
+ assoc = kzalloc_obj(*assoc, GFP_KERNEL);
if (!assoc)
return NULL;
@@ -2717,7 +2717,7 @@ nvmet_fc_rcv_fcp_req(struct nvmet_fc_target_port *target_port,
spin_unlock_irqrestore(&queue->qlock, flags);
/* Now we need to dynamically allocate one */
- deferfcp = kmalloc(sizeof(*deferfcp), GFP_KERNEL);
+ deferfcp = kmalloc_obj(*deferfcp, GFP_KERNEL);
if (!deferfcp) {
/* release the queue lookup reference */
nvmet_fc_tgt_q_put(queue);
@@ -2882,7 +2882,7 @@ nvmet_fc_add_port(struct nvmet_port *port)
if (ret)
return ret;
- pe = kzalloc(sizeof(*pe), GFP_KERNEL);
+ pe = kzalloc_obj(*pe, GFP_KERNEL);
if (!pe)
return -ENOMEM;
diff --git a/drivers/nvme/target/fcloop.c b/drivers/nvme/target/fcloop.c
index c30e9a3e014f..8473e41e5856 100644
--- a/drivers/nvme/target/fcloop.c
+++ b/drivers/nvme/target/fcloop.c
@@ -559,7 +559,7 @@ fcloop_tgt_discovery_evt(struct nvmet_fc_target_port *tgtport)
{
struct fcloop_rscn *tgt_rscn;
- tgt_rscn = kzalloc(sizeof(*tgt_rscn), GFP_KERNEL);
+ tgt_rscn = kzalloc_obj(*tgt_rscn, GFP_KERNEL);
if (!tgt_rscn)
return;
@@ -766,7 +766,7 @@ fcloop_fcp_req(struct nvme_fc_local_port *localport,
if (!rport->targetport)
return -ECONNREFUSED;
- tfcp_req = kzalloc(sizeof(*tfcp_req), GFP_ATOMIC);
+ tfcp_req = kzalloc_obj(*tfcp_req, GFP_ATOMIC);
if (!tfcp_req)
return -ENOMEM;
@@ -1194,11 +1194,11 @@ fcloop_create_local_port(struct device *dev, struct device_attribute *attr,
unsigned long flags;
int ret = -ENOMEM;
- lport = kzalloc(sizeof(*lport), GFP_KERNEL);
+ lport = kzalloc_obj(*lport, GFP_KERNEL);
if (!lport)
return -ENOMEM;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
goto out_free_lport;
@@ -1345,7 +1345,7 @@ fcloop_alloc_nport(const char *buf, size_t count, bool remoteport)
u32 opts_mask = (remoteport) ? RPORT_OPTS : TGTPORT_OPTS;
int ret;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return NULL;
@@ -1357,7 +1357,7 @@ fcloop_alloc_nport(const char *buf, size_t count, bool remoteport)
if ((opts->mask & opts_mask) != opts_mask)
goto out_free_opts;
- newnport = kzalloc(sizeof(*newnport), GFP_KERNEL);
+ newnport = kzalloc_obj(*newnport, GFP_KERNEL);
if (!newnport)
goto out_free_opts;
diff --git a/drivers/nvme/target/io-cmd-file.c b/drivers/nvme/target/io-cmd-file.c
index 2d068439b129..6e810a91e6c5 100644
--- a/drivers/nvme/target/io-cmd-file.c
+++ b/drivers/nvme/target/io-cmd-file.c
@@ -228,8 +228,7 @@ static void nvmet_file_execute_rw(struct nvmet_req *req)
}
if (nr_bvec > NVMET_MAX_INLINE_BIOVEC)
- req->f.bvec = kmalloc_array(nr_bvec, sizeof(struct bio_vec),
- GFP_KERNEL);
+ req->f.bvec = kmalloc_objs(struct bio_vec, nr_bvec, GFP_KERNEL);
else
req->f.bvec = req->inline_bvec;
diff --git a/drivers/nvme/target/loop.c b/drivers/nvme/target/loop.c
index fc8e7c9ad858..575c5c31ea29 100644
--- a/drivers/nvme/target/loop.c
+++ b/drivers/nvme/target/loop.c
@@ -565,7 +565,7 @@ static struct nvme_ctrl *nvme_loop_create_ctrl(struct device *dev,
struct nvme_loop_ctrl *ctrl;
int ret;
- ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL);
+ ctrl = kzalloc_obj(*ctrl, GFP_KERNEL);
if (!ctrl)
return ERR_PTR(-ENOMEM);
ctrl->ctrl.opts = opts;
@@ -592,8 +592,8 @@ static struct nvme_ctrl *nvme_loop_create_ctrl(struct device *dev,
ctrl->ctrl.kato = opts->kato;
ctrl->port = nvme_loop_find_port(&ctrl->ctrl);
- ctrl->queues = kcalloc(opts->nr_io_queues + 1, sizeof(*ctrl->queues),
- GFP_KERNEL);
+ ctrl->queues = kzalloc_objs(*ctrl->queues, opts->nr_io_queues + 1,
+ GFP_KERNEL);
if (!ctrl->queues)
goto out_uninit_ctrl;
diff --git a/drivers/nvme/target/passthru.c b/drivers/nvme/target/passthru.c
index 5d541c2a46a5..bac8b8f864ce 100644
--- a/drivers/nvme/target/passthru.c
+++ b/drivers/nvme/target/passthru.c
@@ -86,7 +86,7 @@ static u16 nvmet_passthru_override_id_ctrl(struct nvmet_req *req)
unsigned int max_hw_sectors;
int page_shift;
- id = kzalloc(sizeof(*id), GFP_KERNEL);
+ id = kzalloc_obj(*id, GFP_KERNEL);
if (!id)
return NVME_SC_INTERNAL;
@@ -178,7 +178,7 @@ static u16 nvmet_passthru_override_id_ns(struct nvmet_req *req)
struct nvme_id_ns *id;
int i;
- id = kzalloc(sizeof(*id), GFP_KERNEL);
+ id = kzalloc_obj(*id, GFP_KERNEL);
if (!id)
return NVME_SC_INTERNAL;
diff --git a/drivers/nvme/target/pci-epf.c b/drivers/nvme/target/pci-epf.c
index f858a6c9d7cb..f51a7de9f16a 100644
--- a/drivers/nvme/target/pci-epf.c
+++ b/drivers/nvme/target/pci-epf.c
@@ -502,9 +502,8 @@ static inline int nvmet_pci_epf_transfer(struct nvmet_pci_epf_ctrl *ctrl,
static int nvmet_pci_epf_alloc_irq_vectors(struct nvmet_pci_epf_ctrl *ctrl)
{
- ctrl->irq_vectors = kcalloc(ctrl->nr_queues,
- sizeof(struct nvmet_pci_epf_irq_vector),
- GFP_KERNEL);
+ ctrl->irq_vectors = kzalloc_objs(struct nvmet_pci_epf_irq_vector,
+ ctrl->nr_queues, GFP_KERNEL);
if (!ctrl->irq_vectors)
return -ENOMEM;
@@ -1563,13 +1562,13 @@ static int nvmet_pci_epf_alloc_queues(struct nvmet_pci_epf_ctrl *ctrl)
{
unsigned int qid;
- ctrl->sq = kcalloc(ctrl->nr_queues,
- sizeof(struct nvmet_pci_epf_queue), GFP_KERNEL);
+ ctrl->sq = kzalloc_objs(struct nvmet_pci_epf_queue, ctrl->nr_queues,
+ GFP_KERNEL);
if (!ctrl->sq)
return -ENOMEM;
- ctrl->cq = kcalloc(ctrl->nr_queues,
- sizeof(struct nvmet_pci_epf_queue), GFP_KERNEL);
+ ctrl->cq = kzalloc_objs(struct nvmet_pci_epf_queue, ctrl->nr_queues,
+ GFP_KERNEL);
if (!ctrl->cq) {
kfree(ctrl->sq);
ctrl->sq = NULL;
diff --git a/drivers/nvme/target/pr.c b/drivers/nvme/target/pr.c
index cd22d8333314..254960a844ac 100644
--- a/drivers/nvme/target/pr.c
+++ b/drivers/nvme/target/pr.c
@@ -230,7 +230,7 @@ static u16 nvmet_pr_register(struct nvmet_req *req,
u16 status = NVME_SC_SUCCESS;
u64 nrkey = le64_to_cpu(d->nrkey);
- new = kmalloc(sizeof(*new), GFP_KERNEL);
+ new = kmalloc_obj(*new, GFP_KERNEL);
if (!new)
return NVME_SC_INTERNAL;
@@ -331,7 +331,7 @@ static u16 nvmet_pr_update_reg_attr(struct nvmet_pr *pr,
return NVME_SC_SUCCESS;
}
- new = kmalloc(sizeof(*new), GFP_ATOMIC);
+ new = kmalloc_obj(*new, GFP_ATOMIC);
if (!new)
return NVME_SC_INTERNAL;
@@ -380,7 +380,7 @@ static void nvmet_execute_pr_register(struct nvmet_req *req)
u8 reg_act = cdw10 & 0x07; /* Reservation Register Action, bit 02:00 */
u16 status;
- d = kmalloc(sizeof(*d), GFP_KERNEL);
+ d = kmalloc_obj(*d, GFP_KERNEL);
if (!d) {
status = NVME_SC_INTERNAL;
goto out;
@@ -662,7 +662,7 @@ static void nvmet_execute_pr_acquire(struct nvmet_req *req)
goto out;
}
- d = kmalloc(sizeof(*d), GFP_KERNEL);
+ d = kmalloc_obj(*d, GFP_KERNEL);
if (!d) {
status = NVME_SC_INTERNAL;
goto out;
@@ -773,7 +773,7 @@ static void nvmet_execute_pr_release(struct nvmet_req *req)
goto out;
}
- d = kmalloc(sizeof(*d), GFP_KERNEL);
+ d = kmalloc_obj(*d, GFP_KERNEL);
if (!d) {
status = NVME_SC_INTERNAL;
goto out;
@@ -1013,7 +1013,7 @@ static int nvmet_pr_alloc_and_insert_pc_ref(struct nvmet_ns *ns,
struct nvmet_pr_per_ctrl_ref *pc_ref;
int ret;
- pc_ref = kmalloc(sizeof(*pc_ref), GFP_ATOMIC);
+ pc_ref = kmalloc_obj(*pc_ref, GFP_ATOMIC);
if (!pc_ref)
return -ENOMEM;
diff --git a/drivers/nvme/target/rdma.c b/drivers/nvme/target/rdma.c
index 9c12b2361a6d..ae2e27d9cc07 100644
--- a/drivers/nvme/target/rdma.c
+++ b/drivers/nvme/target/rdma.c
@@ -222,7 +222,7 @@ nvmet_rdma_get_rsp(struct nvmet_rdma_queue *queue)
if (unlikely(!rsp)) {
int ret;
- rsp = kzalloc(sizeof(*rsp), GFP_KERNEL);
+ rsp = kzalloc_obj(*rsp, GFP_KERNEL);
if (unlikely(!rsp))
return NULL;
ret = nvmet_rdma_alloc_rsp(queue->dev, rsp,
@@ -317,7 +317,7 @@ static int nvmet_rdma_alloc_cmd(struct nvmet_rdma_device *ndev,
struct nvmet_rdma_cmd *c, bool admin)
{
/* NVMe command / RDMA RECV */
- c->nvme_cmd = kmalloc(sizeof(*c->nvme_cmd), GFP_KERNEL);
+ c->nvme_cmd = kmalloc_obj(*c->nvme_cmd, GFP_KERNEL);
if (!c->nvme_cmd)
goto out;
@@ -367,7 +367,7 @@ nvmet_rdma_alloc_cmds(struct nvmet_rdma_device *ndev,
struct nvmet_rdma_cmd *cmds;
int ret = -EINVAL, i;
- cmds = kvcalloc(nr_cmds, sizeof(struct nvmet_rdma_cmd), GFP_KERNEL);
+ cmds = kvzalloc_objs(struct nvmet_rdma_cmd, nr_cmds, GFP_KERNEL);
if (!cmds)
goto out;
@@ -401,7 +401,7 @@ static int nvmet_rdma_alloc_rsp(struct nvmet_rdma_device *ndev,
struct nvmet_rdma_rsp *r, int tag)
{
/* NVMe CQE / RDMA SEND */
- r->req.cqe = kmalloc(sizeof(*r->req.cqe), GFP_KERNEL);
+ r->req.cqe = kmalloc_obj(*r->req.cqe, GFP_KERNEL);
if (!r->req.cqe)
goto out;
@@ -455,8 +455,7 @@ nvmet_rdma_alloc_rsps(struct nvmet_rdma_queue *queue)
NUMA_NO_NODE, false, true))
goto out;
- queue->rsps = kvcalloc(nr_rsps, sizeof(struct nvmet_rdma_rsp),
- GFP_KERNEL);
+ queue->rsps = kvzalloc_objs(struct nvmet_rdma_rsp, nr_rsps, GFP_KERNEL);
if (!queue->rsps)
goto out_free_sbitmap;
@@ -1096,7 +1095,7 @@ nvmet_rdma_init_srq(struct nvmet_rdma_device *ndev)
struct ib_srq *srq;
int ret, i;
- nsrq = kzalloc(sizeof(*nsrq), GFP_KERNEL);
+ nsrq = kzalloc_obj(*nsrq, GFP_KERNEL);
if (!nsrq)
return ERR_PTR(-ENOMEM);
@@ -1155,7 +1154,7 @@ static int nvmet_rdma_init_srqs(struct nvmet_rdma_device *ndev)
ndev->srq_count = min(ndev->device->num_comp_vectors,
ndev->device->attrs.max_srq);
- ndev->srqs = kcalloc(ndev->srq_count, sizeof(*ndev->srqs), GFP_KERNEL);
+ ndev->srqs = kzalloc_objs(*ndev->srqs, ndev->srq_count, GFP_KERNEL);
if (!ndev->srqs)
return -ENOMEM;
@@ -1208,7 +1207,7 @@ nvmet_rdma_find_get_device(struct rdma_cm_id *cm_id)
goto out_unlock;
}
- ndev = kzalloc(sizeof(*ndev), GFP_KERNEL);
+ ndev = kzalloc_obj(*ndev, GFP_KERNEL);
if (!ndev)
goto out_err;
@@ -1430,7 +1429,7 @@ nvmet_rdma_alloc_queue(struct nvmet_rdma_device *ndev,
struct nvmet_rdma_queue *queue;
int ret;
- queue = kzalloc(sizeof(*queue), GFP_KERNEL);
+ queue = kzalloc_obj(*queue, GFP_KERNEL);
if (!queue) {
ret = NVME_RDMA_CM_NO_RSC;
goto out_reject;
@@ -1924,7 +1923,7 @@ static int nvmet_rdma_add_port(struct nvmet_port *nport)
__kernel_sa_family_t af;
int ret;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return -ENOMEM;
diff --git a/drivers/nvme/target/tcp.c b/drivers/nvme/target/tcp.c
index bda816d66846..ac0a44bfa386 100644
--- a/drivers/nvme/target/tcp.c
+++ b/drivers/nvme/target/tcp.c
@@ -439,8 +439,7 @@ static int nvmet_tcp_map_data(struct nvmet_tcp_cmd *cmd)
cmd->cur_sg = cmd->req.sg;
if (nvmet_tcp_has_data_in(cmd)) {
- cmd->iov = kmalloc_array(cmd->req.sg_cnt,
- sizeof(*cmd->iov), GFP_KERNEL);
+ cmd->iov = kmalloc_objs(*cmd->iov, cmd->req.sg_cnt, GFP_KERNEL);
if (!cmd->iov)
goto err;
}
@@ -1513,7 +1512,7 @@ static int nvmet_tcp_alloc_cmds(struct nvmet_tcp_queue *queue)
struct nvmet_tcp_cmd *cmds;
int i, ret = -EINVAL, nr_cmds = queue->nr_cmds;
- cmds = kvcalloc(nr_cmds, sizeof(struct nvmet_tcp_cmd), GFP_KERNEL);
+ cmds = kvzalloc_objs(struct nvmet_tcp_cmd, nr_cmds, GFP_KERNEL);
if (!cmds)
goto out;
@@ -1901,7 +1900,7 @@ static void nvmet_tcp_alloc_queue(struct nvmet_tcp_port *port,
struct file *sock_file = NULL;
int ret;
- queue = kzalloc(sizeof(*queue), GFP_KERNEL);
+ queue = kzalloc_obj(*queue, GFP_KERNEL);
if (!queue) {
ret = -ENOMEM;
goto out_release;
@@ -2037,7 +2036,7 @@ static int nvmet_tcp_add_port(struct nvmet_port *nport)
__kernel_sa_family_t af;
int ret;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return -ENOMEM;
diff --git a/drivers/nvme/target/zns.c b/drivers/nvme/target/zns.c
index 15a579cf528c..e895f6b3a308 100644
--- a/drivers/nvme/target/zns.c
+++ b/drivers/nvme/target/zns.c
@@ -73,7 +73,7 @@ void nvmet_execute_identify_ctrl_zns(struct nvmet_req *req)
struct nvme_id_ctrl_zns *id;
u16 status;
- id = kzalloc(sizeof(*id), GFP_KERNEL);
+ id = kzalloc_obj(*id, GFP_KERNEL);
if (!id) {
status = NVME_SC_INTERNAL;
goto out;
@@ -104,7 +104,7 @@ void nvmet_execute_identify_ns_zns(struct nvmet_req *req)
goto out;
}
- id_zns = kzalloc(sizeof(*id_zns), GFP_KERNEL);
+ id_zns = kzalloc_obj(*id_zns, GFP_KERNEL);
if (!id_zns) {
status = NVME_SC_INTERNAL;
goto out;
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index c6180cf1dd91..2c838c0b2b7d 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -650,7 +650,7 @@ int nvmem_add_one_cell(struct nvmem_device *nvmem,
struct nvmem_cell_entry *cell;
int rval;
- cell = kzalloc(sizeof(*cell), GFP_KERNEL);
+ cell = kzalloc_obj(*cell, GFP_KERNEL);
if (!cell)
return -ENOMEM;
@@ -908,7 +908,7 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
if (!config->reg_read && !config->reg_write)
return ERR_PTR(-EINVAL);
- nvmem = kzalloc(sizeof(*nvmem), GFP_KERNEL);
+ nvmem = kzalloc_obj(*nvmem, GFP_KERNEL);
if (!nvmem)
return ERR_PTR(-ENOMEM);
@@ -1295,7 +1295,7 @@ static struct nvmem_cell *nvmem_create_cell(struct nvmem_cell_entry *entry,
struct nvmem_cell *cell;
const char *name = NULL;
- cell = kzalloc(sizeof(*cell), GFP_KERNEL);
+ cell = kzalloc_obj(*cell, GFP_KERNEL);
if (!cell)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/nvmem/layouts.c b/drivers/nvmem/layouts.c
index 7ebe53249035..13d5b9941059 100644
--- a/drivers/nvmem/layouts.c
+++ b/drivers/nvmem/layouts.c
@@ -96,7 +96,7 @@ static int nvmem_layout_create_device(struct nvmem_device *nvmem,
struct device *dev;
int ret;
- layout = kzalloc(sizeof(*layout), GFP_KERNEL);
+ layout = kzalloc_obj(*layout, GFP_KERNEL);
if (!layout)
return -ENOMEM;
diff --git a/drivers/of/address.c b/drivers/of/address.c
index 4034d798c55a..590d2db007d2 100644
--- a/drivers/of/address.c
+++ b/drivers/of/address.c
@@ -929,7 +929,7 @@ int of_dma_get_range(struct device_node *np, const struct bus_dma_region **map)
if (!num_ranges)
return -EINVAL;
- r = kcalloc(num_ranges + 1, sizeof(*r), GFP_KERNEL);
+ r = kzalloc_objs(*r, num_ranges + 1, GFP_KERNEL);
if (!r)
return -ENOMEM;
diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c
index 2eaaddcb0ec4..1b3cc351a895 100644
--- a/drivers/of/dynamic.c
+++ b/drivers/of/dynamic.c
@@ -411,7 +411,7 @@ struct property *__of_prop_dup(const struct property *prop, gfp_t allocflags)
{
struct property *new;
- new = kzalloc(sizeof(*new), allocflags);
+ new = kzalloc_obj(*new, allocflags);
if (!new)
return NULL;
@@ -454,7 +454,7 @@ struct device_node *__of_node_dup(const struct device_node *np,
{
struct device_node *node;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return NULL;
node->full_name = kstrdup(full_name, GFP_KERNEL);
@@ -908,7 +908,7 @@ int of_changeset_action(struct of_changeset *ocs, unsigned long action,
if (WARN_ON(action >= ARRAY_SIZE(action_names)))
return -EINVAL;
- ce = kzalloc(sizeof(*ce), GFP_KERNEL);
+ ce = kzalloc_obj(*ce, GFP_KERNEL);
if (!ce)
return -ENOMEM;
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index f374d8b212b8..55c2de65a13a 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -669,7 +669,7 @@ void __init of_irq_init(const struct of_device_id *matches)
* Here, we allocate and populate an of_intc_desc with the node
* pointer, interrupt-parent device_node etc.
*/
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc) {
of_node_put(np);
goto err;
diff --git a/drivers/of/of_reserved_mem.c b/drivers/of/of_reserved_mem.c
index 31c5bc751d0d..0344c55300b6 100644
--- a/drivers/of/of_reserved_mem.c
+++ b/drivers/of/of_reserved_mem.c
@@ -646,7 +646,7 @@ int of_reserved_mem_device_init_by_idx(struct device *dev,
if (!rmem || !rmem->ops || !rmem->ops->device_init)
return -EINVAL;
- rd = kmalloc(sizeof(struct rmem_assigned_device), GFP_KERNEL);
+ rd = kmalloc_obj(struct rmem_assigned_device, GFP_KERNEL);
if (!rd)
return -ENOMEM;
diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c
index 5b4f42230e6c..87faec65c865 100644
--- a/drivers/of/overlay.c
+++ b/drivers/of/overlay.c
@@ -248,7 +248,7 @@ static struct property *dup_and_fixup_symbol_prop(
return NULL;
target_path_len = strlen(target_path);
- new_prop = kzalloc(sizeof(*new_prop), GFP_KERNEL);
+ new_prop = kzalloc_obj(*new_prop, GFP_KERNEL);
if (!new_prop)
goto err_free_target_path;
@@ -784,7 +784,7 @@ static int init_overlay_changeset(struct overlay_changeset *ovcs,
of_node_put(node);
}
- fragments = kcalloc(cnt, sizeof(*fragments), GFP_KERNEL);
+ fragments = kzalloc_objs(*fragments, cnt, GFP_KERNEL);
if (!fragments) {
ret = -ENOMEM;
goto err_out;
@@ -1009,7 +1009,7 @@ int of_overlay_fdt_apply(const void *overlay_fdt, u32 overlay_fdt_size,
if (overlay_fdt_size < size)
return -EINVAL;
- ovcs = kzalloc(sizeof(*ovcs), GFP_KERNEL);
+ ovcs = kzalloc_obj(*ovcs, GFP_KERNEL);
if (!ovcs)
return -ENOMEM;
diff --git a/drivers/of/platform.c b/drivers/of/platform.c
index d90b1677d84e..d9a717c47ad6 100644
--- a/drivers/of/platform.c
+++ b/drivers/of/platform.c
@@ -111,7 +111,7 @@ struct platform_device *of_device_alloc(struct device_node *np,
/* Populate the resource table */
if (num_reg) {
- res = kcalloc(num_reg, sizeof(*res), GFP_KERNEL);
+ res = kzalloc_objs(*res, num_reg, GFP_KERNEL);
if (!res) {
platform_device_put(dev);
return NULL;
diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c
index a9cc2c990562..a8b70b49e780 100644
--- a/drivers/of/unittest.c
+++ b/drivers/of/unittest.c
@@ -197,7 +197,7 @@ static void __init of_unittest_dynamic(void)
}
/* Array of 4 properties for the purpose of testing */
- prop = kcalloc(4, sizeof(*prop), GFP_KERNEL);
+ prop = kzalloc_objs(*prop, 4, GFP_KERNEL);
if (!prop) {
unittest(0, "kzalloc() failed\n");
return;
@@ -379,7 +379,7 @@ static void __init of_unittest_check_phandles(void)
}
}
- nh = kzalloc(sizeof(*nh), GFP_KERNEL);
+ nh = kzalloc_obj(*nh, GFP_KERNEL);
if (!nh)
return;
@@ -1136,7 +1136,7 @@ static void __init of_unittest_dma_ranges_one(const char *path,
dma_addr_t dma_addr;
struct device *dev_bogus;
- dev_bogus = kzalloc(sizeof(struct device), GFP_KERNEL);
+ dev_bogus = kzalloc_obj(struct device, GFP_KERNEL);
if (!dev_bogus) {
unittest(0, "kzalloc() failed\n");
kfree(map);
@@ -2275,7 +2275,7 @@ static int unittest_gpio_probe(struct platform_device *pdev)
unittest_gpio_probe_count++;
- devptr = kzalloc(sizeof(*devptr), GFP_KERNEL);
+ devptr = kzalloc_obj(*devptr, GFP_KERNEL);
if (!devptr)
return -ENOMEM;
diff --git a/drivers/opp/core.c b/drivers/opp/core.c
index ae43c656f108..a109d4dd5316 100644
--- a/drivers/opp/core.c
+++ b/drivers/opp/core.c
@@ -1532,7 +1532,7 @@ static struct opp_table *_allocate_opp_table(struct device *dev, int index)
* Allocate a new OPP table. In the infrequent case where a new
* device is needed to be added, we pay this penalty.
*/
- opp_table = kzalloc(sizeof(*opp_table), GFP_KERNEL);
+ opp_table = kzalloc_obj(*opp_table, GFP_KERNEL);
if (!opp_table)
return ERR_PTR(-ENOMEM);
@@ -2260,9 +2260,8 @@ static int _opp_set_regulators(struct opp_table *opp_table, struct device *dev,
if (opp_table->regulators)
return 0;
- opp_table->regulators = kmalloc_array(count,
- sizeof(*opp_table->regulators),
- GFP_KERNEL);
+ opp_table->regulators = kmalloc_objs(*opp_table->regulators, count,
+ GFP_KERNEL);
if (!opp_table->regulators)
return -ENOMEM;
@@ -2364,8 +2363,7 @@ static int _opp_set_clknames(struct opp_table *opp_table, struct device *dev,
if (opp_table->clks)
return 0;
- opp_table->clks = kmalloc_array(count, sizeof(*opp_table->clks),
- GFP_KERNEL);
+ opp_table->clks = kmalloc_objs(*opp_table->clks, count, GFP_KERNEL);
if (!opp_table->clks)
return -ENOMEM;
@@ -2550,7 +2548,7 @@ int dev_pm_opp_set_config(struct device *dev, struct dev_pm_opp_config *config)
unsigned int id;
int ret;
- data = kmalloc(sizeof(*data), GFP_KERNEL);
+ data = kmalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/opp/cpu.c b/drivers/opp/cpu.c
index a6da7ee3ec76..9ea7c323a8b9 100644
--- a/drivers/opp/cpu.c
+++ b/drivers/opp/cpu.c
@@ -51,7 +51,7 @@ int dev_pm_opp_init_cpufreq_table(struct device *dev,
if (max_opps <= 0)
return max_opps ? max_opps : -ENODATA;
- freq_table = kcalloc((max_opps + 1), sizeof(*freq_table), GFP_KERNEL);
+ freq_table = kzalloc_objs(*freq_table, (max_opps + 1), GFP_KERNEL);
if (!freq_table)
return -ENOMEM;
diff --git a/drivers/opp/of.c b/drivers/opp/of.c
index a268c2b250c0..a6e16f406289 100644
--- a/drivers/opp/of.c
+++ b/drivers/opp/of.c
@@ -303,7 +303,8 @@ static int _of_opp_alloc_required_opps(struct opp_table *opp_table,
if (!count)
return 0;
- opp->required_opps = kcalloc(count, sizeof(*opp->required_opps), GFP_KERNEL);
+ opp->required_opps = kzalloc_objs(*opp->required_opps, count,
+ GFP_KERNEL);
if (!opp->required_opps)
return -ENOMEM;
@@ -469,7 +470,7 @@ int dev_pm_opp_of_find_icc_paths(struct device *dev,
}
num_paths = count / 2;
- paths = kcalloc(num_paths, sizeof(*paths), GFP_KERNEL);
+ paths = kzalloc_objs(*paths, num_paths, GFP_KERNEL);
if (!paths)
return -ENOMEM;
diff --git a/drivers/opp/ti-opp-supply.c b/drivers/opp/ti-opp-supply.c
index 5f0fb3ea385b..b4281f85415b 100644
--- a/drivers/opp/ti-opp-supply.c
+++ b/drivers/opp/ti-opp-supply.c
@@ -127,8 +127,7 @@ static int _store_optimized_voltages(struct device *dev,
goto out;
}
- table = kcalloc(data->num_vdd_table, sizeof(*data->vdd_table),
- GFP_KERNEL);
+ table = kzalloc_objs(*data->vdd_table, data->num_vdd_table, GFP_KERNEL);
if (!table) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/parisc/ccio-dma.c b/drivers/parisc/ccio-dma.c
index 4e7071714356..78bee83bcadd 100644
--- a/drivers/parisc/ccio-dma.c
+++ b/drivers/parisc/ccio-dma.c
@@ -1520,7 +1520,7 @@ static int __init ccio_probe(struct parisc_device *dev)
struct ioc *ioc, **ioc_p = &ioc_list;
struct pci_hba_data *hba;
- ioc = kzalloc(sizeof(struct ioc), GFP_KERNEL);
+ ioc = kzalloc_obj(struct ioc, GFP_KERNEL);
if (ioc == NULL) {
printk(KERN_ERR MODULE_NAME ": memory allocation failure\n");
return -ENOMEM;
@@ -1550,7 +1550,7 @@ static int __init ccio_probe(struct parisc_device *dev)
}
hppa_dma_ops = &ccio_ops;
- hba = kzalloc(sizeof(*hba), GFP_KERNEL);
+ hba = kzalloc_obj(*hba, GFP_KERNEL);
/* if this fails, no I/O cards will work, so may as well bug */
BUG_ON(hba == NULL);
diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c
index 01a50a051296..58c1f5433cbb 100644
--- a/drivers/parisc/dino.c
+++ b/drivers/parisc/dino.c
@@ -990,7 +990,7 @@ static int __init dino_probe(struct parisc_device *dev)
*/
}
- dino_dev = kzalloc(sizeof(struct dino_device), GFP_KERNEL);
+ dino_dev = kzalloc_obj(struct dino_device, GFP_KERNEL);
if (!dino_dev) {
printk("dino_init_chip - couldn't alloc dino_device\n");
return 1;
diff --git a/drivers/parisc/eisa_enumerator.c b/drivers/parisc/eisa_enumerator.c
index f0cb31198a8f..88cca5035c67 100644
--- a/drivers/parisc/eisa_enumerator.c
+++ b/drivers/parisc/eisa_enumerator.c
@@ -86,7 +86,7 @@ static int configure_memory(const unsigned char *buf,
for (i=0;i<HPEE_MEMORY_MAX_ENT;i++) {
c = get_8(buf+len);
- if (NULL != (res = kzalloc(sizeof(struct resource), GFP_KERNEL))) {
+ if (NULL != (res = kzalloc_obj(struct resource, GFP_KERNEL))) {
int result;
res->name = name;
@@ -178,7 +178,7 @@ static int configure_port(const unsigned char *buf, struct resource *io_parent,
for (i=0;i<HPEE_PORT_MAX_ENT;i++) {
c = get_8(buf+len);
- if (NULL != (res = kzalloc(sizeof(struct resource), GFP_KERNEL))) {
+ if (NULL != (res = kzalloc_obj(struct resource, GFP_KERNEL))) {
res->name = board;
res->start = get_16(buf+len+1);
res->end = get_16(buf+len+1)+(c&HPEE_PORT_SIZE_MASK)+1;
diff --git a/drivers/parisc/hppb.c b/drivers/parisc/hppb.c
index 0f9d80384e3d..72f9e7762cc5 100644
--- a/drivers/parisc/hppb.c
+++ b/drivers/parisc/hppb.c
@@ -54,7 +54,7 @@ static int __init hppb_probe(struct parisc_device *dev)
}
if(card->hpa) {
- card->next = kzalloc(sizeof(struct hppb_card), GFP_KERNEL);
+ card->next = kzalloc_obj(struct hppb_card, GFP_KERNEL);
if(!card->next) {
printk(KERN_ERR "HP-PB: Unable to allocate memory.\n");
return 1;
diff --git a/drivers/parisc/iosapic.c b/drivers/parisc/iosapic.c
index a42552608fe4..e8a60a1bfd43 100644
--- a/drivers/parisc/iosapic.c
+++ b/drivers/parisc/iosapic.c
@@ -221,7 +221,7 @@ static size_t irt_num_entry;
static struct irt_entry *iosapic_alloc_irt(int num_entries)
{
- return kcalloc(num_entries, sizeof(struct irt_entry), GFP_KERNEL);
+ return kzalloc_objs(struct irt_entry, num_entries, GFP_KERNEL);
}
/**
@@ -915,7 +915,7 @@ void *iosapic_register(unsigned long hpa, void __iomem *vaddr)
return NULL;
}
- isi = kzalloc(sizeof(struct iosapic_info), GFP_KERNEL);
+ isi = kzalloc_obj(struct iosapic_info, GFP_KERNEL);
if (!isi) {
BUG();
return NULL;
@@ -927,8 +927,8 @@ void *iosapic_register(unsigned long hpa, void __iomem *vaddr)
isi->isi_num_vectors = IOSAPIC_IRDT_MAX_ENTRY(isi->isi_version) + 1;
DBG_IRT("iosapic_register: num vectors = %d\n", isi->isi_num_vectors);
- vip = isi->isi_vector = kcalloc(isi->isi_num_vectors,
- sizeof(struct vector_info), GFP_KERNEL);
+ vip = isi->isi_vector = kzalloc_objs(struct vector_info,
+ isi->isi_num_vectors, GFP_KERNEL);
if (vip == NULL) {
kfree(isi);
return NULL;
diff --git a/drivers/parisc/lasi.c b/drivers/parisc/lasi.c
index 73c93e9cfa51..f9cb9bb3af77 100644
--- a/drivers/parisc/lasi.c
+++ b/drivers/parisc/lasi.c
@@ -162,7 +162,7 @@ static int __init lasi_init_chip(struct parisc_device *dev)
struct gsc_asic *lasi;
int ret;
- lasi = kzalloc(sizeof(*lasi), GFP_KERNEL);
+ lasi = kzalloc_obj(*lasi, GFP_KERNEL);
if (!lasi)
return -ENOMEM;
diff --git a/drivers/parisc/lba_pci.c b/drivers/parisc/lba_pci.c
index 1d29fa13650b..c608854c2f0d 100644
--- a/drivers/parisc/lba_pci.c
+++ b/drivers/parisc/lba_pci.c
@@ -1025,11 +1025,11 @@ lba_pat_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev)
pdc_pat_cell_mod_maddr_block_t *io_pdc_cell; /* IO_VIEW */
int i;
- pa_pdc_cell = kzalloc(sizeof(pdc_pat_cell_mod_maddr_block_t), GFP_KERNEL);
+ pa_pdc_cell = kzalloc_obj(pdc_pat_cell_mod_maddr_block_t, GFP_KERNEL);
if (!pa_pdc_cell)
return;
- io_pdc_cell = kzalloc(sizeof(pdc_pat_cell_mod_maddr_block_t), GFP_KERNEL);
+ io_pdc_cell = kzalloc_obj(pdc_pat_cell_mod_maddr_block_t, GFP_KERNEL);
if (!io_pdc_cell) {
kfree(pa_pdc_cell);
return;
@@ -1546,7 +1546,7 @@ lba_driver_probe(struct parisc_device *dev)
** have an IRT entry will get NULL back from iosapic code.
*/
- lba_dev = kzalloc(sizeof(struct lba_device), GFP_KERNEL);
+ lba_dev = kzalloc_obj(struct lba_device, GFP_KERNEL);
if (!lba_dev) {
printk(KERN_ERR "lba_init_chip - couldn't alloc lba_device\n");
return(1);
diff --git a/drivers/parisc/sba_iommu.c b/drivers/parisc/sba_iommu.c
index eefb2bac8443..9eadbfd70663 100644
--- a/drivers/parisc/sba_iommu.c
+++ b/drivers/parisc/sba_iommu.c
@@ -1939,7 +1939,7 @@ static int __init sba_driver_callback(struct parisc_device *dev)
printk(KERN_INFO "%s found %s at 0x%llx\n",
MODULE_NAME, version, (unsigned long long)dev->hpa.start);
- sba_dev = kzalloc(sizeof(struct sba_device), GFP_KERNEL);
+ sba_dev = kzalloc_obj(struct sba_device, GFP_KERNEL);
if (!sba_dev) {
printk(KERN_ERR MODULE_NAME " - couldn't alloc sba_device\n");
return -ENOMEM;
diff --git a/drivers/parisc/wax.c b/drivers/parisc/wax.c
index 834dbe9a767b..94947be33bd0 100644
--- a/drivers/parisc/wax.c
+++ b/drivers/parisc/wax.c
@@ -70,7 +70,7 @@ static int __init wax_init_chip(struct parisc_device *dev)
struct parisc_device *parent;
int ret;
- wax = kzalloc(sizeof(*wax), GFP_KERNEL);
+ wax = kzalloc_obj(*wax, GFP_KERNEL);
if (!wax)
return -ENOMEM;
diff --git a/drivers/parport/daisy.c b/drivers/parport/daisy.c
index 2231dbfd870d..2e3b95ae2718 100644
--- a/drivers/parport/daisy.c
+++ b/drivers/parport/daisy.c
@@ -51,7 +51,7 @@ static int assign_addrs(struct parport *port);
static void add_dev(int devnum, struct parport *port, int daisy)
{
struct daisydev *newdev, **p;
- newdev = kmalloc(sizeof(struct daisydev), GFP_KERNEL);
+ newdev = kmalloc_obj(struct daisydev, GFP_KERNEL);
if (newdev) {
newdev->port = port;
newdev->daisy = daisy;
diff --git a/drivers/parport/parport_cs.c b/drivers/parport/parport_cs.c
index 8e7e3ac4bb87..f8318db9a75f 100644
--- a/drivers/parport/parport_cs.c
+++ b/drivers/parport/parport_cs.c
@@ -87,7 +87,7 @@ static int parport_probe(struct pcmcia_device *link)
dev_dbg(&link->dev, "parport_attach()\n");
/* Create new parport device */
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info) return -ENOMEM;
link->priv = info;
info->p_dev = link;
diff --git a/drivers/parport/parport_gsc.c b/drivers/parport/parport_gsc.c
index c7e18382dc01..f442c1fb0d7a 100644
--- a/drivers/parport/parport_gsc.c
+++ b/drivers/parport/parport_gsc.c
@@ -234,7 +234,7 @@ static struct parport *parport_gsc_probe_port(unsigned long base,
struct parport tmp;
struct parport *p = &tmp;
- priv = kzalloc (sizeof (struct parport_gsc_private), GFP_KERNEL);
+ priv = kzalloc_obj(struct parport_gsc_private, GFP_KERNEL);
if (!priv) {
printk(KERN_DEBUG "parport (0x%lx): no memory!\n", base);
return NULL;
diff --git a/drivers/parport/parport_ip32.c b/drivers/parport/parport_ip32.c
index 0919ed99ba94..84c4bba2756e 100644
--- a/drivers/parport/parport_ip32.c
+++ b/drivers/parport/parport_ip32.c
@@ -2031,8 +2031,8 @@ static __init struct parport *parport_ip32_probe_port(void)
parport_ip32_make_isa_registers(®s, &mace->isa.parallel,
&mace->isa.ecp1284, 8 /* regshift */);
- ops = kmalloc(sizeof(struct parport_operations), GFP_KERNEL);
- priv = kmalloc(sizeof(struct parport_ip32_private), GFP_KERNEL);
+ ops = kmalloc_obj(struct parport_operations, GFP_KERNEL);
+ priv = kmalloc_obj(struct parport_ip32_private, GFP_KERNEL);
p = parport_register_port(0, PARPORT_IRQ_NONE, PARPORT_DMA_NONE, ops);
if (ops == NULL || priv == NULL || p == NULL) {
err = -ENOMEM;
diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c
index f33b5d1ddfc1..99d44864b9ff 100644
--- a/drivers/parport/parport_pc.c
+++ b/drivers/parport/parport_pc.c
@@ -2056,11 +2056,11 @@ static struct parport *__parport_pc_probe_port(unsigned long int base,
}
}
- ops = kmalloc(sizeof(struct parport_operations), GFP_KERNEL);
+ ops = kmalloc_obj(struct parport_operations, GFP_KERNEL);
if (!ops)
goto out1;
- priv = kmalloc(sizeof(struct parport_pc_private), GFP_KERNEL);
+ priv = kmalloc_obj(struct parport_pc_private, GFP_KERNEL);
if (!priv)
goto out2;
@@ -2880,7 +2880,7 @@ static int parport_pc_pci_probe(struct pci_dev *dev,
if (err)
return err;
- data = kmalloc(sizeof(struct pci_parport_data), GFP_KERNEL);
+ data = kmalloc_obj(struct pci_parport_data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/parport/share.c b/drivers/parport/share.c
index 427abdf3c4c4..44e5d37afbf8 100644
--- a/drivers/parport/share.c
+++ b/drivers/parport/share.c
@@ -430,7 +430,7 @@ struct parport *parport_register_port(unsigned long base, int irq, int dma,
int device;
int ret;
- tmp = kzalloc(sizeof(struct parport), GFP_KERNEL);
+ tmp = kzalloc_obj(struct parport, GFP_KERNEL);
if (!tmp)
return NULL;
@@ -709,11 +709,11 @@ parport_register_dev_model(struct parport *port, const char *name,
parport_get_port(port);
- par_dev = kzalloc(sizeof(*par_dev), GFP_KERNEL);
+ par_dev = kzalloc_obj(*par_dev, GFP_KERNEL);
if (!par_dev)
goto err_put_port;
- par_dev->state = kzalloc(sizeof(*par_dev->state), GFP_KERNEL);
+ par_dev->state = kzalloc_obj(*par_dev->state, GFP_KERNEL);
if (!par_dev->state)
goto err_put_par_dev;
diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c
index 51af9e6c541c..e71aeecba11d 100644
--- a/drivers/pci/bus.c
+++ b/drivers/pci/bus.c
@@ -65,7 +65,7 @@ void pci_bus_add_resource(struct pci_bus *bus, struct resource *res)
{
struct pci_bus_resource *bus_res;
- bus_res = kzalloc(sizeof(struct pci_bus_resource), GFP_KERNEL);
+ bus_res = kzalloc_obj(struct pci_bus_resource, GFP_KERNEL);
if (!bus_res) {
dev_err(&bus->dev, "can't add %pR resource\n", res);
return;
diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c
index 7fcba05cec30..3f106bd9fe7e 100644
--- a/drivers/pci/controller/pci-hyperv.c
+++ b/drivers/pci/controller/pci-hyperv.c
@@ -945,7 +945,7 @@ static int hv_pci_irqchip_init(void)
struct irq_domain *irq_domain_parent = NULL;
int ret = -ENOMEM;
- chip_data = kzalloc(sizeof(*chip_data), GFP_KERNEL);
+ chip_data = kzalloc_obj(*chip_data, GFP_KERNEL);
if (!chip_data)
return ret;
@@ -1932,7 +1932,7 @@ static void hv_compose_msi_msg(struct irq_data *data, struct msi_msg *msg)
hv_int_desc_free(hpdev, int_desc);
}
- int_desc = kzalloc(sizeof(*int_desc), GFP_ATOMIC);
+ int_desc = kzalloc_obj(*int_desc, GFP_ATOMIC);
if (!int_desc)
goto drop_reference;
@@ -2592,7 +2592,7 @@ static struct hv_pci_dev *new_pcichild_device(struct hv_pcibus_device *hbus,
unsigned long flags;
int ret;
- hpdev = kzalloc(sizeof(*hpdev), GFP_KERNEL);
+ hpdev = kzalloc_obj(*hpdev, GFP_KERNEL);
if (!hpdev)
return NULL;
@@ -2831,7 +2831,7 @@ static int hv_pci_start_relations_work(struct hv_pcibus_device *hbus,
return -ENOENT;
}
- dr_wrk = kzalloc(sizeof(*dr_wrk), GFP_NOWAIT);
+ dr_wrk = kzalloc_obj(*dr_wrk, GFP_NOWAIT);
if (!dr_wrk)
return -ENOMEM;
@@ -2871,8 +2871,7 @@ static void hv_pci_devices_present(struct hv_pcibus_device *hbus,
struct hv_dr_state *dr;
int i;
- dr = kzalloc(struct_size(dr, func, relations->device_count),
- GFP_NOWAIT);
+ dr = kzalloc_flex(*dr, func, relations->device_count, GFP_NOWAIT);
if (!dr)
return;
@@ -2906,8 +2905,7 @@ static void hv_pci_devices_present2(struct hv_pcibus_device *hbus,
struct hv_dr_state *dr;
int i;
- dr = kzalloc(struct_size(dr, func, relations->device_count),
- GFP_NOWAIT);
+ dr = kzalloc_flex(*dr, func, relations->device_count, GFP_NOWAIT);
if (!dr)
return;
@@ -3715,7 +3713,7 @@ static int hv_pci_probe(struct hv_device *hdev,
if (!bridge)
return -ENOMEM;
- hbus = kzalloc(sizeof(*hbus), GFP_KERNEL);
+ hbus = kzalloc_obj(*hbus, GFP_KERNEL);
if (!hbus)
return -ENOMEM;
diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
index ec6afc38e898..44bfe301b557 100644
--- a/drivers/pci/controller/vmd.c
+++ b/drivers/pci/controller/vmd.c
@@ -270,7 +270,7 @@ static int vmd_msi_alloc(struct irq_domain *domain, unsigned int virq,
struct vmd_irq *vmdirq;
for (int i = 0; i < nr_irqs; ++i) {
- vmdirq = kzalloc(sizeof(*vmdirq), GFP_KERNEL);
+ vmdirq = kzalloc_obj(*vmdirq, GFP_KERNEL);
if (!vmdirq) {
vmd_msi_free(domain, virq, i);
return -ENOMEM;
diff --git a/drivers/pci/doe.c b/drivers/pci/doe.c
index 62be9c8dbc52..811276ae9b13 100644
--- a/drivers/pci/doe.c
+++ b/drivers/pci/doe.c
@@ -167,7 +167,7 @@ static int pci_doe_sysfs_feature_populate(struct pci_dev *pdev,
xa_for_each(&doe_mb->feats, i, entry)
num_features++;
- attrs = kcalloc(num_features, sizeof(*attrs), GFP_KERNEL);
+ attrs = kzalloc_objs(*attrs, num_features, GFP_KERNEL);
if (!attrs) {
pci_warn(pdev, "Failed allocating the device_attribute array\n");
return -ENOMEM;
@@ -641,7 +641,7 @@ static struct pci_doe_mb *pci_doe_create_mb(struct pci_dev *pdev,
struct pci_doe_mb *doe_mb;
int rc;
- doe_mb = kzalloc(sizeof(*doe_mb), GFP_KERNEL);
+ doe_mb = kzalloc_obj(*doe_mb, GFP_KERNEL);
if (!doe_mb)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/pci/ecam.c b/drivers/pci/ecam.c
index 260b7de2dbd5..8c7559e73bb6 100644
--- a/drivers/pci/ecam.c
+++ b/drivers/pci/ecam.c
@@ -37,7 +37,7 @@ struct pci_config_window *pci_ecam_create(struct device *dev,
if (busr->start > busr->end)
return ERR_PTR(-EINVAL);
- cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
+ cfg = kzalloc_obj(*cfg, GFP_KERNEL);
if (!cfg)
return ERR_PTR(-ENOMEM);
@@ -75,7 +75,7 @@ struct pci_config_window *pci_ecam_create(struct device *dev,
}
if (per_bus_mapping) {
- cfg->winp = kcalloc(bus_range, sizeof(*cfg->winp), GFP_KERNEL);
+ cfg->winp = kzalloc_objs(*cfg->winp, bus_range, GFP_KERNEL);
if (!cfg->winp)
goto err_exit_malloc;
} else {
diff --git a/drivers/pci/endpoint/functions/pci-epf-mhi.c b/drivers/pci/endpoint/functions/pci-epf-mhi.c
index 27de533f0571..ccee5c6b6ad7 100644
--- a/drivers/pci/endpoint/functions/pci-epf-mhi.c
+++ b/drivers/pci/endpoint/functions/pci-epf-mhi.c
@@ -525,7 +525,7 @@ static int pci_epf_mhi_edma_read_async(struct mhi_ep_cntrl *mhi_cntrl,
goto err_unmap;
}
- transfer = kzalloc(sizeof(*transfer), GFP_KERNEL);
+ transfer = kzalloc_obj(*transfer, GFP_KERNEL);
if (!transfer) {
ret = -ENOMEM;
goto err_unmap;
@@ -604,7 +604,7 @@ static int pci_epf_mhi_edma_write_async(struct mhi_ep_cntrl *mhi_cntrl,
goto err_unmap;
}
- transfer = kzalloc(sizeof(*transfer), GFP_KERNEL);
+ transfer = kzalloc_obj(*transfer, GFP_KERNEL);
if (!transfer) {
ret = -ENOMEM;
goto err_unmap;
diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/endpoint/functions/pci-epf-test.c
index 0cb7af0919dc..69f6ac37cdd0 100644
--- a/drivers/pci/endpoint/functions/pci-epf-test.c
+++ b/drivers/pci/endpoint/functions/pci-epf-test.c
@@ -872,7 +872,7 @@ static void pci_epf_test_bar_subrange_setup(struct pci_epf_test *epf_test,
sub_size = bar->size / nsub;
- submap = kcalloc(nsub, sizeof(*submap), GFP_KERNEL);
+ submap = kzalloc_objs(*submap, nsub, GFP_KERNEL);
if (!submap)
goto err;
diff --git a/drivers/pci/endpoint/pci-ep-cfs.c b/drivers/pci/endpoint/pci-ep-cfs.c
index 8b392a8363bb..6c14cf85d336 100644
--- a/drivers/pci/endpoint/pci-ep-cfs.c
+++ b/drivers/pci/endpoint/pci-ep-cfs.c
@@ -274,7 +274,7 @@ struct config_group *pci_ep_cfs_add_epc_group(const char *name)
struct config_group *group;
struct pci_epc_group *epc_group;
- epc_group = kzalloc(sizeof(*epc_group), GFP_KERNEL);
+ epc_group = kzalloc_obj(*epc_group, GFP_KERNEL);
if (!epc_group) {
ret = -ENOMEM;
goto err;
@@ -599,7 +599,7 @@ static struct config_group *pci_epf_make(struct config_group *group,
char *epf_name;
int index, err;
- epf_group = kzalloc(sizeof(*epf_group), GFP_KERNEL);
+ epf_group = kzalloc_obj(*epf_group, GFP_KERNEL);
if (!epf_group)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/pci/endpoint/pci-ep-msi.c b/drivers/pci/endpoint/pci-ep-msi.c
index 1b58357b905f..4625dc9827bc 100644
--- a/drivers/pci/endpoint/pci-ep-msi.c
+++ b/drivers/pci/endpoint/pci-ep-msi.c
@@ -67,7 +67,7 @@ int pci_epf_alloc_doorbell(struct pci_epf *epf, u16 num_db)
dev_set_msi_domain(epc->dev.parent, domain);
- msg = kcalloc(num_db, sizeof(struct pci_epf_doorbell_msg), GFP_KERNEL);
+ msg = kzalloc_objs(struct pci_epf_doorbell_msg, num_db, GFP_KERNEL);
if (!msg)
return -ENOMEM;
diff --git a/drivers/pci/endpoint/pci-epc-core.c b/drivers/pci/endpoint/pci-epc-core.c
index 068155819c57..d6998e637d3c 100644
--- a/drivers/pci/endpoint/pci-epc-core.c
+++ b/drivers/pci/endpoint/pci-epc-core.c
@@ -982,7 +982,7 @@ __pci_epc_create(struct device *dev, const struct pci_epc_ops *ops,
goto err_ret;
}
- epc = kzalloc(sizeof(*epc), GFP_KERNEL);
+ epc = kzalloc_obj(*epc, GFP_KERNEL);
if (!epc) {
ret = -ENOMEM;
goto err_ret;
diff --git a/drivers/pci/endpoint/pci-epc-mem.c b/drivers/pci/endpoint/pci-epc-mem.c
index 218a60e945db..a3b5f8d1767c 100644
--- a/drivers/pci/endpoint/pci-epc-mem.c
+++ b/drivers/pci/endpoint/pci-epc-mem.c
@@ -62,7 +62,7 @@ int pci_epc_multi_mem_init(struct pci_epc *epc,
if (!windows || !num_windows)
return -EINVAL;
- epc->windows = kcalloc(num_windows, sizeof(*epc->windows), GFP_KERNEL);
+ epc->windows = kzalloc_objs(*epc->windows, num_windows, GFP_KERNEL);
if (!epc->windows)
return -ENOMEM;
@@ -74,7 +74,7 @@ int pci_epc_multi_mem_init(struct pci_epc *epc,
pages = windows[i].size >> page_shift;
bitmap_size = BITS_TO_LONGS(pages) * sizeof(long);
- mem = kzalloc(sizeof(*mem), GFP_KERNEL);
+ mem = kzalloc_obj(*mem, GFP_KERNEL);
if (!mem) {
ret = -ENOMEM;
i--;
diff --git a/drivers/pci/endpoint/pci-epf-core.c b/drivers/pci/endpoint/pci-epf-core.c
index 9a505c796370..c44f4ddfd60b 100644
--- a/drivers/pci/endpoint/pci-epf-core.c
+++ b/drivers/pci/endpoint/pci-epf-core.c
@@ -535,7 +535,7 @@ struct pci_epf *pci_epf_create(const char *name)
struct device *dev;
int len;
- epf = kzalloc(sizeof(*epf), GFP_KERNEL);
+ epf = kzalloc_obj(*epf, GFP_KERNEL);
if (!epf)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/pci/hotplug/acpiphp_core.c b/drivers/pci/hotplug/acpiphp_core.c
index 9dad14e80bcf..051af60f999a 100644
--- a/drivers/pci/hotplug/acpiphp_core.c
+++ b/drivers/pci/hotplug/acpiphp_core.c
@@ -260,7 +260,7 @@ int acpiphp_register_hotplug_slot(struct acpiphp_slot *acpiphp_slot,
int retval = -ENOMEM;
char name[SLOT_NAME_SIZE];
- slot = kzalloc(sizeof(*slot), GFP_KERNEL);
+ slot = kzalloc_obj(*slot, GFP_KERNEL);
if (!slot)
goto error;
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index 5b1f271c6034..55620e29b457 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -60,7 +60,7 @@ static struct acpiphp_context *acpiphp_init_context(struct acpi_device *adev)
{
struct acpiphp_context *context;
- context = kzalloc(sizeof(*context), GFP_KERNEL);
+ context = kzalloc_obj(*context, GFP_KERNEL);
if (!context)
return NULL;
@@ -279,7 +279,7 @@ static acpi_status acpiphp_add_context(acpi_handle handle, u32 lvl, void *data,
if (slot->device == device)
goto slot_found;
- slot = kzalloc(sizeof(struct acpiphp_slot), GFP_KERNEL);
+ slot = kzalloc_obj(struct acpiphp_slot, GFP_KERNEL);
if (!slot) {
acpi_lock_hp_context();
acpiphp_put_context(context);
@@ -869,7 +869,7 @@ void acpiphp_enumerate_slots(struct pci_bus *bus)
return;
handle = adev->handle;
- bridge = kzalloc(sizeof(struct acpiphp_bridge), GFP_KERNEL);
+ bridge = kzalloc_obj(struct acpiphp_bridge, GFP_KERNEL);
if (!bridge)
return;
@@ -889,7 +889,7 @@ void acpiphp_enumerate_slots(struct pci_bus *bus)
if (pci_is_root_bus(bridge->pci_bus)) {
struct acpiphp_root_context *root_context;
- root_context = kzalloc(sizeof(*root_context), GFP_KERNEL);
+ root_context = kzalloc_obj(*root_context, GFP_KERNEL);
if (!root_context)
goto err;
diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c
index 18e01cd55a8e..f86e39e9dd68 100644
--- a/drivers/pci/hotplug/acpiphp_ibm.c
+++ b/drivers/pci/hotplug/acpiphp_ibm.c
@@ -141,7 +141,7 @@ static union apci_descriptor *ibm_slot_from_id(int id)
ibm_slot_done:
if (ret) {
- ret = kmalloc(sizeof(union apci_descriptor), GFP_KERNEL);
+ ret = kmalloc_obj(union apci_descriptor, GFP_KERNEL);
if (ret)
memcpy(ret, des, sizeof(union apci_descriptor));
}
diff --git a/drivers/pci/hotplug/cpci_hotplug_core.c b/drivers/pci/hotplug/cpci_hotplug_core.c
index dd93e53ea7c2..50793ca10526 100644
--- a/drivers/pci/hotplug/cpci_hotplug_core.c
+++ b/drivers/pci/hotplug/cpci_hotplug_core.c
@@ -189,7 +189,7 @@ cpci_hp_register_bus(struct pci_bus *bus, u8 first, u8 last)
* with the pci_hotplug subsystem.
*/
for (i = first; i <= last; ++i) {
- slot = kzalloc(sizeof(struct slot), GFP_KERNEL);
+ slot = kzalloc_obj(struct slot, GFP_KERNEL);
if (!slot) {
status = -ENOMEM;
goto error;
diff --git a/drivers/pci/hotplug/cpqphp_core.c b/drivers/pci/hotplug/cpqphp_core.c
index 47a3ed16159a..158859352185 100644
--- a/drivers/pci/hotplug/cpqphp_core.c
+++ b/drivers/pci/hotplug/cpqphp_core.c
@@ -593,7 +593,7 @@ static int ctrl_slot_setup(struct controller *ctrl,
slot_number = ctrl->first_slot;
while (number_of_slots) {
- slot = kzalloc(sizeof(*slot), GFP_KERNEL);
+ slot = kzalloc_obj(*slot, GFP_KERNEL);
if (!slot) {
result = -ENOMEM;
goto error;
@@ -822,7 +822,7 @@ static int cpqhpc_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
goto err_disable_device;
}
- ctrl = kzalloc(sizeof(struct controller), GFP_KERNEL);
+ ctrl = kzalloc_obj(struct controller, GFP_KERNEL);
if (!ctrl) {
rc = -ENOMEM;
goto err_disable_device;
diff --git a/drivers/pci/hotplug/cpqphp_ctrl.c b/drivers/pci/hotplug/cpqphp_ctrl.c
index 760a5dec0431..2c63bdc61306 100644
--- a/drivers/pci/hotplug/cpqphp_ctrl.c
+++ b/drivers/pci/hotplug/cpqphp_ctrl.c
@@ -428,7 +428,7 @@ static struct pci_resource *do_pre_bridge_resource_split(struct pci_resource **h
/* this one isn't an aligned length, so we'll make a new entry
* and split it up.
*/
- split_node = kmalloc(sizeof(*split_node), GFP_KERNEL);
+ split_node = kmalloc_obj(*split_node, GFP_KERNEL);
if (!split_node)
return NULL;
@@ -553,7 +553,7 @@ static struct pci_resource *get_io_resource(struct pci_resource **head, u32 size
if ((node->length - (temp_dword - node->base)) < size)
continue;
- split_node = kmalloc(sizeof(*split_node), GFP_KERNEL);
+ split_node = kmalloc_obj(*split_node, GFP_KERNEL);
if (!split_node)
return NULL;
@@ -573,7 +573,7 @@ static struct pci_resource *get_io_resource(struct pci_resource **head, u32 size
/* this one is longer than we need
* so we'll make a new entry and split it up
*/
- split_node = kmalloc(sizeof(*split_node), GFP_KERNEL);
+ split_node = kmalloc_obj(*split_node, GFP_KERNEL);
if (!split_node)
return NULL;
@@ -650,7 +650,7 @@ static struct pci_resource *get_max_resource(struct pci_resource **head, u32 siz
if ((max->length - (temp_dword - max->base)) < size)
continue;
- split_node = kmalloc(sizeof(*split_node), GFP_KERNEL);
+ split_node = kmalloc_obj(*split_node, GFP_KERNEL);
if (!split_node)
return NULL;
@@ -668,7 +668,7 @@ static struct pci_resource *get_max_resource(struct pci_resource **head, u32 siz
/* this one isn't end aligned properly at the top
* so we'll make a new entry and split it up
*/
- split_node = kmalloc(sizeof(*split_node), GFP_KERNEL);
+ split_node = kmalloc_obj(*split_node, GFP_KERNEL);
if (!split_node)
return NULL;
@@ -747,7 +747,7 @@ static struct pci_resource *get_resource(struct pci_resource **head, u32 size)
if ((node->length - (temp_dword - node->base)) < size)
continue;
- split_node = kmalloc(sizeof(*split_node), GFP_KERNEL);
+ split_node = kmalloc_obj(*split_node, GFP_KERNEL);
if (!split_node)
return NULL;
@@ -767,7 +767,7 @@ static struct pci_resource *get_resource(struct pci_resource **head, u32 size)
/* this one is longer than we need
* so we'll make a new entry and split it up
*/
- split_node = kmalloc(sizeof(*split_node), GFP_KERNEL);
+ split_node = kmalloc_obj(*split_node, GFP_KERNEL);
if (!split_node)
return NULL;
@@ -955,7 +955,7 @@ struct pci_func *cpqhp_slot_create(u8 busnumber)
struct pci_func *new_slot;
struct pci_func *next;
- new_slot = kzalloc(sizeof(*new_slot), GFP_KERNEL);
+ new_slot = kzalloc_obj(*new_slot, GFP_KERNEL);
if (new_slot == NULL)
return new_slot;
@@ -2435,10 +2435,10 @@ static int configure_new_function(struct controller *ctrl, struct pci_func *func
/* Make copies of the nodes we are going to pass down so that
* if there is a problem,we can just use these to free resources
*/
- hold_bus_node = kmalloc(sizeof(*hold_bus_node), GFP_KERNEL);
- hold_IO_node = kmalloc(sizeof(*hold_IO_node), GFP_KERNEL);
- hold_mem_node = kmalloc(sizeof(*hold_mem_node), GFP_KERNEL);
- hold_p_mem_node = kmalloc(sizeof(*hold_p_mem_node), GFP_KERNEL);
+ hold_bus_node = kmalloc_obj(*hold_bus_node, GFP_KERNEL);
+ hold_IO_node = kmalloc_obj(*hold_IO_node, GFP_KERNEL);
+ hold_mem_node = kmalloc_obj(*hold_mem_node, GFP_KERNEL);
+ hold_p_mem_node = kmalloc_obj(*hold_p_mem_node, GFP_KERNEL);
if (!hold_bus_node || !hold_IO_node || !hold_mem_node || !hold_p_mem_node) {
kfree(hold_bus_node);
diff --git a/drivers/pci/hotplug/cpqphp_nvram.c b/drivers/pci/hotplug/cpqphp_nvram.c
index 7a65d427ac11..83c97f72ca3b 100644
--- a/drivers/pci/hotplug/cpqphp_nvram.c
+++ b/drivers/pci/hotplug/cpqphp_nvram.c
@@ -504,7 +504,7 @@ int compaq_nvram_load(void __iomem *rom_start, struct controller *ctrl)
return 2;
while (nummem--) {
- mem_node = kmalloc(sizeof(struct pci_resource), GFP_KERNEL);
+ mem_node = kmalloc_obj(struct pci_resource, GFP_KERNEL);
if (!mem_node)
break;
@@ -532,7 +532,8 @@ int compaq_nvram_load(void __iomem *rom_start, struct controller *ctrl)
}
while (numpmem--) {
- p_mem_node = kmalloc(sizeof(struct pci_resource), GFP_KERNEL);
+ p_mem_node = kmalloc_obj(struct pci_resource,
+ GFP_KERNEL);
if (!p_mem_node)
break;
@@ -560,7 +561,7 @@ int compaq_nvram_load(void __iomem *rom_start, struct controller *ctrl)
}
while (numio--) {
- io_node = kmalloc(sizeof(struct pci_resource), GFP_KERNEL);
+ io_node = kmalloc_obj(struct pci_resource, GFP_KERNEL);
if (!io_node)
break;
@@ -588,7 +589,7 @@ int compaq_nvram_load(void __iomem *rom_start, struct controller *ctrl)
}
while (numbus--) {
- bus_node = kmalloc(sizeof(struct pci_resource), GFP_KERNEL);
+ bus_node = kmalloc_obj(struct pci_resource, GFP_KERNEL);
if (!bus_node)
break;
diff --git a/drivers/pci/hotplug/cpqphp_pci.c b/drivers/pci/hotplug/cpqphp_pci.c
index 88929360fe77..03e2391f6786 100644
--- a/drivers/pci/hotplug/cpqphp_pci.c
+++ b/drivers/pci/hotplug/cpqphp_pci.c
@@ -151,8 +151,8 @@ int cpqhp_set_irq(u8 bus_num, u8 dev_num, u8 int_pin, u8 irq_num)
struct pci_bus *fakebus;
u16 temp_word;
- fakedev = kmalloc(sizeof(*fakedev), GFP_KERNEL);
- fakebus = kmalloc(sizeof(*fakebus), GFP_KERNEL);
+ fakedev = kmalloc_obj(*fakedev, GFP_KERNEL);
+ fakebus = kmalloc_obj(*fakebus, GFP_KERNEL);
if (!fakedev || !fakebus) {
kfree(fakedev);
kfree(fakebus);
@@ -721,7 +721,7 @@ int cpqhp_save_used_resources(struct controller *ctrl, struct pci_func *func)
pci_bus_read_config_byte(pci_bus, devfn, PCI_SECONDARY_BUS, &secondary_bus);
pci_bus_read_config_byte(pci_bus, devfn, PCI_SUBORDINATE_BUS, &temp_byte);
- bus_node = kmalloc(sizeof(*bus_node), GFP_KERNEL);
+ bus_node = kmalloc_obj(*bus_node, GFP_KERNEL);
if (!bus_node)
return -ENOMEM;
@@ -736,7 +736,7 @@ int cpqhp_save_used_resources(struct controller *ctrl, struct pci_func *func)
pci_bus_read_config_byte(pci_bus, devfn, PCI_IO_LIMIT, &b_length);
if ((b_base <= b_length) && (save_command & 0x01)) {
- io_node = kmalloc(sizeof(*io_node), GFP_KERNEL);
+ io_node = kmalloc_obj(*io_node, GFP_KERNEL);
if (!io_node)
return -ENOMEM;
@@ -752,7 +752,7 @@ int cpqhp_save_used_resources(struct controller *ctrl, struct pci_func *func)
pci_bus_read_config_word(pci_bus, devfn, PCI_MEMORY_LIMIT, &w_length);
if ((w_base <= w_length) && (save_command & 0x02)) {
- mem_node = kmalloc(sizeof(*mem_node), GFP_KERNEL);
+ mem_node = kmalloc_obj(*mem_node, GFP_KERNEL);
if (!mem_node)
return -ENOMEM;
@@ -768,7 +768,8 @@ int cpqhp_save_used_resources(struct controller *ctrl, struct pci_func *func)
pci_bus_read_config_word(pci_bus, devfn, PCI_PREF_MEMORY_LIMIT, &w_length);
if ((w_base <= w_length) && (save_command & 0x02)) {
- p_mem_node = kmalloc(sizeof(*p_mem_node), GFP_KERNEL);
+ p_mem_node = kmalloc_obj(*p_mem_node,
+ GFP_KERNEL);
if (!p_mem_node)
return -ENOMEM;
@@ -799,8 +800,8 @@ int cpqhp_save_used_resources(struct controller *ctrl, struct pci_func *func)
temp_register = base & 0xFFFFFFFE;
temp_register = (~temp_register) + 1;
- io_node = kmalloc(sizeof(*io_node),
- GFP_KERNEL);
+ io_node = kmalloc_obj(*io_node,
+ GFP_KERNEL);
if (!io_node)
return -ENOMEM;
@@ -817,8 +818,8 @@ int cpqhp_save_used_resources(struct controller *ctrl, struct pci_func *func)
temp_register = base & 0xFFFFFFF0;
temp_register = (~temp_register) + 1;
- p_mem_node = kmalloc(sizeof(*p_mem_node),
- GFP_KERNEL);
+ p_mem_node = kmalloc_obj(*p_mem_node,
+ GFP_KERNEL);
if (!p_mem_node)
return -ENOMEM;
@@ -834,8 +835,8 @@ int cpqhp_save_used_resources(struct controller *ctrl, struct pci_func *func)
temp_register = base & 0xFFFFFFF0;
temp_register = (~temp_register) + 1;
- mem_node = kmalloc(sizeof(*mem_node),
- GFP_KERNEL);
+ mem_node = kmalloc_obj(*mem_node,
+ GFP_KERNEL);
if (!mem_node)
return -ENOMEM;
@@ -871,8 +872,8 @@ int cpqhp_save_used_resources(struct controller *ctrl, struct pci_func *func)
temp_register = base & 0xFFFFFFFE;
temp_register = (~temp_register) + 1;
- io_node = kmalloc(sizeof(*io_node),
- GFP_KERNEL);
+ io_node = kmalloc_obj(*io_node,
+ GFP_KERNEL);
if (!io_node)
return -ENOMEM;
@@ -888,8 +889,8 @@ int cpqhp_save_used_resources(struct controller *ctrl, struct pci_func *func)
temp_register = base & 0xFFFFFFF0;
temp_register = (~temp_register) + 1;
- p_mem_node = kmalloc(sizeof(*p_mem_node),
- GFP_KERNEL);
+ p_mem_node = kmalloc_obj(*p_mem_node,
+ GFP_KERNEL);
if (!p_mem_node)
return -ENOMEM;
@@ -905,8 +906,8 @@ int cpqhp_save_used_resources(struct controller *ctrl, struct pci_func *func)
temp_register = base & 0xFFFFFFF0;
temp_register = (~temp_register) + 1;
- mem_node = kmalloc(sizeof(*mem_node),
- GFP_KERNEL);
+ mem_node = kmalloc_obj(*mem_node,
+ GFP_KERNEL);
if (!mem_node)
return -ENOMEM;
@@ -1293,7 +1294,7 @@ int cpqhp_find_available_resources(struct controller *ctrl, void __iomem *rom_st
temp_dword = io_base + io_length;
if ((io_base) && (temp_dword < 0x10000)) {
- io_node = kmalloc(sizeof(*io_node), GFP_KERNEL);
+ io_node = kmalloc_obj(*io_node, GFP_KERNEL);
if (!io_node)
return -ENOMEM;
@@ -1315,7 +1316,7 @@ int cpqhp_find_available_resources(struct controller *ctrl, void __iomem *rom_st
/* If we've got a valid memory base, use it */
temp_dword = mem_base + mem_length;
if ((mem_base) && (temp_dword < 0x10000)) {
- mem_node = kmalloc(sizeof(*mem_node), GFP_KERNEL);
+ mem_node = kmalloc_obj(*mem_node, GFP_KERNEL);
if (!mem_node)
return -ENOMEM;
@@ -1340,7 +1341,7 @@ int cpqhp_find_available_resources(struct controller *ctrl, void __iomem *rom_st
*/
temp_dword = pre_mem_base + pre_mem_length;
if ((pre_mem_base) && (temp_dword < 0x10000)) {
- p_mem_node = kmalloc(sizeof(*p_mem_node), GFP_KERNEL);
+ p_mem_node = kmalloc_obj(*p_mem_node, GFP_KERNEL);
if (!p_mem_node)
return -ENOMEM;
@@ -1365,7 +1366,7 @@ int cpqhp_find_available_resources(struct controller *ctrl, void __iomem *rom_st
* populated slots that don't have PCI-PCI bridges
*/
if (secondary_bus && (secondary_bus != primary_bus)) {
- bus_node = kmalloc(sizeof(*bus_node), GFP_KERNEL);
+ bus_node = kmalloc_obj(*bus_node, GFP_KERNEL);
if (!bus_node)
return -ENOMEM;
diff --git a/drivers/pci/hotplug/cpqphp_sysfs.c b/drivers/pci/hotplug/cpqphp_sysfs.c
index 6143ebf71f21..055fff069ce3 100644
--- a/drivers/pci/hotplug/cpqphp_sysfs.c
+++ b/drivers/pci/hotplug/cpqphp_sysfs.c
@@ -134,7 +134,7 @@ static int open(struct inode *inode, struct file *file)
int retval = -ENOMEM;
mutex_lock(&cpqphp_mutex);
- dbg = kmalloc(sizeof(*dbg), GFP_KERNEL);
+ dbg = kmalloc_obj(*dbg, GFP_KERNEL);
if (!dbg)
goto exit;
dbg->data = kmalloc(MAX_OUTPUT, GFP_KERNEL);
diff --git a/drivers/pci/hotplug/ibmphp_core.c b/drivers/pci/hotplug/ibmphp_core.c
index 197997e264a2..af4e8b032093 100644
--- a/drivers/pci/hotplug/ibmphp_core.c
+++ b/drivers/pci/hotplug/ibmphp_core.c
@@ -624,11 +624,11 @@ static u8 bus_structure_fixup(u8 busno)
if (pci_find_bus(0, busno) || !(ibmphp_find_same_bus_num(busno)))
return 1;
- bus = kmalloc(sizeof(*bus), GFP_KERNEL);
+ bus = kmalloc_obj(*bus, GFP_KERNEL);
if (!bus)
return 1;
- dev = kmalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kmalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
kfree(bus);
return 1;
@@ -986,7 +986,7 @@ static int enable_slot(struct hotplug_slot *hs)
goto error_power;
}
- slot_cur->func = kzalloc(sizeof(struct pci_func), GFP_KERNEL);
+ slot_cur->func = kzalloc_obj(struct pci_func, GFP_KERNEL);
if (!slot_cur->func) {
/* do update_slot_info here? */
rc = -ENOMEM;
@@ -1093,7 +1093,7 @@ int ibmphp_do_disable_slot(struct slot *slot_cur)
if (slot_cur->func == NULL) {
/* We need this for functions that were there on bootup */
- slot_cur->func = kzalloc(sizeof(struct pci_func), GFP_KERNEL);
+ slot_cur->func = kzalloc_obj(struct pci_func, GFP_KERNEL);
if (!slot_cur->func) {
rc = -ENOMEM;
goto error;
@@ -1187,7 +1187,7 @@ static int __init ibmphp_init(void)
info(DRIVER_DESC " version: " DRIVER_VERSION "\n");
- ibmphp_pci_bus = kmalloc(sizeof(*ibmphp_pci_bus), GFP_KERNEL);
+ ibmphp_pci_bus = kmalloc_obj(*ibmphp_pci_bus, GFP_KERNEL);
if (!ibmphp_pci_bus) {
rc = -ENOMEM;
goto exit;
diff --git a/drivers/pci/hotplug/ibmphp_ebda.c b/drivers/pci/hotplug/ibmphp_ebda.c
index 7fb75401ad8a..bfd9f11c2d39 100644
--- a/drivers/pci/hotplug/ibmphp_ebda.c
+++ b/drivers/pci/hotplug/ibmphp_ebda.c
@@ -57,7 +57,7 @@ static int ebda_rio_table(void);
static struct ebda_hpc_list * __init alloc_ebda_hpc_list(void)
{
- return kzalloc(sizeof(struct ebda_hpc_list), GFP_KERNEL);
+ return kzalloc_obj(struct ebda_hpc_list, GFP_KERNEL);
}
static struct controller *alloc_ebda_hpc(u32 slot_count, u32 bus_count)
@@ -66,16 +66,16 @@ static struct controller *alloc_ebda_hpc(u32 slot_count, u32 bus_count)
struct ebda_hpc_slot *slots;
struct ebda_hpc_bus *buses;
- controller = kzalloc(sizeof(struct controller), GFP_KERNEL);
+ controller = kzalloc_obj(struct controller, GFP_KERNEL);
if (!controller)
goto error;
- slots = kcalloc(slot_count, sizeof(struct ebda_hpc_slot), GFP_KERNEL);
+ slots = kzalloc_objs(struct ebda_hpc_slot, slot_count, GFP_KERNEL);
if (!slots)
goto error_contr;
controller->slots = slots;
- buses = kcalloc(bus_count, sizeof(struct ebda_hpc_bus), GFP_KERNEL);
+ buses = kzalloc_objs(struct ebda_hpc_bus, bus_count, GFP_KERNEL);
if (!buses)
goto error_slots;
controller->buses = buses;
@@ -98,12 +98,12 @@ static void free_ebda_hpc(struct controller *controller)
static struct ebda_rsrc_list * __init alloc_ebda_rsrc_list(void)
{
- return kzalloc(sizeof(struct ebda_rsrc_list), GFP_KERNEL);
+ return kzalloc_obj(struct ebda_rsrc_list, GFP_KERNEL);
}
static struct ebda_pci_rsrc *alloc_ebda_pci_rsrc(void)
{
- return kzalloc(sizeof(struct ebda_pci_rsrc), GFP_KERNEL);
+ return kzalloc_obj(struct ebda_pci_rsrc, GFP_KERNEL);
}
static void __init print_bus_info(void)
@@ -352,7 +352,8 @@ int __init ibmphp_access_ebda(void)
debug("now enter io table ---\n");
debug("rio blk id: %x\n", blk_id);
- rio_table_ptr = kzalloc(sizeof(struct rio_table_hdr), GFP_KERNEL);
+ rio_table_ptr = kzalloc_obj(struct rio_table_hdr,
+ GFP_KERNEL);
if (!rio_table_ptr) {
rc = -ENOMEM;
goto out;
@@ -408,7 +409,7 @@ static int __init ebda_rio_table(void)
// we do concern about rio details
for (i = 0; i < rio_table_ptr->riodev_count; i++) {
- rio_detail_ptr = kzalloc(sizeof(struct rio_detail), GFP_KERNEL);
+ rio_detail_ptr = kzalloc_obj(struct rio_detail, GFP_KERNEL);
if (!rio_detail_ptr)
return -ENOMEM;
rio_detail_ptr->rio_node_id = readb(io_mem + offset);
@@ -461,7 +462,7 @@ static int __init combine_wpg_for_chassis(void)
list_for_each_entry(rio_detail_ptr, &rio_vg_head, rio_detail_list) {
opt_rio_ptr = search_opt_vg(rio_detail_ptr->chassis_num);
if (!opt_rio_ptr) {
- opt_rio_ptr = kzalloc(sizeof(struct opt_rio), GFP_KERNEL);
+ opt_rio_ptr = kzalloc_obj(struct opt_rio, GFP_KERNEL);
if (!opt_rio_ptr)
return -ENOMEM;
opt_rio_ptr->rio_type = rio_detail_ptr->rio_type;
@@ -499,7 +500,8 @@ static int combine_wpg_for_expansion(void)
list_for_each_entry(rio_detail_ptr, &rio_lo_head, rio_detail_list) {
opt_rio_lo_ptr = search_opt_lo(rio_detail_ptr->chassis_num);
if (!opt_rio_lo_ptr) {
- opt_rio_lo_ptr = kzalloc(sizeof(struct opt_rio_lo), GFP_KERNEL);
+ opt_rio_lo_ptr = kzalloc_obj(struct opt_rio_lo,
+ GFP_KERNEL);
if (!opt_rio_lo_ptr)
return -ENOMEM;
opt_rio_lo_ptr->rio_type = rio_detail_ptr->rio_type;
@@ -738,7 +740,8 @@ static int __init ebda_rsrc_controller(void)
bus_info_ptr2 = ibmphp_find_same_bus_num(slot_ptr->slot_bus_num);
if (!bus_info_ptr2) {
- bus_info_ptr1 = kzalloc(sizeof(struct bus_info), GFP_KERNEL);
+ bus_info_ptr1 = kzalloc_obj(struct bus_info,
+ GFP_KERNEL);
if (!bus_info_ptr1) {
rc = -ENOMEM;
goto error_no_slot;
@@ -840,7 +843,7 @@ static int __init ebda_rsrc_controller(void)
// register slots with hpc core as well as create linked list of ibm slot
for (index = 0; index < hpc_ptr->slot_count; index++) {
- tmp_slot = kzalloc(sizeof(*tmp_slot), GFP_KERNEL);
+ tmp_slot = kzalloc_obj(*tmp_slot, GFP_KERNEL);
if (!tmp_slot) {
rc = -ENOMEM;
goto error_no_slot;
diff --git a/drivers/pci/hotplug/ibmphp_pci.c b/drivers/pci/hotplug/ibmphp_pci.c
index eeb412cbd9fe..f1ec9ada9faa 100644
--- a/drivers/pci/hotplug/ibmphp_pci.c
+++ b/drivers/pci/hotplug/ibmphp_pci.c
@@ -152,7 +152,8 @@ int ibmphp_configure_card(struct pci_func *func, u8 slotno)
cleanup_count = 6;
goto error;
}
- newfunc = kzalloc(sizeof(*newfunc), GFP_KERNEL);
+ newfunc = kzalloc_obj(*newfunc,
+ GFP_KERNEL);
if (!newfunc)
return -ENOMEM;
@@ -189,7 +190,8 @@ int ibmphp_configure_card(struct pci_func *func, u8 slotno)
flag = 0;
for (i = 0; i < 32; i++) {
if (func->devices[i]) {
- newfunc = kzalloc(sizeof(*newfunc), GFP_KERNEL);
+ newfunc = kzalloc_obj(*newfunc,
+ GFP_KERNEL);
if (!newfunc)
return -ENOMEM;
@@ -216,7 +218,8 @@ int ibmphp_configure_card(struct pci_func *func, u8 slotno)
}
}
- newfunc = kzalloc(sizeof(*newfunc), GFP_KERNEL);
+ newfunc = kzalloc_obj(*newfunc,
+ GFP_KERNEL);
if (!newfunc)
return -ENOMEM;
@@ -261,7 +264,8 @@ int ibmphp_configure_card(struct pci_func *func, u8 slotno)
for (i = 0; i < 32; i++) {
if (func->devices[i]) {
debug("inside for loop, device is %x\n", i);
- newfunc = kzalloc(sizeof(*newfunc), GFP_KERNEL);
+ newfunc = kzalloc_obj(*newfunc,
+ GFP_KERNEL);
if (!newfunc)
return -ENOMEM;
@@ -384,7 +388,8 @@ static int configure_device(struct pci_func *func)
debug("len[count] in IO %x, count %d\n", len[count], count);
- io[count] = kzalloc(sizeof(struct resource_node), GFP_KERNEL);
+ io[count] = kzalloc_obj(struct resource_node,
+ GFP_KERNEL);
if (!io[count])
return -ENOMEM;
@@ -421,7 +426,8 @@ static int configure_device(struct pci_func *func)
debug("len[count] in PFMEM %x, count %d\n", len[count], count);
- pfmem[count] = kzalloc(sizeof(struct resource_node), GFP_KERNEL);
+ pfmem[count] = kzalloc_obj(struct resource_node,
+ GFP_KERNEL);
if (!pfmem[count])
return -ENOMEM;
@@ -435,7 +441,8 @@ static int configure_device(struct pci_func *func)
ibmphp_add_resource(pfmem[count]);
func->pfmem[count] = pfmem[count];
} else {
- mem_tmp = kzalloc(sizeof(*mem_tmp), GFP_KERNEL);
+ mem_tmp = kzalloc_obj(*mem_tmp,
+ GFP_KERNEL);
if (!mem_tmp) {
kfree(pfmem[count]);
return -ENOMEM;
@@ -485,7 +492,8 @@ static int configure_device(struct pci_func *func)
debug("len[count] in Mem %x, count %d\n", len[count], count);
- mem[count] = kzalloc(sizeof(struct resource_node), GFP_KERNEL);
+ mem[count] = kzalloc_obj(struct resource_node,
+ GFP_KERNEL);
if (!mem[count])
return -ENOMEM;
@@ -648,7 +656,8 @@ static int configure_bridge(struct pci_func **func_passed, u8 slotno)
debug("len[count] in IO = %x\n", len[count]);
- bus_io[count] = kzalloc(sizeof(struct resource_node), GFP_KERNEL);
+ bus_io[count] = kzalloc_obj(struct resource_node,
+ GFP_KERNEL);
if (!bus_io[count]) {
retval = -ENOMEM;
@@ -680,7 +689,8 @@ static int configure_bridge(struct pci_func **func_passed, u8 slotno)
debug("len[count] in PFMEM = %x\n", len[count]);
- bus_pfmem[count] = kzalloc(sizeof(struct resource_node), GFP_KERNEL);
+ bus_pfmem[count] = kzalloc_obj(struct resource_node,
+ GFP_KERNEL);
if (!bus_pfmem[count]) {
retval = -ENOMEM;
goto error;
@@ -695,7 +705,8 @@ static int configure_bridge(struct pci_func **func_passed, u8 slotno)
ibmphp_add_resource(bus_pfmem[count]);
func->pfmem[count] = bus_pfmem[count];
} else {
- mem_tmp = kzalloc(sizeof(*mem_tmp), GFP_KERNEL);
+ mem_tmp = kzalloc_obj(*mem_tmp,
+ GFP_KERNEL);
if (!mem_tmp) {
retval = -ENOMEM;
goto error;
@@ -735,7 +746,8 @@ static int configure_bridge(struct pci_func **func_passed, u8 slotno)
debug("len[count] in Memory is %x\n", len[count]);
- bus_mem[count] = kzalloc(sizeof(struct resource_node), GFP_KERNEL);
+ bus_mem[count] = kzalloc_obj(struct resource_node,
+ GFP_KERNEL);
if (!bus_mem[count]) {
retval = -ENOMEM;
goto error;
@@ -804,7 +816,7 @@ static int configure_bridge(struct pci_func **func_passed, u8 slotno)
flag_io = 1;
} else {
debug("it wants %x IO behind the bridge\n", amount_needed->io);
- io = kzalloc(sizeof(*io), GFP_KERNEL);
+ io = kzalloc_obj(*io, GFP_KERNEL);
if (!io) {
retval = -ENOMEM;
@@ -826,7 +838,7 @@ static int configure_bridge(struct pci_func **func_passed, u8 slotno)
flag_mem = 1;
} else {
debug("it wants %x memory behind the bridge\n", amount_needed->mem);
- mem = kzalloc(sizeof(*mem), GFP_KERNEL);
+ mem = kzalloc_obj(*mem, GFP_KERNEL);
if (!mem) {
retval = -ENOMEM;
goto error;
@@ -847,7 +859,7 @@ static int configure_bridge(struct pci_func **func_passed, u8 slotno)
flag_pfmem = 1;
} else {
debug("it wants %x pfmemory behind the bridge\n", amount_needed->pfmem);
- pfmem = kzalloc(sizeof(*pfmem), GFP_KERNEL);
+ pfmem = kzalloc_obj(*pfmem, GFP_KERNEL);
if (!pfmem) {
retval = -ENOMEM;
goto error;
@@ -861,7 +873,7 @@ static int configure_bridge(struct pci_func **func_passed, u8 slotno)
ibmphp_add_resource(pfmem);
flag_pfmem = 1;
} else {
- mem_tmp = kzalloc(sizeof(*mem_tmp), GFP_KERNEL);
+ mem_tmp = kzalloc_obj(*mem_tmp, GFP_KERNEL);
if (!mem_tmp) {
retval = -ENOMEM;
goto error;
@@ -891,7 +903,7 @@ static int configure_bridge(struct pci_func **func_passed, u8 slotno)
*/
bus = ibmphp_find_res_bus(sec_number);
if (!bus) {
- bus = kzalloc(sizeof(*bus), GFP_KERNEL);
+ bus = kzalloc_obj(*bus, GFP_KERNEL);
if (!bus) {
retval = -ENOMEM;
goto error;
@@ -1064,7 +1076,7 @@ static struct res_needed *scan_behind_bridge(struct pci_func *func, u8 busno)
};
struct res_needed *amount;
- amount = kzalloc(sizeof(*amount), GFP_KERNEL);
+ amount = kzalloc_obj(*amount, GFP_KERNEL);
if (amount == NULL)
return NULL;
@@ -1618,7 +1630,7 @@ static int add_new_bus(struct bus_node *bus, struct resource_node *io, struct re
list_add(&bus->bus_list, &cur_bus->bus_list);
}
if (io) {
- io_range = kzalloc(sizeof(*io_range), GFP_KERNEL);
+ io_range = kzalloc_obj(*io_range, GFP_KERNEL);
if (!io_range)
return -ENOMEM;
@@ -1629,7 +1641,7 @@ static int add_new_bus(struct bus_node *bus, struct resource_node *io, struct re
bus->rangeIO = io_range;
}
if (mem) {
- mem_range = kzalloc(sizeof(*mem_range), GFP_KERNEL);
+ mem_range = kzalloc_obj(*mem_range, GFP_KERNEL);
if (!mem_range)
return -ENOMEM;
@@ -1640,7 +1652,7 @@ static int add_new_bus(struct bus_node *bus, struct resource_node *io, struct re
bus->rangeMem = mem_range;
}
if (pfmem) {
- pfmem_range = kzalloc(sizeof(*pfmem_range), GFP_KERNEL);
+ pfmem_range = kzalloc_obj(*pfmem_range, GFP_KERNEL);
if (!pfmem_range)
return -ENOMEM;
diff --git a/drivers/pci/hotplug/ibmphp_res.c b/drivers/pci/hotplug/ibmphp_res.c
index 4a72ade2cddb..c05a2c05e302 100644
--- a/drivers/pci/hotplug/ibmphp_res.c
+++ b/drivers/pci/hotplug/ibmphp_res.c
@@ -41,7 +41,7 @@ static struct bus_node * __init alloc_error_bus(struct ebda_pci_rsrc *curr, u8 b
return NULL;
}
- newbus = kzalloc(sizeof(struct bus_node), GFP_KERNEL);
+ newbus = kzalloc_obj(struct bus_node, GFP_KERNEL);
if (!newbus)
return NULL;
@@ -62,7 +62,7 @@ static struct resource_node * __init alloc_resources(struct ebda_pci_rsrc *curr)
return NULL;
}
- rs = kzalloc(sizeof(struct resource_node), GFP_KERNEL);
+ rs = kzalloc_obj(struct resource_node, GFP_KERNEL);
if (!rs)
return NULL;
@@ -81,7 +81,7 @@ static int __init alloc_bus_range(struct bus_node **new_bus, struct range_node *
u8 num_ranges = 0;
if (first_bus) {
- newbus = kzalloc(sizeof(struct bus_node), GFP_KERNEL);
+ newbus = kzalloc_obj(struct bus_node, GFP_KERNEL);
if (!newbus)
return -ENOMEM;
@@ -101,7 +101,7 @@ static int __init alloc_bus_range(struct bus_node **new_bus, struct range_node *
}
}
- newrange = kzalloc(sizeof(struct range_node), GFP_KERNEL);
+ newrange = kzalloc_obj(struct range_node, GFP_KERNEL);
if (!newrange) {
if (first_bus)
kfree(newbus);
@@ -1687,7 +1687,8 @@ static int __init once_over(void)
bus_cur->firstPFMemFromMem = pfmem_cur;
- mem = kzalloc(sizeof(struct resource_node), GFP_KERNEL);
+ mem = kzalloc_obj(struct resource_node,
+ GFP_KERNEL);
if (!mem)
return -ENOMEM;
@@ -1969,7 +1970,8 @@ static int __init update_bridge_ranges(struct bus_node **bus)
end_address |= (upper_io_end << 16);
if ((start_address) && (start_address <= end_address)) {
- range = kzalloc(sizeof(struct range_node), GFP_KERNEL);
+ range = kzalloc_obj(struct range_node,
+ GFP_KERNEL);
if (!range)
return -ENOMEM;
@@ -1993,7 +1995,8 @@ static int __init update_bridge_ranges(struct bus_node **bus)
fix_resources(bus_sec);
if (ibmphp_find_resource(bus_cur, start_address, &io, IO)) {
- io = kzalloc(sizeof(struct resource_node), GFP_KERNEL);
+ io = kzalloc_obj(struct resource_node,
+ GFP_KERNEL);
if (!io) {
kfree(range);
return -ENOMEM;
@@ -2016,7 +2019,8 @@ static int __init update_bridge_ranges(struct bus_node **bus)
if ((start_address) && (start_address <= end_address)) {
- range = kzalloc(sizeof(struct range_node), GFP_KERNEL);
+ range = kzalloc_obj(struct range_node,
+ GFP_KERNEL);
if (!range)
return -ENOMEM;
@@ -2041,7 +2045,8 @@ static int __init update_bridge_ranges(struct bus_node **bus)
fix_resources(bus_sec);
if (ibmphp_find_resource(bus_cur, start_address, &mem, MEM)) {
- mem = kzalloc(sizeof(struct resource_node), GFP_KERNEL);
+ mem = kzalloc_obj(struct resource_node,
+ GFP_KERNEL);
if (!mem) {
kfree(range);
return -ENOMEM;
@@ -2068,7 +2073,8 @@ static int __init update_bridge_ranges(struct bus_node **bus)
if ((start_address) && (start_address <= end_address)) {
- range = kzalloc(sizeof(struct range_node), GFP_KERNEL);
+ range = kzalloc_obj(struct range_node,
+ GFP_KERNEL);
if (!range)
return -ENOMEM;
@@ -2092,7 +2098,8 @@ static int __init update_bridge_ranges(struct bus_node **bus)
fix_resources(bus_sec);
if (ibmphp_find_resource(bus_cur, start_address, &pfmem, PFMEM)) {
- pfmem = kzalloc(sizeof(struct resource_node), GFP_KERNEL);
+ pfmem = kzalloc_obj(struct resource_node,
+ GFP_KERNEL);
if (!pfmem) {
kfree(range);
return -ENOMEM;
diff --git a/drivers/pci/hotplug/octep_hp.c b/drivers/pci/hotplug/octep_hp.c
index 2bce7296c050..109513822589 100644
--- a/drivers/pci/hotplug/octep_hp.c
+++ b/drivers/pci/hotplug/octep_hp.c
@@ -136,7 +136,7 @@ octep_hp_register_slot(struct octep_hp_controller *hp_ctrl,
struct octep_hp_slot *hp_slot;
int ret;
- hp_slot = kzalloc(sizeof(*hp_slot), GFP_KERNEL);
+ hp_slot = kzalloc_obj(*hp_slot, GFP_KERNEL);
if (!hp_slot)
return ERR_PTR(-ENOMEM);
@@ -271,7 +271,7 @@ static irqreturn_t octep_hp_intr_handler(int irq, void *data)
intr_val = readq(hp_ctrl->base + OCTEP_HP_INTR_OFFSET(type));
writeq(intr_val, hp_ctrl->base + OCTEP_HP_INTR_OFFSET(type));
- hp_cmd = kzalloc(sizeof(*hp_cmd), GFP_ATOMIC);
+ hp_cmd = kzalloc_obj(*hp_cmd, GFP_ATOMIC);
if (!hp_cmd)
return IRQ_HANDLED;
diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
index f59baa912970..b344ccb3cbc1 100644
--- a/drivers/pci/hotplug/pciehp_core.c
+++ b/drivers/pci/hotplug/pciehp_core.c
@@ -55,7 +55,7 @@ static int init_slot(struct controller *ctrl)
int retval;
/* Setup hotplug slot ops */
- ops = kzalloc(sizeof(*ops), GFP_KERNEL);
+ ops = kzalloc_obj(*ops, GFP_KERNEL);
if (!ops)
return -ENOMEM;
diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c
index ad5f28f6a8b1..33396ad0331c 100644
--- a/drivers/pci/hotplug/pciehp_hpc.c
+++ b/drivers/pci/hotplug/pciehp_hpc.c
@@ -1011,7 +1011,7 @@ struct controller *pcie_init(struct pcie_device *dev)
struct pci_dev *pdev = dev->port;
struct pci_bus *subordinate = pdev->subordinate;
- ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL);
+ ctrl = kzalloc_obj(*ctrl, GFP_KERNEL);
if (!ctrl)
return NULL;
diff --git a/drivers/pci/hotplug/pnv_php.c b/drivers/pci/hotplug/pnv_php.c
index 35f1758126c6..4364f068fb72 100644
--- a/drivers/pci/hotplug/pnv_php.c
+++ b/drivers/pci/hotplug/pnv_php.c
@@ -791,7 +791,7 @@ static struct pnv_php_slot *pnv_php_alloc_slot(struct device_node *dn)
if (!bus)
return NULL;
- php_slot = kzalloc(sizeof(*php_slot), GFP_KERNEL);
+ php_slot = kzalloc_obj(*php_slot, GFP_KERNEL);
if (!php_slot)
return NULL;
@@ -1028,7 +1028,7 @@ static irqreturn_t pnv_php_interrupt(int irq, void *data)
* The PE is left in frozen state if the event is missed. It's
* fine as the PCI devices (PE) aren't functional any more.
*/
- event = kzalloc(sizeof(*event), GFP_ATOMIC);
+ event = kzalloc_obj(*event, GFP_ATOMIC);
if (!event) {
SLOT_WARN(php_slot,
"PCI slot [%s] missed hotplug event 0x%04x\n",
diff --git a/drivers/pci/hotplug/rpaphp_slot.c b/drivers/pci/hotplug/rpaphp_slot.c
index 779eab12e981..730a3d6c12ba 100644
--- a/drivers/pci/hotplug/rpaphp_slot.c
+++ b/drivers/pci/hotplug/rpaphp_slot.c
@@ -32,7 +32,7 @@ struct slot *alloc_slot_struct(struct device_node *dn,
{
struct slot *slot;
- slot = kzalloc(sizeof(struct slot), GFP_KERNEL);
+ slot = kzalloc_obj(struct slot, GFP_KERNEL);
if (!slot)
goto error_nomem;
slot->name = kstrdup(drc_name, GFP_KERNEL);
diff --git a/drivers/pci/hotplug/shpchp_core.c b/drivers/pci/hotplug/shpchp_core.c
index 56308515ecba..13687b666f7a 100644
--- a/drivers/pci/hotplug/shpchp_core.c
+++ b/drivers/pci/hotplug/shpchp_core.c
@@ -66,7 +66,7 @@ static int init_slots(struct controller *ctrl)
int i;
for (i = 0; i < ctrl->num_slots; i++) {
- slot = kzalloc(sizeof(*slot), GFP_KERNEL);
+ slot = kzalloc_obj(*slot, GFP_KERNEL);
if (!slot) {
retval = -ENOMEM;
goto error;
@@ -259,7 +259,7 @@ static int shpc_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (acpi_get_hp_hw_control_from_firmware(pdev))
return -ENODEV;
- ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL);
+ ctrl = kzalloc_obj(*ctrl, GFP_KERNEL);
if (!ctrl)
goto err_out_none;
diff --git a/drivers/pci/hotplug/shpchp_ctrl.c b/drivers/pci/hotplug/shpchp_ctrl.c
index e6c6f23bae27..20526c1fa441 100644
--- a/drivers/pci/hotplug/shpchp_ctrl.c
+++ b/drivers/pci/hotplug/shpchp_ctrl.c
@@ -29,7 +29,7 @@ static int queue_interrupt_event(struct slot *p_slot, u32 event_type)
{
struct event_info *info;
- info = kmalloc(sizeof(*info), GFP_ATOMIC);
+ info = kmalloc_obj(*info, GFP_ATOMIC);
if (!info)
return -ENOMEM;
@@ -418,7 +418,7 @@ void shpchp_queue_pushbutton_work(struct work_struct *work)
struct slot *p_slot = container_of(work, struct slot, work.work);
struct pushbutton_work_info *info;
- info = kmalloc(sizeof(*info), GFP_KERNEL);
+ info = kmalloc_obj(*info, GFP_KERNEL);
if (!info) {
ctrl_err(p_slot->ctrl, "%s: Cannot allocate memory\n",
__func__);
diff --git a/drivers/pci/ide.c b/drivers/pci/ide.c
index 23f554490539..94c20f35f86f 100644
--- a/drivers/pci/ide.c
+++ b/drivers/pci/ide.c
@@ -258,7 +258,7 @@ struct pci_ide *pci_ide_stream_alloc(struct pci_dev *pdev)
if (!pdev->ide_cap)
return NULL;
- struct pci_ide *ide __free(kfree) = kzalloc(sizeof(*ide), GFP_KERNEL);
+ struct pci_ide *ide __free(kfree) = kzalloc_obj(*ide, GFP_KERNEL);
if (!ide)
return NULL;
diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c
index 4a659c34935e..99b939f233be 100644
--- a/drivers/pci/iov.c
+++ b/drivers/pci/iov.c
@@ -837,7 +837,7 @@ static int sriov_init(struct pci_dev *dev, int pos)
pgsz &= ~(pgsz - 1);
pci_write_config_dword(dev, pos + PCI_SRIOV_SYS_PGSIZE, pgsz);
- iov = kzalloc(sizeof(*iov), GFP_KERNEL);
+ iov = kzalloc_obj(*iov, GFP_KERNEL);
if (!iov)
return -ENOMEM;
diff --git a/drivers/pci/npem.c b/drivers/pci/npem.c
index 97507e0df769..f900438570bf 100644
--- a/drivers/pci/npem.c
+++ b/drivers/pci/npem.c
@@ -524,7 +524,7 @@ static int pci_npem_init(struct pci_dev *dev, const struct npem_ops *ops,
int led_idx = 0;
int ret;
- npem = kzalloc(struct_size(npem, leds, supported_cnt), GFP_KERNEL);
+ npem = kzalloc_flex(*npem, leds, supported_cnt, GFP_KERNEL);
if (!npem)
return -ENOMEM;
diff --git a/drivers/pci/of.c b/drivers/pci/of.c
index 9bb5f258759b..492ec76da821 100644
--- a/drivers/pci/of.c
+++ b/drivers/pci/of.c
@@ -696,7 +696,7 @@ void of_pci_make_dev_node(struct pci_dev *pdev)
if (!name)
return;
- cset = kmalloc(sizeof(*cset), GFP_KERNEL);
+ cset = kmalloc_obj(*cset, GFP_KERNEL);
if (!cset)
goto out_free_name;
of_changeset_init(cset);
@@ -784,7 +784,7 @@ void of_pci_make_host_bridge_node(struct pci_host_bridge *bridge)
if (!name)
return;
- cset = kmalloc(sizeof(*cset), GFP_KERNEL);
+ cset = kmalloc_obj(*cset, GFP_KERNEL);
if (!cset)
goto out_free_name;
of_changeset_init(cset);
diff --git a/drivers/pci/of_property.c b/drivers/pci/of_property.c
index 7aae46f333d9..9011f890ebf3 100644
--- a/drivers/pci/of_property.c
+++ b/drivers/pci/of_property.c
@@ -119,7 +119,7 @@ static int of_pci_prop_ranges(struct pci_dev *pdev, struct of_changeset *ocs,
res = &pdev->resource[PCI_STD_RESOURCES];
}
- rp = kcalloc(num, sizeof(*rp), GFP_KERNEL);
+ rp = kzalloc_objs(*rp, num, GFP_KERNEL);
if (!rp)
return -ENOMEM;
diff --git a/drivers/pci/p2pdma.c b/drivers/pci/p2pdma.c
index 79a414fd6623..4ab9800c22cc 100644
--- a/drivers/pci/p2pdma.c
+++ b/drivers/pci/p2pdma.c
@@ -1006,7 +1006,7 @@ struct scatterlist *pci_p2pmem_alloc_sgl(struct pci_dev *pdev,
struct scatterlist *sg;
void *addr;
- sg = kmalloc(sizeof(*sg), GFP_KERNEL);
+ sg = kmalloc_obj(*sg, GFP_KERNEL);
if (!sg)
return NULL;
diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
index 218e1fc1c1e2..854597fe4eab 100644
--- a/drivers/pci/pci-acpi.c
+++ b/drivers/pci/pci-acpi.c
@@ -1663,11 +1663,11 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
struct acpi_pci_root_ops *root_ops;
struct pci_host_bridge *host;
- ri = kzalloc(sizeof(*ri), GFP_KERNEL);
+ ri = kzalloc_obj(*ri, GFP_KERNEL);
if (!ri)
return NULL;
- root_ops = kzalloc(sizeof(*root_ops), GFP_KERNEL);
+ root_ops = kzalloc_obj(*root_ops, GFP_KERNEL);
if (!root_ops) {
kfree(ri);
return NULL;
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
index 47887d55994a..206d30324dfd 100644
--- a/drivers/pci/pci-driver.c
+++ b/drivers/pci/pci-driver.c
@@ -58,7 +58,7 @@ int pci_add_dynid(struct pci_driver *drv,
{
struct pci_dynid *dynid;
- dynid = kzalloc(sizeof(*dynid), GFP_KERNEL);
+ dynid = kzalloc_obj(*dynid, GFP_KERNEL);
if (!dynid)
return -ENOMEM;
@@ -203,7 +203,7 @@ static ssize_t new_id_store(struct device_driver *driver, const char *buf,
return -EINVAL;
if (fields != 7) {
- struct pci_dev *pdev = kzalloc(sizeof(*pdev), GFP_KERNEL);
+ struct pci_dev *pdev = kzalloc_obj(*pdev, GFP_KERNEL);
if (!pdev)
return -ENOMEM;
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 363187ba4f56..16eaaf749ba9 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -1037,8 +1037,7 @@ void pci_create_legacy_files(struct pci_bus *b)
if (!sysfs_initialized)
return;
- b->legacy_io = kcalloc(2, sizeof(struct bin_attribute),
- GFP_ATOMIC);
+ b->legacy_io = kzalloc_objs(struct bin_attribute, 2, GFP_ATOMIC);
if (!b->legacy_io)
goto kzalloc_err;
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index f3244630bfd0..4aa21fe3b13e 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -2462,8 +2462,7 @@ void pci_pme_active(struct pci_dev *dev, bool enable)
if (dev->pme_poll) {
struct pci_pme_device *pme_dev;
if (enable) {
- pme_dev = kmalloc(sizeof(struct pci_pme_device),
- GFP_KERNEL);
+ pme_dev = kmalloc_obj(struct pci_pme_device, GFP_KERNEL);
if (!pme_dev) {
pci_warn(dev, "can't enable PME#\n");
return;
@@ -3980,7 +3979,7 @@ int pci_register_io_range(const struct fwnode_handle *fwnode, phys_addr_t addr,
if (!size || addr + size < addr)
return -EINVAL;
- range = kzalloc(sizeof(*range), GFP_ATOMIC);
+ range = kzalloc_obj(*range, GFP_ATOMIC);
if (!range)
return -ENOMEM;
diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
index 8dfbb0fe6cf6..068594aa6878 100644
--- a/drivers/pci/pcie/aer.c
+++ b/drivers/pci/pcie/aer.c
@@ -390,7 +390,7 @@ void pci_aer_init(struct pci_dev *dev)
if (!dev->aer_cap)
return;
- dev->aer_info = kzalloc(sizeof(*dev->aer_info), GFP_KERNEL);
+ dev->aer_info = kzalloc_obj(*dev->aer_info, GFP_KERNEL);
if (!dev->aer_info) {
dev->aer_cap = 0;
return;
diff --git a/drivers/pci/pcie/aer_inject.c b/drivers/pci/pcie/aer_inject.c
index 91acc7b17f68..9c8b2dc496b9 100644
--- a/drivers/pci/pcie/aer_inject.c
+++ b/drivers/pci/pcie/aer_inject.c
@@ -300,7 +300,7 @@ static int pci_bus_set_aer_ops(struct pci_bus *bus)
struct pci_bus_ops *bus_ops;
unsigned long flags;
- bus_ops = kmalloc(sizeof(*bus_ops), GFP_KERNEL);
+ bus_ops = kmalloc_obj(*bus_ops, GFP_KERNEL);
if (!bus_ops)
return -ENOMEM;
ops = pci_bus_set_ops(bus, &aer_inj_pci_ops);
@@ -360,12 +360,12 @@ static int aer_inject(struct aer_error_inj *einj)
goto out_put;
}
- err_alloc = kzalloc(sizeof(struct aer_error), GFP_KERNEL);
+ err_alloc = kzalloc_obj(struct aer_error, GFP_KERNEL);
if (!err_alloc) {
ret = -ENOMEM;
goto out_put;
}
- rperr_alloc = kzalloc(sizeof(struct aer_error), GFP_KERNEL);
+ rperr_alloc = kzalloc_obj(struct aer_error, GFP_KERNEL);
if (!rperr_alloc) {
ret = -ENOMEM;
goto out_put;
diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
index cedea47a3547..83ea061f2eba 100644
--- a/drivers/pci/pcie/aspm.c
+++ b/drivers/pci/pcie/aspm.c
@@ -1063,7 +1063,7 @@ static struct pcie_link_state *alloc_pcie_link_state(struct pci_dev *pdev)
{
struct pcie_link_state *link;
- link = kzalloc(sizeof(*link), GFP_KERNEL);
+ link = kzalloc_obj(*link, GFP_KERNEL);
if (!link)
return NULL;
diff --git a/drivers/pci/pcie/pme.c b/drivers/pci/pcie/pme.c
index a2daebd9806c..050d814f6eac 100644
--- a/drivers/pci/pcie/pme.c
+++ b/drivers/pci/pcie/pme.c
@@ -335,7 +335,7 @@ static int pcie_pme_probe(struct pcie_device *srv)
type != PCI_EXP_TYPE_ROOT_PORT)
return -ENODEV;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/pci/pcie/portdrv.c b/drivers/pci/pcie/portdrv.c
index 88af0dacf351..f033acbd71a4 100644
--- a/drivers/pci/pcie/portdrv.c
+++ b/drivers/pci/pcie/portdrv.c
@@ -293,7 +293,7 @@ static int pcie_device_init(struct pci_dev *pdev, int service, int irq)
struct pcie_device *pcie;
struct device *device;
- pcie = kzalloc(sizeof(*pcie), GFP_KERNEL);
+ pcie = kzalloc_obj(*pcie, GFP_KERNEL);
if (!pcie)
return -ENOMEM;
pcie->port = pdev;
diff --git a/drivers/pci/pcie/ptm.c b/drivers/pci/pcie/ptm.c
index c7c61869bc9c..d8727369e6a5 100644
--- a/drivers/pci/pcie/ptm.c
+++ b/drivers/pci/pcie/ptm.c
@@ -537,7 +537,7 @@ struct pci_ptm_debugfs *pcie_ptm_create_debugfs(struct device *dev, void *pdata,
return NULL;
}
- ptm_debugfs = kzalloc(sizeof(*ptm_debugfs), GFP_KERNEL);
+ ptm_debugfs = kzalloc_obj(*ptm_debugfs, GFP_KERNEL);
if (!ptm_debugfs)
return NULL;
diff --git a/drivers/pci/pcie/rcec.c b/drivers/pci/pcie/rcec.c
index d0bcd141ac9c..531cde54d747 100644
--- a/drivers/pci/pcie/rcec.c
+++ b/drivers/pci/pcie/rcec.c
@@ -160,7 +160,7 @@ void pci_rcec_init(struct pci_dev *dev)
if (!rcec)
return;
- rcec_ea = kzalloc(sizeof(*rcec_ea), GFP_KERNEL);
+ rcec_ea = kzalloc_obj(*rcec_ea, GFP_KERNEL);
if (!rcec_ea)
return;
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 2975974f35e8..013334b53bfb 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -53,7 +53,7 @@ static struct resource *get_pci_domain_busn_res(int domain_nr)
if (r->domain_nr == domain_nr)
return &r->res;
- r = kzalloc(sizeof(*r), GFP_KERNEL);
+ r = kzalloc_obj(*r, GFP_KERNEL);
if (!r)
return NULL;
@@ -620,7 +620,7 @@ static struct pci_bus *pci_alloc_bus(struct pci_bus *parent)
{
struct pci_bus *b;
- b = kzalloc(sizeof(*b), GFP_KERNEL);
+ b = kzalloc_obj(*b, GFP_KERNEL);
if (!b)
return NULL;
@@ -2502,7 +2502,7 @@ struct pci_dev *pci_alloc_dev(struct pci_bus *bus)
{
struct pci_dev *dev;
- dev = kzalloc(sizeof(struct pci_dev), GFP_KERNEL);
+ dev = kzalloc_obj(struct pci_dev, GFP_KERNEL);
if (!dev)
return NULL;
diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c
index 9348a0fb8084..53104f5c6378 100644
--- a/drivers/pci/proc.c
+++ b/drivers/pci/proc.c
@@ -297,7 +297,7 @@ static int proc_bus_pci_mmap(struct file *file, struct vm_area_struct *vma)
static int proc_bus_pci_open(struct inode *inode, struct file *file)
{
- struct pci_filp_private *fpriv = kmalloc(sizeof(*fpriv), GFP_KERNEL);
+ struct pci_filp_private *fpriv = kmalloc_obj(*fpriv, GFP_KERNEL);
if (!fpriv)
return -ENOMEM;
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
index bd66ac47b3b9..b641f60a2aa5 100644
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
@@ -73,7 +73,7 @@ int pci_dev_res_add_to_list(struct list_head *head, struct pci_dev *dev,
{
struct pci_dev_resource *tmp;
- tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
return -ENOMEM;
@@ -350,7 +350,7 @@ static void pdev_sort_resources(struct pci_dev *dev, struct list_head *head)
continue;
}
- tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
panic("%s: kzalloc() failed!\n", __func__);
tmp->res = r;
diff --git a/drivers/pci/slot.c b/drivers/pci/slot.c
index 50fb3eb595fe..15e98de7bdbe 100644
--- a/drivers/pci/slot.c
+++ b/drivers/pci/slot.c
@@ -256,7 +256,7 @@ struct pci_slot *pci_create_slot(struct pci_bus *parent, int slot_nr,
}
placeholder:
- slot = kzalloc(sizeof(*slot), GFP_KERNEL);
+ slot = kzalloc_obj(*slot, GFP_KERNEL);
if (!slot) {
err = -ENOMEM;
goto err;
diff --git a/drivers/pci/switch/switchtec.c b/drivers/pci/switch/switchtec.c
index 5ff84fb8fb0f..c6e97d1af1a0 100644
--- a/drivers/pci/switch/switchtec.c
+++ b/drivers/pci/switch/switchtec.c
@@ -86,7 +86,7 @@ static struct switchtec_user *stuser_create(struct switchtec_dev *stdev)
{
struct switchtec_user *stuser;
- stuser = kzalloc(sizeof(*stuser), GFP_KERNEL);
+ stuser = kzalloc_obj(*stuser, GFP_KERNEL);
if (!stuser)
return ERR_PTR(-ENOMEM);
@@ -895,7 +895,7 @@ static int ioctl_event_summary(struct switchtec_dev *stdev,
u32 reg;
int ret = 0;
- s = kzalloc(sizeof(*s), GFP_KERNEL);
+ s = kzalloc_obj(*s, GFP_KERNEL);
if (!s)
return -ENOMEM;
diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c
index 87143e235033..21204da24e73 100644
--- a/drivers/pci/vgaarb.c
+++ b/drivers/pci/vgaarb.c
@@ -735,7 +735,7 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
u16 cmd;
/* Allocate structure */
- vgadev = kzalloc(sizeof(struct vga_device), GFP_KERNEL);
+ vgadev = kzalloc_obj(struct vga_device, GFP_KERNEL);
if (vgadev == NULL) {
vgaarb_err(&pdev->dev, "failed to allocate VGA arbiter data\n");
/*
@@ -1385,7 +1385,7 @@ static int vga_arb_open(struct inode *inode, struct file *file)
pr_debug("%s\n", __func__);
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (priv == NULL)
return -ENOMEM;
spin_lock_init(&priv->lock);
diff --git a/drivers/pci/xen-pcifront.c b/drivers/pci/xen-pcifront.c
index 11636634ae51..bbb43539a2b0 100644
--- a/drivers/pci/xen-pcifront.c
+++ b/drivers/pci/xen-pcifront.c
@@ -462,8 +462,8 @@ static int pcifront_scan_root(struct pcifront_device *pdev,
dev_info(&pdev->xdev->dev, "Creating PCI Frontend Bus %04x:%02x\n",
domain, bus);
- bus_entry = kzalloc(sizeof(*bus_entry), GFP_KERNEL);
- sd = kzalloc(sizeof(*sd), GFP_KERNEL);
+ bus_entry = kzalloc_obj(*bus_entry, GFP_KERNEL);
+ sd = kzalloc_obj(*sd, GFP_KERNEL);
if (!bus_entry || !sd) {
err = -ENOMEM;
goto err_out;
@@ -687,7 +687,7 @@ static struct pcifront_device *alloc_pdev(struct xenbus_device *xdev)
{
struct pcifront_device *pdev;
- pdev = kzalloc(sizeof(struct pcifront_device), GFP_KERNEL);
+ pdev = kzalloc_obj(struct pcifront_device, GFP_KERNEL);
if (pdev == NULL)
goto out;
diff --git a/drivers/pcmcia/bcm63xx_pcmcia.c b/drivers/pcmcia/bcm63xx_pcmcia.c
index d3baed444646..cfb2a3724252 100644
--- a/drivers/pcmcia/bcm63xx_pcmcia.c
+++ b/drivers/pcmcia/bcm63xx_pcmcia.c
@@ -333,7 +333,7 @@ static int bcm63xx_drv_pcmcia_probe(struct platform_device *pdev)
int ret;
int irq;
- skt = kzalloc(sizeof(*skt), GFP_KERNEL);
+ skt = kzalloc_obj(*skt, GFP_KERNEL);
if (!skt)
return -ENOMEM;
spin_lock_init(&skt->lock);
diff --git a/drivers/pcmcia/cistpl.c b/drivers/pcmcia/cistpl.c
index 05b67fd93de6..e22ebce496d5 100644
--- a/drivers/pcmcia/cistpl.c
+++ b/drivers/pcmcia/cistpl.c
@@ -1393,12 +1393,12 @@ int pccard_validate_cis(struct pcmcia_socket *s, unsigned int *info)
destroy_cis_cache(s);
mutex_unlock(&s->ops_mutex);
- tuple = kmalloc(sizeof(*tuple), GFP_KERNEL);
+ tuple = kmalloc_obj(*tuple, GFP_KERNEL);
if (tuple == NULL) {
dev_warn(&s->dev, "no memory to validate CIS\n");
return -ENOMEM;
}
- p = kmalloc(sizeof(*p), GFP_KERNEL);
+ p = kmalloc_obj(*p, GFP_KERNEL);
if (p == NULL) {
kfree(tuple);
dev_warn(&s->dev, "no memory to validate CIS\n");
@@ -1480,11 +1480,11 @@ static ssize_t pccard_extract_cis(struct pcmcia_socket *s, char *buf,
u_char *tuplebuffer;
u_char *tempbuffer;
- tuplebuffer = kmalloc_array(256, sizeof(u_char), GFP_KERNEL);
+ tuplebuffer = kmalloc_objs(u_char, 256, GFP_KERNEL);
if (!tuplebuffer)
return -ENOMEM;
- tempbuffer = kmalloc_array(258, sizeof(u_char), GFP_KERNEL);
+ tempbuffer = kmalloc_objs(u_char, 258, GFP_KERNEL);
if (!tempbuffer) {
ret = -ENOMEM;
goto free_tuple;
diff --git a/drivers/pcmcia/db1xxx_ss.c b/drivers/pcmcia/db1xxx_ss.c
index 85d2616061dd..5f80ad72566b 100644
--- a/drivers/pcmcia/db1xxx_ss.c
+++ b/drivers/pcmcia/db1xxx_ss.c
@@ -427,7 +427,7 @@ static int db1x_pcmcia_socket_probe(struct platform_device *pdev)
struct resource *r;
int ret, bid;
- sock = kzalloc(sizeof(struct db1x_pcmcia_sock), GFP_KERNEL);
+ sock = kzalloc_obj(struct db1x_pcmcia_sock, GFP_KERNEL);
if (!sock)
return -ENOMEM;
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index 18f4eef28dbc..9c26aeb39dcf 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -108,7 +108,7 @@ new_id_store(struct device_driver *driver, const char *buf, size_t count)
if (fields < 6)
return -EINVAL;
- dynid = kzalloc(sizeof(struct pcmcia_dynid), GFP_KERNEL);
+ dynid = kzalloc_obj(struct pcmcia_dynid, GFP_KERNEL);
if (!dynid)
return -ENOMEM;
@@ -402,7 +402,7 @@ static int pcmcia_device_query(struct pcmcia_device *p_dev)
cistpl_vers_1_t *vers1;
unsigned int i;
- vers1 = kmalloc(sizeof(*vers1), GFP_KERNEL);
+ vers1 = kmalloc_obj(*vers1, GFP_KERNEL);
if (!vers1)
return -ENOMEM;
@@ -428,7 +428,7 @@ static int pcmcia_device_query(struct pcmcia_device *p_dev)
* probably memory cards (from pcmcia-cs) */
cistpl_device_geo_t *devgeo;
- devgeo = kmalloc(sizeof(*devgeo), GFP_KERNEL);
+ devgeo = kmalloc_obj(*devgeo, GFP_KERNEL);
if (!devgeo) {
kfree(vers1);
return -ENOMEM;
@@ -488,7 +488,7 @@ static struct pcmcia_device *pcmcia_device_add(struct pcmcia_socket *s,
pr_debug("adding device to %d, function %d\n", s->sock, function);
- p_dev = kzalloc(sizeof(struct pcmcia_device), GFP_KERNEL);
+ p_dev = kzalloc_obj(struct pcmcia_device, GFP_KERNEL);
if (!p_dev)
goto err_put;
@@ -542,7 +542,7 @@ static struct pcmcia_device *pcmcia_device_add(struct pcmcia_socket *s,
if (!p_dev->function_config) {
config_t *c;
dev_dbg(&p_dev->dev, "creating config_t\n");
- c = kzalloc(sizeof(struct config_t), GFP_KERNEL);
+ c = kzalloc_obj(struct config_t, GFP_KERNEL);
if (!c) {
mutex_unlock(&s->ops_mutex);
goto err_unreg;
diff --git a/drivers/pcmcia/electra_cf.c b/drivers/pcmcia/electra_cf.c
index 2530079d38f4..05d78262e408 100644
--- a/drivers/pcmcia/electra_cf.c
+++ b/drivers/pcmcia/electra_cf.c
@@ -190,7 +190,7 @@ static int electra_cf_probe(struct platform_device *ofdev)
if (err)
return -EINVAL;
- cf = kzalloc(sizeof(*cf), GFP_KERNEL);
+ cf = kzalloc_obj(*cf, GFP_KERNEL);
if (!cf)
return -ENOMEM;
diff --git a/drivers/pcmcia/omap_cf.c b/drivers/pcmcia/omap_cf.c
index d6f24c7d1562..c43f15557906 100644
--- a/drivers/pcmcia/omap_cf.c
+++ b/drivers/pcmcia/omap_cf.c
@@ -218,7 +218,7 @@ static int __init omap_cf_probe(struct platform_device *pdev)
if (!res)
return -EINVAL;
- cf = kzalloc(sizeof *cf, GFP_KERNEL);
+ cf = kzalloc_obj(*cf, GFP_KERNEL);
if (!cf)
return -ENOMEM;
timer_setup(&cf->timer, omap_cf_timer, 0);
diff --git a/drivers/pcmcia/pcmcia_cis.c b/drivers/pcmcia/pcmcia_cis.c
index 6bc0bc24d357..f84ca5cde76b 100644
--- a/drivers/pcmcia/pcmcia_cis.c
+++ b/drivers/pcmcia/pcmcia_cis.c
@@ -264,7 +264,7 @@ int pcmcia_loop_config(struct pcmcia_device *p_dev,
struct pcmcia_cfg_mem *cfg_mem;
int ret;
- cfg_mem = kzalloc(sizeof(struct pcmcia_cfg_mem), GFP_KERNEL);
+ cfg_mem = kzalloc_obj(struct pcmcia_cfg_mem, GFP_KERNEL);
if (cfg_mem == NULL)
return -ENOMEM;
diff --git a/drivers/pcmcia/pd6729.c b/drivers/pcmcia/pd6729.c
index 6868b60fd325..3f4fc34d1b54 100644
--- a/drivers/pcmcia/pd6729.c
+++ b/drivers/pcmcia/pd6729.c
@@ -629,8 +629,7 @@ static int pd6729_pci_probe(struct pci_dev *dev,
char configbyte;
struct pd6729_socket *socket;
- socket = kcalloc(MAX_SOCKETS, sizeof(struct pd6729_socket),
- GFP_KERNEL);
+ socket = kzalloc_objs(struct pd6729_socket, MAX_SOCKETS, GFP_KERNEL);
if (!socket) {
dev_warn(&dev->dev, "failed to kzalloc socket.\n");
return -ENOMEM;
diff --git a/drivers/pcmcia/rsrc_mgr.c b/drivers/pcmcia/rsrc_mgr.c
index 3a1d2baa466f..f6606b772eff 100644
--- a/drivers/pcmcia/rsrc_mgr.c
+++ b/drivers/pcmcia/rsrc_mgr.c
@@ -31,7 +31,7 @@ struct resource *pcmcia_make_resource(resource_size_t start,
resource_size_t end,
unsigned long flags, const char *name)
{
- struct resource *res = kzalloc(sizeof(*res), GFP_KERNEL);
+ struct resource *res = kzalloc_obj(*res, GFP_KERNEL);
if (res) {
res->name = name;
diff --git a/drivers/pcmcia/rsrc_nonstatic.c b/drivers/pcmcia/rsrc_nonstatic.c
index da494fe451ba..3531d98e5bb1 100644
--- a/drivers/pcmcia/rsrc_nonstatic.c
+++ b/drivers/pcmcia/rsrc_nonstatic.c
@@ -117,7 +117,7 @@ static int add_interval(struct resource_map *map, u_long base, u_long num)
if ((p->next == map) || (p->next->base > base+num-1))
break;
}
- q = kmalloc(sizeof(struct resource_map), GFP_KERNEL);
+ q = kmalloc_obj(struct resource_map, GFP_KERNEL);
if (!q) {
printk(KERN_WARNING "out of memory to update resources\n");
return -ENOMEM;
@@ -155,8 +155,7 @@ static int sub_interval(struct resource_map *map, u_long base, u_long num)
q->num = base - q->base;
} else {
/* Split the block into two pieces */
- p = kmalloc(sizeof(struct resource_map),
- GFP_KERNEL);
+ p = kmalloc_obj(struct resource_map, GFP_KERNEL);
if (!p) {
printk(KERN_WARNING "out of memory to update resources\n");
return -ENOMEM;
@@ -1023,7 +1022,7 @@ static int nonstatic_init(struct pcmcia_socket *s)
{
struct socket_data *data;
- data = kzalloc(sizeof(struct socket_data), GFP_KERNEL);
+ data = kzalloc_obj(struct socket_data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/pcmcia/sa1111_generic.c b/drivers/pcmcia/sa1111_generic.c
index 2a67e33fb5f0..b0c08d8a43a8 100644
--- a/drivers/pcmcia/sa1111_generic.c
+++ b/drivers/pcmcia/sa1111_generic.c
@@ -153,7 +153,7 @@ int sa1111_pcmcia_add(struct sa1111_dev *dev, struct pcmcia_low_level *ops,
ops->socket_state = sa1111_pcmcia_socket_state;
for (i = 0; i < ops->nr; i++) {
- s = kzalloc(sizeof(*s), GFP_KERNEL);
+ s = kzalloc_obj(*s, GFP_KERNEL);
if (!s)
return -ENOMEM;
diff --git a/drivers/pcmcia/xxs1500_ss.c b/drivers/pcmcia/xxs1500_ss.c
index f84dd5914a6b..2d7e674d86d6 100644
--- a/drivers/pcmcia/xxs1500_ss.c
+++ b/drivers/pcmcia/xxs1500_ss.c
@@ -212,7 +212,7 @@ static int xxs1500_pcmcia_probe(struct platform_device *pdev)
struct resource *r;
int ret, irq;
- sock = kzalloc(sizeof(struct xxs1500_pcmcia_sock), GFP_KERNEL);
+ sock = kzalloc_obj(struct xxs1500_pcmcia_sock, GFP_KERNEL);
if (!sock)
return -ENOMEM;
diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c
index 34c4eaee7dfc..ddff589bebc8 100644
--- a/drivers/pcmcia/yenta_socket.c
+++ b/drivers/pcmcia/yenta_socket.c
@@ -1171,7 +1171,7 @@ static int yenta_probe(struct pci_dev *dev, const struct pci_device_id *id)
return -ENODEV;
}
- socket = kzalloc(sizeof(struct yenta_socket), GFP_KERNEL);
+ socket = kzalloc_obj(struct yenta_socket, GFP_KERNEL);
if (!socket)
return -ENOMEM;
diff --git a/drivers/peci/core.c b/drivers/peci/core.c
index 936c1fadefe5..f54341959769 100644
--- a/drivers/peci/core.c
+++ b/drivers/peci/core.c
@@ -52,7 +52,7 @@ static struct peci_controller *peci_controller_alloc(struct device *dev,
if (!ops->xfer)
return ERR_PTR(-EINVAL);
- controller = kzalloc(sizeof(*controller), GFP_KERNEL);
+ controller = kzalloc_obj(*controller, GFP_KERNEL);
if (!controller)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/peci/cpu.c b/drivers/peci/cpu.c
index fbccc1d1b637..050612e2d3ca 100644
--- a/drivers/peci/cpu.c
+++ b/drivers/peci/cpu.c
@@ -199,7 +199,7 @@ static struct auxiliary_device *adev_alloc(struct peci_cpu *priv, int idx)
const char *name;
int ret;
- adev = kzalloc(sizeof(*adev), GFP_KERNEL);
+ adev = kzalloc_obj(*adev, GFP_KERNEL);
if (!adev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/peci/device.c b/drivers/peci/device.c
index 416635029f55..ed4177b72f0e 100644
--- a/drivers/peci/device.c
+++ b/drivers/peci/device.c
@@ -170,7 +170,7 @@ int peci_device_create(struct peci_controller *controller, u8 addr)
return ret;
}
- device = kzalloc(sizeof(*device), GFP_KERNEL);
+ device = kzalloc_obj(*device, GFP_KERNEL);
if (!device)
return -ENOMEM;
diff --git a/drivers/peci/request.c b/drivers/peci/request.c
index e6327af45fc7..437a59146dff 100644
--- a/drivers/peci/request.c
+++ b/drivers/peci/request.c
@@ -203,7 +203,7 @@ struct peci_request *peci_request_alloc(struct peci_device *device, u8 tx_len, u
* should be converted to DMA API once support for controllers that do
* allow it is added to avoid an extra copy.
*/
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return NULL;
diff --git a/drivers/perf/alibaba_uncore_drw_pmu.c b/drivers/perf/alibaba_uncore_drw_pmu.c
index 99a0ef9817e0..3c5ec82f0454 100644
--- a/drivers/perf/alibaba_uncore_drw_pmu.c
+++ b/drivers/perf/alibaba_uncore_drw_pmu.c
@@ -431,7 +431,7 @@ static struct ali_drw_pmu_irq *__ali_drw_pmu_init_irq(struct platform_device
return irq;
}
- irq = kzalloc(sizeof(*irq), GFP_KERNEL);
+ irq = kzalloc_obj(*irq, GFP_KERNEL);
if (!irq)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
index 4fbafc4b7984..dd87d29c395a 100644
--- a/drivers/perf/arm-cmn.c
+++ b/drivers/perf/arm-cmn.c
@@ -1700,7 +1700,7 @@ static int arm_cmn_validate_group(struct arm_cmn *cmn, struct perf_event *event)
if (event->pmu != leader->pmu && !is_software_event(leader))
return -EINVAL;
- val = kzalloc(sizeof(*val), GFP_KERNEL);
+ val = kzalloc_obj(*val, GFP_KERNEL);
if (!val)
return -ENOMEM;
diff --git a/drivers/perf/arm_dmc620_pmu.c b/drivers/perf/arm_dmc620_pmu.c
index 619cf937602f..3354ef908a56 100644
--- a/drivers/perf/arm_dmc620_pmu.c
+++ b/drivers/perf/arm_dmc620_pmu.c
@@ -432,7 +432,7 @@ static struct dmc620_pmu_irq *__dmc620_pmu_get_irq(int irq_num)
if (irq->irq_num == irq_num && refcount_inc_not_zero(&irq->refcount))
return irq;
- irq = kzalloc(sizeof(*irq), GFP_KERNEL);
+ irq = kzalloc_obj(*irq, GFP_KERNEL);
if (!irq)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/perf/arm_pmu.c b/drivers/perf/arm_pmu.c
index 973a027d9063..5e7da5286d2c 100644
--- a/drivers/perf/arm_pmu.c
+++ b/drivers/perf/arm_pmu.c
@@ -864,7 +864,7 @@ struct arm_pmu *armpmu_alloc(void)
struct arm_pmu *pmu;
int cpu;
- pmu = kzalloc(sizeof(*pmu), GFP_KERNEL);
+ pmu = kzalloc_obj(*pmu, GFP_KERNEL);
if (!pmu)
goto out;
diff --git a/drivers/perf/arm_spe_pmu.c b/drivers/perf/arm_spe_pmu.c
index 5410fb7428d0..eca2955693dc 100644
--- a/drivers/perf/arm_spe_pmu.c
+++ b/drivers/perf/arm_spe_pmu.c
@@ -1020,7 +1020,7 @@ static void *arm_spe_pmu_setup_aux(struct perf_event *event, void **pages,
if (!buf)
return NULL;
- pglist = kcalloc(nr_pages, sizeof(*pglist), GFP_KERNEL);
+ pglist = kzalloc_objs(*pglist, nr_pages, GFP_KERNEL);
if (!pglist)
goto out_free_buf;
diff --git a/drivers/perf/dwc_pcie_pmu.c b/drivers/perf/dwc_pcie_pmu.c
index 22f73ac894e9..ceb039306bb6 100644
--- a/drivers/perf/dwc_pcie_pmu.c
+++ b/drivers/perf/dwc_pcie_pmu.c
@@ -649,7 +649,7 @@ static int dwc_pcie_register_dev(struct pci_dev *pdev)
if (IS_ERR(plat_dev))
return PTR_ERR(plat_dev);
- dev_info = kzalloc(sizeof(*dev_info), GFP_KERNEL);
+ dev_info = kzalloc_obj(*dev_info, GFP_KERNEL);
if (!dev_info) {
platform_device_unregister(plat_dev);
return -ENOMEM;
diff --git a/drivers/perf/riscv_pmu.c b/drivers/perf/riscv_pmu.c
index 7644147d50b4..e5e43899ea74 100644
--- a/drivers/perf/riscv_pmu.c
+++ b/drivers/perf/riscv_pmu.c
@@ -389,7 +389,7 @@ struct riscv_pmu *riscv_pmu_alloc(void)
int cpuid, i;
struct cpu_hw_events *cpuc;
- pmu = kzalloc(sizeof(*pmu), GFP_KERNEL);
+ pmu = kzalloc_obj(*pmu, GFP_KERNEL);
if (!pmu)
goto out;
diff --git a/drivers/perf/riscv_pmu_sbi.c b/drivers/perf/riscv_pmu_sbi.c
index 9dcc22fd48ef..09acac7ae073 100644
--- a/drivers/perf/riscv_pmu_sbi.c
+++ b/drivers/perf/riscv_pmu_sbi.c
@@ -309,7 +309,8 @@ static int pmu_sbi_check_event_info(void)
int i, j, k, result = 0, count = 0;
struct sbiret ret;
- event_info_shmem = kcalloc(num_events, sizeof(*event_info_shmem), GFP_KERNEL);
+ event_info_shmem = kzalloc_objs(*event_info_shmem, num_events,
+ GFP_KERNEL);
if (!event_info_shmem)
return -ENOMEM;
@@ -872,7 +873,7 @@ static int pmu_sbi_get_ctrinfo(int nctr, unsigned long *mask)
int i, num_hw_ctr = 0, num_fw_ctr = 0;
union sbi_pmu_ctr_info cinfo;
- pmu_ctr_list = kcalloc(nctr, sizeof(*pmu_ctr_list), GFP_KERNEL);
+ pmu_ctr_list = kzalloc_objs(*pmu_ctr_list, nctr, GFP_KERNEL);
if (!pmu_ctr_list)
return -ENOMEM;
diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c
index 4ad396214d0c..b1b5ddd9e05e 100644
--- a/drivers/phy/phy-core.c
+++ b/drivers/phy/phy-core.c
@@ -75,7 +75,7 @@ int phy_create_lookup(struct phy *phy, const char *con_id, const char *dev_id)
if (!phy || !dev_id || !con_id)
return -EINVAL;
- pl = kzalloc(sizeof(*pl), GFP_KERNEL);
+ pl = kzalloc_obj(*pl, GFP_KERNEL);
if (!pl)
return -ENOMEM;
@@ -1004,7 +1004,7 @@ struct phy *phy_create(struct device *dev, struct device_node *node,
if (WARN_ON(!dev))
return ERR_PTR(-EINVAL);
- phy = kzalloc(sizeof(*phy), GFP_KERNEL);
+ phy = kzalloc_obj(*phy, GFP_KERNEL);
if (!phy)
return ERR_PTR(-ENOMEM);
@@ -1174,7 +1174,7 @@ struct phy_provider *__of_phy_provider_register(struct device *dev,
children = dev->of_node;
}
- phy_provider = kzalloc(sizeof(*phy_provider), GFP_KERNEL);
+ phy_provider = kzalloc_obj(*phy_provider, GFP_KERNEL);
if (!phy_provider)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/phy/tegra/xusb-tegra124.c b/drivers/phy/tegra/xusb-tegra124.c
index f4f75ea033b8..f180ef8a8829 100644
--- a/drivers/phy/tegra/xusb-tegra124.c
+++ b/drivers/phy/tegra/xusb-tegra124.c
@@ -430,7 +430,7 @@ tegra124_usb2_lane_probe(struct tegra_xusb_pad *pad, struct device_node *np,
struct tegra_xusb_usb2_lane *usb2;
int err;
- usb2 = kzalloc(sizeof(*usb2), GFP_KERNEL);
+ usb2 = kzalloc_obj(*usb2, GFP_KERNEL);
if (!usb2)
return ERR_PTR(-ENOMEM);
@@ -614,7 +614,7 @@ tegra124_usb2_pad_probe(struct tegra_xusb_padctl *padctl,
struct tegra_xusb_pad *pad;
int err;
- usb2 = kzalloc(sizeof(*usb2), GFP_KERNEL);
+ usb2 = kzalloc_obj(*usb2, GFP_KERNEL);
if (!usb2)
return ERR_PTR(-ENOMEM);
@@ -679,7 +679,7 @@ tegra124_ulpi_lane_probe(struct tegra_xusb_pad *pad, struct device_node *np,
struct tegra_xusb_ulpi_lane *ulpi;
int err;
- ulpi = kzalloc(sizeof(*ulpi), GFP_KERNEL);
+ ulpi = kzalloc_obj(*ulpi, GFP_KERNEL);
if (!ulpi)
return ERR_PTR(-ENOMEM);
@@ -751,7 +751,7 @@ tegra124_ulpi_pad_probe(struct tegra_xusb_padctl *padctl,
struct tegra_xusb_pad *pad;
int err;
- ulpi = kzalloc(sizeof(*ulpi), GFP_KERNEL);
+ ulpi = kzalloc_obj(*ulpi, GFP_KERNEL);
if (!ulpi)
return ERR_PTR(-ENOMEM);
@@ -815,7 +815,7 @@ tegra124_hsic_lane_probe(struct tegra_xusb_pad *pad, struct device_node *np,
struct tegra_xusb_hsic_lane *hsic;
int err;
- hsic = kzalloc(sizeof(*hsic), GFP_KERNEL);
+ hsic = kzalloc_obj(*hsic, GFP_KERNEL);
if (!hsic)
return ERR_PTR(-ENOMEM);
@@ -967,7 +967,7 @@ tegra124_hsic_pad_probe(struct tegra_xusb_padctl *padctl,
struct tegra_xusb_pad *pad;
int err;
- hsic = kzalloc(sizeof(*hsic), GFP_KERNEL);
+ hsic = kzalloc_obj(*hsic, GFP_KERNEL);
if (!hsic)
return ERR_PTR(-ENOMEM);
@@ -1035,7 +1035,7 @@ tegra124_pcie_lane_probe(struct tegra_xusb_pad *pad, struct device_node *np,
struct tegra_xusb_pcie_lane *pcie;
int err;
- pcie = kzalloc(sizeof(*pcie), GFP_KERNEL);
+ pcie = kzalloc_obj(*pcie, GFP_KERNEL);
if (!pcie)
return ERR_PTR(-ENOMEM);
@@ -1155,7 +1155,7 @@ tegra124_pcie_pad_probe(struct tegra_xusb_padctl *padctl,
struct tegra_xusb_pad *pad;
int err;
- pcie = kzalloc(sizeof(*pcie), GFP_KERNEL);
+ pcie = kzalloc_obj(*pcie, GFP_KERNEL);
if (!pcie)
return ERR_PTR(-ENOMEM);
@@ -1213,7 +1213,7 @@ tegra124_sata_lane_probe(struct tegra_xusb_pad *pad, struct device_node *np,
struct tegra_xusb_sata_lane *sata;
int err;
- sata = kzalloc(sizeof(*sata), GFP_KERNEL);
+ sata = kzalloc_obj(*sata, GFP_KERNEL);
if (!sata)
return ERR_PTR(-ENOMEM);
@@ -1351,7 +1351,7 @@ tegra124_sata_pad_probe(struct tegra_xusb_padctl *padctl,
struct tegra_xusb_pad *pad;
int err;
- sata = kzalloc(sizeof(*sata), GFP_KERNEL);
+ sata = kzalloc_obj(*sata, GFP_KERNEL);
if (!sata)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/phy/tegra/xusb-tegra186.c b/drivers/phy/tegra/xusb-tegra186.c
index bec9616c4a2e..eb643af34d68 100644
--- a/drivers/phy/tegra/xusb-tegra186.c
+++ b/drivers/phy/tegra/xusb-tegra186.c
@@ -302,7 +302,7 @@ tegra186_usb2_lane_probe(struct tegra_xusb_pad *pad, struct device_node *np,
struct tegra_xusb_usb2_lane *usb2;
int err;
- usb2 = kzalloc(sizeof(*usb2), GFP_KERNEL);
+ usb2 = kzalloc_obj(*usb2, GFP_KERNEL);
if (!usb2)
return ERR_PTR(-ENOMEM);
@@ -1031,7 +1031,7 @@ tegra186_usb2_pad_probe(struct tegra_xusb_padctl *padctl,
struct tegra_xusb_pad *pad;
int err;
- usb2 = kzalloc(sizeof(*usb2), GFP_KERNEL);
+ usb2 = kzalloc_obj(*usb2, GFP_KERNEL);
if (!usb2)
return ERR_PTR(-ENOMEM);
@@ -1113,7 +1113,7 @@ tegra186_usb3_lane_probe(struct tegra_xusb_pad *pad, struct device_node *np,
struct tegra_xusb_usb3_lane *usb3;
int err;
- usb3 = kzalloc(sizeof(*usb3), GFP_KERNEL);
+ usb3 = kzalloc_obj(*usb3, GFP_KERNEL);
if (!usb3)
return ERR_PTR(-ENOMEM);
@@ -1417,7 +1417,7 @@ tegra186_usb3_pad_probe(struct tegra_xusb_padctl *padctl,
struct tegra_xusb_pad *pad;
int err;
- usb3 = kzalloc(sizeof(*usb3), GFP_KERNEL);
+ usb3 = kzalloc_obj(*usb3, GFP_KERNEL);
if (!usb3)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/phy/tegra/xusb-tegra210.c b/drivers/phy/tegra/xusb-tegra210.c
index 3409924498e9..872ae93e0722 100644
--- a/drivers/phy/tegra/xusb-tegra210.c
+++ b/drivers/phy/tegra/xusb-tegra210.c
@@ -1759,7 +1759,7 @@ tegra210_usb2_lane_probe(struct tegra_xusb_pad *pad, struct device_node *np,
struct tegra_xusb_usb2_lane *usb2;
int err;
- usb2 = kzalloc(sizeof(*usb2), GFP_KERNEL);
+ usb2 = kzalloc_obj(*usb2, GFP_KERNEL);
if (!usb2)
return ERR_PTR(-ENOMEM);
@@ -2185,7 +2185,7 @@ tegra210_usb2_pad_probe(struct tegra_xusb_padctl *padctl,
struct tegra_xusb_pad *pad;
int err;
- usb2 = kzalloc(sizeof(*usb2), GFP_KERNEL);
+ usb2 = kzalloc_obj(*usb2, GFP_KERNEL);
if (!usb2)
return ERR_PTR(-ENOMEM);
@@ -2255,7 +2255,7 @@ tegra210_hsic_lane_probe(struct tegra_xusb_pad *pad, struct device_node *np,
struct tegra_xusb_hsic_lane *hsic;
int err;
- hsic = kzalloc(sizeof(*hsic), GFP_KERNEL);
+ hsic = kzalloc_obj(*hsic, GFP_KERNEL);
if (!hsic)
return ERR_PTR(-ENOMEM);
@@ -2439,7 +2439,7 @@ tegra210_hsic_pad_probe(struct tegra_xusb_padctl *padctl,
struct tegra_xusb_pad *pad;
int err;
- hsic = kzalloc(sizeof(*hsic), GFP_KERNEL);
+ hsic = kzalloc_obj(*hsic, GFP_KERNEL);
if (!hsic)
return ERR_PTR(-ENOMEM);
@@ -2688,7 +2688,7 @@ tegra210_pcie_lane_probe(struct tegra_xusb_pad *pad, struct device_node *np,
struct tegra_xusb_pcie_lane *pcie;
int err;
- pcie = kzalloc(sizeof(*pcie), GFP_KERNEL);
+ pcie = kzalloc_obj(*pcie, GFP_KERNEL);
if (!pcie)
return ERR_PTR(-ENOMEM);
@@ -2786,7 +2786,7 @@ tegra210_pcie_pad_probe(struct tegra_xusb_padctl *padctl,
struct tegra_xusb_pad *pad;
int err;
- pcie = kzalloc(sizeof(*pcie), GFP_KERNEL);
+ pcie = kzalloc_obj(*pcie, GFP_KERNEL);
if (!pcie)
return ERR_PTR(-ENOMEM);
@@ -2858,7 +2858,7 @@ tegra210_sata_lane_probe(struct tegra_xusb_pad *pad, struct device_node *np,
struct tegra_xusb_sata_lane *sata;
int err;
- sata = kzalloc(sizeof(*sata), GFP_KERNEL);
+ sata = kzalloc_obj(*sata, GFP_KERNEL);
if (!sata)
return ERR_PTR(-ENOMEM);
@@ -2955,7 +2955,7 @@ tegra210_sata_pad_probe(struct tegra_xusb_padctl *padctl,
struct tegra_xusb_pad *pad;
int err;
- sata = kzalloc(sizeof(*sata), GFP_KERNEL);
+ sata = kzalloc_obj(*sata, GFP_KERNEL);
if (!sata)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/phy/tegra/xusb.c b/drivers/phy/tegra/xusb.c
index c89df95aa6ca..6667ac08754d 100644
--- a/drivers/phy/tegra/xusb.c
+++ b/drivers/phy/tegra/xusb.c
@@ -796,7 +796,7 @@ static int tegra_xusb_add_usb2_port(struct tegra_xusb_padctl *padctl,
if (!np || !of_device_is_available(np))
goto out;
- usb2 = kzalloc(sizeof(*usb2), GFP_KERNEL);
+ usb2 = kzalloc_obj(*usb2, GFP_KERNEL);
if (!usb2) {
err = -ENOMEM;
goto out;
@@ -863,7 +863,7 @@ static int tegra_xusb_add_ulpi_port(struct tegra_xusb_padctl *padctl,
if (!np || !of_device_is_available(np))
goto out;
- ulpi = kzalloc(sizeof(*ulpi), GFP_KERNEL);
+ ulpi = kzalloc_obj(*ulpi, GFP_KERNEL);
if (!ulpi) {
err = -ENOMEM;
goto out;
@@ -919,7 +919,7 @@ static int tegra_xusb_add_hsic_port(struct tegra_xusb_padctl *padctl,
if (!np || !of_device_is_available(np))
goto out;
- hsic = kzalloc(sizeof(*hsic), GFP_KERNEL);
+ hsic = kzalloc_obj(*hsic, GFP_KERNEL);
if (!hsic) {
err = -ENOMEM;
goto out;
@@ -1004,7 +1004,7 @@ static int tegra_xusb_add_usb3_port(struct tegra_xusb_padctl *padctl,
if (!np || !of_device_is_available(np))
goto out;
- usb3 = kzalloc(sizeof(*usb3), GFP_KERNEL);
+ usb3 = kzalloc_obj(*usb3, GFP_KERNEL);
if (!usb3) {
err = -ENOMEM;
goto out;
diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
index c165674c5b4d..8383c14035ef 100644
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
@@ -803,7 +803,7 @@ static int bcm2835_pctl_dt_node_to_map_pull(struct bcm2835_pinctrl *pc,
return -EINVAL;
}
- configs = kzalloc(sizeof(*configs), GFP_KERNEL);
+ configs = kzalloc_obj(*configs, GFP_KERNEL);
if (!configs)
return -ENOMEM;
configs[0] = pinconf_to_config_packed(BCM2835_PINCONF_PARAM_PULL, pull);
@@ -873,8 +873,8 @@ static int bcm2835_pctl_dt_node_to_map(struct pinctrl_dev *pctldev,
maps_per_pin++;
if (num_pulls)
maps_per_pin++;
- cur_map = maps = kcalloc(num_pins * maps_per_pin, sizeof(*maps),
- GFP_KERNEL);
+ cur_map = maps = kzalloc_objs(*maps, num_pins * maps_per_pin,
+ GFP_KERNEL);
if (!maps)
return -ENOMEM;
diff --git a/drivers/pinctrl/berlin/berlin.c b/drivers/pinctrl/berlin/berlin.c
index 8afcfa4e5694..f58cb046e9ea 100644
--- a/drivers/pinctrl/berlin/berlin.c
+++ b/drivers/pinctrl/berlin/berlin.c
@@ -215,7 +215,8 @@ static int berlin_pinctrl_build_state(struct platform_device *pdev)
}
/* we will reallocate later */
- pctrl->functions = kcalloc(max_functions, sizeof(*pctrl->functions), GFP_KERNEL);
+ pctrl->functions = kzalloc_objs(*pctrl->functions, max_functions,
+ GFP_KERNEL);
if (!pctrl->functions)
return -ENOMEM;
diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
index 342bda2a1bd6..3d728ed310f4 100644
--- a/drivers/pinctrl/core.c
+++ b/drivers/pinctrl/core.c
@@ -215,7 +215,7 @@ static int pinctrl_register_one_pin(struct pinctrl_dev *pctldev,
return -EINVAL;
}
- pindesc = kzalloc(sizeof(*pindesc), GFP_KERNEL);
+ pindesc = kzalloc_obj(*pindesc, GFP_KERNEL);
if (!pindesc)
return -ENOMEM;
@@ -955,7 +955,7 @@ static struct pinctrl_state *create_state(struct pinctrl *p,
{
struct pinctrl_state *state;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return ERR_PTR(-ENOMEM);
@@ -983,7 +983,7 @@ static int add_setting(struct pinctrl *p, struct pinctrl_dev *pctldev,
if (map->type == PIN_MAP_TYPE_DUMMY_STATE)
return 0;
- setting = kzalloc(sizeof(*setting), GFP_KERNEL);
+ setting = kzalloc_obj(*setting, GFP_KERNEL);
if (!setting)
return -ENOMEM;
@@ -1063,7 +1063,7 @@ static struct pinctrl *create_pinctrl(struct device *dev,
* mapping, this is what consumers will get when requesting
* a pin control handle with pinctrl_get()
*/
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return ERR_PTR(-ENOMEM);
p->dev = dev;
@@ -1483,7 +1483,7 @@ int pinctrl_register_mappings(const struct pinctrl_map *maps,
}
}
- maps_node = kzalloc(sizeof(*maps_node), GFP_KERNEL);
+ maps_node = kzalloc_obj(*maps_node, GFP_KERNEL);
if (!maps_node)
return -ENOMEM;
@@ -2076,7 +2076,7 @@ pinctrl_init_controller(const struct pinctrl_desc *pctldesc, struct device *dev,
if (!pctldesc->name)
return ERR_PTR(-EINVAL);
- pctldev = kzalloc(sizeof(*pctldev), GFP_KERNEL);
+ pctldev = kzalloc_obj(*pctldev, GFP_KERNEL);
if (!pctldev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/pinctrl/devicetree.c b/drivers/pinctrl/devicetree.c
index 0b7f74beb6a6..ed3671f94463 100644
--- a/drivers/pinctrl/devicetree.c
+++ b/drivers/pinctrl/devicetree.c
@@ -84,7 +84,7 @@ static int dt_remember_or_free_map(struct pinctrl *p, const char *statename,
}
/* Remember the converted mapping table entries */
- dt_map = kzalloc(sizeof(*dt_map), GFP_KERNEL);
+ dt_map = kzalloc_obj(*dt_map, GFP_KERNEL);
if (!dt_map)
goto err_free_map;
@@ -187,7 +187,7 @@ static int dt_remember_dummy_state(struct pinctrl *p, const char *statename)
{
struct pinctrl_map *map;
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (!map)
return -ENOMEM;
diff --git a/drivers/pinctrl/freescale/pinctrl-imx-scmi.c b/drivers/pinctrl/freescale/pinctrl-imx-scmi.c
index dab2fabdf456..9e3f29e8d993 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx-scmi.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx-scmi.c
@@ -99,8 +99,7 @@ static int pinctrl_scmi_imx_dt_node_to_map(struct pinctrl_dev *pctldev,
num_pins = size / pin_size;
map_num = num_pins;
- new_map = kmalloc_array(map_num, sizeof(struct pinctrl_map),
- GFP_KERNEL);
+ new_map = kmalloc_objs(struct pinctrl_map, map_num, GFP_KERNEL);
if (!new_map)
return -ENOMEM;
diff --git a/drivers/pinctrl/freescale/pinctrl-imx.c b/drivers/pinctrl/freescale/pinctrl-imx.c
index 731c58ad43ee..1d892cbb59a6 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx.c
@@ -88,8 +88,7 @@ static int imx_dt_node_to_map(struct pinctrl_dev *pctldev,
}
}
- new_map = kmalloc_array(map_num, sizeof(struct pinctrl_map),
- GFP_KERNEL);
+ new_map = kmalloc_objs(struct pinctrl_map, map_num, GFP_KERNEL);
if (!new_map)
return -ENOMEM;
diff --git a/drivers/pinctrl/freescale/pinctrl-imx1-core.c b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
index af1ccfc90bff..abffe09bdb83 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx1-core.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
@@ -244,8 +244,7 @@ static int imx1_dt_node_to_map(struct pinctrl_dev *pctldev,
for (i = 0; i < grp->npins; i++)
map_num++;
- new_map = kmalloc_array(map_num, sizeof(struct pinctrl_map),
- GFP_KERNEL);
+ new_map = kmalloc_objs(struct pinctrl_map, map_num, GFP_KERNEL);
if (!new_map)
return -ENOMEM;
diff --git a/drivers/pinctrl/freescale/pinctrl-mxs.c b/drivers/pinctrl/freescale/pinctrl-mxs.c
index edb242d30609..e11697efeb47 100644
--- a/drivers/pinctrl/freescale/pinctrl-mxs.c
+++ b/drivers/pinctrl/freescale/pinctrl-mxs.c
@@ -92,7 +92,7 @@ static int mxs_dt_node_to_map(struct pinctrl_dev *pctldev,
if (!purecfg && config)
new_num = 2;
- new_map = kcalloc(new_num, sizeof(*new_map), GFP_KERNEL);
+ new_map = kzalloc_objs(*new_map, new_num, GFP_KERNEL);
if (!new_map)
return -ENOMEM;
diff --git a/drivers/pinctrl/mvebu/pinctrl-mvebu.c b/drivers/pinctrl/mvebu/pinctrl-mvebu.c
index 84a119718f86..59fede73c31d 100644
--- a/drivers/pinctrl/mvebu/pinctrl-mvebu.c
+++ b/drivers/pinctrl/mvebu/pinctrl-mvebu.c
@@ -430,7 +430,7 @@ static int mvebu_pinctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
return 0;
}
- *map = kmalloc_array(nmaps, sizeof(**map), GFP_KERNEL);
+ *map = kmalloc_objs(**map, nmaps, GFP_KERNEL);
if (!*map)
return -ENOMEM;
diff --git a/drivers/pinctrl/nuvoton/pinctrl-ma35.c b/drivers/pinctrl/nuvoton/pinctrl-ma35.c
index 8d71dc53cc1d..9bbf73de5747 100644
--- a/drivers/pinctrl/nuvoton/pinctrl-ma35.c
+++ b/drivers/pinctrl/nuvoton/pinctrl-ma35.c
@@ -202,7 +202,7 @@ static int ma35_pinctrl_dt_node_to_map_func(struct pinctrl_dev *pctldev,
}
map_num += grp->grp.npins;
- new_map = kcalloc(map_num, sizeof(*new_map), GFP_KERNEL);
+ new_map = kzalloc_objs(*new_map, map_num, GFP_KERNEL);
if (!new_map)
return -ENOMEM;
diff --git a/drivers/pinctrl/nxp/pinctrl-s32cc.c b/drivers/pinctrl/nxp/pinctrl-s32cc.c
index 35511f83d056..e811803b7cc5 100644
--- a/drivers/pinctrl/nxp/pinctrl-s32cc.c
+++ b/drivers/pinctrl/nxp/pinctrl-s32cc.c
@@ -386,7 +386,7 @@ static int s32_pmx_gpio_request_enable(struct pinctrl_dev *pctldev,
return ret;
/* Save current configuration */
- gpio_pin = kmalloc(sizeof(*gpio_pin), GFP_KERNEL);
+ gpio_pin = kmalloc_obj(*gpio_pin, GFP_KERNEL);
if (!gpio_pin)
return -ENOMEM;
diff --git a/drivers/pinctrl/pinctrl-apple-gpio.c b/drivers/pinctrl/pinctrl-apple-gpio.c
index 2bd5013b19ac..c0ae52880b2e 100644
--- a/drivers/pinctrl/pinctrl-apple-gpio.c
+++ b/drivers/pinctrl/pinctrl-apple-gpio.c
@@ -400,8 +400,8 @@ static int apple_gpio_register(struct apple_gpio_pinctrl *pctl)
girq->parents = kmalloc_array(girq->num_parents,
sizeof(*girq->parents),
GFP_KERNEL);
- irq_data = kmalloc_array(girq->num_parents, sizeof(*irq_data),
- GFP_KERNEL);
+ irq_data = kmalloc_objs(*irq_data, girq->num_parents,
+ GFP_KERNEL);
if (!girq->parents || !irq_data) {
ret = -ENOMEM;
goto out_free_irq_data;
diff --git a/drivers/pinctrl/pinctrl-k230.c b/drivers/pinctrl/pinctrl-k230.c
index 20f7c0f70eb7..8aeb540390c8 100644
--- a/drivers/pinctrl/pinctrl-k230.c
+++ b/drivers/pinctrl/pinctrl-k230.c
@@ -211,7 +211,7 @@ static int k230_dt_node_to_map(struct pinctrl_dev *pctldev,
map_num += info->groups[grp_id].num_pins + 1;
}
- new_map = kcalloc(map_num, sizeof(*new_map), GFP_KERNEL);
+ new_map = kzalloc_objs(*new_map, map_num, GFP_KERNEL);
if (!new_map)
return -ENOMEM;
*map = new_map;
diff --git a/drivers/pinctrl/pinctrl-ocelot.c b/drivers/pinctrl/pinctrl-ocelot.c
index 6ea9544ddd06..0fe0527863b8 100644
--- a/drivers/pinctrl/pinctrl-ocelot.c
+++ b/drivers/pinctrl/pinctrl-ocelot.c
@@ -2262,7 +2262,7 @@ static void ocelot_irq_unmask_level(struct irq_data *data)
if (active) {
struct ocelot_irq_work *work;
- work = kmalloc(sizeof(*work), GFP_ATOMIC);
+ work = kmalloc_obj(*work, GFP_ATOMIC);
if (!work)
return;
diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c
index 816823403e97..7e838a230cfe 100644
--- a/drivers/pinctrl/pinctrl-rockchip.c
+++ b/drivers/pinctrl/pinctrl-rockchip.c
@@ -415,7 +415,7 @@ static int rockchip_dt_node_to_map(struct pinctrl_dev *pctldev,
map_num += grp->npins;
- new_map = kcalloc(map_num, sizeof(*new_map), GFP_KERNEL);
+ new_map = kzalloc_objs(*new_map, map_num, GFP_KERNEL);
if (!new_map)
return -ENOMEM;
@@ -3604,7 +3604,7 @@ static int rockchip_pinconf_defer_pin(struct rockchip_pin_bank *bank,
{
struct rockchip_pin_deferred *cfg;
- cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
+ cfg = kzalloc_obj(*cfg, GFP_KERNEL);
if (!cfg)
return -ENOMEM;
diff --git a/drivers/pinctrl/pinctrl-rp1.c b/drivers/pinctrl/pinctrl-rp1.c
index ffc2f0b460a6..15ac2a6625c6 100644
--- a/drivers/pinctrl/pinctrl-rp1.c
+++ b/drivers/pinctrl/pinctrl-rp1.c
@@ -1158,7 +1158,7 @@ static int rp1_pctl_legacy_map_pull(struct rp1_pinctrl *pc,
return -EINVAL;
}
- configs = kzalloc(sizeof(*configs), GFP_KERNEL);
+ configs = kzalloc_obj(*configs, GFP_KERNEL);
if (!configs)
return -ENOMEM;
@@ -1233,7 +1233,7 @@ static int rp1_pctl_dt_node_to_map(struct pinctrl_dev *pctldev,
if (num_configs || num_pulls)
maps_per_pin++;
reserved_maps = num_pins * maps_per_pin;
- maps = kcalloc(reserved_maps, sizeof(*maps), GFP_KERNEL);
+ maps = kzalloc_objs(*maps, reserved_maps, GFP_KERNEL);
if (!maps)
return -ENOMEM;
diff --git a/drivers/pinctrl/pinctrl-scmi.c b/drivers/pinctrl/pinctrl-scmi.c
index d5fb8649cd9a..51434aa4d99f 100644
--- a/drivers/pinctrl/pinctrl-scmi.c
+++ b/drivers/pinctrl/pinctrl-scmi.c
@@ -319,7 +319,7 @@ pinctrl_scmi_alloc_configs(struct pinctrl_dev *pctldev, u32 num_configs,
if (!*p_config_value)
return -ENOMEM;
- *p_config_type = kcalloc(num_configs, sizeof(**p_config_type), GFP_KERNEL);
+ *p_config_type = kzalloc_objs(**p_config_type, num_configs, GFP_KERNEL);
if (!*p_config_type) {
kfree(*p_config_value);
return -ENOMEM;
diff --git a/drivers/pinctrl/pinctrl-th1520.c b/drivers/pinctrl/pinctrl-th1520.c
index 83e9c9f77370..3539c8b4d107 100644
--- a/drivers/pinctrl/pinctrl-th1520.c
+++ b/drivers/pinctrl/pinctrl-th1520.c
@@ -447,7 +447,7 @@ static int th1520_pinctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
nmaps += npins;
}
- map = kcalloc(nmaps, sizeof(*map), GFP_KERNEL);
+ map = kzalloc_objs(*map, nmaps, GFP_KERNEL);
if (!map)
return -ENOMEM;
diff --git a/drivers/pinctrl/renesas/core.c b/drivers/pinctrl/renesas/core.c
index 96d6040a8871..ec74bc54286b 100644
--- a/drivers/pinctrl/renesas/core.c
+++ b/drivers/pinctrl/renesas/core.c
@@ -1273,8 +1273,7 @@ static void __init sh_pfc_check_driver(const struct platform_driver *pdrv)
!of_find_matching_node(NULL, pdrv->driver.of_match_table))
return;
- sh_pfc_regs = kcalloc(SH_PFC_MAX_REGS, sizeof(*sh_pfc_regs),
- GFP_KERNEL);
+ sh_pfc_regs = kzalloc_objs(*sh_pfc_regs, SH_PFC_MAX_REGS, GFP_KERNEL);
if (!sh_pfc_regs)
return;
diff --git a/drivers/pinctrl/renesas/pinctrl-rza1.c b/drivers/pinctrl/renesas/pinctrl-rza1.c
index 3cfa4c8be80e..3be4ee9d1419 100644
--- a/drivers/pinctrl/renesas/pinctrl-rza1.c
+++ b/drivers/pinctrl/renesas/pinctrl-rza1.c
@@ -1062,7 +1062,7 @@ static int rza1_dt_node_to_map(struct pinctrl_dev *pctldev,
/* Create map where to retrieve function and mux settings from */
*num_maps = 0;
- *map = kzalloc(sizeof(**map), GFP_KERNEL);
+ *map = kzalloc_obj(**map, GFP_KERNEL);
if (!*map) {
ret = -ENOMEM;
goto remove_function;
diff --git a/drivers/pinctrl/renesas/pinctrl-rza2.c b/drivers/pinctrl/renesas/pinctrl-rza2.c
index 29a9db197599..1d43abc14df7 100644
--- a/drivers/pinctrl/renesas/pinctrl-rza2.c
+++ b/drivers/pinctrl/renesas/pinctrl-rza2.c
@@ -395,7 +395,7 @@ static int rza2_dt_node_to_map(struct pinctrl_dev *pctldev,
/* Create map where to retrieve function and mux settings from */
*num_maps = 0;
- *map = kzalloc(sizeof(**map), GFP_KERNEL);
+ *map = kzalloc_obj(**map, GFP_KERNEL);
if (!*map) {
ret = -ENOMEM;
goto remove_function;
diff --git a/drivers/pinctrl/sophgo/pinctrl-sophgo-common.c b/drivers/pinctrl/sophgo/pinctrl-sophgo-common.c
index 7f1fd68db19e..5aef2a1082b5 100644
--- a/drivers/pinctrl/sophgo/pinctrl-sophgo-common.c
+++ b/drivers/pinctrl/sophgo/pinctrl-sophgo-common.c
@@ -94,7 +94,7 @@ int sophgo_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev, struct device_node
if (!grpnames)
return -ENOMEM;
- map = kcalloc(ngroups * 2, sizeof(*map), GFP_KERNEL);
+ map = kzalloc_objs(*map, ngroups * 2, GFP_KERNEL);
if (!map)
return -ENOMEM;
diff --git a/drivers/pinctrl/spacemit/pinctrl-k1.c b/drivers/pinctrl/spacemit/pinctrl-k1.c
index 71390402aaa6..1b29313ab36d 100644
--- a/drivers/pinctrl/spacemit/pinctrl-k1.c
+++ b/drivers/pinctrl/spacemit/pinctrl-k1.c
@@ -499,7 +499,7 @@ static int spacemit_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
if (!grpnames)
return -ENOMEM;
- map = kcalloc(ngroups * 2, sizeof(*map), GFP_KERNEL);
+ map = kzalloc_objs(*map, ngroups * 2, GFP_KERNEL);
if (!map)
return -ENOMEM;
diff --git a/drivers/pinctrl/spear/pinctrl-spear.c b/drivers/pinctrl/spear/pinctrl-spear.c
index a8c5fe973cd4..5af70ec62a76 100644
--- a/drivers/pinctrl/spear/pinctrl-spear.c
+++ b/drivers/pinctrl/spear/pinctrl-spear.c
@@ -173,7 +173,7 @@ static int spear_pinctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
return -ENODEV;
}
- *map = kcalloc(count, sizeof(**map), GFP_KERNEL);
+ *map = kzalloc_objs(**map, count, GFP_KERNEL);
if (!*map)
return -ENOMEM;
diff --git a/drivers/pinctrl/starfive/pinctrl-starfive-jh7100.c b/drivers/pinctrl/starfive/pinctrl-starfive-jh7100.c
index 7fa13f282b85..a58c7e1362a9 100644
--- a/drivers/pinctrl/starfive/pinctrl-starfive-jh7100.c
+++ b/drivers/pinctrl/starfive/pinctrl-starfive-jh7100.c
@@ -517,7 +517,7 @@ static int starfive_dt_node_to_map(struct pinctrl_dev *pctldev,
if (!pgnames)
return -ENOMEM;
- map = kcalloc(nmaps, sizeof(*map), GFP_KERNEL);
+ map = kzalloc_objs(*map, nmaps, GFP_KERNEL);
if (!map)
return -ENOMEM;
diff --git a/drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c b/drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c
index eb5cf8c067d1..6822a077d36f 100644
--- a/drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c
+++ b/drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c
@@ -143,7 +143,7 @@ static int jh7110_dt_node_to_map(struct pinctrl_dev *pctldev,
if (!pgnames)
return -ENOMEM;
- map = kcalloc(nmaps, sizeof(*map), GFP_KERNEL);
+ map = kzalloc_objs(*map, nmaps, GFP_KERNEL);
if (!map)
return -ENOMEM;
diff --git a/drivers/pinctrl/sunplus/sppctl.c b/drivers/pinctrl/sunplus/sppctl.c
index fabe7efaa837..66575987f34b 100644
--- a/drivers/pinctrl/sunplus/sppctl.c
+++ b/drivers/pinctrl/sunplus/sppctl.c
@@ -865,7 +865,7 @@ static int sppctl_dt_node_to_map(struct pinctrl_dev *pctldev, struct device_node
if (nmG <= 0)
nmG = 0;
- *map = kcalloc(*num_maps + nmG, sizeof(**map), GFP_KERNEL);
+ *map = kzalloc_objs(**map, *num_maps + nmG, GFP_KERNEL);
if (!(*map))
return -ENOMEM;
@@ -882,7 +882,7 @@ static int sppctl_dt_node_to_map(struct pinctrl_dev *pctldev, struct device_node
(*map)[i].type = PIN_MAP_TYPE_CONFIGS_PIN;
(*map)[i].data.configs.num_configs = 1;
(*map)[i].data.configs.group_or_pin = pin_get_name(pctldev, pin_num);
- configs = kmalloc(sizeof(*configs), GFP_KERNEL);
+ configs = kmalloc_obj(*configs, GFP_KERNEL);
if (!configs)
goto sppctl_map_err;
*configs = FIELD_GET(GENMASK(7, 0), dt_pin);
@@ -897,7 +897,7 @@ static int sppctl_dt_node_to_map(struct pinctrl_dev *pctldev, struct device_node
(*map)[i].type = PIN_MAP_TYPE_CONFIGS_PIN;
(*map)[i].data.configs.num_configs = 1;
(*map)[i].data.configs.group_or_pin = pin_get_name(pctldev, pin_num);
- configs = kmalloc(sizeof(*configs), GFP_KERNEL);
+ configs = kmalloc_obj(*configs, GFP_KERNEL);
if (!configs)
goto sppctl_map_err;
*configs = SPPCTL_IOP_CONFIGS;
diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
index 0fb057a07dcc..c41b91a5371f 100644
--- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
+++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
@@ -435,7 +435,7 @@ static int sunxi_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
* any configuration.
*/
nmaps = npins * 2;
- *map = kmalloc_array(nmaps, sizeof(struct pinctrl_map), GFP_KERNEL);
+ *map = kmalloc_objs(struct pinctrl_map, nmaps, GFP_KERNEL);
if (!*map)
return -ENOMEM;
@@ -1328,9 +1328,8 @@ static int sunxi_pinctrl_build_state(struct platform_device *pdev)
* special functions per pin, plus one entry for the sentinel.
* We'll reallocate that later anyway.
*/
- pctl->functions = kcalloc(7 * pctl->ngroups + 4,
- sizeof(*pctl->functions),
- GFP_KERNEL);
+ pctl->functions = kzalloc_objs(*pctl->functions, 7 * pctl->ngroups + 4,
+ GFP_KERNEL);
if (!pctl->functions)
return -ENOMEM;
diff --git a/drivers/pinctrl/vt8500/pinctrl-wmt.c b/drivers/pinctrl/vt8500/pinctrl-wmt.c
index 7213a8d4bf09..f67a675acd24 100644
--- a/drivers/pinctrl/vt8500/pinctrl-wmt.c
+++ b/drivers/pinctrl/vt8500/pinctrl-wmt.c
@@ -251,7 +251,7 @@ static int wmt_pctl_dt_node_to_map_pull(struct wmt_pinctrl_data *data,
return group;
}
- configs = kzalloc(sizeof(*configs), GFP_KERNEL);
+ configs = kzalloc_obj(*configs, GFP_KERNEL);
if (!configs)
return -ENOMEM;
@@ -344,8 +344,8 @@ static int wmt_pctl_dt_node_to_map(struct pinctrl_dev *pctldev,
if (num_pulls)
maps_per_pin++;
- cur_map = maps = kcalloc(num_pins * maps_per_pin, sizeof(*maps),
- GFP_KERNEL);
+ cur_map = maps = kzalloc_objs(*maps, num_pins * maps_per_pin,
+ GFP_KERNEL);
if (!maps)
return -ENOMEM;
diff --git a/drivers/platform/arm64/huawei-gaokun-ec.c b/drivers/platform/arm64/huawei-gaokun-ec.c
index 7170f8eb76f7..23a727bb230c 100644
--- a/drivers/platform/arm64/huawei-gaokun-ec.c
+++ b/drivers/platform/arm64/huawei-gaokun-ec.c
@@ -680,7 +680,7 @@ static int gaokun_aux_init(struct device *parent, const char *name,
struct auxiliary_device *adev;
int ret;
- adev = kzalloc(sizeof(*adev), GFP_KERNEL);
+ adev = kzalloc_obj(*adev, GFP_KERNEL);
if (!adev)
return -ENOMEM;
diff --git a/drivers/platform/chrome/chromeos_laptop.c b/drivers/platform/chrome/chromeos_laptop.c
index 0b92047265de..7a019827afa5 100644
--- a/drivers/platform/chrome/chromeos_laptop.c
+++ b/drivers/platform/chrome/chromeos_laptop.c
@@ -807,9 +807,8 @@ chromeos_laptop_prepare_acpi_peripherals(struct chromeos_laptop *cros_laptop,
if (!n_peripherals)
return 0;
- acpi_peripherals = kcalloc(n_peripherals,
- sizeof(*src->acpi_peripherals),
- GFP_KERNEL);
+ acpi_peripherals = kzalloc_objs(*src->acpi_peripherals, n_peripherals,
+ GFP_KERNEL);
if (!acpi_peripherals)
return -ENOMEM;
@@ -881,7 +880,7 @@ chromeos_laptop_prepare(const struct chromeos_laptop *src)
struct chromeos_laptop *cros_laptop;
int error;
- cros_laptop = kzalloc(sizeof(*cros_laptop), GFP_KERNEL);
+ cros_laptop = kzalloc_obj(*cros_laptop, GFP_KERNEL);
if (!cros_laptop)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/platform/chrome/cros_ec_chardev.c b/drivers/platform/chrome/cros_ec_chardev.c
index c9d80ad5b57e..a2c919caa220 100644
--- a/drivers/platform/chrome/cros_ec_chardev.c
+++ b/drivers/platform/chrome/cros_ec_chardev.c
@@ -162,7 +162,7 @@ static int cros_ec_chardev_open(struct inode *inode, struct file *filp)
struct chardev_priv *priv;
int ret;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/platform/chrome/wilco_ec/event.c b/drivers/platform/chrome/wilco_ec/event.c
index 196e46a1d489..e7f85d6f29f1 100644
--- a/drivers/platform/chrome/wilco_ec/event.c
+++ b/drivers/platform/chrome/wilco_ec/event.c
@@ -106,7 +106,7 @@ static struct ec_event_queue *event_queue_new(int capacity)
{
struct ec_event_queue *q;
- q = kzalloc(struct_size(q, entries, capacity), GFP_KERNEL);
+ q = kzalloc_flex(*q, entries, capacity, GFP_KERNEL);
if (!q)
return NULL;
@@ -457,7 +457,7 @@ static int event_device_add(struct acpi_device *adev)
return error;
}
- dev_data = kzalloc(sizeof(*dev_data), GFP_KERNEL);
+ dev_data = kzalloc_obj(*dev_data, GFP_KERNEL);
if (!dev_data) {
error = -ENOMEM;
goto free_minor;
diff --git a/drivers/platform/chrome/wilco_ec/telemetry.c b/drivers/platform/chrome/wilco_ec/telemetry.c
index b18043e31ae4..6375bbb6d6ce 100644
--- a/drivers/platform/chrome/wilco_ec/telemetry.c
+++ b/drivers/platform/chrome/wilco_ec/telemetry.c
@@ -248,7 +248,7 @@ static int telem_open(struct inode *inode, struct file *filp)
get_device(&dev_data->dev);
- sess_data = kzalloc(sizeof(*sess_data), GFP_KERNEL);
+ sess_data = kzalloc_obj(*sess_data, GFP_KERNEL);
if (!sess_data) {
atomic_set(&dev_data->available, 1);
return -ENOMEM;
@@ -370,7 +370,7 @@ static int telem_device_probe(struct platform_device *pdev)
return error;
}
- dev_data = kzalloc(sizeof(*dev_data), GFP_KERNEL);
+ dev_data = kzalloc_obj(*dev_data, GFP_KERNEL);
if (!dev_data) {
ida_free(&telem_ida, minor);
return -ENOMEM;
diff --git a/drivers/platform/goldfish/goldfish_pipe.c b/drivers/platform/goldfish/goldfish_pipe.c
index abc31971fe6a..370259ef3bfe 100644
--- a/drivers/platform/goldfish/goldfish_pipe.c
+++ b/drivers/platform/goldfish/goldfish_pipe.c
@@ -660,7 +660,7 @@ static int get_free_pipe_id_locked(struct goldfish_pipe_dev *dev)
*/
u32 new_capacity = 2 * dev->pipes_capacity;
struct goldfish_pipe **pipes =
- kcalloc(new_capacity, sizeof(*pipes), GFP_ATOMIC);
+ kzalloc_objs(*pipes, new_capacity, GFP_ATOMIC);
if (!pipes)
return -ENOMEM;
memcpy(pipes, dev->pipes, sizeof(*pipes) * dev->pipes_capacity);
@@ -699,7 +699,7 @@ static int goldfish_pipe_open(struct inode *inode, struct file *file)
int status;
/* Allocate new pipe kernel object */
- struct goldfish_pipe *pipe = kzalloc(sizeof(*pipe), GFP_KERNEL);
+ struct goldfish_pipe *pipe = kzalloc_obj(*pipe, GFP_KERNEL);
if (!pipe)
return -ENOMEM;
@@ -826,8 +826,7 @@ static int goldfish_pipe_device_init(struct platform_device *pdev,
dev->pdev_dev = &pdev->dev;
dev->first_signalled_pipe = NULL;
dev->pipes_capacity = INITIAL_PIPES_CAPACITY;
- dev->pipes = kcalloc(dev->pipes_capacity, sizeof(*dev->pipes),
- GFP_KERNEL);
+ dev->pipes = kzalloc_objs(*dev->pipes, dev->pipes_capacity, GFP_KERNEL);
if (!dev->pipes) {
misc_deregister(&dev->miscdev);
return -ENOMEM;
diff --git a/drivers/platform/mellanox/mlxbf-tmfifo.c b/drivers/platform/mellanox/mlxbf-tmfifo.c
index 14aa87b39be5..7fea80d3220c 100644
--- a/drivers/platform/mellanox/mlxbf-tmfifo.c
+++ b/drivers/platform/mellanox/mlxbf-tmfifo.c
@@ -1203,7 +1203,7 @@ static int mlxbf_tmfifo_create_vdev(struct device *dev,
goto fail;
}
- tm_vdev = kzalloc(sizeof(*tm_vdev), GFP_KERNEL);
+ tm_vdev = kzalloc_obj(*tm_vdev, GFP_KERNEL);
if (!tm_vdev) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/platform/olpc/olpc-ec.c b/drivers/platform/olpc/olpc-ec.c
index 48e9861bb571..6a6f94ee93f4 100644
--- a/drivers/platform/olpc/olpc-ec.c
+++ b/drivers/platform/olpc/olpc-ec.c
@@ -408,7 +408,7 @@ static int olpc_ec_probe(struct platform_device *pdev)
if (!ec_driver)
return -ENODEV;
- ec = kzalloc(sizeof(*ec), GFP_KERNEL);
+ ec = kzalloc_obj(*ec, GFP_KERNEL);
if (!ec)
return -ENOMEM;
diff --git a/drivers/platform/raspberrypi/vchiq-interface/vchiq_arm.c b/drivers/platform/raspberrypi/vchiq-interface/vchiq_arm.c
index 6a7b96d3dae6..1e72dc819e2a 100644
--- a/drivers/platform/raspberrypi/vchiq-interface/vchiq_arm.c
+++ b/drivers/platform/raspberrypi/vchiq-interface/vchiq_arm.c
@@ -358,7 +358,7 @@ int vchiq_initialise(struct vchiq_state *state, struct vchiq_instance **instance
__func__, i);
}
- instance = kzalloc(sizeof(*instance), GFP_KERNEL);
+ instance = kzalloc_obj(*instance, GFP_KERNEL);
if (!instance) {
ret = -ENOMEM;
goto failed;
@@ -618,7 +618,7 @@ vchiq_blocking_bulk_transfer(struct vchiq_instance *instance, unsigned int handl
}
}
} else {
- waiter = kzalloc(sizeof(*waiter), GFP_KERNEL);
+ waiter = kzalloc_obj(*waiter, GFP_KERNEL);
if (!waiter)
return -ENOMEM;
}
@@ -1249,8 +1249,7 @@ vchiq_dump_service_use_state(struct vchiq_state *state)
if (!arm_state)
return;
- service_data = kmalloc_array(MAX_SERVICES, sizeof(*service_data),
- GFP_KERNEL);
+ service_data = kmalloc_objs(*service_data, MAX_SERVICES, GFP_KERNEL);
if (!service_data)
return;
diff --git a/drivers/platform/raspberrypi/vchiq-interface/vchiq_bus.c b/drivers/platform/raspberrypi/vchiq-interface/vchiq_bus.c
index f50e637d505c..616e05a36918 100644
--- a/drivers/platform/raspberrypi/vchiq-interface/vchiq_bus.c
+++ b/drivers/platform/raspberrypi/vchiq-interface/vchiq_bus.c
@@ -68,7 +68,7 @@ vchiq_device_register(struct device *parent, const char *name)
struct vchiq_device *device;
int ret;
- device = kzalloc(sizeof(*device), GFP_KERNEL);
+ device = kzalloc_obj(*device, GFP_KERNEL);
if (!device)
return NULL;
diff --git a/drivers/platform/raspberrypi/vchiq-interface/vchiq_core.c b/drivers/platform/raspberrypi/vchiq-interface/vchiq_core.c
index 83de27cfd469..1dac7d1ffaa2 100644
--- a/drivers/platform/raspberrypi/vchiq-interface/vchiq_core.c
+++ b/drivers/platform/raspberrypi/vchiq-interface/vchiq_core.c
@@ -2723,7 +2723,7 @@ vchiq_add_service_internal(struct vchiq_state *state,
if (ret)
return NULL;
- service = kzalloc(sizeof(*service), GFP_KERNEL);
+ service = kzalloc_obj(*service, GFP_KERNEL);
if (!service)
return service;
diff --git a/drivers/platform/raspberrypi/vchiq-interface/vchiq_dev.c b/drivers/platform/raspberrypi/vchiq-interface/vchiq_dev.c
index 0f3dde2657d6..18bcb8c133d1 100644
--- a/drivers/platform/raspberrypi/vchiq-interface/vchiq_dev.c
+++ b/drivers/platform/raspberrypi/vchiq-interface/vchiq_dev.c
@@ -149,7 +149,7 @@ static int vchiq_ioc_create_service(struct vchiq_instance *instance,
if (args->is_open && !instance->connected)
return -ENOTCONN;
- user_service = kmalloc(sizeof(*user_service), GFP_KERNEL);
+ user_service = kmalloc_obj(*user_service, GFP_KERNEL);
if (!user_service)
return -ENOMEM;
@@ -298,7 +298,7 @@ static int vchiq_irq_queue_bulk_tx_rx(struct vchiq_instance *instance,
return -EINVAL;
if (args->mode == VCHIQ_BULK_MODE_BLOCKING) {
- waiter = kzalloc(sizeof(*waiter), GFP_KERNEL);
+ waiter = kzalloc_obj(*waiter, GFP_KERNEL);
if (!waiter) {
ret = -ENOMEM;
goto out;
@@ -1185,7 +1185,7 @@ static int vchiq_open(struct inode *inode, struct file *file)
return -ENOTCONN;
}
- instance = kzalloc(sizeof(*instance), GFP_KERNEL);
+ instance = kzalloc_obj(*instance, GFP_KERNEL);
if (!instance)
return -ENOMEM;
diff --git a/drivers/platform/raspberrypi/vchiq-mmal/mmal-vchiq.c b/drivers/platform/raspberrypi/vchiq-mmal/mmal-vchiq.c
index cd073ed3ea2d..79790867c45c 100644
--- a/drivers/platform/raspberrypi/vchiq-mmal/mmal-vchiq.c
+++ b/drivers/platform/raspberrypi/vchiq-mmal/mmal-vchiq.c
@@ -190,7 +190,7 @@ get_msg_context(struct vchiq_mmal_instance *instance)
int handle;
/* todo: should this be allocated from a pool to avoid kzalloc */
- msg_context = kzalloc(sizeof(*msg_context), GFP_KERNEL);
+ msg_context = kzalloc_obj(*msg_context, GFP_KERNEL);
if (!msg_context)
return ERR_PTR(-ENOMEM);
@@ -1898,7 +1898,7 @@ int vchiq_mmal_init(struct device *dev, struct vchiq_mmal_instance **out_instanc
goto err_shutdown_vchiq;
}
- instance = kzalloc(sizeof(*instance), GFP_KERNEL);
+ instance = kzalloc_obj(*instance, GFP_KERNEL);
if (!instance) {
err = -ENOMEM;
diff --git a/drivers/platform/surface/aggregator/bus.c b/drivers/platform/surface/aggregator/bus.c
index d68d231e716e..dba8ca379385 100644
--- a/drivers/platform/surface/aggregator/bus.c
+++ b/drivers/platform/surface/aggregator/bus.c
@@ -83,7 +83,7 @@ struct ssam_device *ssam_device_alloc(struct ssam_controller *ctrl,
{
struct ssam_device *sdev;
- sdev = kzalloc(sizeof(*sdev), GFP_KERNEL);
+ sdev = kzalloc_obj(*sdev, GFP_KERNEL);
if (!sdev)
return NULL;
diff --git a/drivers/platform/surface/aggregator/controller.c b/drivers/platform/surface/aggregator/controller.c
index a265e667538c..5f1940a186a1 100644
--- a/drivers/platform/surface/aggregator/controller.c
+++ b/drivers/platform/surface/aggregator/controller.c
@@ -344,7 +344,7 @@ ssam_nf_refcount_inc(struct ssam_nf *nf, struct ssam_event_registry reg,
}
}
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return ERR_PTR(-ENOMEM);
@@ -623,7 +623,7 @@ static struct ssam_event_item *ssam_event_item_alloc(size_t len, gfp_t flags)
item->ops.free = __ssam_event_item_free_cached;
} else {
- item = kzalloc(struct_size(item, event.data, len), flags);
+ item = kzalloc_flex(*item, event.data, len, flags);
if (!item)
return NULL;
diff --git a/drivers/platform/surface/aggregator/core.c b/drivers/platform/surface/aggregator/core.c
index 82e531023911..9349a1b14ab7 100644
--- a/drivers/platform/surface/aggregator/core.c
+++ b/drivers/platform/surface/aggregator/core.c
@@ -652,7 +652,7 @@ static int ssam_serial_hub_probe(struct serdev_device *serdev)
}
/* Allocate controller. */
- ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL);
+ ctrl = kzalloc_obj(*ctrl, GFP_KERNEL);
if (!ctrl)
return -ENOMEM;
diff --git a/drivers/platform/surface/surface3_power.c b/drivers/platform/surface/surface3_power.c
index 1ee5239269ae..b00f52687fa4 100644
--- a/drivers/platform/surface/surface3_power.c
+++ b/drivers/platform/surface/surface3_power.c
@@ -454,8 +454,7 @@ static int mshw0011_install_space_handler(struct i2c_client *client)
if (!adev)
return -ENODEV;
- data = kzalloc(sizeof(struct mshw0011_handler_data),
- GFP_KERNEL);
+ data = kzalloc_obj(struct mshw0011_handler_data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/platform/surface/surface_aggregator_cdev.c b/drivers/platform/surface/surface_aggregator_cdev.c
index bfaa09d1648b..2e4746c700c8 100644
--- a/drivers/platform/surface/surface_aggregator_cdev.c
+++ b/drivers/platform/surface/surface_aggregator_cdev.c
@@ -154,7 +154,7 @@ static int ssam_cdev_notifier_register(struct ssam_cdev_client *client, u8 tc, i
}
/* Allocate new notifier. */
- nf = kzalloc(sizeof(*nf), GFP_KERNEL);
+ nf = kzalloc_obj(*nf, GFP_KERNEL);
if (!nf) {
mutex_unlock(&client->notifier_lock);
return -ENOMEM;
@@ -685,7 +685,7 @@ static int ssam_dbg_device_probe(struct platform_device *pdev)
if (IS_ERR(ctrl))
return PTR_ERR(ctrl) == -ENODEV ? -EPROBE_DEFER : PTR_ERR(ctrl);
- cdev = kzalloc(sizeof(*cdev), GFP_KERNEL);
+ cdev = kzalloc_obj(*cdev, GFP_KERNEL);
if (!cdev)
return -ENOMEM;
diff --git a/drivers/platform/surface/surface_dtx.c b/drivers/platform/surface/surface_dtx.c
index 97ae010069e4..43a8c23b2bf0 100644
--- a/drivers/platform/surface/surface_dtx.c
+++ b/drivers/platform/surface/surface_dtx.c
@@ -403,7 +403,7 @@ static int surface_dtx_open(struct inode *inode, struct file *file)
struct sdtx_client *client;
/* Initialize client. */
- client = kzalloc(sizeof(*client), GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (!client)
return -ENOMEM;
@@ -1044,7 +1044,7 @@ static struct sdtx_device *sdtx_device_create(struct device *dev, struct ssam_co
struct sdtx_device *ddev;
int status;
- ddev = kzalloc(sizeof(*ddev), GFP_KERNEL);
+ ddev = kzalloc_obj(*ddev, GFP_KERNEL);
if (!ddev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/platform/surface/surfacepro3_button.c b/drivers/platform/surface/surfacepro3_button.c
index e652c85c9161..28386780177c 100644
--- a/drivers/platform/surface/surfacepro3_button.c
+++ b/drivers/platform/surface/surfacepro3_button.c
@@ -199,7 +199,7 @@ static int surface_button_add(struct acpi_device *device)
if (!surface_button_check_MSHW0040(device))
return -ENODEV;
- button = kzalloc(sizeof(struct surface_button), GFP_KERNEL);
+ button = kzalloc_obj(struct surface_button, GFP_KERNEL);
if (!button)
return -ENOMEM;
diff --git a/drivers/platform/wmi/core.c b/drivers/platform/wmi/core.c
index 1601bf9fe135..de11edb40b04 100644
--- a/drivers/platform/wmi/core.c
+++ b/drivers/platform/wmi/core.c
@@ -1296,7 +1296,7 @@ static int parse_wdg(struct device *wmi_bus_dev, struct platform_device *pdev)
continue;
}
- wblock = kzalloc(sizeof(*wblock), GFP_KERNEL);
+ wblock = kzalloc_obj(*wblock, GFP_KERNEL);
if (!wblock)
continue;
diff --git a/drivers/platform/x86/amd/pmc/mp1_stb.c b/drivers/platform/x86/amd/pmc/mp1_stb.c
index 3b9b9f30faa3..73c668b840c7 100644
--- a/drivers/platform/x86/amd/pmc/mp1_stb.c
+++ b/drivers/platform/x86/amd/pmc/mp1_stb.c
@@ -141,7 +141,7 @@ static int amd_stb_handle_efr(struct file *filp)
u32 fsize;
fsize = dev->dram_size - S2D_RSVD_RAM_SPACE;
- stb_data_arr = kmalloc(struct_size(stb_data_arr, data, fsize), GFP_KERNEL);
+ stb_data_arr = kmalloc_flex(*stb_data_arr, data, fsize, GFP_KERNEL);
if (!stb_data_arr)
return -ENOMEM;
@@ -189,7 +189,7 @@ static int amd_stb_debugfs_open_v2(struct inode *inode, struct file *filp)
}
fsize = min(num_samples, S2D_TELEMETRY_BYTES_MAX);
- stb_data_arr = kmalloc(struct_size(stb_data_arr, data, fsize), GFP_KERNEL);
+ stb_data_arr = kmalloc_flex(*stb_data_arr, data, fsize, GFP_KERNEL);
if (!stb_data_arr)
return -ENOMEM;
diff --git a/drivers/platform/x86/amd/wbrf.c b/drivers/platform/x86/amd/wbrf.c
index dc10d12bc80d..b7556663223a 100644
--- a/drivers/platform/x86/amd/wbrf.c
+++ b/drivers/platform/x86/amd/wbrf.c
@@ -72,7 +72,9 @@ static int wbrf_record(struct acpi_device *adev, uint8_t action, struct wbrf_ran
*/
num_of_elements = 2 * num_of_ranges + 2;
- union acpi_object *tmp __free(kfree) = kcalloc(num_of_elements, sizeof(*tmp), GFP_KERNEL);
+ union acpi_object *tmp __free(kfree) = kzalloc_objs(*tmp,
+ num_of_elements,
+ GFP_KERNEL);
if (!tmp)
return -ENOMEM;
diff --git a/drivers/platform/x86/apple-gmux.c b/drivers/platform/x86/apple-gmux.c
index 1417e230edbd..83f4e96ecbc7 100644
--- a/drivers/platform/x86/apple-gmux.c
+++ b/drivers/platform/x86/apple-gmux.c
@@ -799,7 +799,7 @@ static int gmux_probe(struct pnp_dev *pnp, const struct pnp_device_id *id)
return -ENODEV;
}
- gmux_data = kzalloc(sizeof(*gmux_data), GFP_KERNEL);
+ gmux_data = kzalloc_obj(*gmux_data, GFP_KERNEL);
if (!gmux_data)
return -ENOMEM;
pnp_set_drvdata(pnp, gmux_data);
diff --git a/drivers/platform/x86/asus-armoury.c b/drivers/platform/x86/asus-armoury.c
index 9c1a9ad42bc4..9222e645756f 100644
--- a/drivers/platform/x86/asus-armoury.c
+++ b/drivers/platform/x86/asus-armoury.c
@@ -1005,8 +1005,8 @@ static void init_rog_tunables(void)
/* Initialize AC power tunables */
ac_limits = power_data->ac_data;
if (ac_limits) {
- ac_rog_tunables = kzalloc(sizeof(*asus_armoury.rog_tunables[ASUS_ROG_TUNABLE_AC]),
- GFP_KERNEL);
+ ac_rog_tunables = kzalloc_obj(*asus_armoury.rog_tunables[ASUS_ROG_TUNABLE_AC],
+ GFP_KERNEL);
if (!ac_rog_tunables)
goto err_nomem;
@@ -1053,8 +1053,8 @@ static void init_rog_tunables(void)
/* Initialize DC power tunables */
dc_limits = power_data->dc_data;
if (dc_limits) {
- dc_rog_tunables = kzalloc(sizeof(*asus_armoury.rog_tunables[ASUS_ROG_TUNABLE_DC]),
- GFP_KERNEL);
+ dc_rog_tunables = kzalloc_obj(*asus_armoury.rog_tunables[ASUS_ROG_TUNABLE_DC],
+ GFP_KERNEL);
if (!dc_rog_tunables) {
kfree(ac_rog_tunables);
goto err_nomem;
diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
index a0a411b4f2d6..2b85315b7bd5 100644
--- a/drivers/platform/x86/asus-laptop.c
+++ b/drivers/platform/x86/asus-laptop.c
@@ -1831,7 +1831,7 @@ static int asus_acpi_add(struct acpi_device *device)
pr_notice("Asus Laptop Support version %s\n",
ASUS_LAPTOP_VERSION);
- asus = kzalloc(sizeof(struct asus_laptop), GFP_KERNEL);
+ asus = kzalloc_obj(struct asus_laptop, GFP_KERNEL);
if (!asus)
return -ENOMEM;
asus->handle = device->handle;
diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
index 275b56d6a09f..93905860fe07 100644
--- a/drivers/platform/x86/asus-wmi.c
+++ b/drivers/platform/x86/asus-wmi.c
@@ -5014,7 +5014,7 @@ static int asus_wmi_add(struct platform_device *pdev)
int err;
u32 result;
- asus = kzalloc(sizeof(struct asus_wmi), GFP_KERNEL);
+ asus = kzalloc_obj(struct asus_wmi, GFP_KERNEL);
if (!asus)
return -ENOMEM;
diff --git a/drivers/platform/x86/classmate-laptop.c b/drivers/platform/x86/classmate-laptop.c
index 74d3eb83f56a..bc9e26b94c84 100644
--- a/drivers/platform/x86/classmate-laptop.c
+++ b/drivers/platform/x86/classmate-laptop.c
@@ -400,7 +400,7 @@ static int cmpc_accel_add_v4(struct acpi_device *acpi)
struct input_dev *inputdev;
struct cmpc_accel *accel;
- accel = kmalloc(sizeof(*accel), GFP_KERNEL);
+ accel = kmalloc_obj(*accel, GFP_KERNEL);
if (!accel)
return -ENOMEM;
@@ -650,7 +650,7 @@ static int cmpc_accel_add(struct acpi_device *acpi)
struct input_dev *inputdev;
struct cmpc_accel *accel;
- accel = kmalloc(sizeof(*accel), GFP_KERNEL);
+ accel = kmalloc_obj(*accel, GFP_KERNEL);
if (!accel)
return -ENOMEM;
@@ -964,7 +964,7 @@ static int cmpc_ipml_add(struct acpi_device *acpi)
struct ipml200_dev *ipml;
struct backlight_properties props;
- ipml = kmalloc(sizeof(*ipml), GFP_KERNEL);
+ ipml = kmalloc_obj(*ipml, GFP_KERNEL);
if (ipml == NULL)
return -ENOMEM;
diff --git a/drivers/platform/x86/dell/dell-smbios-base.c b/drivers/platform/x86/dell/dell-smbios-base.c
index 444786102f02..dd011e252713 100644
--- a/drivers/platform/x86/dell/dell-smbios-base.c
+++ b/drivers/platform/x86/dell/dell-smbios-base.c
@@ -495,12 +495,13 @@ static int build_tokens_sysfs(struct platform_device *dev)
int ret;
int i, j;
- token_entries = kcalloc(da_num_tokens, sizeof(*token_entries), GFP_KERNEL);
+ token_entries = kzalloc_objs(*token_entries, da_num_tokens, GFP_KERNEL);
if (!token_entries)
return -ENOMEM;
/* need to store both location and value + terminator*/
- token_attrs = kcalloc((2 * da_num_tokens) + 1, sizeof(*token_attrs), GFP_KERNEL);
+ token_attrs = kzalloc_objs(*token_attrs, (2 * da_num_tokens) + 1,
+ GFP_KERNEL);
if (!token_attrs)
goto out_allocate_attrs;
diff --git a/drivers/platform/x86/dell/dell-wmi-base.c b/drivers/platform/x86/dell/dell-wmi-base.c
index 28076929d6af..f2e63be75fb3 100644
--- a/drivers/platform/x86/dell/dell-wmi-base.c
+++ b/drivers/platform/x86/dell/dell-wmi-base.c
@@ -586,7 +586,7 @@ static void handle_dmi_entry(const struct dmi_header *dm, void *opaque)
return;
}
- keymap = kcalloc(hotkey_num, sizeof(struct key_entry), GFP_KERNEL);
+ keymap = kzalloc_objs(struct key_entry, hotkey_num, GFP_KERNEL);
if (!keymap) {
results->err = -ENOMEM;
return;
@@ -656,13 +656,9 @@ static int dell_wmi_input_setup(struct wmi_device *wdev)
goto err_free_dev;
}
- keymap = kcalloc(dmi_results.keymap_size +
- ARRAY_SIZE(dell_wmi_keymap_type_0000) +
- ARRAY_SIZE(dell_wmi_keymap_type_0010) +
- ARRAY_SIZE(dell_wmi_keymap_type_0011) +
- ARRAY_SIZE(dell_wmi_keymap_type_0012) +
- 1,
- sizeof(struct key_entry), GFP_KERNEL);
+ keymap = kzalloc_objs(struct key_entry,
+ dmi_results.keymap_size + ARRAY_SIZE(dell_wmi_keymap_type_0000) + ARRAY_SIZE(dell_wmi_keymap_type_0010) + ARRAY_SIZE(dell_wmi_keymap_type_0011) + ARRAY_SIZE(dell_wmi_keymap_type_0012) + 1,
+ GFP_KERNEL);
if (!keymap) {
kfree(dmi_results.keymap);
err = -ENOMEM;
@@ -773,7 +769,7 @@ static int dell_wmi_events_set_enabled(bool enable)
struct calling_interface_buffer *buffer;
int ret;
- buffer = kzalloc(sizeof(struct calling_interface_buffer), GFP_KERNEL);
+ buffer = kzalloc_obj(struct calling_interface_buffer, GFP_KERNEL);
if (!buffer)
return -ENOMEM;
buffer->cmd_class = CLASS_INFO;
diff --git a/drivers/platform/x86/dell/dell-wmi-privacy.c b/drivers/platform/x86/dell/dell-wmi-privacy.c
index 4b65e1655d42..40fe2c4adedb 100644
--- a/drivers/platform/x86/dell/dell-wmi-privacy.c
+++ b/drivers/platform/x86/dell/dell-wmi-privacy.c
@@ -314,8 +314,8 @@ static int dell_privacy_wmi_probe(struct wmi_device *wdev, const void *context)
return -ENOMEM;
/* remap the wmi keymap event to new keymap */
- keymap = kcalloc(ARRAY_SIZE(dell_wmi_keymap_type_0012),
- sizeof(struct key_entry), GFP_KERNEL);
+ keymap = kzalloc_objs(struct key_entry,
+ ARRAY_SIZE(dell_wmi_keymap_type_0012), GFP_KERNEL);
if (!keymap)
return -ENOMEM;
diff --git a/drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c b/drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c
index fc2f58b4cbc6..c7c55f8fe0a0 100644
--- a/drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c
+++ b/drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c
@@ -119,8 +119,9 @@ int alloc_enum_data(void)
wmi_priv.enumeration_instances_count =
get_instance_count(DELL_WMI_BIOS_ENUMERATION_ATTRIBUTE_GUID);
- wmi_priv.enumeration_data = kcalloc(wmi_priv.enumeration_instances_count,
- sizeof(struct enumeration_data), GFP_KERNEL);
+ wmi_priv.enumeration_data = kzalloc_objs(struct enumeration_data,
+ wmi_priv.enumeration_instances_count,
+ GFP_KERNEL);
if (!wmi_priv.enumeration_data) {
wmi_priv.enumeration_instances_count = 0;
ret = -ENOMEM;
diff --git a/drivers/platform/x86/dell/dell-wmi-sysman/int-attributes.c b/drivers/platform/x86/dell/dell-wmi-sysman/int-attributes.c
index 735248064239..f00a1cbac2f9 100644
--- a/drivers/platform/x86/dell/dell-wmi-sysman/int-attributes.c
+++ b/drivers/platform/x86/dell/dell-wmi-sysman/int-attributes.c
@@ -123,8 +123,9 @@ int alloc_int_data(void)
int ret = 0;
wmi_priv.integer_instances_count = get_instance_count(DELL_WMI_BIOS_INTEGER_ATTRIBUTE_GUID);
- wmi_priv.integer_data = kcalloc(wmi_priv.integer_instances_count,
- sizeof(struct integer_data), GFP_KERNEL);
+ wmi_priv.integer_data = kzalloc_objs(struct integer_data,
+ wmi_priv.integer_instances_count,
+ GFP_KERNEL);
if (!wmi_priv.integer_data) {
wmi_priv.integer_instances_count = 0;
ret = -ENOMEM;
diff --git a/drivers/platform/x86/dell/dell-wmi-sysman/passobj-attributes.c b/drivers/platform/x86/dell/dell-wmi-sysman/passobj-attributes.c
index 3167e06d416e..44ecdcb82d84 100644
--- a/drivers/platform/x86/dell/dell-wmi-sysman/passobj-attributes.c
+++ b/drivers/platform/x86/dell/dell-wmi-sysman/passobj-attributes.c
@@ -143,7 +143,8 @@ int alloc_po_data(void)
int ret = 0;
wmi_priv.po_instances_count = get_instance_count(DELL_WMI_BIOS_PASSOBJ_ATTRIBUTE_GUID);
- wmi_priv.po_data = kcalloc(wmi_priv.po_instances_count, sizeof(struct po_data), GFP_KERNEL);
+ wmi_priv.po_data = kzalloc_objs(struct po_data,
+ wmi_priv.po_instances_count, GFP_KERNEL);
if (!wmi_priv.po_data) {
wmi_priv.po_instances_count = 0;
ret = -ENOMEM;
diff --git a/drivers/platform/x86/dell/dell-wmi-sysman/string-attributes.c b/drivers/platform/x86/dell/dell-wmi-sysman/string-attributes.c
index 0d2c74f8d1aa..9e11c00ad859 100644
--- a/drivers/platform/x86/dell/dell-wmi-sysman/string-attributes.c
+++ b/drivers/platform/x86/dell/dell-wmi-sysman/string-attributes.c
@@ -108,8 +108,9 @@ int alloc_str_data(void)
int ret = 0;
wmi_priv.str_instances_count = get_instance_count(DELL_WMI_BIOS_STRING_ATTRIBUTE_GUID);
- wmi_priv.str_data = kcalloc(wmi_priv.str_instances_count,
- sizeof(struct str_data), GFP_KERNEL);
+ wmi_priv.str_data = kzalloc_objs(struct str_data,
+ wmi_priv.str_instances_count,
+ GFP_KERNEL);
if (!wmi_priv.str_data) {
wmi_priv.str_instances_count = 0;
ret = -ENOMEM;
diff --git a/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
index f5402b714657..577949ee2e23 100644
--- a/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
+++ b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
@@ -460,7 +460,7 @@ static int init_bios_attributes(int attr_type, const char *guid)
}
/* build attribute */
- attr_name_kobj = kzalloc(sizeof(*attr_name_kobj), GFP_KERNEL);
+ attr_name_kobj = kzalloc_obj(*attr_name_kobj, GFP_KERNEL);
if (!attr_name_kobj) {
retval = -ENOMEM;
goto err_attr_init;
diff --git a/drivers/platform/x86/dell/dell_rbu.c b/drivers/platform/x86/dell/dell_rbu.c
index 403df9bd9522..daf5df8cbafc 100644
--- a/drivers/platform/x86/dell/dell_rbu.c
+++ b/drivers/platform/x86/dell/dell_rbu.c
@@ -111,7 +111,7 @@ static int create_packet(void *data, size_t length) __must_hold(&rbu_data.lock)
spin_unlock(&rbu_data.lock);
- newpacket = kzalloc(sizeof (struct packet_data), GFP_KERNEL);
+ newpacket = kzalloc_obj(struct packet_data, GFP_KERNEL);
if (!newpacket) {
pr_warn("failed to allocate new packet\n");
diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
index d1908815f5a2..e42045494b2c 100644
--- a/drivers/platform/x86/eeepc-laptop.c
+++ b/drivers/platform/x86/eeepc-laptop.c
@@ -1366,7 +1366,7 @@ static int eeepc_acpi_add(struct acpi_device *device)
int result;
pr_notice(EEEPC_LAPTOP_NAME "\n");
- eeepc = kzalloc(sizeof(struct eeepc_laptop), GFP_KERNEL);
+ eeepc = kzalloc_obj(struct eeepc_laptop, GFP_KERNEL);
if (!eeepc)
return -ENOMEM;
eeepc->handle = device->handle;
diff --git a/drivers/platform/x86/hp/hp-bioscfg/bioscfg.c b/drivers/platform/x86/hp/hp-bioscfg/bioscfg.c
index 51e8977d3eb4..bf3d409e5974 100644
--- a/drivers/platform/x86/hp/hp-bioscfg/bioscfg.c
+++ b/drivers/platform/x86/hp/hp-bioscfg/bioscfg.c
@@ -588,7 +588,7 @@ static int hp_add_other_attributes(int attr_type)
int ret;
char *attr_name;
- attr_name_kobj = kzalloc(sizeof(*attr_name_kobj), GFP_KERNEL);
+ attr_name_kobj = kzalloc_obj(*attr_name_kobj, GFP_KERNEL);
if (!attr_name_kobj)
return -ENOMEM;
@@ -711,7 +711,7 @@ static int hp_init_bios_package_attribute(enum hp_wmi_data_type attr_type,
}
/* build attribute */
- attr_name_kobj = kzalloc(sizeof(*attr_name_kobj), GFP_KERNEL);
+ attr_name_kobj = kzalloc_obj(*attr_name_kobj, GFP_KERNEL);
if (!attr_name_kobj) {
ret = -ENOMEM;
goto pack_attr_exit;
@@ -810,7 +810,7 @@ static int hp_init_bios_buffer_attribute(enum hp_wmi_data_type attr_type,
}
/* build attribute */
- attr_name_kobj = kzalloc(sizeof(*attr_name_kobj), GFP_KERNEL);
+ attr_name_kobj = kzalloc_obj(*attr_name_kobj, GFP_KERNEL);
if (!attr_name_kobj) {
ret = -ENOMEM;
goto buff_attr_exit;
diff --git a/drivers/platform/x86/hp/hp-bioscfg/enum-attributes.c b/drivers/platform/x86/hp/hp-bioscfg/enum-attributes.c
index f346aad8e9d8..4a09fd32ebc6 100644
--- a/drivers/platform/x86/hp/hp-bioscfg/enum-attributes.c
+++ b/drivers/platform/x86/hp/hp-bioscfg/enum-attributes.c
@@ -94,8 +94,9 @@ int hp_alloc_enumeration_data(void)
bioscfg_drv.enumeration_instances_count =
hp_get_instance_count(HP_WMI_BIOS_ENUMERATION_GUID);
- bioscfg_drv.enumeration_data = kcalloc(bioscfg_drv.enumeration_instances_count,
- sizeof(*bioscfg_drv.enumeration_data), GFP_KERNEL);
+ bioscfg_drv.enumeration_data = kzalloc_objs(*bioscfg_drv.enumeration_data,
+ bioscfg_drv.enumeration_instances_count,
+ GFP_KERNEL);
if (!bioscfg_drv.enumeration_data) {
bioscfg_drv.enumeration_instances_count = 0;
return -ENOMEM;
diff --git a/drivers/platform/x86/hp/hp-bioscfg/int-attributes.c b/drivers/platform/x86/hp/hp-bioscfg/int-attributes.c
index 63b1fda2be4e..84d522f2b491 100644
--- a/drivers/platform/x86/hp/hp-bioscfg/int-attributes.c
+++ b/drivers/platform/x86/hp/hp-bioscfg/int-attributes.c
@@ -109,8 +109,9 @@ static const struct attribute_group integer_attr_group = {
int hp_alloc_integer_data(void)
{
bioscfg_drv.integer_instances_count = hp_get_instance_count(HP_WMI_BIOS_INTEGER_GUID);
- bioscfg_drv.integer_data = kcalloc(bioscfg_drv.integer_instances_count,
- sizeof(*bioscfg_drv.integer_data), GFP_KERNEL);
+ bioscfg_drv.integer_data = kzalloc_objs(*bioscfg_drv.integer_data,
+ bioscfg_drv.integer_instances_count,
+ GFP_KERNEL);
if (!bioscfg_drv.integer_data) {
bioscfg_drv.integer_instances_count = 0;
diff --git a/drivers/platform/x86/hp/hp-bioscfg/order-list-attributes.c b/drivers/platform/x86/hp/hp-bioscfg/order-list-attributes.c
index 6a31f47ce3f5..592328280a81 100644
--- a/drivers/platform/x86/hp/hp-bioscfg/order-list-attributes.c
+++ b/drivers/platform/x86/hp/hp-bioscfg/order-list-attributes.c
@@ -98,9 +98,9 @@ int hp_alloc_ordered_list_data(void)
{
bioscfg_drv.ordered_list_instances_count =
hp_get_instance_count(HP_WMI_BIOS_ORDERED_LIST_GUID);
- bioscfg_drv.ordered_list_data = kcalloc(bioscfg_drv.ordered_list_instances_count,
- sizeof(*bioscfg_drv.ordered_list_data),
- GFP_KERNEL);
+ bioscfg_drv.ordered_list_data = kzalloc_objs(*bioscfg_drv.ordered_list_data,
+ bioscfg_drv.ordered_list_instances_count,
+ GFP_KERNEL);
if (!bioscfg_drv.ordered_list_data) {
bioscfg_drv.ordered_list_instances_count = 0;
return -ENOMEM;
diff --git a/drivers/platform/x86/hp/hp-bioscfg/passwdobj-attributes.c b/drivers/platform/x86/hp/hp-bioscfg/passwdobj-attributes.c
index ec79d9d50377..dc7107ff010b 100644
--- a/drivers/platform/x86/hp/hp-bioscfg/passwdobj-attributes.c
+++ b/drivers/platform/x86/hp/hp-bioscfg/passwdobj-attributes.c
@@ -185,8 +185,9 @@ static const struct attribute_group password_attr_group = {
int hp_alloc_password_data(void)
{
bioscfg_drv.password_instances_count = hp_get_instance_count(HP_WMI_BIOS_PASSWORD_GUID);
- bioscfg_drv.password_data = kcalloc(bioscfg_drv.password_instances_count,
- sizeof(*bioscfg_drv.password_data), GFP_KERNEL);
+ bioscfg_drv.password_data = kzalloc_objs(*bioscfg_drv.password_data,
+ bioscfg_drv.password_instances_count,
+ GFP_KERNEL);
if (!bioscfg_drv.password_data) {
bioscfg_drv.password_instances_count = 0;
return -ENOMEM;
diff --git a/drivers/platform/x86/hp/hp-bioscfg/string-attributes.c b/drivers/platform/x86/hp/hp-bioscfg/string-attributes.c
index 7b885d25650c..f0ce4f3e7f20 100644
--- a/drivers/platform/x86/hp/hp-bioscfg/string-attributes.c
+++ b/drivers/platform/x86/hp/hp-bioscfg/string-attributes.c
@@ -101,8 +101,9 @@ static const struct attribute_group string_attr_group = {
int hp_alloc_string_data(void)
{
bioscfg_drv.string_instances_count = hp_get_instance_count(HP_WMI_BIOS_STRING_GUID);
- bioscfg_drv.string_data = kcalloc(bioscfg_drv.string_instances_count,
- sizeof(*bioscfg_drv.string_data), GFP_KERNEL);
+ bioscfg_drv.string_data = kzalloc_objs(*bioscfg_drv.string_data,
+ bioscfg_drv.string_instances_count,
+ GFP_KERNEL);
if (!bioscfg_drv.string_data) {
bioscfg_drv.string_instances_count = 0;
return -ENOMEM;
diff --git a/drivers/platform/x86/huawei-wmi.c b/drivers/platform/x86/huawei-wmi.c
index 8a4c54089ace..64c5543f795d 100644
--- a/drivers/platform/x86/huawei-wmi.c
+++ b/drivers/platform/x86/huawei-wmi.c
@@ -854,7 +854,7 @@ static __init int huawei_wmi_init(void)
struct platform_device *pdev;
int err;
- huawei_wmi = kzalloc(sizeof(struct huawei_wmi), GFP_KERNEL);
+ huawei_wmi = kzalloc_obj(struct huawei_wmi, GFP_KERNEL);
if (!huawei_wmi)
return -ENOMEM;
diff --git a/drivers/platform/x86/intel/ifs/core.c b/drivers/platform/x86/intel/ifs/core.c
index b73e582128c9..1f4f84217d5e 100644
--- a/drivers/platform/x86/intel/ifs/core.c
+++ b/drivers/platform/x86/intel/ifs/core.c
@@ -125,7 +125,7 @@ static int __init ifs_init(void)
if (rdmsrq_safe(MSR_INTEGRITY_CAPS, &msrval))
return -ENODEV;
- ifs_pkg_auth = kmalloc_array(topology_max_packages(), sizeof(bool), GFP_KERNEL);
+ ifs_pkg_auth = kmalloc_objs(bool, topology_max_packages(), GFP_KERNEL);
if (!ifs_pkg_auth)
return -ENOMEM;
diff --git a/drivers/platform/x86/intel/int1092/intel_sar.c b/drivers/platform/x86/intel/int1092/intel_sar.c
index e526841aff60..568a2722477b 100644
--- a/drivers/platform/x86/intel/int1092/intel_sar.c
+++ b/drivers/platform/x86/intel/int1092/intel_sar.c
@@ -91,8 +91,8 @@ static acpi_status parse_package(struct wwan_sar_context *context, union acpi_ob
item->package.count <= data->total_dev_mode)
return AE_ERROR;
- data->device_mode_info = kmalloc_array(data->total_dev_mode,
- sizeof(struct wwan_device_mode_info), GFP_KERNEL);
+ data->device_mode_info = kmalloc_objs(struct wwan_device_mode_info,
+ data->total_dev_mode, GFP_KERNEL);
if (!data->device_mode_info)
return AE_ERROR;
@@ -248,7 +248,7 @@ static int sar_probe(struct platform_device *device)
int reg;
int result;
- context = kzalloc(sizeof(*context), GFP_KERNEL);
+ context = kzalloc_obj(*context, GFP_KERNEL);
if (!context)
return -ENOMEM;
diff --git a/drivers/platform/x86/intel/int3472/discrete.c b/drivers/platform/x86/intel/int3472/discrete.c
index 1505fc3ef7a8..ec0994bfa9fc 100644
--- a/drivers/platform/x86/intel/int3472/discrete.c
+++ b/drivers/platform/x86/intel/int3472/discrete.c
@@ -107,7 +107,7 @@ skl_int3472_gpiod_get_from_temp_lookup(struct int3472_discrete_device *int3472,
int ret;
struct gpiod_lookup_table *lookup __free(kfree) =
- kzalloc(struct_size(lookup, table, 2), GFP_KERNEL);
+ kzalloc_flex(*lookup, table, 2, GFP_KERNEL);
if (!lookup)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/platform/x86/intel/int3472/tps68470.c b/drivers/platform/x86/intel/int3472/tps68470.c
index 0133405697dc..fdbb8b0005f2 100644
--- a/drivers/platform/x86/intel/int3472/tps68470.c
+++ b/drivers/platform/x86/intel/int3472/tps68470.c
@@ -180,7 +180,8 @@ static int skl_int3472_tps68470_probe(struct i2c_client *client)
if (!board_data)
return dev_err_probe(&client->dev, -ENODEV, "No board-data found for this model\n");
- cells = kcalloc(TPS68470_WIN_MFD_CELL_COUNT, sizeof(*cells), GFP_KERNEL);
+ cells = kzalloc_objs(*cells, TPS68470_WIN_MFD_CELL_COUNT,
+ GFP_KERNEL);
if (!cells)
return -ENOMEM;
diff --git a/drivers/platform/x86/intel/pmc/pltdrv.c b/drivers/platform/x86/intel/pmc/pltdrv.c
index 3141d6cbc41b..6fcf0f85a8d7 100644
--- a/drivers/platform/x86/intel/pmc/pltdrv.c
+++ b/drivers/platform/x86/intel/pmc/pltdrv.c
@@ -65,7 +65,7 @@ static int __init pmc_core_platform_init(void)
if (!x86_match_cpu(intel_pmc_core_platform_ids))
return -ENODEV;
- pmc_core_device = kzalloc(sizeof(*pmc_core_device), GFP_KERNEL);
+ pmc_core_device = kzalloc_obj(*pmc_core_device, GFP_KERNEL);
if (!pmc_core_device)
return -ENOMEM;
diff --git a/drivers/platform/x86/intel/pmt/telemetry.c b/drivers/platform/x86/intel/pmt/telemetry.c
index a4dfca6cac19..2eee7389dcf9 100644
--- a/drivers/platform/x86/intel/pmt/telemetry.c
+++ b/drivers/platform/x86/intel/pmt/telemetry.c
@@ -107,7 +107,7 @@ static int pmt_telem_add_endpoint(struct intel_vsec_device *ivdev,
struct telem_endpoint *ep;
/* Endpoint lifetimes are managed by kref, not devres */
- entry->ep = kzalloc(sizeof(*(entry->ep)), GFP_KERNEL);
+ entry->ep = kzalloc_obj(*(entry->ep), GFP_KERNEL);
if (!entry->ep)
return -ENOMEM;
diff --git a/drivers/platform/x86/intel/speed_select_if/isst_if_common.c b/drivers/platform/x86/intel/speed_select_if/isst_if_common.c
index 7449873c3d40..33abff1dbe84 100644
--- a/drivers/platform/x86/intel/speed_select_if/isst_if_common.c
+++ b/drivers/platform/x86/intel/speed_select_if/isst_if_common.c
@@ -89,7 +89,7 @@ static int isst_store_new_cmd(int cmd, u32 cpu, int mbox_cmd_type, u32 param,
{
struct isst_cmd *sst_cmd;
- sst_cmd = kmalloc(sizeof(*sst_cmd), GFP_KERNEL);
+ sst_cmd = kmalloc_obj(*sst_cmd, GFP_KERNEL);
if (!sst_cmd)
return -ENOMEM;
@@ -425,15 +425,13 @@ static int isst_if_cpu_info_init(void)
{
int ret;
- isst_cpu_info = kcalloc(num_possible_cpus(),
- sizeof(*isst_cpu_info),
- GFP_KERNEL);
+ isst_cpu_info = kzalloc_objs(*isst_cpu_info, num_possible_cpus(),
+ GFP_KERNEL);
if (!isst_cpu_info)
return -ENOMEM;
- isst_pkg_info = kcalloc(topology_max_packages(),
- sizeof(*isst_pkg_info),
- GFP_KERNEL);
+ isst_pkg_info = kzalloc_objs(*isst_pkg_info, topology_max_packages(),
+ GFP_KERNEL);
if (!isst_pkg_info) {
kfree(isst_cpu_info);
return -ENOMEM;
diff --git a/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c b/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
index 9c078c8acb50..9242e29aac59 100644
--- a/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
+++ b/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
@@ -1603,7 +1603,7 @@ int tpmi_sst_dev_add(struct auxiliary_device *auxdev)
* devm_* allocation here as each partition is a
* different device, which can be unbound.
*/
- tpmi_sst = kzalloc(sizeof(*tpmi_sst), GFP_KERNEL);
+ tpmi_sst = kzalloc_obj(*tpmi_sst, GFP_KERNEL);
if (!tpmi_sst) {
ret = -ENOMEM;
goto unlock_exit;
@@ -1819,9 +1819,8 @@ int tpmi_sst_init(void)
goto init_done;
}
- isst_common.sst_inst = kcalloc(topology_max_packages(),
- sizeof(*isst_common.sst_inst),
- GFP_KERNEL);
+ isst_common.sst_inst = kzalloc_objs(*isst_common.sst_inst,
+ topology_max_packages(), GFP_KERNEL);
if (!isst_common.sst_inst) {
ret = -ENOMEM;
goto init_done;
diff --git a/drivers/platform/x86/intel/tpmi_power_domains.c b/drivers/platform/x86/intel/tpmi_power_domains.c
index 7d93119a4c30..57c8856fc468 100644
--- a/drivers/platform/x86/intel/tpmi_power_domains.c
+++ b/drivers/platform/x86/intel/tpmi_power_domains.c
@@ -221,8 +221,9 @@ static int __init tpmi_init(void)
if (ret)
return ret;
- tpmi_power_domain_mask = kcalloc(size_mul(topology_max_packages(), MAX_POWER_DOMAINS),
- sizeof(*tpmi_power_domain_mask), GFP_KERNEL);
+ tpmi_power_domain_mask = kzalloc_objs(*tpmi_power_domain_mask,
+ size_mul(topology_max_packages(), MAX_POWER_DOMAINS),
+ GFP_KERNEL);
if (!tpmi_power_domain_mask)
return -ENOMEM;
diff --git a/drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c b/drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c
index 0dfc552b2802..89a90bd90c44 100644
--- a/drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c
+++ b/drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c
@@ -278,8 +278,8 @@ static int __init intel_uncore_init(void)
uncore_max_entries = topology_max_packages() *
topology_max_dies_per_package();
- uncore_instances = kcalloc(uncore_max_entries,
- sizeof(*uncore_instances), GFP_KERNEL);
+ uncore_instances = kzalloc_objs(*uncore_instances, uncore_max_entries,
+ GFP_KERNEL);
if (!uncore_instances)
return -ENOMEM;
diff --git a/drivers/platform/x86/intel/vsec.c b/drivers/platform/x86/intel/vsec.c
index 012d87878afd..b21a9cfabad4 100644
--- a/drivers/platform/x86/intel/vsec.c
+++ b/drivers/platform/x86/intel/vsec.c
@@ -299,11 +299,11 @@ static int intel_vsec_add_dev(struct pci_dev *pdev, struct intel_vsec_header *he
return -EINVAL;
}
- intel_vsec_dev = kzalloc(sizeof(*intel_vsec_dev), GFP_KERNEL);
+ intel_vsec_dev = kzalloc_obj(*intel_vsec_dev, GFP_KERNEL);
if (!intel_vsec_dev)
return -ENOMEM;
- res = kcalloc(header->num_entries, sizeof(*res), GFP_KERNEL);
+ res = kzalloc_objs(*res, header->num_entries, GFP_KERNEL);
if (!res)
return -ENOMEM;
diff --git a/drivers/platform/x86/intel/vsec_tpmi.c b/drivers/platform/x86/intel/vsec_tpmi.c
index 7748b5557a18..9614fb8584f2 100644
--- a/drivers/platform/x86/intel/vsec_tpmi.c
+++ b/drivers/platform/x86/intel/vsec_tpmi.c
@@ -622,11 +622,11 @@ static int tpmi_create_device(struct intel_tpmi_info *tpmi_info,
if (!name)
return -EOPNOTSUPP;
- res = kcalloc(pfs->pfs_header.num_entries, sizeof(*res), GFP_KERNEL);
+ res = kzalloc_objs(*res, pfs->pfs_header.num_entries, GFP_KERNEL);
if (!res)
return -ENOMEM;
- feature_vsec_dev = kzalloc(sizeof(*feature_vsec_dev), GFP_KERNEL);
+ feature_vsec_dev = kzalloc_obj(*feature_vsec_dev, GFP_KERNEL);
if (!feature_vsec_dev) {
kfree(res);
return -ENOMEM;
diff --git a/drivers/platform/x86/intel_scu_ipc.c b/drivers/platform/x86/intel_scu_ipc.c
index 3acf6149a9ec..4412e7c2bce0 100644
--- a/drivers/platform/x86/intel_scu_ipc.c
+++ b/drivers/platform/x86/intel_scu_ipc.c
@@ -573,7 +573,7 @@ __intel_scu_ipc_register(struct device *parent,
if (ipcdev)
return ERR_PTR(-EBUSY);
- scu = kzalloc(sizeof(*scu), GFP_KERNEL);
+ scu = kzalloc_obj(*scu, GFP_KERNEL);
if (!scu)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/platform/x86/lenovo/ideapad-laptop.c b/drivers/platform/x86/lenovo/ideapad-laptop.c
index 06ac002a1ebc..59703574e8ce 100644
--- a/drivers/platform/x86/lenovo/ideapad-laptop.c
+++ b/drivers/platform/x86/lenovo/ideapad-laptop.c
@@ -1172,7 +1172,7 @@ static int ideapad_dytc_profile_init(struct ideapad_private *priv)
return -ENODEV;
}
- priv->dytc = kzalloc(sizeof(*priv->dytc), GFP_KERNEL);
+ priv->dytc = kzalloc_obj(*priv->dytc, GFP_KERNEL);
if (!priv->dytc)
return -ENOMEM;
diff --git a/drivers/platform/x86/lenovo/think-lmi.c b/drivers/platform/x86/lenovo/think-lmi.c
index c45f0206b4ab..a89f9436a795 100644
--- a/drivers/platform/x86/lenovo/think-lmi.c
+++ b/drivers/platform/x86/lenovo/think-lmi.c
@@ -1593,7 +1593,7 @@ static struct tlmi_pwd_setting *tlmi_create_auth(const char *pwd_type,
{
struct tlmi_pwd_setting *new_pwd;
- new_pwd = kzalloc(sizeof(struct tlmi_pwd_setting), GFP_KERNEL);
+ new_pwd = kzalloc_obj(struct tlmi_pwd_setting, GFP_KERNEL);
if (!new_pwd)
return NULL;
@@ -1668,7 +1668,7 @@ static int tlmi_analyze(struct wmi_device *wdev)
strreplace(item, ',', '\0');
/* Create a setting entry */
- setting = kzalloc(sizeof(*setting), GFP_KERNEL);
+ setting = kzalloc_obj(*setting, GFP_KERNEL);
if (!setting) {
ret = -ENOMEM;
kfree(item);
diff --git a/drivers/platform/x86/lenovo/thinkpad_acpi.c b/drivers/platform/x86/lenovo/thinkpad_acpi.c
index 6b0e4b4c485e..9a5b1d793cb9 100644
--- a/drivers/platform/x86/lenovo/thinkpad_acpi.c
+++ b/drivers/platform/x86/lenovo/thinkpad_acpi.c
@@ -873,7 +873,7 @@ static int __init register_tpacpi_subdriver(struct ibm_struct *ibm)
BUG_ON(!ibm->acpi);
- ibm->acpi->driver = kzalloc(sizeof(struct acpi_driver), GFP_KERNEL);
+ ibm->acpi->driver = kzalloc_obj(struct acpi_driver, GFP_KERNEL);
if (!ibm->acpi->driver) {
pr_err("failed to allocate memory for ibm->acpi->driver\n");
return -ENOMEM;
@@ -1197,7 +1197,7 @@ static int __init tpacpi_new_rfkill(const enum tpacpi_rfk_id id,
BUG_ON(id >= TPACPI_RFK_SW_MAX || tpacpi_rfkill_switches[id]);
- atp_rfk = kzalloc(sizeof(struct tpacpi_rfk), GFP_KERNEL);
+ atp_rfk = kzalloc_obj(struct tpacpi_rfk, GFP_KERNEL);
if (atp_rfk)
atp_rfk->rfkill = rfkill_alloc(name,
&tpacpi_pdev->dev,
@@ -5817,8 +5817,7 @@ static int __init led_init(struct ibm_init_struct *iibm)
if (led_supported == TPACPI_LED_NONE)
return -ENODEV;
- tpacpi_leds = kcalloc(TPACPI_LED_NUMLEDS, sizeof(*tpacpi_leds),
- GFP_KERNEL);
+ tpacpi_leds = kzalloc_objs(*tpacpi_leds, TPACPI_LED_NUMLEDS, GFP_KERNEL);
if (!tpacpi_leds) {
pr_err("Out of memory for LED data\n");
return -ENOMEM;
diff --git a/drivers/platform/x86/panasonic-laptop.c b/drivers/platform/x86/panasonic-laptop.c
index 937f1a5b78ed..9990f6b920c5 100644
--- a/drivers/platform/x86/panasonic-laptop.c
+++ b/drivers/platform/x86/panasonic-laptop.c
@@ -1017,7 +1017,7 @@ static int acpi_pcc_hotkey_add(struct acpi_device *device)
*/
num_sifr++;
- pcc = kzalloc(sizeof(struct pcc_acpi), GFP_KERNEL);
+ pcc = kzalloc_obj(struct pcc_acpi, GFP_KERNEL);
if (!pcc) {
pr_err("Couldn't allocate mem for pcc");
return -ENOMEM;
diff --git a/drivers/platform/x86/pmc_atom.c b/drivers/platform/x86/pmc_atom.c
index 0aa7076bc9cc..3b6edd709543 100644
--- a/drivers/platform/x86/pmc_atom.c
+++ b/drivers/platform/x86/pmc_atom.c
@@ -428,7 +428,7 @@ static int pmc_setup_clks(struct pci_dev *pdev, void __iomem *pmc_regmap,
struct platform_device *clkdev;
struct pmc_clk_data *clk_data;
- clk_data = kzalloc(sizeof(*clk_data), GFP_KERNEL);
+ clk_data = kzalloc_obj(*clk_data, GFP_KERNEL);
if (!clk_data)
return -ENOMEM;
diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c
index 9d43a12db73c..50e337a85135 100644
--- a/drivers/platform/x86/samsung-laptop.c
+++ b/drivers/platform/x86/samsung-laptop.c
@@ -1671,7 +1671,7 @@ static int __init samsung_init(void)
if (!force && !dmi_check_system(samsung_dmi_table))
return -ENODEV;
- samsung = kzalloc(sizeof(*samsung), GFP_KERNEL);
+ samsung = kzalloc_obj(*samsung, GFP_KERNEL);
if (!samsung)
return -ENOMEM;
diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
index 56beebc38850..a670473b20ab 100644
--- a/drivers/platform/x86/sony-laptop.c
+++ b/drivers/platform/x86/sony-laptop.c
@@ -829,7 +829,7 @@ static int sony_nc_handles_setup(struct platform_device *pd)
{
int i, r, result, arg;
- handles = kzalloc(sizeof(*handles), GFP_KERNEL);
+ handles = kzalloc_obj(*handles, GFP_KERNEL);
if (!handles)
return -ENOMEM;
@@ -1902,7 +1902,7 @@ static int sony_nc_kbd_backlight_setup(struct platform_device *pd,
}
}
- kbdbl_ctl = kzalloc(sizeof(*kbdbl_ctl), GFP_KERNEL);
+ kbdbl_ctl = kzalloc_obj(*kbdbl_ctl, GFP_KERNEL);
if (!kbdbl_ctl)
return -ENOMEM;
@@ -2070,7 +2070,7 @@ static int sony_nc_battery_care_setup(struct platform_device *pd,
{
int ret = 0;
- bcare_ctl = kzalloc(sizeof(struct battery_care_control), GFP_KERNEL);
+ bcare_ctl = kzalloc_obj(struct battery_care_control, GFP_KERNEL);
if (!bcare_ctl)
return -ENOMEM;
@@ -2222,7 +2222,7 @@ static ssize_t sony_nc_thermal_mode_show(struct device *dev,
static int sony_nc_thermal_setup(struct platform_device *pd)
{
int ret = 0;
- th_handle = kzalloc(sizeof(struct snc_thermal_ctrl), GFP_KERNEL);
+ th_handle = kzalloc_obj(struct snc_thermal_ctrl, GFP_KERNEL);
if (!th_handle)
return -ENOMEM;
@@ -2370,7 +2370,7 @@ static int sony_nc_lid_resume_setup(struct platform_device *pd,
if (sony_call_snc_handle(handle, 0x0000, &result))
return -EIO;
- lid_ctl = kzalloc(sizeof(struct snc_lid_resume_control), GFP_KERNEL);
+ lid_ctl = kzalloc_obj(struct snc_lid_resume_control, GFP_KERNEL);
if (!lid_ctl)
return -ENOMEM;
@@ -2497,7 +2497,7 @@ static int sony_nc_gfx_switch_setup(struct platform_device *pd,
{
unsigned int result;
- gfxs_ctl = kzalloc(sizeof(struct snc_gfx_switch_control), GFP_KERNEL);
+ gfxs_ctl = kzalloc_obj(struct snc_gfx_switch_control, GFP_KERNEL);
if (!gfxs_ctl)
return -ENOMEM;
@@ -2576,7 +2576,7 @@ static int sony_nc_highspeed_charging_setup(struct platform_device *pd)
return 0;
}
- hsc_handle = kzalloc(sizeof(struct device_attribute), GFP_KERNEL);
+ hsc_handle = kzalloc_obj(struct device_attribute, GFP_KERNEL);
if (!hsc_handle)
return -ENOMEM;
@@ -2642,7 +2642,7 @@ static int sony_nc_lowbatt_setup(struct platform_device *pd)
{
unsigned int result;
- lowbatt_handle = kzalloc(sizeof(struct device_attribute), GFP_KERNEL);
+ lowbatt_handle = kzalloc_obj(struct device_attribute, GFP_KERNEL);
if (!lowbatt_handle)
return -ENOMEM;
@@ -2719,11 +2719,11 @@ static int sony_nc_fanspeed_setup(struct platform_device *pd)
{
unsigned int result;
- fan_handle = kzalloc(sizeof(struct device_attribute), GFP_KERNEL);
+ fan_handle = kzalloc_obj(struct device_attribute, GFP_KERNEL);
if (!fan_handle)
return -ENOMEM;
- hsf_handle = kzalloc(sizeof(struct device_attribute), GFP_KERNEL);
+ hsf_handle = kzalloc_obj(struct device_attribute, GFP_KERNEL);
if (!hsf_handle) {
result = -ENOMEM;
goto out_hsf_handle_alloc;
@@ -2823,7 +2823,7 @@ static int sony_nc_usb_charge_setup(struct platform_device *pd)
return 0;
}
- uc_handle = kzalloc(sizeof(struct device_attribute), GFP_KERNEL);
+ uc_handle = kzalloc_obj(struct device_attribute, GFP_KERNEL);
if (!uc_handle)
return -ENOMEM;
@@ -2870,7 +2870,7 @@ static int sony_nc_panelid_setup(struct platform_device *pd)
{
unsigned int result;
- panel_handle = kzalloc(sizeof(struct device_attribute), GFP_KERNEL);
+ panel_handle = kzalloc_obj(struct device_attribute, GFP_KERNEL);
if (!panel_handle)
return -ENOMEM;
@@ -2925,7 +2925,7 @@ static int sony_nc_smart_conn_setup(struct platform_device *pd)
{
unsigned int result;
- sc_handle = kzalloc(sizeof(struct device_attribute), GFP_KERNEL);
+ sc_handle = kzalloc_obj(struct device_attribute, GFP_KERNEL);
if (!sc_handle)
return -ENOMEM;
@@ -2999,7 +2999,7 @@ static int sony_nc_touchpad_setup(struct platform_device *pd,
{
int ret = 0;
- tp_ctl = kzalloc(sizeof(struct touchpad_control), GFP_KERNEL);
+ tp_ctl = kzalloc_obj(struct touchpad_control, GFP_KERNEL);
if (!tp_ctl)
return -ENOMEM;
@@ -4161,7 +4161,8 @@ sony_pic_read_possible_resource(struct acpi_resource *resource, void *context)
case ACPI_RESOURCE_TYPE_START_DEPENDENT:
{
/* start IO enumeration */
- struct sony_pic_ioport *ioport = kzalloc(sizeof(*ioport), GFP_KERNEL);
+ struct sony_pic_ioport *ioport = kzalloc_obj(*ioport,
+ GFP_KERNEL);
if (!ioport)
return AE_ERROR;
@@ -4191,8 +4192,7 @@ sony_pic_read_possible_resource(struct acpi_resource *resource, void *context)
p->interrupts[i]);
continue;
}
- interrupt = kzalloc(sizeof(*interrupt),
- GFP_KERNEL);
+ interrupt = kzalloc_obj(*interrupt, GFP_KERNEL);
if (!interrupt)
return AE_ERROR;
diff --git a/drivers/platform/x86/topstar-laptop.c b/drivers/platform/x86/topstar-laptop.c
index 53fc2b364552..955021a0ffa4 100644
--- a/drivers/platform/x86/topstar-laptop.c
+++ b/drivers/platform/x86/topstar-laptop.c
@@ -292,7 +292,7 @@ static int topstar_acpi_add(struct acpi_device *device)
dmi_check_system(topstar_dmi_ids);
- topstar = kzalloc(sizeof(struct topstar_laptop), GFP_KERNEL);
+ topstar = kzalloc_obj(struct topstar_laptop, GFP_KERNEL);
if (!topstar)
return -ENOMEM;
diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c
index 5ad3a7183d33..8e1773f44f64 100644
--- a/drivers/platform/x86/toshiba_acpi.c
+++ b/drivers/platform/x86/toshiba_acpi.c
@@ -3321,7 +3321,7 @@ static int toshiba_acpi_add(struct acpi_device *acpi_dev)
return -ENODEV;
}
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
dev->acpi_dev = acpi_dev;
diff --git a/drivers/platform/x86/toshiba_bluetooth.c b/drivers/platform/x86/toshiba_bluetooth.c
index dad2c3e55904..6e71de0abca2 100644
--- a/drivers/platform/x86/toshiba_bluetooth.c
+++ b/drivers/platform/x86/toshiba_bluetooth.c
@@ -242,7 +242,7 @@ static int toshiba_bt_rfkill_add(struct acpi_device *device)
pr_info("Toshiba ACPI Bluetooth device driver\n");
- bt_dev = kzalloc(sizeof(*bt_dev), GFP_KERNEL);
+ bt_dev = kzalloc_obj(*bt_dev, GFP_KERNEL);
if (!bt_dev)
return -ENOMEM;
bt_dev->acpi_dev = device;
diff --git a/drivers/platform/x86/uniwill/uniwill-acpi.c b/drivers/platform/x86/uniwill/uniwill-acpi.c
index 3c9af441d133..bad9c030295f 100644
--- a/drivers/platform/x86/uniwill/uniwill-acpi.c
+++ b/drivers/platform/x86/uniwill/uniwill-acpi.c
@@ -1293,7 +1293,7 @@ static int uniwill_add_battery(struct power_supply *battery, struct acpi_battery
struct uniwill_battery_entry *entry;
int ret;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
diff --git a/drivers/platform/x86/uv_sysfs.c b/drivers/platform/x86/uv_sysfs.c
index f6a0627f36db..fa2e31151923 100644
--- a/drivers/platform/x86/uv_sysfs.c
+++ b/drivers/platform/x86/uv_sysfs.c
@@ -216,7 +216,7 @@ static int uv_hubs_init(void)
u64 sz;
int i, ret;
- prev_obj_to_cnode = kmalloc_array(uv_bios_obj_cnt, sizeof(*prev_obj_to_cnode),
+ prev_obj_to_cnode = kmalloc_objs(*prev_obj_to_cnode, uv_bios_obj_cnt,
GFP_KERNEL);
if (!prev_obj_to_cnode)
return -ENOMEM;
@@ -242,14 +242,14 @@ static int uv_hubs_init(void)
goto err_enum_objs;
}
- uv_hubs = kcalloc(uv_bios_obj_cnt, sizeof(*uv_hubs), GFP_KERNEL);
+ uv_hubs = kzalloc_objs(*uv_hubs, uv_bios_obj_cnt, GFP_KERNEL);
if (!uv_hubs) {
ret = -ENOMEM;
goto err_enum_objs;
}
for (i = 0; i < uv_bios_obj_cnt; i++) {
- uv_hubs[i] = kzalloc(sizeof(*uv_hubs[i]), GFP_KERNEL);
+ uv_hubs[i] = kzalloc_obj(*uv_hubs[i], GFP_KERNEL);
if (!uv_hubs[i]) {
i--;
ret = -ENOMEM;
@@ -368,7 +368,7 @@ static int uv_ports_init(void)
s64 biosr;
int j = 0, k = 0, ret, sz;
- port_buf = kcalloc(uv_bios_obj_cnt, sizeof(*port_buf), GFP_KERNEL);
+ port_buf = kzalloc_objs(*port_buf, uv_bios_obj_cnt, GFP_KERNEL);
if (!port_buf)
return -ENOMEM;
@@ -388,8 +388,8 @@ static int uv_ports_init(void)
}
}
for (j = 0; j < uv_bios_obj_cnt; j++) {
- uv_hubs[j]->ports = kcalloc(hub_buf[j].ports,
- sizeof(*uv_hubs[j]->ports), GFP_KERNEL);
+ uv_hubs[j]->ports = kzalloc_objs(*uv_hubs[j]->ports,
+ hub_buf[j].ports, GFP_KERNEL);
if (!uv_hubs[j]->ports) {
ret = -ENOMEM;
j--;
@@ -398,7 +398,8 @@ static int uv_ports_init(void)
}
for (j = 0; j < uv_bios_obj_cnt; j++) {
for (k = 0; k < hub_buf[j].ports; k++) {
- uv_hubs[j]->ports[k] = kzalloc(sizeof(*uv_hubs[j]->ports[k]), GFP_KERNEL);
+ uv_hubs[j]->ports[k] = kzalloc_obj(*uv_hubs[j]->ports[k],
+ GFP_KERNEL);
if (!uv_hubs[j]->ports[k]) {
ret = -ENOMEM;
k--;
@@ -674,8 +675,8 @@ static int pci_topology_init(void)
}
num_pci_lines = l;
- uv_pci_objs = kcalloc(num_pci_lines,
- sizeof(*uv_pci_objs), GFP_KERNEL);
+ uv_pci_objs = kzalloc_objs(*uv_pci_objs, num_pci_lines,
+ GFP_KERNEL);
if (!uv_pci_objs) {
kfree(pci_top_str);
ret = -ENOMEM;
@@ -683,7 +684,8 @@ static int pci_topology_init(void)
}
start = pci_top_str;
while ((found = strsep(&start, "\n")) != NULL) {
- uv_pci_objs[k] = kzalloc(sizeof(*uv_pci_objs[k]), GFP_KERNEL);
+ uv_pci_objs[k] = kzalloc_obj(*uv_pci_objs[k],
+ GFP_KERNEL);
if (!uv_pci_objs[k]) {
ret = -ENOMEM;
goto err_pci_obj;
diff --git a/drivers/platform/x86/wireless-hotkey.c b/drivers/platform/x86/wireless-hotkey.c
index a220fe4f9ef8..bba55c634e2c 100644
--- a/drivers/platform/x86/wireless-hotkey.c
+++ b/drivers/platform/x86/wireless-hotkey.c
@@ -91,7 +91,7 @@ static int wl_add(struct acpi_device *device)
struct wl_button *button;
int err;
- button = kzalloc(sizeof(struct wl_button), GFP_KERNEL);
+ button = kzalloc_obj(struct wl_button, GFP_KERNEL);
if (!button)
return -ENOMEM;
diff --git a/drivers/platform/x86/x86-android-tablets/core.c b/drivers/platform/x86/x86-android-tablets/core.c
index 6588fae30356..15a50ced6867 100644
--- a/drivers/platform/x86/x86-android-tablets/core.c
+++ b/drivers/platform/x86/x86-android-tablets/core.c
@@ -49,7 +49,7 @@ int x86_android_tablet_get_gpiod(const char *chip, int pin, const char *con_id,
struct gpiod_lookup_table *lookup;
struct gpio_desc *gpiod;
- lookup = kzalloc(struct_size(lookup, table, 2), GFP_KERNEL);
+ lookup = kzalloc_flex(*lookup, table, 2, GFP_KERNEL);
if (!lookup)
return -ENOMEM;
@@ -447,7 +447,8 @@ static __init int x86_android_tablet_probe(struct platform_device *pdev)
exit_handler = dev_info->exit;
}
- i2c_clients = kcalloc(dev_info->i2c_client_count, sizeof(*i2c_clients), GFP_KERNEL);
+ i2c_clients = kzalloc_objs(*i2c_clients, dev_info->i2c_client_count,
+ GFP_KERNEL);
if (!i2c_clients) {
x86_android_tablet_remove(pdev);
return -ENOMEM;
@@ -462,7 +463,7 @@ static __init int x86_android_tablet_probe(struct platform_device *pdev)
}
}
- spi_devs = kcalloc(dev_info->spi_dev_count, sizeof(*spi_devs), GFP_KERNEL);
+ spi_devs = kzalloc_objs(*spi_devs, dev_info->spi_dev_count, GFP_KERNEL);
if (!spi_devs) {
x86_android_tablet_remove(pdev);
return -ENOMEM;
@@ -478,7 +479,7 @@ static __init int x86_android_tablet_probe(struct platform_device *pdev)
}
/* + 1 to make space for the (optional) gpio_keys_button platform device */
- pdevs = kcalloc(dev_info->pdev_count + 1, sizeof(*pdevs), GFP_KERNEL);
+ pdevs = kzalloc_objs(*pdevs, dev_info->pdev_count + 1, GFP_KERNEL);
if (!pdevs) {
x86_android_tablet_remove(pdev);
return -ENOMEM;
@@ -494,7 +495,7 @@ static __init int x86_android_tablet_probe(struct platform_device *pdev)
}
}
- serdevs = kcalloc(dev_info->serdev_count, sizeof(*serdevs), GFP_KERNEL);
+ serdevs = kzalloc_objs(*serdevs, dev_info->serdev_count, GFP_KERNEL);
if (!serdevs) {
x86_android_tablet_remove(pdev);
return -ENOMEM;
diff --git a/drivers/platform/x86/xo15-ebook.c b/drivers/platform/x86/xo15-ebook.c
index cb02222c978c..6bc5cd2abfab 100644
--- a/drivers/platform/x86/xo15-ebook.c
+++ b/drivers/platform/x86/xo15-ebook.c
@@ -86,7 +86,7 @@ static int ebook_switch_add(struct acpi_device *device)
struct input_dev *input;
int error;
- button = kzalloc(sizeof(struct ebook_switch), GFP_KERNEL);
+ button = kzalloc_obj(struct ebook_switch, GFP_KERNEL);
if (!button)
return -ENOMEM;
diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c
index bf82775f6a67..a324740b248b 100644
--- a/drivers/pmdomain/core.c
+++ b/drivers/pmdomain/core.c
@@ -1811,7 +1811,7 @@ static struct generic_pm_domain_data *genpd_alloc_dev_data(struct device *dev,
if (ret)
return ERR_PTR(ret);
- gpd_data = kzalloc(sizeof(*gpd_data), GFP_KERNEL);
+ gpd_data = kzalloc_obj(*gpd_data, GFP_KERNEL);
if (!gpd_data) {
ret = -ENOMEM;
goto err_put;
@@ -1822,7 +1822,7 @@ static struct generic_pm_domain_data *genpd_alloc_dev_data(struct device *dev,
/* Allocate data used by a governor. */
if (has_governor) {
- td = kzalloc(sizeof(*td), GFP_KERNEL);
+ td = kzalloc_obj(*td, GFP_KERNEL);
if (!td) {
ret = -ENOMEM;
goto err_free;
@@ -2161,7 +2161,7 @@ static int genpd_add_subdomain(struct generic_pm_domain *genpd,
return -EINVAL;
}
- link = kzalloc(sizeof(*link), GFP_KERNEL);
+ link = kzalloc_obj(*link, GFP_KERNEL);
if (!link)
return -ENOMEM;
@@ -2269,7 +2269,7 @@ static int genpd_set_default_power_state(struct generic_pm_domain *genpd)
{
struct genpd_power_state *state;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return -ENOMEM;
@@ -2295,7 +2295,7 @@ static int genpd_alloc_data(struct generic_pm_domain *genpd)
return -ENOMEM;
if (genpd->gov) {
- gd = kzalloc(sizeof(*gd), GFP_KERNEL);
+ gd = kzalloc_obj(*gd, GFP_KERNEL);
if (!gd) {
ret = -ENOMEM;
goto free;
@@ -2623,7 +2623,7 @@ static int genpd_add_provider(struct device_node *np, genpd_xlate_t xlate,
{
struct of_genpd_provider *cp;
- cp = kzalloc(sizeof(*cp), GFP_KERNEL);
+ cp = kzalloc_obj(*cp, GFP_KERNEL);
if (!cp)
return -ENOMEM;
@@ -3316,7 +3316,7 @@ struct device *genpd_dev_pm_attach_by_id(struct device *dev,
return ERR_PTR(-ENODEV);
/* Allocate and register device on the genpd bus. */
- virt_dev = kzalloc(sizeof(*virt_dev), GFP_KERNEL);
+ virt_dev = kzalloc_obj(*virt_dev, GFP_KERNEL);
if (!virt_dev)
return ERR_PTR(-ENOMEM);
@@ -3474,7 +3474,7 @@ int of_genpd_parse_idle_states(struct device_node *dn,
return 0;
}
- st = kcalloc(ret, sizeof(*st), GFP_KERNEL);
+ st = kzalloc_objs(*st, ret, GFP_KERNEL);
if (!st)
return -ENOMEM;
diff --git a/drivers/pmdomain/renesas/rcar-gen4-sysc.c b/drivers/pmdomain/renesas/rcar-gen4-sysc.c
index 7434bf42d215..a62937a9a045 100644
--- a/drivers/pmdomain/renesas/rcar-gen4-sysc.c
+++ b/drivers/pmdomain/renesas/rcar-gen4-sysc.c
@@ -324,7 +324,7 @@ static int __init rcar_gen4_sysc_pd_init(void)
rcar_gen4_sysc_base = base;
- domains = kzalloc(sizeof(*domains), GFP_KERNEL);
+ domains = kzalloc_obj(*domains, GFP_KERNEL);
if (!domains) {
error = -ENOMEM;
goto out_put;
diff --git a/drivers/pmdomain/renesas/rcar-sysc.c b/drivers/pmdomain/renesas/rcar-sysc.c
index d8a8ffcde38d..aa5485876e0a 100644
--- a/drivers/pmdomain/renesas/rcar-sysc.c
+++ b/drivers/pmdomain/renesas/rcar-sysc.c
@@ -383,7 +383,7 @@ static int __init rcar_sysc_pd_init(void)
rcar_sysc_extmask_offs = info->extmask_offs;
rcar_sysc_extmask_val = info->extmask_val;
- domains = kzalloc(sizeof(*domains), GFP_KERNEL);
+ domains = kzalloc_obj(*domains, GFP_KERNEL);
if (!domains) {
error = -ENOMEM;
goto out_put;
diff --git a/drivers/pmdomain/renesas/rmobile-sysc.c b/drivers/pmdomain/renesas/rmobile-sysc.c
index a6bf7295e909..541f5739c13a 100644
--- a/drivers/pmdomain/renesas/rmobile-sysc.c
+++ b/drivers/pmdomain/renesas/rmobile-sysc.c
@@ -277,7 +277,7 @@ static int __init rmobile_add_pm_domains(void __iomem *base,
/* always-on domain */
}
- pd = kzalloc(sizeof(*pd), GFP_KERNEL);
+ pd = kzalloc_obj(*pd, GFP_KERNEL);
if (!pd)
return -ENOMEM;
diff --git a/drivers/pmdomain/st/ste-ux500-pm-domain.c b/drivers/pmdomain/st/ste-ux500-pm-domain.c
index 3d4f111ed156..45ea76b9c7f8 100644
--- a/drivers/pmdomain/st/ste-ux500-pm-domain.c
+++ b/drivers/pmdomain/st/ste-ux500-pm-domain.c
@@ -65,7 +65,7 @@ static int ux500_pm_domains_probe(struct platform_device *pdev)
if (!np)
return -ENODEV;
- genpd_data = kzalloc(sizeof(*genpd_data), GFP_KERNEL);
+ genpd_data = kzalloc_obj(*genpd_data, GFP_KERNEL);
if (!genpd_data)
return -ENOMEM;
diff --git a/drivers/pmdomain/tegra/powergate-bpmp.c b/drivers/pmdomain/tegra/powergate-bpmp.c
index 9f4366250bfd..43a46edd1ebc 100644
--- a/drivers/pmdomain/tegra/powergate-bpmp.c
+++ b/drivers/pmdomain/tegra/powergate-bpmp.c
@@ -226,7 +226,7 @@ tegra_bpmp_probe_powergates(struct tegra_bpmp *bpmp,
dev_dbg(bpmp->dev, "maximum powergate ID: %u\n", max_id);
- powergates = kcalloc(max_id + 1, sizeof(*powergates), GFP_KERNEL);
+ powergates = kzalloc_objs(*powergates, max_id + 1, GFP_KERNEL);
if (!powergates)
return -ENOMEM;
@@ -260,7 +260,7 @@ static int tegra_bpmp_add_powergates(struct tegra_bpmp *bpmp,
unsigned int i;
int err;
- domains = kcalloc(count, sizeof(*domains), GFP_KERNEL);
+ domains = kzalloc_objs(*domains, count, GFP_KERNEL);
if (!domains)
return -ENOMEM;
diff --git a/drivers/pnp/card.c b/drivers/pnp/card.c
index c7596dc24fbd..226a81cdb664 100644
--- a/drivers/pnp/card.c
+++ b/drivers/pnp/card.c
@@ -80,7 +80,7 @@ static int card_probe(struct pnp_card *card, struct pnp_card_driver *drv)
if (!id)
return 0;
- clink = kzalloc(sizeof(*clink), GFP_KERNEL);
+ clink = kzalloc_obj(*clink, GFP_KERNEL);
if (!clink)
return 0;
clink->card = card;
@@ -108,7 +108,7 @@ static struct pnp_id *pnp_add_card_id(struct pnp_card *card, char *id)
{
struct pnp_id *dev_id, *ptr;
- dev_id = kzalloc(sizeof(struct pnp_id), GFP_KERNEL);
+ dev_id = kzalloc_obj(struct pnp_id, GFP_KERNEL);
if (!dev_id)
return NULL;
@@ -159,7 +159,7 @@ struct pnp_card *pnp_alloc_card(struct pnp_protocol *protocol, int id, char *pnp
struct pnp_card *card;
struct pnp_id *dev_id;
- card = kzalloc(sizeof(struct pnp_card), GFP_KERNEL);
+ card = kzalloc_obj(struct pnp_card, GFP_KERNEL);
if (!card)
return NULL;
diff --git a/drivers/pnp/core.c b/drivers/pnp/core.c
index ac48db6dcfe3..768388ddaeca 100644
--- a/drivers/pnp/core.c
+++ b/drivers/pnp/core.c
@@ -122,7 +122,7 @@ struct pnp_dev *pnp_alloc_dev(struct pnp_protocol *protocol, int id,
struct pnp_dev *dev;
struct pnp_id *dev_id;
- dev = kzalloc(sizeof(struct pnp_dev), GFP_KERNEL);
+ dev = kzalloc_obj(struct pnp_dev, GFP_KERNEL);
if (!dev)
return NULL;
diff --git a/drivers/pnp/driver.c b/drivers/pnp/driver.c
index 05e9840bc3d4..731a37002811 100644
--- a/drivers/pnp/driver.c
+++ b/drivers/pnp/driver.c
@@ -315,7 +315,7 @@ struct pnp_id *pnp_add_id(struct pnp_dev *dev, const char *id)
{
struct pnp_id *dev_id, *ptr;
- dev_id = kzalloc(sizeof(struct pnp_id), GFP_KERNEL);
+ dev_id = kzalloc_obj(struct pnp_id, GFP_KERNEL);
if (!dev_id)
return NULL;
diff --git a/drivers/pnp/interface.c b/drivers/pnp/interface.c
index 44efcdb87e6f..108f7c63ddc5 100644
--- a/drivers/pnp/interface.c
+++ b/drivers/pnp/interface.c
@@ -214,7 +214,7 @@ static ssize_t options_show(struct device *dmdev, struct device_attribute *attr,
int ret, dep = 0, set = 0;
char *indent;
- buffer = kzalloc(sizeof(*buffer), GFP_KERNEL);
+ buffer = kzalloc_obj(*buffer, GFP_KERNEL);
if (!buffer)
return -ENOMEM;
@@ -257,7 +257,7 @@ static ssize_t resources_show(struct device *dmdev,
if (!dev)
return -EINVAL;
- buffer = kzalloc(sizeof(*buffer), GFP_KERNEL);
+ buffer = kzalloc_obj(*buffer, GFP_KERNEL);
if (!buffer)
return -ENOMEM;
diff --git a/drivers/pnp/quirks.c b/drivers/pnp/quirks.c
index 6e1d4bfd28ac..2afa17c39628 100644
--- a/drivers/pnp/quirks.c
+++ b/drivers/pnp/quirks.c
@@ -29,7 +29,7 @@ static void quirk_awe32_add_ports(struct pnp_dev *dev,
{
struct pnp_option *new_option;
- new_option = kmalloc(sizeof(struct pnp_option), GFP_KERNEL);
+ new_option = kmalloc_obj(struct pnp_option, GFP_KERNEL);
if (!new_option) {
dev_err(&dev->dev, "couldn't add ioport region to option set "
"%d\n", pnp_option_set(option));
@@ -155,8 +155,7 @@ static struct pnp_option *pnp_clone_dependent_set(struct pnp_dev *dev,
list_for_each_entry(option, &dev->options, list) {
if (pnp_option_is_dependent(option) &&
pnp_option_set(option) == set) {
- new_option = kmalloc(sizeof(struct pnp_option),
- GFP_KERNEL);
+ new_option = kmalloc_obj(struct pnp_option, GFP_KERNEL);
if (!new_option) {
dev_err(&dev->dev, "couldn't clone dependent "
"set %d\n", set);
diff --git a/drivers/pnp/resource.c b/drivers/pnp/resource.c
index 8f7695624c8c..f62544ec5a1f 100644
--- a/drivers/pnp/resource.c
+++ b/drivers/pnp/resource.c
@@ -38,7 +38,7 @@ static struct pnp_option *pnp_build_option(struct pnp_dev *dev, unsigned long ty
{
struct pnp_option *option;
- option = kzalloc(sizeof(struct pnp_option), GFP_KERNEL);
+ option = kzalloc_obj(struct pnp_option, GFP_KERNEL);
if (!option)
return NULL;
@@ -499,7 +499,7 @@ static struct pnp_resource *pnp_new_resource(struct pnp_dev *dev)
{
struct pnp_resource *pnp_res;
- pnp_res = kzalloc(sizeof(struct pnp_resource), GFP_KERNEL);
+ pnp_res = kzalloc_obj(struct pnp_resource, GFP_KERNEL);
if (!pnp_res)
return NULL;
diff --git a/drivers/power/sequencing/core.c b/drivers/power/sequencing/core.c
index 1fcf0af7cc0b..666bcfd3c655 100644
--- a/drivers/power/sequencing/core.c
+++ b/drivers/power/sequencing/core.c
@@ -90,7 +90,7 @@ static struct pwrseq_unit *pwrseq_unit_new(const struct pwrseq_unit_data *data)
{
struct pwrseq_unit *unit;
- unit = kzalloc(sizeof(*unit), GFP_KERNEL);
+ unit = kzalloc_obj(*unit, GFP_KERNEL);
if (!unit)
return NULL;
@@ -138,7 +138,7 @@ static struct pwrseq_unit_dep *pwrseq_unit_dep_new(struct pwrseq_unit *unit)
{
struct pwrseq_unit_dep *dep;
- dep = kzalloc(sizeof(*dep), GFP_KERNEL);
+ dep = kzalloc_obj(*dep, GFP_KERNEL);
if (!dep)
return NULL;
@@ -195,7 +195,7 @@ pwrseq_target_new(const struct pwrseq_target_data *data)
{
struct pwrseq_target *target;
- target = kzalloc(sizeof(*target), GFP_KERNEL);
+ target = kzalloc_obj(*target, GFP_KERNEL);
if (!target)
return NULL;
@@ -669,8 +669,7 @@ struct pwrseq_desc *pwrseq_get(struct device *dev, const char *target)
struct pwrseq_match_data match_data;
int ret;
- struct pwrseq_desc *desc __free(kfree) = kzalloc(sizeof(*desc),
- GFP_KERNEL);
+ struct pwrseq_desc *desc __free(kfree) = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/power/sequencing/pwrseq-thead-gpu.c b/drivers/power/sequencing/pwrseq-thead-gpu.c
index 7c82a10ca9f6..ce32201f5a21 100644
--- a/drivers/power/sequencing/pwrseq-thead-gpu.c
+++ b/drivers/power/sequencing/pwrseq-thead-gpu.c
@@ -145,7 +145,7 @@ static int pwrseq_thead_gpu_match(struct pwrseq_device *pwrseq,
PWRSEQ_MATCH_OK : PWRSEQ_NO_MATCH;
ctx->num_clks = ARRAY_SIZE(clk_names);
- ctx->clks = kcalloc(ctx->num_clks, sizeof(*ctx->clks), GFP_KERNEL);
+ ctx->clks = kzalloc_objs(*ctx->clks, ctx->num_clks, GFP_KERNEL);
if (!ctx->clks)
return -ENOMEM;
diff --git a/drivers/power/supply/cros_peripheral_charger.c b/drivers/power/supply/cros_peripheral_charger.c
index 962a6fd29832..7d48ab4a60b2 100644
--- a/drivers/power/supply/cros_peripheral_charger.c
+++ b/drivers/power/supply/cros_peripheral_charger.c
@@ -64,7 +64,7 @@ static int cros_pchg_ec_command(const struct charger_data *charger,
struct cros_ec_command *msg;
int ret;
- msg = kzalloc(struct_size(msg, data, max(outsize, insize)), GFP_KERNEL);
+ msg = kzalloc_flex(*msg, data, max(outsize, insize), GFP_KERNEL);
if (!msg)
return -ENOMEM;
diff --git a/drivers/power/supply/cros_usbpd-charger.c b/drivers/power/supply/cros_usbpd-charger.c
index 47d3f58aa15c..6b525ed74197 100644
--- a/drivers/power/supply/cros_usbpd-charger.c
+++ b/drivers/power/supply/cros_usbpd-charger.c
@@ -94,7 +94,7 @@ static int cros_usbpd_charger_ec_command(struct charger_data *charger,
struct cros_ec_command *msg;
int ret;
- msg = kzalloc(struct_size(msg, data, max(outsize, insize)), GFP_KERNEL);
+ msg = kzalloc_flex(*msg, data, max(outsize, insize), GFP_KERNEL);
if (!msg)
return -ENOMEM;
diff --git a/drivers/power/supply/pmu_battery.c b/drivers/power/supply/pmu_battery.c
index ed83c5e05ca3..054f75d904a8 100644
--- a/drivers/power/supply/pmu_battery.c
+++ b/drivers/power/supply/pmu_battery.c
@@ -160,8 +160,7 @@ static int __init pmu_bat_init(void)
for (i = 0; i < pmu_battery_count; i++) {
struct power_supply_config psy_cfg = {};
- struct pmu_battery_dev *pbat = kzalloc(sizeof(*pbat),
- GFP_KERNEL);
+ struct pmu_battery_dev *pbat = kzalloc_obj(*pbat, GFP_KERNEL);
if (!pbat)
break;
diff --git a/drivers/power/supply/power_supply_core.c b/drivers/power/supply/power_supply_core.c
index 9a28381e2607..91e8b18e09ff 100644
--- a/drivers/power/supply/power_supply_core.c
+++ b/drivers/power/supply/power_supply_core.c
@@ -1426,7 +1426,7 @@ int power_supply_register_extension(struct power_supply *psy, const struct power
if (power_supply_has_property(psy, ext->properties[i]))
return -EEXIST;
- reg = kmalloc(sizeof(*reg), GFP_KERNEL);
+ reg = kmalloc_obj(*reg, GFP_KERNEL);
if (!reg)
return -ENOMEM;
diff --git a/drivers/power/supply/power_supply_leds.c b/drivers/power/supply/power_supply_leds.c
index f4a7e566bea1..af32dc2e0210 100644
--- a/drivers/power/supply/power_supply_leds.c
+++ b/drivers/power/supply/power_supply_leds.c
@@ -48,7 +48,7 @@ static int power_supply_register_led_trigger(struct power_supply *psy,
if (err && *err)
return *err;
- psy_trig = kzalloc(sizeof(*psy_trig), GFP_KERNEL);
+ psy_trig = kzalloc_obj(*psy_trig, GFP_KERNEL);
if (!psy_trig)
goto err_free_trigger;
diff --git a/drivers/powercap/arm_scmi_powercap.c b/drivers/powercap/arm_scmi_powercap.c
index a081f177e702..798c43e482ae 100644
--- a/drivers/powercap/arm_scmi_powercap.c
+++ b/drivers/powercap/arm_scmi_powercap.c
@@ -370,7 +370,7 @@ static int scmi_zones_register(struct device *dev,
unsigned int sp = 0, reg_zones = 0;
struct scmi_powercap_zone *spz, **zones_stack;
- zones_stack = kcalloc(pr->num_zones, sizeof(spz), GFP_KERNEL);
+ zones_stack = kzalloc_objs(spz, pr->num_zones, GFP_KERNEL);
if (!zones_stack)
return -ENOMEM;
diff --git a/drivers/powercap/dtpm.c b/drivers/powercap/dtpm.c
index 129d55bc705c..afdeecef69ef 100644
--- a/drivers/powercap/dtpm.c
+++ b/drivers/powercap/dtpm.c
@@ -418,7 +418,7 @@ static struct dtpm *dtpm_setup_virtual(const struct dtpm_node *hierarchy,
struct dtpm *dtpm;
int ret;
- dtpm = kzalloc(sizeof(*dtpm), GFP_KERNEL);
+ dtpm = kzalloc_obj(*dtpm, GFP_KERNEL);
if (!dtpm)
return ERR_PTR(-ENOMEM);
dtpm_init(dtpm, NULL);
diff --git a/drivers/powercap/dtpm_cpu.c b/drivers/powercap/dtpm_cpu.c
index 99390ec1481f..25489b3b03be 100644
--- a/drivers/powercap/dtpm_cpu.c
+++ b/drivers/powercap/dtpm_cpu.c
@@ -212,7 +212,7 @@ static int __dtpm_cpu_setup(int cpu, struct dtpm *parent)
goto release_policy;
}
- dtpm_cpu = kzalloc(sizeof(*dtpm_cpu), GFP_KERNEL);
+ dtpm_cpu = kzalloc_obj(*dtpm_cpu, GFP_KERNEL);
if (!dtpm_cpu) {
ret = -ENOMEM;
goto release_policy;
diff --git a/drivers/powercap/dtpm_devfreq.c b/drivers/powercap/dtpm_devfreq.c
index d1dff6ccab12..e941bb241986 100644
--- a/drivers/powercap/dtpm_devfreq.c
+++ b/drivers/powercap/dtpm_devfreq.c
@@ -160,7 +160,7 @@ static int __dtpm_devfreq_setup(struct devfreq *devfreq, struct dtpm *parent)
}
}
- dtpm_devfreq = kzalloc(sizeof(*dtpm_devfreq), GFP_KERNEL);
+ dtpm_devfreq = kzalloc_obj(*dtpm_devfreq, GFP_KERNEL);
if (!dtpm_devfreq)
return -ENOMEM;
diff --git a/drivers/powercap/intel_rapl_common.c b/drivers/powercap/intel_rapl_common.c
index 539625531709..e7f538ebab2f 100644
--- a/drivers/powercap/intel_rapl_common.c
+++ b/drivers/powercap/intel_rapl_common.c
@@ -1520,8 +1520,8 @@ static int rapl_detect_domains(struct rapl_package *rp)
}
pr_debug("found %d domains on %s\n", rp->nr_domains, rp->name);
- rp->domains = kcalloc(rp->nr_domains, sizeof(struct rapl_domain),
- GFP_KERNEL);
+ rp->domains = kzalloc_objs(struct rapl_domain, rp->nr_domains,
+ GFP_KERNEL);
if (!rp->domains)
return -ENOMEM;
@@ -2216,7 +2216,7 @@ struct rapl_package *rapl_add_package_cpuslocked(int id, struct rapl_if_priv *pr
struct rapl_package *rp;
int ret;
- rp = kzalloc(sizeof(struct rapl_package), GFP_KERNEL);
+ rp = kzalloc_obj(struct rapl_package, GFP_KERNEL);
if (!rp)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/powercap/intel_rapl_tpmi.c b/drivers/powercap/intel_rapl_tpmi.c
index 0f8abdc592bc..f68784c7e718 100644
--- a/drivers/powercap/intel_rapl_tpmi.c
+++ b/drivers/powercap/intel_rapl_tpmi.c
@@ -102,7 +102,7 @@ static struct tpmi_rapl_package *trp_alloc(int pkg_id)
}
}
- trp = kzalloc(sizeof(*trp), GFP_KERNEL);
+ trp = kzalloc_obj(*trp, GFP_KERNEL);
if (!trp) {
ret = -ENOMEM;
goto err_del_powercap;
diff --git a/drivers/powercap/powercap_sys.c b/drivers/powercap/powercap_sys.c
index f3b2ae635305..b32ac11a6c49 100644
--- a/drivers/powercap/powercap_sys.c
+++ b/drivers/powercap/powercap_sys.c
@@ -501,7 +501,7 @@ struct powercap_zone *powercap_register_zone(
return ERR_PTR(-EINVAL);
memset(power_zone, 0, sizeof(*power_zone));
} else {
- power_zone = kzalloc(sizeof(*power_zone), GFP_KERNEL);
+ power_zone = kzalloc_obj(*power_zone, GFP_KERNEL);
if (!power_zone)
return ERR_PTR(-ENOMEM);
power_zone->allocated = true;
@@ -529,9 +529,8 @@ struct powercap_zone *powercap_register_zone(
power_zone->name = kstrdup(name, GFP_KERNEL);
if (!power_zone->name)
goto err_name_alloc;
- power_zone->constraints = kcalloc(nr_constraints,
- sizeof(*power_zone->constraints),
- GFP_KERNEL);
+ power_zone->constraints = kzalloc_objs(*power_zone->constraints,
+ nr_constraints, GFP_KERNEL);
if (!power_zone->constraints)
goto err_const_alloc;
@@ -614,7 +613,7 @@ struct powercap_control_type *powercap_register_control_type(
return ERR_PTR(-EINVAL);
memset(control_type, 0, sizeof(*control_type));
} else {
- control_type = kzalloc(sizeof(*control_type), GFP_KERNEL);
+ control_type = kzalloc_obj(*control_type, GFP_KERNEL);
if (!control_type)
return ERR_PTR(-ENOMEM);
control_type->allocated = true;
diff --git a/drivers/pps/clients/pps_parport.c b/drivers/pps/clients/pps_parport.c
index 24db06750297..975d984b0fd5 100644
--- a/drivers/pps/clients/pps_parport.c
+++ b/drivers/pps/clients/pps_parport.c
@@ -142,7 +142,7 @@ static void parport_attach(struct parport *port)
return;
}
- device = kzalloc(sizeof(struct pps_client_pp), GFP_KERNEL);
+ device = kzalloc_obj(struct pps_client_pp, GFP_KERNEL);
if (!device) {
pr_err("memory allocation failed, not attaching\n");
return;
diff --git a/drivers/pps/generators/pps_gen.c b/drivers/pps/generators/pps_gen.c
index 5b8bb454913c..a91f6871f98a 100644
--- a/drivers/pps/generators/pps_gen.c
+++ b/drivers/pps/generators/pps_gen.c
@@ -230,7 +230,7 @@ struct pps_gen_device *pps_gen_register_source(const struct pps_gen_source_info
struct pps_gen_device *pps_gen;
int err;
- pps_gen = kzalloc(sizeof(struct pps_gen_device), GFP_KERNEL);
+ pps_gen = kzalloc_obj(struct pps_gen_device, GFP_KERNEL);
if (pps_gen == NULL) {
err = -ENOMEM;
goto pps_gen_register_source_exit;
diff --git a/drivers/pps/kapi.c b/drivers/pps/kapi.c
index 6985c34de2ce..de2ce4faf262 100644
--- a/drivers/pps/kapi.c
+++ b/drivers/pps/kapi.c
@@ -83,7 +83,7 @@ struct pps_device *pps_register_source(struct pps_source_info *info,
}
/* Allocate memory for the new PPS source struct */
- pps = kzalloc(sizeof(struct pps_device), GFP_KERNEL);
+ pps = kzalloc_obj(struct pps_device, GFP_KERNEL);
if (pps == NULL) {
err = -ENOMEM;
goto pps_register_source_exit;
diff --git a/drivers/ps3/ps3-lpm.c b/drivers/ps3/ps3-lpm.c
index 188ae2572674..8f1ee4c748bf 100644
--- a/drivers/ps3/ps3-lpm.c
+++ b/drivers/ps3/ps3-lpm.c
@@ -1181,7 +1181,7 @@ static int ps3_lpm_probe(struct ps3_system_bus_device *dev)
return -EBUSY;
}
- lpm_priv = kzalloc(sizeof(*lpm_priv), GFP_KERNEL);
+ lpm_priv = kzalloc_obj(*lpm_priv, GFP_KERNEL);
if (!lpm_priv)
return -ENOMEM;
diff --git a/drivers/ps3/ps3-vuart.c b/drivers/ps3/ps3-vuart.c
index 5cb92535a4a1..3493a9ef05ce 100644
--- a/drivers/ps3/ps3-vuart.c
+++ b/drivers/ps3/ps3-vuart.c
@@ -914,7 +914,7 @@ static int ps3_vuart_bus_interrupt_get(void)
BUG_ON(vuart_bus_priv.bmp);
- vuart_bus_priv.bmp = kzalloc(sizeof(struct ports_bmp), GFP_KERNEL);
+ vuart_bus_priv.bmp = kzalloc_obj(struct ports_bmp, GFP_KERNEL);
if (!vuart_bus_priv.bmp) {
result = -ENOMEM;
@@ -1015,8 +1015,7 @@ static int ps3_vuart_probe(struct ps3_system_bus_device *dev)
/* Setup dev->driver_priv. */
- dev->driver_priv = kzalloc(sizeof(struct ps3_vuart_port_priv),
- GFP_KERNEL);
+ dev->driver_priv = kzalloc_obj(struct ps3_vuart_port_priv, GFP_KERNEL);
if (!dev->driver_priv) {
result = -ENOMEM;
diff --git a/drivers/ps3/ps3av.c b/drivers/ps3/ps3av.c
index f6c9e56bdba7..19f2c5b4f8f3 100644
--- a/drivers/ps3/ps3av.c
+++ b/drivers/ps3/ps3av.c
@@ -934,7 +934,7 @@ static int ps3av_probe(struct ps3_system_bus_device *dev)
return -EBUSY;
}
- ps3av = kzalloc(sizeof(*ps3av), GFP_KERNEL);
+ ps3av = kzalloc_obj(*ps3av, GFP_KERNEL);
if (!ps3av)
return -ENOMEM;
diff --git a/drivers/ptp/ptp_clock.c b/drivers/ptp/ptp_clock.c
index b0e167c0b3eb..dc6d9afdd5c6 100644
--- a/drivers/ptp/ptp_clock.c
+++ b/drivers/ptp/ptp_clock.c
@@ -328,7 +328,7 @@ struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info,
return ERR_PTR(-EINVAL);
/* Initialize a clock structure. */
- ptp = kzalloc(sizeof(struct ptp_clock), GFP_KERNEL);
+ ptp = kzalloc_obj(struct ptp_clock, GFP_KERNEL);
if (!ptp) {
err = -ENOMEM;
goto no_memory;
@@ -344,7 +344,7 @@ struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info,
ptp->devid = MKDEV(major, index);
ptp->index = index;
INIT_LIST_HEAD(&ptp->tsevqs);
- queue = kzalloc(sizeof(*queue), GFP_KERNEL);
+ queue = kzalloc_obj(*queue, GFP_KERNEL);
if (!queue) {
err = -ENOMEM;
goto no_memory_queue;
diff --git a/drivers/ptp/ptp_ines.c b/drivers/ptp/ptp_ines.c
index 790eb42b78db..67eda6fb22d1 100644
--- a/drivers/ptp/ptp_ines.c
+++ b/drivers/ptp/ptp_ines.c
@@ -760,7 +760,7 @@ static int ines_ptp_ctrl_probe(struct platform_device *pld)
err = PTR_ERR(addr);
goto out;
}
- clock = kzalloc(sizeof(*clock), GFP_KERNEL);
+ clock = kzalloc_obj(*clock, GFP_KERNEL);
if (!clock) {
err = -ENOMEM;
goto out;
diff --git a/drivers/ptp/ptp_mock.c b/drivers/ptp/ptp_mock.c
index bbd14ce24b34..267168e9d0ca 100644
--- a/drivers/ptp/ptp_mock.c
+++ b/drivers/ptp/ptp_mock.c
@@ -120,7 +120,7 @@ struct mock_phc *mock_phc_create(struct device *dev)
struct mock_phc *phc;
int err;
- phc = kzalloc(sizeof(*phc), GFP_KERNEL);
+ phc = kzalloc_obj(*phc, GFP_KERNEL);
if (!phc) {
err = -ENOMEM;
goto out;
diff --git a/drivers/ptp/ptp_ocp.c b/drivers/ptp/ptp_ocp.c
index 1b16a9c3d7fd..1ed492c12e1d 100644
--- a/drivers/ptp/ptp_ocp.c
+++ b/drivers/ptp/ptp_ocp.c
@@ -2241,7 +2241,7 @@ ptp_ocp_register_ext(struct ptp_ocp *bp, struct ocp_resource *r)
struct ptp_ocp_ext_src *ext;
int err;
- ext = kzalloc(sizeof(*ext), GFP_KERNEL);
+ ext = kzalloc_obj(*ext, GFP_KERNEL);
if (!ext)
return -ENOMEM;
@@ -2378,8 +2378,7 @@ ptp_ocp_attr_group_add(struct ptp_ocp *bp,
if (attr_tbl[i].cap & bp->fw_cap)
count++;
- bp->attr_group = kcalloc(count + 1, sizeof(*bp->attr_group),
- GFP_KERNEL);
+ bp->attr_group = kzalloc_objs(*bp->attr_group, count + 1, GFP_KERNEL);
if (!bp->attr_group)
return -ENOMEM;
@@ -2646,7 +2645,7 @@ ptp_ocp_set_pins(struct ptp_ocp *bp)
struct ptp_pin_desc *config;
int i;
- config = kcalloc(4, sizeof(*config), GFP_KERNEL);
+ config = kzalloc_objs(*config, 4, GFP_KERNEL);
if (!config)
return -ENOMEM;
diff --git a/drivers/ptp/ptp_qoriq.c b/drivers/ptp/ptp_qoriq.c
index 8da995e36aeb..71f4de4e8fc3 100644
--- a/drivers/ptp/ptp_qoriq.c
+++ b/drivers/ptp/ptp_qoriq.c
@@ -613,7 +613,7 @@ static int ptp_qoriq_probe(struct platform_device *dev)
int err = -ENOMEM;
void __iomem *base;
- ptp_qoriq = kzalloc(sizeof(*ptp_qoriq), GFP_KERNEL);
+ ptp_qoriq = kzalloc_obj(*ptp_qoriq, GFP_KERNEL);
if (!ptp_qoriq)
goto no_memory;
diff --git a/drivers/ptp/ptp_sysfs.c b/drivers/ptp/ptp_sysfs.c
index 200eaf500696..f398eac4a263 100644
--- a/drivers/ptp/ptp_sysfs.c
+++ b/drivers/ptp/ptp_sysfs.c
@@ -443,12 +443,11 @@ int ptp_populate_pin_groups(struct ptp_clock *ptp)
if (!n_pins)
return 0;
- ptp->pin_dev_attr = kcalloc(n_pins, sizeof(*ptp->pin_dev_attr),
- GFP_KERNEL);
+ ptp->pin_dev_attr = kzalloc_objs(*ptp->pin_dev_attr, n_pins, GFP_KERNEL);
if (!ptp->pin_dev_attr)
goto no_dev_attr;
- ptp->pin_attr = kcalloc(1 + n_pins, sizeof(*ptp->pin_attr), GFP_KERNEL);
+ ptp->pin_attr = kzalloc_objs(*ptp->pin_attr, 1 + n_pins, GFP_KERNEL);
if (!ptp->pin_attr)
goto no_pin_attr;
diff --git a/drivers/ptp/ptp_vclock.c b/drivers/ptp/ptp_vclock.c
index 64c950456517..b27b25715e1e 100644
--- a/drivers/ptp/ptp_vclock.c
+++ b/drivers/ptp/ptp_vclock.c
@@ -191,7 +191,7 @@ struct ptp_vclock *ptp_vclock_register(struct ptp_clock *pclock)
{
struct ptp_vclock *vclock;
- vclock = kzalloc(sizeof(*vclock), GFP_KERNEL);
+ vclock = kzalloc_obj(*vclock, GFP_KERNEL);
if (!vclock)
return NULL;
diff --git a/drivers/ptp/ptp_vmclock.c b/drivers/ptp/ptp_vmclock.c
index c7c75e19f4dd..431510435376 100644
--- a/drivers/ptp/ptp_vmclock.c
+++ b/drivers/ptp/ptp_vmclock.c
@@ -460,7 +460,7 @@ static int vmclock_miscdev_open(struct inode *inode, struct file *fp)
{
struct vmclock_state *st = container_of(fp->private_data,
struct vmclock_state, miscdev);
- struct vmclock_file_state *fst = kzalloc(sizeof(*fst), GFP_KERNEL);
+ struct vmclock_file_state *fst = kzalloc_obj(*fst, GFP_KERNEL);
if (!fst)
return -ENOMEM;
diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c
index 8da78b4b21b9..7f54abd61c02 100644
--- a/drivers/pwm/core.c
+++ b/drivers/pwm/core.c
@@ -1333,7 +1333,7 @@ static int pwm_export_child(struct device *pwmchip_dev, struct pwm_device *pwm)
if (test_and_set_bit(PWMF_EXPORTED, &pwm->flags))
return -EBUSY;
- export = kzalloc(sizeof(*export), GFP_KERNEL);
+ export = kzalloc_obj(*export, GFP_KERNEL);
if (!export) {
clear_bit(PWMF_EXPORTED, &pwm->flags);
return -ENOMEM;
@@ -2138,7 +2138,7 @@ static int pwm_cdev_open(struct inode *inode, struct file *file)
if (!chip->operational)
return -ENXIO;
- cdata = kzalloc(struct_size(cdata, pwm, chip->npwm), GFP_KERNEL);
+ cdata = kzalloc_flex(*cdata, pwm, chip->npwm, GFP_KERNEL);
if (!cdata)
return -ENOMEM;
diff --git a/drivers/rapidio/devices/rio_mport_cdev.c b/drivers/rapidio/devices/rio_mport_cdev.c
index 995cfeca972b..10277dff206e 100644
--- a/drivers/rapidio/devices/rio_mport_cdev.c
+++ b/drivers/rapidio/devices/rio_mport_cdev.c
@@ -348,7 +348,7 @@ rio_mport_create_outbound_mapping(struct mport_dev *md, struct file *filp,
rmcd_debug(OBW, "did=%d ra=0x%llx sz=0x%x", rioid, raddr, size);
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (map == NULL)
return -ENOMEM;
@@ -800,7 +800,7 @@ rio_dma_transfer(struct file *filp, u32 transfer_mode,
if (xfer->length == 0)
return -EINVAL;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -835,8 +835,7 @@ rio_dma_transfer(struct file *filp, u32 transfer_mode,
offset = lower_32_bits(offset_in_page(xfer->loc_addr));
nr_pages = PAGE_ALIGN(xfer->length + offset) >> PAGE_SHIFT;
- page_list = kmalloc_array(nr_pages,
- sizeof(*page_list), GFP_KERNEL);
+ page_list = kmalloc_objs(*page_list, nr_pages, GFP_KERNEL);
if (page_list == NULL) {
ret = -ENOMEM;
goto err_req;
@@ -1070,7 +1069,7 @@ static int rio_mport_create_dma_mapping(struct mport_dev *md, struct file *filp,
{
struct rio_mport_mapping *map;
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (map == NULL)
return -ENOMEM;
@@ -1190,7 +1189,7 @@ rio_mport_create_inbound_mapping(struct mport_dev *md, struct file *filp,
if (size > 0xffffffff)
return -EINVAL;
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (map == NULL)
return -ENOMEM;
@@ -1432,7 +1431,7 @@ static int rio_mport_add_db_filter(struct mport_cdev_priv *priv,
return ret;
}
- db_filter = kzalloc(sizeof(*db_filter), GFP_KERNEL);
+ db_filter = kzalloc_obj(*db_filter, GFP_KERNEL);
if (db_filter == NULL) {
rio_release_inb_dbell(md->mport, filter.low, filter.high);
return -ENOMEM;
@@ -1540,7 +1539,7 @@ static int rio_mport_add_pw_filter(struct mport_cdev_priv *priv,
if (copy_from_user(&filter, arg, sizeof(filter)))
return -EFAULT;
- pw_filter = kzalloc(sizeof(*pw_filter), GFP_KERNEL);
+ pw_filter = kzalloc_obj(*pw_filter, GFP_KERNEL);
if (pw_filter == NULL)
return -ENOMEM;
@@ -1879,7 +1878,7 @@ static int mport_cdev_open(struct inode *inode, struct file *filp)
get_device(&chdev->dev);
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
put_device(&chdev->dev);
return -ENOMEM;
@@ -2349,7 +2348,7 @@ static struct mport_dev *mport_cdev_add(struct rio_mport *mport)
struct mport_dev *md;
struct rio_mport_attr attr;
- md = kzalloc(sizeof(*md), GFP_KERNEL);
+ md = kzalloc_obj(*md, GFP_KERNEL);
if (!md) {
rmcd_error("Unable allocate a device object");
return NULL;
diff --git a/drivers/rapidio/devices/tsi721.c b/drivers/rapidio/devices/tsi721.c
index 4b84270a8906..9d3f2577bccb 100644
--- a/drivers/rapidio/devices/tsi721.c
+++ b/drivers/rapidio/devices/tsi721.c
@@ -1145,7 +1145,7 @@ static int tsi721_rio_map_inb_mem(struct rio_mport *mport, dma_addr_t lstart,
loc_start = ibw_start;
- map = kzalloc(sizeof(struct tsi721_ib_win_mapping), GFP_ATOMIC);
+ map = kzalloc_obj(struct tsi721_ib_win_mapping, GFP_ATOMIC);
if (map == NULL)
return -ENOMEM;
@@ -2774,7 +2774,7 @@ static int tsi721_probe(struct pci_dev *pdev,
struct tsi721_device *priv;
int err;
- priv = kzalloc(sizeof(struct tsi721_device), GFP_KERNEL);
+ priv = kzalloc_obj(struct tsi721_device, GFP_KERNEL);
if (!priv) {
err = -ENOMEM;
goto err_exit;
diff --git a/drivers/rapidio/devices/tsi721_dma.c b/drivers/rapidio/devices/tsi721_dma.c
index f77f75172bdc..52749f1d2a11 100644
--- a/drivers/rapidio/devices/tsi721_dma.c
+++ b/drivers/rapidio/devices/tsi721_dma.c
@@ -739,8 +739,7 @@ static int tsi721_alloc_chan_resources(struct dma_chan *dchan)
}
/* Allocate queue of transaction descriptors */
- desc = kcalloc(dma_txqueue_sz, sizeof(struct tsi721_tx_desc),
- GFP_ATOMIC);
+ desc = kzalloc_objs(struct tsi721_tx_desc, dma_txqueue_sz, GFP_ATOMIC);
if (!desc) {
tsi721_bdma_ch_free(bdma_chan);
return -ENOMEM;
diff --git a/drivers/rapidio/rio.c b/drivers/rapidio/rio.c
index 46daf32ea13b..c811cc3ebc5d 100644
--- a/drivers/rapidio/rio.c
+++ b/drivers/rapidio/rio.c
@@ -107,7 +107,7 @@ EXPORT_SYMBOL(rio_query_mport);
*/
struct rio_net *rio_alloc_net(struct rio_mport *mport)
{
- struct rio_net *net = kzalloc(sizeof(*net), GFP_KERNEL);
+ struct rio_net *net = kzalloc_obj(*net, GFP_KERNEL);
if (net) {
INIT_LIST_HEAD(&net->node);
@@ -242,7 +242,7 @@ int rio_request_inb_mbox(struct rio_mport *mport,
if (!mport->ops->open_inb_mbox)
goto out;
- res = kzalloc(sizeof(*res), GFP_KERNEL);
+ res = kzalloc_obj(*res, GFP_KERNEL);
if (res) {
rio_init_mbox_res(res, mbox, mbox);
@@ -326,7 +326,7 @@ int rio_request_outb_mbox(struct rio_mport *mport,
if (!mport->ops->open_outb_mbox)
goto out;
- res = kzalloc(sizeof(*res), GFP_KERNEL);
+ res = kzalloc_obj(*res, GFP_KERNEL);
if (res) {
rio_init_mbox_res(res, mbox, mbox);
@@ -403,7 +403,7 @@ rio_setup_inb_dbell(struct rio_mport *mport, void *dev_id, struct resource *res,
void (*dinb) (struct rio_mport * mport, void *dev_id, u16 src, u16 dst,
u16 info))
{
- struct rio_dbell *dbell = kmalloc(sizeof(*dbell), GFP_KERNEL);
+ struct rio_dbell *dbell = kmalloc_obj(*dbell, GFP_KERNEL);
if (!dbell)
return -ENOMEM;
@@ -438,7 +438,7 @@ int rio_request_inb_dbell(struct rio_mport *mport,
u16 dst, u16 info))
{
int rc;
- struct resource *res = kzalloc(sizeof(*res), GFP_KERNEL);
+ struct resource *res = kzalloc_obj(*res, GFP_KERNEL);
if (res) {
rio_init_dbell_res(res, start, end);
@@ -515,7 +515,7 @@ EXPORT_SYMBOL_GPL(rio_release_inb_dbell);
struct resource *rio_request_outb_dbell(struct rio_dev *rdev, u16 start,
u16 end)
{
- struct resource *res = kzalloc(sizeof(struct resource), GFP_KERNEL);
+ struct resource *res = kzalloc_obj(struct resource, GFP_KERNEL);
if (res) {
rio_init_dbell_res(res, start, end);
@@ -563,7 +563,7 @@ int rio_add_mport_pw_handler(struct rio_mport *mport, void *context,
int (*pwcback)(struct rio_mport *mport,
void *context, union rio_pw_msg *msg, int step))
{
- struct rio_pwrite *pwrite = kzalloc(sizeof(*pwrite), GFP_KERNEL);
+ struct rio_pwrite *pwrite = kzalloc_obj(*pwrite, GFP_KERNEL);
if (!pwrite)
return -ENOMEM;
@@ -1865,7 +1865,7 @@ int rio_register_scan(int mport_id, struct rio_scan *scan_ops)
/*
* Allocate and initialize new scan registration node.
*/
- scan = kzalloc(sizeof(*scan), GFP_KERNEL);
+ scan = kzalloc_obj(*scan, GFP_KERNEL);
if (!scan) {
rc = -ENOMEM;
goto err_out;
@@ -2000,7 +2000,7 @@ int rio_init_mports(void)
goto no_disc;
}
- work = kcalloc(n, sizeof *work, GFP_KERNEL);
+ work = kzalloc_objs(*work, n, GFP_KERNEL);
if (!work) {
destroy_workqueue(rio_wq);
goto no_disc;
diff --git a/drivers/rapidio/rio_cm.c b/drivers/rapidio/rio_cm.c
index 66464674223f..d01c749de5fd 100644
--- a/drivers/rapidio/rio_cm.c
+++ b/drivers/rapidio/rio_cm.c
@@ -389,7 +389,7 @@ static int riocm_req_handler(struct cm_dev *cm, void *req_data)
return -EINVAL;
}
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req) {
riocm_put_channel(ch);
return -ENOMEM;
@@ -702,7 +702,7 @@ static int riocm_queue_req(struct cm_dev *cm, struct rio_dev *rdev,
unsigned long flags;
struct tx_req *treq;
- treq = kzalloc(sizeof(*treq), GFP_KERNEL);
+ treq = kzalloc_obj(*treq, GFP_KERNEL);
if (treq == NULL)
return -ENOMEM;
@@ -965,7 +965,7 @@ static int riocm_ch_connect(u16 loc_ch, struct cm_dev *cm,
* Send connect request to the remote RapidIO device
*/
- hdr = kzalloc(sizeof(*hdr), GFP_KERNEL);
+ hdr = kzalloc_obj(*hdr, GFP_KERNEL);
if (hdr == NULL) {
ret = -ENOMEM;
goto conn_done;
@@ -1022,7 +1022,7 @@ static int riocm_send_ack(struct rio_channel *ch)
struct rio_ch_chan_hdr *hdr;
int ret;
- hdr = kzalloc(sizeof(*hdr), GFP_KERNEL);
+ hdr = kzalloc_obj(*hdr, GFP_KERNEL);
if (hdr == NULL)
return -ENOMEM;
@@ -1283,7 +1283,7 @@ static struct rio_channel *riocm_ch_alloc(u16 ch_num)
int start, end;
struct rio_channel *ch;
- ch = kzalloc(sizeof(*ch), GFP_KERNEL);
+ ch = kzalloc_obj(*ch, GFP_KERNEL);
if (!ch)
return ERR_PTR(-ENOMEM);
@@ -1396,7 +1396,7 @@ static int riocm_send_close(struct rio_channel *ch)
* Send CH_CLOSE notification to the remote RapidIO device
*/
- hdr = kzalloc(sizeof(*hdr), GFP_KERNEL);
+ hdr = kzalloc_obj(*hdr, GFP_KERNEL);
if (hdr == NULL)
return -ENOMEM;
@@ -1952,7 +1952,7 @@ static int riocm_add_dev(struct device *dev, struct subsys_interface *sif)
riocm_debug(RDEV, "(%s)", rio_name(rdev));
- peer = kmalloc(sizeof(*peer), GFP_KERNEL);
+ peer = kmalloc_obj(*peer, GFP_KERNEL);
if (!peer)
return -ENOMEM;
@@ -2099,7 +2099,7 @@ static int riocm_add_mport(struct device *dev)
riocm_debug(MPORT, "add mport %s", mport->name);
- cm = kzalloc(sizeof(*cm), GFP_KERNEL);
+ cm = kzalloc_obj(*cm, GFP_KERNEL);
if (!cm)
return -ENOMEM;
diff --git a/drivers/ras/amd/fmpm.c b/drivers/ras/amd/fmpm.c
index 8877c6ff64c4..c84e26cca724 100644
--- a/drivers/ras/amd/fmpm.c
+++ b/drivers/ras/amd/fmpm.c
@@ -819,7 +819,7 @@ static int allocate_records(void)
{
int i, ret = 0;
- fru_records = kcalloc(max_nr_fru, sizeof(struct fru_rec *), GFP_KERNEL);
+ fru_records = kzalloc_objs(struct fru_rec *, max_nr_fru, GFP_KERNEL);
if (!fru_records) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 80bb95750a20..386304bc200c 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -1740,7 +1740,7 @@ static int regulator_event_forward_notifier(struct notifier_block *nb,
return NOTIFY_DONE;
}
- rew = kmalloc(sizeof(*rew), GFP_ATOMIC);
+ rew = kmalloc_obj(*rew, GFP_ATOMIC);
if (!rew)
return NOTIFY_DONE;
@@ -1855,7 +1855,7 @@ static int set_consumer_device_supply(struct regulator_dev *rdev,
else
has_dev = 0;
- new_node = kzalloc(sizeof(struct regulator_map), GFP_KERNEL);
+ new_node = kzalloc_obj(struct regulator_map, GFP_KERNEL);
if (new_node == NULL)
return -ENOMEM;
@@ -2021,7 +2021,7 @@ static struct regulator *create_regulator(struct regulator_dev *rdev,
return NULL;
}
- regulator = kzalloc(sizeof(*regulator), GFP_KERNEL);
+ regulator = kzalloc_obj(*regulator, GFP_KERNEL);
if (regulator == NULL) {
kfree_const(supply_name);
return NULL;
@@ -2701,7 +2701,7 @@ int regulator_register_supply_alias(struct device *dev, const char *id,
struct regulator_supply_alias *map;
struct regulator_supply_alias *new_map;
- new_map = kzalloc(sizeof(struct regulator_supply_alias), GFP_KERNEL);
+ new_map = kzalloc_obj(struct regulator_supply_alias, GFP_KERNEL);
if (!new_map)
return -ENOMEM;
@@ -2825,7 +2825,7 @@ static int regulator_ena_gpio_request(struct regulator_dev *rdev,
struct gpio_desc *gpiod;
gpiod = config->ena_gpiod;
- new_pin = kzalloc(sizeof(*new_pin), GFP_KERNEL);
+ new_pin = kzalloc_obj(*new_pin, GFP_KERNEL);
mutex_lock(®ulator_list_mutex);
@@ -5913,7 +5913,7 @@ static int regulator_init_coupling(struct regulator_dev *rdev)
else
n_phandles = of_get_n_coupled(rdev);
- coupled = kcalloc(n_phandles + 1, sizeof(*coupled), GFP_KERNEL);
+ coupled = kzalloc_objs(*coupled, n_phandles + 1, GFP_KERNEL);
if (!coupled)
return -ENOMEM;
@@ -6034,7 +6034,7 @@ regulator_register(struct device *dev,
goto rinse;
}
- rdev = kzalloc(sizeof(struct regulator_dev), GFP_KERNEL);
+ rdev = kzalloc_obj(struct regulator_dev, GFP_KERNEL);
if (rdev == NULL) {
ret = -ENOMEM;
goto rinse;
@@ -6117,8 +6117,7 @@ regulator_register(struct device *dev,
sizeof(*rdev->constraints),
GFP_KERNEL);
else
- rdev->constraints = kzalloc(sizeof(*rdev->constraints),
- GFP_KERNEL);
+ rdev->constraints = kzalloc_obj(*rdev->constraints, GFP_KERNEL);
if (!rdev->constraints) {
ret = -ENOMEM;
goto wash;
diff --git a/drivers/regulator/fixed-helper.c b/drivers/regulator/fixed-helper.c
index b6cb0aaac3b1..186a05b00733 100644
--- a/drivers/regulator/fixed-helper.c
+++ b/drivers/regulator/fixed-helper.c
@@ -34,7 +34,7 @@ struct platform_device *regulator_register_always_on(int id, const char *name,
{
struct fixed_regulator_data *data;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return NULL;
diff --git a/drivers/regulator/of_regulator.c b/drivers/regulator/of_regulator.c
index 33463926a2a6..93fab4fb2adf 100644
--- a/drivers/regulator/of_regulator.c
+++ b/drivers/regulator/of_regulator.c
@@ -973,9 +973,8 @@ int of_regulator_bulk_get_all(struct device *dev, struct device_node *np,
}
if (num_consumers == 0)
return 0;
- _consumers = kmalloc_array(num_consumers,
- sizeof(struct regulator_bulk_data),
- GFP_KERNEL);
+ _consumers = kmalloc_objs(struct regulator_bulk_data, num_consumers,
+ GFP_KERNEL);
if (!_consumers)
return -ENOMEM;
goto restart;
diff --git a/drivers/remoteproc/qcom_common.c b/drivers/remoteproc/qcom_common.c
index 8c8688f99f0a..bb6038bf8bd4 100644
--- a/drivers/remoteproc/qcom_common.c
+++ b/drivers/remoteproc/qcom_common.c
@@ -370,7 +370,7 @@ static struct qcom_ssr_subsystem *qcom_ssr_get_subsys(const char *name)
if (!strcmp(info->name, name))
goto out;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info) {
info = ERR_PTR(-ENOMEM);
goto out;
@@ -534,7 +534,7 @@ static int pdm_notify_prepare(struct rproc_subdev *subdev)
struct auxiliary_device *adev;
int ret;
- adev = kzalloc(sizeof(*adev), GFP_KERNEL);
+ adev = kzalloc_obj(*adev, GFP_KERNEL);
if (!adev)
return -ENOMEM;
diff --git a/drivers/remoteproc/qcom_sysmon.c b/drivers/remoteproc/qcom_sysmon.c
index 660ac6fc4082..bbbe732fe767 100644
--- a/drivers/remoteproc/qcom_sysmon.c
+++ b/drivers/remoteproc/qcom_sysmon.c
@@ -628,7 +628,7 @@ struct qcom_sysmon *qcom_add_sysmon_subdev(struct rproc *rproc,
struct qcom_sysmon *sysmon;
int ret;
- sysmon = kzalloc(sizeof(*sysmon), GFP_KERNEL);
+ sysmon = kzalloc_obj(*sysmon, GFP_KERNEL);
if (!sysmon)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/remoteproc/qcom_wcnss_iris.c b/drivers/remoteproc/qcom_wcnss_iris.c
index 2b52b403eb3f..78cb8150f64b 100644
--- a/drivers/remoteproc/qcom_wcnss_iris.c
+++ b/drivers/remoteproc/qcom_wcnss_iris.c
@@ -125,7 +125,7 @@ struct qcom_iris *qcom_iris_probe(struct device *parent, bool *use_48mhz_xo)
return ERR_PTR(-EINVAL);
}
- iris = kzalloc(sizeof(*iris), GFP_KERNEL);
+ iris = kzalloc_obj(*iris, GFP_KERNEL);
if (!iris) {
of_node_put(of_node);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c
index aada2780b343..bb5887a9d2ac 100644
--- a/drivers/remoteproc/remoteproc_core.c
+++ b/drivers/remoteproc/remoteproc_core.c
@@ -557,7 +557,7 @@ static int rproc_handle_trace(struct rproc *rproc, void *ptr,
return -EINVAL;
}
- trace = kzalloc(sizeof(*trace), GFP_KERNEL);
+ trace = kzalloc_obj(*trace, GFP_KERNEL);
if (!trace)
return -ENOMEM;
@@ -635,7 +635,7 @@ static int rproc_handle_devmem(struct rproc *rproc, void *ptr,
return -EINVAL;
}
- mapping = kzalloc(sizeof(*mapping), GFP_KERNEL);
+ mapping = kzalloc_obj(*mapping, GFP_KERNEL);
if (!mapping)
return -ENOMEM;
@@ -727,7 +727,7 @@ static int rproc_alloc_carveout(struct rproc *rproc,
* physical address in this case.
*/
if (mem->da != FW_RSC_ADDR_ANY && rproc->domain) {
- mapping = kzalloc(sizeof(*mapping), GFP_KERNEL);
+ mapping = kzalloc_obj(*mapping, GFP_KERNEL);
if (!mapping) {
ret = -ENOMEM;
goto dma_free;
@@ -917,7 +917,7 @@ rproc_mem_entry_init(struct device *dev,
struct rproc_mem_entry *mem;
va_list args;
- mem = kzalloc(sizeof(*mem), GFP_KERNEL);
+ mem = kzalloc_obj(*mem, GFP_KERNEL);
if (!mem)
return mem;
@@ -960,7 +960,7 @@ rproc_of_resm_mem_entry_init(struct device *dev, u32 of_resm_idx, size_t len,
struct rproc_mem_entry *mem;
va_list args;
- mem = kzalloc(sizeof(*mem), GFP_KERNEL);
+ mem = kzalloc_obj(*mem, GFP_KERNEL);
if (!mem)
return mem;
diff --git a/drivers/remoteproc/remoteproc_coredump.c b/drivers/remoteproc/remoteproc_coredump.c
index 6ede8c0c93ad..f925c8e775a5 100644
--- a/drivers/remoteproc/remoteproc_coredump.c
+++ b/drivers/remoteproc/remoteproc_coredump.c
@@ -49,7 +49,7 @@ int rproc_coredump_add_segment(struct rproc *rproc, dma_addr_t da, size_t size)
{
struct rproc_dump_segment *segment;
- segment = kzalloc(sizeof(*segment), GFP_KERNEL);
+ segment = kzalloc_obj(*segment, GFP_KERNEL);
if (!segment)
return -ENOMEM;
@@ -86,7 +86,7 @@ int rproc_coredump_add_custom_segment(struct rproc *rproc,
{
struct rproc_dump_segment *segment;
- segment = kzalloc(sizeof(*segment), GFP_KERNEL);
+ segment = kzalloc_obj(*segment, GFP_KERNEL);
if (!segment)
return -ENOMEM;
diff --git a/drivers/remoteproc/remoteproc_virtio.c b/drivers/remoteproc/remoteproc_virtio.c
index c5d46a878149..92c7c0b0ad65 100644
--- a/drivers/remoteproc/remoteproc_virtio.c
+++ b/drivers/remoteproc/remoteproc_virtio.c
@@ -430,7 +430,7 @@ static int rproc_add_virtio_dev(struct rproc_vdev *rvdev, int id)
}
/* Allocate virtio device */
- vdev = kzalloc(sizeof(*vdev), GFP_KERNEL);
+ vdev = kzalloc_obj(*vdev, GFP_KERNEL);
if (!vdev) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/remoteproc/stm32_rproc.c b/drivers/remoteproc/stm32_rproc.c
index c28679d3b43c..6185343a6d3f 100644
--- a/drivers/remoteproc/stm32_rproc.c
+++ b/drivers/remoteproc/stm32_rproc.c
@@ -164,7 +164,7 @@ static int stm32_rproc_of_memory_translations(struct platform_device *pdev,
p_mems = devm_kcalloc(dev, cnt, sizeof(*p_mems), GFP_KERNEL);
if (!p_mems)
return -ENOMEM;
- mem_range = kcalloc(cnt, sizeof(*mem_range), GFP_KERNEL);
+ mem_range = kzalloc_objs(*mem_range, cnt, GFP_KERNEL);
if (!mem_range)
return -ENOMEM;
diff --git a/drivers/remoteproc/xlnx_r5_remoteproc.c b/drivers/remoteproc/xlnx_r5_remoteproc.c
index bd619a6c42aa..a8b13fb50992 100644
--- a/drivers/remoteproc/xlnx_r5_remoteproc.c
+++ b/drivers/remoteproc/xlnx_r5_remoteproc.c
@@ -265,7 +265,7 @@ static struct mbox_info *zynqmp_r5_setup_mbox(struct device *cdev)
struct mbox_client *mbox_cl;
struct mbox_info *ipi;
- ipi = kzalloc(sizeof(*ipi), GFP_KERNEL);
+ ipi = kzalloc_obj(*ipi, GFP_KERNEL);
if (!ipi)
return NULL;
@@ -1337,12 +1337,11 @@ static int zynqmp_r5_cluster_init(struct zynqmp_r5_cluster *cluster)
core_count = 1;
}
- child_devs = kcalloc(core_count, sizeof(struct device *), GFP_KERNEL);
+ child_devs = kzalloc_objs(struct device *, core_count, GFP_KERNEL);
if (!child_devs)
return -ENOMEM;
- r5_cores = kcalloc(core_count,
- sizeof(struct zynqmp_r5_core *), GFP_KERNEL);
+ r5_cores = kzalloc_objs(struct zynqmp_r5_core *, core_count, GFP_KERNEL);
if (!r5_cores) {
kfree(child_devs);
return -ENOMEM;
@@ -1503,7 +1502,7 @@ static int zynqmp_r5_remoteproc_probe(struct platform_device *pdev)
struct device *dev = &pdev->dev;
int ret;
- cluster = kzalloc(sizeof(*cluster), GFP_KERNEL);
+ cluster = kzalloc_obj(*cluster, GFP_KERNEL);
if (!cluster)
return -ENOMEM;
diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c
index b495d5291868..323dba59fce8 100644
--- a/drivers/resctrl/mpam_devices.c
+++ b/drivers/resctrl/mpam_devices.c
@@ -295,7 +295,7 @@ mpam_class_alloc(u8 level_idx, enum mpam_class_types type)
lockdep_assert_held(&mpam_list_lock);
- class = kzalloc(sizeof(*class), GFP_KERNEL);
+ class = kzalloc_obj(*class, GFP_KERNEL);
if (!class)
return ERR_PTR(-ENOMEM);
init_garbage(&class->garbage);
@@ -343,7 +343,7 @@ mpam_component_alloc(struct mpam_class *class, int id)
lockdep_assert_held(&mpam_list_lock);
- comp = kzalloc(sizeof(*comp), GFP_KERNEL);
+ comp = kzalloc_obj(*comp, GFP_KERNEL);
if (!comp)
return ERR_PTR(-ENOMEM);
init_garbage(&comp->garbage);
@@ -398,7 +398,7 @@ mpam_vmsc_alloc(struct mpam_component *comp, struct mpam_msc *msc)
lockdep_assert_held(&mpam_list_lock);
- vmsc = kzalloc(sizeof(*vmsc), GFP_KERNEL);
+ vmsc = kzalloc_obj(*vmsc, GFP_KERNEL);
if (!vmsc)
return ERR_PTR(-ENOMEM);
init_garbage(&vmsc->garbage);
@@ -2419,7 +2419,7 @@ static int __allocate_component_cfg(struct mpam_component *comp)
if (comp->cfg)
return 0;
- comp->cfg = kcalloc(mpam_partid_max + 1, sizeof(*comp->cfg), GFP_KERNEL);
+ comp->cfg = kzalloc_objs(*comp->cfg, mpam_partid_max + 1, GFP_KERNEL);
if (!comp->cfg)
return -ENOMEM;
@@ -2444,9 +2444,9 @@ static int __allocate_component_cfg(struct mpam_component *comp)
if (!ris->props.num_mbwu_mon)
continue;
- mbwu_state = kcalloc(ris->props.num_mbwu_mon,
- sizeof(*ris->mbwu_state),
- GFP_KERNEL);
+ mbwu_state = kzalloc_objs(*ris->mbwu_state,
+ ris->props.num_mbwu_mon,
+ GFP_KERNEL);
if (!mbwu_state) {
__destroy_component_cfg(comp);
return -ENOMEM;
diff --git a/drivers/reset/core.c b/drivers/reset/core.c
index 0666dfc41ca9..c224e42e0f6c 100644
--- a/drivers/reset/core.c
+++ b/drivers/reset/core.c
@@ -778,7 +778,7 @@ __reset_control_get_internal(struct reset_controller_dev *rcdev,
}
}
- rstc = kzalloc(sizeof(*rstc), GFP_KERNEL);
+ rstc = kzalloc_obj(*rstc, GFP_KERNEL);
if (!rstc)
return ERR_PTR(-ENOMEM);
@@ -836,7 +836,7 @@ static int reset_add_gpio_aux_device(struct device *parent,
struct auxiliary_device *adev;
int ret;
- adev = kzalloc(sizeof(*adev), GFP_KERNEL);
+ adev = kzalloc_obj(*adev, GFP_KERNEL);
if (!adev)
return -ENOMEM;
@@ -931,7 +931,7 @@ static int __reset_add_reset_gpio_device(const struct of_phandle_args *args)
return id;
/* Not freed on success, because it is persisent subsystem data. */
- rgpio_dev = kzalloc(sizeof(*rgpio_dev), GFP_KERNEL);
+ rgpio_dev = kzalloc_obj(*rgpio_dev, GFP_KERNEL);
if (!rgpio_dev) {
ret = -ENOMEM;
goto err_ida_free;
@@ -1360,7 +1360,7 @@ of_reset_control_array_get(struct device_node *np, enum reset_control_flags flag
if (num < 0)
return optional ? NULL : ERR_PTR(num);
- resets = kzalloc(struct_size(resets, rstc, num), GFP_KERNEL);
+ resets = kzalloc_flex(*resets, rstc, num, GFP_KERNEL);
if (!resets)
return ERR_PTR(-ENOMEM);
resets->num_rstcs = num;
diff --git a/drivers/reset/reset-npcm.c b/drivers/reset/reset-npcm.c
index e5b6127783a7..c28cb4632883 100644
--- a/drivers/reset/reset-npcm.c
+++ b/drivers/reset/reset-npcm.c
@@ -399,7 +399,7 @@ static struct auxiliary_device *npcm_clock_adev_alloc(struct npcm_rc_data *rst_d
struct auxiliary_device *adev;
int ret;
- rdev = kzalloc(sizeof(*rdev), GFP_KERNEL);
+ rdev = kzalloc_obj(*rdev, GFP_KERNEL);
if (!rdev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/reset/reset-socfpga.c b/drivers/reset/reset-socfpga.c
index 8c6492e5693c..a18cc81e0efa 100644
--- a/drivers/reset/reset-socfpga.c
+++ b/drivers/reset/reset-socfpga.c
@@ -27,7 +27,7 @@ static int a10_reset_init(struct device_node *np)
int ret;
u32 reg_offset = 0x10;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/reset/reset-sunxi.c b/drivers/reset/reset-sunxi.c
index e752594b6971..b88d1d001ec3 100644
--- a/drivers/reset/reset-sunxi.c
+++ b/drivers/reset/reset-sunxi.c
@@ -27,7 +27,7 @@ static int sunxi_reset_init(struct device_node *np)
resource_size_t size;
int ret;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/rpmsg/mtk_rpmsg.c b/drivers/rpmsg/mtk_rpmsg.c
index d1213c33da20..bbeac30cbc8e 100644
--- a/drivers/rpmsg/mtk_rpmsg.c
+++ b/drivers/rpmsg/mtk_rpmsg.c
@@ -91,7 +91,7 @@ __mtk_create_ept(struct mtk_rpmsg_rproc_subdev *mtk_subdev,
struct platform_device *pdev = mtk_subdev->pdev;
int ret;
- mept = kzalloc(sizeof(*mept), GFP_KERNEL);
+ mept = kzalloc_obj(*mept, GFP_KERNEL);
if (!mept)
return NULL;
mept->mtk_subdev = mtk_subdev;
@@ -201,7 +201,7 @@ static int mtk_rpmsg_register_device(struct mtk_rpmsg_rproc_subdev *mtk_subdev,
struct mtk_rpmsg_device *mdev;
struct platform_device *pdev = mtk_subdev->pdev;
- mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
+ mdev = kzalloc_obj(*mdev, GFP_KERNEL);
if (!mdev)
return -ENOMEM;
@@ -252,7 +252,7 @@ static int mtk_rpmsg_create_device(struct mtk_rpmsg_rproc_subdev *mtk_subdev,
{
struct mtk_rpmsg_channel_info *info;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
@@ -380,7 +380,7 @@ mtk_rpmsg_create_rproc_subdev(struct platform_device *pdev,
{
struct mtk_rpmsg_rproc_subdev *mtk_subdev;
- mtk_subdev = kzalloc(sizeof(*mtk_subdev), GFP_KERNEL);
+ mtk_subdev = kzalloc_obj(*mtk_subdev, GFP_KERNEL);
if (!mtk_subdev)
return NULL;
diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c
index 5ea096acc858..dd775f955bfe 100644
--- a/drivers/rpmsg/qcom_glink_native.c
+++ b/drivers/rpmsg/qcom_glink_native.c
@@ -227,7 +227,7 @@ static struct glink_channel *qcom_glink_alloc_channel(struct qcom_glink *glink,
{
struct glink_channel *channel;
- channel = kzalloc(sizeof(*channel), GFP_KERNEL);
+ channel = kzalloc_obj(*channel, GFP_KERNEL);
if (!channel)
return ERR_PTR(-ENOMEM);
@@ -754,7 +754,7 @@ qcom_glink_alloc_intent(struct qcom_glink *glink,
int ret;
unsigned long flags;
- intent = kzalloc(sizeof(*intent), GFP_KERNEL);
+ intent = kzalloc_obj(*intent, GFP_KERNEL);
if (!intent)
return NULL;
@@ -875,7 +875,7 @@ static int qcom_glink_rx_defer(struct qcom_glink *glink, size_t extra)
return -ENXIO;
}
- dcmd = kzalloc(struct_size(dcmd, data, extra), GFP_ATOMIC);
+ dcmd = kzalloc_flex(*dcmd, data, extra, GFP_ATOMIC);
if (!dcmd)
return -ENOMEM;
@@ -945,7 +945,7 @@ static int qcom_glink_rx_data(struct qcom_glink *glink, size_t avail)
if (glink->intentless) {
/* Might have an ongoing, fragmented, message to append */
if (!channel->buf) {
- intent = kzalloc(sizeof(*intent), GFP_ATOMIC);
+ intent = kzalloc_obj(*intent, GFP_ATOMIC);
if (!intent)
return -ENOMEM;
@@ -1070,7 +1070,7 @@ static void qcom_glink_handle_intent(struct qcom_glink *glink,
count > 0 ? msg->intents[0].iid : 0);
for (i = 0; i < count; ++i) {
- intent = kzalloc(sizeof(*intent), GFP_ATOMIC);
+ intent = kzalloc_obj(*intent, GFP_ATOMIC);
if (!intent)
break;
@@ -1669,7 +1669,7 @@ static int qcom_glink_rx_open(struct qcom_glink *glink, unsigned int rcid,
complete_all(&channel->open_req);
if (create_device) {
- rpdev = kzalloc(sizeof(*rpdev), GFP_KERNEL);
+ rpdev = kzalloc_obj(*rpdev, GFP_KERNEL);
if (!rpdev) {
ret = -ENOMEM;
goto rcid_remove;
@@ -1868,7 +1868,7 @@ static int qcom_glink_create_chrdev(struct qcom_glink *glink)
struct rpmsg_device *rpdev;
struct glink_channel *channel;
- rpdev = kzalloc(sizeof(*rpdev), GFP_KERNEL);
+ rpdev = kzalloc_obj(*rpdev, GFP_KERNEL);
if (!rpdev)
return -ENOMEM;
diff --git a/drivers/rpmsg/qcom_glink_smem.c b/drivers/rpmsg/qcom_glink_smem.c
index 7a982c60a8dd..26727cbb7ce4 100644
--- a/drivers/rpmsg/qcom_glink_smem.c
+++ b/drivers/rpmsg/qcom_glink_smem.c
@@ -230,7 +230,7 @@ struct qcom_glink_smem *qcom_glink_smem_register(struct device *parent,
size_t size;
int ret;
- smem = kzalloc(sizeof(*smem), GFP_KERNEL);
+ smem = kzalloc_obj(*smem, GFP_KERNEL);
if (!smem)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/rpmsg/qcom_smd.c b/drivers/rpmsg/qcom_smd.c
index 42594f5ee438..7faed3530888 100644
--- a/drivers/rpmsg/qcom_smd.c
+++ b/drivers/rpmsg/qcom_smd.c
@@ -922,7 +922,7 @@ static struct rpmsg_endpoint *qcom_smd_create_ept(struct rpmsg_device *rpdev,
return NULL;
}
- qsept = kzalloc(sizeof(*qsept), GFP_KERNEL);
+ qsept = kzalloc_obj(*qsept, GFP_KERNEL);
if (!qsept)
return NULL;
@@ -1077,7 +1077,7 @@ static int qcom_smd_create_device(struct qcom_smd_channel *channel)
dev_dbg(&edge->dev, "registering '%s'\n", channel->name);
- qsdev = kzalloc(sizeof(*qsdev), GFP_KERNEL);
+ qsdev = kzalloc_obj(*qsdev, GFP_KERNEL);
if (!qsdev)
return -ENOMEM;
@@ -1104,7 +1104,7 @@ static int qcom_smd_create_chrdev(struct qcom_smd_edge *edge)
{
struct qcom_smd_device *qsdev;
- qsdev = kzalloc(sizeof(*qsdev), GFP_KERNEL);
+ qsdev = kzalloc_obj(*qsdev, GFP_KERNEL);
if (!qsdev)
return -ENOMEM;
@@ -1132,7 +1132,7 @@ static struct qcom_smd_channel *qcom_smd_create_channel(struct qcom_smd_edge *ed
void *info;
int ret;
- channel = kzalloc(sizeof(*channel), GFP_KERNEL);
+ channel = kzalloc_obj(*channel, GFP_KERNEL);
if (!channel)
return ERR_PTR(-ENOMEM);
@@ -1484,7 +1484,7 @@ struct qcom_smd_edge *qcom_smd_register_edge(struct device *parent,
if (!qcom_smem_is_available())
return ERR_PTR(-EPROBE_DEFER);
- edge = kzalloc(sizeof(*edge), GFP_KERNEL);
+ edge = kzalloc_obj(*edge, GFP_KERNEL);
if (!edge)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/rpmsg/rpmsg_char.c b/drivers/rpmsg/rpmsg_char.c
index 96fcdd2d7093..a368698113eb 100644
--- a/drivers/rpmsg/rpmsg_char.c
+++ b/drivers/rpmsg/rpmsg_char.c
@@ -410,7 +410,7 @@ static struct rpmsg_eptdev *rpmsg_chrdev_eptdev_alloc(struct rpmsg_device *rpdev
struct rpmsg_eptdev *eptdev;
struct device *dev;
- eptdev = kzalloc(sizeof(*eptdev), GFP_KERNEL);
+ eptdev = kzalloc_obj(*eptdev, GFP_KERNEL);
if (!eptdev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/rpmsg/rpmsg_ctrl.c b/drivers/rpmsg/rpmsg_ctrl.c
index 28f57945ccd9..95f8be640dfc 100644
--- a/drivers/rpmsg/rpmsg_ctrl.c
+++ b/drivers/rpmsg/rpmsg_ctrl.c
@@ -141,7 +141,7 @@ static int rpmsg_ctrldev_probe(struct rpmsg_device *rpdev)
struct device *dev;
int ret;
- ctrldev = kzalloc(sizeof(*ctrldev), GFP_KERNEL);
+ ctrldev = kzalloc_obj(*ctrldev, GFP_KERNEL);
if (!ctrldev)
return -ENOMEM;
diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c b/drivers/rpmsg/virtio_rpmsg_bus.c
index 79d983055b4d..20ba05917841 100644
--- a/drivers/rpmsg/virtio_rpmsg_bus.c
+++ b/drivers/rpmsg/virtio_rpmsg_bus.c
@@ -210,7 +210,7 @@ static struct rpmsg_endpoint *__rpmsg_create_ept(struct virtproc_info *vrp,
struct rpmsg_endpoint *ept;
struct device *dev = rpdev ? &rpdev->dev : &vrp->vdev->dev;
- ept = kzalloc(sizeof(*ept), GFP_KERNEL);
+ ept = kzalloc_obj(*ept, GFP_KERNEL);
if (!ept)
return NULL;
@@ -400,7 +400,7 @@ static struct rpmsg_device *__rpmsg_create_channel(struct virtproc_info *vrp,
return NULL;
}
- vch = kzalloc(sizeof(*vch), GFP_KERNEL);
+ vch = kzalloc_obj(*vch, GFP_KERNEL);
if (!vch)
return NULL;
@@ -779,7 +779,7 @@ static struct rpmsg_device *rpmsg_virtio_add_ctrl_dev(struct virtio_device *vdev
struct rpmsg_device *rpdev_ctrl;
int err = 0;
- vch = kzalloc(sizeof(*vch), GFP_KERNEL);
+ vch = kzalloc_obj(*vch, GFP_KERNEL);
if (!vch)
return ERR_PTR(-ENOMEM);
@@ -825,7 +825,7 @@ static int rpmsg_probe(struct virtio_device *vdev)
size_t total_buf_space;
bool notify;
- vrp = kzalloc(sizeof(*vrp), GFP_KERNEL);
+ vrp = kzalloc_obj(*vrp, GFP_KERNEL);
if (!vrp)
return -ENOMEM;
@@ -898,7 +898,7 @@ static int rpmsg_probe(struct virtio_device *vdev)
/* if supported by the remote processor, enable the name service */
if (virtio_has_feature(vdev, VIRTIO_RPMSG_F_NS)) {
- vch = kzalloc(sizeof(*vch), GFP_KERNEL);
+ vch = kzalloc_obj(*vch, GFP_KERNEL);
if (!vch) {
err = -ENOMEM;
goto free_ctrldev;
diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c
index b1a2be1f9e3b..eda2d5d46798 100644
--- a/drivers/rtc/class.c
+++ b/drivers/rtc/class.c
@@ -208,7 +208,7 @@ static struct rtc_device *rtc_allocate_device(void)
{
struct rtc_device *rtc;
- rtc = kzalloc(sizeof(*rtc), GFP_KERNEL);
+ rtc = kzalloc_obj(*rtc, GFP_KERNEL);
if (!rtc)
return NULL;
diff --git a/drivers/rtc/rtc-sun6i.c b/drivers/rtc/rtc-sun6i.c
index e5e6013d080e..2bc86e8a8a86 100644
--- a/drivers/rtc/rtc-sun6i.c
+++ b/drivers/rtc/rtc-sun6i.c
@@ -233,12 +233,12 @@ static void __init sun6i_rtc_clk_init(struct device_node *node,
const char *parents[2];
u32 reg;
- rtc = kzalloc(sizeof(*rtc), GFP_KERNEL);
+ rtc = kzalloc_obj(*rtc, GFP_KERNEL);
if (!rtc)
return;
rtc->data = data;
- clk_data = kzalloc(struct_size(clk_data, hws, 3), GFP_KERNEL);
+ clk_data = kzalloc_flex(*clk_data, hws, 3, GFP_KERNEL);
if (!clk_data) {
kfree(rtc);
return;
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index 35031357ac4d..cc86a2b76a0a 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -86,7 +86,7 @@ struct dasd_device *dasd_alloc_device(void)
{
struct dasd_device *device;
- device = kzalloc(sizeof(struct dasd_device), GFP_ATOMIC);
+ device = kzalloc_obj(struct dasd_device, GFP_ATOMIC);
if (!device)
return ERR_PTR(-ENOMEM);
@@ -150,7 +150,7 @@ struct dasd_block *dasd_alloc_block(void)
{
struct dasd_block *block;
- block = kzalloc(sizeof(*block), GFP_ATOMIC);
+ block = kzalloc_obj(*block, GFP_ATOMIC);
if (!block)
return ERR_PTR(-ENOMEM);
/* open_count = 0 means device online but not in use */
@@ -868,7 +868,7 @@ int dasd_profile_on(struct dasd_profile *profile)
{
struct dasd_profile_info *data;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
spin_lock_bh(&profile->lock);
@@ -3180,7 +3180,7 @@ enum blk_eh_timer_return dasd_times_out(struct request *req)
static int dasd_init_hctx(struct blk_mq_hw_ctx *hctx, void *data,
unsigned int idx)
{
- struct dasd_queue *dq = kzalloc(sizeof(*dq), GFP_KERNEL);
+ struct dasd_queue *dq = kzalloc_obj(*dq, GFP_KERNEL);
if (!dq)
return -ENOMEM;
diff --git a/drivers/s390/block/dasd_alias.c b/drivers/s390/block/dasd_alias.c
index f7e768d8ca76..f5f3b6da2d4b 100644
--- a/drivers/s390/block/dasd_alias.c
+++ b/drivers/s390/block/dasd_alias.c
@@ -98,7 +98,7 @@ static struct alias_server *_allocate_server(struct dasd_uid *uid)
{
struct alias_server *server;
- server = kzalloc(sizeof(*server), GFP_KERNEL);
+ server = kzalloc_obj(*server, GFP_KERNEL);
if (!server)
return ERR_PTR(-ENOMEM);
memcpy(server->uid.vendor, uid->vendor, sizeof(uid->vendor));
@@ -117,17 +117,16 @@ static struct alias_lcu *_allocate_lcu(struct dasd_uid *uid)
{
struct alias_lcu *lcu;
- lcu = kzalloc(sizeof(*lcu), GFP_KERNEL);
+ lcu = kzalloc_obj(*lcu, GFP_KERNEL);
if (!lcu)
return ERR_PTR(-ENOMEM);
- lcu->uac = kzalloc(sizeof(*(lcu->uac)), GFP_KERNEL | GFP_DMA);
+ lcu->uac = kzalloc_obj(*(lcu->uac), GFP_KERNEL | GFP_DMA);
if (!lcu->uac)
goto out_err1;
- lcu->rsu_cqr = kzalloc(sizeof(*lcu->rsu_cqr), GFP_KERNEL | GFP_DMA);
+ lcu->rsu_cqr = kzalloc_obj(*lcu->rsu_cqr, GFP_KERNEL | GFP_DMA);
if (!lcu->rsu_cqr)
goto out_err2;
- lcu->rsu_cqr->cpaddr = kzalloc(sizeof(struct ccw1),
- GFP_KERNEL | GFP_DMA);
+ lcu->rsu_cqr->cpaddr = kzalloc_obj(struct ccw1, GFP_KERNEL | GFP_DMA);
if (!lcu->rsu_cqr->cpaddr)
goto out_err3;
lcu->rsu_cqr->data = kzalloc(16, GFP_KERNEL | GFP_DMA);
@@ -323,7 +322,7 @@ static int _add_device_to_lcu(struct alias_lcu *lcu,
}
group = _find_group(lcu, &uid);
if (!group) {
- group = kzalloc(sizeof(*group), GFP_ATOMIC);
+ group = kzalloc_obj(*group, GFP_ATOMIC);
if (!group)
return -ENOMEM;
memcpy(group->uid.vendor, uid.vendor, sizeof(uid.vendor));
diff --git a/drivers/s390/block/dasd_devmap.c b/drivers/s390/block/dasd_devmap.c
index 73972900fc55..d46274ef2f3e 100644
--- a/drivers/s390/block/dasd_devmap.c
+++ b/drivers/s390/block/dasd_devmap.c
@@ -412,7 +412,7 @@ dasd_add_busid(const char *bus_id, int features)
struct dasd_devmap *devmap, *new, *tmp;
int hash;
- new = kzalloc(sizeof(struct dasd_devmap), GFP_KERNEL);
+ new = kzalloc_obj(struct dasd_devmap, GFP_KERNEL);
if (!new)
return ERR_PTR(-ENOMEM);
spin_lock(&dasd_devmap_lock);
@@ -605,7 +605,7 @@ static int dasd_devmap_get_pprc_status(struct dasd_device *device,
dev_warn(&device->cdev->dev, "Unable to query copy relation status\n");
return -EOPNOTSUPP;
}
- temp = kzalloc(sizeof(*temp), GFP_KERNEL);
+ temp = kzalloc_obj(*temp, GFP_KERNEL);
if (!temp)
return -ENOMEM;
@@ -2274,7 +2274,7 @@ static ssize_t dasd_copy_pair_store(struct device *dev,
} else if (sec_devmap->copy) {
copy = sec_devmap->copy;
} else {
- copy = kzalloc(sizeof(*copy), GFP_KERNEL);
+ copy = kzalloc_obj(*copy, GFP_KERNEL);
if (!copy)
return -ENOMEM;
}
diff --git a/drivers/s390/block/dasd_diag.c b/drivers/s390/block/dasd_diag.c
index 56f1af8a7ddd..ac15322a1d06 100644
--- a/drivers/s390/block/dasd_diag.c
+++ b/drivers/s390/block/dasd_diag.c
@@ -325,7 +325,7 @@ dasd_diag_check_device(struct dasd_device *device)
int rc;
if (private == NULL) {
- private = kzalloc(sizeof(*private), GFP_KERNEL);
+ private = kzalloc_obj(*private, GFP_KERNEL);
if (private == NULL) {
DBF_DEV_EVENT(DBF_WARNING, device, "%s",
"Allocating memory for private DASD data "
@@ -395,7 +395,7 @@ dasd_diag_check_device(struct dasd_device *device)
rc = -ENOMEM;
goto out;
}
- bio = kzalloc(sizeof(*bio), GFP_KERNEL);
+ bio = kzalloc_obj(*bio, GFP_KERNEL);
if (bio == NULL) {
DBF_DEV_EVENT(DBF_WARNING, device, "%s",
"No memory to allocate initialization bio");
diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c
index b08e900687f3..47ffc255e9b4 100644
--- a/drivers/s390/block/dasd_eckd.c
+++ b/drivers/s390/block/dasd_eckd.c
@@ -1468,7 +1468,7 @@ static int dasd_eckd_pe_handler(struct dasd_device *device,
{
struct pe_handler_work_data *data;
- data = kzalloc(sizeof(*data), GFP_ATOMIC | GFP_DMA);
+ data = kzalloc_obj(*data, GFP_ATOMIC | GFP_DMA);
if (!data) {
if (mutex_trylock(&dasd_pe_handler_mutex)) {
data = pe_handler_worker;
@@ -1720,7 +1720,7 @@ static int dasd_eckd_ext_pool_exhaust(struct dasd_device *device,
{
struct ext_pool_exhaust_work_data *data;
- data = kzalloc(sizeof(*data), GFP_ATOMIC);
+ data = kzalloc_obj(*data, GFP_ATOMIC);
if (!data)
return -ENOMEM;
INIT_WORK(&data->worker, dasd_eckd_ext_pool_exhaust_work);
@@ -2070,7 +2070,7 @@ dasd_eckd_check_characteristics(struct dasd_device *device)
"The DASD is not operating in multipath mode\n");
}
if (!private) {
- private = kzalloc(sizeof(*private), GFP_KERNEL | GFP_DMA);
+ private = kzalloc_obj(*private, GFP_KERNEL | GFP_DMA);
if (!private) {
dev_warn(&device->cdev->dev,
"Allocating memory for private DASD data "
@@ -3729,7 +3729,7 @@ static int dasd_in_copy_relation(struct dasd_device *device)
if (!dasd_eckd_pprc_enabled(device))
return 0;
- temp = kzalloc(sizeof(*temp), GFP_KERNEL);
+ temp = kzalloc_obj(*temp, GFP_KERNEL);
if (!temp)
return -ENOMEM;
@@ -5951,7 +5951,7 @@ static int dasd_eckd_query_host_access(struct dasd_device *device,
"Could not allocate read message buffer request");
return PTR_ERR(cqr);
}
- host_access = kzalloc(sizeof(*host_access), GFP_KERNEL | GFP_DMA);
+ host_access = kzalloc_obj(*host_access, GFP_KERNEL | GFP_DMA);
if (!host_access) {
dasd_sfree_request(cqr, device);
DBF_EVENT_DEVID(DBF_WARNING, device->cdev, "%s",
@@ -6017,7 +6017,7 @@ static int dasd_eckd_host_access_count(struct dasd_device *device)
int count = 0;
int rc, i;
- access = kzalloc(sizeof(*access), GFP_NOIO);
+ access = kzalloc_obj(*access, GFP_NOIO);
if (!access) {
DBF_EVENT_DEVID(DBF_WARNING, device->cdev, "%s",
"Could not allocate access buffer");
@@ -6053,7 +6053,7 @@ static int dasd_hosts_print(struct dasd_device *device, struct seq_file *m)
char sysplex[9] = "";
int rc, i;
- access = kzalloc(sizeof(*access), GFP_NOIO);
+ access = kzalloc_obj(*access, GFP_NOIO);
if (!access) {
DBF_EVENT_DEVID(DBF_WARNING, device->cdev, "%s",
"Could not allocate access buffer");
@@ -6721,7 +6721,7 @@ static void dasd_eckd_check_attention_work(struct work_struct *work)
data = container_of(work, struct check_attention_work_data, worker);
device = data->device;
- messages = kzalloc(sizeof(*messages), GFP_KERNEL);
+ messages = kzalloc_obj(*messages, GFP_KERNEL);
if (!messages) {
DBF_DEV_EVENT(DBF_WARNING, device, "%s",
"Could not allocate attention message buffer");
@@ -6748,7 +6748,7 @@ static int dasd_eckd_check_attention(struct dasd_device *device, __u8 lpum)
{
struct check_attention_work_data *data;
- data = kzalloc(sizeof(*data), GFP_ATOMIC);
+ data = kzalloc_obj(*data, GFP_ATOMIC);
if (!data)
return -ENOMEM;
INIT_WORK(&data->worker, dasd_eckd_check_attention_work);
@@ -6912,18 +6912,17 @@ dasd_eckd_init(void)
int ret;
ASCEBC(dasd_eckd_discipline.ebcname, 4);
- dasd_reserve_req = kmalloc(sizeof(*dasd_reserve_req),
- GFP_KERNEL | GFP_DMA);
+ dasd_reserve_req = kmalloc_obj(*dasd_reserve_req, GFP_KERNEL | GFP_DMA);
if (!dasd_reserve_req)
return -ENOMEM;
- dasd_vol_info_req = kmalloc(sizeof(*dasd_vol_info_req),
- GFP_KERNEL | GFP_DMA);
+ dasd_vol_info_req = kmalloc_obj(*dasd_vol_info_req,
+ GFP_KERNEL | GFP_DMA);
if (!dasd_vol_info_req) {
kfree(dasd_reserve_req);
return -ENOMEM;
}
- pe_handler_worker = kmalloc(sizeof(*pe_handler_worker),
- GFP_KERNEL | GFP_DMA);
+ pe_handler_worker = kmalloc_obj(*pe_handler_worker,
+ GFP_KERNEL | GFP_DMA);
if (!pe_handler_worker) {
kfree(dasd_reserve_req);
kfree(dasd_vol_info_req);
diff --git a/drivers/s390/block/dasd_eer.c b/drivers/s390/block/dasd_eer.c
index b177b7952f2e..648ab74ae60f 100644
--- a/drivers/s390/block/dasd_eer.c
+++ b/drivers/s390/block/dasd_eer.c
@@ -544,7 +544,7 @@ static int dasd_eer_open(struct inode *inp, struct file *filp)
struct eerbuffer *eerb;
unsigned long flags;
- eerb = kzalloc(sizeof(struct eerbuffer), GFP_KERNEL);
+ eerb = kzalloc_obj(struct eerbuffer, GFP_KERNEL);
if (!eerb)
return -ENOMEM;
eerb->buffer_page_count = eer_pages;
@@ -689,7 +689,7 @@ int __init dasd_eer_init(void)
{
int rc;
- dasd_eer_dev = kzalloc(sizeof(*dasd_eer_dev), GFP_KERNEL);
+ dasd_eer_dev = kzalloc_obj(*dasd_eer_dev, GFP_KERNEL);
if (!dasd_eer_dev)
return -ENOMEM;
diff --git a/drivers/s390/block/dasd_fba.c b/drivers/s390/block/dasd_fba.c
index c2a87201c153..029acb83ecab 100644
--- a/drivers/s390/block/dasd_fba.c
+++ b/drivers/s390/block/dasd_fba.c
@@ -119,7 +119,7 @@ dasd_fba_check_characteristics(struct dasd_device *device)
int readonly, rc;
if (!private) {
- private = kzalloc(sizeof(*private), GFP_KERNEL | GFP_DMA);
+ private = kzalloc_obj(*private, GFP_KERNEL | GFP_DMA);
if (!private) {
dev_warn(&device->cdev->dev,
"Allocating memory for private DASD "
diff --git a/drivers/s390/block/dasd_ioctl.c b/drivers/s390/block/dasd_ioctl.c
index f883990be626..d5534ce25558 100644
--- a/drivers/s390/block/dasd_ioctl.c
+++ b/drivers/s390/block/dasd_ioctl.c
@@ -442,7 +442,7 @@ static int dasd_ioctl_read_profile(struct dasd_block *block, void __user *argp)
struct dasd_profile_info_t *data;
int rc = 0;
- data = kmalloc(sizeof(*data), GFP_KERNEL);
+ data = kmalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -560,7 +560,7 @@ static int dasd_ioctl_information(struct dasd_block *block, void __user *argp,
struct dasd_information2_t *dasd_info;
int error;
- dasd_info = kzalloc(sizeof(*dasd_info), GFP_KERNEL);
+ dasd_info = kzalloc_obj(*dasd_info, GFP_KERNEL);
if (!dasd_info)
return -ENOMEM;
diff --git a/drivers/s390/block/dcssblk.c b/drivers/s390/block/dcssblk.c
index 38e1df8f8a82..5d7229f39480 100644
--- a/drivers/s390/block/dcssblk.c
+++ b/drivers/s390/block/dcssblk.c
@@ -240,9 +240,8 @@ dcssblk_is_continuous(struct dcssblk_dev_info *dev_info)
if (dev_info->num_of_segments <= 1)
return 0;
- sort_list = kcalloc(dev_info->num_of_segments,
- sizeof(struct segment_info),
- GFP_KERNEL);
+ sort_list = kzalloc_objs(struct segment_info, dev_info->num_of_segments,
+ GFP_KERNEL);
if (sort_list == NULL)
return -ENOMEM;
i = 0;
@@ -310,7 +309,7 @@ dcssblk_load_segment(char *name, struct segment_info **seg_info)
return -EEXIST;
/* get a struct segment_info */
- *seg_info = kzalloc(sizeof(struct segment_info), GFP_KERNEL);
+ *seg_info = kzalloc_obj(struct segment_info, GFP_KERNEL);
if (*seg_info == NULL)
return -ENOMEM;
@@ -606,8 +605,8 @@ dcssblk_add_store(struct device *dev, struct device_attribute *attr, const char
* get a struct dcssblk_dev_info
*/
if (num_of_segments == 0) {
- dev_info = kzalloc(sizeof(struct dcssblk_dev_info),
- GFP_KERNEL);
+ dev_info = kzalloc_obj(struct dcssblk_dev_info,
+ GFP_KERNEL);
if (dev_info == NULL) {
rc = -ENOMEM;
goto out;
diff --git a/drivers/s390/block/scm_blk.c b/drivers/s390/block/scm_blk.c
index 04e84f45dcc9..0781c7e9d913 100644
--- a/drivers/s390/block/scm_blk.c
+++ b/drivers/s390/block/scm_blk.c
@@ -77,8 +77,8 @@ static int __scm_alloc_rq(void)
if (!scmrq->aob)
goto free;
- scmrq->request = kcalloc(nr_requests_per_io, sizeof(scmrq->request[0]),
- GFP_KERNEL);
+ scmrq->request = kzalloc_objs(scmrq->request[0], nr_requests_per_io,
+ GFP_KERNEL);
if (!scmrq->request)
goto free;
@@ -331,7 +331,7 @@ static blk_status_t scm_blk_request(struct blk_mq_hw_ctx *hctx,
static int scm_blk_init_hctx(struct blk_mq_hw_ctx *hctx, void *data,
unsigned int idx)
{
- struct scm_queue *qd = kzalloc(sizeof(*qd), GFP_KERNEL);
+ struct scm_queue *qd = kzalloc_obj(*qd, GFP_KERNEL);
if (!qd)
return -ENOMEM;
diff --git a/drivers/s390/block/scm_drv.c b/drivers/s390/block/scm_drv.c
index 6cffbbe83f89..81b32b44b03c 100644
--- a/drivers/s390/block/scm_drv.c
+++ b/drivers/s390/block/scm_drv.c
@@ -43,7 +43,7 @@ static int scm_probe(struct scm_device *scmdev)
if (scmdev->attrs.oper_state != OP_STATE_GOOD)
return -EINVAL;
- bdev = kzalloc(sizeof(*bdev), GFP_KERNEL);
+ bdev = kzalloc_obj(*bdev, GFP_KERNEL);
if (!bdev)
return -ENOMEM;
diff --git a/drivers/s390/char/con3215.c b/drivers/s390/char/con3215.c
index 56e43d43c713..46265f4fbfd8 100644
--- a/drivers/s390/char/con3215.c
+++ b/drivers/s390/char/con3215.c
@@ -670,7 +670,7 @@ static struct raw3215_info *raw3215_alloc_info(void)
{
struct raw3215_info *info;
- info = kzalloc(sizeof(struct raw3215_info), GFP_KERNEL | GFP_DMA);
+ info = kzalloc_obj(struct raw3215_info, GFP_KERNEL | GFP_DMA);
if (!info)
return NULL;
@@ -916,7 +916,7 @@ static int __init con3215_init(void)
/* allocate 3215 request structures */
raw3215_freelist = NULL;
for (i = 0; i < NR_3215_REQ; i++) {
- req = kzalloc(sizeof(struct raw3215_req), GFP_KERNEL | GFP_DMA);
+ req = kzalloc_obj(struct raw3215_req, GFP_KERNEL | GFP_DMA);
if (!req)
return -ENOMEM;
req->next = raw3215_freelist;
diff --git a/drivers/s390/char/con3270.c b/drivers/s390/char/con3270.c
index 4a7c084e68a6..1dcf0198d8a7 100644
--- a/drivers/s390/char/con3270.c
+++ b/drivers/s390/char/con3270.c
@@ -829,7 +829,7 @@ static struct tty3270 *tty3270_alloc_view(void)
{
struct tty3270 *tp;
- tp = kzalloc(sizeof(*tp), GFP_KERNEL);
+ tp = kzalloc_obj(*tp, GFP_KERNEL);
if (!tp)
goto out_err;
@@ -895,11 +895,12 @@ static struct tty3270_line *tty3270_alloc_screen(struct tty3270 *tp, unsigned in
int allocated, lines;
allocated = __roundup_pow_of_two(rows) * TTY3270_SCREEN_PAGES;
- screen = kcalloc(allocated, sizeof(struct tty3270_line), GFP_KERNEL);
+ screen = kzalloc_objs(struct tty3270_line, allocated, GFP_KERNEL);
if (!screen)
goto out_err;
for (lines = 0; lines < allocated; lines++) {
- screen[lines].cells = kcalloc(cols, sizeof(struct tty3270_cell), GFP_KERNEL);
+ screen[lines].cells = kzalloc_objs(struct tty3270_cell, cols,
+ GFP_KERNEL);
if (!screen[lines].cells)
goto out_screen;
}
diff --git a/drivers/s390/char/fs3270.c b/drivers/s390/char/fs3270.c
index 73555dbe30d0..c601134eee04 100644
--- a/drivers/s390/char/fs3270.c
+++ b/drivers/s390/char/fs3270.c
@@ -367,7 +367,7 @@ static struct fs3270 *fs3270_alloc_view(void)
{
struct fs3270 *fp;
- fp = kzalloc(sizeof(*fp), GFP_KERNEL);
+ fp = kzalloc_obj(*fp, GFP_KERNEL);
if (!fp)
return ERR_PTR(-ENOMEM);
fp->init = raw3270_request_alloc(0);
diff --git a/drivers/s390/char/keyboard.c b/drivers/s390/char/keyboard.c
index a45f07a2cc8f..006c381e2417 100644
--- a/drivers/s390/char/keyboard.c
+++ b/drivers/s390/char/keyboard.c
@@ -78,7 +78,7 @@ kbd_alloc(void) {
struct kbd_data *kbd;
int i;
- kbd = kzalloc(sizeof(struct kbd_data), GFP_KERNEL);
+ kbd = kzalloc_obj(struct kbd_data, GFP_KERNEL);
if (!kbd)
goto out;
kbd->key_maps = kzalloc(sizeof(ebc_key_maps), GFP_KERNEL);
@@ -105,7 +105,7 @@ kbd_alloc(void) {
}
}
kbd->fn_handler =
- kcalloc(NR_FN_HANDLER, sizeof(fn_handler_fn *), GFP_KERNEL);
+ kzalloc_objs(fn_handler_fn *, NR_FN_HANDLER, GFP_KERNEL);
if (!kbd->fn_handler)
goto out_func;
kbd->accent_table = kmemdup(ebc_accent_table,
diff --git a/drivers/s390/char/monreader.c b/drivers/s390/char/monreader.c
index 3d84f84b4cbd..9c1bcc4f35c5 100644
--- a/drivers/s390/char/monreader.c
+++ b/drivers/s390/char/monreader.c
@@ -181,12 +181,11 @@ static struct mon_private *mon_alloc_mem(void)
int i;
struct mon_private *monpriv;
- monpriv = kzalloc(sizeof(struct mon_private), GFP_KERNEL);
+ monpriv = kzalloc_obj(struct mon_private, GFP_KERNEL);
if (!monpriv)
return NULL;
for (i = 0; i < MON_MSGLIM; i++) {
- monpriv->msg_array[i] = kzalloc(sizeof(struct mon_msg),
- GFP_KERNEL);
+ monpriv->msg_array[i] = kzalloc_obj(struct mon_msg, GFP_KERNEL);
if (!monpriv->msg_array[i]) {
mon_free_mem(monpriv);
return NULL;
diff --git a/drivers/s390/char/monwriter.c b/drivers/s390/char/monwriter.c
index cf2e51061422..d7ef93351a2e 100644
--- a/drivers/s390/char/monwriter.c
+++ b/drivers/s390/char/monwriter.c
@@ -58,8 +58,8 @@ static int monwrite_diag(struct monwrite_hdr *myhdr, char *buffer, int fcn)
struct appldata_product_id *id;
int rc;
- id = kmalloc(sizeof(*id), GFP_KERNEL);
- parm_list = kmalloc(sizeof(*parm_list), GFP_KERNEL);
+ id = kmalloc_obj(*id, GFP_KERNEL);
+ parm_list = kmalloc_obj(*parm_list, GFP_KERNEL);
rc = -ENOMEM;
if (!id || !parm_list)
goto out;
@@ -126,7 +126,7 @@ static int monwrite_new_hdr(struct mon_private *monpriv)
} else if (monhdr->mon_function != MONWRITE_STOP_INTERVAL) {
if (mon_buf_count >= mon_max_bufs)
return -ENOSPC;
- monbuf = kzalloc(sizeof(struct mon_buf), GFP_KERNEL);
+ monbuf = kzalloc_obj(struct mon_buf, GFP_KERNEL);
if (!monbuf)
return -ENOMEM;
monbuf->data = kzalloc(monhdr->datalen,
@@ -188,7 +188,7 @@ static int monwrite_open(struct inode *inode, struct file *filp)
{
struct mon_private *monpriv;
- monpriv = kzalloc(sizeof(struct mon_private), GFP_KERNEL);
+ monpriv = kzalloc_obj(struct mon_private, GFP_KERNEL);
if (!monpriv)
return -ENOMEM;
INIT_LIST_HEAD(&monpriv->list);
diff --git a/drivers/s390/char/raw3270.c b/drivers/s390/char/raw3270.c
index 55850b5a7f51..aa9c4d81225c 100644
--- a/drivers/s390/char/raw3270.c
+++ b/drivers/s390/char/raw3270.c
@@ -146,7 +146,7 @@ struct raw3270_request *raw3270_request_alloc(size_t size)
struct raw3270_request *rq;
/* Allocate request structure */
- rq = kzalloc(sizeof(*rq), GFP_KERNEL | GFP_DMA);
+ rq = kzalloc_obj(*rq, GFP_KERNEL | GFP_DMA);
if (!rq)
return ERR_PTR(-ENOMEM);
@@ -813,7 +813,7 @@ struct raw3270 __init *raw3270_setup_console(void)
if (IS_ERR(cdev))
return ERR_CAST(cdev);
- rp = kzalloc(sizeof(*rp), GFP_KERNEL | GFP_DMA);
+ rp = kzalloc_obj(*rp, GFP_KERNEL | GFP_DMA);
ascebc = kzalloc(256, GFP_KERNEL);
rc = raw3270_setup_device(cdev, rp, ascebc);
if (rc)
@@ -858,7 +858,7 @@ static struct raw3270 *raw3270_create_device(struct ccw_device *cdev)
char *ascebc;
int rc;
- rp = kzalloc(sizeof(*rp), GFP_KERNEL | GFP_DMA);
+ rp = kzalloc_obj(*rp, GFP_KERNEL | GFP_DMA);
if (!rp)
return ERR_PTR(-ENOMEM);
ascebc = kmalloc(256, GFP_KERNEL);
diff --git a/drivers/s390/char/sclp_cmd.c b/drivers/s390/char/sclp_cmd.c
index be4730936f5c..c4a79cf6db86 100644
--- a/drivers/s390/char/sclp_cmd.c
+++ b/drivers/s390/char/sclp_cmd.c
@@ -66,7 +66,7 @@ int sclp_sync_request_timeout(sclp_cmdw_t cmd, void *sccb, int timeout)
struct sclp_req *request;
int rc;
- request = kzalloc(sizeof(*request), GFP_KERNEL);
+ request = kzalloc_obj(*request, GFP_KERNEL);
if (!request)
return -ENOMEM;
if (timeout)
@@ -134,7 +134,7 @@ static int do_core_configure(sclp_cmdw_t cmd)
* Use kmalloc to have a minimum alignment of 8 bytes and ensure sccb
* is not going to cross a page boundary.
*/
- sccb = kzalloc(sizeof(*sccb), GFP_KERNEL | GFP_DMA);
+ sccb = kzalloc_obj(*sccb, GFP_KERNEL | GFP_DMA);
if (!sccb)
return -ENOMEM;
sccb->header.length = sizeof(*sccb);
diff --git a/drivers/s390/char/sclp_cpi_sys.c b/drivers/s390/char/sclp_cpi_sys.c
index 8e1636bcf8b5..ea3ee83bac85 100644
--- a/drivers/s390/char/sclp_cpi_sys.c
+++ b/drivers/s390/char/sclp_cpi_sys.c
@@ -81,7 +81,7 @@ static struct sclp_req *cpi_prepare_req(void)
struct cpi_sccb *sccb;
struct cpi_evbuf *evb;
- req = kzalloc(sizeof(struct sclp_req), GFP_KERNEL);
+ req = kzalloc_obj(struct sclp_req, GFP_KERNEL);
if (!req)
return ERR_PTR(-ENOMEM);
sccb = (struct cpi_sccb *) get_zeroed_page(GFP_KERNEL | GFP_DMA);
diff --git a/drivers/s390/char/sclp_ftp.c b/drivers/s390/char/sclp_ftp.c
index 2a1c4b2cafc8..f9c15f6f8078 100644
--- a/drivers/s390/char/sclp_ftp.c
+++ b/drivers/s390/char/sclp_ftp.c
@@ -92,7 +92,7 @@ static int sclp_ftp_et7(const struct hmcdrv_ftp_cmdspec *ftp)
ssize_t len;
int rc;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
sccb = (void *) get_zeroed_page(GFP_KERNEL | GFP_DMA);
if (!req || !sccb) {
rc = -ENOMEM;
diff --git a/drivers/s390/char/sclp_mem.c b/drivers/s390/char/sclp_mem.c
index 27f0d2f12a8b..9417857ce401 100644
--- a/drivers/s390/char/sclp_mem.c
+++ b/drivers/s390/char/sclp_mem.c
@@ -431,7 +431,7 @@ static int __init sclp_init_mem(void)
max_sclp_mems = roundup(sclp.rnmax * sclp.rzm, block_size) / block_size;
/* Allocate memory for all blocks ahead of time. */
- sclp_mems = kcalloc(max_sclp_mems, sizeof(struct sclp_mem), GFP_KERNEL);
+ sclp_mems = kzalloc_objs(struct sclp_mem, max_sclp_mems, GFP_KERNEL);
if (!sclp_mems)
return -ENOMEM;
kset = kset_create_and_add("memory", NULL, firmware_kobj);
@@ -453,7 +453,7 @@ static void __init insert_increment(u16 rn, int standby, int assigned)
struct list_head *prev;
u16 last_rn;
- new_incr = kzalloc(sizeof(*new_incr), GFP_KERNEL);
+ new_incr = kzalloc_obj(*new_incr, GFP_KERNEL);
if (!new_incr)
return;
new_incr->rn = rn;
diff --git a/drivers/s390/char/sclp_sd.c b/drivers/s390/char/sclp_sd.c
index e4a90a14028a..ee09803db422 100644
--- a/drivers/s390/char/sclp_sd.c
+++ b/drivers/s390/char/sclp_sd.c
@@ -518,7 +518,7 @@ static __init struct sclp_sd_file *sclp_sd_file_create(const char *name, u8 di)
struct sclp_sd_file *sd_file;
int rc;
- sd_file = kzalloc(sizeof(*sd_file), GFP_KERNEL);
+ sd_file = kzalloc_obj(*sd_file, GFP_KERNEL);
if (!sd_file)
return NULL;
sd_file->di = di;
diff --git a/drivers/s390/char/tape_3490.c b/drivers/s390/char/tape_3490.c
index 7302f1121553..ac70055fd8ba 100644
--- a/drivers/s390/char/tape_3490.c
+++ b/drivers/s390/char/tape_3490.c
@@ -140,7 +140,7 @@ tape_3490_schedule_work(struct tape_device *device, enum tape_op op)
{
struct tape_3490_work *p;
- if ((p = kzalloc(sizeof(*p), GFP_ATOMIC)) == NULL)
+ if ((p = kzalloc_obj(*p, GFP_ATOMIC)) == NULL)
return -ENOMEM;
INIT_WORK(&p->work, tape_3490_work_handler);
diff --git a/drivers/s390/char/tape_class.c b/drivers/s390/char/tape_class.c
index 1ae9ad219c08..b211324b801f 100644
--- a/drivers/s390/char/tape_class.c
+++ b/drivers/s390/char/tape_class.c
@@ -45,7 +45,7 @@ struct tape_class_device *register_tape_dev(
int rc;
char * s;
- tcd = kzalloc(sizeof(struct tape_class_device), GFP_KERNEL);
+ tcd = kzalloc_obj(struct tape_class_device, GFP_KERNEL);
if (!tcd)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/s390/char/tape_core.c b/drivers/s390/char/tape_core.c
index a62b650ea3c2..f3270f22a1ef 100644
--- a/drivers/s390/char/tape_core.c
+++ b/drivers/s390/char/tape_core.c
@@ -249,7 +249,7 @@ tape_med_state_work(struct tape_device *device, enum tape_medium_state state)
{
struct tape_med_state_work_data *p;
- p = kzalloc(sizeof(*p), GFP_ATOMIC);
+ p = kzalloc_obj(*p, GFP_ATOMIC);
if (p) {
INIT_WORK(&p->work, tape_med_state_work_handler);
p->device = tape_get_device(device);
@@ -477,7 +477,7 @@ tape_alloc_device(void)
{
struct tape_device *device;
- device = kzalloc(sizeof(struct tape_device), GFP_KERNEL);
+ device = kzalloc_obj(struct tape_device, GFP_KERNEL);
if (device == NULL) {
DBF_EXCEPTION(2, "ti:no mem\n");
return ERR_PTR(-ENOMEM);
@@ -678,15 +678,15 @@ tape_alloc_request(int cplength, int datasize)
DBF_LH(6, "tape_alloc_request(%d, %d)\n", cplength, datasize);
- request = kzalloc(sizeof(struct tape_request), GFP_KERNEL);
+ request = kzalloc_obj(struct tape_request, GFP_KERNEL);
if (request == NULL) {
DBF_EXCEPTION(1, "cqra nomem\n");
return ERR_PTR(-ENOMEM);
}
/* allocate channel program */
if (cplength > 0) {
- request->cpaddr = kcalloc(cplength, sizeof(struct ccw1),
- GFP_ATOMIC | GFP_DMA);
+ request->cpaddr = kzalloc_objs(struct ccw1, cplength,
+ GFP_ATOMIC | GFP_DMA);
if (request->cpaddr == NULL) {
DBF_EXCEPTION(1, "cqra nomem\n");
kfree(request);
diff --git a/drivers/s390/char/uvdevice.c b/drivers/s390/char/uvdevice.c
index 2b83fb6dc1d7..83ed0a26e884 100644
--- a/drivers/s390/char/uvdevice.c
+++ b/drivers/s390/char/uvdevice.c
@@ -196,7 +196,7 @@ static int uvio_attestation(struct uvio_ioctl_cb *uv_ioctl)
goto out;
ret = -ENOMEM;
- uvio_attest = kzalloc(sizeof(*uvio_attest), GFP_KERNEL);
+ uvio_attest = kzalloc_obj(*uvio_attest, GFP_KERNEL);
if (!uvio_attest)
goto out;
@@ -216,7 +216,7 @@ static int uvio_attestation(struct uvio_ioctl_cb *uv_ioctl)
goto out;
}
- uvcb_attest = kzalloc(sizeof(*uvcb_attest), GFP_KERNEL);
+ uvcb_attest = kzalloc_obj(*uvcb_attest, GFP_KERNEL);
if (!uvcb_attest)
goto out;
diff --git a/drivers/s390/char/vmcp.c b/drivers/s390/char/vmcp.c
index bde6c9e59166..4cf82f83c175 100644
--- a/drivers/s390/char/vmcp.c
+++ b/drivers/s390/char/vmcp.c
@@ -104,7 +104,7 @@ static int vmcp_open(struct inode *inode, struct file *file)
if (!capable(CAP_SYS_ADMIN))
return -EPERM;
- session = kmalloc(sizeof(*session), GFP_KERNEL);
+ session = kmalloc_obj(*session, GFP_KERNEL);
if (!session)
return -ENOMEM;
diff --git a/drivers/s390/char/vmur.c b/drivers/s390/char/vmur.c
index a226ff208eda..f855774687b2 100644
--- a/drivers/s390/char/vmur.c
+++ b/drivers/s390/char/vmur.c
@@ -107,7 +107,7 @@ static struct urdev *urdev_alloc(struct ccw_device *cdev)
{
struct urdev *urd;
- urd = kzalloc(sizeof(struct urdev), GFP_KERNEL);
+ urd = kzalloc_obj(struct urdev, GFP_KERNEL);
if (!urd)
return NULL;
urd->reclen = cdev->id.driver_info;
@@ -225,8 +225,7 @@ static struct ccw1 *alloc_chan_prog(const char __user *ubuf, int rec_count,
* That means we allocate room for CCWs to cover count/reclen
* records plus a NOP.
*/
- cpa = kcalloc(rec_count + 1, sizeof(struct ccw1),
- GFP_KERNEL | GFP_DMA);
+ cpa = kzalloc_objs(struct ccw1, rec_count + 1, GFP_KERNEL | GFP_DMA);
if (!cpa)
return ERR_PTR(-ENOMEM);
@@ -397,7 +396,7 @@ static struct urfile *urfile_alloc(struct urdev *urd)
{
struct urfile *urf;
- urf = kzalloc(sizeof(struct urfile), GFP_KERNEL);
+ urf = kzalloc_obj(struct urfile, GFP_KERNEL);
if (!urf)
return NULL;
urf->urd = urd;
@@ -606,7 +605,7 @@ static int verify_uri_device(struct urdev *urd)
char *buf;
int rc;
- fcb = kmalloc(sizeof(*fcb), GFP_KERNEL | GFP_DMA);
+ fcb = kmalloc_obj(*fcb, GFP_KERNEL | GFP_DMA);
if (!fcb)
return -ENOMEM;
@@ -665,7 +664,7 @@ static int get_uri_file_reclen(struct urdev *urd)
struct file_control_block *fcb;
int rc;
- fcb = kmalloc(sizeof(*fcb), GFP_KERNEL | GFP_DMA);
+ fcb = kmalloc_obj(*fcb, GFP_KERNEL | GFP_DMA);
if (!fcb)
return -ENOMEM;
rc = diag_read_next_file_info(fcb, 0);
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;
diff --git a/drivers/s390/crypto/ap_card.c b/drivers/s390/crypto/ap_card.c
index 8b0ad6f582ec..bf6ae6e099e9 100644
--- a/drivers/s390/crypto/ap_card.c
+++ b/drivers/s390/crypto/ap_card.c
@@ -233,7 +233,7 @@ struct ap_card *ap_card_create(int id, struct ap_tapq_hwinfo hwinfo,
{
struct ap_card *ac;
- ac = kzalloc(sizeof(*ac), GFP_KERNEL);
+ ac = kzalloc_obj(*ac, GFP_KERNEL);
if (!ac)
return NULL;
ac->ap_dev.device.release = ap_card_device_release;
diff --git a/drivers/s390/crypto/ap_queue.c b/drivers/s390/crypto/ap_queue.c
index a80ab87cad62..cf349627a19c 100644
--- a/drivers/s390/crypto/ap_queue.c
+++ b/drivers/s390/crypto/ap_queue.c
@@ -1183,7 +1183,7 @@ struct ap_queue *ap_queue_create(ap_qid_t qid, struct ap_card *ac)
{
struct ap_queue *aq;
- aq = kzalloc(sizeof(*aq), GFP_KERNEL);
+ aq = kzalloc_obj(*aq, GFP_KERNEL);
if (!aq)
return NULL;
aq->card = ac;
diff --git a/drivers/s390/crypto/pkey_api.c b/drivers/s390/crypto/pkey_api.c
index ad1cd699f53b..0f0938cd96d2 100644
--- a/drivers/s390/crypto/pkey_api.c
+++ b/drivers/s390/crypto/pkey_api.c
@@ -223,7 +223,7 @@ static int pkey_ioctl_findcard(struct pkey_findcard __user *ufc)
return -EFAULT;
nr_apqns = MAXAPQNSINLIST;
- apqns = kmalloc_array(nr_apqns, sizeof(struct pkey_apqn), GFP_KERNEL);
+ apqns = kmalloc_objs(struct pkey_apqn, nr_apqns, GFP_KERNEL);
if (!apqns)
return -ENOMEM;
@@ -569,9 +569,7 @@ static int pkey_ioctl_apqns4k(struct pkey_apqns4key __user *uak)
return -EFAULT;
nr_apqns = kak.apqn_entries;
if (nr_apqns) {
- apqns = kmalloc_array(nr_apqns,
- sizeof(struct pkey_apqn),
- GFP_KERNEL);
+ apqns = kmalloc_objs(struct pkey_apqn, nr_apqns, GFP_KERNEL);
if (!apqns)
return -ENOMEM;
}
@@ -620,9 +618,7 @@ static int pkey_ioctl_apqns4kt(struct pkey_apqns4keytype __user *uat)
return -EFAULT;
nr_apqns = kat.apqn_entries;
if (nr_apqns) {
- apqns = kmalloc_array(nr_apqns,
- sizeof(struct pkey_apqn),
- GFP_KERNEL);
+ apqns = kmalloc_objs(struct pkey_apqn, nr_apqns, GFP_KERNEL);
if (!apqns)
return -ENOMEM;
}
diff --git a/drivers/s390/crypto/pkey_uv.c b/drivers/s390/crypto/pkey_uv.c
index 6cd3c49384b5..a21594c64be6 100644
--- a/drivers/s390/crypto/pkey_uv.c
+++ b/drivers/s390/crypto/pkey_uv.c
@@ -291,7 +291,7 @@ static int __init pkey_uv_init(void)
if (!test_bit_inv(BIT_UVC_CMD_RETR_SECRET, uv_info.inst_calls_list))
return -ENODEV;
- uv_list = kmalloc(sizeof(*uv_list), GFP_KERNEL);
+ uv_list = kmalloc_obj(*uv_list, GFP_KERNEL);
if (!uv_list)
return -ENOMEM;
diff --git a/drivers/s390/crypto/vfio_ap_drv.c b/drivers/s390/crypto/vfio_ap_drv.c
index 67a807e2e75b..5146a3db53fd 100644
--- a/drivers/s390/crypto/vfio_ap_drv.c
+++ b/drivers/s390/crypto/vfio_ap_drv.c
@@ -96,7 +96,7 @@ static int vfio_ap_matrix_dev_create(void)
if (ret)
goto bus_register_err;
- matrix_dev = kzalloc(sizeof(*matrix_dev), GFP_KERNEL);
+ matrix_dev = kzalloc_obj(*matrix_dev, GFP_KERNEL);
if (!matrix_dev) {
ret = -ENOMEM;
goto matrix_alloc_err;
diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c
index 48da32ad0493..b19068ffcdc8 100644
--- a/drivers/s390/crypto/vfio_ap_ops.c
+++ b/drivers/s390/crypto/vfio_ap_ops.c
@@ -2424,7 +2424,7 @@ int vfio_ap_mdev_probe_queue(struct ap_device *apdev)
if (ret)
return ret;
- q = kzalloc(sizeof(*q), GFP_KERNEL);
+ q = kzalloc_obj(*q, GFP_KERNEL);
if (!q) {
ret = -ENOMEM;
goto err_remove_group;
diff --git a/drivers/s390/crypto/zcrypt_api.c b/drivers/s390/crypto/zcrypt_api.c
index c796773fbce8..75e1d69346ae 100644
--- a/drivers/s390/crypto/zcrypt_api.c
+++ b/drivers/s390/crypto/zcrypt_api.c
@@ -397,7 +397,7 @@ static int zcdn_create(const char *name)
}
/* alloc and prepare a new zcdn device */
- zcdndev = kzalloc(sizeof(*zcdndev), GFP_KERNEL);
+ zcdndev = kzalloc_obj(*zcdndev, GFP_KERNEL);
if (!zcdndev) {
rc = -ENOMEM;
goto unlockout;
@@ -1065,7 +1065,7 @@ static long _zcrypt_send_ep11_cprb(u32 xflags, struct ap_perms *perms,
rc = -ENOMEM;
if (target_num != 0) {
if (userspace) {
- targets = kcalloc(target_num, sizeof(*targets), GFP_KERNEL);
+ targets = kzalloc_objs(*targets, target_num, GFP_KERNEL);
if (!targets)
goto out;
if (copy_from_user(targets, xcrb->targets,
@@ -1627,9 +1627,8 @@ static long zcrypt_unlocked_ioctl(struct file *filp, unsigned int cmd,
size_t total_size = MAX_ZDEV_ENTRIES_EXT
* sizeof(struct zcrypt_device_status_ext);
- device_status = kvcalloc(MAX_ZDEV_ENTRIES_EXT,
- sizeof(struct zcrypt_device_status_ext),
- GFP_KERNEL);
+ device_status = kvzalloc_objs(struct zcrypt_device_status_ext,
+ MAX_ZDEV_ENTRIES_EXT, GFP_KERNEL);
if (!device_status)
return -ENOMEM;
zcrypt_device_status_mask_ext(device_status,
diff --git a/drivers/s390/crypto/zcrypt_card.c b/drivers/s390/crypto/zcrypt_card.c
index 6dea702a5cac..f905132ebad4 100644
--- a/drivers/s390/crypto/zcrypt_card.c
+++ b/drivers/s390/crypto/zcrypt_card.c
@@ -90,7 +90,7 @@ static ssize_t online_store(struct device *dev,
list_for_each_entry(zq, &zc->zqueues, list)
maxzqs++;
if (maxzqs > 0)
- zq_uelist = kcalloc(maxzqs + 1, sizeof(*zq_uelist), GFP_ATOMIC);
+ zq_uelist = kzalloc_objs(*zq_uelist, maxzqs + 1, GFP_ATOMIC);
list_for_each_entry(zq, &zc->zqueues, list)
if (zcrypt_queue_force_online(zq, online))
if (zq_uelist) {
@@ -138,7 +138,7 @@ struct zcrypt_card *zcrypt_card_alloc(void)
{
struct zcrypt_card *zc;
- zc = kzalloc(sizeof(*zc), GFP_KERNEL);
+ zc = kzalloc_obj(*zc, GFP_KERNEL);
if (!zc)
return NULL;
INIT_LIST_HEAD(&zc->list);
diff --git a/drivers/s390/crypto/zcrypt_queue.c b/drivers/s390/crypto/zcrypt_queue.c
index a173d32eb6e8..73a5987499c9 100644
--- a/drivers/s390/crypto/zcrypt_queue.c
+++ b/drivers/s390/crypto/zcrypt_queue.c
@@ -115,7 +115,7 @@ struct zcrypt_queue *zcrypt_queue_alloc(size_t reply_buf_size)
{
struct zcrypt_queue *zq;
- zq = kzalloc(sizeof(*zq), GFP_KERNEL);
+ zq = kzalloc_obj(*zq, GFP_KERNEL);
if (!zq)
return NULL;
zq->reply.msg = kmalloc(reply_buf_size, GFP_KERNEL);
diff --git a/drivers/s390/net/ctcm_main.c b/drivers/s390/net/ctcm_main.c
index 3d7ccf2366a0..22fbe94e5a7e 100644
--- a/drivers/s390/net/ctcm_main.c
+++ b/drivers/s390/net/ctcm_main.c
@@ -1268,7 +1268,7 @@ static int ctcm_probe_device(struct ccwgroup_device *cgdev)
if (!get_device(&cgdev->dev))
return -ENODEV;
- priv = kzalloc(sizeof(struct ctcm_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct ctcm_priv, GFP_KERNEL);
if (!priv) {
CTCM_DBF_TEXT_(ERROR, CTC_DBF_ERROR,
"%s: memory allocation failure",
@@ -1307,7 +1307,7 @@ static int add_channel(struct ccw_device *cdev, enum ctcm_channel_types type,
"%s(%s), type %d, proto %d",
__func__, dev_name(&cdev->dev), type, priv->protocol);
- ch = kzalloc(sizeof(struct channel), GFP_KERNEL);
+ ch = kzalloc_obj(struct channel, GFP_KERNEL);
if (ch == NULL)
return -ENOMEM;
@@ -1327,7 +1327,7 @@ static int add_channel(struct ccw_device *cdev, enum ctcm_channel_types type,
} else
ccw_num = 8;
- ch->ccw = kcalloc(ccw_num, sizeof(struct ccw1), GFP_KERNEL | GFP_DMA);
+ ch->ccw = kzalloc_objs(struct ccw1, ccw_num, GFP_KERNEL | GFP_DMA);
if (ch->ccw == NULL)
goto nomem_return;
@@ -1408,7 +1408,7 @@ static int add_channel(struct ccw_device *cdev, enum ctcm_channel_types type,
fsm_newstate(ch->fsm, CTC_STATE_IDLE);
- ch->irb = kzalloc(sizeof(struct irb), GFP_KERNEL);
+ ch->irb = kzalloc_obj(struct irb, GFP_KERNEL);
if (ch->irb == NULL)
goto nomem_return;
diff --git a/drivers/s390/net/ctcm_mpc.c b/drivers/s390/net/ctcm_mpc.c
index 0f329fb514ee..35662bd25c3c 100644
--- a/drivers/s390/net/ctcm_mpc.c
+++ b/drivers/s390/net/ctcm_mpc.c
@@ -1163,7 +1163,7 @@ static void ctcmpc_unpack_skb(struct channel *ch, struct sk_buff *pskb)
skb_pull(pskb, new_len); /* point to next PDU */
}
} else {
- mpcginfo = kmalloc(sizeof(struct mpcg_info), GFP_ATOMIC);
+ mpcginfo = kmalloc_obj(struct mpcg_info, GFP_ATOMIC);
if (mpcginfo == NULL)
goto done;
@@ -1259,7 +1259,7 @@ struct mpc_group *ctcmpc_init_mpc_group(struct ctcm_priv *priv)
CTCM_DBF_TEXT_(MPC_SETUP, CTC_DBF_INFO,
"Enter %s(%p)", CTCM_FUNTAIL, priv);
- grp = kzalloc(sizeof(struct mpc_group), GFP_KERNEL);
+ grp = kzalloc_obj(struct mpc_group, GFP_KERNEL);
if (grp == NULL)
return NULL;
diff --git a/drivers/s390/net/fsm.c b/drivers/s390/net/fsm.c
index 58f8e2fb6d54..9b8622aef807 100644
--- a/drivers/s390/net/fsm.c
+++ b/drivers/s390/net/fsm.c
@@ -23,7 +23,7 @@ init_fsm(char *name, const char **state_names, const char **event_names, int nr_
fsm_function_t *m;
fsm *f;
- this = kzalloc(sizeof(fsm_instance), order);
+ this = kzalloc_obj(fsm_instance, order);
if (this == NULL) {
printk(KERN_WARNING
"fsm(%s): init_fsm: Couldn't alloc instance\n", name);
@@ -32,7 +32,7 @@ init_fsm(char *name, const char **state_names, const char **event_names, int nr_
strscpy(this->name, name, sizeof(this->name));
init_waitqueue_head(&this->wait_q);
- f = kzalloc(sizeof(fsm), order);
+ f = kzalloc_obj(fsm, order);
if (f == NULL) {
printk(KERN_WARNING
"fsm(%s): init_fsm: Couldn't alloc fsm\n", name);
@@ -45,7 +45,7 @@ init_fsm(char *name, const char **state_names, const char **event_names, int nr_
f->state_names = state_names;
this->f = f;
- m = kcalloc(nr_states*nr_events, sizeof(fsm_function_t), order);
+ m = kzalloc_objs(fsm_function_t, nr_states * nr_events, order);
if (m == NULL) {
printk(KERN_WARNING
"fsm(%s): init_fsm: Couldn't alloc jumptable\n", name);
diff --git a/drivers/s390/net/ism_drv.c b/drivers/s390/net/ism_drv.c
index 8b8e4f06be0f..c9808772d621 100644
--- a/drivers/s390/net/ism_drv.c
+++ b/drivers/s390/net/ism_drv.c
@@ -598,7 +598,7 @@ static int ism_probe(struct pci_dev *pdev, const struct pci_device_id *id)
struct ism_dev *ism;
int ret;
- ism = kzalloc(sizeof(*ism), GFP_KERNEL);
+ ism = kzalloc_obj(*ism, GFP_KERNEL);
if (!ism)
return -ENOMEM;
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c
index 1c80e8ca67b5..41041abd3d1b 100644
--- a/drivers/s390/net/qeth_core_main.c
+++ b/drivers/s390/net/qeth_core_main.c
@@ -225,7 +225,7 @@ static struct qeth_buffer_pool_entry *qeth_alloc_pool_entry(unsigned int pages)
struct qeth_buffer_pool_entry *entry;
unsigned int i;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return NULL;
@@ -324,7 +324,7 @@ static void qeth_free_qdio_queue(struct qeth_qdio_q *q)
static struct qeth_qdio_q *qeth_alloc_qdio_queue(void)
{
- struct qeth_qdio_q *q = kzalloc(sizeof(*q), GFP_KERNEL);
+ struct qeth_qdio_q *q = kzalloc_obj(*q, GFP_KERNEL);
int i;
if (!q)
@@ -559,7 +559,7 @@ static void qeth_add_local_addrs4(struct qeth_card *card,
if (duplicate)
continue;
- addr = kmalloc(sizeof(*addr), GFP_ATOMIC);
+ addr = kmalloc_obj(*addr, GFP_ATOMIC);
if (!addr) {
dev_err(&card->gdev->dev,
"Failed to allocate local addr object. Traffic to %pI4 might suffer.\n",
@@ -602,7 +602,7 @@ static void qeth_add_local_addrs6(struct qeth_card *card,
if (duplicate)
continue;
- addr = kmalloc(sizeof(*addr), GFP_ATOMIC);
+ addr = kmalloc_obj(*addr, GFP_ATOMIC);
if (!addr) {
dev_err(&card->gdev->dev,
"Failed to allocate local addr object. Traffic to %pI6c might suffer.\n",
@@ -930,7 +930,7 @@ static struct qeth_cmd_buffer *qeth_alloc_cmd(struct qeth_channel *channel,
if (length > QETH_BUFSIZE)
return NULL;
- iob = kzalloc(sizeof(*iob), GFP_KERNEL);
+ iob = kzalloc_obj(*iob, GFP_KERNEL);
if (!iob)
return NULL;
@@ -1626,7 +1626,7 @@ static struct qeth_card *qeth_alloc_card(struct ccwgroup_device *gdev)
struct qeth_card *card;
QETH_DBF_TEXT(SETUP, 2, "alloccrd");
- card = kzalloc(sizeof(*card), GFP_KERNEL);
+ card = kzalloc_obj(*card, GFP_KERNEL);
if (!card)
goto out;
QETH_DBF_HEX(SETUP, 2, &card, sizeof(void *));
@@ -1837,8 +1837,8 @@ static enum qeth_discipline_id qeth_vm_detect_layer(struct qeth_card *card)
if (rc)
goto out;
- request = kzalloc(sizeof(*request), GFP_KERNEL | GFP_DMA);
- response = kzalloc(sizeof(*response), GFP_KERNEL | GFP_DMA);
+ request = kzalloc_obj(*request, GFP_KERNEL | GFP_DMA);
+ response = kzalloc_obj(*response, GFP_KERNEL | GFP_DMA);
if (!request || !response) {
rc = -ENOMEM;
goto out;
@@ -2591,7 +2591,7 @@ static void qeth_free_output_queue(struct qeth_qdio_out_q *q)
static struct qeth_qdio_out_q *qeth_alloc_output_queue(void)
{
- struct qeth_qdio_out_q *q = kzalloc(sizeof(*q), GFP_KERNEL);
+ struct qeth_qdio_out_q *q = kzalloc_obj(*q, GFP_KERNEL);
unsigned int i;
if (!q)
@@ -4953,8 +4953,8 @@ int qeth_vm_request_mac(struct qeth_card *card)
QETH_CARD_TEXT(card, 2, "vmreqmac");
- request = kzalloc(sizeof(*request), GFP_KERNEL | GFP_DMA);
- response = kzalloc(sizeof(*response), GFP_KERNEL | GFP_DMA);
+ request = kzalloc_obj(*request, GFP_KERNEL | GFP_DMA);
+ response = kzalloc_obj(*response, GFP_KERNEL | GFP_DMA);
if (!request || !response) {
rc = -ENOMEM;
goto out;
@@ -6249,7 +6249,7 @@ static int qeth_add_dbf_entry(struct qeth_card *card, char *name)
}
if (debug_register_view(card->debug, &debug_hex_ascii_view))
goto err_dbg;
- new_entry = kzalloc(sizeof(struct qeth_dbf_entry), GFP_KERNEL);
+ new_entry = kzalloc_obj(struct qeth_dbf_entry, GFP_KERNEL);
if (!new_entry)
goto err_dbg;
strscpy(new_entry->dbf_name, name, sizeof(new_entry->dbf_name));
diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c
index 7498a83b1f06..a9e7d1d637a2 100644
--- a/drivers/s390/net/qeth_l2_main.c
+++ b/drivers/s390/net/qeth_l2_main.c
@@ -442,7 +442,7 @@ static void qeth_l2_add_mac(struct qeth_card *card, struct netdev_hw_addr *ha)
}
}
- mac = kzalloc(sizeof(struct qeth_mac), GFP_ATOMIC);
+ mac = kzalloc_obj(struct qeth_mac, GFP_ATOMIC);
if (!mac)
return;
@@ -827,7 +827,7 @@ static int qeth_l2_br2dev_queue_work(struct net_device *brdev,
struct qeth_l2_br2dev_event_work *worker_data;
struct qeth_card *card;
- worker_data = kzalloc(sizeof(*worker_data), GFP_ATOMIC);
+ worker_data = kzalloc_obj(*worker_data, GFP_ATOMIC);
if (!worker_data)
return -ENOMEM;
INIT_WORK(&worker_data->work, qeth_l2_br2dev_worker);
@@ -1348,7 +1348,7 @@ static void qeth_bridge_state_change(struct qeth_card *card,
return;
}
- data = kzalloc(sizeof(*data), GFP_ATOMIC);
+ data = kzalloc_obj(*data, GFP_ATOMIC);
if (!data) {
QETH_CARD_TEXT(card, 2, "BPSalloc");
return;
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c
index 027bc346232f..1542bfc9f561 100644
--- a/drivers/s390/net/qeth_l3_main.c
+++ b/drivers/s390/net/qeth_l3_main.c
@@ -2163,7 +2163,7 @@ static int qeth_l3_ip6_event(struct notifier_block *this,
if (!qeth_is_supported(card, IPA_IPV6))
return NOTIFY_DONE;
- ip_work = kmalloc(sizeof(*ip_work), GFP_ATOMIC);
+ ip_work = kmalloc_obj(*ip_work, GFP_ATOMIC);
if (!ip_work)
return NOTIFY_DONE;
diff --git a/drivers/s390/net/qeth_l3_sys.c b/drivers/s390/net/qeth_l3_sys.c
index a6b64228ead2..db0985fe35b3 100644
--- a/drivers/s390/net/qeth_l3_sys.c
+++ b/drivers/s390/net/qeth_l3_sys.c
@@ -431,7 +431,7 @@ static ssize_t qeth_l3_dev_ipato_add_store(const char *buf, size_t count,
if (rc)
return rc;
- ipatoe = kzalloc(sizeof(struct qeth_ipato_entry), GFP_KERNEL);
+ ipatoe = kzalloc_obj(struct qeth_ipato_entry, GFP_KERNEL);
if (!ipatoe)
return -ENOMEM;
diff --git a/drivers/s390/net/smsgiucv.c b/drivers/s390/net/smsgiucv.c
index 3dadaacc42a6..645d7edcbf2d 100644
--- a/drivers/s390/net/smsgiucv.c
+++ b/drivers/s390/net/smsgiucv.c
@@ -92,7 +92,7 @@ int smsg_register_callback(const char *prefix,
{
struct smsg_callback *cb;
- cb = kmalloc(sizeof(struct smsg_callback), GFP_KERNEL);
+ cb = kmalloc_obj(struct smsg_callback, GFP_KERNEL);
if (!cb)
return -ENOMEM;
cb->prefix = prefix;
diff --git a/drivers/s390/net/smsgiucv_app.c b/drivers/s390/net/smsgiucv_app.c
index 1bd0370460cd..c53305b4cb25 100644
--- a/drivers/s390/net/smsgiucv_app.c
+++ b/drivers/s390/net/smsgiucv_app.c
@@ -69,7 +69,7 @@ static struct smsg_app_event *smsg_app_event_alloc(const char *from,
{
struct smsg_app_event *ev;
- ev = kzalloc(sizeof(*ev), GFP_ATOMIC);
+ ev = kzalloc_obj(*ev, GFP_ATOMIC);
if (!ev)
return NULL;
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c
index 01f927ae61b5..f8435ea9a967 100644
--- a/drivers/s390/scsi/zfcp_aux.c
+++ b/drivers/s390/scsi/zfcp_aux.c
@@ -344,7 +344,7 @@ struct zfcp_adapter *zfcp_adapter_enqueue(struct ccw_device *ccw_device)
if (!get_device(&ccw_device->dev))
return ERR_PTR(-ENODEV);
- adapter = kzalloc(sizeof(struct zfcp_adapter), GFP_KERNEL);
+ adapter = kzalloc_obj(struct zfcp_adapter, GFP_KERNEL);
if (!adapter) {
put_device(&ccw_device->dev);
return ERR_PTR(-ENOMEM);
@@ -518,7 +518,7 @@ struct zfcp_port *zfcp_port_enqueue(struct zfcp_adapter *adapter, u64 wwpn,
goto err_put;
}
- port = kzalloc(sizeof(struct zfcp_port), GFP_KERNEL);
+ port = kzalloc_obj(struct zfcp_port, GFP_KERNEL);
if (!port)
goto err_put;
diff --git a/drivers/s390/scsi/zfcp_dbf.c b/drivers/s390/scsi/zfcp_dbf.c
index 6b5561c54e2f..37938e6903ef 100644
--- a/drivers/s390/scsi/zfcp_dbf.c
+++ b/drivers/s390/scsi/zfcp_dbf.c
@@ -816,7 +816,7 @@ int zfcp_dbf_adapter_register(struct zfcp_adapter *adapter)
char name[DEBUG_MAX_NAME_LEN];
struct zfcp_dbf *dbf;
- dbf = kzalloc(sizeof(struct zfcp_dbf), GFP_KERNEL);
+ dbf = kzalloc_obj(struct zfcp_dbf, GFP_KERNEL);
if (!dbf)
return -ENOMEM;
diff --git a/drivers/s390/scsi/zfcp_diag.c b/drivers/s390/scsi/zfcp_diag.c
index 4d2d89d9c15a..e8c9077b4e96 100644
--- a/drivers/s390/scsi/zfcp_diag.c
+++ b/drivers/s390/scsi/zfcp_diag.c
@@ -36,7 +36,7 @@ int zfcp_diag_adapter_setup(struct zfcp_adapter *const adapter)
struct zfcp_diag_adapter *diag;
struct zfcp_diag_header *hdr;
- diag = kzalloc(sizeof(*diag), GFP_KERNEL);
+ diag = kzalloc_obj(*diag, GFP_KERNEL);
if (diag == NULL)
return -ENOMEM;
diff --git a/drivers/s390/scsi/zfcp_fc.c b/drivers/s390/scsi/zfcp_fc.c
index 78ca394e1195..c212ca0924f8 100644
--- a/drivers/s390/scsi/zfcp_fc.c
+++ b/drivers/s390/scsi/zfcp_fc.c
@@ -128,7 +128,7 @@ void zfcp_fc_enqueue_event(struct zfcp_adapter *adapter,
{
struct zfcp_fc_event *event;
- event = kmalloc(sizeof(struct zfcp_fc_event), GFP_ATOMIC);
+ event = kmalloc_obj(struct zfcp_fc_event, GFP_ATOMIC);
if (!event)
return;
@@ -1116,7 +1116,7 @@ int zfcp_fc_gs_setup(struct zfcp_adapter *adapter)
{
struct zfcp_fc_wka_ports *wka_ports;
- wka_ports = kzalloc(sizeof(struct zfcp_fc_wka_ports), GFP_KERNEL);
+ wka_ports = kzalloc_obj(struct zfcp_fc_wka_ports, GFP_KERNEL);
if (!wka_ports)
return -ENOMEM;
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index 9418086368c3..d407f16e77ef 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -806,7 +806,7 @@ static struct zfcp_fsf_req *zfcp_fsf_alloc(mempool_t *pool)
if (likely(pool))
req = mempool_alloc(pool, GFP_ATOMIC);
else
- req = kmalloc(sizeof(*req), GFP_ATOMIC);
+ req = kmalloc_obj(*req, GFP_ATOMIC);
if (unlikely(!req))
return NULL;
diff --git a/drivers/s390/scsi/zfcp_qdio.c b/drivers/s390/scsi/zfcp_qdio.c
index e15a1eabe42d..3febefc80ccf 100644
--- a/drivers/s390/scsi/zfcp_qdio.c
+++ b/drivers/s390/scsi/zfcp_qdio.c
@@ -549,7 +549,7 @@ int zfcp_qdio_setup(struct zfcp_adapter *adapter)
{
struct zfcp_qdio *qdio;
- qdio = kzalloc(sizeof(struct zfcp_qdio), GFP_KERNEL);
+ qdio = kzalloc_obj(struct zfcp_qdio, GFP_KERNEL);
if (!qdio)
return -ENOMEM;
diff --git a/drivers/s390/scsi/zfcp_reqlist.h b/drivers/s390/scsi/zfcp_reqlist.h
index 59fbb1b128cb..2037424f9981 100644
--- a/drivers/s390/scsi/zfcp_reqlist.h
+++ b/drivers/s390/scsi/zfcp_reqlist.h
@@ -42,7 +42,7 @@ static inline struct zfcp_reqlist *zfcp_reqlist_alloc(void)
size_t i;
struct zfcp_reqlist *rl;
- rl = kzalloc(sizeof(struct zfcp_reqlist), GFP_KERNEL);
+ rl = kzalloc_obj(struct zfcp_reqlist, GFP_KERNEL);
if (!rl)
return NULL;
diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c
index 634bd8dceedd..f78df15b384a 100644
--- a/drivers/s390/scsi/zfcp_scsi.c
+++ b/drivers/s390/scsi/zfcp_scsi.c
@@ -542,7 +542,7 @@ zfcp_scsi_init_fc_host_stats(struct zfcp_adapter *adapter)
struct fc_host_statistics *fc_stats;
if (!adapter->fc_stats) {
- fc_stats = kmalloc(sizeof(*fc_stats), GFP_KERNEL);
+ fc_stats = kmalloc_obj(*fc_stats, GFP_KERNEL);
if (!fc_stats)
return NULL;
adapter->fc_stats = fc_stats; /* freed in adapter_release */
@@ -622,7 +622,7 @@ zfcp_scsi_get_fc_host_stats(struct Scsi_Host *host)
if (!fc_stats)
return NULL;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return NULL;
@@ -651,7 +651,7 @@ static void zfcp_scsi_reset_fc_host_stats(struct Scsi_Host *shost)
int ret;
adapter = (struct zfcp_adapter *)shost->hostdata[0];
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return;
diff --git a/drivers/s390/scsi/zfcp_sysfs.c b/drivers/s390/scsi/zfcp_sysfs.c
index 10a3840b2b6b..33ea87286c35 100644
--- a/drivers/s390/scsi/zfcp_sysfs.c
+++ b/drivers/s390/scsi/zfcp_sysfs.c
@@ -708,7 +708,7 @@ static ssize_t zfcp_sysfs_adapter_util_show(struct device *dev,
if (!(adapter->adapter_features & FSF_FEATURE_MEASUREMENT_DATA))
return -EOPNOTSUPP;
- qtcb_port = kzalloc(sizeof(struct fsf_qtcb_bottom_port), GFP_KERNEL);
+ qtcb_port = kzalloc_obj(struct fsf_qtcb_bottom_port, GFP_KERNEL);
if (!qtcb_port)
return -ENOMEM;
@@ -733,8 +733,7 @@ static int zfcp_sysfs_adapter_ex_config(struct device *dev,
if (!(adapter->adapter_features & FSF_FEATURE_MEASUREMENT_DATA))
return -EOPNOTSUPP;
- qtcb_config = kzalloc(sizeof(struct fsf_qtcb_bottom_config),
- GFP_KERNEL);
+ qtcb_config = kzalloc_obj(struct fsf_qtcb_bottom_config, GFP_KERNEL);
if (!qtcb_config)
return -ENOMEM;
diff --git a/drivers/s390/scsi/zfcp_unit.c b/drivers/s390/scsi/zfcp_unit.c
index 4ef2a635d34f..0f47643cd5d9 100644
--- a/drivers/s390/scsi/zfcp_unit.c
+++ b/drivers/s390/scsi/zfcp_unit.c
@@ -137,7 +137,7 @@ int zfcp_unit_add(struct zfcp_port *port, u64 fcp_lun)
goto out;
}
- unit = kzalloc(sizeof(struct zfcp_unit), GFP_KERNEL);
+ unit = kzalloc_obj(struct zfcp_unit, GFP_KERNEL);
if (!unit) {
retval = -ENOMEM;
goto out;
diff --git a/drivers/s390/virtio/virtio_ccw.c b/drivers/s390/virtio/virtio_ccw.c
index 1653cc668dcf..ae36a1f410a5 100644
--- a/drivers/s390/virtio/virtio_ccw.c
+++ b/drivers/s390/virtio/virtio_ccw.c
@@ -277,7 +277,7 @@ static struct airq_info *new_airq_info(int index)
struct airq_info *info;
int rc;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return NULL;
rwlock_init(&info->lock);
@@ -566,7 +566,7 @@ static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev,
notify = virtio_ccw_kvm_notify;
/* Allocate queue. */
- info = kzalloc(sizeof(struct virtio_ccw_vq_info), GFP_KERNEL);
+ info = kzalloc_obj(struct virtio_ccw_vq_info, GFP_KERNEL);
if (!info) {
dev_warn(&vcdev->cdev->dev, "no info\n");
err = -ENOMEM;
@@ -1370,7 +1370,7 @@ static int virtio_ccw_online(struct ccw_device *cdev)
struct virtio_ccw_device *vcdev;
unsigned long flags;
- vcdev = kzalloc(sizeof(*vcdev), GFP_KERNEL);
+ vcdev = kzalloc_obj(*vcdev, GFP_KERNEL);
if (!vcdev) {
dev_warn(&cdev->dev, "Could not get memory for virtio\n");
ret = -ENOMEM;
diff --git a/drivers/sbus/char/bbc_envctrl.c b/drivers/sbus/char/bbc_envctrl.c
index 23af4edd295b..9f9cb764d8be 100644
--- a/drivers/sbus/char/bbc_envctrl.c
+++ b/drivers/sbus/char/bbc_envctrl.c
@@ -448,7 +448,7 @@ static void attach_one_temp(struct bbc_i2c_bus *bp, struct platform_device *op,
{
struct bbc_cpu_temperature *tp;
- tp = kzalloc(sizeof(*tp), GFP_KERNEL);
+ tp = kzalloc_obj(*tp, GFP_KERNEL);
if (!tp)
return;
@@ -496,7 +496,7 @@ static void attach_one_fan(struct bbc_i2c_bus *bp, struct platform_device *op,
{
struct bbc_fan_control *fp;
- fp = kzalloc(sizeof(*fp), GFP_KERNEL);
+ fp = kzalloc_obj(*fp, GFP_KERNEL);
if (!fp)
return;
diff --git a/drivers/sbus/char/bbc_i2c.c b/drivers/sbus/char/bbc_i2c.c
index 90e71ce4bab8..3a4b36514485 100644
--- a/drivers/sbus/char/bbc_i2c.c
+++ b/drivers/sbus/char/bbc_i2c.c
@@ -92,7 +92,7 @@ struct bbc_i2c_client *bbc_i2c_attach(struct bbc_i2c_bus *bp, struct platform_de
struct bbc_i2c_client *client;
const u32 *reg;
- client = kzalloc(sizeof(*client), GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (!client)
return NULL;
client->bp = bp;
@@ -298,7 +298,7 @@ static struct bbc_i2c_bus * attach_one_i2c(struct platform_device *op, int index
struct device_node *dp;
int entry;
- bp = kzalloc(sizeof(*bp), GFP_KERNEL);
+ bp = kzalloc_obj(*bp, GFP_KERNEL);
if (!bp)
return NULL;
diff --git a/drivers/sbus/char/openprom.c b/drivers/sbus/char/openprom.c
index 8643947fee8e..77de0d987d44 100644
--- a/drivers/sbus/char/openprom.c
+++ b/drivers/sbus/char/openprom.c
@@ -666,7 +666,7 @@ static int openprom_open(struct inode * inode, struct file * file)
{
DATA *data;
- data = kmalloc(sizeof(DATA), GFP_KERNEL);
+ data = kmalloc_obj(DATA, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/sbus/char/oradax.c b/drivers/sbus/char/oradax.c
index a536dd6f4f7c..ff31511a6c85 100644
--- a/drivers/sbus/char/oradax.c
+++ b/drivers/sbus/char/oradax.c
@@ -643,12 +643,11 @@ static int dax_open(struct inode *inode, struct file *f)
struct dax_ctx *ctx = NULL;
int i;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (ctx == NULL)
goto done;
- ctx->ccb_buf = kcalloc(DAX_MAX_CCBS, sizeof(struct dax_ccb),
- GFP_KERNEL);
+ ctx->ccb_buf = kzalloc_objs(struct dax_ccb, DAX_MAX_CCBS, GFP_KERNEL);
if (ctx->ccb_buf == NULL)
goto done;
diff --git a/drivers/sbus/char/uctrl.c b/drivers/sbus/char/uctrl.c
index e3dec78f51e9..e9a28ab02ddb 100644
--- a/drivers/sbus/char/uctrl.c
+++ b/drivers/sbus/char/uctrl.c
@@ -348,7 +348,7 @@ static int uctrl_probe(struct platform_device *op)
struct uctrl_driver *p;
int err = -ENOMEM;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p) {
printk(KERN_ERR "uctrl: Unable to allocate device struct.\n");
goto out;
diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c
index e64a9a18ec6e..35bc55f8195d 100644
--- a/drivers/scsi/3w-9xxx.c
+++ b/drivers/scsi/3w-9xxx.c
@@ -1184,7 +1184,7 @@ static int twa_initialize_device_extension(TW_Device_Extension *tw_dev)
}
/* Allocate event info space */
- tw_dev->event_queue[0] = kcalloc(TW_Q_LENGTH, sizeof(TW_Event), GFP_KERNEL);
+ tw_dev->event_queue[0] = kzalloc_objs(TW_Event, TW_Q_LENGTH, GFP_KERNEL);
if (!tw_dev->event_queue[0]) {
TW_PRINTK(tw_dev->host, TW_DRIVER, 0x18, "Event info memory allocation failed");
goto out;
diff --git a/drivers/scsi/3w-sas.c b/drivers/scsi/3w-sas.c
index fde12475b712..cbc3af2694cb 100644
--- a/drivers/scsi/3w-sas.c
+++ b/drivers/scsi/3w-sas.c
@@ -1052,7 +1052,7 @@ static int twl_initialize_device_extension(TW_Device_Extension *tw_dev)
}
/* Allocate event info space */
- tw_dev->event_queue[0] = kcalloc(TW_Q_LENGTH, sizeof(TW_Event), GFP_KERNEL);
+ tw_dev->event_queue[0] = kzalloc_objs(TW_Event, TW_Q_LENGTH, GFP_KERNEL);
if (!tw_dev->event_queue[0]) {
TW_PRINTK(tw_dev->host, TW_DRIVER, 0xc, "Event info memory allocation failed");
goto out;
diff --git a/drivers/scsi/53c700.c b/drivers/scsi/53c700.c
index 860538c6f8cb..40d640dedfdc 100644
--- a/drivers/scsi/53c700.c
+++ b/drivers/scsi/53c700.c
@@ -2020,8 +2020,8 @@ NCR_700_set_offset(struct scsi_target *STp, int offset)
STATIC int
NCR_700_sdev_init(struct scsi_device *SDp)
{
- SDp->hostdata = kzalloc(sizeof(struct NCR_700_Device_Parameters),
- GFP_KERNEL);
+ SDp->hostdata = kzalloc_obj(struct NCR_700_Device_Parameters,
+ GFP_KERNEL);
if (!SDp->hostdata)
return -ENOMEM;
diff --git a/drivers/scsi/BusLogic.c b/drivers/scsi/BusLogic.c
index 49929d0339fa..1152a0151545 100644
--- a/drivers/scsi/BusLogic.c
+++ b/drivers/scsi/BusLogic.c
@@ -2214,15 +2214,15 @@ static int __init blogic_init(void)
if (blogic_probe_options.noprobe)
return -ENODEV;
blogic_probeinfo_list =
- kcalloc(BLOGIC_MAX_ADAPTERS, sizeof(struct blogic_probeinfo),
- GFP_KERNEL);
+ kzalloc_objs(struct blogic_probeinfo, BLOGIC_MAX_ADAPTERS,
+ GFP_KERNEL);
if (blogic_probeinfo_list == NULL) {
blogic_err("BusLogic: Unable to allocate Probe Info List\n",
NULL);
return -ENOMEM;
}
- adapter = kzalloc(sizeof(struct blogic_adapter), GFP_KERNEL);
+ adapter = kzalloc_obj(struct blogic_adapter, GFP_KERNEL);
if (adapter == NULL) {
kfree(blogic_probeinfo_list);
blogic_err("BusLogic: Unable to allocate Prototype Host Adapter\n", NULL);
diff --git a/drivers/scsi/a4000t.c b/drivers/scsi/a4000t.c
index 75b43047a155..cf7d1f867081 100644
--- a/drivers/scsi/a4000t.c
+++ b/drivers/scsi/a4000t.c
@@ -47,8 +47,7 @@ static int __init amiga_a4000t_scsi_probe(struct platform_device *pdev)
"A4000T builtin SCSI"))
return -EBUSY;
- hostdata = kzalloc(sizeof(struct NCR_700_Host_Parameters),
- GFP_KERNEL);
+ hostdata = kzalloc_obj(struct NCR_700_Host_Parameters, GFP_KERNEL);
if (!hostdata) {
dev_err(&pdev->dev, "Failed to allocate host data\n");
goto out_release;
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
index 0be719f38377..6df882e264f6 100644
--- a/drivers/scsi/aacraid/aachba.c
+++ b/drivers/scsi/aacraid/aachba.c
@@ -492,8 +492,8 @@ int aac_get_containers(struct aac_dev *dev)
fsa_dev_ptr = dev->fsa_dev;
- dev->fsa_dev = kcalloc(maximum_num_containers,
- sizeof(*fsa_dev_ptr), GFP_KERNEL);
+ dev->fsa_dev = kzalloc_objs(*fsa_dev_ptr,
+ maximum_num_containers, GFP_KERNEL);
kfree(fsa_dev_ptr);
fsa_dev_ptr = NULL;
@@ -820,7 +820,7 @@ int aac_probe_container(struct aac_dev *dev, int cid)
{
struct aac_cmd_priv *cmd_priv;
struct scsi_cmnd *scsicmd = kzalloc(sizeof(*scsicmd) + sizeof(*cmd_priv), GFP_KERNEL);
- struct scsi_device *scsidev = kzalloc(sizeof(*scsidev), GFP_KERNEL);
+ struct scsi_device *scsidev = kzalloc_obj(*scsidev, GFP_KERNEL);
int status;
if (!scsicmd || !scsidev) {
@@ -4010,7 +4010,7 @@ static int aac_convert_sgraw2(struct aac_raw_io2 *rio2, int pages, int nseg, int
if (aac_convert_sgl == 0)
return 0;
- sge = kmalloc_array(nseg_new, sizeof(*sge), GFP_ATOMIC);
+ sge = kmalloc_objs(*sge, nseg_new, GFP_ATOMIC);
if (sge == NULL)
return -ENOMEM;
diff --git a/drivers/scsi/aacraid/commctrl.c b/drivers/scsi/aacraid/commctrl.c
index 68240d6f27ab..f7dca5ab3f6d 100644
--- a/drivers/scsi/aacraid/commctrl.c
+++ b/drivers/scsi/aacraid/commctrl.c
@@ -169,7 +169,7 @@ static int open_getadapter_fib(struct aac_dev * dev, void __user *arg)
struct aac_fib_context * fibctx;
int status;
- fibctx = kmalloc(sizeof(struct aac_fib_context), GFP_KERNEL);
+ fibctx = kmalloc_obj(struct aac_fib_context, GFP_KERNEL);
if (fibctx == NULL) {
status = -ENOMEM;
} else {
diff --git a/drivers/scsi/aacraid/comminit.c b/drivers/scsi/aacraid/comminit.c
index 726c8531b7d3..e425dee827a3 100644
--- a/drivers/scsi/aacraid/comminit.c
+++ b/drivers/scsi/aacraid/comminit.c
@@ -632,7 +632,7 @@ struct aac_dev *aac_init_adapter(struct aac_dev *dev)
* Ok now init the communication subsystem
*/
- dev->queues = kzalloc(sizeof(struct aac_queue_block), GFP_KERNEL);
+ dev->queues = kzalloc_obj(struct aac_queue_block, GFP_KERNEL);
if (dev->queues == NULL) {
printk(KERN_ERR "Error could not allocate comm region.\n");
return NULL;
diff --git a/drivers/scsi/aacraid/commsup.c b/drivers/scsi/aacraid/commsup.c
index 7d9a4dce236b..3502e5e47539 100644
--- a/drivers/scsi/aacraid/commsup.c
+++ b/drivers/scsi/aacraid/commsup.c
@@ -1907,13 +1907,13 @@ static int fillup_pools(struct aac_dev *dev, struct hw_fib **hw_fib_pool,
hw_fib_p = hw_fib_pool;
fib_p = fib_pool;
while (hw_fib_p < &hw_fib_pool[num]) {
- *(hw_fib_p) = kmalloc(sizeof(struct hw_fib), GFP_KERNEL);
+ *(hw_fib_p) = kmalloc_obj(struct hw_fib, GFP_KERNEL);
if (!(*(hw_fib_p++))) {
--hw_fib_p;
break;
}
- *(fib_p) = kmalloc(sizeof(struct fib), GFP_KERNEL);
+ *(fib_p) = kmalloc_obj(struct fib, GFP_KERNEL);
if (!(*(fib_p++))) {
kfree(*(--hw_fib_p));
break;
@@ -2101,12 +2101,11 @@ static void aac_process_events(struct aac_dev *dev)
if (!num)
goto free_fib;
- hw_fib_pool = kmalloc_array(num, sizeof(struct hw_fib *),
- GFP_KERNEL);
+ hw_fib_pool = kmalloc_objs(struct hw_fib *, num, GFP_KERNEL);
if (!hw_fib_pool)
goto free_fib;
- fib_pool = kmalloc_array(num, sizeof(struct fib *), GFP_KERNEL);
+ fib_pool = kmalloc_objs(struct fib *, num, GFP_KERNEL);
if (!fib_pool)
goto free_hw_fib_pool;
diff --git a/drivers/scsi/aacraid/dpcsup.c b/drivers/scsi/aacraid/dpcsup.c
index fbe334c59f37..169c41d080a1 100644
--- a/drivers/scsi/aacraid/dpcsup.c
+++ b/drivers/scsi/aacraid/dpcsup.c
@@ -184,7 +184,7 @@ unsigned int aac_command_normal(struct aac_queue *q)
* a fib object in order to manage the linked lists
*/
if (dev->aif_thread)
- if((fib = kmalloc(sizeof(struct fib), GFP_ATOMIC)) == NULL)
+ if((fib = kmalloc_obj(struct fib, GFP_ATOMIC)) == NULL)
fib = &fibctx;
memset(fib, 0, sizeof(struct fib));
@@ -284,9 +284,9 @@ unsigned int aac_intr_normal(struct aac_dev *dev, u32 index, int isAif,
* manage the linked lists.
*/
if ((!dev->aif_thread)
- || (!(fib = kzalloc(sizeof(struct fib),GFP_ATOMIC))))
+ || (!(fib = kzalloc_obj(struct fib, GFP_ATOMIC))))
return 1;
- if (!(hw_fib = kzalloc(sizeof(struct hw_fib),GFP_ATOMIC))) {
+ if (!(hw_fib = kzalloc_obj(struct hw_fib, GFP_ATOMIC))) {
kfree (fib);
return 1;
}
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c
index ea468666159a..fe1ab38b7b6a 100644
--- a/drivers/scsi/aacraid/linit.c
+++ b/drivers/scsi/aacraid/linit.c
@@ -1661,9 +1661,8 @@ static int aac_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
if (aac_reset_devices || reset_devices)
aac->init_reset = true;
- aac->fibs = kcalloc(shost->can_queue + AAC_NUM_MGT_FIB,
- sizeof(struct fib),
- GFP_KERNEL);
+ aac->fibs = kzalloc_objs(struct fib, shost->can_queue + AAC_NUM_MGT_FIB,
+ GFP_KERNEL);
if (!aac->fibs) {
error = -ENOMEM;
goto out_free_host;
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
index 08bddac49757..f78448254f99 100644
--- a/drivers/scsi/advansys.c
+++ b/drivers/scsi/advansys.c
@@ -7486,8 +7486,8 @@ static int asc_build_req(struct asc_board *boardp, struct scsi_cmnd *scp,
return ASC_ERROR;
}
- asc_sg_head = kzalloc(struct_size(asc_sg_head, sg_list, use_sg),
- GFP_ATOMIC);
+ asc_sg_head = kzalloc_flex(*asc_sg_head, sg_list, use_sg,
+ GFP_ATOMIC);
if (!asc_sg_head) {
scsi_dma_unmap(scp);
set_host_byte(scp, DID_SOFT_ERROR);
@@ -11314,7 +11314,7 @@ static int advansys_eisa_probe(struct device *dev)
struct eisa_scsi_data *data;
err = -ENOMEM;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
goto fail;
ioport = edev->base_addr + 0xc30;
diff --git a/drivers/scsi/aic7xxx/aic79xx_core.c b/drivers/scsi/aic7xxx/aic79xx_core.c
index 6b87ea004e53..3602a1fc40e4 100644
--- a/drivers/scsi/aic7xxx/aic79xx_core.c
+++ b/drivers/scsi/aic7xxx/aic79xx_core.c
@@ -3604,7 +3604,7 @@ ahd_alloc_tstate(struct ahd_softc *ahd, u_int scsi_id, char channel)
&& ahd->enabled_targets[scsi_id] != master_tstate)
panic("%s: ahd_alloc_tstate - Target already allocated",
ahd_name(ahd));
- tstate = kmalloc(sizeof(*tstate), GFP_ATOMIC);
+ tstate = kmalloc_obj(*tstate, GFP_ATOMIC);
if (tstate == NULL)
return (NULL);
@@ -6037,14 +6037,14 @@ ahd_alloc(void *platform_arg, char *name)
{
struct ahd_softc *ahd;
- ahd = kzalloc(sizeof(*ahd), GFP_ATOMIC);
+ ahd = kzalloc_obj(*ahd, GFP_ATOMIC);
if (!ahd) {
printk("aic7xxx: cannot malloc softc!\n");
kfree(name);
return NULL;
}
- ahd->seep_config = kmalloc(sizeof(*ahd->seep_config), GFP_ATOMIC);
+ ahd->seep_config = kmalloc_obj(*ahd->seep_config, GFP_ATOMIC);
if (ahd->seep_config == NULL) {
kfree(ahd);
kfree(name);
@@ -6777,7 +6777,7 @@ ahd_alloc_scbs(struct ahd_softc *ahd)
hscb = &((struct hardware_scb *)hscb_map->vaddr)[offset];
hscb_busaddr = hscb_map->physaddr + (offset * sizeof(*hscb));
} else {
- hscb_map = kmalloc(sizeof(*hscb_map), GFP_ATOMIC);
+ hscb_map = kmalloc_obj(*hscb_map, GFP_ATOMIC);
if (hscb_map == NULL)
return;
@@ -6810,7 +6810,7 @@ ahd_alloc_scbs(struct ahd_softc *ahd)
segs = sg_map->vaddr + offset;
sg_busaddr = sg_map->physaddr + offset;
} else {
- sg_map = kmalloc(sizeof(*sg_map), GFP_ATOMIC);
+ sg_map = kmalloc_obj(*sg_map, GFP_ATOMIC);
if (sg_map == NULL)
return;
@@ -6847,7 +6847,7 @@ ahd_alloc_scbs(struct ahd_softc *ahd)
sense_data = sense_map->vaddr + offset;
sense_busaddr = sense_map->physaddr + offset;
} else {
- sense_map = kmalloc(sizeof(*sense_map), GFP_ATOMIC);
+ sense_map = kmalloc_obj(*sense_map, GFP_ATOMIC);
if (sense_map == NULL)
return;
@@ -6882,11 +6882,11 @@ ahd_alloc_scbs(struct ahd_softc *ahd)
struct scb_platform_data *pdata;
u_int col_tag;
- next_scb = kmalloc(sizeof(*next_scb), GFP_ATOMIC);
+ next_scb = kmalloc_obj(*next_scb, GFP_ATOMIC);
if (next_scb == NULL)
break;
- pdata = kmalloc(sizeof(*pdata), GFP_ATOMIC);
+ pdata = kmalloc_obj(*pdata, GFP_ATOMIC);
if (pdata == NULL) {
kfree(next_scb);
break;
@@ -10339,7 +10339,7 @@ ahd_handle_en_lun(struct ahd_softc *ahd, struct cam_sim *sim, union ccb *ccb)
return;
}
}
- lstate = kzalloc(sizeof(*lstate), GFP_ATOMIC);
+ lstate = kzalloc_obj(*lstate, GFP_ATOMIC);
if (lstate == NULL) {
xpt_print_path(ccb->ccb_h.path);
printk("Couldn't allocate lstate\n");
diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.c b/drivers/scsi/aic7xxx/aic79xx_osm.c
index c8b6dc48300a..feb1707feb7e 100644
--- a/drivers/scsi/aic7xxx/aic79xx_osm.c
+++ b/drivers/scsi/aic7xxx/aic79xx_osm.c
@@ -923,7 +923,7 @@ ahd_dma_tag_create(struct ahd_softc *ahd, bus_dma_tag_t parent,
{
bus_dma_tag_t dmat;
- dmat = kmalloc(sizeof(*dmat), GFP_ATOMIC);
+ dmat = kmalloc_obj(*dmat, GFP_ATOMIC);
if (dmat == NULL)
return (ENOMEM);
@@ -1309,7 +1309,7 @@ int
ahd_platform_alloc(struct ahd_softc *ahd, void *platform_arg)
{
ahd->platform_data =
- kzalloc(sizeof(struct ahd_platform_data), GFP_ATOMIC);
+ kzalloc_obj(struct ahd_platform_data, GFP_ATOMIC);
if (ahd->platform_data == NULL)
return (ENOMEM);
ahd->platform_data->irq = AHD_LINUX_NOIRQ;
diff --git a/drivers/scsi/aic7xxx/aic79xx_proc.c b/drivers/scsi/aic7xxx/aic79xx_proc.c
index 746d0ca2a657..aa37838b78a6 100644
--- a/drivers/scsi/aic7xxx/aic79xx_proc.c
+++ b/drivers/scsi/aic7xxx/aic79xx_proc.c
@@ -242,8 +242,8 @@ ahd_proc_write_seeprom(struct Scsi_Host *shost, char *buffer, int length)
u_int start_addr;
if (ahd->seep_config == NULL) {
- ahd->seep_config = kmalloc(sizeof(*ahd->seep_config),
- GFP_ATOMIC);
+ ahd->seep_config = kmalloc_obj(*ahd->seep_config,
+ GFP_ATOMIC);
if (ahd->seep_config == NULL) {
printk("aic79xx: Unable to allocate serial "
"eeprom buffer. Write failing\n");
diff --git a/drivers/scsi/aic7xxx/aic7xxx_core.c b/drivers/scsi/aic7xxx/aic7xxx_core.c
index a396f048a031..b9761f9f0bbc 100644
--- a/drivers/scsi/aic7xxx/aic7xxx_core.c
+++ b/drivers/scsi/aic7xxx/aic7xxx_core.c
@@ -2128,7 +2128,7 @@ ahc_alloc_tstate(struct ahc_softc *ahc, u_int scsi_id, char channel)
&& ahc->enabled_targets[scsi_id] != master_tstate)
panic("%s: ahc_alloc_tstate - Target already allocated",
ahc_name(ahc));
- tstate = kmalloc(sizeof(*tstate), GFP_ATOMIC);
+ tstate = kmalloc_obj(*tstate, GFP_ATOMIC);
if (tstate == NULL)
return (NULL);
@@ -4381,14 +4381,14 @@ ahc_alloc(void *platform_arg, char *name)
struct ahc_softc *ahc;
int i;
- ahc = kzalloc(sizeof(*ahc), GFP_ATOMIC);
+ ahc = kzalloc_obj(*ahc, GFP_ATOMIC);
if (!ahc) {
printk("aic7xxx: cannot malloc softc!\n");
kfree(name);
return NULL;
}
- ahc->seep_config = kmalloc(sizeof(*ahc->seep_config), GFP_ATOMIC);
+ ahc->seep_config = kmalloc_obj(*ahc->seep_config, GFP_ATOMIC);
if (ahc->seep_config == NULL) {
kfree(ahc);
kfree(name);
@@ -4433,7 +4433,7 @@ ahc_softc_init(struct ahc_softc *ahc)
ahc->pause = ahc->unpause | PAUSE;
/* XXX The shared scb data stuff should be deprecated */
if (ahc->scb_data == NULL) {
- ahc->scb_data = kzalloc(sizeof(*ahc->scb_data), GFP_ATOMIC);
+ ahc->scb_data = kzalloc_obj(*ahc->scb_data, GFP_ATOMIC);
if (ahc->scb_data == NULL)
return (ENOMEM);
}
@@ -4738,8 +4738,8 @@ ahc_init_scbdata(struct ahc_softc *ahc)
SLIST_INIT(&scb_data->sg_maps);
/* Allocate SCB resources */
- scb_data->scbarray = kcalloc(AHC_SCB_MAX_ALLOC, sizeof(struct scb),
- GFP_ATOMIC);
+ scb_data->scbarray = kzalloc_objs(struct scb, AHC_SCB_MAX_ALLOC,
+ GFP_ATOMIC);
if (scb_data->scbarray == NULL)
return (ENOMEM);
@@ -4943,7 +4943,7 @@ ahc_alloc_scbs(struct ahc_softc *ahc)
next_scb = &scb_data->scbarray[scb_data->numscbs];
- sg_map = kmalloc(sizeof(*sg_map), GFP_ATOMIC);
+ sg_map = kmalloc_obj(*sg_map, GFP_ATOMIC);
if (sg_map == NULL)
return;
@@ -4970,7 +4970,7 @@ ahc_alloc_scbs(struct ahc_softc *ahc)
for (i = 0; i < newcount; i++) {
struct scb_platform_data *pdata;
- pdata = kmalloc(sizeof(*pdata), GFP_ATOMIC);
+ pdata = kmalloc_obj(*pdata, GFP_ATOMIC);
if (pdata == NULL)
break;
next_scb->platform_data = pdata;
@@ -7488,7 +7488,7 @@ ahc_handle_en_lun(struct ahc_softc *ahc, struct cam_sim *sim, union ccb *ccb)
return;
}
}
- lstate = kzalloc(sizeof(*lstate), GFP_ATOMIC);
+ lstate = kzalloc_obj(*lstate, GFP_ATOMIC);
if (lstate == NULL) {
xpt_print_path(ccb->ccb_h.path);
printk("Couldn't allocate lstate\n");
diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.c b/drivers/scsi/aic7xxx/aic7xxx_osm.c
index c71f80f8fa34..d93b522695eb 100644
--- a/drivers/scsi/aic7xxx/aic7xxx_osm.c
+++ b/drivers/scsi/aic7xxx/aic7xxx_osm.c
@@ -823,7 +823,7 @@ ahc_dma_tag_create(struct ahc_softc *ahc, bus_dma_tag_t parent,
{
bus_dma_tag_t dmat;
- dmat = kmalloc(sizeof(*dmat), GFP_ATOMIC);
+ dmat = kmalloc_obj(*dmat, GFP_ATOMIC);
if (dmat == NULL)
return (ENOMEM);
@@ -1201,7 +1201,7 @@ ahc_platform_alloc(struct ahc_softc *ahc, void *platform_arg)
{
ahc->platform_data =
- kzalloc(sizeof(struct ahc_platform_data), GFP_ATOMIC);
+ kzalloc_obj(struct ahc_platform_data, GFP_ATOMIC);
if (ahc->platform_data == NULL)
return (ENOMEM);
ahc->platform_data->irq = AHC_LINUX_NOIRQ;
diff --git a/drivers/scsi/aic7xxx/aic7xxx_proc.c b/drivers/scsi/aic7xxx/aic7xxx_proc.c
index 4bc9e2dfccf6..3b2ba7b4d61b 100644
--- a/drivers/scsi/aic7xxx/aic7xxx_proc.c
+++ b/drivers/scsi/aic7xxx/aic7xxx_proc.c
@@ -255,8 +255,8 @@ ahc_proc_write_seeprom(struct Scsi_Host *shost, char *buffer, int length)
u_int start_addr;
if (ahc->seep_config == NULL) {
- ahc->seep_config = kmalloc(sizeof(*ahc->seep_config),
- GFP_ATOMIC);
+ ahc->seep_config = kmalloc_obj(*ahc->seep_config,
+ GFP_ATOMIC);
if (ahc->seep_config == NULL) {
printk("aic7xxx: Unable to allocate serial "
"eeprom buffer. Write failing\n");
diff --git a/drivers/scsi/aic94xx/aic94xx_hwi.c b/drivers/scsi/aic94xx/aic94xx_hwi.c
index e74393357025..caa9d7143894 100644
--- a/drivers/scsi/aic94xx/aic94xx_hwi.c
+++ b/drivers/scsi/aic94xx/aic94xx_hwi.c
@@ -272,8 +272,7 @@ static int asd_alloc_edbs(struct asd_ha_struct *asd_ha, gfp_t gfp_flags)
struct asd_seq_data *seq = &asd_ha->seq;
int i;
- seq->edb_arr = kmalloc_array(seq->num_edbs, sizeof(*seq->edb_arr),
- gfp_flags);
+ seq->edb_arr = kmalloc_objs(*seq->edb_arr, seq->num_edbs, gfp_flags);
if (!seq->edb_arr)
return -ENOMEM;
@@ -305,8 +304,7 @@ static int asd_alloc_escbs(struct asd_ha_struct *asd_ha,
struct asd_ascb *escb;
int i, escbs;
- seq->escb_arr = kmalloc_array(seq->num_escbs, sizeof(*seq->escb_arr),
- gfp_flags);
+ seq->escb_arr = kmalloc_objs(*seq->escb_arr, seq->num_escbs, gfp_flags);
if (!seq->escb_arr)
return -ENOMEM;
diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c
index 95f3620059f7..243f8d6166a5 100644
--- a/drivers/scsi/aic94xx/aic94xx_init.c
+++ b/drivers/scsi/aic94xx/aic94xx_init.c
@@ -642,9 +642,9 @@ static int asd_register_sas_ha(struct asd_ha_struct *asd_ha)
{
int i;
struct asd_sas_phy **sas_phys =
- kcalloc(ASD_MAX_PHYS, sizeof(*sas_phys), GFP_KERNEL);
+ kzalloc_objs(*sas_phys, ASD_MAX_PHYS, GFP_KERNEL);
struct asd_sas_port **sas_ports =
- kcalloc(ASD_MAX_PHYS, sizeof(*sas_ports), GFP_KERNEL);
+ kzalloc_objs(*sas_ports, ASD_MAX_PHYS, GFP_KERNEL);
if (!sas_phys || !sas_ports) {
kfree(sas_phys);
@@ -710,7 +710,7 @@ static int asd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
asd_dev = &asd_pcidev_data[asd_id];
- asd_ha = kzalloc(sizeof(*asd_ha), GFP_KERNEL);
+ asd_ha = kzalloc_obj(*asd_ha, GFP_KERNEL);
if (!asd_ha) {
asd_printk("out of memory\n");
goto Err_put;
diff --git a/drivers/scsi/aic94xx/aic94xx_sds.c b/drivers/scsi/aic94xx/aic94xx_sds.c
index 5def83c88f13..89d1e385af69 100644
--- a/drivers/scsi/aic94xx/aic94xx_sds.c
+++ b/drivers/scsi/aic94xx/aic94xx_sds.c
@@ -207,7 +207,7 @@ static int asd_get_bios_chim(struct asd_ha_struct *asd_ha,
goto out;
}
err = -ENOMEM;
- bc_struct = kmalloc(sizeof(*bc_struct), GFP_KERNEL);
+ bc_struct = kmalloc_obj(*bc_struct, GFP_KERNEL);
if (!bc_struct) {
asd_printk("no memory for bios_chim struct\n");
goto out;
@@ -341,7 +341,7 @@ int asd_read_ocm(struct asd_ha_struct *asd_ha)
if (asd_hwi_check_ocm_access(asd_ha))
return -1;
- dir = kmalloc(sizeof(*dir), GFP_KERNEL);
+ dir = kmalloc_obj(*dir, GFP_KERNEL);
if (!dir) {
asd_printk("no memory for ocm dir\n");
return -ENOMEM;
@@ -1040,7 +1040,7 @@ int asd_read_flash(struct asd_ha_struct *asd_ha)
if (err)
return err;
- flash_dir = kmalloc(sizeof(*flash_dir), GFP_KERNEL);
+ flash_dir = kmalloc_obj(*flash_dir, GFP_KERNEL);
if (!flash_dir)
return -ENOMEM;
diff --git a/drivers/scsi/am53c974.c b/drivers/scsi/am53c974.c
index 003e61831e33..734b5a9dcf5e 100644
--- a/drivers/scsi/am53c974.c
+++ b/drivers/scsi/am53c974.c
@@ -396,7 +396,7 @@ static int pci_esp_probe_one(struct pci_dev *pdev,
goto fail_disable_device;
}
- pep = kzalloc(sizeof(struct pci_esp_priv), GFP_KERNEL);
+ pep = kzalloc_obj(struct pci_esp_priv, GFP_KERNEL);
if (!pep) {
dev_printk(KERN_INFO, &pdev->dev,
"failed to allocate esp_priv\n");
diff --git a/drivers/scsi/arm/queue.c b/drivers/scsi/arm/queue.c
index 978df23ce188..2849f59b6015 100644
--- a/drivers/scsi/arm/queue.c
+++ b/drivers/scsi/arm/queue.c
@@ -71,7 +71,7 @@ int queue_initialise (Queue_t *queue)
* need to keep free lists or allocate this
* memory.
*/
- queue->alloc = q = kmalloc_array(nqueues, sizeof(QE_t), GFP_KERNEL);
+ queue->alloc = q = kmalloc_objs(QE_t, nqueues, GFP_KERNEL);
if (q) {
for (; nqueues; q++, nqueues--) {
SET_MAGIC(q, QUEUE_MAGIC_FREE);
diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
index a0e794ffc980..1242ae2694c1 100644
--- a/drivers/scsi/be2iscsi/be_main.c
+++ b/drivers/scsi/be2iscsi/be_main.c
@@ -303,7 +303,7 @@ static int beiscsi_eh_device_reset(struct scsi_cmnd *sc)
beiscsi_conn = conn->dd_data;
phba = beiscsi_conn->phba;
- inv_tbl = kzalloc(sizeof(*inv_tbl), GFP_ATOMIC);
+ inv_tbl = kzalloc_obj(*inv_tbl, GFP_ATOMIC);
if (!inv_tbl) {
spin_unlock_bh(&session->frwd_lock);
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_EH,
@@ -2476,25 +2476,23 @@ static int beiscsi_alloc_mem(struct beiscsi_hba *phba)
/* Allocate memory for wrb_context */
phwi_ctrlr = phba->phwi_ctrlr;
- phwi_ctrlr->wrb_context = kcalloc(phba->params.cxns_per_ctrl,
- sizeof(struct hwi_wrb_context),
- GFP_KERNEL);
+ phwi_ctrlr->wrb_context = kzalloc_objs(struct hwi_wrb_context,
+ phba->params.cxns_per_ctrl,
+ GFP_KERNEL);
if (!phwi_ctrlr->wrb_context) {
kfree(phba->phwi_ctrlr);
return -ENOMEM;
}
- phba->init_mem = kcalloc(SE_MEM_MAX, sizeof(*mem_descr),
- GFP_KERNEL);
+ phba->init_mem = kzalloc_objs(*mem_descr, SE_MEM_MAX, GFP_KERNEL);
if (!phba->init_mem) {
kfree(phwi_ctrlr->wrb_context);
kfree(phba->phwi_ctrlr);
return -ENOMEM;
}
- mem_arr_orig = kmalloc_array(BEISCSI_MAX_FRAGS_INIT,
- sizeof(*mem_arr_orig),
- GFP_KERNEL);
+ mem_arr_orig = kmalloc_objs(*mem_arr_orig, BEISCSI_MAX_FRAGS_INIT,
+ GFP_KERNEL);
if (!mem_arr_orig) {
kfree(phba->init_mem);
kfree(phwi_ctrlr->wrb_context);
@@ -2542,8 +2540,7 @@ static int beiscsi_alloc_mem(struct beiscsi_hba *phba)
} while (alloc_size);
mem_descr->num_elements = j;
mem_descr->size_in_bytes = phba->mem_req[i];
- mem_descr->mem_array = kmalloc_array(j, sizeof(*mem_arr),
- GFP_KERNEL);
+ mem_descr->mem_array = kmalloc_objs(*mem_arr, j, GFP_KERNEL);
if (!mem_descr->mem_array)
goto free_mem;
@@ -2629,9 +2626,9 @@ static int beiscsi_init_wrb_handle(struct beiscsi_hba *phba)
/* Allocate memory for WRBQ */
phwi_ctxt = phwi_ctrlr->phwi_ctxt;
- phwi_ctxt->be_wrbq = kcalloc(phba->params.cxns_per_ctrl,
- sizeof(struct be_queue_info),
- GFP_KERNEL);
+ phwi_ctxt->be_wrbq = kzalloc_objs(struct be_queue_info,
+ phba->params.cxns_per_ctrl,
+ GFP_KERNEL);
if (!phwi_ctxt->be_wrbq) {
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
"BM_%d : WRBQ Mem Alloc Failed\n");
@@ -2641,18 +2638,18 @@ static int beiscsi_init_wrb_handle(struct beiscsi_hba *phba)
for (index = 0; index < phba->params.cxns_per_ctrl; index++) {
pwrb_context = &phwi_ctrlr->wrb_context[index];
pwrb_context->pwrb_handle_base =
- kcalloc(phba->params.wrbs_per_cxn,
- sizeof(struct wrb_handle *),
- GFP_KERNEL);
+ kzalloc_objs(struct wrb_handle *,
+ phba->params.wrbs_per_cxn,
+ GFP_KERNEL);
if (!pwrb_context->pwrb_handle_base) {
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
"BM_%d : Mem Alloc Failed. Failing to load\n");
goto init_wrb_hndl_failed;
}
pwrb_context->pwrb_handle_basestd =
- kcalloc(phba->params.wrbs_per_cxn,
- sizeof(struct wrb_handle *),
- GFP_KERNEL);
+ kzalloc_objs(struct wrb_handle *,
+ phba->params.wrbs_per_cxn,
+ GFP_KERNEL);
if (!pwrb_context->pwrb_handle_basestd) {
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
"BM_%d : Mem Alloc Failed. Failing to load\n");
@@ -3363,9 +3360,8 @@ beiscsi_create_wrb_rings(struct beiscsi_hba *phba,
idx = 0;
mem_descr = phba->init_mem;
mem_descr += HWI_MEM_WRB;
- pwrb_arr = kmalloc_array(phba->params.cxns_per_ctrl,
- sizeof(*pwrb_arr),
- GFP_KERNEL);
+ pwrb_arr = kmalloc_objs(*pwrb_arr, phba->params.cxns_per_ctrl,
+ GFP_KERNEL);
if (!pwrb_arr) {
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
"BM_%d : Memory alloc failed in create wrb ring.\n");
@@ -3902,18 +3898,18 @@ static int beiscsi_init_sgl_handle(struct beiscsi_hba *phba)
mem_descr_sglh = phba->init_mem;
mem_descr_sglh += HWI_MEM_SGLH;
if (1 == mem_descr_sglh->num_elements) {
- phba->io_sgl_hndl_base = kcalloc(phba->params.ios_per_ctrl,
- sizeof(struct sgl_handle *),
- GFP_KERNEL);
+ phba->io_sgl_hndl_base = kzalloc_objs(struct sgl_handle *,
+ phba->params.ios_per_ctrl,
+ GFP_KERNEL);
if (!phba->io_sgl_hndl_base) {
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
"BM_%d : Mem Alloc Failed. Failing to load\n");
return -ENOMEM;
}
phba->eh_sgl_hndl_base =
- kcalloc(phba->params.icds_per_ctrl -
- phba->params.ios_per_ctrl,
- sizeof(struct sgl_handle *), GFP_KERNEL);
+ kzalloc_objs(struct sgl_handle *,
+ phba->params.icds_per_ctrl - phba->params.ios_per_ctrl,
+ GFP_KERNEL);
if (!phba->eh_sgl_hndl_base) {
kfree(phba->io_sgl_hndl_base);
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
@@ -4004,8 +4000,8 @@ static int hba_setup_cid_tbls(struct beiscsi_hba *phba)
for (ulp_num = 0; ulp_num < BEISCSI_ULP_COUNT; ulp_num++) {
if (test_bit(ulp_num, (void *)&phba->fw_config.ulp_supported)) {
- ptr_cid_info = kzalloc(sizeof(struct ulp_cid_info),
- GFP_KERNEL);
+ ptr_cid_info = kzalloc_obj(struct ulp_cid_info,
+ GFP_KERNEL);
if (!ptr_cid_info) {
ret = -ENOMEM;
@@ -4031,18 +4027,16 @@ static int hba_setup_cid_tbls(struct beiscsi_hba *phba)
phba->cid_array_info[ulp_num] = ptr_cid_info;
}
}
- phba->ep_array = kcalloc(phba->params.cxns_per_ctrl,
- sizeof(struct iscsi_endpoint *),
- GFP_KERNEL);
+ phba->ep_array = kzalloc_objs(struct iscsi_endpoint *,
+ phba->params.cxns_per_ctrl, GFP_KERNEL);
if (!phba->ep_array) {
ret = -ENOMEM;
goto free_memory;
}
- phba->conn_table = kcalloc(phba->params.cxns_per_ctrl,
- sizeof(struct beiscsi_conn *),
- GFP_KERNEL);
+ phba->conn_table = kzalloc_objs(struct beiscsi_conn *,
+ phba->params.cxns_per_ctrl, GFP_KERNEL);
if (!phba->conn_table) {
kfree(phba->ep_array);
phba->ep_array = NULL;
diff --git a/drivers/scsi/bfa/bfa_fcs_lport.c b/drivers/scsi/bfa/bfa_fcs_lport.c
index 9a85f417018f..9285e9922ea8 100644
--- a/drivers/scsi/bfa/bfa_fcs_lport.c
+++ b/drivers/scsi/bfa/bfa_fcs_lport.c
@@ -1863,7 +1863,7 @@ bfa_fcs_lport_fdmi_build_rhba_pyld(struct bfa_fcs_lport_fdmi_s *fdmi, u8 *pyld)
u8 *curr_ptr;
u16 templen, count;
- fcs_hba_attr = kzalloc(sizeof(*fcs_hba_attr), GFP_KERNEL);
+ fcs_hba_attr = kzalloc_obj(*fcs_hba_attr, GFP_KERNEL);
if (!fcs_hba_attr)
return -ENOMEM;
diff --git a/drivers/scsi/bfa/bfad.c b/drivers/scsi/bfa/bfad.c
index bdfd06516671..629942abc5ca 100644
--- a/drivers/scsi/bfa/bfad.c
+++ b/drivers/scsi/bfa/bfad.c
@@ -473,7 +473,7 @@ bfa_fcb_rport_alloc(struct bfad_s *bfad, struct bfa_fcs_rport_s **rport,
{
bfa_status_t rc = BFA_STATUS_OK;
- *rport_drv = kzalloc(sizeof(struct bfad_rport_s), GFP_ATOMIC);
+ *rport_drv = kzalloc_obj(struct bfad_rport_s, GFP_ATOMIC);
if (*rport_drv == NULL) {
rc = BFA_STATUS_ENOMEM;
goto ext;
@@ -496,7 +496,7 @@ bfa_fcb_pbc_vport_create(struct bfad_s *bfad, struct bfi_pbc_vport_s pbc_vport)
struct bfad_vport_s *vport;
int rc;
- vport = kzalloc(sizeof(struct bfad_vport_s), GFP_ATOMIC);
+ vport = kzalloc_obj(struct bfad_vport_s, GFP_ATOMIC);
if (!vport) {
bfa_trc(bfad, 0);
return;
@@ -640,7 +640,7 @@ bfad_vport_create(struct bfad_s *bfad, u16 vf_id,
unsigned long flags;
struct completion fcomp;
- vport = kzalloc(sizeof(struct bfad_vport_s), GFP_KERNEL);
+ vport = kzalloc_obj(struct bfad_vport_s, GFP_KERNEL);
if (!vport) {
rc = BFA_STATUS_ENOMEM;
goto ext;
@@ -1271,13 +1271,13 @@ bfad_pci_probe(struct pci_dev *pdev, const struct pci_device_id *pid)
(PCI_FUNC(pdev->devfn) != 0))
return -ENODEV;
- bfad = kzalloc(sizeof(struct bfad_s), GFP_KERNEL);
+ bfad = kzalloc_obj(struct bfad_s, GFP_KERNEL);
if (!bfad) {
error = -ENOMEM;
goto out;
}
- bfad->trcmod = kzalloc(sizeof(struct bfa_trc_mod_s), GFP_KERNEL);
+ bfad->trcmod = kzalloc_obj(struct bfa_trc_mod_s, GFP_KERNEL);
if (!bfad->trcmod) {
printk(KERN_WARNING "Error alloc trace buffer!\n");
error = -ENOMEM;
diff --git a/drivers/scsi/bfa/bfad_attr.c b/drivers/scsi/bfa/bfad_attr.c
index 54bc1539e1e9..50f975d63c07 100644
--- a/drivers/scsi/bfa/bfad_attr.c
+++ b/drivers/scsi/bfa/bfad_attr.c
@@ -264,7 +264,7 @@ bfad_im_get_stats(struct Scsi_Host *shost)
bfa_status_t rc;
unsigned long flags;
- fcstats = kzalloc(sizeof(union bfa_port_stats_u), GFP_KERNEL);
+ fcstats = kzalloc_obj(union bfa_port_stats_u, GFP_KERNEL);
if (fcstats == NULL)
return NULL;
@@ -907,8 +907,7 @@ bfad_im_num_of_discovered_ports_show(struct device *dev,
struct bfa_rport_qualifier_s *rports = NULL;
unsigned long flags;
- rports = kcalloc(nrports, sizeof(struct bfa_rport_qualifier_s),
- GFP_ATOMIC);
+ rports = kzalloc_objs(struct bfa_rport_qualifier_s, nrports, GFP_ATOMIC);
if (rports == NULL)
return sysfs_emit(buf, "Failed\n");
diff --git a/drivers/scsi/bfa/bfad_bsg.c b/drivers/scsi/bfa/bfad_bsg.c
index 54bd11e6d593..0a33657e67d5 100644
--- a/drivers/scsi/bfa/bfad_bsg.c
+++ b/drivers/scsi/bfa/bfad_bsg.c
@@ -3410,7 +3410,7 @@ bfad_im_bsg_els_ct_request(struct bsg_job *job)
goto out;
}
- drv_fcxp = kzalloc(sizeof(struct bfad_fcxp), GFP_KERNEL);
+ drv_fcxp = kzalloc_obj(struct bfad_fcxp, GFP_KERNEL);
if (drv_fcxp == NULL) {
kfree(bsg_fcpt);
rc = -ENOMEM;
diff --git a/drivers/scsi/bfa/bfad_debugfs.c b/drivers/scsi/bfa/bfad_debugfs.c
index f6dd077d47c9..335f5f6a96fa 100644
--- a/drivers/scsi/bfa/bfad_debugfs.c
+++ b/drivers/scsi/bfa/bfad_debugfs.c
@@ -46,7 +46,7 @@ bfad_debugfs_open_drvtrc(struct inode *inode, struct file *file)
struct bfad_s *bfad = port->bfad;
struct bfad_debug_info *debug;
- debug = kzalloc(sizeof(struct bfad_debug_info), GFP_KERNEL);
+ debug = kzalloc_obj(struct bfad_debug_info, GFP_KERNEL);
if (!debug)
return -ENOMEM;
@@ -67,7 +67,7 @@ bfad_debugfs_open_fwtrc(struct inode *inode, struct file *file)
unsigned long flags;
int rc;
- fw_debug = kzalloc(sizeof(struct bfad_debug_info), GFP_KERNEL);
+ fw_debug = kzalloc_obj(struct bfad_debug_info, GFP_KERNEL);
if (!fw_debug)
return -ENOMEM;
@@ -109,7 +109,7 @@ bfad_debugfs_open_fwsave(struct inode *inode, struct file *file)
unsigned long flags;
int rc;
- fw_debug = kzalloc(sizeof(struct bfad_debug_info), GFP_KERNEL);
+ fw_debug = kzalloc_obj(struct bfad_debug_info, GFP_KERNEL);
if (!fw_debug)
return -ENOMEM;
@@ -147,7 +147,7 @@ bfad_debugfs_open_reg(struct inode *inode, struct file *file)
{
struct bfad_debug_info *reg_debug;
- reg_debug = kzalloc(sizeof(struct bfad_debug_info), GFP_KERNEL);
+ reg_debug = kzalloc_obj(struct bfad_debug_info, GFP_KERNEL);
if (!reg_debug)
return -ENOMEM;
diff --git a/drivers/scsi/bfa/bfad_im.c b/drivers/scsi/bfa/bfad_im.c
index 6c84982c4726..1feb2a9517c7 100644
--- a/drivers/scsi/bfa/bfad_im.c
+++ b/drivers/scsi/bfa/bfad_im.c
@@ -426,7 +426,7 @@ int
bfa_fcb_itnim_alloc(struct bfad_s *bfad, struct bfa_fcs_itnim_s **itnim,
struct bfad_itnim_s **itnim_drv)
{
- *itnim_drv = kzalloc(sizeof(struct bfad_itnim_s), GFP_ATOMIC);
+ *itnim_drv = kzalloc_obj(struct bfad_itnim_s, GFP_ATOMIC);
if (*itnim_drv == NULL)
return -ENOMEM;
@@ -622,7 +622,7 @@ bfad_im_port_new(struct bfad_s *bfad, struct bfad_port_s *port)
int rc = BFA_STATUS_OK;
struct bfad_im_port_s *im_port;
- im_port = kzalloc(sizeof(struct bfad_im_port_s), GFP_ATOMIC);
+ im_port = kzalloc_obj(struct bfad_im_port_s, GFP_ATOMIC);
if (im_port == NULL) {
rc = BFA_STATUS_ENOMEM;
goto ext;
@@ -698,7 +698,7 @@ bfad_im_probe(struct bfad_s *bfad)
{
struct bfad_im_s *im;
- im = kzalloc(sizeof(struct bfad_im_s), GFP_KERNEL);
+ im = kzalloc_obj(struct bfad_im_s, GFP_KERNEL);
if (im == NULL)
return BFA_STATUS_ENOMEM;
@@ -994,7 +994,7 @@ bfad_im_supported_speeds(struct bfa_s *bfa)
struct bfa_ioc_attr_s *ioc_attr;
u32 supported_speed = 0;
- ioc_attr = kzalloc(sizeof(struct bfa_ioc_attr_s), GFP_KERNEL);
+ ioc_attr = kzalloc_obj(struct bfa_ioc_attr_s, GFP_KERNEL);
if (!ioc_attr)
return 0;
diff --git a/drivers/scsi/bnx2fc/bnx2fc_els.c b/drivers/scsi/bnx2fc/bnx2fc_els.c
index 754f2e82d955..749e30aaf926 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_els.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_els.c
@@ -80,7 +80,7 @@ int bnx2fc_send_rrq(struct bnx2fc_cmd *aborted_io_req)
aborted_io_req->xid);
memset(&rrq, 0, sizeof(rrq));
- cb_arg = kzalloc(sizeof(struct bnx2fc_els_cb_arg), GFP_NOIO);
+ cb_arg = kzalloc_obj(struct bnx2fc_els_cb_arg, GFP_NOIO);
if (!cb_arg) {
printk(KERN_ERR PFX "Unable to allocate cb_arg for RRQ\n");
rc = -ENOMEM;
@@ -189,7 +189,7 @@ int bnx2fc_send_adisc(struct bnx2fc_rport *tgt, struct fc_frame *fp)
int rc;
fh = fc_frame_header_get(fp);
- cb_arg = kzalloc(sizeof(struct bnx2fc_els_cb_arg), GFP_ATOMIC);
+ cb_arg = kzalloc_obj(struct bnx2fc_els_cb_arg, GFP_ATOMIC);
if (!cb_arg) {
printk(KERN_ERR PFX "Unable to allocate cb_arg for ADISC\n");
return -ENOMEM;
@@ -217,7 +217,7 @@ int bnx2fc_send_logo(struct bnx2fc_rport *tgt, struct fc_frame *fp)
int rc;
fh = fc_frame_header_get(fp);
- cb_arg = kzalloc(sizeof(struct bnx2fc_els_cb_arg), GFP_ATOMIC);
+ cb_arg = kzalloc_obj(struct bnx2fc_els_cb_arg, GFP_ATOMIC);
if (!cb_arg) {
printk(KERN_ERR PFX "Unable to allocate cb_arg for LOGO\n");
return -ENOMEM;
@@ -245,7 +245,7 @@ int bnx2fc_send_rls(struct bnx2fc_rport *tgt, struct fc_frame *fp)
int rc;
fh = fc_frame_header_get(fp);
- cb_arg = kzalloc(sizeof(struct bnx2fc_els_cb_arg), GFP_ATOMIC);
+ cb_arg = kzalloc_obj(struct bnx2fc_els_cb_arg, GFP_ATOMIC);
if (!cb_arg) {
printk(KERN_ERR PFX "Unable to allocate cb_arg for LOGO\n");
return -ENOMEM;
@@ -592,7 +592,7 @@ int bnx2fc_send_rec(struct bnx2fc_cmd *orig_io_req)
BNX2FC_IO_DBG(orig_io_req, "Sending REC\n");
memset(&rec, 0, sizeof(rec));
- cb_arg = kzalloc(sizeof(struct bnx2fc_els_cb_arg), GFP_ATOMIC);
+ cb_arg = kzalloc_obj(struct bnx2fc_els_cb_arg, GFP_ATOMIC);
if (!cb_arg) {
printk(KERN_ERR PFX "Unable to allocate cb_arg for REC\n");
rc = -ENOMEM;
@@ -633,7 +633,7 @@ int bnx2fc_send_srr(struct bnx2fc_cmd *orig_io_req, u32 offset, u8 r_ctl)
BNX2FC_IO_DBG(orig_io_req, "Sending SRR\n");
memset(&srr, 0, sizeof(srr));
- cb_arg = kzalloc(sizeof(struct bnx2fc_els_cb_arg), GFP_ATOMIC);
+ cb_arg = kzalloc_obj(struct bnx2fc_els_cb_arg, GFP_ATOMIC);
if (!cb_arg) {
printk(KERN_ERR PFX "Unable to allocate cb_arg for SRR\n");
rc = -ENOMEM;
diff --git a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
index 0f68739d380a..84f7f7ef75b3 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
@@ -1356,7 +1356,7 @@ static struct bnx2fc_hba *bnx2fc_hba_create(struct cnic_dev *cnic)
struct fcoe_capabilities *fcoe_cap;
int rc;
- hba = kzalloc(sizeof(*hba), GFP_KERNEL);
+ hba = kzalloc_obj(*hba, GFP_KERNEL);
if (!hba) {
printk(KERN_ERR PFX "Unable to allocate hba structure\n");
return NULL;
@@ -1381,8 +1381,8 @@ static struct bnx2fc_hba *bnx2fc_hba_create(struct cnic_dev *cnic)
hba->next_conn_id = 0;
hba->tgt_ofld_list =
- kcalloc(BNX2FC_NUM_MAX_SESS, sizeof(struct bnx2fc_rport *),
- GFP_KERNEL);
+ kzalloc_objs(struct bnx2fc_rport *, BNX2FC_NUM_MAX_SESS,
+ GFP_KERNEL);
if (!hba->tgt_ofld_list) {
printk(KERN_ERR PFX "Unable to allocate tgt offload list\n");
goto tgtofld_err;
@@ -1492,7 +1492,7 @@ static struct fc_lport *bnx2fc_if_create(struct bnx2fc_interface *interface,
struct bnx2fc_hba *hba = interface->hba;
int rc = 0;
- blport = kzalloc(sizeof(struct bnx2fc_lport), GFP_KERNEL);
+ blport = kzalloc_obj(struct bnx2fc_lport, GFP_KERNEL);
if (!blport) {
BNX2FC_HBA_DBG(ctlr->lp, "Unable to alloc blport\n");
return NULL;
@@ -2200,7 +2200,7 @@ static int __bnx2fc_enable(struct fcoe_ctlr *ctlr)
if (!hba->cnic->get_fc_npiv_tbl)
goto done;
- npiv_tbl = kzalloc(sizeof(struct cnic_fc_npiv_tbl), GFP_KERNEL);
+ npiv_tbl = kzalloc_obj(struct cnic_fc_npiv_tbl, GFP_KERNEL);
if (!npiv_tbl)
goto done;
diff --git a/drivers/scsi/bnx2fc/bnx2fc_hwi.c b/drivers/scsi/bnx2fc/bnx2fc_hwi.c
index 090d436bcef8..a5ecb87d5b2d 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_hwi.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_hwi.c
@@ -561,7 +561,7 @@ void bnx2fc_process_l2_frame_compl(struct bnx2fc_rport *tgt,
u8 op;
- unsol_els = kzalloc(sizeof(*unsol_els), GFP_ATOMIC);
+ unsol_els = kzalloc_obj(*unsol_els, GFP_ATOMIC);
if (!unsol_els) {
BNX2FC_TGT_DBG(tgt, "Unable to allocate unsol_work\n");
return;
@@ -972,7 +972,7 @@ static struct bnx2fc_work *bnx2fc_alloc_work(struct bnx2fc_rport *tgt, u16 wqe,
struct fcoe_task_ctx_entry *task)
{
struct bnx2fc_work *work;
- work = kzalloc(sizeof(struct bnx2fc_work), GFP_ATOMIC);
+ work = kzalloc_obj(struct bnx2fc_work, GFP_ATOMIC);
if (!work)
return NULL;
diff --git a/drivers/scsi/bnx2fc/bnx2fc_io.c b/drivers/scsi/bnx2fc/bnx2fc_io.c
index 90b2b54c549a..ba299196dee9 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_io.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_io.c
@@ -241,15 +241,14 @@ struct bnx2fc_cmd_mgr *bnx2fc_cmd_mgr_alloc(struct bnx2fc_hba *hba)
}
cmgr->hba = hba;
- cmgr->free_list = kcalloc(arr_sz, sizeof(*cmgr->free_list),
- GFP_KERNEL);
+ cmgr->free_list = kzalloc_objs(*cmgr->free_list, arr_sz, GFP_KERNEL);
if (!cmgr->free_list) {
printk(KERN_ERR PFX "failed to alloc free_list\n");
goto mem_err;
}
- cmgr->free_list_lock = kcalloc(arr_sz, sizeof(*cmgr->free_list_lock),
- GFP_KERNEL);
+ cmgr->free_list_lock = kzalloc_objs(*cmgr->free_list_lock, arr_sz,
+ GFP_KERNEL);
if (!cmgr->free_list_lock) {
printk(KERN_ERR PFX "failed to alloc free_list_lock\n");
kfree(cmgr->free_list);
@@ -272,7 +271,7 @@ struct bnx2fc_cmd_mgr *bnx2fc_cmd_mgr_alloc(struct bnx2fc_hba *hba)
xid = BNX2FC_MIN_XID;
num_pri_ios = num_ios - hba->elstm_xids;
for (i = 0; i < num_ios; i++) {
- io_req = kzalloc(sizeof(*io_req), GFP_KERNEL);
+ io_req = kzalloc_obj(*io_req, GFP_KERNEL);
if (!io_req) {
printk(KERN_ERR PFX "failed to alloc io_req\n");
@@ -942,7 +941,7 @@ int bnx2fc_initiate_seq_cleanup(struct bnx2fc_cmd *orig_io_req, u32 offset,
port = orig_io_req->port;
interface = port->priv;
- cb_arg = kzalloc(sizeof(struct bnx2fc_els_cb_arg), GFP_ATOMIC);
+ cb_arg = kzalloc_obj(struct bnx2fc_els_cb_arg, GFP_ATOMIC);
if (!cb_arg) {
printk(KERN_ERR PFX "Unable to alloc cb_arg for seq clnup\n");
rc = -ENOMEM;
diff --git a/drivers/scsi/bnx2i/bnx2i_hwi.c b/drivers/scsi/bnx2i/bnx2i_hwi.c
index 40db5190a222..d24cc2c795d6 100644
--- a/drivers/scsi/bnx2i/bnx2i_hwi.c
+++ b/drivers/scsi/bnx2i/bnx2i_hwi.c
@@ -1925,7 +1925,7 @@ static int bnx2i_queue_scsi_cmd_resp(struct iscsi_session *session,
goto err;
}
/* Alloc and copy to the cqe */
- bnx2i_work = kzalloc(sizeof(struct bnx2i_work), GFP_ATOMIC);
+ bnx2i_work = kzalloc_obj(struct bnx2i_work, GFP_ATOMIC);
if (bnx2i_work) {
INIT_LIST_HEAD(&bnx2i_work->list);
bnx2i_work->session = session;
diff --git a/drivers/scsi/bvme6000_scsi.c b/drivers/scsi/bvme6000_scsi.c
index baf5f4e47937..f276f4f4eadf 100644
--- a/drivers/scsi/bvme6000_scsi.c
+++ b/drivers/scsi/bvme6000_scsi.c
@@ -44,7 +44,7 @@ bvme6000_probe(struct platform_device *dev)
if (!MACH_IS_BVME6000)
goto out;
- hostdata = kzalloc(sizeof(struct NCR_700_Host_Parameters), GFP_KERNEL);
+ hostdata = kzalloc_obj(struct NCR_700_Host_Parameters, GFP_KERNEL);
if (!hostdata) {
printk(KERN_ERR "bvme6000-scsi: "
"Failed to allocate host data\n");
diff --git a/drivers/scsi/ch.c b/drivers/scsi/ch.c
index b6ca23a29ef5..3a6ab2d09ded 100644
--- a/drivers/scsi/ch.c
+++ b/drivers/scsi/ch.c
@@ -364,8 +364,7 @@ ch_readconfig(scsi_changer *ch)
}
/* look up the devices of the data transfer elements */
- ch->dt = kcalloc(ch->counts[CHET_DT], sizeof(*ch->dt),
- GFP_KERNEL);
+ ch->dt = kzalloc_objs(*ch->dt, ch->counts[CHET_DT], GFP_KERNEL);
if (!ch->dt) {
kfree(buffer);
@@ -904,7 +903,7 @@ static int ch_probe(struct scsi_device *sd)
if (sd->type != TYPE_MEDIUM_CHANGER)
return -ENODEV;
- ch = kzalloc(sizeof(*ch), GFP_KERNEL);
+ ch = kzalloc_obj(*ch, GFP_KERNEL);
if (NULL == ch)
return -ENOMEM;
diff --git a/drivers/scsi/csiostor/csio_hw.c b/drivers/scsi/csiostor/csio_hw.c
index 7aa418ebfe01..03299d5e523a 100644
--- a/drivers/scsi/csiostor/csio_hw.c
+++ b/drivers/scsi/csiostor/csio_hw.c
@@ -2429,7 +2429,7 @@ csio_hw_flash_fw(struct csio_hw *hw, int *reset)
/* allocate memory to read the header of the firmware on the
* card
*/
- card_fw = kmalloc(sizeof(*card_fw), GFP_KERNEL);
+ card_fw = kmalloc_obj(*card_fw, GFP_KERNEL);
if (!card_fw)
return -ENOMEM;
@@ -4389,7 +4389,7 @@ csio_hw_init(struct csio_hw *hw)
INIT_LIST_HEAD(&hw->evt_free_q);
for (i = 0; i < csio_evtq_sz; i++) {
- evt_entry = kzalloc(sizeof(struct csio_evt_msg), GFP_KERNEL);
+ evt_entry = kzalloc_obj(struct csio_evt_msg, GFP_KERNEL);
if (!evt_entry) {
rv = -ENOMEM;
csio_err(hw, "Failed to initialize eventq");
diff --git a/drivers/scsi/csiostor/csio_init.c b/drivers/scsi/csiostor/csio_init.c
index db0c2174430a..1d2fcccb46c2 100644
--- a/drivers/scsi/csiostor/csio_init.c
+++ b/drivers/scsi/csiostor/csio_init.c
@@ -516,7 +516,7 @@ static struct csio_hw *csio_hw_alloc(struct pci_dev *pdev)
{
struct csio_hw *hw;
- hw = kzalloc(sizeof(struct csio_hw), GFP_KERNEL);
+ hw = kzalloc_obj(struct csio_hw, GFP_KERNEL);
if (!hw)
goto err;
diff --git a/drivers/scsi/csiostor/csio_lnode.c b/drivers/scsi/csiostor/csio_lnode.c
index 6cc1d53165a0..cdd61b990c64 100644
--- a/drivers/scsi/csiostor/csio_lnode.c
+++ b/drivers/scsi/csiostor/csio_lnode.c
@@ -1837,7 +1837,7 @@ csio_ln_fdmi_init(struct csio_lnode *ln)
struct csio_dma_buf *dma_buf;
/* Allocate MGMT request required for FDMI */
- ln->mgmt_req = kzalloc(sizeof(struct csio_ioreq), GFP_KERNEL);
+ ln->mgmt_req = kzalloc_obj(struct csio_ioreq, GFP_KERNEL);
if (!ln->mgmt_req) {
csio_ln_err(ln, "Failed to alloc ioreq for FDMI\n");
CSIO_INC_STATS(hw, n_err_nomem);
@@ -2002,7 +2002,7 @@ csio_ln_init(struct csio_lnode *ln)
/* This is the lnode used during initialization */
- ln->fcfinfo = kzalloc(sizeof(struct csio_fcf_info), GFP_KERNEL);
+ ln->fcfinfo = kzalloc_obj(struct csio_fcf_info, GFP_KERNEL);
if (!ln->fcfinfo) {
csio_ln_err(ln, "Failed to alloc FCF record\n");
CSIO_INC_STATS(hw, n_err_nomem);
@@ -2029,8 +2029,8 @@ csio_ln_init(struct csio_lnode *ln)
ln->fcfinfo = pln->fcfinfo;
} else {
/* Another non-root physical lnode (FCF) */
- ln->fcfinfo = kzalloc(sizeof(struct csio_fcf_info),
- GFP_KERNEL);
+ ln->fcfinfo = kzalloc_obj(struct csio_fcf_info,
+ GFP_KERNEL);
if (!ln->fcfinfo) {
csio_ln_err(ln, "Failed to alloc FCF info\n");
CSIO_INC_STATS(hw, n_err_nomem);
diff --git a/drivers/scsi/csiostor/csio_scsi.c b/drivers/scsi/csiostor/csio_scsi.c
index 05137784f369..2c75c2663f73 100644
--- a/drivers/scsi/csiostor/csio_scsi.c
+++ b/drivers/scsi/csiostor/csio_scsi.c
@@ -2341,7 +2341,7 @@ csio_scsi_alloc_ddp_bufs(struct csio_scsim *scm, struct csio_hw *hw,
for (n = 0; n < num_buf; n++) {
/* Set unit size to request size */
unit_size = buf_size;
- ddp_desc = kzalloc(sizeof(struct csio_dma_buf), GFP_KERNEL);
+ ddp_desc = kzalloc_obj(struct csio_dma_buf, GFP_KERNEL);
if (!ddp_desc) {
csio_err(hw,
"Failed to allocate ddp descriptors,"
@@ -2435,7 +2435,7 @@ csio_scsim_init(struct csio_scsim *scm, struct csio_hw *hw)
INIT_LIST_HEAD(&scm->ioreq_freelist);
for (i = 0; i < csio_scsi_ioreqs; i++) {
- ioreq = kzalloc(sizeof(struct csio_ioreq), GFP_KERNEL);
+ ioreq = kzalloc_obj(struct csio_ioreq, GFP_KERNEL);
if (!ioreq) {
csio_err(hw,
"I/O request element allocation failed, "
diff --git a/drivers/scsi/csiostor/csio_wr.c b/drivers/scsi/csiostor/csio_wr.c
index 010a1df37f15..0310fa71ab07 100644
--- a/drivers/scsi/csiostor/csio_wr.c
+++ b/drivers/scsi/csiostor/csio_wr.c
@@ -278,9 +278,8 @@ csio_wr_alloc_q(struct csio_hw *hw, uint32_t qsize, uint32_t wrsize,
q->un.iq.flq_idx = flq_idx;
flq = wrm->q_arr[q->un.iq.flq_idx];
- flq->un.fl.bufs = kcalloc(flq->credits,
- sizeof(struct csio_dma_buf),
- GFP_KERNEL);
+ flq->un.fl.bufs = kzalloc_objs(struct csio_dma_buf,
+ flq->credits, GFP_KERNEL);
if (!flq->un.fl.bufs) {
csio_err(hw,
"Failed to allocate FL queue bufs"
@@ -1651,12 +1650,12 @@ csio_wrm_init(struct csio_wrm *wrm, struct csio_hw *hw)
return -EINVAL;
}
- wrm->q_arr = kcalloc(wrm->num_q, sizeof(struct csio_q *), GFP_KERNEL);
+ wrm->q_arr = kzalloc_objs(struct csio_q *, wrm->num_q, GFP_KERNEL);
if (!wrm->q_arr)
goto err;
for (i = 0; i < wrm->num_q; i++) {
- wrm->q_arr[i] = kzalloc(sizeof(struct csio_q), GFP_KERNEL);
+ wrm->q_arr[i] = kzalloc_obj(struct csio_q, GFP_KERNEL);
if (!wrm->q_arr[i]) {
while (--i >= 0)
kfree(wrm->q_arr[i]);
diff --git a/drivers/scsi/cxgbi/libcxgbi.c b/drivers/scsi/cxgbi/libcxgbi.c
index bf75940f2be1..ea9631bfe2e2 100644
--- a/drivers/scsi/cxgbi/libcxgbi.c
+++ b/drivers/scsi/cxgbi/libcxgbi.c
@@ -556,7 +556,7 @@ EXPORT_SYMBOL_GPL(cxgbi_sock_free_cpl_skbs);
static struct cxgbi_sock *cxgbi_sock_create(struct cxgbi_device *cdev)
{
- struct cxgbi_sock *csk = kzalloc(sizeof(*csk), GFP_NOIO);
+ struct cxgbi_sock *csk = kzalloc_obj(*csk, GFP_NOIO);
if (!csk) {
pr_info("alloc csk %zu failed.\n", sizeof(*csk));
diff --git a/drivers/scsi/dc395x.c b/drivers/scsi/dc395x.c
index 9dc499c89d3e..6183ce05d8cf 100644
--- a/drivers/scsi/dc395x.c
+++ b/drivers/scsi/dc395x.c
@@ -2990,7 +2990,7 @@ static struct DeviceCtlBlk *device_alloc(struct AdapterCtlBlk *acb,
u8 period_index = eeprom->target[target].period & 0x07;
struct DeviceCtlBlk *dcb;
- dcb = kmalloc(sizeof(struct DeviceCtlBlk), GFP_ATOMIC);
+ dcb = kmalloc_obj(struct DeviceCtlBlk, GFP_ATOMIC);
if (!dcb)
return NULL;
dcb->acb = NULL;
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c
index 6fd89ae33059..842476f131fd 100644
--- a/drivers/scsi/device_handler/scsi_dh_alua.c
+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
@@ -219,7 +219,7 @@ static struct alua_port_group *alua_alloc_pg(struct scsi_device *sdev,
{
struct alua_port_group *pg, *tmp_pg;
- pg = kzalloc(sizeof(struct alua_port_group), GFP_KERNEL);
+ pg = kzalloc_obj(struct alua_port_group, GFP_KERNEL);
if (!pg)
return ERR_PTR(-ENOMEM);
@@ -1137,7 +1137,7 @@ static int alua_activate(struct scsi_device *sdev,
struct alua_queue_data *qdata;
struct alua_port_group *pg;
- qdata = kzalloc(sizeof(*qdata), GFP_KERNEL);
+ qdata = kzalloc_obj(*qdata, GFP_KERNEL);
if (!qdata) {
err = SCSI_DH_RES_TEMP_UNAVAIL;
goto out;
@@ -1239,7 +1239,7 @@ static int alua_bus_attach(struct scsi_device *sdev)
struct alua_dh_data *h;
int err;
- h = kzalloc(sizeof(*h) , GFP_KERNEL);
+ h = kzalloc_obj(*h, GFP_KERNEL);
if (!h)
return SCSI_DH_NOMEM;
spin_lock_init(&h->pg_lock);
diff --git a/drivers/scsi/device_handler/scsi_dh_emc.c b/drivers/scsi/device_handler/scsi_dh_emc.c
index 3cf88db2d5b2..5a2f6f09de07 100644
--- a/drivers/scsi/device_handler/scsi_dh_emc.c
+++ b/drivers/scsi/device_handler/scsi_dh_emc.c
@@ -478,7 +478,7 @@ static int clariion_bus_attach(struct scsi_device *sdev)
struct clariion_dh_data *h;
int err;
- h = kzalloc(sizeof(*h) , GFP_KERNEL);
+ h = kzalloc_obj(*h, GFP_KERNEL);
if (!h)
return SCSI_DH_NOMEM;
h->lun_state = CLARIION_LUN_UNINITIALIZED;
diff --git a/drivers/scsi/device_handler/scsi_dh_hp_sw.c b/drivers/scsi/device_handler/scsi_dh_hp_sw.c
index b6eaf49dfb00..36d877afff4b 100644
--- a/drivers/scsi/device_handler/scsi_dh_hp_sw.c
+++ b/drivers/scsi/device_handler/scsi_dh_hp_sw.c
@@ -226,7 +226,7 @@ static int hp_sw_bus_attach(struct scsi_device *sdev)
struct hp_sw_dh_data *h;
int ret;
- h = kzalloc(sizeof(*h), GFP_KERNEL);
+ h = kzalloc_obj(*h, GFP_KERNEL);
if (!h)
return SCSI_DH_NOMEM;
h->path_state = HP_SW_PATH_UNINITIALIZED;
diff --git a/drivers/scsi/device_handler/scsi_dh_rdac.c b/drivers/scsi/device_handler/scsi_dh_rdac.c
index 6e1b252cea0e..088dc509d505 100644
--- a/drivers/scsi/device_handler/scsi_dh_rdac.c
+++ b/drivers/scsi/device_handler/scsi_dh_rdac.c
@@ -336,7 +336,7 @@ static struct rdac_controller *get_controller(int index, char *array_name,
return tmp;
}
}
- ctlr = kmalloc(sizeof(*ctlr), GFP_ATOMIC);
+ ctlr = kmalloc_obj(*ctlr, GFP_ATOMIC);
if (!ctlr)
return NULL;
@@ -601,7 +601,7 @@ static int queue_mode_select(struct scsi_device *sdev,
struct rdac_queue_data *qdata;
struct rdac_controller *ctlr;
- qdata = kzalloc(sizeof(*qdata), GFP_KERNEL);
+ qdata = kzalloc_obj(*qdata, GFP_KERNEL);
if (!qdata)
return SCSI_DH_RETRY;
@@ -741,7 +741,7 @@ static int rdac_bus_attach(struct scsi_device *sdev)
char array_name[ARRAY_LABEL_LEN];
char array_id[UNIQUE_ID_LEN];
- h = kzalloc(sizeof(*h) , GFP_KERNEL);
+ h = kzalloc_obj(*h, GFP_KERNEL);
if (!h)
return SCSI_DH_NOMEM;
h->lun = UNINITIALIZED_LUN;
diff --git a/drivers/scsi/elx/efct/efct_driver.c b/drivers/scsi/elx/efct/efct_driver.c
index 528399f725d4..03c0dbee779f 100644
--- a/drivers/scsi/elx/efct/efct_driver.c
+++ b/drivers/scsi/elx/efct/efct_driver.c
@@ -93,7 +93,7 @@ efct_efclib_config(struct efct *efct, struct libefc_function_template *tt)
struct sli4 *sli;
int rc = 0;
- efc = kzalloc(sizeof(*efc), GFP_KERNEL);
+ efc = kzalloc_obj(*efc, GFP_KERNEL);
if (!efc)
return -ENOMEM;
diff --git a/drivers/scsi/elx/efct/efct_hw.c b/drivers/scsi/elx/efct/efct_hw.c
index 5b079b8b7a08..aba82cb69459 100644
--- a/drivers/scsi/elx/efct/efct_hw.c
+++ b/drivers/scsi/elx/efct/efct_hw.c
@@ -487,14 +487,14 @@ efct_hw_setup_io(struct efct_hw *hw)
struct efct *efct = hw->os;
if (!hw->io) {
- hw->io = kmalloc_array(hw->config.n_io, sizeof(io), GFP_KERNEL);
+ hw->io = kmalloc_objs(io, hw->config.n_io, GFP_KERNEL);
if (!hw->io)
return -ENOMEM;
memset(hw->io, 0, hw->config.n_io * sizeof(io));
for (i = 0; i < hw->config.n_io; i++) {
- hw->io[i] = kzalloc(sizeof(*io), GFP_KERNEL);
+ hw->io[i] = kzalloc_obj(*io, GFP_KERNEL);
if (!hw->io[i])
goto error;
}
@@ -611,7 +611,7 @@ efct_hw_init_prereg_io(struct efct_hw *hw)
struct efc_dma req;
struct efct *efct = hw->os;
- sgls = kmalloc_array(sgls_per_request, sizeof(*sgls), GFP_KERNEL);
+ sgls = kmalloc_objs(*sgls, sgls_per_request, GFP_KERNEL);
if (!sgls)
return -ENOMEM;
@@ -1182,7 +1182,7 @@ efct_hw_rx_buffer_alloc(struct efct_hw *hw, u32 rqindex, u32 count,
if (!count)
return NULL;
- rq_buf = kmalloc_array(count, sizeof(*rq_buf), GFP_KERNEL);
+ rq_buf = kmalloc_objs(*rq_buf, count, GFP_KERNEL);
if (!rq_buf)
return NULL;
memset(rq_buf, 0, sizeof(*rq_buf) * count);
@@ -1287,8 +1287,8 @@ efct_hw_rx_post(struct efct_hw *hw)
for (i = 0; i < hw->hw_rq_count; i++)
count += hw->hw_rq[i]->entry_count;
- hw->seq_pool = kmalloc_array(count,
- sizeof(struct efc_hw_sequence), GFP_KERNEL);
+ hw->seq_pool = kmalloc_objs(struct efc_hw_sequence, count,
+ GFP_KERNEL);
if (!hw->seq_pool)
return -ENOMEM;
}
@@ -2064,7 +2064,7 @@ efct_hw_reqtag_pool_alloc(struct efct_hw *hw)
struct reqtag_pool *reqtag_pool;
struct hw_wq_callback *wqcb;
- reqtag_pool = kzalloc(sizeof(*reqtag_pool), GFP_KERNEL);
+ reqtag_pool = kzalloc_obj(*reqtag_pool, GFP_KERNEL);
if (!reqtag_pool)
return NULL;
@@ -2072,7 +2072,7 @@ efct_hw_reqtag_pool_alloc(struct efct_hw *hw)
/* initialize reqtag pool lock */
spin_lock_init(&reqtag_pool->lock);
for (i = 0; i < U16_MAX; i++) {
- wqcb = kmalloc(sizeof(*wqcb), GFP_KERNEL);
+ wqcb = kmalloc_obj(*wqcb, GFP_KERNEL);
if (!wqcb)
break;
@@ -3105,7 +3105,7 @@ efct_hw_get_link_stats(struct efct_hw *hw, u8 req_ext_counters,
struct efct_hw_link_stat_cb_arg *cb_arg;
u8 mbxdata[SLI4_BMBX_SIZE];
- cb_arg = kzalloc(sizeof(*cb_arg), GFP_ATOMIC);
+ cb_arg = kzalloc_obj(*cb_arg, GFP_ATOMIC);
if (!cb_arg)
return -ENOMEM;
@@ -3189,7 +3189,7 @@ efct_hw_get_host_stats(struct efct_hw *hw, u8 cc,
struct efct_hw_host_stat_cb_arg *cb_arg;
u8 mbxdata[SLI4_BMBX_SIZE];
- cb_arg = kmalloc(sizeof(*cb_arg), GFP_ATOMIC);
+ cb_arg = kmalloc_obj(*cb_arg, GFP_ATOMIC);
if (!cb_arg)
return -ENOMEM;
@@ -3239,7 +3239,7 @@ efct_hw_async_call(struct efct_hw *hw, efct_hw_async_cb_t callback, void *arg)
* we need this to be persistent as the mbox cmd submission may be
* queued and executed later execution.
*/
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -3307,7 +3307,7 @@ efct_hw_firmware_write(struct efct_hw *hw, struct efc_dma *dma, u32 size,
struct efct_hw_fw_wr_cb_arg *cb_arg;
int noc = 0;
- cb_arg = kzalloc(sizeof(*cb_arg), GFP_KERNEL);
+ cb_arg = kzalloc_obj(*cb_arg, GFP_KERNEL);
if (!cb_arg)
return -ENOMEM;
diff --git a/drivers/scsi/elx/efct/efct_hw_queues.c b/drivers/scsi/elx/efct/efct_hw_queues.c
index 3a1d1a5864a3..83d8f2c37569 100644
--- a/drivers/scsi/elx/efct/efct_hw_queues.c
+++ b/drivers/scsi/elx/efct/efct_hw_queues.c
@@ -127,7 +127,7 @@ efct_hw_map_wq_cpu(struct efct_hw *hw)
struct hw_eq *
efct_hw_new_eq(struct efct_hw *hw, u32 entry_count)
{
- struct hw_eq *eq = kzalloc(sizeof(*eq), GFP_KERNEL);
+ struct hw_eq *eq = kzalloc_obj(*eq, GFP_KERNEL);
if (!eq)
return NULL;
@@ -159,7 +159,7 @@ struct hw_cq *
efct_hw_new_cq(struct hw_eq *eq, u32 entry_count)
{
struct efct_hw *hw = eq->hw;
- struct hw_cq *cq = kzalloc(sizeof(*cq), GFP_KERNEL);
+ struct hw_cq *cq = kzalloc_obj(*cq, GFP_KERNEL);
if (!cq)
return NULL;
@@ -204,7 +204,7 @@ efct_hw_new_cq_set(struct hw_eq *eqs[], struct hw_cq *cqs[],
cqs[i] = NULL;
for (i = 0; i < num_cqs; i++) {
- cq = kzalloc(sizeof(*cq), GFP_KERNEL);
+ cq = kzalloc_obj(*cq, GFP_KERNEL);
if (!cq)
goto error;
@@ -244,7 +244,7 @@ struct hw_mq *
efct_hw_new_mq(struct hw_cq *cq, u32 entry_count)
{
struct efct_hw *hw = cq->eq->hw;
- struct hw_mq *mq = kzalloc(sizeof(*mq), GFP_KERNEL);
+ struct hw_mq *mq = kzalloc_obj(*mq, GFP_KERNEL);
if (!mq)
return NULL;
@@ -275,7 +275,7 @@ struct hw_wq *
efct_hw_new_wq(struct hw_cq *cq, u32 entry_count)
{
struct efct_hw *hw = cq->eq->hw;
- struct hw_wq *wq = kzalloc(sizeof(*wq), GFP_KERNEL);
+ struct hw_wq *wq = kzalloc_obj(*wq, GFP_KERNEL);
if (!wq)
return NULL;
@@ -324,7 +324,7 @@ efct_hw_new_rq_set(struct hw_cq *cqs[], struct hw_rq *rqs[],
* encapsulates 2 SLI queues (for rq pair)
*/
for (i = 0, q_count = 0; i < num_rq_pairs; i++, q_count += 2) {
- rq = kzalloc(sizeof(*rq), GFP_KERNEL);
+ rq = kzalloc_obj(*rq, GFP_KERNEL);
if (!rq)
goto error;
diff --git a/drivers/scsi/elx/efct/efct_io.c b/drivers/scsi/elx/efct/efct_io.c
index c612f0a48839..dabbe996ab7c 100644
--- a/drivers/scsi/elx/efct/efct_io.c
+++ b/drivers/scsi/elx/efct/efct_io.c
@@ -25,7 +25,7 @@ efct_io_pool_create(struct efct *efct, u32 num_sgl)
struct efct_io *io;
/* Allocate the IO pool */
- io_pool = kzalloc(sizeof(*io_pool), GFP_KERNEL);
+ io_pool = kzalloc_obj(*io_pool, GFP_KERNEL);
if (!io_pool)
return NULL;
@@ -35,7 +35,7 @@ efct_io_pool_create(struct efct *efct, u32 num_sgl)
spin_lock_init(&io_pool->lock);
for (i = 0; i < EFCT_NUM_SCSI_IOS; i++) {
- io = kzalloc(sizeof(*io), GFP_KERNEL);
+ io = kzalloc_obj(*io, GFP_KERNEL);
if (!io)
break;
diff --git a/drivers/scsi/elx/efct/efct_lio.c b/drivers/scsi/elx/efct/efct_lio.c
index bd3d489e56ae..a6ad6b84fc7a 100644
--- a/drivers/scsi/elx/efct/efct_lio.c
+++ b/drivers/scsi/elx/efct/efct_lio.c
@@ -744,7 +744,7 @@ efct_lio_make_nport(struct target_fabric_configfs *tf,
return ERR_PTR(-ENXIO);
}
- lio_nport = kzalloc(sizeof(*lio_nport), GFP_KERNEL);
+ lio_nport = kzalloc_obj(*lio_nport, GFP_KERNEL);
if (!lio_nport)
return ERR_PTR(-ENOMEM);
@@ -796,7 +796,7 @@ efct_lio_npiv_make_nport(struct target_fabric_configfs *tf,
return ERR_PTR(-ENXIO);
}
- lio_vport = kzalloc(sizeof(*lio_vport), GFP_KERNEL);
+ lio_vport = kzalloc_obj(*lio_vport, GFP_KERNEL);
if (!lio_vport)
return ERR_PTR(-ENOMEM);
@@ -808,7 +808,7 @@ efct_lio_npiv_make_nport(struct target_fabric_configfs *tf,
efct_format_wwn(lio_vport->wwpn_str, sizeof(lio_vport->wwpn_str),
"naa.", npiv_wwpn);
- vport_list = kzalloc(sizeof(*vport_list), GFP_KERNEL);
+ vport_list = kzalloc_obj(*vport_list, GFP_KERNEL);
if (!vport_list) {
kfree(lio_vport);
return ERR_PTR(-ENOMEM);
@@ -895,7 +895,7 @@ efct_lio_make_tpg(struct se_wwn *wwn, const char *name)
if (kstrtoul(name + 5, 10, &n) || n > USHRT_MAX)
return ERR_PTR(-EINVAL);
- tpg = kzalloc(sizeof(*tpg), GFP_KERNEL);
+ tpg = kzalloc_obj(*tpg, GFP_KERNEL);
if (!tpg)
return ERR_PTR(-ENOMEM);
@@ -958,7 +958,7 @@ efct_lio_npiv_make_tpg(struct se_wwn *wwn, const char *name)
return ERR_PTR(-EINVAL);
}
- tpg = kzalloc(sizeof(*tpg), GFP_KERNEL);
+ tpg = kzalloc_obj(*tpg, GFP_KERNEL);
if (!tpg)
return ERR_PTR(-ENOMEM);
@@ -1069,7 +1069,7 @@ static int efct_session_cb(struct se_portal_group *se_tpg,
struct efct_node *tgt_node;
struct efct *efct = node->efc->base;
- tgt_node = kzalloc(sizeof(*tgt_node), GFP_KERNEL);
+ tgt_node = kzalloc_obj(*tgt_node, GFP_KERNEL);
if (!tgt_node)
return -ENOMEM;
@@ -1227,7 +1227,7 @@ int efct_scsi_new_initiator(struct efc *efc, struct efc_node *node)
* Since LIO only supports initiator validation at thread level,
* we are open minded and accept all callers.
*/
- wq_data = kzalloc(sizeof(*wq_data), GFP_ATOMIC);
+ wq_data = kzalloc_obj(*wq_data, GFP_ATOMIC);
if (!wq_data)
return -ENOMEM;
@@ -1292,7 +1292,7 @@ int efct_scsi_del_initiator(struct efc *efc, struct efc_node *node, int reason)
return -EIO;
}
- wq_data = kzalloc(sizeof(*wq_data), GFP_ATOMIC);
+ wq_data = kzalloc_obj(*wq_data, GFP_ATOMIC);
if (!wq_data)
return -ENOMEM;
diff --git a/drivers/scsi/elx/efct/efct_xport.c b/drivers/scsi/elx/efct/efct_xport.c
index dfe05fab7b42..66574b8c9f9e 100644
--- a/drivers/scsi/elx/efct/efct_xport.c
+++ b/drivers/scsi/elx/efct/efct_xport.c
@@ -28,7 +28,7 @@ efct_xport_alloc(struct efct *efct)
{
struct efct_xport *xport;
- xport = kzalloc(sizeof(*xport), GFP_KERNEL);
+ xport = kzalloc_obj(*xport, GFP_KERNEL);
if (!xport)
return xport;
diff --git a/drivers/scsi/elx/libefc/efc_domain.c b/drivers/scsi/elx/libefc/efc_domain.c
index ca9d7ff2c0d2..554a538ffd33 100644
--- a/drivers/scsi/elx/libefc/efc_domain.c
+++ b/drivers/scsi/elx/libefc/efc_domain.c
@@ -134,7 +134,7 @@ efc_domain_alloc(struct efc *efc, uint64_t fcf_wwn)
{
struct efc_domain *domain;
- domain = kzalloc(sizeof(*domain), GFP_ATOMIC);
+ domain = kzalloc_obj(*domain, GFP_ATOMIC);
if (!domain)
return NULL;
diff --git a/drivers/scsi/elx/libefc/efc_fabric.c b/drivers/scsi/elx/libefc/efc_fabric.c
index 4ed9f46ded65..12e82deb2a35 100644
--- a/drivers/scsi/elx/libefc/efc_fabric.c
+++ b/drivers/scsi/elx/libefc/efc_fabric.c
@@ -685,7 +685,7 @@ efc_process_gidpt_payload(struct efc_node *node,
}
/* Allocate a buffer for all nodes */
- active_nodes = kcalloc(port_count, sizeof(*active_nodes), GFP_ATOMIC);
+ active_nodes = kzalloc_objs(*active_nodes, port_count, GFP_ATOMIC);
if (!active_nodes) {
node_printf(node, "efc_malloc failed\n");
return -EIO;
diff --git a/drivers/scsi/elx/libefc/efc_nport.c b/drivers/scsi/elx/libefc/efc_nport.c
index 1a7437f4328e..1ea26c7337eb 100644
--- a/drivers/scsi/elx/libefc/efc_nport.c
+++ b/drivers/scsi/elx/libefc/efc_nport.c
@@ -82,7 +82,7 @@ efc_nport_alloc(struct efc_domain *domain, uint64_t wwpn, uint64_t wwnn,
}
}
- nport = kzalloc(sizeof(*nport), GFP_ATOMIC);
+ nport = kzalloc_obj(*nport, GFP_ATOMIC);
if (!nport)
return nport;
@@ -756,7 +756,7 @@ efc_vport_create_spec(struct efc *efc, uint64_t wwnn, uint64_t wwpn,
}
}
- vport = kzalloc(sizeof(*vport), GFP_ATOMIC);
+ vport = kzalloc_obj(*vport, GFP_ATOMIC);
if (!vport) {
spin_unlock_irqrestore(&efc->vport_lock, flags);
return NULL;
diff --git a/drivers/scsi/esas2r/esas2r_init.c b/drivers/scsi/esas2r/esas2r_init.c
index 04a07fe57be2..fd72946ec41f 100644
--- a/drivers/scsi/esas2r/esas2r_init.c
+++ b/drivers/scsi/esas2r/esas2r_init.c
@@ -103,8 +103,8 @@ static void esas2r_initmem_free(struct esas2r_adapter *a,
static bool alloc_vda_req(struct esas2r_adapter *a,
struct esas2r_request *rq)
{
- struct esas2r_mem_desc *memdesc = kzalloc(
- sizeof(struct esas2r_mem_desc), GFP_KERNEL);
+ struct esas2r_mem_desc *memdesc = kzalloc_obj(struct esas2r_mem_desc,
+ GFP_KERNEL);
if (memdesc == NULL) {
esas2r_hdebug("could not alloc mem for vda request memdesc\n");
@@ -783,8 +783,7 @@ bool esas2r_init_adapter_struct(struct esas2r_adapter *a,
/* allocate requests for asynchronous events */
a->first_ae_req =
- kcalloc(num_ae_requests, sizeof(struct esas2r_request),
- GFP_KERNEL);
+ kzalloc_objs(struct esas2r_request, num_ae_requests, GFP_KERNEL);
if (a->first_ae_req == NULL) {
esas2r_log(ESAS2R_LOG_CRIT,
@@ -793,8 +792,8 @@ bool esas2r_init_adapter_struct(struct esas2r_adapter *a,
}
/* allocate the S/G list memory descriptors */
- a->sg_list_mds = kcalloc(num_sg_lists, sizeof(struct esas2r_mem_desc),
- GFP_KERNEL);
+ a->sg_list_mds = kzalloc_objs(struct esas2r_mem_desc, num_sg_lists,
+ GFP_KERNEL);
if (a->sg_list_mds == NULL) {
esas2r_log(ESAS2R_LOG_CRIT,
@@ -804,9 +803,8 @@ bool esas2r_init_adapter_struct(struct esas2r_adapter *a,
/* allocate the request table */
a->req_table =
- kcalloc(num_requests + num_ae_requests + 1,
- sizeof(struct esas2r_request *),
- GFP_KERNEL);
+ kzalloc_objs(struct esas2r_request *,
+ num_requests + num_ae_requests + 1, GFP_KERNEL);
if (a->req_table == NULL) {
esas2r_log(ESAS2R_LOG_CRIT,
diff --git a/drivers/scsi/esas2r/esas2r_main.c b/drivers/scsi/esas2r/esas2r_main.c
index fdcffc871d19..454807522250 100644
--- a/drivers/scsi/esas2r/esas2r_main.c
+++ b/drivers/scsi/esas2r/esas2r_main.c
@@ -194,8 +194,7 @@ static ssize_t write_hw(struct file *file, struct kobject *kobj,
int length = min(sizeof(struct atto_ioctl), count);
if (!a->local_atto_ioctl) {
- a->local_atto_ioctl = kmalloc(sizeof(struct atto_ioctl),
- GFP_KERNEL);
+ a->local_atto_ioctl = kmalloc_obj(struct atto_ioctl, GFP_KERNEL);
if (a->local_atto_ioctl == NULL) {
esas2r_log(ESAS2R_LOG_WARN,
"write_hw kzalloc failed for %zu bytes",
@@ -1831,7 +1830,7 @@ void esas2r_queue_fw_event(struct esas2r_adapter *a,
struct esas2r_fw_event_work *fw_event;
unsigned long flags;
- fw_event = kzalloc(sizeof(struct esas2r_fw_event_work), GFP_ATOMIC);
+ fw_event = kzalloc_obj(struct esas2r_fw_event_work, GFP_ATOMIC);
if (!fw_event) {
esas2r_log(ESAS2R_LOG_WARN,
"esas2r_queue_fw_event failed to alloc");
diff --git a/drivers/scsi/esp_scsi.c b/drivers/scsi/esp_scsi.c
index 05647ccc3c8a..af46112b4fb0 100644
--- a/drivers/scsi/esp_scsi.c
+++ b/drivers/scsi/esp_scsi.c
@@ -881,7 +881,7 @@ static struct esp_cmd_entry *esp_get_ent(struct esp *esp)
struct esp_cmd_entry *ret;
if (list_empty(head)) {
- ret = kzalloc(sizeof(struct esp_cmd_entry), GFP_ATOMIC);
+ ret = kzalloc_obj(struct esp_cmd_entry, GFP_ATOMIC);
} else {
ret = list_entry(head->next, struct esp_cmd_entry, list);
list_del(&ret->list);
@@ -2447,7 +2447,7 @@ static int esp_sdev_init(struct scsi_device *dev)
struct esp_target_data *tp = &esp->target[dev->id];
struct esp_lun_data *lp;
- lp = kzalloc(sizeof(*lp), GFP_KERNEL);
+ lp = kzalloc_obj(*lp, GFP_KERNEL);
if (!lp)
return -ENOMEM;
dev->hostdata = lp;
diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c
index c8c5dfb3ba9a..bc0064da561c 100644
--- a/drivers/scsi/fcoe/fcoe.c
+++ b/drivers/scsi/fcoe/fcoe.c
@@ -820,7 +820,7 @@ static void fcoe_fdmi_info(struct fc_lport *lport, struct net_device *netdev)
if (realdev->netdev_ops->ndo_fcoe_get_hbainfo) {
struct netdev_fcoe_hbainfo *fdmi;
- fdmi = kzalloc(sizeof(*fdmi), GFP_KERNEL);
+ fdmi = kzalloc_obj(*fdmi, GFP_KERNEL);
if (!fdmi)
return;
diff --git a/drivers/scsi/fcoe/fcoe_ctlr.c b/drivers/scsi/fcoe/fcoe_ctlr.c
index 8e4241c295e3..a356cf072bf1 100644
--- a/drivers/scsi/fcoe/fcoe_ctlr.c
+++ b/drivers/scsi/fcoe/fcoe_ctlr.c
@@ -168,7 +168,7 @@ static int fcoe_sysfs_fcf_add(struct fcoe_fcf *new)
LIBFCOE_FIP_DBG(fip, "New FCF fab %16.16llx mac %pM\n",
new->fabric_name, new->fcf_mac);
- temp = kzalloc(sizeof(*temp), GFP_KERNEL);
+ temp = kzalloc_obj(*temp, GFP_KERNEL);
if (!temp)
goto out;
@@ -1043,7 +1043,7 @@ static void fcoe_ctlr_recv_adv(struct fcoe_ctlr *fip, struct sk_buff *skb)
if (fip->fcf_count >= FCOE_CTLR_FCF_LIMIT)
goto out;
- fcf = kmalloc(sizeof(*fcf), GFP_ATOMIC);
+ fcf = kmalloc_obj(*fcf, GFP_ATOMIC);
if (!fcf)
goto out;
@@ -1378,8 +1378,7 @@ static void fcoe_ctlr_recv_clr_vlink(struct fcoe_ctlr *fip,
*/
num_vlink_desc = rlen / sizeof(*vp);
if (num_vlink_desc)
- vlink_desc_arr = kmalloc_array(num_vlink_desc, sizeof(vp),
- GFP_ATOMIC);
+ vlink_desc_arr = kmalloc_objs(vp, num_vlink_desc, GFP_ATOMIC);
if (!vlink_desc_arr)
return;
num_vlink_desc = 0;
diff --git a/drivers/scsi/fcoe/fcoe_sysfs.c b/drivers/scsi/fcoe/fcoe_sysfs.c
index 0609ca6b9353..afea5763a3c0 100644
--- a/drivers/scsi/fcoe/fcoe_sysfs.c
+++ b/drivers/scsi/fcoe/fcoe_sysfs.c
@@ -986,7 +986,7 @@ struct fcoe_fcf_device *fcoe_fcf_device_add(struct fcoe_ctlr_device *ctlr,
}
}
- fcf = kzalloc(sizeof(struct fcoe_fcf_device), GFP_ATOMIC);
+ fcf = kzalloc_obj(struct fcoe_fcf_device, GFP_ATOMIC);
if (unlikely(!fcf))
goto out;
diff --git a/drivers/scsi/fcoe/fcoe_transport.c b/drivers/scsi/fcoe/fcoe_transport.c
index 2f478426f16e..e1615cc5c092 100644
--- a/drivers/scsi/fcoe/fcoe_transport.c
+++ b/drivers/scsi/fcoe/fcoe_transport.c
@@ -638,7 +638,7 @@ static int fcoe_add_netdev_mapping(struct net_device *netdev,
{
struct fcoe_netdev_mapping *nm;
- nm = kmalloc(sizeof(*nm), GFP_KERNEL);
+ nm = kmalloc_obj(*nm, GFP_KERNEL);
if (!nm) {
printk(KERN_ERR "Unable to allocate netdev_mapping");
return -ENOMEM;
diff --git a/drivers/scsi/fnic/fdls_disc.c b/drivers/scsi/fnic/fdls_disc.c
index ae37f85f618b..69ffc492ec9d 100644
--- a/drivers/scsi/fnic/fdls_disc.c
+++ b/drivers/scsi/fnic/fdls_disc.c
@@ -272,7 +272,7 @@ void fdls_schedule_oxid_free(struct fnic_iport_s *iport, uint16_t *active_oxid)
*active_oxid = FNIC_UNASSIGNED_OXID;
reclaim_entry = (struct reclaim_entry_s *)
- kzalloc(sizeof(struct reclaim_entry_s), GFP_ATOMIC);
+ kzalloc_obj(struct reclaim_entry_s, GFP_ATOMIC);
if (!reclaim_entry) {
FNIC_FCS_DBG(KERN_WARNING, fnic->host, fnic->fnic_num,
@@ -316,7 +316,7 @@ void fdls_schedule_oxid_free_retry_work(struct work_struct *work)
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
"Schedule oxid free. oxid idx: %d\n", idx);
- reclaim_entry = kzalloc(sizeof(*reclaim_entry), GFP_KERNEL);
+ reclaim_entry = kzalloc_obj(*reclaim_entry, GFP_KERNEL);
if (!reclaim_entry) {
schedule_delayed_work(&oxid_pool->schedule_oxid_free_retry,
msecs_to_jiffies(SCHEDULE_OXID_FREE_RETRY_TIME));
@@ -1270,7 +1270,7 @@ bool fdls_delete_tport(struct fnic_iport_s *iport, struct fnic_tport_s *tport)
if (tport->flags & FNIC_FDLS_SCSI_REGISTERED) {
tport_del_evt =
- kzalloc(sizeof(struct fnic_tport_event_s), GFP_ATOMIC);
+ kzalloc_obj(struct fnic_tport_event_s, GFP_ATOMIC);
if (!tport_del_evt) {
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
"Failed to allocate memory for tport fcid: 0x%0x\n",
@@ -1776,7 +1776,7 @@ static struct fnic_tport_s *fdls_create_tport(struct fnic_iport_s *iport,
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
"FDLS create tport: fcid: 0x%x wwpn: 0x%llx", fcid, wwpn);
- tport = kzalloc(sizeof(struct fnic_tport_s), GFP_ATOMIC);
+ tport = kzalloc_obj(struct fnic_tport_s, GFP_ATOMIC);
if (!tport) {
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
"Memory allocation failure while creating tport: 0x%x\n",
@@ -2365,7 +2365,7 @@ static void fdls_send_delete_tport_msg(struct fnic_tport_s *tport)
struct fnic *fnic = iport->fnic;
struct fnic_tport_event_s *tport_del_evt;
- tport_del_evt = kzalloc(sizeof(struct fnic_tport_event_s), GFP_ATOMIC);
+ tport_del_evt = kzalloc_obj(struct fnic_tport_event_s, GFP_ATOMIC);
if (!tport_del_evt) {
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
"Failed to allocate memory for tport event fcid: 0x%x",
@@ -2852,7 +2852,7 @@ fdls_process_tgt_prli_rsp(struct fnic_iport_s *iport,
fdls_set_tport_state(tport, FDLS_TGT_STATE_READY);
/* Inform the driver about new target added */
- tport_add_evt = kzalloc(sizeof(struct fnic_tport_event_s), GFP_ATOMIC);
+ tport_add_evt = kzalloc_obj(struct fnic_tport_event_s, GFP_ATOMIC);
if (!tport_add_evt) {
FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num,
"tport event memory allocation failure: 0x%0x\n",
diff --git a/drivers/scsi/fnic/fip.c b/drivers/scsi/fnic/fip.c
index ce62ab1180bd..5072c08e75ad 100644
--- a/drivers/scsi/fnic/fip.c
+++ b/drivers/scsi/fnic/fip.c
@@ -139,7 +139,7 @@ void fnic_fcoe_process_vlan_resp(struct fnic *fnic, struct fip_header *fiph)
FNIC_FIP_DBG(KERN_INFO, fnic->host,
fnic->fnic_num,
"process_vlan_resp: FIP VLAN %d\n", vid);
- vlan = kzalloc(sizeof(*vlan), GFP_KERNEL);
+ vlan = kzalloc_obj(*vlan, GFP_KERNEL);
if (!vlan) {
/* retry from timer */
diff --git a/drivers/scsi/fnic/fnic_debugfs.c b/drivers/scsi/fnic/fnic_debugfs.c
index 5767862ae42f..ef5298685054 100644
--- a/drivers/scsi/fnic/fnic_debugfs.c
+++ b/drivers/scsi/fnic/fnic_debugfs.c
@@ -200,7 +200,7 @@ static int fnic_trace_debugfs_open(struct inode *inode,
fnic_dbgfs_t *fnic_dbg_prt;
u8 *rdata_ptr;
rdata_ptr = (u8 *)inode->i_private;
- fnic_dbg_prt = kzalloc(sizeof(fnic_dbgfs_t), GFP_KERNEL);
+ fnic_dbg_prt = kzalloc_obj(fnic_dbgfs_t, GFP_KERNEL);
if (!fnic_dbg_prt)
return -ENOMEM;
@@ -436,7 +436,7 @@ static int fnic_reset_stats_open(struct inode *inode, struct file *file)
{
struct stats_debug_info *debug;
- debug = kzalloc(sizeof(struct stats_debug_info), GFP_KERNEL);
+ debug = kzalloc_obj(struct stats_debug_info, GFP_KERNEL);
if (!debug)
return -ENOMEM;
@@ -583,7 +583,7 @@ static int fnic_stats_debugfs_open(struct inode *inode,
struct stats_debug_info *debug;
int buf_size = 2 * PAGE_SIZE;
- debug = kzalloc(sizeof(struct stats_debug_info), GFP_KERNEL);
+ debug = kzalloc_obj(struct stats_debug_info, GFP_KERNEL);
if (!debug)
return -ENOMEM;
diff --git a/drivers/scsi/fnic/fnic_fcs.c b/drivers/scsi/fnic/fnic_fcs.c
index 103ab6f1f7cd..405b341b73d7 100644
--- a/drivers/scsi/fnic/fnic_fcs.c
+++ b/drivers/scsi/fnic/fnic_fcs.c
@@ -376,7 +376,7 @@ static inline int fnic_import_rq_eth_pkt(struct fnic *fnic, void *fp)
eh = (struct ethhdr *) fp;
if ((eh->h_proto == cpu_to_be16(ETH_P_FIP)) && (fnic->iport.usefip)) {
fip_fr_elem = (struct fnic_frame_list *)
- kzalloc(sizeof(struct fnic_frame_list), GFP_ATOMIC);
+ kzalloc_obj(struct fnic_frame_list, GFP_ATOMIC);
if (!fip_fr_elem)
return 0;
fip_fr_elem->fp = fp;
diff --git a/drivers/scsi/fnic/fnic_main.c b/drivers/scsi/fnic/fnic_main.c
index 4cc4077ea53c..8a8c008ea2c7 100644
--- a/drivers/scsi/fnic/fnic_main.c
+++ b/drivers/scsi/fnic/fnic_main.c
@@ -715,7 +715,7 @@ static int fnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
/*
* Allocate fnic
*/
- fnic = kzalloc(sizeof(struct fnic), GFP_KERNEL);
+ fnic = kzalloc_obj(struct fnic, GFP_KERNEL);
if (!fnic) {
err = -ENOMEM;
goto err_out_fnic_alloc;
diff --git a/drivers/scsi/fnic/vnic_dev.c b/drivers/scsi/fnic/vnic_dev.c
index e0b173cc9d5f..590effeb21e6 100644
--- a/drivers/scsi/fnic/vnic_dev.c
+++ b/drivers/scsi/fnic/vnic_dev.c
@@ -422,7 +422,7 @@ static int vnic_dev_init_devcmd2(struct vnic_dev *vdev)
if (vdev->devcmd2)
return 0;
- vdev->devcmd2 = kzalloc(sizeof(*vdev->devcmd2), GFP_ATOMIC);
+ vdev->devcmd2 = kzalloc_obj(*vdev->devcmd2, GFP_ATOMIC);
if (!vdev->devcmd2)
return -ENOMEM;
@@ -911,7 +911,7 @@ struct vnic_dev *vnic_dev_register(struct vnic_dev *vdev,
void *priv, struct pci_dev *pdev, struct vnic_dev_bar *bar)
{
if (!vdev) {
- vdev = kzalloc(sizeof(struct vnic_dev), GFP_KERNEL);
+ vdev = kzalloc_obj(struct vnic_dev, GFP_KERNEL);
if (!vdev)
return NULL;
}
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index 3e235dbfb67a..ce20f8906ac7 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -1597,7 +1597,7 @@ static void hpsa_monitor_offline_device(struct ctlr_info *h,
spin_unlock_irqrestore(&h->offline_device_lock, flags);
/* Device is not on the list, add it. */
- device = kmalloc(sizeof(*device), GFP_KERNEL);
+ device = kmalloc_obj(*device, GFP_KERNEL);
if (!device)
return;
@@ -1936,8 +1936,8 @@ static void adjust_hpsa_scsi_table(struct ctlr_info *h,
}
spin_unlock_irqrestore(&h->reset_lock, flags);
- added = kcalloc(HPSA_MAX_DEVICES, sizeof(*added), GFP_KERNEL);
- removed = kcalloc(HPSA_MAX_DEVICES, sizeof(*removed), GFP_KERNEL);
+ added = kzalloc_objs(*added, HPSA_MAX_DEVICES, GFP_KERNEL);
+ removed = kzalloc_objs(*removed, HPSA_MAX_DEVICES, GFP_KERNEL);
if (!added || !removed) {
dev_warn(&h->pdev->dev, "out of memory in "
@@ -2200,15 +2200,13 @@ static int hpsa_allocate_ioaccel2_sg_chain_blocks(struct ctlr_info *h)
return 0;
h->ioaccel2_cmd_sg_list =
- kcalloc(h->nr_cmds, sizeof(*h->ioaccel2_cmd_sg_list),
- GFP_KERNEL);
+ kzalloc_objs(*h->ioaccel2_cmd_sg_list, h->nr_cmds, GFP_KERNEL);
if (!h->ioaccel2_cmd_sg_list)
return -ENOMEM;
for (i = 0; i < h->nr_cmds; i++) {
h->ioaccel2_cmd_sg_list[i] =
- kmalloc_array(h->maxsgentries,
- sizeof(*h->ioaccel2_cmd_sg_list[i]),
- GFP_KERNEL);
+ kmalloc_objs(*h->ioaccel2_cmd_sg_list[i],
+ h->maxsgentries, GFP_KERNEL);
if (!h->ioaccel2_cmd_sg_list[i])
goto clean;
}
@@ -2240,15 +2238,13 @@ static int hpsa_alloc_sg_chain_blocks(struct ctlr_info *h)
if (h->chainsize <= 0)
return 0;
- h->cmd_sg_list = kcalloc(h->nr_cmds, sizeof(*h->cmd_sg_list),
- GFP_KERNEL);
+ h->cmd_sg_list = kzalloc_objs(*h->cmd_sg_list, h->nr_cmds, GFP_KERNEL);
if (!h->cmd_sg_list)
return -ENOMEM;
for (i = 0; i < h->nr_cmds; i++) {
- h->cmd_sg_list[i] = kmalloc_array(h->chainsize,
- sizeof(*h->cmd_sg_list[i]),
- GFP_KERNEL);
+ h->cmd_sg_list[i] = kmalloc_objs(*h->cmd_sg_list[i],
+ h->chainsize, GFP_KERNEL);
if (!h->cmd_sg_list[i])
goto clean;
@@ -3469,11 +3465,11 @@ static void hpsa_get_enclosure_info(struct ctlr_info *h,
goto out;
}
- bssbp = kzalloc(sizeof(*bssbp), GFP_KERNEL);
+ bssbp = kzalloc_obj(*bssbp, GFP_KERNEL);
if (!bssbp)
goto out;
- id_phys = kzalloc(sizeof(*id_phys), GFP_KERNEL);
+ id_phys = kzalloc_obj(*id_phys, GFP_KERNEL);
if (!id_phys)
goto out;
@@ -3534,7 +3530,7 @@ static u64 hpsa_get_sas_address_from_report_physical(struct ctlr_info *h,
u64 sa = 0;
int i;
- physdev = kzalloc(sizeof(*physdev), GFP_KERNEL);
+ physdev = kzalloc_obj(*physdev, GFP_KERNEL);
if (!physdev)
return 0;
@@ -3565,7 +3561,7 @@ static void hpsa_get_sas_address(struct ctlr_info *h, unsigned char *scsi3addr,
if (is_hba_lunid(scsi3addr)) {
struct bmic_sense_subsystem_info *ssi;
- ssi = kzalloc(sizeof(*ssi), GFP_KERNEL);
+ ssi = kzalloc_obj(*ssi, GFP_KERNEL);
if (!ssi)
return;
@@ -3789,7 +3785,7 @@ static inline int hpsa_scsi_do_report_phys_luns(struct ctlr_info *h,
return rc;
/* REPORT PHYS EXTENDED is not supported */
- lbuf = kzalloc(sizeof(*lbuf), GFP_KERNEL);
+ lbuf = kzalloc_obj(*lbuf, GFP_KERNEL);
if (!lbuf)
return -ENOMEM;
@@ -4260,7 +4256,7 @@ static bool hpsa_is_disk_spare(struct ctlr_info *h, u8 *lunaddrbytes)
bool is_spare = false;
int rc;
- id_phys = kzalloc(sizeof(*id_phys), GFP_KERNEL);
+ id_phys = kzalloc_obj(*id_phys, GFP_KERNEL);
if (!id_phys)
return false;
@@ -4345,12 +4341,12 @@ static void hpsa_update_scsi_devices(struct ctlr_info *h)
int raid_ctlr_position;
bool physical_device;
- currentsd = kcalloc(HPSA_MAX_DEVICES, sizeof(*currentsd), GFP_KERNEL);
- physdev_list = kzalloc(sizeof(*physdev_list), GFP_KERNEL);
- logdev_list = kzalloc(sizeof(*logdev_list), GFP_KERNEL);
- tmpdevice = kzalloc(sizeof(*tmpdevice), GFP_KERNEL);
- id_phys = kzalloc(sizeof(*id_phys), GFP_KERNEL);
- id_ctlr = kzalloc(sizeof(*id_ctlr), GFP_KERNEL);
+ currentsd = kzalloc_objs(*currentsd, HPSA_MAX_DEVICES, GFP_KERNEL);
+ physdev_list = kzalloc_obj(*physdev_list, GFP_KERNEL);
+ logdev_list = kzalloc_obj(*logdev_list, GFP_KERNEL);
+ tmpdevice = kzalloc_obj(*tmpdevice, GFP_KERNEL);
+ id_phys = kzalloc_obj(*id_phys, GFP_KERNEL);
+ id_ctlr = kzalloc_obj(*id_ctlr, GFP_KERNEL);
if (!currentsd || !physdev_list || !logdev_list ||
!tmpdevice || !id_phys || !id_ctlr) {
@@ -4390,7 +4386,7 @@ static void hpsa_update_scsi_devices(struct ctlr_info *h)
break;
}
- currentsd[i] = kzalloc(sizeof(*currentsd[i]), GFP_KERNEL);
+ currentsd[i] = kzalloc_obj(*currentsd[i], GFP_KERNEL);
if (!currentsd[i]) {
h->drv_req_rescan = 1;
goto out;
@@ -6504,7 +6500,7 @@ static int hpsa_big_passthru_ioctl(struct ctlr_info *h,
status = -ENOMEM;
goto cleanup1;
}
- buff_size = kmalloc_array(SG_ENTRIES_IN_CMD, sizeof(int), GFP_KERNEL);
+ buff_size = kmalloc_objs(int, SG_ENTRIES_IN_CMD, GFP_KERNEL);
if (!buff_size) {
status = -ENOMEM;
goto cleanup1;
@@ -8494,7 +8490,7 @@ static int hpsa_luns_changed(struct ctlr_info *h)
if (!h->lastlogicals)
return rc;
- logdev = kzalloc(sizeof(*logdev), GFP_KERNEL);
+ logdev = kzalloc_obj(*logdev, GFP_KERNEL);
if (!logdev)
return rc;
@@ -8635,7 +8631,7 @@ static struct ctlr_info *hpda_alloc_ctlr_info(void)
{
struct ctlr_info *h;
- h = kzalloc(sizeof(*h), GFP_KERNEL);
+ h = kzalloc_obj(*h, GFP_KERNEL);
if (!h)
return NULL;
@@ -8856,7 +8852,7 @@ static int hpsa_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
hpsa_hba_inquiry(h);
- h->lastlogicals = kzalloc(sizeof(*(h->lastlogicals)), GFP_KERNEL);
+ h->lastlogicals = kzalloc_obj(*(h->lastlogicals), GFP_KERNEL);
if (!h->lastlogicals)
dev_info(&h->pdev->dev,
"Can't track change to report lun data\n");
@@ -8960,7 +8956,7 @@ static void hpsa_disable_rld_caching(struct ctlr_info *h)
if (unlikely(h->lockup_detected))
return;
- options = kzalloc(sizeof(*options), GFP_KERNEL);
+ options = kzalloc_obj(*options, GFP_KERNEL);
if (!options)
return;
@@ -9557,7 +9553,7 @@ static struct hpsa_sas_phy *hpsa_alloc_sas_phy(
struct hpsa_sas_phy *hpsa_sas_phy;
struct sas_phy *phy;
- hpsa_sas_phy = kzalloc(sizeof(*hpsa_sas_phy), GFP_KERNEL);
+ hpsa_sas_phy = kzalloc_obj(*hpsa_sas_phy, GFP_KERNEL);
if (!hpsa_sas_phy)
return NULL;
@@ -9642,7 +9638,7 @@ static struct hpsa_sas_port
struct hpsa_sas_port *hpsa_sas_port;
struct sas_port *port;
- hpsa_sas_port = kzalloc(sizeof(*hpsa_sas_port), GFP_KERNEL);
+ hpsa_sas_port = kzalloc_obj(*hpsa_sas_port, GFP_KERNEL);
if (!hpsa_sas_port)
return NULL;
@@ -9690,7 +9686,7 @@ static struct hpsa_sas_node *hpsa_alloc_sas_node(struct device *parent_dev)
{
struct hpsa_sas_node *hpsa_sas_node;
- hpsa_sas_node = kzalloc(sizeof(*hpsa_sas_node), GFP_KERNEL);
+ hpsa_sas_node = kzalloc_obj(*hpsa_sas_node, GFP_KERNEL);
if (hpsa_sas_node) {
hpsa_sas_node->parent_dev = parent_dev;
INIT_LIST_HEAD(&hpsa_sas_node->port_list_head);
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c
index 1c370d11b6dd..2973395badab 100644
--- a/drivers/scsi/ibmvscsi/ibmvfc.c
+++ b/drivers/scsi/ibmvscsi/ibmvfc.c
@@ -797,7 +797,7 @@ static int ibmvfc_init_event_pool(struct ibmvfc_host *vhost,
return 0;
pool->size = queue->total_depth;
- pool->events = kcalloc(pool->size, sizeof(*pool->events), GFP_KERNEL);
+ pool->events = kzalloc_objs(*pool->events, pool->size, GFP_KERNEL);
if (!pool->events)
return -ENOMEM;
@@ -6057,9 +6057,8 @@ static int ibmvfc_alloc_channels(struct ibmvfc_host *vhost,
int i, j;
int rc = 0;
- channels->scrqs = kcalloc(channels->max_queues,
- sizeof(*channels->scrqs),
- GFP_KERNEL);
+ channels->scrqs = kzalloc_objs(*channels->scrqs, channels->max_queues,
+ GFP_KERNEL);
if (!channels->scrqs)
return -ENOMEM;
@@ -6211,8 +6210,8 @@ static int ibmvfc_alloc_mem(struct ibmvfc_host *vhost)
if (ibmvfc_alloc_disc_buf(dev, &vhost->scsi_scrqs))
goto free_login_buffer;
- vhost->trace = kcalloc(IBMVFC_NUM_TRACE_ENTRIES,
- sizeof(struct ibmvfc_trace_entry), GFP_KERNEL);
+ vhost->trace = kzalloc_objs(struct ibmvfc_trace_entry,
+ IBMVFC_NUM_TRACE_ENTRIES, GFP_KERNEL);
atomic_set(&vhost->trace_index, -1);
if (!vhost->trace)
diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c
index 200debd6f7e8..da88b6b125d6 100644
--- a/drivers/scsi/ibmvscsi/ibmvscsi.c
+++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
@@ -447,7 +447,7 @@ static int initialize_event_pool(struct event_pool *pool,
pool->size = size;
pool->next = 0;
- pool->events = kcalloc(pool->size, sizeof(*pool->events), GFP_KERNEL);
+ pool->events = kzalloc_objs(*pool->events, pool->size, GFP_KERNEL);
if (!pool->events)
return -ENOMEM;
diff --git a/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c b/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c
index f259746bc804..a3a6953ba1c7 100644
--- a/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c
+++ b/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c
@@ -2214,7 +2214,7 @@ static int ibmvscsis_make_nexus(struct ibmvscsis_tport *tport)
return 0;
}
- nexus = kzalloc(sizeof(*nexus), GFP_KERNEL);
+ nexus = kzalloc_obj(*nexus, GFP_KERNEL);
if (!nexus) {
dev_err(&vscsi->dev, "Unable to allocate struct ibmvscsis_nexus\n");
return -ENOMEM;
@@ -3424,7 +3424,7 @@ static int ibmvscsis_probe(struct vio_dev *vdev,
int rc = 0;
long hrc = 0;
- vscsi = kzalloc(sizeof(*vscsi), GFP_KERNEL);
+ vscsi = kzalloc_obj(*vscsi, GFP_KERNEL);
if (!vscsi) {
rc = -ENOMEM;
dev_err(&vdev->dev, "probe: allocation of adapter failed\n");
diff --git a/drivers/scsi/ibmvscsi_tgt/libsrp.c b/drivers/scsi/ibmvscsi_tgt/libsrp.c
index 0ecad398ed3d..8fd0bc7cb429 100644
--- a/drivers/scsi/ibmvscsi_tgt/libsrp.c
+++ b/drivers/scsi/ibmvscsi_tgt/libsrp.c
@@ -27,10 +27,10 @@ static int srp_iu_pool_alloc(struct srp_queue *q, size_t max,
struct iu_entry *iue;
int i;
- q->pool = kcalloc(max, sizeof(struct iu_entry *), GFP_KERNEL);
+ q->pool = kzalloc_objs(struct iu_entry *, max, GFP_KERNEL);
if (!q->pool)
return -ENOMEM;
- q->items = kcalloc(max, sizeof(struct iu_entry), GFP_KERNEL);
+ q->items = kzalloc_objs(struct iu_entry, max, GFP_KERNEL);
if (!q->items)
goto free_pool;
@@ -61,12 +61,12 @@ static struct srp_buf **srp_ring_alloc(struct device *dev,
struct srp_buf **ring;
int i;
- ring = kcalloc(max, sizeof(struct srp_buf *), GFP_KERNEL);
+ ring = kzalloc_objs(struct srp_buf *, max, GFP_KERNEL);
if (!ring)
return NULL;
for (i = 0; i < max; i++) {
- ring[i] = kzalloc(sizeof(*ring[i]), GFP_KERNEL);
+ ring[i] = kzalloc_obj(*ring[i], GFP_KERNEL);
if (!ring[i])
goto out;
ring[i]->buf = dma_alloc_coherent(dev, size, &ring[i]->dma,
diff --git a/drivers/scsi/imm.c b/drivers/scsi/imm.c
index da7aaac10a73..2ed57ea13884 100644
--- a/drivers/scsi/imm.c
+++ b/drivers/scsi/imm.c
@@ -1158,7 +1158,7 @@ static int __imm_attach(struct parport *pb)
init_waitqueue_head(&waiting);
- dev = kzalloc(sizeof(imm_struct), GFP_KERNEL);
+ dev = kzalloc_obj(imm_struct, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index c0487ce38d8d..3b3f40eb32f4 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -3776,7 +3776,7 @@ static struct ipr_sglist *ipr_alloc_ucode_buffer(int buf_len)
order = get_order(sg_size);
/* Allocate a scatter/gather list for the DMA */
- sglist = kzalloc(sizeof(struct ipr_sglist), GFP_KERNEL);
+ sglist = kzalloc_obj(struct ipr_sglist, GFP_KERNEL);
if (sglist == NULL) {
ipr_trace;
return NULL;
@@ -4273,7 +4273,7 @@ static int ipr_alloc_dump(struct ipr_ioa_cfg *ioa_cfg)
__be32 **ioa_data;
unsigned long lock_flags = 0;
- dump = kzalloc(sizeof(struct ipr_dump), GFP_KERNEL);
+ dump = kzalloc_obj(struct ipr_dump, GFP_KERNEL);
if (!dump) {
ipr_err("Dump memory allocation failed\n");
@@ -8859,8 +8859,10 @@ static int ipr_alloc_cmd_blks(struct ipr_ioa_cfg *ioa_cfg)
if (!ioa_cfg->ipr_cmd_pool)
return -ENOMEM;
- ioa_cfg->ipr_cmnd_list = kcalloc(IPR_NUM_CMD_BLKS, sizeof(struct ipr_cmnd *), GFP_KERNEL);
- ioa_cfg->ipr_cmnd_list_dma = kcalloc(IPR_NUM_CMD_BLKS, sizeof(dma_addr_t), GFP_KERNEL);
+ ioa_cfg->ipr_cmnd_list = kzalloc_objs(struct ipr_cmnd *,
+ IPR_NUM_CMD_BLKS, GFP_KERNEL);
+ ioa_cfg->ipr_cmnd_list_dma = kzalloc_objs(dma_addr_t, IPR_NUM_CMD_BLKS,
+ GFP_KERNEL);
if (!ioa_cfg->ipr_cmnd_list || !ioa_cfg->ipr_cmnd_list_dma) {
ipr_free_cmd_blks(ioa_cfg);
@@ -8963,9 +8965,9 @@ static int ipr_alloc_mem(struct ipr_ioa_cfg *ioa_cfg)
int i, rc = -ENOMEM;
ENTER;
- ioa_cfg->res_entries = kcalloc(ioa_cfg->max_devs_supported,
- sizeof(struct ipr_resource_entry),
- GFP_KERNEL);
+ ioa_cfg->res_entries = kzalloc_objs(struct ipr_resource_entry,
+ ioa_cfg->max_devs_supported,
+ GFP_KERNEL);
if (!ioa_cfg->res_entries)
goto out;
@@ -9026,9 +9028,8 @@ static int ipr_alloc_mem(struct ipr_ioa_cfg *ioa_cfg)
list_add_tail(&ioa_cfg->hostrcb[i]->queue, &ioa_cfg->hostrcb_free_q);
}
- ioa_cfg->trace = kcalloc(IPR_NUM_TRACE_ENTRIES,
- sizeof(struct ipr_trace_entry),
- GFP_KERNEL);
+ ioa_cfg->trace = kzalloc_objs(struct ipr_trace_entry,
+ IPR_NUM_TRACE_ENTRIES, GFP_KERNEL);
if (!ioa_cfg->trace)
goto out_free_hostrcb_dma;
diff --git a/drivers/scsi/ips.c b/drivers/scsi/ips.c
index 0089b17ed288..6bb87f02b746 100644
--- a/drivers/scsi/ips.c
+++ b/drivers/scsi/ips.c
@@ -1086,7 +1086,7 @@ static enum scsi_qc_status ips_queue_lck(struct scsi_cmnd *SC)
}
/* allocate space for the scribble */
- scratch = kmalloc(sizeof (ips_copp_wait_item_t), GFP_ATOMIC);
+ scratch = kmalloc_obj(ips_copp_wait_item_t, GFP_ATOMIC);
if (!scratch) {
SC->result = DID_ERROR << 16;
@@ -6874,7 +6874,7 @@ ips_init_phase1(struct pci_dev *pci_dev, int *indexPtr)
}
/* found a controller */
- ha = kzalloc(sizeof (ips_ha_t), GFP_KERNEL);
+ ha = kzalloc_obj(ips_ha_t, GFP_KERNEL);
if (ha == NULL) {
IPS_PRINTK(KERN_WARNING, pci_dev,
"Unable to allocate temporary ha struct\n");
@@ -6947,7 +6947,7 @@ ips_init_phase1(struct pci_dev *pci_dev, int *indexPtr)
ha->logical_drive_info_dma_addr = dma_address;
- ha->conf = kmalloc(sizeof (IPS_CONF), GFP_KERNEL);
+ ha->conf = kmalloc_obj(IPS_CONF, GFP_KERNEL);
if (!ha->conf) {
IPS_PRINTK(KERN_WARNING, pci_dev,
@@ -6955,7 +6955,7 @@ ips_init_phase1(struct pci_dev *pci_dev, int *indexPtr)
return ips_abort_init(ha, index);
}
- ha->nvram = kmalloc(sizeof (IPS_NVRAM_P5), GFP_KERNEL);
+ ha->nvram = kmalloc_obj(IPS_NVRAM_P5, GFP_KERNEL);
if (!ha->nvram) {
IPS_PRINTK(KERN_WARNING, pci_dev,
@@ -6963,7 +6963,7 @@ ips_init_phase1(struct pci_dev *pci_dev, int *indexPtr)
return ips_abort_init(ha, index);
}
- ha->subsys = kmalloc(sizeof (IPS_SUBSYS), GFP_KERNEL);
+ ha->subsys = kmalloc_obj(IPS_SUBSYS, GFP_KERNEL);
if (!ha->subsys) {
IPS_PRINTK(KERN_WARNING, pci_dev,
diff --git a/drivers/scsi/iscsi_boot_sysfs.c b/drivers/scsi/iscsi_boot_sysfs.c
index a64abe38db2d..09fa63fc18f5 100644
--- a/drivers/scsi/iscsi_boot_sysfs.c
+++ b/drivers/scsi/iscsi_boot_sysfs.c
@@ -344,7 +344,7 @@ iscsi_boot_create_kobj(struct iscsi_boot_kset *boot_kset,
{
struct iscsi_boot_kobj *boot_kobj;
- boot_kobj = kzalloc(sizeof(*boot_kobj), GFP_KERNEL);
+ boot_kobj = kzalloc_obj(*boot_kobj, GFP_KERNEL);
if (!boot_kobj)
return NULL;
INIT_LIST_HEAD(&boot_kobj->list);
@@ -497,7 +497,7 @@ struct iscsi_boot_kset *iscsi_boot_create_kset(const char *set_name)
{
struct iscsi_boot_kset *boot_kset;
- boot_kset = kzalloc(sizeof(*boot_kset), GFP_KERNEL);
+ boot_kset = kzalloc_obj(*boot_kset, GFP_KERNEL);
if (!boot_kset)
return NULL;
diff --git a/drivers/scsi/lasi700.c b/drivers/scsi/lasi700.c
index 86fe19e0468d..4663927255ba 100644
--- a/drivers/scsi/lasi700.c
+++ b/drivers/scsi/lasi700.c
@@ -88,7 +88,7 @@ lasi700_probe(struct parisc_device *dev)
struct NCR_700_Host_Parameters *hostdata;
struct Scsi_Host *host;
- hostdata = kzalloc(sizeof(*hostdata), GFP_KERNEL);
+ hostdata = kzalloc_obj(*hostdata, GFP_KERNEL);
if (!hostdata) {
dev_printk(KERN_ERR, &dev->dev, "Failed to allocate host data\n");
return -ENOMEM;
diff --git a/drivers/scsi/libfc/fc_disc.c b/drivers/scsi/libfc/fc_disc.c
index 60d621ad0024..5cc10b70b772 100644
--- a/drivers/scsi/libfc/fc_disc.c
+++ b/drivers/scsi/libfc/fc_disc.c
@@ -116,7 +116,7 @@ static void fc_disc_recv_rscn_req(struct fc_disc *disc, struct fc_frame *fp)
case ELS_ADDR_FMT_PORT:
FC_DISC_DBG(disc, "Port address format for port "
"(%6.6x)\n", ntoh24(pp->rscn_fid));
- dp = kzalloc(sizeof(*dp), GFP_KERNEL);
+ dp = kzalloc_obj(*dp, GFP_KERNEL);
if (!dp) {
redisc = 1;
break;
diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c
index f84a7e6ae379..9183a0e9568a 100644
--- a/drivers/scsi/libfc/fc_exch.c
+++ b/drivers/scsi/libfc/fc_exch.c
@@ -2391,7 +2391,7 @@ struct fc_exch_mgr_anchor *fc_exch_mgr_add(struct fc_lport *lport,
{
struct fc_exch_mgr_anchor *ema;
- ema = kmalloc(sizeof(*ema), GFP_ATOMIC);
+ ema = kmalloc_obj(*ema, GFP_ATOMIC);
if (!ema)
return ema;
@@ -2480,7 +2480,7 @@ struct fc_exch_mgr *fc_exch_mgr_alloc(struct fc_lport *lport,
/*
* allocate memory for EM
*/
- mp = kzalloc(sizeof(struct fc_exch_mgr), GFP_ATOMIC);
+ mp = kzalloc_obj(struct fc_exch_mgr, GFP_ATOMIC);
if (!mp)
return NULL;
diff --git a/drivers/scsi/libfc/fc_fcp.c b/drivers/scsi/libfc/fc_fcp.c
index 2f93f6c65a86..414bd2e45fec 100644
--- a/drivers/scsi/libfc/fc_fcp.c
+++ b/drivers/scsi/libfc/fc_fcp.c
@@ -2298,7 +2298,7 @@ int fc_fcp_init(struct fc_lport *lport)
if (!lport->tt.fcp_abort_io)
lport->tt.fcp_abort_io = fc_fcp_abort_io;
- si = kzalloc(sizeof(struct fc_fcp_internal), GFP_KERNEL);
+ si = kzalloc_obj(struct fc_fcp_internal, GFP_KERNEL);
if (!si)
return -ENOMEM;
lport->scsi_priv = si;
diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c
index 310fa5add5f0..67583e44ad5b 100644
--- a/drivers/scsi/libfc/fc_lport.c
+++ b/drivers/scsi/libfc/fc_lport.c
@@ -2049,7 +2049,7 @@ static int fc_lport_els_request(struct bsg_job *job,
fh->fh_df_ctl = 0;
fh->fh_parm_offset = 0;
- info = kzalloc(sizeof(struct fc_bsg_info), GFP_KERNEL);
+ info = kzalloc_obj(struct fc_bsg_info, GFP_KERNEL);
if (!info) {
fc_frame_free(fp);
return -ENOMEM;
@@ -2109,7 +2109,7 @@ static int fc_lport_ct_request(struct bsg_job *job,
fh->fh_df_ctl = 0;
fh->fh_parm_offset = 0;
- info = kzalloc(sizeof(struct fc_bsg_info), GFP_KERNEL);
+ info = kzalloc_obj(struct fc_bsg_info, GFP_KERNEL);
if (!info) {
fc_frame_free(fp);
return -ENOMEM;
diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
index bcecb4911da9..0d24d6cc2dd8 100644
--- a/drivers/scsi/libsas/sas_ata.c
+++ b/drivers/scsi/libsas/sas_ata.c
@@ -579,7 +579,7 @@ int sas_ata_init(struct domain_device *found_dev)
struct ata_port *ap;
int rc;
- ata_host = kzalloc(sizeof(*ata_host), GFP_KERNEL);
+ ata_host = kzalloc_obj(*ata_host, GFP_KERNEL);
if (!ata_host) {
pr_err("ata host alloc failed.\n");
return -ENOMEM;
diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c
index d953225f6cc2..e48b5233c2e9 100644
--- a/drivers/scsi/libsas/sas_expander.c
+++ b/drivers/scsi/libsas/sas_expander.c
@@ -433,7 +433,7 @@ static int sas_expander_discover(struct domain_device *dev)
struct expander_device *ex = &dev->ex_dev;
int res;
- ex->ex_phy = kcalloc(ex->num_phys, sizeof(*ex->ex_phy), GFP_KERNEL);
+ ex->ex_phy = kzalloc_objs(*ex->ex_phy, ex->num_phys, GFP_KERNEL);
if (!ex->ex_phy)
return -ENOMEM;
diff --git a/drivers/scsi/libsas/sas_init.c b/drivers/scsi/libsas/sas_init.c
index 6b15ad1bcada..08e641374c85 100644
--- a/drivers/scsi/libsas/sas_init.c
+++ b/drivers/scsi/libsas/sas_init.c
@@ -39,7 +39,7 @@ struct sas_task *sas_alloc_task(gfp_t flags)
struct sas_task *sas_alloc_slow_task(gfp_t flags)
{
struct sas_task *task = sas_alloc_task(flags);
- struct sas_task_slow *slow = kmalloc(sizeof(*slow), flags);
+ struct sas_task_slow *slow = kmalloc_obj(*slow, flags);
if (!task || !slow) {
if (task)
@@ -505,7 +505,7 @@ static void phy_enable_work(struct work_struct *work)
static int sas_phy_setup(struct sas_phy *phy)
{
- struct sas_phy_data *d = kzalloc(sizeof(*d), GFP_KERNEL);
+ struct sas_phy_data *d = kzalloc_obj(*d, GFP_KERNEL);
if (!d)
return -ENOMEM;
diff --git a/drivers/scsi/libsas/sas_internal.h b/drivers/scsi/libsas/sas_internal.h
index d104c87f04f5..fafcefcf722a 100644
--- a/drivers/scsi/libsas/sas_internal.h
+++ b/drivers/scsi/libsas/sas_internal.h
@@ -192,7 +192,7 @@ static inline void sas_phy_set_target(struct asd_sas_phy *p, struct domain_devic
static inline struct domain_device *sas_alloc_device(void)
{
- struct domain_device *dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ struct domain_device *dev = kzalloc_obj(*dev, GFP_KERNEL);
if (dev) {
INIT_LIST_HEAD(&dev->siblings);
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c
index 4af5c069635a..fef3f283cfa7 100644
--- a/drivers/scsi/lpfc/lpfc_attr.c
+++ b/drivers/scsi/lpfc/lpfc_attr.c
@@ -2041,7 +2041,7 @@ lpfc_xcvr_data_show(struct device *dev, struct device_attribute *attr,
struct sff_trasnceiver_codes_byte7 *trasn_code_byte7;
/* Get transceiver information */
- rdp_context = kmalloc(sizeof(*rdp_context), GFP_KERNEL);
+ rdp_context = kmalloc_obj(*rdp_context, GFP_KERNEL);
if (!rdp_context) {
len = scnprintf(buf, PAGE_SIZE - len,
"SPF info NA: alloc failure\n");
diff --git a/drivers/scsi/lpfc/lpfc_bsg.c b/drivers/scsi/lpfc/lpfc_bsg.c
index d61d979f9b77..8c2b303ff144 100644
--- a/drivers/scsi/lpfc/lpfc_bsg.c
+++ b/drivers/scsi/lpfc/lpfc_bsg.c
@@ -174,7 +174,7 @@ lpfc_alloc_bsg_buffers(struct lpfc_hba *phba, unsigned int size,
/* Allocate dma buffer and place in BPL passed */
while (bytes_left) {
/* Allocate dma buffer */
- mp = kmalloc(sizeof(struct lpfc_dmabuf), GFP_KERNEL);
+ mp = kmalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (!mp) {
if (mlist)
lpfc_free_bsg_buffers(phba, mlist);
@@ -416,7 +416,7 @@ lpfc_bsg_send_mgmt_cmd(struct bsg_job *job)
return -ENODEV;
/* allocate our bsg tracking structure */
- dd_data = kmalloc(sizeof(struct bsg_job_data), GFP_KERNEL);
+ dd_data = kmalloc_obj(struct bsg_job_data, GFP_KERNEL);
if (!dd_data) {
lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC,
"2733 Failed allocation of dd_data\n");
@@ -430,7 +430,7 @@ lpfc_bsg_send_mgmt_cmd(struct bsg_job *job)
goto free_dd;
}
- bmp = kmalloc(sizeof(struct lpfc_dmabuf), GFP_KERNEL);
+ bmp = kmalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (!bmp) {
rc = -ENOMEM;
goto free_cmdiocbq;
@@ -683,7 +683,7 @@ lpfc_bsg_rport_els(struct bsg_job *job)
}
/* allocate our bsg tracking structure */
- dd_data = kmalloc(sizeof(struct bsg_job_data), GFP_KERNEL);
+ dd_data = kmalloc_obj(struct bsg_job_data, GFP_KERNEL);
if (!dd_data) {
lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC,
"2735 Failed allocation of dd_data\n");
@@ -843,7 +843,7 @@ lpfc_bsg_event_unref(struct lpfc_bsg_event *evt)
static struct lpfc_bsg_event *
lpfc_bsg_event_new(uint32_t ev_mask, int ev_reg_id, uint32_t ev_req_id)
{
- struct lpfc_bsg_event *evt = kzalloc(sizeof(*evt), GFP_KERNEL);
+ struct lpfc_bsg_event *evt = kzalloc_obj(*evt, GFP_KERNEL);
if (!evt)
return NULL;
@@ -939,7 +939,7 @@ lpfc_bsg_ct_unsol_event(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
lpfc_bsg_event_ref(evt);
spin_unlock_irqrestore(&phba->ct_ev_lock, flags);
- evt_dat = kzalloc(sizeof(*evt_dat), GFP_KERNEL);
+ evt_dat = kzalloc_obj(*evt_dat, GFP_KERNEL);
if (evt_dat == NULL) {
spin_lock_irqsave(&phba->ct_ev_lock, flags);
lpfc_bsg_event_unref(evt);
@@ -1215,7 +1215,7 @@ lpfc_bsg_hba_set_event(struct bsg_job *job)
if (&evt->node == &phba->ct_ev_waiters) {
/* no event waiting struct yet - first call */
- dd_data = kmalloc(sizeof(struct bsg_job_data), GFP_KERNEL);
+ dd_data = kmalloc_obj(struct bsg_job_data, GFP_KERNEL);
if (dd_data == NULL) {
lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC,
"2734 Failed allocation of dd_data\n");
@@ -1477,7 +1477,7 @@ lpfc_issue_ct_rsp(struct lpfc_hba *phba, struct bsg_job *job, uint32_t tag,
}
/* allocate our bsg tracking structure */
- dd_data = kmalloc(sizeof(struct bsg_job_data), GFP_KERNEL);
+ dd_data = kmalloc_obj(struct bsg_job_data, GFP_KERNEL);
if (!dd_data) {
lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC,
"2736 Failed allocation of dd_data\n");
@@ -1605,7 +1605,7 @@ lpfc_bsg_send_mgmt_rsp(struct bsg_job *job)
goto send_mgmt_rsp_exit;
}
- bmp = kmalloc(sizeof(struct lpfc_dmabuf), GFP_KERNEL);
+ bmp = kmalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (!bmp) {
rc = -ENOMEM;
goto send_mgmt_rsp_exit;
@@ -2628,7 +2628,7 @@ static int lpfcdiag_loop_get_xri(struct lpfc_hba *phba, uint16_t rpi,
cmdiocbq = lpfc_sli_get_iocbq(phba);
rspiocbq = lpfc_sli_get_iocbq(phba);
- dmabuf = kmalloc(sizeof(struct lpfc_dmabuf), GFP_KERNEL);
+ dmabuf = kmalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (dmabuf) {
dmabuf->virt = lpfc_mbuf_alloc(phba, 0, &dmabuf->phys);
if (dmabuf->virt) {
@@ -2733,7 +2733,7 @@ lpfc_bsg_dma_page_alloc(struct lpfc_hba *phba)
struct pci_dev *pcidev = phba->pcidev;
/* allocate dma buffer struct */
- dmabuf = kmalloc(sizeof(struct lpfc_dmabuf), GFP_KERNEL);
+ dmabuf = kmalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (!dmabuf)
return NULL;
@@ -2829,7 +2829,7 @@ diag_cmd_data_alloc(struct lpfc_hba *phba,
cnt = size;
/* allocate struct lpfc_dmabufext buffer header */
- dmp = kmalloc(sizeof(struct lpfc_dmabufext), GFP_KERNEL);
+ dmp = kmalloc_obj(struct lpfc_dmabufext, GFP_KERNEL);
if (!dmp)
goto out;
@@ -2909,7 +2909,7 @@ static int lpfcdiag_sli3_loop_post_rxbufs(struct lpfc_hba *phba, uint16_t rxxri,
pring = lpfc_phba_elsring(phba);
cmdiocbq = lpfc_sli_get_iocbq(phba);
- rxbmp = kmalloc(sizeof(struct lpfc_dmabuf), GFP_KERNEL);
+ rxbmp = kmalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (rxbmp != NULL) {
rxbmp->virt = lpfc_mbuf_alloc(phba, 0, &rxbmp->phys);
if (rxbmp->virt) {
@@ -3160,7 +3160,7 @@ lpfc_bsg_diag_loopback_run(struct bsg_job *job)
cmdiocbq = lpfc_sli_get_iocbq(phba);
if (phba->sli_rev < LPFC_SLI_REV4)
rspiocbq = lpfc_sli_get_iocbq(phba);
- txbmp = kmalloc(sizeof(struct lpfc_dmabuf), GFP_KERNEL);
+ txbmp = kmalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (txbmp) {
txbmp->virt = lpfc_mbuf_alloc(phba, 0, &txbmp->phys);
@@ -4074,7 +4074,7 @@ lpfc_bsg_sli_cfg_read_cmd_ext(struct lpfc_hba *phba, struct bsg_job *job,
}
/* bsg tracking structure */
- dd_data = kmalloc(sizeof(struct bsg_job_data), GFP_KERNEL);
+ dd_data = kmalloc_obj(struct bsg_job_data, GFP_KERNEL);
if (!dd_data) {
rc = -ENOMEM;
goto job_error;
@@ -4275,7 +4275,7 @@ lpfc_bsg_sli_cfg_write_cmd_ext(struct lpfc_hba *phba, struct bsg_job *job,
if (ext_buf_cnt == 1) {
/* bsg tracking structure */
- dd_data = kmalloc(sizeof(struct bsg_job_data), GFP_KERNEL);
+ dd_data = kmalloc_obj(struct bsg_job_data, GFP_KERNEL);
if (!dd_data) {
rc = -ENOMEM;
goto job_error;
@@ -4624,7 +4624,7 @@ lpfc_bsg_write_ebuf_set(struct lpfc_hba *phba, struct bsg_job *job,
"ebuffers received\n",
phba->mbox_ext_buf_ctx.numBuf);
- dd_data = kmalloc(sizeof(struct bsg_job_data), GFP_KERNEL);
+ dd_data = kmalloc_obj(struct bsg_job_data, GFP_KERNEL);
if (!dd_data) {
rc = -ENOMEM;
goto job_error;
@@ -4896,7 +4896,7 @@ lpfc_bsg_issue_mbox(struct lpfc_hba *phba, struct bsg_job *job,
goto job_done; /* must be negative */
/* allocate our bsg tracking structure */
- dd_data = kmalloc(sizeof(struct bsg_job_data), GFP_KERNEL);
+ dd_data = kmalloc_obj(struct bsg_job_data, GFP_KERNEL);
if (!dd_data) {
lpfc_printf_log(phba, KERN_WARNING, LOG_LIBDFC,
"2727 Failed allocation of dd_data\n");
diff --git a/drivers/scsi/lpfc/lpfc_ct.c b/drivers/scsi/lpfc/lpfc_ct.c
index d3caac394291..a6ae7b7cf99c 100644
--- a/drivers/scsi/lpfc/lpfc_ct.c
+++ b/drivers/scsi/lpfc/lpfc_ct.c
@@ -165,7 +165,7 @@ lpfc_ct_reject_event(struct lpfc_nodelist *ndlp,
u32 tmo;
/* fill in BDEs for command */
- mp = kmalloc(sizeof(*mp), GFP_KERNEL);
+ mp = kmalloc_obj(*mp, GFP_KERNEL);
if (!mp) {
rc = 1;
goto ct_exit;
@@ -178,7 +178,7 @@ lpfc_ct_reject_event(struct lpfc_nodelist *ndlp,
}
/* Allocate buffer for Buffer ptr list */
- bmp = kmalloc(sizeof(*bmp), GFP_KERNEL);
+ bmp = kmalloc_obj(*bmp, GFP_KERNEL);
if (!bmp) {
rc = 3;
goto ct_free_mpvirt;
@@ -498,7 +498,7 @@ lpfc_alloc_ct_rsp(struct lpfc_hba *phba, __be16 cmdcode, struct ulp_bde64 *bpl,
while (size) {
/* Allocate buffer for rsp payload */
- mp = kmalloc(sizeof(struct lpfc_dmabuf), GFP_KERNEL);
+ mp = kmalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (!mp) {
if (mlist)
lpfc_free_ct_rsp(phba, mlist);
@@ -1924,7 +1924,7 @@ lpfc_ns_cmd(struct lpfc_vport *vport, int cmdcode,
/* fill in BDEs for command */
/* Allocate buffer for command payload */
- mp = kmalloc(sizeof(struct lpfc_dmabuf), GFP_KERNEL);
+ mp = kmalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (!mp) {
rc=2;
goto ns_cmd_exit;
@@ -1938,7 +1938,7 @@ lpfc_ns_cmd(struct lpfc_vport *vport, int cmdcode,
}
/* Allocate buffer for Buffer ptr list */
- bmp = kmalloc(sizeof(struct lpfc_dmabuf), GFP_KERNEL);
+ bmp = kmalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (!bmp) {
rc=4;
goto ns_cmd_free_mpvirt;
@@ -3220,7 +3220,7 @@ lpfc_fdmi_cmd(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
/* fill in BDEs for command */
/* Allocate buffer for command payload */
- rq = kmalloc(sizeof(*rq), GFP_KERNEL);
+ rq = kmalloc_obj(*rq, GFP_KERNEL);
if (!rq)
goto fdmi_cmd_exit;
@@ -3229,7 +3229,7 @@ lpfc_fdmi_cmd(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
goto fdmi_cmd_free_rq;
/* Allocate buffer for Buffer ptr list */
- rsp = kmalloc(sizeof(*rsp), GFP_KERNEL);
+ rsp = kmalloc_obj(*rsp, GFP_KERNEL);
if (!rsp)
goto fdmi_cmd_free_rqvirt;
@@ -3716,7 +3716,7 @@ lpfc_vmid_cmd(struct lpfc_vport *vport,
/* fill in BDEs for command */
/* Allocate buffer for command payload */
- mp = kmalloc(sizeof(*mp), GFP_KERNEL);
+ mp = kmalloc_obj(*mp, GFP_KERNEL);
if (!mp)
goto vmid_free_mp_exit;
@@ -3725,7 +3725,7 @@ lpfc_vmid_cmd(struct lpfc_vport *vport,
goto vmid_free_mp_virt_exit;
/* Allocate buffer for Buffer ptr list */
- bmp = kmalloc(sizeof(*bmp), GFP_KERNEL);
+ bmp = kmalloc_obj(*bmp, GFP_KERNEL);
if (!bmp)
goto vmid_free_bmp_exit;
diff --git a/drivers/scsi/lpfc/lpfc_debugfs.c b/drivers/scsi/lpfc/lpfc_debugfs.c
index 646f88c776f5..f9f46119f341 100644
--- a/drivers/scsi/lpfc/lpfc_debugfs.c
+++ b/drivers/scsi/lpfc/lpfc_debugfs.c
@@ -1951,7 +1951,7 @@ lpfc_debugfs_disc_trc_open(struct inode *inode, struct file *file)
goto out;
}
- debug = kmalloc(sizeof(*debug), GFP_KERNEL);
+ debug = kmalloc_obj(*debug, GFP_KERNEL);
if (!debug)
goto out;
@@ -2001,7 +2001,7 @@ lpfc_debugfs_slow_ring_trc_open(struct inode *inode, struct file *file)
goto out;
}
- debug = kmalloc(sizeof(*debug), GFP_KERNEL);
+ debug = kmalloc_obj(*debug, GFP_KERNEL);
if (!debug)
goto out;
@@ -2045,7 +2045,7 @@ lpfc_debugfs_hbqinfo_open(struct inode *inode, struct file *file)
struct lpfc_debug *debug;
int rc = -ENOMEM;
- debug = kmalloc(sizeof(*debug), GFP_KERNEL);
+ debug = kmalloc_obj(*debug, GFP_KERNEL);
if (!debug)
goto out;
@@ -2087,7 +2087,7 @@ lpfc_debugfs_multixripools_open(struct inode *inode, struct file *file)
struct lpfc_debug *debug;
int rc = -ENOMEM;
- debug = kmalloc(sizeof(*debug), GFP_KERNEL);
+ debug = kmalloc_obj(*debug, GFP_KERNEL);
if (!debug)
goto out;
@@ -2132,7 +2132,7 @@ lpfc_debugfs_lockstat_open(struct inode *inode, struct file *file)
struct lpfc_debug *debug;
int rc = -ENOMEM;
- debug = kmalloc(sizeof(*debug), GFP_KERNEL);
+ debug = kmalloc_obj(*debug, GFP_KERNEL);
if (!debug)
goto out;
@@ -2269,7 +2269,7 @@ lpfc_debugfs_ras_log_open(struct inode *inode, struct file *file)
phba->cfg_ras_fwlog_buffsize, &size))
goto out;
- debug = kzalloc(sizeof(*debug), GFP_KERNEL);
+ debug = kzalloc_obj(*debug, GFP_KERNEL);
if (!debug)
goto out;
@@ -2316,7 +2316,7 @@ lpfc_debugfs_dumpHBASlim_open(struct inode *inode, struct file *file)
struct lpfc_debug *debug;
int rc = -ENOMEM;
- debug = kmalloc(sizeof(*debug), GFP_KERNEL);
+ debug = kmalloc_obj(*debug, GFP_KERNEL);
if (!debug)
goto out;
@@ -2358,7 +2358,7 @@ lpfc_debugfs_dumpHostSlim_open(struct inode *inode, struct file *file)
struct lpfc_debug *debug;
int rc = -ENOMEM;
- debug = kmalloc(sizeof(*debug), GFP_KERNEL);
+ debug = kmalloc_obj(*debug, GFP_KERNEL);
if (!debug)
goto out;
@@ -2522,7 +2522,7 @@ lpfc_debugfs_nodelist_open(struct inode *inode, struct file *file)
struct lpfc_debug *debug;
int rc = -ENOMEM;
- debug = kmalloc(sizeof(*debug), GFP_KERNEL);
+ debug = kmalloc_obj(*debug, GFP_KERNEL);
if (!debug)
goto out;
@@ -2688,7 +2688,7 @@ lpfc_debugfs_nvmestat_open(struct inode *inode, struct file *file)
struct lpfc_debug *debug;
int rc = -ENOMEM;
- debug = kmalloc(sizeof(*debug), GFP_KERNEL);
+ debug = kmalloc_obj(*debug, GFP_KERNEL);
if (!debug)
goto out;
@@ -2776,7 +2776,7 @@ lpfc_debugfs_scsistat_open(struct inode *inode, struct file *file)
struct lpfc_debug *debug;
int rc = -ENOMEM;
- debug = kmalloc(sizeof(*debug), GFP_KERNEL);
+ debug = kmalloc_obj(*debug, GFP_KERNEL);
if (!debug)
goto out;
@@ -2830,7 +2830,7 @@ lpfc_debugfs_ioktime_open(struct inode *inode, struct file *file)
struct lpfc_debug *debug;
int rc = -ENOMEM;
- debug = kmalloc(sizeof(*debug), GFP_KERNEL);
+ debug = kmalloc_obj(*debug, GFP_KERNEL);
if (!debug)
goto out;
@@ -2957,7 +2957,7 @@ lpfc_debugfs_nvmeio_trc_open(struct inode *inode, struct file *file)
struct lpfc_debug *debug;
int rc = -ENOMEM;
- debug = kmalloc(sizeof(*debug), GFP_KERNEL);
+ debug = kmalloc_obj(*debug, GFP_KERNEL);
if (!debug)
goto out;
@@ -3062,7 +3062,7 @@ lpfc_debugfs_hdwqstat_open(struct inode *inode, struct file *file)
struct lpfc_debug *debug;
int rc = -ENOMEM;
- debug = kmalloc(sizeof(*debug), GFP_KERNEL);
+ debug = kmalloc_obj(*debug, GFP_KERNEL);
if (!debug)
goto out;
@@ -3226,7 +3226,7 @@ lpfc_idiag_open(struct inode *inode, struct file *file)
{
struct lpfc_debug *debug;
- debug = kmalloc(sizeof(*debug), GFP_KERNEL);
+ debug = kmalloc_obj(*debug, GFP_KERNEL);
if (!debug)
return -ENOMEM;
@@ -5471,7 +5471,7 @@ lpfc_cgn_buffer_open(struct inode *inode, struct file *file)
struct lpfc_debug *debug;
int rc = -ENOMEM;
- debug = kmalloc(sizeof(*debug), GFP_KERNEL);
+ debug = kmalloc_obj(*debug, GFP_KERNEL);
if (!debug)
goto out;
@@ -5563,7 +5563,7 @@ lpfc_rx_monitor_open(struct inode *inode, struct file *file)
struct lpfc_rx_monitor_debug *debug;
int rc = -ENOMEM;
- debug = kmalloc(sizeof(*debug), GFP_KERNEL);
+ debug = kmalloc_obj(*debug, GFP_KERNEL);
if (!debug)
goto out;
@@ -6210,10 +6210,9 @@ lpfc_debugfs_initialize(struct lpfc_vport *vport)
phba->hba_debugfs_root, phba,
&lpfc_debugfs_op_slow_ring_trc);
if (!phba->slow_ring_trc) {
- phba->slow_ring_trc = kcalloc(
- lpfc_debugfs_max_slow_ring_trc,
- sizeof(struct lpfc_debugfs_trc),
- GFP_KERNEL);
+ phba->slow_ring_trc = kzalloc_objs(struct lpfc_debugfs_trc,
+ lpfc_debugfs_max_slow_ring_trc,
+ GFP_KERNEL);
if (!phba->slow_ring_trc) {
lpfc_printf_vlog(vport, KERN_ERR, LOG_INIT,
"0416 Cannot create debugfs "
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index 32da3c23c7f4..5177f0a80670 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -216,7 +216,7 @@ lpfc_prep_els_iocb(struct lpfc_vport *vport, u8 expect_rsp,
/* fill in BDEs for command */
/* Allocate buffer for command payload */
- pcmd = kmalloc(sizeof(*pcmd), GFP_KERNEL);
+ pcmd = kmalloc_obj(*pcmd, GFP_KERNEL);
if (pcmd)
pcmd->virt = lpfc_mbuf_alloc(phba, MEM_PRI, &pcmd->phys);
if (!pcmd || !pcmd->virt)
@@ -226,7 +226,7 @@ lpfc_prep_els_iocb(struct lpfc_vport *vport, u8 expect_rsp,
/* Allocate buffer for response payload */
if (expect_rsp) {
- prsp = kmalloc(sizeof(*prsp), GFP_KERNEL);
+ prsp = kmalloc_obj(*prsp, GFP_KERNEL);
if (prsp)
prsp->virt = lpfc_mbuf_alloc(phba, MEM_PRI,
&prsp->phys);
@@ -238,7 +238,7 @@ lpfc_prep_els_iocb(struct lpfc_vport *vport, u8 expect_rsp,
}
/* Allocate buffer for Buffer ptr list */
- pbuflist = kmalloc(sizeof(*pbuflist), GFP_KERNEL);
+ pbuflist = kmalloc_obj(*pbuflist, GFP_KERNEL);
if (pbuflist)
pbuflist->virt = lpfc_mbuf_alloc(phba, MEM_PRI,
&pbuflist->phys);
@@ -7537,7 +7537,7 @@ lpfc_els_rcv_rdp(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb,
if (RDP_NPORT_ID_SIZE !=
be32_to_cpu(rdp_req->nport_id_desc.length))
goto rjt_logerr;
- rdp_context = kzalloc(sizeof(struct lpfc_rdp_context), GFP_KERNEL);
+ rdp_context = kzalloc_obj(struct lpfc_rdp_context, GFP_KERNEL);
if (!rdp_context) {
rjt_err = LSRJT_UNABLE_TPC;
goto error;
@@ -7842,7 +7842,7 @@ lpfc_els_rcv_lcb(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb,
goto rjt;
}
- lcb_context = kmalloc(sizeof(*lcb_context), GFP_KERNEL);
+ lcb_context = kmalloc_obj(*lcb_context, GFP_KERNEL);
if (!lcb_context) {
rjt_err = LSRJT_UNABLE_TPC;
goto rjt;
@@ -9965,7 +9965,7 @@ lpfc_send_els_event(struct lpfc_vport *vport,
struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
if (*payload == ELS_CMD_LOGO) {
- logo_data = kmalloc(sizeof(struct lpfc_logo_event), GFP_KERNEL);
+ logo_data = kmalloc_obj(struct lpfc_logo_event, GFP_KERNEL);
if (!logo_data) {
lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
"0148 Failed to allocate memory "
@@ -9974,8 +9974,7 @@ lpfc_send_els_event(struct lpfc_vport *vport,
}
els_data = &logo_data->header;
} else {
- els_data = kmalloc(sizeof(struct lpfc_els_event_header),
- GFP_KERNEL);
+ els_data = kmalloc_obj(struct lpfc_els_event_header, GFP_KERNEL);
if (!els_data) {
lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
"0149 Failed to allocate memory "
@@ -12325,8 +12324,8 @@ lpfc_cmpl_els_qfpa(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
if (!vport->qfpa_res) {
max_desc = FCELSSIZE / sizeof(*vport->qfpa_res);
- vport->qfpa_res = kcalloc(max_desc, sizeof(*vport->qfpa_res),
- GFP_KERNEL);
+ vport->qfpa_res = kzalloc_objs(*vport->qfpa_res, max_desc,
+ GFP_KERNEL);
if (!vport->qfpa_res)
goto out;
}
@@ -12339,8 +12338,8 @@ lpfc_cmpl_els_qfpa(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
desc = (struct priority_range_desc *)(pcmd + 8);
vmid_range = vport->vmid_priority.vmid_range;
if (!vmid_range) {
- vmid_range = kcalloc(MAX_PRIORITY_DESC, sizeof(*vmid_range),
- GFP_KERNEL);
+ vmid_range = kzalloc_objs(*vmid_range, MAX_PRIORITY_DESC,
+ GFP_KERNEL);
if (!vmid_range) {
kfree(vport->qfpa_res);
goto out;
@@ -12438,7 +12437,7 @@ lpfc_vmid_uvem(struct lpfc_vport *vport,
if (!ndlp || ndlp->nlp_state != NLP_STE_UNMAPPED_NODE)
return -ENXIO;
- vmid_context = kmalloc(sizeof(*vmid_context), GFP_KERNEL);
+ vmid_context = kmalloc_obj(*vmid_context, GFP_KERNEL);
if (!vmid_context)
return -ENOMEM;
elsiocb = lpfc_prep_els_iocb(vport, 1, LPFC_UVEM_SIZE, 2,
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 1aeebdc08073..0e6cc42c61c9 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -726,8 +726,7 @@ lpfc_alloc_fast_evt(struct lpfc_hba *phba) {
if (atomic_read(&phba->fast_event_count) > LPFC_MAX_EVT_COUNT)
return NULL;
- ret = kzalloc(sizeof(struct lpfc_fast_path_event),
- GFP_ATOMIC);
+ ret = kzalloc_obj(struct lpfc_fast_path_event, GFP_ATOMIC);
if (ret) {
atomic_inc(&phba->fast_event_count);
INIT_LIST_HEAD(&ret->work_evt.evt_listp);
@@ -1141,7 +1140,7 @@ lpfc_workq_post_event(struct lpfc_hba *phba, void *arg1, void *arg2,
* All Mailbox completions and LPFC_ELS_RING rcv ring IOCB events will
* be queued to worker thread for processing
*/
- evtp = kmalloc(sizeof(struct lpfc_work_evt), GFP_ATOMIC);
+ evtp = kmalloc_obj(struct lpfc_work_evt, GFP_ATOMIC);
if (!evtp)
return 0;
@@ -3644,8 +3643,7 @@ lpfc_mbx_process_link_up(struct lpfc_hba *phba, struct lpfc_mbx_read_top *la)
* defaults.
*/
if (!test_bit(HBA_FIP_SUPPORT, &phba->hba_flag)) {
- fcf_record = kzalloc(sizeof(struct fcf_record),
- GFP_KERNEL);
+ fcf_record = kzalloc_obj(struct fcf_record, GFP_KERNEL);
if (unlikely(!fcf_record)) {
lpfc_printf_log(phba, KERN_ERR,
LOG_TRACE_EVENT,
@@ -4056,7 +4054,7 @@ lpfc_create_static_vport(struct lpfc_hba *phba)
memset(pmb, 0, sizeof(LPFC_MBOXQ_t));
mb = &pmb->u.mb;
- vport_info = kzalloc(sizeof(struct static_vport_info), GFP_KERNEL);
+ vport_info = kzalloc_obj(struct static_vport_info, GFP_KERNEL);
if (!vport_info) {
lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
"0543 lpfc_create_static_vport failed to"
@@ -7012,8 +7010,7 @@ lpfc_read_fcf_conn_tbl(struct lpfc_hba *phba,
for (i = 0; i < record_count; i++) {
if (!(conn_rec[i].flags & FCFCNCT_VALID))
continue;
- conn_entry = kzalloc(sizeof(struct lpfc_fcf_conn_entry),
- GFP_KERNEL);
+ conn_entry = kzalloc_obj(struct lpfc_fcf_conn_entry, GFP_KERNEL);
if (!conn_entry) {
lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
"2566 Failed to allocate connection"
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index a116a16c4a6f..1139fb7dc0fb 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -2820,7 +2820,7 @@ lpfc_sli3_post_buffer(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, int cn
/* 2 buffers can be posted per command */
/* Allocate buffer to post */
- mp1 = kmalloc(sizeof (struct lpfc_dmabuf), GFP_KERNEL);
+ mp1 = kmalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (mp1)
mp1->virt = lpfc_mbuf_alloc(phba, MEM_PRI, &mp1->phys);
if (!mp1 || !mp1->virt) {
@@ -2833,7 +2833,7 @@ lpfc_sli3_post_buffer(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, int cn
INIT_LIST_HEAD(&mp1->list);
/* Allocate buffer to post */
if (cnt > 1) {
- mp2 = kmalloc(sizeof (struct lpfc_dmabuf), GFP_KERNEL);
+ mp2 = kmalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (mp2)
mp2->virt = lpfc_mbuf_alloc(phba, MEM_PRI,
&mp2->phys);
@@ -3539,7 +3539,7 @@ void lpfc_create_multixri_pools(struct lpfc_hba *phba)
count_per_hwq = phba->sli4_hba.io_xri_cnt / hwq_count;
for (i = 0; i < hwq_count; i++) {
- multixri_pool = kzalloc(sizeof(*multixri_pool), GFP_KERNEL);
+ multixri_pool = kzalloc_obj(*multixri_pool, GFP_KERNEL);
if (!multixri_pool) {
lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
@@ -4064,8 +4064,7 @@ lpfc_sli4_els_sgl_update(struct lpfc_hba *phba)
els_xri_cnt);
/* allocate the additional els sgls */
for (i = 0; i < xri_cnt; i++) {
- sglq_entry = kzalloc(sizeof(struct lpfc_sglq),
- GFP_KERNEL);
+ sglq_entry = kzalloc_obj(struct lpfc_sglq, GFP_KERNEL);
if (sglq_entry == NULL) {
lpfc_printf_log(phba, KERN_ERR,
LOG_TRACE_EVENT,
@@ -4184,8 +4183,7 @@ lpfc_sli4_nvmet_sgl_update(struct lpfc_hba *phba)
phba->sli4_hba.nvmet_xri_cnt, nvmet_xri_cnt);
/* allocate the additional nvmet sgls */
for (i = 0; i < xri_cnt; i++) {
- sglq_entry = kzalloc(sizeof(struct lpfc_sglq),
- GFP_KERNEL);
+ sglq_entry = kzalloc_obj(struct lpfc_sglq, GFP_KERNEL);
if (sglq_entry == NULL) {
lpfc_printf_log(phba, KERN_ERR,
LOG_TRACE_EVENT,
@@ -4478,7 +4476,7 @@ lpfc_new_io_buf(struct lpfc_hba *phba, int num_to_alloc)
phba->sli4_hba.io_xri_cnt = 0;
for (bcnt = 0; bcnt < num_to_alloc; bcnt++) {
- lpfc_ncmd = kzalloc(sizeof(*lpfc_ncmd), GFP_KERNEL);
+ lpfc_ncmd = kzalloc_obj(*lpfc_ncmd, GFP_KERNEL);
if (!lpfc_ncmd)
break;
/*
@@ -4637,8 +4635,8 @@ lpfc_vmid_res_alloc(struct lpfc_hba *phba, struct lpfc_vport *vport)
if (lpfc_is_vmid_enabled(phba)) {
vport->vmid =
- kcalloc(phba->cfg_max_vmid, sizeof(struct lpfc_vmid),
- GFP_KERNEL);
+ kzalloc_objs(struct lpfc_vmid, phba->cfg_max_vmid,
+ GFP_KERNEL);
if (!vport->vmid)
return -ENOMEM;
@@ -7773,9 +7771,9 @@ lpfc_sli_driver_resource_setup(struct lpfc_hba *phba)
return -ENODEV;
if (!phba->sli.sli3_ring)
- phba->sli.sli3_ring = kcalloc(LPFC_SLI3_MAX_RING,
- sizeof(struct lpfc_sli_ring),
- GFP_KERNEL);
+ phba->sli.sli3_ring = kzalloc_objs(struct lpfc_sli_ring,
+ LPFC_SLI3_MAX_RING,
+ GFP_KERNEL);
if (!phba->sli.sli3_ring)
return -ENOMEM;
@@ -8357,9 +8355,9 @@ lpfc_sli4_driver_resource_setup(struct lpfc_hba *phba)
goto out_remove_rpi_hdrs;
}
- phba->sli4_hba.hba_eq_hdl = kcalloc(phba->cfg_irq_chann,
- sizeof(struct lpfc_hba_eq_hdl),
- GFP_KERNEL);
+ phba->sli4_hba.hba_eq_hdl = kzalloc_objs(struct lpfc_hba_eq_hdl,
+ phba->cfg_irq_chann,
+ GFP_KERNEL);
if (!phba->sli4_hba.hba_eq_hdl) {
lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
"2572 Failed allocate memory for "
@@ -8368,9 +8366,9 @@ lpfc_sli4_driver_resource_setup(struct lpfc_hba *phba)
goto out_free_fcf_rr_bmask;
}
- phba->sli4_hba.cpu_map = kcalloc(phba->sli4_hba.num_possible_cpu,
- sizeof(struct lpfc_vector_map_info),
- GFP_KERNEL);
+ phba->sli4_hba.cpu_map = kzalloc_objs(struct lpfc_vector_map_info,
+ phba->sli4_hba.num_possible_cpu,
+ GFP_KERNEL);
if (!phba->sli4_hba.cpu_map) {
lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
"3327 Failed allocate memory for msi-x "
@@ -8387,9 +8385,9 @@ lpfc_sli4_driver_resource_setup(struct lpfc_hba *phba)
goto out_free_hba_cpu_map;
}
- phba->sli4_hba.idle_stat = kcalloc(phba->sli4_hba.num_possible_cpu,
- sizeof(*phba->sli4_hba.idle_stat),
- GFP_KERNEL);
+ phba->sli4_hba.idle_stat = kzalloc_objs(*phba->sli4_hba.idle_stat,
+ phba->sli4_hba.num_possible_cpu,
+ GFP_KERNEL);
if (!phba->sli4_hba.idle_stat) {
lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
"3390 Failed allocation for idle_stat\n");
@@ -8663,7 +8661,7 @@ lpfc_init_iocb_list(struct lpfc_hba *phba, int iocb_count)
/* Initialize and populate the iocb list per host. */
INIT_LIST_HEAD(&phba->lpfc_iocb_list);
for (i = 0; i < iocb_count; i++) {
- iocbq_entry = kzalloc(sizeof(struct lpfc_iocbq), GFP_KERNEL);
+ iocbq_entry = kzalloc_obj(struct lpfc_iocbq, GFP_KERNEL);
if (iocbq_entry == NULL) {
printk(KERN_ERR "%s: only allocated %d iocbs of "
"expected %d count. Unloading driver.\n",
@@ -8913,7 +8911,7 @@ lpfc_sli4_create_rpi_hdr(struct lpfc_hba *phba)
* First allocate the protocol header region for the port. The
* port expects a 4KB DMA-mapped memory region that is 4K aligned.
*/
- dmabuf = kzalloc(sizeof(struct lpfc_dmabuf), GFP_KERNEL);
+ dmabuf = kzalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (!dmabuf)
return NULL;
@@ -8931,7 +8929,7 @@ lpfc_sli4_create_rpi_hdr(struct lpfc_hba *phba)
}
/* Save the rpi header data for cleanup later. */
- rpi_hdr = kzalloc(sizeof(struct lpfc_rpi_hdr), GFP_KERNEL);
+ rpi_hdr = kzalloc_obj(struct lpfc_rpi_hdr, GFP_KERNEL);
if (!rpi_hdr)
goto err_free_coherent;
@@ -9004,7 +9002,7 @@ lpfc_hba_alloc(struct pci_dev *pdev)
struct lpfc_hba *phba;
/* Allocate memory for HBA structure */
- phba = kzalloc(sizeof(struct lpfc_hba), GFP_KERNEL);
+ phba = kzalloc_obj(struct lpfc_hba, GFP_KERNEL);
if (!phba) {
dev_err(&pdev->dev, "failed to allocate hba struct\n");
return NULL;
@@ -9722,7 +9720,7 @@ lpfc_create_bootstrap_mbox(struct lpfc_hba *phba)
uint32_t pa_addr;
uint64_t phys_addr;
- dmabuf = kzalloc(sizeof(struct lpfc_dmabuf), GFP_KERNEL);
+ dmabuf = kzalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (!dmabuf)
return -ENOMEM;
@@ -10442,9 +10440,9 @@ lpfc_sli4_queue_create(struct lpfc_hba *phba)
phba->sli4_hba.cq_ecount = LPFC_CQE_DEF_COUNT;
if (!phba->sli4_hba.hdwq) {
- phba->sli4_hba.hdwq = kcalloc(
- phba->cfg_hdw_queue, sizeof(struct lpfc_sli4_hdw_queue),
- GFP_KERNEL);
+ phba->sli4_hba.hdwq = kzalloc_objs(struct lpfc_sli4_hdw_queue,
+ phba->cfg_hdw_queue,
+ GFP_KERNEL);
if (!phba->sli4_hba.hdwq) {
lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
"6427 Failed allocate memory for "
@@ -10473,30 +10471,27 @@ lpfc_sli4_queue_create(struct lpfc_hba *phba)
if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) {
if (phba->nvmet_support) {
- phba->sli4_hba.nvmet_cqset = kcalloc(
- phba->cfg_nvmet_mrq,
- sizeof(struct lpfc_queue *),
- GFP_KERNEL);
+ phba->sli4_hba.nvmet_cqset = kzalloc_objs(struct lpfc_queue *,
+ phba->cfg_nvmet_mrq,
+ GFP_KERNEL);
if (!phba->sli4_hba.nvmet_cqset) {
lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
"3121 Fail allocate memory for "
"fast-path CQ set array\n");
goto out_error;
}
- phba->sli4_hba.nvmet_mrq_hdr = kcalloc(
- phba->cfg_nvmet_mrq,
- sizeof(struct lpfc_queue *),
- GFP_KERNEL);
+ phba->sli4_hba.nvmet_mrq_hdr = kzalloc_objs(struct lpfc_queue *,
+ phba->cfg_nvmet_mrq,
+ GFP_KERNEL);
if (!phba->sli4_hba.nvmet_mrq_hdr) {
lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
"3122 Fail allocate memory for "
"fast-path RQ set hdr array\n");
goto out_error;
}
- phba->sli4_hba.nvmet_mrq_data = kcalloc(
- phba->cfg_nvmet_mrq,
- sizeof(struct lpfc_queue *),
- GFP_KERNEL);
+ phba->sli4_hba.nvmet_mrq_data = kzalloc_objs(struct lpfc_queue *,
+ phba->cfg_nvmet_mrq,
+ GFP_KERNEL);
if (!phba->sli4_hba.nvmet_mrq_data) {
lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
"3124 Fail allocate memory for "
@@ -11381,8 +11376,9 @@ lpfc_sli4_queue_setup(struct lpfc_hba *phba)
if (phba->sli4_hba.cq_max) {
kfree(phba->sli4_hba.cq_lookup);
- phba->sli4_hba.cq_lookup = kcalloc((phba->sli4_hba.cq_max + 1),
- sizeof(struct lpfc_queue *), GFP_KERNEL);
+ phba->sli4_hba.cq_lookup = kzalloc_objs(struct lpfc_queue *,
+ (phba->sli4_hba.cq_max + 1),
+ GFP_KERNEL);
if (!phba->sli4_hba.cq_lookup) {
lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
"0549 Failed setup of CQ Lookup table: "
@@ -11511,7 +11507,7 @@ lpfc_sli4_cq_event_pool_create(struct lpfc_hba *phba)
int i;
for (i = 0; i < (4 * phba->sli4_hba.cq_ecount); i++) {
- cq_event = kmalloc(sizeof(struct lpfc_cq_event), GFP_KERNEL);
+ cq_event = kmalloc_obj(struct lpfc_cq_event, GFP_KERNEL);
if (!cq_event)
goto out_pool_create_fail;
list_add_tail(&cq_event->list,
@@ -14616,8 +14612,7 @@ lpfc_write_firmware(const struct firmware *fw, void *context)
"New Version:%s\n",
fwrev, image->revision);
for (i = 0; i < LPFC_MBX_WR_CONFIG_MAX_BDE; i++) {
- dmabuf = kzalloc(sizeof(struct lpfc_dmabuf),
- GFP_KERNEL);
+ dmabuf = kzalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (!dmabuf) {
rc = -ENOMEM;
goto release_out;
diff --git a/drivers/scsi/lpfc/lpfc_mbox.c b/drivers/scsi/lpfc/lpfc_mbox.c
index fb6dbcb86c09..5f7249e6bda8 100644
--- a/drivers/scsi/lpfc/lpfc_mbox.c
+++ b/drivers/scsi/lpfc/lpfc_mbox.c
@@ -64,7 +64,7 @@ lpfc_mbox_rsrc_prep(struct lpfc_hba *phba, LPFC_MBOXQ_t *mbox)
{
struct lpfc_dmabuf *mp;
- mp = kmalloc(sizeof(*mp), GFP_KERNEL);
+ mp = kmalloc_obj(*mp, GFP_KERNEL);
if (!mp)
return -ENOMEM;
@@ -1869,8 +1869,8 @@ lpfc_sli4_config(struct lpfc_hba *phba, struct lpfcMboxq *mbox,
pcount = (pcount > LPFC_SLI4_MBX_SGE_MAX_PAGES) ?
LPFC_SLI4_MBX_SGE_MAX_PAGES : pcount;
/* Allocate record for keeping SGE virtual addresses */
- mbox->sge_array = kzalloc(sizeof(struct lpfc_mbx_nembed_sge_virt),
- GFP_KERNEL);
+ mbox->sge_array = kzalloc_obj(struct lpfc_mbx_nembed_sge_virt,
+ GFP_KERNEL);
if (!mbox->sge_array) {
lpfc_printf_log(phba, KERN_ERR, LOG_MBOX,
"2527 Failed to allocate non-embedded SGE "
diff --git a/drivers/scsi/lpfc/lpfc_mem.c b/drivers/scsi/lpfc/lpfc_mem.c
index 2697da3248b3..c067d6762ae3 100644
--- a/drivers/scsi/lpfc/lpfc_mem.c
+++ b/drivers/scsi/lpfc/lpfc_mem.c
@@ -118,9 +118,8 @@ lpfc_mem_alloc(struct lpfc_hba *phba, int align)
if (!phba->lpfc_mbuf_pool)
goto fail;
- pool->elements = kmalloc_array(LPFC_MBUF_POOL_SIZE,
- sizeof(struct lpfc_dmabuf),
- GFP_KERNEL);
+ pool->elements = kmalloc_objs(struct lpfc_dmabuf, LPFC_MBUF_POOL_SIZE,
+ GFP_KERNEL);
if (!pool->elements)
goto fail_free_lpfc_mbuf_pool;
@@ -511,7 +510,7 @@ lpfc_els_hbq_alloc(struct lpfc_hba *phba)
{
struct hbq_dmabuf *hbqbp;
- hbqbp = kzalloc(sizeof(struct hbq_dmabuf), GFP_KERNEL);
+ hbqbp = kzalloc_obj(struct hbq_dmabuf, GFP_KERNEL);
if (!hbqbp)
return NULL;
@@ -563,7 +562,7 @@ lpfc_sli4_rb_alloc(struct lpfc_hba *phba)
{
struct hbq_dmabuf *dma_buf;
- dma_buf = kzalloc(sizeof(struct hbq_dmabuf), GFP_KERNEL);
+ dma_buf = kzalloc_obj(struct hbq_dmabuf, GFP_KERNEL);
if (!dma_buf)
return NULL;
@@ -621,7 +620,7 @@ lpfc_sli4_nvmet_alloc(struct lpfc_hba *phba)
{
struct rqb_dmabuf *dma_buf;
- dma_buf = kzalloc(sizeof(*dma_buf), GFP_KERNEL);
+ dma_buf = kzalloc_obj(*dma_buf, GFP_KERNEL);
if (!dma_buf)
return NULL;
diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c
index 8240d59f4120..9e61021edfe1 100644
--- a/drivers/scsi/lpfc/lpfc_nportdisc.c
+++ b/drivers/scsi/lpfc/lpfc_nportdisc.c
@@ -564,7 +564,7 @@ lpfc_rcv_plogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
if (!login_mbox)
goto out;
- save_iocb = kzalloc(sizeof(*save_iocb), GFP_KERNEL);
+ save_iocb = kzalloc_obj(*save_iocb, GFP_KERNEL);
if (!save_iocb)
goto out;
@@ -764,7 +764,7 @@ lpfc_rcv_padisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
* registered.
*/
if (test_bit(NLP_RPI_REGISTERED, &ndlp->nlp_flag)) {
- elsiocb = kmalloc(sizeof(*elsiocb), GFP_KERNEL);
+ elsiocb = kmalloc_obj(*elsiocb, GFP_KERNEL);
if (elsiocb) {
/* Save info from cmd IOCB used in
* rsp
diff --git a/drivers/scsi/lpfc/lpfc_nvme.c b/drivers/scsi/lpfc/lpfc_nvme.c
index e6f632521cff..edddb1e9a353 100644
--- a/drivers/scsi/lpfc/lpfc_nvme.c
+++ b/drivers/scsi/lpfc/lpfc_nvme.c
@@ -98,7 +98,7 @@ lpfc_nvme_create_queue(struct nvme_fc_local_port *pnvme_lport,
test_bit(HBA_IOQ_FLUSH, &vport->phba->hba_flag))
return -ENODEV;
- qhandle = kzalloc(sizeof(struct lpfc_nvme_qhandle), GFP_KERNEL);
+ qhandle = kzalloc_obj(struct lpfc_nvme_qhandle, GFP_KERNEL);
if (qhandle == NULL)
return -ENOMEM;
@@ -587,7 +587,7 @@ __lpfc_nvme_ls_req(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
* in the nvme-fc layer.
*/
- bmp = kmalloc(sizeof(*bmp), GFP_KERNEL);
+ bmp = kmalloc_obj(*bmp, GFP_KERNEL);
if (!bmp) {
lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
"6044 NVMEx LS REQ: Could not alloc LS buf "
diff --git a/drivers/scsi/lpfc/lpfc_nvmet.c b/drivers/scsi/lpfc/lpfc_nvmet.c
index 4cfc928bcf2d..48642f01f2c9 100644
--- a/drivers/scsi/lpfc/lpfc_nvmet.c
+++ b/drivers/scsi/lpfc/lpfc_nvmet.c
@@ -1507,9 +1507,9 @@ lpfc_nvmet_setup_io_context(struct lpfc_hba *phba)
"6403 Allocate NVMET resources for %d XRIs\n",
phba->sli4_hba.nvmet_xri_cnt);
- phba->sli4_hba.nvmet_ctx_info = kcalloc(
- phba->sli4_hba.num_possible_cpu * phba->cfg_nvmet_mrq,
- sizeof(struct lpfc_nvmet_ctx_info), GFP_KERNEL);
+ phba->sli4_hba.nvmet_ctx_info = kzalloc_objs(struct lpfc_nvmet_ctx_info,
+ phba->sli4_hba.num_possible_cpu * phba->cfg_nvmet_mrq,
+ GFP_KERNEL);
if (!phba->sli4_hba.nvmet_ctx_info) {
lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
"6419 Failed allocate memory for "
@@ -1567,15 +1567,14 @@ lpfc_nvmet_setup_io_context(struct lpfc_hba *phba)
idx = 0;
cpu = cpumask_first(cpu_present_mask);
for (i = 0; i < phba->sli4_hba.nvmet_xri_cnt; i++) {
- ctx_buf = kzalloc(sizeof(*ctx_buf), GFP_KERNEL);
+ ctx_buf = kzalloc_obj(*ctx_buf, GFP_KERNEL);
if (!ctx_buf) {
lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
"6404 Ran out of memory for NVMET\n");
return -ENOMEM;
}
- ctx_buf->context = kzalloc(sizeof(*ctx_buf->context),
- GFP_KERNEL);
+ ctx_buf->context = kzalloc_obj(*ctx_buf->context, GFP_KERNEL);
if (!ctx_buf->context) {
kfree(ctx_buf);
lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
index df64948e55ee..ca2bd782608d 100644
--- a/drivers/scsi/lpfc/lpfc_scsi.c
+++ b/drivers/scsi/lpfc/lpfc_scsi.c
@@ -265,7 +265,7 @@ lpfc_new_scsi_buf_s3(struct lpfc_vport *vport, int num_to_alloc)
(int)sizeof(struct fcp_rsp), bpl_size);
for (bcnt = 0; bcnt < num_to_alloc; bcnt++) {
- psb = kzalloc(sizeof(struct lpfc_io_buf), GFP_KERNEL);
+ psb = kzalloc_obj(struct lpfc_io_buf, GFP_KERNEL);
if (!psb)
break;
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index 734af3d039f8..b328fc772bd8 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -2135,8 +2135,7 @@ lpfc_sli_next_iotag(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
- LPFC_IOCBQ_LOOKUP_INCREMENT)) {
new_len = psli->iocbq_lookup_len + LPFC_IOCBQ_LOOKUP_INCREMENT;
spin_unlock_irq(&phba->hbalock);
- new_arr = kcalloc(new_len, sizeof(struct lpfc_iocbq *),
- GFP_KERNEL);
+ new_arr = kzalloc_objs(struct lpfc_iocbq *, new_len, GFP_KERNEL);
if (new_arr) {
spin_lock_irq(&phba->hbalock);
old_arr = psli->iocbq_lookup;
@@ -3240,7 +3239,7 @@ lpfc_nvme_unsol_ls_handler(struct lpfc_hba *phba, struct lpfc_iocbq *piocb)
(FC_FC_FIRST_SEQ | FC_FC_END_SEQ | FC_FC_SEQ_INIT))) {
failwhy = "Bad NVME LS F_CTL";
} else {
- axchg = kzalloc(sizeof(*axchg), GFP_ATOMIC);
+ axchg = kzalloc_obj(*axchg, GFP_ATOMIC);
if (!axchg)
failwhy = "No CTX memory";
}
@@ -5894,7 +5893,7 @@ lpfc_sli4_read_rev(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq,
struct lpfc_dmabuf *dmabuf;
struct lpfc_mqe *mqe;
- dmabuf = kzalloc(sizeof(struct lpfc_dmabuf), GFP_KERNEL);
+ dmabuf = kzalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (!dmabuf)
return -ENOMEM;
@@ -6944,8 +6943,7 @@ lpfc_sli4_ras_dma_alloc(struct lpfc_hba *phba,
ras_fwlog->fw_buffcount = fwlog_buff_count;
for (i = 0; i < ras_fwlog->fw_buffcount; i++) {
- dmabuf = kzalloc(sizeof(struct lpfc_dmabuf),
- GFP_KERNEL);
+ dmabuf = kzalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (!dmabuf) {
rc = -ENOMEM;
lpfc_printf_log(phba, KERN_WARNING, LOG_INIT,
@@ -8048,8 +8046,8 @@ static void lpfc_sli4_dip(struct lpfc_hba *phba)
int lpfc_rx_monitor_create_ring(struct lpfc_rx_info_monitor *rx_monitor,
u32 entries)
{
- rx_monitor->ring = kmalloc_array(entries, sizeof(struct rx_info_entry),
- GFP_KERNEL);
+ rx_monitor->ring = kmalloc_objs(struct rx_info_entry, entries,
+ GFP_KERNEL);
if (!rx_monitor->ring)
return -ENOMEM;
@@ -8296,7 +8294,7 @@ lpfc_cmf_setup(struct lpfc_hba *phba)
/* Allocate Congestion Information Buffer */
if (!phba->cgn_i) {
- mp = kmalloc(sizeof(*mp), GFP_KERNEL);
+ mp = kmalloc_obj(*mp, GFP_KERNEL);
if (mp)
mp->virt = dma_alloc_coherent
(&phba->pcidev->dev,
@@ -8378,8 +8376,7 @@ lpfc_cmf_setup(struct lpfc_hba *phba)
/* Allocate RX Monitor Buffer */
if (!phba->rx_monitor) {
- phba->rx_monitor = kzalloc(sizeof(*phba->rx_monitor),
- GFP_KERNEL);
+ phba->rx_monitor = kzalloc_obj(*phba->rx_monitor, GFP_KERNEL);
if (!phba->rx_monitor) {
lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
@@ -17147,7 +17144,7 @@ lpfc_wq_create(struct lpfc_hba *phba, struct lpfc_queue *wq,
} else
wq->db_regaddr = phba->sli4_hba.WQDBregaddr;
}
- wq->pring = kzalloc(sizeof(struct lpfc_sli_ring), GFP_KERNEL);
+ wq->pring = kzalloc_obj(struct lpfc_sli_ring, GFP_KERNEL);
if (wq->pring == NULL) {
status = -ENOMEM;
goto out;
@@ -19466,7 +19463,7 @@ lpfc_sli4_handle_mds_loopback(struct lpfc_vport *vport,
}
/* Allocate buffer for command payload */
- pcmd = kmalloc(sizeof(struct lpfc_dmabuf), GFP_KERNEL);
+ pcmd = kmalloc_obj(struct lpfc_dmabuf, GFP_KERNEL);
if (pcmd)
pcmd->virt = dma_pool_alloc(phba->lpfc_drb_pool, GFP_KERNEL,
&pcmd->phys);
@@ -22297,7 +22294,7 @@ lpfc_read_object(struct lpfc_hba *phba, char *rdobject, uint32_t *datap,
read_object->u.request.rd_object_name[j] =
cpu_to_le32(rd_object_name[j]);
- pcmd = kmalloc(sizeof(*pcmd), GFP_KERNEL);
+ pcmd = kmalloc_obj(*pcmd, GFP_KERNEL);
if (pcmd)
pcmd->virt = lpfc_mbuf_alloc(phba, MEM_PRI, &pcmd->phys);
if (!pcmd || !pcmd->virt) {
diff --git a/drivers/scsi/lpfc/lpfc_vport.c b/drivers/scsi/lpfc/lpfc_vport.c
index aff6c9d5e7c2..9572f925406c 100644
--- a/drivers/scsi/lpfc/lpfc_vport.c
+++ b/drivers/scsi/lpfc/lpfc_vport.c
@@ -787,8 +787,8 @@ lpfc_create_vport_work_array(struct lpfc_hba *phba)
struct lpfc_vport *port_iterator;
struct lpfc_vport **vports;
int index = 0;
- vports = kcalloc(phba->max_vports + 1, sizeof(struct lpfc_vport *),
- GFP_KERNEL);
+ vports = kzalloc_objs(struct lpfc_vport *, phba->max_vports + 1,
+ GFP_KERNEL);
if (vports == NULL)
return NULL;
spin_lock_irq(&phba->port_list_lock);
diff --git a/drivers/scsi/mac53c94.c b/drivers/scsi/mac53c94.c
index 49f856be2e51..74b92a56099a 100644
--- a/drivers/scsi/mac53c94.c
+++ b/drivers/scsi/mac53c94.c
@@ -462,9 +462,8 @@ static int mac53c94_probe(struct macio_dev *mdev, const struct of_device_id *mat
* +1 to allow for aligning.
* XXX FIXME: Use DMA consistent routines
*/
- dma_cmd_space = kmalloc_array(host->sg_tablesize + 2,
- sizeof(struct dbdma_cmd),
- GFP_KERNEL);
+ dma_cmd_space = kmalloc_objs(struct dbdma_cmd,
+ host->sg_tablesize + 2, GFP_KERNEL);
if (!dma_cmd_space) {
printk(KERN_ERR "mac53c94: couldn't allocate dma "
"command space for %pOF\n", node);
diff --git a/drivers/scsi/mac_esp.c b/drivers/scsi/mac_esp.c
index ff0253d47a0e..68923dafee42 100644
--- a/drivers/scsi/mac_esp.c
+++ b/drivers/scsi/mac_esp.c
@@ -323,7 +323,7 @@ static int esp_mac_probe(struct platform_device *dev)
host->this_id = esp->scsi_id;
esp->scsi_id_mask = 1 << esp->scsi_id;
- mep = kzalloc(sizeof(struct mac_esp_priv), GFP_KERNEL);
+ mep = kzalloc_obj(struct mac_esp_priv, GFP_KERNEL);
if (!mep)
goto fail_free_command_block;
mep->esp = esp;
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c
index 6b088bb049cc..de40a791ed3d 100644
--- a/drivers/scsi/megaraid.c
+++ b/drivers/scsi/megaraid.c
@@ -4254,8 +4254,7 @@ megaraid_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
goto out_host_put;
}
- adapter->scb_list = kmalloc_array(MAX_COMMANDS, sizeof(scb_t),
- GFP_KERNEL);
+ adapter->scb_list = kmalloc_objs(scb_t, MAX_COMMANDS, GFP_KERNEL);
if (!adapter->scb_list) {
dev_warn(&pdev->dev, "out of RAM\n");
goto out_free_cmd_buffer;
diff --git a/drivers/scsi/megaraid/megaraid_mbox.c b/drivers/scsi/megaraid/megaraid_mbox.c
index b6a32bb0bd19..fa10a89d7563 100644
--- a/drivers/scsi/megaraid/megaraid_mbox.c
+++ b/drivers/scsi/megaraid/megaraid_mbox.c
@@ -429,7 +429,7 @@ megaraid_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
pci_set_master(pdev);
// Allocate the per driver initialization structure
- adapter = kzalloc(sizeof(adapter_t), GFP_KERNEL);
+ adapter = kzalloc_obj(adapter_t, GFP_KERNEL);
if (adapter == NULL) {
con_log(CL_ANN, (KERN_WARNING
@@ -713,7 +713,7 @@ megaraid_init_mbox(adapter_t *adapter)
* Allocate and initialize the init data structure for mailbox
* controllers
*/
- raid_dev = kzalloc(sizeof(mraid_device_t), GFP_KERNEL);
+ raid_dev = kzalloc_obj(mraid_device_t, GFP_KERNEL);
if (raid_dev == NULL) return -1;
@@ -1017,7 +1017,7 @@ megaraid_alloc_cmd_packets(adapter_t *adapter)
* since the calling routine does not yet know the number of available
* commands.
*/
- adapter->kscb_list = kcalloc(MBOX_MAX_SCSI_CMDS, sizeof(scb_t), GFP_KERNEL);
+ adapter->kscb_list = kzalloc_objs(scb_t, MBOX_MAX_SCSI_CMDS, GFP_KERNEL);
if (adapter->kscb_list == NULL) {
con_log(CL_ANN, (KERN_WARNING
@@ -3403,7 +3403,7 @@ megaraid_cmm_register(adapter_t *adapter)
int i;
// Allocate memory for the base list of scb for management module.
- adapter->uscb_list = kcalloc(MBOX_MAX_USER_CMDS, sizeof(scb_t), GFP_KERNEL);
+ adapter->uscb_list = kzalloc_objs(scb_t, MBOX_MAX_USER_CMDS, GFP_KERNEL);
if (adapter->uscb_list == NULL) {
con_log(CL_ANN, (KERN_WARNING
@@ -3763,9 +3763,9 @@ megaraid_sysfs_alloc_resources(adapter_t *adapter)
mraid_device_t *raid_dev = ADAP2RAIDDEV(adapter);
int rval = 0;
- raid_dev->sysfs_uioc = kmalloc(sizeof(uioc_t), GFP_KERNEL);
+ raid_dev->sysfs_uioc = kmalloc_obj(uioc_t, GFP_KERNEL);
- raid_dev->sysfs_mbox64 = kmalloc(sizeof(mbox64_t), GFP_KERNEL);
+ raid_dev->sysfs_mbox64 = kmalloc_obj(mbox64_t, GFP_KERNEL);
raid_dev->sysfs_buffer = dma_alloc_coherent(&adapter->pdev->dev,
PAGE_SIZE, &raid_dev->sysfs_buffer_dma, GFP_KERNEL);
diff --git a/drivers/scsi/megaraid/megaraid_mm.c b/drivers/scsi/megaraid/megaraid_mm.c
index 87184e2538b0..0b457f691b1e 100644
--- a/drivers/scsi/megaraid/megaraid_mm.c
+++ b/drivers/scsi/megaraid/megaraid_mm.c
@@ -913,7 +913,7 @@ mraid_mm_register_adp(mraid_mmadp_t *lld_adp)
if (lld_adp->drvr_type != DRVRTYPE_MBOX)
return (-EINVAL);
- adapter = kzalloc(sizeof(mraid_mmadp_t), GFP_KERNEL);
+ adapter = kzalloc_obj(mraid_mmadp_t, GFP_KERNEL);
if (!adapter)
return -ENOMEM;
@@ -932,12 +932,10 @@ mraid_mm_register_adp(mraid_mmadp_t *lld_adp)
* Allocate single blocks of memory for all required kiocs,
* mailboxes and passthru structures.
*/
- adapter->kioc_list = kmalloc_array(lld_adp->max_kioc,
- sizeof(uioc_t),
- GFP_KERNEL);
- adapter->mbox_list = kmalloc_array(lld_adp->max_kioc,
- sizeof(mbox64_t),
- GFP_KERNEL);
+ adapter->kioc_list = kmalloc_objs(uioc_t, lld_adp->max_kioc,
+ GFP_KERNEL);
+ adapter->mbox_list = kmalloc_objs(mbox64_t, lld_adp->max_kioc,
+ GFP_KERNEL);
adapter->pthru_dma_pool = dma_pool_create("megaraid mm pthru pool",
&adapter->pdev->dev,
sizeof(mraid_passthru_t),
diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c
index 52894e892a92..074ace2c9790 100644
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -2137,8 +2137,7 @@ static int megasas_sdev_init(struct scsi_device *sdev)
}
scan_target:
- mr_device_priv_data = kzalloc(sizeof(*mr_device_priv_data),
- GFP_KERNEL);
+ mr_device_priv_data = kzalloc_obj(*mr_device_priv_data, GFP_KERNEL);
if (!mr_device_priv_data)
return -ENOMEM;
@@ -3255,7 +3254,7 @@ megasas_service_aen(struct megasas_instance *instance, struct megasas_cmd *cmd)
((instance->issuepend_done == 1))) {
struct megasas_aen_event *ev;
- ev = kzalloc(sizeof(*ev), GFP_ATOMIC);
+ ev = kzalloc_obj(*ev, GFP_ATOMIC);
if (!ev) {
dev_err(&instance->pdev->dev, "megasas_service_aen: out of memory\n");
} else {
@@ -4468,7 +4467,8 @@ int megasas_alloc_cmds(struct megasas_instance *instance)
* Allocate the dynamic array first and then allocate individual
* commands.
*/
- instance->cmd_list = kcalloc(max_cmd, sizeof(struct megasas_cmd*), GFP_KERNEL);
+ instance->cmd_list = kzalloc_objs(struct megasas_cmd *, max_cmd,
+ GFP_KERNEL);
if (!instance->cmd_list) {
dev_printk(KERN_DEBUG, &instance->pdev->dev, "out of memory\n");
@@ -4476,8 +4476,8 @@ int megasas_alloc_cmds(struct megasas_instance *instance)
}
for (i = 0; i < max_cmd; i++) {
- instance->cmd_list[i] = kmalloc(sizeof(struct megasas_cmd),
- GFP_KERNEL);
+ instance->cmd_list[i] = kmalloc_obj(struct megasas_cmd,
+ GFP_KERNEL);
if (!instance->cmd_list[i]) {
@@ -6377,9 +6377,8 @@ static int megasas_init_fw(struct megasas_instance *instance)
/* stream detection initialization */
if (instance->adapter_type >= VENTURA_SERIES) {
fusion->stream_detect_by_ld =
- kcalloc(MAX_LOGICAL_DRIVES_EXT,
- sizeof(struct LD_STREAM_DETECT *),
- GFP_KERNEL);
+ kzalloc_objs(struct LD_STREAM_DETECT *,
+ MAX_LOGICAL_DRIVES_EXT, GFP_KERNEL);
if (!fusion->stream_detect_by_ld) {
dev_err(&instance->pdev->dev,
"unable to allocate stream detection for pool of LDs\n");
@@ -6387,8 +6386,7 @@ static int megasas_init_fw(struct megasas_instance *instance)
}
for (i = 0; i < MAX_LOGICAL_DRIVES_EXT; ++i) {
fusion->stream_detect_by_ld[i] =
- kzalloc(sizeof(struct LD_STREAM_DETECT),
- GFP_KERNEL);
+ kzalloc_obj(struct LD_STREAM_DETECT, GFP_KERNEL);
if (!fusion->stream_detect_by_ld[i]) {
dev_err(&instance->pdev->dev,
"unable to allocate stream detect by LD\n");
@@ -8496,7 +8494,7 @@ megasas_compat_iocpacket_get_user(void __user *arg)
int err = -EFAULT;
int i;
- ioc = kzalloc(sizeof(*ioc), GFP_KERNEL);
+ ioc = kzalloc_obj(*ioc, GFP_KERNEL);
if (!ioc)
return ERR_PTR(-ENOMEM);
size = offsetof(struct megasas_iocpacket, frame) + sizeof(ioc->frame);
diff --git a/drivers/scsi/megaraid/megaraid_sas_debugfs.c b/drivers/scsi/megaraid/megaraid_sas_debugfs.c
index c69760775efa..43bb218dea13 100644
--- a/drivers/scsi/megaraid/megaraid_sas_debugfs.c
+++ b/drivers/scsi/megaraid/megaraid_sas_debugfs.c
@@ -65,7 +65,7 @@ megasas_debugfs_raidmap_open(struct inode *inode, struct file *file)
fusion = instance->ctrl_context;
- debug = kzalloc(sizeof(struct megasas_debugfs_buffer), GFP_KERNEL);
+ debug = kzalloc_obj(struct megasas_debugfs_buffer, GFP_KERNEL);
if (!debug)
return -ENOMEM;
diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c
index a6794f49e9fa..e3de9c95bf4f 100644
--- a/drivers/scsi/megaraid/megaraid_sas_fusion.c
+++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c
@@ -598,8 +598,8 @@ megasas_alloc_cmdlist_fusion(struct megasas_instance *instance)
* commands.
*/
fusion->cmd_list =
- kcalloc(max_mpt_cmd, sizeof(struct megasas_cmd_fusion *),
- GFP_KERNEL);
+ kzalloc_objs(struct megasas_cmd_fusion *, max_mpt_cmd,
+ GFP_KERNEL);
if (!fusion->cmd_list) {
dev_err(&instance->pdev->dev,
"Failed from %s %d\n", __func__, __LINE__);
@@ -607,8 +607,8 @@ megasas_alloc_cmdlist_fusion(struct megasas_instance *instance)
}
for (i = 0; i < max_mpt_cmd; i++) {
- fusion->cmd_list[i] = kzalloc(sizeof(struct megasas_cmd_fusion),
- GFP_KERNEL);
+ fusion->cmd_list[i] = kzalloc_obj(struct megasas_cmd_fusion,
+ GFP_KERNEL);
if (!fusion->cmd_list[i]) {
for (j = 0; j < i; j++)
kfree(fusion->cmd_list[j]);
@@ -1744,7 +1744,7 @@ static int megasas_alloc_ioc_init_frame(struct megasas_instance *instance)
fusion = instance->ctrl_context;
- cmd = kzalloc(sizeof(struct megasas_cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(struct megasas_cmd, GFP_KERNEL);
if (!cmd) {
dev_err(&instance->pdev->dev, "Failed from func: %s line: %d\n",
@@ -5298,8 +5298,7 @@ megasas_alloc_fusion_context(struct megasas_instance *instance)
{
struct fusion_context *fusion;
- instance->ctrl_context = kzalloc(sizeof(struct fusion_context),
- GFP_KERNEL);
+ instance->ctrl_context = kzalloc_obj(struct fusion_context, GFP_KERNEL);
if (!instance->ctrl_context) {
dev_err(&instance->pdev->dev, "Failed from %s %d\n",
__func__, __LINE__);
diff --git a/drivers/scsi/mpi3mr/mpi3mr_fw.c b/drivers/scsi/mpi3mr/mpi3mr_fw.c
index df984e9b5197..b42c14f1442b 100644
--- a/drivers/scsi/mpi3mr/mpi3mr_fw.c
+++ b/drivers/scsi/mpi3mr/mpi3mr_fw.c
@@ -1288,7 +1288,7 @@ static void mpi3mr_fault_uevent_emit(struct mpi3mr_ioc *mrioc)
struct kobj_uevent_env *env;
int ret;
- env = kzalloc(sizeof(*env), GFP_KERNEL);
+ env = kzalloc_obj(*env, GFP_KERNEL);
if (!env)
return;
@@ -2110,8 +2110,9 @@ static int mpi3mr_alloc_op_reply_q_segments(struct mpi3mr_ioc *mrioc, u16 qidx)
op_reply_q->num_segments = DIV_ROUND_UP(op_reply_q->num_replies,
op_reply_q->segment_qd);
- op_reply_q->q_segments = kcalloc(op_reply_q->num_segments,
- sizeof(struct segments), GFP_KERNEL);
+ op_reply_q->q_segments = kzalloc_objs(struct segments,
+ op_reply_q->num_segments,
+ GFP_KERNEL);
if (!op_reply_q->q_segments)
return -ENOMEM;
@@ -2168,8 +2169,8 @@ static int mpi3mr_alloc_op_req_q_segments(struct mpi3mr_ioc *mrioc, u16 qidx)
op_req_q->num_segments = DIV_ROUND_UP(op_req_q->num_requests,
op_req_q->segment_qd);
- op_req_q->q_segments = kcalloc(op_req_q->num_segments,
- sizeof(struct segments), GFP_KERNEL);
+ op_req_q->q_segments = kzalloc_objs(struct segments,
+ op_req_q->num_segments, GFP_KERNEL);
if (!op_req_q->q_segments)
return -ENOMEM;
@@ -2463,8 +2464,8 @@ static int mpi3mr_create_op_queues(struct mpi3mr_ioc *mrioc)
num_queues);
if (!mrioc->req_qinfo) {
- mrioc->req_qinfo = kcalloc(num_queues,
- sizeof(struct op_req_qinfo), GFP_KERNEL);
+ mrioc->req_qinfo = kzalloc_objs(struct op_req_qinfo, num_queues,
+ GFP_KERNEL);
if (!mrioc->req_qinfo) {
retval = -1;
goto out_failed;
diff --git a/drivers/scsi/mpi3mr/mpi3mr_os.c b/drivers/scsi/mpi3mr/mpi3mr_os.c
index 8e5abf620718..5e53b200c19b 100644
--- a/drivers/scsi/mpi3mr/mpi3mr_os.c
+++ b/drivers/scsi/mpi3mr/mpi3mr_os.c
@@ -676,7 +676,7 @@ static struct mpi3mr_tgt_dev *mpi3mr_alloc_tgtdev(void)
{
struct mpi3mr_tgt_dev *tgtdev;
- tgtdev = kzalloc(sizeof(*tgtdev), GFP_ATOMIC);
+ tgtdev = kzalloc_obj(*tgtdev, GFP_ATOMIC);
if (!tgtdev)
return NULL;
kref_init(&tgtdev->ref_count);
@@ -1710,8 +1710,7 @@ static void mpi3mr_encldev_add_chg_evt_bh(struct mpi3mr_ioc *mrioc,
encl_handle);
if (!enclosure_dev && present) {
enclosure_dev =
- kzalloc(sizeof(struct mpi3mr_enclosure_node),
- GFP_KERNEL);
+ kzalloc_obj(struct mpi3mr_enclosure_node, GFP_KERNEL);
if (!enclosure_dev)
return;
list_add_tail(&enclosure_dev->list,
@@ -2535,8 +2534,7 @@ static void mpi3mr_dev_rmhs_send_tm(struct mpi3mr_ioc *mrioc, u16 handle,
} while (retrycount--);
if (cmd_idx >= MPI3MR_NUM_DEVRMCMD) {
- delayed_dev_rmhs = kzalloc(sizeof(*delayed_dev_rmhs),
- GFP_ATOMIC);
+ delayed_dev_rmhs = kzalloc_obj(*delayed_dev_rmhs, GFP_ATOMIC);
if (!delayed_dev_rmhs)
return;
INIT_LIST_HEAD(&delayed_dev_rmhs->list);
@@ -2677,8 +2675,7 @@ static void mpi3mr_send_event_ack(struct mpi3mr_ioc *mrioc, u8 event,
} while (retrycount--);
if (cmd_idx >= MPI3MR_NUM_EVTACKCMD) {
- delayed_evtack = kzalloc(sizeof(*delayed_evtack),
- GFP_ATOMIC);
+ delayed_evtack = kzalloc_obj(*delayed_evtack, GFP_ATOMIC);
if (!delayed_evtack)
return;
INIT_LIST_HEAD(&delayed_evtack->list);
@@ -4900,7 +4897,7 @@ static int mpi3mr_sdev_init(struct scsi_device *sdev)
spin_unlock_irqrestore(&mrioc->tgtdev_lock, flags);
- scsi_dev_priv_data = kzalloc(sizeof(*scsi_dev_priv_data), GFP_KERNEL);
+ scsi_dev_priv_data = kzalloc_obj(*scsi_dev_priv_data, GFP_KERNEL);
if (!scsi_dev_priv_data)
return -ENOMEM;
@@ -4931,7 +4928,7 @@ static int mpi3mr_target_alloc(struct scsi_target *starget)
int retval = 0;
struct sas_rphy *rphy = NULL;
- scsi_tgt_priv_data = kzalloc(sizeof(*scsi_tgt_priv_data), GFP_KERNEL);
+ scsi_tgt_priv_data = kzalloc_obj(*scsi_tgt_priv_data, GFP_KERNEL);
if (!scsi_tgt_priv_data)
return -ENOMEM;
diff --git a/drivers/scsi/mpi3mr/mpi3mr_transport.c b/drivers/scsi/mpi3mr/mpi3mr_transport.c
index 101161554ef1..c79ba5bf56de 100644
--- a/drivers/scsi/mpi3mr/mpi3mr_transport.c
+++ b/drivers/scsi/mpi3mr/mpi3mr_transport.c
@@ -1022,8 +1022,7 @@ mpi3mr_alloc_hba_port(struct mpi3mr_ioc *mrioc, u16 port_id)
{
struct mpi3mr_hba_port *hba_port;
- hba_port = kzalloc(sizeof(struct mpi3mr_hba_port),
- GFP_KERNEL);
+ hba_port = kzalloc_obj(struct mpi3mr_hba_port, GFP_KERNEL);
if (!hba_port)
return NULL;
hba_port->port_id = port_id;
@@ -1221,8 +1220,8 @@ void mpi3mr_sas_host_add(struct mpi3mr_ioc *mrioc)
mrioc->sas_hba.host_node = 1;
INIT_LIST_HEAD(&mrioc->sas_hba.sas_port_list);
mrioc->sas_hba.parent_dev = &mrioc->shost->shost_gendev;
- mrioc->sas_hba.phy = kcalloc(num_phys,
- sizeof(struct mpi3mr_sas_phy), GFP_KERNEL);
+ mrioc->sas_hba.phy = kzalloc_objs(struct mpi3mr_sas_phy, num_phys,
+ GFP_KERNEL);
if (!mrioc->sas_hba.phy)
return;
@@ -1344,7 +1343,7 @@ static struct mpi3mr_sas_port *mpi3mr_sas_port_add(struct mpi3mr_ioc *mrioc,
return NULL;
}
- mr_sas_port = kzalloc(sizeof(struct mpi3mr_sas_port), GFP_KERNEL);
+ mr_sas_port = kzalloc_obj(struct mpi3mr_sas_port, GFP_KERNEL);
if (!mr_sas_port)
return NULL;
@@ -1721,7 +1720,7 @@ mpi3mr_refresh_sas_ports(struct mpi3mr_ioc *mrioc)
sas_io_unit_pg0 = kzalloc(sz, GFP_KERNEL);
if (!sas_io_unit_pg0)
return;
- h_port = kcalloc(64, sizeof(struct host_port), GFP_KERNEL);
+ h_port = kzalloc_objs(struct host_port, 64, GFP_KERNEL);
if (!h_port)
goto out;
@@ -2098,8 +2097,7 @@ int mpi3mr_expander_add(struct mpi3mr_ioc *mrioc, u16 handle)
if (sas_expander)
return 0;
- sas_expander = kzalloc(sizeof(struct mpi3mr_sas_node),
- GFP_KERNEL);
+ sas_expander = kzalloc_obj(struct mpi3mr_sas_node, GFP_KERNEL);
if (!sas_expander)
return -ENOMEM;
@@ -2118,8 +2116,8 @@ int mpi3mr_expander_add(struct mpi3mr_ioc *mrioc, u16 handle)
rc = -1;
goto out_fail;
}
- sas_expander->phy = kcalloc(sas_expander->num_phys,
- sizeof(struct mpi3mr_sas_phy), GFP_KERNEL);
+ sas_expander->phy = kzalloc_objs(struct mpi3mr_sas_phy,
+ sas_expander->num_phys, GFP_KERNEL);
if (!sas_expander->phy) {
rc = -1;
goto out_fail;
diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c
index 2f2183f405c9..32e6c1f2f058 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_base.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_base.c
@@ -1497,8 +1497,7 @@ _base_async_event(struct MPT3SAS_ADAPTER *ioc, u8 msix_index, u32 reply)
goto out;
smid = mpt3sas_base_get_smid(ioc, ioc->base_cb_idx);
if (!smid) {
- delayed_event_ack = kzalloc(sizeof(*delayed_event_ack),
- GFP_ATOMIC);
+ delayed_event_ack = kzalloc_obj(*delayed_event_ack, GFP_ATOMIC);
if (!delayed_event_ack)
goto out;
INIT_LIST_HEAD(&delayed_event_ack->list);
@@ -3162,7 +3161,7 @@ _base_request_irq(struct MPT3SAS_ADAPTER *ioc, u8 index)
struct adapter_reply_queue *reply_q;
int r, qid;
- reply_q = kzalloc(sizeof(struct adapter_reply_queue), GFP_KERNEL);
+ reply_q = kzalloc_obj(struct adapter_reply_queue, GFP_KERNEL);
if (!reply_q) {
ioc_err(ioc, "unable to allocate memory %zu!\n",
sizeof(struct adapter_reply_queue));
@@ -3462,8 +3461,9 @@ _base_enable_msix(struct MPT3SAS_ADAPTER *ioc)
iopoll_q_count = poll_queues;
if (iopoll_q_count) {
- ioc->io_uring_poll_queues = kcalloc(iopoll_q_count,
- sizeof(struct io_uring_poll_queue), GFP_KERNEL);
+ ioc->io_uring_poll_queues = kzalloc_objs(struct io_uring_poll_queue,
+ iopoll_q_count,
+ GFP_KERNEL);
if (!ioc->io_uring_poll_queues)
iopoll_q_count = 0;
}
@@ -3727,9 +3727,9 @@ mpt3sas_base_map_resources(struct MPT3SAS_ADAPTER *ioc)
* each register is at offset bytes of
* MPT3_SUP_REPLY_POST_HOST_INDEX_REG_OFFSET from previous one.
*/
- ioc->replyPostRegisterIndex = kcalloc(
- ioc->combined_reply_index_count,
- sizeof(resource_size_t *), GFP_KERNEL);
+ ioc->replyPostRegisterIndex = kzalloc_objs(resource_size_t *,
+ ioc->combined_reply_index_count,
+ GFP_KERNEL);
if (!ioc->replyPostRegisterIndex) {
ioc_err(ioc,
"allocation for replyPostRegisterIndex failed!\n");
@@ -6218,8 +6218,8 @@ base_alloc_rdpq_dma_pool(struct MPT3SAS_ADAPTER *ioc, int sz)
sizeof(Mpi2DefaultReplyDescriptor_t);
int count = ioc->rdpq_array_enable ? ioc->reply_queue_count : 1;
- ioc->reply_post = kcalloc(count, sizeof(struct reply_post_struct),
- GFP_KERNEL);
+ ioc->reply_post = kzalloc_objs(struct reply_post_struct, count,
+ GFP_KERNEL);
if (!ioc->reply_post)
return -ENOMEM;
/*
@@ -6562,8 +6562,8 @@ _base_allocate_memory_pools(struct MPT3SAS_ADAPTER *ioc)
}
/* initialize hi-priority queue smid's */
- ioc->hpr_lookup = kcalloc(ioc->hi_priority_depth,
- sizeof(struct request_tracker), GFP_KERNEL);
+ ioc->hpr_lookup = kzalloc_objs(struct request_tracker,
+ ioc->hi_priority_depth, GFP_KERNEL);
if (!ioc->hpr_lookup) {
ioc_err(ioc, "hpr_lookup: kcalloc failed\n");
goto out;
@@ -6575,8 +6575,8 @@ _base_allocate_memory_pools(struct MPT3SAS_ADAPTER *ioc)
ioc->hi_priority_depth, ioc->hi_priority_smid));
/* initialize internal queue smid's */
- ioc->internal_lookup = kcalloc(ioc->internal_depth,
- sizeof(struct request_tracker), GFP_KERNEL);
+ ioc->internal_lookup = kzalloc_objs(struct request_tracker,
+ ioc->internal_depth, GFP_KERNEL);
if (!ioc->internal_lookup) {
ioc_err(ioc, "internal_lookup: kcalloc failed\n");
goto out;
@@ -8430,8 +8430,9 @@ mpt3sas_base_attach(struct MPT3SAS_ADAPTER *ioc)
}
if (ioc->is_warpdrive) {
- ioc->reply_post_host_index = kcalloc(ioc->cpu_msix_table_sz,
- sizeof(resource_size_t *), GFP_KERNEL);
+ ioc->reply_post_host_index = kzalloc_objs(resource_size_t *,
+ ioc->cpu_msix_table_sz,
+ GFP_KERNEL);
if (!ioc->reply_post_host_index) {
ioc_info(ioc, "Allocation for reply_post_host_index failed!!!\n");
r = -ENOMEM;
@@ -8520,8 +8521,8 @@ mpt3sas_base_attach(struct MPT3SAS_ADAPTER *ioc)
if (r)
goto out_free_resources;
- ioc->pfacts = kcalloc(ioc->facts.NumberOfPorts,
- sizeof(struct mpt3sas_port_facts), GFP_KERNEL);
+ ioc->pfacts = kzalloc_objs(struct mpt3sas_port_facts,
+ ioc->facts.NumberOfPorts, GFP_KERNEL);
if (!ioc->pfacts) {
r = -ENOMEM;
goto out_free_resources;
diff --git a/drivers/scsi/mpt3sas/mpt3sas_ctl.c b/drivers/scsi/mpt3sas/mpt3sas_ctl.c
index 3b951589feeb..35b78162e8c3 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_ctl.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_ctl.c
@@ -1331,8 +1331,8 @@ _ctl_eventenable(struct MPT3SAS_ADAPTER *ioc, void __user *arg)
/* initialize event_log */
ioc->event_context = 0;
ioc->aen_event_read_flag = 0;
- ioc->event_log = kcalloc(MPT3SAS_CTL_EVENT_LOG_SIZE,
- sizeof(struct MPT3_IOCTL_EVENTS), GFP_KERNEL);
+ ioc->event_log = kzalloc_objs(struct MPT3_IOCTL_EVENTS,
+ MPT3SAS_CTL_EVENT_LOG_SIZE, GFP_KERNEL);
if (!ioc->event_log) {
pr_err("failure at %s:%d/%s()!\n",
__FILE__, __LINE__, __func__);
@@ -3881,8 +3881,8 @@ diag_trigger_master_store(struct device *cdev,
rc = min(sizeof(struct SL_WH_MASTER_TRIGGER_T), count);
if (ioc->supports_trigger_pages) {
- master_tg = kzalloc(sizeof(struct SL_WH_MASTER_TRIGGER_T),
- GFP_KERNEL);
+ master_tg = kzalloc_obj(struct SL_WH_MASTER_TRIGGER_T,
+ GFP_KERNEL);
if (!master_tg)
return -ENOMEM;
@@ -3956,8 +3956,8 @@ diag_trigger_event_store(struct device *cdev,
sz = min(sizeof(struct SL_WH_EVENT_TRIGGERS_T), count);
if (ioc->supports_trigger_pages) {
- event_tg = kzalloc(sizeof(struct SL_WH_EVENT_TRIGGERS_T),
- GFP_KERNEL);
+ event_tg = kzalloc_obj(struct SL_WH_EVENT_TRIGGERS_T,
+ GFP_KERNEL);
if (!event_tg)
return -ENOMEM;
@@ -4031,8 +4031,7 @@ diag_trigger_scsi_store(struct device *cdev,
sz = min(sizeof(struct SL_WH_SCSI_TRIGGERS_T), count);
if (ioc->supports_trigger_pages) {
- scsi_tg = kzalloc(sizeof(struct SL_WH_SCSI_TRIGGERS_T),
- GFP_KERNEL);
+ scsi_tg = kzalloc_obj(struct SL_WH_SCSI_TRIGGERS_T, GFP_KERNEL);
if (!scsi_tg)
return -ENOMEM;
@@ -4105,8 +4104,7 @@ diag_trigger_mpi_store(struct device *cdev,
sz = min(sizeof(struct SL_WH_MPI_TRIGGERS_T), count);
if (ioc->supports_trigger_pages) {
- mpi_tg = kzalloc(sizeof(struct SL_WH_MPI_TRIGGERS_T),
- GFP_KERNEL);
+ mpi_tg = kzalloc_obj(struct SL_WH_MPI_TRIGGERS_T, GFP_KERNEL);
if (!mpi_tg)
return -ENOMEM;
diff --git a/drivers/scsi/mpt3sas/mpt3sas_debugfs.c b/drivers/scsi/mpt3sas/mpt3sas_debugfs.c
index a6ab1db81167..d755f58ad7a0 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_debugfs.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_debugfs.c
@@ -58,7 +58,7 @@ _debugfs_iocdump_open(struct inode *inode, struct file *file)
struct MPT3SAS_ADAPTER *ioc = inode->i_private;
struct mpt3sas_debugfs_buffer *debug;
- debug = kzalloc(sizeof(struct mpt3sas_debugfs_buffer), GFP_KERNEL);
+ debug = kzalloc_obj(struct mpt3sas_debugfs_buffer, GFP_KERNEL);
if (!debug)
return -ENOMEM;
diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
index 26a13b622c95..1bafd51cdcf6 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
@@ -476,7 +476,7 @@ mpt3sas_get_port_by_id(struct MPT3SAS_ADAPTER *ioc,
* And add this object to port_table_list.
*/
if (!ioc->multipath_on_hba) {
- port = kzalloc(sizeof(struct hba_port), GFP_ATOMIC);
+ port = kzalloc_obj(struct hba_port, GFP_ATOMIC);
if (!port)
return NULL;
@@ -1940,8 +1940,7 @@ scsih_target_alloc(struct scsi_target *starget)
unsigned long flags;
struct sas_rphy *rphy;
- sas_target_priv_data = kzalloc(sizeof(*sas_target_priv_data),
- GFP_KERNEL);
+ sas_target_priv_data = kzalloc_obj(*sas_target_priv_data, GFP_KERNEL);
if (!sas_target_priv_data)
return -ENOMEM;
@@ -2109,8 +2108,7 @@ scsih_sdev_init(struct scsi_device *sdev)
struct _pcie_device *pcie_device;
unsigned long flags;
- sas_device_priv_data = kzalloc(sizeof(*sas_device_priv_data),
- GFP_KERNEL);
+ sas_device_priv_data = kzalloc_obj(*sas_device_priv_data, GFP_KERNEL);
if (!sas_device_priv_data)
return -ENOMEM;
@@ -4470,7 +4468,7 @@ _scsih_tm_tr_send(struct MPT3SAS_ADAPTER *ioc, u16 handle)
smid = mpt3sas_base_get_smid_hpr(ioc, ioc->tm_tr_cb_idx);
if (!smid) {
- delayed_tr = kzalloc(sizeof(*delayed_tr), GFP_ATOMIC);
+ delayed_tr = kzalloc_obj(*delayed_tr, GFP_ATOMIC);
if (!delayed_tr)
goto out;
INIT_LIST_HEAD(&delayed_tr->list);
@@ -4568,7 +4566,7 @@ _scsih_tm_tr_complete(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
smid_sas_ctrl = mpt3sas_base_get_smid(ioc, ioc->tm_sas_control_cb_idx);
if (!smid_sas_ctrl) {
- delayed_sc = kzalloc(sizeof(*delayed_sc), GFP_ATOMIC);
+ delayed_sc = kzalloc_obj(*delayed_sc, GFP_ATOMIC);
if (!delayed_sc)
return _scsih_check_for_pending_tm(ioc, smid);
INIT_LIST_HEAD(&delayed_sc->list);
@@ -4694,7 +4692,7 @@ _scsih_tm_tr_volume_send(struct MPT3SAS_ADAPTER *ioc, u16 handle)
smid = mpt3sas_base_get_smid_hpr(ioc, ioc->tm_tr_volume_cb_idx);
if (!smid) {
- delayed_tr = kzalloc(sizeof(*delayed_tr), GFP_ATOMIC);
+ delayed_tr = kzalloc_obj(*delayed_tr, GFP_ATOMIC);
if (!delayed_tr)
return;
INIT_LIST_HEAD(&delayed_tr->list);
@@ -5215,7 +5213,7 @@ _scsih_check_ir_config_unhide_events(struct MPT3SAS_ADAPTER *ioc,
if (!volume_handle)
_scsih_tm_tr_send(ioc, handle);
else if (volume_handle == a || volume_handle == b) {
- delayed_tr = kzalloc(sizeof(*delayed_tr), GFP_ATOMIC);
+ delayed_tr = kzalloc_obj(*delayed_tr, GFP_ATOMIC);
BUG_ON(!delayed_tr);
INIT_LIST_HEAD(&delayed_tr->list);
delayed_tr->handle = handle;
@@ -6378,8 +6376,8 @@ _scsih_update_vphys_after_reset(struct MPT3SAS_ADAPTER *ioc)
port_id = sas_iounit_pg0->PhyData[i].Port;
mport = mpt3sas_get_port_by_id(ioc, port_id, 1);
if (!mport) {
- mport = kzalloc(
- sizeof(struct hba_port), GFP_KERNEL);
+ mport = kzalloc_obj(struct hba_port,
+ GFP_KERNEL);
if (!mport)
break;
mport->port_id = port_id;
@@ -6749,8 +6747,8 @@ _scsih_sas_port_refresh(struct MPT3SAS_ADAPTER *ioc)
}
ioc->sas_hba.num_phys = num_phys;
- port_table = kcalloc(ioc->sas_hba.num_phys,
- sizeof(struct hba_port), GFP_KERNEL);
+ port_table = kzalloc_objs(struct hba_port, ioc->sas_hba.num_phys,
+ GFP_KERNEL);
if (!port_table)
return;
@@ -6841,7 +6839,7 @@ _scsih_alloc_vphy(struct MPT3SAS_ADAPTER *ioc, u8 port_id, u8 phy_num)
vphy = mpt3sas_get_vphy_by_phy(ioc, port, phy_num);
if (!vphy) {
- vphy = kzalloc(sizeof(struct virtual_phy), GFP_KERNEL);
+ vphy = kzalloc_obj(struct virtual_phy, GFP_KERNEL);
if (!vphy)
return NULL;
@@ -6911,7 +6909,7 @@ _scsih_sas_host_refresh(struct MPT3SAS_ADAPTER *ioc)
sas_iounit_pg0->PhyData[0].ControllerDevHandle);
port_id = sas_iounit_pg0->PhyData[i].Port;
if (!(mpt3sas_get_port_by_id(ioc, port_id, 0))) {
- port = kzalloc(sizeof(struct hba_port), GFP_KERNEL);
+ port = kzalloc_obj(struct hba_port, GFP_KERNEL);
if (!port)
goto out;
@@ -7031,8 +7029,9 @@ _scsih_sas_host_add(struct MPT3SAS_ADAPTER *ioc)
ioc->sas_hba.nr_phys_allocated = max_t(u8,
MPT_MAX_HBA_NUM_PHYS, num_phys);
- ioc->sas_hba.phy = kcalloc(ioc->sas_hba.nr_phys_allocated,
- sizeof(struct _sas_phy), GFP_KERNEL);
+ ioc->sas_hba.phy = kzalloc_objs(struct _sas_phy,
+ ioc->sas_hba.nr_phys_allocated,
+ GFP_KERNEL);
if (!ioc->sas_hba.phy) {
ioc_err(ioc, "failure at %s:%d/%s()!\n",
__FILE__, __LINE__, __func__);
@@ -7117,7 +7116,7 @@ _scsih_sas_host_add(struct MPT3SAS_ADAPTER *ioc)
port_id = sas_iounit_pg0->PhyData[i].Port;
if (!(mpt3sas_get_port_by_id(ioc, port_id, 0))) {
- port = kzalloc(sizeof(struct hba_port), GFP_KERNEL);
+ port = kzalloc_obj(struct hba_port, GFP_KERNEL);
if (!port)
goto out;
@@ -7258,8 +7257,7 @@ _scsih_expander_add(struct MPT3SAS_ADAPTER *ioc, u16 handle)
if (sas_expander)
return 0;
- sas_expander = kzalloc(sizeof(struct _sas_node),
- GFP_KERNEL);
+ sas_expander = kzalloc_obj(struct _sas_node, GFP_KERNEL);
if (!sas_expander) {
ioc_err(ioc, "failure at %s:%d/%s()!\n",
__FILE__, __LINE__, __func__);
@@ -7286,8 +7284,8 @@ _scsih_expander_add(struct MPT3SAS_ADAPTER *ioc, u16 handle)
rc = -1;
goto out_fail;
}
- sas_expander->phy = kcalloc(sas_expander->num_phys,
- sizeof(struct _sas_phy), GFP_KERNEL);
+ sas_expander->phy = kzalloc_objs(struct _sas_phy,
+ sas_expander->num_phys, GFP_KERNEL);
if (!sas_expander->phy) {
ioc_err(ioc, "failure at %s:%d/%s()!\n",
__FILE__, __LINE__, __func__);
@@ -7782,7 +7780,7 @@ _scsih_report_luns(struct MPT3SAS_ADAPTER *ioc, u16 handle, void *data,
int retries;
lun_data = NULL;
- transfer_packet = kzalloc(sizeof(struct _scsi_io_transfer), GFP_KERNEL);
+ transfer_packet = kzalloc_obj(struct _scsi_io_transfer, GFP_KERNEL);
if (!transfer_packet) {
ioc_err(ioc, "failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__);
@@ -7869,7 +7867,7 @@ _scsih_start_unit(struct MPT3SAS_ADAPTER *ioc, u16 handle, u32 lun, u8 is_pd,
enum device_responsive_state rc;
int return_code;
- transfer_packet = kzalloc(sizeof(struct _scsi_io_transfer), GFP_KERNEL);
+ transfer_packet = kzalloc_obj(struct _scsi_io_transfer, GFP_KERNEL);
if (!transfer_packet) {
pr_info("failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__);
@@ -7930,7 +7928,7 @@ _scsih_test_unit_ready(struct MPT3SAS_ADAPTER *ioc, u16 handle, u32 lun,
int return_code;
int sata_init_failure = 0;
- transfer_packet = kzalloc(sizeof(struct _scsi_io_transfer), GFP_KERNEL);
+ transfer_packet = kzalloc_obj(struct _scsi_io_transfer, GFP_KERNEL);
if (!transfer_packet) {
pr_info("failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__);
@@ -8002,7 +8000,7 @@ _scsih_ata_pass_thru_idd(struct MPT3SAS_ADAPTER *ioc, u16 handle,
u32 data_length;
idd_data = NULL;
- transfer_packet = kzalloc(sizeof(struct _scsi_io_transfer), GFP_KERNEL);
+ transfer_packet = kzalloc_obj(struct _scsi_io_transfer, GFP_KERNEL);
if (!transfer_packet) {
ioc_err(ioc, "failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__);
@@ -8133,7 +8131,7 @@ _scsih_wait_for_target_to_become_ready(struct MPT3SAS_ADAPTER *ioc, u16 handle,
int lun;
struct scsi_lun *lunp;
- lun_data = kcalloc(MPT3_MAX_LUNS, sizeof(struct scsi_lun), GFP_KERNEL);
+ lun_data = kzalloc_objs(struct scsi_lun, MPT3_MAX_LUNS, GFP_KERNEL);
if (!lun_data) {
ioc_err(ioc, "failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__);
@@ -8482,8 +8480,7 @@ _scsih_add_device(struct MPT3SAS_ADAPTER *ioc, u16 handle, u8 retry_count,
}
}
- sas_device = kzalloc(sizeof(struct _sas_device),
- GFP_KERNEL);
+ sas_device = kzalloc_obj(struct _sas_device, GFP_KERNEL);
if (!sas_device) {
ioc_err(ioc, "failure at %s:%d/%s()!\n",
__FILE__, __LINE__, __func__);
@@ -9386,7 +9383,7 @@ _scsih_pcie_add_device(struct MPT3SAS_ADAPTER *ioc, u16 handle, u8 retry_count)
}
}
- pcie_device = kzalloc(sizeof(struct _pcie_device), GFP_KERNEL);
+ pcie_device = kzalloc_obj(struct _pcie_device, GFP_KERNEL);
if (!pcie_device) {
ioc_err(ioc, "failure at %s:%d/%s()!\n",
__FILE__, __LINE__, __func__);
@@ -9838,8 +9835,7 @@ _scsih_sas_enclosure_dev_status_change_event(struct MPT3SAS_ADAPTER *ioc,
case MPI2_EVENT_SAS_ENCL_RC_ADDED:
if (!enclosure_dev) {
enclosure_dev =
- kzalloc(sizeof(struct _enclosure_node),
- GFP_KERNEL);
+ kzalloc_obj(struct _enclosure_node, GFP_KERNEL);
if (!enclosure_dev) {
ioc_info(ioc, "failure at %s:%d/%s()!\n",
__FILE__, __LINE__, __func__);
@@ -10264,7 +10260,7 @@ _scsih_sas_volume_add(struct MPT3SAS_ADAPTER *ioc,
if (raid_device)
return;
- raid_device = kzalloc(sizeof(struct _raid_device), GFP_KERNEL);
+ raid_device = kzalloc_obj(struct _raid_device, GFP_KERNEL);
if (!raid_device) {
ioc_err(ioc, "failure at %s:%d/%s()!\n",
__FILE__, __LINE__, __func__);
@@ -10682,7 +10678,7 @@ _scsih_sas_ir_volume_event(struct MPT3SAS_ADAPTER *ioc,
break;
}
- raid_device = kzalloc(sizeof(struct _raid_device), GFP_KERNEL);
+ raid_device = kzalloc_obj(struct _raid_device, GFP_KERNEL);
if (!raid_device) {
ioc_err(ioc, "failure at %s:%d/%s()!\n",
__FILE__, __LINE__, __func__);
@@ -11043,7 +11039,7 @@ _scsih_create_enclosure_list_after_reset(struct MPT3SAS_ADAPTER *ioc)
enclosure_handle = 0xFFFF;
do {
enclosure_dev =
- kzalloc(sizeof(struct _enclosure_node), GFP_KERNEL);
+ kzalloc_obj(struct _enclosure_node, GFP_KERNEL);
if (!enclosure_dev) {
ioc_err(ioc, "failure at %s:%d/%s()!\n",
__FILE__, __LINE__, __func__);
diff --git a/drivers/scsi/mpt3sas/mpt3sas_transport.c b/drivers/scsi/mpt3sas/mpt3sas_transport.c
index f3400d01cc2a..09a36e561da5 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_transport.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_transport.c
@@ -698,8 +698,7 @@ mpt3sas_transport_port_add(struct MPT3SAS_ADAPTER *ioc, u16 handle,
return NULL;
}
- mpt3sas_port = kzalloc(sizeof(struct _sas_port),
- GFP_KERNEL);
+ mpt3sas_port = kzalloc_obj(struct _sas_port, GFP_KERNEL);
if (!mpt3sas_port) {
ioc_err(ioc, "failure at %s:%d/%s()!\n",
__FILE__, __LINE__, __func__);
diff --git a/drivers/scsi/mvme16x_scsi.c b/drivers/scsi/mvme16x_scsi.c
index 9b19d5205e50..43c68802d40a 100644
--- a/drivers/scsi/mvme16x_scsi.c
+++ b/drivers/scsi/mvme16x_scsi.c
@@ -49,7 +49,7 @@ static int mvme16x_probe(struct platform_device *dev)
goto out;
}
- hostdata = kzalloc(sizeof(struct NCR_700_Host_Parameters), GFP_KERNEL);
+ hostdata = kzalloc_obj(struct NCR_700_Host_Parameters, GFP_KERNEL);
if (hostdata == NULL) {
printk(KERN_ERR "mvme16x-scsi: "
"Failed to allocate host data\n");
diff --git a/drivers/scsi/mvsas/mv_init.c b/drivers/scsi/mvsas/mv_init.c
index 7f1ad305eee6..6f5a98572c33 100644
--- a/drivers/scsi/mvsas/mv_init.c
+++ b/drivers/scsi/mvsas/mv_init.c
@@ -401,7 +401,7 @@ static int mvs_prep_sas_ha_init(struct Scsi_Host *shost,
sha->sas_port = arr_port;
sha->shost = shost;
- sha->lldd_ha = kzalloc(sizeof(struct mvs_prv_info), GFP_KERNEL);
+ sha->lldd_ha = kzalloc_obj(struct mvs_prv_info, GFP_KERNEL);
if (!sha->lldd_ha)
goto exit_free;
@@ -502,7 +502,7 @@ static int mvs_pci_init(struct pci_dev *pdev, const struct pci_device_id *ent)
chip = &mvs_chips[ent->driver_data];
SHOST_TO_SAS_HA(shost) =
- kcalloc(1, sizeof(struct sas_ha_struct), GFP_KERNEL);
+ kzalloc_objs(struct sas_ha_struct, 1, GFP_KERNEL);
if (!SHOST_TO_SAS_HA(shost)) {
scsi_host_put(shost);
rc = -ENOMEM;
diff --git a/drivers/scsi/mvsas/mv_sas.c b/drivers/scsi/mvsas/mv_sas.c
index f2e7997d5b9d..359226e80eae 100644
--- a/drivers/scsi/mvsas/mv_sas.c
+++ b/drivers/scsi/mvsas/mv_sas.c
@@ -1739,7 +1739,7 @@ static int mvs_handle_event(struct mvs_info *mvi, void *data, int handler)
struct mvs_wq *mwq;
int ret = 0;
- mwq = kmalloc(sizeof(struct mvs_wq), GFP_ATOMIC);
+ mwq = kmalloc_obj(struct mvs_wq, GFP_ATOMIC);
if (mwq) {
mwq->mvi = mvi;
mwq->data = data;
diff --git a/drivers/scsi/mvumi.c b/drivers/scsi/mvumi.c
index cda8bd083a38..10b40c434977 100644
--- a/drivers/scsi/mvumi.c
+++ b/drivers/scsi/mvumi.c
@@ -106,7 +106,7 @@ static int mvumi_map_pci_addr(struct pci_dev *dev, void **addr_array)
static struct mvumi_res *mvumi_alloc_mem_resource(struct mvumi_hba *mhba,
enum resource_type type, unsigned int size)
{
- struct mvumi_res *res = kzalloc(sizeof(*res), GFP_ATOMIC);
+ struct mvumi_res *res = kzalloc_obj(*res, GFP_ATOMIC);
if (!res) {
dev_err(&mhba->pdev->dev,
@@ -252,7 +252,7 @@ static struct mvumi_cmd *mvumi_create_internal_cmd(struct mvumi_hba *mhba,
{
struct mvumi_cmd *cmd;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd) {
dev_err(&mhba->pdev->dev, "failed to create a internal cmd\n");
return NULL;
@@ -368,7 +368,7 @@ static int mvumi_alloc_cmds(struct mvumi_hba *mhba)
struct mvumi_cmd *cmd;
for (i = 0; i < mhba->max_io; i++) {
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
goto err_exit;
@@ -1572,8 +1572,8 @@ static int mvumi_probe_devices(struct mvumi_hba *mhba)
found = mvumi_match_devices(mhba, id, wwid);
if (!found) {
mvumi_remove_devices(mhba, id);
- mv_dev = kzalloc(sizeof(struct mvumi_device),
- GFP_KERNEL);
+ mv_dev = kzalloc_obj(struct mvumi_device,
+ GFP_KERNEL);
if (!mv_dev) {
dev_err(&mhba->pdev->dev,
"%s alloc mv_dev failed\n",
@@ -1749,7 +1749,7 @@ static void mvumi_launch_events(struct mvumi_hba *mhba, u32 isr_status)
continue;
}
- mu_ev = kzalloc(sizeof(*mu_ev), GFP_ATOMIC);
+ mu_ev = kzalloc_obj(*mu_ev, GFP_ATOMIC);
if (mu_ev) {
INIT_WORK(&mu_ev->work_q, mvumi_scan_events);
mu_ev->mhba = mhba;
@@ -2193,7 +2193,7 @@ static int mvumi_cfg_hw_reg(struct mvumi_hba *mhba)
mhba->mmio = mhba->base_addr[0];
base = mhba->mmio;
if (!mhba->regs) {
- mhba->regs = kzalloc(sizeof(*regs), GFP_KERNEL);
+ mhba->regs = kzalloc_obj(*regs, GFP_KERNEL);
if (mhba->regs == NULL)
return -ENOMEM;
}
@@ -2245,7 +2245,7 @@ static int mvumi_cfg_hw_reg(struct mvumi_hba *mhba)
mhba->mmio = mhba->base_addr[2];
base = mhba->mmio;
if (!mhba->regs) {
- mhba->regs = kzalloc(sizeof(*regs), GFP_KERNEL);
+ mhba->regs = kzalloc_obj(*regs, GFP_KERNEL);
if (mhba->regs == NULL)
return -ENOMEM;
}
diff --git a/drivers/scsi/myrb.c b/drivers/scsi/myrb.c
index efeacb9ffd7c..e24996921e87 100644
--- a/drivers/scsi/myrb.c
+++ b/drivers/scsi/myrb.c
@@ -1628,7 +1628,7 @@ static int myrb_ldev_sdev_init(struct scsi_device *sdev)
ldev_info = cb->ldev_info_buf + ldev_num;
- sdev->hostdata = kzalloc(sizeof(*ldev_info), GFP_KERNEL);
+ sdev->hostdata = kzalloc_obj(*ldev_info, GFP_KERNEL);
if (!sdev->hostdata)
return -ENOMEM;
dev_dbg(&sdev->sdev_gendev,
@@ -1672,7 +1672,7 @@ static int myrb_pdev_sdev_init(struct scsi_device *sdev)
if (sdev->id > MYRB_MAX_TARGETS)
return -ENXIO;
- pdev_info = kzalloc(sizeof(*pdev_info), GFP_KERNEL);
+ pdev_info = kzalloc_obj(*pdev_info, GFP_KERNEL);
if (!pdev_info)
return -ENOMEM;
diff --git a/drivers/scsi/myrs.c b/drivers/scsi/myrs.c
index 7e8bb533c669..77ed566d7b92 100644
--- a/drivers/scsi/myrs.c
+++ b/drivers/scsi/myrs.c
@@ -538,11 +538,11 @@ static bool myrs_enable_mmio_mbox(struct myrs_hba *cs,
cs->fwstat_buf = NULL;
goto out_free;
}
- cs->ctlr_info = kzalloc(sizeof(struct myrs_ctlr_info), GFP_KERNEL);
+ cs->ctlr_info = kzalloc_obj(struct myrs_ctlr_info, GFP_KERNEL);
if (!cs->ctlr_info)
goto out_free;
- cs->event_buf = kzalloc(sizeof(struct myrs_event), GFP_KERNEL);
+ cs->event_buf = kzalloc_obj(struct myrs_event, GFP_KERNEL);
if (!cs->event_buf)
goto out_free;
@@ -1803,7 +1803,7 @@ static int myrs_sdev_init(struct scsi_device *sdev)
ldev_num = myrs_translate_ldev(cs, sdev);
- ldev_info = kzalloc(sizeof(*ldev_info), GFP_KERNEL);
+ ldev_info = kzalloc_obj(*ldev_info, GFP_KERNEL);
if (!ldev_info)
return -ENOMEM;
@@ -1865,7 +1865,7 @@ static int myrs_sdev_init(struct scsi_device *sdev)
} else {
struct myrs_pdev_info *pdev_info;
- pdev_info = kzalloc(sizeof(*pdev_info), GFP_KERNEL);
+ pdev_info = kzalloc_obj(*pdev_info, GFP_KERNEL);
if (!pdev_info)
return -ENOMEM;
diff --git a/drivers/scsi/pcmcia/aha152x_stub.c b/drivers/scsi/pcmcia/aha152x_stub.c
index 1b54ba51a485..ae96602a543b 100644
--- a/drivers/scsi/pcmcia/aha152x_stub.c
+++ b/drivers/scsi/pcmcia/aha152x_stub.c
@@ -96,7 +96,7 @@ static int aha152x_probe(struct pcmcia_device *link)
dev_dbg(&link->dev, "aha152x_attach()\n");
/* Create new SCSI device */
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info) return -ENOMEM;
info->p_dev = link;
link->priv = info;
diff --git a/drivers/scsi/pcmcia/nsp_cs.c b/drivers/scsi/pcmcia/nsp_cs.c
index fb3a1b43d8bd..50d2e4ffe037 100644
--- a/drivers/scsi/pcmcia/nsp_cs.c
+++ b/drivers/scsi/pcmcia/nsp_cs.c
@@ -1520,7 +1520,7 @@ static int nsp_cs_probe(struct pcmcia_device *link)
nsp_dbg(NSP_DEBUG_INIT, "in");
/* Create new SCSI device */
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (info == NULL) { return -ENOMEM; }
info->p_dev = link;
link->priv = info;
diff --git a/drivers/scsi/pcmcia/qlogic_stub.c b/drivers/scsi/pcmcia/qlogic_stub.c
index 310d0b6586a6..f24223fc58b8 100644
--- a/drivers/scsi/pcmcia/qlogic_stub.c
+++ b/drivers/scsi/pcmcia/qlogic_stub.c
@@ -152,7 +152,7 @@ static int qlogic_probe(struct pcmcia_device *link)
dev_dbg(&link->dev, "qlogic_attach()\n");
/* Create new SCSI device */
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
info->p_dev = link;
diff --git a/drivers/scsi/pcmcia/sym53c500_cs.c b/drivers/scsi/pcmcia/sym53c500_cs.c
index 8f56f7277dee..2accb2c538f0 100644
--- a/drivers/scsi/pcmcia/sym53c500_cs.c
+++ b/drivers/scsi/pcmcia/sym53c500_cs.c
@@ -849,7 +849,7 @@ SYM53C500_probe(struct pcmcia_device *link)
dev_dbg(&link->dev, "SYM53C500_attach()\n");
/* Create new SCSI device */
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
info->p_dev = link;
diff --git a/drivers/scsi/pm8001/pm8001_hwi.c b/drivers/scsi/pm8001/pm8001_hwi.c
index 8005995a317c..68b4ddcb7781 100644
--- a/drivers/scsi/pm8001/pm8001_hwi.c
+++ b/drivers/scsi/pm8001/pm8001_hwi.c
@@ -1686,7 +1686,7 @@ int pm8001_handle_event(struct pm8001_hba_info *pm8001_ha, void *data,
struct pm8001_work *pw;
int ret = 0;
- pw = kmalloc(sizeof(struct pm8001_work), GFP_ATOMIC);
+ pw = kmalloc_obj(struct pm8001_work, GFP_ATOMIC);
if (pw) {
pw->pm8001_ha = pm8001_ha;
pw->data = data;
@@ -4371,7 +4371,7 @@ int pm8001_chip_get_nvmd_req(struct pm8001_hba_info *pm8001_ha,
struct pm8001_ioctl_payload *ioctl_payload = payload;
nvmd_type = ioctl_payload->minor_function;
- fw_control_context = kzalloc(sizeof(struct fw_control_ex), GFP_KERNEL);
+ fw_control_context = kzalloc_obj(struct fw_control_ex, GFP_KERNEL);
if (!fw_control_context)
return -ENOMEM;
fw_control_context->usrAddr = (u8 *)ioctl_payload->func_specific;
@@ -4464,7 +4464,7 @@ int pm8001_chip_set_nvmd_req(struct pm8001_hba_info *pm8001_ha,
struct pm8001_ioctl_payload *ioctl_payload = payload;
nvmd_type = ioctl_payload->minor_function;
- fw_control_context = kzalloc(sizeof(struct fw_control_ex), GFP_KERNEL);
+ fw_control_context = kzalloc_obj(struct fw_control_ex, GFP_KERNEL);
if (!fw_control_context)
return -ENOMEM;
@@ -4579,7 +4579,7 @@ pm8001_chip_fw_flash_update_req(struct pm8001_hba_info *pm8001_ha,
dma_addr_t phys_addr = pm8001_ha->memoryMap.region[FW_FLASH].phys_addr;
struct pm8001_ioctl_payload *ioctl_payload = payload;
- fw_control_context = kzalloc(sizeof(struct fw_control_ex), GFP_KERNEL);
+ fw_control_context = kzalloc_obj(struct fw_control_ex, GFP_KERNEL);
if (!fw_control_context)
return -ENOMEM;
fw_control = (struct fw_control_info *)&ioctl_payload->func_specific;
diff --git a/drivers/scsi/pm8001/pm8001_init.c b/drivers/scsi/pm8001/pm8001_init.c
index 9acca83d6958..631b7fa47fce 100644
--- a/drivers/scsi/pm8001/pm8001_init.c
+++ b/drivers/scsi/pm8001/pm8001_init.c
@@ -622,7 +622,7 @@ static int pm8001_prep_sas_ha_init(struct Scsi_Host *shost,
sha->sas_phy = arr_phy;
sha->sas_port = arr_port;
- sha->lldd_ha = kzalloc(sizeof(struct pm8001_hba_info), GFP_KERNEL);
+ sha->lldd_ha = kzalloc_obj(struct pm8001_hba_info, GFP_KERNEL);
if (!sha->lldd_ha)
goto exit_free1;
@@ -1148,7 +1148,7 @@ static int pm8001_pci_probe(struct pci_dev *pdev,
goto err_out_regions;
}
chip = &pm8001_chips[ent->driver_data];
- sha = kzalloc(sizeof(struct sas_ha_struct), GFP_KERNEL);
+ sha = kzalloc_obj(struct sas_ha_struct, GFP_KERNEL);
if (!sha) {
rc = -ENOMEM;
goto err_out_free_host;
@@ -1264,7 +1264,7 @@ static int pm8001_init_ccb_tag(struct pm8001_hba_info *pm8001_ha)
/* Memory region for ccb_info*/
pm8001_ha->ccb_count = ccb_count;
pm8001_ha->ccb_info =
- kcalloc(ccb_count, sizeof(struct pm8001_ccb_info), GFP_KERNEL);
+ kzalloc_objs(struct pm8001_ccb_info, ccb_count, GFP_KERNEL);
if (!pm8001_ha->ccb_info) {
pm8001_dbg(pm8001_ha, FAIL,
"Unable to allocate memory for ccb\n");
diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c
index 31960b72c1e9..77ded22a26c7 100644
--- a/drivers/scsi/pm8001/pm80xx_hwi.c
+++ b/drivers/scsi/pm8001/pm80xx_hwi.c
@@ -1563,7 +1563,7 @@ void pm80xx_fatal_error_uevent_emit(struct pm8001_hba_info *pm8001_ha,
pm8001_dbg(pm8001_ha, FAIL, "emitting fatal error uevent");
- env = kzalloc(sizeof(struct kobj_uevent_env), GFP_KERNEL);
+ env = kzalloc_obj(struct kobj_uevent_env, GFP_KERNEL);
if (!env)
return;
diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c
index cf163e63054b..ff31e12aaba0 100644
--- a/drivers/scsi/pmcraid.c
+++ b/drivers/scsi/pmcraid.c
@@ -3468,7 +3468,7 @@ static long pmcraid_chr_ioctl(
void __user *argp = (void __user *)arg;
int retval = -ENOTTY;
- hdr = kmalloc(sizeof(struct pmcraid_ioctl_header), GFP_KERNEL);
+ hdr = kmalloc_obj(struct pmcraid_ioctl_header, GFP_KERNEL);
if (!hdr) {
pmcraid_err("failed to allocate memory for ioctl header\n");
@@ -4385,9 +4385,8 @@ static int pmcraid_allocate_config_buffers(struct pmcraid_instance *pinstance)
int i;
pinstance->res_entries =
- kcalloc(PMCRAID_MAX_RESOURCES,
- sizeof(struct pmcraid_resource_entry),
- GFP_KERNEL);
+ kzalloc_objs(struct pmcraid_resource_entry,
+ PMCRAID_MAX_RESOURCES, GFP_KERNEL);
if (NULL == pinstance->res_entries) {
pmcraid_err("failed to allocate memory for resource table\n");
diff --git a/drivers/scsi/ppa.c b/drivers/scsi/ppa.c
index ddcef40789e5..7c8923368edd 100644
--- a/drivers/scsi/ppa.c
+++ b/drivers/scsi/ppa.c
@@ -1042,7 +1042,7 @@ static int __ppa_attach(struct parport *pb)
int err = -ENOMEM;
struct pardev_cb ppa_cb;
- dev = kzalloc(sizeof(ppa_struct), GFP_KERNEL);
+ dev = kzalloc_obj(ppa_struct, GFP_KERNEL);
if (!dev)
return -ENOMEM;
dev->base = -1;
diff --git a/drivers/scsi/qedf/qedf_debugfs.c b/drivers/scsi/qedf/qedf_debugfs.c
index 96174353e389..9b2ed9cb6245 100644
--- a/drivers/scsi/qedf/qedf_debugfs.c
+++ b/drivers/scsi/qedf/qedf_debugfs.c
@@ -422,7 +422,7 @@ qedf_offload_stats_show(struct seq_file *s, void *unused)
struct qedf_ctx *qedf = s->private;
struct qed_fcoe_stats *fw_fcoe_stats;
- fw_fcoe_stats = kmalloc(sizeof(struct qed_fcoe_stats), GFP_KERNEL);
+ fw_fcoe_stats = kmalloc_obj(struct qed_fcoe_stats, GFP_KERNEL);
if (!fw_fcoe_stats) {
QEDF_ERR(&(qedf->dbg_ctx), "Could not allocate memory for "
"fw_fcoe_stats.\n");
diff --git a/drivers/scsi/qedf/qedf_els.c b/drivers/scsi/qedf/qedf_els.c
index 1ff5bc314fc0..12841516653d 100644
--- a/drivers/scsi/qedf/qedf_els.c
+++ b/drivers/scsi/qedf/qedf_els.c
@@ -297,7 +297,7 @@ int qedf_send_rrq(struct qedf_ioreq *aborted_io_req)
aborted_io_req->xid);
memset(&rrq, 0, sizeof(rrq));
- cb_arg = kzalloc(sizeof(struct qedf_els_cb_arg), GFP_NOIO);
+ cb_arg = kzalloc_obj(struct qedf_els_cb_arg, GFP_NOIO);
if (!cb_arg) {
QEDF_ERR(&(qedf->dbg_ctx), "Unable to allocate cb_arg for "
"RRQ\n");
@@ -510,7 +510,7 @@ int qedf_send_adisc(struct qedf_rport *fcport, struct fc_frame *fp)
qedf = fcport->qedf;
fh = fc_frame_header_get(fp);
- cb_arg = kzalloc(sizeof(struct qedf_els_cb_arg), GFP_NOIO);
+ cb_arg = kzalloc_obj(struct qedf_els_cb_arg, GFP_NOIO);
if (!cb_arg) {
QEDF_ERR(&(qedf->dbg_ctx), "Unable to allocate cb_arg for "
"ADISC\n");
@@ -659,7 +659,7 @@ static int qedf_send_srr(struct qedf_ioreq *orig_io_req, u32 offset, u8 r_ctl)
"orig_xid=0x%x\n", orig_io_req, orig_io_req->xid);
memset(&srr, 0, sizeof(srr));
- cb_arg = kzalloc(sizeof(struct qedf_els_cb_arg), GFP_NOIO);
+ cb_arg = kzalloc_obj(struct qedf_els_cb_arg, GFP_NOIO);
if (!cb_arg) {
QEDF_ERR(&(qedf->dbg_ctx), "Unable to allocate cb_arg for "
"SRR\n");
@@ -708,7 +708,7 @@ static void qedf_initiate_seq_cleanup(struct qedf_ioreq *orig_io_req,
"Doing sequence cleanup for xid=0x%x offset=%u.\n",
orig_io_req->xid, offset);
- cb_arg = kzalloc(sizeof(struct qedf_els_cb_arg), GFP_NOIO);
+ cb_arg = kzalloc_obj(struct qedf_els_cb_arg, GFP_NOIO);
if (!cb_arg) {
QEDF_ERR(&(fcport->qedf->dbg_ctx), "Unable to allocate cb_arg "
"for sequence cleanup\n");
@@ -1033,7 +1033,7 @@ int qedf_send_rec(struct qedf_ioreq *orig_io_req)
memset(&rec, 0, sizeof(rec));
- cb_arg = kzalloc(sizeof(struct qedf_els_cb_arg), GFP_NOIO);
+ cb_arg = kzalloc_obj(struct qedf_els_cb_arg, GFP_NOIO);
if (!cb_arg) {
QEDF_ERR(&(qedf->dbg_ctx), "Unable to allocate cb_arg for "
"REC\n");
diff --git a/drivers/scsi/qedf/qedf_io.c b/drivers/scsi/qedf/qedf_io.c
index d12c47be016e..73a0ce7e5180 100644
--- a/drivers/scsi/qedf/qedf_io.c
+++ b/drivers/scsi/qedf/qedf_io.c
@@ -230,8 +230,8 @@ struct qedf_cmd_mgr *qedf_cmd_mgr_alloc(struct qedf_ctx *qedf)
}
/* Allocate task parameters to pass to f/w init funcions */
- io_req->task_params = kzalloc(sizeof(*io_req->task_params),
- GFP_KERNEL);
+ io_req->task_params = kzalloc_obj(*io_req->task_params,
+ GFP_KERNEL);
if (!io_req->task_params) {
QEDF_ERR(&(qedf->dbg_ctx),
"Failed to allocate task_params for xid=0x%x\n",
@@ -243,8 +243,8 @@ struct qedf_cmd_mgr *qedf_cmd_mgr_alloc(struct qedf_ctx *qedf)
* Allocate scatter/gather list info to pass to f/w init
* functions.
*/
- io_req->sgl_task_params = kzalloc(
- sizeof(struct scsi_sgl_task_params), GFP_KERNEL);
+ io_req->sgl_task_params = kzalloc_obj(struct scsi_sgl_task_params,
+ GFP_KERNEL);
if (!io_req->sgl_task_params) {
QEDF_ERR(&(qedf->dbg_ctx),
"Failed to allocate sgl_task_params for xid=0x%x\n",
@@ -254,8 +254,7 @@ struct qedf_cmd_mgr *qedf_cmd_mgr_alloc(struct qedf_ctx *qedf)
}
/* Allocate pool of io_bdts - one for each qedf_ioreq */
- cmgr->io_bdt_pool = kmalloc_array(num_ios, sizeof(struct io_bdt *),
- GFP_KERNEL);
+ cmgr->io_bdt_pool = kmalloc_objs(struct io_bdt *, num_ios, GFP_KERNEL);
if (!cmgr->io_bdt_pool) {
QEDF_WARN(&(qedf->dbg_ctx), "Failed to alloc io_bdt_pool.\n");
@@ -263,8 +262,7 @@ struct qedf_cmd_mgr *qedf_cmd_mgr_alloc(struct qedf_ctx *qedf)
}
for (i = 0; i < num_ios; i++) {
- cmgr->io_bdt_pool[i] = kmalloc(sizeof(struct io_bdt),
- GFP_KERNEL);
+ cmgr->io_bdt_pool[i] = kmalloc_obj(struct io_bdt, GFP_KERNEL);
if (!cmgr->io_bdt_pool[i]) {
QEDF_WARN(&(qedf->dbg_ctx),
"Failed to alloc io_bdt_pool[%d].\n", i);
diff --git a/drivers/scsi/qedf/qedf_main.c b/drivers/scsi/qedf/qedf_main.c
index 7792e00800ae..c712fdf86911 100644
--- a/drivers/scsi/qedf/qedf_main.c
+++ b/drivers/scsi/qedf/qedf_main.c
@@ -2082,7 +2082,7 @@ static struct fc_host_statistics *qedf_fc_get_host_stats(struct Scsi_Host
if (lport->vport)
goto out;
- fw_fcoe_stats = kmalloc(sizeof(struct qed_fcoe_stats), GFP_KERNEL);
+ fw_fcoe_stats = kmalloc_obj(struct qed_fcoe_stats, GFP_KERNEL);
if (!fw_fcoe_stats) {
QEDF_ERR(&(qedf->dbg_ctx), "Could not allocate memory for "
"fw_fcoe_stats.\n");
@@ -2674,7 +2674,7 @@ static int qedf_ll2_rx(void *cookie, struct sk_buff *skb,
return 0;
}
- skb_work = kzalloc(sizeof(struct qedf_skb_work), GFP_ATOMIC);
+ skb_work = kzalloc_obj(struct qedf_skb_work, GFP_ATOMIC);
if (!skb_work) {
QEDF_WARN(&(qedf->dbg_ctx), "Could not allocate skb_work so "
"dropping frame.\n");
@@ -2778,8 +2778,7 @@ static int qedf_prepare_sb(struct qedf_ctx *qedf)
int ret;
qedf->fp_array =
- kcalloc(qedf->num_queues, sizeof(struct qedf_fastpath),
- GFP_KERNEL);
+ kzalloc_objs(struct qedf_fastpath, qedf->num_queues, GFP_KERNEL);
if (!qedf->fp_array) {
QEDF_ERR(&(qedf->dbg_ctx), "fastpath array allocation "
@@ -2790,7 +2789,7 @@ static int qedf_prepare_sb(struct qedf_ctx *qedf)
for (id = 0; id < qedf->num_queues; id++) {
fp = &(qedf->fp_array[id]);
fp->sb_id = QEDF_SB_ID_NULL;
- fp->sb_info = kcalloc(1, sizeof(*fp->sb_info), GFP_KERNEL);
+ fp->sb_info = kzalloc_objs(*fp->sb_info, 1, GFP_KERNEL);
if (!fp->sb_info) {
QEDF_ERR(&(qedf->dbg_ctx), "SB info struct "
"allocation failed.\n");
@@ -3083,8 +3082,8 @@ static int qedf_alloc_global_queues(struct qedf_ctx *qedf)
/* Allocate a CQ and an associated PBL for each MSI-X vector */
for (i = 0; i < qedf->num_queues; i++) {
- qedf->global_queues[i] = kzalloc(sizeof(struct global_queue),
- GFP_KERNEL);
+ qedf->global_queues[i] = kzalloc_obj(struct global_queue,
+ GFP_KERNEL);
if (!qedf->global_queues[i]) {
QEDF_WARN(&(qedf->dbg_ctx), "Unable to allocate "
"global queue %d.\n", i);
diff --git a/drivers/scsi/qedi/qedi_fw.c b/drivers/scsi/qedi/qedi_fw.c
index 6901738324da..854efa4f61d8 100644
--- a/drivers/scsi/qedi/qedi_fw.c
+++ b/drivers/scsi/qedi/qedi_fw.c
@@ -190,7 +190,7 @@ static void qedi_process_tmf_resp(struct qedi_ctx *qedi,
cqe_tmp_response = &cqe->cqe_common.iscsi_hdr.tmf_response;
qedi_cmd = task->dd_data;
- qedi_cmd->tmf_resp_buf = kzalloc(sizeof(*resp_hdr_ptr), GFP_ATOMIC);
+ qedi_cmd->tmf_resp_buf = kzalloc_obj(*resp_hdr_ptr, GFP_ATOMIC);
if (!qedi_cmd->tmf_resp_buf) {
QEDI_ERR(&qedi->dbg_ctx,
"Failed to allocate resp buf, cid=0x%x\n",
@@ -1358,7 +1358,7 @@ static void qedi_abort_work(struct work_struct *work)
goto clear_cleanup;
}
- list_work = kzalloc(sizeof(*list_work), GFP_NOIO);
+ list_work = kzalloc_obj(*list_work, GFP_NOIO);
if (!list_work) {
QEDI_ERR(&qedi->dbg_ctx, "Memory allocation failed\n");
goto clear_cleanup;
diff --git a/drivers/scsi/qedi/qedi_iscsi.c b/drivers/scsi/qedi/qedi_iscsi.c
index 6ed8ef97642c..65fdbc07de43 100644
--- a/drivers/scsi/qedi/qedi_iscsi.c
+++ b/drivers/scsi/qedi/qedi_iscsi.c
@@ -440,7 +440,7 @@ static int qedi_iscsi_update_conn(struct qedi_ctx *qedi,
qedi_ep = qedi_conn->ep;
- conn_info = kzalloc(sizeof(*conn_info), GFP_KERNEL);
+ conn_info = kzalloc_obj(*conn_info, GFP_KERNEL);
if (!conn_info) {
QEDI_ERR(&qedi->dbg_ctx, "memory alloc failed\n");
return -ENOMEM;
@@ -505,7 +505,7 @@ static int qedi_iscsi_offload_conn(struct qedi_endpoint *qedi_ep)
int rval;
int i;
- conn_info = kzalloc(sizeof(*conn_info), GFP_KERNEL);
+ conn_info = kzalloc_obj(*conn_info, GFP_KERNEL);
if (!conn_info) {
QEDI_ERR(&qedi->dbg_ctx,
"Failed to allocate memory ep=%p\n", qedi_ep);
diff --git a/drivers/scsi/qedi/qedi_main.c b/drivers/scsi/qedi/qedi_main.c
index 56685ee22fdf..14ec6cb44316 100644
--- a/drivers/scsi/qedi/qedi_main.c
+++ b/drivers/scsi/qedi/qedi_main.c
@@ -276,7 +276,7 @@ static int qedi_alloc_uio_rings(struct qedi_ctx *qedi)
}
}
- udev = kzalloc(sizeof(*udev), GFP_KERNEL);
+ udev = kzalloc_obj(*udev, GFP_KERNEL);
if (!udev)
goto err_udev;
@@ -410,16 +410,16 @@ static int qedi_alloc_fp(struct qedi_ctx *qedi)
{
int ret = 0;
- qedi->fp_array = kcalloc(MIN_NUM_CPUS_MSIX(qedi),
- sizeof(struct qedi_fastpath), GFP_KERNEL);
+ qedi->fp_array = kzalloc_objs(struct qedi_fastpath,
+ MIN_NUM_CPUS_MSIX(qedi), GFP_KERNEL);
if (!qedi->fp_array) {
QEDI_ERR(&qedi->dbg_ctx,
"fastpath fp array allocation failed.\n");
return -ENOMEM;
}
- qedi->sb_array = kcalloc(MIN_NUM_CPUS_MSIX(qedi),
- sizeof(struct qed_sb_info), GFP_KERNEL);
+ qedi->sb_array = kzalloc_objs(struct qed_sb_info,
+ MIN_NUM_CPUS_MSIX(qedi), GFP_KERNEL);
if (!qedi->sb_array) {
QEDI_ERR(&qedi->dbg_ctx,
"fastpath sb array allocation failed.\n");
@@ -498,9 +498,9 @@ static int qedi_setup_cid_que(struct qedi_ctx *qedi)
if (!qedi->cid_que.cid_que_base)
return -ENOMEM;
- qedi->cid_que.conn_cid_tbl = kmalloc_array(qedi->max_active_conns,
- sizeof(struct qedi_conn *),
- GFP_KERNEL);
+ qedi->cid_que.conn_cid_tbl = kmalloc_objs(struct qedi_conn *,
+ qedi->max_active_conns,
+ GFP_KERNEL);
if (!qedi->cid_que.conn_cid_tbl) {
kfree(qedi->cid_que.cid_que_base);
qedi->cid_que.cid_que_base = NULL;
@@ -706,7 +706,7 @@ static int qedi_ll2_rx(void *cookie, struct sk_buff *skb, u32 arg1, u32 arg2)
"Allowed frame ethertype [0x%x] len [0x%x].\n",
eh->h_proto, skb->len);
- work = kzalloc(sizeof(*work), GFP_ATOMIC);
+ work = kzalloc_obj(*work, GFP_ATOMIC);
if (!work) {
QEDI_WARN(&qedi->dbg_ctx,
"Could not allocate work so dropping frame.\n");
@@ -956,7 +956,7 @@ static int qedi_find_boot_info(struct qedi_ctx *qedi,
pri_ctrl_flags = !!(block->target[0].ctrl_flags &
NVM_ISCSI_CFG_TARGET_ENABLED);
if (pri_ctrl_flags) {
- pri_tgt = kzalloc(sizeof(*pri_tgt), GFP_KERNEL);
+ pri_tgt = kzalloc_obj(*pri_tgt, GFP_KERNEL);
if (!pri_tgt)
return -1;
qedi_get_boot_tgt_info(block, pri_tgt, 0);
@@ -965,7 +965,7 @@ static int qedi_find_boot_info(struct qedi_ctx *qedi,
sec_ctrl_flags = !!(block->target[1].ctrl_flags &
NVM_ISCSI_CFG_TARGET_ENABLED);
if (sec_ctrl_flags) {
- sec_tgt = kzalloc(sizeof(*sec_tgt), GFP_KERNEL);
+ sec_tgt = kzalloc_obj(*sec_tgt, GFP_KERNEL);
if (!sec_tgt) {
ret = -1;
goto free_tgt;
@@ -1066,7 +1066,7 @@ static void qedi_get_protocol_tlv_data(void *dev, void *data)
struct qedi_ctx *qedi = dev;
int rval = 0;
- fw_iscsi_stats = kmalloc(sizeof(*fw_iscsi_stats), GFP_KERNEL);
+ fw_iscsi_stats = kmalloc_obj(*fw_iscsi_stats, GFP_KERNEL);
if (!fw_iscsi_stats) {
QEDI_ERR(&qedi->dbg_ctx,
"Could not allocate memory for fw_iscsi_stats.\n");
@@ -1239,7 +1239,7 @@ static int qedi_queue_cqe(struct qedi_ctx *qedi, union iscsi_cqe *cqe,
case ISCSI_CQE_TYPE_UNSOLICITED:
case ISCSI_CQE_TYPE_DUMMY:
case ISCSI_CQE_TYPE_TASK_CLEANUP:
- qedi_work = kzalloc(sizeof(*qedi_work), GFP_ATOMIC);
+ qedi_work = kzalloc_obj(*qedi_work, GFP_ATOMIC);
if (!qedi_work) {
rc = -1;
break;
@@ -1668,8 +1668,8 @@ static int qedi_alloc_global_queues(struct qedi_ctx *qedi)
*/
for (i = 0; i < qedi->num_queues; i++) {
qedi->global_queues[i] =
- kzalloc(sizeof(*qedi->global_queues[0]),
- GFP_KERNEL);
+ kzalloc_obj(*qedi->global_queues[0],
+ GFP_KERNEL);
if (!qedi->global_queues[i]) {
QEDI_ERR(&qedi->dbg_ctx,
"Unable to allocation global queue %d.\n", i);
@@ -1895,8 +1895,8 @@ struct qedi_cmd *qedi_get_cmd_from_tid(struct qedi_ctx *qedi, u32 tid)
static int qedi_alloc_itt(struct qedi_ctx *qedi)
{
- qedi->itt_map = kcalloc(MAX_ISCSI_TASK_ENTRIES,
- sizeof(struct qedi_itt_map), GFP_KERNEL);
+ qedi->itt_map = kzalloc_objs(struct qedi_itt_map,
+ MAX_ISCSI_TASK_ENTRIES, GFP_KERNEL);
if (!qedi->itt_map) {
QEDI_ERR(&qedi->dbg_ctx,
"Unable to allocate itt map array memory\n");
diff --git a/drivers/scsi/qla2xxx/qla_bsg.c b/drivers/scsi/qla2xxx/qla_bsg.c
index 2c44a379cb23..924b07f56c80 100644
--- a/drivers/scsi/qla2xxx/qla_bsg.c
+++ b/drivers/scsi/qla2xxx/qla_bsg.c
@@ -2395,7 +2395,7 @@ qla2x00_do_dport_diagnostics(struct bsg_job *bsg_job)
!IS_QLA28XX(vha->hw))
return -EPERM;
- dd = kmalloc(sizeof(*dd), GFP_KERNEL);
+ dd = kmalloc_obj(*dd, GFP_KERNEL);
if (!dd) {
ql_log(ql_log_warn, vha, 0x70db,
"Failed to allocate memory for dport.\n");
@@ -2441,7 +2441,7 @@ qla2x00_do_dport_diagnostics_v2(struct bsg_job *bsg_job)
if (!IS_DPORT_CAPABLE(vha->hw))
return -EPERM;
- dd = kzalloc(sizeof(*dd), GFP_KERNEL);
+ dd = kzalloc_obj(*dd, GFP_KERNEL);
if (!dd)
return -ENOMEM;
@@ -2598,7 +2598,7 @@ qla2x00_manage_host_stats(struct bsg_job *bsg_job)
return -EIO;
}
- req_data = kzalloc(sizeof(*req_data), GFP_KERNEL);
+ req_data = kzalloc_obj(*req_data, GFP_KERNEL);
if (!req_data) {
ql_log(ql_log_warn, vha, 0x0000, "req_data memory allocation failure.\n");
return -ENOMEM;
@@ -2669,7 +2669,7 @@ qla2x00_get_host_stats(struct bsg_job *bsg_job)
return -EIO;
}
- req_data = kzalloc(sizeof(*req_data), GFP_KERNEL);
+ req_data = kzalloc_obj(*req_data, GFP_KERNEL);
if (!req_data) {
ql_log(ql_log_warn, vha, 0x0000, "req_data memory allocation failure.\n");
return -ENOMEM;
@@ -2776,7 +2776,7 @@ qla2x00_get_tgt_stats(struct bsg_job *bsg_job)
return -EIO;
}
- req_data = kzalloc(sizeof(*req_data), GFP_KERNEL);
+ req_data = kzalloc_obj(*req_data, GFP_KERNEL);
if (!req_data) {
ql_log(ql_log_warn, vha, 0x0000, "req_data memory allocation failure.\n");
return -ENOMEM;
@@ -2859,7 +2859,7 @@ qla2x00_manage_host_port(struct bsg_job *bsg_job)
return -EIO;
}
- req_data = kzalloc(sizeof(*req_data), GFP_KERNEL);
+ req_data = kzalloc_obj(*req_data, GFP_KERNEL);
if (!req_data) {
ql_log(ql_log_warn, vha, 0x0000, "req_data memory allocation failure.\n");
return -ENOMEM;
diff --git a/drivers/scsi/qla2xxx/qla_edif.c b/drivers/scsi/qla2xxx/qla_edif.c
index ccd4485087a1..a2db229d3af4 100644
--- a/drivers/scsi/qla2xxx/qla_edif.c
+++ b/drivers/scsi/qla2xxx/qla_edif.c
@@ -174,7 +174,7 @@ static int qla_edif_list_add_sa_update_index(fc_port_t *fcport,
* when update is called for the first two sa_indexes
* followed by a delete of the first sa_index
*/
- entry = kzalloc((sizeof(struct edif_list_entry)), GFP_ATOMIC);
+ entry = kzalloc_obj(struct edif_list_entry, GFP_ATOMIC);
if (!entry)
return -ENOMEM;
@@ -1393,7 +1393,7 @@ qla_edif_add_sa_ctl(fc_port_t *fcport, struct qla_sa_update_frame *sa_frame,
int index = sa_frame->fast_sa_index;
unsigned long flags = 0;
- sa_ctl = kzalloc(sizeof(*sa_ctl), GFP_KERNEL);
+ sa_ctl = kzalloc_obj(*sa_ctl, GFP_KERNEL);
if (!sa_ctl) {
/* couldn't get space */
ql_dbg(ql_dbg_edif, fcport->vha, 0x9100,
@@ -2187,7 +2187,7 @@ qla_edb_node_alloc(scsi_qla_host_t *vha, uint32_t ntype)
{
struct edb_node *node;
- node = kzalloc(sizeof(*node), GFP_ATOMIC);
+ node = kzalloc_obj(*node, GFP_ATOMIC);
if (!node) {
/* couldn't get space */
ql_dbg(ql_dbg_edif, vha, 0x9100,
@@ -3279,7 +3279,7 @@ static uint16_t qla_edif_sadb_get_sa_index(fc_port_t *fcport,
}
/* if there is no entry for this nport, add one */
- entry = kzalloc((sizeof(struct edif_sa_index_entry)), GFP_ATOMIC);
+ entry = kzalloc_obj(struct edif_sa_index_entry, GFP_ATOMIC);
if (!entry)
return INVALID_EDIF_SA_INDEX;
@@ -3381,7 +3381,7 @@ void qla_edif_sadb_release(struct qla_hw_data *ha)
int qla_edif_sadb_build_free_pool(struct qla_hw_data *ha)
{
ha->edif_tx_sa_id_map =
- kcalloc(BITS_TO_LONGS(EDIF_NUM_SA_INDEX), sizeof(long), GFP_KERNEL);
+ kzalloc_objs(long, BITS_TO_LONGS(EDIF_NUM_SA_INDEX), GFP_KERNEL);
if (!ha->edif_tx_sa_id_map) {
ql_log_pci(ql_log_fatal, ha->pdev, 0x0009,
@@ -3390,7 +3390,7 @@ int qla_edif_sadb_build_free_pool(struct qla_hw_data *ha)
}
ha->edif_rx_sa_id_map =
- kcalloc(BITS_TO_LONGS(EDIF_NUM_SA_INDEX), sizeof(long), GFP_KERNEL);
+ kzalloc_objs(long, BITS_TO_LONGS(EDIF_NUM_SA_INDEX), GFP_KERNEL);
if (!ha->edif_rx_sa_id_map) {
kfree(ha->edif_tx_sa_id_map);
ha->edif_tx_sa_id_map = NULL;
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 689f909943b4..808acf7daf4d 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -4033,9 +4033,8 @@ qla2x00_alloc_outstanding_cmds(struct qla_hw_data *ha, struct req_que *req)
req->num_outstanding_cmds = ha->cur_fw_iocb_count;
}
- req->outstanding_cmds = kcalloc(req->num_outstanding_cmds,
- sizeof(srb_t *),
- GFP_KERNEL);
+ req->outstanding_cmds = kzalloc_objs(srb_t *, req->num_outstanding_cmds,
+ GFP_KERNEL);
if (!req->outstanding_cmds) {
/*
@@ -4043,9 +4042,9 @@ qla2x00_alloc_outstanding_cmds(struct qla_hw_data *ha, struct req_que *req)
* initialization.
*/
req->num_outstanding_cmds = MIN_OUTSTANDING_COMMANDS;
- req->outstanding_cmds = kcalloc(req->num_outstanding_cmds,
- sizeof(srb_t *),
- GFP_KERNEL);
+ req->outstanding_cmds = kzalloc_objs(srb_t *,
+ req->num_outstanding_cmds,
+ GFP_KERNEL);
if (!req->outstanding_cmds) {
ql_log(ql_log_fatal, NULL, 0x0126,
@@ -5574,7 +5573,7 @@ qla2x00_alloc_fcport(scsi_qla_host_t *vha, gfp_t flags)
{
fc_port_t *fcport;
- fcport = kzalloc(sizeof(fc_port_t), flags);
+ fcport = kzalloc_obj(fc_port_t, flags);
if (!fcport)
return NULL;
@@ -6494,8 +6493,8 @@ qla2x00_find_all_fabric_devs(scsi_qla_host_t *vha)
/* Try GID_PT to get device list, else GAN. */
if (!ha->swl)
- ha->swl = kcalloc(ha->max_fibre_devices, sizeof(sw_info_t),
- GFP_KERNEL);
+ ha->swl = kzalloc_objs(sw_info_t, ha->max_fibre_devices,
+ GFP_KERNEL);
swl = ha->swl;
if (!swl) {
/*EMPTY*/
@@ -9231,7 +9230,7 @@ qla84xx_get_chip(struct scsi_qla_host *vha)
}
}
- cs84xx = kzalloc(sizeof(*cs84xx), GFP_KERNEL);
+ cs84xx = kzalloc_obj(*cs84xx, GFP_KERNEL);
if (!cs84xx)
goto done;
@@ -9885,7 +9884,7 @@ struct qla_qpair *qla2xxx_create_qpair(struct scsi_qla_host *vha, int qos,
}
if (ql2xmqsupport || ql2xnvmeenable) {
- qpair = kzalloc(sizeof(struct qla_qpair), GFP_KERNEL);
+ qpair = kzalloc_obj(struct qla_qpair, GFP_KERNEL);
if (qpair == NULL) {
ql_log(ql_log_warn, vha, 0x0182,
"Failed to allocate memory for queue pair.\n");
diff --git a/drivers/scsi/qla2xxx/qla_inline.h b/drivers/scsi/qla2xxx/qla_inline.h
index ef4b3cc1cd77..bb34a3a612cf 100644
--- a/drivers/scsi/qla2xxx/qla_inline.h
+++ b/drivers/scsi/qla2xxx/qla_inline.h
@@ -621,8 +621,8 @@ static inline int qla_mapq_alloc_qp_cpu_map(struct qla_hw_data *ha)
scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev);
if (!ha->qp_cpu_map) {
- ha->qp_cpu_map = kcalloc(NR_CPUS, sizeof(struct qla_qpair *),
- GFP_KERNEL);
+ ha->qp_cpu_map = kzalloc_objs(struct qla_qpair *, NR_CPUS,
+ GFP_KERNEL);
if (!ha->qp_cpu_map) {
ql_log(ql_log_fatal, vha, 0x0180,
"Unable to allocate memory for qp_cpu_map ptrs.\n");
diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c
index 3224044f1775..9038f6723444 100644
--- a/drivers/scsi/qla2xxx/qla_iocb.c
+++ b/drivers/scsi/qla2xxx/qla_iocb.c
@@ -882,7 +882,7 @@ qla24xx_walk_and_build_sglist_no_difb(struct qla_hw_data *ha, srb_t *sp,
used_dsds -= avail_dsds;
/* allocate tracking DS */
- dsd_ptr = kzalloc(sizeof(struct dsd_dma), GFP_ATOMIC);
+ dsd_ptr = kzalloc_obj(struct dsd_dma, GFP_ATOMIC);
if (!dsd_ptr)
return 1;
@@ -979,7 +979,7 @@ qla24xx_walk_and_build_sglist(struct qla_hw_data *ha, srb_t *sp,
used_dsds -= avail_dsds;
/* allocate tracking DS */
- dsd_ptr = kzalloc(sizeof(struct dsd_dma), GFP_ATOMIC);
+ dsd_ptr = kzalloc_obj(struct dsd_dma, GFP_ATOMIC);
if (!dsd_ptr)
return 1;
@@ -1123,8 +1123,8 @@ qla24xx_walk_and_build_prot_sglist(struct qla_hw_data *ha, srb_t *sp,
* Allocate list item to store
* the DMA buffers
*/
- dsd_ptr = kzalloc(sizeof(*dsd_ptr),
- GFP_ATOMIC);
+ dsd_ptr = kzalloc_obj(*dsd_ptr,
+ GFP_ATOMIC);
if (!dsd_ptr) {
ql_dbg(ql_dbg_tgt, vha, 0xe024,
"%s: failed alloc dsd_ptr\n",
@@ -1209,7 +1209,7 @@ qla24xx_walk_and_build_prot_sglist(struct qla_hw_data *ha, srb_t *sp,
used_dsds -= avail_dsds;
/* allocate tracking DS */
- dsd_ptr = kzalloc(sizeof(*dsd_ptr), GFP_ATOMIC);
+ dsd_ptr = kzalloc_obj(*dsd_ptr, GFP_ATOMIC);
if (!dsd_ptr) {
ql_dbg(ql_dbg_tgt, vha, 0xe026,
"%s: failed alloc dsd_ptr\n",
@@ -1275,7 +1275,7 @@ qla24xx_walk_and_build_prot_sglist(struct qla_hw_data *ha, srb_t *sp,
used_dsds -= avail_dsds;
/* allocate tracking DS */
- dsd_ptr = kzalloc(sizeof(*dsd_ptr), GFP_ATOMIC);
+ dsd_ptr = kzalloc_obj(*dsd_ptr, GFP_ATOMIC);
if (!dsd_ptr) {
ql_dbg(ql_dbg_tgt + ql_dbg_verbose,
vha, 0xe027,
@@ -3450,7 +3450,7 @@ qla82xx_start_scsi(srb_t *sp)
more_dsd_lists -= qpair->dsd_avail;
for (i = 0; i < more_dsd_lists; i++) {
- dsd_ptr = kzalloc(sizeof(struct dsd_dma), GFP_ATOMIC);
+ dsd_ptr = kzalloc_obj(struct dsd_dma, GFP_ATOMIC);
if (!dsd_ptr) {
ql_log(ql_log_fatal, vha, 0x300e,
"Failed to allocate memory for dsd_dma "
@@ -4315,7 +4315,7 @@ qla_start_scsi_type6(srb_t *sp)
more_dsd_lists -= qpair->dsd_avail;
for (i = 0; i < more_dsd_lists; i++) {
- dsd_ptr = kzalloc(sizeof(*dsd_ptr), GFP_ATOMIC);
+ dsd_ptr = kzalloc_obj(*dsd_ptr, GFP_ATOMIC);
if (!dsd_ptr) {
ql_log(ql_log_fatal, vha, 0x3029,
"Failed to allocate memory for dsd_dma for cmd=%p.\n", cmd);
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index 608d2f36e7b4..6117b516a23a 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -4562,9 +4562,8 @@ qla24xx_enable_msix(struct qla_hw_data *ha, struct rsp_que *rsp)
}
}
vha->irq_offset = desc.pre_vectors;
- ha->msix_entries = kcalloc(ha->msix_count,
- sizeof(struct qla_msix_entry),
- GFP_KERNEL);
+ ha->msix_entries = kzalloc_objs(struct qla_msix_entry, ha->msix_count,
+ GFP_KERNEL);
if (!ha->msix_entries) {
ql_log(ql_log_fatal, vha, 0x00c8,
"Failed to allocate memory for ha->msix_entries.\n");
diff --git a/drivers/scsi/qla2xxx/qla_mid.c b/drivers/scsi/qla2xxx/qla_mid.c
index 0abc47e72e0b..34928d981677 100644
--- a/drivers/scsi/qla2xxx/qla_mid.c
+++ b/drivers/scsi/qla2xxx/qla_mid.c
@@ -707,7 +707,7 @@ qla25xx_create_req_que(struct qla_hw_data *ha, uint16_t options,
device_reg_t *reg;
uint32_t cnt;
- req = kzalloc(sizeof(struct req_que), GFP_KERNEL);
+ req = kzalloc_obj(struct req_que, GFP_KERNEL);
if (req == NULL) {
ql_log(ql_log_fatal, base_vha, 0x00d9,
"Failed to allocate memory for request queue.\n");
@@ -834,7 +834,7 @@ qla25xx_create_rsp_que(struct qla_hw_data *ha, uint16_t options,
uint16_t que_id = 0;
device_reg_t *reg;
- rsp = kzalloc(sizeof(struct rsp_que), GFP_KERNEL);
+ rsp = kzalloc_obj(struct rsp_que, GFP_KERNEL);
if (rsp == NULL) {
ql_log(ql_log_warn, base_vha, 0x0066,
"Failed to allocate memory for response queue.\n");
@@ -1102,7 +1102,8 @@ int qla_create_buf_pool(struct scsi_qla_host *vha, struct qla_qpair *qp)
return -ENOMEM;
}
sz = qp->req->length * sizeof(dma_addr_t);
- qp->buf_pool.dma_array = kcalloc(qp->req->length, sizeof(dma_addr_t), GFP_KERNEL);
+ qp->buf_pool.dma_array = kzalloc_objs(dma_addr_t, qp->req->length,
+ GFP_KERNEL);
if (!qp->buf_pool.dma_array) {
ql_log(ql_log_warn, vha, 0x0186,
"Failed to allocate dma_array(%d).\n", sz);
diff --git a/drivers/scsi/qla2xxx/qla_nvme.c b/drivers/scsi/qla2xxx/qla_nvme.c
index 42eb65a62f1f..2531e71c39dc 100644
--- a/drivers/scsi/qla2xxx/qla_nvme.c
+++ b/drivers/scsi/qla2xxx/qla_nvme.c
@@ -1286,7 +1286,7 @@ void qla2xxx_process_purls_iocb(void **pkt, struct rsp_que **rsp)
goto out;
}
- uctx = kzalloc(sizeof(*uctx), GFP_ATOMIC);
+ uctx = kzalloc_obj(*uctx, GFP_ATOMIC);
if (!uctx) {
ql_log(ql_log_info, vha, 0x2126, "Failed allocate memory\n");
a.reason = FCNVME_RJT_RC_LOGIC;
diff --git a/drivers/scsi/qla2xxx/qla_nx.c b/drivers/scsi/qla2xxx/qla_nx.c
index 0cd3db8ed4ef..ec47ef3f0783 100644
--- a/drivers/scsi/qla2xxx/qla_nx.c
+++ b/drivers/scsi/qla2xxx/qla_nx.c
@@ -1183,7 +1183,7 @@ qla82xx_pinit_from_rom(scsi_qla_host_t *vha)
ql_log(ql_log_info, vha, 0x0072,
"%d CRB init values found in ROM.\n", n);
- buf = kmalloc_array(n, sizeof(struct crb_addr_pair), GFP_KERNEL);
+ buf = kmalloc_objs(struct crb_addr_pair, n, GFP_KERNEL);
if (buf == NULL) {
ql_log(ql_log_fatal, vha, 0x010c,
"Unable to allocate memory.\n");
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index a88b460641f2..89540254b784 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -438,23 +438,23 @@ static int qla2x00_alloc_queues(struct qla_hw_data *ha, struct req_que *req,
{
scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev);
- ha->req_q_map = kcalloc(ha->max_req_queues, sizeof(struct req_que *),
- GFP_KERNEL);
+ ha->req_q_map = kzalloc_objs(struct req_que *, ha->max_req_queues,
+ GFP_KERNEL);
if (!ha->req_q_map) {
ql_log(ql_log_fatal, vha, 0x003b,
"Unable to allocate memory for request queue ptrs.\n");
goto fail_req_map;
}
- ha->rsp_q_map = kcalloc(ha->max_rsp_queues, sizeof(struct rsp_que *),
- GFP_KERNEL);
+ ha->rsp_q_map = kzalloc_objs(struct rsp_que *, ha->max_rsp_queues,
+ GFP_KERNEL);
if (!ha->rsp_q_map) {
ql_log(ql_log_fatal, vha, 0x003c,
"Unable to allocate memory for response queue ptrs.\n");
goto fail_rsp_map;
}
- ha->base_qpair = kzalloc(sizeof(struct qla_qpair), GFP_KERNEL);
+ ha->base_qpair = kzalloc_obj(struct qla_qpair, GFP_KERNEL);
if (ha->base_qpair == NULL) {
ql_log(ql_log_warn, vha, 0x00e0,
"Failed to allocate base queue pair memory.\n");
@@ -464,8 +464,8 @@ static int qla2x00_alloc_queues(struct qla_hw_data *ha, struct req_que *req,
qla_init_base_qpair(vha, req, rsp);
if ((ql2xmqsupport || ql2xnvmeenable) && ha->max_qpairs) {
- ha->queue_pair_map = kcalloc(ha->max_qpairs, sizeof(struct qla_qpair *),
- GFP_KERNEL);
+ ha->queue_pair_map = kzalloc_objs(struct qla_qpair *,
+ ha->max_qpairs, GFP_KERNEL);
if (!ha->queue_pair_map) {
ql_log(ql_log_fatal, vha, 0x0180,
"Unable to allocate memory for queue pair ptrs.\n");
@@ -2960,7 +2960,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
ql2xallocfwdump = 0;
}
- ha = kzalloc(sizeof(struct qla_hw_data), GFP_KERNEL);
+ ha = kzalloc_obj(struct qla_hw_data, GFP_KERNEL);
if (!ha) {
ql_log_pci(ql_log_fatal, pdev, 0x0009,
"Unable to allocate memory for ha.\n");
@@ -4151,7 +4151,8 @@ qla2x00_mem_alloc(struct qla_hw_data *ha, uint16_t req_len, uint16_t rsp_len,
int rc;
if (QLA_TGT_MODE_ENABLED() || EDIF_CAP(ha)) {
- ha->vp_map = kcalloc(MAX_MULTI_ID_FABRIC, sizeof(struct qla_vp_map), GFP_KERNEL);
+ ha->vp_map = kzalloc_objs(struct qla_vp_map,
+ MAX_MULTI_ID_FABRIC, GFP_KERNEL);
if (!ha->vp_map)
goto fail;
}
@@ -4247,7 +4248,7 @@ qla2x00_mem_alloc(struct qla_hw_data *ha, uint16_t req_len, uint16_t rsp_len,
ha->pool.good.count = 0;
ha->pool.unusable.count = 0;
for (i = 0; i < 128; i++) {
- dsd = kzalloc(sizeof(*dsd), GFP_ATOMIC);
+ dsd = kzalloc_obj(*dsd, GFP_ATOMIC);
if (!dsd) {
ql_dbg_pci(ql_dbg_init, ha->pdev,
0xe0ee, "%s: failed alloc dsd\n",
@@ -4335,7 +4336,7 @@ qla2x00_mem_alloc(struct qla_hw_data *ha, uint16_t req_len, uint16_t rsp_len,
}
/* Allocate memory for request ring */
- *req = kzalloc(sizeof(struct req_que), GFP_KERNEL);
+ *req = kzalloc_obj(struct req_que, GFP_KERNEL);
if (!*req) {
ql_log_pci(ql_log_fatal, ha->pdev, 0x0028,
"Failed to allocate memory for req.\n");
@@ -4351,7 +4352,7 @@ qla2x00_mem_alloc(struct qla_hw_data *ha, uint16_t req_len, uint16_t rsp_len,
goto fail_req_ring;
}
/* Allocate memory for response ring */
- *rsp = kzalloc(sizeof(struct rsp_que), GFP_KERNEL);
+ *rsp = kzalloc_obj(struct rsp_que, GFP_KERNEL);
if (!*rsp) {
ql_log_pci(ql_log_fatal, ha->pdev, 0x002a,
"Failed to allocate memory for rsp.\n");
@@ -4376,9 +4377,8 @@ qla2x00_mem_alloc(struct qla_hw_data *ha, uint16_t req_len, uint16_t rsp_len,
(*rsp)->ring);
/* Allocate memory for NVRAM data for vports */
if (ha->nvram_npiv_size) {
- ha->npiv_info = kcalloc(ha->nvram_npiv_size,
- sizeof(struct qla_npiv_entry),
- GFP_KERNEL);
+ ha->npiv_info = kzalloc_objs(struct qla_npiv_entry,
+ ha->nvram_npiv_size, GFP_KERNEL);
if (!ha->npiv_info) {
ql_log_pci(ql_log_fatal, ha->pdev, 0x002d,
"Failed to allocate memory for npiv_info.\n");
@@ -4422,9 +4422,8 @@ qla2x00_mem_alloc(struct qla_hw_data *ha, uint16_t req_len, uint16_t rsp_len,
INIT_LIST_HEAD(&ha->vp_list);
/* Allocate memory for our loop_id bitmap */
- ha->loop_id_map = kcalloc(BITS_TO_LONGS(LOOPID_MAP_SIZE),
- sizeof(long),
- GFP_KERNEL);
+ ha->loop_id_map = kzalloc_objs(long, BITS_TO_LONGS(LOOPID_MAP_SIZE),
+ GFP_KERNEL);
if (!ha->loop_id_map)
goto fail_loop_id_map;
else {
@@ -5136,7 +5135,7 @@ qla2x00_alloc_work(struct scsi_qla_host *vha, enum qla_work_type type)
if (qla_vha_mark_busy(vha))
return NULL;
- e = kzalloc(sizeof(struct qla_work_evt), GFP_ATOMIC);
+ e = kzalloc_obj(struct qla_work_evt, GFP_ATOMIC);
if (!e) {
QLA_VHA_MARK_NOT_BUSY(vha);
return NULL;
@@ -6018,7 +6017,7 @@ qla25xx_rdp_rsp_reduce_size(struct scsi_qla_host *vha,
ql_dbg(ql_dbg_init, vha, 0x0181, "%s: s_id=%#x\n", __func__, sid);
- pdb = kzalloc(sizeof(*pdb), GFP_KERNEL);
+ pdb = kzalloc_obj(*pdb, GFP_KERNEL);
if (!pdb) {
ql_dbg(ql_dbg_init, vha, 0x0181,
"%s: Failed allocate pdb\n", __func__);
diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c
index ef3a5fac2b48..8062dad21d4e 100644
--- a/drivers/scsi/qla2xxx/qla_target.c
+++ b/drivers/scsi/qla2xxx/qla_target.c
@@ -1621,7 +1621,7 @@ static int qlt_sched_sess_work(struct qla_tgt *tgt, int type,
struct qla_tgt_sess_work_param *prm;
unsigned long flags;
- prm = kzalloc(sizeof(*prm), GFP_ATOMIC);
+ prm = kzalloc_obj(*prm, GFP_ATOMIC);
if (!prm) {
ql_dbg(ql_dbg_tgt_mgt, tgt->vha, 0xf050,
"qla_target(%d): Unable to create session "
@@ -3988,7 +3988,7 @@ static int qlt_prepare_srr_ctio(struct qla_qpair *qpair,
return 0;
}
- srr = kzalloc(sizeof(*srr), GFP_ATOMIC);
+ srr = kzalloc_obj(*srr, GFP_ATOMIC);
if (!srr)
return -ENOMEM;
@@ -5561,7 +5561,7 @@ static void qlt_prepare_srr_imm(struct scsi_qla_host *vha,
* safely.
*/
- srr = kzalloc(sizeof(*srr), GFP_ATOMIC);
+ srr = kzalloc_obj(*srr, GFP_ATOMIC);
if (!srr)
goto out_reject;
@@ -5707,7 +5707,7 @@ static int qlt_set_data_offset(struct qla_tgt_cmd *cmd, uint32_t offset)
*/
int n_alloc_sg = min(sg_srr_cnt, 2);
struct scatterlist *sg_srr =
- kmalloc_array(n_alloc_sg, sizeof(*sg_srr), GFP_ATOMIC);
+ kmalloc_objs(*sg_srr, n_alloc_sg, GFP_ATOMIC);
if (!sg_srr) {
ql_dbg(ql_dbg_tgt_mgt, vha, 0x11027,
"qla_target(%d): tag %lld: Unable to allocate SRR scatterlist\n",
@@ -7458,16 +7458,15 @@ int qlt_add_target(struct qla_hw_data *ha, struct scsi_qla_host *base_vha)
BUG_ON(base_vha->vha_tgt.qla_tgt != NULL);
- tgt = kzalloc(sizeof(struct qla_tgt), GFP_KERNEL);
+ tgt = kzalloc_obj(struct qla_tgt, GFP_KERNEL);
if (!tgt) {
ql_dbg(ql_dbg_tgt, base_vha, 0xe066,
"Unable to allocate struct qla_tgt\n");
return -ENOMEM;
}
- tgt->qphints = kcalloc(ha->max_qpairs + 1,
- sizeof(struct qla_qpair_hint),
- GFP_KERNEL);
+ tgt->qphints = kzalloc_objs(struct qla_qpair_hint, ha->max_qpairs + 1,
+ GFP_KERNEL);
if (!tgt->qphints) {
kfree(tgt);
ql_log(ql_log_warn, base_vha, 0x0197,
@@ -8280,7 +8279,7 @@ qlt_handle_abts_recv(struct scsi_qla_host *vha, struct rsp_que *rsp,
{
struct qla_tgt_sess_op *op;
- op = kzalloc(sizeof(*op), GFP_ATOMIC);
+ op = kzalloc_obj(*op, GFP_ATOMIC);
if (!op) {
/* do not reach for ATIO queue here. This is best effort err
diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.c b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
index 3177cb7864a7..2eae89aad109 100644
--- a/drivers/scsi/qla2xxx/tcm_qla2xxx.c
+++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
@@ -1015,7 +1015,7 @@ static struct se_portal_group *tcm_qla2xxx_make_tpg(struct se_wwn *wwn,
return ERR_PTR(-ENOSYS);
}
- tpg = kzalloc(sizeof(struct tcm_qla2xxx_tpg), GFP_KERNEL);
+ tpg = kzalloc_obj(struct tcm_qla2xxx_tpg, GFP_KERNEL);
if (!tpg) {
pr_err("Unable to allocate struct tcm_qla2xxx_tpg\n");
return ERR_PTR(-ENOMEM);
@@ -1106,7 +1106,7 @@ static struct se_portal_group *tcm_qla2xxx_npiv_make_tpg(struct se_wwn *wwn,
if (kstrtoul(name + 5, 10, &tpgt) || tpgt > USHRT_MAX)
return ERR_PTR(-EINVAL);
- tpg = kzalloc(sizeof(struct tcm_qla2xxx_tpg), GFP_KERNEL);
+ tpg = kzalloc_obj(struct tcm_qla2xxx_tpg, GFP_KERNEL);
if (!tpg) {
pr_err("Unable to allocate struct tcm_qla2xxx_tpg\n");
return ERR_PTR(-ENOMEM);
@@ -1609,7 +1609,7 @@ static struct se_wwn *tcm_qla2xxx_make_lport(
if (tcm_qla2xxx_parse_wwn(name, &wwpn, 1) < 0)
return ERR_PTR(-EINVAL);
- lport = kzalloc(sizeof(struct tcm_qla2xxx_lport), GFP_KERNEL);
+ lport = kzalloc_obj(struct tcm_qla2xxx_lport, GFP_KERNEL);
if (!lport) {
pr_err("Unable to allocate struct tcm_qla2xxx_lport\n");
return ERR_PTR(-ENOMEM);
@@ -1735,7 +1735,7 @@ static struct se_wwn *tcm_qla2xxx_npiv_make_lport(
&npiv_wwpn, &npiv_wwnn) < 0)
return ERR_PTR(-EINVAL);
- lport = kzalloc(sizeof(struct tcm_qla2xxx_lport), GFP_KERNEL);
+ lport = kzalloc_obj(struct tcm_qla2xxx_lport, GFP_KERNEL);
if (!lport) {
pr_err("Unable to allocate struct tcm_qla2xxx_lport for NPIV\n");
return ERR_PTR(-ENOMEM);
diff --git a/drivers/scsi/qla4xxx/ql4_iocb.c b/drivers/scsi/qla4xxx/ql4_iocb.c
index 28eab07935ba..3ec9321f41e2 100644
--- a/drivers/scsi/qla4xxx/ql4_iocb.c
+++ b/drivers/scsi/qla4xxx/ql4_iocb.c
@@ -451,7 +451,7 @@ static struct mrb *qla4xxx_get_new_mrb(struct scsi_qla_host *ha)
{
struct mrb *mrb;
- mrb = kzalloc(sizeof(*mrb), GFP_KERNEL);
+ mrb = kzalloc_obj(*mrb, GFP_KERNEL);
if (!mrb)
return mrb;
diff --git a/drivers/scsi/qla4xxx/ql4_nx.c b/drivers/scsi/qla4xxx/ql4_nx.c
index b0a62aaa1cca..47b9fea0a989 100644
--- a/drivers/scsi/qla4xxx/ql4_nx.c
+++ b/drivers/scsi/qla4xxx/ql4_nx.c
@@ -1058,7 +1058,7 @@ qla4_82xx_pinit_from_rom(struct scsi_qla_host *ha, int verbose)
ql4_printk(KERN_INFO, ha,
"%s: %d CRB init values found in ROM.\n", DRIVER_NAME, n);
- buf = kmalloc_array(n, sizeof(struct crb_addr_pair), GFP_KERNEL);
+ buf = kmalloc_objs(struct crb_addr_pair, n, GFP_KERNEL);
if (buf == NULL) {
ql4_printk(KERN_WARNING, ha,
"%s: [ERROR] Unable to malloc memory.\n", DRIVER_NAME);
diff --git a/drivers/scsi/raid_class.c b/drivers/scsi/raid_class.c
index 95a86e0dfd77..46fb627f61d6 100644
--- a/drivers/scsi/raid_class.c
+++ b/drivers/scsi/raid_class.c
@@ -81,7 +81,7 @@ static int raid_setup(struct transport_container *tc, struct device *dev,
BUG_ON(dev_get_drvdata(cdev));
- rd = kzalloc(sizeof(*rd), GFP_KERNEL);
+ rd = kzalloc_obj(*rd, GFP_KERNEL);
if (!rd)
return -ENOMEM;
@@ -212,8 +212,7 @@ raid_attr_ro_state_fn(state);
struct raid_template *
raid_class_attach(struct raid_function_template *ft)
{
- struct raid_internal *i = kzalloc(sizeof(struct raid_internal),
- GFP_KERNEL);
+ struct raid_internal *i = kzalloc_obj(struct raid_internal, GFP_KERNEL);
int count = 0;
if (unlikely(!i))
diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c
index c947655db518..fb609d2db056 100644
--- a/drivers/scsi/scsi_debug.c
+++ b/drivers/scsi/scsi_debug.c
@@ -1169,7 +1169,7 @@ static ssize_t sdebug_error_write(struct file *file, const char __user *ubuf,
return -EINVAL;
}
- inject = kzalloc(sizeof(struct sdebug_err_inject), GFP_KERNEL);
+ inject = kzalloc_obj(struct sdebug_err_inject, GFP_KERNEL);
if (!inject) {
kfree(buf);
return -ENOMEM;
@@ -1266,7 +1266,7 @@ static int sdebug_target_alloc(struct scsi_target *starget)
{
struct sdebug_target_info *targetip;
- targetip = kzalloc(sizeof(struct sdebug_target_info), GFP_KERNEL);
+ targetip = kzalloc_obj(struct sdebug_target_info, GFP_KERNEL);
if (!targetip)
return -ENOMEM;
@@ -6504,8 +6504,8 @@ static int sdebug_device_create_zones(struct sdebug_dev_info *devip)
devip->max_open = sdeb_zbc_max_open;
}
- devip->zstate = kcalloc(devip->nr_zones,
- sizeof(struct sdeb_zone_state), GFP_KERNEL);
+ devip->zstate = kzalloc_objs(struct sdeb_zone_state, devip->nr_zones,
+ GFP_KERNEL);
if (!devip->zstate)
return -ENOMEM;
@@ -6549,7 +6549,7 @@ static struct sdebug_dev_info *sdebug_device_create(
{
struct sdebug_dev_info *devip;
- devip = kzalloc(sizeof(*devip), flags);
+ devip = kzalloc_obj(*devip, flags);
if (devip) {
if (sdebug_uuid_ctl == 1)
uuid_gen(&devip->lu_name);
@@ -6649,8 +6649,8 @@ static int scsi_debug_sdev_configure(struct scsi_device *sdp,
if (sdebug_ptype == TYPE_TAPE) {
if (!devip->tape_blocks[0]) {
devip->tape_blocks[0] =
- kcalloc(TAPE_UNITS, sizeof(struct tape_block),
- GFP_KERNEL);
+ kzalloc_objs(struct tape_block, TAPE_UNITS,
+ GFP_KERNEL);
if (!devip->tape_blocks[0])
return 1;
}
@@ -8791,7 +8791,7 @@ static int sdebug_add_store(void)
struct sdeb_store_info *sip = NULL;
struct xa_limit xal = { .max = 1 << 16, .min = 0 };
- sip = kzalloc(sizeof(*sip), GFP_KERNEL);
+ sip = kzalloc_obj(*sip, GFP_KERNEL);
if (!sip)
return -ENOMEM;
@@ -8868,7 +8868,7 @@ static int sdebug_add_host_helper(int per_host_idx)
struct sdebug_host_info *sdbg_host;
struct sdebug_dev_info *sdbg_devinfo, *tmp;
- sdbg_host = kzalloc(sizeof(*sdbg_host), GFP_KERNEL);
+ sdbg_host = kzalloc_obj(*sdbg_host, GFP_KERNEL);
if (!sdbg_host)
return -ENOMEM;
idx = (per_host_idx < 0) ? sdeb_first_idx : per_host_idx;
diff --git a/drivers/scsi/scsi_devinfo.c b/drivers/scsi/scsi_devinfo.c
index 78346b2b69c9..bb27ae42c594 100644
--- a/drivers/scsi/scsi_devinfo.c
+++ b/drivers/scsi/scsi_devinfo.c
@@ -355,7 +355,7 @@ int scsi_dev_info_list_add_keyed(int compatible, char *vendor, char *model,
if (IS_ERR(devinfo_table))
return PTR_ERR(devinfo_table);
- devinfo = kmalloc(sizeof(*devinfo), GFP_KERNEL);
+ devinfo = kmalloc_obj(*devinfo, GFP_KERNEL);
if (!devinfo) {
printk(KERN_ERR "%s: no memory\n", __func__);
return -ENOMEM;
@@ -615,7 +615,7 @@ static int devinfo_seq_show(struct seq_file *m, void *v)
static void *devinfo_seq_start(struct seq_file *m, loff_t *ppos)
{
- struct double_list *dl = kmalloc(sizeof(*dl), GFP_KERNEL);
+ struct double_list *dl = kmalloc_obj(*dl, GFP_KERNEL);
loff_t pos = *ppos;
if (!dl)
@@ -759,7 +759,7 @@ int scsi_dev_info_add_list(enum scsi_devinfo_key key, const char *name)
/* list already exists */
return -EEXIST;
- devinfo_table = kmalloc(sizeof(*devinfo_table), GFP_KERNEL);
+ devinfo_table = kmalloc_obj(*devinfo_table, GFP_KERNEL);
if (!devinfo_table)
return -ENOMEM;
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 68c411aa5665..d3a8cd4166f9 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -2751,7 +2751,7 @@ EXPORT_SYMBOL_GPL(sdev_evt_send);
struct scsi_event *sdev_evt_alloc(enum scsi_device_event evt_type,
gfp_t gfpflags)
{
- struct scsi_event *evt = kzalloc(sizeof(struct scsi_event), gfpflags);
+ struct scsi_event *evt = kzalloc_obj(struct scsi_event, gfpflags);
if (!evt)
return NULL;
diff --git a/drivers/scsi/scsi_proc.c b/drivers/scsi/scsi_proc.c
index 41f23cd0bfb4..046871351dc0 100644
--- a/drivers/scsi/scsi_proc.c
+++ b/drivers/scsi/scsi_proc.c
@@ -162,7 +162,7 @@ int scsi_proc_hostdir_add(const struct scsi_host_template *sht)
mutex_lock(&global_host_template_mutex);
e = __scsi_lookup_proc_entry(sht);
if (!e) {
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e) {
ret = -ENOMEM;
goto unlock;
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index 7acbfcfc2172..ca2bda973aad 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -1954,7 +1954,7 @@ static struct async_scan_data *scsi_prep_async_scan(struct Scsi_Host *shost)
goto err;
}
- data = kmalloc(sizeof(*data), GFP_KERNEL);
+ data = kmalloc_obj(*data, GFP_KERNEL);
if (!data)
goto err;
data->shost = scsi_host_get(shost);
diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c
index 9532138105c1..3ec584e65fb4 100644
--- a/drivers/scsi/scsi_transport_fc.c
+++ b/drivers/scsi/scsi_transport_fc.c
@@ -2651,8 +2651,7 @@ struct scsi_transport_template *
fc_attach_transport(struct fc_function_template *ft)
{
int count;
- struct fc_internal *i = kzalloc(sizeof(struct fc_internal),
- GFP_KERNEL);
+ struct fc_internal *i = kzalloc_obj(struct fc_internal, GFP_KERNEL);
if (unlikely(!i))
return NULL;
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
index ed21c032bbc4..af050a2c628e 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -4848,7 +4848,7 @@ iscsi_register_transport(struct iscsi_transport *tt)
if (priv)
return NULL;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return NULL;
INIT_LIST_HEAD(&priv->list);
diff --git a/drivers/scsi/scsi_transport_sas.c b/drivers/scsi/scsi_transport_sas.c
index d69c7c444a31..9bc00d950f86 100644
--- a/drivers/scsi/scsi_transport_sas.c
+++ b/drivers/scsi/scsi_transport_sas.c
@@ -712,7 +712,7 @@ struct sas_phy *sas_phy_alloc(struct device *parent, int number)
struct Scsi_Host *shost = dev_to_shost(parent);
struct sas_phy *phy;
- phy = kzalloc(sizeof(*phy), GFP_KERNEL);
+ phy = kzalloc_obj(*phy, GFP_KERNEL);
if (!phy)
return NULL;
@@ -907,7 +907,7 @@ struct sas_port *sas_port_alloc(struct device *parent, int port_id)
struct Scsi_Host *shost = dev_to_shost(parent);
struct sas_port *port;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return NULL;
@@ -1467,7 +1467,7 @@ struct sas_rphy *sas_end_device_alloc(struct sas_port *parent)
struct Scsi_Host *shost = dev_to_shost(&parent->dev);
struct sas_end_device *rdev;
- rdev = kzalloc(sizeof(*rdev), GFP_KERNEL);
+ rdev = kzalloc_obj(*rdev, GFP_KERNEL);
if (!rdev) {
return NULL;
}
@@ -1511,7 +1511,7 @@ struct sas_rphy *sas_expander_alloc(struct sas_port *parent,
BUG_ON(type != SAS_EDGE_EXPANDER_DEVICE &&
type != SAS_FANOUT_EXPANDER_DEVICE);
- rdev = kzalloc(sizeof(*rdev), GFP_KERNEL);
+ rdev = kzalloc_obj(*rdev, GFP_KERNEL);
if (!rdev) {
return NULL;
}
@@ -1815,7 +1815,7 @@ sas_attach_transport(struct sas_function_template *ft)
struct sas_internal *i;
int count;
- i = kzalloc(sizeof(struct sas_internal), GFP_KERNEL);
+ i = kzalloc_obj(struct sas_internal, GFP_KERNEL);
if (!i)
return NULL;
diff --git a/drivers/scsi/scsi_transport_spi.c b/drivers/scsi/scsi_transport_spi.c
index 17a4a0918fc4..1f4299a61e1f 100644
--- a/drivers/scsi/scsi_transport_spi.c
+++ b/drivers/scsi/scsi_transport_spi.c
@@ -1096,7 +1096,7 @@ void
spi_schedule_dv_device(struct scsi_device *sdev)
{
struct work_queue_wrapper *wqw =
- kmalloc(sizeof(struct work_queue_wrapper), GFP_ATOMIC);
+ kmalloc_obj(struct work_queue_wrapper, GFP_ATOMIC);
if (unlikely(!wqw))
return;
@@ -1570,8 +1570,7 @@ static int spi_target_configure(struct transport_container *tc,
struct scsi_transport_template *
spi_attach_transport(struct spi_function_template *ft)
{
- struct spi_internal *i = kzalloc(sizeof(struct spi_internal),
- GFP_KERNEL);
+ struct spi_internal *i = kzalloc_obj(struct spi_internal, GFP_KERNEL);
if (unlikely(!i))
return NULL;
diff --git a/drivers/scsi/scsi_transport_srp.c b/drivers/scsi/scsi_transport_srp.c
index aeb58a9e6b7f..ada7e07e5ae0 100644
--- a/drivers/scsi/scsi_transport_srp.c
+++ b/drivers/scsi/scsi_transport_srp.c
@@ -700,7 +700,7 @@ struct srp_rport *srp_rport_add(struct Scsi_Host *shost,
struct srp_internal *i = to_srp_internal(shost->transportt);
int id, ret;
- rport = kzalloc(sizeof(*rport), GFP_KERNEL);
+ rport = kzalloc_obj(*rport, GFP_KERNEL);
if (!rport)
return ERR_PTR(-ENOMEM);
@@ -814,7 +814,7 @@ srp_attach_transport(struct srp_function_template *ft)
int count;
struct srp_internal *i;
- i = kzalloc(sizeof(*i), GFP_KERNEL);
+ i = kzalloc_obj(*i, GFP_KERNEL);
if (!i)
return NULL;
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index d76996d6cbc9..92fbe9caf6be 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -3735,7 +3735,7 @@ static void sd_revalidate_disk(struct gendisk *disk)
if (!scsi_device_online(sdp))
return;
- lim = kmalloc(sizeof(*lim), GFP_KERNEL);
+ lim = kmalloc_obj(*lim, GFP_KERNEL);
if (!lim)
return;
@@ -3974,7 +3974,7 @@ static int sd_probe(struct scsi_device *sdp)
"sd_probe\n"));
error = -ENOMEM;
- sdkp = kzalloc(sizeof(*sdkp), GFP_KERNEL);
+ sdkp = kzalloc_obj(*sdkp, GFP_KERNEL);
if (!sdkp)
goto out;
diff --git a/drivers/scsi/ses.c b/drivers/scsi/ses.c
index 789b170da652..901956cf3c5b 100644
--- a/drivers/scsi/ses.c
+++ b/drivers/scsi/ses.c
@@ -715,7 +715,7 @@ static int ses_intf_add(struct device *cdev)
if (sdev->type != TYPE_ENCLOSURE)
sdev_printk(KERN_NOTICE, sdev, "Embedded Enclosure Device\n");
- ses_dev = kzalloc(sizeof(*ses_dev), GFP_KERNEL);
+ ses_dev = kzalloc_obj(*ses_dev, GFP_KERNEL);
hdr_buf = kzalloc(INIT_ALLOC_SIZE, GFP_KERNEL);
if (!hdr_buf || !ses_dev)
goto err_init_free;
@@ -799,7 +799,8 @@ static int ses_intf_add(struct device *cdev)
}
page2_not_supported:
if (components > 0) {
- scomp = kcalloc(components, sizeof(struct ses_component), GFP_KERNEL);
+ scomp = kzalloc_objs(struct ses_component, components,
+ GFP_KERNEL);
if (!scomp)
goto err_free;
}
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index 1a521f9d821a..b04d8ddeb2eb 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -1436,7 +1436,7 @@ sg_alloc(struct scsi_device *scsidp)
int error;
u32 k;
- sdp = kzalloc(sizeof(Sg_device), GFP_KERNEL);
+ sdp = kzalloc_obj(Sg_device, GFP_KERNEL);
if (!sdp) {
sdev_printk(KERN_WARNING, scsidp, "%s: kmalloc Sg_device "
"failure\n", __func__);
@@ -2157,7 +2157,7 @@ sg_add_sfp(Sg_device * sdp)
unsigned long iflags;
int bufflen;
- sfp = kzalloc(sizeof(*sfp), GFP_ATOMIC | __GFP_NOWARN);
+ sfp = kzalloc_obj(*sfp, GFP_ATOMIC | __GFP_NOWARN);
if (!sfp)
return ERR_PTR(-ENOMEM);
@@ -2456,7 +2456,7 @@ struct sg_proc_deviter {
static void * dev_seq_start(struct seq_file *s, loff_t *pos)
{
- struct sg_proc_deviter * it = kmalloc(sizeof(*it), GFP_KERNEL);
+ struct sg_proc_deviter * it = kmalloc_obj(*it, GFP_KERNEL);
s->private = it;
if (! it)
diff --git a/drivers/scsi/sim710.c b/drivers/scsi/sim710.c
index 70c75ab1453a..16ca6245c51d 100644
--- a/drivers/scsi/sim710.c
+++ b/drivers/scsi/sim710.c
@@ -87,7 +87,7 @@ static int sim710_probe_common(struct device *dev, unsigned long base_addr,
{
struct Scsi_Host * host = NULL;
struct NCR_700_Host_Parameters *hostdata =
- kzalloc(sizeof(struct NCR_700_Host_Parameters), GFP_KERNEL);
+ kzalloc_obj(struct NCR_700_Host_Parameters, GFP_KERNEL);
printk(KERN_NOTICE "sim710: %s\n", dev_name(dev));
printk(KERN_NOTICE "sim710: irq = %d, clock = %d, base = 0x%lx, scsi_id = %d\n",
diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c
index 6f859f0d2046..88b94e611d0f 100644
--- a/drivers/scsi/smartpqi/smartpqi_init.c
+++ b/drivers/scsi/smartpqi/smartpqi_init.c
@@ -888,7 +888,7 @@ static int pqi_get_advanced_raid_bypass_config(struct pqi_ctrl_info *ctrl_info)
struct pqi_raid_path_request request;
struct bmic_sense_feature_buffer *buffer;
- buffer = kmalloc(sizeof(*buffer), GFP_KERNEL);
+ buffer = kmalloc_obj(*buffer, GFP_KERNEL);
if (!buffer)
return -ENOMEM;
@@ -953,7 +953,7 @@ static int pqi_flush_cache(struct pqi_ctrl_info *ctrl_info,
int rc;
struct bmic_flush_cache *flush_cache;
- flush_cache = kzalloc(sizeof(*flush_cache), GFP_KERNEL);
+ flush_cache = kzalloc_obj(*flush_cache, GFP_KERNEL);
if (!flush_cache)
return -ENOMEM;
@@ -982,7 +982,7 @@ static int pqi_set_diag_rescan(struct pqi_ctrl_info *ctrl_info)
int rc;
struct bmic_diag_options *diag;
- diag = kzalloc(sizeof(*diag), GFP_KERNEL);
+ diag = kzalloc_obj(*diag, GFP_KERNEL);
if (!diag)
return -ENOMEM;
@@ -1164,7 +1164,7 @@ static int pqi_report_phys_logical_luns(struct pqi_ctrl_info *ctrl_info, u8 cmd,
void *lun_data = NULL;
struct report_lun_header *report_lun_header;
- report_lun_header = kmalloc(sizeof(*report_lun_header), GFP_KERNEL);
+ report_lun_header = kmalloc_obj(*report_lun_header, GFP_KERNEL);
if (!report_lun_header) {
rc = -ENOMEM;
goto out;
@@ -1252,8 +1252,8 @@ static inline int pqi_report_phys_luns(struct pqi_ctrl_info *ctrl_info, void **b
rpl_8byte_wwid_list = rpl_list;
num_physicals = get_unaligned_be32(&rpl_8byte_wwid_list->header.list_length) / sizeof(rpl_8byte_wwid_list->lun_entries[0]);
- rpl_16byte_wwid_list = kmalloc(struct_size(rpl_16byte_wwid_list, lun_entries,
- num_physicals), GFP_KERNEL);
+ rpl_16byte_wwid_list = kmalloc_flex(*rpl_16byte_wwid_list, lun_entries,
+ num_physicals, GFP_KERNEL);
if (!rpl_16byte_wwid_list) {
rc = -ENOMEM;
goto out_free_rpl_list;
@@ -1478,7 +1478,7 @@ static int pqi_get_raid_map(struct pqi_ctrl_info *ctrl_info,
u32 raid_map_size;
struct raid_map *raid_map;
- raid_map = kmalloc(sizeof(*raid_map), GFP_KERNEL);
+ raid_map = kmalloc_obj(*raid_map, GFP_KERNEL);
if (!raid_map)
return -ENOMEM;
@@ -1616,7 +1616,7 @@ static void pqi_get_volume_status(struct pqi_ctrl_info *ctrl_info,
u32 volume_flags;
struct ciss_vpd_logical_volume_status *vpd;
- vpd = kmalloc(sizeof(*vpd), GFP_KERNEL);
+ vpd = kmalloc_obj(*vpd, GFP_KERNEL);
if (!vpd)
goto no_buffer;
@@ -2447,7 +2447,7 @@ static int pqi_update_scsi_devices(struct pqi_ctrl_info *ctrl_info)
* pqi_get_physical_disk_info() because it's a fairly large
* buffer.
*/
- id_phys = kmalloc(sizeof(*id_phys), GFP_KERNEL);
+ id_phys = kmalloc_obj(*id_phys, GFP_KERNEL);
if (!id_phys) {
dev_warn(&ctrl_info->pci_dev->dev, "%s\n",
out_of_memory_msg);
@@ -2472,9 +2472,8 @@ static int pqi_update_scsi_devices(struct pqi_ctrl_info *ctrl_info)
num_new_devices = num_physicals + num_logicals;
- new_device_list = kmalloc_array(num_new_devices,
- sizeof(*new_device_list),
- GFP_KERNEL);
+ new_device_list = kmalloc_objs(*new_device_list, num_new_devices,
+ GFP_KERNEL);
if (!new_device_list) {
dev_warn(&ctrl_info->pci_dev->dev, "%s\n", out_of_memory_msg);
rc = -ENOMEM;
@@ -2482,7 +2481,7 @@ static int pqi_update_scsi_devices(struct pqi_ctrl_info *ctrl_info)
}
for (i = 0; i < num_new_devices; i++) {
- device = kzalloc(sizeof(*device), GFP_KERNEL);
+ device = kzalloc_obj(*device, GFP_KERNEL);
if (!device) {
dev_warn(&ctrl_info->pci_dev->dev, "%s\n",
out_of_memory_msg);
@@ -4751,7 +4750,7 @@ static int pqi_report_device_capability(struct pqi_ctrl_info *ctrl_info)
struct pqi_device_capability *capability;
struct pqi_iu_layer_descriptor *sop_iu_layer_descriptor;
- capability = kmalloc(sizeof(*capability), GFP_KERNEL);
+ capability = kmalloc_obj(*capability, GFP_KERNEL);
if (!capability)
return -ENOMEM;
@@ -5207,8 +5206,9 @@ static int pqi_alloc_io_resources(struct pqi_ctrl_info *ctrl_info)
struct device *dev;
struct pqi_io_request *io_request;
- ctrl_info->io_request_pool = kcalloc(ctrl_info->max_io_slots,
- sizeof(ctrl_info->io_request_pool[0]), GFP_KERNEL);
+ ctrl_info->io_request_pool = kzalloc_objs(ctrl_info->io_request_pool[0],
+ ctrl_info->max_io_slots,
+ GFP_KERNEL);
if (!ctrl_info->io_request_pool) {
dev_err(&ctrl_info->pci_dev->dev,
@@ -7746,7 +7746,7 @@ static int pqi_get_ctrl_serial_number(struct pqi_ctrl_info *ctrl_info)
int rc;
struct bmic_sense_subsystem_info *sense_info;
- sense_info = kzalloc(sizeof(*sense_info), GFP_KERNEL);
+ sense_info = kzalloc_obj(*sense_info, GFP_KERNEL);
if (!sense_info)
return -ENOMEM;
@@ -7769,7 +7769,7 @@ static int pqi_get_ctrl_product_details(struct pqi_ctrl_info *ctrl_info)
int rc;
struct bmic_identify_controller *identify;
- identify = kmalloc(sizeof(*identify), GFP_KERNEL);
+ identify = kmalloc_obj(*identify, GFP_KERNEL);
if (!identify)
return -ENOMEM;
diff --git a/drivers/scsi/smartpqi/smartpqi_sas_transport.c b/drivers/scsi/smartpqi/smartpqi_sas_transport.c
index 93e96705754e..093b2ee39e90 100644
--- a/drivers/scsi/smartpqi/smartpqi_sas_transport.c
+++ b/drivers/scsi/smartpqi/smartpqi_sas_transport.c
@@ -22,7 +22,7 @@ static struct pqi_sas_phy *pqi_alloc_sas_phy(struct pqi_sas_port *pqi_sas_port)
struct pqi_sas_phy *pqi_sas_phy;
struct sas_phy *phy;
- pqi_sas_phy = kzalloc(sizeof(*pqi_sas_phy), GFP_KERNEL);
+ pqi_sas_phy = kzalloc_obj(*pqi_sas_phy, GFP_KERNEL);
if (!pqi_sas_phy)
return NULL;
@@ -131,7 +131,7 @@ static struct pqi_sas_port *pqi_alloc_sas_port(
struct pqi_sas_port *pqi_sas_port;
struct sas_port *port;
- pqi_sas_port = kzalloc(sizeof(*pqi_sas_port), GFP_KERNEL);
+ pqi_sas_port = kzalloc_obj(*pqi_sas_port, GFP_KERNEL);
if (!pqi_sas_port)
return NULL;
@@ -180,7 +180,7 @@ static struct pqi_sas_node *pqi_alloc_sas_node(struct device *parent_dev)
{
struct pqi_sas_node *pqi_sas_node;
- pqi_sas_node = kzalloc(sizeof(*pqi_sas_node), GFP_KERNEL);
+ pqi_sas_node = kzalloc_obj(*pqi_sas_node, GFP_KERNEL);
if (pqi_sas_node) {
pqi_sas_node->parent_dev = parent_dev;
INIT_LIST_HEAD(&pqi_sas_node->port_list_head);
@@ -463,7 +463,7 @@ pqi_build_csmi_smp_passthru_buffer(struct sas_rphy *rphy,
u32 req_size;
u32 resp_size;
- smp_buf = kzalloc(sizeof(*smp_buf), GFP_KERNEL);
+ smp_buf = kzalloc_obj(*smp_buf, GFP_KERNEL);
if (!smp_buf)
return NULL;
diff --git a/drivers/scsi/sni_53c710.c b/drivers/scsi/sni_53c710.c
index d1d2556c8fc4..0e57e873dc42 100644
--- a/drivers/scsi/sni_53c710.c
+++ b/drivers/scsi/sni_53c710.c
@@ -64,7 +64,7 @@ static int snirm710_probe(struct platform_device *dev)
return -ENODEV;
base = res->start;
- hostdata = kzalloc(sizeof(*hostdata), GFP_KERNEL);
+ hostdata = kzalloc_obj(*hostdata, GFP_KERNEL);
if (!hostdata)
return -ENOMEM;
diff --git a/drivers/scsi/snic/snic_disc.c b/drivers/scsi/snic/snic_disc.c
index 4db3ba62fcd3..064f2d4d0ffc 100644
--- a/drivers/scsi/snic/snic_disc.c
+++ b/drivers/scsi/snic/snic_disc.c
@@ -244,7 +244,7 @@ snic_tgt_create(struct snic *snic, struct snic_tgt_id *tgtid)
return tgt;
}
- tgt = kzalloc(sizeof(*tgt), GFP_KERNEL);
+ tgt = kzalloc_obj(*tgt, GFP_KERNEL);
if (!tgt) {
SNIC_HOST_ERR(snic->shost, "Failure to allocate snic_tgt.\n");
ret = -ENOMEM;
diff --git a/drivers/scsi/snic/snic_main.c b/drivers/scsi/snic/snic_main.c
index 1c24517e4e65..f9ee2205407e 100644
--- a/drivers/scsi/snic/snic_main.c
+++ b/drivers/scsi/snic/snic_main.c
@@ -818,7 +818,7 @@ snic_global_data_init(void)
struct kmem_cache *cachep;
ssize_t len = 0;
- snic_glob = kzalloc(sizeof(*snic_glob), GFP_KERNEL);
+ snic_glob = kzalloc_obj(*snic_glob, GFP_KERNEL);
if (!snic_glob) {
SNIC_ERR("Failed to allocate Global Context.\n");
diff --git a/drivers/scsi/snic/vnic_dev.c b/drivers/scsi/snic/vnic_dev.c
index 760f3f22095c..c692de061f29 100644
--- a/drivers/scsi/snic/vnic_dev.c
+++ b/drivers/scsi/snic/vnic_dev.c
@@ -352,7 +352,7 @@ static int svnic_dev_init_devcmd2(struct vnic_dev *vdev)
if (!p)
return -ENODEV;
- dc2c = kzalloc(sizeof(*dc2c), GFP_ATOMIC);
+ dc2c = kzalloc_obj(*dc2c, GFP_ATOMIC);
if (!dc2c)
return -ENOMEM;
@@ -712,7 +712,7 @@ struct vnic_dev *svnic_dev_alloc_discover(struct vnic_dev *vdev,
unsigned int num_bars)
{
if (!vdev) {
- vdev = kzalloc(sizeof(struct vnic_dev), GFP_ATOMIC);
+ vdev = kzalloc_obj(struct vnic_dev, GFP_ATOMIC);
if (!vdev)
return NULL;
}
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
index 1fb85f548955..f1871d78c30c 100644
--- a/drivers/scsi/sr.c
+++ b/drivers/scsi/sr.c
@@ -629,7 +629,7 @@ static int sr_probe(struct scsi_device *sdev)
goto fail;
error = -ENOMEM;
- cd = kzalloc(sizeof(*cd), GFP_KERNEL);
+ cd = kzalloc_obj(*cd, GFP_KERNEL);
if (!cd)
goto fail;
diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c
index 413e844fa276..438c4e50d0fd 100644
--- a/drivers/scsi/st.c
+++ b/drivers/scsi/st.c
@@ -462,7 +462,7 @@ static struct st_request *st_allocate_request(struct scsi_tape *stp)
{
struct st_request *streq;
- streq = kzalloc(sizeof(*streq), GFP_KERNEL);
+ streq = kzalloc_obj(*streq, GFP_KERNEL);
if (streq)
streq->stp = stp;
else {
@@ -3973,7 +3973,7 @@ static struct st_buffer *new_tape_buffer(int max_sg)
{
struct st_buffer *tb;
- tb = kzalloc(sizeof(struct st_buffer), GFP_KERNEL);
+ tb = kzalloc_obj(struct st_buffer, GFP_KERNEL);
if (!tb) {
printk(KERN_NOTICE "st: Can't allocate new tape buffer.\n");
return NULL;
@@ -3982,8 +3982,7 @@ static struct st_buffer *new_tape_buffer(int max_sg)
tb->use_sg = max_sg;
tb->buffer_size = 0;
- tb->reserved_pages = kcalloc(max_sg, sizeof(struct page *),
- GFP_KERNEL);
+ tb->reserved_pages = kzalloc_objs(struct page *, max_sg, GFP_KERNEL);
if (!tb->reserved_pages) {
kfree(tb);
return NULL;
@@ -4374,7 +4373,7 @@ static int st_probe(struct scsi_device *SDp)
goto out;
}
- tpnt = kzalloc(sizeof(struct scsi_tape), GFP_KERNEL);
+ tpnt = kzalloc_obj(struct scsi_tape, GFP_KERNEL);
if (tpnt == NULL) {
sdev_printk(KERN_ERR, SDp,
"st: Can't allocate device descriptor.\n");
@@ -4457,7 +4456,7 @@ static int st_probe(struct scsi_device *SDp)
}
tpnt->index = error;
sprintf(tpnt->name, "st%d", tpnt->index);
- tpnt->stats = kzalloc(sizeof(struct scsi_tape_stats), GFP_KERNEL);
+ tpnt->stats = kzalloc_obj(struct scsi_tape_stats, GFP_KERNEL);
if (tpnt->stats == NULL) {
sdev_printk(KERN_ERR, SDp,
"st: Can't allocate statistics.\n");
@@ -5007,7 +5006,7 @@ static int sgl_map_user_pages(struct st_buffer *STbp,
if (count == 0)
return 0;
- pages = kmalloc_array(max_pages, sizeof(*pages), GFP_KERNEL);
+ pages = kmalloc_objs(*pages, max_pages, GFP_KERNEL);
if (pages == NULL)
return -ENOMEM;
diff --git a/drivers/scsi/stex.c b/drivers/scsi/stex.c
index 5a3f6fe22ae9..1ff8be01b1b1 100644
--- a/drivers/scsi/stex.c
+++ b/drivers/scsi/stex.c
@@ -1757,7 +1757,7 @@ static int stex_probe(struct pci_dev *pdev, const struct pci_device_id *id)
}
}
- hba->ccb = kcalloc(ci->rq_count, sizeof(struct st_ccb), GFP_KERNEL);
+ hba->ccb = kzalloc_objs(struct st_ccb, ci->rq_count, GFP_KERNEL);
if (!hba->ccb) {
err = -ENOMEM;
printk(KERN_ERR DRV_NAME "(%s): ccb alloc failed\n",
diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
index b3f83c0dcced..4e3ff9e0a794 100644
--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -1063,7 +1063,7 @@ static void storvsc_handle_error(struct vmscsi_request *vm_srb,
/*
* We need to schedule work to process this error; schedule it.
*/
- wrk = kmalloc(sizeof(struct storvsc_scan_work), GFP_ATOMIC);
+ wrk = kmalloc_obj(struct storvsc_scan_work, GFP_ATOMIC);
if (!wrk) {
set_host_byte(scmnd, DID_BAD_TARGET);
return;
@@ -1970,7 +1970,7 @@ static int storvsc_probe(struct hv_device *device,
host_dev->host = host;
- stor_device = kzalloc(sizeof(struct storvsc_device), GFP_KERNEL);
+ stor_device = kzalloc_obj(struct storvsc_device, GFP_KERNEL);
if (!stor_device) {
ret = -ENOMEM;
goto err_out0;
diff --git a/drivers/scsi/sym53c8xx_2/sym_hipd.c b/drivers/scsi/sym53c8xx_2/sym_hipd.c
index f0db17e34ea0..b9117acd324d 100644
--- a/drivers/scsi/sym53c8xx_2/sym_hipd.c
+++ b/drivers/scsi/sym53c8xx_2/sym_hipd.c
@@ -4990,8 +4990,8 @@ struct sym_lcb *sym_alloc_lcb (struct sym_hcb *np, u_char tn, u_char ln)
* Allocate the table of pointers for LUN(s) > 0, if needed.
*/
if (ln && !tp->lunmp) {
- tp->lunmp = kcalloc(SYM_CONF_MAX_LUN, sizeof(struct sym_lcb *),
- GFP_ATOMIC);
+ tp->lunmp = kzalloc_objs(struct sym_lcb *, SYM_CONF_MAX_LUN,
+ GFP_ATOMIC);
if (!tp->lunmp)
goto fail;
}
@@ -5655,7 +5655,7 @@ int sym_hcb_attach(struct Scsi_Host *shost, struct sym_fw *fw, struct sym_nvram
/*
* Allocate the array of lists of CCBs hashed by DSA.
*/
- np->ccbh = kcalloc(CCB_HASH_SIZE, sizeof(*np->ccbh), GFP_KERNEL);
+ np->ccbh = kzalloc_objs(*np->ccbh, CCB_HASH_SIZE, GFP_KERNEL);
if (!np->ccbh)
goto attach_failed;
diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c
index 89322717b181..7cccb4e06297 100644
--- a/drivers/scsi/virtio_scsi.c
+++ b/drivers/scsi/virtio_scsi.c
@@ -853,8 +853,8 @@ static int virtscsi_init(struct virtio_device *vdev,
num_req_vqs = vscsi->num_queues;
num_vqs = num_req_vqs + VIRTIO_SCSI_VQ_BASE;
- vqs = kmalloc_array(num_vqs, sizeof(struct virtqueue *), GFP_KERNEL);
- vqs_info = kcalloc(num_vqs, sizeof(*vqs_info), GFP_KERNEL);
+ vqs = kmalloc_objs(struct virtqueue *, num_vqs, GFP_KERNEL);
+ vqs_info = kzalloc_objs(*vqs_info, num_vqs, GFP_KERNEL);
if (!vqs || !vqs_info) {
err = -ENOMEM;
diff --git a/drivers/scsi/vmw_pvscsi.c b/drivers/scsi/vmw_pvscsi.c
index 11f86c76f391..b6da5cfe444f 100644
--- a/drivers/scsi/vmw_pvscsi.c
+++ b/drivers/scsi/vmw_pvscsi.c
@@ -1478,8 +1478,8 @@ static int pvscsi_probe(struct pci_dev *pdev, const struct pci_device_id *id)
*/
pvscsi_setup_all_rings(adapter);
- adapter->cmd_map = kcalloc(adapter->req_depth,
- sizeof(struct pvscsi_ctx), GFP_KERNEL);
+ adapter->cmd_map = kzalloc_objs(struct pvscsi_ctx, adapter->req_depth,
+ GFP_KERNEL);
if (!adapter->cmd_map) {
printk(KERN_ERR "vmw_pvscsi: failed to allocate memory.\n");
error = -ENOMEM;
diff --git a/drivers/scsi/xen-scsifront.c b/drivers/scsi/xen-scsifront.c
index bf36c07c2b47..42cde0017f12 100644
--- a/drivers/scsi/xen-scsifront.c
+++ b/drivers/scsi/xen-scsifront.c
@@ -494,8 +494,8 @@ static int map_data_for_request(struct vscsifrnt_info *info,
return -E2BIG;
}
seg_grants = vscsiif_grants_sg(data_grants);
- shadow->sg = kcalloc(data_grants,
- sizeof(struct scsiif_request_segment), GFP_ATOMIC);
+ shadow->sg = kzalloc_objs(struct scsiif_request_segment,
+ data_grants, GFP_ATOMIC);
if (!shadow->sg)
return -ENOMEM;
}
@@ -669,7 +669,7 @@ static int scsifront_action_handler(struct scsi_cmnd *sc, uint8_t act)
if (info->host_active == STATE_ERROR)
return FAILED;
- shadow = kzalloc(sizeof(*shadow), GFP_NOIO);
+ shadow = kzalloc_obj(*shadow, GFP_NOIO);
if (!shadow)
return FAILED;
diff --git a/drivers/scsi/zorro7xx.c b/drivers/scsi/zorro7xx.c
index 7acf9193a9e8..392c905726ef 100644
--- a/drivers/scsi/zorro7xx.c
+++ b/drivers/scsi/zorro7xx.c
@@ -95,7 +95,7 @@ static int zorro7xx_init_one(struct zorro_dev *z,
return -EBUSY;
}
- hostdata = kzalloc(sizeof(struct NCR_700_Host_Parameters), GFP_KERNEL);
+ hostdata = kzalloc_obj(struct NCR_700_Host_Parameters, GFP_KERNEL);
if (!hostdata) {
printk(KERN_ERR "zorro7xx: Failed to allocate host data\n");
goto out_release;
diff --git a/drivers/scsi/zorro_esp.c b/drivers/scsi/zorro_esp.c
index 56cae22a4242..39c0357eb8bd 100644
--- a/drivers/scsi/zorro_esp.c
+++ b/drivers/scsi/zorro_esp.c
@@ -726,7 +726,7 @@ static int zorro_esp_probe(struct zorro_dev *z,
pr_info("%s found at address 0x%lx.\n", zdd->name, board);
- zep = kzalloc(sizeof(*zep), GFP_KERNEL);
+ zep = kzalloc_obj(*zep, GFP_KERNEL);
if (!zep) {
pr_err("Can't allocate device private data!\n");
return -ENOMEM;
diff --git a/drivers/sh/clk/cpg.c b/drivers/sh/clk/cpg.c
index 64ed7d64458a..58e64a666b2f 100644
--- a/drivers/sh/clk/cpg.c
+++ b/drivers/sh/clk/cpg.c
@@ -459,7 +459,7 @@ int __init sh_clk_fsidiv_register(struct clk *clks, int nr)
for (i = 0; i < nr; i++) {
- map = kzalloc(sizeof(struct clk_mapping), GFP_KERNEL);
+ map = kzalloc_obj(struct clk_mapping, GFP_KERNEL);
if (!map) {
pr_err("%s: unable to alloc memory\n", __func__);
return -ENOMEM;
diff --git a/drivers/sh/intc/core.c b/drivers/sh/intc/core.c
index 3dde703b7766..aa68fe190865 100644
--- a/drivers/sh/intc/core.c
+++ b/drivers/sh/intc/core.c
@@ -204,7 +204,7 @@ int __init register_intc_controller(struct intc_desc *desc)
pr_info("Registered controller '%s' with %u IRQs\n",
desc->name, hw->nr_vectors);
- d = kzalloc(sizeof(*d), GFP_NOWAIT);
+ d = kzalloc_obj(*d, GFP_NOWAIT);
if (!d)
goto err0;
@@ -217,8 +217,7 @@ int __init register_intc_controller(struct intc_desc *desc)
if (desc->num_resources) {
d->nr_windows = desc->num_resources;
- d->window = kcalloc(d->nr_windows, sizeof(*d->window),
- GFP_NOWAIT);
+ d->window = kzalloc_objs(*d->window, d->nr_windows, GFP_NOWAIT);
if (!d->window)
goto err1;
@@ -267,8 +266,7 @@ int __init register_intc_controller(struct intc_desc *desc)
}
if (hw->prio_regs) {
- d->prio = kcalloc(hw->nr_vectors, sizeof(*d->prio),
- GFP_NOWAIT);
+ d->prio = kzalloc_objs(*d->prio, hw->nr_vectors, GFP_NOWAIT);
if (!d->prio)
goto err4;
@@ -283,8 +281,7 @@ int __init register_intc_controller(struct intc_desc *desc)
}
if (hw->sense_regs) {
- d->sense = kcalloc(hw->nr_vectors, sizeof(*d->sense),
- GFP_NOWAIT);
+ d->sense = kzalloc_objs(*d->sense, hw->nr_vectors, GFP_NOWAIT);
if (!d->sense)
goto err5;
diff --git a/drivers/sh/intc/virq.c b/drivers/sh/intc/virq.c
index a638c3048207..291798526519 100644
--- a/drivers/sh/intc/virq.c
+++ b/drivers/sh/intc/virq.c
@@ -93,7 +93,7 @@ static int add_virq_to_pirq(unsigned int irq, unsigned int virq)
last = &entry->next;
}
- entry = kzalloc(sizeof(struct intc_virq_list), GFP_ATOMIC);
+ entry = kzalloc_obj(struct intc_virq_list, GFP_ATOMIC);
if (!entry)
return -ENOMEM;
@@ -168,7 +168,7 @@ static void __init intc_subgroup_init_one(struct intc_desc *desc,
if (!subgroup->enum_ids[i])
continue;
- entry = kmalloc(sizeof(*entry), GFP_NOWAIT);
+ entry = kmalloc_obj(*entry, GFP_NOWAIT);
if (!entry)
break;
diff --git a/drivers/sh/maple/maple.c b/drivers/sh/maple/maple.c
index 6dc0549f7900..c9c3ba77653a 100644
--- a/drivers/sh/maple/maple.c
+++ b/drivers/sh/maple/maple.c
@@ -187,7 +187,7 @@ static struct mapleq *maple_allocq(struct maple_device *mdev)
{
struct mapleq *mq;
- mq = kzalloc(sizeof(*mq), GFP_KERNEL);
+ mq = kzalloc_obj(*mq, GFP_KERNEL);
if (!mq)
goto failed_nomem;
@@ -215,7 +215,7 @@ static struct maple_device *maple_alloc_dev(int port, int unit)
/* zero this out to avoid kobj subsystem
* thinking it has already been registered */
- mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
+ mdev = kzalloc_obj(*mdev, GFP_KERNEL);
if (!mdev)
return NULL;
diff --git a/drivers/siox/siox-core.c b/drivers/siox/siox-core.c
index f98f5a27e659..d058f481a39a 100644
--- a/drivers/siox/siox-core.c
+++ b/drivers/siox/siox-core.c
@@ -822,7 +822,7 @@ static struct siox_device *siox_device_add(struct siox_master *smaster,
int ret;
size_t buf_len;
- sdevice = kzalloc(sizeof(*sdevice), GFP_KERNEL);
+ sdevice = kzalloc_obj(*sdevice, GFP_KERNEL);
if (!sdevice)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/slimbus/core.c b/drivers/slimbus/core.c
index 5079d3271ee8..4f796e24a6ed 100644
--- a/drivers/slimbus/core.c
+++ b/drivers/slimbus/core.c
@@ -180,7 +180,7 @@ static struct slim_device *slim_alloc_device(struct slim_controller *ctrl,
struct slim_device *sbdev;
int ret;
- sbdev = kzalloc(sizeof(*sbdev), GFP_KERNEL);
+ sbdev = kzalloc_obj(*sbdev, GFP_KERNEL);
if (!sbdev)
return NULL;
diff --git a/drivers/slimbus/qcom-ngd-ctrl.c b/drivers/slimbus/qcom-ngd-ctrl.c
index 7338b38697d0..0bead6949410 100644
--- a/drivers/slimbus/qcom-ngd-ctrl.c
+++ b/drivers/slimbus/qcom-ngd-ctrl.c
@@ -1523,7 +1523,7 @@ static int of_qcom_slim_ngd_register(struct device *parent,
if (of_property_read_u32(node, "reg", &id))
continue;
- ngd = kzalloc(sizeof(*ngd), GFP_KERNEL);
+ ngd = kzalloc_obj(*ngd, GFP_KERNEL);
if (!ngd)
return -ENOMEM;
diff --git a/drivers/slimbus/stream.c b/drivers/slimbus/stream.c
index 863ab3075d7e..48711d4cf110 100644
--- a/drivers/slimbus/stream.c
+++ b/drivers/slimbus/stream.c
@@ -103,7 +103,7 @@ struct slim_stream_runtime *slim_stream_allocate(struct slim_device *dev,
{
struct slim_stream_runtime *rt;
- rt = kzalloc(sizeof(*rt), GFP_KERNEL);
+ rt = kzalloc_obj(*rt, GFP_KERNEL);
if (!rt)
return ERR_PTR(-ENOMEM);
@@ -214,7 +214,7 @@ int slim_stream_prepare(struct slim_stream_runtime *rt,
}
num_ports = hweight32(cfg->port_mask);
- rt->ports = kcalloc(num_ports, sizeof(*port), GFP_KERNEL);
+ rt->ports = kzalloc_objs(*port, num_ports, GFP_KERNEL);
if (!rt->ports)
return -ENOMEM;
diff --git a/drivers/soc/amlogic/meson-gx-socinfo.c b/drivers/soc/amlogic/meson-gx-socinfo.c
index dcb75baaff24..f10aa0aab8d3 100644
--- a/drivers/soc/amlogic/meson-gx-socinfo.c
+++ b/drivers/soc/amlogic/meson-gx-socinfo.c
@@ -188,7 +188,7 @@ static int __init meson_gx_socinfo_init(void)
return -EINVAL;
}
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr)
return -ENODEV;
diff --git a/drivers/soc/amlogic/meson-mx-socinfo.c b/drivers/soc/amlogic/meson-mx-socinfo.c
index 92125dd65f33..e9003fd55294 100644
--- a/drivers/soc/amlogic/meson-mx-socinfo.c
+++ b/drivers/soc/amlogic/meson-mx-socinfo.c
@@ -146,7 +146,7 @@ static int __init meson_mx_socinfo_init(void)
if (ret < 0)
return ret;
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr)
return -ENODEV;
diff --git a/drivers/soc/apple/rtkit.c b/drivers/soc/apple/rtkit.c
index 4ad4f964fde7..0cde365c75bb 100644
--- a/drivers/soc/apple/rtkit.c
+++ b/drivers/soc/apple/rtkit.c
@@ -590,7 +590,7 @@ static void apple_rtkit_rx(struct apple_mbox *mbox, struct apple_mbox_msg msg,
rtk->ops->recv_message_early(rtk->cookie, ep, msg.msg0))
return;
- work = kzalloc(sizeof(*work), GFP_ATOMIC);
+ work = kzalloc_obj(*work, GFP_ATOMIC);
if (!work)
return;
@@ -667,7 +667,7 @@ struct apple_rtkit *apple_rtkit_init(struct device *dev, void *cookie,
if (!ops)
return ERR_PTR(-EINVAL);
- rtk = kzalloc(sizeof(*rtk), GFP_KERNEL);
+ rtk = kzalloc_obj(*rtk, GFP_KERNEL);
if (!rtk)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/soc/aspeed/aspeed-p2a-ctrl.c b/drivers/soc/aspeed/aspeed-p2a-ctrl.c
index 3be2e1b1085b..bbab8dabd940 100644
--- a/drivers/soc/aspeed/aspeed-p2a-ctrl.c
+++ b/drivers/soc/aspeed/aspeed-p2a-ctrl.c
@@ -238,7 +238,7 @@ static int aspeed_p2a_open(struct inode *inode, struct file *file)
{
struct aspeed_p2a_user *priv;
- priv = kmalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kmalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/soc/aspeed/aspeed-socinfo.c b/drivers/soc/aspeed/aspeed-socinfo.c
index 67e9ac3d08ec..b4009164c84c 100644
--- a/drivers/soc/aspeed/aspeed-socinfo.c
+++ b/drivers/soc/aspeed/aspeed-socinfo.c
@@ -113,7 +113,7 @@ static int __init aspeed_socinfo_init(void)
}
of_node_put(np);
- attrs = kzalloc(sizeof(*attrs), GFP_KERNEL);
+ attrs = kzalloc_obj(*attrs, GFP_KERNEL);
if (!attrs)
return -ENODEV;
diff --git a/drivers/soc/atmel/soc.c b/drivers/soc/atmel/soc.c
index 09347bccdb1d..88de5aa41191 100644
--- a/drivers/soc/atmel/soc.c
+++ b/drivers/soc/atmel/soc.c
@@ -368,7 +368,7 @@ struct soc_device * __init at91_soc_init(const struct at91_soc *socs)
return NULL;
}
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr)
return NULL;
diff --git a/drivers/soc/bcm/brcmstb/common.c b/drivers/soc/bcm/brcmstb/common.c
index 2a010881f4b6..e9cf6897d8bf 100644
--- a/drivers/soc/bcm/brcmstb/common.c
+++ b/drivers/soc/bcm/brcmstb/common.c
@@ -82,7 +82,7 @@ static int __init brcmstb_soc_device_init(void)
if (!sun_top_ctrl)
return ret;
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/soc/cirrus/soc-ep93xx.c b/drivers/soc/cirrus/soc-ep93xx.c
index 3e79b3b13aef..d42813382977 100644
--- a/drivers/soc/cirrus/soc-ep93xx.c
+++ b/drivers/soc/cirrus/soc-ep93xx.c
@@ -92,7 +92,7 @@ static struct auxiliary_device __init *ep93xx_adev_alloc(struct device *parent,
struct auxiliary_device *adev;
int ret;
- rdev = kzalloc(sizeof(*rdev), GFP_KERNEL);
+ rdev = kzalloc_obj(*rdev, GFP_KERNEL);
if (!rdev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/soc/dove/pmu.c b/drivers/soc/dove/pmu.c
index dd8ade8e9ee8..64b05aa80d2c 100644
--- a/drivers/soc/dove/pmu.c
+++ b/drivers/soc/dove/pmu.c
@@ -311,7 +311,7 @@ int __init dove_init_pmu_legacy(const struct dove_pmu_initdata *initdata)
struct pmu_data *pmu;
int ret;
- pmu = kzalloc(sizeof(*pmu), GFP_KERNEL);
+ pmu = kzalloc_obj(*pmu, GFP_KERNEL);
if (!pmu)
return -ENOMEM;
@@ -324,7 +324,7 @@ int __init dove_init_pmu_legacy(const struct dove_pmu_initdata *initdata)
domain_initdata++) {
struct pmu_domain *domain;
- domain = kzalloc(sizeof(*domain), GFP_KERNEL);
+ domain = kzalloc_obj(*domain, GFP_KERNEL);
if (domain) {
domain->pmu = pmu;
domain->pwr_mask = domain_initdata->pwr_mask;
@@ -386,7 +386,7 @@ int __init dove_init_pmu(void)
return 0;
}
- pmu = kzalloc(sizeof(*pmu), GFP_KERNEL);
+ pmu = kzalloc_obj(*pmu, GFP_KERNEL);
if (!pmu)
return -ENOMEM;
@@ -408,7 +408,7 @@ int __init dove_init_pmu(void)
struct of_phandle_args args;
struct pmu_domain *domain;
- domain = kzalloc(sizeof(*domain), GFP_KERNEL);
+ domain = kzalloc_obj(*domain, GFP_KERNEL);
if (!domain)
break;
diff --git a/drivers/soc/fsl/dpaa2-console.c b/drivers/soc/fsl/dpaa2-console.c
index 6310f54e68a2..841e0510151c 100644
--- a/drivers/soc/fsl/dpaa2-console.c
+++ b/drivers/soc/fsl/dpaa2-console.c
@@ -111,7 +111,7 @@ static int dpaa2_generic_console_open(struct inode *node, struct file *fp,
u64 base_addr;
int err;
- cd = kmalloc(sizeof(*cd), GFP_KERNEL);
+ cd = kmalloc_obj(*cd, GFP_KERNEL);
if (!cd)
return -ENOMEM;
diff --git a/drivers/soc/fsl/dpio/dpio-service.c b/drivers/soc/fsl/dpio/dpio-service.c
index 0b60ed16297c..2a73d4e846ff 100644
--- a/drivers/soc/fsl/dpio/dpio-service.c
+++ b/drivers/soc/fsl/dpio/dpio-service.c
@@ -133,7 +133,7 @@ static void dpaa2_io_dim_work(struct work_struct *w)
struct dpaa2_io *dpaa2_io_create(const struct dpaa2_io_desc *desc,
struct device *dev)
{
- struct dpaa2_io *obj = kmalloc(sizeof(*obj), GFP_KERNEL);
+ struct dpaa2_io *obj = kmalloc_obj(*obj, GFP_KERNEL);
u32 qman_256_cycles_per_ns;
if (!obj)
@@ -523,7 +523,7 @@ int dpaa2_io_service_enqueue_multiple_desc_fq(struct dpaa2_io *d,
struct qbman_eq_desc *ed;
int i, ret;
- ed = kcalloc(32, sizeof(struct qbman_eq_desc), GFP_KERNEL);
+ ed = kzalloc_objs(struct qbman_eq_desc, 32, GFP_KERNEL);
if (!ed)
return -ENOMEM;
@@ -658,7 +658,7 @@ struct dpaa2_io_store *dpaa2_io_store_create(unsigned int max_frames,
if (!max_frames || (max_frames > 32))
return NULL;
- ret = kmalloc(sizeof(*ret), GFP_KERNEL);
+ ret = kmalloc_obj(*ret, GFP_KERNEL);
if (!ret)
return NULL;
diff --git a/drivers/soc/fsl/dpio/qbman-portal.c b/drivers/soc/fsl/dpio/qbman-portal.c
index 0a3fb6c115f4..b6adc87f473a 100644
--- a/drivers/soc/fsl/dpio/qbman-portal.c
+++ b/drivers/soc/fsl/dpio/qbman-portal.c
@@ -246,7 +246,7 @@ static inline u8 qm_cyc_diff(u8 ringsize, u8 first, u8 last)
*/
struct qbman_swp *qbman_swp_init(const struct qbman_swp_desc *d)
{
- struct qbman_swp *p = kzalloc(sizeof(*p), GFP_KERNEL);
+ struct qbman_swp *p = kzalloc_obj(*p, GFP_KERNEL);
u32 reg;
u32 mask_size;
u32 eqcr_pi;
diff --git a/drivers/soc/fsl/guts.c b/drivers/soc/fsl/guts.c
index 6bf3e6a980ff..055d0b61ea1d 100644
--- a/drivers/soc/fsl/guts.c
+++ b/drivers/soc/fsl/guts.c
@@ -213,7 +213,7 @@ static int __init fsl_guts_init(void)
of_node_put(np);
/* Register soc device */
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr)
return -ENOMEM;
diff --git a/drivers/soc/fsl/qbman/bman.c b/drivers/soc/fsl/qbman/bman.c
index 6cc1847e534a..8993cf2d47b5 100644
--- a/drivers/soc/fsl/qbman/bman.c
+++ b/drivers/soc/fsl/qbman/bman.c
@@ -700,7 +700,7 @@ struct bman_pool *bman_new_pool(void)
if (bm_alloc_bpid_range(&bpid, 1))
return NULL;
- pool = kmalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kmalloc_obj(*pool, GFP_KERNEL);
if (!pool)
goto err;
diff --git a/drivers/soc/fsl/qbman/qman.c b/drivers/soc/fsl/qbman/qman.c
index 6b392b3ad4b1..210438ea923e 100644
--- a/drivers/soc/fsl/qbman/qman.c
+++ b/drivers/soc/fsl/qbman/qman.c
@@ -1270,7 +1270,7 @@ static int qman_create_portal(struct qman_portal *portal,
qm_dqrr_set_ithresh(p, QMAN_PIRQ_DQRR_ITHRESH);
qm_mr_set_ithresh(p, QMAN_PIRQ_MR_ITHRESH);
qm_out(p, QM_REG_ITPR, QMAN_PIRQ_IPERIOD);
- portal->cgrs = kmalloc_array(2, sizeof(*portal->cgrs), GFP_KERNEL);
+ portal->cgrs = kmalloc_objs(*portal->cgrs, 2, GFP_KERNEL);
if (!portal->cgrs)
goto fail_cgrs;
/* initial snapshot is no-depletion */
diff --git a/drivers/soc/fsl/qe/gpio.c b/drivers/soc/fsl/qe/gpio.c
index c54154b404df..488770405e99 100644
--- a/drivers/soc/fsl/qe/gpio.c
+++ b/drivers/soc/fsl/qe/gpio.c
@@ -161,7 +161,7 @@ struct qe_pin *qe_pin_request(struct device *dev, int index)
int gpio_num;
int err;
- qe_pin = kzalloc(sizeof(*qe_pin), GFP_KERNEL);
+ qe_pin = kzalloc_obj(*qe_pin, GFP_KERNEL);
if (!qe_pin) {
dev_dbg(dev, "%s: can't allocate memory\n", __func__);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/soc/fsl/qe/qe_common.c b/drivers/soc/fsl/qe/qe_common.c
index 02c29f5f86d3..c77a068f64ff 100644
--- a/drivers/soc/fsl/qe/qe_common.c
+++ b/drivers/soc/fsl/qe/qe_common.c
@@ -118,7 +118,7 @@ static s32 cpm_muram_alloc_common(unsigned long size,
struct muram_block *entry;
s32 start;
- entry = kmalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kmalloc_obj(*entry, GFP_ATOMIC);
if (!entry)
return -ENOMEM;
start = gen_pool_alloc_algo(muram_pool, size, algo, data);
diff --git a/drivers/soc/fsl/qe/ucc_fast.c b/drivers/soc/fsl/qe/ucc_fast.c
index 53d8aafc9317..3cb45090fe74 100644
--- a/drivers/soc/fsl/qe/ucc_fast.c
+++ b/drivers/soc/fsl/qe/ucc_fast.c
@@ -191,7 +191,7 @@ int ucc_fast_init(struct ucc_fast_info * uf_info, struct ucc_fast_private ** ucc
return -EINVAL;
}
- uccf = kzalloc(sizeof(struct ucc_fast_private), GFP_KERNEL);
+ uccf = kzalloc_obj(struct ucc_fast_private, GFP_KERNEL);
if (!uccf) {
printk(KERN_ERR "%s: Cannot allocate private data\n",
__func__);
diff --git a/drivers/soc/fsl/qe/ucc_slow.c b/drivers/soc/fsl/qe/ucc_slow.c
index d5ac1ac0ed3c..335c8629a316 100644
--- a/drivers/soc/fsl/qe/ucc_slow.c
+++ b/drivers/soc/fsl/qe/ucc_slow.c
@@ -148,7 +148,7 @@ int ucc_slow_init(struct ucc_slow_info * us_info, struct ucc_slow_private ** ucc
return -EINVAL;
}
- uccs = kzalloc(sizeof(struct ucc_slow_private), GFP_KERNEL);
+ uccs = kzalloc_obj(struct ucc_slow_private, GFP_KERNEL);
if (!uccs) {
printk(KERN_ERR "%s: Cannot allocate private data\n",
__func__);
diff --git a/drivers/soc/hisilicon/kunpeng_hccs.c b/drivers/soc/hisilicon/kunpeng_hccs.c
index 006fec47ea10..62e3b86fa42d 100644
--- a/drivers/soc/hisilicon/kunpeng_hccs.c
+++ b/drivers/soc/hisilicon/kunpeng_hccs.c
@@ -616,8 +616,7 @@ static int hccs_get_all_port_info_on_die(struct hccs_dev *hdev,
int ret;
u8 i;
- attrs = kcalloc(die->port_num, sizeof(struct hccs_port_attr),
- GFP_KERNEL);
+ attrs = kzalloc_objs(struct hccs_port_attr, die->port_num, GFP_KERNEL);
if (!attrs)
return -ENOMEM;
diff --git a/drivers/soc/imx/soc-imx.c b/drivers/soc/imx/soc-imx.c
index fab668c83f98..5d39cc3f5e7d 100644
--- a/drivers/soc/imx/soc-imx.c
+++ b/drivers/soc/imx/soc-imx.c
@@ -40,7 +40,7 @@ static int __init imx_soc_device_init(void)
if (!__mxc_cpu_type)
return 0;
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr)
return -ENOMEM;
diff --git a/drivers/soc/mediatek/mtk-cmdq-helper.c b/drivers/soc/mediatek/mtk-cmdq-helper.c
index 67e5879374ac..a0f14aa28106 100644
--- a/drivers/soc/mediatek/mtk-cmdq-helper.c
+++ b/drivers/soc/mediatek/mtk-cmdq-helper.c
@@ -114,7 +114,7 @@ struct cmdq_client *cmdq_mbox_create(struct device *dev, int index)
{
struct cmdq_client *client;
- client = kzalloc(sizeof(*client), GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (!client)
return (struct cmdq_client *)-ENOMEM;
diff --git a/drivers/soc/microchip/mpfs-sys-controller.c b/drivers/soc/microchip/mpfs-sys-controller.c
index 30bc45d17d34..4ce94066a5a8 100644
--- a/drivers/soc/microchip/mpfs-sys-controller.c
+++ b/drivers/soc/microchip/mpfs-sys-controller.c
@@ -132,7 +132,7 @@ static int mpfs_sys_controller_probe(struct platform_device *pdev)
struct device_node *np;
int i, ret;
- sys_controller = kzalloc(sizeof(*sys_controller), GFP_KERNEL);
+ sys_controller = kzalloc_obj(*sys_controller, GFP_KERNEL);
if (!sys_controller)
return -ENOMEM;
diff --git a/drivers/soc/nuvoton/wpcm450-soc.c b/drivers/soc/nuvoton/wpcm450-soc.c
index c5e0d11c383b..dc1242bda713 100644
--- a/drivers/soc/nuvoton/wpcm450-soc.c
+++ b/drivers/soc/nuvoton/wpcm450-soc.c
@@ -74,7 +74,7 @@ static int __init wpcm450_soc_init(void)
return -ENODEV;
}
- attr = kzalloc(sizeof(*attr), GFP_KERNEL);
+ attr = kzalloc_obj(*attr, GFP_KERNEL);
if (!attr)
return -ENOMEM;
diff --git a/drivers/soc/qcom/apr.c b/drivers/soc/qcom/apr.c
index a956c407ce03..2c46a25abb24 100644
--- a/drivers/soc/qcom/apr.c
+++ b/drivers/soc/qcom/apr.c
@@ -95,7 +95,7 @@ gpr_port_t *gpr_alloc_port(struct apr_device *gdev, struct device *dev,
struct pkt_router_svc *svc;
int id;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return ERR_PTR(-ENOMEM);
@@ -171,7 +171,7 @@ static int apr_callback(struct rpmsg_device *rpdev, void *buf,
return -EINVAL;
}
- abuf = kzalloc(struct_size(abuf, buf, len), GFP_ATOMIC);
+ abuf = kzalloc_flex(*abuf, buf, len, GFP_ATOMIC);
if (!abuf)
return -ENOMEM;
@@ -416,7 +416,7 @@ static int apr_add_device(struct device *dev, struct device_node *np,
struct pkt_router_svc *svc;
int ret;
- adev = kzalloc(sizeof(*adev), GFP_KERNEL);
+ adev = kzalloc_obj(*adev, GFP_KERNEL);
if (!adev)
return -ENOMEM;
diff --git a/drivers/soc/qcom/llcc-qcom.c b/drivers/soc/qcom/llcc-qcom.c
index 1abfda7a58f2..84ceba84d51a 100644
--- a/drivers/soc/qcom/llcc-qcom.c
+++ b/drivers/soc/qcom/llcc-qcom.c
@@ -4447,7 +4447,7 @@ struct llcc_slice_desc *llcc_slice_getd(u32 uid)
if (count == sz || !cfg)
return ERR_PTR(-ENODEV);
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/soc/qcom/ocmem.c b/drivers/soc/qcom/ocmem.c
index 71130a2f62e9..0a6094e17e66 100644
--- a/drivers/soc/qcom/ocmem.c
+++ b/drivers/soc/qcom/ocmem.c
@@ -226,7 +226,7 @@ struct ocmem_buf *ocmem_allocate(struct ocmem *ocmem, enum ocmem_client client,
if (test_and_set_bit_lock(BIT(client), &ocmem->active_allocations))
return ERR_PTR(-EBUSY);
- struct ocmem_buf *buf __free(kfree) = kzalloc(sizeof(*buf), GFP_KERNEL);
+ struct ocmem_buf *buf __free(kfree) = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf) {
ret = -ENOMEM;
goto err_unlock;
diff --git a/drivers/soc/qcom/pdr_interface.c b/drivers/soc/qcom/pdr_interface.c
index 71be378d2e43..cd36f3f0b80f 100644
--- a/drivers/soc/qcom/pdr_interface.c
+++ b/drivers/soc/qcom/pdr_interface.c
@@ -322,7 +322,7 @@ static void pdr_indication_cb(struct qmi_handle *qmi,
ind_msg->service_path, ind_msg->curr_state,
ind_msg->transaction_id);
- ind = kzalloc(sizeof(*ind), GFP_KERNEL);
+ ind = kzalloc_obj(*ind, GFP_KERNEL);
if (!ind)
return;
@@ -396,8 +396,8 @@ static int pdr_locate_service(struct pdr_handle *pdr, struct pdr_service *pds)
int domains_read = 0;
int ret, i;
- struct servreg_get_domain_list_resp *resp __free(kfree) = kzalloc(sizeof(*resp),
- GFP_KERNEL);
+ struct servreg_get_domain_list_resp *resp __free(kfree) = kzalloc_obj(*resp,
+ GFP_KERNEL);
if (!resp)
return -ENOMEM;
@@ -520,7 +520,7 @@ struct pdr_service *pdr_add_lookup(struct pdr_handle *pdr,
!service_path || strlen(service_path) > SERVREG_NAME_LENGTH)
return ERR_PTR(-EINVAL);
- struct pdr_service *pds __free(kfree) = kzalloc(sizeof(*pds), GFP_KERNEL);
+ struct pdr_service *pds __free(kfree) = kzalloc_obj(*pds, GFP_KERNEL);
if (!pds)
return ERR_PTR(-ENOMEM);
@@ -645,7 +645,7 @@ struct pdr_handle *pdr_handle_alloc(void (*status)(int state,
if (!status)
return ERR_PTR(-EINVAL);
- struct pdr_handle *pdr __free(kfree) = kzalloc(sizeof(*pdr), GFP_KERNEL);
+ struct pdr_handle *pdr __free(kfree) = kzalloc_obj(*pdr, GFP_KERNEL);
if (!pdr)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/soc/qcom/qcom_pd_mapper.c b/drivers/soc/qcom/qcom_pd_mapper.c
index 1bcbe69688d2..cb92c214311b 100644
--- a/drivers/soc/qcom/qcom_pd_mapper.c
+++ b/drivers/soc/qcom/qcom_pd_mapper.c
@@ -77,7 +77,7 @@ static int qcom_pdm_add_service_domain(struct qcom_pdm_data *data,
return -EBUSY;
}
} else {
- service = kzalloc(sizeof(*service), GFP_KERNEL);
+ service = kzalloc_obj(*service, GFP_KERNEL);
if (!service)
return -ENOMEM;
@@ -87,7 +87,7 @@ static int qcom_pdm_add_service_domain(struct qcom_pdm_data *data,
list_add_tail(&service->list, &data->services);
}
- domain = kzalloc(sizeof(*domain), GFP_KERNEL);
+ domain = kzalloc_obj(*domain, GFP_KERNEL);
if (!domain) {
if (list_empty(&service->domains)) {
list_del(&service->list);
@@ -158,7 +158,7 @@ static void qcom_pdm_get_domain_list(struct qmi_handle *qmi,
u32 offset;
int ret;
- rsp = kzalloc(sizeof(*rsp), GFP_KERNEL);
+ rsp = kzalloc_obj(*rsp, GFP_KERNEL);
if (!rsp)
return;
@@ -635,7 +635,7 @@ static struct qcom_pdm_data *qcom_pdm_start(void)
return ERR_PTR(-ENODEV);
}
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/soc/qcom/qmi_interface.c b/drivers/soc/qcom/qmi_interface.c
index 6500f863aae5..59a11fa572a7 100644
--- a/drivers/soc/qcom/qmi_interface.c
+++ b/drivers/soc/qcom/qmi_interface.c
@@ -44,7 +44,7 @@ static void qmi_recv_new_server(struct qmi_handle *qmi,
if (!node && !port)
return;
- svc = kzalloc(sizeof(*svc), GFP_KERNEL);
+ svc = kzalloc_obj(*svc, GFP_KERNEL);
if (!svc)
return;
@@ -209,7 +209,7 @@ int qmi_add_lookup(struct qmi_handle *qmi, unsigned int service,
{
struct qmi_service *svc;
- svc = kzalloc(sizeof(*svc), GFP_KERNEL);
+ svc = kzalloc_obj(*svc, GFP_KERNEL);
if (!svc)
return -ENOMEM;
@@ -273,7 +273,7 @@ int qmi_add_server(struct qmi_handle *qmi, unsigned int service,
{
struct qmi_service *svc;
- svc = kzalloc(sizeof(*svc), GFP_KERNEL);
+ svc = kzalloc_obj(*svc, GFP_KERNEL);
if (!svc)
return -ENOMEM;
diff --git a/drivers/soc/qcom/rmtfs_mem.c b/drivers/soc/qcom/rmtfs_mem.c
index 1b32469f2789..cec7912f74dd 100644
--- a/drivers/soc/qcom/rmtfs_mem.c
+++ b/drivers/soc/qcom/rmtfs_mem.c
@@ -192,7 +192,7 @@ static int qcom_rmtfs_mem_probe(struct platform_device *pdev)
}
- rmtfs_mem = kzalloc(sizeof(*rmtfs_mem), GFP_KERNEL);
+ rmtfs_mem = kzalloc_obj(*rmtfs_mem, GFP_KERNEL);
if (!rmtfs_mem)
return -ENOMEM;
diff --git a/drivers/soc/qcom/rpmh.c b/drivers/soc/qcom/rpmh.c
index 8903ed956312..ca37da3dc2b1 100644
--- a/drivers/soc/qcom/rpmh.c
+++ b/drivers/soc/qcom/rpmh.c
@@ -121,7 +121,7 @@ static struct cache_req *cache_rpm_request(struct rpmh_ctrlr *ctrlr,
if (req)
goto existing;
- req = kzalloc(sizeof(*req), GFP_ATOMIC);
+ req = kzalloc_obj(*req, GFP_ATOMIC);
if (!req) {
req = ERR_PTR(-ENOMEM);
goto unlock;
@@ -225,7 +225,7 @@ int rpmh_write_async(const struct device *dev, enum rpmh_state state,
struct rpmh_request *rpm_msg;
int ret;
- rpm_msg = kzalloc(sizeof(*rpm_msg), GFP_ATOMIC);
+ rpm_msg = kzalloc_obj(*rpm_msg, GFP_ATOMIC);
if (!rpm_msg)
return -ENOMEM;
rpm_msg->needs_free = true;
diff --git a/drivers/soc/qcom/smem_state.c b/drivers/soc/qcom/smem_state.c
index cc5be8019b6a..3d9bc96dfd2d 100644
--- a/drivers/soc/qcom/smem_state.c
+++ b/drivers/soc/qcom/smem_state.c
@@ -197,7 +197,7 @@ struct qcom_smem_state *qcom_smem_state_register(struct device_node *of_node,
{
struct qcom_smem_state *state;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/soc/renesas/renesas-soc.c b/drivers/soc/renesas/renesas-soc.c
index ee4f17bb4db4..d170743d576a 100644
--- a/drivers/soc/renesas/renesas-soc.c
+++ b/drivers/soc/renesas/renesas-soc.c
@@ -487,7 +487,7 @@ static int __init renesas_soc_init(void)
chipid = ioremap(family->reg, 4);
}
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr) {
if (chipid)
iounmap(chipid);
diff --git a/drivers/soc/renesas/rz-sysc.c b/drivers/soc/renesas/rz-sysc.c
index ae727d9c8cc5..a3982a8dfba8 100644
--- a/drivers/soc/renesas/rz-sysc.c
+++ b/drivers/soc/renesas/rz-sysc.c
@@ -110,7 +110,8 @@ static int rz_sysc_probe(struct platform_device *pdev)
struct rz_sysc *sysc;
int ret;
- struct regmap_config *regmap_cfg __free(kfree) = kzalloc(sizeof(*regmap_cfg), GFP_KERNEL);
+ struct regmap_config *regmap_cfg __free(kfree) = kzalloc_obj(*regmap_cfg,
+ GFP_KERNEL);
if (!regmap_cfg)
return -ENOMEM;
diff --git a/drivers/soc/tegra/fuse/fuse-tegra.c b/drivers/soc/tegra/fuse/fuse-tegra.c
index 74d2fedea71c..165fad4f548e 100644
--- a/drivers/soc/tegra/fuse/fuse-tegra.c
+++ b/drivers/soc/tegra/fuse/fuse-tegra.c
@@ -441,7 +441,7 @@ struct device *tegra_soc_device_register(void)
struct soc_device_attribute *attr;
struct soc_device *dev;
- attr = kzalloc(sizeof(*attr), GFP_KERNEL);
+ attr = kzalloc_obj(*attr, GFP_KERNEL);
if (!attr)
return NULL;
diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c
index 9cdbd8ba94be..8f2f83c4ad90 100644
--- a/drivers/soc/tegra/pmc.c
+++ b/drivers/soc/tegra/pmc.c
@@ -1131,11 +1131,11 @@ int tegra_pmc_powergate_sequence_power_up(struct tegra_pmc *pmc,
if (!tegra_powergate_is_available(pmc, id))
return -EINVAL;
- pg = kzalloc(sizeof(*pg), GFP_KERNEL);
+ pg = kzalloc_obj(*pg, GFP_KERNEL);
if (!pg)
return -ENOMEM;
- pg->clk_rates = kzalloc(sizeof(*pg->clk_rates), GFP_KERNEL);
+ pg->clk_rates = kzalloc_obj(*pg->clk_rates, GFP_KERNEL);
if (!pg->clk_rates) {
kfree(pg->clks);
return -ENOMEM;
@@ -1341,7 +1341,7 @@ static int tegra_powergate_of_get_clks(struct tegra_powergate *pg,
if (count == 0)
return -ENODEV;
- pg->clks = kcalloc(count, sizeof(clk), GFP_KERNEL);
+ pg->clks = kzalloc_objs(clk, count, GFP_KERNEL);
if (!pg->clks)
return -ENOMEM;
@@ -1402,7 +1402,7 @@ static int tegra_powergate_add(struct tegra_pmc *pmc, struct device_node *np)
int id, err = 0;
bool off;
- pg = kzalloc(sizeof(*pg), GFP_KERNEL);
+ pg = kzalloc_obj(*pg, GFP_KERNEL);
if (!pg)
return -ENOMEM;
diff --git a/drivers/soc/ti/k3-socinfo.c b/drivers/soc/ti/k3-socinfo.c
index 42275cb5ba1c..8655f829dc7b 100644
--- a/drivers/soc/ti/k3-socinfo.c
+++ b/drivers/soc/ti/k3-socinfo.c
@@ -163,7 +163,7 @@ static int k3_chipinfo_probe(struct platform_device *pdev)
partno_id = (jtag_id & CTRLMMR_WKUP_JTAGID_PARTNO_MASK) >>
CTRLMMR_WKUP_JTAGID_PARTNO_SHIFT;
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr)
return -ENOMEM;
diff --git a/drivers/soc/ux500/ux500-soc-id.c b/drivers/soc/ux500/ux500-soc-id.c
index 27d6e25a0115..eb26a601643a 100644
--- a/drivers/soc/ux500/ux500-soc-id.c
+++ b/drivers/soc/ux500/ux500-soc-id.c
@@ -205,7 +205,7 @@ static int __init ux500_soc_device_init(void)
ux500_setup_id();
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr) {
of_node_put(backupram);
return -ENOMEM;
diff --git a/drivers/soc/versatile/soc-integrator.c b/drivers/soc/versatile/soc-integrator.c
index d5099a3386b4..45110efcd4a1 100644
--- a/drivers/soc/versatile/soc-integrator.c
+++ b/drivers/soc/versatile/soc-integrator.c
@@ -123,7 +123,7 @@ static int __init integrator_soc_init(void)
return -ENODEV;
integrator_coreid = val;
- soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+ soc_dev_attr = kzalloc_obj(*soc_dev_attr, GFP_KERNEL);
if (!soc_dev_attr)
return -ENOMEM;
diff --git a/drivers/soc/xilinx/xlnx_event_manager.c b/drivers/soc/xilinx/xlnx_event_manager.c
index 6fdf4d14b7e7..6a45b1b53caf 100644
--- a/drivers/soc/xilinx/xlnx_event_manager.c
+++ b/drivers/soc/xilinx/xlnx_event_manager.c
@@ -122,7 +122,7 @@ static int xlnx_add_cb_for_notify_event(const u32 node_id, const u32 event, cons
if (!present_in_hash) {
/* Add new entry if not present in HASH table */
- eve_data = kmalloc(sizeof(*eve_data), GFP_KERNEL);
+ eve_data = kmalloc_obj(*eve_data, GFP_KERNEL);
if (!eve_data)
return -ENOMEM;
eve_data->key = key;
@@ -130,7 +130,7 @@ static int xlnx_add_cb_for_notify_event(const u32 node_id, const u32 event, cons
eve_data->wake = wake;
INIT_LIST_HEAD(&eve_data->cb_list_head);
- cb_data = kmalloc(sizeof(*cb_data), GFP_KERNEL);
+ cb_data = kmalloc_obj(*cb_data, GFP_KERNEL);
if (!cb_data) {
kfree(eve_data);
return -ENOMEM;
@@ -153,7 +153,7 @@ static int xlnx_add_cb_for_notify_event(const u32 node_id, const u32 event, cons
}
/* Add multiple handler and private data in list */
- cb_data = kmalloc(sizeof(*cb_data), GFP_KERNEL);
+ cb_data = kmalloc_obj(*cb_data, GFP_KERNEL);
if (!cb_data)
return -ENOMEM;
cb_data->eve_cb = cb_fun;
@@ -179,7 +179,7 @@ static int xlnx_add_cb_for_suspend(event_cb_func_t cb_fun, void *data)
}
/* Add new entry if not present */
- eve_data = kmalloc(sizeof(*eve_data), GFP_KERNEL);
+ eve_data = kmalloc_obj(*eve_data, GFP_KERNEL);
if (!eve_data)
return -ENOMEM;
@@ -187,7 +187,7 @@ static int xlnx_add_cb_for_suspend(event_cb_func_t cb_fun, void *data)
eve_data->cb_type = PM_INIT_SUSPEND_CB;
INIT_LIST_HEAD(&eve_data->cb_list_head);
- cb_data = kmalloc(sizeof(*cb_data), GFP_KERNEL);
+ cb_data = kmalloc_obj(*cb_data, GFP_KERNEL);
if (!cb_data) {
kfree(eve_data);
return -ENOMEM;
diff --git a/drivers/soundwire/amd_init.c b/drivers/soundwire/amd_init.c
index 643e94524fe6..e71cc23523e1 100644
--- a/drivers/soundwire/amd_init.c
+++ b/drivers/soundwire/amd_init.c
@@ -98,14 +98,14 @@ static struct sdw_amd_ctx *sdw_amd_probe_controller(struct sdw_amd_res *res)
* the parent .probe.
* If devm_ was used, the memory might never be freed on errors.
*/
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return NULL;
ctx->count = count;
ctx->link_mask = res->link_mask;
- struct resource *sdw_res __free(kfree) = kzalloc(sizeof(*sdw_res),
- GFP_KERNEL);
+ struct resource *sdw_res __free(kfree) = kzalloc_obj(*sdw_res,
+ GFP_KERNEL);
if (!sdw_res) {
kfree(ctx);
return NULL;
@@ -205,8 +205,8 @@ int sdw_amd_get_slave_info(struct sdw_amd_ctx *ctx)
num_slaves++;
}
- ctx->peripherals = kmalloc(struct_size(ctx->peripherals, array, num_slaves),
- GFP_KERNEL);
+ ctx->peripherals = kmalloc_flex(*ctx->peripherals, array, num_slaves,
+ GFP_KERNEL);
if (!ctx->peripherals)
return -ENOMEM;
ctx->peripherals->num_peripherals = num_slaves;
diff --git a/drivers/soundwire/amd_manager.c b/drivers/soundwire/amd_manager.c
index 5fd311ee4107..91dee9499df2 100644
--- a/drivers/soundwire/amd_manager.c
+++ b/drivers/soundwire/amd_manager.c
@@ -718,8 +718,8 @@ static int amd_sdw_hw_params(struct snd_pcm_substream *substream,
sconfig.bps = snd_pcm_format_width(params_format(params));
/* Port configuration */
- struct sdw_port_config *pconfig __free(kfree) = kzalloc(sizeof(*pconfig),
- GFP_KERNEL);
+ struct sdw_port_config *pconfig __free(kfree) = kzalloc_obj(*pconfig,
+ GFP_KERNEL);
if (!pconfig)
return -ENOMEM;
@@ -764,7 +764,7 @@ static int amd_set_sdw_stream(struct snd_soc_dai *dai, void *stream, int directi
}
/* allocate and set dai_runtime info */
- dai_runtime = kzalloc(sizeof(*dai_runtime), GFP_KERNEL);
+ dai_runtime = kzalloc_obj(*dai_runtime, GFP_KERNEL);
if (!dai_runtime)
return -ENOMEM;
diff --git a/drivers/soundwire/cadence_master.c b/drivers/soundwire/cadence_master.c
index a106e5e482c8..dfdb591c6f6e 100644
--- a/drivers/soundwire/cadence_master.c
+++ b/drivers/soundwire/cadence_master.c
@@ -1846,7 +1846,7 @@ int cdns_set_sdw_stream(struct snd_soc_dai *dai,
}
/* allocate and set dai_runtime info */
- dai_runtime = kzalloc(sizeof(*dai_runtime), GFP_KERNEL);
+ dai_runtime = kzalloc_obj(*dai_runtime, GFP_KERNEL);
if (!dai_runtime)
return -ENOMEM;
diff --git a/drivers/soundwire/debugfs.c b/drivers/soundwire/debugfs.c
index 6068011dd0d9..0e9c48ca76e9 100644
--- a/drivers/soundwire/debugfs.c
+++ b/drivers/soundwire/debugfs.c
@@ -224,7 +224,7 @@ static int do_bpt_sequence(struct sdw_slave *slave, bool write, u8 *buffer)
struct sdw_bpt_msg msg = {0};
struct sdw_bpt_section *sec;
- sec = kcalloc(1, sizeof(*sec), GFP_KERNEL);
+ sec = kzalloc_objs(*sec, 1, GFP_KERNEL);
if (!sec)
return -ENOMEM;
msg.sections = 1;
diff --git a/drivers/soundwire/generic_bandwidth_allocation.c b/drivers/soundwire/generic_bandwidth_allocation.c
index 530ac66ac6fa..f5a7f404aacb 100644
--- a/drivers/soundwire/generic_bandwidth_allocation.c
+++ b/drivers/soundwire/generic_bandwidth_allocation.c
@@ -402,7 +402,7 @@ static int sdw_compute_port_params(struct sdw_bus *bus, struct sdw_stream_runtim
if (group.count == 0)
goto out;
- params = kcalloc(group.count, sizeof(*params), GFP_KERNEL);
+ params = kzalloc_objs(*params, group.count, GFP_KERNEL);
if (!params) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c
index 9db78f3d7615..5b4d84ceecff 100644
--- a/drivers/soundwire/intel.c
+++ b/drivers/soundwire/intel.c
@@ -769,8 +769,8 @@ static int intel_hw_params(struct snd_pcm_substream *substream,
sconfig.bps = snd_pcm_format_width(params_format(params));
/* Port configuration */
- struct sdw_port_config *pconfig __free(kfree) = kzalloc(sizeof(*pconfig),
- GFP_KERNEL);
+ struct sdw_port_config *pconfig __free(kfree) = kzalloc_obj(*pconfig,
+ GFP_KERNEL);
if (!pconfig)
return -ENOMEM;
diff --git a/drivers/soundwire/intel_ace2x.c b/drivers/soundwire/intel_ace2x.c
index 1ed0251d2592..8a37d185cbca 100644
--- a/drivers/soundwire/intel_ace2x.c
+++ b/drivers/soundwire/intel_ace2x.c
@@ -127,7 +127,7 @@ static int intel_ace2x_bpt_open_stream(struct sdw_intel *sdw, struct sdw_slave *
sconfig.bps = 32; /* this is required for BPT/BRA */
/* Port configuration */
- pconfig = kcalloc(2, sizeof(*pconfig), GFP_KERNEL);
+ pconfig = kzalloc_objs(*pconfig, 2, GFP_KERNEL);
if (!pconfig) {
ret = -ENOMEM;
goto remove_slave;
@@ -747,8 +747,8 @@ static int intel_hw_params(struct snd_pcm_substream *substream,
sconfig.bps = snd_pcm_format_width(params_format(params));
/* Port configuration */
- struct sdw_port_config *pconfig __free(kfree) = kzalloc(sizeof(*pconfig),
- GFP_KERNEL);
+ struct sdw_port_config *pconfig __free(kfree) = kzalloc_obj(*pconfig,
+ GFP_KERNEL);
if (!pconfig)
return -ENOMEM;
diff --git a/drivers/soundwire/intel_init.c b/drivers/soundwire/intel_init.c
index 4ffdabaf9693..982d25f92c7c 100644
--- a/drivers/soundwire/intel_init.c
+++ b/drivers/soundwire/intel_init.c
@@ -40,7 +40,7 @@ static struct sdw_intel_link_dev *intel_link_dev_register(struct sdw_intel_res *
struct auxiliary_device *auxdev;
int ret;
- ldev = kzalloc(sizeof(*ldev), GFP_KERNEL);
+ ldev = kzalloc_obj(*ldev, GFP_KERNEL);
if (!ldev)
return ERR_PTR(-ENOMEM);
@@ -186,7 +186,7 @@ static struct sdw_intel_ctx
* the parent .probe.
* If devm_ was used, the memory might never be freed on errors.
*/
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return NULL;
@@ -198,7 +198,7 @@ static struct sdw_intel_ctx
* If some links are disabled, the link pointer will remain NULL. Given that the
* number of links is small, this is simpler than using a list to keep track of links.
*/
- ctx->ldev = kcalloc(ctx->count, sizeof(*ctx->ldev), GFP_KERNEL);
+ ctx->ldev = kzalloc_objs(*ctx->ldev, ctx->count, GFP_KERNEL);
if (!ctx->ldev) {
kfree(ctx);
return NULL;
@@ -253,8 +253,8 @@ static struct sdw_intel_ctx
num_slaves++;
}
- ctx->peripherals = kmalloc(struct_size(ctx->peripherals, array, num_slaves),
- GFP_KERNEL);
+ ctx->peripherals = kmalloc_flex(*ctx->peripherals, array, num_slaves,
+ GFP_KERNEL);
if (!ctx->peripherals)
goto err;
ctx->peripherals->num_peripherals = num_slaves;
diff --git a/drivers/soundwire/master.c b/drivers/soundwire/master.c
index b2c64512739d..a0f94877bc91 100644
--- a/drivers/soundwire/master.c
+++ b/drivers/soundwire/master.c
@@ -133,7 +133,7 @@ int sdw_master_device_add(struct sdw_bus *bus, struct device *parent,
if (!parent)
return -EINVAL;
- md = kzalloc(sizeof(*md), GFP_KERNEL);
+ md = kzalloc_obj(*md, GFP_KERNEL);
if (!md)
return -ENOMEM;
diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c
index 8102a1b0d516..a85b9ecf1a05 100644
--- a/drivers/soundwire/qcom.c
+++ b/drivers/soundwire/qcom.c
@@ -1230,8 +1230,9 @@ static int qcom_swrm_stream_alloc_ports(struct qcom_swrm_ctrl *ctrl,
unsigned long *port_mask;
int maxport, pn, nports = 0;
unsigned int m_port;
- struct sdw_port_config *pconfig __free(kfree) = kcalloc(ctrl->nports,
- sizeof(*pconfig), GFP_KERNEL);
+ struct sdw_port_config *pconfig __free(kfree) = kzalloc_objs(*pconfig,
+ ctrl->nports,
+ GFP_KERNEL);
if (!pconfig)
return -ENOMEM;
diff --git a/drivers/soundwire/slave.c b/drivers/soundwire/slave.c
index d933cebad52b..45e80b9496f4 100644
--- a/drivers/soundwire/slave.c
+++ b/drivers/soundwire/slave.c
@@ -32,7 +32,7 @@ int sdw_slave_add(struct sdw_bus *bus,
int ret;
int i;
- slave = kzalloc(sizeof(*slave), GFP_KERNEL);
+ slave = kzalloc_obj(*slave, GFP_KERNEL);
if (!slave)
return -ENOMEM;
diff --git a/drivers/soundwire/stream.c b/drivers/soundwire/stream.c
index 38c9dbd35606..c6e3f911371b 100644
--- a/drivers/soundwire/stream.c
+++ b/drivers/soundwire/stream.c
@@ -748,11 +748,11 @@ static int sdw_bank_switch(struct sdw_bus *bus, int m_rt_count)
int ret;
u16 addr;
- wr_msg = kzalloc(sizeof(*wr_msg), GFP_KERNEL);
+ wr_msg = kzalloc_obj(*wr_msg, GFP_KERNEL);
if (!wr_msg)
return -ENOMEM;
- wbuf = kzalloc(sizeof(*wbuf), GFP_KERNEL);
+ wbuf = kzalloc_obj(*wbuf, GFP_KERNEL);
if (!wbuf) {
ret = -ENOMEM;
goto error_1;
@@ -956,7 +956,7 @@ static struct sdw_port_runtime *sdw_port_alloc(struct list_head *port_list)
{
struct sdw_port_runtime *p_rt;
- p_rt = kzalloc(sizeof(*p_rt), GFP_KERNEL);
+ p_rt = kzalloc_obj(*p_rt, GFP_KERNEL);
if (!p_rt)
return NULL;
@@ -1131,7 +1131,7 @@ static struct sdw_slave_runtime
{
struct sdw_slave_runtime *s_rt;
- s_rt = kzalloc(sizeof(*s_rt), GFP_KERNEL);
+ s_rt = kzalloc_obj(*s_rt, GFP_KERNEL);
if (!s_rt)
return NULL;
@@ -1241,7 +1241,7 @@ static struct sdw_master_runtime
}
}
- m_rt = kzalloc(sizeof(*m_rt), GFP_KERNEL);
+ m_rt = kzalloc_obj(*m_rt, GFP_KERNEL);
if (!m_rt)
return NULL;
@@ -1875,7 +1875,7 @@ struct sdw_stream_runtime *sdw_alloc_stream(const char *stream_name, enum sdw_st
{
struct sdw_stream_runtime *stream;
- stream = kzalloc(sizeof(*stream), GFP_KERNEL);
+ stream = kzalloc_obj(*stream, GFP_KERNEL);
if (!stream)
return NULL;
diff --git a/drivers/spi/spi-amlogic-spifc-a4.c b/drivers/spi/spi-amlogic-spifc-a4.c
index 35a7c4965e11..786d66304c3d 100644
--- a/drivers/spi/spi-amlogic-spifc-a4.c
+++ b/drivers/spi/spi-amlogic-spifc-a4.c
@@ -986,7 +986,7 @@ static int aml_sfc_ecc_init_ctx(struct nand_device *nand)
nand->ecc.ctx.conf.engine_type = NAND_ECC_ENGINE_TYPE_ON_HOST;
- ecc_cfg = kzalloc(sizeof(*ecc_cfg), GFP_KERNEL);
+ ecc_cfg = kzalloc_obj(*ecc_cfg, GFP_KERNEL);
if (!ecc_cfg)
return -ENOMEM;
diff --git a/drivers/spi/spi-at91-usart.c b/drivers/spi/spi-at91-usart.c
index bbe97ce89a2f..40890068d840 100644
--- a/drivers/spi/spi-at91-usart.c
+++ b/drivers/spi/spi-at91-usart.c
@@ -364,7 +364,7 @@ static int at91_usart_spi_setup(struct spi_device *spi)
mr &= ~US_MR_LOOP;
if (!ausd) {
- ausd = kzalloc(sizeof(*ausd), GFP_KERNEL);
+ ausd = kzalloc_obj(*ausd, GFP_KERNEL);
if (!ausd)
return -ENOMEM;
diff --git a/drivers/spi/spi-atmel.c b/drivers/spi/spi-atmel.c
index d71c0dbf1f38..ff4bf4e6bdb5 100644
--- a/drivers/spi/spi-atmel.c
+++ b/drivers/spi/spi-atmel.c
@@ -1300,7 +1300,7 @@ static int atmel_spi_setup(struct spi_device *spi)
asd = spi->controller_state;
if (!asd) {
- asd = kzalloc(sizeof(struct atmel_spi_device), GFP_KERNEL);
+ asd = kzalloc_obj(struct atmel_spi_device, GFP_KERNEL);
if (!asd)
return -ENOMEM;
diff --git a/drivers/spi/spi-axi-spi-engine.c b/drivers/spi/spi-axi-spi-engine.c
index c75e8da049f7..b22c53c3e5b7 100644
--- a/drivers/spi/spi-axi-spi-engine.c
+++ b/drivers/spi/spi-axi-spi-engine.c
@@ -815,7 +815,7 @@ static int spi_engine_optimize_message(struct spi_message *msg)
p_dry.length = 0;
spi_engine_compile_message(msg, true, &p_dry);
- p = kzalloc(struct_size(p, instructions, p_dry.length + 1), GFP_KERNEL);
+ p = kzalloc_flex(*p, instructions, p_dry.length + 1, GFP_KERNEL);
if (!p)
return -ENOMEM;
diff --git a/drivers/spi/spi-bcm-qspi.c b/drivers/spi/spi-bcm-qspi.c
index 9c06ac562f3e..123d9d4fb08d 100644
--- a/drivers/spi/spi-bcm-qspi.c
+++ b/drivers/spi/spi-bcm-qspi.c
@@ -712,7 +712,7 @@ static int bcm_qspi_setup(struct spi_device *spi)
xp = spi_get_ctldata(spi);
if (!xp) {
- xp = kzalloc(sizeof(*xp), GFP_KERNEL);
+ xp = kzalloc_obj(*xp, GFP_KERNEL);
if (!xp)
return -ENOMEM;
spi_set_ctldata(spi, xp);
@@ -1565,8 +1565,8 @@ int bcm_qspi_probe(struct platform_device *pdev,
return PTR_ERR(qspi->base[CHIP_SELECT]);
}
- qspi->dev_ids = kcalloc(num_irqs, sizeof(struct bcm_qspi_dev_id),
- GFP_KERNEL);
+ qspi->dev_ids = kzalloc_objs(struct bcm_qspi_dev_id, num_irqs,
+ GFP_KERNEL);
if (!qspi->dev_ids)
return -ENOMEM;
diff --git a/drivers/spi/spi-bcm2835.c b/drivers/spi/spi-bcm2835.c
index 35ae50ca37ac..170118023b2f 100644
--- a/drivers/spi/spi-bcm2835.c
+++ b/drivers/spi/spi-bcm2835.c
@@ -1313,7 +1313,7 @@ static int bcm2835_spi_setup(struct spi_device *spi)
* More on the problem that it addresses:
* https://www.spinics.net/lists/linux-gpio/msg36218.html
*/
- lookup = kzalloc(struct_size(lookup, table, 2), GFP_KERNEL);
+ lookup = kzalloc_flex(*lookup, table, 2, GFP_KERNEL);
if (!lookup) {
ret = -ENOMEM;
goto err_cleanup;
diff --git a/drivers/spi/spi-bitbang.c b/drivers/spi/spi-bitbang.c
index ebe18f0b5d23..d9cfb6e18a4c 100644
--- a/drivers/spi/spi-bitbang.c
+++ b/drivers/spi/spi-bitbang.c
@@ -193,7 +193,7 @@ int spi_bitbang_setup(struct spi_device *spi)
bitbang = spi_controller_get_devdata(spi->controller);
if (!cs) {
- cs = kzalloc(sizeof(*cs), GFP_KERNEL);
+ cs = kzalloc_obj(*cs, GFP_KERNEL);
if (!cs)
return -ENOMEM;
spi->controller_state = cs;
diff --git a/drivers/spi/spi-davinci.c b/drivers/spi/spi-davinci.c
index d680142a059f..62171cc0d84d 100644
--- a/drivers/spi/spi-davinci.c
+++ b/drivers/spi/spi-davinci.c
@@ -443,7 +443,7 @@ static int davinci_spi_of_setup(struct spi_device *spi)
u32 prop;
if (spicfg == NULL && np) {
- spicfg = kzalloc(sizeof(*spicfg), GFP_KERNEL);
+ spicfg = kzalloc_obj(*spicfg, GFP_KERNEL);
if (!spicfg)
return -ENOMEM;
*spicfg = davinci_spi_default_cfg;
diff --git a/drivers/spi/spi-dw-core.c b/drivers/spi/spi-dw-core.c
index 0d59c141beb0..d2aa199bab9d 100644
--- a/drivers/spi/spi-dw-core.c
+++ b/drivers/spi/spi-dw-core.c
@@ -797,7 +797,7 @@ static int dw_spi_setup(struct spi_device *spi)
struct dw_spi *dws = spi_controller_get_devdata(spi->controller);
u32 rx_sample_dly_ns;
- chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+ chip = kzalloc_obj(*chip, GFP_KERNEL);
if (!chip)
return -ENOMEM;
spi_set_ctldata(spi, chip);
diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c
index 76f142a54254..031d6785ecc4 100644
--- a/drivers/spi/spi-fsl-dspi.c
+++ b/drivers/spi/spi-fsl-dspi.c
@@ -1290,7 +1290,7 @@ static int dspi_setup(struct spi_device *spi)
/* Only alloc on first setup */
chip = spi_get_ctldata(spi);
if (chip == NULL) {
- chip = kzalloc(sizeof(struct chip_data), GFP_KERNEL);
+ chip = kzalloc_obj(struct chip_data, GFP_KERNEL);
if (!chip)
return -ENOMEM;
}
diff --git a/drivers/spi/spi-fsl-espi.c b/drivers/spi/spi-fsl-espi.c
index b06555a457f8..f46f5c3cc992 100644
--- a/drivers/spi/spi-fsl-espi.c
+++ b/drivers/spi/spi-fsl-espi.c
@@ -482,7 +482,7 @@ static int fsl_espi_setup(struct spi_device *spi)
struct fsl_espi_cs *cs = spi_get_ctldata(spi);
if (!cs) {
- cs = kzalloc(sizeof(*cs), GFP_KERNEL);
+ cs = kzalloc_obj(*cs, GFP_KERNEL);
if (!cs)
return -ENOMEM;
spi_set_ctldata(spi, cs);
diff --git a/drivers/spi/spi-fsl-spi.c b/drivers/spi/spi-fsl-spi.c
index 481a7b28aacd..e2f15998495f 100644
--- a/drivers/spi/spi-fsl-spi.c
+++ b/drivers/spi/spi-fsl-spi.c
@@ -378,7 +378,7 @@ static int fsl_spi_setup(struct spi_device *spi)
return -EINVAL;
if (!cs) {
- cs = kzalloc(sizeof(*cs), GFP_KERNEL);
+ cs = kzalloc_obj(*cs, GFP_KERNEL);
if (!cs)
return -ENOMEM;
spi_set_ctldata(spi, cs);
diff --git a/drivers/spi/spi-hisi-kunpeng.c b/drivers/spi/spi-hisi-kunpeng.c
index f123cdab9007..798ba06b86bc 100644
--- a/drivers/spi/spi-hisi-kunpeng.c
+++ b/drivers/spi/spi-hisi-kunpeng.c
@@ -426,7 +426,7 @@ static int hisi_spi_setup(struct spi_device *spi)
/* Only alloc on first setup */
chip = spi_get_ctldata(spi);
if (!chip) {
- chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+ chip = kzalloc_obj(*chip, GFP_KERNEL);
if (!chip)
return -ENOMEM;
spi_set_ctldata(spi, chip);
diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c
index f65c0bf11a73..64c6c09e1e7b 100644
--- a/drivers/spi/spi-imx.c
+++ b/drivers/spi/spi-imx.c
@@ -1666,9 +1666,9 @@ static int spi_imx_dma_data_prepare(struct spi_imx_data *spi_imx,
tail_bl = (transfer->len % MX51_ECSPI_CTRL_MAX_BURST) * BITS_PER_BYTE - 1;
}
- spi_imx->dma_data = kmalloc_array(spi_imx->dma_package_num,
- sizeof(struct dma_data_package),
- GFP_KERNEL | __GFP_ZERO);
+ spi_imx->dma_data = kmalloc_objs(struct dma_data_package,
+ spi_imx->dma_package_num,
+ GFP_KERNEL | __GFP_ZERO);
if (!spi_imx->dma_data) {
dev_err(spi_imx->dev, "Failed to allocate DMA package buffer!\n");
return -ENOMEM;
diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c
index 965673bac98b..abb380d2791b 100644
--- a/drivers/spi/spi-mem.c
+++ b/drivers/spi/spi-mem.c
@@ -713,7 +713,7 @@ spi_mem_dirmap_create(struct spi_mem *mem,
if (info->op_tmpl.data.dir == SPI_MEM_NO_DATA)
return ERR_PTR(-EINVAL);
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/spi/spi-mpc512x-psc.c b/drivers/spi/spi-mpc512x-psc.c
index a1aeb5403a74..e8383a79cb2e 100644
--- a/drivers/spi/spi-mpc512x-psc.c
+++ b/drivers/spi/spi-mpc512x-psc.c
@@ -362,7 +362,7 @@ static int mpc512x_psc_spi_setup(struct spi_device *spi)
return -EINVAL;
if (!cs) {
- cs = kzalloc(sizeof(*cs), GFP_KERNEL);
+ cs = kzalloc_obj(*cs, GFP_KERNEL);
if (!cs)
return -ENOMEM;
diff --git a/drivers/spi/spi-mpc52xx-psc.c b/drivers/spi/spi-mpc52xx-psc.c
index 73d2383461ca..03ee5f370382 100644
--- a/drivers/spi/spi-mpc52xx-psc.c
+++ b/drivers/spi/spi-mpc52xx-psc.c
@@ -222,7 +222,7 @@ static int mpc52xx_psc_spi_setup(struct spi_device *spi)
return -EINVAL;
if (!cs) {
- cs = kzalloc(sizeof(*cs), GFP_KERNEL);
+ cs = kzalloc_obj(*cs, GFP_KERNEL);
if (!cs)
return -ENOMEM;
spi->controller_state = cs;
diff --git a/drivers/spi/spi-mpc52xx.c b/drivers/spi/spi-mpc52xx.c
index 14188a6ba5a1..ea5c15191f23 100644
--- a/drivers/spi/spi-mpc52xx.c
+++ b/drivers/spi/spi-mpc52xx.c
@@ -443,9 +443,8 @@ static int mpc52xx_spi_probe(struct platform_device *op)
ms->gpio_cs_count = gpiod_count(&op->dev, NULL);
if (ms->gpio_cs_count > 0) {
host->num_chipselect = ms->gpio_cs_count;
- ms->gpio_cs = kmalloc_array(ms->gpio_cs_count,
- sizeof(*ms->gpio_cs),
- GFP_KERNEL);
+ ms->gpio_cs = kmalloc_objs(*ms->gpio_cs, ms->gpio_cs_count,
+ GFP_KERNEL);
if (!ms->gpio_cs) {
rc = -ENOMEM;
goto err_alloc_gpio;
diff --git a/drivers/spi/spi-mtk-snfi.c b/drivers/spi/spi-mtk-snfi.c
index 7f7d0dfec743..833f8f8901bf 100644
--- a/drivers/spi/spi-mtk-snfi.c
+++ b/drivers/spi/spi-mtk-snfi.c
@@ -675,7 +675,7 @@ static int mtk_snand_ecc_init_ctx(struct nand_device *nand)
if (ret)
return ret;
- ecc_cfg = kzalloc(sizeof(*ecc_cfg), GFP_KERNEL);
+ ecc_cfg = kzalloc_obj(*ecc_cfg, GFP_KERNEL);
if (!ecc_cfg)
return -ENOMEM;
diff --git a/drivers/spi/spi-mxs.c b/drivers/spi/spi-mxs.c
index 0ebcbdb1b1f7..35e4300deff5 100644
--- a/drivers/spi/spi-mxs.c
+++ b/drivers/spi/spi-mxs.c
@@ -182,7 +182,7 @@ static int mxs_spi_txrx_dma(struct mxs_spi *spi,
if (!len)
return -EINVAL;
- dma_xfer = kcalloc(sgs, sizeof(*dma_xfer), GFP_KERNEL);
+ dma_xfer = kzalloc_objs(*dma_xfer, sgs, GFP_KERNEL);
if (!dma_xfer)
return -ENOMEM;
diff --git a/drivers/spi/spi-offload.c b/drivers/spi/spi-offload.c
index d336f4d228d5..de6de1517554 100644
--- a/drivers/spi/spi-offload.c
+++ b/drivers/spi/spi-offload.c
@@ -117,7 +117,7 @@ struct spi_offload *devm_spi_offload_get(struct device *dev,
if (!spi->controller->get_offload)
return ERR_PTR(-ENODEV);
- resource = kzalloc(sizeof(*resource), GFP_KERNEL);
+ resource = kzalloc_obj(*resource, GFP_KERNEL);
if (!resource)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/spi/spi-omap-uwire.c b/drivers/spi/spi-omap-uwire.c
index b9a91dbfeaef..367a36a1fdc5 100644
--- a/drivers/spi/spi-omap-uwire.c
+++ b/drivers/spi/spi-omap-uwire.c
@@ -425,7 +425,7 @@ static int uwire_setup(struct spi_device *spi)
int status;
if (ust == NULL) {
- ust = kzalloc(sizeof(*ust), GFP_KERNEL);
+ ust = kzalloc_obj(*ust, GFP_KERNEL);
if (ust == NULL)
return -ENOMEM;
spi->controller_state = ust;
diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
index 69c2e9d9be3c..11eca0572733 100644
--- a/drivers/spi/spi-omap2-mcspi.c
+++ b/drivers/spi/spi-omap2-mcspi.c
@@ -1076,7 +1076,7 @@ static int omap2_mcspi_setup(struct spi_device *spi)
struct omap2_mcspi_cs *cs = spi->controller_state;
if (!cs) {
- cs = kzalloc(sizeof(*cs), GFP_KERNEL);
+ cs = kzalloc_obj(*cs, GFP_KERNEL);
if (!cs)
return -ENOMEM;
cs->base = mcspi->base + spi_get_chipselect(spi, 0) * 0x14;
diff --git a/drivers/spi/spi-pic32-sqi.c b/drivers/spi/spi-pic32-sqi.c
index fa0c1ee84532..f663ea5983d0 100644
--- a/drivers/spi/spi-pic32-sqi.c
+++ b/drivers/spi/spi-pic32-sqi.c
@@ -467,7 +467,7 @@ static int ring_desc_ring_alloc(struct pic32_sqi *sqi)
}
/* allocate software ring descriptors */
- sqi->ring = kcalloc(PESQI_BD_COUNT, sizeof(*rdesc), GFP_KERNEL);
+ sqi->ring = kzalloc_objs(*rdesc, PESQI_BD_COUNT, GFP_KERNEL);
if (!sqi->ring) {
dma_free_coherent(&sqi->host->dev,
sizeof(*bd) * PESQI_BD_COUNT,
diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c
index c32a1fba31ef..87f9d41f0236 100644
--- a/drivers/spi/spi-pl022.c
+++ b/drivers/spi/spi-pl022.c
@@ -1606,7 +1606,7 @@ static int pl022_setup(struct spi_device *spi)
chip = spi_get_ctldata(spi);
if (chip == NULL) {
- chip = kzalloc(sizeof(struct chip_data), GFP_KERNEL);
+ chip = kzalloc_obj(struct chip_data, GFP_KERNEL);
if (!chip)
return -ENOMEM;
dev_dbg(&spi->dev,
diff --git a/drivers/spi/spi-ppc4xx.c b/drivers/spi/spi-ppc4xx.c
index 688cabcfbc52..c4ebef57c991 100644
--- a/drivers/spi/spi-ppc4xx.c
+++ b/drivers/spi/spi-ppc4xx.c
@@ -218,7 +218,7 @@ static int spi_ppc4xx_setup(struct spi_device *spi)
}
if (cs == NULL) {
- cs = kzalloc(sizeof(*cs), GFP_KERNEL);
+ cs = kzalloc_obj(*cs, GFP_KERNEL);
if (!cs)
return -ENOMEM;
spi->controller_state = cs;
diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c
index 78c399e95ef2..b0424ee64b75 100644
--- a/drivers/spi/spi-pxa2xx.c
+++ b/drivers/spi/spi-pxa2xx.c
@@ -1184,7 +1184,7 @@ static int setup(struct spi_device *spi)
/* Only allocate on the first setup */
chip = spi_get_ctldata(spi);
if (!chip) {
- chip = kzalloc(sizeof(struct chip_data), GFP_KERNEL);
+ chip = kzalloc_obj(struct chip_data, GFP_KERNEL);
if (!chip)
return -ENOMEM;
}
diff --git a/drivers/spi/spi-qpic-snand.c b/drivers/spi/spi-qpic-snand.c
index d7fef48f20ef..eae0edb47652 100644
--- a/drivers/spi/spi-qpic-snand.c
+++ b/drivers/spi/spi-qpic-snand.c
@@ -258,7 +258,7 @@ static int qcom_spi_ecc_init_ctx_pipelined(struct nand_device *nand)
cwperpage = mtd->writesize / NANDC_STEP_SIZE;
snandc->qspi->num_cw = cwperpage;
- ecc_cfg = kzalloc(sizeof(*ecc_cfg), GFP_KERNEL);
+ ecc_cfg = kzalloc_obj(*ecc_cfg, GFP_KERNEL);
if (!ecc_cfg)
return -ENOMEM;
diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c
index 4fbefd85d2e2..2591f1d11a9d 100644
--- a/drivers/spi/spi-s3c64xx.c
+++ b/drivers/spi/spi-s3c64xx.c
@@ -961,7 +961,7 @@ static struct s3c64xx_spi_csinfo *s3c64xx_get_target_ctrldata(
return ERR_PTR(-EINVAL);
}
- cs = kzalloc(sizeof(*cs), GFP_KERNEL);
+ cs = kzalloc_obj(*cs, GFP_KERNEL);
if (!cs)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/spi/spi-tegra114.c b/drivers/spi/spi-tegra114.c
index d805da250a10..6983a4567c45 100644
--- a/drivers/spi/spi-tegra114.c
+++ b/drivers/spi/spi-tegra114.c
@@ -920,7 +920,7 @@ static struct tegra_spi_client_data
return NULL;
}
- cdata = kzalloc(sizeof(*cdata), GFP_KERNEL);
+ cdata = kzalloc_obj(*cdata, GFP_KERNEL);
if (!cdata)
return NULL;
diff --git a/drivers/spi/spi-tle62x0.c b/drivers/spi/spi-tle62x0.c
index 663c0136d119..0ef65cc689bd 100644
--- a/drivers/spi/spi-tle62x0.c
+++ b/drivers/spi/spi-tle62x0.c
@@ -249,7 +249,7 @@ static int tle62x0_probe(struct spi_device *spi)
return -EINVAL;
}
- st = kzalloc(sizeof(struct tle62x0_state), GFP_KERNEL);
+ st = kzalloc_obj(struct tle62x0_state, GFP_KERNEL);
if (st == NULL)
return -ENOMEM;
diff --git a/drivers/spi/spi-topcliff-pch.c b/drivers/spi/spi-topcliff-pch.c
index 60fce5c73031..72316aa1aab9 100644
--- a/drivers/spi/spi-topcliff-pch.c
+++ b/drivers/spi/spi-topcliff-pch.c
@@ -982,7 +982,7 @@ static void pch_spi_handle_dma(struct pch_spi_data *data, int *bpw)
spin_unlock_irqrestore(&data->lock, flags);
/* RX */
- dma->sg_rx_p = kmalloc_array(num, sizeof(*dma->sg_rx_p), GFP_ATOMIC);
+ dma->sg_rx_p = kmalloc_objs(*dma->sg_rx_p, num, GFP_ATOMIC);
if (!dma->sg_rx_p)
return;
@@ -1045,7 +1045,7 @@ static void pch_spi_handle_dma(struct pch_spi_data *data, int *bpw)
head = 0;
}
- dma->sg_tx_p = kmalloc_array(num, sizeof(*dma->sg_tx_p), GFP_ATOMIC);
+ dma->sg_tx_p = kmalloc_objs(*dma->sg_tx_p, num, GFP_ATOMIC);
if (!dma->sg_tx_p)
return;
@@ -1527,11 +1527,11 @@ static int pch_spi_probe(struct pci_dev *pdev, const struct pci_device_id *id)
int i;
struct pch_pd_dev_save *pd_dev_save;
- pd_dev_save = kzalloc(sizeof(*pd_dev_save), GFP_KERNEL);
+ pd_dev_save = kzalloc_obj(*pd_dev_save, GFP_KERNEL);
if (!pd_dev_save)
return -ENOMEM;
- board_dat = kzalloc(sizeof(*board_dat), GFP_KERNEL);
+ board_dat = kzalloc_obj(*board_dat, GFP_KERNEL);
if (!board_dat) {
retval = -ENOMEM;
goto err_no_mem;
diff --git a/drivers/spi/spi-virtio.c b/drivers/spi/spi-virtio.c
index 9e66c917fb75..9efadfb7a74f 100644
--- a/drivers/spi/spi-virtio.c
+++ b/drivers/spi/spi-virtio.c
@@ -158,8 +158,8 @@ static int virtio_spi_transfer_one(struct spi_controller *ctrl,
unsigned int incnt = 0;
int ret;
- struct virtio_spi_req *spi_req __free(kfree) = kzalloc(sizeof(*spi_req),
- GFP_KERNEL);
+ struct virtio_spi_req *spi_req __free(kfree) = kzalloc_obj(*spi_req,
+ GFP_KERNEL);
if (!spi_req)
return -ENOMEM;
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 3887fcf8ec86..bd80a8bc8139 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -568,7 +568,7 @@ struct spi_device *spi_alloc_device(struct spi_controller *ctlr)
if (!spi_controller_get(ctlr))
return NULL;
- spi = kzalloc(sizeof(*spi), GFP_KERNEL);
+ spi = kzalloc_obj(*spi, GFP_KERNEL);
if (!spi) {
spi_controller_put(ctlr);
return NULL;
@@ -921,7 +921,7 @@ int spi_register_board_info(struct spi_board_info const *info, unsigned n)
if (!n)
return 0;
- bi = kcalloc(n, sizeof(*bi), GFP_KERNEL);
+ bi = kzalloc_objs(*bi, n, GFP_KERNEL);
if (!bi)
return -ENOMEM;
diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
index f28528ed1c24..840347f404b9 100644
--- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c
@@ -214,7 +214,7 @@ static int spidev_message(struct spidev_data *spidev,
int status = -EFAULT;
spi_message_init(&msg);
- k_xfers = kcalloc(n_xfers, sizeof(*k_tmp), GFP_KERNEL);
+ k_xfers = kzalloc_objs(*k_tmp, n_xfers, GFP_KERNEL);
if (k_xfers == NULL)
return -ENOMEM;
@@ -777,7 +777,7 @@ static int spidev_probe(struct spi_device *spi)
}
/* Allocate driver data */
- spidev = kzalloc(sizeof(*spidev), GFP_KERNEL);
+ spidev = kzalloc_obj(*spidev, GFP_KERNEL);
if (!spidev)
return -ENOMEM;
diff --git a/drivers/spmi/spmi.c b/drivers/spmi/spmi.c
index 3cf8d9bd4566..29de3055443d 100644
--- a/drivers/spmi/spmi.c
+++ b/drivers/spmi/spmi.c
@@ -418,7 +418,7 @@ struct spmi_device *spmi_device_alloc(struct spmi_controller *ctrl)
{
struct spmi_device *sdev;
- sdev = kzalloc(sizeof(*sdev), GFP_KERNEL);
+ sdev = kzalloc_obj(*sdev, GFP_KERNEL);
if (!sdev)
return NULL;
diff --git a/drivers/ssb/bridge_pcmcia_80211.c b/drivers/ssb/bridge_pcmcia_80211.c
index ffa379efff83..6e958e403dbe 100644
--- a/drivers/ssb/bridge_pcmcia_80211.c
+++ b/drivers/ssb/bridge_pcmcia_80211.c
@@ -31,7 +31,7 @@ static int ssb_host_pcmcia_probe(struct pcmcia_device *dev)
int err = -ENOMEM;
int res = 0;
- ssb = kzalloc(sizeof(*ssb), GFP_KERNEL);
+ ssb = kzalloc_obj(*ssb, GFP_KERNEL);
if (!ssb)
goto out_error;
diff --git a/drivers/ssb/driver_gige.c b/drivers/ssb/driver_gige.c
index ebee6b0e3c34..fc2bf4ceedee 100644
--- a/drivers/ssb/driver_gige.c
+++ b/drivers/ssb/driver_gige.c
@@ -173,7 +173,7 @@ static int ssb_gige_probe(struct ssb_device *sdev,
struct ssb_gige *dev;
u32 base, tmslow, tmshigh;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
dev->dev = sdev;
diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c
index aa6165e3db4a..bb52e5197b1f 100644
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
@@ -481,7 +481,7 @@ static int ssb_devices_register(struct ssb_bus *bus)
continue;
}
- devwrap = kzalloc(sizeof(*devwrap), GFP_KERNEL);
+ devwrap = kzalloc_obj(*devwrap, GFP_KERNEL);
if (!devwrap) {
err = -ENOMEM;
goto error;
diff --git a/drivers/ssb/pcihost_wrapper.c b/drivers/ssb/pcihost_wrapper.c
index dd70fd41c77d..36011a93f5af 100644
--- a/drivers/ssb/pcihost_wrapper.c
+++ b/drivers/ssb/pcihost_wrapper.c
@@ -71,7 +71,7 @@ static int ssb_pcihost_probe(struct pci_dev *dev,
int err = -ENOMEM;
u32 val;
- ssb = kzalloc(sizeof(*ssb), GFP_KERNEL);
+ ssb = kzalloc_obj(*ssb, GFP_KERNEL);
if (!ssb)
goto out;
err = pci_enable_device(dev);
diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c b/drivers/staging/fbtft/fb_agm1264k-fl.c
index 207d578547cd..af2dbebefc72 100644
--- a/drivers/staging/fbtft/fb_agm1264k-fl.c
+++ b/drivers/staging/fbtft/fb_agm1264k-fl.c
@@ -283,8 +283,9 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len)
int ret = 0;
/* buffer to convert RGB565 -> grayscale16 -> Dithered image 1bpp */
- signed short *convert_buf = kmalloc_array(par->info->var.xres *
- par->info->var.yres, sizeof(signed short), GFP_NOIO);
+ signed short *convert_buf = kmalloc_objs(signed short,
+ par->info->var.xres * par->info->var.yres,
+ GFP_NOIO);
if (!convert_buf)
return -ENOMEM;
diff --git a/drivers/staging/greybus/audio_manager_module.c b/drivers/staging/greybus/audio_manager_module.c
index 4a4dfb42f50f..e87b82ca6d8a 100644
--- a/drivers/staging/greybus/audio_manager_module.c
+++ b/drivers/staging/greybus/audio_manager_module.c
@@ -188,7 +188,7 @@ int gb_audio_manager_module_create(struct gb_audio_manager_module **module,
int err;
struct gb_audio_manager_module *m;
- m = kzalloc(sizeof(*m), GFP_ATOMIC);
+ m = kzalloc_obj(*m, GFP_ATOMIC);
if (!m)
return -ENOMEM;
diff --git a/drivers/staging/greybus/authentication.c b/drivers/staging/greybus/authentication.c
index d53e58f92e81..e52e3f043572 100644
--- a/drivers/staging/greybus/authentication.c
+++ b/drivers/staging/greybus/authentication.c
@@ -306,7 +306,7 @@ int gb_cap_connection_init(struct gb_connection *connection)
if (!connection)
return 0;
- cap = kzalloc(sizeof(*cap), GFP_KERNEL);
+ cap = kzalloc_obj(*cap, GFP_KERNEL);
if (!cap)
return -ENOMEM;
diff --git a/drivers/staging/greybus/bootrom.c b/drivers/staging/greybus/bootrom.c
index d4d86b3898de..bad4091e2433 100644
--- a/drivers/staging/greybus/bootrom.c
+++ b/drivers/staging/greybus/bootrom.c
@@ -424,7 +424,7 @@ static int gb_bootrom_probe(struct gb_bundle *bundle,
if (cport_desc->protocol_id != GREYBUS_PROTOCOL_BOOTROM)
return -ENODEV;
- bootrom = kzalloc(sizeof(*bootrom), GFP_KERNEL);
+ bootrom = kzalloc_obj(*bootrom, GFP_KERNEL);
if (!bootrom)
return -ENOMEM;
diff --git a/drivers/staging/greybus/camera.c b/drivers/staging/greybus/camera.c
index 5ac19c0055d9..8ad3785ff467 100644
--- a/drivers/staging/greybus/camera.c
+++ b/drivers/staging/greybus/camera.c
@@ -791,7 +791,7 @@ static int gb_camera_op_configure_streams(void *priv, unsigned int *nstreams,
if (gb_nstreams > GB_CAMERA_MAX_STREAMS)
return -EINVAL;
- gb_streams = kcalloc(gb_nstreams, sizeof(*gb_streams), GFP_KERNEL);
+ gb_streams = kzalloc_objs(*gb_streams, gb_nstreams, GFP_KERNEL);
if (!gb_streams)
return -ENOMEM;
@@ -932,7 +932,7 @@ static ssize_t gb_camera_debugfs_configure_streams(struct gb_camera *gcam,
return ret;
/* For each stream to configure parse width, height and format */
- streams = kcalloc(nstreams, sizeof(*streams), GFP_KERNEL);
+ streams = kzalloc_objs(*streams, nstreams, GFP_KERNEL);
if (!streams)
return -ENOMEM;
@@ -1244,7 +1244,7 @@ static int gb_camera_probe(struct gb_bundle *bundle,
if (!mgmt_cport_id || !data_cport_id)
return -ENODEV;
- gcam = kzalloc(sizeof(*gcam), GFP_KERNEL);
+ gcam = kzalloc_obj(*gcam, GFP_KERNEL);
if (!gcam)
return -ENOMEM;
diff --git a/drivers/staging/greybus/fw-core.c b/drivers/staging/greybus/fw-core.c
index 0fb15a60412f..8a437361302c 100644
--- a/drivers/staging/greybus/fw-core.c
+++ b/drivers/staging/greybus/fw-core.c
@@ -68,7 +68,7 @@ static int gb_fw_core_probe(struct gb_bundle *bundle,
u16 cport_id;
u8 protocol_id;
- fw_core = kzalloc(sizeof(*fw_core), GFP_KERNEL);
+ fw_core = kzalloc_obj(*fw_core, GFP_KERNEL);
if (!fw_core)
return -ENOMEM;
diff --git a/drivers/staging/greybus/fw-download.c b/drivers/staging/greybus/fw-download.c
index 9a09bd3af79b..0216282f72f2 100644
--- a/drivers/staging/greybus/fw-download.c
+++ b/drivers/staging/greybus/fw-download.c
@@ -165,7 +165,7 @@ static struct fw_request *find_firmware(struct fw_download *fw_download,
struct fw_request *fw_req;
int ret, req_count;
- fw_req = kzalloc(sizeof(*fw_req), GFP_KERNEL);
+ fw_req = kzalloc_obj(*fw_req, GFP_KERNEL);
if (!fw_req)
return ERR_PTR(-ENOMEM);
@@ -409,7 +409,7 @@ int gb_fw_download_connection_init(struct gb_connection *connection)
if (!connection)
return 0;
- fw_download = kzalloc(sizeof(*fw_download), GFP_KERNEL);
+ fw_download = kzalloc_obj(*fw_download, GFP_KERNEL);
if (!fw_download)
return -ENOMEM;
diff --git a/drivers/staging/greybus/fw-management.c b/drivers/staging/greybus/fw-management.c
index 152949c23d65..012ed95d750e 100644
--- a/drivers/staging/greybus/fw-management.c
+++ b/drivers/staging/greybus/fw-management.c
@@ -577,7 +577,7 @@ int gb_fw_mgmt_connection_init(struct gb_connection *connection)
if (!connection)
return 0;
- fw_mgmt = kzalloc(sizeof(*fw_mgmt), GFP_KERNEL);
+ fw_mgmt = kzalloc_obj(*fw_mgmt, GFP_KERNEL);
if (!fw_mgmt)
return -ENOMEM;
diff --git a/drivers/staging/greybus/gbphy.c b/drivers/staging/greybus/gbphy.c
index 60cf09a302a7..24556c686e62 100644
--- a/drivers/staging/greybus/gbphy.c
+++ b/drivers/staging/greybus/gbphy.c
@@ -229,7 +229,7 @@ static struct gbphy_device *gb_gbphy_create_dev(struct gb_bundle *bundle,
if (id < 0)
return ERR_PTR(id);
- gbphy_dev = kzalloc(sizeof(*gbphy_dev), GFP_KERNEL);
+ gbphy_dev = kzalloc_obj(*gbphy_dev, GFP_KERNEL);
if (!gbphy_dev) {
ida_free(&gbphy_id, id);
return ERR_PTR(-ENOMEM);
@@ -282,7 +282,7 @@ static int gb_gbphy_probe(struct gb_bundle *bundle,
if (bundle->num_cports == 0)
return -ENODEV;
- gbphy_host = kzalloc(sizeof(*gbphy_host), GFP_KERNEL);
+ gbphy_host = kzalloc_obj(*gbphy_host, GFP_KERNEL);
if (!gbphy_host)
return -ENOMEM;
diff --git a/drivers/staging/greybus/gpio.c b/drivers/staging/greybus/gpio.c
index ac62b932e6a4..5b30841a4205 100644
--- a/drivers/staging/greybus/gpio.c
+++ b/drivers/staging/greybus/gpio.c
@@ -485,8 +485,7 @@ static int gb_gpio_controller_setup(struct gb_gpio_controller *ggc)
if (ret)
return ret;
- ggc->lines = kcalloc(ggc->line_max + 1, sizeof(*ggc->lines),
- GFP_KERNEL);
+ ggc->lines = kzalloc_objs(*ggc->lines, ggc->line_max + 1, GFP_KERNEL);
if (!ggc->lines)
return -ENOMEM;
@@ -503,7 +502,7 @@ static int gb_gpio_probe(struct gbphy_device *gbphy_dev,
struct irq_chip *irqc;
int ret;
- ggc = kzalloc(sizeof(*ggc), GFP_KERNEL);
+ ggc = kzalloc_obj(*ggc, GFP_KERNEL);
if (!ggc)
return -ENOMEM;
diff --git a/drivers/staging/greybus/hid.c b/drivers/staging/greybus/hid.c
index 63c77a3df591..2b5e6a7b04e6 100644
--- a/drivers/staging/greybus/hid.c
+++ b/drivers/staging/greybus/hid.c
@@ -434,7 +434,7 @@ static int gb_hid_probe(struct gb_bundle *bundle,
if (cport_desc->protocol_id != GREYBUS_PROTOCOL_HID)
return -ENODEV;
- ghid = kzalloc(sizeof(*ghid), GFP_KERNEL);
+ ghid = kzalloc_obj(*ghid, GFP_KERNEL);
if (!ghid)
return -ENOMEM;
diff --git a/drivers/staging/greybus/i2c.c b/drivers/staging/greybus/i2c.c
index 14f1ff6d448c..e6934459c8f6 100644
--- a/drivers/staging/greybus/i2c.c
+++ b/drivers/staging/greybus/i2c.c
@@ -235,7 +235,7 @@ static int gb_i2c_probe(struct gbphy_device *gbphy_dev,
struct i2c_adapter *adapter;
int ret;
- gb_i2c_dev = kzalloc(sizeof(*gb_i2c_dev), GFP_KERNEL);
+ gb_i2c_dev = kzalloc_obj(*gb_i2c_dev, GFP_KERNEL);
if (!gb_i2c_dev)
return -ENOMEM;
diff --git a/drivers/staging/greybus/light.c b/drivers/staging/greybus/light.c
index 38c233a706c4..5b8694d3943b 100644
--- a/drivers/staging/greybus/light.c
+++ b/drivers/staging/greybus/light.c
@@ -269,14 +269,14 @@ static int channel_attr_groups_set(struct gb_channel *channel,
return 0;
/* Set attributes based in the channel flags */
- channel->attrs = kcalloc(size + 1, sizeof(*channel->attrs), GFP_KERNEL);
+ channel->attrs = kzalloc_objs(*channel->attrs, size + 1, GFP_KERNEL);
if (!channel->attrs)
return -ENOMEM;
- channel->attr_group = kzalloc(sizeof(*channel->attr_group), GFP_KERNEL);
+ channel->attr_group = kzalloc_obj(*channel->attr_group, GFP_KERNEL);
if (!channel->attr_group)
return -ENOMEM;
- channel->attr_groups = kcalloc(2, sizeof(*channel->attr_groups),
- GFP_KERNEL);
+ channel->attr_groups = kzalloc_objs(*channel->attr_groups, 2,
+ GFP_KERNEL);
if (!channel->attr_groups)
return -ENOMEM;
@@ -1011,8 +1011,8 @@ static int gb_lights_light_config(struct gb_lights *glights, u8 id)
light->name = kstrndup(conf.name, NAMES_MAX, GFP_KERNEL);
if (!light->name)
return -ENOMEM;
- light->channels = kcalloc(conf.channel_count,
- sizeof(struct gb_channel), GFP_KERNEL);
+ light->channels = kzalloc_objs(struct gb_channel, conf.channel_count,
+ GFP_KERNEL);
if (!light->channels)
return -ENOMEM;
/*
@@ -1153,8 +1153,8 @@ static int gb_lights_create_all(struct gb_lights *glights)
if (ret < 0)
goto out;
- glights->lights = kcalloc(glights->lights_count,
- sizeof(struct gb_light), GFP_KERNEL);
+ glights->lights = kzalloc_objs(struct gb_light, glights->lights_count,
+ GFP_KERNEL);
if (!glights->lights) {
ret = -ENOMEM;
goto out;
@@ -1262,7 +1262,7 @@ static int gb_lights_probe(struct gb_bundle *bundle,
if (cport_desc->protocol_id != GREYBUS_PROTOCOL_LIGHTS)
return -ENODEV;
- glights = kzalloc(sizeof(*glights), GFP_KERNEL);
+ glights = kzalloc_obj(*glights, GFP_KERNEL);
if (!glights)
return -ENOMEM;
diff --git a/drivers/staging/greybus/log.c b/drivers/staging/greybus/log.c
index 57dcf9453bf1..77fb9880c695 100644
--- a/drivers/staging/greybus/log.c
+++ b/drivers/staging/greybus/log.c
@@ -77,7 +77,7 @@ static int gb_log_probe(struct gb_bundle *bundle,
if (cport_desc->protocol_id != GREYBUS_PROTOCOL_LOG)
return -ENODEV;
- log = kzalloc(sizeof(*log), GFP_KERNEL);
+ log = kzalloc_obj(*log, GFP_KERNEL);
if (!log)
return -ENOMEM;
diff --git a/drivers/staging/greybus/loopback.c b/drivers/staging/greybus/loopback.c
index 1f19323b0e1a..37a8cbf140ad 100644
--- a/drivers/staging/greybus/loopback.c
+++ b/drivers/staging/greybus/loopback.c
@@ -471,7 +471,7 @@ static int gb_loopback_async_operation(struct gb_loopback *gb, int type,
struct gb_operation *operation;
int ret;
- op_async = kzalloc(sizeof(*op_async), GFP_KERNEL);
+ op_async = kzalloc_obj(*op_async, GFP_KERNEL);
if (!op_async)
return -ENOMEM;
@@ -989,7 +989,7 @@ static int gb_loopback_probe(struct gb_bundle *bundle,
if (cport_desc->protocol_id != GREYBUS_PROTOCOL_LOOPBACK)
return -ENODEV;
- gb = kzalloc(sizeof(*gb), GFP_KERNEL);
+ gb = kzalloc_obj(*gb, GFP_KERNEL);
if (!gb)
return -ENOMEM;
diff --git a/drivers/staging/greybus/power_supply.c b/drivers/staging/greybus/power_supply.c
index a484c0ca058d..94e3650a2880 100644
--- a/drivers/staging/greybus/power_supply.c
+++ b/drivers/staging/greybus/power_supply.c
@@ -545,15 +545,15 @@ static int gb_power_supply_prop_descriptors_get(struct gb_power_supply *gbpsy)
}
}
- gbpsy->props = kcalloc(gbpsy->properties_count, sizeof(*gbpsy->props),
- GFP_KERNEL);
+ gbpsy->props = kzalloc_objs(*gbpsy->props, gbpsy->properties_count,
+ GFP_KERNEL);
if (!gbpsy->props) {
ret = -ENOMEM;
goto out_put_operation;
}
- gbpsy->props_raw = kcalloc(gbpsy->properties_count,
- sizeof(*gbpsy->props_raw), GFP_KERNEL);
+ gbpsy->props_raw = kzalloc_objs(*gbpsy->props_raw,
+ gbpsy->properties_count, GFP_KERNEL);
if (!gbpsy->props_raw) {
ret = -ENOMEM;
goto out_put_operation;
@@ -942,9 +942,8 @@ static int gb_power_supplies_setup(struct gb_power_supplies *supplies)
if (ret < 0)
goto out;
- supplies->supply = kcalloc(supplies->supplies_count,
- sizeof(struct gb_power_supply),
- GFP_KERNEL);
+ supplies->supply = kzalloc_objs(struct gb_power_supply,
+ supplies->supplies_count, GFP_KERNEL);
if (!supplies->supply) {
ret = -ENOMEM;
@@ -1064,7 +1063,7 @@ static int gb_power_supply_probe(struct gb_bundle *bundle,
if (cport_desc->protocol_id != GREYBUS_PROTOCOL_POWER_SUPPLY)
return -ENODEV;
- supplies = kzalloc(sizeof(*supplies), GFP_KERNEL);
+ supplies = kzalloc_obj(*supplies, GFP_KERNEL);
if (!supplies)
return -ENOMEM;
diff --git a/drivers/staging/greybus/raw.c b/drivers/staging/greybus/raw.c
index 71de6776739c..742b3a84cf12 100644
--- a/drivers/staging/greybus/raw.c
+++ b/drivers/staging/greybus/raw.c
@@ -73,7 +73,7 @@ static int receive_data(struct gb_raw *raw, u32 len, u8 *data)
goto exit;
}
- raw_data = kmalloc(struct_size(raw_data, data, len), GFP_KERNEL);
+ raw_data = kmalloc_flex(*raw_data, data, len, GFP_KERNEL);
if (!raw_data) {
retval = -ENOMEM;
goto exit;
@@ -164,7 +164,7 @@ static int gb_raw_probe(struct gb_bundle *bundle,
if (cport_desc->protocol_id != GREYBUS_PROTOCOL_RAW)
return -ENODEV;
- raw = kzalloc(sizeof(*raw), GFP_KERNEL);
+ raw = kzalloc_obj(*raw, GFP_KERNEL);
if (!raw)
return -ENOMEM;
diff --git a/drivers/staging/greybus/uart.c b/drivers/staging/greybus/uart.c
index 5cece0a6606f..99eff4b97e7a 100644
--- a/drivers/staging/greybus/uart.c
+++ b/drivers/staging/greybus/uart.c
@@ -823,7 +823,7 @@ static int gb_uart_probe(struct gbphy_device *gbphy_dev,
goto exit_connection_destroy;
}
- gb_tty = kzalloc(sizeof(*gb_tty), GFP_KERNEL);
+ gb_tty = kzalloc_obj(*gb_tty, GFP_KERNEL);
if (!gb_tty) {
retval = -ENOMEM;
goto exit_connection_destroy;
diff --git a/drivers/staging/greybus/vibrator.c b/drivers/staging/greybus/vibrator.c
index ee112aa13ff1..fc995fe41604 100644
--- a/drivers/staging/greybus/vibrator.c
+++ b/drivers/staging/greybus/vibrator.c
@@ -128,7 +128,7 @@ static int gb_vibrator_probe(struct gb_bundle *bundle,
if (cport_desc->protocol_id != GREYBUS_PROTOCOL_VIBRATOR)
return -ENODEV;
- vib = kzalloc(sizeof(*vib), GFP_KERNEL);
+ vib = kzalloc_obj(*vib, GFP_KERNEL);
if (!vib)
return -ENOMEM;
diff --git a/drivers/staging/media/atomisp/i2c/atomisp-gc2235.c b/drivers/staging/media/atomisp/i2c/atomisp-gc2235.c
index 6050637a0def..a67eeed04b0c 100644
--- a/drivers/staging/media/atomisp/i2c/atomisp-gc2235.c
+++ b/drivers/staging/media/atomisp/i2c/atomisp-gc2235.c
@@ -794,7 +794,7 @@ static int gc2235_probe(struct i2c_client *client)
int ret;
unsigned int i;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/staging/media/atomisp/i2c/atomisp-ov2722.c b/drivers/staging/media/atomisp/i2c/atomisp-ov2722.c
index a4519babf37d..38568259bd7f 100644
--- a/drivers/staging/media/atomisp/i2c/atomisp-ov2722.c
+++ b/drivers/staging/media/atomisp/i2c/atomisp-ov2722.c
@@ -952,7 +952,7 @@ static int ov2722_probe(struct i2c_client *client)
void *ovpdev;
int ret;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/staging/media/atomisp/pci/atomisp_cmd.c b/drivers/staging/media/atomisp/pci/atomisp_cmd.c
index a3cd9d3e9ce7..4584f0ee15f0 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_cmd.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_cmd.c
@@ -2960,7 +2960,7 @@ int atomisp_set_parameters(struct video_device *vdev,
* are ready, the parameters will be set to CSS.
* per-frame setting only works for the main output frame.
*/
- param = kvzalloc(sizeof(*param), GFP_KERNEL);
+ param = kvzalloc_obj(*param, GFP_KERNEL);
if (!param)
return -ENOMEM;
css_param = ¶m->params;
diff --git a/drivers/staging/media/atomisp/pci/atomisp_csi2_bridge.c b/drivers/staging/media/atomisp/pci/atomisp_csi2_bridge.c
index 2a90f86e515f..c934da53f4a3 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_csi2_bridge.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_csi2_bridge.c
@@ -305,8 +305,8 @@ static int atomisp_csi2_add_gpio_mappings(struct acpi_device *adev)
int ret;
/* Max num GPIOs we've seen plus a terminator */
- int3472 = kzalloc(struct_size(int3472, gpios.table, INT3472_MAX_SENSOR_GPIOS + 1),
- GFP_KERNEL);
+ int3472 = kzalloc_flex(*int3472, gpios.table,
+ INT3472_MAX_SENSOR_GPIOS + 1, GFP_KERNEL);
if (!int3472)
return -ENOMEM;
diff --git a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c
index 964cc3bcc0ac..27d3c7d83e21 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c
@@ -969,7 +969,7 @@ static int camera_sensor_csi_alloc(struct v4l2_subdev *sd, u32 port, u32 lanes,
struct i2c_client *client = v4l2_get_subdevdata(sd);
struct camera_mipi_info *csi;
- csi = kzalloc(sizeof(*csi), GFP_KERNEL);
+ csi = kzalloc_obj(*csi, GFP_KERNEL);
if (!csi)
return -ENOMEM;
diff --git a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c b/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
index bb8b2f2213b0..a19dc99922ad 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
@@ -696,7 +696,8 @@ int atomisp_alloc_css_stat_bufs(struct atomisp_sub_device *asd,
ATOMISP_S3A_BUF_QUEUE_DEPTH_FOR_HAL;
dev_dbg(isp->dev, "allocating %d 3a buffers\n", count);
while (count--) {
- s3a_buf = kzalloc(sizeof(struct atomisp_s3a_buf), GFP_KERNEL);
+ s3a_buf = kzalloc_obj(struct atomisp_s3a_buf,
+ GFP_KERNEL);
if (!s3a_buf)
goto error;
@@ -715,7 +716,8 @@ int atomisp_alloc_css_stat_bufs(struct atomisp_sub_device *asd,
count = ATOMISP_CSS_Q_DEPTH + 1;
dev_dbg(isp->dev, "allocating %d dis buffers\n", count);
while (count--) {
- dis_buf = kzalloc(sizeof(struct atomisp_dis_buf), GFP_KERNEL);
+ dis_buf = kzalloc_obj(struct atomisp_dis_buf,
+ GFP_KERNEL);
if (!dis_buf)
goto error;
if (atomisp_css_allocate_stat_buffers(
@@ -737,8 +739,8 @@ int atomisp_alloc_css_stat_bufs(struct atomisp_sub_device *asd,
dev_dbg(isp->dev, "allocating %d metadata buffers for type %d\n",
count, i);
while (count--) {
- md_buf = kzalloc(sizeof(struct atomisp_metadata_buf),
- GFP_KERNEL);
+ md_buf = kzalloc_obj(struct atomisp_metadata_buf,
+ GFP_KERNEL);
if (!md_buf)
goto error;
diff --git a/drivers/staging/media/atomisp/pci/hmm/hmm_bo.c b/drivers/staging/media/atomisp/pci/hmm/hmm_bo.c
index 5d0cd5260d3a..8181e988266a 100644
--- a/drivers/staging/media/atomisp/pci/hmm/hmm_bo.c
+++ b/drivers/staging/media/atomisp/pci/hmm/hmm_bo.c
@@ -676,7 +676,7 @@ int hmm_bo_alloc_pages(struct hmm_buffer_object *bo,
mutex_lock(&bo->mutex);
check_bo_status_no_goto(bo, HMM_BO_PAGE_ALLOCED, status_err);
- bo->pages = kcalloc(bo->pgnr, sizeof(struct page *), GFP_KERNEL);
+ bo->pages = kzalloc_objs(struct page *, bo->pgnr, GFP_KERNEL);
if (unlikely(!bo->pages)) {
ret = -ENOMEM;
goto alloc_err;
diff --git a/drivers/staging/media/atomisp/pci/isp/kernels/sdis/sdis_1.0/ia_css_sdis.host.c b/drivers/staging/media/atomisp/pci/isp/kernels/sdis/sdis_1.0/ia_css_sdis.host.c
index a1bea8bd1a39..473e71e1bb59 100644
--- a/drivers/staging/media/atomisp/pci/isp/kernels/sdis/sdis_1.0/ia_css_sdis.host.c
+++ b/drivers/staging/media/atomisp/pci/isp/kernels/sdis/sdis_1.0/ia_css_sdis.host.c
@@ -309,7 +309,7 @@ ia_css_isp_dvs_statistics_allocate(
if (!grid->enable)
return NULL;
- me = kvcalloc(1, sizeof(*me), GFP_KERNEL);
+ me = kvzalloc_objs(*me, 1, GFP_KERNEL);
if (!me)
goto err;
@@ -350,7 +350,7 @@ ia_css_isp_dvs_statistics_map_allocate(
* so we use a local char * instead. */
char *base_ptr;
- me = kvmalloc(sizeof(*me), GFP_KERNEL);
+ me = kvmalloc_obj(*me, GFP_KERNEL);
if (!me) {
IA_CSS_LOG("cannot allocate memory");
goto err;
diff --git a/drivers/staging/media/atomisp/pci/isp/kernels/sdis/sdis_2/ia_css_sdis2.host.c b/drivers/staging/media/atomisp/pci/isp/kernels/sdis/sdis_2/ia_css_sdis2.host.c
index 027eae0ca69e..f84ee4c683f4 100644
--- a/drivers/staging/media/atomisp/pci/isp/kernels/sdis/sdis_2/ia_css_sdis2.host.c
+++ b/drivers/staging/media/atomisp/pci/isp/kernels/sdis/sdis_2/ia_css_sdis2.host.c
@@ -274,7 +274,7 @@ ia_css_isp_dvs2_statistics_allocate(
if (!grid->enable)
return NULL;
- me = kvcalloc(1, sizeof(*me), GFP_KERNEL);
+ me = kvzalloc_objs(*me, 1, GFP_KERNEL);
if (!me)
goto err;
diff --git a/drivers/staging/media/atomisp/pci/runtime/frame/src/frame.c b/drivers/staging/media/atomisp/pci/runtime/frame/src/frame.c
index 2cb96f9a6030..2217e3623a23 100644
--- a/drivers/staging/media/atomisp/pci/runtime/frame/src/frame.c
+++ b/drivers/staging/media/atomisp/pci/runtime/frame/src/frame.c
@@ -650,7 +650,7 @@ static struct ia_css_frame *frame_create(unsigned int width,
unsigned int raw_bit_depth,
bool valid)
{
- struct ia_css_frame *me = kvmalloc(sizeof(*me), GFP_KERNEL);
+ struct ia_css_frame *me = kvmalloc_obj(*me, GFP_KERNEL);
if (!me)
return NULL;
diff --git a/drivers/staging/media/atomisp/pci/runtime/pipeline/src/pipeline.c b/drivers/staging/media/atomisp/pci/runtime/pipeline/src/pipeline.c
index cb8d652227a7..2a1ba0a9c916 100644
--- a/drivers/staging/media/atomisp/pci/runtime/pipeline/src/pipeline.c
+++ b/drivers/staging/media/atomisp/pci/runtime/pipeline/src/pipeline.c
@@ -579,7 +579,7 @@ static int pipeline_stage_create(
out_frame[i] = stage_desc->out_frame[i];
}
- stage = kvzalloc(sizeof(*stage), GFP_KERNEL);
+ stage = kvzalloc_obj(*stage, GFP_KERNEL);
if (!stage) {
err = -ENOMEM;
goto ERR;
diff --git a/drivers/staging/media/atomisp/pci/sh_css.c b/drivers/staging/media/atomisp/pci/sh_css.c
index 73bd87f43a8c..abf598b2811f 100644
--- a/drivers/staging/media/atomisp/pci/sh_css.c
+++ b/drivers/staging/media/atomisp/pci/sh_css.c
@@ -1880,7 +1880,7 @@ create_pipe(enum ia_css_pipe_mode mode,
return -EINVAL;
}
- me = kmalloc(sizeof(*me), GFP_KERNEL);
+ me = kmalloc_obj(*me, GFP_KERNEL);
if (!me)
return -ENOMEM;
@@ -4530,16 +4530,17 @@ static int load_video_binaries(struct ia_css_pipe *pipe)
if (err)
return err;
mycs->num_yuv_scaler = cas_scaler_descr.num_stage;
- mycs->yuv_scaler_binary = kcalloc(cas_scaler_descr.num_stage,
- sizeof(struct ia_css_binary),
- GFP_KERNEL);
+ mycs->yuv_scaler_binary = kzalloc_objs(struct ia_css_binary,
+ cas_scaler_descr.num_stage,
+ GFP_KERNEL);
if (!mycs->yuv_scaler_binary) {
mycs->num_yuv_scaler = 0;
err = -ENOMEM;
return err;
}
- mycs->is_output_stage = kcalloc(cas_scaler_descr.num_stage,
- sizeof(bool), GFP_KERNEL);
+ mycs->is_output_stage = kzalloc_objs(bool,
+ cas_scaler_descr.num_stage,
+ GFP_KERNEL);
if (!mycs->is_output_stage) {
err = -ENOMEM;
return err;
@@ -5110,16 +5111,17 @@ static int load_primary_binaries(
return err;
}
mycs->num_yuv_scaler = cas_scaler_descr.num_stage;
- mycs->yuv_scaler_binary = kcalloc(cas_scaler_descr.num_stage,
- sizeof(struct ia_css_binary),
- GFP_KERNEL);
+ mycs->yuv_scaler_binary = kzalloc_objs(struct ia_css_binary,
+ cas_scaler_descr.num_stage,
+ GFP_KERNEL);
if (!mycs->yuv_scaler_binary) {
err = -ENOMEM;
IA_CSS_LEAVE_ERR_PRIVATE(err);
return err;
}
- mycs->is_output_stage = kcalloc(cas_scaler_descr.num_stage,
- sizeof(bool), GFP_KERNEL);
+ mycs->is_output_stage = kzalloc_objs(bool,
+ cas_scaler_descr.num_stage,
+ GFP_KERNEL);
if (!mycs->is_output_stage) {
err = -ENOMEM;
IA_CSS_LEAVE_ERR_PRIVATE(err);
@@ -5970,9 +5972,8 @@ ia_css_pipe_create_cas_scaler_desc(struct ia_css_pipe *pipe,
descr->num_stage = num_stages;
- descr->in_info = kmalloc_array(descr->num_stage,
- sizeof(struct ia_css_frame_info),
- GFP_KERNEL);
+ descr->in_info = kmalloc_objs(struct ia_css_frame_info,
+ descr->num_stage, GFP_KERNEL);
if (!descr->in_info) {
err = -ENOMEM;
goto ERR;
@@ -6143,15 +6144,16 @@ load_yuvpp_binaries(struct ia_css_pipe *pipe)
goto ERR;
mycs->num_output = cas_scaler_descr.num_output_stage;
mycs->num_yuv_scaler = cas_scaler_descr.num_stage;
- mycs->yuv_scaler_binary = kcalloc(cas_scaler_descr.num_stage,
- sizeof(struct ia_css_binary),
- GFP_KERNEL);
+ mycs->yuv_scaler_binary = kzalloc_objs(struct ia_css_binary,
+ cas_scaler_descr.num_stage,
+ GFP_KERNEL);
if (!mycs->yuv_scaler_binary) {
err = -ENOMEM;
goto ERR;
}
- mycs->is_output_stage = kcalloc(cas_scaler_descr.num_stage,
- sizeof(bool), GFP_KERNEL);
+ mycs->is_output_stage = kzalloc_objs(bool,
+ cas_scaler_descr.num_stage,
+ GFP_KERNEL);
if (!mycs->is_output_stage) {
err = -ENOMEM;
goto ERR;
@@ -6250,9 +6252,8 @@ load_yuvpp_binaries(struct ia_css_pipe *pipe)
mycs->num_vf_pp = 1;
}
- mycs->vf_pp_binary = kcalloc(mycs->num_vf_pp,
- sizeof(struct ia_css_binary),
- GFP_KERNEL);
+ mycs->vf_pp_binary = kzalloc_objs(struct ia_css_binary, mycs->num_vf_pp,
+ GFP_KERNEL);
if (!mycs->vf_pp_binary) {
err = -ENOMEM;
goto ERR;
@@ -7909,7 +7910,7 @@ ia_css_stream_create(const struct ia_css_stream_config *stream_config,
}
/* allocate the stream instance */
- curr_stream = kzalloc(sizeof(struct ia_css_stream), GFP_KERNEL);
+ curr_stream = kzalloc_obj(struct ia_css_stream, GFP_KERNEL);
if (!curr_stream) {
err = -ENOMEM;
IA_CSS_LEAVE_ERR(err);
@@ -7920,7 +7921,8 @@ ia_css_stream_create(const struct ia_css_stream_config *stream_config,
/* allocate pipes */
curr_stream->num_pipes = num_pipes;
- curr_stream->pipes = kcalloc(num_pipes, sizeof(struct ia_css_pipe *), GFP_KERNEL);
+ curr_stream->pipes = kzalloc_objs(struct ia_css_pipe *, num_pipes,
+ GFP_KERNEL);
if (!curr_stream->pipes) {
curr_stream->num_pipes = 0;
kfree(curr_stream);
diff --git a/drivers/staging/media/atomisp/pci/sh_css_firmware.c b/drivers/staging/media/atomisp/pci/sh_css_firmware.c
index bed599223717..a2a8a46c628b 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_firmware.c
+++ b/drivers/staging/media/atomisp/pci/sh_css_firmware.c
@@ -262,8 +262,8 @@ sh_css_load_firmware(struct device *dev, const char *fw_data,
sh_css_blob_info = NULL;
}
- fw_minibuffer = kcalloc(sh_css_num_binaries, sizeof(struct fw_param),
- GFP_KERNEL);
+ fw_minibuffer = kzalloc_objs(struct fw_param, sh_css_num_binaries,
+ GFP_KERNEL);
if (!fw_minibuffer)
return -ENOMEM;
diff --git a/drivers/staging/media/atomisp/pci/sh_css_host_data.c b/drivers/staging/media/atomisp/pci/sh_css_host_data.c
index 39efd8933034..c9400600c241 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_host_data.c
+++ b/drivers/staging/media/atomisp/pci/sh_css_host_data.c
@@ -12,7 +12,7 @@ struct ia_css_host_data *ia_css_host_data_allocate(size_t size)
{
struct ia_css_host_data *me;
- me = kmalloc(sizeof(struct ia_css_host_data), GFP_KERNEL);
+ me = kmalloc_obj(struct ia_css_host_data, GFP_KERNEL);
if (!me)
return NULL;
me->size = (uint32_t)size;
diff --git a/drivers/staging/media/atomisp/pci/sh_css_param_dvs.c b/drivers/staging/media/atomisp/pci/sh_css_param_dvs.c
index 7fa4aab35b06..19f1b71a5c06 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_param_dvs.c
+++ b/drivers/staging/media/atomisp/pci/sh_css_param_dvs.c
@@ -22,8 +22,7 @@ alloc_dvs_6axis_table(const struct ia_css_resolution *frame_res,
int err = 0;
struct ia_css_dvs_6axis_config *dvs_config = NULL;
- dvs_config = kvmalloc(sizeof(struct ia_css_dvs_6axis_config),
- GFP_KERNEL);
+ dvs_config = kvmalloc_obj(struct ia_css_dvs_6axis_config, GFP_KERNEL);
if (!dvs_config) {
IA_CSS_ERROR("out of memory");
err = -ENOMEM;
diff --git a/drivers/staging/media/atomisp/pci/sh_css_param_shading.c b/drivers/staging/media/atomisp/pci/sh_css_param_shading.c
index 513e272f2fdc..e9ce4ef6a991 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_param_shading.c
+++ b/drivers/staging/media/atomisp/pci/sh_css_param_shading.c
@@ -328,7 +328,7 @@ ia_css_shading_table_alloc(
IA_CSS_ENTER("");
- me = kmalloc(sizeof(*me), GFP_KERNEL);
+ me = kmalloc_obj(*me, GFP_KERNEL);
if (!me)
return me;
diff --git a/drivers/staging/media/atomisp/pci/sh_css_params.c b/drivers/staging/media/atomisp/pci/sh_css_params.c
index 11d62313c908..ab9ab7b2f177 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_params.c
+++ b/drivers/staging/media/atomisp/pci/sh_css_params.c
@@ -1369,7 +1369,7 @@ struct ia_css_morph_table *ia_css_morph_table_allocate(
IA_CSS_ENTER("");
- me = kvmalloc(sizeof(*me), GFP_KERNEL);
+ me = kvmalloc_obj(*me, GFP_KERNEL);
if (!me) {
IA_CSS_ERROR("out of memory");
return me;
@@ -1516,7 +1516,7 @@ ia_css_isp_3a_statistics_map_allocate(
* so we use a local char * instead. */
char *base_ptr;
- me = kvmalloc(sizeof(*me), GFP_KERNEL);
+ me = kvmalloc_obj(*me, GFP_KERNEL);
if (!me) {
IA_CSS_LEAVE("cannot allocate memory");
goto err;
@@ -2136,7 +2136,7 @@ ia_css_isp_3a_statistics_allocate(const struct ia_css_3a_grid_info *grid)
if (!grid->enable)
return NULL;
- me = kvcalloc(1, sizeof(*me), GFP_KERNEL);
+ me = kvzalloc_objs(*me, 1, GFP_KERNEL);
if (!me)
goto err;
@@ -2200,7 +2200,7 @@ ia_css_metadata_allocate(const struct ia_css_metadata_info *metadata_info)
if (metadata_info->size == 0)
return NULL;
- md = kvmalloc(sizeof(*md), GFP_KERNEL);
+ md = kvmalloc_obj(*md, GFP_KERNEL);
if (!md)
goto error;
@@ -2330,7 +2330,7 @@ sh_css_create_isp_params(struct ia_css_stream *stream,
int err;
size_t params_size;
struct ia_css_isp_parameters *params =
- kvmalloc(sizeof(struct ia_css_isp_parameters), GFP_KERNEL);
+ kvmalloc_obj(struct ia_css_isp_parameters, GFP_KERNEL);
if (!params) {
*isp_params_out = NULL;
@@ -4161,7 +4161,7 @@ ia_css_3a_statistics_allocate(const struct ia_css_3a_grid_info *grid)
assert(grid);
- me = kvcalloc(1, sizeof(*me), GFP_KERNEL);
+ me = kvzalloc_objs(*me, 1, GFP_KERNEL);
if (!me)
goto err;
@@ -4201,7 +4201,7 @@ ia_css_dvs_statistics_allocate(const struct ia_css_dvs_grid_info *grid)
assert(grid);
- me = kvcalloc(1, sizeof(*me), GFP_KERNEL);
+ me = kvzalloc_objs(*me, 1, GFP_KERNEL);
if (!me)
goto err;
@@ -4239,7 +4239,7 @@ ia_css_dvs_coefficients_allocate(const struct ia_css_dvs_grid_info *grid)
assert(grid);
- me = kvcalloc(1, sizeof(*me), GFP_KERNEL);
+ me = kvzalloc_objs(*me, 1, GFP_KERNEL);
if (!me)
goto err;
@@ -4280,7 +4280,7 @@ ia_css_dvs2_statistics_allocate(const struct ia_css_dvs_grid_info *grid)
assert(grid);
- me = kvcalloc(1, sizeof(*me), GFP_KERNEL);
+ me = kvzalloc_objs(*me, 1, GFP_KERNEL);
if (!me)
goto err;
@@ -4371,7 +4371,7 @@ ia_css_dvs2_coefficients_allocate(const struct ia_css_dvs_grid_info *grid)
assert(grid);
- me = kvcalloc(1, sizeof(*me), GFP_KERNEL);
+ me = kvzalloc_objs(*me, 1, GFP_KERNEL);
if (!me)
goto err;
@@ -4464,8 +4464,8 @@ ia_css_dvs2_6axis_config_allocate(const struct ia_css_stream *stream)
if (!params || !params->pipe_dvs_6axis_config[IA_CSS_PIPE_ID_VIDEO])
goto err;
- dvs_config = kvcalloc(1, sizeof(struct ia_css_dvs_6axis_config),
- GFP_KERNEL);
+ dvs_config = kvzalloc_objs(struct ia_css_dvs_6axis_config, 1,
+ GFP_KERNEL);
if (!dvs_config)
goto err;
diff --git a/drivers/staging/media/av7110/av7110.c b/drivers/staging/media/av7110/av7110.c
index 602342d1174f..bdd3cc28e364 100644
--- a/drivers/staging/media/av7110/av7110.c
+++ b/drivers/staging/media/av7110/av7110.c
@@ -2424,7 +2424,7 @@ static int av7110_attach(struct saa7146_dev *dev,
}
/* prepare the av7110 device struct */
- av7110 = kzalloc(sizeof(*av7110), GFP_KERNEL);
+ av7110 = kzalloc_obj(*av7110, GFP_KERNEL);
if (!av7110) {
dprintk(1, "out of memory\n");
return -ENOMEM;
diff --git a/drivers/staging/media/av7110/sp8870.c b/drivers/staging/media/av7110/sp8870.c
index 93bf47a62e38..2254a5f3a351 100644
--- a/drivers/staging/media/av7110/sp8870.c
+++ b/drivers/staging/media/av7110/sp8870.c
@@ -563,7 +563,7 @@ struct dvb_frontend *sp8870_attach(const struct sp8870_config *config,
struct sp8870_state *state = NULL;
/* allocate memory for the internal state */
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
goto error;
diff --git a/drivers/staging/media/imx/imx-media-csc-scaler.c b/drivers/staging/media/imx/imx-media-csc-scaler.c
index 0a27330f9790..f068ead6c088 100644
--- a/drivers/staging/media/imx/imx-media-csc-scaler.c
+++ b/drivers/staging/media/imx/imx-media-csc-scaler.c
@@ -124,7 +124,7 @@ static void device_run(void *_ctx)
src_buf = v4l2_m2m_next_src_buf(ctx->fh.m2m_ctx);
dst_buf = v4l2_m2m_next_dst_buf(ctx->fh.m2m_ctx);
- run = kzalloc(sizeof(*run), GFP_KERNEL);
+ run = kzalloc_obj(*run, GFP_KERNEL);
if (!run)
goto err;
@@ -756,7 +756,7 @@ static int ipu_csc_scaler_open(struct file *file)
struct ipu_csc_scaler_ctx *ctx = NULL;
int ret;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -880,7 +880,7 @@ imx_media_csc_scaler_device_init(struct imx_media_dev *md)
struct video_device *vfd;
int ret;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/staging/media/ipu3/ipu3-css-fw.c b/drivers/staging/media/ipu3/ipu3-css-fw.c
index 37482b626c3c..0f242dd27288 100644
--- a/drivers/staging/media/ipu3/ipu3-css-fw.c
+++ b/drivers/staging/media/ipu3/ipu3-css-fw.c
@@ -236,7 +236,7 @@ int imgu_css_fw_init(struct imgu_css *css)
/* Allocate and map fw binaries into IMGU */
- css->binary = kcalloc(binary_nr, sizeof(*css->binary), GFP_KERNEL);
+ css->binary = kzalloc_objs(*css->binary, binary_nr, GFP_KERNEL);
if (!css->binary) {
r = -ENOMEM;
goto error_out;
diff --git a/drivers/staging/media/ipu3/ipu3-css.c b/drivers/staging/media/ipu3/ipu3-css.c
index 777cac1c27bf..3fb863043c71 100644
--- a/drivers/staging/media/ipu3/ipu3-css.c
+++ b/drivers/staging/media/ipu3/ipu3-css.c
@@ -1702,7 +1702,7 @@ int imgu_css_fmt_try(struct imgu_css *css,
struct v4l2_pix_format_mplane *in, *out, *vf;
int i, s, ret;
- q = kcalloc(IPU3_CSS_QUEUES, sizeof(struct imgu_css_queue), GFP_KERNEL);
+ q = kzalloc_objs(struct imgu_css_queue, IPU3_CSS_QUEUES, GFP_KERNEL);
if (!q)
return -ENOMEM;
diff --git a/drivers/staging/media/ipu3/ipu3-dmamap.c b/drivers/staging/media/ipu3/ipu3-dmamap.c
index 8a19b0024152..9f6025aa8a1f 100644
--- a/drivers/staging/media/ipu3/ipu3-dmamap.c
+++ b/drivers/staging/media/ipu3/ipu3-dmamap.c
@@ -39,7 +39,7 @@ static struct page **imgu_dmamap_alloc_buffer(size_t size, gfp_t gfp)
const gfp_t high_order_gfp = __GFP_NOWARN | __GFP_NORETRY;
/* Allocate mem for array of page ptrs */
- pages = kvmalloc_array(count, sizeof(*pages), GFP_KERNEL);
+ pages = kvmalloc_objs(*pages, count, GFP_KERNEL);
if (!pages)
return NULL;
diff --git a/drivers/staging/media/ipu3/ipu3-mmu.c b/drivers/staging/media/ipu3/ipu3-mmu.c
index cb9bf5fb29a5..03583d37fdd0 100644
--- a/drivers/staging/media/ipu3/ipu3-mmu.c
+++ b/drivers/staging/media/ipu3/ipu3-mmu.c
@@ -429,7 +429,7 @@ struct imgu_mmu_info *imgu_mmu_init(struct device *parent, void __iomem *base)
struct imgu_mmu *mmu;
u32 pteval;
- mmu = kzalloc(sizeof(*mmu), GFP_KERNEL);
+ mmu = kzalloc_obj(*mmu, GFP_KERNEL);
if (!mmu)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/staging/media/ipu7/ipu7-bus.c b/drivers/staging/media/ipu7/ipu7-bus.c
index 7da44fde002a..583825d15230 100644
--- a/drivers/staging/media/ipu7/ipu7-bus.c
+++ b/drivers/staging/media/ipu7/ipu7-bus.c
@@ -89,7 +89,7 @@ ipu7_bus_initialize_device(struct pci_dev *pdev, struct device *parent,
struct ipu7_device *isp = pci_get_drvdata(pdev);
int ret;
- adev = kzalloc(sizeof(*adev), GFP_KERNEL);
+ adev = kzalloc_obj(*adev, GFP_KERNEL);
if (!adev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/staging/media/ipu7/ipu7-dma.c b/drivers/staging/media/ipu7/ipu7-dma.c
index a118b41b2f34..4f934e4c930b 100644
--- a/drivers/staging/media/ipu7/ipu7-dma.c
+++ b/drivers/staging/media/ipu7/ipu7-dma.c
@@ -164,7 +164,7 @@ void *ipu7_dma_alloc(struct ipu7_bus_device *sys, size_t size,
unsigned int i;
int ret;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return NULL;
diff --git a/drivers/staging/media/ipu7/ipu7-mmu.c b/drivers/staging/media/ipu7/ipu7-mmu.c
index ea35cce4830a..dfed9872bdfd 100644
--- a/drivers/staging/media/ipu7/ipu7-mmu.c
+++ b/drivers/staging/media/ipu7/ipu7-mmu.c
@@ -584,7 +584,7 @@ static struct ipu7_mmu_info *ipu7_mmu_alloc(struct ipu7_device *isp)
struct ipu7_mmu_info *mmu_info;
int ret;
- mmu_info = kzalloc(sizeof(*mmu_info), GFP_KERNEL);
+ mmu_info = kzalloc_obj(*mmu_info, GFP_KERNEL);
if (!mmu_info)
return NULL;
@@ -654,7 +654,7 @@ static struct ipu7_dma_mapping *alloc_dma_mapping(struct ipu7_device *isp)
struct ipu7_dma_mapping *dmap;
unsigned long base_pfn;
- dmap = kzalloc(sizeof(*dmap), GFP_KERNEL);
+ dmap = kzalloc_obj(*dmap, GFP_KERNEL);
if (!dmap)
return NULL;
diff --git a/drivers/staging/media/ipu7/ipu7.c b/drivers/staging/media/ipu7/ipu7.c
index fa5a1867626f..47b859e1fa0f 100644
--- a/drivers/staging/media/ipu7/ipu7.c
+++ b/drivers/staging/media/ipu7/ipu7.c
@@ -2150,7 +2150,7 @@ ipu7_isys_init(struct pci_dev *pdev, struct device *parent,
}
}
- pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
+ pdata = kzalloc_obj(*pdata, GFP_KERNEL);
if (!pdata)
return ERR_PTR(-ENOMEM);
@@ -2197,7 +2197,7 @@ ipu7_psys_init(struct pci_dev *pdev, struct device *parent,
struct ipu7_psys_pdata *pdata;
int ret;
- pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
+ pdata = kzalloc_obj(*pdata, GFP_KERNEL);
if (!pdata)
return ERR_PTR(-ENOMEM);
@@ -2271,7 +2271,7 @@ static int ipu7_map_fw_code_region(struct ipu7_bus_device *sys,
n_pages = PFN_UP(size);
- pages = kmalloc_array(n_pages, sizeof(*pages), GFP_KERNEL);
+ pages = kmalloc_objs(*pages, n_pages, GFP_KERNEL);
if (!pages)
return -ENOMEM;
diff --git a/drivers/staging/media/meson/vdec/codec_h264.c b/drivers/staging/media/meson/vdec/codec_h264.c
index c61128fc4bb9..bafa7e99abf1 100644
--- a/drivers/staging/media/meson/vdec/codec_h264.c
+++ b/drivers/staging/media/meson/vdec/codec_h264.c
@@ -233,7 +233,7 @@ static int codec_h264_load_extended_firmware(struct amvdec_session *sess,
if (len < SIZE_EXT_FW)
return -EINVAL;
- h264 = kzalloc(sizeof(*h264), GFP_KERNEL);
+ h264 = kzalloc_obj(*h264, GFP_KERNEL);
if (!h264)
return -ENOMEM;
diff --git a/drivers/staging/media/meson/vdec/codec_mpeg12.c b/drivers/staging/media/meson/vdec/codec_mpeg12.c
index 48869cc3d973..01adf66fb50a 100644
--- a/drivers/staging/media/meson/vdec/codec_mpeg12.c
+++ b/drivers/staging/media/meson/vdec/codec_mpeg12.c
@@ -66,7 +66,7 @@ static int codec_mpeg12_start(struct amvdec_session *sess)
struct codec_mpeg12 *mpeg12;
int ret;
- mpeg12 = kzalloc(sizeof(*mpeg12), GFP_KERNEL);
+ mpeg12 = kzalloc_obj(*mpeg12, GFP_KERNEL);
if (!mpeg12)
return -ENOMEM;
diff --git a/drivers/staging/media/meson/vdec/codec_vp9.c b/drivers/staging/media/meson/vdec/codec_vp9.c
index 394df5761556..c82f7be67bc5 100644
--- a/drivers/staging/media/meson/vdec/codec_vp9.c
+++ b/drivers/staging/media/meson/vdec/codec_vp9.c
@@ -762,7 +762,7 @@ static int codec_vp9_start(struct amvdec_session *sess)
int i;
int ret;
- vp9 = kzalloc(sizeof(*vp9), GFP_KERNEL);
+ vp9 = kzalloc_obj(*vp9, GFP_KERNEL);
if (!vp9)
return -ENOMEM;
@@ -1192,7 +1192,7 @@ static struct vp9_frame *codec_vp9_get_new_frame(struct amvdec_session *sess)
struct vb2_v4l2_buffer *vbuf;
struct vp9_frame *new_frame;
- new_frame = kzalloc(sizeof(*new_frame), GFP_KERNEL);
+ new_frame = kzalloc_obj(*new_frame, GFP_KERNEL);
if (!new_frame)
return NULL;
diff --git a/drivers/staging/media/meson/vdec/vdec.c b/drivers/staging/media/meson/vdec/vdec.c
index 49e497a32973..befd3c3762cc 100644
--- a/drivers/staging/media/meson/vdec/vdec.c
+++ b/drivers/staging/media/meson/vdec/vdec.c
@@ -132,7 +132,7 @@ vdec_queue_recycle(struct amvdec_session *sess, struct vb2_buffer *vb)
{
struct amvdec_buffer *new_buf;
- new_buf = kmalloc(sizeof(*new_buf), GFP_KERNEL);
+ new_buf = kmalloc_obj(*new_buf, GFP_KERNEL);
if (!new_buf)
return;
new_buf->vb = vb;
@@ -867,7 +867,7 @@ static int vdec_open(struct file *file)
struct amvdec_session *sess;
int ret;
- sess = kzalloc(sizeof(*sess), GFP_KERNEL);
+ sess = kzalloc_obj(*sess, GFP_KERNEL);
if (!sess)
return -ENOMEM;
diff --git a/drivers/staging/media/meson/vdec/vdec_helpers.c b/drivers/staging/media/meson/vdec/vdec_helpers.c
index 7d2a75653250..86ed5b8113d2 100644
--- a/drivers/staging/media/meson/vdec/vdec_helpers.c
+++ b/drivers/staging/media/meson/vdec/vdec_helpers.c
@@ -233,7 +233,7 @@ int amvdec_add_ts(struct amvdec_session *sess, u64 ts,
struct amvdec_timestamp *new_ts;
unsigned long flags;
- new_ts = kzalloc(sizeof(*new_ts), GFP_KERNEL);
+ new_ts = kzalloc_obj(*new_ts, GFP_KERNEL);
if (!new_ts)
return -ENOMEM;
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c b/drivers/staging/media/sunxi/cedrus/cedrus.c
index bff42ea1871f..accaee635d21 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus.c
@@ -359,7 +359,7 @@ static int cedrus_open(struct file *file)
if (mutex_lock_interruptible(&dev->dev_mutex))
return -ERESTARTSYS;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
mutex_unlock(&dev->dev_mutex);
return -ENOMEM;
diff --git a/drivers/staging/media/tegra-video/csi.c b/drivers/staging/media/tegra-video/csi.c
index 3c3f6e3fd1ec..98e3a97ee658 100644
--- a/drivers/staging/media/tegra-video/csi.c
+++ b/drivers/staging/media/tegra-video/csi.c
@@ -463,7 +463,7 @@ static int tegra_csi_channel_alloc(struct tegra_csi *csi,
struct tegra_csi_channel *chan;
int ret = 0, i;
- chan = kzalloc(sizeof(*chan), GFP_KERNEL);
+ chan = kzalloc_obj(*chan, GFP_KERNEL);
if (!chan)
return -ENOMEM;
diff --git a/drivers/staging/media/tegra-video/vi.c b/drivers/staging/media/tegra-video/vi.c
index 14b327afe045..a86d0223f6c3 100644
--- a/drivers/staging/media/tegra-video/vi.c
+++ b/drivers/staging/media/tegra-video/vi.c
@@ -1209,7 +1209,7 @@ static int tegra_vi_channel_alloc(struct tegra_vi *vi, unsigned int port_num,
* be holding the device node open. Channel memory allocated
* with kzalloc is freed during video device release callback.
*/
- chan = kzalloc(sizeof(*chan), GFP_KERNEL);
+ chan = kzalloc_obj(*chan, GFP_KERNEL);
if (!chan)
return -ENOMEM;
diff --git a/drivers/staging/media/tegra-video/video.c b/drivers/staging/media/tegra-video/video.c
index 68783d5ffeb1..06d85292c0d2 100644
--- a/drivers/staging/media/tegra-video/video.c
+++ b/drivers/staging/media/tegra-video/video.c
@@ -46,7 +46,7 @@ static int host1x_video_probe(struct host1x_device *dev)
struct tegra_video_device *vid;
int ret;
- vid = kzalloc(sizeof(*vid), GFP_KERNEL);
+ vid = kzalloc_obj(*vid, GFP_KERNEL);
if (!vid)
return -ENOMEM;
diff --git a/drivers/staging/most/dim2/dim2.c b/drivers/staging/most/dim2/dim2.c
index 80af965356d0..16b1aca26333 100644
--- a/drivers/staging/most/dim2/dim2.c
+++ b/drivers/staging/most/dim2/dim2.c
@@ -759,7 +759,7 @@ static int dim2_probe(struct platform_device *pdev)
enum { MLB_INT_IDX, AHB0_INT_IDX };
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/staging/most/video/video.c b/drivers/staging/most/video/video.c
index 8eeae209ff1c..b0d7216f5ab5 100644
--- a/drivers/staging/most/video/video.c
+++ b/drivers/staging/most/video/video.c
@@ -84,7 +84,7 @@ static int comp_vdev_open(struct file *filp)
return -EINVAL;
}
- fh = kzalloc(sizeof(*fh), GFP_KERNEL);
+ fh = kzalloc_obj(*fh, GFP_KERNEL);
if (!fh)
return -ENOMEM;
@@ -474,7 +474,7 @@ static int comp_probe_channel(struct most_interface *iface, int channel_idx,
return -EINVAL;
}
- mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
+ mdev = kzalloc_obj(*mdev, GFP_KERNEL);
if (!mdev)
return -ENOMEM;
diff --git a/drivers/staging/nvec/nvec_ps2.c b/drivers/staging/nvec/nvec_ps2.c
index 2db57795ea2f..3422a5213803 100644
--- a/drivers/staging/nvec/nvec_ps2.c
+++ b/drivers/staging/nvec/nvec_ps2.c
@@ -102,7 +102,7 @@ static int nvec_mouse_probe(struct platform_device *pdev)
struct nvec_chip *nvec = dev_get_drvdata(pdev->dev.parent);
struct serio *ser_dev;
- ser_dev = kzalloc(sizeof(*ser_dev), GFP_KERNEL);
+ ser_dev = kzalloc_obj(*ser_dev, GFP_KERNEL);
if (!ser_dev)
return -ENOMEM;
diff --git a/drivers/staging/rtl8723bs/core/rtw_ap.c b/drivers/staging/rtl8723bs/core/rtw_ap.c
index ebe73abab892..a90b117906ce 100644
--- a/drivers/staging/rtl8723bs/core/rtw_ap.c
+++ b/drivers/staging/rtl8723bs/core/rtw_ap.c
@@ -1229,13 +1229,13 @@ u8 rtw_ap_set_pairwise_key(struct adapter *padapter, struct sta_info *psta)
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
u8 res = _SUCCESS;
- ph2c = kzalloc(sizeof(*ph2c), GFP_KERNEL);
+ ph2c = kzalloc_obj(*ph2c, GFP_KERNEL);
if (!ph2c) {
res = _FAIL;
goto exit;
}
- psetstakey_para = kzalloc(sizeof(*psetstakey_para), GFP_KERNEL);
+ psetstakey_para = kzalloc_obj(*psetstakey_para, GFP_KERNEL);
if (!psetstakey_para) {
kfree(ph2c);
res = _FAIL;
@@ -1269,12 +1269,12 @@ static int rtw_ap_set_key(struct adapter *padapter,
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
int res = _SUCCESS;
- pcmd = kzalloc(sizeof(*pcmd), GFP_KERNEL);
+ pcmd = kzalloc_obj(*pcmd, GFP_KERNEL);
if (!pcmd) {
res = _FAIL;
goto exit;
}
- psetkeyparm = kzalloc(sizeof(*psetkeyparm), GFP_KERNEL);
+ psetkeyparm = kzalloc_obj(*psetkeyparm, GFP_KERNEL);
if (!psetkeyparm) {
kfree(pcmd);
res = _FAIL;
diff --git a/drivers/staging/rtl8723bs/core/rtw_cmd.c b/drivers/staging/rtl8723bs/core/rtw_cmd.c
index b2e7f479f72b..59f4e12535f9 100644
--- a/drivers/staging/rtl8723bs/core/rtw_cmd.c
+++ b/drivers/staging/rtl8723bs/core/rtw_cmd.c
@@ -533,11 +533,11 @@ u8 rtw_sitesurvey_cmd(struct adapter *padapter, struct ndis_802_11_ssid *ssid,
if (check_fwstate(pmlmepriv, _FW_LINKED))
rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_SCAN, 1);
- ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
+ ph2c = kzalloc_obj(*ph2c, GFP_ATOMIC);
if (!ph2c)
return _FAIL;
- psurveyPara = kzalloc(sizeof(*psurveyPara), GFP_ATOMIC);
+ psurveyPara = kzalloc_obj(*psurveyPara, GFP_ATOMIC);
if (!psurveyPara) {
kfree(ph2c);
return _FAIL;
@@ -601,7 +601,7 @@ u8 rtw_createbss_cmd(struct adapter *padapter)
struct wlan_bssid_ex *pdev_network = &padapter->registrypriv.dev_network;
u8 res = _SUCCESS;
- pcmd = kzalloc(sizeof(*pcmd), GFP_ATOMIC);
+ pcmd = kzalloc_obj(*pcmd, GFP_ATOMIC);
if (!pcmd) {
res = _FAIL;
goto exit;
@@ -634,7 +634,7 @@ int rtw_startbss_cmd(struct adapter *padapter, int flags)
start_bss_network(padapter);
} else {
/* need enqueue, prepare cmd_obj and enqueue */
- pcmd = kzalloc(sizeof(*pcmd), GFP_KERNEL);
+ pcmd = kzalloc_obj(*pcmd, GFP_KERNEL);
if (!pcmd) {
res = _FAIL;
goto exit;
@@ -686,7 +686,7 @@ u8 rtw_joinbss_cmd(struct adapter *padapter, struct wlan_network *pnetwork)
u32 tmp_len;
u8 *ptmp = NULL;
- pcmd = kzalloc(sizeof(*pcmd), GFP_KERNEL);
+ pcmd = kzalloc_obj(*pcmd, GFP_KERNEL);
if (!pcmd) {
res = _FAIL;
goto exit;
@@ -795,7 +795,7 @@ u8 rtw_disassoc_cmd(struct adapter *padapter, u32 deauth_timeout_ms, bool enqueu
u8 res = _SUCCESS;
/* prepare cmd parameter */
- param = kzalloc(sizeof(*param), GFP_KERNEL);
+ param = kzalloc_obj(*param, GFP_KERNEL);
if (!param) {
res = _FAIL;
goto exit;
@@ -804,7 +804,7 @@ u8 rtw_disassoc_cmd(struct adapter *padapter, u32 deauth_timeout_ms, bool enqueu
if (enqueue) {
/* need enqueue, prepare cmd_obj and enqueue */
- cmdobj = kzalloc(sizeof(*cmdobj), GFP_KERNEL);
+ cmdobj = kzalloc_obj(*cmdobj, GFP_KERNEL);
if (!cmdobj) {
res = _FAIL;
kfree(param);
@@ -831,7 +831,7 @@ u8 rtw_setopmode_cmd(struct adapter *padapter, enum ndis_802_11_network_infrast
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
u8 res = _SUCCESS;
- psetop = kzalloc(sizeof(*psetop), GFP_KERNEL);
+ psetop = kzalloc_obj(*psetop, GFP_KERNEL);
if (!psetop) {
res = _FAIL;
goto exit;
@@ -839,7 +839,7 @@ u8 rtw_setopmode_cmd(struct adapter *padapter, enum ndis_802_11_network_infrast
psetop->mode = (u8)networktype;
if (enqueue) {
- ph2c = kzalloc(sizeof(*ph2c), GFP_KERNEL);
+ ph2c = kzalloc_obj(*ph2c, GFP_KERNEL);
if (!ph2c) {
kfree(psetop);
res = _FAIL;
@@ -866,7 +866,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_
struct security_priv *psecuritypriv = &padapter->securitypriv;
u8 res = _SUCCESS;
- psetstakey_para = kzalloc(sizeof(*psetstakey_para), GFP_KERNEL);
+ psetstakey_para = kzalloc_obj(*psetstakey_para, GFP_KERNEL);
if (!psetstakey_para) {
res = _FAIL;
goto exit;
@@ -888,14 +888,14 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_
padapter->securitypriv.busetkipkey = true;
if (enqueue) {
- ph2c = kzalloc(sizeof(*ph2c), GFP_KERNEL);
+ ph2c = kzalloc_obj(*ph2c, GFP_KERNEL);
if (!ph2c) {
kfree(psetstakey_para);
res = _FAIL;
goto exit;
}
- psetstakey_rsp = kzalloc(sizeof(*psetstakey_rsp), GFP_KERNEL);
+ psetstakey_rsp = kzalloc_obj(*psetstakey_rsp, GFP_KERNEL);
if (!psetstakey_rsp) {
kfree(ph2c);
kfree(psetstakey_para);
@@ -933,20 +933,20 @@ u8 rtw_clearstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 enqueu
rtw_camid_free(padapter, cam_id);
}
} else {
- ph2c = kzalloc(sizeof(*ph2c), GFP_KERNEL);
+ ph2c = kzalloc_obj(*ph2c, GFP_KERNEL);
if (!ph2c) {
res = _FAIL;
goto exit;
}
- psetstakey_para = kzalloc(sizeof(*psetstakey_para), GFP_KERNEL);
+ psetstakey_para = kzalloc_obj(*psetstakey_para, GFP_KERNEL);
if (!psetstakey_para) {
kfree(ph2c);
res = _FAIL;
goto exit;
}
- psetstakey_rsp = kzalloc(sizeof(*psetstakey_rsp), GFP_KERNEL);
+ psetstakey_rsp = kzalloc_obj(*psetstakey_rsp, GFP_KERNEL);
if (!psetstakey_rsp) {
kfree(ph2c);
kfree(psetstakey_para);
@@ -976,13 +976,13 @@ u8 rtw_addbareq_cmd(struct adapter *padapter, u8 tid, u8 *addr)
u8 res = _SUCCESS;
- ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
+ ph2c = kzalloc_obj(*ph2c, GFP_ATOMIC);
if (!ph2c) {
res = _FAIL;
goto exit;
}
- paddbareq_parm = kzalloc(sizeof(*paddbareq_parm), GFP_ATOMIC);
+ paddbareq_parm = kzalloc_obj(*paddbareq_parm, GFP_ATOMIC);
if (!paddbareq_parm) {
kfree(ph2c);
res = _FAIL;
@@ -1009,13 +1009,13 @@ u8 rtw_reset_securitypriv_cmd(struct adapter *padapter)
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
u8 res = _SUCCESS;
- ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
+ ph2c = kzalloc_obj(*ph2c, GFP_ATOMIC);
if (!ph2c) {
res = _FAIL;
goto exit;
}
- pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
+ pdrvextra_cmd_parm = kzalloc_obj(*pdrvextra_cmd_parm, GFP_ATOMIC);
if (!pdrvextra_cmd_parm) {
kfree(ph2c);
res = _FAIL;
@@ -1042,13 +1042,13 @@ u8 rtw_free_assoc_resources_cmd(struct adapter *padapter)
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
u8 res = _SUCCESS;
- ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
+ ph2c = kzalloc_obj(*ph2c, GFP_ATOMIC);
if (!ph2c) {
res = _FAIL;
goto exit;
}
- pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
+ pdrvextra_cmd_parm = kzalloc_obj(*pdrvextra_cmd_parm, GFP_ATOMIC);
if (!pdrvextra_cmd_parm) {
kfree(ph2c);
res = _FAIL;
@@ -1076,13 +1076,13 @@ u8 rtw_dynamic_chk_wk_cmd(struct adapter *padapter)
u8 res = _SUCCESS;
/* only primary padapter does this cmd */
- ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
+ ph2c = kzalloc_obj(*ph2c, GFP_ATOMIC);
if (!ph2c) {
res = _FAIL;
goto exit;
}
- pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
+ pdrvextra_cmd_parm = kzalloc_obj(*pdrvextra_cmd_parm, GFP_ATOMIC);
if (!pdrvextra_cmd_parm) {
kfree(ph2c);
res = _FAIL;
@@ -1316,13 +1316,14 @@ u8 rtw_lps_ctrl_wk_cmd(struct adapter *padapter, u8 lps_ctrl_type, u8 enqueue)
u8 res = _SUCCESS;
if (enqueue) {
- ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
+ ph2c = kzalloc_obj(*ph2c, GFP_ATOMIC);
if (!ph2c) {
res = _FAIL;
goto exit;
}
- pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
+ pdrvextra_cmd_parm = kzalloc_obj(*pdrvextra_cmd_parm,
+ GFP_ATOMIC);
if (!pdrvextra_cmd_parm) {
kfree(ph2c);
res = _FAIL;
@@ -1357,13 +1358,13 @@ u8 rtw_dm_in_lps_wk_cmd(struct adapter *padapter)
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
u8 res = _SUCCESS;
- ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
+ ph2c = kzalloc_obj(*ph2c, GFP_ATOMIC);
if (!ph2c) {
res = _FAIL;
goto exit;
}
- pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
+ pdrvextra_cmd_parm = kzalloc_obj(*pdrvextra_cmd_parm, GFP_ATOMIC);
if (!pdrvextra_cmd_parm) {
kfree(ph2c);
res = _FAIL;
@@ -1419,13 +1420,13 @@ u8 rtw_dm_ra_mask_wk_cmd(struct adapter *padapter, u8 *psta)
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
u8 res = _SUCCESS;
- ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
+ ph2c = kzalloc_obj(*ph2c, GFP_ATOMIC);
if (!ph2c) {
res = _FAIL;
goto exit;
}
- pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
+ pdrvextra_cmd_parm = kzalloc_obj(*pdrvextra_cmd_parm, GFP_ATOMIC);
if (!pdrvextra_cmd_parm) {
kfree(ph2c);
res = _FAIL;
@@ -1453,13 +1454,13 @@ u8 rtw_ps_cmd(struct adapter *padapter)
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
u8 res = _SUCCESS;
- ppscmd = kzalloc(sizeof(*ppscmd), GFP_ATOMIC);
+ ppscmd = kzalloc_obj(*ppscmd, GFP_ATOMIC);
if (!ppscmd) {
res = _FAIL;
goto exit;
}
- pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
+ pdrvextra_cmd_parm = kzalloc_obj(*pdrvextra_cmd_parm, GFP_ATOMIC);
if (!pdrvextra_cmd_parm) {
kfree(ppscmd);
res = _FAIL;
@@ -1523,13 +1524,13 @@ u8 rtw_chk_hi_queue_cmd(struct adapter *padapter)
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
u8 res = _SUCCESS;
- ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
+ ph2c = kzalloc_obj(*ph2c, GFP_ATOMIC);
if (!ph2c) {
res = _FAIL;
goto exit;
}
- pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
+ pdrvextra_cmd_parm = kzalloc_obj(*pdrvextra_cmd_parm, GFP_ATOMIC);
if (!pdrvextra_cmd_parm) {
kfree(ph2c);
res = _FAIL;
@@ -1615,13 +1616,13 @@ u8 rtw_c2h_packet_wk_cmd(struct adapter *padapter, u8 *pbuf, u16 length)
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
u8 res = _SUCCESS;
- ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
+ ph2c = kzalloc_obj(*ph2c, GFP_ATOMIC);
if (!ph2c) {
res = _FAIL;
goto exit;
}
- pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
+ pdrvextra_cmd_parm = kzalloc_obj(*pdrvextra_cmd_parm, GFP_ATOMIC);
if (!pdrvextra_cmd_parm) {
kfree(ph2c);
res = _FAIL;
@@ -1650,13 +1651,13 @@ u8 rtw_c2h_wk_cmd(struct adapter *padapter, u8 *c2h_evt)
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
u8 res = _SUCCESS;
- ph2c = kzalloc(sizeof(*ph2c), GFP_KERNEL);
+ ph2c = kzalloc_obj(*ph2c, GFP_KERNEL);
if (!ph2c) {
res = _FAIL;
goto exit;
}
- pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_KERNEL);
+ pdrvextra_cmd_parm = kzalloc_obj(*pdrvextra_cmd_parm, GFP_KERNEL);
if (!pdrvextra_cmd_parm) {
kfree(ph2c);
res = _FAIL;
diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme.c b/drivers/staging/rtl8723bs/core/rtw_mlme.c
index 22dc36e8e38a..1bc90fa48d36 100644
--- a/drivers/staging/rtl8723bs/core/rtw_mlme.c
+++ b/drivers/staging/rtl8723bs/core/rtw_mlme.c
@@ -1875,13 +1875,13 @@ signed int rtw_set_auth(struct adapter *adapter, struct security_priv *psecurity
struct cmd_priv *pcmdpriv = &adapter->cmdpriv;
signed int res = _SUCCESS;
- pcmd = kzalloc(sizeof(*pcmd), GFP_KERNEL);
+ pcmd = kzalloc_obj(*pcmd, GFP_KERNEL);
if (!pcmd) {
res = _FAIL; /* try again */
goto exit;
}
- psetauthparm = kzalloc(sizeof(*psetauthparm), GFP_KERNEL);
+ psetauthparm = kzalloc_obj(*psetauthparm, GFP_KERNEL);
if (!psetauthparm) {
kfree(pcmd);
res = _FAIL;
@@ -1912,7 +1912,7 @@ signed int rtw_set_key(struct adapter *adapter, struct security_priv *psecurityp
struct cmd_priv *pcmdpriv = &adapter->cmdpriv;
signed int res = _SUCCESS;
- psetkeyparm = kzalloc(sizeof(*psetkeyparm), GFP_KERNEL);
+ psetkeyparm = kzalloc_obj(*psetkeyparm, GFP_KERNEL);
if (!psetkeyparm) {
res = _FAIL;
goto exit;
@@ -1954,7 +1954,7 @@ signed int rtw_set_key(struct adapter *adapter, struct security_priv *psecurityp
}
if (enqueue) {
- pcmd = kzalloc(sizeof(*pcmd), GFP_KERNEL);
+ pcmd = kzalloc_obj(*pcmd, GFP_KERNEL);
if (!pcmd) {
kfree(psetkeyparm);
res = _FAIL; /* try again */
diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c
index 78abc5f5191f..b1f20aa81efb 100644
--- a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c
+++ b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c
@@ -586,7 +586,7 @@ unsigned int OnBeacon(struct adapter *padapter, union recv_frame *precv_frame)
if (!memcmp(GetAddr3Ptr(pframe), get_my_bssid(&pmlmeinfo->network), ETH_ALEN)) {
if (pmlmeinfo->state & WIFI_FW_AUTH_NULL) {
/* we should update current network before auth, or some IE is wrong */
- pbss = kmalloc(sizeof(*pbss), GFP_ATOMIC);
+ pbss = kmalloc_obj(*pbss, GFP_ATOMIC);
if (pbss) {
if (collect_bss_info(padapter, precv_frame, pbss) == _SUCCESS) {
update_network(&(pmlmepriv->cur_network.network), pbss, padapter, true);
@@ -4376,7 +4376,7 @@ void report_survey_event(struct adapter *padapter, union recv_frame *precv_frame
pmlmeext = &padapter->mlmeextpriv;
pcmdpriv = &padapter->cmdpriv;
- pcmd_obj = kzalloc(sizeof(*pcmd_obj), GFP_ATOMIC);
+ pcmd_obj = kzalloc_obj(*pcmd_obj, GFP_ATOMIC);
if (!pcmd_obj)
return;
@@ -4429,7 +4429,7 @@ void report_surveydone_event(struct adapter *padapter)
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
- pcmd_obj = kzalloc(sizeof(*pcmd_obj), GFP_ATOMIC);
+ pcmd_obj = kzalloc_obj(*pcmd_obj, GFP_ATOMIC);
if (!pcmd_obj)
return;
@@ -4474,7 +4474,7 @@ void report_join_res(struct adapter *padapter, int res)
struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info;
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
- pcmd_obj = kzalloc(sizeof(*pcmd_obj), GFP_ATOMIC);
+ pcmd_obj = kzalloc_obj(*pcmd_obj, GFP_ATOMIC);
if (!pcmd_obj)
return;
@@ -4523,7 +4523,7 @@ void report_wmm_edca_update(struct adapter *padapter)
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
- pcmd_obj = kzalloc(sizeof(*pcmd_obj), GFP_ATOMIC);
+ pcmd_obj = kzalloc_obj(*pcmd_obj, GFP_ATOMIC);
if (!pcmd_obj)
return;
@@ -4569,7 +4569,7 @@ void report_del_sta_event(struct adapter *padapter, unsigned char *MacAddr, unsi
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
- pcmd_obj = kzalloc(sizeof(*pcmd_obj), GFP_ATOMIC);
+ pcmd_obj = kzalloc_obj(*pcmd_obj, GFP_ATOMIC);
if (!pcmd_obj)
return;
@@ -4620,7 +4620,7 @@ void report_add_sta_event(struct adapter *padapter, unsigned char *MacAddr, int
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
- pcmd_obj = kzalloc(sizeof(*pcmd_obj), GFP_ATOMIC);
+ pcmd_obj = kzalloc_obj(*pcmd_obj, GFP_ATOMIC);
if (!pcmd_obj)
return;
@@ -5074,11 +5074,11 @@ void survey_timer_hdl(struct timer_list *t)
pmlmeext->scan_abort = false;/* reset */
}
- ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
+ ph2c = kzalloc_obj(*ph2c, GFP_ATOMIC);
if (!ph2c)
return;
- psurveyPara = kzalloc(sizeof(*psurveyPara), GFP_ATOMIC);
+ psurveyPara = kzalloc_obj(*psurveyPara, GFP_ATOMIC);
if (!psurveyPara) {
kfree(ph2c);
return;
@@ -5689,7 +5689,7 @@ u8 chk_bmc_sleepq_cmd(struct adapter *padapter)
struct cmd_priv *pcmdpriv = &(padapter->cmdpriv);
u8 res = _SUCCESS;
- ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
+ ph2c = kzalloc_obj(*ph2c, GFP_ATOMIC);
if (!ph2c) {
res = _FAIL;
goto exit;
@@ -5713,13 +5713,13 @@ u8 set_tx_beacon_cmd(struct adapter *padapter)
u8 res = _SUCCESS;
int len_diff = 0;
- ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
+ ph2c = kzalloc_obj(*ph2c, GFP_ATOMIC);
if (!ph2c) {
res = _FAIL;
goto exit;
}
- ptxBeacon_parm = kzalloc(sizeof(*ptxBeacon_parm), GFP_ATOMIC);
+ ptxBeacon_parm = kzalloc_obj(*ptxBeacon_parm, GFP_ATOMIC);
if (!ptxBeacon_parm) {
kfree(ph2c);
res = _FAIL;
diff --git a/drivers/staging/rtl8723bs/core/rtw_wlan_util.c b/drivers/staging/rtl8723bs/core/rtw_wlan_util.c
index 9284657e23c2..aceb1bfde8a4 100644
--- a/drivers/staging/rtl8723bs/core/rtw_wlan_util.c
+++ b/drivers/staging/rtl8723bs/core/rtw_wlan_util.c
@@ -1131,7 +1131,7 @@ int rtw_check_bcn_info(struct adapter *Adapter, u8 *pframe, u32 packet_len)
if (memcmp(cur_network->network.mac_address, pbssid, 6))
return true;
- bssid = kzalloc(sizeof(*bssid), GFP_KERNEL);
+ bssid = kzalloc_obj(*bssid, GFP_KERNEL);
if (!bssid)
return true;
diff --git a/drivers/staging/rtl8723bs/core/rtw_xmit.c b/drivers/staging/rtl8723bs/core/rtw_xmit.c
index 222851e8d985..7b18be8912e6 100644
--- a/drivers/staging/rtl8723bs/core/rtw_xmit.c
+++ b/drivers/staging/rtl8723bs/core/rtw_xmit.c
@@ -1869,7 +1869,8 @@ s32 rtw_alloc_hwxmits(struct adapter *padapter)
pxmitpriv->hwxmits = NULL;
- pxmitpriv->hwxmits = kcalloc(pxmitpriv->hwxmit_entry, sizeof(*hwxmits), GFP_ATOMIC);
+ pxmitpriv->hwxmits = kzalloc_objs(*hwxmits, pxmitpriv->hwxmit_entry,
+ GFP_ATOMIC);
if (!pxmitpriv->hwxmits)
return _FAIL;
diff --git a/drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c b/drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c
index 54dbcea89491..64d3cbfb1244 100644
--- a/drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c
+++ b/drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c
@@ -306,10 +306,10 @@ s32 rtl8723b_FirmwareDownload(struct adapter *padapter, bool bUsedWoWLANFw)
u8 *fwfilepath;
u8 tmp_ps;
- pFirmware = kzalloc(sizeof(struct rt_firmware), GFP_KERNEL);
+ pFirmware = kzalloc_obj(struct rt_firmware, GFP_KERNEL);
if (!pFirmware)
return _FAIL;
- pBTFirmware = kzalloc(sizeof(struct rt_firmware), GFP_KERNEL);
+ pBTFirmware = kzalloc_obj(struct rt_firmware, GFP_KERNEL);
if (!pBTFirmware) {
kfree(pFirmware);
return _FAIL;
diff --git a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
index a47d0d3fa2b7..3922c3920bd8 100644
--- a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
+++ b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
@@ -1248,7 +1248,7 @@ static int cfg80211_rtw_scan(struct wiphy *wiphy
goto check_need_indicate_scan_done;
}
- ssid = kcalloc(RTW_SSID_SCAN_AMOUNT, sizeof(*ssid), GFP_KERNEL);
+ ssid = kzalloc_objs(*ssid, RTW_SSID_SCAN_AMOUNT, GFP_KERNEL);
if (!ssid) {
ret = -ENOMEM;
goto check_need_indicate_scan_done;
@@ -2145,7 +2145,7 @@ static int rtw_cfg80211_add_monitor_if(struct adapter *padapter, char *name, str
pnpi->sizeof_priv = sizeof(struct adapter);
/* wdev */
- mon_wdev = kzalloc(sizeof(*mon_wdev), GFP_KERNEL);
+ mon_wdev = kzalloc_obj(*mon_wdev, GFP_KERNEL);
if (!mon_wdev) {
ret = -ENOMEM;
goto out;
@@ -2726,7 +2726,7 @@ int rtw_wdev_alloc(struct adapter *padapter, struct device *dev)
goto free_wiphy;
/* wdev */
- wdev = kzalloc(sizeof(*wdev), GFP_KERNEL);
+ wdev = kzalloc_obj(*wdev, GFP_KERNEL);
if (!wdev) {
ret = -ENOMEM;
goto unregister_wiphy;
diff --git a/drivers/staging/rtl8723bs/os_dep/os_intfs.c b/drivers/staging/rtl8723bs/os_dep/os_intfs.c
index 21a0c3cf4c31..6260f8f33c6d 100644
--- a/drivers/staging/rtl8723bs/os_dep/os_intfs.c
+++ b/drivers/staging/rtl8723bs/os_dep/os_intfs.c
@@ -568,7 +568,7 @@ struct dvobj_priv *devobj_init(void)
{
struct dvobj_priv *pdvobj = NULL;
- pdvobj = kzalloc(sizeof(*pdvobj), GFP_KERNEL);
+ pdvobj = kzalloc_obj(*pdvobj, GFP_KERNEL);
if (!pdvobj)
return NULL;
diff --git a/drivers/staging/rtl8723bs/os_dep/osdep_service.c b/drivers/staging/rtl8723bs/os_dep/osdep_service.c
index 2a8fdafefcd9..9ad8473762bc 100644
--- a/drivers/staging/rtl8723bs/os_dep/osdep_service.c
+++ b/drivers/staging/rtl8723bs/os_dep/osdep_service.c
@@ -193,7 +193,7 @@ struct rtw_cbuf *rtw_cbuf_alloc(u32 size)
{
struct rtw_cbuf *cbuf;
- cbuf = kzalloc(struct_size(cbuf, bufs, size), GFP_KERNEL);
+ cbuf = kzalloc_flex(*cbuf, bufs, size, GFP_KERNEL);
cbuf->size = size;
return cbuf;
diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c
index 68e8d491a7ec..ae9ad7a8815d 100644
--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c
+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c
@@ -108,7 +108,7 @@ static int snd_bcm2835_playback_open_generic(struct snd_pcm_substream *substream
goto out;
}
- alsa_stream = kzalloc(sizeof(*alsa_stream), GFP_KERNEL);
+ alsa_stream = kzalloc_obj(*alsa_stream, GFP_KERNEL);
if (!alsa_stream) {
err = -ENOMEM;
goto out;
diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
index 7368b384497f..d9397ac8faca 100644
--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
@@ -219,7 +219,7 @@ int bcm2835_audio_open(struct bcm2835_alsa_stream *alsa_stream)
int err;
/* Allocate memory for this instance */
- instance = kzalloc(sizeof(*instance), GFP_KERNEL);
+ instance = kzalloc_obj(*instance, GFP_KERNEL);
if (!instance)
return -ENOMEM;
mutex_init(&instance->vchi_mutex);
diff --git a/drivers/staging/vme_user/vme.c b/drivers/staging/vme_user/vme.c
index 1d169f276bcf..4ab3b572bbd7 100644
--- a/drivers/staging/vme_user/vme.c
+++ b/drivers/staging/vme_user/vme.c
@@ -287,7 +287,7 @@ struct vme_resource *vme_slave_request(struct vme_dev *vdev, u32 address,
if (!allocated_image)
goto err_image;
- resource = kmalloc(sizeof(*resource), GFP_KERNEL);
+ resource = kmalloc_obj(*resource, GFP_KERNEL);
if (!resource)
goto err_alloc;
@@ -484,7 +484,7 @@ struct vme_resource *vme_master_request(struct vme_dev *vdev, u32 address,
goto err_image;
}
- resource = kmalloc(sizeof(*resource), GFP_KERNEL);
+ resource = kmalloc_obj(*resource, GFP_KERNEL);
if (!resource)
goto err_alloc;
@@ -854,7 +854,7 @@ struct vme_resource *vme_dma_request(struct vme_dev *vdev, u32 route)
if (!allocated_ctrlr)
goto err_ctrlr;
- resource = kmalloc(sizeof(*resource), GFP_KERNEL);
+ resource = kmalloc_obj(*resource, GFP_KERNEL);
if (!resource)
goto err_alloc;
@@ -894,7 +894,7 @@ struct vme_dma_list *vme_new_dma_list(struct vme_resource *resource)
return NULL;
}
- dma_list = kmalloc(sizeof(*dma_list), GFP_KERNEL);
+ dma_list = kmalloc_obj(*dma_list, GFP_KERNEL);
if (!dma_list)
return NULL;
@@ -924,11 +924,11 @@ struct vme_dma_attr *vme_dma_pattern_attribute(u32 pattern, u32 type)
struct vme_dma_attr *attributes;
struct vme_dma_pattern *pattern_attr;
- attributes = kmalloc(sizeof(*attributes), GFP_KERNEL);
+ attributes = kmalloc_obj(*attributes, GFP_KERNEL);
if (!attributes)
goto err_attr;
- pattern_attr = kmalloc(sizeof(*pattern_attr), GFP_KERNEL);
+ pattern_attr = kmalloc_obj(*pattern_attr, GFP_KERNEL);
if (!pattern_attr)
goto err_pat;
@@ -964,11 +964,11 @@ struct vme_dma_attr *vme_dma_pci_attribute(dma_addr_t address)
/* XXX Run some sanity checks here */
- attributes = kmalloc(sizeof(*attributes), GFP_KERNEL);
+ attributes = kmalloc_obj(*attributes, GFP_KERNEL);
if (!attributes)
goto err_attr;
- pci_attr = kmalloc(sizeof(*pci_attr), GFP_KERNEL);
+ pci_attr = kmalloc_obj(*pci_attr, GFP_KERNEL);
if (!pci_attr)
goto err_pci;
@@ -1005,11 +1005,11 @@ struct vme_dma_attr *vme_dma_vme_attribute(unsigned long long address,
struct vme_dma_attr *attributes;
struct vme_dma_vme *vme_attr;
- attributes = kmalloc(sizeof(*attributes), GFP_KERNEL);
+ attributes = kmalloc_obj(*attributes, GFP_KERNEL);
if (!attributes)
goto err_attr;
- vme_attr = kmalloc(sizeof(*vme_attr), GFP_KERNEL);
+ vme_attr = kmalloc_obj(*vme_attr, GFP_KERNEL);
if (!vme_attr)
goto err_vme;
@@ -1233,7 +1233,7 @@ struct vme_error_handler *vme_register_error_handler(struct vme_bridge *bridge,
{
struct vme_error_handler *handler;
- handler = kmalloc(sizeof(*handler), GFP_ATOMIC);
+ handler = kmalloc_obj(*handler, GFP_ATOMIC);
if (!handler)
return NULL;
@@ -1458,7 +1458,7 @@ struct vme_resource *vme_lm_request(struct vme_dev *vdev)
if (!allocated_lm)
goto err_lm;
- resource = kmalloc(sizeof(*resource), GFP_KERNEL);
+ resource = kmalloc_obj(*resource, GFP_KERNEL);
if (!resource)
goto err_alloc;
@@ -1810,7 +1810,7 @@ static int __vme_register_driver_bus(struct vme_driver *drv,
struct vme_dev *tmp;
for (i = 0; i < ndevs; i++) {
- vdev = kzalloc(sizeof(*vdev), GFP_KERNEL);
+ vdev = kzalloc_obj(*vdev, GFP_KERNEL);
if (!vdev) {
err = -ENOMEM;
goto err_devalloc;
diff --git a/drivers/staging/vme_user/vme_fake.c b/drivers/staging/vme_user/vme_fake.c
index 731fbba17dfd..77881a96114f 100644
--- a/drivers/staging/vme_user/vme_fake.c
+++ b/drivers/staging/vme_user/vme_fake.c
@@ -1073,13 +1073,13 @@ static int __init fake_init(void)
/* If we want to support more than one bridge at some point, we need to
* dynamically allocate this so we get one per device.
*/
- fake_bridge = kzalloc(sizeof(*fake_bridge), GFP_KERNEL);
+ fake_bridge = kzalloc_obj(*fake_bridge, GFP_KERNEL);
if (!fake_bridge) {
retval = -ENOMEM;
goto err_struct;
}
- fake_device = kzalloc(sizeof(*fake_device), GFP_KERNEL);
+ fake_device = kzalloc_obj(*fake_device, GFP_KERNEL);
if (!fake_device) {
retval = -ENOMEM;
goto err_driver;
@@ -1102,7 +1102,7 @@ static int __init fake_init(void)
/* Add master windows to list */
INIT_LIST_HEAD(&fake_bridge->master_resources);
for (i = 0; i < FAKE_MAX_MASTER; i++) {
- master_image = kmalloc(sizeof(*master_image), GFP_KERNEL);
+ master_image = kmalloc_obj(*master_image, GFP_KERNEL);
if (!master_image) {
retval = -ENOMEM;
goto err_master;
@@ -1128,7 +1128,7 @@ static int __init fake_init(void)
/* Add slave windows to list */
INIT_LIST_HEAD(&fake_bridge->slave_resources);
for (i = 0; i < FAKE_MAX_SLAVE; i++) {
- slave_image = kmalloc(sizeof(*slave_image), GFP_KERNEL);
+ slave_image = kmalloc_obj(*slave_image, GFP_KERNEL);
if (!slave_image) {
retval = -ENOMEM;
goto err_slave;
@@ -1150,7 +1150,7 @@ static int __init fake_init(void)
/* Add location monitor to list */
INIT_LIST_HEAD(&fake_bridge->lm_resources);
- lm = kmalloc(sizeof(*lm), GFP_KERNEL);
+ lm = kmalloc_obj(*lm, GFP_KERNEL);
if (!lm) {
retval = -ENOMEM;
goto err_lm;
diff --git a/drivers/staging/vme_user/vme_tsi148.c b/drivers/staging/vme_user/vme_tsi148.c
index 733594dde9ae..123408fffb6f 100644
--- a/drivers/staging/vme_user/vme_tsi148.c
+++ b/drivers/staging/vme_user/vme_tsi148.c
@@ -1611,7 +1611,7 @@ static int tsi148_dma_list_add(struct vme_dma_list *list, struct vme_dma_attr *s
tsi148_bridge = list->parent->parent;
/* Descriptor must be aligned on 64-bit boundaries */
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
retval = -ENOMEM;
goto err_mem;
@@ -2260,14 +2260,14 @@ static int tsi148_probe(struct pci_dev *pdev, const struct pci_device_id *id)
/* If we want to support more than one of each bridge, we need to
* dynamically generate this so we get one per device
*/
- tsi148_bridge = kzalloc(sizeof(*tsi148_bridge), GFP_KERNEL);
+ tsi148_bridge = kzalloc_obj(*tsi148_bridge, GFP_KERNEL);
if (!tsi148_bridge) {
retval = -ENOMEM;
goto err_struct;
}
vme_init_bridge(tsi148_bridge);
- tsi148_device = kzalloc(sizeof(*tsi148_device), GFP_KERNEL);
+ tsi148_device = kzalloc_obj(*tsi148_device, GFP_KERNEL);
if (!tsi148_device) {
retval = -ENOMEM;
goto err_driver;
@@ -2332,9 +2332,8 @@ static int tsi148_probe(struct pci_dev *pdev, const struct pci_device_id *id)
if (err_chk) {
master_num--;
- tsi148_device->flush_image =
- kmalloc(sizeof(*tsi148_device->flush_image),
- GFP_KERNEL);
+ tsi148_device->flush_image = kmalloc_obj(*tsi148_device->flush_image,
+ GFP_KERNEL);
if (!tsi148_device->flush_image) {
retval = -ENOMEM;
goto err_master;
@@ -2350,7 +2349,7 @@ static int tsi148_probe(struct pci_dev *pdev, const struct pci_device_id *id)
/* Add master windows to list */
for (i = 0; i < master_num; i++) {
- master_image = kmalloc(sizeof(*master_image), GFP_KERNEL);
+ master_image = kmalloc_obj(*master_image, GFP_KERNEL);
if (!master_image) {
retval = -ENOMEM;
goto err_master;
@@ -2376,7 +2375,7 @@ static int tsi148_probe(struct pci_dev *pdev, const struct pci_device_id *id)
/* Add slave windows to list */
for (i = 0; i < TSI148_MAX_SLAVE; i++) {
- slave_image = kmalloc(sizeof(*slave_image), GFP_KERNEL);
+ slave_image = kmalloc_obj(*slave_image, GFP_KERNEL);
if (!slave_image) {
retval = -ENOMEM;
goto err_slave;
@@ -2397,7 +2396,7 @@ static int tsi148_probe(struct pci_dev *pdev, const struct pci_device_id *id)
/* Add dma engines to list */
for (i = 0; i < TSI148_MAX_DMA; i++) {
- dma_ctrlr = kmalloc(sizeof(*dma_ctrlr), GFP_KERNEL);
+ dma_ctrlr = kmalloc_obj(*dma_ctrlr, GFP_KERNEL);
if (!dma_ctrlr) {
retval = -ENOMEM;
goto err_dma;
@@ -2417,7 +2416,7 @@ static int tsi148_probe(struct pci_dev *pdev, const struct pci_device_id *id)
}
/* Add location monitor to list */
- lm = kmalloc(sizeof(*lm), GFP_KERNEL);
+ lm = kmalloc_obj(*lm, GFP_KERNEL);
if (!lm) {
retval = -ENOMEM;
goto err_lm;
diff --git a/drivers/staging/vme_user/vme_user.c b/drivers/staging/vme_user/vme_user.c
index 2012cccd0d09..00da869a8056 100644
--- a/drivers/staging/vme_user/vme_user.c
+++ b/drivers/staging/vme_user/vme_user.c
@@ -464,7 +464,7 @@ static int vme_user_master_mmap(unsigned int minor, struct vm_area_struct *vma)
return err;
}
- vma_priv = kmalloc(sizeof(*vma_priv), GFP_KERNEL);
+ vma_priv = kmalloc_obj(*vma_priv, GFP_KERNEL);
if (!vma_priv) {
mutex_unlock(&image[minor].mutex);
return -ENOMEM;
diff --git a/drivers/target/iscsi/cxgbit/cxgbit_cm.c b/drivers/target/iscsi/cxgbit/cxgbit_cm.c
index d9204c590d9a..0aa4cb9e494e 100644
--- a/drivers/target/iscsi/cxgbit/cxgbit_cm.c
+++ b/drivers/target/iscsi/cxgbit/cxgbit_cm.c
@@ -79,7 +79,7 @@ static struct np_info *
cxgbit_np_hash_add(struct cxgbit_device *cdev, struct cxgbit_np *cnp,
unsigned int stid)
{
- struct np_info *p = kzalloc(sizeof(*p), GFP_KERNEL);
+ struct np_info *p = kzalloc_obj(*p, GFP_KERNEL);
if (p) {
int bucket = cxgbit_np_hashfn(cnp);
@@ -431,7 +431,7 @@ int cxgbit_setup_np(struct iscsi_np *np, struct sockaddr_storage *ksockaddr)
(ksockaddr->ss_family != AF_INET6))
return -EINVAL;
- cnp = kzalloc(sizeof(*cnp), GFP_KERNEL);
+ cnp = kzalloc_obj(*cnp, GFP_KERNEL);
if (!cnp)
return -ENOMEM;
@@ -1288,7 +1288,7 @@ cxgbit_pass_accept_req(struct cxgbit_device *cdev, struct sk_buff *skb)
goto reject;
}
- csk = kzalloc(sizeof(*csk), GFP_ATOMIC);
+ csk = kzalloc_obj(*csk, GFP_ATOMIC);
if (!csk) {
dst_release(dst);
goto rel_skb;
diff --git a/drivers/target/iscsi/cxgbit/cxgbit_main.c b/drivers/target/iscsi/cxgbit/cxgbit_main.c
index 2c1950df3b3e..e1985e1187b0 100644
--- a/drivers/target/iscsi/cxgbit/cxgbit_main.c
+++ b/drivers/target/iscsi/cxgbit/cxgbit_main.c
@@ -57,7 +57,7 @@ static void *cxgbit_uld_add(const struct cxgb4_lld_info *lldi)
if (is_t4(lldi->adapter_type))
return ERR_PTR(-ENODEV);
- cdev = kzalloc(sizeof(*cdev), GFP_KERNEL);
+ cdev = kzalloc_obj(*cdev, GFP_KERNEL);
if (!cdev)
return ERR_PTR(-ENOMEM);
@@ -646,7 +646,7 @@ cxgbit_dcbevent_notify(struct notifier_block *nb, unsigned long action,
struct cxgbit_dcb_work *dcb_work;
struct dcb_app_type *dcb_app = data;
- dcb_work = kzalloc(sizeof(*dcb_work), GFP_ATOMIC);
+ dcb_work = kzalloc_obj(*dcb_work, GFP_ATOMIC);
if (!dcb_work)
return NOTIFY_DONE;
diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
index a2dde08c8a62..6ff807754304 100644
--- a/drivers/target/iscsi/iscsi_target.c
+++ b/drivers/target/iscsi/iscsi_target.c
@@ -121,7 +121,7 @@ struct iscsi_tiqn *iscsit_add_tiqn(unsigned char *buf)
return ERR_PTR(-EINVAL);
}
- tiqn = kzalloc(sizeof(*tiqn), GFP_KERNEL);
+ tiqn = kzalloc_obj(*tiqn, GFP_KERNEL);
if (!tiqn)
return ERR_PTR(-ENOMEM);
@@ -352,7 +352,7 @@ struct iscsi_np *iscsit_add_np(
return np;
}
- np = kzalloc(sizeof(*np), GFP_KERNEL);
+ np = kzalloc_obj(*np, GFP_KERNEL);
if (!np) {
mutex_unlock(&np_lock);
return ERR_PTR(-ENOMEM);
@@ -674,7 +674,7 @@ static int __init iscsi_target_init_module(void)
int ret = 0, size;
pr_debug("iSCSI-Target "ISCSIT_VERSION"\n");
- iscsit_global = kzalloc(sizeof(*iscsit_global), GFP_KERNEL);
+ iscsit_global = kzalloc_obj(*iscsit_global, GFP_KERNEL);
if (!iscsit_global)
return -1;
@@ -981,7 +981,7 @@ static int iscsit_allocate_iovecs(struct iscsit_cmd *cmd)
u32 iov_count = max(1UL, DIV_ROUND_UP(cmd->se_cmd.data_length, PAGE_SIZE));
iov_count += ISCSI_IOV_DATA_BUFFER;
- cmd->iov_data = kcalloc(iov_count, sizeof(*cmd->iov_data), GFP_KERNEL);
+ cmd->iov_data = kzalloc_objs(*cmd->iov_data, iov_count, GFP_KERNEL);
if (!cmd->iov_data)
return -ENOMEM;
@@ -1992,7 +1992,7 @@ iscsit_handle_task_mgt_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
hdr->refcmdsn = cpu_to_be32(ISCSI_RESERVED_TAG);
cmd->data_direction = DMA_NONE;
- cmd->tmr_req = kzalloc(sizeof(*cmd->tmr_req), GFP_KERNEL);
+ cmd->tmr_req = kzalloc_obj(*cmd->tmr_req, GFP_KERNEL);
if (!cmd->tmr_req) {
return iscsit_add_reject_cmd(cmd,
ISCSI_REASON_BOOKMARK_NO_RESOURCES,
diff --git a/drivers/target/iscsi/iscsi_target_auth.c b/drivers/target/iscsi/iscsi_target_auth.c
index 2c4d583fe3e6..d6f3611c0d4b 100644
--- a/drivers/target/iscsi/iscsi_target_auth.c
+++ b/drivers/target/iscsi/iscsi_target_auth.c
@@ -152,7 +152,7 @@ static struct iscsi_chap *chap_server_open(
return NULL;
}
- conn->auth_protocol = kzalloc(sizeof(struct iscsi_chap), GFP_KERNEL);
+ conn->auth_protocol = kzalloc_obj(struct iscsi_chap, GFP_KERNEL);
if (!conn->auth_protocol)
return NULL;
diff --git a/drivers/target/iscsi/iscsi_target_erl2.c b/drivers/target/iscsi/iscsi_target_erl2.c
index 56d78af7cec7..7e7193a40959 100644
--- a/drivers/target/iscsi/iscsi_target_erl2.c
+++ b/drivers/target/iscsi/iscsi_target_erl2.c
@@ -268,7 +268,7 @@ int iscsit_prepare_cmds_for_reallegiance(struct iscsit_conn *conn)
* (struct iscsit_cmd->cr) so we need to allocate this before preparing the
* connection's command list for connection recovery.
*/
- cr = kzalloc(sizeof(struct iscsi_conn_recovery), GFP_KERNEL);
+ cr = kzalloc_obj(struct iscsi_conn_recovery, GFP_KERNEL);
if (!cr) {
pr_err("Unable to allocate memory for"
" struct iscsi_conn_recovery.\n");
diff --git a/drivers/target/iscsi/iscsi_target_login.c b/drivers/target/iscsi/iscsi_target_login.c
index 53aca059dc16..8a5a711b505b 100644
--- a/drivers/target/iscsi/iscsi_target_login.c
+++ b/drivers/target/iscsi/iscsi_target_login.c
@@ -38,7 +38,7 @@ static struct iscsi_login *iscsi_login_init_conn(struct iscsit_conn *conn)
{
struct iscsi_login *login;
- login = kzalloc(sizeof(struct iscsi_login), GFP_KERNEL);
+ login = kzalloc_obj(struct iscsi_login, GFP_KERNEL);
if (!login) {
pr_err("Unable to allocate memory for struct iscsi_login.\n");
return NULL;
@@ -219,7 +219,7 @@ static int iscsi_login_zero_tsih_s1(
struct iscsi_login_req *pdu = (struct iscsi_login_req *)buf;
int ret;
- sess = kzalloc(sizeof(struct iscsit_session), GFP_KERNEL);
+ sess = kzalloc_obj(struct iscsit_session, GFP_KERNEL);
if (!sess) {
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
ISCSI_LOGIN_STATUS_NO_RESOURCES);
@@ -267,7 +267,7 @@ static int iscsi_login_zero_tsih_s1(
*/
atomic_set(&sess->max_cmd_sn, be32_to_cpu(pdu->cmdsn));
- sess->sess_ops = kzalloc(sizeof(struct iscsi_sess_ops), GFP_KERNEL);
+ sess->sess_ops = kzalloc_obj(struct iscsi_sess_ops, GFP_KERNEL);
if (!sess->sess_ops) {
iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
ISCSI_LOGIN_STATUS_NO_RESOURCES);
@@ -1002,7 +1002,7 @@ static struct iscsit_conn *iscsit_alloc_conn(struct iscsi_np *np)
{
struct iscsit_conn *conn;
- conn = kzalloc(sizeof(struct iscsit_conn), GFP_KERNEL);
+ conn = kzalloc_obj(struct iscsit_conn, GFP_KERNEL);
if (!conn) {
pr_err("Could not allocate memory for new connection\n");
return NULL;
@@ -1040,7 +1040,7 @@ static struct iscsit_conn *iscsit_alloc_conn(struct iscsi_np *np)
if (iscsit_conn_set_transport(conn, np->np_transport) < 0)
goto free_conn;
- conn->conn_ops = kzalloc(sizeof(struct iscsi_conn_ops), GFP_KERNEL);
+ conn->conn_ops = kzalloc_obj(struct iscsi_conn_ops, GFP_KERNEL);
if (!conn->conn_ops) {
pr_err("Unable to allocate memory for struct iscsi_conn_ops.\n");
goto put_transport;
diff --git a/drivers/target/iscsi/iscsi_target_parameters.c b/drivers/target/iscsi/iscsi_target_parameters.c
index 1d4e1788e073..fce6c91ac157 100644
--- a/drivers/target/iscsi/iscsi_target_parameters.c
+++ b/drivers/target/iscsi/iscsi_target_parameters.c
@@ -73,7 +73,7 @@ static struct iscsi_param *iscsi_set_default_param(struct iscsi_param_list *para
{
struct iscsi_param *param = NULL;
- param = kzalloc(sizeof(struct iscsi_param), GFP_KERNEL);
+ param = kzalloc_obj(struct iscsi_param, GFP_KERNEL);
if (!param) {
pr_err("Unable to allocate memory for parameter.\n");
goto out;
@@ -148,7 +148,7 @@ int iscsi_create_default_params(struct iscsi_param_list **param_list_ptr)
struct iscsi_param *param = NULL;
struct iscsi_param_list *pl;
- pl = kzalloc(sizeof(struct iscsi_param_list), GFP_KERNEL);
+ pl = kzalloc_obj(struct iscsi_param_list, GFP_KERNEL);
if (!pl) {
pr_err("Unable to allocate memory for"
" struct iscsi_param_list.\n");
@@ -519,7 +519,7 @@ int iscsi_copy_param_list(
struct iscsi_param *new_param = NULL;
struct iscsi_param_list *param_list = NULL;
- param_list = kzalloc(sizeof(struct iscsi_param_list), GFP_KERNEL);
+ param_list = kzalloc_obj(struct iscsi_param_list, GFP_KERNEL);
if (!param_list) {
pr_err("Unable to allocate memory for struct iscsi_param_list.\n");
return -ENOMEM;
@@ -535,7 +535,7 @@ int iscsi_copy_param_list(
continue;
}
- new_param = kzalloc(sizeof(struct iscsi_param), GFP_KERNEL);
+ new_param = kzalloc_obj(struct iscsi_param, GFP_KERNEL);
if (!new_param) {
pr_err("Unable to allocate memory for struct iscsi_param.\n");
goto err_out;
@@ -670,7 +670,7 @@ static int iscsi_add_notunderstood_response(
return -1;
}
- extra_response = kzalloc(sizeof(struct iscsi_extra_response), GFP_KERNEL);
+ extra_response = kzalloc_obj(struct iscsi_extra_response, GFP_KERNEL);
if (!extra_response) {
pr_err("Unable to allocate memory for"
" struct iscsi_extra_response.\n");
diff --git a/drivers/target/iscsi/iscsi_target_seq_pdu_list.c b/drivers/target/iscsi/iscsi_target_seq_pdu_list.c
index 66de2b8de463..75c37c8866c8 100644
--- a/drivers/target/iscsi/iscsi_target_seq_pdu_list.c
+++ b/drivers/target/iscsi/iscsi_target_seq_pdu_list.c
@@ -535,7 +535,7 @@ int iscsit_build_pdu_and_seq_lists(
iscsit_determine_counts_for_list(cmd, &bl, &seq_count, &pdu_count);
if (!conn->sess->sess_ops->DataSequenceInOrder) {
- seq = kcalloc(seq_count, sizeof(struct iscsi_seq), GFP_ATOMIC);
+ seq = kzalloc_objs(struct iscsi_seq, seq_count, GFP_ATOMIC);
if (!seq) {
pr_err("Unable to allocate struct iscsi_seq list\n");
return -ENOMEM;
@@ -545,7 +545,7 @@ int iscsit_build_pdu_and_seq_lists(
}
if (!conn->sess->sess_ops->DataPDUInOrder) {
- pdu = kcalloc(pdu_count, sizeof(struct iscsi_pdu), GFP_ATOMIC);
+ pdu = kzalloc_objs(struct iscsi_pdu, pdu_count, GFP_ATOMIC);
if (!pdu) {
pr_err("Unable to allocate struct iscsi_pdu list.\n");
kfree(seq);
diff --git a/drivers/target/iscsi/iscsi_target_tpg.c b/drivers/target/iscsi/iscsi_target_tpg.c
index bf06cfdfb012..82463efca798 100644
--- a/drivers/target/iscsi/iscsi_target_tpg.c
+++ b/drivers/target/iscsi/iscsi_target_tpg.c
@@ -26,7 +26,7 @@ struct iscsi_portal_group *iscsit_alloc_portal_group(struct iscsi_tiqn *tiqn, u1
{
struct iscsi_portal_group *tpg;
- tpg = kzalloc(sizeof(struct iscsi_portal_group), GFP_KERNEL);
+ tpg = kzalloc_obj(struct iscsi_portal_group, GFP_KERNEL);
if (!tpg) {
pr_err("Unable to allocate struct iscsi_portal_group\n");
return NULL;
@@ -464,7 +464,7 @@ struct iscsi_tpg_np *iscsit_tpg_add_network_portal(
}
}
- tpg_np = kzalloc(sizeof(struct iscsi_tpg_np), GFP_KERNEL);
+ tpg_np = kzalloc_obj(struct iscsi_tpg_np, GFP_KERNEL);
if (!tpg_np) {
pr_err("Unable to allocate memory for"
" struct iscsi_tpg_np.\n");
diff --git a/drivers/target/loopback/tcm_loop.c b/drivers/target/loopback/tcm_loop.c
index 0821a149573e..94e191809e1c 100644
--- a/drivers/target/loopback/tcm_loop.c
+++ b/drivers/target/loopback/tcm_loop.c
@@ -693,7 +693,7 @@ static int tcm_loop_make_nexus(
return -EEXIST;
}
- tl_nexus = kzalloc(sizeof(*tl_nexus), GFP_KERNEL);
+ tl_nexus = kzalloc_obj(*tl_nexus, GFP_KERNEL);
if (!tl_nexus)
return -ENOMEM;
@@ -994,7 +994,7 @@ static struct se_wwn *tcm_loop_make_scsi_hba(
char *ptr;
int ret, off = 0;
- tl_hba = kzalloc(sizeof(*tl_hba), GFP_KERNEL);
+ tl_hba = kzalloc_obj(*tl_hba, GFP_KERNEL);
if (!tl_hba)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/target/sbp/sbp_target.c b/drivers/target/sbp/sbp_target.c
index 09120a538a40..ef69c1321dd0 100644
--- a/drivers/target/sbp/sbp_target.c
+++ b/drivers/target/sbp/sbp_target.c
@@ -186,7 +186,7 @@ static struct sbp_session *sbp_session_create(
snprintf(guid_str, sizeof(guid_str), "%016llx", guid);
- sess = kmalloc(sizeof(*sess), GFP_KERNEL);
+ sess = kmalloc_obj(*sess, GFP_KERNEL);
if (!sess)
return ERR_PTR(-ENOMEM);
@@ -391,7 +391,7 @@ static void sbp_management_request_login(
1 << LOGIN_ORB_RECONNECT(be32_to_cpu(req->orb.misc)),
tport->max_reconnect_timeout) - 1;
- login = kmalloc(sizeof(*login), GFP_KERNEL);
+ login = kmalloc_obj(*login, GFP_KERNEL);
if (!login) {
pr_err("failed to allocate login descriptor\n");
@@ -428,7 +428,7 @@ static void sbp_management_request_login(
spin_unlock_bh(&sess->lock);
already_logged_in:
- response = kzalloc(sizeof(*response), GFP_KERNEL);
+ response = kzalloc_obj(*response, GFP_KERNEL);
if (!response) {
pr_err("failed to allocate login response block\n");
@@ -1014,7 +1014,7 @@ static struct sbp_target_agent *sbp_target_agent_register(
struct sbp_target_agent *agent;
int ret;
- agent = kmalloc(sizeof(*agent), GFP_KERNEL);
+ agent = kmalloc_obj(*agent, GFP_KERNEL);
if (!agent)
return ERR_PTR(-ENOMEM);
@@ -1603,7 +1603,7 @@ static void sbp_mgt_agent_rw(struct fw_card *card,
rcode = RCODE_CONFLICT_ERROR;
goto out;
}
- req = kzalloc(sizeof(*req), GFP_ATOMIC);
+ req = kzalloc_obj(*req, GFP_ATOMIC);
if (!req) {
rcode = RCODE_CONFLICT_ERROR;
goto out;
@@ -1636,7 +1636,7 @@ static struct sbp_management_agent *sbp_management_agent_register(
int ret;
struct sbp_management_agent *agent;
- agent = kmalloc(sizeof(*agent), GFP_KERNEL);
+ agent = kmalloc_obj(*agent, GFP_KERNEL);
if (!agent)
return ERR_PTR(-ENOMEM);
@@ -1973,7 +1973,7 @@ static struct se_portal_group *sbp_make_tpg(struct se_wwn *wwn,
return ERR_PTR(-EBUSY);
}
- tpg = kzalloc(sizeof(*tpg), GFP_KERNEL);
+ tpg = kzalloc_obj(*tpg, GFP_KERNEL);
if (!tpg)
return ERR_PTR(-ENOMEM);
@@ -2030,7 +2030,7 @@ static struct se_wwn *sbp_make_tport(
if (sbp_parse_wwn(name, &guid) < 0)
return ERR_PTR(-EINVAL);
- tport = kzalloc(sizeof(*tport), GFP_KERNEL);
+ tport = kzalloc_obj(*tport, GFP_KERNEL);
if (!tport)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/target/target_core_configfs.c b/drivers/target/target_core_configfs.c
index b27a3b8dd767..a63de1b6c2b4 100644
--- a/drivers/target/target_core_configfs.c
+++ b/drivers/target/target_core_configfs.c
@@ -475,12 +475,12 @@ int target_register_template(const struct target_core_fabric_ops *fo)
if (ret)
return ret;
- tf = kzalloc(sizeof(struct target_fabric_configfs), GFP_KERNEL);
+ tf = kzalloc_obj(struct target_fabric_configfs, GFP_KERNEL);
if (!tf) {
pr_err("%s: could not allocate memory!\n", __func__);
return -ENOMEM;
}
- tfo = kzalloc(sizeof(struct target_core_fabric_ops), GFP_KERNEL);
+ tfo = kzalloc_obj(struct target_core_fabric_ops, GFP_KERNEL);
if (!tfo) {
kfree(tf);
pr_err("%s: could not allocate memory!\n", __func__);
diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c
index 8ccb8541db1c..f082cbc79751 100644
--- a/drivers/target/target_core_device.c
+++ b/drivers/target/target_core_device.c
@@ -324,7 +324,7 @@ int core_enable_device_list_for_node(
struct se_dev_entry *orig, *new;
int ret = 0;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new) {
pr_err("Unable to allocate se_dev_entry memory\n");
return -ENOMEM;
@@ -591,7 +591,7 @@ struct se_lun_acl *core_dev_init_initiator_node_lun_acl(
*ret = -EOVERFLOW;
return NULL;
}
- lacl = kzalloc(sizeof(struct se_lun_acl), GFP_KERNEL);
+ lacl = kzalloc_obj(struct se_lun_acl, GFP_KERNEL);
if (!lacl) {
pr_err("Unable to allocate memory for struct se_lun_acl.\n");
*ret = -ENOMEM;
@@ -726,7 +726,7 @@ struct se_device *target_alloc_device(struct se_hba *hba, const char *name)
if (!dev->stats)
goto free_device;
- dev->queues = kcalloc(nr_cpu_ids, sizeof(*dev->queues), GFP_KERNEL);
+ dev->queues = kzalloc_objs(*dev->queues, nr_cpu_ids, GFP_KERNEL);
if (!dev->queues)
goto free_stats;
diff --git a/drivers/target/target_core_fabric_configfs.c b/drivers/target/target_core_fabric_configfs.c
index 59713e9be10a..69590c570859 100644
--- a/drivers/target/target_core_fabric_configfs.c
+++ b/drivers/target/target_core_fabric_configfs.c
@@ -899,7 +899,7 @@ target_fabric_setup_tpg_base_cit(struct target_fabric_configfs *tf)
nr_attrs++;
/* + 1 for final NULL in the array */
- attrs = kcalloc(nr_attrs + 1, sizeof(*attrs), GFP_KERNEL);
+ attrs = kzalloc_objs(*attrs, nr_attrs + 1, GFP_KERNEL);
if (!attrs)
return -ENOMEM;
diff --git a/drivers/target/target_core_file.c b/drivers/target/target_core_file.c
index b2610073e8cc..5347800a276d 100644
--- a/drivers/target/target_core_file.c
+++ b/drivers/target/target_core_file.c
@@ -38,7 +38,7 @@ static int fd_attach_hba(struct se_hba *hba, u32 host_id)
{
struct fd_host *fd_host;
- fd_host = kzalloc(sizeof(struct fd_host), GFP_KERNEL);
+ fd_host = kzalloc_obj(struct fd_host, GFP_KERNEL);
if (!fd_host) {
pr_err("Unable to allocate memory for struct fd_host\n");
return -ENOMEM;
@@ -73,7 +73,7 @@ static struct se_device *fd_alloc_device(struct se_hba *hba, const char *name)
struct fd_dev *fd_dev;
struct fd_host *fd_host = hba->hba_ptr;
- fd_dev = kzalloc(sizeof(struct fd_dev), GFP_KERNEL);
+ fd_dev = kzalloc_obj(struct fd_dev, GFP_KERNEL);
if (!fd_dev) {
pr_err("Unable to allocate memory for struct fd_dev\n");
return NULL;
@@ -276,7 +276,7 @@ fd_execute_rw_aio(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
ssize_t len = 0;
int ret = 0, i;
- aio_cmd = kmalloc(struct_size(aio_cmd, bvecs, sgl_nents), GFP_KERNEL);
+ aio_cmd = kmalloc_flex(*aio_cmd, bvecs, sgl_nents, GFP_KERNEL);
if (!aio_cmd)
return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
@@ -320,7 +320,7 @@ static int fd_do_rw(struct se_cmd *cmd, struct file *fd,
loff_t pos = (cmd->t_task_lba * block_size);
int ret = 0, i;
- bvec = kcalloc(sgl_nents, sizeof(struct bio_vec), GFP_KERNEL);
+ bvec = kzalloc_objs(struct bio_vec, sgl_nents, GFP_KERNEL);
if (!bvec) {
pr_err("Unable to allocate fd_do_readv iov[]\n");
return -ENOMEM;
@@ -455,7 +455,7 @@ fd_execute_write_same(struct se_cmd *cmd)
return TCM_INVALID_CDB_FIELD;
}
- bvec = kcalloc(nolb, sizeof(struct bio_vec), GFP_KERNEL);
+ bvec = kzalloc_objs(struct bio_vec, nolb, GFP_KERNEL);
if (!bvec)
return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
diff --git a/drivers/target/target_core_hba.c b/drivers/target/target_core_hba.c
index d508b343ba7b..deafced2c804 100644
--- a/drivers/target/target_core_hba.c
+++ b/drivers/target/target_core_hba.c
@@ -39,7 +39,7 @@ int transport_backend_register(const struct target_backend_ops *ops)
{
struct target_backend *tb, *old;
- tb = kzalloc(sizeof(*tb), GFP_KERNEL);
+ tb = kzalloc_obj(*tb, GFP_KERNEL);
if (!tb)
return -ENOMEM;
tb->ops = ops;
@@ -111,7 +111,7 @@ core_alloc_hba(const char *plugin_name, u32 plugin_dep_id, u32 hba_flags)
struct se_hba *hba;
int ret = 0;
- hba = kzalloc(sizeof(*hba), GFP_KERNEL);
+ hba = kzalloc_obj(*hba, GFP_KERNEL);
if (!hba) {
pr_err("Unable to allocate struct se_hba\n");
return ERR_PTR(-ENOMEM);
diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c
index 8ec7b534ad76..8a333c9bd294 100644
--- a/drivers/target/target_core_iblock.c
+++ b/drivers/target/target_core_iblock.c
@@ -59,15 +59,15 @@ static struct se_device *iblock_alloc_device(struct se_hba *hba, const char *nam
{
struct iblock_dev *ib_dev = NULL;
- ib_dev = kzalloc(sizeof(struct iblock_dev), GFP_KERNEL);
+ ib_dev = kzalloc_obj(struct iblock_dev, GFP_KERNEL);
if (!ib_dev) {
pr_err("Unable to allocate struct iblock_dev\n");
return NULL;
}
ib_dev->ibd_exclusive = true;
- ib_dev->ibd_plug = kcalloc(nr_cpu_ids, sizeof(*ib_dev->ibd_plug),
- GFP_KERNEL);
+ ib_dev->ibd_plug = kzalloc_objs(*ib_dev->ibd_plug, nr_cpu_ids,
+ GFP_KERNEL);
if (!ib_dev->ibd_plug)
goto free_dev;
@@ -523,7 +523,7 @@ iblock_execute_write_same(struct se_cmd *cmd)
return 0;
}
- ibr = kzalloc(sizeof(struct iblock_req), GFP_KERNEL);
+ ibr = kzalloc_obj(struct iblock_req, GFP_KERNEL);
if (!ibr)
goto fail;
cmd->priv = ibr;
@@ -783,7 +783,7 @@ iblock_execute_rw(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
miter_dir = SG_MITER_FROM_SG;
}
- ibr = kzalloc(sizeof(struct iblock_req), GFP_KERNEL);
+ ibr = kzalloc_obj(struct iblock_req, GFP_KERNEL);
if (!ibr)
goto fail;
cmd->priv = ibr;
diff --git a/drivers/target/target_core_pr.c b/drivers/target/target_core_pr.c
index 83e172c92238..1272c24512fa 100644
--- a/drivers/target/target_core_pr.c
+++ b/drivers/target/target_core_pr.c
@@ -1490,7 +1490,7 @@ core_scsi3_decode_spec_i_port(
* local_node_acl pointer and add to struct list_head tid_dest_list
* for add registration processing in the loop of tid_dest_list below.
*/
- tidh_new = kzalloc(sizeof(struct pr_transport_id_holder), GFP_KERNEL);
+ tidh_new = kzalloc_obj(struct pr_transport_id_holder, GFP_KERNEL);
if (!tidh_new) {
pr_err("Unable to allocate tidh_new\n");
return TCM_INSUFFICIENT_REGISTRATION_RESOURCES;
@@ -1712,8 +1712,8 @@ core_scsi3_decode_spec_i_port(
* the dest_node_acl and dest_se_deve pointers for the
* loop below.
*/
- tidh_new = kzalloc(sizeof(struct pr_transport_id_holder),
- GFP_KERNEL);
+ tidh_new = kzalloc_obj(struct pr_transport_id_holder,
+ GFP_KERNEL);
if (!tidh_new) {
pr_err("Unable to allocate tidh_new\n");
core_scsi3_lunacl_undepend_item(dest_se_deve);
diff --git a/drivers/target/target_core_pscsi.c b/drivers/target/target_core_pscsi.c
index 823b2665f95b..4f86030c9ad5 100644
--- a/drivers/target/target_core_pscsi.c
+++ b/drivers/target/target_core_pscsi.c
@@ -51,7 +51,7 @@ static int pscsi_attach_hba(struct se_hba *hba, u32 host_id)
{
struct pscsi_hba_virt *phv;
- phv = kzalloc(sizeof(struct pscsi_hba_virt), GFP_KERNEL);
+ phv = kzalloc_obj(struct pscsi_hba_virt, GFP_KERNEL);
if (!phv) {
pr_err("Unable to allocate struct pscsi_hba_virt\n");
return -ENOMEM;
@@ -247,7 +247,7 @@ pscsi_get_inquiry_vpd_device_ident(struct scsi_device *sdev,
}
pr_debug("T10 VPD Identifier Length: %d\n", ident_len);
- vpd = kzalloc(sizeof(struct t10_vpd), GFP_KERNEL);
+ vpd = kzalloc_obj(struct t10_vpd, GFP_KERNEL);
if (!vpd) {
pr_err("Unable to allocate memory for"
" struct t10_vpd\n");
@@ -334,7 +334,7 @@ static struct se_device *pscsi_alloc_device(struct se_hba *hba,
{
struct pscsi_dev_virt *pdv;
- pdv = kzalloc(sizeof(struct pscsi_dev_virt), GFP_KERNEL);
+ pdv = kzalloc_obj(struct pscsi_dev_virt, GFP_KERNEL);
if (!pdv) {
pr_err("Unable to allocate memory for struct pscsi_dev_virt\n");
return NULL;
diff --git a/drivers/target/target_core_rd.c b/drivers/target/target_core_rd.c
index 6f67cc09c2b5..90ee036ad5ce 100644
--- a/drivers/target/target_core_rd.c
+++ b/drivers/target/target_core_rd.c
@@ -34,7 +34,7 @@ static int rd_attach_hba(struct se_hba *hba, u32 host_id)
{
struct rd_host *rd_host;
- rd_host = kzalloc(sizeof(*rd_host), GFP_KERNEL);
+ rd_host = kzalloc_obj(*rd_host, GFP_KERNEL);
if (!rd_host)
return -ENOMEM;
@@ -131,8 +131,7 @@ static int rd_allocate_sgl_table(struct rd_dev *rd_dev, struct rd_dev_sg_table *
if (sg_per_table < total_sg_needed)
chain_entry = 1;
- sg = kmalloc_array(sg_per_table + chain_entry, sizeof(*sg),
- GFP_KERNEL);
+ sg = kmalloc_objs(*sg, sg_per_table + chain_entry, GFP_KERNEL);
if (!sg)
return -ENOMEM;
@@ -192,7 +191,7 @@ static int rd_build_device_space(struct rd_dev *rd_dev)
total_sg_needed = rd_dev->rd_page_count;
sg_tables = (total_sg_needed / max_sg_per_table) + 1;
- sg_table = kcalloc(sg_tables, sizeof(*sg_table), GFP_KERNEL);
+ sg_table = kzalloc_objs(*sg_table, sg_tables, GFP_KERNEL);
if (!sg_table)
return -ENOMEM;
@@ -249,7 +248,7 @@ static int rd_build_prot_space(struct rd_dev *rd_dev, int prot_length, int block
total_sg_needed = (rd_dev->rd_page_count * prot_length / block_size) + 1;
sg_tables = (total_sg_needed / max_sg_per_table) + 1;
- sg_table = kcalloc(sg_tables, sizeof(*sg_table), GFP_KERNEL);
+ sg_table = kzalloc_objs(*sg_table, sg_tables, GFP_KERNEL);
if (!sg_table)
return -ENOMEM;
@@ -272,7 +271,7 @@ static struct se_device *rd_alloc_device(struct se_hba *hba, const char *name)
struct rd_dev *rd_dev;
struct rd_host *rd_host = hba->hba_ptr;
- rd_dev = kzalloc(sizeof(*rd_dev), GFP_KERNEL);
+ rd_dev = kzalloc_obj(*rd_dev, GFP_KERNEL);
if (!rd_dev)
return NULL;
diff --git a/drivers/target/target_core_tmr.c b/drivers/target/target_core_tmr.c
index 4718db628222..db7388e207b2 100644
--- a/drivers/target/target_core_tmr.c
+++ b/drivers/target/target_core_tmr.c
@@ -31,7 +31,7 @@ int core_tmr_alloc_req(
{
struct se_tmr_req *tmr;
- tmr = kzalloc(sizeof(struct se_tmr_req), gfp_flags);
+ tmr = kzalloc_obj(struct se_tmr_req, gfp_flags);
if (!tmr) {
pr_err("Unable to allocate struct se_tmr_req\n");
return -ENOMEM;
diff --git a/drivers/target/target_core_tpg.c b/drivers/target/target_core_tpg.c
index 8b5ad50baa43..bb4eaace5e77 100644
--- a/drivers/target/target_core_tpg.c
+++ b/drivers/target/target_core_tpg.c
@@ -610,7 +610,7 @@ struct se_lun *core_tpg_alloc_lun(
{
struct se_lun *lun;
- lun = kzalloc(sizeof(*lun), GFP_KERNEL);
+ lun = kzalloc_obj(*lun, GFP_KERNEL);
if (!lun) {
pr_err("Unable to allocate se_lun memory\n");
return ERR_PTR(-ENOMEM);
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index 50d21888a0c9..4b6899a729f7 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -233,7 +233,7 @@ struct target_cmd_counter *target_alloc_cmd_counter(void)
struct target_cmd_counter *cmd_cnt;
int rc;
- cmd_cnt = kzalloc(sizeof(*cmd_cnt), GFP_KERNEL);
+ cmd_cnt = kzalloc_obj(*cmd_cnt, GFP_KERNEL);
if (!cmd_cnt)
return NULL;
@@ -2740,7 +2740,7 @@ void *transport_kmap_data_sg(struct se_cmd *cmd)
return kmap(sg_page(sg)) + sg->offset;
/* >1 page. use vmap */
- pages = kmalloc_array(cmd->t_data_nents, sizeof(*pages), GFP_KERNEL);
+ pages = kmalloc_objs(*pages, cmd->t_data_nents, GFP_KERNEL);
if (!pages)
return NULL;
diff --git a/drivers/target/target_core_user.c b/drivers/target/target_core_user.c
index 3fd963612775..062e93231794 100644
--- a/drivers/target/target_core_user.c
+++ b/drivers/target/target_core_user.c
@@ -1293,7 +1293,7 @@ tcmu_tmr_notify(struct se_device *se_dev, enum tcm_tmreq_table tmf,
pr_debug("TMR event %d on dev %s, aborted cmds %d, afflicted cmd_ids %d\n",
tcmu_tmr_type(tmf), udev->name, i, cmd_cnt);
- tmr = kmalloc(struct_size(tmr, tmr_cmd_ids, cmd_cnt), GFP_NOIO);
+ tmr = kmalloc_flex(*tmr, tmr_cmd_ids, cmd_cnt, GFP_NOIO);
if (!tmr)
goto unlock;
@@ -1582,7 +1582,7 @@ static int tcmu_attach_hba(struct se_hba *hba, u32 host_id)
{
struct tcmu_hba *tcmu_hba;
- tcmu_hba = kzalloc(sizeof(struct tcmu_hba), GFP_KERNEL);
+ tcmu_hba = kzalloc_obj(struct tcmu_hba, GFP_KERNEL);
if (!tcmu_hba)
return -ENOMEM;
@@ -1602,7 +1602,7 @@ static struct se_device *tcmu_alloc_device(struct se_hba *hba, const char *name)
{
struct tcmu_dev *udev;
- udev = kzalloc(sizeof(struct tcmu_dev), GFP_KERNEL);
+ udev = kzalloc_obj(struct tcmu_dev, GFP_KERNEL);
if (!udev)
return NULL;
kref_init(&udev->kref);
diff --git a/drivers/target/target_core_xcopy.c b/drivers/target/target_core_xcopy.c
index 93534a6e14b7..2447b4abe2cf 100644
--- a/drivers/target/target_core_xcopy.c
+++ b/drivers/target/target_core_xcopy.c
@@ -898,7 +898,7 @@ sense_reason_t target_do_xcopy(struct se_cmd *se_cmd)
return TCM_PARAMETER_LIST_LENGTH_ERROR;
}
- xop = kzalloc(sizeof(struct xcopy_op), GFP_KERNEL);
+ xop = kzalloc_obj(struct xcopy_op, GFP_KERNEL);
if (!xop)
goto err;
xop->xop_se_cmd = se_cmd;
diff --git a/drivers/target/tcm_fc/tfc_conf.c b/drivers/target/tcm_fc/tfc_conf.c
index a29b20b5f78e..7643503f739c 100644
--- a/drivers/target/tcm_fc/tfc_conf.c
+++ b/drivers/target/tcm_fc/tfc_conf.c
@@ -244,7 +244,7 @@ static struct se_portal_group *ft_add_tpg(struct se_wwn *wwn, const char *name)
}
ft_wwn = container_of(wwn, struct ft_lport_wwn, se_wwn);
- tpg = kzalloc(sizeof(*tpg), GFP_KERNEL);
+ tpg = kzalloc_obj(*tpg, GFP_KERNEL);
if (!tpg)
return NULL;
tpg->index = index;
@@ -334,7 +334,7 @@ static struct se_wwn *ft_add_wwn(
pr_debug("add wwn %s\n", name);
if (ft_parse_wwn(name, &wwpn, 1) < 0)
return NULL;
- ft_wwn = kzalloc(sizeof(*ft_wwn), GFP_KERNEL);
+ ft_wwn = kzalloc_obj(*ft_wwn, GFP_KERNEL);
if (!ft_wwn)
return NULL;
ft_wwn->wwpn = wwpn;
diff --git a/drivers/target/tcm_fc/tfc_sess.c b/drivers/target/tcm_fc/tfc_sess.c
index d6afaba52ea5..584785ada9a6 100644
--- a/drivers/target/tcm_fc/tfc_sess.c
+++ b/drivers/target/tcm_fc/tfc_sess.c
@@ -59,7 +59,7 @@ static struct ft_tport *ft_tport_get(struct fc_lport *lport)
return tport;
}
- tport = kzalloc(sizeof(*tport), GFP_KERNEL);
+ tport = kzalloc_obj(*tport, GFP_KERNEL);
if (!tport)
return NULL;
@@ -219,7 +219,7 @@ static struct ft_sess *ft_sess_create(struct ft_tport *tport, u32 port_id,
if (sess->port_id == port_id)
return sess;
- sess = kzalloc(sizeof(*sess), GFP_KERNEL);
+ sess = kzalloc_obj(*sess, GFP_KERNEL);
if (!sess)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/target/tcm_remote/tcm_remote.c b/drivers/target/tcm_remote/tcm_remote.c
index cb8db2558056..480efdccbf67 100644
--- a/drivers/target/tcm_remote/tcm_remote.c
+++ b/drivers/target/tcm_remote/tcm_remote.c
@@ -156,7 +156,7 @@ static struct se_wwn *tcm_remote_make_wwn(
char *ptr;
int ret, off = 0;
- remote_hba = kzalloc(sizeof(*remote_hba), GFP_KERNEL);
+ remote_hba = kzalloc_obj(*remote_hba, GFP_KERNEL);
if (!remote_hba)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/tc/tc.c b/drivers/tc/tc.c
index 0629f277f7b4..0cdb255f4f13 100644
--- a/drivers/tc/tc.c
+++ b/drivers/tc/tc.c
@@ -82,7 +82,7 @@ static void __init tc_bus_add_devices(struct tc_bus *tbus)
goto out_err;
/* Found a board, allocate it an entry in the list */
- tdev = kzalloc(sizeof(*tdev), GFP_KERNEL);
+ tdev = kzalloc_obj(*tdev, GFP_KERNEL);
if (!tdev) {
pr_err("tc%x: unable to allocate tc_dev\n", slot);
goto out_err;
diff --git a/drivers/tee/amdtee/call.c b/drivers/tee/amdtee/call.c
index 460b0c9e511f..3d25cee5c7d0 100644
--- a/drivers/tee/amdtee/call.c
+++ b/drivers/tee/amdtee/call.c
@@ -134,7 +134,7 @@ static u32 get_ta_refcount(u32 ta_handle)
if (ta_data->ta_handle == ta_handle)
return ++ta_data->refcount;
- ta_data = kzalloc(sizeof(*ta_data), GFP_KERNEL);
+ ta_data = kzalloc_obj(*ta_data, GFP_KERNEL);
if (ta_data) {
ta_data->ta_handle = ta_handle;
ta_data->refcount = 1;
@@ -293,7 +293,7 @@ int handle_map_shmem(u32 count, struct shmem_desc *start, u32 *buf_id)
if (!count || !start || !buf_id)
return -EINVAL;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
diff --git a/drivers/tee/amdtee/core.c b/drivers/tee/amdtee/core.c
index fb39d9a19c69..1ff4834722f7 100644
--- a/drivers/tee/amdtee/core.c
+++ b/drivers/tee/amdtee/core.c
@@ -38,7 +38,7 @@ static int amdtee_open(struct tee_context *ctx)
{
struct amdtee_context_data *ctxdata;
- ctxdata = kzalloc(sizeof(*ctxdata), GFP_KERNEL);
+ ctxdata = kzalloc_obj(*ctxdata, GFP_KERNEL);
if (!ctxdata)
return -ENOMEM;
@@ -122,7 +122,7 @@ static struct amdtee_session *alloc_session(struct amdtee_context_data *ctxdata,
}
/* Allocate a new session and add to list */
- sess = kzalloc(sizeof(*sess), GFP_KERNEL);
+ sess = kzalloc_obj(*sess, GFP_KERNEL);
if (sess) {
sess->ta_handle = ta_handle;
kref_init(&sess->refcount);
@@ -351,7 +351,7 @@ int amdtee_map_shmem(struct tee_shm *shm)
if (!shm)
return -EINVAL;
- shmnode = kmalloc(sizeof(*shmnode), GFP_KERNEL);
+ shmnode = kmalloc_obj(*shmnode, GFP_KERNEL);
if (!shmnode)
return -ENOMEM;
@@ -465,11 +465,11 @@ static int __init amdtee_driver_init(void)
return rc;
}
- drv_data = kzalloc(sizeof(*drv_data), GFP_KERNEL);
+ drv_data = kzalloc_obj(*drv_data, GFP_KERNEL);
if (!drv_data)
return -ENOMEM;
- amdtee = kzalloc(sizeof(*amdtee), GFP_KERNEL);
+ amdtee = kzalloc_obj(*amdtee, GFP_KERNEL);
if (!amdtee) {
rc = -ENOMEM;
goto err_kfree_drv_data;
diff --git a/drivers/tee/amdtee/shm_pool.c b/drivers/tee/amdtee/shm_pool.c
index 6346e0bc8a64..fcb0d5da4bfd 100644
--- a/drivers/tee/amdtee/shm_pool.c
+++ b/drivers/tee/amdtee/shm_pool.c
@@ -59,7 +59,7 @@ static const struct tee_shm_pool_ops pool_ops = {
struct tee_shm_pool *amdtee_config_shm(void)
{
- struct tee_shm_pool *pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ struct tee_shm_pool *pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/tee/optee/call.c b/drivers/tee/optee/call.c
index 16eb953e14bb..5fa3edd9b233 100644
--- a/drivers/tee/optee/call.c
+++ b/drivers/tee/optee/call.c
@@ -293,7 +293,7 @@ struct optee_msg_arg *optee_get_msg_arg(struct tee_context *ctx,
/*
* No entry was found, let's allocate a new.
*/
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
res = ERR_PTR(-ENOMEM);
goto out;
@@ -404,7 +404,7 @@ int optee_open_session(struct tee_context *ctx,
if (rc)
goto out;
- sess = kzalloc(sizeof(*sess), GFP_KERNEL);
+ sess = kzalloc_obj(*sess, GFP_KERNEL);
if (!sess) {
rc = -ENOMEM;
goto out;
diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c
index 2d807bc748bc..ec07a8e1a585 100644
--- a/drivers/tee/optee/core.c
+++ b/drivers/tee/optee/core.c
@@ -125,7 +125,7 @@ int optee_open(struct tee_context *ctx, bool cap_memref_null)
struct tee_device *teedev = ctx->teedev;
struct optee *optee = tee_get_drvdata(teedev);
- ctxdata = kzalloc(sizeof(*ctxdata), GFP_KERNEL);
+ ctxdata = kzalloc_obj(*ctxdata, GFP_KERNEL);
if (!ctxdata)
return -ENOMEM;
diff --git a/drivers/tee/optee/device.c b/drivers/tee/optee/device.c
index 950b4661d5df..3f272c356ce4 100644
--- a/drivers/tee/optee/device.c
+++ b/drivers/tee/optee/device.c
@@ -81,7 +81,7 @@ static int optee_register_device(const uuid_t *device_uuid, u32 func)
struct tee_client_device *optee_device = NULL;
int rc;
- optee_device = kzalloc(sizeof(*optee_device), GFP_KERNEL);
+ optee_device = kzalloc_obj(*optee_device, GFP_KERNEL);
if (!optee_device)
return -ENOMEM;
diff --git a/drivers/tee/optee/ffa_abi.c b/drivers/tee/optee/ffa_abi.c
index 8fc72aa95722..53ec3204b075 100644
--- a/drivers/tee/optee/ffa_abi.c
+++ b/drivers/tee/optee/ffa_abi.c
@@ -78,7 +78,7 @@ static int optee_shm_add_ffa_handle(struct optee *optee, struct tee_shm *shm,
struct shm_rhash *r;
int rc;
- r = kmalloc(sizeof(*r), GFP_KERNEL);
+ r = kmalloc_obj(*r, GFP_KERNEL);
if (!r)
return -ENOMEM;
r->shm = shm;
@@ -404,7 +404,7 @@ static const struct tee_shm_pool_ops pool_ffa_ops = {
*/
static struct tee_shm_pool *optee_ffa_shm_pool_alloc_pages(void)
{
- struct tee_shm_pool *pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ struct tee_shm_pool *pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return ERR_PTR(-ENOMEM);
@@ -697,7 +697,7 @@ static int optee_ffa_lend_protmem(struct optee *optee, struct tee_shm *protmem,
unsigned int n;
int rc;
- mem_attr = kcalloc(ma_count, sizeof(*mem_attr), GFP_KERNEL);
+ mem_attr = kzalloc_objs(*mem_attr, ma_count, GFP_KERNEL);
for (n = 0; n < ma_count; n++) {
mem_attr[n].receiver = mem_attrs[n] & U16_MAX;
mem_attr[n].attrs = mem_attrs[n] >> 16;
@@ -1077,7 +1077,7 @@ static int optee_ffa_probe(struct ffa_device *ffa_dev)
if (sec_caps & OPTEE_FFA_SEC_CAP_ARG_OFFSET)
arg_cache_flags |= OPTEE_SHM_ARG_SHARED;
- optee = kzalloc(sizeof(*optee), GFP_KERNEL);
+ optee = kzalloc_obj(*optee, GFP_KERNEL);
if (!optee)
return -ENOMEM;
diff --git a/drivers/tee/optee/notif.c b/drivers/tee/optee/notif.c
index 1970880c796f..7ce65c8a07cf 100644
--- a/drivers/tee/optee/notif.c
+++ b/drivers/tee/optee/notif.c
@@ -38,7 +38,7 @@ int optee_notif_wait(struct optee *optee, u_int key, u32 timeout)
if (key > optee->notif.max_key)
return -EINVAL;
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
init_completion(&entry->c);
diff --git a/drivers/tee/optee/protmem.c b/drivers/tee/optee/protmem.c
index 2eba48d5ac73..086df220f758 100644
--- a/drivers/tee/optee/protmem.c
+++ b/drivers/tee/optee/protmem.c
@@ -294,7 +294,7 @@ struct tee_protmem_pool *optee_protmem_alloc_dyn_pool(struct optee *optee,
u_int pa_width;
int rc;
- rp = kzalloc(sizeof(*rp), GFP_KERNEL);
+ rp = kzalloc_obj(*rp, GFP_KERNEL);
if (!rp)
return ERR_PTR(-ENOMEM);
rp->use_case = id;
diff --git a/drivers/tee/optee/rpc.c b/drivers/tee/optee/rpc.c
index 1758eb7e6e8b..ef80f668a6bc 100644
--- a/drivers/tee/optee/rpc.c
+++ b/drivers/tee/optee/rpc.c
@@ -55,8 +55,7 @@ static void handle_rpc_func_cmd_i2c_transfer(struct tee_context *ctx,
return;
}
- params = kmalloc_array(arg->num_params, sizeof(struct tee_param),
- GFP_KERNEL);
+ params = kmalloc_objs(struct tee_param, arg->num_params, GFP_KERNEL);
if (!params) {
arg->ret = TEEC_ERROR_OUT_OF_MEMORY;
return;
@@ -192,8 +191,7 @@ static void handle_rpc_supp_cmd(struct tee_context *ctx, struct optee *optee,
arg->ret_origin = TEEC_ORIGIN_COMMS;
- params = kmalloc_array(arg->num_params, sizeof(struct tee_param),
- GFP_KERNEL);
+ params = kmalloc_objs(struct tee_param, arg->num_params, GFP_KERNEL);
if (!params) {
arg->ret = TEEC_ERROR_OUT_OF_MEMORY;
return;
diff --git a/drivers/tee/optee/smc_abi.c b/drivers/tee/optee/smc_abi.c
index 51fae1ab8ef8..3d33b8d6af37 100644
--- a/drivers/tee/optee/smc_abi.c
+++ b/drivers/tee/optee/smc_abi.c
@@ -626,7 +626,7 @@ static const struct tee_shm_pool_ops pool_ops = {
*/
static struct tee_shm_pool *optee_shm_pool_alloc_pages(void)
{
- struct tee_shm_pool *pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ struct tee_shm_pool *pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return ERR_PTR(-ENOMEM);
@@ -1816,7 +1816,7 @@ static int optee_probe(struct platform_device *pdev)
if (IS_ERR(pool))
return PTR_ERR(pool);
- optee = kzalloc(sizeof(*optee), GFP_KERNEL);
+ optee = kzalloc_obj(*optee, GFP_KERNEL);
if (!optee) {
rc = -ENOMEM;
goto err_free_shm_pool;
diff --git a/drivers/tee/optee/supp.c b/drivers/tee/optee/supp.c
index d0f397c90242..3562cb80a95a 100644
--- a/drivers/tee/optee/supp.c
+++ b/drivers/tee/optee/supp.c
@@ -89,7 +89,7 @@ u32 optee_supp_thrd_req(struct tee_context *ctx, u32 func, size_t num_params,
if (!supp->ctx && ctx->supp_nowait)
return TEEC_ERROR_COMMUNICATION;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return TEEC_ERROR_OUT_OF_MEMORY;
diff --git a/drivers/tee/qcomtee/call.c b/drivers/tee/qcomtee/call.c
index 8f8830f0df26..cd138adb5e17 100644
--- a/drivers/tee/qcomtee/call.c
+++ b/drivers/tee/qcomtee/call.c
@@ -416,8 +416,9 @@ static int qcomtee_object_invoke(struct tee_context *ctx,
return -ENOMEM;
/* +1 for ending QCOMTEE_ARG_TYPE_INV. */
- struct qcomtee_arg *u __free(kfree) = kcalloc(arg->num_params + 1, sizeof(*u),
- GFP_KERNEL);
+ struct qcomtee_arg *u __free(kfree) = kzalloc_objs(*u,
+ arg->num_params + 1,
+ GFP_KERNEL);
if (!u)
return -ENOMEM;
@@ -562,8 +563,8 @@ static int qcomtee_supp_send(struct tee_context *ctx, u32 errno, u32 num_params,
static int qcomtee_open(struct tee_context *ctx)
{
- struct qcomtee_context_data *ctxdata __free(kfree) = kzalloc(sizeof(*ctxdata),
- GFP_KERNEL);
+ struct qcomtee_context_data *ctxdata __free(kfree) = kzalloc_obj(*ctxdata,
+ GFP_KERNEL);
if (!ctxdata)
return -ENOMEM;
@@ -706,7 +707,7 @@ static int qcomtee_probe(struct platform_device *pdev)
struct qcomtee *qcomtee;
int err;
- qcomtee = kzalloc(sizeof(*qcomtee), GFP_KERNEL);
+ qcomtee = kzalloc_obj(*qcomtee, GFP_KERNEL);
if (!qcomtee)
return -ENOMEM;
diff --git a/drivers/tee/qcomtee/core.c b/drivers/tee/qcomtee/core.c
index ecd04403591c..ab477bbc8439 100644
--- a/drivers/tee/qcomtee/core.c
+++ b/drivers/tee/qcomtee/core.c
@@ -54,7 +54,7 @@ qcomtee_qtee_object_alloc(struct qcomtee_object_invoke_ctx *oic,
struct qcomtee *qcomtee = tee_get_drvdata(oic->ctx->teedev);
struct qcomtee_object *object;
- object = kzalloc(sizeof(*object), GFP_KERNEL);
+ object = kzalloc_obj(*object, GFP_KERNEL);
if (!object)
return NULL_QCOMTEE_OBJECT;
diff --git a/drivers/tee/qcomtee/mem_obj.c b/drivers/tee/qcomtee/mem_obj.c
index a16f8fc39b8d..01bc8dcc22e7 100644
--- a/drivers/tee/qcomtee/mem_obj.c
+++ b/drivers/tee/qcomtee/mem_obj.c
@@ -91,8 +91,8 @@ int qcomtee_memobj_param_to_object(struct qcomtee_object **object,
struct tee_shm *shm;
int err;
- struct qcomtee_mem_object *mem_object __free(kfree) = kzalloc(sizeof(*mem_object),
- GFP_KERNEL);
+ struct qcomtee_mem_object *mem_object __free(kfree) = kzalloc_obj(*mem_object,
+ GFP_KERNEL);
if (!mem_object)
return -ENOMEM;
diff --git a/drivers/tee/qcomtee/qcomtee_object.h b/drivers/tee/qcomtee/qcomtee_object.h
index 5221449be7db..d763f90c62bb 100644
--- a/drivers/tee/qcomtee/qcomtee_object.h
+++ b/drivers/tee/qcomtee/qcomtee_object.h
@@ -176,7 +176,7 @@ qcomtee_object_invoke_ctx_alloc(struct tee_context *ctx)
{
struct qcomtee_object_invoke_ctx *oic;
- oic = kzalloc(sizeof(*oic), GFP_KERNEL);
+ oic = kzalloc_obj(*oic, GFP_KERNEL);
if (oic)
oic->ctx = ctx;
return oic;
diff --git a/drivers/tee/qcomtee/shm.c b/drivers/tee/qcomtee/shm.c
index 580bd25f98ed..7bef13767e25 100644
--- a/drivers/tee/qcomtee/shm.c
+++ b/drivers/tee/qcomtee/shm.c
@@ -140,7 +140,7 @@ struct tee_shm_pool *qcomtee_shm_pool_alloc(void)
{
struct tee_shm_pool *pool;
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/tee/qcomtee/user_obj.c b/drivers/tee/qcomtee/user_obj.c
index 6aa3aefd67f0..d19c6589574a 100644
--- a/drivers/tee/qcomtee/user_obj.c
+++ b/drivers/tee/qcomtee/user_obj.c
@@ -326,7 +326,7 @@ static void qcomtee_user_object_release(struct qcomtee_object *object)
if (!uo->notify)
goto out_no_notify;
- ureq = kzalloc(sizeof(*ureq), GFP_KERNEL);
+ ureq = kzalloc_obj(*ureq, GFP_KERNEL);
if (!ureq)
goto out_no_notify;
@@ -370,7 +370,7 @@ int qcomtee_user_param_to_object(struct qcomtee_object **object,
int err;
struct qcomtee_user_object *user_object __free(kfree) =
- kzalloc(sizeof(*user_object), GFP_KERNEL);
+ kzalloc_obj(*user_object, GFP_KERNEL);
if (!user_object)
return -ENOMEM;
diff --git a/drivers/tee/tee_core.c b/drivers/tee/tee_core.c
index 6c49e2e383c6..29df8cd1efd2 100644
--- a/drivers/tee/tee_core.c
+++ b/drivers/tee/tee_core.c
@@ -51,7 +51,7 @@ struct tee_context *teedev_open(struct tee_device *teedev)
if (!tee_device_get(teedev))
return ERR_PTR(-EINVAL);
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
rc = -ENOMEM;
goto err;
@@ -560,8 +560,8 @@ static int tee_ioctl_open_session(struct tee_context *ctx,
return -EINVAL;
if (arg.num_params) {
- params = kcalloc(arg.num_params, sizeof(struct tee_param),
- GFP_KERNEL);
+ params = kzalloc_objs(struct tee_param, arg.num_params,
+ GFP_KERNEL);
if (!params)
return -ENOMEM;
uparams = uarg->params;
@@ -638,8 +638,8 @@ static int tee_ioctl_invoke(struct tee_context *ctx,
return -EINVAL;
if (arg.num_params) {
- params = kcalloc(arg.num_params, sizeof(struct tee_param),
- GFP_KERNEL);
+ params = kzalloc_objs(struct tee_param, arg.num_params,
+ GFP_KERNEL);
if (!params)
return -ENOMEM;
uparams = uarg->params;
@@ -699,8 +699,8 @@ static int tee_ioctl_object_invoke(struct tee_context *ctx,
return -EINVAL;
if (arg.num_params) {
- params = kcalloc(arg.num_params, sizeof(struct tee_param),
- GFP_KERNEL);
+ params = kzalloc_objs(struct tee_param, arg.num_params,
+ GFP_KERNEL);
if (!params)
return -ENOMEM;
uparams = uarg->params;
@@ -844,7 +844,7 @@ static int tee_ioctl_supp_recv(struct tee_context *ctx,
if (size_add(sizeof(*uarg), TEE_IOCTL_PARAM_SIZE(num_params)) != buf.buf_len)
return -EINVAL;
- params = kcalloc(num_params, sizeof(struct tee_param), GFP_KERNEL);
+ params = kzalloc_objs(struct tee_param, num_params, GFP_KERNEL);
if (!params)
return -ENOMEM;
@@ -958,7 +958,7 @@ static int tee_ioctl_supp_send(struct tee_context *ctx,
if (size_add(sizeof(*uarg), TEE_IOCTL_PARAM_SIZE(num_params)) > buf.buf_len)
return -EINVAL;
- params = kcalloc(num_params, sizeof(struct tee_param), GFP_KERNEL);
+ params = kzalloc_objs(struct tee_param, num_params, GFP_KERNEL);
if (!params)
return -ENOMEM;
@@ -1052,7 +1052,7 @@ struct tee_device *tee_device_alloc(const struct tee_desc *teedesc,
!teedesc->ops->release)
return ERR_PTR(-EINVAL);
- teedev = kzalloc(sizeof(*teedev), GFP_KERNEL);
+ teedev = kzalloc_obj(*teedev, GFP_KERNEL);
if (!teedev) {
ret = ERR_PTR(-ENOMEM);
goto err;
diff --git a/drivers/tee/tee_heap.c b/drivers/tee/tee_heap.c
index d8d7735cdffb..71e50d9573c7 100644
--- a/drivers/tee/tee_heap.c
+++ b/drivers/tee/tee_heap.c
@@ -94,7 +94,7 @@ static int tee_heap_attach(struct dma_buf *dmabuf,
struct tee_heap_attachment *a;
int ret;
- a = kzalloc(sizeof(*a), GFP_KERNEL);
+ a = kzalloc_obj(*a, GFP_KERNEL);
if (!a)
return -ENOMEM;
@@ -188,7 +188,7 @@ static struct dma_buf *tee_dma_heap_alloc(struct dma_heap *heap,
if (!teedev)
return ERR_PTR(-EINVAL);
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf) {
dmabuf = ERR_PTR(-ENOMEM);
goto err;
@@ -260,7 +260,7 @@ static int alloc_dma_heap(struct tee_device *teedev, enum tee_dma_heap_id id,
return -ENOMEM;
}
- h = kzalloc(sizeof(*h), GFP_KERNEL);
+ h = kzalloc_obj(*h, GFP_KERNEL);
if (!h)
return -ENOMEM;
h->id = id;
@@ -472,7 +472,7 @@ struct tee_protmem_pool *tee_protmem_static_pool_alloc(phys_addr_t paddr,
if (!pfn_valid(PHYS_PFN(paddr)))
return ERR_PTR(-EINVAL);
- stp = kzalloc(sizeof(*stp), GFP_KERNEL);
+ stp = kzalloc_obj(*stp, GFP_KERNEL);
if (!stp)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/tee/tee_shm.c b/drivers/tee/tee_shm.c
index 4a47de4bb2e5..1ed278fc9e4a 100644
--- a/drivers/tee/tee_shm.c
+++ b/drivers/tee/tee_shm.c
@@ -106,7 +106,7 @@ static struct tee_shm *shm_alloc_helper(struct tee_context *ctx, size_t size,
goto err_dev_put;
}
- shm = kzalloc(sizeof(*shm), GFP_KERNEL);
+ shm = kzalloc_obj(*shm, GFP_KERNEL);
if (!shm) {
ret = ERR_PTR(-ENOMEM);
goto err_dev_put;
@@ -214,7 +214,7 @@ struct tee_shm *tee_shm_register_fd(struct tee_context *ctx, int fd)
teedev_ctx_get(ctx);
- ref = kzalloc(sizeof(*ref), GFP_KERNEL);
+ ref = kzalloc_obj(*ref, GFP_KERNEL);
if (!ref) {
rc = -ENOMEM;
goto err_put_tee;
@@ -315,7 +315,7 @@ struct tee_shm *tee_shm_alloc_dma_mem(struct tee_context *ctx,
if (!page)
goto err_put_teedev;
- dma_mem = kzalloc(sizeof(*dma_mem), GFP_KERNEL);
+ dma_mem = kzalloc_obj(*dma_mem, GFP_KERNEL);
if (!dma_mem)
goto err_free_pages;
@@ -373,7 +373,7 @@ int tee_dyn_shm_alloc_helper(struct tee_shm *shm, size_t size, size_t align,
shm->paddr = virt_to_phys(shm->kaddr);
shm->size = nr_pages * PAGE_SIZE;
- pages = kcalloc(nr_pages, sizeof(*pages), GFP_KERNEL);
+ pages = kzalloc_objs(*pages, nr_pages, GFP_KERNEL);
if (!pages) {
rc = -ENOMEM;
goto err_pages;
@@ -438,7 +438,7 @@ register_shm_helper(struct tee_context *ctx, struct iov_iter *iter, u32 flags,
teedev_ctx_get(ctx);
- shm = kzalloc(sizeof(*shm), GFP_KERNEL);
+ shm = kzalloc_obj(*shm, GFP_KERNEL);
if (!shm) {
ret = ERR_PTR(-ENOMEM);
goto err_ctx_put;
@@ -456,7 +456,7 @@ register_shm_helper(struct tee_context *ctx, struct iov_iter *iter, u32 flags,
goto err_ctx_put;
}
- shm->pages = kcalloc(num_pages, sizeof(*shm->pages), GFP_KERNEL);
+ shm->pages = kzalloc_objs(*shm->pages, num_pages, GFP_KERNEL);
if (!shm->pages) {
ret = ERR_PTR(-ENOMEM);
goto err_free_shm;
diff --git a/drivers/tee/tee_shm_pool.c b/drivers/tee/tee_shm_pool.c
index 80004b55628d..fc82c689c29e 100644
--- a/drivers/tee/tee_shm_pool.c
+++ b/drivers/tee/tee_shm_pool.c
@@ -65,7 +65,7 @@ struct tee_shm_pool *tee_shm_pool_alloc_res_mem(unsigned long vaddr,
if (vaddr & page_mask || paddr & page_mask || size & page_mask)
return ERR_PTR(-EINVAL);
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/tee/tstee/core.c b/drivers/tee/tstee/core.c
index 533425e9e9e7..4a4aa2bc5ab6 100644
--- a/drivers/tee/tstee/core.c
+++ b/drivers/tee/tstee/core.c
@@ -59,7 +59,7 @@ static int tstee_open(struct tee_context *ctx)
{
struct ts_context_data *ctxdata;
- ctxdata = kzalloc(sizeof(*ctxdata), GFP_KERNEL);
+ ctxdata = kzalloc_obj(*ctxdata, GFP_KERNEL);
if (!ctxdata)
return -ENOMEM;
@@ -122,7 +122,7 @@ static int tstee_open_session(struct tee_context *ctx,
if (ffa_args[TS_RPC_SERVICE_INFO_IFACE] > U8_MAX)
return -EINVAL;
- sess = kzalloc(sizeof(*sess), GFP_KERNEL);
+ sess = kzalloc_obj(*sess, GFP_KERNEL);
if (!sess)
return -ENOMEM;
@@ -376,7 +376,7 @@ static const struct tee_shm_pool_ops pool_ops = {
static struct tee_shm_pool *tstee_create_shm_pool(void)
{
- struct tee_shm_pool *pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ struct tee_shm_pool *pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return ERR_PTR(-ENOMEM);
@@ -414,7 +414,7 @@ static int tstee_probe(struct ffa_device *ffa_dev)
if (!tstee_check_rpc_compatible(ffa_dev))
return -EINVAL;
- tstee = kzalloc(sizeof(*tstee), GFP_KERNEL);
+ tstee = kzalloc_obj(*tstee, GFP_KERNEL);
if (!tstee)
return -ENOMEM;
diff --git a/drivers/thermal/cpufreq_cooling.c b/drivers/thermal/cpufreq_cooling.c
index 6b7ab1814c12..d0bb782ff734 100644
--- a/drivers/thermal/cpufreq_cooling.c
+++ b/drivers/thermal/cpufreq_cooling.c
@@ -371,9 +371,8 @@ static int allocate_idle_time(struct cpufreq_cooling_device *cpufreq_cdev)
{
unsigned int num_cpus = cpumask_weight(cpufreq_cdev->policy->related_cpus);
- cpufreq_cdev->idle_time = kcalloc(num_cpus,
- sizeof(*cpufreq_cdev->idle_time),
- GFP_KERNEL);
+ cpufreq_cdev->idle_time = kzalloc_objs(*cpufreq_cdev->idle_time,
+ num_cpus, GFP_KERNEL);
if (!cpufreq_cdev->idle_time)
return -ENOMEM;
@@ -543,7 +542,7 @@ __cpufreq_cooling_register(struct device_node *np,
return ERR_PTR(-ENODEV);
}
- cpufreq_cdev = kzalloc(sizeof(*cpufreq_cdev), GFP_KERNEL);
+ cpufreq_cdev = kzalloc_obj(*cpufreq_cdev, GFP_KERNEL);
if (!cpufreq_cdev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/thermal/cpuidle_cooling.c b/drivers/thermal/cpuidle_cooling.c
index f678c1281862..5a16d4e7e698 100644
--- a/drivers/thermal/cpuidle_cooling.c
+++ b/drivers/thermal/cpuidle_cooling.c
@@ -179,7 +179,7 @@ static int __cpuidle_cooling_register(struct device_node *np,
char *name;
int ret;
- idle_cdev = kzalloc(sizeof(*idle_cdev), GFP_KERNEL);
+ idle_cdev = kzalloc_obj(*idle_cdev, GFP_KERNEL);
if (!idle_cdev) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/thermal/devfreq_cooling.c b/drivers/thermal/devfreq_cooling.c
index 8fd7cf1932cd..72fb23de5f55 100644
--- a/drivers/thermal/devfreq_cooling.c
+++ b/drivers/thermal/devfreq_cooling.c
@@ -402,7 +402,7 @@ of_devfreq_cooling_register_power(struct device_node *np, struct devfreq *df,
int err, num_opps;
- dfc = kzalloc(sizeof(*dfc), GFP_KERNEL);
+ dfc = kzalloc_obj(*dfc, GFP_KERNEL);
if (!dfc)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/thermal/gov_power_allocator.c b/drivers/thermal/gov_power_allocator.c
index 0d9f636c80f4..696932ecb489 100644
--- a/drivers/thermal/gov_power_allocator.c
+++ b/drivers/thermal/gov_power_allocator.c
@@ -622,8 +622,7 @@ static int allocate_actors_buffer(struct power_allocator_params *params,
goto clean_state;
}
- params->power = kcalloc(num_actors, sizeof(struct power_actor),
- GFP_KERNEL);
+ params->power = kzalloc_objs(struct power_actor, num_actors, GFP_KERNEL);
if (!params->power) {
ret = -ENOMEM;
goto clean_state;
@@ -699,7 +698,7 @@ static int power_allocator_bind(struct thermal_zone_device *tz)
struct power_allocator_params *params;
int ret;
- params = kzalloc(sizeof(*params), GFP_KERNEL);
+ params = kzalloc_obj(*params, GFP_KERNEL);
if (!params)
return -ENOMEM;
@@ -720,7 +719,7 @@ static int power_allocator_bind(struct thermal_zone_device *tz)
}
if (!tz->tzp) {
- tz->tzp = kzalloc(sizeof(*tz->tzp), GFP_KERNEL);
+ tz->tzp = kzalloc_obj(*tz->tzp, GFP_KERNEL);
if (!tz->tzp) {
ret = -ENOMEM;
goto free_params;
diff --git a/drivers/thermal/intel/int340x_thermal/acpi_thermal_rel.c b/drivers/thermal/intel/int340x_thermal/acpi_thermal_rel.c
index ce5d53be108b..d1876e76167a 100644
--- a/drivers/thermal/intel/int340x_thermal/acpi_thermal_rel.c
+++ b/drivers/thermal/intel/int340x_thermal/acpi_thermal_rel.c
@@ -89,7 +89,7 @@ int acpi_parse_trt(acpi_handle handle, int *trt_count, struct trt **trtp,
}
*trt_count = p->package.count;
- trts = kcalloc(*trt_count, sizeof(struct trt), GFP_KERNEL);
+ trts = kzalloc_objs(struct trt, *trt_count, GFP_KERNEL);
if (!trts) {
result = -ENOMEM;
goto end;
@@ -165,7 +165,7 @@ int acpi_parse_art(acpi_handle handle, int *art_count, struct art **artp,
/* ignore p->package.elements[0], as this is _ART Revision field */
*art_count = p->package.count - 1;
- arts = kcalloc(*art_count, sizeof(struct art), GFP_KERNEL);
+ arts = kzalloc_objs(struct art, *art_count, GFP_KERNEL);
if (!arts) {
result = -ENOMEM;
goto end;
@@ -253,7 +253,7 @@ static int acpi_parse_psvt(acpi_handle handle, int *psvt_count, struct psvt **ps
goto end;
}
- psvts = kcalloc(*psvt_count, sizeof(*psvts), GFP_KERNEL);
+ psvts = kzalloc_objs(*psvts, *psvt_count, GFP_KERNEL);
if (!psvts) {
result = -ENOMEM;
goto end;
diff --git a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
index 41d3bc3ed8a2..3a97718e2f5c 100644
--- a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
+++ b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
@@ -382,8 +382,7 @@ static int evaluate_odvp(struct int3400_thermal_priv *priv)
if (priv->odvp == NULL) {
priv->odvp_count = obj->package.count;
- priv->odvp = kmalloc_array(priv->odvp_count, sizeof(int),
- GFP_KERNEL);
+ priv->odvp = kmalloc_objs(int, priv->odvp_count, GFP_KERNEL);
if (!priv->odvp) {
ret = -ENOMEM;
goto out_err;
@@ -391,9 +390,8 @@ static int evaluate_odvp(struct int3400_thermal_priv *priv)
}
if (priv->odvp_attrs == NULL) {
- priv->odvp_attrs = kcalloc(priv->odvp_count,
- sizeof(struct odvp_attr),
- GFP_KERNEL);
+ priv->odvp_attrs = kzalloc_objs(struct odvp_attr,
+ priv->odvp_count, GFP_KERNEL);
if (!priv->odvp_attrs) {
ret = -ENOMEM;
goto out_err;
@@ -563,7 +561,7 @@ static int int3400_thermal_probe(struct platform_device *pdev)
if (!adev)
return -ENODEV;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c b/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c
index 3d9efe69d562..7db8fd86c4fd 100644
--- a/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c
+++ b/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c
@@ -123,7 +123,7 @@ struct int34x_thermal_zone *int340x_thermal_zone_add(struct acpi_device *adev,
acpi_status status;
int i, ret;
- int34x_zone = kzalloc(sizeof(*int34x_zone), GFP_KERNEL);
+ int34x_zone = kzalloc_obj(*int34x_zone, GFP_KERNEL);
if (!int34x_zone)
return ERR_PTR(-ENOMEM);
@@ -133,8 +133,9 @@ struct int34x_thermal_zone *int340x_thermal_zone_add(struct acpi_device *adev,
if (ACPI_SUCCESS(status))
int34x_zone->aux_trip_nr = trip_cnt;
- zone_trips = kcalloc(trip_cnt + INT340X_THERMAL_MAX_TRIP_COUNT,
- sizeof(*zone_trips), GFP_KERNEL);
+ zone_trips = kzalloc_objs(*zone_trips,
+ trip_cnt + INT340X_THERMAL_MAX_TRIP_COUNT,
+ GFP_KERNEL);
if (!zone_trips) {
ret = -ENOMEM;
goto err_trips_alloc;
diff --git a/drivers/thermal/intel/intel_hfi.c b/drivers/thermal/intel/intel_hfi.c
index 8a2f441cd2ec..5100ad1336ed 100644
--- a/drivers/thermal/intel/intel_hfi.c
+++ b/drivers/thermal/intel/intel_hfi.c
@@ -212,7 +212,7 @@ static void update_capabilities(struct hfi_instance *hfi_instance)
if (!cpu_count)
goto out;
- cpu_caps = kcalloc(cpu_count, sizeof(*cpu_caps), GFP_KERNEL);
+ cpu_caps = kzalloc_objs(*cpu_caps, cpu_count, GFP_KERNEL);
if (!cpu_caps)
goto out;
@@ -690,8 +690,8 @@ void __init intel_hfi_init(void)
* This allocation may fail. CPU hotplug callbacks must check
* for a null pointer.
*/
- hfi_instances = kcalloc(max_hfi_instances, sizeof(*hfi_instances),
- GFP_KERNEL);
+ hfi_instances = kzalloc_objs(*hfi_instances, max_hfi_instances,
+ GFP_KERNEL);
if (!hfi_instances)
return;
diff --git a/drivers/thermal/intel/intel_quark_dts_thermal.c b/drivers/thermal/intel/intel_quark_dts_thermal.c
index 89498eb29a89..38a0ae14b69d 100644
--- a/drivers/thermal/intel/intel_quark_dts_thermal.c
+++ b/drivers/thermal/intel/intel_quark_dts_thermal.c
@@ -336,7 +336,7 @@ static struct soc_sensor_entry *alloc_soc_dts(void)
int err;
u32 out;
- aux_entry = kzalloc(sizeof(*aux_entry), GFP_KERNEL);
+ aux_entry = kzalloc_obj(*aux_entry, GFP_KERNEL);
if (!aux_entry) {
err = -ENOMEM;
return ERR_PTR(-ENOMEM);
diff --git a/drivers/thermal/intel/intel_soc_dts_iosf.c b/drivers/thermal/intel/intel_soc_dts_iosf.c
index ea87439fe7a9..78123107ac06 100644
--- a/drivers/thermal/intel/intel_soc_dts_iosf.c
+++ b/drivers/thermal/intel/intel_soc_dts_iosf.c
@@ -320,7 +320,7 @@ intel_soc_dts_iosf_init(enum intel_soc_dts_interrupt_type intr_type,
if (tj_max < 0)
return ERR_PTR(tj_max);
- sensors = kzalloc(sizeof(*sensors), GFP_KERNEL);
+ sensors = kzalloc_obj(*sensors, GFP_KERNEL);
if (!sensors)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/thermal/intel/x86_pkg_temp_thermal.c b/drivers/thermal/intel/x86_pkg_temp_thermal.c
index aab5f9fca9c3..64cc0361d440 100644
--- a/drivers/thermal/intel/x86_pkg_temp_thermal.c
+++ b/drivers/thermal/intel/x86_pkg_temp_thermal.c
@@ -335,7 +335,7 @@ static int pkg_temp_thermal_device_add(unsigned int cpu)
return tj_max;
tj_max *= 1000;
- zonedev = kzalloc(sizeof(*zonedev), GFP_KERNEL);
+ zonedev = kzalloc_obj(*zonedev, GFP_KERNEL);
if (!zonedev)
return -ENOMEM;
@@ -492,8 +492,7 @@ static int __init pkg_temp_thermal_init(void)
return -ENODEV;
max_id = topology_max_packages() * topology_max_dies_per_package();
- zones = kcalloc(max_id, sizeof(struct zone_device *),
- GFP_KERNEL);
+ zones = kzalloc_objs(struct zone_device *, max_id, GFP_KERNEL);
if (!zones)
return -ENOMEM;
diff --git a/drivers/thermal/k3_j72xx_bandgap.c b/drivers/thermal/k3_j72xx_bandgap.c
index d9ec3bf19496..138a8137f790 100644
--- a/drivers/thermal/k3_j72xx_bandgap.c
+++ b/drivers/thermal/k3_j72xx_bandgap.c
@@ -462,7 +462,7 @@ static int k3_j72xx_bandgap_probe(struct platform_device *pdev)
goto err_alloc;
}
- ref_table = kcalloc(TABLE_SIZE, sizeof(*ref_table), GFP_KERNEL);
+ ref_table = kzalloc_objs(*ref_table, TABLE_SIZE, GFP_KERNEL);
if (!ref_table) {
ret = -ENOMEM;
goto err_alloc;
diff --git a/drivers/thermal/testing/zone.c b/drivers/thermal/testing/zone.c
index c12c405225bb..014e6e5f0e83 100644
--- a/drivers/thermal/testing/zone.c
+++ b/drivers/thermal/testing/zone.c
@@ -186,12 +186,13 @@ int tt_add_tz(void)
{
int ret;
- struct tt_thermal_zone *tt_zone __free(kfree) = kzalloc(sizeof(*tt_zone),
- GFP_KERNEL);
+ struct tt_thermal_zone *tt_zone __free(kfree) = kzalloc_obj(*tt_zone,
+ GFP_KERNEL);
if (!tt_zone)
return -ENOMEM;
- struct tt_work *tt_work __free(kfree) = kzalloc(sizeof(*tt_work), GFP_KERNEL);
+ struct tt_work *tt_work __free(kfree) = kzalloc_obj(*tt_work,
+ GFP_KERNEL);
if (!tt_work)
return -ENOMEM;
@@ -244,7 +245,8 @@ int tt_del_tz(const char *arg)
if (ret != 1)
return -EINVAL;
- struct tt_work *tt_work __free(kfree) = kzalloc(sizeof(*tt_work), GFP_KERNEL);
+ struct tt_work *tt_work __free(kfree) = kzalloc_obj(*tt_work,
+ GFP_KERNEL);
if (!tt_work)
return -ENOMEM;
@@ -330,11 +332,13 @@ int tt_zone_add_trip(const char *arg)
{
int id;
- struct tt_work *tt_work __free(kfree) = kzalloc(sizeof(*tt_work), GFP_KERNEL);
+ struct tt_work *tt_work __free(kfree) = kzalloc_obj(*tt_work,
+ GFP_KERNEL);
if (!tt_work)
return -ENOMEM;
- struct tt_trip *tt_trip __free(kfree) = kzalloc(sizeof(*tt_trip), GFP_KERNEL);
+ struct tt_trip *tt_trip __free(kfree) = kzalloc_obj(*tt_trip,
+ GFP_KERNEL);
if (!tt_trip)
return -ENOMEM;
@@ -391,8 +395,9 @@ static int tt_zone_register_tz(struct tt_thermal_zone *tt_zone)
if (tt_zone->tz)
return -EINVAL;
- struct thermal_trip *trips __free(kfree) = kcalloc(tt_zone->num_trips,
- sizeof(*trips), GFP_KERNEL);
+ struct thermal_trip *trips __free(kfree) = kzalloc_objs(*trips,
+ tt_zone->num_trips,
+ GFP_KERNEL);
if (!trips)
return -ENOMEM;
diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
index dc9f7416f7ff..daaba832b2a0 100644
--- a/drivers/thermal/thermal_core.c
+++ b/drivers/thermal/thermal_core.c
@@ -844,7 +844,7 @@ static int thermal_bind_cdev_to_trip(struct thermal_zone_device *tz,
if (cool_spec->lower > cool_spec->upper || cool_spec->upper > cdev->max_state)
return -EINVAL;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
@@ -1070,7 +1070,7 @@ __thermal_cooling_device_register(struct device_node *np,
if (!thermal_class)
return ERR_PTR(-ENODEV);
- cdev = kzalloc(sizeof(*cdev), GFP_KERNEL);
+ cdev = kzalloc_obj(*cdev, GFP_KERNEL);
if (!cdev)
return ERR_PTR(-ENOMEM);
@@ -1542,7 +1542,7 @@ thermal_zone_device_register_with_trips(const char *type,
if (!thermal_class)
return ERR_PTR(-ENODEV);
- tz = kzalloc(struct_size(tz, trips, num_trips), GFP_KERNEL);
+ tz = kzalloc_flex(*tz, trips, num_trips, GFP_KERNEL);
if (!tz)
return ERR_PTR(-ENOMEM);
@@ -1899,7 +1899,7 @@ static int __init thermal_init(void)
if (result)
goto unregister_netlink;
- thermal_class = kzalloc(sizeof(*thermal_class), GFP_KERNEL);
+ thermal_class = kzalloc_obj(*thermal_class, GFP_KERNEL);
if (!thermal_class) {
result = -ENOMEM;
goto unregister_governors;
diff --git a/drivers/thermal/thermal_debugfs.c b/drivers/thermal/thermal_debugfs.c
index 11668f5b3c28..19b050cb4f70 100644
--- a/drivers/thermal/thermal_debugfs.c
+++ b/drivers/thermal/thermal_debugfs.c
@@ -193,7 +193,7 @@ static struct thermal_debugfs *thermal_debugfs_add_id(struct dentry *d, int id)
struct thermal_debugfs *thermal_dbg;
char ids[IDSLENGTH];
- thermal_dbg = kzalloc(sizeof(*thermal_dbg), GFP_KERNEL);
+ thermal_dbg = kzalloc_obj(*thermal_dbg, GFP_KERNEL);
if (!thermal_dbg)
return NULL;
@@ -226,7 +226,7 @@ thermal_debugfs_cdev_record_alloc(struct thermal_debugfs *thermal_dbg,
{
struct cdev_record *cdev_record;
- cdev_record = kzalloc(sizeof(*cdev_record), GFP_KERNEL);
+ cdev_record = kzalloc_obj(*cdev_record, GFP_KERNEL);
if (!cdev_record)
return NULL;
@@ -559,7 +559,7 @@ static struct tz_episode *thermal_debugfs_tz_event_alloc(struct thermal_zone_dev
struct tz_episode *tze;
int i;
- tze = kzalloc(struct_size(tze, trip_stats, tz->num_trips), GFP_KERNEL);
+ tze = kzalloc_flex(*tze, trip_stats, tz->num_trips, GFP_KERNEL);
if (!tze)
return NULL;
@@ -876,7 +876,7 @@ void thermal_debug_tz_add(struct thermal_zone_device *tz)
tz_dbg->tz = tz;
- tz_dbg->trips_crossed = kcalloc(tz->num_trips, sizeof(int), GFP_KERNEL);
+ tz_dbg->trips_crossed = kzalloc_objs(int, tz->num_trips, GFP_KERNEL);
if (!tz_dbg->trips_crossed) {
thermal_debugfs_remove_id(thermal_dbg);
return;
diff --git a/drivers/thermal/thermal_hwmon.c b/drivers/thermal/thermal_hwmon.c
index faf1d0083890..f377175b2663 100644
--- a/drivers/thermal/thermal_hwmon.c
+++ b/drivers/thermal/thermal_hwmon.c
@@ -145,7 +145,7 @@ int thermal_add_hwmon_sysfs(struct thermal_zone_device *tz)
goto register_sys_interface;
}
- hwmon = kzalloc(sizeof(*hwmon), GFP_KERNEL);
+ hwmon = kzalloc_obj(*hwmon, GFP_KERNEL);
if (!hwmon)
return -ENOMEM;
@@ -160,7 +160,7 @@ int thermal_add_hwmon_sysfs(struct thermal_zone_device *tz)
}
register_sys_interface:
- temp = kzalloc(sizeof(*temp), GFP_KERNEL);
+ temp = kzalloc_obj(*temp, GFP_KERNEL);
if (!temp) {
result = -ENOMEM;
goto unregister_name;
diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c
index b6d0c92f5522..085a414d874b 100644
--- a/drivers/thermal/thermal_of.c
+++ b/drivers/thermal/thermal_of.c
@@ -107,7 +107,8 @@ static struct thermal_trip *thermal_of_trips_init(struct device_node *np, int *n
if (!count)
return NULL;
- struct thermal_trip *tt __free(kfree) = kcalloc(count, sizeof(*tt), GFP_KERNEL);
+ struct thermal_trip *tt __free(kfree) = kzalloc_objs(*tt, count,
+ GFP_KERNEL);
if (!tt)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/thermal/thermal_sysfs.c b/drivers/thermal/thermal_sysfs.c
index 2538c2dcf6a9..057460b2e7bb 100644
--- a/drivers/thermal/thermal_sysfs.c
+++ b/drivers/thermal/thermal_sysfs.c
@@ -392,7 +392,7 @@ static int create_trip_attrs(struct thermal_zone_device *tz)
struct attribute **attrs;
int i;
- attrs = kcalloc(tz->num_trips * 3 + 1, sizeof(*attrs), GFP_KERNEL);
+ attrs = kzalloc_objs(*attrs, tz->num_trips * 3 + 1, GFP_KERNEL);
if (!attrs)
return -ENOMEM;
@@ -465,7 +465,7 @@ int thermal_zone_create_device_groups(struct thermal_zone_device *tz)
/* we need one extra for trips and the NULL to terminate the array */
size = ARRAY_SIZE(thermal_zone_attribute_groups) + 2;
/* This also takes care of API requirement to be NULL terminated */
- groups = kcalloc(size, sizeof(*groups), GFP_KERNEL);
+ groups = kzalloc_objs(*groups, size, GFP_KERNEL);
if (!groups)
return -ENOMEM;
diff --git a/drivers/thermal/thermal_thresholds.c b/drivers/thermal/thermal_thresholds.c
index 38f5fd0e8930..421ddf907b6d 100644
--- a/drivers/thermal/thermal_thresholds.c
+++ b/drivers/thermal/thermal_thresholds.c
@@ -181,7 +181,7 @@ int thermal_thresholds_add(struct thermal_zone_device *tz,
t->direction |= direction;
} else {
- t = kmalloc(sizeof(*t), GFP_KERNEL);
+ t = kmalloc_obj(*t, GFP_KERNEL);
if (!t)
return -ENOMEM;
diff --git a/drivers/thunderbolt/ctl.c b/drivers/thunderbolt/ctl.c
index d7a535671404..3108727c4ef2 100644
--- a/drivers/thunderbolt/ctl.c
+++ b/drivers/thunderbolt/ctl.c
@@ -89,7 +89,7 @@ struct tb_cfg_request *tb_cfg_request_alloc(void)
{
struct tb_cfg_request *req;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return NULL;
@@ -333,7 +333,7 @@ static void tb_ctl_pkg_free(struct ctl_pkg *pkg)
static struct ctl_pkg *tb_ctl_pkg_alloc(struct tb_ctl *ctl)
{
- struct ctl_pkg *pkg = kzalloc(sizeof(*pkg), GFP_KERNEL);
+ struct ctl_pkg *pkg = kzalloc_obj(*pkg, GFP_KERNEL);
if (!pkg)
return NULL;
pkg->ctl = ctl;
@@ -654,7 +654,7 @@ struct tb_ctl *tb_ctl_alloc(struct tb_nhi *nhi, int index, int timeout_msec,
event_cb cb, void *cb_data)
{
int i;
- struct tb_ctl *ctl = kzalloc(sizeof(*ctl), GFP_KERNEL);
+ struct tb_ctl *ctl = kzalloc_obj(*ctl, GFP_KERNEL);
if (!ctl)
return NULL;
diff --git a/drivers/thunderbolt/debugfs.c b/drivers/thunderbolt/debugfs.c
index 45266ec72f88..7e2a59dddbbd 100644
--- a/drivers/thunderbolt/debugfs.c
+++ b/drivers/thunderbolt/debugfs.c
@@ -1657,7 +1657,7 @@ static struct tb_margining *margining_alloc(struct tb_port *port,
return NULL;
}
- margining = kzalloc(sizeof(*margining), GFP_KERNEL);
+ margining = kzalloc_obj(*margining, GFP_KERNEL);
if (!margining)
return NULL;
diff --git a/drivers/thunderbolt/dma_port.c b/drivers/thunderbolt/dma_port.c
index dc8ea188a114..ddbf5f9971fb 100644
--- a/drivers/thunderbolt/dma_port.c
+++ b/drivers/thunderbolt/dma_port.c
@@ -209,7 +209,7 @@ struct tb_dma_port *dma_port_alloc(struct tb_switch *sw)
if (port < 0)
return NULL;
- dma = kzalloc(sizeof(*dma), GFP_KERNEL);
+ dma = kzalloc_obj(*dma, GFP_KERNEL);
if (!dma)
return NULL;
diff --git a/drivers/thunderbolt/dma_test.c b/drivers/thunderbolt/dma_test.c
index 9e47a63f28e7..8298f25ef6bd 100644
--- a/drivers/thunderbolt/dma_test.c
+++ b/drivers/thunderbolt/dma_test.c
@@ -267,7 +267,7 @@ static int dma_test_submit_rx(struct dma_test *dt, size_t npackets)
struct dma_test_frame *tf;
dma_addr_t dma_addr;
- tf = kzalloc(sizeof(*tf), GFP_KERNEL);
+ tf = kzalloc_obj(*tf, GFP_KERNEL);
if (!tf)
return -ENOMEM;
@@ -318,7 +318,7 @@ static int dma_test_submit_tx(struct dma_test *dt, size_t npackets)
struct dma_test_frame *tf;
dma_addr_t dma_addr;
- tf = kzalloc(sizeof(*tf), GFP_KERNEL);
+ tf = kzalloc_obj(*tf, GFP_KERNEL);
if (!tf)
return -ENOMEM;
diff --git a/drivers/thunderbolt/domain.c b/drivers/thunderbolt/domain.c
index 3ced37b4a869..1e7268e26fc2 100644
--- a/drivers/thunderbolt/domain.c
+++ b/drivers/thunderbolt/domain.c
@@ -126,7 +126,7 @@ static ssize_t boot_acl_show(struct device *dev, struct device_attribute *attr,
ssize_t ret;
int i;
- uuids = kcalloc(tb->nboot_acl, sizeof(uuid_t), GFP_KERNEL);
+ uuids = kzalloc_objs(uuid_t, tb->nboot_acl, GFP_KERNEL);
if (!uuids)
return -ENOMEM;
@@ -181,7 +181,7 @@ static ssize_t boot_acl_store(struct device *dev, struct device_attribute *attr,
if (!str)
return -ENOMEM;
- acl = kcalloc(tb->nboot_acl, sizeof(uuid_t), GFP_KERNEL);
+ acl = kzalloc_objs(uuid_t, tb->nboot_acl, GFP_KERNEL);
if (!acl) {
ret = -ENOMEM;
goto err_free_str;
diff --git a/drivers/thunderbolt/icm.c b/drivers/thunderbolt/icm.c
index d339ba835376..fda1471c7ef8 100644
--- a/drivers/thunderbolt/icm.c
+++ b/drivers/thunderbolt/icm.c
@@ -427,7 +427,7 @@ static int icm_fr_get_route(struct tb *tb, u8 link, u8 depth, u64 *route)
int ret, index;
u8 i;
- switches = kcalloc(npackets, sizeof(*switches), GFP_KERNEL);
+ switches = kzalloc_objs(*switches, npackets, GFP_KERNEL);
if (!switches)
return -ENOMEM;
@@ -1769,7 +1769,7 @@ static void icm_handle_event(struct tb *tb, enum tb_cfg_pkg_type type,
{
struct icm_notification *n;
- n = kmalloc(sizeof(*n), GFP_KERNEL);
+ n = kmalloc_obj(*n, GFP_KERNEL);
if (!n)
return;
@@ -2246,7 +2246,7 @@ static int icm_usb4_switch_nvm_authenticate(struct tb *tb, u64 route)
struct tb_cfg_request *req;
int ret;
- auth = kzalloc(sizeof(*auth), GFP_KERNEL);
+ auth = kzalloc_obj(*auth, GFP_KERNEL);
if (!auth)
return -ENOMEM;
diff --git a/drivers/thunderbolt/nhi.c b/drivers/thunderbolt/nhi.c
index 6d0c9d37c55d..6431c411fb17 100644
--- a/drivers/thunderbolt/nhi.c
+++ b/drivers/thunderbolt/nhi.c
@@ -587,7 +587,7 @@ static struct tb_ring *tb_ring_alloc(struct tb_nhi *nhi, u32 hop, int size,
dev_dbg(&nhi->pdev->dev, "allocating %s ring %d of size %d\n",
transmit ? "TX" : "RX", hop, size);
- ring = kzalloc(sizeof(*ring), GFP_KERNEL);
+ ring = kzalloc_obj(*ring, GFP_KERNEL);
if (!ring)
return NULL;
diff --git a/drivers/thunderbolt/nvm.c b/drivers/thunderbolt/nvm.c
index 6901058b7ac0..ac9c5504cfc1 100644
--- a/drivers/thunderbolt/nvm.c
+++ b/drivers/thunderbolt/nvm.c
@@ -330,7 +330,7 @@ struct tb_nvm *tb_nvm_alloc(struct device *dev)
return ERR_PTR(-EOPNOTSUPP);
}
- nvm = kzalloc(sizeof(*nvm), GFP_KERNEL);
+ nvm = kzalloc_obj(*nvm, GFP_KERNEL);
if (!nvm)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/thunderbolt/path.c b/drivers/thunderbolt/path.c
index 50659bd55d7b..88311c6e599b 100644
--- a/drivers/thunderbolt/path.c
+++ b/drivers/thunderbolt/path.c
@@ -150,7 +150,7 @@ struct tb_path *tb_path_discover(struct tb_port *src, int src_hopid,
num_hops++;
}
- path = kzalloc(sizeof(*path), GFP_KERNEL);
+ path = kzalloc_obj(*path, GFP_KERNEL);
if (!path)
return NULL;
@@ -160,7 +160,7 @@ struct tb_path *tb_path_discover(struct tb_port *src, int src_hopid,
path->activated = true;
path->alloc_hopid = alloc_hopid;
- path->hops = kcalloc(num_hops, sizeof(*path->hops), GFP_KERNEL);
+ path->hops = kzalloc_objs(*path->hops, num_hops, GFP_KERNEL);
if (!path->hops) {
kfree(path);
return NULL;
@@ -245,7 +245,7 @@ struct tb_path *tb_path_alloc(struct tb *tb, struct tb_port *src, int src_hopid,
size_t num_hops;
int i, ret;
- path = kzalloc(sizeof(*path), GFP_KERNEL);
+ path = kzalloc_obj(*path, GFP_KERNEL);
if (!path)
return NULL;
@@ -267,7 +267,7 @@ struct tb_path *tb_path_alloc(struct tb *tb, struct tb_port *src, int src_hopid,
/* Each hop takes two ports */
num_hops = i / 2;
- path->hops = kcalloc(num_hops, sizeof(*path->hops), GFP_KERNEL);
+ path->hops = kzalloc_objs(*path->hops, num_hops, GFP_KERNEL);
if (!path->hops) {
kfree(path);
return NULL;
diff --git a/drivers/thunderbolt/property.c b/drivers/thunderbolt/property.c
index 31aa0516932a..a274c02d71c0 100644
--- a/drivers/thunderbolt/property.c
+++ b/drivers/thunderbolt/property.c
@@ -81,7 +81,7 @@ tb_property_alloc(const char *key, enum tb_property_type type)
{
struct tb_property *property;
- property = kzalloc(sizeof(*property), GFP_KERNEL);
+ property = kzalloc_obj(*property, GFP_KERNEL);
if (!property)
return NULL;
@@ -166,7 +166,7 @@ static struct tb_property_dir *__tb_property_parse_dir(const u32 *block,
unsigned int content_offset;
struct tb_property_dir *dir;
- dir = kzalloc(sizeof(*dir), GFP_KERNEL);
+ dir = kzalloc_obj(*dir, GFP_KERNEL);
if (!dir)
return NULL;
@@ -247,7 +247,7 @@ struct tb_property_dir *tb_property_create_dir(const uuid_t *uuid)
{
struct tb_property_dir *dir;
- dir = kzalloc(sizeof(*dir), GFP_KERNEL);
+ dir = kzalloc_obj(*dir, GFP_KERNEL);
if (!dir)
return NULL;
diff --git a/drivers/thunderbolt/retimer.c b/drivers/thunderbolt/retimer.c
index 13d64dbd2bc5..b95f5c19cca5 100644
--- a/drivers/thunderbolt/retimer.c
+++ b/drivers/thunderbolt/retimer.c
@@ -410,7 +410,7 @@ static int tb_retimer_add(struct tb_port *port, u8 index, u32 auth_status,
}
- rt = kzalloc(sizeof(*rt), GFP_KERNEL);
+ rt = kzalloc_obj(*rt, GFP_KERNEL);
if (!rt)
return -ENOMEM;
diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c
index e2732c575bad..90d62141ecd8 100644
--- a/drivers/thunderbolt/switch.c
+++ b/drivers/thunderbolt/switch.c
@@ -69,7 +69,7 @@ static void nvm_set_auth_status(const struct tb_switch *sw, u32 status)
st = __nvm_get_auth_status(sw);
if (!st) {
- st = kzalloc(sizeof(*st), GFP_KERNEL);
+ st = kzalloc_obj(*st, GFP_KERNEL);
if (!st)
goto unlock;
@@ -2475,7 +2475,7 @@ struct tb_switch *tb_switch_alloc(struct tb *tb, struct device *parent,
if (upstream_port < 0)
return ERR_PTR(upstream_port);
- sw = kzalloc(sizeof(*sw), GFP_KERNEL);
+ sw = kzalloc_obj(*sw, GFP_KERNEL);
if (!sw)
return ERR_PTR(-ENOMEM);
@@ -2503,8 +2503,8 @@ struct tb_switch *tb_switch_alloc(struct tb *tb, struct device *parent,
}
/* initialize ports */
- sw->ports = kcalloc(sw->config.max_port_number + 1, sizeof(*sw->ports),
- GFP_KERNEL);
+ sw->ports = kzalloc_objs(*sw->ports, sw->config.max_port_number + 1,
+ GFP_KERNEL);
if (!sw->ports) {
ret = -ENOMEM;
goto err_free_sw_ports;
@@ -2577,7 +2577,7 @@ tb_switch_alloc_safe_mode(struct tb *tb, struct device *parent, u64 route)
{
struct tb_switch *sw;
- sw = kzalloc(sizeof(*sw), GFP_KERNEL);
+ sw = kzalloc_obj(*sw, GFP_KERNEL);
if (!sw)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/thunderbolt/tb.c b/drivers/thunderbolt/tb.c
index 4f5f1dfc0fbf..4c3b2d48c4a0 100644
--- a/drivers/thunderbolt/tb.c
+++ b/drivers/thunderbolt/tb.c
@@ -94,7 +94,7 @@ static void tb_queue_hotplug(struct tb *tb, u64 route, u8 port, bool unplug)
{
struct tb_hotplug_event *ev;
- ev = kmalloc(sizeof(*ev), GFP_KERNEL);
+ ev = kmalloc_obj(*ev, GFP_KERNEL);
if (!ev)
return;
@@ -2862,7 +2862,7 @@ static void tb_queue_dp_bandwidth_request(struct tb *tb, u64 route, u8 port,
{
struct tb_hotplug_event *ev;
- ev = kmalloc(sizeof(*ev), GFP_KERNEL);
+ ev = kmalloc_obj(*ev, GFP_KERNEL);
if (!ev)
return;
diff --git a/drivers/thunderbolt/tunnel.c b/drivers/thunderbolt/tunnel.c
index 9fa95c595ecc..2d537ada98e1 100644
--- a/drivers/thunderbolt/tunnel.c
+++ b/drivers/thunderbolt/tunnel.c
@@ -180,11 +180,11 @@ static struct tb_tunnel *tb_tunnel_alloc(struct tb *tb, size_t npaths,
{
struct tb_tunnel *tunnel;
- tunnel = kzalloc(sizeof(*tunnel), GFP_KERNEL);
+ tunnel = kzalloc_obj(*tunnel, GFP_KERNEL);
if (!tunnel)
return NULL;
- tunnel->paths = kcalloc(npaths, sizeof(tunnel->paths[0]), GFP_KERNEL);
+ tunnel->paths = kzalloc_objs(tunnel->paths[0], npaths, GFP_KERNEL);
if (!tunnel->paths) {
kfree(tunnel);
return NULL;
diff --git a/drivers/thunderbolt/usb4_port.c b/drivers/thunderbolt/usb4_port.c
index b5e06237261b..642822b58b42 100644
--- a/drivers/thunderbolt/usb4_port.c
+++ b/drivers/thunderbolt/usb4_port.c
@@ -305,7 +305,7 @@ struct usb4_port *usb4_port_device_add(struct tb_port *port)
struct usb4_port *usb4;
int ret;
- usb4 = kzalloc(sizeof(*usb4), GFP_KERNEL);
+ usb4 = kzalloc_obj(*usb4, GFP_KERNEL);
if (!usb4)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/thunderbolt/xdomain.c b/drivers/thunderbolt/xdomain.c
index 63c7be818b2c..384afd16af72 100644
--- a/drivers/thunderbolt/xdomain.c
+++ b/drivers/thunderbolt/xdomain.c
@@ -858,7 +858,7 @@ tb_xdp_schedule_request(struct tb *tb, const struct tb_xdp_header *hdr,
{
struct xdomain_request_work *xw;
- xw = kmalloc(sizeof(*xw), GFP_KERNEL);
+ xw = kmalloc_obj(*xw, GFP_KERNEL);
if (!xw)
return false;
@@ -1094,7 +1094,7 @@ static void enumerate_services(struct tb_xdomain *xd)
continue;
}
- svc = kzalloc(sizeof(*svc), GFP_KERNEL);
+ svc = kzalloc_obj(*svc, GFP_KERNEL);
if (!svc)
break;
@@ -1974,7 +1974,7 @@ struct tb_xdomain *tb_xdomain_alloc(struct tb *tb, struct device *parent,
down = tb_port_at(route, parent_sw);
tb_port_unlock(down);
- xd = kzalloc(sizeof(*xd), GFP_KERNEL);
+ xd = kzalloc_obj(*xd, GFP_KERNEL);
if (!xd)
return NULL;
diff --git a/drivers/tty/ehv_bytechan.c b/drivers/tty/ehv_bytechan.c
index 69508d7a4135..2cbbaed14ee6 100644
--- a/drivers/tty/ehv_bytechan.c
+++ b/drivers/tty/ehv_bytechan.c
@@ -772,7 +772,7 @@ static int __init ehv_bc_init(void)
* array, then you can use pointer math (e.g. "bc - bcs") to get its
* tty index.
*/
- bcs = kcalloc(count, sizeof(struct ehv_bc_data), GFP_KERNEL);
+ bcs = kzalloc_objs(struct ehv_bc_data, count, GFP_KERNEL);
if (!bcs)
return -ENOMEM;
diff --git a/drivers/tty/goldfish.c b/drivers/tty/goldfish.c
index 3a9582029005..c587ded7f9a5 100644
--- a/drivers/tty/goldfish.c
+++ b/drivers/tty/goldfish.c
@@ -238,9 +238,8 @@ static int goldfish_tty_create_driver(void)
int ret;
struct tty_driver *tty;
- goldfish_ttys = kcalloc(goldfish_tty_line_count,
- sizeof(*goldfish_ttys),
- GFP_KERNEL);
+ goldfish_ttys = kzalloc_objs(*goldfish_ttys, goldfish_tty_line_count,
+ GFP_KERNEL);
if (goldfish_ttys == NULL) {
ret = -ENOMEM;
goto err_alloc_goldfish_ttys_failed;
diff --git a/drivers/tty/hvc/hvc_console.c b/drivers/tty/hvc/hvc_console.c
index 6b58f340f210..9b3856766e8c 100644
--- a/drivers/tty/hvc/hvc_console.c
+++ b/drivers/tty/hvc/hvc_console.c
@@ -922,7 +922,7 @@ struct hvc_struct *hvc_alloc(uint32_t vtermno, int data,
return ERR_PTR(err);
}
- hp = kzalloc(struct_size(hp, outbuf, outbuf_size), GFP_KERNEL);
+ hp = kzalloc_flex(*hp, outbuf, outbuf_size, GFP_KERNEL);
if (!hp)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/tty/hvc/hvc_iucv.c b/drivers/tty/hvc/hvc_iucv.c
index a7939c49c9cf..7fd3937d1396 100644
--- a/drivers/tty/hvc/hvc_iucv.c
+++ b/drivers/tty/hvc/hvc_iucv.c
@@ -1050,7 +1050,7 @@ static int __init hvc_iucv_alloc(int id, unsigned int is_console)
char name[9];
int rc;
- priv = kzalloc(sizeof(struct hvc_iucv_private), GFP_KERNEL);
+ priv = kzalloc_obj(struct hvc_iucv_private, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/tty/hvc/hvc_opal.c b/drivers/tty/hvc/hvc_opal.c
index b2ec1f6efa0a..72dfab77890c 100644
--- a/drivers/tty/hvc/hvc_opal.c
+++ b/drivers/tty/hvc/hvc_opal.c
@@ -181,7 +181,7 @@ static int hvc_opal_probe(struct platform_device *dev)
pv = hvc_opal_privs[termno];
boot = 1;
} else if (hvc_opal_privs[termno] == NULL) {
- pv = kzalloc(sizeof(struct hvc_opal_priv), GFP_KERNEL);
+ pv = kzalloc_obj(struct hvc_opal_priv, GFP_KERNEL);
if (!pv)
return -ENOMEM;
pv->proto = proto;
diff --git a/drivers/tty/hvc/hvc_vio.c b/drivers/tty/hvc/hvc_vio.c
index 47930601a26a..8725cc77c557 100644
--- a/drivers/tty/hvc/hvc_vio.c
+++ b/drivers/tty/hvc/hvc_vio.c
@@ -338,7 +338,7 @@ static int hvc_vio_probe(struct vio_dev *vdev,
pr_devel("->non-boot console, using termno %d\n", termno);
if (termno < 0)
return -ENODEV;
- pv = kzalloc(sizeof(struct hvterm_priv), GFP_KERNEL);
+ pv = kzalloc_obj(struct hvterm_priv, GFP_KERNEL);
if (!pv)
return -ENOMEM;
pv->termno = vdev->unit_address;
diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
index 95ec01b1aacf..138afdf3bbc4 100644
--- a/drivers/tty/hvc/hvc_xen.c
+++ b/drivers/tty/hvc/hvc_xen.c
@@ -264,7 +264,7 @@ static int xen_hvm_console_init(void)
info = vtermno_to_xencons(HVC_COOKIE);
if (!info) {
- info = kzalloc(sizeof(struct xencons_info), GFP_KERNEL);
+ info = kzalloc_obj(struct xencons_info, GFP_KERNEL);
if (!info)
return -ENOMEM;
spin_lock_init(&info->ring_lock);
@@ -328,7 +328,7 @@ static int xen_pv_console_init(void)
info = vtermno_to_xencons(HVC_COOKIE);
if (!info) {
- info = kzalloc(sizeof(struct xencons_info), GFP_KERNEL);
+ info = kzalloc_obj(struct xencons_info, GFP_KERNEL);
if (!info)
return -ENOMEM;
} else if (info->intf != NULL) {
@@ -352,7 +352,7 @@ static int xen_initial_domain_console_init(void)
info = vtermno_to_xencons(HVC_COOKIE);
if (!info) {
- info = kzalloc(sizeof(struct xencons_info), GFP_KERNEL);
+ info = kzalloc_obj(struct xencons_info, GFP_KERNEL);
if (!info)
return -ENOMEM;
spin_lock_init(&info->ring_lock);
@@ -513,7 +513,7 @@ static int xencons_probe(struct xenbus_device *dev,
if (devid == 0)
return -ENODEV;
- info = kzalloc(sizeof(struct xencons_info), GFP_KERNEL);
+ info = kzalloc_obj(struct xencons_info, GFP_KERNEL);
if (!info)
return -ENOMEM;
spin_lock_init(&info->ring_lock);
diff --git a/drivers/tty/hvc/hvcs.c b/drivers/tty/hvc/hvcs.c
index f57fd9095f75..7ff3c87354b8 100644
--- a/drivers/tty/hvc/hvcs.c
+++ b/drivers/tty/hvc/hvcs.c
@@ -748,7 +748,7 @@ static int hvcs_probe(
return -EFAULT;
}
- hvcsd = kzalloc(sizeof(*hvcsd), GFP_KERNEL);
+ hvcsd = kzalloc_obj(*hvcsd, GFP_KERNEL);
if (!hvcsd)
return -ENODEV;
@@ -1394,8 +1394,7 @@ static int hvcs_alloc_index_list(int n)
{
int i;
- hvcs_index_list = kmalloc_array(n, sizeof(hvcs_index_count),
- GFP_KERNEL);
+ hvcs_index_list = kmalloc_objs(hvcs_index_count, n, GFP_KERNEL);
if (!hvcs_index_list)
return -ENOMEM;
hvcs_index_count = n;
diff --git a/drivers/tty/ipwireless/hardware.c b/drivers/tty/ipwireless/hardware.c
index e18848267be4..6e6aa90b33ba 100644
--- a/drivers/tty/ipwireless/hardware.c
+++ b/drivers/tty/ipwireless/hardware.c
@@ -1618,7 +1618,7 @@ struct ipw_hardware *ipwireless_hardware_create(void)
{
int i;
struct ipw_hardware *hw =
- kzalloc(sizeof(struct ipw_hardware), GFP_KERNEL);
+ kzalloc_obj(struct ipw_hardware, GFP_KERNEL);
if (!hw)
return NULL;
diff --git a/drivers/tty/ipwireless/main.c b/drivers/tty/ipwireless/main.c
index 4c18bbfe1a92..3bf160d62a1e 100644
--- a/drivers/tty/ipwireless/main.c
+++ b/drivers/tty/ipwireless/main.c
@@ -267,7 +267,7 @@ static int ipwireless_attach(struct pcmcia_device *link)
struct ipw_dev *ipw;
int ret;
- ipw = kzalloc(sizeof(struct ipw_dev), GFP_KERNEL);
+ ipw = kzalloc_obj(struct ipw_dev, GFP_KERNEL);
if (!ipw)
return -ENOMEM;
diff --git a/drivers/tty/ipwireless/network.c b/drivers/tty/ipwireless/network.c
index fe569f6294a2..cb864142be09 100644
--- a/drivers/tty/ipwireless/network.c
+++ b/drivers/tty/ipwireless/network.c
@@ -257,7 +257,7 @@ static void do_go_online(struct work_struct *work_go_online)
struct ppp_channel *channel;
spin_unlock_irqrestore(&network->lock, flags);
- channel = kzalloc(sizeof(struct ppp_channel), GFP_KERNEL);
+ channel = kzalloc_obj(struct ppp_channel, GFP_KERNEL);
if (!channel) {
printk(KERN_ERR IPWIRELESS_PCCARD_NAME
": unable to allocate PPP channel\n");
@@ -416,7 +416,7 @@ void ipwireless_network_packet_received(struct ipw_network *network,
struct ipw_network *ipwireless_network_create(struct ipw_hardware *hw)
{
struct ipw_network *network =
- kzalloc(sizeof(struct ipw_network), GFP_KERNEL);
+ kzalloc_obj(struct ipw_network, GFP_KERNEL);
if (!network)
return NULL;
diff --git a/drivers/tty/ipwireless/tty.c b/drivers/tty/ipwireless/tty.c
index b6de40815fb9..79c01ff49c65 100644
--- a/drivers/tty/ipwireless/tty.c
+++ b/drivers/tty/ipwireless/tty.c
@@ -437,7 +437,7 @@ static int add_tty(int j,
struct ipw_network *network, int channel_idx,
int secondary_channel_idx, int tty_type)
{
- ttys[j] = kzalloc(sizeof(struct ipw_tty), GFP_KERNEL);
+ ttys[j] = kzalloc_obj(struct ipw_tty, GFP_KERNEL);
if (!ttys[j])
return -ENOMEM;
ttys[j]->index = j;
diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
index 214abeb89aaa..815e35a24af9 100644
--- a/drivers/tty/n_gsm.c
+++ b/drivers/tty/n_gsm.c
@@ -2065,8 +2065,7 @@ static void gsm_control_retransmit(struct timer_list *t)
static struct gsm_control *gsm_control_send(struct gsm_mux *gsm,
unsigned int command, u8 *data, int clen)
{
- struct gsm_control *ctrl = kzalloc(sizeof(struct gsm_control),
- GFP_ATOMIC);
+ struct gsm_control *ctrl = kzalloc_obj(struct gsm_control, GFP_ATOMIC);
unsigned long flags;
if (ctrl == NULL)
return NULL;
@@ -2646,7 +2645,7 @@ static int gsm_dlci_config(struct gsm_dlci *dlci, struct gsm_dlci_config *dc, in
static struct gsm_dlci *gsm_dlci_alloc(struct gsm_mux *gsm, int addr)
{
- struct gsm_dlci *dlci = kzalloc(sizeof(struct gsm_dlci), GFP_ATOMIC);
+ struct gsm_dlci *dlci = kzalloc_obj(struct gsm_dlci, GFP_ATOMIC);
if (dlci == NULL)
return NULL;
spin_lock_init(&dlci->lock);
@@ -3276,7 +3275,7 @@ static inline unsigned int mux_line_to_num(unsigned int line)
static struct gsm_mux *gsm_alloc_mux(void)
{
int i;
- struct gsm_mux *gsm = kzalloc(sizeof(struct gsm_mux), GFP_KERNEL);
+ struct gsm_mux *gsm = kzalloc_obj(struct gsm_mux, GFP_KERNEL);
if (gsm == NULL)
return NULL;
gsm->buf = kmalloc(MAX_MRU + 1, GFP_KERNEL);
diff --git a/drivers/tty/n_hdlc.c b/drivers/tty/n_hdlc.c
index f242d73ee4e0..6c685a6d4ddb 100644
--- a/drivers/tty/n_hdlc.c
+++ b/drivers/tty/n_hdlc.c
@@ -388,8 +388,7 @@ static void n_hdlc_tty_receive(struct tty_struct *tty, const u8 *data,
* buffer unless the maximum count has been reached
*/
if (n_hdlc->rx_buf_list.count < MAX_RX_BUF_COUNT)
- buf = kmalloc(struct_size(buf, buf, maxframe),
- GFP_ATOMIC);
+ buf = kmalloc_flex(*buf, buf, maxframe, GFP_ATOMIC);
}
if (!buf) {
@@ -670,7 +669,7 @@ static void n_hdlc_alloc_buf(struct n_hdlc_buf_list *list, unsigned int count,
unsigned int i;
for (i = 0; i < count; i++) {
- buf = kmalloc(struct_size(buf, buf, maxframe), GFP_KERNEL);
+ buf = kmalloc_flex(*buf, buf, maxframe, GFP_KERNEL);
if (!buf) {
pr_debug("%s(), kmalloc() failed for %s buffer %u\n",
__func__, name, i);
@@ -687,7 +686,7 @@ static void n_hdlc_alloc_buf(struct n_hdlc_buf_list *list, unsigned int count,
*/
static struct n_hdlc *n_hdlc_alloc(void)
{
- struct n_hdlc *n_hdlc = kzalloc(sizeof(*n_hdlc), GFP_KERNEL);
+ struct n_hdlc *n_hdlc = kzalloc_obj(*n_hdlc, GFP_KERNEL);
if (!n_hdlc)
return NULL;
diff --git a/drivers/tty/nozomi.c b/drivers/tty/nozomi.c
index e28a921c1637..b05f4a8553ac 100644
--- a/drivers/tty/nozomi.c
+++ b/drivers/tty/nozomi.c
@@ -1298,7 +1298,7 @@ static int nozomi_card_init(struct pci_dev *pdev,
goto err;
}
- dc = kzalloc(sizeof(struct nozomi), GFP_KERNEL);
+ dc = kzalloc_obj(struct nozomi, GFP_KERNEL);
if (unlikely(!dc)) {
dev_err(&pdev->dev, "Could not allocate memory\n");
ret = -ENOMEM;
diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c
index 6120d827a797..ce58997dae93 100644
--- a/drivers/tty/pty.c
+++ b/drivers/tty/pty.c
@@ -364,8 +364,8 @@ static int pty_common_install(struct tty_driver *driver, struct tty_struct *tty,
if (driver->subtype != PTY_TYPE_MASTER)
return -EIO;
- ports[0] = kmalloc(sizeof **ports, GFP_KERNEL);
- ports[1] = kmalloc(sizeof **ports, GFP_KERNEL);
+ ports[0] = kmalloc_obj(**ports, GFP_KERNEL);
+ ports[1] = kmalloc_obj(**ports, GFP_KERNEL);
if (!ports[0] || !ports[1])
goto err;
if (!try_module_get(driver->other->owner)) {
diff --git a/drivers/tty/rpmsg_tty.c b/drivers/tty/rpmsg_tty.c
index 60a2915f5cfe..6ada8e92bbf2 100644
--- a/drivers/tty/rpmsg_tty.c
+++ b/drivers/tty/rpmsg_tty.c
@@ -134,7 +134,7 @@ static struct rpmsg_tty_port *rpmsg_tty_alloc_cport(void)
struct rpmsg_tty_port *cport;
int ret;
- cport = kzalloc(sizeof(*cport), GFP_KERNEL);
+ cport = kzalloc_obj(*cport, GFP_KERNEL);
if (!cport)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/tty/serdev/core.c b/drivers/tty/serdev/core.c
index 40eedc15277c..aced9d895103 100644
--- a/drivers/tty/serdev/core.c
+++ b/drivers/tty/serdev/core.c
@@ -442,7 +442,7 @@ struct serdev_device *serdev_device_alloc(struct serdev_controller *ctrl)
{
struct serdev_device *serdev;
- serdev = kzalloc(sizeof(*serdev), GFP_KERNEL);
+ serdev = kzalloc_obj(*serdev, GFP_KERNEL);
if (!serdev)
return NULL;
diff --git a/drivers/tty/serial/8250/8250_acorn.c b/drivers/tty/serial/8250/8250_acorn.c
index 758c4aa203ab..84889bb952a2 100644
--- a/drivers/tty/serial/8250/8250_acorn.c
+++ b/drivers/tty/serial/8250/8250_acorn.c
@@ -44,7 +44,7 @@ serial_card_probe(struct expansion_card *ec, const struct ecard_id *id)
unsigned long bus_addr;
unsigned int i;
- info = kzalloc(sizeof(struct serial_card_info), GFP_KERNEL);
+ info = kzalloc_obj(struct serial_card_info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c
index 0e81f78c6063..74a358e7ae03 100644
--- a/drivers/tty/serial/8250/8250_core.c
+++ b/drivers/tty/serial/8250/8250_core.c
@@ -140,7 +140,7 @@ static struct irq_info *serial_get_or_create_irq_info(const struct uart_8250_por
if (i->irq == up->port.irq)
return i;
- i = kzalloc(sizeof(*i), GFP_KERNEL);
+ i = kzalloc_obj(*i, GFP_KERNEL);
if (i == NULL)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/tty/serial/8250/8250_hp300.c b/drivers/tty/serial/8250/8250_hp300.c
index 3012ea03d22c..732f1a158e62 100644
--- a/drivers/tty/serial/8250/8250_hp300.c
+++ b/drivers/tty/serial/8250/8250_hp300.c
@@ -240,7 +240,7 @@ static int __init hp300_8250_init(void)
#endif
/* Create new serial device */
- port = kmalloc(sizeof(struct hp300_port), GFP_KERNEL);
+ port = kmalloc_obj(struct hp300_port, GFP_KERNEL);
if (!port)
return -ENOMEM;
diff --git a/drivers/tty/serial/8250/8250_ni.c b/drivers/tty/serial/8250/8250_ni.c
index cb5b42b3609c..3f3dac694e20 100644
--- a/drivers/tty/serial/8250/8250_ni.c
+++ b/drivers/tty/serial/8250/8250_ni.c
@@ -285,7 +285,7 @@ static int ni16550_probe(struct platform_device *pdev)
bool rs232_property;
int ret;
- uart = kzalloc(sizeof(*uart), GFP_KERNEL);
+ uart = kzalloc_obj(*uart, GFP_KERNEL);
if (!uart)
return -ENOMEM;
diff --git a/drivers/tty/serial/8250/8250_of.c b/drivers/tty/serial/8250/8250_of.c
index 9799356b65f7..9c721bafbe37 100644
--- a/drivers/tty/serial/8250/8250_of.c
+++ b/drivers/tty/serial/8250/8250_of.c
@@ -217,7 +217,7 @@ static int of_platform_serial_probe(struct platform_device *ofdev)
if (of_property_read_bool(ofdev->dev.of_node, "used-by-rtas"))
return -EBUSY;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (info == NULL)
return -ENOMEM;
diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c
index 6589bb531cc6..643e5a620948 100644
--- a/drivers/tty/serial/8250/8250_pci.c
+++ b/drivers/tty/serial/8250/8250_pci.c
@@ -4148,7 +4148,7 @@ pciserial_init_ports(struct pci_dev *dev, const struct pciserial_board *board)
nr_ports = rc;
}
- priv = kzalloc(struct_size(priv, line, nr_ports), GFP_KERNEL);
+ priv = kzalloc_flex(*priv, line, nr_ports, GFP_KERNEL);
if (!priv) {
priv = ERR_PTR(-ENOMEM);
goto err_deinit;
diff --git a/drivers/tty/serial/8250/8250_platform.c b/drivers/tty/serial/8250/8250_platform.c
index 86d12d2b5907..37f3ef4d041d 100644
--- a/drivers/tty/serial/8250/8250_platform.c
+++ b/drivers/tty/serial/8250/8250_platform.c
@@ -111,7 +111,8 @@ static int serial8250_probe_acpi(struct platform_device *pdev)
struct resource *regs;
int ret, line;
- struct uart_8250_port *uart __free(kfree) = kzalloc(sizeof(*uart), GFP_KERNEL);
+ struct uart_8250_port *uart __free(kfree) = kzalloc_obj(*uart,
+ GFP_KERNEL);
if (!uart)
return -ENOMEM;
@@ -156,7 +157,8 @@ static int serial8250_probe_platform(struct platform_device *dev, struct plat_se
{
int ret, i;
- struct uart_8250_port *uart __free(kfree) = kzalloc(sizeof(*uart), GFP_KERNEL);
+ struct uart_8250_port *uart __free(kfree) = kzalloc_obj(*uart,
+ GFP_KERNEL);
if (!uart)
return -ENOMEM;
diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
index 719faf92aa8a..cc94af2d578a 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
@@ -553,7 +553,7 @@ static int serial8250_em485_init(struct uart_8250_port *p)
if (p->em485)
goto deassert_rts;
- p->em485 = kmalloc(sizeof(struct uart_8250_em485), GFP_ATOMIC);
+ p->em485 = kmalloc_obj(struct uart_8250_em485, GFP_ATOMIC);
if (!p->em485)
return -ENOMEM;
diff --git a/drivers/tty/serial/8250/serial_cs.c b/drivers/tty/serial/8250/serial_cs.c
index 58e279ea7ee0..5c372bd7f92a 100644
--- a/drivers/tty/serial/8250/serial_cs.c
+++ b/drivers/tty/serial/8250/serial_cs.c
@@ -305,7 +305,7 @@ static int serial_probe(struct pcmcia_device *link)
dev_dbg(&link->dev, "serial_attach()\n");
/* Create new serial device */
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
info->p_dev = link;
diff --git a/drivers/tty/serial/icom.c b/drivers/tty/serial/icom.c
index b7e33a896589..c0a7f8a0ff55 100644
--- a/drivers/tty/serial/icom.c
+++ b/drivers/tty/serial/icom.c
@@ -1632,7 +1632,7 @@ static int icom_alloc_adapter(struct icom_adapter
struct icom_adapter *icom_adapter;
struct icom_adapter *cur_adapter_entry;
- icom_adapter = kzalloc(sizeof(struct icom_adapter), GFP_KERNEL);
+ icom_adapter = kzalloc_obj(struct icom_adapter, GFP_KERNEL);
if (!icom_adapter) {
return -ENOMEM;
diff --git a/drivers/tty/serial/jsm/jsm_driver.c b/drivers/tty/serial/jsm/jsm_driver.c
index 8d21373cae57..2a048dc62b96 100644
--- a/drivers/tty/serial/jsm/jsm_driver.c
+++ b/drivers/tty/serial/jsm/jsm_driver.c
@@ -66,7 +66,7 @@ static int jsm_probe_one(struct pci_dev *pdev, const struct pci_device_id *ent)
goto out_disable_device;
}
- brd = kzalloc(sizeof(*brd), GFP_KERNEL);
+ brd = kzalloc_obj(*brd, GFP_KERNEL);
if (!brd) {
rc = -ENOMEM;
goto out_release_regions;
diff --git a/drivers/tty/serial/jsm/jsm_tty.c b/drivers/tty/serial/jsm/jsm_tty.c
index be2f130696b3..8c665fc771dd 100644
--- a/drivers/tty/serial/jsm/jsm_tty.c
+++ b/drivers/tty/serial/jsm/jsm_tty.c
@@ -391,7 +391,8 @@ int jsm_tty_init(struct jsm_board *brd)
* Okay to malloc with GFP_KERNEL, we are not at
* interrupt context, and there are no locks held.
*/
- brd->channels[i] = kzalloc(sizeof(struct jsm_channel), GFP_KERNEL);
+ brd->channels[i] = kzalloc_obj(struct jsm_channel,
+ GFP_KERNEL);
if (!brd->channels[i]) {
jsm_dbg(CORE, &brd->pci_dev,
"%s:%d Unable to allocate memory for channel struct\n",
diff --git a/drivers/tty/serial/max3100.c b/drivers/tty/serial/max3100.c
index 3faa1b6aa3ee..68cef83de47d 100644
--- a/drivers/tty/serial/max3100.c
+++ b/drivers/tty/serial/max3100.c
@@ -708,7 +708,7 @@ static int max3100_probe(struct spi_device *spi)
return dev_err_probe(dev, -ENOSPC, "too many MAX3100 chips\n");
}
- max3100s[i] = kzalloc(sizeof(struct max3100_port), GFP_KERNEL);
+ max3100s[i] = kzalloc_obj(struct max3100_port, GFP_KERNEL);
if (!max3100s[i]) {
mutex_unlock(&max3100s_lock);
return -ENOMEM;
diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
index 884fefbfd5a1..2983d74a5cf1 100644
--- a/drivers/tty/serial/pch_uart.c
+++ b/drivers/tty/serial/pch_uart.c
@@ -909,7 +909,7 @@ static unsigned int dma_handle_tx(struct eg20t_port *priv)
priv->tx_dma_use = 1;
- priv->sg_tx_p = kmalloc_array(num, sizeof(struct scatterlist), GFP_ATOMIC);
+ priv->sg_tx_p = kmalloc_objs(struct scatterlist, num, GFP_ATOMIC);
if (!priv->sg_tx_p) {
dev_err(priv->port.dev, "%s:kzalloc Failed\n", __func__);
return 0;
@@ -1651,7 +1651,7 @@ static struct eg20t_port *pch_uart_init_port(struct pci_dev *pdev,
board = &drv_dat[id->driver_data];
port_type = board->port_type;
- priv = kzalloc(sizeof(struct eg20t_port), GFP_KERNEL);
+ priv = kzalloc_obj(struct eg20t_port, GFP_KERNEL);
if (priv == NULL)
goto init_port_alloc_err;
diff --git a/drivers/tty/serial/pxa.c b/drivers/tty/serial/pxa.c
index e395ff29c1a2..063720ed9716 100644
--- a/drivers/tty/serial/pxa.c
+++ b/drivers/tty/serial/pxa.c
@@ -811,7 +811,7 @@ static int serial_pxa_probe(struct platform_device *dev)
if (irq < 0)
return irq;
- sport = kzalloc(sizeof(struct uart_pxa_port), GFP_KERNEL);
+ sport = kzalloc_obj(struct uart_pxa_port, GFP_KERNEL);
if (!sport)
return -ENOMEM;
diff --git a/drivers/tty/serial/serial_base_bus.c b/drivers/tty/serial/serial_base_bus.c
index 1e1ad28d83fc..ffe331831e22 100644
--- a/drivers/tty/serial/serial_base_bus.c
+++ b/drivers/tty/serial/serial_base_bus.c
@@ -116,7 +116,7 @@ struct serial_ctrl_device *serial_base_ctrl_add(struct uart_port *port,
struct serial_ctrl_device *ctrl_dev;
int err;
- ctrl_dev = kzalloc(sizeof(*ctrl_dev), GFP_KERNEL);
+ ctrl_dev = kzalloc_obj(*ctrl_dev, GFP_KERNEL);
if (!ctrl_dev)
return ERR_PTR(-ENOMEM);
@@ -156,7 +156,7 @@ struct serial_port_device *serial_base_port_add(struct uart_port *port,
int min = 0, max = -1; /* Use -1 for max to apply IDA defaults */
int err;
- port_dev = kzalloc(sizeof(*port_dev), GFP_KERNEL);
+ port_dev = kzalloc_obj(*port_dev, GFP_KERNEL);
if (!port_dev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
index 2805cad10511..2047d73858ec 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -2716,7 +2716,7 @@ int uart_register_driver(struct uart_driver *drv)
* Maybe we should be using a slab cache for this, especially if
* we have a large number of ports to handle.
*/
- drv->state = kcalloc(drv->nr, sizeof(struct uart_state), GFP_KERNEL);
+ drv->state = kzalloc_objs(struct uart_state, drv->nr, GFP_KERNEL);
if (!drv->state)
goto out;
@@ -3088,8 +3088,8 @@ static int serial_core_add_one_port(struct uart_driver *drv, struct uart_port *u
if (uport->attr_group)
num_groups++;
- uport->tty_groups = kcalloc(num_groups, sizeof(*uport->tty_groups),
- GFP_KERNEL);
+ uport->tty_groups = kzalloc_objs(*uport->tty_groups, num_groups,
+ GFP_KERNEL);
if (!uport->tty_groups)
return -ENOMEM;
diff --git a/drivers/tty/serial/sunhv.c b/drivers/tty/serial/sunhv.c
index 2b3ec65d595d..219588a8b1ee 100644
--- a/drivers/tty/serial/sunhv.c
+++ b/drivers/tty/serial/sunhv.c
@@ -529,7 +529,7 @@ static int hv_probe(struct platform_device *op)
if (op->archdata.irqs[0] == 0xffffffff)
return -ENODEV;
- port = kzalloc(sizeof(struct uart_port), GFP_KERNEL);
+ port = kzalloc_obj(struct uart_port, GFP_KERNEL);
if (unlikely(!port))
return -ENOMEM;
diff --git a/drivers/tty/serial/sunsab.c b/drivers/tty/serial/sunsab.c
index df906ccf2e8a..7c4cf6d02ece 100644
--- a/drivers/tty/serial/sunsab.c
+++ b/drivers/tty/serial/sunsab.c
@@ -1117,9 +1117,8 @@ static int __init sunsab_init(void)
}
if (num_channels) {
- sunsab_ports = kcalloc(num_channels,
- sizeof(struct uart_sunsab_port),
- GFP_KERNEL);
+ sunsab_ports = kzalloc_objs(struct uart_sunsab_port,
+ num_channels, GFP_KERNEL);
if (!sunsab_ports)
return -ENOMEM;
diff --git a/drivers/tty/serial/sunsu.c b/drivers/tty/serial/sunsu.c
index 383141fe7ba0..884985346226 100644
--- a/drivers/tty/serial/sunsu.c
+++ b/drivers/tty/serial/sunsu.c
@@ -1398,7 +1398,7 @@ static int su_probe(struct platform_device *op)
return -EINVAL;
up = &sunsu_ports[nr_inst];
} else {
- up = kzalloc(sizeof(*up), GFP_KERNEL);
+ up = kzalloc_obj(*up, GFP_KERNEL);
if (!up)
return -ENOMEM;
}
diff --git a/drivers/tty/serial/timbuart.c b/drivers/tty/serial/timbuart.c
index 6fa93c3872a7..48f1ef5e9bac 100644
--- a/drivers/tty/serial/timbuart.c
+++ b/drivers/tty/serial/timbuart.c
@@ -412,7 +412,7 @@ static int timbuart_probe(struct platform_device *dev)
dev_dbg(&dev->dev, "%s\n", __func__);
- uart = kzalloc(sizeof(*uart), GFP_KERNEL);
+ uart = kzalloc_obj(*uart, GFP_KERNEL);
if (!uart) {
err = -EINVAL;
goto err_mem;
diff --git a/drivers/tty/serial/ucc_uart.c b/drivers/tty/serial/ucc_uart.c
index 0613f8c11ab1..d7a39e36b53c 100644
--- a/drivers/tty/serial/ucc_uart.c
+++ b/drivers/tty/serial/ucc_uart.c
@@ -1247,7 +1247,7 @@ static int ucc_uart_probe(struct platform_device *ofdev)
if (ret)
return ret;
- qe_port = kzalloc(sizeof(struct uart_qe_port), GFP_KERNEL);
+ qe_port = kzalloc_obj(struct uart_qe_port, GFP_KERNEL);
if (!qe_port) {
dev_err(&ofdev->dev, "can't allocate QE port structure\n");
return -ENOMEM;
diff --git a/drivers/tty/synclink_gt.c b/drivers/tty/synclink_gt.c
index 9d591fb291fd..06af5c4349ec 100644
--- a/drivers/tty/synclink_gt.c
+++ b/drivers/tty/synclink_gt.c
@@ -3477,7 +3477,7 @@ static struct slgt_info *alloc_dev(int adapter_num, int port_num, struct pci_dev
{
struct slgt_info *info;
- info = kzalloc(sizeof(struct slgt_info), GFP_KERNEL);
+ info = kzalloc_obj(struct slgt_info, GFP_KERNEL);
if (!info) {
DBGERR(("%s device alloc failed adapter=%d port=%d\n",
diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
index 1f78b0db3b25..4aaa3e04e035 100644
--- a/drivers/tty/sysrq.c
+++ b/drivers/tty/sysrq.c
@@ -971,7 +971,7 @@ static int sysrq_connect(struct input_handler *handler,
struct sysrq_state *sysrq;
int error;
- sysrq = kzalloc(sizeof(struct sysrq_state), GFP_KERNEL);
+ sysrq = kzalloc_obj(struct sysrq_state, GFP_KERNEL);
if (!sysrq)
return -ENOMEM;
diff --git a/drivers/tty/tty_audit.c b/drivers/tty/tty_audit.c
index 75542333c54a..e7964d319498 100644
--- a/drivers/tty/tty_audit.c
+++ b/drivers/tty/tty_audit.c
@@ -35,7 +35,7 @@ static struct tty_audit_buf *tty_audit_buf_alloc(void)
{
struct tty_audit_buf *buf;
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
goto err;
diff --git a/drivers/tty/tty_buffer.c b/drivers/tty/tty_buffer.c
index 1a5673acd9b1..79ec953824d5 100644
--- a/drivers/tty/tty_buffer.c
+++ b/drivers/tty/tty_buffer.c
@@ -177,7 +177,7 @@ static struct tty_buffer *tty_buffer_alloc(struct tty_port *port, size_t size)
*/
if (atomic_read(&port->buf.mem_used) > port->buf.mem_limit)
return NULL;
- p = kmalloc(struct_size(p, data, 2 * size), GFP_ATOMIC | __GFP_NOWARN);
+ p = kmalloc_flex(*p, data, 2 * size, GFP_ATOMIC | __GFP_NOWARN);
if (p == NULL)
return NULL;
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index e2d92cf70eb7..506b6c6329c2 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -183,7 +183,7 @@ int tty_alloc_file(struct file *file)
{
struct tty_file_private *priv;
- priv = kmalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kmalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
@@ -1471,7 +1471,7 @@ void tty_save_termios(struct tty_struct *tty)
/* Stash the termios data */
tp = tty->driver->termios[idx];
if (tp == NULL) {
- tp = kmalloc(sizeof(*tp), GFP_KERNEL);
+ tp = kmalloc_obj(*tp, GFP_KERNEL);
if (tp == NULL)
return;
tty->driver->termios[idx] = tp;
@@ -3099,7 +3099,7 @@ struct tty_struct *alloc_tty_struct(struct tty_driver *driver, int idx)
{
struct tty_struct *tty;
- tty = kzalloc(sizeof(*tty), GFP_KERNEL_ACCOUNT);
+ tty = kzalloc_obj(*tty, GFP_KERNEL_ACCOUNT);
if (!tty)
return NULL;
@@ -3244,7 +3244,7 @@ struct device *tty_register_device_attr(struct tty_driver *driver,
else
tty_line_name(driver, index, name);
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
@@ -3333,7 +3333,7 @@ struct tty_driver *__tty_alloc_driver(unsigned int lines, struct module *owner,
if (!lines || (flags & TTY_DRIVER_UNNUMBERED_NODE && lines > 1))
return ERR_PTR(-EINVAL);
- driver = kzalloc(sizeof(*driver), GFP_KERNEL);
+ driver = kzalloc_obj(*driver, GFP_KERNEL);
if (!driver)
return ERR_PTR(-ENOMEM);
@@ -3343,10 +3343,9 @@ struct tty_driver *__tty_alloc_driver(unsigned int lines, struct module *owner,
driver->flags = flags;
if (!(flags & TTY_DRIVER_DEVPTS_MEM)) {
- driver->ttys = kcalloc(lines, sizeof(*driver->ttys),
- GFP_KERNEL);
- driver->termios = kcalloc(lines, sizeof(*driver->termios),
- GFP_KERNEL);
+ driver->ttys = kzalloc_objs(*driver->ttys, lines, GFP_KERNEL);
+ driver->termios = kzalloc_objs(*driver->termios, lines,
+ GFP_KERNEL);
if (!driver->ttys || !driver->termios) {
err = -ENOMEM;
goto err_free_all;
@@ -3354,8 +3353,7 @@ struct tty_driver *__tty_alloc_driver(unsigned int lines, struct module *owner,
}
if (!(flags & TTY_DRIVER_DYNAMIC_ALLOC)) {
- driver->ports = kcalloc(lines, sizeof(*driver->ports),
- GFP_KERNEL);
+ driver->ports = kzalloc_objs(*driver->ports, lines, GFP_KERNEL);
if (!driver->ports) {
err = -ENOMEM;
goto err_free_all;
@@ -3363,7 +3361,7 @@ struct tty_driver *__tty_alloc_driver(unsigned int lines, struct module *owner,
cdevs = lines;
}
- driver->cdevs = kcalloc(cdevs, sizeof(*driver->cdevs), GFP_KERNEL);
+ driver->cdevs = kzalloc_objs(*driver->cdevs, cdevs, GFP_KERNEL);
if (!driver->cdevs) {
err = -ENOMEM;
goto err_free_all;
diff --git a/drivers/tty/tty_ldisc.c b/drivers/tty/tty_ldisc.c
index d80e9d4c974b..888f2f8f9481 100644
--- a/drivers/tty/tty_ldisc.c
+++ b/drivers/tty/tty_ldisc.c
@@ -162,7 +162,7 @@ static struct tty_ldisc *tty_ldisc_get(struct tty_struct *tty, int disc)
* There is no way to handle allocation failure of only 16 bytes.
* Let's simplify error handling and save more memory.
*/
- ld = kmalloc(sizeof(struct tty_ldisc), GFP_KERNEL | __GFP_NOFAIL);
+ ld = kmalloc_obj(struct tty_ldisc, GFP_KERNEL | __GFP_NOFAIL);
ld->ops = ldops;
ld->tty = tty;
diff --git a/drivers/tty/vcc.c b/drivers/tty/vcc.c
index 2960031ace72..cd741fbe6fbe 100644
--- a/drivers/tty/vcc.c
+++ b/drivers/tty/vcc.c
@@ -574,7 +574,7 @@ static int vcc_probe(struct vio_dev *vdev, const struct vio_device_id *id)
return -ENODEV;
}
- port = kzalloc(sizeof(struct vcc_port), GFP_KERNEL);
+ port = kzalloc_obj(struct vcc_port, GFP_KERNEL);
if (!port)
return -ENOMEM;
@@ -957,7 +957,7 @@ static int vcc_install(struct tty_driver *driver, struct tty_struct *tty)
if (ret)
return ret;
- port_tty = kzalloc(sizeof(struct tty_port), GFP_KERNEL);
+ port_tty = kzalloc_obj(struct tty_port, GFP_KERNEL);
if (!port_tty)
return -ENOMEM;
diff --git a/drivers/tty/vt/consolemap.c b/drivers/tty/vt/consolemap.c
index 7a11c3f2e875..97cf1ceb6709 100644
--- a/drivers/tty/vt/consolemap.c
+++ b/drivers/tty/vt/consolemap.c
@@ -539,7 +539,7 @@ static int con_allocate_new(struct vc_data *vc)
{
struct uni_pagedict *new, *old = *vc->uni_pagedict_loc;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return -ENOMEM;
diff --git a/drivers/tty/vt/keyboard.c b/drivers/tty/vt/keyboard.c
index 3538d54d6a6a..dba09eb91f38 100644
--- a/drivers/tty/vt/keyboard.c
+++ b/drivers/tty/vt/keyboard.c
@@ -1548,7 +1548,8 @@ static int kbd_connect(struct input_handler *handler, struct input_dev *dev,
{
int error;
- struct input_handle __free(kfree) *handle = kzalloc(sizeof(*handle), GFP_KERNEL);
+ struct input_handle __free(kfree) *handle = kzalloc_obj(*handle,
+ GFP_KERNEL);
if (!handle)
return -ENOMEM;
diff --git a/drivers/tty/vt/vc_screen.c b/drivers/tty/vt/vc_screen.c
index c814644ef4ee..824a74626548 100644
--- a/drivers/tty/vt/vc_screen.c
+++ b/drivers/tty/vt/vc_screen.c
@@ -131,7 +131,7 @@ vcs_poll_data_get(struct file *file)
if (poll)
return poll;
- poll = kzalloc(sizeof(*poll), GFP_KERNEL);
+ poll = kzalloc_obj(*poll, GFP_KERNEL);
if (!poll)
return NULL;
poll->cons_num = console(file_inode(file));
diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
index 3bdbd4c52c2f..cca7bdf8f2fe 100644
--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
@@ -1065,7 +1065,7 @@ int vc_allocate(unsigned int currcons) /* return 0 on success */
/* although the numbers above are not valid since long ago, the
point is still up-to-date and the comment still has its value
even if only as a historical artifact. --mj, July 1998 */
- param.vc = vc = kzalloc(sizeof(struct vc_data), GFP_KERNEL);
+ param.vc = vc = kzalloc_obj(struct vc_data, GFP_KERNEL);
if (!vc)
return -ENOMEM;
@@ -3777,7 +3777,8 @@ static int __init con_init(void)
}
for (currcons = 0; currcons < MIN_NR_CONSOLES; currcons++) {
- vc_cons[currcons].d = vc = kzalloc(sizeof(struct vc_data), GFP_NOWAIT);
+ vc_cons[currcons].d = vc = kzalloc_obj(struct vc_data,
+ GFP_NOWAIT);
INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK);
tty_port_init(&vc->port);
visual_init(vc, currcons, true);
diff --git a/drivers/ufs/core/ufs-hwmon.c b/drivers/ufs/core/ufs-hwmon.c
index 34194064367f..1ca027b4caa5 100644
--- a/drivers/ufs/core/ufs-hwmon.c
+++ b/drivers/ufs/core/ufs-hwmon.c
@@ -169,7 +169,7 @@ void ufs_hwmon_probe(struct ufs_hba *hba, u8 mask)
struct ufs_hwmon_data *data;
struct device *hwmon;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return;
diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
index fa0d4e6aee16..14d14389164e 100644
--- a/drivers/uio/uio.c
+++ b/drivers/uio/uio.c
@@ -306,7 +306,7 @@ static int uio_dev_add_attributes(struct uio_device *idev)
goto err_map;
}
}
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (!map) {
ret = -ENOMEM;
goto err_map;
@@ -335,7 +335,7 @@ static int uio_dev_add_attributes(struct uio_device *idev)
goto err_portio;
}
}
- portio = kzalloc(sizeof(*portio), GFP_KERNEL);
+ portio = kzalloc_obj(*portio, GFP_KERNEL);
if (!portio) {
ret = -ENOMEM;
goto err_portio;
@@ -494,7 +494,7 @@ static int uio_open(struct inode *inode, struct file *filep)
goto err_module_get;
}
- listener = kmalloc(sizeof(*listener), GFP_KERNEL);
+ listener = kmalloc_obj(*listener, GFP_KERNEL);
if (!listener) {
ret = -ENOMEM;
goto err_alloc_listener;
@@ -991,7 +991,7 @@ int __uio_register_device(struct module *owner,
info->uio_dev = NULL;
- idev = kzalloc(sizeof(*idev), GFP_KERNEL);
+ idev = kzalloc_obj(*idev, GFP_KERNEL);
if (!idev) {
return -ENOMEM;
}
diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c
index 68a8e9de8b4f..909fdb56c09a 100644
--- a/drivers/usb/atm/cxacru.c
+++ b/drivers/usb/atm/cxacru.c
@@ -1130,7 +1130,7 @@ static int cxacru_bind(struct usbatm_data *usbatm_instance,
int ret;
/* instance init */
- instance = kzalloc(sizeof(*instance), GFP_KERNEL);
+ instance = kzalloc_obj(*instance, GFP_KERNEL);
if (!instance)
return -ENOMEM;
diff --git a/drivers/usb/atm/speedtch.c b/drivers/usb/atm/speedtch.c
index e6b610a87482..d0a2f1361a91 100644
--- a/drivers/usb/atm/speedtch.c
+++ b/drivers/usb/atm/speedtch.c
@@ -804,7 +804,7 @@ static int speedtch_bind(struct usbatm_data *usbatm,
}
}
- instance = kzalloc(sizeof(*instance), GFP_KERNEL);
+ instance = kzalloc_obj(*instance, GFP_KERNEL);
if (!instance) {
ret = -ENOMEM;
diff --git a/drivers/usb/atm/ueagle-atm.c b/drivers/usb/atm/ueagle-atm.c
index 78a2585f33ec..b27a5f8842b6 100644
--- a/drivers/usb/atm/ueagle-atm.c
+++ b/drivers/usb/atm/ueagle-atm.c
@@ -2516,7 +2516,7 @@ static int uea_bind(struct usbatm_data *usbatm, struct usb_interface *intf,
return ret;
}
- sc = kzalloc(sizeof(struct uea_softc), GFP_KERNEL);
+ sc = kzalloc_obj(struct uea_softc, GFP_KERNEL);
if (!sc)
return -ENOMEM;
diff --git a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c
index 5f3ad9a99d9e..aa4c209cfb91 100644
--- a/drivers/usb/atm/usbatm.c
+++ b/drivers/usb/atm/usbatm.c
@@ -804,7 +804,7 @@ static int usbatm_atm_open(struct atm_vcc *vcc)
goto fail;
}
- new = kzalloc(sizeof(struct usbatm_vcc_data), GFP_KERNEL);
+ new = kzalloc_obj(struct usbatm_vcc_data, GFP_KERNEL);
if (!new) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/usb/c67x00/c67x00-drv.c b/drivers/usb/c67x00/c67x00-drv.c
index 8f38e2c5369a..6b6814c1d557 100644
--- a/drivers/usb/c67x00/c67x00-drv.c
+++ b/drivers/usb/c67x00/c67x00-drv.c
@@ -121,7 +121,7 @@ static int c67x00_drv_probe(struct platform_device *pdev)
if (!pdata)
return -ENODEV;
- c67x00 = kzalloc(sizeof(*c67x00), GFP_KERNEL);
+ c67x00 = kzalloc_obj(*c67x00, GFP_KERNEL);
if (!c67x00)
return -ENOMEM;
diff --git a/drivers/usb/c67x00/c67x00-sched.c b/drivers/usb/c67x00/c67x00-sched.c
index a09fa68a6ce7..a832f5696f2a 100644
--- a/drivers/usb/c67x00/c67x00-sched.c
+++ b/drivers/usb/c67x00/c67x00-sched.c
@@ -246,7 +246,7 @@ c67x00_ep_data_alloc(struct c67x00_hcd *c67x00, struct urb *urb)
}
/* Allocate and initialize a new c67x00 endpoint data structure */
- ep_data = kzalloc(sizeof(*ep_data), GFP_ATOMIC);
+ ep_data = kzalloc_obj(*ep_data, GFP_ATOMIC);
if (!ep_data)
return NULL;
@@ -349,7 +349,7 @@ int c67x00_urb_enqueue(struct usb_hcd *hcd,
int port = get_root_port(urb->dev)-1;
/* Allocate and initialize urb private data */
- urbp = kzalloc(sizeof(*urbp), mem_flags);
+ urbp = kzalloc_obj(*urbp, mem_flags);
if (!urbp) {
ret = -ENOMEM;
goto err_urbp;
@@ -574,7 +574,7 @@ static int c67x00_create_td(struct c67x00_hcd *c67x00, struct urb *urb,
|| usb_pipeint(urb->pipe)))
return -EMSGSIZE; /* Not really an error, but expected */
- td = kzalloc(sizeof(*td), GFP_ATOMIC);
+ td = kzalloc_obj(*td, GFP_ATOMIC);
if (!td)
return -ENOMEM;
diff --git a/drivers/usb/cdns3/cdns3-gadget.c b/drivers/usb/cdns3/cdns3-gadget.c
index 168707213ed9..15b0060ce62d 100644
--- a/drivers/usb/cdns3/cdns3-gadget.c
+++ b/drivers/usb/cdns3/cdns3-gadget.c
@@ -903,7 +903,7 @@ static int cdns3_prepare_aligned_request_buf(struct cdns3_request *priv_req)
buf = priv_req->aligned_buf;
if (!buf || priv_req->request.length > buf->size) {
- buf = kzalloc(sizeof(*buf), GFP_ATOMIC);
+ buf = kzalloc_obj(*buf, GFP_ATOMIC);
if (!buf)
return -ENOMEM;
@@ -2315,7 +2315,7 @@ struct usb_request *cdns3_gadget_ep_alloc_request(struct usb_ep *ep,
struct cdns3_endpoint *priv_ep = ep_to_cdns3_ep(ep);
struct cdns3_request *priv_req;
- priv_req = kzalloc(sizeof(*priv_req), gfp_flags);
+ priv_req = kzalloc_obj(*priv_req, gfp_flags);
if (!priv_req)
return NULL;
@@ -3287,7 +3287,7 @@ static int cdns3_gadget_start(struct cdns *cdns)
u32 max_speed;
int ret;
- priv_dev = kzalloc(sizeof(*priv_dev), GFP_KERNEL);
+ priv_dev = kzalloc_obj(*priv_dev, GFP_KERNEL);
if (!priv_dev)
return -ENOMEM;
diff --git a/drivers/usb/cdns3/cdns3-pci-wrap.c b/drivers/usb/cdns3/cdns3-pci-wrap.c
index 57f57c24c663..03c9762ad032 100644
--- a/drivers/usb/cdns3/cdns3-pci-wrap.c
+++ b/drivers/usb/cdns3/cdns3-pci-wrap.c
@@ -97,7 +97,7 @@ static int cdns3_pci_probe(struct pci_dev *pdev,
if (pci_is_enabled(func)) {
wrap = pci_get_drvdata(func);
} else {
- wrap = kzalloc(sizeof(*wrap), GFP_KERNEL);
+ wrap = kzalloc_obj(*wrap, GFP_KERNEL);
if (!wrap)
return -ENOMEM;
}
diff --git a/drivers/usb/cdns3/cdnsp-gadget.c b/drivers/usb/cdns3/cdnsp-gadget.c
index d37c29a253dd..475ac61ad4c4 100644
--- a/drivers/usb/cdns3/cdnsp-gadget.c
+++ b/drivers/usb/cdns3/cdnsp-gadget.c
@@ -1102,7 +1102,7 @@ static struct usb_request *cdnsp_gadget_ep_alloc_request(struct usb_ep *ep,
struct cdnsp_ep *pep = to_cdnsp_ep(ep);
struct cdnsp_request *preq;
- preq = kzalloc(sizeof(*preq), gfp_flags);
+ preq = kzalloc_obj(*preq, gfp_flags);
if (!preq)
return NULL;
@@ -1905,7 +1905,7 @@ static int __cdnsp_gadget_init(struct cdns *cdns)
cdns_drd_gadget_on(cdns);
- pdev = kzalloc(sizeof(*pdev), GFP_KERNEL);
+ pdev = kzalloc_obj(*pdev, GFP_KERNEL);
if (!pdev)
return -ENOMEM;
diff --git a/drivers/usb/cdns3/cdnsp-mem.c b/drivers/usb/cdns3/cdnsp-mem.c
index 97866bfb2da9..a2a1b21f2ef8 100644
--- a/drivers/usb/cdns3/cdnsp-mem.c
+++ b/drivers/usb/cdns3/cdnsp-mem.c
@@ -35,7 +35,7 @@ static struct cdnsp_segment *cdnsp_segment_alloc(struct cdnsp_device *pdev,
dma_addr_t dma;
int i;
- seg = kzalloc(sizeof(*seg), flags);
+ seg = kzalloc_obj(*seg, flags);
if (!seg)
return NULL;
@@ -376,7 +376,7 @@ static struct cdnsp_ring *cdnsp_ring_alloc(struct cdnsp_device *pdev,
struct cdnsp_ring *ring;
int ret;
- ring = kzalloc(sizeof *(ring), flags);
+ ring = kzalloc_obj(*(ring), flags);
if (!ring)
return NULL;
@@ -575,9 +575,8 @@ int cdnsp_alloc_stream_info(struct cdnsp_device *pdev,
stream_info->num_stream_ctxs = num_stream_ctxs;
/* Initialize the array of virtual pointers to stream rings. */
- stream_info->stream_rings = kcalloc(num_streams,
- sizeof(struct cdnsp_ring *),
- GFP_ATOMIC);
+ stream_info->stream_rings = kzalloc_objs(struct cdnsp_ring *,
+ num_streams, GFP_ATOMIC);
if (!stream_info->stream_rings)
return -ENOMEM;
diff --git a/drivers/usb/cdns3/cdnsp-pci.c b/drivers/usb/cdns3/cdnsp-pci.c
index 5e7b88ca8b96..b6199f98ff77 100644
--- a/drivers/usb/cdns3/cdnsp-pci.c
+++ b/drivers/usb/cdns3/cdnsp-pci.c
@@ -82,7 +82,7 @@ static int cdnsp_pci_probe(struct pci_dev *pdev,
if (pci_is_enabled(func)) {
cdnsp = pci_get_drvdata(func);
} else {
- cdnsp = kzalloc(sizeof(*cdnsp), GFP_KERNEL);
+ cdnsp = kzalloc_obj(*cdnsp, GFP_KERNEL);
if (!cdnsp) {
ret = -ENOMEM;
goto put_pci;
diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index c8d931d9d433..f2de86d0ce40 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -360,8 +360,8 @@ static int add_td_to_list(struct ci_hw_ep *hwep, struct ci_hw_req *hwreq,
{
int i;
u32 temp;
- struct td_node *lastnode, *node = kzalloc(sizeof(struct td_node),
- GFP_ATOMIC);
+ struct td_node *lastnode, *node = kzalloc_obj(struct td_node,
+ GFP_ATOMIC);
if (node == NULL)
return -ENOMEM;
@@ -1645,7 +1645,7 @@ static struct usb_request *ep_alloc_request(struct usb_ep *ep, gfp_t gfp_flags)
if (ep == NULL)
return NULL;
- hwreq = kzalloc(sizeof(struct ci_hw_req), gfp_flags);
+ hwreq = kzalloc_obj(struct ci_hw_req, gfp_flags);
if (hwreq != NULL) {
INIT_LIST_HEAD(&hwreq->queue);
INIT_LIST_HEAD(&hwreq->tds);
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index 54be4aa1dcb2..8816c6eaba1d 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -1350,7 +1350,7 @@ static int acm_probe(struct usb_interface *intf,
made_compressed_probe:
dev_dbg(&intf->dev, "interfaces are valid\n");
- acm = kzalloc(sizeof(struct acm), GFP_KERNEL);
+ acm = kzalloc_obj(struct acm, GFP_KERNEL);
if (!acm)
return -ENOMEM;
diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
index ecd6d1f39e49..28fc93e0c01d 100644
--- a/drivers/usb/class/cdc-wdm.c
+++ b/drivers/usb/class/cdc-wdm.c
@@ -1027,7 +1027,7 @@ static int wdm_create(struct usb_interface *intf, struct usb_endpoint_descriptor
int rv = -ENOMEM;
struct wdm_device *desc;
- desc = kzalloc(sizeof(struct wdm_device), GFP_KERNEL);
+ desc = kzalloc_obj(struct wdm_device, GFP_KERNEL);
if (!desc)
goto out;
INIT_LIST_HEAD(&desc->device_list);
@@ -1050,10 +1050,10 @@ static int wdm_create(struct usb_interface *intf, struct usb_endpoint_descriptor
desc->wMaxPacketSize = usb_endpoint_maxp(ep);
- desc->orq = kmalloc(sizeof(struct usb_ctrlrequest), GFP_KERNEL);
+ desc->orq = kmalloc_obj(struct usb_ctrlrequest, GFP_KERNEL);
if (!desc->orq)
goto err;
- desc->irq = kmalloc(sizeof(struct usb_ctrlrequest), GFP_KERNEL);
+ desc->irq = kmalloc_obj(struct usb_ctrlrequest, GFP_KERNEL);
if (!desc->irq)
goto err;
diff --git a/drivers/usb/class/usblp.c b/drivers/usb/class/usblp.c
index a7a1d38b6bef..653583dc7a8d 100644
--- a/drivers/usb/class/usblp.c
+++ b/drivers/usb/class/usblp.c
@@ -1142,7 +1142,7 @@ static int usblp_probe(struct usb_interface *intf,
/* Malloc and start initializing usblp structure so we can use it
* directly. */
- usblp = kzalloc(sizeof(struct usblp), GFP_KERNEL);
+ usblp = kzalloc_obj(struct usblp, GFP_KERNEL);
if (!usblp) {
retval = -ENOMEM;
goto abort_ret;
diff --git a/drivers/usb/class/usbtmc.c b/drivers/usb/class/usbtmc.c
index 206f1b738ed3..20bc86367660 100644
--- a/drivers/usb/class/usbtmc.c
+++ b/drivers/usb/class/usbtmc.c
@@ -172,7 +172,7 @@ static int usbtmc_open(struct inode *inode, struct file *filp)
return -ENODEV;
}
- file_data = kzalloc(sizeof(*file_data), GFP_KERNEL);
+ file_data = kzalloc_obj(*file_data, GFP_KERNEL);
if (!file_data)
return -ENOMEM;
@@ -2378,7 +2378,7 @@ static int usbtmc_probe(struct usb_interface *intf,
dev_dbg(&intf->dev, "%s called\n", __func__);
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/usb/common/ulpi.c b/drivers/usb/common/ulpi.c
index 4a2ee447b213..2f414b7c3e2c 100644
--- a/drivers/usb/common/ulpi.c
+++ b/drivers/usb/common/ulpi.c
@@ -324,7 +324,7 @@ struct ulpi *ulpi_register_interface(struct device *dev,
struct ulpi *ulpi;
int ret;
- ulpi = kzalloc(sizeof(*ulpi), GFP_KERNEL);
+ ulpi = kzalloc_obj(*ulpi, GFP_KERNEL);
if (!ulpi)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c
index 2bb1ceb9d621..129cbfd74f26 100644
--- a/drivers/usb/core/config.c
+++ b/drivers/usb/core/config.c
@@ -823,7 +823,7 @@ static int usb_parse_configuration(struct usb_device *dev, int cfgidx,
nalts[i] = j = USB_MAXALTSETTING;
}
- intfc = kzalloc(struct_size(intfc, altsetting, j), GFP_KERNEL);
+ intfc = kzalloc_flex(*intfc, altsetting, j, GFP_KERNEL);
config->intf_cache[i] = intfc;
if (!intfc)
return -ENOMEM;
@@ -1045,7 +1045,7 @@ int usb_get_bos_descriptor(struct usb_device *dev)
return -ENOMSG;
}
- bos = kzalloc(sizeof(*bos), GFP_KERNEL);
+ bos = kzalloc_obj(*bos, GFP_KERNEL);
if (!bos)
return -ENOMEM;
@@ -1066,7 +1066,7 @@ int usb_get_bos_descriptor(struct usb_device *dev)
if (total_len < length)
return -EINVAL;
- dev->bos = kzalloc(sizeof(*dev->bos), GFP_KERNEL);
+ dev->bos = kzalloc_obj(*dev->bos, GFP_KERNEL);
if (!dev->bos)
return -ENOMEM;
diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
index f6ce6e26e0d4..d7ac181454f9 100644
--- a/drivers/usb/core/devio.c
+++ b/drivers/usb/core/devio.c
@@ -245,7 +245,7 @@ static int usbdev_mmap(struct file *file, struct vm_area_struct *vma)
if (ret)
goto error;
- usbm = kzalloc(sizeof(struct usb_memory), GFP_KERNEL);
+ usbm = kzalloc_obj(struct usb_memory, GFP_KERNEL);
if (!usbm) {
ret = -ENOMEM;
goto error_decrease_mem;
@@ -402,7 +402,7 @@ static struct async *alloc_async(unsigned int numisoframes)
{
struct async *as;
- as = kzalloc(sizeof(struct async), GFP_KERNEL);
+ as = kzalloc_obj(struct async, GFP_KERNEL);
if (!as)
return NULL;
as->urb = usb_alloc_urb(numisoframes, GFP_KERNEL);
@@ -970,7 +970,7 @@ static int parse_usbdevfs_streams(struct usb_dev_state *ps,
if (num_streams_ret && (num_streams < 2 || num_streams > 65536))
return -EINVAL;
- eps = kmalloc_array(num_eps, sizeof(*eps), GFP_KERNEL);
+ eps = kmalloc_objs(*eps, num_eps, GFP_KERNEL);
if (!eps)
return -ENOMEM;
@@ -1039,7 +1039,7 @@ static int usbdev_open(struct inode *inode, struct file *file)
int ret;
ret = -ENOMEM;
- ps = kzalloc(sizeof(struct usb_dev_state), GFP_KERNEL);
+ ps = kzalloc_obj(struct usb_dev_state, GFP_KERNEL);
if (!ps)
goto out_free_ps;
@@ -1196,7 +1196,7 @@ static int do_proc_control(struct usb_dev_state *ps,
urb = usb_alloc_urb(0, GFP_NOIO);
if (!urb)
goto done;
- dr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_NOIO);
+ dr = kmalloc_obj(struct usb_ctrlrequest, GFP_NOIO);
if (!dr)
goto done;
@@ -1670,7 +1670,7 @@ static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb
/* min 8 byte setup packet */
if (uurb->buffer_length < 8)
return -EINVAL;
- dr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_KERNEL);
+ dr = kmalloc_obj(struct usb_ctrlrequest, GFP_KERNEL);
if (!dr)
return -ENOMEM;
if (copy_from_user(dr, uurb->buffer, 8)) {
@@ -1805,9 +1805,8 @@ static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb
as->mem_usage = u;
if (num_sgs) {
- as->urb->sg = kmalloc_array(num_sgs,
- sizeof(struct scatterlist),
- GFP_KERNEL | __GFP_NOWARN);
+ as->urb->sg = kmalloc_objs(struct scatterlist, num_sgs,
+ GFP_KERNEL | __GFP_NOWARN);
if (!as->urb->sg) {
ret = -ENOMEM;
goto error;
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
index 2f5958bc4f7f..db67874879d8 100644
--- a/drivers/usb/core/driver.c
+++ b/drivers/usb/core/driver.c
@@ -57,7 +57,7 @@ ssize_t usb_store_new_id(struct usb_dynids *dynids,
if (fields < 2)
return -EINVAL;
- dynid = kzalloc(sizeof(*dynid), GFP_KERNEL);
+ dynid = kzalloc_obj(*dynid, GFP_KERNEL);
if (!dynid)
return -ENOMEM;
diff --git a/drivers/usb/core/endpoint.c b/drivers/usb/core/endpoint.c
index e48399401608..f44f0fffeb41 100644
--- a/drivers/usb/core/endpoint.c
+++ b/drivers/usb/core/endpoint.c
@@ -154,7 +154,7 @@ int usb_create_ep_devs(struct device *parent,
struct ep_device *ep_dev;
int retval;
- ep_dev = kzalloc(sizeof(*ep_dev), GFP_KERNEL);
+ ep_dev = kzalloc_obj(*ep_dev, GFP_KERNEL);
if (!ep_dev) {
retval = -ENOMEM;
goto exit;
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index 2d99a59d9f3f..f1b2b0e4c437 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -2193,7 +2193,7 @@ int ehset_single_step_set_feature(struct usb_hcd *hcd, int port)
if (!buf)
return -ENOMEM;
- dr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_KERNEL);
+ dr = kmalloc_obj(struct usb_ctrlrequest, GFP_KERNEL);
if (!dr) {
kfree(buf);
return -ENOMEM;
@@ -2567,16 +2567,16 @@ struct usb_hcd *__usb_create_hcd(const struct hc_driver *driver,
if (!hcd)
return NULL;
if (primary_hcd == NULL) {
- hcd->address0_mutex = kmalloc(sizeof(*hcd->address0_mutex),
- GFP_KERNEL);
+ hcd->address0_mutex = kmalloc_obj(*hcd->address0_mutex,
+ GFP_KERNEL);
if (!hcd->address0_mutex) {
kfree(hcd);
dev_dbg(dev, "hcd address0 mutex alloc failed\n");
return NULL;
}
mutex_init(hcd->address0_mutex);
- hcd->bandwidth_mutex = kmalloc(sizeof(*hcd->bandwidth_mutex),
- GFP_KERNEL);
+ hcd->bandwidth_mutex = kmalloc_obj(*hcd->bandwidth_mutex,
+ GFP_KERNEL);
if (!hcd->bandwidth_mutex) {
kfree(hcd->address0_mutex);
kfree(hcd);
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index be50d03034a9..22a54c632c26 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -929,7 +929,7 @@ int usb_hub_clear_tt_buffer(struct urb *urb)
* since each TT has "at least two" buffers that can need it (and
* there can be many TTs per hub). even if they're uncommon.
*/
- clear = kmalloc(sizeof *clear, GFP_ATOMIC);
+ clear = kmalloc_obj(*clear, GFP_ATOMIC);
if (clear == NULL) {
dev_err(&udev->dev, "can't save CLEAR_TT_BUFFER state\n");
/* FIXME recover somehow ... RESET_TT? */
@@ -1461,20 +1461,20 @@ static int hub_configure(struct usb_hub *hub,
unsigned full_load;
unsigned maxchild;
- hub->buffer = kmalloc(sizeof(*hub->buffer), GFP_KERNEL);
+ hub->buffer = kmalloc_obj(*hub->buffer, GFP_KERNEL);
if (!hub->buffer) {
ret = -ENOMEM;
goto fail;
}
- hub->status = kmalloc(sizeof(*hub->status), GFP_KERNEL);
+ hub->status = kmalloc_obj(*hub->status, GFP_KERNEL);
if (!hub->status) {
ret = -ENOMEM;
goto fail;
}
mutex_init(&hub->status_mutex);
- hub->descriptor = kzalloc(sizeof(*hub->descriptor), GFP_KERNEL);
+ hub->descriptor = kzalloc_obj(*hub->descriptor, GFP_KERNEL);
if (!hub->descriptor) {
ret = -ENOMEM;
goto fail;
@@ -1522,7 +1522,7 @@ static int hub_configure(struct usb_hub *hub,
dev_info(hub_dev, "%d port%s detected\n", maxchild,
str_plural(maxchild));
- hub->ports = kcalloc(maxchild, sizeof(struct usb_port *), GFP_KERNEL);
+ hub->ports = kzalloc_objs(struct usb_port *, maxchild, GFP_KERNEL);
if (!hub->ports) {
ret = -ENOMEM;
goto fail;
@@ -1958,7 +1958,7 @@ static int hub_probe(struct usb_interface *intf, const struct usb_device_id *id)
/* We found a hub */
dev_info(&intf->dev, "USB hub found\n");
- hub = kzalloc(sizeof(*hub), GFP_KERNEL);
+ hub = kzalloc_obj(*hub, GFP_KERNEL);
if (!hub)
return -ENOMEM;
@@ -4142,7 +4142,7 @@ static int usb_req_set_sel(struct usb_device *udev)
* which may be initiated by an error path of a mass storage driver.
* Therefore, use GFP_NOIO.
*/
- sel_values = kmalloc(sizeof *(sel_values), GFP_NOIO);
+ sel_values = kmalloc_obj(*(sel_values), GFP_NOIO);
if (!sel_values)
return -ENOMEM;
@@ -5236,7 +5236,7 @@ check_highspeed(struct usb_hub *hub, struct usb_device *udev, int port1)
if (udev->quirks & USB_QUIRK_DEVICE_QUALIFIER)
return;
- qual = kmalloc(sizeof *qual, GFP_KERNEL);
+ qual = kmalloc_obj(*qual, GFP_KERNEL);
if (qual == NULL)
return;
diff --git a/drivers/usb/core/ledtrig-usbport.c b/drivers/usb/core/ledtrig-usbport.c
index 5e3c515991f3..e7de8864a527 100644
--- a/drivers/usb/core/ledtrig-usbport.c
+++ b/drivers/usb/core/ledtrig-usbport.c
@@ -190,7 +190,7 @@ static int usbport_trig_add_port(struct usbport_trig_data *usbport_data,
size_t len;
int err;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port) {
err = -ENOMEM;
goto err_out;
@@ -305,7 +305,7 @@ static int usbport_trig_activate(struct led_classdev *led_cdev)
struct usbport_trig_data *usbport_data;
int err;
- usbport_data = kzalloc(sizeof(*usbport_data), GFP_KERNEL);
+ usbport_data = kzalloc_obj(*usbport_data, GFP_KERNEL);
if (!usbport_data)
return -ENOMEM;
usbport_data->led_cdev = led_cdev;
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
index 6138468c67c4..d8f50d468794 100644
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -141,7 +141,7 @@ int usb_control_msg(struct usb_device *dev, unsigned int pipe, __u8 request,
struct usb_ctrlrequest *dr;
int ret;
- dr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_NOIO);
+ dr = kmalloc_obj(struct usb_ctrlrequest, GFP_NOIO);
if (!dr)
return -ENOMEM;
@@ -526,7 +526,7 @@ int usb_sg_init(struct usb_sg_request *io, struct usb_device *dev,
}
/* initialize all the urbs we'll use */
- io->urbs = kmalloc_array(io->entries, sizeof(*io->urbs), mem_flags);
+ io->urbs = kmalloc_objs(*io->urbs, io->entries, mem_flags);
if (!io->urbs)
goto nomem;
@@ -1058,7 +1058,7 @@ struct usb_device_descriptor *usb_get_device_descriptor(struct usb_device *udev)
struct usb_device_descriptor *desc;
int ret;
- desc = kmalloc(sizeof(*desc), GFP_NOIO);
+ desc = kmalloc_obj(*desc, GFP_NOIO);
if (!desc)
return ERR_PTR(-ENOMEM);
@@ -2028,15 +2028,13 @@ int usb_set_configuration(struct usb_device *dev, int configuration)
n = nintf = 0;
if (cp) {
nintf = cp->desc.bNumInterfaces;
- new_interfaces = kmalloc_array(nintf, sizeof(*new_interfaces),
- GFP_NOIO);
+ new_interfaces = kmalloc_objs(*new_interfaces, nintf, GFP_NOIO);
if (!new_interfaces)
return -ENOMEM;
for (; n < nintf; ++n) {
- new_interfaces[n] = kzalloc(
- sizeof(struct usb_interface),
- GFP_NOIO);
+ new_interfaces[n] = kzalloc_obj(struct usb_interface,
+ GFP_NOIO);
if (!new_interfaces[n]) {
ret = -ENOMEM;
free_interfaces:
@@ -2289,7 +2287,7 @@ int usb_driver_set_configuration(struct usb_device *udev, int config)
{
struct set_config_request *req;
- req = kmalloc(sizeof(*req), GFP_KERNEL);
+ req = kmalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
req->udev = udev;
diff --git a/drivers/usb/core/port.c b/drivers/usb/core/port.c
index f54198171b6a..36096973eb59 100644
--- a/drivers/usb/core/port.c
+++ b/drivers/usb/core/port.c
@@ -739,11 +739,11 @@ int usb_hub_create_port_device(struct usb_hub *hub, int port1)
struct usb_device *hdev = hub->hdev;
int retval;
- port_dev = kzalloc(sizeof(*port_dev), GFP_KERNEL);
+ port_dev = kzalloc_obj(*port_dev, GFP_KERNEL);
if (!port_dev)
return -ENOMEM;
- port_dev->req = kzalloc(sizeof(*(port_dev->req)), GFP_KERNEL);
+ port_dev->req = kzalloc_obj(*(port_dev->req), GFP_KERNEL);
if (!port_dev->req) {
kfree(port_dev);
return -ENOMEM;
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index c4d85089d19b..135a89ab2bfa 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -61,8 +61,7 @@ static int quirks_param_set(const char *value, const struct kernel_param *kp)
quirk_list = NULL;
}
- quirk_list = kcalloc(quirk_count, sizeof(struct quirk_entry),
- GFP_KERNEL);
+ quirk_list = kzalloc_objs(struct quirk_entry, quirk_count, GFP_KERNEL);
if (!quirk_list) {
quirk_count = 0;
mutex_unlock(&quirk_mutex);
diff --git a/drivers/usb/core/urb.c b/drivers/usb/core/urb.c
index ff8df16cca35..c06b44ca507b 100644
--- a/drivers/usb/core/urb.c
+++ b/drivers/usb/core/urb.c
@@ -72,8 +72,7 @@ struct urb *usb_alloc_urb(int iso_packets, gfp_t mem_flags)
{
struct urb *urb;
- urb = kmalloc(struct_size(urb, iso_frame_desc, iso_packets),
- mem_flags);
+ urb = kmalloc_flex(*urb, iso_frame_desc, iso_packets, mem_flags);
if (!urb)
return NULL;
usb_init_urb(urb);
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index e740f7852bcd..cfb882b86981 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -648,7 +648,7 @@ struct usb_device *usb_alloc_dev(struct usb_device *parent,
struct usb_hcd *usb_hcd = bus_to_hcd(bus);
unsigned raw_port = port1;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return NULL;
diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
index 0637bfbc054e..d216e26c787b 100644
--- a/drivers/usb/dwc2/gadget.c
+++ b/drivers/usb/dwc2/gadget.c
@@ -397,7 +397,7 @@ static struct usb_request *dwc2_hsotg_ep_alloc_request(struct usb_ep *ep,
{
struct dwc2_hsotg_req *req;
- req = kzalloc(sizeof(*req), flags);
+ req = kzalloc_obj(*req, flags);
if (!req)
return NULL;
diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c
index 30eb8506617c..55809a83f8f8 100644
--- a/drivers/usb/dwc2/hcd.c
+++ b/drivers/usb/dwc2/hcd.c
@@ -3823,7 +3823,7 @@ static struct dwc2_hcd_urb *dwc2_hcd_urb_alloc(struct dwc2_hsotg *hsotg,
{
struct dwc2_hcd_urb *urb;
- urb = kzalloc(struct_size(urb, iso_descs, iso_desc_count), mem_flags);
+ urb = kzalloc_flex(*urb, iso_descs, iso_desc_count, mem_flags);
if (urb)
urb->packet_count = iso_desc_count;
return urb;
@@ -4743,7 +4743,7 @@ static int _dwc2_hcd_urb_enqueue(struct usb_hcd *hcd, struct urb *urb,
qh_allocated = true;
}
- qtd = kzalloc(sizeof(*qtd), mem_flags);
+ qtd = kzalloc_obj(*qtd, mem_flags);
if (!qtd) {
retval = -ENOMEM;
goto fail1;
@@ -5218,7 +5218,7 @@ int dwc2_hcd_init(struct dwc2_hsotg *hsotg)
memset(&hsotg->hc_ptr_array[0], 0, sizeof(hsotg->hc_ptr_array));
for (i = 0; i < num_channels; i++) {
- channel = kzalloc(sizeof(*channel), GFP_KERNEL);
+ channel = kzalloc_obj(*channel, GFP_KERNEL);
if (!channel)
goto error3;
channel->hc_num = i;
diff --git a/drivers/usb/dwc2/hcd_queue.c b/drivers/usb/dwc2/hcd_queue.c
index 904fe0632b34..4f00ff1dc3e1 100644
--- a/drivers/usb/dwc2/hcd_queue.c
+++ b/drivers/usb/dwc2/hcd_queue.c
@@ -1585,7 +1585,7 @@ struct dwc2_qh *dwc2_hcd_qh_create(struct dwc2_hsotg *hsotg,
return NULL;
/* Allocate memory */
- qh = kzalloc(sizeof(*qh), mem_flags);
+ qh = kzalloc_obj(*qh, mem_flags);
if (!qh)
return NULL;
diff --git a/drivers/usb/dwc3/debugfs.c b/drivers/usb/dwc3/debugfs.c
index ffb1101f55c7..a005865862c8 100644
--- a/drivers/usb/dwc3/debugfs.c
+++ b/drivers/usb/dwc3/debugfs.c
@@ -1003,7 +1003,7 @@ void dwc3_debugfs_init(struct dwc3 *dwc)
{
struct dentry *root;
- dwc->regset = kzalloc(sizeof(*dwc->regset), GFP_KERNEL);
+ dwc->regset = kzalloc_obj(*dwc->regset, GFP_KERNEL);
if (!dwc->regset)
return;
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index c65291e7b8d9..7bd60fc7cd74 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1188,7 +1188,7 @@ static struct usb_request *dwc3_gadget_ep_alloc_request(struct usb_ep *ep,
struct dwc3_request *req;
struct dwc3_ep *dep = to_dwc3_ep(ep);
- req = kzalloc(sizeof(*req), gfp_flags);
+ req = kzalloc_obj(*req, gfp_flags);
if (!req)
return NULL;
@@ -3373,7 +3373,7 @@ static int dwc3_gadget_init_endpoint(struct dwc3 *dwc, u8 epnum)
int ret;
u8 num = epnum >> 1;
- dep = kzalloc(sizeof(*dep), GFP_KERNEL);
+ dep = kzalloc_obj(*dep, GFP_KERNEL);
if (!dep)
return -ENOMEM;
@@ -4728,7 +4728,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
}
init_completion(&dwc->ep0_in_setup);
- dwc->gadget = kzalloc(sizeof(struct usb_gadget), GFP_KERNEL);
+ dwc->gadget = kzalloc_obj(struct usb_gadget, GFP_KERNEL);
if (!dwc->gadget) {
ret = -ENOMEM;
goto err3;
diff --git a/drivers/usb/fotg210/fotg210-hcd.c b/drivers/usb/fotg210/fotg210-hcd.c
index fbb5d590eab6..65a16d2cdfd7 100644
--- a/drivers/usb/fotg210/fotg210-hcd.c
+++ b/drivers/usb/fotg210/fotg210-hcd.c
@@ -515,7 +515,7 @@ static ssize_t fill_periodic_buffer(struct debug_buffer *buf)
unsigned i;
__hc32 tag;
- seen = kmalloc_array(DBG_SCHED_LIMIT, sizeof(*seen), GFP_ATOMIC);
+ seen = kmalloc_objs(*seen, DBG_SCHED_LIMIT, GFP_ATOMIC);
if (!seen)
return 0;
@@ -738,7 +738,7 @@ static struct debug_buffer
{
struct debug_buffer *buf;
- buf = kzalloc(sizeof(struct debug_buffer), GFP_KERNEL);
+ buf = kzalloc_obj(struct debug_buffer, GFP_KERNEL);
if (buf) {
buf->bus = bus;
@@ -1847,7 +1847,7 @@ static struct fotg210_qh *fotg210_qh_alloc(struct fotg210_hcd *fotg210,
struct fotg210_qh *qh;
dma_addr_t dma;
- qh = kzalloc(sizeof(*qh), GFP_ATOMIC);
+ qh = kzalloc_obj(*qh, GFP_ATOMIC);
if (!qh)
goto done;
qh->hw = (struct fotg210_qh_hw *)
@@ -3899,7 +3899,7 @@ static struct fotg210_iso_stream *iso_stream_alloc(gfp_t mem_flags)
{
struct fotg210_iso_stream *stream;
- stream = kzalloc(sizeof(*stream), mem_flags);
+ stream = kzalloc_obj(*stream, mem_flags);
if (likely(stream != NULL)) {
INIT_LIST_HEAD(&stream->td_list);
INIT_LIST_HEAD(&stream->free_list);
@@ -4007,7 +4007,7 @@ static struct fotg210_iso_sched *iso_sched_alloc(unsigned packets,
{
struct fotg210_iso_sched *iso_sched;
- iso_sched = kzalloc(struct_size(iso_sched, packet, packets), mem_flags);
+ iso_sched = kzalloc_flex(*iso_sched, packet, packets, mem_flags);
if (likely(iso_sched != NULL))
INIT_LIST_HEAD(&iso_sched->td_list);
diff --git a/drivers/usb/fotg210/fotg210-udc.c b/drivers/usb/fotg210/fotg210-udc.c
index 0bae12e34f9a..79509ec08be9 100644
--- a/drivers/usb/fotg210/fotg210-udc.c
+++ b/drivers/usb/fotg210/fotg210-udc.c
@@ -244,7 +244,7 @@ static struct usb_request *fotg210_ep_alloc_request(struct usb_ep *_ep,
{
struct fotg210_request *req;
- req = kzalloc(sizeof(struct fotg210_request), gfp_flags);
+ req = kzalloc_obj(struct fotg210_request, gfp_flags);
if (!req)
return NULL;
@@ -1183,7 +1183,7 @@ int fotg210_udc_probe(struct platform_device *pdev, struct fotg210 *fotg)
return irq;
/* initialize udc */
- fotg210 = kzalloc(sizeof(struct fotg210_udc), GFP_KERNEL);
+ fotg210 = kzalloc_obj(struct fotg210_udc, GFP_KERNEL);
if (fotg210 == NULL)
return -ENOMEM;
@@ -1207,7 +1207,7 @@ int fotg210_udc_probe(struct platform_device *pdev, struct fotg210 *fotg)
ret = -ENOMEM;
for (i = 0; i < FOTG210_MAX_NUM_EP; i++) {
- fotg210->ep[i] = kzalloc(sizeof(struct fotg210_ep), GFP_KERNEL);
+ fotg210->ep[i] = kzalloc_obj(struct fotg210_ep, GFP_KERNEL);
if (!fotg210->ep[i])
goto err_alloc;
}
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index 5b3866909b75..aba08d058ff9 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -2531,7 +2531,7 @@ static int composite_bind(struct usb_gadget *gadget,
struct usb_composite_driver *composite = to_cdriver(gdriver);
int status = -ENOMEM;
- cdev = kzalloc(sizeof *cdev, GFP_KERNEL);
+ cdev = kzalloc_obj(*cdev, GFP_KERNEL);
if (!cdev)
return status;
diff --git a/drivers/usb/gadget/configfs.c b/drivers/usb/gadget/configfs.c
index acef1c6f199c..5163a994f9e7 100644
--- a/drivers/usb/gadget/configfs.c
+++ b/drivers/usb/gadget/configfs.c
@@ -727,7 +727,7 @@ static struct config_group *config_desc_make(
if (ret)
return ERR_PTR(ret);
- cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
+ cfg = kzalloc_obj(*cfg, GFP_KERNEL);
if (!cfg)
return ERR_PTR(-ENOMEM);
cfg->c.label = kstrdup(buf, GFP_KERNEL);
@@ -870,7 +870,7 @@ static struct config_item *gadget_language_string_make(struct config_group *grou
language = to_gadget_language(&group->cg_item);
- string = kzalloc(sizeof(*string), GFP_KERNEL);
+ string = kzalloc_obj(*string, GFP_KERNEL);
if (!string)
return ERR_PTR(-ENOMEM);
@@ -922,7 +922,7 @@ static struct config_group *gadget_language_make(struct config_group *group,
int langs = 0;
int ret;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return ERR_PTR(-ENOMEM);
@@ -1629,8 +1629,8 @@ configfs_attach_gadget_strings(struct gadget_info *gi)
if (!nlangs)
return NULL;
- gadget_strings = kcalloc(nlangs + 1, /* including NULL terminator */
- sizeof(struct usb_gadget_strings *), GFP_KERNEL);
+ gadget_strings = kzalloc_objs(struct usb_gadget_strings *, nlangs + 1,
+ GFP_KERNEL)/* including NULL terminator */;
if (!gadget_strings)
return ERR_PTR(-ENOMEM);
@@ -1645,8 +1645,8 @@ configfs_attach_gadget_strings(struct gadget_info *gi)
goto cleanup;
}
- stringtab = kcalloc(language->nstrings + 1, sizeof(struct usb_string),
- GFP_KERNEL);
+ stringtab = kzalloc_objs(struct usb_string,
+ language->nstrings + 1, GFP_KERNEL);
if (!stringtab) {
us = ERR_PTR(-ENOMEM);
goto cleanup;
@@ -1992,7 +1992,7 @@ static struct config_group *gadgets_make(
{
struct gadget_info *gi;
- gi = kzalloc(sizeof(*gi), GFP_KERNEL);
+ gi = kzalloc_obj(*gi, GFP_KERNEL);
if (!gi)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_acm.c b/drivers/usb/gadget/function/f_acm.c
index 0ad857f1f325..d34b4710f962 100644
--- a/drivers/usb/gadget/function/f_acm.c
+++ b/drivers/usb/gadget/function/f_acm.c
@@ -748,7 +748,7 @@ static struct usb_function *acm_alloc_func(struct usb_function_instance *fi)
struct f_serial_opts *opts;
struct f_acm *acm;
- acm = kzalloc(sizeof(*acm), GFP_KERNEL);
+ acm = kzalloc_obj(*acm, GFP_KERNEL);
if (!acm)
return ERR_PTR(-ENOMEM);
@@ -882,7 +882,7 @@ static struct usb_function_instance *acm_alloc_instance(void)
struct f_serial_opts *opts;
int ret;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
opts->protocol = USB_CDC_ACM_PROTO_AT_V25TER;
diff --git a/drivers/usb/gadget/function/f_ecm.c b/drivers/usb/gadget/function/f_ecm.c
index 675d2bc538a4..aa91d705bc8d 100644
--- a/drivers/usb/gadget/function/f_ecm.c
+++ b/drivers/usb/gadget/function/f_ecm.c
@@ -847,7 +847,7 @@ static struct usb_function_instance *ecm_alloc_inst(void)
{
struct f_ecm_opts *opts;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
mutex_init(&opts->lock);
@@ -927,7 +927,7 @@ static struct usb_function *ecm_alloc(struct usb_function_instance *fi)
int status;
/* allocate and initialize one new instance */
- ecm = kzalloc(sizeof(*ecm), GFP_KERNEL);
+ ecm = kzalloc_obj(*ecm, GFP_KERNEL);
if (!ecm)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_eem.c b/drivers/usb/gadget/function/f_eem.c
index edbbadad6138..acdd6c637c7b 100644
--- a/drivers/usb/gadget/function/f_eem.c
+++ b/drivers/usb/gadget/function/f_eem.c
@@ -462,7 +462,7 @@ static int eem_unwrap(struct gether *port,
goto next;
}
- ctx = kmalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kmalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
kfree(req->buf);
usb_ep_free_request(ep, req);
@@ -608,7 +608,7 @@ static struct usb_function_instance *eem_alloc_inst(void)
{
struct f_eem_opts *opts;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
mutex_init(&opts->lock);
@@ -651,7 +651,7 @@ static struct usb_function *eem_alloc(struct usb_function_instance *fi)
struct f_eem_opts *opts;
/* allocate and initialize one new instance */
- eem = kzalloc(sizeof(*eem), GFP_KERNEL);
+ eem = kzalloc_obj(*eem, GFP_KERNEL);
if (!eem)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c
index 2c6986e381ca..84cfa7a8437a 100644
--- a/drivers/usb/gadget/function/f_fs.c
+++ b/drivers/usb/gadget/function/f_fs.c
@@ -814,7 +814,7 @@ static void *ffs_build_sg_list(struct sg_table *sgt, size_t sz)
return NULL;
n_pages = PAGE_ALIGN(sz) >> PAGE_SHIFT;
- pages = kvmalloc_array(n_pages, sizeof(struct page *), GFP_KERNEL);
+ pages = kvmalloc_objs(struct page *, n_pages, GFP_KERNEL);
if (!pages) {
vfree(vaddr);
@@ -957,7 +957,7 @@ static ssize_t __ffs_epfile_read_data(struct ffs_epfile *epfile,
data_len, ret);
data_len -= ret;
- buf = kmalloc(struct_size(buf, storage, data_len), GFP_KERNEL);
+ buf = kmalloc_flex(*buf, storage, data_len, GFP_KERNEL);
if (!buf)
return -ENOMEM;
buf->length = data_len;
@@ -1245,7 +1245,7 @@ static ssize_t ffs_epfile_write_iter(struct kiocb *kiocb, struct iov_iter *from)
ssize_t res;
if (!is_sync_kiocb(kiocb)) {
- p = kzalloc(sizeof(io_data), GFP_KERNEL);
+ p = kzalloc_obj(io_data, GFP_KERNEL);
if (!p)
return -ENOMEM;
p->aio = true;
@@ -1280,7 +1280,7 @@ static ssize_t ffs_epfile_read_iter(struct kiocb *kiocb, struct iov_iter *to)
ssize_t res;
if (!is_sync_kiocb(kiocb)) {
- p = kzalloc(sizeof(io_data), GFP_KERNEL);
+ p = kzalloc_obj(io_data, GFP_KERNEL);
if (!p)
return -ENOMEM;
p->aio = true;
@@ -1503,7 +1503,7 @@ static int ffs_dmabuf_attach(struct file *file, int fd)
goto err_dmabuf_put;
}
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
err = -ENOMEM;
goto err_dmabuf_detach;
@@ -1652,7 +1652,7 @@ static int ffs_dmabuf_transfer(struct file *file,
if (ret)
goto err_resv_unlock;
- fence = kmalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kmalloc_obj(*fence, GFP_KERNEL);
if (!fence) {
ret = -ENOMEM;
goto err_resv_unlock;
@@ -2067,7 +2067,7 @@ static int ffs_fs_init_fs_context(struct fs_context *fc)
{
struct ffs_sb_fill_data *ctx;
- ctx = kzalloc(sizeof(struct ffs_sb_fill_data), GFP_KERNEL);
+ ctx = kzalloc_obj(struct ffs_sb_fill_data, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -2183,7 +2183,7 @@ static void ffs_data_closed(struct ffs_data *ffs)
static struct ffs_data *ffs_data_new(const char *dev_name)
{
- struct ffs_data *ffs = kzalloc(sizeof *ffs, GFP_KERNEL);
+ struct ffs_data *ffs = kzalloc_obj(*ffs, GFP_KERNEL);
if (!ffs)
return NULL;
@@ -2330,7 +2330,7 @@ static int ffs_epfiles_create(struct ffs_data *ffs)
int err;
count = ffs->eps_count;
- epfiles = kcalloc(count, sizeof(*epfiles), GFP_KERNEL);
+ epfiles = kzalloc_objs(*epfiles, count, GFP_KERNEL);
if (!epfiles)
return -ENOMEM;
@@ -4031,7 +4031,7 @@ static struct usb_function_instance *ffs_alloc_inst(void)
struct f_fs_opts *opts;
struct ffs_dev *dev;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
@@ -4107,7 +4107,7 @@ static struct usb_function *ffs_alloc(struct usb_function_instance *fi)
{
struct ffs_function *func;
- func = kzalloc(sizeof(*func), GFP_KERNEL);
+ func = kzalloc_obj(*func, GFP_KERNEL);
if (!func)
return ERR_PTR(-ENOMEM);
@@ -4138,7 +4138,7 @@ static struct ffs_dev *_ffs_alloc_dev(void)
if (_ffs_get_single_dev())
return ERR_PTR(-EBUSY);
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_hid.c b/drivers/usb/gadget/function/f_hid.c
index bee0d0458ff7..93dd678cafe1 100644
--- a/drivers/usb/gadget/function/f_hid.c
+++ b/drivers/usb/gadget/function/f_hid.c
@@ -650,7 +650,7 @@ static int f_hidg_get_report(struct file *file, struct usb_hidg_report __user *b
struct report_entry *ptr;
__u8 report_id;
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -775,7 +775,7 @@ static void hidg_intout_complete(struct usb_ep *ep, struct usb_request *req)
switch (req->status) {
case 0:
- req_list = kzalloc(sizeof(*req_list), GFP_ATOMIC);
+ req_list = kzalloc_obj(*req_list, GFP_ATOMIC);
if (!req_list) {
ERROR(cdev, "Unable to allocate mem for req_list\n");
goto free_req;
@@ -1530,7 +1530,7 @@ static struct usb_function_instance *hidg_alloc_inst(void)
struct usb_function_instance *ret;
int status = 0;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
mutex_init(&opts->lock);
@@ -1596,7 +1596,7 @@ static struct usb_function *hidg_alloc(struct usb_function_instance *fi)
int ret;
/* allocate and initialize one new instance */
- hidg = kzalloc(sizeof(*hidg), GFP_KERNEL);
+ hidg = kzalloc_obj(*hidg, GFP_KERNEL);
if (!hidg)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_loopback.c b/drivers/usb/gadget/function/f_loopback.c
index 39862e236837..b8fa60af9385 100644
--- a/drivers/usb/gadget/function/f_loopback.c
+++ b/drivers/usb/gadget/function/f_loopback.c
@@ -425,7 +425,7 @@ static struct usb_function *loopback_alloc(struct usb_function_instance *fi)
struct f_loopback *loop;
struct f_lb_opts *lb_opts;
- loop = kzalloc(sizeof *loop, GFP_KERNEL);
+ loop = kzalloc_obj(*loop, GFP_KERNEL);
if (!loop)
return ERR_PTR(-ENOMEM);
@@ -568,7 +568,7 @@ static struct usb_function_instance *loopback_alloc_instance(void)
{
struct f_lb_opts *lb_opts;
- lb_opts = kzalloc(sizeof(*lb_opts), GFP_KERNEL);
+ lb_opts = kzalloc_obj(*lb_opts, GFP_KERNEL);
if (!lb_opts)
return ERR_PTR(-ENOMEM);
mutex_init(&lb_opts->lock);
diff --git a/drivers/usb/gadget/function/f_mass_storage.c b/drivers/usb/gadget/function/f_mass_storage.c
index 5c3f34a2f35c..c894ede6bcd2 100644
--- a/drivers/usb/gadget/function/f_mass_storage.c
+++ b/drivers/usb/gadget/function/f_mass_storage.c
@@ -2699,7 +2699,7 @@ static void fsg_lun_release(struct device *dev)
static struct fsg_common *fsg_common_setup(struct fsg_common *common)
{
if (!common) {
- common = kzalloc(sizeof(*common), GFP_KERNEL);
+ common = kzalloc_obj(*common, GFP_KERNEL);
if (!common)
return ERR_PTR(-ENOMEM);
common->free_storage_on_release = 1;
@@ -2740,7 +2740,7 @@ int fsg_common_set_num_buffers(struct fsg_common *common, unsigned int n)
struct fsg_buffhd *bh, *buffhds;
int i;
- buffhds = kcalloc(n, sizeof(*buffhds), GFP_KERNEL);
+ buffhds = kzalloc_objs(*buffhds, n, GFP_KERNEL);
if (!buffhds)
return -ENOMEM;
@@ -2887,7 +2887,7 @@ int fsg_common_create_lun(struct fsg_common *common, struct fsg_lun_config *cfg,
return -EINVAL;
}
- lun = kzalloc(sizeof(*lun), GFP_KERNEL);
+ lun = kzalloc_obj(*lun, GFP_KERNEL);
if (!lun)
return -ENOMEM;
@@ -3311,7 +3311,7 @@ static struct config_group *fsg_lun_make(struct config_group *group,
goto out;
}
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts) {
ret = -ENOMEM;
goto out;
@@ -3489,7 +3489,7 @@ static struct usb_function_instance *fsg_alloc_inst(void)
struct fsg_lun_config config;
int rc;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
mutex_init(&opts->lock);
@@ -3554,7 +3554,7 @@ static struct usb_function *fsg_alloc(struct usb_function_instance *fi)
struct fsg_common *common = opts->common;
struct fsg_dev *fsg;
- fsg = kzalloc(sizeof(*fsg), GFP_KERNEL);
+ fsg = kzalloc_obj(*fsg, GFP_KERNEL);
if (unlikely(!fsg))
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c
index f592f9eb85d4..d98f946b1621 100644
--- a/drivers/usb/gadget/function/f_midi.c
+++ b/drivers/usb/gadget/function/f_midi.c
@@ -931,8 +931,8 @@ static int f_midi_bind(struct usb_configuration *c, struct usb_function *f)
goto fail;
/* allocate temporary function list */
- midi_function = kcalloc((MAX_PORTS * 4) + 11, sizeof(*midi_function),
- GFP_KERNEL);
+ midi_function = kzalloc_objs(*midi_function, (MAX_PORTS * 4) + 11,
+ GFP_KERNEL);
if (!midi_function) {
status = -ENOMEM;
goto fail;
@@ -1279,7 +1279,7 @@ static struct usb_function_instance *f_midi_alloc_inst(void)
{
struct f_midi_opts *opts;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
@@ -1361,8 +1361,7 @@ static struct usb_function *f_midi_alloc(struct usb_function_instance *fi)
}
/* allocate and initialize one new instance */
- midi = kzalloc(struct_size(midi, in_ports_array, opts->in_ports),
- GFP_KERNEL);
+ midi = kzalloc_flex(*midi, in_ports_array, opts->in_ports, GFP_KERNEL);
if (!midi) {
status = -ENOMEM;
goto setup_fail;
diff --git a/drivers/usb/gadget/function/f_midi2.c b/drivers/usb/gadget/function/f_midi2.c
index 95ec87bed3ee..1a4feca1f083 100644
--- a/drivers/usb/gadget/function/f_midi2.c
+++ b/drivers/usb/gadget/function/f_midi2.c
@@ -1187,8 +1187,8 @@ static int f_midi2_init_ep(struct f_midi2 *midi2, struct f_midi2_ep *ep,
return -ENODEV;
usb_ep->complete = complete;
- usb_ep->reqs = kcalloc(midi2->info.num_reqs, sizeof(*usb_ep->reqs),
- GFP_KERNEL);
+ usb_ep->reqs = kzalloc_objs(*usb_ep->reqs, midi2->info.num_reqs,
+ GFP_KERNEL);
if (!usb_ep->reqs)
return -ENOMEM;
for (i = 0; i < midi2->info.num_reqs; i++) {
@@ -2340,7 +2340,7 @@ static int f_midi2_block_opts_create(struct f_midi2_ep_opts *ep_opts,
goto out;
}
- block_opts = kzalloc(sizeof(*block_opts), GFP_KERNEL);
+ block_opts = kzalloc_obj(*block_opts, GFP_KERNEL);
if (!block_opts) {
ret = -ENOMEM;
goto out;
@@ -2502,7 +2502,7 @@ static int f_midi2_ep_opts_create(struct f_midi2_opts *opts,
{
struct f_midi2_ep_opts *ep_opts;
- ep_opts = kzalloc(sizeof(*ep_opts), GFP_KERNEL);
+ ep_opts = kzalloc_obj(*ep_opts, GFP_KERNEL);
if (!ep_opts)
return -ENOMEM;
@@ -2652,7 +2652,7 @@ static struct usb_function_instance *f_midi2_alloc_inst(void)
struct f_midi2_block_opts *block_opts;
int ret;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
@@ -2813,7 +2813,7 @@ static struct usb_function *f_midi2_alloc(struct usb_function_instance *fi)
struct f_midi2_block *bp;
int i, num_eps, blk;
- midi2 = kzalloc(sizeof(*midi2), GFP_KERNEL);
+ midi2 = kzalloc_obj(*midi2, GFP_KERNEL);
if (!midi2)
return ERR_PTR(-ENOMEM);
@@ -2855,8 +2855,8 @@ static struct usb_function *f_midi2_alloc(struct usb_function_instance *fi)
}
}
- midi2->string_defs = kcalloc(midi2->total_blocks + 1,
- sizeof(*midi2->string_defs), GFP_KERNEL);
+ midi2->string_defs = kzalloc_objs(*midi2->string_defs,
+ midi2->total_blocks + 1, GFP_KERNEL);
if (!midi2->string_defs) {
do_f_midi2_free(midi2, opts);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_ncm.c b/drivers/usb/gadget/function/f_ncm.c
index e23adc132f88..6bbdb10ce3ca 100644
--- a/drivers/usb/gadget/function/f_ncm.c
+++ b/drivers/usb/gadget/function/f_ncm.c
@@ -1683,7 +1683,7 @@ static struct usb_function_instance *ncm_alloc_inst(void)
char *names[1];
struct config_group *ncm_interf_group;
- struct f_ncm_opts *opts __free(kfree) = kzalloc(sizeof(*opts), GFP_KERNEL);
+ struct f_ncm_opts *opts __free(kfree) = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_obex.c b/drivers/usb/gadget/function/f_obex.c
index 6d498f63183e..e9e9fd70c243 100644
--- a/drivers/usb/gadget/function/f_obex.c
+++ b/drivers/usb/gadget/function/f_obex.c
@@ -426,7 +426,7 @@ static struct usb_function_instance *obex_alloc_inst(void)
struct f_serial_opts *opts;
int ret;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
@@ -461,7 +461,7 @@ static struct usb_function *obex_alloc(struct usb_function_instance *fi)
struct f_serial_opts *opts;
/* allocate and initialize one new instance */
- obex = kzalloc(sizeof(*obex), GFP_KERNEL);
+ obex = kzalloc_obj(*obex, GFP_KERNEL);
if (!obex)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_phonet.c b/drivers/usb/gadget/function/f_phonet.c
index d644d5495fdc..b427dcae456c 100644
--- a/drivers/usb/gadget/function/f_phonet.c
+++ b/drivers/usb/gadget/function/f_phonet.c
@@ -623,7 +623,7 @@ static struct usb_function_instance *phonet_alloc_inst(void)
{
struct f_phonet_opts *opts;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
@@ -669,7 +669,7 @@ static struct usb_function *phonet_alloc(struct usb_function_instance *fi)
struct f_phonet *fp;
struct f_phonet_opts *opts;
- fp = kzalloc(struct_size(fp, out_reqv, phonet_rxq_size), GFP_KERNEL);
+ fp = kzalloc_flex(*fp, out_reqv, phonet_rxq_size, GFP_KERNEL);
if (!fp)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_printer.c b/drivers/usb/gadget/function/f_printer.c
index b2fa2b56c37e..d0e6435ac7a6 100644
--- a/drivers/usb/gadget/function/f_printer.c
+++ b/drivers/usb/gadget/function/f_printer.c
@@ -1374,7 +1374,7 @@ static struct usb_function_instance *gprinter_alloc_inst(void)
struct usb_function_instance *ret;
int status = 0;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
@@ -1482,7 +1482,7 @@ static struct usb_function *gprinter_alloc(struct usb_function_instance *fi)
return ERR_PTR(-ENOENT);
}
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
mutex_unlock(&opts->lock);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_rndis.c b/drivers/usb/gadget/function/f_rndis.c
index 7451e7cb7a85..39a87458bab4 100644
--- a/drivers/usb/gadget/function/f_rndis.c
+++ b/drivers/usb/gadget/function/f_rndis.c
@@ -673,7 +673,7 @@ rndis_bind(struct usb_configuration *c, struct usb_function *f)
rndis_opts = container_of(f->fi, struct f_rndis_opts, func_inst);
if (cdev->use_os_string) {
- os_desc_table = kzalloc(sizeof(*os_desc_table), GFP_KERNEL);
+ os_desc_table = kzalloc_obj(*os_desc_table, GFP_KERNEL);
if (!os_desc_table)
return -ENOMEM;
}
@@ -888,7 +888,7 @@ static struct usb_function_instance *rndis_alloc_inst(void)
char *names[1];
struct config_group *rndis_interf_group;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
opts->rndis_os_desc.ext_compat_id = opts->rndis_ext_compat_id;
@@ -956,7 +956,7 @@ static struct usb_function *rndis_alloc(struct usb_function_instance *fi)
struct rndis_params *params;
/* allocate and initialize one new instance */
- rndis = kzalloc(sizeof(*rndis), GFP_KERNEL);
+ rndis = kzalloc_obj(*rndis, GFP_KERNEL);
if (!rndis)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_serial.c b/drivers/usb/gadget/function/f_serial.c
index e6b412e0e045..01fc06b29ab2 100644
--- a/drivers/usb/gadget/function/f_serial.c
+++ b/drivers/usb/gadget/function/f_serial.c
@@ -317,7 +317,7 @@ static struct usb_function_instance *gser_alloc_inst(void)
struct f_serial_opts *opts;
int ret;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
@@ -376,7 +376,7 @@ static struct usb_function *gser_alloc(struct usb_function_instance *fi)
struct f_serial_opts *opts;
/* allocate and initialize one new instance */
- gser = kzalloc(sizeof(*gser), GFP_KERNEL);
+ gser = kzalloc_obj(*gser, GFP_KERNEL);
if (!gser)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_sourcesink.c b/drivers/usb/gadget/function/f_sourcesink.c
index 22104e9c6cab..e77e2e83833f 100644
--- a/drivers/usb/gadget/function/f_sourcesink.c
+++ b/drivers/usb/gadget/function/f_sourcesink.c
@@ -844,7 +844,7 @@ static struct usb_function *source_sink_alloc_func(
struct f_sourcesink *ss;
struct f_ss_opts *ss_opts;
- ss = kzalloc(sizeof(*ss), GFP_KERNEL);
+ ss = kzalloc_obj(*ss, GFP_KERNEL);
if (!ss)
return ERR_PTR(-ENOMEM);
@@ -1297,7 +1297,7 @@ static struct usb_function_instance *source_sink_alloc_inst(void)
{
struct f_ss_opts *ss_opts;
- ss_opts = kzalloc(sizeof(*ss_opts), GFP_KERNEL);
+ ss_opts = kzalloc_obj(*ss_opts, GFP_KERNEL);
if (!ss_opts)
return ERR_PTR(-ENOMEM);
mutex_init(&ss_opts->lock);
diff --git a/drivers/usb/gadget/function/f_subset.c b/drivers/usb/gadget/function/f_subset.c
index ea3fdd842462..4913f60db048 100644
--- a/drivers/usb/gadget/function/f_subset.c
+++ b/drivers/usb/gadget/function/f_subset.c
@@ -428,7 +428,7 @@ static struct usb_function_instance *geth_alloc_inst(void)
{
struct f_gether_opts *opts;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
mutex_init(&opts->lock);
@@ -467,7 +467,7 @@ static struct usb_function *geth_alloc(struct usb_function_instance *fi)
int status;
/* allocate and initialize one new instance */
- geth = kzalloc(sizeof(*geth), GFP_KERNEL);
+ geth = kzalloc_obj(*geth, GFP_KERNEL);
if (!geth)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_tcm.c b/drivers/usb/gadget/function/f_tcm.c
index efb94fd82533..29d6fd6ce935 100644
--- a/drivers/usb/gadget/function/f_tcm.c
+++ b/drivers/usb/gadget/function/f_tcm.c
@@ -1676,7 +1676,7 @@ static struct se_portal_group *usbg_make_tpg(struct se_wwn *wwn,
goto unlock_dep;
}
- tpg = kzalloc(sizeof(struct usbg_tpg), GFP_KERNEL);
+ tpg = kzalloc_obj(struct usbg_tpg, GFP_KERNEL);
ret = -ENOMEM;
if (!tpg)
goto unref_dep;
@@ -1768,7 +1768,7 @@ static struct se_wwn *usbg_make_tport(
if (!wnn_name)
return ERR_PTR(-EINVAL);
- tport = kzalloc(sizeof(struct usbg_tport), GFP_KERNEL);
+ tport = kzalloc_obj(struct usbg_tport, GFP_KERNEL);
if (!(tport))
return ERR_PTR(-ENOMEM);
@@ -1861,7 +1861,7 @@ static int tcm_usbg_make_nexus(struct usbg_tpg *tpg, char *name)
goto out_unlock;
}
- tv_nexus = kzalloc(sizeof(*tv_nexus), GFP_KERNEL);
+ tv_nexus = kzalloc_obj(*tv_nexus, GFP_KERNEL);
if (!tv_nexus) {
ret = -ENOMEM;
goto out_unlock;
@@ -2400,7 +2400,7 @@ static int tcm_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
if ((alt == USB_G_ALT_INT_BBB) || (alt == USB_G_ALT_INT_UAS)) {
struct guas_setup_wq *work;
- work = kmalloc(sizeof(*work), GFP_ATOMIC);
+ work = kmalloc_obj(*work, GFP_ATOMIC);
if (!work)
return -ENOMEM;
INIT_WORK(&work->work, tcm_delayed_set_alt);
@@ -2535,7 +2535,7 @@ static struct usb_function_instance *tcm_alloc_inst(void)
int i;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
@@ -2590,7 +2590,7 @@ static struct usb_function *tcm_alloc(struct usb_function_instance *fi)
return ERR_PTR(-ENODEV);
}
- fu = kzalloc(sizeof(*fu), GFP_KERNEL);
+ fu = kzalloc_obj(*fu, GFP_KERNEL);
if (!fu) {
mutex_unlock(&tpg_instances_lock);
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_uac1.c b/drivers/usb/gadget/function/f_uac1.c
index efe9f270b02d..58ada4855de8 100644
--- a/drivers/usb/gadget/function/f_uac1.c
+++ b/drivers/usb/gadget/function/f_uac1.c
@@ -451,7 +451,7 @@ static int audio_notify(struct g_audio *audio, int unit_id, int cs)
goto err_dec_int_count;
}
- msg = kmalloc(sizeof(*msg), GFP_ATOMIC);
+ msg = kmalloc_obj(*msg, GFP_ATOMIC);
if (msg == NULL) {
ret = -ENOMEM;
goto err_free_request;
@@ -1748,7 +1748,7 @@ static struct usb_function_instance *f_audio_alloc_inst(void)
{
struct f_uac1_opts *opts;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
@@ -1831,7 +1831,7 @@ static struct usb_function *f_audio_alloc(struct usb_function_instance *fi)
struct f_uac1_opts *opts;
/* allocate and initialize one new instance */
- uac1 = kzalloc(sizeof(*uac1), GFP_KERNEL);
+ uac1 = kzalloc_obj(*uac1, GFP_KERNEL);
if (!uac1)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_uac1_legacy.c b/drivers/usb/gadget/function/f_uac1_legacy.c
index 8fc452b4b39a..ed7e1f061784 100644
--- a/drivers/usb/gadget/function/f_uac1_legacy.c
+++ b/drivers/usb/gadget/function/f_uac1_legacy.c
@@ -251,7 +251,7 @@ static struct f_audio_buf *f_audio_buffer_alloc(int buf_size)
{
struct f_audio_buf *copy_buf;
- copy_buf = kzalloc(sizeof *copy_buf, GFP_ATOMIC);
+ copy_buf = kzalloc_obj(*copy_buf, GFP_ATOMIC);
if (!copy_buf)
return ERR_PTR(-ENOMEM);
@@ -942,7 +942,7 @@ static struct usb_function_instance *f_audio_alloc_inst(void)
{
struct f_uac1_legacy_opts *opts;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
@@ -985,7 +985,7 @@ static struct usb_function *f_audio_alloc(struct usb_function_instance *fi)
struct f_uac1_legacy_opts *opts;
/* allocate and initialize one new instance */
- audio = kzalloc(sizeof(*audio), GFP_KERNEL);
+ audio = kzalloc_obj(*audio, GFP_KERNEL);
if (!audio)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_uac2.c b/drivers/usb/gadget/function/f_uac2.c
index 98f0f50dc7a8..c66908bbe714 100644
--- a/drivers/usb/gadget/function/f_uac2.c
+++ b/drivers/usb/gadget/function/f_uac2.c
@@ -1388,7 +1388,7 @@ afunc_notify(struct g_audio *agdev, int unit_id, int cs)
goto err_dec_int_count;
}
- msg = kzalloc(sizeof(*msg), GFP_ATOMIC);
+ msg = kzalloc_obj(*msg, GFP_ATOMIC);
if (msg == NULL) {
ret = -ENOMEM;
goto err_free_request;
@@ -2189,7 +2189,7 @@ static struct usb_function_instance *afunc_alloc_inst(void)
{
struct f_uac2_opts *opts;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
@@ -2278,7 +2278,7 @@ static struct usb_function *afunc_alloc(struct usb_function_instance *fi)
struct f_uac2 *uac2;
struct f_uac2_opts *opts;
- uac2 = kzalloc(sizeof(*uac2), GFP_KERNEL);
+ uac2 = kzalloc_obj(*uac2, GFP_KERNEL);
if (uac2 == NULL)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/f_uvc.c b/drivers/usb/gadget/function/f_uvc.c
index a96476507d2f..4b9846ab99f2 100644
--- a/drivers/usb/gadget/function/f_uvc.c
+++ b/drivers/usb/gadget/function/f_uvc.c
@@ -887,7 +887,7 @@ static struct usb_function_instance *uvc_alloc_inst(void)
struct uvc_descriptor_header **ctl_cls;
int ret;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return ERR_PTR(-ENOMEM);
opts->func_inst.free_func_inst = uvc_free_inst;
@@ -1042,7 +1042,7 @@ static struct usb_function *uvc_alloc(struct usb_function_instance *fi)
struct uvc_descriptor_header **strm_cls;
struct config_item *streaming, *header, *h;
- uvc = kzalloc(sizeof(*uvc), GFP_KERNEL);
+ uvc = kzalloc_obj(*uvc, GFP_KERNEL);
if (uvc == NULL)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/gadget/function/rndis.c b/drivers/usb/gadget/function/rndis.c
index afd75d72412c..1e168666a3f5 100644
--- a/drivers/usb/gadget/function/rndis.c
+++ b/drivers/usb/gadget/function/rndis.c
@@ -892,7 +892,7 @@ struct rndis_params *rndis_register(void (*resp_avail)(void *v), void *v)
return ERR_PTR(-ENODEV);
}
- params = kzalloc(sizeof(*params), GFP_KERNEL);
+ params = kzalloc_obj(*params, GFP_KERNEL);
if (!params) {
rndis_put_nr(i);
diff --git a/drivers/usb/gadget/function/u_audio.c b/drivers/usb/gadget/function/u_audio.c
index ca8dbec65f73..24c934bbf0e5 100644
--- a/drivers/usb/gadget/function/u_audio.c
+++ b/drivers/usb/gadget/function/u_audio.c
@@ -1191,7 +1191,7 @@ int g_audio_setup(struct g_audio *g_audio, const char *pcm_name,
if (!g_audio)
return -EINVAL;
- uac = kzalloc(sizeof(*uac), GFP_KERNEL);
+ uac = kzalloc_obj(*uac, GFP_KERNEL);
if (!uac)
return -ENOMEM;
g_audio->uac = uac;
@@ -1209,9 +1209,8 @@ int g_audio_setup(struct g_audio *g_audio, const char *pcm_name,
prm->max_psize = g_audio->out_ep_maxpsize;
prm->srate = params->c_srates[0];
- prm->reqs = kcalloc(params->req_number,
- sizeof(struct usb_request *),
- GFP_KERNEL);
+ prm->reqs = kzalloc_objs(struct usb_request *,
+ params->req_number, GFP_KERNEL);
if (!prm->reqs) {
err = -ENOMEM;
goto fail;
@@ -1234,9 +1233,8 @@ int g_audio_setup(struct g_audio *g_audio, const char *pcm_name,
prm->max_psize = g_audio->in_ep_maxpsize;
prm->srate = params->p_srates[0];
- prm->reqs = kcalloc(params->req_number,
- sizeof(struct usb_request *),
- GFP_KERNEL);
+ prm->reqs = kzalloc_objs(struct usb_request *,
+ params->req_number, GFP_KERNEL);
if (!prm->reqs) {
err = -ENOMEM;
goto fail;
diff --git a/drivers/usb/gadget/function/u_serial.c b/drivers/usb/gadget/function/u_serial.c
index 1cce5317181a..e61beaa0c53d 100644
--- a/drivers/usb/gadget/function/u_serial.c
+++ b/drivers/usb/gadget/function/u_serial.c
@@ -1082,7 +1082,7 @@ static int gs_console_init(struct gs_port *port)
if (port->console)
return 0;
- cons = kzalloc(sizeof(*port->console), GFP_KERNEL);
+ cons = kzalloc_obj(*port->console, GFP_KERNEL);
if (!cons)
return -ENOMEM;
@@ -1215,7 +1215,7 @@ gs_port_alloc(unsigned port_num, struct usb_cdc_line_coding *coding)
goto out;
}
- port = kzalloc(sizeof(struct gs_port), GFP_KERNEL);
+ port = kzalloc_obj(struct gs_port, GFP_KERNEL);
if (port == NULL) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/usb/gadget/function/u_uac1_legacy.c b/drivers/usb/gadget/function/u_uac1_legacy.c
index dd21c251542c..e95c2fc7fc10 100644
--- a/drivers/usb/gadget/function/u_uac1_legacy.c
+++ b/drivers/usb/gadget/function/u_uac1_legacy.c
@@ -106,7 +106,7 @@ static int playback_default_hw_params(struct gaudio_snd_dev *snd)
snd->channels = 2;
snd->rate = 48000;
- params = kzalloc(sizeof(*params), GFP_KERNEL);
+ params = kzalloc_obj(*params, GFP_KERNEL);
if (!params)
return -ENOMEM;
diff --git a/drivers/usb/gadget/function/uvc_configfs.c b/drivers/usb/gadget/function/uvc_configfs.c
index 4cec6c586d67..553057cbf63a 100644
--- a/drivers/usb/gadget/function/uvc_configfs.c
+++ b/drivers/usb/gadget/function/uvc_configfs.c
@@ -158,7 +158,7 @@ static int uvcg_config_create_group(struct config_group *parent,
{
struct config_group *group;
- group = kzalloc(sizeof(*group), GFP_KERNEL);
+ group = kzalloc_obj(*group, GFP_KERNEL);
if (!group)
return -ENOMEM;
@@ -270,7 +270,7 @@ static struct config_item *uvcg_control_header_make(struct config_group *group,
{
struct uvcg_control_header *h;
- h = kzalloc(sizeof(*h), GFP_KERNEL);
+ h = kzalloc_obj(*h, GFP_KERNEL);
if (!h)
return ERR_PTR(-ENOMEM);
@@ -1273,7 +1273,7 @@ static struct config_item *uvcg_extension_make(struct config_group *group, const
opts_item = group->cg_item.ci_parent->ci_parent;
opts = to_f_uvc_opts(opts_item);
- xu = kzalloc(sizeof(*xu), GFP_KERNEL);
+ xu = kzalloc_obj(*xu, GFP_KERNEL);
if (!xu)
return ERR_PTR(-ENOMEM);
@@ -1437,7 +1437,7 @@ static int uvcg_control_class_create_children(struct config_group *parent)
for (i = 0; i < ARRAY_SIZE(names); ++i) {
struct uvcg_control_class_group *group;
- group = kzalloc(sizeof(*group), GFP_KERNEL);
+ group = kzalloc_obj(*group, GFP_KERNEL);
if (!group)
return -ENOMEM;
@@ -1785,7 +1785,7 @@ static int uvcg_streaming_header_allow_link(struct config_item *src,
uvcg_format_set_indices(to_config_group(target));
- format_ptr = kzalloc(sizeof(*format_ptr), GFP_KERNEL);
+ format_ptr = kzalloc_obj(*format_ptr, GFP_KERNEL);
if (!format_ptr) {
ret = -ENOMEM;
goto out;
@@ -1899,7 +1899,7 @@ static struct config_item
{
struct uvcg_streaming_header *h;
- h = kzalloc(sizeof(*h), GFP_KERNEL);
+ h = kzalloc_obj(*h, GFP_KERNEL);
if (!h)
return ERR_PTR(-ENOMEM);
@@ -2163,7 +2163,7 @@ static struct config_item *uvcg_frame_make(struct config_group *group,
struct config_item *opts_item;
struct uvcg_frame_ptr *frame_ptr;
- h = kzalloc(sizeof(*h), GFP_KERNEL);
+ h = kzalloc_obj(*h, GFP_KERNEL);
if (!h)
return ERR_PTR(-ENOMEM);
@@ -2197,7 +2197,7 @@ static struct config_item *uvcg_frame_make(struct config_group *group,
return ERR_PTR(-EINVAL);
}
- frame_ptr = kzalloc(sizeof(*frame_ptr), GFP_KERNEL);
+ frame_ptr = kzalloc_obj(*frame_ptr, GFP_KERNEL);
if (!frame_ptr) {
mutex_unlock(&opts->lock);
kfree(h);
@@ -2483,7 +2483,7 @@ static struct config_group *uvcg_uncompressed_make(struct config_group *group,
if (!color_match)
return ERR_PTR(-EINVAL);
- h = kzalloc(sizeof(*h), GFP_KERNEL);
+ h = kzalloc_obj(*h, GFP_KERNEL);
if (!h)
return ERR_PTR(-ENOMEM);
@@ -2675,7 +2675,7 @@ static struct config_group *uvcg_mjpeg_make(struct config_group *group,
if (!color_match)
return ERR_PTR(-EINVAL);
- h = kzalloc(sizeof(*h), GFP_KERNEL);
+ h = kzalloc_obj(*h, GFP_KERNEL);
if (!h)
return ERR_PTR(-ENOMEM);
@@ -2926,7 +2926,7 @@ static struct config_group *uvcg_framebased_make(struct config_group *group,
if (!color_match)
return ERR_PTR(-EINVAL);
- h = kzalloc(sizeof(*h), GFP_KERNEL);
+ h = kzalloc_obj(*h, GFP_KERNEL);
if (!h)
return ERR_PTR(-ENOMEM);
@@ -3075,7 +3075,7 @@ static struct config_group *uvcg_color_matching_make(struct config_group *group,
{
struct uvcg_color_matching *color_match;
- color_match = kzalloc(sizeof(*color_match), GFP_KERNEL);
+ color_match = kzalloc_obj(*color_match, GFP_KERNEL);
if (!color_match)
return ERR_PTR(-ENOMEM);
@@ -3097,7 +3097,7 @@ static int uvcg_color_matching_create_children(struct config_group *parent)
{
struct uvcg_color_matching *color_match;
- color_match = kzalloc(sizeof(*color_match), GFP_KERNEL);
+ color_match = kzalloc_obj(*color_match, GFP_KERNEL);
if (!color_match)
return -ENOMEM;
@@ -3553,7 +3553,7 @@ static int uvcg_streaming_class_create_children(struct config_group *parent)
for (i = 0; i < ARRAY_SIZE(names); ++i) {
struct uvcg_streaming_class_group *group;
- group = kzalloc(sizeof(*group), GFP_KERNEL);
+ group = kzalloc_obj(*group, GFP_KERNEL);
if (!group)
return -ENOMEM;
diff --git a/drivers/usb/gadget/function/uvc_v4l2.c b/drivers/usb/gadget/function/uvc_v4l2.c
index fd4b998ccd16..574b3a8986a0 100644
--- a/drivers/usb/gadget/function/uvc_v4l2.c
+++ b/drivers/usb/gadget/function/uvc_v4l2.c
@@ -667,7 +667,7 @@ uvc_v4l2_open(struct file *file)
struct uvc_device *uvc = video_get_drvdata(vdev);
struct uvc_file_handle *handle;
- handle = kzalloc(sizeof(*handle), GFP_KERNEL);
+ handle = kzalloc_obj(*handle, GFP_KERNEL);
if (handle == NULL)
return -ENOMEM;
diff --git a/drivers/usb/gadget/function/uvc_video.c b/drivers/usb/gadget/function/uvc_video.c
index f568dee08b3b..b2784a57dbcd 100644
--- a/drivers/usb/gadget/function/uvc_video.c
+++ b/drivers/usb/gadget/function/uvc_video.c
@@ -559,7 +559,7 @@ uvc_video_alloc_requests(struct uvc_video *video)
uvc_video_prep_requests(video);
for (i = 0; i < video->uvc_num_requests; i++) {
- ureq = kzalloc(sizeof(struct uvc_request), GFP_KERNEL);
+ ureq = kzalloc_obj(struct uvc_request, GFP_KERNEL);
if (ureq == NULL)
goto error;
diff --git a/drivers/usb/gadget/legacy/dbgp.c b/drivers/usb/gadget/legacy/dbgp.c
index d70fb5bc2357..af8968ef9380 100644
--- a/drivers/usb/gadget/legacy/dbgp.c
+++ b/drivers/usb/gadget/legacy/dbgp.c
@@ -298,7 +298,7 @@ static int dbgp_bind(struct usb_gadget *gadget,
dbgp.req->length = DBGP_REQ_EP0_LEN;
#ifdef CONFIG_USB_G_DBGP_SERIAL
- dbgp.serial = kzalloc(sizeof(struct gserial), GFP_KERNEL);
+ dbgp.serial = kzalloc_obj(struct gserial, GFP_KERNEL);
if (!dbgp.serial) {
stp = 3;
err = -ENOMEM;
diff --git a/drivers/usb/gadget/legacy/g_ffs.c b/drivers/usb/gadget/legacy/g_ffs.c
index 578556422ea3..98a08efe86dd 100644
--- a/drivers/usb/gadget/legacy/g_ffs.c
+++ b/drivers/usb/gadget/legacy/g_ffs.c
@@ -188,7 +188,7 @@ static int __init gfs_init(void)
/*
* Allocate in one chunk for easier maintenance
*/
- f_ffs[0] = kcalloc(func_num * N_CONF, sizeof(*f_ffs[0]), GFP_KERNEL);
+ f_ffs[0] = kzalloc_objs(*f_ffs[0], func_num * N_CONF, GFP_KERNEL);
if (!f_ffs[0]) {
ret = -ENOMEM;
goto no_func;
@@ -196,7 +196,7 @@ static int __init gfs_init(void)
for (i = 1; i < N_CONF; ++i)
f_ffs[i] = f_ffs[0] + i * func_num;
- fi_ffs = kcalloc(func_num, sizeof(*fi_ffs), GFP_KERNEL);
+ fi_ffs = kzalloc_objs(*fi_ffs, func_num, GFP_KERNEL);
if (!fi_ffs) {
ret = -ENOMEM;
goto no_func;
diff --git a/drivers/usb/gadget/legacy/hid.c b/drivers/usb/gadget/legacy/hid.c
index 3684546e8801..bc25c04daaaf 100644
--- a/drivers/usb/gadget/legacy/hid.c
+++ b/drivers/usb/gadget/legacy/hid.c
@@ -227,7 +227,7 @@ static int hidg_plat_driver_probe(struct platform_device *pdev)
return -ENODEV;
}
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
diff --git a/drivers/usb/gadget/legacy/inode.c b/drivers/usb/gadget/legacy/inode.c
index 62566a8e7451..52512fba80ec 100644
--- a/drivers/usb/gadget/legacy/inode.c
+++ b/drivers/usb/gadget/legacy/inode.c
@@ -173,7 +173,7 @@ static struct dev_data *dev_new (void)
{
struct dev_data *dev;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return NULL;
dev->state = STATE_DEV_DISABLED;
@@ -614,7 +614,7 @@ ep_read_iter(struct kiocb *iocb, struct iov_iter *to)
if (value >= 0 && (copy_to_iter(buf, value, to) != value))
value = -EFAULT;
} else {
- struct kiocb_priv *priv = kzalloc(sizeof *priv, GFP_KERNEL);
+ struct kiocb_priv *priv = kzalloc_obj(*priv, GFP_KERNEL);
value = -ENOMEM;
if (!priv)
goto fail;
@@ -682,7 +682,7 @@ ep_write_iter(struct kiocb *iocb, struct iov_iter *from)
} else if (is_sync_kiocb(iocb)) {
value = ep_io(epdata, buf, len);
} else {
- struct kiocb_priv *priv = kzalloc(sizeof *priv, GFP_KERNEL);
+ struct kiocb_priv *priv = kzalloc_obj(*priv, GFP_KERNEL);
value = -ENOMEM;
if (priv) {
value = ep_aio(iocb, priv, epdata, buf, len);
@@ -1598,7 +1598,7 @@ static int activate_ep_files (struct dev_data *dev)
gadget_for_each_ep (ep, dev->gadget) {
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
goto enomem0;
data->state = STATE_EP_DISABLED;
diff --git a/drivers/usb/gadget/legacy/raw_gadget.c b/drivers/usb/gadget/legacy/raw_gadget.c
index 46f343ba48b3..5cb8d262329f 100644
--- a/drivers/usb/gadget/legacy/raw_gadget.c
+++ b/drivers/usb/gadget/legacy/raw_gadget.c
@@ -190,7 +190,7 @@ static struct raw_dev *dev_new(void)
{
struct raw_dev *dev;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return NULL;
/* Matches kref_put() in raw_release(). */
@@ -1251,7 +1251,7 @@ static int raw_ioctl_eps_info(struct raw_dev *dev, unsigned long value)
struct usb_raw_eps_info *info;
struct raw_ep *ep;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/usb/gadget/udc/amd5536udc_pci.c b/drivers/usb/gadget/udc/amd5536udc_pci.c
index a36913ae31f9..e709bd4976c5 100644
--- a/drivers/usb/gadget/udc/amd5536udc_pci.c
+++ b/drivers/usb/gadget/udc/amd5536udc_pci.c
@@ -95,7 +95,7 @@ static int udc_pci_probe(
}
/* init */
- dev = kzalloc(sizeof(struct udc), GFP_KERNEL);
+ dev = kzalloc_obj(struct udc, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/usb/gadget/udc/aspeed-vhub/core.c b/drivers/usb/gadget/udc/aspeed-vhub/core.c
index 19c1849ae665..4a8b9ff8368f 100644
--- a/drivers/usb/gadget/udc/aspeed-vhub/core.c
+++ b/drivers/usb/gadget/udc/aspeed-vhub/core.c
@@ -78,7 +78,7 @@ struct usb_request *ast_vhub_alloc_request(struct usb_ep *u_ep,
{
struct ast_vhub_req *req;
- req = kzalloc(sizeof(*req), gfp_flags);
+ req = kzalloc_obj(*req, gfp_flags);
if (!req)
return NULL;
return &req->req;
diff --git a/drivers/usb/gadget/udc/aspeed-vhub/dev.c b/drivers/usb/gadget/udc/aspeed-vhub/dev.c
index a09f72772e6e..c79522164f18 100644
--- a/drivers/usb/gadget/udc/aspeed-vhub/dev.c
+++ b/drivers/usb/gadget/udc/aspeed-vhub/dev.c
@@ -560,7 +560,7 @@ int ast_vhub_init_dev(struct ast_vhub *vhub, unsigned int idx)
* endpoint 0.
*/
d->max_epns = min_t(u32, vhub->max_epns, 30);
- d->epns = kcalloc(d->max_epns, sizeof(*d->epns), GFP_KERNEL);
+ d->epns = kzalloc_objs(*d->epns, d->max_epns, GFP_KERNEL);
if (!d->epns)
return -ENOMEM;
@@ -569,7 +569,7 @@ int ast_vhub_init_dev(struct ast_vhub *vhub, unsigned int idx)
* named "parent" devices for each port so we create a sub device
* here for that purpose
*/
- d->port_dev = kzalloc(sizeof(struct device), GFP_KERNEL);
+ d->port_dev = kzalloc_obj(struct device, GFP_KERNEL);
if (!d->port_dev) {
rc = -ENOMEM;
goto fail_alloc;
diff --git a/drivers/usb/gadget/udc/aspeed_udc.c b/drivers/usb/gadget/udc/aspeed_udc.c
index 353bfb1ff0a1..7fc6696b7694 100644
--- a/drivers/usb/gadget/udc/aspeed_udc.c
+++ b/drivers/usb/gadget/udc/aspeed_udc.c
@@ -452,7 +452,7 @@ static struct usb_request *ast_udc_ep_alloc_request(struct usb_ep *_ep,
struct ast_udc_ep *ep = to_ast_ep(_ep);
struct ast_udc_request *req;
- req = kzalloc(sizeof(struct ast_udc_request), gfp_flags);
+ req = kzalloc_obj(struct ast_udc_request, gfp_flags);
if (!req) {
EP_DBG(ep, "request allocation failed\n");
return NULL;
diff --git a/drivers/usb/gadget/udc/at91_udc.c b/drivers/usb/gadget/udc/at91_udc.c
index 42b94d858e37..5aa360ba4f03 100644
--- a/drivers/usb/gadget/udc/at91_udc.c
+++ b/drivers/usb/gadget/udc/at91_udc.c
@@ -585,7 +585,7 @@ at91_ep_alloc_request(struct usb_ep *_ep, gfp_t gfp_flags)
{
struct at91_request *req;
- req = kzalloc(sizeof (struct at91_request), gfp_flags);
+ req = kzalloc_obj(struct at91_request, gfp_flags);
if (!req)
return NULL;
diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
index 0c6f2ad81d37..427535bf35a6 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.c
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
@@ -40,7 +40,7 @@ static int queue_dbg_open(struct inode *inode, struct file *file)
struct usba_request *req, *req_copy;
struct list_head *queue_data;
- queue_data = kmalloc(sizeof(*queue_data), GFP_KERNEL);
+ queue_data = kmalloc_obj(*queue_data, GFP_KERNEL);
if (!queue_data)
return -ENOMEM;
INIT_LIST_HEAD(queue_data);
@@ -702,7 +702,7 @@ usba_ep_alloc_request(struct usb_ep *_ep, gfp_t gfp_flags)
DBG(DBG_GADGET, "ep_alloc_request: %p, 0x%x\n", _ep, gfp_flags);
- req = kzalloc(sizeof(*req), gfp_flags);
+ req = kzalloc_obj(*req, gfp_flags);
if (!req)
return NULL;
diff --git a/drivers/usb/gadget/udc/bcm63xx_udc.c b/drivers/usb/gadget/udc/bcm63xx_udc.c
index 502612a5650e..c4f9ea45bdbb 100644
--- a/drivers/usb/gadget/udc/bcm63xx_udc.c
+++ b/drivers/usb/gadget/udc/bcm63xx_udc.c
@@ -1115,7 +1115,7 @@ static struct usb_request *bcm63xx_udc_alloc_request(struct usb_ep *ep,
{
struct bcm63xx_req *breq;
- breq = kzalloc(sizeof(*breq), mem_flags);
+ breq = kzalloc_obj(*breq, mem_flags);
if (!breq)
return NULL;
return &breq->req;
diff --git a/drivers/usb/gadget/udc/bdc/bdc_core.c b/drivers/usb/gadget/udc/bdc/bdc_core.c
index f47aac078f6b..51602d9eca02 100644
--- a/drivers/usb/gadget/udc/bdc/bdc_core.c
+++ b/drivers/usb/gadget/udc/bdc/bdc_core.c
@@ -397,8 +397,8 @@ static int bdc_mem_alloc(struct bdc *bdc)
"ieps:%d eops:%d num_eps:%d\n",
num_ieps, num_oeps, bdc->num_eps);
/* allocate array of ep pointers */
- bdc->bdc_ep_array = kcalloc(bdc->num_eps, sizeof(struct bdc_ep *),
- GFP_KERNEL);
+ bdc->bdc_ep_array = kzalloc_objs(struct bdc_ep *, bdc->num_eps,
+ GFP_KERNEL);
if (!bdc->bdc_ep_array)
goto fail;
diff --git a/drivers/usb/gadget/udc/bdc/bdc_ep.c b/drivers/usb/gadget/udc/bdc/bdc_ep.c
index f995cfa9b99e..a7f2fe29e433 100644
--- a/drivers/usb/gadget/udc/bdc/bdc_ep.c
+++ b/drivers/usb/gadget/udc/bdc/bdc_ep.c
@@ -138,16 +138,15 @@ static int ep_bd_list_alloc(struct bdc_ep *ep)
__func__, ep, num_tabs);
/* Allocate memory for table array */
- ep->bd_list.bd_table_array = kcalloc(num_tabs,
- sizeof(struct bd_table *),
- GFP_ATOMIC);
+ ep->bd_list.bd_table_array = kzalloc_objs(struct bd_table *, num_tabs,
+ GFP_ATOMIC);
if (!ep->bd_list.bd_table_array)
return -ENOMEM;
/* Allocate memory for each table */
for (index = 0; index < num_tabs; index++) {
/* Allocate memory for bd_table structure */
- bd_table = kzalloc(sizeof(*bd_table), GFP_ATOMIC);
+ bd_table = kzalloc_obj(*bd_table, GFP_ATOMIC);
if (!bd_table)
goto fail;
@@ -1829,7 +1828,7 @@ static struct usb_request *bdc_gadget_alloc_request(struct usb_ep *_ep,
struct bdc_req *req;
struct bdc_ep *ep;
- req = kzalloc(sizeof(*req), gfp_flags);
+ req = kzalloc_obj(*req, gfp_flags);
if (!req)
return NULL;
@@ -1946,7 +1945,7 @@ static int init_ep(struct bdc *bdc, u32 epnum, u32 dir)
struct bdc_ep *ep;
dev_dbg(bdc->dev, "%s epnum=%d dir=%d\n", __func__, epnum, dir);
- ep = kzalloc(sizeof(*ep), GFP_KERNEL);
+ ep = kzalloc_obj(*ep, GFP_KERNEL);
if (!ep)
return -ENOMEM;
diff --git a/drivers/usb/gadget/udc/cdns2/cdns2-gadget.c b/drivers/usb/gadget/udc/cdns2/cdns2-gadget.c
index 9b53daf76583..308d3c468ab1 100644
--- a/drivers/usb/gadget/udc/cdns2/cdns2-gadget.c
+++ b/drivers/usb/gadget/udc/cdns2/cdns2-gadget.c
@@ -1505,7 +1505,7 @@ struct usb_request *cdns2_gadget_ep_alloc_request(struct usb_ep *ep,
struct cdns2_endpoint *pep = ep_to_cdns2_ep(ep);
struct cdns2_request *preq;
- preq = kzalloc(sizeof(*preq), gfp_flags);
+ preq = kzalloc_obj(*preq, gfp_flags);
if (!preq)
return NULL;
diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c
index 8dbe79bdc0f9..394ed540c22f 100644
--- a/drivers/usb/gadget/udc/core.c
+++ b/drivers/usb/gadget/udc/core.c
@@ -1393,7 +1393,7 @@ int usb_add_gadget(struct usb_gadget *gadget)
struct usb_udc *udc;
int ret = -ENOMEM;
- udc = kzalloc(sizeof(*udc), GFP_KERNEL);
+ udc = kzalloc_obj(*udc, GFP_KERNEL);
if (!udc)
goto error;
diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c
index 1cefca660773..e183f36b2b0b 100644
--- a/drivers/usb/gadget/udc/dummy_hcd.c
+++ b/drivers/usb/gadget/udc/dummy_hcd.c
@@ -666,7 +666,7 @@ static struct usb_request *dummy_alloc_request(struct usb_ep *_ep,
if (!_ep)
return NULL;
- req = kzalloc(sizeof(*req), mem_flags);
+ req = kzalloc_obj(*req, mem_flags);
if (!req)
return NULL;
INIT_LIST_HEAD(&req->queue);
@@ -1270,7 +1270,7 @@ static int dummy_urb_enqueue(
unsigned long flags;
int rc;
- urbp = kmalloc(sizeof *urbp, mem_flags);
+ urbp = kmalloc_obj(*urbp, mem_flags);
if (!urbp)
return -ENOMEM;
urbp->urb = urb;
@@ -2819,7 +2819,7 @@ static int __init dummy_hcd_init(void)
}
}
for (i = 0; i < mod_data.num; i++) {
- dum[i] = kzalloc(sizeof(struct dummy), GFP_KERNEL);
+ dum[i] = kzalloc_obj(struct dummy, GFP_KERNEL);
if (!dum[i]) {
retval = -ENOMEM;
goto err_add_pdata;
diff --git a/drivers/usb/gadget/udc/fsl_qe_udc.c b/drivers/usb/gadget/udc/fsl_qe_udc.c
index aacfde06387c..edbffafa6fa7 100644
--- a/drivers/usb/gadget/udc/fsl_qe_udc.c
+++ b/drivers/usb/gadget/udc/fsl_qe_udc.c
@@ -417,7 +417,7 @@ static int qe_ep_rxbd_update(struct qe_ep *ep)
bd = ep->rxbase;
- ep->rxframe = kmalloc(sizeof(*ep->rxframe), GFP_ATOMIC);
+ ep->rxframe = kmalloc_obj(*ep->rxframe, GFP_ATOMIC);
if (!ep->rxframe)
return -ENOMEM;
@@ -666,7 +666,7 @@ static int qe_ep_init(struct qe_udc *udc,
}
if ((ep->tm == USBP_TM_CTL) || (ep->dir == USB_DIR_IN)) {
- ep->txframe = kmalloc(sizeof(*ep->txframe), GFP_ATOMIC);
+ ep->txframe = kmalloc_obj(*ep->txframe, GFP_ATOMIC);
if (!ep->txframe)
goto en_done2;
qe_frame_init(ep->txframe);
@@ -1670,7 +1670,7 @@ static struct usb_request *qe_alloc_request(struct usb_ep *_ep, gfp_t gfp_flags)
{
struct qe_req *req;
- req = kzalloc(sizeof(*req), gfp_flags);
+ req = kzalloc_obj(*req, gfp_flags);
if (!req)
return NULL;
@@ -2344,7 +2344,7 @@ static struct qe_udc *qe_udc_config(struct platform_device *ofdev)
u64 size;
u32 offset;
- udc = kzalloc(sizeof(*udc), GFP_KERNEL);
+ udc = kzalloc_obj(*udc, GFP_KERNEL);
if (!udc)
goto cleanup;
diff --git a/drivers/usb/gadget/udc/fsl_udc_core.c b/drivers/usb/gadget/udc/fsl_udc_core.c
index 4dea8bc30cf6..961728e92a88 100644
--- a/drivers/usb/gadget/udc/fsl_udc_core.c
+++ b/drivers/usb/gadget/udc/fsl_udc_core.c
@@ -678,7 +678,7 @@ fsl_alloc_request(struct usb_ep *_ep, gfp_t gfp_flags)
{
struct fsl_req *req;
- req = kzalloc(sizeof *req, gfp_flags);
+ req = kzalloc_obj(*req, gfp_flags);
if (!req)
return NULL;
@@ -2250,7 +2250,7 @@ static int struct_udc_setup(struct fsl_udc *udc,
pdata = dev_get_platdata(&pdev->dev);
udc->phy_mode = pdata->phy_mode;
- udc->eps = kcalloc(udc->max_ep, sizeof(struct fsl_ep), GFP_KERNEL);
+ udc->eps = kzalloc_objs(struct fsl_ep, udc->max_ep, GFP_KERNEL);
if (!udc->eps) {
dev_err(&udc->gadget.dev, "kmalloc udc endpoint status failed\n");
goto eps_alloc_failed;
@@ -2369,7 +2369,7 @@ static int fsl_udc_probe(struct platform_device *pdev)
unsigned int i;
u32 dccparams;
- udc_controller = kzalloc(sizeof(struct fsl_udc), GFP_KERNEL);
+ udc_controller = kzalloc_obj(struct fsl_udc, GFP_KERNEL);
if (udc_controller == NULL)
return -ENOMEM;
diff --git a/drivers/usb/gadget/udc/goku_udc.c b/drivers/usb/gadget/udc/goku_udc.c
index b860c2e76449..f9ddf22c57ef 100644
--- a/drivers/usb/gadget/udc/goku_udc.c
+++ b/drivers/usb/gadget/udc/goku_udc.c
@@ -273,7 +273,7 @@ goku_alloc_request(struct usb_ep *_ep, gfp_t gfp_flags)
if (!_ep)
return NULL;
- req = kzalloc(sizeof *req, gfp_flags);
+ req = kzalloc_obj(*req, gfp_flags);
if (!req)
return NULL;
@@ -1755,7 +1755,7 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
}
/* alloc, and start init */
- dev = kzalloc (sizeof *dev, GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
retval = -ENOMEM;
goto err;
diff --git a/drivers/usb/gadget/udc/gr_udc.c b/drivers/usb/gadget/udc/gr_udc.c
index bf5b3c964c18..cdcbfae140e9 100644
--- a/drivers/usb/gadget/udc/gr_udc.c
+++ b/drivers/usb/gadget/udc/gr_udc.c
@@ -347,7 +347,7 @@ static struct usb_request *gr_alloc_request(struct usb_ep *_ep, gfp_t gfp_flags)
{
struct gr_request *req;
- req = kzalloc(sizeof(*req), gfp_flags);
+ req = kzalloc_obj(*req, gfp_flags);
if (!req)
return NULL;
diff --git a/drivers/usb/gadget/udc/lpc32xx_udc.c b/drivers/usb/gadget/udc/lpc32xx_udc.c
index 83c7e243dcf9..044c31869cfb 100644
--- a/drivers/usb/gadget/udc/lpc32xx_udc.c
+++ b/drivers/usb/gadget/udc/lpc32xx_udc.c
@@ -1705,7 +1705,7 @@ static struct usb_request *lpc32xx_ep_alloc_request(struct usb_ep *_ep,
{
struct lpc32xx_request *req;
- req = kzalloc(sizeof(struct lpc32xx_request), gfp_flags);
+ req = kzalloc_obj(struct lpc32xx_request, gfp_flags);
if (!req)
return NULL;
diff --git a/drivers/usb/gadget/udc/m66592-udc.c b/drivers/usb/gadget/udc/m66592-udc.c
index 54885175b8a4..08ae3d5a79ff 100644
--- a/drivers/usb/gadget/udc/m66592-udc.c
+++ b/drivers/usb/gadget/udc/m66592-udc.c
@@ -1330,7 +1330,7 @@ static struct usb_request *m66592_alloc_request(struct usb_ep *_ep,
{
struct m66592_request *req;
- req = kzalloc(sizeof(struct m66592_request), gfp_flags);
+ req = kzalloc_obj(struct m66592_request, gfp_flags);
if (!req)
return NULL;
@@ -1571,7 +1571,7 @@ static int m66592_probe(struct platform_device *pdev)
}
/* initialize ucd */
- m66592 = kzalloc(sizeof(struct m66592), GFP_KERNEL);
+ m66592 = kzalloc_obj(struct m66592, GFP_KERNEL);
if (m66592 == NULL) {
ret = -ENOMEM;
goto clean_up;
diff --git a/drivers/usb/gadget/udc/max3420_udc.c b/drivers/usb/gadget/udc/max3420_udc.c
index 7349ea774adf..11fd61cba5af 100644
--- a/drivers/usb/gadget/udc/max3420_udc.c
+++ b/drivers/usb/gadget/udc/max3420_udc.c
@@ -1007,7 +1007,7 @@ static struct usb_request *max3420_alloc_request(struct usb_ep *_ep,
struct max3420_ep *ep = to_max3420_ep(_ep);
struct max3420_req *req;
- req = kzalloc(sizeof(*req), gfp_flags);
+ req = kzalloc_obj(*req, gfp_flags);
if (!req)
return NULL;
diff --git a/drivers/usb/gadget/udc/net2280.c b/drivers/usb/gadget/udc/net2280.c
index 8ea1adc7461d..aa1a88a2aa3b 100644
--- a/drivers/usb/gadget/udc/net2280.c
+++ b/drivers/usb/gadget/udc/net2280.c
@@ -554,7 +554,7 @@ static struct usb_request
}
ep = container_of(_ep, struct net2280_ep, ep);
- req = kzalloc(sizeof(*req), gfp_flags);
+ req = kzalloc_obj(*req, gfp_flags);
if (!req)
return NULL;
@@ -3625,7 +3625,7 @@ static int net2280_probe(struct pci_dev *pdev, const struct pci_device_id *id)
int retval, i;
/* alloc, and start init */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (dev == NULL) {
retval = -ENOMEM;
goto done;
diff --git a/drivers/usb/gadget/udc/omap_udc.c b/drivers/usb/gadget/udc/omap_udc.c
index 062bf2b57d2e..8dda63c38ee5 100644
--- a/drivers/usb/gadget/udc/omap_udc.c
+++ b/drivers/usb/gadget/udc/omap_udc.c
@@ -267,7 +267,7 @@ omap_alloc_request(struct usb_ep *ep, gfp_t gfp_flags)
{
struct omap_req *req;
- req = kzalloc(sizeof(*req), gfp_flags);
+ req = kzalloc_obj(*req, gfp_flags);
if (!req)
return NULL;
@@ -2627,7 +2627,7 @@ omap_udc_setup(struct platform_device *odev, struct usb_phy *xceiv)
/* UDC_PULLUP_EN gates the chip clock */
/* OTG_SYSCON_1 |= DEV_IDLE_EN; */
- udc = kzalloc(sizeof(*udc), GFP_KERNEL);
+ udc = kzalloc_obj(*udc, GFP_KERNEL);
if (!udc)
return -ENOMEM;
diff --git a/drivers/usb/gadget/udc/pch_udc.c b/drivers/usb/gadget/udc/pch_udc.c
index 0b20ecbe64f9..0a6886428739 100644
--- a/drivers/usb/gadget/udc/pch_udc.c
+++ b/drivers/usb/gadget/udc/pch_udc.c
@@ -1717,7 +1717,7 @@ static struct usb_request *pch_udc_alloc_request(struct usb_ep *usbep,
if (!usbep)
return NULL;
ep = container_of(usbep, struct pch_udc_ep, ep);
- req = kzalloc(sizeof *req, gfp);
+ req = kzalloc_obj(*req, gfp);
if (!req)
return NULL;
req->req.dma = DMA_ADDR_INVALID;
diff --git a/drivers/usb/gadget/udc/pxa25x_udc.c b/drivers/usb/gadget/udc/pxa25x_udc.c
index b97fb7b0cb2c..b3d58d7c3a77 100644
--- a/drivers/usb/gadget/udc/pxa25x_udc.c
+++ b/drivers/usb/gadget/udc/pxa25x_udc.c
@@ -508,7 +508,7 @@ pxa25x_ep_alloc_request (struct usb_ep *_ep, gfp_t gfp_flags)
{
struct pxa25x_request *req;
- req = kzalloc(sizeof(*req), gfp_flags);
+ req = kzalloc_obj(*req, gfp_flags);
if (!req)
return NULL;
diff --git a/drivers/usb/gadget/udc/pxa27x_udc.c b/drivers/usb/gadget/udc/pxa27x_udc.c
index 897f53601b5b..4fac477d24c0 100644
--- a/drivers/usb/gadget/udc/pxa27x_udc.c
+++ b/drivers/usb/gadget/udc/pxa27x_udc.c
@@ -573,7 +573,7 @@ pxa_ep_alloc_request(struct usb_ep *_ep, gfp_t gfp_flags)
{
struct pxa27x_request *req;
- req = kzalloc(sizeof *req, gfp_flags);
+ req = kzalloc_obj(*req, gfp_flags);
if (!req)
return NULL;
diff --git a/drivers/usb/gadget/udc/r8a66597-udc.c b/drivers/usb/gadget/udc/r8a66597-udc.c
index e5c2630e3711..e7a5d8553c0e 100644
--- a/drivers/usb/gadget/udc/r8a66597-udc.c
+++ b/drivers/usb/gadget/udc/r8a66597-udc.c
@@ -1580,7 +1580,7 @@ static struct usb_request *r8a66597_alloc_request(struct usb_ep *_ep,
{
struct r8a66597_request *req;
- req = kzalloc(sizeof(struct r8a66597_request), gfp_flags);
+ req = kzalloc_obj(struct r8a66597_request, gfp_flags);
if (!req)
return NULL;
diff --git a/drivers/usb/gadget/udc/renesas_usb3.c b/drivers/usb/gadget/udc/renesas_usb3.c
index 7cdcc9d16b8b..b0b264d34919 100644
--- a/drivers/usb/gadget/udc/renesas_usb3.c
+++ b/drivers/usb/gadget/udc/renesas_usb3.c
@@ -2265,7 +2265,7 @@ static struct usb_request *__renesas_usb3_ep_alloc_request(gfp_t gfp_flags)
{
struct renesas_usb3_request *usb3_req;
- usb3_req = kzalloc(sizeof(struct renesas_usb3_request), gfp_flags);
+ usb3_req = kzalloc_obj(struct renesas_usb3_request, gfp_flags);
if (!usb3_req)
return NULL;
diff --git a/drivers/usb/gadget/udc/renesas_usbf.c b/drivers/usb/gadget/udc/renesas_usbf.c
index 4c201574a0af..5d510665da1f 100644
--- a/drivers/usb/gadget/udc/renesas_usbf.c
+++ b/drivers/usb/gadget/udc/renesas_usbf.c
@@ -2081,7 +2081,7 @@ static struct usb_request *usbf_ep_alloc_request(struct usb_ep *_ep,
if (!_ep)
return NULL;
- req = kzalloc(sizeof(*req), gfp_flags);
+ req = kzalloc_obj(*req, gfp_flags);
if (!req)
return NULL;
diff --git a/drivers/usb/gadget/udc/snps_udc_core.c b/drivers/usb/gadget/udc/snps_udc_core.c
index 373942ceb076..5f9514623956 100644
--- a/drivers/usb/gadget/udc/snps_udc_core.c
+++ b/drivers/usb/gadget/udc/snps_udc_core.c
@@ -523,7 +523,7 @@ udc_alloc_request(struct usb_ep *usbep, gfp_t gfp)
ep = container_of(usbep, struct udc_ep, ep);
VDBG(ep->dev, "udc_alloc_req(): ep%d\n", ep->num);
- req = kzalloc(sizeof(struct udc_request), gfp);
+ req = kzalloc_obj(struct udc_request, gfp);
if (!req)
return NULL;
diff --git a/drivers/usb/gadget/udc/tegra-xudc.c b/drivers/usb/gadget/udc/tegra-xudc.c
index 7f7251c10e95..e9d33be02866 100644
--- a/drivers/usb/gadget/udc/tegra-xudc.c
+++ b/drivers/usb/gadget/udc/tegra-xudc.c
@@ -1906,7 +1906,7 @@ tegra_xudc_ep_alloc_request(struct usb_ep *usb_ep, gfp_t gfp)
{
struct tegra_xudc_request *req;
- req = kzalloc(sizeof(*req), gfp);
+ req = kzalloc_obj(*req, gfp);
if (!req)
return NULL;
diff --git a/drivers/usb/gadget/udc/udc-xilinx.c b/drivers/usb/gadget/udc/udc-xilinx.c
index 8d803a612bb1..bef06fe7543b 100644
--- a/drivers/usb/gadget/udc/udc-xilinx.c
+++ b/drivers/usb/gadget/udc/udc-xilinx.c
@@ -970,7 +970,7 @@ static struct usb_request *xudc_ep_alloc_request(struct usb_ep *_ep,
struct xusb_ep *ep = to_xusb_ep(_ep);
struct xusb_req *req;
- req = kzalloc(sizeof(*req), gfp_flags);
+ req = kzalloc_obj(*req, gfp_flags);
if (!req)
return NULL;
diff --git a/drivers/usb/host/ehci-dbg.c b/drivers/usb/host/ehci-dbg.c
index 435001128221..cc3f2da39d71 100644
--- a/drivers/usb/host/ehci-dbg.c
+++ b/drivers/usb/host/ehci-dbg.c
@@ -629,7 +629,7 @@ static ssize_t fill_periodic_buffer(struct debug_buffer *buf)
unsigned i;
__hc32 tag;
- seen = kmalloc_array(DBG_SCHED_LIMIT, sizeof(*seen), GFP_ATOMIC);
+ seen = kmalloc_objs(*seen, DBG_SCHED_LIMIT, GFP_ATOMIC);
if (!seen)
return 0;
seen_count = 0;
@@ -917,7 +917,7 @@ static struct debug_buffer *alloc_buffer(struct usb_bus *bus,
{
struct debug_buffer *buf;
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (buf) {
buf->bus = bus;
diff --git a/drivers/usb/host/ehci-mem.c b/drivers/usb/host/ehci-mem.c
index 4c6c08b675b5..a2d4499e67e0 100644
--- a/drivers/usb/host/ehci-mem.c
+++ b/drivers/usb/host/ehci-mem.c
@@ -69,7 +69,7 @@ static struct ehci_qh *ehci_qh_alloc (struct ehci_hcd *ehci, gfp_t flags)
struct ehci_qh *qh;
dma_addr_t dma;
- qh = kzalloc(sizeof *qh, GFP_ATOMIC);
+ qh = kzalloc_obj(*qh, GFP_ATOMIC);
if (!qh)
goto done;
qh->hw = (struct ehci_qh_hw *)
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
index 7e834587e7de..a241337c9af8 100644
--- a/drivers/usb/host/ehci-sched.c
+++ b/drivers/usb/host/ehci-sched.c
@@ -117,9 +117,8 @@ static struct ehci_tt *find_tt(struct usb_device *udev)
if (utt->multi) {
tt_index = utt->hcpriv;
if (!tt_index) { /* Create the index array */
- tt_index = kcalloc(utt->hub->maxchild,
- sizeof(*tt_index),
- GFP_ATOMIC);
+ tt_index = kzalloc_objs(*tt_index, utt->hub->maxchild,
+ GFP_ATOMIC);
if (!tt_index)
return ERR_PTR(-ENOMEM);
utt->hcpriv = tt_index;
@@ -137,7 +136,7 @@ static struct ehci_tt *find_tt(struct usb_device *udev)
struct ehci_hcd *ehci =
hcd_to_ehci(bus_to_hcd(udev->bus));
- tt = kzalloc(sizeof(*tt), GFP_ATOMIC);
+ tt = kzalloc_obj(*tt, GFP_ATOMIC);
if (!tt) {
if (allocated_index) {
utt->hcpriv = NULL;
@@ -1003,7 +1002,7 @@ iso_stream_alloc(gfp_t mem_flags)
{
struct ehci_iso_stream *stream;
- stream = kzalloc(sizeof(*stream), mem_flags);
+ stream = kzalloc_obj(*stream, mem_flags);
if (likely(stream != NULL)) {
INIT_LIST_HEAD(&stream->td_list);
INIT_LIST_HEAD(&stream->free_list);
@@ -1167,7 +1166,7 @@ iso_sched_alloc(unsigned packets, gfp_t mem_flags)
{
struct ehci_iso_sched *iso_sched;
- iso_sched = kzalloc(struct_size(iso_sched, packet, packets), mem_flags);
+ iso_sched = kzalloc_flex(*iso_sched, packet, packets, mem_flags);
if (likely(iso_sched != NULL))
INIT_LIST_HEAD(&iso_sched->td_list);
diff --git a/drivers/usb/host/fhci-hcd.c b/drivers/usb/host/fhci-hcd.c
index 22a0942f0bce..445847b92f33 100644
--- a/drivers/usb/host/fhci-hcd.c
+++ b/drivers/usb/host/fhci-hcd.c
@@ -193,7 +193,7 @@ static int fhci_mem_init(struct fhci_hcd *fhci)
{
int i;
- fhci->hc_list = kzalloc(sizeof(*fhci->hc_list), GFP_KERNEL);
+ fhci->hc_list = kzalloc_obj(*fhci->hc_list, GFP_KERNEL);
if (!fhci->hc_list)
goto err;
@@ -203,7 +203,7 @@ static int fhci_mem_init(struct fhci_hcd *fhci)
INIT_LIST_HEAD(&fhci->hc_list->intr_list);
INIT_LIST_HEAD(&fhci->hc_list->done_list);
- fhci->vroot_hub = kzalloc(sizeof(*fhci->vroot_hub), GFP_KERNEL);
+ fhci->vroot_hub = kzalloc_obj(*fhci->vroot_hub, GFP_KERNEL);
if (!fhci->vroot_hub)
goto err;
@@ -217,7 +217,7 @@ static int fhci_mem_init(struct fhci_hcd *fhci)
for (i = 0; i < MAX_TDS; i++) {
struct td *td;
- td = kmalloc(sizeof(*td), GFP_KERNEL);
+ td = kmalloc_obj(*td, GFP_KERNEL);
if (!td)
goto err;
fhci_recycle_empty_td(fhci, td);
@@ -225,7 +225,7 @@ static int fhci_mem_init(struct fhci_hcd *fhci)
for (i = 0; i < MAX_EDS; i++) {
struct ed *ed;
- ed = kmalloc(sizeof(*ed), GFP_KERNEL);
+ ed = kmalloc_obj(*ed, GFP_KERNEL);
if (!ed)
goto err;
fhci_recycle_empty_ed(fhci, ed);
@@ -264,7 +264,7 @@ static int fhci_usb_init(struct fhci_hcd *fhci)
usb->max_frame_usage = FRAME_TIME_USAGE;
usb->sw_transaction_time = SW_FIX_TIME_BETWEEN_TRANSACTION;
- usb->actual_frame = kzalloc(sizeof(*usb->actual_frame), GFP_KERNEL);
+ usb->actual_frame = kzalloc_obj(*usb->actual_frame, GFP_KERNEL);
if (!usb->actual_frame) {
fhci_usb_free(usb);
return -ENOMEM;
@@ -306,7 +306,7 @@ static struct fhci_usb *fhci_create_lld(struct fhci_hcd *fhci)
struct fhci_usb *usb;
/* allocate memory for SCC data structure */
- usb = kzalloc(sizeof(*usb), GFP_KERNEL);
+ usb = kzalloc_obj(*usb, GFP_KERNEL);
if (!usb)
return NULL;
@@ -426,12 +426,12 @@ static int fhci_urb_enqueue(struct usb_hcd *hcd, struct urb *urb,
}
/* allocate the private part of the URB */
- urb_priv = kzalloc(sizeof(*urb_priv), mem_flags);
+ urb_priv = kzalloc_obj(*urb_priv, mem_flags);
if (!urb_priv)
return -ENOMEM;
/* allocate the private part of the URB */
- urb_priv->tds = kcalloc(size, sizeof(*urb_priv->tds), mem_flags);
+ urb_priv->tds = kzalloc_objs(*urb_priv->tds, size, mem_flags);
if (!urb_priv->tds) {
kfree(urb_priv);
return -ENOMEM;
diff --git a/drivers/usb/host/fhci-mem.c b/drivers/usb/host/fhci-mem.c
index 658aedc6adc1..d5951fc1964a 100644
--- a/drivers/usb/host/fhci-mem.c
+++ b/drivers/usb/host/fhci-mem.c
@@ -42,7 +42,7 @@ static struct td *get_empty_td(struct fhci_hcd *fhci)
td = list_entry(fhci->empty_tds.next, struct td, node);
list_del(fhci->empty_tds.next);
} else {
- td = kmalloc(sizeof(*td), GFP_ATOMIC);
+ td = kmalloc_obj(*td, GFP_ATOMIC);
if (!td)
fhci_err(fhci, "No memory to allocate to TD\n");
else
@@ -66,7 +66,7 @@ struct ed *fhci_get_empty_ed(struct fhci_hcd *fhci)
ed = list_entry(fhci->empty_eds.next, struct ed, node);
list_del(fhci->empty_eds.next);
} else {
- ed = kmalloc(sizeof(*ed), GFP_ATOMIC);
+ ed = kmalloc_obj(*ed, GFP_ATOMIC);
if (!ed)
fhci_err(fhci, "No memory to allocate to ED\n");
else
diff --git a/drivers/usb/host/fhci-tds.c b/drivers/usb/host/fhci-tds.c
index d98fd9e1af0b..6fb4feb4ad7b 100644
--- a/drivers/usb/host/fhci-tds.c
+++ b/drivers/usb/host/fhci-tds.c
@@ -161,7 +161,7 @@ u32 fhci_create_ep(struct fhci_usb *usb, enum fhci_mem_alloc data_mem,
return -EINVAL;
}
- ep = kzalloc(sizeof(*ep), GFP_KERNEL);
+ ep = kzalloc_obj(*ep, GFP_KERNEL);
if (!ep)
return -ENOMEM;
@@ -183,7 +183,7 @@ u32 fhci_create_ep(struct fhci_usb *usb, enum fhci_mem_alloc data_mem,
struct packet *pkt;
u8 *buff;
- pkt = kmalloc(sizeof(*pkt), GFP_KERNEL);
+ pkt = kmalloc_obj(*pkt, GFP_KERNEL);
if (!pkt) {
err_for = "frame";
goto err;
diff --git a/drivers/usb/host/isp116x-hcd.c b/drivers/usb/host/isp116x-hcd.c
index 71c22c4bd163..b5e9056895e4 100644
--- a/drivers/usb/host/isp116x-hcd.c
+++ b/drivers/usb/host/isp116x-hcd.c
@@ -703,7 +703,7 @@ static int isp116x_urb_enqueue(struct usb_hcd *hcd,
}
/* avoid all allocations within spinlocks: request or endpoint */
if (!hep->hcpriv) {
- ep = kzalloc(sizeof *ep, mem_flags);
+ ep = kzalloc_obj(*ep, mem_flags);
if (!ep)
return -ENOMEM;
}
diff --git a/drivers/usb/host/max3421-hcd.c b/drivers/usb/host/max3421-hcd.c
index 4b5f03f683f7..82e231e05dc2 100644
--- a/drivers/usb/host/max3421-hcd.c
+++ b/drivers/usb/host/max3421-hcd.c
@@ -1523,7 +1523,7 @@ max3421_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flags)
max3421_ep = urb->ep->hcpriv;
if (!max3421_ep) {
/* gets freed in max3421_endpoint_disable: */
- max3421_ep = kzalloc(sizeof(struct max3421_ep), GFP_ATOMIC);
+ max3421_ep = kzalloc_obj(struct max3421_ep, GFP_ATOMIC);
if (!max3421_ep) {
retval = -ENOMEM;
goto out;
@@ -1878,10 +1878,10 @@ max3421_probe(struct spi_device *spi)
INIT_LIST_HEAD(&max3421_hcd->ep_list);
spi_set_drvdata(spi, max3421_hcd);
- max3421_hcd->tx = kmalloc(sizeof(*max3421_hcd->tx), GFP_KERNEL);
+ max3421_hcd->tx = kmalloc_obj(*max3421_hcd->tx, GFP_KERNEL);
if (!max3421_hcd->tx)
goto error;
- max3421_hcd->rx = kmalloc(sizeof(*max3421_hcd->rx), GFP_KERNEL);
+ max3421_hcd->rx = kmalloc_obj(*max3421_hcd->rx, GFP_KERNEL);
if (!max3421_hcd->rx)
goto error;
diff --git a/drivers/usb/host/octeon-hcd.c b/drivers/usb/host/octeon-hcd.c
index 361d33b0c4d2..34ce771fa0f5 100644
--- a/drivers/usb/host/octeon-hcd.c
+++ b/drivers/usb/host/octeon-hcd.c
@@ -1098,7 +1098,7 @@ static struct cvmx_usb_pipe *cvmx_usb_open_pipe(struct octeon_hcd *usb,
{
struct cvmx_usb_pipe *pipe;
- pipe = kzalloc(sizeof(*pipe), GFP_ATOMIC);
+ pipe = kzalloc_obj(*pipe, GFP_ATOMIC);
if (!pipe)
return NULL;
if ((device_speed == CVMX_USB_SPEED_HIGH) &&
@@ -2138,7 +2138,7 @@ static struct cvmx_usb_transaction *cvmx_usb_submit_transaction(
if (unlikely(pipe->transfer_type != type))
return NULL;
- transaction = kzalloc(sizeof(*transaction), GFP_ATOMIC);
+ transaction = kzalloc_obj(*transaction, GFP_ATOMIC);
if (unlikely(!transaction))
return NULL;
@@ -3180,9 +3180,8 @@ static int octeon_usb_urb_enqueue(struct usb_hcd *hcd,
* Allocate a structure to use for our private list of
* isochronous packets.
*/
- iso_packet = kmalloc_array(urb->number_of_packets,
- sizeof(struct cvmx_usb_iso_packet),
- GFP_ATOMIC);
+ iso_packet = kmalloc_objs(struct cvmx_usb_iso_packet,
+ urb->number_of_packets, GFP_ATOMIC);
if (iso_packet) {
int i;
/* Fill the list with the data from the URB */
diff --git a/drivers/usb/host/ohci-dbg.c b/drivers/usb/host/ohci-dbg.c
index 76bc8d56325d..30e22acd9461 100644
--- a/drivers/usb/host/ohci-dbg.c
+++ b/drivers/usb/host/ohci-dbg.c
@@ -492,7 +492,7 @@ static ssize_t fill_periodic_buffer(struct debug_buffer *buf)
char *next;
unsigned i;
- seen = kmalloc_array(DBG_SCHED_LIMIT, sizeof(*seen), GFP_ATOMIC);
+ seen = kmalloc_objs(*seen, DBG_SCHED_LIMIT, GFP_ATOMIC);
if (!seen)
return 0;
seen_count = 0;
@@ -667,7 +667,7 @@ static struct debug_buffer *alloc_buffer(struct ohci_hcd *ohci,
{
struct debug_buffer *buf;
- buf = kzalloc(sizeof(struct debug_buffer), GFP_KERNEL);
+ buf = kzalloc_obj(struct debug_buffer, GFP_KERNEL);
if (buf) {
buf->ohci = ohci;
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
index 30840922f729..129468b1efc2 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -190,7 +190,7 @@ static int ohci_urb_enqueue (
}
/* allocate the private part of the URB */
- urb_priv = kzalloc(struct_size(urb_priv, td, size), mem_flags);
+ urb_priv = kzalloc_flex(*urb_priv, td, size, mem_flags);
if (!urb_priv)
return -ENOMEM;
INIT_LIST_HEAD (&urb_priv->pending);
diff --git a/drivers/usb/host/oxu210hp-hcd.c b/drivers/usb/host/oxu210hp-hcd.c
index 6b7c73eff081..ca96067e6d6d 100644
--- a/drivers/usb/host/oxu210hp-hcd.c
+++ b/drivers/usb/host/oxu210hp-hcd.c
@@ -1149,7 +1149,7 @@ static int ehci_mem_init(struct oxu_hcd *oxu, gfp_t flags)
for (i = 0; i < QTD_NUM; i++)
oxu->qtd_used[i] = 0;
- oxu->murb_pool = kcalloc(MURB_NUM, sizeof(struct oxu_murb), flags);
+ oxu->murb_pool = kzalloc_objs(struct oxu_murb, MURB_NUM, flags);
if (!oxu->murb_pool)
goto fail;
diff --git a/drivers/usb/host/r8a66597-hcd.c b/drivers/usb/host/r8a66597-hcd.c
index d21a03cf5c17..0a26489a40d0 100644
--- a/drivers/usb/host/r8a66597-hcd.c
+++ b/drivers/usb/host/r8a66597-hcd.c
@@ -337,7 +337,7 @@ static int make_r8a66597_device(struct r8a66597 *r8a66597,
struct r8a66597_device *dev;
int usb_address = urb->setup_packet[2]; /* urb->pipe is address 0 */
- dev = kzalloc(sizeof(struct r8a66597_device), GFP_ATOMIC);
+ dev = kzalloc_obj(struct r8a66597_device, GFP_ATOMIC);
if (dev == NULL)
return -ENOMEM;
@@ -1859,7 +1859,7 @@ static struct r8a66597_td *r8a66597_make_td(struct r8a66597 *r8a66597,
struct r8a66597_td *td;
u16 pipenum;
- td = kzalloc(sizeof(struct r8a66597_td), GFP_ATOMIC);
+ td = kzalloc_obj(struct r8a66597_td, GFP_ATOMIC);
if (td == NULL)
return NULL;
@@ -1901,8 +1901,7 @@ static int r8a66597_urb_enqueue(struct usb_hcd *hcd,
goto error_not_linked;
if (!hep->hcpriv) {
- hep->hcpriv = kzalloc(sizeof(struct r8a66597_pipe),
- GFP_ATOMIC);
+ hep->hcpriv = kzalloc_obj(struct r8a66597_pipe, GFP_ATOMIC);
if (!hep->hcpriv) {
ret = -ENOMEM;
goto error;
diff --git a/drivers/usb/host/sl811-hcd.c b/drivers/usb/host/sl811-hcd.c
index 5d6dba681e50..4ae47edd4b8b 100644
--- a/drivers/usb/host/sl811-hcd.c
+++ b/drivers/usb/host/sl811-hcd.c
@@ -814,7 +814,7 @@ static int sl811h_urb_enqueue(
/* avoid all allocations within spinlocks */
if (!hep->hcpriv) {
- ep = kzalloc(sizeof *ep, mem_flags);
+ ep = kzalloc_obj(*ep, mem_flags);
if (ep == NULL)
return -ENOMEM;
}
diff --git a/drivers/usb/host/sl811_cs.c b/drivers/usb/host/sl811_cs.c
index 16d157013018..afdbcac3185c 100644
--- a/drivers/usb/host/sl811_cs.c
+++ b/drivers/usb/host/sl811_cs.c
@@ -178,7 +178,7 @@ static int sl811_cs_probe(struct pcmcia_device *link)
{
local_info_t *local;
- local = kzalloc(sizeof(local_info_t), GFP_KERNEL);
+ local = kzalloc_obj(local_info_t, GFP_KERNEL);
if (!local)
return -ENOMEM;
local->p_dev = link;
diff --git a/drivers/usb/host/uhci-debug.c b/drivers/usb/host/uhci-debug.c
index c4e67c4b51f6..675107e9bae0 100644
--- a/drivers/usb/host/uhci-debug.c
+++ b/drivers/usb/host/uhci-debug.c
@@ -561,7 +561,7 @@ static int uhci_debug_open(struct inode *inode, struct file *file)
struct uhci_debug *up;
unsigned long flags;
- up = kmalloc(sizeof(*up), GFP_KERNEL);
+ up = kmalloc_obj(*up, GFP_KERNEL);
if (!up)
return -ENOMEM;
diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
index 8bb11109b66c..027c3798a581 100644
--- a/drivers/usb/host/uhci-hcd.c
+++ b/drivers/usb/host/uhci-hcd.c
@@ -603,8 +603,8 @@ static int uhci_start(struct usb_hcd *hcd)
goto err_alloc_frame;
}
- uhci->frame_cpu = kcalloc(UHCI_NUMFRAMES, sizeof(*uhci->frame_cpu),
- GFP_KERNEL);
+ uhci->frame_cpu = kzalloc_objs(*uhci->frame_cpu, UHCI_NUMFRAMES,
+ GFP_KERNEL);
if (!uhci->frame_cpu)
goto err_alloc_frame_cpu;
diff --git a/drivers/usb/host/xhci-dbgcap.c b/drivers/usb/host/xhci-dbgcap.c
index 9fd497e0dc7f..31995b12598f 100644
--- a/drivers/usb/host/xhci-dbgcap.c
+++ b/drivers/usb/host/xhci-dbgcap.c
@@ -238,7 +238,7 @@ dbc_alloc_request(struct xhci_dbc *dbc, unsigned int direction, gfp_t flags)
if (!dbc)
return NULL;
- req = kzalloc(sizeof(*req), flags);
+ req = kzalloc_obj(*req, flags);
if (!req)
return NULL;
@@ -446,7 +446,7 @@ dbc_alloc_ctx(struct device *dev, gfp_t flags)
{
struct xhci_container_ctx *ctx;
- ctx = kzalloc(sizeof(*ctx), flags);
+ ctx = kzalloc_obj(*ctx, flags);
if (!ctx)
return NULL;
@@ -503,14 +503,14 @@ xhci_dbc_ring_alloc(struct device *dev, enum xhci_ring_type type, gfp_t flags)
struct xhci_segment *seg;
dma_addr_t dma;
- ring = kzalloc(sizeof(*ring), flags);
+ ring = kzalloc_obj(*ring, flags);
if (!ring)
return NULL;
ring->num_segs = 1;
ring->type = type;
- seg = kzalloc(sizeof(*seg), flags);
+ seg = kzalloc_obj(*seg, flags);
if (!seg)
goto seg_fail;
@@ -1425,7 +1425,7 @@ xhci_alloc_dbc(struct device *dev, void __iomem *base, const struct dbc_driver *
struct xhci_dbc *dbc;
int ret;
- dbc = kzalloc(sizeof(*dbc), GFP_KERNEL);
+ dbc = kzalloc_obj(*dbc, GFP_KERNEL);
if (!dbc)
return NULL;
diff --git a/drivers/usb/host/xhci-dbgtty.c b/drivers/usb/host/xhci-dbgtty.c
index 90282e51e23e..a058277b5ff9 100644
--- a/drivers/usb/host/xhci-dbgtty.c
+++ b/drivers/usb/host/xhci-dbgtty.c
@@ -584,7 +584,7 @@ int xhci_dbc_tty_probe(struct device *dev, void __iomem *base, struct xhci_hcd *
if (!dbc_tty_driver)
return -ENODEV;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return -ENOMEM;
diff --git a/drivers/usb/host/xhci-debugfs.c b/drivers/usb/host/xhci-debugfs.c
index c1eb1036ede9..296ff14d4e9a 100644
--- a/drivers/usb/host/xhci-debugfs.c
+++ b/drivers/usb/host/xhci-debugfs.c
@@ -87,7 +87,7 @@ static struct xhci_regset *xhci_debugfs_alloc_regset(struct xhci_hcd *xhci)
{
struct xhci_regset *regset;
- regset = kzalloc(sizeof(*regset), GFP_KERNEL);
+ regset = kzalloc_obj(*regset, GFP_KERNEL);
if (!regset)
return NULL;
@@ -468,7 +468,7 @@ void xhci_debugfs_create_endpoint(struct xhci_hcd *xhci,
if (spriv->eps[ep_index])
return;
- epriv = kzalloc(sizeof(*epriv), GFP_KERNEL);
+ epriv = kzalloc_obj(*epriv, GFP_KERNEL);
if (!epriv)
return;
@@ -608,7 +608,7 @@ void xhci_debugfs_create_slot(struct xhci_hcd *xhci, int slot_id)
struct xhci_slot_priv *priv;
struct xhci_virt_device *dev = xhci->devs[slot_id];
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return;
diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
index c708bdd69f16..75bc1eb98b76 100644
--- a/drivers/usb/host/xhci-mem.c
+++ b/drivers/usb/host/xhci-mem.c
@@ -977,7 +977,7 @@ int xhci_alloc_virt_device(struct xhci_hcd *xhci, int slot_id,
return 0;
}
- dev = kzalloc(sizeof(*dev), flags);
+ dev = kzalloc_obj(*dev, flags);
if (!dev)
return 0;
diff --git a/drivers/usb/host/xhci-mtk-sch.c b/drivers/usb/host/xhci-mtk-sch.c
index 27eb384a3963..ef255b968ab6 100644
--- a/drivers/usb/host/xhci-mtk-sch.c
+++ b/drivers/usb/host/xhci-mtk-sch.c
@@ -179,8 +179,8 @@ static struct mu3h_sch_tt *find_tt(struct usb_device *udev)
if (utt->multi) {
tt_index = utt->hcpriv;
if (!tt_index) { /* Create the index array */
- tt_index = kcalloc(utt->hub->maxchild,
- sizeof(*tt_index), GFP_KERNEL);
+ tt_index = kzalloc_objs(*tt_index, utt->hub->maxchild,
+ GFP_KERNEL);
if (!tt_index)
return ERR_PTR(-ENOMEM);
utt->hcpriv = tt_index;
@@ -193,7 +193,7 @@ static struct mu3h_sch_tt *find_tt(struct usb_device *udev)
tt = *ptt;
if (!tt) { /* Create the mu3h_sch_tt */
- tt = kzalloc(sizeof(*tt), GFP_KERNEL);
+ tt = kzalloc_obj(*tt, GFP_KERNEL);
if (!tt) {
if (allocated_index) {
utt->hcpriv = NULL;
@@ -264,7 +264,7 @@ create_sch_ep(struct xhci_hcd_mtk *mtk, struct usb_device *udev,
else
len = 1;
- sch_ep = kzalloc(struct_size(sch_ep, bw_budget_table, len), GFP_KERNEL);
+ sch_ep = kzalloc_flex(*sch_ep, bw_budget_table, len, GFP_KERNEL);
if (!sch_ep)
return ERR_PTR(-ENOMEM);
@@ -891,7 +891,7 @@ int xhci_mtk_sch_init(struct xhci_hcd_mtk *mtk)
/* ss IN and OUT are separated */
num_usb_bus = xhci->usb3_rhub.num_ports * 2 + xhci->usb2_rhub.num_ports;
- sch_array = kcalloc(num_usb_bus, sizeof(*sch_array), GFP_KERNEL);
+ sch_array = kzalloc_objs(*sch_array, num_usb_bus, GFP_KERNEL);
if (sch_array == NULL)
return -ENOMEM;
diff --git a/drivers/usb/host/xhci-sideband.c b/drivers/usb/host/xhci-sideband.c
index 2bd77255032b..3ebe22755693 100644
--- a/drivers/usb/host/xhci-sideband.c
+++ b/drivers/usb/host/xhci-sideband.c
@@ -28,11 +28,11 @@ xhci_ring_to_sgtable(struct xhci_sideband *sb, struct xhci_ring *ring)
dev = xhci_to_hcd(sb->xhci)->self.sysdev;
sz = ring->num_segs * TRB_SEGMENT_SIZE;
n_pages = PAGE_ALIGN(sz) >> PAGE_SHIFT;
- pages = kvmalloc_array(n_pages, sizeof(struct page *), GFP_KERNEL);
+ pages = kvmalloc_objs(struct page *, n_pages, GFP_KERNEL);
if (!pages)
return NULL;
- sgt = kzalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kzalloc_obj(*sgt, GFP_KERNEL);
if (!sgt) {
kvfree(pages);
return NULL;
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index b3ba16b9718c..c36ab323d68e 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -1641,7 +1641,7 @@ static int xhci_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flag
else
num_tds = 1;
- urb_priv = kzalloc(struct_size(urb_priv, td, num_tds), mem_flags);
+ urb_priv = kzalloc_flex(*urb_priv, td, num_tds, mem_flags);
if (!urb_priv)
return -ENOMEM;
diff --git a/drivers/usb/image/mdc800.c b/drivers/usb/image/mdc800.c
index 7b7e1554ea20..9cb74eb91b07 100644
--- a/drivers/usb/image/mdc800.c
+++ b/drivers/usb/image/mdc800.c
@@ -982,7 +982,7 @@ static int __init usb_mdc800_init (void)
{
int retval = -ENODEV;
/* Allocate Memory */
- mdc800=kzalloc (sizeof (struct mdc800_data), GFP_KERNEL);
+ mdc800=kzalloc_obj(struct mdc800_data, GFP_KERNEL);
if (!mdc800)
goto cleanup_on_fail;
diff --git a/drivers/usb/image/microtek.c b/drivers/usb/image/microtek.c
index 82859374f302..20b0b3736322 100644
--- a/drivers/usb/image/microtek.c
+++ b/drivers/usb/image/microtek.c
@@ -723,7 +723,7 @@ static int mts_usb_probe(struct usb_interface *intf,
}
- new_desc = kzalloc(sizeof(struct mts_desc), GFP_KERNEL);
+ new_desc = kzalloc_obj(struct mts_desc, GFP_KERNEL);
if (!new_desc)
goto out;
diff --git a/drivers/usb/isp1760/isp1760-hcd.c b/drivers/usb/isp1760/isp1760-hcd.c
index 8dcd9cc22413..fbb83c84beee 100644
--- a/drivers/usb/isp1760/isp1760-hcd.c
+++ b/drivers/usb/isp1760/isp1760-hcd.c
@@ -2572,15 +2572,15 @@ int isp1760_hcd_register(struct isp1760_hcd *priv, struct resource *mem,
priv->hcd = hcd;
- priv->atl_slots = kcalloc(mem_layout->slot_num,
- sizeof(struct isp1760_slotinfo), GFP_KERNEL);
+ priv->atl_slots = kzalloc_objs(struct isp1760_slotinfo,
+ mem_layout->slot_num, GFP_KERNEL);
if (!priv->atl_slots) {
ret = -ENOMEM;
goto put_hcd;
}
- priv->int_slots = kcalloc(mem_layout->slot_num,
- sizeof(struct isp1760_slotinfo), GFP_KERNEL);
+ priv->int_slots = kzalloc_objs(struct isp1760_slotinfo,
+ mem_layout->slot_num, GFP_KERNEL);
if (!priv->int_slots) {
ret = -ENOMEM;
goto free_atl_slots;
diff --git a/drivers/usb/isp1760/isp1760-udc.c b/drivers/usb/isp1760/isp1760-udc.c
index 65ac91d0595a..e45a54c4a560 100644
--- a/drivers/usb/isp1760/isp1760-udc.c
+++ b/drivers/usb/isp1760/isp1760-udc.c
@@ -878,7 +878,7 @@ static struct usb_request *isp1760_ep_alloc_request(struct usb_ep *ep,
{
struct isp1760_request *req;
- req = kzalloc(sizeof(*req), gfp_flags);
+ req = kzalloc_obj(*req, gfp_flags);
if (!req)
return NULL;
diff --git a/drivers/usb/misc/adutux.c b/drivers/usb/misc/adutux.c
index ed6a19254d2f..2c311dc92ab9 100644
--- a/drivers/usb/misc/adutux.c
+++ b/drivers/usb/misc/adutux.c
@@ -657,7 +657,7 @@ static int adu_probe(struct usb_interface *interface,
int res;
/* allocate memory for our device state and initialize it */
- dev = kzalloc(sizeof(struct adu_device), GFP_KERNEL);
+ dev = kzalloc_obj(struct adu_device, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/usb/misc/apple-mfi-fastcharge.c b/drivers/usb/misc/apple-mfi-fastcharge.c
index 47b38dcc2992..8cf08fbda163 100644
--- a/drivers/usb/misc/apple-mfi-fastcharge.c
+++ b/drivers/usb/misc/apple-mfi-fastcharge.c
@@ -184,7 +184,7 @@ static int mfi_fc_probe(struct usb_device *udev)
if (!mfi_fc_match(udev))
return -ENODEV;
- mfi = kzalloc(sizeof(struct mfi_device), GFP_KERNEL);
+ mfi = kzalloc_obj(struct mfi_device, GFP_KERNEL);
if (!mfi)
return -ENOMEM;
diff --git a/drivers/usb/misc/appledisplay.c b/drivers/usb/misc/appledisplay.c
index 62b5a30edc42..e9b26cf7bcfc 100644
--- a/drivers/usb/misc/appledisplay.c
+++ b/drivers/usb/misc/appledisplay.c
@@ -226,7 +226,7 @@ static int appledisplay_probe(struct usb_interface *iface,
int_in_endpointAddr = endpoint->bEndpointAddress;
/* allocate memory for our device state and initialize it */
- pdata = kzalloc(sizeof(struct appledisplay), GFP_KERNEL);
+ pdata = kzalloc_obj(struct appledisplay, GFP_KERNEL);
if (!pdata) {
retval = -ENOMEM;
goto error;
diff --git a/drivers/usb/misc/chaoskey.c b/drivers/usb/misc/chaoskey.c
index 45cff32656c6..039e2b1bba00 100644
--- a/drivers/usb/misc/chaoskey.c
+++ b/drivers/usb/misc/chaoskey.c
@@ -143,7 +143,7 @@ static int chaoskey_probe(struct usb_interface *interface,
/* Looks good, allocate and initialize */
- dev = kzalloc(sizeof(struct chaoskey), GFP_KERNEL);
+ dev = kzalloc_obj(struct chaoskey, GFP_KERNEL);
if (dev == NULL)
goto out;
diff --git a/drivers/usb/misc/cypress_cy7c63.c b/drivers/usb/misc/cypress_cy7c63.c
index 75f5a740cba3..ace0ec94506c 100644
--- a/drivers/usb/misc/cypress_cy7c63.c
+++ b/drivers/usb/misc/cypress_cy7c63.c
@@ -211,7 +211,7 @@ static int cypress_probe(struct usb_interface *interface,
int retval = -ENOMEM;
/* allocate memory for our device state and initialize it */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
goto error_mem;
diff --git a/drivers/usb/misc/cytherm.c b/drivers/usb/misc/cytherm.c
index 875016dd073c..6af966118792 100644
--- a/drivers/usb/misc/cytherm.c
+++ b/drivers/usb/misc/cytherm.c
@@ -307,7 +307,7 @@ static int cytherm_probe(struct usb_interface *interface,
struct usb_cytherm *dev;
int retval = -ENOMEM;
- dev = kzalloc(sizeof(struct usb_cytherm), GFP_KERNEL);
+ dev = kzalloc_obj(struct usb_cytherm, GFP_KERNEL);
if (!dev)
goto error_mem;
diff --git a/drivers/usb/misc/idmouse.c b/drivers/usb/misc/idmouse.c
index ea39243efee3..1f649eedfa68 100644
--- a/drivers/usb/misc/idmouse.c
+++ b/drivers/usb/misc/idmouse.c
@@ -330,7 +330,7 @@ static int idmouse_probe(struct usb_interface *interface,
return -ENODEV;
/* allocate memory for our device state and initialize it */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (dev == NULL)
return -ENOMEM;
diff --git a/drivers/usb/misc/iowarrior.c b/drivers/usb/misc/iowarrior.c
index 365c10069345..5f882cb6ff07 100644
--- a/drivers/usb/misc/iowarrior.c
+++ b/drivers/usb/misc/iowarrior.c
@@ -777,7 +777,7 @@ static int iowarrior_probe(struct usb_interface *interface,
int res;
/* allocate memory for our device state and initialize it */
- dev = kzalloc(sizeof(struct iowarrior), GFP_KERNEL);
+ dev = kzalloc_obj(struct iowarrior, GFP_KERNEL);
if (!dev)
return retval;
diff --git a/drivers/usb/misc/ldusb.c b/drivers/usb/misc/ldusb.c
index f392d6f84df9..cb7125a5b27f 100644
--- a/drivers/usb/misc/ldusb.c
+++ b/drivers/usb/misc/ldusb.c
@@ -656,7 +656,7 @@ static int ld_usb_probe(struct usb_interface *intf, const struct usb_device_id *
/* allocate memory for our device state and initialize it */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
goto exit;
mutex_init(&dev->mutex);
diff --git a/drivers/usb/misc/legousbtower.c b/drivers/usb/misc/legousbtower.c
index 379cf01a6e96..a2909dee0d2a 100644
--- a/drivers/usb/misc/legousbtower.c
+++ b/drivers/usb/misc/legousbtower.c
@@ -748,7 +748,7 @@ static int tower_probe(struct usb_interface *interface, const struct usb_device_
int result;
/* allocate memory for our device state and initialize it */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
goto exit;
diff --git a/drivers/usb/misc/lvstest.c b/drivers/usb/misc/lvstest.c
index 25ec5666a75e..52d84e2d8193 100644
--- a/drivers/usb/misc/lvstest.c
+++ b/drivers/usb/misc/lvstest.c
@@ -260,7 +260,7 @@ static ssize_t get_dev_desc_store(struct device *dev,
struct usb_device_descriptor *descriptor;
int ret;
- descriptor = kmalloc(sizeof(*descriptor), GFP_KERNEL);
+ descriptor = kmalloc_obj(*descriptor, GFP_KERNEL);
if (!descriptor)
return -ENOMEM;
diff --git a/drivers/usb/misc/onboard_usb_dev.c b/drivers/usb/misc/onboard_usb_dev.c
index 41360a7591e5..40572d7192f6 100644
--- a/drivers/usb/misc/onboard_usb_dev.c
+++ b/drivers/usb/misc/onboard_usb_dev.c
@@ -202,7 +202,7 @@ static int onboard_dev_add_usbdev(struct onboard_dev *onboard_dev,
goto error;
}
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node) {
err = -ENOMEM;
goto error;
diff --git a/drivers/usb/misc/onboard_usb_dev_pdevs.c b/drivers/usb/misc/onboard_usb_dev_pdevs.c
index 722504752ce3..2550108bf73c 100644
--- a/drivers/usb/misc/onboard_usb_dev_pdevs.c
+++ b/drivers/usb/misc/onboard_usb_dev_pdevs.c
@@ -109,7 +109,7 @@ void onboard_dev_create_pdevs(struct usb_device *parent_hub, struct list_head *p
goto node_put;
}
- pdle = kzalloc(sizeof(*pdle), GFP_KERNEL);
+ pdle = kzalloc_obj(*pdle, GFP_KERNEL);
if (!pdle) {
of_platform_device_destroy(&pdev->dev, NULL);
goto node_put;
diff --git a/drivers/usb/misc/sisusbvga/sisusbvga.c b/drivers/usb/misc/sisusbvga/sisusbvga.c
index febf34f9f049..be7e7abc47c6 100644
--- a/drivers/usb/misc/sisusbvga/sisusbvga.c
+++ b/drivers/usb/misc/sisusbvga/sisusbvga.c
@@ -2797,7 +2797,7 @@ static int sisusb_probe(struct usb_interface *intf,
dev->devnum);
/* Allocate memory for our private */
- sisusb = kzalloc(sizeof(*sisusb), GFP_KERNEL);
+ sisusb = kzalloc_obj(*sisusb, GFP_KERNEL);
if (!sisusb)
return -ENOMEM;
diff --git a/drivers/usb/misc/trancevibrator.c b/drivers/usb/misc/trancevibrator.c
index 26baba3ab7d7..a43f2ef30433 100644
--- a/drivers/usb/misc/trancevibrator.c
+++ b/drivers/usb/misc/trancevibrator.c
@@ -86,7 +86,7 @@ static int tv_probe(struct usb_interface *interface,
struct trancevibrator *dev;
int retval;
- dev = kzalloc(sizeof(struct trancevibrator), GFP_KERNEL);
+ dev = kzalloc_obj(struct trancevibrator, GFP_KERNEL);
if (!dev) {
retval = -ENOMEM;
goto error;
diff --git a/drivers/usb/misc/usb-ljca.c b/drivers/usb/misc/usb-ljca.c
index 9e65bb9577ea..a959dd824f0e 100644
--- a/drivers/usb/misc/usb-ljca.c
+++ b/drivers/usb/misc/usb-ljca.c
@@ -529,7 +529,7 @@ static int ljca_new_client_device(struct ljca_adapter *adap, u8 type, u8 id,
struct ljca_client *client;
int ret;
- client = kzalloc(sizeof *client, GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (!client) {
kfree(data);
return -ENOMEM;
@@ -597,7 +597,7 @@ static int ljca_enumerate_gpio(struct ljca_adapter *adap)
return -EINVAL;
/* construct platform data */
- gpio_info = kzalloc(sizeof *gpio_info, GFP_KERNEL);
+ gpio_info = kzalloc_obj(*gpio_info, GFP_KERNEL);
if (!gpio_info)
return -ENOMEM;
gpio_info->num = gpio_num;
@@ -630,7 +630,7 @@ static int ljca_enumerate_i2c(struct ljca_adapter *adap)
for (i = 0; i < desc->num; i++) {
/* construct platform data */
- i2c_info = kzalloc(sizeof *i2c_info, GFP_KERNEL);
+ i2c_info = kzalloc_obj(*i2c_info, GFP_KERNEL);
if (!i2c_info)
return -ENOMEM;
@@ -669,7 +669,7 @@ static int ljca_enumerate_spi(struct ljca_adapter *adap)
for (i = 0; i < desc->num; i++) {
/* construct platform data */
- spi_info = kzalloc(sizeof *spi_info, GFP_KERNEL);
+ spi_info = kzalloc_obj(*spi_info, GFP_KERNEL);
if (!spi_info)
return -ENOMEM;
diff --git a/drivers/usb/misc/usbio.c b/drivers/usb/misc/usbio.c
index 37644dddf157..50ff9f1ca78f 100644
--- a/drivers/usb/misc/usbio.c
+++ b/drivers/usb/misc/usbio.c
@@ -439,7 +439,7 @@ static int usbio_add_client(struct usbio_device *usbio, char *name, u8 id, void
struct auxiliary_device *adev;
int ret;
- client = kzalloc(sizeof(*client), GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (!client)
return -ENOMEM;
diff --git a/drivers/usb/misc/usblcd.c b/drivers/usb/misc/usblcd.c
index bb546f624a45..be798a293904 100644
--- a/drivers/usb/misc/usblcd.c
+++ b/drivers/usb/misc/usblcd.c
@@ -323,7 +323,7 @@ static int lcd_probe(struct usb_interface *interface,
int retval;
/* allocate memory for our device state and initialize it */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/usb/misc/usbsevseg.c b/drivers/usb/misc/usbsevseg.c
index 546deff754ba..97fcb35513ce 100644
--- a/drivers/usb/misc/usbsevseg.c
+++ b/drivers/usb/misc/usbsevseg.c
@@ -308,7 +308,7 @@ static int sevseg_probe(struct usb_interface *interface,
struct usb_sevsegdev *mydev;
int rc = -ENOMEM;
- mydev = kzalloc(sizeof(struct usb_sevsegdev), GFP_KERNEL);
+ mydev = kzalloc_obj(struct usb_sevsegdev, GFP_KERNEL);
if (!mydev)
goto error_mem;
diff --git a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c
index 5c92c8d8e283..689cf82ce47d 100644
--- a/drivers/usb/misc/usbtest.c
+++ b/drivers/usb/misc/usbtest.c
@@ -545,7 +545,7 @@ alloc_sglist(int nents, int max, int vary, struct usbtest_dev *dev, int pipe)
if (max == 0)
return NULL;
- sg = kmalloc_array(nents, sizeof(*sg), GFP_KERNEL);
+ sg = kmalloc_objs(*sg, nents, GFP_KERNEL);
if (!sg)
return NULL;
sg_init_table(sg, nents);
@@ -1221,7 +1221,7 @@ test_ctrl_queue(struct usbtest_dev *dev, struct usbtest_param_32 *param)
* as with bulk/intr sglists, sglen is the queue depth; it also
* controls which subtests run (more tests than sglen) or rerun.
*/
- urb = kcalloc(param->sglen, sizeof(struct urb *), GFP_KERNEL);
+ urb = kzalloc_objs(struct urb *, param->sglen, GFP_KERNEL);
if (!urb)
return -ENOMEM;
for (i = 0; i < param->sglen; i++) {
@@ -1370,7 +1370,7 @@ test_ctrl_queue(struct usbtest_dev *dev, struct usbtest_param_32 *param)
if (!u)
goto cleanup;
- reqp = kmalloc(sizeof(*reqp), GFP_KERNEL);
+ reqp = kmalloc_obj(*reqp, GFP_KERNEL);
if (!reqp)
goto cleanup;
reqp->setup = req;
@@ -1572,7 +1572,7 @@ static int unlink_queued(struct usbtest_dev *dev, int pipe, unsigned num,
memset(buf, 0, size);
/* Allocate and init the urbs we'll queue */
- ctx.urbs = kcalloc(num, sizeof(struct urb *), GFP_KERNEL);
+ ctx.urbs = kzalloc_objs(struct urb *, num, GFP_KERNEL);
if (!ctx.urbs)
goto free_buf;
for (i = 0; i < num; i++) {
@@ -2052,7 +2052,7 @@ test_queue(struct usbtest_dev *dev, struct usbtest_param_32 *param,
if (param->sglen > MAX_SGLEN)
return -EINVAL;
- urbs = kcalloc(param->sglen, sizeof(*urbs), GFP_KERNEL);
+ urbs = kzalloc_objs(*urbs, param->sglen, GFP_KERNEL);
if (!urbs)
return -ENOMEM;
@@ -2786,7 +2786,7 @@ usbtest_probe(struct usb_interface *intf, const struct usb_device_id *id)
}
#endif
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
info = (struct usbtest_info *) id->driver_info;
diff --git a/drivers/usb/misc/uss720.c b/drivers/usb/misc/uss720.c
index b26c1d382d59..46356d099d26 100644
--- a/drivers/usb/misc/uss720.c
+++ b/drivers/usb/misc/uss720.c
@@ -134,7 +134,7 @@ static struct uss720_async_request *submit_async_request(struct parport_uss720_p
usbdev = priv->usbdev;
if (!usbdev)
return NULL;
- rq = kzalloc(sizeof(struct uss720_async_request), mem_flags);
+ rq = kzalloc_obj(struct uss720_async_request, mem_flags);
if (!rq)
return NULL;
kref_init(&rq->ref_count);
@@ -147,7 +147,7 @@ static struct uss720_async_request *submit_async_request(struct parport_uss720_p
kref_put(&rq->ref_count, destroy_async);
return NULL;
}
- rq->dr = kmalloc(sizeof(*rq->dr), mem_flags);
+ rq->dr = kmalloc_obj(*rq->dr, mem_flags);
if (!rq->dr) {
kref_put(&rq->ref_count, destroy_async);
return NULL;
@@ -701,7 +701,7 @@ static int uss720_probe(struct usb_interface *intf,
/*
* Allocate parport interface
*/
- priv = kzalloc(sizeof(struct parport_uss720_private), GFP_KERNEL);
+ priv = kzalloc_obj(struct parport_uss720_private, GFP_KERNEL);
if (!priv) {
usb_put_dev(usbdev);
return -ENOMEM;
diff --git a/drivers/usb/misc/yurex.c b/drivers/usb/misc/yurex.c
index 70dff0db5354..2e2057ef5b68 100644
--- a/drivers/usb/misc/yurex.c
+++ b/drivers/usb/misc/yurex.c
@@ -197,7 +197,7 @@ static int yurex_probe(struct usb_interface *interface, const struct usb_device_
int res;
/* allocate memory for our device state and initialize it */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
goto error;
kref_init(&dev->kref);
diff --git a/drivers/usb/mon/mon_bin.c b/drivers/usb/mon/mon_bin.c
index e713fc5964b1..c0c4eb0a166d 100644
--- a/drivers/usb/mon/mon_bin.c
+++ b/drivers/usb/mon/mon_bin.c
@@ -694,7 +694,7 @@ static int mon_bin_open(struct inode *inode, struct file *file)
return -ENODEV;
}
- rp = kzalloc(sizeof(struct mon_reader_bin), GFP_KERNEL);
+ rp = kzalloc_obj(struct mon_reader_bin, GFP_KERNEL);
if (rp == NULL) {
rc = -ENOMEM;
goto err_alloc;
@@ -1029,8 +1029,8 @@ static long mon_bin_ioctl(struct file *file, unsigned int cmd, unsigned long arg
return -EINVAL;
size = CHUNK_ALIGN(arg);
- vec = kcalloc(size / CHUNK_SIZE, sizeof(struct mon_pgmap),
- GFP_KERNEL);
+ vec = kzalloc_objs(struct mon_pgmap, size / CHUNK_SIZE,
+ GFP_KERNEL);
if (vec == NULL) {
ret = -ENOMEM;
break;
diff --git a/drivers/usb/mon/mon_main.c b/drivers/usb/mon/mon_main.c
index af852d53aac6..b3a68ac6fb98 100644
--- a/drivers/usb/mon/mon_main.c
+++ b/drivers/usb/mon/mon_main.c
@@ -273,7 +273,7 @@ static void mon_bus_init(struct usb_bus *ubus)
{
struct mon_bus *mbus;
- mbus = kzalloc(sizeof(struct mon_bus), GFP_KERNEL);
+ mbus = kzalloc_obj(struct mon_bus, GFP_KERNEL);
if (mbus == NULL)
goto err_alloc;
kref_init(&mbus->ref);
diff --git a/drivers/usb/mon/mon_stat.c b/drivers/usb/mon/mon_stat.c
index 398e02af6a2b..8329c1fc719e 100644
--- a/drivers/usb/mon/mon_stat.c
+++ b/drivers/usb/mon/mon_stat.c
@@ -29,7 +29,7 @@ static int mon_stat_open(struct inode *inode, struct file *file)
struct mon_bus *mbus;
struct snap *sp;
- sp = kmalloc(sizeof(struct snap), GFP_KERNEL);
+ sp = kmalloc_obj(struct snap, GFP_KERNEL);
if (sp == NULL)
return -ENOMEM;
diff --git a/drivers/usb/mon/mon_text.c b/drivers/usb/mon/mon_text.c
index 68b9b2b41189..b55016068b47 100644
--- a/drivers/usb/mon/mon_text.c
+++ b/drivers/usb/mon/mon_text.c
@@ -330,7 +330,7 @@ static int mon_text_open(struct inode *inode, struct file *file)
mutex_lock(&mon_lock);
mbus = inode->i_private;
- rp = kzalloc(sizeof(struct mon_reader_text), GFP_KERNEL);
+ rp = kzalloc_obj(struct mon_reader_text, GFP_KERNEL);
if (rp == NULL) {
rc = -ENOMEM;
goto err_alloc;
diff --git a/drivers/usb/mtu3/mtu3_core.c b/drivers/usb/mtu3/mtu3_core.c
index 3a25ee18f144..9215373a9738 100644
--- a/drivers/usb/mtu3/mtu3_core.c
+++ b/drivers/usb/mtu3/mtu3_core.c
@@ -613,7 +613,7 @@ static int mtu3_mem_alloc(struct mtu3 *mtu)
/* one for ep0, another is reserved */
mtu->num_eps = min(in_ep_num, out_ep_num) + 1;
- ep_array = kcalloc(mtu->num_eps * 2, sizeof(*ep_array), GFP_KERNEL);
+ ep_array = kzalloc_objs(*ep_array, mtu->num_eps * 2, GFP_KERNEL);
if (ep_array == NULL)
return -ENOMEM;
diff --git a/drivers/usb/mtu3/mtu3_gadget.c b/drivers/usb/mtu3/mtu3_gadget.c
index bf73fbc29976..da29f467943f 100644
--- a/drivers/usb/mtu3/mtu3_gadget.c
+++ b/drivers/usb/mtu3/mtu3_gadget.c
@@ -235,7 +235,7 @@ struct usb_request *mtu3_alloc_request(struct usb_ep *ep, gfp_t gfp_flags)
struct mtu3_ep *mep = to_mtu3_ep(ep);
struct mtu3_request *mreq;
- mreq = kzalloc(sizeof(*mreq), gfp_flags);
+ mreq = kzalloc_obj(*mreq, gfp_flags);
if (!mreq)
return NULL;
diff --git a/drivers/usb/musb/musb_cppi41.c b/drivers/usb/musb/musb_cppi41.c
index 4cde3abb7006..240953cdf46d 100644
--- a/drivers/usb/musb/musb_cppi41.c
+++ b/drivers/usb/musb/musb_cppi41.c
@@ -756,7 +756,7 @@ cppi41_dma_controller_create(struct musb *musb, void __iomem *base)
return NULL;
}
- controller = kzalloc(sizeof(*controller), GFP_KERNEL);
+ controller = kzalloc_obj(*controller, GFP_KERNEL);
if (!controller)
goto kzalloc_fail;
diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index d666c4292753..016d3f3fc1e0 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -1133,7 +1133,7 @@ struct usb_request *musb_alloc_request(struct usb_ep *ep, gfp_t gfp_flags)
struct musb_ep *musb_ep = to_musb_ep(ep);
struct musb_request *request;
- request = kzalloc(sizeof *request, gfp_flags);
+ request = kzalloc_obj(*request, gfp_flags);
if (!request)
return NULL;
diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
index 6b4481a867c5..8efd2fa472f9 100644
--- a/drivers/usb/musb/musb_host.c
+++ b/drivers/usb/musb/musb_host.c
@@ -2154,7 +2154,7 @@ static int musb_urb_enqueue(
* REVISIT consider a dedicated qh kmem_cache, so it's harder
* for bugs in other kernel code to break this driver...
*/
- qh = kzalloc(sizeof *qh, mem_flags);
+ qh = kzalloc_obj(*qh, mem_flags);
if (!qh) {
spin_lock_irqsave(&musb->lock, flags);
usb_hcd_unlink_urb_from_ep(hcd, urb);
diff --git a/drivers/usb/musb/musbhsdma.c b/drivers/usb/musb/musbhsdma.c
index 7acd1635850d..9cd4616d853e 100644
--- a/drivers/usb/musb/musbhsdma.c
+++ b/drivers/usb/musb/musbhsdma.c
@@ -395,7 +395,7 @@ dma_controller_alloc(struct musb *musb, void __iomem *base)
{
struct musb_dma_controller *controller;
- controller = kzalloc(sizeof(*controller), GFP_KERNEL);
+ controller = kzalloc_obj(*controller, GFP_KERNEL);
if (!controller)
return NULL;
diff --git a/drivers/usb/musb/tusb6010_omap.c b/drivers/usb/musb/tusb6010_omap.c
index 60a93b8bbe3c..ed8fea4738cd 100644
--- a/drivers/usb/musb/tusb6010_omap.c
+++ b/drivers/usb/musb/tusb6010_omap.c
@@ -596,7 +596,7 @@ tusb_dma_controller_create(struct musb *musb, void __iomem *base)
| TUSB_DMA_REQ_CONF_DMA_REQ_EN(0x3f)
| TUSB_DMA_REQ_CONF_DMA_REQ_ASSER(2));
- tusb_dma = kzalloc(sizeof(struct tusb_omap_dma), GFP_KERNEL);
+ tusb_dma = kzalloc_obj(struct tusb_omap_dma, GFP_KERNEL);
if (!tusb_dma)
goto out;
@@ -615,13 +615,13 @@ tusb_dma_controller_create(struct musb *musb, void __iomem *base)
struct dma_channel *ch;
struct tusb_omap_dma_ch *chdat;
- ch = kzalloc(sizeof(struct dma_channel), GFP_KERNEL);
+ ch = kzalloc_obj(struct dma_channel, GFP_KERNEL);
if (!ch)
goto cleanup;
dma_channel_pool[i] = ch;
- chdat = kzalloc(sizeof(struct tusb_omap_dma_ch), GFP_KERNEL);
+ chdat = kzalloc_obj(struct tusb_omap_dma_ch, GFP_KERNEL);
if (!chdat)
goto cleanup;
diff --git a/drivers/usb/musb/ux500_dma.c b/drivers/usb/musb/ux500_dma.c
index d5cf5e8bb1ca..0621a6c0c6b6 100644
--- a/drivers/usb/musb/ux500_dma.c
+++ b/drivers/usb/musb/ux500_dma.c
@@ -362,7 +362,7 @@ ux500_dma_controller_create(struct musb *musb, void __iomem *base)
struct resource *iomem;
int ret;
- controller = kzalloc(sizeof(*controller), GFP_KERNEL);
+ controller = kzalloc_obj(*controller, GFP_KERNEL);
if (!controller)
goto kzalloc_fail;
diff --git a/drivers/usb/phy/phy-fsl-usb.c b/drivers/usb/phy/phy-fsl-usb.c
index e266a47c4d48..f5712dddd1fd 100644
--- a/drivers/usb/phy/phy-fsl-usb.c
+++ b/drivers/usb/phy/phy-fsl-usb.c
@@ -779,11 +779,11 @@ static int fsl_otg_conf(struct platform_device *pdev)
return 0;
/* allocate space to fsl otg device */
- fsl_otg_tc = kzalloc(sizeof(struct fsl_otg), GFP_KERNEL);
+ fsl_otg_tc = kzalloc_obj(struct fsl_otg, GFP_KERNEL);
if (!fsl_otg_tc)
return -ENOMEM;
- fsl_otg_tc->phy.otg = kzalloc(sizeof(struct usb_otg), GFP_KERNEL);
+ fsl_otg_tc->phy.otg = kzalloc_obj(struct usb_otg, GFP_KERNEL);
if (!fsl_otg_tc->phy.otg) {
kfree(fsl_otg_tc);
return -ENOMEM;
diff --git a/drivers/usb/phy/phy-fsl-usb.h b/drivers/usb/phy/phy-fsl-usb.h
index d70341ae5a92..487a11ff4391 100644
--- a/drivers/usb/phy/phy-fsl-usb.h
+++ b/drivers/usb/phy/phy-fsl-usb.h
@@ -345,7 +345,7 @@ inline struct fsl_otg_timer *otg_timer_initializer
{
struct fsl_otg_timer *timer;
- timer = kmalloc(sizeof(struct fsl_otg_timer), GFP_KERNEL);
+ timer = kmalloc_obj(struct fsl_otg_timer, GFP_KERNEL);
if (!timer)
return NULL;
timer->function = function;
diff --git a/drivers/usb/renesas_usbhs/mod_gadget.c b/drivers/usb/renesas_usbhs/mod_gadget.c
index e8e5723f5412..ca96c0164593 100644
--- a/drivers/usb/renesas_usbhs/mod_gadget.c
+++ b/drivers/usb/renesas_usbhs/mod_gadget.c
@@ -325,7 +325,7 @@ static void __usbhsg_recip_send_status(struct usbhsg_gpriv *gpriv,
}
/* alloc recip data buffer */
- buf = kmalloc(sizeof(*buf), GFP_ATOMIC);
+ buf = kmalloc_obj(*buf, GFP_ATOMIC);
if (!buf) {
usb_ep_free_request(&dcp->ep, req);
return;
@@ -661,7 +661,7 @@ static struct usb_request *usbhsg_ep_alloc_request(struct usb_ep *ep,
{
struct usbhsg_request *ureq;
- ureq = kzalloc(sizeof *ureq, gfp_flags);
+ ureq = kzalloc_obj(*ureq, gfp_flags);
if (!ureq)
return NULL;
@@ -1084,11 +1084,11 @@ int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
int i;
int ret;
- gpriv = kzalloc(sizeof(struct usbhsg_gpriv), GFP_KERNEL);
+ gpriv = kzalloc_obj(struct usbhsg_gpriv, GFP_KERNEL);
if (!gpriv)
return -ENOMEM;
- uep = kcalloc(pipe_size, sizeof(struct usbhsg_uep), GFP_KERNEL);
+ uep = kzalloc_objs(struct usbhsg_uep, pipe_size, GFP_KERNEL);
if (!uep) {
ret = -ENOMEM;
goto usbhs_mod_gadget_probe_err_gpriv;
diff --git a/drivers/usb/renesas_usbhs/mod_host.c b/drivers/usb/renesas_usbhs/mod_host.c
index ae54221011c3..f7ef3a9f82a4 100644
--- a/drivers/usb/renesas_usbhs/mod_host.c
+++ b/drivers/usb/renesas_usbhs/mod_host.c
@@ -158,7 +158,7 @@ static struct usbhsh_request *usbhsh_ureq_alloc(struct usbhsh_hpriv *hpriv,
{
struct usbhsh_request *ureq;
- ureq = kzalloc(sizeof(struct usbhsh_request), mem_flags);
+ ureq = kzalloc_obj(struct usbhsh_request, mem_flags);
if (!ureq)
return NULL;
@@ -374,7 +374,7 @@ static int usbhsh_endpoint_attach(struct usbhsh_hpriv *hpriv,
struct usb_endpoint_descriptor *desc = &ep->desc;
unsigned long flags;
- uep = kzalloc(sizeof(struct usbhsh_ep), mem_flags);
+ uep = kzalloc_obj(struct usbhsh_ep, mem_flags);
if (!uep)
return -ENOMEM;
diff --git a/drivers/usb/renesas_usbhs/pipe.c b/drivers/usb/renesas_usbhs/pipe.c
index 56fc3ff5016f..f48a22037f43 100644
--- a/drivers/usb/renesas_usbhs/pipe.c
+++ b/drivers/usb/renesas_usbhs/pipe.c
@@ -822,8 +822,7 @@ int usbhs_pipe_probe(struct usbhs_priv *priv)
return -EINVAL;
}
- info->pipe = kcalloc(pipe_size, sizeof(struct usbhs_pipe),
- GFP_KERNEL);
+ info->pipe = kzalloc_objs(struct usbhs_pipe, pipe_size, GFP_KERNEL);
if (!info->pipe)
return -ENOMEM;
diff --git a/drivers/usb/roles/class.c b/drivers/usb/roles/class.c
index 30482d4cf826..31c2c3e370dd 100644
--- a/drivers/usb/roles/class.c
+++ b/drivers/usb/roles/class.c
@@ -364,7 +364,7 @@ usb_role_switch_register(struct device *parent,
if (!desc || !desc->set)
return ERR_PTR(-EINVAL);
- sw = kzalloc(sizeof(*sw), GFP_KERNEL);
+ sw = kzalloc_obj(*sw, GFP_KERNEL);
if (!sw)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/serial/ark3116.c b/drivers/usb/serial/ark3116.c
index 800b04fe37fa..336d199e4994 100644
--- a/drivers/usb/serial/ark3116.c
+++ b/drivers/usb/serial/ark3116.c
@@ -126,7 +126,7 @@ static int ark3116_port_probe(struct usb_serial_port *port)
struct usb_serial *serial = port->serial;
struct ark3116_private *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/belkin_sa.c b/drivers/usb/serial/belkin_sa.c
index 5c41c1c82c3f..334f59c512d7 100644
--- a/drivers/usb/serial/belkin_sa.c
+++ b/drivers/usb/serial/belkin_sa.c
@@ -114,7 +114,7 @@ static int belkin_sa_port_probe(struct usb_serial_port *port)
struct usb_device *dev = port->serial->dev;
struct belkin_sa_private *priv;
- priv = kmalloc(sizeof(struct belkin_sa_private), GFP_KERNEL);
+ priv = kmalloc_obj(struct belkin_sa_private, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/ch341.c b/drivers/usb/serial/ch341.c
index 7cc36f84821f..ceb2612a9228 100644
--- a/drivers/usb/serial/ch341.c
+++ b/drivers/usb/serial/ch341.c
@@ -381,7 +381,7 @@ static int ch341_port_probe(struct usb_serial_port *port)
struct ch341_private *priv;
int r;
- priv = kzalloc(sizeof(struct ch341_private), GFP_KERNEL);
+ priv = kzalloc_obj(struct ch341_private, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/console.c b/drivers/usb/serial/console.c
index c3ea3a46ed76..4b5f56bd01e8 100644
--- a/drivers/usb/serial/console.c
+++ b/drivers/usb/serial/console.c
@@ -133,7 +133,7 @@ static int usb_console_setup(struct console *co, char *options)
* the termios structure, then later call set_termios to
* configure according to command line arguments
*/
- tty = kzalloc(sizeof(*tty), GFP_KERNEL);
+ tty = kzalloc_obj(*tty, GFP_KERNEL);
if (!tty) {
retval = -ENOMEM;
goto reset_open_count;
diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
index 36b25418b214..3c30dd095b32 100644
--- a/drivers/usb/serial/cp210x.c
+++ b/drivers/usb/serial/cp210x.c
@@ -2006,7 +2006,7 @@ static int cp210x_port_probe(struct usb_serial_port *port)
struct usb_serial *serial = port->serial;
struct cp210x_port_private *port_priv;
- port_priv = kzalloc(sizeof(*port_priv), GFP_KERNEL);
+ port_priv = kzalloc_obj(*port_priv, GFP_KERNEL);
if (!port_priv)
return -ENOMEM;
@@ -2163,7 +2163,7 @@ static int cp210x_attach(struct usb_serial *serial)
int result;
struct cp210x_serial_private *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/cyberjack.c b/drivers/usb/serial/cyberjack.c
index 76dd8e7453b5..609d3a700b70 100644
--- a/drivers/usb/serial/cyberjack.c
+++ b/drivers/usb/serial/cyberjack.c
@@ -101,7 +101,7 @@ static int cyberjack_port_probe(struct usb_serial_port *port)
struct cyberjack_private *priv;
int result;
- priv = kmalloc(sizeof(struct cyberjack_private), GFP_KERNEL);
+ priv = kmalloc_obj(struct cyberjack_private, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/cypress_m8.c b/drivers/usb/serial/cypress_m8.c
index e29569d65991..52d52a92b7ea 100644
--- a/drivers/usb/serial/cypress_m8.c
+++ b/drivers/usb/serial/cypress_m8.c
@@ -445,7 +445,7 @@ static int cypress_generic_port_probe(struct usb_serial_port *port)
return -ENODEV;
}
- priv = kzalloc(sizeof(struct cypress_private), GFP_KERNEL);
+ priv = kzalloc_obj(struct cypress_private, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/digi_acceleport.c b/drivers/usb/serial/digi_acceleport.c
index a06485965412..8a8d4dc899b0 100644
--- a/drivers/usb/serial/digi_acceleport.c
+++ b/drivers/usb/serial/digi_acceleport.c
@@ -1209,7 +1209,7 @@ static int digi_port_init(struct usb_serial_port *port, unsigned port_num)
{
struct digi_port *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
@@ -1231,7 +1231,7 @@ static int digi_startup(struct usb_serial *serial)
struct digi_serial *serial_priv;
int ret;
- serial_priv = kzalloc(sizeof(*serial_priv), GFP_KERNEL);
+ serial_priv = kzalloc_obj(*serial_priv, GFP_KERNEL);
if (!serial_priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index acb48b1c83f7..7500e1a85c88 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -2188,7 +2188,7 @@ static int ftdi_port_probe(struct usb_serial_port *port)
struct ftdi_private *priv;
int result;
- priv = kzalloc(sizeof(struct ftdi_private), GFP_KERNEL);
+ priv = kzalloc_obj(struct ftdi_private, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/garmin_gps.c b/drivers/usb/serial/garmin_gps.c
index 614de0c2f5f2..aa7561aba927 100644
--- a/drivers/usb/serial/garmin_gps.c
+++ b/drivers/usb/serial/garmin_gps.c
@@ -267,7 +267,7 @@ static int pkt_add(struct garmin_data *garmin_data_p,
/* process only packets containing data ... */
if (data_length) {
- pkt = kmalloc(struct_size(pkt, data, data_length), GFP_ATOMIC);
+ pkt = kmalloc_flex(*pkt, data, data_length, GFP_ATOMIC);
if (!pkt)
return 0;
@@ -1373,7 +1373,7 @@ static int garmin_port_probe(struct usb_serial_port *port)
int status;
struct garmin_data *garmin_data_p;
- garmin_data_p = kzalloc(sizeof(struct garmin_data), GFP_KERNEL);
+ garmin_data_p = kzalloc_obj(struct garmin_data, GFP_KERNEL);
if (!garmin_data_p)
return -ENOMEM;
diff --git a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c
index 1fffda7647f9..b036fcde63e4 100644
--- a/drivers/usb/serial/io_edgeport.c
+++ b/drivers/usb/serial/io_edgeport.c
@@ -498,7 +498,7 @@ static int get_epic_descriptor(struct edgeport_serial *ep)
ep->is_epic = 0;
- epic = kmalloc(sizeof(*epic), GFP_KERNEL);
+ epic = kmalloc_obj(*epic, GFP_KERNEL);
if (!epic)
return -ENOMEM;
@@ -2714,7 +2714,7 @@ static int edge_startup(struct usb_serial *serial)
dev = serial->dev;
/* create our private serial structure */
- edge_serial = kzalloc(sizeof(struct edgeport_serial), GFP_KERNEL);
+ edge_serial = kzalloc_obj(struct edgeport_serial, GFP_KERNEL);
if (!edge_serial)
return -ENOMEM;
@@ -2956,7 +2956,7 @@ static int edge_port_probe(struct usb_serial_port *port)
{
struct edgeport_port *edge_port;
- edge_port = kzalloc(sizeof(*edge_port), GFP_KERNEL);
+ edge_port = kzalloc_obj(*edge_port, GFP_KERNEL);
if (!edge_port)
return -ENOMEM;
diff --git a/drivers/usb/serial/io_ti.c b/drivers/usb/serial/io_ti.c
index 7d0584b2a234..fed02fdf3dcb 100644
--- a/drivers/usb/serial/io_ti.c
+++ b/drivers/usb/serial/io_ti.c
@@ -528,7 +528,7 @@ static int tx_active(struct edgeport_port *port)
u8 *lsr;
int bytes_left = 0;
- oedb = kmalloc(sizeof(*oedb), GFP_KERNEL);
+ oedb = kmalloc_obj(*oedb, GFP_KERNEL);
if (!oedb)
return -ENOMEM;
@@ -680,7 +680,7 @@ static int check_i2c_image(struct edgeport_serial *serial)
u8 *buffer;
u16 ttype;
- rom_desc = kmalloc(sizeof(*rom_desc), GFP_KERNEL);
+ rom_desc = kmalloc_obj(*rom_desc, GFP_KERNEL);
if (!rom_desc)
return -ENOMEM;
@@ -759,7 +759,7 @@ static int get_manuf_info(struct edgeport_serial *serial, u8 *buffer)
struct edge_ti_manuf_descriptor *desc;
struct device *dev = &serial->serial->dev->dev;
- rom_desc = kmalloc(sizeof(*rom_desc), GFP_KERNEL);
+ rom_desc = kmalloc_obj(*rom_desc, GFP_KERNEL);
if (!rom_desc)
return -ENOMEM;
@@ -1089,7 +1089,7 @@ static int do_download_mode(struct edgeport_serial *serial,
* Validate Hardware version number
* Read Manufacturing Descriptor from TI Based Edgeport
*/
- ti_manuf_desc = kmalloc(sizeof(*ti_manuf_desc), GFP_KERNEL);
+ ti_manuf_desc = kmalloc_obj(*ti_manuf_desc, GFP_KERNEL);
if (!ti_manuf_desc)
return -ENOMEM;
@@ -1107,7 +1107,7 @@ static int do_download_mode(struct edgeport_serial *serial,
return -EINVAL;
}
- rom_desc = kmalloc(sizeof(*rom_desc), GFP_KERNEL);
+ rom_desc = kmalloc_obj(*rom_desc, GFP_KERNEL);
if (!rom_desc) {
kfree(ti_manuf_desc);
return -ENOMEM;
@@ -1123,8 +1123,7 @@ static int do_download_mode(struct edgeport_serial *serial,
dev_dbg(dev, "%s - Found Type FIRMWARE (Type 2) record\n",
__func__);
- firmware_version = kmalloc(sizeof(*firmware_version),
- GFP_KERNEL);
+ firmware_version = kmalloc_obj(*firmware_version, GFP_KERNEL);
if (!firmware_version) {
kfree(rom_desc);
kfree(ti_manuf_desc);
@@ -1419,7 +1418,7 @@ static int do_boot_mode(struct edgeport_serial *serial,
* Validate Hardware version number
* Read Manufacturing Descriptor from TI Based Edgeport
*/
- ti_manuf_desc = kmalloc(sizeof(*ti_manuf_desc), GFP_KERNEL);
+ ti_manuf_desc = kmalloc_obj(*ti_manuf_desc, GFP_KERNEL);
if (!ti_manuf_desc)
return -ENOMEM;
@@ -2219,7 +2218,7 @@ static void change_port_settings(struct tty_struct *tty,
unsigned cflag;
int status;
- config = kmalloc (sizeof (*config), GFP_KERNEL);
+ config = kmalloc_obj(*config, GFP_KERNEL);
if (!config) {
tty->termios = *old_termios;
return;
@@ -2458,7 +2457,7 @@ static void edge_heartbeat_work(struct work_struct *work)
serial = container_of(work, struct edgeport_serial,
heartbeat_work.work);
- rom_desc = kmalloc(sizeof(*rom_desc), GFP_KERNEL);
+ rom_desc = kmalloc_obj(*rom_desc, GFP_KERNEL);
/* Descriptor address request is enough to reset the firmware timer */
if (!rom_desc || !get_descriptor_addr(serial, I2C_DESC_TYPE_ION,
@@ -2497,7 +2496,7 @@ static int edge_startup(struct usb_serial *serial)
u16 product_id;
/* create our private serial structure */
- edge_serial = kzalloc(sizeof(struct edgeport_serial), GFP_KERNEL);
+ edge_serial = kzalloc_obj(struct edgeport_serial, GFP_KERNEL);
if (!edge_serial)
return -ENOMEM;
@@ -2551,7 +2550,7 @@ static int edge_port_probe(struct usb_serial_port *port)
struct edgeport_port *edge_port;
int ret;
- edge_port = kzalloc(sizeof(*edge_port), GFP_KERNEL);
+ edge_port = kzalloc_obj(*edge_port, GFP_KERNEL);
if (!edge_port)
return -ENOMEM;
diff --git a/drivers/usb/serial/ipw.c b/drivers/usb/serial/ipw.c
index b1e672c2f423..ec2b061c0e84 100644
--- a/drivers/usb/serial/ipw.c
+++ b/drivers/usb/serial/ipw.c
@@ -198,7 +198,7 @@ static int ipw_attach(struct usb_serial *serial)
{
struct usb_wwan_intf_private *data;
- data = kzalloc(sizeof(struct usb_wwan_intf_private), GFP_KERNEL);
+ data = kzalloc_obj(struct usb_wwan_intf_private, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/usb/serial/ir-usb.c b/drivers/usb/serial/ir-usb.c
index a106b71e698f..4eeec9c06a11 100644
--- a/drivers/usb/serial/ir-usb.c
+++ b/drivers/usb/serial/ir-usb.c
@@ -126,7 +126,7 @@ irda_usb_find_class_desc(struct usb_serial *serial, unsigned int ifnum)
struct usb_irda_cs_descriptor *desc;
int ret;
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
return NULL;
diff --git a/drivers/usb/serial/iuu_phoenix.c b/drivers/usb/serial/iuu_phoenix.c
index c21dcc9b6f05..6feb886991d6 100644
--- a/drivers/usb/serial/iuu_phoenix.c
+++ b/drivers/usb/serial/iuu_phoenix.c
@@ -67,7 +67,7 @@ static int iuu_port_probe(struct usb_serial_port *port)
struct iuu_private *priv;
int ret;
- priv = kzalloc(sizeof(struct iuu_private), GFP_KERNEL);
+ priv = kzalloc_obj(struct iuu_private, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/keyspan.c b/drivers/usb/serial/keyspan.c
index 9129e0282c24..ba3f80d21e92 100644
--- a/drivers/usb/serial/keyspan.c
+++ b/drivers/usb/serial/keyspan.c
@@ -2789,7 +2789,7 @@ static int keyspan_startup(struct usb_serial *serial)
}
/* Setup private data for serial driver */
- s_priv = kzalloc(sizeof(struct keyspan_serial_private), GFP_KERNEL);
+ s_priv = kzalloc_obj(struct keyspan_serial_private, GFP_KERNEL);
if (!s_priv)
return -ENOMEM;
@@ -2886,7 +2886,7 @@ static int keyspan_port_probe(struct usb_serial_port *port)
s_priv = usb_get_serial_data(serial);
d_details = s_priv->device_details;
- p_priv = kzalloc(sizeof(*p_priv), GFP_KERNEL);
+ p_priv = kzalloc_obj(*p_priv, GFP_KERNEL);
if (!p_priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/keyspan_pda.c b/drivers/usb/serial/keyspan_pda.c
index e98b479593d3..8a0f993ec7c6 100644
--- a/drivers/usb/serial/keyspan_pda.c
+++ b/drivers/usb/serial/keyspan_pda.c
@@ -654,7 +654,7 @@ static int keyspan_pda_port_probe(struct usb_serial_port *port)
struct keyspan_pda_private *priv;
- priv = kmalloc(sizeof(struct keyspan_pda_private), GFP_KERNEL);
+ priv = kmalloc_obj(struct keyspan_pda_private, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/kl5kusb105.c b/drivers/usb/serial/kl5kusb105.c
index d36155b6d2bf..d2960271a1f7 100644
--- a/drivers/usb/serial/kl5kusb105.c
+++ b/drivers/usb/serial/kl5kusb105.c
@@ -189,7 +189,7 @@ static int klsi_105_port_probe(struct usb_serial_port *port)
{
struct klsi_105_private *priv;
- priv = kmalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kmalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
@@ -378,7 +378,7 @@ static void klsi_105_set_termios(struct tty_struct *tty,
unsigned long flags;
speed_t baud;
- cfg = kmalloc(sizeof(*cfg), GFP_KERNEL);
+ cfg = kmalloc_obj(*cfg, GFP_KERNEL);
if (!cfg)
return;
diff --git a/drivers/usb/serial/kobil_sct.c b/drivers/usb/serial/kobil_sct.c
index 3a1343d88386..3f9311b3bdf9 100644
--- a/drivers/usb/serial/kobil_sct.c
+++ b/drivers/usb/serial/kobil_sct.c
@@ -130,7 +130,7 @@ static int kobil_port_probe(struct usb_serial_port *port)
struct usb_serial *serial = port->serial;
struct kobil_private *priv;
- priv = kmalloc(sizeof(struct kobil_private), GFP_KERNEL);
+ priv = kmalloc_obj(struct kobil_private, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/mct_u232.c b/drivers/usb/serial/mct_u232.c
index 2bce8cc03aca..2bf86c3cc7ff 100644
--- a/drivers/usb/serial/mct_u232.c
+++ b/drivers/usb/serial/mct_u232.c
@@ -385,7 +385,7 @@ static int mct_u232_port_probe(struct usb_serial_port *port)
return -ENODEV;
}
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/metro-usb.c b/drivers/usb/serial/metro-usb.c
index 028878292901..7e7fb49fc3d5 100644
--- a/drivers/usb/serial/metro-usb.c
+++ b/drivers/usb/serial/metro-usb.c
@@ -245,7 +245,7 @@ static int metrousb_port_probe(struct usb_serial_port *port)
{
struct metrousb_private *metro_priv;
- metro_priv = kzalloc(sizeof(*metro_priv), GFP_KERNEL);
+ metro_priv = kzalloc_obj(*metro_priv, GFP_KERNEL);
if (!metro_priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/mos7720.c b/drivers/usb/serial/mos7720.c
index e59bfa7c8030..1495d82bf838 100644
--- a/drivers/usb/serial/mos7720.c
+++ b/drivers/usb/serial/mos7720.c
@@ -555,7 +555,7 @@ static int mos7715_parport_init(struct usb_serial *serial)
struct mos7715_parport *mos_parport;
/* allocate and initialize parallel port control struct */
- mos_parport = kzalloc(sizeof(struct mos7715_parport), GFP_KERNEL);
+ mos_parport = kzalloc_obj(struct mos7715_parport, GFP_KERNEL);
if (!mos_parport)
return -ENOMEM;
@@ -1703,7 +1703,7 @@ static int mos7720_port_probe(struct usb_serial_port *port)
{
struct moschip_port *mos7720_port;
- mos7720_port = kzalloc(sizeof(*mos7720_port), GFP_KERNEL);
+ mos7720_port = kzalloc_obj(*mos7720_port, GFP_KERNEL);
if (!mos7720_port)
return -ENOMEM;
diff --git a/drivers/usb/serial/mos7840.c b/drivers/usb/serial/mos7840.c
index 9e9aca271c0a..065ac3777906 100644
--- a/drivers/usb/serial/mos7840.c
+++ b/drivers/usb/serial/mos7840.c
@@ -1532,7 +1532,7 @@ static int mos7840_port_probe(struct usb_serial_port *port)
pnum = port->port_number;
dev_dbg(&port->dev, "mos7840_startup: configuring port %d\n", pnum);
- mos7840_port = kzalloc(sizeof(struct moschip_port), GFP_KERNEL);
+ mos7840_port = kzalloc_obj(struct moschip_port, GFP_KERNEL);
if (!mos7840_port)
return -ENOMEM;
@@ -1677,8 +1677,8 @@ static int mos7840_port_probe(struct usb_serial_port *port)
/* Initialize LED timers */
if (mos7840_port->has_led) {
mos7840_port->led_urb = usb_alloc_urb(0, GFP_KERNEL);
- mos7840_port->led_dr = kmalloc(sizeof(*mos7840_port->led_dr),
- GFP_KERNEL);
+ mos7840_port->led_dr = kmalloc_obj(*mos7840_port->led_dr,
+ GFP_KERNEL);
if (!mos7840_port->led_urb || !mos7840_port->led_dr) {
status = -ENOMEM;
goto error;
diff --git a/drivers/usb/serial/omninet.c b/drivers/usb/serial/omninet.c
index 397ebd5a3e74..05f5ab767a53 100644
--- a/drivers/usb/serial/omninet.c
+++ b/drivers/usb/serial/omninet.c
@@ -113,7 +113,7 @@ static int omninet_port_probe(struct usb_serial_port *port)
{
struct omninet_data *od;
- od = kzalloc(sizeof(*od), GFP_KERNEL);
+ od = kzalloc_obj(*od, GFP_KERNEL);
if (!od)
return -ENOMEM;
diff --git a/drivers/usb/serial/opticon.c b/drivers/usb/serial/opticon.c
index 1ee84ccc4bbd..0ced33c28545 100644
--- a/drivers/usb/serial/opticon.c
+++ b/drivers/usb/serial/opticon.c
@@ -220,7 +220,7 @@ static int opticon_write(struct tty_struct *tty, struct usb_serial_port *port,
/* The connected devices do not have a bulk write endpoint,
* to transmit data to de barcode device the control endpoint is used */
- dr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_ATOMIC);
+ dr = kmalloc_obj(struct usb_ctrlrequest, GFP_ATOMIC);
if (!dr)
goto error_no_dr;
@@ -354,7 +354,7 @@ static int opticon_port_probe(struct usb_serial_port *port)
{
struct opticon_private *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index d4505a426446..261d852aaccf 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -2606,7 +2606,7 @@ static int option_attach(struct usb_serial *serial)
struct usb_wwan_intf_private *data;
unsigned long device_flags;
- data = kzalloc(sizeof(struct usb_wwan_intf_private), GFP_KERNEL);
+ data = kzalloc_obj(struct usb_wwan_intf_private, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/usb/serial/oti6858.c b/drivers/usb/serial/oti6858.c
index bd206cb9cc08..70ddda6a300e 100644
--- a/drivers/usb/serial/oti6858.c
+++ b/drivers/usb/serial/oti6858.c
@@ -328,7 +328,7 @@ static int oti6858_port_probe(struct usb_serial_port *port)
{
struct oti6858_private *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index 22579d0d8ab8..75fd24019cba 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -503,7 +503,7 @@ static int pl2303_startup(struct usb_serial *serial)
type = ret;
dev_dbg(&serial->interface->dev, "device type: %s\n", pl2303_type_data[type].name);
- spriv = kzalloc(sizeof(*spriv), GFP_KERNEL);
+ spriv = kzalloc_obj(*spriv, GFP_KERNEL);
if (!spriv)
return -ENOMEM;
@@ -555,7 +555,7 @@ static int pl2303_port_probe(struct usb_serial_port *port)
{
struct pl2303_private *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c
index 13c664317a05..bbc3e33a2d81 100644
--- a/drivers/usb/serial/qcserial.c
+++ b/drivers/usb/serial/qcserial.c
@@ -431,7 +431,7 @@ static int qc_attach(struct usb_serial *serial)
struct usb_wwan_intf_private *data;
bool sendsetup;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/usb/serial/quatech2.c b/drivers/usb/serial/quatech2.c
index 72fe83a6c978..606beb6e12aa 100644
--- a/drivers/usb/serial/quatech2.c
+++ b/drivers/usb/serial/quatech2.c
@@ -626,7 +626,7 @@ static int qt2_attach(struct usb_serial *serial)
return status;
}
- serial_priv = kzalloc(sizeof(*serial_priv), GFP_KERNEL);
+ serial_priv = kzalloc_obj(*serial_priv, GFP_KERNEL);
if (!serial_priv)
return -ENOMEM;
@@ -657,7 +657,7 @@ static int qt2_port_probe(struct usb_serial_port *port)
struct qt2_port_private *port_priv;
u8 bEndpointAddress;
- port_priv = kzalloc(sizeof(*port_priv), GFP_KERNEL);
+ port_priv = kzalloc_obj(*port_priv, GFP_KERNEL);
if (!port_priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
index 741e68e46139..3b6a025cbeb8 100644
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
@@ -828,7 +828,7 @@ static int sierra_startup(struct usb_serial *serial)
{
struct sierra_intf_private *intfdata;
- intfdata = kzalloc(sizeof(*intfdata), GFP_KERNEL);
+ intfdata = kzalloc_obj(*intfdata, GFP_KERNEL);
if (!intfdata)
return -ENOMEM;
@@ -861,7 +861,7 @@ static int sierra_port_probe(struct usb_serial_port *port)
const struct sierra_iface_list *himemory_list;
u8 ifnum;
- portdata = kzalloc(sizeof(*portdata), GFP_KERNEL);
+ portdata = kzalloc_obj(*portdata, GFP_KERNEL);
if (!portdata)
return -ENOMEM;
diff --git a/drivers/usb/serial/spcp8x5.c b/drivers/usb/serial/spcp8x5.c
index 11077beb7232..df1d1eed1236 100644
--- a/drivers/usb/serial/spcp8x5.c
+++ b/drivers/usb/serial/spcp8x5.c
@@ -145,7 +145,7 @@ static int spcp8x5_port_probe(struct usb_serial_port *port)
const struct usb_device_id *id = usb_get_serial_data(port->serial);
struct spcp8x5_private *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/ssu100.c b/drivers/usb/serial/ssu100.c
index df21009bdf42..f73321fd5dfd 100644
--- a/drivers/usb/serial/ssu100.c
+++ b/drivers/usb/serial/ssu100.c
@@ -326,7 +326,7 @@ static int ssu100_port_probe(struct usb_serial_port *port)
{
struct ssu100_port_private *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/symbolserial.c b/drivers/usb/serial/symbolserial.c
index 58962bcbf9ba..46158cfc546a 100644
--- a/drivers/usb/serial/symbolserial.c
+++ b/drivers/usb/serial/symbolserial.c
@@ -149,7 +149,7 @@ static int symbol_port_probe(struct usb_serial_port *port)
{
struct symbol_private *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/usb/serial/ti_usb_3410_5052.c b/drivers/usb/serial/ti_usb_3410_5052.c
index d671189ecee2..cb6b0c018809 100644
--- a/drivers/usb/serial/ti_usb_3410_5052.c
+++ b/drivers/usb/serial/ti_usb_3410_5052.c
@@ -519,7 +519,7 @@ static int ti_startup(struct usb_serial *serial)
dev->descriptor.bNumConfigurations,
dev->actconfig->desc.bConfigurationValue);
- tdev = kzalloc(sizeof(struct ti_device), GFP_KERNEL);
+ tdev = kzalloc_obj(struct ti_device, GFP_KERNEL);
if (!tdev)
return -ENOMEM;
@@ -598,7 +598,7 @@ static int ti_port_probe(struct usb_serial_port *port)
{
struct ti_port *tport;
- tport = kzalloc(sizeof(*tport), GFP_KERNEL);
+ tport = kzalloc_obj(*tport, GFP_KERNEL);
if (!tport)
return -ENOMEM;
@@ -897,7 +897,7 @@ static void ti_set_termios(struct tty_struct *tty,
u16 wbaudrate;
u16 wflags = 0;
- config = kmalloc(sizeof(*config), GFP_KERNEL);
+ config = kmalloc_obj(*config, GFP_KERNEL);
if (!config)
return;
diff --git a/drivers/usb/serial/upd78f0730.c b/drivers/usb/serial/upd78f0730.c
index 15a17bf111f1..ecf0ecfceccb 100644
--- a/drivers/usb/serial/upd78f0730.c
+++ b/drivers/usb/serial/upd78f0730.c
@@ -161,7 +161,7 @@ static int upd78f0730_port_probe(struct usb_serial_port *port)
{
struct upd78f0730_port_private *private;
- private = kzalloc(sizeof(*private), GFP_KERNEL);
+ private = kzalloc_obj(*private, GFP_KERNEL);
if (!private)
return -ENOMEM;
diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
index c78ff40b1e5f..26c40f8108e4 100644
--- a/drivers/usb/serial/usb-serial.c
+++ b/drivers/usb/serial/usb-serial.c
@@ -688,7 +688,7 @@ static struct usb_serial *create_serial(struct usb_device *dev,
{
struct usb_serial *serial;
- serial = kzalloc(sizeof(*serial), GFP_KERNEL);
+ serial = kzalloc_obj(*serial, GFP_KERNEL);
if (!serial)
return NULL;
serial->dev = usb_get_dev(dev);
@@ -1005,7 +1005,7 @@ static int usb_serial_probe(struct usb_interface *interface,
}
/* descriptor matches, let's find the endpoints needed */
- epds = kzalloc(sizeof(*epds), GFP_KERNEL);
+ epds = kzalloc_obj(*epds, GFP_KERNEL);
if (!epds) {
retval = -ENOMEM;
goto err_release_sibling;
@@ -1059,7 +1059,7 @@ static int usb_serial_probe(struct usb_interface *interface,
dev_dbg(ddev, "setting up %d port structure(s)\n", max_endpoints);
for (i = 0; i < max_endpoints; ++i) {
- port = kzalloc(sizeof(struct usb_serial_port), GFP_KERNEL);
+ port = kzalloc_obj(struct usb_serial_port, GFP_KERNEL);
if (!port) {
retval = -ENOMEM;
goto err_free_epds;
@@ -1482,7 +1482,7 @@ int __usb_serial_register_drivers(struct usb_serial_driver *const serial_drivers
* Suspend/resume support is implemented in the usb-serial core,
* so fill in the PM-related fields in udriver.
*/
- udriver = kzalloc(sizeof(*udriver), GFP_KERNEL);
+ udriver = kzalloc_obj(*udriver, GFP_KERNEL);
if (!udriver)
return -ENOMEM;
diff --git a/drivers/usb/serial/usb_wwan.c b/drivers/usb/serial/usb_wwan.c
index 0017f6e969e1..ea529a15c1f6 100644
--- a/drivers/usb/serial/usb_wwan.c
+++ b/drivers/usb/serial/usb_wwan.c
@@ -449,7 +449,7 @@ int usb_wwan_port_probe(struct usb_serial_port *port)
if (!port->bulk_in_size || !port->bulk_out_size)
return -ENODEV;
- portdata = kzalloc(sizeof(*portdata), GFP_KERNEL);
+ portdata = kzalloc_obj(*portdata, GFP_KERNEL);
if (!portdata)
return -ENOMEM;
diff --git a/drivers/usb/serial/whiteheat.c b/drivers/usb/serial/whiteheat.c
index 009faeb2ef55..c530e7a85cb4 100644
--- a/drivers/usb/serial/whiteheat.c
+++ b/drivers/usb/serial/whiteheat.c
@@ -278,8 +278,7 @@ static int whiteheat_attach(struct usb_serial *serial)
serial->type->description,
hw_info->sw_major_rev, hw_info->sw_minor_rev);
- command_info = kmalloc(sizeof(struct whiteheat_command_private),
- GFP_KERNEL);
+ command_info = kmalloc_obj(struct whiteheat_command_private, GFP_KERNEL);
if (!command_info)
goto no_command_private;
@@ -330,7 +329,7 @@ static int whiteheat_port_probe(struct usb_serial_port *port)
{
struct whiteheat_private *info;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/usb/serial/xr_serial.c b/drivers/usb/serial/xr_serial.c
index 4186e791b384..91c0a8d0097a 100644
--- a/drivers/usb/serial/xr_serial.c
+++ b/drivers/usb/serial/xr_serial.c
@@ -756,7 +756,7 @@ static void xr_cdc_set_line_coding(struct tty_struct *tty,
struct usb_cdc_line_coding *lc;
int ret;
- lc = kzalloc(sizeof(*lc), GFP_KERNEL);
+ lc = kzalloc_obj(*lc, GFP_KERNEL);
if (!lc)
return;
@@ -1020,7 +1020,7 @@ static int xr_port_probe(struct usb_serial_port *port)
type_id = (int)(unsigned long)usb_get_serial_data(port->serial);
type = &xr_types[type_id];
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/usb/storage/alauda.c b/drivers/usb/storage/alauda.c
index e01f3a42bde4..691fe47009cf 100644
--- a/drivers/usb/storage/alauda.c
+++ b/drivers/usb/storage/alauda.c
@@ -1113,7 +1113,7 @@ static int init_alauda(struct us_data *us)
struct usb_host_interface *altsetting = us->pusb_intf->cur_altsetting;
nand_init_ecc();
- us->extra = kzalloc(sizeof(struct alauda_info), GFP_NOIO);
+ us->extra = kzalloc_obj(struct alauda_info, GFP_NOIO);
if (!us->extra)
return -ENOMEM;
diff --git a/drivers/usb/storage/datafab.c b/drivers/usb/storage/datafab.c
index 9ba369483c9b..0ded8ef72efa 100644
--- a/drivers/usb/storage/datafab.c
+++ b/drivers/usb/storage/datafab.c
@@ -555,7 +555,7 @@ static int datafab_transport(struct scsi_cmnd *srb, struct us_data *us)
};
if (!us->extra) {
- us->extra = kzalloc(sizeof(struct datafab_info), GFP_NOIO);
+ us->extra = kzalloc_obj(struct datafab_info, GFP_NOIO);
if (!us->extra)
return USB_STOR_TRANSPORT_ERROR;
diff --git a/drivers/usb/storage/ene_ub6250.c b/drivers/usb/storage/ene_ub6250.c
index ce91fb105975..5a5f35213c1d 100644
--- a/drivers/usb/storage/ene_ub6250.c
+++ b/drivers/usb/storage/ene_ub6250.c
@@ -1119,9 +1119,9 @@ static int ms_lib_alloc_writebuf(struct us_data *us)
info->MS_Lib.blkpag = kmalloc_array(info->MS_Lib.PagesPerBlock,
info->MS_Lib.BytesPerSector,
GFP_KERNEL);
- info->MS_Lib.blkext = kmalloc_array(info->MS_Lib.PagesPerBlock,
- sizeof(struct ms_lib_type_extdat),
- GFP_KERNEL);
+ info->MS_Lib.blkext = kmalloc_objs(struct ms_lib_type_extdat,
+ info->MS_Lib.PagesPerBlock,
+ GFP_KERNEL);
if ((info->MS_Lib.blkpag == NULL) || (info->MS_Lib.blkext == NULL)) {
ms_lib_free_writebuf(us);
@@ -2336,7 +2336,7 @@ static int ene_ub6250_probe(struct usb_interface *intf,
return result;
/* FIXME: where should the code alloc extra buf ? */
- us->extra = kzalloc(sizeof(struct ene_ub6250_info), GFP_KERNEL);
+ us->extra = kzalloc_obj(struct ene_ub6250_info, GFP_KERNEL);
if (!us->extra)
return -ENOMEM;
us->extra_destructor = ene_ub6250_info_destructor;
diff --git a/drivers/usb/storage/isd200.c b/drivers/usb/storage/isd200.c
index a1669c35bad5..92113848913d 100644
--- a/drivers/usb/storage/isd200.c
+++ b/drivers/usb/storage/isd200.c
@@ -1463,7 +1463,7 @@ static int isd200_init_info(struct us_data *us)
{
struct isd200_info *info;
- info = kzalloc(sizeof(struct isd200_info), GFP_KERNEL);
+ info = kzalloc_obj(struct isd200_info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/drivers/usb/storage/jumpshot.c b/drivers/usb/storage/jumpshot.c
index 089c6f8ac85f..a9c48091491e 100644
--- a/drivers/usb/storage/jumpshot.c
+++ b/drivers/usb/storage/jumpshot.c
@@ -482,7 +482,7 @@ static int jumpshot_transport(struct scsi_cmnd *srb, struct us_data *us)
};
if (!us->extra) {
- us->extra = kzalloc(sizeof(struct jumpshot_info), GFP_NOIO);
+ us->extra = kzalloc_obj(struct jumpshot_info, GFP_NOIO);
if (!us->extra)
return USB_STOR_TRANSPORT_ERROR;
diff --git a/drivers/usb/storage/karma.c b/drivers/usb/storage/karma.c
index 341d6839548a..5f199c21bb0c 100644
--- a/drivers/usb/storage/karma.c
+++ b/drivers/usb/storage/karma.c
@@ -174,7 +174,7 @@ static void rio_karma_destructor(void *extra)
static int rio_karma_init(struct us_data *us)
{
- struct karma_data *data = kzalloc(sizeof(struct karma_data), GFP_NOIO);
+ struct karma_data *data = kzalloc_obj(struct karma_data, GFP_NOIO);
if (!data)
return -ENOMEM;
diff --git a/drivers/usb/storage/onetouch.c b/drivers/usb/storage/onetouch.c
index 5a8a1ffda0ec..083423606ad9 100644
--- a/drivers/usb/storage/onetouch.c
+++ b/drivers/usb/storage/onetouch.c
@@ -183,7 +183,7 @@ static int onetouch_connect_input(struct us_data *ss)
maxp = usb_maxpacket(udev, pipe);
maxp = min(maxp, ONETOUCH_PKT_LEN);
- onetouch = kzalloc(sizeof(struct usb_onetouch), GFP_KERNEL);
+ onetouch = kzalloc_obj(struct usb_onetouch, GFP_KERNEL);
input_dev = input_allocate_device();
if (!onetouch || !input_dev)
goto fail1;
diff --git a/drivers/usb/storage/realtek_cr.c b/drivers/usb/storage/realtek_cr.c
index 3cc243956fd4..12eb1ab224cd 100644
--- a/drivers/usb/storage/realtek_cr.c
+++ b/drivers/usb/storage/realtek_cr.c
@@ -976,7 +976,7 @@ static int init_realtek_cr(struct us_data *us)
struct rts51x_chip *chip;
int size, i, retval;
- chip = kzalloc(sizeof(struct rts51x_chip), GFP_KERNEL);
+ chip = kzalloc_obj(struct rts51x_chip, GFP_KERNEL);
if (!chip)
return -ENOMEM;
diff --git a/drivers/usb/storage/sddr09.c b/drivers/usb/storage/sddr09.c
index e66b920e99e2..3d45e1b54c66 100644
--- a/drivers/usb/storage/sddr09.c
+++ b/drivers/usb/storage/sddr09.c
@@ -1232,8 +1232,8 @@ sddr09_read_map(struct us_data *us) {
kfree(info->lba_to_pba);
kfree(info->pba_to_lba);
- info->lba_to_pba = kmalloc_array(numblocks, sizeof(int), GFP_NOIO);
- info->pba_to_lba = kmalloc_array(numblocks, sizeof(int), GFP_NOIO);
+ info->lba_to_pba = kmalloc_objs(int, numblocks, GFP_NOIO);
+ info->pba_to_lba = kmalloc_objs(int, numblocks, GFP_NOIO);
if (info->lba_to_pba == NULL || info->pba_to_lba == NULL) {
printk(KERN_WARNING "sddr09_read_map: out of memory\n");
@@ -1428,7 +1428,7 @@ sddr09_common_init(struct us_data *us) {
return -EINVAL;
}
- us->extra = kzalloc(sizeof(struct sddr09_card_info), GFP_NOIO);
+ us->extra = kzalloc_obj(struct sddr09_card_info, GFP_NOIO);
if (!us->extra)
return -ENOMEM;
us->extra_destructor = sddr09_card_info_destructor;
diff --git a/drivers/usb/storage/sddr55.c b/drivers/usb/storage/sddr55.c
index 9d813727e65f..e05e824cd4d1 100644
--- a/drivers/usb/storage/sddr55.c
+++ b/drivers/usb/storage/sddr55.c
@@ -691,8 +691,8 @@ static int sddr55_read_map(struct us_data *us) {
kfree(info->lba_to_pba);
kfree(info->pba_to_lba);
- info->lba_to_pba = kmalloc_array(numblocks, sizeof(int), GFP_NOIO);
- info->pba_to_lba = kmalloc_array(numblocks, sizeof(int), GFP_NOIO);
+ info->lba_to_pba = kmalloc_objs(int, numblocks, GFP_NOIO);
+ info->pba_to_lba = kmalloc_objs(int, numblocks, GFP_NOIO);
if (info->lba_to_pba == NULL || info->pba_to_lba == NULL) {
kfree(info->lba_to_pba);
@@ -799,8 +799,7 @@ static int sddr55_transport(struct scsi_cmnd *srb, struct us_data *us)
struct sddr55_card_info *info;
if (!us->extra) {
- us->extra = kzalloc(
- sizeof(struct sddr55_card_info), GFP_NOIO);
+ us->extra = kzalloc_obj(struct sddr55_card_info, GFP_NOIO);
if (!us->extra)
return USB_STOR_TRANSPORT_ERROR;
us->extra_destructor = sddr55_card_info_destructor;
diff --git a/drivers/usb/storage/shuttle_usbat.c b/drivers/usb/storage/shuttle_usbat.c
index 27faa0ead11d..7e5424268c73 100644
--- a/drivers/usb/storage/shuttle_usbat.c
+++ b/drivers/usb/storage/shuttle_usbat.c
@@ -1454,7 +1454,7 @@ static int init_usbat(struct us_data *us, int devicetype)
unsigned char subcountL = USBAT_ATA_LBA_ME;
unsigned char *status = us->iobuf;
- us->extra = kzalloc(sizeof(struct usbat_info), GFP_NOIO);
+ us->extra = kzalloc_obj(struct usbat_info, GFP_NOIO);
if (!us->extra)
return -ENOMEM;
diff --git a/drivers/usb/storage/sierra_ms.c b/drivers/usb/storage/sierra_ms.c
index 177fa6cd143a..357e5d29da0c 100644
--- a/drivers/usb/storage/sierra_ms.c
+++ b/drivers/usb/storage/sierra_ms.c
@@ -100,7 +100,7 @@ static ssize_t truinst_show(struct device *dev, struct device_attribute *attr,
if (swi_tru_install == TRU_FORCE_MS) {
result = sysfs_emit(buf, "Forced Mass Storage\n");
} else {
- swocInfo = kmalloc(sizeof(struct swoc_info), GFP_KERNEL);
+ swocInfo = kmalloc_obj(struct swoc_info, GFP_KERNEL);
if (!swocInfo) {
sysfs_emit(buf, "Error\n");
return -ENOMEM;
@@ -149,8 +149,7 @@ int sierra_ms_init(struct us_data *us)
else {
usb_stor_dbg(us, "SWIMS: Normal SWoC Logic\n");
- swocInfo = kmalloc(sizeof(struct swoc_info),
- GFP_KERNEL);
+ swocInfo = kmalloc_obj(struct swoc_info, GFP_KERNEL);
if (!swocInfo)
return -ENOMEM;
diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
index ac3c0b919fdd..0a9902d2b118 100644
--- a/drivers/usb/storage/uas.c
+++ b/drivers/usb/storage/uas.c
@@ -480,7 +480,7 @@ static struct urb *uas_alloc_sense_urb(struct uas_dev_info *devinfo, gfp_t gfp,
if (!urb)
goto out;
- iu = kzalloc(sizeof(*iu), gfp);
+ iu = kzalloc_obj(*iu, gfp);
if (!iu)
goto free;
diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
index 152ee3376550..0d24d426a176 100644
--- a/drivers/usb/storage/usb.c
+++ b/drivers/usb/storage/usb.c
@@ -537,7 +537,7 @@ static int associate_dev(struct us_data *us, struct usb_interface *intf)
usb_set_intfdata(intf, us);
/* Allocate the control/setup and DMA-mapped buffers */
- us->cr = kmalloc(sizeof(*us->cr), GFP_KERNEL);
+ us->cr = kmalloc_obj(*us->cr, GFP_KERNEL);
if (!us->cr)
return -ENOMEM;
diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c
index dbba53f02497..19f793ac6389 100644
--- a/drivers/usb/typec/class.c
+++ b/drivers/usb/typec/class.c
@@ -646,7 +646,7 @@ typec_register_altmode(struct device *parent,
struct altmode *alt;
int ret;
- alt = kzalloc(sizeof(*alt), GFP_KERNEL);
+ alt = kzalloc_obj(*alt, GFP_KERNEL);
if (!alt) {
altmode_id_remove(parent, id);
return ERR_PTR(-ENOMEM);
@@ -1113,7 +1113,7 @@ struct typec_partner *typec_register_partner(struct typec_port *port,
struct typec_partner *partner;
int ret;
- partner = kzalloc(sizeof(*partner), GFP_KERNEL);
+ partner = kzalloc_obj(*partner, GFP_KERNEL);
if (!partner)
return ERR_PTR(-ENOMEM);
@@ -1313,7 +1313,7 @@ struct typec_plug *typec_register_plug(struct typec_cable *cable,
char name[8];
int ret;
- plug = kzalloc(sizeof(*plug), GFP_KERNEL);
+ plug = kzalloc_obj(*plug, GFP_KERNEL);
if (!plug)
return ERR_PTR(-ENOMEM);
@@ -1466,7 +1466,7 @@ struct typec_cable *typec_register_cable(struct typec_port *port,
struct typec_cable *cable;
int ret;
- cable = kzalloc(sizeof(*cable), GFP_KERNEL);
+ cable = kzalloc_obj(*cable, GFP_KERNEL);
if (!cable)
return ERR_PTR(-ENOMEM);
@@ -2703,7 +2703,7 @@ struct typec_port *typec_register_port(struct device *parent,
int ret;
int id;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/typec/mode_selection.c b/drivers/usb/typec/mode_selection.c
index a95b31e21b52..56c6eced5666 100644
--- a/drivers/usb/typec/mode_selection.c
+++ b/drivers/usb/typec/mode_selection.c
@@ -216,7 +216,7 @@ static int altmode_add_to_list(struct device *dev, void *data)
struct mode_state *ms;
if (pdev && altmode->ops && altmode->ops->activate) {
- ms = kzalloc(sizeof(*ms), GFP_KERNEL);
+ ms = kzalloc_obj(*ms, GFP_KERNEL);
if (!ms)
return -ENOMEM;
ms->svid = pdev->svid;
@@ -240,7 +240,7 @@ int typec_mode_selection_start(struct typec_partner *partner,
if (partner->sel)
return -EALREADY;
- sel = kzalloc(sizeof(*sel), GFP_KERNEL);
+ sel = kzalloc_obj(*sel, GFP_KERNEL);
if (!sel)
return -ENOMEM;
diff --git a/drivers/usb/typec/mux.c b/drivers/usb/typec/mux.c
index 182c902c42f6..e09de0d3f32f 100644
--- a/drivers/usb/typec/mux.c
+++ b/drivers/usb/typec/mux.c
@@ -76,7 +76,7 @@ struct typec_switch *fwnode_typec_switch_get(struct fwnode_handle *fwnode)
int err;
int i;
- sw = kzalloc(sizeof(*sw), GFP_KERNEL);
+ sw = kzalloc_obj(*sw, GFP_KERNEL);
if (!sw)
return ERR_PTR(-ENOMEM);
@@ -171,7 +171,7 @@ typec_switch_register(struct device *parent,
if (!desc || !desc->set)
return ERR_PTR(-EINVAL);
- sw_dev = kzalloc(sizeof(*sw_dev), GFP_KERNEL);
+ sw_dev = kzalloc_obj(*sw_dev, GFP_KERNEL);
if (!sw_dev)
return ERR_PTR(-ENOMEM);
@@ -301,7 +301,7 @@ struct typec_mux *fwnode_typec_mux_get(struct fwnode_handle *fwnode)
int err;
int i;
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ mux = kzalloc_obj(*mux, GFP_KERNEL);
if (!mux)
return ERR_PTR(-ENOMEM);
@@ -415,7 +415,7 @@ typec_mux_register(struct device *parent, const struct typec_mux_desc *desc)
if (!desc || !desc->set)
return ERR_PTR(-EINVAL);
- mux_dev = kzalloc(sizeof(*mux_dev), GFP_KERNEL);
+ mux_dev = kzalloc_obj(*mux_dev, GFP_KERNEL);
if (!mux_dev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/typec/pd.c b/drivers/usb/typec/pd.c
index 67f20b5ffdf4..e3337ff98ab2 100644
--- a/drivers/usb/typec/pd.c
+++ b/drivers/usb/typec/pd.c
@@ -480,7 +480,7 @@ static int add_pdo(struct usb_power_delivery_capabilities *cap, u32 pdo, int pos
struct pdo *p;
int ret;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return -ENOMEM;
@@ -569,7 +569,7 @@ usb_power_delivery_register_capabilities(struct usb_power_delivery *pd,
int ret;
int i;
- cap = kzalloc(sizeof(*cap), GFP_KERNEL);
+ cap = kzalloc_obj(*cap, GFP_KERNEL);
if (!cap)
return ERR_PTR(-ENOMEM);
@@ -697,7 +697,7 @@ usb_power_delivery_register(struct device *parent, struct usb_power_delivery_des
struct usb_power_delivery *pd;
int ret;
- pd = kzalloc(sizeof(*pd), GFP_KERNEL);
+ pd = kzalloc_obj(*pd, GFP_KERNEL);
if (!pd)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/typec/retimer.c b/drivers/usb/typec/retimer.c
index b519fcf358ca..9bc896160af1 100644
--- a/drivers/usb/typec/retimer.c
+++ b/drivers/usb/typec/retimer.c
@@ -110,7 +110,7 @@ typec_retimer_register(struct device *parent, const struct typec_retimer_desc *d
if (!desc || !desc->set)
return ERR_PTR(-EINVAL);
- retimer = kzalloc(sizeof(*retimer), GFP_KERNEL);
+ retimer = kzalloc_obj(*retimer, GFP_KERNEL);
if (!retimer)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
index b7828160b81d..13b9873ba92e 100644
--- a/drivers/usb/typec/tcpm/tcpm.c
+++ b/drivers/usb/typec/tcpm/tcpm.c
@@ -1665,7 +1665,7 @@ static int tcpm_queue_vdm_unlocked(struct tcpm_port *port, const u32 header,
u32 *data_cpy;
int ret = -ENOMEM;
- event = kzalloc(sizeof(*event), GFP_KERNEL);
+ event = kzalloc_obj(*event, GFP_KERNEL);
if (!event)
goto err_event;
@@ -3803,7 +3803,7 @@ void tcpm_pd_receive(struct tcpm_port *port, const struct pd_message *msg,
{
struct pd_rx_event *event;
- event = kzalloc(sizeof(*event), GFP_ATOMIC);
+ event = kzalloc_obj(*event, GFP_ATOMIC);
if (!event)
return;
diff --git a/drivers/usb/typec/ucsi/debugfs.c b/drivers/usb/typec/ucsi/debugfs.c
index d1f5832165c3..7549fef83d85 100644
--- a/drivers/usb/typec/ucsi/debugfs.c
+++ b/drivers/usb/typec/ucsi/debugfs.c
@@ -112,7 +112,7 @@ DEFINE_SHOW_ATTRIBUTE(ucsi_vbus_volt);
void ucsi_debugfs_register(struct ucsi *ucsi)
{
- ucsi->debugfs = kzalloc(sizeof(*ucsi->debugfs), GFP_KERNEL);
+ ucsi->debugfs = kzalloc_obj(*ucsi->debugfs, GFP_KERNEL);
if (!ucsi->debugfs)
return;
diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
index 91b6c71dd739..fe01a5e915d9 100644
--- a/drivers/usb/typec/ucsi/ucsi.c
+++ b/drivers/usb/typec/ucsi/ucsi.c
@@ -293,7 +293,7 @@ static int ucsi_partner_task(struct ucsi_connector *con,
if (!con->partner)
return 0;
- uwork = kzalloc(sizeof(*uwork), GFP_KERNEL);
+ uwork = kzalloc_obj(*uwork, GFP_KERNEL);
if (!uwork)
return -ENOMEM;
@@ -1865,7 +1865,8 @@ static int ucsi_init(struct ucsi *ucsi)
}
/* Allocate the connectors. Released in ucsi_unregister() */
- connector = kcalloc(ucsi->cap.num_connectors + 1, sizeof(*connector), GFP_KERNEL);
+ connector = kzalloc_objs(*connector, ucsi->cap.num_connectors + 1,
+ GFP_KERNEL);
if (!connector) {
ret = -ENOMEM;
goto err_reset;
@@ -2043,7 +2044,7 @@ struct ucsi *ucsi_create(struct device *dev, const struct ucsi_operations *ops)
!ops->read_message_in || !ops->sync_control || !ops->async_control)
return ERR_PTR(-EINVAL);
- ucsi = kzalloc(sizeof(*ucsi), GFP_KERNEL);
+ ucsi = kzalloc_obj(*ucsi, GFP_KERNEL);
if (!ucsi)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/usb/usb-skeleton.c b/drivers/usb/usb-skeleton.c
index 900a64ad25e4..5fe991baffa2 100644
--- a/drivers/usb/usb-skeleton.c
+++ b/drivers/usb/usb-skeleton.c
@@ -493,7 +493,7 @@ static int skel_probe(struct usb_interface *interface,
int retval;
/* allocate memory for our device state and initialize it */
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/usb/usbip/stub_dev.c b/drivers/usb/usbip/stub_dev.c
index ce625b1ce9a5..e859c51c94e8 100644
--- a/drivers/usb/usbip/stub_dev.c
+++ b/drivers/usb/usbip/stub_dev.c
@@ -263,7 +263,7 @@ static struct stub_device *stub_device_alloc(struct usb_device *udev)
dev_dbg(&udev->dev, "allocating stub device");
/* yes, it's a new device */
- sdev = kzalloc(sizeof(struct stub_device), GFP_KERNEL);
+ sdev = kzalloc_obj(struct stub_device, GFP_KERNEL);
if (!sdev)
return NULL;
diff --git a/drivers/usb/usbip/stub_rx.c b/drivers/usb/usbip/stub_rx.c
index 9aa30ef76f3b..7df83464a75f 100644
--- a/drivers/usb/usbip/stub_rx.c
+++ b/drivers/usb/usbip/stub_rx.c
@@ -535,7 +535,7 @@ static void stub_recv_cmd_submit(struct stub_device *sdev,
/* allocate urb array */
priv->num_urbs = num_urbs;
- priv->urbs = kmalloc_array(num_urbs, sizeof(*priv->urbs), GFP_KERNEL);
+ priv->urbs = kmalloc_objs(*priv->urbs, num_urbs, GFP_KERNEL);
if (!priv->urbs)
goto err_urbs;
diff --git a/drivers/usb/usbip/stub_tx.c b/drivers/usb/usbip/stub_tx.c
index cd92d9fac327..9e6187c3ddb0 100644
--- a/drivers/usb/usbip/stub_tx.c
+++ b/drivers/usb/usbip/stub_tx.c
@@ -17,7 +17,7 @@ void stub_enqueue_ret_unlink(struct stub_device *sdev, __u32 seqnum,
{
struct stub_unlink *unlink;
- unlink = kzalloc(sizeof(struct stub_unlink), GFP_ATOMIC);
+ unlink = kzalloc_obj(struct stub_unlink, GFP_ATOMIC);
if (!unlink) {
usbip_event_add(&sdev->ud, VDEV_EVENT_ERROR_MALLOC);
return;
@@ -191,7 +191,7 @@ static int stub_send_ret_submit(struct stub_device *sdev)
else
iovnum = 2;
- iov = kcalloc(iovnum, sizeof(struct kvec), GFP_KERNEL);
+ iov = kzalloc_objs(struct kvec, iovnum, GFP_KERNEL);
if (!iov) {
usbip_event_add(&sdev->ud, SDEV_EVENT_ERROR_MALLOC);
diff --git a/drivers/usb/usbip/usbip_event.c b/drivers/usb/usbip/usbip_event.c
index 26513540bcdb..0e00c2d000f8 100644
--- a/drivers/usb/usbip/usbip_event.c
+++ b/drivers/usb/usbip/usbip_event.c
@@ -158,7 +158,7 @@ void usbip_event_add(struct usbip_device *ud, unsigned long event)
goto out;
}
- ue = kmalloc(sizeof(struct usbip_event), GFP_ATOMIC);
+ ue = kmalloc_obj(struct usbip_event, GFP_ATOMIC);
if (ue == NULL)
goto out;
diff --git a/drivers/usb/usbip/vhci_hcd.c b/drivers/usb/usbip/vhci_hcd.c
index e55690da19e5..4dcda9e8316f 100644
--- a/drivers/usb/usbip/vhci_hcd.c
+++ b/drivers/usb/usbip/vhci_hcd.c
@@ -671,7 +671,7 @@ static void vhci_tx_urb(struct urb *urb, struct vhci_device *vdev)
struct vhci_hcd *vhci_hcd = vdev_to_vhci_hcd(vdev);
unsigned long flags;
- priv = kzalloc(sizeof(struct vhci_priv), GFP_ATOMIC);
+ priv = kzalloc_obj(struct vhci_priv, GFP_ATOMIC);
if (!priv) {
usbip_event_add(&vdev->ud, VDEV_EVENT_ERROR_MALLOC);
return;
@@ -951,7 +951,7 @@ static int vhci_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
spin_lock(&vdev->priv_lock);
/* setup CMD_UNLINK pdu */
- unlink = kzalloc(sizeof(struct vhci_unlink), GFP_ATOMIC);
+ unlink = kzalloc_obj(struct vhci_unlink, GFP_ATOMIC);
if (!unlink) {
spin_unlock(&vdev->priv_lock);
spin_unlock_irqrestore(&vhci->lock, flags);
@@ -1537,7 +1537,7 @@ static int __init vhci_hcd_init(void)
if (vhci_num_controllers < 1)
vhci_num_controllers = 1;
- vhcis = kcalloc(vhci_num_controllers, sizeof(struct vhci), GFP_KERNEL);
+ vhcis = kzalloc_objs(struct vhci, vhci_num_controllers, GFP_KERNEL);
if (vhcis == NULL)
return -ENOMEM;
diff --git a/drivers/usb/usbip/vhci_sysfs.c b/drivers/usb/usbip/vhci_sysfs.c
index d5865460e82d..f7929b4a43a4 100644
--- a/drivers/usb/usbip/vhci_sysfs.c
+++ b/drivers/usb/usbip/vhci_sysfs.c
@@ -476,8 +476,8 @@ static int init_status_attrs(void)
{
int id;
- status_attrs = kcalloc(vhci_num_controllers, sizeof(struct status_attr),
- GFP_KERNEL);
+ status_attrs = kzalloc_objs(struct status_attr, vhci_num_controllers,
+ GFP_KERNEL);
if (status_attrs == NULL)
return -ENOMEM;
@@ -501,8 +501,8 @@ int vhci_init_attr_group(void)
struct attribute **attrs;
int ret, i;
- attrs = kcalloc((vhci_num_controllers + 5), sizeof(struct attribute *),
- GFP_KERNEL);
+ attrs = kzalloc_objs(struct attribute *, (vhci_num_controllers + 5),
+ GFP_KERNEL);
if (attrs == NULL)
return -ENOMEM;
diff --git a/drivers/usb/usbip/vhci_tx.c b/drivers/usb/usbip/vhci_tx.c
index 0ae40a13a9fe..a63805d57d94 100644
--- a/drivers/usb/usbip/vhci_tx.c
+++ b/drivers/usb/usbip/vhci_tx.c
@@ -82,7 +82,7 @@ static int vhci_send_cmd_submit(struct vhci_device *vdev)
else
iovnum = 3;
- iov = kcalloc(iovnum, sizeof(*iov), GFP_KERNEL);
+ iov = kzalloc_objs(*iov, iovnum, GFP_KERNEL);
if (!iov) {
usbip_event_add(&vdev->ud, SDEV_EVENT_ERROR_MALLOC);
return -ENOMEM;
diff --git a/drivers/usb/usbip/vudc_dev.c b/drivers/usb/usbip/vudc_dev.c
index f11535020e35..80ab3d019b87 100644
--- a/drivers/usb/usbip/vudc_dev.c
+++ b/drivers/usb/usbip/vudc_dev.c
@@ -43,7 +43,7 @@ struct urbp *alloc_urbp(void)
{
struct urbp *urb_p;
- urb_p = kzalloc(sizeof(*urb_p), GFP_KERNEL);
+ urb_p = kzalloc_obj(*urb_p, GFP_KERNEL);
if (!urb_p)
return urb_p;
@@ -284,7 +284,7 @@ static struct usb_request *vep_alloc_request(struct usb_ep *_ep,
if (!_ep)
return NULL;
- req = kzalloc(sizeof(*req), mem_flags);
+ req = kzalloc_obj(*req, mem_flags);
if (!req)
return NULL;
@@ -491,7 +491,7 @@ struct vudc_device *alloc_vudc_device(int devid)
{
struct vudc_device *udc_dev;
- udc_dev = kzalloc(sizeof(*udc_dev), GFP_KERNEL);
+ udc_dev = kzalloc_obj(*udc_dev, GFP_KERNEL);
if (!udc_dev)
return NULL;
@@ -518,7 +518,7 @@ static int init_vudc_hw(struct vudc *udc)
struct usbip_device *ud = &udc->ud;
struct vep *ep;
- udc->ep = kcalloc(VIRTUAL_ENDPOINTS, sizeof(*udc->ep), GFP_KERNEL);
+ udc->ep = kzalloc_objs(*udc->ep, VIRTUAL_ENDPOINTS, GFP_KERNEL);
if (!udc->ep)
goto nomem_ep;
@@ -598,7 +598,7 @@ int vudc_probe(struct platform_device *pdev)
struct vudc *udc;
int ret = -ENOMEM;
- udc = kzalloc(sizeof(*udc), GFP_KERNEL);
+ udc = kzalloc_obj(*udc, GFP_KERNEL);
if (!udc)
goto out;
diff --git a/drivers/usb/usbip/vudc_tx.c b/drivers/usb/usbip/vudc_tx.c
index 30c11bf9f4e7..b4b7796319f1 100644
--- a/drivers/usb/usbip/vudc_tx.c
+++ b/drivers/usb/usbip/vudc_tx.c
@@ -97,7 +97,7 @@ static int v_send_ret_submit(struct vudc *udc, struct urbp *urb_p)
else
iovnum = 2;
- iov = kcalloc(iovnum, sizeof(*iov), GFP_KERNEL);
+ iov = kzalloc_objs(*iov, iovnum, GFP_KERNEL);
if (!iov) {
usbip_event_add(&udc->ud, VUDC_EVENT_ERROR_MALLOC);
ret = -ENOMEM;
@@ -246,12 +246,12 @@ void v_enqueue_ret_unlink(struct vudc *udc, __u32 seqnum, __u32 status)
struct tx_item *txi;
struct v_unlink *unlink;
- txi = kzalloc(sizeof(*txi), GFP_ATOMIC);
+ txi = kzalloc_obj(*txi, GFP_ATOMIC);
if (!txi) {
usbip_event_add(&udc->ud, VDEV_EVENT_ERROR_MALLOC);
return;
}
- unlink = kzalloc(sizeof(*unlink), GFP_ATOMIC);
+ unlink = kzalloc_obj(*unlink, GFP_ATOMIC);
if (!unlink) {
kfree(txi);
usbip_event_add(&udc->ud, VDEV_EVENT_ERROR_MALLOC);
@@ -271,7 +271,7 @@ void v_enqueue_ret_submit(struct vudc *udc, struct urbp *urb_p)
{
struct tx_item *txi;
- txi = kzalloc(sizeof(*txi), GFP_ATOMIC);
+ txi = kzalloc_obj(*txi, GFP_ATOMIC);
if (!txi) {
usbip_event_add(&udc->ud, VDEV_EVENT_ERROR_MALLOC);
return;
diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c
index 6658dc74d915..b1b4c6adeef7 100644
--- a/drivers/vdpa/ifcvf/ifcvf_main.c
+++ b/drivers/vdpa/ifcvf/ifcvf_main.c
@@ -793,7 +793,7 @@ static int ifcvf_probe(struct pci_dev *pdev, const struct pci_device_id *id)
}
pci_set_master(pdev);
- ifcvf_mgmt_dev = kzalloc(sizeof(struct ifcvf_vdpa_mgmt_dev), GFP_KERNEL);
+ ifcvf_mgmt_dev = kzalloc_obj(struct ifcvf_vdpa_mgmt_dev, GFP_KERNEL);
if (!ifcvf_mgmt_dev) {
IFCVF_ERR(pdev, "Failed to alloc memory for the vDPA management device\n");
return -ENOMEM;
diff --git a/drivers/vdpa/mlx5/core/mr.c b/drivers/vdpa/mlx5/core/mr.c
index 8870a7169267..f27316f3fec3 100644
--- a/drivers/vdpa/mlx5/core/mr.c
+++ b/drivers/vdpa/mlx5/core/mr.c
@@ -215,7 +215,7 @@ static int create_direct_keys(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_mr *
int err = 0;
int i = 0;
- cmds = kvcalloc(mr->num_directs, sizeof(*cmds), GFP_KERNEL);
+ cmds = kvzalloc_objs(*cmds, mr->num_directs, GFP_KERNEL);
if (!cmds)
return -ENOMEM;
@@ -287,8 +287,8 @@ static int destroy_direct_keys(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_mr
int err = 0;
int i = 0;
- cmds = kvcalloc(mr->num_directs, sizeof(*cmds), GFP_KERNEL);
- cmd_mem = kvcalloc(mr->num_directs, sizeof(*cmd_mem), GFP_KERNEL);
+ cmds = kvzalloc_objs(*cmds, mr->num_directs, GFP_KERNEL);
+ cmd_mem = kvzalloc_objs(*cmd_mem, mr->num_directs, GFP_KERNEL);
if (!cmds || !cmd_mem)
return -ENOMEM;
@@ -456,7 +456,7 @@ static int add_direct_chain(struct mlx5_vdpa_dev *mvdev,
st = start;
while (size) {
sz = (u32)min_t(u64, MAX_KLM_SIZE, size);
- dmr = kzalloc(sizeof(*dmr), GFP_KERNEL);
+ dmr = kzalloc_obj(*dmr, GFP_KERNEL);
if (!dmr) {
err = -ENOMEM;
goto err_alloc;
@@ -817,7 +817,7 @@ struct mlx5_vdpa_mr *mlx5_vdpa_create_mr(struct mlx5_vdpa_dev *mvdev,
struct mlx5_vdpa_mr *mr;
int err;
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5_vnet.c
index b7e46338815f..15a6c91ec335 100644
--- a/drivers/vdpa/mlx5/net/mlx5_vnet.c
+++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c
@@ -1229,8 +1229,8 @@ static int query_virtqueues(struct mlx5_vdpa_net *ndev,
WARN(start_vq + num_vqs > mvdev->max_vqs, "query vq range invalid [%d, %d), max_vqs: %u\n",
start_vq, start_vq + num_vqs, mvdev->max_vqs);
- cmds = kvcalloc(num_vqs, sizeof(*cmds), GFP_KERNEL);
- cmd_mem = kvcalloc(num_vqs, sizeof(*cmd_mem), GFP_KERNEL);
+ cmds = kvzalloc_objs(*cmds, num_vqs, GFP_KERNEL);
+ cmd_mem = kvzalloc_objs(*cmd_mem, num_vqs, GFP_KERNEL);
if (!cmds || !cmd_mem) {
err = -ENOMEM;
goto done;
@@ -1562,8 +1562,8 @@ static int modify_virtqueues(struct mlx5_vdpa_net *ndev, int start_vq, int num_v
WARN(start_vq + num_vqs > mvdev->max_vqs, "modify vq range invalid [%d, %d), max_vqs: %u\n",
start_vq, start_vq + num_vqs, mvdev->max_vqs);
- cmds = kvcalloc(num_vqs, sizeof(*cmds), GFP_KERNEL);
- cmd_mem = kvcalloc(num_vqs, sizeof(*cmd_mem), GFP_KERNEL);
+ cmds = kvzalloc_objs(*cmds, num_vqs, GFP_KERNEL);
+ cmd_mem = kvzalloc_objs(*cmd_mem, num_vqs, GFP_KERNEL);
if (!cmds || !cmd_mem) {
err = -ENOMEM;
goto done;
@@ -1649,7 +1649,7 @@ static int suspend_vqs(struct mlx5_vdpa_net *ndev, int start_vq, int num_vqs)
if (err)
return err;
- attrs = kcalloc(num_vqs, sizeof(struct mlx5_virtq_attr), GFP_KERNEL);
+ attrs = kzalloc_objs(struct mlx5_virtq_attr, num_vqs, GFP_KERNEL);
if (!attrs)
return -ENOMEM;
@@ -1922,7 +1922,7 @@ static int mlx5_vdpa_add_mac_vlan_rules(struct mlx5_vdpa_net *ndev, u8 *mac,
int err;
u16 vid;
- spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kvzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
@@ -2034,7 +2034,7 @@ static int mac_vlan_add(struct mlx5_vdpa_net *ndev, u8 *mac, u16 vid, bool tagge
if (mac_vlan_lookup(ndev, val))
return -EEXIST;
- ptr = kzalloc(sizeof(*ptr), GFP_KERNEL);
+ ptr = kzalloc_obj(*ptr, GFP_KERNEL);
if (!ptr)
return -ENOMEM;
@@ -2846,7 +2846,7 @@ static int queue_link_work(struct mlx5_vdpa_net *ndev)
{
struct mlx5_vdpa_wq_ent *wqent;
- wqent = kzalloc(sizeof(*wqent), GFP_ATOMIC);
+ wqent = kzalloc_obj(*wqent, GFP_ATOMIC);
if (!wqent)
return -ENOMEM;
@@ -3809,7 +3809,8 @@ static void allocate_irqs(struct mlx5_vdpa_net *ndev)
if (!ndev->mvdev.mdev->pdev)
return;
- ndev->irqp.entries = kcalloc(ndev->mvdev.max_vqs, sizeof(*ndev->irqp.entries), GFP_KERNEL);
+ ndev->irqp.entries = kzalloc_objs(*ndev->irqp.entries,
+ ndev->mvdev.max_vqs, GFP_KERNEL);
if (!ndev->irqp.entries)
return;
@@ -3901,8 +3902,9 @@ static int mlx5_vdpa_dev_add(struct vdpa_mgmt_dev *v_mdev, const char *name,
mlx5_cmd_init_async_ctx(mdev, &mvdev->async_ctx);
- ndev->vqs = kcalloc(max_vqs, sizeof(*ndev->vqs), GFP_KERNEL);
- ndev->event_cbs = kcalloc(max_vqs + 1, sizeof(*ndev->event_cbs), GFP_KERNEL);
+ ndev->vqs = kzalloc_objs(*ndev->vqs, max_vqs, GFP_KERNEL);
+ ndev->event_cbs = kzalloc_objs(*ndev->event_cbs, max_vqs + 1,
+ GFP_KERNEL);
if (!ndev->vqs || !ndev->event_cbs) {
err = -ENOMEM;
goto err_alloc;
@@ -4102,7 +4104,7 @@ static int mlx5v_probe(struct auxiliary_device *adev,
struct mlx5_vdpa_mgmtdev *mgtdev;
int err;
- mgtdev = kzalloc(sizeof(*mgtdev), GFP_KERNEL);
+ mgtdev = kzalloc_obj(*mgtdev, GFP_KERNEL);
if (!mgtdev)
return -ENOMEM;
diff --git a/drivers/vdpa/pds/aux_drv.c b/drivers/vdpa/pds/aux_drv.c
index f57330cf9024..970eec66b117 100644
--- a/drivers/vdpa/pds/aux_drv.c
+++ b/drivers/vdpa/pds/aux_drv.c
@@ -39,7 +39,7 @@ static int pds_vdpa_probe(struct auxiliary_device *aux_dev,
struct pds_vdpa_aux *vdpa_aux;
int err;
- vdpa_aux = kzalloc(sizeof(*vdpa_aux), GFP_KERNEL);
+ vdpa_aux = kzalloc_obj(*vdpa_aux, GFP_KERNEL);
if (!vdpa_aux)
return -ENOMEM;
diff --git a/drivers/vdpa/solidrun/snet_main.c b/drivers/vdpa/solidrun/snet_main.c
index 4588211d57eb..527efeed912c 100644
--- a/drivers/vdpa/solidrun/snet_main.c
+++ b/drivers/vdpa/solidrun/snet_main.c
@@ -732,7 +732,7 @@ static int psnet_read_cfg(struct pci_dev *pdev, struct psnet *psnet)
/* Load device configuration from BAR */
for (i = 0; i < cfg->devices_num; i++) {
- cfg->devs[i] = kzalloc(sizeof(*cfg->devs[i]), GFP_KERNEL);
+ cfg->devs[i] = kzalloc_obj(*cfg->devs[i], GFP_KERNEL);
if (!cfg->devs[i]) {
snet_free_cfg(cfg);
return -ENOMEM;
@@ -827,7 +827,7 @@ static int snet_build_vqs(struct snet *snet)
/* Allocate the VQs */
for (i = 0; i < snet->cfg->vq_num; i++) {
- snet->vqs[i] = kzalloc(sizeof(*snet->vqs[i]), GFP_KERNEL);
+ snet->vqs[i] = kzalloc_obj(*snet->vqs[i], GFP_KERNEL);
if (!snet->vqs[i]) {
snet_free_vqs(snet);
return -ENOMEM;
@@ -902,7 +902,7 @@ static int snet_vdpa_probe_pf(struct pci_dev *pdev)
}
/* Allocate a PCI physical function device */
- psnet = kzalloc(sizeof(*psnet), GFP_KERNEL);
+ psnet = kzalloc_obj(*psnet, GFP_KERNEL);
if (!psnet)
return -ENOMEM;
diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim.c b/drivers/vdpa/vdpa_sim/vdpa_sim.c
index df9c7ddc5d78..24b4fca22893 100644
--- a/drivers/vdpa/vdpa_sim/vdpa_sim.c
+++ b/drivers/vdpa/vdpa_sim/vdpa_sim.c
@@ -246,18 +246,18 @@ struct vdpasim *vdpasim_create(struct vdpasim_dev_attr *dev_attr,
if (!vdpasim->config)
goto err_iommu;
- vdpasim->vqs = kcalloc(dev_attr->nvqs, sizeof(struct vdpasim_virtqueue),
- GFP_KERNEL);
+ vdpasim->vqs = kzalloc_objs(struct vdpasim_virtqueue, dev_attr->nvqs,
+ GFP_KERNEL);
if (!vdpasim->vqs)
goto err_iommu;
- vdpasim->iommu = kmalloc_array(vdpasim->dev_attr.nas,
- sizeof(*vdpasim->iommu), GFP_KERNEL);
+ vdpasim->iommu = kmalloc_objs(*vdpasim->iommu, vdpasim->dev_attr.nas,
+ GFP_KERNEL);
if (!vdpasim->iommu)
goto err_iommu;
- vdpasim->iommu_pt = kmalloc_array(vdpasim->dev_attr.nas,
- sizeof(*vdpasim->iommu_pt), GFP_KERNEL);
+ vdpasim->iommu_pt = kmalloc_objs(*vdpasim->iommu_pt,
+ vdpasim->dev_attr.nas, GFP_KERNEL);
if (!vdpasim->iommu_pt)
goto err_iommu;
diff --git a/drivers/vdpa/vdpa_user/iova_domain.c b/drivers/vdpa/vdpa_user/iova_domain.c
index 0a9f668467a8..44e9babc0b54 100644
--- a/drivers/vdpa/vdpa_user/iova_domain.c
+++ b/drivers/vdpa/vdpa_user/iova_domain.c
@@ -25,7 +25,7 @@ static int vduse_iotlb_add_range(struct vduse_iova_domain *domain,
struct vdpa_map_file *map_file;
int ret;
- map_file = kmalloc(sizeof(*map_file), GFP_ATOMIC);
+ map_file = kmalloc_obj(*map_file, GFP_ATOMIC);
if (!map_file)
return -ENOMEM;
@@ -622,7 +622,7 @@ vduse_domain_create(unsigned long iova_limit, size_t bounce_size)
if (iova_limit <= bounce_size)
return NULL;
- domain = kzalloc(sizeof(*domain), GFP_KERNEL);
+ domain = kzalloc_obj(*domain, GFP_KERNEL);
if (!domain)
return NULL;
diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c
index 405d59610f76..7478aa8d5489 100644
--- a/drivers/vdpa/vdpa_user/vduse_dev.c
+++ b/drivers/vdpa/vdpa_user/vduse_dev.c
@@ -1232,7 +1232,7 @@ static int vduse_dev_reg_umem(struct vduse_dev *dev,
npages = size >> PAGE_SHIFT;
page_list = __vmalloc(array_size(npages, sizeof(struct page *)),
GFP_KERNEL_ACCOUNT);
- umem = kzalloc(sizeof(*umem), GFP_KERNEL);
+ umem = kzalloc_obj(*umem, GFP_KERNEL);
if (!page_list || !umem)
goto unlock;
@@ -1800,12 +1800,12 @@ static int vduse_dev_init_vqs(struct vduse_dev *dev, u32 vq_align, u32 vq_num)
dev->vq_align = vq_align;
dev->vq_num = vq_num;
- dev->vqs = kcalloc(dev->vq_num, sizeof(*dev->vqs), GFP_KERNEL);
+ dev->vqs = kzalloc_objs(*dev->vqs, dev->vq_num, GFP_KERNEL);
if (!dev->vqs)
return -ENOMEM;
for (i = 0; i < vq_num; i++) {
- dev->vqs[i] = kzalloc(sizeof(*dev->vqs[i]), GFP_KERNEL);
+ dev->vqs[i] = kzalloc_obj(*dev->vqs[i], GFP_KERNEL);
if (!dev->vqs[i]) {
ret = -ENOMEM;
goto err;
@@ -1839,7 +1839,7 @@ static int vduse_dev_init_vqs(struct vduse_dev *dev, u32 vq_align, u32 vq_num)
static struct vduse_dev *vduse_dev_create(void)
{
- struct vduse_dev *dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ struct vduse_dev *dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return NULL;
@@ -2076,7 +2076,7 @@ static int vduse_create_dev(struct vduse_dev_config *config,
dev->vendor_id = config->vendor_id;
dev->nas = (dev->api_version < VDUSE_API_VERSION_1) ? 1 : config->nas;
- dev->as = kcalloc(dev->nas, sizeof(dev->as[0]), GFP_KERNEL);
+ dev->as = kzalloc_objs(dev->as[0], dev->nas, GFP_KERNEL);
if (!dev->as)
goto err_as;
for (int i = 0; i < dev->nas; i++)
@@ -2085,8 +2085,7 @@ static int vduse_create_dev(struct vduse_dev_config *config,
dev->ngroups = (dev->api_version < VDUSE_API_VERSION_1)
? 1
: config->ngroups;
- dev->groups = kcalloc(dev->ngroups, sizeof(dev->groups[0]),
- GFP_KERNEL);
+ dev->groups = kzalloc_objs(dev->groups[0], dev->ngroups, GFP_KERNEL);
if (!dev->groups)
goto err_vq_groups;
for (u32 i = 0; i < dev->ngroups; ++i) {
@@ -2227,7 +2226,7 @@ static int vduse_open(struct inode *inode, struct file *file)
{
struct vduse_control *control;
- control = kmalloc(sizeof(struct vduse_control), GFP_KERNEL);
+ control = kmalloc_obj(struct vduse_control, GFP_KERNEL);
if (!control)
return -ENOMEM;
@@ -2357,7 +2356,7 @@ static int vduse_mgmtdev_init(void)
{
int ret;
- vduse_mgmt = kzalloc(sizeof(*vduse_mgmt), GFP_KERNEL);
+ vduse_mgmt = kzalloc_obj(*vduse_mgmt, GFP_KERNEL);
if (!vduse_mgmt)
return -ENOMEM;
diff --git a/drivers/vdpa/virtio_pci/vp_vdpa.c b/drivers/vdpa/virtio_pci/vp_vdpa.c
index 17a19a728c9c..102f25ccfddf 100644
--- a/drivers/vdpa/virtio_pci/vp_vdpa.c
+++ b/drivers/vdpa/virtio_pci/vp_vdpa.c
@@ -608,7 +608,7 @@ static int vp_vdpa_probe(struct pci_dev *pdev, const struct pci_device_id *id)
struct virtio_device_id *mdev_id = NULL;
int err;
- vp_vdpa_mgtdev = kzalloc(sizeof(*vp_vdpa_mgtdev), GFP_KERNEL);
+ vp_vdpa_mgtdev = kzalloc_obj(*vp_vdpa_mgtdev, GFP_KERNEL);
if (!vp_vdpa_mgtdev)
return -ENOMEM;
@@ -616,7 +616,7 @@ static int vp_vdpa_probe(struct pci_dev *pdev, const struct pci_device_id *id)
mgtdev->ops = &vp_vdpa_mdev_ops;
mgtdev->device = dev;
- mdev = kzalloc(sizeof(struct virtio_pci_modern_device), GFP_KERNEL);
+ mdev = kzalloc_obj(struct virtio_pci_modern_device, GFP_KERNEL);
if (!mdev) {
err = -ENOMEM;
goto mdev_err;
@@ -626,7 +626,7 @@ static int vp_vdpa_probe(struct pci_dev *pdev, const struct pci_device_id *id)
* id_table should be a null terminated array, so allocate one additional
* entry here, see vdpa_mgmtdev_get_classes().
*/
- mdev_id = kcalloc(2, sizeof(struct virtio_device_id), GFP_KERNEL);
+ mdev_id = kzalloc_objs(struct virtio_device_id, 2, GFP_KERNEL);
if (!mdev_id) {
err = -ENOMEM;
goto mdev_id_err;
diff --git a/drivers/vfio/cdx/intr.c b/drivers/vfio/cdx/intr.c
index 986fa2a45fa4..0ae39bda7c35 100644
--- a/drivers/vfio/cdx/intr.c
+++ b/drivers/vfio/cdx/intr.c
@@ -27,7 +27,7 @@ static int vfio_cdx_msi_enable(struct vfio_cdx_device *vdev, int nvec)
struct device *dev = vdev->vdev.dev;
int msi_idx, ret;
- vdev->cdx_irqs = kcalloc(nvec, sizeof(struct vfio_cdx_irq), GFP_KERNEL);
+ vdev->cdx_irqs = kzalloc_objs(struct vfio_cdx_irq, nvec, GFP_KERNEL);
if (!vdev->cdx_irqs)
return -ENOMEM;
diff --git a/drivers/vfio/cdx/main.c b/drivers/vfio/cdx/main.c
index 253031b86b60..8ab97405b2bd 100644
--- a/drivers/vfio/cdx/main.c
+++ b/drivers/vfio/cdx/main.c
@@ -16,8 +16,8 @@ static int vfio_cdx_open_device(struct vfio_device *core_vdev)
int count = cdx_dev->res_count;
int i, ret;
- vdev->regions = kcalloc(count, sizeof(struct vfio_cdx_region),
- GFP_KERNEL_ACCOUNT);
+ vdev->regions = kzalloc_objs(struct vfio_cdx_region, count,
+ GFP_KERNEL_ACCOUNT);
if (!vdev->regions)
return -ENOMEM;
diff --git a/drivers/vfio/container.c b/drivers/vfio/container.c
index d53d08f16973..937fc1de5965 100644
--- a/drivers/vfio/container.c
+++ b/drivers/vfio/container.c
@@ -95,7 +95,7 @@ int vfio_register_iommu_driver(const struct vfio_iommu_driver_ops *ops)
if (WARN_ON(!ops->register_device != !ops->unregister_device))
return -EINVAL;
- driver = kzalloc(sizeof(*driver), GFP_KERNEL);
+ driver = kzalloc_obj(*driver, GFP_KERNEL);
if (!driver)
return -ENOMEM;
@@ -360,7 +360,7 @@ static int vfio_fops_open(struct inode *inode, struct file *filep)
{
struct vfio_container *container;
- container = kzalloc(sizeof(*container), GFP_KERNEL_ACCOUNT);
+ container = kzalloc_obj(*container, GFP_KERNEL_ACCOUNT);
if (!container)
return -ENOMEM;
diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc.c b/drivers/vfio/fsl-mc/vfio_fsl_mc.c
index 3985613e6830..462fae1aa538 100644
--- a/drivers/vfio/fsl-mc/vfio_fsl_mc.c
+++ b/drivers/vfio/fsl-mc/vfio_fsl_mc.c
@@ -27,8 +27,8 @@ static int vfio_fsl_mc_open_device(struct vfio_device *core_vdev)
int count = mc_dev->obj_desc.region_count;
int i;
- vdev->regions = kcalloc(count, sizeof(struct vfio_fsl_mc_region),
- GFP_KERNEL_ACCOUNT);
+ vdev->regions = kzalloc_objs(struct vfio_fsl_mc_region, count,
+ GFP_KERNEL_ACCOUNT);
if (!vdev->regions)
return -ENOMEM;
diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c
index 7e7988c4258f..d0fedd9aa7c5 100644
--- a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c
+++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c
@@ -29,7 +29,7 @@ static int vfio_fsl_mc_irqs_allocate(struct vfio_fsl_mc_device *vdev)
irq_count = mc_dev->obj_desc.irq_count;
- mc_irq = kcalloc(irq_count, sizeof(*mc_irq), GFP_KERNEL_ACCOUNT);
+ mc_irq = kzalloc_objs(*mc_irq, irq_count, GFP_KERNEL_ACCOUNT);
if (!mc_irq)
return -ENOMEM;
diff --git a/drivers/vfio/group.c b/drivers/vfio/group.c
index d47ffada6912..868e69053050 100644
--- a/drivers/vfio/group.c
+++ b/drivers/vfio/group.c
@@ -515,7 +515,7 @@ static struct vfio_group *vfio_group_alloc(struct iommu_group *iommu_group,
struct vfio_group *group;
int minor;
- group = kzalloc(sizeof(*group), GFP_KERNEL);
+ group = kzalloc_obj(*group, GFP_KERNEL);
if (!group)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/vfio/mdev/mdev_core.c b/drivers/vfio/mdev/mdev_core.c
index f2e686f8f1ef..5b6ac30c02bf 100644
--- a/drivers/vfio/mdev/mdev_core.c
+++ b/drivers/vfio/mdev/mdev_core.c
@@ -154,7 +154,7 @@ int mdev_device_create(struct mdev_type *type, const guid_t *uuid)
atomic_dec(&parent->available_instances);
}
- mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
+ mdev = kzalloc_obj(*mdev, GFP_KERNEL);
if (!mdev) {
mutex_unlock(&mdev_list_lock);
return -ENOMEM;
diff --git a/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c b/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c
index e61df3fe0db9..68b3c1745609 100644
--- a/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c
+++ b/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c
@@ -831,7 +831,7 @@ hisi_acc_vf_pci_resume(struct hisi_acc_vf_core_device *hisi_acc_vdev)
{
struct hisi_acc_vf_migration_file *migf;
- migf = kzalloc(sizeof(*migf), GFP_KERNEL_ACCOUNT);
+ migf = kzalloc_obj(*migf, GFP_KERNEL_ACCOUNT);
if (!migf)
return ERR_PTR(-ENOMEM);
@@ -953,7 +953,7 @@ hisi_acc_open_saving_migf(struct hisi_acc_vf_core_device *hisi_acc_vdev)
struct hisi_acc_vf_migration_file *migf;
int ret;
- migf = kzalloc(sizeof(*migf), GFP_KERNEL_ACCOUNT);
+ migf = kzalloc_obj(*migf, GFP_KERNEL_ACCOUNT);
if (!migf)
return ERR_PTR(-ENOMEM);
@@ -1498,7 +1498,7 @@ static int hisi_acc_vf_dev_read(struct seq_file *seq, void *data)
}
mutex_lock(&hisi_acc_vdev->state_mutex);
- vf_data = kzalloc(sizeof(*vf_data), GFP_KERNEL);
+ vf_data = kzalloc_obj(*vf_data, GFP_KERNEL);
if (!vf_data) {
ret = -ENOMEM;
goto mutex_release;
@@ -1679,7 +1679,7 @@ static void hisi_acc_vfio_debug_init(struct hisi_acc_vf_core_device *hisi_acc_vd
return;
}
- migf = kzalloc(sizeof(*migf), GFP_KERNEL);
+ migf = kzalloc_obj(*migf, GFP_KERNEL);
if (!migf) {
dput(vfio_dev_migration);
return;
diff --git a/drivers/vfio/pci/mlx5/cmd.c b/drivers/vfio/pci/mlx5/cmd.c
index a92b095b90f6..ca6d95f293cd 100644
--- a/drivers/vfio/pci/mlx5/cmd.c
+++ b/drivers/vfio/pci/mlx5/cmd.c
@@ -492,7 +492,7 @@ static int mlx5vf_add_pages(struct page ***page_list, unsigned int npages)
int i;
*page_list =
- kvcalloc(npages, sizeof(struct page *), GFP_KERNEL_ACCOUNT);
+ kvzalloc_objs(struct page *, npages, GFP_KERNEL_ACCOUNT);
if (!*page_list)
return -ENOMEM;
@@ -525,7 +525,7 @@ mlx5vf_alloc_data_buffer(struct mlx5_vf_migration_file *migf, u32 npages,
struct mlx5_vhca_data_buffer *buf;
int ret;
- buf = kzalloc(sizeof(*buf), GFP_KERNEL_ACCOUNT);
+ buf = kzalloc_obj(*buf, GFP_KERNEL_ACCOUNT);
if (!buf)
return ERR_PTR(-ENOMEM);
@@ -1233,7 +1233,7 @@ mlx5vf_create_rc_qp(struct mlx5_core_dev *mdev,
void *in;
int err;
- qp = kzalloc(sizeof(*qp), GFP_KERNEL_ACCOUNT);
+ qp = kzalloc_obj(*qp, GFP_KERNEL_ACCOUNT);
if (!qp)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/vfio/pci/mlx5/main.c b/drivers/vfio/pci/mlx5/main.c
index 9c5970411d07..dbba6173894b 100644
--- a/drivers/vfio/pci/mlx5/main.c
+++ b/drivers/vfio/pci/mlx5/main.c
@@ -608,7 +608,7 @@ mlx5vf_pci_save_device_data(struct mlx5vf_pci_core_device *mvdev, bool track)
u64 full_size;
int ret;
- migf = kzalloc(sizeof(*migf), GFP_KERNEL_ACCOUNT);
+ migf = kzalloc_obj(*migf, GFP_KERNEL_ACCOUNT);
if (!migf)
return ERR_PTR(-ENOMEM);
@@ -989,7 +989,7 @@ mlx5vf_pci_resume_device_data(struct mlx5vf_pci_core_device *mvdev)
struct mlx5_vhca_data_buffer *buf;
int ret;
- migf = kzalloc(sizeof(*migf), GFP_KERNEL_ACCOUNT);
+ migf = kzalloc_obj(*migf, GFP_KERNEL_ACCOUNT);
if (!migf)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/vfio/pci/pds/dirty.c b/drivers/vfio/pci/pds/dirty.c
index 4915a7c1c491..7a218948c475 100644
--- a/drivers/vfio/pci/pds/dirty.c
+++ b/drivers/vfio/pci/pds/dirty.c
@@ -43,9 +43,8 @@ pds_vfio_print_guest_region_info(struct pds_vfio_pci_device *pds_vfio,
u8 num_regions;
int err;
- region_info = kcalloc(max_regions,
- sizeof(struct pds_lm_dirty_region_info),
- GFP_KERNEL);
+ region_info = kzalloc_objs(struct pds_lm_dirty_region_info, max_regions,
+ GFP_KERNEL);
if (!region_info)
return;
@@ -286,7 +285,7 @@ static int pds_vfio_dirty_enable(struct pds_vfio_pci_device *pds_vfio,
num_ranges = max_regions;
}
- region_info = kcalloc(num_ranges, sizeof(*region_info), GFP_KERNEL);
+ region_info = kzalloc_objs(*region_info, num_ranges, GFP_KERNEL);
if (!region_info)
return -ENOMEM;
len = num_ranges * sizeof(*region_info);
@@ -398,7 +397,7 @@ static int pds_vfio_dirty_seq_ack(struct pds_vfio_pci_device *pds_vfio,
* will be enough pages to represent the bmp_bytes
*/
npages = DIV_ROUND_UP_ULL(bmp_bytes + page_offset, PAGE_SIZE);
- pages = kmalloc_array(npages, sizeof(*pages), GFP_KERNEL);
+ pages = kmalloc_objs(*pages, npages, GFP_KERNEL);
if (!pages)
return -ENOMEM;
diff --git a/drivers/vfio/pci/pds/lm.c b/drivers/vfio/pci/pds/lm.c
index 4d70c833fa32..c9a21a049372 100644
--- a/drivers/vfio/pci/pds/lm.c
+++ b/drivers/vfio/pci/pds/lm.c
@@ -24,7 +24,7 @@ pds_vfio_get_lm_file(const struct file_operations *fops, int flags, u64 size)
return NULL;
/* Alloc file structure */
- lm_file = kzalloc(sizeof(*lm_file), GFP_KERNEL);
+ lm_file = kzalloc_obj(*lm_file, GFP_KERNEL);
if (!lm_file)
return NULL;
@@ -42,7 +42,7 @@ pds_vfio_get_lm_file(const struct file_operations *fops, int flags, u64 size)
/* Allocate memory for file pages */
npages = DIV_ROUND_UP_ULL(size, PAGE_SIZE);
- pages = kmalloc_array(npages, sizeof(*pages), GFP_KERNEL);
+ pages = kmalloc_objs(*pages, npages, GFP_KERNEL);
if (!pages)
goto out_put_file;
diff --git a/drivers/vfio/pci/qat/main.c b/drivers/vfio/pci/qat/main.c
index 8fbdf7c6d666..591349c2edc8 100644
--- a/drivers/vfio/pci/qat/main.c
+++ b/drivers/vfio/pci/qat/main.c
@@ -261,7 +261,7 @@ qat_vf_save_device_data(struct qat_vf_core_device *qat_vdev, bool pre_copy)
struct qat_vf_migration_file *migf;
int ret;
- migf = kzalloc(sizeof(*migf), GFP_KERNEL);
+ migf = kzalloc_obj(*migf, GFP_KERNEL);
if (!migf)
return ERR_PTR(-ENOMEM);
@@ -352,7 +352,7 @@ qat_vf_resume_device_data(struct qat_vf_core_device *qat_vdev)
struct qat_vf_migration_file *migf;
int ret;
- migf = kzalloc(sizeof(*migf), GFP_KERNEL);
+ migf = kzalloc_obj(*migf, GFP_KERNEL);
if (!migf)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/vfio/pci/vfio_pci_config.c b/drivers/vfio/pci/vfio_pci_config.c
index dc4e510e6e1b..b4e39253f98d 100644
--- a/drivers/vfio/pci/vfio_pci_config.c
+++ b/drivers/vfio/pci/vfio_pci_config.c
@@ -1265,7 +1265,7 @@ static int vfio_msi_cap_len(struct vfio_pci_core_device *vdev, u8 pos)
if (vdev->msi_perm)
return len;
- vdev->msi_perm = kmalloc(sizeof(struct perm_bits), GFP_KERNEL_ACCOUNT);
+ vdev->msi_perm = kmalloc_obj(struct perm_bits, GFP_KERNEL_ACCOUNT);
if (!vdev->msi_perm)
return -ENOMEM;
diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c
index 72c33b399800..10bfa76f06e5 100644
--- a/drivers/vfio/pci/vfio_pci_core.c
+++ b/drivers/vfio/pci/vfio_pci_core.c
@@ -61,7 +61,7 @@ int vfio_pci_eventfd_replace_locked(struct vfio_pci_core_device *vdev,
lockdep_assert_held(&vdev->igate);
if (ctx) {
- new = kzalloc(sizeof(*new), GFP_KERNEL_ACCOUNT);
+ new = kzalloc_obj(*new, GFP_KERNEL_ACCOUNT);
if (!new)
return -ENOMEM;
@@ -175,8 +175,7 @@ static void vfio_pci_probe_mmaps(struct vfio_pci_core_device *vdev)
* of the exclusive page in case that hot-add
* device's bar is assigned into it.
*/
- dummy_res =
- kzalloc(sizeof(*dummy_res), GFP_KERNEL_ACCOUNT);
+ dummy_res = kzalloc_obj(*dummy_res, GFP_KERNEL_ACCOUNT);
if (dummy_res == NULL)
goto no_mmap;
@@ -1292,7 +1291,7 @@ static int vfio_pci_ioctl_get_pci_hot_reset_info(
goto header;
}
- devices = kcalloc(count, sizeof(*devices), GFP_KERNEL);
+ devices = kzalloc_objs(*devices, count, GFP_KERNEL);
if (!devices)
return -ENOMEM;
@@ -1351,8 +1350,8 @@ vfio_pci_ioctl_pci_hot_reset_groups(struct vfio_pci_core_device *vdev,
if (array_count > count)
return -EINVAL;
- group_fds = kcalloc(array_count, sizeof(*group_fds), GFP_KERNEL);
- files = kcalloc(array_count, sizeof(*files), GFP_KERNEL);
+ group_fds = kzalloc_objs(*group_fds, array_count, GFP_KERNEL);
+ files = kzalloc_objs(*files, array_count, GFP_KERNEL);
if (!group_fds || !files) {
kfree(group_fds);
kfree(files);
@@ -2035,7 +2034,7 @@ static int vfio_pci_vf_init(struct vfio_pci_core_device *vdev)
if (!pdev->is_physfn)
return 0;
- vdev->vf_token = kzalloc(sizeof(*vdev->vf_token), GFP_KERNEL);
+ vdev->vf_token = kzalloc_obj(*vdev->vf_token, GFP_KERNEL);
if (!vdev->vf_token)
return -ENOMEM;
diff --git a/drivers/vfio/pci/vfio_pci_dmabuf.c b/drivers/vfio/pci/vfio_pci_dmabuf.c
index 9918713d5774..abed6508cd83 100644
--- a/drivers/vfio/pci/vfio_pci_dmabuf.c
+++ b/drivers/vfio/pci/vfio_pci_dmabuf.c
@@ -246,13 +246,13 @@ int vfio_pci_core_feature_dma_buf(struct vfio_pci_core_device *vdev, u32 flags,
if (ret)
goto err_free_ranges;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv) {
ret = -ENOMEM;
goto err_free_ranges;
}
- priv->phys_vec = kcalloc(get_dma_buf.nr_ranges, sizeof(*priv->phys_vec),
- GFP_KERNEL);
+ priv->phys_vec = kzalloc_objs(*priv->phys_vec, get_dma_buf.nr_ranges,
+ GFP_KERNEL);
if (!priv->phys_vec) {
ret = -ENOMEM;
goto err_free_priv;
diff --git a/drivers/vfio/pci/vfio_pci_igd.c b/drivers/vfio/pci/vfio_pci_igd.c
index 988b6919c2c3..24f3118fc61b 100644
--- a/drivers/vfio/pci/vfio_pci_igd.c
+++ b/drivers/vfio/pci/vfio_pci_igd.c
@@ -180,7 +180,7 @@ static int vfio_pci_igd_opregion_init(struct vfio_pci_core_device *vdev)
if (!addr || !(~addr))
return -ENODEV;
- opregionvbt = kzalloc(sizeof(*opregionvbt), GFP_KERNEL_ACCOUNT);
+ opregionvbt = kzalloc_obj(*opregionvbt, GFP_KERNEL_ACCOUNT);
if (!opregionvbt)
return -ENOMEM;
diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pci_intrs.c
index c76e753b3cec..33944d4d9dc4 100644
--- a/drivers/vfio/pci/vfio_pci_intrs.c
+++ b/drivers/vfio/pci/vfio_pci_intrs.c
@@ -69,7 +69,7 @@ vfio_irq_ctx_alloc(struct vfio_pci_core_device *vdev, unsigned long index)
struct vfio_pci_irq_ctx *ctx;
int ret;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL_ACCOUNT);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL_ACCOUNT);
if (!ctx)
return NULL;
diff --git a/drivers/vfio/pci/vfio_pci_rdwr.c b/drivers/vfio/pci/vfio_pci_rdwr.c
index b38627b35c35..4251ee03e146 100644
--- a/drivers/vfio/pci/vfio_pci_rdwr.c
+++ b/drivers/vfio/pci/vfio_pci_rdwr.c
@@ -484,7 +484,7 @@ int vfio_pci_ioeventfd(struct vfio_pci_core_device *vdev, loff_t offset,
goto out_unlock;
}
- ioeventfd = kzalloc(sizeof(*ioeventfd), GFP_KERNEL_ACCOUNT);
+ ioeventfd = kzalloc_obj(*ioeventfd, GFP_KERNEL_ACCOUNT);
if (!ioeventfd) {
ret = -ENOMEM;
goto out_unlock;
diff --git a/drivers/vfio/pci/virtio/migrate.c b/drivers/vfio/pci/virtio/migrate.c
index 7dd0ac866461..35fa2d6ed611 100644
--- a/drivers/vfio/pci/virtio/migrate.c
+++ b/drivers/vfio/pci/virtio/migrate.c
@@ -71,7 +71,7 @@ static int virtiovf_add_migration_pages(struct virtiovf_data_buffer *buf,
int i;
to_fill = min_t(unsigned int, npages, PAGE_SIZE / sizeof(*page_list));
- page_list = kvcalloc(to_fill, sizeof(*page_list), GFP_KERNEL_ACCOUNT);
+ page_list = kvzalloc_objs(*page_list, to_fill, GFP_KERNEL_ACCOUNT);
if (!page_list)
return -ENOMEM;
@@ -124,7 +124,7 @@ virtiovf_alloc_data_buffer(struct virtiovf_migration_file *migf, size_t length)
struct virtiovf_data_buffer *buf;
int ret;
- buf = kzalloc(sizeof(*buf), GFP_KERNEL_ACCOUNT);
+ buf = kzalloc_obj(*buf, GFP_KERNEL_ACCOUNT);
if (!buf)
return ERR_PTR(-ENOMEM);
@@ -676,7 +676,7 @@ virtiovf_pci_save_device_data(struct virtiovf_pci_core_device *virtvdev,
u32 obj_id;
int ret;
- migf = kzalloc(sizeof(*migf), GFP_KERNEL_ACCOUNT);
+ migf = kzalloc_obj(*migf, GFP_KERNEL_ACCOUNT);
if (!migf)
return ERR_PTR(-ENOMEM);
@@ -1066,7 +1066,7 @@ virtiovf_pci_resume_device_data(struct virtiovf_pci_core_device *virtvdev)
u32 obj_id;
int ret;
- migf = kzalloc(sizeof(*migf), GFP_KERNEL_ACCOUNT);
+ migf = kzalloc_obj(*migf, GFP_KERNEL_ACCOUNT);
if (!migf)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/vfio/pci/xe/main.c b/drivers/vfio/pci/xe/main.c
index 2a5eb9260ec7..fff95b2d5dde 100644
--- a/drivers/vfio/pci/xe/main.c
+++ b/drivers/vfio/pci/xe/main.c
@@ -252,7 +252,7 @@ xe_vfio_pci_alloc_file(struct xe_vfio_pci_core_device *xe_vdev,
int flags;
int ret;
- migf = kzalloc(sizeof(*migf), GFP_KERNEL_ACCOUNT);
+ migf = kzalloc_obj(*migf, GFP_KERNEL_ACCOUNT);
if (!migf)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/vfio/platform/vfio_platform_common.c b/drivers/vfio/platform/vfio_platform_common.c
index c2990b7e900f..c72db5a99ebd 100644
--- a/drivers/vfio/platform/vfio_platform_common.c
+++ b/drivers/vfio/platform/vfio_platform_common.c
@@ -141,8 +141,8 @@ static int vfio_platform_regions_init(struct vfio_platform_device *vdev)
while (vdev->get_resource(vdev, cnt))
cnt++;
- vdev->regions = kcalloc(cnt, sizeof(struct vfio_platform_region),
- GFP_KERNEL_ACCOUNT);
+ vdev->regions = kzalloc_objs(struct vfio_platform_region, cnt,
+ GFP_KERNEL_ACCOUNT);
if (!vdev->regions)
return -ENOMEM;
diff --git a/drivers/vfio/platform/vfio_platform_irq.c b/drivers/vfio/platform/vfio_platform_irq.c
index ef41ecef83af..d16596e7f266 100644
--- a/drivers/vfio/platform/vfio_platform_irq.c
+++ b/drivers/vfio/platform/vfio_platform_irq.c
@@ -291,8 +291,8 @@ int vfio_platform_irq_init(struct vfio_platform_device *vdev)
while (vdev->get_irq(vdev, cnt) >= 0)
cnt++;
- vdev->irqs = kcalloc(cnt, sizeof(struct vfio_platform_irq),
- GFP_KERNEL_ACCOUNT);
+ vdev->irqs = kzalloc_objs(struct vfio_platform_irq, cnt,
+ GFP_KERNEL_ACCOUNT);
if (!vdev->irqs)
return -ENOMEM;
diff --git a/drivers/vfio/vfio_iommu_spapr_tce.c b/drivers/vfio/vfio_iommu_spapr_tce.c
index 5f9e7e477078..3867928d2f49 100644
--- a/drivers/vfio/vfio_iommu_spapr_tce.c
+++ b/drivers/vfio/vfio_iommu_spapr_tce.c
@@ -159,7 +159,7 @@ static long tce_iommu_register_pages(struct tce_container *container,
return ret;
}
- tcemem = kzalloc(sizeof(*tcemem), GFP_KERNEL);
+ tcemem = kzalloc_obj(*tcemem, GFP_KERNEL);
if (!tcemem) {
ret = -ENOMEM;
goto put_exit;
@@ -322,7 +322,7 @@ static void *tce_iommu_open(unsigned long arg)
return ERR_PTR(-EINVAL);
}
- container = kzalloc(sizeof(*container), GFP_KERNEL);
+ container = kzalloc_obj(*container, GFP_KERNEL);
if (!container)
return ERR_PTR(-ENOMEM);
@@ -1290,7 +1290,7 @@ static int tce_iommu_attach_group(void *iommu_data,
}
}
- tcegrp = kzalloc(sizeof(*tcegrp), GFP_KERNEL);
+ tcegrp = kzalloc_obj(*tcegrp, GFP_KERNEL);
if (!tcegrp) {
ret = -ENOMEM;
goto unlock_exit;
diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c
index 5167bec14e36..aedbc2fecb23 100644
--- a/drivers/vfio/vfio_iommu_type1.c
+++ b/drivers/vfio/vfio_iommu_type1.c
@@ -388,7 +388,7 @@ static int vfio_add_to_pfn_list(struct vfio_dma *dma, dma_addr_t iova,
{
struct vfio_pfn *vpfn;
- vpfn = kzalloc(sizeof(*vpfn), GFP_KERNEL);
+ vpfn = kzalloc_obj(*vpfn, GFP_KERNEL);
if (!vpfn)
return -ENOMEM;
@@ -1097,7 +1097,7 @@ static size_t unmap_unpin_fast(struct vfio_domain *domain,
struct iommu_iotlb_gather *iotlb_gather)
{
size_t unmapped = 0;
- struct vfio_regions *entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ struct vfio_regions *entry = kzalloc_obj(*entry, GFP_KERNEL);
if (entry) {
unmapped = iommu_unmap_fast(domain->domain, iova, len,
@@ -1753,7 +1753,7 @@ static int vfio_dma_do_map(struct vfio_iommu *iommu,
goto out_unlock;
}
- dma = kzalloc(sizeof(*dma), GFP_KERNEL);
+ dma = kzalloc_obj(*dma, GFP_KERNEL);
if (!dma) {
ret = -ENOMEM;
goto out_unlock;
@@ -2017,7 +2017,7 @@ static int vfio_iommu_iova_insert(struct list_head *head,
{
struct vfio_iova *region;
- region = kmalloc(sizeof(*region), GFP_KERNEL);
+ region = kmalloc_obj(*region, GFP_KERNEL);
if (!region)
return -ENOMEM;
@@ -2259,7 +2259,7 @@ static int vfio_iommu_type1_attach_group(void *iommu_data,
goto out_unlock;
ret = -ENOMEM;
- group = kzalloc(sizeof(*group), GFP_KERNEL);
+ group = kzalloc_obj(*group, GFP_KERNEL);
if (!group)
goto out_unlock;
group->iommu_group = iommu_group;
@@ -2278,7 +2278,7 @@ static int vfio_iommu_type1_attach_group(void *iommu_data,
}
ret = -ENOMEM;
- domain = kzalloc(sizeof(*domain), GFP_KERNEL);
+ domain = kzalloc_obj(*domain, GFP_KERNEL);
if (!domain)
goto out_free_group;
@@ -2625,7 +2625,7 @@ static void *vfio_iommu_type1_open(unsigned long arg)
{
struct vfio_iommu *iommu;
- iommu = kzalloc(sizeof(*iommu), GFP_KERNEL);
+ iommu = kzalloc_obj(*iommu, GFP_KERNEL);
if (!iommu)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c
index f7df90c423b4..0028abdfe3cb 100644
--- a/drivers/vfio/vfio_main.c
+++ b/drivers/vfio/vfio_main.c
@@ -82,7 +82,7 @@ int vfio_assign_device_set(struct vfio_device *device, void *set_id)
goto found_get_ref;
xa_unlock(&vfio_device_set_xa);
- new_dev_set = kzalloc(sizeof(*new_dev_set), GFP_KERNEL);
+ new_dev_set = kzalloc_obj(*new_dev_set, GFP_KERNEL);
if (!new_dev_set)
return -ENOMEM;
mutex_init(&new_dev_set->lock);
@@ -495,7 +495,7 @@ vfio_allocate_device_file(struct vfio_device *device)
{
struct vfio_device_file *df;
- df = kzalloc(sizeof(*df), GFP_KERNEL_ACCOUNT);
+ df = kzalloc_obj(*df, GFP_KERNEL_ACCOUNT);
if (!df)
return ERR_PTR(-ENOMEM);
@@ -1083,8 +1083,7 @@ vfio_ioctl_device_feature_logging_start(struct vfio_device *device,
return -E2BIG;
ranges = u64_to_user_ptr(control.ranges);
- nodes = kmalloc_array(nnodes, sizeof(struct interval_tree_node),
- GFP_KERNEL);
+ nodes = kmalloc_objs(struct interval_tree_node, nnodes, GFP_KERNEL);
if (!nodes)
return -ENOMEM;
diff --git a/drivers/vfio/virqfd.c b/drivers/vfio/virqfd.c
index aa2891f97508..59105a0ace4c 100644
--- a/drivers/vfio/virqfd.c
+++ b/drivers/vfio/virqfd.c
@@ -118,7 +118,7 @@ int vfio_virqfd_enable(void *opaque,
int ret = 0;
__poll_t events;
- virqfd = kzalloc(sizeof(*virqfd), GFP_KERNEL_ACCOUNT);
+ virqfd = kzalloc_obj(*virqfd, GFP_KERNEL_ACCOUNT);
if (!virqfd)
return -ENOMEM;
diff --git a/drivers/vhost/iotlb.c b/drivers/vhost/iotlb.c
index ea61330a3431..6528d084f42d 100644
--- a/drivers/vhost/iotlb.c
+++ b/drivers/vhost/iotlb.c
@@ -79,7 +79,7 @@ int vhost_iotlb_add_range_ctx(struct vhost_iotlb *iotlb,
vhost_iotlb_map_free(iotlb, map);
}
- map = kmalloc(sizeof(*map), GFP_ATOMIC);
+ map = kmalloc_obj(*map, GFP_ATOMIC);
if (!map)
return -ENOMEM;
@@ -151,7 +151,7 @@ EXPORT_SYMBOL_GPL(vhost_iotlb_init);
*/
struct vhost_iotlb *vhost_iotlb_alloc(unsigned int limit, unsigned int flags)
{
- struct vhost_iotlb *iotlb = kzalloc(sizeof(*iotlb), GFP_KERNEL);
+ struct vhost_iotlb *iotlb = kzalloc_obj(*iotlb, GFP_KERNEL);
if (!iotlb)
return NULL;
diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c
index 7f886d3dba7d..440d959b6e24 100644
--- a/drivers/vhost/net.c
+++ b/drivers/vhost/net.c
@@ -240,7 +240,7 @@ vhost_net_ubuf_alloc(struct vhost_virtqueue *vq, bool zcopy)
/* No zero copy backend? Nothing to count. */
if (!zcopy)
return NULL;
- ubufs = kmalloc(sizeof(*ubufs), GFP_KERNEL);
+ ubufs = kmalloc_obj(*ubufs, GFP_KERNEL);
if (!ubufs)
return ERR_PTR(-ENOMEM);
atomic_set(&ubufs->refcount, 1);
@@ -293,9 +293,8 @@ static int vhost_net_set_ubuf_info(struct vhost_net *n)
if (!zcopy)
continue;
n->vqs[i].ubuf_info =
- kmalloc_array(UIO_MAXIOV,
- sizeof(*n->vqs[i].ubuf_info),
- GFP_KERNEL);
+ kmalloc_objs(*n->vqs[i].ubuf_info, UIO_MAXIOV,
+ GFP_KERNEL);
if (!n->vqs[i].ubuf_info)
goto err;
}
@@ -1328,10 +1327,10 @@ static int vhost_net_open(struct inode *inode, struct file *f)
struct xdp_buff *xdp;
int i;
- n = kvmalloc(sizeof *n, GFP_KERNEL | __GFP_RETRY_MAYFAIL);
+ n = kvmalloc_obj(*n, GFP_KERNEL | __GFP_RETRY_MAYFAIL);
if (!n)
return -ENOMEM;
- vqs = kmalloc_array(VHOST_NET_VQ_MAX, sizeof(*vqs), GFP_KERNEL);
+ vqs = kmalloc_objs(*vqs, VHOST_NET_VQ_MAX, GFP_KERNEL);
if (!vqs) {
kvfree(n);
return -ENOMEM;
@@ -1346,7 +1345,7 @@ static int vhost_net_open(struct inode *inode, struct file *f)
}
n->vqs[VHOST_NET_VQ_RX].rxq.queue = queue;
- xdp = kmalloc_array(VHOST_NET_BATCH, sizeof(*xdp), GFP_KERNEL);
+ xdp = kmalloc_objs(*xdp, VHOST_NET_BATCH, GFP_KERNEL);
if (!xdp) {
kfree(vqs);
kvfree(n);
diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c
index f43c1fe9fad9..36ed704562d7 100644
--- a/drivers/vhost/scsi.c
+++ b/drivers/vhost/scsi.c
@@ -382,9 +382,8 @@ static int vhost_scsi_copy_cmd_log(struct vhost_virtqueue *vq,
unsigned int log_num)
{
if (!cmd->tvc_log)
- cmd->tvc_log = kmalloc_array(vq->dev->iov_limit,
- sizeof(*cmd->tvc_log),
- GFP_KERNEL);
+ cmd->tvc_log = kmalloc_objs(*cmd->tvc_log, vq->dev->iov_limit,
+ GFP_KERNEL);
if (unlikely(!cmd->tvc_log)) {
vq_err(vq, "Failed to alloc tvc_log\n");
@@ -549,7 +548,7 @@ vhost_scsi_allocate_evt(struct vhost_scsi *vs,
return NULL;
}
- evt = kzalloc(sizeof(*evt), GFP_KERNEL);
+ evt = kzalloc_obj(*evt, GFP_KERNEL);
if (!evt) {
vq_err(vq, "Failed to allocate vhost_scsi_evt\n");
vs->vs_events_missed = true;
@@ -897,7 +896,7 @@ vhost_scsi_copy_iov_to_sgl(struct vhost_scsi_cmd *cmd, struct iov_iter *iter,
int i, ret;
if (data_dir == DMA_FROM_DEVICE) {
- cmd->read_iter = kzalloc(sizeof(*cmd->read_iter), GFP_KERNEL);
+ cmd->read_iter = kzalloc_obj(*cmd->read_iter, GFP_KERNEL);
if (!cmd->read_iter)
return -ENOMEM;
@@ -1264,8 +1263,7 @@ vhost_scsi_setup_resp_iovs(struct vhost_scsi_cmd *cmd, struct iovec *in_iovs,
* iov per byte.
*/
cnt = min(VHOST_SCSI_MAX_RESP_IOVS, in_iovs_cnt);
- cmd->tvc_resp_iovs = kcalloc(cnt, sizeof(struct iovec),
- GFP_KERNEL);
+ cmd->tvc_resp_iovs = kzalloc_objs(struct iovec, cnt, GFP_KERNEL);
if (!cmd->tvc_resp_iovs)
return -ENOMEM;
@@ -1603,7 +1601,7 @@ vhost_scsi_handle_tmf(struct vhost_scsi *vs, struct vhost_scsi_tpg *tpg,
goto send_reject;
}
- tmf = kzalloc(sizeof(*tmf), GFP_KERNEL);
+ tmf = kzalloc_obj(*tmf, GFP_KERNEL);
if (!tmf)
goto send_reject;
@@ -1617,8 +1615,7 @@ vhost_scsi_handle_tmf(struct vhost_scsi *vs, struct vhost_scsi_tpg *tpg,
tmf->inflight = vhost_scsi_get_inflight(vq);
if (unlikely(log && log_num)) {
- tmf->tmf_log = kmalloc_array(log_num, sizeof(*tmf->tmf_log),
- GFP_KERNEL);
+ tmf->tmf_log = kmalloc_objs(*tmf->tmf_log, log_num, GFP_KERNEL);
if (tmf->tmf_log) {
memcpy(tmf->tmf_log, log, sizeof(*tmf->tmf_log) * log_num);
tmf->tmf_log_num = log_num;
@@ -1936,14 +1933,14 @@ static int vhost_scsi_setup_vq_cmds(struct vhost_virtqueue *vq, int max_cmds)
return -ENOMEM;
svq->max_cmds = max_cmds;
- svq->scsi_cmds = kcalloc(max_cmds, sizeof(*tv_cmd), GFP_KERNEL);
+ svq->scsi_cmds = kzalloc_objs(*tv_cmd, max_cmds, GFP_KERNEL);
if (!svq->scsi_cmds) {
sbitmap_free(&svq->scsi_tags);
return -ENOMEM;
}
- svq->upages = kcalloc(VHOST_SCSI_PREALLOC_UPAGES, sizeof(struct page *),
- GFP_KERNEL);
+ svq->upages = kzalloc_objs(struct page *, VHOST_SCSI_PREALLOC_UPAGES,
+ GFP_KERNEL);
if (!svq->upages)
goto out;
@@ -1951,9 +1948,9 @@ static int vhost_scsi_setup_vq_cmds(struct vhost_virtqueue *vq, int max_cmds)
tv_cmd = &svq->scsi_cmds[i];
if (vs->inline_sg_cnt) {
- tv_cmd->sgl = kcalloc(vs->inline_sg_cnt,
- sizeof(struct scatterlist),
- GFP_KERNEL);
+ tv_cmd->sgl = kzalloc_objs(struct scatterlist,
+ vs->inline_sg_cnt,
+ GFP_KERNEL);
if (!tv_cmd->sgl) {
pr_err("Unable to allocate tv_cmd->sgl\n");
goto out;
@@ -1962,9 +1959,9 @@ static int vhost_scsi_setup_vq_cmds(struct vhost_virtqueue *vq, int max_cmds)
if (vhost_has_feature(vq, VIRTIO_SCSI_F_T10_PI) &&
vs->inline_sg_cnt) {
- tv_cmd->prot_sgl = kcalloc(vs->inline_sg_cnt,
- sizeof(struct scatterlist),
- GFP_KERNEL);
+ tv_cmd->prot_sgl = kzalloc_objs(struct scatterlist,
+ vs->inline_sg_cnt,
+ GFP_KERNEL);
if (!tv_cmd->prot_sgl) {
pr_err("Unable to allocate tv_cmd->prot_sgl\n");
goto out;
@@ -2282,7 +2279,7 @@ static int vhost_scsi_open(struct inode *inode, struct file *f)
struct vhost_virtqueue **vqs;
int r = -ENOMEM, i, nvqs = vhost_scsi_max_io_vqs;
- vs = kvzalloc(sizeof(*vs), GFP_KERNEL);
+ vs = kvzalloc_obj(*vs, GFP_KERNEL);
if (!vs)
goto err_vs;
vs->inline_sg_cnt = vhost_scsi_inline_sg_cnt;
@@ -2297,17 +2294,16 @@ static int vhost_scsi_open(struct inode *inode, struct file *f)
}
nvqs += VHOST_SCSI_VQ_IO;
- vs->old_inflight = kmalloc_array(nvqs, sizeof(*vs->old_inflight),
- GFP_KERNEL | __GFP_ZERO);
+ vs->old_inflight = kmalloc_objs(*vs->old_inflight, nvqs,
+ GFP_KERNEL | __GFP_ZERO);
if (!vs->old_inflight)
goto err_inflight;
- vs->vqs = kmalloc_array(nvqs, sizeof(*vs->vqs),
- GFP_KERNEL | __GFP_ZERO);
+ vs->vqs = kmalloc_objs(*vs->vqs, nvqs, GFP_KERNEL | __GFP_ZERO);
if (!vs->vqs)
goto err_vqs;
- vqs = kmalloc_array(nvqs, sizeof(*vqs), GFP_KERNEL);
+ vqs = kmalloc_objs(*vqs, nvqs, GFP_KERNEL);
if (!vqs)
goto err_local_vqs;
@@ -2603,7 +2599,7 @@ static int vhost_scsi_make_nexus(struct vhost_scsi_tpg *tpg,
return -EEXIST;
}
- tv_nexus = kzalloc(sizeof(*tv_nexus), GFP_KERNEL);
+ tv_nexus = kzalloc_obj(*tv_nexus, GFP_KERNEL);
if (!tv_nexus) {
mutex_unlock(&tpg->tv_tpg_mutex);
pr_err("Unable to allocate struct vhost_scsi_nexus\n");
@@ -2798,7 +2794,7 @@ vhost_scsi_make_tpg(struct se_wwn *wwn, const char *name)
if (kstrtou16(name + 5, 10, &tpgt) || tpgt >= VHOST_SCSI_MAX_TARGET)
return ERR_PTR(-EINVAL);
- tpg = kzalloc(sizeof(*tpg), GFP_KERNEL);
+ tpg = kzalloc_obj(*tpg, GFP_KERNEL);
if (!tpg) {
pr_err("Unable to allocate struct vhost_scsi_tpg");
return ERR_PTR(-ENOMEM);
@@ -2852,7 +2848,7 @@ vhost_scsi_make_tport(struct target_fabric_configfs *tf,
/* if (vhost_scsi_parse_wwn(name, &wwpn, 1) < 0)
return ERR_PTR(-EINVAL); */
- tport = kzalloc(sizeof(*tport), GFP_KERNEL);
+ tport = kzalloc_obj(*tport, GFP_KERNEL);
if (!tport) {
pr_err("Unable to allocate struct vhost_scsi_tport");
return ERR_PTR(-ENOMEM);
diff --git a/drivers/vhost/test.c b/drivers/vhost/test.c
index 1e4e36edbcd2..fc11a048a620 100644
--- a/drivers/vhost/test.c
+++ b/drivers/vhost/test.c
@@ -110,13 +110,13 @@ static void handle_vq_kick(struct vhost_work *work)
static int vhost_test_open(struct inode *inode, struct file *f)
{
- struct vhost_test *n = kmalloc(sizeof *n, GFP_KERNEL);
+ struct vhost_test *n = kmalloc_obj(*n, GFP_KERNEL);
struct vhost_dev *dev;
struct vhost_virtqueue **vqs;
if (!n)
return -ENOMEM;
- vqs = kmalloc_array(VHOST_TEST_VQ_MAX, sizeof(*vqs), GFP_KERNEL);
+ vqs = kmalloc_objs(*vqs, VHOST_TEST_VQ_MAX, GFP_KERNEL);
if (!vqs) {
kfree(n);
return -ENOMEM;
diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c
index cdee8f320dca..a9f85f05874f 100644
--- a/drivers/vhost/vdpa.c
+++ b/drivers/vhost/vdpa.c
@@ -110,7 +110,7 @@ static struct vhost_vdpa_as *vhost_vdpa_alloc_as(struct vhost_vdpa *v, u32 asid)
if (asid >= v->vdpa->nas)
return NULL;
- as = kmalloc(sizeof(*as), GFP_KERNEL);
+ as = kmalloc_obj(*as, GFP_KERNEL);
if (!as)
return NULL;
@@ -1064,7 +1064,7 @@ static int vhost_vdpa_va_map(struct vhost_vdpa *v,
!(vma->vm_flags & (VM_IO | VM_PFNMAP))))
goto next;
- map_file = kzalloc(sizeof(*map_file), GFP_KERNEL);
+ map_file = kzalloc_obj(*map_file, GFP_KERNEL);
if (!map_file) {
ret = -ENOMEM;
break;
@@ -1420,7 +1420,7 @@ static int vhost_vdpa_open(struct inode *inode, struct file *filep)
if (r)
goto err;
- vqs = kmalloc_array(nvqs, sizeof(*vqs), GFP_KERNEL);
+ vqs = kmalloc_objs(*vqs, nvqs, GFP_KERNEL);
if (!vqs) {
r = -ENOMEM;
goto err;
@@ -1572,7 +1572,7 @@ static int vhost_vdpa_probe(struct vdpa_device *vdpa)
(vdpa->ngroups > 1 || vdpa->nas > 1))
return -EOPNOTSUPP;
- v = kzalloc(sizeof(*v), GFP_KERNEL | __GFP_RETRY_MAYFAIL);
+ v = kzalloc_obj(*v, GFP_KERNEL | __GFP_RETRY_MAYFAIL);
if (!v)
return -ENOMEM;
@@ -1593,8 +1593,7 @@ static int vhost_vdpa_probe(struct vdpa_device *vdpa)
v->dev.release = vhost_vdpa_release_dev;
v->dev.parent = &vdpa->dev;
v->dev.devt = MKDEV(MAJOR(vhost_vdpa_major), minor);
- v->vqs = kmalloc_array(v->nvqs, sizeof(struct vhost_virtqueue),
- GFP_KERNEL);
+ v->vqs = kmalloc_objs(struct vhost_virtqueue, v->nvqs, GFP_KERNEL);
if (!v->vqs) {
r = -ENOMEM;
goto err;
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index fcf7f10adbbf..dafbc3dd3805 100644
--- a/drivers/vhost/vhost.c
+++ b/drivers/vhost/vhost.c
@@ -514,13 +514,10 @@ static long vhost_dev_alloc_iovecs(struct vhost_dev *dev)
for (i = 0; i < dev->nvqs; ++i) {
vq = dev->vqs[i];
- vq->indirect = kmalloc_array(UIO_MAXIOV,
- sizeof(*vq->indirect),
- GFP_KERNEL);
- vq->log = kmalloc_array(dev->iov_limit, sizeof(*vq->log),
- GFP_KERNEL);
- vq->heads = kmalloc_array(dev->iov_limit, sizeof(*vq->heads),
- GFP_KERNEL);
+ vq->indirect = kmalloc_objs(*vq->indirect, UIO_MAXIOV,
+ GFP_KERNEL);
+ vq->log = kmalloc_objs(*vq->log, dev->iov_limit, GFP_KERNEL);
+ vq->heads = kmalloc_objs(*vq->heads, dev->iov_limit, GFP_KERNEL);
vq->nheads = kmalloc_array(dev->iov_limit, sizeof(*vq->nheads),
GFP_KERNEL);
if (!vq->indirect || !vq->log || !vq->heads || !vq->nheads)
@@ -836,7 +833,7 @@ static struct vhost_worker *vhost_worker_create(struct vhost_dev *dev)
const struct vhost_worker_ops *ops = dev->fork_owner ? &vhost_task_ops :
&kthread_ops;
- worker = kzalloc(sizeof(*worker), GFP_KERNEL_ACCOUNT);
+ worker = kzalloc_obj(*worker, GFP_KERNEL_ACCOUNT);
if (!worker)
return NULL;
@@ -1982,8 +1979,7 @@ static long vhost_set_memory(struct vhost_dev *d, struct vhost_memory __user *m)
return -EOPNOTSUPP;
if (mem.nregions > max_mem_regions)
return -E2BIG;
- newmem = kvzalloc(struct_size(newmem, regions, mem.nregions),
- GFP_KERNEL);
+ newmem = kvzalloc_flex(*newmem, regions, mem.nregions, GFP_KERNEL);
if (!newmem)
return -ENOMEM;
@@ -3272,7 +3268,7 @@ EXPORT_SYMBOL_GPL(vhost_disable_notify);
struct vhost_msg_node *vhost_new_msg(struct vhost_virtqueue *vq, int type)
{
/* Make sure all padding within the structure is initialized. */
- struct vhost_msg_node *node = kzalloc(sizeof(*node), GFP_KERNEL);
+ struct vhost_msg_node *node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return NULL;
diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c
index 925858cc6096..9066f9f12ba1 100644
--- a/drivers/vhost/vringh.c
+++ b/drivers/vhost/vringh.c
@@ -227,7 +227,7 @@ static int resize_iovec(struct vringh_kiov *iov, gfp_t gfp)
if (flag)
new = krealloc_array(iov->iov, new_num, sizeof(*new), gfp);
else {
- new = kmalloc_array(new_num, sizeof(*new), gfp);
+ new = kmalloc_objs(*new, new_num, gfp);
if (new) {
memcpy(new, iov->iov,
iov->max_num * sizeof(struct iovec));
diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c
index 488d7fa6e4ec..0bb4e3fdc71c 100644
--- a/drivers/vhost/vsock.c
+++ b/drivers/vhost/vsock.c
@@ -676,11 +676,11 @@ static int vhost_vsock_dev_open(struct inode *inode, struct file *file)
/* This struct is large and allocation could fail, fall back to vmalloc
* if there is no other way.
*/
- vsock = kvmalloc(sizeof(*vsock), GFP_KERNEL | __GFP_RETRY_MAYFAIL);
+ vsock = kvmalloc_obj(*vsock, GFP_KERNEL | __GFP_RETRY_MAYFAIL);
if (!vsock)
return -ENOMEM;
- vqs = kmalloc_array(ARRAY_SIZE(vsock->vqs), sizeof(*vqs), GFP_KERNEL);
+ vqs = kmalloc_objs(*vqs, ARRAY_SIZE(vsock->vqs), GFP_KERNEL);
if (!vqs) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index 1e9b7e85d99a..c6e155a150a5 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -371,7 +371,7 @@ struct backlight_device *backlight_device_register(const char *name,
pr_debug("backlight_device_register: name=%s\n", name);
- new_bd = kzalloc(sizeof(struct backlight_device), GFP_KERNEL);
+ new_bd = kzalloc_obj(struct backlight_device, GFP_KERNEL);
if (!new_bd)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/video/backlight/lcd.c b/drivers/video/backlight/lcd.c
index affe5c52471a..d33c4f370075 100644
--- a/drivers/video/backlight/lcd.c
+++ b/drivers/video/backlight/lcd.c
@@ -197,7 +197,7 @@ struct lcd_device *lcd_device_register(const char *name, struct device *parent,
pr_debug("lcd_device_register: name=%s\n", name);
- new_ld = kzalloc(sizeof(struct lcd_device), GFP_KERNEL);
+ new_ld = kzalloc_obj(struct lcd_device, GFP_KERNEL);
if (!new_ld)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/video/console/sticon.c b/drivers/video/console/sticon.c
index f1f3ee8e5e8a..98df1ddfd1e9 100644
--- a/drivers/video/console/sticon.c
+++ b/drivers/video/console/sticon.c
@@ -186,7 +186,7 @@ static int sticon_set_font(struct vc_data *vc, const struct console_font *op,
new_font->underline_height = 0;
new_font->underline_pos = 0;
- cooked_font = kzalloc(sizeof(*cooked_font), GFP_KERNEL);
+ cooked_font = kzalloc_obj(*cooked_font, GFP_KERNEL);
if (!cooked_font) {
kfree(new_font);
return -ENOMEM;
diff --git a/drivers/video/fbdev/arkfb.c b/drivers/video/fbdev/arkfb.c
index ec084323115f..990e8038ffb3 100644
--- a/drivers/video/fbdev/arkfb.c
+++ b/drivers/video/fbdev/arkfb.c
@@ -431,7 +431,8 @@ static struct dac_ops ics5342_ops = {
static struct dac_info * ics5342_init(dac_read_regs_t drr, dac_write_regs_t dwr, void *data)
{
- struct ics5342_info *ics_info = kzalloc(sizeof(struct ics5342_info), GFP_KERNEL);
+ struct ics5342_info *ics_info = kzalloc_obj(struct ics5342_info,
+ GFP_KERNEL);
struct dac_info *info = &ics_info->dac;
if (!ics_info)
diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c
index 56ef1d88e003..d5e107730a4d 100644
--- a/drivers/video/fbdev/aty/atyfb_base.c
+++ b/drivers/video/fbdev/aty/atyfb_base.c
@@ -2976,7 +2976,7 @@ static int atyfb_setup_sparc(struct pci_dev *pdev, struct fb_info *info,
/* nothing */ ;
j = i + 4;
- par->mmap_map = kcalloc(j, sizeof(*par->mmap_map), GFP_ATOMIC);
+ par->mmap_map = kzalloc_objs(*par->mmap_map, j, GFP_ATOMIC);
if (!par->mmap_map) {
PRINTKE("atyfb_setup_sparc() can't alloc mmap_map\n");
return -ENOMEM;
diff --git a/drivers/video/fbdev/aty/radeon_backlight.c b/drivers/video/fbdev/aty/radeon_backlight.c
index bf764c92bcf1..908b2be850ac 100644
--- a/drivers/video/fbdev/aty/radeon_backlight.c
+++ b/drivers/video/fbdev/aty/radeon_backlight.c
@@ -136,7 +136,7 @@ void radeonfb_bl_init(struct radeonfb_info *rinfo)
return;
#endif
- pdata = kmalloc(sizeof(struct radeon_bl_privdata), GFP_KERNEL);
+ pdata = kmalloc_obj(struct radeon_bl_privdata, GFP_KERNEL);
if (!pdata) {
printk("radeonfb: Memory allocation failed\n");
goto error;
diff --git a/drivers/video/fbdev/aty/radeon_base.c b/drivers/video/fbdev/aty/radeon_base.c
index 1d2c57ba25a3..979e8eb6cda4 100644
--- a/drivers/video/fbdev/aty/radeon_base.c
+++ b/drivers/video/fbdev/aty/radeon_base.c
@@ -1653,7 +1653,7 @@ static int radeonfb_set_par(struct fb_info *info)
int depth = var_to_depth(mode);
int use_rmx = 0;
- newmode = kmalloc(sizeof(struct radeon_regs), GFP_KERNEL);
+ newmode = kmalloc_obj(struct radeon_regs, GFP_KERNEL);
if (!newmode)
return -ENOMEM;
diff --git a/drivers/video/fbdev/carminefb.c b/drivers/video/fbdev/carminefb.c
index 2bdd67595891..82836c327f05 100644
--- a/drivers/video/fbdev/carminefb.c
+++ b/drivers/video/fbdev/carminefb.c
@@ -620,7 +620,7 @@ static int carminefb_probe(struct pci_dev *dev, const struct pci_device_id *ent)
return ret;
ret = -ENOMEM;
- hw = kzalloc(sizeof *hw, GFP_KERNEL);
+ hw = kzalloc_obj(*hw, GFP_KERNEL);
if (!hw)
goto err_enable_pci;
diff --git a/drivers/video/fbdev/controlfb.c b/drivers/video/fbdev/controlfb.c
index 5c5284e8ae0e..b589f46178a2 100644
--- a/drivers/video/fbdev/controlfb.c
+++ b/drivers/video/fbdev/controlfb.c
@@ -944,7 +944,7 @@ static int __init control_of_init(struct device_node *dp)
printk(KERN_ERR "can't get 2 addresses for control\n");
return -ENXIO;
}
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return -ENOMEM;
control_fb = p; /* save it for cleanups */
diff --git a/drivers/video/fbdev/core/fb_defio.c b/drivers/video/fbdev/core/fb_defio.c
index 8df2e51e3390..2b2604255b90 100644
--- a/drivers/video/fbdev/core/fb_defio.c
+++ b/drivers/video/fbdev/core/fb_defio.c
@@ -307,7 +307,7 @@ int fb_deferred_io_init(struct fb_info *info)
npagerefs = DIV_ROUND_UP(info->fix.smem_len, PAGE_SIZE);
/* alloc a page ref for each page of the display memory */
- pagerefs = kvcalloc(npagerefs, sizeof(*pagerefs), GFP_KERNEL);
+ pagerefs = kvzalloc_objs(*pagerefs, npagerefs, GFP_KERNEL);
if (!pagerefs) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
index 98387c42e4e5..29ed5b152ac6 100644
--- a/drivers/video/fbdev/core/fbcon.c
+++ b/drivers/video/fbdev/core/fbcon.c
@@ -769,7 +769,7 @@ static int fbcon_open(struct fb_info *info)
}
unlock_fb_info(info);
- par = kzalloc(sizeof(*par), GFP_KERNEL);
+ par = kzalloc_obj(*par, GFP_KERNEL);
if (!par) {
fbcon_release(info);
return -ENOMEM;
diff --git a/drivers/video/fbdev/core/fbmon.c b/drivers/video/fbdev/core/fbmon.c
index 07df7e98f8a3..67ccb5607ded 100644
--- a/drivers/video/fbdev/core/fbmon.c
+++ b/drivers/video/fbdev/core/fbmon.c
@@ -388,7 +388,7 @@ static void calc_mode_timings(int xres, int yres, int refresh,
{
struct fb_var_screeninfo *var;
- var = kzalloc(sizeof(struct fb_var_screeninfo), GFP_KERNEL);
+ var = kzalloc_obj(struct fb_var_screeninfo, GFP_KERNEL);
if (var) {
var->xres = xres;
@@ -626,7 +626,7 @@ static struct fb_videomode *fb_create_modedb(unsigned char *edid, int *dbsize,
int num = 0, i, first = 1;
int ver, rev;
- mode = kcalloc(50, sizeof(struct fb_videomode), GFP_KERNEL);
+ mode = kzalloc_objs(struct fb_videomode, 50, GFP_KERNEL);
if (mode == NULL)
return NULL;
@@ -677,7 +677,7 @@ static struct fb_videomode *fb_create_modedb(unsigned char *edid, int *dbsize,
}
*dbsize = num;
- m = kmalloc_array(num, sizeof(struct fb_videomode), GFP_KERNEL);
+ m = kmalloc_objs(struct fb_videomode, num, GFP_KERNEL);
if (!m)
return mode;
memmove(m, mode, num * sizeof(struct fb_videomode));
@@ -1224,7 +1224,7 @@ int fb_get_mode(int flags, u32 val, struct fb_var_screeninfo *var, struct fb_inf
u32 hfmin, hfmax, vfmin, vfmax, dclkmin, dclkmax, err = 0;
- timings = kzalloc(sizeof(struct __fb_timings), GFP_KERNEL);
+ timings = kzalloc_obj(struct __fb_timings, GFP_KERNEL);
if (!timings)
return -ENOMEM;
diff --git a/drivers/video/fbdev/core/modedb.c b/drivers/video/fbdev/core/modedb.c
index 53a610948c4a..fda6066eec99 100644
--- a/drivers/video/fbdev/core/modedb.c
+++ b/drivers/video/fbdev/core/modedb.c
@@ -1070,8 +1070,7 @@ int fb_add_videomode(const struct fb_videomode *mode, struct list_head *head)
}
}
if (!found) {
- modelist = kmalloc(sizeof(struct fb_modelist),
- GFP_KERNEL);
+ modelist = kmalloc_obj(struct fb_modelist, GFP_KERNEL);
if (!modelist)
return -ENOMEM;
diff --git a/drivers/video/fbdev/cyber2000fb.c b/drivers/video/fbdev/cyber2000fb.c
index 5cb5ee517f81..172ca6bc2c05 100644
--- a/drivers/video/fbdev/cyber2000fb.c
+++ b/drivers/video/fbdev/cyber2000fb.c
@@ -1363,7 +1363,7 @@ static struct cfb_info *cyberpro_alloc_fb_info(unsigned int id, char *name)
{
struct cfb_info *cfb;
- cfb = kzalloc(sizeof(struct cfb_info), GFP_KERNEL);
+ cfb = kzalloc_obj(struct cfb_info, GFP_KERNEL);
if (!cfb)
return NULL;
diff --git a/drivers/video/fbdev/goldfishfb.c b/drivers/video/fbdev/goldfishfb.c
index 7704f2ab18c0..fcba50a6f65b 100644
--- a/drivers/video/fbdev/goldfishfb.c
+++ b/drivers/video/fbdev/goldfishfb.c
@@ -180,7 +180,7 @@ static int goldfish_fb_probe(struct platform_device *pdev)
u32 width, height;
dma_addr_t fbpaddr;
- fb = kzalloc(sizeof(*fb), GFP_KERNEL);
+ fb = kzalloc_obj(*fb, GFP_KERNEL);
if (fb == NULL) {
ret = -ENOMEM;
goto err_fb_alloc_failed;
diff --git a/drivers/video/fbdev/matrox/i2c-matroxfb.c b/drivers/video/fbdev/matrox/i2c-matroxfb.c
index bb048e14b2cf..6741028d2d0c 100644
--- a/drivers/video/fbdev/matrox/i2c-matroxfb.c
+++ b/drivers/video/fbdev/matrox/i2c-matroxfb.c
@@ -144,7 +144,7 @@ static void* i2c_matroxfb_probe(struct matrox_fb_info* minfo) {
unsigned long flags;
struct matroxfb_dh_maven_info* m2info;
- m2info = kzalloc(sizeof(*m2info), GFP_KERNEL);
+ m2info = kzalloc_obj(*m2info, GFP_KERNEL);
if (!m2info)
return NULL;
diff --git a/drivers/video/fbdev/matrox/matroxfb_base.c b/drivers/video/fbdev/matrox/matroxfb_base.c
index 5be0cdcd7c71..e7d8e13d1945 100644
--- a/drivers/video/fbdev/matrox/matroxfb_base.c
+++ b/drivers/video/fbdev/matrox/matroxfb_base.c
@@ -2073,7 +2073,7 @@ static int matroxfb_probe(struct pci_dev* pdev, const struct pci_device_id* dumm
return -1;
}
- minfo = kzalloc(sizeof(*minfo), GFP_KERNEL);
+ minfo = kzalloc_obj(*minfo, GFP_KERNEL);
if (!minfo)
return -ENOMEM;
diff --git a/drivers/video/fbdev/matrox/matroxfb_crtc2.c b/drivers/video/fbdev/matrox/matroxfb_crtc2.c
index 417fc692468d..6043ebb2bc96 100644
--- a/drivers/video/fbdev/matrox/matroxfb_crtc2.c
+++ b/drivers/video/fbdev/matrox/matroxfb_crtc2.c
@@ -693,7 +693,7 @@ static void* matroxfb_crtc2_probe(struct matrox_fb_info* minfo) {
/* hardware is CRTC2 incapable... */
if (!minfo->devflags.crtc2)
return NULL;
- m2info = kzalloc(sizeof(*m2info), GFP_KERNEL);
+ m2info = kzalloc_obj(*m2info, GFP_KERNEL);
if (!m2info)
return NULL;
diff --git a/drivers/video/fbdev/matrox/matroxfb_maven.c b/drivers/video/fbdev/matrox/matroxfb_maven.c
index dcfae770b42d..63cc77ac74ea 100644
--- a/drivers/video/fbdev/matrox/matroxfb_maven.c
+++ b/drivers/video/fbdev/matrox/matroxfb_maven.c
@@ -1260,7 +1260,7 @@ static int maven_probe(struct i2c_client *client)
I2C_FUNC_NOSTART |
I2C_FUNC_PROTOCOL_MANGLING))
goto ERROR0;
- if (!(data = kzalloc(sizeof(*data), GFP_KERNEL))) {
+ if (!(data = kzalloc_obj(*data, GFP_KERNEL))) {
err = -ENOMEM;
goto ERROR0;
}
diff --git a/drivers/video/fbdev/mmp/core.c b/drivers/video/fbdev/mmp/core.c
index 03707461eced..9e7c138b1290 100644
--- a/drivers/video/fbdev/mmp/core.c
+++ b/drivers/video/fbdev/mmp/core.c
@@ -155,8 +155,7 @@ struct mmp_path *mmp_register_path(struct mmp_path_info *info)
struct mmp_path *path = NULL;
struct mmp_panel *panel;
- path = kzalloc(struct_size(path, overlays, info->overlay_num),
- GFP_KERNEL);
+ path = kzalloc_flex(*path, overlays, info->overlay_num, GFP_KERNEL);
if (!path)
return NULL;
diff --git a/drivers/video/fbdev/mmp/fb/mmpfb.c b/drivers/video/fbdev/mmp/fb/mmpfb.c
index 2d9797c6fb3e..18cef14e6d4c 100644
--- a/drivers/video/fbdev/mmp/fb/mmpfb.c
+++ b/drivers/video/fbdev/mmp/fb/mmpfb.c
@@ -476,8 +476,8 @@ static int modes_setup(struct mmpfb_info *fbi)
return 0;
}
/* put videomode list to info structure */
- videomodes = kcalloc(videomode_num, sizeof(struct fb_videomode),
- GFP_KERNEL);
+ videomodes = kzalloc_objs(struct fb_videomode, videomode_num,
+ GFP_KERNEL);
if (!videomodes)
return -ENOMEM;
diff --git a/drivers/video/fbdev/mmp/hw/mmp_ctrl.c b/drivers/video/fbdev/mmp/hw/mmp_ctrl.c
index 03e23173198c..2cd152f7a4be 100644
--- a/drivers/video/fbdev/mmp/hw/mmp_ctrl.c
+++ b/drivers/video/fbdev/mmp/hw/mmp_ctrl.c
@@ -402,7 +402,7 @@ static int path_init(struct mmphw_path_plat *path_plat,
dev_info(ctrl->dev, "%s: %s\n", __func__, config->name);
/* init driver data */
- path_info = kzalloc(sizeof(*path_info), GFP_KERNEL);
+ path_info = kzalloc_obj(*path_info, GFP_KERNEL);
if (!path_info)
return 0;
diff --git a/drivers/video/fbdev/mmp/panel/tpo_tj032md01bw.c b/drivers/video/fbdev/mmp/panel/tpo_tj032md01bw.c
index 34fae588e202..40194c60987d 100644
--- a/drivers/video/fbdev/mmp/panel/tpo_tj032md01bw.c
+++ b/drivers/video/fbdev/mmp/panel/tpo_tj032md01bw.c
@@ -144,7 +144,7 @@ static int tpohvga_probe(struct spi_device *spi)
return ret;
}
- plat_data = kzalloc(sizeof(*plat_data), GFP_KERNEL);
+ plat_data = kzalloc_obj(*plat_data, GFP_KERNEL);
if (plat_data == NULL)
return -ENOMEM;
diff --git a/drivers/video/fbdev/neofb.c b/drivers/video/fbdev/neofb.c
index 632ba2455913..7b7a2b2d1a40 100644
--- a/drivers/video/fbdev/neofb.c
+++ b/drivers/video/fbdev/neofb.c
@@ -1768,7 +1768,7 @@ static int neo_scan_monitor(struct fb_info *info)
int w;
// Eventually we will have i2c support.
- info->monspecs.modedb = kmalloc(sizeof(struct fb_videomode), GFP_KERNEL);
+ info->monspecs.modedb = kmalloc_obj(struct fb_videomode, GFP_KERNEL);
if (!info->monspecs.modedb)
return -ENOMEM;
info->monspecs.modedb_len = 1;
diff --git a/drivers/video/fbdev/nvidia/nv_setup.c b/drivers/video/fbdev/nvidia/nv_setup.c
index 5404017e6957..f392da4761da 100644
--- a/drivers/video/fbdev/nvidia/nv_setup.c
+++ b/drivers/video/fbdev/nvidia/nv_setup.c
@@ -283,9 +283,9 @@ int NVCommonSetup(struct fb_info *info)
int Television = 0;
int err = 0;
- var = kzalloc(sizeof(struct fb_var_screeninfo), GFP_KERNEL);
- monitorA = kzalloc(sizeof(struct fb_monspecs), GFP_KERNEL);
- monitorB = kzalloc(sizeof(struct fb_monspecs), GFP_KERNEL);
+ var = kzalloc_obj(struct fb_var_screeninfo, GFP_KERNEL);
+ monitorA = kzalloc_obj(struct fb_monspecs, GFP_KERNEL);
+ monitorB = kzalloc_obj(struct fb_monspecs, GFP_KERNEL);
if (!var || !monitorA || !monitorB) {
err = -ENOMEM;
diff --git a/drivers/video/fbdev/omap/lcd_mipid.c b/drivers/video/fbdev/omap/lcd_mipid.c
index a0fc4570403b..ffe0ce489adb 100644
--- a/drivers/video/fbdev/omap/lcd_mipid.c
+++ b/drivers/video/fbdev/omap/lcd_mipid.c
@@ -552,7 +552,7 @@ static int mipid_spi_probe(struct spi_device *spi)
struct mipid_device *md;
int r;
- md = kzalloc(sizeof(*md), GFP_KERNEL);
+ md = kzalloc_obj(*md, GFP_KERNEL);
if (md == NULL) {
dev_err(&spi->dev, "out of memory\n");
return -ENOMEM;
diff --git a/drivers/video/fbdev/omap/omapfb_main.c b/drivers/video/fbdev/omap/omapfb_main.c
index a8740213e891..8306faf01f40 100644
--- a/drivers/video/fbdev/omap/omapfb_main.c
+++ b/drivers/video/fbdev/omap/omapfb_main.c
@@ -1630,7 +1630,7 @@ static int omapfb_do_probe(struct platform_device *pdev,
goto cleanup;
}
- fbdev = kzalloc(sizeof(*fbdev), GFP_KERNEL);
+ fbdev = kzalloc_obj(*fbdev, GFP_KERNEL);
if (fbdev == NULL) {
dev_err(&pdev->dev,
"unable to allocate memory for device info\n");
diff --git a/drivers/video/fbdev/omap2/omapfb/dss/dsi.c b/drivers/video/fbdev/omap2/omapfb/dss/dsi.c
index 370e8623754e..19498b7ccb14 100644
--- a/drivers/video/fbdev/omap2/omapfb/dss/dsi.c
+++ b/drivers/video/fbdev/omap2/omapfb/dss/dsi.c
@@ -1539,7 +1539,7 @@ static void dsi_dump_dsidev_irqs(struct platform_device *dsidev,
unsigned long flags;
struct dsi_irq_stats *stats;
- stats = kzalloc(sizeof(*stats), GFP_KERNEL);
+ stats = kzalloc_obj(*stats, GFP_KERNEL);
if (!stats) {
seq_printf(s, "out of memory\n");
return;
diff --git a/drivers/video/fbdev/omap2/omapfb/dss/manager.c b/drivers/video/fbdev/omap2/omapfb/dss/manager.c
index c59e5689d6cc..0fc5d43c58ff 100644
--- a/drivers/video/fbdev/omap2/omapfb/dss/manager.c
+++ b/drivers/video/fbdev/omap2/omapfb/dss/manager.c
@@ -32,8 +32,8 @@ int dss_init_overlay_managers(void)
num_managers = dss_feat_get_num_mgrs();
- managers = kcalloc(num_managers, sizeof(struct omap_overlay_manager),
- GFP_KERNEL);
+ managers = kzalloc_objs(struct omap_overlay_manager, num_managers,
+ GFP_KERNEL);
BUG_ON(managers == NULL);
diff --git a/drivers/video/fbdev/omap2/omapfb/dss/omapdss-boot-init.c b/drivers/video/fbdev/omap2/omapfb/dss/omapdss-boot-init.c
index d80720c84323..098c02164428 100644
--- a/drivers/video/fbdev/omap2/omapfb/dss/omapdss-boot-init.c
+++ b/drivers/video/fbdev/omap2/omapfb/dss/omapdss-boot-init.c
@@ -46,7 +46,7 @@ static void __init omapdss_update_prop(struct device_node *node, char *compat,
{
struct property *prop;
- prop = kzalloc(sizeof(*prop), GFP_KERNEL);
+ prop = kzalloc_obj(*prop, GFP_KERNEL);
if (!prop)
return;
@@ -110,8 +110,7 @@ static void __init omapdss_omapify_node(struct device_node *node)
static void __init omapdss_add_to_list(struct device_node *node, bool root)
{
- struct dss_conv_node *n = kmalloc(sizeof(struct dss_conv_node),
- GFP_KERNEL);
+ struct dss_conv_node *n = kmalloc_obj(struct dss_conv_node, GFP_KERNEL);
if (n) {
n->node = node;
n->root = root;
diff --git a/drivers/video/fbdev/omap2/omapfb/dss/overlay.c b/drivers/video/fbdev/omap2/omapfb/dss/overlay.c
index bbbdc233ee61..cb2a230c57a1 100644
--- a/drivers/video/fbdev/omap2/omapfb/dss/overlay.c
+++ b/drivers/video/fbdev/omap2/omapfb/dss/overlay.c
@@ -49,8 +49,7 @@ void dss_init_overlays(struct platform_device *pdev)
num_overlays = dss_feat_get_num_ovls();
- overlays = kcalloc(num_overlays, sizeof(struct omap_overlay),
- GFP_KERNEL);
+ overlays = kzalloc_objs(struct omap_overlay, num_overlays, GFP_KERNEL);
BUG_ON(overlays == NULL);
diff --git a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
index 211f23648686..599a7d6a6114 100644
--- a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
+++ b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
@@ -2023,19 +2023,19 @@ static int omapfb_mode_to_timings(const char *mode_str,
var = NULL;
fbops = NULL;
- fbi = kzalloc(sizeof(*fbi), GFP_KERNEL);
+ fbi = kzalloc_obj(*fbi, GFP_KERNEL);
if (fbi == NULL) {
r = -ENOMEM;
goto err;
}
- var = kzalloc(sizeof(*var), GFP_KERNEL);
+ var = kzalloc_obj(*var, GFP_KERNEL);
if (var == NULL) {
r = -ENOMEM;
goto err;
}
- fbops = kzalloc(sizeof(*fbops), GFP_KERNEL);
+ fbops = kzalloc_obj(*fbops, GFP_KERNEL);
if (fbops == NULL) {
r = -ENOMEM;
goto err;
@@ -2244,7 +2244,7 @@ static int omapfb_find_best_mode(struct omap_dss_device *display,
if (r < 0)
goto err1;
- specs = kzalloc(sizeof(*specs), GFP_KERNEL);
+ specs = kzalloc_obj(*specs, GFP_KERNEL);
if (specs == NULL) {
r = -ENOMEM;
goto err1;
diff --git a/drivers/video/fbdev/pvr2fb.c b/drivers/video/fbdev/pvr2fb.c
index 0b8d23c12b77..d47c173fd8e0 100644
--- a/drivers/video/fbdev/pvr2fb.c
+++ b/drivers/video/fbdev/pvr2fb.c
@@ -652,7 +652,7 @@ static ssize_t pvr2fb_write(struct fb_info *info, const char *buf,
nr_pages = (count + PAGE_SIZE - 1) >> PAGE_SHIFT;
- pages = kmalloc_array(nr_pages, sizeof(struct page *), GFP_KERNEL);
+ pages = kmalloc_objs(struct page *, nr_pages, GFP_KERNEL);
if (!pages)
return -ENOMEM;
diff --git a/drivers/video/fbdev/pxa3xx-gcu.c b/drivers/video/fbdev/pxa3xx-gcu.c
index 4a78b387b343..c2aec9419ae9 100644
--- a/drivers/video/fbdev/pxa3xx-gcu.c
+++ b/drivers/video/fbdev/pxa3xx-gcu.c
@@ -530,7 +530,7 @@ pxa3xx_gcu_add_buffer(struct device *dev,
{
struct pxa3xx_gcu_batch *buffer;
- buffer = kzalloc(sizeof(struct pxa3xx_gcu_batch), GFP_KERNEL);
+ buffer = kzalloc_obj(struct pxa3xx_gcu_batch, GFP_KERNEL);
if (!buffer)
return -ENOMEM;
diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/sh_mobile_lcdcfb.c
index 5f3a0cd27db3..c52391f9893b 100644
--- a/drivers/video/fbdev/sh_mobile_lcdcfb.c
+++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c
@@ -2512,7 +2512,7 @@ static int sh_mobile_lcdc_probe(struct platform_device *pdev)
return -ENOENT;
}
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
index 92595af022eb..67f3f2df2064 100644
--- a/drivers/video/fbdev/simplefb.c
+++ b/drivers/video/fbdev/simplefb.c
@@ -249,7 +249,7 @@ static int simplefb_clocks_get(struct simplefb_par *par,
if (!par->clk_count)
return 0;
- par->clks = kcalloc(par->clk_count, sizeof(struct clk *), GFP_KERNEL);
+ par->clks = kzalloc_objs(struct clk *, par->clk_count, GFP_KERNEL);
if (!par->clks)
return -ENOMEM;
diff --git a/drivers/video/fbdev/sm501fb.c b/drivers/video/fbdev/sm501fb.c
index ed6f4f43e2d5..abc9bcfe579b 100644
--- a/drivers/video/fbdev/sm501fb.c
+++ b/drivers/video/fbdev/sm501fb.c
@@ -1947,7 +1947,7 @@ static int sm501fb_probe(struct platform_device *pdev)
int ret;
/* allocate our framebuffers */
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info) {
dev_err(dev, "failed to allocate state\n");
return -ENOMEM;
diff --git a/drivers/video/fbdev/smscufx.c b/drivers/video/fbdev/smscufx.c
index 891ce7b76d63..ddc45d9a2ca2 100644
--- a/drivers/video/fbdev/smscufx.c
+++ b/drivers/video/fbdev/smscufx.c
@@ -946,7 +946,8 @@ static int ufx_ops_ioctl(struct fb_info *info, unsigned int cmd,
/* TODO: Help propose a standard fb.h ioctl to report mmap damage */
if (cmd == UFX_IOCTL_REPORT_DAMAGE) {
- struct dloarea *area __free(kfree) = kmalloc(sizeof(*area), GFP_KERNEL);
+ struct dloarea *area __free(kfree) = kmalloc_obj(*area,
+ GFP_KERNEL);
if (!area)
return -ENOMEM;
@@ -1037,7 +1038,7 @@ static int ufx_ops_open(struct fb_info *info, int user)
struct fb_deferred_io *fbdefio;
- fbdefio = kzalloc(sizeof(*fbdefio), GFP_KERNEL);
+ fbdefio = kzalloc_obj(*fbdefio, GFP_KERNEL);
if (fbdefio) {
fbdefio->delay = UFX_DEFIO_WRITE_DELAY;
fbdefio->deferred_io = ufx_dpy_deferred_io;
@@ -1594,7 +1595,7 @@ static int ufx_usb_probe(struct usb_interface *interface,
usbdev = interface_to_usbdev(interface);
BUG_ON(!usbdev);
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (dev == NULL) {
dev_err(&usbdev->dev, "ufx_usb_probe: failed alloc of dev struct\n");
return -ENOMEM;
@@ -1851,7 +1852,7 @@ static int ufx_alloc_urb_list(struct ufx_data *dev, int count, size_t size)
INIT_LIST_HEAD(&dev->urbs.list);
while (i < count) {
- unode = kzalloc(sizeof(*unode), GFP_KERNEL);
+ unode = kzalloc_obj(*unode, GFP_KERNEL);
if (!unode)
break;
unode->dev = dev;
diff --git a/drivers/video/fbdev/udlfb.c b/drivers/video/fbdev/udlfb.c
index ccede85df1e1..ba060af2b09f 100644
--- a/drivers/video/fbdev/udlfb.c
+++ b/drivers/video/fbdev/udlfb.c
@@ -918,7 +918,7 @@ static int dlfb_ops_open(struct fb_info *info, int user)
struct fb_deferred_io *fbdefio;
- fbdefio = kzalloc(sizeof(struct fb_deferred_io), GFP_KERNEL);
+ fbdefio = kzalloc_obj(struct fb_deferred_io, GFP_KERNEL);
if (fbdefio) {
fbdefio->delay = DL_DEFIO_WRITE_DELAY;
@@ -1164,7 +1164,8 @@ static const struct fb_ops dlfb_ops = {
static void dlfb_deferred_vfree(struct dlfb_data *dlfb, void *mem)
{
- struct dlfb_deferred_free *d = kmalloc(sizeof(struct dlfb_deferred_free), GFP_KERNEL);
+ struct dlfb_deferred_free *d = kmalloc_obj(struct dlfb_deferred_free,
+ GFP_KERNEL);
if (!d)
return;
d->mem = mem;
@@ -1606,7 +1607,7 @@ static int dlfb_usb_probe(struct usb_interface *intf,
static u8 out_ep[] = {OUT_EP_NUM + USB_DIR_OUT, 0};
/* usb initialization */
- dlfb = kzalloc(sizeof(*dlfb), GFP_KERNEL);
+ dlfb = kzalloc_obj(*dlfb, GFP_KERNEL);
if (!dlfb) {
dev_err(&intf->dev, "%s: failed to allocate dlfb\n", __func__);
return -ENOMEM;
@@ -1852,7 +1853,7 @@ static int dlfb_alloc_urb_list(struct dlfb_data *dlfb, int count, size_t size)
dlfb->urbs.available = 0;
while (dlfb->urbs.count * size < wanted_size) {
- unode = kzalloc(sizeof(*unode), GFP_KERNEL);
+ unode = kzalloc_obj(*unode, GFP_KERNEL);
if (!unode)
break;
unode->dlfb = dlfb;
diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
index 5d52fd00806e..c9e299afc02b 100644
--- a/drivers/video/fbdev/uvesafb.c
+++ b/drivers/video/fbdev/uvesafb.c
@@ -258,9 +258,9 @@ static struct uvesafb_ktask *uvesafb_prep(void)
{
struct uvesafb_ktask *task;
- task = kzalloc(sizeof(*task), GFP_KERNEL);
+ task = kzalloc_obj(*task, GFP_KERNEL);
if (task) {
- task->done = kzalloc(sizeof(*task->done), GFP_KERNEL);
+ task->done = kzalloc_obj(*task->done, GFP_KERNEL);
if (!task->done) {
kfree(task);
task = NULL;
@@ -487,9 +487,8 @@ static int uvesafb_vbe_getmodes(struct uvesafb_ktask *task,
mode++;
}
- par->vbe_modes = kcalloc(par->vbe_modes_cnt,
- sizeof(struct vbe_mode_ib),
- GFP_KERNEL);
+ par->vbe_modes = kzalloc_objs(struct vbe_mode_ib, par->vbe_modes_cnt,
+ GFP_KERNEL);
if (!par->vbe_modes)
return -ENOMEM;
@@ -862,7 +861,7 @@ static int uvesafb_vbe_init_mode(struct fb_info *info)
* Convert the modelist into a modedb so that we can use it with
* fb_find_mode().
*/
- mode = kcalloc(i, sizeof(*mode), GFP_KERNEL);
+ mode = kzalloc_objs(*mode, i, GFP_KERNEL);
if (mode) {
i = 0;
list_for_each(pos, &info->modelist) {
@@ -1048,8 +1047,7 @@ static int uvesafb_setcmap(struct fb_cmap *cmap, struct fb_info *info)
info->cmap.len || cmap->start < info->cmap.start)
return -EINVAL;
- entries = kmalloc_array(cmap->len, sizeof(*entries),
- GFP_KERNEL);
+ entries = kmalloc_objs(*entries, cmap->len, GFP_KERNEL);
if (!entries)
return -ENOMEM;
@@ -1243,7 +1241,7 @@ static int uvesafb_set_par(struct fb_info *info)
info->var.pixclock != 0) {
task->t.regs.ebx |= 0x0800; /* use CRTC data */
task->t.flags = TF_BUF_ESDI;
- crtc = kzalloc(sizeof(struct vbe_crtc_ib), GFP_KERNEL);
+ crtc = kzalloc_obj(struct vbe_crtc_ib, GFP_KERNEL);
if (!crtc) {
err = -ENOMEM;
goto out;
diff --git a/drivers/video/fbdev/valkyriefb.c b/drivers/video/fbdev/valkyriefb.c
index 6ff059ee1694..ec3cf4589056 100644
--- a/drivers/video/fbdev/valkyriefb.c
+++ b/drivers/video/fbdev/valkyriefb.c
@@ -339,7 +339,7 @@ static int __init valkyriefb_init(void)
}
#endif /* ppc (!CONFIG_MAC) */
- p = kzalloc(sizeof(*p), GFP_ATOMIC);
+ p = kzalloc_obj(*p, GFP_ATOMIC);
if (!p)
return -ENOMEM;
diff --git a/drivers/video/fbdev/via/via_aux.c b/drivers/video/fbdev/via/via_aux.c
index 902191dddbeb..11f28a16e9b1 100644
--- a/drivers/video/fbdev/via/via_aux.c
+++ b/drivers/video/fbdev/via/via_aux.c
@@ -17,7 +17,7 @@ struct via_aux_bus *via_aux_probe(struct i2c_adapter *adap)
if (!adap)
return NULL;
- bus = kmalloc(sizeof(*bus), GFP_KERNEL);
+ bus = kmalloc_obj(*bus, GFP_KERNEL);
if (!bus)
return NULL;
diff --git a/drivers/video/fbdev/via/via_aux.h b/drivers/video/fbdev/via/via_aux.h
index 464723fd514c..cb28fb21b1c7 100644
--- a/drivers/video/fbdev/via/via_aux.h
+++ b/drivers/video/fbdev/via/via_aux.h
@@ -42,7 +42,7 @@ const struct fb_videomode *via_aux_get_preferred_mode(struct via_aux_bus *bus);
static inline bool via_aux_add(struct via_aux_drv *drv)
{
- struct via_aux_drv *data = kmalloc(sizeof(*data), GFP_KERNEL);
+ struct via_aux_drv *data = kmalloc_obj(*data, GFP_KERNEL);
if (!data)
return false;
diff --git a/drivers/video/fbdev/via/via_aux_edid.c b/drivers/video/fbdev/via/via_aux_edid.c
index 9791381a9865..75c40aede6f2 100644
--- a/drivers/video/fbdev/via/via_aux_edid.c
+++ b/drivers/video/fbdev/via/via_aux_edid.c
@@ -24,7 +24,7 @@ static void query_edid(struct via_aux_drv *drv)
if (spec) {
fb_destroy_modedb(spec->modedb);
} else {
- spec = kmalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kmalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return;
}
diff --git a/drivers/video/fbdev/via/viafbdev.c b/drivers/video/fbdev/via/viafbdev.c
index 6da5ae7d229a..80f95dac32c8 100644
--- a/drivers/video/fbdev/via/viafbdev.c
+++ b/drivers/video/fbdev/via/viafbdev.c
@@ -840,7 +840,7 @@ static int viafb_cursor(struct fb_info *info, struct fb_cursor *cursor)
struct {
u8 data[CURSOR_SIZE];
u32 bak[CURSOR_SIZE / 4];
- } *cr_data = kzalloc(sizeof(*cr_data), GFP_ATOMIC);
+ } *cr_data = kzalloc_obj(*cr_data, GFP_ATOMIC);
int size = ((cursor->image.width + 7) >> 3) *
cursor->image.height;
diff --git a/drivers/video/fbdev/xen-fbfront.c b/drivers/video/fbdev/xen-fbfront.c
index d8f3bfb2dd6c..a432b487bb76 100644
--- a/drivers/video/fbdev/xen-fbfront.c
+++ b/drivers/video/fbdev/xen-fbfront.c
@@ -348,7 +348,7 @@ static int xenfb_probe(struct xenbus_device *dev,
int val;
int ret = 0;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (info == NULL) {
xenbus_dev_fatal(dev, -ENOMEM, "allocating info structure");
return -ENOMEM;
diff --git a/drivers/video/of_display_timing.c b/drivers/video/of_display_timing.c
index a6ec392253c3..54b6595e8758 100644
--- a/drivers/video/of_display_timing.c
+++ b/drivers/video/of_display_timing.c
@@ -157,7 +157,7 @@ struct display_timings *of_get_display_timings(const struct device_node *np)
return NULL;
}
- disp = kzalloc(sizeof(*disp), GFP_KERNEL);
+ disp = kzalloc_obj(*disp, GFP_KERNEL);
if (!disp) {
pr_err("%pOF: could not allocate struct disp'\n", np);
goto dispfail;
@@ -184,9 +184,8 @@ struct display_timings *of_get_display_timings(const struct device_node *np)
goto timingfail;
}
- disp->timings = kcalloc(disp->num_timings,
- sizeof(struct display_timing *),
- GFP_KERNEL);
+ disp->timings = kzalloc_objs(struct display_timing *, disp->num_timings,
+ GFP_KERNEL);
if (!disp->timings) {
pr_err("%pOF: could not allocate timings array\n", np);
goto timingfail;
@@ -199,7 +198,7 @@ struct display_timings *of_get_display_timings(const struct device_node *np)
struct display_timing *dt;
int r;
- dt = kmalloc(sizeof(*dt), GFP_KERNEL);
+ dt = kmalloc_obj(*dt, GFP_KERNEL);
if (!dt) {
pr_err("%pOF: could not allocate display_timing struct\n",
np);
diff --git a/drivers/video/sticore.c b/drivers/video/sticore.c
index 88a1758616e0..8920c1fa2546 100644
--- a/drivers/video/sticore.c
+++ b/drivers/video/sticore.c
@@ -558,7 +558,7 @@ sti_select_fbfont(struct sti_cooked_rom *cooked_rom, const char *fbfont_name)
dest += sizeof(struct sti_rom_font);
memcpy(dest, fbfont->data, bpc * fbfont->charcount);
- cooked_font = kzalloc(sizeof(*cooked_font), GFP_KERNEL);
+ cooked_font = kzalloc_obj(*cooked_font, GFP_KERNEL);
if (!cooked_font) {
kfree(nf);
return NULL;
@@ -678,7 +678,7 @@ static int sti_cook_fonts(struct sti_cooked_rom *cooked_rom,
struct sti_rom_font *raw_font, *font_start;
struct sti_cooked_font *cooked_font;
- cooked_font = kzalloc(sizeof(*cooked_font), GFP_KERNEL);
+ cooked_font = kzalloc_obj(*cooked_font, GFP_KERNEL);
if (!cooked_font)
return 0;
@@ -692,7 +692,7 @@ static int sti_cook_fonts(struct sti_cooked_rom *cooked_rom,
while (raw_font->next_font) {
raw_font = ((void *)font_start) + (raw_font->next_font);
- cooked_font->next_font = kzalloc(sizeof(*cooked_font), GFP_KERNEL);
+ cooked_font->next_font = kzalloc_obj(*cooked_font, GFP_KERNEL);
if (!cooked_font->next_font)
return 1;
@@ -806,7 +806,7 @@ static int sti_read_rom(int wordmode, struct sti_struct *sti,
struct sti_rom *raw = NULL;
unsigned long revno;
- cooked = kmalloc(sizeof *cooked, GFP_KERNEL);
+ cooked = kmalloc_obj(*cooked, GFP_KERNEL);
if (!cooked)
goto out_err;
@@ -915,7 +915,7 @@ static struct sti_struct *sti_try_rom_generic(unsigned long address,
return NULL;
}
- sti = kzalloc(sizeof(*sti), GFP_KERNEL);
+ sti = kzalloc_obj(*sti, GFP_KERNEL);
if (!sti)
return NULL;
diff --git a/drivers/video/vgastate.c b/drivers/video/vgastate.c
index 122fb3c3ec9d..0727716cf5fd 100644
--- a/drivers/video/vgastate.c
+++ b/drivers/video/vgastate.c
@@ -351,7 +351,7 @@ int save_vga(struct vgastate *state)
{
struct regstate *saved;
- saved = kzalloc(sizeof(struct regstate), GFP_KERNEL);
+ saved = kzalloc_obj(struct regstate, GFP_KERNEL);
if (saved == NULL)
return 1;
diff --git a/drivers/virt/acrn/hsm.c b/drivers/virt/acrn/hsm.c
index e4e196abdaac..c73a566d135d 100644
--- a/drivers/virt/acrn/hsm.c
+++ b/drivers/virt/acrn/hsm.c
@@ -30,7 +30,7 @@ static int acrn_dev_open(struct inode *inode, struct file *filp)
{
struct acrn_vm *vm;
- vm = kzalloc(sizeof(*vm), GFP_KERNEL);
+ vm = kzalloc_obj(*vm, GFP_KERNEL);
if (!vm)
return -ENOMEM;
@@ -64,7 +64,7 @@ static int pmcmd_ioctl(u64 cmd, void __user *uptr)
kfree(pm_info);
break;
case ACRN_PMCMD_GET_PX_DATA:
- px_data = kzalloc(sizeof(*px_data), GFP_KERNEL);
+ px_data = kzalloc_obj(*px_data, GFP_KERNEL);
if (!px_data)
return -ENOMEM;
@@ -79,7 +79,7 @@ static int pmcmd_ioctl(u64 cmd, void __user *uptr)
kfree(px_data);
break;
case ACRN_PMCMD_GET_CX_DATA:
- cx_data = kzalloc(sizeof(*cx_data), GFP_KERNEL);
+ cx_data = kzalloc_obj(*cx_data, GFP_KERNEL);
if (!cx_data)
return -ENOMEM;
diff --git a/drivers/virt/acrn/ioeventfd.c b/drivers/virt/acrn/ioeventfd.c
index 4e845c6ca0b5..5daccfaa127b 100644
--- a/drivers/virt/acrn/ioeventfd.c
+++ b/drivers/virt/acrn/ioeventfd.c
@@ -96,7 +96,7 @@ static int acrn_ioeventfd_assign(struct acrn_vm *vm,
if (IS_ERR(eventfd))
return PTR_ERR(eventfd);
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p) {
ret = -ENOMEM;
goto fail;
diff --git a/drivers/virt/acrn/ioreq.c b/drivers/virt/acrn/ioreq.c
index 55ddfa4840af..2216e62406e0 100644
--- a/drivers/virt/acrn/ioreq.c
+++ b/drivers/virt/acrn/ioreq.c
@@ -123,7 +123,7 @@ int acrn_ioreq_range_add(struct acrn_ioreq_client *client,
return -EINVAL;
}
- range = kzalloc(sizeof(*range), GFP_KERNEL);
+ range = kzalloc_obj(*range, GFP_KERNEL);
if (!range)
return -ENOMEM;
@@ -424,7 +424,7 @@ struct acrn_ioreq_client *acrn_ioreq_client_create(struct acrn_vm *vm,
"Cannot create non-default client w/o handler!\n");
return NULL;
}
- client = kzalloc(sizeof(*client), GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (!client)
return NULL;
@@ -602,7 +602,7 @@ int acrn_ioreq_init(struct acrn_vm *vm, u64 buf_vma)
if (vm->ioreq_buf)
return -EEXIST;
- set_buffer = kzalloc(sizeof(*set_buffer), GFP_KERNEL);
+ set_buffer = kzalloc_obj(*set_buffer, GFP_KERNEL);
if (!set_buffer)
return -ENOMEM;
diff --git a/drivers/virt/acrn/irqfd.c b/drivers/virt/acrn/irqfd.c
index 64d32c8fbf79..f0ff5140699f 100644
--- a/drivers/virt/acrn/irqfd.c
+++ b/drivers/virt/acrn/irqfd.c
@@ -112,7 +112,7 @@ static int acrn_irqfd_assign(struct acrn_vm *vm, struct acrn_irqfd *args)
__poll_t events;
int ret = 0;
- irqfd = kzalloc(sizeof(*irqfd), GFP_KERNEL);
+ irqfd = kzalloc_obj(*irqfd, GFP_KERNEL);
if (!irqfd)
return -ENOMEM;
diff --git a/drivers/virt/acrn/mm.c b/drivers/virt/acrn/mm.c
index bfb3031885e8..86b386761ee3 100644
--- a/drivers/virt/acrn/mm.c
+++ b/drivers/virt/acrn/mm.c
@@ -21,7 +21,7 @@ static int modify_region(struct acrn_vm *vm, struct vm_memory_region_op *region)
struct vm_memory_region_batch *regions;
int ret;
- regions = kzalloc(sizeof(*regions), GFP_KERNEL);
+ regions = kzalloc_obj(*regions, GFP_KERNEL);
if (!regions)
return -ENOMEM;
@@ -55,7 +55,7 @@ int acrn_mm_region_add(struct acrn_vm *vm, u64 user_gpa, u64 service_gpa,
struct vm_memory_region_op *region;
int ret = 0;
- region = kzalloc(sizeof(*region), GFP_KERNEL);
+ region = kzalloc_obj(*region, GFP_KERNEL);
if (!region)
return -ENOMEM;
@@ -87,7 +87,7 @@ int acrn_mm_region_del(struct acrn_vm *vm, u64 user_gpa, u64 size)
struct vm_memory_region_op *region;
int ret = 0;
- region = kzalloc(sizeof(*region), GFP_KERNEL);
+ region = kzalloc_obj(*region, GFP_KERNEL);
if (!region)
return -ENOMEM;
@@ -285,8 +285,8 @@ int acrn_vm_ram_map(struct acrn_vm *vm, struct acrn_vm_memmap *memmap)
}
/* Prepare the vm_memory_region_batch */
- regions_info = kzalloc(struct_size(regions_info, regions_op,
- nr_regions), GFP_KERNEL);
+ regions_info = kzalloc_flex(*regions_info, regions_op, nr_regions,
+ GFP_KERNEL);
if (!regions_info) {
ret = -ENOMEM;
goto unmap_kernel_map;
diff --git a/drivers/virt/acrn/vm.c b/drivers/virt/acrn/vm.c
index fbc9f1042000..3753b27c5312 100644
--- a/drivers/virt/acrn/vm.c
+++ b/drivers/virt/acrn/vm.c
@@ -107,7 +107,7 @@ int acrn_msi_inject(struct acrn_vm *vm, u64 msi_addr, u64 msi_data)
int ret;
/* might be used in interrupt context, so use GFP_ATOMIC */
- msi = kzalloc(sizeof(*msi), GFP_ATOMIC);
+ msi = kzalloc_obj(*msi, GFP_ATOMIC);
if (!msi)
return -ENOMEM;
diff --git a/drivers/virt/coco/guest/report.c b/drivers/virt/coco/guest/report.c
index d3d18fc22bc2..ab50adfec7ec 100644
--- a/drivers/virt/coco/guest/report.c
+++ b/drivers/virt/coco/guest/report.c
@@ -428,7 +428,7 @@ static struct config_item *tsm_report_make_item(struct config_group *group,
if (!provider.ops)
return ERR_PTR(-ENXIO);
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/virt/coco/guest/tsm-mr.c b/drivers/virt/coco/guest/tsm-mr.c
index bc509df04db1..37859cc8eefb 100644
--- a/drivers/virt/coco/guest/tsm-mr.c
+++ b/drivers/virt/coco/guest/tsm-mr.c
@@ -176,7 +176,7 @@ tsm_mr_create_attribute_group(const struct tsm_measurements *tm)
const struct bin_attribute **attrs __free(kfree) =
kzalloc(sizeof(*attrs) * (tm->nr_mrs + 1) + nlen, GFP_KERNEL);
struct tm_context *ctx __free(kfree) =
- kzalloc(struct_size(ctx, mrs, tm->nr_mrs), GFP_KERNEL);
+ kzalloc_flex(*ctx, mrs, tm->nr_mrs, GFP_KERNEL);
char *name, *end;
if (!ctx || !attrs)
diff --git a/drivers/virt/coco/sev-guest/sev-guest.c b/drivers/virt/coco/sev-guest/sev-guest.c
index b01ec99106cd..e001e6769a43 100644
--- a/drivers/virt/coco/sev-guest/sev-guest.c
+++ b/drivers/virt/coco/sev-guest/sev-guest.c
@@ -75,7 +75,7 @@ static int get_report(struct snp_guest_dev *snp_dev, struct snp_guest_request_io
if (!arg->req_data || !arg->resp_data)
return -EINVAL;
- report_req = kzalloc(sizeof(*report_req), GFP_KERNEL_ACCOUNT);
+ report_req = kzalloc_obj(*report_req, GFP_KERNEL_ACCOUNT);
if (!report_req)
return -ENOMEM;
@@ -135,7 +135,7 @@ static int get_derived_key(struct snp_guest_dev *snp_dev, struct snp_guest_reque
if (!derived_key_resp)
return -ENOMEM;
- derived_key_req = kzalloc(sizeof(*derived_key_req), GFP_KERNEL_ACCOUNT);
+ derived_key_req = kzalloc_obj(*derived_key_req, GFP_KERNEL_ACCOUNT);
if (!derived_key_req)
return -ENOMEM;
@@ -181,7 +181,7 @@ static int get_ext_report(struct snp_guest_dev *snp_dev, struct snp_guest_reques
if (sockptr_is_null(io->req_data) || sockptr_is_null(io->resp_data))
return -EINVAL;
- report_req = kzalloc(sizeof(*report_req), GFP_KERNEL_ACCOUNT);
+ report_req = kzalloc_obj(*report_req, GFP_KERNEL_ACCOUNT);
if (!report_req)
return -ENOMEM;
diff --git a/drivers/virt/coco/tsm-core.c b/drivers/virt/coco/tsm-core.c
index 8712df8596a1..b783fd36fc7e 100644
--- a/drivers/virt/coco/tsm-core.c
+++ b/drivers/virt/coco/tsm-core.c
@@ -35,7 +35,7 @@ static struct tsm_dev *alloc_tsm_dev(struct device *parent)
int id;
struct tsm_dev *tsm_dev __free(kfree) =
- kzalloc(sizeof(*tsm_dev), GFP_KERNEL);
+ kzalloc_obj(*tsm_dev, GFP_KERNEL);
if (!tsm_dev)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/virt/fsl_hypervisor.c b/drivers/virt/fsl_hypervisor.c
index e92e2ceb12a4..541ee3a4909c 100644
--- a/drivers/virt/fsl_hypervisor.c
+++ b/drivers/virt/fsl_hypervisor.c
@@ -226,7 +226,7 @@ static long ioctl_memcpy(struct fsl_hv_ioctl_memcpy __user *p)
* 'pages' is an array of struct page pointers that's initialized by
* get_user_pages_fast().
*/
- pages = kcalloc(num_pages, sizeof(struct page *), GFP_KERNEL);
+ pages = kzalloc_objs(struct page *, num_pages, GFP_KERNEL);
if (!pages) {
pr_debug("fsl-hv: could not allocate page list\n");
return -ENOMEM;
@@ -660,7 +660,7 @@ static int fsl_hv_open(struct inode *inode, struct file *filp)
struct doorbell_queue *dbq;
unsigned long flags;
- dbq = kzalloc(sizeof(struct doorbell_queue), GFP_KERNEL);
+ dbq = kzalloc_obj(struct doorbell_queue, GFP_KERNEL);
if (!dbq) {
pr_err("fsl-hv: out of memory\n");
return -ENOMEM;
@@ -845,7 +845,7 @@ static int __init fsl_hypervisor_init(void)
continue;
}
- dbisr = kzalloc(sizeof(*dbisr), GFP_KERNEL);
+ dbisr = kzalloc_obj(*dbisr, GFP_KERNEL);
if (!dbisr)
goto out_of_memory;
diff --git a/drivers/virt/nitro_enclaves/ne_misc_dev.c b/drivers/virt/nitro_enclaves/ne_misc_dev.c
index 241b94f62e56..1ad44e92348a 100644
--- a/drivers/virt/nitro_enclaves/ne_misc_dev.c
+++ b/drivers/virt/nitro_enclaves/ne_misc_dev.c
@@ -294,9 +294,9 @@ static int ne_setup_cpu_pool(const char *ne_cpu_list)
ne_cpu_pool.nr_parent_vm_cores = nr_cpu_ids / ne_cpu_pool.nr_threads_per_core;
- ne_cpu_pool.avail_threads_per_core = kcalloc(ne_cpu_pool.nr_parent_vm_cores,
- sizeof(*ne_cpu_pool.avail_threads_per_core),
- GFP_KERNEL);
+ ne_cpu_pool.avail_threads_per_core = kzalloc_objs(*ne_cpu_pool.avail_threads_per_core,
+ ne_cpu_pool.nr_parent_vm_cores,
+ GFP_KERNEL);
if (!ne_cpu_pool.avail_threads_per_core) {
rc = -ENOMEM;
@@ -928,23 +928,22 @@ static int ne_set_user_memory_region_ioctl(struct ne_enclave *ne_enclave,
if (rc < 0)
return rc;
- ne_mem_region = kzalloc(sizeof(*ne_mem_region), GFP_KERNEL);
+ ne_mem_region = kzalloc_obj(*ne_mem_region, GFP_KERNEL);
if (!ne_mem_region)
return -ENOMEM;
max_nr_pages = mem_region.memory_size / NE_MIN_MEM_REGION_SIZE;
- ne_mem_region->pages = kcalloc(max_nr_pages, sizeof(*ne_mem_region->pages),
- GFP_KERNEL);
+ ne_mem_region->pages = kzalloc_objs(*ne_mem_region->pages, max_nr_pages,
+ GFP_KERNEL);
if (!ne_mem_region->pages) {
rc = -ENOMEM;
goto free_mem_region;
}
- phys_contig_mem_regions.regions = kcalloc(max_nr_pages,
- sizeof(*phys_contig_mem_regions.regions),
- GFP_KERNEL);
+ phys_contig_mem_regions.regions = kzalloc_objs(*phys_contig_mem_regions.regions,
+ max_nr_pages, GFP_KERNEL);
if (!phys_contig_mem_regions.regions) {
rc = -ENOMEM;
@@ -1617,7 +1616,7 @@ static int ne_create_vm_ioctl(struct ne_pci_dev *ne_pci_dev, u64 __user *slot_ui
mutex_unlock(&ne_cpu_pool.mutex);
- ne_enclave = kzalloc(sizeof(*ne_enclave), GFP_KERNEL);
+ ne_enclave = kzalloc_obj(*ne_enclave, GFP_KERNEL);
if (!ne_enclave)
return -ENOMEM;
@@ -1629,9 +1628,9 @@ static int ne_create_vm_ioctl(struct ne_pci_dev *ne_pci_dev, u64 __user *slot_ui
mutex_unlock(&ne_cpu_pool.mutex);
- ne_enclave->threads_per_core = kcalloc(ne_enclave->nr_parent_vm_cores,
- sizeof(*ne_enclave->threads_per_core),
- GFP_KERNEL);
+ ne_enclave->threads_per_core = kzalloc_objs(*ne_enclave->threads_per_core,
+ ne_enclave->nr_parent_vm_cores,
+ GFP_KERNEL);
if (!ne_enclave->threads_per_core) {
rc = -ENOMEM;
diff --git a/drivers/virt/nitro_enclaves/ne_pci_dev.c b/drivers/virt/nitro_enclaves/ne_pci_dev.c
index 6b81e8f3a5dc..a219657ace80 100644
--- a/drivers/virt/nitro_enclaves/ne_pci_dev.c
+++ b/drivers/virt/nitro_enclaves/ne_pci_dev.c
@@ -468,7 +468,7 @@ static int ne_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
struct ne_pci_dev *ne_pci_dev = NULL;
int rc = -EINVAL;
- ne_pci_dev = kzalloc(sizeof(*ne_pci_dev), GFP_KERNEL);
+ ne_pci_dev = kzalloc_obj(*ne_pci_dev, GFP_KERNEL);
if (!ne_pci_dev)
return -ENOMEM;
diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c
index b177a534b6a4..9621606fc5db 100644
--- a/drivers/virt/vboxguest/vboxguest_core.c
+++ b/drivers/virt/vboxguest/vboxguest_core.c
@@ -74,7 +74,7 @@ static void vbg_guest_mappings_init(struct vbg_dev *gdev)
/* Add 4M so that we can align the vmap to 4MiB as the host requires. */
size = PAGE_ALIGN(req->hypervisor_size) + SZ_4M;
- pages = kmalloc_array(size >> PAGE_SHIFT, sizeof(*pages), GFP_KERNEL);
+ pages = kmalloc_objs(*pages, size >> PAGE_SHIFT, GFP_KERNEL);
if (!pages)
goto out;
@@ -275,9 +275,8 @@ static int vbg_balloon_inflate(struct vbg_dev *gdev, u32 chunk_idx)
struct page **pages;
int i, rc, ret;
- pages = kmalloc_array(VMMDEV_MEMORY_BALLOON_CHUNK_PAGES,
- sizeof(*pages),
- GFP_KERNEL | __GFP_NOWARN);
+ pages = kmalloc_objs(*pages, VMMDEV_MEMORY_BALLOON_CHUNK_PAGES,
+ GFP_KERNEL | __GFP_NOWARN);
if (!pages)
return -ENOMEM;
@@ -1081,7 +1080,7 @@ struct vbg_session *vbg_core_open_session(struct vbg_dev *gdev, u32 requestor)
{
struct vbg_session *session;
- session = kzalloc(sizeof(*session), GFP_KERNEL);
+ session = kzalloc_obj(*session, GFP_KERNEL);
if (!session)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
index 4e549abe59ff..4151aeebe766 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -927,7 +927,7 @@ static int virtballoon_probe(struct virtio_device *vdev)
return -EINVAL;
}
- vdev->priv = vb = kzalloc(sizeof(*vb), GFP_KERNEL);
+ vdev->priv = vb = kzalloc_obj(*vb, GFP_KERNEL);
if (!vb) {
err = -ENOMEM;
goto out;
diff --git a/drivers/virtio/virtio_input.c b/drivers/virtio/virtio_input.c
index 74df16677da8..2386021e6dc5 100644
--- a/drivers/virtio/virtio_input.c
+++ b/drivers/virtio/virtio_input.c
@@ -83,7 +83,7 @@ static int virtinput_send_status(struct virtio_input *vi,
if (vi->idev->mt && type == EV_MSC && code == MSC_TIMESTAMP)
return 0;
- stsbuf = kzalloc(sizeof(*stsbuf), GFP_ATOMIC);
+ stsbuf = kzalloc_obj(*stsbuf, GFP_ATOMIC);
if (!stsbuf)
return -ENOMEM;
@@ -229,7 +229,7 @@ static int virtinput_probe(struct virtio_device *vdev)
if (!virtio_has_feature(vdev, VIRTIO_F_VERSION_1))
return -ENODEV;
- vi = kzalloc(sizeof(*vi), GFP_KERNEL);
+ vi = kzalloc_obj(*vi, GFP_KERNEL);
if (!vi)
return -ENOMEM;
diff --git a/drivers/virtio/virtio_mem.c b/drivers/virtio/virtio_mem.c
index 1688ecd69a04..065027783822 100644
--- a/drivers/virtio/virtio_mem.c
+++ b/drivers/virtio/virtio_mem.c
@@ -2940,7 +2940,7 @@ static int virtio_mem_probe(struct virtio_device *vdev)
BUILD_BUG_ON(sizeof(struct virtio_mem_req) != 24);
BUILD_BUG_ON(sizeof(struct virtio_mem_resp) != 10);
- vdev->priv = vm = kzalloc(sizeof(*vm), GFP_KERNEL);
+ vdev->priv = vm = kzalloc_obj(*vm, GFP_KERNEL);
if (!vm)
return -ENOMEM;
diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c
index b152a1eca05a..7b063ea8b7f1 100644
--- a/drivers/virtio/virtio_mmio.c
+++ b/drivers/virtio/virtio_mmio.c
@@ -575,7 +575,7 @@ static int virtio_mmio_probe(struct platform_device *pdev)
unsigned long magic;
int rc;
- vm_dev = kzalloc(sizeof(*vm_dev), GFP_KERNEL);
+ vm_dev = kzalloc_obj(*vm_dev, GFP_KERNEL);
if (!vm_dev)
return -ENOMEM;
diff --git a/drivers/virtio/virtio_pci_admin_legacy_io.c b/drivers/virtio/virtio_pci_admin_legacy_io.c
index 819cfbbc67c3..24733b098703 100644
--- a/drivers/virtio/virtio_pci_admin_legacy_io.c
+++ b/drivers/virtio/virtio_pci_admin_legacy_io.c
@@ -124,7 +124,7 @@ static int virtio_pci_admin_legacy_io_read(struct pci_dev *pdev, u16 opcode,
if (vf_id < 0)
return vf_id;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -210,7 +210,7 @@ int virtio_pci_admin_legacy_io_notify_info(struct pci_dev *pdev,
if (vf_id < 0)
return vf_id;
- result = kzalloc(sizeof(*result), GFP_KERNEL);
+ result = kzalloc_obj(*result, GFP_KERNEL);
if (!result)
return -ENOMEM;
diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c
index d6d79af44569..2749bd6500fb 100644
--- a/drivers/virtio/virtio_pci_common.c
+++ b/drivers/virtio/virtio_pci_common.c
@@ -134,14 +134,13 @@ static int vp_request_msix_vectors(struct virtio_device *vdev, int nvectors,
vp_dev->msix_vectors = nvectors;
- vp_dev->msix_names = kmalloc_array(nvectors,
- sizeof(*vp_dev->msix_names),
- GFP_KERNEL);
+ vp_dev->msix_names = kmalloc_objs(*vp_dev->msix_names, nvectors,
+ GFP_KERNEL);
if (!vp_dev->msix_names)
goto error;
vp_dev->msix_affinity_masks
- = kcalloc(nvectors, sizeof(*vp_dev->msix_affinity_masks),
- GFP_KERNEL);
+ = kzalloc_objs(*vp_dev->msix_affinity_masks, nvectors,
+ GFP_KERNEL);
if (!vp_dev->msix_affinity_masks)
goto error;
for (i = 0; i < nvectors; ++i)
@@ -211,7 +210,7 @@ static struct virtqueue *vp_setup_vq(struct virtio_device *vdev, unsigned int in
struct virtio_pci_vq_info **p_info)
{
struct virtio_pci_device *vp_dev = to_vp_device(vdev);
- struct virtio_pci_vq_info *info = kmalloc(sizeof *info, GFP_KERNEL);
+ struct virtio_pci_vq_info *info = kmalloc_obj(*info, GFP_KERNEL);
struct virtqueue *vq;
unsigned long flags;
@@ -387,7 +386,7 @@ static int vp_find_vqs_msix(struct virtio_device *vdev, unsigned int nvqs,
bool per_vq_vectors;
u16 avq_num = 0;
- vp_dev->vqs = kcalloc(nvqs, sizeof(*vp_dev->vqs), GFP_KERNEL);
+ vp_dev->vqs = kzalloc_objs(*vp_dev->vqs, nvqs, GFP_KERNEL);
if (!vp_dev->vqs)
return -ENOMEM;
@@ -464,7 +463,7 @@ static int vp_find_vqs_intx(struct virtio_device *vdev, unsigned int nvqs,
struct virtqueue *vq;
u16 avq_num = 0;
- vp_dev->vqs = kcalloc(nvqs, sizeof(*vp_dev->vqs), GFP_KERNEL);
+ vp_dev->vqs = kzalloc_objs(*vp_dev->vqs, nvqs, GFP_KERNEL);
if (!vp_dev->vqs)
return -ENOMEM;
@@ -686,7 +685,7 @@ static int virtio_pci_probe(struct pci_dev *pci_dev,
int rc;
/* allocate our structure and fill it out */
- vp_dev = kzalloc(sizeof(struct virtio_pci_device), GFP_KERNEL);
+ vp_dev = kzalloc_obj(struct virtio_pci_device, GFP_KERNEL);
if (!vp_dev)
return -ENOMEM;
diff --git a/drivers/virtio/virtio_pci_modern.c b/drivers/virtio/virtio_pci_modern.c
index dd0e65f71d41..041a7fd72835 100644
--- a/drivers/virtio/virtio_pci_modern.c
+++ b/drivers/virtio/virtio_pci_modern.c
@@ -137,11 +137,11 @@ int vp_modern_admin_cmd_exec(struct virtio_device *vdev,
if (!virtio_has_feature(vdev, VIRTIO_F_ADMIN_VQ))
return -EOPNOTSUPP;
- va_status = kzalloc(sizeof(*va_status), GFP_KERNEL);
+ va_status = kzalloc_obj(*va_status, GFP_KERNEL);
if (!va_status)
return -ENOMEM;
- va_hdr = kzalloc(sizeof(*va_hdr), GFP_KERNEL);
+ va_hdr = kzalloc_obj(*va_hdr, GFP_KERNEL);
if (!va_hdr) {
ret = -ENOMEM;
goto err_alloc;
@@ -204,7 +204,7 @@ static void virtio_pci_admin_cmd_list_init(struct virtio_device *virtio_dev)
__le64 *data;
int ret;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return;
@@ -246,11 +246,11 @@ virtio_pci_admin_cmd_dev_parts_objects_enable(struct virtio_device *virtio_dev)
u16 set_data_size;
int ret;
- get_data = kzalloc(sizeof(*get_data), GFP_KERNEL);
+ get_data = kzalloc_obj(*get_data, GFP_KERNEL);
if (!get_data)
return;
- result = kzalloc(sizeof(*result), GFP_KERNEL);
+ result = kzalloc_obj(*result, GFP_KERNEL);
if (!result)
goto end;
@@ -310,7 +310,7 @@ static void virtio_pci_admin_cmd_cap_init(struct virtio_device *virtio_dev)
struct scatterlist result_sg;
int ret;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return;
@@ -929,7 +929,7 @@ int virtio_pci_admin_mode_set(struct pci_dev *pdev, u8 flags)
if (vf_id < 0)
return vf_id;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -1054,7 +1054,7 @@ int virtio_pci_admin_obj_destroy(struct pci_dev *pdev, u16 obj_type, u32 id)
if (obj_type != VIRTIO_RESOURCE_OBJ_DEV_PARTS)
return -EINVAL;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -1109,11 +1109,11 @@ int virtio_pci_admin_dev_parts_metadata_get(struct pci_dev *pdev, u16 obj_type,
if (vf_id < 0)
return vf_id;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
- result = kzalloc(sizeof(*result), GFP_KERNEL);
+ result = kzalloc_obj(*result, GFP_KERNEL);
if (!result) {
ret = -ENOMEM;
goto end;
@@ -1173,7 +1173,7 @@ int virtio_pci_admin_dev_parts_get(struct pci_dev *pdev, u16 obj_type, u32 id,
if (vf_id < 0)
return vf_id;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index 4fe0f78df5ec..2cab954906cd 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -1209,7 +1209,7 @@ static int vring_alloc_state_extra_split(struct vring_virtqueue_split *vring_spl
struct vring_desc_extra *extra;
u32 num = vring_split->vring.num;
- state = kmalloc_array(num, sizeof(struct vring_desc_state_split), GFP_KERNEL);
+ state = kmalloc_objs(struct vring_desc_state_split, num, GFP_KERNEL);
if (!state)
goto err_state;
@@ -1308,7 +1308,7 @@ static struct virtqueue *__vring_new_virtqueue_split(unsigned int index,
struct vring_virtqueue *vq;
int err;
- vq = kmalloc(sizeof(*vq), GFP_KERNEL);
+ vq = kmalloc_obj(*vq, GFP_KERNEL);
if (!vq)
return NULL;
@@ -2349,8 +2349,7 @@ static struct vring_desc_extra *vring_alloc_desc_extra(unsigned int num)
struct vring_desc_extra *desc_extra;
unsigned int i;
- desc_extra = kmalloc_array(num, sizeof(struct vring_desc_extra),
- GFP_KERNEL);
+ desc_extra = kmalloc_objs(struct vring_desc_extra, num, GFP_KERNEL);
if (!desc_extra)
return NULL;
@@ -2450,7 +2449,7 @@ static int vring_alloc_state_extra_packed(struct vring_virtqueue_packed *vring_p
struct vring_desc_extra *extra;
u32 num = vring_packed->vring.num;
- state = kmalloc_array(num, sizeof(struct vring_desc_state_packed), GFP_KERNEL);
+ state = kmalloc_objs(struct vring_desc_state_packed, num, GFP_KERNEL);
if (!state)
goto err_desc_state;
@@ -2529,7 +2528,7 @@ static struct virtqueue *__vring_new_virtqueue_packed(unsigned int index,
struct vring_virtqueue *vq;
int err;
- vq = kmalloc(sizeof(*vq), GFP_KERNEL);
+ vq = kmalloc_obj(*vq, GFP_KERNEL);
if (!vq)
return NULL;
diff --git a/drivers/virtio/virtio_vdpa.c b/drivers/virtio/virtio_vdpa.c
index 0a801f67b599..6c0d2f946817 100644
--- a/drivers/virtio/virtio_vdpa.c
+++ b/drivers/virtio/virtio_vdpa.c
@@ -287,7 +287,7 @@ create_affinity_masks(unsigned int nvecs, struct irq_affinity *affd)
if (!affvecs)
return NULL;
- masks = kcalloc(nvecs, sizeof(*masks), GFP_KERNEL);
+ masks = kzalloc_objs(*masks, nvecs, GFP_KERNEL);
if (!masks)
return NULL;
@@ -462,7 +462,7 @@ static int virtio_vdpa_probe(struct vdpa_device *vdpa)
struct virtio_vdpa_device *vd_dev, *reg_dev = NULL;
int ret = -EINVAL;
- vd_dev = kzalloc(sizeof(*vd_dev), GFP_KERNEL);
+ vd_dev = kzalloc_obj(*vd_dev, GFP_KERNEL);
if (!vd_dev)
return -ENOMEM;
diff --git a/drivers/w1/masters/ds2490.c b/drivers/w1/masters/ds2490.c
index e1cac0730cbb..68501b0a2c4d 100644
--- a/drivers/w1/masters/ds2490.c
+++ b/drivers/w1/masters/ds2490.c
@@ -1018,7 +1018,7 @@ static int ds_probe(struct usb_interface *intf,
struct ds_device *dev;
int i, err, alt;
- dev = kzalloc(sizeof(struct ds_device), GFP_KERNEL);
+ dev = kzalloc_obj(struct ds_device, GFP_KERNEL);
if (!dev)
return -ENOMEM;
diff --git a/drivers/w1/slaves/w1_ds2433.c b/drivers/w1/slaves/w1_ds2433.c
index 3371d804dc6c..54d78060d6ff 100644
--- a/drivers/w1/slaves/w1_ds2433.c
+++ b/drivers/w1/slaves/w1_ds2433.c
@@ -320,7 +320,7 @@ static int w1_f23_add_slave(struct w1_slave *sl)
{
struct w1_f23_data *data;
- data = kzalloc(sizeof(struct w1_f23_data), GFP_KERNEL);
+ data = kzalloc_obj(struct w1_f23_data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/w1/slaves/w1_ds28e04.c b/drivers/w1/slaves/w1_ds28e04.c
index c577b5973032..cb198414d47b 100644
--- a/drivers/w1/slaves/w1_ds28e04.c
+++ b/drivers/w1/slaves/w1_ds28e04.c
@@ -384,7 +384,7 @@ static int w1_f1C_add_slave(struct w1_slave *sl)
struct w1_f1C_data *data = NULL;
if (w1_enable_crccheck) {
- data = kzalloc(sizeof(struct w1_f1C_data), GFP_KERNEL);
+ data = kzalloc_obj(struct w1_f1C_data, GFP_KERNEL);
if (!data)
return -ENOMEM;
sl->family_data = data;
diff --git a/drivers/w1/slaves/w1_therm.c b/drivers/w1/slaves/w1_therm.c
index 832e3da94b20..f72e9b57fe79 100644
--- a/drivers/w1/slaves/w1_therm.c
+++ b/drivers/w1/slaves/w1_therm.c
@@ -973,8 +973,7 @@ static int w1_therm_add_slave(struct w1_slave *sl)
struct w1_therm_family_converter *sl_family_conv;
/* Allocate memory */
- sl->family_data = kzalloc(sizeof(struct w1_therm_family_data),
- GFP_KERNEL);
+ sl->family_data = kzalloc_obj(struct w1_therm_family_data, GFP_KERNEL);
if (!sl->family_data)
return -ENOMEM;
diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c
index 5f78b0a0b766..a08d5b420f31 100644
--- a/drivers/w1/w1.c
+++ b/drivers/w1/w1.c
@@ -715,7 +715,7 @@ int w1_attach_slave_device(struct w1_master *dev, struct w1_reg_num *rn)
int err;
struct w1_netlink_msg msg;
- sl = kzalloc(sizeof(struct w1_slave), GFP_KERNEL);
+ sl = kzalloc_obj(struct w1_slave, GFP_KERNEL);
if (!sl) {
dev_err(&dev->dev,
"%s: failed to allocate new slave device.\n",
diff --git a/drivers/watchdog/exar_wdt.c b/drivers/watchdog/exar_wdt.c
index c2e3bb08df89..30fa33a4c08d 100644
--- a/drivers/watchdog/exar_wdt.c
+++ b/drivers/watchdog/exar_wdt.c
@@ -342,7 +342,7 @@ static int __init exar_wdt_register(struct wdt_priv *priv, const int idx)
{
struct wdt_pdev_node *n;
- n = kzalloc(sizeof(*n), GFP_KERNEL);
+ n = kzalloc_obj(*n, GFP_KERNEL);
if (!n)
return -ENOMEM;
diff --git a/drivers/watchdog/mei_wdt.c b/drivers/watchdog/mei_wdt.c
index c7a7235e6224..01c44881608c 100644
--- a/drivers/watchdog/mei_wdt.c
+++ b/drivers/watchdog/mei_wdt.c
@@ -563,7 +563,7 @@ static int mei_wdt_probe(struct mei_cl_device *cldev,
struct mei_wdt *wdt;
int ret;
- wdt = kzalloc(sizeof(struct mei_wdt), GFP_KERNEL);
+ wdt = kzalloc_obj(struct mei_wdt, GFP_KERNEL);
if (!wdt)
return -ENOMEM;
diff --git a/drivers/watchdog/pcwd_usb.c b/drivers/watchdog/pcwd_usb.c
index b636650b714b..dbefe9a690d7 100644
--- a/drivers/watchdog/pcwd_usb.c
+++ b/drivers/watchdog/pcwd_usb.c
@@ -641,7 +641,7 @@ static int usb_pcwd_probe(struct usb_interface *interface,
pipe = usb_rcvintpipe(udev, endpoint->bEndpointAddress);
/* allocate memory for our device and initialize it */
- usb_pcwd = kzalloc(sizeof(struct usb_pcwd_private), GFP_KERNEL);
+ usb_pcwd = kzalloc_obj(struct usb_pcwd_private, GFP_KERNEL);
if (usb_pcwd == NULL)
goto error;
diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c
index 9a5e544b886b..cd4c7342a172 100644
--- a/drivers/watchdog/watchdog_dev.c
+++ b/drivers/watchdog/watchdog_dev.c
@@ -1019,7 +1019,7 @@ static int watchdog_cdev_register(struct watchdog_device *wdd)
struct watchdog_core_data *wd_data;
int err;
- wd_data = kzalloc(sizeof(struct watchdog_core_data), GFP_KERNEL);
+ wd_data = kzalloc_obj(struct watchdog_core_data, GFP_KERNEL);
if (!wd_data)
return -ENOMEM;
mutex_init(&wd_data->lock);
diff --git a/drivers/watchdog/watchdog_pretimeout.c b/drivers/watchdog/watchdog_pretimeout.c
index 2526436dc74d..3957b6ba63b7 100644
--- a/drivers/watchdog/watchdog_pretimeout.c
+++ b/drivers/watchdog/watchdog_pretimeout.c
@@ -119,7 +119,7 @@ int watchdog_register_governor(struct watchdog_governor *gov)
struct watchdog_pretimeout *p;
struct governor_priv *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
@@ -183,7 +183,7 @@ int watchdog_register_pretimeout(struct watchdog_device *wdd)
if (!watchdog_have_pretimeout(wdd))
return 0;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return -ENOMEM;
diff --git a/drivers/xen/arm-device.c b/drivers/xen/arm-device.c
index 87493f92291f..009c76546d85 100644
--- a/drivers/xen/arm-device.c
+++ b/drivers/xen/arm-device.c
@@ -59,9 +59,9 @@ static int xen_map_device_mmio(const struct resource *resources,
if ((resource_type(r) != IORESOURCE_MEM) || (nr == 0))
continue;
- gpfns = kcalloc(nr, sizeof(xen_pfn_t), GFP_KERNEL);
- idxs = kcalloc(nr, sizeof(xen_ulong_t), GFP_KERNEL);
- errs = kcalloc(nr, sizeof(int), GFP_KERNEL);
+ gpfns = kzalloc_objs(xen_pfn_t, nr, GFP_KERNEL);
+ idxs = kzalloc_objs(xen_ulong_t, nr, GFP_KERNEL);
+ errs = kzalloc_objs(int, nr, GFP_KERNEL);
if (!gpfns || !idxs || !errs) {
kfree(gpfns);
kfree(idxs);
diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index 9b6531eb28b6..6cbff7e90947 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -242,7 +242,7 @@ static struct resource *additional_memory_resource(phys_addr_t size)
struct resource *res;
int ret;
- res = kzalloc(sizeof(*res), GFP_KERNEL);
+ res = kzalloc_obj(*res, GFP_KERNEL);
if (!res)
return NULL;
diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
index 663df17776fd..515bb5708e7f 100644
--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -714,7 +714,7 @@ static struct irq_info *xen_irq_init(unsigned int irq)
{
struct irq_info *info;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (info) {
info->irq = irq;
info->type = IRQT_UNBOUND;
@@ -2292,8 +2292,9 @@ void __init xen_init_IRQ(void)
"xen/evtchn:prepare",
xen_evtchn_cpu_prepare, xen_evtchn_cpu_dead);
- evtchn_to_irq = kcalloc(EVTCHN_ROW(xen_evtchn_max_channels()),
- sizeof(*evtchn_to_irq), GFP_KERNEL);
+ evtchn_to_irq = kzalloc_objs(*evtchn_to_irq,
+ EVTCHN_ROW(xen_evtchn_max_channels()),
+ GFP_KERNEL);
BUG_ON(!evtchn_to_irq);
/* No event channels are 'live' right now. */
diff --git a/drivers/xen/evtchn.c b/drivers/xen/evtchn.c
index 7e4a13e632dc..568f1830f3a3 100644
--- a/drivers/xen/evtchn.c
+++ b/drivers/xen/evtchn.c
@@ -332,7 +332,7 @@ static int evtchn_resize_ring(struct per_user_data *u)
else
new_size = 2 * u->ring_size;
- new_ring = kvmalloc_array(new_size, sizeof(*new_ring), GFP_KERNEL);
+ new_ring = kvmalloc_objs(*new_ring, new_size, GFP_KERNEL);
if (!new_ring)
return -ENOMEM;
@@ -386,7 +386,7 @@ static int evtchn_bind_to_user(struct per_user_data *u, evtchn_port_t port,
* serialized bind operations.)
*/
- evtchn = kzalloc(sizeof(*evtchn), GFP_KERNEL);
+ evtchn = kzalloc_obj(*evtchn, GFP_KERNEL);
if (!evtchn)
return -ENOMEM;
@@ -642,7 +642,7 @@ static int evtchn_open(struct inode *inode, struct file *filp)
{
struct per_user_data *u;
- u = kzalloc(sizeof(*u), GFP_KERNEL);
+ u = kzalloc_obj(*u, GFP_KERNEL);
if (u == NULL)
return -ENOMEM;
diff --git a/drivers/xen/gntalloc.c b/drivers/xen/gntalloc.c
index f93f73ecefee..8204135c31f9 100644
--- a/drivers/xen/gntalloc.c
+++ b/drivers/xen/gntalloc.c
@@ -128,7 +128,7 @@ static int add_grefs(struct ioctl_gntalloc_alloc_gref *op,
readonly = !(op->flags & GNTALLOC_FLAG_WRITABLE);
for (i = 0; i < op->count; i++) {
- gref = kzalloc(sizeof(*gref), GFP_KERNEL);
+ gref = kzalloc_obj(*gref, GFP_KERNEL);
if (!gref) {
rc = -ENOMEM;
goto undo;
@@ -229,7 +229,7 @@ static int gntalloc_open(struct inode *inode, struct file *filp)
{
struct gntalloc_file_private_data *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
goto out_nomem;
INIT_LIST_HEAD(&priv->list);
@@ -501,7 +501,7 @@ static int gntalloc_mmap(struct file *filp, struct vm_area_struct *vma)
return -EINVAL;
}
- vm_priv = kmalloc(sizeof(*vm_priv), GFP_KERNEL);
+ vm_priv = kmalloc_obj(*vm_priv, GFP_KERNEL);
if (!vm_priv)
return -ENOMEM;
diff --git a/drivers/xen/gntdev-dmabuf.c b/drivers/xen/gntdev-dmabuf.c
index 550980dd3b0b..649d3a912d20 100644
--- a/drivers/xen/gntdev-dmabuf.c
+++ b/drivers/xen/gntdev-dmabuf.c
@@ -95,7 +95,7 @@ dmabuf_exp_wait_obj_new(struct gntdev_dmabuf_priv *priv,
{
struct gntdev_dmabuf_wait_obj *obj;
- obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ obj = kzalloc_obj(*obj, GFP_KERNEL);
if (!obj)
return ERR_PTR(-ENOMEM);
@@ -198,7 +198,7 @@ dmabuf_pages_to_sgt(struct page **pages, unsigned int nr_pages)
struct sg_table *sgt;
int ret;
- sgt = kmalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kmalloc_obj(*sgt, GFP_KERNEL);
if (!sgt) {
ret = -ENOMEM;
goto out;
@@ -222,8 +222,7 @@ static int dmabuf_exp_ops_attach(struct dma_buf *dma_buf,
{
struct gntdev_dmabuf_attachment *gntdev_dmabuf_attach;
- gntdev_dmabuf_attach = kzalloc(sizeof(*gntdev_dmabuf_attach),
- GFP_KERNEL);
+ gntdev_dmabuf_attach = kzalloc_obj(*gntdev_dmabuf_attach, GFP_KERNEL);
if (!gntdev_dmabuf_attach)
return -ENOMEM;
@@ -363,7 +362,7 @@ static int dmabuf_exp_from_pages(struct gntdev_dmabuf_export_args *args)
if (ret < 0)
return ret;
- gntdev_dmabuf = kzalloc(sizeof(*gntdev_dmabuf), GFP_KERNEL);
+ gntdev_dmabuf = kzalloc_obj(*gntdev_dmabuf, GFP_KERNEL);
if (!gntdev_dmabuf)
return -ENOMEM;
@@ -531,13 +530,12 @@ static struct gntdev_dmabuf *dmabuf_imp_alloc_storage(int count)
struct gntdev_dmabuf *gntdev_dmabuf;
int i;
- gntdev_dmabuf = kzalloc(sizeof(*gntdev_dmabuf), GFP_KERNEL);
+ gntdev_dmabuf = kzalloc_obj(*gntdev_dmabuf, GFP_KERNEL);
if (!gntdev_dmabuf)
goto fail_no_free;
- gntdev_dmabuf->u.imp.refs = kcalloc(count,
- sizeof(gntdev_dmabuf->u.imp.refs[0]),
- GFP_KERNEL);
+ gntdev_dmabuf->u.imp.refs = kzalloc_objs(gntdev_dmabuf->u.imp.refs[0],
+ count, GFP_KERNEL);
if (!gntdev_dmabuf->u.imp.refs)
goto fail;
@@ -818,7 +816,7 @@ struct gntdev_dmabuf_priv *gntdev_dmabuf_init(struct file *filp)
{
struct gntdev_dmabuf_priv *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
index 2c960f187f7c..1a986cb7324a 100644
--- a/drivers/xen/gntdev.c
+++ b/drivers/xen/gntdev.c
@@ -141,19 +141,16 @@ struct gntdev_grant_map *gntdev_alloc_map(struct gntdev_priv *priv, int count,
struct gntdev_grant_map *add;
int i;
- add = kzalloc(sizeof(*add), GFP_KERNEL);
+ add = kzalloc_obj(*add, GFP_KERNEL);
if (NULL == add)
return NULL;
- add->grants = kvmalloc_array(count, sizeof(add->grants[0]),
- GFP_KERNEL);
- add->map_ops = kvmalloc_array(count, sizeof(add->map_ops[0]),
- GFP_KERNEL);
- add->unmap_ops = kvmalloc_array(count, sizeof(add->unmap_ops[0]),
- GFP_KERNEL);
- add->pages = kvcalloc(count, sizeof(add->pages[0]), GFP_KERNEL);
+ add->grants = kvmalloc_objs(add->grants[0], count, GFP_KERNEL);
+ add->map_ops = kvmalloc_objs(add->map_ops[0], count, GFP_KERNEL);
+ add->unmap_ops = kvmalloc_objs(add->unmap_ops[0], count, GFP_KERNEL);
+ add->pages = kvzalloc_objs(add->pages[0], count, GFP_KERNEL);
add->being_removed =
- kvcalloc(count, sizeof(add->being_removed[0]), GFP_KERNEL);
+ kvzalloc_objs(add->being_removed[0], count, GFP_KERNEL);
if (NULL == add->grants ||
NULL == add->map_ops ||
NULL == add->unmap_ops ||
@@ -161,10 +158,10 @@ struct gntdev_grant_map *gntdev_alloc_map(struct gntdev_priv *priv, int count,
NULL == add->being_removed)
goto err;
if (xen_pv_domain()) {
- add->kmap_ops = kvmalloc_array(count, sizeof(add->kmap_ops[0]),
- GFP_KERNEL);
- add->kunmap_ops = kvmalloc_array(count, sizeof(add->kunmap_ops[0]),
- GFP_KERNEL);
+ add->kmap_ops = kvmalloc_objs(add->kmap_ops[0], count,
+ GFP_KERNEL);
+ add->kunmap_ops = kvmalloc_objs(add->kunmap_ops[0], count,
+ GFP_KERNEL);
if (NULL == add->kmap_ops || NULL == add->kunmap_ops)
goto err;
}
@@ -179,8 +176,7 @@ struct gntdev_grant_map *gntdev_alloc_map(struct gntdev_priv *priv, int count,
if (dma_flags & (GNTDEV_DMA_FLAG_WC | GNTDEV_DMA_FLAG_COHERENT)) {
struct gnttab_dma_alloc_args args;
- add->frames = kvcalloc(count, sizeof(add->frames[0]),
- GFP_KERNEL);
+ add->frames = kvzalloc_objs(add->frames[0], count, GFP_KERNEL);
if (!add->frames)
goto err;
@@ -587,7 +583,7 @@ static int gntdev_open(struct inode *inode, struct file *flip)
{
struct gntdev_priv *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
@@ -972,7 +968,7 @@ static long gntdev_ioctl_grant_copy(struct gntdev_priv *priv, void __user *u)
mutex_lock(&priv->batch_lock);
if (!priv->batch) {
- batch = kmalloc(sizeof(*batch), GFP_KERNEL);
+ batch = kmalloc_obj(*batch, GFP_KERNEL);
} else {
batch = priv->batch;
priv->batch = batch->next;
diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
index 3e76e33f6e08..6fcd5a7f6605 100644
--- a/drivers/xen/grant-table.c
+++ b/drivers/xen/grant-table.c
@@ -556,7 +556,7 @@ static void gnttab_add_deferred(grant_ref_t ref, struct page *page)
gfp_t gfp = (in_atomic() || irqs_disabled()) ? GFP_ATOMIC : GFP_KERNEL;
uint64_t leaked, deferred;
- entry = kmalloc(sizeof(*entry), gfp);
+ entry = kmalloc_obj(*entry, gfp);
if (!page) {
unsigned long gfn = gnttab_interface->read_frame(ref);
@@ -831,7 +831,7 @@ int gnttab_setup_auto_xlat_frames(phys_addr_t addr)
&addr);
return -ENOMEM;
}
- pfn = kcalloc(max_nr_gframes, sizeof(pfn[0]), GFP_KERNEL);
+ pfn = kzalloc_objs(pfn[0], max_nr_gframes, GFP_KERNEL);
if (!pfn) {
memunmap(vaddr);
return -ENOMEM;
@@ -868,7 +868,7 @@ int gnttab_pages_set_private(int nr_pages, struct page **pages)
#if BITS_PER_LONG < 64
struct xen_page_foreign *foreign;
- foreign = kzalloc(sizeof(*foreign), GFP_KERNEL);
+ foreign = kzalloc_obj(*foreign, GFP_KERNEL);
if (!foreign)
return -ENOMEM;
@@ -1635,9 +1635,8 @@ int gnttab_init(void)
*/
max_nr_glist_frames = max_nr_grefs / RPP;
- gnttab_list = kmalloc_array(max_nr_glist_frames,
- sizeof(grant_ref_t *),
- GFP_KERNEL);
+ gnttab_list = kmalloc_objs(grant_ref_t *, max_nr_glist_frames,
+ GFP_KERNEL);
if (gnttab_list == NULL)
return -ENOMEM;
diff --git a/drivers/xen/mcelog.c b/drivers/xen/mcelog.c
index abe658c73b7b..ca8dbb9be419 100644
--- a/drivers/xen/mcelog.c
+++ b/drivers/xen/mcelog.c
@@ -373,8 +373,7 @@ static int bind_virq_for_mce(void)
/* Fetch each CPU Physical Info for later reference*/
ncpus = mc_op.u.mc_physcpuinfo.ncpus;
- g_physinfo = kcalloc(ncpus, sizeof(struct mcinfo_logical_cpu),
- GFP_KERNEL);
+ g_physinfo = kzalloc_objs(struct mcinfo_logical_cpu, ncpus, GFP_KERNEL);
if (!g_physinfo)
return -ENOMEM;
set_xen_guest_handle(mc_op.u.mc_physcpuinfo.info, g_physinfo);
diff --git a/drivers/xen/pci.c b/drivers/xen/pci.c
index bfe07adb3e3a..07e6b811c9d3 100644
--- a/drivers/xen/pci.c
+++ b/drivers/xen/pci.c
@@ -336,7 +336,7 @@ int xen_register_device_domain_owner(struct pci_dev *dev, uint16_t domain)
{
struct xen_device_domain_owner *owner;
- owner = kzalloc(sizeof(struct xen_device_domain_owner), GFP_KERNEL);
+ owner = kzalloc_obj(struct xen_device_domain_owner, GFP_KERNEL);
if (!owner)
return -ENODEV;
diff --git a/drivers/xen/pcpu.c b/drivers/xen/pcpu.c
index 093ad4a08672..1d9f3874d099 100644
--- a/drivers/xen/pcpu.c
+++ b/drivers/xen/pcpu.c
@@ -247,7 +247,7 @@ static struct pcpu *create_and_register_pcpu(struct xenpf_pcpuinfo *info)
if (info->flags & XEN_PCPU_FLAGS_INVALID)
return ERR_PTR(-ENODEV);
- pcpu = kzalloc(sizeof(struct pcpu), GFP_KERNEL);
+ pcpu = kzalloc_obj(struct pcpu, GFP_KERNEL);
if (!pcpu)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/xen/privcmd-buf.c b/drivers/xen/privcmd-buf.c
index 0f0dad427d7e..95d2d5ca5e4f 100644
--- a/drivers/xen/privcmd-buf.c
+++ b/drivers/xen/privcmd-buf.c
@@ -39,7 +39,7 @@ static int privcmd_buf_open(struct inode *ino, struct file *file)
{
struct privcmd_buf_private *file_priv;
- file_priv = kzalloc(sizeof(*file_priv), GFP_KERNEL);
+ file_priv = kzalloc_obj(*file_priv, GFP_KERNEL);
if (!file_priv)
return -ENOMEM;
@@ -141,7 +141,7 @@ static int privcmd_buf_mmap(struct file *file, struct vm_area_struct *vma)
if (!(vma->vm_flags & VM_SHARED))
return -EINVAL;
- vma_priv = kzalloc(struct_size(vma_priv, pages, count), GFP_KERNEL);
+ vma_priv = kzalloc_flex(*vma_priv, pages, count, GFP_KERNEL);
if (!vma_priv)
return -ENOMEM;
diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
index 402be080ad2c..a5d9211f36c3 100644
--- a/drivers/xen/privcmd.c
+++ b/drivers/xen/privcmd.c
@@ -433,7 +433,7 @@ static int alloc_empty_pages(struct vm_area_struct *vma, int numpgs)
int rc;
struct page **pages;
- pages = kvcalloc(numpgs, sizeof(pages[0]), GFP_KERNEL);
+ pages = kvzalloc_objs(pages[0], numpgs, GFP_KERNEL);
if (pages == NULL)
return -ENOMEM;
@@ -653,7 +653,7 @@ static long privcmd_ioctl_dm_op(struct file *file, void __user *udata)
if (kdata.num > privcmd_dm_op_max_num)
return -E2BIG;
- kbufs = kcalloc(kdata.num, sizeof(*kbufs), GFP_KERNEL);
+ kbufs = kzalloc_objs(*kbufs, kdata.num, GFP_KERNEL);
if (!kbufs)
return -ENOMEM;
@@ -680,13 +680,13 @@ static long privcmd_ioctl_dm_op(struct file *file, void __user *udata)
PAGE_SIZE);
}
- pages = kcalloc(nr_pages, sizeof(*pages), GFP_KERNEL);
+ pages = kzalloc_objs(*pages, nr_pages, GFP_KERNEL);
if (!pages) {
rc = -ENOMEM;
goto out;
}
- xbufs = kcalloc(kdata.num, sizeof(*xbufs), GFP_KERNEL);
+ xbufs = kzalloc_objs(*xbufs, kdata.num, GFP_KERNEL);
if (!xbufs) {
rc = -ENOMEM;
goto out;
@@ -773,7 +773,7 @@ static long privcmd_ioctl_mmap_resource(struct file *file,
goto out;
}
- pfns = kcalloc(kdata.num, sizeof(*pfns), GFP_KERNEL | __GFP_NOWARN);
+ pfns = kzalloc_objs(*pfns, kdata.num, GFP_KERNEL | __GFP_NOWARN);
if (!pfns) {
rc = -ENOMEM;
goto out;
@@ -1355,7 +1355,7 @@ static int privcmd_ioeventfd_assign(struct privcmd_ioeventfd *ioeventfd)
if (!ioeventfd->vcpus || ioeventfd->vcpus > 4096)
return -EINVAL;
- kioeventfd = kzalloc(sizeof(*kioeventfd), GFP_KERNEL);
+ kioeventfd = kzalloc_obj(*kioeventfd, GFP_KERNEL);
if (!kioeventfd)
return -ENOMEM;
@@ -1563,7 +1563,7 @@ static long privcmd_ioctl(struct file *file,
static int privcmd_open(struct inode *ino, struct file *file)
{
- struct privcmd_data *data = kzalloc(sizeof(*data), GFP_KERNEL);
+ struct privcmd_data *data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/drivers/xen/pvcalls-back.c b/drivers/xen/pvcalls-back.c
index c5b6f6fa11eb..8a5dafcaab03 100644
--- a/drivers/xen/pvcalls-back.c
+++ b/drivers/xen/pvcalls-back.c
@@ -324,7 +324,7 @@ static struct sock_mapping *pvcalls_new_active_socket(
struct sock_mapping *map;
void *page;
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (map == NULL) {
sock_release(sock);
return NULL;
@@ -632,7 +632,7 @@ static int pvcalls_back_bind(struct xenbus_device *dev,
fedata = dev_get_drvdata(&dev->dev);
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (map == NULL) {
ret = -ENOMEM;
goto out;
@@ -934,7 +934,7 @@ static int backend_connect(struct xenbus_device *dev)
grant_ref_t ring_ref;
struct pvcalls_fedata *fedata = NULL;
- fedata = kzalloc(sizeof(struct pvcalls_fedata), GFP_KERNEL);
+ fedata = kzalloc_obj(struct pvcalls_fedata, GFP_KERNEL);
if (!fedata)
return -ENOMEM;
diff --git a/drivers/xen/pvcalls-front.c b/drivers/xen/pvcalls-front.c
index 4926d4badc57..c32fd69482e9 100644
--- a/drivers/xen/pvcalls-front.c
+++ b/drivers/xen/pvcalls-front.c
@@ -291,7 +291,7 @@ int pvcalls_front_socket(struct socket *sock)
}
bedata = dev_get_drvdata(&pvcalls_front_dev->dev);
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (map == NULL) {
pvcalls_exit();
return -ENOMEM;
@@ -820,7 +820,7 @@ int pvcalls_front_accept(struct socket *sock, struct socket *newsock,
}
}
- map2 = kzalloc(sizeof(*map2), GFP_KERNEL);
+ map2 = kzalloc_obj(*map2, GFP_KERNEL);
if (map2 == NULL) {
clear_bit(PVCALLS_FLAG_ACCEPT_INFLIGHT,
(void *)&map->passive.flags);
@@ -1179,7 +1179,7 @@ static int pvcalls_front_probe(struct xenbus_device *dev,
return -ENODEV;
pr_info("%s max-page-order is %u\n", __func__, max_page_order);
- bedata = kzalloc(sizeof(struct pvcalls_bedata), GFP_KERNEL);
+ bedata = kzalloc_obj(struct pvcalls_bedata, GFP_KERNEL);
if (!bedata)
return -ENOMEM;
diff --git a/drivers/xen/sys-hypervisor.c b/drivers/xen/sys-hypervisor.c
index 2f880374b463..25f4e1ff13f6 100644
--- a/drivers/xen/sys-hypervisor.c
+++ b/drivers/xen/sys-hypervisor.c
@@ -182,7 +182,7 @@ static ssize_t compiler_show(struct hyp_sysfs_attr *attr, char *buffer)
int ret = -ENOMEM;
struct xen_compile_info *info;
- info = kmalloc(sizeof(struct xen_compile_info), GFP_KERNEL);
+ info = kmalloc_obj(struct xen_compile_info, GFP_KERNEL);
if (info) {
ret = HYPERVISOR_xen_version(XENVER_compile_info, info);
if (!ret)
@@ -200,7 +200,7 @@ static ssize_t compiled_by_show(struct hyp_sysfs_attr *attr, char *buffer)
int ret = -ENOMEM;
struct xen_compile_info *info;
- info = kmalloc(sizeof(struct xen_compile_info), GFP_KERNEL);
+ info = kmalloc_obj(struct xen_compile_info, GFP_KERNEL);
if (info) {
ret = HYPERVISOR_xen_version(XENVER_compile_info, info);
if (!ret)
@@ -218,7 +218,7 @@ static ssize_t compile_date_show(struct hyp_sysfs_attr *attr, char *buffer)
int ret = -ENOMEM;
struct xen_compile_info *info;
- info = kmalloc(sizeof(struct xen_compile_info), GFP_KERNEL);
+ info = kmalloc_obj(struct xen_compile_info, GFP_KERNEL);
if (info) {
ret = HYPERVISOR_xen_version(XENVER_compile_info, info);
if (!ret)
@@ -291,7 +291,7 @@ static ssize_t virtual_start_show(struct hyp_sysfs_attr *attr, char *buffer)
int ret = -ENOMEM;
struct xen_platform_parameters *parms;
- parms = kmalloc(sizeof(struct xen_platform_parameters), GFP_KERNEL);
+ parms = kmalloc_obj(struct xen_platform_parameters, GFP_KERNEL);
if (parms) {
ret = HYPERVISOR_xen_version(XENVER_platform_parameters,
parms);
diff --git a/drivers/xen/time.c b/drivers/xen/time.c
index 0b18d8a5a2dd..a2be0a4d45b0 100644
--- a/drivers/xen/time.c
+++ b/drivers/xen/time.c
@@ -94,9 +94,8 @@ void xen_manage_runstate_time(int action)
pr_warn_once("%s: memory leak as runstate_delta is not NULL\n",
__func__);
- runstate_delta = kmalloc_array(num_possible_cpus(),
- sizeof(*runstate_delta),
- GFP_ATOMIC);
+ runstate_delta = kmalloc_objs(*runstate_delta,
+ num_possible_cpus(), GFP_ATOMIC);
if (unlikely(!runstate_delta)) {
pr_warn("%s: failed to allocate runstate_delta\n",
__func__);
diff --git a/drivers/xen/unpopulated-alloc.c b/drivers/xen/unpopulated-alloc.c
index 1dc0b495c8e5..4cfb6abdc3d8 100644
--- a/drivers/xen/unpopulated-alloc.c
+++ b/drivers/xen/unpopulated-alloc.c
@@ -43,7 +43,7 @@ static int fill_list(unsigned int nr_pages)
struct range mhp_range;
int ret;
- res = kzalloc(sizeof(*res), GFP_KERNEL);
+ res = kzalloc_obj(*res, GFP_KERNEL);
if (!res)
return -ENOMEM;
@@ -65,7 +65,7 @@ static int fill_list(unsigned int nr_pages)
* re-using it by someone else.
*/
if (target_resource != &iomem_resource) {
- tmp_res = kzalloc(sizeof(*tmp_res), GFP_KERNEL);
+ tmp_res = kzalloc_obj(*tmp_res, GFP_KERNEL);
if (!tmp_res) {
ret = -ENOMEM;
goto err_insert;
@@ -84,7 +84,7 @@ static int fill_list(unsigned int nr_pages)
}
}
- pgmap = kzalloc(sizeof(*pgmap), GFP_KERNEL);
+ pgmap = kzalloc_obj(*pgmap, GFP_KERNEL);
if (!pgmap) {
ret = -ENOMEM;
goto err_pgmap;
diff --git a/drivers/xen/xen-acpi-processor.c b/drivers/xen/xen-acpi-processor.c
index f2e8eaf684ba..d7effbaf8948 100644
--- a/drivers/xen/xen-acpi-processor.c
+++ b/drivers/xen/xen-acpi-processor.c
@@ -61,8 +61,8 @@ static int push_cxx_to_hypervisor(struct acpi_processor *_pr)
unsigned int i, ok;
int ret = 0;
- dst_cx_states = kcalloc(_pr->power.count,
- sizeof(struct xen_processor_cx), GFP_KERNEL);
+ dst_cx_states = kzalloc_objs(struct xen_processor_cx, _pr->power.count,
+ GFP_KERNEL);
if (!dst_cx_states)
return -ENOMEM;
@@ -142,8 +142,8 @@ xen_copy_pss_data(struct acpi_processor *_pr,
BUILD_BUG_ON(sizeof(struct xen_processor_px) !=
sizeof(struct acpi_processor_px));
- dst_states = kcalloc(_pr->performance->state_count,
- sizeof(struct xen_processor_px), GFP_KERNEL);
+ dst_states = kzalloc_objs(struct xen_processor_px,
+ _pr->performance->state_count, GFP_KERNEL);
if (!dst_states)
return ERR_PTR(-ENOMEM);
@@ -412,8 +412,8 @@ static int check_acpi_ids(struct acpi_processor *pr_backup)
return -ENOMEM;
}
- acpi_psd = kcalloc(nr_acpi_bits, sizeof(struct acpi_psd_package),
- GFP_KERNEL);
+ acpi_psd = kzalloc_objs(struct acpi_psd_package, nr_acpi_bits,
+ GFP_KERNEL);
if (!acpi_psd) {
bitmap_free(acpi_id_present);
bitmap_free(acpi_id_cst_present);
diff --git a/drivers/xen/xen-front-pgdir-shbuf.c b/drivers/xen/xen-front-pgdir-shbuf.c
index 223870a0111b..32e28f044b33 100644
--- a/drivers/xen/xen-front-pgdir-shbuf.c
+++ b/drivers/xen/xen-front-pgdir-shbuf.c
@@ -205,8 +205,7 @@ static int backend_unmap(struct xen_front_pgdir_shbuf *buf)
if (!buf->pages || !buf->backend_map_handles || !buf->grefs)
return 0;
- unmap_ops = kcalloc(buf->num_pages, sizeof(*unmap_ops),
- GFP_KERNEL);
+ unmap_ops = kzalloc_objs(*unmap_ops, buf->num_pages, GFP_KERNEL);
if (!unmap_ops)
return -ENOMEM;
@@ -250,13 +249,12 @@ static int backend_map(struct xen_front_pgdir_shbuf *buf)
unsigned char *ptr;
int ret, cur_gref, cur_dir_page, cur_page, grefs_left;
- map_ops = kcalloc(buf->num_pages, sizeof(*map_ops), GFP_KERNEL);
+ map_ops = kzalloc_objs(*map_ops, buf->num_pages, GFP_KERNEL);
if (!map_ops)
return -ENOMEM;
- buf->backend_map_handles = kcalloc(buf->num_pages,
- sizeof(*buf->backend_map_handles),
- GFP_KERNEL);
+ buf->backend_map_handles = kzalloc_objs(*buf->backend_map_handles,
+ buf->num_pages, GFP_KERNEL);
if (!buf->backend_map_handles) {
kfree(map_ops);
return -ENOMEM;
@@ -474,7 +472,7 @@ static int grant_references(struct xen_front_pgdir_shbuf *buf)
*/
static int alloc_storage(struct xen_front_pgdir_shbuf *buf)
{
- buf->grefs = kcalloc(buf->num_grefs, sizeof(*buf->grefs), GFP_KERNEL);
+ buf->grefs = kzalloc_objs(*buf->grefs, buf->num_grefs, GFP_KERNEL);
if (!buf->grefs)
return -ENOMEM;
diff --git a/drivers/xen/xen-pciback/conf_space.c b/drivers/xen/xen-pciback/conf_space.c
index d47eee6c5143..fbc40acd593f 100644
--- a/drivers/xen/xen-pciback/conf_space.c
+++ b/drivers/xen/xen-pciback/conf_space.c
@@ -401,7 +401,7 @@ int xen_pcibk_config_add_field_offset(struct pci_dev *dev,
struct config_field_entry *cfg_entry;
void *tmp;
- cfg_entry = kmalloc(sizeof(*cfg_entry), GFP_KERNEL);
+ cfg_entry = kmalloc_obj(*cfg_entry, GFP_KERNEL);
if (!cfg_entry) {
err = -ENOMEM;
goto out;
diff --git a/drivers/xen/xen-pciback/conf_space_header.c b/drivers/xen/xen-pciback/conf_space_header.c
index fc0332645966..0efbd85cf7e1 100644
--- a/drivers/xen/xen-pciback/conf_space_header.c
+++ b/drivers/xen/xen-pciback/conf_space_header.c
@@ -33,7 +33,7 @@ struct pci_bar_info {
static void *command_init(struct pci_dev *dev, int offset)
{
- struct pci_cmd_info *cmd = kmalloc(sizeof(*cmd), GFP_KERNEL);
+ struct pci_cmd_info *cmd = kmalloc_obj(*cmd, GFP_KERNEL);
int err;
if (!cmd)
@@ -211,7 +211,7 @@ static void *bar_init(struct pci_dev *dev, int offset)
{
unsigned int pos;
const struct resource *res = dev->resource;
- struct pci_bar_info *bar = kzalloc(sizeof(*bar), GFP_KERNEL);
+ struct pci_bar_info *bar = kzalloc_obj(*bar, GFP_KERNEL);
if (!bar)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/xen/xen-pciback/conf_space_quirks.c b/drivers/xen/xen-pciback/conf_space_quirks.c
index 7dc281086302..52c8d38cb434 100644
--- a/drivers/xen/xen-pciback/conf_space_quirks.c
+++ b/drivers/xen/xen-pciback/conf_space_quirks.c
@@ -97,7 +97,7 @@ int xen_pcibk_config_quirks_init(struct pci_dev *dev)
struct xen_pcibk_config_quirk *quirk;
int ret = 0;
- quirk = kzalloc(sizeof(*quirk), GFP_KERNEL);
+ quirk = kzalloc_obj(*quirk, GFP_KERNEL);
if (!quirk) {
ret = -ENOMEM;
goto out;
diff --git a/drivers/xen/xen-pciback/passthrough.c b/drivers/xen/xen-pciback/passthrough.c
index 66e9b814cc86..9d2583a7a19a 100644
--- a/drivers/xen/xen-pciback/passthrough.c
+++ b/drivers/xen/xen-pciback/passthrough.c
@@ -51,7 +51,7 @@ static int __xen_pcibk_add_pci_dev(struct xen_pcibk_device *pdev,
unsigned int domain, bus, devfn;
int err;
- dev_entry = kmalloc(sizeof(*dev_entry), GFP_KERNEL);
+ dev_entry = kmalloc_obj(*dev_entry, GFP_KERNEL);
if (!dev_entry)
return -ENOMEM;
dev_entry->dev = dev;
@@ -101,7 +101,7 @@ static int __xen_pcibk_init_devices(struct xen_pcibk_device *pdev)
{
struct passthrough_dev_data *dev_data;
- dev_data = kmalloc(sizeof(*dev_data), GFP_KERNEL);
+ dev_data = kmalloc_obj(*dev_data, GFP_KERNEL);
if (!dev_data)
return -ENOMEM;
diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c
index 045e74847fe6..ffc70ce61c8f 100644
--- a/drivers/xen/xen-pciback/pci_stub.c
+++ b/drivers/xen/xen-pciback/pci_stub.c
@@ -79,7 +79,7 @@ static struct pcistub_device *pcistub_device_alloc(struct pci_dev *dev)
dev_dbg(&dev->dev, "pcistub_device_alloc\n");
- psdev = kzalloc(sizeof(*psdev), GFP_KERNEL);
+ psdev = kzalloc_obj(*psdev, GFP_KERNEL);
if (!psdev)
return NULL;
@@ -623,7 +623,7 @@ static int pcistub_probe(struct pci_dev *dev, const struct pci_device_id *id)
}
if (!match) {
- pci_dev_id = kmalloc(sizeof(*pci_dev_id), GFP_KERNEL);
+ pci_dev_id = kmalloc_obj(*pci_dev_id, GFP_KERNEL);
if (!pci_dev_id) {
err = -ENOMEM;
goto out;
@@ -1129,7 +1129,7 @@ static int pcistub_device_id_add(int domain, int bus, int slot, int func)
|| PCI_FUNC(devfn) != func)
return -EINVAL;
- pci_dev_id = kmalloc(sizeof(*pci_dev_id), GFP_KERNEL);
+ pci_dev_id = kmalloc_obj(*pci_dev_id, GFP_KERNEL);
if (!pci_dev_id)
return -ENOMEM;
@@ -1189,7 +1189,7 @@ static int pcistub_reg_add(int domain, int bus, int slot, int func,
}
dev = psdev->dev;
- field = kzalloc(sizeof(*field), GFP_KERNEL);
+ field = kzalloc_obj(*field, GFP_KERNEL);
if (!field) {
err = -ENOMEM;
goto out;
diff --git a/drivers/xen/xen-pciback/pciback_ops.c b/drivers/xen/xen-pciback/pciback_ops.c
index 84e014490950..2755ab0b0d85 100644
--- a/drivers/xen/xen-pciback/pciback_ops.c
+++ b/drivers/xen/xen-pciback/pciback_ops.c
@@ -219,7 +219,7 @@ int xen_pcibk_enable_msix(struct xen_pcibk_device *pdev,
if (dev->msi_enabled || !(cmd & PCI_COMMAND_MEMORY))
return -ENXIO;
- entries = kmalloc_array(op->value, sizeof(*entries), GFP_KERNEL);
+ entries = kmalloc_objs(*entries, op->value, GFP_KERNEL);
if (entries == NULL)
return -ENOMEM;
diff --git a/drivers/xen/xen-pciback/vpci.c b/drivers/xen/xen-pciback/vpci.c
index cc7450f2b2a9..391ea1040b16 100644
--- a/drivers/xen/xen-pciback/vpci.c
+++ b/drivers/xen/xen-pciback/vpci.c
@@ -81,7 +81,7 @@ static int __xen_pcibk_add_pci_dev(struct xen_pcibk_device *pdev,
goto out;
}
- dev_entry = kmalloc(sizeof(*dev_entry), GFP_KERNEL);
+ dev_entry = kmalloc_obj(*dev_entry, GFP_KERNEL);
if (!dev_entry) {
err = -ENOMEM;
xenbus_dev_fatal(pdev->xdev, err,
@@ -186,7 +186,7 @@ static int __xen_pcibk_init_devices(struct xen_pcibk_device *pdev)
int slot;
struct vpci_dev_data *vpci_dev;
- vpci_dev = kmalloc(sizeof(*vpci_dev), GFP_KERNEL);
+ vpci_dev = kmalloc_obj(*vpci_dev, GFP_KERNEL);
if (!vpci_dev)
return -ENOMEM;
diff --git a/drivers/xen/xen-pciback/xenbus.c b/drivers/xen/xen-pciback/xenbus.c
index b11e401f1b1e..d5e001ff0489 100644
--- a/drivers/xen/xen-pciback/xenbus.c
+++ b/drivers/xen/xen-pciback/xenbus.c
@@ -38,7 +38,7 @@ static struct xen_pcibk_device *alloc_pdev(struct xenbus_device *xdev)
{
struct xen_pcibk_device *pdev;
- pdev = kzalloc(sizeof(struct xen_pcibk_device), GFP_KERNEL);
+ pdev = kzalloc_obj(struct xen_pcibk_device, GFP_KERNEL);
if (pdev == NULL)
goto out;
dev_dbg(&xdev->dev, "allocated pdev @ 0x%p\n", pdev);
diff --git a/drivers/xen/xen-scsiback.c b/drivers/xen/xen-scsiback.c
index 7d5117e5efe0..66758c72d5d1 100644
--- a/drivers/xen/xen-scsiback.c
+++ b/drivers/xen/xen-scsiback.c
@@ -543,8 +543,8 @@ static int scsiback_gnttab_data_map(struct vscsiif_request *ring_req,
}
/* free of (sgl) in fast_flush_area() */
- pending_req->sgl = kmalloc_array(nr_segments,
- sizeof(struct scatterlist), GFP_KERNEL);
+ pending_req->sgl = kmalloc_objs(struct scatterlist, nr_segments,
+ GFP_KERNEL);
if (!pending_req->sgl)
return -ENOMEM;
@@ -974,7 +974,7 @@ static int scsiback_add_translation_entry(struct vscsibk_info *info,
return -ENODEV;
}
- new = kmalloc(sizeof(struct v2p_entry), GFP_KERNEL);
+ new = kmalloc_obj(struct v2p_entry, GFP_KERNEL);
if (new == NULL) {
err = -ENOMEM;
goto out_free;
@@ -1270,8 +1270,7 @@ static int scsiback_probe(struct xenbus_device *dev,
{
int err;
- struct vscsibk_info *info = kzalloc(sizeof(struct vscsibk_info),
- GFP_KERNEL);
+ struct vscsibk_info *info = kzalloc_obj(struct vscsibk_info, GFP_KERNEL);
pr_debug("%s %p %d\n", __func__, dev, dev->otherend_id);
@@ -1352,7 +1351,7 @@ scsiback_make_tport(struct target_fabric_configfs *tf,
u64 wwpn = 0;
int off = 0;
- tport = kzalloc(sizeof(struct scsiback_tport), GFP_KERNEL);
+ tport = kzalloc_obj(struct scsiback_tport, GFP_KERNEL);
if (!tport)
return ERR_PTR(-ENOMEM);
@@ -1532,7 +1531,7 @@ static int scsiback_make_nexus(struct scsiback_tpg *tpg,
goto out_unlock;
}
- tv_nexus = kzalloc(sizeof(struct scsiback_nexus), GFP_KERNEL);
+ tv_nexus = kzalloc_obj(struct scsiback_nexus, GFP_KERNEL);
if (!tv_nexus) {
ret = -ENOMEM;
goto out_unlock;
@@ -1759,7 +1758,7 @@ scsiback_make_tpg(struct se_wwn *wwn, const char *name)
if (ret)
return ERR_PTR(ret);
- tpg = kzalloc(sizeof(struct scsiback_tpg), GFP_KERNEL);
+ tpg = kzalloc_obj(struct scsiback_tpg, GFP_KERNEL);
if (!tpg)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/xen/xenbus/xenbus_client.c b/drivers/xen/xenbus/xenbus_client.c
index 2dc874fb5506..61739961838c 100644
--- a/drivers/xen/xenbus/xenbus_client.c
+++ b/drivers/xen/xenbus/xenbus_client.c
@@ -535,11 +535,11 @@ int xenbus_map_ring_valloc(struct xenbus_device *dev, grant_ref_t *gnt_refs,
if (nr_grefs > XENBUS_MAX_RING_GRANTS)
return -EINVAL;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
- info->node = kzalloc(sizeof(*info->node), GFP_KERNEL);
+ info->node = kzalloc_obj(*info->node, GFP_KERNEL);
if (!info->node)
err = -ENOMEM;
else
diff --git a/drivers/xen/xenbus/xenbus_dev_frontend.c b/drivers/xen/xenbus/xenbus_dev_frontend.c
index f5c21ba64df5..7b37d80b82ed 100644
--- a/drivers/xen/xenbus/xenbus_dev_frontend.c
+++ b/drivers/xen/xenbus/xenbus_dev_frontend.c
@@ -195,7 +195,7 @@ static int queue_reply(struct list_head *queue, const void *data, size_t len)
if (len > XENSTORE_PAYLOAD_MAX)
return -EINVAL;
- rb = kmalloc(struct_size(rb, msg, len), GFP_KERNEL);
+ rb = kmalloc_flex(*rb, msg, len, GFP_KERNEL);
if (rb == NULL)
return -ENOMEM;
@@ -242,7 +242,7 @@ static struct watch_adapter *alloc_watch_adapter(const char *path,
{
struct watch_adapter *watch;
- watch = kzalloc(sizeof(*watch), GFP_KERNEL);
+ watch = kzalloc_obj(*watch, GFP_KERNEL);
if (watch == NULL)
goto out_fail;
@@ -454,7 +454,7 @@ static int xenbus_write_transaction(unsigned msg_type,
} *msg = (void *)u->u.buffer;
if (msg_type == XS_TRANSACTION_START) {
- trans = kzalloc(sizeof(*trans), GFP_KERNEL);
+ trans = kzalloc_obj(*trans, GFP_KERNEL);
if (!trans) {
rc = -ENOMEM;
goto out;
@@ -655,7 +655,7 @@ static int xenbus_file_open(struct inode *inode, struct file *filp)
stream_open(inode, filp);
- u = kzalloc(sizeof(*u), GFP_KERNEL);
+ u = kzalloc_obj(*u, GFP_KERNEL);
if (u == NULL)
return -ENOMEM;
diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
index 15f18374020e..82b0a34ded70 100644
--- a/drivers/xen/xenbus/xenbus_xs.c
+++ b/drivers/xen/xenbus/xenbus_xs.c
@@ -324,7 +324,7 @@ static void *xs_talkv(struct xenbus_transaction t,
unsigned int i;
int err;
- req = kmalloc(sizeof(*req), GFP_NOIO | __GFP_HIGH);
+ req = kmalloc_obj(*req, GFP_NOIO | __GFP_HIGH);
if (!req)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/xen/xlate_mmu.c b/drivers/xen/xlate_mmu.c
index f17c4c03db30..b40ec40eb9a2 100644
--- a/drivers/xen/xlate_mmu.c
+++ b/drivers/xen/xlate_mmu.c
@@ -223,11 +223,11 @@ int __init xen_xlate_map_ballooned_pages(xen_pfn_t **gfns, void **virt,
BUG_ON(nr_grant_frames == 0);
nr_pages = DIV_ROUND_UP(nr_grant_frames, XEN_PFN_PER_PAGE);
- pages = kcalloc(nr_pages, sizeof(pages[0]), GFP_KERNEL);
+ pages = kzalloc_objs(pages[0], nr_pages, GFP_KERNEL);
if (!pages)
return -ENOMEM;
- pfns = kcalloc(nr_grant_frames, sizeof(pfns[0]), GFP_KERNEL);
+ pfns = kzalloc_objs(pfns[0], nr_grant_frames, GFP_KERNEL);
if (!pfns) {
kfree(pages);
return -ENOMEM;
diff --git a/drivers/zorro/zorro.c b/drivers/zorro/zorro.c
index 4e23d53d269e..1959faa6926a 100644
--- a/drivers/zorro/zorro.c
+++ b/drivers/zorro/zorro.c
@@ -135,8 +135,7 @@ static int __init amiga_zorro_probe(struct platform_device *pdev)
int error;
/* Initialize the Zorro bus */
- bus = kzalloc(struct_size(bus, devices, zorro_num_autocon),
- GFP_KERNEL);
+ bus = kzalloc_flex(*bus, devices, zorro_num_autocon, GFP_KERNEL);
if (!bus)
return -ENOMEM;
diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c
index 315336de6f02..b9872016deae 100644
--- a/fs/9p/vfs_super.c
+++ b/fs/9p/vfs_super.c
@@ -90,7 +90,7 @@ static int v9fs_get_tree(struct fs_context *fc)
p9_debug(P9_DEBUG_VFS, "\n");
- v9ses = kzalloc(sizeof(struct v9fs_session_info), GFP_KERNEL);
+ v9ses = kzalloc_obj(struct v9fs_session_info, GFP_KERNEL);
if (!v9ses)
return -ENOMEM;
@@ -308,7 +308,7 @@ static int v9fs_init_fs_context(struct fs_context *fc)
{
struct v9fs_context *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/adfs/dir.c b/fs/adfs/dir.c
index 4f9dc276da6f..366fb93c7b38 100644
--- a/fs/adfs/dir.c
+++ b/fs/adfs/dir.c
@@ -108,7 +108,7 @@ int adfs_dir_read_buffers(struct super_block *sb, u32 indaddr,
if (dir->bhs != dir->bh)
return -EINVAL;
- bhs = kcalloc(num, sizeof(*bhs), GFP_KERNEL);
+ bhs = kzalloc_objs(*bhs, num, GFP_KERNEL);
if (!bhs)
return -ENOMEM;
diff --git a/fs/adfs/map.c b/fs/adfs/map.c
index a0ce272b4098..9e24e212b3e1 100644
--- a/fs/adfs/map.c
+++ b/fs/adfs/map.c
@@ -373,7 +373,7 @@ struct adfs_discmap *adfs_read_map(struct super_block *sb, struct adfs_discrecor
((nzones > 1) ? ADFS_DR_SIZE_BITS : 0);
map_addr = signed_asl(map_addr, asb->s_map2blk);
- dm = kmalloc_array(nzones, sizeof(*dm), GFP_KERNEL);
+ dm = kmalloc_objs(*dm, nzones, GFP_KERNEL);
if (dm == NULL) {
adfs_error(sb, "not enough memory");
return ERR_PTR(-ENOMEM);
diff --git a/fs/adfs/super.c b/fs/adfs/super.c
index fdccdbbfc213..a8e73e980abb 100644
--- a/fs/adfs/super.c
+++ b/fs/adfs/super.c
@@ -437,7 +437,7 @@ static int adfs_init_fs_context(struct fs_context *fc)
{
struct adfs_sb_info *asb;
- asb = kzalloc(sizeof(struct adfs_sb_info), GFP_KERNEL);
+ asb = kzalloc_obj(struct adfs_sb_info, GFP_KERNEL);
if (!asb)
return -ENOMEM;
diff --git a/fs/affs/dir.c b/fs/affs/dir.c
index fe18caaf4d65..39b6ddc4e4b1 100644
--- a/fs/affs/dir.c
+++ b/fs/affs/dir.c
@@ -36,7 +36,7 @@ static int affs_dir_open(struct inode *inode, struct file *file)
{
struct affs_dir_data *data;
- data = kzalloc(sizeof(struct affs_dir_data), GFP_KERNEL);
+ data = kzalloc_obj(struct affs_dir_data, GFP_KERNEL);
if (!data)
return -ENOMEM;
file->private_data = data;
diff --git a/fs/affs/super.c b/fs/affs/super.c
index 44f8aa883100..1a2f72fea1ab 100644
--- a/fs/affs/super.c
+++ b/fs/affs/super.c
@@ -327,7 +327,7 @@ static int affs_fill_super(struct super_block *sb, struct fs_context *fc)
sb->s_time_min = sys_tz.tz_minuteswest * 60 + AFFS_EPOCH_DELTA;
sb->s_time_max = 86400LL * U32_MAX + 86400 + sb->s_time_min;
- sbi = kzalloc(sizeof(struct affs_sb_info), GFP_KERNEL);
+ sbi = kzalloc_obj(struct affs_sb_info, GFP_KERNEL);
if (!sbi)
return -ENOMEM;
@@ -615,7 +615,7 @@ static int affs_init_fs_context(struct fs_context *fc)
{
struct affs_context *ctx;
- ctx = kzalloc(sizeof(struct affs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct affs_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/afs/addr_list.c b/fs/afs/addr_list.c
index e941da5b6dd9..26590bfeae91 100644
--- a/fs/afs/addr_list.c
+++ b/fs/afs/addr_list.c
@@ -66,7 +66,7 @@ struct afs_addr_list *afs_alloc_addrlist(unsigned int nr)
if (nr > AFS_MAX_ADDRESSES)
nr = AFS_MAX_ADDRESSES;
- alist = kzalloc(struct_size(alist, addrs, nr), GFP_KERNEL);
+ alist = kzalloc_flex(*alist, addrs, nr, GFP_KERNEL);
if (!alist)
return NULL;
diff --git a/fs/afs/addr_prefs.c b/fs/afs/addr_prefs.c
index 133736412c3d..f5a4fb6f609a 100644
--- a/fs/afs/addr_prefs.c
+++ b/fs/afs/addr_prefs.c
@@ -401,7 +401,7 @@ int afs_proc_addr_prefs_write(struct file *file, char *buf, size_t size)
max_prefs = min_t(size_t, (psize - sizeof(*old)) / sizeof(old->prefs[0]), 255);
ret = -ENOMEM;
- preflist = kmalloc(struct_size(preflist, prefs, max_prefs), GFP_KERNEL);
+ preflist = kmalloc_flex(*preflist, prefs, max_prefs, GFP_KERNEL);
if (!preflist)
goto done;
diff --git a/fs/afs/cell.c b/fs/afs/cell.c
index 71c10a05cebe..4331bf8e1dbd 100644
--- a/fs/afs/cell.c
+++ b/fs/afs/cell.c
@@ -134,7 +134,7 @@ static struct afs_cell *afs_alloc_cell(struct afs_net *net,
_enter("%*.*s,%s", namelen, namelen, name, addresses);
- cell = kzalloc(sizeof(struct afs_cell), GFP_KERNEL);
+ cell = kzalloc_obj(struct afs_cell, GFP_KERNEL);
if (!cell) {
_leave(" = -ENOMEM");
return ERR_PTR(-ENOMEM);
diff --git a/fs/afs/cmservice.c b/fs/afs/cmservice.c
index 1a906805a9e3..a32e7c2864d2 100644
--- a/fs/afs/cmservice.c
+++ b/fs/afs/cmservice.c
@@ -228,9 +228,8 @@ static int afs_deliver_cb_callback(struct afs_call *call)
return ret;
_debug("unmarshall FID array");
- call->request = kcalloc(call->count,
- sizeof(struct afs_callback_break),
- GFP_KERNEL);
+ call->request = kzalloc_objs(struct afs_callback_break,
+ call->count, GFP_KERNEL);
if (!call->request)
return -ENOMEM;
@@ -340,7 +339,7 @@ static int afs_deliver_cb_init_call_back_state3(struct afs_call *call)
}
_debug("unmarshall UUID");
- call->request = kmalloc(sizeof(struct afs_uuid), GFP_KERNEL);
+ call->request = kmalloc_obj(struct afs_uuid, GFP_KERNEL);
if (!call->request)
return -ENOMEM;
@@ -457,7 +456,7 @@ static int afs_deliver_cb_probe_uuid(struct afs_call *call)
}
_debug("unmarshall UUID");
- call->request = kmalloc(sizeof(struct afs_uuid), GFP_KERNEL);
+ call->request = kmalloc_obj(struct afs_uuid, GFP_KERNEL);
if (!call->request)
return -ENOMEM;
@@ -589,9 +588,8 @@ static int afs_deliver_yfs_cb_callback(struct afs_call *call)
return ret;
_debug("unmarshall FID array");
- call->request = kcalloc(call->count,
- sizeof(struct afs_callback_break),
- GFP_KERNEL);
+ call->request = kzalloc_objs(struct afs_callback_break,
+ call->count, GFP_KERNEL);
if (!call->request)
return -ENOMEM;
diff --git a/fs/afs/dir.c b/fs/afs/dir.c
index f4e9e12373ac..6f7380f25365 100644
--- a/fs/afs/dir.c
+++ b/fs/afs/dir.c
@@ -785,7 +785,7 @@ static struct inode *afs_do_lookup(struct inode *dir, struct dentry *dentry)
_enter("{%lu},%p{%pd},", dir->i_ino, dentry, dentry);
- cookie = kzalloc(sizeof(struct afs_lookup_cookie), GFP_KERNEL);
+ cookie = kzalloc_obj(struct afs_lookup_cookie, GFP_KERNEL);
if (!cookie)
return ERR_PTR(-ENOMEM);
@@ -834,9 +834,8 @@ static struct inode *afs_do_lookup(struct inode *dir, struct dentry *dentry)
/* Need space for examining all the selected files */
if (op->nr_files > 2) {
- op->more_files = kvcalloc(op->nr_files - 2,
- sizeof(struct afs_vnode_param),
- GFP_KERNEL);
+ op->more_files = kvzalloc_objs(struct afs_vnode_param,
+ op->nr_files - 2, GFP_KERNEL);
if (!op->more_files) {
afs_op_nomem(op);
goto out_op;
@@ -2095,7 +2094,7 @@ static int afs_rename(struct mnt_idmap *idmap, struct inode *old_dir,
goto error;
ret = -ENOMEM;
- op->more_files = kvcalloc(2, sizeof(struct afs_vnode_param), GFP_KERNEL);
+ op->more_files = kvzalloc_objs(struct afs_vnode_param, 2, GFP_KERNEL);
if (!op->more_files)
goto error;
diff --git a/fs/afs/dir_silly.c b/fs/afs/dir_silly.c
index 014495d4b868..f77bed45e808 100644
--- a/fs/afs/dir_silly.c
+++ b/fs/afs/dir_silly.c
@@ -69,7 +69,7 @@ static int afs_do_silly_rename(struct afs_vnode *dvnode, struct afs_vnode *vnode
if (IS_ERR(op))
return PTR_ERR(op);
- op->more_files = kvcalloc(2, sizeof(struct afs_vnode_param), GFP_KERNEL);
+ op->more_files = kvzalloc_objs(struct afs_vnode_param, 2, GFP_KERNEL);
if (!op->more_files) {
afs_put_operation(op);
return -ENOMEM;
diff --git a/fs/afs/file.c b/fs/afs/file.c
index f66a92294284..5c429a746d76 100644
--- a/fs/afs/file.c
+++ b/fs/afs/file.c
@@ -86,7 +86,7 @@ int afs_cache_wb_key(struct afs_vnode *vnode, struct afs_file *af)
{
struct afs_wb_key *wbk, *p;
- wbk = kzalloc(sizeof(struct afs_wb_key), GFP_KERNEL);
+ wbk = kzalloc_obj(struct afs_wb_key, GFP_KERNEL);
if (!wbk)
return -ENOMEM;
refcount_set(&wbk->usage, 2);
@@ -130,7 +130,7 @@ int afs_open(struct inode *inode, struct file *file)
goto error;
}
- af = kzalloc(sizeof(*af), GFP_KERNEL);
+ af = kzalloc_obj(*af, GFP_KERNEL);
if (!af) {
ret = -ENOMEM;
goto error_key;
diff --git a/fs/afs/fs_operation.c b/fs/afs/fs_operation.c
index 8418813ee043..0ffd19f5279d 100644
--- a/fs/afs/fs_operation.c
+++ b/fs/afs/fs_operation.c
@@ -21,7 +21,7 @@ struct afs_operation *afs_alloc_operation(struct key *key, struct afs_volume *vo
_enter("");
- op = kzalloc(sizeof(*op), GFP_KERNEL);
+ op = kzalloc_obj(*op, GFP_KERNEL);
if (!op)
return ERR_PTR(-ENOMEM);
diff --git a/fs/afs/fs_probe.c b/fs/afs/fs_probe.c
index e0030ac74ea0..0100ce4c62a0 100644
--- a/fs/afs/fs_probe.c
+++ b/fs/afs/fs_probe.c
@@ -244,7 +244,7 @@ int afs_fs_probe_fileserver(struct afs_net *net, struct afs_server *server,
_enter("%pU", &server->uuid);
- estate = kzalloc(sizeof(*estate), GFP_KERNEL);
+ estate = kzalloc_obj(*estate, GFP_KERNEL);
if (!estate)
return -ENOMEM;
diff --git a/fs/afs/fsclient.c b/fs/afs/fsclient.c
index bc9556991d7c..eb3520b9a282 100644
--- a/fs/afs/fsclient.c
+++ b/fs/afs/fsclient.c
@@ -2010,7 +2010,7 @@ static int afs_deliver_fs_fetch_acl(struct afs_call *call)
size = call->count2 = ntohl(call->tmp);
size = round_up(size, 4);
- acl = kmalloc(struct_size(acl, data, size), GFP_KERNEL);
+ acl = kmalloc_flex(*acl, data, size, GFP_KERNEL);
if (!acl)
return -ENOMEM;
op->acl = acl;
diff --git a/fs/afs/main.c b/fs/afs/main.c
index e6bb8237db98..7e09bf7aa03b 100644
--- a/fs/afs/main.c
+++ b/fs/afs/main.c
@@ -93,7 +93,7 @@ static int __net_init afs_net_init(struct net *net_ns)
atomic_set(&net->servers_outstanding, 1);
ret = -ENOMEM;
- sysnames = kzalloc(sizeof(*sysnames), GFP_KERNEL);
+ sysnames = kzalloc_obj(*sysnames, GFP_KERNEL);
if (!sysnames)
goto error_sysnames;
sysnames->subs[0] = (char *)&afs_init_sysname;
diff --git a/fs/afs/proc.c b/fs/afs/proc.c
index 44520549b509..52e8195ef2b8 100644
--- a/fs/afs/proc.c
+++ b/fs/afs/proc.c
@@ -572,7 +572,7 @@ static int afs_proc_sysname_write(struct file *file, char *buf, size_t size)
char *s, *p, *sub;
int ret, len;
- sysnames = kzalloc(sizeof(*sysnames), GFP_KERNEL);
+ sysnames = kzalloc_obj(*sysnames, GFP_KERNEL);
if (!sysnames)
return -ENOMEM;
refcount_set(&sysnames->usage, 1);
diff --git a/fs/afs/rotate.c b/fs/afs/rotate.c
index 6a4e7da10fc4..69e80c5b6610 100644
--- a/fs/afs/rotate.c
+++ b/fs/afs/rotate.c
@@ -46,8 +46,9 @@ static bool afs_start_fs_iteration(struct afs_operation *op,
lockdep_is_held(&op->volume->servers_lock)));
read_unlock(&op->volume->servers_lock);
- op->server_states = kcalloc(op->server_list->nr_servers, sizeof(op->server_states[0]),
- GFP_KERNEL);
+ op->server_states = kzalloc_objs(op->server_states[0],
+ op->server_list->nr_servers,
+ GFP_KERNEL);
if (!op->server_states) {
afs_op_nomem(op);
trace_afs_rotate(op, afs_rotate_trace_nomem, 0);
diff --git a/fs/afs/rxrpc.c b/fs/afs/rxrpc.c
index bf0e4ea0aafd..588f8de51167 100644
--- a/fs/afs/rxrpc.c
+++ b/fs/afs/rxrpc.c
@@ -160,7 +160,7 @@ static struct afs_call *afs_alloc_call(struct afs_net *net,
struct afs_call *call;
int o;
- call = kzalloc(sizeof(*call), gfp);
+ call = kzalloc_obj(*call, gfp);
if (!call)
return NULL;
diff --git a/fs/afs/security.c b/fs/afs/security.c
index 55ddce94af03..6d00d62a65ed 100644
--- a/fs/afs/security.c
+++ b/fs/afs/security.c
@@ -252,7 +252,7 @@ void afs_cache_permit(struct afs_vnode *vnode, struct key *key,
* yet.
*/
size++;
- new = kzalloc(struct_size(new, permits, size), GFP_NOFS);
+ new = kzalloc_flex(*new, permits, size, GFP_NOFS);
if (!new)
goto out_put;
diff --git a/fs/afs/server.c b/fs/afs/server.c
index c4428ebddb1d..8777c566d12d 100644
--- a/fs/afs/server.c
+++ b/fs/afs/server.c
@@ -117,7 +117,7 @@ static struct afs_server *afs_alloc_server(struct afs_cell *cell, const uuid_t *
_enter("");
- server = kzalloc(sizeof(struct afs_server), GFP_KERNEL);
+ server = kzalloc_obj(struct afs_server, GFP_KERNEL);
if (!server)
return NULL;
diff --git a/fs/afs/server_list.c b/fs/afs/server_list.c
index 20d5474837df..b948df6dddc7 100644
--- a/fs/afs/server_list.c
+++ b/fs/afs/server_list.c
@@ -51,7 +51,7 @@ struct afs_server_list *afs_alloc_server_list(struct afs_volume *volume,
newrep++;
}
- slist = kzalloc(struct_size(slist, servers, nr_servers), GFP_KERNEL);
+ slist = kzalloc_flex(*slist, servers, nr_servers, GFP_KERNEL);
if (!slist)
goto error;
diff --git a/fs/afs/super.c b/fs/afs/super.c
index d672b7ab57ae..2b567fe5b4cb 100644
--- a/fs/afs/super.c
+++ b/fs/afs/super.c
@@ -502,7 +502,7 @@ static struct afs_super_info *afs_alloc_sbi(struct fs_context *fc)
struct afs_fs_context *ctx = fc->fs_private;
struct afs_super_info *as;
- as = kzalloc(sizeof(struct afs_super_info), GFP_KERNEL);
+ as = kzalloc_obj(struct afs_super_info, GFP_KERNEL);
if (as) {
as->net_ns = get_net(fc->net_ns);
as->flock_mode = ctx->flock_mode;
@@ -623,7 +623,7 @@ static int afs_init_fs_context(struct fs_context *fc)
struct afs_fs_context *ctx;
struct afs_cell *cell;
- ctx = kzalloc(sizeof(struct afs_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct afs_fs_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/afs/vl_list.c b/fs/afs/vl_list.c
index 9b1c20daac53..4f430ae01646 100644
--- a/fs/afs/vl_list.c
+++ b/fs/afs/vl_list.c
@@ -15,8 +15,7 @@ struct afs_vlserver *afs_alloc_vlserver(const char *name, size_t name_len,
struct afs_vlserver *vlserver;
static atomic_t debug_ids;
- vlserver = kzalloc(struct_size(vlserver, name, name_len + 1),
- GFP_KERNEL);
+ vlserver = kzalloc_flex(*vlserver, name, name_len + 1, GFP_KERNEL);
if (vlserver) {
refcount_set(&vlserver->ref, 1);
rwlock_init(&vlserver->lock);
@@ -52,7 +51,7 @@ struct afs_vlserver_list *afs_alloc_vlserver_list(unsigned int nr_servers)
{
struct afs_vlserver_list *vllist;
- vllist = kzalloc(struct_size(vllist, servers, nr_servers), GFP_KERNEL);
+ vllist = kzalloc_flex(*vllist, servers, nr_servers, GFP_KERNEL);
if (vllist) {
refcount_set(&vllist->ref, 1);
rwlock_init(&vllist->lock);
diff --git a/fs/afs/vlclient.c b/fs/afs/vlclient.c
index 3a23c0b08eb6..05abd50e4057 100644
--- a/fs/afs/vlclient.c
+++ b/fs/afs/vlclient.c
@@ -122,7 +122,7 @@ struct afs_vldb_entry *afs_vl_get_entry_by_name_u(struct afs_vl_cursor *vc,
padsz = (4 - (volnamesz & 3)) & 3;
reqsz = 8 + volnamesz + padsz;
- entry = kzalloc(sizeof(struct afs_vldb_entry), GFP_KERNEL);
+ entry = kzalloc_obj(struct afs_vldb_entry, GFP_KERNEL);
if (!entry)
return ERR_PTR(-ENOMEM);
diff --git a/fs/afs/volume.c b/fs/afs/volume.c
index 0efff3d25133..260df046143a 100644
--- a/fs/afs/volume.c
+++ b/fs/afs/volume.c
@@ -81,7 +81,7 @@ static struct afs_volume *afs_alloc_volume(struct afs_fs_context *params,
struct afs_volume *volume;
int ret = -ENOMEM, i;
- volume = kzalloc(sizeof(struct afs_volume), GFP_KERNEL);
+ volume = kzalloc_obj(struct afs_volume, GFP_KERNEL);
if (!volume)
goto error_0;
diff --git a/fs/afs/xattr.c b/fs/afs/xattr.c
index e19f396aa370..2daf23af01e5 100644
--- a/fs/afs/xattr.c
+++ b/fs/afs/xattr.c
@@ -75,7 +75,7 @@ static bool afs_make_acl(struct afs_operation *op,
{
struct afs_acl *acl;
- acl = kmalloc(struct_size(acl, data, size), GFP_KERNEL);
+ acl = kmalloc_flex(*acl, data, size, GFP_KERNEL);
if (!acl) {
afs_op_nomem(op);
return false;
@@ -157,7 +157,7 @@ static int afs_xattr_get_yfs(const struct xattr_handler *handler,
else
return -EOPNOTSUPP;
- yacl = kzalloc(sizeof(struct yfs_acl), GFP_KERNEL);
+ yacl = kzalloc_obj(struct yfs_acl, GFP_KERNEL);
if (!yacl)
goto error;
diff --git a/fs/afs/yfsclient.c b/fs/afs/yfsclient.c
index febf13a49f0b..9adc2dcde9a7 100644
--- a/fs/afs/yfsclient.c
+++ b/fs/afs/yfsclient.c
@@ -2048,7 +2048,7 @@ static int yfs_deliver_fs_fetch_opaque_acl(struct afs_call *call)
size = round_up(size, 4);
if (yacl->flags & YFS_ACL_WANT_ACL) {
- acl = kmalloc(struct_size(acl, data, size), GFP_KERNEL);
+ acl = kmalloc_flex(*acl, data, size, GFP_KERNEL);
if (!acl)
return -ENOMEM;
yacl->acl = acl;
@@ -2080,7 +2080,7 @@ static int yfs_deliver_fs_fetch_opaque_acl(struct afs_call *call)
size = round_up(size, 4);
if (yacl->flags & YFS_ACL_WANT_VOL_ACL) {
- acl = kmalloc(struct_size(acl, data, size), GFP_KERNEL);
+ acl = kmalloc_flex(*acl, data, size, GFP_KERNEL);
if (!acl)
return -ENOMEM;
yacl->vol_acl = acl;
diff --git a/fs/aio.c b/fs/aio.c
index 59b67b8da1b2..4eb757df3d80 100644
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -510,8 +510,8 @@ static int aio_setup_ring(struct kioctx *ctx, unsigned int nr_events)
ctx->ring_folios = ctx->internal_folios;
if (nr_pages > AIO_RING_PAGES) {
- ctx->ring_folios = kcalloc(nr_pages, sizeof(struct folio *),
- GFP_KERNEL);
+ ctx->ring_folios = kzalloc_objs(struct folio *, nr_pages,
+ GFP_KERNEL);
if (!ctx->ring_folios) {
put_aio_ring_file(ctx);
return -ENOMEM;
@@ -693,7 +693,7 @@ static int ioctx_add_table(struct kioctx *ctx, struct mm_struct *mm)
new_nr = (table ? table->nr : 1) * 4;
spin_unlock(&mm->ioctx_lock);
- table = kzalloc(struct_size(table, table, new_nr), GFP_KERNEL);
+ table = kzalloc_flex(*table, table, new_nr, GFP_KERNEL);
if (!table)
return -ENOMEM;
diff --git a/fs/autofs/inode.c b/fs/autofs/inode.c
index b932b1719dfc..5134a042044c 100644
--- a/fs/autofs/inode.c
+++ b/fs/autofs/inode.c
@@ -13,7 +13,7 @@ struct autofs_info *autofs_new_ino(struct autofs_sb_info *sbi)
{
struct autofs_info *ino;
- ino = kzalloc(sizeof(*ino), GFP_KERNEL);
+ ino = kzalloc_obj(*ino, GFP_KERNEL);
if (ino) {
INIT_LIST_HEAD(&ino->active);
INIT_LIST_HEAD(&ino->expiring);
@@ -242,7 +242,7 @@ static struct autofs_sb_info *autofs_alloc_sbi(void)
{
struct autofs_sb_info *sbi;
- sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
+ sbi = kzalloc_obj(*sbi, GFP_KERNEL);
if (!sbi)
return NULL;
@@ -405,7 +405,7 @@ int autofs_init_fs_context(struct fs_context *fc)
struct autofs_fs_context *ctx;
struct autofs_sb_info *sbi;
- ctx = kzalloc(sizeof(struct autofs_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct autofs_fs_context, GFP_KERNEL);
if (!ctx)
goto nomem;
diff --git a/fs/autofs/waitq.c b/fs/autofs/waitq.c
index 33dd4660d82f..21ecd0bbc0ca 100644
--- a/fs/autofs/waitq.c
+++ b/fs/autofs/waitq.c
@@ -376,7 +376,7 @@ int autofs_wait(struct autofs_sb_info *sbi,
if (!wq) {
/* Create a new wait queue */
- wq = kmalloc(sizeof(struct autofs_wait_queue), GFP_KERNEL);
+ wq = kmalloc_obj(struct autofs_wait_queue, GFP_KERNEL);
if (!wq) {
kfree(name);
mutex_unlock(&sbi->wq_mutex);
diff --git a/fs/befs/btree.c b/fs/befs/btree.c
index 53b36aa29978..aa24f1daccdd 100644
--- a/fs/befs/btree.c
+++ b/fs/befs/btree.c
@@ -258,8 +258,7 @@ befs_btree_find(struct super_block *sb, const befs_data_stream *ds,
goto error;
}
- this_node = kmalloc(sizeof(struct befs_btree_node),
- GFP_NOFS);
+ this_node = kmalloc_obj(struct befs_btree_node, GFP_NOFS);
if (!this_node) {
befs_error(sb, "befs_btree_find() failed to allocate %zu "
"bytes of memory", sizeof(struct befs_btree_node));
@@ -431,7 +430,7 @@ befs_btree_read(struct super_block *sb, const befs_data_stream *ds,
goto error;
}
- this_node = kmalloc(sizeof(struct befs_btree_node), GFP_NOFS);
+ this_node = kmalloc_obj(struct befs_btree_node, GFP_NOFS);
if (this_node == NULL) {
befs_error(sb, "befs_btree_read() failed to allocate %zu "
"bytes of memory", sizeof(struct befs_btree_node));
diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c
index d7c5d9270387..df54c52d2f19 100644
--- a/fs/befs/linuxvfs.c
+++ b/fs/befs/linuxvfs.c
@@ -790,7 +790,7 @@ befs_fill_super(struct super_block *sb, struct fs_context *fc)
struct befs_mount_options *parsed_opts = fc->fs_private;
int silent = fc->sb_flags & SB_SILENT;
- sb->s_fs_info = kzalloc(sizeof(*befs_sb), GFP_KERNEL);
+ sb->s_fs_info = kzalloc_obj(*befs_sb, GFP_KERNEL);
if (sb->s_fs_info == NULL)
goto unacquire_none;
@@ -956,7 +956,7 @@ static int befs_init_fs_context(struct fs_context *fc)
{
struct befs_mount_options *opts;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return -ENOMEM;
diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c
index ce6f83234b67..6ed07d892e3d 100644
--- a/fs/bfs/inode.c
+++ b/fs/bfs/inode.c
@@ -334,7 +334,7 @@ static int bfs_fill_super(struct super_block *s, struct fs_context *fc)
unsigned long i_sblock, i_eblock, i_eoff, s_size;
int silent = fc->sb_flags & SB_SILENT;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
mutex_init(&info->bfs_lock);
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
index 3eb734c192e9..6ea9681cab33 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -916,7 +916,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
*/
would_dump(bprm, interpreter);
- interp_elf_ex = kmalloc(sizeof(*interp_elf_ex), GFP_KERNEL);
+ interp_elf_ex = kmalloc_obj(*interp_elf_ex, GFP_KERNEL);
if (!interp_elf_ex) {
retval = -ENOMEM;
goto out_free_file;
@@ -1798,7 +1798,7 @@ static int fill_thread_core_info(struct elf_thread_core_info *t,
fill_note(&t->notes[0], PRSTATUS, sizeof(t->prstatus), &t->prstatus);
info->size += notesize(&t->notes[0]);
- fpu = kzalloc(sizeof(elf_fpregset_t), GFP_KERNEL);
+ fpu = kzalloc_obj(elf_fpregset_t, GFP_KERNEL);
if (!fpu || !elf_core_copy_task_fpregs(p, fpu)) {
kfree(fpu);
return 1;
@@ -1824,7 +1824,7 @@ static int fill_note_info(struct elfhdr *elf, int phdrs,
u16 machine;
u32 flags;
- psinfo = kmalloc(sizeof(*psinfo), GFP_KERNEL);
+ psinfo = kmalloc_obj(*psinfo, GFP_KERNEL);
if (!psinfo)
return 0;
fill_note(&info->psinfo, PRPSINFO, sizeof(*psinfo), psinfo);
@@ -1873,15 +1873,14 @@ static int fill_note_info(struct elfhdr *elf, int phdrs,
/*
* Allocate a structure for each thread.
*/
- info->thread = kzalloc(struct_size(info->thread, notes, info->thread_notes),
- GFP_KERNEL);
+ info->thread = kzalloc_flex(*info->thread, notes, info->thread_notes,
+ GFP_KERNEL);
if (unlikely(!info->thread))
return 0;
info->thread->task = dump_task;
for (ct = dump_task->signal->core_state->dumper.next; ct; ct = ct->next) {
- t = kzalloc(struct_size(t, notes, info->thread_notes),
- GFP_KERNEL);
+ t = kzalloc_flex(*t, notes, info->thread_notes, GFP_KERNEL);
if (unlikely(!t))
return 0;
@@ -2037,7 +2036,7 @@ static int elf_core_dump(struct coredump_params *cprm)
/* For cell spufs and x86 xstate */
sz += elf_coredump_extra_notes_size();
- phdr4note = kmalloc(sizeof(*phdr4note), GFP_KERNEL);
+ phdr4note = kmalloc_obj(*phdr4note, GFP_KERNEL);
if (!phdr4note)
goto end_coredump;
@@ -2052,7 +2051,7 @@ static int elf_core_dump(struct coredump_params *cprm)
e_shoff = offset;
if (e_phnum == PN_XNUM) {
- shdr4extnum = kmalloc(sizeof(*shdr4extnum), GFP_KERNEL);
+ shdr4extnum = kmalloc_obj(*shdr4extnum, GFP_KERNEL);
if (!shdr4extnum)
goto end_coredump;
fill_extnum_info(&elf, shdr4extnum, e_shoff, segs);
diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
index 48fd2de3bca0..cee0871b0164 100644
--- a/fs/binfmt_elf_fdpic.c
+++ b/fs/binfmt_elf_fdpic.c
@@ -761,7 +761,7 @@ static int elf_fdpic_map_file(struct elf_fdpic_params *params,
if (nloads == 0)
return -ELIBBAD;
- loadmap = kzalloc(struct_size(loadmap, segs, nloads), GFP_KERNEL);
+ loadmap = kzalloc_flex(*loadmap, segs, nloads, GFP_KERNEL);
if (!loadmap)
return -ENOMEM;
@@ -1391,7 +1391,7 @@ static struct elf_thread_status *elf_dump_thread_status(long signr, struct task_
struct elf_thread_status *t;
int i, ret;
- t = kzalloc(sizeof(struct elf_thread_status), GFP_KERNEL);
+ t = kzalloc_obj(struct elf_thread_status, GFP_KERNEL);
if (!t)
return t;
@@ -1486,10 +1486,10 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
struct elf_thread_status *tmp;
/* alloc memory for large data structures: too large to be on stack */
- elf = kmalloc(sizeof(*elf), GFP_KERNEL);
+ elf = kmalloc_obj(*elf, GFP_KERNEL);
if (!elf)
goto end_coredump;
- psinfo = kmalloc(sizeof(*psinfo), GFP_KERNEL);
+ psinfo = kmalloc_obj(*psinfo, GFP_KERNEL);
if (!psinfo)
goto end_coredump;
@@ -1547,7 +1547,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
offset += segs * sizeof(struct elf_phdr); /* Program headers */
/* Write notes phdr entry */
- phdr4note = kmalloc(sizeof(*phdr4note), GFP_KERNEL);
+ phdr4note = kmalloc_obj(*phdr4note, GFP_KERNEL);
if (!phdr4note)
goto end_coredump;
@@ -1562,7 +1562,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
e_shoff = offset;
if (e_phnum == PN_XNUM) {
- shdr4extnum = kmalloc(sizeof(*shdr4extnum), GFP_KERNEL);
+ shdr4extnum = kmalloc_obj(*shdr4extnum, GFP_KERNEL);
if (!shdr4extnum)
goto end_coredump;
fill_extnum_info(elf, shdr4extnum, e_shoff, segs);
diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c
index 2b772613a74c..4a15e09bc398 100644
--- a/fs/binfmt_misc.c
+++ b/fs/binfmt_misc.c
@@ -961,7 +961,7 @@ static int bm_fill_super(struct super_block *sb, struct fs_context *fc)
* create their own separate binfmt_misc mounts we should
* consider turning this into a kmem cache.
*/
- misc = kzalloc(sizeof(struct binfmt_misc), GFP_KERNEL);
+ misc = kzalloc_obj(struct binfmt_misc, GFP_KERNEL);
if (!misc)
return -ENOMEM;
diff --git a/fs/btrfs/async-thread.c b/fs/btrfs/async-thread.c
index 6c6f3bb58f4e..cce7b2610364 100644
--- a/fs/btrfs/async-thread.c
+++ b/fs/btrfs/async-thread.c
@@ -85,7 +85,7 @@ struct btrfs_workqueue *btrfs_alloc_workqueue(struct btrfs_fs_info *fs_info,
const char *name, unsigned int flags,
int limit_active, int thresh)
{
- struct btrfs_workqueue *ret = kzalloc(sizeof(*ret), GFP_KERNEL);
+ struct btrfs_workqueue *ret = kzalloc_obj(*ret, GFP_KERNEL);
if (!ret)
return NULL;
@@ -126,7 +126,7 @@ struct btrfs_workqueue *btrfs_alloc_ordered_workqueue(
{
struct btrfs_workqueue *ret;
- ret = kzalloc(sizeof(*ret), GFP_KERNEL);
+ ret = kzalloc_obj(*ret, GFP_KERNEL);
if (!ret)
return NULL;
diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c
index 9bb406f7dd30..78bf0cad1d2d 100644
--- a/fs/btrfs/backref.c
+++ b/fs/btrfs/backref.c
@@ -78,7 +78,7 @@ static int check_extent_in_eb(struct btrfs_backref_walk_ctx *ctx,
}
add_inode_elem:
- e = kmalloc(sizeof(*e), GFP_NOFS);
+ e = kmalloc_obj(*e, GFP_NOFS);
if (!e)
return -ENOMEM;
@@ -1805,7 +1805,7 @@ struct btrfs_backref_share_check_ctx *btrfs_alloc_backref_share_check_ctx(void)
{
struct btrfs_backref_share_check_ctx *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return NULL;
@@ -2797,7 +2797,7 @@ struct inode_fs_paths *init_ipath(s32 total_bytes, struct btrfs_root *fs_root,
if (IS_ERR(fspath))
return ERR_CAST(fspath);
- ifp = kmalloc(sizeof(*ifp), GFP_KERNEL);
+ ifp = kmalloc_obj(*ifp, GFP_KERNEL);
if (!ifp) {
kvfree(fspath);
return ERR_PTR(-ENOMEM);
@@ -2814,7 +2814,7 @@ struct btrfs_backref_iter *btrfs_backref_iter_alloc(struct btrfs_fs_info *fs_inf
{
struct btrfs_backref_iter *ret;
- ret = kzalloc(sizeof(*ret), GFP_NOFS);
+ ret = kzalloc_obj(*ret, GFP_NOFS);
if (!ret)
return NULL;
@@ -3024,7 +3024,7 @@ struct btrfs_backref_node *btrfs_backref_alloc_node(
struct btrfs_backref_node *node;
ASSERT(level >= 0 && level < BTRFS_MAX_LEVEL);
- node = kzalloc(sizeof(*node), GFP_NOFS);
+ node = kzalloc_obj(*node, GFP_NOFS);
if (!node)
return node;
@@ -3057,7 +3057,7 @@ struct btrfs_backref_edge *btrfs_backref_alloc_edge(
{
struct btrfs_backref_edge *edge;
- edge = kzalloc(sizeof(*edge), GFP_NOFS);
+ edge = kzalloc_obj(*edge, GFP_NOFS);
if (edge)
cache->nr_edges++;
return edge;
diff --git a/fs/btrfs/bio.c b/fs/btrfs/bio.c
index 4a1528803ff7..2a2a21aec817 100644
--- a/fs/btrfs/bio.c
+++ b/fs/btrfs/bio.c
@@ -709,7 +709,7 @@ static bool btrfs_wq_submit_bio(struct btrfs_bio *bbio,
struct btrfs_fs_info *fs_info = bbio->inode->root->fs_info;
struct async_submit_bio *async;
- async = kmalloc(sizeof(*async), GFP_NOFS);
+ async = kmalloc_obj(*async, GFP_NOFS);
if (!async)
return false;
diff --git a/fs/btrfs/block-group.c b/fs/btrfs/block-group.c
index 5f76683b3f21..c284f48cfae4 100644
--- a/fs/btrfs/block-group.c
+++ b/fs/btrfs/block-group.c
@@ -947,7 +947,7 @@ int btrfs_cache_block_group(struct btrfs_block_group *cache, bool wait)
if (cache->flags & BTRFS_BLOCK_GROUP_REMAPPED)
return 0;
- caching_ctl = kzalloc(sizeof(*caching_ctl), GFP_NOFS);
+ caching_ctl = kzalloc_obj(*caching_ctl, GFP_NOFS);
if (!caching_ctl)
return -ENOMEM;
@@ -2312,12 +2312,11 @@ static struct btrfs_block_group *btrfs_create_block_group(
{
struct btrfs_block_group *cache;
- cache = kzalloc(sizeof(*cache), GFP_NOFS);
+ cache = kzalloc_obj(*cache, GFP_NOFS);
if (!cache)
return NULL;
- cache->free_space_ctl = kzalloc(sizeof(*cache->free_space_ctl),
- GFP_NOFS);
+ cache->free_space_ctl = kzalloc_obj(*cache->free_space_ctl, GFP_NOFS);
if (!cache->free_space_ctl) {
kfree(cache);
return NULL;
diff --git a/fs/btrfs/block-rsv.c b/fs/btrfs/block-rsv.c
index 93c371db8731..6064dd00d041 100644
--- a/fs/btrfs/block-rsv.c
+++ b/fs/btrfs/block-rsv.c
@@ -192,7 +192,7 @@ struct btrfs_block_rsv *btrfs_alloc_block_rsv(struct btrfs_fs_info *fs_info,
{
struct btrfs_block_rsv *block_rsv;
- block_rsv = kmalloc(sizeof(*block_rsv), GFP_NOFS);
+ block_rsv = kmalloc_obj(*block_rsv, GFP_NOFS);
if (!block_rsv)
return NULL;
diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
index 1e7174ad32e2..7fde7698c331 100644
--- a/fs/btrfs/compression.c
+++ b/fs/btrfs/compression.c
@@ -662,7 +662,7 @@ static struct list_head *alloc_heuristic_ws(struct btrfs_fs_info *fs_info)
{
struct heuristic_ws *ws;
- ws = kzalloc(sizeof(*ws), GFP_KERNEL);
+ ws = kzalloc_obj(*ws, GFP_KERNEL);
if (!ws)
return ERR_PTR(-ENOMEM);
@@ -670,11 +670,11 @@ static struct list_head *alloc_heuristic_ws(struct btrfs_fs_info *fs_info)
if (!ws->sample)
goto fail;
- ws->bucket = kcalloc(BUCKET_SIZE, sizeof(*ws->bucket), GFP_KERNEL);
+ ws->bucket = kzalloc_objs(*ws->bucket, BUCKET_SIZE, GFP_KERNEL);
if (!ws->bucket)
goto fail;
- ws->bucket_b = kcalloc(BUCKET_SIZE, sizeof(*ws->bucket_b), GFP_KERNEL);
+ ws->bucket_b = kzalloc_objs(*ws->bucket_b, BUCKET_SIZE, GFP_KERNEL);
if (!ws->bucket_b)
goto fail;
@@ -734,7 +734,7 @@ static int alloc_workspace_manager(struct btrfs_fs_info *fs_info,
struct list_head *workspace;
ASSERT(fs_info->compr_wsm[type] == NULL);
- gwsm = kzalloc(sizeof(*gwsm), GFP_KERNEL);
+ gwsm = kzalloc_obj(*gwsm, GFP_KERNEL);
if (!gwsm)
return -ENOMEM;
diff --git a/fs/btrfs/defrag.c b/fs/btrfs/defrag.c
index ecf05cd64696..7e2db5d3a4d4 100644
--- a/fs/btrfs/defrag.c
+++ b/fs/btrfs/defrag.c
@@ -1091,7 +1091,7 @@ static int defrag_collect_targets(struct btrfs_inode *inode,
}
/* Allocate new defrag_target_range */
- new = kmalloc(sizeof(*new), GFP_NOFS);
+ new = kmalloc_obj(*new, GFP_NOFS);
if (!new) {
btrfs_free_extent_map(em);
ret = -ENOMEM;
@@ -1206,7 +1206,7 @@ static int defrag_one_range(struct btrfs_inode *inode, u64 start, u32 len,
ASSERT(nr_pages <= CLUSTER_SIZE / PAGE_SIZE);
ASSERT(IS_ALIGNED(start, sectorsize) && IS_ALIGNED(len, sectorsize));
- folios = kcalloc(nr_pages, sizeof(struct folio *), GFP_NOFS);
+ folios = kzalloc_objs(struct folio *, nr_pages, GFP_NOFS);
if (!folios)
return -ENOMEM;
diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c
index 1739a0b29c49..d97bbbd045e0 100644
--- a/fs/btrfs/delayed-inode.c
+++ b/fs/btrfs/delayed-inode.c
@@ -349,7 +349,7 @@ static struct btrfs_delayed_item *btrfs_alloc_delayed_item(u16 data_len,
{
struct btrfs_delayed_item *item;
- item = kmalloc(struct_size(item, data, data_len), GFP_NOFS);
+ item = kmalloc_flex(*item, data, data_len, GFP_NOFS);
if (item) {
item->data_len = data_len;
item->type = type;
@@ -1384,7 +1384,7 @@ static int btrfs_wq_run_delayed_node(struct btrfs_delayed_root *delayed_root,
{
struct btrfs_async_delayed_work *async_work;
- async_work = kmalloc(sizeof(*async_work), GFP_NOFS);
+ async_work = kmalloc_obj(*async_work, GFP_NOFS);
if (!async_work)
return -ENOMEM;
diff --git a/fs/btrfs/delayed-ref.c b/fs/btrfs/delayed-ref.c
index e8bc37453336..3766ff29fbbb 100644
--- a/fs/btrfs/delayed-ref.c
+++ b/fs/btrfs/delayed-ref.c
@@ -1027,7 +1027,7 @@ static int add_delayed_ref(struct btrfs_trans_handle *trans,
delayed_refs = &trans->transaction->delayed_refs;
if (btrfs_qgroup_full_accounting(fs_info) && !generic_ref->skip_qgroup) {
- record = kzalloc(sizeof(*record), GFP_NOFS);
+ record = kzalloc_obj(*record, GFP_NOFS);
if (!record) {
ret = -ENOMEM;
goto free_head_ref;
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 13e400046c87..f6fa15a1193f 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -605,7 +605,7 @@ static struct btrfs_root *btrfs_alloc_root(struct btrfs_fs_info *fs_info,
{
struct btrfs_root *root;
- root = kzalloc(sizeof(*root), flags);
+ root = kzalloc_obj(*root, flags);
if (!root)
return NULL;
diff --git a/fs/btrfs/extent_io.h b/fs/btrfs/extent_io.h
index 73571d5d3d5a..a9b0b596429d 100644
--- a/fs/btrfs/extent_io.h
+++ b/fs/btrfs/extent_io.h
@@ -200,7 +200,7 @@ static inline struct extent_changeset *extent_changeset_alloc(void)
{
struct extent_changeset *ret;
- ret = kmalloc(sizeof(*ret), GFP_KERNEL);
+ ret = kmalloc_obj(*ret, GFP_KERNEL);
if (!ret)
return NULL;
diff --git a/fs/btrfs/fiemap.c b/fs/btrfs/fiemap.c
index f2eaaef8422b..2e113f81a2d8 100644
--- a/fs/btrfs/fiemap.c
+++ b/fs/btrfs/fiemap.c
@@ -646,9 +646,8 @@ static int extent_fiemap(struct btrfs_inode *inode,
int ret;
cache.entries_size = PAGE_SIZE / sizeof(struct btrfs_fiemap_entry);
- cache.entries = kmalloc_array(cache.entries_size,
- sizeof(struct btrfs_fiemap_entry),
- GFP_KERNEL);
+ cache.entries = kmalloc_objs(struct btrfs_fiemap_entry,
+ cache.entries_size, GFP_KERNEL);
backref_ctx = btrfs_alloc_backref_share_check_ctx();
path = btrfs_alloc_path();
if (!cache.entries || !backref_ctx || !path) {
diff --git a/fs/btrfs/file-item.c b/fs/btrfs/file-item.c
index 7bd715442f3e..927324a2175a 100644
--- a/fs/btrfs/file-item.c
+++ b/fs/btrfs/file-item.c
@@ -845,7 +845,7 @@ int btrfs_csum_one_bio(struct btrfs_bio *bbio, bool async)
*/
int btrfs_alloc_dummy_sum(struct btrfs_bio *bbio)
{
- bbio->sums = kmalloc(sizeof(*bbio->sums), GFP_NOFS);
+ bbio->sums = kmalloc_obj(*bbio->sums, GFP_NOFS);
if (!bbio->sums)
return -ENOMEM;
bbio->sums->len = bbio->bio.bi_iter.bi_size;
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index acaa3dbd2b7b..21cb45e23a6f 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -2842,7 +2842,7 @@ static int add_falloc_range(struct list_head *head, u64 start, u64 len)
}
}
- range = kmalloc(sizeof(*range), GFP_KERNEL);
+ range = kmalloc_obj(*range, GFP_KERNEL);
if (!range)
return -ENOMEM;
range->start = start;
@@ -3572,7 +3572,7 @@ static loff_t find_desired_extent(struct file *file, loff_t offset, int whence)
*/
private = NULL;
} else if (!private) {
- private = kzalloc(sizeof(*private), GFP_KERNEL);
+ private = kzalloc_obj(*private, GFP_KERNEL);
/*
* No worries if memory allocation failed.
* The private structure is used only for speeding up multiple
diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c
index cc075a460a22..ab22e4f9ffdd 100644
--- a/fs/btrfs/free-space-cache.c
+++ b/fs/btrfs/free-space-cache.c
@@ -388,7 +388,7 @@ static int io_ctl_init(struct btrfs_io_ctl *io_ctl, struct inode *inode,
memset(io_ctl, 0, sizeof(struct btrfs_io_ctl));
- io_ctl->pages = kcalloc(num_pages, sizeof(struct page *), GFP_NOFS);
+ io_ctl->pages = kzalloc_objs(struct page *, num_pages, GFP_NOFS);
if (!io_ctl->pages)
return -ENOMEM;
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 5bbbce2224a1..da4be08d133e 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -781,7 +781,7 @@ static int add_async_extent(struct async_chunk *cow, u64 start, u64 ram_size,
{
struct async_extent *async_extent;
- async_extent = kmalloc(sizeof(*async_extent), GFP_NOFS);
+ async_extent = kmalloc_obj(*async_extent, GFP_NOFS);
if (!async_extent)
return -ENOMEM;
ASSERT(ram_size < U32_MAX);
@@ -1692,7 +1692,7 @@ static bool run_delalloc_compressed(struct btrfs_inode *inode,
const blk_opf_t write_flags = wbc_to_write_flags(wbc);
nofs_flag = memalloc_nofs_save();
- ctx = kvmalloc(struct_size(ctx, chunks, num_chunks), GFP_KERNEL);
+ ctx = kvmalloc_flex(*ctx, chunks, num_chunks, GFP_KERNEL);
memalloc_nofs_restore(nofs_flag);
if (!ctx)
return false;
@@ -2991,7 +2991,7 @@ int btrfs_writepage_cow_fixup(struct folio *folio)
if (folio_test_checked(folio))
return -EAGAIN;
- fixup = kzalloc(sizeof(*fixup), GFP_NOFS);
+ fixup = kzalloc_obj(*fixup, GFP_NOFS);
if (!fixup)
return -EAGAIN;
@@ -3967,7 +3967,7 @@ static int btrfs_init_file_extent_tree(struct btrfs_inode *inode)
if (btrfs_is_free_space_inode(inode))
return 0;
- inode->file_extent_tree = kmalloc(sizeof(struct extent_io_tree), GFP_KERNEL);
+ inode->file_extent_tree = kmalloc_obj(struct extent_io_tree, GFP_KERNEL);
if (!inode->file_extent_tree)
return -ENOMEM;
@@ -6221,7 +6221,7 @@ static int btrfs_opendir(struct inode *inode, struct file *file)
if (ret)
return ret;
- private = kzalloc(sizeof(struct btrfs_file_private), GFP_KERNEL);
+ private = kzalloc_obj(struct btrfs_file_private, GFP_KERNEL);
if (!private)
return -ENOMEM;
private->last_index = last_index;
@@ -8839,7 +8839,7 @@ static struct btrfs_delalloc_work *btrfs_alloc_delalloc_work(struct inode *inode
{
struct btrfs_delalloc_work *work;
- work = kmalloc(sizeof(*work), GFP_NOFS);
+ work = kmalloc_obj(*work, GFP_NOFS);
if (!work)
return NULL;
@@ -9538,7 +9538,7 @@ int btrfs_encoded_read_regular_fill_pages(struct btrfs_inode *inode,
* needs longer time span.
*/
if (uring_ctx) {
- priv = kmalloc(sizeof(struct btrfs_encoded_read_private), GFP_NOFS);
+ priv = kmalloc_obj(struct btrfs_encoded_read_private, GFP_NOFS);
if (!priv)
return -ENOMEM;
} else {
@@ -9608,7 +9608,7 @@ ssize_t btrfs_encoded_read_regular(struct kiocb *iocb, struct iov_iter *iter,
ssize_t ret;
nr_pages = DIV_ROUND_UP(disk_io_size, PAGE_SIZE);
- pages = kcalloc(nr_pages, sizeof(struct page *), GFP_NOFS);
+ pages = kzalloc_objs(struct page *, nr_pages, GFP_NOFS);
if (!pages)
return -ENOMEM;
ret = btrfs_alloc_page_array(nr_pages, pages, false);
@@ -10092,7 +10092,7 @@ static int btrfs_add_swapfile_pin(struct inode *inode, void *ptr,
struct rb_node **p;
struct rb_node *parent = NULL;
- sp = kmalloc(sizeof(*sp), GFP_NOFS);
+ sp = kmalloc_obj(*sp, GFP_NOFS);
if (!sp)
return -ENOMEM;
sp->ptr = ptr;
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index a6cc2d3b414c..af8a9c698b07 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -726,15 +726,15 @@ static int create_snapshot(struct btrfs_root *root, struct inode *dir,
return -ETXTBSY;
}
- pending_snapshot = kzalloc(sizeof(*pending_snapshot), GFP_KERNEL);
+ pending_snapshot = kzalloc_obj(*pending_snapshot, GFP_KERNEL);
if (!pending_snapshot)
return -ENOMEM;
ret = get_anon_bdev(&pending_snapshot->anon_dev);
if (ret < 0)
goto free_pending;
- pending_snapshot->root_item = kzalloc(sizeof(struct btrfs_root_item),
- GFP_KERNEL);
+ pending_snapshot->root_item = kzalloc_obj(struct btrfs_root_item,
+ GFP_KERNEL);
pending_snapshot->path = btrfs_alloc_path();
if (!pending_snapshot->root_item || !pending_snapshot->path) {
ret = -ENOMEM;
@@ -1958,7 +1958,7 @@ static int btrfs_ioctl_get_subvol_info(struct inode *inode, void __user *argp)
if (!path)
return -ENOMEM;
- subvol_info = kzalloc(sizeof(*subvol_info), GFP_KERNEL);
+ subvol_info = kzalloc_obj(*subvol_info, GFP_KERNEL);
if (!subvol_info) {
btrfs_free_path(path);
return -ENOMEM;
@@ -3423,7 +3423,7 @@ static long btrfs_ioctl_balance(struct file *file, void __user *arg)
goto out_unlock;
}
- bctl = kzalloc(sizeof(*bctl), GFP_KERNEL);
+ bctl = kzalloc_obj(*bctl, GFP_KERNEL);
if (!bctl) {
ret = -ENOMEM;
goto out_unlock;
@@ -3604,7 +3604,7 @@ static long btrfs_ioctl_qgroup_assign(struct file *file, void __user *arg)
}
if (sa->assign) {
- prealloc = kzalloc(sizeof(*prealloc), GFP_KERNEL);
+ prealloc = kzalloc_obj(*prealloc, GFP_KERNEL);
if (!prealloc) {
ret = -ENOMEM;
goto out;
@@ -3924,7 +3924,7 @@ static long btrfs_ioctl_set_received_subvol_32(struct file *file,
if (IS_ERR(args32))
return PTR_ERR(args32);
- args64 = kmalloc(sizeof(*args64), GFP_KERNEL);
+ args64 = kmalloc_obj(*args64, GFP_KERNEL);
if (!args64) {
ret = -ENOMEM;
goto out;
@@ -4234,7 +4234,7 @@ static int _btrfs_ioctl_send(struct btrfs_root *root, void __user *argp, bool co
ret = copy_from_user(&args32, argp, sizeof(args32));
if (ret)
return -EFAULT;
- arg = kzalloc(sizeof(*arg), GFP_KERNEL);
+ arg = kzalloc_obj(*arg, GFP_KERNEL);
if (!arg)
return -ENOMEM;
arg->send_fd = args32.send_fd;
@@ -4588,7 +4588,7 @@ static int btrfs_uring_read_extent(struct kiocb *iocb, struct iov_iter *iter,
int ret;
nr_pages = DIV_ROUND_UP(disk_io_size, PAGE_SIZE);
- pages = kcalloc(nr_pages, sizeof(struct page *), GFP_NOFS);
+ pages = kzalloc_objs(struct page *, nr_pages, GFP_NOFS);
if (!pages)
return -ENOMEM;
ret = btrfs_alloc_page_array(nr_pages, pages, 0);
@@ -4597,7 +4597,7 @@ static int btrfs_uring_read_extent(struct kiocb *iocb, struct iov_iter *iter,
goto out_fail;
}
- priv = kmalloc(sizeof(*priv), GFP_NOFS);
+ priv = kmalloc_obj(*priv, GFP_NOFS);
if (!priv) {
ret = -ENOMEM;
goto out_fail;
@@ -4682,7 +4682,7 @@ static int btrfs_uring_encoded_read(struct io_uring_cmd *cmd, unsigned int issue
}
if (!data) {
- data = kzalloc(sizeof(*data), GFP_NOFS);
+ data = kzalloc_obj(*data, GFP_NOFS);
if (!data) {
ret = -ENOMEM;
goto out_acct;
@@ -4817,7 +4817,7 @@ static int btrfs_uring_encoded_write(struct io_uring_cmd *cmd, unsigned int issu
}
if (!data) {
- data = kzalloc(sizeof(*data), GFP_NOFS);
+ data = kzalloc_obj(*data, GFP_NOFS);
if (!data) {
ret = -ENOMEM;
goto out_acct;
diff --git a/fs/btrfs/lru_cache.c b/fs/btrfs/lru_cache.c
index fd88af17d8d9..f5a053b905e1 100644
--- a/fs/btrfs/lru_cache.c
+++ b/fs/btrfs/lru_cache.c
@@ -111,7 +111,7 @@ int btrfs_lru_cache_store(struct btrfs_lru_cache *cache,
struct list_head *head;
int ret;
- head = kmalloc(sizeof(*head), gfp);
+ head = kmalloc_obj(*head, gfp);
if (!head)
return -ENOMEM;
diff --git a/fs/btrfs/lzo.c b/fs/btrfs/lzo.c
index 8e20497afffe..e37d986f26be 100644
--- a/fs/btrfs/lzo.c
+++ b/fs/btrfs/lzo.c
@@ -88,7 +88,7 @@ struct list_head *lzo_alloc_workspace(struct btrfs_fs_info *fs_info)
{
struct workspace *workspace;
- workspace = kzalloc(sizeof(*workspace), GFP_KERNEL);
+ workspace = kzalloc_obj(*workspace, GFP_KERNEL);
if (!workspace)
return ERR_PTR(-ENOMEM);
diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c
index 38adadb936dc..6bd8739097d3 100644
--- a/fs/btrfs/qgroup.c
+++ b/fs/btrfs/qgroup.c
@@ -495,7 +495,7 @@ int btrfs_read_qgroup_config(struct btrfs_fs_info *fs_info)
struct btrfs_qgroup *prealloc;
struct btrfs_root *tree_root = fs_info->tree_root;
- prealloc = kzalloc(sizeof(*prealloc), GFP_KERNEL);
+ prealloc = kzalloc_obj(*prealloc, GFP_KERNEL);
if (!prealloc) {
ret = -ENOMEM;
goto out;
@@ -585,7 +585,7 @@ int btrfs_read_qgroup_config(struct btrfs_fs_info *fs_info)
goto next2;
}
- list = kzalloc(sizeof(*list), GFP_KERNEL);
+ list = kzalloc_obj(*list, GFP_KERNEL);
if (!list) {
ret = -ENOMEM;
goto out;
@@ -1140,7 +1140,7 @@ int btrfs_quota_enable(struct btrfs_fs_info *fs_info,
/* We should not have a stray @prealloc pointer. */
ASSERT(prealloc == NULL);
- prealloc = kzalloc(sizeof(*prealloc), GFP_NOFS);
+ prealloc = kzalloc_obj(*prealloc, GFP_NOFS);
if (unlikely(!prealloc)) {
ret = -ENOMEM;
btrfs_abort_transaction(trans, ret);
@@ -1197,7 +1197,7 @@ int btrfs_quota_enable(struct btrfs_fs_info *fs_info,
}
ASSERT(prealloc == NULL);
- prealloc = kzalloc(sizeof(*prealloc), GFP_NOFS);
+ prealloc = kzalloc_obj(*prealloc, GFP_NOFS);
if (!prealloc) {
ret = -ENOMEM;
goto out_free_path;
@@ -1693,7 +1693,7 @@ int btrfs_create_qgroup(struct btrfs_trans_handle *trans, u64 qgroupid)
goto out;
}
- prealloc = kzalloc(sizeof(*prealloc), GFP_NOFS);
+ prealloc = kzalloc_obj(*prealloc, GFP_NOFS);
if (!prealloc) {
ret = -ENOMEM;
goto out;
@@ -2147,7 +2147,7 @@ int btrfs_qgroup_trace_extent(struct btrfs_trans_handle *trans, u64 bytenr,
if (!btrfs_qgroup_full_accounting(fs_info) || bytenr == 0 || num_bytes == 0)
return 0;
- record = kzalloc(sizeof(*record), GFP_NOFS);
+ record = kzalloc_obj(*record, GFP_NOFS);
if (!record)
return -ENOMEM;
@@ -3346,7 +3346,7 @@ int btrfs_qgroup_inherit(struct btrfs_trans_handle *trans, u64 srcid,
if (!btrfs_qgroup_enabled(fs_info))
return 0;
- prealloc = kzalloc(sizeof(*prealloc), GFP_NOFS);
+ prealloc = kzalloc_obj(*prealloc, GFP_NOFS);
if (!prealloc)
return -ENOMEM;
@@ -3428,16 +3428,15 @@ int btrfs_qgroup_inherit(struct btrfs_trans_handle *trans, u64 srcid,
}
ret = 0;
- qlist_prealloc = kcalloc(inherit->num_qgroups,
- sizeof(struct btrfs_qgroup_list *),
- GFP_NOFS);
+ qlist_prealloc = kzalloc_objs(struct btrfs_qgroup_list *,
+ inherit->num_qgroups, GFP_NOFS);
if (!qlist_prealloc) {
ret = -ENOMEM;
goto out;
}
for (int i = 0; i < inherit->num_qgroups; i++) {
- qlist_prealloc[i] = kzalloc(sizeof(struct btrfs_qgroup_list),
- GFP_NOFS);
+ qlist_prealloc[i] = kzalloc_obj(struct btrfs_qgroup_list,
+ GFP_NOFS);
if (!qlist_prealloc[i]) {
ret = -ENOMEM;
goto out;
@@ -4753,7 +4752,7 @@ int btrfs_qgroup_add_swapped_blocks(struct btrfs_root *subvol_root,
return -EUCLEAN;
}
- block = kmalloc(sizeof(*block), GFP_NOFS);
+ block = kmalloc_obj(*block, GFP_NOFS);
if (!block) {
ret = -ENOMEM;
goto out;
diff --git a/fs/btrfs/raid56.c b/fs/btrfs/raid56.c
index baadaaa189c0..8112122c13e6 100644
--- a/fs/btrfs/raid56.c
+++ b/fs/btrfs/raid56.c
@@ -208,7 +208,7 @@ int btrfs_alloc_stripe_hash_table(struct btrfs_fs_info *info)
* Try harder to allocate and fallback to vmalloc to lower the chance
* of a failing mount.
*/
- table = kvzalloc(struct_size(table, table, num_entries), GFP_KERNEL);
+ table = kvzalloc_flex(*table, table, num_entries, GFP_KERNEL);
if (!table)
return -ENOMEM;
@@ -1090,13 +1090,15 @@ static struct btrfs_raid_bio *alloc_rbio(struct btrfs_fs_info *fs_info,
ASSERT(real_stripes >= 2);
ASSERT(real_stripes <= U8_MAX);
- rbio = kzalloc(sizeof(*rbio), GFP_NOFS);
+ rbio = kzalloc_obj(*rbio, GFP_NOFS);
if (!rbio)
return ERR_PTR(-ENOMEM);
- rbio->stripe_pages = kcalloc(num_pages, sizeof(struct page *),
- GFP_NOFS);
- rbio->bio_paddrs = kcalloc(num_sectors * sector_nsteps, sizeof(phys_addr_t), GFP_NOFS);
- rbio->stripe_paddrs = kcalloc(num_sectors * sector_nsteps, sizeof(phys_addr_t), GFP_NOFS);
+ rbio->stripe_pages = kzalloc_objs(struct page *, num_pages, GFP_NOFS);
+ rbio->bio_paddrs = kzalloc_objs(phys_addr_t,
+ num_sectors * sector_nsteps, GFP_NOFS);
+ rbio->stripe_paddrs = kzalloc_objs(phys_addr_t,
+ num_sectors * sector_nsteps,
+ GFP_NOFS);
rbio->finish_pointers = kcalloc(real_stripes, sizeof(void *), GFP_NOFS);
rbio->error_bitmap = bitmap_zalloc(num_sectors, GFP_NOFS);
rbio->stripe_uptodate_bitmap = bitmap_zalloc(num_sectors, GFP_NOFS);
diff --git a/fs/btrfs/ref-verify.c b/fs/btrfs/ref-verify.c
index e9224145d754..f78369ff2a66 100644
--- a/fs/btrfs/ref-verify.c
+++ b/fs/btrfs/ref-verify.c
@@ -249,8 +249,8 @@ static struct block_entry *add_block_entry(struct btrfs_fs_info *fs_info,
struct block_entry *be = NULL, *exist;
struct root_entry *re = NULL;
- re = kzalloc(sizeof(struct root_entry), GFP_NOFS);
- be = kzalloc(sizeof(struct block_entry), GFP_NOFS);
+ re = kzalloc_obj(struct root_entry, GFP_NOFS);
+ be = kzalloc_obj(struct block_entry, GFP_NOFS);
if (!be || !re) {
kfree(re);
kfree(be);
@@ -298,7 +298,7 @@ static int add_tree_block(struct btrfs_fs_info *fs_info, u64 ref_root,
struct root_entry *re;
struct ref_entry *ref = NULL, *exist;
- ref = kmalloc(sizeof(struct ref_entry), GFP_NOFS);
+ ref = kmalloc_obj(struct ref_entry, GFP_NOFS);
if (!ref)
return -ENOMEM;
@@ -343,7 +343,7 @@ static int add_shared_data_ref(struct btrfs_fs_info *fs_info,
struct block_entry *be;
struct ref_entry *ref;
- ref = kzalloc(sizeof(struct ref_entry), GFP_NOFS);
+ ref = kzalloc_obj(struct ref_entry, GFP_NOFS);
if (!ref)
return -ENOMEM;
be = add_block_entry(fs_info, bytenr, num_bytes, 0);
@@ -378,7 +378,7 @@ static int add_extent_data_ref(struct btrfs_fs_info *fs_info,
u64 offset = btrfs_extent_data_ref_offset(leaf, dref);
u32 num_refs = btrfs_extent_data_ref_count(leaf, dref);
- ref = kzalloc(sizeof(struct ref_entry), GFP_NOFS);
+ ref = kzalloc_obj(struct ref_entry, GFP_NOFS);
if (!ref)
return -ENOMEM;
be = add_block_entry(fs_info, bytenr, num_bytes, ref_root);
@@ -680,8 +680,8 @@ int btrfs_ref_tree_mod(struct btrfs_fs_info *fs_info,
}
metadata = owner < BTRFS_FIRST_FREE_OBJECTID;
- ref = kzalloc(sizeof(struct ref_entry), GFP_NOFS);
- ra = kmalloc(sizeof(struct ref_action), GFP_NOFS);
+ ref = kzalloc_obj(struct ref_entry, GFP_NOFS);
+ ra = kmalloc_obj(struct ref_action, GFP_NOFS);
if (!ra || !ref) {
kfree(ref);
kfree(ra);
@@ -755,7 +755,7 @@ int btrfs_ref_tree_mod(struct btrfs_fs_info *fs_info,
struct root_entry *tmp;
if (!parent) {
- re = kmalloc(sizeof(struct root_entry), GFP_NOFS);
+ re = kmalloc_obj(struct root_entry, GFP_NOFS);
if (!re) {
kfree(ref);
kfree(ra);
diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c
index fcd0a2ba3554..95db7c48fbad 100644
--- a/fs/btrfs/relocation.c
+++ b/fs/btrfs/relocation.c
@@ -483,7 +483,7 @@ static int __add_reloc_root(struct btrfs_root *root)
struct mapping_node *node;
struct reloc_control *rc = fs_info->reloc_ctl;
- node = kmalloc(sizeof(*node), GFP_NOFS);
+ node = kmalloc_obj(*node, GFP_NOFS);
if (!node)
return -ENOMEM;
@@ -3115,7 +3115,7 @@ static int add_tree_block(struct reloc_control *rc,
BUG_ON(level == -1);
- block = kmalloc(sizeof(*block), GFP_NOFS);
+ block = kmalloc_obj(*block, GFP_NOFS);
if (!block)
return -ENOMEM;
@@ -3813,7 +3813,7 @@ static struct reloc_control *alloc_reloc_control(struct btrfs_fs_info *fs_info)
{
struct reloc_control *rc;
- rc = kzalloc(sizeof(*rc), GFP_NOFS);
+ rc = kzalloc_obj(*rc, GFP_NOFS);
if (!rc)
return NULL;
@@ -4042,7 +4042,7 @@ static int copy_remapped_data(struct btrfs_fs_info *fs_info, u64 old_addr,
struct reloc_io_private priv;
unsigned int nr_pages = DIV_ROUND_UP(length, PAGE_SIZE);
- pages = kcalloc(nr_pages, sizeof(struct page *), GFP_NOFS);
+ pages = kzalloc_objs(struct page *, nr_pages, GFP_NOFS);
if (!pages)
return -ENOMEM;
diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c
index 2a64e2d50ced..dfed8eaf938e 100644
--- a/fs/btrfs/scrub.c
+++ b/fs/btrfs/scrub.c
@@ -373,9 +373,8 @@ static int init_scrub_stripe(struct btrfs_fs_info *fs_info,
if (ret < 0)
goto error;
- stripe->sectors = kcalloc(stripe->nr_sectors,
- sizeof(struct scrub_sector_verification),
- GFP_KERNEL);
+ stripe->sectors = kzalloc_objs(struct scrub_sector_verification,
+ stripe->nr_sectors, GFP_KERNEL);
if (!stripe->sectors)
goto error;
@@ -456,7 +455,7 @@ static noinline_for_stack struct scrub_ctx *scrub_setup_ctx(
/* Since sctx has inline 128 stripes, it can go beyond 64K easily. Use
* kvzalloc().
*/
- sctx = kvzalloc(sizeof(*sctx), GFP_KERNEL);
+ sctx = kvzalloc_obj(*sctx, GFP_KERNEL);
if (!sctx)
goto nomem;
refcount_set(&sctx->refs, 1);
@@ -2474,9 +2473,9 @@ static noinline_for_stack int scrub_stripe(struct scrub_ctx *sctx,
if (profile & BTRFS_BLOCK_GROUP_RAID56_MASK) {
ASSERT(sctx->raid56_data_stripes == NULL);
- sctx->raid56_data_stripes = kcalloc(nr_data_stripes(map),
- sizeof(struct scrub_stripe),
- GFP_KERNEL);
+ sctx->raid56_data_stripes = kzalloc_objs(struct scrub_stripe,
+ nr_data_stripes(map),
+ GFP_KERNEL);
if (!sctx->raid56_data_stripes) {
ret = -ENOMEM;
goto out;
diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c
index 3dcfdba018b5..23b0b06ac71c 100644
--- a/fs/btrfs/send.c
+++ b/fs/btrfs/send.c
@@ -450,7 +450,7 @@ static struct fs_path *fs_path_alloc(void)
{
struct fs_path *p;
- p = kmalloc(sizeof(*p), GFP_KERNEL);
+ p = kmalloc_obj(*p, GFP_KERNEL);
if (!p)
return NULL;
init_path(p);
@@ -1429,7 +1429,7 @@ static void store_backref_cache(u64 leaf_bytenr, const struct ulist *root_ids,
* fs_info->commit_root_sem (at iterate_extent_inodes()), so must do a
* NOFS allocation.
*/
- new_entry = kmalloc(sizeof(struct backref_cache_entry), GFP_NOFS);
+ new_entry = kmalloc_obj(struct backref_cache_entry, GFP_NOFS);
/* No worries, cache is optional. */
if (!new_entry)
return;
@@ -2743,7 +2743,7 @@ static int cache_dir_utimes(struct send_ctx *sctx, u64 dir, u64 gen)
return 0;
/* Caching is optional, don't fail if we can't allocate memory. */
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return send_utimes(sctx, dir, gen);
@@ -2870,7 +2870,7 @@ static void cache_dir_created(struct send_ctx *sctx, u64 dir)
int ret;
/* Caching is optional, ignore any failures. */
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return;
@@ -2974,7 +2974,7 @@ static struct recorded_ref *recorded_ref_alloc(void)
{
struct recorded_ref *ref;
- ref = kzalloc(sizeof(*ref), GFP_KERNEL);
+ ref = kzalloc_obj(*ref, GFP_KERNEL);
if (!ref)
return NULL;
RB_CLEAR_NODE(&ref->node);
@@ -3083,7 +3083,7 @@ static struct orphan_dir_info *add_orphan_dir_info(struct send_ctx *sctx,
return entry;
}
- odi = kmalloc(sizeof(*odi), GFP_KERNEL);
+ odi = kmalloc_obj(*odi, GFP_KERNEL);
if (!odi)
return ERR_PTR(-ENOMEM);
odi->ino = dir_ino;
@@ -3284,7 +3284,7 @@ static int add_waiting_dir_move(struct send_ctx *sctx, u64 ino, bool orphanized)
struct rb_node *parent = NULL;
struct waiting_dir_move *entry, *dm;
- dm = kmalloc(sizeof(*dm), GFP_KERNEL);
+ dm = kmalloc_obj(*dm, GFP_KERNEL);
if (!dm)
return -ENOMEM;
dm->ino = ino;
@@ -3352,7 +3352,7 @@ static int add_pending_dir_move(struct send_ctx *sctx,
int exists = 0;
int ret;
- pm = kmalloc(sizeof(*pm), GFP_KERNEL);
+ pm = kmalloc_obj(*pm, GFP_KERNEL);
if (!pm)
return -ENOMEM;
pm->parent_ino = parent_ino;
@@ -8035,7 +8035,7 @@ long btrfs_ioctl_send(struct btrfs_root *send_root, const struct btrfs_ioctl_sen
goto out;
}
- sctx = kzalloc(sizeof(struct send_ctx), GFP_KERNEL);
+ sctx = kzalloc_obj(struct send_ctx, GFP_KERNEL);
if (!sctx) {
ret = -ENOMEM;
goto out;
@@ -8097,9 +8097,9 @@ long btrfs_ioctl_send(struct btrfs_root *send_root, const struct btrfs_ioctl_sen
goto out;
}
send_buf_num_pages = sctx->send_max_size >> PAGE_SHIFT;
- sctx->send_buf_pages = kcalloc(send_buf_num_pages,
- sizeof(*sctx->send_buf_pages),
- GFP_KERNEL);
+ sctx->send_buf_pages = kzalloc_objs(*sctx->send_buf_pages,
+ send_buf_num_pages,
+ GFP_KERNEL);
if (!sctx->send_buf_pages) {
ret = -ENOMEM;
goto out;
@@ -8117,9 +8117,9 @@ long btrfs_ioctl_send(struct btrfs_root *send_root, const struct btrfs_ioctl_sen
goto out;
}
- sctx->clone_roots = kvcalloc(arg->clone_sources_count + 1,
- sizeof(*sctx->clone_roots),
- GFP_KERNEL);
+ sctx->clone_roots = kvzalloc_objs(*sctx->clone_roots,
+ arg->clone_sources_count + 1,
+ GFP_KERNEL);
if (!sctx->clone_roots) {
ret = -ENOMEM;
goto out;
diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space-info.c
index bb5aac7ee9d2..52a267a5dd80 100644
--- a/fs/btrfs/space-info.c
+++ b/fs/btrfs/space-info.c
@@ -266,7 +266,7 @@ static int create_space_info_sub_group(struct btrfs_space_info *parent, u64 flag
"parent->subgroup_id=%d", parent->subgroup_id);
ASSERT(id != BTRFS_SUB_GROUP_PRIMARY, "id=%d", id);
- sub_group = kzalloc(sizeof(*sub_group), GFP_NOFS);
+ sub_group = kzalloc_obj(*sub_group, GFP_NOFS);
if (!sub_group)
return -ENOMEM;
@@ -289,7 +289,7 @@ static int create_space_info(struct btrfs_fs_info *info, u64 flags)
struct btrfs_space_info *space_info;
int ret = 0;
- space_info = kzalloc(sizeof(*space_info), GFP_NOFS);
+ space_info = kzalloc_obj(*space_info, GFP_NOFS);
if (!space_info)
return -ENOMEM;
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index d64d303b6edc..3f9523563259 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -2054,7 +2054,7 @@ static int btrfs_get_tree_subvol(struct fs_context *fc)
* of the fs_info (locks and such) to make cleanup easier if we find a
* superblock with our given fs_devices later on at sget() time.
*/
- fs_info = kvzalloc(sizeof(struct btrfs_fs_info), GFP_KERNEL);
+ fs_info = kvzalloc_obj(struct btrfs_fs_info, GFP_KERNEL);
if (!fs_info)
return -ENOMEM;
@@ -2173,7 +2173,7 @@ static int btrfs_init_fs_context(struct fs_context *fc)
{
struct btrfs_fs_context *ctx;
- ctx = kzalloc(sizeof(struct btrfs_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct btrfs_fs_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c
index 27bfb7b55ec4..f62278f0c191 100644
--- a/fs/btrfs/sysfs.c
+++ b/fs/btrfs/sysfs.c
@@ -1833,7 +1833,7 @@ void btrfs_sysfs_add_block_group_type(struct btrfs_block_group *cache)
*/
nofs_flag = memalloc_nofs_save();
- rkobj = kzalloc(sizeof(*rkobj), GFP_NOFS);
+ rkobj = kzalloc_obj(*rkobj, GFP_NOFS);
if (!rkobj) {
memalloc_nofs_restore(nofs_flag);
btrfs_warn(cache->fs_info,
@@ -2597,7 +2597,7 @@ int btrfs_sysfs_add_qgroups(struct btrfs_fs_info *fs_info)
if (fs_info->qgroups_kobj)
return 0;
- fs_info->qgroups_kobj = kzalloc(sizeof(struct kobject), GFP_KERNEL);
+ fs_info->qgroups_kobj = kzalloc_obj(struct kobject, GFP_KERNEL);
if (!fs_info->qgroups_kobj)
return -ENOMEM;
diff --git a/fs/btrfs/tests/btrfs-tests.c b/fs/btrfs/tests/btrfs-tests.c
index 7f13c05d3736..c5b1bc0f7f91 100644
--- a/fs/btrfs/tests/btrfs-tests.c
+++ b/fs/btrfs/tests/btrfs-tests.c
@@ -98,7 +98,7 @@ struct btrfs_device *btrfs_alloc_dummy_device(struct btrfs_fs_info *fs_info)
{
struct btrfs_device *dev;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
@@ -117,21 +117,19 @@ static void btrfs_free_dummy_device(struct btrfs_device *dev)
struct btrfs_fs_info *btrfs_alloc_dummy_fs_info(u32 nodesize, u32 sectorsize)
{
- struct btrfs_fs_info *fs_info = kzalloc(sizeof(struct btrfs_fs_info),
- GFP_KERNEL);
+ struct btrfs_fs_info *fs_info = kzalloc_obj(struct btrfs_fs_info,
+ GFP_KERNEL);
if (!fs_info)
return fs_info;
- fs_info->fs_devices = kzalloc(sizeof(struct btrfs_fs_devices),
- GFP_KERNEL);
+ fs_info->fs_devices = kzalloc_obj(struct btrfs_fs_devices, GFP_KERNEL);
if (!fs_info->fs_devices) {
kfree(fs_info);
return NULL;
}
INIT_LIST_HEAD(&fs_info->fs_devices->devices);
- fs_info->super_copy = kzalloc(sizeof(struct btrfs_super_block),
- GFP_KERNEL);
+ fs_info->super_copy = kzalloc_obj(struct btrfs_super_block, GFP_KERNEL);
if (!fs_info->super_copy) {
kfree(fs_info->fs_devices);
kfree(fs_info);
@@ -208,11 +206,10 @@ btrfs_alloc_dummy_block_group(struct btrfs_fs_info *fs_info,
{
struct btrfs_block_group *cache;
- cache = kzalloc(sizeof(*cache), GFP_KERNEL);
+ cache = kzalloc_obj(*cache, GFP_KERNEL);
if (!cache)
return NULL;
- cache->free_space_ctl = kzalloc(sizeof(*cache->free_space_ctl),
- GFP_KERNEL);
+ cache->free_space_ctl = kzalloc_obj(*cache->free_space_ctl, GFP_KERNEL);
if (!cache->free_space_ctl) {
kfree(cache);
return NULL;
diff --git a/fs/btrfs/tests/delayed-refs-tests.c b/fs/btrfs/tests/delayed-refs-tests.c
index e2248acb906b..fdc183ebc6da 100644
--- a/fs/btrfs/tests/delayed-refs-tests.c
+++ b/fs/btrfs/tests/delayed-refs-tests.c
@@ -985,7 +985,7 @@ int btrfs_test_delayed_refs(u32 sectorsize, u32 nodesize)
test_std_err(TEST_ALLOC_FS_INFO);
return -ENOMEM;
}
- transaction = kmalloc(sizeof(*transaction), GFP_KERNEL);
+ transaction = kmalloc_obj(*transaction, GFP_KERNEL);
if (!transaction) {
test_std_err(TEST_ALLOC_TRANSACTION);
ret = -ENOMEM;
diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
index 463238ca8a4d..7ef8c9b7dfc1 100644
--- a/fs/btrfs/transaction.c
+++ b/fs/btrfs/transaction.c
@@ -315,7 +315,7 @@ static noinline int join_transaction(struct btrfs_fs_info *fs_info,
*/
BUG_ON(type == TRANS_JOIN_NOLOCK);
- cur_trans = kmalloc(sizeof(*cur_trans), GFP_NOFS);
+ cur_trans = kmalloc_obj(*cur_trans, GFP_NOFS);
if (!cur_trans)
return -ENOMEM;
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index e1bd03ebfd98..780a06d59240 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -5928,7 +5928,7 @@ static int log_new_dir_dentries(struct btrfs_trans_handle *trans,
if (ret)
goto out;
if (ctx->log_new_dentries) {
- dir_elem = kmalloc(sizeof(*dir_elem), GFP_NOFS);
+ dir_elem = kmalloc_obj(*dir_elem, GFP_NOFS);
if (!dir_elem) {
ret = -ENOMEM;
goto out;
@@ -6122,7 +6122,7 @@ static int add_conflicting_inode(struct btrfs_trans_handle *trans,
return ret;
/* Conflicting inode is a directory, so we'll log its parent. */
- ino_elem = kmalloc(sizeof(*ino_elem), GFP_NOFS);
+ ino_elem = kmalloc_obj(*ino_elem, GFP_NOFS);
if (!ino_elem)
return -ENOMEM;
ino_elem->ino = ino;
@@ -6180,7 +6180,7 @@ static int add_conflicting_inode(struct btrfs_trans_handle *trans,
btrfs_add_delayed_iput(inode);
- ino_elem = kmalloc(sizeof(*ino_elem), GFP_NOFS);
+ ino_elem = kmalloc_obj(*ino_elem, GFP_NOFS);
if (!ino_elem)
return -ENOMEM;
ino_elem->ino = ino;
diff --git a/fs/btrfs/tree-mod-log.c b/fs/btrfs/tree-mod-log.c
index 9e8cb3b7c064..603c1457130e 100644
--- a/fs/btrfs/tree-mod-log.c
+++ b/fs/btrfs/tree-mod-log.c
@@ -243,7 +243,7 @@ static struct tree_mod_elem *alloc_tree_mod_elem(const struct extent_buffer *eb,
ASSERT(op != BTRFS_MOD_LOG_MOVE_KEYS);
ASSERT(op != BTRFS_MOD_LOG_ROOT_REPLACE);
- tm = kzalloc(sizeof(*tm), GFP_NOFS);
+ tm = kzalloc_obj(*tm, GFP_NOFS);
if (!tm)
return NULL;
@@ -301,7 +301,7 @@ static struct tree_mod_elem *tree_mod_log_alloc_move(const struct extent_buffer
{
struct tree_mod_elem *tm;
- tm = kzalloc(sizeof(*tm), GFP_NOFS);
+ tm = kzalloc_obj(*tm, GFP_NOFS);
if (!tm)
return ERR_PTR(-ENOMEM);
@@ -328,7 +328,7 @@ int btrfs_tree_mod_log_insert_move(const struct extent_buffer *eb,
if (!tree_mod_need_log(eb->fs_info, eb))
return 0;
- tm_list = kcalloc(nr_items, sizeof(struct tree_mod_elem *), GFP_NOFS);
+ tm_list = kzalloc_objs(struct tree_mod_elem *, nr_items, GFP_NOFS);
if (!tm_list) {
ret = -ENOMEM;
goto lock;
@@ -439,8 +439,8 @@ int btrfs_tree_mod_log_insert_root(struct extent_buffer *old_root,
if (log_removal && btrfs_header_level(old_root) > 0) {
nritems = btrfs_header_nritems(old_root);
- tm_list = kcalloc(nritems, sizeof(struct tree_mod_elem *),
- GFP_NOFS);
+ tm_list = kzalloc_objs(struct tree_mod_elem *, nritems,
+ GFP_NOFS);
if (!tm_list) {
ret = -ENOMEM;
goto lock;
@@ -455,7 +455,7 @@ int btrfs_tree_mod_log_insert_root(struct extent_buffer *old_root,
}
}
- tm = kzalloc(sizeof(*tm), GFP_NOFS);
+ tm = kzalloc_obj(*tm, GFP_NOFS);
if (!tm) {
ret = -ENOMEM;
goto lock;
@@ -595,8 +595,7 @@ int btrfs_tree_mod_log_eb_copy(struct extent_buffer *dst,
if (btrfs_header_level(dst) == 0 && btrfs_header_level(src) == 0)
return 0;
- tm_list = kcalloc(nr_items * 2, sizeof(struct tree_mod_elem *),
- GFP_NOFS);
+ tm_list = kzalloc_objs(struct tree_mod_elem *, nr_items * 2, GFP_NOFS);
if (!tm_list) {
ret = -ENOMEM;
goto lock;
@@ -714,7 +713,7 @@ int btrfs_tree_mod_log_free_eb(struct extent_buffer *eb)
return 0;
nritems = btrfs_header_nritems(eb);
- tm_list = kcalloc(nritems, sizeof(struct tree_mod_elem *), GFP_NOFS);
+ tm_list = kzalloc_objs(struct tree_mod_elem *, nritems, GFP_NOFS);
if (!tm_list) {
ret = -ENOMEM;
goto lock;
diff --git a/fs/btrfs/ulist.c b/fs/btrfs/ulist.c
index 7e16a253fb35..7898076ce41c 100644
--- a/fs/btrfs/ulist.c
+++ b/fs/btrfs/ulist.c
@@ -98,7 +98,7 @@ void ulist_reinit(struct ulist *ulist)
*/
struct ulist *ulist_alloc(gfp_t gfp_mask)
{
- struct ulist *ulist = kmalloc(sizeof(*ulist), gfp_mask);
+ struct ulist *ulist = kmalloc_obj(*ulist, gfp_mask);
if (!ulist)
return NULL;
@@ -111,7 +111,7 @@ struct ulist *ulist_alloc(gfp_t gfp_mask)
void ulist_prealloc(struct ulist *ulist, gfp_t gfp_mask)
{
if (!ulist->prealloc)
- ulist->prealloc = kzalloc(sizeof(*ulist->prealloc), gfp_mask);
+ ulist->prealloc = kzalloc_obj(*ulist->prealloc, gfp_mask);
}
/*
@@ -219,7 +219,7 @@ int ulist_add_merge(struct ulist *ulist, u64 val, u64 aux,
node = ulist->prealloc;
ulist->prealloc = NULL;
} else {
- node = kmalloc(sizeof(*node), gfp_mask);
+ node = kmalloc_obj(*node, gfp_mask);
if (!node)
return -ENOMEM;
}
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index 50f7aae70418..71ff7006ca6b 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -382,7 +382,7 @@ static struct btrfs_fs_devices *alloc_fs_devices(const u8 *fsid)
{
struct btrfs_fs_devices *fs_devs;
- fs_devs = kzalloc(sizeof(*fs_devs), GFP_KERNEL);
+ fs_devs = kzalloc_obj(*fs_devs, GFP_KERNEL);
if (!fs_devs)
return ERR_PTR(-ENOMEM);
@@ -4456,7 +4456,7 @@ static int __btrfs_balance(struct btrfs_fs_info *fs_info)
if (chunk_type & BTRFS_BLOCK_GROUP_METADATA_REMAP) {
mutex_unlock(&fs_info->reclaim_bgs_lock);
- rci = kmalloc(sizeof(struct remap_chunk_info), GFP_NOFS);
+ rci = kmalloc_obj(struct remap_chunk_info, GFP_NOFS);
if (!rci) {
ret = -ENOMEM;
goto error;
@@ -5004,7 +5004,7 @@ int btrfs_recover_balance(struct btrfs_fs_info *fs_info)
return 0;
}
- bctl = kzalloc(sizeof(*bctl), GFP_NOFS);
+ bctl = kzalloc_obj(*bctl, GFP_NOFS);
if (!bctl)
return -ENOMEM;
@@ -6338,7 +6338,7 @@ struct btrfs_io_context *alloc_btrfs_io_context(struct btrfs_fs_info *fs_info,
{
struct btrfs_io_context *bioc;
- bioc = kzalloc(struct_size(bioc, stripes, total_stripes), GFP_NOFS);
+ bioc = kzalloc_flex(*bioc, stripes, total_stripes, GFP_NOFS);
if (!bioc)
return NULL;
@@ -6471,7 +6471,7 @@ struct btrfs_discard_stripe *btrfs_map_discard(struct btrfs_fs_info *fs_info,
stripe_nr /= map->num_stripes;
}
- stripes = kcalloc(*num_stripes, sizeof(*stripes), GFP_NOFS);
+ stripes = kzalloc_objs(*stripes, *num_stripes, GFP_NOFS);
if (!stripes) {
ret = -ENOMEM;
goto out_free_map;
@@ -7202,7 +7202,7 @@ struct btrfs_device *btrfs_alloc_device(struct btrfs_fs_info *fs_info,
if (WARN_ON(!devid && !fs_info))
return ERR_PTR(-EINVAL);
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
diff --git a/fs/btrfs/zlib.c b/fs/btrfs/zlib.c
index 0a8fcee16428..5a0913a31991 100644
--- a/fs/btrfs/zlib.c
+++ b/fs/btrfs/zlib.c
@@ -75,7 +75,7 @@ struct list_head *zlib_alloc_workspace(struct btrfs_fs_info *fs_info, unsigned i
struct workspace *workspace;
int workspacesize;
- workspace = kzalloc(sizeof(*workspace), GFP_KERNEL);
+ workspace = kzalloc_obj(*workspace, GFP_KERNEL);
if (!workspace)
return ERR_PTR(-ENOMEM);
diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c
index ad8621587fd2..fcdfb831b484 100644
--- a/fs/btrfs/zoned.c
+++ b/fs/btrfs/zoned.c
@@ -377,7 +377,7 @@ int btrfs_get_dev_zone_info(struct btrfs_device *device, bool populate_cache)
if (device->zone_info)
return 0;
- zone_info = kzalloc(sizeof(*zone_info), GFP_KERNEL);
+ zone_info = kzalloc_obj(*zone_info, GFP_KERNEL);
if (!zone_info)
return -ENOMEM;
@@ -454,7 +454,8 @@ int btrfs_get_dev_zone_info(struct btrfs_device *device, bool populate_cache)
goto out;
}
- zones = kvcalloc(BTRFS_REPORT_NR_ZONES, sizeof(struct blk_zone), GFP_KERNEL);
+ zones = kvzalloc_objs(struct blk_zone, BTRFS_REPORT_NR_ZONES,
+ GFP_KERNEL);
if (!zones) {
ret = -ENOMEM;
goto out;
diff --git a/fs/btrfs/zstd.c b/fs/btrfs/zstd.c
index 32fd7f5454d3..a7a41dd320d9 100644
--- a/fs/btrfs/zstd.c
+++ b/fs/btrfs/zstd.c
@@ -185,7 +185,7 @@ int zstd_alloc_workspace_manager(struct btrfs_fs_info *fs_info)
struct list_head *ws;
ASSERT(fs_info->compr_wsm[BTRFS_COMPRESS_ZSTD] == NULL);
- zwsm = kzalloc(sizeof(*zwsm), GFP_KERNEL);
+ zwsm = kzalloc_obj(*zwsm, GFP_KERNEL);
if (!zwsm)
return -ENOMEM;
zstd_calc_ws_mem_sizes();
@@ -373,7 +373,7 @@ struct list_head *zstd_alloc_workspace(struct btrfs_fs_info *fs_info, int level)
const u32 blocksize = fs_info->sectorsize;
struct workspace *workspace;
- workspace = kzalloc(sizeof(*workspace), GFP_KERNEL);
+ workspace = kzalloc_obj(*workspace, GFP_KERNEL);
if (!workspace)
return ERR_PTR(-ENOMEM);
diff --git a/fs/buffer.c b/fs/buffer.c
index ed724a902657..22b43642ba57 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -358,8 +358,7 @@ static void end_buffer_async_read_io(struct buffer_head *bh, int uptodate)
/* Decrypt (with fscrypt) and/or verify (with fsverity) if needed. */
if (uptodate && (decrypt || vi)) {
- struct postprocess_bh_ctx *ctx =
- kmalloc(sizeof(*ctx), GFP_ATOMIC);
+ struct postprocess_bh_ctx *ctx = kmalloc_obj(*ctx, GFP_ATOMIC);
if (ctx) {
ctx->bh = bh;
diff --git a/fs/cachefiles/daemon.c b/fs/cachefiles/daemon.c
index 1806bff8e59b..99795864bcb3 100644
--- a/fs/cachefiles/daemon.c
+++ b/fs/cachefiles/daemon.c
@@ -102,7 +102,7 @@ static int cachefiles_daemon_open(struct inode *inode, struct file *file)
return -EBUSY;
/* allocate a cache record */
- cache = kzalloc(sizeof(struct cachefiles_cache), GFP_KERNEL);
+ cache = kzalloc_obj(struct cachefiles_cache, GFP_KERNEL);
if (!cache) {
cachefiles_open = 0;
return -ENOMEM;
diff --git a/fs/cachefiles/io.c b/fs/cachefiles/io.c
index 3e0576d9db1d..7b9d547ecee6 100644
--- a/fs/cachefiles/io.c
+++ b/fs/cachefiles/io.c
@@ -132,7 +132,7 @@ static int cachefiles_read(struct netfs_cache_resources *cres,
}
ret = -ENOMEM;
- ki = kzalloc(sizeof(struct cachefiles_kiocb), GFP_KERNEL);
+ ki = kzalloc_obj(struct cachefiles_kiocb, GFP_KERNEL);
if (!ki)
goto presubmission_error;
@@ -298,7 +298,7 @@ int __cachefiles_write(struct cachefiles_object *object,
file, file_inode(file)->i_ino, start_pos, len,
i_size_read(file_inode(file)));
- ki = kzalloc(sizeof(struct cachefiles_kiocb), GFP_KERNEL);
+ ki = kzalloc_obj(struct cachefiles_kiocb, GFP_KERNEL);
if (!ki) {
if (term_func)
term_func(term_func_priv, -ENOMEM);
diff --git a/fs/cachefiles/ondemand.c b/fs/cachefiles/ondemand.c
index a7ed86fa98bb..b251fff2bed0 100644
--- a/fs/cachefiles/ondemand.c
+++ b/fs/cachefiles/ondemand.c
@@ -734,8 +734,8 @@ int cachefiles_ondemand_init_obj_info(struct cachefiles_object *object,
if (!cachefiles_in_ondemand_mode(volume->cache))
return 0;
- object->ondemand = kzalloc(sizeof(struct cachefiles_ondemand_info),
- GFP_KERNEL);
+ object->ondemand = kzalloc_obj(struct cachefiles_ondemand_info,
+ GFP_KERNEL);
if (!object->ondemand)
return -ENOMEM;
diff --git a/fs/cachefiles/volume.c b/fs/cachefiles/volume.c
index 90ba926f488e..655de0cef530 100644
--- a/fs/cachefiles/volume.c
+++ b/fs/cachefiles/volume.c
@@ -28,7 +28,7 @@ void cachefiles_acquire_volume(struct fscache_volume *vcookie)
_enter("");
- volume = kzalloc(sizeof(struct cachefiles_volume), GFP_KERNEL);
+ volume = kzalloc_obj(struct cachefiles_volume, GFP_KERNEL);
if (!volume)
return;
volume->vcookie = vcookie;
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
index ce09ff3e020f..e87b3bb94ee8 100644
--- a/fs/ceph/addr.c
+++ b/fs/ceph/addr.c
@@ -470,7 +470,7 @@ static int ceph_init_request(struct netfs_io_request *rreq, struct file *file)
if (rreq->origin != NETFS_READAHEAD)
return 0;
- priv = kzalloc(sizeof(*priv), GFP_NOFS);
+ priv = kzalloc_obj(*priv, GFP_NOFS);
if (!priv)
return -ENOMEM;
@@ -1186,9 +1186,7 @@ static inline
void __ceph_allocate_page_array(struct ceph_writeback_ctl *ceph_wbc,
unsigned int max_pages)
{
- ceph_wbc->pages = kmalloc_array(max_pages,
- sizeof(*ceph_wbc->pages),
- GFP_NOFS);
+ ceph_wbc->pages = kmalloc_objs(*ceph_wbc->pages, max_pages, GFP_NOFS);
if (!ceph_wbc->pages) {
ceph_wbc->from_pool = true;
ceph_wbc->pages = mempool_alloc(ceph_wb_pagevec_pool, GFP_NOFS);
@@ -2506,7 +2504,7 @@ static int __ceph_pool_perm_get(struct ceph_inode_info *ci,
}
pool_ns_len = pool_ns ? pool_ns->len : 0;
- perm = kmalloc(struct_size(perm, pool_ns, pool_ns_len + 1), GFP_NOFS);
+ perm = kmalloc_flex(*perm, pool_ns, pool_ns_len + 1, GFP_NOFS);
if (!perm) {
err = -ENOMEM;
goto out_unlock;
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c
index 2f663972da99..5d7c2ffae8fa 100644
--- a/fs/ceph/caps.c
+++ b/fs/ceph/caps.c
@@ -2395,7 +2395,7 @@ static int flush_mdlog_and_wait_inode_unsafe_requests(struct inode *inode)
mutex_lock(&mdsc->mutex);
max_sessions = mdsc->max_sessions;
- sessions = kcalloc(max_sessions, sizeof(s), GFP_KERNEL);
+ sessions = kzalloc_objs(s, max_sessions, GFP_KERNEL);
if (!sessions) {
mutex_unlock(&mdsc->mutex);
err = -ENOMEM;
diff --git a/fs/ceph/crypto.c b/fs/ceph/crypto.c
index 9a115282f67d..643c8ba28ae7 100644
--- a/fs/ceph/crypto.c
+++ b/fs/ceph/crypto.c
@@ -50,7 +50,7 @@ static int ceph_crypt_set_context(struct inode *inode, const void *ctx,
if (len > FSCRYPT_SET_CONTEXT_MAX_SIZE)
return -EINVAL;
- cfa = kzalloc(sizeof(*cfa), GFP_KERNEL);
+ cfa = kzalloc_obj(*cfa, GFP_KERNEL);
if (!cfa)
return -ENOMEM;
@@ -112,7 +112,7 @@ int ceph_fscrypt_prepare_context(struct inode *dir, struct inode *inode,
if (!encrypted)
return 0;
- as->fscrypt_auth = kzalloc(sizeof(*as->fscrypt_auth), GFP_KERNEL);
+ as->fscrypt_auth = kzalloc_obj(*as->fscrypt_auth, GFP_KERNEL);
if (!as->fscrypt_auth)
return -ENOMEM;
diff --git a/fs/ceph/file.c b/fs/ceph/file.c
index 72cc67ab4ead..fdbf4aeaa408 100644
--- a/fs/ceph/file.c
+++ b/fs/ceph/file.c
@@ -140,7 +140,7 @@ static ssize_t iter_get_bvecs_alloc(struct iov_iter *iter, size_t maxsize,
* __iter_get_bvecs() may populate only part of the array -- zero it
* out.
*/
- bv = kvmalloc_array(npages, sizeof(*bv), GFP_KERNEL | __GFP_ZERO);
+ bv = kvmalloc_objs(*bv, npages, GFP_KERNEL | __GFP_ZERO);
if (!bv)
return -ENOMEM;
@@ -1344,7 +1344,7 @@ static void ceph_aio_complete_req(struct ceph_osd_request *req)
struct ceph_aio_work *aio_work;
BUG_ON(!aio_req->write);
- aio_work = kmalloc(sizeof(*aio_work), GFP_NOFS);
+ aio_work = kmalloc_obj(*aio_work, GFP_NOFS);
if (aio_work) {
INIT_WORK(&aio_work->work, ceph_aio_retry_work);
aio_work->req = req;
@@ -1572,7 +1572,7 @@ ceph_direct_read_write(struct kiocb *iocb, struct iov_iter *iter,
*/
if (pos == iocb->ki_pos && !is_sync_kiocb(iocb) &&
(len == count || pos + count <= i_size_read(inode))) {
- aio_req = kzalloc(sizeof(*aio_req), GFP_KERNEL);
+ aio_req = kzalloc_obj(*aio_req, GFP_KERNEL);
if (aio_req) {
aio_req->iocb = iocb;
aio_req->write = write;
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
index 2966f88310e3..d76f9a79dc0c 100644
--- a/fs/ceph/inode.c
+++ b/fs/ceph/inode.c
@@ -321,7 +321,7 @@ static struct ceph_inode_frag *__get_or_create_frag(struct ceph_inode_info *ci,
return frag;
}
- frag = kmalloc(sizeof(*frag), GFP_NOFS);
+ frag = kmalloc_obj(*frag, GFP_NOFS);
if (!frag)
return ERR_PTR(-ENOMEM);
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
index c45bd19d4b1c..8933f05f5144 100644
--- a/fs/ceph/mds_client.c
+++ b/fs/ceph/mds_client.c
@@ -973,7 +973,7 @@ static struct ceph_mds_session *register_session(struct ceph_mds_client *mdsc,
if (mds >= mdsc->mdsmap->possible_max_rank)
return ERR_PTR(-EINVAL);
- s = kzalloc(sizeof(*s), GFP_NOFS);
+ s = kzalloc_obj(*s, GFP_NOFS);
if (!s)
return ERR_PTR(-ENOMEM);
@@ -4230,9 +4230,8 @@ static void handle_session(struct ceph_mds_session *session,
goto skip_cap_auths;
}
- cap_auths = kcalloc(cap_auths_num,
- sizeof(struct ceph_mds_cap_auth),
- GFP_KERNEL);
+ cap_auths = kzalloc_objs(struct ceph_mds_cap_auth,
+ cap_auths_num, GFP_KERNEL);
if (!cap_auths) {
pr_err_client(cl, "No memory for cap_auths\n");
return;
@@ -4731,9 +4730,9 @@ static int reconnect_caps_cb(struct inode *inode, int mds, void *arg)
num_flock_locks = 0;
}
if (num_fcntl_locks + num_flock_locks > 0) {
- flocks = kmalloc_array(num_fcntl_locks + num_flock_locks,
- sizeof(struct ceph_filelock),
- GFP_NOFS);
+ flocks = kmalloc_objs(struct ceph_filelock,
+ num_fcntl_locks + num_flock_locks,
+ GFP_NOFS);
if (!flocks) {
err = -ENOMEM;
goto out_err;
@@ -5534,12 +5533,12 @@ int ceph_mdsc_init(struct ceph_fs_client *fsc)
struct ceph_mds_client *mdsc;
int err;
- mdsc = kzalloc(sizeof(struct ceph_mds_client), GFP_NOFS);
+ mdsc = kzalloc_obj(struct ceph_mds_client, GFP_NOFS);
if (!mdsc)
return -ENOMEM;
mdsc->fsc = fsc;
mutex_init(&mdsc->mutex);
- mdsc->mdsmap = kzalloc(sizeof(*mdsc->mdsmap), GFP_NOFS);
+ mdsc->mdsmap = kzalloc_obj(*mdsc->mdsmap, GFP_NOFS);
if (!mdsc->mdsmap) {
err = -ENOMEM;
goto err_mdsc;
diff --git a/fs/ceph/mdsmap.c b/fs/ceph/mdsmap.c
index b228e5ecfb92..d8e46eb7e5eb 100644
--- a/fs/ceph/mdsmap.c
+++ b/fs/ceph/mdsmap.c
@@ -127,7 +127,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(struct ceph_mds_client *mdsc, void **p,
u16 mdsmap_ev;
u32 target;
- m = kzalloc(sizeof(*m), GFP_NOFS);
+ m = kzalloc_obj(*m, GFP_NOFS);
if (!m)
return ERR_PTR(-ENOMEM);
@@ -169,7 +169,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(struct ceph_mds_client *mdsc, void **p,
*/
m->possible_max_rank = max(m->m_num_active_mds, m->m_max_mds);
- m->m_info = kcalloc(m->possible_max_rank, sizeof(*m->m_info), GFP_NOFS);
+ m->m_info = kzalloc_objs(*m->m_info, m->possible_max_rank, GFP_NOFS);
if (!m->m_info)
goto nomem;
diff --git a/fs/ceph/quota.c b/fs/ceph/quota.c
index d90eda19bcc4..514da29469b8 100644
--- a/fs/ceph/quota.c
+++ b/fs/ceph/quota.c
@@ -103,7 +103,7 @@ find_quotarealm_inode(struct ceph_mds_client *mdsc, u64 ino)
}
if (!qri || (qri->ino != ino)) {
/* Not found, create a new one and insert it */
- qri = kmalloc(sizeof(*qri), GFP_KERNEL);
+ qri = kmalloc_obj(*qri, GFP_KERNEL);
if (qri) {
qri->ino = ino;
qri->inode = NULL;
diff --git a/fs/ceph/snap.c b/fs/ceph/snap.c
index 521507ea8260..52b4c2684f92 100644
--- a/fs/ceph/snap.c
+++ b/fs/ceph/snap.c
@@ -118,7 +118,7 @@ static struct ceph_snap_realm *ceph_create_snap_realm(
lockdep_assert_held_write(&mdsc->snap_rwsem);
- realm = kzalloc(sizeof(*realm), GFP_NOFS);
+ realm = kzalloc_obj(*realm, GFP_NOFS);
if (!realm)
return ERR_PTR(-ENOMEM);
@@ -1216,7 +1216,7 @@ struct ceph_snapid_map* ceph_get_snapid_map(struct ceph_mds_client *mdsc,
return exist;
}
- sm = kmalloc(sizeof(*sm), GFP_NOFS);
+ sm = kmalloc_obj(*sm, GFP_NOFS);
if (!sm)
return NULL;
diff --git a/fs/ceph/super.c b/fs/ceph/super.c
index 7c1c1dac320d..57320e830eda 100644
--- a/fs/ceph/super.c
+++ b/fs/ceph/super.c
@@ -809,7 +809,7 @@ static struct ceph_fs_client *create_fs_client(struct ceph_mount_options *fsopt,
struct ceph_fs_client *fsc;
int err;
- fsc = kzalloc(sizeof(*fsc), GFP_KERNEL);
+ fsc = kzalloc_obj(*fsc, GFP_KERNEL);
if (!fsc) {
err = -ENOMEM;
goto fail;
@@ -1429,7 +1429,7 @@ static int ceph_init_fs_context(struct fs_context *fc)
struct ceph_parse_opts_ctx *pctx;
struct ceph_mount_options *fsopt;
- pctx = kzalloc(sizeof(*pctx), GFP_KERNEL);
+ pctx = kzalloc_obj(*pctx, GFP_KERNEL);
if (!pctx)
return -ENOMEM;
@@ -1437,7 +1437,7 @@ static int ceph_init_fs_context(struct fs_context *fc)
if (!pctx->copts)
goto nomem;
- pctx->opts = kzalloc(sizeof(*pctx->opts), GFP_KERNEL);
+ pctx->opts = kzalloc_obj(*pctx->opts, GFP_KERNEL);
if (!pctx->opts)
goto nomem;
diff --git a/fs/ceph/xattr.c b/fs/ceph/xattr.c
index ad1f30bea175..5f87f62091a1 100644
--- a/fs/ceph/xattr.c
+++ b/fs/ceph/xattr.c
@@ -819,15 +819,15 @@ static int __build_xattrs(struct inode *inode)
xattr_version = ci->i_xattrs.version;
spin_unlock(&ci->i_ceph_lock);
- xattrs = kcalloc(numattr, sizeof(struct ceph_inode_xattr *),
- GFP_NOFS);
+ xattrs = kzalloc_objs(struct ceph_inode_xattr *, numattr,
+ GFP_NOFS);
err = -ENOMEM;
if (!xattrs)
goto bad_lock;
for (i = 0; i < numattr; i++) {
- xattrs[i] = kmalloc(sizeof(struct ceph_inode_xattr),
- GFP_NOFS);
+ xattrs[i] = kmalloc_obj(struct ceph_inode_xattr,
+ GFP_NOFS);
if (!xattrs[i])
goto bad_lock;
}
@@ -1220,7 +1220,7 @@ int __ceph_setxattr(struct inode *inode, const char *name,
goto out;
}
- xattr = kmalloc(sizeof(struct ceph_inode_xattr), GFP_NOFS);
+ xattr = kmalloc_obj(struct ceph_inode_xattr, GFP_NOFS);
if (!xattr)
goto out;
diff --git a/fs/char_dev.c b/fs/char_dev.c
index bf7b32650e54..49b2641bbe03 100644
--- a/fs/char_dev.c
+++ b/fs/char_dev.c
@@ -115,7 +115,7 @@ __register_chrdev_region(unsigned int major, unsigned int baseminor,
return ERR_PTR(-EINVAL);
}
- cd = kzalloc(sizeof(struct char_device_struct), GFP_KERNEL);
+ cd = kzalloc_obj(struct char_device_struct, GFP_KERNEL);
if (cd == NULL)
return ERR_PTR(-ENOMEM);
@@ -636,7 +636,7 @@ static struct kobj_type ktype_cdev_dynamic = {
*/
struct cdev *cdev_alloc(void)
{
- struct cdev *p = kzalloc(sizeof(struct cdev), GFP_KERNEL);
+ struct cdev *p = kzalloc_obj(struct cdev, GFP_KERNEL);
if (p) {
INIT_LIST_HEAD(&p->list);
kobject_init(&p->kobj, &ktype_cdev_dynamic);
diff --git a/fs/coda/dir.c b/fs/coda/dir.c
index ca9990017265..329cefb16fb5 100644
--- a/fs/coda/dir.c
+++ b/fs/coda/dir.c
@@ -362,7 +362,7 @@ static int coda_venus_readdir(struct file *coda_file, struct dir_context *ctx)
cii = ITOC(file_inode(coda_file));
- vdir = kmalloc(sizeof(*vdir), GFP_KERNEL);
+ vdir = kmalloc_obj(*vdir, GFP_KERNEL);
if (!vdir) return -ENOMEM;
if (!dir_emit_dots(coda_file, ctx))
diff --git a/fs/coda/file.c b/fs/coda/file.c
index a390b5d21196..a40ba8d0b14b 100644
--- a/fs/coda/file.c
+++ b/fs/coda/file.c
@@ -175,7 +175,7 @@ coda_file_mmap(struct file *coda_file, struct vm_area_struct *vma)
if (ret)
return ret;
- cvm_ops = kmalloc(sizeof(struct coda_vm_ops), GFP_KERNEL);
+ cvm_ops = kmalloc_obj(struct coda_vm_ops, GFP_KERNEL);
if (!cvm_ops)
return -ENOMEM;
@@ -231,7 +231,7 @@ int coda_open(struct inode *coda_inode, struct file *coda_file)
unsigned short coda_flags = coda_flags_to_cflags(flags);
struct coda_file_info *cfi;
- cfi = kmalloc(sizeof(struct coda_file_info), GFP_KERNEL);
+ cfi = kmalloc_obj(struct coda_file_info, GFP_KERNEL);
if (!cfi)
return -ENOMEM;
diff --git a/fs/coda/inode.c b/fs/coda/inode.c
index 08450d006016..d95ae651f528 100644
--- a/fs/coda/inode.c
+++ b/fs/coda/inode.c
@@ -381,7 +381,7 @@ static int coda_init_fs_context(struct fs_context *fc)
{
struct coda_fs_context *ctx;
- ctx = kzalloc(sizeof(struct coda_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct coda_fs_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/coda/upcall.c b/fs/coda/upcall.c
index cd6a3721f6f6..0abde29b4f47 100644
--- a/fs/coda/upcall.c
+++ b/fs/coda/upcall.c
@@ -724,7 +724,7 @@ static int coda_upcall(struct venus_comm *vcp,
}
/* Format the request message. */
- req = kmalloc(sizeof(struct upc_req), GFP_KERNEL);
+ req = kmalloc_obj(struct upc_req, GFP_KERNEL);
if (!req) {
error = -ENOMEM;
goto exit;
@@ -788,10 +788,10 @@ static int coda_upcall(struct venus_comm *vcp,
}
error = -ENOMEM;
- sig_req = kmalloc(sizeof(struct upc_req), GFP_KERNEL);
+ sig_req = kmalloc_obj(struct upc_req, GFP_KERNEL);
if (!sig_req) goto exit;
- sig_inputArgs = kvzalloc(sizeof(*sig_inputArgs), GFP_KERNEL);
+ sig_inputArgs = kvzalloc_obj(*sig_inputArgs, GFP_KERNEL);
if (!sig_inputArgs) {
kfree(sig_req);
goto exit;
diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
index ba95f636a5ab..f437b1ab3b68 100644
--- a/fs/configfs/dir.c
+++ b/fs/configfs/dir.c
@@ -159,7 +159,7 @@ static struct configfs_fragment *new_fragment(void)
{
struct configfs_fragment *p;
- p = kmalloc(sizeof(struct configfs_fragment), GFP_KERNEL);
+ p = kmalloc_obj(struct configfs_fragment, GFP_KERNEL);
if (p) {
atomic_set(&p->frag_count, 1);
init_rwsem(&p->frag_sem);
@@ -1847,7 +1847,7 @@ configfs_register_default_group(struct config_group *parent_group,
int ret;
struct config_group *group;
- group = kzalloc(sizeof(*group), GFP_KERNEL);
+ group = kzalloc_obj(*group, GFP_KERNEL);
if (!group)
return ERR_PTR(-ENOMEM);
config_group_init_type_name(group, name, item_type);
diff --git a/fs/configfs/file.c b/fs/configfs/file.c
index affe4742bbb5..a83d1981e96f 100644
--- a/fs/configfs/file.c
+++ b/fs/configfs/file.c
@@ -296,7 +296,7 @@ static int __configfs_open_file(struct inode *inode, struct file *file, int type
int error;
error = -ENOMEM;
- buffer = kzalloc(sizeof(struct configfs_buffer), GFP_KERNEL);
+ buffer = kzalloc_obj(struct configfs_buffer, GFP_KERNEL);
if (!buffer)
goto out;
diff --git a/fs/configfs/inode.c b/fs/configfs/inode.c
index bcda3372e141..e7d8500fee7d 100644
--- a/fs/configfs/inode.c
+++ b/fs/configfs/inode.c
@@ -47,7 +47,7 @@ int configfs_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
sd_iattr = sd->s_iattr;
if (!sd_iattr) {
/* setting attributes for the first time, allocate now */
- sd_iattr = kzalloc(sizeof(struct iattr), GFP_KERNEL);
+ sd_iattr = kzalloc_obj(struct iattr, GFP_KERNEL);
if (!sd_iattr)
return -ENOMEM;
/* assign default attributes */
diff --git a/fs/coredump.c b/fs/coredump.c
index 4ce7c80b39c8..c5b81cacbabb 100644
--- a/fs/coredump.c
+++ b/fs/coredump.c
@@ -262,7 +262,7 @@ static bool coredump_parse(struct core_name *cn, struct coredump_params *cprm,
switch (cn->core_type) {
case COREDUMP_PIPE: {
int argvs = sizeof(core_pattern) / 2;
- (*argv) = kmalloc_array(argvs, sizeof(**argv), GFP_KERNEL);
+ (*argv) = kmalloc_objs(**argv, argvs, GFP_KERNEL);
if (!(*argv))
return false;
(*argv)[(*argc)++] = 0;
@@ -1736,7 +1736,8 @@ static bool dump_vma_snapshot(struct coredump_params *cprm)
gate_vma = get_gate_vma(mm);
cprm->vma_count = mm->map_count + (gate_vma ? 1 : 0);
- cprm->vma_meta = kvmalloc_array(cprm->vma_count, sizeof(*cprm->vma_meta), GFP_KERNEL);
+ cprm->vma_meta = kvmalloc_objs(*cprm->vma_meta, cprm->vma_count,
+ GFP_KERNEL);
if (!cprm->vma_meta) {
mmap_write_unlock(mm);
return false;
diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c
index 41b1a869cf13..10403cb81182 100644
--- a/fs/cramfs/inode.c
+++ b/fs/cramfs/inode.c
@@ -619,7 +619,7 @@ static int cramfs_blkdev_fill_super(struct super_block *sb, struct fs_context *f
struct cramfs_super super;
int i, err;
- sbi = kzalloc(sizeof(struct cramfs_sb_info), GFP_KERNEL);
+ sbi = kzalloc_obj(struct cramfs_sb_info, GFP_KERNEL);
if (!sbi)
return -ENOMEM;
sb->s_fs_info = sbi;
@@ -640,7 +640,7 @@ static int cramfs_mtd_fill_super(struct super_block *sb, struct fs_context *fc)
struct cramfs_super super;
int err;
- sbi = kzalloc(sizeof(struct cramfs_sb_info), GFP_KERNEL);
+ sbi = kzalloc_obj(struct cramfs_sb_info, GFP_KERNEL);
if (!sbi)
return -ENOMEM;
sb->s_fs_info = sbi;
diff --git a/fs/crypto/inline_crypt.c b/fs/crypto/inline_crypt.c
index ed6e926226b5..e286d9fd17f3 100644
--- a/fs/crypto/inline_crypt.c
+++ b/fs/crypto/inline_crypt.c
@@ -32,7 +32,7 @@ static struct block_device **fscrypt_get_devices(struct super_block *sb,
if (devs)
return devs;
}
- devs = kmalloc(sizeof(*devs), GFP_KERNEL);
+ devs = kmalloc_obj(*devs, GFP_KERNEL);
if (!devs)
return ERR_PTR(-ENOMEM);
devs[0] = sb->s_bdev;
@@ -169,7 +169,7 @@ int fscrypt_prepare_inline_crypt_key(struct fscrypt_prepared_key *prep_key,
unsigned int i;
int err;
- blk_key = kmalloc(sizeof(*blk_key), GFP_KERNEL);
+ blk_key = kmalloc_obj(*blk_key, GFP_KERNEL);
if (!blk_key)
return -ENOMEM;
diff --git a/fs/crypto/keyring.c b/fs/crypto/keyring.c
index 5e939ea3ac28..855314a28b18 100644
--- a/fs/crypto/keyring.c
+++ b/fs/crypto/keyring.c
@@ -209,7 +209,7 @@ static int allocate_filesystem_keyring(struct super_block *sb)
if (sb->s_master_keys)
return 0;
- keyring = kzalloc(sizeof(*keyring), GFP_KERNEL);
+ keyring = kzalloc_obj(*keyring, GFP_KERNEL);
if (!keyring)
return -ENOMEM;
spin_lock_init(&keyring->lock);
@@ -434,7 +434,7 @@ static int add_new_master_key(struct super_block *sb,
struct fscrypt_master_key *mk;
int err;
- mk = kzalloc(sizeof(*mk), GFP_KERNEL);
+ mk = kzalloc_obj(*mk, GFP_KERNEL);
if (!mk)
return -ENOMEM;
diff --git a/fs/crypto/keysetup_v1.c b/fs/crypto/keysetup_v1.c
index c4d05168522b..93fc2ab7ee97 100644
--- a/fs/crypto/keysetup_v1.c
+++ b/fs/crypto/keysetup_v1.c
@@ -221,7 +221,7 @@ fscrypt_get_direct_key(const struct fscrypt_inode_info *ci, const u8 *raw_key)
return dk;
/* Nope, allocate one. */
- dk = kzalloc(sizeof(*dk), GFP_KERNEL);
+ dk = kzalloc_obj(*dk, GFP_KERNEL);
if (!dk)
return ERR_PTR(-ENOMEM);
dk->dk_sb = ci->ci_inode->i_sb;
diff --git a/fs/crypto/policy.c b/fs/crypto/policy.c
index bbb2f5ced988..49309e9da4ea 100644
--- a/fs/crypto/policy.c
+++ b/fs/crypto/policy.c
@@ -813,7 +813,7 @@ int fscrypt_parse_test_dummy_encryption(const struct fs_parameter *param,
if (param->type == fs_value_is_string && *param->string)
arg = param->string;
- policy = kzalloc(sizeof(*policy), GFP_KERNEL);
+ policy = kzalloc_obj(*policy, GFP_KERNEL);
if (!policy)
return -ENOMEM;
diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c
index 3ec3324c2060..70b8dcd3599d 100644
--- a/fs/debugfs/file.c
+++ b/fs/debugfs/file.c
@@ -82,7 +82,7 @@ static int __debugfs_file_get(struct dentry *dentry, enum dbgfs_get_mode mode)
if (WARN_ON(mode == DBGFS_GET_ALREADY))
return -EINVAL;
- fsd = kmalloc(sizeof(*fsd), GFP_KERNEL);
+ fsd = kmalloc_obj(*fsd, GFP_KERNEL);
if (!fsd)
return -ENOMEM;
diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
index 4005d21cf009..a9e161f6fb7d 100644
--- a/fs/debugfs/inode.c
+++ b/fs/debugfs/inode.c
@@ -310,7 +310,7 @@ static int debugfs_init_fs_context(struct fs_context *fc)
{
struct debugfs_fs_info *fsi;
- fsi = kzalloc(sizeof(struct debugfs_fs_info), GFP_KERNEL);
+ fsi = kzalloc_obj(struct debugfs_fs_info, GFP_KERNEL);
if (!fsi)
return -ENOMEM;
diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c
index 9f3de528c358..93af356408ee 100644
--- a/fs/devpts/inode.c
+++ b/fs/devpts/inode.c
@@ -420,7 +420,7 @@ static int devpts_init_fs_context(struct fs_context *fc)
{
struct pts_fs_info *fsi;
- fsi = kzalloc(sizeof(struct pts_fs_info), GFP_KERNEL);
+ fsi = kzalloc_obj(struct pts_fs_info, GFP_KERNEL);
if (!fsi)
return -ENOMEM;
diff --git a/fs/dlm/config.c b/fs/dlm/config.c
index 82cc3215663f..0f80fda98227 100644
--- a/fs/dlm/config.c
+++ b/fs/dlm/config.c
@@ -426,9 +426,9 @@ static struct config_group *make_cluster(struct config_group *g,
struct dlm_spaces *sps = NULL;
struct dlm_comms *cms = NULL;
- cl = kzalloc(sizeof(struct dlm_cluster), GFP_NOFS);
- sps = kzalloc(sizeof(struct dlm_spaces), GFP_NOFS);
- cms = kzalloc(sizeof(struct dlm_comms), GFP_NOFS);
+ cl = kzalloc_obj(struct dlm_cluster, GFP_NOFS);
+ sps = kzalloc_obj(struct dlm_spaces, GFP_NOFS);
+ cms = kzalloc_obj(struct dlm_comms, GFP_NOFS);
if (!cl || !sps || !cms)
goto fail;
@@ -480,8 +480,8 @@ static struct config_group *make_space(struct config_group *g, const char *name)
struct dlm_space *sp = NULL;
struct dlm_nodes *nds = NULL;
- sp = kzalloc(sizeof(struct dlm_space), GFP_NOFS);
- nds = kzalloc(sizeof(struct dlm_nodes), GFP_NOFS);
+ sp = kzalloc_obj(struct dlm_space, GFP_NOFS);
+ nds = kzalloc_obj(struct dlm_nodes, GFP_NOFS);
if (!sp || !nds)
goto fail;
@@ -531,7 +531,7 @@ static struct config_item *make_comm(struct config_group *g, const char *name)
if (rv)
return ERR_PTR(rv);
- cm = kzalloc(sizeof(struct dlm_comm), GFP_NOFS);
+ cm = kzalloc_obj(struct dlm_comm, GFP_NOFS);
if (!cm)
return ERR_PTR(-ENOMEM);
@@ -577,7 +577,7 @@ static struct config_item *make_node(struct config_group *g, const char *name)
if (rv)
return ERR_PTR(rv);
- nd = kzalloc(sizeof(struct dlm_node), GFP_NOFS);
+ nd = kzalloc_obj(struct dlm_node, GFP_NOFS);
if (!nd)
return ERR_PTR(-ENOMEM);
@@ -602,7 +602,7 @@ static void drop_node(struct config_group *g, struct config_item *i)
struct dlm_node *nd = config_item_to_node(i);
struct dlm_member_gone *mb_gone;
- mb_gone = kzalloc(sizeof(*mb_gone), GFP_KERNEL);
+ mb_gone = kzalloc_obj(*mb_gone, GFP_KERNEL);
if (!mb_gone)
return;
@@ -701,7 +701,7 @@ static ssize_t comm_addr_store(struct config_item *item, const char *buf,
if (cm->addr_count >= DLM_MAX_ADDR_COUNT)
return -ENOSPC;
- addr = kzalloc(sizeof(*addr), GFP_NOFS);
+ addr = kzalloc_obj(*addr, GFP_NOFS);
if (!addr)
return -ENOMEM;
@@ -946,7 +946,7 @@ int dlm_config_nodes(char *lsname, struct dlm_config_node **nodes_out,
count = sp->members_count + sp->members_gone_count;
- nodes = kcalloc(count, sizeof(struct dlm_config_node), GFP_NOFS);
+ nodes = kzalloc_objs(struct dlm_config_node, count, GFP_NOFS);
if (!nodes) {
rv = -ENOMEM;
goto out;
diff --git a/fs/dlm/dir.c b/fs/dlm/dir.c
index 01c292379f5b..aa08e8f446a1 100644
--- a/fs/dlm/dir.c
+++ b/fs/dlm/dir.c
@@ -276,7 +276,7 @@ static struct dlm_dir_dump *init_dir_dump(struct dlm_ls *ls, int nodeid)
drop_dir_ctx(ls, nodeid);
}
- dd = kzalloc(sizeof(*dd), GFP_ATOMIC);
+ dd = kzalloc_obj(*dd, GFP_ATOMIC);
if (!dd)
return NULL;
diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c
index 47a09d6748cb..3b6e6a29eab8 100644
--- a/fs/dlm/lock.c
+++ b/fs/dlm/lock.c
@@ -5050,7 +5050,7 @@ void dlm_recover_waiters_pre(struct dlm_ls *ls)
int wait_type, local_unlock_result, local_cancel_result;
int dir_nodeid;
- ms_local = kmalloc(sizeof(*ms_local), GFP_KERNEL);
+ ms_local = kmalloc_obj(*ms_local, GFP_KERNEL);
if (!ms_local)
return;
@@ -6288,7 +6288,7 @@ int dlm_debug_add_lkb(struct dlm_ls *ls, uint32_t lkb_id, char *name, int len,
if (lkb_dflags & BIT(DLM_DFL_USER_BIT))
return -EOPNOTSUPP;
- lksb = kzalloc(sizeof(*lksb), GFP_NOFS);
+ lksb = kzalloc_obj(*lksb, GFP_NOFS);
if (!lksb)
return -ENOMEM;
diff --git a/fs/dlm/lockspace.c b/fs/dlm/lockspace.c
index ddaa76558706..a9c98b4f378f 100644
--- a/fs/dlm/lockspace.c
+++ b/fs/dlm/lockspace.c
@@ -427,7 +427,7 @@ static int new_lockspace(const char *name, const char *cluster,
error = -ENOMEM;
- ls = kzalloc(sizeof(*ls), GFP_NOFS);
+ ls = kzalloc_obj(*ls, GFP_NOFS);
if (!ls)
goto out;
memcpy(ls->ls_name, name, namelen);
diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
index b3958008ba3f..5b6142787919 100644
--- a/fs/dlm/lowcomms.c
+++ b/fs/dlm/lowcomms.c
@@ -305,7 +305,7 @@ static struct connection *nodeid2con(int nodeid, gfp_t alloc)
if (con || !alloc)
return con;
- con = kzalloc(sizeof(*con), alloc);
+ con = kzalloc_obj(*con, alloc);
if (!con)
return NULL;
@@ -838,7 +838,7 @@ static struct processqueue_entry *new_processqueue_entry(int nodeid,
{
struct processqueue_entry *pentry;
- pentry = kmalloc(sizeof(*pentry), GFP_NOFS);
+ pentry = kmalloc_obj(*pentry, GFP_NOFS);
if (!pentry)
return NULL;
@@ -1052,7 +1052,7 @@ static int accept_from_sock(void)
struct connection *othercon = newcon->othercon;
if (!othercon) {
- othercon = kzalloc(sizeof(*othercon), GFP_NOFS);
+ othercon = kzalloc_obj(*othercon, GFP_NOFS);
if (!othercon) {
log_print("failed to allocate incoming socket");
up_write(&newcon->sock_lock);
diff --git a/fs/dlm/member.c b/fs/dlm/member.c
index c1b5598997b7..812d889f1ce5 100644
--- a/fs/dlm/member.c
+++ b/fs/dlm/member.c
@@ -211,7 +211,7 @@ int dlm_slots_assign(struct dlm_ls *ls, int *num_slots, int *slots_size,
}
array_size = max + need;
- array = kcalloc(array_size, sizeof(*array), GFP_NOFS);
+ array = kzalloc_objs(*array, array_size, GFP_NOFS);
if (!array)
return -ENOMEM;
@@ -323,7 +323,7 @@ static int dlm_add_member(struct dlm_ls *ls, struct dlm_config_node *node)
struct dlm_member *memb;
int error;
- memb = kzalloc(sizeof(*memb), GFP_NOFS);
+ memb = kzalloc_obj(*memb, GFP_NOFS);
if (!memb)
return -ENOMEM;
@@ -423,7 +423,7 @@ static void make_member_array(struct dlm_ls *ls)
}
ls->ls_total_weight = total;
- array = kmalloc_array(total, sizeof(*array), GFP_NOFS);
+ array = kmalloc_objs(*array, total, GFP_NOFS);
if (!array)
return;
@@ -511,7 +511,7 @@ void dlm_lsop_recover_done(struct dlm_ls *ls)
return;
num = ls->ls_num_nodes;
- slots = kcalloc(num, sizeof(*slots), GFP_KERNEL);
+ slots = kzalloc_objs(*slots, num, GFP_KERNEL);
if (!slots)
return;
@@ -726,7 +726,7 @@ int dlm_ls_start(struct dlm_ls *ls)
struct dlm_config_node *nodes = NULL;
int error, count;
- rv = kzalloc(sizeof(*rv), GFP_NOFS);
+ rv = kzalloc_obj(*rv, GFP_NOFS);
if (!rv)
return -ENOMEM;
diff --git a/fs/dlm/midcomms.c b/fs/dlm/midcomms.c
index 2c101bbe261a..d54bdd8fc4f2 100644
--- a/fs/dlm/midcomms.c
+++ b/fs/dlm/midcomms.c
@@ -351,7 +351,7 @@ int dlm_midcomms_addr(int nodeid, struct sockaddr_storage *addr)
}
srcu_read_unlock(&nodes_srcu, idx);
- node = kmalloc(sizeof(*node), GFP_NOFS);
+ node = kmalloc_obj(*node, GFP_NOFS);
if (!node)
return -ENOMEM;
diff --git a/fs/dlm/plock.c b/fs/dlm/plock.c
index 9ca83ef70ed1..e9598b3fe5d0 100644
--- a/fs/dlm/plock.c
+++ b/fs/dlm/plock.c
@@ -102,7 +102,7 @@ static int do_lock_cancel(const struct dlm_plock_info *orig_info)
struct plock_op *op;
int rv;
- op = kzalloc(sizeof(*op), GFP_NOFS);
+ op = kzalloc_obj(*op, GFP_NOFS);
if (!op)
return -ENOMEM;
@@ -131,7 +131,7 @@ int dlm_posix_lock(dlm_lockspace_t *lockspace, u64 number, struct file *file,
if (!ls)
return -EINVAL;
- op = kzalloc(sizeof(*op), GFP_NOFS);
+ op = kzalloc_obj(*op, GFP_NOFS);
if (!op) {
rv = -ENOMEM;
goto out;
@@ -148,7 +148,7 @@ int dlm_posix_lock(dlm_lockspace_t *lockspace, u64 number, struct file *file,
op->info.owner = (__u64)(long) fl->c.flc_owner;
/* async handling */
if (fl->fl_lmops && fl->fl_lmops->lm_grant) {
- op_data = kzalloc(sizeof(*op_data), GFP_NOFS);
+ op_data = kzalloc_obj(*op_data, GFP_NOFS);
if (!op_data) {
dlm_release_plock_op(op);
rv = -ENOMEM;
@@ -297,7 +297,7 @@ int dlm_posix_unlock(dlm_lockspace_t *lockspace, u64 number, struct file *file,
if (!ls)
return -EINVAL;
- op = kzalloc(sizeof(*op), GFP_NOFS);
+ op = kzalloc_obj(*op, GFP_NOFS);
if (!op) {
rv = -ENOMEM;
goto out;
@@ -430,7 +430,7 @@ int dlm_posix_get(dlm_lockspace_t *lockspace, u64 number, struct file *file,
if (!ls)
return -EINVAL;
- op = kzalloc(sizeof(*op), GFP_NOFS);
+ op = kzalloc_obj(*op, GFP_NOFS);
if (!op) {
rv = -ENOMEM;
goto out;
diff --git a/fs/dlm/user.c b/fs/dlm/user.c
index 51daf4acbe31..a8ed4c8fdc5b 100644
--- a/fs/dlm/user.c
+++ b/fs/dlm/user.c
@@ -262,7 +262,7 @@ static int device_user_lock(struct dlm_user_proc *proc,
goto out;
}
- ua = kzalloc(sizeof(struct dlm_user_args), GFP_NOFS);
+ ua = kzalloc_obj(struct dlm_user_args, GFP_NOFS);
if (!ua)
goto out;
ua->proc = proc;
@@ -307,7 +307,7 @@ static int device_user_unlock(struct dlm_user_proc *proc,
if (!ls)
return -ENOENT;
- ua = kzalloc(sizeof(struct dlm_user_args), GFP_NOFS);
+ ua = kzalloc_obj(struct dlm_user_args, GFP_NOFS);
if (!ua)
goto out;
ua->proc = proc;
@@ -645,7 +645,7 @@ static int device_open(struct inode *inode, struct file *file)
if (!ls)
return -ENOENT;
- proc = kzalloc(sizeof(struct dlm_user_proc), GFP_NOFS);
+ proc = kzalloc_obj(struct dlm_user_proc, GFP_NOFS);
if (!proc) {
dlm_put_lockspace(ls);
return -ENOMEM;
diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c
index 5459f18b3cca..6ada136f3f3f 100644
--- a/fs/ecryptfs/crypto.c
+++ b/fs/ecryptfs/crypto.c
@@ -1793,7 +1793,7 @@ int ecryptfs_encrypt_and_encode_filename(
& ECRYPTFS_GLOBAL_ENCRYPT_FILENAMES)) {
struct ecryptfs_filename *filename;
- filename = kzalloc(sizeof(*filename), GFP_KERNEL);
+ filename = kzalloc_obj(*filename, GFP_KERNEL);
if (!filename) {
rc = -ENOMEM;
goto out;
diff --git a/fs/ecryptfs/keystore.c b/fs/ecryptfs/keystore.c
index a41c82d610a7..04b6d296a3fa 100644
--- a/fs/ecryptfs/keystore.c
+++ b/fs/ecryptfs/keystore.c
@@ -623,7 +623,7 @@ ecryptfs_write_tag_70_packet(char *dest, size_t *remaining_bytes,
struct key *auth_tok_key = NULL;
int rc = 0;
- s = kzalloc(sizeof(*s), GFP_KERNEL);
+ s = kzalloc_obj(*s, GFP_KERNEL);
if (!s)
return -ENOMEM;
@@ -860,7 +860,7 @@ ecryptfs_parse_tag_70_packet(char **filename, size_t *filename_size,
(*packet_size) = 0;
(*filename_size) = 0;
(*filename) = NULL;
- s = kzalloc(sizeof(*s), GFP_KERNEL);
+ s = kzalloc_obj(*s, GFP_KERNEL);
if (!s)
return -ENOMEM;
diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c
index 7d51e6b60f53..dcfa607fbf15 100644
--- a/fs/ecryptfs/main.c
+++ b/fs/ecryptfs/main.c
@@ -610,7 +610,7 @@ static int ecryptfs_init_fs_context(struct fs_context *fc)
struct ecryptfs_fs_context *ctx;
struct ecryptfs_sb_info *sbi = NULL;
- ctx = kzalloc(sizeof(struct ecryptfs_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct ecryptfs_fs_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
sbi = kmem_cache_zalloc(ecryptfs_sb_info_cache, GFP_KERNEL);
diff --git a/fs/ecryptfs/messaging.c b/fs/ecryptfs/messaging.c
index 6318f3500e5c..6cf3052e9370 100644
--- a/fs/ecryptfs/messaging.c
+++ b/fs/ecryptfs/messaging.c
@@ -131,7 +131,7 @@ ecryptfs_spawn_daemon(struct ecryptfs_daemon **daemon, struct file *file)
{
int rc = 0;
- (*daemon) = kzalloc(sizeof(**daemon), GFP_KERNEL);
+ (*daemon) = kzalloc_obj(**daemon, GFP_KERNEL);
if (!(*daemon)) {
rc = -ENOMEM;
goto out;
diff --git a/fs/efivarfs/super.c b/fs/efivarfs/super.c
index 9da992925920..14c2752831c8 100644
--- a/fs/efivarfs/super.c
+++ b/fs/efivarfs/super.c
@@ -44,7 +44,7 @@ static int efivarfs_ops_notifier(struct notifier_block *nb, unsigned long event,
static struct inode *efivarfs_alloc_inode(struct super_block *sb)
{
- struct efivar_entry *entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ struct efivar_entry *entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return NULL;
@@ -505,7 +505,7 @@ static int efivarfs_init_fs_context(struct fs_context *fc)
if (!efivar_is_available())
return -EOPNOTSUPP;
- sfi = kzalloc(sizeof(*sfi), GFP_KERNEL);
+ sfi = kzalloc_obj(*sfi, GFP_KERNEL);
if (!sfi)
return -ENOMEM;
diff --git a/fs/efs/super.c b/fs/efs/super.c
index c59086b7eabf..54252bccd6a3 100644
--- a/fs/efs/super.c
+++ b/fs/efs/super.c
@@ -243,7 +243,7 @@ static int efs_fill_super(struct super_block *s, struct fs_context *fc)
struct buffer_head *bh;
struct inode *root;
- sb = kzalloc(sizeof(struct efs_sb_info), GFP_KERNEL);
+ sb = kzalloc_obj(struct efs_sb_info, GFP_KERNEL);
if (!sb)
return -ENOMEM;
s->s_fs_info = sb;
diff --git a/fs/erofs/decompressor_deflate.c b/fs/erofs/decompressor_deflate.c
index 4f26ab767645..787eb8fc6262 100644
--- a/fs/erofs/decompressor_deflate.c
+++ b/fs/erofs/decompressor_deflate.c
@@ -71,7 +71,7 @@ static int z_erofs_load_deflate_config(struct super_block *sb,
++z_erofs_deflate_avail_strms) {
struct z_erofs_deflate *strm;
- strm = kzalloc(sizeof(*strm), GFP_KERNEL);
+ strm = kzalloc_obj(*strm, GFP_KERNEL);
if (!strm)
goto failed;
/* XXX: in-kernel zlib cannot customize windowbits */
diff --git a/fs/erofs/decompressor_lzma.c b/fs/erofs/decompressor_lzma.c
index b4ea6978faae..c1c908d7b6ef 100644
--- a/fs/erofs/decompressor_lzma.c
+++ b/fs/erofs/decompressor_lzma.c
@@ -54,7 +54,7 @@ static int __init z_erofs_lzma_init(void)
z_erofs_lzma_nstrms = num_possible_cpus();
for (i = 0; i < z_erofs_lzma_nstrms; ++i) {
- struct z_erofs_lzma *strm = kzalloc(sizeof(*strm), GFP_KERNEL);
+ struct z_erofs_lzma *strm = kzalloc_obj(*strm, GFP_KERNEL);
if (!strm) {
z_erofs_lzma_exit();
diff --git a/fs/erofs/decompressor_zstd.c b/fs/erofs/decompressor_zstd.c
index beae49165c69..6da93f74431b 100644
--- a/fs/erofs/decompressor_zstd.c
+++ b/fs/erofs/decompressor_zstd.c
@@ -59,7 +59,7 @@ static int __init z_erofs_zstd_init(void)
++z_erofs_zstd_avail_strms) {
struct z_erofs_zstd *strm;
- strm = kzalloc(sizeof(*strm), GFP_KERNEL);
+ strm = kzalloc_obj(*strm, GFP_KERNEL);
if (!strm) {
z_erofs_zstd_exit();
return -ENOMEM;
diff --git a/fs/erofs/fileio.c b/fs/erofs/fileio.c
index 4d5054dcac95..abe873f01297 100644
--- a/fs/erofs/fileio.c
+++ b/fs/erofs/fileio.c
@@ -68,8 +68,7 @@ static void erofs_fileio_rq_submit(struct erofs_fileio_rq *rq)
static struct erofs_fileio_rq *erofs_fileio_rq_alloc(struct erofs_map_dev *mdev)
{
- struct erofs_fileio_rq *rq = kzalloc(sizeof(*rq),
- GFP_KERNEL | __GFP_NOFAIL);
+ struct erofs_fileio_rq *rq = kzalloc_obj(*rq, GFP_KERNEL | __GFP_NOFAIL);
bio_init(&rq->bio, NULL, rq->bvecs, ARRAY_SIZE(rq->bvecs), REQ_OP_READ);
rq->iocb.ki_filp = mdev->m_dif->file;
diff --git a/fs/erofs/fscache.c b/fs/erofs/fscache.c
index a2cc0f3fa9d0..0a231063b341 100644
--- a/fs/erofs/fscache.c
+++ b/fs/erofs/fscache.c
@@ -70,7 +70,7 @@ static void erofs_fscache_req_put(struct erofs_fscache_rq *req)
static struct erofs_fscache_rq *erofs_fscache_req_alloc(struct address_space *mapping,
loff_t start, size_t len)
{
- struct erofs_fscache_rq *req = kzalloc(sizeof(*req), GFP_KERNEL);
+ struct erofs_fscache_rq *req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return NULL;
@@ -101,7 +101,7 @@ static void erofs_fscache_req_end_io(void *priv, ssize_t transferred_or_error)
static struct erofs_fscache_io *erofs_fscache_req_io_alloc(struct erofs_fscache_rq *req)
{
- struct erofs_fscache_io *io = kzalloc(sizeof(*io), GFP_KERNEL);
+ struct erofs_fscache_io *io = kzalloc_obj(*io, GFP_KERNEL);
if (!io)
return NULL;
@@ -181,7 +181,7 @@ struct bio *erofs_fscache_bio_alloc(struct erofs_map_dev *mdev)
{
struct erofs_fscache_bio *io;
- io = kmalloc(sizeof(*io), GFP_KERNEL | __GFP_NOFAIL);
+ io = kmalloc_obj(*io, GFP_KERNEL | __GFP_NOFAIL);
bio_init(&io->bio, NULL, io->bvecs, BIO_MAX_VECS, REQ_OP_READ);
io->io.private = mdev->m_dif->fscache->cookie;
io->io.end_io = erofs_fscache_bio_endio;
@@ -417,7 +417,7 @@ static int erofs_fscache_init_domain(struct super_block *sb)
struct erofs_domain *domain;
struct erofs_sb_info *sbi = EROFS_SB(sb);
- domain = kzalloc(sizeof(struct erofs_domain), GFP_KERNEL);
+ domain = kzalloc_obj(struct erofs_domain, GFP_KERNEL);
if (!domain)
return -ENOMEM;
@@ -482,7 +482,7 @@ static struct erofs_fscache *erofs_fscache_acquire_cookie(struct super_block *sb
struct inode *inode;
int ret;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return ERR_PTR(-ENOMEM);
INIT_LIST_HEAD(&ctx->node);
diff --git a/fs/erofs/super.c b/fs/erofs/super.c
index 7827e61424b7..a333456c7d5d 100644
--- a/fs/erofs/super.c
+++ b/fs/erofs/super.c
@@ -226,7 +226,7 @@ static int erofs_scan_devices(struct super_block *sb,
}
} else {
for (id = 0; id < ondisk_extradevs; id++) {
- dif = kzalloc(sizeof(*dif), GFP_KERNEL);
+ dif = kzalloc_obj(*dif, GFP_KERNEL);
if (!dif) {
err = -ENOMEM;
break;
@@ -495,7 +495,7 @@ static int erofs_fc_parse_param(struct fs_context *fc,
return -EINVAL;
break;
case Opt_device:
- dif = kzalloc(sizeof(*dif), GFP_KERNEL);
+ dif = kzalloc_obj(*dif, GFP_KERNEL);
if (!dif)
return -ENOMEM;
dif->path = kstrdup(param->string, GFP_KERNEL);
@@ -903,11 +903,11 @@ static int erofs_init_fs_context(struct fs_context *fc)
{
struct erofs_sb_info *sbi;
- sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
+ sbi = kzalloc_obj(*sbi, GFP_KERNEL);
if (!sbi)
return -ENOMEM;
- sbi->devs = kzalloc(sizeof(struct erofs_dev_context), GFP_KERNEL);
+ sbi->devs = kzalloc_obj(struct erofs_dev_context, GFP_KERNEL);
if (!sbi->devs) {
kfree(sbi);
return -ENOMEM;
diff --git a/fs/erofs/xattr.c b/fs/erofs/xattr.c
index b7da1ed83160..5997a7ae19d9 100644
--- a/fs/erofs/xattr.c
+++ b/fs/erofs/xattr.c
@@ -85,8 +85,8 @@ static int erofs_init_inode_xattrs(struct inode *inode)
}
vi->xattr_name_filter = le32_to_cpu(ih->h_name_filter);
vi->xattr_shared_count = ih->h_shared_count;
- vi->xattr_shared_xattrs = kmalloc_array(vi->xattr_shared_count,
- sizeof(uint), GFP_KERNEL);
+ vi->xattr_shared_xattrs = kmalloc_objs(uint, vi->xattr_shared_count,
+ GFP_KERNEL);
if (!vi->xattr_shared_xattrs) {
erofs_put_metabuf(&buf);
ret = -ENOMEM;
@@ -498,7 +498,7 @@ int erofs_xattr_prefixes_init(struct super_block *sb)
if (!sbi->xattr_prefix_count)
return 0;
- pfs = kcalloc(sbi->xattr_prefix_count, sizeof(*pfs), GFP_KERNEL);
+ pfs = kzalloc_objs(*pfs, sbi->xattr_prefix_count, GFP_KERNEL);
if (!pfs)
return -ENOMEM;
diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c
index ea9d32e9cb12..3977e42b9516 100644
--- a/fs/erofs/zdata.c
+++ b/fs/erofs/zdata.c
@@ -323,8 +323,8 @@ static int erofs_init_percpu_workers(void)
struct kthread_worker *worker;
unsigned int cpu;
- z_erofs_pcpu_workers = kcalloc(num_possible_cpus(),
- sizeof(struct kthread_worker *), GFP_ATOMIC);
+ z_erofs_pcpu_workers = kzalloc_objs(struct kthread_worker *,
+ num_possible_cpus(), GFP_ATOMIC);
if (!z_erofs_pcpu_workers)
return -ENOMEM;
@@ -1144,7 +1144,7 @@ static void z_erofs_do_decompressed_bvec(struct z_erofs_backend *be,
}
/* (cold path) one pcluster is requested multiple times */
- item = kmalloc(sizeof(*item), GFP_KERNEL | __GFP_NOFAIL);
+ item = kmalloc_obj(*item, GFP_KERNEL | __GFP_NOFAIL);
item->bvec = *bvec;
list_add(&item->list, &be->decompressed_secondary_bvecs);
}
@@ -1282,12 +1282,12 @@ static int z_erofs_decompress_pcluster(struct z_erofs_backend *be, bool eio)
if (!be->decompressed_pages)
be->decompressed_pages =
- kvcalloc(be->nr_pages, sizeof(struct page *),
- GFP_KERNEL | __GFP_NOFAIL);
+ kvzalloc_objs(struct page *, be->nr_pages,
+ GFP_KERNEL | __GFP_NOFAIL);
if (!be->compressed_pages)
be->compressed_pages =
- kvcalloc(pclusterpages, sizeof(struct page *),
- GFP_KERNEL | __GFP_NOFAIL);
+ kvzalloc_objs(struct page *, pclusterpages,
+ GFP_KERNEL | __GFP_NOFAIL);
z_erofs_parse_out_bvecs(be);
err2 = z_erofs_parse_in_bvecs(be, &overlapped);
@@ -1590,7 +1590,7 @@ static struct z_erofs_decompressqueue *jobqueue_init(struct super_block *sb,
struct z_erofs_decompressqueue *q;
if (fg && !*fg) {
- q = kvzalloc(sizeof(*q), GFP_KERNEL | __GFP_NOWARN);
+ q = kvzalloc_obj(*q, GFP_KERNEL | __GFP_NOWARN);
if (!q) {
*fg = true;
goto fg_out;
diff --git a/fs/erofs/zutil.c b/fs/erofs/zutil.c
index 55ff2ab5128e..9a15088744f0 100644
--- a/fs/erofs/zutil.c
+++ b/fs/erofs/zutil.c
@@ -79,7 +79,7 @@ int z_erofs_gbuf_growsize(unsigned int nrpages)
for (i = 0; i < z_erofs_gbuf_count; ++i) {
gbuf = &z_erofs_gbufpool[i];
- tmp_pages = kcalloc(nrpages, sizeof(*tmp_pages), GFP_KERNEL);
+ tmp_pages = kzalloc_objs(*tmp_pages, nrpages, GFP_KERNEL);
if (!tmp_pages)
goto out;
@@ -131,15 +131,15 @@ int __init z_erofs_gbuf_init(void)
/* The last (special) global buffer is the reserved buffer */
total += !!z_erofs_rsv_nrpages;
- z_erofs_gbufpool = kcalloc(total, sizeof(*z_erofs_gbufpool),
- GFP_KERNEL);
+ z_erofs_gbufpool = kzalloc_objs(*z_erofs_gbufpool, total, GFP_KERNEL);
if (!z_erofs_gbufpool)
return -ENOMEM;
if (z_erofs_rsv_nrpages) {
z_erofs_rsvbuf = &z_erofs_gbufpool[total - 1];
- z_erofs_rsvbuf->pages = kcalloc(z_erofs_rsv_nrpages,
- sizeof(*z_erofs_rsvbuf->pages), GFP_KERNEL);
+ z_erofs_rsvbuf->pages = kzalloc_objs(*z_erofs_rsvbuf->pages,
+ z_erofs_rsv_nrpages,
+ GFP_KERNEL);
if (!z_erofs_rsvbuf->pages) {
z_erofs_rsvbuf = NULL;
z_erofs_rsv_nrpages = 0;
diff --git a/fs/eventfd.c b/fs/eventfd.c
index 3219e0d596fe..a0ea7f30c76f 100644
--- a/fs/eventfd.c
+++ b/fs/eventfd.c
@@ -388,7 +388,7 @@ static int do_eventfd(unsigned int count, int flags)
if (flags & ~EFD_FLAGS_SET)
return -EINVAL;
- ctx = kmalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kmalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/eventpoll.c b/fs/eventpoll.c
index 6c36d9dc6926..4d0c0ce43cb3 100644
--- a/fs/eventpoll.c
+++ b/fs/eventpoll.c
@@ -1147,7 +1147,7 @@ static int ep_alloc(struct eventpoll **pep)
{
struct eventpoll *ep;
- ep = kzalloc(sizeof(*ep), GFP_KERNEL);
+ ep = kzalloc_obj(*ep, GFP_KERNEL);
if (unlikely(!ep))
return -ENOMEM;
diff --git a/fs/exec.c b/fs/exec.c
index 2e3a6593c6fd..c367e74cf103 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -1402,7 +1402,7 @@ static struct linux_binprm *alloc_bprm(int fd, struct filename *filename, int fl
if (IS_ERR(file))
return ERR_CAST(file);
- bprm = kzalloc(sizeof(*bprm), GFP_KERNEL);
+ bprm = kzalloc_obj(*bprm, GFP_KERNEL);
if (!bprm) {
do_close_execat(file);
return ERR_PTR(-ENOMEM);
diff --git a/fs/exfat/balloc.c b/fs/exfat/balloc.c
index 5429041c7eaf..8dd9e39f8ccf 100644
--- a/fs/exfat/balloc.c
+++ b/fs/exfat/balloc.c
@@ -96,8 +96,8 @@ static int exfat_allocate_bitmap(struct super_block *sb,
}
sbi->map_sectors = ((need_map_size - 1) >>
(sb->s_blocksize_bits)) + 1;
- sbi->vol_amap = kvmalloc_array(sbi->map_sectors,
- sizeof(struct buffer_head *), GFP_KERNEL);
+ sbi->vol_amap = kvmalloc_objs(struct buffer_head *, sbi->map_sectors,
+ GFP_KERNEL);
if (!sbi->vol_amap)
return -ENOMEM;
diff --git a/fs/exfat/dir.c b/fs/exfat/dir.c
index 2dbf335eafef..3a4853693d8b 100644
--- a/fs/exfat/dir.c
+++ b/fs/exfat/dir.c
@@ -802,7 +802,7 @@ static int __exfat_get_dentry_set(struct exfat_entry_set_cache *es,
num_bh = EXFAT_B_TO_BLK_ROUND_UP(off + num_entries * DENTRY_SIZE, sb);
if (num_bh > ARRAY_SIZE(es->__bh)) {
- es->bh = kmalloc_array(num_bh, sizeof(*es->bh), GFP_NOFS);
+ es->bh = kmalloc_objs(*es->bh, num_bh, GFP_NOFS);
if (!es->bh) {
brelse(bh);
return -ENOMEM;
diff --git a/fs/exfat/super.c b/fs/exfat/super.c
index 10e872a99663..42a232394afb 100644
--- a/fs/exfat/super.c
+++ b/fs/exfat/super.c
@@ -815,7 +815,7 @@ static int exfat_init_fs_context(struct fs_context *fc)
{
struct exfat_sb_info *sbi;
- sbi = kzalloc(sizeof(struct exfat_sb_info), GFP_KERNEL);
+ sbi = kzalloc_obj(struct exfat_sb_info, GFP_KERNEL);
if (!sbi)
return -ENOMEM;
diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c
index b8cfab8f98b9..2bac6dcb1792 100644
--- a/fs/ext2/balloc.c
+++ b/fs/ext2/balloc.c
@@ -419,7 +419,7 @@ void ext2_init_block_alloc_info(struct inode *inode)
struct ext2_block_alloc_info *block_i;
struct super_block *sb = inode->i_sb;
- block_i = kmalloc(sizeof(*block_i), GFP_KERNEL);
+ block_i = kmalloc_obj(*block_i, GFP_KERNEL);
if (block_i) {
struct ext2_reserve_window_node *rsv = &block_i->rsv_window_node;
diff --git a/fs/ext2/super.c b/fs/ext2/super.c
index 121e634c792a..9bb4c63f5628 100644
--- a/fs/ext2/super.c
+++ b/fs/ext2/super.c
@@ -893,12 +893,12 @@ static int ext2_fill_super(struct super_block *sb, struct fs_context *fc)
__le32 features;
int err;
- sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
+ sbi = kzalloc_obj(*sbi, GFP_KERNEL);
if (!sbi)
return -ENOMEM;
sbi->s_blockgroup_lock =
- kzalloc(sizeof(struct blockgroup_lock), GFP_KERNEL);
+ kzalloc_obj(struct blockgroup_lock, GFP_KERNEL);
if (!sbi->s_blockgroup_lock) {
kfree(sbi);
return -ENOMEM;
@@ -1122,9 +1122,8 @@ static int ext2_fill_super(struct super_block *sb, struct fs_context *fc)
}
db_count = (sbi->s_groups_count + EXT2_DESC_PER_BLOCK(sb) - 1) /
EXT2_DESC_PER_BLOCK(sb);
- sbi->s_group_desc = kvmalloc_array(db_count,
- sizeof(struct buffer_head *),
- GFP_KERNEL);
+ sbi->s_group_desc = kvmalloc_objs(struct buffer_head *, db_count,
+ GFP_KERNEL);
if (sbi->s_group_desc == NULL) {
ret = -ENOMEM;
ext2_msg(sb, KERN_ERR, "error: not enough memory");
@@ -1670,7 +1669,7 @@ static int ext2_init_fs_context(struct fs_context *fc)
{
struct ext2_fs_context *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/ext4/block_validity.c b/fs/ext4/block_validity.c
index e8c5525afc67..75179be4a488 100644
--- a/fs/ext4/block_validity.c
+++ b/fs/ext4/block_validity.c
@@ -217,7 +217,7 @@ int ext4_setup_system_zone(struct super_block *sb)
ext4_group_t i;
int ret;
- system_blks = kzalloc(sizeof(*system_blks), GFP_KERNEL);
+ system_blks = kzalloc_obj(*system_blks, GFP_KERNEL);
if (!system_blks)
return -ENOMEM;
diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c
index 00c4b3c82b65..b285ce18b183 100644
--- a/fs/ext4/dir.c
+++ b/fs/ext4/dir.c
@@ -480,8 +480,7 @@ int ext4_htree_store_dirent(struct file *dir_file, __u32 hash,
p = &info->root.rb_node;
/* Create and allocate the fname structure */
- new_fn = kzalloc(struct_size(new_fn, name, ent_name->len + 1),
- GFP_KERNEL);
+ new_fn = kzalloc_flex(*new_fn, name, ent_name->len + 1, GFP_KERNEL);
if (!new_fn)
return -ENOMEM;
new_fn->hash = hash;
@@ -673,7 +672,7 @@ static int ext4_dir_open(struct inode *inode, struct file *file)
{
struct dir_private_info *info;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
file->private_data = info;
diff --git a/fs/ext4/extents-test.c b/fs/ext4/extents-test.c
index 4879e68e465d..913103089799 100644
--- a/fs/ext4/extents-test.c
+++ b/fs/ext4/extents-test.c
@@ -229,7 +229,7 @@ static int extents_kunit_init(struct kunit *test)
sb->s_blocksize = 4096;
sb->s_blocksize_bits = 12;
- sbi = kzalloc(sizeof(struct ext4_sb_info), GFP_KERNEL);
+ sbi = kzalloc_obj(struct ext4_sb_info, GFP_KERNEL);
if (sbi == NULL)
return -ENOMEM;
@@ -240,7 +240,7 @@ static int extents_kunit_init(struct kunit *test)
sbi->s_extent_max_zeroout_kb = 32;
/* setup the mock inode */
- k_ctx.k_ei = kzalloc(sizeof(struct ext4_inode_info), GFP_KERNEL);
+ k_ctx.k_ei = kzalloc_obj(struct ext4_inode_info, GFP_KERNEL);
if (k_ctx.k_ei == NULL)
return -ENOMEM;
ei = k_ctx.k_ei;
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 3630b27e4fd7..ae3804f36535 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -621,8 +621,7 @@ int ext4_ext_precache(struct inode *inode)
return ret;
}
- path = kcalloc(depth + 1, sizeof(struct ext4_ext_path),
- GFP_NOFS);
+ path = kzalloc_objs(struct ext4_ext_path, depth + 1, GFP_NOFS);
if (path == NULL) {
up_read(&ei->i_data_sem);
return -ENOMEM;
@@ -916,8 +915,7 @@ ext4_find_extent(struct inode *inode, ext4_lblk_t block,
}
if (!path) {
/* account possible depth increase */
- path = kcalloc(depth + 2, sizeof(struct ext4_ext_path),
- gfp_flags);
+ path = kzalloc_objs(struct ext4_ext_path, depth + 2, gfp_flags);
if (unlikely(!path))
return ERR_PTR(-ENOMEM);
path[0].p_maxdepth = depth + 1;
@@ -1105,7 +1103,7 @@ static int ext4_ext_split(handle_t *handle, struct inode *inode,
* We need this to handle errors and free blocks
* upon them.
*/
- ablocks = kcalloc(depth, sizeof(ext4_fsblk_t), gfp_flags);
+ ablocks = kzalloc_objs(ext4_fsblk_t, depth, gfp_flags);
if (!ablocks)
return -ENOMEM;
@@ -2947,8 +2945,8 @@ int ext4_ext_remove_space(struct inode *inode, ext4_lblk_t start,
path[k].p_block =
le16_to_cpu(path[k].p_hdr->eh_entries)+1;
} else {
- path = kcalloc(depth + 1, sizeof(struct ext4_ext_path),
- GFP_NOFS | __GFP_NOFAIL);
+ path = kzalloc_objs(struct ext4_ext_path, depth + 1,
+ GFP_NOFS | __GFP_NOFAIL);
path[0].p_maxdepth = path[0].p_depth = depth;
path[0].p_hdr = ext_inode_hdr(inode);
i = 0;
diff --git a/fs/ext4/fsmap.c b/fs/ext4/fsmap.c
index 22fc333244ef..8b1138d2dc8e 100644
--- a/fs/ext4/fsmap.c
+++ b/fs/ext4/fsmap.c
@@ -348,7 +348,7 @@ static inline int ext4_getfsmap_fill(struct list_head *meta_list,
{
struct ext4_fsmap *fsm;
- fsm = kmalloc(sizeof(*fsm), GFP_NOFS);
+ fsm = kmalloc_obj(*fsm, GFP_NOFS);
if (!fsm)
return -ENOMEM;
fsm->fmr_device = 0;
diff --git a/fs/ext4/mballoc-test.c b/fs/ext4/mballoc-test.c
index 4abb40d4561c..6b448aad6f63 100644
--- a/fs/ext4/mballoc-test.c
+++ b/fs/ext4/mballoc-test.c
@@ -34,7 +34,7 @@ static struct inode *mbt_alloc_inode(struct super_block *sb)
{
struct ext4_inode_info *ei;
- ei = kmalloc(sizeof(struct ext4_inode_info), GFP_KERNEL);
+ ei = kmalloc_obj(struct ext4_inode_info, GFP_KERNEL);
if (!ei)
return NULL;
@@ -73,11 +73,11 @@ static int mbt_mb_init(struct super_block *sb)
int ret;
/* needed by ext4_mb_init->bdev_nonrot(sb->s_bdev) */
- sb->s_bdev = kzalloc(sizeof(*sb->s_bdev), GFP_KERNEL);
+ sb->s_bdev = kzalloc_obj(*sb->s_bdev, GFP_KERNEL);
if (sb->s_bdev == NULL)
return -ENOMEM;
- sb->s_bdev->bd_queue = kzalloc(sizeof(struct request_queue), GFP_KERNEL);
+ sb->s_bdev->bd_queue = kzalloc_obj(struct request_queue, GFP_KERNEL);
if (sb->s_bdev->bd_queue == NULL) {
kfree(sb->s_bdev);
return -ENOMEM;
@@ -137,7 +137,7 @@ static struct super_block *mbt_ext4_alloc_super_block(void)
struct super_block *sb;
struct ext4_sb_info *sbi;
- fsb = kzalloc(sizeof(*fsb), GFP_KERNEL);
+ fsb = kzalloc_obj(*fsb, GFP_KERNEL);
if (fsb == NULL)
return NULL;
@@ -148,7 +148,7 @@ static struct super_block *mbt_ext4_alloc_super_block(void)
sbi = &fsb->sbi;
sbi->s_blockgroup_lock =
- kzalloc(sizeof(struct blockgroup_lock), GFP_KERNEL);
+ kzalloc_obj(struct blockgroup_lock, GFP_KERNEL);
if (!sbi->s_blockgroup_lock)
goto out_deactivate;
@@ -252,8 +252,7 @@ static int mbt_ctx_init(struct super_block *sb)
struct mbt_ctx *ctx = MBT_CTX(sb);
ext4_group_t i, ngroups = ext4_get_groups_count(sb);
- ctx->grp_ctx = kcalloc(ngroups, sizeof(struct mbt_grp_ctx),
- GFP_KERNEL);
+ ctx->grp_ctx = kzalloc_objs(struct mbt_grp_ctx, ngroups, GFP_KERNEL);
if (ctx->grp_ctx == NULL)
return -ENOMEM;
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index b99d1a7e580e..4d0bf2fcf2d3 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -3754,8 +3754,7 @@ int ext4_mb_init(struct super_block *sb)
} while (i < MB_NUM_ORDERS(sb));
sbi->s_mb_avg_fragment_size =
- kmalloc_array(MB_NUM_ORDERS(sb), sizeof(struct xarray),
- GFP_KERNEL);
+ kmalloc_objs(struct xarray, MB_NUM_ORDERS(sb), GFP_KERNEL);
if (!sbi->s_mb_avg_fragment_size) {
ret = -ENOMEM;
goto out;
@@ -3764,8 +3763,7 @@ int ext4_mb_init(struct super_block *sb)
xa_init(&sbi->s_mb_avg_fragment_size[i]);
sbi->s_mb_largest_free_orders =
- kmalloc_array(MB_NUM_ORDERS(sb), sizeof(struct xarray),
- GFP_KERNEL);
+ kmalloc_objs(struct xarray, MB_NUM_ORDERS(sb), GFP_KERNEL);
if (!sbi->s_mb_largest_free_orders) {
ret = -ENOMEM;
goto out;
@@ -3817,8 +3815,9 @@ int ext4_mb_init(struct super_block *sb)
sbi->s_mb_nr_global_goals = umin(num_possible_cpus(),
DIV_ROUND_UP(sbi->s_groups_count, 4));
- sbi->s_mb_last_groups = kcalloc(sbi->s_mb_nr_global_goals,
- sizeof(ext4_group_t), GFP_KERNEL);
+ sbi->s_mb_last_groups = kzalloc_objs(ext4_group_t,
+ sbi->s_mb_nr_global_goals,
+ GFP_KERNEL);
if (sbi->s_mb_last_groups == NULL) {
ret = -ENOMEM;
goto out;
diff --git a/fs/ext4/orphan.c b/fs/ext4/orphan.c
index c9b93b670b0f..2dbaf3c01168 100644
--- a/fs/ext4/orphan.c
+++ b/fs/ext4/orphan.c
@@ -598,8 +598,7 @@ int ext4_init_orphan_info(struct super_block *sb)
}
oi->of_blocks = inode->i_size >> sb->s_blocksize_bits;
oi->of_csum_seed = EXT4_I(inode)->i_csum_seed;
- oi->of_binfo = kvmalloc_array(oi->of_blocks,
- sizeof(struct ext4_orphan_block),
+ oi->of_binfo = kvmalloc_objs(struct ext4_orphan_block, oi->of_blocks,
GFP_KERNEL);
if (!oi->of_binfo) {
ret = -ENOMEM;
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
index 76842f0957b5..780679645b6e 100644
--- a/fs/ext4/resize.c
+++ b/fs/ext4/resize.c
@@ -32,7 +32,7 @@ static void ext4_rcu_ptr_callback(struct rcu_head *head)
void ext4_kvfree_array_rcu(void *to_free)
{
- struct ext4_rcu_ptr *ptr = kzalloc(sizeof(*ptr), GFP_KERNEL);
+ struct ext4_rcu_ptr *ptr = kzalloc_obj(*ptr, GFP_KERNEL);
if (ptr) {
ptr->ptr = to_free;
@@ -242,7 +242,7 @@ static struct ext4_new_flex_group_data *alloc_flex_gd(unsigned int flexbg_size,
unsigned int max_resize_bg;
struct ext4_new_flex_group_data *flex_gd;
- flex_gd = kmalloc(sizeof(*flex_gd), GFP_NOFS);
+ flex_gd = kmalloc_obj(*flex_gd, GFP_NOFS);
if (flex_gd == NULL)
goto out3;
@@ -260,9 +260,8 @@ static struct ext4_new_flex_group_data *alloc_flex_gd(unsigned int flexbg_size,
if (WARN_ON_ONCE(flex_gd->resize_bg > max_resize_bg))
flex_gd->resize_bg = max_resize_bg;
- flex_gd->groups = kmalloc_array(flex_gd->resize_bg,
- sizeof(struct ext4_new_group_data),
- GFP_NOFS);
+ flex_gd->groups = kmalloc_objs(struct ext4_new_group_data,
+ flex_gd->resize_bg, GFP_NOFS);
if (flex_gd->groups == NULL)
goto out2;
@@ -1031,7 +1030,7 @@ static int reserve_backup_gdb(handle_t *handle, struct inode *inode,
int res, i;
int err;
- primary = kmalloc_array(reserved_gdb, sizeof(*primary), GFP_NOFS);
+ primary = kmalloc_objs(*primary, reserved_gdb, GFP_NOFS);
if (!primary)
return -ENOMEM;
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 504148b2142b..63784d9b1874 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -2016,7 +2016,7 @@ int ext4_init_fs_context(struct fs_context *fc)
{
struct ext4_fs_context *ctx;
- ctx = kzalloc(sizeof(struct ext4_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct ext4_fs_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -2496,11 +2496,11 @@ static int parse_apply_sb_mount_options(struct super_block *sb,
if (strscpy_pad(s_mount_opts, sbi->s_es->s_mount_opts) < 0)
return -E2BIG;
- fc = kzalloc(sizeof(struct fs_context), GFP_KERNEL);
+ fc = kzalloc_obj(struct fs_context, GFP_KERNEL);
if (!fc)
return -ENOMEM;
- s_ctx = kzalloc(sizeof(struct ext4_fs_context), GFP_KERNEL);
+ s_ctx = kzalloc_obj(struct ext4_fs_context, GFP_KERNEL);
if (!s_ctx)
goto out_free;
@@ -3962,7 +3962,7 @@ static int ext4_li_info_new(void)
{
struct ext4_lazy_init *eli = NULL;
- eli = kzalloc(sizeof(*eli), GFP_KERNEL);
+ eli = kzalloc_obj(*eli, GFP_KERNEL);
if (!eli)
return -ENOMEM;
@@ -3981,7 +3981,7 @@ static struct ext4_li_request *ext4_li_request_new(struct super_block *sb,
{
struct ext4_li_request *elr;
- elr = kzalloc(sizeof(*elr), GFP_KERNEL);
+ elr = kzalloc_obj(*elr, GFP_KERNEL);
if (!elr)
return NULL;
@@ -4328,7 +4328,7 @@ static struct ext4_sb_info *ext4_alloc_sbi(struct super_block *sb)
{
struct ext4_sb_info *sbi;
- sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
+ sbi = kzalloc_obj(*sbi, GFP_KERNEL);
if (!sbi)
return NULL;
@@ -4336,7 +4336,7 @@ static struct ext4_sb_info *ext4_alloc_sbi(struct super_block *sb)
NULL, NULL);
sbi->s_blockgroup_lock =
- kzalloc(sizeof(struct blockgroup_lock), GFP_KERNEL);
+ kzalloc_obj(struct blockgroup_lock, GFP_KERNEL);
if (!sbi->s_blockgroup_lock)
goto err_out;
@@ -4879,9 +4879,7 @@ static int ext4_group_desc_init(struct super_block *sb,
}
}
rcu_assign_pointer(sbi->s_group_desc,
- kvmalloc_array(db_count,
- sizeof(struct buffer_head *),
- GFP_KERNEL));
+ kvmalloc_objs(struct buffer_head *, db_count, GFP_KERNEL));
if (sbi->s_group_desc == NULL) {
ext4_msg(sb, KERN_ERR, "not enough memory");
return -ENOMEM;
diff --git a/fs/ext4/sysfs.c b/fs/ext4/sysfs.c
index d2ecc1026c0c..cdf78da85861 100644
--- a/fs/ext4/sysfs.c
+++ b/fs/ext4/sysfs.c
@@ -655,7 +655,7 @@ int __init ext4_init_sysfs(void)
if (!ext4_root)
return -ENOMEM;
- ext4_feat = kzalloc(sizeof(*ext4_feat), GFP_KERNEL);
+ ext4_feat = kzalloc_obj(*ext4_feat, GFP_KERNEL);
if (!ext4_feat) {
ret = -ENOMEM;
goto root_err;
diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
index 4ed8ddf2a60b..7bf9ba19a89d 100644
--- a/fs/ext4/xattr.c
+++ b/fs/ext4/xattr.c
@@ -390,7 +390,7 @@ static int ext4_xattr_inode_read(struct inode *ea_inode, void *buf, size_t size)
int i, ret;
if (bh_count > ARRAY_SIZE(bhs_inline)) {
- bhs = kmalloc_array(bh_count, sizeof(*bhs), GFP_NOFS);
+ bhs = kmalloc_objs(*bhs, bh_count, GFP_NOFS);
if (!bhs)
return -ENOMEM;
}
@@ -2618,8 +2618,8 @@ static int ext4_xattr_move_to_block(handle_t *handle, struct inode *inode,
int needs_kvfree = 0;
int error;
- is = kzalloc(sizeof(struct ext4_xattr_ibody_find), GFP_NOFS);
- bs = kzalloc(sizeof(struct ext4_xattr_block_find), GFP_NOFS);
+ is = kzalloc_obj(struct ext4_xattr_ibody_find, GFP_NOFS);
+ bs = kzalloc_obj(struct ext4_xattr_block_find, GFP_NOFS);
b_entry_name = kmalloc(entry->e_name_len + 1, GFP_NOFS);
if (!is || !bs || !b_entry_name) {
error = -ENOMEM;
@@ -2876,9 +2876,8 @@ ext4_expand_inode_array(struct ext4_xattr_inode_array **ea_inode_array,
/*
* Start with 15 inodes, so it fits into a power-of-two size.
*/
- (*ea_inode_array) = kmalloc(
- struct_size(*ea_inode_array, inodes, EIA_MASK),
- GFP_NOFS);
+ (*ea_inode_array) = kmalloc_flex(**ea_inode_array, inodes,
+ EIA_MASK, GFP_NOFS);
if (*ea_inode_array == NULL)
return -ENOMEM;
(*ea_inode_array)->count = 0;
@@ -2886,10 +2885,9 @@ ext4_expand_inode_array(struct ext4_xattr_inode_array **ea_inode_array,
/* expand the array once all 15 + n * 16 slots are full */
struct ext4_xattr_inode_array *new_array = NULL;
- new_array = kmalloc(
- struct_size(*ea_inode_array, inodes,
- (*ea_inode_array)->count + EIA_INCR),
- GFP_NOFS);
+ new_array = kmalloc_flex(**ea_inode_array, inodes,
+ (*ea_inode_array)->count + EIA_INCR,
+ GFP_NOFS);
if (new_array == NULL)
return -ENOMEM;
memcpy(new_array, *ea_inode_array,
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 7c8e6eea60df..2a12fe8eb668 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -3725,7 +3725,7 @@ static struct block_device **f2fs_get_devices(struct super_block *sb,
if (!f2fs_is_multi_device(sbi))
return NULL;
- devs = kmalloc_array(sbi->s_ndevs, sizeof(*devs), GFP_KERNEL);
+ devs = kmalloc_objs(*devs, sbi->s_ndevs, GFP_KERNEL);
if (!devs)
return ERR_PTR(-ENOMEM);
@@ -4501,7 +4501,7 @@ static int read_raw_super_block(struct f2fs_sb_info *sbi,
struct f2fs_super_block *super;
int err = 0;
- super = kzalloc(sizeof(struct f2fs_super_block), GFP_KERNEL);
+ super = kzalloc_obj(struct f2fs_super_block, GFP_KERNEL);
if (!super)
return -ENOMEM;
@@ -4938,7 +4938,7 @@ static int f2fs_fill_super(struct super_block *sb, struct fs_context *fc)
recovery = 0;
/* allocate memory for f2fs-specific super block info */
- sbi = kzalloc(sizeof(struct f2fs_sb_info), GFP_KERNEL);
+ sbi = kzalloc_obj(struct f2fs_sb_info, GFP_KERNEL);
if (!sbi)
return -ENOMEM;
@@ -5509,7 +5509,7 @@ static int f2fs_init_fs_context(struct fs_context *fc)
{
struct f2fs_fs_context *ctx;
- ctx = kzalloc(sizeof(struct f2fs_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct f2fs_fs_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/fat/inode.c b/fs/fat/inode.c
index 59fa90617b5b..175e8e66c29f 100644
--- a/fs/fat/inode.c
+++ b/fs/fat/inode.c
@@ -1554,7 +1554,7 @@ int fat_fill_super(struct super_block *sb, struct fs_context *fc,
* the filesystem, since we're only just about to mount
* it and have no inodes etc active!
*/
- sbi = kzalloc(sizeof(struct msdos_sb_info), GFP_KERNEL);
+ sbi = kzalloc_obj(struct msdos_sb_info, GFP_KERNEL);
if (!sbi)
return -ENOMEM;
sb->s_fs_info = sbi;
@@ -1905,7 +1905,7 @@ int fat_init_fs_context(struct fs_context *fc, bool is_vfat)
{
struct fat_mount_options *opts;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return -ENOMEM;
diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c
index 2acfe3123a72..87dcdd86272b 100644
--- a/fs/fat/namei_vfat.c
+++ b/fs/fat/namei_vfat.c
@@ -663,7 +663,7 @@ static int vfat_add_entry(struct inode *dir, const struct qstr *qname,
if (len == 0)
return -ENOENT;
- slots = kmalloc_array(MSDOS_SLOTS, sizeof(*slots), GFP_NOFS);
+ slots = kmalloc_objs(*slots, MSDOS_SLOTS, GFP_NOFS);
if (slots == NULL)
return -ENOMEM;
diff --git a/fs/fcntl.c b/fs/fcntl.c
index f93dbca08435..c9c73305011e 100644
--- a/fs/fcntl.c
+++ b/fs/fcntl.c
@@ -100,7 +100,7 @@ int file_f_owner_allocate(struct file *file)
if (f_owner)
return 0;
- f_owner = kzalloc(sizeof(struct fown_struct), GFP_KERNEL);
+ f_owner = kzalloc_obj(struct fown_struct, GFP_KERNEL);
if (!f_owner)
return -ENOMEM;
diff --git a/fs/fhandle.c b/fs/fhandle.c
index e15bcf4b0b23..fa4053f9e015 100644
--- a/fs/fhandle.c
+++ b/fs/fhandle.c
@@ -46,8 +46,8 @@ static long do_sys_name_to_handle(const struct path *path,
if (f_handle.handle_bytes > MAX_HANDLE_SZ)
return -EINVAL;
- handle = kzalloc(struct_size(handle, f_handle, f_handle.handle_bytes),
- GFP_KERNEL);
+ handle = kzalloc_flex(*handle, f_handle, f_handle.handle_bytes,
+ GFP_KERNEL);
if (!handle)
return -ENOMEM;
@@ -368,8 +368,8 @@ static int handle_to_path(int mountdirfd, struct file_handle __user *ufh,
if (retval)
goto out_path;
- handle = kmalloc(struct_size(handle, f_handle, f_handle.handle_bytes),
- GFP_KERNEL);
+ handle = kmalloc_flex(*handle, f_handle, f_handle.handle_bytes,
+ GFP_KERNEL);
if (!handle) {
retval = -ENOMEM;
goto out_path;
diff --git a/fs/file.c b/fs/file.c
index 51ddcff0081a..384c83ce768d 100644
--- a/fs/file.c
+++ b/fs/file.c
@@ -212,11 +212,11 @@ static struct fdtable *alloc_fdtable(unsigned int slots_wanted)
if (unlikely(nr > INT_MAX / sizeof(struct file *)))
return ERR_PTR(-EMFILE);
- fdt = kmalloc(sizeof(struct fdtable), GFP_KERNEL_ACCOUNT);
+ fdt = kmalloc_obj(struct fdtable, GFP_KERNEL_ACCOUNT);
if (!fdt)
goto out;
fdt->max_fds = nr;
- data = kvmalloc_array(nr, sizeof(struct file *), GFP_KERNEL_ACCOUNT);
+ data = kvmalloc_objs(struct file *, nr, GFP_KERNEL_ACCOUNT);
if (!data)
goto out_fdt;
fdt->fd = data;
diff --git a/fs/freevxfs/vxfs_fshead.c b/fs/freevxfs/vxfs_fshead.c
index c1174a3f8990..c1d90905b7b2 100644
--- a/fs/freevxfs/vxfs_fshead.c
+++ b/fs/freevxfs/vxfs_fshead.c
@@ -58,7 +58,7 @@ vxfs_getfsh(struct inode *ip, int which)
if (bp) {
struct vxfs_fsh *fhp;
- if (!(fhp = kmalloc(sizeof(*fhp), GFP_KERNEL)))
+ if (!(fhp = kmalloc_obj(*fhp, GFP_KERNEL)))
goto out;
memcpy(fhp, bp->b_data, sizeof(*fhp));
diff --git a/fs/freevxfs/vxfs_super.c b/fs/freevxfs/vxfs_super.c
index fabe60778658..44b4958277ce 100644
--- a/fs/freevxfs/vxfs_super.c
+++ b/fs/freevxfs/vxfs_super.c
@@ -193,7 +193,7 @@ static int vxfs_fill_super(struct super_block *sbp, struct fs_context *fc)
sbp->s_flags |= SB_RDONLY;
- infp = kzalloc(sizeof(*infp), GFP_KERNEL);
+ infp = kzalloc_obj(*infp, GFP_KERNEL);
if (!infp) {
warnf(fc, "vxfs: unable to allocate incore superblock");
return -ENOMEM;
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index 68228bf89b82..22a1996c00cd 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -653,7 +653,7 @@ static void inode_switch_wbs(struct inode *inode, int new_wb_id)
if (atomic_read(&isw_nr_in_flight) > WB_FRN_MAX_IN_FLIGHT)
return;
- isw = kzalloc(struct_size(isw, inodes, 2), GFP_ATOMIC);
+ isw = kzalloc_flex(*isw, inodes, 2, GFP_ATOMIC);
if (!isw)
return;
@@ -724,8 +724,7 @@ bool cleanup_offline_cgwb(struct bdi_writeback *wb)
int nr;
bool restart = false;
- isw = kzalloc(struct_size(isw, inodes, WB_MAX_INODES_PER_ISW),
- GFP_KERNEL);
+ isw = kzalloc_flex(*isw, inodes, WB_MAX_INODES_PER_ISW, GFP_KERNEL);
if (!isw)
return restart;
@@ -1075,7 +1074,7 @@ static void bdi_split_work_to_wbs(struct backing_dev_info *bdi,
nr_pages = wb_split_bdi_pages(wb, base_work->nr_pages);
- work = kmalloc(sizeof(*work), GFP_ATOMIC);
+ work = kmalloc_obj(*work, GFP_ATOMIC);
if (work) {
*work = *base_work;
work->nr_pages = nr_pages;
@@ -1173,7 +1172,7 @@ int cgroup_writeback_by_id(u64 bdi_id, int memcg_id,
dirty = dirty * 10 / 8;
/* issue the writeback work */
- work = kzalloc(sizeof(*work), GFP_NOWAIT);
+ work = kzalloc_obj(*work, GFP_NOWAIT);
if (work) {
work->nr_pages = dirty;
work->sync_mode = WB_SYNC_NONE;
diff --git a/fs/fs_context.c b/fs/fs_context.c
index 81ed94f46cac..a37b0a093505 100644
--- a/fs/fs_context.c
+++ b/fs/fs_context.c
@@ -264,7 +264,7 @@ static struct fs_context *alloc_fs_context(struct file_system_type *fs_type,
struct fs_context *fc;
int ret = -ENOMEM;
- fc = kzalloc(sizeof(struct fs_context), GFP_KERNEL_ACCOUNT);
+ fc = kzalloc_obj(struct fs_context, GFP_KERNEL_ACCOUNT);
if (!fc)
return ERR_PTR(-ENOMEM);
diff --git a/fs/fsopen.c b/fs/fsopen.c
index 614922623675..a23f003ae056 100644
--- a/fs/fsopen.c
+++ b/fs/fsopen.c
@@ -102,7 +102,7 @@ static int fscontext_create_fd(struct fs_context *fc, unsigned int o_flags)
static int fscontext_alloc_log(struct fs_context *fc)
{
- fc->log.log = kzalloc(sizeof(*fc->log.log), GFP_KERNEL);
+ fc->log.log = kzalloc_obj(*fc->log.log, GFP_KERNEL);
if (!fc->log.log)
return -ENOMEM;
refcount_set(&fc->log.log->usage, 1);
diff --git a/fs/fuse/backing.c b/fs/fuse/backing.c
index 4afda419dd14..45a78ee15e3c 100644
--- a/fs/fuse/backing.c
+++ b/fs/fuse/backing.c
@@ -112,7 +112,7 @@ int fuse_backing_open(struct fuse_conn *fc, struct fuse_backing_map *map)
if (backing_sb->s_stack_depth >= fc->max_stack_depth)
goto out_fput;
- fb = kmalloc(sizeof(struct fuse_backing), GFP_KERNEL);
+ fb = kmalloc_obj(struct fuse_backing, GFP_KERNEL);
res = -ENOMEM;
if (!fb)
goto out_fput;
diff --git a/fs/fuse/cuse.c b/fs/fuse/cuse.c
index 28c96961e85d..0aace951541b 100644
--- a/fs/fuse/cuse.c
+++ b/fs/fuse/cuse.c
@@ -362,7 +362,7 @@ static void cuse_process_init_reply(struct fuse_mount *fm,
/* devt determined, create device */
rc = -ENOMEM;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
goto err_region;
@@ -443,7 +443,7 @@ static int cuse_send_init(struct cuse_conn *cc)
if (!folio)
goto err;
- ia = kzalloc(sizeof(*ia), GFP_KERNEL);
+ ia = kzalloc_obj(*ia, GFP_KERNEL);
if (!ia)
goto err_free_folio;
@@ -505,7 +505,7 @@ static int cuse_channel_open(struct inode *inode, struct file *file)
int rc;
/* set up cuse_conn */
- cc = kzalloc(sizeof(*cc), GFP_KERNEL);
+ cc = kzalloc_obj(*cc, GFP_KERNEL);
if (!cc)
return -ENOMEM;
diff --git a/fs/fuse/dax.c b/fs/fuse/dax.c
index ac6d4c1064cc..7d11eac4f629 100644
--- a/fs/fuse/dax.c
+++ b/fs/fuse/dax.c
@@ -257,7 +257,7 @@ static int dmap_removemapping_list(struct inode *inode, unsigned int num,
int ret, i = 0, nr_alloc;
nr_alloc = min_t(unsigned int, num, FUSE_REMOVEMAPPING_MAX_ENTRY);
- remove_one = kmalloc_array(nr_alloc, sizeof(*remove_one), GFP_NOFS);
+ remove_one = kmalloc_objs(*remove_one, nr_alloc, GFP_NOFS);
if (!remove_one)
return -ENOMEM;
@@ -1219,7 +1219,7 @@ static int fuse_dax_mem_range_init(struct fuse_conn_dax *fcd)
__func__, nr_pages, nr_ranges);
for (i = 0; i < nr_ranges; i++) {
- range = kzalloc(sizeof(struct fuse_dax_mapping), GFP_KERNEL);
+ range = kzalloc_obj(struct fuse_dax_mapping, GFP_KERNEL);
ret = -ENOMEM;
if (!range)
goto out_err;
@@ -1255,7 +1255,7 @@ int fuse_dax_conn_alloc(struct fuse_conn *fc, enum fuse_dax_mode dax_mode,
if (!dax_dev)
return 0;
- fcd = kzalloc(sizeof(*fcd), GFP_KERNEL);
+ fcd = kzalloc_obj(*fcd, GFP_KERNEL);
if (!fcd)
return -ENOMEM;
@@ -1277,7 +1277,7 @@ bool fuse_dax_inode_alloc(struct super_block *sb, struct fuse_inode *fi)
fi->dax = NULL;
if (fc->dax) {
- fi->dax = kzalloc(sizeof(*fi->dax), GFP_KERNEL_ACCOUNT);
+ fi->dax = kzalloc_obj(*fi->dax, GFP_KERNEL_ACCOUNT);
if (!fi->dax)
return false;
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index a30c8b57d478..3ec0fa236da0 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -1598,8 +1598,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
if (IS_ERR(fud))
return PTR_ERR(fud);
- bufs = kvmalloc_array(pipe->max_usage, sizeof(struct pipe_buffer),
- GFP_KERNEL);
+ bufs = kvmalloc_objs(struct pipe_buffer, pipe->max_usage, GFP_KERNEL);
if (!bufs)
return -ENOMEM;
@@ -2311,7 +2310,7 @@ static ssize_t fuse_dev_splice_write(struct pipe_inode_info *pipe,
tail = pipe->tail;
count = pipe_occupancy(head, tail);
- bufs = kvmalloc_array(count, sizeof(struct pipe_buffer), GFP_KERNEL);
+ bufs = kvmalloc_objs(struct pipe_buffer, count, GFP_KERNEL);
if (!bufs) {
pipe_unlock(pipe);
return -ENOMEM;
diff --git a/fs/fuse/dev_uring.c b/fs/fuse/dev_uring.c
index 5ceb217ced1b..aee37347b652 100644
--- a/fs/fuse/dev_uring.c
+++ b/fs/fuse/dev_uring.c
@@ -231,12 +231,12 @@ static struct fuse_ring *fuse_uring_create(struct fuse_conn *fc)
struct fuse_ring *res = NULL;
size_t max_payload_size;
- ring = kzalloc(sizeof(*fc->ring), GFP_KERNEL_ACCOUNT);
+ ring = kzalloc_obj(*fc->ring, GFP_KERNEL_ACCOUNT);
if (!ring)
return NULL;
- ring->queues = kcalloc(nr_queues, sizeof(struct fuse_ring_queue *),
- GFP_KERNEL_ACCOUNT);
+ ring->queues = kzalloc_objs(struct fuse_ring_queue *, nr_queues,
+ GFP_KERNEL_ACCOUNT);
if (!ring->queues)
goto out_err;
@@ -274,10 +274,10 @@ static struct fuse_ring_queue *fuse_uring_create_queue(struct fuse_ring *ring,
struct fuse_ring_queue *queue;
struct list_head *pq;
- queue = kzalloc(sizeof(*queue), GFP_KERNEL_ACCOUNT);
+ queue = kzalloc_obj(*queue, GFP_KERNEL_ACCOUNT);
if (!queue)
return NULL;
- pq = kcalloc(FUSE_PQ_HASH_SIZE, sizeof(struct list_head), GFP_KERNEL);
+ pq = kzalloc_objs(struct list_head, FUSE_PQ_HASH_SIZE, GFP_KERNEL);
if (!pq) {
kfree(queue);
return NULL;
@@ -1062,7 +1062,7 @@ fuse_uring_create_ring_ent(struct io_uring_cmd *cmd,
}
err = -ENOMEM;
- ent = kzalloc(sizeof(*ent), GFP_KERNEL_ACCOUNT);
+ ent = kzalloc_obj(*ent, GFP_KERNEL_ACCOUNT);
if (!ent)
return ERR_PTR(err);
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
index f25ee47822ad..7ac6b232ef12 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -473,8 +473,8 @@ static int fuse_dentry_init(struct dentry *dentry)
{
struct fuse_dentry *fd;
- fd = kzalloc(sizeof(struct fuse_dentry),
- GFP_KERNEL_ACCOUNT | __GFP_RECLAIMABLE);
+ fd = kzalloc_obj(struct fuse_dentry,
+ GFP_KERNEL_ACCOUNT | __GFP_RECLAIMABLE);
if (!fd)
return -ENOMEM;
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 80765ab6d04a..e29aecdab97e 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -56,13 +56,13 @@ struct fuse_file *fuse_file_alloc(struct fuse_mount *fm, bool release)
{
struct fuse_file *ff;
- ff = kzalloc(sizeof(struct fuse_file), GFP_KERNEL_ACCOUNT);
+ ff = kzalloc_obj(struct fuse_file, GFP_KERNEL_ACCOUNT);
if (unlikely(!ff))
return NULL;
ff->fm = fm;
if (release) {
- ff->args = kzalloc(sizeof(*ff->args), GFP_KERNEL_ACCOUNT);
+ ff->args = kzalloc_obj(*ff->args, GFP_KERNEL_ACCOUNT);
if (!ff->args) {
kfree(ff);
return NULL;
@@ -684,7 +684,7 @@ static struct fuse_io_args *fuse_io_alloc(struct fuse_io_priv *io,
{
struct fuse_io_args *ia;
- ia = kzalloc(sizeof(*ia), GFP_KERNEL);
+ ia = kzalloc_obj(*ia, GFP_KERNEL);
if (ia) {
ia->io = io;
ia->ap.folios = fuse_folios_alloc(nfolios, GFP_KERNEL,
@@ -2045,7 +2045,7 @@ static struct fuse_writepage_args *fuse_writepage_args_alloc(void)
struct fuse_writepage_args *wpa;
struct fuse_args_pages *ap;
- wpa = kzalloc(sizeof(*wpa), GFP_NOFS);
+ wpa = kzalloc_obj(*wpa, GFP_NOFS);
if (wpa) {
ap = &wpa->ia.ap;
ap->num_folios = 0;
@@ -2834,7 +2834,7 @@ fuse_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
if ((iov_iter_rw(iter) == READ) && (offset >= i_size))
return 0;
- io = kmalloc(sizeof(struct fuse_io_priv), GFP_KERNEL);
+ io = kmalloc_obj(struct fuse_io_priv, GFP_KERNEL);
if (!io)
return -ENOMEM;
spin_lock_init(&io->lock);
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index 819e50d66622..3db0fe0d764b 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@ -74,14 +74,14 @@ static struct file_system_type fuseblk_fs_type;
struct fuse_forget_link *fuse_alloc_forget(void)
{
- return kzalloc(sizeof(struct fuse_forget_link), GFP_KERNEL_ACCOUNT);
+ return kzalloc_obj(struct fuse_forget_link, GFP_KERNEL_ACCOUNT);
}
static struct fuse_submount_lookup *fuse_alloc_submount_lookup(void)
{
struct fuse_submount_lookup *sl;
- sl = kzalloc(sizeof(struct fuse_submount_lookup), GFP_KERNEL_ACCOUNT);
+ sl = kzalloc_obj(struct fuse_submount_lookup, GFP_KERNEL_ACCOUNT);
if (!sl)
return NULL;
sl->forget = fuse_alloc_forget();
@@ -684,7 +684,7 @@ static struct fuse_sync_bucket *fuse_sync_bucket_alloc(void)
{
struct fuse_sync_bucket *bucket;
- bucket = kzalloc(sizeof(*bucket), GFP_KERNEL | __GFP_NOFAIL);
+ bucket = kzalloc_obj(*bucket, GFP_KERNEL | __GFP_NOFAIL);
if (bucket) {
init_waitqueue_head(&bucket->waitq);
/* Initial active count */
@@ -1487,7 +1487,7 @@ static struct fuse_init_args *fuse_new_init(struct fuse_mount *fm)
struct fuse_init_args *ia;
u64 flags;
- ia = kzalloc(sizeof(*ia), GFP_KERNEL | __GFP_NOFAIL);
+ ia = kzalloc_obj(*ia, GFP_KERNEL | __GFP_NOFAIL);
ia->in.major = FUSE_KERNEL_VERSION;
ia->in.minor = FUSE_KERNEL_MINOR_VERSION;
@@ -1618,11 +1618,11 @@ struct fuse_dev *fuse_dev_alloc(void)
struct fuse_dev *fud;
struct list_head *pq;
- fud = kzalloc(sizeof(struct fuse_dev), GFP_KERNEL);
+ fud = kzalloc_obj(struct fuse_dev, GFP_KERNEL);
if (!fud)
return NULL;
- pq = kcalloc(FUSE_PQ_HASH_SIZE, sizeof(struct list_head), GFP_KERNEL);
+ pq = kzalloc_objs(struct list_head, FUSE_PQ_HASH_SIZE, GFP_KERNEL);
if (!pq) {
kfree(fud);
return NULL;
@@ -1780,7 +1780,7 @@ static int fuse_get_tree_submount(struct fs_context *fsc)
struct super_block *sb;
int err;
- fm = kzalloc(sizeof(struct fuse_mount), GFP_KERNEL);
+ fm = kzalloc_obj(struct fuse_mount, GFP_KERNEL);
if (!fm)
return -ENOMEM;
@@ -1981,11 +1981,11 @@ static int fuse_get_tree(struct fs_context *fsc)
struct super_block *sb;
int err;
- fc = kmalloc(sizeof(*fc), GFP_KERNEL);
+ fc = kmalloc_obj(*fc, GFP_KERNEL);
if (!fc)
return -ENOMEM;
- fm = kzalloc(sizeof(*fm), GFP_KERNEL);
+ fm = kzalloc_obj(*fm, GFP_KERNEL);
if (!fm) {
kfree(fc);
return -ENOMEM;
@@ -2047,7 +2047,7 @@ static int fuse_init_fs_context(struct fs_context *fsc)
{
struct fuse_fs_context *ctx;
- ctx = kzalloc(sizeof(struct fuse_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct fuse_fs_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/fuse/virtio_fs.c b/fs/fuse/virtio_fs.c
index b2f6486fe1d5..dc96ee0b952a 100644
--- a/fs/fuse/virtio_fs.c
+++ b/fs/fuse/virtio_fs.c
@@ -839,7 +839,7 @@ static void virtio_fs_requests_done_work(struct work_struct *work)
if (req->args->may_block) {
struct virtio_fs_req_work *w;
- w = kzalloc(sizeof(*w), GFP_NOFS | __GFP_NOFAIL);
+ w = kzalloc_obj(*w, GFP_NOFS | __GFP_NOFAIL);
INIT_WORK(&w->done_work, virtio_fs_complete_req_work);
w->fsvq = fsvq;
w->req = req;
@@ -947,14 +947,14 @@ static int virtio_fs_setup_vqs(struct virtio_device *vdev,
fs->num_request_queues = min_t(unsigned int, fs->num_request_queues,
nr_cpu_ids);
fs->nvqs = VQ_REQUEST + fs->num_request_queues;
- fs->vqs = kcalloc(fs->nvqs, sizeof(fs->vqs[VQ_HIPRIO]), GFP_KERNEL);
+ fs->vqs = kzalloc_objs(fs->vqs[VQ_HIPRIO], fs->nvqs, GFP_KERNEL);
if (!fs->vqs)
return -ENOMEM;
- vqs = kmalloc_array(fs->nvqs, sizeof(vqs[VQ_HIPRIO]), GFP_KERNEL);
+ vqs = kmalloc_objs(vqs[VQ_HIPRIO], fs->nvqs, GFP_KERNEL);
fs->mq_map = kcalloc_node(nr_cpu_ids, sizeof(*fs->mq_map), GFP_KERNEL,
dev_to_node(&vdev->dev));
- vqs_info = kcalloc(fs->nvqs, sizeof(*vqs_info), GFP_KERNEL);
+ vqs_info = kzalloc_objs(*vqs_info, fs->nvqs, GFP_KERNEL);
if (!vqs || !vqs_info || !fs->mq_map) {
ret = -ENOMEM;
goto out;
@@ -1120,7 +1120,7 @@ static int virtio_fs_probe(struct virtio_device *vdev)
struct virtio_fs *fs;
int ret;
- fs = kzalloc(sizeof(*fs), GFP_KERNEL);
+ fs = kzalloc_obj(*fs, GFP_KERNEL);
if (!fs)
return -ENOMEM;
kobject_init(&fs->kobj, &virtio_fs_ktype);
@@ -1240,7 +1240,7 @@ static void virtio_fs_send_forget(struct fuse_iqueue *fiq, struct fuse_forget_li
u64 unique = fuse_get_unique(fiq);
/* Allocate a buffer for the request */
- forget = kmalloc(sizeof(*forget), GFP_NOFS | __GFP_NOFAIL);
+ forget = kmalloc_obj(*forget, GFP_NOFS | __GFP_NOFAIL);
req = &forget->req;
req->ih = (struct fuse_in_header){
@@ -1390,8 +1390,8 @@ static int virtio_fs_enqueue_req(struct virtio_fs_vq *fsvq,
/* Does the sglist fit on the stack? */
total_sgs = sg_count_fuse_req(req);
if (total_sgs > ARRAY_SIZE(stack_sgs)) {
- sgs = kmalloc_array(total_sgs, sizeof(sgs[0]), gfp);
- sg = kmalloc_array(total_sgs, sizeof(sg[0]), gfp);
+ sgs = kmalloc_objs(sgs[0], total_sgs, gfp);
+ sg = kmalloc_objs(sg[0], total_sgs, gfp);
if (!sgs || !sg) {
ret = -ENOMEM;
goto out;
@@ -1684,11 +1684,11 @@ static int virtio_fs_get_tree(struct fs_context *fsc)
goto out_err;
err = -ENOMEM;
- fc = kzalloc(sizeof(struct fuse_conn), GFP_KERNEL);
+ fc = kzalloc_obj(struct fuse_conn, GFP_KERNEL);
if (!fc)
goto out_err;
- fm = kzalloc(sizeof(struct fuse_mount), GFP_KERNEL);
+ fm = kzalloc_obj(struct fuse_mount, GFP_KERNEL);
if (!fm)
goto out_err;
@@ -1743,7 +1743,7 @@ static int virtio_fs_init_fs_context(struct fs_context *fsc)
if (fsc->purpose == FS_CONTEXT_FOR_SUBMOUNT)
return fuse_init_fs_context_submount(fsc);
- ctx = kzalloc(sizeof(struct fuse_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct fuse_fs_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
fsc->fs_private = ctx;
diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
index fdcac8e3f2ba..1cd8ec0bce83 100644
--- a/fs/gfs2/bmap.c
+++ b/fs/gfs2/bmap.c
@@ -2225,7 +2225,7 @@ static int gfs2_add_jextent(struct gfs2_jdesc *jd, u64 lblock, u64 dblock, u64 b
}
}
- jext = kzalloc(sizeof(struct gfs2_journal_extent), GFP_NOFS);
+ jext = kzalloc_obj(struct gfs2_journal_extent, GFP_NOFS);
if (jext == NULL)
return -ENOMEM;
jext->dblock = dblock;
diff --git a/fs/gfs2/dir.c b/fs/gfs2/dir.c
index 509e2f0d97e7..022dbb31e0d9 100644
--- a/fs/gfs2/dir.c
+++ b/fs/gfs2/dir.c
@@ -1593,7 +1593,7 @@ int gfs2_dir_read(struct inode *inode, struct dir_context *ctx,
error = -ENOMEM;
/* 96 is max number of dirents which can be stuffed into an inode */
- darr = kmalloc_array(96, sizeof(struct gfs2_dirent *), GFP_NOFS);
+ darr = kmalloc_objs(struct gfs2_dirent *, 96, GFP_NOFS);
if (darr) {
g.pdent = (const struct gfs2_dirent **)darr;
g.offset = 0;
diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c
index 3e061e8115ec..9704f1ef6ad1 100644
--- a/fs/gfs2/file.c
+++ b/fs/gfs2/file.c
@@ -637,7 +637,7 @@ int gfs2_open_common(struct inode *inode, struct file *file)
file->f_mode |= FMODE_CAN_ODIRECT;
}
- fp = kzalloc(sizeof(struct gfs2_file), GFP_NOFS);
+ fp = kzalloc_obj(struct gfs2_file, GFP_NOFS);
if (!fp)
return -ENOMEM;
@@ -1029,7 +1029,7 @@ static ssize_t gfs2_file_buffered_write(struct kiocb *iocb,
*/
if (inode == sdp->sd_rindex) {
- statfs_gh = kmalloc(sizeof(*statfs_gh), GFP_NOFS);
+ statfs_gh = kmalloc_obj(*statfs_gh, GFP_NOFS);
if (!statfs_gh)
return -ENOMEM;
}
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
index 6fb2731e8be1..2acbabccc8ad 100644
--- a/fs/gfs2/glock.c
+++ b/fs/gfs2/glock.c
@@ -1764,8 +1764,7 @@ int gfs2_glock_nq_m(unsigned int num_gh, struct gfs2_holder *ghs)
default:
if (num_gh <= 4)
break;
- pph = kmalloc_array(num_gh, sizeof(struct gfs2_holder *),
- GFP_NOFS);
+ pph = kmalloc_objs(struct gfs2_holder *, num_gh, GFP_NOFS);
if (!pph)
return -ENOMEM;
}
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index c7d57de7c8f0..f3f649fc5cb1 100644
--- a/fs/gfs2/ops_fstype.c
+++ b/fs/gfs2/ops_fstype.c
@@ -76,7 +76,7 @@ static struct gfs2_sbd *init_sbd(struct super_block *sb)
{
struct gfs2_sbd *sdp;
- sdp = kzalloc(sizeof(struct gfs2_sbd), GFP_KERNEL);
+ sdp = kzalloc_obj(struct gfs2_sbd, GFP_KERNEL);
if (!sdp)
return NULL;
@@ -562,7 +562,7 @@ static int gfs2_jindex_hold(struct gfs2_sbd *sdp, struct gfs2_holder *ji_gh)
break;
error = -ENOMEM;
- jd = kzalloc(sizeof(struct gfs2_jdesc), GFP_KERNEL);
+ jd = kzalloc_obj(struct gfs2_jdesc, GFP_KERNEL);
if (!jd)
break;
@@ -631,7 +631,7 @@ static int init_statfs(struct gfs2_sbd *sdp)
* per_node metafs directory and save it in the sdp->sd_sc_inodes_list. */
list_for_each_entry(jd, &sdp->sd_jindex_list, jd_list) {
struct local_statfs_inode *lsi =
- kmalloc(sizeof(struct local_statfs_inode), GFP_NOFS);
+ kmalloc_obj(struct local_statfs_inode, GFP_NOFS);
if (!lsi) {
error = -ENOMEM;
goto free_local;
@@ -1637,7 +1637,7 @@ static int gfs2_init_fs_context(struct fs_context *fc)
{
struct gfs2_args *args;
- args = kmalloc(sizeof(*args), GFP_KERNEL);
+ args = kmalloc_obj(*args, GFP_KERNEL);
if (args == NULL)
return -ENOMEM;
diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
index 1c3455093ae8..af3dfeed62fe 100644
--- a/fs/gfs2/quota.c
+++ b/fs/gfs2/quota.c
@@ -908,7 +908,7 @@ static int do_sync(unsigned int num_qd, struct gfs2_quota_data **qda,
gfs2_write_calc_reserv(ip, sizeof(struct gfs2_quota),
&data_blocks, &ind_blocks);
- ghs = kmalloc_array(num_qd, sizeof(struct gfs2_holder), GFP_NOFS);
+ ghs = kmalloc_objs(struct gfs2_holder, num_qd, GFP_NOFS);
if (!ghs)
return -ENOMEM;
@@ -1318,7 +1318,7 @@ int gfs2_quota_sync(struct super_block *sb, int type)
if (sb_rdonly(sdp->sd_vfs))
return 0;
- qda = kcalloc(max_qd, sizeof(struct gfs2_quota_data *), GFP_KERNEL);
+ qda = kzalloc_objs(struct gfs2_quota_data *, max_qd, GFP_KERNEL);
if (!qda)
return -ENOMEM;
diff --git a/fs/gfs2/recovery.c b/fs/gfs2/recovery.c
index 8c8202c68b64..616c46aa3434 100644
--- a/fs/gfs2/recovery.c
+++ b/fs/gfs2/recovery.c
@@ -69,7 +69,7 @@ int gfs2_revoke_add(struct gfs2_jdesc *jd, u64 blkno, unsigned int where)
return 0;
}
- rr = kmalloc(sizeof(struct gfs2_revoke_replay), GFP_NOFS);
+ rr = kmalloc_obj(struct gfs2_revoke_replay, GFP_NOFS);
if (!rr)
return -ENOMEM;
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index 8a97ca734afc..441774cc07ce 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -763,7 +763,7 @@ static int compute_bitstructs(struct gfs2_rgrpd *rgd)
if (!length)
return -EINVAL;
- rgd->rd_bits = kcalloc(length, sizeof(struct gfs2_bitmap), GFP_NOFS);
+ rgd->rd_bits = kzalloc_objs(struct gfs2_bitmap, length, GFP_NOFS);
if (!rgd->rd_bits)
return -ENOMEM;
@@ -2699,8 +2699,8 @@ void gfs2_rlist_add(struct gfs2_inode *ip, struct gfs2_rgrp_list *rlist,
if (rlist->rl_rgrps == rlist->rl_space) {
new_space = rlist->rl_space + 10;
- tmp = kcalloc(new_space, sizeof(struct gfs2_rgrpd *),
- GFP_NOFS | __GFP_NOFAIL);
+ tmp = kzalloc_objs(struct gfs2_rgrpd *, new_space,
+ GFP_NOFS | __GFP_NOFAIL);
if (rlist->rl_rgd) {
memcpy(tmp, rlist->rl_rgd,
@@ -2731,9 +2731,8 @@ void gfs2_rlist_alloc(struct gfs2_rgrp_list *rlist,
{
unsigned int x;
- rlist->rl_ghs = kmalloc_array(rlist->rl_rgrps,
- sizeof(struct gfs2_holder),
- GFP_NOFS | __GFP_NOFAIL);
+ rlist->rl_ghs = kmalloc_objs(struct gfs2_holder, rlist->rl_rgrps,
+ GFP_NOFS | __GFP_NOFAIL);
for (x = 0; x < rlist->rl_rgrps; x++)
gfs2_holder_init(rlist->rl_rgd[x]->rd_gl, state, flags,
&rlist->rl_ghs[x]);
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c
index d96160636161..9a655588c0c5 100644
--- a/fs/gfs2/super.c
+++ b/fs/gfs2/super.c
@@ -336,7 +336,7 @@ static int gfs2_lock_fs_check_clean(struct gfs2_sbd *sdp)
*/
list_for_each_entry(jd, &sdp->sd_jindex_list, jd_list) {
- lfcc = kmalloc(sizeof(struct lfcc), GFP_KERNEL);
+ lfcc = kmalloc_obj(struct lfcc, GFP_KERNEL);
if (!lfcc) {
error = -ENOMEM;
goto out;
@@ -860,7 +860,7 @@ static int gfs2_statfs_slow(struct gfs2_sbd *sdp, struct gfs2_statfs_change_host
int error = 0, err;
memset(sc, 0, sizeof(struct gfs2_statfs_change_host));
- gha = kmalloc_array(slots, sizeof(struct gfs2_holder), GFP_KERNEL);
+ gha = kmalloc_objs(struct gfs2_holder, slots, GFP_KERNEL);
if (!gha)
return -ENOMEM;
for (x = 0; x < slots; x++)
diff --git a/fs/gfs2/xattr.c b/fs/gfs2/xattr.c
index df9c93de94c7..b9f48d6f10a9 100644
--- a/fs/gfs2/xattr.c
+++ b/fs/gfs2/xattr.c
@@ -467,7 +467,7 @@ static int gfs2_iter_unstuffed(struct gfs2_inode *ip, struct gfs2_ea_header *ea,
unsigned char *pos;
unsigned cp_size;
- bh = kcalloc(nptrs, sizeof(struct buffer_head *), GFP_NOFS);
+ bh = kzalloc_objs(struct buffer_head *, nptrs, GFP_NOFS);
if (!bh)
return -ENOMEM;
diff --git a/fs/hfs/btree.c b/fs/hfs/btree.c
index 7bc425283d49..b5ee0e072935 100644
--- a/fs/hfs/btree.c
+++ b/fs/hfs/btree.c
@@ -28,7 +28,7 @@ struct hfs_btree *hfs_btree_open(struct super_block *sb, u32 id, btree_keycmp ke
sector_t start_block;
loff_t offset;
- tree = kzalloc(sizeof(*tree), GFP_KERNEL);
+ tree = kzalloc_obj(*tree, GFP_KERNEL);
if (!tree)
return NULL;
diff --git a/fs/hfs/dir.c b/fs/hfs/dir.c
index 0c615c078650..80277979c09c 100644
--- a/fs/hfs/dir.c
+++ b/fs/hfs/dir.c
@@ -148,7 +148,7 @@ static int hfs_readdir(struct file *file, struct dir_context *ctx)
}
rd = file->private_data;
if (!rd) {
- rd = kmalloc(sizeof(struct hfs_readdir_data), GFP_KERNEL);
+ rd = kmalloc_obj(struct hfs_readdir_data, GFP_KERNEL);
if (!rd) {
err = -ENOMEM;
goto out;
diff --git a/fs/hfs/super.c b/fs/hfs/super.c
index 97546d6b41f4..78dc9dabb0c1 100644
--- a/fs/hfs/super.c
+++ b/fs/hfs/super.c
@@ -411,7 +411,7 @@ static int hfs_init_fs_context(struct fs_context *fc)
{
struct hfs_sb_info *hsb;
- hsb = kzalloc(sizeof(struct hfs_sb_info), GFP_KERNEL);
+ hsb = kzalloc_obj(struct hfs_sb_info, GFP_KERNEL);
if (!hsb)
return -ENOMEM;
diff --git a/fs/hfsplus/btree.c b/fs/hfsplus/btree.c
index 229f25dc7c49..5016d97290c8 100644
--- a/fs/hfsplus/btree.c
+++ b/fs/hfsplus/btree.c
@@ -139,7 +139,7 @@ struct hfs_btree *hfs_btree_open(struct super_block *sb, u32 id)
struct page *page;
unsigned int size;
- tree = kzalloc(sizeof(*tree), GFP_KERNEL);
+ tree = kzalloc_obj(*tree, GFP_KERNEL);
if (!tree)
return NULL;
diff --git a/fs/hfsplus/dir.c b/fs/hfsplus/dir.c
index ca5f74a140ec..9998b28aa8f7 100644
--- a/fs/hfsplus/dir.c
+++ b/fs/hfsplus/dir.c
@@ -263,7 +263,7 @@ static int hfsplus_readdir(struct file *file, struct dir_context *ctx)
}
rd = file->private_data;
if (!rd) {
- rd = kmalloc(sizeof(struct hfsplus_readdir_data), GFP_KERNEL);
+ rd = kmalloc_obj(struct hfsplus_readdir_data, GFP_KERNEL);
if (!rd) {
err = -ENOMEM;
goto out;
diff --git a/fs/hfsplus/super.c b/fs/hfsplus/super.c
index 592d8fbb748c..f60f37caea65 100644
--- a/fs/hfsplus/super.c
+++ b/fs/hfsplus/super.c
@@ -698,7 +698,7 @@ static int hfsplus_init_fs_context(struct fs_context *fc)
{
struct hfsplus_sb_info *sbi;
- sbi = kzalloc(sizeof(struct hfsplus_sb_info), GFP_KERNEL);
+ sbi = kzalloc_obj(struct hfsplus_sb_info, GFP_KERNEL);
if (!sbi)
return -ENOMEM;
diff --git a/fs/hfsplus/unicode_test.c b/fs/hfsplus/unicode_test.c
index 5a7a6859efe3..c162c0fea4a8 100644
--- a/fs/hfsplus/unicode_test.c
+++ b/fs/hfsplus/unicode_test.c
@@ -22,7 +22,7 @@ static struct test_mock_string_env *setup_mock_str_env(u32 buf_size)
{
struct test_mock_string_env *env;
- env = kzalloc(sizeof(struct test_mock_string_env), GFP_KERNEL);
+ env = kzalloc_obj(struct test_mock_string_env, GFP_KERNEL);
if (!env)
return NULL;
@@ -393,7 +393,7 @@ static struct test_mock_sb *setup_mock_sb(void)
{
struct test_mock_sb *ptr;
- ptr = kzalloc(sizeof(struct test_mock_sb), GFP_KERNEL);
+ ptr = kzalloc_obj(struct test_mock_sb, GFP_KERNEL);
if (!ptr)
return NULL;
diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c
index 51d26aa2b93e..2c463a8c0ab4 100644
--- a/fs/hostfs/hostfs_kern.c
+++ b/fs/hostfs/hostfs_kern.c
@@ -1047,7 +1047,7 @@ static int hostfs_init_fs_context(struct fs_context *fc)
{
struct hostfs_fs_info *fsi;
- fsi = kzalloc(sizeof(*fsi), GFP_KERNEL);
+ fsi = kzalloc_obj(*fsi, GFP_KERNEL);
if (!fsi)
return -ENOMEM;
diff --git a/fs/hpfs/dnode.c b/fs/hpfs/dnode.c
index 4ada525c5c43..dde764ebe246 100644
--- a/fs/hpfs/dnode.c
+++ b/fs/hpfs/dnode.c
@@ -33,7 +33,7 @@ int hpfs_add_pos(struct inode *inode, loff_t *pos)
if (hpfs_inode->i_rddir_off[i] == pos)
return 0;
if (!(i&0x0f)) {
- ppos = kmalloc_array(i + 0x11, sizeof(loff_t *), GFP_NOFS);
+ ppos = kmalloc_objs(loff_t *, i + 0x11, GFP_NOFS);
if (!ppos) {
pr_err("out of memory for position list\n");
return -ENOMEM;
diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c
index 371aa6de8075..0f17b7710ae5 100644
--- a/fs/hpfs/super.c
+++ b/fs/hpfs/super.c
@@ -513,7 +513,7 @@ static int hpfs_fill_super(struct super_block *s, struct fs_context *fc)
struct hpfs_dirent *de = NULL;
struct quad_buffer_head qbh;
- sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
+ sbi = kzalloc_obj(*sbi, GFP_KERNEL);
if (!sbi) {
return -ENOMEM;
}
@@ -715,7 +715,7 @@ static int hpfs_init_fs_context(struct fs_context *fc)
{
struct hpfs_fc_context *ctx;
- ctx = kzalloc(sizeof(struct hpfs_fc_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct hpfs_fc_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index 95a5b23b4808..8e2c1fbdfd86 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -1407,7 +1407,7 @@ hugetlbfs_fill_super(struct super_block *sb, struct fs_context *fc)
struct hugetlbfs_fs_context *ctx = fc->fs_private;
struct hugetlbfs_sb_info *sbinfo;
- sbinfo = kmalloc(sizeof(struct hugetlbfs_sb_info), GFP_KERNEL);
+ sbinfo = kmalloc_obj(struct hugetlbfs_sb_info, GFP_KERNEL);
if (!sbinfo)
return -ENOMEM;
sb->s_fs_info = sbinfo;
@@ -1478,7 +1478,7 @@ static int hugetlbfs_init_fs_context(struct fs_context *fc)
{
struct hugetlbfs_fs_context *ctx;
- ctx = kzalloc(sizeof(struct hugetlbfs_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct hugetlbfs_fs_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c
index 1fe19b4ee2f4..a0c46aadb97d 100644
--- a/fs/iomap/buffered-io.c
+++ b/fs/iomap/buffered-io.c
@@ -229,8 +229,7 @@ static struct iomap_folio_state *ifs_alloc(struct inode *inode,
* The first state tracks per-block uptodate and the
* second tracks per-block dirty state.
*/
- ifs = kzalloc(struct_size(ifs, state,
- BITS_TO_LONGS(2 * nr_blocks)), gfp);
+ ifs = kzalloc_flex(*ifs, state, BITS_TO_LONGS(2 * nr_blocks), gfp);
if (!ifs)
return ifs;
diff --git a/fs/iomap/direct-io.c b/fs/iomap/direct-io.c
index 8c1fd7573aee..438c00e526c6 100644
--- a/fs/iomap/direct-io.c
+++ b/fs/iomap/direct-io.c
@@ -677,7 +677,7 @@ __iomap_dio_rw(struct kiocb *iocb, struct iov_iter *iter,
if (!iomi.len)
return NULL;
- dio = kmalloc(sizeof(*dio), GFP_KERNEL);
+ dio = kmalloc_obj(*dio, GFP_KERNEL);
if (!dio)
return ERR_PTR(-ENOMEM);
diff --git a/fs/isofs/compress.c b/fs/isofs/compress.c
index 5f3b6da0e022..4aa8f0734456 100644
--- a/fs/isofs/compress.c
+++ b/fs/isofs/compress.c
@@ -75,7 +75,7 @@ static loff_t zisofs_uncompress_block(struct inode *inode, loff_t block_start,
/* Because zlib is not thread-safe, do all the I/O at the top. */
blocknum = block_start >> bufshift;
- bhs = kcalloc(needblocks + 1, sizeof(*bhs), GFP_KERNEL);
+ bhs = kzalloc_objs(*bhs, needblocks + 1, GFP_KERNEL);
if (!bhs) {
*errp = -ENOMEM;
return 0;
@@ -333,8 +333,9 @@ static int zisofs_read_folio(struct file *file, struct folio *folio)
full_page = 0;
pcount = 1;
}
- pages = kcalloc(max_t(unsigned int, zisofs_pages_per_cblock, 1),
- sizeof(*pages), GFP_KERNEL);
+ pages = kzalloc_objs(*pages,
+ max_t(unsigned int, zisofs_pages_per_cblock, 1),
+ GFP_KERNEL);
if (!pages) {
folio_unlock(folio);
return -ENOMEM;
diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c
index b7cbe126faf3..6597d0224835 100644
--- a/fs/isofs/inode.c
+++ b/fs/isofs/inode.c
@@ -589,7 +589,7 @@ static int isofs_fill_super(struct super_block *s, struct fs_context *fc)
unsigned int vol_desc_start;
int silent = fc->sb_flags & SB_SILENT;
- sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
+ sbi = kzalloc_obj(*sbi, GFP_KERNEL);
if (!sbi)
return -ENOMEM;
s->s_fs_info = sbi;
@@ -1557,7 +1557,7 @@ static int isofs_init_fs_context(struct fs_context *fc)
{
struct isofs_options *opt;
- opt = kzalloc(sizeof(*opt), GFP_KERNEL);
+ opt = kzalloc_obj(*opt, GFP_KERNEL);
if (!opt)
return -ENOMEM;
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
index c973162d5b31..05ea1e5af80d 100644
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
@@ -1175,7 +1175,7 @@ static int jbd2_seq_info_open(struct inode *inode, struct file *file)
struct jbd2_stats_proc_session *s;
int rc, size;
- s = kmalloc(sizeof(*s), GFP_KERNEL);
+ s = kmalloc_obj(*s, GFP_KERNEL);
if (s == NULL)
return -ENOMEM;
size = sizeof(struct transaction_stats_s);
@@ -1525,7 +1525,7 @@ static journal_t *journal_init_common(struct block_device *bdev,
int err;
int n;
- journal = kzalloc(sizeof(*journal), GFP_KERNEL);
+ journal = kzalloc_obj(*journal, GFP_KERNEL);
if (!journal)
return ERR_PTR(-ENOMEM);
@@ -1578,8 +1578,7 @@ static journal_t *journal_init_common(struct block_device *bdev,
n = journal->j_blocksize / jbd2_min_tag_size();
journal->j_wbufsize = n;
journal->j_fc_wbuf = NULL;
- journal->j_wbuf = kmalloc_array(n, sizeof(struct buffer_head *),
- GFP_KERNEL);
+ journal->j_wbuf = kmalloc_objs(struct buffer_head *, n, GFP_KERNEL);
if (!journal->j_wbuf)
goto err_cleanup;
@@ -2269,8 +2268,8 @@ jbd2_journal_initialize_fast_commit(journal_t *journal)
/* Are we called twice? */
WARN_ON(journal->j_fc_wbuf != NULL);
- journal->j_fc_wbuf = kmalloc_array(num_fc_blks,
- sizeof(struct buffer_head *), GFP_KERNEL);
+ journal->j_fc_wbuf = kmalloc_objs(struct buffer_head *, num_fc_blks,
+ GFP_KERNEL);
if (!journal->j_fc_wbuf)
return -ENOMEM;
diff --git a/fs/jbd2/revoke.c b/fs/jbd2/revoke.c
index 1467f6790747..3aa9f82a8ef7 100644
--- a/fs/jbd2/revoke.c
+++ b/fs/jbd2/revoke.c
@@ -231,7 +231,7 @@ struct jbd2_revoke_table_s *jbd2_journal_init_revoke_table(int hash_size)
table->hash_size = hash_size;
table->hash_shift = shift;
table->hash_table =
- kvmalloc_array(hash_size, sizeof(struct list_head), GFP_KERNEL);
+ kvmalloc_objs(struct list_head, hash_size, GFP_KERNEL);
if (!table->hash_table) {
kmem_cache_free(jbd2_revoke_table_cache, table);
table = NULL;
diff --git a/fs/jffs2/acl.c b/fs/jffs2/acl.c
index 888a7ceb6479..b7ece06cad80 100644
--- a/fs/jffs2/acl.c
+++ b/fs/jffs2/acl.c
@@ -133,8 +133,7 @@ static void *jffs2_acl_to_medium(const struct posix_acl *acl, size_t *size)
size_t i;
*size = jffs2_acl_size(acl->a_count);
- header = kmalloc(struct_size(header, a_entries, acl->a_count),
- GFP_KERNEL);
+ header = kmalloc_flex(*header, a_entries, acl->a_count, GFP_KERNEL);
if (!header)
return ERR_PTR(-ENOMEM);
header->a_version = cpu_to_je32(JFFS2_ACL_VERSION);
diff --git a/fs/jffs2/erase.c b/fs/jffs2/erase.c
index fda9f4d6093f..d451c8a1fdac 100644
--- a/fs/jffs2/erase.c
+++ b/fs/jffs2/erase.c
@@ -43,7 +43,7 @@ static void jffs2_erase_block(struct jffs2_sb_info *c,
jffs2_dbg(1, "%s(): erase block %#08x (range %#08x-%#08x)\n",
__func__,
jeb->offset, jeb->offset, jeb->offset + c->sector_size);
- instr = kzalloc(sizeof(struct erase_info), GFP_KERNEL);
+ instr = kzalloc_obj(struct erase_info, GFP_KERNEL);
if (!instr) {
pr_warn("kzalloc for struct erase_info in jffs2_erase_block failed. Refiling block for later\n");
mutex_lock(&c->erase_free_sem);
diff --git a/fs/jffs2/fs.c b/fs/jffs2/fs.c
index 764bba8ba999..ff469d44b92f 100644
--- a/fs/jffs2/fs.c
+++ b/fs/jffs2/fs.c
@@ -562,7 +562,8 @@ int jffs2_do_fill_super(struct super_block *sb, struct fs_context *fc)
return ret;
c->inocache_hashsize = calculate_inocache_hashsize(c->flash_size);
- c->inocache_list = kcalloc(c->inocache_hashsize, sizeof(struct jffs2_inode_cache *), GFP_KERNEL);
+ c->inocache_list = kzalloc_objs(struct jffs2_inode_cache *,
+ c->inocache_hashsize, GFP_KERNEL);
if (!c->inocache_list) {
ret = -ENOMEM;
goto out_wbuf;
diff --git a/fs/jffs2/readinode.c b/fs/jffs2/readinode.c
index f987f78a894e..eeca922d4da4 100644
--- a/fs/jffs2/readinode.c
+++ b/fs/jffs2/readinode.c
@@ -1392,7 +1392,7 @@ int jffs2_do_read_inode(struct jffs2_sb_info *c, struct jffs2_inode_info *f,
int jffs2_do_crccheck_inode(struct jffs2_sb_info *c, struct jffs2_inode_cache *ic)
{
struct jffs2_raw_inode n;
- struct jffs2_inode_info *f = kzalloc(sizeof(*f), GFP_KERNEL);
+ struct jffs2_inode_info *f = kzalloc_obj(*f, GFP_KERNEL);
int ret;
if (!f)
diff --git a/fs/jffs2/scan.c b/fs/jffs2/scan.c
index 62879c218d4b..39063e2131d6 100644
--- a/fs/jffs2/scan.c
+++ b/fs/jffs2/scan.c
@@ -132,7 +132,7 @@ int jffs2_scan_medium(struct jffs2_sb_info *c)
}
if (jffs2_sum_active()) {
- s = kzalloc(sizeof(struct jffs2_summary), GFP_KERNEL);
+ s = kzalloc_obj(struct jffs2_summary, GFP_KERNEL);
if (!s) {
JFFS2_WARNING("Can't allocate memory for summary\n");
ret = -ENOMEM;
diff --git a/fs/jffs2/summary.c b/fs/jffs2/summary.c
index d83372d3e1a0..b9df829eff56 100644
--- a/fs/jffs2/summary.c
+++ b/fs/jffs2/summary.c
@@ -27,7 +27,7 @@ int jffs2_sum_init(struct jffs2_sb_info *c)
{
uint32_t sum_size = min_t(uint32_t, c->sector_size, MAX_SUMMARY_SIZE);
- c->summary = kzalloc(sizeof(struct jffs2_summary), GFP_KERNEL);
+ c->summary = kzalloc_obj(struct jffs2_summary, GFP_KERNEL);
if (!c->summary) {
JFFS2_WARNING("Can't allocate memory for summary information!\n");
@@ -115,7 +115,8 @@ int jffs2_sum_add_padding_mem(struct jffs2_summary *s, uint32_t size)
int jffs2_sum_add_inode_mem(struct jffs2_summary *s, struct jffs2_raw_inode *ri,
uint32_t ofs)
{
- struct jffs2_sum_inode_mem *temp = kmalloc(sizeof(struct jffs2_sum_inode_mem), GFP_KERNEL);
+ struct jffs2_sum_inode_mem *temp = kmalloc_obj(struct jffs2_sum_inode_mem,
+ GFP_KERNEL);
if (!temp)
return -ENOMEM;
@@ -159,7 +160,7 @@ int jffs2_sum_add_xattr_mem(struct jffs2_summary *s, struct jffs2_raw_xattr *rx,
{
struct jffs2_sum_xattr_mem *temp;
- temp = kmalloc(sizeof(struct jffs2_sum_xattr_mem), GFP_KERNEL);
+ temp = kmalloc_obj(struct jffs2_sum_xattr_mem, GFP_KERNEL);
if (!temp)
return -ENOMEM;
@@ -177,7 +178,7 @@ int jffs2_sum_add_xref_mem(struct jffs2_summary *s, struct jffs2_raw_xref *rr, u
{
struct jffs2_sum_xref_mem *temp;
- temp = kmalloc(sizeof(struct jffs2_sum_xref_mem), GFP_KERNEL);
+ temp = kmalloc_obj(struct jffs2_sum_xref_mem, GFP_KERNEL);
if (!temp)
return -ENOMEM;
@@ -263,7 +264,8 @@ int jffs2_sum_add_kvec(struct jffs2_sb_info *c, const struct kvec *invecs,
switch (je16_to_cpu(node->u.nodetype)) {
case JFFS2_NODETYPE_INODE: {
struct jffs2_sum_inode_mem *temp =
- kmalloc(sizeof(struct jffs2_sum_inode_mem), GFP_KERNEL);
+ kmalloc_obj(struct jffs2_sum_inode_mem,
+ GFP_KERNEL);
if (!temp)
goto no_mem;
@@ -314,7 +316,8 @@ int jffs2_sum_add_kvec(struct jffs2_sb_info *c, const struct kvec *invecs,
#ifdef CONFIG_JFFS2_FS_XATTR
case JFFS2_NODETYPE_XATTR: {
struct jffs2_sum_xattr_mem *temp;
- temp = kmalloc(sizeof(struct jffs2_sum_xattr_mem), GFP_KERNEL);
+ temp = kmalloc_obj(struct jffs2_sum_xattr_mem,
+ GFP_KERNEL);
if (!temp)
goto no_mem;
@@ -329,7 +332,8 @@ int jffs2_sum_add_kvec(struct jffs2_sb_info *c, const struct kvec *invecs,
}
case JFFS2_NODETYPE_XREF: {
struct jffs2_sum_xref_mem *temp;
- temp = kmalloc(sizeof(struct jffs2_sum_xref_mem), GFP_KERNEL);
+ temp = kmalloc_obj(struct jffs2_sum_xref_mem,
+ GFP_KERNEL);
if (!temp)
goto no_mem;
temp->nodetype = node->r.nodetype;
diff --git a/fs/jffs2/super.c b/fs/jffs2/super.c
index 4545f885c41e..48fbf1594ce8 100644
--- a/fs/jffs2/super.c
+++ b/fs/jffs2/super.c
@@ -311,7 +311,7 @@ static int jffs2_init_fs_context(struct fs_context *fc)
{
struct jffs2_sb_info *ctx;
- ctx = kzalloc(sizeof(struct jffs2_sb_info), GFP_KERNEL);
+ ctx = kzalloc_obj(struct jffs2_sb_info, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/jffs2/wbuf.c b/fs/jffs2/wbuf.c
index 3ab3f0ff7ebb..9775b9b84504 100644
--- a/fs/jffs2/wbuf.c
+++ b/fs/jffs2/wbuf.c
@@ -92,7 +92,7 @@ static void jffs2_wbuf_dirties_inode(struct jffs2_sb_info *c, uint32_t ino)
if (jffs2_wbuf_pending_for_ino(c, ino))
return;
- new = kmalloc(sizeof(*new), GFP_KERNEL);
+ new = kmalloc_obj(*new, GFP_KERNEL);
if (!new) {
jffs2_dbg(1, "No memory to allocate inodirty. Fallback to all considered dirty\n");
jffs2_clear_wbuf_ino_list(c);
diff --git a/fs/jffs2/xattr.c b/fs/jffs2/xattr.c
index defb4162c3d5..4452e6837b34 100644
--- a/fs/jffs2/xattr.c
+++ b/fs/jffs2/xattr.c
@@ -784,8 +784,8 @@ int jffs2_build_xattr_subsystem(struct jffs2_sb_info *c)
BUG_ON(!(c->flags & JFFS2_SB_FLAG_BUILDING));
- xref_tmphash = kcalloc(XREF_TMPHASH_SIZE,
- sizeof(struct jffs2_xattr_ref *), GFP_KERNEL);
+ xref_tmphash = kzalloc_objs(struct jffs2_xattr_ref *, XREF_TMPHASH_SIZE,
+ GFP_KERNEL);
if (!xref_tmphash)
return -ENOMEM;
diff --git a/fs/jfs/jfs_dmap.c b/fs/jfs/jfs_dmap.c
index cdfa699cd7c8..368fcdd8c328 100644
--- a/fs/jfs/jfs_dmap.c
+++ b/fs/jfs/jfs_dmap.c
@@ -161,7 +161,7 @@ int dbMount(struct inode *ipbmap)
* allocate/initialize the in-memory bmap descriptor
*/
/* allocate memory for the in-memory bmap descriptor */
- bmp = kmalloc(sizeof(struct bmap), GFP_KERNEL);
+ bmp = kmalloc_obj(struct bmap, GFP_KERNEL);
if (bmp == NULL)
return -ENOMEM;
@@ -1593,7 +1593,7 @@ s64 dbDiscardAG(struct inode *ip, int agno, s64 minlen)
max_ranges = nblocks;
do_div(max_ranges, minlen);
range_cnt = min_t(u64, max_ranges + 1, 32 * 1024);
- totrim = kmalloc_array(range_cnt, sizeof(struct range2trim), GFP_NOFS);
+ totrim = kmalloc_objs(struct range2trim, range_cnt, GFP_NOFS);
if (totrim == NULL) {
jfs_error(bmp->db_ipbmap->i_sb, "no memory for trim array\n");
IWRITE_UNLOCK(ipbmap);
diff --git a/fs/jfs/jfs_imap.c b/fs/jfs/jfs_imap.c
index ecb8e05b8b84..739fcb4a6fc8 100644
--- a/fs/jfs/jfs_imap.c
+++ b/fs/jfs/jfs_imap.c
@@ -102,7 +102,7 @@ int diMount(struct inode *ipimap)
* allocate/initialize the in-memory inode map control structure
*/
/* allocate the in-memory inode map control structure. */
- imap = kzalloc(sizeof(struct inomap), GFP_KERNEL);
+ imap = kzalloc_obj(struct inomap, GFP_KERNEL);
if (imap == NULL)
return -ENOMEM;
diff --git a/fs/jfs/jfs_logmgr.c b/fs/jfs/jfs_logmgr.c
index 5b1c5da04163..204cca8dd5d4 100644
--- a/fs/jfs/jfs_logmgr.c
+++ b/fs/jfs/jfs_logmgr.c
@@ -1087,7 +1087,7 @@ int lmLogOpen(struct super_block *sb)
}
}
- if (!(log = kzalloc(sizeof(struct jfs_log), GFP_KERNEL))) {
+ if (!(log = kzalloc_obj(struct jfs_log, GFP_KERNEL))) {
mutex_unlock(&jfs_log_mutex);
return -ENOMEM;
}
@@ -1156,7 +1156,7 @@ static int open_inline_log(struct super_block *sb)
struct jfs_log *log;
int rc;
- if (!(log = kzalloc(sizeof(struct jfs_log), GFP_KERNEL)))
+ if (!(log = kzalloc_obj(struct jfs_log, GFP_KERNEL)))
return -ENOMEM;
INIT_LIST_HEAD(&log->sb_list);
init_waitqueue_head(&log->syncwait);
@@ -1190,7 +1190,7 @@ static int open_dummy_log(struct super_block *sb)
mutex_lock(&jfs_log_mutex);
if (!dummy_log) {
- dummy_log = kzalloc(sizeof(struct jfs_log), GFP_KERNEL);
+ dummy_log = kzalloc_obj(struct jfs_log, GFP_KERNEL);
if (!dummy_log) {
mutex_unlock(&jfs_log_mutex);
return -ENOMEM;
@@ -1818,7 +1818,7 @@ static int lbmLogInit(struct jfs_log * log)
goto error;
buffer = page_address(page);
for (offset = 0; offset < PAGE_SIZE; offset += LOGPSIZE) {
- lbuf = kmalloc(sizeof(struct lbuf), GFP_KERNEL);
+ lbuf = kmalloc_obj(struct lbuf, GFP_KERNEL);
if (lbuf == NULL) {
if (offset == 0)
__free_page(page);
diff --git a/fs/jfs/jfs_metapage.c b/fs/jfs/jfs_metapage.c
index 871cf4fb3636..64c6eaa7f3f2 100644
--- a/fs/jfs/jfs_metapage.c
+++ b/fs/jfs/jfs_metapage.c
@@ -98,7 +98,7 @@ static inline int insert_metapage(struct folio *folio, struct metapage *mp)
a = folio->private;
if (!a) {
- a = kzalloc(sizeof(struct meta_anchor), GFP_NOFS);
+ a = kzalloc_obj(struct meta_anchor, GFP_NOFS);
if (!a)
return -ENOMEM;
folio_attach_private(folio, a);
diff --git a/fs/jfs/super.c b/fs/jfs/super.c
index 3cfb86c5a36e..4c1510091fe2 100644
--- a/fs/jfs/super.c
+++ b/fs/jfs/super.c
@@ -449,7 +449,7 @@ static int jfs_fill_super(struct super_block *sb, struct fs_context *fc)
jfs_info("In jfs_read_super: s_flags=0x%lx", sb->s_flags);
- sbi = kzalloc(sizeof(struct jfs_sb_info), GFP_KERNEL);
+ sbi = kzalloc_obj(struct jfs_sb_info, GFP_KERNEL);
if (!sbi)
return -ENOMEM;
@@ -912,7 +912,7 @@ static int jfs_init_fs_context(struct fs_context *fc)
{
struct jfs_context *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
index 29baeeb97871..3d0704e21f71 100644
--- a/fs/kernfs/dir.c
+++ b/fs/kernfs/dir.c
@@ -989,7 +989,7 @@ struct kernfs_root *kernfs_create_root(struct kernfs_syscall_ops *scops,
struct kernfs_root *root;
struct kernfs_node *kn;
- root = kzalloc(sizeof(*root), GFP_KERNEL);
+ root = kzalloc_obj(*root, GFP_KERNEL);
if (!root)
return ERR_PTR(-ENOMEM);
diff --git a/fs/kernfs/file.c b/fs/kernfs/file.c
index 9adf36e6364b..d338875f0258 100644
--- a/fs/kernfs/file.c
+++ b/fs/kernfs/file.c
@@ -540,7 +540,7 @@ static int kernfs_get_open_node(struct kernfs_node *kn,
if (!on) {
/* not there, initialize a new one */
- on = kzalloc(sizeof(*on), GFP_KERNEL);
+ on = kzalloc_obj(*on, GFP_KERNEL);
if (!on) {
mutex_unlock(mutex);
return -ENOMEM;
@@ -638,7 +638,7 @@ static int kernfs_fop_open(struct inode *inode, struct file *file)
/* allocate a kernfs_open_file for the file */
error = -ENOMEM;
- of = kzalloc(sizeof(struct kernfs_open_file), GFP_KERNEL);
+ of = kzalloc_obj(struct kernfs_open_file, GFP_KERNEL);
if (!of)
goto err_out;
diff --git a/fs/kernfs/mount.c b/fs/kernfs/mount.c
index 3ac52e141766..dd38e2e21a17 100644
--- a/fs/kernfs/mount.c
+++ b/fs/kernfs/mount.c
@@ -370,7 +370,7 @@ int kernfs_get_tree(struct fs_context *fc)
struct kernfs_super_info *info;
int error;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
@@ -451,7 +451,7 @@ static void __init kernfs_mutex_init(void)
static void __init kernfs_lock_init(void)
{
- kernfs_locks = kmalloc(sizeof(struct kernfs_global_locks), GFP_KERNEL);
+ kernfs_locks = kmalloc_obj(struct kernfs_global_locks, GFP_KERNEL);
WARN_ON(!kernfs_locks);
kernfs_mutex_init();
diff --git a/fs/libfs.c b/fs/libfs.c
index f1860dff86f2..361d5203e464 100644
--- a/fs/libfs.c
+++ b/fs/libfs.c
@@ -731,7 +731,7 @@ struct pseudo_fs_context *init_pseudo(struct fs_context *fc,
{
struct pseudo_fs_context *ctx;
- ctx = kzalloc(sizeof(struct pseudo_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct pseudo_fs_context, GFP_KERNEL);
if (likely(ctx)) {
ctx->magic = magic;
fc->fs_private = ctx;
@@ -1320,7 +1320,7 @@ int simple_attr_open(struct inode *inode, struct file *file,
{
struct simple_attr *attr;
- attr = kzalloc(sizeof(*attr), GFP_KERNEL);
+ attr = kzalloc_obj(*attr, GFP_KERNEL);
if (!attr)
return -ENOMEM;
diff --git a/fs/lockd/clntlock.c b/fs/lockd/clntlock.c
index a7e0519ec024..372fe0cf830f 100644
--- a/fs/lockd/clntlock.c
+++ b/fs/lockd/clntlock.c
@@ -233,7 +233,7 @@ reclaimer(void *ptr)
u32 nsmstate;
struct net *net = host->net;
- req = kmalloc(sizeof(*req), GFP_KERNEL);
+ req = kmalloc_obj(*req, GFP_KERNEL);
if (!req)
return 0;
diff --git a/fs/lockd/clntproc.c b/fs/lockd/clntproc.c
index cebcc283b7ce..e189b3ddfedf 100644
--- a/fs/lockd/clntproc.c
+++ b/fs/lockd/clntproc.c
@@ -105,7 +105,7 @@ static struct nlm_lockowner *nlmclnt_find_lockowner(struct nlm_host *host, fl_ow
res = __nlmclnt_find_lockowner(host, owner);
if (res == NULL) {
spin_unlock(&host->h_lock);
- new = kmalloc(sizeof(*new), GFP_KERNEL);
+ new = kmalloc_obj(*new, GFP_KERNEL);
spin_lock(&host->h_lock);
res = __nlmclnt_find_lockowner(host, owner);
if (res == NULL && new != NULL) {
@@ -208,7 +208,7 @@ struct nlm_rqst *nlm_alloc_call(struct nlm_host *host)
struct nlm_rqst *call;
for(;;) {
- call = kzalloc(sizeof(*call), GFP_KERNEL);
+ call = kzalloc_obj(*call, GFP_KERNEL);
if (call != NULL) {
refcount_set(&call->a_count, 1);
locks_init_lock(&call->a_args.lock.fl);
diff --git a/fs/lockd/host.c b/fs/lockd/host.c
index 5e6877c37f73..12a745a543e0 100644
--- a/fs/lockd/host.c
+++ b/fs/lockd/host.c
@@ -126,7 +126,7 @@ static struct nlm_host *nlm_alloc_host(struct nlm_lookup_host_info *ni,
}
}
- host = kmalloc(sizeof(*host), GFP_KERNEL);
+ host = kmalloc_obj(*host, GFP_KERNEL);
if (unlikely(host == NULL)) {
dprintk("lockd: %s failed; no memory\n", __func__);
nsm_release(nsm);
diff --git a/fs/lockd/svclock.c b/fs/lockd/svclock.c
index 712df1e025d8..1dee1da9ee0f 100644
--- a/fs/lockd/svclock.c
+++ b/fs/lockd/svclock.c
@@ -233,7 +233,7 @@ nlmsvc_create_block(struct svc_rqst *rqstp, struct nlm_host *host,
return NULL;
/* Allocate memory for block, and initialize arguments */
- block = kzalloc(sizeof(*block), GFP_KERNEL);
+ block = kzalloc_obj(*block, GFP_KERNEL);
if (block == NULL)
goto failed;
kref_init(&block->b_count);
@@ -380,7 +380,7 @@ static struct nlm_lockowner *nlmsvc_find_lockowner(struct nlm_host *host, pid_t
if (res == NULL) {
spin_unlock(&host->h_lock);
- new = kmalloc(sizeof(*res), GFP_KERNEL);
+ new = kmalloc_obj(*res, GFP_KERNEL);
spin_lock(&host->h_lock);
res = __nlmsvc_find_lockowner(host, pid);
if (res == NULL && new != NULL) {
diff --git a/fs/lockd/svcsubs.c b/fs/lockd/svcsubs.c
index 9103896164f6..fcfeaf6d6855 100644
--- a/fs/lockd/svcsubs.c
+++ b/fs/lockd/svcsubs.c
@@ -128,7 +128,7 @@ nlm_lookup_file(struct svc_rqst *rqstp, struct nlm_file **result,
nlm_debug_print_fh("creating file for", &lock->fh);
nfserr = nlm_lck_denied_nolocks;
- file = kzalloc(sizeof(*file), GFP_KERNEL);
+ file = kzalloc_obj(*file, GFP_KERNEL);
if (!file)
goto out_free;
diff --git a/fs/mbcache.c b/fs/mbcache.c
index e60a840999aa..19cb8eb6744e 100644
--- a/fs/mbcache.c
+++ b/fs/mbcache.c
@@ -358,16 +358,15 @@ struct mb_cache *mb_cache_create(int bucket_bits)
unsigned long bucket_count = 1UL << bucket_bits;
unsigned long i;
- cache = kzalloc(sizeof(struct mb_cache), GFP_KERNEL);
+ cache = kzalloc_obj(struct mb_cache, GFP_KERNEL);
if (!cache)
goto err_out;
cache->c_bucket_bits = bucket_bits;
cache->c_max_entries = bucket_count << 4;
INIT_LIST_HEAD(&cache->c_list);
spin_lock_init(&cache->c_list_lock);
- cache->c_hash = kmalloc_array(bucket_count,
- sizeof(struct hlist_bl_head),
- GFP_KERNEL);
+ cache->c_hash = kmalloc_objs(struct hlist_bl_head, bucket_count,
+ GFP_KERNEL);
if (!cache->c_hash) {
kfree(cache);
goto err_out;
diff --git a/fs/minix/inode.c b/fs/minix/inode.c
index c8c6b2135abe..495d31b8cd0e 100644
--- a/fs/minix/inode.c
+++ b/fs/minix/inode.c
@@ -226,7 +226,7 @@ static int minix_fill_super(struct super_block *s, struct fs_context *fc)
int ret = -EINVAL;
int silent = fc->sb_flags & SB_SILENT;
- sbi = kzalloc(sizeof(struct minix_sb_info), GFP_KERNEL);
+ sbi = kzalloc_obj(struct minix_sb_info, GFP_KERNEL);
if (!sbi)
return -ENOMEM;
s->s_fs_info = sbi;
diff --git a/fs/mnt_idmapping.c b/fs/mnt_idmapping.c
index a37991fdb194..6472c4ea3d1e 100644
--- a/fs/mnt_idmapping.c
+++ b/fs/mnt_idmapping.c
@@ -289,7 +289,7 @@ struct mnt_idmap *alloc_mnt_idmap(struct user_namespace *mnt_userns)
struct mnt_idmap *idmap;
int ret;
- idmap = kzalloc(sizeof(struct mnt_idmap), GFP_KERNEL_ACCOUNT);
+ idmap = kzalloc_obj(struct mnt_idmap, GFP_KERNEL_ACCOUNT);
if (!idmap)
return ERR_PTR(-ENOMEM);
diff --git a/fs/namei.c b/fs/namei.c
index 5fe6cac48df8..58f715f7657e 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -790,8 +790,8 @@ static bool nd_alloc_stack(struct nameidata *nd)
{
struct saved *p;
- p= kmalloc_array(MAXSYMLINKS, sizeof(struct saved),
- nd->flags & LOOKUP_RCU ? GFP_ATOMIC : GFP_KERNEL);
+ p= kmalloc_objs(struct saved, MAXSYMLINKS,
+ nd->flags & LOOKUP_RCU ? GFP_ATOMIC : GFP_KERNEL);
if (unlikely(!p))
return false;
memcpy(p, nd->internal, sizeof(nd->internal));
diff --git a/fs/namespace.c b/fs/namespace.c
index a67cbe42746d..1cb7fa1a02ed 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -889,7 +889,7 @@ static int get_mountpoint(struct dentry *dentry, struct pinned_mountpoint *m)
}
if (!mp)
- mp = kmalloc(sizeof(struct mountpoint), GFP_KERNEL);
+ mp = kmalloc_obj(struct mountpoint, GFP_KERNEL);
if (!mp)
return -ENOMEM;
@@ -2226,7 +2226,7 @@ static inline bool extend_array(struct path **res, struct path **to_free,
if (likely(n < *count))
return true;
- p = kmalloc_array(new_count, sizeof(struct path), GFP_KERNEL);
+ p = kmalloc_objs(struct path, new_count, GFP_KERNEL);
if (p && *count)
memcpy(p, *res, *count * sizeof(struct path));
*count = new_count;
@@ -4187,7 +4187,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns, bool a
if (!ucounts)
return ERR_PTR(-ENOSPC);
- new_ns = kzalloc(sizeof(struct mnt_namespace), GFP_KERNEL_ACCOUNT);
+ new_ns = kzalloc_obj(struct mnt_namespace, GFP_KERNEL_ACCOUNT);
if (!new_ns) {
dec_mnt_namespaces(ucounts);
return ERR_PTR(-ENOMEM);
diff --git a/fs/netfs/buffered_read.c b/fs/netfs/buffered_read.c
index 37ab6f28b5ad..60073d41a387 100644
--- a/fs/netfs/buffered_read.c
+++ b/fs/netfs/buffered_read.c
@@ -429,7 +429,7 @@ static int netfs_read_gaps(struct file *file, struct folio *folio)
* end get copied to, but the middle is discarded.
*/
ret = -ENOMEM;
- bvec = kmalloc_array(nr_bvec, sizeof(*bvec), GFP_KERNEL);
+ bvec = kmalloc_objs(*bvec, nr_bvec, GFP_KERNEL);
if (!bvec)
goto discard;
diff --git a/fs/netfs/buffered_write.c b/fs/netfs/buffered_write.c
index f9d62abef2ac..8fe514447df6 100644
--- a/fs/netfs/buffered_write.c
+++ b/fs/netfs/buffered_write.c
@@ -302,7 +302,7 @@ ssize_t netfs_perform_write(struct kiocb *iocb, struct iov_iter *iter,
goto copied;
}
- finfo = kzalloc(sizeof(*finfo), GFP_KERNEL);
+ finfo = kzalloc_obj(*finfo, GFP_KERNEL);
if (!finfo) {
iov_iter_revert(iter, copied);
ret = -ENOMEM;
diff --git a/fs/netfs/fscache_cache.c b/fs/netfs/fscache_cache.c
index 8f70f8da064b..e709617b64d5 100644
--- a/fs/netfs/fscache_cache.c
+++ b/fs/netfs/fscache_cache.c
@@ -25,7 +25,7 @@ static struct fscache_cache *fscache_alloc_cache(const char *name)
{
struct fscache_cache *cache;
- cache = kzalloc(sizeof(*cache), GFP_KERNEL);
+ cache = kzalloc_obj(*cache, GFP_KERNEL);
if (cache) {
if (name) {
cache->name = kstrdup(name, GFP_KERNEL);
diff --git a/fs/netfs/fscache_io.c b/fs/netfs/fscache_io.c
index e4308457633c..37f05b4d3469 100644
--- a/fs/netfs/fscache_io.c
+++ b/fs/netfs/fscache_io.c
@@ -223,7 +223,7 @@ void __fscache_write_to_cache(struct fscache_cookie *cookie,
_enter("%llx,%zx", start, len);
- wreq = kzalloc(sizeof(struct fscache_write_request), GFP_NOFS);
+ wreq = kzalloc_obj(struct fscache_write_request, GFP_NOFS);
if (!wreq)
goto abandon;
wreq->mapping = mapping;
diff --git a/fs/netfs/fscache_volume.c b/fs/netfs/fscache_volume.c
index ced14ac78cc1..57a9f12e79aa 100644
--- a/fs/netfs/fscache_volume.c
+++ b/fs/netfs/fscache_volume.c
@@ -230,8 +230,7 @@ static struct fscache_volume *fscache_alloc_volume(const char *volume_key,
if (IS_ERR(cache))
return NULL;
- volume = kzalloc(struct_size(volume, coherency, coherency_len),
- GFP_KERNEL);
+ volume = kzalloc_flex(*volume, coherency, coherency_len, GFP_KERNEL);
if (!volume)
goto err_cache;
diff --git a/fs/netfs/rolling_buffer.c b/fs/netfs/rolling_buffer.c
index 207b6a326651..a17fbf9853a4 100644
--- a/fs/netfs/rolling_buffer.c
+++ b/fs/netfs/rolling_buffer.c
@@ -27,7 +27,7 @@ struct folio_queue *netfs_folioq_alloc(unsigned int rreq_id, gfp_t gfp,
{
struct folio_queue *fq;
- fq = kmalloc(sizeof(*fq), gfp);
+ fq = kmalloc_obj(*fq, gfp);
if (fq) {
netfs_stat(&netfs_n_folioq);
folioq_init(fq, rreq_id);
diff --git a/fs/nfs/blocklayout/blocklayout.c b/fs/nfs/blocklayout/blocklayout.c
index 0e4c67373e4f..cb0a645aeb50 100644
--- a/fs/nfs/blocklayout/blocklayout.c
+++ b/fs/nfs/blocklayout/blocklayout.c
@@ -74,7 +74,7 @@ static inline struct parallel_io *alloc_parallel(void *data)
{
struct parallel_io *rv;
- rv = kmalloc(sizeof(*rv), GFP_NOFS);
+ rv = kmalloc_obj(*rv, GFP_NOFS);
if (rv) {
rv->data = data;
kref_init(&rv->refcnt);
@@ -461,7 +461,7 @@ static struct pnfs_layout_hdr *__bl_alloc_layout_hdr(struct inode *inode,
struct pnfs_block_layout *bl;
dprintk("%s enter\n", __func__);
- bl = kzalloc(sizeof(*bl), gfp_flags);
+ bl = kzalloc_obj(*bl, gfp_flags);
if (!bl)
return NULL;
@@ -619,7 +619,7 @@ bl_alloc_extent(struct xdr_stream *xdr, struct pnfs_layout_hdr *lo,
if (!p)
return -EIO;
- be = kzalloc(sizeof(*be), GFP_NOFS);
+ be = kzalloc_obj(*be, GFP_NOFS);
if (!be)
return -ENOMEM;
@@ -684,7 +684,7 @@ bl_alloc_lseg(struct pnfs_layout_hdr *lo, struct nfs4_layoutget_res *lgr,
dprintk("---> %s\n", __func__);
- lseg = kzalloc(sizeof(*lseg), gfp_mask);
+ lseg = kzalloc_obj(*lseg, gfp_mask);
if (!lseg)
return ERR_PTR(-ENOMEM);
diff --git a/fs/nfs/blocklayout/dev.c b/fs/nfs/blocklayout/dev.c
index 134d7f760a33..cc6327d97a91 100644
--- a/fs/nfs/blocklayout/dev.c
+++ b/fs/nfs/blocklayout/dev.c
@@ -461,8 +461,8 @@ bl_parse_concat(struct nfs_server *server, struct pnfs_block_dev *d,
u64 len = 0;
int ret, i;
- d->children = kcalloc(v->concat.volumes_count,
- sizeof(struct pnfs_block_dev), gfp_mask);
+ d->children = kzalloc_objs(struct pnfs_block_dev,
+ v->concat.volumes_count, gfp_mask);
if (!d->children)
return -ENOMEM;
@@ -490,8 +490,8 @@ bl_parse_stripe(struct nfs_server *server, struct pnfs_block_dev *d,
u64 len = 0;
int ret, i;
- d->children = kcalloc(v->stripe.volumes_count,
- sizeof(struct pnfs_block_dev), gfp_mask);
+ d->children = kzalloc_objs(struct pnfs_block_dev,
+ v->stripe.volumes_count, gfp_mask);
if (!d->children)
return -ENOMEM;
@@ -559,8 +559,7 @@ bl_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,
goto out_free_scratch;
nr_volumes = be32_to_cpup(p++);
- volumes = kcalloc(nr_volumes, sizeof(struct pnfs_block_volume),
- gfp_mask);
+ volumes = kzalloc_objs(struct pnfs_block_volume, nr_volumes, gfp_mask);
if (!volumes)
goto out_free_scratch;
@@ -570,7 +569,7 @@ bl_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,
goto out_free_volumes;
}
- top = kzalloc(sizeof(*top), gfp_mask);
+ top = kzalloc_obj(*top, gfp_mask);
if (!top)
goto out_free_volumes;
diff --git a/fs/nfs/blocklayout/extent_tree.c b/fs/nfs/blocklayout/extent_tree.c
index 315949a7e92d..7393118c42a2 100644
--- a/fs/nfs/blocklayout/extent_tree.c
+++ b/fs/nfs/blocklayout/extent_tree.c
@@ -201,7 +201,7 @@ __ext_tree_remove(struct rb_root *root,
if (len1 > 0) {
struct pnfs_block_extent *new;
- new = kzalloc(sizeof(*new), GFP_ATOMIC);
+ new = kzalloc_obj(*new, GFP_ATOMIC);
if (!new)
return -ENOMEM;
@@ -384,7 +384,7 @@ ext_tree_split(struct rb_root *root, struct pnfs_block_extent *be,
struct pnfs_block_extent *new;
sector_t orig_len = be->be_length;
- new = kzalloc(sizeof(*new), GFP_ATOMIC);
+ new = kzalloc_obj(*new, GFP_ATOMIC);
if (!new)
return -ENOMEM;
@@ -653,8 +653,9 @@ ext_tree_prepare_commit(struct nfs4_layoutcommit_args *arg)
count = 0;
arg->layoutupdate_pages =
- kcalloc(DIV_ROUND_UP(buffer_size, PAGE_SIZE),
- sizeof(struct page *), GFP_NOFS);
+ kzalloc_objs(struct page *,
+ DIV_ROUND_UP(buffer_size, PAGE_SIZE),
+ GFP_NOFS);
if (!arg->layoutupdate_pages)
return -ENOMEM;
diff --git a/fs/nfs/cache_lib.c b/fs/nfs/cache_lib.c
index ef6729568432..90fa1e4440be 100644
--- a/fs/nfs/cache_lib.c
+++ b/fs/nfs/cache_lib.c
@@ -96,7 +96,7 @@ struct nfs_cache_defer_req *nfs_cache_defer_req_alloc(void)
{
struct nfs_cache_defer_req *dreq;
- dreq = kzalloc(sizeof(*dreq), GFP_KERNEL);
+ dreq = kzalloc_obj(*dreq, GFP_KERNEL);
if (dreq) {
init_completion(&dreq->completion);
refcount_set(&dreq->count, 1);
diff --git a/fs/nfs/callback_proc.c b/fs/nfs/callback_proc.c
index 805eb3764186..1c94a97efd31 100644
--- a/fs/nfs/callback_proc.c
+++ b/fs/nfs/callback_proc.c
@@ -718,7 +718,7 @@ __be32 nfs4_callback_offload(void *data, void *dummy,
struct nfs4_copy_state *copy, *tmp_copy;
bool found = false;
- copy = kzalloc(sizeof(struct nfs4_copy_state), GFP_KERNEL);
+ copy = kzalloc_obj(struct nfs4_copy_state, GFP_KERNEL);
if (!copy)
return cpu_to_be32(NFS4ERR_DELAY);
diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c
index c2fa4a91db26..857393803e71 100644
--- a/fs/nfs/callback_xdr.c
+++ b/fs/nfs/callback_xdr.c
@@ -272,7 +272,7 @@ __be32 decode_devicenotify_args(struct svc_rqst *rqstp,
if (n == 0)
goto out;
- args->devs = kmalloc_array(n, sizeof(*args->devs), GFP_KERNEL);
+ args->devs = kmalloc_objs(*args->devs, n, GFP_KERNEL);
if (!args->devs) {
status = htonl(NFS4ERR_DELAY);
goto out;
@@ -378,9 +378,9 @@ static __be32 decode_rc_list(struct xdr_stream *xdr,
rc_list->rcl_nrefcalls * 2 * sizeof(uint32_t));
if (unlikely(p == NULL))
goto out;
- rc_list->rcl_refcalls = kmalloc_array(rc_list->rcl_nrefcalls,
- sizeof(*rc_list->rcl_refcalls),
- GFP_KERNEL);
+ rc_list->rcl_refcalls = kmalloc_objs(*rc_list->rcl_refcalls,
+ rc_list->rcl_nrefcalls,
+ GFP_KERNEL);
if (unlikely(rc_list->rcl_refcalls == NULL))
goto out;
for (i = 0; i < rc_list->rcl_nrefcalls; i++) {
@@ -419,9 +419,8 @@ static __be32 decode_cb_sequence_args(struct svc_rqst *rqstp,
args->csa_nrclists = ntohl(*p++);
args->csa_rclists = NULL;
if (args->csa_nrclists) {
- args->csa_rclists = kmalloc_array(args->csa_nrclists,
- sizeof(*args->csa_rclists),
- GFP_KERNEL);
+ args->csa_rclists = kmalloc_objs(*args->csa_rclists,
+ args->csa_nrclists, GFP_KERNEL);
if (unlikely(args->csa_rclists == NULL))
return htonl(NFS4ERR_RESOURCE);
diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index fd15731cf361..be6e3b61735d 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -150,7 +150,7 @@ struct nfs_client *nfs_alloc_client(const struct nfs_client_initdata *cl_init)
struct nfs_client *clp;
int err = -ENOMEM;
- if ((clp = kzalloc(sizeof(*clp), GFP_KERNEL)) == NULL)
+ if ((clp = kzalloc_obj(*clp, GFP_KERNEL)) == NULL)
goto error_0;
clp->cl_minorversion = cl_init->minorversion;
@@ -1044,7 +1044,7 @@ struct nfs_server *nfs_alloc_server(void)
{
struct nfs_server *server;
- server = kzalloc(sizeof(struct nfs_server), GFP_KERNEL);
+ server = kzalloc_obj(struct nfs_server, GFP_KERNEL);
if (!server)
return NULL;
diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c
index 94103f8d3f21..cf40ced95305 100644
--- a/fs/nfs/delegation.c
+++ b/fs/nfs/delegation.c
@@ -442,7 +442,7 @@ int nfs_inode_set_delegation(struct inode *inode, const struct cred *cred,
struct nfs_delegation *freeme = NULL;
int status = 0;
- delegation = kmalloc(sizeof(*delegation), GFP_KERNEL_ACCOUNT);
+ delegation = kmalloc_obj(*delegation, GFP_KERNEL_ACCOUNT);
if (delegation == NULL)
return -ENOMEM;
nfs4_stateid_copy(&delegation->stateid, stateid);
@@ -1602,8 +1602,9 @@ int nfs4_delegation_hash_alloc(struct nfs_server *server)
delegation_buckets = roundup_pow_of_two(nfs_delegation_watermark / 16);
server->delegation_hash_mask = delegation_buckets - 1;
- server->delegation_hash_table = kmalloc_array(delegation_buckets,
- sizeof(*server->delegation_hash_table), GFP_KERNEL);
+ server->delegation_hash_table = kmalloc_objs(*server->delegation_hash_table,
+ delegation_buckets,
+ GFP_KERNEL);
if (!server->delegation_hash_table)
return -ENOMEM;
for (i = 0; i < delegation_buckets; i++)
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index b3f5c9461204..624ee989929d 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -80,7 +80,7 @@ alloc_nfs_open_dir_context(struct inode *dir)
struct nfs_inode *nfsi = NFS_I(dir);
struct nfs_open_dir_context *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL_ACCOUNT);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL_ACCOUNT);
if (ctx != NULL) {
ctx->attr_gencount = nfsi->attr_gencount;
ctx->dtsize = min(NFS_SERVER(dir)->dtsize, NFS_INIT_DTSIZE);
@@ -912,7 +912,7 @@ static struct page **nfs_readdir_alloc_pages(size_t npages)
struct page **pages;
size_t i;
- pages = kmalloc_array(npages, sizeof(*pages), GFP_KERNEL);
+ pages = kmalloc_objs(*pages, npages, GFP_KERNEL);
if (!pages)
return NULL;
for (i = 0; i < npages; i++) {
@@ -942,7 +942,7 @@ static int nfs_readdir_xdr_to_array(struct nfs_readdir_descriptor *desc,
unsigned int pglen;
int status = -ENOMEM;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
entry->cookie = nfs_readdir_folio_last_cookie(folio);
@@ -1154,7 +1154,7 @@ static int uncached_readdir(struct nfs_readdir_descriptor *desc)
dfprintk(DIRCACHE, "NFS: uncached_readdir() searching for cookie %llu\n",
(unsigned long long)desc->dir_cookie);
- arrays = kcalloc(sz, sizeof(*arrays), GFP_KERNEL);
+ arrays = kzalloc_objs(*arrays, sz, GFP_KERNEL);
if (!arrays)
goto out;
arrays[0] = nfs_readdir_folio_array_alloc(desc->dir_cookie, GFP_KERNEL);
@@ -1245,7 +1245,7 @@ static int nfs_readdir(struct file *file, struct dir_context *ctx)
nfs_revalidate_mapping(inode, file->f_mapping);
res = -ENOMEM;
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
goto out;
desc->file = file;
@@ -3216,7 +3216,7 @@ static void nfs_access_add_rbtree(struct inode *inode,
void nfs_access_add_cache(struct inode *inode, struct nfs_access_entry *set,
const struct cred *cred)
{
- struct nfs_access_entry *cache = kmalloc(sizeof(*cache), GFP_KERNEL);
+ struct nfs_access_entry *cache = kmalloc_obj(*cache, GFP_KERNEL);
if (cache == NULL)
return;
RB_CLEAR_NODE(&cache->rb_node);
diff --git a/fs/nfs/dns_resolve.c b/fs/nfs/dns_resolve.c
index 714975e5c0db..9bce45de1cb4 100644
--- a/fs/nfs/dns_resolve.c
+++ b/fs/nfs/dns_resolve.c
@@ -120,7 +120,7 @@ static void nfs_dns_ent_put(struct kref *ref)
static struct cache_head *nfs_dns_ent_alloc(void)
{
- struct nfs_dns_ent *item = kmalloc(sizeof(*item), GFP_KERNEL);
+ struct nfs_dns_ent *item = kmalloc_obj(*item, GFP_KERNEL);
if (item != NULL) {
item->hostname = NULL;
diff --git a/fs/nfs/filelayout/filelayout.c b/fs/nfs/filelayout/filelayout.c
index 5c4551117c58..90a11afa5d05 100644
--- a/fs/nfs/filelayout/filelayout.c
+++ b/fs/nfs/filelayout/filelayout.c
@@ -694,15 +694,15 @@ filelayout_decode_layout(struct pnfs_layout_hdr *flo,
goto out_err;
if (fl->num_fh > 0) {
- fl->fh_array = kcalloc(fl->num_fh, sizeof(fl->fh_array[0]),
- gfp_flags);
+ fl->fh_array = kzalloc_objs(fl->fh_array[0], fl->num_fh,
+ gfp_flags);
if (!fl->fh_array)
goto out_err;
}
for (i = 0; i < fl->num_fh; i++) {
/* Do we want to use a mempool here? */
- fl->fh_array[i] = kmalloc(sizeof(struct nfs_fh), gfp_flags);
+ fl->fh_array[i] = kmalloc_obj(struct nfs_fh, gfp_flags);
if (!fl->fh_array[i])
goto out_err;
@@ -763,7 +763,7 @@ filelayout_alloc_lseg(struct pnfs_layout_hdr *layoutid,
int rc;
dprintk("--> %s\n", __func__);
- fl = kzalloc(sizeof(*fl), gfp_flags);
+ fl = kzalloc_obj(*fl, gfp_flags);
if (!fl)
return NULL;
@@ -1049,7 +1049,7 @@ filelayout_alloc_layout_hdr(struct inode *inode, gfp_t gfp_flags)
{
struct nfs4_filelayout *flo;
- flo = kzalloc(sizeof(*flo), gfp_flags);
+ flo = kzalloc_obj(*flo, gfp_flags);
if (flo == NULL)
return NULL;
pnfs_init_ds_commit_info(&flo->commit_info);
diff --git a/fs/nfs/filelayout/filelayoutdev.c b/fs/nfs/filelayout/filelayoutdev.c
index df79aeb68db4..7226989ee4d5 100644
--- a/fs/nfs/filelayout/filelayoutdev.c
+++ b/fs/nfs/filelayout/filelayoutdev.c
@@ -138,7 +138,7 @@ nfs4_fl_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,
goto out_err_free_stripe_indices;
}
- dsaddr = kzalloc(struct_size(dsaddr, ds_list, num), gfp_flags);
+ dsaddr = kzalloc_flex(*dsaddr, ds_list, num, gfp_flags);
if (!dsaddr)
goto out_err_free_stripe_indices;
diff --git a/fs/nfs/flexfilelayout/flexfilelayout.c b/fs/nfs/flexfilelayout/flexfilelayout.c
index 9056f05a67dc..f67773d52830 100644
--- a/fs/nfs/flexfilelayout/flexfilelayout.c
+++ b/fs/nfs/flexfilelayout/flexfilelayout.c
@@ -54,7 +54,7 @@ ff_layout_alloc_layout_hdr(struct inode *inode, gfp_t gfp_flags)
{
struct nfs4_flexfile_layout *ffl;
- ffl = kzalloc(sizeof(*ffl), gfp_flags);
+ ffl = kzalloc_obj(*ffl, gfp_flags);
if (ffl) {
pnfs_init_ds_commit_info(&ffl->commit_info);
INIT_LIST_HEAD(&ffl->error_list);
@@ -275,7 +275,7 @@ static struct nfs4_ff_layout_mirror *ff_layout_alloc_mirror(u32 dss_count,
{
struct nfs4_ff_layout_mirror *mirror;
- mirror = kzalloc(sizeof(*mirror), gfp_flags);
+ mirror = kzalloc_obj(*mirror, gfp_flags);
if (mirror == NULL)
return NULL;
@@ -285,8 +285,8 @@ static struct nfs4_ff_layout_mirror *ff_layout_alloc_mirror(u32 dss_count,
mirror->dss_count = dss_count;
mirror->dss =
- kcalloc(dss_count, sizeof(struct nfs4_ff_layout_ds_stripe),
- gfp_flags);
+ kzalloc_objs(struct nfs4_ff_layout_ds_stripe, dss_count,
+ gfp_flags);
if (mirror->dss == NULL) {
kfree(mirror);
return NULL;
@@ -483,8 +483,7 @@ ff_layout_alloc_lseg(struct pnfs_layout_hdr *lh,
goto out_err_free;
rc = -ENOMEM;
- fls = kzalloc(struct_size(fls, mirror_array, mirror_array_cnt),
- gfp_flags);
+ fls = kzalloc_flex(*fls, mirror_array, mirror_array_cnt, gfp_flags);
if (!fls)
goto out_err_free;
@@ -554,8 +553,7 @@ ff_layout_alloc_lseg(struct pnfs_layout_hdr *lh,
fh_count = be32_to_cpup(p);
dss_info->fh_versions =
- kcalloc(fh_count, sizeof(struct nfs_fh),
- gfp_flags);
+ kzalloc_objs(struct nfs_fh, fh_count, gfp_flags);
if (dss_info->fh_versions == NULL) {
rc = -ENOMEM;
goto out_err_free;
@@ -2633,7 +2631,7 @@ ff_layout_prepare_layoutreturn(struct nfs4_layoutreturn_args *args)
struct nfs4_flexfile_layoutreturn_args *ff_args;
struct nfs4_flexfile_layout *ff_layout = FF_LAYOUT_FROM_HDR(args->layout);
- ff_args = kmalloc(sizeof(*ff_args), nfs_io_gfp_mask());
+ ff_args = kmalloc_obj(*ff_args, nfs_io_gfp_mask());
if (!ff_args)
goto out_nomem;
ff_args->pages[0] = alloc_page(nfs_io_gfp_mask());
@@ -2674,8 +2672,7 @@ ff_layout_send_layouterror(struct pnfs_layout_segment *lseg)
if (list_empty(&head))
return;
- errors = kmalloc_array(NFS42_LAYOUTERROR_MAX, sizeof(*errors),
- nfs_io_gfp_mask());
+ errors = kmalloc_objs(*errors, NFS42_LAYOUTERROR_MAX, nfs_io_gfp_mask());
if (errors != NULL) {
const struct nfs4_ff_layout_ds_err *pos;
size_t n = 0;
@@ -2943,8 +2940,8 @@ static int ff_layout_prepare_layoutstats(struct nfs42_layoutstat_args *args)
const int dev_count = PNFS_LAYOUTSTATS_MAXDEV;
/* For now, send at most PNFS_LAYOUTSTATS_MAXDEV statistics */
- args->devinfo = kmalloc_array(dev_count, sizeof(*args->devinfo),
- nfs_io_gfp_mask());
+ args->devinfo = kmalloc_objs(*args->devinfo, dev_count,
+ nfs_io_gfp_mask());
if (!args->devinfo)
return -ENOMEM;
diff --git a/fs/nfs/flexfilelayout/flexfilelayoutdev.c b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
index c2d8a13a9dbd..c40395ae0814 100644
--- a/fs/nfs/flexfilelayout/flexfilelayoutdev.c
+++ b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
@@ -60,7 +60,7 @@ nfs4_ff_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,
if (!scratch)
goto out_err;
- new_ds = kzalloc(sizeof(struct nfs4_ff_layout_ds), gfp_flags);
+ new_ds = kzalloc_obj(struct nfs4_ff_layout_ds, gfp_flags);
if (!new_ds)
goto out_scratch;
@@ -99,9 +99,8 @@ nfs4_ff_alloc_deviceid_node(struct nfs_server *server, struct pnfs_device *pdev,
version_count = be32_to_cpup(p);
dprintk("%s: version count %d\n", __func__, version_count);
- ds_versions = kcalloc(version_count,
- sizeof(struct nfs4_ff_ds_version),
- gfp_flags);
+ ds_versions = kzalloc_objs(struct nfs4_ff_ds_version, version_count,
+ gfp_flags);
if (!ds_versions)
goto out_err_drain_dsaddrs;
@@ -262,7 +261,7 @@ int ff_layout_track_ds_error(struct nfs4_flexfile_layout *flo,
if (IS_ERR_OR_NULL(mirror->dss[dss_id].mirror_ds))
return -EINVAL;
- dserr = kmalloc(sizeof(*dserr), gfp_flags);
+ dserr = kmalloc_obj(*dserr, gfp_flags);
if (!dserr)
return -ENOMEM;
diff --git a/fs/nfs/fs_context.c b/fs/nfs/fs_context.c
index 86750f110053..2fc851abd187 100644
--- a/fs/nfs/fs_context.c
+++ b/fs/nfs/fs_context.c
@@ -1692,7 +1692,7 @@ static int nfs_init_fs_context(struct fs_context *fc)
{
struct nfs_fs_context *ctx;
- ctx = kzalloc(sizeof(struct nfs_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct nfs_fs_context, GFP_KERNEL);
if (unlikely(!ctx))
return -ENOMEM;
diff --git a/fs/nfs/fscache.c b/fs/nfs/fscache.c
index 8b0785178731..9b7fdad4a920 100644
--- a/fs/nfs/fscache.c
+++ b/fs/nfs/fscache.c
@@ -288,7 +288,7 @@ static struct nfs_netfs_io_data *nfs_netfs_alloc(struct netfs_io_subrequest *sre
{
struct nfs_netfs_io_data *netfs;
- netfs = kzalloc(sizeof(*netfs), GFP_KERNEL_ACCOUNT);
+ netfs = kzalloc_obj(*netfs, GFP_KERNEL_ACCOUNT);
if (!netfs)
return NULL;
netfs->sreq = sreq;
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index 331cdecdd966..ea215fc2ed21 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -383,7 +383,7 @@ struct nfs4_label *nfs4_label_alloc(struct nfs_server *server, gfp_t flags)
if (!(server->caps & NFS_CAP_SECURITY_LABEL))
return NULL;
- label = kzalloc(sizeof(struct nfs4_label), flags);
+ label = kzalloc_obj(struct nfs4_label, flags);
if (label == NULL)
return ERR_PTR(-ENOMEM);
@@ -1131,7 +1131,7 @@ struct nfs_lock_context *nfs_get_lock_context(struct nfs_open_context *ctx)
res = __nfs_find_lock_context(ctx);
rcu_read_unlock();
if (res == NULL) {
- new = kmalloc(sizeof(*new), GFP_KERNEL_ACCOUNT);
+ new = kmalloc_obj(*new, GFP_KERNEL_ACCOUNT);
if (new == NULL)
return ERR_PTR(-ENOMEM);
nfs_init_lock_context(new);
@@ -1209,7 +1209,7 @@ struct nfs_open_context *alloc_nfs_open_context(struct dentry *dentry,
{
struct nfs_open_context *ctx;
- ctx = kmalloc(sizeof(*ctx), GFP_KERNEL_ACCOUNT);
+ ctx = kmalloc_obj(*ctx, GFP_KERNEL_ACCOUNT);
if (!ctx)
return ERR_PTR(-ENOMEM);
nfs_sb_active(dentry->d_sb);
@@ -1777,7 +1777,7 @@ struct nfs_fattr *nfs_alloc_fattr(void)
{
struct nfs_fattr *fattr;
- fattr = kmalloc(sizeof(*fattr), GFP_KERNEL);
+ fattr = kmalloc_obj(*fattr, GFP_KERNEL);
if (fattr != NULL) {
nfs_fattr_init(fattr);
fattr->label = NULL;
@@ -1807,7 +1807,7 @@ struct nfs_fh *nfs_alloc_fhandle(void)
{
struct nfs_fh *fh;
- fh = kmalloc(sizeof(struct nfs_fh), GFP_KERNEL);
+ fh = kmalloc_obj(struct nfs_fh, GFP_KERNEL);
if (fh != NULL)
fh->size = 0;
return fh;
@@ -2015,7 +2015,7 @@ static void nfs_ooo_merge(struct nfs_inode *nfsi,
return;
if (!nfsi->ooo) {
- nfsi->ooo = kmalloc(sizeof(*nfsi->ooo), GFP_ATOMIC);
+ nfsi->ooo = kmalloc_obj(*nfsi->ooo, GFP_ATOMIC);
if (!nfsi->ooo) {
nfsi->cache_validity |= NFS_INO_DATA_INVAL_DEFER;
return;
diff --git a/fs/nfs/localio.c b/fs/nfs/localio.c
index 3b47be4e693a..4c7d16a99ed6 100644
--- a/fs/nfs/localio.c
+++ b/fs/nfs/localio.c
@@ -316,12 +316,11 @@ nfs_local_iocb_alloc(struct nfs_pgio_header *hdr,
{
struct nfs_local_kiocb *iocb;
- iocb = kzalloc(sizeof(*iocb), flags);
+ iocb = kzalloc_obj(*iocb, flags);
if (iocb == NULL)
return NULL;
- iocb->bvec = kmalloc_array(hdr->page_array.npages,
- sizeof(struct bio_vec), flags);
+ iocb->bvec = kmalloc_objs(struct bio_vec, hdr->page_array.npages, flags);
if (iocb->bvec == NULL) {
kfree(iocb);
return NULL;
@@ -1070,7 +1069,7 @@ static struct nfs_local_fsync_ctx *
nfs_local_fsync_ctx_alloc(struct nfs_commit_data *data,
struct nfsd_file *localio, gfp_t flags)
{
- struct nfs_local_fsync_ctx *ctx = kmalloc(sizeof(*ctx), flags);
+ struct nfs_local_fsync_ctx *ctx = kmalloc_obj(*ctx, flags);
if (ctx != NULL) {
ctx->localio = localio;
diff --git a/fs/nfs/nfs3proc.c b/fs/nfs/nfs3proc.c
index d3d2fbeba89d..eb9cac652550 100644
--- a/fs/nfs/nfs3proc.c
+++ b/fs/nfs/nfs3proc.c
@@ -299,7 +299,7 @@ static struct nfs3_createdata *nfs3_alloc_createdata(void)
{
struct nfs3_createdata *data;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (data != NULL) {
data->msg.rpc_argp = &data->arg;
data->msg.rpc_resp = &data->res;
diff --git a/fs/nfs/nfs40client.c b/fs/nfs/nfs40client.c
index fc0c6b48fc94..f44d68faea93 100644
--- a/fs/nfs/nfs40client.c
+++ b/fs/nfs/nfs40client.c
@@ -65,7 +65,7 @@ int nfs40_init_client(struct nfs_client *clp)
struct nfs4_slot_table *tbl;
int ret;
- tbl = kzalloc(sizeof(*tbl), GFP_NOFS);
+ tbl = kzalloc_obj(*tbl, GFP_NOFS);
if (tbl == NULL)
return -ENOMEM;
diff --git a/fs/nfs/nfs40proc.c b/fs/nfs/nfs40proc.c
index 32a2a1a2b216..53f54081942e 100644
--- a/fs/nfs/nfs40proc.c
+++ b/fs/nfs/nfs40proc.c
@@ -122,7 +122,7 @@ static int nfs4_proc_async_renew(struct nfs_client *clp, const struct cred *cred
return 0;
if (!refcount_inc_not_zero(&clp->cl_count))
return -EIO;
- data = kmalloc(sizeof(*data), GFP_NOFS);
+ data = kmalloc_obj(*data, GFP_NOFS);
if (data == NULL) {
nfs_put_client(clp);
return -ENOMEM;
@@ -320,7 +320,7 @@ nfs4_release_lockowner(struct nfs_server *server, struct nfs4_lock_state *lsp)
if (clp->cl_mvops->minor_version != 0)
return;
- data = kmalloc(sizeof(*data), GFP_KERNEL);
+ data = kmalloc_obj(*data, GFP_KERNEL);
if (!data)
return;
data->lsp = lsp;
diff --git a/fs/nfs/nfs42proc.c b/fs/nfs/nfs42proc.c
index 3487948d7181..46298606e509 100644
--- a/fs/nfs/nfs42proc.c
+++ b/fs/nfs/nfs42proc.c
@@ -247,7 +247,7 @@ static int handle_async_copy(struct nfs42_copy_res *res,
int status = NFS4_OK;
u64 copied;
- copy = kzalloc(sizeof(struct nfs4_copy_state), GFP_KERNEL);
+ copy = kzalloc_obj(struct nfs4_copy_state, GFP_KERNEL);
if (!copy)
return -ENOMEM;
@@ -351,7 +351,7 @@ static int process_copy_commit(struct file *dst, loff_t pos_dst,
struct nfs_commitres cres;
int status = -ENOMEM;
- cres.verf = kzalloc(sizeof(struct nfs_writeverf), GFP_KERNEL);
+ cres.verf = kzalloc_obj(struct nfs_writeverf, GFP_KERNEL);
if (!cres.verf)
goto out;
@@ -461,7 +461,7 @@ static ssize_t _nfs42_proc_copy(struct file *src,
res->commit_res.verf = NULL;
if (args->sync) {
res->commit_res.verf =
- kzalloc(sizeof(struct nfs_writeverf), GFP_KERNEL);
+ kzalloc_obj(struct nfs_writeverf, GFP_KERNEL);
if (!res->commit_res.verf)
return -ENOMEM;
}
@@ -659,7 +659,7 @@ static int nfs42_do_offload_cancel_async(struct file *dst,
if (!(dst_server->caps & NFS_CAP_OFFLOAD_CANCEL))
return -EOPNOTSUPP;
- data = kzalloc(sizeof(struct nfs42_offload_data), GFP_KERNEL);
+ data = kzalloc_obj(struct nfs42_offload_data, GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
@@ -756,7 +756,7 @@ nfs42_proc_offload_status(struct file *dst, nfs4_stateid *stateid, u64 *copied)
if (!(server->caps & NFS_CAP_OFFLOAD_STATUS))
return -EOPNOTSUPP;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
data->seq_server = server;
@@ -838,7 +838,7 @@ int nfs42_proc_copy_notify(struct file *src, struct file *dst,
if (!(src_server->caps & NFS_CAP_COPY_NOTIFY))
return -EOPNOTSUPP;
- args = kzalloc(sizeof(struct nfs42_copy_notify_args), GFP_KERNEL);
+ args = kzalloc_obj(struct nfs42_copy_notify_args, GFP_KERNEL);
if (args == NULL)
return -ENOMEM;
@@ -1087,7 +1087,7 @@ nfs42_alloc_layouterror_data(struct pnfs_layout_segment *lseg, gfp_t gfp_flags)
struct nfs42_layouterror_data *data;
struct inode *inode = lseg->pls_layout->plh_inode;
- data = kzalloc(sizeof(*data), gfp_flags);
+ data = kzalloc_obj(*data, gfp_flags);
if (data) {
data->args.inode = data->inode = nfs_igrab_and_active(inode);
if (data->inode) {
@@ -1535,7 +1535,7 @@ static ssize_t _nfs42_proc_listxattrs(struct inode *inode, void *buf,
xdrlen = server->lxasize;
np = xdrlen / PAGE_SIZE + 1;
- pages = kcalloc(np, sizeof(struct page *), GFP_KERNEL);
+ pages = kzalloc_objs(struct page *, np, GFP_KERNEL);
if (!pages)
goto out_free_scratch;
for (i = 0; i < np; i++) {
@@ -1578,7 +1578,7 @@ ssize_t nfs42_proc_getxattr(struct inode *inode, const char *name,
struct page **pages;
np = nfs_page_array_len(0, buflen ?: XATTR_SIZE_MAX);
- pages = kmalloc_array(np, sizeof(*pages), GFP_KERNEL);
+ pages = kmalloc_objs(*pages, np, GFP_KERNEL);
if (!pages)
return -ENOMEM;
diff --git a/fs/nfs/nfs42xdr.c b/fs/nfs/nfs42xdr.c
index e10d83ba835e..432cfeebeba4 100644
--- a/fs/nfs/nfs42xdr.c
+++ b/fs/nfs/nfs42xdr.c
@@ -1159,7 +1159,7 @@ static int decode_read_plus(struct xdr_stream *xdr, struct nfs_pgio_res *res)
if (segments == 0)
return 0;
- segs = kmalloc_array(segments, sizeof(*segs), GFP_KERNEL);
+ segs = kmalloc_objs(*segs, segments, GFP_KERNEL);
if (!segs)
return -ENOMEM;
diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c
index 51cf4a37d652..c211639949c2 100644
--- a/fs/nfs/nfs4client.c
+++ b/fs/nfs/nfs4client.c
@@ -99,7 +99,7 @@ nfs4_alloc_ds_server(struct nfs_client *ds_clp, rpc_authflavor_t flavor)
{
struct nfs4_ds_server *dss;
- dss = kmalloc(sizeof(*dss), GFP_NOFS);
+ dss = kmalloc_obj(*dss, GFP_NOFS);
if (dss == NULL)
return ERR_PTR(-ENOMEM);
diff --git a/fs/nfs/nfs4file.c b/fs/nfs/nfs4file.c
index 7f43e890d356..bd079b4a6523 100644
--- a/fs/nfs/nfs4file.c
+++ b/fs/nfs/nfs4file.c
@@ -164,8 +164,7 @@ static ssize_t __nfs4_copy_file_range(struct file *file_in, loff_t pos_in,
*/
if (sync)
return -EOPNOTSUPP;
- cn_resp = kzalloc(sizeof(struct nfs42_copy_notify_res),
- GFP_KERNEL);
+ cn_resp = kzalloc_obj(struct nfs42_copy_notify_res, GFP_KERNEL);
if (unlikely(cn_resp == NULL))
return -ENOMEM;
diff --git a/fs/nfs/nfs4idmap.c b/fs/nfs/nfs4idmap.c
index 9e1c48c5c0b8..01fb53132279 100644
--- a/fs/nfs/nfs4idmap.c
+++ b/fs/nfs/nfs4idmap.c
@@ -445,7 +445,7 @@ nfs_idmap_new(struct nfs_client *clp)
struct rpc_pipe *pipe;
int error;
- idmap = kzalloc(sizeof(*idmap), GFP_KERNEL);
+ idmap = kzalloc_obj(*idmap, GFP_KERNEL);
if (idmap == NULL)
return -ENOMEM;
@@ -579,7 +579,7 @@ static int nfs_idmap_legacy_upcall(struct key *authkey, void *aux)
/* msg and im are freed in idmap_pipe_destroy_msg */
ret = -ENOMEM;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
goto out1;
diff --git a/fs/nfs/nfs4namespace.c b/fs/nfs/nfs4namespace.c
index 9a98595bb160..7366f2e6bc12 100644
--- a/fs/nfs/nfs4namespace.c
+++ b/fs/nfs/nfs4namespace.c
@@ -415,7 +415,7 @@ static int nfs_do_refmount(struct fs_context *fc, struct rpc_clnt *client)
if (!page)
return -ENOMEM;
- fs_locations = kmalloc(sizeof(struct nfs4_fs_locations), GFP_KERNEL);
+ fs_locations = kmalloc_obj(struct nfs4_fs_locations, GFP_KERNEL);
if (!fs_locations)
goto out_free;
fs_locations->fattr = nfs_alloc_fattr();
@@ -490,7 +490,7 @@ static int nfs4_try_replacing_one_location(struct nfs_server *server,
size_t salen;
int error;
- sap = kmalloc(sizeof(*sap), GFP_KERNEL);
+ sap = kmalloc_obj(*sap, GFP_KERNEL);
if (sap == NULL)
return -ENOMEM;
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 180229320731..df9ae871726d 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -1370,7 +1370,7 @@ static struct nfs4_opendata *nfs4_opendata_alloc(struct dentry *dentry,
struct nfs4_label *label = (c != NULL) ? c->label : NULL;
struct nfs4_opendata *p;
- p = kzalloc(sizeof(*p), gfp_mask);
+ p = kzalloc_obj(*p, gfp_mask);
if (p == NULL)
goto err;
@@ -3774,7 +3774,7 @@ int nfs4_do_close(struct nfs4_state *state, gfp_t gfp_mask, int wait)
nfs4_state_protect(clp, NFS_SP4_MACH_CRED_CLEANUP,
&task_setup_data.rpc_client, &msg);
- calldata = kzalloc(sizeof(*calldata), gfp_mask);
+ calldata = kzalloc_obj(*calldata, gfp_mask);
if (calldata == NULL)
goto out;
nfs4_init_sequence(clp, &calldata->arg.seq_args,
@@ -4107,7 +4107,7 @@ static int _nfs4_discover_trunking(struct nfs_server *server,
page = alloc_page(GFP_KERNEL);
if (!page)
goto out_put_cred;
- locations = kmalloc(sizeof(struct nfs4_fs_locations), GFP_KERNEL);
+ locations = kmalloc_obj(struct nfs4_fs_locations, GFP_KERNEL);
if (!locations)
goto out_free;
locations->fattr = nfs_alloc_fattr();
@@ -4341,7 +4341,7 @@ static int nfs4_get_referral(struct rpc_clnt *client, struct inode *dir,
page = alloc_page(GFP_KERNEL);
if (page == NULL)
goto out;
- locations = kmalloc(sizeof(struct nfs4_fs_locations), GFP_KERNEL);
+ locations = kmalloc_obj(struct nfs4_fs_locations, GFP_KERNEL);
if (locations == NULL)
goto out;
@@ -5130,7 +5130,7 @@ static struct nfs4_createdata *nfs4_alloc_createdata(struct inode *dir,
{
struct nfs4_createdata *data;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (data != NULL) {
struct nfs_server *server = NFS_SERVER(dir);
@@ -6023,7 +6023,7 @@ static void nfs4_write_cached_acl(struct inode *inode, struct page **pages,
acl->cached = 1;
_copy_from_pages(acl->data, pages, pgbase, acl_len);
} else {
- acl = kmalloc(sizeof(*acl), GFP_KERNEL);
+ acl = kmalloc_obj(*acl, GFP_KERNEL);
if (acl == NULL)
goto out;
acl->cached = 0;
@@ -6070,7 +6070,7 @@ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf,
buflen = server->rsize;
npages = DIV_ROUND_UP(buflen, PAGE_SIZE) + 1;
- pages = kmalloc_array(npages, sizeof(struct page *), GFP_KERNEL);
+ pages = kmalloc_objs(struct page *, npages, GFP_KERNEL);
if (!pages)
return -ENOMEM;
@@ -6822,7 +6822,7 @@ static int _nfs4_proc_delegreturn(struct inode *inode, const struct cred *cred,
if (nfs_server_capable(inode, NFS_CAP_MOVEABLE))
task_setup_data.flags |= RPC_TASK_MOVEABLE;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
@@ -7026,7 +7026,7 @@ static struct nfs4_unlockdata *nfs4_alloc_unlockdata(struct file_lock *fl,
struct inode *inode = state->inode;
struct nfs_lock_context *l_ctx;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (p == NULL)
return NULL;
l_ctx = nfs_get_lock_context(ctx);
@@ -7260,7 +7260,7 @@ static struct nfs4_lockdata *nfs4_alloc_lockdata(struct file_lock *fl,
struct nfs_server *server = NFS_SERVER(inode);
struct nfs_seqid *(*alloc_seqid)(struct nfs_seqid_counter *, gfp_t);
- p = kzalloc(sizeof(*p), gfp_mask);
+ p = kzalloc_obj(*p, gfp_mask);
if (p == NULL)
return NULL;
@@ -8706,7 +8706,7 @@ nfs4_run_exchange_id(struct nfs_client *clp, const struct cred *cred,
return ERR_PTR(-EIO);
status = -ENOMEM;
- calldata = kzalloc(sizeof(*calldata), GFP_NOFS);
+ calldata = kzalloc_obj(*calldata, GFP_NOFS);
if (!calldata)
goto out;
@@ -8716,18 +8716,18 @@ nfs4_run_exchange_id(struct nfs_client *clp, const struct cred *cred,
if (status)
goto out_calldata;
- calldata->res.server_owner = kzalloc(sizeof(struct nfs41_server_owner),
- GFP_NOFS);
+ calldata->res.server_owner = kzalloc_obj(struct nfs41_server_owner,
+ GFP_NOFS);
status = -ENOMEM;
if (unlikely(calldata->res.server_owner == NULL))
goto out_calldata;
- calldata->res.server_scope = kzalloc(sizeof(struct nfs41_server_scope),
- GFP_NOFS);
+ calldata->res.server_scope = kzalloc_obj(struct nfs41_server_scope,
+ GFP_NOFS);
if (unlikely(calldata->res.server_scope == NULL))
goto out_server_owner;
- calldata->res.impl_id = kzalloc(sizeof(struct nfs41_impl_id), GFP_NOFS);
+ calldata->res.impl_id = kzalloc_obj(struct nfs41_impl_id, GFP_NOFS);
if (unlikely(calldata->res.impl_id == NULL))
goto out_server_scope;
@@ -9396,7 +9396,7 @@ static struct rpc_task *_nfs41_proc_sequence(struct nfs_client *clp,
goto out_err;
ret = ERR_PTR(-ENOMEM);
- calldata = kzalloc(sizeof(*calldata), GFP_KERNEL);
+ calldata = kzalloc_obj(*calldata, GFP_KERNEL);
if (calldata == NULL)
goto out_put_clp;
nfs4_init_sequence(clp, &calldata->args, &calldata->res, 0, is_privileged);
@@ -9543,7 +9543,7 @@ static int nfs41_proc_reclaim_complete(struct nfs_client *clp,
};
int status = -ENOMEM;
- calldata = kzalloc(sizeof(*calldata), GFP_NOFS);
+ calldata = kzalloc_obj(*calldata, GFP_NOFS);
if (calldata == NULL)
goto out;
calldata->clp = clp;
@@ -10358,7 +10358,7 @@ static int nfs41_free_stateid(struct nfs_server *server,
&task_setup.rpc_client, &msg);
dprintk("NFS call free_stateid %p\n", stateid);
- data = kmalloc(sizeof(*data), GFP_KERNEL);
+ data = kmalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
data->server = server;
diff --git a/fs/nfs/nfs4session.c b/fs/nfs/nfs4session.c
index a2fdd4b80dc4..5c128957a0a4 100644
--- a/fs/nfs/nfs4session.c
+++ b/fs/nfs/nfs4session.c
@@ -106,7 +106,7 @@ static struct nfs4_slot *nfs4_new_slot(struct nfs4_slot_table *tbl,
{
struct nfs4_slot *slot;
- slot = kzalloc(sizeof(*slot), gfp_mask);
+ slot = kzalloc_obj(*slot, gfp_mask);
if (slot) {
slot->table = tbl;
slot->slot_nr = slotid;
@@ -558,7 +558,7 @@ struct nfs4_session *nfs4_alloc_session(struct nfs_client *clp)
{
struct nfs4_session *session;
- session = kzalloc(sizeof(struct nfs4_session), GFP_NOFS);
+ session = kzalloc_obj(struct nfs4_session, GFP_NOFS);
if (!session)
return NULL;
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 963719f35467..7e1f14fad898 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -446,7 +446,7 @@ nfs4_alloc_state_owner(struct nfs_server *server,
{
struct nfs4_state_owner *sp;
- sp = kzalloc(sizeof(*sp), gfp_flags);
+ sp = kzalloc_obj(*sp, gfp_flags);
if (!sp)
return NULL;
sp->so_seqid.owner_id = atomic64_inc_return(&server->owner_ctr);
@@ -612,7 +612,7 @@ nfs4_alloc_open_state(void)
{
struct nfs4_state *state;
- state = kzalloc(sizeof(*state), GFP_KERNEL_ACCOUNT);
+ state = kzalloc_obj(*state, GFP_KERNEL_ACCOUNT);
if (!state)
return NULL;
refcount_set(&state->count, 1);
@@ -815,7 +815,7 @@ static struct nfs4_lock_state *nfs4_alloc_lock_state(struct nfs4_state *state, f
struct nfs4_lock_state *lsp;
struct nfs_server *server = state->owner->so_server;
- lsp = kzalloc(sizeof(*lsp), GFP_KERNEL_ACCOUNT);
+ lsp = kzalloc_obj(*lsp, GFP_KERNEL_ACCOUNT);
if (lsp == NULL)
return NULL;
nfs4_init_seqid_counter(&lsp->ls_seqid);
@@ -1014,7 +1014,7 @@ struct nfs_seqid *nfs_alloc_seqid(struct nfs_seqid_counter *counter, gfp_t gfp_m
{
struct nfs_seqid *new;
- new = kmalloc(sizeof(*new), gfp_mask);
+ new = kmalloc_obj(*new, gfp_mask);
if (new == NULL)
return ERR_PTR(-ENOMEM);
new->sequence = counter;
@@ -2054,7 +2054,7 @@ static int nfs4_try_migration(struct nfs_server *server, const struct cred *cred
clp->cl_hostname);
page = alloc_page(GFP_KERNEL);
- locations = kmalloc(sizeof(struct nfs4_fs_locations), GFP_KERNEL);
+ locations = kmalloc_obj(struct nfs4_fs_locations, GFP_KERNEL);
fattr = nfs_alloc_fattr();
if (page == NULL || locations == NULL || fattr == NULL) {
dprintk("<-- %s: no memory\n", __func__);
diff --git a/fs/nfs/nfs4super.c b/fs/nfs/nfs4super.c
index 5ec9c83f1ef0..678f1f6c62bc 100644
--- a/fs/nfs/nfs4super.c
+++ b/fs/nfs/nfs4super.c
@@ -100,7 +100,7 @@ static int nfs_referral_loop_protect(void)
struct nfs_referral_count *p, *new;
int ret = -ENOMEM;
- new = kmalloc(sizeof(*new), GFP_KERNEL);
+ new = kmalloc_obj(*new, GFP_KERNEL);
if (!new)
goto out;
new->task = current;
diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c
index 6e69ce43a13f..a9373de891c9 100644
--- a/fs/nfs/pagelist.c
+++ b/fs/nfs/pagelist.c
@@ -893,7 +893,8 @@ int nfs_generic_pgio(struct nfs_pageio_descriptor *desc,
if (pagecount <= ARRAY_SIZE(pg_array->page_array))
pg_array->pagevec = pg_array->page_array;
else {
- pg_array->pagevec = kcalloc(pagecount, sizeof(struct page *), gfp_flags);
+ pg_array->pagevec = kzalloc_objs(struct page *, pagecount,
+ gfp_flags);
if (!pg_array->pagevec) {
pg_array->npages = 0;
nfs_pgio_error(hdr);
@@ -991,7 +992,7 @@ nfs_pageio_alloc_mirrors(struct nfs_pageio_descriptor *desc,
desc->pg_mirrors_dynamic = NULL;
if (mirror_count == 1)
return desc->pg_mirrors_static;
- ret = kmalloc_array(mirror_count, sizeof(*ret), nfs_io_gfp_mask());
+ ret = kmalloc_objs(*ret, mirror_count, nfs_io_gfp_mask());
if (ret != NULL) {
for (i = 0; i < mirror_count; i++)
nfs_pageio_mirror_init(&ret[i], desc->pg_bsize);
diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
index ff8483d3373a..bc13d1e69449 100644
--- a/fs/nfs/pnfs.c
+++ b/fs/nfs/pnfs.c
@@ -1143,7 +1143,7 @@ static struct page **nfs4_alloc_pages(size_t size, gfp_t gfp_flags)
struct page **pages;
int i;
- pages = kmalloc_array(size, sizeof(struct page *), gfp_flags);
+ pages = kmalloc_objs(struct page *, size, gfp_flags);
if (!pages) {
dprintk("%s: can't alloc array of %zu pages\n", __func__, size);
return NULL;
@@ -1175,7 +1175,7 @@ pnfs_alloc_init_layoutget_args(struct inode *ino,
dprintk("--> %s\n", __func__);
- lgp = kzalloc(sizeof(*lgp), gfp_flags);
+ lgp = kzalloc_obj(*lgp, gfp_flags);
if (lgp == NULL)
return NULL;
@@ -1357,7 +1357,7 @@ pnfs_send_layoutreturn(struct pnfs_layout_hdr *lo,
int status = 0;
*pcred = NULL;
- lrp = kzalloc(sizeof(*lrp), nfs_io_gfp_mask());
+ lrp = kzalloc_obj(*lrp, nfs_io_gfp_mask());
if (unlikely(lrp == NULL)) {
status = -ENOMEM;
spin_lock(&ino->i_lock);
@@ -3379,7 +3379,7 @@ pnfs_layoutcommit_inode(struct inode *inode, bool sync)
status = -ENOMEM;
/* Note kzalloc ensures data->res.seq_res.sr_slot == NULL */
- data = kzalloc(sizeof(*data), nfs_io_gfp_mask());
+ data = kzalloc_obj(*data, nfs_io_gfp_mask());
if (!data)
goto clear_layoutcommitting;
@@ -3450,7 +3450,7 @@ struct nfs4_threshold *pnfs_mdsthreshold_alloc(void)
{
struct nfs4_threshold *thp;
- thp = kzalloc(sizeof(*thp), nfs_io_gfp_mask());
+ thp = kzalloc_obj(*thp, nfs_io_gfp_mask());
if (!thp) {
dprintk("%s mdsthreshold allocation failed\n", __func__);
return NULL;
@@ -3487,7 +3487,7 @@ pnfs_report_layoutstat(struct inode *inode, gfp_t gfp_flags)
pnfs_get_layout_hdr(hdr);
spin_unlock(&inode->i_lock);
- data = kzalloc(sizeof(*data), gfp_flags);
+ data = kzalloc_obj(*data, gfp_flags);
if (!data) {
status = -ENOMEM;
goto out_put;
diff --git a/fs/nfs/pnfs_dev.c b/fs/nfs/pnfs_dev.c
index bf0f2d67e96c..274abdd6d5f3 100644
--- a/fs/nfs/pnfs_dev.c
+++ b/fs/nfs/pnfs_dev.c
@@ -114,11 +114,11 @@ nfs4_get_device_info(struct nfs_server *server,
dprintk("%s: server %p max_resp_sz %u max_pages %d\n",
__func__, server, max_resp_sz, max_pages);
- pdev = kzalloc(sizeof(*pdev), gfp_flags);
+ pdev = kzalloc_obj(*pdev, gfp_flags);
if (!pdev)
return NULL;
- pages = kcalloc(max_pages, sizeof(struct page *), gfp_flags);
+ pages = kzalloc_objs(struct page *, max_pages, gfp_flags);
if (!pages)
goto out_free_pdev;
diff --git a/fs/nfs/pnfs_nfs.c b/fs/nfs/pnfs_nfs.c
index 9976cc16b689..12632a706da8 100644
--- a/fs/nfs/pnfs_nfs.c
+++ b/fs/nfs/pnfs_nfs.c
@@ -101,7 +101,7 @@ pnfs_alloc_commit_array(size_t n, gfp_t gfp_flags)
struct pnfs_commit_array *p;
struct pnfs_commit_bucket *b;
- p = kmalloc(struct_size(p, buckets, n), gfp_flags);
+ p = kmalloc_flex(*p, buckets, n, gfp_flags);
if (!p)
return NULL;
p->nbuckets = n;
@@ -618,7 +618,7 @@ _data_server_lookup_locked(const struct nfs_net *nn, const struct list_head *dsa
static struct nfs4_pnfs_ds_addr *nfs4_pnfs_ds_addr_alloc(gfp_t gfp_flags)
{
- struct nfs4_pnfs_ds_addr *da = kzalloc(sizeof(*da), gfp_flags);
+ struct nfs4_pnfs_ds_addr *da = kzalloc_obj(*da, gfp_flags);
if (da)
INIT_LIST_HEAD(&da->da_node);
return da;
@@ -730,7 +730,7 @@ nfs4_pnfs_ds_add(const struct net *net, struct list_head *dsaddrs, gfp_t gfp_fla
goto out;
}
- ds = kzalloc(sizeof(*ds), gfp_flags);
+ ds = kzalloc_obj(*ds, gfp_flags);
if (!ds)
goto out;
diff --git a/fs/nfs/proc.c b/fs/nfs/proc.c
index 0e440ebf5335..523f44a2a416 100644
--- a/fs/nfs/proc.c
+++ b/fs/nfs/proc.c
@@ -217,7 +217,7 @@ static struct nfs_createdata *nfs_alloc_createdata(struct inode *dir,
{
struct nfs_createdata *data;
- data = kmalloc(sizeof(*data), GFP_KERNEL);
+ data = kmalloc_obj(*data, GFP_KERNEL);
if (data != NULL) {
data->arg.fh = NFS_FH(dir);
diff --git a/fs/nfs/sysfs.c b/fs/nfs/sysfs.c
index 7bf650fda1cb..2c723d41b7a7 100644
--- a/fs/nfs/sysfs.c
+++ b/fs/nfs/sysfs.c
@@ -43,7 +43,7 @@ int nfs_sysfs_init(void)
{
int ret;
- nfs_kset = kzalloc(sizeof(*nfs_kset), GFP_KERNEL);
+ nfs_kset = kzalloc_obj(*nfs_kset, GFP_KERNEL);
if (!nfs_kset)
return -ENOMEM;
@@ -172,7 +172,7 @@ static struct nfs_netns_client *nfs_netns_client_alloc(struct kobject *parent,
{
struct nfs_netns_client *p;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (p) {
p->net = net;
p->kobject.kset = nfs_kset;
diff --git a/fs/nfs/unlink.c b/fs/nfs/unlink.c
index 4db818c0f9dd..2a07899c69af 100644
--- a/fs/nfs/unlink.c
+++ b/fs/nfs/unlink.c
@@ -175,7 +175,7 @@ nfs_async_unlink(struct dentry *dentry, const struct qstr *name)
int status = -ENOMEM;
void *devname_garbage = NULL;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (data == NULL)
goto out;
data->args.name.name = kstrdup(name->name, GFP_KERNEL);
@@ -355,7 +355,7 @@ nfs_async_rename(struct inode *old_dir, struct inode *new_dir,
nfs_server_capable(new_dir, NFS_CAP_MOVEABLE))
task_setup_data.flags |= RPC_TASK_MOVEABLE;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (data == NULL)
return ERR_PTR(-ENOMEM);
task_setup_data.task = &data->task;
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index 2d0e4a765aeb..1ed4b3590b1a 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -113,7 +113,7 @@ static void nfs_writehdr_free(struct nfs_pgio_header *hdr)
static struct nfs_io_completion *nfs_io_completion_alloc(gfp_t gfp_flags)
{
- return kmalloc(sizeof(struct nfs_io_completion), gfp_flags);
+ return kmalloc_obj(struct nfs_io_completion, gfp_flags);
}
static void nfs_io_completion_init(struct nfs_io_completion *ioc,
diff --git a/fs/nfsd/blocklayout.c b/fs/nfsd/blocklayout.c
index afa16d7a8013..e3553ccb6ab4 100644
--- a/fs/nfsd/blocklayout.c
+++ b/fs/nfsd/blocklayout.c
@@ -131,7 +131,7 @@ nfsd4_block_proc_layoutget(struct svc_rqst *rqstp, struct inode *inode,
* layouts, so make sure to zero the whole structure.
*/
nfserr = nfserrno(-ENOMEM);
- bl = kzalloc(struct_size(bl, extents, nr_extents_max), GFP_KERNEL);
+ bl = kzalloc_flex(*bl, extents, nr_extents_max, GFP_KERNEL);
if (!bl)
goto out_error;
bl->nr_extents = nr_extents_max;
@@ -208,7 +208,7 @@ nfsd4_block_get_device_info_simple(struct super_block *sb,
struct pnfs_block_deviceaddr *dev;
struct pnfs_block_volume *b;
- dev = kzalloc(struct_size(dev, volumes, 1), GFP_KERNEL);
+ dev = kzalloc_flex(*dev, volumes, 1, GFP_KERNEL);
if (!dev)
return -ENOMEM;
gdp->gd_device = dev;
@@ -319,7 +319,7 @@ nfsd4_block_get_device_info_scsi(struct super_block *sb,
const struct pr_ops *ops;
int ret;
- dev = kzalloc(struct_size(dev, volumes, 1), GFP_KERNEL);
+ dev = kzalloc_flex(*dev, volumes, 1, GFP_KERNEL);
if (!dev)
return -ENOMEM;
gdp->gd_device = dev;
diff --git a/fs/nfsd/blocklayoutxdr.c b/fs/nfsd/blocklayoutxdr.c
index 196ef4245604..3c145146a0c8 100644
--- a/fs/nfsd/blocklayoutxdr.c
+++ b/fs/nfsd/blocklayoutxdr.c
@@ -164,7 +164,7 @@ nfsd4_block_decode_layoutupdate(struct xdr_stream *xdr, struct iomap **iomapp,
if (len != expected)
return nfserr_bad_xdr;
- iomaps = kcalloc(nr_iomaps, sizeof(*iomaps), GFP_KERNEL);
+ iomaps = kzalloc_objs(*iomaps, nr_iomaps, GFP_KERNEL);
if (!iomaps)
return nfserr_delay;
@@ -258,7 +258,7 @@ nfsd4_scsi_decode_layoutupdate(struct xdr_stream *xdr, struct iomap **iomapp,
if (len != expected)
return nfserr_bad_xdr;
- iomaps = kcalloc(nr_iomaps, sizeof(*iomaps), GFP_KERNEL);
+ iomaps = kzalloc_objs(*iomaps, nr_iomaps, GFP_KERNEL);
if (!iomaps)
return nfserr_delay;
diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
index 09fe268fe2c7..8fb394afc3f5 100644
--- a/fs/nfsd/export.c
+++ b/fs/nfsd/export.c
@@ -234,7 +234,7 @@ static inline void expkey_update(struct cache_head *cnew,
static struct cache_head *expkey_alloc(void)
{
- struct svc_expkey *i = kmalloc(sizeof(*i), GFP_KERNEL);
+ struct svc_expkey *i = kmalloc_obj(*i, GFP_KERNEL);
if (i)
return &i->h;
else
@@ -479,9 +479,8 @@ fsloc_parse(char **mesg, char *buf, struct nfsd4_fs_locations *fsloc)
if (fsloc->locations_count == 0)
return 0;
- fsloc->locations = kcalloc(fsloc->locations_count,
- sizeof(struct nfsd4_fs_location),
- GFP_KERNEL);
+ fsloc->locations = kzalloc_objs(struct nfsd4_fs_location,
+ fsloc->locations_count, GFP_KERNEL);
if (!fsloc->locations)
return -ENOMEM;
for (i=0; i < fsloc->locations_count; i++) {
@@ -871,11 +870,11 @@ static void export_update(struct cache_head *cnew, struct cache_head *citem)
static struct cache_head *svc_export_alloc(void)
{
- struct svc_export *i = kmalloc(sizeof(*i), GFP_KERNEL);
+ struct svc_export *i = kmalloc_obj(*i, GFP_KERNEL);
if (!i)
return NULL;
- i->ex_stats = kmalloc(sizeof(*(i->ex_stats)), GFP_KERNEL);
+ i->ex_stats = kmalloc_obj(*(i->ex_stats), GFP_KERNEL);
if (!i->ex_stats) {
kfree(i);
return NULL;
diff --git a/fs/nfsd/filecache.c b/fs/nfsd/filecache.c
index 93798575b807..6b4eeb28c88b 100644
--- a/fs/nfsd/filecache.c
+++ b/fs/nfsd/filecache.c
@@ -899,7 +899,7 @@ nfsd_alloc_fcache_disposal(void)
{
struct nfsd_fcache_disposal *l;
- l = kmalloc(sizeof(*l), GFP_KERNEL);
+ l = kmalloc_obj(*l, GFP_KERNEL);
if (!l)
return NULL;
spin_lock_init(&l->lock);
diff --git a/fs/nfsd/flexfilelayout.c b/fs/nfsd/flexfilelayout.c
index 0f1a35400cd5..a65d55bcdc02 100644
--- a/fs/nfsd/flexfilelayout.c
+++ b/fs/nfsd/flexfilelayout.c
@@ -36,7 +36,7 @@ nfsd4_ff_proc_layoutget(struct svc_rqst *rqstp, struct inode *inode,
* Zero it out for the stateid - don't want junk in there!
*/
error = -ENOMEM;
- fl = kzalloc(sizeof(*fl), GFP_KERNEL);
+ fl = kzalloc_obj(*fl, GFP_KERNEL);
if (!fl)
goto out_error;
args->lg_content = fl;
@@ -86,7 +86,7 @@ nfsd4_ff_proc_getdeviceinfo(struct super_block *sb, struct svc_rqst *rqstp,
u16 port;
char addr[INET6_ADDRSTRLEN];
- da = kzalloc(sizeof(struct pnfs_ff_device_addr), GFP_KERNEL);
+ da = kzalloc_obj(struct pnfs_ff_device_addr, GFP_KERNEL);
if (!da)
return nfserrno(-ENOMEM);
diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c
index e00b2aea8da2..88782df7c3a1 100644
--- a/fs/nfsd/nfs4callback.c
+++ b/fs/nfsd/nfs4callback.c
@@ -1378,7 +1378,7 @@ void nfsd41_cb_referring_call(struct nfsd4_callback *cb,
}
}
if (!found) {
- rcl = kmalloc(sizeof(*rcl), GFP_KERNEL);
+ rcl = kmalloc_obj(*rcl, GFP_KERNEL);
if (!rcl)
return;
memcpy(rcl->rcl_sessionid.data, sessionid->data,
@@ -1397,7 +1397,7 @@ void nfsd41_cb_referring_call(struct nfsd4_callback *cb,
}
}
if (!found) {
- rc = kmalloc(sizeof(*rc), GFP_KERNEL);
+ rc = kmalloc_obj(*rc, GFP_KERNEL);
if (!rc)
goto out;
rc->rc_sequenceid = seqno;
diff --git a/fs/nfsd/nfs4idmap.c b/fs/nfsd/nfs4idmap.c
index c319c31b0f64..6415b847a939 100644
--- a/fs/nfsd/nfs4idmap.c
+++ b/fs/nfsd/nfs4idmap.c
@@ -97,7 +97,7 @@ ent_put(struct kref *ref)
static struct cache_head *
ent_alloc(void)
{
- struct ent *e = kmalloc(sizeof(*e), GFP_KERNEL);
+ struct ent *e = kmalloc_obj(*e, GFP_KERNEL);
if (e)
return &e->h;
else
diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
index 37ab3a69c4b6..7dbb1dc184db 100644
--- a/fs/nfsd/nfs4proc.c
+++ b/fs/nfsd/nfs4proc.c
@@ -451,7 +451,7 @@ do_open_lookup(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, stru
int accmode;
__be32 status;
- *resfh = kmalloc(sizeof(struct svc_fh), GFP_KERNEL);
+ *resfh = kmalloc_obj(struct svc_fh, GFP_KERNEL);
if (!*resfh)
return nfserr_jukebox;
fh_init(*resfh, NFS4_FHSIZE);
@@ -1630,7 +1630,7 @@ static __be32 nfsd4_ssc_setup_dul(struct nfsd_net *nn, char *ipaddr,
__be32 status = 0;
*nsui = NULL;
- work = kzalloc(sizeof(*work), GFP_KERNEL);
+ work = kzalloc_obj(*work, GFP_KERNEL);
try_again:
spin_lock(&nn->nfsd_ssc_lock);
list_for_each_entry_safe(ni, tmp, &nn->nfsd_ssc_mount_list, nsui_list) {
@@ -2160,7 +2160,7 @@ nfsd4_copy(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
memcpy(©->fh, &cstate->current_fh.fh_handle,
sizeof(struct knfsd_fh));
if (nfsd4_copy_is_async(copy)) {
- async_copy = kzalloc(sizeof(struct nfsd4_copy), GFP_KERNEL);
+ async_copy = kzalloc_obj(struct nfsd4_copy, GFP_KERNEL);
if (!async_copy)
goto out_err;
async_copy->cp_nn = nn;
@@ -2171,7 +2171,8 @@ nfsd4_copy(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
if (atomic_inc_return(&nn->pending_async_copies) >
(int)rqstp->rq_pool->sp_nrthreads)
goto out_dec_async_copy_err;
- async_copy->cp_src = kmalloc(sizeof(*async_copy->cp_src), GFP_KERNEL);
+ async_copy->cp_src = kmalloc_obj(*async_copy->cp_src,
+ GFP_KERNEL);
if (!async_copy->cp_src)
goto out_dec_async_copy_err;
if (!nfs4_init_copy_state(nn, copy))
diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
index 1e6b2dd47ba7..87de08c7f405 100644
--- a/fs/nfsd/nfs4recover.c
+++ b/fs/nfsd/nfs4recover.c
@@ -203,7 +203,7 @@ nfsd4_build_namelist(struct dir_context *__ctx, const char *name, int namlen,
if (namlen != HEXDIR_LEN - 1)
return true;
- entry = kmalloc(sizeof(struct name_list), GFP_KERNEL);
+ entry = kmalloc_obj(struct name_list, GFP_KERNEL);
if (entry == NULL)
return false;
memcpy(entry->name, name, HEXDIR_LEN - 1);
@@ -478,9 +478,8 @@ nfs4_legacy_state_init(struct net *net)
struct nfsd_net *nn = net_generic(net, nfsd_net_id);
int i;
- nn->reclaim_str_hashtbl = kmalloc_array(CLIENT_HASH_SIZE,
- sizeof(struct list_head),
- GFP_KERNEL);
+ nn->reclaim_str_hashtbl = kmalloc_objs(struct list_head,
+ CLIENT_HASH_SIZE, GFP_KERNEL);
if (!nn->reclaim_str_hashtbl)
return -ENOMEM;
@@ -898,7 +897,7 @@ __nfsd4_init_cld_pipe(struct net *net)
if (nn->cld_net)
return 0;
- cn = kzalloc(sizeof(*cn), GFP_KERNEL);
+ cn = kzalloc_obj(*cn, GFP_KERNEL);
if (!cn) {
ret = -ENOMEM;
goto err;
@@ -960,7 +959,7 @@ alloc_cld_upcall(struct nfsd_net *nn)
struct cld_upcall *new, *tmp;
struct cld_net *cn = nn->cld_net;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return new;
@@ -1356,9 +1355,8 @@ nfs4_cld_state_init(struct net *net)
struct nfsd_net *nn = net_generic(net, nfsd_net_id);
int i;
- nn->reclaim_str_hashtbl = kmalloc_array(CLIENT_HASH_SIZE,
- sizeof(struct list_head),
- GFP_KERNEL);
+ nn->reclaim_str_hashtbl = kmalloc_objs(struct list_head,
+ CLIENT_HASH_SIZE, GFP_KERNEL);
if (!nn->reclaim_str_hashtbl)
return -ENOMEM;
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index f5cb067a1e50..fb5b2ff4201e 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -299,7 +299,7 @@ find_or_allocate_block(struct nfs4_lockowner *lo, struct knfsd_fh *fh,
nbl = find_blocked_lock(lo, fh, nn);
if (!nbl) {
- nbl = kmalloc(sizeof(*nbl), GFP_KERNEL);
+ nbl = kmalloc_obj(*nbl, GFP_KERNEL);
if (nbl) {
INIT_LIST_HEAD(&nbl->nbl_list);
INIT_LIST_HEAD(&nbl->nbl_lru);
@@ -974,7 +974,7 @@ struct nfs4_cpntf_state *nfs4_alloc_init_cpntf_state(struct nfsd_net *nn,
{
struct nfs4_cpntf_state *cps;
- cps = kzalloc(sizeof(struct nfs4_cpntf_state), GFP_KERNEL);
+ cps = kzalloc_obj(struct nfs4_cpntf_state, GFP_KERNEL);
if (!cps)
return NULL;
cps->cpntf_time = ktime_get_boottime_seconds();
@@ -2032,7 +2032,7 @@ static struct nfsd4_slot *nfsd4_alloc_slot(struct nfsd4_channel_attrs *fattrs,
size = fattrs->maxresp_cached < NFSD_MIN_HDR_SEQ_SZ ?
0 : fattrs->maxresp_cached - NFSD_MIN_HDR_SEQ_SZ;
- slot = kzalloc(struct_size(slot, sl_data, size), gfp);
+ slot = kzalloc_flex(*slot, sl_data, size, gfp);
if (!slot)
return NULL;
slot->sl_index = index;
@@ -2047,7 +2047,7 @@ static struct nfsd4_session *alloc_session(struct nfsd4_channel_attrs *fattrs,
struct nfsd4_slot *slot;
int i;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return NULL;
xa_init(&new->se_slots);
@@ -2108,7 +2108,7 @@ static struct nfsd4_conn *alloc_conn(struct svc_rqst *rqstp, u32 flags)
{
struct nfsd4_conn *conn;
- conn = kmalloc(sizeof(struct nfsd4_conn), GFP_KERNEL);
+ conn = kmalloc_obj(struct nfsd4_conn, GFP_KERNEL);
if (!conn)
return NULL;
svc_xprt_get(rqstp->rq_xprt);
@@ -2357,9 +2357,8 @@ static struct nfs4_client *alloc_client(struct xdr_netobj name,
xdr_netobj_dup(&clp->cl_name, &name, GFP_KERNEL);
if (clp->cl_name.data == NULL)
goto err_no_name;
- clp->cl_ownerstr_hashtbl = kmalloc_array(OWNER_HASH_SIZE,
- sizeof(struct list_head),
- GFP_KERNEL);
+ clp->cl_ownerstr_hashtbl = kmalloc_objs(struct list_head,
+ OWNER_HASH_SIZE, GFP_KERNEL);
if (!clp->cl_ownerstr_hashtbl)
goto err_no_hashtbl;
clp->cl_callback_wq = alloc_ordered_workqueue("nfsd4_callbacks", 0);
@@ -3309,7 +3308,7 @@ static struct nfs4_client *create_client(struct xdr_netobj name,
free_client(clp);
return NULL;
}
- clp->cl_ra = kzalloc(sizeof(*clp->cl_ra), GFP_KERNEL);
+ clp->cl_ra = kzalloc_obj(*clp->cl_ra, GFP_KERNEL);
if (!clp->cl_ra) {
free_client(clp);
return NULL;
@@ -8823,7 +8822,7 @@ nfsd4_release_lockowner(struct svc_rqst *rqstp,
static inline struct nfs4_client_reclaim *
alloc_reclaim(void)
{
- return kmalloc(sizeof(struct nfs4_client_reclaim), GFP_KERNEL);
+ return kmalloc_obj(struct nfs4_client_reclaim, GFP_KERNEL);
}
bool
@@ -8960,19 +8959,16 @@ static int nfs4_state_create_net(struct net *net)
struct nfsd_net *nn = net_generic(net, nfsd_net_id);
int i;
- nn->conf_id_hashtbl = kmalloc_array(CLIENT_HASH_SIZE,
- sizeof(struct list_head),
- GFP_KERNEL);
+ nn->conf_id_hashtbl = kmalloc_objs(struct list_head, CLIENT_HASH_SIZE,
+ GFP_KERNEL);
if (!nn->conf_id_hashtbl)
goto err;
- nn->unconf_id_hashtbl = kmalloc_array(CLIENT_HASH_SIZE,
- sizeof(struct list_head),
- GFP_KERNEL);
+ nn->unconf_id_hashtbl = kmalloc_objs(struct list_head, CLIENT_HASH_SIZE,
+ GFP_KERNEL);
if (!nn->unconf_id_hashtbl)
goto err_unconf_id;
- nn->sessionid_hashtbl = kmalloc_array(SESSION_HASH_SIZE,
- sizeof(struct list_head),
- GFP_KERNEL);
+ nn->sessionid_hashtbl = kmalloc_objs(struct list_head,
+ SESSION_HASH_SIZE, GFP_KERNEL);
if (!nn->sessionid_hashtbl)
goto err_sessionid;
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index 5172dbd0cb05..c96d31b7846e 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -124,7 +124,7 @@ svcxdr_tmpalloc(struct nfsd4_compoundargs *argp, size_t len)
{
struct svcxdr_tmpbuf *tb;
- tb = kmalloc(struct_size(tb, buf, len), GFP_KERNEL);
+ tb = kmalloc_flex(*tb, buf, len, GFP_KERNEL);
if (!tb)
return NULL;
tb->next = argp->to_free;
@@ -2184,7 +2184,7 @@ nfsd4_decode_copy(struct nfsd4_compoundargs *argp, union nfsd4_op_u *u)
if (status)
return status;
- ns_dummy = kmalloc(sizeof(struct nl4_server), GFP_KERNEL);
+ ns_dummy = kmalloc_obj(struct nl4_server, GFP_KERNEL);
if (ns_dummy == NULL)
return nfserr_jukebox;
for (i = 0; i < count - 1; i++) {
@@ -3956,7 +3956,7 @@ nfsd4_encode_fattr4(struct svc_rqst *rqstp, struct xdr_stream *xdr,
}
if ((attrmask[0] & (FATTR4_WORD0_FILEHANDLE | FATTR4_WORD0_FSID)) &&
!fhp) {
- tempfh = kmalloc(sizeof(struct svc_fh), GFP_KERNEL);
+ tempfh = kmalloc_obj(struct svc_fh, GFP_KERNEL);
status = nfserr_jukebox;
if (!tempfh)
goto out;
diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c
index 89fe2c0e8d44..777b7bb9aeca 100644
--- a/fs/nfsd/nfsctl.c
+++ b/fs/nfsd/nfsctl.c
@@ -477,7 +477,7 @@ static ssize_t write_pool_threads(struct file *file, char *buf, size_t size)
return strlen(buf);
}
- nthreads = kcalloc(npools, sizeof(int), GFP_KERNEL);
+ nthreads = kzalloc_objs(int, npools, GFP_KERNEL);
rv = -ENOMEM;
if (nthreads == NULL)
goto out_free;
@@ -1596,7 +1596,7 @@ int nfsd_nl_threads_set_doit(struct sk_buff *skb, struct genl_info *info)
mutex_lock(&nfsd_mutex);
- nthreads = kcalloc(nrpools, sizeof(int), GFP_KERNEL);
+ nthreads = kzalloc_objs(int, nrpools, GFP_KERNEL);
if (!nthreads) {
ret = -ENOMEM;
goto out_unlock;
diff --git a/fs/nilfs2/alloc.c b/fs/nilfs2/alloc.c
index 6b506995818d..e7eebb04f9a4 100644
--- a/fs/nilfs2/alloc.c
+++ b/fs/nilfs2/alloc.c
@@ -54,7 +54,7 @@ int nilfs_palloc_init_blockgroup(struct inode *inode, unsigned int entry_size)
{
struct nilfs_mdt_info *mi = NILFS_MDT(inode);
- mi->mi_bgl = kmalloc(sizeof(*mi->mi_bgl), GFP_NOFS);
+ mi->mi_bgl = kmalloc_obj(*mi->mi_bgl, GFP_NOFS);
if (!mi->mi_bgl)
return -ENOMEM;
diff --git a/fs/nilfs2/recovery.c b/fs/nilfs2/recovery.c
index a9c61d0492cb..4d5a6aa5214c 100644
--- a/fs/nilfs2/recovery.c
+++ b/fs/nilfs2/recovery.c
@@ -370,7 +370,7 @@ static int nilfs_scan_dsync_log(struct the_nilfs *nilfs, sector_t start_blocknr,
if (unlikely(!binfo))
goto out;
- rb = kmalloc(sizeof(*rb), GFP_NOFS);
+ rb = kmalloc_obj(*rb, GFP_NOFS);
if (unlikely(!rb)) {
err = -ENOMEM;
goto out;
@@ -414,7 +414,7 @@ struct nilfs_segment_entry {
static int nilfs_segment_list_add(struct list_head *head, __u64 segnum)
{
- struct nilfs_segment_entry *ent = kmalloc(sizeof(*ent), GFP_NOFS);
+ struct nilfs_segment_entry *ent = kmalloc_obj(*ent, GFP_NOFS);
if (unlikely(!ent))
return -ENOMEM;
diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
index deee16bc9d4e..21c5539c7e84 100644
--- a/fs/nilfs2/segment.c
+++ b/fs/nilfs2/segment.c
@@ -2701,7 +2701,7 @@ static struct nilfs_sc_info *nilfs_segctor_new(struct super_block *sb,
struct the_nilfs *nilfs = sb->s_fs_info;
struct nilfs_sc_info *sci;
- sci = kzalloc(sizeof(*sci), GFP_KERNEL);
+ sci = kzalloc_obj(*sci, GFP_KERNEL);
if (!sci)
return NULL;
diff --git a/fs/nilfs2/super.c b/fs/nilfs2/super.c
index badc2cbc895e..55fac3f83232 100644
--- a/fs/nilfs2/super.c
+++ b/fs/nilfs2/super.c
@@ -1292,7 +1292,7 @@ static int nilfs_init_fs_context(struct fs_context *fc)
{
struct nilfs_fs_context *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/nilfs2/the_nilfs.c b/fs/nilfs2/the_nilfs.c
index d0bcf744c553..f481532ea8e9 100644
--- a/fs/nilfs2/the_nilfs.c
+++ b/fs/nilfs2/the_nilfs.c
@@ -56,7 +56,7 @@ struct the_nilfs *alloc_nilfs(struct super_block *sb)
{
struct the_nilfs *nilfs;
- nilfs = kzalloc(sizeof(*nilfs), GFP_KERNEL);
+ nilfs = kzalloc_obj(*nilfs, GFP_KERNEL);
if (!nilfs)
return NULL;
@@ -877,7 +877,7 @@ nilfs_find_or_create_root(struct the_nilfs *nilfs, __u64 cno)
if (root)
return root;
- new = kzalloc(sizeof(*root), GFP_KERNEL);
+ new = kzalloc_obj(*root, GFP_KERNEL);
if (!new)
return NULL;
diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c
index d0b9b984002f..c2dcb25151de 100644
--- a/fs/notify/fanotify/fanotify_user.c
+++ b/fs/notify/fanotify/fanotify_user.c
@@ -1573,7 +1573,7 @@ static struct fsnotify_event *fanotify_alloc_overflow_event(void)
{
struct fanotify_event *oevent;
- oevent = kmalloc(sizeof(*oevent), GFP_KERNEL_ACCOUNT);
+ oevent = kmalloc_obj(*oevent, GFP_KERNEL_ACCOUNT);
if (!oevent)
return NULL;
diff --git a/fs/notify/group.c b/fs/notify/group.c
index 18446b7b0d49..b56d1c1d9644 100644
--- a/fs/notify/group.c
+++ b/fs/notify/group.c
@@ -117,7 +117,7 @@ static struct fsnotify_group *__fsnotify_alloc_group(
{
struct fsnotify_group *group;
- group = kzalloc(sizeof(struct fsnotify_group), gfp);
+ group = kzalloc_obj(struct fsnotify_group, gfp);
if (!group)
return ERR_PTR(-ENOMEM);
diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c
index b372fb2c56bd..5e1845f2c25d 100644
--- a/fs/notify/inotify/inotify_user.c
+++ b/fs/notify/inotify/inotify_user.c
@@ -660,7 +660,7 @@ static struct fsnotify_group *inotify_new_group(unsigned int max_events)
if (IS_ERR(group))
return group;
- oevent = kmalloc(sizeof(struct inotify_event_info), GFP_KERNEL_ACCOUNT);
+ oevent = kmalloc_obj(struct inotify_event_info, GFP_KERNEL_ACCOUNT);
if (unlikely(!oevent)) {
fsnotify_destroy_group(group);
return ERR_PTR(-ENOMEM);
diff --git a/fs/notify/mark.c b/fs/notify/mark.c
index 8e6997e9aebb..691d36104ae2 100644
--- a/fs/notify/mark.c
+++ b/fs/notify/mark.c
@@ -644,7 +644,7 @@ static int fsnotify_attach_info_to_sb(struct super_block *sb)
struct fsnotify_sb_info *sbinfo;
/* sb info is freed on fsnotify_sb_delete() */
- sbinfo = kzalloc(sizeof(*sbinfo), GFP_KERNEL);
+ sbinfo = kzalloc_obj(*sbinfo, GFP_KERNEL);
if (!sbinfo)
return -ENOMEM;
diff --git a/fs/ntfs3/bitmap.c b/fs/ntfs3/bitmap.c
index db7d0ecfb469..60b362f388d9 100644
--- a/fs/ntfs3/bitmap.c
+++ b/fs/ntfs3/bitmap.c
@@ -519,7 +519,7 @@ static int wnd_rescan(struct wnd_bitmap *wnd)
vbo = 0;
/* Allocate in memory instead of stack. Not critical if failed. */
- ra = kzalloc(sizeof(*ra), GFP_NOFS);
+ ra = kzalloc_obj(*ra, GFP_NOFS);
if (ra) {
file_ra_state_init(ra, mapping);
ra->ra_pages = (wnd->nbits / 8 + PAGE_SIZE - 1) >> PAGE_SHIFT;
diff --git a/fs/ntfs3/file.c b/fs/ntfs3/file.c
index f53037e0ecb6..7eecf1e01f74 100644
--- a/fs/ntfs3/file.c
+++ b/fs/ntfs3/file.c
@@ -1006,7 +1006,7 @@ static ssize_t ntfs_compress_write(struct kiocb *iocb, struct iov_iter *from)
return -EOPNOTSUPP;
}
- pages = kmalloc_array(pages_per_frame, sizeof(struct page *), GFP_NOFS);
+ pages = kmalloc_objs(struct page *, pages_per_frame, GFP_NOFS);
if (!pages)
return -ENOMEM;
diff --git a/fs/ntfs3/frecord.c b/fs/ntfs3/frecord.c
index bd0fa481e4b3..2e901d073fe9 100644
--- a/fs/ntfs3/frecord.c
+++ b/fs/ntfs3/frecord.c
@@ -316,7 +316,7 @@ bool ni_add_subrecord(struct ntfs_inode *ni, CLST rno, struct mft_inode **mi)
{
struct mft_inode *m;
- m = kzalloc(sizeof(struct mft_inode), GFP_NOFS);
+ m = kzalloc_obj(struct mft_inode, GFP_NOFS);
if (!m)
return false;
@@ -1915,7 +1915,7 @@ int ni_read_folio_cmpr(struct ntfs_inode *ni, struct folio *folio)
idx = (vbo - frame_vbo) >> PAGE_SHIFT;
pages_per_frame = frame_size >> PAGE_SHIFT;
- pages = kcalloc(pages_per_frame, sizeof(struct page *), GFP_NOFS);
+ pages = kzalloc_objs(struct page *, pages_per_frame, GFP_NOFS);
if (!pages) {
err = -ENOMEM;
goto out;
@@ -1998,7 +1998,7 @@ int ni_decompress_file(struct ntfs_inode *ni)
frame_bits = ni_ext_compress_bits(ni);
frame_size = 1u << frame_bits;
pages_per_frame = frame_size >> PAGE_SHIFT;
- pages = kcalloc(pages_per_frame, sizeof(struct page *), GFP_NOFS);
+ pages = kzalloc_objs(struct page *, pages_per_frame, GFP_NOFS);
if (!pages) {
err = -ENOMEM;
goto out;
diff --git a/fs/ntfs3/fslog.c b/fs/ntfs3/fslog.c
index 10863c83c315..272e45276143 100644
--- a/fs/ntfs3/fslog.c
+++ b/fs/ntfs3/fslog.c
@@ -2473,7 +2473,7 @@ static int read_log_rec_lcb(struct ntfs_log *log, u64 lsn, u32 ctx_mode,
if (!verify_client_lsn(log, cr, lsn))
return -EINVAL;
- lcb = kzalloc(sizeof(struct lcb), GFP_NOFS);
+ lcb = kzalloc_obj(struct lcb, GFP_NOFS);
if (!lcb)
return -ENOMEM;
lcb->client = log->client_id;
@@ -3117,8 +3117,7 @@ static int do_action(struct ntfs_log *log, struct OPEN_ATTR_ENRTY *oe,
/* Read from disk. */
err = mi_get(sbi, rno, &mi);
if (err && op == InitializeFileRecordSegment) {
- mi = kzalloc(sizeof(struct mft_inode),
- GFP_NOFS);
+ mi = kzalloc_obj(struct mft_inode, GFP_NOFS);
if (!mi)
return -ENOMEM;
err = mi_format_new(mi, sbi, rno, 0, false);
@@ -3779,7 +3778,7 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
u16 t16;
u32 t32;
- log = kzalloc(sizeof(struct ntfs_log), GFP_NOFS);
+ log = kzalloc_obj(struct ntfs_log, GFP_NOFS);
if (!log)
return -ENOMEM;
@@ -4725,7 +4724,7 @@ int log_replay(struct ntfs_inode *ni, bool *initialized)
goto next_dirty_page;
}
- oa = kzalloc(sizeof(struct OpenAttr), GFP_NOFS);
+ oa = kzalloc_obj(struct OpenAttr, GFP_NOFS);
if (!oa) {
err = -ENOMEM;
goto out;
diff --git a/fs/ntfs3/index.c b/fs/ntfs3/index.c
index 2416c61050f1..97f06c26fe1a 100644
--- a/fs/ntfs3/index.c
+++ b/fs/ntfs3/index.c
@@ -940,7 +940,7 @@ static struct indx_node *indx_new(struct ntfs_index *indx,
u16 fn;
u32 eo;
- r = kzalloc(sizeof(struct indx_node), GFP_NOFS);
+ r = kzalloc_obj(struct indx_node, GFP_NOFS);
if (!r)
return ERR_PTR(-ENOMEM);
@@ -1046,7 +1046,7 @@ int indx_read_ra(struct ntfs_index *indx, struct ntfs_inode *ni, CLST vbn,
const struct INDEX_NAMES *name;
if (!in) {
- in = kzalloc(sizeof(struct indx_node), GFP_NOFS);
+ in = kzalloc_obj(struct indx_node, GFP_NOFS);
if (!in)
return -ENOMEM;
} else {
diff --git a/fs/ntfs3/lib/lzx_decompress.c b/fs/ntfs3/lib/lzx_decompress.c
index 4d5701024f83..9196bf30011a 100644
--- a/fs/ntfs3/lib/lzx_decompress.c
+++ b/fs/ntfs3/lib/lzx_decompress.c
@@ -572,7 +572,7 @@ static int lzx_decompress_block(const struct lzx_decompressor *d,
*/
struct lzx_decompressor *lzx_allocate_decompressor(void)
{
- return kmalloc(sizeof(struct lzx_decompressor), GFP_NOFS);
+ return kmalloc_obj(struct lzx_decompressor, GFP_NOFS);
}
/*
diff --git a/fs/ntfs3/lib/xpress_decompress.c b/fs/ntfs3/lib/xpress_decompress.c
index 769c6d3dde67..402cf21aede2 100644
--- a/fs/ntfs3/lib/xpress_decompress.c
+++ b/fs/ntfs3/lib/xpress_decompress.c
@@ -39,7 +39,7 @@ struct xpress_decompressor {
*/
struct xpress_decompressor *xpress_allocate_decompressor(void)
{
- return kmalloc(sizeof(struct xpress_decompressor), GFP_NOFS);
+ return kmalloc_obj(struct xpress_decompressor, GFP_NOFS);
}
/*
diff --git a/fs/ntfs3/ntfs_fs.h b/fs/ntfs3/ntfs_fs.h
index 921b526eb0f4..daf5a1f47275 100644
--- a/fs/ntfs3/ntfs_fs.h
+++ b/fs/ntfs3/ntfs_fs.h
@@ -730,7 +730,7 @@ int indx_used_bit(struct ntfs_index *indx, struct ntfs_inode *ni, size_t *bit);
void fnd_clear(struct ntfs_fnd *fnd);
static inline struct ntfs_fnd *fnd_get(void)
{
- return kzalloc(sizeof(struct ntfs_fnd), GFP_NOFS);
+ return kzalloc_obj(struct ntfs_fnd, GFP_NOFS);
}
static inline void fnd_put(struct ntfs_fnd *fnd)
{
@@ -996,7 +996,7 @@ static inline void run_init(struct runs_tree *run)
static inline struct runs_tree *run_alloc(void)
{
- return kzalloc(sizeof(struct runs_tree), GFP_NOFS);
+ return kzalloc_obj(struct runs_tree, GFP_NOFS);
}
static inline void run_close(struct runs_tree *run)
diff --git a/fs/ntfs3/record.c b/fs/ntfs3/record.c
index 167093e8d287..32bdb034c2a3 100644
--- a/fs/ntfs3/record.c
+++ b/fs/ntfs3/record.c
@@ -71,7 +71,7 @@ static __le16 mi_new_attt_id(struct ntfs_inode *ni, struct mft_inode *mi)
int mi_get(struct ntfs_sb_info *sbi, CLST rno, struct mft_inode **mi)
{
int err;
- struct mft_inode *m = kzalloc(sizeof(struct mft_inode), GFP_NOFS);
+ struct mft_inode *m = kzalloc_obj(struct mft_inode, GFP_NOFS);
if (!m)
return -ENOMEM;
diff --git a/fs/ntfs3/super.c b/fs/ntfs3/super.c
index 27411203082a..174a7cb202a0 100644
--- a/fs/ntfs3/super.c
+++ b/fs/ntfs3/super.c
@@ -1828,7 +1828,7 @@ static int __ntfs_init_fs_context(struct fs_context *fc)
struct ntfs_mount_options *opts;
struct ntfs_sb_info *sbi;
- opts = kzalloc(sizeof(struct ntfs_mount_options), GFP_NOFS);
+ opts = kzalloc_obj(struct ntfs_mount_options, GFP_NOFS);
if (!opts)
return -ENOMEM;
@@ -1847,7 +1847,7 @@ static int __ntfs_init_fs_context(struct fs_context *fc)
if (fc->purpose == FS_CONTEXT_FOR_RECONFIGURE)
goto ok;
- sbi = kzalloc(sizeof(struct ntfs_sb_info), GFP_NOFS);
+ sbi = kzalloc_obj(struct ntfs_sb_info, GFP_NOFS);
if (!sbi)
goto free_opts;
diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c
index b7db177d17d6..ce8ce1470981 100644
--- a/fs/ocfs2/alloc.c
+++ b/fs/ocfs2/alloc.c
@@ -686,7 +686,7 @@ static struct ocfs2_path *ocfs2_new_path(struct buffer_head *root_bh,
BUG_ON(le16_to_cpu(root_el->l_tree_depth) >= OCFS2_MAX_PATH_DEPTH);
- path = kzalloc(sizeof(*path), GFP_NOFS);
+ path = kzalloc_obj(*path, GFP_NOFS);
if (path) {
path->p_tree_depth = le16_to_cpu(root_el->l_tree_depth);
get_bh(root_bh);
@@ -1202,8 +1202,7 @@ static int ocfs2_add_branch(handle_t *handle,
}
/* allocate the number of new eb blocks we need */
- new_eb_bhs = kcalloc(new_blocks, sizeof(struct buffer_head *),
- GFP_KERNEL);
+ new_eb_bhs = kzalloc_objs(struct buffer_head *, new_blocks, GFP_KERNEL);
if (!new_eb_bhs) {
status = -ENOMEM;
mlog_errno(status);
@@ -6493,7 +6492,7 @@ int ocfs2_cache_cluster_dealloc(struct ocfs2_cached_dealloc_ctxt *ctxt,
int ret = 0;
struct ocfs2_cached_block_free *item;
- item = kzalloc(sizeof(*item), GFP_NOFS);
+ item = kzalloc_obj(*item, GFP_NOFS);
if (item == NULL) {
ret = -ENOMEM;
mlog_errno(ret);
@@ -6619,7 +6618,7 @@ ocfs2_find_per_slot_free_list(int type,
fl = fl->f_next_suballocator;
}
- fl = kmalloc(sizeof(*fl), GFP_NOFS);
+ fl = kmalloc_obj(*fl, GFP_NOFS);
if (fl) {
fl->f_inode_type = type;
fl->f_slot = slot;
@@ -6794,7 +6793,7 @@ int ocfs2_cache_block_dealloc(struct ocfs2_cached_dealloc_ctxt *ctxt,
goto out;
}
- item = kzalloc(sizeof(*item), GFP_NOFS);
+ item = kzalloc_obj(*item, GFP_NOFS);
if (item == NULL) {
ret = -ENOMEM;
mlog_errno(ret);
@@ -6984,8 +6983,8 @@ int ocfs2_zero_range_for_truncate(struct inode *inode, handle_t *handle,
if (range_start >= range_end)
return 0;
- folios = kcalloc(ocfs2_pages_per_cluster(sb),
- sizeof(struct folio *), GFP_NOFS);
+ folios = kzalloc_objs(struct folio *, ocfs2_pages_per_cluster(sb),
+ GFP_NOFS);
if (folios == NULL) {
ret = -ENOMEM;
mlog_errno(ret);
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
index 76c86f1c2b1c..17ba79f443ee 100644
--- a/fs/ocfs2/aops.c
+++ b/fs/ocfs2/aops.c
@@ -823,7 +823,7 @@ static int ocfs2_alloc_write_ctxt(struct ocfs2_write_ctxt **wcp,
u32 cend;
struct ocfs2_write_ctxt *wc;
- wc = kzalloc(sizeof(struct ocfs2_write_ctxt), GFP_NOFS);
+ wc = kzalloc_obj(struct ocfs2_write_ctxt, GFP_NOFS);
if (!wc)
return -ENOMEM;
@@ -1325,8 +1325,7 @@ static int ocfs2_unwritten_check(struct inode *inode,
if (new == NULL) {
spin_unlock(&oi->ip_lock);
- new = kmalloc(sizeof(struct ocfs2_unwritten_extent),
- GFP_NOFS);
+ new = kmalloc_obj(struct ocfs2_unwritten_extent, GFP_NOFS);
if (new == NULL) {
ret = -ENOMEM;
goto out;
@@ -2080,7 +2079,7 @@ ocfs2_dio_alloc_write_ctx(struct buffer_head *bh, int *alloc)
if (bh->b_private)
return bh->b_private;
- dwc = kmalloc(sizeof(struct ocfs2_dio_write_ctxt), GFP_NOFS);
+ dwc = kmalloc_obj(struct ocfs2_dio_write_ctxt, GFP_NOFS);
if (dwc == NULL)
return NULL;
INIT_LIST_HEAD(&dwc->dw_zero_list);
diff --git a/fs/ocfs2/cluster/heartbeat.c b/fs/ocfs2/cluster/heartbeat.c
index 8e9cbc334cf4..91fb76a43900 100644
--- a/fs/ocfs2/cluster/heartbeat.c
+++ b/fs/ocfs2/cluster/heartbeat.c
@@ -1677,8 +1677,8 @@ static int o2hb_map_slot_data(struct o2hb_region *reg)
if (reg->hr_tmp_block == NULL)
return -ENOMEM;
- reg->hr_slots = kcalloc(reg->hr_blocks,
- sizeof(struct o2hb_disk_slot), GFP_KERNEL);
+ reg->hr_slots = kzalloc_objs(struct o2hb_disk_slot, reg->hr_blocks,
+ GFP_KERNEL);
if (reg->hr_slots == NULL)
return -ENOMEM;
@@ -1694,8 +1694,8 @@ static int o2hb_map_slot_data(struct o2hb_region *reg)
"at %u blocks per page\n",
reg->hr_num_pages, reg->hr_blocks, spp);
- reg->hr_slot_data = kcalloc(reg->hr_num_pages, sizeof(struct page *),
- GFP_KERNEL);
+ reg->hr_slot_data = kzalloc_objs(struct page *, reg->hr_num_pages,
+ GFP_KERNEL);
if (!reg->hr_slot_data)
return -ENOMEM;
@@ -2001,7 +2001,7 @@ static struct config_item *o2hb_heartbeat_group_make_item(struct config_group *g
struct o2hb_region *reg = NULL;
int ret;
- reg = kzalloc(sizeof(struct o2hb_region), GFP_KERNEL);
+ reg = kzalloc_obj(struct o2hb_region, GFP_KERNEL);
if (reg == NULL)
return ERR_PTR(-ENOMEM);
@@ -2211,7 +2211,7 @@ struct config_group *o2hb_alloc_hb_set(void)
struct o2hb_heartbeat_group *hs = NULL;
struct config_group *ret = NULL;
- hs = kzalloc(sizeof(struct o2hb_heartbeat_group), GFP_KERNEL);
+ hs = kzalloc_obj(struct o2hb_heartbeat_group, GFP_KERNEL);
if (hs == NULL)
goto out;
diff --git a/fs/ocfs2/cluster/netdebug.c b/fs/ocfs2/cluster/netdebug.c
index bc27301eab6d..2cb3162aeb89 100644
--- a/fs/ocfs2/cluster/netdebug.c
+++ b/fs/ocfs2/cluster/netdebug.c
@@ -380,7 +380,7 @@ static int sc_common_open(struct file *file, int ctxt)
struct o2net_sock_debug *sd;
struct o2net_sock_container *dummy_sc;
- dummy_sc = kzalloc(sizeof(*dummy_sc), GFP_KERNEL);
+ dummy_sc = kzalloc_obj(*dummy_sc, GFP_KERNEL);
if (!dummy_sc)
return -ENOMEM;
diff --git a/fs/ocfs2/cluster/nodemanager.c b/fs/ocfs2/cluster/nodemanager.c
index c5e83c774d73..6fb8bc38c0f7 100644
--- a/fs/ocfs2/cluster/nodemanager.c
+++ b/fs/ocfs2/cluster/nodemanager.c
@@ -587,7 +587,7 @@ static struct config_item *o2nm_node_group_make_item(struct config_group *group,
if (strlen(name) > O2NM_MAX_NAME_LEN)
return ERR_PTR(-ENAMETOOLONG);
- node = kzalloc(sizeof(struct o2nm_node), GFP_KERNEL);
+ node = kzalloc_obj(struct o2nm_node, GFP_KERNEL);
if (node == NULL)
return ERR_PTR(-ENOMEM);
@@ -695,8 +695,8 @@ static struct config_group *o2nm_cluster_group_make_group(struct config_group *g
if (o2nm_single_cluster)
return ERR_PTR(-ENOSPC);
- cluster = kzalloc(sizeof(struct o2nm_cluster), GFP_KERNEL);
- ns = kzalloc(sizeof(struct o2nm_node_group), GFP_KERNEL);
+ cluster = kzalloc_obj(struct o2nm_cluster, GFP_KERNEL);
+ ns = kzalloc_obj(struct o2nm_node_group, GFP_KERNEL);
o2hb_group = o2hb_alloc_hb_set();
if (cluster == NULL || ns == NULL || o2hb_group == NULL)
goto out;
diff --git a/fs/ocfs2/cluster/tcp.c b/fs/ocfs2/cluster/tcp.c
index 79b281e32f4c..09a1f3b77bb8 100644
--- a/fs/ocfs2/cluster/tcp.c
+++ b/fs/ocfs2/cluster/tcp.c
@@ -415,7 +415,7 @@ static struct o2net_sock_container *sc_alloc(struct o2nm_node *node)
int status = 0;
page = alloc_page(GFP_NOFS);
- sc = kzalloc(sizeof(*sc), GFP_NOFS);
+ sc = kzalloc_obj(*sc, GFP_NOFS);
if (sc == NULL || page == NULL)
goto out;
@@ -825,7 +825,7 @@ int o2net_register_handler(u32 msg_type, u32 key, u32 max_len,
goto out;
}
- nmh = kzalloc(sizeof(struct o2net_msg_handler), GFP_NOFS);
+ nmh = kzalloc_obj(struct o2net_msg_handler, GFP_NOFS);
if (nmh == NULL) {
ret = -ENOMEM;
goto out;
@@ -1064,14 +1064,14 @@ int o2net_send_message_vec(u32 msg_type, u32 key, struct kvec *caller_vec,
o2net_set_nst_sock_container(&nst, sc);
veclen = caller_veclen + 1;
- vec = kmalloc_array(veclen, sizeof(struct kvec), GFP_ATOMIC);
+ vec = kmalloc_objs(struct kvec, veclen, GFP_ATOMIC);
if (vec == NULL) {
mlog(0, "failed to %zu element kvec!\n", veclen);
ret = -ENOMEM;
goto out;
}
- msg = kmalloc(sizeof(struct o2net_msg), GFP_ATOMIC);
+ msg = kmalloc_obj(struct o2net_msg, GFP_ATOMIC);
if (!msg) {
mlog(0, "failed to allocate a o2net_msg!\n");
ret = -ENOMEM;
diff --git a/fs/ocfs2/dcache.c b/fs/ocfs2/dcache.c
index 1873bbbb7e5b..c4ba968e778b 100644
--- a/fs/ocfs2/dcache.c
+++ b/fs/ocfs2/dcache.c
@@ -265,7 +265,7 @@ int ocfs2_dentry_attach_lock(struct dentry *dentry,
/*
* There are no other aliases
*/
- dl = kmalloc(sizeof(*dl), GFP_NOFS);
+ dl = kmalloc_obj(*dl, GFP_NOFS);
if (!dl) {
ret = -ENOMEM;
mlog_errno(ret);
diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c
index 782afd9fa934..1c8abf2c592c 100644
--- a/fs/ocfs2/dir.c
+++ b/fs/ocfs2/dir.c
@@ -2550,8 +2550,7 @@ static struct buffer_head **ocfs2_dx_dir_kmalloc_leaves(struct super_block *sb,
int num_dx_leaves = ocfs2_clusters_to_blocks(sb, 1);
struct buffer_head **dx_leaves;
- dx_leaves = kcalloc(num_dx_leaves, sizeof(struct buffer_head *),
- GFP_NOFS);
+ dx_leaves = kzalloc_objs(struct buffer_head *, num_dx_leaves, GFP_NOFS);
if (dx_leaves && ret_num_leaves)
*ret_num_leaves = num_dx_leaves;
diff --git a/fs/ocfs2/dlm/dlmdomain.c b/fs/ocfs2/dlm/dlmdomain.c
index cf3ca2f597c2..ff4868619d35 100644
--- a/fs/ocfs2/dlm/dlmdomain.c
+++ b/fs/ocfs2/dlm/dlmdomain.c
@@ -1048,7 +1048,7 @@ static int dlm_send_regions(struct dlm_ctxt *dlm, unsigned long *node_map)
if (find_first_bit(node_map, O2NM_MAX_NODES) >= O2NM_MAX_NODES)
goto bail;
- qr = kzalloc(sizeof(struct dlm_query_region), GFP_KERNEL);
+ qr = kzalloc_obj(struct dlm_query_region, GFP_KERNEL);
if (!qr) {
ret = -ENOMEM;
mlog_errno(ret);
@@ -1220,7 +1220,7 @@ static int dlm_send_nodeinfo(struct dlm_ctxt *dlm, unsigned long *node_map)
if (find_first_bit(node_map, O2NM_MAX_NODES) >= O2NM_MAX_NODES)
goto bail;
- qn = kzalloc(sizeof(struct dlm_query_nodeinfo), GFP_KERNEL);
+ qn = kzalloc_obj(struct dlm_query_nodeinfo, GFP_KERNEL);
if (!qn) {
ret = -ENOMEM;
mlog_errno(ret);
@@ -1592,7 +1592,7 @@ static int dlm_try_to_join_domain(struct dlm_ctxt *dlm)
mlog(0, "%p", dlm);
- ctxt = kzalloc(sizeof(*ctxt), GFP_KERNEL);
+ ctxt = kzalloc_obj(*ctxt, GFP_KERNEL);
if (!ctxt) {
status = -ENOMEM;
mlog_errno(status);
@@ -1946,7 +1946,7 @@ static struct dlm_ctxt *dlm_alloc_ctxt(const char *domain,
int ret;
struct dlm_ctxt *dlm = NULL;
- dlm = kzalloc(sizeof(*dlm), GFP_KERNEL);
+ dlm = kzalloc_obj(*dlm, GFP_KERNEL);
if (!dlm) {
ret = -ENOMEM;
mlog_errno(ret);
diff --git a/fs/ocfs2/dlm/dlmlock.c b/fs/ocfs2/dlm/dlmlock.c
index 041fd1791ae7..46120eb75d90 100644
--- a/fs/ocfs2/dlm/dlmlock.c
+++ b/fs/ocfs2/dlm/dlmlock.c
@@ -414,7 +414,7 @@ struct dlm_lock * dlm_new_lock(int type, u8 node, u64 cookie,
if (!lksb) {
/* zero memory only if kernel-allocated */
- lksb = kzalloc(sizeof(*lksb), GFP_NOFS);
+ lksb = kzalloc_obj(*lksb, GFP_NOFS);
if (!lksb) {
kmem_cache_free(dlm_lock_cache, lock);
return NULL;
diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c
index 4145e06d2c08..eb62724bbe9b 100644
--- a/fs/ocfs2/dlm/dlmmaster.c
+++ b/fs/ocfs2/dlm/dlmmaster.c
@@ -2040,7 +2040,7 @@ int dlm_dispatch_assert_master(struct dlm_ctxt *dlm,
int ignore_higher, u8 request_from, u32 flags)
{
struct dlm_work_item *item;
- item = kzalloc(sizeof(*item), GFP_ATOMIC);
+ item = kzalloc_obj(*item, GFP_ATOMIC);
if (!item)
return -ENOMEM;
@@ -2303,7 +2303,7 @@ int dlm_deref_lockres_handler(struct o2net_msg *msg, u32 len, void *data,
goto done;
}
- item = kzalloc(sizeof(*item), GFP_NOFS);
+ item = kzalloc_obj(*item, GFP_NOFS);
if (!item) {
ret = -ENOMEM;
mlog_errno(ret);
diff --git a/fs/ocfs2/dlm/dlmrecovery.c b/fs/ocfs2/dlm/dlmrecovery.c
index 843ee02bd85f..128872bd945d 100644
--- a/fs/ocfs2/dlm/dlmrecovery.c
+++ b/fs/ocfs2/dlm/dlmrecovery.c
@@ -743,7 +743,7 @@ static int dlm_init_recovery_area(struct dlm_ctxt *dlm, u8 dead_node)
}
BUG_ON(num == dead_node);
- ndata = kzalloc(sizeof(*ndata), GFP_NOFS);
+ ndata = kzalloc_obj(*ndata, GFP_NOFS);
if (!ndata) {
dlm_destroy_recovery_area(dlm);
return -ENOMEM;
@@ -830,7 +830,7 @@ int dlm_request_all_locks_handler(struct o2net_msg *msg, u32 len, void *data,
}
BUG_ON(lr->dead_node != dlm->reco.dead_node);
- item = kzalloc(sizeof(*item), GFP_NOFS);
+ item = kzalloc_obj(*item, GFP_NOFS);
if (!item) {
dlm_put(dlm);
return -ENOMEM;
@@ -1382,7 +1382,7 @@ int dlm_mig_lockres_handler(struct o2net_msg *msg, u32 len, void *data,
ret = -ENOMEM;
buf = kmalloc(be16_to_cpu(msg->data_len), GFP_NOFS);
- item = kzalloc(sizeof(*item), GFP_NOFS);
+ item = kzalloc_obj(*item, GFP_NOFS);
if (!buf || !item)
goto leave;
diff --git a/fs/ocfs2/dlmfs/dlmfs.c b/fs/ocfs2/dlmfs/dlmfs.c
index 339f0b11cdc8..45cce261da65 100644
--- a/fs/ocfs2/dlmfs/dlmfs.c
+++ b/fs/ocfs2/dlmfs/dlmfs.c
@@ -134,7 +134,7 @@ static int dlmfs_file_open(struct inode *inode,
* doesn't make sense for LVB writes. */
file->f_flags &= ~O_APPEND;
- fp = kmalloc(sizeof(*fp), GFP_NOFS);
+ fp = kmalloc_obj(*fp, GFP_NOFS);
if (!fp) {
status = -ENOMEM;
goto bail;
diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c
index 619ff03b15d6..627d488b0148 100644
--- a/fs/ocfs2/dlmglue.c
+++ b/fs/ocfs2/dlmglue.c
@@ -3030,7 +3030,7 @@ struct ocfs2_dlm_debug *ocfs2_new_dlm_debug(void)
{
struct ocfs2_dlm_debug *dlm_debug;
- dlm_debug = kmalloc(sizeof(struct ocfs2_dlm_debug), GFP_KERNEL);
+ dlm_debug = kmalloc_obj(struct ocfs2_dlm_debug, GFP_KERNEL);
if (!dlm_debug) {
mlog_errno(-ENOMEM);
goto out;
diff --git a/fs/ocfs2/extent_map.c b/fs/ocfs2/extent_map.c
index ef147e8b3271..d68229422dda 100644
--- a/fs/ocfs2/extent_map.c
+++ b/fs/ocfs2/extent_map.c
@@ -246,7 +246,7 @@ void ocfs2_extent_map_insert_rec(struct inode *inode,
if (new_emi == NULL) {
spin_unlock(&oi->ip_lock);
- new_emi = kmalloc(sizeof(*new_emi), GFP_NOFS);
+ new_emi = kmalloc_obj(*new_emi, GFP_NOFS);
if (new_emi == NULL)
goto out;
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index ed961a854983..70879058b0c9 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -54,7 +54,7 @@ static int ocfs2_init_file_private(struct inode *inode, struct file *file)
{
struct ocfs2_file_private *fp;
- fp = kzalloc(sizeof(struct ocfs2_file_private), GFP_KERNEL);
+ fp = kzalloc_obj(struct ocfs2_file_private, GFP_KERNEL);
if (!fp)
return -ENOMEM;
diff --git a/fs/ocfs2/filecheck.c b/fs/ocfs2/filecheck.c
index 3ad7baf67658..be713d7d24a7 100644
--- a/fs/ocfs2/filecheck.c
+++ b/fs/ocfs2/filecheck.c
@@ -169,7 +169,7 @@ int ocfs2_filecheck_create_sysfs(struct ocfs2_super *osb)
struct ocfs2_filecheck *fcheck;
struct ocfs2_filecheck_sysfs_entry *entry = &osb->osb_fc_ent;
- fcheck = kmalloc(sizeof(struct ocfs2_filecheck), GFP_NOFS);
+ fcheck = kmalloc_obj(struct ocfs2_filecheck, GFP_NOFS);
if (!fcheck)
return -ENOMEM;
@@ -464,7 +464,7 @@ static ssize_t ocfs2_filecheck_attr_store(struct kobject *kobj,
goto exit;
}
- entry = kmalloc(sizeof(struct ocfs2_filecheck_entry), GFP_NOFS);
+ entry = kmalloc_obj(struct ocfs2_filecheck_entry, GFP_NOFS);
if (!entry) {
ret = -ENOMEM;
goto exit;
diff --git a/fs/ocfs2/ioctl.c b/fs/ocfs2/ioctl.c
index b6864602814c..872b826979ec 100644
--- a/fs/ocfs2/ioctl.c
+++ b/fs/ocfs2/ioctl.c
@@ -334,7 +334,7 @@ static int ocfs2_info_handle_freeinode(struct inode *inode,
struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
struct inode *inode_alloc = NULL;
- oifi = kzalloc(sizeof(struct ocfs2_info_freeinode), GFP_KERNEL);
+ oifi = kzalloc_obj(struct ocfs2_info_freeinode, GFP_KERNEL);
if (!oifi) {
status = -ENOMEM;
mlog_errno(status);
@@ -620,7 +620,7 @@ static int ocfs2_info_handle_freefrag(struct inode *inode,
struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
struct inode *gb_inode = NULL;
- oiff = kzalloc(sizeof(struct ocfs2_info_freefrag), GFP_KERNEL);
+ oiff = kzalloc_obj(struct ocfs2_info_freefrag, GFP_KERNEL);
if (!oiff) {
status = -ENOMEM;
mlog_errno(status);
diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
index 85239807dec7..1b9359304aef 100644
--- a/fs/ocfs2/journal.c
+++ b/fs/ocfs2/journal.c
@@ -114,9 +114,8 @@ int ocfs2_compute_replay_slots(struct ocfs2_super *osb)
if (osb->replay_map)
return 0;
- replay_map = kzalloc(struct_size(replay_map, rm_replay_slots,
- osb->max_slots),
- GFP_KERNEL);
+ replay_map = kzalloc_flex(*replay_map, rm_replay_slots, osb->max_slots,
+ GFP_KERNEL);
if (!replay_map) {
mlog_errno(-ENOMEM);
return -ENOMEM;
@@ -178,8 +177,7 @@ int ocfs2_recovery_init(struct ocfs2_super *osb)
osb->recovery_thread_task = NULL;
init_waitqueue_head(&osb->recovery_event);
- rm = kzalloc(struct_size(rm, rm_entries, osb->max_slots),
- GFP_KERNEL);
+ rm = kzalloc_flex(*rm, rm_entries, osb->max_slots, GFP_KERNEL);
if (!rm) {
mlog_errno(-ENOMEM);
return -ENOMEM;
@@ -878,7 +876,7 @@ int ocfs2_journal_alloc(struct ocfs2_super *osb)
int status = 0;
struct ocfs2_journal *journal;
- journal = kzalloc(sizeof(struct ocfs2_journal), GFP_KERNEL);
+ journal = kzalloc_obj(struct ocfs2_journal, GFP_KERNEL);
if (!journal) {
mlog(ML_ERROR, "unable to alloc journal\n");
status = -ENOMEM;
@@ -1394,7 +1392,7 @@ static void ocfs2_queue_recovery_completion(struct ocfs2_journal *journal,
{
struct ocfs2_la_recovery_item *item;
- item = kmalloc(sizeof(struct ocfs2_la_recovery_item), GFP_NOFS);
+ item = kmalloc_obj(struct ocfs2_la_recovery_item, GFP_NOFS);
if (!item) {
/* Though we wish to avoid it, we are in fact safe in
* skipping local alloc cleanup as fsck.ocfs2 is more
@@ -1480,7 +1478,7 @@ static int __ocfs2_recovery_thread(void *arg)
}
if (quota_enabled) {
- rm_quota = kcalloc(osb->max_slots, sizeof(int), GFP_NOFS);
+ rm_quota = kzalloc_objs(int, osb->max_slots, GFP_NOFS);
if (!rm_quota) {
status = -ENOMEM;
goto bail;
diff --git a/fs/ocfs2/localalloc.c b/fs/ocfs2/localalloc.c
index 56be21c695d6..29fa6fb11ea5 100644
--- a/fs/ocfs2/localalloc.c
+++ b/fs/ocfs2/localalloc.c
@@ -1094,7 +1094,7 @@ static int ocfs2_local_alloc_reserve_for_window(struct ocfs2_super *osb,
{
int status;
- *ac = kzalloc(sizeof(struct ocfs2_alloc_context), GFP_KERNEL);
+ *ac = kzalloc_obj(struct ocfs2_alloc_context, GFP_KERNEL);
if (!(*ac)) {
status = -ENOMEM;
mlog_errno(status);
diff --git a/fs/ocfs2/move_extents.c b/fs/ocfs2/move_extents.c
index e3cdf8788484..c53de4439d93 100644
--- a/fs/ocfs2/move_extents.c
+++ b/fs/ocfs2/move_extents.c
@@ -1011,7 +1011,7 @@ int ocfs2_ioctl_move_extents(struct file *filp, void __user *argp)
goto out_drop;
}
- context = kzalloc(sizeof(struct ocfs2_move_extents_context), GFP_NOFS);
+ context = kzalloc_obj(struct ocfs2_move_extents_context, GFP_NOFS);
if (!context) {
status = -ENOMEM;
mlog_errno(status);
diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c
index 4ec6dbed65a8..85ad1a9db734 100644
--- a/fs/ocfs2/namei.c
+++ b/fs/ocfs2/namei.c
@@ -1736,7 +1736,7 @@ static int ocfs2_create_symlink_data(struct ocfs2_super *osb,
goto bail;
}
- bhs = kcalloc(blocks, sizeof(struct buffer_head *), GFP_KERNEL);
+ bhs = kzalloc_objs(struct buffer_head *, blocks, GFP_KERNEL);
if (!bhs) {
status = -ENOMEM;
mlog_errno(status);
diff --git a/fs/ocfs2/quota_local.c b/fs/ocfs2/quota_local.c
index de7f12858729..c4e0117d8977 100644
--- a/fs/ocfs2/quota_local.c
+++ b/fs/ocfs2/quota_local.c
@@ -298,7 +298,7 @@ static int ocfs2_add_recovery_chunk(struct super_block *sb,
{
struct ocfs2_recovery_chunk *rc;
- rc = kmalloc(sizeof(struct ocfs2_recovery_chunk), GFP_NOFS);
+ rc = kmalloc_obj(struct ocfs2_recovery_chunk, GFP_NOFS);
if (!rc)
return -ENOMEM;
rc->rc_chunk = chunk;
@@ -372,7 +372,7 @@ static struct ocfs2_quota_recovery *ocfs2_alloc_quota_recovery(void)
int type;
struct ocfs2_quota_recovery *rec;
- rec = kmalloc(sizeof(struct ocfs2_quota_recovery), GFP_NOFS);
+ rec = kmalloc_obj(struct ocfs2_quota_recovery, GFP_NOFS);
if (!rec)
return NULL;
for (type = 0; type < OCFS2_MAXQUOTAS; type++)
@@ -692,7 +692,7 @@ static int ocfs2_local_read_info(struct super_block *sb, int type)
info->dqi_max_spc_limit = 0x7fffffffffffffffLL;
info->dqi_max_ino_limit = 0x7fffffffffffffffLL;
- oinfo = kmalloc(sizeof(struct ocfs2_mem_dqinfo), GFP_NOFS);
+ oinfo = kmalloc_obj(struct ocfs2_mem_dqinfo, GFP_NOFS);
if (!oinfo) {
mlog(ML_ERROR, "failed to allocate memory for ocfs2 quota"
" info.");
diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c
index c92e0ea85bca..c1cdececdfa4 100644
--- a/fs/ocfs2/refcounttree.c
+++ b/fs/ocfs2/refcounttree.c
@@ -311,7 +311,7 @@ ocfs2_allocate_refcount_tree(struct ocfs2_super *osb, u64 rf_blkno)
{
struct ocfs2_refcount_tree *new;
- new = kzalloc(sizeof(struct ocfs2_refcount_tree), GFP_NOFS);
+ new = kzalloc_obj(struct ocfs2_refcount_tree, GFP_NOFS);
if (!new)
return NULL;
@@ -3397,7 +3397,7 @@ static int ocfs2_refcount_cow_hunk(struct inode *inode,
BUG_ON(cow_len == 0);
- context = kzalloc(sizeof(struct ocfs2_cow_context), GFP_NOFS);
+ context = kzalloc_obj(struct ocfs2_cow_context, GFP_NOFS);
if (!context) {
ret = -ENOMEM;
mlog_errno(ret);
@@ -3606,7 +3606,7 @@ int ocfs2_refcount_cow_xattr(struct inode *inode,
BUG_ON(cow_len == 0);
- context = kzalloc(sizeof(struct ocfs2_cow_context), GFP_NOFS);
+ context = kzalloc_obj(struct ocfs2_cow_context, GFP_NOFS);
if (!context) {
ret = -ENOMEM;
mlog_errno(ret);
diff --git a/fs/ocfs2/slot_map.c b/fs/ocfs2/slot_map.c
index ea4a68abc25b..3ea14f00e84a 100644
--- a/fs/ocfs2/slot_map.c
+++ b/fs/ocfs2/slot_map.c
@@ -385,8 +385,8 @@ static int ocfs2_map_slot_buffers(struct ocfs2_super *osb,
trace_ocfs2_map_slot_buffers(bytes, si->si_blocks);
- si->si_bh = kcalloc(si->si_blocks, sizeof(struct buffer_head *),
- GFP_KERNEL);
+ si->si_bh = kzalloc_objs(struct buffer_head *, si->si_blocks,
+ GFP_KERNEL);
if (!si->si_bh) {
status = -ENOMEM;
mlog_errno(status);
@@ -425,7 +425,7 @@ int ocfs2_init_slot_info(struct ocfs2_super *osb)
struct inode *inode = NULL;
struct ocfs2_slot_info *si;
- si = kzalloc(struct_size(si, si_slots, osb->max_slots), GFP_KERNEL);
+ si = kzalloc_flex(*si, si_slots, osb->max_slots, GFP_KERNEL);
if (!si) {
status = -ENOMEM;
mlog_errno(status);
diff --git a/fs/ocfs2/stack_o2cb.c b/fs/ocfs2/stack_o2cb.c
index f58e891aa2da..78a97c37398b 100644
--- a/fs/ocfs2/stack_o2cb.c
+++ b/fs/ocfs2/stack_o2cb.c
@@ -334,7 +334,7 @@ static int o2cb_cluster_connect(struct ocfs2_cluster_connection *conn)
goto out;
}
- priv = kzalloc(sizeof(struct o2dlm_private), GFP_KERNEL);
+ priv = kzalloc_obj(struct o2dlm_private, GFP_KERNEL);
if (!priv) {
rc = -ENOMEM;
goto out_free;
diff --git a/fs/ocfs2/stack_user.c b/fs/ocfs2/stack_user.c
index be0a5758bd40..11b34407de36 100644
--- a/fs/ocfs2/stack_user.c
+++ b/fs/ocfs2/stack_user.c
@@ -593,7 +593,7 @@ static int ocfs2_control_open(struct inode *inode, struct file *file)
{
struct ocfs2_control_private *p;
- p = kzalloc(sizeof(struct ocfs2_control_private), GFP_KERNEL);
+ p = kzalloc_obj(struct ocfs2_control_private, GFP_KERNEL);
if (!p)
return -ENOMEM;
p->op_this_node = -1;
@@ -967,7 +967,7 @@ static int user_cluster_connect(struct ocfs2_cluster_connection *conn)
BUG_ON(conn == NULL);
- lc = kzalloc(sizeof(struct ocfs2_live_connection), GFP_KERNEL);
+ lc = kzalloc_obj(struct ocfs2_live_connection, GFP_KERNEL);
if (!lc)
return -ENOMEM;
diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c
index fca2fd07c881..46ff5835da2e 100644
--- a/fs/ocfs2/stackglue.c
+++ b/fs/ocfs2/stackglue.c
@@ -328,8 +328,7 @@ int ocfs2_cluster_connect(const char *stack_name,
goto out;
}
- new_conn = kzalloc(sizeof(struct ocfs2_cluster_connection),
- GFP_KERNEL);
+ new_conn = kzalloc_obj(struct ocfs2_cluster_connection, GFP_KERNEL);
if (!new_conn) {
rc = -ENOMEM;
goto out;
diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
index 79d1325b2111..872c7b303a3c 100644
--- a/fs/ocfs2/suballoc.c
+++ b/fs/ocfs2/suballoc.c
@@ -1034,7 +1034,7 @@ int ocfs2_reserve_new_metadata_blocks(struct ocfs2_super *osb,
int status;
int slot = ocfs2_get_meta_steal_slot(osb);
- *ac = kzalloc(sizeof(struct ocfs2_alloc_context), GFP_KERNEL);
+ *ac = kzalloc_obj(struct ocfs2_alloc_context, GFP_KERNEL);
if (!(*ac)) {
status = -ENOMEM;
mlog_errno(status);
@@ -1105,7 +1105,7 @@ int ocfs2_reserve_new_inode(struct ocfs2_super *osb,
int slot = ocfs2_get_inode_steal_slot(osb);
u64 alloc_group;
- *ac = kzalloc(sizeof(struct ocfs2_alloc_context), GFP_KERNEL);
+ *ac = kzalloc_obj(struct ocfs2_alloc_context, GFP_KERNEL);
if (!(*ac)) {
status = -ENOMEM;
mlog_errno(status);
@@ -1221,7 +1221,7 @@ static int ocfs2_reserve_clusters_with_limit(struct ocfs2_super *osb,
int status, ret = 0;
int retried = 0;
- *ac = kzalloc(sizeof(struct ocfs2_alloc_context), GFP_KERNEL);
+ *ac = kzalloc_obj(struct ocfs2_alloc_context, GFP_KERNEL);
if (!(*ac)) {
status = -ENOMEM;
mlog_errno(status);
@@ -2245,7 +2245,7 @@ int ocfs2_find_new_inode_loc(struct inode *dir,
BUG_ON(ac->ac_bits_wanted != 1);
BUG_ON(ac->ac_which != OCFS2_AC_USE_INODE);
- res = kzalloc(sizeof(*res), GFP_NOFS);
+ res = kzalloc_obj(*res, GFP_NOFS);
if (res == NULL) {
ret = -ENOMEM;
mlog_errno(ret);
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
index 3cbafac50cd1..9779f524ff1a 100644
--- a/fs/ocfs2/super.c
+++ b/fs/ocfs2/super.c
@@ -1200,7 +1200,7 @@ static int ocfs2_init_fs_context(struct fs_context *fc)
{
struct mount_options *mopt;
- mopt = kzalloc(sizeof(struct mount_options), GFP_KERNEL);
+ mopt = kzalloc_obj(struct mount_options, GFP_KERNEL);
if (!mopt)
return -EINVAL;
@@ -1953,7 +1953,7 @@ static int ocfs2_initialize_super(struct super_block *sb,
struct ocfs2_super *osb;
u64 total_blocks;
- osb = kzalloc(sizeof(struct ocfs2_super), GFP_KERNEL);
+ osb = kzalloc_obj(struct ocfs2_super, GFP_KERNEL);
if (!osb) {
status = -ENOMEM;
mlog_errno(status);
diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
index e434a62dd69f..42ee5db362d3 100644
--- a/fs/ocfs2/xattr.c
+++ b/fs/ocfs2/xattr.c
@@ -324,7 +324,7 @@ static struct ocfs2_xattr_bucket *ocfs2_xattr_bucket_new(struct inode *inode)
BUG_ON(blks > OCFS2_XATTR_MAX_BLOCKS_PER_BUCKET);
- bucket = kzalloc(sizeof(struct ocfs2_xattr_bucket), GFP_NOFS);
+ bucket = kzalloc_obj(struct ocfs2_xattr_bucket, GFP_NOFS);
if (bucket) {
bucket->bu_inode = inode;
bucket->bu_blocks = blks;
diff --git a/fs/omfs/inode.c b/fs/omfs/inode.c
index 701ed85d9831..ba2a581f7ab7 100644
--- a/fs/omfs/inode.c
+++ b/fs/omfs/inode.c
@@ -464,7 +464,7 @@ static int omfs_fill_super(struct super_block *sb, struct fs_context *fc)
int ret = -EINVAL;
int silent = fc->sb_flags & SB_SILENT;
- sbi = kzalloc(sizeof(struct omfs_sb_info), GFP_KERNEL);
+ sbi = kzalloc_obj(struct omfs_sb_info, GFP_KERNEL);
if (!sbi)
return -ENOMEM;
@@ -612,7 +612,7 @@ static int omfs_init_fs_context(struct fs_context *fc)
{
struct omfs_mount_options *opts;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return -ENOMEM;
diff --git a/fs/orangefs/dir.c b/fs/orangefs/dir.c
index 3c32bf9f1296..84db9f0db9df 100644
--- a/fs/orangefs/dir.c
+++ b/fs/orangefs/dir.c
@@ -363,8 +363,7 @@ static int orangefs_dir_iterate(struct file *file,
static int orangefs_dir_open(struct inode *inode, struct file *file)
{
struct orangefs_dir *od;
- file->private_data = kmalloc(sizeof(struct orangefs_dir),
- GFP_KERNEL);
+ file->private_data = kmalloc_obj(struct orangefs_dir, GFP_KERNEL);
if (!file->private_data)
return -ENOMEM;
od = file->private_data;
diff --git a/fs/orangefs/inode.c b/fs/orangefs/inode.c
index f420f48fc069..50836be41cd2 100644
--- a/fs/orangefs/inode.c
+++ b/fs/orangefs/inode.c
@@ -184,16 +184,16 @@ static int orangefs_writepages(struct address_space *mapping,
int error;
struct folio *folio = NULL;
- ow = kzalloc(sizeof(struct orangefs_writepages), GFP_KERNEL);
+ ow = kzalloc_obj(struct orangefs_writepages, GFP_KERNEL);
if (!ow)
return -ENOMEM;
ow->maxpages = orangefs_bufmap_size_query()/PAGE_SIZE;
- ow->folios = kcalloc(ow->maxpages, sizeof(struct folio *), GFP_KERNEL);
+ ow->folios = kzalloc_objs(struct folio *, ow->maxpages, GFP_KERNEL);
if (!ow->folios) {
kfree(ow);
return -ENOMEM;
}
- ow->bv = kcalloc(ow->maxpages, sizeof(struct bio_vec), GFP_KERNEL);
+ ow->bv = kzalloc_objs(struct bio_vec, ow->maxpages, GFP_KERNEL);
if (!ow->bv) {
kfree(ow->folios);
kfree(ow);
@@ -328,7 +328,7 @@ static int orangefs_write_begin(const struct kiocb *iocb,
}
}
- wr = kmalloc(sizeof *wr, GFP_KERNEL);
+ wr = kmalloc_obj(*wr, GFP_KERNEL);
if (!wr)
return -ENOMEM;
@@ -644,7 +644,7 @@ vm_fault_t orangefs_page_mkwrite(struct vm_fault *vmf)
}
}
}
- wr = kmalloc(sizeof *wr, GFP_KERNEL);
+ wr = kmalloc_obj(*wr, GFP_KERNEL);
if (!wr) {
ret = VM_FAULT_LOCKED|VM_FAULT_RETRY;
goto out;
diff --git a/fs/orangefs/orangefs-bufmap.c b/fs/orangefs/orangefs-bufmap.c
index b562d3dbc76b..bad105dd10fa 100644
--- a/fs/orangefs/orangefs-bufmap.c
+++ b/fs/orangefs/orangefs-bufmap.c
@@ -205,7 +205,7 @@ orangefs_bufmap_alloc(struct ORANGEFS_dev_map_desc *user_desc)
{
struct orangefs_bufmap *bufmap;
- bufmap = kzalloc(sizeof(*bufmap), GFP_KERNEL);
+ bufmap = kzalloc_obj(*bufmap, GFP_KERNEL);
if (!bufmap)
goto out;
@@ -219,8 +219,8 @@ orangefs_bufmap_alloc(struct ORANGEFS_dev_map_desc *user_desc)
goto out_free_bufmap;
bufmap->desc_array =
- kcalloc(bufmap->desc_count, sizeof(struct orangefs_bufmap_desc),
- GFP_KERNEL);
+ kzalloc_objs(struct orangefs_bufmap_desc, bufmap->desc_count,
+ GFP_KERNEL);
if (!bufmap->desc_array)
goto out_free_index_array;
@@ -228,7 +228,7 @@ orangefs_bufmap_alloc(struct ORANGEFS_dev_map_desc *user_desc)
/* allocate storage to track our page mappings */
bufmap->page_array =
- kcalloc(bufmap->page_count, sizeof(struct page *), GFP_KERNEL);
+ kzalloc_objs(struct page *, bufmap->page_count, GFP_KERNEL);
if (!bufmap->page_array)
goto out_free_desc_array;
diff --git a/fs/orangefs/orangefs-debugfs.c b/fs/orangefs/orangefs-debugfs.c
index 002092950605..229981c310bd 100644
--- a/fs/orangefs/orangefs-debugfs.c
+++ b/fs/orangefs/orangefs-debugfs.c
@@ -560,7 +560,7 @@ static int orangefs_prepare_cdm_array(char *debug_array_string)
goto out;
}
- cdm_array = kcalloc(cdm_element_count, sizeof(*cdm_array), GFP_KERNEL);
+ cdm_array = kzalloc_objs(*cdm_array, cdm_element_count, GFP_KERNEL);
if (!cdm_array) {
rc = -ENOMEM;
goto out;
diff --git a/fs/orangefs/orangefs-mod.c b/fs/orangefs/orangefs-mod.c
index 7ac16a4d2dc6..30bc3c17daa4 100644
--- a/fs/orangefs/orangefs-mod.c
+++ b/fs/orangefs/orangefs-mod.c
@@ -99,7 +99,7 @@ static int __init orangefs_init(void)
goto cleanup_op;
orangefs_htable_ops_in_progress =
- kcalloc(hash_table_size, sizeof(struct list_head), GFP_KERNEL);
+ kzalloc_objs(struct list_head, hash_table_size, GFP_KERNEL);
if (!orangefs_htable_ops_in_progress) {
ret = -ENOMEM;
goto cleanup_inode;
diff --git a/fs/orangefs/orangefs-sysfs.c b/fs/orangefs/orangefs-sysfs.c
index 369455b354ef..8ea25b71b1fb 100644
--- a/fs/orangefs/orangefs-sysfs.c
+++ b/fs/orangefs/orangefs-sysfs.c
@@ -1170,7 +1170,7 @@ int orangefs_sysfs_init(void)
gossip_debug(GOSSIP_SYSFS_DEBUG, "orangefs_sysfs_init: start\n");
/* create /sys/fs/orangefs. */
- orangefs_obj = kzalloc(sizeof(*orangefs_obj), GFP_KERNEL);
+ orangefs_obj = kzalloc_obj(*orangefs_obj, GFP_KERNEL);
if (!orangefs_obj)
goto out;
@@ -1185,7 +1185,7 @@ int orangefs_sysfs_init(void)
kobject_uevent(orangefs_obj, KOBJ_ADD);
/* create /sys/fs/orangefs/acache. */
- acache_orangefs_obj = kzalloc(sizeof(*acache_orangefs_obj), GFP_KERNEL);
+ acache_orangefs_obj = kzalloc_obj(*acache_orangefs_obj, GFP_KERNEL);
if (!acache_orangefs_obj) {
rc = -EINVAL;
goto ofs_obj_bail;
@@ -1202,8 +1202,7 @@ int orangefs_sysfs_init(void)
kobject_uevent(acache_orangefs_obj, KOBJ_ADD);
/* create /sys/fs/orangefs/capcache. */
- capcache_orangefs_obj =
- kzalloc(sizeof(*capcache_orangefs_obj), GFP_KERNEL);
+ capcache_orangefs_obj = kzalloc_obj(*capcache_orangefs_obj, GFP_KERNEL);
if (!capcache_orangefs_obj) {
rc = -EINVAL;
goto acache_obj_bail;
@@ -1219,8 +1218,7 @@ int orangefs_sysfs_init(void)
kobject_uevent(capcache_orangefs_obj, KOBJ_ADD);
/* create /sys/fs/orangefs/ccache. */
- ccache_orangefs_obj =
- kzalloc(sizeof(*ccache_orangefs_obj), GFP_KERNEL);
+ ccache_orangefs_obj = kzalloc_obj(*ccache_orangefs_obj, GFP_KERNEL);
if (!ccache_orangefs_obj) {
rc = -EINVAL;
goto capcache_obj_bail;
@@ -1236,7 +1234,7 @@ int orangefs_sysfs_init(void)
kobject_uevent(ccache_orangefs_obj, KOBJ_ADD);
/* create /sys/fs/orangefs/ncache. */
- ncache_orangefs_obj = kzalloc(sizeof(*ncache_orangefs_obj), GFP_KERNEL);
+ ncache_orangefs_obj = kzalloc_obj(*ncache_orangefs_obj, GFP_KERNEL);
if (!ncache_orangefs_obj) {
rc = -EINVAL;
goto ccache_obj_bail;
@@ -1253,7 +1251,7 @@ int orangefs_sysfs_init(void)
kobject_uevent(ncache_orangefs_obj, KOBJ_ADD);
/* create /sys/fs/orangefs/perf_counters. */
- pc_orangefs_obj = kzalloc(sizeof(*pc_orangefs_obj), GFP_KERNEL);
+ pc_orangefs_obj = kzalloc_obj(*pc_orangefs_obj, GFP_KERNEL);
if (!pc_orangefs_obj) {
rc = -EINVAL;
goto ncache_obj_bail;
@@ -1270,7 +1268,7 @@ int orangefs_sysfs_init(void)
kobject_uevent(pc_orangefs_obj, KOBJ_ADD);
/* create /sys/fs/orangefs/stats. */
- stats_orangefs_obj = kzalloc(sizeof(*stats_orangefs_obj), GFP_KERNEL);
+ stats_orangefs_obj = kzalloc_obj(*stats_orangefs_obj, GFP_KERNEL);
if (!stats_orangefs_obj) {
rc = -EINVAL;
goto pc_obj_bail;
diff --git a/fs/orangefs/super.c b/fs/orangefs/super.c
index b46100a4f529..3030509ddeaf 100644
--- a/fs/orangefs/super.c
+++ b/fs/orangefs/super.c
@@ -578,7 +578,7 @@ int orangefs_init_fs_context(struct fs_context *fc)
{
struct orangefs_sb_info_s *osi;
- osi = kzalloc(sizeof(struct orangefs_sb_info_s), GFP_KERNEL);
+ osi = kzalloc_obj(struct orangefs_sb_info_s, GFP_KERNEL);
if (!osi)
return -ENOMEM;
diff --git a/fs/orangefs/xattr.c b/fs/orangefs/xattr.c
index a431aa07a229..44712bcdcef7 100644
--- a/fs/orangefs/xattr.c
+++ b/fs/orangefs/xattr.c
@@ -171,7 +171,7 @@ ssize_t orangefs_inode_getxattr(struct inode *inode, const char *name,
" does not exist!\n",
get_khandle_from_ino(inode),
(char *)new_op->upcall.req.getxattr.key);
- cx = kmalloc(sizeof *cx, GFP_KERNEL);
+ cx = kmalloc_obj(*cx, GFP_KERNEL);
if (cx) {
strscpy(cx->key, name);
cx->length = -1;
@@ -225,7 +225,7 @@ ssize_t orangefs_inode_getxattr(struct inode *inode, const char *name,
cx->length = length;
cx->timeout = jiffies + HZ;
} else {
- cx = kmalloc(sizeof *cx, GFP_KERNEL);
+ cx = kmalloc_obj(*cx, GFP_KERNEL);
if (cx) {
strscpy(cx->key, name);
memcpy(cx->val, buffer, length);
diff --git a/fs/overlayfs/file.c b/fs/overlayfs/file.c
index 8269431ba3c6..7f7a2c2a7937 100644
--- a/fs/overlayfs/file.c
+++ b/fs/overlayfs/file.c
@@ -96,7 +96,7 @@ struct ovl_file {
struct ovl_file *ovl_file_alloc(struct file *realfile)
{
- struct ovl_file *of = kzalloc(sizeof(struct ovl_file), GFP_KERNEL);
+ struct ovl_file *of = kzalloc_obj(struct ovl_file, GFP_KERNEL);
if (unlikely(!of))
return NULL;
diff --git a/fs/overlayfs/namei.c b/fs/overlayfs/namei.c
index afb7019fd43a..f30b81ee0d9b 100644
--- a/fs/overlayfs/namei.c
+++ b/fs/overlayfs/namei.c
@@ -481,7 +481,7 @@ int ovl_check_origin_fh(struct ovl_fs *ofs, struct ovl_fh *fh, bool connected,
goto invalid;
if (!*stackp)
- *stackp = kmalloc(sizeof(struct ovl_path), GFP_KERNEL);
+ *stackp = kmalloc_obj(struct ovl_path, GFP_KERNEL);
if (!*stackp) {
dput(origin);
return -ENOMEM;
diff --git a/fs/overlayfs/params.c b/fs/overlayfs/params.c
index 63b7346c5ee1..af735a0c310a 100644
--- a/fs/overlayfs/params.c
+++ b/fs/overlayfs/params.c
@@ -777,7 +777,7 @@ int ovl_init_fs_context(struct fs_context *fc)
struct ovl_fs_context *ctx;
struct ovl_fs *ofs;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL_ACCOUNT);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL_ACCOUNT);
if (!ctx)
return -ENOMEM;
@@ -785,12 +785,12 @@ int ovl_init_fs_context(struct fs_context *fc)
* By default we allocate for three lower layers. It's likely
* that it'll cover most users.
*/
- ctx->lower = kmalloc_array(3, sizeof(*ctx->lower), GFP_KERNEL_ACCOUNT);
+ ctx->lower = kmalloc_objs(*ctx->lower, 3, GFP_KERNEL_ACCOUNT);
if (!ctx->lower)
goto out_err;
ctx->capacity = 3;
- ofs = kzalloc(sizeof(struct ovl_fs), GFP_KERNEL);
+ ofs = kzalloc_obj(struct ovl_fs, GFP_KERNEL);
if (!ofs)
goto out_err;
diff --git a/fs/overlayfs/readdir.c b/fs/overlayfs/readdir.c
index bb09142b4e15..953c2cdca1b4 100644
--- a/fs/overlayfs/readdir.c
+++ b/fs/overlayfs/readdir.c
@@ -180,7 +180,7 @@ static struct ovl_cache_entry *ovl_cache_entry_new(struct ovl_readdir_data *rdd,
{
struct ovl_cache_entry *p;
- p = kmalloc(struct_size(p, name, len + 1), GFP_KERNEL);
+ p = kmalloc_flex(*p, name, len + 1, GFP_KERNEL);
if (!p)
return NULL;
@@ -493,7 +493,7 @@ static struct ovl_dir_cache *ovl_cache_get(struct dentry *dentry)
}
ovl_set_dir_cache(d_inode(dentry), NULL);
- cache = kzalloc(sizeof(struct ovl_dir_cache), GFP_KERNEL);
+ cache = kzalloc_obj(struct ovl_dir_cache, GFP_KERNEL);
if (!cache)
return ERR_PTR(-ENOMEM);
@@ -706,7 +706,7 @@ static struct ovl_dir_cache *ovl_cache_get_impure(const struct path *path)
ovl_dir_cache_free(inode);
ovl_set_dir_cache(inode, NULL);
- cache = kzalloc(sizeof(struct ovl_dir_cache), GFP_KERNEL);
+ cache = kzalloc_obj(struct ovl_dir_cache, GFP_KERNEL);
if (!cache)
return ERR_PTR(-ENOMEM);
diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c
index c9f166a1390a..f3a39b7703f5 100644
--- a/fs/overlayfs/super.c
+++ b/fs/overlayfs/super.c
@@ -1031,7 +1031,7 @@ static int ovl_get_layers(struct super_block *sb, struct ovl_fs *ofs,
unsigned int i;
size_t nr_merged_lower;
- ofs->fs = kcalloc(ctx->nr + 2, sizeof(struct ovl_sb), GFP_KERNEL);
+ ofs->fs = kzalloc_objs(struct ovl_sb, ctx->nr + 2, GFP_KERNEL);
if (ofs->fs == NULL)
return -ENOMEM;
@@ -1393,7 +1393,7 @@ static int ovl_fill_super_creds(struct fs_context *fc, struct super_block *sb)
}
err = -ENOMEM;
- layers = kcalloc(ctx->nr + 1, sizeof(struct ovl_layer), GFP_KERNEL);
+ layers = kzalloc_objs(struct ovl_layer, ctx->nr + 1, GFP_KERNEL);
if (!layers)
return err;
diff --git a/fs/overlayfs/util.c b/fs/overlayfs/util.c
index 94986d11a166..a28524e83662 100644
--- a/fs/overlayfs/util.c
+++ b/fs/overlayfs/util.c
@@ -113,7 +113,7 @@ bool ovl_verify_lower(struct super_block *sb)
struct ovl_path *ovl_stack_alloc(unsigned int n)
{
- return kcalloc(n, sizeof(struct ovl_path), GFP_KERNEL);
+ return kzalloc_objs(struct ovl_path, n, GFP_KERNEL);
}
void ovl_stack_cpy(struct ovl_path *dst, struct ovl_path *src, unsigned int n)
@@ -143,7 +143,7 @@ struct ovl_entry *ovl_alloc_entry(unsigned int numlower)
{
struct ovl_entry *oe;
- oe = kzalloc(struct_size(oe, __lowerstack, numlower), GFP_KERNEL);
+ oe = kzalloc_flex(*oe, __lowerstack, numlower, GFP_KERNEL);
if (oe)
oe->__numlower = numlower;
diff --git a/fs/pipe.c b/fs/pipe.c
index 22647f50b286..b44a756c0b41 100644
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -797,7 +797,7 @@ struct pipe_inode_info *alloc_pipe_info(void)
unsigned long user_bufs;
unsigned int max_size = READ_ONCE(pipe_max_size);
- pipe = kzalloc(sizeof(struct pipe_inode_info), GFP_KERNEL_ACCOUNT);
+ pipe = kzalloc_obj(struct pipe_inode_info, GFP_KERNEL_ACCOUNT);
if (pipe == NULL)
goto out_free_uid;
@@ -814,8 +814,8 @@ struct pipe_inode_info *alloc_pipe_info(void)
if (too_many_pipe_buffers_hard(user_bufs) && pipe_is_unprivileged_user())
goto out_revert_acct;
- pipe->bufs = kcalloc(pipe_bufs, sizeof(struct pipe_buffer),
- GFP_KERNEL_ACCOUNT);
+ pipe->bufs = kzalloc_objs(struct pipe_buffer, pipe_bufs,
+ GFP_KERNEL_ACCOUNT);
if (pipe->bufs) {
init_waitqueue_head(&pipe->rd_wait);
@@ -1297,8 +1297,7 @@ int pipe_resize_ring(struct pipe_inode_info *pipe, unsigned int nr_slots)
if (unlikely(nr_slots > (pipe_index_t)-1u))
return -EINVAL;
- bufs = kcalloc(nr_slots, sizeof(*bufs),
- GFP_KERNEL_ACCOUNT | __GFP_NOWARN);
+ bufs = kzalloc_objs(*bufs, nr_slots, GFP_KERNEL_ACCOUNT | __GFP_NOWARN);
if (unlikely(!bufs))
return -ENOMEM;
diff --git a/fs/posix_acl.c b/fs/posix_acl.c
index 4ef6f9d2b8d6..12591c95c925 100644
--- a/fs/posix_acl.c
+++ b/fs/posix_acl.c
@@ -204,7 +204,7 @@ posix_acl_alloc(unsigned int count, gfp_t flags)
{
struct posix_acl *acl;
- acl = kmalloc(struct_size(acl, a_entries, count), flags);
+ acl = kmalloc_flex(*acl, a_entries, count, flags);
if (acl)
posix_acl_init(acl, count);
return acl;
diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
index 728630b10fdf..55438bc0afc8 100644
--- a/fs/proc/kcore.c
+++ b/fs/proc/kcore.c
@@ -143,7 +143,7 @@ static int kcore_ram_list(struct list_head *head)
{
struct kcore_list *ent;
- ent = kmalloc(sizeof(*ent), GFP_KERNEL);
+ ent = kmalloc_obj(*ent, GFP_KERNEL);
if (!ent)
return -ENOMEM;
ent->addr = (unsigned long)__va(0);
@@ -178,7 +178,7 @@ get_sparsemem_vmemmap_info(struct kcore_list *ent, struct list_head *head)
end = tmp->addr;
}
if (start < end) {
- vmm = kmalloc(sizeof(*vmm), GFP_KERNEL);
+ vmm = kmalloc_obj(*vmm, GFP_KERNEL);
if (!vmm)
return 0;
vmm->addr = start;
@@ -210,7 +210,7 @@ kclist_add_private(unsigned long pfn, unsigned long nr_pages, void *arg)
p = pfn_to_page(pfn);
- ent = kmalloc(sizeof(*ent), GFP_KERNEL);
+ ent = kmalloc_obj(*ent, GFP_KERNEL);
if (!ent)
return -ENOMEM;
ent->addr = (unsigned long)page_to_virt(p);
diff --git a/fs/proc/root.c b/fs/proc/root.c
index d8ca41d823e4..fb0ccacb08e6 100644
--- a/fs/proc/root.c
+++ b/fs/proc/root.c
@@ -249,7 +249,7 @@ static int proc_fill_super(struct super_block *s, struct fs_context *fc)
struct proc_fs_info *fs_info;
int ret;
- fs_info = kzalloc(sizeof(*fs_info), GFP_KERNEL);
+ fs_info = kzalloc_obj(*fs_info, GFP_KERNEL);
if (!fs_info)
return -ENOMEM;
@@ -331,7 +331,7 @@ static int proc_init_fs_context(struct fs_context *fc)
{
struct proc_fs_context *ctx;
- ctx = kzalloc(sizeof(struct proc_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct proc_fs_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index d7d52e259055..0418511f69fe 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -1534,7 +1534,7 @@ static int smaps_rollup_open(struct inode *inode, struct file *file)
int ret;
struct proc_maps_private *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL_ACCOUNT);
+ priv = kzalloc_obj(*priv, GFP_KERNEL_ACCOUNT);
if (!priv)
return -ENOMEM;
@@ -2981,8 +2981,7 @@ static int pagemap_scan_init_bounce_buffer(struct pagemap_scan_private *p)
p->vec_buf_len = min_t(size_t, PAGEMAP_WALK_SIZE >> PAGE_SHIFT,
p->arg.vec_len);
- p->vec_buf = kmalloc_array(p->vec_buf_len, sizeof(*p->vec_buf),
- GFP_KERNEL);
+ p->vec_buf = kmalloc_objs(*p->vec_buf, p->vec_buf_len, GFP_KERNEL);
if (!p->vec_buf)
return -ENOMEM;
diff --git a/fs/pstore/blk.c b/fs/pstore/blk.c
index fa6b8cb788a1..0c9c8b6fdbb8 100644
--- a/fs/pstore/blk.c
+++ b/fs/pstore/blk.c
@@ -297,7 +297,7 @@ static int __init __best_effort_init(void)
return -EINVAL;
}
- best_effort_dev = kzalloc(sizeof(*best_effort_dev), GFP_KERNEL);
+ best_effort_dev = kzalloc_obj(*best_effort_dev, GFP_KERNEL);
if (!best_effort_dev)
return -ENOMEM;
diff --git a/fs/pstore/inode.c b/fs/pstore/inode.c
index 71deffcc3356..8ebcd231e09a 100644
--- a/fs/pstore/inode.c
+++ b/fs/pstore/inode.c
@@ -70,7 +70,7 @@ static void *pstore_ftrace_seq_start(struct seq_file *s, loff_t *pos)
struct pstore_private *ps = s->private;
struct pstore_ftrace_seq_data *data __free(kfree) = NULL;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return NULL;
@@ -365,7 +365,7 @@ int pstore_mkfile(struct dentry *root, struct pstore_record *record)
record->psi->name, record->id,
record->compressed ? ".enc.z" : "");
- private = kzalloc(sizeof(*private), GFP_KERNEL);
+ private = kzalloc_obj(*private, GFP_KERNEL);
if (!private)
return -ENOMEM;
@@ -477,7 +477,7 @@ static int pstore_init_fs_context(struct fs_context *fc)
{
struct pstore_context *ctx;
- ctx = kzalloc(sizeof(struct pstore_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct pstore_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c
index f8b9c9c73997..ff9603bb89db 100644
--- a/fs/pstore/platform.c
+++ b/fs/pstore/platform.c
@@ -683,7 +683,7 @@ void pstore_get_backend_records(struct pstore_info *psi,
struct pstore_record *record;
int rc;
- record = kzalloc(sizeof(*record), GFP_KERNEL);
+ record = kzalloc_obj(*record, GFP_KERNEL);
if (!record) {
pr_err("out of memory creating record\n");
break;
diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c
index 39936d6da0dd..79f801c913bf 100644
--- a/fs/pstore/ram.c
+++ b/fs/pstore/ram.c
@@ -232,8 +232,8 @@ static ssize_t ramoops_pstore_read(struct pstore_record *record)
*/
struct persistent_ram_zone *tmp_prz, *prz_next;
- tmp_prz = kzalloc(sizeof(struct persistent_ram_zone),
- GFP_KERNEL);
+ tmp_prz = kzalloc_obj(struct persistent_ram_zone,
+ GFP_KERNEL);
if (!tmp_prz)
return -ENOMEM;
prz = tmp_prz;
@@ -539,7 +539,7 @@ static int ramoops_init_przs(const char *name,
goto fail;
}
- prz_ar = kcalloc(*cnt, sizeof(**przs), GFP_KERNEL);
+ prz_ar = kzalloc_objs(**przs, *cnt, GFP_KERNEL);
if (!prz_ar)
goto fail;
diff --git a/fs/pstore/ram_core.c b/fs/pstore/ram_core.c
index 7b6d6378a3b8..49d022b85d8a 100644
--- a/fs/pstore/ram_core.c
+++ b/fs/pstore/ram_core.c
@@ -229,9 +229,8 @@ static int persistent_ram_init_ecc(struct persistent_ram_zone *prz,
}
/* allocate workspace instead of using stack VLA */
- prz->ecc_info.par = kmalloc_array(prz->ecc_info.ecc_size,
- sizeof(*prz->ecc_info.par),
- GFP_KERNEL);
+ prz->ecc_info.par = kmalloc_objs(*prz->ecc_info.par,
+ prz->ecc_info.ecc_size, GFP_KERNEL);
if (!prz->ecc_info.par) {
pr_err("cannot allocate ECC parity workspace\n");
return -ENOMEM;
@@ -439,7 +438,7 @@ static void *persistent_ram_vmap(phys_addr_t start, size_t size,
return NULL;
}
- pages = kmalloc_array(page_count, sizeof(struct page *), GFP_KERNEL);
+ pages = kmalloc_objs(struct page *, page_count, GFP_KERNEL);
if (!pages) {
pr_err("%s: Failed to allocate array for %u pages\n",
__func__, page_count);
@@ -606,7 +605,7 @@ struct persistent_ram_zone *persistent_ram_new(phys_addr_t start, size_t size,
struct persistent_ram_zone *prz;
int ret = -ENOMEM;
- prz = kzalloc(sizeof(struct persistent_ram_zone), GFP_KERNEL);
+ prz = kzalloc_obj(struct persistent_ram_zone, GFP_KERNEL);
if (!prz) {
pr_err("failed to allocate persistent ram zone\n");
goto err;
diff --git a/fs/pstore/zone.c b/fs/pstore/zone.c
index eb61ba5bb964..6687d255a36b 100644
--- a/fs/pstore/zone.c
+++ b/fs/pstore/zone.c
@@ -1166,7 +1166,7 @@ static struct pstore_zone *psz_init_zone(enum pstore_type_id type,
return ERR_PTR(-ENOMEM);
}
- zone = kzalloc(sizeof(struct pstore_zone), GFP_KERNEL);
+ zone = kzalloc_obj(struct pstore_zone, GFP_KERNEL);
if (!zone)
return ERR_PTR(-ENOMEM);
@@ -1218,7 +1218,7 @@ static struct pstore_zone **psz_init_zones(enum pstore_type_id type,
return ERR_PTR(-EINVAL);
}
- zones = kcalloc(c, sizeof(*zones), GFP_KERNEL);
+ zones = kzalloc_objs(*zones, c, GFP_KERNEL);
if (!zones) {
pr_err("allocate for zones %s failed\n", name);
return ERR_PTR(-ENOMEM);
diff --git a/fs/qnx4/inode.c b/fs/qnx4/inode.c
index 31d78da203ea..e8c4de5de7be 100644
--- a/fs/qnx4/inode.c
+++ b/fs/qnx4/inode.c
@@ -197,7 +197,7 @@ static int qnx4_fill_super(struct super_block *s, struct fs_context *fc)
struct qnx4_sb_info *qs;
int silent = fc->sb_flags & SB_SILENT;
- qs = kzalloc(sizeof(struct qnx4_sb_info), GFP_KERNEL);
+ qs = kzalloc_obj(struct qnx4_sb_info, GFP_KERNEL);
if (!qs)
return -ENOMEM;
s->s_fs_info = qs;
diff --git a/fs/qnx6/inode.c b/fs/qnx6/inode.c
index 88d285005083..de1e1a61810d 100644
--- a/fs/qnx6/inode.c
+++ b/fs/qnx6/inode.c
@@ -302,7 +302,7 @@ static int qnx6_fill_super(struct super_block *s, struct fs_context *fc)
int bootblock_offset = QNX6_BOOTBLOCK_SIZE;
int silent = fc->sb_flags & SB_SILENT;
- qs = kzalloc(sizeof(struct qnx6_sb_info), GFP_KERNEL);
+ qs = kzalloc_obj(struct qnx6_sb_info, GFP_KERNEL);
if (!qs)
return -ENOMEM;
s->s_fs_info = qs;
@@ -645,7 +645,7 @@ static int qnx6_init_fs_context(struct fs_context *fc)
{
struct qnx6_context *ctx;
- ctx = kzalloc(sizeof(struct qnx6_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct qnx6_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
fc->ops = &qnx6_context_ops;
diff --git a/fs/qnx6/super_mmi.c b/fs/qnx6/super_mmi.c
index d282c2c73404..d36ade7fc477 100644
--- a/fs/qnx6/super_mmi.c
+++ b/fs/qnx6/super_mmi.c
@@ -100,7 +100,7 @@ struct qnx6_super_block *qnx6_mmi_fill_super(struct super_block *s, int silent)
goto out;
}
- qsb = kmalloc(sizeof(*qsb), GFP_KERNEL);
+ qsb = kmalloc_obj(*qsb, GFP_KERNEL);
if (!qsb) {
pr_err("unable to allocate memory.\n");
goto out;
diff --git a/fs/quota/quota_v2.c b/fs/quota/quota_v2.c
index 1fda93dcbc1b..d022b18782c6 100644
--- a/fs/quota/quota_v2.c
+++ b/fs/quota/quota_v2.c
@@ -121,7 +121,7 @@ static int v2_read_file_info(struct super_block *sb, int type)
ret = -EIO;
goto out;
}
- info->dqi_priv = kmalloc(sizeof(struct qtree_mem_dqinfo), GFP_KERNEL);
+ info->dqi_priv = kmalloc_obj(struct qtree_mem_dqinfo, GFP_KERNEL);
if (!info->dqi_priv) {
ret = -ENOMEM;
goto out;
diff --git a/fs/ramfs/inode.c b/fs/ramfs/inode.c
index 505d10a0cb36..d084b6804b65 100644
--- a/fs/ramfs/inode.c
+++ b/fs/ramfs/inode.c
@@ -298,7 +298,7 @@ int ramfs_init_fs_context(struct fs_context *fc)
{
struct ramfs_fs_info *fsi;
- fsi = kzalloc(sizeof(*fsi), GFP_KERNEL);
+ fsi = kzalloc_obj(*fsi, GFP_KERNEL);
if (!fsi)
return -ENOMEM;
diff --git a/fs/resctrl/monitor.c b/fs/resctrl/monitor.c
index 0cd5476a483a..6fd5c0e8a0dd 100644
--- a/fs/resctrl/monitor.c
+++ b/fs/resctrl/monitor.c
@@ -923,7 +923,7 @@ int setup_rmid_lru_list(void)
return 0;
idx_limit = resctrl_arch_system_num_rmid_idx();
- rmid_ptrs = kcalloc(idx_limit, sizeof(struct rmid_entry), GFP_KERNEL);
+ rmid_ptrs = kzalloc_objs(struct rmid_entry, idx_limit, GFP_KERNEL);
if (!rmid_ptrs)
return -ENOMEM;
diff --git a/fs/resctrl/pseudo_lock.c b/fs/resctrl/pseudo_lock.c
index e81d71abfe54..55e71d257324 100644
--- a/fs/resctrl/pseudo_lock.c
+++ b/fs/resctrl/pseudo_lock.c
@@ -154,7 +154,7 @@ static int pseudo_lock_cstates_constrain(struct pseudo_lock_region *plr)
int ret;
for_each_cpu(cpu, &plr->d->hdr.cpu_mask) {
- pm_req = kzalloc(sizeof(*pm_req), GFP_KERNEL);
+ pm_req = kzalloc_obj(*pm_req, GFP_KERNEL);
if (!pm_req) {
rdt_last_cmd_puts("Failure to allocate memory for PM QoS\n");
ret = -ENOMEM;
@@ -270,7 +270,7 @@ static int pseudo_lock_init(struct rdtgroup *rdtgrp)
{
struct pseudo_lock_region *plr;
- plr = kzalloc(sizeof(*plr), GFP_KERNEL);
+ plr = kzalloc_obj(*plr, GFP_KERNEL);
if (!plr)
return -ENOMEM;
diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c
index ba8d503551cd..1135208adafb 100644
--- a/fs/resctrl/rdtgroup.c
+++ b/fs/resctrl/rdtgroup.c
@@ -2686,7 +2686,7 @@ static int schemata_list_add(struct rdt_resource *r, enum resctrl_conf_type type
const char *suffix = "";
int ret, cl;
- s = kzalloc(sizeof(*s), GFP_KERNEL);
+ s = kzalloc_obj(*s, GFP_KERNEL);
if (!s)
return -ENOMEM;
@@ -2966,7 +2966,7 @@ static int rdt_init_fs_context(struct fs_context *fc)
{
struct rdt_fs_context *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -3117,7 +3117,7 @@ static struct mon_data *mon_get_kn_priv(enum resctrl_res_level rid, int domid,
return priv;
}
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return NULL;
@@ -3753,7 +3753,7 @@ static int mkdir_rdt_prepare(struct kernfs_node *parent_kn,
}
/* allocate the rdtgroup. */
- rdtgrp = kzalloc(sizeof(*rdtgrp), GFP_KERNEL);
+ rdtgrp = kzalloc_obj(*rdtgrp, GFP_KERNEL);
if (!rdtgrp) {
ret = -ENOSPC;
rdt_last_cmd_puts("Kernel out of memory\n");
diff --git a/fs/select.c b/fs/select.c
index 78a1508c84d3..57b0af64cc1e 100644
--- a/fs/select.c
+++ b/fs/select.c
@@ -993,8 +993,8 @@ static int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds,
todo -= walk->len;
len = min(todo, POLLFD_PER_PAGE);
- walk = walk->next = kmalloc(struct_size(walk, entries, len),
- GFP_KERNEL);
+ walk = walk->next = kmalloc_flex(*walk, entries, len,
+ GFP_KERNEL);
if (!walk) {
err = -ENOMEM;
goto out_fds;
diff --git a/fs/seq_file.c b/fs/seq_file.c
index 8894cbde8d3a..4745db2a34d1 100644
--- a/fs/seq_file.c
+++ b/fs/seq_file.c
@@ -573,7 +573,7 @@ static void single_stop(struct seq_file *p, void *v)
int single_open(struct file *file, int (*show)(struct seq_file *, void *),
void *data)
{
- struct seq_operations *op = kmalloc(sizeof(*op), GFP_KERNEL_ACCOUNT);
+ struct seq_operations *op = kmalloc_obj(*op, GFP_KERNEL_ACCOUNT);
int res = -ENOMEM;
if (op) {
diff --git a/fs/signalfd.c b/fs/signalfd.c
index d69eab584bc6..0b663f9c1cff 100644
--- a/fs/signalfd.c
+++ b/fs/signalfd.c
@@ -264,7 +264,7 @@ static int do_signalfd4(int ufd, sigset_t *mask, int flags)
int fd;
struct signalfd_ctx *ctx __free(kfree) = NULL;
- ctx = kmalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kmalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/smb/client/cached_dir.c b/fs/smb/client/cached_dir.c
index 2a6b8ce80be2..94574dab56f6 100644
--- a/fs/smb/client/cached_dir.c
+++ b/fs/smb/client/cached_dir.c
@@ -556,7 +556,7 @@ void close_all_cached_dirs(struct cifs_sb_info *cifs_sb)
continue;
spin_lock(&cfids->cfid_list_lock);
list_for_each_entry(cfid, &cfids->entries, entry) {
- tmp_list = kmalloc(sizeof(*tmp_list), GFP_ATOMIC);
+ tmp_list = kmalloc_obj(*tmp_list, GFP_ATOMIC);
if (tmp_list == NULL) {
/*
* If the malloc() fails, we won't drop all
@@ -698,7 +698,7 @@ static struct cached_fid *init_cached_dir(const char *path)
{
struct cached_fid *cfid;
- cfid = kzalloc(sizeof(*cfid), GFP_ATOMIC);
+ cfid = kzalloc_obj(*cfid, GFP_ATOMIC);
if (!cfid)
return NULL;
cfid->path = kstrdup(path, GFP_ATOMIC);
@@ -813,7 +813,7 @@ struct cached_fids *init_cached_dirs(void)
{
struct cached_fids *cfids;
- cfids = kzalloc(sizeof(*cfids), GFP_KERNEL);
+ cfids = kzalloc_obj(*cfids, GFP_KERNEL);
if (!cfids)
return NULL;
spin_lock_init(&cfids->cfid_list_lock);
diff --git a/fs/smb/client/cifs_swn.c b/fs/smb/client/cifs_swn.c
index 68a1f87c446d..9753a432d099 100644
--- a/fs/smb/client/cifs_swn.c
+++ b/fs/smb/client/cifs_swn.c
@@ -315,7 +315,7 @@ static struct cifs_swn_reg *cifs_get_swn_reg(struct cifs_tcon *tcon)
goto unlock;
}
- reg = kmalloc(sizeof(struct cifs_swn_reg), GFP_ATOMIC);
+ reg = kmalloc_obj(struct cifs_swn_reg, GFP_ATOMIC);
if (reg == NULL) {
ret = -ENOMEM;
goto fail_unlock;
diff --git a/fs/smb/client/cifsacl.c b/fs/smb/client/cifsacl.c
index f03eda46f452..85ffb8cfe320 100644
--- a/fs/smb/client/cifsacl.c
+++ b/fs/smb/client/cifsacl.c
@@ -805,8 +805,7 @@ static void parse_dacl(struct smb_acl *pdacl, char *end_of_acl,
offsetof(struct smb_sid, sub_auth) + sizeof(__le16)))
return;
- ppace = kmalloc_array(num_aces, sizeof(struct smb_ace *),
- GFP_KERNEL);
+ ppace = kmalloc_objs(struct smb_ace *, num_aces, GFP_KERNEL);
if (!ppace)
return;
@@ -1332,8 +1331,7 @@ static int build_sec_desc(struct smb_ntsd *pntsd, struct smb_ntsd *pnntsd,
if (uid_valid(uid)) { /* chown */
uid_t id;
- nowner_sid_ptr = kzalloc(sizeof(struct smb_sid),
- GFP_KERNEL);
+ nowner_sid_ptr = kzalloc_obj(struct smb_sid, GFP_KERNEL);
if (!nowner_sid_ptr) {
rc = -ENOMEM;
goto chown_chgrp_exit;
@@ -1361,8 +1359,7 @@ static int build_sec_desc(struct smb_ntsd *pntsd, struct smb_ntsd *pnntsd,
}
if (gid_valid(gid)) { /* chgrp */
gid_t id;
- ngroup_sid_ptr = kzalloc(sizeof(struct smb_sid),
- GFP_KERNEL);
+ ngroup_sid_ptr = kzalloc_obj(struct smb_sid, GFP_KERNEL);
if (!ngroup_sid_ptr) {
rc = -ENOMEM;
goto chown_chgrp_exit;
diff --git a/fs/smb/client/cifsencrypt.c b/fs/smb/client/cifsencrypt.c
index 50b7ec39053c..b717b348e98e 100644
--- a/fs/smb/client/cifsencrypt.c
+++ b/fs/smb/client/cifsencrypt.c
@@ -500,7 +500,7 @@ calc_seckey(struct cifs_ses *ses)
get_random_bytes(sec_key, CIFS_SESS_KEY_SIZE);
- ctx_arc4 = kmalloc(sizeof(*ctx_arc4), GFP_KERNEL);
+ ctx_arc4 = kmalloc_obj(*ctx_arc4, GFP_KERNEL);
if (!ctx_arc4) {
cifs_dbg(VFS, "Could not allocate arc4 context\n");
return -ENOMEM;
diff --git a/fs/smb/client/cifsfs.c b/fs/smb/client/cifsfs.c
index afda1d7c1ee1..85a53cd77f9e 100644
--- a/fs/smb/client/cifsfs.c
+++ b/fs/smb/client/cifsfs.c
@@ -1016,11 +1016,11 @@ cifs_smb3_do_mount(struct file_system_type *fs_type,
} else {
cifs_info("Attempting to mount %s\n", old_ctx->source);
}
- cifs_sb = kzalloc(sizeof(*cifs_sb), GFP_KERNEL);
+ cifs_sb = kzalloc_obj(*cifs_sb, GFP_KERNEL);
if (!cifs_sb)
return ERR_PTR(-ENOMEM);
- cifs_sb->ctx = kzalloc(sizeof(struct smb3_fs_context), GFP_KERNEL);
+ cifs_sb->ctx = kzalloc_obj(struct smb3_fs_context, GFP_KERNEL);
if (!cifs_sb->ctx) {
root = ERR_PTR(-ENOMEM);
goto out;
diff --git a/fs/smb/client/compress.c b/fs/smb/client/compress.c
index e0c44b46080e..ae536aa63ef1 100644
--- a/fs/smb/client/compress.c
+++ b/fs/smb/client/compress.c
@@ -229,7 +229,7 @@ static bool is_compressible(const struct iov_iter *data)
if (has_repeated_data(sample, len))
goto out;
- bkt = kcalloc(bkt_size, sizeof(*bkt), GFP_KERNEL);
+ bkt = kzalloc_objs(*bkt, bkt_size, GFP_KERNEL);
if (!bkt) {
WARN_ON_ONCE(1);
ret = false;
diff --git a/fs/smb/client/connect.c b/fs/smb/client/connect.c
index 1b479561cbf9..c7ed2ffb66ee 100644
--- a/fs/smb/client/connect.c
+++ b/fs/smb/client/connect.c
@@ -1755,7 +1755,7 @@ cifs_get_tcp_session(struct smb3_fs_context *ctx,
if (tcp_ses)
return tcp_ses;
- tcp_ses = kzalloc(sizeof(struct TCP_Server_Info), GFP_KERNEL);
+ tcp_ses = kzalloc_obj(struct TCP_Server_Info, GFP_KERNEL);
if (!tcp_ses) {
rc = -ENOMEM;
goto out_err;
@@ -3674,7 +3674,7 @@ static int mount_setup_tlink(struct cifs_sb_info *cifs_sb, struct cifs_ses *ses,
struct tcon_link *tlink;
/* hang the tcon off of the superblock */
- tlink = kzalloc(sizeof(*tlink), GFP_KERNEL);
+ tlink = kzalloc_obj(*tlink, GFP_KERNEL);
if (tlink == NULL)
return -ENOMEM;
@@ -3798,7 +3798,7 @@ mchan_mount_alloc(struct cifs_ses *ses)
{
struct mchan_mount *mchan_mount;
- mchan_mount = kzalloc(sizeof(*mchan_mount), GFP_KERNEL);
+ mchan_mount = kzalloc_obj(*mchan_mount, GFP_KERNEL);
if (!mchan_mount)
return ERR_PTR(-ENOMEM);
@@ -4193,7 +4193,7 @@ cifs_construct_tcon(struct cifs_sb_info *cifs_sb, kuid_t fsuid)
struct smb3_fs_context *ctx;
char *origin_fullpath = NULL;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (ctx == NULL)
return ERR_PTR(-ENOMEM);
@@ -4367,7 +4367,7 @@ cifs_sb_tlink(struct cifs_sb_info *cifs_sb)
spin_unlock(&cifs_sb->tlink_tree_lock);
if (tlink == NULL) {
- newtlink = kzalloc(sizeof(*tlink), GFP_KERNEL);
+ newtlink = kzalloc_obj(*tlink, GFP_KERNEL);
if (newtlink == NULL)
return ERR_PTR(-ENOMEM);
newtlink->tl_uid = fsuid;
diff --git a/fs/smb/client/dfs.h b/fs/smb/client/dfs.h
index 6b5b5ca0f55c..0401c55517b8 100644
--- a/fs/smb/client/dfs.h
+++ b/fs/smb/client/dfs.h
@@ -46,7 +46,7 @@ static inline struct dfs_ref_walk *ref_walk_alloc(void)
{
struct dfs_ref_walk *rw;
- rw = kmalloc(sizeof(*rw), GFP_KERNEL);
+ rw = kmalloc_obj(*rw, GFP_KERNEL);
if (!rw)
return ERR_PTR(-ENOMEM);
return rw;
diff --git a/fs/smb/client/dfs_cache.c b/fs/smb/client/dfs_cache.c
index f2ad0ccd08a7..983132735d72 100644
--- a/fs/smb/client/dfs_cache.c
+++ b/fs/smb/client/dfs_cache.c
@@ -363,7 +363,7 @@ static struct cache_dfs_tgt *alloc_target(const char *name, int path_consumed)
{
struct cache_dfs_tgt *t;
- t = kmalloc(sizeof(*t), GFP_ATOMIC);
+ t = kmalloc_obj(*t, GFP_ATOMIC);
if (!t)
return ERR_PTR(-ENOMEM);
t->name = kstrdup(name, GFP_ATOMIC);
@@ -796,7 +796,7 @@ static int get_targets(struct cache_entry *ce, struct dfs_cache_tgt_list *tl)
INIT_LIST_HEAD(head);
list_for_each_entry(t, &ce->tlist, list) {
- it = kzalloc(sizeof(*it), GFP_ATOMIC);
+ it = kzalloc_obj(*it, GFP_ATOMIC);
if (!it) {
rc = -ENOMEM;
goto err_free_it;
diff --git a/fs/smb/client/file.c b/fs/smb/client/file.c
index 88273f82812b..43b5b48f5a67 100644
--- a/fs/smb/client/file.c
+++ b/fs/smb/client/file.c
@@ -489,7 +489,7 @@ int cifs_posix_open(const char *full_path, struct inode **pinode,
cifs_dbg(FYI, "posix open %s\n", full_path);
- presp_data = kzalloc(sizeof(FILE_UNIX_BASIC_INFO), GFP_KERNEL);
+ presp_data = kzalloc_obj(FILE_UNIX_BASIC_INFO, GFP_KERNEL);
if (presp_data == NULL)
return -ENOMEM;
@@ -673,11 +673,11 @@ struct cifsFileInfo *cifs_new_fileinfo(struct cifs_fid *fid, struct file *file,
struct cifs_tcon *tcon = tlink_tcon(tlink);
struct TCP_Server_Info *server = tcon->ses->server;
- cfile = kzalloc(sizeof(struct cifsFileInfo), GFP_KERNEL);
+ cfile = kzalloc_obj(struct cifsFileInfo, GFP_KERNEL);
if (cfile == NULL)
return cfile;
- fdlocks = kzalloc(sizeof(struct cifs_fid_locks), GFP_KERNEL);
+ fdlocks = kzalloc_obj(struct cifs_fid_locks, GFP_KERNEL);
if (!fdlocks) {
kfree(cfile);
return NULL;
@@ -1458,7 +1458,7 @@ int cifs_close(struct inode *inode, struct file *file)
if (file->private_data != NULL) {
cfile = file->private_data;
file->private_data = NULL;
- dclose = kmalloc(sizeof(struct cifs_deferred_close), GFP_KERNEL);
+ dclose = kmalloc_obj(struct cifs_deferred_close, GFP_KERNEL);
if ((cfile->status_file_deleted == false) &&
(smb2_can_defer_close(inode, dclose))) {
if (test_and_clear_bit(NETFS_ICTX_MODIFIED_ATTR, &cinode->netfs.flags)) {
@@ -1582,7 +1582,7 @@ static struct cifsLockInfo *
cifs_lock_init(__u64 offset, __u64 length, __u8 type, __u16 flags)
{
struct cifsLockInfo *lock =
- kmalloc(sizeof(struct cifsLockInfo), GFP_KERNEL);
+ kmalloc_obj(struct cifsLockInfo, GFP_KERNEL);
if (!lock)
return lock;
lock->offset = offset;
@@ -1853,7 +1853,7 @@ cifs_push_mandatory_locks(struct cifsFileInfo *cfile)
PAGE_SIZE);
max_num = (max_buf - sizeof(struct smb_hdr)) /
sizeof(LOCKING_ANDX_RANGE);
- buf = kcalloc(max_num, sizeof(LOCKING_ANDX_RANGE), GFP_KERNEL);
+ buf = kzalloc_objs(LOCKING_ANDX_RANGE, max_num, GFP_KERNEL);
if (!buf) {
free_xid(xid);
return -ENOMEM;
@@ -1945,7 +1945,7 @@ cifs_push_posix_locks(struct cifsFileInfo *cfile)
* protects locking operations of this inode.
*/
for (i = 0; i < count; i++) {
- lck = kmalloc(sizeof(struct lock_to_push), GFP_KERNEL);
+ lck = kmalloc_obj(struct lock_to_push, GFP_KERNEL);
if (!lck) {
rc = -ENOMEM;
goto err_out;
@@ -2229,7 +2229,7 @@ cifs_unlock_range(struct cifsFileInfo *cfile, struct file_lock *flock,
PAGE_SIZE);
max_num = (max_buf - sizeof(struct smb_hdr)) /
sizeof(LOCKING_ANDX_RANGE);
- buf = kcalloc(max_num, sizeof(LOCKING_ANDX_RANGE), GFP_KERNEL);
+ buf = kzalloc_objs(LOCKING_ANDX_RANGE, max_num, GFP_KERNEL);
if (!buf)
return -ENOMEM;
diff --git a/fs/smb/client/fs_context.c b/fs/smb/client/fs_context.c
index 412c5b534791..4810f926dccb 100644
--- a/fs/smb/client/fs_context.c
+++ b/fs/smb/client/fs_context.c
@@ -1924,7 +1924,7 @@ int smb3_init_fs_context(struct fs_context *fc)
char *nodename = utsname()->nodename;
int i;
- ctx = kzalloc(sizeof(struct smb3_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct smb3_fs_context, GFP_KERNEL);
if (unlikely(!ctx))
return -ENOMEM;
diff --git a/fs/smb/client/inode.c b/fs/smb/client/inode.c
index c23c057162e6..d40f39f9547c 100644
--- a/fs/smb/client/inode.c
+++ b/fs/smb/client/inode.c
@@ -1841,7 +1841,7 @@ cifs_rename_pending_delete(const char *full_path, struct dentry *dentry,
/* set ATTR_HIDDEN and clear ATTR_READONLY, but only if needed */
if (dosattr != origattr) {
- info_buf = kzalloc(sizeof(*info_buf), GFP_KERNEL);
+ info_buf = kzalloc_obj(*info_buf, GFP_KERNEL);
if (info_buf == NULL) {
rc = -ENOMEM;
goto out_close;
@@ -2041,7 +2041,7 @@ static int __cifs_unlink(struct inode *dir, struct dentry *dentry, bool sillyren
}
}
} else if ((rc == -EACCES) && (dosattr == 0) && inode) {
- attrs = kzalloc(sizeof(*attrs), GFP_KERNEL);
+ attrs = kzalloc_obj(*attrs, GFP_KERNEL);
if (attrs == NULL) {
rc = -ENOMEM;
goto out_reval;
@@ -2197,7 +2197,7 @@ cifs_posix_mkdir(struct inode *inode, struct dentry *dentry, umode_t mode,
struct inode *newinode = NULL;
struct cifs_fattr fattr;
- info = kzalloc(sizeof(FILE_UNIX_BASIC_INFO), GFP_KERNEL);
+ info = kzalloc_obj(FILE_UNIX_BASIC_INFO, GFP_KERNEL);
if (info == NULL) {
rc = -ENOMEM;
goto posix_mkdir_out;
@@ -2585,8 +2585,7 @@ cifs_rename2(struct mnt_idmap *idmap, struct inode *source_dir,
* with unix extensions enabled.
*/
info_buf_source =
- kmalloc_array(2, sizeof(FILE_UNIX_BASIC_INFO),
- GFP_KERNEL);
+ kmalloc_objs(FILE_UNIX_BASIC_INFO, 2, GFP_KERNEL);
if (info_buf_source == NULL) {
rc = -ENOMEM;
goto cifs_rename_exit;
@@ -3167,7 +3166,7 @@ cifs_setattr_unix(struct dentry *direntry, struct iattr *attrs)
if (attrs->ia_valid & (ATTR_KILL_SUID|ATTR_KILL_SGID))
attrs->ia_valid &= ~ATTR_MODE;
- args = kmalloc(sizeof(*args), GFP_KERNEL);
+ args = kmalloc_obj(*args, GFP_KERNEL);
if (args == NULL) {
rc = -ENOMEM;
goto out;
diff --git a/fs/smb/client/ioctl.c b/fs/smb/client/ioctl.c
index a4aa063cf5ea..6d24184c8735 100644
--- a/fs/smb/client/ioctl.c
+++ b/fs/smb/client/ioctl.c
@@ -133,7 +133,7 @@ static long smb_mnt_get_fsinfo(unsigned int xid, struct cifs_tcon *tcon,
int rc = 0;
struct smb_mnt_fs_info *fsinf;
- fsinf = kzalloc(sizeof(struct smb_mnt_fs_info), GFP_KERNEL);
+ fsinf = kzalloc_obj(struct smb_mnt_fs_info, GFP_KERNEL);
if (fsinf == NULL)
return -ENOMEM;
diff --git a/fs/smb/client/misc.c b/fs/smb/client/misc.c
index 1773e3b471aa..290d0a0bea53 100644
--- a/fs/smb/client/misc.c
+++ b/fs/smb/client/misc.c
@@ -67,7 +67,7 @@ sesInfoAlloc(void)
{
struct cifs_ses *ret_buf;
- ret_buf = kzalloc(sizeof(struct cifs_ses), GFP_KERNEL);
+ ret_buf = kzalloc_obj(struct cifs_ses, GFP_KERNEL);
if (ret_buf) {
atomic_inc(&sesInfoAllocCount);
spin_lock_init(&ret_buf->ses_lock);
@@ -118,7 +118,7 @@ tcon_info_alloc(bool dir_leases_enabled, enum smb3_tcon_ref_trace trace)
struct cifs_tcon *ret_buf;
static atomic_t tcon_debug_id;
- ret_buf = kzalloc(sizeof(*ret_buf), GFP_KERNEL);
+ ret_buf = kzalloc_obj(*ret_buf, GFP_KERNEL);
if (!ret_buf)
return NULL;
@@ -499,7 +499,8 @@ cifs_close_deferred_file(struct cifsInodeInfo *cifs_inode)
cifs_del_deferred_close(cfile);
spin_unlock(&cifs_inode->deferred_lock);
- tmp_list = kmalloc(sizeof(struct file_list), GFP_ATOMIC);
+ tmp_list = kmalloc_obj(struct file_list,
+ GFP_ATOMIC);
if (tmp_list == NULL)
break;
tmp_list->cfile = cfile;
@@ -531,7 +532,8 @@ cifs_close_all_deferred_files(struct cifs_tcon *tcon)
cifs_del_deferred_close(cfile);
spin_unlock(&CIFS_I(d_inode(cfile->dentry))->deferred_lock);
- tmp_list = kmalloc(sizeof(struct file_list), GFP_ATOMIC);
+ tmp_list = kmalloc_obj(struct file_list,
+ GFP_ATOMIC);
if (tmp_list == NULL)
break;
tmp_list->cfile = cfile;
@@ -564,7 +566,7 @@ void cifs_close_deferred_file_under_dentry(struct cifs_tcon *tcon,
cifs_del_deferred_close(cfile);
spin_unlock(&CIFS_I(d_inode(cfile->dentry))->deferred_lock);
- tmp_list = kmalloc(sizeof(struct file_list), GFP_ATOMIC);
+ tmp_list = kmalloc_obj(struct file_list, GFP_ATOMIC);
if (tmp_list == NULL)
break;
tmp_list->cfile = cfile;
@@ -671,8 +673,8 @@ parse_dfs_referrals(struct get_dfs_referral_rsp *rsp, u32 rsp_size,
cifs_dbg(FYI, "num_referrals: %d dfs flags: 0x%x ...\n",
*num_of_nodes, le32_to_cpu(rsp->DFSFlags));
- *target_nodes = kcalloc(*num_of_nodes, sizeof(struct dfs_info3_param),
- GFP_KERNEL);
+ *target_nodes = kzalloc_objs(struct dfs_info3_param, *num_of_nodes,
+ GFP_KERNEL);
if (*target_nodes == NULL) {
rc = -ENOMEM;
goto parse_DFS_referrals_exit;
diff --git a/fs/smb/client/readdir.c b/fs/smb/client/readdir.c
index 67a8555efa1e..53e17fb2b6ee 100644
--- a/fs/smb/client/readdir.c
+++ b/fs/smb/client/readdir.c
@@ -358,7 +358,7 @@ _initiate_cifs_search(const unsigned int xid, struct file *file,
if (IS_ERR(tlink))
return PTR_ERR(tlink);
- cifsFile = kzalloc(sizeof(struct cifsFileInfo), GFP_KERNEL);
+ cifsFile = kzalloc_obj(struct cifsFileInfo, GFP_KERNEL);
if (cifsFile == NULL) {
rc = -ENOMEM;
goto error_exit;
@@ -888,7 +888,7 @@ static bool add_cached_dirent(struct cached_dirents *cde,
cde->is_failed = 1;
return false;
}
- de = kzalloc(sizeof(*de), GFP_ATOMIC);
+ de = kzalloc_obj(*de, GFP_ATOMIC);
if (de == NULL) {
cde->is_failed = 1;
return false;
diff --git a/fs/smb/client/sess.c b/fs/smb/client/sess.c
index d523540565ef..e32f9e185499 100644
--- a/fs/smb/client/sess.c
+++ b/fs/smb/client/sess.c
@@ -510,7 +510,7 @@ cifs_ses_add_channel(struct cifs_ses *ses,
* the session and server without caring about memory
* management.
*/
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
rc = -ENOMEM;
goto out_free_xid;
diff --git a/fs/smb/client/smb1ops.c b/fs/smb/client/smb1ops.c
index 970aeffe936e..689e052c2809 100644
--- a/fs/smb/client/smb1ops.c
+++ b/fs/smb/client/smb1ops.c
@@ -506,7 +506,7 @@ cifs_is_path_accessible(const unsigned int xid, struct cifs_tcon *tcon,
int rc;
FILE_ALL_INFO *file_info;
- file_info = kmalloc(sizeof(FILE_ALL_INFO), GFP_KERNEL);
+ file_info = kmalloc_obj(FILE_ALL_INFO, GFP_KERNEL);
if (file_info == NULL)
return -ENOMEM;
diff --git a/fs/smb/client/smb1session.c b/fs/smb/client/smb1session.c
index 1cf6bd640fde..f5ef07d24b5f 100644
--- a/fs/smb/client/smb1session.c
+++ b/fs/smb/client/smb1session.c
@@ -725,7 +725,7 @@ sess_auth_rawntlmssp_negotiate(struct sess_data *sess_data)
* if memory allocation is successful, caller of this function
* frees it.
*/
- ses->ntlmssp = kmalloc(sizeof(struct ntlmssp_auth), GFP_KERNEL);
+ ses->ntlmssp = kmalloc_obj(struct ntlmssp_auth, GFP_KERNEL);
if (!ses->ntlmssp) {
rc = -ENOMEM;
goto out;
@@ -969,7 +969,7 @@ int CIFS_SessSetup(const unsigned int xid, struct cifs_ses *ses,
return -EINVAL;
}
- sess_data = kzalloc(sizeof(struct sess_data), GFP_KERNEL);
+ sess_data = kzalloc_obj(struct sess_data, GFP_KERNEL);
if (!sess_data)
return -ENOMEM;
diff --git a/fs/smb/client/smb2file.c b/fs/smb/client/smb2file.c
index 476c53b3711f..6dba874156aa 100644
--- a/fs/smb/client/smb2file.c
+++ b/fs/smb/client/smb2file.c
@@ -281,7 +281,7 @@ smb2_unlock_range(struct cifsFileInfo *cfile, struct file_lock *flock,
BUILD_BUG_ON(sizeof(struct smb2_lock_element) > PAGE_SIZE);
max_buf = min_t(unsigned int, max_buf, PAGE_SIZE);
max_num = max_buf / sizeof(struct smb2_lock_element);
- buf = kcalloc(max_num, sizeof(struct smb2_lock_element), GFP_KERNEL);
+ buf = kzalloc_objs(struct smb2_lock_element, max_num, GFP_KERNEL);
if (!buf)
return -ENOMEM;
@@ -424,7 +424,7 @@ smb2_push_mandatory_locks(struct cifsFileInfo *cfile)
BUILD_BUG_ON(sizeof(struct smb2_lock_element) > PAGE_SIZE);
max_buf = min_t(unsigned int, max_buf, PAGE_SIZE);
max_num = max_buf / sizeof(struct smb2_lock_element);
- buf = kcalloc(max_num, sizeof(struct smb2_lock_element), GFP_KERNEL);
+ buf = kzalloc_objs(struct smb2_lock_element, max_num, GFP_KERNEL);
if (!buf) {
free_xid(xid);
return -ENOMEM;
diff --git a/fs/smb/client/smb2inode.c b/fs/smb/client/smb2inode.c
index 8a30088fed15..195a38fd61e8 100644
--- a/fs/smb/client/smb2inode.c
+++ b/fs/smb/client/smb2inode.c
@@ -209,7 +209,7 @@ static int smb2_compound_op(const unsigned int xid, struct cifs_tcon *tcon,
num_rqst = 0;
server = cifs_pick_channel(ses);
- vars = kzalloc(sizeof(*vars), GFP_ATOMIC);
+ vars = kzalloc_obj(*vars, GFP_ATOMIC);
if (vars == NULL) {
rc = -ENOMEM;
goto out;
diff --git a/fs/smb/client/smb2misc.c b/fs/smb/client/smb2misc.c
index d1ae839e4863..efba7cb9fb70 100644
--- a/fs/smb/client/smb2misc.c
+++ b/fs/smb/client/smb2misc.c
@@ -526,7 +526,7 @@ smb2_queue_pending_open_break(struct tcon_link *tlink, __u8 *lease_key,
{
struct smb2_lease_break_work *lw;
- lw = kmalloc(sizeof(struct smb2_lease_break_work), GFP_KERNEL);
+ lw = kmalloc_obj(struct smb2_lease_break_work, GFP_KERNEL);
if (!lw) {
cifs_put_tlink(tlink);
return;
@@ -798,7 +798,7 @@ __smb2_handle_cancelled_cmd(struct cifs_tcon *tcon, __u16 cmd, __u64 mid,
{
struct close_cancelled_open *cancelled;
- cancelled = kzalloc(sizeof(*cancelled), GFP_KERNEL);
+ cancelled = kzalloc_obj(*cancelled, GFP_KERNEL);
if (!cancelled)
return -ENOMEM;
diff --git a/fs/smb/client/smb2ops.c b/fs/smb/client/smb2ops.c
index 7370d7a18cd0..071df7465a8b 100644
--- a/fs/smb/client/smb2ops.c
+++ b/fs/smb/client/smb2ops.c
@@ -731,8 +731,7 @@ parse_server_interfaces(struct network_interface_info_ioctl_rsp *buf,
spin_unlock(&ses->iface_lock);
/* no match. insert the entry in the list */
- info = kmalloc(sizeof(struct cifs_server_iface),
- GFP_KERNEL);
+ info = kmalloc_obj(struct cifs_server_iface, GFP_KERNEL);
if (!info) {
rc = -ENOMEM;
goto out;
@@ -1202,7 +1201,7 @@ smb2_set_ea(const unsigned int xid, struct cifs_tcon *tcon,
ea = NULL;
resp_buftype[0] = resp_buftype[1] = resp_buftype[2] = CIFS_NO_BUFFER;
- vars = kzalloc(sizeof(*vars), GFP_KERNEL);
+ vars = kzalloc_obj(*vars, GFP_KERNEL);
if (!vars) {
rc = -ENOMEM;
goto out_free_path;
@@ -1594,7 +1593,7 @@ smb2_ioctl_query_info(const unsigned int xid,
oplock = SMB2_OPLOCK_LEVEL_NONE;
server = cifs_pick_channel(ses);
- vars = kzalloc(sizeof(*vars), GFP_ATOMIC);
+ vars = kzalloc_obj(*vars, GFP_ATOMIC);
if (vars == NULL)
return -ENOMEM;
rqst = &vars->rqst[0];
@@ -1889,7 +1888,7 @@ smb2_copychunk_range(const unsigned int xid,
goto out;
}
- cc_req = kzalloc(struct_size(cc_req, Chunks, chunk_count), GFP_KERNEL);
+ cc_req = kzalloc_flex(*cc_req, Chunks, chunk_count, GFP_KERNEL);
if (!cc_req) {
rc = -ENOMEM;
goto out;
@@ -2850,7 +2849,7 @@ smb2_query_info_compound(const unsigned int xid, struct cifs_tcon *tcon,
flags |= CIFS_TRANSFORM_REQ;
resp_buftype[0] = resp_buftype[1] = resp_buftype[2] = CIFS_NO_BUFFER;
- vars = kzalloc(sizeof(*vars), GFP_KERNEL);
+ vars = kzalloc_obj(*vars, GFP_KERNEL);
if (!vars) {
rc = -ENOMEM;
goto out_free_path;
@@ -4221,7 +4220,7 @@ smb2_create_lease_buf(u8 *lease_key, u8 oplock, u8 *parent_lease_key, __le32 fla
{
struct create_lease *buf;
- buf = kzalloc(sizeof(struct create_lease), GFP_KERNEL);
+ buf = kzalloc_obj(struct create_lease, GFP_KERNEL);
if (!buf)
return NULL;
@@ -4247,7 +4246,7 @@ smb3_create_lease_buf(u8 *lease_key, u8 oplock, u8 *parent_lease_key, __le32 fla
{
struct create_lease_v2 *buf;
- buf = kzalloc(sizeof(struct create_lease_v2), GFP_KERNEL);
+ buf = kzalloc_obj(struct create_lease_v2, GFP_KERNEL);
if (!buf)
return NULL;
@@ -4931,7 +4930,7 @@ receive_encrypted_read(struct TCP_Server_Info *server, struct mid_q_entry **mid,
int rc;
struct smb2_decrypt_work *dw;
- dw = kzalloc(sizeof(struct smb2_decrypt_work), GFP_KERNEL);
+ dw = kzalloc_obj(struct smb2_decrypt_work, GFP_KERNEL);
if (!dw)
return -ENOMEM;
INIT_WORK(&dw->decrypt, smb2_decrypt_offload);
diff --git a/fs/smb/client/smb2pdu.c b/fs/smb/client/smb2pdu.c
index 7f3edf42b9c3..0ebfdfebc5e9 100644
--- a/fs/smb/client/smb2pdu.c
+++ b/fs/smb/client/smb2pdu.c
@@ -1009,8 +1009,7 @@ create_posix_buf(umode_t mode)
{
struct create_posix *buf;
- buf = kzalloc(sizeof(struct create_posix),
- GFP_KERNEL);
+ buf = kzalloc_obj(struct create_posix, GFP_KERNEL);
if (!buf)
return NULL;
@@ -1359,7 +1358,7 @@ int smb3_validate_negotiate(const unsigned int xid, struct cifs_tcon *tcon)
if (tcon->ses->session_flags & SMB2_SESSION_FLAG_IS_NULL)
cifs_tcon_dbg(VFS, "Unexpected null user (anonymous) auth flag sent by server\n");
- pneg_inbuf = kmalloc(sizeof(*pneg_inbuf), GFP_NOFS);
+ pneg_inbuf = kmalloc_obj(*pneg_inbuf, GFP_NOFS);
if (!pneg_inbuf)
return -ENOMEM;
@@ -1786,7 +1785,7 @@ SMB2_sess_auth_rawntlmssp_negotiate(struct SMB2_sess_data *sess_data)
* If memory allocation is successful, caller of this function
* frees it.
*/
- ses->ntlmssp = kmalloc(sizeof(struct ntlmssp_auth), GFP_KERNEL);
+ ses->ntlmssp = kmalloc_obj(struct ntlmssp_auth, GFP_KERNEL);
if (!ses->ntlmssp) {
rc = -ENOMEM;
goto out_err;
@@ -1984,7 +1983,7 @@ SMB2_sess_setup(const unsigned int xid, struct cifs_ses *ses,
return smb_EIO(smb_eio_trace_null_pointers);
}
- sess_data = kzalloc(sizeof(struct SMB2_sess_data), GFP_KERNEL);
+ sess_data = kzalloc_obj(struct SMB2_sess_data, GFP_KERNEL);
if (!sess_data)
return -ENOMEM;
@@ -2298,7 +2297,7 @@ create_durable_buf(void)
{
create_durable_req_t *buf;
- buf = kzalloc(sizeof(create_durable_req_t), GFP_KERNEL);
+ buf = kzalloc_obj(create_durable_req_t, GFP_KERNEL);
if (!buf)
return NULL;
@@ -2321,7 +2320,7 @@ create_reconnect_durable_buf(struct cifs_fid *fid)
{
create_durable_req_t *buf;
- buf = kzalloc(sizeof(create_durable_req_t), GFP_KERNEL);
+ buf = kzalloc_obj(create_durable_req_t, GFP_KERNEL);
if (!buf)
return NULL;
@@ -2493,7 +2492,7 @@ create_durable_v2_buf(struct cifs_open_parms *oparms)
struct cifs_fid *pfid = oparms->fid;
struct create_durable_req_v2 *buf;
- buf = kzalloc(sizeof(struct create_durable_req_v2), GFP_KERNEL);
+ buf = kzalloc_obj(struct create_durable_req_v2, GFP_KERNEL);
if (!buf)
return NULL;
@@ -2534,8 +2533,7 @@ create_reconnect_durable_v2_buf(struct cifs_fid *fid)
{
struct create_durable_handle_reconnect_v2 *buf;
- buf = kzalloc(sizeof(struct create_durable_handle_reconnect_v2),
- GFP_KERNEL);
+ buf = kzalloc_obj(struct create_durable_handle_reconnect_v2, GFP_KERNEL);
if (!buf)
return NULL;
@@ -2626,7 +2624,7 @@ create_twarp_buf(__u64 timewarp)
{
struct crt_twarp_ctxt *buf;
- buf = kzalloc(sizeof(struct crt_twarp_ctxt), GFP_KERNEL);
+ buf = kzalloc_obj(struct crt_twarp_ctxt, GFP_KERNEL);
if (!buf)
return NULL;
@@ -2793,7 +2791,7 @@ create_query_id_buf(void)
{
struct crt_query_id_ctxt *buf;
- buf = kzalloc(sizeof(struct crt_query_id_ctxt), GFP_KERNEL);
+ buf = kzalloc_obj(struct crt_query_id_ctxt, GFP_KERNEL);
if (!buf)
return NULL;
@@ -5845,7 +5843,7 @@ send_set_info(const unsigned int xid, struct cifs_tcon *tcon,
if (smb3_encryption_required(tcon))
flags |= CIFS_TRANSFORM_REQ;
- iov = kmalloc_array(num, sizeof(struct kvec), GFP_KERNEL);
+ iov = kmalloc_objs(struct kvec, num, GFP_KERNEL);
if (!iov)
return -ENOMEM;
diff --git a/fs/smb/client/smbdirect.c b/fs/smb/client/smbdirect.c
index d44847c9d8fc..e2df73c719fd 100644
--- a/fs/smb/client/smbdirect.c
+++ b/fs/smb/client/smbdirect.c
@@ -2098,7 +2098,7 @@ static struct smbd_connection *_smbd_get_connection(
char wq_name[80];
struct workqueue_struct *workqueue;
- info = kzalloc(sizeof(struct smbd_connection), GFP_KERNEL);
+ info = kzalloc_obj(struct smbd_connection, GFP_KERNEL);
if (!info)
return NULL;
sc = &info->socket;
@@ -2786,7 +2786,7 @@ static int allocate_mr_list(struct smbdirect_socket *sc)
/* Allocate more MRs (2x) than hardware responder_resources */
for (i = 0; i < sp->responder_resources * 2; i++) {
- mr = kzalloc(sizeof(*mr), GFP_KERNEL);
+ mr = kzalloc_obj(*mr, GFP_KERNEL);
if (!mr) {
ret = -ENOMEM;
goto kzalloc_mr_failed;
@@ -2805,9 +2805,8 @@ static int allocate_mr_list(struct smbdirect_socket *sc)
goto ib_alloc_mr_failed;
}
- mr->sgt.sgl = kcalloc(sp->max_frmr_depth,
- sizeof(struct scatterlist),
- GFP_KERNEL);
+ mr->sgt.sgl = kzalloc_objs(struct scatterlist,
+ sp->max_frmr_depth, GFP_KERNEL);
if (!mr->sgt.sgl) {
ret = -ENOMEM;
log_rdma_mr(ERR, "failed to allocate sgl\n");
diff --git a/fs/smb/server/auth.c b/fs/smb/server/auth.c
index 09af55b71153..580c4d303dc3 100644
--- a/fs/smb/server/auth.c
+++ b/fs/smb/server/auth.c
@@ -239,7 +239,7 @@ int ksmbd_decode_ntlmssp_auth_blob(struct authenticate_message *authblob,
if (sess_key_len > CIFS_KEY_SIZE)
return -EINVAL;
- ctx_arc4 = kmalloc(sizeof(*ctx_arc4), KSMBD_DEFAULT_GFP);
+ ctx_arc4 = kmalloc_obj(*ctx_arc4, KSMBD_DEFAULT_GFP);
if (!ctx_arc4)
return -ENOMEM;
@@ -774,7 +774,7 @@ static struct scatterlist *ksmbd_init_sg(struct kvec *iov, unsigned int nvec,
if (!nvec)
return NULL;
- nr_entries = kcalloc(nvec, sizeof(int), KSMBD_DEFAULT_GFP);
+ nr_entries = kzalloc_objs(int, nvec, KSMBD_DEFAULT_GFP);
if (!nr_entries)
return NULL;
@@ -794,8 +794,7 @@ static struct scatterlist *ksmbd_init_sg(struct kvec *iov, unsigned int nvec,
/* Add two entries for transform header and signature */
total_entries += 2;
- sg = kmalloc_array(total_entries, sizeof(struct scatterlist),
- KSMBD_DEFAULT_GFP);
+ sg = kmalloc_objs(struct scatterlist, total_entries, KSMBD_DEFAULT_GFP);
if (!sg) {
kfree(nr_entries);
return NULL;
diff --git a/fs/smb/server/connection.c b/fs/smb/server/connection.c
index e7e3e77006b1..1bb2081c492c 100644
--- a/fs/smb/server/connection.c
+++ b/fs/smb/server/connection.c
@@ -111,7 +111,7 @@ struct ksmbd_conn *ksmbd_conn_alloc(void)
{
struct ksmbd_conn *conn;
- conn = kzalloc(sizeof(struct ksmbd_conn), KSMBD_DEFAULT_GFP);
+ conn = kzalloc_obj(struct ksmbd_conn, KSMBD_DEFAULT_GFP);
if (!conn)
return NULL;
diff --git a/fs/smb/server/crypto_ctx.c b/fs/smb/server/crypto_ctx.c
index fe29d186baf6..8fd9713b00b7 100644
--- a/fs/smb/server/crypto_ctx.c
+++ b/fs/smb/server/crypto_ctx.c
@@ -121,7 +121,7 @@ static struct ksmbd_crypto_ctx *ksmbd_find_crypto_ctx(void)
ctx_list.avail_ctx++;
spin_unlock(&ctx_list.ctx_lock);
- ctx = kzalloc(sizeof(struct ksmbd_crypto_ctx), KSMBD_DEFAULT_GFP);
+ ctx = kzalloc_obj(struct ksmbd_crypto_ctx, KSMBD_DEFAULT_GFP);
if (!ctx) {
spin_lock(&ctx_list.ctx_lock);
ctx_list.avail_ctx--;
@@ -226,7 +226,7 @@ int ksmbd_crypto_create(void)
init_waitqueue_head(&ctx_list.ctx_wait);
ctx_list.avail_ctx = 1;
- ctx = kzalloc(sizeof(struct ksmbd_crypto_ctx), KSMBD_DEFAULT_GFP);
+ ctx = kzalloc_obj(struct ksmbd_crypto_ctx, KSMBD_DEFAULT_GFP);
if (!ctx)
return -ENOMEM;
list_add(&ctx->list, &ctx_list.idle_ctx);
diff --git a/fs/smb/server/ksmbd_work.c b/fs/smb/server/ksmbd_work.c
index 4a71f46d7020..ab4958dc3eb0 100644
--- a/fs/smb/server/ksmbd_work.c
+++ b/fs/smb/server/ksmbd_work.c
@@ -28,8 +28,8 @@ struct ksmbd_work *ksmbd_alloc_work_struct(void)
INIT_LIST_HEAD(&work->fp_entry);
INIT_LIST_HEAD(&work->aux_read_list);
work->iov_alloc_cnt = 4;
- work->iov = kcalloc(work->iov_alloc_cnt, sizeof(struct kvec),
- KSMBD_DEFAULT_GFP);
+ work->iov = kzalloc_objs(struct kvec, work->iov_alloc_cnt,
+ KSMBD_DEFAULT_GFP);
if (!work->iov) {
kmem_cache_free(work_cache, work);
work = NULL;
@@ -111,7 +111,7 @@ static int __ksmbd_iov_pin_rsp(struct ksmbd_work *work, void *ib, int len,
if (aux_size) {
need_iov_cnt++;
- ar = kmalloc(sizeof(struct aux_read), KSMBD_DEFAULT_GFP);
+ ar = kmalloc_obj(struct aux_read, KSMBD_DEFAULT_GFP);
if (!ar)
return -ENOMEM;
}
diff --git a/fs/smb/server/mgmt/share_config.c b/fs/smb/server/mgmt/share_config.c
index c9b1108d6e96..53f44ff4d376 100644
--- a/fs/smb/server/mgmt/share_config.c
+++ b/fs/smb/server/mgmt/share_config.c
@@ -102,7 +102,7 @@ static int parse_veto_list(struct ksmbd_share_config *share,
if (!sz)
break;
- p = kzalloc(sizeof(struct ksmbd_veto_pattern), KSMBD_DEFAULT_GFP);
+ p = kzalloc_obj(struct ksmbd_veto_pattern, KSMBD_DEFAULT_GFP);
if (!p)
return -ENOMEM;
@@ -150,7 +150,7 @@ static struct ksmbd_share_config *share_config_request(struct ksmbd_work *work,
goto out;
}
- share = kzalloc(sizeof(struct ksmbd_share_config), KSMBD_DEFAULT_GFP);
+ share = kzalloc_obj(struct ksmbd_share_config, KSMBD_DEFAULT_GFP);
if (!share)
goto out;
diff --git a/fs/smb/server/mgmt/tree_connect.c b/fs/smb/server/mgmt/tree_connect.c
index 57dd47ef688c..a72d7e42a6c2 100644
--- a/fs/smb/server/mgmt/tree_connect.c
+++ b/fs/smb/server/mgmt/tree_connect.c
@@ -32,8 +32,7 @@ ksmbd_tree_conn_connect(struct ksmbd_work *work, const char *share_name)
if (!sc)
return status;
- tree_conn = kzalloc(sizeof(struct ksmbd_tree_connect),
- KSMBD_DEFAULT_GFP);
+ tree_conn = kzalloc_obj(struct ksmbd_tree_connect, KSMBD_DEFAULT_GFP);
if (!tree_conn) {
status.ret = -ENOMEM;
goto out_error;
diff --git a/fs/smb/server/mgmt/user_config.c b/fs/smb/server/mgmt/user_config.c
index 3267b86b8c16..a3183fe5c536 100644
--- a/fs/smb/server/mgmt/user_config.c
+++ b/fs/smb/server/mgmt/user_config.c
@@ -36,7 +36,7 @@ struct ksmbd_user *ksmbd_alloc_user(struct ksmbd_login_response *resp,
{
struct ksmbd_user *user;
- user = kmalloc(sizeof(struct ksmbd_user), KSMBD_DEFAULT_GFP);
+ user = kmalloc_obj(struct ksmbd_user, KSMBD_DEFAULT_GFP);
if (!user)
return NULL;
diff --git a/fs/smb/server/mgmt/user_session.c b/fs/smb/server/mgmt/user_session.c
index 957a12de6a9d..39be2d2be86c 100644
--- a/fs/smb/server/mgmt/user_session.c
+++ b/fs/smb/server/mgmt/user_session.c
@@ -322,7 +322,7 @@ int ksmbd_session_rpc_open(struct ksmbd_session *sess, char *rpc_name)
if (!method)
return -EINVAL;
- entry = kzalloc(sizeof(struct ksmbd_session_rpc), KSMBD_DEFAULT_GFP);
+ entry = kzalloc_obj(struct ksmbd_session_rpc, KSMBD_DEFAULT_GFP);
if (!entry)
return -ENOMEM;
@@ -579,7 +579,7 @@ struct preauth_session *ksmbd_preauth_session_alloc(struct ksmbd_conn *conn,
{
struct preauth_session *sess;
- sess = kmalloc(sizeof(struct preauth_session), KSMBD_DEFAULT_GFP);
+ sess = kmalloc_obj(struct preauth_session, KSMBD_DEFAULT_GFP);
if (!sess)
return NULL;
@@ -663,7 +663,7 @@ static struct ksmbd_session *__session_create(int protocol)
if (protocol != CIFDS_SESSION_FLAG_SMB2)
return NULL;
- sess = kzalloc(sizeof(struct ksmbd_session), KSMBD_DEFAULT_GFP);
+ sess = kzalloc_obj(struct ksmbd_session, KSMBD_DEFAULT_GFP);
if (!sess)
return NULL;
diff --git a/fs/smb/server/oplock.c b/fs/smb/server/oplock.c
index a5967ac46604..09d9878db9cb 100644
--- a/fs/smb/server/oplock.c
+++ b/fs/smb/server/oplock.c
@@ -34,7 +34,7 @@ static struct oplock_info *alloc_opinfo(struct ksmbd_work *work,
struct ksmbd_session *sess = work->sess;
struct oplock_info *opinfo;
- opinfo = kzalloc(sizeof(struct oplock_info), KSMBD_DEFAULT_GFP);
+ opinfo = kzalloc_obj(struct oplock_info, KSMBD_DEFAULT_GFP);
if (!opinfo)
return NULL;
@@ -93,7 +93,7 @@ static int alloc_lease(struct oplock_info *opinfo, struct lease_ctx_info *lctx)
{
struct lease *lease;
- lease = kmalloc(sizeof(struct lease), KSMBD_DEFAULT_GFP);
+ lease = kmalloc_obj(struct lease, KSMBD_DEFAULT_GFP);
if (!lease)
return -ENOMEM;
@@ -698,7 +698,7 @@ static int smb2_oplock_break_noti(struct oplock_info *opinfo)
if (!work)
return -ENOMEM;
- br_info = kmalloc(sizeof(struct oplock_break_info), KSMBD_DEFAULT_GFP);
+ br_info = kmalloc_obj(struct oplock_break_info, KSMBD_DEFAULT_GFP);
if (!br_info) {
ksmbd_free_work_struct(work);
return -ENOMEM;
@@ -803,7 +803,7 @@ static int smb2_lease_break_noti(struct oplock_info *opinfo)
if (!work)
return -ENOMEM;
- br_info = kmalloc(sizeof(struct lease_break_info), KSMBD_DEFAULT_GFP);
+ br_info = kmalloc_obj(struct lease_break_info, KSMBD_DEFAULT_GFP);
if (!br_info) {
ksmbd_free_work_struct(work);
return -ENOMEM;
@@ -1046,7 +1046,7 @@ static int add_lease_global_list(struct oplock_info *opinfo)
}
read_unlock(&lease_list_lock);
- lb = kmalloc(sizeof(struct lease_table), KSMBD_DEFAULT_GFP);
+ lb = kmalloc_obj(struct lease_table, KSMBD_DEFAULT_GFP);
if (!lb)
return -ENOMEM;
@@ -1491,7 +1491,7 @@ struct lease_ctx_info *parse_lease_state(void *open_req)
if (IS_ERR_OR_NULL(cc))
return NULL;
- lreq = kzalloc(sizeof(struct lease_ctx_info), KSMBD_DEFAULT_GFP);
+ lreq = kzalloc_obj(struct lease_ctx_info, KSMBD_DEFAULT_GFP);
if (!lreq)
return NULL;
diff --git a/fs/smb/server/server.c b/fs/smb/server/server.c
index c2c074346da1..c3f1b7219950 100644
--- a/fs/smb/server/server.c
+++ b/fs/smb/server/server.c
@@ -410,7 +410,7 @@ static int __queue_ctrl_work(int type)
{
struct server_ctrl_struct *ctrl;
- ctrl = kmalloc(sizeof(struct server_ctrl_struct), KSMBD_DEFAULT_GFP);
+ ctrl = kmalloc_obj(struct server_ctrl_struct, KSMBD_DEFAULT_GFP);
if (!ctrl)
return -ENOMEM;
diff --git a/fs/smb/server/smb2pdu.c b/fs/smb/server/smb2pdu.c
index cbb31efdbaa2..8a3e17fd4af9 100644
--- a/fs/smb/server/smb2pdu.c
+++ b/fs/smb/server/smb2pdu.c
@@ -1164,8 +1164,8 @@ int smb2_handle_negotiate(struct ksmbd_work *work)
switch (conn->dialect) {
case SMB311_PROT_ID:
conn->preauth_info =
- kzalloc(sizeof(struct preauth_integrity_info),
- KSMBD_DEFAULT_GFP);
+ kzalloc_obj(struct preauth_integrity_info,
+ KSMBD_DEFAULT_GFP);
if (!conn->preauth_info) {
rc = -ENOMEM;
rsp->hdr.Status = STATUS_INVALID_PARAMETER;
@@ -1560,7 +1560,7 @@ static int ntlm_authenticate(struct ksmbd_work *work,
if (conn->dialect >= SMB30_PROT_ID) {
chann = lookup_chann_list(sess, conn);
if (!chann) {
- chann = kmalloc(sizeof(struct channel), KSMBD_DEFAULT_GFP);
+ chann = kmalloc_obj(struct channel, KSMBD_DEFAULT_GFP);
if (!chann)
return -ENOMEM;
@@ -1655,7 +1655,7 @@ static int krb5_authenticate(struct ksmbd_work *work,
if (conn->dialect >= SMB30_PROT_ID) {
chann = lookup_chann_list(sess, conn);
if (!chann) {
- chann = kmalloc(sizeof(struct channel), KSMBD_DEFAULT_GFP);
+ chann = kmalloc_obj(struct channel, KSMBD_DEFAULT_GFP);
if (!chann)
return -ENOMEM;
@@ -7326,7 +7326,7 @@ static struct ksmbd_lock *smb2_lock_init(struct file_lock *flock,
{
struct ksmbd_lock *lock;
- lock = kzalloc(sizeof(struct ksmbd_lock), KSMBD_DEFAULT_GFP);
+ lock = kzalloc_obj(struct ksmbd_lock, KSMBD_DEFAULT_GFP);
if (!lock)
return NULL;
diff --git a/fs/smb/server/smbacl.c b/fs/smb/server/smbacl.c
index 05598d994a68..49c2abb29bf5 100644
--- a/fs/smb/server/smbacl.c
+++ b/fs/smb/server/smbacl.c
@@ -417,7 +417,7 @@ static void parse_dacl(struct mnt_idmap *idmap,
return;
}
- ppace = kmalloc_array(num_aces, sizeof(struct smb_ace *), KSMBD_DEFAULT_GFP);
+ ppace = kmalloc_objs(struct smb_ace *, num_aces, KSMBD_DEFAULT_GFP);
if (!ppace) {
free_acl_state(&default_acl_state);
free_acl_state(&acl_state);
@@ -603,7 +603,7 @@ static void set_posix_acl_entries_dacl(struct mnt_idmap *idmap,
for (i = 0; i < fattr->cf_acls->a_count; i++, pace++) {
int flags = 0;
- sid = kmalloc(sizeof(struct smb_sid), KSMBD_DEFAULT_GFP);
+ sid = kmalloc_obj(struct smb_sid, KSMBD_DEFAULT_GFP);
if (!sid)
break;
@@ -670,7 +670,7 @@ static void set_posix_acl_entries_dacl(struct mnt_idmap *idmap,
pace = fattr->cf_dacls->a_entries;
for (i = 0; i < fattr->cf_dacls->a_count; i++, pace++) {
- sid = kmalloc(sizeof(struct smb_sid), KSMBD_DEFAULT_GFP);
+ sid = kmalloc_obj(struct smb_sid, KSMBD_DEFAULT_GFP);
if (!sid)
break;
@@ -930,7 +930,7 @@ int build_sec_desc(struct mnt_idmap *idmap,
gid_t gid;
unsigned int sid_type = SIDOWNER;
- nowner_sid_ptr = kmalloc(sizeof(struct smb_sid), KSMBD_DEFAULT_GFP);
+ nowner_sid_ptr = kmalloc_obj(struct smb_sid, KSMBD_DEFAULT_GFP);
if (!nowner_sid_ptr)
return -ENOMEM;
@@ -939,7 +939,7 @@ int build_sec_desc(struct mnt_idmap *idmap,
sid_type = SIDUNIX_USER;
id_to_sid(uid, sid_type, nowner_sid_ptr);
- ngroup_sid_ptr = kmalloc(sizeof(struct smb_sid), KSMBD_DEFAULT_GFP);
+ ngroup_sid_ptr = kmalloc_obj(struct smb_sid, KSMBD_DEFAULT_GFP);
if (!ngroup_sid_ptr) {
kfree(nowner_sid_ptr);
return -ENOMEM;
diff --git a/fs/smb/server/transport_rdma.c b/fs/smb/server/transport_rdma.c
index fb36fb9d5214..7c53b78b818e 100644
--- a/fs/smb/server/transport_rdma.c
+++ b/fs/smb/server/transport_rdma.c
@@ -411,7 +411,7 @@ static struct smb_direct_transport *alloc_transport(struct rdma_cm_id *cm_id)
struct smbdirect_socket_parameters *sp;
struct ksmbd_conn *conn;
- t = kzalloc(sizeof(*t), KSMBD_DEFAULT_GFP);
+ t = kzalloc_obj(*t, KSMBD_DEFAULT_GFP);
if (!t)
return NULL;
sc = &t->socket;
@@ -1852,8 +1852,8 @@ static int smb_direct_rdma_xmit(struct smb_direct_transport *t,
/* build rdma_rw_ctx for each descriptor */
desc_buf = buf;
for (i = 0; i < desc_num; i++) {
- msg = kzalloc(struct_size(msg, sg_list, SG_CHUNK_SIZE),
- KSMBD_DEFAULT_GFP);
+ msg = kzalloc_flex(*msg, sg_list, SG_CHUNK_SIZE,
+ KSMBD_DEFAULT_GFP);
if (!msg) {
ret = -ENOMEM;
goto out;
@@ -2860,7 +2860,7 @@ static int smb_direct_ib_client_add(struct ib_device *ib_dev)
if (!rdma_frwr_is_supported(&ib_dev->attrs))
return 0;
- smb_dev = kzalloc(sizeof(*smb_dev), KSMBD_DEFAULT_GFP);
+ smb_dev = kzalloc_obj(*smb_dev, KSMBD_DEFAULT_GFP);
if (!smb_dev)
return -ENOMEM;
smb_dev->ib_dev = ib_dev;
diff --git a/fs/smb/server/transport_tcp.c b/fs/smb/server/transport_tcp.c
index 2436dabada95..7e29b06820e2 100644
--- a/fs/smb/server/transport_tcp.c
+++ b/fs/smb/server/transport_tcp.c
@@ -61,7 +61,7 @@ static struct tcp_transport *alloc_transport(struct socket *client_sk)
struct tcp_transport *t;
struct ksmbd_conn *conn;
- t = kzalloc(sizeof(*t), KSMBD_DEFAULT_GFP);
+ t = kzalloc_obj(*t, KSMBD_DEFAULT_GFP);
if (!t)
return NULL;
t->sock = client_sk;
@@ -156,7 +156,7 @@ static struct kvec *get_conn_iovec(struct tcp_transport *t, unsigned int nr_segs
return t->iov;
/* not big enough -- allocate a new one and release the old */
- new_iov = kmalloc_array(nr_segs, sizeof(*new_iov), KSMBD_DEFAULT_GFP);
+ new_iov = kmalloc_objs(*new_iov, nr_segs, KSMBD_DEFAULT_GFP);
if (new_iov) {
kfree(t->iov);
t->iov = new_iov;
@@ -636,7 +636,7 @@ static struct interface *alloc_iface(char *ifname)
if (!ifname)
return NULL;
- iface = kzalloc(sizeof(struct interface), KSMBD_DEFAULT_GFP);
+ iface = kzalloc_obj(struct interface, KSMBD_DEFAULT_GFP);
if (!iface) {
kfree(ifname);
return NULL;
diff --git a/fs/smb/server/vfs_cache.c b/fs/smb/server/vfs_cache.c
index e302e403e55a..ff4ea412d900 100644
--- a/fs/smb/server/vfs_cache.c
+++ b/fs/smb/server/vfs_cache.c
@@ -303,7 +303,7 @@ static struct ksmbd_inode *ksmbd_inode_get(struct ksmbd_file *fp)
if (ci)
return ci;
- ci = kmalloc(sizeof(struct ksmbd_inode), KSMBD_DEFAULT_GFP);
+ ci = kmalloc_obj(struct ksmbd_inode, KSMBD_DEFAULT_GFP);
if (!ci)
return NULL;
@@ -1126,7 +1126,7 @@ int ksmbd_reopen_durable_fd(struct ksmbd_work *work, struct ksmbd_file *fp)
int ksmbd_init_file_table(struct ksmbd_file_table *ft)
{
- ft->idr = kzalloc(sizeof(struct idr), KSMBD_DEFAULT_GFP);
+ ft->idr = kzalloc_obj(struct idr, KSMBD_DEFAULT_GFP);
if (!ft->idr)
return -ENOMEM;
diff --git a/fs/splice.c b/fs/splice.c
index 5fb07c01936f..cad3779fa35c 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -275,9 +275,8 @@ int splice_grow_spd(const struct pipe_inode_info *pipe, struct splice_pipe_desc
if (max_usage <= PIPE_DEF_BUFFERS)
return 0;
- spd->pages = kmalloc_array(max_usage, sizeof(struct page *), GFP_KERNEL);
- spd->partial = kmalloc_array(max_usage, sizeof(struct partial_page),
- GFP_KERNEL);
+ spd->pages = kmalloc_objs(struct page *, max_usage, GFP_KERNEL);
+ spd->partial = kmalloc_objs(struct partial_page, max_usage, GFP_KERNEL);
if (spd->pages && spd->partial)
return 0;
@@ -676,7 +675,7 @@ iter_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
if (!out->f_op->write_iter)
return -EINVAL;
- array = kcalloc(nbufs, sizeof(struct bio_vec), GFP_KERNEL);
+ array = kzalloc_objs(struct bio_vec, nbufs, GFP_KERNEL);
if (unlikely(!array))
return -ENOMEM;
@@ -697,8 +696,7 @@ iter_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
if (unlikely(nbufs < pipe->max_usage)) {
kfree(array);
nbufs = pipe->max_usage;
- array = kcalloc(nbufs, sizeof(struct bio_vec),
- GFP_KERNEL);
+ array = kzalloc_objs(struct bio_vec, nbufs, GFP_KERNEL);
if (!array) {
ret = -ENOMEM;
break;
diff --git a/fs/squashfs/block.c b/fs/squashfs/block.c
index a05e3793f93a..2d5850168026 100644
--- a/fs/squashfs/block.c
+++ b/fs/squashfs/block.c
@@ -88,8 +88,8 @@ static int squashfs_bio_read_cached(struct bio *fullbio,
int idx = 0;
int err = 0;
#ifdef CONFIG_SQUASHFS_COMP_CACHE_FULL
- struct folio **cache_folios = kmalloc_array(page_count,
- sizeof(*cache_folios), GFP_KERNEL | __GFP_ZERO);
+ struct folio **cache_folios = kmalloc_objs(*cache_folios, page_count,
+ GFP_KERNEL | __GFP_ZERO);
#endif
bio_for_each_folio_all(fi, fullbio) {
diff --git a/fs/squashfs/cache.c b/fs/squashfs/cache.c
index 181260e72680..5d97b22ce297 100644
--- a/fs/squashfs/cache.c
+++ b/fs/squashfs/cache.c
@@ -229,13 +229,13 @@ struct squashfs_cache *squashfs_cache_init(char *name, int entries,
if (entries == 0)
return NULL;
- cache = kzalloc(sizeof(*cache), GFP_KERNEL);
+ cache = kzalloc_obj(*cache, GFP_KERNEL);
if (cache == NULL) {
ERROR("Failed to allocate %s cache\n", name);
return ERR_PTR(-ENOMEM);
}
- cache->entry = kcalloc(entries, sizeof(*(cache->entry)), GFP_KERNEL);
+ cache->entry = kzalloc_objs(*(cache->entry), entries, GFP_KERNEL);
if (cache->entry == NULL) {
ERROR("Failed to allocate %s cache\n", name);
goto cleanup;
diff --git a/fs/squashfs/decompressor_multi.c b/fs/squashfs/decompressor_multi.c
index 416c53eedbd1..4d7bc620bef5 100644
--- a/fs/squashfs/decompressor_multi.c
+++ b/fs/squashfs/decompressor_multi.c
@@ -65,7 +65,7 @@ static void *squashfs_decompressor_create(struct squashfs_sb_info *msblk,
struct decomp_stream *decomp_strm = NULL;
int err = -ENOMEM;
- stream = kzalloc(sizeof(*stream), GFP_KERNEL);
+ stream = kzalloc_obj(*stream, GFP_KERNEL);
if (!stream)
goto out;
@@ -80,7 +80,7 @@ static void *squashfs_decompressor_create(struct squashfs_sb_info *msblk,
* we could always fall back to default decompressor and
* file system works.
*/
- decomp_strm = kmalloc(sizeof(*decomp_strm), GFP_KERNEL);
+ decomp_strm = kmalloc_obj(*decomp_strm, GFP_KERNEL);
if (!decomp_strm)
goto out;
@@ -148,7 +148,7 @@ static struct decomp_stream *get_decomp_stream(struct squashfs_sb_info *msblk,
goto wait;
/* Let's allocate new decomp */
- decomp_strm = kmalloc(sizeof(*decomp_strm), GFP_KERNEL);
+ decomp_strm = kmalloc_obj(*decomp_strm, GFP_KERNEL);
if (!decomp_strm)
goto wait;
diff --git a/fs/squashfs/decompressor_single.c b/fs/squashfs/decompressor_single.c
index 6f161887710b..1f1597104ca8 100644
--- a/fs/squashfs/decompressor_single.c
+++ b/fs/squashfs/decompressor_single.c
@@ -30,7 +30,7 @@ static void *squashfs_decompressor_create(struct squashfs_sb_info *msblk,
struct squashfs_stream *stream;
int err = -ENOMEM;
- stream = kmalloc(sizeof(*stream), GFP_KERNEL);
+ stream = kmalloc_obj(*stream, GFP_KERNEL);
if (stream == NULL)
goto out;
diff --git a/fs/squashfs/file.c b/fs/squashfs/file.c
index 4be92206e755..8b45020b4a13 100644
--- a/fs/squashfs/file.c
+++ b/fs/squashfs/file.c
@@ -103,8 +103,9 @@ static struct meta_index *empty_meta_index(struct inode *inode, int offset,
* mount time but doing it here means it is allocated only
* if a 'large' file is read.
*/
- msblk->meta_index = kcalloc(SQUASHFS_META_SLOTS,
- sizeof(*(msblk->meta_index)), GFP_KERNEL);
+ msblk->meta_index = kzalloc_objs(*(msblk->meta_index),
+ SQUASHFS_META_SLOTS,
+ GFP_KERNEL);
if (msblk->meta_index == NULL) {
ERROR("Failed to allocate meta_index\n");
goto failed;
diff --git a/fs/squashfs/lz4_wrapper.c b/fs/squashfs/lz4_wrapper.c
index 49797729f143..e482757d8f2c 100644
--- a/fs/squashfs/lz4_wrapper.c
+++ b/fs/squashfs/lz4_wrapper.c
@@ -54,7 +54,7 @@ static void *lz4_init(struct squashfs_sb_info *msblk, void *buff)
int block_size = max_t(int, msblk->block_size, SQUASHFS_METADATA_SIZE);
struct squashfs_lz4 *stream;
- stream = kzalloc(sizeof(*stream), GFP_KERNEL);
+ stream = kzalloc_obj(*stream, GFP_KERNEL);
if (stream == NULL)
goto failed;
stream->input = vmalloc(block_size);
diff --git a/fs/squashfs/lzo_wrapper.c b/fs/squashfs/lzo_wrapper.c
index d216aeefa865..961fda720c14 100644
--- a/fs/squashfs/lzo_wrapper.c
+++ b/fs/squashfs/lzo_wrapper.c
@@ -29,7 +29,7 @@ static void *lzo_init(struct squashfs_sb_info *msblk, void *buff)
{
int block_size = max_t(int, msblk->block_size, SQUASHFS_METADATA_SIZE);
- struct squashfs_lzo *stream = kzalloc(sizeof(*stream), GFP_KERNEL);
+ struct squashfs_lzo *stream = kzalloc_obj(*stream, GFP_KERNEL);
if (stream == NULL)
goto failed;
stream->input = vmalloc(block_size);
diff --git a/fs/squashfs/page_actor.c b/fs/squashfs/page_actor.c
index 2b3e807d4dea..3d8f0225e240 100644
--- a/fs/squashfs/page_actor.c
+++ b/fs/squashfs/page_actor.c
@@ -43,7 +43,7 @@ static void cache_finish_page(struct squashfs_page_actor *actor)
struct squashfs_page_actor *squashfs_page_actor_init(void **buffer,
int pages, int length)
{
- struct squashfs_page_actor *actor = kmalloc(sizeof(*actor), GFP_KERNEL);
+ struct squashfs_page_actor *actor = kmalloc_obj(*actor, GFP_KERNEL);
if (actor == NULL)
return NULL;
@@ -110,7 +110,7 @@ static void direct_finish_page(struct squashfs_page_actor *actor)
struct squashfs_page_actor *squashfs_page_actor_init_special(struct squashfs_sb_info *msblk,
struct page **page, int pages, int length, loff_t start_index)
{
- struct squashfs_page_actor *actor = kmalloc(sizeof(*actor), GFP_KERNEL);
+ struct squashfs_page_actor *actor = kmalloc_obj(*actor, GFP_KERNEL);
if (actor == NULL)
return NULL;
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c
index 4465cf05603a..69217e752bc5 100644
--- a/fs/squashfs/super.c
+++ b/fs/squashfs/super.c
@@ -196,7 +196,7 @@ static int squashfs_fill_super(struct super_block *sb, struct fs_context *fc)
return -EINVAL;
}
- sb->s_fs_info = kzalloc(sizeof(*msblk), GFP_KERNEL);
+ sb->s_fs_info = kzalloc_obj(*msblk, GFP_KERNEL);
if (sb->s_fs_info == NULL) {
ERROR("Failed to allocate squashfs_sb_info\n");
return -ENOMEM;
@@ -549,7 +549,7 @@ static int squashfs_init_fs_context(struct fs_context *fc)
{
struct squashfs_mount_opts *opts;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return -ENOMEM;
diff --git a/fs/squashfs/xz_wrapper.c b/fs/squashfs/xz_wrapper.c
index 6c49481a2f8c..d258f4726d2e 100644
--- a/fs/squashfs/xz_wrapper.c
+++ b/fs/squashfs/xz_wrapper.c
@@ -42,7 +42,7 @@ static void *squashfs_xz_comp_opts(struct squashfs_sb_info *msblk,
struct comp_opts *opts;
int err = 0, n;
- opts = kmalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kmalloc_obj(*opts, GFP_KERNEL);
if (opts == NULL) {
err = -ENOMEM;
goto out2;
@@ -84,7 +84,7 @@ static void *squashfs_xz_init(struct squashfs_sb_info *msblk, void *buff)
struct squashfs_xz *stream;
int err;
- stream = kmalloc(sizeof(*stream), GFP_KERNEL);
+ stream = kmalloc_obj(*stream, GFP_KERNEL);
if (stream == NULL) {
err = -ENOMEM;
goto failed;
diff --git a/fs/squashfs/zlib_wrapper.c b/fs/squashfs/zlib_wrapper.c
index cbb7afe7bc46..899629c54d97 100644
--- a/fs/squashfs/zlib_wrapper.c
+++ b/fs/squashfs/zlib_wrapper.c
@@ -23,7 +23,7 @@
static void *zlib_init(struct squashfs_sb_info *dummy, void *buff)
{
- z_stream *stream = kmalloc(sizeof(z_stream), GFP_KERNEL);
+ z_stream *stream = kmalloc_obj(z_stream, GFP_KERNEL);
if (stream == NULL)
goto failed;
stream->workspace = vmalloc(zlib_inflate_workspacesize());
diff --git a/fs/squashfs/zstd_wrapper.c b/fs/squashfs/zstd_wrapper.c
index 0e407c4d8b3b..632560e4d6b0 100644
--- a/fs/squashfs/zstd_wrapper.c
+++ b/fs/squashfs/zstd_wrapper.c
@@ -28,7 +28,7 @@ struct workspace {
static void *zstd_init(struct squashfs_sb_info *msblk, void *buff)
{
- struct workspace *wksp = kmalloc(sizeof(*wksp), GFP_KERNEL);
+ struct workspace *wksp = kmalloc_obj(*wksp, GFP_KERNEL);
if (wksp == NULL)
goto failed;
diff --git a/fs/super.c b/fs/super.c
index 784b5297a7d7..b8a6e156359d 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -317,7 +317,7 @@ static void destroy_unused_super(struct super_block *s)
static struct super_block *alloc_super(struct file_system_type *type, int flags,
struct user_namespace *user_ns)
{
- struct super_block *s = kzalloc(sizeof(struct super_block), GFP_KERNEL);
+ struct super_block *s = kzalloc_obj(struct super_block, GFP_KERNEL);
static const struct super_operations default_op;
int i;
@@ -1135,7 +1135,7 @@ void emergency_remount(void)
{
struct work_struct *work;
- work = kmalloc(sizeof(*work), GFP_ATOMIC);
+ work = kmalloc_obj(*work, GFP_ATOMIC);
if (work) {
INIT_WORK(work, do_emergency_remount);
schedule_work(work);
@@ -1167,7 +1167,7 @@ void emergency_thaw_all(void)
{
struct work_struct *work;
- work = kmalloc(sizeof(*work), GFP_ATOMIC);
+ work = kmalloc_obj(*work, GFP_ATOMIC);
if (work) {
INIT_WORK(work, do_thaw_all);
schedule_work(work);
diff --git a/fs/sync.c b/fs/sync.c
index f310a550316f..942a60cfedfb 100644
--- a/fs/sync.c
+++ b/fs/sync.c
@@ -135,7 +135,7 @@ void emergency_sync(void)
{
struct work_struct *work;
- work = kmalloc(sizeof(*work), GFP_ATOMIC);
+ work = kmalloc_obj(*work, GFP_ATOMIC);
if (work) {
INIT_WORK(work, do_sync_work);
schedule_work(work);
diff --git a/fs/sysfs/mount.c b/fs/sysfs/mount.c
index 98467bb76737..a6de7d945fba 100644
--- a/fs/sysfs/mount.c
+++ b/fs/sysfs/mount.c
@@ -62,7 +62,7 @@ static int sysfs_init_fs_context(struct fs_context *fc)
return -EPERM;
}
- kfc = kzalloc(sizeof(struct kernfs_fs_context), GFP_KERNEL);
+ kfc = kzalloc_obj(struct kernfs_fs_context, GFP_KERNEL);
if (!kfc)
return -ENOMEM;
diff --git a/fs/timerfd.c b/fs/timerfd.c
index 9fcea7860ddf..f379edab7c02 100644
--- a/fs/timerfd.c
+++ b/fs/timerfd.c
@@ -413,7 +413,7 @@ SYSCALL_DEFINE2(timerfd_create, int, clockid, int, flags)
!capable(CAP_WAKE_ALARM))
return -EPERM;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/tracefs/event_inode.c b/fs/tracefs/event_inode.c
index 61cbdafa2411..81a3a7dcf6ce 100644
--- a/fs/tracefs/event_inode.c
+++ b/fs/tracefs/event_inode.c
@@ -191,8 +191,8 @@ static int eventfs_set_attr(struct mnt_idmap *idmap, struct dentry *dentry,
/* Preallocate the children mode array if necessary */
if (!(dentry->d_inode->i_mode & S_IFDIR)) {
if (!ei->entry_attrs) {
- ei->entry_attrs = kcalloc(ei->nr_entries, sizeof(*ei->entry_attrs),
- GFP_NOFS);
+ ei->entry_attrs = kzalloc_objs(*ei->entry_attrs,
+ ei->nr_entries, GFP_NOFS);
if (!ei->entry_attrs) {
ret = -ENOMEM;
goto out;
@@ -439,7 +439,7 @@ static inline struct eventfs_inode *init_ei(struct eventfs_inode *ei, const char
static inline struct eventfs_inode *alloc_ei(const char *name)
{
- struct eventfs_inode *ei = kzalloc(sizeof(*ei), GFP_KERNEL);
+ struct eventfs_inode *ei = kzalloc_obj(*ei, GFP_KERNEL);
struct eventfs_inode *result;
if (!ei)
@@ -454,7 +454,7 @@ static inline struct eventfs_inode *alloc_ei(const char *name)
static inline struct eventfs_inode *alloc_root_ei(const char *name)
{
- struct eventfs_root_inode *rei = kzalloc(sizeof(*rei), GFP_KERNEL);
+ struct eventfs_root_inode *rei = kzalloc_obj(*rei, GFP_KERNEL);
struct eventfs_inode *ei;
if (!rei)
diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c
index d9d8932a7b9c..780f38c1b52d 100644
--- a/fs/tracefs/inode.c
+++ b/fs/tracefs/inode.c
@@ -522,7 +522,7 @@ static int tracefs_init_fs_context(struct fs_context *fc)
{
struct tracefs_fs_info *fsi;
- fsi = kzalloc(sizeof(struct tracefs_fs_info), GFP_KERNEL);
+ fsi = kzalloc_obj(struct tracefs_fs_info, GFP_KERNEL);
if (!fsi)
return -ENOMEM;
diff --git a/fs/ubifs/debug.c b/fs/ubifs/debug.c
index b01f382ce8db..cb24592753b0 100644
--- a/fs/ubifs/debug.c
+++ b/fs/ubifs/debug.c
@@ -1846,7 +1846,7 @@ static struct fsck_inode *add_inode(struct ubifs_info *c,
return ERR_PTR(-EINVAL);
}
- fscki = kzalloc(sizeof(struct fsck_inode), GFP_NOFS);
+ fscki = kzalloc_obj(struct fsck_inode, GFP_NOFS);
if (!fscki)
return ERR_PTR(-ENOMEM);
@@ -3035,7 +3035,7 @@ void ubifs_assert_failed(struct ubifs_info *c, const char *expr,
*/
int ubifs_debugging_init(struct ubifs_info *c)
{
- c->dbg = kzalloc(sizeof(struct ubifs_debug_info), GFP_KERNEL);
+ c->dbg = kzalloc_obj(struct ubifs_debug_info, GFP_KERNEL);
if (!c->dbg)
return -ENOMEM;
diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c
index 3c3d3ad4fa6c..0e088aa661af 100644
--- a/fs/ubifs/dir.c
+++ b/fs/ubifs/dir.c
@@ -1099,7 +1099,7 @@ static int ubifs_mknod(struct mnt_idmap *idmap, struct inode *dir,
dbg_gen("dent '%pd' in dir ino %lu", dentry, dir->i_ino);
if (S_ISBLK(mode) || S_ISCHR(mode)) {
- dev = kmalloc(sizeof(union ubifs_dev_desc), GFP_NOFS);
+ dev = kmalloc_obj(union ubifs_dev_desc, GFP_NOFS);
if (!dev)
return -ENOMEM;
devlen = ubifs_encode_dev(dev, rdev);
@@ -1399,7 +1399,7 @@ static int do_rename(struct inode *old_dir, struct dentry *old_dentry,
if (flags & RENAME_WHITEOUT) {
union ubifs_dev_desc *dev = NULL;
- dev = kmalloc(sizeof(union ubifs_dev_desc), GFP_NOFS);
+ dev = kmalloc_obj(union ubifs_dev_desc, GFP_NOFS);
if (!dev) {
err = -ENOMEM;
goto out_release;
@@ -1725,7 +1725,7 @@ static int ubifs_dir_open(struct inode *inode, struct file *file)
{
struct ubifs_dir_data *data;
- data = kzalloc(sizeof(struct ubifs_dir_data), GFP_KERNEL);
+ data = kzalloc_obj(struct ubifs_dir_data, GFP_KERNEL);
if (!data)
return -ENOMEM;
file->private_data = data;
diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c
index 3dc3ca1cd803..cd04755e792a 100644
--- a/fs/ubifs/file.c
+++ b/fs/ubifs/file.c
@@ -848,7 +848,7 @@ static int ubifs_bulk_read(struct folio *folio)
if (mutex_trylock(&c->bu_mutex))
bu = &c->bu;
else {
- bu = kmalloc(sizeof(struct bu_info), GFP_NOFS | __GFP_NOWARN);
+ bu = kmalloc_obj(struct bu_info, GFP_NOFS | __GFP_NOWARN);
if (!bu)
goto out_unlock;
diff --git a/fs/ubifs/gc.c b/fs/ubifs/gc.c
index 3134d070fcc0..0bf08b7755b8 100644
--- a/fs/ubifs/gc.c
+++ b/fs/ubifs/gc.c
@@ -559,7 +559,7 @@ int ubifs_garbage_collect_leb(struct ubifs_info *c, struct ubifs_lprops *lp)
goto out;
}
- idx_gc = kmalloc(sizeof(struct ubifs_gced_idx_leb), GFP_NOFS);
+ idx_gc = kmalloc_obj(struct ubifs_gced_idx_leb, GFP_NOFS);
if (!idx_gc) {
err = -ENOMEM;
goto out;
@@ -916,7 +916,7 @@ int ubifs_gc_start_commit(struct ubifs_info *c)
}
if (!lp)
break;
- idx_gc = kmalloc(sizeof(struct ubifs_gced_idx_leb), GFP_NOFS);
+ idx_gc = kmalloc_obj(struct ubifs_gced_idx_leb, GFP_NOFS);
if (!idx_gc) {
err = -ENOMEM;
goto out;
diff --git a/fs/ubifs/log.c b/fs/ubifs/log.c
index b6ac9c4281ef..c6edcbf35ebc 100644
--- a/fs/ubifs/log.c
+++ b/fs/ubifs/log.c
@@ -167,7 +167,7 @@ int ubifs_add_bud_to_log(struct ubifs_info *c, int jhead, int lnum, int offs)
struct ubifs_bud *bud;
struct ubifs_ref_node *ref;
- bud = kmalloc(sizeof(struct ubifs_bud), GFP_NOFS);
+ bud = kmalloc_obj(struct ubifs_bud, GFP_NOFS);
if (!bud)
return -ENOMEM;
ref = kzalloc(c->ref_node_alsz, GFP_NOFS);
@@ -574,7 +574,7 @@ static int done_already(struct rb_root *done_tree, int lnum)
return 1;
}
- dr = kzalloc(sizeof(struct done_ref), GFP_NOFS);
+ dr = kzalloc_obj(struct done_ref, GFP_NOFS);
if (!dr)
return -ENOMEM;
diff --git a/fs/ubifs/lpt.c b/fs/ubifs/lpt.c
index dde0aa3287f4..a9cb92e3ee9c 100644
--- a/fs/ubifs/lpt.c
+++ b/fs/ubifs/lpt.c
@@ -624,9 +624,9 @@ int ubifs_create_dflt_lpt(struct ubifs_info *c, int *main_lebs, int lpt_first,
if (IS_ERR(desc))
return PTR_ERR(desc);
- lsave = kmalloc_array(c->lsave_cnt, sizeof(int), GFP_KERNEL);
- pnode = kzalloc(sizeof(struct ubifs_pnode), GFP_KERNEL);
- nnode = kzalloc(sizeof(struct ubifs_nnode), GFP_KERNEL);
+ lsave = kmalloc_objs(int, c->lsave_cnt, GFP_KERNEL);
+ pnode = kzalloc_obj(struct ubifs_pnode, GFP_KERNEL);
+ nnode = kzalloc_obj(struct ubifs_nnode, GFP_KERNEL);
buf = vmalloc(c->leb_size);
ltab = vmalloc_array(c->lpt_lebs,
sizeof(struct ubifs_lpt_lprops));
@@ -1215,7 +1215,7 @@ int ubifs_read_nnode(struct ubifs_info *c, struct ubifs_nnode *parent, int iip)
lnum = c->lpt_lnum;
offs = c->lpt_offs;
}
- nnode = kzalloc(sizeof(struct ubifs_nnode), GFP_NOFS);
+ nnode = kzalloc_obj(struct ubifs_nnode, GFP_NOFS);
if (!nnode) {
err = -ENOMEM;
goto out;
@@ -1278,7 +1278,7 @@ static int read_pnode(struct ubifs_info *c, struct ubifs_nnode *parent, int iip)
branch = &parent->nbranch[iip];
lnum = branch->lnum;
offs = branch->offs;
- pnode = kzalloc(sizeof(struct ubifs_pnode), GFP_NOFS);
+ pnode = kzalloc_obj(struct ubifs_pnode, GFP_NOFS);
if (!pnode)
return -ENOMEM;
@@ -1856,7 +1856,7 @@ static int lpt_init_wr(struct ubifs_info *c)
return -ENOMEM;
if (c->big_lpt) {
- c->lsave = kmalloc_array(c->lsave_cnt, sizeof(int), GFP_NOFS);
+ c->lsave = kmalloc_objs(int, c->lsave_cnt, GFP_NOFS);
if (!c->lsave)
return -ENOMEM;
err = read_lsave(c);
@@ -2099,8 +2099,7 @@ int ubifs_lpt_scan_nolock(struct ubifs_info *c, int start_lnum, int end_lnum,
return err;
}
- path = kmalloc_array(c->lpt_hght + 1, sizeof(struct lpt_scan_node),
- GFP_NOFS);
+ path = kmalloc_objs(struct lpt_scan_node, c->lpt_hght + 1, GFP_NOFS);
if (!path)
return -ENOMEM;
diff --git a/fs/ubifs/orphan.c b/fs/ubifs/orphan.c
index 5555dd740889..85e467646e4a 100644
--- a/fs/ubifs/orphan.c
+++ b/fs/ubifs/orphan.c
@@ -55,7 +55,7 @@ int ubifs_add_orphan(struct ubifs_info *c, ino_t inum)
struct ubifs_orphan *orphan, *o;
struct rb_node **p, *parent = NULL;
- orphan = kzalloc(sizeof(struct ubifs_orphan), GFP_NOFS);
+ orphan = kzalloc_obj(struct ubifs_orphan, GFP_NOFS);
if (!orphan)
return -ENOMEM;
orphan->inum = inum;
@@ -758,7 +758,7 @@ static int dbg_ins_check_orphan(struct rb_root *root, ino_t inum)
struct check_orphan *orphan, *o;
struct rb_node **p, *parent = NULL;
- orphan = kzalloc(sizeof(struct check_orphan), GFP_NOFS);
+ orphan = kzalloc_obj(struct check_orphan, GFP_NOFS);
if (!orphan)
return -ENOMEM;
orphan->inum = inum;
diff --git a/fs/ubifs/recovery.c b/fs/ubifs/recovery.c
index b36dc9b032f4..d92aed9fbad7 100644
--- a/fs/ubifs/recovery.c
+++ b/fs/ubifs/recovery.c
@@ -508,7 +508,7 @@ static int fix_unclean_leb(struct ubifs_info *c, struct ubifs_scan_leb *sleb,
dbg_rcvry("need to fix LEB %d start %d endpt %d",
lnum, start, sleb->endpt);
- ucleb = kzalloc(sizeof(struct ubifs_unclean_leb), GFP_NOFS);
+ ucleb = kzalloc_obj(struct ubifs_unclean_leb, GFP_NOFS);
if (!ucleb)
return -ENOMEM;
ucleb->lnum = lnum;
@@ -1258,7 +1258,7 @@ static int add_ino(struct ubifs_info *c, ino_t inum, loff_t i_size,
p = &(*p)->rb_right;
}
- e = kzalloc(sizeof(struct size_entry), GFP_KERNEL);
+ e = kzalloc_obj(struct size_entry, GFP_KERNEL);
if (!e)
return -ENOMEM;
diff --git a/fs/ubifs/replay.c b/fs/ubifs/replay.c
index a950c5f2560e..7e5435dab283 100644
--- a/fs/ubifs/replay.c
+++ b/fs/ubifs/replay.c
@@ -393,7 +393,7 @@ static int insert_node(struct ubifs_info *c, int lnum, int offs, int len,
if (key_inum(c, key) >= c->highest_inum)
c->highest_inum = key_inum(c, key);
- r = kzalloc(sizeof(struct replay_entry), GFP_KERNEL);
+ r = kzalloc_obj(struct replay_entry, GFP_KERNEL);
if (!r)
return -ENOMEM;
@@ -443,7 +443,7 @@ static int insert_dent(struct ubifs_info *c, int lnum, int offs, int len,
if (key_inum(c, key) >= c->highest_inum)
c->highest_inum = key_inum(c, key);
- r = kzalloc(sizeof(struct replay_entry), GFP_KERNEL);
+ r = kzalloc_obj(struct replay_entry, GFP_KERNEL);
if (!r)
return -ENOMEM;
@@ -897,11 +897,11 @@ static int add_replay_bud(struct ubifs_info *c, int lnum, int offs, int jhead,
dbg_mnt("add replay bud LEB %d:%d, head %d", lnum, offs, jhead);
- bud = kmalloc(sizeof(struct ubifs_bud), GFP_KERNEL);
+ bud = kmalloc_obj(struct ubifs_bud, GFP_KERNEL);
if (!bud)
return -ENOMEM;
- b = kmalloc(sizeof(struct bud_entry), GFP_KERNEL);
+ b = kmalloc_obj(struct bud_entry, GFP_KERNEL);
if (!b) {
err = -ENOMEM;
goto out;
diff --git a/fs/ubifs/scan.c b/fs/ubifs/scan.c
index 84a9157dcc32..cbff2d800e27 100644
--- a/fs/ubifs/scan.c
+++ b/fs/ubifs/scan.c
@@ -130,7 +130,7 @@ struct ubifs_scan_leb *ubifs_start_scan(const struct ubifs_info *c, int lnum,
dbg_scan("scan LEB %d:%d", lnum, offs);
- sleb = kzalloc(sizeof(struct ubifs_scan_leb), GFP_NOFS);
+ sleb = kzalloc_obj(struct ubifs_scan_leb, GFP_NOFS);
if (!sleb)
return ERR_PTR(-ENOMEM);
@@ -185,7 +185,7 @@ int ubifs_add_snod(const struct ubifs_info *c, struct ubifs_scan_leb *sleb,
struct ubifs_ino_node *ino = buf;
struct ubifs_scan_node *snod;
- snod = kmalloc(sizeof(struct ubifs_scan_node), GFP_NOFS);
+ snod = kmalloc_obj(struct ubifs_scan_node, GFP_NOFS);
if (!snod)
return -ENOMEM;
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index f453c37cee37..b86b65fcd615 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -208,7 +208,7 @@ struct inode *ubifs_iget(struct super_block *sb, unsigned long inum)
dev_t rdev;
union ubifs_dev_desc *dev;
- ui->data = kmalloc(sizeof(union ubifs_dev_desc), GFP_NOFS);
+ ui->data = kmalloc_obj(union ubifs_dev_desc, GFP_NOFS);
if (!ui->data) {
err = -ENOMEM;
goto out_ino;
@@ -819,8 +819,7 @@ static int alloc_wbufs(struct ubifs_info *c)
{
int i, err;
- c->jheads = kcalloc(c->jhead_cnt, sizeof(struct ubifs_jhead),
- GFP_KERNEL);
+ c->jheads = kzalloc_objs(struct ubifs_jhead, c->jhead_cnt, GFP_KERNEL);
if (!c->jheads)
return -ENOMEM;
@@ -1246,8 +1245,7 @@ static int mount_ubifs(struct ubifs_info *c)
* never exceed 64.
*/
err = -ENOMEM;
- c->bottom_up_buf = kmalloc_array(BOTTOM_UP_HEIGHT, sizeof(int),
- GFP_KERNEL);
+ c->bottom_up_buf = kmalloc_objs(int, BOTTOM_UP_HEIGHT, GFP_KERNEL);
if (!c->bottom_up_buf)
goto out_free;
@@ -2083,7 +2081,7 @@ static struct ubifs_info *alloc_ubifs_info(struct ubi_volume_desc *ubi)
{
struct ubifs_info *c;
- c = kzalloc(sizeof(struct ubifs_info), GFP_KERNEL);
+ c = kzalloc_obj(struct ubifs_info, GFP_KERNEL);
if (c) {
spin_lock_init(&c->cnt_lock);
spin_lock_init(&c->cs_lock);
@@ -2336,7 +2334,7 @@ static int ubifs_init_fs_context(struct fs_context *fc)
{
struct ubifs_fs_context *ctx;
- ctx = kzalloc(sizeof(struct ubifs_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct ubifs_fs_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/ubifs/sysfs.c b/fs/ubifs/sysfs.c
index aae32222f11b..1c926e865be3 100644
--- a/fs/ubifs/sysfs.c
+++ b/fs/ubifs/sysfs.c
@@ -93,7 +93,7 @@ int ubifs_sysfs_register(struct ubifs_info *c)
int ret, n;
char dfs_dir_name[UBIFS_DFS_DIR_LEN];
- c->stats = kzalloc(sizeof(struct ubifs_stats_info), GFP_KERNEL);
+ c->stats = kzalloc_obj(struct ubifs_stats_info, GFP_KERNEL);
if (!c->stats) {
ret = -ENOMEM;
goto out_last;
diff --git a/fs/ubifs/tnc.c b/fs/ubifs/tnc.c
index 33946b518148..694b08d27d7d 100644
--- a/fs/ubifs/tnc.c
+++ b/fs/ubifs/tnc.c
@@ -99,7 +99,7 @@ static int insert_old_idx(struct ubifs_info *c, int lnum, int offs)
{
struct ubifs_old_idx *old_idx;
- old_idx = kmalloc(sizeof(struct ubifs_old_idx), GFP_NOFS);
+ old_idx = kmalloc_obj(struct ubifs_old_idx, GFP_NOFS);
if (unlikely(!old_idx))
return -ENOMEM;
old_idx->lnum = lnum;
@@ -294,7 +294,7 @@ static struct ubifs_znode *dirty_cow_znode(struct ubifs_info *c,
if (zbr->len) {
struct ubifs_old_idx *old_idx;
- old_idx = kmalloc(sizeof(struct ubifs_old_idx), GFP_NOFS);
+ old_idx = kmalloc_obj(struct ubifs_old_idx, GFP_NOFS);
if (unlikely(!old_idx)) {
err = -ENOMEM;
goto out;
@@ -1134,9 +1134,8 @@ static struct ubifs_znode *dirty_cow_bottom_up(struct ubifs_info *c,
ubifs_assert(c, znode);
if (c->zroot.znode->level > BOTTOM_UP_HEIGHT) {
kfree(c->bottom_up_buf);
- c->bottom_up_buf = kmalloc_array(c->zroot.znode->level,
- sizeof(int),
- GFP_NOFS);
+ c->bottom_up_buf = kmalloc_objs(int, c->zroot.znode->level,
+ GFP_NOFS);
if (!c->bottom_up_buf)
return ERR_PTR(-ENOMEM);
path = c->bottom_up_buf;
diff --git a/fs/ubifs/tnc_commit.c b/fs/ubifs/tnc_commit.c
index 7c43e0ccf6d4..7bf2672062a2 100644
--- a/fs/ubifs/tnc_commit.c
+++ b/fs/ubifs/tnc_commit.c
@@ -359,8 +359,7 @@ static int layout_in_gaps(struct ubifs_info *c, int cnt)
dbg_gc("%d znodes to write", cnt);
- c->gap_lebs = kmalloc_array(c->lst.idx_lebs + 1, sizeof(int),
- GFP_NOFS);
+ c->gap_lebs = kmalloc_objs(int, c->lst.idx_lebs + 1, GFP_NOFS);
if (!c->gap_lebs)
return -ENOMEM;
@@ -692,7 +691,7 @@ static int alloc_idx_lebs(struct ubifs_info *c, int cnt)
dbg_cmt("need about %d empty LEBS for TNC commit", leb_cnt);
if (!leb_cnt)
return 0;
- c->ilebs = kmalloc_array(leb_cnt, sizeof(int), GFP_NOFS);
+ c->ilebs = kmalloc_objs(int, leb_cnt, GFP_NOFS);
if (!c->ilebs)
return -ENOMEM;
for (i = 0; i < leb_cnt; i++) {
diff --git a/fs/udf/super.c b/fs/udf/super.c
index b2f168b0a0d1..365cb78097d3 100644
--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -270,7 +270,7 @@ static int udf_init_fs_context(struct fs_context *fc)
{
struct udf_options *uopt;
- uopt = kzalloc(sizeof(*uopt), GFP_KERNEL);
+ uopt = kzalloc_obj(*uopt, GFP_KERNEL);
if (!uopt)
return -ENOMEM;
@@ -320,7 +320,7 @@ static int udf_sb_alloc_partition_maps(struct super_block *sb, u32 count)
{
struct udf_sb_info *sbi = UDF_SB(sb);
- sbi->s_partmaps = kcalloc(count, sizeof(*sbi->s_partmaps), GFP_KERNEL);
+ sbi->s_partmaps = kzalloc_objs(*sbi->s_partmaps, count, GFP_KERNEL);
if (!sbi->s_partmaps) {
sbi->s_partitions = 0;
return -ENOMEM;
@@ -1047,8 +1047,7 @@ static struct udf_bitmap *udf_sb_alloc_bitmap(struct super_block *sb, u32 index)
struct udf_bitmap *bitmap;
int nr_groups = udf_compute_nr_groups(sb, index);
- bitmap = kvzalloc(struct_size(bitmap, s_block_bitmap, nr_groups),
- GFP_KERNEL);
+ bitmap = kvzalloc_flex(*bitmap, s_block_bitmap, nr_groups, GFP_KERNEL);
if (!bitmap)
return NULL;
@@ -1697,7 +1696,7 @@ static struct udf_vds_record *handle_partition_descriptor(
struct part_desc_seq_scan_data *new_loc;
unsigned int new_size = ALIGN(partnum, PART_DESC_ALLOC_STEP);
- new_loc = kcalloc(new_size, sizeof(*new_loc), GFP_KERNEL);
+ new_loc = kzalloc_objs(*new_loc, new_size, GFP_KERNEL);
if (!new_loc)
return ERR_PTR(-ENOMEM);
memcpy(new_loc, data->part_descs_loc,
@@ -1757,9 +1756,8 @@ static noinline int udf_process_sequence(
memset(data.vds, 0, sizeof(struct udf_vds_record) * VDS_POS_LENGTH);
data.size_part_descs = PART_DESC_ALLOC_STEP;
data.num_part_descs = 0;
- data.part_descs_loc = kcalloc(data.size_part_descs,
- sizeof(*data.part_descs_loc),
- GFP_KERNEL);
+ data.part_descs_loc = kzalloc_objs(*data.part_descs_loc,
+ data.size_part_descs, GFP_KERNEL);
if (!data.part_descs_loc)
return -ENOMEM;
@@ -2158,7 +2156,7 @@ static int udf_fill_super(struct super_block *sb, struct fs_context *fc)
bool lvid_open = false;
int silent = fc->sb_flags & SB_SILENT;
- sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
+ sbi = kzalloc_obj(*sbi, GFP_KERNEL);
if (!sbi)
return -ENOMEM;
diff --git a/fs/ufs/super.c b/fs/ufs/super.c
index 6e4585169f94..2937221f7942 100644
--- a/fs/ufs/super.c
+++ b/fs/ufs/super.c
@@ -483,8 +483,7 @@ static int ufs_read_cylinder_structures(struct super_block *sb)
* Read cylinder group (we read only first fragment from block
* at this time) and prepare internal data structures for cg caching.
*/
- sbi->s_ucg = kmalloc_array(uspi->s_ncg, sizeof(struct buffer_head *),
- GFP_NOFS);
+ sbi->s_ucg = kmalloc_objs(struct buffer_head *, uspi->s_ncg, GFP_NOFS);
if (!sbi->s_ucg)
goto failed;
for (i = 0; i < uspi->s_ncg; i++)
@@ -503,7 +502,7 @@ static int ufs_read_cylinder_structures(struct super_block *sb)
ufs_print_cylinder_stuff(sb, (struct ufs_cylinder_group *) sbi->s_ucg[i]->b_data);
}
for (i = 0; i < UFS_MAX_GROUP_LOADED; i++) {
- if (!(sbi->s_ucpi[i] = kmalloc (sizeof(struct ufs_cg_private_info), GFP_NOFS)))
+ if (!(sbi->s_ucpi[i] = kmalloc_obj(struct ufs_cg_private_info, GFP_NOFS)))
goto failed;
sbi->s_cgno[i] = UFS_CGNO_EMPTY;
}
@@ -744,7 +743,7 @@ static int ufs_fill_super(struct super_block *sb, struct fs_context *fc)
}
#endif
- sbi = kzalloc(sizeof(struct ufs_sb_info), GFP_KERNEL);
+ sbi = kzalloc_obj(struct ufs_sb_info, GFP_KERNEL);
if (!sbi)
goto failed_nomem;
sb->s_fs_info = sbi;
@@ -769,7 +768,7 @@ static int ufs_fill_super(struct super_block *sb, struct fs_context *fc)
sbi->s_flavour = UFS_MOUNT_UFSTYPE_OLD;
}
- uspi = kzalloc(sizeof(struct ufs_sb_private_info), GFP_KERNEL);
+ uspi = kzalloc_obj(struct ufs_sb_private_info, GFP_KERNEL);
sbi->s_uspi = uspi;
if (!uspi)
goto failed;
@@ -1438,7 +1437,7 @@ static int ufs_init_fs_context(struct fs_context *fc)
{
struct ufs_fs_context *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/ufs/util.c b/fs/ufs/util.c
index f0e906ab4ddd..034b1d82c355 100644
--- a/fs/ufs/util.c
+++ b/fs/ufs/util.c
@@ -27,7 +27,7 @@ struct ufs_buffer_head * _ubh_bread_ (struct ufs_sb_private_info * uspi,
count = size >> uspi->s_fshift;
if (count > UFS_MAXFRAG)
return NULL;
- ubh = kmalloc (sizeof (struct ufs_buffer_head), GFP_NOFS);
+ ubh = kmalloc_obj(struct ufs_buffer_head, GFP_NOFS);
if (!ubh)
return NULL;
ubh->fragment = fragment;
diff --git a/fs/unicode/utf8-core.c b/fs/unicode/utf8-core.c
index 6fc9ab8667e6..3755b8067ad3 100644
--- a/fs/unicode/utf8-core.c
+++ b/fs/unicode/utf8-core.c
@@ -176,7 +176,7 @@ struct unicode_map *utf8_load(unsigned int version)
{
struct unicode_map *um;
- um = kzalloc(sizeof(struct unicode_map), GFP_KERNEL);
+ um = kzalloc_obj(struct unicode_map, GFP_KERNEL);
if (!um)
return ERR_PTR(-ENOMEM);
um->version = version;
diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c
index c5ba1f4487bd..e90c4a762917 100644
--- a/fs/userfaultfd.c
+++ b/fs/userfaultfd.c
@@ -653,7 +653,7 @@ int dup_userfaultfd(struct vm_area_struct *vma, struct list_head *fcs)
}
if (!ctx) {
- fctx = kmalloc(sizeof(*fctx), GFP_KERNEL);
+ fctx = kmalloc_obj(*fctx, GFP_KERNEL);
if (!fctx)
return -ENOMEM;
@@ -840,7 +840,7 @@ int userfaultfd_unmap_prep(struct vm_area_struct *vma, unsigned long start,
has_unmap_ctx(ctx, unmaps, start, end))
return 0;
- unmap_ctx = kzalloc(sizeof(*unmap_ctx), GFP_KERNEL);
+ unmap_ctx = kzalloc_obj(*unmap_ctx, GFP_KERNEL);
if (!unmap_ctx)
return -ENOMEM;
diff --git a/fs/vboxsf/file.c b/fs/vboxsf/file.c
index 111752010edb..174ede512d30 100644
--- a/fs/vboxsf/file.c
+++ b/fs/vboxsf/file.c
@@ -26,7 +26,7 @@ struct vboxsf_handle *vboxsf_create_sf_handle(struct inode *inode,
struct vboxsf_inode *sf_i = VBOXSF_I(inode);
struct vboxsf_handle *sf_handle;
- sf_handle = kmalloc(sizeof(*sf_handle), GFP_KERNEL);
+ sf_handle = kmalloc_obj(*sf_handle, GFP_KERNEL);
if (!sf_handle)
return ERR_PTR(-ENOMEM);
diff --git a/fs/vboxsf/super.c b/fs/vboxsf/super.c
index 241647b060ee..fe048ab05c48 100644
--- a/fs/vboxsf/super.c
+++ b/fs/vboxsf/super.c
@@ -122,7 +122,7 @@ static int vboxsf_fill_super(struct super_block *sb, struct fs_context *fc)
if (!fc->source)
return -EINVAL;
- sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
+ sbi = kzalloc_obj(*sbi, GFP_KERNEL);
if (!sbi)
return -ENOMEM;
@@ -427,7 +427,7 @@ static int vboxsf_init_fs_context(struct fs_context *fc)
{
struct vboxsf_fs_context *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/fs/vboxsf/utils.c b/fs/vboxsf/utils.c
index 9515bbf0b54c..b95c1e42d073 100644
--- a/fs/vboxsf/utils.c
+++ b/fs/vboxsf/utils.c
@@ -478,7 +478,7 @@ static struct vboxsf_dir_buf *vboxsf_dir_buf_alloc(struct list_head *list)
{
struct vboxsf_dir_buf *b;
- b = kmalloc(sizeof(*b), GFP_KERNEL);
+ b = kmalloc_obj(*b, GFP_KERNEL);
if (!b)
return NULL;
@@ -507,7 +507,7 @@ struct vboxsf_dir_info *vboxsf_dir_info_alloc(void)
{
struct vboxsf_dir_info *p;
- p = kmalloc(sizeof(*p), GFP_KERNEL);
+ p = kmalloc_obj(*p, GFP_KERNEL);
if (!p)
return NULL;
diff --git a/fs/xfs/libxfs/xfs_ag.c b/fs/xfs/libxfs/xfs_ag.c
index 586918ed1cbf..759da639d386 100644
--- a/fs/xfs/libxfs/xfs_ag.c
+++ b/fs/xfs/libxfs/xfs_ag.c
@@ -224,7 +224,7 @@ xfs_perag_alloc(
struct xfs_perag *pag;
int error;
- pag = kzalloc(sizeof(*pag), GFP_KERNEL);
+ pag = kzalloc_obj(*pag, GFP_KERNEL);
if (!pag)
return -ENOMEM;
diff --git a/fs/xfs/libxfs/xfs_defer.c b/fs/xfs/libxfs/xfs_defer.c
index c39e40dcb0b0..472c261163ed 100644
--- a/fs/xfs/libxfs/xfs_defer.c
+++ b/fs/xfs/libxfs/xfs_defer.c
@@ -982,7 +982,7 @@ xfs_defer_ops_capture(
return ERR_PTR(error);
/* Create an object to capture the defer ops. */
- dfc = kzalloc(sizeof(*dfc), GFP_KERNEL | __GFP_NOFAIL);
+ dfc = kzalloc_obj(*dfc, GFP_KERNEL | __GFP_NOFAIL);
INIT_LIST_HEAD(&dfc->dfc_list);
INIT_LIST_HEAD(&dfc->dfc_dfops);
diff --git a/fs/xfs/libxfs/xfs_dir2.c b/fs/xfs/libxfs/xfs_dir2.c
index 107c1a5b8a96..495620cc001f 100644
--- a/fs/xfs/libxfs/xfs_dir2.c
+++ b/fs/xfs/libxfs/xfs_dir2.c
@@ -116,10 +116,10 @@ xfs_da_mount(
ASSERT(mp->m_sb.sb_versionnum & XFS_SB_VERSION_DIRV2BIT);
ASSERT(xfs_dir2_dirblock_bytes(&mp->m_sb) <= XFS_MAX_BLOCKSIZE);
- mp->m_dir_geo = kzalloc(sizeof(struct xfs_da_geometry),
- GFP_KERNEL | __GFP_RETRY_MAYFAIL);
- mp->m_attr_geo = kzalloc(sizeof(struct xfs_da_geometry),
- GFP_KERNEL | __GFP_RETRY_MAYFAIL);
+ mp->m_dir_geo = kzalloc_obj(struct xfs_da_geometry,
+ GFP_KERNEL | __GFP_RETRY_MAYFAIL);
+ mp->m_attr_geo = kzalloc_obj(struct xfs_da_geometry,
+ GFP_KERNEL | __GFP_RETRY_MAYFAIL);
if (!mp->m_dir_geo || !mp->m_attr_geo) {
kfree(mp->m_dir_geo);
kfree(mp->m_attr_geo);
@@ -248,7 +248,7 @@ xfs_dir_init(
if (error)
return error;
- args = kzalloc(sizeof(*args), GFP_KERNEL | __GFP_NOFAIL);
+ args = kzalloc_obj(*args, GFP_KERNEL | __GFP_NOFAIL);
if (!args)
return -ENOMEM;
@@ -341,7 +341,7 @@ xfs_dir_createname(
XFS_STATS_INC(dp->i_mount, xs_dir_create);
}
- args = kzalloc(sizeof(*args), GFP_KERNEL | __GFP_NOFAIL);
+ args = kzalloc_obj(*args, GFP_KERNEL | __GFP_NOFAIL);
if (!args)
return -ENOMEM;
@@ -437,8 +437,7 @@ xfs_dir_lookup(
ASSERT(S_ISDIR(VFS_I(dp)->i_mode));
XFS_STATS_INC(dp->i_mount, xs_dir_lookup);
- args = kzalloc(sizeof(*args),
- GFP_KERNEL | __GFP_NOLOCKDEP | __GFP_NOFAIL);
+ args = kzalloc_obj(*args, GFP_KERNEL | __GFP_NOLOCKDEP | __GFP_NOFAIL);
args->geo = dp->i_mount->m_dir_geo;
args->name = name->name;
args->namelen = name->len;
@@ -503,7 +502,7 @@ xfs_dir_removename(
ASSERT(S_ISDIR(VFS_I(dp)->i_mode));
XFS_STATS_INC(dp->i_mount, xs_dir_remove);
- args = kzalloc(sizeof(*args), GFP_KERNEL | __GFP_NOFAIL);
+ args = kzalloc_obj(*args, GFP_KERNEL | __GFP_NOFAIL);
if (!args)
return -ENOMEM;
@@ -563,7 +562,7 @@ xfs_dir_replace(
if (rval)
return rval;
- args = kzalloc(sizeof(*args), GFP_KERNEL | __GFP_NOFAIL);
+ args = kzalloc_obj(*args, GFP_KERNEL | __GFP_NOFAIL);
if (!args)
return -ENOMEM;
diff --git a/fs/xfs/libxfs/xfs_refcount.c b/fs/xfs/libxfs/xfs_refcount.c
index 915ec85530e7..40c7f0ff6cf3 100644
--- a/fs/xfs/libxfs/xfs_refcount.c
+++ b/fs/xfs/libxfs/xfs_refcount.c
@@ -2033,8 +2033,8 @@ xfs_refcount_recover_extent(
return -EFSCORRUPTED;
}
- rr = kmalloc(sizeof(struct xfs_refcount_recovery),
- GFP_KERNEL | __GFP_NOFAIL);
+ rr = kmalloc_obj(struct xfs_refcount_recovery,
+ GFP_KERNEL | __GFP_NOFAIL);
INIT_LIST_HEAD(&rr->rr_list);
xfs_refcount_btrec_to_irec(rec, &rr->rr_rrec);
diff --git a/fs/xfs/libxfs/xfs_rtgroup.c b/fs/xfs/libxfs/xfs_rtgroup.c
index 09328f2d1575..3b7f4819b85b 100644
--- a/fs/xfs/libxfs/xfs_rtgroup.c
+++ b/fs/xfs/libxfs/xfs_rtgroup.c
@@ -98,7 +98,7 @@ xfs_rtgroup_alloc(
struct xfs_rtgroup *rtg;
int error;
- rtg = kzalloc(sizeof(struct xfs_rtgroup), GFP_KERNEL);
+ rtg = kzalloc_obj(struct xfs_rtgroup, GFP_KERNEL);
if (!rtg)
return -ENOMEM;
diff --git a/fs/xfs/scrub/agheader.c b/fs/xfs/scrub/agheader.c
index 7ffe4b0ef0f1..9ed053b5f061 100644
--- a/fs/xfs/scrub/agheader.c
+++ b/fs/xfs/scrub/agheader.c
@@ -816,8 +816,8 @@ xchk_agfl(
xchk_block_set_corrupt(sc, sc->sa.agf_bp);
goto out;
}
- sai.entries = kvcalloc(sai.agflcount, sizeof(xfs_agblock_t),
- XCHK_GFP_FLAGS);
+ sai.entries = kvzalloc_objs(xfs_agblock_t, sai.agflcount,
+ XCHK_GFP_FLAGS);
if (!sai.entries) {
error = -ENOMEM;
goto out;
diff --git a/fs/xfs/scrub/agheader_repair.c b/fs/xfs/scrub/agheader_repair.c
index 15d58eedb387..ae9ed5f280d0 100644
--- a/fs/xfs/scrub/agheader_repair.c
+++ b/fs/xfs/scrub/agheader_repair.c
@@ -1719,7 +1719,7 @@ xrep_agi(
if (!xfs_has_rmapbt(mp))
return -EOPNOTSUPP;
- sc->buf = kzalloc(sizeof(struct xrep_agi), XCHK_GFP_FLAGS);
+ sc->buf = kzalloc_obj(struct xrep_agi, XCHK_GFP_FLAGS);
if (!sc->buf)
return -ENOMEM;
ragi = sc->buf;
diff --git a/fs/xfs/scrub/alloc_repair.c b/fs/xfs/scrub/alloc_repair.c
index 5b4c2a39a155..dce6ab0429dc 100644
--- a/fs/xfs/scrub/alloc_repair.c
+++ b/fs/xfs/scrub/alloc_repair.c
@@ -856,7 +856,7 @@ xrep_allocbt(
if (!xfs_has_rmapbt(mp))
return -EOPNOTSUPP;
- ra = kzalloc(sizeof(struct xrep_abt), XCHK_GFP_FLAGS);
+ ra = kzalloc_obj(struct xrep_abt, XCHK_GFP_FLAGS);
if (!ra)
return -ENOMEM;
ra->sc = sc;
diff --git a/fs/xfs/scrub/attr.c b/fs/xfs/scrub/attr.c
index c3c122ea2d32..390ac2e11ee0 100644
--- a/fs/xfs/scrub/attr.c
+++ b/fs/xfs/scrub/attr.c
@@ -85,7 +85,7 @@ xchk_setup_xattr_buf(
if (ab)
goto resize_value;
- ab = kvzalloc(sizeof(struct xchk_xattr_buf), XCHK_GFP_FLAGS);
+ ab = kvzalloc_obj(struct xchk_xattr_buf, XCHK_GFP_FLAGS);
if (!ab)
return -ENOMEM;
sc->buf = ab;
diff --git a/fs/xfs/scrub/attr_repair.c b/fs/xfs/scrub/attr_repair.c
index a924b467a844..7d00a1ce0bac 100644
--- a/fs/xfs/scrub/attr_repair.c
+++ b/fs/xfs/scrub/attr_repair.c
@@ -1534,7 +1534,7 @@ xrep_xattr_setup_scan(
int max_len;
int error;
- rx = kzalloc(sizeof(struct xrep_xattr), XCHK_GFP_FLAGS);
+ rx = kzalloc_obj(struct xrep_xattr, XCHK_GFP_FLAGS);
if (!rx)
return -ENOMEM;
rx->sc = sc;
diff --git a/fs/xfs/scrub/bitmap.c b/fs/xfs/scrub/bitmap.c
index 51f3171bc6c8..c7fa908d92b2 100644
--- a/fs/xfs/scrub/bitmap.c
+++ b/fs/xfs/scrub/bitmap.c
@@ -87,8 +87,8 @@ xbitmap64_clear(
xbitmap64_tree_insert(bn, &bitmap->xb_root);
/* add an extent */
- new_bn = kmalloc(sizeof(struct xbitmap64_node),
- XCHK_GFP_FLAGS);
+ new_bn = kmalloc_obj(struct xbitmap64_node,
+ XCHK_GFP_FLAGS);
if (!new_bn)
return -ENOMEM;
new_bn->bn_start = last + 1;
@@ -164,7 +164,7 @@ xbitmap64_set(
xbitmap64_tree_insert(right, &bitmap->xb_root);
} else {
/* add an extent */
- left = kmalloc(sizeof(struct xbitmap64_node), XCHK_GFP_FLAGS);
+ left = kmalloc_obj(struct xbitmap64_node, XCHK_GFP_FLAGS);
if (!left)
return -ENOMEM;
left->bn_start = start;
@@ -362,8 +362,8 @@ xbitmap32_clear(
xbitmap32_tree_insert(bn, &bitmap->xb_root);
/* add an extent */
- new_bn = kmalloc(sizeof(struct xbitmap32_node),
- XCHK_GFP_FLAGS);
+ new_bn = kmalloc_obj(struct xbitmap32_node,
+ XCHK_GFP_FLAGS);
if (!new_bn)
return -ENOMEM;
new_bn->bn_start = last + 1;
@@ -439,7 +439,7 @@ xbitmap32_set(
xbitmap32_tree_insert(right, &bitmap->xb_root);
} else {
/* add an extent */
- left = kmalloc(sizeof(struct xbitmap32_node), XCHK_GFP_FLAGS);
+ left = kmalloc_obj(struct xbitmap32_node, XCHK_GFP_FLAGS);
if (!left)
return -ENOMEM;
left->bn_start = start;
diff --git a/fs/xfs/scrub/bmap_repair.c b/fs/xfs/scrub/bmap_repair.c
index 0a83d5845379..822a4af43833 100644
--- a/fs/xfs/scrub/bmap_repair.c
+++ b/fs/xfs/scrub/bmap_repair.c
@@ -933,7 +933,7 @@ xrep_bmap(
if (error)
return error;
- rb = kzalloc(sizeof(struct xrep_bmap), XCHK_GFP_FLAGS);
+ rb = kzalloc_obj(struct xrep_bmap, XCHK_GFP_FLAGS);
if (!rb)
return -ENOMEM;
rb->sc = sc;
diff --git a/fs/xfs/scrub/btree.c b/fs/xfs/scrub/btree.c
index 1089b1f4c5df..786b1e7c4dc3 100644
--- a/fs/xfs/scrub/btree.c
+++ b/fs/xfs/scrub/btree.c
@@ -449,7 +449,7 @@ xchk_btree_check_owner(
if (xfs_btree_is_bno(cur->bc_ops) || xfs_btree_is_rmap(cur->bc_ops)) {
struct check_owner *co;
- co = kmalloc(sizeof(struct check_owner), XCHK_GFP_FLAGS);
+ co = kmalloc_obj(struct check_owner, XCHK_GFP_FLAGS);
if (!co)
return -ENOMEM;
diff --git a/fs/xfs/scrub/cow_repair.c b/fs/xfs/scrub/cow_repair.c
index 33749cf43520..bffc4666ce60 100644
--- a/fs/xfs/scrub/cow_repair.c
+++ b/fs/xfs/scrub/cow_repair.c
@@ -685,7 +685,7 @@ xrep_bmap_cow(
return 0;
}
- xc = kzalloc(sizeof(struct xrep_cow), XCHK_GFP_FLAGS);
+ xc = kzalloc_obj(struct xrep_cow, XCHK_GFP_FLAGS);
if (!xc)
return -ENOMEM;
diff --git a/fs/xfs/scrub/dabtree.c b/fs/xfs/scrub/dabtree.c
index 5858d4d5e279..1a71d36898b1 100644
--- a/fs/xfs/scrub/dabtree.c
+++ b/fs/xfs/scrub/dabtree.c
@@ -512,7 +512,7 @@ xchk_da_btree(
return 0;
/* Set up initial da state. */
- ds = kzalloc(sizeof(struct xchk_da_btree), XCHK_GFP_FLAGS);
+ ds = kzalloc_obj(struct xchk_da_btree, XCHK_GFP_FLAGS);
if (!ds)
return -ENOMEM;
ds->dargs.dp = sc->ip;
diff --git a/fs/xfs/scrub/dir.c b/fs/xfs/scrub/dir.c
index 91228623d016..e09724cd3725 100644
--- a/fs/xfs/scrub/dir.c
+++ b/fs/xfs/scrub/dir.c
@@ -1095,7 +1095,7 @@ xchk_directory(
if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
return 0;
- sd = kvzalloc(sizeof(struct xchk_dir), XCHK_GFP_FLAGS);
+ sd = kvzalloc_obj(struct xchk_dir, XCHK_GFP_FLAGS);
if (!sd)
return -ENOMEM;
sd->sc = sc;
diff --git a/fs/xfs/scrub/dir_repair.c b/fs/xfs/scrub/dir_repair.c
index f105e49f654b..9dc55c918c78 100644
--- a/fs/xfs/scrub/dir_repair.c
+++ b/fs/xfs/scrub/dir_repair.c
@@ -198,7 +198,7 @@ xrep_setup_directory(
if (error)
return error;
- rd = kvzalloc(sizeof(struct xrep_dir), XCHK_GFP_FLAGS);
+ rd = kvzalloc_obj(struct xrep_dir, XCHK_GFP_FLAGS);
if (!rd)
return -ENOMEM;
rd->sc = sc;
diff --git a/fs/xfs/scrub/dirtree.c b/fs/xfs/scrub/dirtree.c
index e95dc74f1145..143114718d75 100644
--- a/fs/xfs/scrub/dirtree.c
+++ b/fs/xfs/scrub/dirtree.c
@@ -106,7 +106,7 @@ xchk_setup_dirtree(
return error;
}
- dl = kvzalloc(sizeof(struct xchk_dirtree), XCHK_GFP_FLAGS);
+ dl = kvzalloc_obj(struct xchk_dirtree, XCHK_GFP_FLAGS);
if (!dl)
return -ENOMEM;
dl->sc = sc;
@@ -238,7 +238,7 @@ xchk_dirtree_create_path(
* Create a new xchk_path structure to remember this parent pointer
* and record the first name step.
*/
- path = kmalloc(sizeof(struct xchk_dirpath), XCHK_GFP_FLAGS);
+ path = kmalloc_obj(struct xchk_dirpath, XCHK_GFP_FLAGS);
if (!path)
return -ENOMEM;
diff --git a/fs/xfs/scrub/dirtree_repair.c b/fs/xfs/scrub/dirtree_repair.c
index 019feaf0d606..bcfbbf5efc6c 100644
--- a/fs/xfs/scrub/dirtree_repair.c
+++ b/fs/xfs/scrub/dirtree_repair.c
@@ -567,7 +567,7 @@ xrep_dirtree_create_adoption_path(
* Create a new xchk_path structure to remember this parent pointer
* and record the first name step.
*/
- path = kmalloc(sizeof(struct xchk_dirpath), XCHK_GFP_FLAGS);
+ path = kmalloc_obj(struct xchk_dirpath, XCHK_GFP_FLAGS);
if (!path)
return -ENOMEM;
diff --git a/fs/xfs/scrub/fscounters.c b/fs/xfs/scrub/fscounters.c
index b35f65b537ba..916699f3da7b 100644
--- a/fs/xfs/scrub/fscounters.c
+++ b/fs/xfs/scrub/fscounters.c
@@ -207,7 +207,7 @@ xchk_setup_fscounters(
if (!xfs_has_lazysbcount(sc->mp))
xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
- sc->buf = kzalloc(sizeof(struct xchk_fscounters), XCHK_GFP_FLAGS);
+ sc->buf = kzalloc_obj(struct xchk_fscounters, XCHK_GFP_FLAGS);
if (!sc->buf)
return -ENOMEM;
sc->buf_cleanup = xchk_fscounters_cleanup;
diff --git a/fs/xfs/scrub/ialloc_repair.c b/fs/xfs/scrub/ialloc_repair.c
index 9b63b9d19e1b..608c7022ac15 100644
--- a/fs/xfs/scrub/ialloc_repair.c
+++ b/fs/xfs/scrub/ialloc_repair.c
@@ -804,7 +804,7 @@ xrep_iallocbt(
if (!xfs_has_rmapbt(mp))
return -EOPNOTSUPP;
- ri = kzalloc(sizeof(struct xrep_ibt), XCHK_GFP_FLAGS);
+ ri = kzalloc_obj(struct xrep_ibt, XCHK_GFP_FLAGS);
if (!ri)
return -ENOMEM;
ri->sc = sc;
diff --git a/fs/xfs/scrub/inode_repair.c b/fs/xfs/scrub/inode_repair.c
index bf182a18f115..9738b9ce3f2d 100644
--- a/fs/xfs/scrub/inode_repair.c
+++ b/fs/xfs/scrub/inode_repair.c
@@ -151,7 +151,7 @@ xrep_setup_inode(
{
struct xrep_inode *ri;
- sc->buf = kzalloc(sizeof(struct xrep_inode), XCHK_GFP_FLAGS);
+ sc->buf = kzalloc_obj(struct xrep_inode, XCHK_GFP_FLAGS);
if (!sc->buf)
return -ENOMEM;
diff --git a/fs/xfs/scrub/metapath.c b/fs/xfs/scrub/metapath.c
index 3d9de59c1758..050b86eb12d3 100644
--- a/fs/xfs/scrub/metapath.c
+++ b/fs/xfs/scrub/metapath.c
@@ -102,7 +102,7 @@ xchk_setup_metapath_scan(
return error;
}
- mpath = kzalloc(sizeof(struct xchk_metapath), XCHK_GFP_FLAGS);
+ mpath = kzalloc_obj(struct xchk_metapath, XCHK_GFP_FLAGS);
if (!mpath) {
kfree_const(path);
return -ENOMEM;
diff --git a/fs/xfs/scrub/newbt.c b/fs/xfs/scrub/newbt.c
index 43e868f829aa..2e4981c1baf2 100644
--- a/fs/xfs/scrub/newbt.c
+++ b/fs/xfs/scrub/newbt.c
@@ -195,7 +195,7 @@ xrep_newbt_add_blocks(
struct xrep_newbt_resv *resv;
int error;
- resv = kmalloc(sizeof(struct xrep_newbt_resv), XCHK_GFP_FLAGS);
+ resv = kmalloc_obj(struct xrep_newbt_resv, XCHK_GFP_FLAGS);
if (!resv)
return -ENOMEM;
diff --git a/fs/xfs/scrub/nlinks.c b/fs/xfs/scrub/nlinks.c
index e80fe7395d78..1e0effdb65a6 100644
--- a/fs/xfs/scrub/nlinks.c
+++ b/fs/xfs/scrub/nlinks.c
@@ -58,7 +58,7 @@ xchk_setup_nlinks(
return error;
}
- xnc = kvzalloc(sizeof(struct xchk_nlink_ctrs), XCHK_GFP_FLAGS);
+ xnc = kvzalloc_obj(struct xchk_nlink_ctrs, XCHK_GFP_FLAGS);
if (!xnc)
return -ENOMEM;
xnc->xname.name = xnc->namebuf;
diff --git a/fs/xfs/scrub/parent.c b/fs/xfs/scrub/parent.c
index 5a259570b154..931604fa1294 100644
--- a/fs/xfs/scrub/parent.c
+++ b/fs/xfs/scrub/parent.c
@@ -757,7 +757,7 @@ xchk_parent_pptr(
struct xchk_pptrs *pp;
int error;
- pp = kvzalloc(sizeof(struct xchk_pptrs), XCHK_GFP_FLAGS);
+ pp = kvzalloc_obj(struct xchk_pptrs, XCHK_GFP_FLAGS);
if (!pp)
return -ENOMEM;
pp->sc = sc;
diff --git a/fs/xfs/scrub/parent_repair.c b/fs/xfs/scrub/parent_repair.c
index 83a8205ae2f1..2ce0cefad362 100644
--- a/fs/xfs/scrub/parent_repair.c
+++ b/fs/xfs/scrub/parent_repair.c
@@ -217,7 +217,7 @@ xrep_setup_parent(
xchk_fsgates_enable(sc, XCHK_FSGATES_DIRENTS);
- rp = kvzalloc(sizeof(struct xrep_parent), XCHK_GFP_FLAGS);
+ rp = kvzalloc_obj(struct xrep_parent, XCHK_GFP_FLAGS);
if (!rp)
return -ENOMEM;
rp->sc = sc;
diff --git a/fs/xfs/scrub/quotacheck.c b/fs/xfs/scrub/quotacheck.c
index e8cba19334a0..9ea014e2ecfd 100644
--- a/fs/xfs/scrub/quotacheck.c
+++ b/fs/xfs/scrub/quotacheck.c
@@ -86,7 +86,7 @@ xchk_setup_quotacheck(
xchk_fsgates_enable(sc, XCHK_FSGATES_QUOTA);
- sc->buf = kzalloc(sizeof(struct xqcheck), XCHK_GFP_FLAGS);
+ sc->buf = kzalloc_obj(struct xqcheck, XCHK_GFP_FLAGS);
if (!sc->buf)
return -ENOMEM;
@@ -256,7 +256,7 @@ xqcheck_mod_live_ino_dqtrx(
dqa = rhashtable_lookup_fast(&xqc->shadow_dquot_acct, &p->tx_id,
xqcheck_dqacct_hash_params);
if (!dqa) {
- dqa = kzalloc(sizeof(struct xqcheck_dqacct), XCHK_GFP_FLAGS);
+ dqa = kzalloc_obj(struct xqcheck_dqacct, XCHK_GFP_FLAGS);
if (!dqa)
goto out_abort;
diff --git a/fs/xfs/scrub/rcbag.c b/fs/xfs/scrub/rcbag.c
index c1a97a073d92..8f3a10f7c908 100644
--- a/fs/xfs/scrub/rcbag.c
+++ b/fs/xfs/scrub/rcbag.c
@@ -36,7 +36,7 @@ rcbag_init(
struct rcbag *bag;
int error;
- bag = kzalloc(sizeof(struct rcbag), XCHK_GFP_FLAGS);
+ bag = kzalloc_obj(struct rcbag, XCHK_GFP_FLAGS);
if (!bag)
return -ENOMEM;
diff --git a/fs/xfs/scrub/refcount.c b/fs/xfs/scrub/refcount.c
index bf87025f24fc..4e1bf23e5b89 100644
--- a/fs/xfs/scrub/refcount.c
+++ b/fs/xfs/scrub/refcount.c
@@ -142,8 +142,7 @@ xchk_refcountbt_rmap_check(
* is healthy each rmap_irec we see will be in agbno order
* so we don't need insertion sort here.
*/
- frag = kmalloc(sizeof(struct xchk_refcnt_frag),
- XCHK_GFP_FLAGS);
+ frag = kmalloc_obj(struct xchk_refcnt_frag, XCHK_GFP_FLAGS);
if (!frag)
return -ENOMEM;
memcpy(&frag->rm, rec, sizeof(frag->rm));
diff --git a/fs/xfs/scrub/refcount_repair.c b/fs/xfs/scrub/refcount_repair.c
index 507993e0fb0f..ca9c382005ff 100644
--- a/fs/xfs/scrub/refcount_repair.c
+++ b/fs/xfs/scrub/refcount_repair.c
@@ -704,7 +704,7 @@ xrep_refcountbt(
if (!xfs_has_rmapbt(mp))
return -EOPNOTSUPP;
- rr = kzalloc(sizeof(struct xrep_refc), XCHK_GFP_FLAGS);
+ rr = kzalloc_obj(struct xrep_refc, XCHK_GFP_FLAGS);
if (!rr)
return -ENOMEM;
rr->sc = sc;
diff --git a/fs/xfs/scrub/rmap.c b/fs/xfs/scrub/rmap.c
index 2c25910e2903..0cd3eecd2ca5 100644
--- a/fs/xfs/scrub/rmap.c
+++ b/fs/xfs/scrub/rmap.c
@@ -548,7 +548,7 @@ xchk_rmapbt(
struct xchk_rmap *cr;
int error;
- cr = kzalloc(sizeof(struct xchk_rmap), XCHK_GFP_FLAGS);
+ cr = kzalloc_obj(struct xchk_rmap, XCHK_GFP_FLAGS);
if (!cr)
return -ENOMEM;
diff --git a/fs/xfs/scrub/rmap_repair.c b/fs/xfs/scrub/rmap_repair.c
index ab7053e25e1c..6766df9922e8 100644
--- a/fs/xfs/scrub/rmap_repair.c
+++ b/fs/xfs/scrub/rmap_repair.c
@@ -172,7 +172,7 @@ xrep_setup_ag_rmapbt(
if (error)
return error;
- rr = kzalloc(sizeof(struct xrep_rmap), XCHK_GFP_FLAGS);
+ rr = kzalloc_obj(struct xrep_rmap, XCHK_GFP_FLAGS);
if (!rr)
return -ENOMEM;
diff --git a/fs/xfs/scrub/rtbitmap.c b/fs/xfs/scrub/rtbitmap.c
index 4bcfd99cec17..b3a4972d423e 100644
--- a/fs/xfs/scrub/rtbitmap.c
+++ b/fs/xfs/scrub/rtbitmap.c
@@ -41,8 +41,8 @@ xchk_setup_rtbitmap(
if (xchk_need_intent_drain(sc))
xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
- rtb = kzalloc(struct_size(rtb, words, xchk_rtbitmap_wordcnt(sc)),
- XCHK_GFP_FLAGS);
+ rtb = kzalloc_flex(*rtb, words, xchk_rtbitmap_wordcnt(sc),
+ XCHK_GFP_FLAGS);
if (!rtb)
return -ENOMEM;
sc->buf = rtb;
diff --git a/fs/xfs/scrub/rtrefcount.c b/fs/xfs/scrub/rtrefcount.c
index 8cfe2f120b6b..4951cc271788 100644
--- a/fs/xfs/scrub/rtrefcount.c
+++ b/fs/xfs/scrub/rtrefcount.c
@@ -156,8 +156,7 @@ xchk_rtrefcountbt_rmap_check(
* is healthy each rmap_irec we see will be in agbno order
* so we don't need insertion sort here.
*/
- frag = kmalloc(sizeof(struct xchk_rtrefcnt_frag),
- XCHK_GFP_FLAGS);
+ frag = kmalloc_obj(struct xchk_rtrefcnt_frag, XCHK_GFP_FLAGS);
if (!frag)
return -ENOMEM;
memcpy(&frag->rm, rec, sizeof(frag->rm));
diff --git a/fs/xfs/scrub/rtrefcount_repair.c b/fs/xfs/scrub/rtrefcount_repair.c
index f713daf095fb..f165fb397647 100644
--- a/fs/xfs/scrub/rtrefcount_repair.c
+++ b/fs/xfs/scrub/rtrefcount_repair.c
@@ -709,7 +709,7 @@ xrep_rtrefcountbt(
if (error)
return error;
- rr = kzalloc(sizeof(struct xrep_rtrefc), XCHK_GFP_FLAGS);
+ rr = kzalloc_obj(struct xrep_rtrefc, XCHK_GFP_FLAGS);
if (!rr)
return -ENOMEM;
rr->sc = sc;
diff --git a/fs/xfs/scrub/rtrmap_repair.c b/fs/xfs/scrub/rtrmap_repair.c
index 4610d6d80648..f2d16ca8d251 100644
--- a/fs/xfs/scrub/rtrmap_repair.c
+++ b/fs/xfs/scrub/rtrmap_repair.c
@@ -111,7 +111,7 @@ xrep_setup_rtrmapbt(
if (error)
return error;
- rr = kzalloc(sizeof(struct xrep_rtrmap), XCHK_GFP_FLAGS);
+ rr = kzalloc_obj(struct xrep_rtrmap, XCHK_GFP_FLAGS);
if (!rr)
return -ENOMEM;
diff --git a/fs/xfs/scrub/rtsummary.c b/fs/xfs/scrub/rtsummary.c
index b510e6bbbd3e..efce39d7a1ef 100644
--- a/fs/xfs/scrub/rtsummary.c
+++ b/fs/xfs/scrub/rtsummary.c
@@ -49,8 +49,7 @@ xchk_setup_rtsummary(
if (xchk_need_intent_drain(sc))
xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
- rts = kvzalloc(struct_size(rts, words, mp->m_blockwsize),
- XCHK_GFP_FLAGS);
+ rts = kvzalloc_flex(*rts, words, mp->m_blockwsize, XCHK_GFP_FLAGS);
if (!rts)
return -ENOMEM;
sc->buf = rts;
diff --git a/fs/xfs/scrub/scrub.c b/fs/xfs/scrub/scrub.c
index c1c6415f5055..27511a125b39 100644
--- a/fs/xfs/scrub/scrub.c
+++ b/fs/xfs/scrub/scrub.c
@@ -632,7 +632,7 @@ xchk_scrub_create_subord(
{
struct xfs_scrub_subord *sub;
- sub = kzalloc(sizeof(*sub), XCHK_GFP_FLAGS);
+ sub = kzalloc_obj(*sub, XCHK_GFP_FLAGS);
if (!sub)
return NULL;
@@ -680,7 +680,7 @@ xfs_scrub_metadata(
if (error)
goto out;
- sc = kzalloc(sizeof(struct xfs_scrub), XCHK_GFP_FLAGS);
+ sc = kzalloc_obj(struct xfs_scrub, XCHK_GFP_FLAGS);
if (!sc) {
error = -ENOMEM;
goto out;
diff --git a/fs/xfs/scrub/stats.c b/fs/xfs/scrub/stats.c
index 4efafc5ae966..8cd018bac5d6 100644
--- a/fs/xfs/scrub/stats.c
+++ b/fs/xfs/scrub/stats.c
@@ -389,7 +389,7 @@ xchk_mount_stats_alloc(
struct xchk_stats *cs;
int error;
- cs = kvzalloc(sizeof(struct xchk_stats), GFP_KERNEL);
+ cs = kvzalloc_obj(struct xchk_stats, GFP_KERNEL);
if (!cs)
return -ENOMEM;
diff --git a/fs/xfs/scrub/xfblob.c b/fs/xfs/scrub/xfblob.c
index 96fc360312de..84237fb41ccb 100644
--- a/fs/xfs/scrub/xfblob.c
+++ b/fs/xfs/scrub/xfblob.c
@@ -41,7 +41,7 @@ xfblob_create(
if (error)
return error;
- blob = kmalloc(sizeof(struct xfblob), XCHK_GFP_FLAGS);
+ blob = kmalloc_obj(struct xfblob, XCHK_GFP_FLAGS);
if (!blob) {
error = -ENOMEM;
goto out_xfile;
diff --git a/fs/xfs/scrub/xfile.c b/fs/xfs/scrub/xfile.c
index bee0662fbdb6..05581571854d 100644
--- a/fs/xfs/scrub/xfile.c
+++ b/fs/xfs/scrub/xfile.c
@@ -57,7 +57,7 @@ xfile_create(
struct xfile *xf;
int error;
- xf = kmalloc(sizeof(struct xfile), XCHK_GFP_FLAGS);
+ xf = kmalloc_obj(struct xfile, XCHK_GFP_FLAGS);
if (!xf)
return -ENOMEM;
diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c
index db46883991de..d2f3c50d80e7 100644
--- a/fs/xfs/xfs_buf.c
+++ b/fs/xfs/xfs_buf.c
@@ -295,8 +295,8 @@ xfs_buf_alloc(
if (nmaps == 1)
bp->b_maps = &bp->__b_map;
else
- bp->b_maps = kcalloc(nmaps, sizeof(struct xfs_buf_map),
- GFP_KERNEL | __GFP_NOLOCKDEP | __GFP_NOFAIL);
+ bp->b_maps = kzalloc_objs(struct xfs_buf_map, nmaps,
+ GFP_KERNEL | __GFP_NOLOCKDEP | __GFP_NOFAIL);
for (i = 0; i < nmaps; i++) {
bp->b_maps[i].bm_bn = map[i].bm_bn;
bp->b_maps[i].bm_len = map[i].bm_len;
@@ -1799,7 +1799,7 @@ xfs_alloc_buftarg(
#if defined(CONFIG_FS_DAX) && defined(CONFIG_MEMORY_FAILURE)
ops = &xfs_dax_holder_operations;
#endif
- btp = kzalloc(sizeof(*btp), GFP_KERNEL | __GFP_NOFAIL);
+ btp = kzalloc_obj(*btp, GFP_KERNEL | __GFP_NOFAIL);
btp->bt_mount = mp;
btp->bt_file = bdev_file;
diff --git a/fs/xfs/xfs_buf_item_recover.c b/fs/xfs/xfs_buf_item_recover.c
index 77ad071ebe78..5f391372f188 100644
--- a/fs/xfs/xfs_buf_item_recover.c
+++ b/fs/xfs/xfs_buf_item_recover.c
@@ -90,7 +90,7 @@ xlog_add_buffer_cancelled(
return false;
}
- bcp = kmalloc(sizeof(struct xfs_buf_cancel), GFP_KERNEL | __GFP_NOFAIL);
+ bcp = kmalloc_obj(struct xfs_buf_cancel, GFP_KERNEL | __GFP_NOFAIL);
bcp->bc_blkno = blkno;
bcp->bc_len = len;
bcp->bc_refcount = 1;
@@ -1180,8 +1180,7 @@ xlog_alloc_buf_cancel_table(
ASSERT(log->l_buf_cancel_table == NULL);
- p = kmalloc_array(XLOG_BC_TABLE_SIZE, sizeof(struct list_head),
- GFP_KERNEL);
+ p = kmalloc_objs(struct list_head, XLOG_BC_TABLE_SIZE, GFP_KERNEL);
if (!p)
return -ENOMEM;
diff --git a/fs/xfs/xfs_buf_mem.c b/fs/xfs/xfs_buf_mem.c
index f1f23623e4a4..e0529f380a77 100644
--- a/fs/xfs/xfs_buf_mem.c
+++ b/fs/xfs/xfs_buf_mem.c
@@ -58,7 +58,7 @@ xmbuf_alloc(
struct xfs_buftarg *btp;
int error;
- btp = kzalloc(struct_size(btp, bt_cache, 1), GFP_KERNEL);
+ btp = kzalloc_flex(*btp, bt_cache, 1, GFP_KERNEL);
if (!btp)
return -ENOMEM;
diff --git a/fs/xfs/xfs_discard.c b/fs/xfs/xfs_discard.c
index 31477a74b523..3ecbb4e0f2c8 100644
--- a/fs/xfs/xfs_discard.c
+++ b/fs/xfs/xfs_discard.c
@@ -349,7 +349,7 @@ xfs_trim_perag_extents(
do {
struct xfs_busy_extents *extents;
- extents = kzalloc(sizeof(*extents), GFP_KERNEL);
+ extents = kzalloc_obj(*extents, GFP_KERNEL);
if (!extents) {
error = -ENOMEM;
break;
@@ -537,7 +537,7 @@ xfs_trim_gather_rtextent(
return 0;
}
- busyp = kzalloc(sizeof(struct xfs_rtx_busy), GFP_KERNEL);
+ busyp = kzalloc_obj(struct xfs_rtx_busy, GFP_KERNEL);
if (!busyp)
return -ENOMEM;
@@ -689,7 +689,7 @@ xfs_trim_rtgroup_extents(
* trims the extents returned.
*/
do {
- tr.extents = kzalloc(sizeof(*tr.extents), GFP_KERNEL);
+ tr.extents = kzalloc_obj(*tr.extents, GFP_KERNEL);
if (!tr.extents) {
error = -ENOMEM;
break;
diff --git a/fs/xfs/xfs_extent_busy.c b/fs/xfs/xfs_extent_busy.c
index cfecb2959472..a5f02cac9d31 100644
--- a/fs/xfs/xfs_extent_busy.c
+++ b/fs/xfs/xfs_extent_busy.c
@@ -41,8 +41,7 @@ xfs_extent_busy_insert_list(
struct rb_node **rbp;
struct rb_node *parent = NULL;
- new = kzalloc(sizeof(struct xfs_extent_busy),
- GFP_KERNEL | __GFP_NOFAIL);
+ new = kzalloc_obj(struct xfs_extent_busy, GFP_KERNEL | __GFP_NOFAIL);
new->group = xfs_group_hold(xg);
new->bno = bno;
new->length = len;
@@ -718,7 +717,7 @@ xfs_extent_busy_alloc(void)
{
struct xfs_extent_busy_tree *eb;
- eb = kzalloc(sizeof(*eb), GFP_KERNEL);
+ eb = kzalloc_obj(*eb, GFP_KERNEL);
if (!eb)
return NULL;
spin_lock_init(&eb->eb_lock);
diff --git a/fs/xfs/xfs_filestream.c b/fs/xfs/xfs_filestream.c
index 44e1b14069a3..32e641d76e92 100644
--- a/fs/xfs/xfs_filestream.c
+++ b/fs/xfs/xfs_filestream.c
@@ -308,7 +308,7 @@ xfs_filestream_create_association(
* error for this failure - as long as we return a referenced AG, the
* allocation can still go ahead just fine.
*/
- item = kmalloc(sizeof(*item), GFP_KERNEL | __GFP_RETRY_MAYFAIL);
+ item = kmalloc_obj(*item, GFP_KERNEL | __GFP_RETRY_MAYFAIL);
if (!item)
goto out_put_fstrms;
diff --git a/fs/xfs/xfs_fsmap.c b/fs/xfs/xfs_fsmap.c
index 098c2b50bc6f..3724e64898f3 100644
--- a/fs/xfs/xfs_fsmap.c
+++ b/fs/xfs/xfs_fsmap.c
@@ -1326,11 +1326,11 @@ xfs_ioc_getfsmap(
*/
count = min_t(unsigned int, head.fmh_count,
131072 / sizeof(struct fsmap));
- recs = kvcalloc(count, sizeof(struct fsmap), GFP_KERNEL);
+ recs = kvzalloc_objs(struct fsmap, count, GFP_KERNEL);
if (!recs) {
count = min_t(unsigned int, head.fmh_count,
PAGE_SIZE / sizeof(struct fsmap));
- recs = kvcalloc(count, sizeof(struct fsmap), GFP_KERNEL);
+ recs = kvzalloc_objs(struct fsmap, count, GFP_KERNEL);
if (!recs)
return -ENOMEM;
}
diff --git a/fs/xfs/xfs_healthmon.c b/fs/xfs/xfs_healthmon.c
index ca7352dcd182..757a4213b2d0 100644
--- a/fs/xfs/xfs_healthmon.c
+++ b/fs/xfs/xfs_healthmon.c
@@ -1187,7 +1187,7 @@ xfs_ioc_health_monitor(
if (!xfs_healthmon_validate(&hmo))
return -EINVAL;
- hm = kzalloc(sizeof(*hm), GFP_KERNEL);
+ hm = kzalloc_obj(*hm, GFP_KERNEL);
if (!hm)
return -ENOMEM;
hm->dev = mp->m_super->s_dev;
@@ -1200,7 +1200,7 @@ xfs_ioc_health_monitor(
hm->verbose = true;
/* Queue up the first event that lets the client know we're running. */
- running_event = kzalloc(sizeof(struct xfs_healthmon_event), GFP_NOFS);
+ running_event = kzalloc_obj(struct xfs_healthmon_event, GFP_NOFS);
if (!running_event) {
ret = -ENOMEM;
goto out_hm;
@@ -1214,8 +1214,7 @@ xfs_ioc_health_monitor(
* filesystem later. This is key for triggering fast exit of the
* xfs_healer daemon.
*/
- hm->unmount_event = kzalloc(sizeof(struct xfs_healthmon_event),
- GFP_NOFS);
+ hm->unmount_event = kzalloc_obj(struct xfs_healthmon_event, GFP_NOFS);
if (!hm->unmount_event) {
ret = -ENOMEM;
goto out_hm;
diff --git a/fs/xfs/xfs_inode_item_recover.c b/fs/xfs/xfs_inode_item_recover.c
index 5d93228783eb..b42106c4a9ef 100644
--- a/fs/xfs/xfs_inode_item_recover.c
+++ b/fs/xfs/xfs_inode_item_recover.c
@@ -329,8 +329,8 @@ xlog_recover_inode_commit_pass2(
if (item->ri_buf[0].iov_len == sizeof(struct xfs_inode_log_format)) {
in_f = item->ri_buf[0].iov_base;
} else {
- in_f = kmalloc(sizeof(struct xfs_inode_log_format),
- GFP_KERNEL | __GFP_NOFAIL);
+ in_f = kmalloc_obj(struct xfs_inode_log_format,
+ GFP_KERNEL | __GFP_NOFAIL);
need_free = 1;
error = xfs_inode_item_format_convert(&item->ri_buf[0], in_f);
if (error)
diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
index 4eeda4d4e3ab..1074e36fa240 100644
--- a/fs/xfs/xfs_ioctl.c
+++ b/fs/xfs/xfs_ioctl.c
@@ -896,7 +896,7 @@ xfs_ioc_getbmap(
if (bmx.bmv_count >= INT_MAX / recsize)
return -ENOMEM;
- buf = kvcalloc(bmx.bmv_count, sizeof(*buf), GFP_KERNEL);
+ buf = kvzalloc_objs(*buf, bmx.bmv_count, GFP_KERNEL);
if (!buf)
return -ENOMEM;
diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c
index 9faff287f747..97f106d2b4cd 100644
--- a/fs/xfs/xfs_itable.c
+++ b/fs/xfs/xfs_itable.c
@@ -230,8 +230,8 @@ xfs_bulkstat_one(
ASSERT(breq->icount == 1);
- bc.buf = kzalloc(sizeof(struct xfs_bulkstat),
- GFP_KERNEL | __GFP_RETRY_MAYFAIL);
+ bc.buf = kzalloc_obj(struct xfs_bulkstat,
+ GFP_KERNEL | __GFP_RETRY_MAYFAIL);
if (!bc.buf)
return -ENOMEM;
@@ -317,8 +317,8 @@ xfs_bulkstat(
if (xfs_bulkstat_already_done(breq->mp, breq->startino))
return 0;
- bc.buf = kzalloc(sizeof(struct xfs_bulkstat),
- GFP_KERNEL | __GFP_RETRY_MAYFAIL);
+ bc.buf = kzalloc_obj(struct xfs_bulkstat,
+ GFP_KERNEL | __GFP_RETRY_MAYFAIL);
if (!bc.buf)
return -ENOMEM;
diff --git a/fs/xfs/xfs_iwalk.c b/fs/xfs/xfs_iwalk.c
index ed4033006868..96a4cb3360bc 100644
--- a/fs/xfs/xfs_iwalk.c
+++ b/fs/xfs/xfs_iwalk.c
@@ -659,8 +659,8 @@ xfs_iwalk_threaded(
if (xfs_pwork_ctl_want_abort(&pctl))
break;
- iwag = kzalloc(sizeof(struct xfs_iwalk_ag),
- GFP_KERNEL | __GFP_NOFAIL);
+ iwag = kzalloc_obj(struct xfs_iwalk_ag,
+ GFP_KERNEL | __GFP_NOFAIL);
iwag->mp = mp;
/*
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
index a26378ca247d..b96f262ba139 100644
--- a/fs/xfs/xfs_log.c
+++ b/fs/xfs/xfs_log.c
@@ -1334,7 +1334,7 @@ xlog_alloc_log(
int error = -ENOMEM;
uint log2_size = 0;
- log = kzalloc(sizeof(struct xlog), GFP_KERNEL | __GFP_RETRY_MAYFAIL);
+ log = kzalloc_obj(struct xlog, GFP_KERNEL | __GFP_RETRY_MAYFAIL);
if (!log) {
xfs_warn(mp, "Log allocation failed: No memory!");
goto out;
diff --git a/fs/xfs/xfs_log_cil.c b/fs/xfs/xfs_log_cil.c
index 566976b8fef3..edc368938f30 100644
--- a/fs/xfs/xfs_log_cil.c
+++ b/fs/xfs/xfs_log_cil.c
@@ -100,7 +100,7 @@ xlog_cil_ctx_alloc(void)
{
struct xfs_cil_ctx *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL | __GFP_NOFAIL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL | __GFP_NOFAIL);
INIT_LIST_HEAD(&ctx->committing);
INIT_LIST_HEAD(&ctx->busy_extents.extent_list);
INIT_LIST_HEAD(&ctx->log_items);
@@ -2006,7 +2006,7 @@ xlog_cil_init(
struct xlog_cil_pcp *cilpcp;
int cpu;
- cil = kzalloc(sizeof(*cil), GFP_KERNEL | __GFP_RETRY_MAYFAIL);
+ cil = kzalloc_obj(*cil, GFP_KERNEL | __GFP_RETRY_MAYFAIL);
if (!cil)
return -ENOMEM;
/*
diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
index 935905743f94..09e6678ca487 100644
--- a/fs/xfs/xfs_log_recover.c
+++ b/fs/xfs/xfs_log_recover.c
@@ -2092,8 +2092,7 @@ xlog_recover_add_item(
{
struct xlog_recover_item *item;
- item = kzalloc(sizeof(struct xlog_recover_item),
- GFP_KERNEL | __GFP_NOFAIL);
+ item = kzalloc_obj(struct xlog_recover_item, GFP_KERNEL | __GFP_NOFAIL);
INIT_LIST_HEAD(&item->ri_list);
list_add_tail(&item->ri_list, head);
}
@@ -2223,8 +2222,8 @@ xlog_recover_add_to_trans(
}
item->ri_total = in_f->ilf_size;
- item->ri_buf = kcalloc(item->ri_total, sizeof(*item->ri_buf),
- GFP_KERNEL | __GFP_NOFAIL);
+ item->ri_buf = kzalloc_objs(*item->ri_buf, item->ri_total,
+ GFP_KERNEL | __GFP_NOFAIL);
}
if (item->ri_total <= item->ri_cnt) {
@@ -2367,7 +2366,7 @@ xlog_recover_ophdr_to_trans(
* This is a new transaction so allocate a new recovery container to
* hold the recovery ops that will follow.
*/
- trans = kzalloc(sizeof(struct xlog_recover), GFP_KERNEL | __GFP_NOFAIL);
+ trans = kzalloc_obj(struct xlog_recover, GFP_KERNEL | __GFP_NOFAIL);
trans->r_log_tid = tid;
trans->r_lsn = be64_to_cpu(rhead->h_lsn);
INIT_LIST_HEAD(&trans->r_itemq);
diff --git a/fs/xfs/xfs_mru_cache.c b/fs/xfs/xfs_mru_cache.c
index 4e417747688f..d61ec8cb126d 100644
--- a/fs/xfs/xfs_mru_cache.c
+++ b/fs/xfs/xfs_mru_cache.c
@@ -333,7 +333,7 @@ xfs_mru_cache_create(
if (!(grp_time = msecs_to_jiffies(lifetime_ms) / grp_count))
return -EINVAL;
- mru = kzalloc(sizeof(*mru), GFP_KERNEL | __GFP_NOFAIL);
+ mru = kzalloc_obj(*mru, GFP_KERNEL | __GFP_NOFAIL);
if (!mru)
return -ENOMEM;
diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c
index a3e7d4a107d4..7bd15d9e7fba 100644
--- a/fs/xfs/xfs_qm.c
+++ b/fs/xfs/xfs_qm.c
@@ -771,8 +771,8 @@ xfs_qm_init_quotainfo(
ASSERT(XFS_IS_QUOTA_ON(mp));
- qinf = mp->m_quotainfo = kzalloc(sizeof(struct xfs_quotainfo),
- GFP_KERNEL | __GFP_NOFAIL);
+ qinf = mp->m_quotainfo = kzalloc_obj(struct xfs_quotainfo,
+ GFP_KERNEL | __GFP_NOFAIL);
error = list_lru_init(&qinf->qi_lru);
if (error)
diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
index 8586f044a14b..0ce953b45852 100644
--- a/fs/xfs/xfs_super.c
+++ b/fs/xfs/xfs_super.c
@@ -2235,12 +2235,12 @@ xfs_init_fs_context(
struct xfs_mount *mp;
int i;
- mp = kzalloc(sizeof(struct xfs_mount), GFP_KERNEL);
+ mp = kzalloc_obj(struct xfs_mount, GFP_KERNEL);
if (!mp)
return -ENOMEM;
#ifdef DEBUG
- mp->m_errortag = kcalloc(XFS_ERRTAG_MAX, sizeof(*mp->m_errortag),
- GFP_KERNEL);
+ mp->m_errortag = kzalloc_objs(*mp->m_errortag, XFS_ERRTAG_MAX,
+ GFP_KERNEL);
if (!mp->m_errortag) {
kfree(mp);
return -ENOMEM;
diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c
index 363d7f88c2c6..923729af4206 100644
--- a/fs/xfs/xfs_trans_ail.c
+++ b/fs/xfs/xfs_trans_ail.c
@@ -922,8 +922,7 @@ xfs_trans_ail_init(
{
struct xfs_ail *ailp;
- ailp = kzalloc(sizeof(struct xfs_ail),
- GFP_KERNEL | __GFP_RETRY_MAYFAIL);
+ ailp = kzalloc_obj(struct xfs_ail, GFP_KERNEL | __GFP_RETRY_MAYFAIL);
if (!ailp)
return -ENOMEM;
diff --git a/fs/xfs/xfs_zone_alloc.c b/fs/xfs/xfs_zone_alloc.c
index b60952565737..5d45d88f1f03 100644
--- a/fs/xfs/xfs_zone_alloc.c
+++ b/fs/xfs/xfs_zone_alloc.c
@@ -417,7 +417,7 @@ xfs_init_open_zone(
{
struct xfs_open_zone *oz;
- oz = kzalloc(sizeof(*oz), GFP_NOFS | __GFP_NOFAIL);
+ oz = kzalloc_obj(*oz, GFP_NOFS | __GFP_NOFAIL);
spin_lock_init(&oz->oz_alloc_lock);
atomic_set(&oz->oz_ref, 1);
oz->oz_rtg = rtg;
@@ -1196,7 +1196,7 @@ xfs_alloc_zone_info(
struct xfs_zone_info *zi;
int i;
- zi = kzalloc(sizeof(*zi), GFP_KERNEL);
+ zi = kzalloc_obj(*zi, GFP_KERNEL);
if (!zi)
return NULL;
INIT_LIST_HEAD(&zi->zi_open_zones);
diff --git a/fs/xfs/xfs_zone_gc.c b/fs/xfs/xfs_zone_gc.c
index 1f1f9fc973af..b8b9c72e955a 100644
--- a/fs/xfs/xfs_zone_gc.c
+++ b/fs/xfs/xfs_zone_gc.c
@@ -199,11 +199,11 @@ xfs_zone_gc_data_alloc(
struct xfs_zone_gc_data *data;
int i;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return NULL;
- data->iter.recs = kcalloc(XFS_ZONE_GC_RECS, sizeof(*data->iter.recs),
- GFP_KERNEL);
+ data->iter.recs = kzalloc_objs(*data->iter.recs, XFS_ZONE_GC_RECS,
+ GFP_KERNEL);
if (!data->iter.recs)
goto out_free_data;
diff --git a/fs/zonefs/super.c b/fs/zonefs/super.c
index 086a31269198..28be57db6e4b 100644
--- a/fs/zonefs/super.c
+++ b/fs/zonefs/super.c
@@ -903,8 +903,8 @@ static int zonefs_get_zone_info(struct zonefs_zone_data *zd)
struct block_device *bdev = zd->sb->s_bdev;
int ret;
- zd->zones = kvcalloc(bdev_nr_zones(bdev), sizeof(struct blk_zone),
- GFP_KERNEL);
+ zd->zones = kvzalloc_objs(struct blk_zone, bdev_nr_zones(bdev),
+ GFP_KERNEL);
if (!zd->zones)
return -ENOMEM;
@@ -948,8 +948,8 @@ static int zonefs_init_zgroup(struct super_block *sb,
if (!zgroup->g_nr_zones)
return 0;
- zgroup->g_zones = kvcalloc(zgroup->g_nr_zones,
- sizeof(struct zonefs_zone), GFP_KERNEL);
+ zgroup->g_zones = kvzalloc_objs(struct zonefs_zone, zgroup->g_nr_zones,
+ GFP_KERNEL);
if (!zgroup->g_zones)
return -ENOMEM;
@@ -1243,7 +1243,7 @@ static int zonefs_fill_super(struct super_block *sb, struct fs_context *fc)
* ZONEFS_F_AGGRCNV which increases the maximum file size of a file
* beyond the zone size is taken into account.
*/
- sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
+ sbi = kzalloc_obj(*sbi, GFP_KERNEL);
if (!sbi)
return -ENOMEM;
@@ -1388,7 +1388,7 @@ static int zonefs_init_fs_context(struct fs_context *fc)
{
struct zonefs_context *ctx;
- ctx = kzalloc(sizeof(struct zonefs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct zonefs_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
ctx->s_mount_opts = ZONEFS_MNTOPT_ERRORS_RO;
diff --git a/include/kunit/resource.h b/include/kunit/resource.h
index 4ad69a2642a5..c330ed3e751c 100644
--- a/include/kunit/resource.h
+++ b/include/kunit/resource.h
@@ -243,7 +243,7 @@ kunit_alloc_and_get_resource(struct kunit *test,
struct kunit_resource *res;
int ret;
- res = kzalloc(sizeof(*res), internal_gfp);
+ res = kzalloc_obj(*res, internal_gfp);
if (!res)
return NULL;
@@ -285,7 +285,7 @@ static inline void *kunit_alloc_resource(struct kunit *test,
{
struct kunit_resource *res;
- res = kzalloc(sizeof(*res), internal_gfp);
+ res = kzalloc_obj(*res, internal_gfp);
if (!res)
return NULL;
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 3a412dcebc29..8b1d8993793d 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -66,7 +66,7 @@ static inline struct fwnode_handle *acpi_alloc_fwnode_static(void)
{
struct fwnode_handle *fwnode;
- fwnode = kzalloc(sizeof(struct fwnode_handle), GFP_KERNEL);
+ fwnode = kzalloc_obj(struct fwnode_handle, GFP_KERNEL);
if (!fwnode)
return NULL;
diff --git a/include/linux/bpf.h b/include/linux/bpf.h
index cd9b96434904..b78b53198a2e 100644
--- a/include/linux/bpf.h
+++ b/include/linux/bpf.h
@@ -2299,7 +2299,7 @@ static inline bool bpf_map_flags_access_ok(u32 access_flags)
static inline struct bpf_map_owner *bpf_map_owner_alloc(struct bpf_map *map)
{
- return kzalloc(sizeof(*map->owner), GFP_ATOMIC);
+ return kzalloc_obj(*map->owner, GFP_ATOMIC);
}
static inline void bpf_map_owner_free(struct bpf_map *map)
diff --git a/include/linux/crash_dump.h b/include/linux/crash_dump.h
index dd6fc3b2133b..2cb211617ecc 100644
--- a/include/linux/crash_dump.h
+++ b/include/linux/crash_dump.h
@@ -136,7 +136,7 @@ struct vmcore_range {
static inline int vmcore_alloc_add_range(struct list_head *list,
unsigned long long paddr, unsigned long long size)
{
- struct vmcore_range *m = kzalloc(sizeof(*m), GFP_KERNEL);
+ struct vmcore_range *m = kzalloc_obj(*m, GFP_KERNEL);
if (!m)
return -ENOMEM;
diff --git a/include/linux/dma-fence-chain.h b/include/linux/dma-fence-chain.h
index 68c3c1e41014..3267ab0e8c54 100644
--- a/include/linux/dma-fence-chain.h
+++ b/include/linux/dma-fence-chain.h
@@ -91,7 +91,7 @@ dma_fence_chain_contained(struct dma_fence *fence)
* intentional to enforce typesafety.
*/
#define dma_fence_chain_alloc() \
- ((struct dma_fence_chain *)kmalloc(sizeof(struct dma_fence_chain), GFP_KERNEL))
+ ((struct dma_fence_chain *) kmalloc_obj(struct dma_fence_chain, GFP_KERNEL))
/**
* dma_fence_chain_free
diff --git a/include/linux/gameport.h b/include/linux/gameport.h
index 86d62fdafd7a..09a1a59034e0 100644
--- a/include/linux/gameport.h
+++ b/include/linux/gameport.h
@@ -97,7 +97,7 @@ void gameport_set_phys(struct gameport *gameport, const char *fmt, ...)
static inline struct gameport *gameport_allocate_port(void)
{
- struct gameport *gameport = kzalloc(sizeof(struct gameport), GFP_KERNEL);
+ struct gameport *gameport = kzalloc_obj(struct gameport, GFP_KERNEL);
return gameport;
}
diff --git a/include/linux/io-mapping.h b/include/linux/io-mapping.h
index c16353cc6e3c..ff9012c6a93a 100644
--- a/include/linux/io-mapping.h
+++ b/include/linux/io-mapping.h
@@ -206,7 +206,7 @@ io_mapping_create_wc(resource_size_t base,
{
struct io_mapping *iomap;
- iomap = kmalloc(sizeof(*iomap), GFP_KERNEL);
+ iomap = kmalloc_obj(*iomap, GFP_KERNEL);
if (!iomap)
return NULL;
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index d42a95cbcfbc..dde605cb894e 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -1664,7 +1664,7 @@ void kvm_arch_create_vm_debugfs(struct kvm *kvm);
*/
static inline struct kvm *kvm_arch_alloc_vm(void)
{
- return kzalloc(sizeof(struct kvm), GFP_KERNEL_ACCOUNT);
+ return kzalloc_obj(struct kvm, GFP_KERNEL_ACCOUNT);
}
#endif
diff --git a/include/linux/skmsg.h b/include/linux/skmsg.h
index 829b281d6c9c..a8513e401760 100644
--- a/include/linux/skmsg.h
+++ b/include/linux/skmsg.h
@@ -460,8 +460,7 @@ int sk_psock_msg_verdict(struct sock *sk, struct sk_psock *psock,
* intentional to enforce typesafety.
*/
#define sk_psock_init_link() \
- ((struct sk_psock_link *)kzalloc(sizeof(struct sk_psock_link), \
- GFP_ATOMIC | __GFP_NOWARN))
+ ((struct sk_psock_link *) kzalloc_obj(struct sk_psock_link, GFP_ATOMIC | __GFP_NOWARN))
static inline void sk_psock_free_link(struct sk_psock_link *link)
{
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h
index fd8dce4169f7..af7cfee7b8f6 100644
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
@@ -1309,7 +1309,7 @@ static inline struct spi_message *spi_message_alloc(unsigned ntrans, gfp_t flags
} *mwt;
unsigned i;
- mwt = kzalloc(struct_size(mwt, t, ntrans), flags);
+ mwt = kzalloc_flex(*mwt, t, ntrans, flags);
if (!mwt)
return NULL;
diff --git a/include/net/act_api.h b/include/net/act_api.h
index 91a24b5e0b93..453d6e18851b 100644
--- a/include/net/act_api.h
+++ b/include/net/act_api.h
@@ -159,7 +159,7 @@ int tc_action_net_init(struct net *net, struct tc_action_net *tn,
{
int err = 0;
- tn->idrinfo = kmalloc(sizeof(*tn->idrinfo), GFP_KERNEL);
+ tn->idrinfo = kmalloc_obj(*tn->idrinfo, GFP_KERNEL);
if (!tn->idrinfo)
return -ENOMEM;
tn->ops = ops;
diff --git a/include/net/fq_impl.h b/include/net/fq_impl.h
index 9467e33dfb36..171ee6f7aa83 100644
--- a/include/net/fq_impl.h
+++ b/include/net/fq_impl.h
@@ -358,7 +358,7 @@ static int fq_init(struct fq *fq, int flows_cnt)
fq->limit = 8192;
fq->memory_limit = 16 << 20; /* 16 MBytes */
- fq->flows = kvcalloc(fq->flows_cnt, sizeof(fq->flows[0]), GFP_KERNEL);
+ fq->flows = kvzalloc_objs(fq->flows[0], fq->flows_cnt, GFP_KERNEL);
if (!fq->flows)
return -ENOMEM;
diff --git a/include/net/iucv/iucv.h b/include/net/iucv/iucv.h
index 5606ed6e7084..18f511da9a09 100644
--- a/include/net/iucv/iucv.h
+++ b/include/net/iucv/iucv.h
@@ -211,7 +211,7 @@ static inline struct iucv_path *iucv_path_alloc(u16 msglim, u8 flags, gfp_t gfp)
{
struct iucv_path *path;
- path = kzalloc(sizeof(struct iucv_path), gfp);
+ path = kzalloc_obj(struct iucv_path, gfp);
if (path) {
path->msglim = msglim;
path->flags = flags;
diff --git a/include/net/tc_act/tc_gate.h b/include/net/tc_act/tc_gate.h
index c1a67149c6b6..b147a3bb1a46 100644
--- a/include/net/tc_act/tc_gate.h
+++ b/include/net/tc_act/tc_gate.h
@@ -114,7 +114,7 @@ static inline struct action_gate_entry
if (i != num_entries)
return NULL;
- oe = kcalloc(num_entries, sizeof(*oe), GFP_ATOMIC);
+ oe = kzalloc_objs(*oe, num_entries, GFP_ATOMIC);
if (!oe)
return NULL;
diff --git a/include/net/udp.h b/include/net/udp.h
index 700dbedcb15f..24491111477a 100644
--- a/include/net/udp.h
+++ b/include/net/udp.h
@@ -294,8 +294,8 @@ static inline int udp_lib_init_sock(struct sock *sk)
up->forward_threshold = sk->sk_rcvbuf >> 2;
set_bit(SOCK_CUSTOM_SOCKOPT, &sk->sk_socket->flags);
- up->udp_prod_queue = kcalloc(nr_node_ids, sizeof(*up->udp_prod_queue),
- GFP_KERNEL);
+ up->udp_prod_queue = kzalloc_objs(*up->udp_prod_queue, nr_node_ids,
+ GFP_KERNEL);
if (!up->udp_prod_queue)
return -ENOMEM;
for (int i = 0; i < nr_node_ids; i++)
diff --git a/init/initramfs.c b/init/initramfs.c
index 6ddbfb17fb8f..3d89e31e0d8a 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -102,7 +102,7 @@ static char __init *find_link(int major, int minor, int ino,
continue;
return (*p)->name;
}
- q = kmalloc(sizeof(struct hash), GFP_KERNEL);
+ q = kmalloc_obj(struct hash, GFP_KERNEL);
if (!q)
panic_show_mem("can't allocate link hash entry");
q->major = major;
@@ -153,7 +153,7 @@ static void __init dir_add(const char *name, size_t nlen, time64_t mtime)
{
struct dir_entry *de;
- de = kmalloc(struct_size(de, name, nlen), GFP_KERNEL);
+ de = kmalloc_flex(*de, name, nlen, GFP_KERNEL);
if (!de)
panic_show_mem("can't allocate dir_entry buffer");
INIT_LIST_HEAD(&de->list);
@@ -517,7 +517,7 @@ char * __init unpack_to_rootfs(char *buf, unsigned long len)
char header[CPIO_HDRLEN];
char symlink[PATH_MAX + N_ALIGN(PATH_MAX) + 1];
char name[N_ALIGN(PATH_MAX)];
- } *bufs = kmalloc(sizeof(*bufs), GFP_KERNEL);
+ } *bufs = kmalloc_obj(*bufs, GFP_KERNEL);
if (!bufs)
panic_show_mem("can't allocate buffers");
diff --git a/init/initramfs_test.c b/init/initramfs_test.c
index beb6e3cf7808..1e75faec678b 100644
--- a/init/initramfs_test.c
+++ b/init/initramfs_test.c
@@ -403,7 +403,7 @@ static void __init initramfs_test_fname_pad(struct kunit *test)
struct test_fname_pad {
char padded_fname[4096 - CPIO_HDRLEN];
char cpio_srcbuf[CPIO_HDRLEN + PATH_MAX + 3 + sizeof(fdata)];
- } *tbufs = kzalloc(sizeof(struct test_fname_pad), GFP_KERNEL);
+ } *tbufs = kzalloc_obj(struct test_fname_pad, GFP_KERNEL);
struct initramfs_test_cpio c[] = { {
.magic = "070701",
.ino = 1,
@@ -457,7 +457,7 @@ static void __init initramfs_test_fname_path_max(struct kunit *test)
char fname_oversize[PATH_MAX + 1];
char fname_ok[PATH_MAX];
char cpio_src[(CPIO_HDRLEN + PATH_MAX + 3 + sizeof(fdata)) * 2];
- } *tbufs = kzalloc(sizeof(struct test_fname_path_max), GFP_KERNEL);
+ } *tbufs = kzalloc_obj(struct test_fname_path_max, GFP_KERNEL);
struct initramfs_test_cpio c[] = { {
.magic = "070701",
.ino = 1,
diff --git a/io_uring/bpf_filter.c b/io_uring/bpf_filter.c
index 28a23e92ee81..6a98750e38b0 100644
--- a/io_uring/bpf_filter.c
+++ b/io_uring/bpf_filter.c
@@ -152,13 +152,12 @@ static struct io_bpf_filters *io_new_bpf_filters(void)
{
struct io_bpf_filters *filters __free(kfree) = NULL;
- filters = kzalloc(sizeof(*filters), GFP_KERNEL_ACCOUNT);
+ filters = kzalloc_obj(*filters, GFP_KERNEL_ACCOUNT);
if (!filters)
return ERR_PTR(-ENOMEM);
- filters->filters = kcalloc(IORING_OP_LAST,
- sizeof(struct io_bpf_filter *),
- GFP_KERNEL_ACCOUNT);
+ filters->filters = kzalloc_objs(struct io_bpf_filter *, IORING_OP_LAST,
+ GFP_KERNEL_ACCOUNT);
if (!filters->filters)
return ERR_PTR(-ENOMEM);
@@ -402,7 +401,7 @@ int io_register_bpf_filter(struct io_restriction *res,
old_filters = res->bpf_filters;
}
- filter = kzalloc(sizeof(*filter), GFP_KERNEL_ACCOUNT);
+ filter = kzalloc_obj(*filter, GFP_KERNEL_ACCOUNT);
if (!filter) {
ret = -ENOMEM;
goto err;
diff --git a/io_uring/eventfd.c b/io_uring/eventfd.c
index 78f8ab7db104..0120ecd97321 100644
--- a/io_uring/eventfd.c
+++ b/io_uring/eventfd.c
@@ -127,7 +127,7 @@ int io_eventfd_register(struct io_ring_ctx *ctx, void __user *arg,
if (copy_from_user(&fd, fds, sizeof(*fds)))
return -EFAULT;
- ev_fd = kmalloc(sizeof(*ev_fd), GFP_KERNEL);
+ ev_fd = kmalloc_obj(*ev_fd, GFP_KERNEL);
if (!ev_fd)
return -ENOMEM;
diff --git a/io_uring/futex.c b/io_uring/futex.c
index 1dabcfd503b8..fd503c24b428 100644
--- a/io_uring/futex.c
+++ b/io_uring/futex.c
@@ -185,8 +185,8 @@ int io_futexv_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
if (!iof->futex_nr || iof->futex_nr > FUTEX_WAITV_MAX)
return -EINVAL;
- ifd = kzalloc(struct_size_t(struct io_futexv_data, futexv, iof->futex_nr),
- GFP_KERNEL_ACCOUNT);
+ ifd = kzalloc_flex(struct io_futexv_data, futexv, iof->futex_nr,
+ GFP_KERNEL_ACCOUNT);
if (!ifd)
return -ENOMEM;
diff --git a/io_uring/io-wq.c b/io_uring/io-wq.c
index 7ed04911f7b9..2d04ff565920 100644
--- a/io_uring/io-wq.c
+++ b/io_uring/io-wq.c
@@ -897,7 +897,7 @@ static bool create_io_worker(struct io_wq *wq, struct io_wq_acct *acct)
__set_current_state(TASK_RUNNING);
- worker = kzalloc(sizeof(*worker), GFP_KERNEL);
+ worker = kzalloc_obj(*worker, GFP_KERNEL);
if (!worker) {
fail:
atomic_dec(&acct->nr_running);
@@ -1255,7 +1255,7 @@ struct io_wq *io_wq_create(unsigned bounded, struct io_wq_data *data)
if (WARN_ON_ONCE(!bounded))
return ERR_PTR(-EINVAL);
- wq = kzalloc(sizeof(struct io_wq), GFP_KERNEL);
+ wq = kzalloc_obj(struct io_wq, GFP_KERNEL);
if (!wq)
return ERR_PTR(-ENOMEM);
diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c
index ccab8562d273..3c64c458a281 100644
--- a/io_uring/io_uring.c
+++ b/io_uring/io_uring.c
@@ -195,8 +195,8 @@ static int io_alloc_hash_table(struct io_hash_table *table, unsigned bits)
do {
hash_buckets = 1U << bits;
- table->hbs = kvmalloc_array(hash_buckets, sizeof(table->hbs[0]),
- GFP_KERNEL_ACCOUNT);
+ table->hbs = kvmalloc_objs(table->hbs[0], hash_buckets,
+ GFP_KERNEL_ACCOUNT);
if (table->hbs)
break;
if (bits == 1)
@@ -226,7 +226,7 @@ static __cold struct io_ring_ctx *io_ring_ctx_alloc(struct io_uring_params *p)
int hash_bits;
bool ret;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return NULL;
@@ -1330,7 +1330,7 @@ static __cold void io_drain_req(struct io_kiocb *req)
bool drain = req->flags & IOSQE_IO_DRAIN;
struct io_defer_entry *de;
- de = kmalloc(sizeof(*de), GFP_KERNEL_ACCOUNT);
+ de = kmalloc_obj(*de, GFP_KERNEL_ACCOUNT);
if (!de) {
io_req_defer_failed(req, -ENOMEM);
return;
diff --git a/io_uring/kbuf.c b/io_uring/kbuf.c
index 67d4fe576473..dcfa4d558f72 100644
--- a/io_uring/kbuf.c
+++ b/io_uring/kbuf.c
@@ -265,7 +265,7 @@ static int io_ring_buffers_peek(struct io_kiocb *req, struct buf_sel_arg *arg,
* a speculative peek operation.
*/
if (arg->mode & KBUF_MODE_EXPAND && nr_avail > nr_iovs && arg->max_len) {
- iov = kmalloc_array(nr_avail, sizeof(struct iovec), GFP_KERNEL);
+ iov = kmalloc_objs(struct iovec, nr_avail, GFP_KERNEL);
if (unlikely(!iov))
return -ENOMEM;
if (arg->mode & KBUF_MODE_FREE)
@@ -532,7 +532,7 @@ static int io_add_buffers(struct io_ring_ctx *ctx, struct io_provide_buf *pbuf,
ret = -EOVERFLOW;
break;
}
- buf = kmalloc(sizeof(*buf), GFP_KERNEL_ACCOUNT);
+ buf = kmalloc_obj(*buf, GFP_KERNEL_ACCOUNT);
if (!buf)
break;
@@ -559,7 +559,7 @@ static int __io_manage_buffers_legacy(struct io_kiocb *req,
if (!bl) {
if (req->opcode != IORING_OP_PROVIDE_BUFFERS)
return -ENOENT;
- bl = kzalloc(sizeof(*bl), GFP_KERNEL_ACCOUNT);
+ bl = kzalloc_obj(*bl, GFP_KERNEL_ACCOUNT);
if (!bl)
return -ENOMEM;
@@ -628,7 +628,7 @@ int io_register_pbuf_ring(struct io_ring_ctx *ctx, void __user *arg)
io_destroy_bl(ctx, bl);
}
- bl = kzalloc(sizeof(*bl), GFP_KERNEL_ACCOUNT);
+ bl = kzalloc_obj(*bl, GFP_KERNEL_ACCOUNT);
if (!bl)
return -ENOMEM;
diff --git a/io_uring/memmap.c b/io_uring/memmap.c
index 89f56609e50a..e6958968975a 100644
--- a/io_uring/memmap.c
+++ b/io_uring/memmap.c
@@ -56,7 +56,7 @@ struct page **io_pin_pages(unsigned long uaddr, unsigned long len, int *npages)
if (WARN_ON_ONCE(nr_pages > INT_MAX))
return ERR_PTR(-EOVERFLOW);
- pages = kvmalloc_array(nr_pages, sizeof(struct page *), GFP_KERNEL_ACCOUNT);
+ pages = kvmalloc_objs(struct page *, nr_pages, GFP_KERNEL_ACCOUNT);
if (!pages)
return ERR_PTR(-ENOMEM);
@@ -158,7 +158,7 @@ static int io_region_allocate_pages(struct io_mapped_region *mr,
unsigned long nr_allocated;
struct page **pages;
- pages = kvmalloc_array(mr->nr_pages, sizeof(*pages), gfp);
+ pages = kvmalloc_objs(*pages, mr->nr_pages, gfp);
if (!pages)
return -ENOMEM;
diff --git a/io_uring/mock_file.c b/io_uring/mock_file.c
index 80c96ad2061f..221b60ad0723 100644
--- a/io_uring/mock_file.c
+++ b/io_uring/mock_file.c
@@ -115,7 +115,7 @@ static ssize_t io_mock_delay_rw(struct kiocb *iocb, size_t len)
struct io_mock_file *mf = iocb->ki_filp->private_data;
struct io_mock_iocb *mio;
- mio = kzalloc(sizeof(*mio), GFP_KERNEL);
+ mio = kzalloc_obj(*mio, GFP_KERNEL);
if (!mio)
return -ENOMEM;
@@ -242,7 +242,7 @@ static int io_create_mock_file(struct io_uring_cmd *cmd, unsigned int issue_flag
if (mc.rw_delay_ns > NSEC_PER_SEC)
return -EINVAL;
- mf = kzalloc(sizeof(*mf), GFP_KERNEL_ACCOUNT);
+ mf = kzalloc_obj(*mf, GFP_KERNEL_ACCOUNT);
if (!mf)
return -ENOMEM;
diff --git a/io_uring/poll.c b/io_uring/poll.c
index aac4b3b881fb..b671b84657d9 100644
--- a/io_uring/poll.c
+++ b/io_uring/poll.c
@@ -478,7 +478,7 @@ static void __io_queue_proc(struct io_poll *poll, struct io_poll_table *pt,
return;
}
- poll = kmalloc(sizeof(*poll), GFP_ATOMIC);
+ poll = kmalloc_obj(*poll, GFP_ATOMIC);
if (!poll) {
pt->error = -ENOMEM;
return;
@@ -655,7 +655,7 @@ static struct async_poll *io_req_alloc_apoll(struct io_kiocb *req,
if (!(issue_flags & IO_URING_F_UNLOCKED))
apoll = io_cache_alloc(&ctx->apoll_cache, GFP_ATOMIC);
else
- apoll = kmalloc(sizeof(*apoll), GFP_ATOMIC);
+ apoll = kmalloc_obj(*apoll, GFP_ATOMIC);
if (!apoll)
return NULL;
apoll->poll.retries = APOLL_MAX_RETRY;
diff --git a/io_uring/register.c b/io_uring/register.c
index 594b1f2ce875..6015a3e9ce69 100644
--- a/io_uring/register.c
+++ b/io_uring/register.c
@@ -218,7 +218,7 @@ static int io_register_restrictions_task(void __user *arg, unsigned int nr_args)
if (!mem_is_zero(tres.resv, sizeof(tres.resv)))
return -EINVAL;
- res = kzalloc(sizeof(*res), GFP_KERNEL_ACCOUNT);
+ res = kzalloc_obj(*res, GFP_KERNEL_ACCOUNT);
if (!res)
return -ENOMEM;
@@ -250,7 +250,7 @@ static int io_register_bpf_filter_task(void __user *arg, unsigned int nr_args)
/* If no task restrictions exist, setup a new set */
res = current->io_uring_restrict;
if (!res) {
- res = kzalloc(sizeof(*res), GFP_KERNEL_ACCOUNT);
+ res = kzalloc_obj(*res, GFP_KERNEL_ACCOUNT);
if (!res)
return -ENOMEM;
}
diff --git a/io_uring/rsrc.c b/io_uring/rsrc.c
index 842e231c8a7c..9b799e7ba889 100644
--- a/io_uring/rsrc.c
+++ b/io_uring/rsrc.c
@@ -113,8 +113,7 @@ static struct io_mapped_ubuf *io_alloc_imu(struct io_ring_ctx *ctx,
{
if (nr_bvecs <= IO_CACHED_BVECS_SEGS)
return io_cache_alloc(&ctx->imu_cache, GFP_KERNEL);
- return kvmalloc(struct_size_t(struct io_mapped_ubuf, bvec, nr_bvecs),
- GFP_KERNEL);
+ return kvmalloc_flex(struct io_mapped_ubuf, bvec, nr_bvecs, GFP_KERNEL);
}
static void io_free_imu(struct io_ring_ctx *ctx, struct io_mapped_ubuf *imu)
@@ -200,8 +199,8 @@ __cold void io_rsrc_data_free(struct io_ring_ctx *ctx,
__cold int io_rsrc_data_alloc(struct io_rsrc_data *data, unsigned nr)
{
- data->nodes = kvmalloc_array(nr, sizeof(struct io_rsrc_node *),
- GFP_KERNEL_ACCOUNT | __GFP_ZERO);
+ data->nodes = kvmalloc_objs(struct io_rsrc_node *, nr,
+ GFP_KERNEL_ACCOUNT | __GFP_ZERO);
if (data->nodes) {
data->nr = nr;
return 0;
@@ -684,7 +683,7 @@ static bool io_coalesce_buffer(struct page ***pages, int *nr_pages,
unsigned i, j;
/* Store head pages only*/
- new_array = kvmalloc_array(nr_folios, sizeof(struct page *), GFP_KERNEL);
+ new_array = kvmalloc_objs(struct page *, nr_folios, GFP_KERNEL);
if (!new_array)
return false;
@@ -1310,7 +1309,7 @@ int io_vec_realloc(struct iou_vec *iv, unsigned nr_entries)
gfp_t gfp = GFP_KERNEL_ACCOUNT | __GFP_NOWARN;
struct iovec *iov;
- iov = kmalloc_array(nr_entries, sizeof(iov[0]), gfp);
+ iov = kmalloc_objs(iov[0], nr_entries, gfp);
if (!iov)
return -ENOMEM;
diff --git a/io_uring/sqpoll.c b/io_uring/sqpoll.c
index becdfdd323a9..97e64d7d029f 100644
--- a/io_uring/sqpoll.c
+++ b/io_uring/sqpoll.c
@@ -153,7 +153,7 @@ static struct io_sq_data *io_get_sq_data(struct io_uring_params *p,
return sqd;
}
- sqd = kzalloc(sizeof(*sqd), GFP_KERNEL);
+ sqd = kzalloc_obj(*sqd, GFP_KERNEL);
if (!sqd)
return ERR_PTR(-ENOMEM);
diff --git a/io_uring/tctx.c b/io_uring/tctx.c
index 270263699c6f..fa97bc7db6a3 100644
--- a/io_uring/tctx.c
+++ b/io_uring/tctx.c
@@ -23,7 +23,7 @@ static struct io_wq *io_init_wq_offload(struct io_ring_ctx *ctx,
mutex_lock(&ctx->uring_lock);
hash = ctx->hash_map;
if (!hash) {
- hash = kzalloc(sizeof(*hash), GFP_KERNEL);
+ hash = kzalloc_obj(*hash, GFP_KERNEL);
if (!hash) {
mutex_unlock(&ctx->uring_lock);
return ERR_PTR(-ENOMEM);
@@ -80,7 +80,7 @@ __cold int io_uring_alloc_task_context(struct task_struct *task,
struct io_uring_task *tctx;
int ret;
- tctx = kzalloc(sizeof(*tctx), GFP_KERNEL);
+ tctx = kzalloc_obj(*tctx, GFP_KERNEL);
if (unlikely(!tctx))
return -ENOMEM;
@@ -139,7 +139,7 @@ int __io_uring_add_tctx_node(struct io_ring_ctx *ctx)
if (tctx->io_wq)
io_wq_set_exit_on_idle(tctx->io_wq, false);
if (!xa_load(&tctx->xa, (unsigned long)ctx)) {
- node = kmalloc(sizeof(*node), GFP_KERNEL);
+ node = kmalloc_obj(*node, GFP_KERNEL);
if (!node)
return -ENOMEM;
node->ctx = ctx;
@@ -378,7 +378,7 @@ int __io_uring_fork(struct task_struct *tsk)
/* Don't leave it dangling on error */
tsk->io_uring_restrict = NULL;
- res = kzalloc(sizeof(*res), GFP_KERNEL_ACCOUNT);
+ res = kzalloc_obj(*res, GFP_KERNEL_ACCOUNT);
if (!res)
return -ENOMEM;
diff --git a/io_uring/xattr.c b/io_uring/xattr.c
index ba2b98cf13f9..28475bf8ed47 100644
--- a/io_uring/xattr.c
+++ b/io_uring/xattr.c
@@ -56,7 +56,7 @@ static int __io_getxattr_prep(struct io_kiocb *req,
if (ix->ctx.flags)
return -EINVAL;
- ix->ctx.kname = kmalloc(sizeof(*ix->ctx.kname), GFP_KERNEL);
+ ix->ctx.kname = kmalloc_obj(*ix->ctx.kname, GFP_KERNEL);
if (!ix->ctx.kname)
return -ENOMEM;
@@ -133,7 +133,7 @@ static int __io_setxattr_prep(struct io_kiocb *req,
ix->ctx.size = READ_ONCE(sqe->len);
ix->ctx.flags = READ_ONCE(sqe->xattr_flags);
- ix->ctx.kname = kmalloc(sizeof(*ix->ctx.kname), GFP_KERNEL);
+ ix->ctx.kname = kmalloc_obj(*ix->ctx.kname, GFP_KERNEL);
if (!ix->ctx.kname)
return -ENOMEM;
diff --git a/io_uring/zcrx.c b/io_uring/zcrx.c
index 28150c6578e3..d1ecc55de5ee 100644
--- a/io_uring/zcrx.c
+++ b/io_uring/zcrx.c
@@ -448,7 +448,7 @@ static int io_zcrx_create_area(struct io_zcrx_ifq *ifq,
}
ret = -ENOMEM;
- area = kzalloc(sizeof(*area), GFP_KERNEL);
+ area = kzalloc_obj(*area, GFP_KERNEL);
if (!area)
goto err;
area->ifq = ifq;
@@ -467,8 +467,8 @@ static int io_zcrx_create_area(struct io_zcrx_ifq *ifq,
area->nia.num_niovs = nr_iovs;
ret = -ENOMEM;
- area->nia.niovs = kvmalloc_array(nr_iovs, sizeof(area->nia.niovs[0]),
- GFP_KERNEL_ACCOUNT | __GFP_ZERO);
+ area->nia.niovs = kvmalloc_objs(area->nia.niovs[0], nr_iovs,
+ GFP_KERNEL_ACCOUNT | __GFP_ZERO);
if (!area->nia.niovs)
goto err;
@@ -477,7 +477,7 @@ static int io_zcrx_create_area(struct io_zcrx_ifq *ifq,
if (!area->freelist)
goto err;
- area->user_refs = kvmalloc_array(nr_iovs, sizeof(area->user_refs[0]),
+ area->user_refs = kvmalloc_objs(area->user_refs[0], nr_iovs,
GFP_KERNEL_ACCOUNT | __GFP_ZERO);
if (!area->user_refs)
goto err;
@@ -510,7 +510,7 @@ static struct io_zcrx_ifq *io_zcrx_ifq_alloc(struct io_ring_ctx *ctx)
{
struct io_zcrx_ifq *ifq;
- ifq = kzalloc(sizeof(*ifq), GFP_KERNEL);
+ ifq = kzalloc_obj(*ifq, GFP_KERNEL);
if (!ifq)
return NULL;
diff --git a/ipc/mqueue.c b/ipc/mqueue.c
index bb7c9e5d2b90..a90aa6803f1b 100644
--- a/ipc/mqueue.c
+++ b/ipc/mqueue.c
@@ -210,7 +210,7 @@ static int msg_insert(struct msg_msg *msg, struct mqueue_inode_info *info)
leaf = info->node_cache;
info->node_cache = NULL;
} else {
- leaf = kmalloc(sizeof(*leaf), GFP_ATOMIC);
+ leaf = kmalloc_obj(*leaf, GFP_ATOMIC);
if (!leaf)
return -ENOMEM;
INIT_LIST_HEAD(&leaf->msg_list);
@@ -449,7 +449,7 @@ static int mqueue_init_fs_context(struct fs_context *fc)
{
struct mqueue_fs_context *ctx;
- ctx = kzalloc(sizeof(struct mqueue_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct mqueue_fs_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -1088,7 +1088,7 @@ static int do_mq_timedsend(mqd_t mqdes, const char __user *u_msg_ptr,
* fall back to that if necessary.
*/
if (!info->node_cache)
- new_leaf = kmalloc(sizeof(*new_leaf), GFP_KERNEL);
+ new_leaf = kmalloc_obj(*new_leaf, GFP_KERNEL);
spin_lock(&info->lock);
@@ -1181,7 +1181,7 @@ static int do_mq_timedreceive(mqd_t mqdes, char __user *u_msg_ptr,
* fall back to that if necessary.
*/
if (!info->node_cache)
- new_leaf = kmalloc(sizeof(*new_leaf), GFP_KERNEL);
+ new_leaf = kmalloc_obj(*new_leaf, GFP_KERNEL);
spin_lock(&info->lock);
diff --git a/ipc/msg.c b/ipc/msg.c
index ee6af4fe52bf..62996b97f0ac 100644
--- a/ipc/msg.c
+++ b/ipc/msg.c
@@ -148,7 +148,7 @@ static int newque(struct ipc_namespace *ns, struct ipc_params *params)
key_t key = params->key;
int msgflg = params->flg;
- msq = kmalloc(sizeof(*msq), GFP_KERNEL_ACCOUNT);
+ msq = kmalloc_obj(*msq, GFP_KERNEL_ACCOUNT);
if (unlikely(!msq))
return -ENOMEM;
diff --git a/ipc/namespace.c b/ipc/namespace.c
index 535f16ea40e1..1e71353bdb4a 100644
--- a/ipc/namespace.c
+++ b/ipc/namespace.c
@@ -58,7 +58,7 @@ static struct ipc_namespace *create_ipc_ns(struct user_namespace *user_ns,
}
err = -ENOMEM;
- ns = kzalloc(sizeof(struct ipc_namespace), GFP_KERNEL_ACCOUNT);
+ ns = kzalloc_obj(struct ipc_namespace, GFP_KERNEL_ACCOUNT);
if (ns == NULL)
goto fail_dec;
diff --git a/ipc/sem.c b/ipc/sem.c
index 0f06e4bd4673..2a19244cff22 100644
--- a/ipc/sem.c
+++ b/ipc/sem.c
@@ -514,7 +514,7 @@ static struct sem_array *sem_alloc(size_t nsems)
if (nsems > (INT_MAX - sizeof(*sma)) / sizeof(sma->sems[0]))
return NULL;
- sma = kvzalloc(struct_size(sma, sems, nsems), GFP_KERNEL_ACCOUNT);
+ sma = kvzalloc_flex(*sma, sems, nsems, GFP_KERNEL_ACCOUNT);
if (unlikely(!sma))
return NULL;
@@ -1853,7 +1853,7 @@ static inline int get_undo_list(struct sem_undo_list **undo_listp)
undo_list = current->sysvsem.undo_list;
if (!undo_list) {
- undo_list = kzalloc(sizeof(*undo_list), GFP_KERNEL_ACCOUNT);
+ undo_list = kzalloc_obj(*undo_list, GFP_KERNEL_ACCOUNT);
if (undo_list == NULL)
return -ENOMEM;
spin_lock_init(&undo_list->lock);
@@ -1938,7 +1938,7 @@ static struct sem_undo *find_alloc_undo(struct ipc_namespace *ns, int semid)
rcu_read_unlock();
/* step 2: allocate new undo structure */
- new = kvzalloc(struct_size(new, semadj, nsems), GFP_KERNEL_ACCOUNT);
+ new = kvzalloc_flex(*new, semadj, nsems, GFP_KERNEL_ACCOUNT);
if (!new) {
ipc_rcu_putref(&sma->sem_perm, sem_rcu_free);
return ERR_PTR(-ENOMEM);
@@ -2234,7 +2234,7 @@ static long do_semtimedop(int semid, struct sembuf __user *tsops,
return -EINVAL;
if (nsops > SEMOPM_FAST) {
- sops = kvmalloc_array(nsops, sizeof(*sops), GFP_KERNEL);
+ sops = kvmalloc_objs(*sops, nsops, GFP_KERNEL);
if (sops == NULL)
return -ENOMEM;
}
diff --git a/ipc/shm.c b/ipc/shm.c
index e8c7d1924c50..b94248570304 100644
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -722,7 +722,7 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params)
ns->shm_tot + numpages > ns->shm_ctlall)
return -ENOSPC;
- shp = kmalloc(sizeof(*shp), GFP_KERNEL_ACCOUNT);
+ shp = kmalloc_obj(*shp, GFP_KERNEL_ACCOUNT);
if (unlikely(!shp))
return -ENOMEM;
@@ -1618,7 +1618,7 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg,
rcu_read_unlock();
err = -ENOMEM;
- sfd = kzalloc(sizeof(*sfd), GFP_KERNEL);
+ sfd = kzalloc_obj(*sfd, GFP_KERNEL);
if (!sfd) {
fput(base);
goto out_nattch;
diff --git a/ipc/util.c b/ipc/util.c
index cae60f11d9c2..59235ffba0d9 100644
--- a/ipc/util.c
+++ b/ipc/util.c
@@ -141,7 +141,7 @@ void __init ipc_init_proc_interface(const char *path, const char *header,
struct proc_dir_entry *pde;
struct ipc_proc_iface *iface;
- iface = kmalloc(sizeof(*iface), GFP_KERNEL);
+ iface = kmalloc_obj(*iface, GFP_KERNEL);
if (!iface)
return;
iface->path = path;
diff --git a/kernel/acct.c b/kernel/acct.c
index 812808e5b1b8..06e8b79eaf7e 100644
--- a/kernel/acct.c
+++ b/kernel/acct.c
@@ -255,7 +255,7 @@ static int acct_on(const char __user *name)
if (!(file->f_mode & FMODE_CAN_WRITE))
return -EIO;
- acct = kzalloc(sizeof(struct bsd_acct_struct), GFP_KERNEL);
+ acct = kzalloc_obj(struct bsd_acct_struct, GFP_KERNEL);
if (!acct)
return -ENOMEM;
diff --git a/kernel/async.c b/kernel/async.c
index 4c3e6a44595f..862532ad328a 100644
--- a/kernel/async.c
+++ b/kernel/async.c
@@ -205,7 +205,7 @@ async_cookie_t async_schedule_node_domain(async_func_t func, void *data,
async_cookie_t newcookie;
/* allow irq-off callers */
- entry = kzalloc(sizeof(struct async_entry), GFP_ATOMIC);
+ entry = kzalloc_obj(struct async_entry, GFP_ATOMIC);
/*
* If we're out of memory or if there's too much work
@@ -261,7 +261,7 @@ bool async_schedule_dev_nocall(async_func_t func, struct device *dev)
{
struct async_entry *entry;
- entry = kzalloc(sizeof(struct async_entry), GFP_KERNEL);
+ entry = kzalloc_obj(struct async_entry, GFP_KERNEL);
/* Give up if there is no memory or too much work. */
if (!entry || atomic_read(&entry_count) > MAX_WORK) {
diff --git a/kernel/audit.c b/kernel/audit.c
index 592d927e70f9..838ca1648f7b 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -545,7 +545,7 @@ static int auditd_set(struct pid *pid, u32 portid, struct net *net,
if (!pid || !net)
return -EINVAL;
- ac_new = kzalloc(sizeof(*ac_new), GFP_KERNEL);
+ ac_new = kzalloc_obj(*ac_new, GFP_KERNEL);
if (!ac_new)
return -ENOMEM;
ac_new->pid = get_pid(pid);
@@ -1044,7 +1044,7 @@ static void audit_send_reply(struct sk_buff *request_skb, int seq, int type, int
struct task_struct *tsk;
struct audit_reply *reply;
- reply = kzalloc(sizeof(*reply), GFP_KERNEL);
+ reply = kzalloc_obj(*reply, GFP_KERNEL);
if (!reply)
return;
@@ -1517,8 +1517,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh,
if (err < 0)
return err;
}
- sig_data = kmalloc(struct_size(sig_data, ctx, lsmctx.len),
- GFP_KERNEL);
+ sig_data = kmalloc_flex(*sig_data, ctx, lsmctx.len, GFP_KERNEL);
if (!sig_data) {
if (lsmprop_is_set(&audit_sig_lsm))
security_release_secctx(&lsmctx);
diff --git a/kernel/audit_fsnotify.c b/kernel/audit_fsnotify.c
index b92805b317a2..7b89e1ccb5a4 100644
--- a/kernel/audit_fsnotify.c
+++ b/kernel/audit_fsnotify.c
@@ -89,7 +89,7 @@ struct audit_fsnotify_mark *audit_alloc_mark(struct audit_krule *krule, char *pa
goto out;
}
- audit_mark = kzalloc(sizeof(*audit_mark), GFP_KERNEL);
+ audit_mark = kzalloc_obj(*audit_mark, GFP_KERNEL);
if (unlikely(!audit_mark)) {
audit_mark = ERR_PTR(-ENOMEM);
goto out;
diff --git a/kernel/audit_tree.c b/kernel/audit_tree.c
index fda6beb041e0..3ffd6582bfe5 100644
--- a/kernel/audit_tree.c
+++ b/kernel/audit_tree.c
@@ -96,7 +96,7 @@ static struct audit_tree *alloc_tree(const char *s)
size_t sz;
sz = strlen(s) + 1;
- tree = kmalloc(struct_size(tree, pathname, sz), GFP_KERNEL);
+ tree = kmalloc_flex(*tree, pathname, sz, GFP_KERNEL);
if (tree) {
refcount_set(&tree->count, 1);
tree->goner = 0;
@@ -192,7 +192,7 @@ static struct audit_chunk *alloc_chunk(int count)
struct audit_chunk *chunk;
int i;
- chunk = kzalloc(struct_size(chunk, owners, count), GFP_KERNEL);
+ chunk = kzalloc_flex(*chunk, owners, count, GFP_KERNEL);
if (!chunk)
return NULL;
diff --git a/kernel/audit_watch.c b/kernel/audit_watch.c
index a700e3c8925f..6a73b30929c0 100644
--- a/kernel/audit_watch.c
+++ b/kernel/audit_watch.c
@@ -139,7 +139,7 @@ static struct audit_parent *audit_init_parent(const struct path *path)
struct audit_parent *parent;
int ret;
- parent = kzalloc(sizeof(*parent), GFP_KERNEL);
+ parent = kzalloc_obj(*parent, GFP_KERNEL);
if (unlikely(!parent))
return ERR_PTR(-ENOMEM);
@@ -161,7 +161,7 @@ static struct audit_watch *audit_init_watch(char *path)
{
struct audit_watch *watch;
- watch = kzalloc(sizeof(*watch), GFP_KERNEL);
+ watch = kzalloc_obj(*watch, GFP_KERNEL);
if (unlikely(!watch))
return ERR_PTR(-ENOMEM);
diff --git a/kernel/auditfilter.c b/kernel/auditfilter.c
index 6a86c0683b67..e2d6f9a91a49 100644
--- a/kernel/auditfilter.c
+++ b/kernel/auditfilter.c
@@ -108,11 +108,11 @@ static inline struct audit_entry *audit_init_entry(u32 field_count)
struct audit_entry *entry;
struct audit_field *fields;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (unlikely(!entry))
return NULL;
- fields = kcalloc(field_count, sizeof(*fields), GFP_KERNEL);
+ fields = kzalloc_objs(*fields, field_count, GFP_KERNEL);
if (unlikely(!fields)) {
kfree(entry);
return NULL;
@@ -638,7 +638,7 @@ static struct audit_rule_data *audit_krule_to_data(struct audit_krule *krule)
void *bufp;
int i;
- data = kzalloc(struct_size(data, buf, krule->buflen), GFP_KERNEL);
+ data = kzalloc_flex(*data, buf, krule->buflen, GFP_KERNEL);
if (unlikely(!data))
return NULL;
@@ -1180,7 +1180,7 @@ int audit_list_rules_send(struct sk_buff *request_skb, int seq)
* happen if we're actually running in the context of auditctl
* trying to _send_ the stuff */
- dest = kmalloc(sizeof(*dest), GFP_KERNEL);
+ dest = kmalloc_obj(*dest, GFP_KERNEL);
if (!dest)
return -ENOMEM;
dest->net = get_net(sock_net(NETLINK_CB(request_skb).sk));
diff --git a/kernel/auditsc.c b/kernel/auditsc.c
index 86a44b162a87..e45883de200f 100644
--- a/kernel/auditsc.c
+++ b/kernel/auditsc.c
@@ -255,7 +255,7 @@ static int grow_tree_refs(struct audit_context *ctx)
{
struct audit_tree_refs *p = ctx->trees;
- ctx->trees = kzalloc(sizeof(struct audit_tree_refs), GFP_KERNEL);
+ ctx->trees = kzalloc_obj(struct audit_tree_refs, GFP_KERNEL);
if (!ctx->trees) {
ctx->trees = p;
return 0;
@@ -1032,7 +1032,7 @@ static inline struct audit_context *audit_alloc_context(enum audit_state state)
{
struct audit_context *context;
- context = kzalloc(sizeof(*context), GFP_KERNEL);
+ context = kzalloc_obj(*context, GFP_KERNEL);
if (!context)
return NULL;
context->context = AUDIT_CTX_UNUSED;
@@ -2153,7 +2153,7 @@ static struct audit_names *audit_alloc_name(struct audit_context *context,
aname = &context->preallocated_names[context->name_count];
memset(aname, 0, sizeof(*aname));
} else {
- aname = kzalloc(sizeof(*aname), GFP_NOFS);
+ aname = kzalloc_obj(*aname, GFP_NOFS);
if (!aname)
return NULL;
aname->should_free = true;
@@ -2650,7 +2650,7 @@ int __audit_sockaddr(int len, void *a)
struct audit_context *context = audit_context();
if (!context->sockaddr) {
- void *p = kmalloc(sizeof(struct sockaddr_storage), GFP_KERNEL);
+ void *p = kmalloc_obj(struct sockaddr_storage, GFP_KERNEL);
if (!p)
return -ENOMEM;
@@ -2704,7 +2704,7 @@ int audit_signal_info_syscall(struct task_struct *t)
axp = (void *)ctx->aux_pids;
if (!axp || axp->pid_count == AUDIT_AUX_PIDS) {
- axp = kzalloc(sizeof(*axp), GFP_ATOMIC);
+ axp = kzalloc_obj(*axp, GFP_ATOMIC);
if (!axp)
return -ENOMEM;
@@ -2743,7 +2743,7 @@ int __audit_log_bprm_fcaps(struct linux_binprm *bprm,
struct audit_context *context = audit_context();
struct cpu_vfs_cap_data vcaps;
- ax = kmalloc(sizeof(*ax), GFP_KERNEL);
+ ax = kmalloc_obj(*ax, GFP_KERNEL);
if (!ax)
return -ENOMEM;
diff --git a/kernel/bpf/arena.c b/kernel/bpf/arena.c
index 42fae0a9f314..5baea15cb07d 100644
--- a/kernel/bpf/arena.c
+++ b/kernel/bpf/arena.c
@@ -324,7 +324,7 @@ static int remember_vma(struct bpf_arena *arena, struct vm_area_struct *vma)
{
struct vma_list *vml;
- vml = kmalloc(sizeof(*vml), GFP_KERNEL);
+ vml = kmalloc_obj(*vml, GFP_KERNEL);
if (!vml)
return -ENOMEM;
refcount_set(&vml->mmap_count, 1);
diff --git a/kernel/bpf/arraymap.c b/kernel/bpf/arraymap.c
index 67e9e811de3a..188b0e35f856 100644
--- a/kernel/bpf/arraymap.c
+++ b/kernel/bpf/arraymap.c
@@ -1061,7 +1061,7 @@ static int prog_array_map_poke_track(struct bpf_map *map,
goto out;
}
- elem = kmalloc(sizeof(*elem), GFP_KERNEL);
+ elem = kmalloc_obj(*elem, GFP_KERNEL);
if (!elem) {
ret = -ENOMEM;
goto out;
@@ -1174,7 +1174,7 @@ static struct bpf_map *prog_array_map_alloc(union bpf_attr *attr)
struct bpf_array_aux *aux;
struct bpf_map *map;
- aux = kzalloc(sizeof(*aux), GFP_KERNEL_ACCOUNT);
+ aux = kzalloc_obj(*aux, GFP_KERNEL_ACCOUNT);
if (!aux)
return ERR_PTR(-ENOMEM);
@@ -1237,7 +1237,7 @@ static struct bpf_event_entry *bpf_event_entry_gen(struct file *perf_file,
{
struct bpf_event_entry *ee;
- ee = kzalloc(sizeof(*ee), GFP_KERNEL);
+ ee = kzalloc_obj(*ee, GFP_KERNEL);
if (ee) {
ee->event = perf_file->private_data;
ee->perf_file = perf_file;
diff --git a/kernel/bpf/bpf_iter.c b/kernel/bpf/bpf_iter.c
index 4b58d56ecab1..b5d16050f7b3 100644
--- a/kernel/bpf/bpf_iter.c
+++ b/kernel/bpf/bpf_iter.c
@@ -295,7 +295,7 @@ int bpf_iter_reg_target(const struct bpf_iter_reg *reg_info)
{
struct bpf_iter_target_info *tinfo;
- tinfo = kzalloc(sizeof(*tinfo), GFP_KERNEL);
+ tinfo = kzalloc_obj(*tinfo, GFP_KERNEL);
if (!tinfo)
return -ENOMEM;
@@ -548,7 +548,7 @@ int bpf_iter_link_attach(const union bpf_attr *attr, bpfptr_t uattr,
if (prog->sleepable && !bpf_iter_target_support_resched(tinfo))
return -EINVAL;
- link = kzalloc(sizeof(*link), GFP_USER | __GFP_NOWARN);
+ link = kzalloc_obj(*link, GFP_USER | __GFP_NOWARN);
if (!link)
return -ENOMEM;
diff --git a/kernel/bpf/bpf_struct_ops.c b/kernel/bpf/bpf_struct_ops.c
index c43346cb3d76..1ff292a6f3ed 100644
--- a/kernel/bpf/bpf_struct_ops.c
+++ b/kernel/bpf/bpf_struct_ops.c
@@ -218,7 +218,7 @@ static int prepare_arg_info(struct btf *btf,
args = btf_params(func_proto);
stub_args = btf_params(stub_func_proto);
- info_buf = kcalloc(nargs, sizeof(*info_buf), GFP_KERNEL);
+ info_buf = kzalloc_objs(*info_buf, nargs, GFP_KERNEL);
if (!info_buf)
return -ENOMEM;
@@ -378,8 +378,7 @@ int bpf_struct_ops_desc_init(struct bpf_struct_ops_desc *st_ops_desc,
if (!is_valid_value_type(btf, value_id, t, value_name))
return -EINVAL;
- arg_info = kcalloc(btf_type_vlen(t), sizeof(*arg_info),
- GFP_KERNEL);
+ arg_info = kzalloc_objs(*arg_info, btf_type_vlen(t), GFP_KERNEL);
if (!arg_info)
return -ENOMEM;
@@ -721,7 +720,7 @@ static long bpf_struct_ops_map_update_elem(struct bpf_map *map, void *key,
if (uvalue->common.state || refcount_read(&uvalue->common.refcnt))
return -EINVAL;
- tlinks = kcalloc(BPF_TRAMP_MAX, sizeof(*tlinks), GFP_KERNEL);
+ tlinks = kzalloc_objs(*tlinks, BPF_TRAMP_MAX, GFP_KERNEL);
if (!tlinks)
return -ENOMEM;
@@ -815,7 +814,7 @@ static long bpf_struct_ops_map_update_elem(struct bpf_map *map, void *key,
/* Poison pointer on error instead of return for backward compatibility */
bpf_prog_assoc_struct_ops(prog, &st_map->map);
- link = kzalloc(sizeof(*link), GFP_USER);
+ link = kzalloc_obj(*link, GFP_USER);
if (!link) {
bpf_prog_put(prog);
err = -ENOMEM;
@@ -825,7 +824,7 @@ static long bpf_struct_ops_map_update_elem(struct bpf_map *map, void *key,
&bpf_struct_ops_link_lops, prog, prog->expected_attach_type);
*plink++ = &link->link;
- ksym = kzalloc(sizeof(*ksym), GFP_USER);
+ ksym = kzalloc_obj(*ksym, GFP_USER);
if (!ksym) {
err = -ENOMEM;
goto reset_unlock;
@@ -1376,7 +1375,7 @@ int bpf_struct_ops_link_create(union bpf_attr *attr)
goto err_out;
}
- link = kzalloc(sizeof(*link), GFP_USER);
+ link = kzalloc_obj(*link, GFP_USER);
if (!link) {
err = -ENOMEM;
goto err_out;
diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c
index 7708958e3fb8..ee9037aa9ab7 100644
--- a/kernel/bpf/btf.c
+++ b/kernel/bpf/btf.c
@@ -1729,8 +1729,8 @@ static int btf_add_type(struct btf_verifier_env *env, struct btf_type *t)
new_size = min_t(u32, BTF_MAX_TYPE,
btf->types_size + expand_by);
- new_types = kvcalloc(new_size, sizeof(*new_types),
- GFP_KERNEL | __GFP_NOWARN);
+ new_types = kvzalloc_objs(*new_types, new_size,
+ GFP_KERNEL | __GFP_NOWARN);
if (!new_types)
return -ENOMEM;
@@ -4072,7 +4072,7 @@ struct btf_record *btf_parse_fields(const struct btf *btf, const struct btf_type
/* This needs to be kzalloc to zero out padding and unused fields, see
* comment in btf_record_equal.
*/
- rec = kzalloc(struct_size(rec, fields, cnt), GFP_KERNEL_ACCOUNT | __GFP_NOWARN);
+ rec = kzalloc_flex(*rec, fields, cnt, GFP_KERNEL_ACCOUNT | __GFP_NOWARN);
if (!rec)
return ERR_PTR(-ENOMEM);
@@ -5687,7 +5687,7 @@ btf_parse_struct_metas(struct bpf_verifier_log *log, struct btf *btf)
BUILD_BUG_ON(offsetof(struct btf_id_set, cnt) != 0);
BUILD_BUG_ON(sizeof(struct btf_id_set) != sizeof(u32));
- aof = kmalloc(sizeof(*aof), GFP_KERNEL | __GFP_NOWARN);
+ aof = kmalloc_obj(*aof, GFP_KERNEL | __GFP_NOWARN);
if (!aof)
return ERR_PTR(-ENOMEM);
aof->cnt = 0;
@@ -5885,7 +5885,7 @@ static struct btf *btf_parse(const union bpf_attr *attr, bpfptr_t uattr, u32 uat
if (attr->btf_size > BTF_MAX_SIZE)
return ERR_PTR(-E2BIG);
- env = kzalloc(sizeof(*env), GFP_KERNEL | __GFP_NOWARN);
+ env = kzalloc_obj(*env, GFP_KERNEL | __GFP_NOWARN);
if (!env)
return ERR_PTR(-ENOMEM);
@@ -5897,7 +5897,7 @@ static struct btf *btf_parse(const union bpf_attr *attr, bpfptr_t uattr, u32 uat
if (err)
goto errout_free;
- btf = kzalloc(sizeof(*btf), GFP_KERNEL | __GFP_NOWARN);
+ btf = kzalloc_obj(*btf, GFP_KERNEL | __GFP_NOWARN);
if (!btf) {
err = -ENOMEM;
goto errout;
@@ -6314,7 +6314,7 @@ static struct btf *btf_parse_base(struct btf_verifier_env *env, const char *name
if (!IS_ENABLED(CONFIG_DEBUG_INFO_BTF))
return ERR_PTR(-ENOENT);
- btf = kzalloc(sizeof(*btf), GFP_KERNEL | __GFP_NOWARN);
+ btf = kzalloc_obj(*btf, GFP_KERNEL | __GFP_NOWARN);
if (!btf) {
err = -ENOMEM;
goto errout;
@@ -6365,7 +6365,7 @@ struct btf *btf_parse_vmlinux(void)
struct btf *btf;
int err;
- env = kzalloc(sizeof(*env), GFP_KERNEL | __GFP_NOWARN);
+ env = kzalloc_obj(*env, GFP_KERNEL | __GFP_NOWARN);
if (!env)
return ERR_PTR(-ENOMEM);
@@ -6415,7 +6415,7 @@ static struct btf *btf_parse_module(const char *module_name, const void *data,
if (!vmlinux_btf)
return ERR_PTR(-EINVAL);
- env = kzalloc(sizeof(*env), GFP_KERNEL | __GFP_NOWARN);
+ env = kzalloc_obj(*env, GFP_KERNEL | __GFP_NOWARN);
if (!env)
return ERR_PTR(-ENOMEM);
@@ -6432,7 +6432,7 @@ static struct btf *btf_parse_module(const char *module_name, const void *data,
base_btf = vmlinux_btf;
}
- btf = kzalloc(sizeof(*btf), GFP_KERNEL | __GFP_NOWARN);
+ btf = kzalloc_obj(*btf, GFP_KERNEL | __GFP_NOWARN);
if (!btf) {
err = -ENOMEM;
goto errout;
@@ -8306,7 +8306,7 @@ static int btf_module_notify(struct notifier_block *nb, unsigned long op,
switch (op) {
case MODULE_STATE_COMING:
- btf_mod = kzalloc(sizeof(*btf_mod), GFP_KERNEL);
+ btf_mod = kzalloc_obj(*btf_mod, GFP_KERNEL);
if (!btf_mod) {
err = -ENOMEM;
goto out;
@@ -8341,7 +8341,7 @@ static int btf_module_notify(struct notifier_block *nb, unsigned long op,
if (IS_ENABLED(CONFIG_SYSFS)) {
struct bin_attribute *attr;
- attr = kzalloc(sizeof(*attr), GFP_KERNEL);
+ attr = kzalloc_obj(*attr, GFP_KERNEL);
if (!attr)
goto out;
@@ -8689,7 +8689,7 @@ static int btf_populate_kfunc_set(struct btf *btf, enum btf_kfunc_hook hook,
}
if (!tab) {
- tab = kzalloc(sizeof(*tab), GFP_KERNEL | __GFP_NOWARN);
+ tab = kzalloc_obj(*tab, GFP_KERNEL | __GFP_NOWARN);
if (!tab)
return -ENOMEM;
btf->kfunc_set_tab = tab;
@@ -9439,7 +9439,7 @@ int bpf_core_apply(struct bpf_core_ctx *ctx, const struct bpf_core_relo *relo,
/* ~4k of temp memory necessary to convert LLVM spec like "0:1:0:5"
* into arrays of btf_ids of struct fields and array indices.
*/
- specs = kcalloc(3, sizeof(*specs), GFP_KERNEL_ACCOUNT);
+ specs = kzalloc_objs(*specs, 3, GFP_KERNEL_ACCOUNT);
if (!specs)
return -ENOMEM;
@@ -9464,7 +9464,8 @@ int bpf_core_apply(struct bpf_core_ctx *ctx, const struct bpf_core_relo *relo,
goto out;
}
if (cc->cnt) {
- cands.cands = kcalloc(cc->cnt, sizeof(*cands.cands), GFP_KERNEL_ACCOUNT);
+ cands.cands = kzalloc_objs(*cands.cands, cc->cnt,
+ GFP_KERNEL_ACCOUNT);
if (!cands.cands) {
err = -ENOMEM;
goto out;
@@ -9616,7 +9617,7 @@ btf_add_struct_ops(struct btf *btf, struct bpf_struct_ops *st_ops,
tab = btf->struct_ops_tab;
if (!tab) {
- tab = kzalloc(struct_size(tab, ops, 4), GFP_KERNEL);
+ tab = kzalloc_flex(*tab, ops, 4, GFP_KERNEL);
if (!tab)
return -ENOMEM;
tab->capacity = 4;
@@ -9705,7 +9706,7 @@ int __register_bpf_struct_ops(struct bpf_struct_ops *st_ops)
if (IS_ERR(btf))
return PTR_ERR(btf);
- log = kzalloc(sizeof(*log), GFP_KERNEL | __GFP_NOWARN);
+ log = kzalloc_obj(*log, GFP_KERNEL | __GFP_NOWARN);
if (!log) {
err = -ENOMEM;
goto errout;
diff --git a/kernel/bpf/cgroup.c b/kernel/bpf/cgroup.c
index b029f0369ecf..5d7a35e476e9 100644
--- a/kernel/bpf/cgroup.c
+++ b/kernel/bpf/cgroup.c
@@ -845,7 +845,7 @@ static int __cgroup_bpf_attach(struct cgroup *cgrp,
if (pl) {
old_prog = pl->prog;
} else {
- pl = kmalloc(sizeof(*pl), GFP_KERNEL);
+ pl = kmalloc_obj(*pl, GFP_KERNEL);
if (!pl) {
bpf_cgroup_storages_free(new_storage);
return -ENOMEM;
@@ -1488,7 +1488,7 @@ int cgroup_bpf_link_attach(const union bpf_attr *attr, struct bpf_prog *prog)
if (IS_ERR(cgrp))
return PTR_ERR(cgrp);
- link = kzalloc(sizeof(*link), GFP_USER);
+ link = kzalloc_obj(*link, GFP_USER);
if (!link) {
err = -ENOMEM;
goto out_put_cgroup;
diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c
index 5ab6bace7d0d..80b3e94f3fe3 100644
--- a/kernel/bpf/core.c
+++ b/kernel/bpf/core.c
@@ -108,7 +108,7 @@ struct bpf_prog *bpf_prog_alloc_no_stats(unsigned int size, gfp_t gfp_extra_flag
if (fp == NULL)
return NULL;
- aux = kzalloc(sizeof(*aux), bpf_memcg_flags(GFP_KERNEL | gfp_extra_flags));
+ aux = kzalloc_obj(*aux, bpf_memcg_flags(GFP_KERNEL | gfp_extra_flags));
if (aux == NULL) {
vfree(fp);
return NULL;
@@ -180,9 +180,9 @@ int bpf_prog_alloc_jited_linfo(struct bpf_prog *prog)
if (!prog->aux->nr_linfo || !prog->jit_requested)
return 0;
- prog->aux->jited_linfo = kvcalloc(prog->aux->nr_linfo,
- sizeof(*prog->aux->jited_linfo),
- bpf_memcg_flags(GFP_KERNEL | __GFP_NOWARN));
+ prog->aux->jited_linfo = kvzalloc_objs(*prog->aux->jited_linfo,
+ prog->aux->nr_linfo,
+ bpf_memcg_flags(GFP_KERNEL | __GFP_NOWARN));
if (!prog->aux->jited_linfo)
return -ENOMEM;
@@ -910,8 +910,8 @@ static struct bpf_prog_pack *alloc_new_pack(bpf_jit_fill_hole_t bpf_fill_ill_ins
struct bpf_prog_pack *pack;
int err;
- pack = kzalloc(struct_size(pack, bitmap, BITS_TO_LONGS(BPF_PROG_CHUNK_COUNT)),
- GFP_KERNEL);
+ pack = kzalloc_flex(*pack, bitmap, BITS_TO_LONGS(BPF_PROG_CHUNK_COUNT),
+ GFP_KERNEL);
if (!pack)
return NULL;
pack->ptr = bpf_jit_alloc_exec(BPF_PROG_PACK_SIZE);
@@ -2597,7 +2597,7 @@ struct bpf_prog_array *bpf_prog_array_alloc(u32 prog_cnt, gfp_t flags)
struct bpf_prog_array *p;
if (prog_cnt)
- p = kzalloc(struct_size(p, items, prog_cnt + 1), flags);
+ p = kzalloc_flex(*p, items, prog_cnt + 1, flags);
else
p = &bpf_empty_prog_array.hdr;
diff --git a/kernel/bpf/crypto.c b/kernel/bpf/crypto.c
index 7e75a1936256..2b0660c32c92 100644
--- a/kernel/bpf/crypto.c
+++ b/kernel/bpf/crypto.c
@@ -68,7 +68,7 @@ int bpf_crypto_register_type(const struct bpf_crypto_type *type)
goto unlock;
}
- node = kmalloc(sizeof(*node), GFP_KERNEL);
+ node = kmalloc_obj(*node, GFP_KERNEL);
err = -ENOMEM;
if (!node)
goto unlock;
@@ -176,7 +176,7 @@ bpf_crypto_ctx_create(const struct bpf_crypto_params *params, u32 params__sz,
goto err_module_put;
}
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
*err = -ENOMEM;
goto err_module_put;
diff --git a/kernel/bpf/helpers.c b/kernel/bpf/helpers.c
index 7ac32798eb04..42a692682f18 100644
--- a/kernel/bpf/helpers.c
+++ b/kernel/bpf/helpers.c
@@ -3993,7 +3993,7 @@ __bpf_kfunc struct bpf_key *bpf_lookup_user_key(s32 serial, u64 flags)
if (IS_ERR(key_ref))
return NULL;
- bkey = kmalloc(sizeof(*bkey), GFP_KERNEL);
+ bkey = kmalloc_obj(*bkey, GFP_KERNEL);
if (!bkey) {
key_put(key_ref_to_ptr(key_ref));
return NULL;
@@ -4033,7 +4033,7 @@ __bpf_kfunc struct bpf_key *bpf_lookup_system_key(u64 id)
if (system_keyring_id_check(id) < 0)
return NULL;
- bkey = kmalloc(sizeof(*bkey), GFP_ATOMIC);
+ bkey = kmalloc_obj(*bkey, GFP_ATOMIC);
if (!bkey)
return NULL;
diff --git a/kernel/bpf/inode.c b/kernel/bpf/inode.c
index 005ea3a2cda7..a111b0e9214e 100644
--- a/kernel/bpf/inode.c
+++ b/kernel/bpf/inode.c
@@ -195,7 +195,7 @@ static struct map_iter *map_iter_alloc(struct bpf_map *map)
{
struct map_iter *iter;
- iter = kzalloc(sizeof(*iter), GFP_KERNEL | __GFP_NOWARN);
+ iter = kzalloc_obj(*iter, GFP_KERNEL | __GFP_NOWARN);
if (!iter)
goto error;
@@ -1044,7 +1044,7 @@ static int bpf_init_fs_context(struct fs_context *fc)
{
struct bpf_mount_opts *opts;
- opts = kzalloc(sizeof(struct bpf_mount_opts), GFP_KERNEL);
+ opts = kzalloc_obj(struct bpf_mount_opts, GFP_KERNEL);
if (!opts)
return -ENOMEM;
diff --git a/kernel/bpf/liveness.c b/kernel/bpf/liveness.c
index 60db5d655495..998986853c61 100644
--- a/kernel/bpf/liveness.c
+++ b/kernel/bpf/liveness.c
@@ -193,8 +193,8 @@ static struct func_instance *__lookup_instance(struct bpf_verifier_env *env,
result = kvzalloc(size, GFP_KERNEL_ACCOUNT);
if (!result)
return ERR_PTR(-ENOMEM);
- result->must_write_set = kvcalloc(subprog_sz, sizeof(*result->must_write_set),
- GFP_KERNEL_ACCOUNT);
+ result->must_write_set = kvzalloc_objs(*result->must_write_set,
+ subprog_sz, GFP_KERNEL_ACCOUNT);
if (!result->must_write_set) {
kvfree(result);
return ERR_PTR(-ENOMEM);
@@ -217,7 +217,7 @@ static struct func_instance *lookup_instance(struct bpf_verifier_env *env,
int bpf_stack_liveness_init(struct bpf_verifier_env *env)
{
- env->liveness = kvzalloc(sizeof(*env->liveness), GFP_KERNEL_ACCOUNT);
+ env->liveness = kvzalloc_obj(*env->liveness, GFP_KERNEL_ACCOUNT);
if (!env->liveness)
return -ENOMEM;
hash_init(env->liveness->func_instances);
@@ -266,7 +266,8 @@ static struct per_frame_masks *alloc_frame_masks(struct bpf_verifier_env *env,
struct per_frame_masks *arr;
if (!instance->frames[frame]) {
- arr = kvcalloc(instance->insn_cnt, sizeof(*arr), GFP_KERNEL_ACCOUNT);
+ arr = kvzalloc_objs(*arr, instance->insn_cnt,
+ GFP_KERNEL_ACCOUNT);
instance->frames[frame] = arr;
if (!arr)
return ERR_PTR(-ENOMEM);
diff --git a/kernel/bpf/lpm_trie.c b/kernel/bpf/lpm_trie.c
index be66d7e520e0..1adeb4d3b8cf 100644
--- a/kernel/bpf/lpm_trie.c
+++ b/kernel/bpf/lpm_trie.c
@@ -683,9 +683,9 @@ static int trie_get_next_key(struct bpf_map *map, void *_key, void *_next_key)
if (!key || key->prefixlen > trie->max_prefixlen)
goto find_leftmost;
- node_stack = kmalloc_array(trie->max_prefixlen + 1,
- sizeof(struct lpm_trie_node *),
- GFP_ATOMIC | __GFP_NOWARN);
+ node_stack = kmalloc_objs(struct lpm_trie_node *,
+ trie->max_prefixlen + 1,
+ GFP_ATOMIC | __GFP_NOWARN);
if (!node_stack)
return -ENOMEM;
diff --git a/kernel/bpf/net_namespace.c b/kernel/bpf/net_namespace.c
index 8e88201c98bf..25f30f9edaef 100644
--- a/kernel/bpf/net_namespace.c
+++ b/kernel/bpf/net_namespace.c
@@ -494,7 +494,7 @@ int netns_bpf_link_create(const union bpf_attr *attr, struct bpf_prog *prog)
if (IS_ERR(net))
return PTR_ERR(net);
- net_link = kzalloc(sizeof(*net_link), GFP_USER);
+ net_link = kzalloc_obj(*net_link, GFP_USER);
if (!net_link) {
err = -ENOMEM;
goto out_put_net;
diff --git a/kernel/bpf/offload.c b/kernel/bpf/offload.c
index 227f9b5f388b..7fcbbe0ad925 100644
--- a/kernel/bpf/offload.c
+++ b/kernel/bpf/offload.c
@@ -72,7 +72,7 @@ static int __bpf_offload_dev_netdev_register(struct bpf_offload_dev *offdev,
struct bpf_offload_netdev *ondev;
int err;
- ondev = kzalloc(sizeof(*ondev), GFP_KERNEL);
+ ondev = kzalloc_obj(*ondev, GFP_KERNEL);
if (!ondev)
return -ENOMEM;
@@ -182,7 +182,7 @@ static int __bpf_prog_dev_bound_init(struct bpf_prog *prog, struct net_device *n
struct bpf_prog_offload *offload;
int err;
- offload = kzalloc(sizeof(*offload), GFP_USER);
+ offload = kzalloc_obj(*offload, GFP_USER);
if (!offload)
return -ENOMEM;
@@ -777,7 +777,7 @@ bpf_offload_dev_create(const struct bpf_prog_offload_ops *ops, void *priv)
{
struct bpf_offload_dev *offdev;
- offdev = kzalloc(sizeof(*offdev), GFP_KERNEL);
+ offdev = kzalloc_obj(*offdev, GFP_KERNEL);
if (!offdev)
return ERR_PTR(-ENOMEM);
diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
index dd89bf809772..2d14fb6d0ed0 100644
--- a/kernel/bpf/syscall.c
+++ b/kernel/bpf/syscall.c
@@ -3633,7 +3633,7 @@ static int bpf_tracing_prog_attach(struct bpf_prog *prog,
if (prog->expected_attach_type == BPF_TRACE_FSESSION) {
struct bpf_fsession_link *fslink;
- fslink = kzalloc(sizeof(*fslink), GFP_USER);
+ fslink = kzalloc_obj(*fslink, GFP_USER);
if (fslink) {
bpf_link_init(&fslink->fexit.link, BPF_LINK_TYPE_TRACING,
&bpf_tracing_link_lops, prog, attach_type);
@@ -3643,7 +3643,7 @@ static int bpf_tracing_prog_attach(struct bpf_prog *prog,
link = NULL;
}
} else {
- link = kzalloc(sizeof(*link), GFP_USER);
+ link = kzalloc_obj(*link, GFP_USER);
}
if (!link) {
err = -ENOMEM;
@@ -4183,7 +4183,7 @@ static int bpf_perf_link_attach(const union bpf_attr *attr, struct bpf_prog *pro
if (IS_ERR(perf_file))
return PTR_ERR(perf_file);
- link = kzalloc(sizeof(*link), GFP_USER);
+ link = kzalloc_obj(*link, GFP_USER);
if (!link) {
err = -ENOMEM;
goto out_put_file;
@@ -4261,7 +4261,7 @@ static int bpf_raw_tp_link_attach(struct bpf_prog *prog,
if (!btp)
return -ENOENT;
- link = kzalloc(sizeof(*link), GFP_USER);
+ link = kzalloc_obj(*link, GFP_USER);
if (!link) {
err = -ENOMEM;
goto out_put_btp;
@@ -6076,9 +6076,8 @@ static int bpf_prog_bind_map(union bpf_attr *attr)
goto out_unlock;
}
- used_maps_new = kmalloc_array(prog->aux->used_map_cnt + 1,
- sizeof(used_maps_new[0]),
- GFP_KERNEL);
+ used_maps_new = kmalloc_objs(used_maps_new[0],
+ prog->aux->used_map_cnt + 1, GFP_KERNEL);
if (!used_maps_new) {
ret = -ENOMEM;
goto out_unlock;
diff --git a/kernel/bpf/tcx.c b/kernel/bpf/tcx.c
index efd987ea6872..02db0113b8e7 100644
--- a/kernel/bpf/tcx.c
+++ b/kernel/bpf/tcx.c
@@ -321,7 +321,7 @@ int tcx_link_attach(const union bpf_attr *attr, struct bpf_prog *prog)
ret = -ENODEV;
goto out;
}
- tcx = kzalloc(sizeof(*tcx), GFP_USER);
+ tcx = kzalloc_obj(*tcx, GFP_USER);
if (!tcx) {
ret = -ENOMEM;
goto out;
diff --git a/kernel/bpf/token.c b/kernel/bpf/token.c
index 7e4aa1e44b50..e85a179523f0 100644
--- a/kernel/bpf/token.c
+++ b/kernel/bpf/token.c
@@ -172,7 +172,7 @@ int bpf_token_create(union bpf_attr *attr)
if (fdf.err)
return fdf.err;
- token = kzalloc(sizeof(*token), GFP_USER);
+ token = kzalloc_obj(*token, GFP_USER);
if (!token)
return -ENOMEM;
diff --git a/kernel/bpf/trampoline.c b/kernel/bpf/trampoline.c
index 952cd7932461..b94565843f77 100644
--- a/kernel/bpf/trampoline.c
+++ b/kernel/bpf/trampoline.c
@@ -256,7 +256,7 @@ static int direct_ops_mod(struct bpf_trampoline *tr, void *addr, bool lock_direc
*/
static int direct_ops_alloc(struct bpf_trampoline *tr)
{
- tr->fops = kzalloc(sizeof(struct ftrace_ops), GFP_KERNEL);
+ tr->fops = kzalloc_obj(struct ftrace_ops, GFP_KERNEL);
if (!tr->fops)
return -ENOMEM;
tr->fops->private = tr;
@@ -342,7 +342,7 @@ static struct bpf_trampoline *bpf_trampoline_lookup(u64 key, unsigned long ip)
goto out;
}
}
- tr = kzalloc(sizeof(*tr), GFP_KERNEL);
+ tr = kzalloc_obj(*tr, GFP_KERNEL);
if (!tr)
goto out;
if (direct_ops_alloc(tr)) {
@@ -446,7 +446,7 @@ bpf_trampoline_get_progs(const struct bpf_trampoline *tr, int *total, bool *ip_a
int kind;
*total = 0;
- tlinks = kcalloc(BPF_TRAMP_MAX, sizeof(*tlinks), GFP_KERNEL);
+ tlinks = kzalloc_objs(*tlinks, BPF_TRAMP_MAX, GFP_KERNEL);
if (!tlinks)
return ERR_PTR(-ENOMEM);
@@ -569,7 +569,7 @@ static struct bpf_tramp_image *bpf_tramp_image_alloc(u64 key, int size)
void *image;
int err = -ENOMEM;
- im = kzalloc(sizeof(*im), GFP_KERNEL);
+ im = kzalloc_obj(*im, GFP_KERNEL);
if (!im)
goto out;
@@ -928,7 +928,7 @@ static struct bpf_shim_tramp_link *cgroup_shim_alloc(const struct bpf_prog *prog
struct bpf_shim_tramp_link *shim_link = NULL;
struct bpf_prog *p;
- shim_link = kzalloc(sizeof(*shim_link), GFP_USER);
+ shim_link = kzalloc_obj(*shim_link, GFP_USER);
if (!shim_link)
return NULL;
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index dbaafb64d3bd..63f05d90e708 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -1779,7 +1779,7 @@ static int copy_verifier_state(struct bpf_verifier_state *dst_state,
for (i = 0; i <= src->curframe; i++) {
dst = dst_state->frame[i];
if (!dst) {
- dst = kzalloc(sizeof(*dst), GFP_KERNEL_ACCOUNT);
+ dst = kzalloc_obj(*dst, GFP_KERNEL_ACCOUNT);
if (!dst)
return -ENOMEM;
dst_state->frame[i] = dst;
@@ -2127,7 +2127,7 @@ static struct bpf_verifier_state *push_stack(struct bpf_verifier_env *env,
struct bpf_verifier_stack_elem *elem;
int err;
- elem = kzalloc(sizeof(struct bpf_verifier_stack_elem), GFP_KERNEL_ACCOUNT);
+ elem = kzalloc_obj(struct bpf_verifier_stack_elem, GFP_KERNEL_ACCOUNT);
if (!elem)
return ERR_PTR(-ENOMEM);
@@ -2949,7 +2949,7 @@ static struct bpf_verifier_state *push_async_cb(struct bpf_verifier_env *env,
struct bpf_verifier_stack_elem *elem;
struct bpf_func_state *frame;
- elem = kzalloc(sizeof(struct bpf_verifier_stack_elem), GFP_KERNEL_ACCOUNT);
+ elem = kzalloc_obj(struct bpf_verifier_stack_elem, GFP_KERNEL_ACCOUNT);
if (!elem)
return ERR_PTR(-ENOMEM);
@@ -2972,7 +2972,7 @@ static struct bpf_verifier_state *push_async_cb(struct bpf_verifier_env *env,
*/
elem->st.branches = 1;
elem->st.in_sleepable = is_sleepable;
- frame = kzalloc(sizeof(*frame), GFP_KERNEL_ACCOUNT);
+ frame = kzalloc_obj(*frame, GFP_KERNEL_ACCOUNT);
if (!frame)
return ERR_PTR(-ENOMEM);
init_func_state(env, frame,
@@ -3410,7 +3410,7 @@ static int add_kfunc_call(struct bpf_verifier_env *env, u32 func_id, s16 offset)
return -EINVAL;
}
- tab = kzalloc(sizeof(*tab), GFP_KERNEL_ACCOUNT);
+ tab = kzalloc_obj(*tab, GFP_KERNEL_ACCOUNT);
if (!tab)
return -ENOMEM;
prog_aux->kfunc_tab = tab;
@@ -3426,7 +3426,7 @@ static int add_kfunc_call(struct bpf_verifier_env *env, u32 func_id, s16 offset)
return 0;
if (!btf_tab && offset) {
- btf_tab = kzalloc(sizeof(*btf_tab), GFP_KERNEL_ACCOUNT);
+ btf_tab = kzalloc_obj(*btf_tab, GFP_KERNEL_ACCOUNT);
if (!btf_tab)
return -ENOMEM;
prog_aux->kfunc_btf_tab = btf_tab;
@@ -10580,7 +10580,7 @@ static int setup_func_entry(struct bpf_verifier_env *env, int subprog, int calls
}
caller = state->frame[state->curframe];
- callee = kzalloc(sizeof(*callee), GFP_KERNEL_ACCOUNT);
+ callee = kzalloc_obj(*callee, GFP_KERNEL_ACCOUNT);
if (!callee)
return -ENOMEM;
state->frame[state->curframe + 1] = callee;
@@ -18860,11 +18860,13 @@ static int check_cfg(struct bpf_verifier_env *env)
int *insn_stack, *insn_state;
int ex_insn_beg, i, ret = 0;
- insn_state = env->cfg.insn_state = kvcalloc(insn_cnt, sizeof(int), GFP_KERNEL_ACCOUNT);
+ insn_state = env->cfg.insn_state = kvzalloc_objs(int, insn_cnt,
+ GFP_KERNEL_ACCOUNT);
if (!insn_state)
return -ENOMEM;
- insn_stack = env->cfg.insn_stack = kvcalloc(insn_cnt, sizeof(int), GFP_KERNEL_ACCOUNT);
+ insn_stack = env->cfg.insn_stack = kvzalloc_objs(int, insn_cnt,
+ GFP_KERNEL_ACCOUNT);
if (!insn_stack) {
kvfree(insn_state);
return -ENOMEM;
@@ -18951,9 +18953,9 @@ static int compute_postorder(struct bpf_verifier_env *env)
int *stack = NULL, *postorder = NULL, *state = NULL;
struct bpf_iarray *succ;
- postorder = kvcalloc(env->prog->len, sizeof(int), GFP_KERNEL_ACCOUNT);
- state = kvcalloc(env->prog->len, sizeof(int), GFP_KERNEL_ACCOUNT);
- stack = kvcalloc(env->prog->len, sizeof(int), GFP_KERNEL_ACCOUNT);
+ postorder = kvzalloc_objs(int, env->prog->len, GFP_KERNEL_ACCOUNT);
+ state = kvzalloc_objs(int, env->prog->len, GFP_KERNEL_ACCOUNT);
+ stack = kvzalloc_objs(int, env->prog->len, GFP_KERNEL_ACCOUNT);
if (!postorder || !state || !stack) {
kvfree(postorder);
kvfree(state);
@@ -19147,7 +19149,8 @@ static int check_btf_func(struct bpf_verifier_env *env,
urecord = make_bpfptr(attr->func_info, uattr.is_kernel);
krecord = prog->aux->func_info;
- info_aux = kcalloc(nfuncs, sizeof(*info_aux), GFP_KERNEL_ACCOUNT | __GFP_NOWARN);
+ info_aux = kzalloc_objs(*info_aux, nfuncs,
+ GFP_KERNEL_ACCOUNT | __GFP_NOWARN);
if (!info_aux)
return -ENOMEM;
@@ -19232,8 +19235,8 @@ static int check_btf_line(struct bpf_verifier_env *env,
/* Need to zero it in case the userspace may
* pass in a smaller bpf_line_info object.
*/
- linfo = kvcalloc(nr_linfo, sizeof(struct bpf_line_info),
- GFP_KERNEL_ACCOUNT | __GFP_NOWARN);
+ linfo = kvzalloc_objs(struct bpf_line_info, nr_linfo,
+ GFP_KERNEL_ACCOUNT | __GFP_NOWARN);
if (!linfo)
return -ENOMEM;
@@ -20619,7 +20622,8 @@ static int is_state_visited(struct bpf_verifier_env *env, int insn_idx)
if (loop) {
struct bpf_scc_backedge *backedge;
- backedge = kzalloc(sizeof(*backedge), GFP_KERNEL_ACCOUNT);
+ backedge = kzalloc_obj(*backedge,
+ GFP_KERNEL_ACCOUNT);
if (!backedge)
return -ENOMEM;
err = copy_verifier_state(&backedge->state, cur);
@@ -20683,7 +20687,7 @@ static int is_state_visited(struct bpf_verifier_env *env, int insn_idx)
* When looping the sl->state.branches will be > 0 and this state
* will not be considered for equivalence until branches == 0.
*/
- new_sl = kzalloc(sizeof(struct bpf_verifier_state_list), GFP_KERNEL_ACCOUNT);
+ new_sl = kzalloc_obj(struct bpf_verifier_state_list, GFP_KERNEL_ACCOUNT);
if (!new_sl)
return -ENOMEM;
env->total_states++;
@@ -22765,7 +22769,7 @@ static int jit_subprogs(struct bpf_verifier_env *env)
goto out_undo_insn;
err = -ENOMEM;
- func = kcalloc(env->subprog_cnt, sizeof(prog), GFP_KERNEL);
+ func = kzalloc_objs(prog, env->subprog_cnt, GFP_KERNEL);
if (!func)
goto out_undo_insn;
@@ -24472,14 +24476,14 @@ static int do_check_common(struct bpf_verifier_env *env, int subprog)
env->prev_linfo = NULL;
env->pass_cnt++;
- state = kzalloc(sizeof(struct bpf_verifier_state), GFP_KERNEL_ACCOUNT);
+ state = kzalloc_obj(struct bpf_verifier_state, GFP_KERNEL_ACCOUNT);
if (!state)
return -ENOMEM;
state->curframe = 0;
state->speculative = false;
state->branches = 1;
state->in_sleepable = env->prog->sleepable;
- state->frame[0] = kzalloc(sizeof(struct bpf_func_state), GFP_KERNEL_ACCOUNT);
+ state->frame[0] = kzalloc_obj(struct bpf_func_state, GFP_KERNEL_ACCOUNT);
if (!state->frame[0]) {
kfree(state);
return -ENOMEM;
@@ -25600,7 +25604,7 @@ static int compute_live_registers(struct bpf_verifier_env *env)
* - repeat the computation while {in,out} fields changes for
* any instruction.
*/
- state = kvcalloc(insn_cnt, sizeof(*state), GFP_KERNEL_ACCOUNT);
+ state = kvzalloc_objs(*state, insn_cnt, GFP_KERNEL_ACCOUNT);
if (!state) {
err = -ENOMEM;
goto out;
@@ -25828,7 +25832,8 @@ static int compute_scc(struct bpf_verifier_env *env)
dfs_sz--;
}
}
- env->scc_info = kvcalloc(next_scc_id, sizeof(*env->scc_info), GFP_KERNEL_ACCOUNT);
+ env->scc_info = kvzalloc_objs(*env->scc_info, next_scc_id,
+ GFP_KERNEL_ACCOUNT);
if (!env->scc_info) {
err = -ENOMEM;
goto exit;
@@ -25859,7 +25864,7 @@ int bpf_check(struct bpf_prog **prog, union bpf_attr *attr, bpfptr_t uattr, __u3
/* 'struct bpf_verifier_env' can be global, but since it's not small,
* allocate/free it every time bpf_check() is called
*/
- env = kvzalloc(sizeof(struct bpf_verifier_env), GFP_KERNEL_ACCOUNT);
+ env = kvzalloc_obj(struct bpf_verifier_env, GFP_KERNEL_ACCOUNT);
if (!env)
return -ENOMEM;
@@ -25923,9 +25928,9 @@ int bpf_check(struct bpf_prog **prog, union bpf_attr *attr, bpfptr_t uattr, __u3
env->test_state_freq = attr->prog_flags & BPF_F_TEST_STATE_FREQ;
env->test_reg_invariants = attr->prog_flags & BPF_F_TEST_REG_INVARIANTS;
- env->explored_states = kvcalloc(state_htab_size(env),
- sizeof(struct list_head),
- GFP_KERNEL_ACCOUNT);
+ env->explored_states = kvzalloc_objs(struct list_head,
+ state_htab_size(env),
+ GFP_KERNEL_ACCOUNT);
ret = -ENOMEM;
if (!env->explored_states)
goto skip_full_check;
@@ -26062,9 +26067,9 @@ int bpf_check(struct bpf_prog **prog, union bpf_attr *attr, bpfptr_t uattr, __u3
if (env->used_map_cnt) {
/* if program passed verifier, update used_maps in bpf_prog_info */
- env->prog->aux->used_maps = kmalloc_array(env->used_map_cnt,
- sizeof(env->used_maps[0]),
- GFP_KERNEL_ACCOUNT);
+ env->prog->aux->used_maps = kmalloc_objs(env->used_maps[0],
+ env->used_map_cnt,
+ GFP_KERNEL_ACCOUNT);
if (!env->prog->aux->used_maps) {
ret = -ENOMEM;
@@ -26077,9 +26082,9 @@ int bpf_check(struct bpf_prog **prog, union bpf_attr *attr, bpfptr_t uattr, __u3
}
if (env->used_btf_cnt) {
/* if program passed verifier, update used_btfs in bpf_prog_aux */
- env->prog->aux->used_btfs = kmalloc_array(env->used_btf_cnt,
- sizeof(env->used_btfs[0]),
- GFP_KERNEL_ACCOUNT);
+ env->prog->aux->used_btfs = kmalloc_objs(env->used_btfs[0],
+ env->used_btf_cnt,
+ GFP_KERNEL_ACCOUNT);
if (!env->prog->aux->used_btfs) {
ret = -ENOMEM;
goto err_release_maps;
diff --git a/kernel/cgroup/cgroup-v1.c b/kernel/cgroup/cgroup-v1.c
index 724950c4b690..0449b062dd1c 100644
--- a/kernel/cgroup/cgroup-v1.c
+++ b/kernel/cgroup/cgroup-v1.c
@@ -317,7 +317,7 @@ static struct cgroup_pidlist *cgroup_pidlist_find_create(struct cgroup *cgrp,
return l;
/* entry not found; create a new one */
- l = kzalloc(sizeof(struct cgroup_pidlist), GFP_KERNEL);
+ l = kzalloc_obj(struct cgroup_pidlist, GFP_KERNEL);
if (!l)
return l;
@@ -352,7 +352,7 @@ static int pidlist_array_load(struct cgroup *cgrp, enum cgroup_filetype type,
* show up until sometime later on.
*/
length = cgroup_task_count(cgrp);
- array = kvmalloc_array(length, sizeof(pid_t), GFP_KERNEL);
+ array = kvmalloc_objs(pid_t, length, GFP_KERNEL);
if (!array)
return -ENOMEM;
/* now, populate the array */
@@ -1237,7 +1237,7 @@ static int cgroup1_root_to_use(struct fs_context *fc)
if (ctx->ns != &init_cgroup_ns)
return -EPERM;
- root = kzalloc(sizeof(*root), GFP_KERNEL);
+ root = kzalloc_obj(*root, GFP_KERNEL);
if (!root)
return -ENOMEM;
diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
index 8af4351536cf..7d220276d019 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -1168,7 +1168,7 @@ static int allocate_cgrp_cset_links(int count, struct list_head *tmp_links)
INIT_LIST_HEAD(tmp_links);
for (i = 0; i < count; i++) {
- link = kzalloc(sizeof(*link), GFP_KERNEL);
+ link = kzalloc_obj(*link, GFP_KERNEL);
if (!link) {
free_cgrp_cset_links(tmp_links);
return -ENOMEM;
@@ -1241,7 +1241,7 @@ static struct css_set *find_css_set(struct css_set *old_cset,
if (cset)
return cset;
- cset = kzalloc(sizeof(*cset), GFP_KERNEL);
+ cset = kzalloc_obj(*cset, GFP_KERNEL);
if (!cset)
return NULL;
@@ -2350,7 +2350,7 @@ static int cgroup_init_fs_context(struct fs_context *fc)
{
struct cgroup_fs_context *ctx;
- ctx = kzalloc(sizeof(struct cgroup_fs_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct cgroup_fs_context, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -4251,7 +4251,7 @@ static int cgroup_file_open(struct kernfs_open_file *of)
struct cgroup_file_ctx *ctx;
int ret;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -5844,7 +5844,7 @@ static struct cgroup *cgroup_create(struct cgroup *parent, const char *name,
int ret;
/* allocate the cgroup and its ID, 0 is reserved for the root */
- cgrp = kzalloc(struct_size(cgrp, _low_ancestors, level), GFP_KERNEL);
+ cgrp = kzalloc_flex(*cgrp, _low_ancestors, level, GFP_KERNEL);
if (!cgrp)
return ERR_PTR(-ENOMEM);
diff --git a/kernel/cgroup/cpuset-v1.c b/kernel/cgroup/cpuset-v1.c
index 7a23b9e8778f..8e7ffc205c3b 100644
--- a/kernel/cgroup/cpuset-v1.c
+++ b/kernel/cgroup/cpuset-v1.c
@@ -316,7 +316,7 @@ void cpuset1_hotplug_update_tasks(struct cpuset *cs,
css_tryget_online(&cs->css)) {
struct cpuset_remove_tasks_struct *s;
- s = kzalloc(sizeof(*s), GFP_KERNEL);
+ s = kzalloc_obj(*s, GFP_KERNEL);
if (WARN_ON_ONCE(!s)) {
css_put(&cs->css);
return;
@@ -653,7 +653,7 @@ int cpuset1_generate_sched_domains(cpumask_var_t **domains,
if (!doms)
goto done;
- dattr = kmalloc(sizeof(struct sched_domain_attr), GFP_KERNEL);
+ dattr = kmalloc_obj(struct sched_domain_attr, GFP_KERNEL);
if (dattr) {
*dattr = SD_ATTR_INIT;
update_domain_attr_tree(dattr, &top_cpuset);
@@ -664,7 +664,7 @@ int cpuset1_generate_sched_domains(cpumask_var_t **domains,
goto done;
}
- csa = kmalloc_array(nr_cpusets(), sizeof(cp), GFP_KERNEL);
+ csa = kmalloc_objs(cp, nr_cpusets(), GFP_KERNEL);
if (!csa)
goto done;
csn = 0;
@@ -727,8 +727,7 @@ int cpuset1_generate_sched_domains(cpumask_var_t **domains,
* The rest of the code, including the scheduler, can deal with
* dattr==NULL case. No need to abort if alloc fails.
*/
- dattr = kmalloc_array(ndoms, sizeof(struct sched_domain_attr),
- GFP_KERNEL);
+ dattr = kmalloc_objs(struct sched_domain_attr, ndoms, GFP_KERNEL);
for (nslot = 0, i = 0; i < csn; i++) {
nslot_update = 0;
diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index 7607dfe516e6..384d9d6e323b 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -536,7 +536,7 @@ static struct cpuset *dup_or_alloc_cpuset(struct cpuset *cs)
/* Allocate base structure */
trial = cs ? kmemdup(cs, sizeof(*cs), GFP_KERNEL) :
- kzalloc(sizeof(*cs), GFP_KERNEL);
+ kzalloc_obj(*cs, GFP_KERNEL);
if (!trial)
return NULL;
@@ -791,7 +791,7 @@ static int generate_sched_domains(cpumask_var_t **domains,
goto generate_doms;
}
- csa = kmalloc_array(nr_cpusets(), sizeof(cp), GFP_KERNEL);
+ csa = kmalloc_objs(cp, nr_cpusets(), GFP_KERNEL);
if (!csa)
goto done;
@@ -835,8 +835,7 @@ static int generate_sched_domains(cpumask_var_t **domains,
* The rest of the code, including the scheduler, can deal with
* dattr==NULL case. No need to abort if alloc fails.
*/
- dattr = kmalloc_array(ndoms, sizeof(struct sched_domain_attr),
- GFP_KERNEL);
+ dattr = kmalloc_objs(struct sched_domain_attr, ndoms, GFP_KERNEL);
/*
* Cgroup v2 doesn't support domain attributes, just set all of them
@@ -2479,7 +2478,7 @@ static void cpuset_migrate_mm(struct mm_struct *mm, const nodemask_t *from,
return;
}
- mwork = kzalloc(sizeof(*mwork), GFP_KERNEL);
+ mwork = kzalloc_obj(*mwork, GFP_KERNEL);
if (mwork) {
mwork->mm = mm;
mwork->from = *from;
@@ -2501,7 +2500,7 @@ static void schedule_flush_migrate_mm(void)
{
struct callback_head *flush_cb;
- flush_cb = kzalloc(sizeof(struct callback_head), GFP_KERNEL);
+ flush_cb = kzalloc_obj(struct callback_head, GFP_KERNEL);
if (!flush_cb)
return;
diff --git a/kernel/cgroup/debug.c b/kernel/cgroup/debug.c
index a5490097fe52..78429dd9e9c6 100644
--- a/kernel/cgroup/debug.c
+++ b/kernel/cgroup/debug.c
@@ -14,7 +14,7 @@
static struct cgroup_subsys_state *
debug_css_alloc(struct cgroup_subsys_state *parent_css)
{
- struct cgroup_subsys_state *css = kzalloc(sizeof(*css), GFP_KERNEL);
+ struct cgroup_subsys_state *css = kzalloc_obj(*css, GFP_KERNEL);
if (!css)
return ERR_PTR(-ENOMEM);
diff --git a/kernel/cgroup/dmem.c b/kernel/cgroup/dmem.c
index 1ea6afffa985..0c8c0a135231 100644
--- a/kernel/cgroup/dmem.c
+++ b/kernel/cgroup/dmem.c
@@ -222,7 +222,7 @@ static void dmemcs_free(struct cgroup_subsys_state *css)
static struct cgroup_subsys_state *
dmemcs_alloc(struct cgroup_subsys_state *parent_css)
{
- struct dmemcg_state *dmemcs = kzalloc(sizeof(*dmemcs), GFP_KERNEL);
+ struct dmemcg_state *dmemcs = kzalloc_obj(*dmemcs, GFP_KERNEL);
if (!dmemcs)
return ERR_PTR(-ENOMEM);
@@ -359,7 +359,7 @@ alloc_pool_single(struct dmemcg_state *dmemcs, struct dmem_cgroup_region *region
struct dmem_cgroup_pool_state *pool, *ppool = NULL;
if (!*allocpool) {
- pool = kzalloc(sizeof(*pool), GFP_NOWAIT);
+ pool = kzalloc_obj(*pool, GFP_NOWAIT);
if (!pool)
return ERR_PTR(-ENOMEM);
} else {
@@ -521,7 +521,7 @@ struct dmem_cgroup_region *dmem_cgroup_register_region(u64 size, const char *fmt
if (!region_name)
return ERR_PTR(-ENOMEM);
- ret = kzalloc(sizeof(*ret), GFP_KERNEL);
+ ret = kzalloc_obj(*ret, GFP_KERNEL);
if (!ret) {
kfree(region_name);
return ERR_PTR(-ENOMEM);
@@ -597,7 +597,7 @@ get_cg_pool_unlocked(struct dmemcg_state *cg, struct dmem_cgroup_region *region)
if (WARN_ON(allocpool))
continue;
- allocpool = kzalloc(sizeof(*allocpool), GFP_KERNEL);
+ allocpool = kzalloc_obj(*allocpool, GFP_KERNEL);
if (allocpool) {
pool = NULL;
continue;
diff --git a/kernel/cgroup/legacy_freezer.c b/kernel/cgroup/legacy_freezer.c
index 817c33450fee..85344b107873 100644
--- a/kernel/cgroup/legacy_freezer.c
+++ b/kernel/cgroup/legacy_freezer.c
@@ -81,7 +81,7 @@ freezer_css_alloc(struct cgroup_subsys_state *parent_css)
{
struct freezer *freezer;
- freezer = kzalloc(sizeof(struct freezer), GFP_KERNEL);
+ freezer = kzalloc_obj(struct freezer, GFP_KERNEL);
if (!freezer)
return ERR_PTR(-ENOMEM);
diff --git a/kernel/cgroup/misc.c b/kernel/cgroup/misc.c
index 6a01d91ea4cb..7c3ae3a76c8d 100644
--- a/kernel/cgroup/misc.c
+++ b/kernel/cgroup/misc.c
@@ -445,7 +445,7 @@ misc_cg_alloc(struct cgroup_subsys_state *parent_css)
if (!parent_css) {
cg = &root_cg;
} else {
- cg = kzalloc(sizeof(*cg), GFP_KERNEL);
+ cg = kzalloc_obj(*cg, GFP_KERNEL);
if (!cg)
return ERR_PTR(-ENOMEM);
}
diff --git a/kernel/cgroup/namespace.c b/kernel/cgroup/namespace.c
index db9617556dd7..ea4ee13936be 100644
--- a/kernel/cgroup/namespace.c
+++ b/kernel/cgroup/namespace.c
@@ -24,7 +24,7 @@ static struct cgroup_namespace *alloc_cgroup_ns(void)
struct cgroup_namespace *new_ns __free(kfree) = NULL;
int ret;
- new_ns = kzalloc(sizeof(struct cgroup_namespace), GFP_KERNEL_ACCOUNT);
+ new_ns = kzalloc_obj(struct cgroup_namespace, GFP_KERNEL_ACCOUNT);
if (!new_ns)
return ERR_PTR(-ENOMEM);
ret = ns_common_init(new_ns);
diff --git a/kernel/cgroup/pids.c b/kernel/cgroup/pids.c
index 8f61114c36dd..6221573fc6ad 100644
--- a/kernel/cgroup/pids.c
+++ b/kernel/cgroup/pids.c
@@ -80,7 +80,7 @@ pids_css_alloc(struct cgroup_subsys_state *parent)
{
struct pids_cgroup *pids;
- pids = kzalloc(sizeof(struct pids_cgroup), GFP_KERNEL);
+ pids = kzalloc_obj(struct pids_cgroup, GFP_KERNEL);
if (!pids)
return ERR_PTR(-ENOMEM);
diff --git a/kernel/cgroup/rdma.c b/kernel/cgroup/rdma.c
index ef5878fb2005..9d3693574b11 100644
--- a/kernel/cgroup/rdma.c
+++ b/kernel/cgroup/rdma.c
@@ -134,7 +134,7 @@ get_cg_rpool_locked(struct rdma_cgroup *cg, struct rdmacg_device *device)
if (rpool)
return rpool;
- rpool = kzalloc(sizeof(*rpool), GFP_KERNEL);
+ rpool = kzalloc_obj(*rpool, GFP_KERNEL);
if (!rpool)
return ERR_PTR(-ENOMEM);
@@ -443,7 +443,7 @@ static ssize_t rdmacg_resource_set_max(struct kernfs_open_file *of,
goto err;
}
- new_limits = kcalloc(RDMACG_RESOURCE_MAX, sizeof(int), GFP_KERNEL);
+ new_limits = kzalloc_objs(int, RDMACG_RESOURCE_MAX, GFP_KERNEL);
if (!new_limits) {
ret = -ENOMEM;
goto err;
@@ -566,7 +566,7 @@ rdmacg_css_alloc(struct cgroup_subsys_state *parent)
{
struct rdma_cgroup *cg;
- cg = kzalloc(sizeof(*cg), GFP_KERNEL);
+ cg = kzalloc_obj(*cg, GFP_KERNEL);
if (!cg)
return ERR_PTR(-ENOMEM);
diff --git a/kernel/crash_core.c b/kernel/crash_core.c
index 3952b3e102e0..2146ca0f0ed8 100644
--- a/kernel/crash_core.c
+++ b/kernel/crash_core.c
@@ -368,7 +368,7 @@ static int __crash_shrink_memory(struct resource *old_res,
{
struct resource *ram_res;
- ram_res = kzalloc(sizeof(*ram_res), GFP_KERNEL);
+ ram_res = kzalloc_obj(*ram_res, GFP_KERNEL);
if (!ram_res)
return -ENOMEM;
diff --git a/kernel/crash_dump_dm_crypt.c b/kernel/crash_dump_dm_crypt.c
index 37129243054d..13191d7c7a32 100644
--- a/kernel/crash_dump_dm_crypt.c
+++ b/kernel/crash_dump_dm_crypt.c
@@ -252,7 +252,7 @@ static struct config_item *config_keys_make_item(struct config_group *group,
return ERR_PTR(-EINVAL);
}
- config_key = kzalloc(sizeof(struct config_key), GFP_KERNEL);
+ config_key = kzalloc_obj(struct config_key, GFP_KERNEL);
if (!config_key)
return ERR_PTR(-ENOMEM);
diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
index 314787fb8ce7..ddce56b47b25 100644
--- a/kernel/debug/kdb/kdb_main.c
+++ b/kernel/debug/kdb/kdb_main.c
@@ -661,7 +661,7 @@ static int kdb_defcmd2(const char *cmdstr, const char *argv0)
return 0;
}
- kms = kmalloc(sizeof(*kms), GFP_KDB);
+ kms = kmalloc_obj(*kms, GFP_KDB);
if (!kms) {
kdb_printf("Could not allocate new kdb macro command: %s\n",
cmdstr);
@@ -707,7 +707,7 @@ static int kdb_defcmd(int argc, const char **argv)
kdb_printf("Command only available during kdb_init()\n");
return KDB_NOTIMP;
}
- kdb_macro = kzalloc(sizeof(*kdb_macro), GFP_KDB);
+ kdb_macro = kzalloc_obj(*kdb_macro, GFP_KDB);
if (!kdb_macro)
goto fail_defcmd;
diff --git a/kernel/dma/coherent.c b/kernel/dma/coherent.c
index 77c8d9487a9a..d580ab6d2e33 100644
--- a/kernel/dma/coherent.c
+++ b/kernel/dma/coherent.c
@@ -49,7 +49,7 @@ static struct dma_coherent_mem *dma_init_coherent_memory(phys_addr_t phys_addr,
if (!mem_base)
return ERR_PTR(-EINVAL);
- dma_mem = kzalloc(sizeof(struct dma_coherent_mem), GFP_KERNEL);
+ dma_mem = kzalloc_obj(struct dma_coherent_mem, GFP_KERNEL);
if (!dma_mem)
goto out_unmap_membase;
dma_mem->bitmap = bitmap_zalloc(pages, GFP_KERNEL);
diff --git a/kernel/dma/debug.c b/kernel/dma/debug.c
index 43d6a996d7a7..3be263d7afd6 100644
--- a/kernel/dma/debug.c
+++ b/kernel/dma/debug.c
@@ -900,7 +900,7 @@ void dma_debug_add_bus(const struct bus_type *bus)
if (dma_debug_disabled())
return;
- nb = kzalloc(sizeof(struct notifier_block), GFP_KERNEL);
+ nb = kzalloc_obj(struct notifier_block, GFP_KERNEL);
if (nb == NULL) {
pr_err("dma_debug_add_bus: out of memory\n");
return;
diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index c9fa983990cd..280ec952c5e1 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -654,7 +654,7 @@ int dma_direct_set_offset(struct device *dev, phys_addr_t cpu_start,
if (!offset)
return 0;
- map = kcalloc(2, sizeof(*map), GFP_KERNEL);
+ map = kzalloc_objs(*map, 2, GFP_KERNEL);
if (!map)
return -ENOMEM;
map[0].cpu_start = cpu_start;
diff --git a/kernel/dma/map_benchmark.c b/kernel/dma/map_benchmark.c
index 794041a39e65..48ab3d957960 100644
--- a/kernel/dma/map_benchmark.c
+++ b/kernel/dma/map_benchmark.c
@@ -121,7 +121,7 @@ static int do_map_benchmark(struct map_benchmark_data *map)
int ret = 0;
int i;
- tsk = kmalloc_array(threads, sizeof(*tsk), GFP_KERNEL);
+ tsk = kmalloc_objs(*tsk, threads, GFP_KERNEL);
if (!tsk)
return -ENOMEM;
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index ee29c47781e3..3928a509c44c 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -768,7 +768,7 @@ static struct sg_table *alloc_single_sgt(struct device *dev, size_t size,
struct sg_table *sgt;
struct page *page;
- sgt = kmalloc(sizeof(*sgt), gfp);
+ sgt = kmalloc_obj(*sgt, gfp);
if (!sgt)
return NULL;
if (sg_alloc_table(sgt, 1, gfp))
diff --git a/kernel/dma/remap.c b/kernel/dma/remap.c
index b7c1c0c92d0c..b53e66417e5f 100644
--- a/kernel/dma/remap.c
+++ b/kernel/dma/remap.c
@@ -45,7 +45,7 @@ void *dma_common_contiguous_remap(struct page *page, size_t size,
void *vaddr;
int i;
- pages = kvmalloc_array(count, sizeof(struct page *), GFP_KERNEL);
+ pages = kvmalloc_objs(struct page *, count, GFP_KERNEL);
if (!pages)
return NULL;
for (i = 0; i < count; i++)
diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c
index a547c7693135..cb8efc059e6a 100644
--- a/kernel/dma/swiotlb.c
+++ b/kernel/dma/swiotlb.c
@@ -1809,19 +1809,18 @@ static int rmem_swiotlb_device_init(struct reserved_mem *rmem,
if (!mem) {
struct io_tlb_pool *pool;
- mem = kzalloc(sizeof(*mem), GFP_KERNEL);
+ mem = kzalloc_obj(*mem, GFP_KERNEL);
if (!mem)
return -ENOMEM;
pool = &mem->defpool;
- pool->slots = kcalloc(nslabs, sizeof(*pool->slots), GFP_KERNEL);
+ pool->slots = kzalloc_objs(*pool->slots, nslabs, GFP_KERNEL);
if (!pool->slots) {
kfree(mem);
return -ENOMEM;
}
- pool->areas = kcalloc(nareas, sizeof(*pool->areas),
- GFP_KERNEL);
+ pool->areas = kzalloc_objs(*pool->areas, nareas, GFP_KERNEL);
if (!pool->areas) {
kfree(pool->slots);
kfree(mem);
diff --git a/kernel/events/core.c b/kernel/events/core.c
index e18119f30c29..33c84a605799 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -5058,7 +5058,7 @@ alloc_perf_context(struct task_struct *task)
{
struct perf_event_context *ctx;
- ctx = kzalloc(sizeof(struct perf_event_context), GFP_KERNEL);
+ ctx = kzalloc_obj(struct perf_event_context, GFP_KERNEL);
if (!ctx)
return NULL;
@@ -5198,7 +5198,7 @@ find_get_pmu_context(struct pmu *pmu, struct perf_event_context *ctx,
return epc;
}
- new = kzalloc(sizeof(*epc), GFP_KERNEL);
+ new = kzalloc_obj(*epc, GFP_KERNEL);
if (!new)
return ERR_PTR(-ENOMEM);
@@ -5374,7 +5374,7 @@ alloc_perf_ctx_data(struct kmem_cache *ctx_cache, bool global)
{
struct perf_ctx_data *cd;
- cd = kzalloc(sizeof(*cd), GFP_KERNEL);
+ cd = kzalloc_obj(*cd, GFP_KERNEL);
if (!cd)
return NULL;
@@ -11111,7 +11111,7 @@ static int swevent_hlist_get_cpu(int cpu)
cpumask_test_cpu(cpu, perf_online_mask)) {
struct swevent_hlist *hlist;
- hlist = kzalloc(sizeof(*hlist), GFP_KERNEL);
+ hlist = kzalloc_obj(*hlist, GFP_KERNEL);
if (!hlist) {
err = -ENOMEM;
goto exit;
@@ -12634,7 +12634,7 @@ static int pmu_dev_alloc(struct pmu *pmu)
{
int ret = -ENOMEM;
- pmu->dev = kzalloc(sizeof(struct device), GFP_KERNEL);
+ pmu->dev = kzalloc_obj(struct device, GFP_KERNEL);
if (!pmu->dev)
goto out;
@@ -15269,7 +15269,7 @@ perf_cgroup_css_alloc(struct cgroup_subsys_state *parent_css)
{
struct perf_cgroup *jc;
- jc = kzalloc(sizeof(*jc), GFP_KERNEL);
+ jc = kzalloc_obj(*jc, GFP_KERNEL);
if (!jc)
return ERR_PTR(-ENOMEM);
diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c
index 8ec2cb688903..6c44fbdcfa4d 100644
--- a/kernel/events/hw_breakpoint.c
+++ b/kernel/events/hw_breakpoint.c
@@ -185,7 +185,8 @@ static inline int hw_breakpoint_slots_cached(int type)
static __init bool
bp_slots_histogram_alloc(struct bp_slots_histogram *hist, enum bp_type_idx type)
{
- hist->count = kcalloc(hw_breakpoint_slots_cached(type), sizeof(*hist->count), GFP_KERNEL);
+ hist->count = kzalloc_objs(*hist->count,
+ hw_breakpoint_slots_cached(type), GFP_KERNEL);
return hist->count;
}
diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
index 424ef2235b07..d39dcc19d21e 100644
--- a/kernel/events/uprobes.c
+++ b/kernel/events/uprobes.c
@@ -238,7 +238,7 @@ static int delayed_uprobe_add(struct uprobe *uprobe, struct mm_struct *mm)
if (delayed_uprobe_check(uprobe, mm))
return 0;
- du = kzalloc(sizeof(*du), GFP_KERNEL);
+ du = kzalloc_obj(*du, GFP_KERNEL);
if (!du)
return -ENOMEM;
@@ -994,7 +994,7 @@ static struct uprobe *alloc_uprobe(struct inode *inode, loff_t offset,
{
struct uprobe *uprobe, *cur_uprobe;
- uprobe = kzalloc(sizeof(struct uprobe), GFP_KERNEL);
+ uprobe = kzalloc_obj(struct uprobe, GFP_KERNEL);
if (!uprobe)
return ERR_PTR(-ENOMEM);
@@ -1219,8 +1219,8 @@ build_map_info(struct address_space *mapping, loff_t offset, bool is_register)
* Needs GFP_NOWAIT to avoid i_mmap_rwsem recursion through
* reclaim. This is optimistic, no harm done if it fails.
*/
- prev = kmalloc(sizeof(struct map_info),
- GFP_NOWAIT | __GFP_NOMEMALLOC);
+ prev = kmalloc_obj(struct map_info,
+ GFP_NOWAIT | __GFP_NOMEMALLOC);
if (prev)
prev->next = NULL;
}
@@ -1252,7 +1252,7 @@ build_map_info(struct address_space *mapping, loff_t offset, bool is_register)
}
do {
- info = kmalloc(sizeof(struct map_info), GFP_KERNEL);
+ info = kmalloc_obj(struct map_info, GFP_KERNEL);
if (!info) {
curr = ERR_PTR(-ENOMEM);
goto out;
@@ -1755,7 +1755,7 @@ static struct xol_area *__create_xol_area(unsigned long vaddr)
struct xol_area *area;
void *insns;
- area = kzalloc(sizeof(*area), GFP_KERNEL);
+ area = kzalloc_obj(*area, GFP_KERNEL);
if (unlikely(!area))
goto out;
@@ -2069,7 +2069,7 @@ static struct uprobe_task *alloc_utask(void)
{
struct uprobe_task *utask;
- utask = kzalloc(sizeof(*utask), GFP_KERNEL);
+ utask = kzalloc_obj(*utask, GFP_KERNEL);
if (!utask)
return NULL;
@@ -2102,7 +2102,7 @@ static struct return_instance *alloc_return_instance(struct uprobe_task *utask)
if (ri)
return ri;
- ri = kzalloc(sizeof(*ri), GFP_KERNEL);
+ ri = kzalloc_obj(*ri, GFP_KERNEL);
if (!ri)
return ZERO_SIZE_PTR;
diff --git a/kernel/fail_function.c b/kernel/fail_function.c
index d971a0189319..18993fcbdbda 100644
--- a/kernel/fail_function.c
+++ b/kernel/fail_function.c
@@ -57,7 +57,7 @@ static struct fei_attr *fei_attr_new(const char *sym, unsigned long addr)
{
struct fei_attr *attr;
- attr = kzalloc(sizeof(*attr), GFP_KERNEL);
+ attr = kzalloc_obj(*attr, GFP_KERNEL);
if (attr) {
attr->kp.symbol_name = kstrdup(sym, GFP_KERNEL);
if (!attr->kp.symbol_name) {
diff --git a/kernel/futex/pi.c b/kernel/futex/pi.c
index dacb2330f1fb..a73b6c713d83 100644
--- a/kernel/futex/pi.c
+++ b/kernel/futex/pi.c
@@ -17,7 +17,7 @@ int refill_pi_state_cache(void)
if (likely(current->pi_state_cache))
return 0;
- pi_state = kzalloc(sizeof(*pi_state), GFP_KERNEL);
+ pi_state = kzalloc_obj(*pi_state, GFP_KERNEL);
if (!pi_state)
return -ENOMEM;
diff --git a/kernel/futex/syscalls.c b/kernel/futex/syscalls.c
index 880c9bf2f315..aec0495adabe 100644
--- a/kernel/futex/syscalls.c
+++ b/kernel/futex/syscalls.c
@@ -333,7 +333,7 @@ SYSCALL_DEFINE5(futex_waitv, struct futex_waitv __user *, waiters,
if (timeout && (ret = futex2_setup_timeout(timeout, clockid, &to)))
return ret;
- futexv = kcalloc(nr_futexes, sizeof(*futexv), GFP_KERNEL);
+ futexv = kzalloc_objs(*futexv, nr_futexes, GFP_KERNEL);
if (!futexv) {
ret = -ENOMEM;
goto destroy_timer;
diff --git a/kernel/gcov/clang.c b/kernel/gcov/clang.c
index 8b888a6193cc..4cfdeb2c9dc2 100644
--- a/kernel/gcov/clang.c
+++ b/kernel/gcov/clang.c
@@ -81,7 +81,7 @@ static LIST_HEAD(clang_gcov_list);
void llvm_gcov_init(llvm_gcov_callback writeout, llvm_gcov_callback flush)
{
- struct gcov_info *info = kzalloc(sizeof(*info), GFP_KERNEL);
+ struct gcov_info *info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return;
@@ -112,7 +112,7 @@ EXPORT_SYMBOL(llvm_gcda_start_file);
void llvm_gcda_emit_function(u32 ident, u32 func_checksum, u32 cfg_checksum)
{
- struct gcov_fn_info *info = kzalloc(sizeof(*info), GFP_KERNEL);
+ struct gcov_fn_info *info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return;
diff --git a/kernel/gcov/fs.c b/kernel/gcov/fs.c
index 01520689b57c..8430f5cd21b6 100644
--- a/kernel/gcov/fs.c
+++ b/kernel/gcov/fs.c
@@ -116,7 +116,7 @@ static struct gcov_iterator *gcov_iter_new(struct gcov_info *info)
/* Dry-run to get the actual buffer size. */
size = convert_to_gcda(NULL, info);
- iter = kvmalloc(struct_size(iter, buffer, size), GFP_KERNEL);
+ iter = kvmalloc_flex(*iter, buffer, size, GFP_KERNEL);
if (!iter)
return NULL;
@@ -482,7 +482,7 @@ static void add_links(struct gcov_node *node, struct dentry *parent)
for (num = 0; gcov_link[num].ext; num++)
/* Nothing. */;
- node->links = kcalloc(num, sizeof(struct dentry *), GFP_KERNEL);
+ node->links = kzalloc_objs(struct dentry *, num, GFP_KERNEL);
if (!node->links)
return;
for (i = 0; i < num; i++) {
@@ -545,8 +545,8 @@ static struct gcov_node *new_node(struct gcov_node *parent,
if (!node)
goto err_nomem;
if (info) {
- node->loaded_info = kcalloc(1, sizeof(struct gcov_info *),
- GFP_KERNEL);
+ node->loaded_info = kzalloc_objs(struct gcov_info *, 1,
+ GFP_KERNEL);
if (!node->loaded_info)
goto err_nomem;
}
@@ -731,7 +731,7 @@ static void add_info(struct gcov_node *node, struct gcov_info *info)
* case the new data set is incompatible, the node only contains
* unloaded data sets and there's not enough memory for the array.
*/
- loaded_info = kcalloc(num + 1, sizeof(struct gcov_info *), GFP_KERNEL);
+ loaded_info = kzalloc_objs(struct gcov_info *, num + 1, GFP_KERNEL);
if (!loaded_info) {
pr_warn("could not add '%s' (out of memory)\n",
gcov_info_filename(info));
diff --git a/kernel/gcov/gcc_4_7.c b/kernel/gcov/gcc_4_7.c
index ffde93d051a4..46dbba7b0efd 100644
--- a/kernel/gcov/gcc_4_7.c
+++ b/kernel/gcov/gcc_4_7.c
@@ -298,8 +298,8 @@ struct gcov_info *gcov_info_dup(struct gcov_info *info)
if (!dup->filename)
goto err_free;
- dup->functions = kcalloc(info->n_functions,
- sizeof(struct gcov_fn_info *), GFP_KERNEL);
+ dup->functions = kzalloc_objs(struct gcov_fn_info *, info->n_functions,
+ GFP_KERNEL);
if (!dup->functions)
goto err_free;
diff --git a/kernel/groups.c b/kernel/groups.c
index 9b43da22647d..b5e3be6a6b1f 100644
--- a/kernel/groups.c
+++ b/kernel/groups.c
@@ -15,7 +15,7 @@
struct group_info *groups_alloc(int gidsetsize)
{
struct group_info *gi;
- gi = kvmalloc(struct_size(gi, gid, gidsetsize), GFP_KERNEL_ACCOUNT);
+ gi = kvmalloc_flex(*gi, gid, gidsetsize, GFP_KERNEL_ACCOUNT);
if (!gi)
return NULL;
diff --git a/kernel/irq/affinity.c b/kernel/irq/affinity.c
index 4013e6ad2b2f..cf6729888ee3 100644
--- a/kernel/irq/affinity.c
+++ b/kernel/irq/affinity.c
@@ -56,7 +56,7 @@ irq_create_affinity_masks(unsigned int nvecs, struct irq_affinity *affd)
if (!affvecs)
return NULL;
- masks = kcalloc(nvecs, sizeof(*masks), GFP_KERNEL);
+ masks = kzalloc_objs(*masks, nvecs, GFP_KERNEL);
if (!masks)
return NULL;
diff --git a/kernel/irq/generic-chip.c b/kernel/irq/generic-chip.c
index 3cd0c40282c0..da1da1a4b2d0 100644
--- a/kernel/irq/generic-chip.c
+++ b/kernel/irq/generic-chip.c
@@ -240,7 +240,7 @@ irq_alloc_generic_chip(const char *name, int num_ct, unsigned int irq_base,
{
struct irq_chip_generic *gc;
- gc = kzalloc(struct_size(gc, chip_types, num_ct), GFP_KERNEL);
+ gc = kzalloc_flex(*gc, chip_types, num_ct, GFP_KERNEL);
if (gc) {
irq_init_generic_chip(gc, name, num_ct, irq_base, reg_base,
handler);
diff --git a/kernel/irq/irq_sim.c b/kernel/irq/irq_sim.c
index ae4c9cbd1b4b..59b84a10465c 100644
--- a/kernel/irq/irq_sim.c
+++ b/kernel/irq/irq_sim.c
@@ -148,7 +148,7 @@ static int irq_sim_domain_map(struct irq_domain *domain,
struct irq_sim_work_ctx *work_ctx = domain->host_data;
struct irq_sim_irq_ctx *irq_ctx;
- irq_ctx = kzalloc(sizeof(*irq_ctx), GFP_KERNEL);
+ irq_ctx = kzalloc_obj(*irq_ctx, GFP_KERNEL);
if (!irq_ctx)
return -ENOMEM;
@@ -202,7 +202,7 @@ struct irq_domain *irq_domain_create_sim_full(struct fwnode_handle *fwnode,
void *data)
{
struct irq_sim_work_ctx *work_ctx __free(kfree) =
- kzalloc(sizeof(*work_ctx), GFP_KERNEL);
+ kzalloc_obj(*work_ctx, GFP_KERNEL);
if (!work_ctx)
return ERR_PTR(-ENOMEM);
diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c
index 022b3741dd7a..ddc9d01b3091 100644
--- a/kernel/irq/irqdesc.c
+++ b/kernel/irq/irqdesc.c
@@ -969,7 +969,7 @@ int irq_set_percpu_devid(unsigned int irq)
if (!desc || desc->percpu_enabled)
return -EINVAL;
- desc->percpu_enabled = kzalloc(sizeof(*desc->percpu_enabled), GFP_KERNEL);
+ desc->percpu_enabled = kzalloc_obj(*desc->percpu_enabled, GFP_KERNEL);
if (!desc->percpu_enabled)
return -ENOMEM;
diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
index c2258b133939..857fcd74ebda 100644
--- a/kernel/irq/irqdomain.c
+++ b/kernel/irq/irqdomain.c
@@ -92,7 +92,7 @@ struct fwnode_handle *__irq_domain_alloc_fwnode(unsigned int type, int id,
struct irqchip_fwid *fwid;
char *n;
- fwid = kzalloc(sizeof(*fwid), GFP_KERNEL);
+ fwid = kzalloc_obj(*fwid, GFP_KERNEL);
switch (type) {
case IRQCHIP_FWNODE_NAMED:
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index cded3d960eb7..2b05c45be1b3 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -1332,7 +1332,7 @@ static int irq_setup_forced_threading(struct irqaction *new)
*/
if (new->handler && new->thread_fn) {
/* Allocate the secondary action */
- new->secondary = kzalloc(sizeof(struct irqaction), GFP_KERNEL);
+ new->secondary = kzalloc_obj(struct irqaction, GFP_KERNEL);
if (!new->secondary)
return -ENOMEM;
new->secondary->handler = irq_forced_secondary_handler;
@@ -2156,7 +2156,7 @@ int request_threaded_irq(unsigned int irq, irq_handler_t handler,
handler = irq_default_primary_handler;
}
- action = kzalloc(sizeof(struct irqaction), GFP_KERNEL);
+ action = kzalloc_obj(struct irqaction, GFP_KERNEL);
if (!action)
return -ENOMEM;
@@ -2486,7 +2486,7 @@ struct irqaction *create_percpu_irqaction(irq_handler_t handler, unsigned long f
if (!affinity)
affinity = cpu_possible_mask;
- action = kzalloc(sizeof(struct irqaction), GFP_KERNEL);
+ action = kzalloc_obj(struct irqaction, GFP_KERNEL);
if (!action)
return NULL;
diff --git a/kernel/irq/matrix.c b/kernel/irq/matrix.c
index a50f2305a8dc..8151c14ca35a 100644
--- a/kernel/irq/matrix.c
+++ b/kernel/irq/matrix.c
@@ -51,7 +51,7 @@ __init struct irq_matrix *irq_alloc_matrix(unsigned int matrix_bits,
unsigned int cpu, matrix_size = BITS_TO_LONGS(matrix_bits);
struct irq_matrix *m;
- m = kzalloc(struct_size(m, scratch_map, matrix_size * 2), GFP_KERNEL);
+ m = kzalloc_flex(*m, scratch_map, matrix_size * 2, GFP_KERNEL);
if (!m)
return NULL;
diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c
index 68886881fe10..e4bae8f1c414 100644
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -76,7 +76,7 @@ static int msi_domain_prepare_irqs(struct irq_domain *domain, struct device *dev
static struct msi_desc *msi_alloc_desc(struct device *dev, int nvec,
const struct irq_affinity_desc *affinity)
{
- struct msi_desc *desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ struct msi_desc *desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
return NULL;
@@ -530,7 +530,7 @@ static int msi_sysfs_populate_desc(struct device *dev, struct msi_desc *desc)
struct device_attribute *attrs;
int ret, i;
- attrs = kcalloc(desc->nvec_used, sizeof(*attrs), GFP_KERNEL);
+ attrs = kzalloc_objs(*attrs, desc->nvec_used, GFP_KERNEL);
if (!attrs)
return -ENOMEM;
diff --git a/kernel/kallsyms_selftest.c b/kernel/kallsyms_selftest.c
index 2b082a7e24a2..d2aeb6b7c393 100644
--- a/kernel/kallsyms_selftest.c
+++ b/kernel/kallsyms_selftest.c
@@ -264,7 +264,7 @@ static int test_kallsyms_basic_function(void)
char namebuf[KSYM_NAME_LEN];
struct test_stat *stat, *stat2;
- stat = kmalloc_array(2, sizeof(*stat), GFP_KERNEL);
+ stat = kmalloc_objs(*stat, 2, GFP_KERNEL);
if (!stat)
return -ENOMEM;
stat2 = stat + 1;
diff --git a/kernel/kcov.c b/kernel/kcov.c
index 5397d0c14127..b9d4db7ea439 100644
--- a/kernel/kcov.c
+++ b/kernel/kcov.c
@@ -122,7 +122,7 @@ static struct kcov_remote *kcov_remote_add(struct kcov *kcov, u64 handle)
if (kcov_remote_find(handle))
return ERR_PTR(-EEXIST);
- remote = kmalloc(sizeof(*remote), GFP_ATOMIC);
+ remote = kmalloc_obj(*remote, GFP_ATOMIC);
if (!remote)
return ERR_PTR(-ENOMEM);
remote->handle = handle;
@@ -527,7 +527,7 @@ static int kcov_open(struct inode *inode, struct file *filep)
{
struct kcov *kcov;
- kcov = kzalloc(sizeof(*kcov), GFP_KERNEL);
+ kcov = kzalloc_obj(*kcov, GFP_KERNEL);
if (!kcov)
return -ENOMEM;
guard(spinlock_init)(&kcov->lock);
diff --git a/kernel/kcsan/kcsan_test.c b/kernel/kcsan/kcsan_test.c
index 8ef8167be745..edb062fb43b4 100644
--- a/kernel/kcsan/kcsan_test.c
+++ b/kernel/kcsan/kcsan_test.c
@@ -168,7 +168,7 @@ static bool __report_matches(const struct expect_report *r)
if (!report_available())
return false;
- expect = kmalloc(sizeof(observed.lines), GFP_KERNEL);
+ expect = kmalloc_obj(observed.lines, GFP_KERNEL);
if (WARN_ON(!expect))
return false;
@@ -1538,7 +1538,7 @@ static int test_init(struct kunit *test)
if (WARN_ON(!nthreads))
goto err;
- threads = kcalloc(nthreads + 1, sizeof(struct task_struct *), GFP_KERNEL);
+ threads = kzalloc_objs(struct task_struct *, nthreads + 1, GFP_KERNEL);
if (WARN_ON(!threads))
goto err;
diff --git a/kernel/kexec.c b/kernel/kexec.c
index 28008e3d462e..3902e7bb99fe 100644
--- a/kernel/kexec.c
+++ b/kernel/kexec.c
@@ -284,8 +284,7 @@ COMPAT_SYSCALL_DEFINE4(kexec_load, compat_ulong_t, entry,
if ((flags & KEXEC_ARCH_MASK) == KEXEC_ARCH_DEFAULT)
return -EINVAL;
- ksegments = kmalloc_array(nr_segments, sizeof(ksegments[0]),
- GFP_KERNEL);
+ ksegments = kmalloc_objs(ksegments[0], nr_segments, GFP_KERNEL);
if (!ksegments)
return -ENOMEM;
diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c
index 95c585c6ddc3..76e4287a4f1d 100644
--- a/kernel/kexec_core.c
+++ b/kernel/kexec_core.c
@@ -231,7 +231,7 @@ struct kimage *do_kimage_alloc_init(void)
struct kimage *image;
/* Allocate a controlling structure */
- image = kzalloc(sizeof(*image), GFP_KERNEL);
+ image = kzalloc_obj(*image, GFP_KERNEL);
if (!image)
return NULL;
@@ -975,7 +975,7 @@ void *kimage_map_segment(struct kimage *image, int idx)
* Collect the source pages and map them in a contiguous VA range.
*/
npages = PFN_UP(eaddr) - PFN_DOWN(addr);
- src_pages = kmalloc_array(npages, sizeof(*src_pages), GFP_KERNEL);
+ src_pages = kmalloc_objs(*src_pages, npages, GFP_KERNEL);
if (!src_pages) {
pr_err("Could not allocate ima pages array.\n");
return NULL;
diff --git a/kernel/kprobes.c b/kernel/kprobes.c
index e2cd01cf5968..b6744137b11e 100644
--- a/kernel/kprobes.c
+++ b/kernel/kprobes.c
@@ -172,7 +172,7 @@ kprobe_opcode_t *__get_insn_slot(struct kprobe_insn_cache *c)
} while (c->nr_garbage && collect_garbage_slots(c) == 0);
/* All out of space. Need to allocate a new page. */
- kip = kmalloc(struct_size(kip, slot_used, slots_per_page(c)), GFP_KERNEL);
+ kip = kmalloc_flex(*kip, slot_used, slots_per_page(c), GFP_KERNEL);
if (!kip)
return NULL;
@@ -900,7 +900,7 @@ static struct kprobe *alloc_aggr_kprobe(struct kprobe *p)
{
struct optimized_kprobe *op;
- op = kzalloc(sizeof(struct optimized_kprobe), GFP_KERNEL);
+ op = kzalloc_obj(struct optimized_kprobe, GFP_KERNEL);
if (!op)
return NULL;
@@ -1117,7 +1117,7 @@ static void free_aggr_kprobe(struct kprobe *p)
static struct kprobe *alloc_aggr_kprobe(struct kprobe *p)
{
- return kzalloc(sizeof(struct kprobe), GFP_KERNEL);
+ return kzalloc_obj(struct kprobe, GFP_KERNEL);
}
#endif /* CONFIG_OPTPROBES */
@@ -2295,7 +2295,7 @@ int register_kretprobe(struct kretprobe *rp)
rp->rh = NULL;
}
#else /* !CONFIG_KRETPROBE_ON_RETHOOK */
- rp->rph = kzalloc(sizeof(struct kretprobe_holder), GFP_KERNEL);
+ rp->rph = kzalloc_obj(struct kretprobe_holder, GFP_KERNEL);
if (!rp->rph)
return -ENOMEM;
@@ -2499,7 +2499,7 @@ int kprobe_add_ksym_blacklist(unsigned long entry)
!kallsyms_lookup_size_offset(entry, &size, &offset))
return -EINVAL;
- ent = kmalloc(sizeof(*ent), GFP_KERNEL);
+ ent = kmalloc_obj(*ent, GFP_KERNEL);
if (!ent)
return -ENOMEM;
ent->start_addr = entry;
diff --git a/kernel/kthread.c b/kernel/kthread.c
index c9507689e181..0b4f7328096f 100644
--- a/kernel/kthread.c
+++ b/kernel/kthread.c
@@ -122,7 +122,7 @@ bool set_kthread_struct(struct task_struct *p)
if (WARN_ON_ONCE(to_kthread(p)))
return false;
- kthread = kzalloc(sizeof(*kthread), GFP_KERNEL);
+ kthread = kzalloc_obj(*kthread, GFP_KERNEL);
if (!kthread)
return false;
@@ -511,8 +511,7 @@ struct task_struct *__kthread_create_on_node(int (*threadfn)(void *data),
{
DECLARE_COMPLETION_ONSTACK(done);
struct task_struct *task;
- struct kthread_create_info *create = kmalloc(sizeof(*create),
- GFP_KERNEL);
+ struct kthread_create_info *create = kmalloc_obj(*create, GFP_KERNEL);
if (!create)
return ERR_PTR(-ENOMEM);
@@ -1084,7 +1083,7 @@ __kthread_create_worker_on_node(unsigned int flags, int node,
struct kthread_worker *worker;
struct task_struct *task;
- worker = kzalloc(sizeof(*worker), GFP_KERNEL);
+ worker = kzalloc_obj(*worker, GFP_KERNEL);
if (!worker)
return ERR_PTR(-ENOMEM);
diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c
index 1acbad2dbfdf..0d52e48918eb 100644
--- a/kernel/livepatch/core.c
+++ b/kernel/livepatch/core.c
@@ -525,7 +525,7 @@ static struct klp_object *klp_alloc_object_dynamic(const char *name,
{
struct klp_object *obj;
- obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ obj = kzalloc_obj(*obj, GFP_KERNEL);
if (!obj)
return NULL;
@@ -554,7 +554,7 @@ static struct klp_func *klp_alloc_func_nop(struct klp_func *old_func,
{
struct klp_func *func;
- func = kzalloc(sizeof(*func), GFP_KERNEL);
+ func = kzalloc_obj(*func, GFP_KERNEL);
if (!func)
return NULL;
diff --git a/kernel/livepatch/patch.c b/kernel/livepatch/patch.c
index 90408500e5a3..1149840cd538 100644
--- a/kernel/livepatch/patch.c
+++ b/kernel/livepatch/patch.c
@@ -179,7 +179,7 @@ static int klp_patch_func(struct klp_func *func)
return -EINVAL;
}
- ops = kzalloc(sizeof(*ops), GFP_KERNEL);
+ ops = kzalloc_obj(*ops, GFP_KERNEL);
if (!ops)
return -ENOMEM;
diff --git a/kernel/liveupdate/kexec_handover.c b/kernel/liveupdate/kexec_handover.c
index 95601623b4d6..23d76678d233 100644
--- a/kernel/liveupdate/kexec_handover.c
+++ b/kernel/liveupdate/kexec_handover.c
@@ -187,7 +187,7 @@ static int __kho_preserve_order(struct kho_mem_track *track, unsigned long pfn,
if (!physxa) {
int err;
- new_physxa = kzalloc(sizeof(*physxa), GFP_KERNEL);
+ new_physxa = kzalloc_obj(*physxa, GFP_KERNEL);
if (!new_physxa)
return -ENOMEM;
@@ -1090,7 +1090,7 @@ void *kho_restore_vmalloc(const struct kho_vmalloc *preservation)
return NULL;
total_pages = preservation->total_pages;
- pages = kvmalloc_array(total_pages, sizeof(*pages), GFP_KERNEL);
+ pages = kvmalloc_objs(*pages, total_pages, GFP_KERNEL);
if (!pages)
return NULL;
order = preservation->order;
diff --git a/kernel/liveupdate/kexec_handover_debugfs.c b/kernel/liveupdate/kexec_handover_debugfs.c
index 2abbf62ba942..d42fc940d14d 100644
--- a/kernel/liveupdate/kexec_handover_debugfs.c
+++ b/kernel/liveupdate/kexec_handover_debugfs.c
@@ -29,7 +29,7 @@ static int __kho_debugfs_fdt_add(struct list_head *list, struct dentry *dir,
struct fdt_debugfs *f;
struct dentry *file;
- f = kmalloc(sizeof(*f), GFP_KERNEL);
+ f = kmalloc_obj(*f, GFP_KERNEL);
if (!f)
return -ENOMEM;
diff --git a/kernel/liveupdate/luo_file.c b/kernel/liveupdate/luo_file.c
index 4c7df52a6507..ca96edb3b4e5 100644
--- a/kernel/liveupdate/luo_file.c
+++ b/kernel/liveupdate/luo_file.c
@@ -289,7 +289,7 @@ int luo_preserve_file(struct luo_file_set *file_set, u64 token, int fd)
if (err)
goto err_free_files_mem;
- luo_file = kzalloc(sizeof(*luo_file), GFP_KERNEL);
+ luo_file = kzalloc_obj(*luo_file, GFP_KERNEL);
if (!luo_file) {
err = -ENOMEM;
goto err_flb_unpreserve;
@@ -780,7 +780,7 @@ int luo_file_deserialize(struct luo_file_set *file_set,
return -ENOENT;
}
- luo_file = kzalloc(sizeof(*luo_file), GFP_KERNEL);
+ luo_file = kzalloc_obj(*luo_file, GFP_KERNEL);
if (!luo_file)
return -ENOMEM;
diff --git a/kernel/liveupdate/luo_flb.c b/kernel/liveupdate/luo_flb.c
index 4c437de5c0b0..5f2cdf9caa7b 100644
--- a/kernel/liveupdate/luo_flb.c
+++ b/kernel/liveupdate/luo_flb.c
@@ -343,7 +343,7 @@ int liveupdate_register_flb(struct liveupdate_file_handler *fh,
if (WARN_ON(list_empty(&ACCESS_PRIVATE(fh, list))))
return -EINVAL;
- link = kzalloc(sizeof(*link), GFP_KERNEL);
+ link = kzalloc_obj(*link, GFP_KERNEL);
if (!link)
return -ENOMEM;
diff --git a/kernel/liveupdate/luo_session.c b/kernel/liveupdate/luo_session.c
index dbdbc3bd7929..c0262ca00533 100644
--- a/kernel/liveupdate/luo_session.c
+++ b/kernel/liveupdate/luo_session.c
@@ -119,7 +119,7 @@ static struct luo_session_global luo_session_global = {
static struct luo_session *luo_session_alloc(const char *name)
{
- struct luo_session *session = kzalloc(sizeof(*session), GFP_KERNEL);
+ struct luo_session *session = kzalloc_obj(*session, GFP_KERNEL);
if (!session)
return ERR_PTR(-ENOMEM);
diff --git a/kernel/locking/locktorture.c b/kernel/locking/locktorture.c
index 6567e5eeacc0..96a8647a0074 100644
--- a/kernel/locking/locktorture.c
+++ b/kernel/locking/locktorture.c
@@ -610,9 +610,8 @@ static void torture_ww_mutex_init(void)
ww_mutex_init(&torture_ww_mutex_1, &torture_ww_class);
ww_mutex_init(&torture_ww_mutex_2, &torture_ww_class);
- ww_acquire_ctxs = kmalloc_array(cxt.nrealwriters_stress,
- sizeof(*ww_acquire_ctxs),
- GFP_KERNEL);
+ ww_acquire_ctxs = kmalloc_objs(*ww_acquire_ctxs,
+ cxt.nrealwriters_stress, GFP_KERNEL);
if (!ww_acquire_ctxs)
VERBOSE_TOROUT_STRING("ww_acquire_ctx: Out of memory");
}
@@ -1129,7 +1128,8 @@ static int call_rcu_chain_init(void)
if (call_rcu_chains <= 0)
return 0;
- call_rcu_chain_list = kcalloc(call_rcu_chains, sizeof(*call_rcu_chain_list), GFP_KERNEL);
+ call_rcu_chain_list = kzalloc_objs(*call_rcu_chain_list,
+ call_rcu_chains, GFP_KERNEL);
if (!call_rcu_chain_list)
return -ENOMEM;
for (i = 0; i < call_rcu_chains; i++) {
@@ -1293,9 +1293,8 @@ static int __init lock_torture_init(void)
/* Initialize the statistics so that each run gets its own numbers. */
if (nwriters_stress) {
lock_is_write_held = false;
- cxt.lwsa = kmalloc_array(cxt.nrealwriters_stress,
- sizeof(*cxt.lwsa),
- GFP_KERNEL);
+ cxt.lwsa = kmalloc_objs(*cxt.lwsa, cxt.nrealwriters_stress,
+ GFP_KERNEL);
if (cxt.lwsa == NULL) {
VERBOSE_TOROUT_STRING("cxt.lwsa: Out of memory");
firsterr = -ENOMEM;
@@ -1323,9 +1322,9 @@ static int __init lock_torture_init(void)
}
if (nreaders_stress) {
- cxt.lrsa = kmalloc_array(cxt.nrealreaders_stress,
- sizeof(*cxt.lrsa),
- GFP_KERNEL);
+ cxt.lrsa = kmalloc_objs(*cxt.lrsa,
+ cxt.nrealreaders_stress,
+ GFP_KERNEL);
if (cxt.lrsa == NULL) {
VERBOSE_TOROUT_STRING("cxt.lrsa: Out of memory");
firsterr = -ENOMEM;
@@ -1372,9 +1371,8 @@ static int __init lock_torture_init(void)
}
if (nwriters_stress) {
- writer_tasks = kcalloc(cxt.nrealwriters_stress,
- sizeof(writer_tasks[0]),
- GFP_KERNEL);
+ writer_tasks = kzalloc_objs(writer_tasks[0],
+ cxt.nrealwriters_stress, GFP_KERNEL);
if (writer_tasks == NULL) {
TOROUT_ERRSTRING("writer_tasks: Out of memory");
firsterr = -ENOMEM;
@@ -1387,9 +1385,8 @@ static int __init lock_torture_init(void)
nested_locks = MAX_NESTED_LOCKS;
if (cxt.cur_ops->readlock) {
- reader_tasks = kcalloc(cxt.nrealreaders_stress,
- sizeof(reader_tasks[0]),
- GFP_KERNEL);
+ reader_tasks = kzalloc_objs(reader_tasks[0],
+ cxt.nrealreaders_stress, GFP_KERNEL);
if (reader_tasks == NULL) {
TOROUT_ERRSTRING("reader_tasks: Out of memory");
kfree(writer_tasks);
diff --git a/kernel/locking/test-ww_mutex.c b/kernel/locking/test-ww_mutex.c
index 79b5e45f8d4c..2cc6d1937670 100644
--- a/kernel/locking/test-ww_mutex.c
+++ b/kernel/locking/test-ww_mutex.c
@@ -324,7 +324,7 @@ static int __test_cycle(struct ww_class *class, unsigned int nthreads)
unsigned int n, last = nthreads - 1;
int ret;
- cycles = kmalloc_array(nthreads, sizeof(*cycles), GFP_KERNEL);
+ cycles = kmalloc_objs(*cycles, nthreads, GFP_KERNEL);
if (!cycles)
return -ENOMEM;
@@ -412,7 +412,7 @@ static int *get_random_order(int count)
int *order;
int n, r;
- order = kmalloc_array(count, sizeof(*order), GFP_KERNEL);
+ order = kmalloc_objs(*order, count, GFP_KERNEL);
if (!order)
return order;
@@ -506,7 +506,7 @@ static void stress_reorder_work(struct work_struct *work)
return;
for (n = 0; n < stress->nlocks; n++) {
- ll = kmalloc(sizeof(*ll), GFP_KERNEL);
+ ll = kmalloc_obj(*ll, GFP_KERNEL);
if (!ll)
goto out;
@@ -582,12 +582,11 @@ static int stress(struct ww_class *class, int nlocks, int nthreads, unsigned int
struct stress *stress_array;
int n, count;
- locks = kmalloc_array(nlocks, sizeof(*locks), GFP_KERNEL);
+ locks = kmalloc_objs(*locks, nlocks, GFP_KERNEL);
if (!locks)
return -ENOMEM;
- stress_array = kmalloc_array(nthreads, sizeof(*stress_array),
- GFP_KERNEL);
+ stress_array = kmalloc_objs(*stress_array, nthreads, GFP_KERNEL);
if (!stress_array) {
kfree(locks);
return -ENOMEM;
diff --git a/kernel/module/dups.c b/kernel/module/dups.c
index 0b633f2edda6..bbc72ad93058 100644
--- a/kernel/module/dups.c
+++ b/kernel/module/dups.c
@@ -125,7 +125,7 @@ bool kmod_dup_request_exists_wait(char *module_name, bool wait, int *dup_ret)
* Pre-allocate the entry in case we have to use it later
* to avoid contention with the mutex.
*/
- new_kmod_req = kzalloc(sizeof(*new_kmod_req), GFP_KERNEL);
+ new_kmod_req = kzalloc_obj(*new_kmod_req, GFP_KERNEL);
if (!new_kmod_req)
return false;
diff --git a/kernel/module/main.c b/kernel/module/main.c
index 710ee30b3bea..b2ac20299915 100644
--- a/kernel/module/main.c
+++ b/kernel/module/main.c
@@ -662,7 +662,7 @@ static int add_module_usage(struct module *a, struct module *b)
struct module_use *use;
pr_debug("Allocating new usage for %s.\n", a->name);
- use = kmalloc(sizeof(*use), GFP_ATOMIC);
+ use = kmalloc_obj(*use, GFP_ATOMIC);
if (!use)
return -ENOMEM;
@@ -3024,7 +3024,7 @@ static noinline int do_init_module(struct module *mod)
}
#endif
- freeinit = kmalloc(sizeof(*freeinit), GFP_KERNEL);
+ freeinit = kmalloc_obj(*freeinit, GFP_KERNEL);
if (!freeinit) {
ret = -ENOMEM;
goto fail;
diff --git a/kernel/module/stats.c b/kernel/module/stats.c
index 3ba0e98b3c91..2fc64f2729e6 100644
--- a/kernel/module/stats.c
+++ b/kernel/module/stats.c
@@ -250,7 +250,7 @@ int try_add_failed_module(const char *name, enum fail_dup_mod_reason reason)
}
}
- mod_fail = kzalloc(sizeof(*mod_fail), GFP_KERNEL);
+ mod_fail = kzalloc_obj(*mod_fail, GFP_KERNEL);
if (!mod_fail)
return -ENOMEM;
memcpy(mod_fail->name, name, strlen(name));
diff --git a/kernel/module/sysfs.c b/kernel/module/sysfs.c
index c7622ff5226a..734ea3180478 100644
--- a/kernel/module/sysfs.c
+++ b/kernel/module/sysfs.c
@@ -74,11 +74,11 @@ static int add_sect_attrs(struct module *mod, const struct load_info *info)
for (i = 0; i < info->hdr->e_shnum; i++)
if (!sect_empty(&info->sechdrs[i]))
nloaded++;
- sect_attrs = kzalloc(struct_size(sect_attrs, attrs, nloaded), GFP_KERNEL);
+ sect_attrs = kzalloc_flex(*sect_attrs, attrs, nloaded, GFP_KERNEL);
if (!sect_attrs)
return -ENOMEM;
- gattr = kcalloc(nloaded + 1, sizeof(*gattr), GFP_KERNEL);
+ gattr = kzalloc_objs(*gattr, nloaded + 1, GFP_KERNEL);
if (!gattr) {
kfree(sect_attrs);
return -ENOMEM;
@@ -166,12 +166,11 @@ static int add_notes_attrs(struct module *mod, const struct load_info *info)
if (notes == 0)
return 0;
- notes_attrs = kzalloc(struct_size(notes_attrs, attrs, notes),
- GFP_KERNEL);
+ notes_attrs = kzalloc_flex(*notes_attrs, attrs, notes, GFP_KERNEL);
if (!notes_attrs)
return -ENOMEM;
- gattr = kcalloc(notes + 1, sizeof(*gattr), GFP_KERNEL);
+ gattr = kzalloc_objs(*gattr, notes + 1, GFP_KERNEL);
if (!gattr) {
kfree(notes_attrs);
return -ENOMEM;
diff --git a/kernel/module/tracking.c b/kernel/module/tracking.c
index 4fefec5b683c..41425054a97a 100644
--- a/kernel/module/tracking.c
+++ b/kernel/module/tracking.c
@@ -33,7 +33,7 @@ int try_add_tainted_module(struct module *mod)
}
}
- mod_taint = kmalloc(sizeof(*mod_taint), GFP_KERNEL);
+ mod_taint = kmalloc_obj(*mod_taint, GFP_KERNEL);
if (unlikely(!mod_taint))
return -ENOMEM;
strscpy(mod_taint->name, mod->name, MODULE_NAME_LEN);
diff --git a/kernel/padata.c b/kernel/padata.c
index db7c75787a2b..f0bf62e9a1f2 100644
--- a/kernel/padata.c
+++ b/kernel/padata.c
@@ -540,7 +540,7 @@ static struct parallel_data *padata_alloc_pd(struct padata_shell *ps)
struct padata_instance *pinst = ps->pinst;
struct parallel_data *pd;
- pd = kzalloc(sizeof(struct parallel_data), GFP_KERNEL);
+ pd = kzalloc_obj(struct parallel_data, GFP_KERNEL);
if (!pd)
goto err;
@@ -952,7 +952,7 @@ struct padata_instance *padata_alloc(const char *name)
{
struct padata_instance *pinst;
- pinst = kzalloc(sizeof(struct padata_instance), GFP_KERNEL);
+ pinst = kzalloc_obj(struct padata_instance, GFP_KERNEL);
if (!pinst)
goto err;
@@ -1038,7 +1038,7 @@ struct padata_shell *padata_alloc_shell(struct padata_instance *pinst)
struct parallel_data *pd;
struct padata_shell *ps;
- ps = kzalloc(sizeof(*ps), GFP_KERNEL);
+ ps = kzalloc_obj(*ps, GFP_KERNEL);
if (!ps)
goto out;
@@ -1106,8 +1106,8 @@ void __init padata_init(void)
#endif
possible_cpus = num_possible_cpus();
- padata_works = kmalloc_array(possible_cpus, sizeof(struct padata_work),
- GFP_KERNEL);
+ padata_works = kmalloc_objs(struct padata_work, possible_cpus,
+ GFP_KERNEL);
if (!padata_works)
goto remove_dead_state;
diff --git a/kernel/params.c b/kernel/params.c
index 7c2242f64bf0..d26bdfae96e5 100644
--- a/kernel/params.c
+++ b/kernel/params.c
@@ -633,13 +633,13 @@ static __init_or_module int add_sysfs_param(struct module_kobject *mk,
if (!mk->mp) {
/* First allocation. */
- mk->mp = kzalloc(sizeof(*mk->mp), GFP_KERNEL);
+ mk->mp = kzalloc_obj(*mk->mp, GFP_KERNEL);
if (!mk->mp)
return -ENOMEM;
mk->mp->grp.name = "parameters";
/* NULL-terminated attribute array. */
- mk->mp->grp.attrs = kzalloc(sizeof(mk->mp->grp.attrs[0]),
- GFP_KERNEL);
+ mk->mp->grp.attrs = kzalloc_obj(mk->mp->grp.attrs[0],
+ GFP_KERNEL);
/* Caller will cleanup via free_module_param_attrs */
if (!mk->mp->grp.attrs)
return -ENOMEM;
@@ -766,7 +766,7 @@ lookup_or_create_module_kobject(const char *name)
if (kobj)
return to_module_kobject(kobj);
- mk = kzalloc(sizeof(struct module_kobject), GFP_KERNEL);
+ mk = kzalloc_obj(struct module_kobject, GFP_KERNEL);
if (!mk)
return NULL;
diff --git a/kernel/power/console.c b/kernel/power/console.c
index a906a0ac0f9b..5ed9e1be1560 100644
--- a/kernel/power/console.c
+++ b/kernel/power/console.c
@@ -58,7 +58,7 @@ int pm_vt_switch_required(struct device *dev, bool required)
}
}
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
ret = -ENOMEM;
goto out;
diff --git a/kernel/power/energy_model.c b/kernel/power/energy_model.c
index 5b055cbe5341..43ddfc11b84a 100644
--- a/kernel/power/energy_model.c
+++ b/kernel/power/energy_model.c
@@ -439,7 +439,7 @@ static int em_create_pd(struct device *dev, int nr_states,
cpumask_copy(em_span_cpus(pd), cpus);
} else {
- pd = kzalloc(sizeof(*pd), GFP_KERNEL);
+ pd = kzalloc_obj(*pd, GFP_KERNEL);
if (!pd)
return -ENOMEM;
}
diff --git a/kernel/power/qos.c b/kernel/power/qos.c
index f7d8064e9adc..750b80f45b9f 100644
--- a/kernel/power/qos.c
+++ b/kernel/power/qos.c
@@ -341,7 +341,7 @@ static int cpu_latency_qos_open(struct inode *inode, struct file *filp)
{
struct pm_qos_request *req;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -440,7 +440,7 @@ static int cpu_wakeup_latency_qos_open(struct inode *inode, struct file *filp)
{
struct pm_qos_request *req;
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c
index 0a946932d5c1..be0b3304339f 100644
--- a/kernel/power/snapshot.c
+++ b/kernel/power/snapshot.c
@@ -646,7 +646,7 @@ static int create_mem_extents(struct list_head *list, gfp_t gfp_mask)
/* New extent is necessary */
struct mem_extent *new_ext;
- new_ext = kzalloc(sizeof(struct mem_extent), gfp_mask);
+ new_ext = kzalloc_obj(struct mem_extent, gfp_mask);
if (!new_ext) {
free_mem_extents(list);
return -ENOMEM;
@@ -1124,7 +1124,7 @@ int create_basic_memory_bitmaps(void)
else
BUG_ON(forbidden_pages_map || free_pages_map);
- bm1 = kzalloc(sizeof(struct memory_bitmap), GFP_KERNEL);
+ bm1 = kzalloc_obj(struct memory_bitmap, GFP_KERNEL);
if (!bm1)
return -ENOMEM;
@@ -1132,7 +1132,7 @@ int create_basic_memory_bitmaps(void)
if (error)
goto Free_first_object;
- bm2 = kzalloc(sizeof(struct memory_bitmap), GFP_KERNEL);
+ bm2 = kzalloc_obj(struct memory_bitmap, GFP_KERNEL);
if (!bm2)
goto Free_first_bitmap;
diff --git a/kernel/power/swap.c b/kernel/power/swap.c
index c4eb284b8e72..9bc1241259d3 100644
--- a/kernel/power/swap.c
+++ b/kernel/power/swap.c
@@ -155,7 +155,7 @@ static int swsusp_extents_insert(unsigned long swap_offset)
}
}
/* Add the new node and rebalance the tree. */
- ext = kzalloc(sizeof(struct swsusp_extent), GFP_KERNEL);
+ ext = kzalloc_obj(struct swsusp_extent, GFP_KERNEL);
if (!ext)
return -ENOMEM;
@@ -577,7 +577,7 @@ static struct crc_data *alloc_crc_data(int nr_threads)
{
struct crc_data *crc;
- crc = kzalloc(sizeof(*crc), GFP_KERNEL);
+ crc = kzalloc_obj(*crc, GFP_KERNEL);
if (!crc)
return NULL;
@@ -585,7 +585,7 @@ static struct crc_data *alloc_crc_data(int nr_threads)
if (!crc->unc)
goto err_free_crc;
- crc->unc_len = kcalloc(nr_threads, sizeof(*crc->unc_len), GFP_KERNEL);
+ crc->unc_len = kzalloc_objs(*crc->unc_len, nr_threads, GFP_KERNEL);
if (!crc->unc_len)
goto err_free_unc;
@@ -1016,7 +1016,7 @@ static int get_swap_reader(struct swap_map_handle *handle,
last = handle->maps = NULL;
offset = swsusp_header->image;
while (offset) {
- tmp = kzalloc(sizeof(*handle->maps), GFP_KERNEL);
+ tmp = kzalloc_obj(*handle->maps, GFP_KERNEL);
if (!tmp) {
release_swap_reader(handle);
return -ENOMEM;
diff --git a/kernel/power/wakelock.c b/kernel/power/wakelock.c
index 4e941999a53b..49712d9e7cfa 100644
--- a/kernel/power/wakelock.c
+++ b/kernel/power/wakelock.c
@@ -178,7 +178,7 @@ static struct wakelock *wakelock_lookup_add(const char *name, size_t len,
return ERR_PTR(-ENOSPC);
/* Not found, we have to add a new one. */
- wl = kzalloc(sizeof(*wl), GFP_KERNEL);
+ wl = kzalloc_obj(*wl, GFP_KERNEL);
if (!wl)
return ERR_PTR(-ENOMEM);
diff --git a/kernel/printk/nbcon.c b/kernel/printk/nbcon.c
index d558b18505cd..c98241238f2a 100644
--- a/kernel/printk/nbcon.c
+++ b/kernel/printk/nbcon.c
@@ -1801,7 +1801,7 @@ bool nbcon_alloc(struct console *con)
*/
con->pbufs = &printk_shared_pbufs;
} else {
- con->pbufs = kmalloc(sizeof(*con->pbufs), GFP_KERNEL);
+ con->pbufs = kmalloc_obj(*con->pbufs, GFP_KERNEL);
if (!con->pbufs) {
con_printk(KERN_ERR, con, "failed to allocate printing buffer\n");
return false;
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index a181394604d1..599d56300ded 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -933,7 +933,7 @@ static int devkmsg_open(struct inode *inode, struct file *file)
return err;
}
- user = kvmalloc(sizeof(struct devkmsg_user), GFP_KERNEL);
+ user = kvmalloc_obj(struct devkmsg_user, GFP_KERNEL);
if (!user)
return -ENOMEM;
diff --git a/kernel/rcu/rcuscale.c b/kernel/rcu/rcuscale.c
index 1c50f89fbd6f..5512686be5d0 100644
--- a/kernel/rcu/rcuscale.c
+++ b/kernel/rcu/rcuscale.c
@@ -755,7 +755,8 @@ kfree_scale_thread(void *arg)
}
for (i = 0; i < kfree_alloc_num; i++) {
- alloc_ptr = kcalloc(kfree_mult, sizeof(struct kfree_obj), GFP_KERNEL);
+ alloc_ptr = kzalloc_objs(struct kfree_obj, kfree_mult,
+ GFP_KERNEL);
if (!alloc_ptr)
return -ENOMEM;
@@ -908,8 +909,8 @@ kfree_scale_init(void)
kfree_mult * sizeof(struct kfree_obj),
kfree_by_call_rcu);
- kfree_reader_tasks = kcalloc(kfree_nrealthreads, sizeof(kfree_reader_tasks[0]),
- GFP_KERNEL);
+ kfree_reader_tasks = kzalloc_objs(kfree_reader_tasks[0],
+ kfree_nrealthreads, GFP_KERNEL);
if (kfree_reader_tasks == NULL) {
firsterr = -ENOMEM;
goto unwind;
@@ -1129,8 +1130,7 @@ rcu_scale_init(void)
goto unwind;
schedule_timeout_uninterruptible(1);
}
- reader_tasks = kcalloc(nrealreaders, sizeof(reader_tasks[0]),
- GFP_KERNEL);
+ reader_tasks = kzalloc_objs(reader_tasks[0], nrealreaders, GFP_KERNEL);
if (reader_tasks == NULL) {
SCALEOUT_ERRSTRING("out of memory");
firsterr = -ENOMEM;
@@ -1144,10 +1144,11 @@ rcu_scale_init(void)
}
while (atomic_read(&n_rcu_scale_reader_started) < nrealreaders)
schedule_timeout_uninterruptible(1);
- writer_tasks = kcalloc(nrealwriters, sizeof(writer_tasks[0]), GFP_KERNEL);
+ writer_tasks = kzalloc_objs(writer_tasks[0], nrealwriters, GFP_KERNEL);
writer_durations = kcalloc(nrealwriters, sizeof(*writer_durations), GFP_KERNEL);
- writer_n_durations = kcalloc(nrealwriters, sizeof(*writer_n_durations), GFP_KERNEL);
- writer_done = kcalloc(nrealwriters, sizeof(writer_done[0]), GFP_KERNEL);
+ writer_n_durations = kzalloc_objs(*writer_n_durations, nrealwriters,
+ GFP_KERNEL);
+ writer_done = kzalloc_objs(writer_done[0], nrealwriters, GFP_KERNEL);
if (gp_async) {
if (gp_async_max <= 0) {
pr_warn("%s: gp_async_max = %d must be greater than zero.\n",
@@ -1156,7 +1157,8 @@ rcu_scale_init(void)
firsterr = -EINVAL;
goto unwind;
}
- writer_freelists = kcalloc(nrealwriters, sizeof(writer_freelists[0]), GFP_KERNEL);
+ writer_freelists = kzalloc_objs(writer_freelists[0],
+ nrealwriters, GFP_KERNEL);
}
if (!writer_tasks || !writer_durations || !writer_n_durations || !writer_done ||
(gp_async && !writer_freelists)) {
@@ -1177,8 +1179,9 @@ rcu_scale_init(void)
init_llist_head(&wflp->ws_lhg);
init_llist_head(&wflp->ws_lhp);
- wflp->ws_mblocks = kcalloc(gp_async_max, sizeof(wflp->ws_mblocks[0]),
- GFP_KERNEL);
+ wflp->ws_mblocks = kzalloc_objs(wflp->ws_mblocks[0],
+ gp_async_max,
+ GFP_KERNEL);
if (!wflp->ws_mblocks) {
firsterr = -ENOMEM;
goto unwind;
diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
index 47ce7f49b52c..d2e673771295 100644
--- a/kernel/rcu/rcutorture.c
+++ b/kernel/rcu/rcutorture.c
@@ -1626,7 +1626,7 @@ rcu_torture_writer(void *arg)
ulo_size = cur_ops->poll_active;
}
if (cur_ops->poll_active_full > 0) {
- rgo = kcalloc(cur_ops->poll_active_full, sizeof(*rgo), GFP_KERNEL);
+ rgo = kzalloc_objs(*rgo, cur_ops->poll_active_full, GFP_KERNEL);
if (!WARN_ON(!rgo))
rgo_size = cur_ops->poll_active_full;
}
@@ -2462,7 +2462,7 @@ static void rcu_torture_timer(struct timer_list *unused)
/* Test call_rcu() invocation from interrupt handler. */
if (cur_ops->call) {
- struct rcu_head *rhp = kmalloc(sizeof(*rhp), GFP_NOWAIT);
+ struct rcu_head *rhp = kmalloc_obj(*rhp, GFP_NOWAIT);
if (rhp)
cur_ops->call(rhp, rcu_torture_timer_cb);
@@ -2558,7 +2558,7 @@ static int rcu_torture_updown_init(void)
VERBOSE_TOROUT_STRING("rcu_torture_updown_init: Disabling up/down reader tests due to lack of primitives");
return 0;
}
- updownreaders = kcalloc(n_up_down, sizeof(*updownreaders), GFP_KERNEL);
+ updownreaders = kzalloc_objs(*updownreaders, n_up_down, GFP_KERNEL);
if (!updownreaders) {
VERBOSE_TOROUT_STRING("rcu_torture_updown_init: Out of memory, disabling up/down reader tests");
return -ENOMEM;
@@ -2891,7 +2891,7 @@ static void rcu_torture_mem_dump_obj(void)
mem_dump_obj(&z);
kmem_cache_free(kcp, rhp);
kmem_cache_destroy(kcp);
- rhp = kmalloc(sizeof(*rhp), GFP_KERNEL);
+ rhp = kmalloc_obj(*rhp, GFP_KERNEL);
if (WARN_ON_ONCE(!rhp))
return;
pr_alert("mem_dump_obj() kmalloc test: rcu_torture_stats = %px, &rhp = %px, rhp = %px\n", stats_task, &rhp, rhp);
@@ -3399,7 +3399,7 @@ static void rcu_torture_fwd_prog_cr(struct rcu_fwd *rfp)
n_launders++;
n_launders_sa++;
} else if (!cur_ops->cbflood_max || cur_ops->cbflood_max > n_max_cbs) {
- rfcp = kmalloc(sizeof(*rfcp), GFP_KERNEL);
+ rfcp = kmalloc_obj(*rfcp, GFP_KERNEL);
if (WARN_ON_ONCE(!rfcp)) {
schedule_timeout_interruptible(1);
continue;
@@ -3587,8 +3587,8 @@ static int __init rcu_torture_fwd_prog_init(void)
fwd_progress_holdoff = 1;
if (fwd_progress_div <= 0)
fwd_progress_div = 4;
- rfp = kcalloc(fwd_progress, sizeof(*rfp), GFP_KERNEL);
- fwd_prog_tasks = kcalloc(fwd_progress, sizeof(*fwd_prog_tasks), GFP_KERNEL);
+ rfp = kzalloc_objs(*rfp, fwd_progress, GFP_KERNEL);
+ fwd_prog_tasks = kzalloc_objs(*fwd_prog_tasks, fwd_progress, GFP_KERNEL);
if (!rfp || !fwd_prog_tasks) {
kfree(rfp);
kfree(fwd_prog_tasks);
@@ -3754,10 +3754,9 @@ static int rcu_torture_barrier_init(void)
atomic_set(&barrier_cbs_count, 0);
atomic_set(&barrier_cbs_invoked, 0);
barrier_cbs_tasks =
- kcalloc(n_barrier_cbs, sizeof(barrier_cbs_tasks[0]),
- GFP_KERNEL);
+ kzalloc_objs(barrier_cbs_tasks[0], n_barrier_cbs, GFP_KERNEL);
barrier_cbs_wq =
- kcalloc(n_barrier_cbs, sizeof(barrier_cbs_wq[0]), GFP_KERNEL);
+ kzalloc_objs(barrier_cbs_wq[0], n_barrier_cbs, GFP_KERNEL);
if (barrier_cbs_tasks == NULL || !barrier_cbs_wq)
return -ENOMEM;
for (i = 0; i < n_barrier_cbs; i++) {
@@ -4224,7 +4223,7 @@ static void rcu_test_debug_objects(void)
(!cur_ops->call || !cur_ops->cb_barrier)))
return;
- struct rcu_head *rhp = kmalloc(sizeof(*rhp), GFP_KERNEL);
+ struct rcu_head *rhp = kmalloc_obj(*rhp, GFP_KERNEL);
init_rcu_head_on_stack(&rh1);
init_rcu_head_on_stack(&rh2);
@@ -4549,9 +4548,8 @@ rcu_torture_init(void)
rcu_torture_write_types();
if (nrealfakewriters > 0) {
- fakewriter_tasks = kcalloc(nrealfakewriters,
- sizeof(fakewriter_tasks[0]),
- GFP_KERNEL);
+ fakewriter_tasks = kzalloc_objs(fakewriter_tasks[0],
+ nrealfakewriters, GFP_KERNEL);
if (fakewriter_tasks == NULL) {
TOROUT_ERRSTRING("out of memory");
firsterr = -ENOMEM;
@@ -4564,10 +4562,9 @@ rcu_torture_init(void)
if (torture_init_error(firsterr))
goto unwind;
}
- reader_tasks = kcalloc(nrealreaders, sizeof(reader_tasks[0]),
- GFP_KERNEL);
- rcu_torture_reader_mbchk = kcalloc(nrealreaders, sizeof(*rcu_torture_reader_mbchk),
- GFP_KERNEL);
+ reader_tasks = kzalloc_objs(reader_tasks[0], nrealreaders, GFP_KERNEL);
+ rcu_torture_reader_mbchk = kzalloc_objs(*rcu_torture_reader_mbchk,
+ nrealreaders, GFP_KERNEL);
if (!reader_tasks || !rcu_torture_reader_mbchk) {
TOROUT_ERRSTRING("out of memory");
firsterr = -ENOMEM;
@@ -4595,7 +4592,8 @@ rcu_torture_init(void)
if (WARN_ON(nocbs_toggle < 0))
nocbs_toggle = HZ;
if (nrealnocbers > 0) {
- nocb_tasks = kcalloc(nrealnocbers, sizeof(nocb_tasks[0]), GFP_KERNEL);
+ nocb_tasks = kzalloc_objs(nocb_tasks[0], nrealnocbers,
+ GFP_KERNEL);
if (nocb_tasks == NULL) {
TOROUT_ERRSTRING("out of memory");
firsterr = -ENOMEM;
diff --git a/kernel/rcu/refscale.c b/kernel/rcu/refscale.c
index 07a313782dfd..39d679a4c17e 100644
--- a/kernel/rcu/refscale.c
+++ b/kernel/rcu/refscale.c
@@ -1143,7 +1143,7 @@ static bool typesafe_init(void)
else if (si == 0)
si = nr_cpu_ids;
rtsarray_size = si;
- rtsarray = kcalloc(si, sizeof(*rtsarray), GFP_KERNEL);
+ rtsarray = kzalloc_objs(*rtsarray, si, GFP_KERNEL);
if (!rtsarray)
return false;
for (idx = 0; idx < rtsarray_size; idx++) {
@@ -1575,8 +1575,7 @@ ref_scale_init(void)
"%s: nreaders * loops will overflow, adjusted loops to %d",
__func__, INT_MAX / nreaders))
loops = INT_MAX / nreaders;
- reader_tasks = kcalloc(nreaders, sizeof(reader_tasks[0]),
- GFP_KERNEL);
+ reader_tasks = kzalloc_objs(reader_tasks[0], nreaders, GFP_KERNEL);
if (!reader_tasks) {
SCALEOUT_ERRSTRING("out of memory");
firsterr = -ENOMEM;
diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c
index 66ba6a2f83d3..0faf35f393a3 100644
--- a/kernel/rcu/srcutree.c
+++ b/kernel/rcu/srcutree.c
@@ -173,7 +173,8 @@ static bool init_srcu_struct_nodes(struct srcu_struct *ssp, gfp_t gfp_flags)
/* Initialize geometry if it has not already been initialized. */
rcu_init_geometry();
- ssp->srcu_sup->node = kcalloc(rcu_num_nodes, sizeof(*ssp->srcu_sup->node), gfp_flags);
+ ssp->srcu_sup->node = kzalloc_objs(*ssp->srcu_sup->node, rcu_num_nodes,
+ gfp_flags);
if (!ssp->srcu_sup->node)
return false;
@@ -237,7 +238,7 @@ static bool init_srcu_struct_nodes(struct srcu_struct *ssp, gfp_t gfp_flags)
static int init_srcu_struct_fields(struct srcu_struct *ssp, bool is_static)
{
if (!is_static)
- ssp->srcu_sup = kzalloc(sizeof(*ssp->srcu_sup), GFP_KERNEL);
+ ssp->srcu_sup = kzalloc_obj(*ssp->srcu_sup, GFP_KERNEL);
if (!ssp->srcu_sup)
return -ENOMEM;
if (!is_static)
diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h
index 76f952196a29..d9ccf18eb035 100644
--- a/kernel/rcu/tasks.h
+++ b/kernel/rcu/tasks.h
@@ -259,7 +259,8 @@ static void cblist_init_generic(struct rcu_tasks *rtp)
}
lim = rcu_task_enqueue_lim;
- rtp->rtpcp_array = kcalloc(num_possible_cpus(), sizeof(struct rcu_tasks_percpu *), GFP_KERNEL);
+ rtp->rtpcp_array = kzalloc_objs(struct rcu_tasks_percpu *,
+ num_possible_cpus(), GFP_KERNEL);
BUG_ON(!rtp->rtpcp_array);
for_each_possible_cpu(cpu) {
diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c
index dfeba9b35395..14150f09fd61 100644
--- a/kernel/rcu/update.c
+++ b/kernel/rcu/update.c
@@ -614,7 +614,7 @@ static void early_boot_test_call_rcu(void)
call_rcu(&head, test_callback);
early_srcu_cookie = start_poll_synchronize_srcu(&early_srcu);
call_srcu(&early_srcu, &shead, test_callback);
- rhp = kmalloc(sizeof(*rhp), GFP_KERNEL);
+ rhp = kmalloc_obj(*rhp, GFP_KERNEL);
if (!WARN_ON_ONCE(!rhp))
kfree_rcu(rhp, rh);
}
diff --git a/kernel/reboot.c b/kernel/reboot.c
index ec087827c85c..695c33e75efd 100644
--- a/kernel/reboot.c
+++ b/kernel/reboot.c
@@ -374,7 +374,7 @@ static struct sys_off_handler *alloc_sys_off_handler(int priority)
else
flags = GFP_KERNEL;
- handler = kzalloc(sizeof(*handler), flags);
+ handler = kzalloc_obj(*handler, flags);
if (!handler)
return ERR_PTR(-ENOMEM);
}
diff --git a/kernel/relay.c b/kernel/relay.c
index 5c665b729132..c28fc5dd3ded 100644
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -59,7 +59,7 @@ static const struct vm_operations_struct relay_file_mmap_ops = {
*/
static struct page **relay_alloc_page_array(unsigned int n_pages)
{
- return kvcalloc(n_pages, sizeof(struct page *), GFP_KERNEL);
+ return kvzalloc_objs(struct page *, n_pages, GFP_KERNEL);
}
/*
@@ -150,11 +150,10 @@ static struct rchan_buf *relay_create_buf(struct rchan *chan)
if (chan->n_subbufs > KMALLOC_MAX_SIZE / sizeof(size_t))
return NULL;
- buf = kzalloc(sizeof(struct rchan_buf), GFP_KERNEL);
+ buf = kzalloc_obj(struct rchan_buf, GFP_KERNEL);
if (!buf)
return NULL;
- buf->padding = kmalloc_array(chan->n_subbufs, sizeof(size_t),
- GFP_KERNEL);
+ buf->padding = kmalloc_objs(size_t, chan->n_subbufs, GFP_KERNEL);
if (!buf->padding)
goto free_buf;
@@ -490,7 +489,7 @@ struct rchan *relay_open(const char *base_filename,
if (!cb || !cb->create_buf_file || !cb->remove_buf_file)
return NULL;
- chan = kzalloc(sizeof(struct rchan), GFP_KERNEL);
+ chan = kzalloc_obj(struct rchan, GFP_KERNEL);
if (!chan)
return NULL;
diff --git a/kernel/resource.c b/kernel/resource.c
index 31341bdd7707..d591e76c1535 100644
--- a/kernel/resource.c
+++ b/kernel/resource.c
@@ -182,7 +182,7 @@ static void free_resource(struct resource *res)
static struct resource *alloc_resource(gfp_t flags)
{
- return kzalloc(sizeof(struct resource), flags);
+ return kzalloc_obj(struct resource, flags);
}
/* Return the conflict entry if you can't request it */
@@ -502,7 +502,7 @@ int walk_system_ram_res_rev(u64 start, u64 end, void *arg,
int ret = -1;
/* create a list */
- rams = kvcalloc(rams_size, sizeof(struct resource), GFP_KERNEL);
+ rams = kvzalloc_objs(struct resource, rams_size, GFP_KERNEL);
if (!rams)
return ret;
diff --git a/kernel/resource_kunit.c b/kernel/resource_kunit.c
index b8ef75b99eb2..378218df2427 100644
--- a/kernel/resource_kunit.c
+++ b/kernel/resource_kunit.c
@@ -204,7 +204,7 @@ static void resource_test_insert_resource(struct kunit *test, struct resource *p
{
struct resource *res;
- res = kzalloc(sizeof(*res), GFP_KERNEL);
+ res = kzalloc_obj(*res, GFP_KERNEL);
KUNIT_ASSERT_NOT_NULL(test, res);
res->name = name;
diff --git a/kernel/scftorture.c b/kernel/scftorture.c
index d86d2d9c4624..02b3a5d2f0aa 100644
--- a/kernel/scftorture.c
+++ b/kernel/scftorture.c
@@ -350,7 +350,7 @@ static void scftorture_invoke_one(struct scf_statistics *scfp, struct torture_ra
struct scf_selector *scfsp = scf_sel_rand(trsp);
if (scfsp->scfs_prim == SCF_PRIM_SINGLE || scfsp->scfs_wait) {
- scfcp = kmalloc(sizeof(*scfcp), GFP_ATOMIC);
+ scfcp = kmalloc_obj(*scfcp, GFP_ATOMIC);
if (!scfcp) {
WARN_ON_ONCE(!IS_ENABLED(CONFIG_KASAN));
atomic_inc(&n_alloc_errs);
@@ -661,7 +661,7 @@ static int __init scf_torture_init(void)
// Worker tasks invoking smp_call_function().
if (nthreads < 0)
nthreads = num_online_cpus();
- scf_stats_p = kcalloc(nthreads, sizeof(scf_stats_p[0]), GFP_KERNEL);
+ scf_stats_p = kzalloc_objs(scf_stats_p[0], nthreads, GFP_KERNEL);
if (!scf_stats_p) {
SCFTORTOUT_ERRSTRING("out of memory");
firsterr = -ENOMEM;
diff --git a/kernel/sched/autogroup.c b/kernel/sched/autogroup.c
index 954137775f38..c5a1019cbe83 100644
--- a/kernel/sched/autogroup.c
+++ b/kernel/sched/autogroup.c
@@ -86,7 +86,7 @@ static inline struct autogroup *autogroup_task_get(struct task_struct *p)
static inline struct autogroup *autogroup_create(void)
{
- struct autogroup *ag = kzalloc(sizeof(*ag), GFP_KERNEL);
+ struct autogroup *ag = kzalloc_obj(*ag, GFP_KERNEL);
struct task_group *tg;
if (!ag)
diff --git a/kernel/sched/core_sched.c b/kernel/sched/core_sched.c
index 9ede71ecba7f..6065cf725eee 100644
--- a/kernel/sched/core_sched.c
+++ b/kernel/sched/core_sched.c
@@ -12,7 +12,7 @@ struct sched_core_cookie {
static unsigned long sched_core_alloc_cookie(void)
{
- struct sched_core_cookie *ck = kmalloc(sizeof(*ck), GFP_KERNEL);
+ struct sched_core_cookie *ck = kmalloc_obj(*ck, GFP_KERNEL);
if (!ck)
return 0;
diff --git a/kernel/sched/cpuacct.c b/kernel/sched/cpuacct.c
index 23a56ba12d81..6e9a2e067886 100644
--- a/kernel/sched/cpuacct.c
+++ b/kernel/sched/cpuacct.c
@@ -61,7 +61,7 @@ cpuacct_css_alloc(struct cgroup_subsys_state *parent_css)
if (!parent_css)
return &root_cpuacct.css;
- ca = kzalloc(sizeof(*ca), GFP_KERNEL);
+ ca = kzalloc_obj(*ca, GFP_KERNEL);
if (!ca)
goto out;
diff --git a/kernel/sched/cpudeadline.c b/kernel/sched/cpudeadline.c
index 37b572cc8aca..bbb2d68df86a 100644
--- a/kernel/sched/cpudeadline.c
+++ b/kernel/sched/cpudeadline.c
@@ -252,9 +252,7 @@ int cpudl_init(struct cpudl *cp)
raw_spin_lock_init(&cp->lock);
cp->size = 0;
- cp->elements = kcalloc(nr_cpu_ids,
- sizeof(struct cpudl_item),
- GFP_KERNEL);
+ cp->elements = kzalloc_objs(struct cpudl_item, nr_cpu_ids, GFP_KERNEL);
if (!cp->elements)
return -ENOMEM;
diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c
index cfc40181f66e..d71d09ed1b3b 100644
--- a/kernel/sched/cpufreq_schedutil.c
+++ b/kernel/sched/cpufreq_schedutil.c
@@ -638,7 +638,7 @@ static struct sugov_policy *sugov_policy_alloc(struct cpufreq_policy *policy)
{
struct sugov_policy *sg_policy;
- sg_policy = kzalloc(sizeof(*sg_policy), GFP_KERNEL);
+ sg_policy = kzalloc_obj(*sg_policy, GFP_KERNEL);
if (!sg_policy)
return NULL;
@@ -722,7 +722,7 @@ static struct sugov_tunables *sugov_tunables_alloc(struct sugov_policy *sg_polic
{
struct sugov_tunables *tunables;
- tunables = kzalloc(sizeof(*tunables), GFP_KERNEL);
+ tunables = kzalloc_obj(*tunables, GFP_KERNEL);
if (tunables) {
gov_attr_set_init(&tunables->attr_set, &sg_policy->tunables_hook);
if (!have_governor_per_policy())
diff --git a/kernel/sched/cpupri.c b/kernel/sched/cpupri.c
index 76a9ac5eb794..c2642deeaabc 100644
--- a/kernel/sched/cpupri.c
+++ b/kernel/sched/cpupri.c
@@ -288,7 +288,7 @@ int cpupri_init(struct cpupri *cp)
goto cleanup;
}
- cp->cpu_to_pri = kcalloc(nr_cpu_ids, sizeof(int), GFP_KERNEL);
+ cp->cpu_to_pri = kzalloc_objs(int, nr_cpu_ids, GFP_KERNEL);
if (!cp->cpu_to_pri)
goto cleanup;
diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c
index c18e81e8ef51..b9fadb2583ea 100644
--- a/kernel/sched/ext.c
+++ b/kernel/sched/ext.c
@@ -4223,11 +4223,11 @@ static struct scx_exit_info *alloc_exit_info(size_t exit_dump_len)
{
struct scx_exit_info *ei;
- ei = kzalloc(sizeof(*ei), GFP_KERNEL);
+ ei = kzalloc_obj(*ei, GFP_KERNEL);
if (!ei)
return NULL;
- ei->bt = kcalloc(SCX_EXIT_BT_LEN, sizeof(ei->bt[0]), GFP_KERNEL);
+ ei->bt = kzalloc_objs(ei->bt[0], SCX_EXIT_BT_LEN, GFP_KERNEL);
ei->msg = kzalloc(SCX_EXIT_MSG_LEN, GFP_KERNEL);
ei->dump = kvzalloc(exit_dump_len, GFP_KERNEL);
@@ -4824,7 +4824,7 @@ static struct scx_sched *scx_alloc_and_add_sched(struct sched_ext_ops *ops)
struct scx_sched *sch;
int node, ret;
- sch = kzalloc(sizeof(*sch), GFP_KERNEL);
+ sch = kzalloc_obj(*sch, GFP_KERNEL);
if (!sch)
return ERR_PTR(-ENOMEM);
@@ -4838,8 +4838,8 @@ static struct scx_sched *scx_alloc_and_add_sched(struct sched_ext_ops *ops)
if (ret < 0)
goto err_free_ei;
- sch->global_dsqs = kcalloc(nr_node_ids, sizeof(sch->global_dsqs[0]),
- GFP_KERNEL);
+ sch->global_dsqs = kzalloc_objs(sch->global_dsqs[0], nr_node_ids,
+ GFP_KERNEL);
if (!sch->global_dsqs) {
ret = -ENOMEM;
goto err_free_hash;
diff --git a/kernel/sched/ext_idle.c b/kernel/sched/ext_idle.c
index 3d9d404d5cd2..cd630772e164 100644
--- a/kernel/sched/ext_idle.c
+++ b/kernel/sched/ext_idle.c
@@ -664,8 +664,8 @@ void scx_idle_init_masks(void)
BUG_ON(!alloc_cpumask_var(&scx_idle_global_masks.smt, GFP_KERNEL));
/* Allocate per-node idle cpumasks */
- scx_idle_node_masks = kcalloc(num_possible_nodes(),
- sizeof(*scx_idle_node_masks), GFP_KERNEL);
+ scx_idle_node_masks = kzalloc_objs(*scx_idle_node_masks,
+ num_possible_nodes(), GFP_KERNEL);
BUG_ON(!scx_idle_node_masks);
for_each_node(i) {
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 1e22b7fadd70..f6f050f2faec 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -3427,7 +3427,7 @@ static void task_numa_work(struct callback_head *work)
if (!vma->numab_state) {
struct vma_numab_state *ptr;
- ptr = kzalloc(sizeof(*ptr), GFP_KERNEL);
+ ptr = kzalloc_obj(*ptr, GFP_KERNEL);
if (!ptr)
continue;
@@ -13622,10 +13622,10 @@ int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent)
struct cfs_rq *cfs_rq;
int i;
- tg->cfs_rq = kcalloc(nr_cpu_ids, sizeof(cfs_rq), GFP_KERNEL);
+ tg->cfs_rq = kzalloc_objs(cfs_rq, nr_cpu_ids, GFP_KERNEL);
if (!tg->cfs_rq)
goto err;
- tg->se = kcalloc(nr_cpu_ids, sizeof(se), GFP_KERNEL);
+ tg->se = kzalloc_objs(se, nr_cpu_ids, GFP_KERNEL);
if (!tg->se)
goto err;
diff --git a/kernel/sched/psi.c b/kernel/sched/psi.c
index 59fdb7ebbf22..bf8a70598a09 100644
--- a/kernel/sched/psi.c
+++ b/kernel/sched/psi.c
@@ -1114,7 +1114,7 @@ int psi_cgroup_alloc(struct cgroup *cgroup)
if (!static_branch_likely(&psi_cgroups_enabled))
return 0;
- cgroup->psi = kzalloc(sizeof(struct psi_group), GFP_KERNEL);
+ cgroup->psi = kzalloc_obj(struct psi_group, GFP_KERNEL);
if (!cgroup->psi)
return -ENOMEM;
@@ -1340,7 +1340,7 @@ struct psi_trigger *psi_trigger_create(struct psi_group *group, char *buf,
if (threshold_us == 0 || threshold_us > window_us)
return ERR_PTR(-EINVAL);
- t = kmalloc(sizeof(*t), GFP_KERNEL);
+ t = kmalloc_obj(*t, GFP_KERNEL);
if (!t)
return ERR_PTR(-ENOMEM);
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index a7680477fa6f..e72df7045592 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -259,10 +259,10 @@ int alloc_rt_sched_group(struct task_group *tg, struct task_group *parent)
if (!rt_group_sched_enabled())
return 1;
- tg->rt_rq = kcalloc(nr_cpu_ids, sizeof(rt_rq), GFP_KERNEL);
+ tg->rt_rq = kzalloc_objs(rt_rq, nr_cpu_ids, GFP_KERNEL);
if (!tg->rt_rq)
goto err;
- tg->rt_se = kcalloc(nr_cpu_ids, sizeof(rt_se), GFP_KERNEL);
+ tg->rt_se = kzalloc_objs(rt_se, nr_cpu_ids, GFP_KERNEL);
if (!tg->rt_se)
goto err;
diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
index ac268da91778..ac54fcae5de7 100644
--- a/kernel/sched/topology.c
+++ b/kernel/sched/topology.c
@@ -350,7 +350,7 @@ static struct perf_domain *pd_init(int cpu)
return NULL;
}
- pd = kzalloc(sizeof(*pd), GFP_KERNEL);
+ pd = kzalloc_obj(*pd, GFP_KERNEL);
if (!pd)
return NULL;
pd->em_pd = obj;
@@ -589,7 +589,7 @@ static struct root_domain *alloc_rootdomain(void)
{
struct root_domain *rd;
- rd = kzalloc(sizeof(*rd), GFP_KERNEL);
+ rd = kzalloc_obj(*rd, GFP_KERNEL);
if (!rd)
return NULL;
@@ -1998,7 +1998,7 @@ static int sched_record_numa_dist(int offline_node, int (*n_dist)(int, int),
*/
nr_levels = bitmap_weight(distance_map, NR_DISTANCE_VALUES);
- distances = kcalloc(nr_levels, sizeof(int), GFP_KERNEL);
+ distances = kzalloc_objs(int, nr_levels, GFP_KERNEL);
if (!distances)
return -ENOMEM;
@@ -2734,7 +2734,7 @@ cpumask_var_t *alloc_sched_domains(unsigned int ndoms)
int i;
cpumask_var_t *doms;
- doms = kmalloc_array(ndoms, sizeof(*doms), GFP_KERNEL);
+ doms = kmalloc_objs(*doms, ndoms, GFP_KERNEL);
if (!doms)
return NULL;
for (i = 0; i < ndoms; i++) {
diff --git a/kernel/seccomp.c b/kernel/seccomp.c
index 25f62867a16d..b2297243071d 100644
--- a/kernel/seccomp.c
+++ b/kernel/seccomp.c
@@ -693,7 +693,7 @@ static struct seccomp_filter *seccomp_prepare_filter(struct sock_fprog *fprog)
return ERR_PTR(-EACCES);
/* Allocate a new seccomp_filter */
- sfilter = kzalloc(sizeof(*sfilter), GFP_KERNEL | __GFP_NOWARN);
+ sfilter = kzalloc_obj(*sfilter, GFP_KERNEL | __GFP_NOWARN);
if (!sfilter)
return ERR_PTR(-ENOMEM);
@@ -1893,7 +1893,7 @@ static struct file *init_listener(struct seccomp_filter *filter)
struct file *ret;
ret = ERR_PTR(-ENOMEM);
- filter->notif = kzalloc(sizeof(*(filter->notif)), GFP_KERNEL);
+ filter->notif = kzalloc_obj(*(filter->notif), GFP_KERNEL);
if (!filter->notif)
goto out;
diff --git a/kernel/static_call_inline.c b/kernel/static_call_inline.c
index 269683d41aa9..864ae2da708f 100644
--- a/kernel/static_call_inline.c
+++ b/kernel/static_call_inline.c
@@ -255,7 +255,7 @@ static int __static_call_init(struct module *mod,
goto do_transform;
}
- site_mod = kzalloc(sizeof(*site_mod), GFP_KERNEL);
+ site_mod = kzalloc_obj(*site_mod, GFP_KERNEL);
if (!site_mod)
return -ENOMEM;
@@ -271,7 +271,7 @@ static int __static_call_init(struct module *mod,
key->mods = site_mod;
- site_mod = kzalloc(sizeof(*site_mod), GFP_KERNEL);
+ site_mod = kzalloc_obj(*site_mod, GFP_KERNEL);
if (!site_mod)
return -ENOMEM;
}
diff --git a/kernel/time/namespace.c b/kernel/time/namespace.c
index e76be24b132c..652744e00eb4 100644
--- a/kernel/time/namespace.c
+++ b/kernel/time/namespace.c
@@ -89,7 +89,7 @@ static struct time_namespace *clone_time_ns(struct user_namespace *user_ns,
goto fail;
err = -ENOMEM;
- ns = kzalloc(sizeof(*ns), GFP_KERNEL_ACCOUNT);
+ ns = kzalloc_obj(*ns, GFP_KERNEL_ACCOUNT);
if (!ns)
goto fail_dec;
diff --git a/kernel/time/posix-clock.c b/kernel/time/posix-clock.c
index 101a0f7c43e0..3a67e7e4c875 100644
--- a/kernel/time/posix-clock.c
+++ b/kernel/time/posix-clock.c
@@ -103,7 +103,7 @@ static int posix_clock_open(struct inode *inode, struct file *fp)
err = -ENODEV;
goto out;
}
- pccontext = kzalloc(sizeof(*pccontext), GFP_KERNEL);
+ pccontext = kzalloc_obj(*pccontext, GFP_KERNEL);
if (!pccontext) {
err = -ENOMEM;
goto out;
diff --git a/kernel/time/timer_migration.c b/kernel/time/timer_migration.c
index 6da9cd562b20..21e72318aeb8 100644
--- a/kernel/time/timer_migration.c
+++ b/kernel/time/timer_migration.c
@@ -1766,7 +1766,7 @@ static int tmigr_setup_groups(unsigned int cpu, unsigned int node,
int i, top = 0, err = 0, start_lvl = 0;
bool root_mismatch = false;
- stack = kcalloc(tmigr_hierarchy_levels, sizeof(*stack), GFP_KERNEL);
+ stack = kzalloc_objs(*stack, tmigr_hierarchy_levels, GFP_KERNEL);
if (!stack)
return -ENOMEM;
@@ -2001,7 +2001,8 @@ static int __init tmigr_init(void)
*/
tmigr_crossnode_level = cpulvl;
- tmigr_level_list = kcalloc(tmigr_hierarchy_levels, sizeof(struct list_head), GFP_KERNEL);
+ tmigr_level_list = kzalloc_objs(struct list_head,
+ tmigr_hierarchy_levels, GFP_KERNEL);
if (!tmigr_level_list)
goto err;
diff --git a/kernel/torture.c b/kernel/torture.c
index 1ea9f67953a7..27c9bb6122d8 100644
--- a/kernel/torture.c
+++ b/kernel/torture.c
@@ -494,7 +494,7 @@ void torture_shuffle_task_register(struct task_struct *tp)
if (WARN_ON_ONCE(tp == NULL))
return;
- stp = kmalloc(sizeof(*stp), GFP_KERNEL);
+ stp = kmalloc_obj(*stp, GFP_KERNEL);
if (WARN_ON_ONCE(stp == NULL))
return;
stp->st_t = tp;
diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
index e6988929ead2..5526b141b433 100644
--- a/kernel/trace/blktrace.c
+++ b/kernel/trace/blktrace.c
@@ -671,7 +671,7 @@ static struct blk_trace *blk_trace_setup_prepare(struct request_queue *q,
return ERR_PTR(-EBUSY);
}
- bt = kzalloc(sizeof(*bt), GFP_KERNEL);
+ bt = kzalloc_obj(*bt, GFP_KERNEL);
if (!bt)
return ERR_PTR(-ENOMEM);
@@ -1904,7 +1904,7 @@ static int blk_trace_setup_queue(struct request_queue *q,
struct blk_trace *bt = NULL;
int ret = -ENOMEM;
- bt = kzalloc(sizeof(*bt), GFP_KERNEL);
+ bt = kzalloc_obj(*bt, GFP_KERNEL);
if (!bt)
return -ENOMEM;
diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
index eadaef8592a3..c09268c6e9b7 100644
--- a/kernel/trace/bpf_trace.c
+++ b/kernel/trace/bpf_trace.c
@@ -2243,7 +2243,7 @@ static int bpf_event_notify(struct notifier_block *nb, unsigned long op,
switch (op) {
case MODULE_STATE_COMING:
- btm = kzalloc(sizeof(*btm), GFP_KERNEL);
+ btm = kzalloc_obj(*btm, GFP_KERNEL);
if (btm) {
btm->module = module;
list_add(&btm->list, &bpf_trace_modules);
@@ -2819,7 +2819,7 @@ int bpf_kprobe_multi_link_attach(const union bpf_attr *attr, struct bpf_prog *pr
goto error;
}
- link = kzalloc(sizeof(*link), GFP_KERNEL);
+ link = kzalloc_obj(*link, GFP_KERNEL);
if (!link) {
err = -ENOMEM;
goto error;
@@ -3238,8 +3238,8 @@ int bpf_uprobe_multi_link_attach(const union bpf_attr *attr, struct bpf_prog *pr
err = -ENOMEM;
- link = kzalloc(sizeof(*link), GFP_KERNEL);
- uprobes = kvcalloc(cnt, sizeof(*uprobes), GFP_KERNEL);
+ link = kzalloc_obj(*link, GFP_KERNEL);
+ uprobes = kvzalloc_objs(*uprobes, cnt, GFP_KERNEL);
if (!uprobes || !link)
goto error_free;
diff --git a/kernel/trace/fprobe.c b/kernel/trace/fprobe.c
index 1188eefef07c..0d649ca71ce0 100644
--- a/kernel/trace/fprobe.c
+++ b/kernel/trace/fprobe.c
@@ -749,7 +749,7 @@ static int fprobe_init(struct fprobe *fp, unsigned long *addrs, int num)
return -E2BIG;
fp->entry_data_size = size;
- hlist_array = kzalloc(struct_size(hlist_array, array, num), GFP_KERNEL);
+ hlist_array = kzalloc_flex(*hlist_array, array, num, GFP_KERNEL);
if (!hlist_array)
return -ENOMEM;
@@ -805,7 +805,7 @@ int register_fprobe(struct fprobe *fp, const char *filter, const char *notfilter
if (!addrs)
return -ENOMEM;
- mods = kcalloc(num, sizeof(*mods), GFP_KERNEL);
+ mods = kzalloc_objs(*mods, num, GFP_KERNEL);
if (!mods)
return -ENOMEM;
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 1ce17c8af409..fb3915a67013 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -702,7 +702,7 @@ static int ftrace_profile_init_cpu(int cpu)
*/
size = FTRACE_PROFILE_HASH_SIZE;
- stat->hash = kcalloc(size, sizeof(struct hlist_head), GFP_KERNEL);
+ stat->hash = kzalloc_objs(struct hlist_head, size, GFP_KERNEL);
if (!stat->hash)
return -ENOMEM;
@@ -1215,7 +1215,7 @@ add_ftrace_hash_entry_direct(struct ftrace_hash *hash, unsigned long ip, unsigne
{
struct ftrace_func_entry *entry;
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return NULL;
@@ -1335,12 +1335,12 @@ struct ftrace_hash *alloc_ftrace_hash(int size_bits)
struct ftrace_hash *hash;
int size;
- hash = kzalloc(sizeof(*hash), GFP_KERNEL);
+ hash = kzalloc_obj(*hash, GFP_KERNEL);
if (!hash)
return NULL;
size = 1 << size_bits;
- hash->buckets = kcalloc(size, sizeof(*hash->buckets), GFP_KERNEL);
+ hash->buckets = kzalloc_objs(*hash->buckets, size, GFP_KERNEL);
if (!hash->buckets) {
kfree(hash);
@@ -1360,7 +1360,7 @@ static int ftrace_add_mod(struct trace_array *tr,
struct ftrace_mod_load *ftrace_mod;
struct list_head *mod_head = enable ? &tr->mod_trace : &tr->mod_notrace;
- ftrace_mod = kzalloc(sizeof(*ftrace_mod), GFP_KERNEL);
+ ftrace_mod = kzalloc_obj(*ftrace_mod, GFP_KERNEL);
if (!ftrace_mod)
return -ENOMEM;
@@ -3911,7 +3911,7 @@ ftrace_allocate_pages(unsigned long num_to_init, unsigned long *num_pages)
if (!num_to_init)
return NULL;
- start_pg = pg = kzalloc(sizeof(*pg), GFP_KERNEL);
+ start_pg = pg = kzalloc_obj(*pg, GFP_KERNEL);
if (!pg)
return NULL;
@@ -3929,7 +3929,7 @@ ftrace_allocate_pages(unsigned long num_to_init, unsigned long *num_pages)
if (!num_to_init)
break;
- pg->next = kzalloc(sizeof(*pg), GFP_KERNEL);
+ pg->next = kzalloc_obj(*pg, GFP_KERNEL);
if (!pg->next)
goto free_pages;
@@ -4686,7 +4686,7 @@ ftrace_regex_open(struct ftrace_ops *ops, int flag,
if (tracing_check_open_get_tr(tr))
return -ENODEV;
- iter = kzalloc(sizeof(*iter), GFP_KERNEL);
+ iter = kzalloc_obj(*iter, GFP_KERNEL);
if (!iter)
goto out;
@@ -5334,7 +5334,7 @@ int ftrace_func_mapper_add_ip(struct ftrace_func_mapper *mapper,
if (entry)
return -EBUSY;
- map = kmalloc(sizeof(*map), GFP_KERNEL);
+ map = kmalloc_obj(*map, GFP_KERNEL);
if (!map)
return -ENOMEM;
@@ -5474,7 +5474,7 @@ register_ftrace_function_probe(char *glob, struct trace_array *tr,
}
}
if (!probe) {
- probe = kzalloc(sizeof(*probe), GFP_KERNEL);
+ probe = kzalloc_obj(*probe, GFP_KERNEL);
if (!probe) {
mutex_unlock(&ftrace_lock);
return -ENOMEM;
@@ -7223,7 +7223,7 @@ ftrace_graph_open(struct inode *inode, struct file *file)
if (unlikely(ftrace_disabled))
return -ENODEV;
- fgd = kmalloc(sizeof(*fgd), GFP_KERNEL);
+ fgd = kmalloc_obj(*fgd, GFP_KERNEL);
if (fgd == NULL)
return -ENOMEM;
@@ -7251,7 +7251,7 @@ ftrace_graph_notrace_open(struct inode *inode, struct file *file)
if (unlikely(ftrace_disabled))
return -ENODEV;
- fgd = kmalloc(sizeof(*fgd), GFP_KERNEL);
+ fgd = kmalloc_obj(*fgd, GFP_KERNEL);
if (fgd == NULL)
return -ENOMEM;
@@ -8041,7 +8041,7 @@ static void save_ftrace_mod_rec(struct ftrace_mod_map *mod_map,
if (!ret)
return;
- mod_func = kmalloc(sizeof(*mod_func), GFP_KERNEL);
+ mod_func = kmalloc_obj(*mod_func, GFP_KERNEL);
if (!mod_func)
return;
@@ -8068,7 +8068,7 @@ allocate_ftrace_mod_map(struct module *mod,
if (ftrace_disabled)
return NULL;
- mod_map = kmalloc(sizeof(*mod_map), GFP_KERNEL);
+ mod_map = kmalloc_obj(*mod_map, GFP_KERNEL);
if (!mod_map)
return NULL;
@@ -8241,7 +8241,7 @@ static void add_to_clear_hash_list(struct list_head *clear_list,
{
struct ftrace_init_func *func;
- func = kmalloc(sizeof(*func), GFP_KERNEL);
+ func = kmalloc_obj(*func, GFP_KERNEL);
if (!func) {
MEM_FAIL(1, "alloc failure, ftrace filter could be stale\n");
return;
diff --git a/kernel/trace/pid_list.c b/kernel/trace/pid_list.c
index dbee72d69d0a..6d12855b0277 100644
--- a/kernel/trace/pid_list.c
+++ b/kernel/trace/pid_list.c
@@ -359,7 +359,7 @@ static void pid_list_refill_irq(struct irq_work *iwork)
while (upper_count-- > 0) {
union upper_chunk *chunk;
- chunk = kzalloc(sizeof(*chunk), GFP_NOWAIT);
+ chunk = kzalloc_obj(*chunk, GFP_NOWAIT);
if (!chunk)
break;
*upper_next = chunk;
@@ -370,7 +370,7 @@ static void pid_list_refill_irq(struct irq_work *iwork)
while (lower_count-- > 0) {
union lower_chunk *chunk;
- chunk = kzalloc(sizeof(*chunk), GFP_NOWAIT);
+ chunk = kzalloc_obj(*chunk, GFP_NOWAIT);
if (!chunk)
break;
*lower_next = chunk;
@@ -423,7 +423,7 @@ struct trace_pid_list *trace_pid_list_alloc(void)
/* According to linux/thread.h, pids can be no bigger that 30 bits */
WARN_ON_ONCE(init_pid_ns.pid_max > (1 << 30));
- pid_list = kzalloc(sizeof(*pid_list), GFP_KERNEL);
+ pid_list = kzalloc_obj(*pid_list, GFP_KERNEL);
if (!pid_list)
return NULL;
@@ -435,7 +435,7 @@ struct trace_pid_list *trace_pid_list_alloc(void)
for (i = 0; i < CHUNK_ALLOC; i++) {
union upper_chunk *chunk;
- chunk = kzalloc(sizeof(*chunk), GFP_KERNEL);
+ chunk = kzalloc_obj(*chunk, GFP_KERNEL);
if (!chunk)
break;
chunk->next = pid_list->upper_list;
@@ -446,7 +446,7 @@ struct trace_pid_list *trace_pid_list_alloc(void)
for (i = 0; i < CHUNK_ALLOC; i++) {
union lower_chunk *chunk;
- chunk = kzalloc(sizeof(*chunk), GFP_KERNEL);
+ chunk = kzalloc_obj(*chunk, GFP_KERNEL);
if (!chunk)
break;
chunk->next = pid_list->lower_list;
diff --git a/kernel/trace/rethook.c b/kernel/trace/rethook.c
index 30d224946881..d09d5a204627 100644
--- a/kernel/trace/rethook.c
+++ b/kernel/trace/rethook.c
@@ -108,7 +108,7 @@ struct rethook *rethook_alloc(void *data, rethook_handler_t handler,
if (!handler || num <= 0 || size < sizeof(struct rethook_node))
return ERR_PTR(-EINVAL);
- rh = kzalloc(sizeof(struct rethook), GFP_KERNEL);
+ rh = kzalloc_obj(struct rethook, GFP_KERNEL);
if (!rh)
return ERR_PTR(-ENOMEM);
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
index 1e7a34a31851..e1395834886e 100644
--- a/kernel/trace/ring_buffer.c
+++ b/kernel/trace/ring_buffer.c
@@ -6001,7 +6001,7 @@ ring_buffer_read_start(struct trace_buffer *buffer, int cpu, gfp_t flags)
if (!cpumask_test_cpu(cpu, buffer->cpumask))
return NULL;
- iter = kzalloc(sizeof(*iter), flags);
+ iter = kzalloc_obj(*iter, flags);
if (!iter)
return NULL;
@@ -6509,7 +6509,7 @@ ring_buffer_alloc_read_page(struct trace_buffer *buffer, int cpu)
if (!cpumask_test_cpu(cpu, buffer->cpumask))
return ERR_PTR(-ENODEV);
- bpage = kzalloc(sizeof(*bpage), GFP_KERNEL);
+ bpage = kzalloc_obj(*bpage, GFP_KERNEL);
if (!bpage)
return ERR_PTR(-ENOMEM);
@@ -7190,7 +7190,7 @@ static int __rb_map_vma(struct ring_buffer_per_cpu *cpu_buffer,
nr_pages = nr_vma_pages;
- pages = kcalloc(nr_pages, sizeof(*pages), GFP_KERNEL);
+ pages = kzalloc_objs(*pages, nr_pages, GFP_KERNEL);
if (!pages)
return -ENOMEM;
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 2f6fbf9e7caf..83ae2e8e931c 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -1064,7 +1064,7 @@ int tracing_snapshot_cond_enable(struct trace_array *tr, void *cond_data,
cond_update_fn_t update)
{
struct cond_snapshot *cond_snapshot __free(kfree) =
- kzalloc(sizeof(*cond_snapshot), GFP_KERNEL);
+ kzalloc_obj(*cond_snapshot, GFP_KERNEL);
int ret;
if (!cond_snapshot)
@@ -3903,8 +3903,8 @@ __tracing_open(struct inode *inode, struct file *file, bool snapshot)
if (!iter)
return ERR_PTR(-ENOMEM);
- iter->buffer_iter = kcalloc(nr_cpu_ids, sizeof(*iter->buffer_iter),
- GFP_KERNEL);
+ iter->buffer_iter = kzalloc_objs(*iter->buffer_iter, nr_cpu_ids,
+ GFP_KERNEL);
if (!iter->buffer_iter)
goto release;
@@ -5132,7 +5132,7 @@ trace_insert_eval_map_file(struct module *mod, struct trace_eval_map **start,
* where the head holds the module and length of array, and the
* tail holds a pointer to the next list.
*/
- map_array = kmalloc_array(len + 2, sizeof(*map_array), GFP_KERNEL);
+ map_array = kmalloc_objs(*map_array, len + 2, GFP_KERNEL);
if (!map_array) {
pr_warn("Unable to allocate trace eval mapping\n");
return;
@@ -5809,7 +5809,7 @@ static int tracing_open_pipe(struct inode *inode, struct file *filp)
goto fail_pipe_on_cpu;
/* create a buffer to store the information to pass to userspace */
- iter = kzalloc(sizeof(*iter), GFP_KERNEL);
+ iter = kzalloc_obj(*iter, GFP_KERNEL);
if (!iter) {
ret = -ENOMEM;
goto fail_alloc_iter;
@@ -6628,7 +6628,7 @@ static int user_buffer_init(struct trace_user_buf_info **tinfo, size_t size)
if (!*tinfo) {
alloc = true;
- *tinfo = kzalloc(sizeof(**tinfo), GFP_KERNEL);
+ *tinfo = kzalloc_obj(**tinfo, GFP_KERNEL);
if (!*tinfo)
return -ENOMEM;
}
@@ -7153,10 +7153,10 @@ static int tracing_snapshot_open(struct inode *inode, struct file *file)
} else {
/* Writes still need the seq_file to hold the private data */
ret = -ENOMEM;
- m = kzalloc(sizeof(*m), GFP_KERNEL);
+ m = kzalloc_obj(*m, GFP_KERNEL);
if (!m)
goto out;
- iter = kzalloc(sizeof(*iter), GFP_KERNEL);
+ iter = kzalloc_obj(*iter, GFP_KERNEL);
if (!iter) {
kfree(m);
goto out;
@@ -7545,7 +7545,7 @@ static struct tracing_log_err *alloc_tracing_log_err(int len)
{
struct tracing_log_err *err;
- err = kzalloc(sizeof(*err), GFP_KERNEL);
+ err = kzalloc_obj(*err, GFP_KERNEL);
if (!err)
return ERR_PTR(-ENOMEM);
@@ -7804,7 +7804,7 @@ static int tracing_buffers_open(struct inode *inode, struct file *filp)
if (ret)
return ret;
- info = kvzalloc(sizeof(*info), GFP_KERNEL);
+ info = kvzalloc_obj(*info, GFP_KERNEL);
if (!info) {
trace_array_put(tr);
return -ENOMEM;
@@ -8065,7 +8065,7 @@ tracing_buffers_splice_read(struct file *file, loff_t *ppos,
struct page *page;
int r;
- ref = kzalloc(sizeof(*ref), GFP_KERNEL);
+ ref = kzalloc_obj(*ref, GFP_KERNEL);
if (!ref) {
ret = -ENOMEM;
break;
@@ -8284,7 +8284,7 @@ tracing_stats_read(struct file *filp, char __user *ubuf,
unsigned long long t;
unsigned long usec_rem;
- s = kmalloc(sizeof(*s), GFP_KERNEL);
+ s = kmalloc_obj(*s, GFP_KERNEL);
if (!s)
return -ENOMEM;
@@ -8878,7 +8878,7 @@ create_trace_option_files(struct trace_array *tr, struct tracer *tracer,
for (cnt = 0; opts[cnt].name; cnt++)
;
- topts = kcalloc(cnt + 1, sizeof(*topts), GFP_KERNEL);
+ topts = kzalloc_objs(*topts, cnt + 1, GFP_KERNEL);
if (!topts)
return 0;
@@ -8950,7 +8950,7 @@ static int add_tracer(struct trace_array *tr, struct tracer *tracer)
if (!trace_ok_for_array(tracer, tr))
return 0;
- t = kmalloc(sizeof(*t), GFP_KERNEL);
+ t = kmalloc_obj(*t, GFP_KERNEL);
if (!t)
return -ENOMEM;
@@ -8967,7 +8967,7 @@ static int add_tracer(struct trace_array *tr, struct tracer *tracer)
* If the tracer defines default flags, it means the flags are
* per trace instance.
*/
- flags = kmalloc(sizeof(*flags), GFP_KERNEL);
+ flags = kmalloc_obj(*flags, GFP_KERNEL);
if (!flags)
return -ENOMEM;
@@ -9310,7 +9310,8 @@ static void setup_trace_scratch(struct trace_array *tr,
mod_addr_comp, NULL, NULL);
if (IS_ENABLED(CONFIG_MODULES)) {
- module_delta = kzalloc(struct_size(module_delta, delta, nr_entries), GFP_KERNEL);
+ module_delta = kzalloc_flex(*module_delta, delta, nr_entries,
+ GFP_KERNEL);
if (!module_delta) {
pr_info("module_delta allocation failed. Not able to decode module address.");
goto reset;
@@ -9537,7 +9538,7 @@ trace_array_create_systems(const char *name, const char *systems,
int ret;
ret = -ENOMEM;
- tr = kzalloc(sizeof(*tr), GFP_KERNEL);
+ tr = kzalloc_obj(*tr, GFP_KERNEL);
if (!tr)
return ERR_PTR(ret);
@@ -10928,8 +10929,8 @@ void __init ftrace_boot_snapshot(void)
void __init early_trace_init(void)
{
if (tracepoint_printk) {
- tracepoint_print_iter =
- kzalloc(sizeof(*tracepoint_print_iter), GFP_KERNEL);
+ tracepoint_print_iter = kzalloc_obj(*tracepoint_print_iter,
+ GFP_KERNEL);
if (MEM_FAIL(!tracepoint_print_iter,
"Failed to allocate trace iterator\n"))
tracepoint_printk = 0;
diff --git a/kernel/trace/trace_btf.c b/kernel/trace/trace_btf.c
index 5bbdbcbbde3c..1d3c42527736 100644
--- a/kernel/trace/trace_btf.c
+++ b/kernel/trace/trace_btf.c
@@ -78,7 +78,7 @@ const struct btf_member *btf_find_struct_member(struct btf *btf,
const char *name;
int i, top = 0;
- anon_stack = kcalloc(BTF_ANON_STACK_MAX, sizeof(*anon_stack), GFP_KERNEL);
+ anon_stack = kzalloc_objs(*anon_stack, BTF_ANON_STACK_MAX, GFP_KERNEL);
if (!anon_stack)
return ERR_PTR(-ENOMEM);
diff --git a/kernel/trace/trace_eprobe.c b/kernel/trace/trace_eprobe.c
index 3ee39715d5e4..3adc9a8c29a9 100644
--- a/kernel/trace/trace_eprobe.c
+++ b/kernel/trace/trace_eprobe.c
@@ -211,7 +211,7 @@ static struct trace_eprobe *alloc_event_probe(const char *group,
sys_name = event->class->system;
event_name = trace_event_name(event);
- ep = kzalloc(struct_size(ep, tp.args, nargs), GFP_KERNEL);
+ ep = kzalloc_flex(*ep, tp.args, nargs, GFP_KERNEL);
if (!ep) {
trace_event_put_ref(event);
return ERR_PTR(-ENOMEM);
@@ -529,8 +529,8 @@ new_eprobe_trigger(struct trace_eprobe *ep, struct trace_event_file *file)
struct eprobe_data *edata;
int ret;
- edata = kzalloc(sizeof(*edata), GFP_KERNEL);
- trigger = kzalloc(sizeof(*trigger), GFP_KERNEL);
+ edata = kzalloc_obj(*edata, GFP_KERNEL);
+ trigger = kzalloc_obj(*trigger, GFP_KERNEL);
if (!trigger || !edata) {
ret = -ENOMEM;
goto error;
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index b659653dc03a..1d5ce0244f8c 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -976,7 +976,7 @@ static int cache_mod(struct trace_array *tr, const char *mod, int set,
if (!set)
return remove_cache_mod(tr, mod, match, system, event);
- event_mod = kzalloc(sizeof(*event_mod), GFP_KERNEL);
+ event_mod = kzalloc_obj(*event_mod, GFP_KERNEL);
if (!event_mod)
return -ENOMEM;
@@ -1648,7 +1648,7 @@ static void *s_start(struct seq_file *m, loff_t *pos)
struct set_event_iter *iter;
loff_t l;
- iter = kzalloc(sizeof(*iter), GFP_KERNEL);
+ iter = kzalloc_obj(*iter, GFP_KERNEL);
mutex_lock(&event_mutex);
if (!iter)
return NULL;
@@ -2206,7 +2206,7 @@ event_filter_read(struct file *filp, char __user *ubuf, size_t cnt,
if (*ppos)
return 0;
- s = kmalloc(sizeof(*s), GFP_KERNEL);
+ s = kmalloc_obj(*s, GFP_KERNEL);
if (!s)
return -ENOMEM;
@@ -2320,7 +2320,7 @@ static int system_tr_open(struct inode *inode, struct file *filp)
int ret;
/* Make a temporary dir that has no system but points to tr */
- dir = kzalloc(sizeof(*dir), GFP_KERNEL);
+ dir = kzalloc_obj(*dir, GFP_KERNEL);
if (!dir)
return -ENOMEM;
@@ -2366,7 +2366,7 @@ subsystem_filter_read(struct file *filp, char __user *ubuf, size_t cnt,
if (*ppos)
return 0;
- s = kmalloc(sizeof(*s), GFP_KERNEL);
+ s = kmalloc_obj(*s, GFP_KERNEL);
if (!s)
return -ENOMEM;
@@ -2416,7 +2416,7 @@ show_header_page_file(struct file *filp, char __user *ubuf, size_t cnt, loff_t *
if (*ppos)
return 0;
- s = kmalloc(sizeof(*s), GFP_KERNEL);
+ s = kmalloc_obj(*s, GFP_KERNEL);
if (!s)
return -ENOMEM;
@@ -2440,7 +2440,7 @@ show_header_event_file(struct file *filp, char __user *ubuf, size_t cnt, loff_t
if (*ppos)
return 0;
- s = kmalloc(sizeof(*s), GFP_KERNEL);
+ s = kmalloc_obj(*s, GFP_KERNEL);
if (!s)
return -ENOMEM;
@@ -2881,7 +2881,7 @@ create_new_subsystem(const char *name)
struct event_subsystem *system;
/* need to create new entry */
- system = kmalloc(sizeof(*system), GFP_KERNEL);
+ system = kmalloc_obj(*system, GFP_KERNEL);
if (!system)
return NULL;
@@ -2892,7 +2892,7 @@ create_new_subsystem(const char *name)
if (!system->name)
goto out_free;
- system->filter = kzalloc(sizeof(struct event_filter), GFP_KERNEL);
+ system->filter = kzalloc_obj(struct event_filter, GFP_KERNEL);
if (!system->filter)
goto out_free;
@@ -2960,7 +2960,7 @@ event_subsystem_dir(struct trace_array *tr, const char *name,
}
}
- dir = kmalloc(sizeof(*dir), GFP_KERNEL);
+ dir = kmalloc_obj(*dir, GFP_KERNEL);
if (!dir)
goto out_fail;
@@ -3403,7 +3403,7 @@ static void add_str_to_module(struct module *module, char *str)
{
struct module_string *modstr;
- modstr = kmalloc(sizeof(*modstr), GFP_KERNEL);
+ modstr = kmalloc_obj(*modstr, GFP_KERNEL);
/*
* If we failed to allocate memory here, then we'll just
@@ -4365,7 +4365,7 @@ event_enable_func(struct trace_array *tr, struct ftrace_hash *hash,
goto out_put;
ret = -ENOMEM;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
goto out_put;
diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c
index 7001e34476ee..b84bdad362e9 100644
--- a/kernel/trace/trace_events_filter.c
+++ b/kernel/trace/trace_events_filter.c
@@ -485,10 +485,10 @@ predicate_parse(const char *str, int nr_parens, int nr_preds,
nr_preds += 2; /* For TRUE and FALSE */
- op_stack = kmalloc_array(nr_parens, sizeof(*op_stack), GFP_KERNEL);
+ op_stack = kmalloc_objs(*op_stack, nr_parens, GFP_KERNEL);
if (!op_stack)
return ERR_PTR(-ENOMEM);
- prog_stack = kcalloc(nr_preds, sizeof(*prog_stack), GFP_KERNEL);
+ prog_stack = kzalloc_objs(*prog_stack, nr_preds, GFP_KERNEL);
if (!prog_stack) {
parse_error(pe, -ENOMEM, 0);
goto out_free;
@@ -1213,7 +1213,7 @@ static void append_filter_err(struct trace_array *tr,
if (WARN_ON(!filter->filter_string))
return;
- s = kmalloc(sizeof(*s), GFP_KERNEL);
+ s = kmalloc_obj(*s, GFP_KERNEL);
if (!s)
return;
trace_seq_init(s);
@@ -1394,13 +1394,13 @@ static void try_delay_free_filter(struct event_filter *filter)
struct filter_head *head;
struct filter_list *item;
- head = kmalloc(sizeof(*head), GFP_KERNEL);
+ head = kmalloc_obj(*head, GFP_KERNEL);
if (!head)
goto free_now;
INIT_LIST_HEAD(&head->list);
- item = kmalloc(sizeof(*item), GFP_KERNEL);
+ item = kmalloc_obj(*item, GFP_KERNEL);
if (!item) {
kfree(head);
goto free_now;
@@ -1442,7 +1442,7 @@ static void filter_free_subsystem_filters(struct trace_subsystem_dir *dir,
struct filter_head *head;
struct filter_list *item;
- head = kmalloc(sizeof(*head), GFP_KERNEL);
+ head = kmalloc_obj(*head, GFP_KERNEL);
if (!head)
goto free_now;
@@ -1451,7 +1451,7 @@ static void filter_free_subsystem_filters(struct trace_subsystem_dir *dir,
list_for_each_entry(file, &tr->events, list) {
if (file->system != dir)
continue;
- item = kmalloc(sizeof(*item), GFP_KERNEL);
+ item = kmalloc_obj(*item, GFP_KERNEL);
if (!item)
goto free_now;
item->filter = event_filter(file);
@@ -1459,7 +1459,7 @@ static void filter_free_subsystem_filters(struct trace_subsystem_dir *dir,
event_clear_filter(file);
}
- item = kmalloc(sizeof(*item), GFP_KERNEL);
+ item = kmalloc_obj(*item, GFP_KERNEL);
if (!item)
goto free_now;
@@ -1708,7 +1708,7 @@ static int parse_pred(const char *str, void *data,
s = i;
- pred = kzalloc(sizeof(*pred), GFP_KERNEL);
+ pred = kzalloc_obj(*pred, GFP_KERNEL);
if (!pred)
return -ENOMEM;
@@ -1819,7 +1819,7 @@ static int parse_pred(const char *str, void *data,
goto err_free;
}
- pred->regex = kzalloc(sizeof(*pred->regex), GFP_KERNEL);
+ pred->regex = kzalloc_obj(*pred->regex, GFP_KERNEL);
if (!pred->regex)
goto err_mem;
pred->regex->len = len;
@@ -1984,7 +1984,7 @@ static int parse_pred(const char *str, void *data,
goto err_free;
}
- pred->regex = kzalloc(sizeof(*pred->regex), GFP_KERNEL);
+ pred->regex = kzalloc_obj(*pred->regex, GFP_KERNEL);
if (!pred->regex)
goto err_mem;
pred->regex->len = len;
@@ -2261,7 +2261,7 @@ static int process_system_preds(struct trace_subsystem_dir *dir,
bool fail = true;
int err;
- filter_list = kmalloc(sizeof(*filter_list), GFP_KERNEL);
+ filter_list = kmalloc_obj(*filter_list, GFP_KERNEL);
if (!filter_list)
return -ENOMEM;
@@ -2272,7 +2272,7 @@ static int process_system_preds(struct trace_subsystem_dir *dir,
if (file->system != dir)
continue;
- filter = kzalloc(sizeof(*filter), GFP_KERNEL);
+ filter = kzalloc_obj(*filter, GFP_KERNEL);
if (!filter)
goto fail_mem;
@@ -2289,7 +2289,7 @@ static int process_system_preds(struct trace_subsystem_dir *dir,
event_set_filtered_flag(file);
- filter_item = kzalloc(sizeof(*filter_item), GFP_KERNEL);
+ filter_item = kzalloc_obj(*filter_item, GFP_KERNEL);
if (!filter_item)
goto fail_mem;
@@ -2343,14 +2343,14 @@ static int create_filter_start(char *filter_string, bool set_str,
if (WARN_ON_ONCE(*pse || *filterp))
return -EINVAL;
- filter = kzalloc(sizeof(*filter), GFP_KERNEL);
+ filter = kzalloc_obj(*filter, GFP_KERNEL);
if (filter && set_str) {
filter->filter_string = kstrdup(filter_string, GFP_KERNEL);
if (!filter->filter_string)
err = -ENOMEM;
}
- pe = kzalloc(sizeof(*pe), GFP_KERNEL);
+ pe = kzalloc_obj(*pe, GFP_KERNEL);
if (!filter || !pe || err) {
kfree(pe);
diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
index 768df987419e..da42a087d646 100644
--- a/kernel/trace/trace_events_hist.c
+++ b/kernel/trace/trace_events_hist.c
@@ -732,7 +732,7 @@ static struct track_data *track_data_alloc(unsigned int key_len,
struct action_data *action_data,
struct hist_trigger_data *hist_data)
{
- struct track_data *data = kzalloc(sizeof(*data), GFP_KERNEL);
+ struct track_data *data = kzalloc_obj(*data, GFP_KERNEL);
struct hist_elt_data *elt_data;
if (!data)
@@ -748,7 +748,7 @@ static struct track_data *track_data_alloc(unsigned int key_len,
data->action_data = action_data;
data->hist_data = hist_data;
- elt_data = kzalloc(sizeof(*elt_data), GFP_KERNEL);
+ elt_data = kzalloc_obj(*elt_data, GFP_KERNEL);
if (!elt_data) {
track_data_free(data);
return ERR_PTR(-ENOMEM);
@@ -1086,7 +1086,7 @@ static int save_hist_vars(struct hist_trigger_data *hist_data)
if (tracing_check_open_get_tr(tr))
return -ENODEV;
- var_data = kzalloc(sizeof(*var_data), GFP_KERNEL);
+ var_data = kzalloc_obj(*var_data, GFP_KERNEL);
if (!var_data) {
trace_array_put(tr);
return -ENOMEM;
@@ -1548,7 +1548,7 @@ parse_hist_trigger_attrs(struct trace_array *tr, char *trigger_str)
struct hist_trigger_attrs *attrs;
int ret = 0;
- attrs = kzalloc(sizeof(*attrs), GFP_KERNEL);
+ attrs = kzalloc_obj(*attrs, GFP_KERNEL);
if (!attrs)
return ERR_PTR(-ENOMEM);
@@ -1646,7 +1646,7 @@ static int hist_trigger_elt_data_alloc(struct tracing_map_elt *elt)
struct hist_field *hist_field;
unsigned int i, n_str;
- elt_data = kzalloc(sizeof(*elt_data), GFP_KERNEL);
+ elt_data = kzalloc_obj(*elt_data, GFP_KERNEL);
if (!elt_data)
return -ENOMEM;
@@ -1962,7 +1962,7 @@ static struct hist_field *create_hist_field(struct hist_trigger_data *hist_data,
if (field && is_function_field(field))
return NULL;
- hist_field = kzalloc(sizeof(struct hist_field), GFP_KERNEL);
+ hist_field = kzalloc_obj(struct hist_field, GFP_KERNEL);
if (!hist_field)
return NULL;
@@ -3049,7 +3049,7 @@ create_field_var_hist(struct hist_trigger_data *target_hist_data,
if (!IS_ERR_OR_NULL(event_var))
return event_var;
- var_hist = kzalloc(sizeof(*var_hist), GFP_KERNEL);
+ var_hist = kzalloc_obj(*var_hist, GFP_KERNEL);
if (!var_hist)
return ERR_PTR(-ENOMEM);
@@ -3231,7 +3231,7 @@ static struct hist_field *create_var(struct hist_trigger_data *hist_data,
goto out;
}
- var = kzalloc(sizeof(struct hist_field), GFP_KERNEL);
+ var = kzalloc_obj(struct hist_field, GFP_KERNEL);
if (!var) {
var = ERR_PTR(-ENOMEM);
goto out;
@@ -3292,7 +3292,7 @@ static struct field_var *create_field_var(struct hist_trigger_data *hist_data,
goto err;
}
- field_var = kzalloc(sizeof(struct field_var), GFP_KERNEL);
+ field_var = kzalloc_obj(struct field_var, GFP_KERNEL);
if (!field_var) {
destroy_hist_field(val, 0);
kfree_const(var->type);
@@ -3831,7 +3831,7 @@ static struct action_data *track_data_parse(struct hist_trigger_data *hist_data,
int ret = -EINVAL;
char *var_str;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return ERR_PTR(-ENOMEM);
@@ -4198,7 +4198,7 @@ static struct action_data *onmatch_parse(struct trace_array *tr, char *str)
struct action_data *data;
int ret = -EINVAL;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return ERR_PTR(-ENOMEM);
@@ -5136,7 +5136,7 @@ create_hist_data(unsigned int map_bits,
struct hist_trigger_data *hist_data;
int ret = 0;
- hist_data = kzalloc(sizeof(*hist_data), GFP_KERNEL);
+ hist_data = kzalloc_obj(*hist_data, GFP_KERNEL);
if (!hist_data)
return ERR_PTR(-ENOMEM);
@@ -5674,8 +5674,8 @@ static int print_entries(struct seq_file *m,
(HIST_FIELD_FL_PERCENT | HIST_FIELD_FL_GRAPH)))
continue;
if (!stats) {
- stats = kcalloc(hist_data->n_vals, sizeof(*stats),
- GFP_KERNEL);
+ stats = kzalloc_objs(*stats, hist_data->n_vals,
+ GFP_KERNEL);
if (!stats) {
n_entries = -ENOMEM;
goto out;
@@ -5828,7 +5828,7 @@ static int event_hist_open(struct inode *inode, struct file *file)
goto err;
}
- hist_file = kzalloc(sizeof(*hist_file), GFP_KERNEL);
+ hist_file = kzalloc_obj(*hist_file, GFP_KERNEL);
if (!hist_file) {
ret = -ENOMEM;
goto err;
@@ -6602,7 +6602,7 @@ static int hist_register_trigger(char *glob,
data->private_data = named_data->private_data;
set_named_trigger_data(data, named_data);
/* Copy the command ops and update some of the functions */
- cmd_ops = kmalloc(sizeof(*cmd_ops), GFP_KERNEL);
+ cmd_ops = kmalloc_obj(*cmd_ops, GFP_KERNEL);
if (!cmd_ops) {
ret = -ENOMEM;
goto out;
diff --git a/kernel/trace/trace_events_synth.c b/kernel/trace/trace_events_synth.c
index ce42fbf16f4a..db74b2c663f8 100644
--- a/kernel/trace/trace_events_synth.c
+++ b/kernel/trace/trace_events_synth.c
@@ -711,7 +711,7 @@ static struct synth_field *parse_synth_field(int argc, char **argv,
*field_version = check_field_version(prefix, field_type, field_name);
- field = kzalloc(sizeof(*field), GFP_KERNEL);
+ field = kzalloc_obj(*field, GFP_KERNEL);
if (!field)
return ERR_PTR(-ENOMEM);
@@ -819,7 +819,7 @@ static struct tracepoint *alloc_synth_tracepoint(char *name)
{
struct tracepoint *tp;
- tp = kzalloc(sizeof(*tp), GFP_KERNEL);
+ tp = kzalloc_obj(*tp, GFP_KERNEL);
if (!tp)
return ERR_PTR(-ENOMEM);
@@ -973,7 +973,7 @@ static struct synth_event *alloc_synth_event(const char *name, int n_fields,
unsigned int i, j, n_dynamic_fields = 0;
struct synth_event *event;
- event = kzalloc(sizeof(*event), GFP_KERNEL);
+ event = kzalloc_obj(*event, GFP_KERNEL);
if (!event) {
event = ERR_PTR(-ENOMEM);
goto out;
@@ -986,7 +986,7 @@ static struct synth_event *alloc_synth_event(const char *name, int n_fields,
goto out;
}
- event->fields = kcalloc(n_fields, sizeof(*event->fields), GFP_KERNEL);
+ event->fields = kzalloc_objs(*event->fields, n_fields, GFP_KERNEL);
if (!event->fields) {
free_synth_event(event);
event = ERR_PTR(-ENOMEM);
@@ -998,9 +998,9 @@ static struct synth_event *alloc_synth_event(const char *name, int n_fields,
n_dynamic_fields++;
if (n_dynamic_fields) {
- event->dynamic_fields = kcalloc(n_dynamic_fields,
- sizeof(*event->dynamic_fields),
- GFP_KERNEL);
+ event->dynamic_fields = kzalloc_objs(*event->dynamic_fields,
+ n_dynamic_fields,
+ GFP_KERNEL);
if (!event->dynamic_fields) {
free_synth_event(event);
event = ERR_PTR(-ENOMEM);
diff --git a/kernel/trace/trace_events_trigger.c b/kernel/trace/trace_events_trigger.c
index 7fa26327c9c7..7ba3548a2f60 100644
--- a/kernel/trace/trace_events_trigger.c
+++ b/kernel/trace/trace_events_trigger.c
@@ -914,7 +914,7 @@ struct event_trigger_data *trigger_data_alloc(struct event_command *cmd_ops,
{
struct event_trigger_data *trigger_data;
- trigger_data = kzalloc(sizeof(*trigger_data), GFP_KERNEL);
+ trigger_data = kzalloc_obj(*trigger_data, GFP_KERNEL);
if (!trigger_data)
return NULL;
@@ -1724,7 +1724,7 @@ int event_enable_trigger_parse(struct event_command *cmd_ops,
#endif
ret = -ENOMEM;
- enable_data = kzalloc(sizeof(*enable_data), GFP_KERNEL);
+ enable_data = kzalloc_obj(*enable_data, GFP_KERNEL);
if (!enable_data)
return ret;
diff --git a/kernel/trace/trace_events_user.c b/kernel/trace/trace_events_user.c
index dca6e50b3b21..c35182cb7286 100644
--- a/kernel/trace/trace_events_user.c
+++ b/kernel/trace/trace_events_user.c
@@ -370,7 +370,7 @@ static struct user_event_group *user_event_group_create(void)
{
struct user_event_group *group;
- group = kzalloc(sizeof(*group), GFP_KERNEL);
+ group = kzalloc_obj(*group, GFP_KERNEL);
if (!group)
return NULL;
@@ -637,7 +637,7 @@ static bool user_event_enabler_dup(struct user_event_enabler *orig,
if (unlikely(test_bit(ENABLE_VAL_FREEING_BIT, ENABLE_BITOPS(orig))))
return true;
- enabler = kzalloc(sizeof(*enabler), GFP_NOWAIT | __GFP_ACCOUNT);
+ enabler = kzalloc_obj(*enabler, GFP_NOWAIT | __GFP_ACCOUNT);
if (!enabler)
return false;
@@ -706,7 +706,7 @@ static struct user_event_mm *user_event_mm_alloc(struct task_struct *t)
{
struct user_event_mm *user_mm;
- user_mm = kzalloc(sizeof(*user_mm), GFP_KERNEL_ACCOUNT);
+ user_mm = kzalloc_obj(*user_mm, GFP_KERNEL_ACCOUNT);
if (!user_mm)
return NULL;
@@ -892,7 +892,7 @@ static struct user_event_enabler
if (!user_mm)
return NULL;
- enabler = kzalloc(sizeof(*enabler), GFP_KERNEL_ACCOUNT);
+ enabler = kzalloc_obj(*enabler, GFP_KERNEL_ACCOUNT);
if (!enabler)
goto out;
@@ -1113,7 +1113,7 @@ static int user_event_add_field(struct user_event *user, const char *type,
struct ftrace_event_field *field;
int validator_flags = 0;
- field = kmalloc(sizeof(*field), GFP_KERNEL_ACCOUNT);
+ field = kmalloc_obj(*field, GFP_KERNEL_ACCOUNT);
if (!field)
return -ENOMEM;
@@ -1132,7 +1132,7 @@ static int user_event_add_field(struct user_event *user, const char *type,
if (strstr(type, "char") != NULL)
validator_flags |= VALIDATOR_ENSURE_NULL;
- validator = kmalloc(sizeof(*validator), GFP_KERNEL_ACCOUNT);
+ validator = kmalloc_obj(*validator, GFP_KERNEL_ACCOUNT);
if (!validator) {
kfree(field);
@@ -2105,7 +2105,7 @@ static int user_event_parse(struct user_event_group *group, char *name,
return 0;
}
- user = kzalloc(sizeof(*user), GFP_KERNEL_ACCOUNT);
+ user = kzalloc_obj(*user, GFP_KERNEL_ACCOUNT);
if (!user)
return -ENOMEM;
@@ -2315,7 +2315,7 @@ static int user_events_open(struct inode *node, struct file *file)
if (!group)
return -ENOENT;
- info = kzalloc(sizeof(*info), GFP_KERNEL_ACCOUNT);
+ info = kzalloc_obj(*info, GFP_KERNEL_ACCOUNT);
if (!info)
return -ENOMEM;
diff --git a/kernel/trace/trace_fprobe.c b/kernel/trace/trace_fprobe.c
index 262c0556e4af..7decd8383d67 100644
--- a/kernel/trace/trace_fprobe.c
+++ b/kernel/trace/trace_fprobe.c
@@ -99,7 +99,7 @@ static struct tracepoint_user *__tracepoint_user_init(const char *name, struct t
struct tracepoint_user *tuser __free(tuser_free) = NULL;
int ret;
- tuser = kzalloc(sizeof(*tuser), GFP_KERNEL);
+ tuser = kzalloc_obj(*tuser, GFP_KERNEL);
if (!tuser)
return NULL;
tuser->name = kstrdup(name, GFP_KERNEL);
@@ -579,7 +579,7 @@ static struct trace_fprobe *alloc_trace_fprobe(const char *group,
struct trace_fprobe *tf __free(free_trace_fprobe) = NULL;
int ret = -ENOMEM;
- tf = kzalloc(struct_size(tf, tp.args, nargs), GFP_KERNEL);
+ tf = kzalloc_flex(*tf, tp.args, nargs, GFP_KERNEL);
if (!tf)
return ERR_PTR(ret);
@@ -1403,7 +1403,7 @@ static int trace_fprobe_create_cb(int argc, const char *argv[])
struct traceprobe_parse_context *ctx __free(traceprobe_parse_context) = NULL;
int ret;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/kernel/trace/trace_functions.c b/kernel/trace/trace_functions.c
index c12795c2fb39..a7e4ad088acf 100644
--- a/kernel/trace/trace_functions.c
+++ b/kernel/trace/trace_functions.c
@@ -61,7 +61,7 @@ int ftrace_allocate_ftrace_ops(struct trace_array *tr)
if (tr->flags & TRACE_ARRAY_FL_GLOBAL)
return 0;
- ops = kzalloc(sizeof(*ops), GFP_KERNEL);
+ ops = kzalloc_obj(*ops, GFP_KERNEL);
if (!ops)
return -ENOMEM;
diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
index 1de6f1573621..73f0479aeac0 100644
--- a/kernel/trace/trace_functions_graph.c
+++ b/kernel/trace/trace_functions_graph.c
@@ -434,7 +434,7 @@ int allocate_fgraph_ops(struct trace_array *tr, struct ftrace_ops *ops)
{
struct fgraph_ops *gops;
- gops = kzalloc(sizeof(*gops), GFP_KERNEL);
+ gops = kzalloc_obj(*gops, GFP_KERNEL);
if (!gops)
return -ENOMEM;
@@ -1613,7 +1613,7 @@ void graph_trace_open(struct trace_iterator *iter)
/* We can be called in atomic context via ftrace_dump() */
gfpflags = (in_atomic() || irqs_disabled()) ? GFP_ATOMIC : GFP_KERNEL;
- data = kzalloc(sizeof(*data), gfpflags);
+ data = kzalloc_obj(*data, gfpflags);
if (!data)
goto out_err;
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
index b4f62d2e41ed..808b91873bd6 100644
--- a/kernel/trace/trace_kprobe.c
+++ b/kernel/trace/trace_kprobe.c
@@ -275,7 +275,7 @@ static struct trace_kprobe *alloc_trace_kprobe(const char *group,
struct trace_kprobe *tk __free(free_trace_kprobe) = NULL;
int ret = -ENOMEM;
- tk = kzalloc(struct_size(tk, tp.args, nargs), GFP_KERNEL);
+ tk = kzalloc_flex(*tk, tp.args, nargs, GFP_KERNEL);
if (!tk)
return ERR_PTR(ret);
@@ -1082,7 +1082,7 @@ static int trace_kprobe_create_cb(int argc, const char *argv[])
struct traceprobe_parse_context *ctx __free(traceprobe_parse_context) = NULL;
int ret;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
ctx->flags = TPARG_FL_KERNEL;
diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c
index c706544be60c..1c752a691317 100644
--- a/kernel/trace/trace_mmiotrace.c
+++ b/kernel/trace/trace_mmiotrace.c
@@ -101,7 +101,7 @@ static void mmio_pipe_open(struct trace_iterator *iter)
trace_seq_puts(s, "VERSION 20070824\n");
- hiter = kzalloc(sizeof(*hiter), GFP_KERNEL);
+ hiter = kzalloc_obj(*hiter, GFP_KERNEL);
if (!hiter)
return;
diff --git a/kernel/trace/trace_osnoise.c b/kernel/trace/trace_osnoise.c
index 827104d00bc0..51e7b0476a7f 100644
--- a/kernel/trace/trace_osnoise.c
+++ b/kernel/trace/trace_osnoise.c
@@ -122,7 +122,7 @@ static int osnoise_register_instance(struct trace_array *tr)
*/
lockdep_assert_held(&trace_types_lock);
- inst = kmalloc(sizeof(*inst), GFP_KERNEL);
+ inst = kmalloc_obj(*inst, GFP_KERNEL);
if (!inst)
return -ENOMEM;
diff --git a/kernel/trace/trace_printk.c b/kernel/trace/trace_printk.c
index 6a29e4350b55..05b61ec67622 100644
--- a/kernel/trace/trace_printk.c
+++ b/kernel/trace/trace_printk.c
@@ -69,7 +69,7 @@ void hold_module_trace_bprintk_format(const char **start, const char **end)
}
fmt = NULL;
- tb_fmt = kmalloc(sizeof(*tb_fmt), GFP_KERNEL);
+ tb_fmt = kmalloc_obj(*tb_fmt, GFP_KERNEL);
if (tb_fmt) {
fmt = kmalloc(strlen(*iter) + 1, GFP_KERNEL);
if (fmt) {
diff --git a/kernel/trace/trace_probe.c b/kernel/trace/trace_probe.c
index 2f571083ce9e..fff0879cb0e9 100644
--- a/kernel/trace/trace_probe.c
+++ b/kernel/trace/trace_probe.c
@@ -838,12 +838,12 @@ static int __store_entry_arg(struct trace_probe *tp, int argnum)
int i, offset, last_offset = 0;
if (!earg) {
- earg = kzalloc(sizeof(*tp->entry_arg), GFP_KERNEL);
+ earg = kzalloc_obj(*tp->entry_arg, GFP_KERNEL);
if (!earg)
return -ENOMEM;
earg->size = 2 * tp->nr_args + 1;
- earg->code = kcalloc(earg->size, sizeof(struct fetch_insn),
- GFP_KERNEL);
+ earg->code = kzalloc_objs(struct fetch_insn, earg->size,
+ GFP_KERNEL);
if (!earg->code) {
kfree(earg);
return -ENOMEM;
@@ -1499,7 +1499,7 @@ static int traceprobe_parse_probe_arg_body(const char *argv, ssize_t *size,
if (IS_ERR(type))
return PTR_ERR(type);
- code = tmp = kcalloc(FETCH_INSN_MAX, sizeof(*code), GFP_KERNEL);
+ code = tmp = kzalloc_objs(*code, FETCH_INSN_MAX, GFP_KERNEL);
if (!code)
return -ENOMEM;
code[FETCH_INSN_MAX - 1].op = FETCH_OP_END;
@@ -1543,7 +1543,7 @@ static int traceprobe_parse_probe_arg_body(const char *argv, ssize_t *size,
if (code->op == FETCH_OP_END)
break;
/* Shrink down the code buffer */
- parg->code = kcalloc(code - tmp + 1, sizeof(*code), GFP_KERNEL);
+ parg->code = kzalloc_objs(*code, code - tmp + 1, GFP_KERNEL);
if (!parg->code)
ret = -ENOMEM;
else
@@ -2149,7 +2149,7 @@ int trace_probe_add_file(struct trace_probe *tp, struct trace_event_file *file)
{
struct event_file_link *link;
- link = kmalloc(sizeof(*link), GFP_KERNEL);
+ link = kmalloc_obj(*link, GFP_KERNEL);
if (!link)
return -ENOMEM;
diff --git a/kernel/trace/trace_recursion_record.c b/kernel/trace/trace_recursion_record.c
index a520b11afb0d..852069484060 100644
--- a/kernel/trace/trace_recursion_record.c
+++ b/kernel/trace/trace_recursion_record.c
@@ -129,7 +129,7 @@ static void *recursed_function_seq_start(struct seq_file *m, loff_t *pos)
ret = &recursed_functions[*pos];
}
- tseq = kzalloc(sizeof(*tseq), GFP_KERNEL);
+ tseq = kzalloc_obj(*tseq, GFP_KERNEL);
if (!tseq)
return ERR_PTR(-ENOMEM);
diff --git a/kernel/trace/trace_sched_switch.c b/kernel/trace/trace_sched_switch.c
index c46d584ded3b..ded84f1d8121 100644
--- a/kernel/trace/trace_sched_switch.c
+++ b/kernel/trace/trace_sched_switch.c
@@ -444,8 +444,7 @@ int trace_alloc_tgid_map(void)
return 0;
tgid_map_max = init_pid_ns.pid_max;
- map = kvcalloc(tgid_map_max + 1, sizeof(*tgid_map),
- GFP_KERNEL);
+ map = kvzalloc_objs(*tgid_map, tgid_map_max + 1, GFP_KERNEL);
if (!map)
return -ENOMEM;
diff --git a/kernel/trace/trace_selftest.c b/kernel/trace/trace_selftest.c
index be53fe6fee6a..43ed16b3b160 100644
--- a/kernel/trace/trace_selftest.c
+++ b/kernel/trace/trace_selftest.c
@@ -248,7 +248,7 @@ static int trace_selftest_ops(struct trace_array *tr, int cnt)
goto out;
/* Add a dynamic probe */
- dyn_ops = kzalloc(sizeof(*dyn_ops), GFP_KERNEL);
+ dyn_ops = kzalloc_obj(*dyn_ops, GFP_KERNEL);
if (!dyn_ops) {
printk("MEMORY ERROR ");
goto out;
diff --git a/kernel/trace/trace_stat.c b/kernel/trace/trace_stat.c
index b3b5586f104d..3fec69e8a6d4 100644
--- a/kernel/trace/trace_stat.c
+++ b/kernel/trace/trace_stat.c
@@ -77,7 +77,7 @@ static int insert_stat(struct rb_root *root, void *stat, cmp_func_t cmp)
struct rb_node **new = &(root->rb_node), *parent = NULL;
struct stat_node *data;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
data->stat = stat;
@@ -322,7 +322,7 @@ int register_stat_tracer(struct tracer_stat *trace)
}
/* Init the session */
- session = kzalloc(sizeof(*session), GFP_KERNEL);
+ session = kzalloc_obj(*session, GFP_KERNEL);
if (!session)
return -ENOMEM;
diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
index e96d0063cbcf..2f495e46034f 100644
--- a/kernel/trace/trace_syscalls.c
+++ b/kernel/trace/trace_syscalls.c
@@ -617,7 +617,7 @@ static int syscall_fault_buffer_enable(void)
return 0;
}
- sbuf = kmalloc(sizeof(*sbuf), GFP_KERNEL);
+ sbuf = kmalloc_obj(*sbuf, GFP_KERNEL);
if (!sbuf)
return -ENOMEM;
@@ -1337,9 +1337,8 @@ void __init init_ftrace_syscalls(void)
void *ret;
if (!IS_ENABLED(CONFIG_HAVE_SPARSE_SYSCALL_NR)) {
- syscalls_metadata = kcalloc(NR_syscalls,
- sizeof(*syscalls_metadata),
- GFP_KERNEL);
+ syscalls_metadata = kzalloc_objs(*syscalls_metadata,
+ NR_syscalls, GFP_KERNEL);
if (!syscalls_metadata) {
WARN_ON(1);
return;
diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c
index 1b4f32e2b9bd..83c17b90daad 100644
--- a/kernel/trace/trace_uprobe.c
+++ b/kernel/trace/trace_uprobe.c
@@ -338,7 +338,7 @@ alloc_trace_uprobe(const char *group, const char *event, int nargs, bool is_ret)
struct trace_uprobe *tu;
int ret;
- tu = kzalloc(struct_size(tu, tp.args, nargs), GFP_KERNEL);
+ tu = kzalloc_flex(*tu, tp.args, nargs, GFP_KERNEL);
if (!tu)
return ERR_PTR(-ENOMEM);
@@ -699,7 +699,7 @@ static int __trace_uprobe_create(int argc, const char **argv)
memset(&path, 0, sizeof(path));
tu->filename = no_free_ptr(filename);
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
ctx->flags = (is_return ? TPARG_FL_RETURN : 0) | TPARG_FL_USER;
diff --git a/kernel/trace/tracing_map.c b/kernel/trace/tracing_map.c
index 7f8da4dab69d..ef28c6c52295 100644
--- a/kernel/trace/tracing_map.c
+++ b/kernel/trace/tracing_map.c
@@ -324,7 +324,7 @@ static struct tracing_map_array *tracing_map_array_alloc(unsigned int n_elts,
struct tracing_map_array *a;
unsigned int i;
- a = kzalloc(sizeof(*a), GFP_KERNEL);
+ a = kzalloc_obj(*a, GFP_KERNEL);
if (!a)
return NULL;
@@ -405,7 +405,7 @@ static struct tracing_map_elt *tracing_map_elt_alloc(struct tracing_map *map)
struct tracing_map_elt *elt;
int err = 0;
- elt = kzalloc(sizeof(*elt), GFP_KERNEL);
+ elt = kzalloc_obj(*elt, GFP_KERNEL);
if (!elt)
return ERR_PTR(-ENOMEM);
@@ -417,19 +417,19 @@ static struct tracing_map_elt *tracing_map_elt_alloc(struct tracing_map *map)
goto free;
}
- elt->fields = kcalloc(map->n_fields, sizeof(*elt->fields), GFP_KERNEL);
+ elt->fields = kzalloc_objs(*elt->fields, map->n_fields, GFP_KERNEL);
if (!elt->fields) {
err = -ENOMEM;
goto free;
}
- elt->vars = kcalloc(map->n_vars, sizeof(*elt->vars), GFP_KERNEL);
+ elt->vars = kzalloc_objs(*elt->vars, map->n_vars, GFP_KERNEL);
if (!elt->vars) {
err = -ENOMEM;
goto free;
}
- elt->var_set = kcalloc(map->n_vars, sizeof(*elt->var_set), GFP_KERNEL);
+ elt->var_set = kzalloc_objs(*elt->var_set, map->n_vars, GFP_KERNEL);
if (!elt->var_set) {
err = -ENOMEM;
goto free;
@@ -777,7 +777,7 @@ struct tracing_map *tracing_map_create(unsigned int map_bits,
map_bits > TRACING_MAP_BITS_MAX)
return ERR_PTR(-EINVAL);
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (!map)
return ERR_PTR(-ENOMEM);
@@ -949,7 +949,7 @@ create_sort_entry(void *key, struct tracing_map_elt *elt)
{
struct tracing_map_sort_entry *sort_entry;
- sort_entry = kzalloc(sizeof(*sort_entry), GFP_KERNEL);
+ sort_entry = kzalloc_obj(*sort_entry, GFP_KERNEL);
if (!sort_entry)
return NULL;
diff --git a/kernel/tracepoint.c b/kernel/tracepoint.c
index fd2ee879815c..8287a4ff3f18 100644
--- a/kernel/tracepoint.c
+++ b/kernel/tracepoint.c
@@ -103,8 +103,7 @@ static void tp_stub_func(void)
static inline void *allocate_probes(int count)
{
- struct tp_probes *p = kmalloc(struct_size(p, probes, count),
- GFP_KERNEL);
+ struct tp_probes *p = kmalloc_flex(*p, probes, count, GFP_KERNEL);
return p == NULL ? NULL : p->probes;
}
@@ -615,7 +614,7 @@ static int tracepoint_module_coming(struct module *mod)
if (trace_module_has_bad_taint(mod))
return 0;
- tp_mod = kmalloc(sizeof(struct tp_module), GFP_KERNEL);
+ tp_mod = kmalloc_obj(struct tp_module, GFP_KERNEL);
if (!tp_mod)
return -ENOMEM;
tp_mod->mod = mod;
diff --git a/kernel/ucount.c b/kernel/ucount.c
index fc4a8f2d3096..d1f723805c6d 100644
--- a/kernel/ucount.c
+++ b/kernel/ucount.c
@@ -163,7 +163,7 @@ struct ucounts *alloc_ucounts(struct user_namespace *ns, kuid_t uid)
if (ucounts)
return ucounts;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return NULL;
diff --git a/kernel/umh.c b/kernel/umh.c
index b4da45a3a7cf..cffda97d961c 100644
--- a/kernel/umh.c
+++ b/kernel/umh.c
@@ -359,7 +359,7 @@ struct subprocess_info *call_usermodehelper_setup(const char *path, char **argv,
void *data)
{
struct subprocess_info *sub_info;
- sub_info = kzalloc(sizeof(struct subprocess_info), gfp_mask);
+ sub_info = kzalloc_obj(struct subprocess_info, gfp_mask);
if (!sub_info)
goto out;
diff --git a/kernel/unwind/deferred.c b/kernel/unwind/deferred.c
index a88fb481c4a3..23a7d7ea93d4 100644
--- a/kernel/unwind/deferred.c
+++ b/kernel/unwind/deferred.c
@@ -120,8 +120,8 @@ int unwind_user_faultable(struct unwind_stacktrace *trace)
return -EINVAL;
if (!info->cache) {
- info->cache = kzalloc(struct_size(cache, entries, UNWIND_MAX_ENTRIES),
- GFP_KERNEL);
+ info->cache = kzalloc_flex(*cache, entries, UNWIND_MAX_ENTRIES,
+ GFP_KERNEL);
if (!info->cache)
return -ENOMEM;
}
diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
index 03cb63883d04..bb42a4c35dd3 100644
--- a/kernel/user_namespace.c
+++ b/kernel/user_namespace.c
@@ -794,9 +794,8 @@ static int insert_extent(struct uid_gid_map *map, struct uid_gid_extent *extent)
struct uid_gid_extent *forward;
/* Allocate memory for 340 mappings. */
- forward = kmalloc_array(UID_GID_MAP_MAX_EXTENTS,
- sizeof(struct uid_gid_extent),
- GFP_KERNEL);
+ forward = kmalloc_objs(struct uid_gid_extent,
+ UID_GID_MAP_MAX_EXTENTS, GFP_KERNEL);
if (!forward)
return -ENOMEM;
diff --git a/kernel/vhost_task.c b/kernel/vhost_task.c
index 27107dcc1cbf..bf84af48dce8 100644
--- a/kernel/vhost_task.c
+++ b/kernel/vhost_task.c
@@ -132,7 +132,7 @@ struct vhost_task *vhost_task_create(bool (*fn)(void *),
struct vhost_task *vtsk;
struct task_struct *tsk;
- vtsk = kzalloc(sizeof(*vtsk), GFP_KERNEL);
+ vtsk = kzalloc_obj(*vtsk, GFP_KERNEL);
if (!vtsk)
return ERR_PTR(-ENOMEM);
init_completion(&vtsk->exited);
diff --git a/kernel/watch_queue.c b/kernel/watch_queue.c
index 52f89f1137da..d966b8c99052 100644
--- a/kernel/watch_queue.c
+++ b/kernel/watch_queue.c
@@ -278,7 +278,7 @@ long watch_queue_set_size(struct pipe_inode_info *pipe, unsigned int nr_notes)
pipe->nr_accounted = nr_pages;
ret = -ENOMEM;
- pages = kcalloc(nr_pages, sizeof(struct page *), GFP_KERNEL);
+ pages = kzalloc_objs(struct page *, nr_pages, GFP_KERNEL);
if (!pages)
goto error;
@@ -358,7 +358,7 @@ long watch_queue_set_filter(struct pipe_inode_info *pipe,
* user-specified filters.
*/
ret = -ENOMEM;
- wfilter = kzalloc(struct_size(wfilter, filters, nr_filter), GFP_KERNEL);
+ wfilter = kzalloc_flex(*wfilter, filters, nr_filter, GFP_KERNEL);
if (!wfilter)
goto err_filter;
wfilter->nr_filters = nr_filter;
@@ -692,7 +692,7 @@ int watch_queue_init(struct pipe_inode_info *pipe)
{
struct watch_queue *wqueue;
- wqueue = kzalloc(sizeof(*wqueue), GFP_KERNEL);
+ wqueue = kzalloc_obj(*wqueue, GFP_KERNEL);
if (!wqueue)
return -ENOMEM;
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index c515cff01828..ee3e81133f78 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -4714,7 +4714,7 @@ struct workqueue_attrs *alloc_workqueue_attrs_noprof(void)
{
struct workqueue_attrs *attrs;
- attrs = kzalloc(sizeof(*attrs), GFP_KERNEL);
+ attrs = kzalloc_obj(*attrs, GFP_KERNEL);
if (!attrs)
goto fail;
if (!alloc_cpumask_var(&attrs->cpumask, GFP_KERNEL))
@@ -5370,7 +5370,7 @@ apply_wqattrs_prepare(struct workqueue_struct *wq,
attrs->affn_scope >= WQ_AFFN_NR_TYPES))
return ERR_PTR(-EINVAL);
- ctx = kzalloc(struct_size(ctx, pwq_tbl, nr_cpu_ids), GFP_KERNEL);
+ ctx = kzalloc_flex(*ctx, pwq_tbl, nr_cpu_ids, GFP_KERNEL);
new_attrs = alloc_workqueue_attrs();
if (!ctx || !new_attrs)
@@ -7486,7 +7486,7 @@ int workqueue_sysfs_register(struct workqueue_struct *wq)
if (WARN_ON(wq->flags & __WQ_ORDERED))
return -EINVAL;
- wq->wq_dev = wq_dev = kzalloc(sizeof(*wq_dev), GFP_KERNEL);
+ wq->wq_dev = wq_dev = kzalloc_obj(*wq_dev, GFP_KERNEL);
if (!wq_dev)
return -ENOMEM;
@@ -7879,9 +7879,9 @@ void __init workqueue_init_early(void)
wq_power_efficient = true;
/* initialize WQ_AFFN_SYSTEM pods */
- pt->pod_cpus = kcalloc(1, sizeof(pt->pod_cpus[0]), GFP_KERNEL);
- pt->pod_node = kcalloc(1, sizeof(pt->pod_node[0]), GFP_KERNEL);
- pt->cpu_pod = kcalloc(nr_cpu_ids, sizeof(pt->cpu_pod[0]), GFP_KERNEL);
+ pt->pod_cpus = kzalloc_objs(pt->pod_cpus[0], 1, GFP_KERNEL);
+ pt->pod_node = kzalloc_objs(pt->pod_node[0], 1, GFP_KERNEL);
+ pt->cpu_pod = kzalloc_objs(pt->cpu_pod[0], nr_cpu_ids, GFP_KERNEL);
BUG_ON(!pt->pod_cpus || !pt->pod_node || !pt->cpu_pod);
BUG_ON(!zalloc_cpumask_var_node(&pt->pod_cpus[0], GFP_KERNEL, NUMA_NO_NODE));
@@ -8063,7 +8063,7 @@ static void __init init_pod_type(struct wq_pod_type *pt,
pt->nr_pods = 0;
/* init @pt->cpu_pod[] according to @cpus_share_pod() */
- pt->cpu_pod = kcalloc(nr_cpu_ids, sizeof(pt->cpu_pod[0]), GFP_KERNEL);
+ pt->cpu_pod = kzalloc_objs(pt->cpu_pod[0], nr_cpu_ids, GFP_KERNEL);
BUG_ON(!pt->cpu_pod);
for_each_possible_cpu(cur) {
@@ -8080,8 +8080,8 @@ static void __init init_pod_type(struct wq_pod_type *pt,
}
/* init the rest to match @pt->cpu_pod[] */
- pt->pod_cpus = kcalloc(pt->nr_pods, sizeof(pt->pod_cpus[0]), GFP_KERNEL);
- pt->pod_node = kcalloc(pt->nr_pods, sizeof(pt->pod_node[0]), GFP_KERNEL);
+ pt->pod_cpus = kzalloc_objs(pt->pod_cpus[0], pt->nr_pods, GFP_KERNEL);
+ pt->pod_node = kzalloc_objs(pt->pod_node[0], pt->nr_pods, GFP_KERNEL);
BUG_ON(!pt->pod_cpus || !pt->pod_node);
for (pod = 0; pod < pt->nr_pods; pod++)
diff --git a/lib/alloc_tag.c b/lib/alloc_tag.c
index 00ae4673a271..58991ab09d84 100644
--- a/lib/alloc_tag.c
+++ b/lib/alloc_tag.c
@@ -669,8 +669,9 @@ static int __init alloc_mod_tags_mem(void)
return -ENOMEM;
}
- vm_module_tags->pages = kmalloc_array(get_vm_area_size(vm_module_tags) >> PAGE_SHIFT,
- sizeof(struct page *), GFP_KERNEL | __GFP_ZERO);
+ vm_module_tags->pages = kmalloc_objs(struct page *,
+ get_vm_area_size(vm_module_tags) >> PAGE_SHIFT,
+ GFP_KERNEL | __GFP_ZERO);
if (!vm_module_tags->pages) {
free_vm_area(vm_module_tags);
return -ENOMEM;
diff --git a/lib/assoc_array.c b/lib/assoc_array.c
index 388e656ac974..6cd376ad5030 100644
--- a/lib/assoc_array.c
+++ b/lib/assoc_array.c
@@ -454,7 +454,7 @@ static bool assoc_array_insert_in_empty_tree(struct assoc_array_edit *edit)
pr_devel("-->%s()\n", __func__);
- new_n0 = kzalloc(sizeof(struct assoc_array_node), GFP_KERNEL);
+ new_n0 = kzalloc_obj(struct assoc_array_node, GFP_KERNEL);
if (!new_n0)
return false;
@@ -536,11 +536,11 @@ static bool assoc_array_insert_into_terminal_node(struct assoc_array_edit *edit,
* those now. We may also need a new shortcut, but we deal with that
* when we need it.
*/
- new_n0 = kzalloc(sizeof(struct assoc_array_node), GFP_KERNEL);
+ new_n0 = kzalloc_obj(struct assoc_array_node, GFP_KERNEL);
if (!new_n0)
return false;
edit->new_meta[0] = assoc_array_node_to_ptr(new_n0);
- new_n1 = kzalloc(sizeof(struct assoc_array_node), GFP_KERNEL);
+ new_n1 = kzalloc_obj(struct assoc_array_node, GFP_KERNEL);
if (!new_n1)
return false;
edit->new_meta[1] = assoc_array_node_to_ptr(new_n1);
@@ -741,7 +741,7 @@ static bool assoc_array_insert_into_terminal_node(struct assoc_array_edit *edit,
keylen = round_up(diff, ASSOC_ARRAY_KEY_CHUNK_SIZE);
keylen >>= ASSOC_ARRAY_KEY_CHUNK_SHIFT;
- new_s0 = kzalloc(struct_size(new_s0, index_key, keylen), GFP_KERNEL);
+ new_s0 = kzalloc_flex(*new_s0, index_key, keylen, GFP_KERNEL);
if (!new_s0)
return false;
edit->new_meta[2] = assoc_array_shortcut_to_ptr(new_s0);
@@ -832,7 +832,7 @@ static bool assoc_array_insert_mid_shortcut(struct assoc_array_edit *edit,
edit->excised_meta[0] = assoc_array_shortcut_to_ptr(shortcut);
/* Create a new node now since we're going to need it anyway */
- new_n0 = kzalloc(sizeof(struct assoc_array_node), GFP_KERNEL);
+ new_n0 = kzalloc_obj(struct assoc_array_node, GFP_KERNEL);
if (!new_n0)
return false;
edit->new_meta[0] = assoc_array_node_to_ptr(new_n0);
@@ -848,8 +848,7 @@ static bool assoc_array_insert_mid_shortcut(struct assoc_array_edit *edit,
keylen = round_up(diff, ASSOC_ARRAY_KEY_CHUNK_SIZE);
keylen >>= ASSOC_ARRAY_KEY_CHUNK_SHIFT;
- new_s0 = kzalloc(struct_size(new_s0, index_key, keylen),
- GFP_KERNEL);
+ new_s0 = kzalloc_flex(*new_s0, index_key, keylen, GFP_KERNEL);
if (!new_s0)
return false;
edit->new_meta[1] = assoc_array_shortcut_to_ptr(new_s0);
@@ -898,8 +897,7 @@ static bool assoc_array_insert_mid_shortcut(struct assoc_array_edit *edit,
keylen = round_up(shortcut->skip_to_level, ASSOC_ARRAY_KEY_CHUNK_SIZE);
keylen >>= ASSOC_ARRAY_KEY_CHUNK_SHIFT;
- new_s1 = kzalloc(struct_size(new_s1, index_key, keylen),
- GFP_KERNEL);
+ new_s1 = kzalloc_flex(*new_s1, index_key, keylen, GFP_KERNEL);
if (!new_s1)
return false;
edit->new_meta[2] = assoc_array_shortcut_to_ptr(new_s1);
@@ -977,7 +975,7 @@ struct assoc_array_edit *assoc_array_insert(struct assoc_array *array,
*/
BUG_ON(assoc_array_ptr_is_meta(object));
- edit = kzalloc(sizeof(struct assoc_array_edit), GFP_KERNEL);
+ edit = kzalloc_obj(struct assoc_array_edit, GFP_KERNEL);
if (!edit)
return ERR_PTR(-ENOMEM);
edit->array = array;
@@ -1089,7 +1087,7 @@ struct assoc_array_edit *assoc_array_delete(struct assoc_array *array,
pr_devel("-->%s()\n", __func__);
- edit = kzalloc(sizeof(struct assoc_array_edit), GFP_KERNEL);
+ edit = kzalloc_obj(struct assoc_array_edit, GFP_KERNEL);
if (!edit)
return ERR_PTR(-ENOMEM);
edit->array = array;
@@ -1206,7 +1204,8 @@ struct assoc_array_edit *assoc_array_delete(struct assoc_array *array,
node = parent;
/* Create a new node to collapse into */
- new_n0 = kzalloc(sizeof(struct assoc_array_node), GFP_KERNEL);
+ new_n0 = kzalloc_obj(struct assoc_array_node,
+ GFP_KERNEL);
if (!new_n0)
goto enomem;
edit->new_meta[0] = assoc_array_node_to_ptr(new_n0);
@@ -1281,7 +1280,7 @@ struct assoc_array_edit *assoc_array_clear(struct assoc_array *array,
if (!array->root)
return NULL;
- edit = kzalloc(sizeof(struct assoc_array_edit), GFP_KERNEL);
+ edit = kzalloc_obj(struct assoc_array_edit, GFP_KERNEL);
if (!edit)
return ERR_PTR(-ENOMEM);
edit->array = array;
@@ -1469,7 +1468,7 @@ int assoc_array_gc(struct assoc_array *array,
if (!array->root)
return 0;
- edit = kzalloc(sizeof(struct assoc_array_edit), GFP_KERNEL);
+ edit = kzalloc_obj(struct assoc_array_edit, GFP_KERNEL);
if (!edit)
return -ENOMEM;
edit->array = array;
@@ -1490,8 +1489,7 @@ int assoc_array_gc(struct assoc_array *array,
shortcut = assoc_array_ptr_to_shortcut(cursor);
keylen = round_up(shortcut->skip_to_level, ASSOC_ARRAY_KEY_CHUNK_SIZE);
keylen >>= ASSOC_ARRAY_KEY_CHUNK_SHIFT;
- new_s = kmalloc(struct_size(new_s, index_key, keylen),
- GFP_KERNEL);
+ new_s = kmalloc_flex(*new_s, index_key, keylen, GFP_KERNEL);
if (!new_s)
goto enomem;
pr_devel("dup shortcut %p -> %p\n", shortcut, new_s);
@@ -1505,7 +1503,7 @@ int assoc_array_gc(struct assoc_array *array,
/* Duplicate the node at this position */
node = assoc_array_ptr_to_node(cursor);
- new_n = kzalloc(sizeof(struct assoc_array_node), GFP_KERNEL);
+ new_n = kzalloc_obj(struct assoc_array_node, GFP_KERNEL);
if (!new_n)
goto enomem;
pr_devel("dup node %p -> %p\n", node, new_n);
diff --git a/lib/bch.c b/lib/bch.c
index 1c0cb07cdfeb..82a363dc73c4 100644
--- a/lib/bch.c
+++ b/lib/bch.c
@@ -1320,7 +1320,7 @@ struct bch_control *bch_init(int m, int t, unsigned int prim_poly,
if (prim_poly == 0)
prim_poly = prim_poly_tab[m-min_m];
- bch = kzalloc(sizeof(*bch), GFP_KERNEL);
+ bch = kzalloc_obj(*bch, GFP_KERNEL);
if (bch == NULL)
goto fail;
diff --git a/lib/bucket_locks.c b/lib/bucket_locks.c
index 64b92e1dbace..d29516ca0554 100644
--- a/lib/bucket_locks.c
+++ b/lib/bucket_locks.c
@@ -31,7 +31,7 @@ int __alloc_bucket_spinlocks(spinlock_t **locks, unsigned int *locks_mask,
}
if (sizeof(spinlock_t) != 0) {
- tlocks = kvmalloc_array(size, sizeof(spinlock_t), gfp);
+ tlocks = kvmalloc_objs(spinlock_t, size, gfp);
if (!tlocks)
return -ENOMEM;
for (i = 0; i < size; i++) {
diff --git a/lib/codetag.c b/lib/codetag.c
index 545911cebd25..465952125bcb 100644
--- a/lib/codetag.c
+++ b/lib/codetag.c
@@ -193,7 +193,7 @@ static int codetag_module_init(struct codetag_type *cttype, struct module *mod)
BUG_ON(range.start > range.stop);
- cmod = kmalloc(sizeof(*cmod), GFP_KERNEL);
+ cmod = kmalloc_obj(*cmod, GFP_KERNEL);
if (unlikely(!cmod))
return -ENOMEM;
@@ -383,7 +383,7 @@ codetag_register_type(const struct codetag_type_desc *desc)
BUG_ON(desc->tag_size <= 0);
- cttype = kzalloc(sizeof(*cttype), GFP_KERNEL);
+ cttype = kzalloc_obj(*cttype, GFP_KERNEL);
if (unlikely(!cttype))
return ERR_PTR(-ENOMEM);
diff --git a/lib/cpu_rmap.c b/lib/cpu_rmap.c
index f03d9be3f06b..dfc6219532b9 100644
--- a/lib/cpu_rmap.c
+++ b/lib/cpu_rmap.c
@@ -309,7 +309,7 @@ EXPORT_SYMBOL(irq_cpu_rmap_remove);
*/
int irq_cpu_rmap_add(struct cpu_rmap *rmap, int irq)
{
- struct irq_glue *glue = kzalloc(sizeof(*glue), GFP_KERNEL);
+ struct irq_glue *glue = kzalloc_obj(*glue, GFP_KERNEL);
int rc;
if (!glue)
diff --git a/lib/crypto/gf128mul.c b/lib/crypto/gf128mul.c
index 2a34590fe3f1..42c5fdc2d4ca 100644
--- a/lib/crypto/gf128mul.c
+++ b/lib/crypto/gf128mul.c
@@ -245,12 +245,12 @@ struct gf128mul_64k *gf128mul_init_64k_bbe(const be128 *g)
struct gf128mul_64k *t;
int i, j, k;
- t = kzalloc(sizeof(*t), GFP_KERNEL);
+ t = kzalloc_obj(*t, GFP_KERNEL);
if (!t)
goto out;
for (i = 0; i < 16; i++) {
- t->t[i] = kzalloc(sizeof(*t->t[i]), GFP_KERNEL);
+ t->t[i] = kzalloc_obj(*t->t[i], GFP_KERNEL);
if (!t->t[i]) {
gf128mul_free_64k(t);
t = NULL;
@@ -326,7 +326,7 @@ struct gf128mul_4k *gf128mul_init_4k_lle(const be128 *g)
struct gf128mul_4k *t;
int j, k;
- t = kzalloc(sizeof(*t), GFP_KERNEL);
+ t = kzalloc_obj(*t, GFP_KERNEL);
if (!t)
goto out;
diff --git a/lib/crypto/mpi/mpih-mul.c b/lib/crypto/mpi/mpih-mul.c
index a93647564054..9cd0843e9d36 100644
--- a/lib/crypto/mpi/mpih-mul.c
+++ b/lib/crypto/mpi/mpih-mul.c
@@ -372,7 +372,7 @@ mpihelp_mul_karatsuba_case(mpi_ptr_t prodp,
return -ENOMEM;
} else {
if (!ctx->next) {
- ctx->next = kzalloc(sizeof *ctx, GFP_KERNEL);
+ ctx->next = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx->next)
return -ENOMEM;
}
diff --git a/lib/crypto/mpi/mpiutil.c b/lib/crypto/mpi/mpiutil.c
index 7f2db830f404..4999f756f50e 100644
--- a/lib/crypto/mpi/mpiutil.c
+++ b/lib/crypto/mpi/mpiutil.c
@@ -33,7 +33,7 @@ MPI mpi_alloc(unsigned nlimbs)
{
MPI a;
- a = kmalloc(sizeof *a, GFP_KERNEL);
+ a = kmalloc_obj(*a, GFP_KERNEL);
if (!a)
return a;
@@ -93,14 +93,14 @@ int mpi_resize(MPI a, unsigned nlimbs)
return 0; /* no need to do it */
if (a->d) {
- p = kcalloc(nlimbs, sizeof(mpi_limb_t), GFP_KERNEL);
+ p = kzalloc_objs(mpi_limb_t, nlimbs, GFP_KERNEL);
if (!p)
return -ENOMEM;
memcpy(p, a->d, a->alloced * sizeof(mpi_limb_t));
kfree_sensitive(a->d);
a->d = p;
} else {
- a->d = kcalloc(nlimbs, sizeof(mpi_limb_t), GFP_KERNEL);
+ a->d = kzalloc_objs(mpi_limb_t, nlimbs, GFP_KERNEL);
if (!a->d)
return -ENOMEM;
}
diff --git a/lib/dhry_1.c b/lib/dhry_1.c
index ca6c87232c58..134cc1c746c2 100644
--- a/lib/dhry_1.c
+++ b/lib/dhry_1.c
@@ -139,11 +139,11 @@ int dhry(int n)
/* Initializations */
- Next_Ptr_Glob = (Rec_Pointer)kzalloc(sizeof(Rec_Type), GFP_ATOMIC);
+ Next_Ptr_Glob = (Rec_Pointer) kzalloc_obj(Rec_Type, GFP_ATOMIC);
if (!Next_Ptr_Glob)
return -ENOMEM;
- Ptr_Glob = (Rec_Pointer)kzalloc(sizeof(Rec_Type), GFP_ATOMIC);
+ Ptr_Glob = (Rec_Pointer) kzalloc_obj(Rec_Type, GFP_ATOMIC);
if (!Ptr_Glob) {
kfree(Next_Ptr_Glob);
return -ENOMEM;
diff --git a/lib/dim/net_dim.c b/lib/dim/net_dim.c
index d6aa09a979b3..d66940b0c165 100644
--- a/lib/dim/net_dim.c
+++ b/lib/dim/net_dim.c
@@ -105,7 +105,7 @@ int net_dim_init_irq_moder(struct net_device *dev, u8 profile_flags,
struct dim_irq_moder *moder;
int len;
- dev->irq_moder = kzalloc(sizeof(*dev->irq_moder), GFP_KERNEL);
+ dev->irq_moder = kzalloc_obj(*dev->irq_moder, GFP_KERNEL);
if (!dev->irq_moder)
return -ENOMEM;
diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c
index 7d7892e57a01..a5b5e936e2ab 100644
--- a/lib/dynamic_debug.c
+++ b/lib/dynamic_debug.c
@@ -1241,7 +1241,7 @@ static int ddebug_add_module(struct _ddebug_info *di, const char *modname)
return 0;
}
- dt = kzalloc(sizeof(*dt), GFP_KERNEL);
+ dt = kzalloc_obj(*dt, GFP_KERNEL);
if (dt == NULL) {
pr_err("error adding module: %s\n", modname);
return -ENOMEM;
diff --git a/lib/error-inject.c b/lib/error-inject.c
index 887acd9a6ea6..06c913ec2c1f 100644
--- a/lib/error-inject.c
+++ b/lib/error-inject.c
@@ -80,7 +80,7 @@ static void populate_error_injection_list(struct error_injection_entry *start,
continue;
}
- ent = kmalloc(sizeof(*ent), GFP_KERNEL);
+ ent = kmalloc_obj(*ent, GFP_KERNEL);
if (!ent)
break;
ent->start_addr = entry;
diff --git a/lib/group_cpus.c b/lib/group_cpus.c
index d496c5001961..5d1758a05407 100644
--- a/lib/group_cpus.c
+++ b/lib/group_cpus.c
@@ -47,7 +47,7 @@ static cpumask_var_t *alloc_node_to_cpumask(void)
cpumask_var_t *masks;
int node;
- masks = kcalloc(nr_node_ids, sizeof(cpumask_var_t), GFP_KERNEL);
+ masks = kzalloc_objs(cpumask_var_t, nr_node_ids, GFP_KERNEL);
if (!masks)
return NULL;
@@ -320,10 +320,10 @@ static int alloc_cluster_groups(unsigned int ncpus,
goto no_cluster;
/* Allocate memory based on cluster number. */
- clusters = kcalloc(ncluster, sizeof(*clusters), GFP_KERNEL);
+ clusters = kzalloc_objs(*clusters, ncluster, GFP_KERNEL);
if (!clusters)
goto no_cluster;
- cluster_groups = kcalloc(ncluster, sizeof(struct node_groups), GFP_KERNEL);
+ cluster_groups = kzalloc_objs(struct node_groups, ncluster, GFP_KERNEL);
if (!cluster_groups)
goto fail_cluster_groups;
@@ -432,9 +432,7 @@ static int __group_cpus_evenly(unsigned int startgrp, unsigned int numgrps,
return numgrps;
}
- node_groups = kcalloc(nr_node_ids,
- sizeof(struct node_groups),
- GFP_KERNEL);
+ node_groups = kzalloc_objs(struct node_groups, nr_node_ids, GFP_KERNEL);
if (!node_groups)
return -ENOMEM;
@@ -508,7 +506,7 @@ struct cpumask *group_cpus_evenly(unsigned int numgrps, unsigned int *nummasks)
if (!node_to_cpumask)
goto fail_npresmsk;
- masks = kcalloc(numgrps, sizeof(*masks), GFP_KERNEL);
+ masks = kzalloc_objs(*masks, numgrps, GFP_KERNEL);
if (!masks)
goto fail_node_to_cpumask;
@@ -574,7 +572,7 @@ struct cpumask *group_cpus_evenly(unsigned int numgrps, unsigned int *nummasks)
if (numgrps == 0)
return NULL;
- masks = kcalloc(numgrps, sizeof(*masks), GFP_KERNEL);
+ masks = kzalloc_objs(*masks, numgrps, GFP_KERNEL);
if (!masks)
return NULL;
diff --git a/lib/idr.c b/lib/idr.c
index 457430cff8c5..69bee5369670 100644
--- a/lib/idr.c
+++ b/lib/idr.c
@@ -417,7 +417,7 @@ int ida_alloc_range(struct ida *ida, unsigned int min, unsigned int max,
}
bitmap = alloc;
if (!bitmap)
- bitmap = kzalloc(sizeof(*bitmap), GFP_NOWAIT);
+ bitmap = kzalloc_obj(*bitmap, GFP_NOWAIT);
if (!bitmap)
goto alloc;
bitmap->bitmap[0] = tmp;
@@ -444,7 +444,7 @@ int ida_alloc_range(struct ida *ida, unsigned int min, unsigned int max,
} else {
bitmap = alloc;
if (!bitmap)
- bitmap = kzalloc(sizeof(*bitmap), GFP_NOWAIT);
+ bitmap = kzalloc_obj(*bitmap, GFP_NOWAIT);
if (!bitmap)
goto alloc;
__set_bit(bit, bitmap->bitmap);
@@ -465,7 +465,7 @@ int ida_alloc_range(struct ida *ida, unsigned int min, unsigned int max,
return xas.xa_index * IDA_BITMAP_BITS + bit;
alloc:
xas_unlock_irqrestore(&xas, flags);
- alloc = kzalloc(sizeof(*bitmap), gfp);
+ alloc = kzalloc_obj(*bitmap, gfp);
if (!alloc)
return -ENOMEM;
xas_set(&xas, min / IDA_BITMAP_BITS);
diff --git a/lib/interval_tree_test.c b/lib/interval_tree_test.c
index 5fd62656f42e..d1ab3d40a645 100644
--- a/lib/interval_tree_test.c
+++ b/lib/interval_tree_test.c
@@ -311,8 +311,7 @@ static inline int span_iteration_check(void) {return 0; }
static int interval_tree_test_init(void)
{
- nodes = kmalloc_array(nnodes, sizeof(struct interval_tree_node),
- GFP_KERNEL);
+ nodes = kmalloc_objs(struct interval_tree_node, nnodes, GFP_KERNEL);
if (!nodes)
return -ENOMEM;
diff --git a/lib/iov_iter.c b/lib/iov_iter.c
index 545250507f08..a9768fae1f44 100644
--- a/lib/iov_iter.c
+++ b/lib/iov_iter.c
@@ -903,7 +903,7 @@ static int want_pages_array(struct page ***res, size_t size,
count = maxpages;
WARN_ON(!count); // caller should've prevented that
if (!*res) {
- *res = kvmalloc_array(count, sizeof(struct page *), GFP_KERNEL);
+ *res = kvmalloc_objs(struct page *, count, GFP_KERNEL);
if (!*res)
return 0;
}
@@ -1318,7 +1318,7 @@ struct iovec *iovec_from_user(const struct iovec __user *uvec,
if (nr_segs > UIO_MAXIOV)
return ERR_PTR(-EINVAL);
if (nr_segs > fast_segs) {
- iov = kmalloc_array(nr_segs, sizeof(struct iovec), GFP_KERNEL);
+ iov = kmalloc_objs(struct iovec, nr_segs, GFP_KERNEL);
if (!iov)
return ERR_PTR(-ENOMEM);
}
diff --git a/lib/kobject.c b/lib/kobject.c
index abe5f5b856ce..b178d248617b 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -765,7 +765,7 @@ static struct kobject *kobject_create(void)
{
struct kobject *kobj;
- kobj = kzalloc(sizeof(*kobj), GFP_KERNEL);
+ kobj = kzalloc_obj(*kobj, GFP_KERNEL);
if (!kobj)
return NULL;
@@ -962,7 +962,7 @@ static struct kset *kset_create(const char *name,
struct kset *kset;
int retval;
- kset = kzalloc(sizeof(*kset), GFP_KERNEL);
+ kset = kzalloc_obj(*kset, GFP_KERNEL);
if (!kset)
return NULL;
retval = kobject_set_name(&kset->kobj, "%s", name);
diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c
index 78e16b95d210..29a28a3b957f 100644
--- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c
@@ -124,7 +124,7 @@ static int kobject_action_args(const char *buf, size_t count,
if (!count)
return -EINVAL;
- env = kzalloc(sizeof(*env), GFP_KERNEL);
+ env = kzalloc_obj(*env, GFP_KERNEL);
if (!env)
return -ENOMEM;
@@ -537,7 +537,7 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
}
/* environment buffer */
- env = kzalloc(sizeof(struct kobj_uevent_env), GFP_KERNEL);
+ env = kzalloc_obj(struct kobj_uevent_env, GFP_KERNEL);
if (!env)
return -ENOMEM;
@@ -776,7 +776,7 @@ static int uevent_net_init(struct net *net)
.flags = NL_CFG_F_NONROOT_RECV
};
- ue_sk = kzalloc(sizeof(*ue_sk), GFP_KERNEL);
+ ue_sk = kzalloc_obj(*ue_sk, GFP_KERNEL);
if (!ue_sk)
return -ENOMEM;
diff --git a/lib/kunit/attributes.c b/lib/kunit/attributes.c
index 2cf04cc09372..6b7803a16e22 100644
--- a/lib/kunit/attributes.c
+++ b/lib/kunit/attributes.c
@@ -410,7 +410,7 @@ struct kunit_suite *kunit_filter_attr_tests(const struct kunit_suite *const suit
kunit_suite_for_each_test_case(suite, test_case) { n++; }
- filtered = kcalloc(n + 1, sizeof(*filtered), GFP_KERNEL);
+ filtered = kzalloc_objs(*filtered, n + 1, GFP_KERNEL);
if (!filtered) {
kfree(copy);
return ERR_PTR(-ENOMEM);
diff --git a/lib/kunit/device.c b/lib/kunit/device.c
index f201aaacd4cf..7c18d4ae2de3 100644
--- a/lib/kunit/device.c
+++ b/lib/kunit/device.c
@@ -111,7 +111,7 @@ static struct kunit_device *kunit_device_register_internal(struct kunit *test,
struct kunit_device *kunit_dev;
int err = -ENOMEM;
- kunit_dev = kzalloc(sizeof(*kunit_dev), GFP_KERNEL);
+ kunit_dev = kzalloc_obj(*kunit_dev, GFP_KERNEL);
if (!kunit_dev)
return ERR_PTR(err);
diff --git a/lib/kunit/executor.c b/lib/kunit/executor.c
index 02ff380ab793..27740d975082 100644
--- a/lib/kunit/executor.c
+++ b/lib/kunit/executor.c
@@ -131,7 +131,7 @@ kunit_filter_glob_tests(const struct kunit_suite *const suite, const char *test_
if (!copy)
return ERR_PTR(-ENOMEM);
- filtered = kcalloc(n + 1, sizeof(*filtered), GFP_KERNEL);
+ filtered = kzalloc_objs(*filtered, n + 1, GFP_KERNEL);
if (!filtered) {
kfree(copy);
return ERR_PTR(-ENOMEM);
@@ -179,7 +179,7 @@ kunit_filter_suites(const struct kunit_suite_set *suite_set,
const size_t max = suite_set->end - suite_set->start;
- copy = kcalloc(max, sizeof(*copy), GFP_KERNEL);
+ copy = kzalloc_objs(*copy, max, GFP_KERNEL);
if (!copy) { /* won't be able to run anything, return an empty set */
return filtered;
}
@@ -194,7 +194,8 @@ kunit_filter_suites(const struct kunit_suite_set *suite_set,
/* Parse attribute filters */
if (filters) {
filter_count = kunit_get_filter_count(filters);
- parsed_filters = kcalloc(filter_count, sizeof(*parsed_filters), GFP_KERNEL);
+ parsed_filters = kzalloc_objs(*parsed_filters, filter_count,
+ GFP_KERNEL);
if (!parsed_filters) {
*err = -ENOMEM;
goto free_parsed_glob;
diff --git a/lib/kunit/executor_test.c b/lib/kunit/executor_test.c
index f0090c2729cd..f28093153516 100644
--- a/lib/kunit/executor_test.c
+++ b/lib/kunit/executor_test.c
@@ -272,7 +272,7 @@ static void free_suite_set_at_end(struct kunit *test, const void *to_free)
if (!((struct kunit_suite_set *)to_free)->start)
return;
- free = kzalloc(sizeof(struct kunit_suite_set), GFP_KERNEL);
+ free = kzalloc_obj(struct kunit_suite_set, GFP_KERNEL);
*free = *(struct kunit_suite_set *)to_free;
kunit_add_action(test, free_suite_set, (void *)free);
diff --git a/lib/kunit/kunit-example-test.c b/lib/kunit/kunit-example-test.c
index 9452b163956f..34ba0bd74504 100644
--- a/lib/kunit/kunit-example-test.c
+++ b/lib/kunit/kunit-example-test.c
@@ -283,7 +283,7 @@ static void example_slow_test(struct kunit *test)
*/
static int example_resource_init(struct kunit_resource *res, void *context)
{
- int *info = kmalloc(sizeof(*info), GFP_KERNEL);
+ int *info = kmalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/lib/kunit/kunit-test.c b/lib/kunit/kunit-test.c
index 63130a48e237..393b90bd2ec2 100644
--- a/lib/kunit/kunit-test.c
+++ b/lib/kunit/kunit-test.c
@@ -538,8 +538,7 @@ static void kunit_resource_test_action_ordering(struct kunit *test)
static int kunit_resource_test_init(struct kunit *test)
{
- struct kunit_test_resource_context *ctx =
- kzalloc(sizeof(*ctx), GFP_KERNEL);
+ struct kunit_test_resource_context *ctx = kzalloc_obj(*ctx, GFP_KERNEL);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
diff --git a/lib/kunit/resource.c b/lib/kunit/resource.c
index f0209252b179..08a16622a2c9 100644
--- a/lib/kunit/resource.c
+++ b/lib/kunit/resource.c
@@ -98,7 +98,7 @@ int kunit_add_action(struct kunit *test, void (*action)(void *), void *ctx)
KUNIT_ASSERT_NOT_NULL_MSG(test, action, "Tried to action a NULL function!");
- action_ctx = kzalloc(sizeof(*action_ctx), GFP_KERNEL);
+ action_ctx = kzalloc_obj(*action_ctx, GFP_KERNEL);
if (!action_ctx)
return -ENOMEM;
diff --git a/lib/kunit/static_stub.c b/lib/kunit/static_stub.c
index 484fd85251b4..29a91129d7a3 100644
--- a/lib/kunit/static_stub.c
+++ b/lib/kunit/static_stub.c
@@ -111,7 +111,7 @@ void __kunit_activate_static_stub(struct kunit *test,
/* We got an extra reference from find_resource(), so put it. */
kunit_put_resource(res);
} else {
- ctx = kmalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kmalloc_obj(*ctx, GFP_KERNEL);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx);
ctx->real_fn_addr = real_fn_addr;
ctx->replacement_addr = replacement_addr;
diff --git a/lib/kunit/string-stream.c b/lib/kunit/string-stream.c
index 54f4fdcbfac8..0d8f1b30559b 100644
--- a/lib/kunit/string-stream.c
+++ b/lib/kunit/string-stream.c
@@ -18,7 +18,7 @@ static struct string_stream_fragment *alloc_string_stream_fragment(int len, gfp_
{
struct string_stream_fragment *frag;
- frag = kzalloc(sizeof(*frag), gfp);
+ frag = kzalloc_obj(*frag, gfp);
if (!frag)
return ERR_PTR(-ENOMEM);
@@ -158,7 +158,7 @@ struct string_stream *alloc_string_stream(gfp_t gfp)
{
struct string_stream *stream;
- stream = kzalloc(sizeof(*stream), gfp);
+ stream = kzalloc_obj(*stream, gfp);
if (!stream)
return ERR_PTR(-ENOMEM);
diff --git a/lib/logic_iomem.c b/lib/logic_iomem.c
index b247d412ddef..d0ba023f79fb 100644
--- a/lib/logic_iomem.c
+++ b/lib/logic_iomem.c
@@ -48,7 +48,7 @@ int logic_iomem_add_region(struct resource *resource,
if (WARN_ON((resource->flags & IORESOURCE_TYPE_BITS) != IORESOURCE_MEM))
return -EINVAL;
- rreg = kzalloc(sizeof(*rreg), GFP_KERNEL);
+ rreg = kzalloc_obj(*rreg, GFP_KERNEL);
if (!rreg)
return -ENOMEM;
diff --git a/lib/lru_cache.c b/lib/lru_cache.c
index 9e0d469c7658..b1ee3b2540c9 100644
--- a/lib/lru_cache.c
+++ b/lib/lru_cache.c
@@ -94,14 +94,14 @@ struct lru_cache *lc_create(const char *name, struct kmem_cache *cache,
if (e_count > LC_MAX_ACTIVE)
return NULL;
- slot = kcalloc(e_count, sizeof(struct hlist_head), GFP_KERNEL);
+ slot = kzalloc_objs(struct hlist_head, e_count, GFP_KERNEL);
if (!slot)
goto out_fail;
- element = kcalloc(e_count, sizeof(struct lc_element *), GFP_KERNEL);
+ element = kzalloc_objs(struct lc_element *, e_count, GFP_KERNEL);
if (!element)
goto out_fail;
- lc = kzalloc(sizeof(*lc), GFP_KERNEL);
+ lc = kzalloc_obj(*lc, GFP_KERNEL);
if (!lc)
goto out_fail;
diff --git a/lib/lwq.c b/lib/lwq.c
index 57d080a4d53d..3a8fc05d9420 100644
--- a/lib/lwq.c
+++ b/lib/lwq.c
@@ -110,7 +110,7 @@ static int lwq_test(void)
for (i = 0; i < ARRAY_SIZE(threads); i++)
threads[i] = kthread_run(lwq_exercise, &q, "lwq-test-%d", i);
for (i = 0; i < 100; i++) {
- t = kmalloc(sizeof(*t), GFP_KERNEL);
+ t = kmalloc_obj(*t, GFP_KERNEL);
if (!t)
break;
t->i = i;
diff --git a/lib/objagg.c b/lib/objagg.c
index 363e43e849ac..c508b78850c0 100644
--- a/lib/objagg.c
+++ b/lib/objagg.c
@@ -525,7 +525,7 @@ struct objagg *objagg_create(const struct objagg_ops *ops,
!ops->delta_destroy))
return ERR_PTR(-EINVAL);
- objagg = kzalloc(sizeof(*objagg), GFP_KERNEL);
+ objagg = kzalloc_obj(*objagg, GFP_KERNEL);
if (!objagg)
return ERR_PTR(-ENOMEM);
objagg->ops = ops;
@@ -610,8 +610,8 @@ const struct objagg_stats *objagg_stats_get(struct objagg *objagg)
struct objagg_obj *objagg_obj;
int i;
- objagg_stats = kzalloc(struct_size(objagg_stats, stats_info,
- objagg->obj_count), GFP_KERNEL);
+ objagg_stats = kzalloc_flex(*objagg_stats, stats_info,
+ objagg->obj_count, GFP_KERNEL);
if (!objagg_stats)
return ERR_PTR(-ENOMEM);
@@ -786,11 +786,11 @@ static struct objagg_tmp_graph *objagg_tmp_graph_create(struct objagg *objagg)
struct objagg_obj *objagg_obj;
int i, j;
- graph = kzalloc(sizeof(*graph), GFP_KERNEL);
+ graph = kzalloc_obj(*graph, GFP_KERNEL);
if (!graph)
return NULL;
- graph->nodes = kcalloc(nodes_count, sizeof(*graph->nodes), GFP_KERNEL);
+ graph->nodes = kzalloc_objs(*graph->nodes, nodes_count, GFP_KERNEL);
if (!graph->nodes)
goto err_nodes_alloc;
graph->nodes_count = nodes_count;
@@ -930,7 +930,7 @@ struct objagg_hints *objagg_hints_get(struct objagg *objagg,
struct objagg_hints *objagg_hints;
int err;
- objagg_hints = kzalloc(sizeof(*objagg_hints), GFP_KERNEL);
+ objagg_hints = kzalloc_obj(*objagg_hints, GFP_KERNEL);
if (!objagg_hints)
return ERR_PTR(-ENOMEM);
@@ -1010,9 +1010,8 @@ objagg_hints_stats_get(struct objagg_hints *objagg_hints)
struct objagg_hints_node *hnode;
int i;
- objagg_stats = kzalloc(struct_size(objagg_stats, stats_info,
- objagg_hints->node_count),
- GFP_KERNEL);
+ objagg_stats = kzalloc_flex(*objagg_stats, stats_info,
+ objagg_hints->node_count, GFP_KERNEL);
if (!objagg_stats)
return ERR_PTR(-ENOMEM);
diff --git a/lib/once.c b/lib/once.c
index 8557eb489f34..d801bfa945e6 100644
--- a/lib/once.c
+++ b/lib/once.c
@@ -26,7 +26,7 @@ static void once_disable_jump(struct static_key_true *key, struct module *mod)
{
struct once_work *w;
- w = kmalloc(sizeof(*w), GFP_ATOMIC);
+ w = kmalloc_obj(*w, GFP_ATOMIC);
if (!w)
return;
diff --git a/lib/parman.c b/lib/parman.c
index 3f8f8d422e62..e93b82b73522 100644
--- a/lib/parman.c
+++ b/lib/parman.c
@@ -268,7 +268,7 @@ struct parman *parman_create(const struct parman_ops *ops, void *priv)
{
struct parman *parman;
- parman = kzalloc(sizeof(*parman), GFP_KERNEL);
+ parman = kzalloc_obj(*parman, GFP_KERNEL);
if (!parman)
return NULL;
INIT_LIST_HEAD(&parman->prio_list);
diff --git a/lib/percpu-refcount.c b/lib/percpu-refcount.c
index 668f6aa6a75d..97772e42b9b2 100644
--- a/lib/percpu-refcount.c
+++ b/lib/percpu-refcount.c
@@ -73,7 +73,7 @@ int percpu_ref_init(struct percpu_ref *ref, percpu_ref_func_t *release,
if (!ref->percpu_count_ptr)
return -ENOMEM;
- data = kzalloc(sizeof(*ref->data), gfp);
+ data = kzalloc_obj(*ref->data, gfp);
if (!data) {
free_percpu((void __percpu *)ref->percpu_count_ptr);
ref->percpu_count_ptr = 0;
diff --git a/lib/pldmfw/pldmfw.c b/lib/pldmfw/pldmfw.c
index b45ceb725780..c1222c11f6a8 100644
--- a/lib/pldmfw/pldmfw.c
+++ b/lib/pldmfw/pldmfw.c
@@ -287,7 +287,7 @@ pldm_parse_desc_tlvs(struct pldmfw_priv *data, struct pldmfw_record *record, u8
if (err)
return err;
- desc = kzalloc(sizeof(*desc), GFP_KERNEL);
+ desc = kzalloc_obj(*desc, GFP_KERNEL);
if (!desc)
return -ENOMEM;
@@ -328,7 +328,7 @@ pldm_parse_one_record(struct pldmfw_priv *data,
int i;
/* Make a copy and insert it into the record list */
- record = kzalloc(sizeof(*record), GFP_KERNEL);
+ record = kzalloc_obj(*record, GFP_KERNEL);
if (!record)
return -ENOMEM;
@@ -465,7 +465,7 @@ static int pldm_parse_components(struct pldmfw_priv *data)
if (err)
return err;
- component = kzalloc(sizeof(*component), GFP_KERNEL);
+ component = kzalloc_obj(*component, GFP_KERNEL);
if (!component)
return -ENOMEM;
@@ -848,7 +848,7 @@ int pldmfw_flash_image(struct pldmfw *context, const struct firmware *fw)
struct pldmfw_priv *data;
int err;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/lib/rbtree_test.c b/lib/rbtree_test.c
index 690cede46ac2..862318e99c9a 100644
--- a/lib/rbtree_test.c
+++ b/lib/rbtree_test.c
@@ -399,7 +399,7 @@ static int augmented_check(void)
static int __init rbtree_test_init(void)
{
- nodes = kmalloc_array(nnodes, sizeof(*nodes), GFP_KERNEL);
+ nodes = kmalloc_objs(*nodes, nnodes, GFP_KERNEL);
if (!nodes)
return -ENOMEM;
diff --git a/lib/reed_solomon/reed_solomon.c b/lib/reed_solomon/reed_solomon.c
index a9e2dcb6f2a7..864484c01827 100644
--- a/lib/reed_solomon/reed_solomon.c
+++ b/lib/reed_solomon/reed_solomon.c
@@ -73,7 +73,7 @@ static struct rs_codec *codec_init(int symsize, int gfpoly, int (*gffunc)(int),
int i, j, sr, root, iprim;
struct rs_codec *rs;
- rs = kzalloc(sizeof(*rs), gfp);
+ rs = kzalloc_obj(*rs, gfp);
if (!rs)
return NULL;
diff --git a/lib/reed_solomon/test_rslib.c b/lib/reed_solomon/test_rslib.c
index 75cb1adac884..3c17b04a0a0a 100644
--- a/lib/reed_solomon/test_rslib.c
+++ b/lib/reed_solomon/test_rslib.c
@@ -111,7 +111,7 @@ static struct wspace *alloc_ws(struct rs_codec *rs)
struct wspace *ws;
int nn = rs->nn;
- ws = kzalloc(sizeof(*ws), GFP_KERNEL);
+ ws = kzalloc_obj(*ws, GFP_KERNEL);
if (!ws)
return NULL;
@@ -124,7 +124,7 @@ static struct wspace *alloc_ws(struct rs_codec *rs)
ws->s = ws->r + nn;
ws->corr = ws->s + nroots;
- ws->errlocs = kmalloc_array(nn + nroots, sizeof(int), GFP_KERNEL);
+ ws->errlocs = kmalloc_objs(int, nn + nroots, GFP_KERNEL);
if (!ws->errlocs)
goto err;
diff --git a/lib/ref_tracker.c b/lib/ref_tracker.c
index 258fb0e7abdf..30c999d57b10 100644
--- a/lib/ref_tracker.c
+++ b/lib/ref_tracker.c
@@ -74,8 +74,7 @@ ref_tracker_get_stats(struct ref_tracker_dir *dir, unsigned int limit)
struct ref_tracker_dir_stats *stats;
struct ref_tracker *tracker;
- stats = kmalloc(struct_size(stats, stacks, limit),
- GFP_NOWAIT);
+ stats = kmalloc_flex(*stats, stacks, limit, GFP_NOWAIT);
if (!stats)
return ERR_PTR(-ENOMEM);
stats->total = 0;
@@ -268,7 +267,7 @@ int ref_tracker_alloc(struct ref_tracker_dir *dir,
}
if (gfp & __GFP_DIRECT_RECLAIM)
gfp_mask |= __GFP_NOFAIL;
- *trackerp = tracker = kzalloc(sizeof(*tracker), gfp_mask);
+ *trackerp = tracker = kzalloc_obj(*tracker, gfp_mask);
if (unlikely(!tracker)) {
pr_err_once("memory allocation failure, unreliable refcount tracker.\n");
refcount_inc(&dir->untracked);
diff --git a/lib/scatterlist.c b/lib/scatterlist.c
index 21bc9c1f7c06..d773720d11bf 100644
--- a/lib/scatterlist.c
+++ b/lib/scatterlist.c
@@ -168,8 +168,7 @@ static struct scatterlist *sg_kmalloc(unsigned int nents, gfp_t gfp_mask)
kmemleak_alloc(ptr, PAGE_SIZE, 1, gfp_mask);
return ptr;
} else
- return kmalloc_array(nents, sizeof(struct scatterlist),
- gfp_mask);
+ return kmalloc_objs(struct scatterlist, nents, gfp_mask);
}
static void sg_kfree(struct scatterlist *sg, unsigned int nents)
@@ -632,8 +631,7 @@ struct scatterlist *sgl_alloc_order(unsigned long long length,
return NULL;
nalloc++;
}
- sgl = kmalloc_array(nalloc, sizeof(struct scatterlist),
- gfp & ~GFP_DMA);
+ sgl = kmalloc_objs(struct scatterlist, nalloc, gfp & ~GFP_DMA);
if (!sgl)
return NULL;
diff --git a/lib/sg_split.c b/lib/sg_split.c
index 0f89aab5c671..24e8f5e48e63 100644
--- a/lib/sg_split.c
+++ b/lib/sg_split.c
@@ -152,7 +152,7 @@ int sg_split(struct scatterlist *in, const int in_mapped_nents,
int i, ret;
struct sg_splitter *splitters;
- splitters = kcalloc(nb_splits, sizeof(*splitters), gfp_mask);
+ splitters = kzalloc_objs(*splitters, nb_splits, gfp_mask);
if (!splitters)
return -ENOMEM;
@@ -163,9 +163,8 @@ int sg_split(struct scatterlist *in, const int in_mapped_nents,
ret = -ENOMEM;
for (i = 0; i < nb_splits; i++) {
- splitters[i].out_sg = kmalloc_array(splitters[i].nents,
- sizeof(struct scatterlist),
- gfp_mask);
+ splitters[i].out_sg = kmalloc_objs(struct scatterlist,
+ splitters[i].nents, gfp_mask);
if (!splitters[i].out_sg)
goto err;
}
diff --git a/lib/stackdepot.c b/lib/stackdepot.c
index 166f50ad8391..b58f01c2ca7e 100644
--- a/lib/stackdepot.c
+++ b/lib/stackdepot.c
@@ -260,7 +260,7 @@ int stack_depot_init(void)
entries = 1UL << STACK_BUCKET_NUMBER_ORDER_MAX;
pr_info("allocating hash table of %lu entries via kvcalloc\n", entries);
- stack_table = kvcalloc(entries, sizeof(struct list_head), GFP_KERNEL);
+ stack_table = kvzalloc_objs(struct list_head, entries, GFP_KERNEL);
if (!stack_table) {
pr_err("hash table allocation failed, disabling\n");
stack_depot_disabled = true;
diff --git a/lib/string_helpers.c b/lib/string_helpers.c
index 8cb6f66c9c2b..72a15e7132b9 100644
--- a/lib/string_helpers.c
+++ b/lib/string_helpers.c
@@ -147,7 +147,7 @@ int parse_int_array(const char *buf, size_t count, int **array)
if (!nints)
return -ENOENT;
- ints = kcalloc(nints + 1, sizeof(*ints), GFP_KERNEL);
+ ints = kzalloc_objs(*ints, nints + 1, GFP_KERNEL);
if (!ints)
return -ENOMEM;
diff --git a/lib/test_bpf.c b/lib/test_bpf.c
index af0041df2b72..e4cb339f322e 100644
--- a/lib/test_bpf.c
+++ b/lib/test_bpf.c
@@ -94,7 +94,7 @@ static int bpf_fill_maxinsns1(struct bpf_test *self)
__u32 k = ~0;
int i;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -113,7 +113,7 @@ static int bpf_fill_maxinsns2(struct bpf_test *self)
struct sock_filter *insn;
int i;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -133,7 +133,7 @@ static int bpf_fill_maxinsns3(struct bpf_test *self)
struct rnd_state rnd;
int i;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -159,7 +159,7 @@ static int bpf_fill_maxinsns4(struct bpf_test *self)
struct sock_filter *insn;
int i;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -178,7 +178,7 @@ static int bpf_fill_maxinsns5(struct bpf_test *self)
struct sock_filter *insn;
int i;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -201,7 +201,7 @@ static int bpf_fill_maxinsns6(struct bpf_test *self)
struct sock_filter *insn;
int i;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -223,7 +223,7 @@ static int bpf_fill_maxinsns7(struct bpf_test *self)
struct sock_filter *insn;
int i;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -249,7 +249,7 @@ static int bpf_fill_maxinsns8(struct bpf_test *self)
struct sock_filter *insn;
int i, jmp_off = len - 3;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -272,7 +272,7 @@ static int bpf_fill_maxinsns9(struct bpf_test *self)
struct bpf_insn *insn;
int i;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -298,7 +298,7 @@ static int bpf_fill_maxinsns10(struct bpf_test *self)
struct bpf_insn *insn;
int i;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -324,7 +324,7 @@ static int __bpf_fill_ja(struct bpf_test *self, unsigned int len,
unsigned int rlen;
int i, j;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -358,7 +358,7 @@ static int bpf_fill_maxinsns12(struct bpf_test *self)
struct sock_filter *insn;
int i = 0;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -381,7 +381,7 @@ static int bpf_fill_maxinsns13(struct bpf_test *self)
struct sock_filter *insn;
int i = 0;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -410,7 +410,7 @@ static int bpf_fill_ld_abs_get_processor_id(struct bpf_test *self)
struct sock_filter *insn;
int i;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -434,7 +434,7 @@ static int __bpf_fill_stxdw(struct bpf_test *self, int size)
struct bpf_insn *insn;
int i;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -484,7 +484,7 @@ static int __bpf_fill_max_jmp(struct bpf_test *self, int jmp, int imm, bool alu3
int len = S16_MAX + 5;
int i;
- insns = kmalloc_array(len, sizeof(*insns), GFP_KERNEL);
+ insns = kmalloc_objs(*insns, len, GFP_KERNEL);
if (!insns)
return -ENOMEM;
@@ -626,7 +626,7 @@ static int __bpf_fill_alu_shift(struct bpf_test *self, u8 op,
int imm, k;
int i = 0;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -759,7 +759,7 @@ static int __bpf_fill_alu_shift_same_reg(struct bpf_test *self, u8 op,
int i = 0;
u64 val;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -1244,7 +1244,7 @@ static int __bpf_fill_alu_imm_regs(struct bpf_test *self, u8 op, bool alu32)
u32 imm;
int rd;
- insns = kmalloc_array(len, sizeof(*insns), GFP_KERNEL);
+ insns = kmalloc_objs(*insns, len, GFP_KERNEL);
if (!insns)
return -ENOMEM;
@@ -1426,7 +1426,7 @@ static int __bpf_fill_alu_reg_pairs(struct bpf_test *self, u8 op, bool alu32)
int rd, rs;
int i = 0;
- insns = kmalloc_array(len, sizeof(*insns), GFP_KERNEL);
+ insns = kmalloc_objs(*insns, len, GFP_KERNEL);
if (!insns)
return -ENOMEM;
@@ -1917,7 +1917,7 @@ static int __bpf_fill_atomic_reg_pairs(struct bpf_test *self, u8 width, u8 op)
u64 mem, upd, res;
int rd, rs, i = 0;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -2163,7 +2163,7 @@ static int bpf_fill_ld_imm64_magn(struct bpf_test *self)
int bit, adj, sign;
int i = 0;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -2217,7 +2217,7 @@ static int __bpf_fill_ld_imm64_bytes(struct bpf_test *self,
u32 rand = 1;
int i = 0;
- insn = kmalloc_array(len, sizeof(*insn), GFP_KERNEL);
+ insn = kmalloc_objs(*insn, len, GFP_KERNEL);
if (!insn)
return -ENOMEM;
@@ -2724,7 +2724,7 @@ static int __bpf_fill_staggered_jumps(struct bpf_test *self,
struct bpf_insn *insns;
int off, ind;
- insns = kmalloc_array(len, sizeof(*insns), GFP_KERNEL);
+ insns = kmalloc_objs(*insns, len, GFP_KERNEL);
if (!insns)
return -ENOMEM;
@@ -15461,7 +15461,7 @@ static __init int prepare_tail_call_tests(struct bpf_array **pprogs)
int which, err;
/* Allocate the table of programs to be used for tail calls */
- progs = kzalloc(struct_size(progs, ptrs, ntests + 1), GFP_KERNEL);
+ progs = kzalloc_flex(*progs, ptrs, ntests + 1, GFP_KERNEL);
if (!progs)
goto out_nomem;
diff --git a/lib/test_debug_virtual.c b/lib/test_debug_virtual.c
index b7cc0aaee173..288d5510406c 100644
--- a/lib/test_debug_virtual.c
+++ b/lib/test_debug_virtual.c
@@ -29,7 +29,7 @@ static int __init test_debug_virtual_init(void)
pr_info("PA: %pa for VA: 0x%lx\n", &pa, (unsigned long)va);
- foo = kzalloc(sizeof(*foo), GFP_KERNEL);
+ foo = kzalloc_obj(*foo, GFP_KERNEL);
if (!foo)
return -ENOMEM;
diff --git a/lib/test_firmware.c b/lib/test_firmware.c
index be4f93124901..1a933a874148 100644
--- a/lib/test_firmware.c
+++ b/lib/test_firmware.c
@@ -1309,7 +1309,7 @@ static ssize_t upload_register_store(struct device *dev,
goto free_name;
}
- tst = kzalloc(sizeof(*tst), GFP_KERNEL);
+ tst = kzalloc_obj(*tst, GFP_KERNEL);
if (!tst) {
ret = -ENOMEM;
goto free_name;
@@ -1526,7 +1526,7 @@ static int __init test_firmware_init(void)
{
int rc;
- test_fw_config = kzalloc(sizeof(struct test_config), GFP_KERNEL);
+ test_fw_config = kzalloc_obj(struct test_config, GFP_KERNEL);
if (!test_fw_config)
return -ENOMEM;
diff --git a/lib/test_hmm.c b/lib/test_hmm.c
index 455a6862ae50..0f9eb1c16ef0 100644
--- a/lib/test_hmm.c
+++ b/lib/test_hmm.c
@@ -166,7 +166,7 @@ static int dmirror_fops_open(struct inode *inode, struct file *filp)
int ret;
/* Mirror this process address space */
- dmirror = kzalloc(sizeof(*dmirror), GFP_KERNEL);
+ dmirror = kzalloc_obj(*dmirror, GFP_KERNEL);
if (dmirror == NULL)
return -ENOMEM;
@@ -504,7 +504,7 @@ static int dmirror_allocate_chunk(struct dmirror_device *mdevice,
void *ptr;
int ret = -ENOMEM;
- devmem = kzalloc(sizeof(*devmem), GFP_KERNEL);
+ devmem = kzalloc_obj(*devmem, GFP_KERNEL);
if (!devmem)
return ret;
diff --git a/lib/test_kho.c b/lib/test_kho.c
index a20fafaf9846..601f2323ef7e 100644
--- a/lib/test_kho.c
+++ b/lib/test_kho.c
@@ -211,7 +211,7 @@ static int kho_test_save(void)
max_mem = PAGE_ALIGN(max_mem);
max_nr = max_mem >> PAGE_SHIFT;
- folios = kvmalloc_array(max_nr, sizeof(*state->folios), GFP_KERNEL);
+ folios = kvmalloc_objs(*state->folios, max_nr, GFP_KERNEL);
if (!folios)
return -ENOMEM;
state->folios = folios;
diff --git a/lib/test_memcat_p.c b/lib/test_memcat_p.c
index 7e0797a6bebf..0f0a15fea6e2 100644
--- a/lib/test_memcat_p.c
+++ b/lib/test_memcat_p.c
@@ -24,20 +24,20 @@ static int __init test_memcat_p_init(void)
struct test_struct **in0, **in1, **out, **p;
int err = -ENOMEM, i, r, total = 0;
- in0 = kcalloc(INPUT_MAX, sizeof(*in0), GFP_KERNEL);
+ in0 = kzalloc_objs(*in0, INPUT_MAX, GFP_KERNEL);
if (!in0)
return err;
- in1 = kcalloc(INPUT_MAX, sizeof(*in1), GFP_KERNEL);
+ in1 = kzalloc_objs(*in1, INPUT_MAX, GFP_KERNEL);
if (!in1)
goto err_free_in0;
for (i = 0, r = 1; i < INPUT_MAX - 1; i++) {
- in0[i] = kmalloc(sizeof(**in0), GFP_KERNEL);
+ in0[i] = kmalloc_obj(**in0, GFP_KERNEL);
if (!in0[i])
goto err_free_elements;
- in1[i] = kmalloc(sizeof(**in1), GFP_KERNEL);
+ in1[i] = kmalloc_obj(**in1, GFP_KERNEL);
if (!in1[i]) {
kfree(in0[i]);
goto err_free_elements;
diff --git a/lib/test_objagg.c b/lib/test_objagg.c
index ce5c4c36a084..a391f0b998c9 100644
--- a/lib/test_objagg.c
+++ b/lib/test_objagg.c
@@ -107,7 +107,7 @@ static void *delta_create(void *priv, void *parent_obj, void *obj)
if (!delta_check(priv, parent_obj, obj))
return ERR_PTR(-EINVAL);
- delta = kzalloc(sizeof(*delta), GFP_KERNEL);
+ delta = kzalloc_obj(*delta, GFP_KERNEL);
if (!delta)
return ERR_PTR(-ENOMEM);
delta->key_id_diff = diff;
@@ -130,7 +130,7 @@ static void *root_create(void *priv, void *obj, unsigned int id)
struct tokey *key = obj;
struct root *root;
- root = kzalloc(sizeof(*root), GFP_KERNEL);
+ root = kzalloc_obj(*root, GFP_KERNEL);
if (!root)
return ERR_PTR(-ENOMEM);
memcpy(&root->key, key, sizeof(root->key));
diff --git a/lib/test_parman.c b/lib/test_parman.c
index f9b97426a337..ae5a0a2f63c3 100644
--- a/lib/test_parman.c
+++ b/lib/test_parman.c
@@ -219,7 +219,7 @@ static struct test_parman *test_parman_create(const struct parman_ops *ops)
struct test_parman *test_parman;
int err;
- test_parman = kzalloc(sizeof(*test_parman), GFP_KERNEL);
+ test_parman = kzalloc_obj(*test_parman, GFP_KERNEL);
if (!test_parman)
return ERR_PTR(-ENOMEM);
err = test_parman_resize(test_parman, TEST_PARMAN_BASE_COUNT);
diff --git a/lib/test_rhashtable.c b/lib/test_rhashtable.c
index c63db03ebb9d..12de6388cd9b 100644
--- a/lib/test_rhashtable.c
+++ b/lib/test_rhashtable.c
@@ -524,7 +524,7 @@ static int __init test_insert_dup(struct test_obj_rhl *rhl_test_objects,
const char *key;
int err = 0;
- rhlt = kmalloc(sizeof(*rhlt), GFP_KERNEL);
+ rhlt = kmalloc_obj(*rhlt, GFP_KERNEL);
if (WARN_ON(!rhlt))
return -EINVAL;
diff --git a/lib/test_vmalloc.c b/lib/test_vmalloc.c
index 270b6f7ca807..5ed369a92c75 100644
--- a/lib/test_vmalloc.c
+++ b/lib/test_vmalloc.c
@@ -396,7 +396,7 @@ vm_map_ram_test(void)
int i;
map_nr_pages = nr_pages > 0 ? nr_pages:1;
- pages = kcalloc(map_nr_pages, sizeof(struct page *), GFP_KERNEL);
+ pages = kzalloc_objs(struct page *, map_nr_pages, GFP_KERNEL);
if (!pages)
return -1;
@@ -542,7 +542,7 @@ init_test_configuration(void)
nr_threads = clamp(nr_threads, 1, (int) USHRT_MAX);
/* Allocate the space for test instances. */
- tdriver = kvcalloc(nr_threads, sizeof(*tdriver), GFP_KERNEL);
+ tdriver = kvzalloc_objs(*tdriver, nr_threads, GFP_KERNEL);
if (tdriver == NULL)
return -1;
diff --git a/lib/tests/kunit_iov_iter.c b/lib/tests/kunit_iov_iter.c
index 48342736d016..500565631cbd 100644
--- a/lib/tests/kunit_iov_iter.c
+++ b/lib/tests/kunit_iov_iter.c
@@ -387,7 +387,7 @@ static void __init iov_kunit_load_folioq(struct kunit *test,
for (i = 0; i < npages; i++) {
if (folioq_full(p)) {
- p->next = kzalloc(sizeof(struct folio_queue), GFP_KERNEL);
+ p->next = kzalloc_obj(struct folio_queue, GFP_KERNEL);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, p->next);
folioq_init(p->next, 0);
p->next->prev = p;
@@ -403,7 +403,7 @@ static struct folio_queue *iov_kunit_create_folioq(struct kunit *test)
{
struct folio_queue *folioq;
- folioq = kzalloc(sizeof(struct folio_queue), GFP_KERNEL);
+ folioq = kzalloc_obj(struct folio_queue, GFP_KERNEL);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, folioq);
kunit_add_action_or_reset(test, iov_kunit_destroy_folioq, folioq);
folioq_init(folioq, 0);
@@ -565,7 +565,7 @@ static struct xarray *iov_kunit_create_xarray(struct kunit *test)
{
struct xarray *xarray;
- xarray = kzalloc(sizeof(struct xarray), GFP_KERNEL);
+ xarray = kzalloc_obj(struct xarray, GFP_KERNEL);
xa_init(xarray);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, xarray);
kunit_add_action_or_reset(test, iov_kunit_destroy_xarray, xarray);
diff --git a/lib/tests/list-test.c b/lib/tests/list-test.c
index 9135cdc1bb39..6d9227a2b204 100644
--- a/lib/tests/list-test.c
+++ b/lib/tests/list-test.c
@@ -26,10 +26,10 @@ static void list_test_list_init(struct kunit *test)
INIT_LIST_HEAD(&list2);
- list4 = kzalloc(sizeof(*list4), GFP_KERNEL | __GFP_NOFAIL);
+ list4 = kzalloc_obj(*list4, GFP_KERNEL | __GFP_NOFAIL);
INIT_LIST_HEAD(list4);
- list5 = kmalloc(sizeof(*list5), GFP_KERNEL | __GFP_NOFAIL);
+ list5 = kmalloc_obj(*list5, GFP_KERNEL | __GFP_NOFAIL);
memset(list5, 0xFF, sizeof(*list5));
INIT_LIST_HEAD(list5);
@@ -829,10 +829,10 @@ static void hlist_test_init(struct kunit *test)
INIT_HLIST_HEAD(&list2);
- list4 = kzalloc(sizeof(*list4), GFP_KERNEL | __GFP_NOFAIL);
+ list4 = kzalloc_obj(*list4, GFP_KERNEL | __GFP_NOFAIL);
INIT_HLIST_HEAD(list4);
- list5 = kmalloc(sizeof(*list5), GFP_KERNEL | __GFP_NOFAIL);
+ list5 = kmalloc_obj(*list5, GFP_KERNEL | __GFP_NOFAIL);
memset(list5, 0xFF, sizeof(*list5));
INIT_HLIST_HEAD(list5);
diff --git a/lib/tests/test_ratelimit.c b/lib/tests/test_ratelimit.c
index bfaeca49304a..365f1fc1f256 100644
--- a/lib/tests/test_ratelimit.c
+++ b/lib/tests/test_ratelimit.c
@@ -104,7 +104,8 @@ static void test_ratelimit_stress(struct kunit *test)
int i;
const int n_stress_kthread = cpumask_weight(cpu_online_mask);
struct stress_kthread skt = { 0 };
- struct stress_kthread *sktp = kcalloc(n_stress_kthread, sizeof(*sktp), GFP_KERNEL);
+ struct stress_kthread *sktp = kzalloc_objs(*sktp, n_stress_kthread,
+ GFP_KERNEL);
KUNIT_EXPECT_NOT_NULL_MSG(test, sktp, "Memory allocation failure");
for (i = 0; i < n_stress_kthread; i++) {
diff --git a/lib/xz/xz_dec_bcj.c b/lib/xz/xz_dec_bcj.c
index 610d58d947ab..6e0fa5bef841 100644
--- a/lib/xz/xz_dec_bcj.c
+++ b/lib/xz/xz_dec_bcj.c
@@ -591,7 +591,7 @@ enum xz_ret xz_dec_bcj_run(struct xz_dec_bcj *s, struct xz_dec_lzma2 *lzma2,
struct xz_dec_bcj *xz_dec_bcj_create(bool single_call)
{
- struct xz_dec_bcj *s = kmalloc(sizeof(*s), GFP_KERNEL);
+ struct xz_dec_bcj *s = kmalloc_obj(*s, GFP_KERNEL);
if (s != NULL)
s->single_call = single_call;
diff --git a/lib/xz/xz_dec_lzma2.c b/lib/xz/xz_dec_lzma2.c
index 83bb66b6016d..02fccb7795b5 100644
--- a/lib/xz/xz_dec_lzma2.c
+++ b/lib/xz/xz_dec_lzma2.c
@@ -1138,7 +1138,7 @@ enum xz_ret xz_dec_lzma2_run(struct xz_dec_lzma2 *s, struct xz_buf *b)
struct xz_dec_lzma2 *xz_dec_lzma2_create(enum xz_mode mode, uint32_t dict_max)
{
- struct xz_dec_lzma2 *s = kmalloc(sizeof(*s), GFP_KERNEL);
+ struct xz_dec_lzma2 *s = kmalloc_obj(*s, GFP_KERNEL);
if (s == NULL)
return NULL;
@@ -1296,7 +1296,7 @@ struct xz_dec_microlzma *xz_dec_microlzma_alloc(enum xz_mode mode,
if (dict_size < 4096 || dict_size > (3U << 30))
return NULL;
- s = kmalloc(sizeof(*s), GFP_KERNEL);
+ s = kmalloc_obj(*s, GFP_KERNEL);
if (s == NULL)
return NULL;
diff --git a/lib/xz/xz_dec_stream.c b/lib/xz/xz_dec_stream.c
index f9d003684d56..0844eb6e990c 100644
--- a/lib/xz/xz_dec_stream.c
+++ b/lib/xz/xz_dec_stream.c
@@ -784,7 +784,7 @@ enum xz_ret xz_dec_run(struct xz_dec *s, struct xz_buf *b)
struct xz_dec *xz_dec_init(enum xz_mode mode, uint32_t dict_max)
{
- struct xz_dec *s = kmalloc(sizeof(*s), GFP_KERNEL);
+ struct xz_dec *s = kmalloc_obj(*s, GFP_KERNEL);
if (s == NULL)
return NULL;
diff --git a/lib/zlib_inflate/infutil.c b/lib/zlib_inflate/infutil.c
index 4824c2cc7a09..d5f9a77e41c6 100644
--- a/lib/zlib_inflate/infutil.c
+++ b/lib/zlib_inflate/infutil.c
@@ -14,7 +14,7 @@ int zlib_inflate_blob(void *gunzip_buf, unsigned int sz,
int rc;
rc = -ENOMEM;
- strm = kmalloc(sizeof(*strm), GFP_KERNEL);
+ strm = kmalloc_obj(*strm, GFP_KERNEL);
if (strm == NULL)
goto gunzip_nomem1;
strm->workspace = kmalloc(zlib_inflate_workspacesize(), GFP_KERNEL);
diff --git a/mm/backing-dev.c b/mm/backing-dev.c
index e319bd5e8b75..7a18fa6c7272 100644
--- a/mm/backing-dev.c
+++ b/mm/backing-dev.c
@@ -689,7 +689,7 @@ static int cgwb_create(struct backing_dev_info *bdi,
goto out_put;
/* need to create a new one */
- wb = kmalloc(sizeof(*wb), gfp);
+ wb = kmalloc_obj(*wb, gfp);
if (!wb) {
ret = -ENOMEM;
goto out_put;
diff --git a/mm/cma_debug.c b/mm/cma_debug.c
index 8c7d7f8e8fbd..cb94f897169d 100644
--- a/mm/cma_debug.c
+++ b/mm/cma_debug.c
@@ -131,7 +131,7 @@ static int cma_alloc_mem(struct cma *cma, int count)
struct cma_mem *mem;
struct page *p;
- mem = kzalloc(sizeof(*mem), GFP_KERNEL);
+ mem = kzalloc_obj(*mem, GFP_KERNEL);
if (!mem)
return -ENOMEM;
diff --git a/mm/cma_sysfs.c b/mm/cma_sysfs.c
index 97acd3e5a6a5..ee76baaf843c 100644
--- a/mm/cma_sysfs.c
+++ b/mm/cma_sysfs.c
@@ -117,7 +117,7 @@ static int __init cma_sysfs_init(void)
return -ENOMEM;
for (i = 0; i < cma_area_count; i++) {
- cma_kobj = kzalloc(sizeof(*cma_kobj), GFP_KERNEL);
+ cma_kobj = kzalloc_obj(*cma_kobj, GFP_KERNEL);
if (!cma_kobj) {
err = -ENOMEM;
goto out;
diff --git a/mm/damon/core.c b/mm/damon/core.c
index 5e2724a4f285..2d73d7effa3b 100644
--- a/mm/damon/core.c
+++ b/mm/damon/core.c
@@ -273,7 +273,7 @@ struct damos_filter *damos_new_filter(enum damos_filter_type type,
{
struct damos_filter *filter;
- filter = kmalloc(sizeof(*filter), GFP_KERNEL);
+ filter = kmalloc_obj(*filter, GFP_KERNEL);
if (!filter)
return NULL;
filter->type = type;
@@ -332,7 +332,7 @@ struct damos_quota_goal *damos_new_quota_goal(
{
struct damos_quota_goal *goal;
- goal = kmalloc(sizeof(*goal), GFP_KERNEL);
+ goal = kmalloc_obj(*goal, GFP_KERNEL);
if (!goal)
return NULL;
goal->metric = metric;
@@ -385,7 +385,7 @@ struct damos *damon_new_scheme(struct damos_access_pattern *pattern,
{
struct damos *scheme;
- scheme = kmalloc(sizeof(*scheme), GFP_KERNEL);
+ scheme = kmalloc_obj(*scheme, GFP_KERNEL);
if (!scheme)
return NULL;
scheme->pattern = *pattern;
@@ -473,7 +473,7 @@ struct damon_target *damon_new_target(void)
{
struct damon_target *t;
- t = kmalloc(sizeof(*t), GFP_KERNEL);
+ t = kmalloc_obj(*t, GFP_KERNEL);
if (!t)
return NULL;
@@ -529,7 +529,7 @@ struct damon_ctx *damon_new_ctx(void)
{
struct damon_ctx *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return NULL;
@@ -1153,7 +1153,7 @@ static int damon_commit_target_regions(struct damon_target *dst,
if (!i)
return 0;
- ranges = kmalloc_array(i, sizeof(*ranges), GFP_KERNEL | __GFP_NOWARN);
+ ranges = kmalloc_objs(*ranges, i, GFP_KERNEL | __GFP_NOWARN);
if (!ranges)
return -ENOMEM;
i = 0;
diff --git a/mm/damon/stat.c b/mm/damon/stat.c
index bcf6c8ae9b90..06fc95861dd4 100644
--- a/mm/damon/stat.c
+++ b/mm/damon/stat.c
@@ -90,8 +90,8 @@ static int damon_stat_sort_regions(struct damon_ctx *c,
damon_for_each_target(t, c) {
/* there is only one target */
- region_pointers = kmalloc_array(damon_nr_regions(t),
- sizeof(*region_pointers), GFP_KERNEL);
+ region_pointers = kmalloc_objs(*region_pointers,
+ damon_nr_regions(t), GFP_KERNEL);
if (!region_pointers)
return -ENOMEM;
damon_for_each_region(r, t) {
diff --git a/mm/damon/sysfs-common.c b/mm/damon/sysfs-common.c
index ffaf285e241a..2149008135ef 100644
--- a/mm/damon/sysfs-common.c
+++ b/mm/damon/sysfs-common.c
@@ -19,8 +19,7 @@ struct damon_sysfs_ul_range *damon_sysfs_ul_range_alloc(
unsigned long min,
unsigned long max)
{
- struct damon_sysfs_ul_range *range = kmalloc(sizeof(*range),
- GFP_KERNEL);
+ struct damon_sysfs_ul_range *range = kmalloc_obj(*range, GFP_KERNEL);
if (!range)
return NULL;
diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c
index 2b05a6477188..ba700da545af 100644
--- a/mm/damon/sysfs-schemes.c
+++ b/mm/damon/sysfs-schemes.c
@@ -26,8 +26,8 @@ struct damon_sysfs_scheme_region {
static struct damon_sysfs_scheme_region *damon_sysfs_scheme_region_alloc(
struct damon_region *region)
{
- struct damon_sysfs_scheme_region *sysfs_region = kmalloc(
- sizeof(*sysfs_region), GFP_KERNEL);
+ struct damon_sysfs_scheme_region *sysfs_region = kmalloc_obj(*sysfs_region,
+ GFP_KERNEL);
if (!sysfs_region)
return NULL;
@@ -138,8 +138,8 @@ struct damon_sysfs_scheme_regions {
static struct damon_sysfs_scheme_regions *
damon_sysfs_scheme_regions_alloc(void)
{
- struct damon_sysfs_scheme_regions *regions = kmalloc(sizeof(*regions),
- GFP_KERNEL);
+ struct damon_sysfs_scheme_regions *regions = kmalloc_obj(*regions,
+ GFP_KERNEL);
if (!regions)
return NULL;
@@ -210,7 +210,7 @@ struct damon_sysfs_stats {
static struct damon_sysfs_stats *damon_sysfs_stats_alloc(void)
{
- return kzalloc(sizeof(struct damon_sysfs_stats), GFP_KERNEL);
+ return kzalloc_obj(struct damon_sysfs_stats, GFP_KERNEL);
}
static ssize_t nr_tried_show(struct kobject *kobj, struct kobj_attribute *attr,
@@ -376,7 +376,7 @@ static struct damon_sysfs_scheme_filter *damon_sysfs_scheme_filter_alloc(
{
struct damon_sysfs_scheme_filter *filter;
- filter = kzalloc(sizeof(struct damon_sysfs_scheme_filter), GFP_KERNEL);
+ filter = kzalloc_obj(struct damon_sysfs_scheme_filter, GFP_KERNEL);
if (filter)
filter->handle_layer = layer;
return filter;
@@ -724,7 +724,7 @@ damon_sysfs_scheme_filters_alloc(enum damos_sysfs_filter_handle_layer layer)
{
struct damon_sysfs_scheme_filters *filters;
- filters = kzalloc(sizeof(struct damon_sysfs_scheme_filters), GFP_KERNEL);
+ filters = kzalloc_obj(struct damon_sysfs_scheme_filters, GFP_KERNEL);
if (filters)
filters->handle_layer = layer;
return filters;
@@ -753,8 +753,8 @@ static int damon_sysfs_scheme_filters_add_dirs(
if (!nr_filters)
return 0;
- filters_arr = kmalloc_array(nr_filters, sizeof(*filters_arr),
- GFP_KERNEL | __GFP_NOWARN);
+ filters_arr = kmalloc_objs(*filters_arr, nr_filters,
+ GFP_KERNEL | __GFP_NOWARN);
if (!filters_arr)
return -ENOMEM;
filters->filters_arr = filters_arr;
@@ -851,8 +851,8 @@ static struct damon_sysfs_watermarks *damon_sysfs_watermarks_alloc(
enum damos_wmark_metric metric, unsigned long interval_us,
unsigned long high, unsigned long mid, unsigned long low)
{
- struct damon_sysfs_watermarks *watermarks = kmalloc(
- sizeof(*watermarks), GFP_KERNEL);
+ struct damon_sysfs_watermarks *watermarks = kmalloc_obj(*watermarks,
+ GFP_KERNEL);
if (!watermarks)
return NULL;
@@ -1045,7 +1045,7 @@ struct damos_sysfs_quota_goal {
static struct damos_sysfs_quota_goal *damos_sysfs_quota_goal_alloc(void)
{
- return kzalloc(sizeof(struct damos_sysfs_quota_goal), GFP_KERNEL);
+ return kzalloc_obj(struct damos_sysfs_quota_goal, GFP_KERNEL);
}
struct damos_sysfs_qgoal_metric_name {
@@ -1263,7 +1263,7 @@ struct damos_sysfs_quota_goals {
static struct damos_sysfs_quota_goals *damos_sysfs_quota_goals_alloc(void)
{
- return kzalloc(sizeof(struct damos_sysfs_quota_goals), GFP_KERNEL);
+ return kzalloc_obj(struct damos_sysfs_quota_goals, GFP_KERNEL);
}
static void damos_sysfs_quota_goals_rm_dirs(
@@ -1289,8 +1289,8 @@ static int damos_sysfs_quota_goals_add_dirs(
if (!nr_goals)
return 0;
- goals_arr = kmalloc_array(nr_goals, sizeof(*goals_arr),
- GFP_KERNEL | __GFP_NOWARN);
+ goals_arr = kmalloc_objs(*goals_arr, nr_goals,
+ GFP_KERNEL | __GFP_NOWARN);
if (!goals_arr)
return -ENOMEM;
goals->goals_arr = goals_arr;
@@ -1383,8 +1383,7 @@ struct damon_sysfs_weights {
static struct damon_sysfs_weights *damon_sysfs_weights_alloc(unsigned int sz,
unsigned int nr_accesses, unsigned int age)
{
- struct damon_sysfs_weights *weights = kmalloc(sizeof(*weights),
- GFP_KERNEL);
+ struct damon_sysfs_weights *weights = kmalloc_obj(*weights, GFP_KERNEL);
if (!weights)
return NULL;
@@ -1496,7 +1495,7 @@ struct damon_sysfs_quotas {
static struct damon_sysfs_quotas *damon_sysfs_quotas_alloc(void)
{
- return kzalloc(sizeof(struct damon_sysfs_quotas), GFP_KERNEL);
+ return kzalloc_obj(struct damon_sysfs_quotas, GFP_KERNEL);
}
static int damon_sysfs_quotas_add_dirs(struct damon_sysfs_quotas *quotas)
@@ -1660,8 +1659,8 @@ struct damon_sysfs_access_pattern {
static
struct damon_sysfs_access_pattern *damon_sysfs_access_pattern_alloc(void)
{
- struct damon_sysfs_access_pattern *access_pattern =
- kmalloc(sizeof(*access_pattern), GFP_KERNEL);
+ struct damon_sysfs_access_pattern *access_pattern = kmalloc_obj(*access_pattern,
+ GFP_KERNEL);
if (!access_pattern)
return NULL;
@@ -1757,7 +1756,7 @@ struct damos_sysfs_dest {
static struct damos_sysfs_dest *damos_sysfs_dest_alloc(void)
{
- return kzalloc(sizeof(struct damos_sysfs_dest), GFP_KERNEL);
+ return kzalloc_obj(struct damos_sysfs_dest, GFP_KERNEL);
}
static ssize_t id_show(
@@ -1837,7 +1836,7 @@ struct damos_sysfs_dests {
static struct damos_sysfs_dests *
damos_sysfs_dests_alloc(void)
{
- return kzalloc(sizeof(struct damos_sysfs_dests), GFP_KERNEL);
+ return kzalloc_obj(struct damos_sysfs_dests, GFP_KERNEL);
}
static void damos_sysfs_dests_rm_dirs(
@@ -1863,8 +1862,8 @@ static int damos_sysfs_dests_add_dirs(
if (!nr_dests)
return 0;
- dests_arr = kmalloc_array(nr_dests, sizeof(*dests_arr),
- GFP_KERNEL | __GFP_NOWARN);
+ dests_arr = kmalloc_objs(*dests_arr, nr_dests,
+ GFP_KERNEL | __GFP_NOWARN);
if (!dests_arr)
return -ENOMEM;
dests->dests_arr = dests_arr;
@@ -2014,8 +2013,7 @@ static struct damos_sysfs_action_name damos_sysfs_action_names[] = {
static struct damon_sysfs_scheme *damon_sysfs_scheme_alloc(
enum damos_action action, unsigned long apply_interval_us)
{
- struct damon_sysfs_scheme *scheme = kmalloc(sizeof(*scheme),
- GFP_KERNEL);
+ struct damon_sysfs_scheme *scheme = kmalloc_obj(*scheme, GFP_KERNEL);
if (!scheme)
return NULL;
@@ -2376,7 +2374,7 @@ static const struct kobj_type damon_sysfs_scheme_ktype = {
struct damon_sysfs_schemes *damon_sysfs_schemes_alloc(void)
{
- return kzalloc(sizeof(struct damon_sysfs_schemes), GFP_KERNEL);
+ return kzalloc_obj(struct damon_sysfs_schemes, GFP_KERNEL);
}
void damon_sysfs_schemes_rm_dirs(struct damon_sysfs_schemes *schemes)
@@ -2403,8 +2401,8 @@ static int damon_sysfs_schemes_add_dirs(struct damon_sysfs_schemes *schemes,
if (!nr_schemes)
return 0;
- schemes_arr = kmalloc_array(nr_schemes, sizeof(*schemes_arr),
- GFP_KERNEL | __GFP_NOWARN);
+ schemes_arr = kmalloc_objs(*schemes_arr, nr_schemes,
+ GFP_KERNEL | __GFP_NOWARN);
if (!schemes_arr)
return -ENOMEM;
schemes->schemes_arr = schemes_arr;
@@ -2683,12 +2681,12 @@ static int damos_sysfs_add_migrate_dest(struct damos *scheme,
struct damos_migrate_dests *dests = &scheme->migrate_dests;
int i;
- dests->node_id_arr = kmalloc_array(sysfs_dests->nr,
- sizeof(*dests->node_id_arr), GFP_KERNEL);
+ dests->node_id_arr = kmalloc_objs(*dests->node_id_arr, sysfs_dests->nr,
+ GFP_KERNEL);
if (!dests->node_id_arr)
return -ENOMEM;
- dests->weight_arr = kmalloc_array(sysfs_dests->nr,
- sizeof(*dests->weight_arr), GFP_KERNEL);
+ dests->weight_arr = kmalloc_objs(*dests->weight_arr, sysfs_dests->nr,
+ GFP_KERNEL);
if (!dests->weight_arr)
/* ->node_id_arr will be freed by scheme destruction */
return -ENOMEM;
diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c
index b7f66196bec4..9561ad8b7852 100644
--- a/mm/damon/sysfs.c
+++ b/mm/damon/sysfs.c
@@ -22,7 +22,7 @@ struct damon_sysfs_region {
static struct damon_sysfs_region *damon_sysfs_region_alloc(void)
{
- return kzalloc(sizeof(struct damon_sysfs_region), GFP_KERNEL);
+ return kzalloc_obj(struct damon_sysfs_region, GFP_KERNEL);
}
static ssize_t start_show(struct kobject *kobj, struct kobj_attribute *attr,
@@ -99,7 +99,7 @@ struct damon_sysfs_regions {
static struct damon_sysfs_regions *damon_sysfs_regions_alloc(void)
{
- return kzalloc(sizeof(struct damon_sysfs_regions), GFP_KERNEL);
+ return kzalloc_obj(struct damon_sysfs_regions, GFP_KERNEL);
}
static void damon_sysfs_regions_rm_dirs(struct damon_sysfs_regions *regions)
@@ -124,8 +124,8 @@ static int damon_sysfs_regions_add_dirs(struct damon_sysfs_regions *regions,
if (!nr_regions)
return 0;
- regions_arr = kmalloc_array(nr_regions, sizeof(*regions_arr),
- GFP_KERNEL | __GFP_NOWARN);
+ regions_arr = kmalloc_objs(*regions_arr, nr_regions,
+ GFP_KERNEL | __GFP_NOWARN);
if (!regions_arr)
return -ENOMEM;
regions->regions_arr = regions_arr;
@@ -217,7 +217,7 @@ struct damon_sysfs_target {
static struct damon_sysfs_target *damon_sysfs_target_alloc(void)
{
- return kzalloc(sizeof(struct damon_sysfs_target), GFP_KERNEL);
+ return kzalloc_obj(struct damon_sysfs_target, GFP_KERNEL);
}
static int damon_sysfs_target_add_dirs(struct damon_sysfs_target *target)
@@ -323,7 +323,7 @@ struct damon_sysfs_targets {
static struct damon_sysfs_targets *damon_sysfs_targets_alloc(void)
{
- return kzalloc(sizeof(struct damon_sysfs_targets), GFP_KERNEL);
+ return kzalloc_obj(struct damon_sysfs_targets, GFP_KERNEL);
}
static void damon_sysfs_targets_rm_dirs(struct damon_sysfs_targets *targets)
@@ -350,8 +350,8 @@ static int damon_sysfs_targets_add_dirs(struct damon_sysfs_targets *targets,
if (!nr_targets)
return 0;
- targets_arr = kmalloc_array(nr_targets, sizeof(*targets_arr),
- GFP_KERNEL | __GFP_NOWARN);
+ targets_arr = kmalloc_objs(*targets_arr, nr_targets,
+ GFP_KERNEL | __GFP_NOWARN);
if (!targets_arr)
return -ENOMEM;
targets->targets_arr = targets_arr;
@@ -452,8 +452,7 @@ static struct damon_sysfs_intervals_goal *damon_sysfs_intervals_goal_alloc(
unsigned long access_bp, unsigned long aggrs,
unsigned long min_sample_us, unsigned long max_sample_us)
{
- struct damon_sysfs_intervals_goal *goal = kmalloc(sizeof(*goal),
- GFP_KERNEL);
+ struct damon_sysfs_intervals_goal *goal = kmalloc_obj(*goal, GFP_KERNEL);
if (!goal)
return NULL;
@@ -610,8 +609,8 @@ static struct damon_sysfs_intervals *damon_sysfs_intervals_alloc(
unsigned long sample_us, unsigned long aggr_us,
unsigned long update_us)
{
- struct damon_sysfs_intervals *intervals = kmalloc(sizeof(*intervals),
- GFP_KERNEL);
+ struct damon_sysfs_intervals *intervals = kmalloc_obj(*intervals,
+ GFP_KERNEL);
if (!intervals)
return NULL;
@@ -761,7 +760,7 @@ struct damon_sysfs_attrs {
static struct damon_sysfs_attrs *damon_sysfs_attrs_alloc(void)
{
- struct damon_sysfs_attrs *attrs = kmalloc(sizeof(*attrs), GFP_KERNEL);
+ struct damon_sysfs_attrs *attrs = kmalloc_obj(*attrs, GFP_KERNEL);
if (!attrs)
return NULL;
@@ -873,8 +872,7 @@ struct damon_sysfs_context {
static struct damon_sysfs_context *damon_sysfs_context_alloc(
enum damon_ops_id ops_id)
{
- struct damon_sysfs_context *context = kmalloc(sizeof(*context),
- GFP_KERNEL);
+ struct damon_sysfs_context *context = kmalloc_obj(*context, GFP_KERNEL);
if (!context)
return NULL;
@@ -1096,7 +1094,7 @@ struct damon_sysfs_contexts {
static struct damon_sysfs_contexts *damon_sysfs_contexts_alloc(void)
{
- return kzalloc(sizeof(struct damon_sysfs_contexts), GFP_KERNEL);
+ return kzalloc_obj(struct damon_sysfs_contexts, GFP_KERNEL);
}
static void damon_sysfs_contexts_rm_dirs(struct damon_sysfs_contexts *contexts)
@@ -1123,8 +1121,8 @@ static int damon_sysfs_contexts_add_dirs(struct damon_sysfs_contexts *contexts,
if (!nr_contexts)
return 0;
- contexts_arr = kmalloc_array(nr_contexts, sizeof(*contexts_arr),
- GFP_KERNEL | __GFP_NOWARN);
+ contexts_arr = kmalloc_objs(*contexts_arr, nr_contexts,
+ GFP_KERNEL | __GFP_NOWARN);
if (!contexts_arr)
return -ENOMEM;
contexts->contexts_arr = contexts_arr;
@@ -1223,7 +1221,7 @@ struct damon_sysfs_kdamond {
static struct damon_sysfs_kdamond *damon_sysfs_kdamond_alloc(void)
{
- return kzalloc(sizeof(struct damon_sysfs_kdamond), GFP_KERNEL);
+ return kzalloc_obj(struct damon_sysfs_kdamond, GFP_KERNEL);
}
static int damon_sysfs_kdamond_add_dirs(struct damon_sysfs_kdamond *kdamond)
@@ -1367,8 +1365,9 @@ static int damon_sysfs_set_regions(struct damon_target *t,
struct damon_sysfs_regions *sysfs_regions,
unsigned long min_region_sz)
{
- struct damon_addr_range *ranges = kmalloc_array(sysfs_regions->nr,
- sizeof(*ranges), GFP_KERNEL | __GFP_NOWARN);
+ struct damon_addr_range *ranges = kmalloc_objs(*ranges,
+ sysfs_regions->nr,
+ GFP_KERNEL | __GFP_NOWARN);
int i, err = -EINVAL;
if (!ranges)
@@ -1643,8 +1642,7 @@ static int damon_sysfs_turn_damon_on(struct damon_sysfs_kdamond *kdamond)
damon_destroy_ctx(kdamond->damon_ctx);
kdamond->damon_ctx = NULL;
- repeat_call_control = kmalloc(sizeof(*repeat_call_control),
- GFP_KERNEL);
+ repeat_call_control = kmalloc_obj(*repeat_call_control, GFP_KERNEL);
if (!repeat_call_control)
return -ENOMEM;
@@ -1897,7 +1895,7 @@ struct damon_sysfs_kdamonds {
static struct damon_sysfs_kdamonds *damon_sysfs_kdamonds_alloc(void)
{
- return kzalloc(sizeof(struct damon_sysfs_kdamonds), GFP_KERNEL);
+ return kzalloc_obj(struct damon_sysfs_kdamonds, GFP_KERNEL);
}
static void damon_sysfs_kdamonds_rm_dirs(struct damon_sysfs_kdamonds *kdamonds)
@@ -1940,8 +1938,8 @@ static int damon_sysfs_kdamonds_add_dirs(struct damon_sysfs_kdamonds *kdamonds,
if (!nr_kdamonds)
return 0;
- kdamonds_arr = kmalloc_array(nr_kdamonds, sizeof(*kdamonds_arr),
- GFP_KERNEL | __GFP_NOWARN);
+ kdamonds_arr = kmalloc_objs(*kdamonds_arr, nr_kdamonds,
+ GFP_KERNEL | __GFP_NOWARN);
if (!kdamonds_arr)
return -ENOMEM;
kdamonds->kdamonds_arr = kdamonds_arr;
@@ -2038,7 +2036,7 @@ struct damon_sysfs_ui_dir {
static struct damon_sysfs_ui_dir *damon_sysfs_ui_dir_alloc(void)
{
- return kzalloc(sizeof(struct damon_sysfs_ui_dir), GFP_KERNEL);
+ return kzalloc_obj(struct damon_sysfs_ui_dir, GFP_KERNEL);
}
static int damon_sysfs_ui_dir_add_dirs(struct damon_sysfs_ui_dir *ui_dir)
diff --git a/mm/damon/tests/core-kunit.h b/mm/damon/tests/core-kunit.h
index 92ea25e2dc9e..d3a30b170564 100644
--- a/mm/damon/tests/core-kunit.h
+++ b/mm/damon/tests/core-kunit.h
@@ -725,12 +725,12 @@ static int damos_test_help_dests_setup(struct damos_migrate_dests *dests,
{
size_t i;
- dests->node_id_arr = kmalloc_array(nr_dests,
- sizeof(*dests->node_id_arr), GFP_KERNEL);
+ dests->node_id_arr = kmalloc_objs(*dests->node_id_arr, nr_dests,
+ GFP_KERNEL);
if (!dests->node_id_arr)
return -ENOMEM;
- dests->weight_arr = kmalloc_array(nr_dests,
- sizeof(*dests->weight_arr), GFP_KERNEL);
+ dests->weight_arr = kmalloc_objs(*dests->weight_arr, nr_dests,
+ GFP_KERNEL);
if (!dests->weight_arr) {
kfree(dests->node_id_arr);
dests->node_id_arr = NULL;
diff --git a/mm/damon/tests/sysfs-kunit.h b/mm/damon/tests/sysfs-kunit.h
index 0c665ed255a3..8dcd4a01684e 100644
--- a/mm/damon/tests/sysfs-kunit.h
+++ b/mm/damon/tests/sysfs-kunit.h
@@ -48,8 +48,8 @@ static void damon_sysfs_test_add_targets(struct kunit *test)
if (!sysfs_targets)
kunit_skip(test, "sysfs_targets alloc fail");
sysfs_targets->nr = 1;
- sysfs_targets->targets_arr = kmalloc_array(1,
- sizeof(*sysfs_targets->targets_arr), GFP_KERNEL);
+ sysfs_targets->targets_arr = kmalloc_objs(*sysfs_targets->targets_arr,
+ 1, GFP_KERNEL);
if (!sysfs_targets->targets_arr) {
kfree(sysfs_targets);
kunit_skip(test, "targets_arr alloc fail");
diff --git a/mm/damon/vaddr.c b/mm/damon/vaddr.c
index 83ab3d8c3792..862835d69af1 100644
--- a/mm/damon/vaddr.c
+++ b/mm/damon/vaddr.c
@@ -821,8 +821,8 @@ static unsigned long damos_va_migrate(struct damon_target *target,
use_target_nid = dests->nr_dests == 0;
nr_dests = use_target_nid ? 1 : dests->nr_dests;
priv.scheme = s;
- priv.migration_lists = kmalloc_array(nr_dests,
- sizeof(*priv.migration_lists), GFP_KERNEL);
+ priv.migration_lists = kmalloc_objs(*priv.migration_lists, nr_dests,
+ GFP_KERNEL);
if (!priv.migration_lists)
return 0;
diff --git a/mm/dmapool_test.c b/mm/dmapool_test.c
index e8172d708308..454952ac9f0e 100644
--- a/mm/dmapool_test.c
+++ b/mm/dmapool_test.c
@@ -67,7 +67,7 @@ static int dmapool_test_block(const struct dmapool_parms *parms)
struct dma_pool_pair *p;
int i, ret;
- p = kcalloc(blocks, sizeof(*p), GFP_KERNEL);
+ p = kzalloc_objs(*p, blocks, GFP_KERNEL);
if (!p)
return -ENOMEM;
diff --git a/mm/hmm.c b/mm/hmm.c
index 4ec74c18bef6..f6c4ddff4bd6 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -723,8 +723,8 @@ int hmm_dma_map_alloc(struct device *dev, struct hmm_dma_map *map,
use_iova = dma_iova_try_alloc(dev, &map->state, 0,
nr_entries * PAGE_SIZE);
if (!use_iova && dma_need_unmap(dev)) {
- map->dma_list = kvcalloc(nr_entries, sizeof(*map->dma_list),
- GFP_KERNEL | __GFP_NOWARN);
+ map->dma_list = kvzalloc_objs(*map->dma_list, nr_entries,
+ GFP_KERNEL | __GFP_NOWARN);
if (!map->dma_list)
goto err_dma;
}
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 0d487649e4de..809c99ee81b9 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -718,7 +718,7 @@ static struct thpsize *thpsize_create(int order, struct kobject *parent)
struct thpsize *thpsize;
int ret = -ENOMEM;
- thpsize = kzalloc(sizeof(*thpsize), GFP_KERNEL);
+ thpsize = kzalloc_obj(*thpsize, GFP_KERNEL);
if (!thpsize)
goto err;
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 6e855a32de3d..6793a5b07882 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -154,7 +154,7 @@ struct hugepage_subpool *hugepage_new_subpool(struct hstate *h, long max_hpages,
{
struct hugepage_subpool *spool;
- spool = kzalloc(sizeof(*spool), GFP_KERNEL);
+ spool = kzalloc_obj(*spool, GFP_KERNEL);
if (!spool)
return NULL;
@@ -429,7 +429,7 @@ int hugetlb_vma_lock_alloc(struct vm_area_struct *vma)
if (vma->vm_private_data)
return -EINVAL;
- vma_lock = kmalloc(sizeof(*vma_lock), GFP_KERNEL);
+ vma_lock = kmalloc_obj(*vma_lock, GFP_KERNEL);
if (!vma_lock) {
/*
* If we can not allocate structure, then vma can not
@@ -687,7 +687,7 @@ static int allocate_file_region_entries(struct resv_map *resv,
spin_unlock(&resv->lock);
for (i = 0; i < to_allocate; i++) {
- trg = kmalloc(sizeof(*trg), GFP_KERNEL);
+ trg = kmalloc_obj(*trg, GFP_KERNEL);
if (!trg)
goto out_of_memory;
list_add(&trg->link, &allocated_regions);
@@ -891,7 +891,7 @@ static long region_del(struct resv_map *resv, long f, long t)
if (!nrg) {
spin_unlock(&resv->lock);
- nrg = kmalloc(sizeof(*nrg), GFP_KERNEL);
+ nrg = kmalloc_obj(*nrg, GFP_KERNEL);
if (!nrg)
return -ENOMEM;
goto retry;
@@ -1105,8 +1105,8 @@ resv_map_set_hugetlb_cgroup_uncharge_info(struct resv_map *resv_map,
struct resv_map *resv_map_alloc(void)
{
- struct resv_map *resv_map = kmalloc(sizeof(*resv_map), GFP_KERNEL);
- struct file_region *rg = kmalloc(sizeof(*rg), GFP_KERNEL);
+ struct resv_map *resv_map = kmalloc_obj(*resv_map, GFP_KERNEL);
+ struct file_region *rg = kmalloc_obj(*rg, GFP_KERNEL);
if (!resv_map || !rg) {
kfree(resv_map);
@@ -4190,8 +4190,7 @@ static int __init hugetlb_init(void)
num_fault_mutexes = 1;
#endif
hugetlb_fault_mutex_table =
- kmalloc_array(num_fault_mutexes, sizeof(struct mutex),
- GFP_KERNEL);
+ kmalloc_objs(struct mutex, num_fault_mutexes, GFP_KERNEL);
BUG_ON(!hugetlb_fault_mutex_table);
for (i = 0; i < num_fault_mutexes; i++)
diff --git a/mm/hugetlb_cgroup.c b/mm/hugetlb_cgroup.c
index 792d06538fa9..6e4706d6ee82 100644
--- a/mm/hugetlb_cgroup.c
+++ b/mm/hugetlb_cgroup.c
@@ -139,8 +139,7 @@ hugetlb_cgroup_css_alloc(struct cgroup_subsys_state *parent_css)
struct hugetlb_cgroup *h_cgroup;
int node;
- h_cgroup = kzalloc(struct_size(h_cgroup, nodeinfo, nr_node_ids),
- GFP_KERNEL);
+ h_cgroup = kzalloc_flex(*h_cgroup, nodeinfo, nr_node_ids, GFP_KERNEL);
if (!h_cgroup)
return ERR_PTR(-ENOMEM);
@@ -857,10 +856,10 @@ static void __init __hugetlb_cgroup_file_pre_init(void)
int cft_count;
cft_count = hugetlb_max_hstate * DFL_TMPL_SIZE + 1; /* add terminator */
- dfl_files = kcalloc(cft_count, sizeof(struct cftype), GFP_KERNEL);
+ dfl_files = kzalloc_objs(struct cftype, cft_count, GFP_KERNEL);
BUG_ON(!dfl_files);
cft_count = hugetlb_max_hstate * LEGACY_TMPL_SIZE + 1; /* add terminator */
- legacy_files = kcalloc(cft_count, sizeof(struct cftype), GFP_KERNEL);
+ legacy_files = kzalloc_objs(struct cftype, cft_count, GFP_KERNEL);
BUG_ON(!legacy_files);
}
diff --git a/mm/kasan/kasan_test_c.c b/mm/kasan/kasan_test_c.c
index b4d157962121..cb9c95ed7821 100644
--- a/mm/kasan/kasan_test_c.c
+++ b/mm/kasan/kasan_test_c.c
@@ -511,7 +511,7 @@ static void kmalloc_oob_16(struct kunit *test)
ptr1 = RELOC_HIDE(kmalloc(sizeof(*ptr1) - 3, GFP_KERNEL), 0);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr1);
- ptr2 = kmalloc(sizeof(*ptr2), GFP_KERNEL);
+ ptr2 = kmalloc_obj(*ptr2, GFP_KERNEL);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr2);
OPTIMIZER_HIDE_VAR(ptr1);
@@ -529,10 +529,10 @@ static void kmalloc_uaf_16(struct kunit *test)
KASAN_TEST_NEEDS_CHECKED_MEMINTRINSICS(test);
- ptr1 = kmalloc(sizeof(*ptr1), GFP_KERNEL);
+ ptr1 = kmalloc_obj(*ptr1, GFP_KERNEL);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr1);
- ptr2 = kmalloc(sizeof(*ptr2), GFP_KERNEL);
+ ptr2 = kmalloc_obj(*ptr2, GFP_KERNEL);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr2);
kfree(ptr2);
@@ -859,7 +859,7 @@ static void kasan_atomics(struct kunit *test)
*/
a1 = kzalloc(48, GFP_KERNEL);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, a1);
- a2 = kzalloc(sizeof(atomic_long_t), GFP_KERNEL);
+ a2 = kzalloc_obj(atomic_long_t, GFP_KERNEL);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, a2);
/* Use atomics to access the redzone. */
@@ -954,7 +954,7 @@ static void rcu_uaf(struct kunit *test)
{
struct kasan_rcu_info *ptr;
- ptr = kmalloc(sizeof(struct kasan_rcu_info), GFP_KERNEL);
+ ptr = kmalloc_obj(struct kasan_rcu_info, GFP_KERNEL);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
global_rcu_ptr = rcu_dereference_protected(
@@ -978,7 +978,7 @@ static void workqueue_uaf(struct kunit *test)
workqueue = create_workqueue("kasan_workqueue_test");
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, workqueue);
- work = kmalloc(sizeof(struct work_struct), GFP_KERNEL);
+ work = kmalloc_obj(struct work_struct, GFP_KERNEL);
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, work);
INIT_WORK(work, workqueue_uaf_work);
diff --git a/mm/khugepaged.c b/mm/khugepaged.c
index eff9e3061925..f2f95b32317c 100644
--- a/mm/khugepaged.c
+++ b/mm/khugepaged.c
@@ -2769,7 +2769,7 @@ int madvise_collapse(struct vm_area_struct *vma, unsigned long start,
if (!thp_vma_allowable_order(vma, vma->vm_flags, TVA_FORCED_COLLAPSE, PMD_ORDER))
return -EINVAL;
- cc = kmalloc(sizeof(*cc), GFP_KERNEL);
+ cc = kmalloc_obj(*cc, GFP_KERNEL);
if (!cc)
return -ENOMEM;
cc->is_khugepaged = false;
diff --git a/mm/kmsan/kmsan_test.c b/mm/kmsan/kmsan_test.c
index 7a7fbaff7350..27cc936176ea 100644
--- a/mm/kmsan/kmsan_test.c
+++ b/mm/kmsan/kmsan_test.c
@@ -168,7 +168,7 @@ static void test_uninit_kmalloc(struct kunit *test)
int *ptr;
kunit_info(test, "uninitialized kmalloc test (UMR report)\n");
- ptr = kmalloc(sizeof(*ptr), GFP_KERNEL);
+ ptr = kmalloc_obj(*ptr, GFP_KERNEL);
USE(*ptr);
KUNIT_EXPECT_TRUE(test, report_matches(&expect));
}
@@ -182,7 +182,7 @@ static void test_init_kmalloc(struct kunit *test)
int *ptr;
kunit_info(test, "initialized kmalloc test (no reports)\n");
- ptr = kmalloc(sizeof(*ptr), GFP_KERNEL);
+ ptr = kmalloc_obj(*ptr, GFP_KERNEL);
memset(ptr, 0, sizeof(*ptr));
USE(*ptr);
KUNIT_EXPECT_TRUE(test, report_matches(&expect));
@@ -195,7 +195,7 @@ static void test_init_kzalloc(struct kunit *test)
int *ptr;
kunit_info(test, "initialized kzalloc test (no reports)\n");
- ptr = kzalloc(sizeof(*ptr), GFP_KERNEL);
+ ptr = kzalloc_obj(*ptr, GFP_KERNEL);
USE(*ptr);
KUNIT_EXPECT_TRUE(test, report_matches(&expect));
}
@@ -322,7 +322,7 @@ static void test_init_kmsan_vmap_vunmap(struct kunit *test)
kunit_info(test, "pages initialized via vmap (no reports)\n");
- pages = kmalloc_array(npages, sizeof(*pages), GFP_KERNEL);
+ pages = kmalloc_objs(*pages, npages, GFP_KERNEL);
for (int i = 0; i < npages; i++)
pages[i] = alloc_page(GFP_KERNEL);
vbuf = vmap(pages, npages, VM_MAP, PAGE_KERNEL);
diff --git a/mm/kmsan/shadow.c b/mm/kmsan/shadow.c
index 9e1c5f2b7a41..8fde939784a7 100644
--- a/mm/kmsan/shadow.c
+++ b/mm/kmsan/shadow.c
@@ -230,8 +230,8 @@ int kmsan_vmap_pages_range_noflush(unsigned long start, unsigned long end,
return 0;
nr = (end - start) / PAGE_SIZE;
- s_pages = kcalloc(nr, sizeof(*s_pages), gfp_mask);
- o_pages = kcalloc(nr, sizeof(*o_pages), gfp_mask);
+ s_pages = kzalloc_objs(*s_pages, nr, gfp_mask);
+ o_pages = kzalloc_objs(*o_pages, nr, gfp_mask);
if (!s_pages || !o_pages) {
err = -ENOMEM;
goto ret;
diff --git a/mm/ksm.c b/mm/ksm.c
index 2d89a7c8b4eb..85481c3e3f2c 100644
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -3586,8 +3586,8 @@ static ssize_t merge_across_nodes_store(struct kobject *kobj,
* Allocate stable and unstable together:
* MAXSMP NODES_SHIFT 10 will use 16kB.
*/
- buf = kcalloc(nr_node_ids + nr_node_ids, sizeof(*buf),
- GFP_KERNEL);
+ buf = kzalloc_objs(*buf, nr_node_ids + nr_node_ids,
+ GFP_KERNEL);
/* Let us assume that RB_ROOT is NULL is zero */
if (!buf)
err = -ENOMEM;
diff --git a/mm/list_lru.c b/mm/list_lru.c
index 13b9f66d950e..16526b9d71b5 100644
--- a/mm/list_lru.c
+++ b/mm/list_lru.c
@@ -407,7 +407,7 @@ static struct list_lru_memcg *memcg_init_list_lru_one(struct list_lru *lru, gfp_
int nid;
struct list_lru_memcg *mlru;
- mlru = kmalloc(struct_size(mlru, node, nr_node_ids), gfp);
+ mlru = kmalloc_flex(*mlru, node, nr_node_ids, gfp);
if (!mlru)
return NULL;
@@ -585,7 +585,7 @@ int __list_lru_init(struct list_lru *lru, bool memcg_aware, struct shrinker *shr
memcg_aware = false;
#endif
- lru->node = kcalloc(nr_node_ids, sizeof(*lru->node), GFP_KERNEL);
+ lru->node = kzalloc_objs(*lru->node, nr_node_ids, GFP_KERNEL);
if (!lru->node)
return -ENOMEM;
diff --git a/mm/madvise.c b/mm/madvise.c
index 8debb2d434aa..30c7a642e7fc 100644
--- a/mm/madvise.c
+++ b/mm/madvise.c
@@ -91,7 +91,7 @@ struct anon_vma_name *anon_vma_name_alloc(const char *name)
/* Add 1 for NUL terminator at the end of the anon_name->name */
count = strlen(name) + 1;
- anon_name = kmalloc(struct_size(anon_name, name, count), GFP_KERNEL);
+ anon_name = kmalloc_flex(*anon_name, name, count, GFP_KERNEL);
if (anon_name) {
kref_init(&anon_name->kref);
memcpy(anon_name->name, name, count);
diff --git a/mm/memcontrol-v1.c b/mm/memcontrol-v1.c
index c6078cd7f7e5..597af8a80163 100644
--- a/mm/memcontrol-v1.c
+++ b/mm/memcontrol-v1.c
@@ -783,7 +783,7 @@ static int __mem_cgroup_usage_register_event(struct mem_cgroup *memcg,
size = thresholds->primary ? thresholds->primary->size + 1 : 1;
/* Allocate memory for new array of thresholds */
- new = kmalloc(struct_size(new, entries, size), GFP_KERNEL_ACCOUNT);
+ new = kmalloc_flex(*new, entries, size, GFP_KERNEL_ACCOUNT);
if (!new) {
ret = -ENOMEM;
goto unlock;
@@ -946,7 +946,7 @@ static int mem_cgroup_oom_register_event(struct mem_cgroup *memcg,
{
struct mem_cgroup_eventfd_list *event;
- event = kmalloc(sizeof(*event), GFP_KERNEL_ACCOUNT);
+ event = kmalloc_obj(*event, GFP_KERNEL_ACCOUNT);
if (!event)
return -ENOMEM;
@@ -1109,7 +1109,7 @@ static ssize_t memcg_write_event_control(struct kernfs_open_file *of,
CLASS(fd, cfile)(cfd);
- event = kzalloc(sizeof(*event), GFP_KERNEL_ACCOUNT);
+ event = kzalloc_obj(*event, GFP_KERNEL_ACCOUNT);
if (!event)
return -ENOMEM;
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index f2b87e02574e..63773a0b91f7 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -192,7 +192,7 @@ static struct obj_cgroup *obj_cgroup_alloc(void)
struct obj_cgroup *objcg;
int ret;
- objcg = kzalloc(sizeof(struct obj_cgroup), GFP_KERNEL);
+ objcg = kzalloc_obj(struct obj_cgroup, GFP_KERNEL);
if (!objcg)
return NULL;
@@ -3761,8 +3761,7 @@ static struct mem_cgroup *mem_cgroup_alloc(struct mem_cgroup *parent)
goto fail;
error = -ENOMEM;
- memcg->vmstats = kzalloc(sizeof(struct memcg_vmstats),
- GFP_KERNEL_ACCOUNT);
+ memcg->vmstats = kzalloc_obj(struct memcg_vmstats, GFP_KERNEL_ACCOUNT);
if (!memcg->vmstats)
goto fail;
diff --git a/mm/memfd_luo.c b/mm/memfd_luo.c
index a34fccc23b6a..c69774c19c88 100644
--- a/mm/memfd_luo.c
+++ b/mm/memfd_luo.c
@@ -112,7 +112,7 @@ static int memfd_luo_preserve_folios(struct file *file,
* up being smaller if there are higher order folios.
*/
max_folios = PAGE_ALIGN(size) / PAGE_SIZE;
- folios = kvmalloc_array(max_folios, sizeof(*folios), GFP_KERNEL);
+ folios = kvmalloc_objs(*folios, max_folios, GFP_KERNEL);
if (!folios)
return -ENOMEM;
diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index ba4231858a36..ee42d4361309 100644
--- a/mm/memory-failure.c
+++ b/mm/memory-failure.c
@@ -387,7 +387,7 @@ static void __add_to_kill(struct task_struct *tsk, const struct page *p,
{
struct to_kill *tk;
- tk = kmalloc(sizeof(struct to_kill), GFP_ATOMIC);
+ tk = kmalloc_obj(struct to_kill, GFP_ATOMIC);
if (!tk) {
pr_err("Out of memory while machine check handling\n");
return;
@@ -1917,7 +1917,7 @@ static int hugetlb_update_hwpoison(struct folio *folio, struct page *page)
return MF_HUGETLB_PAGE_PRE_POISONED;
}
- raw_hwp = kmalloc(sizeof(struct raw_hwp_page), GFP_ATOMIC);
+ raw_hwp = kmalloc_obj(struct raw_hwp_page, GFP_ATOMIC);
if (raw_hwp) {
raw_hwp->page = page;
llist_add(&raw_hwp->node, head);
@@ -2214,7 +2214,7 @@ static void add_to_kill_pgoff(struct task_struct *tsk,
{
struct to_kill *tk;
- tk = kmalloc(sizeof(*tk), GFP_ATOMIC);
+ tk = kmalloc_obj(*tk, GFP_ATOMIC);
if (!tk) {
pr_info("Unable to kill proc %d\n", tsk->pid);
return;
diff --git a/mm/memory-tiers.c b/mm/memory-tiers.c
index 545e34626df7..b05c916fa5f4 100644
--- a/mm/memory-tiers.c
+++ b/mm/memory-tiers.c
@@ -227,7 +227,7 @@ static struct memory_tier *find_create_memory_tier(struct memory_dev_type *memty
}
}
- new_memtier = kzalloc(sizeof(struct memory_tier), GFP_KERNEL);
+ new_memtier = kzalloc_obj(struct memory_tier, GFP_KERNEL);
if (!new_memtier)
return ERR_PTR(-ENOMEM);
@@ -625,7 +625,7 @@ struct memory_dev_type *alloc_memory_type(int adistance)
{
struct memory_dev_type *memtype;
- memtype = kmalloc(sizeof(*memtype), GFP_KERNEL);
+ memtype = kmalloc_obj(*memtype, GFP_KERNEL);
if (!memtype)
return ERR_PTR(-ENOMEM);
@@ -912,8 +912,8 @@ static int __init memory_tier_init(void)
panic("%s() failed to register memory tier subsystem\n", __func__);
#ifdef CONFIG_MIGRATION
- node_demotion = kcalloc(nr_node_ids, sizeof(struct demotion_nodes),
- GFP_KERNEL);
+ node_demotion = kzalloc_objs(struct demotion_nodes, nr_node_ids,
+ GFP_KERNEL);
WARN_ON(!node_demotion);
#endif
diff --git a/mm/memory.c b/mm/memory.c
index 876bf73959c6..144e30d2825f 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -3035,7 +3035,7 @@ static inline struct pfnmap_track_ctx *pfnmap_track_ctx_alloc(unsigned long pfn,
if (pfnmap_track(pfn, size, prot))
return ERR_PTR(-EINVAL);
- ctx = kmalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kmalloc_obj(*ctx, GFP_KERNEL);
if (unlikely(!ctx)) {
pfnmap_untrack(pfn, size);
return ERR_PTR(-ENOMEM);
diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index dbd48502ac24..0835743f6575 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -229,8 +229,8 @@ int mempolicy_set_node_perf(unsigned int node, struct access_coordinate *coords)
if (!new_bw)
return -ENOMEM;
- new_wi_state = kmalloc(struct_size(new_wi_state, iw_table, nr_node_ids),
- GFP_KERNEL);
+ new_wi_state = kmalloc_flex(*new_wi_state, iw_table, nr_node_ids,
+ GFP_KERNEL);
if (!new_wi_state) {
kfree(new_bw);
return -ENOMEM;
@@ -3642,8 +3642,8 @@ static ssize_t node_store(struct kobject *kobj, struct kobj_attribute *attr,
kstrtou8(buf, 0, &weight) || weight == 0)
return -EINVAL;
- new_wi_state = kzalloc(struct_size(new_wi_state, iw_table, nr_node_ids),
- GFP_KERNEL);
+ new_wi_state = kzalloc_flex(*new_wi_state, iw_table, nr_node_ids,
+ GFP_KERNEL);
if (!new_wi_state)
return -ENOMEM;
@@ -3695,8 +3695,8 @@ static ssize_t weighted_interleave_auto_store(struct kobject *kobj,
if (kstrtobool(buf, &input))
return -EINVAL;
- new_wi_state = kzalloc(struct_size(new_wi_state, iw_table, nr_node_ids),
- GFP_KERNEL);
+ new_wi_state = kzalloc_flex(*new_wi_state, iw_table, nr_node_ids,
+ GFP_KERNEL);
if (!new_wi_state)
return -ENOMEM;
for (i = 0; i < nr_node_ids; i++)
@@ -3815,7 +3815,7 @@ static int sysfs_wi_node_add(int nid)
return -EINVAL;
}
- new_attr = kzalloc(sizeof(*new_attr), GFP_KERNEL);
+ new_attr = kzalloc_obj(*new_attr, GFP_KERNEL);
if (!new_attr)
return -ENOMEM;
@@ -3880,8 +3880,7 @@ static int __init add_weighted_interleave_group(struct kobject *mempolicy_kobj)
{
int nid, err;
- wi_group = kzalloc(struct_size(wi_group, nattrs, nr_node_ids),
- GFP_KERNEL);
+ wi_group = kzalloc_flex(*wi_group, nattrs, nr_node_ids, GFP_KERNEL);
if (!wi_group)
return -ENOMEM;
mutex_init(&wi_group->kobj_lock);
diff --git a/mm/mempool.c b/mm/mempool.c
index c290e5261b47..c22c63ccbbcd 100644
--- a/mm/mempool.c
+++ b/mm/mempool.c
@@ -371,8 +371,7 @@ int mempool_resize(struct mempool *pool, int new_min_nr)
spin_unlock_irqrestore(&pool->lock, flags);
/* Grow the pool */
- new_elements = kmalloc_array(new_min_nr, sizeof(*new_elements),
- GFP_KERNEL);
+ new_elements = kmalloc_objs(*new_elements, new_min_nr, GFP_KERNEL);
if (!new_elements)
return -ENOMEM;
diff --git a/mm/mmu_notifier.c b/mm/mmu_notifier.c
index 8e0125dc0522..1aa561a055eb 100644
--- a/mm/mmu_notifier.c
+++ b/mm/mmu_notifier.c
@@ -618,8 +618,8 @@ int __mmu_notifier_register(struct mmu_notifier *subscription,
* know that mm->notifier_subscriptions can't change while we
* hold the write side of the mmap_lock.
*/
- subscriptions = kzalloc(
- sizeof(struct mmu_notifier_subscriptions), GFP_KERNEL);
+ subscriptions = kzalloc_obj(struct mmu_notifier_subscriptions,
+ GFP_KERNEL);
if (!subscriptions)
return -ENOMEM;
diff --git a/mm/page_owner.c b/mm/page_owner.c
index b6a394a130ec..8178e0be557f 100644
--- a/mm/page_owner.c
+++ b/mm/page_owner.c
@@ -181,7 +181,7 @@ static void add_stack_record_to_list(struct stack_record *stack_record,
return;
set_current_in_page_owner();
- stack = kmalloc(sizeof(*stack), gfp_nested_mask(gfp_mask));
+ stack = kmalloc_obj(*stack, gfp_nested_mask(gfp_mask));
if (!stack) {
unset_current_in_page_owner();
return;
diff --git a/mm/page_reporting.c b/mm/page_reporting.c
index 8a03effda749..7323284d2f7d 100644
--- a/mm/page_reporting.c
+++ b/mm/page_reporting.c
@@ -322,7 +322,7 @@ static void page_reporting_process(struct work_struct *work)
atomic_set(&prdev->state, state);
/* allocate scatterlist to store pages being reported on */
- sgl = kmalloc_array(PAGE_REPORTING_CAPACITY, sizeof(*sgl), GFP_KERNEL);
+ sgl = kmalloc_objs(*sgl, PAGE_REPORTING_CAPACITY, GFP_KERNEL);
if (!sgl)
goto err_out;
diff --git a/mm/shmem.c b/mm/shmem.c
index d129f4eb5ca9..5f2e8e3d5b75 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -5328,7 +5328,7 @@ int shmem_init_fs_context(struct fs_context *fc)
{
struct shmem_options *ctx;
- ctx = kzalloc(sizeof(struct shmem_options), GFP_KERNEL);
+ ctx = kzalloc_obj(struct shmem_options, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/mm/shmem_quota.c b/mm/shmem_quota.c
index d1e32ac01407..d0b92d6da50f 100644
--- a/mm/shmem_quota.c
+++ b/mm/shmem_quota.c
@@ -67,7 +67,7 @@ static int shmem_read_file_info(struct super_block *sb, int type)
struct quota_info *dqopt = sb_dqopt(sb);
struct mem_dqinfo *info = &dqopt->info[type];
- info->dqi_priv = kzalloc(sizeof(struct rb_root), GFP_NOFS);
+ info->dqi_priv = kzalloc_obj(struct rb_root, GFP_NOFS);
if (!info->dqi_priv)
return -ENOMEM;
@@ -190,7 +190,7 @@ static int shmem_acquire_dquot(struct dquot *dquot)
}
/* We don't have entry for this id yet, create it */
- new_entry = kzalloc(sizeof(struct quota_id), GFP_NOFS);
+ new_entry = kzalloc_obj(struct quota_id, GFP_NOFS);
if (!new_entry) {
ret = -ENOMEM;
goto out_unlock;
diff --git a/mm/shrinker.c b/mm/shrinker.c
index 4a93fd433689..52e7bebe4579 100644
--- a/mm/shrinker.c
+++ b/mm/shrinker.c
@@ -682,7 +682,7 @@ struct shrinker *shrinker_alloc(unsigned int flags, const char *fmt, ...)
va_list ap;
int err;
- shrinker = kzalloc(sizeof(struct shrinker), GFP_KERNEL);
+ shrinker = kzalloc_obj(struct shrinker, GFP_KERNEL);
if (!shrinker)
return NULL;
diff --git a/mm/slub.c b/mm/slub.c
index 865bc050f654..b8e9c0b62435 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -2636,7 +2636,7 @@ bool slab_free_hook(struct kmem_cache *s, void *x, bool init,
if (still_accessible) {
struct rcu_delayed_free *delayed_free;
- delayed_free = kmalloc(sizeof(*delayed_free), GFP_NOWAIT);
+ delayed_free = kmalloc_obj(*delayed_free, GFP_NOWAIT);
if (delayed_free) {
/*
* Let KASAN track our call stack as a "related work
@@ -4928,7 +4928,7 @@ kmem_cache_prefill_sheaf(struct kmem_cache *s, gfp_t gfp, unsigned int size)
if (unlikely(size > s->sheaf_capacity)) {
- sheaf = kzalloc(struct_size(sheaf, objects, size), gfp);
+ sheaf = kzalloc_flex(*sheaf, objects, size, gfp);
if (!sheaf)
return NULL;
@@ -9139,7 +9139,7 @@ static int show_stat(struct kmem_cache *s, char *buf, enum stat_item si)
unsigned long sum = 0;
int cpu;
int len = 0;
- int *data = kmalloc_array(nr_cpu_ids, sizeof(int), GFP_KERNEL);
+ int *data = kmalloc_objs(int, nr_cpu_ids, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -9510,7 +9510,7 @@ int sysfs_slab_alias(struct kmem_cache *s, const char *name)
return sysfs_create_link(&slab_kset->kobj, &s->kobj, name);
}
- al = kmalloc(sizeof(struct saved_alias), GFP_KERNEL);
+ al = kmalloc_obj(struct saved_alias, GFP_KERNEL);
if (!al)
return -ENOMEM;
diff --git a/mm/swapfile.c b/mm/swapfile.c
index c2377c4b6bb9..8a1e2af356ba 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -2575,7 +2575,7 @@ add_swap_extent(struct swap_info_struct *sis, unsigned long start_page,
}
/* No merge, insert a new extent. */
- new_se = kmalloc(sizeof(*se), GFP_KERNEL);
+ new_se = kmalloc_obj(*se, GFP_KERNEL);
if (new_se == NULL)
return -ENOMEM;
new_se->start_page = start_page;
@@ -3048,7 +3048,7 @@ static struct swap_info_struct *alloc_swap_info(void)
struct swap_info_struct *defer = NULL;
unsigned int type;
- p = kvzalloc(sizeof(struct swap_info_struct), GFP_KERNEL);
+ p = kvzalloc_obj(struct swap_info_struct, GFP_KERNEL);
if (!p)
return ERR_PTR(-ENOMEM);
@@ -3257,7 +3257,7 @@ static struct swap_cluster_info *setup_clusters(struct swap_info_struct *si,
int err = -ENOMEM;
unsigned long i;
- cluster_info = kvcalloc(nr_clusters, sizeof(*cluster_info), GFP_KERNEL);
+ cluster_info = kvzalloc_objs(*cluster_info, nr_clusters, GFP_KERNEL);
if (!cluster_info)
goto err;
@@ -3265,8 +3265,8 @@ static struct swap_cluster_info *setup_clusters(struct swap_info_struct *si,
spin_lock_init(&cluster_info[i].lock);
if (!(si->flags & SWP_SOLIDSTATE)) {
- si->global_cluster = kmalloc(sizeof(*si->global_cluster),
- GFP_KERNEL);
+ si->global_cluster = kmalloc_obj(*si->global_cluster,
+ GFP_KERNEL);
if (!si->global_cluster)
goto err;
for (i = 0; i < SWAP_NR_ORDERS; i++)
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index 03e1117480d5..672c56d8bfe1 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -4920,14 +4920,14 @@ struct vm_struct **pcpu_get_vm_areas(const unsigned long *offsets,
return NULL;
}
- vms = kcalloc(nr_vms, sizeof(vms[0]), GFP_KERNEL);
- vas = kcalloc(nr_vms, sizeof(vas[0]), GFP_KERNEL);
+ vms = kzalloc_objs(vms[0], nr_vms, GFP_KERNEL);
+ vas = kzalloc_objs(vas[0], nr_vms, GFP_KERNEL);
if (!vas || !vms)
goto err_free2;
for (area = 0; area < nr_vms; area++) {
vas[area] = kmem_cache_zalloc(vmap_area_cachep, GFP_KERNEL);
- vms[area] = kzalloc(sizeof(struct vm_struct), GFP_KERNEL);
+ vms[area] = kzalloc_obj(struct vm_struct, GFP_KERNEL);
if (!vas[area] || !vms[area])
goto err_free;
}
@@ -5366,7 +5366,7 @@ static void vmap_init_nodes(void)
int n = clamp_t(unsigned int, num_possible_cpus(), 1, 128);
if (n > 1) {
- vn = kmalloc_array(n, sizeof(*vn), GFP_NOWAIT);
+ vn = kmalloc_objs(*vn, n, GFP_NOWAIT);
if (vn) {
/* Node partition is 16 pages. */
vmap_zone_size = (1 << 4) * PAGE_SIZE;
diff --git a/mm/vmpressure.c b/mm/vmpressure.c
index c197ed47bcc4..035e0384e39b 100644
--- a/mm/vmpressure.c
+++ b/mm/vmpressure.c
@@ -402,7 +402,7 @@ int vmpressure_register_event(struct mem_cgroup *memcg,
mode = ret;
}
- ev = kzalloc(sizeof(*ev), GFP_KERNEL);
+ ev = kzalloc_obj(*ev, GFP_KERNEL);
if (!ev) {
ret = -ENOMEM;
goto out;
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 44e4fcd6463c..0fc9373e8251 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -3821,7 +3821,8 @@ static struct lru_gen_mm_walk *set_mm_walk(struct pglist_data *pgdat, bool force
} else if (!walk && force_alloc) {
VM_WARN_ON_ONCE(current_is_kswapd());
- walk = kzalloc(sizeof(*walk), __GFP_HIGH | __GFP_NOMEMALLOC | __GFP_NOWARN);
+ walk = kzalloc_obj(*walk,
+ __GFP_HIGH | __GFP_NOMEMALLOC | __GFP_NOWARN);
}
current->reclaim_state->mm_walk = walk;
diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
index d5d1c27b3852..fa0b726dcec7 100644
--- a/mm/zsmalloc.c
+++ b/mm/zsmalloc.c
@@ -2062,7 +2062,7 @@ struct zs_pool *zs_create_pool(const char *name)
struct zs_pool *pool;
struct size_class *prev_class = NULL;
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return NULL;
@@ -2128,7 +2128,7 @@ struct zs_pool *zs_create_pool(const char *name)
}
}
- class = kzalloc(sizeof(struct size_class), GFP_KERNEL);
+ class = kzalloc_obj(struct size_class, GFP_KERNEL);
if (!class)
goto err;
diff --git a/mm/zswap.c b/mm/zswap.c
index af3f0fbb0558..bbfd8a51e4c8 100644
--- a/mm/zswap.c
+++ b/mm/zswap.c
@@ -251,7 +251,7 @@ static struct zswap_pool *zswap_pool_create(char *compressor)
if (!zswap_has_pool && !strcmp(compressor, ZSWAP_PARAM_UNSET))
return NULL;
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return NULL;
@@ -1665,7 +1665,7 @@ int zswap_swapon(int type, unsigned long nr_pages)
unsigned int nr, i;
nr = DIV_ROUND_UP(nr_pages, ZSWAP_ADDRESS_SPACE_PAGES);
- trees = kvcalloc(nr, sizeof(*tree), GFP_KERNEL);
+ trees = kvzalloc_objs(*tree, nr, GFP_KERNEL);
if (!trees) {
pr_err("alloc failed, zswap disabled for swap type %d\n", type);
return -ENOMEM;
diff --git a/net/802/garp.c b/net/802/garp.c
index 2d1ffc4d9462..ceeb5f5fac02 100644
--- a/net/802/garp.c
+++ b/net/802/garp.c
@@ -547,7 +547,7 @@ static int garp_init_port(struct net_device *dev)
{
struct garp_port *port;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return -ENOMEM;
rcu_assign_pointer(dev->garp_port, port);
@@ -581,7 +581,7 @@ int garp_init_applicant(struct net_device *dev, struct garp_application *appl)
}
err = -ENOMEM;
- app = kzalloc(sizeof(*app), GFP_KERNEL);
+ app = kzalloc_obj(*app, GFP_KERNEL);
if (!app)
goto err2;
diff --git a/net/802/mrp.c b/net/802/mrp.c
index 23a88305f900..f65c95d43a4e 100644
--- a/net/802/mrp.c
+++ b/net/802/mrp.c
@@ -832,7 +832,7 @@ static int mrp_init_port(struct net_device *dev)
{
struct mrp_port *port;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return -ENOMEM;
rcu_assign_pointer(dev->mrp_port, port);
@@ -866,7 +866,7 @@ int mrp_init_applicant(struct net_device *dev, struct mrp_application *appl)
}
err = -ENOMEM;
- app = kzalloc(sizeof(*app), GFP_KERNEL);
+ app = kzalloc_obj(*app, GFP_KERNEL);
if (!app)
goto err2;
diff --git a/net/802/psnap.c b/net/802/psnap.c
index 389df460c8c4..8ae835e1cbae 100644
--- a/net/802/psnap.c
+++ b/net/802/psnap.c
@@ -132,7 +132,7 @@ struct datalink_proto *register_snap_client(const unsigned char *desc,
if (find_snap_client(desc))
goto out;
- proto = kmalloc(sizeof(*proto), GFP_ATOMIC);
+ proto = kmalloc_obj(*proto, GFP_ATOMIC);
if (proto) {
memcpy(proto->type, desc, 5);
proto->rcvfunc = rcvfunc;
diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c
index 9404dd551dfd..d7849667ddf0 100644
--- a/net/8021q/vlan_core.c
+++ b/net/8021q/vlan_core.c
@@ -150,7 +150,7 @@ static struct vlan_info *vlan_info_alloc(struct net_device *dev)
{
struct vlan_info *vlan_info;
- vlan_info = kzalloc(sizeof(struct vlan_info), GFP_KERNEL);
+ vlan_info = kzalloc_obj(struct vlan_info, GFP_KERNEL);
if (!vlan_info)
return NULL;
@@ -193,7 +193,7 @@ static struct vlan_vid_info *vlan_vid_info_alloc(__be16 proto, u16 vid)
{
struct vlan_vid_info *vid_info;
- vid_info = kzalloc(sizeof(struct vlan_vid_info), GFP_KERNEL);
+ vid_info = kzalloc_obj(struct vlan_vid_info, GFP_KERNEL);
if (!vid_info)
return NULL;
vid_info->proto = proto;
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index fbf296137b09..176912c62915 100644
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
@@ -192,7 +192,7 @@ int vlan_dev_set_egress_priority(const struct net_device *dev,
/* Create a new mapping then. */
mp = vlan->egress_priority_map[skb_prio & 0xF];
- np = kmalloc(sizeof(struct vlan_priority_tci_mapping), GFP_KERNEL);
+ np = kmalloc_obj(struct vlan_priority_tci_mapping, GFP_KERNEL);
if (!np)
return -ENOBUFS;
@@ -708,7 +708,7 @@ static int vlan_dev_netpoll_setup(struct net_device *dev)
struct netpoll *netpoll;
int err = 0;
- netpoll = kzalloc(sizeof(*netpoll), GFP_KERNEL);
+ netpoll = kzalloc_obj(*netpoll, GFP_KERNEL);
err = -ENOMEM;
if (!netpoll)
goto out;
diff --git a/net/9p/client.c b/net/9p/client.c
index 1b475525ac5b..3e8de85c7f7f 100644
--- a/net/9p/client.c
+++ b/net/9p/client.c
@@ -730,7 +730,7 @@ static struct p9_fid *p9_fid_create(struct p9_client *clnt)
struct p9_fid *fid;
p9_debug(P9_DEBUG_FID, "clnt %p\n", clnt);
- fid = kzalloc(sizeof(*fid), GFP_KERNEL);
+ fid = kzalloc_obj(*fid, GFP_KERNEL);
if (!fid)
return NULL;
@@ -859,7 +859,7 @@ struct p9_client *p9_client_create(struct fs_context *fc)
char *client_id;
char *cache_name;
- clnt = kmalloc(sizeof(*clnt), GFP_KERNEL);
+ clnt = kmalloc_obj(*clnt, GFP_KERNEL);
if (!clnt)
return ERR_PTR(-ENOMEM);
@@ -1615,7 +1615,7 @@ struct p9_wstat *p9_client_stat(struct p9_fid *fid)
p9_debug(P9_DEBUG_9P, ">>> TSTAT fid %d\n", fid->fid);
- ret = kmalloc(sizeof(*ret), GFP_KERNEL);
+ ret = kmalloc_obj(*ret, GFP_KERNEL);
if (!ret)
return ERR_PTR(-ENOMEM);
@@ -1667,7 +1667,7 @@ struct p9_stat_dotl *p9_client_getattr_dotl(struct p9_fid *fid,
p9_debug(P9_DEBUG_9P, ">>> TGETATTR fid %d, request_mask %lld\n",
fid->fid, request_mask);
- ret = kmalloc(sizeof(*ret), GFP_KERNEL);
+ ret = kmalloc_obj(*ret, GFP_KERNEL);
if (!ret)
return ERR_PTR(-ENOMEM);
diff --git a/net/9p/protocol.c b/net/9p/protocol.c
index 0e6603b1ec90..67b0586d807f 100644
--- a/net/9p/protocol.c
+++ b/net/9p/protocol.c
@@ -451,9 +451,8 @@ p9pdu_vreadf(struct p9_fcall *pdu, int proto_version, const char *fmt,
p9pdu_readf(pdu, proto_version, "w", nwqid);
if (!errcode) {
*wqids =
- kmalloc_array(*nwqid,
- sizeof(struct p9_qid),
- GFP_NOFS);
+ kmalloc_objs(struct p9_qid, *nwqid,
+ GFP_NOFS);
if (*wqids == NULL)
errcode = -ENOMEM;
}
diff --git a/net/9p/trans_fd.c b/net/9p/trans_fd.c
index 0e331c1b2112..4e0f4a382ac4 100644
--- a/net/9p/trans_fd.c
+++ b/net/9p/trans_fd.c
@@ -719,8 +719,7 @@ static int p9_fd_show_options(struct seq_file *m, struct p9_client *clnt)
static int p9_fd_open(struct p9_client *client, int rfd, int wfd)
{
- struct p9_trans_fd *ts = kzalloc(sizeof(struct p9_trans_fd),
- GFP_KERNEL);
+ struct p9_trans_fd *ts = kzalloc_obj(struct p9_trans_fd, GFP_KERNEL);
if (!ts)
return -ENOMEM;
@@ -764,7 +763,7 @@ static int p9_socket_open(struct p9_client *client, struct socket *csocket)
struct p9_trans_fd *p;
struct file *file;
- p = kzalloc(sizeof(struct p9_trans_fd), GFP_KERNEL);
+ p = kzalloc_obj(struct p9_trans_fd, GFP_KERNEL);
if (!p) {
sock_release(csocket);
return -ENOMEM;
diff --git a/net/9p/trans_rdma.c b/net/9p/trans_rdma.c
index 4d406479f83b..c8e27c08a3a2 100644
--- a/net/9p/trans_rdma.c
+++ b/net/9p/trans_rdma.c
@@ -334,7 +334,7 @@ static int rdma_request(struct p9_client *client, struct p9_req_t *req)
}
/* Allocate an fcall for the reply */
- rpl_context = kmalloc(sizeof *rpl_context, GFP_NOFS);
+ rpl_context = kmalloc_obj(*rpl_context, GFP_NOFS);
if (!rpl_context) {
err = -ENOMEM;
goto recv_error;
@@ -363,7 +363,7 @@ static int rdma_request(struct p9_client *client, struct p9_req_t *req)
dont_need_post_recv:
/* Post the request */
- c = kmalloc(sizeof *c, GFP_NOFS);
+ c = kmalloc_obj(*c, GFP_NOFS);
if (!c) {
err = -ENOMEM;
goto send_error;
@@ -460,7 +460,7 @@ static struct p9_trans_rdma *alloc_rdma(struct p9_rdma_opts *opts)
{
struct p9_trans_rdma *rdma;
- rdma = kzalloc(sizeof(struct p9_trans_rdma), GFP_KERNEL);
+ rdma = kzalloc_obj(struct p9_trans_rdma, GFP_KERNEL);
if (!rdma)
return NULL;
diff --git a/net/9p/trans_usbg.c b/net/9p/trans_usbg.c
index 93547637deae..e167f9f23d65 100644
--- a/net/9p/trans_usbg.c
+++ b/net/9p/trans_usbg.c
@@ -757,7 +757,7 @@ static struct usb_function *usb9pfs_alloc(struct usb_function_instance *fi)
struct f_usb9pfs_opts *usb9pfs_opts;
struct f_usb9pfs *usb9pfs;
- usb9pfs = kzalloc(sizeof(*usb9pfs), GFP_KERNEL);
+ usb9pfs = kzalloc_obj(*usb9pfs, GFP_KERNEL);
if (!usb9pfs)
return ERR_PTR(-ENOMEM);
@@ -910,7 +910,7 @@ static struct usb_function_instance *usb9pfs_alloc_instance(void)
struct f_usb9pfs_opts *usb9pfs_opts;
struct f_usb9pfs_dev *dev;
- usb9pfs_opts = kzalloc(sizeof(*usb9pfs_opts), GFP_KERNEL);
+ usb9pfs_opts = kzalloc_obj(*usb9pfs_opts, GFP_KERNEL);
if (!usb9pfs_opts)
return ERR_PTR(-ENOMEM);
@@ -921,7 +921,7 @@ static struct usb_function_instance *usb9pfs_alloc_instance(void)
usb9pfs_opts->buflen = DEFAULT_BUFLEN;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
kfree(usb9pfs_opts);
return ERR_PTR(-ENOMEM);
diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c
index 370f4f37dcec..0577bdcb67bf 100644
--- a/net/9p/trans_virtio.c
+++ b/net/9p/trans_virtio.c
@@ -358,8 +358,7 @@ static int p9_get_mapped_pages(struct virtio_chan *chan,
nr_pages = DIV_ROUND_UP((unsigned long)p + len, PAGE_SIZE) -
(unsigned long)p / PAGE_SIZE;
- *pages = kmalloc_array(nr_pages, sizeof(struct page *),
- GFP_NOFS);
+ *pages = kmalloc_objs(struct page *, nr_pages, GFP_NOFS);
if (!*pages)
return -ENOMEM;
@@ -602,7 +601,7 @@ static int p9_virtio_probe(struct virtio_device *vdev)
return -EINVAL;
}
- chan = kmalloc(sizeof(struct virtio_chan), GFP_KERNEL);
+ chan = kmalloc_obj(struct virtio_chan, GFP_KERNEL);
if (!chan) {
pr_err("Failed to allocate virtio 9P channel\n");
err = -ENOMEM;
@@ -642,7 +641,7 @@ static int p9_virtio_probe(struct virtio_device *vdev)
if (err) {
goto out_free_tag;
}
- chan->vc_wq = kmalloc(sizeof(wait_queue_head_t), GFP_KERNEL);
+ chan->vc_wq = kmalloc_obj(wait_queue_head_t, GFP_KERNEL);
if (!chan->vc_wq) {
err = -ENOMEM;
goto out_remove_file;
diff --git a/net/9p/trans_xen.c b/net/9p/trans_xen.c
index dde9cbf1426c..fd6ac8658549 100644
--- a/net/9p/trans_xen.c
+++ b/net/9p/trans_xen.c
@@ -417,12 +417,11 @@ static int xen_9pfs_front_init(struct xenbus_device *dev)
if (p9_xen_trans.maxsize > XEN_FLEX_RING_SIZE(max_ring_order))
p9_xen_trans.maxsize = XEN_FLEX_RING_SIZE(max_ring_order) / 2;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
priv->dev = dev;
- priv->rings = kcalloc(XEN_9PFS_NUM_RINGS, sizeof(*priv->rings),
- GFP_KERNEL);
+ priv->rings = kzalloc_objs(*priv->rings, XEN_9PFS_NUM_RINGS, GFP_KERNEL);
if (!priv->rings) {
kfree(priv);
return -ENOMEM;
diff --git a/net/appletalk/aarp.c b/net/appletalk/aarp.c
index 4744e3fd4544..e7315c01a299 100644
--- a/net/appletalk/aarp.c
+++ b/net/appletalk/aarp.c
@@ -393,7 +393,7 @@ static void aarp_purge(void)
*/
static struct aarp_entry *aarp_alloc(void)
{
- struct aarp_entry *a = kmalloc(sizeof(*a), GFP_ATOMIC);
+ struct aarp_entry *a = kmalloc_obj(*a, GFP_ATOMIC);
if (!a)
return NULL;
diff --git a/net/appletalk/ddp.c b/net/appletalk/ddp.c
index 2a01fff46c9d..53c613e36245 100644
--- a/net/appletalk/ddp.c
+++ b/net/appletalk/ddp.c
@@ -233,7 +233,7 @@ static void atif_drop_device(struct net_device *dev)
static struct atalk_iface *atif_add_device(struct net_device *dev,
struct atalk_addr *sa)
{
- struct atalk_iface *iface = kzalloc(sizeof(*iface), GFP_KERNEL);
+ struct atalk_iface *iface = kzalloc_obj(*iface, GFP_KERNEL);
if (!iface)
goto out;
@@ -564,7 +564,7 @@ static int atrtr_create(struct rtentry *r, struct net_device *devhint)
}
if (!rt) {
- rt = kzalloc(sizeof(*rt), GFP_ATOMIC);
+ rt = kzalloc_obj(*rt, GFP_ATOMIC);
retval = -ENOBUFS;
if (!rt)
diff --git a/net/atm/addr.c b/net/atm/addr.c
index 0530b63f509a..938f360ae230 100644
--- a/net/atm/addr.c
+++ b/net/atm/addr.c
@@ -87,7 +87,7 @@ int atm_add_addr(struct atm_dev *dev, const struct sockaddr_atmsvc *addr,
return -EEXIST;
}
}
- this = kmalloc(sizeof(struct atm_dev_addr), GFP_ATOMIC);
+ this = kmalloc_obj(struct atm_dev_addr, GFP_ATOMIC);
if (!this) {
spin_unlock_irqrestore(&dev->lock, flags);
return -ENOMEM;
diff --git a/net/atm/br2684.c b/net/atm/br2684.c
index f666f2f98ba5..8fdc25271708 100644
--- a/net/atm/br2684.c
+++ b/net/atm/br2684.c
@@ -538,7 +538,7 @@ static int br2684_regvcc(struct atm_vcc *atmvcc, void __user * arg)
if (copy_from_user(&be, arg, sizeof be))
return -EFAULT;
- brvcc = kzalloc(sizeof(struct br2684_vcc), GFP_KERNEL);
+ brvcc = kzalloc_obj(struct br2684_vcc, GFP_KERNEL);
if (!brvcc)
return -ENOMEM;
/*
diff --git a/net/atm/clip.c b/net/atm/clip.c
index 8f152e5fa659..40553fcab389 100644
--- a/net/atm/clip.c
+++ b/net/atm/clip.c
@@ -431,7 +431,7 @@ static int clip_mkip(struct atm_vcc *vcc, int timeout)
return -EBADFD;
if (vcc->user_back)
return -EINVAL;
- clip_vcc = kmalloc(sizeof(struct clip_vcc), GFP_KERNEL);
+ clip_vcc = kmalloc_obj(struct clip_vcc, GFP_KERNEL);
if (!clip_vcc)
return -ENOMEM;
pr_debug("%p vcc %p\n", clip_vcc, vcc);
diff --git a/net/atm/lec.c b/net/atm/lec.c
index afb8d3eb2185..cba26158c4ad 100644
--- a/net/atm/lec.c
+++ b/net/atm/lec.c
@@ -696,7 +696,7 @@ static int lec_vcc_attach(struct atm_vcc *vcc, void __user *arg)
ioc_data.dev_num = array_index_nospec(ioc_data.dev_num, MAX_LEC_ITF);
if (!dev_lec[ioc_data.dev_num])
return -EINVAL;
- vpriv = kmalloc(sizeof(struct lec_vcc_priv), GFP_KERNEL);
+ vpriv = kmalloc_obj(struct lec_vcc_priv, GFP_KERNEL);
if (!vpriv)
return -ENOMEM;
vpriv->xoff = 0;
@@ -1541,7 +1541,7 @@ static struct lec_arp_table *make_entry(struct lec_priv *priv,
{
struct lec_arp_table *to_return;
- to_return = kzalloc(sizeof(struct lec_arp_table), GFP_ATOMIC);
+ to_return = kzalloc_obj(struct lec_arp_table, GFP_ATOMIC);
if (!to_return)
return NULL;
ether_addr_copy(to_return->mac_addr, mac_addr);
@@ -2125,7 +2125,7 @@ static int lec_mcast_make(struct lec_priv *priv, struct atm_vcc *vcc)
struct lec_vcc_priv *vpriv;
int err = 0;
- vpriv = kmalloc(sizeof(struct lec_vcc_priv), GFP_KERNEL);
+ vpriv = kmalloc_obj(struct lec_vcc_priv, GFP_KERNEL);
if (!vpriv)
return -ENOMEM;
vpriv->xoff = 0;
diff --git a/net/atm/mpc.c b/net/atm/mpc.c
index f6b447bba329..3e2b13734fc4 100644
--- a/net/atm/mpc.c
+++ b/net/atm/mpc.c
@@ -184,7 +184,7 @@ struct atm_mpoa_qos *atm_mpoa_add_qos(__be32 dst_ip, struct atm_qos *qos)
return entry;
}
- entry = kmalloc(sizeof(struct atm_mpoa_qos), GFP_KERNEL);
+ entry = kmalloc_obj(struct atm_mpoa_qos, GFP_KERNEL);
if (entry == NULL) {
pr_info("mpoa: out of memory\n");
return entry;
@@ -282,7 +282,7 @@ static struct mpoa_client *alloc_mpc(void)
{
struct mpoa_client *mpc;
- mpc = kzalloc(sizeof(struct mpoa_client), GFP_KERNEL);
+ mpc = kzalloc_obj(struct mpoa_client, GFP_KERNEL);
if (mpc == NULL)
return NULL;
rwlock_init(&mpc->ingress_lock);
diff --git a/net/atm/mpoa_caches.c b/net/atm/mpoa_caches.c
index f7a2f0e41105..b584ab72ed2f 100644
--- a/net/atm/mpoa_caches.c
+++ b/net/atm/mpoa_caches.c
@@ -97,7 +97,7 @@ static in_cache_entry *in_cache_get_by_vcc(struct atm_vcc *vcc,
static in_cache_entry *in_cache_add_entry(__be32 dst_ip,
struct mpoa_client *client)
{
- in_cache_entry *entry = kzalloc(sizeof(in_cache_entry), GFP_KERNEL);
+ in_cache_entry *entry = kzalloc_obj(in_cache_entry, GFP_KERNEL);
if (entry == NULL) {
pr_info("mpoa: mpoa_caches.c: new_in_cache_entry: out of memory\n");
@@ -456,7 +456,7 @@ static void eg_cache_remove_entry(eg_cache_entry *entry,
static eg_cache_entry *eg_cache_add_entry(struct k_message *msg,
struct mpoa_client *client)
{
- eg_cache_entry *entry = kzalloc(sizeof(eg_cache_entry), GFP_KERNEL);
+ eg_cache_entry *entry = kzalloc_obj(eg_cache_entry, GFP_KERNEL);
if (entry == NULL) {
pr_info("out of memory\n");
diff --git a/net/atm/pppoatm.c b/net/atm/pppoatm.c
index 3e4f17d335fe..133b0cda7063 100644
--- a/net/atm/pppoatm.c
+++ b/net/atm/pppoatm.c
@@ -397,7 +397,7 @@ static int pppoatm_assign_vcc(struct atm_vcc *atmvcc, void __user *arg)
if (be.encaps != PPPOATM_ENCAPS_AUTODETECT &&
be.encaps != PPPOATM_ENCAPS_VC && be.encaps != PPPOATM_ENCAPS_LLC)
return -EINVAL;
- pvcc = kzalloc(sizeof(*pvcc), GFP_KERNEL);
+ pvcc = kzalloc_obj(*pvcc, GFP_KERNEL);
if (pvcc == NULL)
return -ENOMEM;
pvcc->atmvcc = atmvcc;
diff --git a/net/atm/resources.c b/net/atm/resources.c
index 7c6fdedbcf4e..9849521feaf3 100644
--- a/net/atm/resources.c
+++ b/net/atm/resources.c
@@ -36,7 +36,7 @@ static struct atm_dev *__alloc_atm_dev(const char *type)
{
struct atm_dev *dev;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return NULL;
dev->type = type;
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
index 7ebbff2f0020..855ae9df824d 100644
--- a/net/ax25/af_ax25.c
+++ b/net/ax25/af_ax25.c
@@ -528,7 +528,7 @@ ax25_cb *ax25_create_cb(void)
{
ax25_cb *ax25;
- if ((ax25 = kzalloc(sizeof(*ax25), GFP_ATOMIC)) == NULL)
+ if ((ax25 = kzalloc_obj(*ax25, GFP_ATOMIC)) == NULL)
return NULL;
refcount_set(&ax25->refcount, 1);
@@ -1249,7 +1249,7 @@ static int __must_check ax25_connect(struct socket *sock,
goto out_release;
}
- if ((digi = kmalloc(sizeof(ax25_digi), GFP_KERNEL)) == NULL) {
+ if ((digi = kmalloc_obj(ax25_digi, GFP_KERNEL)) == NULL) {
err = -ENOBUFS;
goto out_release;
}
diff --git a/net/ax25/ax25_dev.c b/net/ax25/ax25_dev.c
index c504ed9c3a88..56f605ddd88d 100644
--- a/net/ax25/ax25_dev.c
+++ b/net/ax25/ax25_dev.c
@@ -54,7 +54,7 @@ void ax25_dev_device_up(struct net_device *dev)
{
ax25_dev *ax25_dev;
- ax25_dev = kzalloc(sizeof(*ax25_dev), GFP_KERNEL);
+ ax25_dev = kzalloc_obj(*ax25_dev, GFP_KERNEL);
if (!ax25_dev) {
printk(KERN_ERR "AX.25: ax25_dev_device_up - out of memory\n");
return;
diff --git a/net/ax25/ax25_iface.c b/net/ax25/ax25_iface.c
index 979bc4b828a0..3ad454416a5c 100644
--- a/net/ax25/ax25_iface.c
+++ b/net/ax25/ax25_iface.c
@@ -105,7 +105,7 @@ int ax25_listen_register(const ax25_address *callsign, struct net_device *dev)
if (ax25_listen_mine(callsign, dev))
return 0;
- if ((listen = kmalloc(sizeof(*listen), GFP_ATOMIC)) == NULL)
+ if ((listen = kmalloc_obj(*listen, GFP_ATOMIC)) == NULL)
return -ENOMEM;
listen->callsign = *callsign;
diff --git a/net/ax25/ax25_in.c b/net/ax25/ax25_in.c
index f2d66af86359..d75b3e9ed93d 100644
--- a/net/ax25/ax25_in.c
+++ b/net/ax25/ax25_in.c
@@ -377,7 +377,7 @@ static int ax25_rcv(struct sk_buff *skb, struct net_device *dev,
* Sort out any digipeated paths.
*/
if (dp.ndigi && !ax25->digipeat &&
- (ax25->digipeat = kmalloc(sizeof(ax25_digi), GFP_ATOMIC)) == NULL) {
+ (ax25->digipeat = kmalloc_obj(ax25_digi, GFP_ATOMIC)) == NULL) {
kfree_skb(skb);
ax25_destroy_socket(ax25);
if (sk)
diff --git a/net/ax25/ax25_route.c b/net/ax25/ax25_route.c
index 10577434f40b..1d5c59ccf142 100644
--- a/net/ax25/ax25_route.c
+++ b/net/ax25/ax25_route.c
@@ -91,7 +91,7 @@ static int __must_check ax25_rt_add(struct ax25_routes_struct *route)
kfree(ax25_rt->digipeat);
ax25_rt->digipeat = NULL;
if (route->digi_count != 0) {
- if ((ax25_rt->digipeat = kmalloc(sizeof(ax25_digi), GFP_ATOMIC)) == NULL) {
+ if ((ax25_rt->digipeat = kmalloc_obj(ax25_digi, GFP_ATOMIC)) == NULL) {
write_unlock_bh(&ax25_route_lock);
ax25_dev_put(ax25_dev);
return -ENOMEM;
@@ -110,7 +110,7 @@ static int __must_check ax25_rt_add(struct ax25_routes_struct *route)
ax25_rt = ax25_rt->next;
}
- if ((ax25_rt = kmalloc(sizeof(ax25_route), GFP_ATOMIC)) == NULL) {
+ if ((ax25_rt = kmalloc_obj(ax25_route, GFP_ATOMIC)) == NULL) {
write_unlock_bh(&ax25_route_lock);
ax25_dev_put(ax25_dev);
return -ENOMEM;
@@ -121,7 +121,7 @@ static int __must_check ax25_rt_add(struct ax25_routes_struct *route)
ax25_rt->digipeat = NULL;
ax25_rt->ip_mode = ' ';
if (route->digi_count != 0) {
- if ((ax25_rt->digipeat = kmalloc(sizeof(ax25_digi), GFP_ATOMIC)) == NULL) {
+ if ((ax25_rt->digipeat = kmalloc_obj(ax25_digi, GFP_ATOMIC)) == NULL) {
write_unlock_bh(&ax25_route_lock);
kfree(ax25_rt);
ax25_dev_put(ax25_dev);
diff --git a/net/ax25/ax25_uid.c b/net/ax25/ax25_uid.c
index 241e4680ecb1..95c5915f1ab9 100644
--- a/net/ax25/ax25_uid.c
+++ b/net/ax25/ax25_uid.c
@@ -101,7 +101,7 @@ int ax25_uid_ioctl(int cmd, struct sockaddr_ax25 *sax)
}
if (sax->sax25_uid == 0)
return -EINVAL;
- if ((ax25_uid = kmalloc(sizeof(*ax25_uid), GFP_KERNEL)) == NULL)
+ if ((ax25_uid = kmalloc_obj(*ax25_uid, GFP_KERNEL)) == NULL)
return -ENOMEM;
refcount_set(&ax25_uid->refcount, 1);
diff --git a/net/batman-adv/bat_v_elp.c b/net/batman-adv/bat_v_elp.c
index cb16c1ed2a58..2ce4e5bf9292 100644
--- a/net/batman-adv/bat_v_elp.c
+++ b/net/batman-adv/bat_v_elp.c
@@ -355,7 +355,7 @@ static void batadv_v_elp_periodic_work(struct work_struct *work)
* context. Therefore add it to metric_queue and process it
* outside rcu protected context.
*/
- metric_entry = kzalloc(sizeof(*metric_entry), GFP_ATOMIC);
+ metric_entry = kzalloc_obj(*metric_entry, GFP_ATOMIC);
if (!metric_entry) {
batadv_hardif_neigh_put(hardif_neigh);
continue;
diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c
index 3dc791c15bf7..49ae92b9a152 100644
--- a/net/batman-adv/bridge_loop_avoidance.c
+++ b/net/batman-adv/bridge_loop_avoidance.c
@@ -505,7 +505,7 @@ batadv_bla_get_backbone_gw(struct batadv_priv *bat_priv, const u8 *orig,
"%s(): not found (%pM, %d), creating new entry\n", __func__,
orig, batadv_print_vid(vid));
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (!entry)
return NULL;
@@ -699,7 +699,7 @@ static void batadv_bla_add_claim(struct batadv_priv *bat_priv,
/* create a new claim entry if it does not exist yet. */
if (!claim) {
- claim = kzalloc(sizeof(*claim), GFP_ATOMIC);
+ claim = kzalloc_obj(*claim, GFP_ATOMIC);
if (!claim)
return;
diff --git a/net/batman-adv/distributed-arp-table.c b/net/batman-adv/distributed-arp-table.c
index 8b8132eb0a79..3efc4cf50b46 100644
--- a/net/batman-adv/distributed-arp-table.c
+++ b/net/batman-adv/distributed-arp-table.c
@@ -381,7 +381,7 @@ static void batadv_dat_entry_add(struct batadv_priv *bat_priv, __be32 ip,
goto out;
}
- dat_entry = kmalloc(sizeof(*dat_entry), GFP_ATOMIC);
+ dat_entry = kmalloc_obj(*dat_entry, GFP_ATOMIC);
if (!dat_entry)
goto out;
@@ -635,8 +635,7 @@ batadv_dat_select_candidates(struct batadv_priv *bat_priv, __be32 ip_dst,
if (!bat_priv->orig_hash)
return NULL;
- res = kmalloc_array(BATADV_DAT_CANDIDATES_NUM, sizeof(*res),
- GFP_ATOMIC);
+ res = kmalloc_objs(*res, BATADV_DAT_CANDIDATES_NUM, GFP_ATOMIC);
if (!res)
return NULL;
diff --git a/net/batman-adv/fragmentation.c b/net/batman-adv/fragmentation.c
index cc14bc41381e..f4e45cc25816 100644
--- a/net/batman-adv/fragmentation.c
+++ b/net/batman-adv/fragmentation.c
@@ -156,7 +156,7 @@ static bool batadv_frag_insert_packet(struct batadv_orig_node *orig_node,
seqno = ntohs(frag_packet->seqno);
bucket = seqno % BATADV_FRAG_BUFFER_COUNT;
- frag_entry_new = kmalloc(sizeof(*frag_entry_new), GFP_ATOMIC);
+ frag_entry_new = kmalloc_obj(*frag_entry_new, GFP_ATOMIC);
if (!frag_entry_new)
goto err;
diff --git a/net/batman-adv/gateway_client.c b/net/batman-adv/gateway_client.c
index 7a11b245e9f4..51e9c081a2a4 100644
--- a/net/batman-adv/gateway_client.c
+++ b/net/batman-adv/gateway_client.c
@@ -332,7 +332,7 @@ static void batadv_gw_node_add(struct batadv_priv *bat_priv,
if (gateway->bandwidth_down == 0)
return;
- gw_node = kzalloc(sizeof(*gw_node), GFP_ATOMIC);
+ gw_node = kzalloc_obj(*gw_node, GFP_ATOMIC);
if (!gw_node)
return;
diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
index 5113f879736b..7b7640f3ffe2 100644
--- a/net/batman-adv/hard-interface.c
+++ b/net/batman-adv/hard-interface.c
@@ -871,7 +871,7 @@ batadv_hardif_add_interface(struct net_device *net_dev)
if (!batadv_is_valid_iface(net_dev))
return NULL;
- hard_iface = kzalloc(sizeof(*hard_iface), GFP_ATOMIC);
+ hard_iface = kzalloc_obj(*hard_iface, GFP_ATOMIC);
if (!hard_iface)
return NULL;
diff --git a/net/batman-adv/hash.c b/net/batman-adv/hash.c
index 8016e619787f..759fa29176db 100644
--- a/net/batman-adv/hash.c
+++ b/net/batman-adv/hash.c
@@ -45,16 +45,15 @@ struct batadv_hashtable *batadv_hash_new(u32 size)
{
struct batadv_hashtable *hash;
- hash = kmalloc(sizeof(*hash), GFP_ATOMIC);
+ hash = kmalloc_obj(*hash, GFP_ATOMIC);
if (!hash)
return NULL;
- hash->table = kmalloc_array(size, sizeof(*hash->table), GFP_ATOMIC);
+ hash->table = kmalloc_objs(*hash->table, size, GFP_ATOMIC);
if (!hash->table)
goto free_hash;
- hash->list_locks = kmalloc_array(size, sizeof(*hash->list_locks),
- GFP_ATOMIC);
+ hash->list_locks = kmalloc_objs(*hash->list_locks, size, GFP_ATOMIC);
if (!hash->list_locks)
goto free_table;
diff --git a/net/batman-adv/mesh-interface.c b/net/batman-adv/mesh-interface.c
index df7e95811ef5..56ca1c1b83f2 100644
--- a/net/batman-adv/mesh-interface.c
+++ b/net/batman-adv/mesh-interface.c
@@ -555,7 +555,7 @@ int batadv_meshif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid)
return -EEXIST;
}
- vlan = kzalloc(sizeof(*vlan), GFP_ATOMIC);
+ vlan = kzalloc_obj(*vlan, GFP_ATOMIC);
if (!vlan) {
spin_unlock_bh(&bat_priv->meshif_vlan_list_lock);
return -ENOMEM;
diff --git a/net/batman-adv/multicast.c b/net/batman-adv/multicast.c
index e8c6b0bf670f..a3d3efe22d30 100644
--- a/net/batman-adv/multicast.c
+++ b/net/batman-adv/multicast.c
@@ -399,7 +399,7 @@ batadv_mcast_mla_meshif_get_ipv4(struct net_device *dev,
if (batadv_mcast_mla_is_duplicate(mcast_addr, mcast_list))
continue;
- new = kmalloc(sizeof(*new), GFP_ATOMIC);
+ new = kmalloc_obj(*new, GFP_ATOMIC);
if (!new) {
ret = -ENOMEM;
break;
@@ -472,7 +472,7 @@ batadv_mcast_mla_meshif_get_ipv6(struct net_device *dev,
if (batadv_mcast_mla_is_duplicate(mcast_addr, mcast_list))
continue;
- new = kmalloc(sizeof(*new), GFP_ATOMIC);
+ new = kmalloc_obj(*new, GFP_ATOMIC);
if (!new) {
ret = -ENOMEM;
break;
@@ -632,7 +632,7 @@ static int batadv_mcast_mla_bridge_get(struct net_device *dev,
if (batadv_mcast_mla_is_duplicate(mcast_addr, mcast_list))
continue;
- new = kmalloc(sizeof(*new), GFP_ATOMIC);
+ new = kmalloc_obj(*new, GFP_ATOMIC);
if (!new) {
ret = -ENOMEM;
break;
diff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c
index a662408ad867..b3468ccab535 100644
--- a/net/batman-adv/originator.c
+++ b/net/batman-adv/originator.c
@@ -179,7 +179,7 @@ batadv_orig_node_vlan_new(struct batadv_orig_node *orig_node,
if (vlan)
goto out;
- vlan = kzalloc(sizeof(*vlan), GFP_ATOMIC);
+ vlan = kzalloc_obj(*vlan, GFP_ATOMIC);
if (!vlan)
goto out;
@@ -417,7 +417,7 @@ batadv_orig_ifinfo_new(struct batadv_orig_node *orig_node,
if (orig_ifinfo)
goto out;
- orig_ifinfo = kzalloc(sizeof(*orig_ifinfo), GFP_ATOMIC);
+ orig_ifinfo = kzalloc_obj(*orig_ifinfo, GFP_ATOMIC);
if (!orig_ifinfo)
goto out;
@@ -495,7 +495,7 @@ batadv_neigh_ifinfo_new(struct batadv_neigh_node *neigh,
if (neigh_ifinfo)
goto out;
- neigh_ifinfo = kzalloc(sizeof(*neigh_ifinfo), GFP_ATOMIC);
+ neigh_ifinfo = kzalloc_obj(*neigh_ifinfo, GFP_ATOMIC);
if (!neigh_ifinfo)
goto out;
@@ -575,7 +575,7 @@ batadv_hardif_neigh_create(struct batadv_hard_iface *hard_iface,
if (hardif_neigh)
goto out;
- hardif_neigh = kzalloc(sizeof(*hardif_neigh), GFP_ATOMIC);
+ hardif_neigh = kzalloc_obj(*hardif_neigh, GFP_ATOMIC);
if (!hardif_neigh)
goto out;
@@ -683,7 +683,7 @@ batadv_neigh_node_create(struct batadv_orig_node *orig_node,
if (!hardif_neigh)
goto out;
- neigh_node = kzalloc(sizeof(*neigh_node), GFP_ATOMIC);
+ neigh_node = kzalloc_obj(*neigh_node, GFP_ATOMIC);
if (!neigh_node)
goto out;
@@ -947,7 +947,7 @@ struct batadv_orig_node *batadv_orig_node_new(struct batadv_priv *bat_priv,
batadv_dbg(BATADV_DBG_BATMAN, bat_priv,
"Creating new originator: %pM\n", addr);
- orig_node = kzalloc(sizeof(*orig_node), GFP_ATOMIC);
+ orig_node = kzalloc_obj(*orig_node, GFP_ATOMIC);
if (!orig_node)
return NULL;
diff --git a/net/batman-adv/send.c b/net/batman-adv/send.c
index 20d85c681064..60cd67ec9cea 100644
--- a/net/batman-adv/send.c
+++ b/net/batman-adv/send.c
@@ -503,7 +503,7 @@ batadv_forw_packet_alloc(struct batadv_hard_iface *if_incoming,
return NULL;
}
- forw_packet = kmalloc(sizeof(*forw_packet), GFP_ATOMIC);
+ forw_packet = kmalloc_obj(*forw_packet, GFP_ATOMIC);
if (!forw_packet)
goto err;
diff --git a/net/batman-adv/tp_meter.c b/net/batman-adv/tp_meter.c
index 350b149e48be..2e42f6b348c8 100644
--- a/net/batman-adv/tp_meter.c
+++ b/net/batman-adv/tp_meter.c
@@ -967,7 +967,7 @@ void batadv_tp_start(struct batadv_priv *bat_priv, const u8 *dst,
return;
}
- tp_vars = kmalloc(sizeof(*tp_vars), GFP_ATOMIC);
+ tp_vars = kmalloc_obj(*tp_vars, GFP_ATOMIC);
if (!tp_vars) {
spin_unlock_bh(&bat_priv->tp_list_lock);
batadv_dbg(BATADV_DBG_TP_METER, bat_priv,
@@ -1228,7 +1228,7 @@ static bool batadv_tp_handle_out_of_order(struct batadv_tp_vars *tp_vars,
u32 payload_len;
bool added = false;
- new = kmalloc(sizeof(*new), GFP_ATOMIC);
+ new = kmalloc_obj(*new, GFP_ATOMIC);
if (unlikely(!new))
return false;
@@ -1343,7 +1343,7 @@ batadv_tp_init_recv(struct batadv_priv *bat_priv,
goto out_unlock;
}
- tp_vars = kmalloc(sizeof(*tp_vars), GFP_ATOMIC);
+ tp_vars = kmalloc_obj(*tp_vars, GFP_ATOMIC);
if (!tp_vars)
goto out_unlock;
diff --git a/net/batman-adv/tvlv.c b/net/batman-adv/tvlv.c
index 76dff1f9c559..8129a3f9c44d 100644
--- a/net/batman-adv/tvlv.c
+++ b/net/batman-adv/tvlv.c
@@ -557,7 +557,7 @@ void batadv_tvlv_handler_register(struct batadv_priv *bat_priv,
return;
}
- tvlv_handler = kzalloc(sizeof(*tvlv_handler), GFP_ATOMIC);
+ tvlv_handler = kzalloc_obj(*tvlv_handler, GFP_ATOMIC);
if (!tvlv_handler) {
spin_unlock_bh(&bat_priv->tvlv.handler_list_lock);
return;
diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
index 2c21ae8abadc..acaf7c9e4a69 100644
--- a/net/bluetooth/6lowpan.c
+++ b/net/bluetooth/6lowpan.c
@@ -645,7 +645,7 @@ static struct l2cap_chan *add_peer_chan(struct l2cap_chan *chan,
{
struct lowpan_peer *peer;
- peer = kzalloc(sizeof(*peer), GFP_ATOMIC);
+ peer = kzalloc_obj(*peer, GFP_ATOMIC);
if (!peer)
return NULL;
@@ -1107,7 +1107,7 @@ static int lowpan_enable_set(void *data, u64 val)
{
struct set_enable *set_enable;
- set_enable = kzalloc(sizeof(*set_enable), GFP_KERNEL);
+ set_enable = kzalloc_obj(*set_enable, GFP_KERNEL);
if (!set_enable)
return -ENOMEM;
@@ -1245,7 +1245,7 @@ static void disconnect_devices(void)
rcu_read_lock();
list_for_each_entry_rcu(entry, &bt_6lowpan_devices, list) {
- new_dev = kmalloc(sizeof(*new_dev), GFP_ATOMIC);
+ new_dev = kmalloc_obj(*new_dev, GFP_ATOMIC);
if (!new_dev)
break;
diff --git a/net/bluetooth/cmtp/capi.c b/net/bluetooth/cmtp/capi.c
index 884703fda979..df4edd43176e 100644
--- a/net/bluetooth/cmtp/capi.c
+++ b/net/bluetooth/cmtp/capi.c
@@ -72,7 +72,7 @@
static struct cmtp_application *cmtp_application_add(struct cmtp_session *session, __u16 appl)
{
- struct cmtp_application *app = kzalloc(sizeof(*app), GFP_KERNEL);
+ struct cmtp_application *app = kzalloc_obj(*app, GFP_KERNEL);
BT_DBG("session %p application %p appl %u", session, app, appl);
diff --git a/net/bluetooth/cmtp/core.c b/net/bluetooth/cmtp/core.c
index 90d130588a3e..ebfa049598dc 100644
--- a/net/bluetooth/cmtp/core.c
+++ b/net/bluetooth/cmtp/core.c
@@ -341,7 +341,7 @@ int cmtp_add_connection(struct cmtp_connadd_req *req, struct socket *sock)
if (req->flags & ~valid_flags)
return -EINVAL;
- session = kzalloc(sizeof(struct cmtp_session), GFP_KERNEL);
+ session = kzalloc_obj(struct cmtp_session, GFP_KERNEL);
if (!session)
return -ENOMEM;
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index 0795818963a5..02d33fe11042 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -462,7 +462,7 @@ bool hci_setup_sync(struct hci_conn *conn, __u16 handle)
struct conn_handle_t *conn_handle;
if (enhanced_sync_conn_capable(conn->hdev)) {
- conn_handle = kzalloc(sizeof(*conn_handle), GFP_KERNEL);
+ conn_handle = kzalloc_obj(*conn_handle, GFP_KERNEL);
if (!conn_handle)
return false;
@@ -726,7 +726,7 @@ static int hci_le_terminate_big(struct hci_dev *hdev, struct hci_conn *conn)
bt_dev_dbg(hdev, "big 0x%2.2x bis 0x%2.2x", conn->iso_qos.bcast.big,
conn->iso_qos.bcast.bis);
- d = kzalloc(sizeof(*d), GFP_KERNEL);
+ d = kzalloc_obj(*d, GFP_KERNEL);
if (!d)
return -ENOMEM;
@@ -777,7 +777,7 @@ static int hci_le_big_terminate(struct hci_dev *hdev, struct hci_conn *conn)
bt_dev_dbg(hdev, "hcon %p big 0x%2.2x sync_handle 0x%4.4x", conn,
conn->iso_qos.bcast.big, conn->sync_handle);
- d = kzalloc(sizeof(*d), GFP_KERNEL);
+ d = kzalloc_obj(*d, GFP_KERNEL);
if (!d)
return -ENOMEM;
@@ -960,7 +960,7 @@ static struct hci_conn *__hci_conn_add(struct hci_dev *hdev, int type,
bt_dev_dbg(hdev, "dst %pMR handle 0x%4.4x", dst, handle);
- conn = kzalloc(sizeof(*conn), GFP_KERNEL);
+ conn = kzalloc_obj(*conn, GFP_KERNEL);
if (!conn)
return ERR_PTR(-ENOMEM);
@@ -1739,7 +1739,7 @@ static struct hci_link *hci_conn_link(struct hci_conn *parent,
if (conn->parent)
return NULL;
- link = kzalloc(sizeof(*link), GFP_KERNEL);
+ link = kzalloc_obj(*link, GFP_KERNEL);
if (!link)
return NULL;
@@ -2781,7 +2781,7 @@ struct hci_chan *hci_chan_create(struct hci_conn *conn)
return NULL;
}
- chan = kzalloc(sizeof(*chan), GFP_KERNEL);
+ chan = kzalloc_obj(*chan, GFP_KERNEL);
if (!chan)
return NULL;
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index b069607b145b..a0cad792be0b 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -262,7 +262,7 @@ u32 hci_inquiry_cache_update(struct hci_dev *hdev, struct inquiry_data *data,
}
/* Entry not in the cache. Add new one. */
- ie = kzalloc(sizeof(*ie), GFP_KERNEL);
+ ie = kzalloc_obj(*ie, GFP_KERNEL);
if (!ie) {
flags |= MGMT_DEV_FOUND_CONFIRM_NAME;
goto done;
@@ -797,7 +797,7 @@ int hci_get_dev_list(void __user *arg)
if (!dev_num || dev_num > (PAGE_SIZE * 2) / sizeof(*dr))
return -EINVAL;
- dl = kzalloc(struct_size(dl, dev_req, dev_num), GFP_KERNEL);
+ dl = kzalloc_flex(*dl, dev_req, dev_num, GFP_KERNEL);
if (!dl)
return -ENOMEM;
@@ -1286,7 +1286,7 @@ struct link_key *hci_add_link_key(struct hci_dev *hdev, struct hci_conn *conn,
key = old_key;
} else {
old_key_type = conn ? conn->key_type : 0xff;
- key = kzalloc(sizeof(*key), GFP_KERNEL);
+ key = kzalloc_obj(*key, GFP_KERNEL);
if (!key)
return NULL;
list_add_rcu(&key->list, &hdev->link_keys);
@@ -1331,7 +1331,7 @@ struct smp_ltk *hci_add_ltk(struct hci_dev *hdev, bdaddr_t *bdaddr,
if (old_key)
key = old_key;
else {
- key = kzalloc(sizeof(*key), GFP_KERNEL);
+ key = kzalloc_obj(*key, GFP_KERNEL);
if (!key)
return NULL;
list_add_rcu(&key->list, &hdev->long_term_keys);
@@ -1356,7 +1356,7 @@ struct smp_irk *hci_add_irk(struct hci_dev *hdev, bdaddr_t *bdaddr,
irk = hci_find_irk_by_addr(hdev, bdaddr, addr_type);
if (!irk) {
- irk = kzalloc(sizeof(*irk), GFP_KERNEL);
+ irk = kzalloc_obj(*irk, GFP_KERNEL);
if (!irk)
return NULL;
@@ -1550,7 +1550,7 @@ int hci_add_remote_oob_data(struct hci_dev *hdev, bdaddr_t *bdaddr,
data = hci_find_remote_oob_data(hdev, bdaddr, bdaddr_type);
if (!data) {
- data = kmalloc(sizeof(*data), GFP_KERNEL);
+ data = kmalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -1718,7 +1718,7 @@ struct adv_info *hci_add_adv_instance(struct hci_dev *hdev, u8 instance,
instance < 1 || instance > hdev->le_num_of_adv_sets + 1)
return ERR_PTR(-EOVERFLOW);
- adv = kzalloc(sizeof(*adv), GFP_KERNEL);
+ adv = kzalloc_obj(*adv, GFP_KERNEL);
if (!adv)
return ERR_PTR(-ENOMEM);
@@ -2107,7 +2107,7 @@ int hci_bdaddr_list_add(struct list_head *list, bdaddr_t *bdaddr, u8 type)
if (hci_bdaddr_list_lookup(list, bdaddr, type))
return -EEXIST;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -2130,7 +2130,7 @@ int hci_bdaddr_list_add_with_irk(struct list_head *list, bdaddr_t *bdaddr,
if (hci_bdaddr_list_lookup(list, bdaddr, type))
return -EEXIST;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -2159,7 +2159,7 @@ int hci_bdaddr_list_add_with_flags(struct list_head *list, bdaddr_t *bdaddr,
if (hci_bdaddr_list_lookup(list, bdaddr, type))
return -EEXIST;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -2276,7 +2276,7 @@ struct hci_conn_params *hci_conn_params_add(struct hci_dev *hdev,
if (params)
return params;
- params = kzalloc(sizeof(*params), GFP_KERNEL);
+ params = kzalloc_obj(*params, GFP_KERNEL);
if (!params) {
bt_dev_err(hdev, "out of memory");
return NULL;
diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c
index f04a90bce4a9..ed5db3eb3df3 100644
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
@@ -711,7 +711,7 @@ int hci_cmd_sync_submit(struct hci_dev *hdev, hci_cmd_sync_work_func_t func,
goto unlock;
}
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
err = -ENOMEM;
goto unlock;
@@ -2685,7 +2685,7 @@ static struct conn_params *conn_params_copy(struct list_head *list, size_t *n)
rcu_read_unlock();
- p = kvcalloc(*n, sizeof(struct conn_params), GFP_KERNEL);
+ p = kvzalloc_objs(struct conn_params, *n, GFP_KERNEL);
if (!p)
return NULL;
@@ -7341,7 +7341,7 @@ int hci_past_sync(struct hci_conn *conn, struct hci_conn *le)
if (!past_sender_capable(conn->hdev))
return -EOPNOTSUPP;
- data = kmalloc(sizeof(*data), GFP_KERNEL);
+ data = kmalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -7473,7 +7473,7 @@ int hci_acl_change_pkt_type(struct hci_conn *conn, u16 pkt_type)
struct hci_dev *hdev = conn->hdev;
struct hci_cp_change_conn_ptype *cp;
- cp = kmalloc(sizeof(*cp), GFP_KERNEL);
+ cp = kmalloc_obj(*cp, GFP_KERNEL);
if (!cp)
return -ENOMEM;
@@ -7508,7 +7508,7 @@ int hci_le_set_phy(struct hci_conn *conn, u8 tx_phys, u8 rx_phys)
struct hci_dev *hdev = conn->hdev;
struct hci_cp_le_set_phy *cp;
- cp = kmalloc(sizeof(*cp), GFP_KERNEL);
+ cp = kmalloc_obj(*cp, GFP_KERNEL);
if (!cp)
return -ENOMEM;
diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c
index 6724adce615b..a91d5452f24a 100644
--- a/net/bluetooth/hidp/core.c
+++ b/net/bluetooth/hidp/core.c
@@ -920,7 +920,7 @@ static int hidp_session_new(struct hidp_session **out, const bdaddr_t *bdaddr,
ctrl = bt_sk(ctrl_sock->sk);
intr = bt_sk(intr_sock->sk);
- session = kzalloc(sizeof(*session), GFP_KERNEL);
+ session = kzalloc_obj(*session, GFP_KERNEL);
if (!session)
return -ENOMEM;
diff --git a/net/bluetooth/iso.c b/net/bluetooth/iso.c
index 1459ab161fd2..693271af6c22 100644
--- a/net/bluetooth/iso.c
+++ b/net/bluetooth/iso.c
@@ -212,7 +212,7 @@ static struct iso_conn *iso_conn_add(struct hci_conn *hcon)
return conn;
}
- conn = kzalloc(sizeof(*conn), GFP_KERNEL);
+ conn = kzalloc_obj(*conn, GFP_KERNEL);
if (!conn)
return NULL;
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index b628b0fa39b2..4804377781b6 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -442,7 +442,7 @@ struct l2cap_chan *l2cap_chan_create(void)
{
struct l2cap_chan *chan;
- chan = kzalloc(sizeof(*chan), GFP_ATOMIC);
+ chan = kzalloc_obj(*chan, GFP_ATOMIC);
if (!chan)
return NULL;
@@ -6902,7 +6902,7 @@ static struct l2cap_conn *l2cap_conn_add(struct hci_conn *hcon)
if (!hchan)
return NULL;
- conn = kzalloc(sizeof(*conn), GFP_KERNEL);
+ conn = kzalloc_obj(*conn, GFP_KERNEL);
if (!conn) {
hci_chan_del(hchan);
return NULL;
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
index 3ba3ce7eaa98..66ab920d8f50 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
@@ -1564,8 +1564,8 @@ static int l2cap_sock_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb)
(chan->mode == L2CAP_MODE_ERTM ||
chan->mode == L2CAP_MODE_LE_FLOWCTL ||
chan->mode == L2CAP_MODE_EXT_FLOWCTL)) {
- struct l2cap_rx_busy *rx_busy =
- kmalloc(sizeof(*rx_busy), GFP_KERNEL);
+ struct l2cap_rx_busy *rx_busy = kmalloc_obj(*rx_busy,
+ GFP_KERNEL);
if (!rx_busy) {
err = -ENOMEM;
goto done;
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index 0e46f9e08b10..c9725ca3356c 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -560,7 +560,7 @@ static int read_ext_index_list(struct sock *sk, struct hci_dev *hdev,
list_for_each_entry(d, &hci_dev_list, list)
count++;
- rp = kmalloc(struct_size(rp, entry, count), GFP_ATOMIC);
+ rp = kmalloc_flex(*rp, entry, count, GFP_ATOMIC);
if (!rp) {
read_unlock(&hci_dev_list_lock);
return -ENOMEM;
@@ -2767,7 +2767,7 @@ static int add_uuid(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
goto failed;
}
- uuid = kmalloc(sizeof(*uuid), GFP_KERNEL);
+ uuid = kmalloc_obj(*uuid, GFP_KERNEL);
if (!uuid) {
err = -ENOMEM;
goto failed;
@@ -3360,7 +3360,7 @@ static int get_connections(struct sock *sk, struct hci_dev *hdev, void *data,
i++;
}
- rp = kmalloc(struct_size(rp, addr, i), GFP_KERNEL);
+ rp = kmalloc_flex(*rp, addr, i, GFP_KERNEL);
if (!rp) {
err = -ENOMEM;
goto unlock;
@@ -4377,7 +4377,7 @@ static int set_blocked_keys(struct sock *sk, struct hci_dev *hdev, void *data,
hci_blocked_keys_clear(hdev);
for (i = 0; i < key_count; ++i) {
- struct blocked_key *b = kzalloc(sizeof(*b), GFP_KERNEL);
+ struct blocked_key *b = kzalloc_obj(*b, GFP_KERNEL);
if (!b) {
err = MGMT_STATUS_NO_RESOURCES;
@@ -5490,7 +5490,7 @@ static u8 parse_adv_monitor_pattern(struct adv_monitor *m, u8 pattern_count,
(offset + length) > HCI_MAX_AD_LENGTH)
return MGMT_STATUS_INVALID_PARAMS;
- p = kmalloc(sizeof(*p), GFP_KERNEL);
+ p = kmalloc_obj(*p, GFP_KERNEL);
if (!p)
return MGMT_STATUS_NO_RESOURCES;
@@ -5527,7 +5527,7 @@ static int add_adv_patterns_monitor(struct sock *sk, struct hci_dev *hdev,
goto done;
}
- m = kzalloc(sizeof(*m), GFP_KERNEL);
+ m = kzalloc_obj(*m, GFP_KERNEL);
if (!m) {
status = MGMT_STATUS_NO_RESOURCES;
goto done;
@@ -5564,7 +5564,7 @@ static int add_adv_patterns_monitor_rssi(struct sock *sk, struct hci_dev *hdev,
goto done;
}
- m = kzalloc(sizeof(*m), GFP_KERNEL);
+ m = kzalloc_obj(*m, GFP_KERNEL);
if (!m) {
status = MGMT_STATUS_NO_RESOURCES;
goto done;
diff --git a/net/bluetooth/mgmt_util.c b/net/bluetooth/mgmt_util.c
index aa7b5585cb26..4ed16ca8771d 100644
--- a/net/bluetooth/mgmt_util.c
+++ b/net/bluetooth/mgmt_util.c
@@ -266,7 +266,7 @@ struct mgmt_pending_cmd *mgmt_pending_new(struct sock *sk, u16 opcode,
{
struct mgmt_pending_cmd *cmd;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return NULL;
@@ -413,7 +413,7 @@ struct mgmt_mesh_tx *mgmt_mesh_add(struct sock *sk, struct hci_dev *hdev,
{
struct mgmt_mesh_tx *mesh_tx;
- mesh_tx = kzalloc(sizeof(*mesh_tx), GFP_KERNEL);
+ mesh_tx = kzalloc_obj(*mesh_tx, GFP_KERNEL);
if (!mesh_tx)
return NULL;
diff --git a/net/bluetooth/msft.c b/net/bluetooth/msft.c
index c560d8467669..25cde1ea5d23 100644
--- a/net/bluetooth/msft.c
+++ b/net/bluetooth/msft.c
@@ -276,7 +276,7 @@ static int msft_le_monitor_advertisement_cb(struct hci_dev *hdev, u16 opcode,
if (status)
goto unlock;
- handle_data = kmalloc(sizeof(*handle_data), GFP_KERNEL);
+ handle_data = kmalloc_obj(*handle_data, GFP_KERNEL);
if (!handle_data) {
status = HCI_ERROR_UNSPECIFIED;
goto unlock;
@@ -756,7 +756,7 @@ void msft_register(struct hci_dev *hdev)
bt_dev_dbg(hdev, "Register MSFT extension");
- msft = kzalloc(sizeof(*msft), GFP_KERNEL);
+ msft = kzalloc_obj(*msft, GFP_KERNEL);
if (!msft) {
bt_dev_err(hdev, "Failed to register MSFT extension");
return;
@@ -790,7 +790,7 @@ static void msft_device_found(struct hci_dev *hdev, bdaddr_t *bdaddr,
{
struct monitored_device *dev;
- dev = kmalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kmalloc_obj(*dev, GFP_KERNEL);
if (!dev) {
bt_dev_err(hdev, "MSFT vendor event %u: no memory",
MSFT_EV_LE_MONITOR_DEVICE);
@@ -932,7 +932,7 @@ static struct msft_monitor_addr_filter_data *msft_add_address_filter
struct msft_data *msft = hdev->msft_data;
int err;
- address_filter = kzalloc(sizeof(*address_filter), GFP_KERNEL);
+ address_filter = kzalloc_obj(*address_filter, GFP_KERNEL);
if (!address_filter)
return NULL;
diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c
index 57b1dca8141f..d7718844c520 100644
--- a/net/bluetooth/rfcomm/core.c
+++ b/net/bluetooth/rfcomm/core.c
@@ -302,7 +302,7 @@ static void rfcomm_dlc_clear_state(struct rfcomm_dlc *d)
struct rfcomm_dlc *rfcomm_dlc_alloc(gfp_t prio)
{
- struct rfcomm_dlc *d = kzalloc(sizeof(*d), prio);
+ struct rfcomm_dlc *d = kzalloc_obj(*d, prio);
if (!d)
return NULL;
@@ -680,7 +680,7 @@ int rfcomm_dlc_get_modem_status(struct rfcomm_dlc *d, u8 *v24_sig)
/* ---- RFCOMM sessions ---- */
static struct rfcomm_session *rfcomm_session_add(struct socket *sock, int state)
{
- struct rfcomm_session *s = kzalloc(sizeof(*s), GFP_KERNEL);
+ struct rfcomm_session *s = kzalloc_obj(*s, GFP_KERNEL);
if (!s)
return NULL;
diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c
index b783526ab588..4d8ab1a49e92 100644
--- a/net/bluetooth/rfcomm/tty.c
+++ b/net/bluetooth/rfcomm/tty.c
@@ -221,7 +221,7 @@ static struct rfcomm_dev *__rfcomm_dev_add(struct rfcomm_dev_req *req,
struct list_head *head = &rfcomm_dev_list;
int err = 0;
- dev = kzalloc(sizeof(struct rfcomm_dev), GFP_KERNEL);
+ dev = kzalloc_obj(struct rfcomm_dev, GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
@@ -510,7 +510,7 @@ static int rfcomm_get_dev_list(void __user *arg)
if (!dev_num || dev_num > (PAGE_SIZE * 4) / sizeof(*di))
return -EINVAL;
- dl = kzalloc(struct_size(dl, dev_info, dev_num), GFP_KERNEL);
+ dl = kzalloc_flex(*dl, dev_info, dev_num, GFP_KERNEL);
if (!dl)
return -ENOMEM;
diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c
index 87ba90336e80..26c5c5fe7c5a 100644
--- a/net/bluetooth/sco.c
+++ b/net/bluetooth/sco.c
@@ -204,7 +204,7 @@ static struct sco_conn *sco_conn_add(struct hci_conn *hcon)
return conn;
}
- conn = kzalloc(sizeof(struct sco_conn), GFP_KERNEL);
+ conn = kzalloc_obj(struct sco_conn, GFP_KERNEL);
if (!conn)
return NULL;
diff --git a/net/bluetooth/smp.c b/net/bluetooth/smp.c
index bf61e8841535..e0e66dc95007 100644
--- a/net/bluetooth/smp.c
+++ b/net/bluetooth/smp.c
@@ -1344,7 +1344,7 @@ static void smp_distribute_keys(struct smp_chan *smp)
/* Generate a new random key */
get_random_bytes(sign.csrk, sizeof(sign.csrk));
- csrk = kzalloc(sizeof(*csrk), GFP_KERNEL);
+ csrk = kzalloc_obj(*csrk, GFP_KERNEL);
if (csrk) {
if (hcon->sec_level > BT_SECURITY_MEDIUM)
csrk->type = MGMT_CSRK_LOCAL_AUTHENTICATED;
@@ -1388,7 +1388,7 @@ static struct smp_chan *smp_chan_create(struct l2cap_conn *conn)
struct l2cap_chan *chan = conn->smp;
struct smp_chan *smp;
- smp = kzalloc(sizeof(*smp), GFP_ATOMIC);
+ smp = kzalloc_obj(*smp, GFP_ATOMIC);
if (!smp)
return NULL;
@@ -2664,7 +2664,7 @@ static int smp_cmd_sign_info(struct l2cap_conn *conn, struct sk_buff *skb)
skb_pull(skb, sizeof(*rp));
- csrk = kzalloc(sizeof(*csrk), GFP_KERNEL);
+ csrk = kzalloc_obj(*csrk, GFP_KERNEL);
if (csrk) {
if (conn->hcon->sec_level > BT_SECURITY_MEDIUM)
csrk->type = MGMT_CSRK_REMOTE_AUTHENTICATED;
@@ -3293,7 +3293,7 @@ static struct l2cap_chan *smp_add_cid(struct hci_dev *hdev, u16 cid)
goto create_chan;
}
- smp = kzalloc(sizeof(*smp), GFP_KERNEL);
+ smp = kzalloc_obj(*smp, GFP_KERNEL);
if (!smp)
return ERR_PTR(-ENOMEM);
diff --git a/net/bpf/bpf_dummy_struct_ops.c b/net/bpf/bpf_dummy_struct_ops.c
index 812457819b5a..52117422e0f2 100644
--- a/net/bpf/bpf_dummy_struct_ops.c
+++ b/net/bpf/bpf_dummy_struct_ops.c
@@ -36,7 +36,7 @@ dummy_ops_init_args(const union bpf_attr *kattr, unsigned int nr)
if (size_in != sizeof(u64) * nr)
return ERR_PTR(-EINVAL);
- args = kzalloc(sizeof(*args), GFP_KERNEL);
+ args = kzalloc_obj(*args, GFP_KERNEL);
if (!args)
return ERR_PTR(-ENOMEM);
@@ -158,13 +158,13 @@ int bpf_struct_ops_test_run(struct bpf_prog *prog, const union bpf_attr *kattr,
if (err)
goto out;
- tlinks = kcalloc(BPF_TRAMP_MAX, sizeof(*tlinks), GFP_KERNEL);
+ tlinks = kzalloc_objs(*tlinks, BPF_TRAMP_MAX, GFP_KERNEL);
if (!tlinks) {
err = -ENOMEM;
goto out;
}
- link = kzalloc(sizeof(*link), GFP_USER);
+ link = kzalloc_obj(*link, GFP_USER);
if (!link) {
err = -ENOMEM;
goto out;
diff --git a/net/bridge/br_cfm.c b/net/bridge/br_cfm.c
index c2c1c7d44c61..a2276ce350fa 100644
--- a/net/bridge/br_cfm.c
+++ b/net/bridge/br_cfm.c
@@ -547,7 +547,7 @@ int br_cfm_mep_create(struct net_bridge *br,
}
}
- mep = kzalloc(sizeof(*mep), GFP_KERNEL);
+ mep = kzalloc_obj(*mep, GFP_KERNEL);
if (!mep)
return -ENOMEM;
@@ -693,7 +693,7 @@ int br_cfm_cc_peer_mep_add(struct net_bridge *br, const u32 instance,
return -EEXIST;
}
- peer_mep = kzalloc(sizeof(*peer_mep), GFP_KERNEL);
+ peer_mep = kzalloc_obj(*peer_mep, GFP_KERNEL);
if (!peer_mep)
return -ENOMEM;
diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c
index a818fdc22da9..1a3bcb5dd955 100644
--- a/net/bridge/br_device.c
+++ b/net/bridge/br_device.c
@@ -308,7 +308,7 @@ static int __br_netpoll_enable(struct net_bridge_port *p)
struct netpoll *np;
int err;
- np = kzalloc(sizeof(*p->np), GFP_KERNEL);
+ np = kzalloc_obj(*p->np, GFP_KERNEL);
if (!np)
return -ENOMEM;
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
index 4c67a32745f6..4737ee16bebb 100644
--- a/net/bridge/br_if.c
+++ b/net/bridge/br_if.c
@@ -429,7 +429,7 @@ static struct net_bridge_port *new_nbp(struct net_bridge *br,
if (index < 0)
return ERR_PTR(index);
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (p == NULL)
return ERR_PTR(-ENOMEM);
diff --git a/net/bridge/br_ioctl.c b/net/bridge/br_ioctl.c
index 6bc0a11f2ed3..7245ca29c5ea 100644
--- a/net/bridge/br_ioctl.c
+++ b/net/bridge/br_ioctl.c
@@ -204,7 +204,7 @@ int br_dev_siocdevprivate(struct net_device *dev, struct ifreq *rq,
if (num > BR_MAX_PORTS)
num = BR_MAX_PORTS;
- indices = kcalloc(num, sizeof(int), GFP_KERNEL);
+ indices = kzalloc_objs(int, num, GFP_KERNEL);
if (indices == NULL)
return -ENOMEM;
@@ -357,7 +357,7 @@ static int old_deviceless(struct net *net, void __user *data)
if (args[2] >= 2048)
return -ENOMEM;
- indices = kcalloc(args[2], sizeof(int), GFP_KERNEL);
+ indices = kzalloc_objs(int, args[2], GFP_KERNEL);
if (indices == NULL)
return -ENOMEM;
diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c
index 400eb872b403..a5f0b74b59f3 100644
--- a/net/bridge/br_mdb.c
+++ b/net/bridge/br_mdb.c
@@ -1133,8 +1133,8 @@ static int br_mdb_config_src_list_init(struct nlattr *src_list,
return -EINVAL;
}
- cfg->src_entries = kcalloc(cfg->num_src_entries,
- sizeof(struct br_mdb_src_entry), GFP_KERNEL);
+ cfg->src_entries = kzalloc_objs(struct br_mdb_src_entry,
+ cfg->num_src_entries, GFP_KERNEL);
if (!cfg->src_entries)
return -ENOMEM;
diff --git a/net/bridge/br_mrp.c b/net/bridge/br_mrp.c
index 3c36fa24bc05..d587f99afef6 100644
--- a/net/bridge/br_mrp.c
+++ b/net/bridge/br_mrp.c
@@ -516,7 +516,7 @@ int br_mrp_add(struct net_bridge *br, struct br_mrp_instance *instance)
!br_mrp_unique_ifindex(br, instance->s_ifindex))
return -EINVAL;
- mrp = kzalloc(sizeof(*mrp), GFP_KERNEL);
+ mrp = kzalloc_obj(*mrp, GFP_KERNEL);
if (!mrp)
return -ENOMEM;
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
index b6a5147886ca..881d866d687a 100644
--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -1290,7 +1290,7 @@ struct net_bridge_mdb_entry *br_multicast_new_group(struct net_bridge *br,
return ERR_PTR(-E2BIG);
}
- mp = kzalloc(sizeof(*mp), GFP_ATOMIC);
+ mp = kzalloc_obj(*mp, GFP_ATOMIC);
if (unlikely(!mp))
return ERR_PTR(-ENOMEM);
@@ -1381,7 +1381,7 @@ br_multicast_new_group_src(struct net_bridge_port_group *pg, struct br_ip *src_i
#endif
}
- grp_src = kzalloc(sizeof(*grp_src), GFP_ATOMIC);
+ grp_src = kzalloc_obj(*grp_src, GFP_ATOMIC);
if (unlikely(!grp_src))
return NULL;
@@ -1414,7 +1414,7 @@ struct net_bridge_port_group *br_multicast_new_port_group(
if (err)
return NULL;
- p = kzalloc(sizeof(*p), GFP_ATOMIC);
+ p = kzalloc_obj(*p, GFP_ATOMIC);
if (unlikely(!p)) {
NL_SET_ERR_MSG_MOD(extack, "Couldn't allocate new port group");
goto dec_out;
@@ -4891,7 +4891,7 @@ int br_multicast_list_adjacent(struct net_device *dev,
continue;
hlist_for_each_entry_rcu(group, &port->mglist, mglist) {
- entry = kmalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kmalloc_obj(*entry, GFP_ATOMIC);
if (!entry)
goto unlock;
diff --git a/net/bridge/br_multicast_eht.c b/net/bridge/br_multicast_eht.c
index adfd74102019..18eaf9c0dada 100644
--- a/net/bridge/br_multicast_eht.c
+++ b/net/bridge/br_multicast_eht.c
@@ -266,7 +266,7 @@ __eht_lookup_create_host(struct net_bridge_port_group *pg,
if (br_multicast_eht_hosts_over_limit(pg))
return NULL;
- eht_host = kzalloc(sizeof(*eht_host), GFP_ATOMIC);
+ eht_host = kzalloc_obj(*eht_host, GFP_ATOMIC);
if (!eht_host)
return NULL;
@@ -313,7 +313,7 @@ __eht_lookup_create_set_entry(struct net_bridge *br,
if (!allow_zero_src && eht_host->num_entries >= PG_SRC_ENT_LIMIT)
return NULL;
- set_h = kzalloc(sizeof(*set_h), GFP_ATOMIC);
+ set_h = kzalloc_obj(*set_h, GFP_ATOMIC);
if (!set_h)
return NULL;
@@ -360,7 +360,7 @@ __eht_lookup_create_set(struct net_bridge_port_group *pg,
return this;
}
- eht_set = kzalloc(sizeof(*eht_set), GFP_ATOMIC);
+ eht_set = kzalloc_obj(*eht_set, GFP_ATOMIC);
if (!eht_set)
return NULL;
diff --git a/net/bridge/br_switchdev.c b/net/bridge/br_switchdev.c
index fe3f7bbe86ee..4fac002922d2 100644
--- a/net/bridge/br_switchdev.c
+++ b/net/bridge/br_switchdev.c
@@ -661,7 +661,7 @@ void br_switchdev_mdb_notify(struct net_device *dev,
mdb.obj.orig_dev = pg->key.port->dev;
switch (type) {
case RTM_NEWMDB:
- complete_info = kmalloc(sizeof(*complete_info), GFP_ATOMIC);
+ complete_info = kmalloc_obj(*complete_info, GFP_ATOMIC);
if (!complete_info)
break;
complete_info->port = pg->key.port;
diff --git a/net/bridge/br_vlan.c b/net/bridge/br_vlan.c
index ce72b837ff8e..e3a5eb9e6ed1 100644
--- a/net/bridge/br_vlan.c
+++ b/net/bridge/br_vlan.c
@@ -787,7 +787,7 @@ int br_vlan_add(struct net_bridge *br, u16 vid, u16 flags, bool *changed,
return br_vlan_add_existing(br, vg, vlan, flags, changed,
extack);
- vlan = kzalloc(sizeof(*vlan), GFP_KERNEL);
+ vlan = kzalloc_obj(*vlan, GFP_KERNEL);
if (!vlan)
return -ENOMEM;
@@ -1224,7 +1224,7 @@ int br_vlan_init(struct net_bridge *br)
struct net_bridge_vlan_group *vg;
int ret = -ENOMEM;
- vg = kzalloc(sizeof(*vg), GFP_KERNEL);
+ vg = kzalloc_obj(*vg, GFP_KERNEL);
if (!vg)
goto out;
ret = rhashtable_init(&vg->vlan_hash, &br_vlan_rht_params);
@@ -1260,7 +1260,7 @@ int nbp_vlan_init(struct net_bridge_port *p, struct netlink_ext_ack *extack)
struct net_bridge_vlan_group *vg;
int ret = -ENOMEM;
- vg = kzalloc(sizeof(struct net_bridge_vlan_group), GFP_KERNEL);
+ vg = kzalloc_obj(struct net_bridge_vlan_group, GFP_KERNEL);
if (!vg)
goto out;
@@ -1334,7 +1334,7 @@ int nbp_vlan_add(struct net_bridge_port *port, u16 vid, u16 flags,
return 0;
}
- vlan = kzalloc(sizeof(*vlan), GFP_KERNEL);
+ vlan = kzalloc_obj(*vlan, GFP_KERNEL);
if (!vlan)
return -ENOMEM;
diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c
index a04fc1757528..f01efd0b139e 100644
--- a/net/bridge/netfilter/ebtables.c
+++ b/net/bridge/netfilter/ebtables.c
@@ -1303,7 +1303,7 @@ int ebt_register_template(const struct ebt_table *t, int (*table_init)(struct ne
}
}
- tmpl = kzalloc(sizeof(*tmpl), GFP_KERNEL);
+ tmpl = kzalloc_obj(*tmpl, GFP_KERNEL);
if (!tmpl) {
mutex_unlock(&ebt_mutex);
return -ENOMEM;
diff --git a/net/caif/caif_dev.c b/net/caif/caif_dev.c
index 24e85c5487ef..18f7769405f9 100644
--- a/net/caif/caif_dev.c
+++ b/net/caif/caif_dev.c
@@ -94,7 +94,7 @@ static struct caif_device_entry *caif_device_alloc(struct net_device *dev)
{
struct caif_device_entry *caifd;
- caifd = kzalloc(sizeof(*caifd), GFP_KERNEL);
+ caifd = kzalloc_obj(*caifd, GFP_KERNEL);
if (!caifd)
return NULL;
caifd->pcpu_refcnt = alloc_percpu(int);
diff --git a/net/caif/caif_usb.c b/net/caif/caif_usb.c
index 5dc05a1e3178..4d44960d4c2f 100644
--- a/net/caif/caif_usb.c
+++ b/net/caif/caif_usb.c
@@ -85,7 +85,7 @@ static void cfusbl_ctrlcmd(struct cflayer *layr, enum caif_ctrlcmd ctrl,
static struct cflayer *cfusbl_create(int phyid, const u8 ethaddr[ETH_ALEN],
u8 braddr[ETH_ALEN])
{
- struct cfusbl *this = kmalloc(sizeof(struct cfusbl), GFP_ATOMIC);
+ struct cfusbl *this = kmalloc_obj(struct cfusbl, GFP_ATOMIC);
if (!this)
return NULL;
diff --git a/net/caif/cfcnfg.c b/net/caif/cfcnfg.c
index 52509e185960..8a80914783e8 100644
--- a/net/caif/cfcnfg.c
+++ b/net/caif/cfcnfg.c
@@ -77,7 +77,7 @@ struct cfcnfg *cfcnfg_create(void)
might_sleep();
/* Initiate this layer */
- this = kzalloc(sizeof(struct cfcnfg), GFP_ATOMIC);
+ this = kzalloc_obj(struct cfcnfg, GFP_ATOMIC);
if (!this)
return NULL;
this->mux = cfmuxl_create();
@@ -477,7 +477,7 @@ cfcnfg_add_phy_layer(struct cfcnfg *cnfg,
goto out;
got_phyid:
- phyinfo = kzalloc(sizeof(struct cfcnfg_phyinfo), GFP_ATOMIC);
+ phyinfo = kzalloc_obj(struct cfcnfg_phyinfo, GFP_ATOMIC);
if (!phyinfo) {
res = -ENOMEM;
goto out;
diff --git a/net/caif/cfctrl.c b/net/caif/cfctrl.c
index 2aa1e7d46eb2..566546da4152 100644
--- a/net/caif/cfctrl.c
+++ b/net/caif/cfctrl.c
@@ -36,7 +36,7 @@ struct cflayer *cfctrl_create(void)
{
struct dev_info dev_info;
struct cfctrl *this =
- kzalloc(sizeof(struct cfctrl), GFP_ATOMIC);
+ kzalloc_obj(struct cfctrl, GFP_ATOMIC);
if (!this)
return NULL;
caif_assert(offsetof(struct cfctrl, serv.layer) == 0);
@@ -270,7 +270,7 @@ int cfctrl_linkup_request(struct cflayer *layer,
cfpkt_destroy(pkt);
return -EINVAL;
}
- req = kzalloc(sizeof(*req), GFP_KERNEL);
+ req = kzalloc_obj(*req, GFP_KERNEL);
if (!req) {
cfpkt_destroy(pkt);
return -ENOMEM;
diff --git a/net/caif/cfdbgl.c b/net/caif/cfdbgl.c
index 77f428428b47..57ad3f82e004 100644
--- a/net/caif/cfdbgl.c
+++ b/net/caif/cfdbgl.c
@@ -19,7 +19,7 @@ static int cfdbgl_transmit(struct cflayer *layr, struct cfpkt *pkt);
struct cflayer *cfdbgl_create(u8 channel_id, struct dev_info *dev_info)
{
- struct cfsrvl *dbg = kzalloc(sizeof(struct cfsrvl), GFP_ATOMIC);
+ struct cfsrvl *dbg = kzalloc_obj(struct cfsrvl, GFP_ATOMIC);
if (!dbg)
return NULL;
caif_assert(offsetof(struct cfsrvl, layer) == 0);
diff --git a/net/caif/cfdgml.c b/net/caif/cfdgml.c
index eb6f8ef47a79..c451ddd155a7 100644
--- a/net/caif/cfdgml.c
+++ b/net/caif/cfdgml.c
@@ -26,7 +26,7 @@ static int cfdgml_transmit(struct cflayer *layr, struct cfpkt *pkt);
struct cflayer *cfdgml_create(u8 channel_id, struct dev_info *dev_info)
{
- struct cfsrvl *dgm = kzalloc(sizeof(struct cfsrvl), GFP_ATOMIC);
+ struct cfsrvl *dgm = kzalloc_obj(struct cfsrvl, GFP_ATOMIC);
if (!dgm)
return NULL;
caif_assert(offsetof(struct cfsrvl, layer) == 0);
diff --git a/net/caif/cffrml.c b/net/caif/cffrml.c
index d4d63586053a..0f4979d89fcb 100644
--- a/net/caif/cffrml.c
+++ b/net/caif/cffrml.c
@@ -34,7 +34,7 @@ static u32 cffrml_rcv_error;
static u32 cffrml_rcv_checsum_error;
struct cflayer *cffrml_create(u16 phyid, bool use_fcs)
{
- struct cffrml *this = kzalloc(sizeof(struct cffrml), GFP_ATOMIC);
+ struct cffrml *this = kzalloc_obj(struct cffrml, GFP_ATOMIC);
if (!this)
return NULL;
this->pcpu_refcnt = alloc_percpu(int);
diff --git a/net/caif/cfmuxl.c b/net/caif/cfmuxl.c
index 4172b0d0db63..77a1f31639b7 100644
--- a/net/caif/cfmuxl.c
+++ b/net/caif/cfmuxl.c
@@ -47,7 +47,7 @@ static struct cflayer *get_up(struct cfmuxl *muxl, u16 id);
struct cflayer *cfmuxl_create(void)
{
- struct cfmuxl *this = kzalloc(sizeof(struct cfmuxl), GFP_ATOMIC);
+ struct cfmuxl *this = kzalloc_obj(struct cfmuxl, GFP_ATOMIC);
if (!this)
return NULL;
diff --git a/net/caif/cfrfml.c b/net/caif/cfrfml.c
index 3c335057f255..93732ebbd1e2 100644
--- a/net/caif/cfrfml.c
+++ b/net/caif/cfrfml.c
@@ -46,7 +46,7 @@ struct cflayer *cfrfml_create(u8 channel_id, struct dev_info *dev_info,
int mtu_size)
{
int tmp;
- struct cfrfml *this = kzalloc(sizeof(struct cfrfml), GFP_ATOMIC);
+ struct cfrfml *this = kzalloc_obj(struct cfrfml, GFP_ATOMIC);
if (!this)
return NULL;
diff --git a/net/caif/cfserl.c b/net/caif/cfserl.c
index aee11c74d3c8..faf78fb754e2 100644
--- a/net/caif/cfserl.c
+++ b/net/caif/cfserl.c
@@ -38,7 +38,7 @@ void cfserl_release(struct cflayer *layer)
struct cflayer *cfserl_create(int instance, bool use_stx)
{
- struct cfserl *this = kzalloc(sizeof(struct cfserl), GFP_ATOMIC);
+ struct cfserl *this = kzalloc_obj(struct cfserl, GFP_ATOMIC);
if (!this)
return NULL;
caif_assert(offsetof(struct cfserl, layer) == 0);
diff --git a/net/caif/cfutill.c b/net/caif/cfutill.c
index b2e47ede912f..5111090bb2c0 100644
--- a/net/caif/cfutill.c
+++ b/net/caif/cfutill.c
@@ -26,7 +26,7 @@ static int cfutill_transmit(struct cflayer *layr, struct cfpkt *pkt);
struct cflayer *cfutill_create(u8 channel_id, struct dev_info *dev_info)
{
- struct cfsrvl *util = kzalloc(sizeof(struct cfsrvl), GFP_ATOMIC);
+ struct cfsrvl *util = kzalloc_obj(struct cfsrvl, GFP_ATOMIC);
if (!util)
return NULL;
caif_assert(offsetof(struct cfsrvl, layer) == 0);
diff --git a/net/caif/cfveil.c b/net/caif/cfveil.c
index db2274b94a5d..53f844c49bbb 100644
--- a/net/caif/cfveil.c
+++ b/net/caif/cfveil.c
@@ -25,7 +25,7 @@ static int cfvei_transmit(struct cflayer *layr, struct cfpkt *pkt);
struct cflayer *cfvei_create(u8 channel_id, struct dev_info *dev_info)
{
- struct cfsrvl *vei = kzalloc(sizeof(struct cfsrvl), GFP_ATOMIC);
+ struct cfsrvl *vei = kzalloc_obj(struct cfsrvl, GFP_ATOMIC);
if (!vei)
return NULL;
caif_assert(offsetof(struct cfsrvl, layer) == 0);
diff --git a/net/caif/cfvidl.c b/net/caif/cfvidl.c
index 134bad43196c..39e075b0a259 100644
--- a/net/caif/cfvidl.c
+++ b/net/caif/cfvidl.c
@@ -21,7 +21,7 @@ static int cfvidl_transmit(struct cflayer *layr, struct cfpkt *pkt);
struct cflayer *cfvidl_create(u8 channel_id, struct dev_info *dev_info)
{
- struct cfsrvl *vid = kzalloc(sizeof(struct cfsrvl), GFP_ATOMIC);
+ struct cfsrvl *vid = kzalloc_obj(struct cfsrvl, GFP_ATOMIC);
if (!vid)
return NULL;
caif_assert(offsetof(struct cfsrvl, layer) == 0);
diff --git a/net/can/af_can.c b/net/can/af_can.c
index 22c65a014861..6fa0dd649d0c 100644
--- a/net/can/af_can.c
+++ b/net/can/af_can.c
@@ -798,14 +798,15 @@ EXPORT_SYMBOL(can_proto_unregister);
static int can_pernet_init(struct net *net)
{
spin_lock_init(&net->can.rcvlists_lock);
- net->can.rx_alldev_list =
- kzalloc(sizeof(*net->can.rx_alldev_list), GFP_KERNEL);
+ net->can.rx_alldev_list = kzalloc_obj(*net->can.rx_alldev_list,
+ GFP_KERNEL);
if (!net->can.rx_alldev_list)
goto out;
- net->can.pkg_stats = kzalloc(sizeof(*net->can.pkg_stats), GFP_KERNEL);
+ net->can.pkg_stats = kzalloc_obj(*net->can.pkg_stats, GFP_KERNEL);
if (!net->can.pkg_stats)
goto out_free_rx_alldev_list;
- net->can.rcv_lists_stats = kzalloc(sizeof(*net->can.rcv_lists_stats), GFP_KERNEL);
+ net->can.rcv_lists_stats = kzalloc_obj(*net->can.rcv_lists_stats,
+ GFP_KERNEL);
if (!net->can.rcv_lists_stats)
goto out_free_pkg_stats;
diff --git a/net/can/gw.c b/net/can/gw.c
index 61a1e6b1b83f..c6cf4cb72891 100644
--- a/net/can/gw.c
+++ b/net/can/gw.c
@@ -1099,7 +1099,7 @@ static int cgw_create_job(struct sk_buff *skb, struct nlmsghdr *nlh,
if (r->gwtype != CGW_TYPE_CAN_CAN)
return -EINVAL;
- mod = kmalloc(sizeof(*mod), GFP_KERNEL);
+ mod = kmalloc_obj(*mod, GFP_KERNEL);
if (!mod)
return -ENOMEM;
diff --git a/net/can/j1939/bus.c b/net/can/j1939/bus.c
index 797719cb227e..dc374286eeb6 100644
--- a/net/can/j1939/bus.c
+++ b/net/can/j1939/bus.c
@@ -151,7 +151,7 @@ struct j1939_ecu *j1939_ecu_create_locked(struct j1939_priv *priv, name_t name)
lockdep_assert_held(&priv->lock);
- ecu = kzalloc(sizeof(*ecu), gfp_any());
+ ecu = kzalloc_obj(*ecu, gfp_any());
if (!ecu)
return ERR_PTR(-ENOMEM);
kref_init(&ecu->kref);
diff --git a/net/can/j1939/main.c b/net/can/j1939/main.c
index a93af55df5fd..45b718c680e0 100644
--- a/net/can/j1939/main.c
+++ b/net/can/j1939/main.c
@@ -128,7 +128,7 @@ static struct j1939_priv *j1939_priv_create(struct net_device *ndev)
{
struct j1939_priv *priv;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return NULL;
diff --git a/net/can/j1939/transport.c b/net/can/j1939/transport.c
index 2cbe94fc487a..df93d57907da 100644
--- a/net/can/j1939/transport.c
+++ b/net/can/j1939/transport.c
@@ -1508,7 +1508,7 @@ static struct j1939_session *j1939_session_new(struct j1939_priv *priv,
struct j1939_session *session;
struct j1939_sk_buff_cb *skcb;
- session = kzalloc(sizeof(*session), gfp_any());
+ session = kzalloc_obj(*session, gfp_any());
if (!session)
return NULL;
diff --git a/net/ceph/auth.c b/net/ceph/auth.c
index d38c9eadbe2f..343c841784ce 100644
--- a/net/ceph/auth.c
+++ b/net/ceph/auth.c
@@ -59,7 +59,7 @@ struct ceph_auth_client *ceph_auth_init(const char *name,
{
struct ceph_auth_client *ac;
- ac = kzalloc(sizeof(*ac), GFP_NOFS);
+ ac = kzalloc_obj(*ac, GFP_NOFS);
if (!ac)
return ERR_PTR(-ENOMEM);
diff --git a/net/ceph/auth_none.c b/net/ceph/auth_none.c
index 77b5519bc45f..99e1f3e10a4c 100644
--- a/net/ceph/auth_none.c
+++ b/net/ceph/auth_none.c
@@ -97,7 +97,7 @@ static int ceph_auth_none_create_authorizer(
struct ceph_none_authorizer *au;
int ret;
- au = kmalloc(sizeof(*au), GFP_NOFS);
+ au = kmalloc_obj(*au, GFP_NOFS);
if (!au)
return -ENOMEM;
@@ -133,7 +133,7 @@ int ceph_auth_none_init(struct ceph_auth_client *ac)
struct ceph_auth_none_info *xi;
dout("ceph_auth_none_init %p\n", ac);
- xi = kzalloc(sizeof(*xi), GFP_NOFS);
+ xi = kzalloc_obj(*xi, GFP_NOFS);
if (!xi)
return -ENOMEM;
diff --git a/net/ceph/auth_x.c b/net/ceph/auth_x.c
index 13b3df9af0ac..692e0b868822 100644
--- a/net/ceph/auth_x.c
+++ b/net/ceph/auth_x.c
@@ -166,7 +166,7 @@ get_ticket_handler(struct ceph_auth_client *ac, int service)
}
/* add it */
- th = kzalloc(sizeof(*th), GFP_NOFS);
+ th = kzalloc_obj(*th, GFP_NOFS);
if (!th)
return ERR_PTR(-ENOMEM);
th->service = service;
@@ -808,7 +808,7 @@ static int ceph_x_create_authorizer(
if (IS_ERR(th))
return PTR_ERR(th);
- au = kzalloc(sizeof(*au), GFP_NOFS);
+ au = kzalloc_obj(*au, GFP_NOFS);
if (!au)
return -ENOMEM;
@@ -1174,7 +1174,7 @@ int ceph_x_init(struct ceph_auth_client *ac)
int ret;
dout("ceph_x_init %p\n", ac);
- xi = kzalloc(sizeof(*xi), GFP_NOFS);
+ xi = kzalloc_obj(*xi, GFP_NOFS);
if (!xi)
return -ENOMEM;
diff --git a/net/ceph/buffer.c b/net/ceph/buffer.c
index 7e51f128045d..98c2ac4387ae 100644
--- a/net/ceph/buffer.c
+++ b/net/ceph/buffer.c
@@ -13,7 +13,7 @@ struct ceph_buffer *ceph_buffer_new(size_t len, gfp_t gfp)
{
struct ceph_buffer *b;
- b = kmalloc(sizeof(*b), gfp);
+ b = kmalloc_obj(*b, gfp);
if (!b)
return NULL;
diff --git a/net/ceph/ceph_common.c b/net/ceph/ceph_common.c
index e734e57be083..455787422784 100644
--- a/net/ceph/ceph_common.c
+++ b/net/ceph/ceph_common.c
@@ -309,13 +309,12 @@ struct ceph_options *ceph_alloc_options(void)
{
struct ceph_options *opt;
- opt = kzalloc(sizeof(*opt), GFP_KERNEL);
+ opt = kzalloc_obj(*opt, GFP_KERNEL);
if (!opt)
return NULL;
opt->crush_locs = RB_ROOT;
- opt->mon_addr = kcalloc(CEPH_MAX_MON, sizeof(*opt->mon_addr),
- GFP_KERNEL);
+ opt->mon_addr = kzalloc_objs(*opt->mon_addr, CEPH_MAX_MON, GFP_KERNEL);
if (!opt->mon_addr) {
kfree(opt);
return NULL;
@@ -456,7 +455,7 @@ int ceph_parse_param(struct fs_parameter *param, struct ceph_options *opt,
ceph_crypto_key_destroy(opt->key);
kfree(opt->key);
- opt->key = kzalloc(sizeof(*opt->key), GFP_KERNEL);
+ opt->key = kzalloc_obj(*opt->key, GFP_KERNEL);
if (!opt->key)
return -ENOMEM;
err = ceph_crypto_key_unarmor(opt->key, param->string);
@@ -469,7 +468,7 @@ int ceph_parse_param(struct fs_parameter *param, struct ceph_options *opt,
ceph_crypto_key_destroy(opt->key);
kfree(opt->key);
- opt->key = kzalloc(sizeof(*opt->key), GFP_KERNEL);
+ opt->key = kzalloc_obj(*opt->key, GFP_KERNEL);
if (!opt->key)
return -ENOMEM;
return get_secret(opt->key, param->string, &log);
@@ -714,7 +713,7 @@ struct ceph_client *ceph_create_client(struct ceph_options *opt, void *private)
if (err < 0)
return ERR_PTR(err);
- client = kzalloc(sizeof(*client), GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (client == NULL)
return ERR_PTR(-ENOMEM);
diff --git a/net/ceph/cls_lock_client.c b/net/ceph/cls_lock_client.c
index 66136a4c1ce7..c6956f1df333 100644
--- a/net/ceph/cls_lock_client.c
+++ b/net/ceph/cls_lock_client.c
@@ -300,7 +300,7 @@ static int decode_lockers(void **p, void *end, u8 *type, char **tag,
return ret;
*num_lockers = ceph_decode_32(p);
- *lockers = kcalloc(*num_lockers, sizeof(**lockers), GFP_NOIO);
+ *lockers = kzalloc_objs(**lockers, *num_lockers, GFP_NOIO);
if (!*lockers)
return -ENOMEM;
diff --git a/net/ceph/crypto.c b/net/ceph/crypto.c
index b2067ea6c38a..ef8a98c1174f 100644
--- a/net/ceph/crypto.c
+++ b/net/ceph/crypto.c
@@ -466,7 +466,7 @@ static int ceph_key_preparse(struct key_preparsed_payload *prep)
goto err;
ret = -ENOMEM;
- ckey = kzalloc(sizeof(*ckey), GFP_KERNEL);
+ ckey = kzalloc_obj(*ckey, GFP_KERNEL);
if (!ckey)
goto err;
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index 70b25f4ecba6..108adb583744 100644
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@ -1993,8 +1993,7 @@ struct ceph_msg *ceph_msg_new2(int type, int front_len, int max_data_items,
m->front_alloc_len = m->front.iov_len = front_len;
if (max_data_items) {
- m->data = kmalloc_array(max_data_items, sizeof(*m->data),
- flags);
+ m->data = kmalloc_objs(*m->data, max_data_items, flags);
if (!m->data)
goto out2;
diff --git a/net/ceph/mon_client.c b/net/ceph/mon_client.c
index fa8dd2a20f7d..2e2fd241dd19 100644
--- a/net/ceph/mon_client.c
+++ b/net/ceph/mon_client.c
@@ -117,7 +117,7 @@ static struct ceph_monmap *ceph_monmap_decode(void **p, void *end, bool msgr2)
if (num_mon > CEPH_MAX_MON)
goto e_inval;
- monmap = kmalloc(struct_size(monmap, mon_inst, num_mon), GFP_NOIO);
+ monmap = kmalloc_flex(*monmap, mon_inst, num_mon, GFP_NOIO);
if (!monmap) {
ret = -ENOMEM;
goto fail;
@@ -611,7 +611,7 @@ alloc_generic_request(struct ceph_mon_client *monc, gfp_t gfp)
{
struct ceph_mon_generic_request *req;
- req = kzalloc(sizeof(*req), gfp);
+ req = kzalloc_obj(*req, gfp);
if (!req)
return NULL;
@@ -1140,8 +1140,8 @@ static int build_initial_monmap(struct ceph_mon_client *monc)
int i;
/* build initial monmap */
- monc->monmap = kzalloc(struct_size(monc->monmap, mon_inst, num_mon),
- GFP_KERNEL);
+ monc->monmap = kzalloc_flex(*monc->monmap, mon_inst, num_mon,
+ GFP_KERNEL);
if (!monc->monmap)
return -ENOMEM;
monc->monmap->num_mon = num_mon;
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
index 610e584524d1..2ff00070c181 100644
--- a/net/ceph/osd_client.c
+++ b/net/ceph/osd_client.c
@@ -556,7 +556,7 @@ struct ceph_osd_request *ceph_osdc_alloc_request(struct ceph_osd_client *osdc,
req = kmem_cache_alloc(ceph_osd_request_cache, gfp_flags);
} else {
BUG_ON(num_ops > CEPH_OSD_MAX_OPS);
- req = kmalloc(struct_size(req, r_ops, num_ops), gfp_flags);
+ req = kmalloc_flex(*req, r_ops, num_ops, gfp_flags);
}
if (unlikely(!req))
return NULL;
@@ -1153,9 +1153,8 @@ int __ceph_alloc_sparse_ext_map(struct ceph_osd_req_op *op, int cnt)
WARN_ON(op->op != CEPH_OSD_OP_SPARSE_READ);
op->extent.sparse_ext_cnt = cnt;
- op->extent.sparse_ext = kmalloc_array(cnt,
- sizeof(*op->extent.sparse_ext),
- GFP_NOFS);
+ op->extent.sparse_ext = kmalloc_objs(*op->extent.sparse_ext, cnt,
+ GFP_NOFS);
if (!op->extent.sparse_ext)
return -ENOMEM;
return 0;
@@ -1264,7 +1263,7 @@ static struct ceph_osd *create_osd(struct ceph_osd_client *osdc, int onum)
WARN_ON(onum == CEPH_HOMELESS_OSD);
- osd = kzalloc(sizeof(*osd), GFP_NOIO | __GFP_NOFAIL);
+ osd = kzalloc_obj(*osd, GFP_NOIO | __GFP_NOFAIL);
osd_init(osd);
osd->o_osdc = osdc;
osd->o_osd = onum;
@@ -1718,7 +1717,7 @@ static struct ceph_spg_mapping *alloc_spg_mapping(void)
{
struct ceph_spg_mapping *spg;
- spg = kmalloc(sizeof(*spg), GFP_NOIO);
+ spg = kmalloc_obj(*spg, GFP_NOIO);
if (!spg)
return NULL;
@@ -1913,7 +1912,7 @@ static struct ceph_osd_backoff *alloc_backoff(void)
{
struct ceph_osd_backoff *backoff;
- backoff = kzalloc(sizeof(*backoff), GFP_NOIO);
+ backoff = kzalloc_obj(*backoff, GFP_NOIO);
if (!backoff)
return NULL;
@@ -2806,7 +2805,7 @@ linger_alloc(struct ceph_osd_client *osdc)
{
struct ceph_osd_linger_request *lreq;
- lreq = kzalloc(sizeof(*lreq), GFP_NOIO);
+ lreq = kzalloc_obj(*lreq, GFP_NOIO);
if (!lreq)
return NULL;
@@ -2948,7 +2947,7 @@ static struct linger_work *lwork_alloc(struct ceph_osd_linger_request *lreq,
{
struct linger_work *lwork;
- lwork = kzalloc(sizeof(*lwork), GFP_NOIO);
+ lwork = kzalloc_obj(*lwork, GFP_NOIO);
if (!lwork)
return NULL;
@@ -4329,7 +4328,7 @@ static int decode_MOSDBackoff(const struct ceph_msg *msg, struct MOSDBackoff *m)
ceph_decode_8_safe(&p, end, m->op, e_inval);
ceph_decode_64_safe(&p, end, m->id, e_inval);
- m->begin = kzalloc(sizeof(*m->begin), GFP_NOIO);
+ m->begin = kzalloc_obj(*m->begin, GFP_NOIO);
if (!m->begin)
return -ENOMEM;
@@ -4339,7 +4338,7 @@ static int decode_MOSDBackoff(const struct ceph_msg *msg, struct MOSDBackoff *m)
return ret;
}
- m->end = kzalloc(sizeof(*m->end), GFP_NOIO);
+ m->end = kzalloc_obj(*m->end, GFP_NOIO);
if (!m->end) {
free_hoid(m->begin);
return -ENOMEM;
@@ -5032,7 +5031,7 @@ static int decode_watchers(void **p, void *end,
return ret;
*num_watchers = ceph_decode_32(p);
- *watchers = kcalloc(*num_watchers, sizeof(**watchers), GFP_NOIO);
+ *watchers = kzalloc_objs(**watchers, *num_watchers, GFP_NOIO);
if (!*watchers)
return -ENOMEM;
@@ -5832,9 +5831,8 @@ static int osd_sparse_read(struct ceph_connection *con,
if (!sr->sr_extent || count > sr->sr_ext_len) {
/* no extent array provided, or too short */
kfree(sr->sr_extent);
- sr->sr_extent = kmalloc_array(count,
- sizeof(*sr->sr_extent),
- GFP_NOIO);
+ sr->sr_extent = kmalloc_objs(*sr->sr_extent,
+ count, GFP_NOIO);
if (!sr->sr_extent) {
pr_err("%s: failed to allocate %u extents\n",
__func__, count);
diff --git a/net/ceph/osdmap.c b/net/ceph/osdmap.c
index 92a44026de29..c89e66d4fcb7 100644
--- a/net/ceph/osdmap.c
+++ b/net/ceph/osdmap.c
@@ -231,7 +231,7 @@ static struct crush_choose_arg_map *alloc_choose_arg_map(void)
{
struct crush_choose_arg_map *arg_map;
- arg_map = kzalloc(sizeof(*arg_map), GFP_NOIO);
+ arg_map = kzalloc_obj(*arg_map, GFP_NOIO);
if (!arg_map)
return NULL;
@@ -320,9 +320,8 @@ static int decode_choose_arg(void **p, void *end, struct crush_choose_arg *arg)
if (arg->weight_set_size) {
u32 i;
- arg->weight_set = kmalloc_array(arg->weight_set_size,
- sizeof(*arg->weight_set),
- GFP_NOIO);
+ arg->weight_set = kmalloc_objs(*arg->weight_set,
+ arg->weight_set_size, GFP_NOIO);
if (!arg->weight_set)
return -ENOMEM;
@@ -368,8 +367,8 @@ static int decode_choose_args(void **p, void *end, struct crush_map *c)
ceph_decode_64_safe(p, end, arg_map->choose_args_index,
e_inval);
arg_map->size = c->max_buckets;
- arg_map->args = kcalloc(arg_map->size, sizeof(*arg_map->args),
- GFP_NOIO);
+ arg_map->args = kzalloc_objs(*arg_map->args, arg_map->size,
+ GFP_NOIO);
if (!arg_map->args) {
ret = -ENOMEM;
goto fail;
@@ -443,7 +442,7 @@ static struct crush_map *crush_decode(void *pbyval, void *end)
dout("crush_decode %p to %p len %d\n", *p, end, (int)(end - *p));
- c = kzalloc(sizeof(*c), GFP_NOFS);
+ c = kzalloc_obj(*c, GFP_NOFS);
if (c == NULL)
return ERR_PTR(-ENOMEM);
@@ -468,10 +467,10 @@ static struct crush_map *crush_decode(void *pbyval, void *end)
c->max_rules = ceph_decode_32(p);
c->max_devices = ceph_decode_32(p);
- c->buckets = kcalloc(c->max_buckets, sizeof(*c->buckets), GFP_NOFS);
+ c->buckets = kzalloc_objs(*c->buckets, c->max_buckets, GFP_NOFS);
if (c->buckets == NULL)
goto badmem;
- c->rules = kcalloc(c->max_rules, sizeof(*c->rules), GFP_NOFS);
+ c->rules = kzalloc_objs(*c->rules, c->max_rules, GFP_NOFS);
if (c->rules == NULL)
goto badmem;
@@ -524,7 +523,7 @@ static struct crush_map *crush_decode(void *pbyval, void *end)
dout("crush_decode bucket size %d off %x %p to %p\n",
b->size, (int)(*p-start), *p, end);
- b->items = kcalloc(b->size, sizeof(__s32), GFP_NOFS);
+ b->items = kzalloc_objs(__s32, b->size, GFP_NOFS);
if (b->items == NULL)
goto badmem;
@@ -590,7 +589,7 @@ static struct crush_map *crush_decode(void *pbyval, void *end)
/ sizeof(struct crush_rule_step))
goto bad;
#endif
- r = kmalloc(struct_size(r, steps, yes), GFP_NOFS);
+ r = kmalloc_flex(*r, steps, yes, GFP_NOFS);
if (r == NULL)
goto badmem;
dout(" rule %d is at %p\n", i, r);
@@ -1116,7 +1115,7 @@ struct ceph_osdmap *ceph_osdmap_alloc(void)
{
struct ceph_osdmap *map;
- map = kzalloc(sizeof(*map), GFP_NOIO);
+ map = kzalloc_obj(*map, GFP_NOIO);
if (!map)
return NULL;
@@ -1343,7 +1342,7 @@ static int __decode_pools(void **p, void *end, struct ceph_osdmap *map,
pi = lookup_pg_pool(&map->pg_pools, pool);
if (!incremental || !pi) {
- pi = kzalloc(sizeof(*pi), GFP_NOFS);
+ pi = kzalloc_obj(*pi, GFP_NOFS);
if (!pi)
return -ENOMEM;
diff --git a/net/ceph/pagelist.c b/net/ceph/pagelist.c
index 5a9c4be5f222..40847d873cff 100644
--- a/net/ceph/pagelist.c
+++ b/net/ceph/pagelist.c
@@ -10,7 +10,7 @@ struct ceph_pagelist *ceph_pagelist_alloc(gfp_t gfp_flags)
{
struct ceph_pagelist *pl;
- pl = kmalloc(sizeof(*pl), gfp_flags);
+ pl = kmalloc_obj(*pl, gfp_flags);
if (!pl)
return NULL;
diff --git a/net/ceph/pagevec.c b/net/ceph/pagevec.c
index 4509757d8b3b..858359873c4d 100644
--- a/net/ceph/pagevec.c
+++ b/net/ceph/pagevec.c
@@ -41,7 +41,7 @@ struct page **ceph_alloc_page_vector(int num_pages, gfp_t flags)
struct page **pages;
int i;
- pages = kmalloc_array(num_pages, sizeof(*pages), flags);
+ pages = kmalloc_objs(*pages, num_pages, flags);
if (!pages)
return ERR_PTR(-ENOMEM);
for (i = 0; i < num_pages; i++) {
diff --git a/net/ceph/striper.c b/net/ceph/striper.c
index 3b3fa75d1189..2b8288858079 100644
--- a/net/ceph/striper.c
+++ b/net/ceph/striper.c
@@ -230,8 +230,8 @@ int ceph_extent_to_file(struct ceph_file_layout *l,
*num_file_extents = DIV_ROUND_UP_ULL(objoff + objlen, l->stripe_unit) -
DIV_ROUND_DOWN_ULL(objoff, l->stripe_unit);
- *file_extents = kmalloc_array(*num_file_extents, sizeof(**file_extents),
- GFP_NOIO);
+ *file_extents = kmalloc_objs(**file_extents, *num_file_extents,
+ GFP_NOIO);
if (!*file_extents)
return -ENOMEM;
diff --git a/net/core/bpf_sk_storage.c b/net/core/bpf_sk_storage.c
index 1eb3e060994e..8165d606bfd4 100644
--- a/net/core/bpf_sk_storage.c
+++ b/net/core/bpf_sk_storage.c
@@ -500,7 +500,7 @@ bpf_sk_storage_diag_alloc(const struct nlattr *nla_stgs)
nr_maps++;
}
- diag = kzalloc(struct_size(diag, maps, nr_maps), GFP_KERNEL);
+ diag = kzalloc_flex(*diag, maps, nr_maps, GFP_KERNEL);
if (!diag)
return ERR_PTR(-ENOMEM);
diff --git a/net/core/dev.c b/net/core/dev.c
index 096b3ff13f6b..525cf5952101 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -273,7 +273,7 @@ static struct netdev_name_node *netdev_name_node_alloc(struct net_device *dev,
{
struct netdev_name_node *name_node;
- name_node = kmalloc(sizeof(*name_node), GFP_KERNEL);
+ name_node = kmalloc_obj(*name_node, GFP_KERNEL);
if (!name_node)
return NULL;
INIT_HLIST_NODE(&name_node->hlist);
@@ -6510,8 +6510,7 @@ struct flush_backlogs {
static struct flush_backlogs *flush_backlogs_alloc(void)
{
- return kmalloc(struct_size_t(struct flush_backlogs, w, nr_cpu_ids),
- GFP_KERNEL);
+ return kmalloc_flex(struct flush_backlogs, w, nr_cpu_ids, GFP_KERNEL);
}
static struct flush_backlogs *flush_backlogs_fallback;
@@ -8694,7 +8693,7 @@ static int __netdev_adjacent_dev_insert(struct net_device *dev,
return 0;
}
- adj = kmalloc(sizeof(*adj), GFP_KERNEL);
+ adj = kmalloc_obj(*adj, GFP_KERNEL);
if (!adj)
return -ENOMEM;
@@ -9134,8 +9133,8 @@ static int netdev_offload_xstats_enable_l3(struct net_device *dev,
int err;
int rc;
- dev->offload_xstats_l3 = kzalloc(sizeof(*dev->offload_xstats_l3),
- GFP_KERNEL);
+ dev->offload_xstats_l3 = kzalloc_obj(*dev->offload_xstats_l3,
+ GFP_KERNEL);
if (!dev->offload_xstats_l3)
return -ENOMEM;
@@ -10660,7 +10659,7 @@ int bpf_xdp_link_attach(const union bpf_attr *attr, struct bpf_prog *prog)
return -EINVAL;
}
- link = kzalloc(sizeof(*link), GFP_USER);
+ link = kzalloc_obj(*link, GFP_USER);
if (!link) {
err = -ENOMEM;
goto unlock;
@@ -11941,7 +11940,7 @@ struct netdev_queue *dev_ingress_queue_create(struct net_device *dev)
#ifdef CONFIG_NET_CLS_ACT
if (queue)
return queue;
- queue = kzalloc(sizeof(*queue), GFP_KERNEL);
+ queue = kzalloc_obj(*queue, GFP_KERNEL);
if (!queue)
return NULL;
netdev_init_one_queue(dev, queue, NULL);
@@ -12016,8 +12015,8 @@ struct net_device *alloc_netdev_mqs(int sizeof_priv, const char *name,
maxqs = max(txqs, rxqs);
- dev = kvzalloc(struct_size(dev, priv, sizeof_priv),
- GFP_KERNEL_ACCOUNT | __GFP_RETRY_MAYFAIL);
+ dev = kvzalloc_flex(*dev, priv, sizeof_priv,
+ GFP_KERNEL_ACCOUNT | __GFP_RETRY_MAYFAIL);
if (!dev)
return NULL;
@@ -12088,11 +12087,11 @@ struct net_device *alloc_netdev_mqs(int sizeof_priv, const char *name,
dev->real_num_rx_queues = rxqs;
if (netif_alloc_rx_queues(dev))
goto free_all;
- dev->ethtool = kzalloc(sizeof(*dev->ethtool), GFP_KERNEL_ACCOUNT);
+ dev->ethtool = kzalloc_obj(*dev->ethtool, GFP_KERNEL_ACCOUNT);
if (!dev->ethtool)
goto free_all;
- dev->cfg = kzalloc(sizeof(*dev->cfg), GFP_KERNEL_ACCOUNT);
+ dev->cfg = kzalloc_obj(*dev->cfg, GFP_KERNEL_ACCOUNT);
if (!dev->cfg)
goto free_all;
dev->cfg_pending = dev->cfg;
@@ -12858,7 +12857,7 @@ static struct hlist_head * __net_init netdev_create_hash(void)
int i;
struct hlist_head *hash;
- hash = kmalloc_array(NETDEV_HASHENTRIES, sizeof(*hash), GFP_KERNEL);
+ hash = kmalloc_objs(*hash, NETDEV_HASHENTRIES, GFP_KERNEL);
if (hash != NULL)
for (i = 0; i < NETDEV_HASHENTRIES; i++)
INIT_HLIST_HEAD(&hash[i]);
diff --git a/net/core/devmem.c b/net/core/devmem.c
index 63f093f7d2b2..16a1949dbed1 100644
--- a/net/core/devmem.c
+++ b/net/core/devmem.c
@@ -241,9 +241,9 @@ net_devmem_bind_dmabuf(struct net_device *dev,
}
if (direction == DMA_TO_DEVICE) {
- binding->tx_vec = kvmalloc_array(dmabuf->size / PAGE_SIZE,
- sizeof(struct net_iov *),
- GFP_KERNEL);
+ binding->tx_vec = kvmalloc_objs(struct net_iov *,
+ dmabuf->size / PAGE_SIZE,
+ GFP_KERNEL);
if (!binding->tx_vec) {
err = -ENOMEM;
goto err_unmap;
@@ -289,9 +289,9 @@ net_devmem_bind_dmabuf(struct net_device *dev,
goto err_free_chunks;
}
- owner->area.niovs = kvmalloc_array(owner->area.num_niovs,
- sizeof(*owner->area.niovs),
- GFP_KERNEL);
+ owner->area.niovs = kvmalloc_objs(*owner->area.niovs,
+ owner->area.num_niovs,
+ GFP_KERNEL);
if (!owner->area.niovs) {
err = -ENOMEM;
goto err_free_chunks;
diff --git a/net/core/drop_monitor.c b/net/core/drop_monitor.c
index 60d31c2feed3..99f9d4dfb866 100644
--- a/net/core/drop_monitor.c
+++ b/net/core/drop_monitor.c
@@ -306,8 +306,8 @@ net_dm_hw_reset_per_cpu_data(struct per_cpu_dm_data *hw_data)
struct net_dm_hw_entries *hw_entries;
unsigned long flags;
- hw_entries = kzalloc(struct_size(hw_entries, entries, dm_hit_limit),
- GFP_KERNEL);
+ hw_entries = kzalloc_flex(*hw_entries, entries, dm_hit_limit,
+ GFP_KERNEL);
if (!hw_entries) {
/* If the memory allocation failed, we try to perform another
* allocation in 1/10 second. Otherwise, the probe function
@@ -856,7 +856,7 @@ net_dm_hw_metadata_copy(const struct devlink_trap_metadata *metadata)
const char *trap_group_name;
const char *trap_name;
- hw_metadata = kzalloc(sizeof(*hw_metadata), GFP_ATOMIC);
+ hw_metadata = kzalloc_obj(*hw_metadata, GFP_ATOMIC);
if (!hw_metadata)
return NULL;
@@ -1583,7 +1583,7 @@ static int dropmon_net_event(struct notifier_block *ev_block,
case NETDEV_REGISTER:
if (WARN_ON_ONCE(rtnl_dereference(dev->dm_private)))
break;
- stat = kzalloc(sizeof(*stat), GFP_KERNEL);
+ stat = kzalloc_obj(*stat, GFP_KERNEL);
if (!stat)
break;
diff --git a/net/core/dst.c b/net/core/dst.c
index 1dae26c51ebe..092861133023 100644
--- a/net/core/dst.c
+++ b/net/core/dst.c
@@ -191,7 +191,7 @@ EXPORT_SYMBOL(dst_release_immediate);
u32 *dst_cow_metrics_generic(struct dst_entry *dst, unsigned long old)
{
- struct dst_metrics *p = kmalloc(sizeof(*p), GFP_ATOMIC);
+ struct dst_metrics *p = kmalloc_obj(*p, GFP_ATOMIC);
if (p) {
struct dst_metrics *old_p = (struct dst_metrics *)__DST_METRICS_PTR(old);
@@ -295,8 +295,7 @@ struct metadata_dst *metadata_dst_alloc(u8 optslen, enum metadata_type type,
{
struct metadata_dst *md_dst;
- md_dst = kmalloc(struct_size(md_dst, u.tun_info.options, optslen),
- flags);
+ md_dst = kmalloc_flex(*md_dst, u.tun_info.options, optslen, flags);
if (!md_dst)
return NULL;
diff --git a/net/core/failover.c b/net/core/failover.c
index 2a140b3ea669..fcc04e6995d0 100644
--- a/net/core/failover.c
+++ b/net/core/failover.c
@@ -247,7 +247,7 @@ struct failover *failover_register(struct net_device *dev,
if (dev->type != ARPHRD_ETHER)
return ERR_PTR(-EINVAL);
- failover = kzalloc(sizeof(*failover), GFP_KERNEL);
+ failover = kzalloc_obj(*failover, GFP_KERNEL);
if (!failover)
return ERR_PTR(-ENOMEM);
diff --git a/net/core/filter.c b/net/core/filter.c
index ba019ded773d..6957d3449f2c 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -600,8 +600,7 @@ static int bpf_convert_filter(struct sock_filter *prog, int len,
if (new_prog) {
first_insn = new_prog->insnsi;
- addrs = kcalloc(len, sizeof(*addrs),
- GFP_KERNEL | __GFP_NOWARN);
+ addrs = kzalloc_objs(*addrs, len, GFP_KERNEL | __GFP_NOWARN);
if (!addrs)
return -ENOMEM;
}
@@ -1162,7 +1161,7 @@ static int bpf_prog_store_orig_filter(struct bpf_prog *fp,
unsigned int fsize = bpf_classic_proglen(fprog);
struct sock_fprog_kern *fkprog;
- fp->orig_prog = kmalloc(sizeof(*fkprog), GFP_KERNEL);
+ fp->orig_prog = kmalloc_obj(*fkprog, GFP_KERNEL);
if (!fp->orig_prog)
return -ENOMEM;
@@ -1482,7 +1481,7 @@ static int __sk_attach_prog(struct bpf_prog *prog, struct sock *sk)
{
struct sk_filter *fp, *old_fp;
- fp = kmalloc(sizeof(*fp), GFP_KERNEL);
+ fp = kmalloc_obj(*fp, GFP_KERNEL);
if (!fp)
return -ENOMEM;
diff --git a/net/core/flow_offload.c b/net/core/flow_offload.c
index bc5169482710..630f94e2c2c1 100644
--- a/net/core/flow_offload.c
+++ b/net/core/flow_offload.c
@@ -12,8 +12,7 @@ struct flow_rule *flow_rule_alloc(unsigned int num_actions)
struct flow_rule *rule;
int i;
- rule = kzalloc(struct_size(rule, action.entries, num_actions),
- GFP_KERNEL);
+ rule = kzalloc_flex(*rule, action.entries, num_actions, GFP_KERNEL);
if (!rule)
return NULL;
@@ -33,8 +32,8 @@ struct flow_offload_action *offload_action_alloc(unsigned int num_actions)
struct flow_offload_action *fl_action;
int i;
- fl_action = kzalloc(struct_size(fl_action, action.entries, num_actions),
- GFP_KERNEL);
+ fl_action = kzalloc_flex(*fl_action, action.entries, num_actions,
+ GFP_KERNEL);
if (!fl_action)
return NULL;
@@ -264,7 +263,7 @@ struct flow_block_cb *flow_block_cb_alloc(flow_setup_cb_t *cb,
{
struct flow_block_cb *block_cb;
- block_cb = kzalloc(sizeof(*block_cb), GFP_KERNEL);
+ block_cb = kzalloc_obj(*block_cb, GFP_KERNEL);
if (!block_cb)
return ERR_PTR(-ENOMEM);
@@ -391,7 +390,7 @@ static struct flow_indr_dev *flow_indr_dev_alloc(flow_indr_block_bind_cb_t *cb,
{
struct flow_indr_dev *indr_dev;
- indr_dev = kmalloc(sizeof(*indr_dev), GFP_KERNEL);
+ indr_dev = kmalloc_obj(*indr_dev, GFP_KERNEL);
if (!indr_dev)
return NULL;
@@ -571,7 +570,7 @@ static int indir_dev_add(void *data, struct net_device *dev, struct Qdisc *sch,
if (info)
return -EEXIST;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/net/core/gen_estimator.c b/net/core/gen_estimator.c
index f112156db587..64d0d55fa2b2 100644
--- a/net/core/gen_estimator.c
+++ b/net/core/gen_estimator.c
@@ -154,7 +154,7 @@ int gen_new_estimator(struct gnet_stats_basic_sync *bstats,
if (parm->ewma_log == 0 || parm->ewma_log >= 31)
return -EINVAL;
- est = kzalloc(sizeof(*est), GFP_KERNEL);
+ est = kzalloc_obj(*est, GFP_KERNEL);
if (!est)
return -ENOBUFS;
diff --git a/net/core/gro_cells.c b/net/core/gro_cells.c
index a725d21159a6..1b84385c04bd 100644
--- a/net/core/gro_cells.c
+++ b/net/core/gro_cells.c
@@ -132,7 +132,7 @@ void gro_cells_destroy(struct gro_cells *gcells)
* because we might be called from cleanup_net(), and we
* definitely do not want to block this critical task.
*/
- defer = kmalloc(sizeof(*defer), GFP_KERNEL | __GFP_NOWARN);
+ defer = kmalloc_obj(*defer, GFP_KERNEL | __GFP_NOWARN);
if (likely(defer)) {
defer->ptr = gcells->cells;
call_rcu(&defer->rcu, percpu_free_defer_callback);
diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index e0897eb41c8d..a95cfe77f7f0 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -562,7 +562,7 @@ static struct neigh_hash_table *neigh_hash_alloc(unsigned int shift)
struct neigh_hash_table *ret;
int i;
- ret = kmalloc(sizeof(*ret), GFP_ATOMIC);
+ ret = kmalloc_obj(*ret, GFP_ATOMIC);
if (!ret)
return NULL;
diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index aef44e617361..7a040a9233e7 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -492,7 +492,7 @@ static struct net *net_alloc(void)
goto out_free;
#ifdef CONFIG_KEYS
- net->key_domain = kzalloc(sizeof(struct key_tag), GFP_KERNEL);
+ net->key_domain = kzalloc_obj(struct key_tag, GFP_KERNEL);
if (!net->key_domain)
goto out_free_2;
refcount_set(&net->key_domain->usage, 1);
diff --git a/net/core/netclassid_cgroup.c b/net/core/netclassid_cgroup.c
index db9a5354f9de..9267880a0a17 100644
--- a/net/core/netclassid_cgroup.c
+++ b/net/core/netclassid_cgroup.c
@@ -32,7 +32,7 @@ cgrp_css_alloc(struct cgroup_subsys_state *parent_css)
{
struct cgroup_cls_state *cs;
- cs = kzalloc(sizeof(*cs), GFP_KERNEL);
+ cs = kzalloc_obj(*cs, GFP_KERNEL);
if (!cs)
return ERR_PTR(-ENOMEM);
diff --git a/net/core/netpoll.c b/net/core/netpoll.c
index 09f72f10813c..70e458893ea5 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -565,7 +565,7 @@ int __netpoll_setup(struct netpoll *np, struct net_device *ndev)
npinfo = rtnl_dereference(ndev->npinfo);
if (!npinfo) {
- npinfo = kmalloc(sizeof(*npinfo), GFP_KERNEL);
+ npinfo = kmalloc_obj(*npinfo, GFP_KERNEL);
if (!npinfo) {
err = -ENOMEM;
goto out;
diff --git a/net/core/netprio_cgroup.c b/net/core/netprio_cgroup.c
index 8456dfbe2eb4..fb3cd2886e1f 100644
--- a/net/core/netprio_cgroup.c
+++ b/net/core/netprio_cgroup.c
@@ -135,7 +135,7 @@ cgrp_css_alloc(struct cgroup_subsys_state *parent_css)
{
struct cgroup_subsys_state *css;
- css = kzalloc(sizeof(*css), GFP_KERNEL);
+ css = kzalloc_obj(*css, GFP_KERNEL);
if (!css)
return ERR_PTR(-ENOMEM);
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index b1ed55141d8a..da268fc45356 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -414,7 +414,7 @@ static int rtnl_register_internal(struct module *owner,
if (!link)
goto unlock;
} else {
- link = kzalloc(sizeof(*link), GFP_KERNEL);
+ link = kzalloc_obj(*link, GFP_KERNEL);
if (!link)
goto unlock;
}
@@ -3969,7 +3969,7 @@ static int rtnl_newlink(struct sk_buff *skb, struct nlmsghdr *nlh,
int ops_srcu_index;
int ret;
- tbs = kmalloc(sizeof(*tbs), GFP_KERNEL);
+ tbs = kmalloc_obj(*tbs, GFP_KERNEL);
if (!tbs)
return -ENOMEM;
diff --git a/net/core/scm.c b/net/core/scm.c
index cd87f66671aa..a29aa8fb8065 100644
--- a/net/core/scm.c
+++ b/net/core/scm.c
@@ -83,7 +83,7 @@ static int scm_fp_copy(struct cmsghdr *cmsg, struct scm_fp_list **fplp)
if (!fpl)
{
- fpl = kmalloc(sizeof(struct scm_fp_list), GFP_KERNEL_ACCOUNT);
+ fpl = kmalloc_obj(struct scm_fp_list, GFP_KERNEL_ACCOUNT);
if (!fpl)
return -ENOMEM;
*fplp = fpl;
diff --git a/net/core/selftests.c b/net/core/selftests.c
index 8b81feb82c4a..248112bd51a8 100644
--- a/net/core/selftests.c
+++ b/net/core/selftests.c
@@ -237,7 +237,7 @@ static int __net_test_loopback(struct net_device *ndev,
struct sk_buff *skb = NULL;
int ret = 0;
- tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL);
+ tpriv = kzalloc_obj(*tpriv, GFP_KERNEL);
if (!tpriv)
return -ENOMEM;
diff --git a/net/core/skmsg.c b/net/core/skmsg.c
index ddde93dd8bc6..2e26174c9919 100644
--- a/net/core/skmsg.c
+++ b/net/core/skmsg.c
@@ -522,7 +522,7 @@ static struct sk_msg *alloc_sk_msg(gfp_t gfp)
{
struct sk_msg *msg;
- msg = kzalloc(sizeof(*msg), gfp | __GFP_NOWARN);
+ msg = kzalloc_obj(*msg, gfp | __GFP_NOWARN);
if (unlikely(!msg))
return NULL;
sg_init_marker(msg->sg.data, NR_MSG_FRAG_IDS);
diff --git a/net/core/sock.c b/net/core/sock.c
index 693e6d80f501..b62e509e06d9 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -1097,7 +1097,7 @@ sock_devmem_dontneed(struct sock *sk, sockptr_t optval, unsigned int optlen)
return -EINVAL;
num_tokens = optlen / sizeof(*tokens);
- tokens = kvmalloc_array(num_tokens, sizeof(*tokens), GFP_KERNEL);
+ tokens = kvmalloc_objs(*tokens, num_tokens, GFP_KERNEL);
if (!tokens)
return -ENOMEM;
diff --git a/net/core/sock_diag.c b/net/core/sock_diag.c
index 026ce9bd9e5e..c83335c62360 100644
--- a/net/core/sock_diag.c
+++ b/net/core/sock_diag.c
@@ -177,7 +177,7 @@ void sock_diag_broadcast_destroy(struct sock *sk)
{
/* Note, this function is often called from an interrupt context. */
struct broadcast_sk *bsk =
- kmalloc(sizeof(struct broadcast_sk), GFP_ATOMIC);
+ kmalloc_obj(struct broadcast_sk, GFP_ATOMIC);
if (!bsk)
return sk_destruct(sk);
bsk->sk = sk;
diff --git a/net/core/sock_map.c b/net/core/sock_map.c
index 5947b38e4f8b..b0e96337a269 100644
--- a/net/core/sock_map.c
+++ b/net/core/sock_map.c
@@ -1858,7 +1858,7 @@ int sock_map_link_create(const union bpf_attr *attr, struct bpf_prog *prog)
goto out;
}
- sockmap_link = kzalloc(sizeof(*sockmap_link), GFP_USER);
+ sockmap_link = kzalloc_obj(*sockmap_link, GFP_USER);
if (!sockmap_link) {
ret = -ENOMEM;
goto out;
diff --git a/net/core/sock_reuseport.c b/net/core/sock_reuseport.c
index 4211710393a8..29948cb44b7d 100644
--- a/net/core/sock_reuseport.c
+++ b/net/core/sock_reuseport.c
@@ -175,7 +175,7 @@ static struct sock_reuseport *__reuseport_alloc(unsigned int max_socks)
{
struct sock_reuseport *reuse;
- reuse = kzalloc(struct_size(reuse, socks, max_socks), GFP_ATOMIC);
+ reuse = kzalloc_flex(*reuse, socks, max_socks, GFP_ATOMIC);
if (!reuse)
return NULL;
diff --git a/net/core/xdp.c b/net/core/xdp.c
index fee6d080ee85..8c65d7dafd89 100644
--- a/net/core/xdp.c
+++ b/net/core/xdp.c
@@ -214,7 +214,7 @@ static int __mem_id_init_hash_table(void)
if (unlikely(mem_id_init))
return 0;
- rht = kzalloc(sizeof(*rht), GFP_KERNEL);
+ rht = kzalloc_obj(*rht, GFP_KERNEL);
if (!rht)
return -ENOMEM;
@@ -297,7 +297,7 @@ static struct xdp_mem_allocator *__xdp_reg_mem_model(struct xdp_mem_info *mem,
return ERR_PTR(ret);
}
- xdp_alloc = kzalloc(sizeof(*xdp_alloc), gfp);
+ xdp_alloc = kzalloc_obj(*xdp_alloc, gfp);
if (!xdp_alloc)
return ERR_PTR(-ENOMEM);
diff --git a/net/dcb/dcbnl.c b/net/dcb/dcbnl.c
index 03eb1d941fca..ff2198133213 100644
--- a/net/dcb/dcbnl.c
+++ b/net/dcb/dcbnl.c
@@ -1021,8 +1021,7 @@ static int dcbnl_build_peer_app(struct net_device *netdev, struct sk_buff* skb,
*/
err = ops->peer_getappinfo(netdev, &info, &app_count);
if (!err && app_count) {
- table = kmalloc_array(app_count, sizeof(struct dcb_app),
- GFP_KERNEL);
+ table = kmalloc_objs(struct dcb_app, app_count, GFP_KERNEL);
if (!table)
return -ENOMEM;
@@ -2004,7 +2003,7 @@ static int dcb_app_add(struct list_head *list, const struct dcb_app *app,
{
struct dcb_app_type *entry;
- entry = kmalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kmalloc_obj(*entry, GFP_ATOMIC);
if (!entry)
return -ENOMEM;
diff --git a/net/devlink/core.c b/net/devlink/core.c
index da56e2b8afc1..44584f3613ca 100644
--- a/net/devlink/core.c
+++ b/net/devlink/core.c
@@ -111,7 +111,7 @@ static struct devlink_rel *devlink_rel_alloc(void)
static u32 next;
int err;
- rel = kzalloc(sizeof(*rel), GFP_KERNEL);
+ rel = kzalloc_obj(*rel, GFP_KERNEL);
if (!rel)
return ERR_PTR(-ENOMEM);
@@ -418,7 +418,7 @@ struct devlink *devlink_alloc_ns(const struct devlink_ops *ops,
if (!devlink_reload_actions_valid(ops))
return NULL;
- devlink = kvzalloc(struct_size(devlink, priv, priv_size), GFP_KERNEL);
+ devlink = kvzalloc_flex(*devlink, priv, priv_size, GFP_KERNEL);
if (!devlink)
return NULL;
diff --git a/net/devlink/dpipe.c b/net/devlink/dpipe.c
index e55701b007f0..3b86dc25e7f2 100644
--- a/net/devlink/dpipe.c
+++ b/net/devlink/dpipe.c
@@ -851,7 +851,7 @@ int devl_dpipe_table_register(struct devlink *devlink,
devlink))
return -EEXIST;
- table = kzalloc(sizeof(*table), GFP_KERNEL);
+ table = kzalloc_obj(*table, GFP_KERNEL);
if (!table)
return -ENOMEM;
diff --git a/net/devlink/health.c b/net/devlink/health.c
index 136a67c36a20..0578f7b460f5 100644
--- a/net/devlink/health.c
+++ b/net/devlink/health.c
@@ -32,7 +32,7 @@ static struct devlink_fmsg *devlink_fmsg_alloc(void)
{
struct devlink_fmsg *fmsg;
- fmsg = kzalloc(sizeof(*fmsg), GFP_KERNEL);
+ fmsg = kzalloc_obj(*fmsg, GFP_KERNEL);
if (!fmsg)
return NULL;
@@ -119,7 +119,7 @@ __devlink_health_reporter_create(struct devlink *devlink,
if (WARN_ON(ops->default_burst_period && !ops->default_graceful_period))
return ERR_PTR(-EINVAL);
- reporter = kzalloc(sizeof(*reporter), GFP_KERNEL);
+ reporter = kzalloc_obj(*reporter, GFP_KERNEL);
if (!reporter)
return ERR_PTR(-ENOMEM);
@@ -738,7 +738,7 @@ static void devlink_fmsg_nest_common(struct devlink_fmsg *fmsg, int attrtype)
if (fmsg->err)
return;
- item = kzalloc(sizeof(*item), GFP_KERNEL);
+ item = kzalloc_obj(*item, GFP_KERNEL);
if (!item) {
fmsg->err = -ENOMEM;
return;
diff --git a/net/devlink/linecard.c b/net/devlink/linecard.c
index 67f70a621d27..110f1347b9c6 100644
--- a/net/devlink/linecard.c
+++ b/net/devlink/linecard.c
@@ -404,8 +404,7 @@ static int devlink_linecard_types_init(struct devlink_linecard *linecard)
int i;
count = linecard->ops->types_count(linecard, linecard->priv);
- linecard->types = kmalloc_array(count, sizeof(*linecard_type),
- GFP_KERNEL);
+ linecard->types = kmalloc_objs(*linecard_type, count, GFP_KERNEL);
if (!linecard->types)
return -ENOMEM;
linecard->types_count = count;
@@ -451,7 +450,7 @@ devl_linecard_create(struct devlink *devlink, unsigned int linecard_index,
if (devlink_linecard_index_exists(devlink, linecard_index))
return ERR_PTR(-EEXIST);
- linecard = kzalloc(sizeof(*linecard), GFP_KERNEL);
+ linecard = kzalloc_obj(*linecard, GFP_KERNEL);
if (!linecard)
return ERR_PTR(-ENOMEM);
diff --git a/net/devlink/param.c b/net/devlink/param.c
index e0ea93eded43..74adb0fdb5f7 100644
--- a/net/devlink/param.c
+++ b/net/devlink/param.c
@@ -718,7 +718,7 @@ static int devlink_param_register(struct devlink *devlink,
else
WARN_ON(!param->get || !param->set);
- param_item = kzalloc(sizeof(*param_item), GFP_KERNEL);
+ param_item = kzalloc_obj(*param_item, GFP_KERNEL);
if (!param_item)
return -ENOMEM;
diff --git a/net/devlink/rate.c b/net/devlink/rate.c
index 0d68b5c477dc..8d8a688ad140 100644
--- a/net/devlink/rate.c
+++ b/net/devlink/rate.c
@@ -627,7 +627,7 @@ int devlink_nl_rate_new_doit(struct sk_buff *skb, struct genl_info *info)
else if (rate_node == ERR_PTR(-EINVAL))
return -EINVAL;
- rate_node = kzalloc(sizeof(*rate_node), GFP_KERNEL);
+ rate_node = kzalloc_obj(*rate_node, GFP_KERNEL);
if (!rate_node)
return -ENOMEM;
@@ -721,7 +721,7 @@ devl_rate_node_create(struct devlink *devlink, void *priv, char *node_name,
if (!IS_ERR(rate_node))
return ERR_PTR(-EEXIST);
- rate_node = kzalloc(sizeof(*rate_node), GFP_KERNEL);
+ rate_node = kzalloc_obj(*rate_node, GFP_KERNEL);
if (!rate_node)
return ERR_PTR(-ENOMEM);
@@ -766,7 +766,7 @@ int devl_rate_leaf_create(struct devlink_port *devlink_port, void *priv,
if (WARN_ON(devlink_port->devlink_rate))
return -EBUSY;
- devlink_rate = kzalloc(sizeof(*devlink_rate), GFP_KERNEL);
+ devlink_rate = kzalloc_obj(*devlink_rate, GFP_KERNEL);
if (!devlink_rate)
return -ENOMEM;
diff --git a/net/devlink/region.c b/net/devlink/region.c
index d6e5805cf3a0..654e3766710f 100644
--- a/net/devlink/region.c
+++ b/net/devlink/region.c
@@ -428,7 +428,7 @@ __devlink_region_snapshot_create(struct devlink_region *region,
if (devlink_region_snapshot_get_by_id(region, snapshot_id))
return -EEXIST;
- snapshot = kzalloc(sizeof(*snapshot), GFP_KERNEL);
+ snapshot = kzalloc_obj(*snapshot, GFP_KERNEL);
if (!snapshot)
return -ENOMEM;
@@ -1055,7 +1055,7 @@ struct devlink_region *devl_region_create(struct devlink *devlink,
if (devlink_region_get_by_name(devlink, ops->name))
return ERR_PTR(-EEXIST);
- region = kzalloc(sizeof(*region), GFP_KERNEL);
+ region = kzalloc_obj(*region, GFP_KERNEL);
if (!region)
return ERR_PTR(-ENOMEM);
@@ -1128,7 +1128,7 @@ devlink_port_region_create(struct devlink_port *port,
goto unlock;
}
- region = kzalloc(sizeof(*region), GFP_KERNEL);
+ region = kzalloc_obj(*region, GFP_KERNEL);
if (!region) {
err = -ENOMEM;
goto unlock;
diff --git a/net/devlink/resource.c b/net/devlink/resource.c
index 2d6324f3d91f..aa3621c28a00 100644
--- a/net/devlink/resource.c
+++ b/net/devlink/resource.c
@@ -347,7 +347,7 @@ int devl_resource_register(struct devlink *devlink,
if (resource)
return -EEXIST;
- resource = kzalloc(sizeof(*resource), GFP_KERNEL);
+ resource = kzalloc_obj(*resource, GFP_KERNEL);
if (!resource)
return -ENOMEM;
diff --git a/net/devlink/sb.c b/net/devlink/sb.c
index 0a76bb32502b..bcfeed079433 100644
--- a/net/devlink/sb.c
+++ b/net/devlink/sb.c
@@ -943,7 +943,7 @@ int devl_sb_register(struct devlink *devlink, unsigned int sb_index,
if (devlink_sb_index_exists(devlink, sb_index))
return -EEXIST;
- devlink_sb = kzalloc(sizeof(*devlink_sb), GFP_KERNEL);
+ devlink_sb = kzalloc_obj(*devlink_sb, GFP_KERNEL);
if (!devlink_sb)
return -ENOMEM;
devlink_sb->index = sb_index;
diff --git a/net/devlink/trap.c b/net/devlink/trap.c
index f36087f90db5..e4255c0a6a30 100644
--- a/net/devlink/trap.c
+++ b/net/devlink/trap.c
@@ -1271,7 +1271,7 @@ devlink_trap_register(struct devlink *devlink,
if (devlink_trap_item_lookup(devlink, trap->name))
return -EEXIST;
- trap_item = kzalloc(sizeof(*trap_item), GFP_KERNEL);
+ trap_item = kzalloc_obj(*trap_item, GFP_KERNEL);
if (!trap_item)
return -ENOMEM;
@@ -1545,7 +1545,7 @@ devlink_trap_group_register(struct devlink *devlink,
if (devlink_trap_group_item_lookup(devlink, group->name))
return -EEXIST;
- group_item = kzalloc(sizeof(*group_item), GFP_KERNEL);
+ group_item = kzalloc_obj(*group_item, GFP_KERNEL);
if (!group_item)
return -ENOMEM;
@@ -1751,7 +1751,7 @@ devlink_trap_policer_register(struct devlink *devlink,
if (devlink_trap_policer_item_lookup(devlink, policer->id))
return -EEXIST;
- policer_item = kzalloc(sizeof(*policer_item), GFP_KERNEL);
+ policer_item = kzalloc_obj(*policer_item, GFP_KERNEL);
if (!policer_item)
return -ENOMEM;
diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c
index 35ce3941fae3..b0ae980ca684 100644
--- a/net/dsa/dsa.c
+++ b/net/dsa/dsa.c
@@ -213,7 +213,7 @@ static struct dsa_switch_tree *dsa_tree_alloc(int index)
{
struct dsa_switch_tree *dst;
- dst = kzalloc(sizeof(*dst), GFP_KERNEL);
+ dst = kzalloc_obj(*dst, GFP_KERNEL);
if (!dst)
return NULL;
@@ -298,7 +298,7 @@ static struct dsa_link *dsa_link_touch(struct dsa_port *dp,
if (dl->dp == dp && dl->link_dp == link_dp)
return dl;
- dl = kzalloc(sizeof(*dl), GFP_KERNEL);
+ dl = kzalloc_obj(*dl, GFP_KERNEL);
if (!dl)
return NULL;
@@ -844,7 +844,7 @@ static int dsa_tree_setup_lags(struct dsa_switch_tree *dst)
if (!len)
return 0;
- dst->lags = kcalloc(len, sizeof(*dst->lags), GFP_KERNEL);
+ dst->lags = kzalloc_objs(*dst->lags, len, GFP_KERNEL);
if (!dst->lags)
return -ENOMEM;
@@ -1092,7 +1092,7 @@ static struct dsa_port *dsa_port_touch(struct dsa_switch *ds, int index)
if (dp->index == index)
return dp;
- dp = kzalloc(sizeof(*dp), GFP_KERNEL);
+ dp = kzalloc_obj(*dp, GFP_KERNEL);
if (!dp)
return NULL;
diff --git a/net/dsa/port.c b/net/dsa/port.c
index ca3a7f52229b..4da911edc512 100644
--- a/net/dsa/port.c
+++ b/net/dsa/port.c
@@ -431,7 +431,7 @@ static int dsa_port_bridge_create(struct dsa_port *dp,
return 0;
}
- bridge = kzalloc(sizeof(*bridge), GFP_KERNEL);
+ bridge = kzalloc_obj(*bridge, GFP_KERNEL);
if (!bridge)
return -ENOMEM;
@@ -617,7 +617,7 @@ static int dsa_port_lag_create(struct dsa_port *dp,
return 0;
}
- lag = kzalloc(sizeof(*lag), GFP_KERNEL);
+ lag = kzalloc_obj(*lag, GFP_KERNEL);
if (!lag)
return -ENOMEM;
diff --git a/net/dsa/switch.c b/net/dsa/switch.c
index 3d2feeea897b..e00997977c93 100644
--- a/net/dsa/switch.c
+++ b/net/dsa/switch.c
@@ -182,7 +182,7 @@ static int dsa_port_do_mdb_add(struct dsa_port *dp,
goto out;
}
- a = kzalloc(sizeof(*a), GFP_KERNEL);
+ a = kzalloc_obj(*a, GFP_KERNEL);
if (!a) {
err = -ENOMEM;
goto out;
@@ -280,7 +280,7 @@ static int dsa_port_do_fdb_add(struct dsa_port *dp, const unsigned char *addr,
goto out;
}
- a = kzalloc(sizeof(*a), GFP_KERNEL);
+ a = kzalloc_obj(*a, GFP_KERNEL);
if (!a) {
err = -ENOMEM;
goto out;
@@ -368,7 +368,7 @@ static int dsa_switch_do_lag_fdb_add(struct dsa_switch *ds, struct dsa_lag *lag,
goto out;
}
- a = kzalloc(sizeof(*a), GFP_KERNEL);
+ a = kzalloc_obj(*a, GFP_KERNEL);
if (!a) {
err = -ENOMEM;
goto out;
@@ -719,7 +719,7 @@ static int dsa_port_do_vlan_add(struct dsa_port *dp,
goto out;
}
- v = kzalloc(sizeof(*v), GFP_KERNEL);
+ v = kzalloc_obj(*v, GFP_KERNEL);
if (!v) {
err = -ENOMEM;
goto out;
diff --git a/net/dsa/tag_8021q.c b/net/dsa/tag_8021q.c
index 53e03fd8071b..c9bea6808da3 100644
--- a/net/dsa/tag_8021q.c
+++ b/net/dsa/tag_8021q.c
@@ -158,7 +158,7 @@ static int dsa_port_do_tag_8021q_vlan_add(struct dsa_port *dp, u16 vid,
return 0;
}
- v = kzalloc(sizeof(*v), GFP_KERNEL);
+ v = kzalloc_obj(*v, GFP_KERNEL);
if (!v)
return -ENOMEM;
@@ -420,7 +420,7 @@ int dsa_tag_8021q_register(struct dsa_switch *ds, __be16 proto)
struct dsa_8021q_context *ctx;
int err;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/net/dsa/tag_ksz.c b/net/dsa/tag_ksz.c
index 9170a0148cc4..15aa44478807 100644
--- a/net/dsa/tag_ksz.c
+++ b/net/dsa/tag_ksz.c
@@ -62,7 +62,7 @@ static int ksz_connect(struct dsa_switch *ds)
struct ksz_tagger_private *priv;
int ret;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
@@ -258,7 +258,7 @@ static struct sk_buff *ksz_defer_xmit(struct dsa_port *dp, struct sk_buff *skb)
if (!xmit_work_fn || !xmit_worker)
return NULL;
- xmit_work = kzalloc(sizeof(*xmit_work), GFP_ATOMIC);
+ xmit_work = kzalloc_obj(*xmit_work, GFP_ATOMIC);
if (!xmit_work)
return NULL;
diff --git a/net/dsa/tag_ocelot_8021q.c b/net/dsa/tag_ocelot_8021q.c
index 3929584791e4..b9bf2895309a 100644
--- a/net/dsa/tag_ocelot_8021q.c
+++ b/net/dsa/tag_ocelot_8021q.c
@@ -43,7 +43,7 @@ static struct sk_buff *ocelot_defer_xmit(struct dsa_port *dp,
if (skb->ip_summed == CHECKSUM_PARTIAL && skb_checksum_help(skb))
return NULL;
- xmit_work = kzalloc(sizeof(*xmit_work), GFP_ATOMIC);
+ xmit_work = kzalloc_obj(*xmit_work, GFP_ATOMIC);
if (!xmit_work)
return NULL;
@@ -106,7 +106,7 @@ static int ocelot_connect(struct dsa_switch *ds)
struct ocelot_8021q_tagger_private *priv;
int err;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/net/dsa/tag_qca.c b/net/dsa/tag_qca.c
index 6d56a28c914c..4326487c1f29 100644
--- a/net/dsa/tag_qca.c
+++ b/net/dsa/tag_qca.c
@@ -92,7 +92,7 @@ static int qca_tag_connect(struct dsa_switch *ds)
{
struct qca_tagger_data *tagger_data;
- tagger_data = kzalloc(sizeof(*tagger_data), GFP_KERNEL);
+ tagger_data = kzalloc_obj(*tagger_data, GFP_KERNEL);
if (!tagger_data)
return -ENOMEM;
diff --git a/net/dsa/tag_sja1105.c b/net/dsa/tag_sja1105.c
index 02adec693811..2083ef3b4b90 100644
--- a/net/dsa/tag_sja1105.c
+++ b/net/dsa/tag_sja1105.c
@@ -152,7 +152,7 @@ static struct sk_buff *sja1105_defer_xmit(struct dsa_port *dp,
if (!xmit_work_fn || !xmit_worker)
return NULL;
- xmit_work = kzalloc(sizeof(*xmit_work), GFP_ATOMIC);
+ xmit_work = kzalloc_obj(*xmit_work, GFP_ATOMIC);
if (!xmit_work)
return NULL;
@@ -701,7 +701,7 @@ static int sja1105_connect(struct dsa_switch *ds)
struct kthread_worker *xmit_worker;
int err;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/net/dsa/user.c b/net/dsa/user.c
index 5697291d43cf..5df8cb69295d 100644
--- a/net/dsa/user.c
+++ b/net/dsa/user.c
@@ -147,7 +147,7 @@ static int dsa_user_schedule_standalone_work(struct net_device *dev,
{
struct dsa_standalone_event_work *standalone_work;
- standalone_work = kzalloc(sizeof(*standalone_work), GFP_ATOMIC);
+ standalone_work = kzalloc_obj(*standalone_work, GFP_ATOMIC);
if (!standalone_work)
return -ENOMEM;
@@ -1318,7 +1318,7 @@ static int dsa_user_netpoll_setup(struct net_device *dev)
struct netpoll *netpoll;
int err = 0;
- netpoll = kzalloc(sizeof(*netpoll), GFP_KERNEL);
+ netpoll = kzalloc_obj(*netpoll, GFP_KERNEL);
if (!netpoll)
return -ENOMEM;
@@ -1430,7 +1430,7 @@ dsa_user_add_cls_matchall_mirred(struct net_device *dev,
return -EOPNOTSUPP;
}
- mall_tc_entry = kzalloc(sizeof(*mall_tc_entry), GFP_KERNEL);
+ mall_tc_entry = kzalloc_obj(*mall_tc_entry, GFP_KERNEL);
if (!mall_tc_entry)
return -ENOMEM;
@@ -1490,7 +1490,7 @@ dsa_user_add_cls_matchall_police(struct net_device *dev,
act = &cls->rule->action.entries[0];
- mall_tc_entry = kzalloc(sizeof(*mall_tc_entry), GFP_KERNEL);
+ mall_tc_entry = kzalloc_obj(*mall_tc_entry, GFP_KERNEL);
if (!mall_tc_entry)
return -ENOMEM;
@@ -1823,7 +1823,7 @@ static int dsa_user_vlan_rx_add_vid(struct net_device *dev, __be16 proto,
!dsa_switch_supports_mc_filtering(ds))
return 0;
- v = kzalloc(sizeof(*v), GFP_KERNEL);
+ v = kzalloc_obj(*v, GFP_KERNEL);
if (!v) {
ret = -ENOMEM;
goto rollback;
@@ -2070,7 +2070,7 @@ static void dsa_bridge_mtu_normalization(struct dsa_port *dp)
if (min_mtu > user->mtu)
min_mtu = user->mtu;
- hw_port = kzalloc(sizeof(*hw_port), GFP_KERNEL);
+ hw_port = kzalloc_obj(*hw_port, GFP_KERNEL);
if (!hw_port)
goto out;
@@ -3738,7 +3738,7 @@ static int dsa_user_fdb_event(struct net_device *dev,
return -EOPNOTSUPP;
}
- switchdev_work = kzalloc(sizeof(*switchdev_work), GFP_ATOMIC);
+ switchdev_work = kzalloc_obj(*switchdev_work, GFP_ATOMIC);
if (!switchdev_work)
return -ENOMEM;
diff --git a/net/ethtool/cmis_cdb.c b/net/ethtool/cmis_cdb.c
index 3057576bc81e..674439bedd49 100644
--- a/net/ethtool/cmis_cdb.c
+++ b/net/ethtool/cmis_cdb.c
@@ -276,7 +276,7 @@ ethtool_cmis_cdb_init(struct net_device *dev,
struct ethtool_cmis_cdb *cdb;
int err;
- cdb = kzalloc(sizeof(*cdb), GFP_KERNEL);
+ cdb = kzalloc_obj(*cdb, GFP_KERNEL);
if (!cdb)
return ERR_PTR(-ENOMEM);
diff --git a/net/ethtool/common.c b/net/ethtool/common.c
index 5fae329795c8..7a302a93f52c 100644
--- a/net/ethtool/common.c
+++ b/net/ethtool/common.c
@@ -687,7 +687,7 @@ static int ethtool_get_max_rxnfc_channel(struct net_device *dev, u64 *max)
if (rule_cnt <= 0)
return -EINVAL;
- info = kvzalloc(struct_size(info, rule_locs, rule_cnt), GFP_KERNEL);
+ info = kvzalloc_flex(*info, rule_locs, rule_cnt, GFP_KERNEL);
if (!info)
return -ENOMEM;
@@ -770,7 +770,7 @@ static u32 ethtool_get_max_rxfh_channel(struct net_device *dev)
if (dev_size == 0)
return current_max;
- rxfh.indir = kcalloc(dev_size, sizeof(rxfh.indir[0]), GFP_USER);
+ rxfh.indir = kzalloc_objs(rxfh.indir[0], dev_size, GFP_USER);
if (!rxfh.indir)
return U32_MAX;
@@ -841,7 +841,7 @@ int ethtool_check_rss_ctx_busy(struct net_device *dev, u32 rss_context)
if (rule_cnt < 0)
return -EINVAL;
- info = kvzalloc(struct_size(info, rule_locs, rule_cnt), GFP_KERNEL);
+ info = kvzalloc_flex(*info, rule_locs, rule_cnt, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c
index 9431e305b233..b4e7c6ccf9f3 100644
--- a/net/ethtool/ioctl.c
+++ b/net/ethtool/ioctl.c
@@ -3040,7 +3040,7 @@ ethtool_set_per_queue_coalesce(struct net_device *dev,
bitmap_from_arr32(queue_mask, per_queue_opt->queue_mask, MAX_NUM_QUEUE);
n_queue = bitmap_weight(queue_mask, MAX_NUM_QUEUE);
- tmp = backup = kmalloc_array(n_queue, sizeof(*backup), GFP_KERNEL);
+ tmp = backup = kmalloc_objs(*backup, n_queue, GFP_KERNEL);
if (!backup)
return -ENOMEM;
@@ -3554,7 +3554,7 @@ int dev_ethtool(struct net *net, struct ifreq *ifr, void __user *useraddr)
if (copy_from_user(ðcmd, useraddr, sizeof(ethcmd)))
return -EFAULT;
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state)
return -ENOMEM;
diff --git a/net/ethtool/module.c b/net/ethtool/module.c
index 4d4e0a82579a..d033a20aa48c 100644
--- a/net/ethtool/module.c
+++ b/net/ethtool/module.c
@@ -301,7 +301,7 @@ module_flash_fw_schedule(struct net_device *dev, const char *file_name,
struct ethtool_module_fw_flash *module_fw;
int err;
- module_fw = kzalloc(sizeof(*module_fw), GFP_KERNEL);
+ module_fw = kzalloc_obj(*module_fw, GFP_KERNEL);
if (!module_fw)
return -ENOMEM;
diff --git a/net/ethtool/mse.c b/net/ethtool/mse.c
index 6aac004c3ffc..4de15aad543b 100644
--- a/net/ethtool/mse.c
+++ b/net/ethtool/mse.c
@@ -64,8 +64,8 @@ static int mse_get_channels(struct phy_device *phydev,
if (!data->capability.supported_caps)
return 0;
- data->snapshots = kcalloc(PHY_MSE_CHANNEL_COUNT,
- sizeof(*data->snapshots), GFP_KERNEL);
+ data->snapshots = kzalloc_objs(*data->snapshots, PHY_MSE_CHANNEL_COUNT,
+ GFP_KERNEL);
if (!data->snapshots)
return -ENOMEM;
diff --git a/net/ethtool/tsconfig.c b/net/ethtool/tsconfig.c
index 169b413b31fc..acd0477b3a2d 100644
--- a/net/ethtool/tsconfig.c
+++ b/net/ethtool/tsconfig.c
@@ -202,10 +202,10 @@ static int tsconfig_send_reply(struct net_device *dev, struct genl_info *info)
int reply_len = 0;
int ret;
- req_info = kzalloc(sizeof(*req_info), GFP_KERNEL);
+ req_info = kzalloc_obj(*req_info, GFP_KERNEL);
if (!req_info)
return -ENOMEM;
- reply_data = kmalloc(sizeof(*reply_data), GFP_KERNEL);
+ reply_data = kmalloc_obj(*reply_data, GFP_KERNEL);
if (!reply_data) {
kfree(req_info);
return -ENOMEM;
@@ -280,7 +280,7 @@ tsconfig_set_hwprov_from_desc(struct net_device *dev,
source = HWTSTAMP_SOURCE_PHYLIB;
}
- hwprov = kzalloc(sizeof(*hwprov), GFP_KERNEL);
+ hwprov = kzalloc_obj(*hwprov, GFP_KERNEL);
if (!hwprov)
return ERR_PTR(-ENOMEM);
diff --git a/net/ethtool/tsinfo.c b/net/ethtool/tsinfo.c
index 8c654caa6805..df9c7de9a640 100644
--- a/net/ethtool/tsinfo.c
+++ b/net/ethtool/tsinfo.c
@@ -505,10 +505,10 @@ int ethnl_tsinfo_start(struct netlink_callback *cb)
BUILD_BUG_ON(sizeof(*ctx) > sizeof(cb->ctx));
- req_info = kzalloc(sizeof(*req_info), GFP_KERNEL);
+ req_info = kzalloc_obj(*req_info, GFP_KERNEL);
if (!req_info)
return -ENOMEM;
- reply_data = kzalloc(sizeof(*reply_data), GFP_KERNEL);
+ reply_data = kzalloc_obj(*reply_data, GFP_KERNEL);
if (!reply_data) {
ret = -ENOMEM;
goto free_req_info;
diff --git a/net/handshake/request.c b/net/handshake/request.c
index 6b7e3e0bf399..2829adbeb149 100644
--- a/net/handshake/request.c
+++ b/net/handshake/request.c
@@ -119,7 +119,7 @@ struct handshake_req *handshake_req_alloc(const struct handshake_proto *proto,
if (!proto->hp_accept || !proto->hp_done)
return NULL;
- req = kzalloc(struct_size(req, hr_priv, proto->hp_privsize), flags);
+ req = kzalloc_flex(*req, hr_priv, proto->hp_privsize, flags);
if (!req)
return NULL;
diff --git a/net/hsr/hsr_framereg.c b/net/hsr/hsr_framereg.c
index 7d87f304ded4..d5a742cb77d1 100644
--- a/net/hsr/hsr_framereg.c
+++ b/net/hsr/hsr_framereg.c
@@ -80,7 +80,7 @@ int hsr_create_self_node(struct hsr_priv *hsr,
{
struct hsr_self_node *sn, *old;
- sn = kmalloc(sizeof(*sn), GFP_KERNEL);
+ sn = kmalloc_obj(*sn, GFP_KERNEL);
if (!sn)
return -ENOMEM;
@@ -159,7 +159,7 @@ static struct hsr_node *hsr_add_node(struct hsr_priv *hsr,
size_t block_sz;
int i;
- new_node = kzalloc(sizeof(*new_node), GFP_ATOMIC);
+ new_node = kzalloc_obj(*new_node, GFP_ATOMIC);
if (!new_node)
return NULL;
diff --git a/net/hsr/hsr_slave.c b/net/hsr/hsr_slave.c
index afe06ba00ea4..9a3f3add4b47 100644
--- a/net/hsr/hsr_slave.c
+++ b/net/hsr/hsr_slave.c
@@ -198,7 +198,7 @@ int hsr_add_port(struct hsr_priv *hsr, struct net_device *dev,
if (port)
return -EBUSY; /* This port already exists */
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return -ENOMEM;
diff --git a/net/ieee802154/nl802154.c b/net/ieee802154/nl802154.c
index 5a024ca60d35..f743d1568f3f 100644
--- a/net/ieee802154/nl802154.c
+++ b/net/ieee802154/nl802154.c
@@ -603,7 +603,7 @@ nl802154_dump_wpan_phy(struct sk_buff *skb, struct netlink_callback *cb)
rtnl_lock();
if (!state) {
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state) {
rtnl_unlock();
return -ENOMEM;
@@ -1418,7 +1418,7 @@ static int nl802154_trigger_scan(struct sk_buff *skb, struct genl_info *info)
return -EOPNOTSUPP;
}
- request = kzalloc(sizeof(*request), GFP_KERNEL);
+ request = kzalloc_obj(*request, GFP_KERNEL);
if (!request)
return -ENOMEM;
@@ -1586,7 +1586,7 @@ nl802154_send_beacons(struct sk_buff *skb, struct genl_info *info)
return -EOPNOTSUPP;
}
- request = kzalloc(sizeof(*request), GFP_KERNEL);
+ request = kzalloc_obj(*request, GFP_KERNEL);
if (!request)
return -ENOMEM;
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index 08d811f11896..6e62e80236a4 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -1737,8 +1737,8 @@ static __net_init int ipv4_mib_init_net(struct net *net)
net->mib.icmp_statistics = alloc_percpu(struct icmp_mib);
if (!net->mib.icmp_statistics)
goto err_icmp_mib;
- net->mib.icmpmsg_statistics = kzalloc(sizeof(struct icmpmsg_mib),
- GFP_KERNEL);
+ net->mib.icmpmsg_statistics = kzalloc_obj(struct icmpmsg_mib,
+ GFP_KERNEL);
if (!net->mib.icmpmsg_statistics)
goto err_icmpmsg_mib;
diff --git a/net/ipv4/ah4.c b/net/ipv4/ah4.c
index 64aec3dff8ec..f4a207c7cfc6 100644
--- a/net/ipv4/ah4.c
+++ b/net/ipv4/ah4.c
@@ -484,7 +484,7 @@ static int ah_init_state(struct xfrm_state *x, struct netlink_ext_ack *extack)
goto error;
}
- ahp = kzalloc(sizeof(*ahp), GFP_KERNEL);
+ ahp = kzalloc_obj(*ahp, GFP_KERNEL);
if (!ahp)
return -ENOMEM;
diff --git a/net/ipv4/cipso_ipv4.c b/net/ipv4/cipso_ipv4.c
index 32b951ebc0c2..3fb181a3f3c0 100644
--- a/net/ipv4/cipso_ipv4.c
+++ b/net/ipv4/cipso_ipv4.c
@@ -168,9 +168,8 @@ static int __init cipso_v4_cache_init(void)
{
u32 iter;
- cipso_v4_cache = kcalloc(CIPSO_V4_CACHE_BUCKETS,
- sizeof(struct cipso_v4_map_cache_bkt),
- GFP_KERNEL);
+ cipso_v4_cache = kzalloc_objs(struct cipso_v4_map_cache_bkt,
+ CIPSO_V4_CACHE_BUCKETS, GFP_KERNEL);
if (!cipso_v4_cache)
return -ENOMEM;
@@ -308,7 +307,7 @@ int cipso_v4_cache_add(const unsigned char *cipso_ptr,
cipso_ptr_len = cipso_ptr[1];
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (!entry)
return -ENOMEM;
entry->key = kmemdup(cipso_ptr, cipso_ptr_len, GFP_ATOMIC);
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index 942a887bf089..9fd41dfbe788 100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -209,7 +209,7 @@ static struct in_ifaddr *inet_alloc_ifa(struct in_device *in_dev)
{
struct in_ifaddr *ifa;
- ifa = kzalloc(sizeof(*ifa), GFP_KERNEL_ACCOUNT);
+ ifa = kzalloc_obj(*ifa, GFP_KERNEL_ACCOUNT);
if (!ifa)
return NULL;
@@ -270,7 +270,7 @@ static struct in_device *inetdev_init(struct net_device *dev)
ASSERT_RTNL();
- in_dev = kzalloc(sizeof(*in_dev), GFP_KERNEL);
+ in_dev = kzalloc_obj(*in_dev, GFP_KERNEL);
if (!in_dev)
goto out;
memcpy(&in_dev->cnf, dev_net(dev)->ipv4.devconf_dflt,
@@ -2754,9 +2754,8 @@ static __net_init int devinet_init_net(struct net *net)
int i;
err = -ENOMEM;
- net->ipv4.inet_addr_lst = kmalloc_array(IN4_ADDR_HSIZE,
- sizeof(struct hlist_head),
- GFP_KERNEL);
+ net->ipv4.inet_addr_lst = kmalloc_objs(struct hlist_head,
+ IN4_ADDR_HSIZE, GFP_KERNEL);
if (!net->ipv4.inet_addr_lst)
goto err_alloc_hash;
diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
index 0caf38e44c73..ceef080112a9 100644
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
@@ -365,8 +365,8 @@ static struct hlist_head *fib_info_laddrhash_bucket(const struct net *net,
static struct hlist_head *fib_info_hash_alloc(unsigned int hash_bits)
{
/* The second half is used for prefsrc */
- return kvcalloc((1 << hash_bits) * 2, sizeof(struct hlist_head),
- GFP_KERNEL);
+ return kvzalloc_objs(struct hlist_head, (1 << hash_bits) * 2,
+ GFP_KERNEL);
}
static void fib_info_hash_free(struct hlist_head *head)
@@ -1399,7 +1399,7 @@ struct fib_info *fib_create_info(struct fib_config *cfg,
fib_info_hash_grow(net);
- fi = kzalloc(struct_size(fi, fib_nh, nhs), GFP_KERNEL);
+ fi = kzalloc_flex(*fi, fib_nh, nhs, GFP_KERNEL);
if (!fi) {
err = -ENOBUFS;
goto failure;
diff --git a/net/ipv4/fou_core.c b/net/ipv4/fou_core.c
index ab8f309f8925..885f3b06f6e9 100644
--- a/net/ipv4/fou_core.c
+++ b/net/ipv4/fou_core.c
@@ -581,7 +581,7 @@ static int fou_create(struct net *net, struct fou_cfg *cfg,
goto error;
/* Allocate FOU port structure */
- fou = kzalloc(sizeof(*fou), GFP_KERNEL);
+ fou = kzalloc_obj(*fou, GFP_KERNEL);
if (!fou) {
err = -ENOMEM;
goto error;
diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c
index 0adc993c211d..a674fb44ec25 100644
--- a/net/ipv4/igmp.c
+++ b/net/ipv4/igmp.c
@@ -1187,7 +1187,7 @@ static void igmpv3_add_delrec(struct in_device *in_dev, struct ip_mc_list *im,
* for deleted items allows change reports to use common code with
* non-deleted or query-response MCA's.
*/
- pmc = kzalloc(sizeof(*pmc), gfp);
+ pmc = kzalloc_obj(*pmc, gfp);
if (!pmc)
return;
spin_lock_init(&pmc->lock);
@@ -1532,7 +1532,7 @@ static void ____ip_mc_inc_group(struct in_device *in_dev, __be32 addr,
goto out;
}
- im = kzalloc(sizeof(*im), gfp);
+ im = kzalloc_obj(*im, gfp);
if (!im)
goto out;
@@ -2075,7 +2075,7 @@ static int ip_mc_add1_src(struct ip_mc_list *pmc, int sfmode,
psf_prev = psf;
}
if (!psf) {
- psf = kzalloc(sizeof(*psf), GFP_ATOMIC);
+ psf = kzalloc_obj(*psf, GFP_ATOMIC);
if (!psf)
return -ENOBUFS;
psf->sf_inaddr = *psfsrc;
@@ -2150,7 +2150,7 @@ static int sf_setstate(struct ip_mc_list *pmc)
if (dpsf->sf_inaddr == psf->sf_inaddr)
break;
if (!dpsf) {
- dpsf = kmalloc(sizeof(*dpsf), GFP_ATOMIC);
+ dpsf = kmalloc_obj(*dpsf, GFP_ATOMIC);
if (!dpsf)
continue;
*dpsf = *psf;
diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c
index 3f5b1418a610..89f99c7ee69e 100644
--- a/net/ipv4/inet_diag.c
+++ b/net/ipv4/inet_diag.c
@@ -845,7 +845,7 @@ static int __inet_diag_dump_start(struct netlink_callback *cb, int hdrlen)
struct nlattr *nla;
int err;
- cb_data = kzalloc(sizeof(*cb_data), GFP_KERNEL);
+ cb_data = kzalloc_obj(*cb_data, GFP_KERNEL);
if (!cb_data)
return -ENOMEM;
diff --git a/net/ipv4/inet_fragment.c b/net/ipv4/inet_fragment.c
index 4e6d7467ed44..b006606ebb1d 100644
--- a/net/ipv4/inet_fragment.c
+++ b/net/ipv4/inet_fragment.c
@@ -188,7 +188,7 @@ static void fqdir_work_fn(struct work_struct *work)
int fqdir_init(struct fqdir **fqdirp, struct inet_frags *f, struct net *net)
{
- struct fqdir *fqdir = kzalloc(sizeof(*fqdir), GFP_KERNEL);
+ struct fqdir *fqdir = kzalloc_obj(*fqdir, GFP_KERNEL);
int res;
if (!fqdir)
diff --git a/net/ipv4/inet_hashtables.c b/net/ipv4/inet_hashtables.c
index f5826ec4bcaa..50bf4ec8213a 100644
--- a/net/ipv4/inet_hashtables.c
+++ b/net/ipv4/inet_hashtables.c
@@ -1284,7 +1284,7 @@ void __init inet_hashinfo2_init(struct inet_hashinfo *h, const char *name,
int inet_hashinfo2_init_mod(struct inet_hashinfo *h)
{
- h->lhash2 = kmalloc_array(INET_LHTABLE_SIZE, sizeof(*h->lhash2), GFP_KERNEL);
+ h->lhash2 = kmalloc_objs(*h->lhash2, INET_LHTABLE_SIZE, GFP_KERNEL);
if (!h->lhash2)
return -ENOMEM;
diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
index c062d9519818..d09377780942 100644
--- a/net/ipv4/ip_sockglue.c
+++ b/net/ipv4/ip_sockglue.c
@@ -350,7 +350,7 @@ int ip_ra_control(struct sock *sk, unsigned char on,
if (sk->sk_type != SOCK_RAW || inet_sk(sk)->inet_num == IPPROTO_RAW)
return -EINVAL;
- new_ra = on ? kmalloc(sizeof(*new_ra), GFP_KERNEL) : NULL;
+ new_ra = on ? kmalloc_obj(*new_ra, GFP_KERNEL) : NULL;
if (on && !new_ra)
return -ENOMEM;
diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index b1e1be00ff8b..5dcac1fb4209 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -244,7 +244,7 @@ static int __init ic_open_devs(void)
dev->name);
continue;
}
- if (!(d = kmalloc(sizeof(struct ic_device), GFP_KERNEL))) {
+ if (!(d = kmalloc_obj(struct ic_device, GFP_KERNEL))) {
rtnl_unlock();
return -ENOMEM;
}
diff --git a/net/ipv4/ipmr_base.c b/net/ipv4/ipmr_base.c
index 28d77d454d44..77b7717b9c14 100644
--- a/net/ipv4/ipmr_base.c
+++ b/net/ipv4/ipmr_base.c
@@ -38,7 +38,7 @@ mr_table_alloc(struct net *net, u32 id,
struct mr_table *mrt;
int err;
- mrt = kzalloc(sizeof(*mrt), GFP_KERNEL);
+ mrt = kzalloc_obj(*mrt, GFP_KERNEL);
if (!mrt)
return ERR_PTR(-ENOMEM);
mrt->id = id;
diff --git a/net/ipv4/metrics.c b/net/ipv4/metrics.c
index 82cf8a9e5ded..8b88d674a1ea 100644
--- a/net/ipv4/metrics.c
+++ b/net/ipv4/metrics.c
@@ -73,7 +73,7 @@ struct dst_metrics *ip_fib_metrics_init(struct nlattr *fc_mx,
if (!fc_mx)
return (struct dst_metrics *)&dst_default_metrics;
- fib_metrics = kzalloc(sizeof(*fib_metrics), GFP_KERNEL);
+ fib_metrics = kzalloc_obj(*fib_metrics, GFP_KERNEL);
if (unlikely(!fib_metrics))
return ERR_PTR(-ENOMEM);
diff --git a/net/ipv4/nexthop.c b/net/ipv4/nexthop.c
index 7b9d70f9b31c..36b52a92e999 100644
--- a/net/ipv4/nexthop.c
+++ b/net/ipv4/nexthop.c
@@ -116,7 +116,7 @@ static int nh_notifier_single_info_init(struct nh_notifier_info *info,
struct nh_info *nhi = rtnl_dereference(nh->nh_info);
info->type = NH_NOTIFIER_INFO_TYPE_SINGLE;
- info->nh = kzalloc(sizeof(*info->nh), GFP_KERNEL);
+ info->nh = kzalloc_obj(*info->nh, GFP_KERNEL);
if (!info->nh)
return -ENOMEM;
@@ -137,8 +137,8 @@ static int nh_notifier_mpath_info_init(struct nh_notifier_info *info,
int i;
info->type = NH_NOTIFIER_INFO_TYPE_GRP;
- info->nh_grp = kzalloc(struct_size(info->nh_grp, nh_entries, num_nh),
- GFP_KERNEL);
+ info->nh_grp = kzalloc_flex(*info->nh_grp, nh_entries, num_nh,
+ GFP_KERNEL);
if (!info->nh_grp)
return -ENOMEM;
@@ -318,8 +318,7 @@ static int nh_notifier_res_bucket_info_init(struct nh_notifier_info *info,
return err;
info->type = NH_NOTIFIER_INFO_TYPE_RES_BUCKET;
- info->nh_res_bucket = kzalloc(sizeof(*info->nh_res_bucket),
- GFP_KERNEL);
+ info->nh_res_bucket = kzalloc_obj(*info->nh_res_bucket, GFP_KERNEL);
if (!info->nh_res_bucket)
return -ENOMEM;
@@ -535,7 +534,7 @@ static struct nexthop *nexthop_alloc(void)
{
struct nexthop *nh;
- nh = kzalloc(sizeof(struct nexthop), GFP_KERNEL);
+ nh = kzalloc_obj(struct nexthop, GFP_KERNEL);
if (nh) {
INIT_LIST_HEAD(&nh->fi_list);
INIT_LIST_HEAD(&nh->f6i_list);
@@ -550,7 +549,7 @@ static struct nh_group *nexthop_grp_alloc(u16 num_nh)
{
struct nh_group *nhg;
- nhg = kzalloc(struct_size(nhg, nh_entries, num_nh), GFP_KERNEL);
+ nhg = kzalloc_flex(*nhg, nh_entries, num_nh, GFP_KERNEL);
if (nhg)
nhg->num_nh = num_nh;
@@ -715,9 +714,8 @@ static int nh_notifier_grp_hw_stats_init(struct nh_notifier_info *info,
info->id = nh->id;
info->type = NH_NOTIFIER_INFO_TYPE_GRP_HW_STATS;
- info->nh_grp_hw_stats = kzalloc(struct_size(info->nh_grp_hw_stats,
- stats, nhg->num_nh),
- GFP_KERNEL);
+ info->nh_grp_hw_stats = kzalloc_flex(*info->nh_grp_hw_stats, stats,
+ nhg->num_nh, GFP_KERNEL);
if (!info->nh_grp_hw_stats)
return -ENOMEM;
@@ -2897,7 +2895,7 @@ static struct nexthop *nexthop_create(struct net *net, struct nh_config *cfg,
if (!nh)
return ERR_PTR(-ENOMEM);
- nhi = kzalloc(sizeof(*nhi), GFP_KERNEL);
+ nhi = kzalloc_obj(*nhi, GFP_KERNEL);
if (!nhi) {
kfree(nh);
return ERR_PTR(-ENOMEM);
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index 06aa39ae80d6..c75b92f60742 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -315,7 +315,7 @@ static int rt_acct_proc_show(struct seq_file *m, void *v)
struct ip_rt_acct *dst, *src;
unsigned int i, j;
- dst = kcalloc(256, sizeof(struct ip_rt_acct), GFP_KERNEL);
+ dst = kzalloc_objs(struct ip_rt_acct, 256, GFP_KERNEL);
if (!dst)
return -ENOMEM;
@@ -659,7 +659,7 @@ static void update_or_create_fnhe(struct fib_nh_common *nhc, __be32 daddr,
hash = rcu_dereference(nhc->nhc_exceptions);
if (!hash) {
- hash = kcalloc(FNHE_HASH_SIZE, sizeof(*hash), GFP_ATOMIC);
+ hash = kzalloc_objs(*hash, FNHE_HASH_SIZE, GFP_ATOMIC);
if (!hash)
goto out_unlock;
rcu_assign_pointer(nhc->nhc_exceptions, hash);
@@ -702,7 +702,7 @@ static void update_or_create_fnhe(struct fib_nh_common *nhc, __be32 daddr,
depth--;
}
- fnhe = kzalloc(sizeof(*fnhe), GFP_ATOMIC);
+ fnhe = kzalloc_obj(*fnhe, GFP_ATOMIC);
if (!fnhe)
goto out_unlock;
@@ -3687,7 +3687,7 @@ static __net_initdata struct pernet_operations rt_genid_ops = {
static int __net_init ipv4_inetpeer_init(struct net *net)
{
- struct inet_peer_base *bp = kmalloc(sizeof(*bp), GFP_KERNEL);
+ struct inet_peer_base *bp = kmalloc_obj(*bp, GFP_KERNEL);
if (!bp)
return -ENOMEM;
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 6ce03a9adb4a..f84d9a45cc9d 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -1077,8 +1077,8 @@ int tcp_sendmsg_fastopen(struct sock *sk, struct msghdr *msg, int *copied,
if (tp->fastopen_req)
return -EALREADY; /* Another Fast Open is in progress */
- tp->fastopen_req = kzalloc(sizeof(struct tcp_fastopen_request),
- sk->sk_allocation);
+ tp->fastopen_req = kzalloc_obj(struct tcp_fastopen_request,
+ sk->sk_allocation);
if (unlikely(!tp->fastopen_req))
return -ENOBUFS;
tp->fastopen_req->data = msg;
diff --git a/net/ipv4/tcp_ao.c b/net/ipv4/tcp_ao.c
index 34b8450829d0..4980caddb0fc 100644
--- a/net/ipv4/tcp_ao.c
+++ b/net/ipv4/tcp_ao.c
@@ -227,7 +227,7 @@ static struct tcp_ao_info *tcp_ao_alloc_info(gfp_t flags)
{
struct tcp_ao_info *ao;
- ao = kzalloc(sizeof(*ao), flags);
+ ao = kzalloc_obj(*ao, flags);
if (!ao)
return NULL;
INIT_HLIST_HEAD(&ao->head);
diff --git a/net/ipv4/tcp_bpf.c b/net/ipv4/tcp_bpf.c
index ca8a5cb8e569..c449a044895e 100644
--- a/net/ipv4/tcp_bpf.c
+++ b/net/ipv4/tcp_bpf.c
@@ -39,7 +39,7 @@ static int bpf_tcp_ingress(struct sock *sk, struct sk_psock *psock,
struct sk_msg *tmp;
int i, ret = 0;
- tmp = kzalloc(sizeof(*tmp), __GFP_NOWARN | GFP_KERNEL);
+ tmp = kzalloc_obj(*tmp, __GFP_NOWARN | GFP_KERNEL);
if (unlikely(!tmp))
return -ENOMEM;
@@ -426,8 +426,8 @@ static int tcp_bpf_send_verdict(struct sock *sk, struct sk_psock *psock,
msg->cork_bytes > msg->sg.size && !enospc) {
psock->cork_bytes = msg->cork_bytes - msg->sg.size;
if (!psock->cork) {
- psock->cork = kzalloc(sizeof(*psock->cork),
- GFP_ATOMIC | __GFP_NOWARN);
+ psock->cork = kzalloc_obj(*psock->cork,
+ GFP_ATOMIC | __GFP_NOWARN);
if (!psock->cork) {
sk_msg_free(sk, msg);
*copied = 0;
diff --git a/net/ipv4/tcp_cdg.c b/net/ipv4/tcp_cdg.c
index fbad6c35dee9..ceabfd690a29 100644
--- a/net/ipv4/tcp_cdg.c
+++ b/net/ipv4/tcp_cdg.c
@@ -378,8 +378,8 @@ static void tcp_cdg_init(struct sock *sk)
ca->gradients = NULL;
/* We silently fall back to window = 1 if allocation fails. */
if (window > 1)
- ca->gradients = kcalloc(window, sizeof(ca->gradients[0]),
- GFP_NOWAIT);
+ ca->gradients = kzalloc_objs(ca->gradients[0], window,
+ GFP_NOWAIT);
ca->rtt_seq = tp->snd_nxt;
ca->shadow_wnd = tcp_snd_cwnd(tp);
}
diff --git a/net/ipv4/tcp_fastopen.c b/net/ipv4/tcp_fastopen.c
index b30090cff3cf..b4309dc4b9c5 100644
--- a/net/ipv4/tcp_fastopen.c
+++ b/net/ipv4/tcp_fastopen.c
@@ -149,7 +149,7 @@ int tcp_fastopen_reset_cipher(struct net *net, struct sock *sk,
struct fastopen_queue *q;
int err = 0;
- ctx = kmalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kmalloc_obj(*ctx, GFP_KERNEL);
if (!ctx) {
err = -ENOMEM;
goto out;
@@ -549,8 +549,8 @@ bool tcp_fastopen_defer_connect(struct sock *sk, int *err)
/* Alloc fastopen_req in order for FO option to be included
* in SYN
*/
- tp->fastopen_req = kzalloc(sizeof(*tp->fastopen_req),
- sk->sk_allocation);
+ tp->fastopen_req = kzalloc_obj(*tp->fastopen_req,
+ sk->sk_allocation);
if (tp->fastopen_req)
tp->fastopen_req->cookie = cookie;
else
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index e7b41abb82aa..65a7a5ea8eb7 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -7598,8 +7598,7 @@ static void tcp_reqsk_record_syn(const struct sock *sk,
mac_hdrlen = 0;
}
- saved_syn = kmalloc(struct_size(saved_syn, data, len),
- GFP_ATOMIC);
+ saved_syn = kmalloc_flex(*saved_syn, data, len, GFP_ATOMIC);
if (saved_syn) {
saved_syn->mac_hdrlen = mac_hdrlen;
saved_syn->network_hdrlen = skb_network_header_len(skb);
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index 6264fc0b2be5..63a8b174cf99 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -1354,7 +1354,7 @@ static int tcp_md5sig_info_add(struct sock *sk, gfp_t gfp)
struct tcp_sock *tp = tcp_sk(sk);
struct tcp_md5sig_info *md5sig;
- md5sig = kmalloc(sizeof(*md5sig), gfp);
+ md5sig = kmalloc_obj(*md5sig, gfp);
if (!md5sig)
return -ENOMEM;
diff --git a/net/ipv4/tcp_metrics.c b/net/ipv4/tcp_metrics.c
index 45b6ecd16412..06b1d5d3b6df 100644
--- a/net/ipv4/tcp_metrics.c
+++ b/net/ipv4/tcp_metrics.c
@@ -197,7 +197,7 @@ static struct tcp_metrics_block *tcpm_new(struct dst_entry *dst,
}
tm = oldest;
} else {
- tm = kzalloc(sizeof(*tm), GFP_ATOMIC);
+ tm = kzalloc_obj(*tm, GFP_ATOMIC);
if (!tm)
goto out_unlock;
}
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index b96e47f1c8a2..5fcf81a833e8 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -3859,7 +3859,7 @@ static struct udp_table __net_init *udp_pernet_table_alloc(unsigned int hash_ent
unsigned int slot_size;
int i;
- udptable = kmalloc(sizeof(*udptable), GFP_KERNEL);
+ udptable = kmalloc_obj(*udptable, GFP_KERNEL);
if (!udptable)
goto out;
@@ -3972,8 +3972,8 @@ static int bpf_iter_udp_realloc_batch(struct bpf_udp_iter_state *iter,
{
union bpf_udp_iter_batch_item *new_batch;
- new_batch = kvmalloc_array(new_batch_sz, sizeof(*new_batch),
- flags | __GFP_NOWARN);
+ new_batch = kvmalloc_objs(*new_batch, new_batch_sz,
+ flags | __GFP_NOWARN);
if (!new_batch)
return -ENOMEM;
diff --git a/net/ipv4/udp_tunnel_nic.c b/net/ipv4/udp_tunnel_nic.c
index 944b3cf25468..ae674e3ed9b8 100644
--- a/net/ipv4/udp_tunnel_nic.c
+++ b/net/ipv4/udp_tunnel_nic.c
@@ -753,7 +753,7 @@ udp_tunnel_nic_alloc(const struct udp_tunnel_nic_info *info,
struct udp_tunnel_nic *utn;
unsigned int i;
- utn = kzalloc(struct_size(utn, entries, n_tables), GFP_KERNEL);
+ utn = kzalloc_flex(*utn, entries, n_tables, GFP_KERNEL);
if (!utn)
return NULL;
utn->n_tables = n_tables;
@@ -761,8 +761,9 @@ udp_tunnel_nic_alloc(const struct udp_tunnel_nic_info *info,
mutex_init(&utn->lock);
for (i = 0; i < n_tables; i++) {
- utn->entries[i] = kcalloc(info->tables[i].n_entries,
- sizeof(*utn->entries[i]), GFP_KERNEL);
+ utn->entries[i] = kzalloc_objs(*utn->entries[i],
+ info->tables[i].n_entries,
+ GFP_KERNEL);
if (!utn->entries[i])
goto err_free_prev_entries;
}
@@ -820,7 +821,7 @@ static int udp_tunnel_nic_register(struct net_device *dev)
/* Create UDP tunnel state structures */
if (info->shared) {
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return -ENOMEM;
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 6db9cf9e2a50..5696ceb09dc7 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -355,12 +355,12 @@ static int snmp6_alloc_dev(struct inet6_dev *idev)
}
- idev->stats.icmpv6dev = kzalloc(sizeof(struct icmpv6_mib_device),
- GFP_KERNEL);
+ idev->stats.icmpv6dev = kzalloc_obj(struct icmpv6_mib_device,
+ GFP_KERNEL);
if (!idev->stats.icmpv6dev)
goto err_icmp;
- idev->stats.icmpv6msgdev = kzalloc(sizeof(struct icmpv6msg_mib_device),
- GFP_KERNEL_ACCOUNT);
+ idev->stats.icmpv6msgdev = kzalloc_obj(struct icmpv6msg_mib_device,
+ GFP_KERNEL_ACCOUNT);
if (!idev->stats.icmpv6msgdev)
goto err_icmpmsg;
@@ -385,7 +385,7 @@ static struct inet6_dev *ipv6_add_dev(struct net_device *dev)
if (dev->mtu < IPV6_MIN_MTU && dev != blackhole_netdev)
return ERR_PTR(-EINVAL);
- ndev = kzalloc(sizeof(*ndev), GFP_KERNEL_ACCOUNT);
+ ndev = kzalloc_obj(*ndev, GFP_KERNEL_ACCOUNT);
if (!ndev)
return ERR_PTR(err);
@@ -1117,7 +1117,7 @@ ipv6_add_addr(struct inet6_dev *idev, struct ifa6_config *cfg,
goto out;
}
- ifa = kzalloc(sizeof(*ifa), gfp_flags | __GFP_ACCOUNT);
+ ifa = kzalloc_obj(*ifa, gfp_flags | __GFP_ACCOUNT);
if (!ifa) {
err = -ENOBUFS;
goto out;
@@ -7398,9 +7398,8 @@ static int __net_init addrconf_init_net(struct net *net)
spin_lock_init(&net->ipv6.addrconf_hash_lock);
INIT_DEFERRABLE_WORK(&net->ipv6.addr_chk_work, addrconf_verify_work);
- net->ipv6.inet6_addr_lst = kcalloc(IN6_ADDR_HSIZE,
- sizeof(struct hlist_head),
- GFP_KERNEL);
+ net->ipv6.inet6_addr_lst = kzalloc_objs(struct hlist_head,
+ IN6_ADDR_HSIZE, GFP_KERNEL);
if (!net->ipv6.inet6_addr_lst)
goto err_alloc_addr;
diff --git a/net/ipv6/addrlabel.c b/net/ipv6/addrlabel.c
index 567efd626ab4..e3b6b9a3f02e 100644
--- a/net/ipv6/addrlabel.c
+++ b/net/ipv6/addrlabel.c
@@ -180,7 +180,7 @@ static struct ip6addrlbl_entry *ip6addrlbl_alloc(const struct in6_addr *prefix,
break;
}
- newp = kmalloc(sizeof(*newp), GFP_KERNEL);
+ newp = kmalloc_obj(*newp, GFP_KERNEL);
if (!newp)
return ERR_PTR(-ENOMEM);
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
index 69be0a67a140..25ff5148c926 100644
--- a/net/ipv6/af_inet6.c
+++ b/net/ipv6/af_inet6.c
@@ -921,8 +921,8 @@ static int __net_init ipv6_init_mibs(struct net *net)
net->mib.icmpv6_statistics = alloc_percpu(struct icmpv6_mib);
if (!net->mib.icmpv6_statistics)
goto err_icmp_mib;
- net->mib.icmpv6msg_statistics = kzalloc(sizeof(struct icmpv6msg_mib),
- GFP_KERNEL);
+ net->mib.icmpv6msg_statistics = kzalloc_obj(struct icmpv6msg_mib,
+ GFP_KERNEL);
if (!net->mib.icmpv6msg_statistics)
goto err_icmpmsg_mib;
return 0;
diff --git a/net/ipv6/ah6.c b/net/ipv6/ah6.c
index 95372e0f1d21..7ad0c894f2fd 100644
--- a/net/ipv6/ah6.c
+++ b/net/ipv6/ah6.c
@@ -691,7 +691,7 @@ static int ah6_init_state(struct xfrm_state *x, struct netlink_ext_ack *extack)
goto error;
}
- ahp = kzalloc(sizeof(*ahp), GFP_KERNEL);
+ ahp = kzalloc_obj(*ahp, GFP_KERNEL);
if (!ahp)
return -ENOMEM;
diff --git a/net/ipv6/anycast.c b/net/ipv6/anycast.c
index 52599584422b..67a42e01dfc3 100644
--- a/net/ipv6/anycast.c
+++ b/net/ipv6/anycast.c
@@ -279,7 +279,7 @@ static struct ifacaddr6 *aca_alloc(struct fib6_info *f6i,
{
struct ifacaddr6 *aca;
- aca = kzalloc(sizeof(*aca), GFP_ATOMIC);
+ aca = kzalloc_obj(*aca, GFP_ATOMIC);
if (!aca)
return NULL;
diff --git a/net/ipv6/calipso.c b/net/ipv6/calipso.c
index 21f6ed126253..ff39220fef8a 100644
--- a/net/ipv6/calipso.c
+++ b/net/ipv6/calipso.c
@@ -133,9 +133,8 @@ static int __init calipso_cache_init(void)
{
u32 iter;
- calipso_cache = kcalloc(CALIPSO_CACHE_BUCKETS,
- sizeof(struct calipso_map_cache_bkt),
- GFP_KERNEL);
+ calipso_cache = kzalloc_objs(struct calipso_map_cache_bkt,
+ CALIPSO_CACHE_BUCKETS, GFP_KERNEL);
if (!calipso_cache)
return -ENOMEM;
@@ -275,7 +274,7 @@ static int calipso_cache_add(const unsigned char *calipso_ptr,
calipso_ptr_len = calipso_ptr[1];
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (!entry)
return -ENOMEM;
entry->key = kmemdup(calipso_ptr + 2, calipso_ptr_len, GFP_ATOMIC);
diff --git a/net/ipv6/ila/ila_xlat.c b/net/ipv6/ila/ila_xlat.c
index 1d41b2ab4884..c5ff34040175 100644
--- a/net/ipv6/ila/ila_xlat.c
+++ b/net/ipv6/ila/ila_xlat.c
@@ -220,7 +220,7 @@ static int ila_add_mapping(struct net *net, struct ila_xlat_params *xp)
return err;
}
- ila = kzalloc(sizeof(*ila), GFP_KERNEL);
+ ila = kzalloc_obj(*ila, GFP_KERNEL);
if (!ila)
return -ENOMEM;
@@ -509,7 +509,7 @@ int ila_xlat_nl_dump_start(struct netlink_callback *cb)
struct ila_net *ilan = net_generic(net, ila_net_id);
struct ila_dump_iter *iter;
- iter = kmalloc(sizeof(*iter), GFP_KERNEL);
+ iter = kmalloc_obj(*iter, GFP_KERNEL);
if (!iter)
return -ENOMEM;
diff --git a/net/ipv6/ioam6.c b/net/ipv6/ioam6.c
index 08b7ac8c99b7..b6c9e48891fe 100644
--- a/net/ipv6/ioam6.c
+++ b/net/ipv6/ioam6.c
@@ -127,7 +127,7 @@ static int ioam6_genl_addns(struct sk_buff *skb, struct genl_info *info)
goto out_unlock;
}
- ns = kzalloc(sizeof(*ns), GFP_KERNEL);
+ ns = kzalloc_obj(*ns, GFP_KERNEL);
if (!ns) {
err = -ENOMEM;
goto out_unlock;
@@ -245,7 +245,7 @@ static int ioam6_genl_dumpns_start(struct netlink_callback *cb)
struct rhashtable_iter *iter = (struct rhashtable_iter *)cb->args[0];
if (!iter) {
- iter = kmalloc(sizeof(*iter), GFP_KERNEL);
+ iter = kmalloc_obj(*iter, GFP_KERNEL);
if (!iter)
return -ENOMEM;
@@ -431,7 +431,7 @@ static int ioam6_genl_dumpsc_start(struct netlink_callback *cb)
struct rhashtable_iter *iter = (struct rhashtable_iter *)cb->args[0];
if (!iter) {
- iter = kmalloc(sizeof(*iter), GFP_KERNEL);
+ iter = kmalloc_obj(*iter, GFP_KERNEL);
if (!iter)
return -ENOMEM;
@@ -975,7 +975,7 @@ static int __net_init ioam6_net_init(struct net *net)
struct ioam6_pernet_data *nsdata;
int err = -ENOMEM;
- nsdata = kzalloc(sizeof(*nsdata), GFP_KERNEL);
+ nsdata = kzalloc_obj(*nsdata, GFP_KERNEL);
if (!nsdata)
goto out;
diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c
index 56058e6de490..6a26d9448395 100644
--- a/net/ipv6/ip6_fib.c
+++ b/net/ipv6/ip6_fib.c
@@ -234,7 +234,7 @@ static struct fib6_table *fib6_alloc_table(struct net *net, u32 id)
{
struct fib6_table *table;
- table = kzalloc(sizeof(*table), GFP_ATOMIC);
+ table = kzalloc_obj(*table, GFP_ATOMIC);
if (table) {
table->tb6_id = id;
rcu_assign_pointer(table->tb6_root.leaf,
@@ -494,7 +494,7 @@ int fib6_tables_dump(struct net *net, struct notifier_block *nb,
unsigned int h;
int err = 0;
- w = kzalloc(sizeof(*w), GFP_ATOMIC);
+ w = kzalloc_obj(*w, GFP_ATOMIC);
if (!w)
return -ENOMEM;
@@ -659,7 +659,7 @@ static int inet6_dump_fib(struct sk_buff *skb, struct netlink_callback *cb)
*
* 1. allocate and initialize walker.
*/
- w = kzalloc(sizeof(*w), GFP_ATOMIC);
+ w = kzalloc_obj(*w, GFP_ATOMIC);
if (!w) {
err = -ENOMEM;
goto unlock;
@@ -731,7 +731,7 @@ void fib6_metric_set(struct fib6_info *f6i, int metric, u32 val)
return;
if (f6i->fib6_metrics == &dst_default_metrics) {
- struct dst_metrics *p = kzalloc(sizeof(*p), GFP_ATOMIC);
+ struct dst_metrics *p = kzalloc_obj(*p, GFP_ATOMIC);
if (!p)
return;
@@ -2464,7 +2464,7 @@ static int __net_init fib6_net_init(struct net *net)
INIT_LIST_HEAD(&net->ipv6.fib6_walkers);
timer_setup(&net->ipv6.ip6_fib_timer, fib6_gc_timer_cb, 0);
- net->ipv6.rt6_stats = kzalloc(sizeof(*net->ipv6.rt6_stats), GFP_KERNEL);
+ net->ipv6.rt6_stats = kzalloc_obj(*net->ipv6.rt6_stats, GFP_KERNEL);
if (!net->ipv6.rt6_stats)
goto out_notifier;
@@ -2477,8 +2477,8 @@ static int __net_init fib6_net_init(struct net *net)
spin_lock_init(&net->ipv6.fib_table_hash_lock);
- net->ipv6.fib6_main_tbl = kzalloc(sizeof(*net->ipv6.fib6_main_tbl),
- GFP_KERNEL);
+ net->ipv6.fib6_main_tbl = kzalloc_obj(*net->ipv6.fib6_main_tbl,
+ GFP_KERNEL);
if (!net->ipv6.fib6_main_tbl)
goto out_fib_table_hash;
@@ -2491,8 +2491,8 @@ static int __net_init fib6_net_init(struct net *net)
INIT_HLIST_HEAD(&net->ipv6.fib6_main_tbl->tb6_gc_hlist);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
- net->ipv6.fib6_local_tbl = kzalloc(sizeof(*net->ipv6.fib6_local_tbl),
- GFP_KERNEL);
+ net->ipv6.fib6_local_tbl = kzalloc_obj(*net->ipv6.fib6_local_tbl,
+ GFP_KERNEL);
if (!net->ipv6.fib6_local_tbl)
goto out_fib6_main_tbl;
net->ipv6.fib6_local_tbl->tb6_id = RT6_TABLE_LOCAL;
diff --git a/net/ipv6/ip6_flowlabel.c b/net/ipv6/ip6_flowlabel.c
index 60d0be47a9f3..f89e0af5a9ed 100644
--- a/net/ipv6/ip6_flowlabel.c
+++ b/net/ipv6/ip6_flowlabel.c
@@ -386,7 +386,7 @@ fl_create(struct net *net, struct sock *sk, struct in6_flowlabel_req *freq,
goto done;
err = -ENOMEM;
- fl = kzalloc(sizeof(*fl), GFP_KERNEL);
+ fl = kzalloc_obj(*fl, GFP_KERNEL);
if (!fl)
goto done;
@@ -638,7 +638,7 @@ static int ipv6_flowlabel_get(struct sock *sk, struct in6_flowlabel_req *freq,
if (!fl)
return err;
- sfl1 = kmalloc(sizeof(*sfl1), GFP_KERNEL);
+ sfl1 = kmalloc_obj(*sfl1, GFP_KERNEL);
if (freq->flr_label) {
err = -EEXIST;
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 769c39fed1f3..8e2a6b28cea7 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -1359,7 +1359,7 @@ static int ip6_setup_cork(struct sock *sk, struct inet_cork_full *cork,
if (WARN_ON(v6_cork->opt))
return -EINVAL;
- nopt = v6_cork->opt = kzalloc(sizeof(*opt), sk->sk_allocation);
+ nopt = v6_cork->opt = kzalloc_obj(*opt, sk->sk_allocation);
if (unlikely(!nopt))
return -ENOBUFS;
diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c
index d784a8644ff2..152388dc96ec 100644
--- a/net/ipv6/ipv6_sockglue.c
+++ b/net/ipv6/ipv6_sockglue.c
@@ -66,7 +66,7 @@ int ip6_ra_control(struct sock *sk, int sel)
if (sk->sk_type != SOCK_RAW || inet_sk(sk)->inet_num != IPPROTO_RAW)
return -ENOPROTOOPT;
- new_ra = (sel >= 0) ? kmalloc(sizeof(*new_ra), GFP_KERNEL) : NULL;
+ new_ra = (sel >= 0) ? kmalloc_obj(*new_ra, GFP_KERNEL) : NULL;
if (sel >= 0 && !new_ra)
return -ENOMEM;
diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c
index 016b572e7d6f..f982f3b71435 100644
--- a/net/ipv6/mcast.c
+++ b/net/ipv6/mcast.c
@@ -740,7 +740,7 @@ static void mld_add_delrec(struct inet6_dev *idev, struct ifmcaddr6 *im)
* for deleted items allows change reports to use common code with
* non-deleted or query-response MCA's.
*/
- pmc = kzalloc(sizeof(*pmc), GFP_KERNEL);
+ pmc = kzalloc_obj(*pmc, GFP_KERNEL);
if (!pmc)
return;
@@ -868,7 +868,7 @@ static struct ifmcaddr6 *mca_alloc(struct inet6_dev *idev,
mc_assert_locked(idev);
- mc = kzalloc(sizeof(*mc), GFP_KERNEL);
+ mc = kzalloc_obj(*mc, GFP_KERNEL);
if (!mc)
return NULL;
@@ -2415,7 +2415,7 @@ static int ip6_mc_add1_src(struct ifmcaddr6 *pmc, int sfmode,
psf_prev = psf;
}
if (!psf) {
- psf = kzalloc(sizeof(*psf), GFP_KERNEL);
+ psf = kzalloc_obj(*psf, GFP_KERNEL);
if (!psf)
return -ENOBUFS;
@@ -2500,7 +2500,7 @@ static int sf_setstate(struct ifmcaddr6 *pmc)
&psf->sf_addr))
break;
if (!dpsf) {
- dpsf = kmalloc(sizeof(*dpsf), GFP_KERNEL);
+ dpsf = kmalloc_obj(*dpsf, GFP_KERNEL);
if (!dpsf)
continue;
*dpsf = *psf;
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index c0350d97307e..dd50cf2bf6ef 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -684,14 +684,14 @@ static void rt6_probe(struct fib6_nh *fib6_nh)
time_after(jiffies,
neigh->updated +
READ_ONCE(idev->cnf.rtr_probe_interval))) {
- work = kmalloc(sizeof(*work), GFP_ATOMIC);
+ work = kmalloc_obj(*work, GFP_ATOMIC);
if (work)
__neigh_set_probe_once(neigh);
}
write_unlock_bh(&neigh->lock);
} else if (time_after(jiffies, last_probe +
READ_ONCE(idev->cnf.rtr_probe_interval))) {
- work = kmalloc(sizeof(*work), GFP_ATOMIC);
+ work = kmalloc_obj(*work, GFP_ATOMIC);
}
if (!work || cmpxchg(&fib6_nh->last_probe,
@@ -1723,8 +1723,8 @@ static int rt6_insert_exception(struct rt6_info *nrt,
bucket = rcu_dereference_protected(nh->rt6i_exception_bucket,
lockdep_is_held(&rt6_exception_lock));
if (!bucket) {
- bucket = kcalloc(FIB6_EXCEPTION_BUCKET_SIZE, sizeof(*bucket),
- GFP_ATOMIC);
+ bucket = kzalloc_objs(*bucket, FIB6_EXCEPTION_BUCKET_SIZE,
+ GFP_ATOMIC);
if (!bucket) {
err = -ENOMEM;
goto out;
@@ -1759,7 +1759,7 @@ static int rt6_insert_exception(struct rt6_info *nrt,
if (rt6_ex)
rt6_remove_exception(bucket, rt6_ex);
- rt6_ex = kzalloc(sizeof(*rt6_ex), GFP_ATOMIC);
+ rt6_ex = kzalloc_obj(*rt6_ex, GFP_ATOMIC);
if (!rt6_ex) {
err = -ENOMEM;
goto out;
@@ -5331,7 +5331,7 @@ static int ip6_route_info_append(struct list_head *rt6_nh_list,
return -EEXIST;
}
- nh = kzalloc(sizeof(*nh), GFP_KERNEL);
+ nh = kzalloc_obj(*nh, GFP_KERNEL);
if (!nh)
return -ENOMEM;
@@ -6778,7 +6778,7 @@ static struct pernet_operations ip6_route_net_ops = {
static int __net_init ipv6_inetpeer_init(struct net *net)
{
- struct inet_peer_base *bp = kmalloc(sizeof(*bp), GFP_KERNEL);
+ struct inet_peer_base *bp = kmalloc_obj(*bp, GFP_KERNEL);
if (!bp)
return -ENOMEM;
diff --git a/net/ipv6/seg6.c b/net/ipv6/seg6.c
index a5c4c629b788..b53c491079cd 100644
--- a/net/ipv6/seg6.c
+++ b/net/ipv6/seg6.c
@@ -202,7 +202,7 @@ static int seg6_genl_sethmac(struct sk_buff *skb, struct genl_info *info)
secret = (char *)nla_data(info->attrs[SEG6_ATTR_SECRET]);
- hinfo = kzalloc(sizeof(*hinfo), GFP_KERNEL);
+ hinfo = kzalloc_obj(*hinfo, GFP_KERNEL);
if (!hinfo) {
err = -ENOMEM;
goto out_unlock;
@@ -339,7 +339,7 @@ static int seg6_genl_dumphmac_start(struct netlink_callback *cb)
iter = (struct rhashtable_iter *)cb->args[0];
if (!iter) {
- iter = kmalloc(sizeof(*iter), GFP_KERNEL);
+ iter = kmalloc_obj(*iter, GFP_KERNEL);
if (!iter)
return -ENOMEM;
@@ -421,13 +421,13 @@ static int __net_init seg6_net_init(struct net *net)
{
struct seg6_pernet_data *sdata;
- sdata = kzalloc(sizeof(*sdata), GFP_KERNEL);
+ sdata = kzalloc_obj(*sdata, GFP_KERNEL);
if (!sdata)
return -ENOMEM;
mutex_init(&sdata->lock);
- sdata->tun_src = kzalloc(sizeof(*sdata->tun_src), GFP_KERNEL);
+ sdata->tun_src = kzalloc_obj(*sdata->tun_src, GFP_KERNEL);
if (!sdata->tun_src) {
kfree(sdata);
return -ENOMEM;
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
index 439c8a1c6625..ca7955831c28 100644
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -323,7 +323,7 @@ static int ipip6_tunnel_get_prl(struct net_device *dev, struct ip_tunnel_prl __u
* we try harder to allocate.
*/
kp = (cmax <= 1 || capable(CAP_NET_ADMIN)) ?
- kcalloc(cmax, sizeof(*kp), GFP_KERNEL_ACCOUNT | __GFP_NOWARN) :
+ kzalloc_objs(*kp, cmax, GFP_KERNEL_ACCOUNT | __GFP_NOWARN) :
NULL;
ca = min(t->prl_count, cmax);
@@ -334,8 +334,8 @@ static int ipip6_tunnel_get_prl(struct net_device *dev, struct ip_tunnel_prl __u
* For root users, retry allocating enough memory for
* the answer.
*/
- kp = kcalloc(ca, sizeof(*kp), GFP_ATOMIC | __GFP_ACCOUNT |
- __GFP_NOWARN);
+ kp = kzalloc_objs(*kp, ca,
+ GFP_ATOMIC | __GFP_ACCOUNT | __GFP_NOWARN);
if (!kp) {
ret = -ENOMEM;
goto out;
@@ -394,7 +394,7 @@ ipip6_tunnel_add_prl(struct ip_tunnel *t, struct ip_tunnel_prl *a, int chg)
goto out;
}
- p = kzalloc(sizeof(struct ip_tunnel_prl_entry), GFP_KERNEL);
+ p = kzalloc_obj(struct ip_tunnel_prl_entry, GFP_KERNEL);
if (!p) {
err = -ENOBUFS;
goto out;
diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c
index 1e62fbc22cb7..6554d2cffc19 100644
--- a/net/iucv/af_iucv.c
+++ b/net/iucv/af_iucv.c
@@ -1719,7 +1719,7 @@ static void iucv_callback_rx(struct iucv_path *path, struct iucv_message *msg)
goto out_unlock;
save_message:
- save_msg = kzalloc(sizeof(struct sock_msg_q), GFP_ATOMIC | GFP_DMA);
+ save_msg = kzalloc_obj(struct sock_msg_q, GFP_ATOMIC | GFP_DMA);
if (!save_msg)
goto out_unlock;
save_msg->path = path;
diff --git a/net/iucv/iucv.c b/net/iucv/iucv.c
index b43b1059eea8..0c3492c873ca 100644
--- a/net/iucv/iucv.c
+++ b/net/iucv/iucv.c
@@ -90,7 +90,7 @@ struct device *iucv_alloc_device(const struct attribute_group **attrs,
char buf[20];
int rc;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
goto out_error;
va_start(vargs, fmt);
@@ -378,7 +378,7 @@ static int iucv_query_maxconn(void)
void *param;
int ccode;
- param = kzalloc(sizeof(union iucv_param), GFP_KERNEL | GFP_DMA);
+ param = kzalloc_obj(union iucv_param, GFP_KERNEL | GFP_DMA);
if (!param)
return -ENOMEM;
ccode = __iucv_query_maxconn(param, &max_pathid);
@@ -1808,7 +1808,7 @@ static void iucv_external_interrupt(struct ext_code ext_code,
return;
}
BUG_ON(p->iptype < 0x01 || p->iptype > 0x09);
- work = kmalloc(sizeof(struct iucv_irq_list), GFP_ATOMIC);
+ work = kmalloc_obj(struct iucv_irq_list, GFP_ATOMIC);
if (!work) {
pr_warn("iucv_external_interrupt: out of memory\n");
return;
diff --git a/net/key/af_key.c b/net/key/af_key.c
index 571200433aa9..83c7697c679a 100644
--- a/net/key/af_key.c
+++ b/net/key/af_key.c
@@ -1196,7 +1196,7 @@ static struct xfrm_state * pfkey_msg2xfrm_state(struct net *net,
err = -ENOSYS;
goto out;
}
- x->calg = kmalloc(sizeof(*x->calg), GFP_KERNEL);
+ x->calg = kmalloc_obj(*x->calg, GFP_KERNEL);
if (!x->calg) {
err = -ENOMEM;
goto out;
@@ -1261,7 +1261,7 @@ static struct xfrm_state * pfkey_msg2xfrm_state(struct net *net,
const struct sadb_x_nat_t_type* n_type;
struct xfrm_encap_tmpl *natt;
- x->encap = kzalloc(sizeof(*x->encap), GFP_KERNEL);
+ x->encap = kzalloc_obj(*x->encap, GFP_KERNEL);
if (!x->encap) {
err = -ENOMEM;
goto out;
@@ -1855,7 +1855,7 @@ static int pfkey_dump(struct sock *sk, struct sk_buff *skb, const struct sadb_ms
mutex_unlock(&pfk->dump_lock);
return -EINVAL;
}
- filter = kmalloc(sizeof(*filter), GFP_KERNEL);
+ filter = kmalloc_obj(*filter, GFP_KERNEL);
if (filter == NULL) {
mutex_unlock(&pfk->dump_lock);
return -ENOMEM;
diff --git a/net/l2tp/l2tp_core.c b/net/l2tp/l2tp_core.c
index f9b0f666600f..1b84338f2a90 100644
--- a/net/l2tp/l2tp_core.c
+++ b/net/l2tp/l2tp_core.c
@@ -487,7 +487,7 @@ static int l2tp_session_collision_add(struct l2tp_net *pn,
/* First collision. Allocate list to manage the collided sessions
* and add the existing session to the list.
*/
- clist = kmalloc(sizeof(*clist), GFP_ATOMIC);
+ clist = kmalloc_obj(*clist, GFP_ATOMIC);
if (!clist)
return -ENOMEM;
@@ -1572,7 +1572,7 @@ int l2tp_tunnel_create(int fd, int version, u32 tunnel_id, u32 peer_tunnel_id,
if (cfg)
encap = cfg->encap;
- tunnel = kzalloc(sizeof(*tunnel), GFP_KERNEL);
+ tunnel = kzalloc_obj(*tunnel, GFP_KERNEL);
if (!tunnel) {
err = -ENOMEM;
goto err;
diff --git a/net/l2tp/l2tp_debugfs.c b/net/l2tp/l2tp_debugfs.c
index 5cfaab7d0890..56ea3ed20581 100644
--- a/net/l2tp/l2tp_debugfs.c
+++ b/net/l2tp/l2tp_debugfs.c
@@ -269,7 +269,7 @@ static int l2tp_dfs_seq_open(struct inode *inode, struct file *file)
struct seq_file *seq;
int rc = -ENOMEM;
- pd = kzalloc(sizeof(*pd), GFP_KERNEL);
+ pd = kzalloc_obj(*pd, GFP_KERNEL);
if (!pd)
goto out;
diff --git a/net/lapb/lapb_iface.c b/net/lapb/lapb_iface.c
index a0596e1f91da..670e0859a3e6 100644
--- a/net/lapb/lapb_iface.c
+++ b/net/lapb/lapb_iface.c
@@ -110,7 +110,7 @@ static struct lapb_cb *lapb_devtostruct(struct net_device *dev)
*/
static struct lapb_cb *lapb_create_cb(void)
{
- struct lapb_cb *lapb = kzalloc(sizeof(*lapb), GFP_ATOMIC);
+ struct lapb_cb *lapb = kzalloc_obj(*lapb, GFP_ATOMIC);
if (!lapb)
goto out;
diff --git a/net/llc/llc_core.c b/net/llc/llc_core.c
index 4f16d9c88350..d73f5414d8ce 100644
--- a/net/llc/llc_core.c
+++ b/net/llc/llc_core.c
@@ -32,7 +32,7 @@ static DEFINE_SPINLOCK(llc_sap_list_lock);
*/
static struct llc_sap *llc_sap_alloc(void)
{
- struct llc_sap *sap = kzalloc(sizeof(*sap), GFP_ATOMIC);
+ struct llc_sap *sap = kzalloc_obj(*sap, GFP_ATOMIC);
int i;
if (sap) {
diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c
index 7da909d78c68..e8670a46371c 100644
--- a/net/mac80211/agg-rx.c
+++ b/net/mac80211/agg-rx.c
@@ -395,7 +395,7 @@ void __ieee80211_start_rx_ba_session(struct sta_info *sta,
}
/* prepare A-MPDU MLME for Rx aggregation */
- tid_agg_rx = kzalloc(sizeof(*tid_agg_rx), GFP_KERNEL);
+ tid_agg_rx = kzalloc_obj(*tid_agg_rx, GFP_KERNEL);
if (!tid_agg_rx)
goto end;
@@ -411,7 +411,7 @@ void __ieee80211_start_rx_ba_session(struct sta_info *sta,
/* prepare reordering buffer */
tid_agg_rx->reorder_buf =
- kcalloc(buf_size, sizeof(struct sk_buff_head), GFP_KERNEL);
+ kzalloc_objs(struct sk_buff_head, buf_size, GFP_KERNEL);
tid_agg_rx->reorder_time =
kcalloc(buf_size, sizeof(unsigned long), GFP_KERNEL);
if (!tid_agg_rx->reorder_buf || !tid_agg_rx->reorder_time) {
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
index d981b0fc57bf..93b47a7ba9c4 100644
--- a/net/mac80211/agg-tx.c
+++ b/net/mac80211/agg-tx.c
@@ -710,7 +710,7 @@ int ieee80211_start_tx_ba_session(struct ieee80211_sta *pubsta, u16 tid,
}
/* prepare A-MPDU MLME for Tx aggregation */
- tid_tx = kzalloc(sizeof(struct tid_ampdu_tx), GFP_ATOMIC);
+ tid_tx = kzalloc_obj(struct tid_ampdu_tx, GFP_ATOMIC);
if (!tid_tx) {
ret = -ENOMEM;
goto err_unlock_sta;
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 5d04d7d550b0..d1adbc4984d1 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -3940,9 +3940,8 @@ cfg80211_beacon_dup(struct cfg80211_beacon_data *beacon)
if (beacon->mbssid_ies && beacon->mbssid_ies->cnt) {
new_beacon->mbssid_ies =
- kzalloc(struct_size(new_beacon->mbssid_ies,
- elem, beacon->mbssid_ies->cnt),
- GFP_KERNEL);
+ kzalloc_flex(*new_beacon->mbssid_ies, elem,
+ beacon->mbssid_ies->cnt, GFP_KERNEL);
if (!new_beacon->mbssid_ies) {
kfree(new_beacon);
return NULL;
@@ -3950,9 +3949,8 @@ cfg80211_beacon_dup(struct cfg80211_beacon_data *beacon)
if (beacon->rnr_ies && beacon->rnr_ies->cnt) {
new_beacon->rnr_ies =
- kzalloc(struct_size(new_beacon->rnr_ies,
- elem, beacon->rnr_ies->cnt),
- GFP_KERNEL);
+ kzalloc_flex(*new_beacon->rnr_ies, elem,
+ beacon->rnr_ies->cnt, GFP_KERNEL);
if (!new_beacon->rnr_ies) {
kfree(new_beacon->mbssid_ies);
kfree(new_beacon);
@@ -4744,7 +4742,7 @@ static int ieee80211_set_qos_map(struct wiphy *wiphy,
struct mac80211_qos_map *new_qos_map, *old_qos_map;
if (qos_map) {
- new_qos_map = kzalloc(sizeof(*new_qos_map), GFP_KERNEL);
+ new_qos_map = kzalloc_obj(*new_qos_map, GFP_KERNEL);
if (!new_qos_map)
return -ENOMEM;
memcpy(&new_qos_map->qos_map, qos_map, sizeof(*qos_map));
diff --git a/net/mac80211/chan.c b/net/mac80211/chan.c
index d8c5f11afc15..60654b0b542d 100644
--- a/net/mac80211/chan.c
+++ b/net/mac80211/chan.c
@@ -1612,7 +1612,7 @@ static int ieee80211_chsw_switch_vifs(struct ieee80211_local *local,
lockdep_assert_wiphy(local->hw.wiphy);
- vif_chsw = kcalloc(n_vifs, sizeof(vif_chsw[0]), GFP_KERNEL);
+ vif_chsw = kzalloc_objs(vif_chsw[0], n_vifs, GFP_KERNEL);
if (!vif_chsw)
return -ENOMEM;
diff --git a/net/mac80211/led.c b/net/mac80211/led.c
index fabbffdd3ac2..f93fe928c4bc 100644
--- a/net/mac80211/led.c
+++ b/net/mac80211/led.c
@@ -298,7 +298,7 @@ __ieee80211_create_tpt_led_trigger(struct ieee80211_hw *hw,
if (WARN_ON(local->tpt_led_trigger))
return NULL;
- tpt_trig = kzalloc(sizeof(struct tpt_led_trigger), GFP_KERNEL);
+ tpt_trig = kzalloc_obj(struct tpt_led_trigger, GFP_KERNEL);
if (!tpt_trig)
return NULL;
diff --git a/net/mac80211/link.c b/net/mac80211/link.c
index 17bf55dabd31..7102d113d89d 100644
--- a/net/mac80211/link.c
+++ b/net/mac80211/link.c
@@ -295,7 +295,7 @@ static int ieee80211_vif_update_links(struct ieee80211_sub_if_data *sdata,
/* allocate new link structures first */
for_each_set_bit(link_id, &add, IEEE80211_MLD_MAX_NUM_LINKS) {
- link = kzalloc(sizeof(*link), GFP_KERNEL);
+ link = kzalloc_obj(*link, GFP_KERNEL);
if (!link) {
ret = -ENOMEM;
goto free;
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index bedc81956fbc..9825d7c70cbc 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -1359,9 +1359,8 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
hw->wiphy->software_iftypes |= BIT(NL80211_IFTYPE_MONITOR);
- local->int_scan_req = kzalloc(struct_size(local->int_scan_req,
- channels, channels),
- GFP_KERNEL);
+ local->int_scan_req = kzalloc_flex(*local->int_scan_req, channels,
+ channels, GFP_KERNEL);
if (!local->int_scan_req)
return -ENOMEM;
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
index 68901f1def0d..a7bd4dd9aa19 100644
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -178,7 +178,7 @@ int mesh_rmc_init(struct ieee80211_sub_if_data *sdata)
{
int i;
- sdata->u.mesh.rmc = kmalloc(sizeof(struct mesh_rmc), GFP_KERNEL);
+ sdata->u.mesh.rmc = kmalloc_obj(struct mesh_rmc, GFP_KERNEL);
if (!sdata->u.mesh.rmc)
return -ENOMEM;
sdata->u.mesh.rmc->idx_mask = RMC_BUCKETS - 1;
@@ -1560,8 +1560,7 @@ int ieee80211_mesh_csa_beacon(struct ieee80211_sub_if_data *sdata,
lockdep_assert_wiphy(sdata->local->hw.wiphy);
- tmp_csa_settings = kmalloc(sizeof(*tmp_csa_settings),
- GFP_ATOMIC);
+ tmp_csa_settings = kmalloc_obj(*tmp_csa_settings, GFP_ATOMIC);
if (!tmp_csa_settings)
return -ENOMEM;
diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c
index a41b57bd11ff..98d5aaa36d00 100644
--- a/net/mac80211/mesh_hwmp.c
+++ b/net/mac80211/mesh_hwmp.c
@@ -1005,7 +1005,7 @@ static void mesh_queue_preq(struct mesh_path *mpath, u8 flags)
struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
struct mesh_preq_queue *preq_node;
- preq_node = kmalloc(sizeof(struct mesh_preq_queue), GFP_ATOMIC);
+ preq_node = kmalloc_obj(struct mesh_preq_queue, GFP_ATOMIC);
if (!preq_node) {
mhwmp_dbg(sdata, "could not allocate PREQ node\n");
return;
diff --git a/net/mac80211/mesh_pathtbl.c b/net/mac80211/mesh_pathtbl.c
index 0319674be832..03171cf00855 100644
--- a/net/mac80211/mesh_pathtbl.c
+++ b/net/mac80211/mesh_pathtbl.c
@@ -405,7 +405,7 @@ struct mesh_path *mesh_path_new(struct ieee80211_sub_if_data *sdata,
{
struct mesh_path *new_mpath;
- new_mpath = kzalloc(sizeof(struct mesh_path), gfp_flags);
+ new_mpath = kzalloc_obj(struct mesh_path, gfp_flags);
if (!new_mpath)
return NULL;
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index e83582b2c377..c1d0808f2545 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -10839,7 +10839,7 @@ int ieee80211_mgd_assoc_ml_reconf(struct ieee80211_sub_if_data *sdata,
if (added_links) {
bool uapsd_supported;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/net/mac80211/offchannel.c b/net/mac80211/offchannel.c
index ae82533e3c02..00ef339f7de4 100644
--- a/net/mac80211/offchannel.c
+++ b/net/mac80211/offchannel.c
@@ -579,7 +579,7 @@ static int ieee80211_start_roc_work(struct ieee80211_local *local,
if (!local->emulate_chanctx && !local->ops->remain_on_channel)
return -EOPNOTSUPP;
- roc = kzalloc(sizeof(*roc), GFP_KERNEL);
+ roc = kzalloc_obj(*roc, GFP_KERNEL);
if (!roc)
return -ENOMEM;
diff --git a/net/mac80211/parse.c b/net/mac80211/parse.c
index 8260f6bdd5b2..2b3632c6008a 100644
--- a/net/mac80211/parse.c
+++ b/net/mac80211/parse.c
@@ -1048,8 +1048,8 @@ ieee802_11_parse_elems_full(struct ieee80211_elems_parse_params *params)
if (WARN_ON(params->link_id >= 0 && params->bss))
return NULL;
- elems_parse = kzalloc(struct_size(elems_parse, scratch, scratch_len),
- GFP_ATOMIC);
+ elems_parse = kzalloc_flex(*elems_parse, scratch, scratch_len,
+ GFP_ATOMIC);
if (!elems_parse)
return NULL;
diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
index e441f8541603..3ae891be800b 100644
--- a/net/mac80211/rate.c
+++ b/net/mac80211/rate.c
@@ -163,7 +163,7 @@ int ieee80211_rate_control_register(const struct rate_control_ops *ops)
}
}
- alg = kzalloc(sizeof(*alg), GFP_KERNEL);
+ alg = kzalloc_obj(*alg, GFP_KERNEL);
if (alg == NULL) {
mutex_unlock(&rate_ctrl_mutex);
return -ENOMEM;
@@ -263,7 +263,7 @@ rate_control_alloc(const char *name, struct ieee80211_local *local)
{
struct rate_control_ref *ref;
- ref = kmalloc(sizeof(struct rate_control_ref), GFP_KERNEL);
+ ref = kmalloc_obj(struct rate_control_ref, GFP_KERNEL);
if (!ref)
return NULL;
ref->ops = ieee80211_rate_control_ops_get(name);
diff --git a/net/mac80211/rc80211_minstrel_ht.c b/net/mac80211/rc80211_minstrel_ht.c
index f66910013218..62745ca00e06 100644
--- a/net/mac80211/rc80211_minstrel_ht.c
+++ b/net/mac80211/rc80211_minstrel_ht.c
@@ -1553,7 +1553,7 @@ minstrel_ht_update_rates(struct minstrel_priv *mp, struct minstrel_ht_sta *mi)
int i = 0;
int max_rates = min_t(int, mp->hw->max_rates, IEEE80211_TX_RATE_TABLE_SIZE);
- rates = kzalloc(sizeof(*rates), GFP_ATOMIC);
+ rates = kzalloc_obj(*rates, GFP_ATOMIC);
if (!rates)
return;
@@ -1862,7 +1862,7 @@ minstrel_ht_alloc_sta(void *priv, struct ieee80211_sta *sta, gfp_t gfp)
max_rates = sband->n_bitrates;
}
- return kzalloc(sizeof(*mi), gfp);
+ return kzalloc_obj(*mi, gfp);
}
static void
@@ -1930,7 +1930,7 @@ minstrel_ht_alloc(struct ieee80211_hw *hw)
struct minstrel_priv *mp;
int i;
- mp = kzalloc(sizeof(struct minstrel_priv), GFP_ATOMIC);
+ mp = kzalloc_obj(struct minstrel_priv, GFP_ATOMIC);
if (!mp)
return NULL;
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index a79ebeb43585..6abcf410a0ca 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -644,7 +644,7 @@ __sta_info_alloc(struct ieee80211_sub_if_data *sdata,
wiphy_work_init(&sta->ampdu_mlme.work, ieee80211_ba_session_work);
#ifdef CONFIG_MAC80211_MESH
if (ieee80211_vif_is_mesh(&sdata->vif)) {
- sta->mesh = kzalloc(sizeof(*sta->mesh), gfp);
+ sta->mesh = kzalloc_obj(*sta->mesh, gfp);
if (!sta->mesh)
goto free;
sta->mesh->plink_sta = sta;
@@ -903,7 +903,7 @@ static int sta_info_insert_finish(struct sta_info *sta) __acquires(RCU)
goto out_cleanup;
}
- sinfo = kzalloc(sizeof(struct station_info), GFP_KERNEL);
+ sinfo = kzalloc_obj(struct station_info, GFP_KERNEL);
if (!sinfo) {
err = -ENOMEM;
goto out_cleanup;
@@ -1545,7 +1545,7 @@ static void __sta_info_destroy_part2(struct sta_info *sta, bool recalc)
}
}
- sinfo = kzalloc(sizeof(*sinfo), GFP_KERNEL);
+ sinfo = kzalloc_obj(*sinfo, GFP_KERNEL);
if (sinfo)
sta_set_sinfo(sta, sinfo, true);
@@ -3306,7 +3306,7 @@ int ieee80211_sta_allocate_link(struct sta_info *sta, unsigned int link_id)
sta->link[link_id]))
return -EBUSY;
- alloc = kzalloc(sizeof(*alloc), GFP_KERNEL);
+ alloc = kzalloc_obj(*alloc, GFP_KERNEL);
if (!alloc)
return -ENOMEM;
diff --git a/net/mac80211/tests/util.c b/net/mac80211/tests/util.c
index 9c2d63a5cd2b..cddc46eeb648 100644
--- a/net/mac80211/tests/util.c
+++ b/net/mac80211/tests/util.c
@@ -195,16 +195,16 @@ int t_sdata_init(struct kunit_resource *resource, void *ctx)
struct kunit *test = kunit_get_current_test();
struct t_sdata *t_sdata;
- t_sdata = kzalloc(sizeof(*t_sdata), GFP_KERNEL);
+ t_sdata = kzalloc_obj(*t_sdata, GFP_KERNEL);
KUNIT_ASSERT_NOT_NULL(test, t_sdata);
resource->data = t_sdata;
resource->name = "sdata";
- t_sdata->sdata = kzalloc(sizeof(*t_sdata->sdata), GFP_KERNEL);
+ t_sdata->sdata = kzalloc_obj(*t_sdata->sdata, GFP_KERNEL);
KUNIT_ASSERT_NOT_NULL(test, t_sdata->sdata);
- t_sdata->wiphy = kzalloc(sizeof(*t_sdata->wiphy), GFP_KERNEL);
+ t_sdata->wiphy = kzalloc_obj(*t_sdata->wiphy, GFP_KERNEL);
KUNIT_ASSERT_NOT_NULL(test, t_sdata->wiphy);
strscpy(t_sdata->sdata->name, "kunit");
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 007f5a368d41..a3113e1d9829 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1611,8 +1611,7 @@ int ieee80211_txq_setup_flows(struct ieee80211_local *local)
local->cparams.target = MS2TIME(20);
local->cparams.ecn = true;
- local->cvars = kvcalloc(fq->flows_cnt, sizeof(local->cvars[0]),
- GFP_KERNEL);
+ local->cvars = kvzalloc_objs(local->cvars[0], fq->flows_cnt, GFP_KERNEL);
if (!local->cvars) {
spin_lock_bh(&fq->lock);
fq_reset(fq, fq_skb_free_func);
@@ -5549,8 +5548,7 @@ ieee80211_beacon_get_ap_ema_list(struct ieee80211_hw *hw,
if (!beacon->mbssid_ies || !beacon->mbssid_ies->cnt)
return NULL;
- ema = kzalloc(struct_size(ema, bcn, beacon->mbssid_ies->cnt),
- GFP_ATOMIC);
+ ema = kzalloc_flex(*ema, bcn, beacon->mbssid_ies->cnt, GFP_ATOMIC);
if (!ema)
return NULL;
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index a5e09c0fa6b3..22efb399b5bc 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -1742,9 +1742,8 @@ static int ieee80211_reconfig_nan(struct ieee80211_sub_if_data *sdata)
if (WARN_ON(res))
return res;
- funcs = kcalloc(sdata->local->hw.max_nan_de_entries + 1,
- sizeof(*funcs),
- GFP_KERNEL);
+ funcs = kzalloc_objs(*funcs, sdata->local->hw.max_nan_de_entries + 1,
+ GFP_KERNEL);
if (!funcs)
return -ENOMEM;
diff --git a/net/mac802154/cfg.c b/net/mac802154/cfg.c
index ef7f23af043f..44ad05726db3 100644
--- a/net/mac802154/cfg.c
+++ b/net/mac802154/cfg.c
@@ -339,7 +339,7 @@ static int mac802154_associate(struct wpan_phy *wpan_phy,
if (coord->mode == IEEE802154_SHORT_ADDRESSING)
return -EINVAL;
- parent = kzalloc(sizeof(*parent), GFP_KERNEL);
+ parent = kzalloc_obj(*parent, GFP_KERNEL);
if (!parent)
return -ENOMEM;
diff --git a/net/mac802154/llsec.c b/net/mac802154/llsec.c
index f13b07ebfb98..0489f2515eb6 100644
--- a/net/mac802154/llsec.c
+++ b/net/mac802154/llsec.c
@@ -117,7 +117,7 @@ llsec_key_alloc(const struct ieee802154_llsec_key *template)
struct mac802154_llsec_key *key;
int i;
- key = kzalloc(sizeof(*key), GFP_KERNEL);
+ key = kzalloc_obj(*key, GFP_KERNEL);
if (!key)
return NULL;
@@ -241,7 +241,7 @@ int mac802154_llsec_key_add(struct mac802154_llsec *sec,
break;
}
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return -ENOMEM;
@@ -369,7 +369,7 @@ int mac802154_llsec_dev_add(struct mac802154_llsec *sec,
llsec_dev_find_long(sec, dev->hwaddr))
return -EEXIST;
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -441,7 +441,7 @@ int mac802154_llsec_devkey_add(struct mac802154_llsec *sec,
if (llsec_devkey_find(dev, &key->key_id))
return -EEXIST;
- devkey = kmalloc(sizeof(*devkey), GFP_KERNEL);
+ devkey = kmalloc_obj(*devkey, GFP_KERNEL);
if (!devkey)
return -ENOMEM;
@@ -500,7 +500,7 @@ int mac802154_llsec_seclevel_add(struct mac802154_llsec *sec,
if (llsec_find_seclevel(sec, sl))
return -EEXIST;
- entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kmalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -925,7 +925,7 @@ llsec_update_devkey_record(struct mac802154_llsec_device *dev,
if (!devkey) {
struct mac802154_llsec_device_key *next;
- next = kzalloc(sizeof(*devkey), GFP_ATOMIC);
+ next = kzalloc_obj(*devkey, GFP_ATOMIC);
if (!next)
return -ENOMEM;
diff --git a/net/mac802154/rx.c b/net/mac802154/rx.c
index aac359b5c71d..cd8f2a11920d 100644
--- a/net/mac802154/rx.c
+++ b/net/mac802154/rx.c
@@ -213,7 +213,7 @@ ieee802154_subif_frame(struct ieee802154_sub_if_data *sdata,
if (!mac802154_is_scanning(sdata->local))
goto fail;
- mac_pkt = kzalloc(sizeof(*mac_pkt), GFP_ATOMIC);
+ mac_pkt = kzalloc_obj(*mac_pkt, GFP_ATOMIC);
if (!mac_pkt)
goto fail;
@@ -227,7 +227,7 @@ ieee802154_subif_frame(struct ieee802154_sub_if_data *sdata,
case IEEE802154_FC_TYPE_MAC_CMD:
dev_dbg(&sdata->dev->dev, "MAC COMMAND received\n");
- mac_pkt = kzalloc(sizeof(*mac_pkt), GFP_ATOMIC);
+ mac_pkt = kzalloc_obj(*mac_pkt, GFP_ATOMIC);
if (!mac_pkt)
goto fail;
diff --git a/net/mac802154/scan.c b/net/mac802154/scan.c
index a6dab3cc3ad8..583178784c9b 100644
--- a/net/mac802154/scan.c
+++ b/net/mac802154/scan.c
@@ -798,7 +798,7 @@ int mac802154_process_association_req(struct ieee802154_sub_if_data *sdata,
goto unlock;
}
- child = kzalloc(sizeof(*child), GFP_KERNEL);
+ child = kzalloc_obj(*child, GFP_KERNEL);
if (!child) {
ret = -ENOMEM;
goto unlock;
diff --git a/net/mctp/device.c b/net/mctp/device.c
index 04c5570bacff..08f3d35fa45b 100644
--- a/net/mctp/device.c
+++ b/net/mctp/device.c
@@ -336,7 +336,7 @@ static struct mctp_dev *mctp_add_dev(struct net_device *dev)
ASSERT_RTNL();
- mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
+ mdev = kzalloc_obj(*mdev, GFP_KERNEL);
if (!mdev)
return ERR_PTR(-ENOMEM);
diff --git a/net/mctp/neigh.c b/net/mctp/neigh.c
index fc85f0e69301..5894433535eb 100644
--- a/net/mctp/neigh.c
+++ b/net/mctp/neigh.c
@@ -40,7 +40,7 @@ static int mctp_neigh_add(struct mctp_dev *mdev, mctp_eid_t eid,
goto out;
}
- neigh = kzalloc(sizeof(*neigh), GFP_KERNEL);
+ neigh = kzalloc_obj(*neigh, GFP_KERNEL);
if (!neigh) {
rc = -ENOMEM;
goto out;
diff --git a/net/mctp/route.c b/net/mctp/route.c
index ecbbe4beb213..349fc650a805 100644
--- a/net/mctp/route.c
+++ b/net/mctp/route.c
@@ -227,7 +227,7 @@ static struct mctp_sk_key *mctp_key_alloc(struct mctp_sock *msk,
{
struct mctp_sk_key *key;
- key = kzalloc(sizeof(*key), gfp);
+ key = kzalloc_obj(*key, gfp);
if (!key)
return NULL;
@@ -675,7 +675,7 @@ static struct mctp_route *mctp_route_alloc(void)
{
struct mctp_route *rt;
- rt = kzalloc(sizeof(*rt), GFP_KERNEL);
+ rt = kzalloc_obj(*rt, GFP_KERNEL);
if (!rt)
return NULL;
diff --git a/net/mctp/test/utils.c b/net/mctp/test/utils.c
index 37f1ba62a2ab..922b2c353a4e 100644
--- a/net/mctp/test/utils.c
+++ b/net/mctp/test/utils.c
@@ -106,7 +106,7 @@ static struct mctp_test_route *mctp_route_test_alloc(void)
{
struct mctp_test_route *rt;
- rt = kzalloc(sizeof(*rt), GFP_KERNEL);
+ rt = kzalloc_obj(*rt, GFP_KERNEL);
if (!rt)
return NULL;
diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c
index 580aac112dd2..82d885b8478a 100644
--- a/net/mpls/af_mpls.c
+++ b/net/mpls/af_mpls.c
@@ -1470,7 +1470,7 @@ static struct mpls_dev *mpls_add_dev(struct net_device *dev)
int err = -ENOMEM;
int i;
- mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
+ mdev = kzalloc_obj(*mdev, GFP_KERNEL);
if (!mdev)
return ERR_PTR(err);
@@ -1977,7 +1977,7 @@ static int mpls_rtm_delroute(struct sk_buff *skb, struct nlmsghdr *nlh,
struct mpls_route_config *cfg;
int err;
- cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
+ cfg = kzalloc_obj(*cfg, GFP_KERNEL);
if (!cfg)
return -ENOMEM;
@@ -2002,7 +2002,7 @@ static int mpls_rtm_newroute(struct sk_buff *skb, struct nlmsghdr *nlh,
struct mpls_route_config *cfg;
int err;
- cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
+ cfg = kzalloc_obj(*cfg, GFP_KERNEL);
if (!cfg)
return -ENOMEM;
diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c
index e2040c327af6..7298836469b3 100644
--- a/net/mptcp/pm.c
+++ b/net/mptcp/pm.c
@@ -388,7 +388,7 @@ bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk,
goto reset_timer;
}
- add_entry = kmalloc(sizeof(*add_entry), GFP_ATOMIC);
+ add_entry = kmalloc_obj(*add_entry, GFP_ATOMIC);
if (!add_entry)
return false;
diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c
index f66129f1e649..7ef1d2bd26e4 100644
--- a/net/mptcp/subflow.c
+++ b/net/mptcp/subflow.c
@@ -1842,7 +1842,7 @@ static struct mptcp_subflow_context *subflow_create_ctx(struct sock *sk,
struct inet_connection_sock *icsk = inet_csk(sk);
struct mptcp_subflow_context *ctx;
- ctx = kzalloc(sizeof(*ctx), priority);
+ ctx = kzalloc_obj(*ctx, priority);
if (!ctx)
return NULL;
diff --git a/net/ncsi/ncsi-manage.c b/net/ncsi/ncsi-manage.c
index 446e4e3b9553..dec9812c3fbb 100644
--- a/net/ncsi/ncsi-manage.c
+++ b/net/ncsi/ncsi-manage.c
@@ -211,7 +211,7 @@ struct ncsi_channel *ncsi_add_channel(struct ncsi_package *np, unsigned char id)
int index;
unsigned long flags;
- nc = kzalloc(sizeof(*nc), GFP_ATOMIC);
+ nc = kzalloc_obj(*nc, GFP_ATOMIC);
if (!nc)
return NULL;
@@ -285,7 +285,7 @@ struct ncsi_package *ncsi_add_package(struct ncsi_dev_priv *ndp,
struct ncsi_package *np, *tmp;
unsigned long flags;
- np = kzalloc(sizeof(*np), GFP_ATOMIC);
+ np = kzalloc_obj(*np, GFP_ATOMIC);
if (!np)
return NULL;
@@ -1697,7 +1697,7 @@ int ncsi_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid)
return -ENOSPC;
}
- vlan = kzalloc(sizeof(*vlan), GFP_KERNEL);
+ vlan = kzalloc_obj(*vlan, GFP_KERNEL);
if (!vlan)
return -ENOMEM;
@@ -1767,7 +1767,7 @@ struct ncsi_dev *ncsi_register_dev(struct net_device *dev,
return nd;
/* Create NCSI device */
- ndp = kzalloc(sizeof(*ndp), GFP_ATOMIC);
+ ndp = kzalloc_obj(*ndp, GFP_ATOMIC);
if (!ndp)
return NULL;
diff --git a/net/netfilter/ipset/ip_set_core.c b/net/netfilter/ipset/ip_set_core.c
index cc20e6d56807..c3beef6155b6 100644
--- a/net/netfilter/ipset/ip_set_core.c
+++ b/net/netfilter/ipset/ip_set_core.c
@@ -1077,7 +1077,7 @@ static int ip_set_create(struct sk_buff *skb, const struct nfnl_info *info,
/* First, and without any locks, allocate and initialize
* a normal base set structure.
*/
- set = kzalloc(sizeof(*set), GFP_KERNEL);
+ set = kzalloc_obj(*set, GFP_KERNEL);
if (!set)
return -ENOMEM;
spin_lock_init(&set->lock);
@@ -1135,7 +1135,7 @@ static int ip_set_create(struct sk_buff *skb, const struct nfnl_info *info,
/* Wraparound */
goto cleanup;
- list = kvcalloc(i, sizeof(struct ip_set *), GFP_KERNEL);
+ list = kvzalloc_objs(struct ip_set *, i, GFP_KERNEL);
if (!list)
goto cleanup;
/* nfnl mutex is held, both lists are valid */
@@ -2377,7 +2377,7 @@ ip_set_net_init(struct net *net)
if (inst->ip_set_max >= IPSET_INVALID_ID)
inst->ip_set_max = IPSET_INVALID_ID - 1;
- list = kvcalloc(inst->ip_set_max, sizeof(struct ip_set *), GFP_KERNEL);
+ list = kvzalloc_objs(struct ip_set *, inst->ip_set_max, GFP_KERNEL);
if (!list)
return -ENOMEM;
inst->is_deleted = false;
diff --git a/net/netfilter/ipset/ip_set_hash_gen.h b/net/netfilter/ipset/ip_set_hash_gen.h
index 5e4453e9ef8e..181daa9c2019 100644
--- a/net/netfilter/ipset/ip_set_hash_gen.h
+++ b/net/netfilter/ipset/ip_set_hash_gen.h
@@ -998,7 +998,7 @@ mtype_add(struct ip_set *set, void *value, const struct ip_set_ext *ext,
/* Resize is in process and kernel side add, save values */
struct mtype_resize_ad *x;
- x = kzalloc(sizeof(struct mtype_resize_ad), GFP_ATOMIC);
+ x = kzalloc_obj(struct mtype_resize_ad, GFP_ATOMIC);
if (!x)
/* Don't bother */
goto out;
@@ -1086,8 +1086,7 @@ mtype_del(struct ip_set *set, void *value, const struct ip_set_ext *ext,
/* Resize is in process and kernel side del,
* save values
*/
- x = kzalloc(sizeof(struct mtype_resize_ad),
- GFP_ATOMIC);
+ x = kzalloc_obj(struct mtype_resize_ad, GFP_ATOMIC);
if (x) {
x->ad = IPSET_DEL;
memcpy(&x->d, value,
diff --git a/net/netfilter/ipset/ip_set_list_set.c b/net/netfilter/ipset/ip_set_list_set.c
index 13c7a08aa868..39165c014bd9 100644
--- a/net/netfilter/ipset/ip_set_list_set.c
+++ b/net/netfilter/ipset/ip_set_list_set.c
@@ -598,7 +598,7 @@ init_list_set(struct net *net, struct ip_set *set, u32 size)
{
struct list_set *map;
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (!map)
return false;
diff --git a/net/netfilter/ipvs/ip_vs_conn.c b/net/netfilter/ipvs/ip_vs_conn.c
index 50cc492c7553..e05991ec49f3 100644
--- a/net/netfilter/ipvs/ip_vs_conn.c
+++ b/net/netfilter/ipvs/ip_vs_conn.c
@@ -1510,8 +1510,8 @@ int __init ip_vs_conn_init(void)
*/
tab_array_size = array_size(ip_vs_conn_tab_size,
sizeof(*ip_vs_conn_tab));
- ip_vs_conn_tab = kvmalloc_array(ip_vs_conn_tab_size,
- sizeof(*ip_vs_conn_tab), GFP_KERNEL);
+ ip_vs_conn_tab = kvmalloc_objs(*ip_vs_conn_tab, ip_vs_conn_tab_size,
+ GFP_KERNEL);
if (!ip_vs_conn_tab)
return -ENOMEM;
diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c
index 068702894377..d38867c52180 100644
--- a/net/netfilter/ipvs/ip_vs_ctl.c
+++ b/net/netfilter/ipvs/ip_vs_ctl.c
@@ -938,7 +938,7 @@ int ip_vs_stats_init_alloc(struct ip_vs_stats *s)
struct ip_vs_stats *ip_vs_stats_alloc(void)
{
- struct ip_vs_stats *s = kzalloc(sizeof(*s), GFP_KERNEL);
+ struct ip_vs_stats *s = kzalloc_obj(*s, GFP_KERNEL);
if (s && ip_vs_stats_init_alloc(s) >= 0)
return s;
@@ -1079,7 +1079,7 @@ ip_vs_new_dest(struct ip_vs_service *svc, struct ip_vs_dest_user_kern *udest)
return -EINVAL;
}
- dest = kzalloc(sizeof(struct ip_vs_dest), GFP_KERNEL);
+ dest = kzalloc_obj(struct ip_vs_dest, GFP_KERNEL);
if (dest == NULL)
return -ENOMEM;
@@ -1421,7 +1421,7 @@ ip_vs_add_service(struct netns_ipvs *ipvs, struct ip_vs_service_user_kern *u,
ret_hooks = ret;
}
- svc = kzalloc(sizeof(struct ip_vs_service), GFP_KERNEL);
+ svc = kzalloc_obj(struct ip_vs_service, GFP_KERNEL);
if (svc == NULL) {
IP_VS_DBG(1, "%s(): no memory\n", __func__);
ret = -ENOMEM;
@@ -4439,7 +4439,7 @@ int __net_init ip_vs_control_net_init(struct netns_ipvs *ipvs)
INIT_DELAYED_WORK(&ipvs->est_reload_work, est_reload_work_handler);
/* procfs stats */
- ipvs->tot_stats = kzalloc(sizeof(*ipvs->tot_stats), GFP_KERNEL);
+ ipvs->tot_stats = kzalloc_obj(*ipvs->tot_stats, GFP_KERNEL);
if (!ipvs->tot_stats)
goto out;
if (ip_vs_stats_init_alloc(&ipvs->tot_stats->s) < 0)
diff --git a/net/netfilter/ipvs/ip_vs_dh.c b/net/netfilter/ipvs/ip_vs_dh.c
index bb7aca4601ff..ac1d6f5bfe8a 100644
--- a/net/netfilter/ipvs/ip_vs_dh.c
+++ b/net/netfilter/ipvs/ip_vs_dh.c
@@ -153,7 +153,7 @@ static int ip_vs_dh_init_svc(struct ip_vs_service *svc)
struct ip_vs_dh_state *s;
/* allocate the DH table for this service */
- s = kzalloc(sizeof(struct ip_vs_dh_state), GFP_KERNEL);
+ s = kzalloc_obj(struct ip_vs_dh_state, GFP_KERNEL);
if (s == NULL)
return -ENOMEM;
diff --git a/net/netfilter/ipvs/ip_vs_est.c b/net/netfilter/ipvs/ip_vs_est.c
index 77f4f637ff67..06999a17519b 100644
--- a/net/netfilter/ipvs/ip_vs_est.c
+++ b/net/netfilter/ipvs/ip_vs_est.c
@@ -325,7 +325,7 @@ static int ip_vs_est_add_kthread(struct netns_ipvs *ipvs)
id = i;
}
- kd = kzalloc(sizeof(*kd), GFP_KERNEL);
+ kd = kzalloc_obj(*kd, GFP_KERNEL);
if (!kd)
goto out;
kd->ipvs = ipvs;
@@ -443,7 +443,7 @@ static int ip_vs_enqueue_estimator(struct netns_ipvs *ipvs,
td = rcu_dereference_protected(kd->ticks[row], 1);
if (!td) {
- td = kzalloc(sizeof(*td), GFP_KERNEL);
+ td = kzalloc_obj(*td, GFP_KERNEL);
if (!td) {
ret = -ENOMEM;
goto out;
diff --git a/net/netfilter/ipvs/ip_vs_lblc.c b/net/netfilter/ipvs/ip_vs_lblc.c
index e6c8ed0c92f6..36d91153712c 100644
--- a/net/netfilter/ipvs/ip_vs_lblc.c
+++ b/net/netfilter/ipvs/ip_vs_lblc.c
@@ -204,7 +204,7 @@ ip_vs_lblc_new(struct ip_vs_lblc_table *tbl, const union nf_inet_addr *daddr,
return en;
ip_vs_lblc_del(en);
}
- en = kmalloc(sizeof(*en), GFP_ATOMIC);
+ en = kmalloc_obj(*en, GFP_ATOMIC);
if (!en)
return NULL;
@@ -347,7 +347,7 @@ static int ip_vs_lblc_init_svc(struct ip_vs_service *svc)
/*
* Allocate the ip_vs_lblc_table for this service
*/
- tbl = kmalloc(sizeof(*tbl), GFP_KERNEL);
+ tbl = kmalloc_obj(*tbl, GFP_KERNEL);
if (tbl == NULL)
return -ENOMEM;
diff --git a/net/netfilter/ipvs/ip_vs_lblcr.c b/net/netfilter/ipvs/ip_vs_lblcr.c
index a25cf7bb6185..eba6600decbe 100644
--- a/net/netfilter/ipvs/ip_vs_lblcr.c
+++ b/net/netfilter/ipvs/ip_vs_lblcr.c
@@ -107,7 +107,7 @@ static void ip_vs_dest_set_insert(struct ip_vs_dest_set *set,
}
}
- e = kmalloc(sizeof(*e), GFP_ATOMIC);
+ e = kmalloc_obj(*e, GFP_ATOMIC);
if (e == NULL)
return;
@@ -363,7 +363,7 @@ ip_vs_lblcr_new(struct ip_vs_lblcr_table *tbl, const union nf_inet_addr *daddr,
en = ip_vs_lblcr_get(af, tbl, daddr);
if (!en) {
- en = kmalloc(sizeof(*en), GFP_ATOMIC);
+ en = kmalloc_obj(*en, GFP_ATOMIC);
if (!en)
return NULL;
@@ -510,7 +510,7 @@ static int ip_vs_lblcr_init_svc(struct ip_vs_service *svc)
/*
* Allocate the ip_vs_lblcr_table for this service
*/
- tbl = kmalloc(sizeof(*tbl), GFP_KERNEL);
+ tbl = kmalloc_obj(*tbl, GFP_KERNEL);
if (tbl == NULL)
return -ENOMEM;
diff --git a/net/netfilter/ipvs/ip_vs_mh.c b/net/netfilter/ipvs/ip_vs_mh.c
index f61f54004c9e..7f5be86bab4d 100644
--- a/net/netfilter/ipvs/ip_vs_mh.c
+++ b/net/netfilter/ipvs/ip_vs_mh.c
@@ -293,9 +293,8 @@ static int ip_vs_mh_reassign(struct ip_vs_mh_state *s,
return -EINVAL;
if (svc->num_dests >= 1) {
- s->dest_setup = kcalloc(svc->num_dests,
- sizeof(struct ip_vs_mh_dest_setup),
- GFP_KERNEL);
+ s->dest_setup = kzalloc_objs(struct ip_vs_mh_dest_setup,
+ svc->num_dests, GFP_KERNEL);
if (!s->dest_setup)
return -ENOMEM;
}
@@ -383,12 +382,12 @@ static int ip_vs_mh_init_svc(struct ip_vs_service *svc)
struct ip_vs_mh_state *s;
/* Allocate the MH table for this service */
- s = kzalloc(sizeof(*s), GFP_KERNEL);
+ s = kzalloc_obj(*s, GFP_KERNEL);
if (!s)
return -ENOMEM;
- s->lookup = kcalloc(IP_VS_MH_TAB_SIZE, sizeof(struct ip_vs_mh_lookup),
- GFP_KERNEL);
+ s->lookup = kzalloc_objs(struct ip_vs_mh_lookup, IP_VS_MH_TAB_SIZE,
+ GFP_KERNEL);
if (!s->lookup) {
kfree(s);
return -ENOMEM;
diff --git a/net/netfilter/ipvs/ip_vs_proto.c b/net/netfilter/ipvs/ip_vs_proto.c
index fd9dbca24c85..a62c1e8fc1da 100644
--- a/net/netfilter/ipvs/ip_vs_proto.c
+++ b/net/netfilter/ipvs/ip_vs_proto.c
@@ -66,7 +66,7 @@ register_ip_vs_proto_netns(struct netns_ipvs *ipvs, struct ip_vs_protocol *pp)
{
unsigned int hash = IP_VS_PROTO_HASH(pp->protocol);
struct ip_vs_proto_data *pd =
- kzalloc(sizeof(struct ip_vs_proto_data), GFP_KERNEL);
+ kzalloc_obj(struct ip_vs_proto_data, GFP_KERNEL);
if (!pd)
return -ENOMEM;
diff --git a/net/netfilter/ipvs/ip_vs_sh.c b/net/netfilter/ipvs/ip_vs_sh.c
index 0e85e07e23b9..a4616433b445 100644
--- a/net/netfilter/ipvs/ip_vs_sh.c
+++ b/net/netfilter/ipvs/ip_vs_sh.c
@@ -229,7 +229,7 @@ static int ip_vs_sh_init_svc(struct ip_vs_service *svc)
struct ip_vs_sh_state *s;
/* allocate the SH table for this service */
- s = kzalloc(sizeof(struct ip_vs_sh_state), GFP_KERNEL);
+ s = kzalloc_obj(struct ip_vs_sh_state, GFP_KERNEL);
if (s == NULL)
return -ENOMEM;
diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
index 54dd1514ac45..f83732777228 100644
--- a/net/netfilter/ipvs/ip_vs_sync.c
+++ b/net/netfilter/ipvs/ip_vs_sync.c
@@ -329,7 +329,7 @@ ip_vs_sync_buff_create(struct netns_ipvs *ipvs, unsigned int len)
{
struct ip_vs_sync_buff *sb;
- if (!(sb=kmalloc(sizeof(struct ip_vs_sync_buff), GFP_ATOMIC)))
+ if (!(sb=kmalloc_obj(struct ip_vs_sync_buff, GFP_ATOMIC)))
return NULL;
len = max_t(unsigned int, len + sizeof(struct ip_vs_sync_mesg),
@@ -417,7 +417,7 @@ ip_vs_sync_buff_create_v0(struct netns_ipvs *ipvs, unsigned int len)
struct ip_vs_sync_buff *sb;
struct ip_vs_sync_mesg_v0 *mesg;
- if (!(sb=kmalloc(sizeof(struct ip_vs_sync_buff), GFP_ATOMIC)))
+ if (!(sb=kmalloc_obj(struct ip_vs_sync_buff, GFP_ATOMIC)))
return NULL;
len = max_t(unsigned int, len + sizeof(struct ip_vs_sync_mesg_v0),
@@ -1827,7 +1827,7 @@ int start_sync_thread(struct netns_ipvs *ipvs, struct ipvs_sync_daemon_cfg *c,
struct ipvs_master_sync_state *ms;
result = -ENOMEM;
- ipvs->ms = kcalloc(count, sizeof(ipvs->ms[0]), GFP_KERNEL);
+ ipvs->ms = kzalloc_objs(ipvs->ms[0], count, GFP_KERNEL);
if (!ipvs->ms)
goto out;
ms = ipvs->ms;
@@ -1841,8 +1841,7 @@ int start_sync_thread(struct netns_ipvs *ipvs, struct ipvs_sync_daemon_cfg *c,
}
}
result = -ENOMEM;
- ti = kcalloc(count, sizeof(struct ip_vs_sync_thread_data),
- GFP_KERNEL);
+ ti = kzalloc_objs(struct ip_vs_sync_thread_data, count, GFP_KERNEL);
if (!ti)
goto out;
diff --git a/net/netfilter/ipvs/ip_vs_wrr.c b/net/netfilter/ipvs/ip_vs_wrr.c
index 99f09cbf2d9b..58c65af9830a 100644
--- a/net/netfilter/ipvs/ip_vs_wrr.c
+++ b/net/netfilter/ipvs/ip_vs_wrr.c
@@ -109,7 +109,7 @@ static int ip_vs_wrr_init_svc(struct ip_vs_service *svc)
/*
* Allocate the mark variable for WRR scheduling
*/
- mark = kmalloc(sizeof(struct ip_vs_wrr_mark), GFP_KERNEL);
+ mark = kmalloc_obj(struct ip_vs_wrr_mark, GFP_KERNEL);
if (mark == NULL)
return -ENOMEM;
diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c
index 4389bfe3050d..3601eb86d025 100644
--- a/net/netfilter/ipvs/ip_vs_xmit.c
+++ b/net/netfilter/ipvs/ip_vs_xmit.c
@@ -57,7 +57,7 @@ enum {
static inline struct ip_vs_dest_dst *ip_vs_dest_dst_alloc(void)
{
- return kmalloc(sizeof(struct ip_vs_dest_dst), GFP_ATOMIC);
+ return kmalloc_obj(struct ip_vs_dest_dst, GFP_ATOMIC);
}
static inline void ip_vs_dest_dst_free(struct ip_vs_dest_dst *dest_dst)
diff --git a/net/netfilter/nf_bpf_link.c b/net/netfilter/nf_bpf_link.c
index 46e667a50d98..6f3a6411f4af 100644
--- a/net/netfilter/nf_bpf_link.c
+++ b/net/netfilter/nf_bpf_link.c
@@ -221,7 +221,7 @@ int bpf_nf_link_attach(const union bpf_attr *attr, struct bpf_prog *prog)
if (err)
return err;
- link = kzalloc(sizeof(*link), GFP_USER);
+ link = kzalloc_obj(*link, GFP_USER);
if (!link)
return -ENOMEM;
diff --git a/net/netfilter/nf_conncount.c b/net/netfilter/nf_conncount.c
index 14e62b3263cd..520781335fc8 100644
--- a/net/netfilter/nf_conncount.c
+++ b/net/netfilter/nf_conncount.c
@@ -632,7 +632,7 @@ struct nf_conncount_data *nf_conncount_init(struct net *net, unsigned int keylen
net_get_random_once(&conncount_rnd, sizeof(conncount_rnd));
- data = kmalloc(sizeof(*data), GFP_KERNEL);
+ data = kmalloc_obj(*data, GFP_KERNEL);
if (!data)
return ERR_PTR(-ENOMEM);
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
index d1f8eb725d42..42da155ab028 100644
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
@@ -536,7 +536,7 @@ struct nf_conn *nf_ct_tmpl_alloc(struct net *net,
if (tmpl != p)
tmpl->proto.tmpl_padto = (char *)tmpl - (char *)p;
} else {
- tmpl = kzalloc(sizeof(*tmpl), flags);
+ tmpl = kzalloc_obj(*tmpl, flags);
if (!tmpl)
return NULL;
}
@@ -2535,7 +2535,7 @@ void *nf_ct_alloc_hashtable(unsigned int *sizep, int nulls)
if (nr_slots > (INT_MAX / sizeof(struct hlist_nulls_head)))
return NULL;
- hash = kvcalloc(nr_slots, sizeof(struct hlist_nulls_head), GFP_KERNEL);
+ hash = kvzalloc_objs(struct hlist_nulls_head, nr_slots, GFP_KERNEL);
if (hash && nulls)
for (i = 0; i < nr_slots; i++)
diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
index 662f6bbfa805..cd1ab584fb2f 100644
--- a/net/netfilter/nf_conntrack_netlink.c
+++ b/net/netfilter/nf_conntrack_netlink.c
@@ -999,7 +999,7 @@ ctnetlink_alloc_filter(const struct nlattr * const cda[], u8 family)
return ERR_PTR(-EOPNOTSUPP);
#endif
- filter = kzalloc(sizeof(*filter), GFP_KERNEL);
+ filter = kzalloc_obj(*filter, GFP_KERNEL);
if (filter == NULL)
return ERR_PTR(-ENOMEM);
diff --git a/net/netfilter/nf_conntrack_proto_gre.c b/net/netfilter/nf_conntrack_proto_gre.c
index b894bb7a97ad..94c19bc4edc5 100644
--- a/net/netfilter/nf_conntrack_proto_gre.c
+++ b/net/netfilter/nf_conntrack_proto_gre.c
@@ -108,7 +108,7 @@ int nf_ct_gre_keymap_add(struct nf_conn *ct, enum ip_conntrack_dir dir,
return -EEXIST;
}
- km = kmalloc(sizeof(*km), GFP_ATOMIC);
+ km = kmalloc_obj(*km, GFP_ATOMIC);
if (!km)
return -ENOMEM;
memcpy(&km->tuple, t, sizeof(*t));
diff --git a/net/netfilter/nf_flow_table_offload.c b/net/netfilter/nf_flow_table_offload.c
index b1966b68c48a..c95a18ca178b 100644
--- a/net/netfilter/nf_flow_table_offload.c
+++ b/net/netfilter/nf_flow_table_offload.c
@@ -741,7 +741,7 @@ nf_flow_offload_rule_alloc(struct net *net,
struct nf_flow_rule *flow_rule;
int err = -ENOMEM;
- flow_rule = kzalloc(sizeof(*flow_rule), GFP_KERNEL);
+ flow_rule = kzalloc_obj(*flow_rule, GFP_KERNEL);
if (!flow_rule)
goto err_flow;
@@ -1022,7 +1022,7 @@ nf_flow_offload_work_alloc(struct nf_flowtable *flowtable,
if (test_and_set_bit(NF_FLOW_HW_PENDING, &flow->flags))
return NULL;
- offload = kmalloc(sizeof(struct flow_offload_work), GFP_ATOMIC);
+ offload = kmalloc_obj(struct flow_offload_work, GFP_ATOMIC);
if (!offload) {
clear_bit(NF_FLOW_HW_PENDING, &flow->flags);
return NULL;
diff --git a/net/netfilter/nf_flow_table_xdp.c b/net/netfilter/nf_flow_table_xdp.c
index e1252d042699..86ac65e9b579 100644
--- a/net/netfilter/nf_flow_table_xdp.c
+++ b/net/netfilter/nf_flow_table_xdp.c
@@ -54,7 +54,7 @@ static int nf_flowtable_by_dev_insert(struct nf_flowtable *ft,
unsigned long key = (unsigned long)dev;
struct flow_offload_xdp_ft *ft_elem;
- ft_elem = kzalloc(sizeof(*ft_elem), GFP_KERNEL_ACCOUNT);
+ ft_elem = kzalloc_obj(*ft_elem, GFP_KERNEL_ACCOUNT);
if (!ft_elem)
return -ENOMEM;
@@ -70,7 +70,7 @@ static int nf_flowtable_by_dev_insert(struct nf_flowtable *ft,
}
if (!elem) {
- elem = kzalloc(sizeof(*elem), GFP_KERNEL_ACCOUNT);
+ elem = kzalloc_obj(*elem, GFP_KERNEL_ACCOUNT);
if (!elem)
goto err_unlock;
diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c
index 62cf6a30875e..f4d80654dfe6 100644
--- a/net/netfilter/nf_log.c
+++ b/net/netfilter/nf_log.c
@@ -317,7 +317,7 @@ EXPORT_SYMBOL_GPL(nf_log_buf_add);
struct nf_log_buf *nf_log_buf_open(void)
{
- struct nf_log_buf *m = kmalloc(sizeof(*m), GFP_ATOMIC);
+ struct nf_log_buf *m = kmalloc_obj(*m, GFP_ATOMIC);
if (unlikely(!m)) {
local_bh_disable();
diff --git a/net/netfilter/nf_nat_core.c b/net/netfilter/nf_nat_core.c
index e6b24586d2fe..b4053e5ee07f 100644
--- a/net/netfilter/nf_nat_core.c
+++ b/net/netfilter/nf_nat_core.c
@@ -1213,7 +1213,7 @@ int nf_nat_register_fn(struct net *net, u8 pf, const struct nf_hook_ops *ops,
}
for (i = 0; i < ops_count; i++) {
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (priv) {
nat_ops[i].priv = priv;
continue;
diff --git a/net/netfilter/nf_nat_masquerade.c b/net/netfilter/nf_nat_masquerade.c
index 1a506b0c6511..a5a23c03fda9 100644
--- a/net/netfilter/nf_nat_masquerade.c
+++ b/net/netfilter/nf_nat_masquerade.c
@@ -115,7 +115,7 @@ static void nf_nat_masq_schedule(struct net *net, union nf_inet_addr *addr,
if (!try_module_get(THIS_MODULE))
goto err_module;
- w = kzalloc(sizeof(*w), gfp_flags);
+ w = kzalloc_obj(*w, gfp_flags);
if (w) {
/* We can overshoot MAX_MASQ_WORKER_COUNT, no big deal */
atomic_inc(&masq_worker_count);
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
index 0c5a4855b97d..6044f1ec6953 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -1104,7 +1104,7 @@ __printf(2, 3) int nft_request_module(struct net *net, const char *fmt,
}
}
- req = kmalloc(sizeof(*req), GFP_KERNEL);
+ req = kmalloc_obj(*req, GFP_KERNEL);
if (!req)
return -ENOMEM;
@@ -1624,7 +1624,7 @@ static int nf_tables_newtable(struct sk_buff *skb, const struct nfnl_info *info,
}
err = -ENOMEM;
- table = kzalloc(sizeof(*table), GFP_KERNEL_ACCOUNT);
+ table = kzalloc_obj(*table, GFP_KERNEL_ACCOUNT);
if (table == NULL)
goto err_kzalloc;
@@ -2348,7 +2348,7 @@ static struct nft_hook *nft_netdev_hook_alloc(struct net *net,
struct nft_hook *hook;
int err;
- hook = kzalloc(sizeof(struct nft_hook), GFP_KERNEL_ACCOUNT);
+ hook = kzalloc_obj(struct nft_hook, GFP_KERNEL_ACCOUNT);
if (!hook)
return ERR_PTR(-ENOMEM);
@@ -2369,7 +2369,7 @@ static struct nft_hook *nft_netdev_hook_alloc(struct net *net,
if (strncmp(dev->name, hook->ifname, hook->ifnamelen))
continue;
- ops = kzalloc(sizeof(struct nf_hook_ops), GFP_KERNEL_ACCOUNT);
+ ops = kzalloc_obj(struct nf_hook_ops, GFP_KERNEL_ACCOUNT);
if (!ops) {
err = -ENOMEM;
goto err_hook_free;
@@ -2716,7 +2716,7 @@ static int nf_tables_addchain(struct nft_ctx *ctx, u8 family, u8 policy,
if (err < 0)
return err;
- basechain = kzalloc(sizeof(*basechain), GFP_KERNEL_ACCOUNT);
+ basechain = kzalloc_obj(*basechain, GFP_KERNEL_ACCOUNT);
if (basechain == NULL) {
nft_chain_release_hook(&hook);
return -ENOMEM;
@@ -2748,7 +2748,7 @@ static int nf_tables_addchain(struct nft_ctx *ctx, u8 family, u8 policy,
if (flags & NFT_CHAIN_HW_OFFLOAD)
return -EOPNOTSUPP;
- chain = kzalloc(sizeof(*chain), GFP_KERNEL_ACCOUNT);
+ chain = kzalloc_obj(*chain, GFP_KERNEL_ACCOUNT);
if (chain == NULL)
return -ENOMEM;
@@ -4315,9 +4315,8 @@ static int nf_tables_newrule(struct sk_buff *skb, const struct nfnl_info *info,
n = 0;
size = 0;
if (nla[NFTA_RULE_EXPRESSIONS]) {
- expr_info = kvmalloc_array(NFT_RULE_MAXEXPRS,
- sizeof(struct nft_expr_info),
- GFP_KERNEL);
+ expr_info = kvmalloc_objs(struct nft_expr_info,
+ NFT_RULE_MAXEXPRS, GFP_KERNEL);
if (!expr_info)
return -ENOMEM;
@@ -6929,7 +6928,7 @@ static int nft_setelem_catchall_insert(const struct net *net,
}
}
- catchall = kmalloc(sizeof(*catchall), GFP_KERNEL_ACCOUNT);
+ catchall = kmalloc_obj(*catchall, GFP_KERNEL_ACCOUNT);
if (!catchall)
return -ENOMEM;
@@ -8076,7 +8075,7 @@ static struct nft_object *nft_obj_init(const struct nft_ctx *ctx,
struct nft_object *obj;
int err = -ENOMEM;
- tb = kmalloc_array(type->maxattr + 1, sizeof(*tb), GFP_KERNEL);
+ tb = kmalloc_objs(*tb, type->maxattr + 1, GFP_KERNEL);
if (!tb)
goto err1;
@@ -9145,7 +9144,7 @@ static int nf_tables_newflowtable(struct sk_buff *skb,
if (!nft_use_inc(&table->use))
return -EMFILE;
- flowtable = kzalloc(sizeof(*flowtable), GFP_KERNEL_ACCOUNT);
+ flowtable = kzalloc_obj(*flowtable, GFP_KERNEL_ACCOUNT);
if (!flowtable) {
err = -ENOMEM;
goto flowtable_alloc;
@@ -9465,7 +9464,7 @@ static int nf_tables_dump_flowtable_start(struct netlink_callback *cb)
struct nft_flowtable_filter *filter = NULL;
if (nla[NFTA_FLOWTABLE_TABLE]) {
- filter = kzalloc(sizeof(*filter), GFP_ATOMIC);
+ filter = kzalloc_obj(*filter, GFP_ATOMIC);
if (!filter)
return -ENOMEM;
@@ -9682,8 +9681,8 @@ static int nft_flowtable_event(unsigned long event, struct net_device *dev,
if (!match || (changename && ops))
continue;
- ops = kzalloc(sizeof(struct nf_hook_ops),
- GFP_KERNEL_ACCOUNT);
+ ops = kzalloc_obj(struct nf_hook_ops,
+ GFP_KERNEL_ACCOUNT);
if (!ops)
return 1;
@@ -10453,7 +10452,7 @@ struct nft_trans_gc *nft_trans_gc_alloc(struct nft_set *set,
struct net *net = read_pnet(&set->net);
struct nft_trans_gc *trans;
- trans = kzalloc(sizeof(*trans), gfp);
+ trans = kzalloc_obj(*trans, gfp);
if (!trans)
return NULL;
@@ -10689,7 +10688,7 @@ static int nf_tables_commit_audit_alloc(struct list_head *adl,
if (adp->table == table)
return 0;
}
- adp = kzalloc(sizeof(*adp), GFP_KERNEL);
+ adp = kzalloc_obj(*adp, GFP_KERNEL);
if (!adp)
return -ENOMEM;
adp->table = table;
diff --git a/net/netfilter/nf_tables_offload.c b/net/netfilter/nf_tables_offload.c
index fd30e205de84..42f11cb0c0f5 100644
--- a/net/netfilter/nf_tables_offload.c
+++ b/net/netfilter/nf_tables_offload.c
@@ -11,7 +11,7 @@ static struct nft_flow_rule *nft_flow_rule_alloc(int num_actions)
{
struct nft_flow_rule *flow;
- flow = kzalloc(sizeof(struct nft_flow_rule), GFP_KERNEL);
+ flow = kzalloc_obj(struct nft_flow_rule, GFP_KERNEL);
if (!flow)
return NULL;
@@ -111,7 +111,7 @@ struct nft_flow_rule *nft_flow_rule_create(struct net *net,
expr = nft_expr_first(rule);
- ctx = kzalloc(sizeof(struct nft_offload_ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(struct nft_offload_ctx, GFP_KERNEL);
if (!ctx) {
err = -ENOMEM;
goto err_out;
diff --git a/net/netfilter/nfnetlink.c b/net/netfilter/nfnetlink.c
index 811d02b4c4f7..39c3d54de9f6 100644
--- a/net/netfilter/nfnetlink.c
+++ b/net/netfilter/nfnetlink.c
@@ -325,7 +325,7 @@ static int nfnl_err_add(struct list_head *list, struct nlmsghdr *nlh, int err,
{
struct nfnl_err *nfnl_err;
- nfnl_err = kmalloc(sizeof(struct nfnl_err), GFP_KERNEL);
+ nfnl_err = kmalloc_obj(struct nfnl_err, GFP_KERNEL);
if (nfnl_err == NULL)
return -ENOMEM;
diff --git a/net/netfilter/nfnetlink_acct.c b/net/netfilter/nfnetlink_acct.c
index 505f46a32173..bd3d960a1adb 100644
--- a/net/netfilter/nfnetlink_acct.c
+++ b/net/netfilter/nfnetlink_acct.c
@@ -260,7 +260,7 @@ static int nfnl_acct_start(struct netlink_callback *cb)
if (!tb[NFACCT_FILTER_MASK] || !tb[NFACCT_FILTER_VALUE])
return -EINVAL;
- filter = kzalloc(sizeof(struct nfacct_filter), GFP_KERNEL);
+ filter = kzalloc_obj(struct nfacct_filter, GFP_KERNEL);
if (!filter)
return -ENOMEM;
diff --git a/net/netfilter/nfnetlink_cthelper.c b/net/netfilter/nfnetlink_cthelper.c
index 97248963a7d3..1a3d333e45dd 100644
--- a/net/netfilter/nfnetlink_cthelper.c
+++ b/net/netfilter/nfnetlink_cthelper.c
@@ -192,9 +192,8 @@ nfnl_cthelper_parse_expect_policy(struct nf_conntrack_helper *helper,
if (class_max > NF_CT_MAX_EXPECT_CLASSES)
return -EOVERFLOW;
- expect_policy = kcalloc(class_max,
- sizeof(struct nf_conntrack_expect_policy),
- GFP_KERNEL);
+ expect_policy = kzalloc_objs(struct nf_conntrack_expect_policy,
+ class_max, GFP_KERNEL);
if (expect_policy == NULL)
return -ENOMEM;
@@ -228,7 +227,7 @@ nfnl_cthelper_create(const struct nlattr * const tb[],
if (!tb[NFCTH_TUPLE] || !tb[NFCTH_POLICY] || !tb[NFCTH_PRIV_DATA_LEN])
return -EINVAL;
- nfcth = kzalloc(sizeof(*nfcth), GFP_KERNEL);
+ nfcth = kzalloc_obj(*nfcth, GFP_KERNEL);
if (nfcth == NULL)
return -ENOMEM;
helper = &nfcth->helper;
@@ -323,8 +322,8 @@ static int nfnl_cthelper_update_policy_all(struct nlattr *tb[],
struct nf_conntrack_expect_policy *policy;
int i, ret = 0;
- new_policy = kmalloc_array(helper->expect_class_max + 1,
- sizeof(*new_policy), GFP_KERNEL);
+ new_policy = kmalloc_objs(*new_policy, helper->expect_class_max + 1,
+ GFP_KERNEL);
if (!new_policy)
return -ENOMEM;
diff --git a/net/netfilter/nfnetlink_cttimeout.c b/net/netfilter/nfnetlink_cttimeout.c
index 38d75484e531..6b91f9d3161a 100644
--- a/net/netfilter/nfnetlink_cttimeout.c
+++ b/net/netfilter/nfnetlink_cttimeout.c
@@ -74,8 +74,7 @@ ctnl_timeout_parse_policy(void *timeout,
struct nlattr **tb;
int ret = 0;
- tb = kcalloc(l4proto->ctnl_timeout.nlattr_max + 1, sizeof(*tb),
- GFP_KERNEL);
+ tb = kzalloc_objs(*tb, l4proto->ctnl_timeout.nlattr_max + 1, GFP_KERNEL);
if (!tb)
return -ENOMEM;
diff --git a/net/netfilter/nfnetlink_hook.c b/net/netfilter/nfnetlink_hook.c
index 92d869317cba..c2a572d86853 100644
--- a/net/netfilter/nfnetlink_hook.c
+++ b/net/netfilter/nfnetlink_hook.c
@@ -408,7 +408,7 @@ static int nfnl_hook_dump_start(struct netlink_callback *cb)
if (head && IS_ERR(head))
return PTR_ERR(head);
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
index bfcb9cd335bf..b35a90955e2e 100644
--- a/net/netfilter/nfnetlink_log.c
+++ b/net/netfilter/nfnetlink_log.c
@@ -179,7 +179,7 @@ instance_create(struct net *net, u_int16_t group_num,
goto out_unlock;
}
- inst = kzalloc(sizeof(*inst), GFP_ATOMIC);
+ inst = kzalloc_obj(*inst, GFP_ATOMIC);
if (!inst) {
err = -ENOMEM;
goto out_unlock;
diff --git a/net/netfilter/nfnetlink_osf.c b/net/netfilter/nfnetlink_osf.c
index c0fc431991e8..1ba43e562a5e 100644
--- a/net/netfilter/nfnetlink_osf.c
+++ b/net/netfilter/nfnetlink_osf.c
@@ -323,7 +323,7 @@ static int nfnl_osf_add_callback(struct sk_buff *skb,
!memchr(f->version, 0, MAXGENRELEN))
return -EINVAL;
- kf = kmalloc(sizeof(struct nf_osf_finger), GFP_KERNEL);
+ kf = kmalloc_obj(struct nf_osf_finger, GFP_KERNEL);
if (!kf)
return -ENOMEM;
diff --git a/net/netfilter/nfnetlink_queue.c b/net/netfilter/nfnetlink_queue.c
index f1c8049861a6..7f5248b5f1ee 100644
--- a/net/netfilter/nfnetlink_queue.c
+++ b/net/netfilter/nfnetlink_queue.c
@@ -178,7 +178,7 @@ instance_create(struct nfnl_queue_net *q, u_int16_t queue_num, u32 portid)
unsigned int h;
int err;
- inst = kzalloc(sizeof(*inst), GFP_KERNEL_ACCOUNT);
+ inst = kzalloc_obj(*inst, GFP_KERNEL_ACCOUNT);
if (!inst)
return ERR_PTR(-ENOMEM);
diff --git a/net/netfilter/nft_compat.c b/net/netfilter/nft_compat.c
index 08f620311b03..27cc983a7cdf 100644
--- a/net/netfilter/nft_compat.c
+++ b/net/netfilter/nft_compat.c
@@ -815,7 +815,7 @@ nft_match_select_ops(const struct nft_ctx *ctx,
goto err;
}
- ops = kzalloc(sizeof(struct nft_expr_ops), GFP_KERNEL_ACCOUNT);
+ ops = kzalloc_obj(struct nft_expr_ops, GFP_KERNEL_ACCOUNT);
if (!ops) {
err = -ENOMEM;
goto err;
@@ -905,7 +905,7 @@ nft_target_select_ops(const struct nft_ctx *ctx,
goto err;
}
- ops = kzalloc(sizeof(struct nft_expr_ops), GFP_KERNEL_ACCOUNT);
+ ops = kzalloc_obj(struct nft_expr_ops, GFP_KERNEL_ACCOUNT);
if (!ops) {
err = -ENOMEM;
goto err;
diff --git a/net/netfilter/nft_connlimit.c b/net/netfilter/nft_connlimit.c
index 657764774a2d..43357f99eb00 100644
--- a/net/netfilter/nft_connlimit.c
+++ b/net/netfilter/nft_connlimit.c
@@ -71,7 +71,7 @@ static int nft_connlimit_do_init(const struct nft_ctx *ctx,
invert = true;
}
- priv->list = kmalloc(sizeof(*priv->list), GFP_KERNEL_ACCOUNT);
+ priv->list = kmalloc_obj(*priv->list, GFP_KERNEL_ACCOUNT);
if (!priv->list)
return -ENOMEM;
@@ -220,7 +220,7 @@ static int nft_connlimit_clone(struct nft_expr *dst, const struct nft_expr *src,
struct nft_connlimit *priv_dst = nft_expr_priv(dst);
struct nft_connlimit *priv_src = nft_expr_priv(src);
- priv_dst->list = kmalloc(sizeof(*priv_dst->list), gfp);
+ priv_dst->list = kmalloc_obj(*priv_dst->list, gfp);
if (!priv_dst->list)
return -ENOMEM;
diff --git a/net/netfilter/nft_ct.c b/net/netfilter/nft_ct.c
index 6f2ae7cad731..8d7f6c8e8aad 100644
--- a/net/netfilter/nft_ct.c
+++ b/net/netfilter/nft_ct.c
@@ -894,8 +894,7 @@ nft_ct_timeout_parse_policy(void *timeouts,
struct nlattr **tb;
int ret = 0;
- tb = kcalloc(l4proto->ctnl_timeout.nlattr_max + 1, sizeof(*tb),
- GFP_KERNEL);
+ tb = kzalloc_objs(*tb, l4proto->ctnl_timeout.nlattr_max + 1, GFP_KERNEL);
if (!tb)
return -ENOMEM;
diff --git a/net/netfilter/nft_last.c b/net/netfilter/nft_last.c
index de1b6066bfa8..20706be12807 100644
--- a/net/netfilter/nft_last.c
+++ b/net/netfilter/nft_last.c
@@ -30,7 +30,7 @@ static int nft_last_init(const struct nft_ctx *ctx, const struct nft_expr *expr,
u64 last_jiffies;
int err;
- last = kzalloc(sizeof(*last), GFP_KERNEL_ACCOUNT);
+ last = kzalloc_obj(*last, GFP_KERNEL_ACCOUNT);
if (!last)
return -ENOMEM;
@@ -107,7 +107,7 @@ static int nft_last_clone(struct nft_expr *dst, const struct nft_expr *src, gfp_
struct nft_last_priv *priv_dst = nft_expr_priv(dst);
struct nft_last_priv *priv_src = nft_expr_priv(src);
- priv_dst->last = kzalloc(sizeof(*priv_dst->last), gfp);
+ priv_dst->last = kzalloc_obj(*priv_dst->last, gfp);
if (!priv_dst->last)
return -ENOMEM;
diff --git a/net/netfilter/nft_limit.c b/net/netfilter/nft_limit.c
index 21d26b79b460..f3b1f791942b 100644
--- a/net/netfilter/nft_limit.c
+++ b/net/netfilter/nft_limit.c
@@ -110,7 +110,7 @@ static int nft_limit_init(struct nft_limit_priv *priv,
invert = true;
}
- priv->limit = kmalloc(sizeof(*priv->limit), GFP_KERNEL_ACCOUNT);
+ priv->limit = kmalloc_obj(*priv->limit, GFP_KERNEL_ACCOUNT);
if (!priv->limit)
return -ENOMEM;
@@ -158,7 +158,7 @@ static int nft_limit_clone(struct nft_limit_priv *priv_dst,
priv_dst->burst = priv_src->burst;
priv_dst->invert = priv_src->invert;
- priv_dst->limit = kmalloc(sizeof(*priv_dst->limit), gfp);
+ priv_dst->limit = kmalloc_obj(*priv_dst->limit, gfp);
if (!priv_dst->limit)
return -ENOMEM;
diff --git a/net/netfilter/nft_numgen.c b/net/netfilter/nft_numgen.c
index bd058babfc82..0a39e51ec9b7 100644
--- a/net/netfilter/nft_numgen.c
+++ b/net/netfilter/nft_numgen.c
@@ -66,7 +66,7 @@ static int nft_ng_inc_init(const struct nft_ctx *ctx,
if (priv->offset + priv->modulus - 1 < priv->offset)
return -EOVERFLOW;
- priv->counter = kmalloc(sizeof(*priv->counter), GFP_KERNEL_ACCOUNT);
+ priv->counter = kmalloc_obj(*priv->counter, GFP_KERNEL_ACCOUNT);
if (!priv->counter)
return -ENOMEM;
diff --git a/net/netfilter/nft_quota.c b/net/netfilter/nft_quota.c
index cb6c0e04ff67..2390a993aed9 100644
--- a/net/netfilter/nft_quota.c
+++ b/net/netfilter/nft_quota.c
@@ -96,7 +96,7 @@ static int nft_quota_do_init(const struct nlattr * const tb[],
return -EOPNOTSUPP;
}
- priv->consumed = kmalloc(sizeof(*priv->consumed), GFP_KERNEL_ACCOUNT);
+ priv->consumed = kmalloc_obj(*priv->consumed, GFP_KERNEL_ACCOUNT);
if (!priv->consumed)
return -ENOMEM;
@@ -248,7 +248,7 @@ static int nft_quota_clone(struct nft_expr *dst, const struct nft_expr *src, gfp
priv_dst->quota = priv_src->quota;
priv_dst->flags = priv_src->flags;
- priv_dst->consumed = kmalloc(sizeof(*priv_dst->consumed), gfp);
+ priv_dst->consumed = kmalloc_obj(*priv_dst->consumed, gfp);
if (!priv_dst->consumed)
return -ENOMEM;
diff --git a/net/netfilter/nft_set_pipapo.c b/net/netfilter/nft_set_pipapo.c
index 18e1903b1d3d..6341b5bcb4cf 100644
--- a/net/netfilter/nft_set_pipapo.c
+++ b/net/netfilter/nft_set_pipapo.c
@@ -652,7 +652,7 @@ static int pipapo_realloc_mt(struct nft_pipapo_field *f,
if (rules_alloc > (INT_MAX / sizeof(*new_mt)))
return -ENOMEM;
- new_mt = kvmalloc_array(rules_alloc, sizeof(*new_mt), GFP_KERNEL_ACCOUNT);
+ new_mt = kvmalloc_objs(*new_mt, rules_alloc, GFP_KERNEL_ACCOUNT);
if (!new_mt)
return -ENOMEM;
@@ -1413,7 +1413,7 @@ static struct nft_pipapo_match *pipapo_clone(struct nft_pipapo_match *old)
struct nft_pipapo_match *new;
int i;
- new = kmalloc(struct_size(new, f, old->field_count), GFP_KERNEL_ACCOUNT);
+ new = kmalloc_flex(*new, f, old->field_count, GFP_KERNEL_ACCOUNT);
if (!new)
return NULL;
@@ -1460,9 +1460,8 @@ static struct nft_pipapo_match *pipapo_clone(struct nft_pipapo_match *old)
if (src->rules_alloc > (INT_MAX / sizeof(*src->mt)))
goto out_mt;
- dst->mt = kvmalloc_array(src->rules_alloc,
- sizeof(*src->mt),
- GFP_KERNEL_ACCOUNT);
+ dst->mt = kvmalloc_objs(*src->mt, src->rules_alloc,
+ GFP_KERNEL_ACCOUNT);
if (!dst->mt)
goto out_mt;
@@ -2237,7 +2236,7 @@ static int nft_pipapo_init(const struct nft_set *set,
if (field_count > NFT_PIPAPO_MAX_FIELDS)
return -EINVAL;
- m = kmalloc(struct_size(m, f, field_count), GFP_KERNEL);
+ m = kmalloc_flex(*m, f, field_count, GFP_KERNEL);
if (!m)
return -ENOMEM;
diff --git a/net/netfilter/nft_set_rbtree.c b/net/netfilter/nft_set_rbtree.c
index 644d4b916705..3f02e4478216 100644
--- a/net/netfilter/nft_set_rbtree.c
+++ b/net/netfilter/nft_set_rbtree.c
@@ -586,8 +586,8 @@ static int nft_array_intervals_alloc(struct nft_array *array, u32 max_intervals)
{
struct nft_array_interval *intervals;
- intervals = kvcalloc(max_intervals, sizeof(struct nft_array_interval),
- GFP_KERNEL_ACCOUNT);
+ intervals = kvzalloc_objs(struct nft_array_interval, max_intervals,
+ GFP_KERNEL_ACCOUNT);
if (!intervals)
return -ENOMEM;
@@ -604,7 +604,7 @@ static struct nft_array *nft_array_alloc(u32 max_intervals)
{
struct nft_array *array;
- array = kzalloc(sizeof(*array), GFP_KERNEL_ACCOUNT);
+ array = kzalloc_obj(*array, GFP_KERNEL_ACCOUNT);
if (!array)
return NULL;
diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c
index 48105ea3df15..f5d720c9ee32 100644
--- a/net/netfilter/x_tables.c
+++ b/net/netfilter/x_tables.c
@@ -1742,7 +1742,7 @@ xt_hook_ops_alloc(const struct xt_table *table, nf_hookfn *fn)
if (!num_hooks)
return ERR_PTR(-EINVAL);
- ops = kcalloc(num_hooks, sizeof(*ops), GFP_KERNEL);
+ ops = kzalloc_objs(*ops, num_hooks, GFP_KERNEL);
if (ops == NULL)
return ERR_PTR(-ENOMEM);
@@ -1775,7 +1775,7 @@ int xt_register_template(const struct xt_table *table,
}
ret = -ENOMEM;
- t = kzalloc(sizeof(*t), GFP_KERNEL);
+ t = kzalloc_obj(*t, GFP_KERNEL);
if (!t)
goto out_unlock;
@@ -1993,7 +1993,7 @@ static int __init xt_init(void)
}
}
- xt = kcalloc(NFPROTO_NUMPROTO, sizeof(struct xt_af), GFP_KERNEL);
+ xt = kzalloc_objs(struct xt_af, NFPROTO_NUMPROTO, GFP_KERNEL);
if (!xt)
return -ENOMEM;
diff --git a/net/netfilter/xt_IDLETIMER.c b/net/netfilter/xt_IDLETIMER.c
index d73957592c9d..746abeee6775 100644
--- a/net/netfilter/xt_IDLETIMER.c
+++ b/net/netfilter/xt_IDLETIMER.c
@@ -135,7 +135,7 @@ static int idletimer_tg_create(struct idletimer_tg_info *info)
{
int ret;
- info->timer = kzalloc(sizeof(*info->timer), GFP_KERNEL);
+ info->timer = kzalloc_obj(*info->timer, GFP_KERNEL);
if (!info->timer) {
ret = -ENOMEM;
goto out;
@@ -184,7 +184,7 @@ static int idletimer_tg_create_v1(struct idletimer_tg_info_v1 *info)
{
int ret;
- info->timer = kmalloc(sizeof(*info->timer), GFP_KERNEL);
+ info->timer = kmalloc_obj(*info->timer, GFP_KERNEL);
if (!info->timer) {
ret = -ENOMEM;
goto out;
diff --git a/net/netfilter/xt_LED.c b/net/netfilter/xt_LED.c
index 90dcf088071a..6b21810e1b97 100644
--- a/net/netfilter/xt_LED.c
+++ b/net/netfilter/xt_LED.c
@@ -111,7 +111,7 @@ static int led_tg_check(const struct xt_tgchk_param *par)
}
err = -ENOMEM;
- ledinternal = kzalloc(sizeof(struct xt_led_info_internal), GFP_KERNEL);
+ ledinternal = kzalloc_obj(struct xt_led_info_internal, GFP_KERNEL);
if (!ledinternal)
goto exit_mutex_only;
diff --git a/net/netfilter/xt_RATEEST.c b/net/netfilter/xt_RATEEST.c
index 4f49cfc27831..d75b1e101a5b 100644
--- a/net/netfilter/xt_RATEEST.c
+++ b/net/netfilter/xt_RATEEST.c
@@ -139,7 +139,7 @@ static int xt_rateest_tg_checkentry(const struct xt_tgchk_param *par)
}
ret = -ENOMEM;
- est = kzalloc(sizeof(*est), GFP_KERNEL);
+ est = kzalloc_obj(*est, GFP_KERNEL);
if (!est)
goto err1;
diff --git a/net/netfilter/xt_TEE.c b/net/netfilter/xt_TEE.c
index a5ebd5640457..c6044ea31d16 100644
--- a/net/netfilter/xt_TEE.c
+++ b/net/netfilter/xt_TEE.c
@@ -106,7 +106,7 @@ static int tee_tg_check(const struct xt_tgchk_param *par)
if (info->oif[sizeof(info->oif)-1] != '\0')
return -EINVAL;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (priv == NULL)
return -ENOMEM;
diff --git a/net/netfilter/xt_hashlimit.c b/net/netfilter/xt_hashlimit.c
index 3b507694e81e..64ed12a32906 100644
--- a/net/netfilter/xt_hashlimit.c
+++ b/net/netfilter/xt_hashlimit.c
@@ -293,7 +293,7 @@ static int htable_create(struct net *net, struct hashlimit_cfg3 *cfg,
if (size < 16)
size = 16;
}
- hinfo = kvmalloc(struct_size(hinfo, hash, size), GFP_KERNEL);
+ hinfo = kvmalloc_flex(*hinfo, hash, size, GFP_KERNEL);
if (hinfo == NULL)
return -ENOMEM;
*out_hinfo = hinfo;
diff --git a/net/netfilter/xt_limit.c b/net/netfilter/xt_limit.c
index 8b4fd27857f2..203f8bb28132 100644
--- a/net/netfilter/xt_limit.c
+++ b/net/netfilter/xt_limit.c
@@ -115,7 +115,7 @@ static int limit_mt_check(const struct xt_mtchk_param *par)
return -ERANGE;
}
- priv = kmalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kmalloc_obj(*priv, GFP_KERNEL);
if (priv == NULL)
return -ENOMEM;
diff --git a/net/netfilter/xt_quota.c b/net/netfilter/xt_quota.c
index 4452cc93b990..7952a4ef4c51 100644
--- a/net/netfilter/xt_quota.c
+++ b/net/netfilter/xt_quota.c
@@ -50,7 +50,7 @@ static int quota_mt_check(const struct xt_mtchk_param *par)
if (q->flags & ~XT_QUOTA_MASK)
return -EINVAL;
- q->master = kmalloc(sizeof(*q->master), GFP_KERNEL);
+ q->master = kmalloc_obj(*q->master, GFP_KERNEL);
if (q->master == NULL)
return -ENOMEM;
diff --git a/net/netfilter/xt_recent.c b/net/netfilter/xt_recent.c
index 588a5e6ad899..c9a1cc591171 100644
--- a/net/netfilter/xt_recent.c
+++ b/net/netfilter/xt_recent.c
@@ -188,7 +188,7 @@ recent_entry_init(struct recent_table *t, const union nf_inet_addr *addr,
}
nstamps_max += 1;
- e = kmalloc(struct_size(e, stamps, nstamps_max), GFP_ATOMIC);
+ e = kmalloc_flex(*e, stamps, nstamps_max, GFP_ATOMIC);
if (e == NULL)
return NULL;
memcpy(&e->addr, addr, sizeof(e->addr));
@@ -391,7 +391,7 @@ static int recent_mt_check(const struct xt_mtchk_param *par,
goto out;
}
- t = kvzalloc(struct_size(t, iphash, ip_list_hash_size), GFP_KERNEL);
+ t = kvzalloc_flex(*t, iphash, ip_list_hash_size, GFP_KERNEL);
if (t == NULL) {
ret = -ENOMEM;
goto out;
diff --git a/net/netfilter/xt_statistic.c b/net/netfilter/xt_statistic.c
index b26c1dcfc27b..e80ddc317ca5 100644
--- a/net/netfilter/xt_statistic.c
+++ b/net/netfilter/xt_statistic.c
@@ -58,7 +58,7 @@ static int statistic_mt_check(const struct xt_mtchk_param *par)
info->flags & ~XT_STATISTIC_MASK)
return -EINVAL;
- info->master = kzalloc(sizeof(*info->master), GFP_KERNEL);
+ info->master = kzalloc_obj(*info->master, GFP_KERNEL);
if (info->master == NULL)
return -ENOMEM;
atomic_set(&info->master->count, info->u.nth.count);
diff --git a/net/netlabel/netlabel_calipso.c b/net/netlabel/netlabel_calipso.c
index a07c2216d28b..fae0bee5c065 100644
--- a/net/netlabel/netlabel_calipso.c
+++ b/net/netlabel/netlabel_calipso.c
@@ -95,7 +95,7 @@ static int netlbl_calipso_add_pass(struct genl_info *info,
int ret_val;
struct calipso_doi *doi_def = NULL;
- doi_def = kmalloc(sizeof(*doi_def), GFP_KERNEL);
+ doi_def = kmalloc_obj(*doi_def, GFP_KERNEL);
if (!doi_def)
return -ENOMEM;
doi_def->type = CALIPSO_MAP_PASS;
diff --git a/net/netlabel/netlabel_cipso_v4.c b/net/netlabel/netlabel_cipso_v4.c
index fa08ee75ac06..526f3dc3e67a 100644
--- a/net/netlabel/netlabel_cipso_v4.c
+++ b/net/netlabel/netlabel_cipso_v4.c
@@ -139,10 +139,10 @@ static int netlbl_cipsov4_add_std(struct genl_info *info,
NULL) != 0)
return -EINVAL;
- doi_def = kmalloc(sizeof(*doi_def), GFP_KERNEL);
+ doi_def = kmalloc_obj(*doi_def, GFP_KERNEL);
if (doi_def == NULL)
return -ENOMEM;
- doi_def->map.std = kzalloc(sizeof(*doi_def->map.std), GFP_KERNEL);
+ doi_def->map.std = kzalloc_obj(*doi_def->map.std, GFP_KERNEL);
if (doi_def->map.std == NULL) {
kfree(doi_def);
return -ENOMEM;
@@ -332,7 +332,7 @@ static int netlbl_cipsov4_add_pass(struct genl_info *info,
if (!info->attrs[NLBL_CIPSOV4_A_TAGLST])
return -EINVAL;
- doi_def = kmalloc(sizeof(*doi_def), GFP_KERNEL);
+ doi_def = kmalloc_obj(*doi_def, GFP_KERNEL);
if (doi_def == NULL)
return -ENOMEM;
doi_def->type = CIPSO_V4_MAP_PASS;
@@ -371,7 +371,7 @@ static int netlbl_cipsov4_add_local(struct genl_info *info,
if (!info->attrs[NLBL_CIPSOV4_A_TAGLST])
return -EINVAL;
- doi_def = kmalloc(sizeof(*doi_def), GFP_KERNEL);
+ doi_def = kmalloc_obj(*doi_def, GFP_KERNEL);
if (doi_def == NULL)
return -ENOMEM;
doi_def->type = CIPSO_V4_MAP_LOCAL;
diff --git a/net/netlabel/netlabel_domainhash.c b/net/netlabel/netlabel_domainhash.c
index 8158a25972b4..fc014849d6b3 100644
--- a/net/netlabel/netlabel_domainhash.c
+++ b/net/netlabel/netlabel_domainhash.c
@@ -367,13 +367,11 @@ int __init netlbl_domhsh_init(u32 size)
if (size == 0)
return -EINVAL;
- hsh_tbl = kmalloc(sizeof(*hsh_tbl), GFP_KERNEL);
+ hsh_tbl = kmalloc_obj(*hsh_tbl, GFP_KERNEL);
if (hsh_tbl == NULL)
return -ENOMEM;
hsh_tbl->size = 1 << size;
- hsh_tbl->tbl = kcalloc(hsh_tbl->size,
- sizeof(struct list_head),
- GFP_KERNEL);
+ hsh_tbl->tbl = kzalloc_objs(struct list_head, hsh_tbl->size, GFP_KERNEL);
if (hsh_tbl->tbl == NULL) {
kfree(hsh_tbl);
return -ENOMEM;
@@ -453,7 +451,7 @@ int netlbl_domhsh_add(struct netlbl_dom_map *entry,
ret_val = -EINVAL;
goto add_return;
}
- entry_b = kzalloc(sizeof(*entry_b), GFP_ATOMIC);
+ entry_b = kzalloc_obj(*entry_b, GFP_ATOMIC);
if (entry_b == NULL) {
ret_val = -ENOMEM;
goto add_return;
diff --git a/net/netlabel/netlabel_kapi.c b/net/netlabel/netlabel_kapi.c
index 33b77084a4e5..3583fa63dd01 100644
--- a/net/netlabel/netlabel_kapi.c
+++ b/net/netlabel/netlabel_kapi.c
@@ -104,7 +104,7 @@ int netlbl_cfg_unlbl_map_add(const char *domain,
struct netlbl_domaddr4_map *map4 = NULL;
struct netlbl_domaddr6_map *map6 = NULL;
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (entry == NULL)
return -ENOMEM;
if (domain != NULL) {
@@ -117,7 +117,7 @@ int netlbl_cfg_unlbl_map_add(const char *domain,
if (addr == NULL && mask == NULL)
entry->def.type = NETLBL_NLTYPE_UNLABELED;
else if (addr != NULL && mask != NULL) {
- addrmap = kzalloc(sizeof(*addrmap), GFP_ATOMIC);
+ addrmap = kzalloc_obj(*addrmap, GFP_ATOMIC);
if (addrmap == NULL)
goto cfg_unlbl_map_add_failure;
INIT_LIST_HEAD(&addrmap->list4);
@@ -127,7 +127,7 @@ int netlbl_cfg_unlbl_map_add(const char *domain,
case AF_INET: {
const struct in_addr *addr4 = addr;
const struct in_addr *mask4 = mask;
- map4 = kzalloc(sizeof(*map4), GFP_ATOMIC);
+ map4 = kzalloc_obj(*map4, GFP_ATOMIC);
if (map4 == NULL)
goto cfg_unlbl_map_add_failure;
map4->def.type = NETLBL_NLTYPE_UNLABELED;
@@ -144,7 +144,7 @@ int netlbl_cfg_unlbl_map_add(const char *domain,
case AF_INET6: {
const struct in6_addr *addr6 = addr;
const struct in6_addr *mask6 = mask;
- map6 = kzalloc(sizeof(*map6), GFP_ATOMIC);
+ map6 = kzalloc_obj(*map6, GFP_ATOMIC);
if (map6 == NULL)
goto cfg_unlbl_map_add_failure;
map6->def.type = NETLBL_NLTYPE_UNLABELED;
@@ -336,7 +336,7 @@ int netlbl_cfg_cipsov4_map_add(u32 doi,
if (doi_def == NULL)
return -ENOENT;
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (entry == NULL)
goto out_entry;
entry->family = AF_INET;
@@ -350,13 +350,13 @@ int netlbl_cfg_cipsov4_map_add(u32 doi,
entry->def.cipso = doi_def;
entry->def.type = NETLBL_NLTYPE_CIPSOV4;
} else if (addr != NULL && mask != NULL) {
- addrmap = kzalloc(sizeof(*addrmap), GFP_ATOMIC);
+ addrmap = kzalloc_obj(*addrmap, GFP_ATOMIC);
if (addrmap == NULL)
goto out_addrmap;
INIT_LIST_HEAD(&addrmap->list4);
INIT_LIST_HEAD(&addrmap->list6);
- addrinfo = kzalloc(sizeof(*addrinfo), GFP_ATOMIC);
+ addrinfo = kzalloc_obj(*addrinfo, GFP_ATOMIC);
if (addrinfo == NULL)
goto out_addrinfo;
addrinfo->def.cipso = doi_def;
@@ -462,7 +462,7 @@ int netlbl_cfg_calipso_map_add(u32 doi,
if (doi_def == NULL)
return -ENOENT;
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (entry == NULL)
goto out_entry;
entry->family = AF_INET6;
@@ -476,13 +476,13 @@ int netlbl_cfg_calipso_map_add(u32 doi,
entry->def.calipso = doi_def;
entry->def.type = NETLBL_NLTYPE_CALIPSO;
} else if (addr != NULL && mask != NULL) {
- addrmap = kzalloc(sizeof(*addrmap), GFP_ATOMIC);
+ addrmap = kzalloc_obj(*addrmap, GFP_ATOMIC);
if (addrmap == NULL)
goto out_addrmap;
INIT_LIST_HEAD(&addrmap->list4);
INIT_LIST_HEAD(&addrmap->list6);
- addrinfo = kzalloc(sizeof(*addrinfo), GFP_ATOMIC);
+ addrinfo = kzalloc_obj(*addrinfo, GFP_ATOMIC);
if (addrinfo == NULL)
goto out_addrinfo;
addrinfo->def.calipso = doi_def;
diff --git a/net/netlabel/netlabel_mgmt.c b/net/netlabel/netlabel_mgmt.c
index 079fe72a6384..13f45fbff824 100644
--- a/net/netlabel/netlabel_mgmt.c
+++ b/net/netlabel/netlabel_mgmt.c
@@ -84,7 +84,7 @@ static int netlbl_mgmt_add_common(struct genl_info *info,
struct calipso_doi *calipso = NULL;
#endif
u32 tmp_val;
- struct netlbl_dom_map *entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ struct netlbl_dom_map *entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -148,7 +148,7 @@ static int netlbl_mgmt_add_common(struct genl_info *info,
struct in_addr *mask;
struct netlbl_domaddr4_map *map;
- addrmap = kzalloc(sizeof(*addrmap), GFP_KERNEL);
+ addrmap = kzalloc_obj(*addrmap, GFP_KERNEL);
if (addrmap == NULL) {
ret_val = -ENOMEM;
goto add_doi_put_def;
@@ -169,7 +169,7 @@ static int netlbl_mgmt_add_common(struct genl_info *info,
addr = nla_data(info->attrs[NLBL_MGMT_A_IPV4ADDR]);
mask = nla_data(info->attrs[NLBL_MGMT_A_IPV4MASK]);
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (map == NULL) {
ret_val = -ENOMEM;
goto add_free_addrmap;
@@ -195,7 +195,7 @@ static int netlbl_mgmt_add_common(struct genl_info *info,
struct in6_addr *mask;
struct netlbl_domaddr6_map *map;
- addrmap = kzalloc(sizeof(*addrmap), GFP_KERNEL);
+ addrmap = kzalloc_obj(*addrmap, GFP_KERNEL);
if (addrmap == NULL) {
ret_val = -ENOMEM;
goto add_doi_put_def;
@@ -216,7 +216,7 @@ static int netlbl_mgmt_add_common(struct genl_info *info,
addr = nla_data(info->attrs[NLBL_MGMT_A_IPV6ADDR]);
mask = nla_data(info->attrs[NLBL_MGMT_A_IPV6MASK]);
- map = kzalloc(sizeof(*map), GFP_KERNEL);
+ map = kzalloc_obj(*map, GFP_KERNEL);
if (map == NULL) {
ret_val = -ENOMEM;
goto add_free_addrmap;
diff --git a/net/netlabel/netlabel_unlabeled.c b/net/netlabel/netlabel_unlabeled.c
index dfda9ea61971..ab68324c08d9 100644
--- a/net/netlabel/netlabel_unlabeled.c
+++ b/net/netlabel/netlabel_unlabeled.c
@@ -236,7 +236,7 @@ static int netlbl_unlhsh_add_addr4(struct netlbl_unlhsh_iface *iface,
int ret_val;
struct netlbl_unlhsh_addr4 *entry;
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (entry == NULL)
return -ENOMEM;
@@ -276,7 +276,7 @@ static int netlbl_unlhsh_add_addr6(struct netlbl_unlhsh_iface *iface,
int ret_val;
struct netlbl_unlhsh_addr6 *entry;
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (entry == NULL)
return -ENOMEM;
@@ -314,7 +314,7 @@ static struct netlbl_unlhsh_iface *netlbl_unlhsh_add_iface(int ifindex)
u32 bkt;
struct netlbl_unlhsh_iface *iface;
- iface = kzalloc(sizeof(*iface), GFP_ATOMIC);
+ iface = kzalloc_obj(*iface, GFP_ATOMIC);
if (iface == NULL)
return NULL;
@@ -1413,13 +1413,11 @@ int __init netlbl_unlabel_init(u32 size)
if (size == 0)
return -EINVAL;
- hsh_tbl = kmalloc(sizeof(*hsh_tbl), GFP_KERNEL);
+ hsh_tbl = kmalloc_obj(*hsh_tbl, GFP_KERNEL);
if (hsh_tbl == NULL)
return -ENOMEM;
hsh_tbl->size = 1 << size;
- hsh_tbl->tbl = kcalloc(hsh_tbl->size,
- sizeof(struct list_head),
- GFP_KERNEL);
+ hsh_tbl->tbl = kzalloc_objs(struct list_head, hsh_tbl->size, GFP_KERNEL);
if (hsh_tbl->tbl == NULL) {
kfree(hsh_tbl);
return -ENOMEM;
@@ -1534,7 +1532,7 @@ int __init netlbl_unlabel_defconf(void)
audit_info.loginuid = GLOBAL_ROOT_UID;
audit_info.sessionid = 0;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (entry == NULL)
return -ENOMEM;
entry->family = AF_UNSPEC;
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index 8e5151f0c6e4..2d91b8b8ba9a 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -2927,7 +2927,7 @@ static int __init netlink_proto_init(void)
BUILD_BUG_ON(sizeof(struct netlink_skb_parms) > sizeof_field(struct sk_buff, cb));
- nl_table = kcalloc(MAX_LINKS, sizeof(*nl_table), GFP_KERNEL);
+ nl_table = kzalloc_objs(*nl_table, MAX_LINKS, GFP_KERNEL);
if (!nl_table)
goto panic;
diff --git a/net/netlink/diag.c b/net/netlink/diag.c
index b8e58132e8af..25e930a64d07 100644
--- a/net/netlink/diag.c
+++ b/net/netlink/diag.c
@@ -107,7 +107,7 @@ static int __netlink_diag_dump(struct sk_buff *skb, struct netlink_callback *cb,
num--;
if (!hti) {
- hti = kmalloc(sizeof(*hti), GFP_KERNEL);
+ hti = kmalloc_obj(*hti, GFP_KERNEL);
if (!hti)
return -ENOMEM;
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
index 978c129c6095..ac1fdf7d7327 100644
--- a/net/netlink/genetlink.c
+++ b/net/netlink/genetlink.c
@@ -659,7 +659,7 @@ static int genl_sk_privs_alloc(struct genl_family *family)
if (!family->sock_priv_size)
return 0;
- family->sock_privs = kzalloc(sizeof(*family->sock_privs), GFP_KERNEL);
+ family->sock_privs = kzalloc_obj(*family->sock_privs, GFP_KERNEL);
if (!family->sock_privs)
return -ENOMEM;
xa_init(family->sock_privs);
@@ -912,7 +912,7 @@ EXPORT_SYMBOL(genlmsg_put);
static struct genl_dumpit_info *genl_dumpit_info_alloc(void)
{
- return kmalloc(sizeof(struct genl_dumpit_info), GFP_KERNEL);
+ return kmalloc_obj(struct genl_dumpit_info, GFP_KERNEL);
}
static void genl_dumpit_info_free(const struct genl_dumpit_info *info)
@@ -937,8 +937,7 @@ genl_family_rcv_msg_attrs_parse(const struct genl_family *family,
if (!ops->maxattr)
return NULL;
- attrbuf = kmalloc_array(ops->maxattr + 1,
- sizeof(struct nlattr *), GFP_KERNEL);
+ attrbuf = kmalloc_objs(struct nlattr *, ops->maxattr + 1, GFP_KERNEL);
if (!attrbuf)
return ERR_PTR(-ENOMEM);
@@ -1591,7 +1590,7 @@ static int ctrl_dumppolicy_start(struct netlink_callback *cb)
return 0;
}
- ctx->op_iter = kmalloc(sizeof(*ctx->op_iter), GFP_KERNEL);
+ ctx->op_iter = kmalloc_obj(*ctx->op_iter, GFP_KERNEL);
if (!ctx->op_iter)
return -ENOMEM;
diff --git a/net/netlink/policy.c b/net/netlink/policy.c
index 99458da6be32..a3e818c7c0cf 100644
--- a/net/netlink/policy.c
+++ b/net/netlink/policy.c
@@ -102,8 +102,8 @@ static struct netlink_policy_dump_state *alloc_state(void)
{
struct netlink_policy_dump_state *state;
- state = kzalloc(struct_size(state, policies, INITIAL_POLICIES_ALLOC),
- GFP_KERNEL);
+ state = kzalloc_flex(*state, policies, INITIAL_POLICIES_ALLOC,
+ GFP_KERNEL);
if (!state)
return ERR_PTR(-ENOMEM);
state->n_alloc = INITIAL_POLICIES_ALLOC;
diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c
index 5ed1a71ceec1..d7090dad8113 100644
--- a/net/netrom/af_netrom.c
+++ b/net/netrom/af_netrom.c
@@ -1401,7 +1401,7 @@ static int __init nr_proto_init(void)
goto unregister_proto;
}
- dev_nr = kcalloc(nr_ndevs, sizeof(struct net_device *), GFP_KERNEL);
+ dev_nr = kzalloc_objs(struct net_device *, nr_ndevs, GFP_KERNEL);
if (!dev_nr) {
pr_err("NET/ROM: %s - unable to allocate device array\n",
__func__);
diff --git a/net/nfc/core.c b/net/nfc/core.c
index f50e5bab35d8..c39d00b2a0d7 100644
--- a/net/nfc/core.c
+++ b/net/nfc/core.c
@@ -879,7 +879,7 @@ int nfc_add_se(struct nfc_dev *dev, u32 se_idx, u16 type)
if (se)
return -EALREADY;
- se = kzalloc(sizeof(struct nfc_se), GFP_KERNEL);
+ se = kzalloc_obj(struct nfc_se, GFP_KERNEL);
if (!se)
return -ENOMEM;
@@ -1062,7 +1062,7 @@ struct nfc_dev *nfc_allocate_device(const struct nfc_ops *ops,
if (!supported_protocols)
return NULL;
- dev = kzalloc(sizeof(struct nfc_dev), GFP_KERNEL);
+ dev = kzalloc_obj(struct nfc_dev, GFP_KERNEL);
if (!dev)
return NULL;
diff --git a/net/nfc/digital_core.c b/net/nfc/digital_core.c
index dae378f1d52b..be9a048b583b 100644
--- a/net/nfc/digital_core.c
+++ b/net/nfc/digital_core.c
@@ -231,7 +231,7 @@ int digital_send_cmd(struct nfc_digital_dev *ddev, u8 cmd_type,
{
struct digital_cmd *cmd;
- cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ cmd = kzalloc_obj(*cmd, GFP_KERNEL);
if (!cmd)
return -ENOMEM;
@@ -279,7 +279,7 @@ static int digital_tg_listen_mdaa(struct nfc_digital_dev *ddev, u8 rf_tech)
struct digital_tg_mdaa_params *params;
int rc;
- params = kzalloc(sizeof(*params), GFP_KERNEL);
+ params = kzalloc_obj(*params, GFP_KERNEL);
if (!params)
return -ENOMEM;
@@ -706,7 +706,7 @@ static int digital_in_send(struct nfc_dev *nfc_dev, struct nfc_target *target,
struct digital_data_exch *data_exch;
int rc;
- data_exch = kzalloc(sizeof(*data_exch), GFP_KERNEL);
+ data_exch = kzalloc_obj(*data_exch, GFP_KERNEL);
if (!data_exch)
return -ENOMEM;
@@ -762,7 +762,7 @@ struct nfc_digital_dev *nfc_digital_allocate_device(const struct nfc_digital_ops
!ops->switch_rf || (ops->tg_listen_md && !ops->tg_get_rf_tech))
return NULL;
- ddev = kzalloc(sizeof(*ddev), GFP_KERNEL);
+ ddev = kzalloc_obj(*ddev, GFP_KERNEL);
if (!ddev)
return NULL;
diff --git a/net/nfc/digital_technology.c b/net/nfc/digital_technology.c
index 3adf4589852a..df2bfb4734c5 100644
--- a/net/nfc/digital_technology.c
+++ b/net/nfc/digital_technology.c
@@ -490,7 +490,7 @@ static void digital_in_recv_sens_res(struct nfc_digital_dev *ddev, void *arg,
goto exit;
}
- target = kzalloc(sizeof(struct nfc_target), GFP_KERNEL);
+ target = kzalloc_obj(struct nfc_target, GFP_KERNEL);
if (!target) {
rc = -ENOMEM;
goto exit;
@@ -688,7 +688,7 @@ static void digital_in_recv_sensb_res(struct nfc_digital_dev *ddev, void *arg,
else
ddev->target_fsc = digital_ats_fsc[fsci];
- target = kzalloc(sizeof(struct nfc_target), GFP_KERNEL);
+ target = kzalloc_obj(struct nfc_target, GFP_KERNEL);
if (!target) {
rc = -ENOMEM;
goto exit;
@@ -863,7 +863,7 @@ static void digital_in_recv_iso15693_inv_res(struct nfc_digital_dev *ddev,
goto out_free_skb;
}
- target = kzalloc(sizeof(*target), GFP_KERNEL);
+ target = kzalloc_obj(*target, GFP_KERNEL);
if (!target) {
rc = -ENOMEM;
goto out_free_skb;
diff --git a/net/nfc/hci/core.c b/net/nfc/hci/core.c
index 8618d57c23da..10bcd9d2576a 100644
--- a/net/nfc/hci/core.c
+++ b/net/nfc/hci/core.c
@@ -291,7 +291,7 @@ int nfc_hci_target_discovered(struct nfc_hci_dev *hdev, u8 gate)
pr_debug("from gate %d\n", gate);
- targets = kzalloc(sizeof(struct nfc_target), GFP_KERNEL);
+ targets = kzalloc_obj(struct nfc_target, GFP_KERNEL);
if (targets == NULL)
return -ENOMEM;
@@ -964,7 +964,7 @@ struct nfc_hci_dev *nfc_hci_allocate_device(const struct nfc_hci_ops *ops,
if (protocols == 0)
return NULL;
- hdev = kzalloc(sizeof(struct nfc_hci_dev), GFP_KERNEL);
+ hdev = kzalloc_obj(struct nfc_hci_dev, GFP_KERNEL);
if (hdev == NULL)
return NULL;
diff --git a/net/nfc/hci/hcp.c b/net/nfc/hci/hcp.c
index 4902f5064098..903fb134cd80 100644
--- a/net/nfc/hci/hcp.c
+++ b/net/nfc/hci/hcp.c
@@ -30,7 +30,7 @@ int nfc_hci_hcp_message_tx(struct nfc_hci_dev *hdev, u8 pipe,
int hci_len, err;
bool firstfrag = true;
- cmd = kzalloc(sizeof(struct hci_msg), GFP_KERNEL);
+ cmd = kzalloc_obj(struct hci_msg, GFP_KERNEL);
if (cmd == NULL)
return -ENOMEM;
diff --git a/net/nfc/hci/llc.c b/net/nfc/hci/llc.c
index e6cf4eb06b46..12d7940c6217 100644
--- a/net/nfc/hci/llc.c
+++ b/net/nfc/hci/llc.c
@@ -49,7 +49,7 @@ int nfc_llc_register(const char *name, const struct nfc_llc_ops *ops)
{
struct nfc_llc_engine *llc_engine;
- llc_engine = kzalloc(sizeof(struct nfc_llc_engine), GFP_KERNEL);
+ llc_engine = kzalloc_obj(struct nfc_llc_engine, GFP_KERNEL);
if (llc_engine == NULL)
return -ENOMEM;
@@ -90,7 +90,7 @@ struct nfc_llc *nfc_llc_allocate(const char *name, struct nfc_hci_dev *hdev,
if (llc_engine == NULL)
return NULL;
- llc = kzalloc(sizeof(struct nfc_llc), GFP_KERNEL);
+ llc = kzalloc_obj(struct nfc_llc, GFP_KERNEL);
if (llc == NULL)
return NULL;
diff --git a/net/nfc/hci/llc_nop.c b/net/nfc/hci/llc_nop.c
index a58716f16954..eb940330fd5d 100644
--- a/net/nfc/hci/llc_nop.c
+++ b/net/nfc/hci/llc_nop.c
@@ -28,7 +28,7 @@ static void *llc_nop_init(struct nfc_hci_dev *hdev, xmit_to_drv_t xmit_to_drv,
*rx_headroom = 0;
*rx_tailroom = 0;
- llc_nop = kzalloc(sizeof(struct llc_nop), GFP_KERNEL);
+ llc_nop = kzalloc_obj(struct llc_nop, GFP_KERNEL);
if (llc_nop == NULL)
return NULL;
diff --git a/net/nfc/hci/llc_shdlc.c b/net/nfc/hci/llc_shdlc.c
index 08c8aa1530d8..7e0d84c29cb1 100644
--- a/net/nfc/hci/llc_shdlc.c
+++ b/net/nfc/hci/llc_shdlc.c
@@ -728,7 +728,7 @@ static void *llc_shdlc_init(struct nfc_hci_dev *hdev, xmit_to_drv_t xmit_to_drv,
*rx_headroom = SHDLC_LLC_HEAD_ROOM;
*rx_tailroom = 0;
- shdlc = kzalloc(sizeof(struct llc_shdlc), GFP_KERNEL);
+ shdlc = kzalloc_obj(struct llc_shdlc, GFP_KERNEL);
if (shdlc == NULL)
return NULL;
diff --git a/net/nfc/llcp_commands.c b/net/nfc/llcp_commands.c
index b652323bc2c1..90f68199ecca 100644
--- a/net/nfc/llcp_commands.c
+++ b/net/nfc/llcp_commands.c
@@ -108,7 +108,7 @@ struct nfc_llcp_sdp_tlv *nfc_llcp_build_sdres_tlv(u8 tid, u8 sap)
struct nfc_llcp_sdp_tlv *sdres;
u8 value[2];
- sdres = kzalloc(sizeof(struct nfc_llcp_sdp_tlv), GFP_KERNEL);
+ sdres = kzalloc_obj(struct nfc_llcp_sdp_tlv, GFP_KERNEL);
if (sdres == NULL)
return NULL;
@@ -141,7 +141,7 @@ struct nfc_llcp_sdp_tlv *nfc_llcp_build_sdreq_tlv(u8 tid, const char *uri,
if (WARN_ON_ONCE(uri_len > U8_MAX - 4))
return NULL;
- sdreq = kzalloc(sizeof(struct nfc_llcp_sdp_tlv), GFP_KERNEL);
+ sdreq = kzalloc_obj(struct nfc_llcp_sdp_tlv, GFP_KERNEL);
if (sdreq == NULL)
return NULL;
diff --git a/net/nfc/llcp_core.c b/net/nfc/llcp_core.c
index 444a3774c8e8..98f0c3281281 100644
--- a/net/nfc/llcp_core.c
+++ b/net/nfc/llcp_core.c
@@ -1621,7 +1621,7 @@ int nfc_llcp_register_device(struct nfc_dev *ndev)
{
struct nfc_llcp_local *local;
- local = kzalloc(sizeof(struct nfc_llcp_local), GFP_KERNEL);
+ local = kzalloc_obj(struct nfc_llcp_local, GFP_KERNEL);
if (local == NULL)
return -ENOMEM;
diff --git a/net/nfc/nci/core.c b/net/nfc/nci/core.c
index e419e020a70a..dc17ed8be242 100644
--- a/net/nfc/nci/core.c
+++ b/net/nfc/nci/core.c
@@ -1171,7 +1171,7 @@ struct nci_dev *nci_allocate_device(const struct nci_ops *ops,
if (!supported_protocols)
return NULL;
- ndev = kzalloc(sizeof(struct nci_dev), GFP_KERNEL);
+ ndev = kzalloc_obj(struct nci_dev, GFP_KERNEL);
if (!ndev)
return NULL;
diff --git a/net/nfc/nci/hci.c b/net/nfc/nci/hci.c
index 082ab66f120b..cd3e87b2dd3e 100644
--- a/net/nfc/nci/hci.c
+++ b/net/nfc/nci/hci.c
@@ -777,7 +777,7 @@ struct nci_hci_dev *nci_hci_allocate(struct nci_dev *ndev)
{
struct nci_hci_dev *hdev;
- hdev = kzalloc(sizeof(*hdev), GFP_KERNEL);
+ hdev = kzalloc_obj(*hdev, GFP_KERNEL);
if (!hdev)
return NULL;
diff --git a/net/nfc/nci/uart.c b/net/nfc/nci/uart.c
index aab107727f18..25dc2868fd27 100644
--- a/net/nfc/nci/uart.c
+++ b/net/nfc/nci/uart.c
@@ -113,7 +113,7 @@ static int nci_uart_set_driver(struct tty_struct *tty, unsigned int driver)
if (!nci_uart_drivers[driver])
return -ENOENT;
- nu = kzalloc(sizeof(*nu), GFP_KERNEL);
+ nu = kzalloc_obj(*nu, GFP_KERNEL);
if (!nu)
return -ENOMEM;
diff --git a/net/nfc/netlink.c b/net/nfc/netlink.c
index a18e2c503da6..a69322721c31 100644
--- a/net/nfc/netlink.c
+++ b/net/nfc/netlink.c
@@ -604,7 +604,7 @@ static int nfc_genl_dump_devices(struct sk_buff *skb,
if (!iter) {
first_call = true;
- iter = kmalloc(sizeof(struct class_dev_iter), GFP_KERNEL);
+ iter = kmalloc_obj(struct class_dev_iter, GFP_KERNEL);
if (!iter)
return -ENOMEM;
cb->args[0] = (long) iter;
@@ -1370,7 +1370,7 @@ static int nfc_genl_dump_ses(struct sk_buff *skb,
if (!iter) {
first_call = true;
- iter = kmalloc(sizeof(struct class_dev_iter), GFP_KERNEL);
+ iter = kmalloc_obj(struct class_dev_iter, GFP_KERNEL);
if (!iter)
return -ENOMEM;
cb->args[0] = (long) iter;
@@ -1541,7 +1541,7 @@ static int nfc_genl_se_io(struct sk_buff *skb, struct genl_info *info)
apdu = nla_data(info->attrs[NFC_ATTR_SE_APDU]);
- ctx = kzalloc(sizeof(struct se_io_ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(struct se_io_ctx, GFP_KERNEL);
if (!ctx) {
rc = -ENOMEM;
goto put_dev;
@@ -1875,7 +1875,7 @@ static int nfc_genl_rcv_nl_event(struct notifier_block *this,
pr_debug("NETLINK_URELEASE event from id %d\n", n->portid);
- w = kmalloc(sizeof(*w), GFP_ATOMIC);
+ w = kmalloc_obj(*w, GFP_ATOMIC);
if (w) {
INIT_WORK(&w->w, nfc_urelease_event_work);
w->portid = n->portid;
diff --git a/net/openvswitch/conntrack.c b/net/openvswitch/conntrack.c
index a0811e1fba65..8051e3127d2c 100644
--- a/net/openvswitch/conntrack.c
+++ b/net/openvswitch/conntrack.c
@@ -1586,15 +1586,15 @@ static int ovs_ct_limit_init(struct net *net, struct ovs_net *ovs_net)
{
int i, err;
- ovs_net->ct_limit_info = kmalloc(sizeof(*ovs_net->ct_limit_info),
- GFP_KERNEL);
+ ovs_net->ct_limit_info = kmalloc_obj(*ovs_net->ct_limit_info,
+ GFP_KERNEL);
if (!ovs_net->ct_limit_info)
return -ENOMEM;
ovs_net->ct_limit_info->default_limit = OVS_CT_LIMIT_DEFAULT;
ovs_net->ct_limit_info->limits =
- kmalloc_array(CT_LIMIT_HASH_BUCKETS, sizeof(struct hlist_head),
- GFP_KERNEL);
+ kmalloc_objs(struct hlist_head, CT_LIMIT_HASH_BUCKETS,
+ GFP_KERNEL);
if (!ovs_net->ct_limit_info->limits) {
kfree(ovs_net->ct_limit_info);
return -ENOMEM;
@@ -1688,8 +1688,7 @@ static int ovs_ct_limit_set_zone_limit(struct nlattr *nla_zone_limit,
} else {
struct ovs_ct_limit *ct_limit;
- ct_limit = kmalloc(sizeof(*ct_limit),
- GFP_KERNEL_ACCOUNT);
+ ct_limit = kmalloc_obj(*ct_limit, GFP_KERNEL_ACCOUNT);
if (!ct_limit)
return -ENOMEM;
diff --git a/net/openvswitch/datapath.c b/net/openvswitch/datapath.c
index d5b6e2002bc1..b4fb83c3c0f9 100644
--- a/net/openvswitch/datapath.c
+++ b/net/openvswitch/datapath.c
@@ -1029,7 +1029,7 @@ static int ovs_flow_cmd_new(struct sk_buff *skb, struct genl_info *info)
}
/* Extract key. */
- key = kzalloc(sizeof(*key), GFP_KERNEL);
+ key = kzalloc_obj(*key, GFP_KERNEL);
if (!key) {
error = -ENOMEM;
goto err_kfree_flow;
@@ -1797,9 +1797,8 @@ static int ovs_dp_vport_init(struct datapath *dp)
{
int i;
- dp->ports = kmalloc_array(DP_VPORT_HASH_BUCKETS,
- sizeof(struct hlist_head),
- GFP_KERNEL);
+ dp->ports = kmalloc_objs(struct hlist_head, DP_VPORT_HASH_BUCKETS,
+ GFP_KERNEL);
if (!dp->ports)
return -ENOMEM;
@@ -1828,7 +1827,7 @@ static int ovs_dp_cmd_new(struct sk_buff *skb, struct genl_info *info)
return -ENOMEM;
err = -ENOMEM;
- dp = kzalloc(sizeof(*dp), GFP_KERNEL);
+ dp = kzalloc_obj(*dp, GFP_KERNEL);
if (dp == NULL)
goto err_destroy_reply;
diff --git a/net/openvswitch/flow_netlink.c b/net/openvswitch/flow_netlink.c
index 2d536901309e..54fd208a1a68 100644
--- a/net/openvswitch/flow_netlink.c
+++ b/net/openvswitch/flow_netlink.c
@@ -1890,7 +1890,7 @@ int ovs_nla_get_identifier(struct sw_flow_id *sfid, const struct nlattr *ufid,
return 0;
/* If UFID was not provided, use unmasked key. */
- new_key = kmalloc(sizeof(*new_key), GFP_KERNEL);
+ new_key = kmalloc_obj(*new_key, GFP_KERNEL);
if (!new_key)
return -ENOMEM;
memcpy(new_key, key, sizeof(*key));
diff --git a/net/openvswitch/flow_table.c b/net/openvswitch/flow_table.c
index ffc72a741a50..b75236aa4414 100644
--- a/net/openvswitch/flow_table.c
+++ b/net/openvswitch/flow_table.c
@@ -150,14 +150,13 @@ static void __table_instance_destroy(struct table_instance *ti)
static struct table_instance *table_instance_alloc(int new_size)
{
- struct table_instance *ti = kmalloc(sizeof(*ti), GFP_KERNEL);
+ struct table_instance *ti = kmalloc_obj(*ti, GFP_KERNEL);
int i;
if (!ti)
return NULL;
- ti->buckets = kvmalloc_array(new_size, sizeof(struct hlist_head),
- GFP_KERNEL);
+ ti->buckets = kvmalloc_objs(struct hlist_head, new_size, GFP_KERNEL);
if (!ti->buckets) {
kfree(ti);
return NULL;
@@ -367,7 +366,7 @@ static struct mask_cache *tbl_mask_cache_alloc(u32 size)
(size * sizeof(struct mask_cache_entry)) > PCPU_MIN_UNIT_SIZE)
return NULL;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return NULL;
@@ -965,7 +964,7 @@ static struct sw_flow_mask *mask_alloc(void)
{
struct sw_flow_mask *mask;
- mask = kmalloc(sizeof(*mask), GFP_KERNEL);
+ mask = kmalloc_obj(*mask, GFP_KERNEL);
if (mask)
mask->ref_count = 1;
@@ -1110,8 +1109,7 @@ void ovs_flow_masks_rebalance(struct flow_table *table)
int i;
/* Build array of all current entries with use counters. */
- masks_and_count = kmalloc_array(ma->max, sizeof(*masks_and_count),
- GFP_KERNEL);
+ masks_and_count = kmalloc_objs(*masks_and_count, ma->max, GFP_KERNEL);
if (!masks_and_count)
return;
diff --git a/net/openvswitch/meter.c b/net/openvswitch/meter.c
index cc08e0403909..0c2db78bb71e 100644
--- a/net/openvswitch/meter.c
+++ b/net/openvswitch/meter.c
@@ -69,7 +69,7 @@ static struct dp_meter_instance *dp_meter_instance_alloc(const u32 size)
{
struct dp_meter_instance *ti;
- ti = kvzalloc(struct_size(ti, dp_meters, size), GFP_KERNEL);
+ ti = kvzalloc_flex(*ti, dp_meters, size, GFP_KERNEL);
if (!ti)
return NULL;
@@ -341,7 +341,7 @@ static struct dp_meter *dp_meter_create(struct nlattr **a)
return ERR_PTR(-EINVAL);
/* Allocate and set up the meter before locking anything. */
- meter = kzalloc(struct_size(meter, bands, n_bands), GFP_KERNEL_ACCOUNT);
+ meter = kzalloc_flex(*meter, bands, n_bands, GFP_KERNEL_ACCOUNT);
if (!meter)
return ERR_PTR(-ENOMEM);
diff --git a/net/openvswitch/vport.c b/net/openvswitch/vport.c
index f0ce8ce1dce0..4b83512cbc65 100644
--- a/net/openvswitch/vport.c
+++ b/net/openvswitch/vport.c
@@ -34,8 +34,8 @@ static struct hlist_head *dev_table;
*/
int ovs_vport_init(void)
{
- dev_table = kcalloc(VPORT_HASH_BUCKETS, sizeof(struct hlist_head),
- GFP_KERNEL);
+ dev_table = kzalloc_objs(struct hlist_head, VPORT_HASH_BUCKETS,
+ GFP_KERNEL);
if (!dev_table)
return -ENOMEM;
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index a1005359085a..a78c5122a3d7 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -1711,7 +1711,7 @@ static int fanout_add(struct sock *sk, struct fanout_args *args)
if (type == PACKET_FANOUT_ROLLOVER ||
(type_flags & PACKET_FANOUT_FLAG_ROLLOVER)) {
err = -ENOMEM;
- rollover = kzalloc(sizeof(*rollover), GFP_KERNEL);
+ rollover = kzalloc_obj(*rollover, GFP_KERNEL);
if (!rollover)
goto out;
atomic_long_set(&rollover->num, 0);
@@ -1754,8 +1754,8 @@ static int fanout_add(struct sock *sk, struct fanout_args *args)
/* legacy PACKET_FANOUT_MAX */
args->max_num_members = 256;
err = -ENOMEM;
- match = kvzalloc(struct_size(match, arr, args->max_num_members),
- GFP_KERNEL);
+ match = kvzalloc_flex(*match, arr, args->max_num_members,
+ GFP_KERNEL);
if (!match)
goto out;
write_pnet(&match->net, sock_net(sk));
@@ -3693,7 +3693,7 @@ static int packet_mc_add(struct sock *sk, struct packet_mreq_max *mreq)
goto done;
err = -ENOBUFS;
- i = kmalloc(sizeof(*i), GFP_KERNEL);
+ i = kmalloc_obj(*i, GFP_KERNEL);
if (i == NULL)
goto done;
@@ -4390,7 +4390,7 @@ static struct pgv *alloc_pg_vec(struct tpacket_req *req, int order)
struct pgv *pg_vec;
int i;
- pg_vec = kcalloc(block_nr, sizeof(struct pgv), GFP_KERNEL | __GFP_NOWARN);
+ pg_vec = kzalloc_objs(struct pgv, block_nr, GFP_KERNEL | __GFP_NOWARN);
if (unlikely(!pg_vec))
goto out;
diff --git a/net/phonet/pn_dev.c b/net/phonet/pn_dev.c
index 5c36bae37b8f..86325b7fc1b6 100644
--- a/net/phonet/pn_dev.c
+++ b/net/phonet/pn_dev.c
@@ -48,7 +48,7 @@ struct phonet_device_list *phonet_device_list(struct net *net)
static struct phonet_device *__phonet_device_alloc(struct net_device *dev)
{
struct phonet_device_list *pndevs = phonet_device_list(dev_net(dev));
- struct phonet_device *pnd = kmalloc(sizeof(*pnd), GFP_ATOMIC);
+ struct phonet_device *pnd = kmalloc_obj(*pnd, GFP_ATOMIC);
if (pnd == NULL)
return NULL;
pnd->netdev = dev;
diff --git a/net/psample/psample.c b/net/psample/psample.c
index 25f92ba0840c..7763662036fb 100644
--- a/net/psample/psample.c
+++ b/net/psample/psample.c
@@ -143,7 +143,7 @@ static struct psample_group *psample_group_create(struct net *net,
{
struct psample_group *group;
- group = kzalloc(sizeof(*group), GFP_ATOMIC);
+ group = kzalloc_obj(*group, GFP_ATOMIC);
if (!group)
return NULL;
diff --git a/net/psp/psp_main.c b/net/psp/psp_main.c
index a8534124f626..08decafee7a6 100644
--- a/net/psp/psp_main.c
+++ b/net/psp/psp_main.c
@@ -64,7 +64,7 @@ psp_dev_create(struct net_device *netdev,
!psd_ops->get_stats))
return ERR_PTR(-EINVAL);
- psd = kzalloc(sizeof(*psd), GFP_KERNEL);
+ psd = kzalloc_obj(*psd, GFP_KERNEL);
if (!psd)
return ERR_PTR(-ENOMEM);
diff --git a/net/psp/psp_sock.c b/net/psp/psp_sock.c
index f785672b7df6..a85b0ed88842 100644
--- a/net/psp/psp_sock.c
+++ b/net/psp/psp_sock.c
@@ -50,8 +50,8 @@ struct psp_assoc *psp_assoc_create(struct psp_dev *psd)
lockdep_assert_held(&psd->lock);
- pas = kzalloc(struct_size(pas, drv_data, psd->caps->assoc_drv_spc),
- GFP_KERNEL_ACCOUNT);
+ pas = kzalloc_flex(*pas, drv_data, psd->caps->assoc_drv_spc,
+ GFP_KERNEL_ACCOUNT);
if (!pas)
return NULL;
diff --git a/net/qrtr/af_qrtr.c b/net/qrtr/af_qrtr.c
index dab839f61ee9..70e7a210fd42 100644
--- a/net/qrtr/af_qrtr.c
+++ b/net/qrtr/af_qrtr.c
@@ -271,7 +271,7 @@ static int qrtr_tx_wait(struct qrtr_node *node, int dest_node, int dest_port,
mutex_lock(&node->qrtr_tx_lock);
flow = radix_tree_lookup(&node->qrtr_tx_flow, key);
if (!flow) {
- flow = kzalloc(sizeof(*flow), GFP_KERNEL);
+ flow = kzalloc_obj(*flow, GFP_KERNEL);
if (flow) {
init_waitqueue_head(&flow->resume_tx);
if (radix_tree_insert(&node->qrtr_tx_flow, key, flow)) {
@@ -589,7 +589,7 @@ int qrtr_endpoint_register(struct qrtr_endpoint *ep, unsigned int nid)
if (!ep || !ep->xmit)
return -EINVAL;
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return -ENOMEM;
diff --git a/net/qrtr/ns.c b/net/qrtr/ns.c
index bfcc1a453f23..36b5c1990bf5 100644
--- a/net/qrtr/ns.c
+++ b/net/qrtr/ns.c
@@ -78,7 +78,7 @@ static struct qrtr_node *node_get(unsigned int node_id)
return node;
/* If node didn't exist, allocate and insert it to the tree */
- node = kzalloc(sizeof(*node), GFP_KERNEL);
+ node = kzalloc_obj(*node, GFP_KERNEL);
if (!node)
return NULL;
@@ -229,7 +229,7 @@ static struct qrtr_server *server_add(unsigned int service,
if (!service || !port)
return NULL;
- srv = kzalloc(sizeof(*srv), GFP_KERNEL);
+ srv = kzalloc_obj(*srv, GFP_KERNEL);
if (!srv)
return NULL;
@@ -534,7 +534,7 @@ static int ctrl_cmd_new_lookup(struct sockaddr_qrtr *from,
if (from->sq_node != qrtr_ns.local_node)
return -EINVAL;
- lookup = kzalloc(sizeof(*lookup), GFP_KERNEL);
+ lookup = kzalloc_obj(*lookup, GFP_KERNEL);
if (!lookup)
return -ENOMEM;
diff --git a/net/qrtr/tun.c b/net/qrtr/tun.c
index 304b41fea5ab..9ad17a773593 100644
--- a/net/qrtr/tun.c
+++ b/net/qrtr/tun.c
@@ -33,7 +33,7 @@ static int qrtr_tun_open(struct inode *inode, struct file *filp)
struct qrtr_tun *tun;
int ret;
- tun = kzalloc(sizeof(*tun), GFP_KERNEL);
+ tun = kzalloc_obj(*tun, GFP_KERNEL);
if (!tun)
return -ENOMEM;
diff --git a/net/rds/cong.c b/net/rds/cong.c
index ac1f120c10f9..e7f019c3a625 100644
--- a/net/rds/cong.c
+++ b/net/rds/cong.c
@@ -143,7 +143,7 @@ static struct rds_cong_map *rds_cong_from_addr(const struct in6_addr *addr)
unsigned long i;
unsigned long flags;
- map = kzalloc(sizeof(struct rds_cong_map), GFP_KERNEL);
+ map = kzalloc_obj(struct rds_cong_map, GFP_KERNEL);
if (!map)
return NULL;
diff --git a/net/rds/connection.c b/net/rds/connection.c
index 185f73b01694..e23fd9a628ac 100644
--- a/net/rds/connection.c
+++ b/net/rds/connection.c
@@ -197,7 +197,7 @@ static struct rds_connection *__rds_conn_create(struct net *net,
conn = ERR_PTR(-ENOMEM);
goto out;
}
- conn->c_path = kcalloc(npaths, sizeof(struct rds_conn_path), gfp);
+ conn->c_path = kzalloc_objs(struct rds_conn_path, npaths, gfp);
if (!conn->c_path) {
kmem_cache_free(rds_conn_slab, conn);
conn = ERR_PTR(-ENOMEM);
diff --git a/net/rds/ib.c b/net/rds/ib.c
index 9826fe7f9d00..8457ec7c3ab8 100644
--- a/net/rds/ib.c
+++ b/net/rds/ib.c
@@ -172,9 +172,8 @@ static int rds_ib_add_one(struct ib_device *device)
rds_ibdev->max_initiator_depth = device->attrs.max_qp_init_rd_atom;
rds_ibdev->max_responder_resources = device->attrs.max_qp_rd_atom;
- rds_ibdev->vector_load = kcalloc(device->num_comp_vectors,
- sizeof(int),
- GFP_KERNEL);
+ rds_ibdev->vector_load = kzalloc_objs(int, device->num_comp_vectors,
+ GFP_KERNEL);
if (!rds_ibdev->vector_load) {
pr_err("RDS/IB: %s failed to allocate vector memory\n",
__func__);
diff --git a/net/rds/ib_cm.c b/net/rds/ib_cm.c
index 26b069e1999d..0c64c504f79d 100644
--- a/net/rds/ib_cm.c
+++ b/net/rds/ib_cm.c
@@ -1203,7 +1203,7 @@ int rds_ib_conn_alloc(struct rds_connection *conn, gfp_t gfp)
int ret;
/* XXX too lazy? */
- ic = kzalloc(sizeof(struct rds_ib_connection), gfp);
+ ic = kzalloc_obj(struct rds_ib_connection, gfp);
if (!ic)
return -ENOMEM;
diff --git a/net/rds/ib_rdma.c b/net/rds/ib_rdma.c
index 6585164c7059..651f658a6a0a 100644
--- a/net/rds/ib_rdma.c
+++ b/net/rds/ib_rdma.c
@@ -67,7 +67,7 @@ static int rds_ib_add_ipaddr(struct rds_ib_device *rds_ibdev, __be32 ipaddr)
{
struct rds_ib_ipaddr *i_ipaddr;
- i_ipaddr = kmalloc(sizeof *i_ipaddr, GFP_KERNEL);
+ i_ipaddr = kmalloc_obj(*i_ipaddr, GFP_KERNEL);
if (!i_ipaddr)
return -ENOMEM;
@@ -585,7 +585,7 @@ void *rds_ib_get_mr(struct scatterlist *sg, unsigned long nents,
if (key_ret)
*key_ret = ib_mr->rkey;
- ibmr = kzalloc(sizeof(*ibmr), GFP_KERNEL);
+ ibmr = kzalloc_obj(*ibmr, GFP_KERNEL);
if (!ibmr) {
ib_dereg_mr(ib_mr);
ret = -ENOMEM;
@@ -641,7 +641,7 @@ struct rds_ib_mr_pool *rds_ib_create_mr_pool(struct rds_ib_device *rds_ibdev,
{
struct rds_ib_mr_pool *pool;
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return ERR_PTR(-ENOMEM);
diff --git a/net/rds/info.c b/net/rds/info.c
index b6b46a8214a0..696e957c41a9 100644
--- a/net/rds/info.c
+++ b/net/rds/info.c
@@ -187,7 +187,7 @@ int rds_info_getsockopt(struct socket *sock, int optname, char __user *optval,
nr_pages = (PAGE_ALIGN(start + len) - (start & PAGE_MASK))
>> PAGE_SHIFT;
- pages = kmalloc_array(nr_pages, sizeof(struct page *), GFP_KERNEL);
+ pages = kmalloc_objs(struct page *, nr_pages, GFP_KERNEL);
if (!pages) {
ret = -ENOMEM;
goto out;
diff --git a/net/rds/loop.c b/net/rds/loop.c
index 1d73ad79c847..ac9295a766b1 100644
--- a/net/rds/loop.c
+++ b/net/rds/loop.c
@@ -137,7 +137,7 @@ static int rds_loop_conn_alloc(struct rds_connection *conn, gfp_t gfp)
struct rds_loop_connection *lc;
unsigned long flags;
- lc = kzalloc(sizeof(struct rds_loop_connection), gfp);
+ lc = kzalloc_obj(struct rds_loop_connection, gfp);
if (!lc)
return -ENOMEM;
diff --git a/net/rds/message.c b/net/rds/message.c
index 54fd000806ea..e367ca4f4f31 100644
--- a/net/rds/message.c
+++ b/net/rds/message.c
@@ -415,7 +415,7 @@ static int rds_message_zcopy_from_user(struct rds_message *rm, struct iov_iter *
*/
sg = rm->data.op_sg;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
INIT_LIST_HEAD(&info->rs_zcookie_next);
diff --git a/net/rds/rdma.c b/net/rds/rdma.c
index 00dbcd4d28e6..0015531aff05 100644
--- a/net/rds/rdma.c
+++ b/net/rds/rdma.c
@@ -228,13 +228,13 @@ static int __rds_rdma_map(struct rds_sock *rs, struct rds_get_mr_args *args,
args->vec.addr, args->vec.bytes, nr_pages);
/* XXX clamp nr_pages to limit the size of this alloc? */
- pages = kcalloc(nr_pages, sizeof(struct page *), GFP_KERNEL);
+ pages = kzalloc_objs(struct page *, nr_pages, GFP_KERNEL);
if (!pages) {
ret = -ENOMEM;
goto out;
}
- mr = kzalloc(sizeof(struct rds_mr), GFP_KERNEL);
+ mr = kzalloc_obj(struct rds_mr, GFP_KERNEL);
if (!mr) {
ret = -ENOMEM;
goto out;
@@ -269,7 +269,7 @@ static int __rds_rdma_map(struct rds_sock *rs, struct rds_get_mr_args *args,
goto out;
} else {
nents = ret;
- sg = kmalloc_array(nents, sizeof(*sg), GFP_KERNEL);
+ sg = kmalloc_objs(*sg, nents, GFP_KERNEL);
if (!sg) {
ret = -ENOMEM;
goto out;
@@ -571,9 +571,7 @@ int rds_rdma_extra_size(struct rds_rdma_args *args,
if (args->nr_local > UIO_MAXIOV)
return -EMSGSIZE;
- iov->iov = kcalloc(args->nr_local,
- sizeof(struct rds_iovec),
- GFP_KERNEL);
+ iov->iov = kzalloc_objs(struct rds_iovec, args->nr_local, GFP_KERNEL);
if (!iov->iov)
return -ENOMEM;
@@ -654,7 +652,7 @@ int rds_cmsg_rdma_args(struct rds_sock *rs, struct rds_message *rm,
goto out_ret;
}
- pages = kcalloc(nr_pages, sizeof(struct page *), GFP_KERNEL);
+ pages = kzalloc_objs(struct page *, nr_pages, GFP_KERNEL);
if (!pages) {
ret = -ENOMEM;
goto out_ret;
@@ -681,7 +679,7 @@ int rds_cmsg_rdma_args(struct rds_sock *rs, struct rds_message *rm,
* would have to use GFP_ATOMIC there, and don't want to deal
* with failed allocations.
*/
- op->op_notifier = kmalloc(sizeof(struct rds_notifier), GFP_KERNEL);
+ op->op_notifier = kmalloc_obj(struct rds_notifier, GFP_KERNEL);
if (!op->op_notifier) {
ret = -ENOMEM;
goto out_pages;
@@ -730,8 +728,7 @@ int rds_cmsg_rdma_args(struct rds_sock *rs, struct rds_message *rm,
ret = -EOPNOTSUPP;
goto out_pages;
}
- local_odp_mr =
- kzalloc(sizeof(*local_odp_mr), GFP_KERNEL);
+ local_odp_mr = kzalloc_obj(*local_odp_mr, GFP_KERNEL);
if (!local_odp_mr) {
ret = -ENOMEM;
goto out_pages;
@@ -937,7 +934,8 @@ int rds_cmsg_atomic(struct rds_sock *rs, struct rds_message *rm,
* would have to use GFP_ATOMIC there, and don't want to deal
* with failed allocations.
*/
- rm->atomic.op_notifier = kmalloc(sizeof(*rm->atomic.op_notifier), GFP_KERNEL);
+ rm->atomic.op_notifier = kmalloc_obj(*rm->atomic.op_notifier,
+ GFP_KERNEL);
if (!rm->atomic.op_notifier) {
ret = -ENOMEM;
goto err;
diff --git a/net/rfkill/core.c b/net/rfkill/core.c
index 7d3e82e4c2fc..0f64aa4797f7 100644
--- a/net/rfkill/core.c
+++ b/net/rfkill/core.c
@@ -279,7 +279,7 @@ static void rfkill_send_events(struct rfkill *rfkill, enum rfkill_operation op)
struct rfkill_int_event *ev;
list_for_each_entry(data, &rfkill_fds, list) {
- ev = kzalloc(sizeof(*ev), GFP_KERNEL);
+ ev = kzalloc_obj(*ev, GFP_KERNEL);
if (!ev)
continue;
rfkill_fill_event(&ev->ev, rfkill, op);
@@ -1165,7 +1165,7 @@ static int rfkill_fop_open(struct inode *inode, struct file *file)
struct rfkill *rfkill;
struct rfkill_int_event *ev, *tmp;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -1182,7 +1182,7 @@ static int rfkill_fop_open(struct inode *inode, struct file *file)
*/
list_for_each_entry(rfkill, &rfkill_list, node) {
- ev = kzalloc(sizeof(*ev), GFP_KERNEL);
+ ev = kzalloc_obj(*ev, GFP_KERNEL);
if (!ev)
goto free;
rfkill_sync(rfkill);
diff --git a/net/rfkill/input.c b/net/rfkill/input.c
index 53d286b10843..2be6d13ba6ba 100644
--- a/net/rfkill/input.c
+++ b/net/rfkill/input.c
@@ -221,7 +221,7 @@ static int rfkill_connect(struct input_handler *handler, struct input_dev *dev,
struct input_handle *handle;
int error;
- handle = kzalloc(sizeof(struct input_handle), GFP_KERNEL);
+ handle = kzalloc_obj(struct input_handle, GFP_KERNEL);
if (!handle)
return -ENOMEM;
diff --git a/net/rose/af_rose.c b/net/rose/af_rose.c
index c0f5a515a8ce..83c62af80d7c 100644
--- a/net/rose/af_rose.c
+++ b/net/rose/af_rose.c
@@ -1571,8 +1571,7 @@ static int __init rose_proto_init(void)
rose_callsign = null_ax25_address;
- dev_rose = kcalloc(rose_ndevs, sizeof(struct net_device *),
- GFP_KERNEL);
+ dev_rose = kzalloc_objs(struct net_device *, rose_ndevs, GFP_KERNEL);
if (dev_rose == NULL) {
printk(KERN_ERR "ROSE: rose_proto_init - unable to allocate device structure\n");
rc = -ENOMEM;
diff --git a/net/rose/rose_route.c b/net/rose/rose_route.c
index a1e9b05ef6f5..4330df1b1b59 100644
--- a/net/rose/rose_route.c
+++ b/net/rose/rose_route.c
@@ -82,7 +82,7 @@ static int __must_check rose_add_node(struct rose_route_struct *rose_route,
}
if (rose_neigh == NULL) {
- rose_neigh = kmalloc(sizeof(*rose_neigh), GFP_ATOMIC);
+ rose_neigh = kmalloc_obj(*rose_neigh, GFP_ATOMIC);
if (rose_neigh == NULL) {
res = -ENOMEM;
goto out;
@@ -106,7 +106,7 @@ static int __must_check rose_add_node(struct rose_route_struct *rose_route,
if (rose_route->ndigis != 0) {
rose_neigh->digipeat =
- kmalloc(sizeof(ax25_digi), GFP_ATOMIC);
+ kmalloc_obj(ax25_digi, GFP_ATOMIC);
if (rose_neigh->digipeat == NULL) {
kfree(rose_neigh);
res = -ENOMEM;
@@ -148,7 +148,7 @@ static int __must_check rose_add_node(struct rose_route_struct *rose_route,
}
/* create new node */
- rose_node = kmalloc(sizeof(*rose_node), GFP_ATOMIC);
+ rose_node = kmalloc_obj(*rose_node, GFP_ATOMIC);
if (rose_node == NULL) {
res = -ENOMEM;
goto out;
@@ -368,7 +368,7 @@ void rose_add_loopback_neigh(void)
{
struct rose_neigh *sn;
- rose_loopback_neigh = kmalloc(sizeof(struct rose_neigh), GFP_KERNEL);
+ rose_loopback_neigh = kmalloc_obj(struct rose_neigh, GFP_KERNEL);
if (!rose_loopback_neigh)
return;
sn = rose_loopback_neigh;
@@ -417,7 +417,7 @@ int rose_add_loopback_node(const rose_address *address)
if (rose_node != NULL)
goto out;
- if ((rose_node = kmalloc(sizeof(*rose_node), GFP_ATOMIC)) == NULL) {
+ if ((rose_node = kmalloc_obj(*rose_node, GFP_ATOMIC)) == NULL) {
err = -ENOMEM;
goto out;
}
@@ -1055,7 +1055,7 @@ int rose_route_frame(struct sk_buff *skb, ax25_cb *ax25)
goto put_neigh;
}
- if ((rose_route = kmalloc(sizeof(*rose_route), GFP_ATOMIC)) == NULL) {
+ if ((rose_route = kmalloc_obj(*rose_route, GFP_ATOMIC)) == NULL) {
rose_transmit_clear_request(rose_neigh, lci, ROSE_NETWORK_CONGESTION, 120);
goto put_neigh;
}
diff --git a/net/rxrpc/call_accept.c b/net/rxrpc/call_accept.c
index 00982a030744..ee2d1319e69a 100644
--- a/net/rxrpc/call_accept.c
+++ b/net/rxrpc/call_accept.c
@@ -164,7 +164,7 @@ int rxrpc_service_prealloc(struct rxrpc_sock *rx, gfp_t gfp)
struct rxrpc_backlog *b = rx->backlog;
if (!b) {
- b = kzalloc(sizeof(struct rxrpc_backlog), gfp);
+ b = kzalloc_obj(struct rxrpc_backlog, gfp);
if (!b)
return -ENOMEM;
rx->backlog = b;
diff --git a/net/rxrpc/conn_client.c b/net/rxrpc/conn_client.c
index 63bbcc567f59..9b757798dedd 100644
--- a/net/rxrpc/conn_client.c
+++ b/net/rxrpc/conn_client.c
@@ -76,7 +76,7 @@ static struct rxrpc_bundle *rxrpc_alloc_bundle(struct rxrpc_call *call,
static atomic_t rxrpc_bundle_id;
struct rxrpc_bundle *bundle;
- bundle = kzalloc(sizeof(*bundle), gfp);
+ bundle = kzalloc_obj(*bundle, gfp);
if (bundle) {
bundle->local = call->local;
bundle->peer = rxrpc_get_peer(call->peer, rxrpc_peer_get_bundle);
diff --git a/net/rxrpc/conn_object.c b/net/rxrpc/conn_object.c
index 37340becb224..0ece717db0f8 100644
--- a/net/rxrpc/conn_object.c
+++ b/net/rxrpc/conn_object.c
@@ -59,7 +59,7 @@ struct rxrpc_connection *rxrpc_alloc_connection(struct rxrpc_net *rxnet,
_enter("");
- conn = kzalloc(sizeof(struct rxrpc_connection), gfp);
+ conn = kzalloc_obj(struct rxrpc_connection, gfp);
if (conn) {
INIT_LIST_HEAD(&conn->cache_link);
timer_setup(&conn->timer, &rxrpc_connection_timer, 0);
diff --git a/net/rxrpc/key.c b/net/rxrpc/key.c
index 9fdc1f031c9d..cd65bff97a8e 100644
--- a/net/rxrpc/key.c
+++ b/net/rxrpc/key.c
@@ -75,7 +75,7 @@ static int rxrpc_preparse_xdr_rxkad(struct key_preparsed_payload *prep,
prep->quotalen = datalen + plen;
plen -= sizeof(*token);
- token = kzalloc(sizeof(*token), GFP_KERNEL);
+ token = kzalloc_obj(*token, GFP_KERNEL);
if (!token)
return -ENOMEM;
@@ -202,7 +202,7 @@ static int rxrpc_preparse_xdr_yfs_rxgk(struct key_preparsed_payload *prep,
prep->quotalen = datalen + plen;
plen -= sizeof(*token);
- token = kzalloc(sizeof(*token), GFP_KERNEL);
+ token = kzalloc_obj(*token, GFP_KERNEL);
if (!token)
goto nomem;
@@ -500,7 +500,7 @@ static int rxrpc_preparse(struct key_preparsed_payload *prep)
prep->quotalen = plen + sizeof(*token);
ret = -ENOMEM;
- token = kzalloc(sizeof(*token), GFP_KERNEL);
+ token = kzalloc_obj(*token, GFP_KERNEL);
if (!token)
goto error;
token->kad = kzalloc(plen, GFP_KERNEL);
diff --git a/net/rxrpc/local_object.c b/net/rxrpc/local_object.c
index a74a4b43904f..6f799b26d4d5 100644
--- a/net/rxrpc/local_object.c
+++ b/net/rxrpc/local_object.c
@@ -112,7 +112,7 @@ static struct rxrpc_local *rxrpc_alloc_local(struct net *net,
struct rxrpc_local *local;
u32 tmp;
- local = kzalloc(sizeof(struct rxrpc_local), GFP_KERNEL);
+ local = kzalloc_obj(struct rxrpc_local, GFP_KERNEL);
if (local) {
refcount_set(&local->ref, 1);
atomic_set(&local->active_users, 1);
diff --git a/net/rxrpc/peer_object.c b/net/rxrpc/peer_object.c
index 366431b0736c..fa9a406e1168 100644
--- a/net/rxrpc/peer_object.c
+++ b/net/rxrpc/peer_object.c
@@ -226,7 +226,7 @@ struct rxrpc_peer *rxrpc_alloc_peer(struct rxrpc_local *local, gfp_t gfp,
_enter("");
- peer = kzalloc(sizeof(struct rxrpc_peer), gfp);
+ peer = kzalloc_obj(struct rxrpc_peer, gfp);
if (peer) {
refcount_set(&peer->ref, 1);
peer->local = rxrpc_get_local(local, rxrpc_local_get_peer);
diff --git a/net/rxrpc/rxgk.c b/net/rxrpc/rxgk.c
index 43cbf9efd89f..f9f5a2dc62ed 100644
--- a/net/rxrpc/rxgk.c
+++ b/net/rxrpc/rxgk.c
@@ -351,7 +351,7 @@ static int rxgk_secure_packet_integrity(const struct rxrpc_call *call,
_enter("");
- hdr = kzalloc(sizeof(*hdr), GFP_NOFS);
+ hdr = kzalloc_obj(*hdr, GFP_NOFS);
if (!hdr)
goto error_gk;
@@ -483,7 +483,7 @@ static int rxgk_verify_packet_integrity(struct rxrpc_call *call,
crypto_krb5_where_is_the_data(gk->krb5, KRB5_CHECKSUM_MODE,
&data_offset, &data_len);
- hdr = kzalloc(sizeof(*hdr), GFP_NOFS);
+ hdr = kzalloc_obj(*hdr, GFP_NOFS);
if (!hdr)
goto put_gk;
diff --git a/net/rxrpc/rxgk_kdf.c b/net/rxrpc/rxgk_kdf.c
index b4db5aa30e5b..6011fa7cf221 100644
--- a/net/rxrpc/rxgk_kdf.c
+++ b/net/rxrpc/rxgk_kdf.c
@@ -213,7 +213,7 @@ struct rxgk_context *rxgk_generate_transport_key(struct rxrpc_connection *conn,
_enter("");
- gk = kzalloc(sizeof(*gk), GFP_KERNEL);
+ gk = kzalloc_obj(*gk, GFP_KERNEL);
if (!gk)
return ERR_PTR(-ENOMEM);
refcount_set(&gk->usage, 1);
diff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c
index a756855a0a62..e923d6829008 100644
--- a/net/rxrpc/rxkad.c
+++ b/net/rxrpc/rxkad.c
@@ -511,7 +511,7 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb,
if (nsg <= 4) {
nsg = 4;
} else {
- sg = kmalloc_array(nsg, sizeof(*sg), GFP_NOIO);
+ sg = kmalloc_objs(*sg, nsg, GFP_NOIO);
if (!sg)
return -ENOMEM;
}
@@ -1139,7 +1139,7 @@ static int rxkad_verify_response(struct rxrpc_connection *conn,
}
ret = -ENOMEM;
- response = kzalloc(sizeof(struct rxkad_response), GFP_NOFS);
+ response = kzalloc_obj(struct rxkad_response, GFP_NOFS);
if (!response)
goto temporary_error;
diff --git a/net/rxrpc/rxperf.c b/net/rxrpc/rxperf.c
index 98ea76fae70f..1345ffffb109 100644
--- a/net/rxrpc/rxperf.c
+++ b/net/rxrpc/rxperf.c
@@ -151,7 +151,7 @@ static void rxperf_charge_preallocation(struct work_struct *work)
struct rxperf_call *call;
for (;;) {
- call = kzalloc(sizeof(*call), GFP_KERNEL);
+ call = kzalloc_obj(*call, GFP_KERNEL);
if (!call)
break;
diff --git a/net/rxrpc/sendmsg.c b/net/rxrpc/sendmsg.c
index ebbb78b842de..04f9c5f2dc24 100644
--- a/net/rxrpc/sendmsg.c
+++ b/net/rxrpc/sendmsg.c
@@ -282,7 +282,7 @@ static int rxrpc_alloc_txqueue(struct sock *sk, struct rxrpc_call *call)
{
struct rxrpc_txqueue *tq;
- tq = kzalloc(sizeof(*tq), sk->sk_allocation);
+ tq = kzalloc_obj(*tq, sk->sk_allocation);
if (!tq)
return -ENOMEM;
diff --git a/net/rxrpc/txbuf.c b/net/rxrpc/txbuf.c
index 29767038691a..55ef7a04852e 100644
--- a/net/rxrpc/txbuf.c
+++ b/net/rxrpc/txbuf.c
@@ -23,7 +23,7 @@ struct rxrpc_txbuf *rxrpc_alloc_data_txbuf(struct rxrpc_call *call, size_t data_
size_t total, doff, jsize = sizeof(struct rxrpc_jumbo_header);
void *buf;
- txb = kzalloc(sizeof(*txb), gfp);
+ txb = kzalloc_obj(*txb, gfp);
if (!txb)
return NULL;
diff --git a/net/sched/act_api.c b/net/sched/act_api.c
index e1ab0faeb811..389874842982 100644
--- a/net/sched/act_api.c
+++ b/net/sched/act_api.c
@@ -985,7 +985,7 @@ static int tcf_pernet_add_id_list(unsigned int id)
}
}
- id_ptr = kzalloc(sizeof(*id_ptr), GFP_KERNEL);
+ id_ptr = kzalloc_obj(*id_ptr, GFP_KERNEL);
if (!id_ptr) {
ret = -ENOMEM;
goto err_out;
@@ -1272,7 +1272,7 @@ int tcf_action_dump(struct sk_buff *skb, struct tc_action *actions[],
static struct tc_cookie *nla_memdup_cookie(struct nlattr **tb)
{
- struct tc_cookie *c = kzalloc(sizeof(*c), GFP_KERNEL);
+ struct tc_cookie *c = kzalloc_obj(*c, GFP_KERNEL);
if (!c)
return NULL;
diff --git a/net/sched/act_connmark.c b/net/sched/act_connmark.c
index 26ba8c2d20ab..19eea8daa6b5 100644
--- a/net/sched/act_connmark.c
+++ b/net/sched/act_connmark.c
@@ -121,7 +121,7 @@ static int tcf_connmark_init(struct net *net, struct nlattr *nla,
if (!tb[TCA_CONNMARK_PARMS])
return -EINVAL;
- nparms = kzalloc(sizeof(*nparms), GFP_KERNEL);
+ nparms = kzalloc_obj(*nparms, GFP_KERNEL);
if (!nparms)
return -ENOMEM;
diff --git a/net/sched/act_csum.c b/net/sched/act_csum.c
index 0939e6b2ba4d..1cd3336eeeea 100644
--- a/net/sched/act_csum.c
+++ b/net/sched/act_csum.c
@@ -93,7 +93,7 @@ static int tcf_csum_init(struct net *net, struct nlattr *nla,
p = to_tcf_csum(*a);
- params_new = kzalloc(sizeof(*params_new), GFP_KERNEL);
+ params_new = kzalloc_obj(*params_new, GFP_KERNEL);
if (unlikely(!params_new)) {
err = -ENOMEM;
goto put_chain;
diff --git a/net/sched/act_ct.c b/net/sched/act_ct.c
index 81d488655793..5f45bec69c50 100644
--- a/net/sched/act_ct.c
+++ b/net/sched/act_ct.c
@@ -332,7 +332,7 @@ static int tcf_ct_flow_table_get(struct net *net, struct tcf_ct_params *params)
if (ct_ft && refcount_inc_not_zero(&ct_ft->ref))
goto out_unlock;
- ct_ft = kzalloc(sizeof(*ct_ft), GFP_KERNEL);
+ ct_ft = kzalloc_obj(*ct_ft, GFP_KERNEL);
if (!ct_ft)
goto err_alloc;
refcount_set(&ct_ft->ref, 1);
@@ -1397,7 +1397,7 @@ static int tcf_ct_init(struct net *net, struct nlattr *nla,
c = to_ct(*a);
- params = kzalloc(sizeof(*params), GFP_KERNEL);
+ params = kzalloc_obj(*params, GFP_KERNEL);
if (unlikely(!params)) {
err = -ENOMEM;
goto cleanup;
diff --git a/net/sched/act_ctinfo.c b/net/sched/act_ctinfo.c
index d2c750bab1d3..00e303a01241 100644
--- a/net/sched/act_ctinfo.c
+++ b/net/sched/act_ctinfo.c
@@ -236,7 +236,7 @@ static int tcf_ctinfo_init(struct net *net, struct nlattr *nla,
ci = to_ctinfo(*a);
- cp_new = kzalloc(sizeof(*cp_new), GFP_KERNEL);
+ cp_new = kzalloc_obj(*cp_new, GFP_KERNEL);
if (unlikely(!cp_new)) {
err = -ENOMEM;
goto put_chain;
diff --git a/net/sched/act_gate.c b/net/sched/act_gate.c
index c1f75f272757..686eaed81b81 100644
--- a/net/sched/act_gate.c
+++ b/net/sched/act_gate.c
@@ -243,7 +243,7 @@ static int parse_gate_list(struct nlattr *list_attr,
continue;
}
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (!entry) {
NL_SET_ERR_MSG(extack, "Not enough memory for entry");
err = -ENOMEM;
diff --git a/net/sched/act_ife.c b/net/sched/act_ife.c
index 8e8f6af731d5..6895834a929c 100644
--- a/net/sched/act_ife.c
+++ b/net/sched/act_ife.c
@@ -299,7 +299,7 @@ static int __add_metainfo(const struct tcf_meta_ops *ops,
struct tcf_meta_info *mi = NULL;
int ret = 0;
- mi = kzalloc(sizeof(*mi), atomic ? GFP_ATOMIC : GFP_KERNEL);
+ mi = kzalloc_obj(*mi, atomic ? GFP_ATOMIC : GFP_KERNEL);
if (!mi)
return -ENOMEM;
@@ -520,7 +520,7 @@ static int tcf_ife_init(struct net *net, struct nlattr *nla,
if (parm->flags & ~IFE_ENCODE)
return -EINVAL;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return -ENOMEM;
diff --git a/net/sched/act_mpls.c b/net/sched/act_mpls.c
index 6654011dcd2b..30c915d43432 100644
--- a/net/sched/act_mpls.c
+++ b/net/sched/act_mpls.c
@@ -279,7 +279,7 @@ static int tcf_mpls_init(struct net *net, struct nlattr *nla,
m = to_mpls(*a);
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p) {
err = -ENOMEM;
goto put_chain;
diff --git a/net/sched/act_nat.c b/net/sched/act_nat.c
index 26241d80ebe0..7ca2af5a10c3 100644
--- a/net/sched/act_nat.c
+++ b/net/sched/act_nat.c
@@ -81,7 +81,7 @@ static int tcf_nat_init(struct net *net, struct nlattr *nla, struct nlattr *est,
if (err < 0)
goto release_idr;
- nparm = kzalloc(sizeof(*nparm), GFP_KERNEL);
+ nparm = kzalloc_obj(*nparm, GFP_KERNEL);
if (!nparm) {
err = -ENOMEM;
goto release_idr;
diff --git a/net/sched/act_pedit.c b/net/sched/act_pedit.c
index 4b65901397a8..fb960a05cbc8 100644
--- a/net/sched/act_pedit.c
+++ b/net/sched/act_pedit.c
@@ -51,7 +51,7 @@ static struct tcf_pedit_key_ex *tcf_pedit_keys_ex_parse(struct nlattr *nla,
if (!nla)
return NULL;
- keys_ex = kcalloc(n, sizeof(*k), GFP_KERNEL);
+ keys_ex = kzalloc_objs(*k, n, GFP_KERNEL);
if (!keys_ex)
return ERR_PTR(-ENOMEM);
@@ -223,7 +223,7 @@ static int tcf_pedit_init(struct net *net, struct nlattr *nla,
goto out_release;
}
- nparms = kzalloc(sizeof(*nparms), GFP_KERNEL);
+ nparms = kzalloc_obj(*nparms, GFP_KERNEL);
if (!nparms) {
ret = -ENOMEM;
goto out_release;
diff --git a/net/sched/act_police.c b/net/sched/act_police.c
index 0e1c61183379..4778c3ebd5db 100644
--- a/net/sched/act_police.c
+++ b/net/sched/act_police.c
@@ -151,7 +151,7 @@ static int tcf_police_init(struct net *net, struct nlattr *nla,
goto failure;
}
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (unlikely(!new)) {
err = -ENOMEM;
goto failure;
diff --git a/net/sched/act_skbedit.c b/net/sched/act_skbedit.c
index 5450c1293eb5..e3764d9862ad 100644
--- a/net/sched/act_skbedit.c
+++ b/net/sched/act_skbedit.c
@@ -242,7 +242,7 @@ static int tcf_skbedit_init(struct net *net, struct nlattr *nla,
if (err < 0)
goto release_idr;
- params_new = kzalloc(sizeof(*params_new), GFP_KERNEL);
+ params_new = kzalloc_obj(*params_new, GFP_KERNEL);
if (unlikely(!params_new)) {
err = -ENOMEM;
goto put_chain;
diff --git a/net/sched/act_skbmod.c b/net/sched/act_skbmod.c
index a9e0c1326e2a..2eaf82dc2179 100644
--- a/net/sched/act_skbmod.c
+++ b/net/sched/act_skbmod.c
@@ -185,7 +185,7 @@ static int tcf_skbmod_init(struct net *net, struct nlattr *nla,
d = to_skbmod(*a);
- p = kzalloc(sizeof(struct tcf_skbmod_params), GFP_KERNEL);
+ p = kzalloc_obj(struct tcf_skbmod_params, GFP_KERNEL);
if (unlikely(!p)) {
err = -ENOMEM;
goto put_chain;
diff --git a/net/sched/act_vlan.c b/net/sched/act_vlan.c
index a74621797d69..51ac783f7d6c 100644
--- a/net/sched/act_vlan.c
+++ b/net/sched/act_vlan.c
@@ -233,7 +233,7 @@ static int tcf_vlan_init(struct net *net, struct nlattr *nla,
v = to_vlan(*a);
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p) {
err = -ENOMEM;
goto put_chain;
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index ebca4b926dcf..22e8527657af 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -84,7 +84,7 @@ tcf_exts_miss_cookie_base_alloc(struct tcf_exts *exts, struct tcf_proto *tp,
if (WARN_ON(!handle || !tp->ops->get_exts))
return -EINVAL;
- n = kzalloc(sizeof(*n), GFP_KERNEL);
+ n = kzalloc_obj(*n, GFP_KERNEL);
if (!n)
return -ENOMEM;
@@ -377,7 +377,7 @@ static struct tcf_proto *tcf_proto_create(const char *kind, u32 protocol,
struct tcf_proto *tp;
int err;
- tp = kzalloc(sizeof(*tp), GFP_KERNEL);
+ tp = kzalloc_obj(*tp, GFP_KERNEL);
if (!tp)
return ERR_PTR(-ENOBUFS);
@@ -502,7 +502,7 @@ static struct tcf_chain *tcf_chain_create(struct tcf_block *block,
ASSERT_BLOCK_LOCKED(block);
- chain = kzalloc(sizeof(*chain), GFP_KERNEL);
+ chain = kzalloc_obj(*chain, GFP_KERNEL);
if (!chain)
return NULL;
list_add_tail_rcu(&chain->list, &block->chain_list);
@@ -918,7 +918,7 @@ tcf_chain0_head_change_cb_add(struct tcf_block *block,
struct tcf_filter_chain_list_item *item;
struct tcf_chain *chain0;
- item = kmalloc(sizeof(*item), GFP_KERNEL);
+ item = kmalloc_obj(*item, GFP_KERNEL);
if (!item) {
NL_SET_ERR_MSG(extack, "Memory allocation for head change callback item failed");
return -ENOMEM;
@@ -1016,7 +1016,7 @@ static struct tcf_block *tcf_block_create(struct net *net, struct Qdisc *q,
{
struct tcf_block *block;
- block = kzalloc(sizeof(*block), GFP_KERNEL);
+ block = kzalloc_obj(*block, GFP_KERNEL);
if (!block) {
NL_SET_ERR_MSG(extack, "Memory allocation for block failed");
return ERR_PTR(-ENOMEM);
@@ -1428,7 +1428,7 @@ static int tcf_block_owner_add(struct tcf_block *block,
{
struct tcf_block_owner_item *item;
- item = kmalloc(sizeof(*item), GFP_KERNEL);
+ item = kmalloc_obj(*item, GFP_KERNEL);
if (!item)
return -ENOMEM;
item->q = q;
@@ -3341,8 +3341,8 @@ int tcf_exts_init_ex(struct tcf_exts *exts, struct net *net, int action,
* This reference might be taken later from tcf_exts_get_net().
*/
exts->net = net;
- exts->actions = kcalloc(TCA_ACT_MAX_PRIO, sizeof(struct tc_action *),
- GFP_KERNEL);
+ exts->actions = kzalloc_objs(struct tc_action *, TCA_ACT_MAX_PRIO,
+ GFP_KERNEL);
if (!exts->actions)
return -ENOMEM;
#endif
diff --git a/net/sched/cls_basic.c b/net/sched/cls_basic.c
index ecfaa4f9a04e..5479fd5341b2 100644
--- a/net/sched/cls_basic.c
+++ b/net/sched/cls_basic.c
@@ -77,7 +77,7 @@ static int basic_init(struct tcf_proto *tp)
{
struct basic_head *head;
- head = kzalloc(sizeof(*head), GFP_KERNEL);
+ head = kzalloc_obj(*head, GFP_KERNEL);
if (head == NULL)
return -ENOBUFS;
INIT_LIST_HEAD(&head->flist);
@@ -193,7 +193,7 @@ static int basic_change(struct net *net, struct sk_buff *in_skb,
return -EINVAL;
}
- fnew = kzalloc(sizeof(*fnew), GFP_KERNEL);
+ fnew = kzalloc_obj(*fnew, GFP_KERNEL);
if (!fnew)
return -ENOBUFS;
diff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c
index a32754a2658b..f42b89ba10a8 100644
--- a/net/sched/cls_bpf.c
+++ b/net/sched/cls_bpf.c
@@ -242,7 +242,7 @@ static int cls_bpf_init(struct tcf_proto *tp)
{
struct cls_bpf_head *head;
- head = kzalloc(sizeof(*head), GFP_KERNEL);
+ head = kzalloc_obj(*head, GFP_KERNEL);
if (head == NULL)
return -ENOBUFS;
@@ -427,7 +427,7 @@ static int cls_bpf_change(struct net *net, struct sk_buff *in_skb,
if (ret < 0)
return ret;
- prog = kzalloc(sizeof(*prog), GFP_KERNEL);
+ prog = kzalloc_obj(*prog, GFP_KERNEL);
if (!prog)
return -ENOBUFS;
diff --git a/net/sched/cls_cgroup.c b/net/sched/cls_cgroup.c
index 424252982d6a..d177b1cfde60 100644
--- a/net/sched/cls_cgroup.c
+++ b/net/sched/cls_cgroup.c
@@ -95,7 +95,7 @@ static int cls_cgroup_change(struct net *net, struct sk_buff *in_skb,
if (head && handle != head->handle)
return -ENOENT;
- new = kzalloc(sizeof(*head), GFP_KERNEL);
+ new = kzalloc_obj(*head, GFP_KERNEL);
if (!new)
return -ENOBUFS;
diff --git a/net/sched/cls_flow.c b/net/sched/cls_flow.c
index 5693b41b093f..83d837c4bced 100644
--- a/net/sched/cls_flow.c
+++ b/net/sched/cls_flow.c
@@ -433,7 +433,7 @@ static int flow_change(struct net *net, struct sk_buff *in_skb,
return -EOPNOTSUPP;
}
- fnew = kzalloc(sizeof(*fnew), GFP_KERNEL);
+ fnew = kzalloc_obj(*fnew, GFP_KERNEL);
if (!fnew)
return -ENOBUFS;
@@ -583,7 +583,7 @@ static int flow_init(struct tcf_proto *tp)
{
struct flow_head *head;
- head = kzalloc(sizeof(*head), GFP_KERNEL);
+ head = kzalloc_obj(*head, GFP_KERNEL);
if (head == NULL)
return -ENOBUFS;
INIT_LIST_HEAD(&head->filters);
diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c
index 7669371c1354..3c930039bacb 100644
--- a/net/sched/cls_flower.c
+++ b/net/sched/cls_flower.c
@@ -363,7 +363,7 @@ static int fl_init(struct tcf_proto *tp)
{
struct cls_fl_head *head;
- head = kzalloc(sizeof(*head), GFP_KERNEL);
+ head = kzalloc_obj(*head, GFP_KERNEL);
if (!head)
return -ENOBUFS;
@@ -2237,7 +2237,7 @@ static struct fl_flow_mask *fl_create_new_mask(struct cls_fl_head *head,
struct fl_flow_mask *newmask;
int err;
- newmask = kzalloc(sizeof(*newmask), GFP_KERNEL);
+ newmask = kzalloc_obj(*newmask, GFP_KERNEL);
if (!newmask)
return ERR_PTR(-ENOMEM);
@@ -2376,13 +2376,13 @@ static int fl_change(struct net *net, struct sk_buff *in_skb,
goto errout_fold;
}
- mask = kzalloc(sizeof(struct fl_flow_mask), GFP_KERNEL);
+ mask = kzalloc_obj(struct fl_flow_mask, GFP_KERNEL);
if (!mask) {
err = -ENOBUFS;
goto errout_fold;
}
- tb = kcalloc(TCA_FLOWER_MAX + 1, sizeof(struct nlattr *), GFP_KERNEL);
+ tb = kzalloc_objs(struct nlattr *, TCA_FLOWER_MAX + 1, GFP_KERNEL);
if (!tb) {
err = -ENOBUFS;
goto errout_mask_alloc;
@@ -2398,7 +2398,7 @@ static int fl_change(struct net *net, struct sk_buff *in_skb,
goto errout_tb;
}
- fnew = kzalloc(sizeof(*fnew), GFP_KERNEL);
+ fnew = kzalloc_obj(*fnew, GFP_KERNEL);
if (!fnew) {
err = -ENOBUFS;
goto errout_tb;
@@ -2815,7 +2815,7 @@ static void *fl_tmplt_create(struct net *net, struct tcf_chain *chain,
if (!tca_opts)
return ERR_PTR(-EINVAL);
- tb = kcalloc(TCA_FLOWER_MAX + 1, sizeof(struct nlattr *), GFP_KERNEL);
+ tb = kzalloc_objs(struct nlattr *, TCA_FLOWER_MAX + 1, GFP_KERNEL);
if (!tb)
return ERR_PTR(-ENOBUFS);
err = nla_parse_nested_deprecated(tb, TCA_FLOWER_MAX,
@@ -2823,7 +2823,7 @@ static void *fl_tmplt_create(struct net *net, struct tcf_chain *chain,
if (err)
goto errout_tb;
- tmplt = kzalloc(sizeof(*tmplt), GFP_KERNEL);
+ tmplt = kzalloc_obj(*tmplt, GFP_KERNEL);
if (!tmplt) {
err = -ENOMEM;
goto errout_tb;
diff --git a/net/sched/cls_fw.c b/net/sched/cls_fw.c
index cdddc8695228..8eb3bea06e3b 100644
--- a/net/sched/cls_fw.c
+++ b/net/sched/cls_fw.c
@@ -262,7 +262,7 @@ static int fw_change(struct net *net, struct sk_buff *in_skb,
if (f->id != handle && handle)
return -EINVAL;
- fnew = kzalloc(sizeof(struct fw_filter), GFP_KERNEL);
+ fnew = kzalloc_obj(struct fw_filter, GFP_KERNEL);
if (!fnew)
return -ENOBUFS;
@@ -308,7 +308,7 @@ static int fw_change(struct net *net, struct sk_buff *in_skb,
if (tb[TCA_FW_MASK])
mask = nla_get_u32(tb[TCA_FW_MASK]);
- head = kzalloc(sizeof(*head), GFP_KERNEL);
+ head = kzalloc_obj(*head, GFP_KERNEL);
if (!head)
return -ENOBUFS;
head->mask = mask;
@@ -316,7 +316,7 @@ static int fw_change(struct net *net, struct sk_buff *in_skb,
rcu_assign_pointer(tp->root, head);
}
- f = kzalloc(sizeof(struct fw_filter), GFP_KERNEL);
+ f = kzalloc_obj(struct fw_filter, GFP_KERNEL);
if (f == NULL)
return -ENOBUFS;
diff --git a/net/sched/cls_matchall.c b/net/sched/cls_matchall.c
index f03bf5da39ee..e78b6da59782 100644
--- a/net/sched/cls_matchall.c
+++ b/net/sched/cls_matchall.c
@@ -189,7 +189,7 @@ static int mall_change(struct net *net, struct sk_buff *in_skb,
return -EINVAL;
}
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return -ENOBUFS;
diff --git a/net/sched/cls_route.c b/net/sched/cls_route.c
index b9c58c040c30..6e16819ba91f 100644
--- a/net/sched/cls_route.c
+++ b/net/sched/cls_route.c
@@ -244,7 +244,7 @@ static int route4_init(struct tcf_proto *tp)
{
struct route4_head *head;
- head = kzalloc(sizeof(struct route4_head), GFP_KERNEL);
+ head = kzalloc_obj(struct route4_head, GFP_KERNEL);
if (head == NULL)
return -ENOBUFS;
@@ -438,7 +438,7 @@ static int route4_set_parms(struct net *net, struct tcf_proto *tp,
h1 = to_hash(nhandle);
b = rtnl_dereference(head->table[h1]);
if (!b) {
- b = kzalloc(sizeof(struct route4_bucket), GFP_KERNEL);
+ b = kzalloc_obj(struct route4_bucket, GFP_KERNEL);
if (b == NULL)
return -ENOBUFS;
@@ -507,7 +507,7 @@ static int route4_change(struct net *net, struct sk_buff *in_skb,
return -EINVAL;
err = -ENOBUFS;
- f = kzalloc(sizeof(struct route4_filter), GFP_KERNEL);
+ f = kzalloc_obj(struct route4_filter, GFP_KERNEL);
if (!f)
goto errout;
diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c
index 58e849c0acf4..2bdc14c5e533 100644
--- a/net/sched/cls_u32.c
+++ b/net/sched/cls_u32.c
@@ -364,7 +364,7 @@ static int u32_init(struct tcf_proto *tp)
void *key = tc_u_common_ptr(tp);
struct tc_u_common *tp_c = tc_u_common_find(key);
- root_ht = kzalloc(struct_size(root_ht, ht, 1), GFP_KERNEL);
+ root_ht = kzalloc_flex(*root_ht, ht, 1, GFP_KERNEL);
if (root_ht == NULL)
return -ENOBUFS;
@@ -375,7 +375,7 @@ static int u32_init(struct tcf_proto *tp)
idr_init(&root_ht->handle_idr);
if (tp_c == NULL) {
- tp_c = kzalloc(sizeof(*tp_c), GFP_KERNEL);
+ tp_c = kzalloc_obj(*tp_c, GFP_KERNEL);
if (tp_c == NULL) {
kfree(root_ht);
return -ENOBUFS;
@@ -825,7 +825,7 @@ static struct tc_u_knode *u32_init_knode(struct net *net, struct tcf_proto *tp,
struct tc_u32_sel *s = &n->sel;
struct tc_u_knode *new;
- new = kzalloc(struct_size(new, sel.keys, s->nkeys), GFP_KERNEL);
+ new = kzalloc_flex(*new, sel.keys, s->nkeys, GFP_KERNEL);
if (!new)
return NULL;
@@ -974,7 +974,7 @@ static int u32_change(struct net *net, struct sk_buff *in_skb,
NL_SET_ERR_MSG_MOD(extack, "Divisor can only be used on a hash table");
return -EINVAL;
}
- ht = kzalloc(struct_size(ht, ht, divisor + 1), GFP_KERNEL);
+ ht = kzalloc_flex(*ht, ht, divisor + 1, GFP_KERNEL);
if (ht == NULL)
return -ENOBUFS;
if (handle == 0) {
@@ -1104,7 +1104,7 @@ static int u32_change(struct net *net, struct sk_buff *in_skb,
goto erridr;
}
- n = kzalloc(struct_size(n, sel.keys, s->nkeys), GFP_KERNEL);
+ n = kzalloc_flex(*n, sel.keys, s->nkeys, GFP_KERNEL);
if (n == NULL) {
err = -ENOBUFS;
goto erridr;
@@ -1417,7 +1417,7 @@ static int u32_dump(struct net *net, struct tcf_proto *tp, void *fh,
goto nla_put_failure;
}
#ifdef CONFIG_CLS_U32_PERF
- gpf = kzalloc(struct_size(gpf, kcnts, n->sel.nkeys), GFP_KERNEL);
+ gpf = kzalloc_flex(*gpf, kcnts, n->sel.nkeys, GFP_KERNEL);
if (!gpf)
goto nla_put_failure;
@@ -1480,9 +1480,8 @@ static int __init init_u32(void)
#ifdef CONFIG_NET_CLS_ACT
pr_info(" Actions configured\n");
#endif
- tc_u_common_hash = kvmalloc_array(U32_HASH_SIZE,
- sizeof(struct hlist_head),
- GFP_KERNEL);
+ tc_u_common_hash = kvmalloc_objs(struct hlist_head, U32_HASH_SIZE,
+ GFP_KERNEL);
if (!tc_u_common_hash)
return -ENOMEM;
diff --git a/net/sched/em_meta.c b/net/sched/em_meta.c
index 3f2e707a11d1..bc47af8a45c6 100644
--- a/net/sched/em_meta.c
+++ b/net/sched/em_meta.c
@@ -927,7 +927,7 @@ static int em_meta_change(struct net *net, void *data, int len,
TCF_META_ID(hdr->right.kind) > TCF_META_ID_MAX)
goto errout;
- meta = kzalloc(sizeof(*meta), GFP_KERNEL);
+ meta = kzalloc_obj(*meta, GFP_KERNEL);
if (meta == NULL) {
err = -ENOMEM;
goto errout;
diff --git a/net/sched/em_text.c b/net/sched/em_text.c
index 692e2be1793e..a69889159537 100644
--- a/net/sched/em_text.c
+++ b/net/sched/em_text.c
@@ -84,7 +84,7 @@ static int em_text_change(struct net *net, void *data, int len,
return -EAGAIN;
}
- tm = kmalloc(sizeof(*tm), GFP_KERNEL);
+ tm = kmalloc_obj(*tm, GFP_KERNEL);
if (tm == NULL) {
textsearch_destroy(ts_conf);
return -ENOBUFS;
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
index 443c116e8663..bcf82bbc60fd 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -437,7 +437,7 @@ struct qdisc_rate_table *qdisc_get_rtab(struct tc_ratespec *r,
}
}
- rtab = kmalloc(sizeof(*rtab), GFP_KERNEL);
+ rtab = kmalloc_obj(*rtab, GFP_KERNEL);
if (rtab) {
rtab->rate = *r;
rtab->refcnt = 1;
@@ -530,7 +530,7 @@ static struct qdisc_size_table *qdisc_get_stab(struct nlattr *opt,
return ERR_PTR(-EINVAL);
}
- stab = kmalloc(struct_size(stab, data, tsize), GFP_KERNEL);
+ stab = kmalloc_flex(*stab, data, tsize, GFP_KERNEL);
if (!stab)
return ERR_PTR(-ENOMEM);
@@ -668,7 +668,7 @@ static struct hlist_head *qdisc_class_hash_alloc(unsigned int n)
struct hlist_head *h;
unsigned int i;
- h = kvmalloc_array(n, sizeof(struct hlist_head), GFP_KERNEL);
+ h = kvmalloc_objs(struct hlist_head, n, GFP_KERNEL);
if (h != NULL) {
for (i = 0; i < n; i++)
diff --git a/net/sched/sch_cake.c b/net/sched/sch_cake.c
index d2bbd5654d5b..7c7a068513e7 100644
--- a/net/sched/sch_cake.c
+++ b/net/sched/sch_cake.c
@@ -2849,8 +2849,8 @@ static int cake_init(struct Qdisc *sch, struct nlattr *opt,
for (i = 1; i <= CAKE_QUEUES; i++)
quantum_div[i] = 65535 / i;
- qd->tins = kvcalloc(CAKE_MAX_TINS, sizeof(struct cake_tin_data),
- GFP_KERNEL);
+ qd->tins = kvzalloc_objs(struct cake_tin_data, CAKE_MAX_TINS,
+ GFP_KERNEL);
if (!qd->tins)
return -ENOMEM;
diff --git a/net/sched/sch_choke.c b/net/sched/sch_choke.c
index 59e7bdf5063e..8d2dd1c4f3dc 100644
--- a/net/sched/sch_choke.c
+++ b/net/sched/sch_choke.c
@@ -370,7 +370,7 @@ static int choke_change(struct Qdisc *sch, struct nlattr *opt,
if (mask != q->tab_mask) {
struct sk_buff **ntab;
- ntab = kvcalloc(mask + 1, sizeof(struct sk_buff *), GFP_KERNEL);
+ ntab = kvzalloc_objs(struct sk_buff *, mask + 1, GFP_KERNEL);
if (!ntab)
return -ENOMEM;
diff --git a/net/sched/sch_drr.c b/net/sched/sch_drr.c
index 9b6d79bd8737..80d845dfbe80 100644
--- a/net/sched/sch_drr.c
+++ b/net/sched/sch_drr.c
@@ -105,7 +105,7 @@ static int drr_change_class(struct Qdisc *sch, u32 classid, u32 parentid,
return 0;
}
- cl = kzalloc(sizeof(struct drr_class), GFP_KERNEL);
+ cl = kzalloc_obj(struct drr_class, GFP_KERNEL);
if (cl == NULL)
return -ENOBUFS;
diff --git a/net/sched/sch_fq_codel.c b/net/sched/sch_fq_codel.c
index dc187c7f06b1..16cd38a179e5 100644
--- a/net/sched/sch_fq_codel.c
+++ b/net/sched/sch_fq_codel.c
@@ -496,9 +496,8 @@ static int fq_codel_init(struct Qdisc *sch, struct nlattr *opt,
goto init_failure;
if (!q->flows) {
- q->flows = kvcalloc(q->flows_cnt,
- sizeof(struct fq_codel_flow),
- GFP_KERNEL);
+ q->flows = kvzalloc_objs(struct fq_codel_flow, q->flows_cnt,
+ GFP_KERNEL);
if (!q->flows) {
err = -ENOMEM;
goto init_failure;
diff --git a/net/sched/sch_fq_pie.c b/net/sched/sch_fq_pie.c
index 7b96bc3ff891..8784f89619d0 100644
--- a/net/sched/sch_fq_pie.c
+++ b/net/sched/sch_fq_pie.c
@@ -448,8 +448,7 @@ static int fq_pie_init(struct Qdisc *sch, struct nlattr *opt,
if (err)
goto init_failure;
- q->flows = kvcalloc(q->flows_cnt, sizeof(struct fq_pie_flow),
- GFP_KERNEL);
+ q->flows = kvzalloc_objs(struct fq_pie_flow, q->flows_cnt, GFP_KERNEL);
if (!q->flows) {
err = -ENOMEM;
goto init_failure;
diff --git a/net/sched/sch_gred.c b/net/sched/sch_gred.c
index 532fde548b88..ec4c8513e617 100644
--- a/net/sched/sch_gred.c
+++ b/net/sched/sch_gred.c
@@ -359,7 +359,7 @@ static int gred_offload_dump_stats(struct Qdisc *sch)
unsigned int i;
int ret;
- hw_stats = kzalloc(sizeof(*hw_stats), GFP_KERNEL);
+ hw_stats = kzalloc_obj(*hw_stats, GFP_KERNEL);
if (!hw_stats)
return -ENOMEM;
@@ -700,7 +700,7 @@ static int gred_change(struct Qdisc *sch, struct nlattr *opt,
prio = ctl->prio;
}
- prealloc = kzalloc(sizeof(*prealloc), GFP_KERNEL);
+ prealloc = kzalloc_obj(*prealloc, GFP_KERNEL);
sch_tree_lock(sch);
err = gred_change_vq(sch, ctl->DP, ctl, prio, stab, max_P, &prealloc,
@@ -757,7 +757,7 @@ static int gred_init(struct Qdisc *sch, struct nlattr *opt,
* psched_mtu(qdisc_dev(sch));
if (qdisc_dev(sch)->netdev_ops->ndo_setup_tc) {
- table->opt = kzalloc(sizeof(*table->opt), GFP_KERNEL);
+ table->opt = kzalloc_obj(*table->opt, GFP_KERNEL);
if (!table->opt)
return -ENOMEM;
}
diff --git a/net/sched/sch_hfsc.c b/net/sched/sch_hfsc.c
index d8fd35da32a7..3f08daae26d8 100644
--- a/net/sched/sch_hfsc.c
+++ b/net/sched/sch_hfsc.c
@@ -1025,7 +1025,7 @@ hfsc_change_class(struct Qdisc *sch, u32 classid, u32 parentid,
if (rsc == NULL && fsc == NULL)
return -EINVAL;
- cl = kzalloc(sizeof(struct hfsc_class), GFP_KERNEL);
+ cl = kzalloc_obj(struct hfsc_class, GFP_KERNEL);
if (cl == NULL)
return -ENOBUFS;
diff --git a/net/sched/sch_hhf.c b/net/sched/sch_hhf.c
index 2d4855e28a28..a386c40b67da 100644
--- a/net/sched/sch_hhf.c
+++ b/net/sched/sch_hhf.c
@@ -230,7 +230,7 @@ static struct hh_flow_state *alloc_new_hh(struct list_head *head,
return NULL;
}
/* Create new entry. */
- flow = kzalloc(sizeof(struct hh_flow_state), GFP_ATOMIC);
+ flow = kzalloc_obj(struct hh_flow_state, GFP_ATOMIC);
if (!flow)
return NULL;
@@ -604,8 +604,8 @@ static int hhf_init(struct Qdisc *sch, struct nlattr *opt,
if (!q->hh_flows) {
/* Initialize heavy-hitter flow table. */
- q->hh_flows = kvcalloc(HH_FLOWS_CNT, sizeof(struct list_head),
- GFP_KERNEL);
+ q->hh_flows = kvzalloc_objs(struct list_head, HH_FLOWS_CNT,
+ GFP_KERNEL);
if (!q->hh_flows)
return -ENOMEM;
for (i = 0; i < HH_FLOWS_CNT; i++)
diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c
index b5e40c51655a..7b34e40d4bd2 100644
--- a/net/sched/sch_htb.c
+++ b/net/sched/sch_htb.c
@@ -1095,9 +1095,9 @@ static int htb_init(struct Qdisc *sch, struct nlattr *opt,
}
q->num_direct_qdiscs = dev->real_num_tx_queues;
- q->direct_qdiscs = kcalloc(q->num_direct_qdiscs,
- sizeof(*q->direct_qdiscs),
- GFP_KERNEL);
+ q->direct_qdiscs = kzalloc_objs(*q->direct_qdiscs,
+ q->num_direct_qdiscs,
+ GFP_KERNEL);
if (!q->direct_qdiscs)
return -ENOMEM;
}
@@ -1845,7 +1845,7 @@ static int htb_change_class(struct Qdisc *sch, u32 classid,
goto failure;
}
err = -ENOBUFS;
- cl = kzalloc(sizeof(*cl), GFP_KERNEL);
+ cl = kzalloc_obj(*cl, GFP_KERNEL);
if (!cl)
goto failure;
diff --git a/net/sched/sch_mq.c b/net/sched/sch_mq.c
index bb94cd577943..4dd8379c97b6 100644
--- a/net/sched/sch_mq.c
+++ b/net/sched/sch_mq.c
@@ -82,8 +82,8 @@ int mq_init_common(struct Qdisc *sch, struct nlattr *opt,
return -EOPNOTSUPP;
/* pre-allocate qdiscs, attachment can't fail */
- priv->qdiscs = kcalloc(dev->num_tx_queues, sizeof(priv->qdiscs[0]),
- GFP_KERNEL);
+ priv->qdiscs = kzalloc_objs(priv->qdiscs[0], dev->num_tx_queues,
+ GFP_KERNEL);
if (!priv->qdiscs)
return -ENOMEM;
diff --git a/net/sched/sch_mqprio.c b/net/sched/sch_mqprio.c
index f3e5ef9a9592..ddb18e97bb91 100644
--- a/net/sched/sch_mqprio.c
+++ b/net/sched/sch_mqprio.c
@@ -388,8 +388,8 @@ static int mqprio_init(struct Qdisc *sch, struct nlattr *opt,
}
/* pre-allocate qdisc, attachment can't fail */
- priv->qdiscs = kcalloc(dev->num_tx_queues, sizeof(priv->qdiscs[0]),
- GFP_KERNEL);
+ priv->qdiscs = kzalloc_objs(priv->qdiscs[0], dev->num_tx_queues,
+ GFP_KERNEL);
if (!priv->qdiscs)
return -ENOMEM;
diff --git a/net/sched/sch_multiq.c b/net/sched/sch_multiq.c
index 06e03f5cd7ce..e61e53e3711f 100644
--- a/net/sched/sch_multiq.c
+++ b/net/sched/sch_multiq.c
@@ -249,7 +249,7 @@ static int multiq_init(struct Qdisc *sch, struct nlattr *opt,
q->max_bands = qdisc_dev(sch)->num_tx_queues;
- q->queues = kcalloc(q->max_bands, sizeof(struct Qdisc *), GFP_KERNEL);
+ q->queues = kzalloc_objs(struct Qdisc *, q->max_bands, GFP_KERNEL);
if (!q->queues)
return -ENOBUFS;
for (i = 0; i < q->max_bands; i++)
diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c
index 32a5f3304046..334d2f93ae89 100644
--- a/net/sched/sch_netem.c
+++ b/net/sched/sch_netem.c
@@ -814,7 +814,7 @@ static int get_dist_table(struct disttable **tbl, const struct nlattr *attr)
if (!n || n > NETEM_DIST_MAX)
return -EINVAL;
- d = kvmalloc(struct_size(d, table, n), GFP_KERNEL);
+ d = kvmalloc_flex(*d, table, n, GFP_KERNEL);
if (!d)
return -ENOMEM;
diff --git a/net/sched/sch_qfq.c b/net/sched/sch_qfq.c
index e7778413e72f..6eb71d3f03dd 100644
--- a/net/sched/sch_qfq.c
+++ b/net/sched/sch_qfq.c
@@ -392,7 +392,7 @@ static int qfq_change_agg(struct Qdisc *sch, struct qfq_class *cl, u32 weight,
new_agg = qfq_find_agg(q, lmax, weight);
if (new_agg == NULL) { /* create new aggregate */
- new_agg = kzalloc(sizeof(*new_agg), GFP_ATOMIC);
+ new_agg = kzalloc_obj(*new_agg, GFP_ATOMIC);
if (new_agg == NULL)
return -ENOBUFS;
qfq_init_agg(q, new_agg, lmax, weight);
@@ -476,7 +476,7 @@ static int qfq_change_class(struct Qdisc *sch, u32 classid, u32 parentid,
}
/* create and init new class */
- cl = kzalloc(sizeof(struct qfq_class), GFP_KERNEL);
+ cl = kzalloc_obj(struct qfq_class, GFP_KERNEL);
if (cl == NULL)
return -ENOBUFS;
@@ -508,7 +508,7 @@ static int qfq_change_class(struct Qdisc *sch, u32 classid, u32 parentid,
new_agg = qfq_find_agg(q, lmax, weight);
if (new_agg == NULL) { /* create new aggregate */
sch_tree_unlock(sch);
- new_agg = kzalloc(sizeof(*new_agg), GFP_KERNEL);
+ new_agg = kzalloc_obj(*new_agg, GFP_KERNEL);
if (new_agg == NULL) {
err = -ENOBUFS;
gen_kill_estimator(&cl->rate_est);
diff --git a/net/sched/sch_sfq.c b/net/sched/sch_sfq.c
index 96eb2f122973..31ee70314431 100644
--- a/net/sched/sch_sfq.c
+++ b/net/sched/sch_sfq.c
@@ -668,7 +668,7 @@ static int sfq_change(struct Qdisc *sch, struct nlattr *opt,
ctl_v1->Wlog, ctl_v1->Scell_log, NULL))
return -EINVAL;
if (ctl_v1 && ctl_v1->qth_min) {
- p = kmalloc(sizeof(*p), GFP_KERNEL);
+ p = kmalloc_obj(*p, GFP_KERNEL);
if (!p)
return -ENOMEM;
}
diff --git a/net/sched/sch_taprio.c b/net/sched/sch_taprio.c
index 300d577b3286..31e59e875932 100644
--- a/net/sched/sch_taprio.c
+++ b/net/sched/sch_taprio.c
@@ -1103,7 +1103,7 @@ static int parse_sched_list(struct taprio_sched *q, struct nlattr *list,
continue;
}
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
NL_SET_ERR_MSG(extack, "Not enough memory for entry");
return -ENOMEM;
@@ -1376,8 +1376,8 @@ static struct tc_taprio_qopt_offload *taprio_offload_alloc(int num_entries)
{
struct __tc_taprio_qopt_offload *__offload;
- __offload = kzalloc(struct_size(__offload, offload.entries, num_entries),
- GFP_KERNEL);
+ __offload = kzalloc_flex(*__offload, offload.entries, num_entries,
+ GFP_KERNEL);
if (!__offload)
return NULL;
@@ -1870,7 +1870,7 @@ static int taprio_change(struct Qdisc *sch, struct nlattr *opt,
if (err)
return err;
- new_admin = kzalloc(sizeof(*new_admin), GFP_KERNEL);
+ new_admin = kzalloc_obj(*new_admin, GFP_KERNEL);
if (!new_admin) {
NL_SET_ERR_MSG(extack, "Not enough memory for a new schedule");
return -ENOMEM;
@@ -2091,8 +2091,7 @@ static int taprio_init(struct Qdisc *sch, struct nlattr *opt,
return -EOPNOTSUPP;
}
- q->qdiscs = kcalloc(dev->num_tx_queues, sizeof(q->qdiscs[0]),
- GFP_KERNEL);
+ q->qdiscs = kzalloc_objs(q->qdiscs[0], dev->num_tx_queues, GFP_KERNEL);
if (!q->qdiscs)
return -ENOMEM;
diff --git a/net/sctp/associola.c b/net/sctp/associola.c
index 5793d71852b8..62d3cc155809 100644
--- a/net/sctp/associola.c
+++ b/net/sctp/associola.c
@@ -289,7 +289,7 @@ struct sctp_association *sctp_association_new(const struct sctp_endpoint *ep,
{
struct sctp_association *asoc;
- asoc = kzalloc(sizeof(*asoc), gfp);
+ asoc = kzalloc_obj(*asoc, gfp);
if (!asoc)
goto fail;
diff --git a/net/sctp/auth.c b/net/sctp/auth.c
index 82aad477590e..be9782760f50 100644
--- a/net/sctp/auth.c
+++ b/net/sctp/auth.c
@@ -82,7 +82,7 @@ struct sctp_shared_key *sctp_auth_shkey_create(__u16 key_id, gfp_t gfp)
struct sctp_shared_key *new;
/* Allocate the shared key container */
- new = kzalloc(sizeof(struct sctp_shared_key), gfp);
+ new = kzalloc_obj(struct sctp_shared_key, gfp);
if (!new)
return NULL;
@@ -931,8 +931,8 @@ int sctp_auth_init(struct sctp_endpoint *ep, gfp_t gfp)
if (!ep->auth_hmacs_list) {
struct sctp_hmac_algo_param *auth_hmacs;
- auth_hmacs = kzalloc(struct_size(auth_hmacs, hmac_ids,
- SCTP_AUTH_NUM_HMACS), gfp);
+ auth_hmacs = kzalloc_flex(*auth_hmacs, hmac_ids,
+ SCTP_AUTH_NUM_HMACS, gfp);
if (!auth_hmacs)
goto nomem;
/* Initialize the HMACS parameter.
diff --git a/net/sctp/bind_addr.c b/net/sctp/bind_addr.c
index 6b95d3ba8fe1..75e3e61d494e 100644
--- a/net/sctp/bind_addr.c
+++ b/net/sctp/bind_addr.c
@@ -147,7 +147,7 @@ int sctp_add_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *new,
struct sctp_sockaddr_entry *addr;
/* Add the address to the bind address list. */
- addr = kzalloc(sizeof(*addr), gfp);
+ addr = kzalloc_obj(*addr, gfp);
if (!addr)
return -ENOMEM;
diff --git a/net/sctp/chunk.c b/net/sctp/chunk.c
index c655b571ca01..5b889e89e9f2 100644
--- a/net/sctp/chunk.c
+++ b/net/sctp/chunk.c
@@ -47,7 +47,7 @@ static void sctp_datamsg_init(struct sctp_datamsg *msg)
static struct sctp_datamsg *sctp_datamsg_new(gfp_t gfp)
{
struct sctp_datamsg *msg;
- msg = kmalloc(sizeof(struct sctp_datamsg), gfp);
+ msg = kmalloc_obj(struct sctp_datamsg, gfp);
if (msg) {
sctp_datamsg_init(msg);
SCTP_DBG_OBJCNT_INC(datamsg);
diff --git a/net/sctp/endpointola.c b/net/sctp/endpointola.c
index 31e989dfe846..8d342b514142 100644
--- a/net/sctp/endpointola.c
+++ b/net/sctp/endpointola.c
@@ -135,7 +135,7 @@ struct sctp_endpoint *sctp_endpoint_new(struct sock *sk, gfp_t gfp)
struct sctp_endpoint *ep;
/* Build a local endpoint. */
- ep = kzalloc(sizeof(*ep), gfp);
+ ep = kzalloc_obj(*ep, gfp);
if (!ep)
goto fail;
diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c
index 531cb0690007..53a5c027f8e3 100644
--- a/net/sctp/ipv6.c
+++ b/net/sctp/ipv6.c
@@ -83,7 +83,7 @@ static int sctp_inet6addr_event(struct notifier_block *this, unsigned long ev,
switch (ev) {
case NETDEV_UP:
- addr = kzalloc(sizeof(*addr), GFP_ATOMIC);
+ addr = kzalloc_obj(*addr, GFP_ATOMIC);
if (addr) {
addr->a.v6.sin6_family = AF_INET6;
addr->a.v6.sin6_addr = ifa->addr;
@@ -471,7 +471,7 @@ static void sctp_v6_copy_addrlist(struct list_head *addrlist,
read_lock_bh(&in6_dev->lock);
list_for_each_entry(ifp, &in6_dev->addr_list, if_list) {
/* Add the address to the local list. */
- addr = kzalloc(sizeof(*addr), GFP_ATOMIC);
+ addr = kzalloc_obj(*addr, GFP_ATOMIC);
if (addr) {
addr->a.v6.sin6_family = AF_INET6;
addr->a.v6.sin6_addr = ifp->addr;
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
index 2c3398f75d76..0723cbdbc366 100644
--- a/net/sctp/protocol.c
+++ b/net/sctp/protocol.c
@@ -86,7 +86,7 @@ static void sctp_v4_copy_addrlist(struct list_head *addrlist,
in_dev_for_each_ifa_rcu(ifa, in_dev) {
/* Add the address to the local list. */
- addr = kzalloc(sizeof(*addr), GFP_ATOMIC);
+ addr = kzalloc_obj(*addr, GFP_ATOMIC);
if (addr) {
addr->a.v4.sin_family = AF_INET;
addr->a.v4.sin_addr.s_addr = ifa->ifa_local;
@@ -774,7 +774,7 @@ static int sctp_inetaddr_event(struct notifier_block *this, unsigned long ev,
switch (ev) {
case NETDEV_UP:
- addr = kzalloc(sizeof(*addr), GFP_ATOMIC);
+ addr = kzalloc_obj(*addr, GFP_ATOMIC);
if (addr) {
addr->a.v4.sin_family = AF_INET;
addr->a.v4.sin_addr.s_addr = ifa->ifa_local;
@@ -1538,7 +1538,7 @@ static __init int sctp_init(void)
/* Allocate and initialize the endpoint hash table. */
sctp_ep_hashsize = 64;
sctp_ep_hashtable =
- kmalloc_array(64, sizeof(struct sctp_hashbucket), GFP_KERNEL);
+ kmalloc_objs(struct sctp_hashbucket, 64, GFP_KERNEL);
if (!sctp_ep_hashtable) {
pr_err("Failed endpoint_hash alloc\n");
status = -ENOMEM;
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index 2493a5b1fa3c..05fb00c9c335 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -828,7 +828,7 @@ static int sctp_send_asconf_del_ip(struct sock *sk,
if (asoc->asconf_addr_del_pending)
continue;
asoc->asconf_addr_del_pending =
- kzalloc(sizeof(union sctp_addr), GFP_ATOMIC);
+ kzalloc_obj(union sctp_addr, GFP_ATOMIC);
if (asoc->asconf_addr_del_pending == NULL) {
retval = -ENOMEM;
goto out;
diff --git a/net/sctp/stream.c b/net/sctp/stream.c
index 0615e4426341..03636bed60ff 100644
--- a/net/sctp/stream.c
+++ b/net/sctp/stream.c
@@ -166,7 +166,7 @@ int sctp_stream_init_ext(struct sctp_stream *stream, __u16 sid)
struct sctp_stream_out_ext *soute;
int ret;
- soute = kzalloc(sizeof(*soute), GFP_KERNEL);
+ soute = kzalloc_obj(*soute, GFP_KERNEL);
if (!soute)
return -ENOMEM;
SCTP_SO(stream, sid)->ext = soute;
diff --git a/net/sctp/stream_sched_prio.c b/net/sctp/stream_sched_prio.c
index fb6c55e5615d..bd4f98db2822 100644
--- a/net/sctp/stream_sched_prio.c
+++ b/net/sctp/stream_sched_prio.c
@@ -42,7 +42,7 @@ static struct sctp_stream_priorities *sctp_sched_prio_new_head(
{
struct sctp_stream_priorities *p;
- p = kmalloc(sizeof(*p), gfp);
+ p = kmalloc_obj(*p, gfp);
if (!p)
return NULL;
diff --git a/net/sctp/transport.c b/net/sctp/transport.c
index 0c56d9673cc1..6ea55b9fbde4 100644
--- a/net/sctp/transport.c
+++ b/net/sctp/transport.c
@@ -92,7 +92,7 @@ struct sctp_transport *sctp_transport_new(struct net *net,
{
struct sctp_transport *transport;
- transport = kzalloc(sizeof(*transport), gfp);
+ transport = kzalloc_obj(*transport, gfp);
if (!transport)
return NULL;
diff --git a/net/shaper/shaper.c b/net/shaper/shaper.c
index 7101a48bce54..ca7a6167702d 100644
--- a/net/shaper/shaper.c
+++ b/net/shaper/shaper.c
@@ -272,7 +272,7 @@ net_shaper_hierarchy_setup(struct net_shaper_binding *binding)
if (hierarchy)
return hierarchy;
- hierarchy = kmalloc(sizeof(*hierarchy), GFP_KERNEL);
+ hierarchy = kmalloc_obj(*hierarchy, GFP_KERNEL);
if (!hierarchy)
return NULL;
@@ -329,7 +329,7 @@ static int net_shaper_pre_insert(struct net_shaper_binding *binding,
id_allocated = true;
}
- cur = kzalloc(sizeof(*cur), GFP_KERNEL);
+ cur = kzalloc_obj(*cur, GFP_KERNEL);
if (!cur) {
ret = -ENOMEM;
goto free_id;
@@ -1033,8 +1033,7 @@ static int net_shaper_pre_del_node(struct net_shaper_binding *binding,
return -EINVAL;
}
- leaves = kcalloc(shaper->leaves, sizeof(struct net_shaper),
- GFP_KERNEL);
+ leaves = kzalloc_objs(struct net_shaper, shaper->leaves, GFP_KERNEL);
if (!leaves)
return -ENOMEM;
diff --git a/net/smc/af_smc.c b/net/smc/af_smc.c
index d8201eb3ac5f..242101f269c3 100644
--- a/net/smc/af_smc.c
+++ b/net/smc/af_smc.c
@@ -1195,7 +1195,7 @@ void smc_fill_gid_list(struct smc_link_group *lgr,
memset(gidlist, 0, sizeof(*gidlist));
memcpy(gidlist->list[gidlist->len++], known_gid, SMC_GID_SIZE);
- alt_ini = kzalloc(sizeof(*alt_ini), GFP_KERNEL);
+ alt_ini = kzalloc_obj(*alt_ini, GFP_KERNEL);
if (!alt_ini)
goto out;
@@ -1522,7 +1522,7 @@ static int __smc_connect(struct smc_sock *smc)
return smc_connect_decline_fallback(smc, SMC_CLC_DECL_IPSEC,
version);
- ini = kzalloc(sizeof(*ini), GFP_KERNEL);
+ ini = kzalloc_obj(*ini, GFP_KERNEL);
if (!ini)
return smc_connect_decline_fallback(smc, SMC_CLC_DECL_MEM,
version);
@@ -2470,7 +2470,7 @@ static void smc_listen_work(struct work_struct *work)
/* do inband token exchange -
* wait for and receive SMC Proposal CLC message
*/
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf) {
rc = SMC_CLC_DECL_MEM;
goto out_decl;
@@ -2490,7 +2490,7 @@ static void smc_listen_work(struct work_struct *work)
goto out_decl;
}
- ini = kzalloc(sizeof(*ini), GFP_KERNEL);
+ ini = kzalloc_obj(*ini, GFP_KERNEL);
if (!ini) {
rc = SMC_CLC_DECL_MEM;
goto out_decl;
diff --git a/net/smc/smc_clc.c b/net/smc/smc_clc.c
index 87c87edadde7..992fd2b9f05f 100644
--- a/net/smc/smc_clc.c
+++ b/net/smc/smc_clc.c
@@ -88,7 +88,7 @@ static int smc_clc_ueid_add(char *ueid)
return -EINVAL;
/* add a new ueid entry to the ueid table if there isn't one */
- new_ueid = kzalloc(sizeof(*new_ueid), GFP_KERNEL);
+ new_ueid = kzalloc_obj(*new_ueid, GFP_KERNEL);
if (!new_ueid)
return -ENOMEM;
memcpy(new_ueid->eid, ueid, SMC_MAX_EID_LEN);
@@ -861,7 +861,7 @@ int smc_clc_send_proposal(struct smc_sock *smc, struct smc_init_info *ini)
struct kvec vec[8];
struct msghdr msg;
- pclc = kzalloc(sizeof(*pclc), GFP_KERNEL);
+ pclc = kzalloc_obj(*pclc, GFP_KERNEL);
if (!pclc)
return -ENOMEM;
diff --git a/net/smc/smc_core.c b/net/smc/smc_core.c
index e4eabc83719e..50d01a573042 100644
--- a/net/smc/smc_core.c
+++ b/net/smc/smc_core.c
@@ -905,7 +905,7 @@ static int smc_lgr_create(struct smc_sock *smc, struct smc_init_info *ini)
}
}
- lgr = kzalloc(sizeof(*lgr), GFP_KERNEL);
+ lgr = kzalloc_obj(*lgr, GFP_KERNEL);
if (!lgr) {
rc = SMC_CLC_DECL_MEM;
goto ism_put_vlan;
@@ -2320,7 +2320,7 @@ static struct smc_buf_desc *smcr_new_buf_create(struct smc_link_group *lgr,
struct smc_buf_desc *buf_desc;
/* try to alloc a new buffer */
- buf_desc = kzalloc(sizeof(*buf_desc), GFP_KERNEL);
+ buf_desc = kzalloc_obj(*buf_desc, GFP_KERNEL);
if (!buf_desc)
return ERR_PTR(-ENOMEM);
@@ -2394,7 +2394,7 @@ static struct smc_buf_desc *smcd_new_buf_create(struct smc_link_group *lgr,
int rc;
/* try to alloc a new DMB */
- buf_desc = kzalloc(sizeof(*buf_desc), GFP_KERNEL);
+ buf_desc = kzalloc_obj(*buf_desc, GFP_KERNEL);
if (!buf_desc)
return ERR_PTR(-ENOMEM);
if (is_dmb) {
@@ -2578,7 +2578,7 @@ int smcd_buf_attach(struct smc_sock *smc)
struct smc_buf_desc *buf_desc;
int rc;
- buf_desc = kzalloc(sizeof(*buf_desc), GFP_KERNEL);
+ buf_desc = kzalloc_obj(*buf_desc, GFP_KERNEL);
if (!buf_desc)
return -ENOMEM;
diff --git a/net/smc/smc_ib.c b/net/smc/smc_ib.c
index 1154907c5c05..5a1384126f91 100644
--- a/net/smc/smc_ib.c
+++ b/net/smc/smc_ib.c
@@ -944,7 +944,7 @@ static int smc_ib_add_dev(struct ib_device *ibdev)
if (ibdev->node_type != RDMA_NODE_IB_CA)
return -EOPNOTSUPP;
- smcibdev = kzalloc(sizeof(*smcibdev), GFP_KERNEL);
+ smcibdev = kzalloc_obj(*smcibdev, GFP_KERNEL);
if (!smcibdev)
return -ENOMEM;
diff --git a/net/smc/smc_ism.c b/net/smc/smc_ism.c
index 7b228ca2f96a..4ee7362e91c5 100644
--- a/net/smc/smc_ism.c
+++ b/net/smc/smc_ism.c
@@ -142,7 +142,7 @@ int smc_ism_get_vlan(struct smcd_dev *smcd, unsigned short vlanid)
return -EOPNOTSUPP;
/* create new vlan entry, in case we need it */
- new_vlan = kzalloc(sizeof(*new_vlan), GFP_KERNEL);
+ new_vlan = kzalloc_obj(*new_vlan, GFP_KERNEL);
if (!new_vlan)
return -ENOMEM;
new_vlan->vlanid = vlanid;
@@ -467,11 +467,10 @@ static struct smcd_dev *smcd_alloc_dev(const char *name, int max_dmbs)
{
struct smcd_dev *smcd;
- smcd = kzalloc(sizeof(*smcd), GFP_KERNEL);
+ smcd = kzalloc_obj(*smcd, GFP_KERNEL);
if (!smcd)
return NULL;
- smcd->conn = kcalloc(max_dmbs, sizeof(struct smc_connection *),
- GFP_KERNEL);
+ smcd->conn = kzalloc_objs(struct smc_connection *, max_dmbs, GFP_KERNEL);
if (!smcd->conn)
goto free_smcd;
@@ -582,7 +581,7 @@ static void smcd_handle_event(struct dibs_dev *dibs,
if (smcd->going_away)
return;
/* copy event to event work queue, and let it be handled there */
- wrk = kmalloc(sizeof(*wrk), GFP_ATOMIC);
+ wrk = kmalloc_obj(*wrk, GFP_ATOMIC);
if (!wrk)
return;
INIT_WORK(&wrk->work, smc_ism_event_work);
diff --git a/net/smc/smc_llc.c b/net/smc/smc_llc.c
index f5d5eb617526..f82d5fc7f068 100644
--- a/net/smc/smc_llc.c
+++ b/net/smc/smc_llc.c
@@ -1040,7 +1040,7 @@ int smc_llc_cli_add_link(struct smc_link *link, struct smc_llc_qentry *qentry)
if (!llc->qp_mtu)
goto out_reject;
- ini = kzalloc(sizeof(*ini), GFP_KERNEL);
+ ini = kzalloc_obj(*ini, GFP_KERNEL);
if (!ini) {
rc = -ENOMEM;
goto out_reject;
@@ -1180,7 +1180,7 @@ static void smc_llc_cli_add_link_invite(struct smc_link *link,
if (lgr->type == SMC_LGR_SINGLE && lgr->max_links <= 1)
goto out;
- ini = kzalloc(sizeof(*ini), GFP_KERNEL);
+ ini = kzalloc_obj(*ini, GFP_KERNEL);
if (!ini)
goto out;
@@ -1419,7 +1419,7 @@ int smc_llc_srv_add_link(struct smc_link *link,
req_qentry->msg.raw.hdr.common.llc_type == SMC_LLC_REQ_ADD_LINK)
send_req_add_link_resp = true;
- ini = kzalloc(sizeof(*ini), GFP_KERNEL);
+ ini = kzalloc_obj(*ini, GFP_KERNEL);
if (!ini) {
rc = -ENOMEM;
goto out;
@@ -2069,7 +2069,7 @@ static void smc_llc_enqueue(struct smc_link *link, union smc_llc_msg *llc)
struct smc_llc_qentry *qentry;
unsigned long flags;
- qentry = kmalloc(sizeof(*qentry), GFP_ATOMIC);
+ qentry = kmalloc_obj(*qentry, GFP_ATOMIC);
if (!qentry)
return;
qentry->link = link;
diff --git a/net/smc/smc_pnet.c b/net/smc/smc_pnet.c
index a3a1e1fde8eb..239da54ba01c 100644
--- a/net/smc/smc_pnet.c
+++ b/net/smc/smc_pnet.c
@@ -368,7 +368,7 @@ static int smc_pnet_add_eth(struct smc_pnettable *pnettable, struct net *net,
/* add a new netdev entry to the pnet table if there isn't one */
rc = -ENOMEM;
- new_pe = kzalloc(sizeof(*new_pe), GFP_KERNEL);
+ new_pe = kzalloc_obj(*new_pe, GFP_KERNEL);
if (!new_pe)
goto out_put;
new_pe->type = SMC_PNET_ETH;
@@ -445,7 +445,7 @@ static int smc_pnet_add_ib(struct smc_pnettable *pnettable, char *ib_name,
return -EEXIST;
/* add a new ib entry to the pnet table if there isn't one */
- new_pe = kzalloc(sizeof(*new_pe), GFP_KERNEL);
+ new_pe = kzalloc_obj(*new_pe, GFP_KERNEL);
if (!new_pe)
return -ENOMEM;
new_pe->type = SMC_PNET_IB;
@@ -747,7 +747,7 @@ static int smc_pnet_add_pnetid(struct net *net, u8 *pnetid)
struct smc_net *sn = net_generic(net, smc_net_id);
struct smc_pnetids_ndev_entry *pe, *pi;
- pe = kzalloc(sizeof(*pe), GFP_KERNEL);
+ pe = kzalloc_obj(*pe, GFP_KERNEL);
if (!pe)
return -ENOMEM;
diff --git a/net/smc/smc_rx.c b/net/smc/smc_rx.c
index e7f1134453ef..bde9bc1ed4c0 100644
--- a/net/smc/smc_rx.c
+++ b/net/smc/smc_rx.c
@@ -161,17 +161,17 @@ static int smc_rx_splice(struct pipe_inode_info *pipe, char *src, size_t len,
nr_pages = !lgr->is_smcd && smc->conn.rmb_desc->is_vm ?
PAGE_ALIGN(len + offset) / PAGE_SIZE : 1;
- pages = kcalloc(nr_pages, sizeof(*pages), GFP_KERNEL);
+ pages = kzalloc_objs(*pages, nr_pages, GFP_KERNEL);
if (!pages)
goto out;
- partial = kcalloc(nr_pages, sizeof(*partial), GFP_KERNEL);
+ partial = kzalloc_objs(*partial, nr_pages, GFP_KERNEL);
if (!partial)
goto out_page;
- priv = kcalloc(nr_pages, sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_objs(*priv, nr_pages, GFP_KERNEL);
if (!priv)
goto out_part;
for (i = 0; i < nr_pages; i++) {
- priv[i] = kzalloc(sizeof(**priv), GFP_KERNEL);
+ priv[i] = kzalloc_obj(**priv, GFP_KERNEL);
if (!priv[i])
goto out_priv;
}
diff --git a/net/smc/smc_stats.c b/net/smc/smc_stats.c
index e71b17d1e21c..aeb462dbbb2c 100644
--- a/net/smc/smc_stats.c
+++ b/net/smc/smc_stats.c
@@ -20,7 +20,7 @@
int smc_stats_init(struct net *net)
{
- net->smc.fback_rsn = kzalloc(sizeof(*net->smc.fback_rsn), GFP_KERNEL);
+ net->smc.fback_rsn = kzalloc_obj(*net->smc.fback_rsn, GFP_KERNEL);
if (!net->smc.fback_rsn)
goto err_fback;
net->smc.smc_stats = alloc_percpu(struct smc_stats);
@@ -285,7 +285,7 @@ int smc_nl_get_stats(struct sk_buff *skb,
attrs = nla_nest_start(skb, SMC_GEN_STATS);
if (!attrs)
goto errnest;
- stats = kzalloc(sizeof(*stats), GFP_KERNEL);
+ stats = kzalloc_obj(*stats, GFP_KERNEL);
if (!stats)
goto erralloc;
size = sizeof(*stats) / sizeof(u64);
diff --git a/net/smc/smc_wr.c b/net/smc/smc_wr.c
index 5feafa98ab1a..bad014f353b3 100644
--- a/net/smc/smc_wr.c
+++ b/net/smc/smc_wr.c
@@ -749,27 +749,24 @@ int smc_wr_alloc_link_mem(struct smc_link *link)
GFP_KERNEL);
if (!link->wr_rx_bufs)
goto no_mem_wr_tx_bufs;
- link->wr_tx_ibs = kcalloc(link->max_send_wr,
- sizeof(link->wr_tx_ibs[0]), GFP_KERNEL);
+ link->wr_tx_ibs = kzalloc_objs(link->wr_tx_ibs[0], link->max_send_wr,
+ GFP_KERNEL);
if (!link->wr_tx_ibs)
goto no_mem_wr_rx_bufs;
- link->wr_rx_ibs = kcalloc(link->max_recv_wr,
- sizeof(link->wr_rx_ibs[0]),
- GFP_KERNEL);
+ link->wr_rx_ibs = kzalloc_objs(link->wr_rx_ibs[0], link->max_recv_wr,
+ GFP_KERNEL);
if (!link->wr_rx_ibs)
goto no_mem_wr_tx_ibs;
- link->wr_tx_rdmas = kcalloc(link->max_send_wr,
- sizeof(link->wr_tx_rdmas[0]),
- GFP_KERNEL);
+ link->wr_tx_rdmas = kzalloc_objs(link->wr_tx_rdmas[0],
+ link->max_send_wr, GFP_KERNEL);
if (!link->wr_tx_rdmas)
goto no_mem_wr_rx_ibs;
- link->wr_tx_rdma_sges = kcalloc(link->max_send_wr,
- sizeof(link->wr_tx_rdma_sges[0]),
- GFP_KERNEL);
+ link->wr_tx_rdma_sges = kzalloc_objs(link->wr_tx_rdma_sges[0],
+ link->max_send_wr, GFP_KERNEL);
if (!link->wr_tx_rdma_sges)
goto no_mem_wr_tx_rdmas;
- link->wr_tx_sges = kcalloc(link->max_send_wr, sizeof(link->wr_tx_sges[0]),
- GFP_KERNEL);
+ link->wr_tx_sges = kzalloc_objs(link->wr_tx_sges[0], link->max_send_wr,
+ GFP_KERNEL);
if (!link->wr_tx_sges)
goto no_mem_wr_tx_rdma_sges;
link->wr_rx_sges = kcalloc(link->max_recv_wr,
@@ -780,28 +777,25 @@ int smc_wr_alloc_link_mem(struct smc_link *link)
link->wr_tx_mask = bitmap_zalloc(link->max_send_wr, GFP_KERNEL);
if (!link->wr_tx_mask)
goto no_mem_wr_rx_sges;
- link->wr_tx_pends = kcalloc(link->max_send_wr,
- sizeof(link->wr_tx_pends[0]),
- GFP_KERNEL);
+ link->wr_tx_pends = kzalloc_objs(link->wr_tx_pends[0],
+ link->max_send_wr, GFP_KERNEL);
if (!link->wr_tx_pends)
goto no_mem_wr_tx_mask;
- link->wr_tx_compl = kcalloc(link->max_send_wr,
- sizeof(link->wr_tx_compl[0]),
- GFP_KERNEL);
+ link->wr_tx_compl = kzalloc_objs(link->wr_tx_compl[0],
+ link->max_send_wr, GFP_KERNEL);
if (!link->wr_tx_compl)
goto no_mem_wr_tx_pends;
if (link->lgr->smc_version == SMC_V2) {
- link->wr_tx_v2_ib = kzalloc(sizeof(*link->wr_tx_v2_ib),
- GFP_KERNEL);
+ link->wr_tx_v2_ib = kzalloc_obj(*link->wr_tx_v2_ib, GFP_KERNEL);
if (!link->wr_tx_v2_ib)
goto no_mem_tx_compl;
- link->wr_tx_v2_sge = kzalloc(sizeof(*link->wr_tx_v2_sge),
- GFP_KERNEL);
+ link->wr_tx_v2_sge = kzalloc_obj(*link->wr_tx_v2_sge,
+ GFP_KERNEL);
if (!link->wr_tx_v2_sge)
goto no_mem_v2_ib;
- link->wr_tx_v2_pend = kzalloc(sizeof(*link->wr_tx_v2_pend),
- GFP_KERNEL);
+ link->wr_tx_v2_pend = kzalloc_obj(*link->wr_tx_v2_pend,
+ GFP_KERNEL);
if (!link->wr_tx_v2_pend)
goto no_mem_v2_sge;
}
diff --git a/net/sunrpc/auth.c b/net/sunrpc/auth.c
index 5a827afd8e3b..fb33a4d0cdc7 100644
--- a/net/sunrpc/auth.c
+++ b/net/sunrpc/auth.c
@@ -290,12 +290,12 @@ rpcauth_init_credcache(struct rpc_auth *auth)
struct rpc_cred_cache *new;
unsigned int hashsize;
- new = kmalloc(sizeof(*new), GFP_KERNEL);
+ new = kmalloc_obj(*new, GFP_KERNEL);
if (!new)
goto out_nocache;
new->hashbits = auth_hashbits;
hashsize = 1U << new->hashbits;
- new->hashtable = kcalloc(hashsize, sizeof(new->hashtable[0]), GFP_KERNEL);
+ new->hashtable = kzalloc_objs(new->hashtable[0], hashsize, GFP_KERNEL);
if (!new->hashtable)
goto out_nohashtbl;
spin_lock_init(&new->lock);
diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c
index bb3c3db2713b..f8a0d6386635 100644
--- a/net/sunrpc/auth_gss/auth_gss.c
+++ b/net/sunrpc/auth_gss/auth_gss.c
@@ -164,7 +164,7 @@ gss_alloc_context(void)
{
struct gss_cl_ctx *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (ctx != NULL) {
ctx->gc_proc = RPC_GSS_PROC_DATA;
ctx->gc_seq = 1; /* NetApp 6.4R1 doesn't accept seq. no. 0 */
@@ -529,7 +529,7 @@ gss_alloc_msg(struct gss_auth *gss_auth,
int vers;
int err = -ENOMEM;
- gss_msg = kzalloc(sizeof(*gss_msg), GFP_KERNEL);
+ gss_msg = kzalloc_obj(*gss_msg, GFP_KERNEL);
if (gss_msg == NULL)
goto err;
vers = get_pipe_version(gss_auth->net);
@@ -914,7 +914,7 @@ static struct gss_pipe *gss_pipe_alloc(struct rpc_clnt *clnt,
struct gss_pipe *p;
int err = -ENOMEM;
- p = kmalloc(sizeof(*p), GFP_KERNEL);
+ p = kmalloc_obj(*p, GFP_KERNEL);
if (p == NULL)
goto err;
p->pipe = rpc_mkpipe_data(upcall_ops, RPC_PIPE_WAIT_FOR_OPEN);
@@ -1029,7 +1029,7 @@ gss_create_new(const struct rpc_auth_create_args *args, struct rpc_clnt *clnt)
if (!try_module_get(THIS_MODULE))
return ERR_PTR(err);
- if (!(gss_auth = kmalloc(sizeof(*gss_auth), GFP_KERNEL)))
+ if (!(gss_auth = kmalloc_obj(*gss_auth, GFP_KERNEL)))
goto out_dec;
INIT_HLIST_NODE(&gss_auth->hash);
gss_auth->target_name = NULL;
@@ -1246,7 +1246,7 @@ gss_dup_cred(struct gss_auth *gss_auth, struct gss_cred *gss_cred)
struct gss_cred *new;
/* Make a copy of the cred so that we can reference count it */
- new = kzalloc(sizeof(*gss_cred), GFP_KERNEL);
+ new = kzalloc_obj(*gss_cred, GFP_KERNEL);
if (new) {
struct auth_cred acred = {
.cred = gss_cred->gc_base.cr_cred,
@@ -1380,7 +1380,7 @@ gss_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags, gfp_t
struct gss_cred *cred = NULL;
int err = -ENOMEM;
- if (!(cred = kzalloc(sizeof(*cred), gfp)))
+ if (!(cred = kzalloc_obj(*cred, gfp)))
goto out_err;
rpcauth_init_cred(&cred->gc_base, acred, auth, &gss_credops);
@@ -1817,9 +1817,8 @@ alloc_enc_pages(struct rpc_rqst *rqstp)
last = (snd_buf->page_base + snd_buf->page_len - 1) >> PAGE_SHIFT;
rqstp->rq_enc_pages_num = last - first + 1 + 1;
rqstp->rq_enc_pages
- = kmalloc_array(rqstp->rq_enc_pages_num,
- sizeof(struct page *),
- GFP_KERNEL);
+ = kmalloc_objs(struct page *, rqstp->rq_enc_pages_num,
+ GFP_KERNEL);
if (!rqstp->rq_enc_pages)
goto out;
for (i=0; i < rqstp->rq_enc_pages_num; i++) {
diff --git a/net/sunrpc/auth_gss/gss_krb5_mech.c b/net/sunrpc/auth_gss/gss_krb5_mech.c
index 3366505bc669..6db64a9111a9 100644
--- a/net/sunrpc/auth_gss/gss_krb5_mech.c
+++ b/net/sunrpc/auth_gss/gss_krb5_mech.c
@@ -473,7 +473,7 @@ gss_krb5_import_sec_context(const void *p, size_t len, struct gss_ctx *ctx_id,
struct krb5_ctx *ctx;
int ret;
- ctx = kzalloc(sizeof(*ctx), gfp_mask);
+ ctx = kzalloc_obj(*ctx, gfp_mask);
if (ctx == NULL)
return -ENOMEM;
diff --git a/net/sunrpc/auth_gss/gss_mech_switch.c b/net/sunrpc/auth_gss/gss_mech_switch.c
index c84d0cf61980..78eab245f94a 100644
--- a/net/sunrpc/auth_gss/gss_mech_switch.c
+++ b/net/sunrpc/auth_gss/gss_mech_switch.c
@@ -355,7 +355,7 @@ gss_import_sec_context(const void *input_token, size_t bufsize,
time64_t *endtime,
gfp_t gfp_mask)
{
- if (!(*ctx_id = kzalloc(sizeof(**ctx_id), gfp_mask)))
+ if (!(*ctx_id = kzalloc_obj(**ctx_id, gfp_mask)))
return -ENOMEM;
(*ctx_id)->mech_type = gss_mech_get(mech);
diff --git a/net/sunrpc/auth_gss/gss_rpc_upcall.c b/net/sunrpc/auth_gss/gss_rpc_upcall.c
index f549e4c05def..e02e6d4a3185 100644
--- a/net/sunrpc/auth_gss/gss_rpc_upcall.c
+++ b/net/sunrpc/auth_gss/gss_rpc_upcall.c
@@ -214,7 +214,7 @@ static int gssp_alloc_receive_pages(struct gssx_arg_accept_sec_context *arg)
unsigned int i;
arg->npages = DIV_ROUND_UP(NGROUPS_MAX * 4, PAGE_SIZE);
- arg->pages = kcalloc(arg->npages, sizeof(struct page *), GFP_KERNEL);
+ arg->pages = kzalloc_objs(struct page *, arg->npages, GFP_KERNEL);
if (!arg->pages)
return -ENOMEM;
for (i = 0; i < arg->npages; i++) {
diff --git a/net/sunrpc/auth_gss/gss_rpc_xdr.c b/net/sunrpc/auth_gss/gss_rpc_xdr.c
index f320c0a8e604..e1e01965ef58 100644
--- a/net/sunrpc/auth_gss/gss_rpc_xdr.c
+++ b/net/sunrpc/auth_gss/gss_rpc_xdr.c
@@ -244,11 +244,11 @@ static int gssx_dec_option_array(struct xdr_stream *xdr,
/* we recognize only 1 currently: CREDS_VALUE */
oa->count = 1;
- oa->data = kmalloc(sizeof(struct gssx_option), GFP_KERNEL);
+ oa->data = kmalloc_obj(struct gssx_option, GFP_KERNEL);
if (!oa->data)
return -ENOMEM;
- creds = kzalloc(sizeof(struct svc_cred), GFP_KERNEL);
+ creds = kzalloc_obj(struct svc_cred, GFP_KERNEL);
if (!creds) {
err = -ENOMEM;
goto free_oa;
diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c
index e2f0df8cdaa6..411297c9527d 100644
--- a/net/sunrpc/auth_gss/svcauth_gss.c
+++ b/net/sunrpc/auth_gss/svcauth_gss.c
@@ -197,7 +197,7 @@ static void update_rsi(struct cache_head *cnew, struct cache_head *citem)
static struct cache_head *rsi_alloc(void)
{
- struct rsi *rsii = kmalloc(sizeof(*rsii), GFP_KERNEL);
+ struct rsi *rsii = kmalloc_obj(*rsii, GFP_KERNEL);
if (rsii)
return &rsii->h;
else
@@ -449,7 +449,7 @@ update_rsc(struct cache_head *cnew, struct cache_head *ctmp)
static struct cache_head *
rsc_alloc(void)
{
- struct rsc *rsci = kmalloc(sizeof(*rsci), GFP_KERNEL);
+ struct rsc *rsci = kmalloc_obj(*rsci, GFP_KERNEL);
if (rsci)
return &rsci->h;
else
@@ -814,7 +814,7 @@ svcauth_gss_register_pseudoflavor(u32 pseudoflavor, char * name)
struct auth_domain *test;
int stat = -ENOMEM;
- new = kmalloc(sizeof(*new), GFP_KERNEL);
+ new = kmalloc_obj(*new, GFP_KERNEL);
if (!new)
goto out;
kref_init(&new->h.ref);
@@ -1069,7 +1069,7 @@ static int gss_read_proxy_verf(struct svc_rqst *rqstp,
goto out_denied_free;
pages = DIV_ROUND_UP(inlen, PAGE_SIZE);
- in_token->pages = kcalloc(pages + 1, sizeof(struct page *), GFP_KERNEL);
+ in_token->pages = kzalloc_objs(struct page *, pages + 1, GFP_KERNEL);
if (!in_token->pages)
goto out_denied_free;
in_token->page_base = 0;
@@ -1631,7 +1631,7 @@ svcauth_gss_accept(struct svc_rqst *rqstp)
rqstp->rq_auth_stat = rpc_autherr_failed;
if (!svcdata)
- svcdata = kmalloc(sizeof(*svcdata), GFP_KERNEL);
+ svcdata = kmalloc_obj(*svcdata, GFP_KERNEL);
if (!svcdata)
goto auth_err;
rqstp->rq_auth_data = svcdata;
diff --git a/net/sunrpc/auth_unix.c b/net/sunrpc/auth_unix.c
index 1e091d3fa607..6c742a3400c4 100644
--- a/net/sunrpc/auth_unix.c
+++ b/net/sunrpc/auth_unix.c
@@ -45,7 +45,7 @@ static struct rpc_cred *unx_lookup_cred(struct rpc_auth *auth,
{
struct rpc_cred *ret;
- ret = kmalloc(sizeof(*ret), rpc_task_gfp_mask());
+ ret = kmalloc_obj(*ret, rpc_task_gfp_mask());
if (!ret) {
if (!(flags & RPCAUTH_LOOKUP_ASYNC))
return ERR_PTR(-ENOMEM);
diff --git a/net/sunrpc/backchannel_rqst.c b/net/sunrpc/backchannel_rqst.c
index 6b9dee4119d5..0ffa4d01a938 100644
--- a/net/sunrpc/backchannel_rqst.c
+++ b/net/sunrpc/backchannel_rqst.c
@@ -94,7 +94,7 @@ static struct rpc_rqst *xprt_alloc_bc_req(struct rpc_xprt *xprt)
struct rpc_rqst *req;
/* Pre-allocate one backchannel rpc_rqst */
- req = kzalloc(sizeof(*req), gfp_flags);
+ req = kzalloc_obj(*req, gfp_flags);
if (req == NULL)
return NULL;
diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c
index d808c0b63f30..5129f3dace8c 100644
--- a/net/sunrpc/cache.c
+++ b/net/sunrpc/cache.c
@@ -1038,7 +1038,7 @@ static int cache_open(struct inode *inode, struct file *filp,
return -EACCES;
nonseekable_open(inode, filp);
if (filp->f_mode & FMODE_READ) {
- rp = kmalloc(sizeof(*rp), GFP_KERNEL);
+ rp = kmalloc_obj(*rp, GFP_KERNEL);
if (!rp) {
module_put(cd->owner);
return -ENOMEM;
@@ -1225,7 +1225,7 @@ static int cache_pipe_upcall(struct cache_detail *detail, struct cache_head *h)
if (!buf)
return -EAGAIN;
- crq = kmalloc(sizeof (*crq), GFP_KERNEL);
+ crq = kmalloc_obj(*crq, GFP_KERNEL);
if (!crq) {
kfree(buf);
return -EAGAIN;
@@ -1745,8 +1745,8 @@ struct cache_detail *cache_create_net(const struct cache_detail *tmpl, struct ne
if (cd == NULL)
return ERR_PTR(-ENOMEM);
- cd->hash_table = kcalloc(cd->hash_size, sizeof(struct hlist_head),
- GFP_KERNEL);
+ cd->hash_table = kzalloc_objs(struct hlist_head, cd->hash_size,
+ GFP_KERNEL);
if (cd->hash_table == NULL) {
kfree(cd);
return ERR_PTR(-ENOMEM);
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
index 58442ae1c2da..f6e086b62053 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -374,7 +374,7 @@ static struct rpc_clnt * rpc_new_client(const struct rpc_create_args *args,
goto out_err;
err = -ENOMEM;
- clnt = kzalloc(sizeof(*clnt), GFP_KERNEL);
+ clnt = kzalloc_obj(*clnt, GFP_KERNEL);
if (!clnt)
goto out_err;
clnt->cl_parent = parent ? : clnt;
@@ -2976,7 +2976,7 @@ int rpc_clnt_test_and_add_xprt(struct rpc_clnt *clnt,
return -EINVAL;
}
- data = kmalloc(sizeof(*data), GFP_KERNEL);
+ data = kmalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
data->xps = xprt_switch_get(xps);
diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
index 379daefc4847..a4b3c51be0f3 100644
--- a/net/sunrpc/rpc_pipe.c
+++ b/net/sunrpc/rpc_pipe.c
@@ -511,7 +511,7 @@ struct rpc_pipe *rpc_mkpipe_data(const struct rpc_pipe_ops *ops, int flags)
{
struct rpc_pipe *pipe;
- pipe = kzalloc(sizeof(struct rpc_pipe), GFP_KERNEL);
+ pipe = kzalloc_obj(struct rpc_pipe, GFP_KERNEL);
if (!pipe)
return ERR_PTR(-ENOMEM);
init_pipe(pipe);
diff --git a/net/sunrpc/rpcb_clnt.c b/net/sunrpc/rpcb_clnt.c
index 53bcca365fb1..6aa372188c86 100644
--- a/net/sunrpc/rpcb_clnt.c
+++ b/net/sunrpc/rpcb_clnt.c
@@ -737,7 +737,7 @@ void rpcb_getport_async(struct rpc_task *task)
goto bailout_nofree;
}
- map = kzalloc(sizeof(struct rpcbind_args), rpc_task_gfp_mask());
+ map = kzalloc_obj(struct rpcbind_args, rpc_task_gfp_mask());
if (!map) {
status = -ENOMEM;
goto bailout_release_client;
diff --git a/net/sunrpc/stats.c b/net/sunrpc/stats.c
index 383860cb1d5b..36308711e0e9 100644
--- a/net/sunrpc/stats.c
+++ b/net/sunrpc/stats.c
@@ -126,7 +126,7 @@ struct rpc_iostats *rpc_alloc_iostats(struct rpc_clnt *clnt)
struct rpc_iostats *stats;
int i;
- stats = kcalloc(clnt->cl_maxproc, sizeof(*stats), GFP_KERNEL);
+ stats = kzalloc_objs(*stats, clnt->cl_maxproc, GFP_KERNEL);
if (stats) {
for (i = 0; i < clnt->cl_maxproc; i++)
spin_lock_init(&stats[i].om_lock);
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
index 346ac560dcc2..bc160368a7dc 100644
--- a/net/sunrpc/svc.c
+++ b/net/sunrpc/svc.c
@@ -488,7 +488,7 @@ __svc_create(struct svc_program *prog, int nprogs, struct svc_stat *stats,
unsigned int xdrsize;
unsigned int i;
- if (!(serv = kzalloc(sizeof(*serv), GFP_KERNEL)))
+ if (!(serv = kzalloc_obj(*serv, GFP_KERNEL)))
return NULL;
serv->sv_name = prog->pg_name;
serv->sv_programs = prog;
@@ -523,8 +523,7 @@ __svc_create(struct svc_program *prog, int nprogs, struct svc_stat *stats,
serv->sv_nrpools = npools;
serv->sv_pools =
- kcalloc(serv->sv_nrpools, sizeof(struct svc_pool),
- GFP_KERNEL);
+ kzalloc_objs(struct svc_pool, serv->sv_nrpools, GFP_KERNEL);
if (!serv->sv_pools) {
kfree(serv);
return NULL;
diff --git a/net/sunrpc/svcauth_unix.c b/net/sunrpc/svcauth_unix.c
index 8ca98b146ec8..7f952d9201f5 100644
--- a/net/sunrpc/svcauth_unix.c
+++ b/net/sunrpc/svcauth_unix.c
@@ -72,7 +72,7 @@ struct auth_domain *unix_domain_find(char *name)
return rv;
}
- new = kmalloc(sizeof(*new), GFP_KERNEL);
+ new = kmalloc_obj(*new, GFP_KERNEL);
if (new == NULL)
return NULL;
kref_init(&new->h.ref);
@@ -143,7 +143,7 @@ static void update(struct cache_head *cnew, struct cache_head *citem)
}
static struct cache_head *ip_map_alloc(void)
{
- struct ip_map *i = kmalloc(sizeof(*i), GFP_KERNEL);
+ struct ip_map *i = kmalloc_obj(*i, GFP_KERNEL);
if (i)
return &i->h;
else
@@ -458,7 +458,7 @@ static void unix_gid_update(struct cache_head *cnew, struct cache_head *citem)
}
static struct cache_head *unix_gid_alloc(void)
{
- struct unix_gid *g = kmalloc(sizeof(*g), GFP_KERNEL);
+ struct unix_gid *g = kmalloc_obj(*g, GFP_KERNEL);
if (g)
return &g->h;
else
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index d61cd9b40491..e1576c807e07 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -1436,12 +1436,13 @@ static struct svc_sock *svc_setup_socket(struct svc_serv *serv,
return ERR_PTR(sendpages);
pages = svc_serv_maxpages(serv);
- svsk = kzalloc(struct_size(svsk, sk_pages, pages), GFP_KERNEL);
+ svsk = kzalloc_flex(*svsk, sk_pages, pages, GFP_KERNEL);
if (!svsk)
return ERR_PTR(-ENOMEM);
if (sendpages) {
- svsk->sk_bvec = kcalloc(sendpages, sizeof(*svsk->sk_bvec), GFP_KERNEL);
+ svsk->sk_bvec = kzalloc_objs(*svsk->sk_bvec, sendpages,
+ GFP_KERNEL);
if (!svsk->sk_bvec) {
kfree(svsk);
return ERR_PTR(-ENOMEM);
diff --git a/net/sunrpc/sysfs.c b/net/sunrpc/sysfs.c
index 8b01b7ae2690..ec6ddfa11f86 100644
--- a/net/sunrpc/sysfs.c
+++ b/net/sunrpc/sysfs.c
@@ -48,7 +48,7 @@ static struct kobject *rpc_sysfs_object_alloc(const char *name,
{
struct kobject *kobj;
- kobj = kzalloc(sizeof(*kobj), GFP_KERNEL);
+ kobj = kzalloc_obj(*kobj, GFP_KERNEL);
if (kobj) {
kobj->kset = kset;
if (kobject_init_and_add(kobj, &rpc_sysfs_object_type,
@@ -397,7 +397,7 @@ static ssize_t rpc_sysfs_xprt_dstaddr_store(struct kobject *kobj,
dst_addr = kstrndup(buf, buf_len, GFP_KERNEL);
if (!dst_addr)
goto out_err;
- saved_addr = kzalloc(sizeof(*saved_addr), GFP_KERNEL);
+ saved_addr = kzalloc_obj(*saved_addr, GFP_KERNEL);
if (!saved_addr)
goto out_err_free;
saved_addr->addr =
@@ -663,7 +663,7 @@ static struct rpc_sysfs_client *rpc_sysfs_client_alloc(struct kobject *parent,
{
struct rpc_sysfs_client *p;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (p) {
p->net = net;
p->kobject.kset = rpc_sunrpc_kset;
@@ -683,7 +683,7 @@ rpc_sysfs_xprt_switch_alloc(struct kobject *parent,
{
struct rpc_sysfs_xprt_switch *p;
- p = kzalloc(sizeof(*p), gfp_flags);
+ p = kzalloc_obj(*p, gfp_flags);
if (p) {
p->net = net;
p->kobject.kset = rpc_sunrpc_kset;
@@ -703,7 +703,7 @@ static struct rpc_sysfs_xprt *rpc_sysfs_xprt_alloc(struct kobject *parent,
{
struct rpc_sysfs_xprt *p;
- p = kzalloc(sizeof(*p), gfp_flags);
+ p = kzalloc_obj(*p, gfp_flags);
if (!p)
goto out;
p->kobject.kset = rpc_sunrpc_kset;
diff --git a/net/sunrpc/xdr.c b/net/sunrpc/xdr.c
index 70efc727a9cd..e83d5d0be78b 100644
--- a/net/sunrpc/xdr.c
+++ b/net/sunrpc/xdr.c
@@ -118,7 +118,7 @@ xdr_alloc_bvec(struct xdr_buf *buf, gfp_t gfp)
size_t i, n = xdr_buf_pagecount(buf);
if (n != 0 && buf->bvec == NULL) {
- buf->bvec = kmalloc_array(n, sizeof(buf->bvec[0]), gfp);
+ buf->bvec = kmalloc_objs(buf->bvec[0], n, gfp);
if (!buf->bvec)
return -ENOMEM;
for (i = 0; i < n; i++) {
diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c
index 1023361845f9..16f6989a0a2d 100644
--- a/net/sunrpc/xprt.c
+++ b/net/sunrpc/xprt.c
@@ -1709,7 +1709,7 @@ static struct rpc_rqst *xprt_dynamic_alloc_slot(struct rpc_xprt *xprt)
goto out;
++xprt->num_reqs;
spin_unlock(&xprt->reserve_lock);
- req = kzalloc(sizeof(*req), rpc_task_gfp_mask());
+ req = kzalloc_obj(*req, rpc_task_gfp_mask());
spin_lock(&xprt->reserve_lock);
if (req != NULL)
goto out;
@@ -1829,7 +1829,7 @@ struct rpc_xprt *xprt_alloc(struct net *net, size_t size,
xprt_init(xprt, net);
for (i = 0; i < num_prealloc; i++) {
- req = kzalloc(sizeof(struct rpc_rqst), GFP_KERNEL);
+ req = kzalloc_obj(struct rpc_rqst, GFP_KERNEL);
if (!req)
goto out_free;
list_add(&req->rq_list, &xprt->free);
diff --git a/net/sunrpc/xprtmultipath.c b/net/sunrpc/xprtmultipath.c
index 4c5e08b0aa64..3ba818d637be 100644
--- a/net/sunrpc/xprtmultipath.c
+++ b/net/sunrpc/xprtmultipath.c
@@ -150,7 +150,7 @@ struct rpc_xprt_switch *xprt_switch_alloc(struct rpc_xprt *xprt,
{
struct rpc_xprt_switch *xps;
- xps = kmalloc(sizeof(*xps), gfp_flags);
+ xps = kmalloc_obj(*xps, gfp_flags);
if (xps != NULL) {
spin_lock_init(&xps->xps_lock);
kref_init(&xps->xps_kref);
diff --git a/net/sunrpc/xprtrdma/ib_client.c b/net/sunrpc/xprtrdma/ib_client.c
index 28c68b5f6823..e5b6dfaf01aa 100644
--- a/net/sunrpc/xprtrdma/ib_client.c
+++ b/net/sunrpc/xprtrdma/ib_client.c
@@ -108,7 +108,7 @@ static int rpcrdma_add_one(struct ib_device *device)
{
struct rpcrdma_device *rd;
- rd = kzalloc(sizeof(*rd), GFP_KERNEL);
+ rd = kzalloc_obj(*rd, GFP_KERNEL);
if (!rd)
return -ENOMEM;
diff --git a/net/sunrpc/xprtrdma/svc_rdma_pcl.c b/net/sunrpc/xprtrdma/svc_rdma_pcl.c
index b63cfeaa2923..b7c09a1f1c62 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_pcl.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_pcl.c
@@ -29,7 +29,7 @@ static struct svc_rdma_chunk *pcl_alloc_chunk(u32 segcount, u32 position)
{
struct svc_rdma_chunk *chunk;
- chunk = kmalloc(struct_size(chunk, ch_segments, segcount), GFP_KERNEL);
+ chunk = kmalloc_flex(*chunk, ch_segments, segcount, GFP_KERNEL);
if (!chunk)
return NULL;
diff --git a/net/sunrpc/xprtrdma/verbs.c b/net/sunrpc/xprtrdma/verbs.c
index 63262ef0c2e3..15bbf953dfad 100644
--- a/net/sunrpc/xprtrdma/verbs.c
+++ b/net/sunrpc/xprtrdma/verbs.c
@@ -383,7 +383,7 @@ static int rpcrdma_ep_create(struct rpcrdma_xprt *r_xprt)
struct rpcrdma_ep *ep;
int rc;
- ep = kzalloc(sizeof(*ep), XPRTRDMA_GFP_FLAGS);
+ ep = kzalloc_obj(*ep, XPRTRDMA_GFP_FLAGS);
if (!ep)
return -ENOTCONN;
ep->re_xprt = &r_xprt->rx_xprt;
@@ -615,8 +615,8 @@ static struct rpcrdma_sendctx *rpcrdma_sendctx_create(struct rpcrdma_ep *ep)
{
struct rpcrdma_sendctx *sc;
- sc = kzalloc(struct_size(sc, sc_sges, ep->re_attr.cap.max_send_sge),
- XPRTRDMA_GFP_FLAGS);
+ sc = kzalloc_flex(*sc, sc_sges, ep->re_attr.cap.max_send_sge,
+ XPRTRDMA_GFP_FLAGS);
if (!sc)
return NULL;
@@ -639,7 +639,7 @@ static int rpcrdma_sendctxs_create(struct rpcrdma_xprt *r_xprt)
* Sends are posted.
*/
i = r_xprt->rx_ep->re_max_requests + RPCRDMA_MAX_BC_REQUESTS;
- buf->rb_sc_ctxs = kcalloc(i, sizeof(sc), XPRTRDMA_GFP_FLAGS);
+ buf->rb_sc_ctxs = kzalloc_objs(sc, i, XPRTRDMA_GFP_FLAGS);
if (!buf->rb_sc_ctxs)
return -ENOMEM;
@@ -822,7 +822,7 @@ struct rpcrdma_req *rpcrdma_req_create(struct rpcrdma_xprt *r_xprt,
struct rpcrdma_buffer *buffer = &r_xprt->rx_buf;
struct rpcrdma_req *req;
- req = kzalloc(sizeof(*req), XPRTRDMA_GFP_FLAGS);
+ req = kzalloc_obj(*req, XPRTRDMA_GFP_FLAGS);
if (req == NULL)
goto out1;
@@ -952,7 +952,7 @@ struct rpcrdma_rep *rpcrdma_rep_create(struct rpcrdma_xprt *r_xprt)
struct ib_device *device = ep->re_id->device;
struct rpcrdma_rep *rep;
- rep = kzalloc(sizeof(*rep), XPRTRDMA_GFP_FLAGS);
+ rep = kzalloc_obj(*rep, XPRTRDMA_GFP_FLAGS);
if (rep == NULL)
goto out;
diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c
index 4d5fbacef496..b55df183e6d5 100644
--- a/net/switchdev/switchdev.c
+++ b/net/switchdev/switchdev.c
@@ -114,7 +114,7 @@ static int switchdev_deferred_enqueue(struct net_device *dev,
{
struct switchdev_deferred_item *dfitem;
- dfitem = kmalloc(struct_size(dfitem, data, data_len), GFP_ATOMIC);
+ dfitem = kmalloc_flex(*dfitem, data, data_len, GFP_ATOMIC);
if (!dfitem)
return -ENOMEM;
dfitem->dev = dev;
diff --git a/net/tipc/bcast.c b/net/tipc/bcast.c
index 114fef65f92e..c7c7f08eee9a 100644
--- a/net/tipc/bcast.c
+++ b/net/tipc/bcast.c
@@ -692,7 +692,7 @@ int tipc_bcast_init(struct net *net)
struct tipc_bc_base *bb = NULL;
struct tipc_link *l = NULL;
- bb = kzalloc(sizeof(*bb), GFP_KERNEL);
+ bb = kzalloc_obj(*bb, GFP_KERNEL);
if (!bb)
goto enomem;
tn->bcbase = bb;
diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c
index ae1ddbf71853..a3bd1ef17558 100644
--- a/net/tipc/bearer.c
+++ b/net/tipc/bearer.c
@@ -322,7 +322,7 @@ static int tipc_enable_bearer(struct net *net, const char *name,
goto rejected;
}
- b = kzalloc(sizeof(*b), GFP_ATOMIC);
+ b = kzalloc_obj(*b, GFP_ATOMIC);
if (!b)
return -ENOMEM;
diff --git a/net/tipc/crypto.c b/net/tipc/crypto.c
index a3f9ca28c3d5..abd191a3ac4a 100644
--- a/net/tipc/crypto.c
+++ b/net/tipc/crypto.c
@@ -524,7 +524,7 @@ static int tipc_aead_init(struct tipc_aead **aead, struct tipc_aead_key *ukey,
return -EEXIST;
/* Allocate a new AEAD */
- tmp = kzalloc(sizeof(*tmp), GFP_ATOMIC);
+ tmp = kzalloc_obj(*tmp, GFP_ATOMIC);
if (unlikely(!tmp))
return -ENOMEM;
@@ -560,7 +560,7 @@ static int tipc_aead_init(struct tipc_aead **aead, struct tipc_aead_key *ukey,
break;
}
- tfm_entry = kmalloc(sizeof(*tfm_entry), GFP_KERNEL);
+ tfm_entry = kmalloc_obj(*tfm_entry, GFP_KERNEL);
if (unlikely(!tfm_entry)) {
crypto_free_aead(tfm);
err = -ENOMEM;
@@ -637,7 +637,7 @@ static int tipc_aead_clone(struct tipc_aead **dst, struct tipc_aead *src)
if (unlikely(*dst))
return -EEXIST;
- aead = kzalloc(sizeof(*aead), GFP_ATOMIC);
+ aead = kzalloc_obj(*aead, GFP_ATOMIC);
if (unlikely(!aead))
return -ENOMEM;
@@ -1472,7 +1472,7 @@ int tipc_crypto_start(struct tipc_crypto **crypto, struct net *net,
return -EEXIST;
/* Allocate crypto */
- c = kzalloc(sizeof(*c), GFP_ATOMIC);
+ c = kzalloc_obj(*c, GFP_ATOMIC);
if (!c)
return -ENOMEM;
diff --git a/net/tipc/discover.c b/net/tipc/discover.c
index 775fd4f3f072..3e54d2df5683 100644
--- a/net/tipc/discover.c
+++ b/net/tipc/discover.c
@@ -353,7 +353,7 @@ int tipc_disc_create(struct net *net, struct tipc_bearer *b,
struct tipc_net *tn = tipc_net(net);
struct tipc_discoverer *d;
- d = kmalloc(sizeof(*d), GFP_ATOMIC);
+ d = kmalloc_obj(*d, GFP_ATOMIC);
if (!d)
return -ENOMEM;
d->skb = tipc_buf_acquire(MAX_H_SIZE + NODE_ID_LEN, GFP_ATOMIC);
diff --git a/net/tipc/group.c b/net/tipc/group.c
index 3e137d8c9d2f..e0e6227b433b 100644
--- a/net/tipc/group.c
+++ b/net/tipc/group.c
@@ -169,7 +169,7 @@ struct tipc_group *tipc_group_create(struct net *net, u32 portid,
struct tipc_group *grp;
u32 type = mreq->type;
- grp = kzalloc(sizeof(*grp), GFP_ATOMIC);
+ grp = kzalloc_obj(*grp, GFP_ATOMIC);
if (!grp)
return NULL;
tipc_nlist_init(&grp->dests, tipc_own_addr(net));
@@ -306,7 +306,7 @@ static struct tipc_member *tipc_group_create_member(struct tipc_group *grp,
struct tipc_member *m;
int ret;
- m = kzalloc(sizeof(*m), GFP_ATOMIC);
+ m = kzalloc_obj(*m, GFP_ATOMIC);
if (!m)
return NULL;
INIT_LIST_HEAD(&m->list);
diff --git a/net/tipc/link.c b/net/tipc/link.c
index 931f55f781a1..49dfc098d89b 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -487,7 +487,7 @@ bool tipc_link_create(struct net *net, char *if_name, int bearer_id,
char self_str[NODE_ID_STR_LEN] = {0,};
struct tipc_link *l;
- l = kzalloc(sizeof(*l), GFP_ATOMIC);
+ l = kzalloc_obj(*l, GFP_ATOMIC);
if (!l)
return false;
*link = l;
diff --git a/net/tipc/monitor.c b/net/tipc/monitor.c
index 572b79bf76ce..a94b9b36a700 100644
--- a/net/tipc/monitor.c
+++ b/net/tipc/monitor.c
@@ -393,7 +393,7 @@ static bool tipc_mon_add_peer(struct tipc_monitor *mon, u32 addr,
struct tipc_peer *self = mon->self;
struct tipc_peer *cur, *prev, *p;
- p = kzalloc(sizeof(*p), GFP_ATOMIC);
+ p = kzalloc_obj(*p, GFP_ATOMIC);
*peer = p;
if (!p)
return false;
@@ -654,9 +654,9 @@ int tipc_mon_create(struct net *net, int bearer_id)
if (tn->monitors[bearer_id])
return 0;
- mon = kzalloc(sizeof(*mon), GFP_ATOMIC);
- self = kzalloc(sizeof(*self), GFP_ATOMIC);
- dom = kzalloc(sizeof(*dom), GFP_ATOMIC);
+ mon = kzalloc_obj(*mon, GFP_ATOMIC);
+ self = kzalloc_obj(*self, GFP_ATOMIC);
+ dom = kzalloc_obj(*dom, GFP_ATOMIC);
if (!mon || !self || !dom) {
kfree(mon);
kfree(self);
diff --git a/net/tipc/name_table.c b/net/tipc/name_table.c
index e74940eab3a4..ec0ac85ca70b 100644
--- a/net/tipc/name_table.c
+++ b/net/tipc/name_table.c
@@ -230,7 +230,7 @@ static struct publication *tipc_publ_create(struct tipc_uaddr *ua,
struct tipc_socket_addr *sk,
u32 key)
{
- struct publication *p = kzalloc(sizeof(*p), GFP_ATOMIC);
+ struct publication *p = kzalloc_obj(*p, GFP_ATOMIC);
if (!p)
return NULL;
@@ -261,7 +261,7 @@ static struct tipc_service *tipc_service_create(struct net *net,
struct tipc_service *service;
struct hlist_head *hd;
- service = kzalloc(sizeof(*service), GFP_ATOMIC);
+ service = kzalloc_obj(*service, GFP_ATOMIC);
if (!service) {
pr_warn("Service creation failed, no memory\n");
return NULL;
@@ -314,7 +314,7 @@ static struct service_range *tipc_service_create_range(struct tipc_service *sc,
else
n = &parent->rb_right;
}
- sr = kzalloc(sizeof(*sr), GFP_ATOMIC);
+ sr = kzalloc_obj(*sr, GFP_ATOMIC);
if (!sr)
return NULL;
sr->lower = lower;
@@ -888,7 +888,7 @@ int tipc_nametbl_init(struct net *net)
struct name_table *nt;
int i;
- nt = kzalloc(sizeof(*nt), GFP_KERNEL);
+ nt = kzalloc_obj(*nt, GFP_KERNEL);
if (!nt)
return -ENOMEM;
@@ -1156,7 +1156,7 @@ bool tipc_dest_push(struct list_head *l, u32 node, u32 port)
if (tipc_dest_find(l, node, port))
return false;
- dst = kmalloc(sizeof(*dst), GFP_ATOMIC);
+ dst = kmalloc_obj(*dst, GFP_ATOMIC);
if (unlikely(!dst))
return false;
dst->node = node;
diff --git a/net/tipc/netlink_compat.c b/net/tipc/netlink_compat.c
index 079aebb16ed8..f64f03ab4933 100644
--- a/net/tipc/netlink_compat.c
+++ b/net/tipc/netlink_compat.c
@@ -202,8 +202,8 @@ static int __tipc_nl_compat_dumpit(struct tipc_nl_compat_cmd_dump *cmd,
return -ENOMEM;
}
- attrbuf = kcalloc(tipc_genl_family.maxattr + 1,
- sizeof(struct nlattr *), GFP_KERNEL);
+ attrbuf = kzalloc_objs(struct nlattr *, tipc_genl_family.maxattr + 1,
+ GFP_KERNEL);
if (!attrbuf) {
err = -ENOMEM;
goto err_out;
@@ -338,9 +338,8 @@ static int __tipc_nl_compat_doit(struct tipc_nl_compat_cmd_doit *cmd,
if (!trans_buf)
return -ENOMEM;
- attrbuf = kmalloc_array(tipc_genl_family.maxattr + 1,
- sizeof(struct nlattr *),
- GFP_KERNEL);
+ attrbuf = kmalloc_objs(struct nlattr *, tipc_genl_family.maxattr + 1,
+ GFP_KERNEL);
if (!attrbuf) {
err = -ENOMEM;
goto trans_out;
diff --git a/net/tipc/node.c b/net/tipc/node.c
index a07fb073368c..af442a5ef8f3 100644
--- a/net/tipc/node.c
+++ b/net/tipc/node.c
@@ -535,7 +535,7 @@ struct tipc_node *tipc_node_create(struct net *net, u32 addr, u8 *peer_id,
goto exit;
}
- n = kzalloc(sizeof(*n), GFP_ATOMIC);
+ n = kzalloc_obj(*n, GFP_ATOMIC);
if (!n) {
pr_warn("Node creation failed, no memory\n");
goto exit;
@@ -703,7 +703,7 @@ int tipc_node_add_conn(struct net *net, u32 dnode, u32 port, u32 peer_port)
pr_warn("Connecting sock to node 0x%x failed\n", dnode);
return -EHOSTUNREACH;
}
- conn = kmalloc(sizeof(*conn), GFP_ATOMIC);
+ conn = kmalloc_obj(*conn, GFP_ATOMIC);
if (!conn) {
err = -EHOSTUNREACH;
goto exit;
diff --git a/net/tipc/socket.c b/net/tipc/socket.c
index 817b07d95a91..d52f700b5493 100644
--- a/net/tipc/socket.c
+++ b/net/tipc/socket.c
@@ -3595,7 +3595,7 @@ int __tipc_dump_start(struct netlink_callback *cb, struct net *net)
struct tipc_net *tn = tipc_net(net);
if (!iter) {
- iter = kmalloc(sizeof(*iter), GFP_KERNEL);
+ iter = kmalloc_obj(*iter, GFP_KERNEL);
if (!iter)
return -ENOMEM;
diff --git a/net/tipc/subscr.c b/net/tipc/subscr.c
index f8490d94e323..352d304c3acd 100644
--- a/net/tipc/subscr.c
+++ b/net/tipc/subscr.c
@@ -143,7 +143,7 @@ struct tipc_subscription *tipc_sub_subscribe(struct net *net,
pr_warn("Subscription rejected, illegal request\n");
return NULL;
}
- sub = kmalloc(sizeof(*sub), GFP_ATOMIC);
+ sub = kmalloc_obj(*sub, GFP_ATOMIC);
if (!sub) {
pr_warn("Subscription rejected, no memory\n");
return NULL;
diff --git a/net/tipc/topsrv.c b/net/tipc/topsrv.c
index aad7f96b6009..af530c9ed840 100644
--- a/net/tipc/topsrv.c
+++ b/net/tipc/topsrv.c
@@ -182,7 +182,7 @@ static struct tipc_conn *tipc_conn_alloc(struct tipc_topsrv *s, struct socket *s
struct tipc_conn *con;
int ret;
- con = kzalloc(sizeof(*con), GFP_ATOMIC);
+ con = kzalloc_obj(*con, GFP_ATOMIC);
if (!con)
return ERR_PTR(-ENOMEM);
@@ -325,7 +325,7 @@ void tipc_topsrv_queue_evt(struct net *net, int conid,
if (!connected(con))
goto err;
- e = kmalloc(sizeof(*e), GFP_ATOMIC);
+ e = kmalloc_obj(*e, GFP_ATOMIC);
if (!e)
goto err;
e->inactive = (event == TIPC_SUBSCR_TIMEOUT);
@@ -661,7 +661,7 @@ static int tipc_topsrv_start(struct net *net)
struct tipc_topsrv *srv;
int ret;
- srv = kzalloc(sizeof(*srv), GFP_ATOMIC);
+ srv = kzalloc_obj(*srv, GFP_ATOMIC);
if (!srv)
return -ENOMEM;
diff --git a/net/tipc/udp_media.c b/net/tipc/udp_media.c
index b85ab0fb3b8c..2b8e385d1e51 100644
--- a/net/tipc/udp_media.c
+++ b/net/tipc/udp_media.c
@@ -309,7 +309,7 @@ static int tipc_udp_rcast_add(struct tipc_bearer *b,
if (!ub)
return -ENODEV;
- rcast = kmalloc(sizeof(*rcast), GFP_ATOMIC);
+ rcast = kmalloc_obj(*rcast, GFP_ATOMIC);
if (!rcast)
return -ENOMEM;
@@ -675,7 +675,7 @@ static int tipc_udp_enable(struct net *net, struct tipc_bearer *b,
struct net_device *dev;
int rmcast = 0;
- ub = kzalloc(sizeof(*ub), GFP_ATOMIC);
+ ub = kzalloc_obj(*ub, GFP_ATOMIC);
if (!ub)
return -ENOMEM;
diff --git a/net/tls/tls_device.c b/net/tls/tls_device.c
index 82ea407e520a..7a85ef064e4c 100644
--- a/net/tls/tls_device.c
+++ b/net/tls/tls_device.c
@@ -346,7 +346,7 @@ static int tls_create_new_record(struct tls_offload_context_tx *offload_ctx,
struct tls_record_info *record;
skb_frag_t *frag;
- record = kmalloc(sizeof(*record), GFP_KERNEL);
+ record = kmalloc_obj(*record, GFP_KERNEL);
if (!record)
return -ENOMEM;
@@ -1040,7 +1040,7 @@ static struct tls_offload_context_tx *alloc_offload_ctx_tx(struct tls_context *c
struct tls_offload_context_tx *offload_ctx;
__be64 rcd_sn;
- offload_ctx = kzalloc(sizeof(*offload_ctx), GFP_KERNEL);
+ offload_ctx = kzalloc_obj(*offload_ctx, GFP_KERNEL);
if (!offload_ctx)
return NULL;
@@ -1110,7 +1110,7 @@ int tls_set_device_offload(struct sock *sk)
memcpy(ctx->tx.iv + cipher_desc->salt, iv, cipher_desc->iv);
memcpy(ctx->tx.rec_seq, rec_seq, cipher_desc->rec_seq);
- start_marker_record = kmalloc(sizeof(*start_marker_record), GFP_KERNEL);
+ start_marker_record = kmalloc_obj(*start_marker_record, GFP_KERNEL);
if (!start_marker_record) {
rc = -ENOMEM;
goto release_netdev;
@@ -1224,7 +1224,7 @@ int tls_set_device_offload_rx(struct sock *sk, struct tls_context *ctx)
goto release_lock;
}
- context = kzalloc(sizeof(*context), GFP_KERNEL);
+ context = kzalloc_obj(*context, GFP_KERNEL);
if (!context) {
rc = -ENOMEM;
goto release_lock;
diff --git a/net/tls/tls_device_fallback.c b/net/tls/tls_device_fallback.c
index 03d508a45aae..d3c72f509baa 100644
--- a/net/tls/tls_device_fallback.c
+++ b/net/tls/tls_device_fallback.c
@@ -383,7 +383,7 @@ static struct sk_buff *tls_sw_fallback(struct sock *sk, struct sk_buff *skb)
if (!payload_len)
return skb;
- sg_in = kmalloc_array(sg_in_max_elements, sizeof(*sg_in), GFP_ATOMIC);
+ sg_in = kmalloc_objs(*sg_in, sg_in_max_elements, GFP_ATOMIC);
if (!sg_in)
goto free_orig;
diff --git a/net/tls/tls_main.c b/net/tls/tls_main.c
index 56ce0bc8317b..fd39acf41a61 100644
--- a/net/tls/tls_main.c
+++ b/net/tls/tls_main.c
@@ -915,7 +915,7 @@ struct tls_context *tls_ctx_create(struct sock *sk)
struct inet_connection_sock *icsk = inet_csk(sk);
struct tls_context *ctx;
- ctx = kzalloc(sizeof(*ctx), GFP_ATOMIC);
+ ctx = kzalloc_obj(*ctx, GFP_ATOMIC);
if (!ctx)
return NULL;
diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c
index 9937d4c810f2..36bacedd6177 100644
--- a/net/tls/tls_sw.c
+++ b/net/tls/tls_sw.c
@@ -2698,7 +2698,7 @@ static struct tls_sw_context_tx *init_ctx_tx(struct tls_context *ctx, struct soc
struct tls_sw_context_tx *sw_ctx_tx;
if (!ctx->priv_ctx_tx) {
- sw_ctx_tx = kzalloc(sizeof(*sw_ctx_tx), GFP_KERNEL);
+ sw_ctx_tx = kzalloc_obj(*sw_ctx_tx, GFP_KERNEL);
if (!sw_ctx_tx)
return NULL;
} else {
@@ -2719,7 +2719,7 @@ static struct tls_sw_context_rx *init_ctx_rx(struct tls_context *ctx)
struct tls_sw_context_rx *sw_ctx_rx;
if (!ctx->priv_ctx_rx) {
- sw_ctx_rx = kzalloc(sizeof(*sw_ctx_rx), GFP_KERNEL);
+ sw_ctx_rx = kzalloc_obj(*sw_ctx_rx, GFP_KERNEL);
if (!sw_ctx_rx)
return NULL;
} else {
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
index f6d56e70c7a2..1c4d298a9eb3 100644
--- a/net/unix/af_unix.c
+++ b/net/unix/af_unix.c
@@ -3798,14 +3798,13 @@ static int __net_init unix_net_init(struct net *net)
goto err_sysctl;
#endif
- net->unx.table.locks = kvmalloc_array(UNIX_HASH_SIZE,
- sizeof(spinlock_t), GFP_KERNEL);
+ net->unx.table.locks = kvmalloc_objs(spinlock_t, UNIX_HASH_SIZE,
+ GFP_KERNEL);
if (!net->unx.table.locks)
goto err_proc;
- net->unx.table.buckets = kvmalloc_array(UNIX_HASH_SIZE,
- sizeof(struct hlist_head),
- GFP_KERNEL);
+ net->unx.table.buckets = kvmalloc_objs(struct hlist_head,
+ UNIX_HASH_SIZE, GFP_KERNEL);
if (!net->unx.table.buckets)
goto free_locks;
diff --git a/net/unix/garbage.c b/net/unix/garbage.c
index 25f65817faab..a15e7eb50851 100644
--- a/net/unix/garbage.c
+++ b/net/unix/garbage.c
@@ -288,15 +288,15 @@ int unix_prepare_fpl(struct scm_fp_list *fpl)
return 0;
for (i = 0; i < fpl->count_unix; i++) {
- vertex = kmalloc(sizeof(*vertex), GFP_KERNEL);
+ vertex = kmalloc_obj(*vertex, GFP_KERNEL);
if (!vertex)
goto err;
list_add(&vertex->entry, &fpl->vertices);
}
- fpl->edges = kvmalloc_array(fpl->count_unix, sizeof(*fpl->edges),
- GFP_KERNEL_ACCOUNT);
+ fpl->edges = kvmalloc_objs(*fpl->edges, fpl->count_unix,
+ GFP_KERNEL_ACCOUNT);
if (!fpl->edges)
goto err;
diff --git a/net/vmw_vsock/hyperv_transport.c b/net/vmw_vsock/hyperv_transport.c
index c3010c874308..b1bf64b5cc97 100644
--- a/net/vmw_vsock/hyperv_transport.c
+++ b/net/vmw_vsock/hyperv_transport.c
@@ -444,7 +444,7 @@ static int hvs_sock_init(struct vsock_sock *vsk, struct vsock_sock *psk)
struct hvsock *hvs;
struct sock *sk = sk_vsock(vsk);
- hvs = kzalloc(sizeof(*hvs), GFP_KERNEL);
+ hvs = kzalloc_obj(*hvs, GFP_KERNEL);
if (!hvs)
return -ENOMEM;
@@ -655,7 +655,7 @@ static ssize_t hvs_stream_enqueue(struct vsock_sock *vsk, struct msghdr *msg,
BUILD_BUG_ON(sizeof(*send_buf) != HV_HYP_PAGE_SIZE);
- send_buf = kmalloc(sizeof(*send_buf), GFP_KERNEL);
+ send_buf = kmalloc_obj(*send_buf, GFP_KERNEL);
if (!send_buf)
return -ENOMEM;
diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c
index 357e80ac3f3a..d6c07334bf94 100644
--- a/net/vmw_vsock/virtio_transport.c
+++ b/net/vmw_vsock/virtio_transport.c
@@ -805,7 +805,7 @@ static int virtio_vsock_probe(struct virtio_device *vdev)
goto out;
}
- vsock = kzalloc(sizeof(*vsock), GFP_KERNEL);
+ vsock = kzalloc_obj(*vsock, GFP_KERNEL);
if (!vsock) {
ret = -ENOMEM;
goto out;
diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c
index d017ab318a7e..925ed086058c 100644
--- a/net/vmw_vsock/virtio_transport_common.c
+++ b/net/vmw_vsock/virtio_transport_common.c
@@ -920,7 +920,7 @@ int virtio_transport_do_socket_init(struct vsock_sock *vsk,
{
struct virtio_vsock_sock *vvs;
- vvs = kzalloc(sizeof(*vvs), GFP_KERNEL);
+ vvs = kzalloc_obj(*vvs, GFP_KERNEL);
if (!vvs)
return -ENOMEM;
diff --git a/net/vmw_vsock/vmci_transport.c b/net/vmw_vsock/vmci_transport.c
index a64522be1bad..3e80639b7c08 100644
--- a/net/vmw_vsock/vmci_transport.c
+++ b/net/vmw_vsock/vmci_transport.c
@@ -262,7 +262,7 @@ vmci_transport_alloc_send_control_pkt(struct sockaddr_vm *src,
struct vmci_transport_packet *pkt;
int err;
- pkt = kmalloc(sizeof(*pkt), GFP_KERNEL);
+ pkt = kmalloc_obj(*pkt, GFP_KERNEL);
if (!pkt)
return -ENOMEM;
@@ -779,7 +779,7 @@ static int vmci_transport_recv_stream_cb(void *data, struct vmci_datagram *dg)
if (!bh_process_pkt) {
struct vmci_transport_recv_pkt_info *recv_pkt_info;
- recv_pkt_info = kmalloc(sizeof(*recv_pkt_info), GFP_ATOMIC);
+ recv_pkt_info = kmalloc_obj(*recv_pkt_info, GFP_ATOMIC);
if (!recv_pkt_info) {
if (vmci_transport_send_reset_bh(&dst, &src, pkt) < 0)
pr_err("unable to send reset\n");
@@ -1583,7 +1583,7 @@ static int vmci_transport_recv_connected(struct sock *sk,
static int vmci_transport_socket_init(struct vsock_sock *vsk,
struct vsock_sock *psk)
{
- vsk->trans = kmalloc(sizeof(struct vmci_transport), GFP_KERNEL);
+ vsk->trans = kmalloc_obj(struct vmci_transport, GFP_KERNEL);
if (!vsk->trans)
return -ENOMEM;
diff --git a/net/wireless/core.c b/net/wireless/core.c
index 9af85d655027..bd53317e44ef 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -1000,9 +1000,8 @@ int wiphy_register(struct wiphy *wiphy)
if (wiphy->n_radio > 0) {
int idx;
- wiphy->radio_cfg = kcalloc(wiphy->n_radio,
- sizeof(*wiphy->radio_cfg),
- GFP_KERNEL);
+ wiphy->radio_cfg = kzalloc_objs(*wiphy->radio_cfg,
+ wiphy->n_radio, GFP_KERNEL);
if (!wiphy->radio_cfg)
return -ENOMEM;
/*
@@ -1446,7 +1445,7 @@ void cfg80211_stop_link(struct wiphy *wiphy, struct wireless_dev *wdev,
trace_cfg80211_stop_link(wiphy, wdev, link_id);
- ev = kzalloc(sizeof(*ev), gfp);
+ ev = kzalloc_obj(*ev, gfp);
if (!ev)
return;
diff --git a/net/wireless/ibss.c b/net/wireless/ibss.c
index 1e3ed29f7cfc..a7024af39b40 100644
--- a/net/wireless/ibss.c
+++ b/net/wireless/ibss.c
@@ -69,7 +69,7 @@ void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid,
if (WARN_ON(!channel))
return;
- ev = kzalloc(sizeof(*ev), gfp);
+ ev = kzalloc_obj(*ev, gfp);
if (!ev)
return;
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 6e58b238a1f8..33782370fbaf 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -1106,8 +1106,8 @@ static int nl80211_prepare_wdev_dump(struct netlink_callback *cb,
struct nlattr **attrbuf_free = NULL;
if (!attrbuf) {
- attrbuf = kcalloc(NUM_NL80211_ATTR, sizeof(*attrbuf),
- GFP_KERNEL);
+ attrbuf = kzalloc_objs(*attrbuf, NUM_NL80211_ATTR,
+ GFP_KERNEL);
if (!attrbuf)
return -ENOMEM;
attrbuf_free = attrbuf;
@@ -1615,7 +1615,7 @@ nl80211_parse_connkeys(struct cfg80211_registered_device *rdev,
if (!have_key)
return NULL;
- result = kzalloc(sizeof(*result), GFP_KERNEL);
+ result = kzalloc_obj(*result, GFP_KERNEL);
if (!result)
return ERR_PTR(-ENOMEM);
@@ -3367,7 +3367,7 @@ static int nl80211_dump_wiphy_parse(struct sk_buff *skb,
struct netlink_callback *cb,
struct nl80211_dump_wiphy_state *state)
{
- struct nlattr **tb = kcalloc(NUM_NL80211_ATTR, sizeof(*tb), GFP_KERNEL);
+ struct nlattr **tb = kzalloc_objs(*tb, NUM_NL80211_ATTR, GFP_KERNEL);
int ret;
if (!tb)
@@ -3419,7 +3419,7 @@ static int nl80211_dump_wiphy(struct sk_buff *skb, struct netlink_callback *cb)
rtnl_lock();
if (!state) {
- state = kzalloc(sizeof(*state), GFP_KERNEL);
+ state = kzalloc_obj(*state, GFP_KERNEL);
if (!state) {
rtnl_unlock();
return -ENOMEM;
@@ -5333,7 +5333,7 @@ static struct cfg80211_acl_data *parse_acl_data(struct wiphy *wiphy,
if (n_entries > wiphy->max_acl_mac_addrs)
return ERR_PTR(-EOPNOTSUPP);
- acl = kzalloc(struct_size(acl, mac_addrs, n_entries), GFP_KERNEL);
+ acl = kzalloc_flex(*acl, mac_addrs, n_entries, GFP_KERNEL);
if (!acl)
return ERR_PTR(-ENOMEM);
acl->n_acl_entries = n_entries;
@@ -6113,7 +6113,7 @@ nl80211_parse_mbssid_elems(struct wiphy *wiphy, struct nlattr *attrs)
num_elems++;
}
- elems = kzalloc(struct_size(elems, elem, num_elems), GFP_KERNEL);
+ elems = kzalloc_flex(*elems, elem, num_elems, GFP_KERNEL);
if (!elems)
return ERR_PTR(-ENOMEM);
elems->cnt = num_elems;
@@ -6145,7 +6145,7 @@ nl80211_parse_rnr_elems(struct wiphy *wiphy, struct nlattr *attrs,
num_elems++;
}
- elems = kzalloc(struct_size(elems, elem, num_elems), GFP_KERNEL);
+ elems = kzalloc_flex(*elems, elem, num_elems, GFP_KERNEL);
if (!elems)
return ERR_PTR(-ENOMEM);
elems->cnt = num_elems;
@@ -6702,7 +6702,7 @@ static int nl80211_start_ap(struct sk_buff *skb, struct genl_info *info)
nla_get_u8(info->attrs[NL80211_ATTR_SMPS_MODE]) != NL80211_SMPS_OFF)
return -EOPNOTSUPP;
- params = kzalloc(sizeof(*params), GFP_KERNEL);
+ params = kzalloc_obj(*params, GFP_KERNEL);
if (!params)
return -ENOMEM;
@@ -6995,7 +6995,7 @@ static int nl80211_set_beacon(struct sk_buff *skb, struct genl_info *info)
if (!wdev->links[link_id].ap.beacon_interval)
return -EINVAL;
- params = kzalloc(sizeof(*params), GFP_KERNEL);
+ params = kzalloc_obj(*params, GFP_KERNEL);
if (!params)
return -ENOMEM;
@@ -7985,7 +7985,7 @@ static int nl80211_dump_station(struct sk_buff *skb,
for (i = 0; i < IEEE80211_MLD_MAX_NUM_LINKS; i++) {
sinfo.links[i] =
- kzalloc(sizeof(*sinfo.links[0]), GFP_KERNEL);
+ kzalloc_obj(*sinfo.links[0], GFP_KERNEL);
if (!sinfo.links[i]) {
err = -ENOMEM;
goto out_err;
@@ -8049,7 +8049,7 @@ static int nl80211_get_station(struct sk_buff *skb, struct genl_info *info)
return -EOPNOTSUPP;
for (i = 0; i < IEEE80211_MLD_MAX_NUM_LINKS; i++) {
- sinfo.links[i] = kzalloc(sizeof(*sinfo.links[0]), GFP_KERNEL);
+ sinfo.links[i] = kzalloc_obj(*sinfo.links[0], GFP_KERNEL);
if (!sinfo.links[i]) {
cfg80211_sinfo_release_content(&sinfo);
return -ENOMEM;
@@ -10157,7 +10157,7 @@ static int nl80211_set_reg(struct sk_buff *skb, struct genl_info *info)
goto out;
}
- rd = kzalloc(struct_size(rd, reg_rules, num_rules), GFP_KERNEL);
+ rd = kzalloc_flex(*rd, reg_rules, num_rules, GFP_KERNEL);
if (!rd) {
r = -ENOMEM;
goto out;
@@ -11520,8 +11520,7 @@ static int nl80211_channel_switch(struct sk_buff *skb, struct genl_info *info)
if (err)
goto free;
- csa_attrs = kcalloc(NL80211_ATTR_MAX + 1, sizeof(*csa_attrs),
- GFP_KERNEL);
+ csa_attrs = kzalloc_objs(*csa_attrs, NL80211_ATTR_MAX + 1, GFP_KERNEL);
if (!csa_attrs) {
err = -ENOMEM;
goto free;
@@ -11781,7 +11780,7 @@ static int nl80211_dump_scan(struct sk_buff *skb, struct netlink_callback *cb)
bool dump_include_use_data;
int err;
- attrbuf = kcalloc(NUM_NL80211_ATTR, sizeof(*attrbuf), GFP_KERNEL);
+ attrbuf = kzalloc_objs(*attrbuf, NUM_NL80211_ATTR, GFP_KERNEL);
if (!attrbuf)
return -ENOMEM;
@@ -11921,7 +11920,7 @@ static int nl80211_dump_survey(struct sk_buff *skb, struct netlink_callback *cb)
int res;
bool radio_stats;
- attrbuf = kcalloc(NUM_NL80211_ATTR, sizeof(*attrbuf), GFP_KERNEL);
+ attrbuf = kzalloc_objs(*attrbuf, NUM_NL80211_ATTR, GFP_KERNEL);
if (!attrbuf)
return -ENOMEM;
@@ -13112,8 +13111,7 @@ static int nl80211_testmode_dump(struct sk_buff *skb,
goto out_err;
}
} else {
- attrbuf = kcalloc(NUM_NL80211_ATTR, sizeof(*attrbuf),
- GFP_KERNEL);
+ attrbuf = kzalloc_objs(*attrbuf, NUM_NL80211_ATTR, GFP_KERNEL);
if (!attrbuf) {
err = -ENOMEM;
goto out_err;
@@ -14310,9 +14308,8 @@ static int nl80211_set_cqm_rssi(struct genl_info *info,
}
if (n_thresholds) {
- cqm_config = kzalloc(struct_size(cqm_config, rssi_thresholds,
- n_thresholds),
- GFP_KERNEL);
+ cqm_config = kzalloc_flex(*cqm_config, rssi_thresholds,
+ n_thresholds, GFP_KERNEL);
if (!cqm_config)
return -ENOMEM;
@@ -14938,7 +14935,7 @@ static int nl80211_parse_wowlan_nd(struct cfg80211_registered_device *rdev,
struct nlattr **tb;
int err;
- tb = kcalloc(NUM_NL80211_ATTR, sizeof(*tb), GFP_KERNEL);
+ tb = kzalloc_objs(*tb, NUM_NL80211_ATTR, GFP_KERNEL);
if (!tb)
return -ENOMEM;
@@ -15054,9 +15051,8 @@ static int nl80211_set_wowlan(struct sk_buff *skb, struct genl_info *info)
if (n_patterns > wowlan->n_patterns)
return -EINVAL;
- new_triggers.patterns = kcalloc(n_patterns,
- sizeof(new_triggers.patterns[0]),
- GFP_KERNEL);
+ new_triggers.patterns = kzalloc_objs(new_triggers.patterns[0],
+ n_patterns, GFP_KERNEL);
if (!new_triggers.patterns)
return -ENOMEM;
@@ -15303,8 +15299,8 @@ static int nl80211_parse_coalesce_rule(struct cfg80211_registered_device *rdev,
if (n_patterns > coalesce->n_patterns)
return -EINVAL;
- new_rule->patterns = kcalloc(n_patterns, sizeof(new_rule->patterns[0]),
- GFP_KERNEL);
+ new_rule->patterns = kzalloc_objs(new_rule->patterns[0], n_patterns,
+ GFP_KERNEL);
if (!new_rule->patterns)
return -ENOMEM;
@@ -15382,8 +15378,7 @@ static int nl80211_set_coalesce(struct sk_buff *skb, struct genl_info *info)
if (n_rules > coalesce->n_rules)
return -EINVAL;
- new_coalesce = kzalloc(struct_size(new_coalesce, rules, n_rules),
- GFP_KERNEL);
+ new_coalesce = kzalloc_flex(*new_coalesce, rules, n_rules, GFP_KERNEL);
if (!new_coalesce)
return -ENOMEM;
@@ -15543,7 +15538,7 @@ static int nl80211_register_beacons(struct sk_buff *skb, struct genl_info *info)
if (!(rdev->wiphy.flags & WIPHY_FLAG_REPORTS_OBSS))
return -EOPNOTSUPP;
- nreg = kzalloc(sizeof(*nreg), GFP_KERNEL);
+ nreg = kzalloc_obj(*nreg, GFP_KERNEL);
if (!nreg)
return -ENOMEM;
@@ -15900,7 +15895,7 @@ static int handle_nan_filter(struct nlattr *attr_filter,
BUILD_BUG_ON(sizeof(*func->rx_filters) != sizeof(*func->tx_filters));
- filter = kcalloc(n_entries, sizeof(*func->rx_filters), GFP_KERNEL);
+ filter = kzalloc_objs(*func->rx_filters, n_entries, GFP_KERNEL);
if (!filter)
return -ENOMEM;
@@ -15960,7 +15955,7 @@ static int nl80211_nan_add_func(struct sk_buff *skb,
if (err)
return err;
- func = kzalloc(sizeof(*func), GFP_KERNEL);
+ func = kzalloc_obj(*func, GFP_KERNEL);
if (!func)
return -ENOMEM;
@@ -16099,8 +16094,8 @@ static int nl80211_nan_add_func(struct sk_buff *skb,
func->srf_num_macs = n_entries;
func->srf_macs =
- kcalloc(n_entries, sizeof(*func->srf_macs),
- GFP_KERNEL);
+ kzalloc_objs(*func->srf_macs, n_entries,
+ GFP_KERNEL);
if (!func->srf_macs) {
err = -ENOMEM;
goto out;
@@ -16602,7 +16597,7 @@ static int nl80211_prepare_vendor_dump(struct sk_buff *skb,
return 0;
}
- attrbuf = kcalloc(NUM_NL80211_ATTR, sizeof(*attrbuf), GFP_KERNEL);
+ attrbuf = kzalloc_objs(*attrbuf, NUM_NL80211_ATTR, GFP_KERNEL);
if (!attrbuf)
return -ENOMEM;
@@ -16833,7 +16828,7 @@ static int nl80211_set_qos_map(struct sk_buff *skb,
if (len % 2)
return -EINVAL;
- qos_map = kzalloc(sizeof(struct cfg80211_qos_map), GFP_KERNEL);
+ qos_map = kzalloc_obj(struct cfg80211_qos_map, GFP_KERNEL);
if (!qos_map)
return -ENOMEM;
@@ -17467,8 +17462,7 @@ static int nl80211_set_tid_config(struct sk_buff *skb,
rem_conf)
num_conf++;
- tid_config = kzalloc(struct_size(tid_config, tid_conf, num_conf),
- GFP_KERNEL);
+ tid_config = kzalloc_flex(*tid_config, tid_conf, num_conf, GFP_KERNEL);
if (!tid_config)
return -ENOMEM;
@@ -17534,7 +17528,7 @@ static int nl80211_color_change(struct sk_buff *skb, struct genl_info *info)
if (err)
return err;
- tb = kcalloc(NL80211_ATTR_MAX + 1, sizeof(*tb), GFP_KERNEL);
+ tb = kzalloc_objs(*tb, NL80211_ATTR_MAX + 1, GFP_KERNEL);
if (!tb)
return -ENOMEM;
@@ -18262,7 +18256,7 @@ static int nl80211_set_sar_specs(struct sk_buff *skb, struct genl_info *info)
if (specs > rdev->wiphy.sar_capa->num_freq_ranges)
return -EINVAL;
- sar_spec = kzalloc(struct_size(sar_spec, sub_specs, specs), GFP_KERNEL);
+ sar_spec = kzalloc_flex(*sar_spec, sub_specs, specs, GFP_KERNEL);
if (!sar_spec)
return -ENOMEM;
diff --git a/net/wireless/of.c b/net/wireless/of.c
index de221f0edca5..35a3bcd84b6f 100644
--- a/net/wireless/of.c
+++ b/net/wireless/of.c
@@ -98,7 +98,7 @@ void wiphy_read_of_freq_limits(struct wiphy *wiphy)
}
n_freq_limits = len / sizeof(u32) / 2;
- freq_limits = kcalloc(n_freq_limits, sizeof(*freq_limits), GFP_KERNEL);
+ freq_limits = kzalloc_objs(*freq_limits, n_freq_limits, GFP_KERNEL);
if (!freq_limits) {
err = -ENOMEM;
goto out_kfree;
diff --git a/net/wireless/pmsr.c b/net/wireless/pmsr.c
index 60e1e31c2185..41aa8636a243 100644
--- a/net/wireless/pmsr.c
+++ b/net/wireless/pmsr.c
@@ -312,7 +312,7 @@ int nl80211_pmsr_start(struct sk_buff *skb, struct genl_info *info)
}
}
- req = kzalloc(struct_size(req, peers, count), GFP_KERNEL);
+ req = kzalloc_flex(*req, peers, count, GFP_KERNEL);
if (!req)
return -ENOMEM;
req->n_peers = count;
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index 139cb27e5a81..d6f3282fe986 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -452,8 +452,7 @@ reg_copy_regd(const struct ieee80211_regdomain *src_regd)
struct ieee80211_regdomain *regd;
unsigned int i;
- regd = kzalloc(struct_size(regd, reg_rules, src_regd->n_reg_rules),
- GFP_KERNEL);
+ regd = kzalloc_flex(*regd, reg_rules, src_regd->n_reg_rules, GFP_KERNEL);
if (!regd)
return ERR_PTR(-ENOMEM);
@@ -510,7 +509,7 @@ static int reg_schedule_apply(const struct ieee80211_regdomain *regdom)
{
struct reg_regdb_apply_request *request;
- request = kzalloc(sizeof(struct reg_regdb_apply_request), GFP_KERNEL);
+ request = kzalloc_obj(struct reg_regdb_apply_request, GFP_KERNEL);
if (!request) {
kfree(regdom);
return -ENOMEM;
@@ -933,8 +932,7 @@ static int regdb_query_country(const struct fwdb_header *db,
struct ieee80211_regdomain *regdom;
unsigned int i;
- regdom = kzalloc(struct_size(regdom, reg_rules, coll->n_rules),
- GFP_KERNEL);
+ regdom = kzalloc_flex(*regdom, reg_rules, coll->n_rules, GFP_KERNEL);
if (!regdom)
return -ENOMEM;
@@ -1100,7 +1098,7 @@ int reg_reload_regdb(void)
/* reset regulatory domain */
current_regdomain = get_cfg80211_regdom();
- request = kzalloc(sizeof(*request), GFP_KERNEL);
+ request = kzalloc_obj(*request, GFP_KERNEL);
if (!request) {
err = -ENOMEM;
goto out_unlock;
@@ -1532,7 +1530,7 @@ regdom_intersect(const struct ieee80211_regdomain *rd1,
if (!num_rules)
return NULL;
- rd = kzalloc(struct_size(rd, reg_rules, num_rules), GFP_KERNEL);
+ rd = kzalloc_flex(*rd, reg_rules, num_rules, GFP_KERNEL);
if (!rd)
return NULL;
@@ -3224,7 +3222,7 @@ static int regulatory_hint_core(const char *alpha2)
{
struct regulatory_request *request;
- request = kzalloc(sizeof(struct regulatory_request), GFP_KERNEL);
+ request = kzalloc_obj(struct regulatory_request, GFP_KERNEL);
if (!request)
return -ENOMEM;
@@ -3250,7 +3248,7 @@ int regulatory_hint_user(const char *alpha2,
if (!is_world_regdom(alpha2) && !is_an_alpha2(alpha2))
return -EINVAL;
- request = kzalloc(sizeof(struct regulatory_request), GFP_KERNEL);
+ request = kzalloc_obj(struct regulatory_request, GFP_KERNEL);
if (!request)
return -ENOMEM;
@@ -3320,7 +3318,7 @@ int regulatory_hint(struct wiphy *wiphy, const char *alpha2)
wiphy->regulatory_flags &= ~REGULATORY_CUSTOM_REG;
- request = kzalloc(sizeof(struct regulatory_request), GFP_KERNEL);
+ request = kzalloc_obj(struct regulatory_request, GFP_KERNEL);
if (!request)
return -ENOMEM;
@@ -3353,7 +3351,7 @@ void regulatory_hint_country_ie(struct wiphy *wiphy, enum nl80211_band band,
if (country_ie_len < IEEE80211_COUNTRY_IE_MIN_LEN)
return;
- request = kzalloc(sizeof(*request), GFP_KERNEL);
+ request = kzalloc_obj(*request, GFP_KERNEL);
if (!request)
return;
@@ -3666,7 +3664,7 @@ void regulatory_hint_found_beacon(struct wiphy *wiphy,
if (processing)
return;
- reg_beacon = kzalloc(sizeof(struct reg_beacon), gfp);
+ reg_beacon = kzalloc_obj(struct reg_beacon, gfp);
if (!reg_beacon)
return;
diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index eb0e77813d46..89174a9049a3 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -729,7 +729,7 @@ cfg80211_parse_colocated_ap_iter(void *_data, u8 type,
bss_params)))
return RNR_ITER_CONTINUE;
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (!entry)
return RNR_ITER_ERROR;
@@ -895,7 +895,7 @@ static int cfg80211_scan_6ghz(struct cfg80211_registered_device *rdev,
if (ret)
continue;
- entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+ entry = kzalloc_obj(*entry, GFP_ATOMIC);
if (!entry)
continue;
@@ -1085,8 +1085,7 @@ int cfg80211_scan(struct cfg80211_registered_device *rdev)
if (!n_channels)
return cfg80211_scan_6ghz(rdev, true);
- request = kzalloc(struct_size(request, req.channels, n_channels),
- GFP_KERNEL);
+ request = kzalloc_flex(*request, req.channels, n_channels, GFP_KERNEL);
if (!request)
return -ENOMEM;
@@ -2694,7 +2693,7 @@ cfg80211_defrag_mle(const struct element *mle, const u8 *ie, size_t ielen,
buf_len += elem->datalen;
}
- res = kzalloc(struct_size(res, data, buf_len), gfp);
+ res = kzalloc_flex(*res, data, buf_len, gfp);
if (!res)
return NULL;
@@ -2910,9 +2909,8 @@ cfg80211_gen_reporter_rnr(struct cfg80211_bss *source_bss, bool is_mbssid,
le16_encode_bits(bss_change_count,
IEEE80211_RNR_MLD_PARAMS_BSS_CHANGE_COUNT);
- res = kzalloc(struct_size(res, data,
- sizeof(ap_info) + ap_info.tbtt_info_len),
- gfp);
+ res = kzalloc_flex(*res, data, sizeof(ap_info) + ap_info.tbtt_info_len,
+ gfp);
if (!res)
return NULL;
diff --git a/net/wireless/sme.c b/net/wireless/sme.c
index 4e629ca305bc..cb1a75fda5ca 100644
--- a/net/wireless/sme.c
+++ b/net/wireless/sme.c
@@ -570,7 +570,7 @@ static int cfg80211_sme_connect(struct wireless_dev *wdev,
if (wdev->conn)
return -EINPROGRESS;
- wdev->conn = kzalloc(sizeof(*wdev->conn), GFP_KERNEL);
+ wdev->conn = kzalloc_obj(*wdev->conn, GFP_KERNEL);
if (!wdev->conn)
return -ENOMEM;
diff --git a/net/wireless/tests/util.c b/net/wireless/tests/util.c
index 8abdaeb820ce..6f870b06307d 100644
--- a/net/wireless/tests/util.c
+++ b/net/wireless/tests/util.c
@@ -17,7 +17,7 @@ int t_wiphy_init(struct kunit_resource *resource, void *ctx)
struct wiphy *wiphy;
struct t_wiphy_priv *priv;
- ops = kzalloc(sizeof(*ops), GFP_KERNEL);
+ ops = kzalloc_obj(*ops, GFP_KERNEL);
KUNIT_ASSERT_NOT_NULL(test, ops);
wiphy = wiphy_new_nm(ops, sizeof(*priv), "kunit");
diff --git a/net/wireless/util.c b/net/wireless/util.c
index 404fe604a8db..b78530c3e3f8 100644
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -2713,8 +2713,8 @@ bool cfg80211_does_bw_fit_range(const struct ieee80211_freq_range *freq_range,
int cfg80211_link_sinfo_alloc_tid_stats(struct link_station_info *link_sinfo,
gfp_t gfp)
{
- link_sinfo->pertid = kcalloc(IEEE80211_NUM_TIDS + 1,
- sizeof(*link_sinfo->pertid), gfp);
+ link_sinfo->pertid = kzalloc_objs(*link_sinfo->pertid,
+ IEEE80211_NUM_TIDS + 1, gfp);
if (!link_sinfo->pertid)
return -ENOMEM;
@@ -2724,9 +2724,8 @@ EXPORT_SYMBOL(cfg80211_link_sinfo_alloc_tid_stats);
int cfg80211_sinfo_alloc_tid_stats(struct station_info *sinfo, gfp_t gfp)
{
- sinfo->pertid = kcalloc(IEEE80211_NUM_TIDS + 1,
- sizeof(*(sinfo->pertid)),
- gfp);
+ sinfo->pertid = kzalloc_objs(*(sinfo->pertid), IEEE80211_NUM_TIDS + 1,
+ gfp);
if (!sinfo->pertid)
return -ENOMEM;
diff --git a/net/wireless/wext-compat.c b/net/wireless/wext-compat.c
index 1241fda78a68..3ce845cd1936 100644
--- a/net/wireless/wext-compat.c
+++ b/net/wireless/wext-compat.c
@@ -414,8 +414,7 @@ static int cfg80211_set_encryption(struct cfg80211_registered_device *rdev,
* to do it first in case the allocation fails. Don't use wext.
*/
if (!wdev->wext.keys) {
- wdev->wext.keys = kzalloc(sizeof(*wdev->wext.keys),
- GFP_KERNEL);
+ wdev->wext.keys = kzalloc_obj(*wdev->wext.keys, GFP_KERNEL);
if (!wdev->wext.keys)
return -ENOMEM;
for (i = 0; i < 4; i++)
diff --git a/net/x25/x25_forward.c b/net/x25/x25_forward.c
index 21b30b56e889..3b406906eb9e 100644
--- a/net/x25/x25_forward.c
+++ b/net/x25/x25_forward.c
@@ -55,8 +55,7 @@ int x25_forward_call(struct x25_address *dest_addr, struct x25_neigh *from,
/* Save the forwarding details for future traffic */
if (!same_lci){
- if ((new_frwd = kmalloc(sizeof(struct x25_forward),
- GFP_ATOMIC)) == NULL){
+ if ((new_frwd = kmalloc_obj(struct x25_forward, GFP_ATOMIC)) == NULL){
rc = -ENOMEM;
goto out_put_nb;
}
diff --git a/net/x25/x25_link.c b/net/x25/x25_link.c
index 4608aa5b4f31..d1e8cd81c214 100644
--- a/net/x25/x25_link.c
+++ b/net/x25/x25_link.c
@@ -262,7 +262,7 @@ void x25_link_terminated(struct x25_neigh *nb)
*/
void x25_link_device_up(struct net_device *dev)
{
- struct x25_neigh *nb = kmalloc(sizeof(*nb), GFP_ATOMIC);
+ struct x25_neigh *nb = kmalloc_obj(*nb, GFP_ATOMIC);
if (!nb)
return;
diff --git a/net/x25/x25_route.c b/net/x25/x25_route.c
index 647f325ed867..b28055f852df 100644
--- a/net/x25/x25_route.c
+++ b/net/x25/x25_route.c
@@ -37,7 +37,7 @@ static int x25_add_route(struct x25_address *address, unsigned int sigdigits,
goto out;
}
- rt = kmalloc(sizeof(*rt), GFP_ATOMIC);
+ rt = kmalloc_obj(*rt, GFP_ATOMIC);
rc = -ENOMEM;
if (!rt)
goto out;
diff --git a/net/xdp/xdp_umem.c b/net/xdp/xdp_umem.c
index 9f76ca591d54..4c94ec312d75 100644
--- a/net/xdp/xdp_umem.c
+++ b/net/xdp/xdp_umem.c
@@ -97,7 +97,8 @@ static int xdp_umem_pin_pages(struct xdp_umem *umem, unsigned long address)
long npgs;
int err;
- umem->pgs = kvcalloc(umem->npgs, sizeof(*umem->pgs), GFP_KERNEL | __GFP_NOWARN);
+ umem->pgs = kvzalloc_objs(*umem->pgs, umem->npgs,
+ GFP_KERNEL | __GFP_NOWARN);
if (!umem->pgs)
return -ENOMEM;
@@ -249,7 +250,7 @@ struct xdp_umem *xdp_umem_create(struct xdp_umem_reg *mr)
struct xdp_umem *umem;
int err;
- umem = kzalloc(sizeof(*umem), GFP_KERNEL);
+ umem = kzalloc_obj(*umem, GFP_KERNEL);
if (!umem)
return ERR_PTR(-ENOMEM);
diff --git a/net/xdp/xsk_buff_pool.c b/net/xdp/xsk_buff_pool.c
index cd5125b6af53..a8f932b28ee3 100644
--- a/net/xdp/xsk_buff_pool.c
+++ b/net/xdp/xsk_buff_pool.c
@@ -42,8 +42,8 @@ void xp_destroy(struct xsk_buff_pool *pool)
int xp_alloc_tx_descs(struct xsk_buff_pool *pool, struct xdp_sock *xs)
{
- pool->tx_descs = kvcalloc(xs->tx->nentries, sizeof(*pool->tx_descs),
- GFP_KERNEL);
+ pool->tx_descs = kvzalloc_objs(*pool->tx_descs, xs->tx->nentries,
+ GFP_KERNEL);
if (!pool->tx_descs)
return -ENOMEM;
@@ -59,11 +59,11 @@ struct xsk_buff_pool *xp_create_and_assign_umem(struct xdp_sock *xs,
u32 i, entries;
entries = unaligned ? umem->chunks : 0;
- pool = kvzalloc(struct_size(pool, free_heads, entries), GFP_KERNEL);
+ pool = kvzalloc_flex(*pool, free_heads, entries, GFP_KERNEL);
if (!pool)
goto out;
- pool->heads = kvcalloc(umem->chunks, sizeof(*pool->heads), GFP_KERNEL);
+ pool->heads = kvzalloc_objs(*pool->heads, umem->chunks, GFP_KERNEL);
if (!pool->heads)
goto out;
@@ -328,11 +328,12 @@ static struct xsk_dma_map *xp_create_dma_map(struct device *dev, struct net_devi
{
struct xsk_dma_map *dma_map;
- dma_map = kzalloc(sizeof(*dma_map), GFP_KERNEL);
+ dma_map = kzalloc_obj(*dma_map, GFP_KERNEL);
if (!dma_map)
return NULL;
- dma_map->dma_pages = kvcalloc(nr_pages, sizeof(*dma_map->dma_pages), GFP_KERNEL);
+ dma_map->dma_pages = kvzalloc_objs(*dma_map->dma_pages, nr_pages,
+ GFP_KERNEL);
if (!dma_map->dma_pages) {
kfree(dma_map);
return NULL;
@@ -420,7 +421,8 @@ static int xp_init_dma_info(struct xsk_buff_pool *pool, struct xsk_dma_map *dma_
}
}
- pool->dma_pages = kvcalloc(dma_map->dma_pages_cnt, sizeof(*pool->dma_pages), GFP_KERNEL);
+ pool->dma_pages = kvzalloc_objs(*pool->dma_pages,
+ dma_map->dma_pages_cnt, GFP_KERNEL);
if (!pool->dma_pages)
return -ENOMEM;
diff --git a/net/xdp/xsk_queue.c b/net/xdp/xsk_queue.c
index d2c264030017..ef089b9c4fc8 100644
--- a/net/xdp/xsk_queue.c
+++ b/net/xdp/xsk_queue.c
@@ -26,7 +26,7 @@ struct xsk_queue *xskq_create(u32 nentries, bool umem_queue)
struct xsk_queue *q;
size_t size;
- q = kzalloc(sizeof(*q), GFP_KERNEL);
+ q = kzalloc_obj(*q, GFP_KERNEL);
if (!q)
return NULL;
diff --git a/net/xfrm/espintcp.c b/net/xfrm/espintcp.c
index bf744ac9d5a7..3f6eda9364ec 100644
--- a/net/xfrm/espintcp.c
+++ b/net/xfrm/espintcp.c
@@ -465,7 +465,7 @@ static int espintcp_init_sk(struct sock *sk)
if (sk->sk_user_data)
return -EBUSY;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/net/xfrm/xfrm_ipcomp.c b/net/xfrm/xfrm_ipcomp.c
index 43fdc6ed8dd1..35f8236059a7 100644
--- a/net/xfrm/xfrm_ipcomp.c
+++ b/net/xfrm/xfrm_ipcomp.c
@@ -336,7 +336,7 @@ int ipcomp_init_state(struct xfrm_state *x, struct netlink_ext_ack *extack)
}
err = -ENOMEM;
- ipcd = kzalloc(sizeof(*ipcd), GFP_KERNEL);
+ ipcd = kzalloc_obj(*ipcd, GFP_KERNEL);
if (!ipcd)
goto out;
diff --git a/net/xfrm/xfrm_iptfs.c b/net/xfrm/xfrm_iptfs.c
index 3b6d7284fc70..92b9a5b80804 100644
--- a/net/xfrm/xfrm_iptfs.c
+++ b/net/xfrm/xfrm_iptfs.c
@@ -2526,8 +2526,8 @@ static int iptfs_user_init(struct net *net, struct xfrm_state *x,
nla_get_u16(attrs[XFRMA_IPTFS_REORDER_WINDOW]);
/* saved array is for saving 1..N seq nums from wantseq */
if (xc->reorder_win_size) {
- xtfs->w_saved = kcalloc(xc->reorder_win_size,
- sizeof(*xtfs->w_saved), GFP_KERNEL);
+ xtfs->w_saved = kzalloc_objs(*xtfs->w_saved,
+ xc->reorder_win_size, GFP_KERNEL);
if (!xtfs->w_saved) {
NL_SET_ERR_MSG(extack, "Cannot alloc reorder window");
return -ENOMEM;
@@ -2658,8 +2658,9 @@ static int iptfs_clone_state(struct xfrm_state *x, struct xfrm_state *orig)
xtfs->ra_newskb = NULL;
if (xtfs->cfg.reorder_win_size) {
- xtfs->w_saved = kcalloc(xtfs->cfg.reorder_win_size,
- sizeof(*xtfs->w_saved), GFP_KERNEL);
+ xtfs->w_saved = kzalloc_objs(*xtfs->w_saved,
+ xtfs->cfg.reorder_win_size,
+ GFP_KERNEL);
if (!xtfs->w_saved) {
kfree_sensitive(xtfs);
return -ENOMEM;
@@ -2677,7 +2678,7 @@ static int iptfs_init_state(struct xfrm_state *x)
/* We have arrived here from xfrm_state_clone() */
xtfs = x->mode_data;
} else {
- xtfs = kzalloc(sizeof(*xtfs), GFP_KERNEL);
+ xtfs = kzalloc_obj(*xtfs, GFP_KERNEL);
if (!xtfs)
return -ENOMEM;
}
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index 62486f866975..ee8bb445c4d3 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -429,7 +429,7 @@ struct xfrm_policy *xfrm_policy_alloc(struct net *net, gfp_t gfp)
{
struct xfrm_policy *policy;
- policy = kzalloc(sizeof(struct xfrm_policy), gfp);
+ policy = kzalloc_obj(struct xfrm_policy, gfp);
if (policy) {
write_pnet(&policy->xp_net, net);
@@ -765,7 +765,7 @@ xfrm_policy_inexact_alloc_bin(const struct xfrm_policy *pol, u8 dir)
if (bin)
return bin;
- bin = kzalloc(sizeof(*bin), GFP_ATOMIC);
+ bin = kzalloc_obj(*bin, GFP_ATOMIC);
if (!bin)
return NULL;
@@ -836,7 +836,7 @@ xfrm_pol_inexact_node_alloc(const xfrm_address_t *addr, u8 prefixlen)
{
struct xfrm_pol_inexact_node *node;
- node = kzalloc(sizeof(*node), GFP_ATOMIC);
+ node = kzalloc_obj(*node, GFP_ATOMIC);
if (node)
xfrm_pol_inexact_node_init(node, addr, prefixlen);
diff --git a/scripts/livepatch/init.c b/scripts/livepatch/init.c
index 638c95cffe76..bbfd2e479099 100644
--- a/scripts/livepatch/init.c
+++ b/scripts/livepatch/init.c
@@ -28,7 +28,7 @@ static int __init livepatch_mod_init(void)
goto err;
}
- patch = kzalloc(sizeof(*patch), GFP_KERNEL);
+ patch = kzalloc_obj(*patch, GFP_KERNEL);
if (!patch) {
ret = -ENOMEM;
goto err;
diff --git a/security/apparmor/apparmorfs.c b/security/apparmor/apparmorfs.c
index 5a848c1be056..283e622a7ccc 100644
--- a/security/apparmor/apparmorfs.c
+++ b/security/apparmor/apparmorfs.c
@@ -570,7 +570,7 @@ static ssize_t ns_revision_read(struct file *file, char __user *buf,
static int ns_revision_open(struct inode *inode, struct file *file)
{
- struct aa_revision *rev = kzalloc(sizeof(*rev), GFP_KERNEL);
+ struct aa_revision *rev = kzalloc_obj(*rev, GFP_KERNEL);
if (!rev)
return -ENOMEM;
diff --git a/security/apparmor/audit.c b/security/apparmor/audit.c
index ac89602aa2d9..4a60b6fda75f 100644
--- a/security/apparmor/audit.c
+++ b/security/apparmor/audit.c
@@ -230,7 +230,7 @@ int aa_audit_rule_init(u32 field, u32 op, char *rulestr, void **vrule, gfp_t gfp
return -EINVAL;
}
- rule = kzalloc(sizeof(struct aa_audit_rule), gfp);
+ rule = kzalloc_obj(struct aa_audit_rule, gfp);
if (!rule)
return -ENOMEM;
diff --git a/security/apparmor/label.c b/security/apparmor/label.c
index 03a92a52acf9..e478283bc514 100644
--- a/security/apparmor/label.c
+++ b/security/apparmor/label.c
@@ -61,7 +61,7 @@ struct aa_proxy *aa_alloc_proxy(struct aa_label *label, gfp_t gfp)
{
struct aa_proxy *new;
- new = kzalloc(sizeof(struct aa_proxy), gfp);
+ new = kzalloc_obj(struct aa_proxy, gfp);
if (new) {
kref_init(&new->count);
rcu_assign_pointer(new->label, aa_get_label(label));
@@ -434,7 +434,7 @@ struct aa_label *aa_label_alloc(int size, struct aa_proxy *proxy, gfp_t gfp)
AA_BUG(size < 1);
/* + 1 for null terminator entry on vec */
- new = kzalloc(struct_size(new, vec, size + 1), gfp);
+ new = kzalloc_flex(*new, vec, size + 1, gfp);
AA_DEBUG(DEBUG_LABEL, "%s (%p)\n", __func__, new);
if (!new)
goto fail;
diff --git a/security/apparmor/lib.c b/security/apparmor/lib.c
index d0b82771df01..e41ff57798b2 100644
--- a/security/apparmor/lib.c
+++ b/security/apparmor/lib.c
@@ -125,7 +125,7 @@ bool aa_resize_str_table(struct aa_str_table *t, int newsize, gfp_t gfp)
if (t->size == newsize)
return true;
- n = kcalloc(newsize, sizeof(*n), gfp);
+ n = kzalloc_objs(*n, newsize, gfp);
if (!n)
return false;
for (i = 0; i < min(t->size, newsize); i++)
@@ -235,7 +235,7 @@ __counted char *aa_str_alloc(int size, gfp_t gfp)
{
struct counted_str *str;
- str = kmalloc(struct_size(str, name, size), gfp);
+ str = kmalloc_flex(*str, name, size, gfp);
if (!str)
return NULL;
diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c
index dcd066e04d2b..92ea1bc7b9e0 100644
--- a/security/apparmor/lsm.c
+++ b/security/apparmor/lsm.c
@@ -2468,7 +2468,7 @@ static int __init aa_setup_dfa_engine(void)
goto fail;
}
nullpdb->dfa = aa_get_dfa(nulldfa);
- nullpdb->perms = kcalloc(2, sizeof(struct aa_perms), GFP_KERNEL);
+ nullpdb->perms = kzalloc_objs(struct aa_perms, 2, GFP_KERNEL);
if (!nullpdb->perms)
goto fail;
nullpdb->size = 2;
diff --git a/security/apparmor/match.c b/security/apparmor/match.c
index bbeb3be68572..5ee25d4016e0 100644
--- a/security/apparmor/match.c
+++ b/security/apparmor/match.c
@@ -301,7 +301,7 @@ struct aa_dfa *aa_dfa_unpack(void *blob, size_t size, int flags)
int error = -ENOMEM;
char *data = blob;
struct table_header *table = NULL;
- struct aa_dfa *dfa = kzalloc(sizeof(struct aa_dfa), GFP_KERNEL);
+ struct aa_dfa *dfa = kzalloc_obj(struct aa_dfa, GFP_KERNEL);
if (!dfa)
goto fail;
diff --git a/security/apparmor/policy.c b/security/apparmor/policy.c
index a64cfd24cedc..9108d74c6b46 100644
--- a/security/apparmor/policy.c
+++ b/security/apparmor/policy.c
@@ -131,7 +131,7 @@ void aa_pdb_free_kref(struct kref *kref)
struct aa_policydb *aa_alloc_pdb(gfp_t gfp)
{
- struct aa_policydb *pdb = kzalloc(sizeof(struct aa_policydb), gfp);
+ struct aa_policydb *pdb = kzalloc_obj(struct aa_policydb, gfp);
if (!pdb)
return NULL;
@@ -275,7 +275,7 @@ struct aa_ruleset *aa_alloc_ruleset(gfp_t gfp)
{
struct aa_ruleset *rules;
- rules = kzalloc(sizeof(*rules), gfp);
+ rules = kzalloc_obj(*rules, gfp);
return rules;
}
@@ -349,7 +349,7 @@ struct aa_profile *aa_alloc_profile(const char *hname, struct aa_proxy *proxy,
* this adds space for a single ruleset in the rules section of the
* label
*/
- profile = kzalloc(struct_size(profile, label.rules, 1), gfp);
+ profile = kzalloc_flex(*profile, label.rules, 1, gfp);
if (!profile)
return NULL;
diff --git a/security/apparmor/policy_compat.c b/security/apparmor/policy_compat.c
index c863fc10a6f7..928dbb10cec1 100644
--- a/security/apparmor/policy_compat.c
+++ b/security/apparmor/policy_compat.c
@@ -158,7 +158,7 @@ static struct aa_perms *compute_fperms(struct aa_dfa *dfa,
state_count = dfa->tables[YYTD_ID_BASE]->td_lolen;
/* DFAs are restricted from having a state_count of less than 2 */
- table = kvcalloc(state_count * 2, sizeof(struct aa_perms), GFP_KERNEL);
+ table = kvzalloc_objs(struct aa_perms, state_count * 2, GFP_KERNEL);
if (!table)
return NULL;
*size = state_count * 2;
@@ -182,7 +182,7 @@ static struct aa_perms *compute_xmatch_perms(struct aa_dfa *xmatch,
state_count = xmatch->tables[YYTD_ID_BASE]->td_lolen;
/* DFAs are restricted from having a state_count of less than 2 */
- perms = kvcalloc(state_count, sizeof(struct aa_perms), GFP_KERNEL);
+ perms = kvzalloc_objs(struct aa_perms, state_count, GFP_KERNEL);
if (!perms)
return NULL;
*size = state_count;
@@ -257,7 +257,7 @@ static struct aa_perms *compute_perms(struct aa_dfa *dfa, u32 version,
state_count = dfa->tables[YYTD_ID_BASE]->td_lolen;
/* DFAs are restricted from having a state_count of less than 2 */
- table = kvcalloc(state_count, sizeof(struct aa_perms), GFP_KERNEL);
+ table = kvzalloc_objs(struct aa_perms, state_count, GFP_KERNEL);
if (!table)
return NULL;
*size = state_count;
diff --git a/security/apparmor/policy_ns.c b/security/apparmor/policy_ns.c
index 64783ca3b0f2..099b71957ccb 100644
--- a/security/apparmor/policy_ns.c
+++ b/security/apparmor/policy_ns.c
@@ -106,7 +106,7 @@ static struct aa_ns *alloc_ns(const char *prefix, const char *name)
{
struct aa_ns *ns;
- ns = kzalloc(sizeof(*ns), GFP_KERNEL);
+ ns = kzalloc_obj(*ns, GFP_KERNEL);
AA_DEBUG(DEBUG_POLICY, "%s(%p)\n", __func__, ns);
if (!ns)
return NULL;
diff --git a/security/apparmor/policy_unpack.c b/security/apparmor/policy_unpack.c
index dc908e1f5a88..9001c6ebc235 100644
--- a/security/apparmor/policy_unpack.c
+++ b/security/apparmor/policy_unpack.c
@@ -145,7 +145,7 @@ struct aa_loaddata *aa_loaddata_alloc(size_t size)
{
struct aa_loaddata *d;
- d = kzalloc(sizeof(*d), GFP_KERNEL);
+ d = kzalloc_obj(*d, GFP_KERNEL);
if (d == NULL)
return ERR_PTR(-ENOMEM);
d->data = kvzalloc(size, GFP_KERNEL);
@@ -528,8 +528,7 @@ static int unpack_strs_table(struct aa_ext *e, const char *name, bool multi,
* for size check here
*/
goto fail;
- table = kcalloc(size, sizeof(struct aa_str_table_ent),
- GFP_KERNEL);
+ table = kzalloc_objs(struct aa_str_table_ent, size, GFP_KERNEL);
if (!table) {
error = -ENOMEM;
goto fail;
@@ -612,8 +611,8 @@ static bool unpack_secmark(struct aa_ext *e, struct aa_ruleset *rules)
if (!aa_unpack_array(e, NULL, &size))
goto fail;
- rules->secmark = kcalloc(size, sizeof(struct aa_secmark),
- GFP_KERNEL);
+ rules->secmark = kzalloc_objs(struct aa_secmark, size,
+ GFP_KERNEL);
if (!rules->secmark)
goto fail;
@@ -810,7 +809,7 @@ static int unpack_tag_headers(struct aa_ext *e, struct aa_tags_struct *tags)
if (!aa_unpack_array(e, "hdrs", &size))
goto fail_reset;
- hdrs = kcalloc(size, sizeof(struct aa_tags_header), GFP_KERNEL);
+ hdrs = kzalloc_objs(struct aa_tags_header, size, GFP_KERNEL);
if (!hdrs) {
error = -ENOMEM;
goto fail_reset;
@@ -923,7 +922,7 @@ static ssize_t unpack_perms_table(struct aa_ext *e, struct aa_perms **perms)
goto fail_reset;
if (!aa_unpack_array(e, NULL, &size))
goto fail_reset;
- *perms = kcalloc(size, sizeof(struct aa_perms), GFP_KERNEL);
+ *perms = kzalloc_objs(struct aa_perms, size, GFP_KERNEL);
if (!*perms) {
e->pos = pos;
return -ENOMEM;
@@ -1321,7 +1320,7 @@ static struct aa_profile *unpack_profile(struct aa_ext *e, char **ns_name)
error = -EPROTO;
if (aa_unpack_nameX(e, AA_STRUCT, "data")) {
info = "out of memory";
- profile->data = kzalloc(sizeof(*profile->data), GFP_KERNEL);
+ profile->data = kzalloc_obj(*profile->data, GFP_KERNEL);
if (!profile->data) {
error = -ENOMEM;
goto fail;
@@ -1339,7 +1338,7 @@ static struct aa_profile *unpack_profile(struct aa_ext *e, char **ns_name)
}
while (aa_unpack_strdup(e, &key, NULL)) {
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data) {
kfree_sensitive(key);
error = -ENOMEM;
@@ -1584,7 +1583,7 @@ void aa_load_ent_free(struct aa_load_ent *ent)
struct aa_load_ent *aa_load_ent_alloc(void)
{
- struct aa_load_ent *ent = kzalloc(sizeof(*ent), GFP_KERNEL);
+ struct aa_load_ent *ent = kzalloc_obj(*ent, GFP_KERNEL);
if (ent)
INIT_LIST_HEAD(&ent->list);
return ent;
diff --git a/security/device_cgroup.c b/security/device_cgroup.c
index 7fec575d32d6..27610fa31b61 100644
--- a/security/device_cgroup.c
+++ b/security/device_cgroup.c
@@ -223,7 +223,7 @@ devcgroup_css_alloc(struct cgroup_subsys_state *parent_css)
{
struct dev_cgroup *dev_cgroup;
- dev_cgroup = kzalloc(sizeof(*dev_cgroup), GFP_KERNEL);
+ dev_cgroup = kzalloc_obj(*dev_cgroup, GFP_KERNEL);
if (!dev_cgroup)
return ERR_PTR(-ENOMEM);
INIT_LIST_HEAD(&dev_cgroup->exceptions);
diff --git a/security/integrity/digsig.c b/security/integrity/digsig.c
index 45c3e5dda355..aec350abad86 100644
--- a/security/integrity/digsig.c
+++ b/security/integrity/digsig.c
@@ -141,7 +141,7 @@ int __init integrity_init_keyring(const unsigned int id)
if (!IS_ENABLED(CONFIG_INTEGRITY_TRUSTED_KEYRING))
return 0;
- restriction = kzalloc(sizeof(struct key_restriction), GFP_KERNEL);
+ restriction = kzalloc_obj(struct key_restriction, GFP_KERNEL);
if (!restriction)
return -ENOMEM;
diff --git a/security/integrity/evm/evm_main.c b/security/integrity/evm/evm_main.c
index 73d500a375cb..41b053c900f2 100644
--- a/security/integrity/evm/evm_main.c
+++ b/security/integrity/evm/evm_main.c
@@ -1045,7 +1045,7 @@ int evm_inode_init_security(struct inode *inode, struct inode *dir,
"%s: xattrs terminator is not the first non-filled slot\n",
__func__);
- xattr_data = kzalloc(sizeof(*xattr_data), GFP_NOFS);
+ xattr_data = kzalloc_obj(*xattr_data, GFP_NOFS);
if (!xattr_data)
return -ENOMEM;
diff --git a/security/integrity/evm/evm_secfs.c b/security/integrity/evm/evm_secfs.c
index c26724690cec..a8893b90a0fa 100644
--- a/security/integrity/evm/evm_secfs.c
+++ b/security/integrity/evm/evm_secfs.c
@@ -199,7 +199,7 @@ static ssize_t evm_write_xattrs(struct file *file, const char __user *buf,
if (!ab && IS_ENABLED(CONFIG_AUDIT))
return -ENOMEM;
- xattr = kmalloc(sizeof(struct xattr_list), GFP_KERNEL);
+ xattr = kmalloc_obj(struct xattr_list, GFP_KERNEL);
if (!xattr) {
err = -ENOMEM;
goto out;
diff --git a/security/integrity/ima/ima_api.c b/security/integrity/ima/ima_api.c
index c6d1c7be8a3e..d15becc8c640 100644
--- a/security/integrity/ima/ima_api.c
+++ b/security/integrity/ima/ima_api.c
@@ -48,13 +48,14 @@ int ima_alloc_init_template(struct ima_event_data *event_data,
else
template_desc = ima_template_desc_current();
- *entry = kzalloc(struct_size(*entry, template_data,
- template_desc->num_fields), GFP_NOFS);
+ *entry = kzalloc_flex(**entry, template_data, template_desc->num_fields,
+ GFP_NOFS);
if (!*entry)
return -ENOMEM;
- digests = kcalloc(NR_BANKS(ima_tpm_chip) + ima_extra_slots,
- sizeof(*digests), GFP_NOFS);
+ digests = kzalloc_objs(*digests,
+ NR_BANKS(ima_tpm_chip) + ima_extra_slots,
+ GFP_NOFS);
if (!digests) {
kfree(*entry);
*entry = NULL;
diff --git a/security/integrity/ima/ima_crypto.c b/security/integrity/ima/ima_crypto.c
index 6f5696d999d0..d4af5f0e7d6c 100644
--- a/security/integrity/ima/ima_crypto.c
+++ b/security/integrity/ima/ima_crypto.c
@@ -138,8 +138,9 @@ int __init ima_init_crypto(void)
if (ima_hash_algo_idx < 0)
ima_hash_algo_idx = NR_BANKS(ima_tpm_chip) + ima_extra_slots++;
- ima_algo_array = kcalloc(NR_BANKS(ima_tpm_chip) + ima_extra_slots,
- sizeof(*ima_algo_array), GFP_KERNEL);
+ ima_algo_array = kzalloc_objs(*ima_algo_array,
+ NR_BANKS(ima_tpm_chip) + ima_extra_slots,
+ GFP_KERNEL);
if (!ima_algo_array) {
rc = -ENOMEM;
goto out;
diff --git a/security/integrity/ima/ima_modsig.c b/security/integrity/ima/ima_modsig.c
index 3265d744d5ce..daeeddae3878 100644
--- a/security/integrity/ima/ima_modsig.c
+++ b/security/integrity/ima/ima_modsig.c
@@ -65,7 +65,7 @@ int ima_read_modsig(enum ima_hooks func, const void *buf, loff_t buf_len,
buf_len -= sig_len + sizeof(*sig);
/* Allocate sig_len additional bytes to hold the raw PKCS#7 data. */
- hdr = kzalloc(struct_size(hdr, raw_pkcs7, sig_len), GFP_KERNEL);
+ hdr = kzalloc_flex(*hdr, raw_pkcs7, sig_len, GFP_KERNEL);
if (!hdr)
return -ENOMEM;
diff --git a/security/integrity/ima/ima_mok.c b/security/integrity/ima/ima_mok.c
index 95cc31525c57..c647f4fd114d 100644
--- a/security/integrity/ima/ima_mok.c
+++ b/security/integrity/ima/ima_mok.c
@@ -27,7 +27,7 @@ static __init int ima_mok_init(void)
pr_notice("Allocating IMA blacklist keyring.\n");
- restriction = kzalloc(sizeof(struct key_restriction), GFP_KERNEL);
+ restriction = kzalloc_obj(struct key_restriction, GFP_KERNEL);
if (!restriction)
panic("Can't allocate IMA blacklist restriction.");
diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c
index 8fbd8755f5bc..c99f52458cd5 100644
--- a/security/integrity/ima/ima_policy.c
+++ b/security/integrity/ima/ima_policy.c
@@ -342,7 +342,7 @@ static struct ima_rule_opt_list *ima_alloc_rule_opt_list(const substring_t *src)
return ERR_PTR(-EINVAL);
}
- opt_list = kzalloc(struct_size(opt_list, items, count), GFP_KERNEL);
+ opt_list = kzalloc_flex(*opt_list, items, count, GFP_KERNEL);
if (!opt_list) {
kfree(src_copy);
return ERR_PTR(-ENOMEM);
@@ -921,8 +921,8 @@ static int __init ima_init_arch_policy(void)
for (rules = arch_rules; *rules != NULL; rules++)
arch_entries++;
- arch_policy_entry = kcalloc(arch_entries + 1,
- sizeof(*arch_policy_entry), GFP_KERNEL);
+ arch_policy_entry = kzalloc_objs(*arch_policy_entry, arch_entries + 1,
+ GFP_KERNEL);
if (!arch_policy_entry)
return 0;
@@ -1976,7 +1976,7 @@ ssize_t ima_parse_add_rule(char *rule)
if (*p == '#' || *p == '\0')
return len;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
integrity_audit_msg(AUDIT_INTEGRITY_STATUS, NULL,
NULL, op, "-ENOMEM", -ENOMEM, audit_info);
diff --git a/security/integrity/ima/ima_queue.c b/security/integrity/ima/ima_queue.c
index 590637e81ad1..859c83ab5a2b 100644
--- a/security/integrity/ima/ima_queue.c
+++ b/security/integrity/ima/ima_queue.c
@@ -103,7 +103,7 @@ static int ima_add_digest_entry(struct ima_template_entry *entry,
struct ima_queue_entry *qe;
unsigned int key;
- qe = kmalloc(sizeof(*qe), GFP_KERNEL);
+ qe = kmalloc_obj(*qe, GFP_KERNEL);
if (qe == NULL) {
pr_err("OUT OF MEMORY ERROR creating queue entry\n");
return -ENOMEM;
@@ -269,8 +269,8 @@ int __init ima_init_digests(void)
if (!ima_tpm_chip)
return 0;
- digests = kcalloc(ima_tpm_chip->nr_allocated_banks, sizeof(*digests),
- GFP_NOFS);
+ digests = kzalloc_objs(*digests, ima_tpm_chip->nr_allocated_banks,
+ GFP_NOFS);
if (!digests)
return -ENOMEM;
diff --git a/security/integrity/ima/ima_queue_keys.c b/security/integrity/ima/ima_queue_keys.c
index 4f0aea155bf9..da29e5b8f6df 100644
--- a/security/integrity/ima/ima_queue_keys.c
+++ b/security/integrity/ima/ima_queue_keys.c
@@ -72,7 +72,7 @@ static struct ima_key_entry *ima_alloc_key_entry(struct key *keyring,
const char *audit_cause = "ENOMEM";
struct ima_key_entry *entry;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (entry) {
entry->payload = kmemdup(payload, payload_len, GFP_KERNEL);
entry->keyring_name = kstrdup(keyring->description,
diff --git a/security/integrity/ima/ima_template.c b/security/integrity/ima/ima_template.c
index 04c49f05cb74..9712eb6b4b88 100644
--- a/security/integrity/ima/ima_template.c
+++ b/security/integrity/ima/ima_template.c
@@ -245,7 +245,7 @@ int template_desc_init_fields(const char *template_fmt,
}
if (fields && num_fields) {
- *fields = kmalloc_array(i, sizeof(**fields), GFP_KERNEL);
+ *fields = kmalloc_objs(**fields, i, GFP_KERNEL);
if (*fields == NULL)
return -ENOMEM;
@@ -334,7 +334,7 @@ static struct ima_template_desc *restore_template_fmt(char *template_name)
goto out;
}
- template_desc = kzalloc(sizeof(*template_desc), GFP_KERNEL);
+ template_desc = kzalloc_obj(*template_desc, GFP_KERNEL);
if (!template_desc)
goto out;
@@ -362,13 +362,14 @@ static int ima_restore_template_data(struct ima_template_desc *template_desc,
int ret = 0;
int i;
- *entry = kzalloc(struct_size(*entry, template_data,
- template_desc->num_fields), GFP_NOFS);
+ *entry = kzalloc_flex(**entry, template_data, template_desc->num_fields,
+ GFP_NOFS);
if (!*entry)
return -ENOMEM;
- digests = kcalloc(NR_BANKS(ima_tpm_chip) + ima_extra_slots,
- sizeof(*digests), GFP_NOFS);
+ digests = kzalloc_objs(*digests,
+ NR_BANKS(ima_tpm_chip) + ima_extra_slots,
+ GFP_NOFS);
if (!digests) {
kfree(*entry);
return -ENOMEM;
diff --git a/security/ipe/digest.c b/security/ipe/digest.c
index 5006366837ba..747768ba0e52 100644
--- a/security/ipe/digest.c
+++ b/security/ipe/digest.c
@@ -29,7 +29,7 @@ struct digest_info *ipe_digest_parse(const char *valstr)
char *alg = NULL;
int rc = 0;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return ERR_PTR(-ENOMEM);
diff --git a/security/ipe/hooks.c b/security/ipe/hooks.c
index 603abdc9ce3b..b8d677f87845 100644
--- a/security/ipe/hooks.c
+++ b/security/ipe/hooks.c
@@ -287,7 +287,7 @@ int ipe_bdev_setintegrity(struct block_device *bdev, enum lsm_integrity_type typ
}
digest = value;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/security/ipe/policy.c b/security/ipe/policy.c
index 1c58c29886e8..c2ff142aed37 100644
--- a/security/ipe/policy.c
+++ b/security/ipe/policy.c
@@ -162,7 +162,7 @@ struct ipe_policy *ipe_new_policy(const char *text, size_t textlen,
struct ipe_policy *new = NULL;
int rc = 0;
- new = kzalloc(sizeof(*new), GFP_KERNEL);
+ new = kzalloc_obj(*new, GFP_KERNEL);
if (!new)
return ERR_PTR(-ENOMEM);
diff --git a/security/ipe/policy_parser.c b/security/ipe/policy_parser.c
index 7f27e39931d6..180de3e5f200 100644
--- a/security/ipe/policy_parser.c
+++ b/security/ipe/policy_parser.c
@@ -30,7 +30,7 @@ static struct ipe_parsed_policy *new_parsed_policy(void)
struct ipe_op_table *t = NULL;
size_t i = 0;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return ERR_PTR(-ENOMEM);
@@ -305,7 +305,7 @@ static int parse_property(char *t, struct ipe_rule *r)
int token;
char *dup = NULL;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return -ENOMEM;
@@ -373,7 +373,7 @@ static int parse_rule(char *line, struct ipe_parsed_policy *p)
if (IS_ERR_OR_NULL(line))
return -EBADMSG;
- r = kzalloc(sizeof(*r), GFP_KERNEL);
+ r = kzalloc_obj(*r, GFP_KERNEL);
if (!r)
return -ENOMEM;
diff --git a/security/keys/key.c b/security/keys/key.c
index 3bbdde778631..8ca0777f22d3 100644
--- a/security/keys/key.c
+++ b/security/keys/key.c
@@ -77,7 +77,7 @@ struct key_user *key_user_lookup(kuid_t uid)
spin_unlock(&key_user_lock);
user = NULL;
- candidate = kmalloc(sizeof(struct key_user), GFP_KERNEL);
+ candidate = kmalloc_obj(struct key_user, GFP_KERNEL);
if (unlikely(!candidate))
goto out;
diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c
index ab927a142f51..7d8a0de7c7c4 100644
--- a/security/keys/keyctl.c
+++ b/security/keys/keyctl.c
@@ -1796,13 +1796,13 @@ long keyctl_watch_key(key_serial_t id, int watch_queue_fd, int watch_id)
if (watch_id >= 0) {
ret = -ENOMEM;
if (!key->watchers) {
- wlist = kzalloc(sizeof(*wlist), GFP_KERNEL);
+ wlist = kzalloc_obj(*wlist, GFP_KERNEL);
if (!wlist)
goto err_wqueue;
init_watch_list(wlist, NULL);
}
- watch = kzalloc(sizeof(*watch), GFP_KERNEL);
+ watch = kzalloc_obj(*watch, GFP_KERNEL);
if (!watch)
goto err_wlist;
diff --git a/security/keys/keyring.c b/security/keys/keyring.c
index f331725d5a37..9a1685035be5 100644
--- a/security/keys/keyring.c
+++ b/security/keys/keyring.c
@@ -977,7 +977,7 @@ static struct key_restriction *keyring_restriction_alloc(
key_restrict_link_func_t check)
{
struct key_restriction *keyres =
- kzalloc(sizeof(struct key_restriction), GFP_KERNEL);
+ kzalloc_obj(struct key_restriction, GFP_KERNEL);
if (!keyres)
return ERR_PTR(-ENOMEM);
diff --git a/security/keys/request_key_auth.c b/security/keys/request_key_auth.c
index 8f33cd170e42..f0de3e9d9743 100644
--- a/security/keys/request_key_auth.c
+++ b/security/keys/request_key_auth.c
@@ -171,7 +171,7 @@ struct key *request_key_auth_new(struct key *target, const char *op,
kenter("%d,", target->serial);
/* allocate a auth record */
- rka = kzalloc(sizeof(*rka), GFP_KERNEL);
+ rka = kzalloc_obj(*rka, GFP_KERNEL);
if (!rka)
goto error;
rka->callout_info = kmemdup(callout_info, callout_len, GFP_KERNEL);
diff --git a/security/keys/trusted-keys/trusted_core.c b/security/keys/trusted-keys/trusted_core.c
index 9046123d94de..fb9ff3d18292 100644
--- a/security/keys/trusted-keys/trusted_core.c
+++ b/security/keys/trusted-keys/trusted_core.c
@@ -134,7 +134,7 @@ static struct trusted_key_payload *trusted_payload_alloc(struct key *key)
ret = key_payload_reserve(key, sizeof(*p));
if (ret < 0)
goto err;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
goto err;
diff --git a/security/keys/trusted-keys/trusted_pkwm.c b/security/keys/trusted-keys/trusted_pkwm.c
index 4f391b77a907..aab8fbc49280 100644
--- a/security/keys/trusted-keys/trusted_pkwm.c
+++ b/security/keys/trusted-keys/trusted_pkwm.c
@@ -62,10 +62,10 @@ static struct trusted_key_options *trusted_options_alloc(void)
struct trusted_key_options *options;
struct trusted_pkwm_options *pkwm;
- options = kzalloc(sizeof(*options), GFP_KERNEL);
+ options = kzalloc_obj(*options, GFP_KERNEL);
if (options) {
- pkwm = kzalloc(sizeof(*pkwm), GFP_KERNEL);
+ pkwm = kzalloc_obj(*pkwm, GFP_KERNEL);
if (!pkwm) {
kfree_sensitive(options);
diff --git a/security/keys/trusted-keys/trusted_tpm1.c b/security/keys/trusted-keys/trusted_tpm1.c
index c865c97aa1b4..ce9b26dd846e 100644
--- a/security/keys/trusted-keys/trusted_tpm1.c
+++ b/security/keys/trusted-keys/trusted_tpm1.c
@@ -440,7 +440,7 @@ static int tpm_seal(struct tpm_buf *tb, uint16_t keytype,
int i;
/* alloc some work space for all the hashes */
- td = kmalloc(sizeof *td, GFP_KERNEL);
+ td = kmalloc_obj(*td, GFP_KERNEL);
if (!td)
return -ENOMEM;
@@ -838,7 +838,7 @@ static struct trusted_key_options *trusted_options_alloc(void)
if (tpm2 < 0)
return NULL;
- options = kzalloc(sizeof *options, GFP_KERNEL);
+ options = kzalloc_obj(*options, GFP_KERNEL);
if (options) {
/* set any non-zero defaults */
options->keytype = SRK_keytype;
@@ -946,8 +946,7 @@ static int __init init_digests(void)
{
int i;
- digests = kcalloc(chip->nr_allocated_banks, sizeof(*digests),
- GFP_KERNEL);
+ digests = kzalloc_objs(*digests, chip->nr_allocated_banks, GFP_KERNEL);
if (!digests)
return -ENOMEM;
diff --git a/security/landlock/domain.c b/security/landlock/domain.c
index 79cb3bbdf4c5..29a0f9789eee 100644
--- a/security/landlock/domain.c
+++ b/security/landlock/domain.c
@@ -95,7 +95,7 @@ static struct landlock_details *get_current_details(void)
* caller.
*/
details =
- kzalloc(struct_size(details, exe_path, path_size), GFP_KERNEL);
+ kzalloc_flex(*details, exe_path, path_size, GFP_KERNEL);
if (!details)
return ERR_PTR(-ENOMEM);
diff --git a/security/landlock/object.c b/security/landlock/object.c
index 1f50612f0185..0d6e159ef8b5 100644
--- a/security/landlock/object.c
+++ b/security/landlock/object.c
@@ -25,7 +25,7 @@ landlock_create_object(const struct landlock_object_underops *const underops,
if (WARN_ON_ONCE(!underops || !underobj))
return ERR_PTR(-ENOENT);
- new_object = kzalloc(sizeof(*new_object), GFP_KERNEL_ACCOUNT);
+ new_object = kzalloc_obj(*new_object, GFP_KERNEL_ACCOUNT);
if (!new_object)
return ERR_PTR(-ENOMEM);
refcount_set(&new_object->usage, 1);
diff --git a/security/landlock/ruleset.c b/security/landlock/ruleset.c
index 419b237de635..319873586385 100644
--- a/security/landlock/ruleset.c
+++ b/security/landlock/ruleset.c
@@ -33,8 +33,8 @@ static struct landlock_ruleset *create_ruleset(const u32 num_layers)
struct landlock_ruleset *new_ruleset;
new_ruleset =
- kzalloc(struct_size(new_ruleset, access_masks, num_layers),
- GFP_KERNEL_ACCOUNT);
+ kzalloc_flex(*new_ruleset, access_masks, num_layers,
+ GFP_KERNEL_ACCOUNT);
if (!new_ruleset)
return ERR_PTR(-ENOMEM);
refcount_set(&new_ruleset->usage, 1);
@@ -123,8 +123,8 @@ create_rule(const struct landlock_id id,
} else {
new_num_layers = num_layers;
}
- new_rule = kzalloc(struct_size(new_rule, layers, new_num_layers),
- GFP_KERNEL_ACCOUNT);
+ new_rule = kzalloc_flex(*new_rule, layers, new_num_layers,
+ GFP_KERNEL_ACCOUNT);
if (!new_rule)
return ERR_PTR(-ENOMEM);
RB_CLEAR_NODE(&new_rule->node);
@@ -559,8 +559,8 @@ landlock_merge_ruleset(struct landlock_ruleset *const parent,
if (IS_ERR(new_dom))
return new_dom;
- new_dom->hierarchy =
- kzalloc(sizeof(*new_dom->hierarchy), GFP_KERNEL_ACCOUNT);
+ new_dom->hierarchy = kzalloc_obj(*new_dom->hierarchy,
+ GFP_KERNEL_ACCOUNT);
if (!new_dom->hierarchy)
return ERR_PTR(-ENOMEM);
diff --git a/security/landlock/tsync.c b/security/landlock/tsync.c
index 0d2b9c646030..de01aa899751 100644
--- a/security/landlock/tsync.c
+++ b/security/landlock/tsync.c
@@ -237,7 +237,7 @@ static int tsync_works_grow_by(struct tsync_works *s, size_t n, gfp_t flags)
s->works = works;
for (i = s->capacity; i < new_capacity; i++) {
- work = kzalloc(sizeof(*work), flags);
+ work = kzalloc_obj(*work, flags);
if (!work) {
/*
* Leave the object in a consistent state,
diff --git a/security/loadpin/loadpin.c b/security/loadpin/loadpin.c
index 6d5f3208f9ca..62b9ee7caefb 100644
--- a/security/loadpin/loadpin.c
+++ b/security/loadpin/loadpin.c
@@ -327,7 +327,7 @@ static int read_trusted_verity_root_digests(unsigned int fd)
len /= 2;
- trd = kzalloc(struct_size(trd, data, len), GFP_KERNEL);
+ trd = kzalloc_flex(*trd, data, len, GFP_KERNEL);
if (!trd) {
rc = -ENOMEM;
goto err;
diff --git a/security/safesetid/securityfs.c b/security/safesetid/securityfs.c
index ece259f75b0d..8cc2bcb07324 100644
--- a/security/safesetid/securityfs.c
+++ b/security/safesetid/securityfs.c
@@ -118,7 +118,7 @@ static int verify_ruleset(struct setid_ruleset *pol)
res = -EINVAL;
/* fix it up */
- nrule = kmalloc(sizeof(struct setid_rule), GFP_KERNEL);
+ nrule = kmalloc_obj(struct setid_rule, GFP_KERNEL);
if (!nrule)
return -ENOMEM;
if (pol->type == UID){
@@ -146,7 +146,7 @@ static ssize_t handle_policy_update(struct file *file,
if (len >= KMALLOC_MAX_SIZE)
return -EINVAL;
- pol = kmalloc(sizeof(struct setid_ruleset), GFP_KERNEL);
+ pol = kmalloc_obj(struct setid_ruleset, GFP_KERNEL);
if (!pol)
return -ENOMEM;
pol->policy_str = NULL;
@@ -175,7 +175,7 @@ static ssize_t handle_policy_update(struct file *file,
}
*end = '\0';
- rule = kmalloc(sizeof(struct setid_rule), GFP_KERNEL);
+ rule = kmalloc_obj(struct setid_rule, GFP_KERNEL);
if (!rule) {
err = -ENOMEM;
goto out_free_buf;
diff --git a/security/selinux/avc.c b/security/selinux/avc.c
index 8f77b9a732e1..584b1d6bdff1 100644
--- a/security/selinux/avc.c
+++ b/security/selinux/avc.c
@@ -794,7 +794,7 @@ int __init avc_add_callback(int (*callback)(u32 event), u32 events)
struct avc_callback_node *c;
int rc = 0;
- c = kmalloc(sizeof(*c), GFP_KERNEL);
+ c = kmalloc_obj(*c, GFP_KERNEL);
if (!c) {
rc = -ENOMEM;
goto out;
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index feda34b18d83..58ce110272ef 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -1030,7 +1030,7 @@ static int selinux_add_opt(int token, const char *s, void **mnt_opts)
}
if (!opts) {
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return -ENOMEM;
*mnt_opts = opts;
@@ -2822,7 +2822,7 @@ static int selinux_fs_context_submount(struct fs_context *fc,
if (!(sbsec->flags & (FSCONTEXT_MNT|CONTEXT_MNT|DEFCONTEXT_MNT)))
return 0;
- opts = kzalloc(sizeof(*opts), GFP_KERNEL);
+ opts = kzalloc_obj(*opts, GFP_KERNEL);
if (!opts)
return -ENOMEM;
diff --git a/security/selinux/ibpkey.c b/security/selinux/ibpkey.c
index ea1d9b2c7d2b..93a5637fbcd8 100644
--- a/security/selinux/ibpkey.c
+++ b/security/selinux/ibpkey.c
@@ -147,7 +147,7 @@ static int sel_ib_pkey_sid_slow(u64 subnet_prefix, u16 pkey_num, u32 *sid)
if (ret)
goto out;
- new = kmalloc(sizeof(*new), GFP_ATOMIC);
+ new = kmalloc_obj(*new, GFP_ATOMIC);
if (!new) {
/* If this memory allocation fails still return 0. The SID
* is valid, it just won't be added to the cache.
diff --git a/security/selinux/netif.c b/security/selinux/netif.c
index e24b2cba28ea..fa6d24a37c39 100644
--- a/security/selinux/netif.c
+++ b/security/selinux/netif.c
@@ -161,7 +161,7 @@ static int sel_netif_sid_slow(struct net *ns, int ifindex, u32 *sid)
/* If this memory allocation fails still return 0. The SID
* is valid, it just won't be added to the cache.
*/
- new = kmalloc(sizeof(*new), GFP_ATOMIC);
+ new = kmalloc_obj(*new, GFP_ATOMIC);
if (new) {
new->nsec.ns = ns;
new->nsec.ifindex = ifindex;
diff --git a/security/selinux/netnode.c b/security/selinux/netnode.c
index 9b3da5ce8d39..adb93003b8c4 100644
--- a/security/selinux/netnode.c
+++ b/security/selinux/netnode.c
@@ -205,7 +205,7 @@ static int sel_netnode_sid_slow(const void *addr, u16 family, u32 *sid)
/* If this memory allocation fails still return 0. The SID
* is valid, it just won't be added to the cache.
*/
- new = kmalloc(sizeof(*new), GFP_ATOMIC);
+ new = kmalloc_obj(*new, GFP_ATOMIC);
switch (family) {
case PF_INET:
ret = security_node_sid(PF_INET,
diff --git a/security/selinux/netport.c b/security/selinux/netport.c
index 9e62f7285e81..006a6ec71319 100644
--- a/security/selinux/netport.c
+++ b/security/selinux/netport.c
@@ -150,7 +150,7 @@ static int sel_netport_sid_slow(u8 protocol, u16 pnum, u32 *sid)
/* If this memory allocation fails still return 0. The SID
* is valid, it just won't be added to the cache.
*/
- new = kmalloc(sizeof(*new), GFP_ATOMIC);
+ new = kmalloc_obj(*new, GFP_ATOMIC);
if (new) {
new->psec.port = pnum;
new->psec.protocol = protocol;
diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c
index 4d58c7ad1a23..010499520d38 100644
--- a/security/selinux/selinuxfs.c
+++ b/security/selinux/selinuxfs.c
@@ -85,7 +85,7 @@ static int selinux_fs_info_create(struct super_block *sb)
{
struct selinux_fs_info *fsi;
- fsi = kzalloc(sizeof(*fsi), GFP_KERNEL);
+ fsi = kzalloc_obj(*fsi, GFP_KERNEL);
if (!fsi)
return -ENOMEM;
@@ -380,7 +380,7 @@ static int sel_open_policy(struct inode *inode, struct file *filp)
goto err;
rc = -ENOMEM;
- plm = kzalloc(sizeof(*plm), GFP_KERNEL);
+ plm = kzalloc_obj(*plm, GFP_KERNEL);
if (!plm)
goto err;
diff --git a/security/selinux/ss/conditional.c b/security/selinux/ss/conditional.c
index 1bebfcb9c6a1..b238fa9756cf 100644
--- a/security/selinux/ss/conditional.c
+++ b/security/selinux/ss/conditional.c
@@ -165,8 +165,8 @@ void cond_policydb_destroy(struct policydb *p)
int cond_init_bool_indexes(struct policydb *p)
{
kfree(p->bool_val_to_struct);
- p->bool_val_to_struct = kmalloc_array(
- p->p_bools.nprim, sizeof(*p->bool_val_to_struct), GFP_KERNEL);
+ p->bool_val_to_struct = kmalloc_objs(*p->bool_val_to_struct,
+ p->p_bools.nprim, GFP_KERNEL);
if (!p->bool_val_to_struct)
return -ENOMEM;
@@ -214,7 +214,7 @@ int cond_read_bool(struct policydb *p, struct symtab *s, struct policy_file *fp)
u32 len;
int rc;
- booldatum = kzalloc(sizeof(*booldatum), GFP_KERNEL);
+ booldatum = kzalloc_obj(*booldatum, GFP_KERNEL);
if (!booldatum)
return -ENOMEM;
@@ -334,7 +334,7 @@ static int cond_read_av_list(struct policydb *p, struct policy_file *fp,
if (len == 0)
return 0;
- list->nodes = kcalloc(len, sizeof(*list->nodes), GFP_KERNEL);
+ list->nodes = kzalloc_objs(*list->nodes, len, GFP_KERNEL);
if (!list->nodes)
return -ENOMEM;
@@ -383,7 +383,7 @@ static int cond_read_node(struct policydb *p, struct cond_node *node, struct pol
/* expr */
len = le32_to_cpu(buf[1]);
- node->expr.nodes = kcalloc(len, sizeof(*node->expr.nodes), GFP_KERNEL);
+ node->expr.nodes = kzalloc_objs(*node->expr.nodes, len, GFP_KERNEL);
if (!node->expr.nodes)
return -ENOMEM;
@@ -421,7 +421,7 @@ int cond_read_list(struct policydb *p, struct policy_file *fp)
len = le32_to_cpu(buf[0]);
- p->cond_list = kcalloc(len, sizeof(*p->cond_list), GFP_KERNEL);
+ p->cond_list = kzalloc_objs(*p->cond_list, len, GFP_KERNEL);
if (!p->cond_list)
return -ENOMEM;
@@ -605,7 +605,7 @@ static int cond_dup_av_list(struct cond_av_list *new,
memset(new, 0, sizeof(*new));
- new->nodes = kcalloc(orig->len, sizeof(*new->nodes), GFP_KERNEL);
+ new->nodes = kzalloc_objs(*new->nodes, orig->len, GFP_KERNEL);
if (!new->nodes)
return -ENOMEM;
@@ -631,8 +631,8 @@ static int duplicate_policydb_cond_list(struct policydb *newp,
return rc;
newp->cond_list_len = 0;
- newp->cond_list = kcalloc(origp->cond_list_len,
- sizeof(*newp->cond_list), GFP_KERNEL);
+ newp->cond_list = kzalloc_objs(*newp->cond_list, origp->cond_list_len,
+ GFP_KERNEL);
if (!newp->cond_list)
goto error;
@@ -710,9 +710,8 @@ static int duplicate_policydb_bools(struct policydb *newdb,
struct cond_bool_datum **cond_bool_array;
int rc;
- cond_bool_array = kmalloc_array(orig->p_bools.nprim,
- sizeof(*orig->bool_val_to_struct),
- GFP_KERNEL);
+ cond_bool_array = kmalloc_objs(*orig->bool_val_to_struct,
+ orig->p_bools.nprim, GFP_KERNEL);
if (!cond_bool_array)
return -ENOMEM;
diff --git a/security/selinux/ss/hashtab.c b/security/selinux/ss/hashtab.c
index 1382eb3bfde1..1eb542725c94 100644
--- a/security/selinux/ss/hashtab.c
+++ b/security/selinux/ss/hashtab.c
@@ -40,8 +40,8 @@ int hashtab_init(struct hashtab *h, u32 nel_hint)
h->htable = NULL;
if (size) {
- h->htable = kcalloc(size, sizeof(*h->htable),
- GFP_KERNEL | __GFP_NOWARN);
+ h->htable = kzalloc_objs(*h->htable, size,
+ GFP_KERNEL | __GFP_NOWARN);
if (!h->htable)
return -ENOMEM;
h->size = size;
@@ -149,7 +149,7 @@ int hashtab_duplicate(struct hashtab *new, const struct hashtab *orig,
memset(new, 0, sizeof(*new));
- new->htable = kcalloc(orig->size, sizeof(*new->htable), GFP_KERNEL);
+ new->htable = kzalloc_objs(*new->htable, orig->size, GFP_KERNEL);
if (!new->htable)
return -ENOMEM;
diff --git a/security/selinux/ss/policydb.c b/security/selinux/ss/policydb.c
index 91df3db6a88c..a96c671d0d51 100644
--- a/security/selinux/ss/policydb.c
+++ b/security/selinux/ss/policydb.c
@@ -390,7 +390,7 @@ static int roles_init(struct policydb *p)
int rc;
struct role_datum *role;
- role = kzalloc(sizeof(*role), GFP_KERNEL);
+ role = kzalloc_obj(*role, GFP_KERNEL);
if (!role)
return -ENOMEM;
@@ -738,24 +738,23 @@ static int policydb_index(struct policydb *p)
avtab_hash_eval(&p->te_avtab, "rules");
symtab_hash_eval(p->symtab);
- p->class_val_to_struct = kcalloc(p->p_classes.nprim,
- sizeof(*p->class_val_to_struct),
- GFP_KERNEL);
+ p->class_val_to_struct = kzalloc_objs(*p->class_val_to_struct,
+ p->p_classes.nprim, GFP_KERNEL);
if (!p->class_val_to_struct)
return -ENOMEM;
- p->role_val_to_struct = kcalloc(
- p->p_roles.nprim, sizeof(*p->role_val_to_struct), GFP_KERNEL);
+ p->role_val_to_struct = kzalloc_objs(*p->role_val_to_struct,
+ p->p_roles.nprim, GFP_KERNEL);
if (!p->role_val_to_struct)
return -ENOMEM;
- p->user_val_to_struct = kcalloc(
- p->p_users.nprim, sizeof(*p->user_val_to_struct), GFP_KERNEL);
+ p->user_val_to_struct = kzalloc_objs(*p->user_val_to_struct,
+ p->p_users.nprim, GFP_KERNEL);
if (!p->user_val_to_struct)
return -ENOMEM;
- p->type_val_to_struct = kvcalloc(
- p->p_types.nprim, sizeof(*p->type_val_to_struct), GFP_KERNEL);
+ p->type_val_to_struct = kvzalloc_objs(*p->type_val_to_struct,
+ p->p_types.nprim, GFP_KERNEL);
if (!p->type_val_to_struct)
return -ENOMEM;
@@ -1131,7 +1130,7 @@ static int perm_read(struct policydb *p, struct symtab *s, struct policy_file *f
__le32 buf[2];
u32 len;
- perdatum = kzalloc(sizeof(*perdatum), GFP_KERNEL);
+ perdatum = kzalloc_obj(*perdatum, GFP_KERNEL);
if (!perdatum)
return -ENOMEM;
@@ -1164,7 +1163,7 @@ static int common_read(struct policydb *p, struct symtab *s, struct policy_file
u32 i, len, nel;
int rc;
- comdatum = kzalloc(sizeof(*comdatum), GFP_KERNEL);
+ comdatum = kzalloc_obj(*comdatum, GFP_KERNEL);
if (!comdatum)
return -ENOMEM;
@@ -1237,7 +1236,7 @@ static int read_cons_helper(struct policydb *p, struct constraint_node **nodep,
lc = NULL;
for (i = 0; i < ncons; i++) {
- c = kzalloc(sizeof(*c), GFP_KERNEL);
+ c = kzalloc_obj(*c, GFP_KERNEL);
if (!c)
return -ENOMEM;
@@ -1254,7 +1253,7 @@ static int read_cons_helper(struct policydb *p, struct constraint_node **nodep,
le = NULL;
depth = -1;
for (j = 0; j < nexpr; j++) {
- e = kzalloc(sizeof(*e), GFP_KERNEL);
+ e = kzalloc_obj(*e, GFP_KERNEL);
if (!e)
return -ENOMEM;
@@ -1297,9 +1296,8 @@ static int read_cons_helper(struct policydb *p, struct constraint_node **nodep,
return rc;
if (p->policyvers >=
POLICYDB_VERSION_CONSTRAINT_NAMES) {
- e->type_names =
- kzalloc(sizeof(*e->type_names),
- GFP_KERNEL);
+ e->type_names = kzalloc_obj(*e->type_names,
+ GFP_KERNEL);
if (!e->type_names)
return -ENOMEM;
type_set_init(e->type_names);
@@ -1329,7 +1327,7 @@ static int class_read(struct policydb *p, struct symtab *s, struct policy_file *
u32 i, len, len2, ncons, nel;
int rc;
- cladatum = kzalloc(sizeof(*cladatum), GFP_KERNEL);
+ cladatum = kzalloc_obj(*cladatum, GFP_KERNEL);
if (!cladatum)
return -ENOMEM;
@@ -1427,7 +1425,7 @@ static int role_read(struct policydb *p, struct symtab *s, struct policy_file *f
__le32 buf[3];
u32 len;
- role = kzalloc(sizeof(*role), GFP_KERNEL);
+ role = kzalloc_obj(*role, GFP_KERNEL);
if (!role)
return -ENOMEM;
@@ -1484,7 +1482,7 @@ static int type_read(struct policydb *p, struct symtab *s, struct policy_file *f
__le32 buf[4];
u32 len;
- typdatum = kzalloc(sizeof(*typdatum), GFP_KERNEL);
+ typdatum = kzalloc_obj(*typdatum, GFP_KERNEL);
if (!typdatum)
return -ENOMEM;
@@ -1558,7 +1556,7 @@ static int user_read(struct policydb *p, struct symtab *s, struct policy_file *f
__le32 buf[3];
u32 len;
- usrdatum = kzalloc(sizeof(*usrdatum), GFP_KERNEL);
+ usrdatum = kzalloc_obj(*usrdatum, GFP_KERNEL);
if (!usrdatum)
return -ENOMEM;
@@ -1608,7 +1606,7 @@ static int sens_read(struct policydb *p, struct symtab *s, struct policy_file *f
__le32 buf[2];
u32 len;
- levdatum = kzalloc(sizeof(*levdatum), GFP_KERNEL);
+ levdatum = kzalloc_obj(*levdatum, GFP_KERNEL);
if (!levdatum)
return -ENOMEM;
@@ -1644,7 +1642,7 @@ static int cat_read(struct policydb *p, struct symtab *s, struct policy_file *fp
__le32 buf[3];
u32 len;
- catdatum = kzalloc(sizeof(*catdatum), GFP_KERNEL);
+ catdatum = kzalloc_obj(*catdatum, GFP_KERNEL);
if (!catdatum)
return -ENOMEM;
@@ -1864,7 +1862,7 @@ static int range_read(struct policydb *p, struct policy_file *fp)
for (i = 0; i < nel; i++) {
rc = -ENOMEM;
- rt = kzalloc(sizeof(*rt), GFP_KERNEL);
+ rt = kzalloc_obj(*rt, GFP_KERNEL);
if (!rt)
goto out;
@@ -1889,7 +1887,7 @@ static int range_read(struct policydb *p, struct policy_file *fp)
goto out;
rc = -ENOMEM;
- r = kzalloc(sizeof(*r), GFP_KERNEL);
+ r = kzalloc_obj(*r, GFP_KERNEL);
if (!r)
goto out;
@@ -1965,7 +1963,7 @@ static int filename_trans_read_helper_compat(struct policydb *p, struct policy_f
}
if (!datum) {
rc = -ENOMEM;
- datum = kmalloc(sizeof(*datum), GFP_KERNEL);
+ datum = kmalloc_obj(*datum, GFP_KERNEL);
if (!datum)
goto out;
@@ -2040,7 +2038,7 @@ static int filename_trans_read_helper(struct policydb *p, struct policy_file *fp
dst = &first;
for (i = 0; i < ndatum; i++) {
rc = -ENOMEM;
- datum = kmalloc(sizeof(*datum), GFP_KERNEL);
+ datum = kmalloc_obj(*datum, GFP_KERNEL);
if (!datum)
goto out;
@@ -2062,7 +2060,7 @@ static int filename_trans_read_helper(struct policydb *p, struct policy_file *fp
}
rc = -ENOMEM;
- ft = kmalloc(sizeof(*ft), GFP_KERNEL);
+ ft = kmalloc_obj(*ft, GFP_KERNEL);
if (!ft)
goto out;
@@ -2155,7 +2153,7 @@ static int genfs_read(struct policydb *p, struct policy_file *fp)
len = le32_to_cpu(buf[0]);
rc = -ENOMEM;
- newgenfs = kzalloc(sizeof(*newgenfs), GFP_KERNEL);
+ newgenfs = kzalloc_obj(*newgenfs, GFP_KERNEL);
if (!newgenfs)
goto out;
@@ -2194,7 +2192,7 @@ static int genfs_read(struct policydb *p, struct policy_file *fp)
len = le32_to_cpu(buf[0]);
rc = -ENOMEM;
- newc = kzalloc(sizeof(*newc), GFP_KERNEL);
+ newc = kzalloc_obj(*newc, GFP_KERNEL);
if (!newc)
goto out;
@@ -2266,7 +2264,7 @@ static int ocontext_read(struct policydb *p,
l = NULL;
for (j = 0; j < nel; j++) {
rc = -ENOMEM;
- c = kzalloc(sizeof(*c), GFP_KERNEL);
+ c = kzalloc_obj(*c, GFP_KERNEL);
if (!c)
goto out;
if (l)
@@ -2623,12 +2621,12 @@ int policydb_read(struct policydb *p, struct policy_file *fp)
goto bad;
for (i = 0; i < nel; i++) {
rc = -ENOMEM;
- rtk = kmalloc(sizeof(*rtk), GFP_KERNEL);
+ rtk = kmalloc_obj(*rtk, GFP_KERNEL);
if (!rtk)
goto bad;
rc = -ENOMEM;
- rtd = kmalloc(sizeof(*rtd), GFP_KERNEL);
+ rtd = kmalloc_obj(*rtd, GFP_KERNEL);
if (!rtd)
goto bad;
@@ -2671,7 +2669,7 @@ int policydb_read(struct policydb *p, struct policy_file *fp)
lra = NULL;
for (i = 0; i < nel; i++) {
rc = -ENOMEM;
- ra = kzalloc(sizeof(*ra), GFP_KERNEL);
+ ra = kzalloc_obj(*ra, GFP_KERNEL);
if (!ra)
goto bad;
if (lra)
@@ -2726,8 +2724,8 @@ int policydb_read(struct policydb *p, struct policy_file *fp)
goto bad;
rc = -ENOMEM;
- p->type_attr_map_array = kvcalloc(
- p->p_types.nprim, sizeof(*p->type_attr_map_array), GFP_KERNEL);
+ p->type_attr_map_array = kvzalloc_objs(*p->type_attr_map_array,
+ p->p_types.nprim, GFP_KERNEL);
if (!p->type_attr_map_array)
goto bad;
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c
index 13fc712d5923..6f20e941c059 100644
--- a/security/selinux/ss/services.c
+++ b/security/selinux/ss/services.c
@@ -108,7 +108,7 @@ static int selinux_set_mapping(struct policydb *pol,
i++;
/* Allocate space for the class records, plus one for class zero */
- out_map->mapping = kcalloc(++i, sizeof(*out_map->mapping), GFP_ATOMIC);
+ out_map->mapping = kzalloc_objs(*out_map->mapping, ++i, GFP_ATOMIC);
if (!out_map->mapping)
return -ENOMEM;
@@ -2312,11 +2312,11 @@ int security_load_policy(void *data, size_t len,
int rc = 0;
struct policy_file file = { data, len }, *fp = &file;
- newpolicy = kzalloc(sizeof(*newpolicy), GFP_KERNEL);
+ newpolicy = kzalloc_obj(*newpolicy, GFP_KERNEL);
if (!newpolicy)
return -ENOMEM;
- newpolicy->sidtab = kzalloc(sizeof(*newpolicy->sidtab), GFP_KERNEL);
+ newpolicy->sidtab = kzalloc_obj(*newpolicy->sidtab, GFP_KERNEL);
if (!newpolicy->sidtab) {
rc = -ENOMEM;
goto err_policy;
@@ -2360,7 +2360,7 @@ int security_load_policy(void *data, size_t len,
* in the new SID table.
*/
- convert_data = kmalloc(sizeof(*convert_data), GFP_KERNEL);
+ convert_data = kmalloc_obj(*convert_data, GFP_KERNEL);
if (!convert_data) {
rc = -ENOMEM;
goto err_free_isids;
@@ -3065,7 +3065,7 @@ int security_get_bools(struct selinux_policy *policy,
goto err;
rc = -ENOMEM;
- *values = kcalloc(*len, sizeof(int), GFP_ATOMIC);
+ *values = kzalloc_objs(int, *len, GFP_ATOMIC);
if (!*values)
goto err;
@@ -3629,7 +3629,7 @@ int selinux_audit_rule_init(u32 field, u32 op, char *rulestr, void **vrule,
return -EINVAL;
}
- tmprule = kzalloc(sizeof(struct selinux_audit_rule), gfp);
+ tmprule = kzalloc_obj(struct selinux_audit_rule, gfp);
if (!tmprule)
return -ENOMEM;
context_init(&tmprule->au_ctxt);
@@ -3844,7 +3844,7 @@ static void security_netlbl_cache_add(struct netlbl_lsm_secattr *secattr,
{
u32 *sid_cache;
- sid_cache = kmalloc(sizeof(*sid_cache), GFP_ATOMIC);
+ sid_cache = kmalloc_obj(*sid_cache, GFP_ATOMIC);
if (sid_cache == NULL)
return;
secattr->cache = netlbl_secattr_cache_alloc(GFP_ATOMIC);
diff --git a/security/selinux/ss/sidtab.c b/security/selinux/ss/sidtab.c
index 59f8c09158ef..118af0aa2767 100644
--- a/security/selinux/ss/sidtab.c
+++ b/security/selinux/ss/sidtab.c
@@ -580,7 +580,7 @@ void sidtab_sid2str_put(struct sidtab *s, struct sidtab_entry *entry,
goto out_unlock;
}
- cache = kmalloc(struct_size(cache, str, str_len), GFP_ATOMIC);
+ cache = kmalloc_flex(*cache, str, str_len, GFP_ATOMIC);
if (!cache)
goto out_unlock;
diff --git a/security/selinux/xfrm.c b/security/selinux/xfrm.c
index 61d56b0c2be1..8e00b3306574 100644
--- a/security/selinux/xfrm.c
+++ b/security/selinux/xfrm.c
@@ -88,7 +88,7 @@ static int selinux_xfrm_alloc_user(struct xfrm_sec_ctx **ctxp,
if (str_len >= PAGE_SIZE)
return -ENOMEM;
- ctx = kmalloc(struct_size(ctx, ctx_str, str_len + 1), gfp);
+ ctx = kmalloc_flex(*ctx, ctx_str, str_len + 1, gfp);
if (!ctx)
return -ENOMEM;
@@ -354,7 +354,7 @@ int selinux_xfrm_state_alloc_acquire(struct xfrm_state *x,
if (rc)
return rc;
- ctx = kmalloc(struct_size(ctx, ctx_str, str_len), GFP_ATOMIC);
+ ctx = kmalloc_flex(*ctx, ctx_str, str_len, GFP_ATOMIC);
if (!ctx) {
rc = -ENOMEM;
goto out;
diff --git a/security/smack/smack_access.c b/security/smack/smack_access.c
index 86ad910d5631..350b88d582b3 100644
--- a/security/smack/smack_access.c
+++ b/security/smack/smack_access.c
@@ -592,7 +592,7 @@ smk_import_allocated_label(char *smack, gfp_t gfp)
if (skp != NULL)
goto freeout;
- skp = kzalloc(sizeof(*skp), gfp);
+ skp = kzalloc_obj(*skp, gfp);
if (skp == NULL) {
skp = ERR_PTR(-ENOMEM);
goto freeout;
diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
index a0bd4919a9d9..e2add0c8c739 100644
--- a/security/smack/smack_lsm.c
+++ b/security/smack/smack_lsm.c
@@ -372,7 +372,7 @@ static int smk_copy_relabel(struct list_head *nhead, struct list_head *ohead,
struct smack_known_list_elem *oklep;
list_for_each_entry(oklep, ohead, list) {
- nklep = kzalloc(sizeof(struct smack_known_list_elem), gfp);
+ nklep = kzalloc_obj(struct smack_known_list_elem, gfp);
if (nklep == NULL) {
smk_destroy_label_list(nhead);
return -ENOMEM;
@@ -562,7 +562,7 @@ static int smack_add_opt(int token, const char *s, void **mnt_opts)
struct smack_known *skp;
if (!opts) {
- opts = kzalloc(sizeof(struct smack_mnt_opts), GFP_KERNEL);
+ opts = kzalloc_obj(struct smack_mnt_opts, GFP_KERNEL);
if (!opts)
return -ENOMEM;
*mnt_opts = opts;
@@ -622,7 +622,7 @@ static int smack_fs_context_submount(struct fs_context *fc,
struct smack_mnt_opts *ctx;
struct inode_smack *isp;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
fc->security = ctx;
@@ -673,7 +673,7 @@ static int smack_fs_context_dup(struct fs_context *fc,
if (!src)
return 0;
- fc->security = kzalloc(sizeof(struct smack_mnt_opts), GFP_KERNEL);
+ fc->security = kzalloc_obj(struct smack_mnt_opts, GFP_KERNEL);
if (!fc->security)
return -ENOMEM;
@@ -2817,7 +2817,7 @@ static void smk_ipv6_port_label(struct socket *sock, struct sockaddr *address)
/*
* A new port entry is required.
*/
- spp = kzalloc(sizeof(*spp), GFP_KERNEL);
+ spp = kzalloc_obj(*spp, GFP_KERNEL);
if (spp == NULL)
return;
diff --git a/security/smack/smackfs.c b/security/smack/smackfs.c
index 8919e330d2f6..35b98f11e32d 100644
--- a/security/smack/smackfs.c
+++ b/security/smack/smackfs.c
@@ -682,7 +682,7 @@ smk_cipso_doi(u32 ndoi, gfp_t gfp_flags)
smk_netlabel_audit_set(&nai);
- doip = kmalloc(sizeof(struct cipso_v4_doi), gfp_flags);
+ doip = kmalloc_obj(struct cipso_v4_doi, gfp_flags);
if (!doip) {
rc = -ENOMEM;
goto clr_doi_lock;
@@ -1249,7 +1249,7 @@ static ssize_t smk_write_net4addr(struct file *file, const char __user *buf,
smk_netlabel_audit_set(&audit_info);
if (found == 0) {
- snp = kzalloc(sizeof(*snp), GFP_KERNEL);
+ snp = kzalloc_obj(*snp, GFP_KERNEL);
if (snp == NULL)
rc = -ENOMEM;
else {
@@ -1526,7 +1526,7 @@ static ssize_t smk_write_net6addr(struct file *file, const char __user *buf,
break;
}
if (found == 0) {
- snp = kzalloc(sizeof(*snp), GFP_KERNEL);
+ snp = kzalloc_obj(*snp, GFP_KERNEL);
if (snp == NULL)
rc = -ENOMEM;
else {
@@ -1970,7 +1970,7 @@ static int smk_parse_label_list(char *data, struct list_head *list)
if (IS_ERR(skp))
return PTR_ERR(skp);
- sklep = kzalloc(sizeof(*sklep), GFP_KERNEL);
+ sklep = kzalloc_obj(*sklep, GFP_KERNEL);
if (sklep == NULL)
return -ENOMEM;
diff --git a/security/tomoyo/audit.c b/security/tomoyo/audit.c
index 610c1536cf70..bfacb3f2e2ed 100644
--- a/security/tomoyo/audit.c
+++ b/security/tomoyo/audit.c
@@ -376,7 +376,7 @@ void tomoyo_write_log2(struct tomoyo_request_info *r, int len, const char *fmt,
buf = tomoyo_init_log(r, len, fmt, args);
if (!buf)
goto out;
- entry = kzalloc(sizeof(*entry), GFP_NOFS);
+ entry = kzalloc_obj(*entry, GFP_NOFS);
if (!entry) {
kfree(buf);
goto out;
diff --git a/security/tomoyo/common.c b/security/tomoyo/common.c
index 7e1f825d903b..fdaeaff01fc1 100644
--- a/security/tomoyo/common.c
+++ b/security/tomoyo/common.c
@@ -493,7 +493,7 @@ static struct tomoyo_profile *tomoyo_assign_profile
ptr = ns->profile_ptr[profile];
if (ptr)
return ptr;
- entry = kzalloc(sizeof(*entry), GFP_NOFS | __GFP_NOWARN);
+ entry = kzalloc_obj(*entry, GFP_NOFS | __GFP_NOWARN);
if (mutex_lock_interruptible(&tomoyo_policy_lock))
goto out;
ptr = ns->profile_ptr[profile];
@@ -2553,7 +2553,7 @@ static int tomoyo_write_stat(struct tomoyo_io_buffer *head)
*/
int tomoyo_open_control(const u8 type, struct file *file)
{
- struct tomoyo_io_buffer *head = kzalloc(sizeof(*head), GFP_NOFS);
+ struct tomoyo_io_buffer *head = kzalloc_obj(*head, GFP_NOFS);
if (!head)
return -ENOMEM;
diff --git a/security/tomoyo/domain.c b/security/tomoyo/domain.c
index 0612eac7f2f2..eeaad421f15b 100644
--- a/security/tomoyo/domain.c
+++ b/security/tomoyo/domain.c
@@ -708,7 +708,7 @@ int tomoyo_find_next_domain(struct linux_binprm *bprm)
bool reject_on_transition_failure = false;
const struct tomoyo_path_info *candidate;
struct tomoyo_path_info exename;
- struct tomoyo_execve *ee = kzalloc(sizeof(*ee), GFP_NOFS);
+ struct tomoyo_execve *ee = kzalloc_obj(*ee, GFP_NOFS);
if (!ee)
return -ENOMEM;
diff --git a/security/yama/yama_lsm.c b/security/yama/yama_lsm.c
index 38b21ee0c560..57fd421f8c31 100644
--- a/security/yama/yama_lsm.c
+++ b/security/yama/yama_lsm.c
@@ -89,7 +89,7 @@ static void report_access(const char *access, struct task_struct *target,
return;
}
- info = kmalloc(sizeof(*info), GFP_ATOMIC);
+ info = kmalloc_obj(*info, GFP_ATOMIC);
if (!info)
return;
init_task_work(&info->work, __report_access);
@@ -143,7 +143,7 @@ static int yama_ptracer_add(struct task_struct *tracer,
{
struct ptrace_relation *relation, *added;
- added = kmalloc(sizeof(*added), GFP_KERNEL);
+ added = kmalloc_obj(*added, GFP_KERNEL);
if (!added)
return -ENOMEM;
diff --git a/sound/ac97/bus.c b/sound/ac97/bus.c
index bb9b795e0226..0dda1f4d5cbd 100644
--- a/sound/ac97/bus.c
+++ b/sound/ac97/bus.c
@@ -104,7 +104,7 @@ static int ac97_codec_add(struct ac97_controller *ac97_ctrl, int idx,
struct ac97_codec_device *codec;
int ret;
- codec = kzalloc(sizeof(*codec), GFP_KERNEL);
+ codec = kzalloc_obj(*codec, GFP_KERNEL);
if (!codec)
return -ENOMEM;
ac97_ctrl->codecs[idx] = codec;
@@ -351,7 +351,7 @@ struct ac97_controller *snd_ac97_controller_register(
struct ac97_controller *ac97_ctrl;
int ret, i;
- ac97_ctrl = kzalloc(sizeof(*ac97_ctrl), GFP_KERNEL);
+ ac97_ctrl = kzalloc_obj(*ac97_ctrl, GFP_KERNEL);
if (!ac97_ctrl)
return ERR_PTR(-ENOMEM);
diff --git a/sound/ac97/snd_ac97_compat.c b/sound/ac97/snd_ac97_compat.c
index d2479bba75bf..e6c43556c8f6 100644
--- a/sound/ac97/snd_ac97_compat.c
+++ b/sound/ac97/snd_ac97_compat.c
@@ -69,7 +69,7 @@ struct snd_ac97 *snd_ac97_compat_alloc(struct ac97_codec_device *adev)
struct snd_ac97 *ac97;
int ret;
- ac97 = kzalloc(sizeof(struct snd_ac97), GFP_KERNEL);
+ ac97 = kzalloc_obj(struct snd_ac97, GFP_KERNEL);
if (ac97 == NULL)
return ERR_PTR(-ENOMEM);
diff --git a/sound/aoa/codecs/onyx.c b/sound/aoa/codecs/onyx.c
index 4cf959017c9d..bce8b35c5c27 100644
--- a/sound/aoa/codecs/onyx.c
+++ b/sound/aoa/codecs/onyx.c
@@ -855,7 +855,8 @@ static int onyx_init_codec(struct aoa_codec *codec)
/* if no inputs are present... */
if ((onyx->codec.connected & 0xC) == 0) {
if (!onyx->codec_info)
- onyx->codec_info = kmalloc(sizeof(struct codec_info), GFP_KERNEL);
+ onyx->codec_info = kmalloc_obj(struct codec_info,
+ GFP_KERNEL);
if (!onyx->codec_info)
return -ENOMEM;
ci = onyx->codec_info;
@@ -866,7 +867,8 @@ static int onyx_init_codec(struct aoa_codec *codec)
/* if no outputs are present... */
if ((onyx->codec.connected & 3) == 0) {
if (!onyx->codec_info)
- onyx->codec_info = kmalloc(sizeof(struct codec_info), GFP_KERNEL);
+ onyx->codec_info = kmalloc_obj(struct codec_info,
+ GFP_KERNEL);
if (!onyx->codec_info)
return -ENOMEM;
ci = onyx->codec_info;
@@ -957,7 +959,7 @@ static int onyx_i2c_probe(struct i2c_client *client)
struct onyx *onyx;
u8 dummy;
- onyx = kzalloc(sizeof(struct onyx), GFP_KERNEL);
+ onyx = kzalloc_obj(struct onyx, GFP_KERNEL);
if (!onyx)
return -ENOMEM;
diff --git a/sound/aoa/codecs/tas.c b/sound/aoa/codecs/tas.c
index 7085e0b93e29..9c9b35cb5b6a 100644
--- a/sound/aoa/codecs/tas.c
+++ b/sound/aoa/codecs/tas.c
@@ -845,7 +845,7 @@ static int tas_i2c_probe(struct i2c_client *client)
struct device_node *node = client->dev.of_node;
struct tas *tas;
- tas = kzalloc(sizeof(struct tas), GFP_KERNEL);
+ tas = kzalloc_obj(struct tas, GFP_KERNEL);
if (!tas)
return -ENOMEM;
diff --git a/sound/aoa/codecs/toonie.c b/sound/aoa/codecs/toonie.c
index b59967c49e0a..19653cf19292 100644
--- a/sound/aoa/codecs/toonie.c
+++ b/sound/aoa/codecs/toonie.c
@@ -121,7 +121,7 @@ static struct toonie *toonie;
static int __init toonie_init(void)
{
- toonie = kzalloc(sizeof(struct toonie), GFP_KERNEL);
+ toonie = kzalloc_obj(struct toonie, GFP_KERNEL);
if (!toonie)
return -ENOMEM;
diff --git a/sound/aoa/core/gpio-pmf.c b/sound/aoa/core/gpio-pmf.c
index e76bde25e41a..155a503e1e9b 100644
--- a/sound/aoa/core/gpio-pmf.c
+++ b/sound/aoa/core/gpio-pmf.c
@@ -173,8 +173,7 @@ static int pmf_set_notify(struct gpio_runtime *rt,
notif->gpio_private = NULL;
}
if (!old && notify) {
- irq_client = kzalloc(sizeof(struct pmf_irq_client),
- GFP_KERNEL);
+ irq_client = kzalloc_obj(struct pmf_irq_client, GFP_KERNEL);
if (!irq_client)
return -ENOMEM;
irq_client->data = notif;
diff --git a/sound/aoa/fabrics/layout.c b/sound/aoa/fabrics/layout.c
index bb2a0ef3004b..0b73ecda1b1d 100644
--- a/sound/aoa/fabrics/layout.c
+++ b/sound/aoa/fabrics/layout.c
@@ -1025,7 +1025,7 @@ static int aoa_fabric_layout_probe(struct soundbus_dev *sdev)
goto outnodev;
}
- ldev = kzalloc(sizeof(struct layout_dev), GFP_KERNEL);
+ ldev = kzalloc_obj(struct layout_dev, GFP_KERNEL);
if (!ldev)
goto outnodev;
diff --git a/sound/aoa/soundbus/i2sbus/control.c b/sound/aoa/soundbus/i2sbus/control.c
index a003ef06de63..09e5070e0ae2 100644
--- a/sound/aoa/soundbus/i2sbus/control.c
+++ b/sound/aoa/soundbus/i2sbus/control.c
@@ -19,7 +19,7 @@
int i2sbus_control_init(struct macio_dev* dev, struct i2sbus_control **c)
{
- *c = kzalloc(sizeof(struct i2sbus_control), GFP_KERNEL);
+ *c = kzalloc_obj(struct i2sbus_control, GFP_KERNEL);
if (!*c)
return -ENOMEM;
diff --git a/sound/aoa/soundbus/i2sbus/core.c b/sound/aoa/soundbus/i2sbus/core.c
index f4d43c854bbd..8941f3266947 100644
--- a/sound/aoa/soundbus/i2sbus/core.c
+++ b/sound/aoa/soundbus/i2sbus/core.c
@@ -171,7 +171,7 @@ static int i2sbus_add_dev(struct macio_dev *macio,
if (strncmp(node_name, "i2s-", 4))
return 0;
- dev = kzalloc(sizeof(struct i2sbus_dev), GFP_KERNEL);
+ dev = kzalloc_obj(struct i2sbus_dev, GFP_KERNEL);
if (!dev)
return 0;
diff --git a/sound/aoa/soundbus/i2sbus/pcm.c b/sound/aoa/soundbus/i2sbus/pcm.c
index 4c480ad2c05d..ceee3320a932 100644
--- a/sound/aoa/soundbus/i2sbus/pcm.c
+++ b/sound/aoa/soundbus/i2sbus/pcm.c
@@ -879,7 +879,7 @@ i2sbus_attach_codec(struct soundbus_dev *dev, struct snd_card *card,
tmp++;
}
- cii = kzalloc(sizeof(struct codec_info_item), GFP_KERNEL);
+ cii = kzalloc_obj(struct codec_info_item, GFP_KERNEL);
if (!cii)
return -ENOMEM;
diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c
index ed2eeb914c6d..27d916c8fb29 100644
--- a/sound/core/compress_offload.c
+++ b/sound/core/compress_offload.c
@@ -519,7 +519,7 @@ snd_compr_get_codec_caps(struct snd_compr_stream *stream, unsigned long arg)
return -ENXIO;
struct snd_compr_codec_caps *caps __free(kfree) =
- kzalloc(sizeof(*caps), GFP_KERNEL);
+ kzalloc_obj(*caps, GFP_KERNEL);
if (!caps)
return -ENOMEM;
@@ -539,7 +539,7 @@ int snd_compr_malloc_pages(struct snd_compr_stream *stream, size_t size)
if (snd_BUG_ON(!(stream) || !(stream)->runtime))
return -EINVAL;
- dmab = kzalloc(sizeof(*dmab), GFP_KERNEL);
+ dmab = kzalloc_obj(*dmab, GFP_KERNEL);
if (!dmab)
return -ENOMEM;
dmab->dev = stream->dma_buffer.dev;
@@ -694,7 +694,7 @@ snd_compr_get_params(struct snd_compr_stream *stream, unsigned long arg)
return -EBADFD;
struct snd_codec *params __free(kfree) =
- kzalloc(sizeof(*params), GFP_KERNEL);
+ kzalloc_obj(*params, GFP_KERNEL);
if (!params)
return -ENOMEM;
retval = stream->ops->get_params(stream, params);
@@ -1066,7 +1066,7 @@ static int snd_compr_task_new(struct snd_compr_stream *stream, struct snd_compr_
return -EBUSY;
if (utask->origin_seqno != 0 || utask->input_size != 0)
return -EINVAL;
- task = kzalloc(sizeof(*task), GFP_KERNEL);
+ task = kzalloc_obj(*task, GFP_KERNEL);
if (task == NULL)
return -ENOMEM;
task->seqno = utask->seqno = snd_compr_seqno_next(stream);
diff --git a/sound/core/control.c b/sound/core/control.c
index 486d1bc4dac2..eb4a3c1214fb 100644
--- a/sound/core/control.c
+++ b/sound/core/control.c
@@ -233,7 +233,7 @@ static int snd_ctl_new(struct snd_kcontrol **kctl, unsigned int count,
if (count == 0 || count > MAX_CONTROL_COUNT)
return -EINVAL;
- *kctl = kzalloc(struct_size(*kctl, vd, count), GFP_KERNEL);
+ *kctl = kzalloc_flex(**kctl, vd, count, GFP_KERNEL);
if (!*kctl)
return -ENOMEM;
@@ -2057,7 +2057,7 @@ static int _snd_ctl_register_ioctl(snd_kctl_ioctl_func_t fcn, struct list_head *
{
struct snd_kctl_ioctl *pn;
- pn = kzalloc(sizeof(struct snd_kctl_ioctl), GFP_KERNEL);
+ pn = kzalloc_obj(struct snd_kctl_ioctl, GFP_KERNEL);
if (pn == NULL)
return -ENOMEM;
pn->fioctl = fcn;
diff --git a/sound/core/control_compat.c b/sound/core/control_compat.c
index b8988a4bcd9b..174395322c51 100644
--- a/sound/core/control_compat.c
+++ b/sound/core/control_compat.c
@@ -82,7 +82,7 @@ static int snd_ctl_elem_info_compat(struct snd_ctl_file *ctl,
struct snd_card *card = ctl->card;
int err;
struct snd_ctl_elem_info *data __free(kfree) =
- kzalloc(sizeof(*data), GFP_KERNEL);
+ kzalloc_obj(*data, GFP_KERNEL);
if (! data)
return -ENOMEM;
@@ -177,7 +177,7 @@ static int get_ctl_type(struct snd_card *card, struct snd_ctl_elem_id *id,
return -ENOENT;
struct snd_ctl_elem_info *info __free(kfree) =
- kzalloc(sizeof(*info), GFP_KERNEL);
+ kzalloc_obj(*info, GFP_KERNEL);
if (info == NULL)
return -ENOMEM;
info->id = *id;
@@ -283,7 +283,7 @@ static int __ctl_elem_read_user(struct snd_card *card,
{
int err, type, count;
struct snd_ctl_elem_value *data __free(kfree) =
- kzalloc(sizeof(*data), GFP_KERNEL);
+ kzalloc_obj(*data, GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
@@ -318,7 +318,7 @@ static int __ctl_elem_write_user(struct snd_ctl_file *file,
struct snd_card *card = file->card;
int err, type, count;
struct snd_ctl_elem_value *data __free(kfree) =
- kzalloc(sizeof(*data), GFP_KERNEL);
+ kzalloc_obj(*data, GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
@@ -380,7 +380,7 @@ static int snd_ctl_elem_add_compat(struct snd_ctl_file *file,
int replace)
{
struct snd_ctl_elem_info *data __free(kfree) =
- kzalloc(sizeof(*data), GFP_KERNEL);
+ kzalloc_obj(*data, GFP_KERNEL);
if (! data)
return -ENOMEM;
diff --git a/sound/core/control_led.c b/sound/core/control_led.c
index c7641d5084e7..07eebf849ae3 100644
--- a/sound/core/control_led.c
+++ b/sound/core/control_led.c
@@ -653,7 +653,7 @@ static void snd_ctl_led_sysfs_add(struct snd_card *card)
for (group = 0; group < MAX_LED; group++) {
led = &snd_ctl_leds[group];
- led_card = kzalloc(sizeof(*led_card), GFP_KERNEL);
+ led_card = kzalloc_obj(*led_card, GFP_KERNEL);
if (!led_card)
goto cerr2;
led_card->number = card->number;
diff --git a/sound/core/device.c b/sound/core/device.c
index cdc5af526739..80c02914877f 100644
--- a/sound/core/device.c
+++ b/sound/core/device.c
@@ -34,7 +34,7 @@ int snd_device_new(struct snd_card *card, enum snd_device_type type,
if (snd_BUG_ON(!card || !device_data || !ops))
return -ENXIO;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
INIT_LIST_HEAD(&dev->list);
diff --git a/sound/core/hrtimer.c b/sound/core/hrtimer.c
index 2d5f4d47071f..a98de8d9ce16 100644
--- a/sound/core/hrtimer.c
+++ b/sound/core/hrtimer.c
@@ -64,7 +64,7 @@ static int snd_hrtimer_open(struct snd_timer *t)
{
struct snd_hrtimer *stime;
- stime = kzalloc(sizeof(*stime), GFP_KERNEL);
+ stime = kzalloc_obj(*stime, GFP_KERNEL);
if (!stime)
return -ENOMEM;
stime->timer = t;
diff --git a/sound/core/hwdep.c b/sound/core/hwdep.c
index 09200df2932c..a493db2160ed 100644
--- a/sound/core/hwdep.c
+++ b/sound/core/hwdep.c
@@ -375,7 +375,7 @@ int snd_hwdep_new(struct snd_card *card, char *id, int device,
return -ENXIO;
if (rhwdep)
*rhwdep = NULL;
- hwdep = kzalloc(sizeof(*hwdep), GFP_KERNEL);
+ hwdep = kzalloc_obj(*hwdep, GFP_KERNEL);
if (!hwdep)
return -ENOMEM;
diff --git a/sound/core/info.c b/sound/core/info.c
index 1f5b8a3d9e3b..de8ec34360ee 100644
--- a/sound/core/info.c
+++ b/sound/core/info.c
@@ -79,7 +79,7 @@ static int alloc_info_private(struct snd_info_entry *entry,
return -ENODEV;
if (!try_module_get(entry->module))
return -EFAULT;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data) {
module_put(entry->module);
return -ENOMEM;
@@ -311,7 +311,7 @@ static ssize_t snd_info_text_entry_write(struct file *file,
guard(mutex)(&entry->access);
buf = data->wbuffer;
if (!buf) {
- data->wbuffer = buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ data->wbuffer = buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return -ENOMEM;
}
@@ -355,7 +355,7 @@ static int snd_info_text_entry_open(struct inode *inode, struct file *file)
if (err < 0)
return err;
- data->rbuffer = kzalloc(sizeof(*data->rbuffer), GFP_KERNEL);
+ data->rbuffer = kzalloc_obj(*data->rbuffer, GFP_KERNEL);
if (!data->rbuffer) {
err = -ENOMEM;
goto error;
@@ -663,7 +663,7 @@ snd_info_create_entry(const char *name, struct snd_info_entry *parent,
struct module *module)
{
struct snd_info_entry *entry;
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (entry == NULL)
return NULL;
entry->name = kstrdup(name, GFP_KERNEL);
diff --git a/sound/core/init.c b/sound/core/init.c
index c372b3228785..84c11bd49a95 100644
--- a/sound/core/init.c
+++ b/sound/core/init.c
@@ -129,7 +129,7 @@ int snd_device_alloc(struct device **dev_p, struct snd_card *card)
struct device *dev;
*dev_p = NULL;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (!dev)
return -ENOMEM;
device_initialize(dev);
@@ -1060,7 +1060,7 @@ int snd_card_file_add(struct snd_card *card, struct file *file)
{
struct snd_monitor_file *mfile;
- mfile = kmalloc(sizeof(*mfile), GFP_KERNEL);
+ mfile = kmalloc_obj(*mfile, GFP_KERNEL);
if (mfile == NULL)
return -ENOMEM;
mfile->file = file;
diff --git a/sound/core/jack.c b/sound/core/jack.c
index 93e357a23f17..7160c260d06c 100644
--- a/sound/core/jack.c
+++ b/sound/core/jack.c
@@ -440,7 +440,7 @@ static struct snd_jack_kctl * snd_jack_kctl_new(struct snd_card *card, const cha
if (err < 0)
return NULL;
- jack_kctl = kzalloc(sizeof(*jack_kctl), GFP_KERNEL);
+ jack_kctl = kzalloc_obj(*jack_kctl, GFP_KERNEL);
if (!jack_kctl)
goto error;
@@ -516,7 +516,7 @@ int snd_jack_new(struct snd_card *card, const char *id, int type,
return -ENOMEM;
}
- jack = kzalloc(sizeof(struct snd_jack), GFP_KERNEL);
+ jack = kzalloc_obj(struct snd_jack, GFP_KERNEL);
if (jack == NULL)
return -ENOMEM;
diff --git a/sound/core/memalloc.c b/sound/core/memalloc.c
index b3853583d2ae..bb483a2d7ff2 100644
--- a/sound/core/memalloc.c
+++ b/sound/core/memalloc.c
@@ -719,12 +719,12 @@ static void *snd_dma_sg_fallback_alloc(struct snd_dma_buffer *dmab, size_t size)
unsigned int idx, npages;
void *p;
- sgbuf = kzalloc(sizeof(*sgbuf), GFP_KERNEL);
+ sgbuf = kzalloc_obj(*sgbuf, GFP_KERNEL);
if (!sgbuf)
return NULL;
size = PAGE_ALIGN(size);
sgbuf->count = size >> PAGE_SHIFT;
- sgbuf->pages = kvcalloc(sgbuf->count, sizeof(*sgbuf->pages), GFP_KERNEL);
+ sgbuf->pages = kvzalloc_objs(*sgbuf->pages, sgbuf->count, GFP_KERNEL);
sgbuf->npages = kvcalloc(sgbuf->count, sizeof(*sgbuf->npages), GFP_KERNEL);
if (!sgbuf->pages || !sgbuf->npages)
goto error;
diff --git a/sound/core/oss/mixer_oss.c b/sound/core/oss/mixer_oss.c
index f4ad0bfb4dac..05c8e44cd428 100644
--- a/sound/core/oss/mixer_oss.c
+++ b/sound/core/oss/mixer_oss.c
@@ -47,7 +47,7 @@ static int snd_mixer_oss_open(struct inode *inode, struct file *file)
snd_card_unref(card);
return err;
}
- fmixer = kzalloc(sizeof(*fmixer), GFP_KERNEL);
+ fmixer = kzalloc_obj(*fmixer, GFP_KERNEL);
if (fmixer == NULL) {
snd_card_file_remove(card, file);
snd_card_unref(card);
@@ -530,9 +530,9 @@ static void snd_mixer_oss_get_volume1_vol(struct snd_mixer_oss_file *fmixer,
return;
struct snd_ctl_elem_info *uinfo __free(kfree) =
- kzalloc(sizeof(*uinfo), GFP_KERNEL);
+ kzalloc_obj(*uinfo, GFP_KERNEL);
struct snd_ctl_elem_value *uctl __free(kfree) =
- kzalloc(sizeof(*uctl), GFP_KERNEL);
+ kzalloc_obj(*uctl, GFP_KERNEL);
if (uinfo == NULL || uctl == NULL)
return;
if (kctl->info(kctl, uinfo))
@@ -566,9 +566,9 @@ static void snd_mixer_oss_get_volume1_sw(struct snd_mixer_oss_file *fmixer,
return;
struct snd_ctl_elem_info *uinfo __free(kfree) =
- kzalloc(sizeof(*uinfo), GFP_KERNEL);
+ kzalloc_obj(*uinfo, GFP_KERNEL);
struct snd_ctl_elem_value *uctl __free(kfree) =
- kzalloc(sizeof(*uctl), GFP_KERNEL);
+ kzalloc_obj(*uctl, GFP_KERNEL);
if (uinfo == NULL || uctl == NULL)
return;
if (kctl->info(kctl, uinfo))
@@ -629,9 +629,9 @@ static void snd_mixer_oss_put_volume1_vol(struct snd_mixer_oss_file *fmixer,
return;
struct snd_ctl_elem_info *uinfo __free(kfree) =
- kzalloc(sizeof(*uinfo), GFP_KERNEL);
+ kzalloc_obj(*uinfo, GFP_KERNEL);
struct snd_ctl_elem_value *uctl __free(kfree) =
- kzalloc(sizeof(*uctl), GFP_KERNEL);
+ kzalloc_obj(*uctl, GFP_KERNEL);
if (uinfo == NULL || uctl == NULL)
return;
if (kctl->info(kctl, uinfo))
@@ -669,9 +669,9 @@ static void snd_mixer_oss_put_volume1_sw(struct snd_mixer_oss_file *fmixer,
return;
struct snd_ctl_elem_info *uinfo __free(kfree) =
- kzalloc(sizeof(*uinfo), GFP_KERNEL);
+ kzalloc_obj(*uinfo, GFP_KERNEL);
struct snd_ctl_elem_value *uctl __free(kfree) =
- kzalloc(sizeof(*uctl), GFP_KERNEL);
+ kzalloc_obj(*uctl, GFP_KERNEL);
if (uinfo == NULL || uctl == NULL)
return;
if (kctl->info(kctl, uinfo))
@@ -798,9 +798,9 @@ static int snd_mixer_oss_get_recsrc2(struct snd_mixer_oss_file *fmixer, unsigned
int err, idx;
struct snd_ctl_elem_info *uinfo __free(kfree) =
- kzalloc(sizeof(*uinfo), GFP_KERNEL);
+ kzalloc_obj(*uinfo, GFP_KERNEL);
struct snd_ctl_elem_value *uctl __free(kfree) =
- kzalloc(sizeof(*uctl), GFP_KERNEL);
+ kzalloc_obj(*uctl, GFP_KERNEL);
if (uinfo == NULL || uctl == NULL)
return -ENOMEM;
guard(rwsem_read)(&card->controls_rwsem);
@@ -843,9 +843,9 @@ static int snd_mixer_oss_put_recsrc2(struct snd_mixer_oss_file *fmixer, unsigned
unsigned int idx;
struct snd_ctl_elem_info *uinfo __free(kfree) =
- kzalloc(sizeof(*uinfo), GFP_KERNEL);
+ kzalloc_obj(*uinfo, GFP_KERNEL);
struct snd_ctl_elem_value *uctl __free(kfree) =
- kzalloc(sizeof(*uctl), GFP_KERNEL);
+ kzalloc_obj(*uctl, GFP_KERNEL);
if (uinfo == NULL || uctl == NULL)
return -ENOMEM;
guard(rwsem_read)(&card->controls_rwsem);
@@ -1027,7 +1027,7 @@ static int snd_mixer_oss_build_input(struct snd_mixer_oss *mixer,
kctl = snd_mixer_oss_test_id(mixer, "Capture Source", 0);
if (kctl) {
struct snd_ctl_elem_info *uinfo __free(kfree) =
- kzalloc(sizeof(*uinfo), GFP_KERNEL);
+ kzalloc_obj(*uinfo, GFP_KERNEL);
if (!uinfo)
return -ENOMEM;
@@ -1055,7 +1055,7 @@ static int snd_mixer_oss_build_input(struct snd_mixer_oss *mixer,
}
}
if (slot.present != 0) {
- pslot = kmalloc(sizeof(slot), GFP_KERNEL);
+ pslot = kmalloc_obj(slot, GFP_KERNEL);
if (! pslot)
return -ENOMEM;
*pslot = slot;
@@ -1315,7 +1315,7 @@ static int snd_mixer_oss_notify_handler(struct snd_card *card, int cmd)
if (cmd == SND_MIXER_OSS_NOTIFY_REGISTER) {
int idx, err;
- mixer = kcalloc(2, sizeof(*mixer), GFP_KERNEL);
+ mixer = kzalloc_objs(*mixer, 2, GFP_KERNEL);
if (mixer == NULL)
return -ENOMEM;
mutex_init(&mixer->reg_mutex);
diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
index 3bc94d34b35e..cf3509c2be15 100644
--- a/sound/core/oss/pcm_oss.c
+++ b/sound/core/oss/pcm_oss.c
@@ -398,7 +398,7 @@ static int snd_pcm_hw_param_near(struct snd_pcm_substream *pcm,
}
struct snd_pcm_hw_params *save __free(kfree) =
- kmalloc(sizeof(*save), GFP_KERNEL);
+ kmalloc_obj(*save, GFP_KERNEL);
if (save == NULL)
return -ENOMEM;
*save = *params;
@@ -411,7 +411,7 @@ static int snd_pcm_hw_param_near(struct snd_pcm_substream *pcm,
goto _end;
struct snd_pcm_hw_params *params1 __free(kfree) =
- kmalloc(sizeof(*params1), GFP_KERNEL);
+ kmalloc_obj(*params1, GFP_KERNEL);
if (params1 == NULL)
return -ENOMEM;
*params1 = *save;
@@ -786,7 +786,7 @@ static int choose_rate(struct snd_pcm_substream *substream,
unsigned int rate, prev;
struct snd_pcm_hw_params *save __free(kfree) =
- kmalloc(sizeof(*save), GFP_KERNEL);
+ kmalloc_obj(*save, GFP_KERNEL);
if (save == NULL)
return -ENOMEM;
*save = *params;
@@ -861,9 +861,9 @@ static int snd_pcm_oss_change_params_locked(struct snd_pcm_substream *substream)
if (!runtime->oss.params)
return 0;
- sw_params = kzalloc(sizeof(*sw_params), GFP_KERNEL);
- params = kmalloc(sizeof(*params), GFP_KERNEL);
- sparams = kmalloc(sizeof(*sparams), GFP_KERNEL);
+ sw_params = kzalloc_obj(*sw_params, GFP_KERNEL);
+ params = kmalloc_obj(*params, GFP_KERNEL);
+ sparams = kmalloc_obj(*sparams, GFP_KERNEL);
if (!sw_params || !params || !sparams) {
err = -ENOMEM;
goto failure;
@@ -1859,7 +1859,7 @@ static int snd_pcm_oss_get_formats(struct snd_pcm_oss_file *pcm_oss_file)
AFMT_S24_PACKED;
struct snd_pcm_hw_params *params __free(kfree) =
- kmalloc(sizeof(*params), GFP_KERNEL);
+ kmalloc_obj(*params, GFP_KERNEL);
if (!params)
return -ENOMEM;
_snd_pcm_hw_params_any(params);
@@ -2418,7 +2418,7 @@ static int snd_pcm_oss_open_file(struct file *file,
if (rpcm_oss_file)
*rpcm_oss_file = NULL;
- pcm_oss_file = kzalloc(sizeof(*pcm_oss_file), GFP_KERNEL);
+ pcm_oss_file = kzalloc_obj(*pcm_oss_file, GFP_KERNEL);
if (pcm_oss_file == NULL)
return -ENOMEM;
@@ -3032,7 +3032,7 @@ static void snd_pcm_oss_proc_write(struct snd_info_entry *entry,
}
} while (*str);
if (setup == NULL) {
- setup = kmalloc(sizeof(*setup), GFP_KERNEL);
+ setup = kmalloc_obj(*setup, GFP_KERNEL);
if (! setup) {
buffer->error = -ENOMEM;
return;
diff --git a/sound/core/oss/pcm_plugin.c b/sound/core/oss/pcm_plugin.c
index a4c8c9f538f1..e5a0e3c79f7e 100644
--- a/sound/core/oss/pcm_plugin.c
+++ b/sound/core/oss/pcm_plugin.c
@@ -163,7 +163,8 @@ int snd_pcm_plugin_build(struct snd_pcm_substream *plug,
channels = src_format->channels;
else
channels = dst_format->channels;
- plugin->buf_channels = kcalloc(channels, sizeof(*plugin->buf_channels), GFP_KERNEL);
+ plugin->buf_channels = kzalloc_objs(*plugin->buf_channels, channels,
+ GFP_KERNEL);
if (plugin->buf_channels == NULL) {
snd_pcm_plugin_free(plugin);
return -ENOMEM;
diff --git a/sound/core/pcm.c b/sound/core/pcm.c
index 0b512085eb63..e3c43b365207 100644
--- a/sound/core/pcm.c
+++ b/sound/core/pcm.c
@@ -334,7 +334,7 @@ static void snd_pcm_proc_info_read(struct snd_pcm_substream *substream,
return;
struct snd_pcm_info *info __free(kfree) =
- kmalloc(sizeof(*info), GFP_KERNEL);
+ kmalloc_obj(*info, GFP_KERNEL);
if (!info)
return;
@@ -657,7 +657,7 @@ int snd_pcm_new_stream(struct snd_pcm *pcm, int stream, int substream_count)
}
prev = NULL;
for (idx = 0, prev = NULL; idx < substream_count; idx++) {
- substream = kzalloc(sizeof(*substream), GFP_KERNEL);
+ substream = kzalloc_obj(*substream, GFP_KERNEL);
if (!substream)
return -ENOMEM;
substream->pcm = pcm;
@@ -713,7 +713,7 @@ static int _snd_pcm_new(struct snd_card *card, const char *id, int device,
return -ENXIO;
if (rpcm)
*rpcm = NULL;
- pcm = kzalloc(sizeof(*pcm), GFP_KERNEL);
+ pcm = kzalloc_obj(*pcm, GFP_KERNEL);
if (!pcm)
return -ENOMEM;
pcm->card = card;
@@ -935,7 +935,7 @@ int snd_pcm_attach_substream(struct snd_pcm *pcm, int stream,
if (substream == NULL)
return -EAGAIN;
- runtime = kzalloc(sizeof(*runtime), GFP_KERNEL);
+ runtime = kzalloc_obj(*runtime, GFP_KERNEL);
if (runtime == NULL)
return -ENOMEM;
diff --git a/sound/core/pcm_compat.c b/sound/core/pcm_compat.c
index e86f68f1f23c..71c74830083e 100644
--- a/sound/core/pcm_compat.c
+++ b/sound/core/pcm_compat.c
@@ -243,7 +243,7 @@ static int snd_pcm_ioctl_hw_params_compat(struct snd_pcm_substream *substream,
return -ENOTTY;
struct snd_pcm_hw_params *data __free(kfree) =
- kmalloc(sizeof(*data), GFP_KERNEL);
+ kmalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/sound/core/pcm_dmaengine.c b/sound/core/pcm_dmaengine.c
index f0c17503df42..cc6ce33f4ff7 100644
--- a/sound/core/pcm_dmaengine.c
+++ b/sound/core/pcm_dmaengine.c
@@ -318,7 +318,7 @@ int snd_dmaengine_pcm_open(struct snd_pcm_substream *substream,
if (ret < 0)
return ret;
- prtd = kzalloc(sizeof(*prtd), GFP_KERNEL);
+ prtd = kzalloc_obj(*prtd, GFP_KERNEL);
if (!prtd)
return -ENOMEM;
diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
index 6eaa950504cf..70f279865adc 100644
--- a/sound/core/pcm_lib.c
+++ b/sound/core/pcm_lib.c
@@ -2601,7 +2601,7 @@ int snd_pcm_add_chmap_ctls(struct snd_pcm *pcm, int stream,
if (WARN_ON(pcm->streams[stream].chmap_kctl))
return -EBUSY;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
info->pcm = pcm;
diff --git a/sound/core/pcm_memory.c b/sound/core/pcm_memory.c
index 56725d36825b..2ef02871f84f 100644
--- a/sound/core/pcm_memory.c
+++ b/sound/core/pcm_memory.c
@@ -448,7 +448,7 @@ int snd_pcm_lib_malloc_pages(struct snd_pcm_substream *substream, size_t size)
/* dma_max=0 means the fixed size preallocation */
if (substream->dma_buffer.area && !substream->dma_max)
return -ENOMEM;
- dmab = kzalloc(sizeof(*dmab), GFP_KERNEL);
+ dmab = kzalloc_obj(*dmab, GFP_KERNEL);
if (! dmab)
return -ENOMEM;
dmab->dev = substream->dma_buffer.dev;
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 0a358d94b17c..a7e24be8c7db 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -244,7 +244,7 @@ int snd_pcm_info_user(struct snd_pcm_substream *substream,
{
int err;
struct snd_pcm_info *info __free(kfree) =
- kmalloc(sizeof(*info), GFP_KERNEL);
+ kmalloc_obj(*info, GFP_KERNEL);
if (! info)
return -ENOMEM;
@@ -2812,7 +2812,7 @@ static int snd_pcm_open_file(struct file *file,
if (err < 0)
return err;
- pcm_file = kzalloc(sizeof(*pcm_file), GFP_KERNEL);
+ pcm_file = kzalloc_obj(*pcm_file, GFP_KERNEL);
if (pcm_file == NULL) {
snd_pcm_release_substream(substream);
return -ENOMEM;
@@ -4111,7 +4111,7 @@ static int snd_pcm_hw_refine_old_user(struct snd_pcm_substream *substream,
int err;
struct snd_pcm_hw_params *params __free(kfree) =
- kmalloc(sizeof(*params), GFP_KERNEL);
+ kmalloc_obj(*params, GFP_KERNEL);
if (!params)
return -ENOMEM;
@@ -4140,7 +4140,7 @@ static int snd_pcm_hw_params_old_user(struct snd_pcm_substream *substream,
int err;
struct snd_pcm_hw_params *params __free(kfree) =
- kmalloc(sizeof(*params), GFP_KERNEL);
+ kmalloc_obj(*params, GFP_KERNEL);
if (!params)
return -ENOMEM;
diff --git a/sound/core/rawmidi.c b/sound/core/rawmidi.c
index 8969ee2757f1..ae93d968e083 100644
--- a/sound/core/rawmidi.c
+++ b/sound/core/rawmidi.c
@@ -159,7 +159,7 @@ static int snd_rawmidi_runtime_create(struct snd_rawmidi_substream *substream)
{
struct snd_rawmidi_runtime *runtime;
- runtime = kzalloc(sizeof(*runtime), GFP_KERNEL);
+ runtime = kzalloc_obj(*runtime, GFP_KERNEL);
if (!runtime)
return -ENOMEM;
runtime->substream = substream;
@@ -472,7 +472,7 @@ static int snd_rawmidi_open(struct inode *inode, struct file *file)
fflags = snd_rawmidi_file_flags(file);
if ((file->f_flags & O_APPEND) || maj == SOUND_MAJOR) /* OSS emul? */
fflags |= SNDRV_RAWMIDI_LFLG_APPEND;
- rawmidi_file = kmalloc(sizeof(*rawmidi_file), GFP_KERNEL);
+ rawmidi_file = kmalloc_obj(*rawmidi_file, GFP_KERNEL);
if (rawmidi_file == NULL) {
err = -ENOMEM;
goto __error;
@@ -1803,7 +1803,7 @@ static int snd_rawmidi_alloc_substreams(struct snd_rawmidi *rmidi,
int idx;
for (idx = 0; idx < count; idx++) {
- substream = kzalloc(sizeof(*substream), GFP_KERNEL);
+ substream = kzalloc_obj(*substream, GFP_KERNEL);
if (!substream)
return -ENOMEM;
substream->stream = direction;
@@ -1891,7 +1891,7 @@ int snd_rawmidi_new(struct snd_card *card, char *id, int device,
if (rrawmidi)
*rrawmidi = NULL;
- rmidi = kzalloc(sizeof(*rmidi), GFP_KERNEL);
+ rmidi = kzalloc_obj(*rmidi, GFP_KERNEL);
if (!rmidi)
return -ENOMEM;
err = snd_rawmidi_init(rmidi, card, id, device,
diff --git a/sound/core/seq/oss/seq_oss_init.c b/sound/core/seq/oss/seq_oss_init.c
index e0c368bd09cb..af8e14325239 100644
--- a/sound/core/seq/oss/seq_oss_init.c
+++ b/sound/core/seq/oss/seq_oss_init.c
@@ -65,7 +65,7 @@ snd_seq_oss_create_client(void)
int rc;
struct snd_seq_port_callback port_callback;
struct snd_seq_port_info *port __free(kfree) =
- kzalloc(sizeof(*port), GFP_KERNEL);
+ kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return -ENOMEM;
@@ -168,7 +168,7 @@ snd_seq_oss_open(struct file *file, int level)
int i, rc;
struct seq_oss_devinfo *dp;
- dp = kzalloc(sizeof(*dp), GFP_KERNEL);
+ dp = kzalloc_obj(*dp, GFP_KERNEL);
if (!dp)
return -ENOMEM;
diff --git a/sound/core/seq/oss/seq_oss_midi.c b/sound/core/seq/oss/seq_oss_midi.c
index 2d48c25ff4df..989e9a7069e3 100644
--- a/sound/core/seq/oss/seq_oss_midi.c
+++ b/sound/core/seq/oss/seq_oss_midi.c
@@ -66,9 +66,9 @@ int
snd_seq_oss_midi_lookup_ports(int client)
{
struct snd_seq_client_info *clinfo __free(kfree) =
- kzalloc(sizeof(*clinfo), GFP_KERNEL);
+ kzalloc_obj(*clinfo, GFP_KERNEL);
struct snd_seq_port_info *pinfo __free(kfree) =
- kzalloc(sizeof(*pinfo), GFP_KERNEL);
+ kzalloc_obj(*pinfo, GFP_KERNEL);
if (!clinfo || !pinfo)
return -ENOMEM;
@@ -153,7 +153,7 @@ snd_seq_oss_midi_check_new_port(struct snd_seq_port_info *pinfo)
/*
* allocate midi info record
*/
- mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
+ mdev = kzalloc_obj(*mdev, GFP_KERNEL);
if (!mdev)
return -ENOMEM;
diff --git a/sound/core/seq/oss/seq_oss_readq.c b/sound/core/seq/oss/seq_oss_readq.c
index bbaf72e70b35..014efc191c71 100644
--- a/sound/core/seq/oss/seq_oss_readq.c
+++ b/sound/core/seq/oss/seq_oss_readq.c
@@ -34,11 +34,11 @@ snd_seq_oss_readq_new(struct seq_oss_devinfo *dp, int maxlen)
{
struct seq_oss_readq *q;
- q = kzalloc(sizeof(*q), GFP_KERNEL);
+ q = kzalloc_obj(*q, GFP_KERNEL);
if (!q)
return NULL;
- q->q = kcalloc(maxlen, sizeof(union evrec), GFP_KERNEL);
+ q->q = kzalloc_objs(union evrec, maxlen, GFP_KERNEL);
if (!q->q) {
kfree(q);
return NULL;
diff --git a/sound/core/seq/oss/seq_oss_synth.c b/sound/core/seq/oss/seq_oss_synth.c
index c7f81f2053a7..b19b8756638d 100644
--- a/sound/core/seq/oss/seq_oss_synth.c
+++ b/sound/core/seq/oss/seq_oss_synth.c
@@ -213,7 +213,8 @@ snd_seq_oss_synth_setup(struct seq_oss_devinfo *dp)
}
info->nr_voices = rec->nr_voices;
if (info->nr_voices > 0) {
- info->ch = kcalloc(info->nr_voices, sizeof(struct seq_oss_chinfo), GFP_KERNEL);
+ info->ch = kzalloc_objs(struct seq_oss_chinfo,
+ info->nr_voices, GFP_KERNEL);
if (!info->ch) {
rec->oper.close(&info->arg);
module_put(rec->oper.owner);
diff --git a/sound/core/seq/oss/seq_oss_timer.c b/sound/core/seq/oss/seq_oss_timer.c
index f9f57232a83f..32f1ff225cf5 100644
--- a/sound/core/seq/oss/seq_oss_timer.c
+++ b/sound/core/seq/oss/seq_oss_timer.c
@@ -34,7 +34,7 @@ snd_seq_oss_timer_new(struct seq_oss_devinfo *dp)
{
struct seq_oss_timer *rec;
- rec = kzalloc(sizeof(*rec), GFP_KERNEL);
+ rec = kzalloc_obj(*rec, GFP_KERNEL);
if (rec == NULL)
return NULL;
diff --git a/sound/core/seq/oss/seq_oss_writeq.c b/sound/core/seq/oss/seq_oss_writeq.c
index a93ff8315b8e..dfc20d9bcc30 100644
--- a/sound/core/seq/oss/seq_oss_writeq.c
+++ b/sound/core/seq/oss/seq_oss_writeq.c
@@ -27,7 +27,7 @@ snd_seq_oss_writeq_new(struct seq_oss_devinfo *dp, int maxlen)
struct seq_oss_writeq *q;
struct snd_seq_client_pool pool;
- q = kzalloc(sizeof(*q), GFP_KERNEL);
+ q = kzalloc_obj(*q, GFP_KERNEL);
if (!q)
return NULL;
q->dp = dp;
diff --git a/sound/core/seq/seq_compat.c b/sound/core/seq/seq_compat.c
index 260428747e33..a771684eac34 100644
--- a/sound/core/seq/seq_compat.c
+++ b/sound/core/seq/seq_compat.c
@@ -33,7 +33,7 @@ static int snd_seq_call_port_info_ioctl(struct snd_seq_client *client, unsigned
{
int err;
struct snd_seq_port_info *data __free(kfree) =
- kmalloc(sizeof(*data), GFP_KERNEL);
+ kmalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/sound/core/seq/seq_dummy.c b/sound/core/seq/seq_dummy.c
index 783fc72c2ef6..d8b77385aa3f 100644
--- a/sound/core/seq/seq_dummy.c
+++ b/sound/core/seq/seq_dummy.c
@@ -115,7 +115,7 @@ create_port(int idx, int type)
struct snd_seq_port_callback pcb;
struct snd_seq_dummy_port *rec;
- rec = kzalloc(sizeof(*rec), GFP_KERNEL);
+ rec = kzalloc_obj(*rec, GFP_KERNEL);
if (!rec)
return NULL;
diff --git a/sound/core/seq/seq_fifo.c b/sound/core/seq/seq_fifo.c
index 91cce1890111..ad15d001cef7 100644
--- a/sound/core/seq/seq_fifo.c
+++ b/sound/core/seq/seq_fifo.c
@@ -19,7 +19,7 @@ struct snd_seq_fifo *snd_seq_fifo_new(int poolsize)
{
struct snd_seq_fifo *f;
- f = kzalloc(sizeof(*f), GFP_KERNEL);
+ f = kzalloc_obj(*f, GFP_KERNEL);
if (!f)
return NULL;
diff --git a/sound/core/seq/seq_memory.c b/sound/core/seq/seq_memory.c
index ccde0ca3d208..8a14d6e59c82 100644
--- a/sound/core/seq/seq_memory.c
+++ b/sound/core/seq/seq_memory.c
@@ -441,9 +441,8 @@ int snd_seq_pool_init(struct snd_seq_pool *pool)
if (snd_BUG_ON(!pool))
return -EINVAL;
- cellptr = kvmalloc_array(pool->size,
- sizeof(struct snd_seq_event_cell),
- GFP_KERNEL);
+ cellptr = kvmalloc_objs(struct snd_seq_event_cell, pool->size,
+ GFP_KERNEL);
if (!cellptr)
return -ENOMEM;
@@ -518,7 +517,7 @@ struct snd_seq_pool *snd_seq_pool_new(int poolsize)
struct snd_seq_pool *pool;
/* create pool block */
- pool = kzalloc(sizeof(*pool), GFP_KERNEL);
+ pool = kzalloc_obj(*pool, GFP_KERNEL);
if (!pool)
return NULL;
spin_lock_init(&pool->lock);
diff --git a/sound/core/seq/seq_midi.c b/sound/core/seq/seq_midi.c
index 88e930980f16..72e798ddbe4e 100644
--- a/sound/core/seq/seq_midi.c
+++ b/sound/core/seq/seq_midi.c
@@ -281,7 +281,7 @@ snd_seq_midisynth_probe(struct snd_seq_device *dev)
return -EINVAL;
struct snd_rawmidi_info *info __free(kfree) =
- kmalloc(sizeof(*info), GFP_KERNEL);
+ kmalloc_obj(*info, GFP_KERNEL);
if (! info)
return -ENOMEM;
info->device = device;
@@ -305,7 +305,7 @@ snd_seq_midisynth_probe(struct snd_seq_device *dev)
client = synths[card->number];
if (client == NULL) {
newclient = 1;
- client = kzalloc(sizeof(*client), GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (client == NULL)
return -ENOMEM;
client->seq_client =
@@ -318,10 +318,10 @@ snd_seq_midisynth_probe(struct snd_seq_device *dev)
}
}
- msynth = kcalloc(ports, sizeof(struct seq_midisynth), GFP_KERNEL);
+ msynth = kzalloc_objs(struct seq_midisynth, ports, GFP_KERNEL);
struct snd_seq_port_info *port __free(kfree) =
- kmalloc(sizeof(*port), GFP_KERNEL);
+ kmalloc_obj(*port, GFP_KERNEL);
if (msynth == NULL || port == NULL)
goto __nomem;
diff --git a/sound/core/seq/seq_midi_emul.c b/sound/core/seq/seq_midi_emul.c
index 81d2ef5e5811..0e9461d0f9f8 100644
--- a/sound/core/seq/seq_midi_emul.c
+++ b/sound/core/seq/seq_midi_emul.c
@@ -650,7 +650,7 @@ static struct snd_midi_channel *snd_midi_channel_init_set(int n)
struct snd_midi_channel *chan;
int i;
- chan = kmalloc_array(n, sizeof(struct snd_midi_channel), GFP_KERNEL);
+ chan = kmalloc_objs(struct snd_midi_channel, n, GFP_KERNEL);
if (chan) {
for (i = 0; i < n; i++)
snd_midi_channel_init(chan+i, i);
@@ -688,7 +688,7 @@ struct snd_midi_channel_set *snd_midi_channel_alloc_set(int n)
{
struct snd_midi_channel_set *chset;
- chset = kmalloc(sizeof(*chset), GFP_KERNEL);
+ chset = kmalloc_obj(*chset, GFP_KERNEL);
if (chset) {
chset->channels = snd_midi_channel_init_set(n);
chset->private_data = NULL;
diff --git a/sound/core/seq/seq_midi_event.c b/sound/core/seq/seq_midi_event.c
index fa9dfc53c3fc..c2a9b0540c09 100644
--- a/sound/core/seq/seq_midi_event.c
+++ b/sound/core/seq/seq_midi_event.c
@@ -104,7 +104,7 @@ int snd_midi_event_new(int bufsize, struct snd_midi_event **rdev)
struct snd_midi_event *dev;
*rdev = NULL;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL);
+ dev = kzalloc_obj(*dev, GFP_KERNEL);
if (dev == NULL)
return -ENOMEM;
if (bufsize > 0) {
diff --git a/sound/core/seq/seq_ports.c b/sound/core/seq/seq_ports.c
index bbec34bba4f9..1b395caaae49 100644
--- a/sound/core/seq/seq_ports.c
+++ b/sound/core/seq/seq_ports.c
@@ -129,7 +129,7 @@ int snd_seq_create_port(struct snd_seq_client *client, int port,
}
/* create a new port */
- new_port = kzalloc(sizeof(*new_port), GFP_KERNEL);
+ new_port = kzalloc_obj(*new_port, GFP_KERNEL);
if (!new_port)
return -ENOMEM; /* failure, out of memory */
/* init port data */
@@ -572,7 +572,7 @@ int snd_seq_port_connect(struct snd_seq_client *connector,
bool exclusive;
int err;
- subs = kzalloc(sizeof(*subs), GFP_KERNEL);
+ subs = kzalloc_obj(*subs, GFP_KERNEL);
if (!subs)
return -ENOMEM;
diff --git a/sound/core/seq/seq_prioq.c b/sound/core/seq/seq_prioq.c
index e649485a8772..805c4ebbfdac 100644
--- a/sound/core/seq/seq_prioq.c
+++ b/sound/core/seq/seq_prioq.c
@@ -43,7 +43,7 @@ struct snd_seq_prioq *snd_seq_prioq_new(void)
{
struct snd_seq_prioq *f;
- f = kzalloc(sizeof(*f), GFP_KERNEL);
+ f = kzalloc_obj(*f, GFP_KERNEL);
if (!f)
return NULL;
diff --git a/sound/core/seq/seq_queue.c b/sound/core/seq/seq_queue.c
index c0c5e1424c5a..8c7b24a9421a 100644
--- a/sound/core/seq/seq_queue.c
+++ b/sound/core/seq/seq_queue.c
@@ -89,7 +89,7 @@ static struct snd_seq_queue *queue_new(int owner, int locked)
{
struct snd_seq_queue *q;
- q = kzalloc(sizeof(*q), GFP_KERNEL);
+ q = kzalloc_obj(*q, GFP_KERNEL);
if (!q)
return NULL;
diff --git a/sound/core/seq/seq_system.c b/sound/core/seq/seq_system.c
index 5b5603e5970b..d7d84576c3d6 100644
--- a/sound/core/seq/seq_system.c
+++ b/sound/core/seq/seq_system.c
@@ -130,7 +130,7 @@ int __init snd_seq_system_client_init(void)
struct snd_seq_port_info *port;
int err;
- port = kzalloc(sizeof(*port), GFP_KERNEL);
+ port = kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return -ENOMEM;
diff --git a/sound/core/seq/seq_timer.c b/sound/core/seq/seq_timer.c
index 29b018a212fc..c5728efa05af 100644
--- a/sound/core/seq/seq_timer.c
+++ b/sound/core/seq/seq_timer.c
@@ -43,7 +43,7 @@ struct snd_seq_timer *snd_seq_timer_new(void)
{
struct snd_seq_timer *tmr;
- tmr = kzalloc(sizeof(*tmr), GFP_KERNEL);
+ tmr = kzalloc_obj(*tmr, GFP_KERNEL);
if (!tmr)
return NULL;
spin_lock_init(&tmr->lock);
diff --git a/sound/core/seq/seq_ump_client.c b/sound/core/seq/seq_ump_client.c
index 7bc18415a540..3ca808c787e2 100644
--- a/sound/core/seq/seq_ump_client.c
+++ b/sound/core/seq/seq_ump_client.c
@@ -220,7 +220,7 @@ static int seq_ump_group_init(struct seq_ump_client *client, int group_index)
return 0;
struct snd_seq_port_info *port __free(kfree) =
- kzalloc(sizeof(*port), GFP_KERNEL);
+ kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return -ENOMEM;
@@ -246,9 +246,9 @@ static void update_port_infos(struct seq_ump_client *client)
int i, err;
struct snd_seq_port_info *old __free(kfree) =
- kzalloc(sizeof(*old), GFP_KERNEL);
+ kzalloc_obj(*old, GFP_KERNEL);
struct snd_seq_port_info *new __free(kfree) =
- kzalloc(sizeof(*new), GFP_KERNEL);
+ kzalloc_obj(*new, GFP_KERNEL);
if (!old || !new)
return;
@@ -283,7 +283,7 @@ static int create_ump_endpoint_port(struct seq_ump_client *client)
int err;
struct snd_seq_port_info *port __free(kfree) =
- kzalloc(sizeof(*port), GFP_KERNEL);
+ kzalloc_obj(*port, GFP_KERNEL);
if (!port)
return -ENOMEM;
@@ -461,7 +461,7 @@ static int snd_seq_ump_probe(struct snd_seq_device *dev)
struct snd_seq_client *cptr;
int p, err;
- client = kzalloc(sizeof(*client), GFP_KERNEL);
+ client = kzalloc_obj(*client, GFP_KERNEL);
if (!client)
return -ENOMEM;
diff --git a/sound/core/seq/seq_virmidi.c b/sound/core/seq/seq_virmidi.c
index 574493fbd50d..16d61847c7fe 100644
--- a/sound/core/seq/seq_virmidi.c
+++ b/sound/core/seq/seq_virmidi.c
@@ -216,7 +216,7 @@ static int snd_virmidi_output_open(struct snd_rawmidi_substream *substream)
struct snd_rawmidi_runtime *runtime = substream->runtime;
struct snd_virmidi *vmidi;
- vmidi = kzalloc(sizeof(*vmidi), GFP_KERNEL);
+ vmidi = kzalloc_obj(*vmidi, GFP_KERNEL);
if (vmidi == NULL)
return -ENOMEM;
vmidi->substream = substream;
@@ -367,7 +367,7 @@ static int snd_virmidi_dev_attach_seq(struct snd_virmidi_dev *rdev)
return 0;
struct snd_seq_port_info *pinfo __free(kfree) =
- kzalloc(sizeof(*pinfo), GFP_KERNEL);
+ kzalloc_obj(*pinfo, GFP_KERNEL);
if (!pinfo)
return -ENOMEM;
@@ -498,7 +498,7 @@ int snd_virmidi_new(struct snd_card *card, int device, struct snd_rawmidi **rrmi
if (err < 0)
return err;
strscpy(rmidi->name, rmidi->id);
- rdev = kzalloc(sizeof(*rdev), GFP_KERNEL);
+ rdev = kzalloc_obj(*rdev, GFP_KERNEL);
if (rdev == NULL) {
snd_device_free(card, rmidi);
return -ENOMEM;
diff --git a/sound/core/sound.c b/sound/core/sound.c
index 6531a67f13b3..876fac770749 100644
--- a/sound/core/sound.c
+++ b/sound/core/sound.c
@@ -257,7 +257,7 @@ int snd_register_device(int type, struct snd_card *card, int dev,
if (snd_BUG_ON(!device))
return -EINVAL;
- preg = kmalloc(sizeof *preg, GFP_KERNEL);
+ preg = kmalloc_obj(*preg, GFP_KERNEL);
if (preg == NULL)
return -ENOMEM;
preg->type = type;
diff --git a/sound/core/sound_oss.c b/sound/core/sound_oss.c
index d65cc6fee2e6..6d4e44656e19 100644
--- a/sound/core/sound_oss.c
+++ b/sound/core/sound_oss.c
@@ -96,7 +96,7 @@ int snd_register_oss_device(int type, struct snd_card *card, int dev,
return 0; /* ignore silently */
if (minor < 0)
return minor;
- preg = kmalloc(sizeof(struct snd_minor), GFP_KERNEL);
+ preg = kmalloc_obj(struct snd_minor, GFP_KERNEL);
if (preg == NULL)
return -ENOMEM;
preg->type = type;
diff --git a/sound/core/timer.c b/sound/core/timer.c
index 9a4a1748ff80..7d10f079b5b3 100644
--- a/sound/core/timer.c
+++ b/sound/core/timer.c
@@ -151,7 +151,7 @@ struct snd_timer_instance *snd_timer_instance_new(const char *owner)
{
struct snd_timer_instance *timeri;
- timeri = kzalloc(sizeof(*timeri), GFP_KERNEL);
+ timeri = kzalloc_obj(*timeri, GFP_KERNEL);
if (timeri == NULL)
return NULL;
timeri->owner = kstrdup(owner, GFP_KERNEL);
@@ -930,7 +930,7 @@ int snd_timer_new(struct snd_card *card, char *id, struct snd_timer_id *tid,
}
if (rtimer)
*rtimer = NULL;
- timer = kzalloc(sizeof(*timer), GFP_KERNEL);
+ timer = kzalloc_obj(*timer, GFP_KERNEL);
if (!timer)
return -ENOMEM;
timer->tmr_class = tid->dev_class;
@@ -1197,7 +1197,7 @@ static int snd_timer_register_system(void)
return err;
strscpy(timer->name, "system timer");
timer->hw = snd_timer_system;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (priv == NULL) {
snd_timer_free(timer);
return -ENOMEM;
@@ -1432,11 +1432,11 @@ static int realloc_user_queue(struct snd_timer_user *tu, int size)
struct snd_timer_tread64 *tqueue = NULL;
if (tu->tread) {
- tqueue = kcalloc(size, sizeof(*tqueue), GFP_KERNEL);
+ tqueue = kzalloc_objs(*tqueue, size, GFP_KERNEL);
if (!tqueue)
return -ENOMEM;
} else {
- queue = kcalloc(size, sizeof(*queue), GFP_KERNEL);
+ queue = kzalloc_objs(*queue, size, GFP_KERNEL);
if (!queue)
return -ENOMEM;
}
@@ -1461,7 +1461,7 @@ static int snd_timer_user_open(struct inode *inode, struct file *file)
if (err < 0)
return err;
- tu = kzalloc(sizeof(*tu), GFP_KERNEL);
+ tu = kzalloc_obj(*tu, GFP_KERNEL);
if (tu == NULL)
return -ENOMEM;
spin_lock_init(&tu->qlock);
@@ -2128,7 +2128,7 @@ static int snd_utimer_create(struct snd_timer_uinfo *utimer_info,
if (!utimer_info || utimer_info->resolution == 0)
return -EINVAL;
- utimer = kzalloc(sizeof(*utimer), GFP_KERNEL);
+ utimer = kzalloc_obj(*utimer, GFP_KERNEL);
if (!utimer)
return -ENOMEM;
diff --git a/sound/core/ump.c b/sound/core/ump.c
index 8d8681a42ca5..543330c67b69 100644
--- a/sound/core/ump.c
+++ b/sound/core/ump.c
@@ -166,7 +166,7 @@ int snd_ump_endpoint_new(struct snd_card *card, char *id, int device,
if (input && output)
info_flags |= SNDRV_RAWMIDI_INFO_DUPLEX;
- ump = kzalloc(sizeof(*ump), GFP_KERNEL);
+ ump = kzalloc_obj(*ump, GFP_KERNEL);
if (!ump)
return -ENOMEM;
INIT_LIST_HEAD(&ump->block_list);
@@ -408,7 +408,7 @@ int snd_ump_block_new(struct snd_ump_endpoint *ump, unsigned int blk,
if (snd_ump_get_block(ump, blk))
return -EBUSY;
- fb = kzalloc(sizeof(*fb), GFP_KERNEL);
+ fb = kzalloc_obj(*fb, GFP_KERNEL);
if (!fb)
return -ENOMEM;
@@ -1352,8 +1352,8 @@ int snd_ump_attach_legacy_rawmidi(struct snd_ump_endpoint *ump,
bool input, output;
int err, num;
- ump->out_cvts = kcalloc(SNDRV_UMP_MAX_GROUPS,
- sizeof(*ump->out_cvts), GFP_KERNEL);
+ ump->out_cvts = kzalloc_objs(*ump->out_cvts, SNDRV_UMP_MAX_GROUPS,
+ GFP_KERNEL);
if (!ump->out_cvts)
return -ENOMEM;
diff --git a/sound/core/vmaster.c b/sound/core/vmaster.c
index 76cc64245f5d..e4185c3a2629 100644
--- a/sound/core/vmaster.c
+++ b/sound/core/vmaster.c
@@ -58,7 +58,7 @@ static int follower_update(struct link_follower *follower)
{
int err, ch;
struct snd_ctl_elem_value *uctl __free(kfree) =
- kzalloc(sizeof(*uctl), GFP_KERNEL);
+ kzalloc_obj(*uctl, GFP_KERNEL);
if (!uctl)
return -ENOMEM;
@@ -84,7 +84,7 @@ static int follower_init(struct link_follower *follower)
}
struct snd_ctl_elem_info *uinfo __free(kfree) =
- kmalloc(sizeof(*uinfo), GFP_KERNEL);
+ kmalloc_obj(*uinfo, GFP_KERNEL);
if (!uinfo)
return -ENOMEM;
uinfo->id = follower->follower.id;
@@ -256,8 +256,7 @@ int _snd_ctl_add_follower(struct snd_kcontrol *master,
struct link_master *master_link = snd_kcontrol_chip(master);
struct link_follower *srec;
- srec = kzalloc(struct_size(srec, follower.vd, follower->count),
- GFP_KERNEL);
+ srec = kzalloc_flex(*srec, follower.vd, follower->count, GFP_KERNEL);
if (!srec)
return -ENOMEM;
srec->kctl = follower;
@@ -342,7 +341,7 @@ static int sync_followers(struct link_master *master, int old_val, int new_val)
{
struct link_follower *follower;
struct snd_ctl_elem_value *uval __free(kfree) =
- kmalloc(sizeof(*uval), GFP_KERNEL);
+ kmalloc_obj(*uval, GFP_KERNEL);
if (!uval)
return -ENOMEM;
@@ -430,7 +429,7 @@ struct snd_kcontrol *snd_ctl_make_virtual_master(char *name,
knew.name = name;
knew.info = master_info;
- master = kzalloc(sizeof(*master), GFP_KERNEL);
+ master = kzalloc_obj(*master, GFP_KERNEL);
if (!master)
return NULL;
INIT_LIST_HEAD(&master->followers);
diff --git a/sound/drivers/dummy.c b/sound/drivers/dummy.c
index 1860ff75fe15..33323c1f8dfe 100644
--- a/sound/drivers/dummy.c
+++ b/sound/drivers/dummy.c
@@ -329,7 +329,7 @@ static int dummy_systimer_create(struct snd_pcm_substream *substream)
{
struct dummy_systimer_pcm *dpcm;
- dpcm = kzalloc(sizeof(*dpcm), GFP_KERNEL);
+ dpcm = kzalloc_obj(*dpcm, GFP_KERNEL);
if (!dpcm)
return -ENOMEM;
substream->runtime->private_data = dpcm;
@@ -450,7 +450,7 @@ static int dummy_hrtimer_create(struct snd_pcm_substream *substream)
{
struct dummy_hrtimer_pcm *dpcm;
- dpcm = kzalloc(sizeof(*dpcm), GFP_KERNEL);
+ dpcm = kzalloc_obj(*dpcm, GFP_KERNEL);
if (!dpcm)
return -ENOMEM;
substream->runtime->private_data = dpcm;
diff --git a/sound/drivers/mpu401/mpu401_uart.c b/sound/drivers/mpu401/mpu401_uart.c
index 4af89822bf32..1b573969918f 100644
--- a/sound/drivers/mpu401/mpu401_uart.c
+++ b/sound/drivers/mpu401/mpu401_uart.c
@@ -518,7 +518,7 @@ int snd_mpu401_uart_new(struct snd_card *card, int device,
out_enable, in_enable, &rmidi);
if (err < 0)
return err;
- mpu = kzalloc(sizeof(*mpu), GFP_KERNEL);
+ mpu = kzalloc_obj(*mpu, GFP_KERNEL);
if (!mpu) {
err = -ENOMEM;
goto free_device;
diff --git a/sound/drivers/mts64.c b/sound/drivers/mts64.c
index fe50b48c10e7..eeaa05ad9e5b 100644
--- a/sound/drivers/mts64.c
+++ b/sound/drivers/mts64.c
@@ -75,7 +75,7 @@ static int snd_mts64_create(struct snd_card *card,
*rchip = NULL;
- mts = kzalloc(sizeof(struct mts64), GFP_KERNEL);
+ mts = kzalloc_obj(struct mts64, GFP_KERNEL);
if (mts == NULL)
return -ENOMEM;
diff --git a/sound/drivers/opl3/opl3_lib.c b/sound/drivers/opl3/opl3_lib.c
index fa8a2ccbbd51..ce96b0fd1f43 100644
--- a/sound/drivers/opl3/opl3_lib.c
+++ b/sound/drivers/opl3/opl3_lib.c
@@ -324,7 +324,7 @@ int snd_opl3_new(struct snd_card *card,
int err;
*ropl3 = NULL;
- opl3 = kzalloc(sizeof(*opl3), GFP_KERNEL);
+ opl3 = kzalloc_obj(*opl3, GFP_KERNEL);
if (!opl3)
return -ENOMEM;
diff --git a/sound/drivers/opl3/opl3_synth.c b/sound/drivers/opl3/opl3_synth.c
index 10f622b439a0..7cdd4abb0b7c 100644
--- a/sound/drivers/opl3/opl3_synth.c
+++ b/sound/drivers/opl3/opl3_synth.c
@@ -313,7 +313,7 @@ struct fm_patch *snd_opl3_find_patch(struct snd_opl3 *opl3, int prog, int bank,
if (!create_patch)
return NULL;
- patch = kzalloc(sizeof(*patch), GFP_KERNEL);
+ patch = kzalloc_obj(*patch, GFP_KERNEL);
if (!patch)
return NULL;
patch->prog = prog;
diff --git a/sound/drivers/opl4/opl4_lib.c b/sound/drivers/opl4/opl4_lib.c
index 44fbc6bf0654..d476fb7be15e 100644
--- a/sound/drivers/opl4/opl4_lib.c
+++ b/sound/drivers/opl4/opl4_lib.c
@@ -187,7 +187,7 @@ int snd_opl4_create(struct snd_card *card,
if (ropl4)
*ropl4 = NULL;
- opl4 = kzalloc(sizeof(*opl4), GFP_KERNEL);
+ opl4 = kzalloc_obj(*opl4, GFP_KERNEL);
if (!opl4)
return -ENOMEM;
diff --git a/sound/drivers/pcmtest.c b/sound/drivers/pcmtest.c
index b8474631f0b5..8d3a19b628a2 100644
--- a/sound/drivers/pcmtest.c
+++ b/sound/drivers/pcmtest.c
@@ -377,7 +377,7 @@ static int snd_pcmtst_pcm_open(struct snd_pcm_substream *substream)
if (inject_open_err)
return -EBUSY;
- v_iter = kzalloc(sizeof(*v_iter), GFP_KERNEL);
+ v_iter = kzalloc_obj(*v_iter, GFP_KERNEL);
if (!v_iter)
return -ENOMEM;
@@ -575,7 +575,7 @@ static int snd_pcmtst_create(struct snd_card *card, struct platform_device *pdev
.dev_free = snd_pcmtst_dev_free,
};
- pcmtst = kzalloc(sizeof(*pcmtst), GFP_KERNEL);
+ pcmtst = kzalloc_obj(*pcmtst, GFP_KERNEL);
if (!pcmtst)
return -ENOMEM;
pcmtst->card = card;
diff --git a/sound/drivers/portman2x4.c b/sound/drivers/portman2x4.c
index b903a138fc2a..3dac519c4c45 100644
--- a/sound/drivers/portman2x4.c
+++ b/sound/drivers/portman2x4.c
@@ -88,7 +88,7 @@ static int portman_create(struct snd_card *card,
*rchip = NULL;
- pm = kzalloc(sizeof(struct portman), GFP_KERNEL);
+ pm = kzalloc_obj(struct portman, GFP_KERNEL);
if (pm == NULL)
return -ENOMEM;
diff --git a/sound/drivers/vx/vx_pcm.c b/sound/drivers/vx/vx_pcm.c
index 7fd8f413d6cf..0e7a4cdc1390 100644
--- a/sound/drivers/vx/vx_pcm.c
+++ b/sound/drivers/vx/vx_pcm.c
@@ -414,7 +414,7 @@ static int vx_alloc_pipe(struct vx_core *chip, int capture,
return err;
/* initialize the pipe record */
- pipe = kzalloc(sizeof(*pipe), GFP_KERNEL);
+ pipe = kzalloc_obj(*pipe, GFP_KERNEL);
if (! pipe) {
/* release the pipe */
vx_init_rmh(&rmh, CMD_FREE_PIPE);
@@ -1154,10 +1154,12 @@ static int vx_init_audio_io(struct vx_core *chip)
chip->audio_info = rmh.Stat[1];
/* allocate pipes */
- chip->playback_pipes = kcalloc(chip->audio_outs, sizeof(struct vx_pipe *), GFP_KERNEL);
+ chip->playback_pipes = kzalloc_objs(struct vx_pipe *, chip->audio_outs,
+ GFP_KERNEL);
if (!chip->playback_pipes)
return -ENOMEM;
- chip->capture_pipes = kcalloc(chip->audio_ins, sizeof(struct vx_pipe *), GFP_KERNEL);
+ chip->capture_pipes = kzalloc_objs(struct vx_pipe *, chip->audio_ins,
+ GFP_KERNEL);
if (!chip->capture_pipes) {
kfree(chip->playback_pipes);
return -ENOMEM;
diff --git a/sound/firewire/amdtp-stream.c b/sound/firewire/amdtp-stream.c
index 223c880af802..3f9471694b04 100644
--- a/sound/firewire/amdtp-stream.c
+++ b/sound/firewire/amdtp-stream.c
@@ -1735,8 +1735,9 @@ static int amdtp_stream_start(struct amdtp_stream *s, int channel, int speed,
s->ctx_data.tx.cache.size = max_t(unsigned int, s->syt_interval * 2,
queue_size * 3 / 2);
s->ctx_data.tx.cache.pos = 0;
- s->ctx_data.tx.cache.descs = kcalloc(s->ctx_data.tx.cache.size,
- sizeof(*s->ctx_data.tx.cache.descs), GFP_KERNEL);
+ s->ctx_data.tx.cache.descs = kzalloc_objs(*s->ctx_data.tx.cache.descs,
+ s->ctx_data.tx.cache.size,
+ GFP_KERNEL);
if (!s->ctx_data.tx.cache.descs) {
err = -ENOMEM;
goto err_context;
@@ -1756,7 +1757,8 @@ static int amdtp_stream_start(struct amdtp_stream *s, int channel, int speed,
[CIP_SFC_176400] = { 0, 67 },
};
- s->ctx_data.rx.seq.descs = kcalloc(queue_size, sizeof(*s->ctx_data.rx.seq.descs), GFP_KERNEL);
+ s->ctx_data.rx.seq.descs = kzalloc_objs(*s->ctx_data.rx.seq.descs,
+ queue_size, GFP_KERNEL);
if (!s->ctx_data.rx.seq.descs) {
err = -ENOMEM;
goto err_context;
@@ -1781,7 +1783,7 @@ static int amdtp_stream_start(struct amdtp_stream *s, int channel, int speed,
// for runtime of PCM substream in the interval equivalent to the size of PCM buffer. It
// could take a round over queue of AMDTP packet descriptors and small loss of history. For
// safe, keep more 8 elements for the queue, equivalent to 1 ms.
- descs = kcalloc(s->queue_size + 8, sizeof(*descs), GFP_KERNEL);
+ descs = kzalloc_objs(*descs, s->queue_size + 8, GFP_KERNEL);
if (!descs) {
err = -ENOMEM;
goto err_context;
diff --git a/sound/firewire/bebob/bebob_proc.c b/sound/firewire/bebob/bebob_proc.c
index f659b888a6d1..c5e060728fdc 100644
--- a/sound/firewire/bebob/bebob_proc.c
+++ b/sound/firewire/bebob/bebob_proc.c
@@ -38,7 +38,7 @@ proc_read_hw_info(struct snd_info_entry *entry,
struct snd_bebob *bebob = entry->private_data;
struct hw_info *info;
- info = kzalloc(sizeof(struct hw_info), GFP_KERNEL);
+ info = kzalloc_obj(struct hw_info, GFP_KERNEL);
if (info == NULL)
return;
diff --git a/sound/firewire/fireworks/fireworks.c b/sound/firewire/fireworks/fireworks.c
index 3378c7dce88a..8b6b0e5ba497 100644
--- a/sound/firewire/fireworks/fireworks.c
+++ b/sound/firewire/fireworks/fireworks.c
@@ -76,7 +76,7 @@ get_hardware_info(struct snd_efw *efw)
char version[12] = {0};
int err;
- hwinfo = kzalloc(sizeof(struct snd_efw_hwinfo), GFP_KERNEL);
+ hwinfo = kzalloc_obj(struct snd_efw_hwinfo, GFP_KERNEL);
if (hwinfo == NULL)
return -ENOMEM;
diff --git a/sound/firewire/fireworks/fireworks_proc.c b/sound/firewire/fireworks/fireworks_proc.c
index 12288567b0cd..179b7110c8e2 100644
--- a/sound/firewire/fireworks/fireworks_proc.c
+++ b/sound/firewire/fireworks/fireworks_proc.c
@@ -31,7 +31,7 @@ proc_read_hwinfo(struct snd_info_entry *entry, struct snd_info_buffer *buffer)
unsigned short i;
struct snd_efw_hwinfo *hwinfo;
- hwinfo = kmalloc(sizeof(struct snd_efw_hwinfo), GFP_KERNEL);
+ hwinfo = kmalloc_obj(struct snd_efw_hwinfo, GFP_KERNEL);
if (hwinfo == NULL)
return;
diff --git a/sound/firewire/motu/motu-hwdep.c b/sound/firewire/motu/motu-hwdep.c
index 89dc436a0652..ea7f5d215060 100644
--- a/sound/firewire/motu/motu-hwdep.c
+++ b/sound/firewire/motu/motu-hwdep.c
@@ -185,7 +185,7 @@ static int hwdep_ioctl(struct snd_hwdep *hwdep, struct file *file,
if (!(motu->spec->flags & SND_MOTU_SPEC_REGISTER_DSP))
return -ENXIO;
- meter = kzalloc(sizeof(*meter), GFP_KERNEL);
+ meter = kzalloc_obj(*meter, GFP_KERNEL);
if (!meter)
return -ENOMEM;
@@ -207,7 +207,7 @@ static int hwdep_ioctl(struct snd_hwdep *hwdep, struct file *file,
if (!(motu->spec->flags & SND_MOTU_SPEC_COMMAND_DSP))
return -ENXIO;
- meter = kzalloc(sizeof(*meter), GFP_KERNEL);
+ meter = kzalloc_obj(*meter, GFP_KERNEL);
if (!meter)
return -ENOMEM;
@@ -229,7 +229,7 @@ static int hwdep_ioctl(struct snd_hwdep *hwdep, struct file *file,
if (!(motu->spec->flags & SND_MOTU_SPEC_REGISTER_DSP))
return -ENXIO;
- param = kzalloc(sizeof(*param), GFP_KERNEL);
+ param = kzalloc_obj(*param, GFP_KERNEL);
if (!param)
return -ENOMEM;
diff --git a/sound/firewire/packets-buffer.c b/sound/firewire/packets-buffer.c
index 0ecafd0c6722..3d5c3baf7e48 100644
--- a/sound/firewire/packets-buffer.c
+++ b/sound/firewire/packets-buffer.c
@@ -27,7 +27,7 @@ int iso_packets_buffer_init(struct iso_packets_buffer *b, struct fw_unit *unit,
void *p;
int err;
- b->packets = kmalloc_array(count, sizeof(*b->packets), GFP_KERNEL);
+ b->packets = kmalloc_objs(*b->packets, count, GFP_KERNEL);
if (!b->packets) {
err = -ENOMEM;
goto error;
diff --git a/sound/hda/codecs/analog.c b/sound/hda/codecs/analog.c
index 357ad5a6c0db..122d14e57313 100644
--- a/sound/hda/codecs/analog.c
+++ b/sound/hda/codecs/analog.c
@@ -191,7 +191,7 @@ static int alloc_ad_spec(struct hda_codec *codec)
{
struct ad198x_spec *spec;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
codec->spec = spec;
diff --git a/sound/hda/codecs/ca0110.c b/sound/hda/codecs/ca0110.c
index c75a9ff9460d..8638cef4ef20 100644
--- a/sound/hda/codecs/ca0110.c
+++ b/sound/hda/codecs/ca0110.c
@@ -35,7 +35,7 @@ static int ca0110_probe(struct hda_codec *codec, const struct hda_device_id *id)
struct hda_gen_spec *spec;
int err;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
snd_hda_gen_spec_init(spec);
diff --git a/sound/hda/codecs/ca0132.c b/sound/hda/codecs/ca0132.c
index dd054aedd501..af9236c56db4 100644
--- a/sound/hda/codecs/ca0132.c
+++ b/sound/hda/codecs/ca0132.c
@@ -3392,11 +3392,11 @@ static int dspxfr_image(struct hda_codec *codec,
if (fls_data == NULL)
return -EINVAL;
- dma_engine = kzalloc(sizeof(*dma_engine), GFP_KERNEL);
+ dma_engine = kzalloc_obj(*dma_engine, GFP_KERNEL);
if (!dma_engine)
return -ENOMEM;
- dma_engine->dmab = kzalloc(sizeof(*dma_engine->dmab), GFP_KERNEL);
+ dma_engine->dmab = kzalloc_obj(*dma_engine->dmab, GFP_KERNEL);
if (!dma_engine->dmab) {
kfree(dma_engine);
return -ENOMEM;
@@ -9831,9 +9831,8 @@ static int ca0132_prepare_verbs(struct hda_codec *codec)
*/
if (ca0132_use_pci_mmio(spec))
spec->desktop_init_verbs = ca0132_init_verbs1;
- spec->spec_init_verbs = kcalloc(NUM_SPEC_VERBS,
- sizeof(struct hda_verb),
- GFP_KERNEL);
+ spec->spec_init_verbs = kzalloc_objs(struct hda_verb, NUM_SPEC_VERBS,
+ GFP_KERNEL);
if (!spec->spec_init_verbs)
return -ENOMEM;
@@ -9900,7 +9899,7 @@ static int ca0132_codec_probe(struct hda_codec *codec,
codec_dbg(codec, "%s\n", __func__);
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
codec->spec = spec;
diff --git a/sound/hda/codecs/cirrus/cs420x.c b/sound/hda/codecs/cirrus/cs420x.c
index 13f5f1711fa4..454b6946b4a3 100644
--- a/sound/hda/codecs/cirrus/cs420x.c
+++ b/sound/hda/codecs/cirrus/cs420x.c
@@ -524,7 +524,7 @@ static struct cs_spec *cs_alloc_spec(struct hda_codec *codec, int vendor_nid)
{
struct cs_spec *spec;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return NULL;
codec->spec = spec;
diff --git a/sound/hda/codecs/cirrus/cs421x.c b/sound/hda/codecs/cirrus/cs421x.c
index a93e2e0bb391..28f3317a9ffd 100644
--- a/sound/hda/codecs/cirrus/cs421x.c
+++ b/sound/hda/codecs/cirrus/cs421x.c
@@ -162,7 +162,7 @@ static struct cs_spec *cs_alloc_spec(struct hda_codec *codec, int vendor_nid)
{
struct cs_spec *spec;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return NULL;
codec->spec = spec;
diff --git a/sound/hda/codecs/cirrus/cs8409.c b/sound/hda/codecs/cirrus/cs8409.c
index 61b6a15d6291..24b224c70e9f 100644
--- a/sound/hda/codecs/cirrus/cs8409.c
+++ b/sound/hda/codecs/cirrus/cs8409.c
@@ -61,7 +61,7 @@ static struct cs8409_spec *cs8409_alloc_spec(struct hda_codec *codec)
{
struct cs8409_spec *spec;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return NULL;
codec->spec = spec;
diff --git a/sound/hda/codecs/cm9825.c b/sound/hda/codecs/cm9825.c
index 52ee431f2e2c..a5330cff42ec 100644
--- a/sound/hda/codecs/cm9825.c
+++ b/sound/hda/codecs/cm9825.c
@@ -488,7 +488,7 @@ static int cm9825_probe(struct hda_codec *codec, const struct hda_device_id *id)
struct auto_pin_cfg *cfg;
int err = 0;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (spec == NULL)
return -ENOMEM;
diff --git a/sound/hda/codecs/cmedia.c b/sound/hda/codecs/cmedia.c
index 15e5a1118a6e..0494bbe15431 100644
--- a/sound/hda/codecs/cmedia.c
+++ b/sound/hda/codecs/cmedia.c
@@ -24,7 +24,7 @@ static int cmedia_probe(struct hda_codec *codec, const struct hda_device_id *id)
bool is_cmi8888 = id->vendor_id == 0x13f68888;
int err;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (spec == NULL)
return -ENOMEM;
diff --git a/sound/hda/codecs/conexant.c b/sound/hda/codecs/conexant.c
index f71123a47546..8f032102e558 100644
--- a/sound/hda/codecs/conexant.c
+++ b/sound/hda/codecs/conexant.c
@@ -1187,7 +1187,7 @@ static int cx_probe(struct hda_codec *codec, const struct hda_device_id *id)
codec_info(codec, "%s: BIOS auto-probing.\n", codec->core.chip_name);
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
snd_hda_gen_spec_init(&spec->gen);
diff --git a/sound/hda/codecs/generic.c b/sound/hda/codecs/generic.c
index b75a5e9470df..147582c5e51f 100644
--- a/sound/hda/codecs/generic.c
+++ b/sound/hda/codecs/generic.c
@@ -1991,7 +1991,7 @@ static int parse_output_paths(struct hda_codec *codec)
bool best_wired = true, best_mio = true;
bool hp_spk_swapped = false;
struct auto_pin_cfg *best_cfg __free(kfree) =
- kmalloc(sizeof(*best_cfg), GFP_KERNEL);
+ kmalloc_obj(*best_cfg, GFP_KERNEL);
if (!best_cfg)
return -ENOMEM;
@@ -6095,7 +6095,7 @@ static int snd_hda_gen_probe(struct hda_codec *codec,
struct hda_gen_spec *spec;
int err;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
snd_hda_gen_spec_init(spec);
diff --git a/sound/hda/codecs/hdmi/hdmi.c b/sound/hda/codecs/hdmi/hdmi.c
index c2e3adc7b3c0..bcc81018fff3 100644
--- a/sound/hda/codecs/hdmi/hdmi.c
+++ b/sound/hda/codecs/hdmi/hdmi.c
@@ -2105,7 +2105,7 @@ int snd_hda_hdmi_generic_alloc(struct hda_codec *codec)
{
struct hdmi_spec *spec;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
diff --git a/sound/hda/codecs/hdmi/simplehdmi.c b/sound/hda/codecs/hdmi/simplehdmi.c
index 193c8dc882af..fe4e73c3d6e6 100644
--- a/sound/hda/codecs/hdmi/simplehdmi.c
+++ b/sound/hda/codecs/hdmi/simplehdmi.c
@@ -175,7 +175,7 @@ int snd_hda_hdmi_simple_probe(struct hda_codec *codec,
struct hdmi_spec_per_cvt *per_cvt;
struct hdmi_spec_per_pin *per_pin;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
diff --git a/sound/hda/codecs/realtek/realtek.c b/sound/hda/codecs/realtek/realtek.c
index efe20b450529..3356fd95fb7f 100644
--- a/sound/hda/codecs/realtek/realtek.c
+++ b/sound/hda/codecs/realtek/realtek.c
@@ -221,7 +221,7 @@ void alc_update_knob_master(struct hda_codec *codec,
return;
struct snd_ctl_elem_value *uctl __free(kfree) =
- kzalloc(sizeof(*uctl), GFP_KERNEL);
+ kzalloc_obj(*uctl, GFP_KERNEL);
if (!uctl)
return;
val = snd_hda_codec_read(codec, jack->nid, 0,
@@ -1028,7 +1028,7 @@ EXPORT_SYMBOL_NS_GPL(alc_parse_auto_config, "SND_HDA_CODEC_REALTEK");
/* common preparation job for alc_spec */
int alc_alloc_spec(struct hda_codec *codec, hda_nid_t mixer_nid)
{
- struct alc_spec *spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ struct alc_spec *spec = kzalloc_obj(*spec, GFP_KERNEL);
int err;
if (!spec)
diff --git a/sound/hda/codecs/senarytech.c b/sound/hda/codecs/senarytech.c
index 63cda57cf786..ed3d9cbb3ea6 100644
--- a/sound/hda/codecs/senarytech.c
+++ b/sound/hda/codecs/senarytech.c
@@ -170,7 +170,7 @@ static int senary_probe(struct hda_codec *codec, const struct hda_device_id *id)
codec_info(codec, "%s: BIOS auto-probing.\n", codec->core.chip_name);
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
snd_hda_gen_spec_init(&spec->gen);
diff --git a/sound/hda/codecs/si3054.c b/sound/hda/codecs/si3054.c
index 87cf9da9f3bf..9074c74a0ed0 100644
--- a/sound/hda/codecs/si3054.c
+++ b/sound/hda/codecs/si3054.c
@@ -256,7 +256,7 @@ static void si3054_remove(struct hda_codec *codec)
static int si3054_probe(struct hda_codec *codec, const struct hda_device_id *id)
{
- codec->spec = kzalloc(sizeof(struct si3054_spec), GFP_KERNEL);
+ codec->spec = kzalloc_obj(struct si3054_spec, GFP_KERNEL);
if (!codec->spec)
return -ENOMEM;
return 0;
diff --git a/sound/hda/codecs/sigmatel.c b/sound/hda/codecs/sigmatel.c
index ecbee408d771..69d75cc63bd6 100644
--- a/sound/hda/codecs/sigmatel.c
+++ b/sound/hda/codecs/sigmatel.c
@@ -4456,7 +4456,7 @@ static int alloc_stac_spec(struct hda_codec *codec)
{
struct sigmatel_spec *spec;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
snd_hda_gen_spec_init(&spec->gen);
diff --git a/sound/hda/codecs/via.c b/sound/hda/codecs/via.c
index 6becea9bb810..42cce9f51931 100644
--- a/sound/hda/codecs/via.c
+++ b/sound/hda/codecs/via.c
@@ -102,7 +102,7 @@ static struct via_spec *via_new_spec(struct hda_codec *codec)
{
struct via_spec *spec;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (spec == NULL)
return NULL;
diff --git a/sound/hda/common/beep.c b/sound/hda/common/beep.c
index 13a7d92e8d8d..006eef5ceea8 100644
--- a/sound/hda/common/beep.c
+++ b/sound/hda/common/beep.c
@@ -220,7 +220,7 @@ int snd_hda_attach_beep_device(struct hda_codec *codec, int nid)
return 0; /* disabled by module option */
}
- beep = kzalloc(sizeof(*beep), GFP_KERNEL);
+ beep = kzalloc_obj(*beep, GFP_KERNEL);
if (beep == NULL)
return -ENOMEM;
snprintf(beep->phys, sizeof(beep->phys),
diff --git a/sound/hda/common/codec.c b/sound/hda/common/codec.c
index ffe7c69d5a32..6c787b603179 100644
--- a/sound/hda/common/codec.c
+++ b/sound/hda/common/codec.c
@@ -117,7 +117,7 @@ static int add_conn_list(struct hda_codec *codec, hda_nid_t nid, int len,
{
struct hda_conn_list *p;
- p = kmalloc(struct_size(p, conns, len), GFP_KERNEL);
+ p = kmalloc_flex(*p, conns, len, GFP_KERNEL);
if (!p)
return -ENOMEM;
p->len = len;
@@ -147,7 +147,7 @@ static int read_and_add_raw_conns(struct hda_codec *codec, hda_nid_t nid)
len = snd_hda_get_raw_connections(codec, nid, list, ARRAY_SIZE(list));
if (len == -ENOSPC) {
len = snd_hda_get_num_raw_conns(codec, nid);
- result = kmalloc_array(len, sizeof(hda_nid_t), GFP_KERNEL);
+ result = kmalloc_objs(hda_nid_t, len, GFP_KERNEL);
if (!result)
return -ENOMEM;
len = snd_hda_get_raw_connections(codec, nid, result, len);
@@ -703,7 +703,7 @@ struct hda_pcm *snd_hda_codec_pcm_new(struct hda_codec *codec,
struct hda_pcm *pcm;
va_list args;
- pcm = kzalloc(sizeof(*pcm), GFP_KERNEL);
+ pcm = kzalloc_obj(*pcm, GFP_KERNEL);
if (!pcm)
return NULL;
@@ -895,7 +895,7 @@ snd_hda_codec_device_init(struct hda_bus *bus, unsigned int codec_addr,
if (snd_BUG_ON(codec_addr > HDA_MAX_CODEC_ADDRESS))
return ERR_PTR(-EINVAL);
- codec = kzalloc(sizeof(*codec), GFP_KERNEL);
+ codec = kzalloc_obj(*codec, GFP_KERNEL);
if (!codec)
return ERR_PTR(-ENOMEM);
@@ -1855,7 +1855,7 @@ static int check_follower_present(struct hda_codec *codec,
static int put_kctl_with_value(struct snd_kcontrol *kctl, int val)
{
struct snd_ctl_elem_value *ucontrol __free(kfree) =
- kzalloc(sizeof(*ucontrol), GFP_KERNEL);
+ kzalloc_obj(*ucontrol, GFP_KERNEL);
if (!ucontrol)
return -ENOMEM;
diff --git a/sound/hda/common/controller.c b/sound/hda/common/controller.c
index b1cfd9bd4dcb..cf8502834484 100644
--- a/sound/hda/common/controller.c
+++ b/sound/hda/common/controller.c
@@ -715,7 +715,7 @@ int snd_hda_attach_pcm_stream(struct hda_bus *_bus, struct hda_codec *codec,
if (err < 0)
return err;
strscpy(pcm->name, cpcm->name, sizeof(pcm->name));
- apcm = kzalloc(sizeof(*apcm), GFP_KERNEL);
+ apcm = kzalloc_obj(*apcm, GFP_KERNEL);
if (apcm == NULL) {
snd_device_free(chip->card, pcm);
return -ENOMEM;
@@ -1283,7 +1283,7 @@ int azx_init_streams(struct azx *chip)
* and initialize
*/
for (i = 0; i < chip->num_streams; i++) {
- struct azx_dev *azx_dev = kzalloc(sizeof(*azx_dev), GFP_KERNEL);
+ struct azx_dev *azx_dev = kzalloc_obj(*azx_dev, GFP_KERNEL);
int dir, tag;
if (!azx_dev)
diff --git a/sound/hda/common/jack.c b/sound/hda/common/jack.c
index 7d7786df60ea..87120868d123 100644
--- a/sound/hda/common/jack.c
+++ b/sound/hda/common/jack.c
@@ -329,7 +329,7 @@ snd_hda_jack_detect_enable_callback_mst(struct hda_codec *codec, hda_nid_t nid,
callback = find_callback_from_list(jack, func);
if (func && !callback) {
- callback = kzalloc(sizeof(*callback), GFP_KERNEL);
+ callback = kzalloc_obj(*callback, GFP_KERNEL);
if (!callback)
return ERR_PTR(-ENOMEM);
callback->func = func;
diff --git a/sound/hda/common/proc.c b/sound/hda/common/proc.c
index 5f3f61519ba6..98cad7ea8cf1 100644
--- a/sound/hda/common/proc.c
+++ b/sound/hda/common/proc.c
@@ -689,7 +689,7 @@ static void print_dpmst_connections(struct snd_info_buffer *buffer, struct hda_c
if (conn_len <= 0)
return;
- conn = kmalloc_array(conn_len, sizeof(hda_nid_t), GFP_KERNEL);
+ conn = kmalloc_objs(hda_nid_t, conn_len, GFP_KERNEL);
if (!conn)
return;
@@ -845,9 +845,8 @@ static void print_codec_info(struct snd_info_entry *entry,
if (wid_caps & AC_WCAP_CONN_LIST) {
conn_len = snd_hda_get_num_raw_conns(codec, nid);
if (conn_len > 0) {
- conn = kmalloc_array(conn_len,
- sizeof(hda_nid_t),
- GFP_KERNEL);
+ conn = kmalloc_objs(hda_nid_t, conn_len,
+ GFP_KERNEL);
if (!conn)
return;
if (snd_hda_get_raw_connections(codec, nid, conn,
diff --git a/sound/hda/core/ext/controller.c b/sound/hda/core/ext/controller.c
index 9eea3ea2dae0..0c12ff36d992 100644
--- a/sound/hda/core/ext/controller.c
+++ b/sound/hda/core/ext/controller.c
@@ -89,7 +89,7 @@ int snd_hdac_ext_bus_get_ml_capabilities(struct hdac_bus *bus)
dev_dbg(bus->dev, "In %s Link count: %d\n", __func__, link_count);
for (idx = 0; idx < link_count; idx++) {
- hlink = kzalloc(sizeof(*hlink), GFP_KERNEL);
+ hlink = kzalloc_obj(*hlink, GFP_KERNEL);
if (!hlink)
return -ENOMEM;
hlink->index = idx;
diff --git a/sound/hda/core/ext/stream.c b/sound/hda/core/ext/stream.c
index b4759198e51d..a213e5b06bdb 100644
--- a/sound/hda/core/ext/stream.c
+++ b/sound/hda/core/ext/stream.c
@@ -101,8 +101,8 @@ int snd_hdac_ext_stream_init_all(struct hdac_bus *bus, int start_idx,
setup_op = snd_hdac_stream_setup;
for (i = 0; i < num_stream; i++) {
- struct hdac_ext_stream *hext_stream =
- kzalloc(sizeof(*hext_stream), GFP_KERNEL);
+ struct hdac_ext_stream *hext_stream = kzalloc_obj(*hext_stream,
+ GFP_KERNEL);
if (!hext_stream)
return -ENOMEM;
tag = ++stream_tag;
diff --git a/sound/hda/core/sysfs.c b/sound/hda/core/sysfs.c
index bffe52859dba..443f00d037a3 100644
--- a/sound/hda/core/sysfs.c
+++ b/sound/hda/core/sysfs.c
@@ -339,7 +339,7 @@ static int add_widget_node(struct kobject *parent, hda_nid_t nid,
const struct attribute_group *group,
struct kobject **res)
{
- struct kobject *kobj = kzalloc(sizeof(*kobj), GFP_KERNEL);
+ struct kobject *kobj = kzalloc_obj(*kobj, GFP_KERNEL);
int err;
if (!kobj)
@@ -366,7 +366,7 @@ static int widget_tree_create(struct hdac_device *codec)
int i, err;
hda_nid_t nid;
- tree = codec->widgets = kzalloc(sizeof(*tree), GFP_KERNEL);
+ tree = codec->widgets = kzalloc_obj(*tree, GFP_KERNEL);
if (!tree)
return -ENOMEM;
@@ -374,8 +374,8 @@ static int widget_tree_create(struct hdac_device *codec)
if (!tree->root)
return -ENOMEM;
- tree->nodes = kcalloc(codec->num_nodes + 1, sizeof(*tree->nodes),
- GFP_KERNEL);
+ tree->nodes = kzalloc_objs(*tree->nodes, codec->num_nodes + 1,
+ GFP_KERNEL);
if (!tree->nodes)
return -ENOMEM;
@@ -436,7 +436,7 @@ int hda_widget_sysfs_reinit(struct hdac_device *codec,
if (!tree)
return -ENOMEM;
- tree->nodes = kcalloc(num_nodes + 1, sizeof(*tree->nodes), GFP_KERNEL);
+ tree->nodes = kzalloc_objs(*tree->nodes, num_nodes + 1, GFP_KERNEL);
if (!tree->nodes) {
kfree(tree);
return -ENOMEM;
diff --git a/sound/i2c/cs8427.c b/sound/i2c/cs8427.c
index 46f081268348..a4717449cc2f 100644
--- a/sound/i2c/cs8427.c
+++ b/sound/i2c/cs8427.c
@@ -269,7 +269,7 @@ int snd_cs8427_create(struct snd_i2c_bus *bus,
&device);
if (err < 0)
return err;
- chip = device->private_data = kzalloc(sizeof(*chip), GFP_KERNEL);
+ chip = device->private_data = kzalloc_obj(*chip, GFP_KERNEL);
if (chip == NULL) {
snd_i2c_device_free(device);
return -ENOMEM;
diff --git a/sound/i2c/i2c.c b/sound/i2c/i2c.c
index 847e3b6ca601..8bb49f0d97e6 100644
--- a/sound/i2c/i2c.c
+++ b/sound/i2c/i2c.c
@@ -72,7 +72,7 @@ int snd_i2c_bus_create(struct snd_card *card, const char *name,
};
*ri2c = NULL;
- bus = kzalloc(sizeof(*bus), GFP_KERNEL);
+ bus = kzalloc_obj(*bus, GFP_KERNEL);
if (bus == NULL)
return -ENOMEM;
mutex_init(&bus->lock_mutex);
@@ -104,7 +104,7 @@ int snd_i2c_device_create(struct snd_i2c_bus *bus, const char *name,
*rdevice = NULL;
if (snd_BUG_ON(!bus))
return -EINVAL;
- device = kzalloc(sizeof(*device), GFP_KERNEL);
+ device = kzalloc_obj(*device, GFP_KERNEL);
if (device == NULL)
return -ENOMEM;
device->addr = addr;
diff --git a/sound/i2c/other/ak4113.c b/sound/i2c/other/ak4113.c
index 70b3f7e17f9e..b1bfc71aab22 100644
--- a/sound/i2c/other/ak4113.c
+++ b/sound/i2c/other/ak4113.c
@@ -64,7 +64,7 @@ int snd_ak4113_create(struct snd_card *card, ak4113_read_t *read,
.dev_free = snd_ak4113_dev_free,
};
- chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+ chip = kzalloc_obj(*chip, GFP_KERNEL);
if (chip == NULL)
return -ENOMEM;
spin_lock_init(&chip->lock);
diff --git a/sound/i2c/other/ak4114.c b/sound/i2c/other/ak4114.c
index 0e3a272c1490..6d51e2a8db2b 100644
--- a/sound/i2c/other/ak4114.c
+++ b/sound/i2c/other/ak4114.c
@@ -64,7 +64,7 @@ int snd_ak4114_create(struct snd_card *card,
.dev_free = snd_ak4114_dev_free,
};
- chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+ chip = kzalloc_obj(*chip, GFP_KERNEL);
if (chip == NULL)
return -ENOMEM;
spin_lock_init(&chip->lock);
diff --git a/sound/i2c/other/ak4117.c b/sound/i2c/other/ak4117.c
index d2ec20f885f0..8f4657aa6525 100644
--- a/sound/i2c/other/ak4117.c
+++ b/sound/i2c/other/ak4117.c
@@ -57,7 +57,7 @@ int snd_ak4117_create(struct snd_card *card, ak4117_read_t *read, ak4117_write_t
.dev_free = snd_ak4117_dev_free,
};
- chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+ chip = kzalloc_obj(*chip, GFP_KERNEL);
if (chip == NULL)
return -ENOMEM;
spin_lock_init(&chip->lock);
diff --git a/sound/i2c/tea6330t.c b/sound/i2c/tea6330t.c
index 676d58054944..b63dfc50c1c2 100644
--- a/sound/i2c/tea6330t.c
+++ b/sound/i2c/tea6330t.c
@@ -285,7 +285,7 @@ int snd_tea6330t_update_mixer(struct snd_card *card,
u8 default_treble, default_bass;
unsigned char bytes[7];
- tea = kzalloc(sizeof(*tea), GFP_KERNEL);
+ tea = kzalloc_obj(*tea, GFP_KERNEL);
if (tea == NULL)
return -ENOMEM;
err = snd_i2c_device_create(bus, "TEA6330T", TEA6330T_ADDR, &device);
diff --git a/sound/isa/gus/gus_main.c b/sound/isa/gus/gus_main.c
index 5f50a39c6f16..0b6e56c16e38 100644
--- a/sound/isa/gus/gus_main.c
+++ b/sound/isa/gus/gus_main.c
@@ -116,7 +116,7 @@ int snd_gus_create(struct snd_card *card,
};
*rgus = NULL;
- gus = kzalloc(sizeof(*gus), GFP_KERNEL);
+ gus = kzalloc_obj(*gus, GFP_KERNEL);
if (gus == NULL)
return -ENOMEM;
spin_lock_init(&gus->reg_lock);
diff --git a/sound/isa/gus/gus_mem.c b/sound/isa/gus/gus_mem.c
index 8d95d8d5abdf..65e5426a43fd 100644
--- a/sound/isa/gus/gus_mem.c
+++ b/sound/isa/gus/gus_mem.c
@@ -21,7 +21,7 @@ snd_gf1_mem_xalloc(struct snd_gf1_mem *alloc, struct snd_gf1_mem_block *block,
{
struct snd_gf1_mem_block *pblock, *nblock;
- nblock = kmalloc(sizeof(struct snd_gf1_mem_block), GFP_KERNEL);
+ nblock = kmalloc_obj(struct snd_gf1_mem_block, GFP_KERNEL);
if (nblock == NULL)
return NULL;
*nblock = *block;
diff --git a/sound/isa/gus/gus_mem_proc.c b/sound/isa/gus/gus_mem_proc.c
index b5e1d1649500..fdb14acaddcf 100644
--- a/sound/isa/gus/gus_mem_proc.c
+++ b/sound/isa/gus/gus_mem_proc.c
@@ -50,7 +50,7 @@ int snd_gf1_mem_proc_init(struct snd_gus_card * gus)
for (idx = 0; idx < 4; idx++) {
if (gus->gf1.mem_alloc.banks_8[idx].size > 0) {
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (priv == NULL)
return -ENOMEM;
priv->gus = gus;
@@ -67,7 +67,7 @@ int snd_gf1_mem_proc_init(struct snd_gus_card * gus)
}
for (idx = 0; idx < 4; idx++) {
if (gus->gf1.rom_present & (1 << idx)) {
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kzalloc_obj(*priv, GFP_KERNEL);
if (priv == NULL)
return -ENOMEM;
priv->rom = 1;
diff --git a/sound/isa/gus/gus_pcm.c b/sound/isa/gus/gus_pcm.c
index 9249cbff30f3..b5da8d970b3f 100644
--- a/sound/isa/gus/gus_pcm.c
+++ b/sound/isa/gus/gus_pcm.c
@@ -638,7 +638,7 @@ static int snd_gf1_pcm_playback_open(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime;
int err;
- pcmp = kzalloc(sizeof(*pcmp), GFP_KERNEL);
+ pcmp = kzalloc_obj(*pcmp, GFP_KERNEL);
if (pcmp == NULL)
return -ENOMEM;
pcmp->gus = gus;
diff --git a/sound/isa/sb/emu8000_pcm.c b/sound/isa/sb/emu8000_pcm.c
index 656a655d618d..a3071cd2e9a8 100644
--- a/sound/isa/sb/emu8000_pcm.c
+++ b/sound/isa/sb/emu8000_pcm.c
@@ -221,7 +221,7 @@ static int emu8k_pcm_open(struct snd_pcm_substream *subs)
struct snd_emu8k_pcm *rec;
struct snd_pcm_runtime *runtime = subs->runtime;
- rec = kzalloc(sizeof(*rec), GFP_KERNEL);
+ rec = kzalloc_obj(*rec, GFP_KERNEL);
if (! rec)
return -ENOMEM;
diff --git a/sound/isa/sb/sb16_csp.c b/sound/isa/sb/sb16_csp.c
index 9ad71a9fc18d..834b38de9afd 100644
--- a/sound/isa/sb/sb16_csp.c
+++ b/sound/isa/sb/sb16_csp.c
@@ -117,7 +117,7 @@ int snd_sb_csp_new(struct snd_sb *chip, int device, struct snd_hwdep ** rhwdep)
if (err < 0)
return err;
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p) {
snd_device_free(chip->card, hw);
return -ENOMEM;
diff --git a/sound/isa/wavefront/wavefront_synth.c b/sound/isa/wavefront/wavefront_synth.c
index 0d78533e1cfd..0b91b3b28f7f 100644
--- a/sound/isa/wavefront/wavefront_synth.c
+++ b/sound/isa/wavefront/wavefront_synth.c
@@ -1381,7 +1381,7 @@ wavefront_load_patch (snd_wavefront_t *dev, const char __user *addr)
wavefront_patch_info *header;
int err;
- header = kmalloc(sizeof(*header), GFP_KERNEL);
+ header = kmalloc_obj(*header, GFP_KERNEL);
if (! header)
return -ENOMEM;
diff --git a/sound/mips/hal2.c b/sound/mips/hal2.c
index f88e6a6733a5..c865c7ba3636 100644
--- a/sound/mips/hal2.c
+++ b/sound/mips/hal2.c
@@ -773,7 +773,7 @@ static int hal2_create(struct snd_card *card, struct snd_hal2 **rchip)
struct hpc3_regs *hpc3 = hpc3c0;
int err;
- hal2 = kzalloc(sizeof(*hal2), GFP_KERNEL);
+ hal2 = kzalloc_obj(*hal2, GFP_KERNEL);
if (!hal2)
return -ENOMEM;
diff --git a/sound/mips/sgio2audio.c b/sound/mips/sgio2audio.c
index 077fdf2181c1..af2690d901b4 100644
--- a/sound/mips/sgio2audio.c
+++ b/sound/mips/sgio2audio.c
@@ -788,7 +788,7 @@ static int snd_sgio2audio_create(struct snd_card *card,
if (!(readq(&mace->perif.audio.control) & AUDIO_CONTROL_CODEC_PRESENT))
return -ENOENT;
- chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+ chip = kzalloc_obj(*chip, GFP_KERNEL);
if (chip == NULL)
return -ENOMEM;
diff --git a/sound/parisc/harmony.c b/sound/parisc/harmony.c
index 4b5a54da25fb..e9f30201cf4b 100644
--- a/sound/parisc/harmony.c
+++ b/sound/parisc/harmony.c
@@ -852,7 +852,7 @@ snd_harmony_create(struct snd_card *card,
*rchip = NULL;
- h = kzalloc(sizeof(*h), GFP_KERNEL);
+ h = kzalloc_obj(*h, GFP_KERNEL);
if (h == NULL)
return -ENOMEM;
diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c
index c54bdefa5afe..7392bc15affa 100644
--- a/sound/pci/ac97/ac97_codec.c
+++ b/sound/pci/ac97/ac97_codec.c
@@ -1957,7 +1957,7 @@ int snd_ac97_bus(struct snd_card *card, int num,
if (snd_BUG_ON(!card))
return -EINVAL;
- bus = kzalloc(sizeof(*bus), GFP_KERNEL);
+ bus = kzalloc_obj(*bus, GFP_KERNEL);
if (bus == NULL)
return -ENOMEM;
bus->card = card;
@@ -2069,7 +2069,7 @@ int snd_ac97_mixer(struct snd_ac97_bus *bus, struct snd_ac97_template *template,
return -EBUSY;
card = bus->card;
- ac97 = kzalloc(sizeof(*ac97), GFP_KERNEL);
+ ac97 = kzalloc_obj(*ac97, GFP_KERNEL);
if (ac97 == NULL)
return -ENOMEM;
ac97->private_data = template->private_data;
diff --git a/sound/pci/ac97/ac97_pcm.c b/sound/pci/ac97/ac97_pcm.c
index 4715d88ff8f4..9df21c42d624 100644
--- a/sound/pci/ac97/ac97_pcm.c
+++ b/sound/pci/ac97/ac97_pcm.c
@@ -441,7 +441,7 @@ int snd_ac97_pcm_assign(struct snd_ac97_bus *bus,
unsigned int rates;
struct snd_ac97 *codec;
- rpcms = kcalloc(pcms_count, sizeof(struct ac97_pcm), GFP_KERNEL);
+ rpcms = kzalloc_objs(struct ac97_pcm, pcms_count, GFP_KERNEL);
if (rpcms == NULL)
return -ENOMEM;
memset(avail_slots, 0, sizeof(avail_slots));
diff --git a/sound/pci/ak4531_codec.c b/sound/pci/ak4531_codec.c
index cdad47e4098d..c7f32b1de462 100644
--- a/sound/pci/ak4531_codec.c
+++ b/sound/pci/ak4531_codec.c
@@ -373,7 +373,7 @@ int snd_ak4531_mixer(struct snd_card *card,
return -EINVAL;
if (rak4531)
*rak4531 = NULL;
- ak4531 = kzalloc(sizeof(*ak4531), GFP_KERNEL);
+ ak4531 = kzalloc_obj(*ak4531, GFP_KERNEL);
if (ak4531 == NULL)
return -ENOMEM;
*ak4531 = *_ak4531;
diff --git a/sound/pci/als300.c b/sound/pci/als300.c
index 733e84def5a7..5b82777522d8 100644
--- a/sound/pci/als300.c
+++ b/sound/pci/als300.c
@@ -342,8 +342,7 @@ static int snd_als300_playback_open(struct snd_pcm_substream *substream)
{
struct snd_als300 *chip = snd_pcm_substream_chip(substream);
struct snd_pcm_runtime *runtime = substream->runtime;
- struct snd_als300_substream_data *data = kzalloc(sizeof(*data),
- GFP_KERNEL);
+ struct snd_als300_substream_data *data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -370,8 +369,7 @@ static int snd_als300_capture_open(struct snd_pcm_substream *substream)
{
struct snd_als300 *chip = snd_pcm_substream_chip(substream);
struct snd_pcm_runtime *runtime = substream->runtime;
- struct snd_als300_substream_data *data = kzalloc(sizeof(*data),
- GFP_KERNEL);
+ struct snd_als300_substream_data *data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/sound/pci/asihpi/asihpi.c b/sound/pci/asihpi/asihpi.c
index fd0a67b772d1..c5f38fc88c86 100644
--- a/sound/pci/asihpi/asihpi.c
+++ b/sound/pci/asihpi/asihpi.c
@@ -975,7 +975,7 @@ static int snd_card_asihpi_playback_open(struct snd_pcm_substream *substream)
struct snd_pcm_hardware snd_card_asihpi_playback;
int err;
- dpcm = kzalloc(sizeof(*dpcm), GFP_KERNEL);
+ dpcm = kzalloc_obj(*dpcm, GFP_KERNEL);
if (dpcm == NULL)
return -ENOMEM;
@@ -1145,7 +1145,7 @@ static int snd_card_asihpi_capture_open(struct snd_pcm_substream *substream)
struct snd_pcm_hardware snd_card_asihpi_capture;
int err;
- dpcm = kzalloc(sizeof(*dpcm), GFP_KERNEL);
+ dpcm = kzalloc_obj(*dpcm, GFP_KERNEL);
if (dpcm == NULL)
return -ENOMEM;
diff --git a/sound/pci/asihpi/hpi6000.c b/sound/pci/asihpi/hpi6000.c
index b08578c93c6a..41b2892a9312 100644
--- a/sound/pci/asihpi/hpi6000.c
+++ b/sound/pci/asihpi/hpi6000.c
@@ -406,7 +406,7 @@ static void subsys_create_adapter(struct hpi_message *phm,
memset(&ao, 0, sizeof(ao));
- ao.priv = kzalloc(sizeof(struct hpi_hw_obj), GFP_KERNEL);
+ ao.priv = kzalloc_obj(struct hpi_hw_obj, GFP_KERNEL);
if (!ao.priv) {
HPI_DEBUG_LOG(ERROR, "can't get mem for adapter object\n");
phr->error = HPI_ERROR_MEMORY_ALLOC;
diff --git a/sound/pci/asihpi/hpi6205.c b/sound/pci/asihpi/hpi6205.c
index c7d7eff86727..c484d929d6da 100644
--- a/sound/pci/asihpi/hpi6205.c
+++ b/sound/pci/asihpi/hpi6205.c
@@ -461,7 +461,7 @@ static void subsys_create_adapter(struct hpi_message *phm,
memset(&ao, 0, sizeof(ao));
- ao.priv = kzalloc(sizeof(struct hpi_hw_obj), GFP_KERNEL);
+ ao.priv = kzalloc_obj(struct hpi_hw_obj, GFP_KERNEL);
if (!ao.priv) {
HPI_DEBUG_LOG(ERROR, "can't get mem for adapter object\n");
phr->error = HPI_ERROR_MEMORY_ALLOC;
diff --git a/sound/pci/asihpi/hpicmn.c b/sound/pci/asihpi/hpicmn.c
index 7d1abaedb46a..2378bdeb1f23 100644
--- a/sound/pci/asihpi/hpicmn.c
+++ b/sound/pci/asihpi/hpicmn.c
@@ -641,13 +641,12 @@ void hpi_cmn_control_cache_sync_to_msg(struct hpi_control_cache *p_cache,
struct hpi_control_cache *hpi_alloc_control_cache(const u32 control_count,
const u32 size_in_bytes, u8 *p_dsp_control_buffer)
{
- struct hpi_control_cache *p_cache =
- kmalloc(sizeof(*p_cache), GFP_KERNEL);
+ struct hpi_control_cache *p_cache = kmalloc_obj(*p_cache, GFP_KERNEL);
if (!p_cache)
return NULL;
p_cache->p_info =
- kcalloc(control_count, sizeof(*p_cache->p_info), GFP_KERNEL);
+ kzalloc_objs(*p_cache->p_info, control_count, GFP_KERNEL);
if (!p_cache->p_info) {
kfree(p_cache);
return NULL;
diff --git a/sound/pci/asihpi/hpidspcd.c b/sound/pci/asihpi/hpidspcd.c
index 9acc0ac75eca..8eda87107b28 100644
--- a/sound/pci/asihpi/hpidspcd.c
+++ b/sound/pci/asihpi/hpidspcd.c
@@ -69,7 +69,7 @@ short hpi_dsp_code_open(u32 adapter, void *os_data, struct dsp_code *dsp_code,
}
HPI_DEBUG_LOG(DEBUG, "dsp code %s opened\n", fw_name);
- dsp_code->pvt = kmalloc(sizeof(*dsp_code->pvt), GFP_KERNEL);
+ dsp_code->pvt = kmalloc_obj(*dsp_code->pvt, GFP_KERNEL);
if (!dsp_code->pvt) {
err_ret = HPI_ERROR_MEMORY_ALLOC;
goto error2;
diff --git a/sound/pci/asihpi/hpioctl.c b/sound/pci/asihpi/hpioctl.c
index 9fb0c8e503df..24c116ab9cf5 100644
--- a/sound/pci/asihpi/hpioctl.c
+++ b/sound/pci/asihpi/hpioctl.c
@@ -105,8 +105,8 @@ long asihpi_hpi_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
if (cmd != HPI_IOCTL_LINUX)
return -EINVAL;
- hm = kmalloc(sizeof(*hm), GFP_KERNEL);
- hr = kzalloc(sizeof(*hr), GFP_KERNEL);
+ hm = kmalloc_obj(*hm, GFP_KERNEL);
+ hr = kzalloc_obj(*hr, GFP_KERNEL);
if (!hm || !hr) {
err = -ENOMEM;
goto out;
diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c
index 41774e2ef53f..bdf9453939f3 100644
--- a/sound/pci/ca0106/ca0106_main.c
+++ b/sound/pci/ca0106/ca0106_main.c
@@ -543,7 +543,7 @@ static int snd_ca0106_pcm_open_playback_channel(struct snd_pcm_substream *substr
struct snd_pcm_runtime *runtime = substream->runtime;
int err;
- epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
+ epcm = kzalloc_obj(*epcm, GFP_KERNEL);
if (epcm == NULL)
return -ENOMEM;
@@ -638,7 +638,7 @@ static int snd_ca0106_pcm_open_capture_channel(struct snd_pcm_substream *substre
struct snd_pcm_runtime *runtime = substream->runtime;
int err;
- epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
+ epcm = kzalloc_obj(*epcm, GFP_KERNEL);
if (!epcm)
return -ENOMEM;
diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c
index 0666be543474..189948f70d84 100644
--- a/sound/pci/cmipci.c
+++ b/sound/pci/cmipci.c
@@ -1096,7 +1096,7 @@ static int save_mixer_state(struct cmipci *cm)
struct snd_ctl_elem_value *val;
unsigned int i;
- val = kmalloc(sizeof(*val), GFP_KERNEL);
+ val = kmalloc_obj(*val, GFP_KERNEL);
if (!val)
return -ENOMEM;
for (i = 0; i < CM_SAVED_MIXERS; i++) {
@@ -1130,7 +1130,7 @@ static void restore_mixer_state(struct cmipci *cm)
struct snd_ctl_elem_value *val;
unsigned int i;
- val = kmalloc(sizeof(*val), GFP_KERNEL);
+ val = kmalloc_obj(*val, GFP_KERNEL);
if (!val)
return;
cm->mixer_insensitive = 0; /* at first clear this;
diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c
index b96ab7fd464c..d7bed722d939 100644
--- a/sound/pci/cs46xx/cs46xx_lib.c
+++ b/sound/pci/cs46xx/cs46xx_lib.c
@@ -401,7 +401,7 @@ static int load_firmware(struct snd_cs46xx *chip,
}
err = -ENOMEM;
- module = kzalloc(sizeof(*module), GFP_KERNEL);
+ module = kzalloc_obj(*module, GFP_KERNEL);
if (!module)
goto error;
module->module_name = kstrdup(fw_name, GFP_KERNEL);
@@ -414,7 +414,7 @@ static int load_firmware(struct snd_cs46xx *chip,
if (nums >= 40)
goto error_inval;
module->symbol_table.symbols =
- kcalloc(nums, sizeof(struct dsp_symbol_entry), GFP_KERNEL);
+ kzalloc_objs(struct dsp_symbol_entry, nums, GFP_KERNEL);
if (!module->symbol_table.symbols)
goto error;
for (i = 0; i < nums; i++) {
@@ -434,7 +434,7 @@ static int load_firmware(struct snd_cs46xx *chip,
if (nums > 10)
goto error_inval;
module->segments =
- kcalloc(nums, sizeof(struct dsp_segment_desc), GFP_KERNEL);
+ kzalloc_objs(struct dsp_segment_desc, nums, GFP_KERNEL);
if (!module->segments)
goto error;
for (i = 0; i < nums; i++) {
diff --git a/sound/pci/cs46xx/dsp_spos.c b/sound/pci/cs46xx/dsp_spos.c
index 3d34575a0e8f..f106f46aeb87 100644
--- a/sound/pci/cs46xx/dsp_spos.c
+++ b/sound/pci/cs46xx/dsp_spos.c
@@ -221,7 +221,8 @@ add_symbol (struct snd_cs46xx * chip, char * symbol_name, u32 address, int type)
struct dsp_spos_instance *cs46xx_dsp_spos_create (struct snd_cs46xx * chip)
{
- struct dsp_spos_instance * ins = kzalloc(sizeof(struct dsp_spos_instance), GFP_KERNEL);
+ struct dsp_spos_instance * ins = kzalloc_obj(struct dsp_spos_instance,
+ GFP_KERNEL);
if (ins == NULL)
return NULL;
@@ -231,9 +232,8 @@ struct dsp_spos_instance *cs46xx_dsp_spos_create (struct snd_cs46xx * chip)
vmalloc(array_size(DSP_MAX_SYMBOLS,
sizeof(struct dsp_symbol_entry)));
ins->code.data = kmalloc(DSP_CODE_BYTE_SIZE, GFP_KERNEL);
- ins->modules = kmalloc_array(DSP_MAX_MODULES,
- sizeof(struct dsp_module_desc),
- GFP_KERNEL);
+ ins->modules = kmalloc_objs(struct dsp_module_desc, DSP_MAX_MODULES,
+ GFP_KERNEL);
if (!ins->symbol_table.symbols || !ins->code.data || !ins->modules) {
cs46xx_dsp_spos_destroy(chip);
goto error;
diff --git a/sound/pci/cs46xx/dsp_spos_scb_lib.c b/sound/pci/cs46xx/dsp_spos_scb_lib.c
index 32ed415bf427..c55ff043d1d7 100644
--- a/sound/pci/cs46xx/dsp_spos_scb_lib.c
+++ b/sound/pci/cs46xx/dsp_spos_scb_lib.c
@@ -234,7 +234,7 @@ void cs46xx_dsp_proc_register_scb_desc (struct snd_cs46xx *chip,
entry = snd_info_create_card_entry(ins->snd_card, scb->scb_name,
ins->proc_dsp_dir);
if (entry) {
- scb_info = kmalloc(sizeof(struct proc_scb_info), GFP_KERNEL);
+ scb_info = kmalloc_obj(struct proc_scb_info, GFP_KERNEL);
if (!scb_info) {
snd_info_free_entry(entry);
entry = NULL;
diff --git a/sound/pci/ctxfi/ctamixer.c b/sound/pci/ctxfi/ctamixer.c
index c30162be27ee..c22e3173ec1b 100644
--- a/sound/pci/ctxfi/ctamixer.c
+++ b/sound/pci/ctxfi/ctamixer.c
@@ -296,7 +296,7 @@ int amixer_mgr_create(struct hw *hw, void **ramixer_mgr)
struct amixer_mgr *amixer_mgr;
*ramixer_mgr = NULL;
- amixer_mgr = kzalloc(sizeof(*amixer_mgr), GFP_KERNEL);
+ amixer_mgr = kzalloc_obj(*amixer_mgr, GFP_KERNEL);
if (!amixer_mgr)
return -ENOMEM;
@@ -448,7 +448,7 @@ int sum_mgr_create(struct hw *hw, void **rsum_mgr)
struct sum_mgr *sum_mgr;
*rsum_mgr = NULL;
- sum_mgr = kzalloc(sizeof(*sum_mgr), GFP_KERNEL);
+ sum_mgr = kzalloc_obj(*sum_mgr, GFP_KERNEL);
if (!sum_mgr)
return -ENOMEM;
diff --git a/sound/pci/ctxfi/ctatc.c b/sound/pci/ctxfi/ctatc.c
index a25a599fc5be..f130a2722a70 100644
--- a/sound/pci/ctxfi/ctatc.c
+++ b/sound/pci/ctxfi/ctatc.c
@@ -1723,7 +1723,7 @@ int ct_atc_create(struct snd_card *card, struct pci_dev *pci,
*ratc = NULL;
- atc = kzalloc(sizeof(*atc), GFP_KERNEL);
+ atc = kzalloc_obj(*atc, GFP_KERNEL);
if (!atc)
return -ENOMEM;
diff --git a/sound/pci/ctxfi/ctdaio.c b/sound/pci/ctxfi/ctdaio.c
index 1c8f8efd836c..12653f7cd9e8 100644
--- a/sound/pci/ctxfi/ctdaio.c
+++ b/sound/pci/ctxfi/ctdaio.c
@@ -159,7 +159,7 @@ static int dao_set_left_input(struct dao *dao, struct rsc *input)
struct daio *daio = &dao->daio;
int i;
- entry = kcalloc(daio->rscl.msr, sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_objs(*entry, daio->rscl.msr, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -188,7 +188,7 @@ static int dao_set_right_input(struct dao *dao, struct rsc *input)
struct daio *daio = &dao->daio;
int i;
- entry = kcalloc(daio->rscr.msr, sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_objs(*entry, daio->rscr.msr, GFP_KERNEL);
if (!entry)
return -ENOMEM;
@@ -660,7 +660,7 @@ int daio_mgr_create(struct hw *hw, void **rdaio_mgr)
struct imapper *entry;
*rdaio_mgr = NULL;
- daio_mgr = kzalloc(sizeof(*daio_mgr), GFP_KERNEL);
+ daio_mgr = kzalloc_obj(*daio_mgr, GFP_KERNEL);
if (!daio_mgr)
return -ENOMEM;
@@ -671,7 +671,7 @@ int daio_mgr_create(struct hw *hw, void **rdaio_mgr)
spin_lock_init(&daio_mgr->mgr_lock);
spin_lock_init(&daio_mgr->imap_lock);
INIT_LIST_HEAD(&daio_mgr->imappers);
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
err = -ENOMEM;
goto error2;
diff --git a/sound/pci/ctxfi/cthw20k1.c b/sound/pci/ctxfi/cthw20k1.c
index ea0a928937b6..0851453b8565 100644
--- a/sound/pci/ctxfi/cthw20k1.c
+++ b/sound/pci/ctxfi/cthw20k1.c
@@ -157,7 +157,7 @@ static int src_get_rsc_ctrl_blk(void **rblk)
struct src_rsc_ctrl_blk *blk;
*rblk = NULL;
- blk = kzalloc(sizeof(*blk), GFP_KERNEL);
+ blk = kzalloc_obj(*blk, GFP_KERNEL);
if (!blk)
return -ENOMEM;
@@ -483,7 +483,7 @@ static int src_mgr_get_ctrl_blk(void **rblk)
struct src_mgr_ctrl_blk *blk;
*rblk = NULL;
- blk = kzalloc(sizeof(*blk), GFP_KERNEL);
+ blk = kzalloc_obj(*blk, GFP_KERNEL);
if (!blk)
return -ENOMEM;
@@ -504,7 +504,7 @@ static int srcimp_mgr_get_ctrl_blk(void **rblk)
struct srcimp_mgr_ctrl_blk *blk;
*rblk = NULL;
- blk = kzalloc(sizeof(*blk), GFP_KERNEL);
+ blk = kzalloc_obj(*blk, GFP_KERNEL);
if (!blk)
return -ENOMEM;
@@ -691,7 +691,7 @@ static int amixer_rsc_get_ctrl_blk(void **rblk)
struct amixer_rsc_ctrl_blk *blk;
*rblk = NULL;
- blk = kzalloc(sizeof(*blk), GFP_KERNEL);
+ blk = kzalloc_obj(*blk, GFP_KERNEL);
if (!blk)
return -ENOMEM;
@@ -898,7 +898,7 @@ static int dai_get_ctrl_blk(void **rblk)
struct dai_ctrl_blk *blk;
*rblk = NULL;
- blk = kzalloc(sizeof(*blk), GFP_KERNEL);
+ blk = kzalloc_obj(*blk, GFP_KERNEL);
if (!blk)
return -ENOMEM;
@@ -947,7 +947,7 @@ static int dao_get_ctrl_blk(void **rblk)
struct dao_ctrl_blk *blk;
*rblk = NULL;
- blk = kzalloc(sizeof(*blk), GFP_KERNEL);
+ blk = kzalloc_obj(*blk, GFP_KERNEL);
if (!blk)
return -ENOMEM;
@@ -1141,7 +1141,7 @@ static int daio_mgr_get_ctrl_blk(struct hw *hw, void **rblk)
struct daio_mgr_ctrl_blk *blk;
*rblk = NULL;
- blk = kzalloc(sizeof(*blk), GFP_KERNEL);
+ blk = kzalloc_obj(*blk, GFP_KERNEL);
if (!blk)
return -ENOMEM;
@@ -2227,7 +2227,7 @@ int create_20k1_hw_obj(struct hw **rhw)
struct hw20k1 *hw20k1;
*rhw = NULL;
- hw20k1 = kzalloc(sizeof(*hw20k1), GFP_KERNEL);
+ hw20k1 = kzalloc_obj(*hw20k1, GFP_KERNEL);
if (!hw20k1)
return -ENOMEM;
diff --git a/sound/pci/ctxfi/cthw20k2.c b/sound/pci/ctxfi/cthw20k2.c
index fac88f5590c9..1d558914a26a 100644
--- a/sound/pci/ctxfi/cthw20k2.c
+++ b/sound/pci/ctxfi/cthw20k2.c
@@ -157,7 +157,7 @@ static int src_get_rsc_ctrl_blk(void **rblk)
struct src_rsc_ctrl_blk *blk;
*rblk = NULL;
- blk = kzalloc(sizeof(*blk), GFP_KERNEL);
+ blk = kzalloc_obj(*blk, GFP_KERNEL);
if (!blk)
return -ENOMEM;
@@ -483,7 +483,7 @@ static int src_mgr_get_ctrl_blk(void **rblk)
struct src_mgr_ctrl_blk *blk;
*rblk = NULL;
- blk = kzalloc(sizeof(*blk), GFP_KERNEL);
+ blk = kzalloc_obj(*blk, GFP_KERNEL);
if (!blk)
return -ENOMEM;
@@ -504,7 +504,7 @@ static int srcimp_mgr_get_ctrl_blk(void **rblk)
struct srcimp_mgr_ctrl_blk *blk;
*rblk = NULL;
- blk = kzalloc(sizeof(*blk), GFP_KERNEL);
+ blk = kzalloc_obj(*blk, GFP_KERNEL);
if (!blk)
return -ENOMEM;
@@ -693,7 +693,7 @@ static int amixer_rsc_get_ctrl_blk(void **rblk)
struct amixer_rsc_ctrl_blk *blk;
*rblk = NULL;
- blk = kzalloc(sizeof(*blk), GFP_KERNEL);
+ blk = kzalloc_obj(*blk, GFP_KERNEL);
if (!blk)
return -ENOMEM;
@@ -882,7 +882,7 @@ static int dai_get_ctrl_blk(void **rblk)
struct dai_ctrl_blk *blk;
*rblk = NULL;
- blk = kzalloc(sizeof(*blk), GFP_KERNEL);
+ blk = kzalloc_obj(*blk, GFP_KERNEL);
if (!blk)
return -ENOMEM;
@@ -932,7 +932,7 @@ static int dao_get_ctrl_blk(void **rblk)
struct dao_ctrl_blk *blk;
*rblk = NULL;
- blk = kzalloc(sizeof(*blk), GFP_KERNEL);
+ blk = kzalloc_obj(*blk, GFP_KERNEL);
if (!blk)
return -ENOMEM;
@@ -1084,7 +1084,7 @@ static int daio_mgr_get_ctrl_blk(struct hw *hw, void **rblk)
int i;
*rblk = NULL;
- blk = kzalloc(sizeof(*blk), GFP_KERNEL);
+ blk = kzalloc_obj(*blk, GFP_KERNEL);
if (!blk)
return -ENOMEM;
@@ -2369,7 +2369,7 @@ int create_20k2_hw_obj(struct hw **rhw)
struct hw20k2 *hw20k2;
*rhw = NULL;
- hw20k2 = kzalloc(sizeof(*hw20k2), GFP_KERNEL);
+ hw20k2 = kzalloc_obj(*hw20k2, GFP_KERNEL);
if (!hw20k2)
return -ENOMEM;
diff --git a/sound/pci/ctxfi/ctmixer.c b/sound/pci/ctxfi/ctmixer.c
index fc9fde284fb3..3c5b89f3eae3 100644
--- a/sound/pci/ctxfi/ctmixer.c
+++ b/sound/pci/ctxfi/ctmixer.c
@@ -969,7 +969,7 @@ static int ct_mixer_get_mem(struct ct_mixer **rmixer)
*rmixer = NULL;
/* Allocate mem for mixer obj */
- mixer = kzalloc(sizeof(*mixer), GFP_KERNEL);
+ mixer = kzalloc_obj(*mixer, GFP_KERNEL);
if (!mixer)
return -ENOMEM;
diff --git a/sound/pci/ctxfi/ctpcm.c b/sound/pci/ctxfi/ctpcm.c
index 81dfc6a76b18..2b0f4130642c 100644
--- a/sound/pci/ctxfi/ctpcm.c
+++ b/sound/pci/ctxfi/ctpcm.c
@@ -119,7 +119,7 @@ static int ct_pcm_playback_open(struct snd_pcm_substream *substream)
struct ct_atc_pcm *apcm;
int err;
- apcm = kzalloc(sizeof(*apcm), GFP_KERNEL);
+ apcm = kzalloc_obj(*apcm, GFP_KERNEL);
if (!apcm)
return -ENOMEM;
@@ -265,7 +265,7 @@ static int ct_pcm_capture_open(struct snd_pcm_substream *substream)
struct ct_atc_pcm *apcm;
int err;
- apcm = kzalloc(sizeof(*apcm), GFP_KERNEL);
+ apcm = kzalloc_obj(*apcm, GFP_KERNEL);
if (!apcm)
return -ENOMEM;
diff --git a/sound/pci/ctxfi/ctsrc.c b/sound/pci/ctxfi/ctsrc.c
index 46afc9604c08..b781201c7f0e 100644
--- a/sound/pci/ctxfi/ctsrc.c
+++ b/sound/pci/ctxfi/ctsrc.c
@@ -540,7 +540,7 @@ int src_mgr_create(struct hw *hw, void **rsrc_mgr)
struct src_mgr *src_mgr;
*rsrc_mgr = NULL;
- src_mgr = kzalloc(sizeof(*src_mgr), GFP_KERNEL);
+ src_mgr = kzalloc_obj(*src_mgr, GFP_KERNEL);
if (!src_mgr)
return -ENOMEM;
@@ -669,8 +669,7 @@ static int srcimp_rsc_init(struct srcimp *srcimp,
return err;
/* Reserve memory for imapper nodes */
- srcimp->imappers = kcalloc(desc->msr, sizeof(struct imapper),
- GFP_KERNEL);
+ srcimp->imappers = kzalloc_objs(struct imapper, desc->msr, GFP_KERNEL);
if (!srcimp->imappers) {
err = -ENOMEM;
goto error1;
@@ -811,7 +810,7 @@ int srcimp_mgr_create(struct hw *hw, void **rsrcimp_mgr)
struct imapper *entry;
*rsrcimp_mgr = NULL;
- srcimp_mgr = kzalloc(sizeof(*srcimp_mgr), GFP_KERNEL);
+ srcimp_mgr = kzalloc_obj(*srcimp_mgr, GFP_KERNEL);
if (!srcimp_mgr)
return -ENOMEM;
@@ -822,7 +821,7 @@ int srcimp_mgr_create(struct hw *hw, void **rsrcimp_mgr)
spin_lock_init(&srcimp_mgr->mgr_lock);
spin_lock_init(&srcimp_mgr->imap_lock);
INIT_LIST_HEAD(&srcimp_mgr->imappers);
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry) {
err = -ENOMEM;
goto error2;
diff --git a/sound/pci/ctxfi/cttimer.c b/sound/pci/ctxfi/cttimer.c
index 609b10320ff7..53d16f575c38 100644
--- a/sound/pci/ctxfi/cttimer.c
+++ b/sound/pci/ctxfi/cttimer.c
@@ -390,7 +390,7 @@ struct ct_timer *ct_timer_new(struct ct_atc *atc)
struct ct_timer *atimer;
struct hw *hw;
- atimer = kzalloc(sizeof(*atimer), GFP_KERNEL);
+ atimer = kzalloc_obj(*atimer, GFP_KERNEL);
if (!atimer)
return NULL;
spin_lock_init(&atimer->lock);
diff --git a/sound/pci/ctxfi/ctvmem.c b/sound/pci/ctxfi/ctvmem.c
index 823d6e240a07..316072863dbf 100644
--- a/sound/pci/ctxfi/ctvmem.c
+++ b/sound/pci/ctxfi/ctvmem.c
@@ -55,7 +55,7 @@ get_vm_block(struct ct_vm *vm, unsigned int size, struct ct_atc *atc)
return entry;
}
- block = kzalloc(sizeof(*block), GFP_KERNEL);
+ block = kzalloc_obj(*block, GFP_KERNEL);
if (!block)
return NULL;
@@ -170,7 +170,7 @@ int ct_vm_create(struct ct_vm **rvm, struct pci_dev *pci)
*rvm = NULL;
- vm = kzalloc(sizeof(*vm), GFP_KERNEL);
+ vm = kzalloc_obj(*vm, GFP_KERNEL);
if (!vm)
return -ENOMEM;
@@ -195,7 +195,7 @@ int ct_vm_create(struct ct_vm **rvm, struct pci_dev *pci)
vm->get_ptp_phys = ct_get_ptp_phys;
INIT_LIST_HEAD(&vm->unused);
INIT_LIST_HEAD(&vm->used);
- block = kzalloc(sizeof(*block), GFP_KERNEL);
+ block = kzalloc_obj(*block, GFP_KERNEL);
if (NULL != block) {
block->addr = 0;
block->size = vm->size;
diff --git a/sound/pci/echoaudio/echoaudio.c b/sound/pci/echoaudio/echoaudio.c
index 8b7b6838106f..fdf309633c8a 100644
--- a/sound/pci/echoaudio/echoaudio.c
+++ b/sound/pci/echoaudio/echoaudio.c
@@ -265,7 +265,7 @@ static int pcm_open(struct snd_pcm_substream *substream,
chip = snd_pcm_substream_chip(substream);
runtime = substream->runtime;
- pipe = kzalloc(sizeof(struct audiopipe), GFP_KERNEL);
+ pipe = kzalloc_obj(struct audiopipe, GFP_KERNEL);
if (!pipe)
return -ENOMEM;
pipe->index = -1; /* Not configured yet */
diff --git a/sound/pci/emu10k1/emu10k1x.c b/sound/pci/emu10k1/emu10k1x.c
index 9607a0f7174b..e79f773941cd 100644
--- a/sound/pci/emu10k1/emu10k1x.c
+++ b/sound/pci/emu10k1/emu10k1x.c
@@ -367,7 +367,7 @@ static int snd_emu10k1x_playback_open(struct snd_pcm_substream *substream)
if (err < 0)
return err;
- epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
+ epcm = kzalloc_obj(*epcm, GFP_KERNEL);
if (epcm == NULL)
return -ENOMEM;
epcm->emu = chip;
@@ -547,7 +547,7 @@ static int snd_emu10k1x_pcm_open_capture(struct snd_pcm_substream *substream)
if (err < 0)
return err;
- epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
+ epcm = kzalloc_obj(*epcm, GFP_KERNEL);
if (epcm == NULL)
return -ENOMEM;
diff --git a/sound/pci/emu10k1/emufx.c b/sound/pci/emu10k1/emufx.c
index 37af7bf76347..a9c786fe638a 100644
--- a/sound/pci/emu10k1/emufx.c
+++ b/sound/pci/emu10k1/emufx.c
@@ -776,7 +776,7 @@ static int snd_emu10k1_verify_controls(struct snd_emu10k1 *emu,
if (snd_emu10k1_look_for_ctl(emu, &id) == NULL)
return -ENOENT;
}
- gctl = kmalloc(sizeof(*gctl), GFP_KERNEL);
+ gctl = kmalloc_obj(*gctl, GFP_KERNEL);
if (! gctl)
return -ENOMEM;
err = 0;
@@ -864,9 +864,9 @@ static int snd_emu10k1_add_controls(struct snd_emu10k1 *emu,
struct snd_ctl_elem_value *val;
int err = 0;
- val = kmalloc(sizeof(*val), GFP_KERNEL);
- gctl = kmalloc(sizeof(*gctl), GFP_KERNEL);
- nctl = kmalloc(sizeof(*nctl), GFP_KERNEL);
+ val = kmalloc_obj(*val, GFP_KERNEL);
+ gctl = kmalloc_obj(*gctl, GFP_KERNEL);
+ nctl = kmalloc_obj(*nctl, GFP_KERNEL);
if (!val || !gctl || !nctl) {
err = -ENOMEM;
goto __error;
@@ -914,7 +914,7 @@ static int snd_emu10k1_add_controls(struct snd_emu10k1 *emu,
nctl->max = gctl->max;
nctl->translation = gctl->translation;
if (ctl == NULL) {
- ctl = kmalloc(sizeof(*ctl), GFP_KERNEL);
+ ctl = kmalloc_obj(*ctl, GFP_KERNEL);
if (ctl == NULL) {
err = -ENOMEM;
kfree(knew.tlv.p);
@@ -980,7 +980,7 @@ static int snd_emu10k1_list_controls(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_ctl *ctl;
struct snd_ctl_elem_id *id;
- gctl = kmalloc(sizeof(*gctl), GFP_KERNEL);
+ gctl = kmalloc_obj(*gctl, GFP_KERNEL);
if (! gctl)
return -ENOMEM;
@@ -1282,16 +1282,15 @@ static int _snd_emu10k1_audigy_init_efx(struct snd_emu10k1 *emu)
u32 *gpr_map;
err = -ENOMEM;
- icode = kzalloc(sizeof(*icode), GFP_KERNEL);
+ icode = kzalloc_obj(*icode, GFP_KERNEL);
if (!icode)
return err;
- icode->gpr_map = kcalloc(512 + 256 + 256 + 2 * 1024,
- sizeof(u_int32_t), GFP_KERNEL);
+ icode->gpr_map = kzalloc_objs(u_int32_t, 512 + 256 + 256 + 2 * 1024,
+ GFP_KERNEL);
if (!icode->gpr_map)
goto __err_gpr;
- controls = kcalloc(SND_EMU10K1_GPR_CONTROLS,
- sizeof(*controls), GFP_KERNEL);
+ controls = kzalloc_objs(*controls, SND_EMU10K1_GPR_CONTROLS, GFP_KERNEL);
if (!controls)
goto __err_ctrls;
@@ -1800,22 +1799,21 @@ static int _snd_emu10k1_init_efx(struct snd_emu10k1 *emu)
u32 *gpr_map;
err = -ENOMEM;
- icode = kzalloc(sizeof(*icode), GFP_KERNEL);
+ icode = kzalloc_obj(*icode, GFP_KERNEL);
if (!icode)
return err;
- icode->gpr_map = kcalloc(256 + 160 + 160 + 2 * 512,
- sizeof(u_int32_t), GFP_KERNEL);
+ icode->gpr_map = kzalloc_objs(u_int32_t, 256 + 160 + 160 + 2 * 512,
+ GFP_KERNEL);
if (!icode->gpr_map)
goto __err_gpr;
- controls = kcalloc(SND_EMU10K1_GPR_CONTROLS,
- sizeof(struct snd_emu10k1_fx8010_control_gpr),
- GFP_KERNEL);
+ controls = kzalloc_objs(struct snd_emu10k1_fx8010_control_gpr,
+ SND_EMU10K1_GPR_CONTROLS, GFP_KERNEL);
if (!controls)
goto __err_ctrls;
- ipcm = kzalloc(sizeof(*ipcm), GFP_KERNEL);
+ ipcm = kzalloc_obj(*ipcm, GFP_KERNEL);
if (!ipcm)
goto __err_ipcm;
diff --git a/sound/pci/emu10k1/emupcm.c b/sound/pci/emu10k1/emupcm.c
index 071c75ba81fd..1a0fd2014691 100644
--- a/sound/pci/emu10k1/emupcm.c
+++ b/sound/pci/emu10k1/emupcm.c
@@ -1132,7 +1132,7 @@ static int snd_emu10k1_efx_playback_open(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime;
int i, j, err;
- epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
+ epcm = kzalloc_obj(*epcm, GFP_KERNEL);
if (epcm == NULL)
return -ENOMEM;
epcm->emu = emu;
@@ -1171,7 +1171,7 @@ static int snd_emu10k1_playback_open(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime;
int i, err, sample_rate;
- epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
+ epcm = kzalloc_obj(*epcm, GFP_KERNEL);
if (epcm == NULL)
return -ENOMEM;
epcm->emu = emu;
@@ -1222,7 +1222,7 @@ static int snd_emu10k1_capture_open(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime;
struct snd_emu10k1_pcm *epcm;
- epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
+ epcm = kzalloc_obj(*epcm, GFP_KERNEL);
if (epcm == NULL)
return -ENOMEM;
epcm->emu = emu;
@@ -1259,7 +1259,7 @@ static int snd_emu10k1_capture_mic_open(struct snd_pcm_substream *substream)
struct snd_emu10k1_pcm *epcm;
struct snd_pcm_runtime *runtime = substream->runtime;
- epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
+ epcm = kzalloc_obj(*epcm, GFP_KERNEL);
if (epcm == NULL)
return -ENOMEM;
epcm->emu = emu;
@@ -1299,7 +1299,7 @@ static int snd_emu10k1_capture_efx_open(struct snd_pcm_substream *substream)
int nefx = emu->audigy ? 64 : 32;
int idx, err;
- epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
+ epcm = kzalloc_obj(*epcm, GFP_KERNEL);
if (epcm == NULL)
return -ENOMEM;
epcm->emu = emu;
diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c
index 51aee2c4d461..6650f0192281 100644
--- a/sound/pci/es1968.c
+++ b/sound/pci/es1968.c
@@ -1307,7 +1307,7 @@ static struct esm_memory *snd_es1968_new_memory(struct es1968 *chip, int size)
__found:
if (buf->buf.bytes > size) {
- struct esm_memory *chunk = kmalloc(sizeof(*chunk), GFP_KERNEL);
+ struct esm_memory *chunk = kmalloc_obj(*chunk, GFP_KERNEL);
if (chunk == NULL)
return NULL;
chunk->buf = buf->buf;
@@ -1385,7 +1385,7 @@ snd_es1968_init_dmabuf(struct es1968 *chip)
INIT_LIST_HEAD(&chip->buf_list);
/* allocate an empty chunk */
- chunk = kmalloc(sizeof(*chunk), GFP_KERNEL);
+ chunk = kmalloc_obj(*chunk, GFP_KERNEL);
if (chunk == NULL) {
snd_es1968_free_dmabuf(chip);
return -ENOMEM;
@@ -1488,7 +1488,7 @@ static int snd_es1968_playback_open(struct snd_pcm_substream *substream)
if (apu1 < 0)
return apu1;
- es = kzalloc(sizeof(*es), GFP_KERNEL);
+ es = kzalloc_obj(*es, GFP_KERNEL);
if (!es) {
snd_es1968_free_apu_pair(chip, apu1);
return -ENOMEM;
@@ -1529,7 +1529,7 @@ static int snd_es1968_capture_open(struct snd_pcm_substream *substream)
return apu2;
}
- es = kzalloc(sizeof(*es), GFP_KERNEL);
+ es = kzalloc_obj(*es, GFP_KERNEL);
if (!es) {
snd_es1968_free_apu_pair(chip, apu1);
snd_es1968_free_apu_pair(chip, apu2);
diff --git a/sound/pci/ice1712/ak4xxx.c b/sound/pci/ice1712/ak4xxx.c
index cad33a2f26bc..e82bfc02599e 100644
--- a/sound/pci/ice1712/ak4xxx.c
+++ b/sound/pci/ice1712/ak4xxx.c
@@ -115,7 +115,7 @@ int snd_ice1712_akm4xxx_init(struct snd_akm4xxx *ak, const struct snd_akm4xxx *t
struct snd_ak4xxx_private *priv;
if (_priv != NULL) {
- priv = kmalloc(sizeof(*priv), GFP_KERNEL);
+ priv = kmalloc_obj(*priv, GFP_KERNEL);
if (priv == NULL)
return -ENOMEM;
*priv = *_priv;
diff --git a/sound/pci/ice1712/aureon.c b/sound/pci/ice1712/aureon.c
index b4c9e7d11609..92c4950137b0 100644
--- a/sound/pci/ice1712/aureon.c
+++ b/sound/pci/ice1712/aureon.c
@@ -2076,7 +2076,7 @@ static int aureon_init(struct snd_ice1712 *ice)
struct aureon_spec *spec;
int i, err;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
ice->spec = spec;
@@ -2091,7 +2091,7 @@ static int aureon_init(struct snd_ice1712 *ice)
}
/* to remember the register values of CS8415 */
- ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
+ ice->akm = kzalloc_obj(struct snd_akm4xxx, GFP_KERNEL);
if (!ice->akm)
return -ENOMEM;
ice->akm_codecs = 1;
diff --git a/sound/pci/ice1712/delta.c b/sound/pci/ice1712/delta.c
index e5a9585cba4c..5ea80bd596e6 100644
--- a/sound/pci/ice1712/delta.c
+++ b/sound/pci/ice1712/delta.c
@@ -707,7 +707,7 @@ static int snd_ice1712_delta_init(struct snd_ice1712 *ice)
}
/* second stage of initialization, analog parts and others */
- ak = ice->akm = kmalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
+ ak = ice->akm = kmalloc_obj(struct snd_akm4xxx, GFP_KERNEL);
if (! ak)
return -ENOMEM;
ice->akm_codecs = 1;
diff --git a/sound/pci/ice1712/ews.c b/sound/pci/ice1712/ews.c
index 1dffcb011deb..43a0a569de1b 100644
--- a/sound/pci/ice1712/ews.c
+++ b/sound/pci/ice1712/ews.c
@@ -431,7 +431,7 @@ static int snd_ice1712_ews_init(struct snd_ice1712 *ice)
break;
}
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
ice->spec = spec;
@@ -530,7 +530,7 @@ static int snd_ice1712_ews_init(struct snd_ice1712 *ice)
}
/* analog section */
- ak = ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
+ ak = ice->akm = kzalloc_obj(struct snd_akm4xxx, GFP_KERNEL);
if (! ak)
return -ENOMEM;
ice->akm_codecs = 1;
diff --git a/sound/pci/ice1712/hoontech.c b/sound/pci/ice1712/hoontech.c
index 071f94dc7390..ab651526aba9 100644
--- a/sound/pci/ice1712/hoontech.c
+++ b/sound/pci/ice1712/hoontech.c
@@ -156,7 +156,7 @@ static int hoontech_init(struct snd_ice1712 *ice, bool staudio)
ice->num_total_dacs = 8;
ice->num_total_adcs = 8;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
ice->spec = spec;
@@ -301,7 +301,7 @@ static int snd_ice1712_value_init(struct snd_ice1712 *ice)
ice->num_total_adcs = 2;
/* analog section */
- ak = ice->akm = kmalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
+ ak = ice->akm = kmalloc_obj(struct snd_akm4xxx, GFP_KERNEL);
if (! ak)
return -ENOMEM;
ice->akm_codecs = 1;
diff --git a/sound/pci/ice1712/juli.c b/sound/pci/ice1712/juli.c
index d679842ae1bd..10f0eb7b347d 100644
--- a/sound/pci/ice1712/juli.c
+++ b/sound/pci/ice1712/juli.c
@@ -560,7 +560,7 @@ static int juli_init(struct snd_ice1712 *ice)
struct juli_spec *spec;
struct snd_akm4xxx *ak;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
ice->spec = spec;
@@ -594,7 +594,7 @@ static int juli_init(struct snd_ice1712 *ice)
ice->num_total_dacs = 2;
ice->num_total_adcs = 2;
- ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
+ ice->akm = kzalloc_obj(struct snd_akm4xxx, GFP_KERNEL);
ak = ice->akm;
if (!ak)
return -ENOMEM;
diff --git a/sound/pci/ice1712/maya44.c b/sound/pci/ice1712/maya44.c
index 551f478c59c4..b854fec347c4 100644
--- a/sound/pci/ice1712/maya44.c
+++ b/sound/pci/ice1712/maya44.c
@@ -668,7 +668,7 @@ static int maya44_init(struct snd_ice1712 *ice)
int i;
struct snd_maya44 *chip;
- chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+ chip = kzalloc_obj(*chip, GFP_KERNEL);
if (!chip)
return -ENOMEM;
mutex_init(&chip->mutex);
diff --git a/sound/pci/ice1712/phase.c b/sound/pci/ice1712/phase.c
index 151b740ce66d..00f97b87b06c 100644
--- a/sound/pci/ice1712/phase.c
+++ b/sound/pci/ice1712/phase.c
@@ -125,7 +125,7 @@ static int phase22_init(struct snd_ice1712 *ice)
}
/* Initialize analog chips */
- ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
+ ice->akm = kzalloc_obj(struct snd_akm4xxx, GFP_KERNEL);
ak = ice->akm;
if (!ak)
return -ENOMEM;
@@ -411,13 +411,13 @@ static int phase28_init(struct snd_ice1712 *ice)
ice->num_total_dacs = 8;
ice->num_total_adcs = 2;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
ice->spec = spec;
/* Initialize analog chips */
- ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
+ ice->akm = kzalloc_obj(struct snd_akm4xxx, GFP_KERNEL);
ak = ice->akm;
if (!ak)
return -ENOMEM;
diff --git a/sound/pci/ice1712/pontis.c b/sound/pci/ice1712/pontis.c
index 557473f0d59e..80f7bb3af420 100644
--- a/sound/pci/ice1712/pontis.c
+++ b/sound/pci/ice1712/pontis.c
@@ -728,7 +728,7 @@ static int pontis_init(struct snd_ice1712 *ice)
ice->num_total_adcs = 2;
/* to remember the register values */
- ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
+ ice->akm = kzalloc_obj(struct snd_akm4xxx, GFP_KERNEL);
if (! ice->akm)
return -ENOMEM;
ice->akm_codecs = 1;
diff --git a/sound/pci/ice1712/prodigy192.c b/sound/pci/ice1712/prodigy192.c
index cd7db2b65b51..039ead80dd64 100644
--- a/sound/pci/ice1712/prodigy192.c
+++ b/sound/pci/ice1712/prodigy192.c
@@ -713,7 +713,7 @@ static int prodigy192_init(struct snd_ice1712 *ice)
ice->num_total_adcs = 2;
ice->vt1720 = 0; /* ice1724, e.g. 23 GPIOs */
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
ice->spec = spec;
diff --git a/sound/pci/ice1712/prodigy_hifi.c b/sound/pci/ice1712/prodigy_hifi.c
index eac233093865..105409daf071 100644
--- a/sound/pci/ice1712/prodigy_hifi.c
+++ b/sound/pci/ice1712/prodigy_hifi.c
@@ -1060,12 +1060,12 @@ static int prodigy_hifi_init(struct snd_ice1712 *ice)
ice->gpio.saved[0] = 0;
/* to remember the register values */
- ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
+ ice->akm = kzalloc_obj(struct snd_akm4xxx, GFP_KERNEL);
if (! ice->akm)
return -ENOMEM;
ice->akm_codecs = 1;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
ice->spec = spec;
@@ -1143,12 +1143,12 @@ static int prodigy_hd2_init(struct snd_ice1712 *ice)
ice->gpio.saved[0] = 0;
/* to remember the register values */
- ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
+ ice->akm = kzalloc_obj(struct snd_akm4xxx, GFP_KERNEL);
if (! ice->akm)
return -ENOMEM;
ice->akm_codecs = 1;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
ice->spec = spec;
diff --git a/sound/pci/ice1712/psc724.c b/sound/pci/ice1712/psc724.c
index 0818e42c94ca..bb69d5173983 100644
--- a/sound/pci/ice1712/psc724.c
+++ b/sound/pci/ice1712/psc724.c
@@ -383,7 +383,7 @@ static int psc724_init(struct snd_ice1712 *ice)
{
struct psc724_spec *spec;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
ice->spec = spec;
diff --git a/sound/pci/ice1712/quartet.c b/sound/pci/ice1712/quartet.c
index 099601edf1d0..a4f13a3ed6cf 100644
--- a/sound/pci/ice1712/quartet.c
+++ b/sound/pci/ice1712/quartet.c
@@ -969,7 +969,7 @@ static int qtet_init(struct snd_ice1712 *ice)
val = inb(ICEMT1724(ice, RATE));
outb(val | VT1724_SPDIF_MASTER, ICEMT1724(ice, RATE));
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
/* qtet is clocked by Xilinx array */
@@ -1005,7 +1005,7 @@ static int qtet_init(struct snd_ice1712 *ice)
ice->num_total_dacs = 2;
ice->num_total_adcs = 2;
- ice->akm = kcalloc(2, sizeof(struct snd_akm4xxx), GFP_KERNEL);
+ ice->akm = kzalloc_objs(struct snd_akm4xxx, 2, GFP_KERNEL);
ak = ice->akm;
if (!ak)
return -ENOMEM;
diff --git a/sound/pci/ice1712/revo.c b/sound/pci/ice1712/revo.c
index bcf114152dfd..37556ff6fb36 100644
--- a/sound/pci/ice1712/revo.c
+++ b/sound/pci/ice1712/revo.c
@@ -147,7 +147,7 @@ static int revo51_i2c_init(struct snd_ice1712 *ice,
struct revo51_spec *spec;
int err;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
ice->spec = spec;
@@ -470,7 +470,7 @@ static int ap192_ak4114_init(struct snd_ice1712 *ice)
int err;
struct revo51_spec *spec;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
ice->spec = spec;
@@ -515,7 +515,7 @@ static int revo_init(struct snd_ice1712 *ice)
}
/* second stage of initialization, analog parts and others */
- ak = ice->akm = kcalloc(2, sizeof(struct snd_akm4xxx), GFP_KERNEL);
+ ak = ice->akm = kzalloc_objs(struct snd_akm4xxx, 2, GFP_KERNEL);
if (! ak)
return -ENOMEM;
switch (ice->eeprom.subvendor) {
diff --git a/sound/pci/ice1712/se.c b/sound/pci/ice1712/se.c
index ffa9d8860a5a..09f5085d2dde 100644
--- a/sound/pci/ice1712/se.c
+++ b/sound/pci/ice1712/se.c
@@ -660,7 +660,7 @@ static int se_init(struct snd_ice1712 *ice)
{
struct se_spec *spec;
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
ice->spec = spec;
diff --git a/sound/pci/ice1712/wtm.c b/sound/pci/ice1712/wtm.c
index 57a79536e7ba..0c961b588cd2 100644
--- a/sound/pci/ice1712/wtm.c
+++ b/sound/pci/ice1712/wtm.c
@@ -579,7 +579,7 @@ static int wtm_init(struct snd_ice1712 *ice)
ice->force_rdma1 = 1;
/*init mutex for dac mute conflict*/
- spec = kzalloc(sizeof(*spec), GFP_KERNEL);
+ spec = kzalloc_obj(*spec, GFP_KERNEL);
if (!spec)
return -ENOMEM;
ice->spec = spec;
diff --git a/sound/pci/mixart/mixart.c b/sound/pci/mixart/mixart.c
index c6319e75beab..bcf36b102f6f 100644
--- a/sound/pci/mixart/mixart.c
+++ b/sound/pci/mixart/mixart.c
@@ -255,7 +255,7 @@ snd_mixart_add_ref_pipe(struct snd_mixart *chip, int pcm_number, int capture,
"add_ref_pipe audio chip(%d) pcm(%d)\n",
chip->chip_idx, pcm_number);
- buf = kmalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kmalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return NULL;
@@ -1017,7 +1017,7 @@ static int snd_mixart_create(struct mixart_mgr *mgr, struct snd_card *card, int
.dev_free = snd_mixart_chip_dev_free,
};
- chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+ chip = kzalloc_obj(*chip, GFP_KERNEL);
if (!chip)
return -ENOMEM;
@@ -1243,7 +1243,7 @@ static int snd_mixart_probe(struct pci_dev *pci,
/*
*/
- mgr = kzalloc(sizeof(*mgr), GFP_KERNEL);
+ mgr = kzalloc_obj(*mgr, GFP_KERNEL);
if (! mgr) {
pci_disable_device(pci);
return -ENOMEM;
diff --git a/sound/pci/mixart/mixart_hwdep.c b/sound/pci/mixart/mixart_hwdep.c
index 689c0f995a9c..9b19c83a26c5 100644
--- a/sound/pci/mixart/mixart_hwdep.c
+++ b/sound/pci/mixart/mixart_hwdep.c
@@ -135,9 +135,9 @@ static int mixart_enum_connectors(struct mixart_mgr *mgr)
struct mixart_audio_info_req *audio_info_req;
struct mixart_audio_info_resp *audio_info;
- connector = kmalloc(sizeof(*connector), GFP_KERNEL);
- audio_info_req = kmalloc(sizeof(*audio_info_req), GFP_KERNEL);
- audio_info = kmalloc(sizeof(*audio_info), GFP_KERNEL);
+ connector = kmalloc_obj(*connector, GFP_KERNEL);
+ audio_info_req = kmalloc_obj(*audio_info_req, GFP_KERNEL);
+ audio_info = kmalloc_obj(*audio_info, GFP_KERNEL);
if (! connector || ! audio_info_req || ! audio_info) {
err = -ENOMEM;
goto __error;
diff --git a/sound/pci/pcxhr/pcxhr.c b/sound/pci/pcxhr/pcxhr.c
index 83066d08367e..66e71bdfbc77 100644
--- a/sound/pci/pcxhr/pcxhr.c
+++ b/sound/pci/pcxhr/pcxhr.c
@@ -1163,7 +1163,7 @@ static int pcxhr_create(struct pcxhr_mgr *mgr,
.dev_free = pcxhr_chip_dev_free,
};
- chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+ chip = kzalloc_obj(*chip, GFP_KERNEL);
if (!chip)
return -ENOMEM;
@@ -1488,7 +1488,7 @@ static int pcxhr_probe(struct pci_dev *pci,
}
/* alloc card manager */
- mgr = kzalloc(sizeof(*mgr), GFP_KERNEL);
+ mgr = kzalloc_obj(*mgr, GFP_KERNEL);
if (! mgr) {
pci_disable_device(pci);
return -ENOMEM;
diff --git a/sound/pci/riptide/riptide.c b/sound/pci/riptide/riptide.c
index f91fe64bf4f9..8217a42c5bb7 100644
--- a/sound/pci/riptide/riptide.c
+++ b/sound/pci/riptide/riptide.c
@@ -1595,7 +1595,7 @@ static int snd_riptide_playback_open(struct snd_pcm_substream *substream)
chip->playback_substream[sub_num] = substream;
runtime->hw = snd_riptide_playback;
- data = kzalloc(sizeof(struct pcmhw), GFP_KERNEL);
+ data = kzalloc_obj(struct pcmhw, GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
data->paths = lbus_play_paths[sub_num];
@@ -1618,7 +1618,7 @@ static int snd_riptide_capture_open(struct snd_pcm_substream *substream)
chip->capture_substream = substream;
runtime->hw = snd_riptide_capture;
- data = kzalloc(sizeof(struct pcmhw), GFP_KERNEL);
+ data = kzalloc_obj(struct pcmhw, GFP_KERNEL);
if (data == NULL)
return -ENOMEM;
data->paths = lbus_rec_path;
@@ -1768,7 +1768,7 @@ static int snd_riptide_initialize(struct snd_riptide *chip)
cif = chip->cif;
if (!cif) {
- cif = kzalloc(sizeof(struct cmdif), GFP_KERNEL);
+ cif = kzalloc_obj(struct cmdif, GFP_KERNEL);
if (!cif)
return -ENOMEM;
cif->dev = chip->card->dev;
diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c
index 3ba5bdc96d9d..2978036aa8c5 100644
--- a/sound/pci/rme9652/hdspm.c
+++ b/sound/pci/rme9652/hdspm.c
@@ -6671,7 +6671,7 @@ static int snd_hdspm_create(struct snd_card *card,
if (hdspm_read(hdspm, HDSPM_statusRegister2) &
HDSPM_s2_tco_detect) {
hdspm->midiPorts++;
- hdspm->tco = kzalloc(sizeof(*hdspm->tco), GFP_KERNEL);
+ hdspm->tco = kzalloc_obj(*hdspm->tco, GFP_KERNEL);
if (hdspm->tco)
hdspm_tco_write(hdspm);
@@ -6685,7 +6685,7 @@ static int snd_hdspm_create(struct snd_card *card,
case AES32:
if (hdspm_read(hdspm, HDSPM_statusRegister) & HDSPM_tco_detect) {
hdspm->midiPorts++;
- hdspm->tco = kzalloc(sizeof(*hdspm->tco), GFP_KERNEL);
+ hdspm->tco = kzalloc_obj(*hdspm->tco, GFP_KERNEL);
if (hdspm->tco)
hdspm_tco_write(hdspm);
diff --git a/sound/pci/trident/trident_main.c b/sound/pci/trident/trident_main.c
index 55515c58b8aa..b0f1433e530f 100644
--- a/sound/pci/trident/trident_main.c
+++ b/sound/pci/trident/trident_main.c
@@ -2888,7 +2888,7 @@ static int snd_trident_mixer(struct snd_trident *trident, int pcm_spdif_device)
.read = snd_trident_codec_read,
};
- uctl = kzalloc(sizeof(*uctl), GFP_KERNEL);
+ uctl = kzalloc_obj(*uctl, GFP_KERNEL);
if (!uctl)
return -ENOMEM;
diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c
index 2b0f9e38863e..0290bf6b089d 100644
--- a/sound/pci/via82xx.c
+++ b/sound/pci/via82xx.c
@@ -423,9 +423,8 @@ static int build_via_table(struct viadev *dev, struct snd_pcm_substream *substre
return -ENOMEM;
}
if (! dev->idx_table) {
- dev->idx_table = kmalloc_array(VIA_TABLE_SIZE,
- sizeof(*dev->idx_table),
- GFP_KERNEL);
+ dev->idx_table = kmalloc_objs(*dev->idx_table, VIA_TABLE_SIZE,
+ GFP_KERNEL);
if (! dev->idx_table)
return -ENOMEM;
}
diff --git a/sound/pci/via82xx_modem.c b/sound/pci/via82xx_modem.c
index 6ce2cd88cda6..94430e87791d 100644
--- a/sound/pci/via82xx_modem.c
+++ b/sound/pci/via82xx_modem.c
@@ -278,9 +278,8 @@ static int build_via_table(struct viadev *dev, struct snd_pcm_substream *substre
return -ENOMEM;
}
if (! dev->idx_table) {
- dev->idx_table = kmalloc_array(VIA_TABLE_SIZE,
- sizeof(*dev->idx_table),
- GFP_KERNEL);
+ dev->idx_table = kmalloc_objs(*dev->idx_table, VIA_TABLE_SIZE,
+ GFP_KERNEL);
if (! dev->idx_table)
return -ENOMEM;
}
diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c
index eb373d9395e3..dc6f603160ac 100644
--- a/sound/pci/ymfpci/ymfpci_main.c
+++ b/sound/pci/ymfpci/ymfpci_main.c
@@ -864,7 +864,7 @@ static int snd_ymfpci_playback_open_1(struct snd_pcm_substream *substream)
if (err < 0)
return err;
- ypcm = kzalloc(sizeof(*ypcm), GFP_KERNEL);
+ ypcm = kzalloc_obj(*ypcm, GFP_KERNEL);
if (ypcm == NULL)
return -ENOMEM;
ypcm->chip = chip;
@@ -990,7 +990,7 @@ static int snd_ymfpci_capture_open(struct snd_pcm_substream *substream,
if (err < 0)
return err;
- ypcm = kzalloc(sizeof(*ypcm), GFP_KERNEL);
+ ypcm = kzalloc_obj(*ypcm, GFP_KERNEL);
if (ypcm == NULL)
return -ENOMEM;
ypcm->chip = chip;
diff --git a/sound/pcmcia/pdaudiocf/pdaudiocf_core.c b/sound/pcmcia/pdaudiocf/pdaudiocf_core.c
index a104baac3a94..c0ae099963c8 100644
--- a/sound/pcmcia/pdaudiocf/pdaudiocf_core.c
+++ b/sound/pcmcia/pdaudiocf/pdaudiocf_core.c
@@ -142,7 +142,7 @@ struct snd_pdacf *snd_pdacf_create(struct snd_card *card)
{
struct snd_pdacf *chip;
- chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+ chip = kzalloc_obj(*chip, GFP_KERNEL);
if (chip == NULL)
return NULL;
chip->card = card;
diff --git a/sound/ppc/awacs.c b/sound/ppc/awacs.c
index c231a9d6d1de..5d5fccb71d70 100644
--- a/sound/ppc/awacs.c
+++ b/sound/ppc/awacs.c
@@ -896,7 +896,7 @@ snd_pmac_awacs_init(struct snd_pmac *chip)
chip->revision = (in_le32(&chip->awacs->codec_stat) >> 12) & 0xf;
#ifdef PMAC_AMP_AVAIL
if (chip->revision == 3 && chip->has_iic && CHECK_CUDA_AMP()) {
- struct awacs_amp *amp = kzalloc(sizeof(*amp), GFP_KERNEL);
+ struct awacs_amp *amp = kzalloc_obj(*amp, GFP_KERNEL);
if (! amp)
return -ENOMEM;
chip->mixer_data = amp;
diff --git a/sound/ppc/beep.c b/sound/ppc/beep.c
index ab2468790b0c..5e5370e83d56 100644
--- a/sound/ppc/beep.c
+++ b/sound/ppc/beep.c
@@ -208,7 +208,7 @@ int snd_pmac_attach_beep(struct snd_pmac *chip)
void *dmabuf;
int err = -ENOMEM;
- beep = kzalloc(sizeof(*beep), GFP_KERNEL);
+ beep = kzalloc_obj(*beep, GFP_KERNEL);
if (! beep)
return -ENOMEM;
dmabuf = dma_alloc_coherent(&chip->pdev->dev, BEEP_BUFLEN * 4,
diff --git a/sound/ppc/daca.c b/sound/ppc/daca.c
index a74114225b67..12829f724d86 100644
--- a/sound/ppc/daca.c
+++ b/sound/ppc/daca.c
@@ -244,7 +244,7 @@ int snd_pmac_daca_init(struct snd_pmac *chip)
request_module("i2c-powermac");
- mix = kzalloc(sizeof(*mix), GFP_KERNEL);
+ mix = kzalloc_obj(*mix, GFP_KERNEL);
if (! mix)
return -ENOMEM;
chip->mixer_data = mix;
diff --git a/sound/ppc/pmac.c b/sound/ppc/pmac.c
index 6d7dab26ddf2..1384484fd996 100644
--- a/sound/ppc/pmac.c
+++ b/sound/ppc/pmac.c
@@ -1143,7 +1143,7 @@ int snd_pmac_new(struct snd_card *card, struct snd_pmac **chip_return)
*chip_return = NULL;
- chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+ chip = kzalloc_obj(*chip, GFP_KERNEL);
if (chip == NULL)
return -ENOMEM;
chip->card = card;
diff --git a/sound/ppc/tumbler.c b/sound/ppc/tumbler.c
index 3c09660e1522..6cc51dcecb7e 100644
--- a/sound/ppc/tumbler.c
+++ b/sound/ppc/tumbler.c
@@ -1348,7 +1348,7 @@ int snd_pmac_tumbler_init(struct snd_pmac *chip)
request_module("i2c-powermac");
- mix = kzalloc(sizeof(*mix), GFP_KERNEL);
+ mix = kzalloc_obj(*mix, GFP_KERNEL);
if (! mix)
return -ENOMEM;
mix->headphone_irq = -1;
diff --git a/sound/sh/aica.c b/sound/sh/aica.c
index fa81bfba59c1..f6a80f04d043 100644
--- a/sound/sh/aica.c
+++ b/sound/sh/aica.c
@@ -330,7 +330,7 @@ static int snd_aicapcm_pcm_open(struct snd_pcm_substream
if (!enable)
return -ENOENT;
dreamcastcard = substream->pcm->private_data;
- channel = kmalloc(sizeof(struct aica_channel), GFP_KERNEL);
+ channel = kmalloc_obj(struct aica_channel, GFP_KERNEL);
if (!channel)
return -ENOMEM;
/* set defaults for channel */
@@ -559,7 +559,7 @@ static int snd_aica_probe(struct platform_device *devptr)
{
int err;
struct snd_card_aica *dreamcastcard;
- dreamcastcard = kzalloc(sizeof(struct snd_card_aica), GFP_KERNEL);
+ dreamcastcard = kzalloc_obj(struct snd_card_aica, GFP_KERNEL);
if (unlikely(!dreamcastcard))
return -ENOMEM;
err = snd_card_new(&devptr->dev, index, SND_AICA_DRIVER,
diff --git a/sound/sh/sh_dac_audio.c b/sound/sh/sh_dac_audio.c
index 164f91240d02..e0ba12662da1 100644
--- a/sound/sh/sh_dac_audio.c
+++ b/sound/sh/sh_dac_audio.c
@@ -306,7 +306,7 @@ static int snd_sh_dac_create(struct snd_card *card,
*rchip = NULL;
- chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+ chip = kzalloc_obj(*chip, GFP_KERNEL);
if (chip == NULL)
return -ENOMEM;
diff --git a/sound/soc/amd/acp-pcm-dma.c b/sound/soc/amd/acp-pcm-dma.c
index 897dde630022..19c09ba2b510 100644
--- a/sound/soc/amd/acp-pcm-dma.c
+++ b/sound/soc/amd/acp-pcm-dma.c
@@ -775,7 +775,7 @@ static int acp_dma_open(struct snd_soc_component *component,
struct snd_pcm_runtime *runtime = substream->runtime;
struct audio_drv_data *intr_data = dev_get_drvdata(component->dev);
struct audio_substream_data *adata =
- kzalloc(sizeof(struct audio_substream_data), GFP_KERNEL);
+ kzalloc_obj(struct audio_substream_data, GFP_KERNEL);
if (!adata)
return -ENOMEM;
diff --git a/sound/soc/amd/acp/acp-platform.c b/sound/soc/amd/acp/acp-platform.c
index b25ac5612808..66a30da4b801 100644
--- a/sound/soc/amd/acp/acp-platform.c
+++ b/sound/soc/amd/acp/acp-platform.c
@@ -196,7 +196,7 @@ static int acp_dma_open(struct snd_soc_component *component, struct snd_pcm_subs
struct acp_stream *stream;
int ret;
- stream = kzalloc(sizeof(*stream), GFP_KERNEL);
+ stream = kzalloc_obj(*stream, GFP_KERNEL);
if (!stream)
return -ENOMEM;
diff --git a/sound/soc/amd/acp/acp-sdw-legacy-mach.c b/sound/soc/amd/acp/acp-sdw-legacy-mach.c
index c93fc0920a3e..c1c28fee0496 100644
--- a/sound/soc/amd/acp/acp-sdw-legacy-mach.c
+++ b/sound/soc/amd/acp/acp-sdw-legacy-mach.c
@@ -395,13 +395,13 @@ static int soc_card_dai_links_create(struct snd_soc_card *card)
/* One per DAI link, worst case is a DAI link for every endpoint */
struct asoc_sdw_dailink *soc_dais __free(kfree) =
- kcalloc(num_ends, sizeof(*soc_dais), GFP_KERNEL);
+ kzalloc_objs(*soc_dais, num_ends, GFP_KERNEL);
if (!soc_dais)
return -ENOMEM;
/* One per endpoint, ie. each DAI on each codec/amp */
struct asoc_sdw_endpoint *soc_ends __free(kfree) =
- kcalloc(num_ends, sizeof(*soc_ends), GFP_KERNEL);
+ kzalloc_objs(*soc_ends, num_ends, GFP_KERNEL);
if (!soc_ends)
return -ENOMEM;
diff --git a/sound/soc/amd/acp/acp-sdw-sof-mach.c b/sound/soc/amd/acp/acp-sdw-sof-mach.c
index da815b3f6389..3319f0996fe6 100644
--- a/sound/soc/amd/acp/acp-sdw-sof-mach.c
+++ b/sound/soc/amd/acp/acp-sdw-sof-mach.c
@@ -288,13 +288,13 @@ static int sof_card_dai_links_create(struct snd_soc_card *card)
/* One per DAI link, worst case is a DAI link for every endpoint */
struct asoc_sdw_dailink *sof_dais __free(kfree) =
- kcalloc(num_ends, sizeof(*sof_dais), GFP_KERNEL);
+ kzalloc_objs(*sof_dais, num_ends, GFP_KERNEL);
if (!sof_dais)
return -ENOMEM;
/* One per endpoint, ie. each DAI on each codec/amp */
struct asoc_sdw_endpoint *sof_ends __free(kfree) =
- kcalloc(num_ends, sizeof(*sof_ends), GFP_KERNEL);
+ kzalloc_objs(*sof_ends, num_ends, GFP_KERNEL);
if (!sof_ends)
return -ENOMEM;
diff --git a/sound/soc/amd/ps/ps-pdm-dma.c b/sound/soc/amd/ps/ps-pdm-dma.c
index 9cfbe05ad996..5a4ba65847fd 100644
--- a/sound/soc/amd/ps/ps-pdm-dma.c
+++ b/sound/soc/amd/ps/ps-pdm-dma.c
@@ -189,7 +189,7 @@ static int acp63_pdm_dma_open(struct snd_soc_component *component,
runtime = substream->runtime;
adata = dev_get_drvdata(component->dev);
- pdm_data = kzalloc(sizeof(*pdm_data), GFP_KERNEL);
+ pdm_data = kzalloc_obj(*pdm_data, GFP_KERNEL);
if (!pdm_data)
return -EINVAL;
diff --git a/sound/soc/amd/ps/ps-sdw-dma.c b/sound/soc/amd/ps/ps-sdw-dma.c
index 5449323e2728..0c7af398de3a 100644
--- a/sound/soc/amd/ps/ps-sdw-dma.c
+++ b/sound/soc/amd/ps/ps-sdw-dma.c
@@ -318,7 +318,7 @@ static int acp63_sdw_dma_open(struct snd_soc_component *component,
runtime = substream->runtime;
cpu_dai = snd_soc_rtd_to_cpu(prtd, 0);
amd_manager = snd_soc_dai_get_drvdata(cpu_dai);
- stream = kzalloc(sizeof(*stream), GFP_KERNEL);
+ stream = kzalloc_obj(*stream, GFP_KERNEL);
if (!stream)
return -ENOMEM;
diff --git a/sound/soc/amd/raven/acp3x-pcm-dma.c b/sound/soc/amd/raven/acp3x-pcm-dma.c
index bb9ed52d744d..2716c4e18c1f 100644
--- a/sound/soc/amd/raven/acp3x-pcm-dma.c
+++ b/sound/soc/amd/raven/acp3x-pcm-dma.c
@@ -218,7 +218,7 @@ static int acp3x_dma_open(struct snd_soc_component *component,
prtd = snd_soc_substream_to_rtd(substream);
component = snd_soc_rtdcom_lookup(prtd, DRV_NAME);
adata = dev_get_drvdata(component->dev);
- i2s_data = kzalloc(sizeof(*i2s_data), GFP_KERNEL);
+ i2s_data = kzalloc_obj(*i2s_data, GFP_KERNEL);
if (!i2s_data)
return -EINVAL;
diff --git a/sound/soc/amd/renoir/acp3x-pdm-dma.c b/sound/soc/amd/renoir/acp3x-pdm-dma.c
index a560d06097d5..c2dd512118ad 100644
--- a/sound/soc/amd/renoir/acp3x-pdm-dma.c
+++ b/sound/soc/amd/renoir/acp3x-pdm-dma.c
@@ -211,7 +211,7 @@ static int acp_pdm_dma_open(struct snd_soc_component *component,
runtime = substream->runtime;
adata = dev_get_drvdata(component->dev);
- pdm_data = kzalloc(sizeof(*pdm_data), GFP_KERNEL);
+ pdm_data = kzalloc_obj(*pdm_data, GFP_KERNEL);
if (!pdm_data)
return -EINVAL;
diff --git a/sound/soc/amd/vangogh/acp5x-pcm-dma.c b/sound/soc/amd/vangogh/acp5x-pcm-dma.c
index aa4726899434..c52d2bed5c6c 100644
--- a/sound/soc/amd/vangogh/acp5x-pcm-dma.c
+++ b/sound/soc/amd/vangogh/acp5x-pcm-dma.c
@@ -213,7 +213,7 @@ static int acp5x_dma_open(struct snd_soc_component *component,
component = snd_soc_rtdcom_lookup(prtd, DRV_NAME);
adata = dev_get_drvdata(component->dev);
- i2s_data = kzalloc(sizeof(*i2s_data), GFP_KERNEL);
+ i2s_data = kzalloc_obj(*i2s_data, GFP_KERNEL);
if (!i2s_data)
return -ENOMEM;
diff --git a/sound/soc/amd/yc/acp6x-pdm-dma.c b/sound/soc/amd/yc/acp6x-pdm-dma.c
index ac758b90f441..b4fece9d3fac 100644
--- a/sound/soc/amd/yc/acp6x-pdm-dma.c
+++ b/sound/soc/amd/yc/acp6x-pdm-dma.c
@@ -187,7 +187,7 @@ static int acp6x_pdm_dma_open(struct snd_soc_component *component,
runtime = substream->runtime;
adata = dev_get_drvdata(component->dev);
- pdm_data = kzalloc(sizeof(*pdm_data), GFP_KERNEL);
+ pdm_data = kzalloc_obj(*pdm_data, GFP_KERNEL);
if (!pdm_data)
return -EINVAL;
diff --git a/sound/soc/atmel/atmel-pcm-pdc.c b/sound/soc/atmel/atmel-pcm-pdc.c
index 7db8df85c54f..3b3e6b2b3a50 100644
--- a/sound/soc/atmel/atmel-pcm-pdc.c
+++ b/sound/soc/atmel/atmel-pcm-pdc.c
@@ -288,7 +288,7 @@ static int atmel_pcm_open(struct snd_soc_component *component,
if (ret < 0)
goto out;
- prtd = kzalloc(sizeof(struct atmel_runtime_data), GFP_KERNEL);
+ prtd = kzalloc_obj(struct atmel_runtime_data, GFP_KERNEL);
if (prtd == NULL) {
ret = -ENOMEM;
goto out;
diff --git a/sound/soc/atmel/mchp-pdmc.c b/sound/soc/atmel/mchp-pdmc.c
index 06dc3c48e7e8..d31508419fe3 100644
--- a/sound/soc/atmel/mchp-pdmc.c
+++ b/sound/soc/atmel/mchp-pdmc.c
@@ -706,7 +706,7 @@ static int mchp_pdmc_add_chmap_ctls(struct snd_pcm *pcm, struct mchp_pdmc *dd)
if (WARN_ON(pcm->streams[SNDRV_PCM_STREAM_CAPTURE].chmap_kctl))
return -EBUSY;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return -ENOMEM;
info->pcm = pcm;
diff --git a/sound/soc/au1x/dma.c b/sound/soc/au1x/dma.c
index c9c2b1e71d55..46bcdaa0532c 100644
--- a/sound/soc/au1x/dma.c
+++ b/sound/soc/au1x/dma.c
@@ -81,7 +81,7 @@ static int au1000_setup_dma_link(struct audio_stream *stream,
stream->period_size = period_bytes;
stream->periods = periods;
- stream->buffer = kmalloc(sizeof(struct pcm_period), GFP_KERNEL);
+ stream->buffer = kmalloc_obj(struct pcm_period, GFP_KERNEL);
if (!stream->buffer)
return -ENOMEM;
pointer = stream->buffer;
@@ -89,8 +89,8 @@ static int au1000_setup_dma_link(struct audio_stream *stream,
pointer->start = (u32)(dma_start + (i * period_bytes));
pointer->relative_end = (u32) (((i+1) * period_bytes) - 0x1);
if (i < periods - 1) {
- pointer->next = kmalloc(sizeof(struct pcm_period),
- GFP_KERNEL);
+ pointer->next = kmalloc_obj(struct pcm_period,
+ GFP_KERNEL);
if (!pointer->next) {
au1000_release_dma_link(stream);
return -ENOMEM;
diff --git a/sound/soc/bcm/bcm63xx-pcm-whistler.c b/sound/soc/bcm/bcm63xx-pcm-whistler.c
index efeb06ddabeb..a7bc7060f742 100644
--- a/sound/soc/bcm/bcm63xx-pcm-whistler.c
+++ b/sound/soc/bcm/bcm63xx-pcm-whistler.c
@@ -48,7 +48,7 @@ static int bcm63xx_pcm_hw_params(struct snd_soc_component *component,
struct i2s_dma_desc *dma_desc;
struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
- dma_desc = kzalloc(sizeof(*dma_desc), GFP_NOWAIT);
+ dma_desc = kzalloc_obj(*dma_desc, GFP_NOWAIT);
if (!dma_desc)
return -ENOMEM;
@@ -210,7 +210,7 @@ static int bcm63xx_pcm_open(struct snd_soc_component *component,
goto out;
ret = -ENOMEM;
- prtd = kzalloc(sizeof(*prtd), GFP_KERNEL);
+ prtd = kzalloc_obj(*prtd, GFP_KERNEL);
if (!prtd)
goto out;
diff --git a/sound/soc/codecs/aw88395/aw88395_lib.c b/sound/soc/codecs/aw88395/aw88395_lib.c
index ceb7fc43d018..31799ca5bb0f 100644
--- a/sound/soc/codecs/aw88395/aw88395_lib.c
+++ b/sound/soc/codecs/aw88395/aw88395_lib.c
@@ -665,8 +665,8 @@ static int aw_dev_load_cfg_by_hdr(struct aw_device *aw_dev,
{
int ret;
- struct aw_all_prof_info *all_prof_info __free(kfree) = kzalloc(sizeof(*all_prof_info),
- GFP_KERNEL);
+ struct aw_all_prof_info *all_prof_info __free(kfree) = kzalloc_obj(*all_prof_info,
+ GFP_KERNEL);
if (!all_prof_info)
return -ENOMEM;
diff --git a/sound/soc/codecs/cx20442.c b/sound/soc/codecs/cx20442.c
index d6121c0a2616..b0383eb47407 100644
--- a/sound/soc/codecs/cx20442.c
+++ b/sound/soc/codecs/cx20442.c
@@ -346,7 +346,7 @@ static int cx20442_component_probe(struct snd_soc_component *component)
{
struct cx20442_priv *cx20442;
- cx20442 = kzalloc(sizeof(struct cx20442_priv), GFP_KERNEL);
+ cx20442 = kzalloc_obj(struct cx20442_priv, GFP_KERNEL);
if (cx20442 == NULL)
return -ENOMEM;
diff --git a/sound/soc/codecs/da7219.c b/sound/soc/codecs/da7219.c
index 298a626df3ad..1f890294064c 100644
--- a/sound/soc/codecs/da7219.c
+++ b/sound/soc/codecs/da7219.c
@@ -2143,8 +2143,8 @@ static int da7219_register_dai_clks(struct snd_soc_component *component)
/* For DT platforms allocate onecell data for clock registration */
if (np) {
- clk_data = kzalloc(struct_size(clk_data, hws, DA7219_DAI_NUM_CLKS),
- GFP_KERNEL);
+ clk_data = kzalloc_flex(*clk_data, hws, DA7219_DAI_NUM_CLKS,
+ GFP_KERNEL);
if (!clk_data)
return -ENOMEM;
diff --git a/sound/soc/codecs/lpass-rx-macro.c b/sound/soc/codecs/lpass-rx-macro.c
index 0a8de5620e72..b6a2c39882ac 100644
--- a/sound/soc/codecs/lpass-rx-macro.c
+++ b/sound/soc/codecs/lpass-rx-macro.c
@@ -3820,7 +3820,8 @@ static int rx_macro_probe(struct platform_device *pdev)
rx->rxn_reg_stride = 0x80;
rx->rxn_reg_stride2 = 0xc;
def_count = ARRAY_SIZE(rx_defaults) + ARRAY_SIZE(rx_pre_2_5_defaults);
- reg_defaults = kmalloc_array(def_count, sizeof(struct reg_default), GFP_KERNEL);
+ reg_defaults = kmalloc_objs(struct reg_default, def_count,
+ GFP_KERNEL);
if (!reg_defaults)
return -ENOMEM;
memcpy(®_defaults[0], rx_defaults, sizeof(rx_defaults));
@@ -3834,7 +3835,8 @@ static int rx_macro_probe(struct platform_device *pdev)
rx->rxn_reg_stride = 0xc0;
rx->rxn_reg_stride2 = 0x0;
def_count = ARRAY_SIZE(rx_defaults) + ARRAY_SIZE(rx_2_5_defaults);
- reg_defaults = kmalloc_array(def_count, sizeof(struct reg_default), GFP_KERNEL);
+ reg_defaults = kmalloc_objs(struct reg_default, def_count,
+ GFP_KERNEL);
if (!reg_defaults)
return -ENOMEM;
memcpy(®_defaults[0], rx_defaults, sizeof(rx_defaults));
diff --git a/sound/soc/codecs/lpass-wsa-macro.c b/sound/soc/codecs/lpass-wsa-macro.c
index b695c77c18ac..e26aaea450d6 100644
--- a/sound/soc/codecs/lpass-wsa-macro.c
+++ b/sound/soc/codecs/lpass-wsa-macro.c
@@ -2725,8 +2725,8 @@ static int wsa_macro_probe(struct platform_device *pdev)
case LPASS_CODEC_VERSION_2_1:
wsa->reg_layout = &wsa_codec_v2_1;
def_count = ARRAY_SIZE(wsa_defaults) + ARRAY_SIZE(wsa_defaults_v2_1);
- reg_defaults = kmalloc_array(def_count, sizeof(*reg_defaults),
- GFP_KERNEL);
+ reg_defaults = kmalloc_objs(*reg_defaults, def_count,
+ GFP_KERNEL);
if (!reg_defaults)
return -ENOMEM;
memcpy(®_defaults[0], wsa_defaults, sizeof(wsa_defaults));
@@ -2741,8 +2741,8 @@ static int wsa_macro_probe(struct platform_device *pdev)
case LPASS_CODEC_VERSION_2_9:
wsa->reg_layout = &wsa_codec_v2_5;
def_count = ARRAY_SIZE(wsa_defaults) + ARRAY_SIZE(wsa_defaults_v2_5);
- reg_defaults = kmalloc_array(def_count, sizeof(*reg_defaults),
- GFP_KERNEL);
+ reg_defaults = kmalloc_objs(*reg_defaults, def_count,
+ GFP_KERNEL);
if (!reg_defaults)
return -ENOMEM;
memcpy(®_defaults[0], wsa_defaults, sizeof(wsa_defaults));
diff --git a/sound/soc/codecs/pcm6240.c b/sound/soc/codecs/pcm6240.c
index bde190a659b1..6911de5a8c7e 100644
--- a/sound/soc/codecs/pcm6240.c
+++ b/sound/soc/codecs/pcm6240.c
@@ -1234,7 +1234,7 @@ static struct pcmdevice_config_info *pcmdevice_add_config(void *ctxt,
struct pcmdevice_block_data **bk_da;
unsigned int config_offset = 0, i;
- cfg_info = kzalloc(sizeof(struct pcmdevice_config_info), GFP_KERNEL);
+ cfg_info = kzalloc_obj(struct pcmdevice_config_info, GFP_KERNEL);
if (!cfg_info) {
*status = -ENOMEM;
goto out;
@@ -1261,8 +1261,8 @@ static struct pcmdevice_config_info *pcmdevice_add_config(void *ctxt,
get_unaligned_be32(&config_data[config_offset]);
config_offset += 4;
- bk_da = cfg_info->blk_data = kcalloc(cfg_info->nblocks,
- sizeof(struct pcmdevice_block_data *), GFP_KERNEL);
+ bk_da = cfg_info->blk_data = kzalloc_objs(struct pcmdevice_block_data *,
+ cfg_info->nblocks, GFP_KERNEL);
if (!bk_da) {
*status = -ENOMEM;
goto out;
@@ -1276,8 +1276,7 @@ static struct pcmdevice_config_info *pcmdevice_add_config(void *ctxt,
__func__, i, cfg_info->nblocks);
break;
}
- bk_da[i] = kzalloc(sizeof(struct pcmdevice_block_data),
- GFP_KERNEL);
+ bk_da[i] = kzalloc_obj(struct pcmdevice_block_data, GFP_KERNEL);
if (!bk_da[i]) {
*status = -ENOMEM;
break;
@@ -1549,7 +1548,7 @@ static int pcmdev_regbin_ready(const struct firmware *fmw, void *ctxt)
ret = -EINVAL;
goto out;
}
- cfg_info = kcalloc(fw_hdr->nconfig, sizeof(*cfg_info), GFP_KERNEL);
+ cfg_info = kzalloc_objs(*cfg_info, fw_hdr->nconfig, GFP_KERNEL);
if (!cfg_info) {
pcm_dev->fw_state = PCMDEVICE_FW_LOAD_FAILED;
ret = -ENOMEM;
diff --git a/sound/soc/codecs/sigmadsp.c b/sound/soc/codecs/sigmadsp.c
index 201f74e3a7ae..c2a6a1f446d6 100644
--- a/sound/soc/codecs/sigmadsp.c
+++ b/sound/soc/codecs/sigmadsp.c
@@ -270,7 +270,7 @@ static int sigma_fw_load_data(struct sigmadsp *sigmadsp,
length -= sizeof(*data_chunk);
- data = kzalloc(struct_size(data, data, length), GFP_KERNEL);
+ data = kzalloc_flex(*data, data, length, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -413,8 +413,7 @@ static int process_sigma_action(struct sigmadsp *sigmadsp,
if (len < 3)
return -EINVAL;
- data = kzalloc(struct_size(data, data, size_sub(len, 2)),
- GFP_KERNEL);
+ data = kzalloc_flex(*data, data, size_sub(len, 2), GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/sound/soc/codecs/tas2781-fmwlib.c b/sound/soc/codecs/tas2781-fmwlib.c
index 0e084c3a162d..d3ded7d5efa1 100644
--- a/sound/soc/codecs/tas2781-fmwlib.c
+++ b/sound/soc/codecs/tas2781-fmwlib.c
@@ -176,7 +176,7 @@ static struct tasdevice_config_info *tasdevice_add_config(
* of audio cases, flexible configs have been introduced in the
* dsp firmware.
*/
- cfg_info = kzalloc(sizeof(struct tasdevice_config_info), GFP_KERNEL);
+ cfg_info = kzalloc_obj(struct tasdevice_config_info, GFP_KERNEL);
if (!cfg_info) {
*status = -ENOMEM;
goto out;
@@ -217,8 +217,8 @@ static struct tasdevice_config_info *tasdevice_add_config(
* the number and size of blk are not fixed and different among
* these firmwares.
*/
- bk_da = cfg_info->blk_data = kcalloc(cfg_info->nblocks,
- sizeof(struct tasdev_blk_data *), GFP_KERNEL);
+ bk_da = cfg_info->blk_data = kzalloc_objs(struct tasdev_blk_data *,
+ cfg_info->nblocks, GFP_KERNEL);
if (!bk_da) {
*status = -ENOMEM;
goto out;
@@ -232,7 +232,7 @@ static struct tasdevice_config_info *tasdevice_add_config(
__func__, i, cfg_info->nblocks);
break;
}
- bk_da[i] = kzalloc(sizeof(struct tasdev_blk_data), GFP_KERNEL);
+ bk_da[i] = kzalloc_obj(struct tasdev_blk_data, GFP_KERNEL);
if (!bk_da[i]) {
*status = -ENOMEM;
break;
@@ -379,7 +379,7 @@ int tasdevice_rca_parser(void *context, const struct firmware *fmw)
goto out;
}
- cfg_info = kcalloc(fw_hdr->nconfig, sizeof(*cfg_info), GFP_KERNEL);
+ cfg_info = kzalloc_objs(*cfg_info, fw_hdr->nconfig, GFP_KERNEL);
if (!cfg_info) {
ret = -ENOMEM;
tas_priv->fw_state = TASDEVICE_DSP_FW_FAIL;
@@ -509,8 +509,8 @@ static int fw_parse_data_kernel(struct tasdevice_fw *tas_fmw,
img_data->nr_blk = get_unaligned_be32(&data[offset]);
offset += 4;
- img_data->dev_blks = kcalloc(img_data->nr_blk,
- sizeof(struct tasdev_blk), GFP_KERNEL);
+ img_data->dev_blks = kzalloc_objs(struct tasdev_blk, img_data->nr_blk,
+ GFP_KERNEL);
if (!img_data->dev_blks) {
offset = -ENOMEM;
goto out;
@@ -805,8 +805,8 @@ static int fw_parse_variable_header_kernel(
goto out;
}
- tas_fmw->programs = kcalloc(tas_fmw->nr_programs,
- sizeof(struct tasdevice_prog), GFP_KERNEL);
+ tas_fmw->programs = kzalloc_objs(struct tasdevice_prog,
+ tas_fmw->nr_programs, GFP_KERNEL);
if (!tas_fmw->programs) {
offset = -ENOMEM;
goto out;
@@ -844,8 +844,8 @@ static int fw_parse_variable_header_kernel(
goto out;
}
- tas_fmw->configs = kcalloc(tas_fmw->nr_configurations,
- sizeof(struct tasdevice_config), GFP_KERNEL);
+ tas_fmw->configs = kzalloc_objs(struct tasdevice_config,
+ tas_fmw->nr_configurations, GFP_KERNEL);
if (!tas_fmw->configs) {
offset = -ENOMEM;
goto out;
@@ -1239,8 +1239,8 @@ static int fw_parse_data(struct tasdevice_fw *tas_fmw,
img_data->nr_blk = get_unaligned_be16(&data[offset]);
offset += 2;
- img_data->dev_blks = kcalloc(img_data->nr_blk,
- sizeof(struct tasdev_blk), GFP_KERNEL);
+ img_data->dev_blks = kzalloc_objs(struct tasdev_blk, img_data->nr_blk,
+ GFP_KERNEL);
if (!img_data->dev_blks) {
offset = -ENOMEM;
goto out;
@@ -1284,8 +1284,8 @@ static int fw_parse_program_data(struct tasdevice_priv *tas_priv,
}
tas_fmw->programs =
- kcalloc(tas_fmw->nr_programs, sizeof(struct tasdevice_prog),
- GFP_KERNEL);
+ kzalloc_objs(struct tasdevice_prog, tas_fmw->nr_programs,
+ GFP_KERNEL);
if (!tas_fmw->programs) {
offset = -ENOMEM;
goto out;
@@ -1348,8 +1348,8 @@ static int fw_parse_configuration_data(
/*Not error for calibration Data file, return directly*/
goto out;
}
- tas_fmw->configs = kcalloc(tas_fmw->nr_configurations,
- sizeof(struct tasdevice_config), GFP_KERNEL);
+ tas_fmw->configs = kzalloc_objs(struct tasdevice_config,
+ tas_fmw->nr_configurations, GFP_KERNEL);
if (!tas_fmw->configs) {
offset = -ENOMEM;
goto out;
@@ -2143,8 +2143,9 @@ static int fw_parse_calibration_data(struct tasdevice_priv *tas_priv,
goto out;
}
- tas_fmw->calibrations = kcalloc(tas_fmw->nr_calibrations,
- sizeof(struct tasdevice_calibration), GFP_KERNEL);
+ tas_fmw->calibrations = kzalloc_objs(struct tasdevice_calibration,
+ tas_fmw->nr_calibrations,
+ GFP_KERNEL);
if (!tas_fmw->calibrations) {
offset = -ENOMEM;
goto out;
@@ -2206,8 +2207,8 @@ int tas2781_load_calibration(void *context, char *file_name,
fmw.size = fw_entry->size;
fmw.data = fw_entry->data;
- tas_fmw = tasdev->cali_data_fmw = kzalloc(sizeof(struct tasdevice_fw),
- GFP_KERNEL);
+ tas_fmw = tasdev->cali_data_fmw = kzalloc_obj(struct tasdevice_fw,
+ GFP_KERNEL);
if (!tasdev->cali_data_fmw) {
ret = -ENOMEM;
goto out;
@@ -2267,7 +2268,7 @@ static int tasdevice_dspfw_ready(const struct firmware *fmw,
return -EINVAL;
}
- tas_priv->fmw = kzalloc(sizeof(struct tasdevice_fw), GFP_KERNEL);
+ tas_priv->fmw = kzalloc_obj(struct tasdevice_fw, GFP_KERNEL);
if (!tas_priv->fmw)
return -ENOMEM;
diff --git a/sound/soc/codecs/tas2783-sdw.c b/sound/soc/codecs/tas2783-sdw.c
index 84d45eab3523..ab3620761f5d 100644
--- a/sound/soc/codecs/tas2783-sdw.c
+++ b/sound/soc/codecs/tas2783-sdw.c
@@ -733,8 +733,8 @@ static void tas2783_fw_ready(const struct firmware *fmw, void *context)
s32 img_sz, ret = 0, cur_file = 0;
s32 offset = 0;
- struct tas_fw_hdr *hdr __free(kfree) = kzalloc(sizeof(*hdr), GFP_KERNEL);
- struct tas_fw_file *file __free(kfree) = kzalloc(sizeof(*file), GFP_KERNEL);
+ struct tas_fw_hdr *hdr __free(kfree) = kzalloc_obj(*hdr, GFP_KERNEL);
+ struct tas_fw_file *file __free(kfree) = kzalloc_obj(*file, GFP_KERNEL);
if (!file || !hdr) {
ret = -ENOMEM;
goto out;
diff --git a/sound/soc/codecs/wcd-clsh-v2.c b/sound/soc/codecs/wcd-clsh-v2.c
index d96e23ec43d4..1da1a85cbe6b 100644
--- a/sound/soc/codecs/wcd-clsh-v2.c
+++ b/sound/soc/codecs/wcd-clsh-v2.c
@@ -883,7 +883,7 @@ struct wcd_clsh_ctrl *wcd_clsh_ctrl_alloc(struct snd_soc_component *comp,
{
struct wcd_clsh_ctrl *ctrl;
- ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL);
+ ctrl = kzalloc_obj(*ctrl, GFP_KERNEL);
if (!ctrl)
return ERR_PTR(-ENOMEM);
diff --git a/sound/soc/codecs/wcd-mbhc-v2.c b/sound/soc/codecs/wcd-mbhc-v2.c
index 0c842aaa7eec..56b112946b37 100644
--- a/sound/soc/codecs/wcd-mbhc-v2.c
+++ b/sound/soc/codecs/wcd-mbhc-v2.c
@@ -1515,7 +1515,7 @@ struct wcd_mbhc *wcd_mbhc_init(struct snd_soc_component *component,
return ERR_PTR(-EINVAL);
}
- mbhc = kzalloc(sizeof(*mbhc), GFP_KERNEL);
+ mbhc = kzalloc_obj(*mbhc, GFP_KERNEL);
if (!mbhc)
return ERR_PTR(-ENOMEM);
diff --git a/sound/soc/codecs/wm0010.c b/sound/soc/codecs/wm0010.c
index 6e097d8ed288..f6166428a000 100644
--- a/sound/soc/codecs/wm0010.c
+++ b/sound/soc/codecs/wm0010.c
@@ -396,7 +396,7 @@ static int wm0010_firmware_load(const char *name, struct snd_soc_component *comp
rec->command, rec->length);
len = rec->length + 8;
- xfer = kzalloc(sizeof(*xfer), GFP_KERNEL);
+ xfer = kzalloc_obj(*xfer, GFP_KERNEL);
if (!xfer) {
ret = -ENOMEM;
goto abort;
diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c
index 17cec79245d4..8a584fd8f5de 100644
--- a/sound/soc/codecs/wm_adsp.c
+++ b/sound/soc/codecs/wm_adsp.c
@@ -542,7 +542,7 @@ static void wm_adsp_ctl_work(struct work_struct *work)
cs_dsp);
struct snd_kcontrol_new *kcontrol;
- kcontrol = kzalloc(sizeof(*kcontrol), GFP_KERNEL);
+ kcontrol = kzalloc_obj(*kcontrol, GFP_KERNEL);
if (!kcontrol)
return;
@@ -627,7 +627,7 @@ int wm_adsp_control_add(struct cs_dsp_coeff_ctl *cs_ctl)
" %.*s", cs_ctl->subname_len - skip, cs_ctl->subname + skip);
}
- ctl = kzalloc(sizeof(*ctl), GFP_KERNEL);
+ ctl = kzalloc_obj(*ctl, GFP_KERNEL);
if (!ctl)
return -ENOMEM;
ctl->cs_ctl = cs_ctl;
@@ -1259,7 +1259,7 @@ int wm_adsp_compr_open(struct wm_adsp *dsp, struct snd_compr_stream *stream)
}
}
- compr = kzalloc(sizeof(*compr), GFP_KERNEL);
+ compr = kzalloc_obj(*compr, GFP_KERNEL);
if (!compr) {
ret = -ENOMEM;
goto out;
@@ -1430,8 +1430,8 @@ static int wm_adsp_buffer_populate(struct wm_adsp_compr_buf *buf)
u32 offset = 0;
int i, ret;
- buf->regions = kcalloc(caps->num_regions, sizeof(*buf->regions),
- GFP_KERNEL);
+ buf->regions = kzalloc_objs(*buf->regions, caps->num_regions,
+ GFP_KERNEL);
if (!buf->regions)
return -ENOMEM;
@@ -1477,7 +1477,7 @@ static struct wm_adsp_compr_buf *wm_adsp_buffer_alloc(struct wm_adsp *dsp)
{
struct wm_adsp_compr_buf *buf;
- buf = kzalloc(sizeof(*buf), GFP_KERNEL);
+ buf = kzalloc_obj(*buf, GFP_KERNEL);
if (!buf)
return NULL;
diff --git a/sound/soc/fsl/fsl_asrc_m2m.c b/sound/soc/fsl/fsl_asrc_m2m.c
index 77999526dd9e..7a16a895cb0e 100644
--- a/sound/soc/fsl/fsl_asrc_m2m.c
+++ b/sound/soc/fsl/fsl_asrc_m2m.c
@@ -155,7 +155,7 @@ static int asrc_dmaconfig(struct fsl_asrc_pair *pair,
if (buf_len % max_period_size)
sg_len += 1;
- sg = kmalloc_array(sg_len, sizeof(*sg), GFP_KERNEL);
+ sg = kmalloc_objs(*sg, sg_len, GFP_KERNEL);
if (!sg)
return -ENOMEM;
@@ -420,7 +420,7 @@ static struct sg_table *fsl_asrc_m2m_map_dma_buf(struct dma_buf_attachment *atta
struct snd_dma_buffer *dmab = attachment->dmabuf->priv;
struct sg_table *sgt;
- sgt = kmalloc(sizeof(*sgt), GFP_KERNEL);
+ sgt = kmalloc_obj(*sgt, GFP_KERNEL);
if (!sgt)
return NULL;
diff --git a/sound/soc/fsl/fsl_dma.c b/sound/soc/fsl/fsl_dma.c
index aca066b5a43c..44834dba4cb7 100644
--- a/sound/soc/fsl/fsl_dma.c
+++ b/sound/soc/fsl/fsl_dma.c
@@ -848,7 +848,7 @@ static int fsl_soc_dma_probe(struct platform_device *pdev)
return ret;
}
- dma = kzalloc(sizeof(*dma), GFP_KERNEL);
+ dma = kzalloc_obj(*dma, GFP_KERNEL);
if (!dma) {
of_node_put(ssi_np);
return -ENOMEM;
diff --git a/sound/soc/fsl/fsl_qmc_audio.c b/sound/soc/fsl/fsl_qmc_audio.c
index 3de448ef724c..747c8253b77b 100644
--- a/sound/soc/fsl/fsl_qmc_audio.c
+++ b/sound/soc/fsl/fsl_qmc_audio.c
@@ -316,7 +316,7 @@ static int qmc_audio_pcm_open(struct snd_soc_component *component,
if (ret < 0)
return ret;
- prtd = kzalloc(sizeof(*prtd), GFP_KERNEL);
+ prtd = kzalloc_obj(*prtd, GFP_KERNEL);
if (!prtd)
return -ENOMEM;
diff --git a/sound/soc/fsl/imx-pcm-fiq.c b/sound/soc/fsl/imx-pcm-fiq.c
index 83de3ae33691..8a1a7c89781f 100644
--- a/sound/soc/fsl/imx-pcm-fiq.c
+++ b/sound/soc/fsl/imx-pcm-fiq.c
@@ -176,7 +176,7 @@ static int snd_imx_open(struct snd_soc_component *component,
struct imx_pcm_runtime_data *iprtd;
int ret;
- iprtd = kzalloc(sizeof(*iprtd), GFP_KERNEL);
+ iprtd = kzalloc_obj(*iprtd, GFP_KERNEL);
if (iprtd == NULL)
return -ENOMEM;
runtime->private_data = iprtd;
diff --git a/sound/soc/fsl/mpc5200_dma.c b/sound/soc/fsl/mpc5200_dma.c
index 345f338251ac..41255ff305b3 100644
--- a/sound/soc/fsl/mpc5200_dma.c
+++ b/sound/soc/fsl/mpc5200_dma.c
@@ -333,7 +333,7 @@ int mpc5200_audio_dma_create(struct platform_device *op)
}
/* Allocate and initialize the driver private data */
- psc_dma = kzalloc(sizeof *psc_dma, GFP_KERNEL);
+ psc_dma = kzalloc_obj(*psc_dma, GFP_KERNEL);
if (!psc_dma) {
ret = -ENOMEM;
goto out_unmap;
diff --git a/sound/soc/fsl/p1022_ds.c b/sound/soc/fsl/p1022_ds.c
index 66db05970d82..44b62f5615f2 100644
--- a/sound/soc/fsl/p1022_ds.c
+++ b/sound/soc/fsl/p1022_ds.c
@@ -211,7 +211,7 @@ static int p1022_ds_probe(struct platform_device *pdev)
return -EINVAL;
}
- mdata = kzalloc(sizeof(struct machine_data), GFP_KERNEL);
+ mdata = kzalloc_obj(struct machine_data, GFP_KERNEL);
if (!mdata) {
ret = -ENOMEM;
goto error_put;
diff --git a/sound/soc/fsl/p1022_rdk.c b/sound/soc/fsl/p1022_rdk.c
index d4568346714f..43a95cd590cf 100644
--- a/sound/soc/fsl/p1022_rdk.c
+++ b/sound/soc/fsl/p1022_rdk.c
@@ -226,7 +226,7 @@ static int p1022_rdk_probe(struct platform_device *pdev)
return -EINVAL;
}
- mdata = kzalloc(sizeof(struct machine_data), GFP_KERNEL);
+ mdata = kzalloc_obj(struct machine_data, GFP_KERNEL);
if (!mdata) {
ret = -ENOMEM;
goto error_put;
diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index 7720cf1fd6e1..965d7bb55929 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -553,7 +553,7 @@ int audio_graph_parse_of(struct simple_util_priv *priv, struct device *dev)
struct snd_soc_card *card = simple_priv_to_card(priv);
int ret = -ENOMEM;
- struct link_info *li __free(kfree) = kzalloc(sizeof(*li), GFP_KERNEL);
+ struct link_info *li __free(kfree) = kzalloc_obj(*li, GFP_KERNEL);
if (!li)
goto end;
diff --git a/sound/soc/generic/audio-graph-card2.c b/sound/soc/generic/audio-graph-card2.c
index 5dcc78c551a2..85043bc3c3d3 100644
--- a/sound/soc/generic/audio-graph-card2.c
+++ b/sound/soc/generic/audio-graph-card2.c
@@ -1305,7 +1305,7 @@ int audio_graph2_parse_of(struct simple_util_priv *priv, struct device *dev,
struct snd_soc_card *card = simple_priv_to_card(priv);
int ret;
- struct link_info *li __free(kfree) = kzalloc(sizeof(*li), GFP_KERNEL);
+ struct link_info *li __free(kfree) = kzalloc_obj(*li, GFP_KERNEL);
if (!li)
return -ENOMEM;
diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c
index 5af6d1b308f2..5bc6d7cd1921 100644
--- a/sound/soc/generic/simple-card.c
+++ b/sound/soc/generic/simple-card.c
@@ -726,7 +726,7 @@ static int simple_probe(struct platform_device *pdev)
card->driver_name = "simple-card";
ret = -ENOMEM;
- struct link_info *li __free(kfree) = kzalloc(sizeof(*li), GFP_KERNEL);
+ struct link_info *li __free(kfree) = kzalloc_obj(*li, GFP_KERNEL);
if (!li)
goto end;
diff --git a/sound/soc/intel/atom/sst-mfld-platform-compress.c b/sound/soc/intel/atom/sst-mfld-platform-compress.c
index 9dfb0a814b94..877df5ce156d 100644
--- a/sound/soc/intel/atom/sst-mfld-platform-compress.c
+++ b/sound/soc/intel/atom/sst-mfld-platform-compress.c
@@ -47,7 +47,7 @@ static int sst_platform_compr_open(struct snd_soc_component *component,
struct snd_compr_runtime *runtime = cstream->runtime;
struct sst_runtime_stream *stream;
- stream = kzalloc(sizeof(*stream), GFP_KERNEL);
+ stream = kzalloc_obj(*stream, GFP_KERNEL);
if (!stream)
return -ENOMEM;
diff --git a/sound/soc/intel/atom/sst-mfld-platform-pcm.c b/sound/soc/intel/atom/sst-mfld-platform-pcm.c
index 373d68b4cf88..e007db432b49 100644
--- a/sound/soc/intel/atom/sst-mfld-platform-pcm.c
+++ b/sound/soc/intel/atom/sst-mfld-platform-pcm.c
@@ -306,7 +306,7 @@ static int sst_media_open(struct snd_pcm_substream *substream,
struct snd_pcm_runtime *runtime = substream->runtime;
struct sst_runtime_stream *stream;
- stream = kzalloc(sizeof(*stream), GFP_KERNEL);
+ stream = kzalloc_obj(*stream, GFP_KERNEL);
if (!stream)
return -ENOMEM;
spin_lock_init(&stream->status_lock);
diff --git a/sound/soc/intel/atom/sst/sst.c b/sound/soc/intel/atom/sst/sst.c
index 3c47c8de04b7..5313c8ec605e 100644
--- a/sound/soc/intel/atom/sst/sst.c
+++ b/sound/soc/intel/atom/sst/sst.c
@@ -463,7 +463,7 @@ static int intel_sst_suspend(struct device *dev)
return -EBUSY;
/* save the memories */
- fw_save = kzalloc(sizeof(*fw_save), GFP_KERNEL);
+ fw_save = kzalloc_obj(*fw_save, GFP_KERNEL);
if (!fw_save)
return -ENOMEM;
fw_save->iram = kvzalloc(ctx->iram_end - ctx->iram_base, GFP_KERNEL);
diff --git a/sound/soc/intel/atom/sst/sst_ipc.c b/sound/soc/intel/atom/sst/sst_ipc.c
index 0630e58b9d6b..bdf68d69127f 100644
--- a/sound/soc/intel/atom/sst/sst_ipc.c
+++ b/sound/soc/intel/atom/sst/sst_ipc.c
@@ -31,7 +31,7 @@ struct sst_block *sst_create_block(struct intel_sst_drv *ctx,
struct sst_block *msg;
dev_dbg(ctx->dev, "Enter\n");
- msg = kzalloc(sizeof(*msg), GFP_KERNEL);
+ msg = kzalloc_obj(*msg, GFP_KERNEL);
if (!msg)
return NULL;
msg->condition = false;
diff --git a/sound/soc/intel/atom/sst/sst_loader.c b/sound/soc/intel/atom/sst/sst_loader.c
index bf4ba6bcc429..60b73c9c2306 100644
--- a/sound/soc/intel/atom/sst/sst_loader.c
+++ b/sound/soc/intel/atom/sst/sst_loader.c
@@ -148,7 +148,7 @@ static int sst_fill_memcpy_list(struct list_head *memcpy_list,
{
struct sst_memcpy_list *listnode;
- listnode = kzalloc(sizeof(*listnode), GFP_KERNEL);
+ listnode = kzalloc_obj(*listnode, GFP_KERNEL);
if (listnode == NULL)
return -ENOMEM;
listnode->dstn = destn;
diff --git a/sound/soc/intel/atom/sst/sst_pvt.c b/sound/soc/intel/atom/sst/sst_pvt.c
index c01b29616ebc..67b1ab14239f 100644
--- a/sound/soc/intel/atom/sst/sst_pvt.c
+++ b/sound/soc/intel/atom/sst/sst_pvt.c
@@ -124,7 +124,7 @@ int sst_create_ipc_msg(struct ipc_post **arg, bool large)
{
struct ipc_post *msg;
- msg = kzalloc(sizeof(*msg), GFP_ATOMIC);
+ msg = kzalloc_obj(*msg, GFP_ATOMIC);
if (!msg)
return -ENOMEM;
if (large) {
diff --git a/sound/soc/intel/avs/path.c b/sound/soc/intel/avs/path.c
index 899906e0bcb4..a080d85d30a6 100644
--- a/sound/soc/intel/avs/path.c
+++ b/sound/soc/intel/avs/path.c
@@ -880,7 +880,7 @@ avs_path_module_create(struct avs_dev *adev,
if (module_id < 0)
return ERR_PTR(module_id);
- mod = kzalloc(sizeof(*mod), GFP_KERNEL);
+ mod = kzalloc_obj(*mod, GFP_KERNEL);
if (!mod)
return ERR_PTR(-ENOMEM);
@@ -968,7 +968,7 @@ static struct avs_path_binding *avs_path_binding_create(struct avs_dev *adev,
{
struct avs_path_binding *binding;
- binding = kzalloc(sizeof(*binding), GFP_KERNEL);
+ binding = kzalloc_obj(*binding, GFP_KERNEL);
if (!binding)
return ERR_PTR(-ENOMEM);
@@ -1043,7 +1043,7 @@ avs_path_pipeline_create(struct avs_dev *adev, struct avs_path *owner,
struct avs_tplg_module *tmod;
int ret, i;
- ppl = kzalloc(sizeof(*ppl), GFP_KERNEL);
+ ppl = kzalloc_obj(*ppl, GFP_KERNEL);
if (!ppl)
return ERR_PTR(-ENOMEM);
@@ -1173,7 +1173,7 @@ static struct avs_path *avs_path_create_unlocked(struct avs_dev *adev, u32 dma_i
struct avs_path *path;
int ret;
- path = kzalloc(sizeof(*path), GFP_KERNEL);
+ path = kzalloc_obj(*path, GFP_KERNEL);
if (!path)
return ERR_PTR(-ENOMEM);
diff --git a/sound/soc/intel/avs/pcm.c b/sound/soc/intel/avs/pcm.c
index 4a6deb599c88..b8f5e1185a1a 100644
--- a/sound/soc/intel/avs/pcm.c
+++ b/sound/soc/intel/avs/pcm.c
@@ -130,7 +130,7 @@ static int avs_dai_startup(struct snd_pcm_substream *substream, struct snd_soc_d
return -EINVAL;
}
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/sound/soc/intel/avs/utils.c b/sound/soc/intel/avs/utils.c
index 81f9b67d8e29..df4d4e2f6c4f 100644
--- a/sound/soc/intel/avs/utils.c
+++ b/sound/soc/intel/avs/utils.c
@@ -124,7 +124,7 @@ avs_module_ida_alloc(struct avs_dev *adev, struct avs_mods_info *newinfo, bool p
tocopy_count = oldinfo->count;
}
- ida_ptrs = kcalloc(newinfo->count, sizeof(*ida_ptrs), GFP_KERNEL);
+ ida_ptrs = kzalloc_objs(*ida_ptrs, newinfo->count, GFP_KERNEL);
if (!ida_ptrs)
return -ENOMEM;
@@ -132,7 +132,7 @@ avs_module_ida_alloc(struct avs_dev *adev, struct avs_mods_info *newinfo, bool p
memcpy(ida_ptrs, adev->mod_idas, tocopy_count * sizeof(*ida_ptrs));
for (i = tocopy_count; i < newinfo->count; i++) {
- ida_ptrs[i] = kzalloc(sizeof(**ida_ptrs), GFP_KERNEL);
+ ida_ptrs[i] = kzalloc_obj(**ida_ptrs, GFP_KERNEL);
if (!ida_ptrs[i]) {
while (i--)
kfree(ida_ptrs[i]);
@@ -246,7 +246,7 @@ int avs_request_firmware(struct avs_dev *adev, const struct firmware **fw_p, con
}
/* FW is not loaded, let's load it now and add to the list */
- entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ entry = kzalloc_obj(*entry, GFP_KERNEL);
if (!entry)
return -ENOMEM;
diff --git a/sound/soc/intel/boards/sof_sdw.c b/sound/soc/intel/boards/sof_sdw.c
index ee34282828e4..65bc023ab01b 100644
--- a/sound/soc/intel/boards/sof_sdw.c
+++ b/sound/soc/intel/boards/sof_sdw.c
@@ -1251,12 +1251,12 @@ static int sof_card_dai_links_create(struct snd_soc_card *card)
* add one additional to act as a terminator such that code can iterate
* until it hits an uninitialised DAI.
*/
- sof_dais = kcalloc(num_ends + 1, sizeof(*sof_dais), GFP_KERNEL);
+ sof_dais = kzalloc_objs(*sof_dais, num_ends + 1, GFP_KERNEL);
if (!sof_dais)
return -ENOMEM;
/* One per endpoint, ie. each DAI on each codec/amp */
- sof_ends = kcalloc(num_ends, sizeof(*sof_ends), GFP_KERNEL);
+ sof_ends = kzalloc_objs(*sof_ends, num_ends, GFP_KERNEL);
if (!sof_ends) {
ret = -ENOMEM;
goto err_dai;
diff --git a/sound/soc/intel/catpt/pcm.c b/sound/soc/intel/catpt/pcm.c
index 2c3405686f79..b3e8ea4b92b4 100644
--- a/sound/soc/intel/catpt/pcm.c
+++ b/sound/soc/intel/catpt/pcm.c
@@ -263,7 +263,7 @@ static int catpt_dai_startup(struct snd_pcm_substream *substream,
template = catpt_get_stream_template(substream);
- stream = kzalloc(sizeof(*stream), GFP_KERNEL);
+ stream = kzalloc_obj(*stream, GFP_KERNEL);
if (!stream)
return -ENOMEM;
diff --git a/sound/soc/loongson/loongson_dma.c b/sound/soc/loongson/loongson_dma.c
index 20e4a0641340..8cf0feb64ff9 100644
--- a/sound/soc/loongson/loongson_dma.c
+++ b/sound/soc/loongson/loongson_dma.c
@@ -243,7 +243,7 @@ static int loongson_pcm_open(struct snd_soc_component *component,
SNDRV_PCM_HW_PARAM_PERIODS);
snd_soc_set_runtime_hwparams(substream, &ls_pcm_hardware);
- prtd = kzalloc(sizeof(*prtd), GFP_KERNEL);
+ prtd = kzalloc_obj(*prtd, GFP_KERNEL);
if (!prtd)
return -ENOMEM;
diff --git a/sound/soc/mediatek/mt8186/mt8186-audsys-clk.c b/sound/soc/mediatek/mt8186/mt8186-audsys-clk.c
index 5666be6b1bd2..53f30d12195b 100644
--- a/sound/soc/mediatek/mt8186/mt8186-audsys-clk.c
+++ b/sound/soc/mediatek/mt8186/mt8186-audsys-clk.c
@@ -135,7 +135,7 @@ int mt8186_audsys_clk_register(struct mtk_base_afe *afe)
}
/* add clk_lookup for devm_clk_get(SND_SOC_DAPM_CLOCK_SUPPLY) */
- cl = kzalloc(sizeof(*cl), GFP_KERNEL);
+ cl = kzalloc_obj(*cl, GFP_KERNEL);
if (!cl)
return -ENOMEM;
diff --git a/sound/soc/mediatek/mt8188/mt8188-audsys-clk.c b/sound/soc/mediatek/mt8188/mt8188-audsys-clk.c
index 40d2ab0a7677..2ef5ed3ee200 100644
--- a/sound/soc/mediatek/mt8188/mt8188-audsys-clk.c
+++ b/sound/soc/mediatek/mt8188/mt8188-audsys-clk.c
@@ -193,7 +193,7 @@ int mt8188_audsys_clk_register(struct mtk_base_afe *afe)
}
/* add clk_lookup for devm_clk_get(SND_SOC_DAPM_CLOCK_SUPPLY) */
- cl = kzalloc(sizeof(*cl), GFP_KERNEL);
+ cl = kzalloc_obj(*cl, GFP_KERNEL);
if (!cl)
return -ENOMEM;
diff --git a/sound/soc/mediatek/mt8195/mt8195-audsys-clk.c b/sound/soc/mediatek/mt8195/mt8195-audsys-clk.c
index 38594bc3f2f7..ec069729253e 100644
--- a/sound/soc/mediatek/mt8195/mt8195-audsys-clk.c
+++ b/sound/soc/mediatek/mt8195/mt8195-audsys-clk.c
@@ -199,7 +199,7 @@ int mt8195_audsys_clk_register(struct mtk_base_afe *afe)
}
/* add clk_lookup for devm_clk_get(SND_SOC_DAPM_CLOCK_SUPPLY) */
- cl = kzalloc(sizeof(*cl), GFP_KERNEL);
+ cl = kzalloc_obj(*cl, GFP_KERNEL);
if (!cl)
return -ENOMEM;
diff --git a/sound/soc/meson/aiu-fifo.c b/sound/soc/meson/aiu-fifo.c
index b222bde1f61b..b17a62727fc7 100644
--- a/sound/soc/meson/aiu-fifo.c
+++ b/sound/soc/meson/aiu-fifo.c
@@ -196,7 +196,7 @@ int aiu_fifo_dai_probe(struct snd_soc_dai *dai)
{
struct aiu_fifo *fifo;
- fifo = kzalloc(sizeof(*fifo), GFP_KERNEL);
+ fifo = kzalloc_obj(*fifo, GFP_KERNEL);
if (!fifo)
return -ENOMEM;
diff --git a/sound/soc/meson/axg-tdm-formatter.c b/sound/soc/meson/axg-tdm-formatter.c
index a6579efd3775..1fd78790c967 100644
--- a/sound/soc/meson/axg-tdm-formatter.c
+++ b/sound/soc/meson/axg-tdm-formatter.c
@@ -368,7 +368,7 @@ struct axg_tdm_stream *axg_tdm_stream_alloc(struct axg_tdm_iface *iface)
{
struct axg_tdm_stream *ts;
- ts = kzalloc(sizeof(*ts), GFP_KERNEL);
+ ts = kzalloc_obj(*ts, GFP_KERNEL);
if (ts) {
INIT_LIST_HEAD(&ts->formatter_list);
mutex_init(&ts->lock);
diff --git a/sound/soc/meson/meson-codec-glue.c b/sound/soc/meson/meson-codec-glue.c
index f8c5643f3cfe..bd9a91d8bc3a 100644
--- a/sound/soc/meson/meson-codec-glue.c
+++ b/sound/soc/meson/meson-codec-glue.c
@@ -122,7 +122,7 @@ int meson_codec_glue_input_dai_probe(struct snd_soc_dai *dai)
{
struct meson_codec_glue_input *data;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/sound/soc/pxa/pxa-ssp.c b/sound/soc/pxa/pxa-ssp.c
index b8a3cb8b7597..790e4db9d91b 100644
--- a/sound/soc/pxa/pxa-ssp.c
+++ b/sound/soc/pxa/pxa-ssp.c
@@ -85,7 +85,7 @@ static int pxa_ssp_startup(struct snd_pcm_substream *substream,
clk_prepare_enable(priv->extclk);
- dma = kzalloc(sizeof(struct snd_dmaengine_dai_dma_data), GFP_KERNEL);
+ dma = kzalloc_obj(struct snd_dmaengine_dai_dma_data, GFP_KERNEL);
if (!dma)
return -ENOMEM;
dma->chan_name = substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
@@ -749,7 +749,7 @@ static int pxa_ssp_probe(struct snd_soc_dai *dai)
struct ssp_priv *priv;
int ret;
- priv = kzalloc(sizeof(struct ssp_priv), GFP_KERNEL);
+ priv = kzalloc_obj(struct ssp_priv, GFP_KERNEL);
if (!priv)
return -ENOMEM;
diff --git a/sound/soc/qcom/lpass-platform.c b/sound/soc/qcom/lpass-platform.c
index b456e096f138..84909af310b4 100644
--- a/sound/soc/qcom/lpass-platform.c
+++ b/sound/soc/qcom/lpass-platform.c
@@ -202,7 +202,7 @@ static int lpass_platform_pcmops_open(struct snd_soc_component *component,
struct regmap *map;
unsigned int dai_id = cpu_dai->driver->id;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
diff --git a/sound/soc/qcom/qdsp6/q6adm.c b/sound/soc/qcom/qdsp6/q6adm.c
index 40bc44003453..db0ae71f2983 100644
--- a/sound/soc/qcom/qdsp6/q6adm.c
+++ b/sound/soc/qcom/qdsp6/q6adm.c
@@ -284,7 +284,7 @@ static struct q6copp *q6adm_alloc_copp(struct q6adm *adm, int port_idx)
if (idx >= MAX_COPPS_PER_PORT)
return ERR_PTR(-EBUSY);
- c = kzalloc(sizeof(*c), GFP_ATOMIC);
+ c = kzalloc_obj(*c, GFP_ATOMIC);
if (!c)
return ERR_PTR(-ENOMEM);
diff --git a/sound/soc/qcom/qdsp6/q6afe.c b/sound/soc/qcom/qdsp6/q6afe.c
index 76e14fc1b2b5..b1851dac61fa 100644
--- a/sound/soc/qcom/qdsp6/q6afe.c
+++ b/sound/soc/qcom/qdsp6/q6afe.c
@@ -1359,7 +1359,7 @@ void q6afe_tdm_port_prepare(struct q6afe_port *port,
pcfg->tdm_cfg.slot_width = cfg->slot_width;
pcfg->tdm_cfg.slot_mask = cfg->slot_mask;
- port->scfg = kzalloc(sizeof(*port->scfg), GFP_KERNEL);
+ port->scfg = kzalloc_obj(*port->scfg, GFP_KERNEL);
if (!port->scfg)
return;
diff --git a/sound/soc/qcom/qdsp6/q6apm-dai.c b/sound/soc/qcom/qdsp6/q6apm-dai.c
index aaeeadded7aa..dcd960aeab2f 100644
--- a/sound/soc/qcom/qdsp6/q6apm-dai.c
+++ b/sound/soc/qcom/qdsp6/q6apm-dai.c
@@ -348,7 +348,7 @@ static int q6apm_dai_open(struct snd_soc_component *component,
return -EINVAL;
}
- prtd = kzalloc(sizeof(*prtd), GFP_KERNEL);
+ prtd = kzalloc_obj(*prtd, GFP_KERNEL);
if (prtd == NULL)
return -ENOMEM;
@@ -490,7 +490,7 @@ static int q6apm_dai_compr_open(struct snd_soc_component *component,
if (!pdata)
return -EINVAL;
- prtd = kzalloc(sizeof(*prtd), GFP_KERNEL);
+ prtd = kzalloc_obj(*prtd, GFP_KERNEL);
if (prtd == NULL)
return -ENOMEM;
diff --git a/sound/soc/qcom/qdsp6/q6apm.c b/sound/soc/qcom/qdsp6/q6apm.c
index 1d5edf285793..99d2dcdfac25 100644
--- a/sound/soc/qcom/qdsp6/q6apm.c
+++ b/sound/soc/qcom/qdsp6/q6apm.c
@@ -57,7 +57,7 @@ static struct audioreach_graph *q6apm_get_audioreach_graph(struct q6apm *apm, ui
if (!info)
return ERR_PTR(-ENODEV);
- graph = kzalloc(sizeof(*graph), GFP_KERNEL);
+ graph = kzalloc_obj(*graph, GFP_KERNEL);
if (!graph)
return ERR_PTR(-ENOMEM);
@@ -220,7 +220,7 @@ int q6apm_map_memory_regions(struct q6apm_graph *graph, unsigned int dir, phys_a
return 0;
}
- buf = kcalloc(periods, sizeof(struct audio_buffer), GFP_KERNEL);
+ buf = kzalloc_objs(struct audio_buffer, periods, GFP_KERNEL);
if (!buf) {
mutex_unlock(&graph->lock);
return -ENOMEM;
@@ -615,7 +615,7 @@ struct q6apm_graph *q6apm_graph_open(struct device *dev, q6apm_cb cb,
return ERR_CAST(ar_graph);
}
- graph = kzalloc(sizeof(*graph), GFP_KERNEL);
+ graph = kzalloc_obj(*graph, GFP_KERNEL);
if (!graph) {
ret = -ENOMEM;
goto put_ar_graph;
diff --git a/sound/soc/qcom/qdsp6/q6asm-dai.c b/sound/soc/qcom/qdsp6/q6asm-dai.c
index 709b4f3318ff..99c1969d5cdc 100644
--- a/sound/soc/qcom/qdsp6/q6asm-dai.c
+++ b/sound/soc/qcom/qdsp6/q6asm-dai.c
@@ -378,7 +378,7 @@ static int q6asm_dai_open(struct snd_soc_component *component,
return -EINVAL;
}
- prtd = kzalloc(sizeof(struct q6asm_dai_rtd), GFP_KERNEL);
+ prtd = kzalloc_obj(struct q6asm_dai_rtd, GFP_KERNEL);
if (prtd == NULL)
return -ENOMEM;
@@ -621,7 +621,7 @@ static int q6asm_dai_compr_open(struct snd_soc_component *component,
return -EINVAL;
}
- prtd = kzalloc(sizeof(*prtd), GFP_KERNEL);
+ prtd = kzalloc_obj(*prtd, GFP_KERNEL);
if (!prtd)
return -ENOMEM;
diff --git a/sound/soc/qcom/qdsp6/q6asm.c b/sound/soc/qcom/qdsp6/q6asm.c
index 1bb295407c60..424306da4a25 100644
--- a/sound/soc/qcom/qdsp6/q6asm.c
+++ b/sound/soc/qcom/qdsp6/q6asm.c
@@ -506,7 +506,7 @@ int q6asm_map_memory_regions(unsigned int dir, struct audio_client *ac,
return 0;
}
- buf = kcalloc(periods, sizeof(*buf), GFP_ATOMIC);
+ buf = kzalloc_objs(*buf, periods, GFP_ATOMIC);
if (!buf) {
spin_unlock_irqrestore(&ac->lock, flags);
return -ENOMEM;
@@ -850,7 +850,7 @@ struct audio_client *q6asm_audio_client_alloc(struct device *dev, q6asm_cb cb,
return ac;
}
- ac = kzalloc(sizeof(*ac), GFP_KERNEL);
+ ac = kzalloc_obj(*ac, GFP_KERNEL);
if (!ac)
return ERR_PTR(-ENOMEM);
diff --git a/sound/soc/qcom/qdsp6/q6core.c b/sound/soc/qcom/qdsp6/q6core.c
index f4939302b88a..393488c571cd 100644
--- a/sound/soc/qcom/qdsp6/q6core.c
+++ b/sound/soc/qcom/qdsp6/q6core.c
@@ -327,7 +327,7 @@ EXPORT_SYMBOL_GPL(q6core_is_adsp_ready);
static int q6core_probe(struct apr_device *adev)
{
- g_core = kzalloc(sizeof(*g_core), GFP_KERNEL);
+ g_core = kzalloc_obj(*g_core, GFP_KERNEL);
if (!g_core)
return -ENOMEM;
diff --git a/sound/soc/qcom/qdsp6/q6routing.c b/sound/soc/qcom/qdsp6/q6routing.c
index aaa3af9f1993..c3b26b318718 100644
--- a/sound/soc/qcom/qdsp6/q6routing.c
+++ b/sound/soc/qcom/qdsp6/q6routing.c
@@ -1133,7 +1133,7 @@ static int q6pcm_routing_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
- routing_data = kzalloc(sizeof(*routing_data), GFP_KERNEL);
+ routing_data = kzalloc_obj(*routing_data, GFP_KERNEL);
if (!routing_data)
return -ENOMEM;
diff --git a/sound/soc/qcom/qdsp6/topology.c b/sound/soc/qcom/qdsp6/topology.c
index 2e71eaa90441..076b55c1f729 100644
--- a/sound/soc/qcom/qdsp6/topology.c
+++ b/sound/soc/qcom/qdsp6/topology.c
@@ -42,7 +42,7 @@ static struct audioreach_graph_info *audioreach_tplg_alloc_graph_info(struct q6a
}
*found = false;
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info)
return ERR_PTR(-ENOMEM);
@@ -92,7 +92,7 @@ static struct audioreach_sub_graph *audioreach_tplg_alloc_sub_graph(struct q6apm
}
*found = false;
- sg = kzalloc(sizeof(*sg), GFP_KERNEL);
+ sg = kzalloc_obj(*sg, GFP_KERNEL);
if (!sg)
return ERR_PTR(-ENOMEM);
@@ -134,7 +134,7 @@ static struct audioreach_container *audioreach_tplg_alloc_container(struct q6apm
}
*found = false;
- cont = kzalloc(sizeof(*cont), GFP_KERNEL);
+ cont = kzalloc_obj(*cont, GFP_KERNEL);
if (!cont)
return ERR_PTR(-ENOMEM);
@@ -176,7 +176,7 @@ static struct audioreach_module *audioreach_tplg_alloc_module(struct q6apm *apm,
return mod;
}
*found = false;
- mod = kzalloc(sizeof(*mod), GFP_KERNEL);
+ mod = kzalloc_obj(*mod, GFP_KERNEL);
if (!mod)
return ERR_PTR(-ENOMEM);
@@ -317,8 +317,9 @@ audioreach_get_module_priv_data(const struct snd_soc_tplg_private *private)
if (le32_to_cpu(mod_array->type) == SND_SOC_AR_TPLG_MODULE_CFG_TYPE) {
struct audioreach_module_priv_data *pdata;
- pdata = kzalloc(struct_size(pdata, data, le32_to_cpu(mod_array->size)),
- GFP_KERNEL);
+ pdata = kzalloc_flex(*pdata, data,
+ le32_to_cpu(mod_array->size),
+ GFP_KERNEL);
if (!pdata)
return ERR_PTR(-ENOMEM);
@@ -829,7 +830,7 @@ static int audioreach_widget_load_mixer(struct snd_soc_component *component,
w_array = &tplg_w->priv.array[0];
- scontrol = kzalloc(sizeof(*scontrol), GFP_KERNEL);
+ scontrol = kzalloc_obj(*scontrol, GFP_KERNEL);
if (!scontrol)
return -ENOMEM;
@@ -1246,7 +1247,7 @@ static int audioreach_control_load(struct snd_soc_component *scomp, int index,
struct snd_soc_dobj *dobj;
int ret = 0;
- scontrol = kzalloc(sizeof(*scontrol), GFP_KERNEL);
+ scontrol = kzalloc_obj(*scontrol, GFP_KERNEL);
if (!scontrol)
return -ENOMEM;
diff --git a/sound/soc/renesas/siu_dai.c b/sound/soc/renesas/siu_dai.c
index 7e771a164a80..5e7751c8b1e3 100644
--- a/sound/soc/renesas/siu_dai.c
+++ b/sound/soc/renesas/siu_dai.c
@@ -453,7 +453,7 @@ int siu_init_port(int port, struct siu_port **port_info, struct snd_card *card)
struct snd_kcontrol *kctrl;
int ret;
- *port_info = kzalloc(sizeof(**port_info), GFP_KERNEL);
+ *port_info = kzalloc_obj(**port_info, GFP_KERNEL);
if (!*port_info)
return -ENOMEM;
diff --git a/sound/soc/samsung/idma.c b/sound/soc/samsung/idma.c
index 402ccadad46c..58fade080976 100644
--- a/sound/soc/samsung/idma.c
+++ b/sound/soc/samsung/idma.c
@@ -290,7 +290,7 @@ static int idma_open(struct snd_soc_component *component,
snd_soc_set_runtime_hwparams(substream, &idma_hardware);
- prtd = kzalloc(sizeof(struct idma_ctrl), GFP_KERNEL);
+ prtd = kzalloc_obj(struct idma_ctrl, GFP_KERNEL);
if (prtd == NULL)
return -ENOMEM;
diff --git a/sound/soc/sdca/sdca_asoc.c b/sound/soc/sdca/sdca_asoc.c
index bb6e74e80a3e..51ccaa14b443 100644
--- a/sound/soc/sdca/sdca_asoc.c
+++ b/sound/soc/sdca/sdca_asoc.c
@@ -1349,7 +1349,7 @@ int sdca_asoc_set_constraints(struct device *dev, struct regmap *regmap,
dev_dbg(dev, "%s: set channel constraint mask: %#x\n",
entity->label, channel_mask);
- constraint = kzalloc(sizeof(*constraint), GFP_KERNEL);
+ constraint = kzalloc_obj(*constraint, GFP_KERNEL);
if (!constraint)
return -ENOMEM;
diff --git a/sound/soc/sdca/sdca_function_device.c b/sound/soc/sdca/sdca_function_device.c
index c6cc880a150e..dd419f426ba6 100644
--- a/sound/soc/sdca/sdca_function_device.c
+++ b/sound/soc/sdca/sdca_function_device.c
@@ -39,7 +39,7 @@ static struct sdca_dev *sdca_dev_register(struct device *parent,
int ret;
int rc;
- sdev = kzalloc(sizeof(*sdev), GFP_KERNEL);
+ sdev = kzalloc_obj(*sdev, GFP_KERNEL);
if (!sdev)
return ERR_PTR(-ENOMEM);
diff --git a/sound/soc/sdca/sdca_jack.c b/sound/soc/sdca/sdca_jack.c
index 605514f02045..0ce9cf8f850c 100644
--- a/sound/soc/sdca/sdca_jack.c
+++ b/sound/soc/sdca/sdca_jack.c
@@ -99,7 +99,7 @@ int sdca_jack_process(struct sdca_interrupt *interrupt)
if (kctl) {
struct soc_enum *soc_enum = (struct soc_enum *)kctl->private_value;
- ucontrol = kzalloc(sizeof(*ucontrol), GFP_KERNEL);
+ ucontrol = kzalloc_obj(*ucontrol, GFP_KERNEL);
if (!ucontrol)
return -ENOMEM;
diff --git a/sound/soc/soc-ac97.c b/sound/soc/soc-ac97.c
index 37486d6a438e..f71413a186b8 100644
--- a/sound/soc/soc-ac97.c
+++ b/sound/soc/soc-ac97.c
@@ -181,7 +181,7 @@ struct snd_ac97 *snd_soc_alloc_ac97_component(struct snd_soc_component *componen
{
struct snd_ac97 *ac97;
- ac97 = kzalloc(sizeof(struct snd_ac97), GFP_KERNEL);
+ ac97 = kzalloc_obj(struct snd_ac97, GFP_KERNEL);
if (ac97 == NULL)
return ERR_PTR(-ENOMEM);
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 5811d053ce7a..7c1f2c93d5d3 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -507,7 +507,7 @@ static struct snd_soc_pcm_runtime *soc_new_pcm_runtime(
/*
* for rtd->dev
*/
- dev = kzalloc(sizeof(struct device), GFP_KERNEL);
+ dev = kzalloc_obj(struct device, GFP_KERNEL);
if (!dev)
return NULL;
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index c23ccf4a602d..54ee54dcba87 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -638,7 +638,7 @@ static int dapm_add_path(
if (ret)
return ret;
- path = kzalloc(sizeof(struct snd_soc_dapm_path), GFP_KERNEL);
+ path = kzalloc_obj(struct snd_soc_dapm_path, GFP_KERNEL);
if (!path)
return -ENOMEM;
@@ -713,7 +713,7 @@ static int dapm_kcontrol_data_alloc(struct snd_soc_dapm_widget *widget,
const char *name;
int ret;
- data = kzalloc(sizeof(*data), GFP_KERNEL);
+ data = kzalloc_obj(*data, GFP_KERNEL);
if (!data)
return -ENOMEM;
@@ -1435,7 +1435,7 @@ static int dapm_widget_list_create(struct snd_soc_dapm_widget_list **list,
list_for_each(it, widgets)
size++;
- *list = kzalloc(struct_size(*list, widgets, size), GFP_KERNEL);
+ *list = kzalloc_flex(**list, widgets, size, GFP_KERNEL);
if (*list == NULL)
return -ENOMEM;
@@ -3332,9 +3332,9 @@ int snd_soc_dapm_new_widgets(struct snd_soc_card *card)
continue;
if (w->num_kcontrols) {
- w->kcontrols = kcalloc(w->num_kcontrols,
- sizeof(struct snd_kcontrol *),
- GFP_KERNEL);
+ w->kcontrols = kzalloc_objs(struct snd_kcontrol *,
+ w->num_kcontrols,
+ GFP_KERNEL);
if (!w->kcontrols) {
snd_soc_dapm_mutex_unlock(card);
return -ENOMEM;
@@ -3972,12 +3972,12 @@ static int dapm_dai_link_event_pre_pmu(struct snd_soc_dapm_widget *w,
* stuff that increases stack usage.
* So, we use kzalloc()/kfree() for params in this function.
*/
- struct snd_pcm_hw_params *params __free(kfree) = kzalloc(sizeof(*params),
- GFP_KERNEL);
+ struct snd_pcm_hw_params *params __free(kfree) = kzalloc_obj(*params,
+ GFP_KERNEL);
if (!params)
return -ENOMEM;
- runtime = kzalloc(sizeof(*runtime), GFP_KERNEL);
+ runtime = kzalloc_obj(*runtime, GFP_KERNEL);
if (!runtime)
return -ENOMEM;
diff --git a/sound/soc/soc-generic-dmaengine-pcm.c b/sound/soc/soc-generic-dmaengine-pcm.c
index a63e942fdc0b..1a2b5a8fd198 100644
--- a/sound/soc/soc-generic-dmaengine-pcm.c
+++ b/sound/soc/soc-generic-dmaengine-pcm.c
@@ -437,7 +437,7 @@ int snd_dmaengine_pcm_register(struct device *dev,
struct dmaengine_pcm *pcm;
int ret;
- pcm = kzalloc(sizeof(*pcm), GFP_KERNEL);
+ pcm = kzalloc_obj(*pcm, GFP_KERNEL);
if (!pcm)
return -ENOMEM;
diff --git a/sound/soc/soc-ops-test.c b/sound/soc/soc-ops-test.c
index 1bafa5626d48..0f924a6b0d15 100644
--- a/sound/soc/soc-ops-test.c
+++ b/sound/soc/soc-ops-test.c
@@ -486,7 +486,7 @@ static void soc_ops_test_access(struct kunit *test)
/* it is too large struct. use kzalloc() */
struct snd_ctl_elem_value *result;
- result = kzalloc(sizeof(*result), GFP_KERNEL);
+ result = kzalloc_obj(*result, GFP_KERNEL);
if (!result)
return;
diff --git a/sound/soc/soc-ops.c b/sound/soc/soc-ops.c
index ba42939d5f01..1d2ebb4f63e4 100644
--- a/sound/soc/soc-ops.c
+++ b/sound/soc/soc-ops.c
@@ -454,7 +454,7 @@ static int snd_soc_clip_to_platform_max(struct snd_kcontrol *kctl)
if (!mc->platform_max)
return 0;
- uctl = kzalloc(sizeof(*uctl), GFP_KERNEL);
+ uctl = kzalloc_obj(*uctl, GFP_KERNEL);
if (!uctl)
return -ENOMEM;
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index 6b134962c71c..b3e3ffdcce6f 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -1323,7 +1323,7 @@ static int dpcm_be_connect(struct snd_soc_pcm_runtime *fe,
be_substream->pcm->nonatomic = 1;
}
- dpcm = kzalloc(sizeof(struct snd_soc_dpcm), GFP_KERNEL);
+ dpcm = kzalloc_obj(struct snd_soc_dpcm, GFP_KERNEL);
if (!dpcm)
return -ENOMEM;
diff --git a/sound/soc/soc-usb.c b/sound/soc/soc-usb.c
index 26baa66d29a8..57e537edb637 100644
--- a/sound/soc/soc-usb.c
+++ b/sound/soc/soc-usb.c
@@ -189,7 +189,7 @@ struct snd_soc_usb *snd_soc_usb_allocate_port(struct snd_soc_component *componen
{
struct snd_soc_usb *usb;
- usb = kzalloc(sizeof(*usb), GFP_KERNEL);
+ usb = kzalloc_obj(*usb, GFP_KERNEL);
if (!usb)
return ERR_PTR(-ENOMEM);
diff --git a/sound/soc/sof/compress.c b/sound/soc/sof/compress.c
index 86d563c864e5..f68fa3551df8 100644
--- a/sound/soc/sof/compress.c
+++ b/sound/soc/sof/compress.c
@@ -101,7 +101,7 @@ static int sof_compr_open(struct snd_soc_component *component,
struct snd_sof_pcm *spcm;
int dir;
- sstream = kzalloc(sizeof(*sstream), GFP_KERNEL);
+ sstream = kzalloc_obj(*sstream, GFP_KERNEL);
if (!sstream)
return -ENOMEM;
diff --git a/sound/soc/sof/intel/apl.c b/sound/soc/sof/intel/apl.c
index 0c68ae41a8a8..31494c686c72 100644
--- a/sound/soc/sof/intel/apl.c
+++ b/sound/soc/sof/intel/apl.c
@@ -54,7 +54,7 @@ int sof_apl_ops_init(struct snd_sof_dev *sdev)
if (sdev->pdata->ipc_type == SOF_IPC_TYPE_4) {
struct sof_ipc4_fw_data *ipc4_data;
- sdev->private = kzalloc(sizeof(*ipc4_data), GFP_KERNEL);
+ sdev->private = kzalloc_obj(*ipc4_data, GFP_KERNEL);
if (!sdev->private)
return -ENOMEM;
diff --git a/sound/soc/sof/intel/cnl.c b/sound/soc/sof/intel/cnl.c
index 69376fb5b20d..b55dd9ace41f 100644
--- a/sound/soc/sof/intel/cnl.c
+++ b/sound/soc/sof/intel/cnl.c
@@ -401,7 +401,7 @@ int sof_cnl_ops_init(struct snd_sof_dev *sdev)
if (sdev->pdata->ipc_type == SOF_IPC_TYPE_4) {
struct sof_ipc4_fw_data *ipc4_data;
- sdev->private = kzalloc(sizeof(*ipc4_data), GFP_KERNEL);
+ sdev->private = kzalloc_obj(*ipc4_data, GFP_KERNEL);
if (!sdev->private)
return -ENOMEM;
diff --git a/sound/soc/sof/intel/hda-mlink.c b/sound/soc/sof/intel/hda-mlink.c
index 6f15213937a3..c9790f37928f 100644
--- a/sound/soc/sof/intel/hda-mlink.c
+++ b/sound/soc/sof/intel/hda-mlink.c
@@ -392,7 +392,7 @@ static int hda_ml_alloc_h2link(struct hdac_bus *bus, int index)
struct hdac_ext_link *hlink;
int ret;
- h2link = kzalloc(sizeof(*h2link), GFP_KERNEL);
+ h2link = kzalloc_obj(*h2link, GFP_KERNEL);
if (!h2link)
return -ENOMEM;
diff --git a/sound/soc/sof/intel/icl.c b/sound/soc/sof/intel/icl.c
index dbc5ad62258b..8079a1363b45 100644
--- a/sound/soc/sof/intel/icl.c
+++ b/sound/soc/sof/intel/icl.c
@@ -122,7 +122,7 @@ int sof_icl_ops_init(struct snd_sof_dev *sdev)
if (sdev->pdata->ipc_type == SOF_IPC_TYPE_4) {
struct sof_ipc4_fw_data *ipc4_data;
- sdev->private = kzalloc(sizeof(*ipc4_data), GFP_KERNEL);
+ sdev->private = kzalloc_obj(*ipc4_data, GFP_KERNEL);
if (!sdev->private)
return -ENOMEM;
diff --git a/sound/soc/sof/intel/mtl.c b/sound/soc/sof/intel/mtl.c
index 4ac81537ca05..e46b0fd5746f 100644
--- a/sound/soc/sof/intel/mtl.c
+++ b/sound/soc/sof/intel/mtl.c
@@ -734,7 +734,7 @@ int sof_mtl_set_ops(struct snd_sof_dev *sdev, struct snd_sof_dsp_ops *dsp_ops)
dsp_ops->core_get = mtl_dsp_core_get;
dsp_ops->core_put = mtl_dsp_core_put;
- sdev->private = kzalloc(sizeof(struct sof_ipc4_fw_data), GFP_KERNEL);
+ sdev->private = kzalloc_obj(struct sof_ipc4_fw_data, GFP_KERNEL);
if (!sdev->private)
return -ENOMEM;
diff --git a/sound/soc/sof/intel/skl.c b/sound/soc/sof/intel/skl.c
index 90a3c2e2334c..eb94027a5724 100644
--- a/sound/soc/sof/intel/skl.c
+++ b/sound/soc/sof/intel/skl.c
@@ -62,7 +62,7 @@ int sof_skl_ops_init(struct snd_sof_dev *sdev)
/* probe/remove/shutdown */
sof_skl_ops.shutdown = hda_dsp_shutdown;
- sdev->private = kzalloc(sizeof(*ipc4_data), GFP_KERNEL);
+ sdev->private = kzalloc_obj(*ipc4_data, GFP_KERNEL);
if (!sdev->private)
return -ENOMEM;
diff --git a/sound/soc/sof/intel/telemetry.c b/sound/soc/sof/intel/telemetry.c
index dcaaf03599db..2e2cc6e2ea3a 100644
--- a/sound/soc/sof/intel/telemetry.c
+++ b/sound/soc/sof/intel/telemetry.c
@@ -29,7 +29,7 @@ void sof_ipc4_intel_dump_telemetry_state(struct snd_sof_dev *sdev, u32 flags)
if (!slot_offset)
return;
- telemetry_data = kmalloc(sizeof(*telemetry_data), GFP_KERNEL);
+ telemetry_data = kmalloc_obj(*telemetry_data, GFP_KERNEL);
if (!telemetry_data)
return;
sof_mailbox_read(sdev, slot_offset, telemetry_data, sizeof(*telemetry_data));
@@ -39,7 +39,7 @@ void sof_ipc4_intel_dump_telemetry_state(struct snd_sof_dev *sdev, u32 flags)
goto free_telemetry_data;
}
- block = kmalloc(sizeof(*block), GFP_KERNEL);
+ block = kmalloc_obj(*block, GFP_KERNEL);
if (!block)
goto free_telemetry_data;
@@ -71,7 +71,7 @@ void sof_ipc4_intel_dump_telemetry_state(struct snd_sof_dev *sdev, u32 flags)
break;
}
- xoops = kzalloc(struct_size(xoops, ar, XTENSA_CORE_AR_REGS_COUNT), GFP_KERNEL);
+ xoops = kzalloc_flex(*xoops, ar, XTENSA_CORE_AR_REGS_COUNT, GFP_KERNEL);
if (!xoops)
goto free_block;
diff --git a/sound/soc/sof/intel/tgl.c b/sound/soc/sof/intel/tgl.c
index e68bbe685ba3..1c07f5882e1c 100644
--- a/sound/soc/sof/intel/tgl.c
+++ b/sound/soc/sof/intel/tgl.c
@@ -90,7 +90,7 @@ int sof_tgl_ops_init(struct snd_sof_dev *sdev)
if (sdev->pdata->ipc_type == SOF_IPC_TYPE_4) {
struct sof_ipc4_fw_data *ipc4_data;
- sdev->private = kzalloc(sizeof(*ipc4_data), GFP_KERNEL);
+ sdev->private = kzalloc_obj(*ipc4_data, GFP_KERNEL);
if (!sdev->private)
return -ENOMEM;
diff --git a/sound/soc/sof/ipc3-dtrace.c b/sound/soc/sof/ipc3-dtrace.c
index 50700f5cb0ef..d5cb86b2ad08 100644
--- a/sound/soc/sof/ipc3-dtrace.c
+++ b/sound/soc/sof/ipc3-dtrace.c
@@ -126,7 +126,7 @@ static int trace_filter_parse(struct snd_sof_dev *sdev, char *string,
capacity += TRACE_FILTER_ELEMENTS_PER_ENTRY;
entry = strchr(entry + 1, entry_delimiter[0]);
}
- *out = kmalloc_array(capacity, sizeof(**out), GFP_KERNEL);
+ *out = kmalloc_objs(**out, capacity, GFP_KERNEL);
if (!*out)
return -ENOMEM;
diff --git a/sound/soc/sof/ipc3-topology.c b/sound/soc/sof/ipc3-topology.c
index 743f42fb26c0..b4fc27727106 100644
--- a/sound/soc/sof/ipc3-topology.c
+++ b/sound/soc/sof/ipc3-topology.c
@@ -524,7 +524,7 @@ static int sof_ipc3_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_widget *comp_swidget;
int ret;
- pipeline = kzalloc(sizeof(*pipeline), GFP_KERNEL);
+ pipeline = kzalloc_obj(*pipeline, GFP_KERNEL);
if (!pipeline)
return -ENOMEM;
@@ -589,7 +589,7 @@ static int sof_ipc3_widget_setup_comp_buffer(struct snd_sof_widget *swidget)
struct sof_ipc_buffer *buffer;
int ret;
- buffer = kzalloc(sizeof(*buffer), GFP_KERNEL);
+ buffer = kzalloc_obj(*buffer, GFP_KERNEL);
if (!buffer)
return -ENOMEM;
@@ -893,7 +893,7 @@ static int sof_process_load(struct snd_soc_component *scomp,
/* allocate struct for widget control data sizes and types */
if (widget->num_kcontrols) {
- wdata = kcalloc(widget->num_kcontrols, sizeof(*wdata), GFP_KERNEL);
+ wdata = kzalloc_objs(*wdata, widget->num_kcontrols, GFP_KERNEL);
if (!wdata)
return -ENOMEM;
@@ -1567,7 +1567,7 @@ static int sof_ipc3_widget_setup_comp_dai(struct snd_sof_widget *swidget)
struct snd_sof_dai_link *slink;
int ret;
- private = kzalloc(sizeof(*private), GFP_KERNEL);
+ private = kzalloc_obj(*private, GFP_KERNEL);
if (!private)
return -ENOMEM;
@@ -1622,7 +1622,8 @@ static int sof_ipc3_widget_setup_comp_dai(struct snd_sof_widget *swidget)
continue;
/* Reserve memory for all hw configs, eventually freed by widget */
- config = kcalloc(slink->num_hw_configs, sizeof(*config), GFP_KERNEL);
+ config = kzalloc_objs(*config, slink->num_hw_configs,
+ GFP_KERNEL);
if (!config) {
ret = -ENOMEM;
goto free_comp;
diff --git a/sound/soc/sof/ipc4-pcm.c b/sound/soc/sof/ipc4-pcm.c
index c3337c3f08c1..a21dc53e1026 100644
--- a/sound/soc/sof/ipc4-pcm.c
+++ b/sound/soc/sof/ipc4-pcm.c
@@ -476,8 +476,8 @@ static int sof_ipc4_trigger_pipelines(struct snd_soc_component *component,
}
/* allocate memory for the pipeline data */
- trigger_list = kzalloc(struct_size(trigger_list, pipeline_instance_ids,
- pipeline_list->count), GFP_KERNEL);
+ trigger_list = kzalloc_flex(*trigger_list, pipeline_instance_ids,
+ pipeline_list->count, GFP_KERNEL);
if (!trigger_list)
return -ENOMEM;
@@ -931,15 +931,15 @@ static int sof_ipc4_pcm_setup(struct snd_sof_dev *sdev, struct snd_sof_pcm *spcm
pipeline_list = &spcm->stream[stream].pipeline_list;
/* allocate memory for max number of pipeline IDs */
- pipeline_list->pipelines = kcalloc(ipc4_data->max_num_pipelines,
- sizeof(*pipeline_list->pipelines),
- GFP_KERNEL);
+ pipeline_list->pipelines = kzalloc_objs(*pipeline_list->pipelines,
+ ipc4_data->max_num_pipelines,
+ GFP_KERNEL);
if (!pipeline_list->pipelines) {
sof_ipc4_pcm_free(sdev, spcm);
return -ENOMEM;
}
- stream_priv = kzalloc(sizeof(*stream_priv), GFP_KERNEL);
+ stream_priv = kzalloc_obj(*stream_priv, GFP_KERNEL);
if (!stream_priv) {
sof_ipc4_pcm_free(sdev, spcm);
return -ENOMEM;
@@ -951,7 +951,7 @@ static int sof_ipc4_pcm_setup(struct snd_sof_dev *sdev, struct snd_sof_pcm *spcm
if (!support_info || stream == SNDRV_PCM_STREAM_CAPTURE)
continue;
- time_info = kzalloc(sizeof(*time_info), GFP_KERNEL);
+ time_info = kzalloc_obj(*time_info, GFP_KERNEL);
if (!time_info) {
sof_ipc4_pcm_free(sdev, spcm);
return -ENOMEM;
diff --git a/sound/soc/sof/ipc4-topology.c b/sound/soc/sof/ipc4-topology.c
index 622bffb50a1c..051b02b222f9 100644
--- a/sound/soc/sof/ipc4-topology.c
+++ b/sound/soc/sof/ipc4-topology.c
@@ -436,8 +436,9 @@ static int sof_ipc4_get_audio_fmt(struct snd_soc_component *scomp,
module_base_cfg->is_pages);
if (available_fmt->num_input_formats) {
- in_format = kcalloc(available_fmt->num_input_formats,
- sizeof(*in_format), GFP_KERNEL);
+ in_format = kzalloc_objs(*in_format,
+ available_fmt->num_input_formats,
+ GFP_KERNEL);
if (!in_format)
return -ENOMEM;
available_fmt->input_pin_fmts = in_format;
@@ -457,8 +458,9 @@ static int sof_ipc4_get_audio_fmt(struct snd_soc_component *scomp,
}
if (available_fmt->num_output_formats) {
- out_format = kcalloc(available_fmt->num_output_formats, sizeof(*out_format),
- GFP_KERNEL);
+ out_format = kzalloc_objs(*out_format,
+ available_fmt->num_output_formats,
+ GFP_KERNEL);
if (!out_format) {
ret = -ENOMEM;
goto err_in;
@@ -627,7 +629,7 @@ static int sof_ipc4_widget_setup_pcm(struct snd_sof_widget *swidget)
int node_type = 0;
int ret, dir;
- ipc4_copier = kzalloc(sizeof(*ipc4_copier), GFP_KERNEL);
+ ipc4_copier = kzalloc_obj(*ipc4_copier, GFP_KERNEL);
if (!ipc4_copier)
return -ENOMEM;
@@ -688,7 +690,7 @@ static int sof_ipc4_widget_setup_pcm(struct snd_sof_widget *swidget)
}
skip_gtw_cfg:
- ipc4_copier->gtw_attr = kzalloc(sizeof(*ipc4_copier->gtw_attr), GFP_KERNEL);
+ ipc4_copier->gtw_attr = kzalloc_obj(*ipc4_copier->gtw_attr, GFP_KERNEL);
if (!ipc4_copier->gtw_attr) {
ret = -ENOMEM;
goto free_available_fmt;
@@ -757,7 +759,7 @@ static int sof_ipc4_widget_setup_comp_dai(struct snd_sof_widget *swidget)
int node_type = 0;
int ret;
- ipc4_copier = kzalloc(sizeof(*ipc4_copier), GFP_KERNEL);
+ ipc4_copier = kzalloc_obj(*ipc4_copier, GFP_KERNEL);
if (!ipc4_copier)
return -ENOMEM;
@@ -824,7 +826,7 @@ static int sof_ipc4_widget_setup_comp_dai(struct snd_sof_widget *swidget)
break;
}
- blob = kzalloc(sizeof(*blob), GFP_KERNEL);
+ blob = kzalloc_obj(*blob, GFP_KERNEL);
if (!blob) {
ret = -ENOMEM;
goto free_available_fmt;
@@ -863,7 +865,8 @@ static int sof_ipc4_widget_setup_comp_dai(struct snd_sof_widget *swidget)
SOF_IPC4_NODE_INDEX_INTEL_DMIC(ipc4_copier->dai_index);
break;
default:
- ipc4_copier->gtw_attr = kzalloc(sizeof(*ipc4_copier->gtw_attr), GFP_KERNEL);
+ ipc4_copier->gtw_attr = kzalloc_obj(*ipc4_copier->gtw_attr,
+ GFP_KERNEL);
if (!ipc4_copier->gtw_attr) {
ret = -ENOMEM;
goto free_available_fmt;
@@ -930,7 +933,7 @@ static int sof_ipc4_widget_setup_comp_pipeline(struct snd_sof_widget *swidget)
struct snd_sof_pipeline *spipe = swidget->spipe;
int ret;
- pipeline = kzalloc(sizeof(*pipeline), GFP_KERNEL);
+ pipeline = kzalloc_obj(*pipeline, GFP_KERNEL);
if (!pipeline)
return -ENOMEM;
@@ -989,7 +992,7 @@ static int sof_ipc4_widget_setup_comp_pga(struct snd_sof_widget *swidget)
struct sof_ipc4_gain *gain;
int ret;
- gain = kzalloc(sizeof(*gain), GFP_KERNEL);
+ gain = kzalloc_obj(*gain, GFP_KERNEL);
if (!gain)
return -ENOMEM;
@@ -1048,7 +1051,7 @@ static int sof_ipc4_widget_setup_comp_mixer(struct snd_sof_widget *swidget)
dev_dbg(scomp->dev, "Updating IPC structure for %s\n", swidget->widget->name);
- mixer = kzalloc(sizeof(*mixer), GFP_KERNEL);
+ mixer = kzalloc_obj(*mixer, GFP_KERNEL);
if (!mixer)
return -ENOMEM;
@@ -1080,7 +1083,7 @@ static int sof_ipc4_widget_setup_comp_src(struct snd_sof_widget *swidget)
dev_dbg(scomp->dev, "Updating IPC structure for %s\n", swidget->widget->name);
- src = kzalloc(sizeof(*src), GFP_KERNEL);
+ src = kzalloc_obj(*src, GFP_KERNEL);
if (!src)
return -ENOMEM;
@@ -1123,7 +1126,7 @@ static int sof_ipc4_widget_setup_comp_asrc(struct snd_sof_widget *swidget)
dev_dbg(scomp->dev, "Updating IPC structure for %s\n", swidget->widget->name);
- asrc = kzalloc(sizeof(*asrc), GFP_KERNEL);
+ asrc = kzalloc_obj(*asrc, GFP_KERNEL);
if (!asrc)
return -ENOMEM;
@@ -1206,7 +1209,7 @@ static int sof_ipc4_widget_setup_comp_process(struct snd_sof_widget *swidget)
void *cfg;
int ret;
- process = kzalloc(sizeof(*process), GFP_KERNEL);
+ process = kzalloc_obj(*process, GFP_KERNEL);
if (!process)
return -ENOMEM;
diff --git a/sound/soc/sof/sof-client-probes-ipc4.c b/sound/soc/sof/sof-client-probes-ipc4.c
index d3fa37106b64..2ab282e98a61 100644
--- a/sound/soc/sof/sof-client-probes-ipc4.c
+++ b/sound/soc/sof/sof-client-probes-ipc4.c
@@ -327,7 +327,7 @@ static int ipc4_probes_points_add(struct sof_client_dev *cdev,
* performance issue I wrote the conversion explicitly open for
* future development.
*/
- points = kcalloc(num_desc, sizeof(*points), GFP_KERNEL);
+ points = kzalloc_objs(*points, num_desc, GFP_KERNEL);
if (!points)
return -ENOMEM;
diff --git a/sound/soc/sof/sof-client.c b/sound/soc/sof/sof-client.c
index 38f1d7cec470..6cc9b7616100 100644
--- a/sound/soc/sof/sof-client.c
+++ b/sound/soc/sof/sof-client.c
@@ -554,7 +554,7 @@ int sof_client_register_ipc_rx_handler(struct sof_client_dev *cdev,
return -EINVAL;
}
- event = kmalloc(sizeof(*event), GFP_KERNEL);
+ event = kmalloc_obj(*event, GFP_KERNEL);
if (!event)
return -ENOMEM;
@@ -608,7 +608,7 @@ int sof_client_register_fw_state_handler(struct sof_client_dev *cdev,
if (!callback)
return -EINVAL;
- event = kmalloc(sizeof(*event), GFP_KERNEL);
+ event = kmalloc_obj(*event, GFP_KERNEL);
if (!event)
return -ENOMEM;
diff --git a/sound/soc/sof/stream-ipc.c b/sound/soc/sof/stream-ipc.c
index 8262443ac89a..e7541e1976b8 100644
--- a/sound/soc/sof/stream-ipc.c
+++ b/sound/soc/sof/stream-ipc.c
@@ -99,7 +99,7 @@ EXPORT_SYMBOL(sof_set_stream_data_offset);
int sof_stream_pcm_open(struct snd_sof_dev *sdev,
struct snd_pcm_substream *substream)
{
- struct sof_stream *stream = kmalloc(sizeof(*stream), GFP_KERNEL);
+ struct sof_stream *stream = kmalloc_obj(*stream, GFP_KERNEL);
if (!stream)
return -ENOMEM;
diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
index 9bf8ab610a7e..46d78de5d9da 100644
--- a/sound/soc/sof/topology.c
+++ b/sound/soc/sof/topology.c
@@ -973,7 +973,7 @@ static int sof_control_load(struct snd_soc_component *scomp, int index,
dev_dbg(scomp->dev, "tplg: load control type %d name : %s\n",
hdr->type, hdr->name);
- scontrol = kzalloc(sizeof(*scontrol), GFP_KERNEL);
+ scontrol = kzalloc_obj(*scontrol, GFP_KERNEL);
if (!scontrol)
return -ENOMEM;
@@ -1233,7 +1233,7 @@ static int sof_widget_parse_tokens(struct snd_soc_component *scomp, struct snd_s
num_tuples += token_list[object_token_list[i]].count;
/* allocate memory for tuples array */
- swidget->tuples = kcalloc(num_tuples, sizeof(*swidget->tuples), GFP_KERNEL);
+ swidget->tuples = kzalloc_objs(*swidget->tuples, num_tuples, GFP_KERNEL);
if (!swidget->tuples)
return -ENOMEM;
@@ -1420,7 +1420,7 @@ static int sof_widget_ready(struct snd_soc_component *scomp, int index,
int token_list_size = 0;
int ret = 0;
- swidget = kzalloc(sizeof(*swidget), GFP_KERNEL);
+ swidget = kzalloc_obj(*swidget, GFP_KERNEL);
if (!swidget)
return -ENOMEM;
@@ -1496,7 +1496,7 @@ static int sof_widget_ready(struct snd_soc_component *scomp, int index,
switch (w->id) {
case snd_soc_dapm_dai_in:
case snd_soc_dapm_dai_out:
- dai = kzalloc(sizeof(*dai), GFP_KERNEL);
+ dai = kzalloc_obj(*dai, GFP_KERNEL);
if (!dai) {
ret = -ENOMEM;
goto widget_free;
@@ -1586,7 +1586,7 @@ static int sof_widget_ready(struct snd_soc_component *scomp, int index,
if (w->id == snd_soc_dapm_scheduler) {
struct snd_sof_pipeline *spipe;
- spipe = kzalloc(sizeof(*spipe), GFP_KERNEL);
+ spipe = kzalloc_obj(*spipe, GFP_KERNEL);
if (!spipe) {
ret = -ENOMEM;
goto free;
@@ -1739,7 +1739,7 @@ static int sof_dai_load(struct snd_soc_component *scomp, int index,
if (!pcm)
return 0;
- spcm = kzalloc(sizeof(*spcm), GFP_KERNEL);
+ spcm = kzalloc_obj(*spcm, GFP_KERNEL);
if (!spcm)
return -ENOMEM;
@@ -1906,7 +1906,7 @@ static int sof_link_load(struct snd_soc_component *scomp, int index, struct snd_
return -EINVAL;
}
- slink = kzalloc(sizeof(*slink), GFP_KERNEL);
+ slink = kzalloc_obj(*slink, GFP_KERNEL);
if (!slink)
return -ENOMEM;
@@ -1999,7 +1999,7 @@ static int sof_link_load(struct snd_soc_component *scomp, int index, struct snd_
}
/* allocate memory for tuples array */
- slink->tuples = kcalloc(num_tuples, sizeof(*slink->tuples), GFP_KERNEL);
+ slink->tuples = kzalloc_objs(*slink->tuples, num_tuples, GFP_KERNEL);
if (!slink->tuples) {
kfree(slink->hw_configs);
kfree(slink);
@@ -2094,7 +2094,7 @@ static int sof_route_load(struct snd_soc_component *scomp, int index,
int ret = 0;
/* allocate memory for sroute and connect */
- sroute = kzalloc(sizeof(*sroute), GFP_KERNEL);
+ sroute = kzalloc_obj(*sroute, GFP_KERNEL);
if (!sroute)
return -ENOMEM;
@@ -2398,11 +2398,11 @@ static int sof_dspless_widget_ready(struct snd_soc_component *scomp, int index,
struct snd_sof_widget *swidget;
struct snd_sof_dai *sdai;
- swidget = kzalloc(sizeof(*swidget), GFP_KERNEL);
+ swidget = kzalloc_obj(*swidget, GFP_KERNEL);
if (!swidget)
return -ENOMEM;
- sdai = kzalloc(sizeof(*sdai), GFP_KERNEL);
+ sdai = kzalloc_obj(*sdai, GFP_KERNEL);
if (!sdai) {
kfree(swidget);
return -ENOMEM;
diff --git a/sound/soc/sprd/sprd-pcm-compress.c b/sound/soc/sprd/sprd-pcm-compress.c
index 4b6ebfa5b033..0d544ff5a24f 100644
--- a/sound/soc/sprd/sprd-pcm-compress.c
+++ b/sound/soc/sprd/sprd-pcm-compress.c
@@ -160,7 +160,7 @@ static int sprd_platform_compr_dma_config(struct snd_soc_component *component,
return -ENODEV;
}
- sgt = sg = kcalloc(sg_num, sizeof(*sg), GFP_KERNEL);
+ sgt = sg = kzalloc_objs(*sg, sg_num, GFP_KERNEL);
if (!sg) {
ret = -ENOMEM;
goto sg_err;
diff --git a/sound/soc/xilinx/xlnx_formatter_pcm.c b/sound/soc/xilinx/xlnx_formatter_pcm.c
index 17ef05309469..7cfe09fdd2a0 100644
--- a/sound/soc/xilinx/xlnx_formatter_pcm.c
+++ b/sound/soc/xilinx/xlnx_formatter_pcm.c
@@ -341,7 +341,7 @@ static int xlnx_formatter_pcm_open(struct snd_soc_component *component,
!adata->s2mm_presence)
return -ENODEV;
- stream_data = kzalloc(sizeof(*stream_data), GFP_KERNEL);
+ stream_data = kzalloc_obj(*stream_data, GFP_KERNEL);
if (!stream_data)
return -ENOMEM;
diff --git a/sound/sound_core.c b/sound/sound_core.c
index d81fed1c1226..741e62cffe6e 100644
--- a/sound/sound_core.c
+++ b/sound/sound_core.c
@@ -238,7 +238,7 @@ static DEFINE_SPINLOCK(sound_loader_lock);
static int sound_insert_unit(struct sound_unit **list, const struct file_operations *fops, int index, int low, int top, const char *name, umode_t mode, struct device *dev)
{
- struct sound_unit *s = kmalloc(sizeof(*s), GFP_KERNEL);
+ struct sound_unit *s = kmalloc_obj(*s, GFP_KERNEL);
int r;
if (!s)
diff --git a/sound/synth/emux/emux.c b/sound/synth/emux/emux.c
index 01444fc960d0..f690e8f812d9 100644
--- a/sound/synth/emux/emux.c
+++ b/sound/synth/emux/emux.c
@@ -26,7 +26,7 @@ int snd_emux_new(struct snd_emux **remu)
struct snd_emux *emu;
*remu = NULL;
- emu = kzalloc(sizeof(*emu), GFP_KERNEL);
+ emu = kzalloc_obj(*emu, GFP_KERNEL);
if (emu == NULL)
return -ENOMEM;
@@ -86,8 +86,8 @@ int snd_emux_register(struct snd_emux *emu, struct snd_card *card, int index, ch
emu->card = card;
emu->name = kstrdup_const(name, GFP_KERNEL);
- emu->voices = kcalloc(emu->max_voices, sizeof(struct snd_emux_voice),
- GFP_KERNEL);
+ emu->voices = kzalloc_objs(struct snd_emux_voice, emu->max_voices,
+ GFP_KERNEL);
if (emu->name == NULL || emu->voices == NULL)
return -ENOMEM;
diff --git a/sound/synth/emux/emux_effect.c b/sound/synth/emux/emux_effect.c
index bfe383fa90ba..dacbdf8cd39a 100644
--- a/sound/synth/emux/emux_effect.c
+++ b/sound/synth/emux/emux_effect.c
@@ -272,8 +272,8 @@ void
snd_emux_create_effect(struct snd_emux_port *p)
{
int i;
- p->effect = kcalloc(p->chset.max_channels,
- sizeof(struct snd_emux_effect_table), GFP_KERNEL);
+ p->effect = kzalloc_objs(struct snd_emux_effect_table,
+ p->chset.max_channels, GFP_KERNEL);
if (p->effect) {
for (i = 0; i < p->chset.max_channels; i++)
p->chset.channels[i].private = p->effect + i;
diff --git a/sound/synth/emux/emux_seq.c b/sound/synth/emux/emux_seq.c
index 9d63ac006aa5..9a279d07364d 100644
--- a/sound/synth/emux/emux_seq.c
+++ b/sound/synth/emux/emux_seq.c
@@ -132,12 +132,12 @@ snd_emux_create_port(struct snd_emux *emu, char *name,
int i, type, cap;
/* Allocate structures for this channel */
- p = kzalloc(sizeof(*p), GFP_KERNEL);
+ p = kzalloc_obj(*p, GFP_KERNEL);
if (!p)
return NULL;
- p->chset.channels = kcalloc(max_channels, sizeof(*p->chset.channels),
- GFP_KERNEL);
+ p->chset.channels = kzalloc_objs(*p->chset.channels, max_channels,
+ GFP_KERNEL);
if (!p->chset.channels) {
kfree(p);
return NULL;
@@ -351,7 +351,7 @@ int snd_emux_init_virmidi(struct snd_emux *emu, struct snd_card *card)
if (emu->midi_ports <= 0)
return 0;
- emu->vmidi = kcalloc(emu->midi_ports, sizeof(*emu->vmidi), GFP_KERNEL);
+ emu->vmidi = kzalloc_objs(*emu->vmidi, emu->midi_ports, GFP_KERNEL);
if (!emu->vmidi)
return -ENOMEM;
diff --git a/sound/synth/emux/soundfont.c b/sound/synth/emux/soundfont.c
index 59f3b1b6df4a..01996637d257 100644
--- a/sound/synth/emux/soundfont.c
+++ b/sound/synth/emux/soundfont.c
@@ -230,7 +230,7 @@ newsf(struct snd_sf_list *sflist, int type, char *name)
}
/* not found -- create a new one */
- sf = kzalloc(sizeof(*sf), GFP_KERNEL);
+ sf = kzalloc_obj(*sf, GFP_KERNEL);
if (sf == NULL)
return NULL;
sf->id = sflist->fonts_size;
@@ -309,7 +309,7 @@ sf_zone_new(struct snd_sf_list *sflist, struct snd_soundfont *sf)
{
struct snd_sf_zone *zp;
- zp = kzalloc(sizeof(*zp), GFP_KERNEL);
+ zp = kzalloc_obj(*zp, GFP_KERNEL);
if (!zp)
return NULL;
zp->next = sf->zones;
@@ -342,7 +342,7 @@ sf_sample_new(struct snd_sf_list *sflist, struct snd_soundfont *sf)
{
struct snd_sf_sample *sp;
- sp = kzalloc(sizeof(*sp), GFP_KERNEL);
+ sp = kzalloc_obj(*sp, GFP_KERNEL);
if (!sp)
return NULL;
@@ -1391,7 +1391,7 @@ snd_sf_new(struct snd_sf_callback *callback, struct snd_util_memhdr *hdr)
{
struct snd_sf_list *sflist;
- sflist = kzalloc(sizeof(*sflist), GFP_KERNEL);
+ sflist = kzalloc_obj(*sflist, GFP_KERNEL);
if (!sflist)
return NULL;
diff --git a/sound/synth/util_mem.c b/sound/synth/util_mem.c
index 2fd577c2a8eb..36fa4fc9632c 100644
--- a/sound/synth/util_mem.c
+++ b/sound/synth/util_mem.c
@@ -26,7 +26,7 @@ snd_util_memhdr_new(int memsize)
{
struct snd_util_memhdr *hdr;
- hdr = kzalloc(sizeof(*hdr), GFP_KERNEL);
+ hdr = kzalloc_obj(*hdr, GFP_KERNEL);
if (hdr == NULL)
return NULL;
hdr->size = memsize;
diff --git a/sound/usb/6fire/comm.c b/sound/usb/6fire/comm.c
index 49629d4bb327..b7378a514e21 100644
--- a/sound/usb/6fire/comm.c
+++ b/sound/usb/6fire/comm.c
@@ -141,8 +141,7 @@ static int usb6fire_comm_write16(struct comm_runtime *rt, u8 request,
int usb6fire_comm_init(struct sfire_chip *chip)
{
- struct comm_runtime *rt = kzalloc(sizeof(struct comm_runtime),
- GFP_KERNEL);
+ struct comm_runtime *rt = kzalloc_obj(struct comm_runtime, GFP_KERNEL);
struct urb *urb;
int ret;
diff --git a/sound/usb/6fire/control.c b/sound/usb/6fire/control.c
index 9bd8dcbb68e4..0e8be4efbf44 100644
--- a/sound/usb/6fire/control.c
+++ b/sound/usb/6fire/control.c
@@ -551,8 +551,8 @@ int usb6fire_control_init(struct sfire_chip *chip)
{
int i;
int ret;
- struct control_runtime *rt = kzalloc(sizeof(struct control_runtime),
- GFP_KERNEL);
+ struct control_runtime *rt = kzalloc_obj(struct control_runtime,
+ GFP_KERNEL);
struct comm_runtime *comm_rt = chip->comm;
if (!rt)
diff --git a/sound/usb/6fire/firmware.c b/sound/usb/6fire/firmware.c
index cc8caec946cc..6707fb8a2d1e 100644
--- a/sound/usb/6fire/firmware.c
+++ b/sound/usb/6fire/firmware.c
@@ -195,8 +195,7 @@ static int usb6fire_fw_ezusb_upload(
u8 data;
struct usb_device *device = interface_to_usbdev(intf);
const struct firmware *fw = NULL;
- struct ihex_record *rec = kmalloc(sizeof(struct ihex_record),
- GFP_KERNEL);
+ struct ihex_record *rec = kmalloc_obj(struct ihex_record, GFP_KERNEL);
if (!rec)
return -ENOMEM;
diff --git a/sound/usb/6fire/midi.c b/sound/usb/6fire/midi.c
index 4d1eeb32c5fe..40c935fb7592 100644
--- a/sound/usb/6fire/midi.c
+++ b/sound/usb/6fire/midi.c
@@ -140,8 +140,7 @@ static const struct snd_rawmidi_ops in_ops = {
int usb6fire_midi_init(struct sfire_chip *chip)
{
int ret;
- struct midi_runtime *rt = kzalloc(sizeof(struct midi_runtime),
- GFP_KERNEL);
+ struct midi_runtime *rt = kzalloc_obj(struct midi_runtime, GFP_KERNEL);
struct comm_runtime *comm_rt = chip->comm;
if (!rt)
diff --git a/sound/usb/6fire/pcm.c b/sound/usb/6fire/pcm.c
index 08515da5dcc8..abd1338eb972 100644
--- a/sound/usb/6fire/pcm.c
+++ b/sound/usb/6fire/pcm.c
@@ -587,7 +587,7 @@ int usb6fire_pcm_init(struct sfire_chip *chip)
int ret;
struct snd_pcm *pcm;
struct pcm_runtime *rt =
- kzalloc(sizeof(struct pcm_runtime), GFP_KERNEL);
+ kzalloc_obj(struct pcm_runtime, GFP_KERNEL);
if (!rt)
return -ENOMEM;
diff --git a/sound/usb/caiaq/audio.c b/sound/usb/caiaq/audio.c
index 95d425dd9d70..06837b9f8bf8 100644
--- a/sound/usb/caiaq/audio.c
+++ b/sound/usb/caiaq/audio.c
@@ -681,7 +681,7 @@ static struct urb **alloc_urbs(struct snd_usb_caiaqdev *cdev, int dir, int *ret)
usb_sndisocpipe(usb_dev, ENDPOINT_PLAYBACK) :
usb_rcvisocpipe(usb_dev, ENDPOINT_CAPTURE);
- urbs = kmalloc_array(N_URBS, sizeof(*urbs), GFP_KERNEL);
+ urbs = kmalloc_objs(*urbs, N_URBS, GFP_KERNEL);
if (!urbs) {
*ret = -ENOMEM;
return NULL;
@@ -813,8 +813,7 @@ int snd_usb_caiaq_audio_init(struct snd_usb_caiaqdev *cdev)
NULL, 0, 0);
cdev->data_cb_info =
- kmalloc_array(N_URBS, sizeof(struct snd_usb_caiaq_cb_info),
- GFP_KERNEL);
+ kmalloc_objs(struct snd_usb_caiaq_cb_info, N_URBS, GFP_KERNEL);
if (!cdev->data_cb_info)
return -ENOMEM;
diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c
index a855b2cc60c7..8a2bb82c1a18 100644
--- a/sound/usb/endpoint.c
+++ b/sound/usb/endpoint.c
@@ -621,7 +621,7 @@ iface_ref_find(struct snd_usb_audio *chip, int iface)
if (ip->iface == iface)
return ip;
- ip = kzalloc(sizeof(*ip), GFP_KERNEL);
+ ip = kzalloc_obj(*ip, GFP_KERNEL);
if (!ip)
return NULL;
ip->iface = iface;
@@ -639,7 +639,7 @@ clock_ref_find(struct snd_usb_audio *chip, int clock)
if (ref->clock == clock)
return ref;
- ref = kzalloc(sizeof(*ref), GFP_KERNEL);
+ ref = kzalloc_obj(*ref, GFP_KERNEL);
if (!ref)
return NULL;
ref->clock = clock;
@@ -698,7 +698,7 @@ int snd_usb_add_endpoint(struct snd_usb_audio *chip, int ep_num, int type)
usb_audio_dbg(chip, "Creating new %s endpoint #%x\n",
ep_type_name(type),
ep_num);
- ep = kzalloc(sizeof(*ep), GFP_KERNEL);
+ ep = kzalloc_obj(*ep, GFP_KERNEL);
if (!ep)
return -ENOMEM;
diff --git a/sound/usb/fcp.c b/sound/usb/fcp.c
index 1f4595d1e217..2ca41460aa5b 100644
--- a/sound/usb/fcp.c
+++ b/sound/usb/fcp.c
@@ -329,7 +329,7 @@ static int fcp_add_new_ctl(struct usb_mixer_interface *mixer,
struct usb_mixer_elem_info *elem;
int err;
- elem = kzalloc(sizeof(*elem), GFP_KERNEL);
+ elem = kzalloc_obj(*elem, GFP_KERNEL);
if (!elem)
return -ENOMEM;
@@ -654,7 +654,7 @@ static int fcp_ioctl_set_meter_map(struct usb_mixer_interface *mixer,
if (!private->meter_ctl) {
/* Allocate buffer for the map */
s16 *new_map __free(kfree) =
- kmalloc_array(map.map_size, sizeof(s16), GFP_KERNEL);
+ kmalloc_objs(s16, map.map_size, GFP_KERNEL);
if (!new_map)
return -ENOMEM;
@@ -1045,7 +1045,7 @@ static int fcp_init(struct usb_mixer_interface *mixer,
static int fcp_init_private(struct usb_mixer_interface *mixer)
{
struct fcp_data *private =
- kzalloc(sizeof(struct fcp_data), GFP_KERNEL);
+ kzalloc_obj(struct fcp_data, GFP_KERNEL);
if (!private)
return -ENOMEM;
diff --git a/sound/usb/hiface/pcm.c b/sound/usb/hiface/pcm.c
index 27cd427fbaa5..2603a88a9d27 100644
--- a/sound/usb/hiface/pcm.c
+++ b/sound/usb/hiface/pcm.c
@@ -547,7 +547,7 @@ int hiface_pcm_init(struct hiface_chip *chip, u8 extra_freq)
struct snd_pcm *pcm;
struct pcm_runtime *rt;
- rt = kzalloc(sizeof(*rt), GFP_KERNEL);
+ rt = kzalloc_obj(*rt, GFP_KERNEL);
if (!rt)
return -ENOMEM;
diff --git a/sound/usb/line6/capture.c b/sound/usb/line6/capture.c
index 9ef4faa006a0..bad575fa4ed2 100644
--- a/sound/usb/line6/capture.c
+++ b/sound/usb/line6/capture.c
@@ -255,8 +255,8 @@ int line6_create_audio_in_urbs(struct snd_line6_pcm *line6pcm)
struct usb_line6 *line6 = line6pcm->line6;
int i;
- line6pcm->in.urbs = kcalloc(line6->iso_buffers, sizeof(struct urb *),
- GFP_KERNEL);
+ line6pcm->in.urbs = kzalloc_objs(struct urb *, line6->iso_buffers,
+ GFP_KERNEL);
if (line6pcm->in.urbs == NULL)
return -ENOMEM;
diff --git a/sound/usb/line6/driver.c b/sound/usb/line6/driver.c
index e97368c31417..191682894f04 100644
--- a/sound/usb/line6/driver.c
+++ b/sound/usb/line6/driver.c
@@ -202,7 +202,7 @@ int line6_send_raw_message_async(struct usb_line6 *line6, const char *buffer,
struct urb *urb;
/* create message: */
- msg = kzalloc(sizeof(struct message), GFP_ATOMIC);
+ msg = kzalloc_obj(struct message, GFP_ATOMIC);
if (msg == NULL)
return -ENOMEM;
diff --git a/sound/usb/line6/midi.c b/sound/usb/line6/midi.c
index 4731293728e6..0e5cb8a86922 100644
--- a/sound/usb/line6/midi.c
+++ b/sound/usb/line6/midi.c
@@ -264,7 +264,7 @@ int line6_init_midi(struct usb_line6 *line6)
if (err < 0)
return err;
- line6midi = kzalloc(sizeof(struct snd_line6_midi), GFP_KERNEL);
+ line6midi = kzalloc_obj(struct snd_line6_midi, GFP_KERNEL);
if (!line6midi)
return -ENOMEM;
diff --git a/sound/usb/line6/pcm.c b/sound/usb/line6/pcm.c
index f61d9f6cf754..ea1cea5d1105 100644
--- a/sound/usb/line6/pcm.c
+++ b/sound/usb/line6/pcm.c
@@ -528,7 +528,7 @@ int line6_init_pcm(struct usb_line6 *line6,
if (err < 0)
return err;
- line6pcm = kzalloc(sizeof(*line6pcm), GFP_KERNEL);
+ line6pcm = kzalloc_obj(*line6pcm, GFP_KERNEL);
if (!line6pcm)
return -ENOMEM;
diff --git a/sound/usb/line6/playback.c b/sound/usb/line6/playback.c
index 9f26f66e6792..5d3666ebaf83 100644
--- a/sound/usb/line6/playback.c
+++ b/sound/usb/line6/playback.c
@@ -404,8 +404,8 @@ int line6_create_audio_out_urbs(struct snd_line6_pcm *line6pcm)
struct usb_line6 *line6 = line6pcm->line6;
int i;
- line6pcm->out.urbs = kcalloc(line6->iso_buffers, sizeof(struct urb *),
- GFP_KERNEL);
+ line6pcm->out.urbs = kzalloc_objs(struct urb *, line6->iso_buffers,
+ GFP_KERNEL);
if (line6pcm->out.urbs == NULL)
return -ENOMEM;
diff --git a/sound/usb/line6/toneport.c b/sound/usb/line6/toneport.c
index 68cda7bf330c..abc1a750a921 100644
--- a/sound/usb/line6/toneport.c
+++ b/sound/usb/line6/toneport.c
@@ -363,7 +363,7 @@ static int toneport_setup(struct usb_line6_toneport *toneport)
struct usb_line6 *line6 = &toneport->line6;
struct usb_device *usbdev = line6->usbdev;
- ticks = kmalloc(sizeof(*ticks), GFP_KERNEL);
+ ticks = kmalloc_obj(*ticks, GFP_KERNEL);
if (!ticks)
return -ENOMEM;
diff --git a/sound/usb/media.c b/sound/usb/media.c
index 0064f8d12422..0aab1eb5c4e9 100644
--- a/sound/usb/media.c
+++ b/sound/usb/media.c
@@ -49,7 +49,7 @@ int snd_media_stream_init(struct snd_usb_substream *subs, struct snd_pcm *pcm,
return 0;
/* allocate media_ctl */
- mctl = kzalloc(sizeof(*mctl), GFP_KERNEL);
+ mctl = kzalloc_obj(*mctl, GFP_KERNEL);
if (!mctl)
return -ENOMEM;
@@ -188,7 +188,7 @@ static int snd_media_mixer_init(struct snd_usb_audio *chip)
continue;
/* allocate media_mixer_ctl */
- mctl = kzalloc(sizeof(*mctl), GFP_KERNEL);
+ mctl = kzalloc_obj(*mctl, GFP_KERNEL);
if (!mctl)
return -ENOMEM;
diff --git a/sound/usb/midi.c b/sound/usb/midi.c
index dd8249e75970..c72434ac581d 100644
--- a/sound/usb/midi.c
+++ b/sound/usb/midi.c
@@ -1328,7 +1328,7 @@ static int snd_usbmidi_in_endpoint_create(struct snd_usb_midi *umidi,
int err;
rep->in = NULL;
- ep = kzalloc(sizeof(*ep), GFP_KERNEL);
+ ep = kzalloc_obj(*ep, GFP_KERNEL);
if (!ep)
return -ENOMEM;
ep->umidi = umidi;
@@ -1414,7 +1414,7 @@ static int snd_usbmidi_out_endpoint_create(struct snd_usb_midi *umidi,
int err;
rep->out = NULL;
- ep = kzalloc(sizeof(*ep), GFP_KERNEL);
+ ep = kzalloc_obj(*ep, GFP_KERNEL);
if (!ep)
return -ENOMEM;
ep->umidi = umidi;
@@ -2506,7 +2506,7 @@ int __snd_usbmidi_create(struct snd_card *card,
int out_ports, in_ports;
int i, err;
- umidi = kzalloc(sizeof(*umidi), GFP_KERNEL);
+ umidi = kzalloc_obj(*umidi, GFP_KERNEL);
if (!umidi)
return -ENOMEM;
umidi->dev = interface_to_usbdev(iface);
diff --git a/sound/usb/midi2.c b/sound/usb/midi2.c
index e6793f3bdfc3..cf05e4cb97b1 100644
--- a/sound/usb/midi2.c
+++ b/sound/usb/midi2.c
@@ -432,7 +432,7 @@ static int create_midi2_endpoint(struct snd_usb_midi2_interface *umidi,
hostep->desc.bEndpointAddress,
ms_ep->bNumGrpTrmBlock);
- ep = kzalloc(sizeof(*ep), GFP_KERNEL);
+ ep = kzalloc_obj(*ep, GFP_KERNEL);
if (!ep)
return -ENOMEM;
@@ -693,7 +693,7 @@ static int create_midi2_ump(struct snd_usb_midi2_interface *umidi,
char idstr[16];
int err;
- rmidi = kzalloc(sizeof(*rmidi), GFP_KERNEL);
+ rmidi = kzalloc_obj(*rmidi, GFP_KERNEL);
if (!rmidi)
return -ENOMEM;
INIT_LIST_HEAD(&rmidi->list);
@@ -1101,7 +1101,7 @@ int snd_usb_midi_v2_create(struct snd_usb_audio *chip,
hostif->desc.bInterfaceNumber,
hostif->desc.bAlternateSetting);
- umidi = kzalloc(sizeof(*umidi), GFP_KERNEL);
+ umidi = kzalloc_obj(*umidi, GFP_KERNEL);
if (!umidi)
return -ENOMEM;
umidi->chip = chip;
diff --git a/sound/usb/misc/ua101.c b/sound/usb/misc/ua101.c
index 76b6eb55dcc2..62be8a00a826 100644
--- a/sound/usb/misc/ua101.c
+++ b/sound/usb/misc/ua101.c
@@ -1062,7 +1062,7 @@ static int alloc_stream_urbs(struct ua101 *ua, struct ua101_stream *stream,
while (size >= max_packet_size) {
if (u >= stream->queue_length)
goto bufsize_error;
- urb = kmalloc(sizeof(*urb), GFP_KERNEL);
+ urb = kmalloc_obj(*urb, GFP_KERNEL);
if (!urb)
return -ENOMEM;
usb_init_urb(&urb->urb);
diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
index bfe15b1cb66c..1b66f9581b4a 100644
--- a/sound/usb/mixer.c
+++ b/sound/usb/mixer.c
@@ -1684,7 +1684,7 @@ static void __build_feature_ctl(struct usb_mixer_interface *mixer,
if (check_ignored_ctl(map))
return;
- cval = kzalloc(sizeof(*cval), GFP_KERNEL);
+ cval = kzalloc_obj(*cval, GFP_KERNEL);
if (!cval)
return;
snd_usb_mixer_elem_init_std(&cval->head, mixer, unitid);
@@ -1894,7 +1894,7 @@ static void build_connector_control(struct usb_mixer_interface *mixer,
if (check_ignored_ctl(map))
return;
- cval = kzalloc(sizeof(*cval), GFP_KERNEL);
+ cval = kzalloc_obj(*cval, GFP_KERNEL);
if (!cval)
return;
snd_usb_mixer_elem_init_std(&cval->head, mixer, term->id);
@@ -1956,7 +1956,7 @@ static int parse_clock_source_unit(struct mixer_build *state, int unitid,
UAC2_CS_CONTROL_CLOCK_VALID))
return 0;
- cval = kzalloc(sizeof(*cval), GFP_KERNEL);
+ cval = kzalloc_obj(*cval, GFP_KERNEL);
if (!cval)
return -ENOMEM;
@@ -2177,7 +2177,7 @@ static void build_mixer_unit_ctl(struct mixer_build *state,
if (check_ignored_ctl(map))
return;
- cval = kzalloc(sizeof(*cval), GFP_KERNEL);
+ cval = kzalloc_obj(*cval, GFP_KERNEL);
if (!cval)
return;
@@ -2525,7 +2525,7 @@ static int build_audio_procunit(struct mixer_build *state, int unitid,
map = find_map(state->map, unitid, valinfo->control);
if (check_ignored_ctl(map))
continue;
- cval = kzalloc(sizeof(*cval), GFP_KERNEL);
+ cval = kzalloc_obj(*cval, GFP_KERNEL);
if (!cval)
return -ENOMEM;
snd_usb_mixer_elem_init_std(&cval->head, state->mixer, unitid);
@@ -2771,7 +2771,7 @@ static int parse_audio_selector_unit(struct mixer_build *state, int unitid,
if (check_ignored_ctl(map))
return 0;
- cval = kzalloc(sizeof(*cval), GFP_KERNEL);
+ cval = kzalloc_obj(*cval, GFP_KERNEL);
if (!cval)
return -ENOMEM;
snd_usb_mixer_elem_init_std(&cval->head, state->mixer, unitid);
@@ -3598,13 +3598,13 @@ int snd_usb_create_mixer(struct snd_usb_audio *chip, int ctrlif)
strscpy(chip->card->mixername, "USB Mixer");
- mixer = kzalloc(sizeof(*mixer), GFP_KERNEL);
+ mixer = kzalloc_obj(*mixer, GFP_KERNEL);
if (!mixer)
return -ENOMEM;
mixer->chip = chip;
mixer->ignore_ctl_error = !!(chip->quirk_flags & QUIRK_FLAG_IGNORE_CTL_ERROR);
- mixer->id_elems = kcalloc(MAX_ID_ELEMS, sizeof(*mixer->id_elems),
- GFP_KERNEL);
+ mixer->id_elems = kzalloc_objs(*mixer->id_elems, MAX_ID_ELEMS,
+ GFP_KERNEL);
if (!mixer->id_elems) {
kfree(mixer);
return -ENOMEM;
diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c
index ec65e8a71919..dc538450f3b9 100644
--- a/sound/usb/mixer_quirks.c
+++ b/sound/usb/mixer_quirks.c
@@ -67,7 +67,7 @@ static int snd_create_std_mono_ctl_offset(struct usb_mixer_interface *mixer,
struct usb_mixer_elem_info *cval;
struct snd_kcontrol *kctl;
- cval = kzalloc(sizeof(*cval), GFP_KERNEL);
+ cval = kzalloc_obj(*cval, GFP_KERNEL);
if (!cval)
return -ENOMEM;
@@ -151,7 +151,7 @@ static int add_single_ctl_with_resume(struct usb_mixer_interface *mixer,
struct usb_mixer_elem_list *list;
struct snd_kcontrol *kctl;
- list = kzalloc(sizeof(*list), GFP_KERNEL);
+ list = kzalloc_obj(*list, GFP_KERNEL);
if (!list)
return -ENOMEM;
if (listp)
@@ -274,7 +274,8 @@ static int snd_usb_soundblaster_remote_init(struct usb_mixer_interface *mixer)
mixer->rc_urb = usb_alloc_urb(0, GFP_KERNEL);
if (!mixer->rc_urb)
return -ENOMEM;
- mixer->rc_setup_packet = kmalloc(sizeof(*mixer->rc_setup_packet), GFP_KERNEL);
+ mixer->rc_setup_packet = kmalloc_obj(*mixer->rc_setup_packet,
+ GFP_KERNEL);
if (!mixer->rc_setup_packet) {
usb_free_urb(mixer->rc_urb);
mixer->rc_urb = NULL;
@@ -616,7 +617,7 @@ static int snd_dualsense_ih_connect(struct input_handler *handler,
struct input_handle *handle;
int err;
- handle = kzalloc(sizeof(*handle), GFP_KERNEL);
+ handle = kzalloc_obj(*handle, GFP_KERNEL);
if (!handle)
return -ENOMEM;
@@ -713,7 +714,7 @@ static int snd_dualsense_jack_create(struct usb_mixer_interface *mixer,
struct snd_kcontrol *kctl;
int err;
- mei = kzalloc(sizeof(*mei), GFP_KERNEL);
+ mei = kzalloc_obj(*mei, GFP_KERNEL);
if (!mei)
return -ENOMEM;
@@ -2278,7 +2279,7 @@ static int realtek_add_jack(struct usb_mixer_interface *mixer,
struct usb_mixer_elem_info *cval;
struct snd_kcontrol *kctl;
- cval = kzalloc(sizeof(*cval), GFP_KERNEL);
+ cval = kzalloc_obj(*cval, GFP_KERNEL);
if (!cval)
return -ENOMEM;
snd_usb_mixer_elem_init_std(&cval->head, mixer, unitid);
diff --git a/sound/usb/mixer_s1810c.c b/sound/usb/mixer_s1810c.c
index b4ce89afb25b..f931643db1c5 100644
--- a/sound/usb/mixer_s1810c.c
+++ b/sound/usb/mixer_s1810c.c
@@ -534,7 +534,7 @@ snd_s1810c_switch_init(struct usb_mixer_interface *mixer,
struct snd_kcontrol *kctl;
struct usb_mixer_elem_info *elem;
- elem = kzalloc(sizeof(struct usb_mixer_elem_info), GFP_KERNEL);
+ elem = kzalloc_obj(struct usb_mixer_elem_info, GFP_KERNEL);
if (!elem)
return -ENOMEM;
@@ -645,7 +645,7 @@ int snd_sc1810_init_mixer(struct usb_mixer_interface *mixer)
if (ret < 0)
return ret;
- private = kzalloc(sizeof(struct s1810_mixer_state), GFP_KERNEL);
+ private = kzalloc_obj(struct s1810_mixer_state, GFP_KERNEL);
if (!private)
return -ENOMEM;
diff --git a/sound/usb/mixer_scarlett.c b/sound/usb/mixer_scarlett.c
index fa11f25288b7..8582153cb4a7 100644
--- a/sound/usb/mixer_scarlett.c
+++ b/sound/usb/mixer_scarlett.c
@@ -819,7 +819,7 @@ static int add_new_ctl(struct usb_mixer_interface *mixer,
struct usb_mixer_elem_info *elem;
int err;
- elem = kzalloc(sizeof(*elem), GFP_KERNEL);
+ elem = kzalloc_obj(*elem, GFP_KERNEL);
if (!elem)
return -ENOMEM;
diff --git a/sound/usb/mixer_scarlett2.c b/sound/usb/mixer_scarlett2.c
index 88b7e42d159e..41a496adcc09 100644
--- a/sound/usb/mixer_scarlett2.c
+++ b/sound/usb/mixer_scarlett2.c
@@ -3197,7 +3197,7 @@ static int scarlett2_add_new_ctl(struct usb_mixer_interface *mixer,
struct usb_mixer_elem_info *elem;
int err;
- elem = kzalloc(sizeof(*elem), GFP_KERNEL);
+ elem = kzalloc_obj(*elem, GFP_KERNEL);
if (!elem)
return -ENOMEM;
@@ -8272,7 +8272,7 @@ static int scarlett2_init_private(struct usb_mixer_interface *mixer,
const struct scarlett2_device_entry *entry)
{
struct scarlett2_data *private =
- kzalloc(sizeof(struct scarlett2_data), GFP_KERNEL);
+ kzalloc_obj(struct scarlett2_data, GFP_KERNEL);
if (!private)
return -ENOMEM;
diff --git a/sound/usb/mixer_us16x08.c b/sound/usb/mixer_us16x08.c
index f9df40730eff..c7b63c29cbf6 100644
--- a/sound/usb/mixer_us16x08.c
+++ b/sound/usb/mixer_us16x08.c
@@ -969,7 +969,7 @@ static struct snd_us16x08_comp_store *snd_us16x08_create_comp_store(void)
int i;
struct snd_us16x08_comp_store *tmp;
- tmp = kmalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kmalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
return NULL;
@@ -991,7 +991,7 @@ static struct snd_us16x08_eq_store *snd_us16x08_create_eq_store(void)
int i, b_idx;
struct snd_us16x08_eq_store *tmp;
- tmp = kmalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kmalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
return NULL;
@@ -1027,7 +1027,7 @@ static struct snd_us16x08_meter_store *snd_us16x08_create_meter_store(void)
{
struct snd_us16x08_meter_store *tmp;
- tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
+ tmp = kzalloc_obj(*tmp, GFP_KERNEL);
if (!tmp)
return NULL;
tmp->comp_index = 1;
@@ -1059,7 +1059,7 @@ static int add_new_ctl(struct usb_mixer_interface *mixer,
usb_audio_dbg(mixer->chip, "us16x08 add mixer %s\n", name);
- elem = kzalloc(sizeof(*elem), GFP_KERNEL);
+ elem = kzalloc_obj(*elem, GFP_KERNEL);
if (!elem)
return -ENOMEM;
diff --git a/sound/usb/power.c b/sound/usb/power.c
index 66bd4daa68fd..47863b688b4d 100644
--- a/sound/usb/power.c
+++ b/sound/usb/power.c
@@ -20,7 +20,7 @@ snd_usb_find_power_domain(struct usb_host_interface *ctrl_iface,
struct snd_usb_power_domain *pd;
void *p;
- pd = kzalloc(sizeof(*pd), GFP_KERNEL);
+ pd = kzalloc_obj(*pd, GFP_KERNEL);
if (!pd)
return NULL;
diff --git a/sound/usb/qcom/qc_audio_offload.c b/sound/usb/qcom/qc_audio_offload.c
index cfb30a195364..b709b6cb3051 100644
--- a/sound/usb/qcom/qc_audio_offload.c
+++ b/sound/usb/qcom/qc_audio_offload.c
@@ -438,7 +438,7 @@ static unsigned long uaudio_get_iova(unsigned long *curr_iova,
}
}
- info = kzalloc(sizeof(*info), GFP_KERNEL);
+ info = kzalloc_obj(*info, GFP_KERNEL);
if (!info) {
iova = 0;
goto done;
@@ -1432,9 +1432,9 @@ static int prepare_qmi_response(struct snd_usb_substream *subs,
init_waitqueue_head(&uadev[card_num].disconnect_wq);
uadev[card_num].num_intf =
subs->dev->config->desc.bNumInterfaces;
- uadev[card_num].info = kcalloc(uadev[card_num].num_intf,
- sizeof(struct intf_info),
- GFP_KERNEL);
+ uadev[card_num].info = kzalloc_objs(struct intf_info,
+ uadev[card_num].num_intf,
+ GFP_KERNEL);
if (!uadev[card_num].info) {
ret = -ENOMEM;
goto unmap_er;
@@ -1687,7 +1687,7 @@ static struct qmi_msg_handler uaudio_stream_req_handlers = {
*/
static int qc_usb_audio_offload_init_qmi_dev(void)
{
- uaudio_qdev = kzalloc(sizeof(*uaudio_qdev), GFP_KERNEL);
+ uaudio_qdev = kzalloc_obj(*uaudio_qdev, GFP_KERNEL);
if (!uaudio_qdev)
return -ENOMEM;
@@ -1759,7 +1759,7 @@ static void qc_usb_audio_offload_probe(struct snd_usb_audio *chip)
guard(mutex)(&qdev_mutex);
guard(mutex)(&chip->mutex);
if (!uadev[chip->card->number].chip) {
- sdev = kzalloc(sizeof(*sdev), GFP_KERNEL);
+ sdev = kzalloc_obj(*sdev, GFP_KERNEL);
if (!sdev)
return;
@@ -1914,11 +1914,11 @@ static int qc_usb_audio_probe(struct auxiliary_device *auxdev,
struct uaudio_qmi_svc *svc;
int ret;
- svc = kzalloc(sizeof(*svc), GFP_KERNEL);
+ svc = kzalloc_obj(*svc, GFP_KERNEL);
if (!svc)
return -ENOMEM;
- svc->uaudio_svc_hdl = kzalloc(sizeof(*svc->uaudio_svc_hdl), GFP_KERNEL);
+ svc->uaudio_svc_hdl = kzalloc_obj(*svc->uaudio_svc_hdl, GFP_KERNEL);
if (!svc->uaudio_svc_hdl) {
ret = -ENOMEM;
goto free_svc;
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 17e49617218b..975b57adf2f4 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -566,7 +566,7 @@ static int snd_usb_extigy_boot_quirk(struct usb_device *dev, struct usb_interfac
if (err < 0)
dev_dbg(&dev->dev, "error sending boot message: %d\n", err);
struct usb_device_descriptor *new_device_descriptor __free(kfree) =
- kmalloc(sizeof(*new_device_descriptor), GFP_KERNEL);
+ kmalloc_obj(*new_device_descriptor, GFP_KERNEL);
if (!new_device_descriptor)
return -ENOMEM;
err = usb_get_descriptor(dev, USB_DT_DEVICE, 0,
@@ -944,7 +944,7 @@ static int snd_usb_mbox2_boot_quirk(struct usb_device *dev)
dev_dbg(&dev->dev, "device initialised!\n");
struct usb_device_descriptor *new_device_descriptor __free(kfree) =
- kmalloc(sizeof(*new_device_descriptor), GFP_KERNEL);
+ kmalloc_obj(*new_device_descriptor, GFP_KERNEL);
if (!new_device_descriptor)
return -ENOMEM;
@@ -1279,7 +1279,7 @@ static int snd_usb_mbox3_boot_quirk(struct usb_device *dev)
dev_dbg(&dev->dev, "MBOX3: device initialised!\n");
struct usb_device_descriptor *new_device_descriptor __free(kfree) =
- kmalloc(sizeof(*new_device_descriptor), GFP_KERNEL);
+ kmalloc_obj(*new_device_descriptor, GFP_KERNEL);
if (!new_device_descriptor)
return -ENOMEM;
diff --git a/sound/usb/stream.c b/sound/usb/stream.c
index ec7d756d78d1..adf1827807d4 100644
--- a/sound/usb/stream.c
+++ b/sound/usb/stream.c
@@ -291,7 +291,7 @@ static struct snd_pcm_chmap_elem *convert_chmap(int channels, unsigned int bits,
if (channels > ARRAY_SIZE(chmap->map))
return NULL;
- chmap = kzalloc(sizeof(*chmap), GFP_KERNEL);
+ chmap = kzalloc_obj(*chmap, GFP_KERNEL);
if (!chmap)
return NULL;
@@ -335,7 +335,7 @@ snd_pcm_chmap_elem *convert_chmap_v3(struct uac3_cluster_header_descriptor
if (channels > ARRAY_SIZE(chmap->map))
return NULL;
- chmap = kzalloc(sizeof(*chmap), GFP_KERNEL);
+ chmap = kzalloc_obj(*chmap, GFP_KERNEL);
if (!chmap)
return NULL;
@@ -526,7 +526,7 @@ static int __snd_usb_add_audio_stream(struct snd_usb_audio *chip,
}
/* create a new pcm */
- as = kzalloc(sizeof(*as), GFP_KERNEL);
+ as = kzalloc_obj(*as, GFP_KERNEL);
if (!as)
return -ENOMEM;
as->pcm_index = chip->pcm_devs;
@@ -693,7 +693,7 @@ audio_format_alloc_init(struct snd_usb_audio *chip,
struct usb_host_endpoint *ep = &alts->endpoint[0];
struct audioformat *fp;
- fp = kzalloc(sizeof(*fp), GFP_KERNEL);
+ fp = kzalloc_obj(*fp, GFP_KERNEL);
if (!fp)
return NULL;
@@ -927,7 +927,7 @@ snd_usb_get_audioformat_uac3(struct snd_usb_audio *chip,
break;
}
- chmap = kzalloc(sizeof(*chmap), GFP_KERNEL);
+ chmap = kzalloc_obj(*chmap, GFP_KERNEL);
if (!chmap)
return ERR_PTR(-ENOMEM);
@@ -1078,7 +1078,7 @@ snd_usb_get_audioformat_uac3(struct snd_usb_audio *chip,
fp->rate_max = UAC3_BADD_SAMPLING_RATE;
fp->rates = SNDRV_PCM_RATE_CONTINUOUS;
- pd = kzalloc(sizeof(*pd), GFP_KERNEL);
+ pd = kzalloc_obj(*pd, GFP_KERNEL);
if (!pd) {
audioformat_free(fp);
return NULL;
diff --git a/sound/usb/usx2y/usbusx2yaudio.c b/sound/usb/usx2y/usbusx2yaudio.c
index c7c7ec9c228b..c8f2f07d7f8d 100644
--- a/sound/usb/usx2y/usbusx2yaudio.c
+++ b/sound/usb/usx2y/usbusx2yaudio.c
@@ -657,15 +657,13 @@ static int usx2y_rate_set(struct usx2ydev *usx2y, int rate)
struct urb *urb;
if (usx2y->rate != rate) {
- us = kzalloc(struct_size(us, urb, NOOF_SETRATE_URBS),
- GFP_KERNEL);
+ us = kzalloc_flex(*us, urb, NOOF_SETRATE_URBS, GFP_KERNEL);
if (!us) {
err = -ENOMEM;
goto cleanup;
}
us->len = NOOF_SETRATE_URBS;
- usbdata = kmalloc_array(NOOF_SETRATE_URBS, sizeof(int),
- GFP_KERNEL);
+ usbdata = kmalloc_objs(int, NOOF_SETRATE_URBS, GFP_KERNEL);
if (!usbdata) {
err = -ENOMEM;
goto cleanup;
@@ -944,7 +942,8 @@ static int usx2y_audio_stream_new(struct snd_card *card, int playback_endpoint,
for (i = playback_endpoint ? SNDRV_PCM_STREAM_PLAYBACK : SNDRV_PCM_STREAM_CAPTURE;
i <= SNDRV_PCM_STREAM_CAPTURE; ++i) {
- usx2y_substream[i] = kzalloc(sizeof(struct snd_usx2y_substream), GFP_KERNEL);
+ usx2y_substream[i] = kzalloc_obj(struct snd_usx2y_substream,
+ GFP_KERNEL);
if (!usx2y_substream[i])
return -ENOMEM;
diff --git a/sound/virtio/virtio_card.c b/sound/virtio/virtio_card.c
index 52c5757585c6..65abd8510ff4 100644
--- a/sound/virtio/virtio_card.c
+++ b/sound/virtio/virtio_card.c
@@ -137,8 +137,7 @@ static int virtsnd_find_vqs(struct virtio_snd *snd)
n = virtqueue_get_vring_size(vqs[VIRTIO_SND_VQ_EVENT]);
- snd->event_msgs = kmalloc_array(n, sizeof(*snd->event_msgs),
- GFP_KERNEL);
+ snd->event_msgs = kmalloc_objs(*snd->event_msgs, n, GFP_KERNEL);
if (!snd->event_msgs)
return -ENOMEM;
diff --git a/sound/virtio/virtio_jack.c b/sound/virtio/virtio_jack.c
index c69f1dcdcc84..2f1ec3ac02f0 100644
--- a/sound/virtio/virtio_jack.c
+++ b/sound/virtio/virtio_jack.c
@@ -144,7 +144,7 @@ int virtsnd_jack_parse_cfg(struct virtio_snd *snd)
if (!snd->jacks)
return -ENOMEM;
- info = kcalloc(snd->njacks, sizeof(*info), GFP_KERNEL);
+ info = kzalloc_objs(*info, snd->njacks, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/sound/virtio/virtio_pcm.c b/sound/virtio/virtio_pcm.c
index 3602b6690fcd..ef5a8a507b24 100644
--- a/sound/virtio/virtio_pcm.c
+++ b/sound/virtio/virtio_pcm.c
@@ -354,7 +354,7 @@ int virtsnd_pcm_parse_cfg(struct virtio_snd *snd)
spin_lock_init(&vss->lock);
}
- info = kcalloc(snd->nsubstreams, sizeof(*info), GFP_KERNEL);
+ info = kzalloc_objs(*info, snd->nsubstreams, GFP_KERNEL);
if (!info)
return -ENOMEM;
diff --git a/sound/virtio/virtio_pcm_msg.c b/sound/virtio/virtio_pcm_msg.c
index 9778020a7ba8..79af520ef12e 100644
--- a/sound/virtio/virtio_pcm_msg.c
+++ b/sound/virtio/virtio_pcm_msg.c
@@ -135,7 +135,7 @@ int virtsnd_pcm_msg_alloc(struct virtio_pcm_substream *vss,
struct snd_pcm_runtime *runtime = vss->substream->runtime;
unsigned int i;
- vss->msgs = kcalloc(periods, sizeof(*vss->msgs), GFP_KERNEL);
+ vss->msgs = kzalloc_objs(*vss->msgs, periods, GFP_KERNEL);
if (!vss->msgs)
return -ENOMEM;
@@ -146,7 +146,7 @@ int virtsnd_pcm_msg_alloc(struct virtio_pcm_substream *vss,
int sg_num = virtsnd_pcm_sg_num(data, period_bytes);
struct virtio_pcm_msg *msg;
- msg = kzalloc(struct_size(msg, sgs, sg_num + 2), GFP_KERNEL);
+ msg = kzalloc_flex(*msg, sgs, sg_num + 2, GFP_KERNEL);
if (!msg)
return -ENOMEM;
diff --git a/sound/x86/intel_hdmi_audio.c b/sound/x86/intel_hdmi_audio.c
index f5807fc73c54..dc7501c95b99 100644
--- a/sound/x86/intel_hdmi_audio.c
+++ b/sound/x86/intel_hdmi_audio.c
@@ -475,7 +475,7 @@ static void had_build_channel_allocation_map(struct snd_intelhad *intelhaddata)
kfree(intelhaddata->chmap->chmap);
intelhaddata->chmap->chmap = NULL;
- chmap = kzalloc(sizeof(*chmap), GFP_KERNEL);
+ chmap = kzalloc_obj(*chmap, GFP_KERNEL);
if (!chmap)
return;
diff --git a/sound/xen/xen_snd_front_alsa.c b/sound/xen/xen_snd_front_alsa.c
index b229eb6f7057..379a4a1cb911 100644
--- a/sound/xen/xen_snd_front_alsa.c
+++ b/sound/xen/xen_snd_front_alsa.c
@@ -442,8 +442,8 @@ static int shbuf_setup_backstore(struct xen_snd_front_pcm_stream_info *stream,
stream->buffer_sz = buffer_sz;
stream->num_pages = DIV_ROUND_UP(stream->buffer_sz, PAGE_SIZE);
- stream->pages = kcalloc(stream->num_pages, sizeof(struct page *),
- GFP_KERNEL);
+ stream->pages = kzalloc_objs(struct page *, stream->num_pages,
+ GFP_KERNEL);
if (!stream->pages)
return -ENOMEM;
diff --git a/sound/xen/xen_snd_front_evtchnl.c b/sound/xen/xen_snd_front_evtchnl.c
index 2fbed8e4a490..8a8807cbc80c 100644
--- a/sound/xen/xen_snd_front_evtchnl.c
+++ b/sound/xen/xen_snd_front_evtchnl.c
@@ -267,9 +267,8 @@ int xen_snd_front_evtchnl_create_all(struct xen_snd_front_info *front_info,
int d, ret = 0;
front_info->evt_pairs =
- kcalloc(num_streams,
- sizeof(struct xen_snd_front_evtchnl_pair),
- GFP_KERNEL);
+ kzalloc_objs(struct xen_snd_front_evtchnl_pair,
+ num_streams, GFP_KERNEL);
if (!front_info->evt_pairs)
return -ENOMEM;
diff --git a/virt/kvm/coalesced_mmio.c b/virt/kvm/coalesced_mmio.c
index 375d6285475e..6b1d90161099 100644
--- a/virt/kvm/coalesced_mmio.c
+++ b/virt/kvm/coalesced_mmio.c
@@ -128,8 +128,7 @@ int kvm_vm_ioctl_register_coalesced_mmio(struct kvm *kvm,
if (zone->pio != 1 && zone->pio != 0)
return -EINVAL;
- dev = kzalloc(sizeof(struct kvm_coalesced_mmio_dev),
- GFP_KERNEL_ACCOUNT);
+ dev = kzalloc_obj(struct kvm_coalesced_mmio_dev, GFP_KERNEL_ACCOUNT);
if (!dev)
return -ENOMEM;
diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c
index a369b20d47f0..0e8b8a2c5b79 100644
--- a/virt/kvm/eventfd.c
+++ b/virt/kvm/eventfd.c
@@ -382,7 +382,7 @@ kvm_irqfd_assign(struct kvm *kvm, struct kvm_irqfd *args)
if (!kvm_arch_irqfd_allowed(kvm, args))
return -EINVAL;
- irqfd = kzalloc(sizeof(*irqfd), GFP_KERNEL_ACCOUNT);
+ irqfd = kzalloc_obj(*irqfd, GFP_KERNEL_ACCOUNT);
if (!irqfd)
return -ENOMEM;
@@ -430,8 +430,7 @@ kvm_irqfd_assign(struct kvm *kvm, struct kvm_irqfd *args)
}
if (!irqfd->resampler) {
- resampler = kzalloc(sizeof(*resampler),
- GFP_KERNEL_ACCOUNT);
+ resampler = kzalloc_obj(*resampler, GFP_KERNEL_ACCOUNT);
if (!resampler) {
ret = -ENOMEM;
mutex_unlock(&kvm->irqfds.resampler_lock);
@@ -874,7 +873,7 @@ static int kvm_assign_ioeventfd_idx(struct kvm *kvm,
if (IS_ERR(eventfd))
return PTR_ERR(eventfd);
- p = kzalloc(sizeof(*p), GFP_KERNEL_ACCOUNT);
+ p = kzalloc_obj(*p, GFP_KERNEL_ACCOUNT);
if (!p) {
ret = -ENOMEM;
goto fail;
diff --git a/virt/kvm/guest_memfd.c b/virt/kvm/guest_memfd.c
index 923c51a3a525..e73339295a44 100644
--- a/virt/kvm/guest_memfd.c
+++ b/virt/kvm/guest_memfd.c
@@ -568,7 +568,7 @@ static int __kvm_gmem_create(struct kvm *kvm, loff_t size, u64 flags)
if (fd < 0)
return fd;
- f = kzalloc(sizeof(*f), GFP_KERNEL);
+ f = kzalloc_obj(*f, GFP_KERNEL);
if (!f) {
err = -ENOMEM;
goto err_fd;
diff --git a/virt/kvm/irqchip.c b/virt/kvm/irqchip.c
index 6ccabfd32287..462c70621247 100644
--- a/virt/kvm/irqchip.c
+++ b/virt/kvm/irqchip.c
@@ -183,7 +183,7 @@ int kvm_set_irq_routing(struct kvm *kvm,
nr_rt_entries += 1;
- new = kzalloc(struct_size(new, map, nr_rt_entries), GFP_KERNEL_ACCOUNT);
+ new = kzalloc_flex(*new, map, nr_rt_entries, GFP_KERNEL_ACCOUNT);
if (!new)
return -ENOMEM;
@@ -194,7 +194,7 @@ int kvm_set_irq_routing(struct kvm *kvm,
for (i = 0; i < nr; ++i) {
r = -ENOMEM;
- e = kzalloc(sizeof(*e), GFP_KERNEL_ACCOUNT);
+ e = kzalloc_obj(*e, GFP_KERNEL_ACCOUNT);
if (!e)
goto out;
@@ -246,7 +246,7 @@ int kvm_init_irq_routing(struct kvm *kvm)
struct kvm_irq_routing_table *new;
int chip_size;
- new = kzalloc(struct_size(new, map, 1), GFP_KERNEL_ACCOUNT);
+ new = kzalloc_flex(*new, map, 1, GFP_KERNEL_ACCOUNT);
if (!new)
return -ENOMEM;
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 61dca8d37abc..b798903540b6 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -1043,15 +1043,15 @@ static int kvm_create_vm_debugfs(struct kvm *kvm, const char *fdname)
return 0;
kvm->debugfs_dentry = dent;
- kvm->debugfs_stat_data = kcalloc(kvm_debugfs_num_entries,
- sizeof(*kvm->debugfs_stat_data),
- GFP_KERNEL_ACCOUNT);
+ kvm->debugfs_stat_data = kzalloc_objs(*kvm->debugfs_stat_data,
+ kvm_debugfs_num_entries,
+ GFP_KERNEL_ACCOUNT);
if (!kvm->debugfs_stat_data)
goto out_err;
for (i = 0; i < kvm_vm_stats_header.num_desc; ++i) {
pdesc = &kvm_vm_stats_desc[i];
- stat_data = kzalloc(sizeof(*stat_data), GFP_KERNEL_ACCOUNT);
+ stat_data = kzalloc_obj(*stat_data, GFP_KERNEL_ACCOUNT);
if (!stat_data)
goto out_err;
@@ -1066,7 +1066,7 @@ static int kvm_create_vm_debugfs(struct kvm *kvm, const char *fdname)
for (i = 0; i < kvm_vcpu_stats_header.num_desc; ++i) {
pdesc = &kvm_vcpu_stats_desc[i];
- stat_data = kzalloc(sizeof(*stat_data), GFP_KERNEL_ACCOUNT);
+ stat_data = kzalloc_obj(*stat_data, GFP_KERNEL_ACCOUNT);
if (!stat_data)
goto out_err;
@@ -1185,7 +1185,7 @@ static struct kvm *kvm_create_vm(unsigned long type, const char *fdname)
r = -ENOMEM;
for (i = 0; i < KVM_NR_BUSES; i++) {
rcu_assign_pointer(kvm->buses[i],
- kzalloc(sizeof(struct kvm_io_bus), GFP_KERNEL_ACCOUNT));
+ kzalloc_obj(struct kvm_io_bus, GFP_KERNEL_ACCOUNT));
if (!kvm->buses[i])
goto out_err_no_arch_destroy_vm;
}
@@ -1944,7 +1944,7 @@ static int kvm_set_memslot(struct kvm *kvm,
* invalidation needs to be reverted.
*/
if (change == KVM_MR_DELETE || change == KVM_MR_MOVE) {
- invalid_slot = kzalloc(sizeof(*invalid_slot), GFP_KERNEL_ACCOUNT);
+ invalid_slot = kzalloc_obj(*invalid_slot, GFP_KERNEL_ACCOUNT);
if (!invalid_slot) {
mutex_unlock(&kvm->slots_arch_lock);
return -ENOMEM;
@@ -2117,7 +2117,7 @@ static int kvm_set_memory_region(struct kvm *kvm,
return -EEXIST;
/* Allocate a slot that will persist in the memslot. */
- new = kzalloc(sizeof(*new), GFP_KERNEL_ACCOUNT);
+ new = kzalloc_obj(*new, GFP_KERNEL_ACCOUNT);
if (!new)
return -ENOMEM;
@@ -4505,7 +4505,7 @@ static long kvm_vcpu_ioctl(struct file *filp,
struct kvm_regs *kvm_regs;
r = -ENOMEM;
- kvm_regs = kzalloc(sizeof(struct kvm_regs), GFP_KERNEL);
+ kvm_regs = kzalloc_obj(struct kvm_regs, GFP_KERNEL);
if (!kvm_regs)
goto out;
r = kvm_arch_vcpu_ioctl_get_regs(vcpu, kvm_regs);
@@ -4532,7 +4532,7 @@ static long kvm_vcpu_ioctl(struct file *filp,
break;
}
case KVM_GET_SREGS: {
- kvm_sregs = kzalloc(sizeof(struct kvm_sregs), GFP_KERNEL);
+ kvm_sregs = kzalloc_obj(struct kvm_sregs, GFP_KERNEL);
r = -ENOMEM;
if (!kvm_sregs)
goto out;
@@ -4624,7 +4624,7 @@ static long kvm_vcpu_ioctl(struct file *filp,
break;
}
case KVM_GET_FPU: {
- fpu = kzalloc(sizeof(struct kvm_fpu), GFP_KERNEL);
+ fpu = kzalloc_obj(struct kvm_fpu, GFP_KERNEL);
r = -ENOMEM;
if (!fpu)
goto out;
@@ -4844,7 +4844,7 @@ static int kvm_ioctl_create_device(struct kvm *kvm,
if (test)
return 0;
- dev = kzalloc(sizeof(*dev), GFP_KERNEL_ACCOUNT);
+ dev = kzalloc_obj(*dev, GFP_KERNEL_ACCOUNT);
if (!dev)
return -ENOMEM;
@@ -6006,8 +6006,8 @@ int kvm_io_bus_register_dev(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr,
if (bus->dev_count - bus->ioeventfd_count > NR_IOBUS_DEVS - 1)
return -ENOSPC;
- new_bus = kmalloc(struct_size(bus, range, bus->dev_count + 1),
- GFP_KERNEL_ACCOUNT);
+ new_bus = kmalloc_flex(*bus, range, bus->dev_count + 1,
+ GFP_KERNEL_ACCOUNT);
if (!new_bus)
return -ENOMEM;
@@ -6053,8 +6053,8 @@ int kvm_io_bus_unregister_dev(struct kvm *kvm, enum kvm_bus bus_idx,
if (i == bus->dev_count)
return 0;
- new_bus = kmalloc(struct_size(bus, range, bus->dev_count - 1),
- GFP_KERNEL_ACCOUNT);
+ new_bus = kmalloc_flex(*bus, range, bus->dev_count - 1,
+ GFP_KERNEL_ACCOUNT);
if (new_bus) {
memcpy(new_bus, bus, struct_size(bus, range, i));
new_bus->dev_count--;
@@ -6326,7 +6326,7 @@ static void kvm_uevent_notify_change(unsigned int type, struct kvm *kvm)
active = kvm_active_vms;
mutex_unlock(&kvm_lock);
- env = kzalloc(sizeof(*env), GFP_KERNEL);
+ env = kzalloc_obj(*env, GFP_KERNEL);
if (!env)
return;
diff --git a/virt/kvm/vfio.c b/virt/kvm/vfio.c
index be50514bbd11..9f9acb66cc1e 100644
--- a/virt/kvm/vfio.c
+++ b/virt/kvm/vfio.c
@@ -166,7 +166,7 @@ static int kvm_vfio_file_add(struct kvm_device *dev, unsigned int fd)
}
}
- kvf = kzalloc(sizeof(*kvf), GFP_KERNEL_ACCOUNT);
+ kvf = kzalloc_obj(*kvf, GFP_KERNEL_ACCOUNT);
if (!kvf) {
ret = -ENOMEM;
goto out_unlock;
@@ -364,7 +364,7 @@ static int kvm_vfio_create(struct kvm_device *dev, u32 type)
if (tmp->ops == &kvm_vfio_ops)
return -EBUSY;
- kv = kzalloc(sizeof(*kv), GFP_KERNEL_ACCOUNT);
+ kv = kzalloc_obj(*kv, GFP_KERNEL_ACCOUNT);
if (!kv)
return -ENOMEM;